@_nazmiforreal/flutter-ota 0.1.12 → 0.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (176) hide show
  1. package/README.md +1 -1
  2. package/bin/flutter-ota-linux-x64 +0 -0
  3. package/dart-src/packages/cli-tools/.dart_tool/package_config.json +46 -76
  4. package/dart-src/packages/cli-tools/.dart_tool/package_graph.json +140 -166
  5. package/dart-src/packages/cli-tools/README.md +1 -1
  6. package/dart-src/packages/cli-tools/lib/flutter_ota_kit_cli.dart +30 -17
  7. package/dart-src/packages/cli-tools/lib/src/backend.dart +30 -31
  8. package/dart-src/packages/cli-tools/lib/src/cli_base.dart +3 -1
  9. package/dart-src/packages/cli-tools/lib/src/commands/build.dart +44 -43
  10. package/dart-src/packages/cli-tools/lib/src/commands/bundle.dart +265 -239
  11. package/dart-src/packages/cli-tools/lib/src/commands/channel.dart +75 -66
  12. package/dart-src/packages/cli-tools/lib/src/commands/config_command.dart +39 -35
  13. package/dart-src/packages/cli-tools/lib/src/commands/console.dart +30 -27
  14. package/dart-src/packages/cli-tools/lib/src/commands/deploy.dart +88 -72
  15. package/dart-src/packages/cli-tools/lib/src/commands/doctor.dart +66 -29
  16. package/dart-src/packages/cli-tools/lib/src/commands/fingerprint.dart +10 -6
  17. package/dart-src/packages/cli-tools/lib/src/commands/init.dart +290 -181
  18. package/dart-src/packages/cli-tools/lib/src/commands/keys.dart +24 -23
  19. package/dart-src/packages/cli-tools/lib/src/commands/migrate.dart +111 -97
  20. package/dart-src/packages/cli-tools/lib/src/commands/pocketbase.dart +237 -0
  21. package/dart-src/packages/cli-tools/lib/src/commands/rollback.dart +43 -34
  22. package/dart-src/packages/cli-tools/lib/src/commands/storage.dart +57 -53
  23. package/dart-src/packages/cli-tools/lib/src/config.dart +227 -93
  24. package/dart-src/packages/cli-tools/lib/src/operations.dart +9 -8
  25. package/dart-src/packages/cli-tools/lib/src/pack.dart +26 -25
  26. package/dart-src/packages/cli-tools/lib/src/pocketbase/data_bootstrap.dart +39 -0
  27. package/dart-src/packages/cli-tools/lib/src/pocketbase/hooks/bundles.pb.js +56 -0
  28. package/dart-src/packages/cli-tools/lib/src/pocketbase/installer.dart +189 -0
  29. package/dart-src/packages/cli-tools/lib/src/pocketbase/process_manager.dart +123 -0
  30. package/dart-src/packages/cli-tools/lib/src/pocketbase/schema_installer.dart +237 -0
  31. package/dart-src/packages/cli-tools/lib/src/runner.dart +36 -15
  32. package/dart-src/packages/cli-tools/lib/src/sign.dart +13 -5
  33. package/dart-src/packages/cli-tools/lib/src/ui/ui.dart +10 -13
  34. package/dart-src/packages/cli-tools/lib/src/util.dart +3 -1
  35. package/dart-src/packages/cli-tools/pubspec.lock +69 -116
  36. package/dart-src/packages/cli-tools/pubspec.yaml +25 -7
  37. package/dart-src/packages/cli-tools/test/backends_test.dart +62 -32
  38. package/dart-src/packages/cli-tools/test/build_pack_test.dart +4 -4
  39. package/dart-src/packages/cli-tools/test/cli_test.dart +89 -42
  40. package/dart-src/packages/cli-tools/test/mocks/mock_aws_s3_client.dart +8 -13
  41. package/dart-src/packages/cli-tools/test/mocks/mock_d1_client.dart +23 -18
  42. package/dart-src/packages/cli-tools/test/mocks/mock_pocketbase_client.dart +197 -0
  43. package/dart-src/packages/cli-tools/test/mocks/mock_postgres_client.dart +70 -46
  44. package/dart-src/packages/cli-tools/test/pocketbase_installer_test.dart +72 -0
  45. package/dart-src/packages/cli-tools/test/pocketbase_schema_test.dart +107 -0
  46. package/dart-src/packages/cli-tools/test/pocketbase_smoke_test.dart +59 -0
  47. package/dart-src/packages/core/README.md +2 -2
  48. package/dart-src/packages/core/example/lib/main.dart +69 -0
  49. package/dart-src/packages/core/lib/flutter_ota_kit_core.dart +1 -1
  50. package/dart-src/packages/core/lib/src/app_update_info.dart +17 -15
  51. package/dart-src/packages/core/lib/src/bundle.dart +102 -94
  52. package/dart-src/packages/core/lib/src/bundle_artifacts.dart +1 -2
  53. package/dart-src/packages/core/lib/src/bundle_patch_artifact.dart +15 -16
  54. package/dart-src/packages/core/lib/src/changed_asset.dart +24 -22
  55. package/dart-src/packages/core/lib/src/get_bundles_args.dart +13 -13
  56. package/dart-src/packages/core/lib/src/metadata.dart +9 -7
  57. package/dart-src/packages/core/lib/src/patch_info.dart +8 -7
  58. package/dart-src/packages/core/lib/src/platform.dart +4 -3
  59. package/dart-src/packages/core/lib/src/rollout.dart +14 -11
  60. package/dart-src/packages/core/lib/src/semver_range.dart +49 -39
  61. package/dart-src/packages/core/lib/src/semver_version.dart +8 -7
  62. package/dart-src/packages/core/lib/src/status.dart +4 -3
  63. package/dart-src/packages/core/lib/src/update_bundle_params.dart +7 -7
  64. package/dart-src/packages/core/lib/src/uuid.dart +1 -2
  65. package/dart-src/packages/core/pubspec.yaml +6 -7
  66. package/dart-src/packages/core/test/rollout_test.dart +15 -8
  67. package/dart-src/packages/core/test/semver_test.dart +5 -2
  68. package/dart-src/packages/core/test/types_test.dart +26 -24
  69. package/dart-src/packages/core/test/uuid_test.dart +3 -1
  70. package/dart-src/packages/core/tool/dbg.dart +1 -0
  71. package/dart-src/plugins/aws/CHANGELOG.md +6 -0
  72. package/dart-src/plugins/aws/example/lib/main.dart +60 -0
  73. package/dart-src/plugins/aws/lib/flutter_ota_kit_aws.dart +5 -1
  74. package/dart-src/plugins/aws/lib/src/aws_cloudfront_client.dart +11 -16
  75. package/dart-src/plugins/aws/lib/src/aws_cloudfront_signer.dart +7 -2
  76. package/dart-src/plugins/aws/lib/src/aws_database.dart +14 -18
  77. package/dart-src/plugins/aws/lib/src/aws_s3_client.dart +23 -18
  78. package/dart-src/plugins/aws/lib/src/aws_ssm_client.dart +5 -4
  79. package/dart-src/plugins/aws/lib/src/aws_storage.dart +2 -3
  80. package/dart-src/plugins/aws/lib/src/aws_storage_profile.dart +10 -16
  81. package/dart-src/plugins/aws/lib/src/with_cloudfront_signed_url.dart +6 -9
  82. package/dart-src/plugins/aws/pubspec.yaml +15 -10
  83. package/dart-src/plugins/aws/test/aws_database_test.dart +51 -57
  84. package/dart-src/plugins/aws/test/mock_aws_s3_client.dart +8 -13
  85. package/dart-src/plugins/cloudflare/CHANGELOG.md +7 -0
  86. package/dart-src/plugins/cloudflare/example/lib/main.dart +62 -0
  87. package/dart-src/plugins/cloudflare/lib/flutter_ota_kit_cloudflare.dart +4 -2
  88. package/dart-src/plugins/cloudflare/lib/src/cloudflare_worker_database.dart +3 -3
  89. package/dart-src/plugins/cloudflare/lib/src/d1_build_where.dart +3 -2
  90. package/dart-src/plugins/cloudflare/lib/src/d1_bundle_mapper.dart +24 -27
  91. package/dart-src/plugins/cloudflare/lib/src/d1_database_plugin.dart +22 -30
  92. package/dart-src/plugins/cloudflare/lib/src/r2_config.dart +1 -1
  93. package/dart-src/plugins/cloudflare/lib/src/r2_s3_client.dart +21 -29
  94. package/dart-src/plugins/cloudflare/lib/src/r2_storage.dart +7 -7
  95. package/dart-src/plugins/cloudflare/lib/src/r2_storage_profile.dart +7 -15
  96. package/dart-src/plugins/cloudflare/pubspec.yaml +14 -9
  97. package/dart-src/plugins/cloudflare/test/cloudflare_worker_database_test.dart +46 -42
  98. package/dart-src/plugins/cloudflare/test/d1_database_test.dart +100 -90
  99. package/dart-src/plugins/cloudflare/test/mock_d1_client.dart +23 -18
  100. package/dart-src/plugins/cloudflare/test/mock_r2_client.dart +8 -13
  101. package/dart-src/plugins/cloudflare/test/r2_storage_test.dart +1 -4
  102. package/dart-src/plugins/plugin-core/CHANGELOG.md +16 -0
  103. package/dart-src/plugins/plugin-core/example/lib/main.dart +61 -0
  104. package/dart-src/plugins/plugin-core/lib/flutter_ota_kit_plugin_core.dart +3 -7
  105. package/dart-src/plugins/plugin-core/lib/src/asset_storage_layout.dart +5 -5
  106. package/dart-src/plugins/plugin-core/lib/src/bundle_helpers.dart +23 -0
  107. package/dart-src/plugins/plugin-core/lib/src/bundle_storage_layout.dart +16 -10
  108. package/dart-src/plugins/plugin-core/lib/src/bundle_unit_of_work.dart +31 -26
  109. package/dart-src/plugins/plugin-core/lib/src/calculate_pagination.dart +5 -1
  110. package/dart-src/plugins/plugin-core/lib/src/content_addressed_assets.dart +1 -1
  111. package/dart-src/plugins/plugin-core/lib/src/create_blob_database_plugin.dart +78 -71
  112. package/dart-src/plugins/plugin-core/lib/src/create_database_plugin.dart +56 -35
  113. package/dart-src/plugins/plugin-core/lib/src/create_storage_plugin.dart +10 -13
  114. package/dart-src/plugins/plugin-core/lib/src/paginate_bundles.dart +30 -17
  115. package/dart-src/plugins/plugin-core/lib/src/parse_storage_uri.dart +3 -1
  116. package/dart-src/plugins/plugin-core/lib/src/query_bundles.dart +5 -3
  117. package/dart-src/plugins/plugin-core/lib/src/request_update_bundle_state.dart +2 -4
  118. package/dart-src/plugins/plugin-core/lib/src/storage_helpers.dart +18 -0
  119. package/dart-src/plugins/plugin-core/lib/src/types.dart +7 -6
  120. package/dart-src/plugins/plugin-core/pubspec.yaml +12 -9
  121. package/dart-src/plugins/plugin-core/test/asset_storage_layout_test.dart +13 -9
  122. package/dart-src/plugins/plugin-core/test/bundle_unit_of_work_test.dart +28 -15
  123. package/dart-src/plugins/plugin-core/test/create_blob_database_plugin_test.dart +254 -122
  124. package/dart-src/plugins/plugin-core/test/create_database_plugin_test.dart +36 -32
  125. package/dart-src/plugins/plugin-core/test/create_storage_plugin_test.dart +18 -15
  126. package/dart-src/plugins/plugin-core/test/generate_min_bundle_id_test.dart +8 -3
  127. package/dart-src/plugins/plugin-core/test/get_update_info_test.dart +682 -693
  128. package/dart-src/plugins/plugin-core/test/helpers_test.dart +45 -21
  129. package/dart-src/plugins/plugin-core/test/query_bundles_test.dart +76 -13
  130. package/dart-src/plugins/plugin-core/test/uuidv7_test.dart +20 -9
  131. package/dart-src/plugins/pocketbase/CHANGELOG.md +8 -0
  132. package/dart-src/plugins/pocketbase/LICENSE +21 -0
  133. package/dart-src/plugins/pocketbase/README.md +54 -0
  134. package/dart-src/plugins/pocketbase/example/lib/main.dart +62 -0
  135. package/dart-src/plugins/pocketbase/lib/flutter_ota_kit_pocketbase.dart +28 -0
  136. package/dart-src/plugins/pocketbase/lib/src/pocketbase_bundle_mapper.dart +121 -0
  137. package/dart-src/plugins/pocketbase/lib/src/pocketbase_client.dart +349 -0
  138. package/dart-src/plugins/pocketbase/lib/src/pocketbase_config.dart +61 -0
  139. package/dart-src/plugins/pocketbase/lib/src/pocketbase_database.dart +278 -0
  140. package/dart-src/plugins/pocketbase/lib/src/pocketbase_storage.dart +255 -0
  141. package/dart-src/plugins/pocketbase/pubspec.yaml +26 -0
  142. package/dart-src/plugins/pocketbase/test/pb_uri_test.dart +12 -0
  143. package/dart-src/plugins/postgres/CHANGELOG.md +6 -0
  144. package/dart-src/plugins/postgres/example/lib/main.dart +67 -0
  145. package/dart-src/plugins/postgres/lib/flutter_ota_kit_postgres.dart +3 -6
  146. package/dart-src/plugins/postgres/lib/src/postgres_bundle_mapper.dart +32 -52
  147. package/dart-src/plugins/postgres/lib/src/postgres_config.dart +3 -1
  148. package/dart-src/plugins/postgres/lib/src/postgres_database.dart +28 -38
  149. package/dart-src/plugins/postgres/lib/src/postgres_get_update_info.dart +16 -14
  150. package/dart-src/plugins/postgres/lib/src/postgres_storage.dart +26 -14
  151. package/dart-src/plugins/postgres/lib/src/postgres_types.dart +27 -28
  152. package/dart-src/plugins/postgres/pubspec.yaml +14 -9
  153. package/dart-src/plugins/postgres/test/mock_postgres_client.dart +62 -39
  154. package/dart-src/plugins/postgres/test/postgres_bundle_mapper_test.dart +3 -4
  155. package/dart-src/plugins/postgres/test/postgres_database_test.dart +102 -73
  156. package/dart-src/plugins/postgres/test/postgres_storage_runtime_test.dart +60 -0
  157. package/dart-src/plugins/supabase/CHANGELOG.md +17 -0
  158. package/dart-src/plugins/supabase/README.md +2 -2
  159. package/dart-src/plugins/supabase/example/lib/main.dart +63 -0
  160. package/dart-src/plugins/supabase/lib/flutter_ota_kit_supabase.dart +2 -0
  161. package/dart-src/plugins/supabase/lib/src/error_message.dart +11 -0
  162. package/dart-src/plugins/supabase/lib/src/supabase_bundle_mapper.dart +34 -58
  163. package/dart-src/plugins/supabase/lib/src/supabase_client_adapter.dart +3 -13
  164. package/dart-src/plugins/supabase/lib/src/supabase_client_http.dart +34 -52
  165. package/dart-src/plugins/supabase/lib/src/supabase_database.dart +38 -30
  166. package/dart-src/plugins/supabase/lib/src/supabase_edge_function_storage.dart +21 -29
  167. package/dart-src/plugins/supabase/lib/src/supabase_signed_url_batcher.dart +7 -19
  168. package/dart-src/plugins/supabase/lib/src/supabase_storage.dart +18 -29
  169. package/dart-src/plugins/supabase/lib/src/types.dart +26 -26
  170. package/dart-src/plugins/supabase/pubspec.yaml +14 -9
  171. package/dart-src/plugins/supabase/test/mock_supabase_client.dart +57 -57
  172. package/dart-src/plugins/supabase/test/supabase_bundle_mapper_test.dart +30 -27
  173. package/dart-src/plugins/supabase/test/supabase_database_test.dart +26 -35
  174. package/dart-src/plugins/supabase/test/supabase_storage_test.dart +27 -34
  175. package/package.json +3 -3
  176. package/scripts/vendor.sh +1 -1
@@ -5,26 +5,18 @@ packages:
5
5
  dependency: transitive
6
6
  description:
7
7
  name: _fe_analyzer_shared
8
- sha256: "9a3386eea899815698dd55995277cf7cb8572ee52b399a6edfb7ae2b50e5fc19"
8
+ sha256: fe18c7e37d5acb3b43224fa255281dec007970d6fd01f6d76fcd88ed3777a117
9
9
  url: "https://pub.dev"
10
10
  source: hosted
11
- version: "105.0.0"
12
- adaptive_number:
13
- dependency: transitive
14
- description:
15
- name: adaptive_number
16
- sha256: "3a567544e9b5c9c803006f51140ad544aedc79604fd4f3f2c1380003f97c1d77"
17
- url: "https://pub.dev"
18
- source: hosted
19
- version: "1.0.0"
11
+ version: "107.0.0"
20
12
  analyzer:
21
13
  dependency: transitive
22
14
  description:
23
15
  name: analyzer
24
- sha256: "62993bed6eadbe9596c5c20d5c167e7bc563c5fe266657a04ddeb93bdb84f4c9"
16
+ sha256: f2dde9e50c23fc95b846b4ef334e98c3ae8c0effd5d2453b02fc9fb3f8939791
25
17
  url: "https://pub.dev"
26
18
  source: hosted
27
- version: "14.1.0"
19
+ version: "14.3.0"
28
20
  archive:
29
21
  dependency: "direct main"
30
22
  description:
@@ -141,18 +133,10 @@ packages:
141
133
  dependency: transitive
142
134
  description:
143
135
  name: dart_jsonwebtoken
144
- sha256: b268ff9bb87a16360a397f1accb50e7c781384e1119010b34f6d7c25820c44d8
145
- url: "https://pub.dev"
146
- source: hosted
147
- version: "3.1.1"
148
- ed25519_edwards:
149
- dependency: transitive
150
- description:
151
- name: ed25519_edwards
152
- sha256: f3c3b109a0e470ee35f6346a155cab290578660852237fce10df6bbd92758534
136
+ sha256: ad84e60181696513d04d5f2078e0bbc20365b911f46f647797317414bdc88fbe
153
137
  url: "https://pub.dev"
154
138
  source: hosted
155
- version: "0.3.2"
139
+ version: "3.4.1"
156
140
  ffi:
157
141
  dependency: transitive
158
142
  description:
@@ -169,62 +153,55 @@ packages:
169
153
  url: "https://pub.dev"
170
154
  source: hosted
171
155
  version: "7.0.1"
172
- fixnum:
173
- dependency: transitive
174
- description:
175
- name: fixnum
176
- sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be
177
- url: "https://pub.dev"
178
- source: hosted
179
- version: "1.1.1"
180
156
  flutter_ota_kit_aws:
181
157
  dependency: "direct main"
182
158
  description:
183
- name: flutter_ota_kit_aws
184
- sha256: a7cbededcbc6557cf7cd9c637926b17a955d5e923b52a1e0c59ba3eeb7c8f8f9
185
- url: "https://pub.dev"
186
- source: hosted
187
- version: "0.1.0"
159
+ path: "../../plugins/aws"
160
+ relative: true
161
+ source: path
162
+ version: "0.1.2"
188
163
  flutter_ota_kit_cloudflare:
189
164
  dependency: "direct main"
190
165
  description:
191
- name: flutter_ota_kit_cloudflare
192
- sha256: "020da3c70c0760dc7c86bb349c82708c85e64799aa7621467352c93c4ad31938"
193
- url: "https://pub.dev"
194
- source: hosted
195
- version: "0.1.0"
166
+ path: "../../plugins/cloudflare"
167
+ relative: true
168
+ source: path
169
+ version: "0.1.2"
196
170
  flutter_ota_kit_core:
197
171
  dependency: "direct main"
198
172
  description:
199
- name: flutter_ota_kit_core
200
- sha256: "1d310e9da464de728f369f04ee96b95a3821caf225abfb794d98e826283106b6"
201
- url: "https://pub.dev"
202
- source: hosted
203
- version: "0.1.0"
173
+ path: "../core"
174
+ relative: true
175
+ source: path
176
+ version: "0.1.1"
204
177
  flutter_ota_kit_plugin_core:
205
178
  dependency: "direct main"
206
179
  description:
207
- name: flutter_ota_kit_plugin_core
208
- sha256: b1eab9ca437d958ffd6beb3d217b9e5f8ec50116a1b136630d53a75387f8ff48
209
- url: "https://pub.dev"
210
- source: hosted
211
- version: "0.0.1"
212
- flutter_ota_kit_postgres:
180
+ path: "../../plugins/plugin-core"
181
+ relative: true
182
+ source: path
183
+ version: "0.0.3"
184
+ flutter_ota_kit_pocketbase:
213
185
  dependency: "direct main"
214
186
  description:
215
- name: flutter_ota_kit_postgres
216
- sha256: "5bb68f9ff34e9c586ec163d0012cf4954b66e471476eeeb48d117797c731917f"
217
- url: "https://pub.dev"
218
- source: hosted
187
+ path: "../../plugins/pocketbase"
188
+ relative: true
189
+ source: path
219
190
  version: "0.1.0"
191
+ flutter_ota_kit_postgres:
192
+ dependency: "direct main"
193
+ description:
194
+ path: "../../plugins/postgres"
195
+ relative: true
196
+ source: path
197
+ version: "0.1.2"
220
198
  flutter_ota_kit_supabase:
221
199
  dependency: "direct main"
222
200
  description:
223
- name: flutter_ota_kit_supabase
224
- sha256: b73265cb9bcca2874feb497a27ce7d83c72e6fc59f408b4f85311f50746853f6
225
- url: "https://pub.dev"
226
- source: hosted
227
- version: "0.1.1"
201
+ path: "../../plugins/supabase"
202
+ relative: true
203
+ source: path
204
+ version: "0.1.3"
228
205
  frontend_server_client:
229
206
  dependency: transitive
230
207
  description:
@@ -237,10 +214,10 @@ packages:
237
214
  dependency: transitive
238
215
  description:
239
216
  name: functions_client
240
- sha256: e9685e9ab852a8b8e0579c867f6c9155da27317b294b3df796a536b8b8e0d253
217
+ sha256: "931e822688d2e97867b2300e2fdbb08c9db73f8653fc83efc7a259d2e0cca769"
241
218
  url: "https://pub.dev"
242
219
  source: hosted
243
- version: "2.6.4"
220
+ version: "2.7.1"
244
221
  glob:
245
222
  dependency: transitive
246
223
  description:
@@ -253,10 +230,10 @@ packages:
253
230
  dependency: transitive
254
231
  description:
255
232
  name: gotrue
256
- sha256: "360bba9606e58d5acc59a033ab64ae3cf571a6868f7a7267cb8e9a204b7bf1b2"
233
+ sha256: cd73a6de4198baca71341177bed233673d7965aca2a0257ab5561feb2abdaf59
257
234
  url: "https://pub.dev"
258
235
  source: hosted
259
- version: "2.26.0"
236
+ version: "2.27.2"
260
237
  http:
261
238
  dependency: "direct main"
262
239
  description:
@@ -289,22 +266,6 @@ packages:
289
266
  url: "https://pub.dev"
290
267
  source: hosted
291
268
  version: "1.1.0"
292
- js:
293
- dependency: transitive
294
- description:
295
- name: js
296
- sha256: "53385261521cc4a0c4658fd0ad07a7d14591cf8fc33abbceae306ddb974888dc"
297
- url: "https://pub.dev"
298
- source: hosted
299
- version: "0.7.2"
300
- jwt_decode:
301
- dependency: transitive
302
- description:
303
- name: jwt_decode
304
- sha256: d2e9f68c052b2225130977429d30f187aa1981d789c76ad104a32243cfdebfbb
305
- url: "https://pub.dev"
306
- source: hosted
307
- version: "0.3.1"
308
269
  logging:
309
270
  dependency: transitive
310
271
  description:
@@ -333,10 +294,10 @@ packages:
333
294
  dependency: transitive
334
295
  description:
335
296
  name: mime
336
- sha256: "801fd0b26f14a4a58ccb09d5892c3fbdeff209594300a542492cf13fba9d247a"
297
+ sha256: bd47de35f07e27267e69c8c8b22edf9473bfee170a60d60fcc93730c5144b7f6
337
298
  url: "https://pub.dev"
338
299
  source: hosted
339
- version: "1.0.6"
300
+ version: "2.1.0"
340
301
  node_preamble:
341
302
  dependency: transitive
342
303
  description:
@@ -365,10 +326,10 @@ packages:
365
326
  dependency: transitive
366
327
  description:
367
328
  name: pointycastle
368
- sha256: "4be0097fcf3fd3e8449e53730c631200ebc7b88016acecab2b0da2f0149222fe"
329
+ sha256: "92aa3841d083cc4b0f4709b5c74fd6409a3e6ba833ffc7dc6a8fee096366acf5"
369
330
  url: "https://pub.dev"
370
331
  source: hosted
371
- version: "3.9.1"
332
+ version: "4.0.0"
372
333
  pool:
373
334
  dependency: transitive
374
335
  description:
@@ -397,10 +358,10 @@ packages:
397
358
  dependency: transitive
398
359
  description:
399
360
  name: postgrest
400
- sha256: "10e3f195e131eec944fa872644aed89b33b5be998f3fc77c87325db3927bc646"
361
+ sha256: b7f957273ba6a1c26cefa987ac524f4138e9ab7542fbb9e6abdfddacb9895a21
401
362
  url: "https://pub.dev"
402
363
  source: hosted
403
- version: "2.8.0"
364
+ version: "2.9.1"
404
365
  pub_semver:
405
366
  dependency: transitive
406
367
  description:
@@ -413,28 +374,12 @@ packages:
413
374
  dependency: transitive
414
375
  description:
415
376
  name: realtime_client
416
- sha256: "0cfbe0047e2591eba348938e9b4e620d5b1a8df6c374757e8eb8645252b8387f"
417
- url: "https://pub.dev"
418
- source: hosted
419
- version: "2.11.0"
420
- retry:
421
- dependency: transitive
422
- description:
423
- name: retry
424
- sha256: "822e118d5b3aafed083109c72d5f484c6dc66707885e07c0fbcb8b986bba7efc"
425
- url: "https://pub.dev"
426
- source: hosted
427
- version: "3.1.2"
428
- rxdart:
429
- dependency: transitive
430
- description:
431
- name: rxdart
432
- sha256: "5c3004a4a8dbb94bd4bf5412a4def4acdaa12e12f269737a5751369e12d1a962"
377
+ sha256: ff731ce21fd775e0d7accfb1eaccdcf47b687610720822ba8b9fd8f5bccb2bd9
433
378
  url: "https://pub.dev"
434
379
  source: hosted
435
- version: "0.28.0"
380
+ version: "2.13.0"
436
381
  shelf:
437
- dependency: transitive
382
+ dependency: "direct main"
438
383
  description:
439
384
  name: shelf
440
385
  sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12
@@ -501,10 +446,10 @@ packages:
501
446
  dependency: transitive
502
447
  description:
503
448
  name: storage_client
504
- sha256: "221263cfbe0c01575b7d7fe7543e44abff380eb4d38d936372844a1caa85ba12"
449
+ sha256: b16aaaadcef812fda31fca056f50fb3485afe64f94e5d537d30f485ed55dec5e
505
450
  url: "https://pub.dev"
506
451
  source: hosted
507
- version: "2.6.0"
452
+ version: "2.8.0"
508
453
  stream_channel:
509
454
  dependency: transitive
510
455
  description:
@@ -525,10 +470,18 @@ packages:
525
470
  dependency: transitive
526
471
  description:
527
472
  name: supabase
528
- sha256: "3879996256325fcc9abb03b62b12c07e4eaae2e008e1bf043cc1525184159a43"
473
+ sha256: "0645becf76f49d2633d8ec9bfd78ab98dce42de6899da8fa1f069c2c836d5d23"
474
+ url: "https://pub.dev"
475
+ source: hosted
476
+ version: "2.16.1"
477
+ supabase_common:
478
+ dependency: transitive
479
+ description:
480
+ name: supabase_common
481
+ sha256: a7961a44953cf8d9da049381fc3377516348255042fbb12b9d4f8540816f2fe9
529
482
  url: "https://pub.dev"
530
483
  source: hosted
531
- version: "2.14.0"
484
+ version: "0.1.2"
532
485
  term_glyph:
533
486
  dependency: transitive
534
487
  description:
@@ -541,26 +494,26 @@ packages:
541
494
  dependency: "direct dev"
542
495
  description:
543
496
  name: test
544
- sha256: "0d5ba5602ec3baa28c8ce365e1efc5575969c765f45c554a3e167dc7945b9c30"
497
+ sha256: de5d145b0afff7921e5e788a880f52d7e5f3ae24068a202f6fd3b58e4ba26323
545
498
  url: "https://pub.dev"
546
499
  source: hosted
547
- version: "1.31.2"
500
+ version: "1.32.0"
548
501
  test_api:
549
502
  dependency: transitive
550
503
  description:
551
504
  name: test_api
552
- sha256: "475610b2aa23c19687cce2961e44b0cc57cafe220f67c2b80201231b2a07fbe7"
505
+ sha256: "0a10344e901e5b2e63819567951cb6a06673ed6b84f40462188ff5a0c41f371f"
553
506
  url: "https://pub.dev"
554
507
  source: hosted
555
- version: "0.7.13"
508
+ version: "0.7.14"
556
509
  test_core:
557
510
  dependency: transitive
558
511
  description:
559
512
  name: test_core
560
- sha256: a39c204a4fc7a7ccb04a2b985e359fda3cc37e45e0b8ac61c3fb1a05aa832132
513
+ sha256: "80f3fb49087454e07e7e07c67578cfdd156c8c3a5227d8b3f47c7b2d019c2e93"
561
514
  url: "https://pub.dev"
562
515
  source: hosted
563
- version: "0.6.19"
516
+ version: "0.6.20"
564
517
  typed_data:
565
518
  dependency: transitive
566
519
  description:
@@ -634,4 +587,4 @@ packages:
634
587
  source: hosted
635
588
  version: "2.1.1"
636
589
  sdks:
637
- dart: ">=3.11.0 <4.0.0"
590
+ dart: ">=3.13.2 <4.0.0"
@@ -7,23 +7,41 @@ version: 0.1.0
7
7
  publish_to: none
8
8
 
9
9
  environment:
10
- sdk: '>=3.3.0 <4.0.0'
10
+ sdk: '>=3.13.2 <4.0.0'
11
11
 
12
12
  dependencies:
13
13
  args: '>=2.4.0 <3.0.0'
14
14
  crypto: '>=3.0.3 <4.0.0'
15
15
  path: ^1.9.0
16
- archive: '>=3.4.10 <5.0.0'
16
+ archive: ^4.0.0
17
17
  collection: ^1.18.0
18
18
  cryptography: ^2.7.0
19
19
  postgres: ^3.4.0
20
20
  flutter_ota_kit_core: ^0.1.0
21
- flutter_ota_kit_plugin_core: ^0.0.1
22
- flutter_ota_kit_supabase: ^0.1.1
23
- flutter_ota_kit_postgres: ^0.1.0
24
- flutter_ota_kit_cloudflare: ^0.1.0
25
- flutter_ota_kit_aws: ^0.1.0
21
+ flutter_ota_kit_plugin_core: ^0.0.2
22
+ flutter_ota_kit_supabase: ^0.1.2
23
+ flutter_ota_kit_postgres: ^0.1.1
24
+ flutter_ota_kit_cloudflare: ^0.1.1
25
+ flutter_ota_kit_aws: ^0.1.1
26
+ flutter_ota_kit_pocketbase: ^0.1.0
26
27
  http: ^1.2.0
28
+ shelf: ^1.4.0
27
29
 
28
30
  dev_dependencies:
29
31
  test: ^1.25.0
32
+
33
+ dependency_overrides:
34
+ flutter_ota_kit_core:
35
+ path: ../core
36
+ flutter_ota_kit_plugin_core:
37
+ path: ../../plugins/plugin-core
38
+ flutter_ota_kit_supabase:
39
+ path: ../../plugins/supabase
40
+ flutter_ota_kit_postgres:
41
+ path: ../../plugins/postgres
42
+ flutter_ota_kit_cloudflare:
43
+ path: ../../plugins/cloudflare
44
+ flutter_ota_kit_aws:
45
+ path: ../../plugins/aws
46
+ flutter_ota_kit_pocketbase:
47
+ path: ../../plugins/pocketbase
@@ -8,6 +8,7 @@ import 'package:test/test.dart';
8
8
 
9
9
  import 'mocks/mock_aws_s3_client.dart' as aws;
10
10
  import 'mocks/mock_d1_client.dart' as d1;
11
+ import 'mocks/mock_pocketbase_client.dart' as pb;
11
12
  import 'mocks/mock_postgres_client.dart' as pg;
12
13
 
13
14
  // --- R2 (cloudflare storage) mock ------------------------------------------
@@ -37,17 +38,22 @@ class MockR2Client implements R2S3ClientLike {
37
38
  final p = prefix ?? '';
38
39
  return store.objects.keys
39
40
  .where((k) => k.startsWith(p))
40
- .map((k) => StorageObject(
41
- key: k,
42
- storageUri: 'r2://$k',
43
- size: store.objects[k]!.length,
44
- ))
41
+ .map(
42
+ (k) => StorageObject(
43
+ key: k,
44
+ storageUri: 'r2://$k',
45
+ size: store.objects[k]!.length,
46
+ ),
47
+ )
45
48
  .toList();
46
49
  }
47
50
 
48
51
  @override
49
- Future<void> putObject(String key, List<int> body, String contentType) async =>
50
- store.objects[key] = body;
52
+ Future<void> putObject(
53
+ String key,
54
+ List<int> body,
55
+ String contentType,
56
+ ) async => store.objects[key] = body;
51
57
  }
52
58
 
53
59
  // --- CloudFront (aws db invalidation) mock ----------------------------------
@@ -72,27 +78,32 @@ Directory makeSource() {
72
78
  }
73
79
 
74
80
  FlutterPatcherConfig cfgFor(String provider) => FlutterPatcherConfig(
75
- provider: provider,
76
- supabase: const SupabaseConfigJson(url: 'https://x.supabase.co'),
77
- postgres: const PostgresConfigJson(host: 'mock', database: 'mock'),
78
- cloudflare: const CloudflareConfigJson(
79
- accountId: 'acct',
80
- d1DatabaseId: 'dbid',
81
- apiToken: 'token',
82
- r2Bucket: 'bundles',
83
- r2AccessKeyId: 'rk',
84
- r2SecretAccessKey: 'rs',
85
- ),
86
- aws: const AwsConfigJson(
87
- bucket: 'b',
88
- region: 'us-east-1',
89
- accessKeyId: 'k',
90
- secretAccessKey: 's',
91
- ),
92
- channel: 'production',
93
- platform: 'android',
94
- source: './dist',
95
- );
81
+ provider: provider,
82
+ supabase: const SupabaseConfigJson(url: 'https://x.supabase.co'),
83
+ postgres: const PostgresConfigJson(host: 'mock', database: 'mock'),
84
+ cloudflare: const CloudflareConfigJson(
85
+ accountId: 'acct',
86
+ d1DatabaseId: 'dbid',
87
+ apiToken: 'token',
88
+ r2Bucket: 'bundles',
89
+ r2AccessKeyId: 'rk',
90
+ r2SecretAccessKey: 'rs',
91
+ ),
92
+ aws: const AwsConfigJson(
93
+ bucket: 'b',
94
+ region: 'us-east-1',
95
+ accessKeyId: 'k',
96
+ secretAccessKey: 's',
97
+ ),
98
+ pocketbase: const PocketBaseConfigJson(
99
+ url: 'http://mock',
100
+ adminEmail: 'admin@example.com',
101
+ adminPassword: 'secret',
102
+ ),
103
+ channel: 'production',
104
+ platform: 'android',
105
+ source: './dist',
106
+ );
96
107
 
97
108
  Future<void> runBackendLifecycle(String name, Backend backend) async {
98
109
  final source = makeSource();
@@ -111,14 +122,20 @@ Future<void> runBackendLifecycle(String name, Backend backend) async {
111
122
  expect(bundle.storageUri, isNotEmpty, reason: '$name: storageUri set');
112
123
 
113
124
  // The artifact bytes were actually uploaded to storage.
114
- expect(await backend.storage.exists(bundle.storageUri), isTrue,
115
- reason: '$name: storage has bundle');
125
+ expect(
126
+ await backend.storage.exists(bundle.storageUri),
127
+ isTrue,
128
+ reason: '$name: storage has bundle',
129
+ );
116
130
 
117
131
  // Node profile can download the bytes back.
118
132
  final dl = File('${Directory.systemTemp.path}/fp-dl-${bundle.id}.zip');
119
133
  await backend.storage.downloadFile(bundle.storageUri, dl.path);
120
- expect(dl.existsSync() && await dl.length() > 0, isTrue,
121
- reason: '$name: download succeeds');
134
+ expect(
135
+ dl.existsSync() && await dl.length() > 0,
136
+ isTrue,
137
+ reason: '$name: download succeeds',
138
+ );
122
139
  await dl.delete();
123
140
 
124
141
  // listBundles round-trips.
@@ -197,6 +214,19 @@ void main() {
197
214
  await runBackendLifecycle('aws', backend);
198
215
  });
199
216
 
217
+ test(
218
+ 'pocketbase backend (pocketbaseDatabase + pocketbaseStorage)',
219
+ () async {
220
+ final store = pb.PocketBaseStore();
221
+ final backend = resolveBackend(
222
+ cfgFor('pocketbase'),
223
+ pocketbaseClientFactory: (url, email, password) =>
224
+ pb.MockPocketBaseClient(store),
225
+ );
226
+ await runBackendLifecycle('pocketbase', backend);
227
+ },
228
+ );
229
+
200
230
  test('resolveBackend rejects unknown provider', () {
201
231
  expect(
202
232
  () => resolveBackend(cfgFor('bogus')),
@@ -46,11 +46,11 @@ void main() {
46
46
  expect(names, contains('lib/armeabi-v7a/libapp.so'));
47
47
  expect(names, contains('lib/x86_64/libapp.so'));
48
48
 
49
- final manifestFile =
50
- patch.files.firstWhere((f) => f.name == 'manifest.json');
49
+ final manifestFile = patch.files.firstWhere(
50
+ (f) => f.name == 'manifest.json',
51
+ );
51
52
  final manifest = Map<String, dynamic>.from(
52
- jsonDecode(utf8.decode(manifestFile.content as List<int>))
53
- as Map,
53
+ jsonDecode(utf8.decode(manifestFile.content as List<int>)) as Map,
54
54
  );
55
55
  expect(manifest['schemaVersion'], 2);
56
56
  expect(manifest['version'], '1.2.3');