Compare commits
546 Commits
architectu
...
fusion-app
| Author | SHA1 | Date | |
|---|---|---|---|
| 592bea9ead | |||
| 74fbf0084e | |||
| ccef0fd186 | |||
| 6ff2d77a32 | |||
| ecfaaec161 | |||
| 4f6e3684bf | |||
| abdbc2bf2e | |||
| 54b81818ec | |||
| 62b38acab4 | |||
| 924ecd83ee | |||
| 4510d2bb28 | |||
| f54bf24417 | |||
| b5d12f31a1 | |||
| 74f470219a | |||
| 24ddbf34e4 | |||
| 69297f826e | |||
| 390f2501b4 | |||
| 555a668481 | |||
| 5aa0c0acc7 | |||
| 57f0f64d08 | |||
| 9f23ecb42e | |||
| 8ff94a1e92 | |||
| a87c7e8732 | |||
| 4be46f71c7 | |||
| 105211e334 | |||
| 6d2d16d8cb | |||
| 424f2af0cc | |||
| 41f1797dcf | |||
| cf6a9dd6df | |||
| 0d677afd32 | |||
| 323d28bb17 | |||
| 92f6035b84 | |||
| c5c85c4fda | |||
| 4cfee8ced3 | |||
| 376e6bc13a | |||
| 4422f93903 | |||
| a9a34fbbc5 | |||
| 04b8d1609c | |||
| e901b22981 | |||
| 2d87cd5aee | |||
| bef87262b1 | |||
| 3f28aa95bc | |||
| dd8faa9f35 | |||
| bc946cfc39 | |||
| c4bdf707e1 | |||
| 17d931ffda | |||
| a21a8af9b1 | |||
| 05c96bc10e | |||
| bbdaa25e12 | |||
| 440adcdf8d | |||
| 6193c97802 | |||
| a985ced85c | |||
| 51901cc639 | |||
| c7fefe2a8b | |||
| cb897a3243 | |||
| 3325df94f7 | |||
| 0aefed0163 | |||
| 516197b819 | |||
| d9465996d7 | |||
| 309c7b1d87 | |||
| ab1a0a88f9 | |||
| 5be9136e06 | |||
| ac493725cf | |||
| 99da6e12fe | |||
| 383ea3d053 | |||
| 929ccadb0f | |||
| 144e48f370 | |||
| 53edf0b7e1 | |||
| 773312d5f9 | |||
| 003604444c | |||
| c7ed2f16c1 | |||
| 92c922a130 | |||
| f0666d9848 | |||
| 6e6225d6b6 | |||
| c23ae39b87 | |||
| cff71245ae | |||
| 3065b78779 | |||
| c1e498b1ab | |||
| 81c3eaec70 | |||
| 0f2d9ba601 | |||
| 82571e6035 | |||
| ba76348936 | |||
| a181ae4724 | |||
| 4d2cd62267 | |||
| fb281caf99 | |||
| a2ef28a1b5 | |||
| cbaee6d597 | |||
| e37adc1f78 | |||
| 3485e430f7 | |||
| 731787b002 | |||
| c9629c32e3 | |||
| 5c6eb97c1f | |||
| 1961be3805 | |||
| 6ff11b8c1e | |||
| 460fbffcad | |||
| b93fac4614 | |||
| 9622cc2d64 | |||
| 79e8c0fe74 | |||
| 8d5a2c8e56 | |||
| ad0b8d209a | |||
| 653ea9ab56 | |||
| 8c269e8c47 | |||
| a197d5bc28 | |||
| 3f9c298b6f | |||
| 3b1534d3b3 | |||
| eb2bde8d40 | |||
| c3dcc6febc | |||
| c4d328d92c | |||
| 2eee3489cd | |||
| 3b57d0e70d | |||
| fe9476d417 | |||
| 79d0f72f08 | |||
| 5925a97b01 | |||
| 41b22ad457 | |||
| 66a08c8016 | |||
| 3449ff9afd | |||
| d4fbbb8d4b | |||
| 3147566241 | |||
| f7e69b1184 | |||
| 41324c61bd | |||
| b8bf71fbe3 | |||
| 6d49e604be | |||
| 21dcafec26 | |||
| 8e8243345a | |||
| fe38e477e3 | |||
| db47543252 | |||
| caf77b1fd9 | |||
| dcc786d376 | |||
| 8cd01c6f3b | |||
| 1c98c0842d | |||
| 59cced7b17 | |||
| 4e14534b1b | |||
| 72d0c79c74 | |||
| 5b1826a10d | |||
| 039f2bb051 | |||
| 9d6953dbf5 | |||
| 90048ac159 | |||
| 982dee6c7a | |||
| 09897b7f69 | |||
| 09a625530e | |||
| c60761adab | |||
| 6694a4b0ce | |||
| 850796e1ca | |||
| 051424f58b | |||
| ac986ac360 | |||
| cf86570e4c | |||
| e30f5dabcc | |||
| 79039b99e2 | |||
| 14720b66bf | |||
| d7308229a0 | |||
| f7d3dbfd27 | |||
| bd7c47351f | |||
| 6cf994cd5d | |||
| fa3d7aa1fd | |||
| 5b4d31e2f1 | |||
| 2e6769f18f | |||
| 7d20b56583 | |||
| 40d55b0b43 | |||
| 5aa45b3d01 | |||
| ecfb4cc7d2 | |||
| 6b1e571341 | |||
| f6ff53bcd7 | |||
| d84edc11a9 | |||
| 45b2842e5a | |||
| a4f57f780b | |||
| e130f4a037 | |||
| 5c30dd9224 | |||
| 836aea707a | |||
| e0e7815ad8 | |||
| e0dde50eba | |||
| 54ddf68c22 | |||
| b5bba037f1 | |||
| 6ed36dba75 | |||
| 4deb263c7e | |||
| 82786b3577 | |||
| ff48b873e9 | |||
| 35948998f6 | |||
| c034d781af | |||
| 5bebe110fc | |||
| 107a4ec593 | |||
| 03effaed13 | |||
| 32eb4e0d52 | |||
| 6f5855e2fd | |||
| 412cb96888 | |||
| 853b6f20a3 | |||
| 01cb4c9427 | |||
| 82123a6d5f | |||
| 3956a87862 | |||
| 7251349e1d | |||
| cf2dbbeb63 | |||
| e9cceae485 | |||
| 6de01b62ae | |||
| 7c7ffb8f3d | |||
| 80f95bae5a | |||
| 63547b0f37 | |||
| 9ab78ac965 | |||
| 375e613caf | |||
| 9b253dd545 | |||
| 3f3fb3d5d0 | |||
| e48dec979c | |||
| 1c30318e06 | |||
| d5d38637a7 | |||
| ac5219f389 | |||
| 4fbdce3c8c | |||
| 5ad0a7acc5 | |||
| 065433ff61 | |||
| c06fb06d03 | |||
| 04c26e83cf | |||
| dc7325ea65 | |||
| 76782fbfd4 | |||
| c17e94ff7f | |||
| c84287e803 | |||
| 44c8949c07 | |||
| aaecc38461 | |||
| 3470e1bfef | |||
| 0530f892f2 | |||
| 734bd79af7 | |||
| 94e2fcbf7d | |||
| 35a943c066 | |||
| 5193e6ada2 | |||
| 2052fdcf85 | |||
| 4e50384dd9 | |||
| 9f5ec3f1da | |||
| db3197a93a | |||
| b90eed2a54 | |||
| 118be4c6c0 | |||
| 62de343dae | |||
| df92c51344 | |||
| 221d053d5f | |||
| e5cf5fcb61 | |||
| 3e427f44d7 | |||
| 746230a541 | |||
| 86642b9587 | |||
| 71ffc52993 | |||
| d355ee2442 | |||
| cc5159fc56 | |||
| d6d82d20c6 | |||
| f2d2385f24 | |||
| e6974c7be7 | |||
| 20cebc8bc7 | |||
| 2247833203 | |||
| 92e93a2b69 | |||
| 691dfc0472 | |||
| 2b9b6aa215 | |||
| 4cd4be24e6 | |||
| a547f7a786 | |||
| 42698631a3 | |||
| 69fdc2233f | |||
| 75b47e2c25 | |||
| 1c0a8b7bb7 | |||
| 417b6660fc | |||
| b8ac786146 | |||
| dd1617939b | |||
| 4c85af38aa | |||
| 309ff8b8b7 | |||
| e040944965 | |||
| b6526f20ee | |||
| 0418f16f87 | |||
| f36ad5e4a6 | |||
| 0a50941c2b | |||
| 7746d08759 | |||
| 72c88cc4b0 | |||
| b21b234b9a | |||
| f89bca99b3 | |||
| 1056895c31 | |||
| 424b8d9034 | |||
| 4aa91c355e | |||
| 7ea415cb6e | |||
| 21fd1e0197 | |||
| d618ed76d0 | |||
| dfd7ba9c41 | |||
| b8f5c5d6f8 | |||
| d470ed470a | |||
| a400fef77d | |||
| febc21a590 | |||
| 29fca859fc | |||
| d92fe887fd | |||
| 315e5b2908 | |||
| 244e5bbd03 | |||
| a86041885c | |||
| 12011ce525 | |||
| c92e2fb67f | |||
| 7e1ead9cae | |||
| e59ce36033 | |||
| aa3ffdb6a7 | |||
| 2eddb99c47 | |||
| c461519597 | |||
| 919ee55c45 | |||
| f5350f5e78 | |||
| b9b49f0b26 | |||
| afa916a30d | |||
| 4347cefaed | |||
| e7ebe7f403 | |||
| ed41b82076 | |||
| 9470f54867 | |||
| f82d222df3 | |||
| fd8ef27185 | |||
| 5b6ed5cf16 | |||
| bf1032245a | |||
| fad2c8792c | |||
| 73d9de45a2 | |||
| 56d89fcdc4 | |||
| eff6f01924 | |||
| 72d44b81df | |||
| 2942d7393e | |||
| 0b160758e2 | |||
| ecbb6d1e76 | |||
| e7a4653c01 | |||
| 05ffe572c8 | |||
| cbc40f7d95 | |||
| 27e26ca921 | |||
| e83adbfdbf | |||
| 973fc2490c | |||
| e148b9fdfa | |||
| 238c15888b | |||
| ddc5086b3b | |||
| 769e8fea27 | |||
| 297fa8241a | |||
| 984a87f200 | |||
| cda889a15b | |||
| 1230a27d94 | |||
| bc46f31434 | |||
| 514daf9c7c | |||
| 51a3979c03 | |||
| c7e32d1399 | |||
| 4e21e8d698 | |||
| 703b1e9fba | |||
| 2fe5a2399d | |||
| 9e41090712 | |||
| 648d0fc04b | |||
| 56e437ff13 | |||
| 88c1111bd5 | |||
| 85be483c4e | |||
| 08e099fc37 | |||
| 8a97304ff5 | |||
| 8c1ca94a08 | |||
| cbaff2e763 | |||
| f36bc9afc1 | |||
| 95a03434ca | |||
| 6b2034612a | |||
| ec14ad49e5 | |||
| 03998f9cf1 | |||
| 811e92defc | |||
| 1e60b38087 | |||
| 693f55369c | |||
| 506dd5a80f | |||
| 7445021cf3 | |||
| 63a4113d81 | |||
| d352aec5be | |||
| 60558a4fcf | |||
| 29887818f9 | |||
| 42ec003b05 | |||
| 4728e25803 | |||
| 7b91447cad | |||
| d84c856ce7 | |||
| 81284d7efe | |||
| c1954497b8 | |||
| 9cdb4c7724 | |||
| a560e19db2 | |||
| c263e4227e | |||
| 3a375044b2 | |||
| 4a57bb35c5 | |||
| 3c4159ae8c | |||
| 3d267aff37 | |||
| b63b06ef14 | |||
| 8ade5ad3d7 | |||
| 26e89fb177 | |||
| 1810dc6e2a | |||
| 4d2d25f47b | |||
| c79cbeffcc | |||
| b7614a39f1 | |||
| a05c167f30 | |||
| c1c903ac93 | |||
| a0a782c91b | |||
| c140daa7ae | |||
| 6d30a59651 | |||
| 8d453dc980 | |||
| 0a50de3d70 | |||
| 02053182db | |||
| 33f3dfa252 | |||
| b6deb4b371 | |||
| cb70973d3b | |||
| 47c7821b0c | |||
| a07e9c23ca | |||
| 1ffeea8b77 | |||
| 5f484036f8 | |||
| 73927557ca | |||
| 5111d5d65f | |||
| ced0895063 | |||
| 34e7a7c60f | |||
| c89f1c666e | |||
| 33c2403aef | |||
| 0088d146f0 | |||
| 94c042d403 | |||
| 48cb23379c | |||
| e526dce2c9 | |||
| cacc2460f1 | |||
| dd53db6795 | |||
| 435a9c04f9 | |||
| 8e3a27e0d3 | |||
| 48d2430c9c | |||
| cf0c55eafe | |||
| 03c6633504 | |||
| b8184f02ec | |||
| c12d1924c4 | |||
| 869f33f1f1 | |||
| a07246130e | |||
| 67aafafd1e | |||
| c929e1e2d7 | |||
| 990266ba95 | |||
| fa36037aac | |||
| c9e2adf692 | |||
| 995b69eb65 | |||
| 88269c40f8 | |||
| f1226b4c18 | |||
| b636550619 | |||
| 797d236547 | |||
| 90447ce9a0 | |||
| 22ef648b41 | |||
| ae4bc7824a | |||
| 4eb4ac81ce | |||
| 01d9d4241b | |||
| 907eaf8d33 | |||
| 440bbcac66 | |||
| 904cfee2a9 | |||
| 69b3cf358a | |||
| ec4e42b408 | |||
| 9bf06f2480 | |||
| 903e1991e1 | |||
| f9d8f59195 | |||
| ffc0a1f103 | |||
| 53cadd8499 | |||
| b4bb90d357 | |||
| 5ee7852ee7 | |||
| 2b3169b3e5 | |||
| 3cbf936583 | |||
| bb666e8ab6 | |||
| 76c7eb606f | |||
| e4000d57fc | |||
| fd8574e631 | |||
| 644d1c2abe | |||
| 01de94876b | |||
| 74309006b1 | |||
| e8d8e4a022 | |||
| cf03bbc1b5 | |||
| 46b062bc48 | |||
| 014ef1ad26 | |||
| 88275c4ae6 | |||
| 77fa21b572 | |||
| ef0abc2f85 | |||
| 213279de18 | |||
| c71470a627 | |||
| bb53110b9a | |||
| f185acc3d4 | |||
| 5a68dfb3df | |||
| 7849240ff2 | |||
| 0c93440f9b | |||
| 4b4eb807d7 | |||
| 8445af3f5a | |||
| 8a50bfb906 | |||
| 8dd4147566 | |||
| 722c978674 | |||
| 471aa1067c | |||
| 2ba83a22ac | |||
| d8afa49897 | |||
| 5f1e125cff | |||
| f76a88a53c | |||
| e581895246 | |||
| a221b7a71e | |||
| 5186c21e9a | |||
| 4f5e69c6fc | |||
| e4c0a23ded | |||
| 5803286a3f | |||
| a53cfb24ea | |||
| d96985bf54 | |||
| 417f0021ad | |||
| f8ff70c35d | |||
| 46b7ba4a1d | |||
| da90ed94ea | |||
| 3283494cb1 | |||
| 6049ce0bee | |||
| 1cd18b002c | |||
| 16a5ed2e80 | |||
| 54818ead25 | |||
| 3955fbf4bc | |||
| d515d0596f | |||
| 880dd85d2b | |||
| cd578352f9 | |||
| 12edcd0940 | |||
| ca79856cd8 | |||
| 9d1bb6c22a | |||
| 60a49060a1 | |||
| ddbfbc1ebf | |||
| 8fc6b5c70c | |||
| a202971ef7 | |||
| 80b0750f62 | |||
| 337a00e98f | |||
| b90d1f635c | |||
| 59d566e9a6 | |||
| e83bb02be8 | |||
| 577a3709d3 | |||
| 69230c0dde | |||
| d7706bf639 | |||
| 8754884544 | |||
| 0e3fd8e6d5 | |||
| 4c46b2f498 | |||
| 0b2f1ff869 | |||
| 2c56d9fcb2 | |||
| efbdae81d4 | |||
| 0d8cb4bd37 | |||
| 6a9d68e945 | |||
| ea6a9741ee | |||
| f6e07192dc | |||
| ce062ec6e8 | |||
| 2e3681d36d | |||
| 098217f47a | |||
|
|
076951af24 | ||
| f8a3b038b6 | |||
|
|
0f30c7f422 | ||
| bbe77f6a8a | |||
|
|
760e94ffe9 | ||
|
|
ad10ad3b59 | ||
| cbc991b2fd | |||
|
|
6b3776f618 | ||
| 7bfc4039ab | |||
| 16e3c68d1a | |||
| 4869850c43 | |||
| cb7ff71756 | |||
| 99f544e24c | |||
|
|
14a925659a | ||
| 91e47f28fb | |||
|
|
07a0fd5695 | ||
|
|
b823b422f0 | ||
|
|
a64a9a2a32 | ||
|
|
9d7f940851 | ||
| 14d0f1515b | |||
| 1b0517344e | |||
| ae0156f3e6 | |||
| 34cb4ebf69 | |||
|
|
6c5da2d492 | ||
| ca7c3755c2 | |||
| a5dd644a62 | |||
| 73a2c46999 | |||
| 62ffc9ef7c | |||
| 11c4c5ab07 | |||
| 8201bff0a7 |
@@ -1,31 +0,0 @@
|
||||
Extension Discovery Cache
|
||||
=========================
|
||||
|
||||
This folder is used by `package:extension_discovery` to cache lists of
|
||||
packages that contains extensions for other packages.
|
||||
|
||||
DO NOT USE THIS FOLDER
|
||||
----------------------
|
||||
|
||||
* Do not read (or rely) the contents of this folder.
|
||||
* Do write to this folder.
|
||||
|
||||
If you're interested in the lists of extensions stored in this folder use the
|
||||
API offered by package `extension_discovery` to get this information.
|
||||
|
||||
If this package doesn't work for your use-case, then don't try to read the
|
||||
contents of this folder. It may change, and will not remain stable.
|
||||
|
||||
Use package `extension_discovery`
|
||||
---------------------------------
|
||||
|
||||
If you want to access information from this folder.
|
||||
|
||||
Feel free to delete this folder
|
||||
-------------------------------
|
||||
|
||||
Files in this folder act as a cache, and the cache is discarded if the files
|
||||
are older than the modification time of `.dart_tool/package_config.json`.
|
||||
|
||||
Hence, it should never be necessary to clear this cache manually, if you find a
|
||||
need to do please file a bug.
|
||||
@@ -1 +0,0 @@
|
||||
{"version":2,"entries":[{"package":"sf_app_platform_mono_repo","rootUri":"../","packageUri":"lib/"}]}
|
||||
@@ -1,364 +0,0 @@
|
||||
{
|
||||
"configVersion": 2,
|
||||
"packages": [
|
||||
{
|
||||
"name": "ansi_styles",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/ansi_styles-0.3.2+1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "args",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/args-2.7.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.3"
|
||||
},
|
||||
{
|
||||
"name": "async",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/async-2.13.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "characters",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/characters-1.4.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "charcode",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/charcode-1.4.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.0"
|
||||
},
|
||||
{
|
||||
"name": "checked_yaml",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/checked_yaml-2.0.4",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.8"
|
||||
},
|
||||
{
|
||||
"name": "cli_launcher",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/cli_launcher-0.3.2+1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.8"
|
||||
},
|
||||
{
|
||||
"name": "cli_util",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/cli_util-0.4.2",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "collection",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/collection-1.19.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "conventional_commit",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/conventional_commit-0.6.1+1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.8"
|
||||
},
|
||||
{
|
||||
"name": "ffi",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/ffi-2.1.4",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.7"
|
||||
},
|
||||
{
|
||||
"name": "file",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/file-7.0.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.0"
|
||||
},
|
||||
{
|
||||
"name": "flutter",
|
||||
"rootUri": "file:///Users/juliandalcalaf/Development/flutter/packages/flutter",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.8"
|
||||
},
|
||||
{
|
||||
"name": "flutter_secure_storage",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "flutter_secure_storage_linux",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/flutter_secure_storage_linux-1.2.3",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "flutter_secure_storage_macos",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/flutter_secure_storage_macos-3.1.3",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "flutter_secure_storage_platform_interface",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/flutter_secure_storage_platform_interface-1.1.2",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "flutter_secure_storage_web",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/flutter_secure_storage_web-1.2.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "flutter_secure_storage_windows",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/flutter_secure_storage_windows-3.1.2",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "flutter_web_plugins",
|
||||
"rootUri": "file:///Users/juliandalcalaf/Development/flutter/packages/flutter_web_plugins",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.8"
|
||||
},
|
||||
{
|
||||
"name": "glob",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/glob-2.1.3",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.3"
|
||||
},
|
||||
{
|
||||
"name": "graphs",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/graphs-2.3.2",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "http",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/http-1.5.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "http_parser",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/http_parser-4.1.2",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "io",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/io-1.0.5",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "js",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/js-0.6.7",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.19"
|
||||
},
|
||||
{
|
||||
"name": "json_annotation",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/json_annotation-4.9.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.0"
|
||||
},
|
||||
{
|
||||
"name": "material_color_utilities",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/material_color_utilities-0.11.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.17"
|
||||
},
|
||||
{
|
||||
"name": "melos",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/melos-6.3.3",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.8"
|
||||
},
|
||||
{
|
||||
"name": "meta",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/meta-1.16.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "mustache_template",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/mustache_template-2.0.2",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.7"
|
||||
},
|
||||
{
|
||||
"name": "path",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/path-1.9.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "path_provider",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/path_provider-2.1.5",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "path_provider_android",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/path_provider_android-2.2.20",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.9"
|
||||
},
|
||||
{
|
||||
"name": "path_provider_foundation",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.3",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.9"
|
||||
},
|
||||
{
|
||||
"name": "path_provider_linux",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.19"
|
||||
},
|
||||
{
|
||||
"name": "path_provider_platform_interface",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/path_provider_platform_interface-2.1.2",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.0"
|
||||
},
|
||||
{
|
||||
"name": "path_provider_windows",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.2"
|
||||
},
|
||||
{
|
||||
"name": "platform",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/platform-3.1.6",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.2"
|
||||
},
|
||||
{
|
||||
"name": "plugin_platform_interface",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/plugin_platform_interface-2.1.8",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.0"
|
||||
},
|
||||
{
|
||||
"name": "pool",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/pool-1.5.2",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "process",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/process-5.0.5",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.5"
|
||||
},
|
||||
{
|
||||
"name": "prompts",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/prompts-2.0.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "pub_semver",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/pub_semver-2.2.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "pub_updater",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/pub_updater-0.5.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.5"
|
||||
},
|
||||
{
|
||||
"name": "pubspec_parse",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/pubspec_parse-1.5.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.6"
|
||||
},
|
||||
{
|
||||
"name": "sky_engine",
|
||||
"rootUri": "file:///Users/juliandalcalaf/Development/flutter/bin/cache/pkg/sky_engine",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.8"
|
||||
},
|
||||
{
|
||||
"name": "source_span",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/source_span-1.10.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.1"
|
||||
},
|
||||
{
|
||||
"name": "stack_trace",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/stack_trace-1.12.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "string_scanner",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/string_scanner-1.4.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.1"
|
||||
},
|
||||
{
|
||||
"name": "term_glyph",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/term_glyph-1.2.2",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.1"
|
||||
},
|
||||
{
|
||||
"name": "typed_data",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/typed_data-1.4.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.5"
|
||||
},
|
||||
{
|
||||
"name": "vector_math",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/vector_math-2.2.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.1"
|
||||
},
|
||||
{
|
||||
"name": "web",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/web-1.1.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "win32",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/win32-5.15.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.8"
|
||||
},
|
||||
{
|
||||
"name": "xdg_directories",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/xdg_directories-1.1.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.3"
|
||||
},
|
||||
{
|
||||
"name": "yaml",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/yaml-3.1.3",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "yaml_edit",
|
||||
"rootUri": "file:///Users/juliandalcalaf/.pub-cache/hosted/pub.dev/yaml_edit-2.2.2",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.1"
|
||||
},
|
||||
{
|
||||
"name": "sf_app_platform_mono_repo",
|
||||
"rootUri": "../",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.0"
|
||||
}
|
||||
],
|
||||
"generator": "pub",
|
||||
"generatorVersion": "3.9.2",
|
||||
"flutterRoot": "file:///Users/juliandalcalaf/Development/flutter",
|
||||
"flutterVersion": "3.35.7",
|
||||
"pubCache": "file:///Users/juliandalcalaf/.pub-cache"
|
||||
}
|
||||
@@ -1,491 +0,0 @@
|
||||
{
|
||||
"roots": [
|
||||
"sf_app_platform_mono_repo"
|
||||
],
|
||||
"packages": [
|
||||
{
|
||||
"name": "sf_app_platform_mono_repo",
|
||||
"version": "0.0.0",
|
||||
"dependencies": [
|
||||
"flutter_secure_storage"
|
||||
],
|
||||
"devDependencies": [
|
||||
"melos"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "flutter_secure_storage",
|
||||
"version": "9.2.4",
|
||||
"dependencies": [
|
||||
"flutter",
|
||||
"flutter_secure_storage_linux",
|
||||
"flutter_secure_storage_macos",
|
||||
"flutter_secure_storage_platform_interface",
|
||||
"flutter_secure_storage_web",
|
||||
"flutter_secure_storage_windows",
|
||||
"meta"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "melos",
|
||||
"version": "6.3.3",
|
||||
"dependencies": [
|
||||
"ansi_styles",
|
||||
"args",
|
||||
"async",
|
||||
"cli_launcher",
|
||||
"cli_util",
|
||||
"collection",
|
||||
"conventional_commit",
|
||||
"file",
|
||||
"glob",
|
||||
"graphs",
|
||||
"http",
|
||||
"meta",
|
||||
"mustache_template",
|
||||
"path",
|
||||
"platform",
|
||||
"pool",
|
||||
"prompts",
|
||||
"pub_semver",
|
||||
"pub_updater",
|
||||
"pubspec_parse",
|
||||
"string_scanner",
|
||||
"yaml",
|
||||
"yaml_edit"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "meta",
|
||||
"version": "1.16.0",
|
||||
"dependencies": []
|
||||
},
|
||||
{
|
||||
"name": "flutter_secure_storage_windows",
|
||||
"version": "3.1.2",
|
||||
"dependencies": [
|
||||
"ffi",
|
||||
"flutter",
|
||||
"flutter_secure_storage_platform_interface",
|
||||
"path",
|
||||
"path_provider",
|
||||
"win32"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "flutter_secure_storage_web",
|
||||
"version": "1.2.1",
|
||||
"dependencies": [
|
||||
"flutter",
|
||||
"flutter_secure_storage_platform_interface",
|
||||
"flutter_web_plugins",
|
||||
"js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "flutter_secure_storage_platform_interface",
|
||||
"version": "1.1.2",
|
||||
"dependencies": [
|
||||
"flutter",
|
||||
"plugin_platform_interface"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "flutter_secure_storage_macos",
|
||||
"version": "3.1.3",
|
||||
"dependencies": [
|
||||
"flutter",
|
||||
"flutter_secure_storage_platform_interface"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "flutter_secure_storage_linux",
|
||||
"version": "1.2.3",
|
||||
"dependencies": [
|
||||
"flutter",
|
||||
"flutter_secure_storage_platform_interface"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "flutter",
|
||||
"version": "0.0.0",
|
||||
"dependencies": [
|
||||
"characters",
|
||||
"collection",
|
||||
"material_color_utilities",
|
||||
"meta",
|
||||
"sky_engine",
|
||||
"vector_math"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "yaml_edit",
|
||||
"version": "2.2.2",
|
||||
"dependencies": [
|
||||
"collection",
|
||||
"meta",
|
||||
"source_span",
|
||||
"yaml"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "yaml",
|
||||
"version": "3.1.3",
|
||||
"dependencies": [
|
||||
"collection",
|
||||
"source_span",
|
||||
"string_scanner"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "string_scanner",
|
||||
"version": "1.4.1",
|
||||
"dependencies": [
|
||||
"source_span"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "pubspec_parse",
|
||||
"version": "1.5.0",
|
||||
"dependencies": [
|
||||
"checked_yaml",
|
||||
"collection",
|
||||
"json_annotation",
|
||||
"pub_semver",
|
||||
"yaml"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "pub_updater",
|
||||
"version": "0.5.0",
|
||||
"dependencies": [
|
||||
"http",
|
||||
"json_annotation",
|
||||
"process",
|
||||
"pub_semver"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "pub_semver",
|
||||
"version": "2.2.0",
|
||||
"dependencies": [
|
||||
"collection"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "prompts",
|
||||
"version": "2.0.0",
|
||||
"dependencies": [
|
||||
"charcode",
|
||||
"io"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "pool",
|
||||
"version": "1.5.2",
|
||||
"dependencies": [
|
||||
"async",
|
||||
"stack_trace"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "platform",
|
||||
"version": "3.1.6",
|
||||
"dependencies": []
|
||||
},
|
||||
{
|
||||
"name": "path",
|
||||
"version": "1.9.1",
|
||||
"dependencies": []
|
||||
},
|
||||
{
|
||||
"name": "mustache_template",
|
||||
"version": "2.0.2",
|
||||
"dependencies": []
|
||||
},
|
||||
{
|
||||
"name": "http",
|
||||
"version": "1.5.0",
|
||||
"dependencies": [
|
||||
"async",
|
||||
"http_parser",
|
||||
"meta",
|
||||
"web"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "graphs",
|
||||
"version": "2.3.2",
|
||||
"dependencies": [
|
||||
"collection"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "glob",
|
||||
"version": "2.1.3",
|
||||
"dependencies": [
|
||||
"async",
|
||||
"collection",
|
||||
"file",
|
||||
"path",
|
||||
"string_scanner"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "file",
|
||||
"version": "7.0.1",
|
||||
"dependencies": [
|
||||
"meta",
|
||||
"path"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "conventional_commit",
|
||||
"version": "0.6.1+1",
|
||||
"dependencies": []
|
||||
},
|
||||
{
|
||||
"name": "collection",
|
||||
"version": "1.19.1",
|
||||
"dependencies": []
|
||||
},
|
||||
{
|
||||
"name": "cli_util",
|
||||
"version": "0.4.2",
|
||||
"dependencies": [
|
||||
"meta",
|
||||
"path"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "cli_launcher",
|
||||
"version": "0.3.2+1",
|
||||
"dependencies": [
|
||||
"path",
|
||||
"yaml"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "async",
|
||||
"version": "2.13.0",
|
||||
"dependencies": [
|
||||
"collection",
|
||||
"meta"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "args",
|
||||
"version": "2.7.0",
|
||||
"dependencies": []
|
||||
},
|
||||
{
|
||||
"name": "ansi_styles",
|
||||
"version": "0.3.2+1",
|
||||
"dependencies": []
|
||||
},
|
||||
{
|
||||
"name": "win32",
|
||||
"version": "5.15.0",
|
||||
"dependencies": [
|
||||
"ffi"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "path_provider",
|
||||
"version": "2.1.5",
|
||||
"dependencies": [
|
||||
"flutter",
|
||||
"path_provider_android",
|
||||
"path_provider_foundation",
|
||||
"path_provider_linux",
|
||||
"path_provider_platform_interface",
|
||||
"path_provider_windows"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "ffi",
|
||||
"version": "2.1.4",
|
||||
"dependencies": []
|
||||
},
|
||||
{
|
||||
"name": "js",
|
||||
"version": "0.6.7",
|
||||
"dependencies": [
|
||||
"meta"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "flutter_web_plugins",
|
||||
"version": "0.0.0",
|
||||
"dependencies": [
|
||||
"flutter"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "plugin_platform_interface",
|
||||
"version": "2.1.8",
|
||||
"dependencies": [
|
||||
"meta"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "sky_engine",
|
||||
"version": "0.0.0",
|
||||
"dependencies": []
|
||||
},
|
||||
{
|
||||
"name": "vector_math",
|
||||
"version": "2.2.0",
|
||||
"dependencies": []
|
||||
},
|
||||
{
|
||||
"name": "material_color_utilities",
|
||||
"version": "0.11.1",
|
||||
"dependencies": [
|
||||
"collection"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "characters",
|
||||
"version": "1.4.0",
|
||||
"dependencies": []
|
||||
},
|
||||
{
|
||||
"name": "source_span",
|
||||
"version": "1.10.1",
|
||||
"dependencies": [
|
||||
"collection",
|
||||
"path",
|
||||
"term_glyph"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "json_annotation",
|
||||
"version": "4.9.0",
|
||||
"dependencies": [
|
||||
"meta"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "checked_yaml",
|
||||
"version": "2.0.4",
|
||||
"dependencies": [
|
||||
"json_annotation",
|
||||
"source_span",
|
||||
"yaml"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "process",
|
||||
"version": "5.0.5",
|
||||
"dependencies": [
|
||||
"file",
|
||||
"path",
|
||||
"platform"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "io",
|
||||
"version": "1.0.5",
|
||||
"dependencies": [
|
||||
"meta",
|
||||
"path",
|
||||
"string_scanner"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "charcode",
|
||||
"version": "1.4.0",
|
||||
"dependencies": []
|
||||
},
|
||||
{
|
||||
"name": "stack_trace",
|
||||
"version": "1.12.1",
|
||||
"dependencies": [
|
||||
"path"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "web",
|
||||
"version": "1.1.1",
|
||||
"dependencies": []
|
||||
},
|
||||
{
|
||||
"name": "http_parser",
|
||||
"version": "4.1.2",
|
||||
"dependencies": [
|
||||
"collection",
|
||||
"source_span",
|
||||
"string_scanner",
|
||||
"typed_data"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "path_provider_windows",
|
||||
"version": "2.3.0",
|
||||
"dependencies": [
|
||||
"ffi",
|
||||
"flutter",
|
||||
"path",
|
||||
"path_provider_platform_interface"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "path_provider_platform_interface",
|
||||
"version": "2.1.2",
|
||||
"dependencies": [
|
||||
"flutter",
|
||||
"platform",
|
||||
"plugin_platform_interface"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "path_provider_linux",
|
||||
"version": "2.2.1",
|
||||
"dependencies": [
|
||||
"ffi",
|
||||
"flutter",
|
||||
"path",
|
||||
"path_provider_platform_interface",
|
||||
"xdg_directories"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "path_provider_foundation",
|
||||
"version": "2.4.3",
|
||||
"dependencies": [
|
||||
"flutter",
|
||||
"path_provider_platform_interface"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "path_provider_android",
|
||||
"version": "2.2.20",
|
||||
"dependencies": [
|
||||
"flutter",
|
||||
"path_provider_platform_interface"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "term_glyph",
|
||||
"version": "1.2.2",
|
||||
"dependencies": []
|
||||
},
|
||||
{
|
||||
"name": "typed_data",
|
||||
"version": "1.4.0",
|
||||
"dependencies": [
|
||||
"collection"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "xdg_directories",
|
||||
"version": "1.1.0",
|
||||
"dependencies": [
|
||||
"meta",
|
||||
"path"
|
||||
]
|
||||
}
|
||||
],
|
||||
"configVersion": 1
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"workspaceRoot": "../.."
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
3.35.7
|
||||
@@ -1 +1 @@
|
||||
{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"flutter_secure_storage","path":"/Users/juliandalcalaf/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_foundation","path":"/Users/juliandalcalaf/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.3/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false}],"android":[{"name":"flutter_secure_storage","path":"/Users/juliandalcalaf/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_android","path":"/Users/juliandalcalaf/.pub-cache/hosted/pub.dev/path_provider_android-2.2.20/","native_build":true,"dependencies":[],"dev_dependency":false}],"macos":[{"name":"flutter_secure_storage_macos","path":"/Users/juliandalcalaf/.pub-cache/hosted/pub.dev/flutter_secure_storage_macos-3.1.3/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_foundation","path":"/Users/juliandalcalaf/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.3/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false}],"linux":[{"name":"flutter_secure_storage_linux","path":"/Users/juliandalcalaf/.pub-cache/hosted/pub.dev/flutter_secure_storage_linux-1.2.3/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_linux","path":"/Users/juliandalcalaf/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/","native_build":false,"dependencies":[],"dev_dependency":false}],"windows":[{"name":"flutter_secure_storage_windows","path":"/Users/juliandalcalaf/.pub-cache/hosted/pub.dev/flutter_secure_storage_windows-3.1.2/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_windows","path":"/Users/juliandalcalaf/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/","native_build":false,"dependencies":[],"dev_dependency":false}],"web":[{"name":"flutter_secure_storage_web","path":"/Users/juliandalcalaf/.pub-cache/hosted/pub.dev/flutter_secure_storage_web-1.2.1/","dependencies":[],"dev_dependency":false}]},"dependencyGraph":[{"name":"flutter_secure_storage","dependencies":["flutter_secure_storage_linux","flutter_secure_storage_macos","flutter_secure_storage_web","flutter_secure_storage_windows"]},{"name":"flutter_secure_storage_linux","dependencies":[]},{"name":"flutter_secure_storage_macos","dependencies":[]},{"name":"flutter_secure_storage_web","dependencies":[]},{"name":"flutter_secure_storage_windows","dependencies":["path_provider"]},{"name":"path_provider","dependencies":["path_provider_android","path_provider_foundation","path_provider_linux","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_foundation","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]}],"date_created":"2025-11-10 13:39:20.696891","version":"3.35.7","swift_package_manager_enabled":{"ios":false,"macos":false}}
|
||||
{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"flutter_secure_storage","path":"/Users/juliandalcalaf/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_foundation","path":"/Users/juliandalcalaf/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.3/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false}],"android":[{"name":"flutter_secure_storage","path":"/Users/juliandalcalaf/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_android","path":"/Users/juliandalcalaf/.pub-cache/hosted/pub.dev/path_provider_android-2.2.20/","native_build":true,"dependencies":[],"dev_dependency":false}],"macos":[{"name":"flutter_secure_storage_macos","path":"/Users/juliandalcalaf/.pub-cache/hosted/pub.dev/flutter_secure_storage_macos-3.1.3/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_foundation","path":"/Users/juliandalcalaf/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.3/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false}],"linux":[{"name":"flutter_secure_storage_linux","path":"/Users/juliandalcalaf/.pub-cache/hosted/pub.dev/flutter_secure_storage_linux-1.2.3/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_linux","path":"/Users/juliandalcalaf/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/","native_build":false,"dependencies":[],"dev_dependency":false}],"windows":[{"name":"flutter_secure_storage_windows","path":"/Users/juliandalcalaf/.pub-cache/hosted/pub.dev/flutter_secure_storage_windows-3.1.2/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_windows","path":"/Users/juliandalcalaf/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/","native_build":false,"dependencies":[],"dev_dependency":false}],"web":[{"name":"flutter_secure_storage_web","path":"/Users/juliandalcalaf/.pub-cache/hosted/pub.dev/flutter_secure_storage_web-1.2.1/","dependencies":[],"dev_dependency":false}]},"dependencyGraph":[{"name":"flutter_secure_storage","dependencies":["flutter_secure_storage_linux","flutter_secure_storage_macos","flutter_secure_storage_web","flutter_secure_storage_windows"]},{"name":"flutter_secure_storage_linux","dependencies":[]},{"name":"flutter_secure_storage_macos","dependencies":[]},{"name":"flutter_secure_storage_web","dependencies":[]},{"name":"flutter_secure_storage_windows","dependencies":["path_provider"]},{"name":"path_provider","dependencies":["path_provider_android","path_provider_foundation","path_provider_linux","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_foundation","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]}],"date_created":"2026-03-13 09:52:54.635963","version":"3.35.7","swift_package_manager_enabled":{"ios":false,"macos":false}}
|
||||
32
.gitignore
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
# Dart / Flutter workspace caches (regenerated by `flutter pub get` / `dart pub get`)
|
||||
.dart_tool/
|
||||
**/.flutter-plugins-dependencies
|
||||
.packages
|
||||
.pub-cache/
|
||||
.pub/
|
||||
|
||||
# Per-package build outputs
|
||||
**/build/
|
||||
**/coverage/
|
||||
|
||||
# Flutter ephemeral plugin symlinks and helpers (regenerated on pub get)
|
||||
**/ios/Flutter/ephemeral/
|
||||
**/linux/flutter/ephemeral/
|
||||
**/macos/Flutter/ephemeral/
|
||||
**/windows/flutter/ephemeral/
|
||||
|
||||
# Flutter iOS build config (regenerated on pub get; contains machine-specific paths)
|
||||
**/ios/Flutter/Generated.xcconfig
|
||||
**/ios/Flutter/flutter_export_environment.sh
|
||||
|
||||
# IDE
|
||||
.idea/
|
||||
*.iml
|
||||
.vscode/
|
||||
|
||||
# App config (contains API keys, passed via --dart-define-from-file)
|
||||
apps/mobile_app/config/*.json
|
||||
|
||||
# macOS
|
||||
.DS_Store
|
||||
**/.DS_Store
|
||||
2
.idea/.name
generated
@@ -1 +1 @@
|
||||
sf-app-platform
|
||||
sf_app_platform_mono_repo
|
||||
19
.idea/modules.xml
generated
@@ -1,19 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/modules/auth/melos_auth.iml" filepath="$PROJECT_DIR$/modules/auth/melos_auth.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/modules/dashboard_shell/melos_dashboard_shell.iml" filepath="$PROJECT_DIR$/modules/dashboard_shell/melos_dashboard_shell.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/packages/design_system/melos_design_system.iml" filepath="$PROJECT_DIR$/packages/design_system/melos_design_system.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/modules/home/melos_home.iml" filepath="$PROJECT_DIR$/modules/home/melos_home.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/packages/navigation/melos_navigation.iml" filepath="$PROJECT_DIR$/packages/navigation/melos_navigation.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/modules/notifications/melos_notifications.iml" filepath="$PROJECT_DIR$/modules/notifications/melos_notifications.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/modules/profile/melos_profile.iml" filepath="$PROJECT_DIR$/modules/profile/melos_profile.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/apps/mobile_app/melos_sf_app_platform.iml" filepath="$PROJECT_DIR$/apps/mobile_app/melos_sf_app_platform.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/packages/sf_localizations/melos_sf_localizations.iml" filepath="$PROJECT_DIR$/packages/sf_localizations/melos_sf_localizations.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/packages/sf_shared/melos_sf_shared.iml" filepath="$PROJECT_DIR$/packages/sf_shared/melos_sf_shared.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/packages/utils/melos_utils.iml" filepath="$PROJECT_DIR$/packages/utils/melos_utils.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/melos_sf-app-platform.iml" filepath="$PROJECT_DIR$/melos_sf-app-platform.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
1
.idea/runConfigurations/melos_bootstrap.xml
generated
@@ -6,6 +6,7 @@
|
||||
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="false" />
|
||||
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<option name="SCRIPT_TEXT" value="melos bootstrap" />
|
||||
<option name="EXECUTE_IN_TERMINAL" value="true"/>
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
|
||||
1
.idea/runConfigurations/melos_clean.xml
generated
@@ -6,6 +6,7 @@
|
||||
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="false" />
|
||||
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<option name="SCRIPT_TEXT" value="melos clean" />
|
||||
<option name="EXECUTE_IN_TERMINAL" value="true"/>
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<!-- Generated by Melos -->
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="Flutter Test -> 'auth'" type="FlutterTestConfigType" factoryName="Flutter Test">
|
||||
<option name="testDir" value="$PROJECT_DIR$/modules/auth/test" />
|
||||
<option name="testDir" value="$PROJECT_DIR$/modules/payment/modules/auth/test" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
@@ -1,7 +1,7 @@
|
||||
<!-- Generated by Melos -->
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="Flutter Test -> 'dashboard_shell'" type="FlutterTestConfigType" factoryName="Flutter Test">
|
||||
<option name="testDir" value="$PROJECT_DIR$/modules/dashboard_shell/test" />
|
||||
<option name="testDir" value="$PROJECT_DIR$/modules/payment/modules/dashboard_shell/test" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
7
.idea/runConfigurations/melos_flutter_test_flutter_treezor_entrust_sdk_bridge.xml
generated
Normal file
@@ -0,0 +1,7 @@
|
||||
<!-- Generated by Melos -->
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="Flutter Test -> 'flutter_treezor_entrust_sdk_bridge'" type="FlutterTestConfigType" factoryName="Flutter Test">
|
||||
<option name="testDir" value="$PROJECT_DIR$/packages/flutter_treezor_entrust_sdk_bridge/test" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
@@ -1,7 +1,7 @@
|
||||
<!-- Generated by Melos -->
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="Flutter Test -> 'home'" type="FlutterTestConfigType" factoryName="Flutter Test">
|
||||
<option name="testDir" value="$PROJECT_DIR$/modules/home/test" />
|
||||
<option name="testDir" value="$PROJECT_DIR$/modules/payment/modules/home/test" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
7
.idea/runConfigurations/melos_flutter_test_legacy_auth.xml
generated
Normal file
@@ -0,0 +1,7 @@
|
||||
<!-- Generated by Melos -->
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="Flutter Test -> 'legacy_auth'" type="FlutterTestConfigType" factoryName="Flutter Test">
|
||||
<option name="testDir" value="$PROJECT_DIR$/modules/legacy/modules/legacy_auth/test" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
@@ -1,7 +1,7 @@
|
||||
<!-- Generated by Melos -->
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="Flutter Test -> 'notifications'" type="FlutterTestConfigType" factoryName="Flutter Test">
|
||||
<option name="testDir" value="$PROJECT_DIR$/modules/notifications/test" />
|
||||
<option name="testDir" value="$PROJECT_DIR$/modules/payment/modules/notifications/test" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
@@ -1,7 +1,7 @@
|
||||
<!-- Generated by Melos -->
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="Flutter Test -> 'profile'" type="FlutterTestConfigType" factoryName="Flutter Test">
|
||||
<option name="testDir" value="$PROJECT_DIR$/modules/profile/test" />
|
||||
<option name="testDir" value="$PROJECT_DIR$/modules/payment/modules/profile/test" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
7
.idea/runConfigurations/melos_flutter_test_sca_treezor.xml
generated
Normal file
@@ -0,0 +1,7 @@
|
||||
<!-- Generated by Melos -->
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="Flutter Test -> 'sca_treezor'" type="FlutterTestConfigType" factoryName="Flutter Test">
|
||||
<option name="testDir" value="$PROJECT_DIR$/packages/sca_treezor/test" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
7
.idea/runConfigurations/melos_flutter_test_sf_infrastructure.xml
generated
Normal file
@@ -0,0 +1,7 @@
|
||||
<!-- Generated by Melos -->
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="Flutter Test -> 'sf_infrastructure'" type="FlutterTestConfigType" factoryName="Flutter Test">
|
||||
<option name="testDir" value="$PROJECT_DIR$/packages/sf_infrastructure/test" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
7
.idea/runConfigurations/melos_flutter_test_splash.xml
generated
Normal file
@@ -0,0 +1,7 @@
|
||||
<!-- Generated by Melos -->
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="Flutter Test -> 'splash'" type="FlutterTestConfigType" factoryName="Flutter Test">
|
||||
<option name="testDir" value="$PROJECT_DIR$/modules/splash/test" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
12
.idea/runConfigurations/melos_run_analyze.xml
generated
Normal file
@@ -0,0 +1,12 @@
|
||||
<!-- Generated by Melos -->
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="Melos Run -> 'analyze'" type="ShConfigurationType">
|
||||
<option name="EXECUTE_SCRIPT_FILE" value="false" />
|
||||
<option name="INDEPENDENT_SCRIPT_PATH" value="true" />
|
||||
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="false" />
|
||||
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<option name="SCRIPT_TEXT" value="melos run analyze" />
|
||||
<option name="EXECUTE_IN_TERMINAL" value="true"/>
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
12
.idea/runConfigurations/melos_run_app_dev.xml
generated
Normal file
@@ -0,0 +1,12 @@
|
||||
<!-- Generated by Melos -->
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="Melos Run -> 'app:dev'" type="ShConfigurationType">
|
||||
<option name="EXECUTE_SCRIPT_FILE" value="false" />
|
||||
<option name="INDEPENDENT_SCRIPT_PATH" value="true" />
|
||||
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="false" />
|
||||
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<option name="SCRIPT_TEXT" value="melos run app:dev" />
|
||||
<option name="EXECUTE_IN_TERMINAL" value="true"/>
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
12
.idea/runConfigurations/melos_run_app_prod.xml
generated
Normal file
@@ -0,0 +1,12 @@
|
||||
<!-- Generated by Melos -->
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="Melos Run -> 'app:prod'" type="ShConfigurationType">
|
||||
<option name="EXECUTE_SCRIPT_FILE" value="false" />
|
||||
<option name="INDEPENDENT_SCRIPT_PATH" value="true" />
|
||||
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="false" />
|
||||
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<option name="SCRIPT_TEXT" value="melos run app:prod" />
|
||||
<option name="EXECUTE_IN_TERMINAL" value="true"/>
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
12
.idea/runConfigurations/melos_run_app_staging.xml
generated
Normal file
@@ -0,0 +1,12 @@
|
||||
<!-- Generated by Melos -->
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="Melos Run -> 'app:staging'" type="ShConfigurationType">
|
||||
<option name="EXECUTE_SCRIPT_FILE" value="false" />
|
||||
<option name="INDEPENDENT_SCRIPT_PATH" value="true" />
|
||||
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="false" />
|
||||
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<option name="SCRIPT_TEXT" value="melos run app:staging" />
|
||||
<option name="EXECUTE_IN_TERMINAL" value="true"/>
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
12
.idea/runConfigurations/melos_run_check_deps.xml
generated
Normal file
@@ -0,0 +1,12 @@
|
||||
<!-- Generated by Melos -->
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="Melos Run -> 'check-deps'" type="ShConfigurationType">
|
||||
<option name="EXECUTE_SCRIPT_FILE" value="false" />
|
||||
<option name="INDEPENDENT_SCRIPT_PATH" value="true" />
|
||||
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="false" />
|
||||
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<option name="SCRIPT_TEXT" value="melos run check-deps" />
|
||||
<option name="EXECUTE_IN_TERMINAL" value="true"/>
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
12
.idea/runConfigurations/melos_run_clean.xml
generated
Normal file
@@ -0,0 +1,12 @@
|
||||
<!-- Generated by Melos -->
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="Melos Run -> 'clean'" type="ShConfigurationType">
|
||||
<option name="EXECUTE_SCRIPT_FILE" value="false" />
|
||||
<option name="INDEPENDENT_SCRIPT_PATH" value="true" />
|
||||
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="false" />
|
||||
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<option name="SCRIPT_TEXT" value="melos run clean" />
|
||||
<option name="EXECUTE_IN_TERMINAL" value="true"/>
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
12
.idea/runConfigurations/melos_run_format.xml
generated
Normal file
@@ -0,0 +1,12 @@
|
||||
<!-- Generated by Melos -->
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="Melos Run -> 'format'" type="ShConfigurationType">
|
||||
<option name="EXECUTE_SCRIPT_FILE" value="false" />
|
||||
<option name="INDEPENDENT_SCRIPT_PATH" value="true" />
|
||||
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="false" />
|
||||
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<option name="SCRIPT_TEXT" value="melos run format" />
|
||||
<option name="EXECUTE_IN_TERMINAL" value="true"/>
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
12
.idea/runConfigurations/melos_run_format_check.xml
generated
Normal file
@@ -0,0 +1,12 @@
|
||||
<!-- Generated by Melos -->
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="Melos Run -> 'format:check'" type="ShConfigurationType">
|
||||
<option name="EXECUTE_SCRIPT_FILE" value="false" />
|
||||
<option name="INDEPENDENT_SCRIPT_PATH" value="true" />
|
||||
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="false" />
|
||||
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<option name="SCRIPT_TEXT" value="melos run format:check" />
|
||||
<option name="EXECUTE_IN_TERMINAL" value="true"/>
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
12
.idea/runConfigurations/melos_run_generate.xml
generated
Normal file
@@ -0,0 +1,12 @@
|
||||
<!-- Generated by Melos -->
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="Melos Run -> 'generate'" type="ShConfigurationType">
|
||||
<option name="EXECUTE_SCRIPT_FILE" value="false" />
|
||||
<option name="INDEPENDENT_SCRIPT_PATH" value="true" />
|
||||
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="false" />
|
||||
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<option name="SCRIPT_TEXT" value="melos run generate" />
|
||||
<option name="EXECUTE_IN_TERMINAL" value="true"/>
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
12
.idea/runConfigurations/melos_run_outdated.xml
generated
Normal file
@@ -0,0 +1,12 @@
|
||||
<!-- Generated by Melos -->
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="Melos Run -> 'outdated'" type="ShConfigurationType">
|
||||
<option name="EXECUTE_SCRIPT_FILE" value="false" />
|
||||
<option name="INDEPENDENT_SCRIPT_PATH" value="true" />
|
||||
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="false" />
|
||||
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<option name="SCRIPT_TEXT" value="melos run outdated" />
|
||||
<option name="EXECUTE_IN_TERMINAL" value="true"/>
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
12
.idea/runConfigurations/melos_run_sync_deps.xml
generated
Normal file
@@ -0,0 +1,12 @@
|
||||
<!-- Generated by Melos -->
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="Melos Run -> 'sync-deps'" type="ShConfigurationType">
|
||||
<option name="EXECUTE_SCRIPT_FILE" value="false" />
|
||||
<option name="INDEPENDENT_SCRIPT_PATH" value="true" />
|
||||
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="false" />
|
||||
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<option name="SCRIPT_TEXT" value="melos run sync-deps" />
|
||||
<option name="EXECUTE_IN_TERMINAL" value="true"/>
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
@@ -1,11 +1,12 @@
|
||||
<!-- Generated by Melos -->
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="Melos Run -> 'bootstrap'" type="ShConfigurationType">
|
||||
<configuration default="false" name="Melos Run -> 'test'" type="ShConfigurationType">
|
||||
<option name="EXECUTE_SCRIPT_FILE" value="false" />
|
||||
<option name="INDEPENDENT_SCRIPT_PATH" value="true" />
|
||||
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="false" />
|
||||
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<option name="SCRIPT_TEXT" value="melos run bootstrap" />
|
||||
<option name="SCRIPT_TEXT" value="melos run test" />
|
||||
<option name="EXECUTE_IN_TERMINAL" value="true"/>
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
84
.vscode/launch.json
vendored
@@ -2,17 +2,89 @@
|
||||
// Use IntelliSense to learn about possible attributes.
|
||||
// Hover to view descriptions of existing attributes.
|
||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||
//
|
||||
// Configurations are split between (Legacy) and (Payment) variants.
|
||||
// (Legacy) is the default and matches historical behavior; (Payment)
|
||||
// boots straight into the Treezor wallet flow via APP_MODE=payment.
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "sf_app_platform",
|
||||
"name": "SF Development (Legacy)",
|
||||
"cwd": "apps/mobile_app",
|
||||
"request": "launch",
|
||||
"type": "dart",
|
||||
// "toolArgs": [
|
||||
// "--dart-define=ELEVENLABS_API_KEY=sk_2351c16102e66b5b5c26d022d73e8af203fda111f60516f6",
|
||||
// "--dart-define=ELEVENLABS_VOICE_ID=kaOF79CUr1VcYoAoVbqa"
|
||||
// ]
|
||||
"program": "lib/main_development.dart",
|
||||
"toolArgs": [
|
||||
"--flavor",
|
||||
"development",
|
||||
"--dart-define-from-file=config/development.json",
|
||||
"--dart-define=APP_MODE=legacy"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "SF Development (Payment)",
|
||||
"cwd": "apps/mobile_app",
|
||||
"request": "launch",
|
||||
"type": "dart",
|
||||
"program": "lib/main_development.dart",
|
||||
"toolArgs": [
|
||||
"--flavor",
|
||||
"development",
|
||||
"--dart-define-from-file=config/development.json",
|
||||
"--dart-define=APP_MODE=payment"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "SF Staging (Legacy)",
|
||||
"cwd": "apps/mobile_app",
|
||||
"request": "launch",
|
||||
"type": "dart",
|
||||
"program": "lib/main_staging.dart",
|
||||
"toolArgs": [
|
||||
"--flavor",
|
||||
"staging",
|
||||
"--dart-define-from-file=config/staging.json",
|
||||
"--dart-define=APP_MODE=legacy"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "SF Staging (Payment)",
|
||||
"cwd": "apps/mobile_app",
|
||||
"request": "launch",
|
||||
"type": "dart",
|
||||
"program": "lib/main_staging.dart",
|
||||
"toolArgs": [
|
||||
"--flavor",
|
||||
"staging",
|
||||
"--dart-define-from-file=config/staging.json",
|
||||
"--dart-define=APP_MODE=payment"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "SF Production (Legacy)",
|
||||
"cwd": "apps/mobile_app",
|
||||
"request": "launch",
|
||||
"type": "dart",
|
||||
"program": "lib/main_production.dart",
|
||||
"toolArgs": [
|
||||
"--flavor",
|
||||
"production",
|
||||
"--dart-define-from-file=config/production.json",
|
||||
"--dart-define=APP_MODE=legacy"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "SF Production (Payment)",
|
||||
"cwd": "apps/mobile_app",
|
||||
"request": "launch",
|
||||
"type": "dart",
|
||||
"program": "lib/main_production.dart",
|
||||
"toolArgs": [
|
||||
"--flavor",
|
||||
"production",
|
||||
"--dart-define-from-file=config/production.json",
|
||||
"--dart-define=APP_MODE=payment"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
195
Resumen_Integracion_Juphoon.md
Normal file
@@ -0,0 +1,195 @@
|
||||
# Integración Videollamadas Juphoon — Resumen del progreso
|
||||
|
||||
## Contexto
|
||||
|
||||
SaveFamily S.L (Bizkaia) está integrando videollamadas y chat entre su app móvil Flutter y sus smartwatches infantiles (RTOS/Android), usando el SDK de Juphoon (`jc_sdk`).
|
||||
|
||||
**Actores:**
|
||||
- Grupo SaveFamily S.L — Cliente, dueño de la app y backend
|
||||
- Shenzhen i365-Tech Co., Limited (Jane Zhang, Carmen) — Fabricante hardware, intermediario comercial
|
||||
- Juphoon/JUQU (Allen) — Proveedor del SDK de videollamadas
|
||||
- SeTracker — Proveedor del firmware del reloj y servidores auxiliares
|
||||
|
||||
**Cotización aprobada: $8,835** (Integración $2,200 + Chat $2,950 + Cloud Photo Album $735 + Encryption $2,950)
|
||||
|
||||
---
|
||||
|
||||
## Lo que se hizo
|
||||
|
||||
### 1. Análisis de documentación (3 rondas)
|
||||
- **Ronda 1** (31-03-2026): 50 preguntas técnicas → 27/50 respondidas (54%)
|
||||
- **Ronda 2** (01-04-2026): 17 preguntas generales → 17/17 respondidas (calidad desigual)
|
||||
- **Ronda 3** (09-04-2026): Documentación oficial SDK recibida — Quickstart V1.1 Flutter (13 páginas), sequence diagrams, protocolo TCP, connection/mutual dialing process
|
||||
- Documentos generados: análisis completo, conclusiones, preguntas bilingües ES/EN, análisis cruzado de respuestas
|
||||
|
||||
### 2. Cuenta Juphoon Cloud creada (16-04-2026)
|
||||
- Consola: juphoon.com (+34)
|
||||
- App creada: "SaveFamily" (tipo IoT, escenario Smartwatch)
|
||||
- **AppKey:** `9efcf2d889dc8a0320925096`
|
||||
- **AppSecret:** `ui7pr73ggl5rr0gf01np` (solo backend)
|
||||
- **AES_KEY IoT:** `8e3637pG7E9144E0` (solo backend)
|
||||
- Token auth activado en consola
|
||||
|
||||
### 3. Paquete `packages/videocall_sdk/` creado
|
||||
Wrapper 100% del `jc_sdk` v2.16.5 con arquitectura sólida (patrón `sca_treezor` del monorepo):
|
||||
|
||||
- **7 servicios** cubriendo toda la API pública del SDK:
|
||||
- `VideocallClient` → JCClient (auth, login, logout, messaging)
|
||||
- `VideocallCallService` → JCCall (llamadas 1-to-1)
|
||||
- `VideocallDeviceService` → JCMediaDevice (cámara, mic, speaker)
|
||||
- `VideocallChannelService` → JCMediaChannel (llamadas grupales)
|
||||
- `VideocallPushService` → JCPush (push notifications)
|
||||
- `VideocallNetService` → JCNet (estado de red)
|
||||
- `VideocallLogService` → JCLog (logging)
|
||||
- **Constructor injection** (no singletons estáticos)
|
||||
- **GetIt module** (`videocallSdkModule(config)`)
|
||||
- **`VideocallSdkManager`** orquestador de inicialización (Client → Device → Call/Channel/Push)
|
||||
- **`VideocallSdkConfig`** abstracto para config por entorno
|
||||
- **Riverpod providers** + StreamProviders para UI reactiva
|
||||
- **Callbacks del SDK → Dart Streams**
|
||||
|
||||
### 4. Permisos nativos configurados
|
||||
- **Android:** RECORD_AUDIO, ACCESS_WIFI_STATE, MODIFY_AUDIO_SETTINGS, BLUETOOTH + uses-feature (camera, bluetooth) + ProGuard rules (juphoon, justalk)
|
||||
- **iOS:** NSMicrophoneUsageDescription, NSPhotoLibraryUsageDescription, NSCameraUsageDescription actualizado + Podfile GCC_PREPROCESSOR_DEFINITIONS (PERMISSION_CAMERA, PHOTOS, MICROPHONE)
|
||||
|
||||
### 5. AppKey configurado por entorno
|
||||
- `juphoonAppKey` en development.json, staging.json, production.json
|
||||
- `Environment.juphoonAppKey` via `String.fromEnvironment()`
|
||||
- `SaveFamilyVideocallConfig` implementa `VideocallSdkConfig`
|
||||
- `videocallSdkModule(config)` integrado en `init_app.dart`
|
||||
|
||||
### 6. Feature `videocall/` creada en device_management
|
||||
Feature completa siguiendo el patrón del monorepo (builder + domain + data + presentation):
|
||||
|
||||
**Domain:**
|
||||
- `videocall_error.dart` — enums de error/success/screenMode
|
||||
- `videocall_participant.dart` — entidad Freezed para participantes grupales
|
||||
- `videocall_signaling_repository.dart` — interface señalización backend
|
||||
|
||||
**Data:**
|
||||
- `videocall_signaling_datasource.dart` — interface
|
||||
- `videocall_signaling_datasource_impl.dart` — placeholder (TODO cuando backend dé spec)
|
||||
- `videocall_signaling_repository_impl.dart` — impl
|
||||
|
||||
**State:**
|
||||
- `videocall_view_state.dart` — Freezed state 1-to-1 (screenMode, sdk ready, mic/speaker/camera, canvas, error/success events)
|
||||
- `videocall_view_model.dart` — Notifier 1-to-1 (init, login, call, answer, hangup, mute, speaker, camera, streams del SDK)
|
||||
- `group_call_view_state.dart` — Freezed state grupal
|
||||
- `group_call_view_model.dart` — Notifier grupal (join, leave, participants, streams)
|
||||
|
||||
**Widgets:**
|
||||
- `video_view_widget.dart` — renderiza JCMediaDeviceVideoCanvas (iOS/Android)
|
||||
- `call_controls_widget.dart` — mic, speaker, camera, hangup (botones circulares)
|
||||
- `call_status_indicator.dart` — "Llamando...", "Conectando..."
|
||||
- `incoming_call_overlay.dart` — aceptar/rechazar llamada entrante (fullscreen)
|
||||
- `participant_tile_widget.dart` — tile individual con video + nombre
|
||||
- `participant_grid_widget.dart` — grid responsivo de participantes
|
||||
|
||||
**Screen:**
|
||||
- `videocall_screen.dart` — 4 modos: idle (input userID + botón llamar), outgoing (llamando...), incoming (overlay aceptar/rechazar), inCall (video fullscreen + PIP + controles)
|
||||
|
||||
**Routing:**
|
||||
- `videocall_builder.dart` — GoRouter builder
|
||||
- Ruta: `/legacy/dashboard/device_management/videocall`
|
||||
|
||||
### 7. Code review realizado
|
||||
Score: **6/10 — Request changes**
|
||||
|
||||
**Issues identificados (pendientes de corregir):**
|
||||
1. Hardcoded test credentials (`p_test1/test123`) en UI de producción → guardar con `kDebugMode`
|
||||
2. `_onCallItemRemove` llama async sin await → race condition
|
||||
3. Todos los errores mapean a `I18n.errorGeneric` → sin diferenciación para el usuario
|
||||
4. `videocall_screen.dart` (310 líneas) demasiado grande → extraer `_IdleView` y `_InCallView` a ficheros separados como `ConsumerWidget`
|
||||
5. `group_call_view_model.dart` es dead code (no lo consume ninguna screen)
|
||||
6. Signaling placeholder con `throw UnimplementedError` → cambiar a no-op
|
||||
7. `VideocallParticipant` (domain) expone tipo SDK (`JCMediaDeviceVideoCanvas`) → mover al ViewModel
|
||||
|
||||
---
|
||||
|
||||
## Dónde quedamos
|
||||
|
||||
- **Rama:** `feature/videocall-sdk-integration`
|
||||
- Los cambios del paquete `videocall_sdk` están **commiteados y pusheados** (3 commits)
|
||||
- Los cambios de la feature están en disco pero **sin commitear** (necesitan correcciones del code review)
|
||||
- `fusion-app` avanzó y revirtió algunos cambios compartidos (permisos, rutas) → hay que re-sincronizar
|
||||
|
||||
---
|
||||
|
||||
## Pendiente
|
||||
|
||||
### Correcciones del code review
|
||||
- [ ] Guardar test credentials con `kDebugMode`
|
||||
- [ ] Fix async race en `_onCallItemRemove`
|
||||
- [ ] Implementar mensajes de error diferenciados
|
||||
- [ ] Extraer `_IdleView` y `_InCallView` a ficheros separados
|
||||
- [ ] Integrar o excluir group call ViewModel
|
||||
- [ ] Cambiar signaling placeholder de throw a no-op
|
||||
- [ ] Remover SDK type de domain entity
|
||||
|
||||
### Pruebas APP↔APP (primera llamada real)
|
||||
- [ ] Login con 2 userIDs de prueba (`p_test1`, `p_test2`)
|
||||
- [ ] Videollamada entre dos teléfonos físicos
|
||||
- [ ] Probar incoming call, reject, hangup, mute, camera switch
|
||||
- [ ] Probar app cerrada en iOS (riesgo #1 — push/background)
|
||||
|
||||
### Integración con backend
|
||||
- [ ] Obtener API REST del backend SaveFamily para señalización
|
||||
- [ ] Definir formato userID con backend (`p_<cuenta>` + sanitización emails)
|
||||
- [ ] Implementar datasource de señalización
|
||||
|
||||
### Pruebas APP↔Reloj
|
||||
- [ ] Llamada APP → Reloj
|
||||
- [ ] Llamada Reloj → APP
|
||||
- [ ] Llamadas grupales
|
||||
|
||||
### Producción
|
||||
- [ ] Token auth (backend genera tokens con AppSecret)
|
||||
- [ ] AppKeys separadas por entorno
|
||||
- [ ] Push/background iOS (PushKit + CallKit si necesario)
|
||||
|
||||
---
|
||||
|
||||
## 3 riesgos abiertos antes del pago ($8,835)
|
||||
|
||||
| # | Riesgo | Estado |
|
||||
|---|---|---|
|
||||
| 1 | **Push/background iOS** — la doc no menciona FCM/APNs, CallKit ni ConnectionService. App cerrada = no recibe llamadas. Posible deal-breaker | ❌ Sin respuesta |
|
||||
| 2 | **GDPR sin DPA** — servidores UE pero sin DPA, sin control routing, datos de menores | ❌ Email enviado 01-04, sin respuesta |
|
||||
| 3 | **Chat sin spec** — $2,950 sin lista de features, "mira SeTracker2" | ❌ Sin spec |
|
||||
| + | **Encryption** — $2,950 pagados, cero documentación del módulo | ❌ Sin spec |
|
||||
|
||||
---
|
||||
|
||||
## Arquitectura confirmada
|
||||
|
||||
```
|
||||
APP (Flutter + jc_sdk) ←→ Juphoon Cloud (solo media)
|
||||
↕ API REST
|
||||
Backend SaveFamily ←→ Backend i365/SeTracker ←→ Smartwatch (firmware + jrtc_* C API)
|
||||
↕ TCP plano
|
||||
```
|
||||
|
||||
- El "Server" del protocolo TCP es **i365**, NO Juphoon
|
||||
- Juphoon Cloud **solo rutea audio/video** (media plane)
|
||||
- La señalización (quién llama a quién) va por el backend
|
||||
|
||||
## Naming conventions (protocolo TCP)
|
||||
|
||||
| Tipo | Formato | Ejemplo |
|
||||
|---|---|---|
|
||||
| Watch userID | `w_` + IMEI | `w_000078932675810` |
|
||||
| Mobile userID | `p_` + APP account | `p_abc10086` |
|
||||
| Group room | `did` + `_group` | `0245423235_group` |
|
||||
| Single room | `did` + `_` + APP account | `0245423235_abc10086` |
|
||||
|
||||
`@` y `.` se reemplazan por `_` en room numbers y userIDs.
|
||||
|
||||
## Documentación de referencia
|
||||
|
||||
- Quickstart V1.1: `~/Downloads/Video call API_ Juphoon Flutter SDK quickstart V1.1.pdf`
|
||||
- TCP Protocol: `~/Downloads/Juphoon Video Call TCP Protocol.docx`
|
||||
- Connection process: `~/Downloads/video call connection process Rev2.docx`
|
||||
- Mutual dialing: `~/Downloads/video call mutual dialing process.docx`
|
||||
- Schematics: `~/Downloads/schematics _2025.03.26 (2)/`
|
||||
- pub.dev: https://pub.dev/packages/jc_sdk
|
||||
- Consola Juphoon: https://developer.juphoon.com
|
||||
@@ -1,44 +1,110 @@
|
||||
import java.util.Properties
|
||||
import java.io.FileInputStream
|
||||
|
||||
plugins {
|
||||
id("com.android.application")
|
||||
// START: FlutterFire Configuration
|
||||
id("com.google.gms.google-services")
|
||||
id("com.google.firebase.firebase-perf")
|
||||
id("com.google.firebase.crashlytics")
|
||||
// END: FlutterFire Configuration
|
||||
id("kotlin-android")
|
||||
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
|
||||
id("dev.flutter.flutter-gradle-plugin")
|
||||
}
|
||||
|
||||
val keystoreProperties = Properties()
|
||||
val keystorePropertiesFile = rootProject.file("key.properties")
|
||||
if (keystorePropertiesFile.exists()) {
|
||||
keystoreProperties.load(FileInputStream(keystorePropertiesFile))
|
||||
}
|
||||
|
||||
android {
|
||||
namespace = "com.savefamily.sf_payments"
|
||||
namespace = "com.savefamily.app"
|
||||
compileSdk = flutter.compileSdkVersion
|
||||
ndkVersion = flutter.ndkVersion
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_11
|
||||
targetCompatibility = JavaVersion.VERSION_11
|
||||
// Required by flutter_local_notifications (and any future libs that
|
||||
// need Java 8+ APIs on older Android API levels).
|
||||
isCoreLibraryDesugaringEnabled = true
|
||||
}
|
||||
|
||||
kotlinOptions {
|
||||
jvmTarget = JavaVersion.VERSION_11.toString()
|
||||
}
|
||||
|
||||
|
||||
defaultConfig {
|
||||
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
|
||||
applicationId = "com.savefamily.sf_payments"
|
||||
// You can update the following values to match your application needs.
|
||||
// For more information, see: https://flutter.dev/to/review-gradle-config.
|
||||
applicationId = "com.savefamily.app"
|
||||
|
||||
minSdk = flutter.minSdkVersion
|
||||
|
||||
targetSdk = flutter.targetSdkVersion
|
||||
versionCode = flutter.versionCode
|
||||
versionName = flutter.versionName
|
||||
}
|
||||
|
||||
packaging {
|
||||
jniLibs {
|
||||
keepDebugSymbols.add("*/*/libscm.so")
|
||||
useLegacyPackaging = true
|
||||
}
|
||||
}
|
||||
|
||||
signingConfigs {
|
||||
create("release") {
|
||||
keyAlias = keystoreProperties["keyAlias"] as String?
|
||||
keyPassword = keystoreProperties["keyPassword"] as String?
|
||||
storeFile = keystoreProperties["storeFile"]?.let { file(it as String) }
|
||||
storePassword = keystoreProperties["storePassword"] as String?
|
||||
}
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
// TODO: Add your own signing config for the release build.
|
||||
// Signing with the debug keys for now, so `flutter run --release` works.
|
||||
signingConfig = signingConfigs.getByName("debug")
|
||||
signingConfig = signingConfigs.getByName("release")
|
||||
proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro")
|
||||
}
|
||||
debug {
|
||||
proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro")
|
||||
isMinifyEnabled = false
|
||||
isShrinkResources = false
|
||||
}
|
||||
}
|
||||
|
||||
flavorDimensions += "app"
|
||||
|
||||
productFlavors {
|
||||
create("development") {
|
||||
dimension = "app"
|
||||
applicationIdSuffix = ".dev"
|
||||
resValue("string", "app_name", "SF Dev")
|
||||
}
|
||||
create("staging") {
|
||||
dimension = "app"
|
||||
applicationIdSuffix = ".stag"
|
||||
resValue("string", "app_name", "SF Staging")
|
||||
}
|
||||
create("production") {
|
||||
dimension = "app"
|
||||
resValue("string", "app_name", "SaveFamily")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
flutter {
|
||||
source = "../.."
|
||||
}
|
||||
|
||||
dependencies {
|
||||
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.4")
|
||||
// Required by AntelopAwareMessagingService to forward FCM pushes to the
|
||||
// Antelop SDK. The Antelop AAR (com.entrust.antelop:antelop) is brought
|
||||
// in transitively through the flutter_treezor_entrust_sdk_bridge plugin.
|
||||
implementation(platform("com.google.firebase:firebase-bom:33.4.0"))
|
||||
implementation("com.google.firebase:firebase-messaging")
|
||||
implementation("com.entrust.antelop:antelop:2.6.4")
|
||||
}
|
||||
|
||||
48
apps/mobile_app/android/app/google-services.json
Normal file
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"project_info": {
|
||||
"project_number": "535646668726",
|
||||
"project_id": "sf-platform-pre",
|
||||
"storage_bucket": "sf-platform-pre.firebasestorage.app"
|
||||
},
|
||||
"client": [
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:535646668726:android:c3a09d6c26f0cdf95e6317",
|
||||
"android_client_info": {
|
||||
"package_name": "com.savefamily.app.dev"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyAzo8E_L6iUYWmK1BDFpNqRri1df6CqJiY"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:535646668726:android:b87245b807258e3e5e6317",
|
||||
"android_client_info": {
|
||||
"package_name": "com.savefamily.app.stag"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyAzo8E_L6iUYWmK1BDFpNqRri1df6CqJiY"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"configuration_version": "1"
|
||||
}
|
||||
31
apps/mobile_app/android/app/proguard-rules.pro
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
## Flutter wrapper
|
||||
-keep class io.flutter.app.** { *; }
|
||||
-keep class io.flutter.plugin.** { *; }
|
||||
-keep class io.flutter.util.** { *; }
|
||||
-keep class io.flutter.view.** { *; }
|
||||
-keep class io.flutter.** { *; }
|
||||
-keep class io.flutter.plugins.** { *; }
|
||||
-dontwarn io.flutter.embedding.**
|
||||
|
||||
## Antelop/Entrust SDK - suppress warnings for optional dependencies
|
||||
-dontwarn com.google.android.gms.location.FusedLocationProviderClient
|
||||
-dontwarn com.google.android.gms.location.LocationServices
|
||||
-dontwarn com.huawei.hmf.tasks.Task
|
||||
-dontwarn com.huawei.hmf.tasks.Tasks
|
||||
-dontwarn com.huawei.hms.aaid.HmsInstanceId
|
||||
-dontwarn com.huawei.hms.api.HuaweiApiAvailability
|
||||
-dontwarn com.huawei.hms.api.HuaweiServicesNotAvailableException
|
||||
-dontwarn com.huawei.hms.api.HuaweiServicesRepairableException
|
||||
-dontwarn com.huawei.hms.common.ApiException
|
||||
-dontwarn com.huawei.hms.location.FusedLocationProviderClient
|
||||
-dontwarn com.huawei.hms.location.LocationServices
|
||||
-dontwarn com.huawei.hms.push.RemoteMessage
|
||||
-dontwarn com.huawei.hms.security.SecComponentInstallWizard
|
||||
|
||||
## Juphoon jc_sdk
|
||||
-dontwarn com.juphoon.*
|
||||
-keep class com.juphoon.**{*;}
|
||||
-dontwarn com.justalk.*
|
||||
-keep class com.justalk.**{*;}
|
||||
-keepattributes InnerClasses
|
||||
-keep class **.R$* {*;}
|
||||
@@ -0,0 +1,10 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<application>
|
||||
<meta-data
|
||||
android:name="fr.antelop.application_id"
|
||||
android:value="4713640103500149457" />
|
||||
<meta-data
|
||||
android:name="fr.antelop.issuer_id"
|
||||
android:value="treezor" />
|
||||
</application>
|
||||
</manifest>
|
||||
|
After Width: | Height: | Size: 513 B |
|
After Width: | Height: | Size: 5.9 KiB |
|
After Width: | Height: | Size: 333 B |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 69 B |
|
After Width: | Height: | Size: 684 B |
|
After Width: | Height: | Size: 8.4 KiB |
|
After Width: | Height: | Size: 1021 B |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 69 B |
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@drawable/ic_launcher_background"/>
|
||||
<foreground>
|
||||
<inset
|
||||
android:drawable="@drawable/ic_launcher_foreground"
|
||||
android:inset="16%" />
|
||||
</foreground>
|
||||
</adaptive-icon>
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 5.2 KiB |
|
After Width: | Height: | Size: 7.2 KiB |
@@ -1,8 +1,32 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
|
||||
<uses-permission android:name="android.permission.CAMERA" />
|
||||
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
||||
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
|
||||
<uses-permission android:name="android.permission.BLUETOOTH" />
|
||||
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
||||
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
|
||||
<uses-permission android:name="android.permission.READ_CONTACTS" />
|
||||
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
|
||||
<uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" />
|
||||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
||||
<uses-permission android:name="android.permission.VIBRATE" />
|
||||
|
||||
<uses-feature android:name="android.hardware.camera" />
|
||||
<uses-feature android:name="android.hardware.camera.autofocus" />
|
||||
<uses-feature
|
||||
android:name="android.hardware.bluetooth"
|
||||
android:required="false" />
|
||||
|
||||
<application
|
||||
android:label="sf_payments"
|
||||
android:label="@string/app_name"
|
||||
android:name="${applicationName}"
|
||||
android:icon="@mipmap/ic_launcher">
|
||||
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:exported="true"
|
||||
@@ -12,25 +36,45 @@
|
||||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
||||
android:hardwareAccelerated="true"
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
<!-- Specifies an Android theme to apply to this Activity as soon as
|
||||
the Android process has started. This theme is visible to the user
|
||||
while the Flutter ui initializes. After that, this theme continues
|
||||
to determine the Window background behind the Flutter ui. -->
|
||||
|
||||
<meta-data
|
||||
android:name="io.flutter.embedding.android.NormalTheme"
|
||||
android:resource="@style/NormalTheme"
|
||||
/>
|
||||
android:name="io.flutter.embedding.android.NormalTheme"
|
||||
android:resource="@style/NormalTheme" />
|
||||
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
<category android:name="android.intent.category.LAUNCHER"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<!-- Don't delete the meta-data below.
|
||||
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
|
||||
|
||||
<meta-data
|
||||
android:name="flutterEmbedding"
|
||||
android:value="2" />
|
||||
|
||||
<meta-data
|
||||
android:name="com.google.firebase.messaging.default_notification_channel_id"
|
||||
android:value="sf_default_channel" />
|
||||
|
||||
<!-- Wrap FCM with Antelop SDK forwarding (see AntelopAwareMessagingService). -->
|
||||
<service
|
||||
android:name=".AntelopAwareMessagingService"
|
||||
android:exported="false">
|
||||
<intent-filter>
|
||||
<action android:name="com.google.firebase.MESSAGING_EVENT" />
|
||||
</intent-filter>
|
||||
</service>
|
||||
|
||||
<!-- Disable Antelop's stock FCM service so AntelopAwareMessagingService is the only handler. -->
|
||||
<service
|
||||
android:name="fr.antelop.exposed.DefaultAntelopFirebaseMessagingService"
|
||||
tools:node="remove" />
|
||||
|
||||
<!-- Disable the firebase_messaging plugin's FCM service so AntelopAwareMessagingService is the only handler. -->
|
||||
<service
|
||||
android:name="io.flutter.plugins.firebase.messaging.FlutterFirebaseMessagingService"
|
||||
tools:node="remove" />
|
||||
</application>
|
||||
|
||||
<!-- Required to query activities that can process text, see:
|
||||
https://developer.android.com/training/package-visibility and
|
||||
https://developer.android.com/reference/android/content/Intent#ACTION_PROCESS_TEXT.
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.savefamily.app
|
||||
|
||||
import com.google.firebase.messaging.RemoteMessage
|
||||
import fr.antelop.sdk.firebase.AntelopFirebaseMessagingUtil
|
||||
import io.flutter.plugins.firebase.messaging.FlutterFirebaseMessagingService
|
||||
|
||||
/**
|
||||
* FCM service that gives the Antelop SDK first dibs on every push, then
|
||||
* delegates the rest to the firebase_messaging Flutter plugin so Dart still
|
||||
* receives the notifications it expects.
|
||||
*
|
||||
* Without this, only one FirebaseMessagingService can win the
|
||||
* com.google.firebase.MESSAGING_EVENT intent — and once we added the
|
||||
* firebase_messaging plugin, its FlutterFirebaseMessagingService started
|
||||
* winning over Antelop's DefaultAntelopFirebaseMessagingService, leaving the
|
||||
* SDK forever waiting for activation pushes that never reached it.
|
||||
*/
|
||||
class AntelopAwareMessagingService : FlutterFirebaseMessagingService() {
|
||||
override fun onMessageReceived(remoteMessage: RemoteMessage) {
|
||||
val handled = AntelopFirebaseMessagingUtil.onMessageReceived(
|
||||
applicationContext,
|
||||
remoteMessage,
|
||||
)
|
||||
if (!handled) {
|
||||
super.onMessageReceived(remoteMessage)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onNewToken(token: String) {
|
||||
super.onNewToken(token)
|
||||
AntelopFirebaseMessagingUtil.onTokenRefresh(applicationContext)
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.savefamily.sf_payments
|
||||
package com.savefamily.app
|
||||
|
||||
import io.flutter.embedding.android.FlutterActivity
|
||||
|
||||
|
After Width: | Height: | Size: 9.8 KiB |
|
After Width: | Height: | Size: 515 B |
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 9.8 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 334 B |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 9.8 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 69 B |
@@ -1,12 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Modify this file to customize your launch splash screen -->
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="?android:colorBackground" />
|
||||
|
||||
<!-- You can insert your own image assets here -->
|
||||
<!-- <item>
|
||||
<bitmap
|
||||
android:gravity="center"
|
||||
android:src="@mipmap/launch_image" />
|
||||
</item> -->
|
||||
<item>
|
||||
<bitmap android:gravity="fill" android:src="@drawable/background"/>
|
||||
</item>
|
||||
<item>
|
||||
<bitmap android:gravity="center" android:src="@drawable/splash"/>
|
||||
</item>
|
||||
</layer-list>
|
||||
|
||||
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 684 B |
|
After Width: | Height: | Size: 7.8 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 1023 B |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 37 KiB |
BIN
apps/mobile_app/android/app/src/main/res/drawable/background.png
Normal file
|
After Width: | Height: | Size: 69 B |
@@ -1,12 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Modify this file to customize your launch splash screen -->
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="@android:color/white" />
|
||||
|
||||
<!-- You can insert your own image assets here -->
|
||||
<!-- <item>
|
||||
<bitmap
|
||||
android:gravity="center"
|
||||
android:src="@mipmap/launch_image" />
|
||||
</item> -->
|
||||
<item>
|
||||
<bitmap android:gravity="fill" android:src="@drawable/background"/>
|
||||
</item>
|
||||
<item>
|
||||
<bitmap android:gravity="center" android:src="@drawable/splash"/>
|
||||
</item>
|
||||
</layer-list>
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@drawable/ic_launcher_background"/>
|
||||
<foreground>
|
||||
<inset
|
||||
android:drawable="@drawable/ic_launcher_foreground"
|
||||
android:inset="16%" />
|
||||
</foreground>
|
||||
</adaptive-icon>
|
||||
|
Before Width: | Height: | Size: 544 B After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 442 B After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 721 B After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 4.7 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 6.6 KiB |
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->
|
||||
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
|
||||
<item name="android:forceDarkAllowed">false</item>
|
||||
<item name="android:windowFullscreen">true</item>
|
||||
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
|
||||
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
|
||||
<item name="android:windowSplashScreenBackground">#F7F7F7</item>
|
||||
<item name="android:windowSplashScreenAnimatedIcon">@drawable/android12splash</item>
|
||||
<item name="android:windowSplashScreenIconBackgroundColor">#F7F7F7</item>
|
||||
</style>
|
||||
<!-- Theme applied to the Android Window as soon as the process has started.
|
||||
This theme determines the color of the Android Window while your
|
||||
Flutter UI initializes, as well as behind your Flutter UI while its
|
||||
running.
|
||||
|
||||
This Theme is only used starting with V2 of Flutter's Android embedding. -->
|
||||
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
|
||||
<item name="android:windowBackground">?android:colorBackground</item>
|
||||
</style>
|
||||
</resources>
|
||||
@@ -5,6 +5,10 @@
|
||||
<!-- Show a splash screen on the activity. Automatically removed when
|
||||
the Flutter engine draws its first frame -->
|
||||
<item name="android:windowBackground">@drawable/launch_background</item>
|
||||
<item name="android:forceDarkAllowed">false</item>
|
||||
<item name="android:windowFullscreen">true</item>
|
||||
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
|
||||
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
|
||||
</style>
|
||||
<!-- Theme applied to the Android Window as soon as the process has started.
|
||||
This theme determines the color of the Android Window while your
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
|
||||
<style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
|
||||
<item name="android:forceDarkAllowed">false</item>
|
||||
<item name="android:windowFullscreen">true</item>
|
||||
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
|
||||
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
|
||||
<item name="android:windowSplashScreenBackground">#F7F7F7</item>
|
||||
<item name="android:windowSplashScreenAnimatedIcon">@drawable/android12splash</item>
|
||||
<item name="android:windowSplashScreenIconBackgroundColor">#F7F7F7</item>
|
||||
</style>
|
||||
<!-- Theme applied to the Android Window as soon as the process has started.
|
||||
This theme determines the color of the Android Window while your
|
||||
Flutter UI initializes, as well as behind your Flutter UI while its
|
||||
running.
|
||||
|
||||
This Theme is only used starting with V2 of Flutter's Android embedding. -->
|
||||
<style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
|
||||
<item name="android:windowBackground">?android:colorBackground</item>
|
||||
</style>
|
||||
</resources>
|
||||