@_nazmiforreal/flutter-ota 0.1.11 → 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 +299 -190
  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 +2 -2
  176. package/scripts/vendor.sh +1 -1
@@ -85,9 +85,8 @@ void main() {
85
85
  test('returns a factory function', () {
86
86
  final factory = createDatabasePlugin<String>(
87
87
  name: 'testDb',
88
- factory: (config) => _MockDatabasePlugin(
89
- id: config, bundles: [_bundle('b1')],
90
- ),
88
+ factory: (config) =>
89
+ _MockDatabasePlugin(id: config, bundles: [_bundle('b1')]),
91
90
  );
92
91
  final createDb = factory('test');
93
92
  expect(createDb, isA<Function>());
@@ -96,9 +95,8 @@ void main() {
96
95
  test('factory creates a DatabasePlugin', () {
97
96
  final factory = createDatabasePlugin<String>(
98
97
  name: 'testDb',
99
- factory: (config) => _MockDatabasePlugin(
100
- id: config, bundles: [_bundle('b1')],
101
- ),
98
+ factory: (config) =>
99
+ _MockDatabasePlugin(id: config, bundles: [_bundle('b1')]),
102
100
  );
103
101
  final db = factory('test')();
104
102
  expect(db, isA<DatabasePlugin>());
@@ -109,7 +107,8 @@ void main() {
109
107
  final factory = createDatabasePlugin<String>(
110
108
  name: 'testDb',
111
109
  factory: (config) => _MockDatabasePlugin(
112
- id: config, bundles: [_bundle('b1'), _bundle('b2')],
110
+ id: config,
111
+ bundles: [_bundle('b1'), _bundle('b2')],
113
112
  ),
114
113
  );
115
114
  final db = factory('test')();
@@ -121,9 +120,8 @@ void main() {
121
120
  test('getBundleById returns null for missing', () async {
122
121
  final factory = createDatabasePlugin<String>(
123
122
  name: 'testDb',
124
- factory: (config) => _MockDatabasePlugin(
125
- id: config, bundles: [_bundle('b1')],
126
- ),
123
+ factory: (config) =>
124
+ _MockDatabasePlugin(id: config, bundles: [_bundle('b1')]),
127
125
  );
128
126
  final db = factory('test')();
129
127
  final result = await db.getBundleById('missing');
@@ -134,13 +132,12 @@ void main() {
134
132
  final factory = createDatabasePlugin<String>(
135
133
  name: 'testDb',
136
134
  factory: (config) => _MockDatabasePlugin(
137
- id: config, bundles: [_bundle('b1'), _bundle('b2')],
135
+ id: config,
136
+ bundles: [_bundle('b1'), _bundle('b2')],
138
137
  ),
139
138
  );
140
139
  final db = factory('test')();
141
- final result = await db.getBundles(
142
- const DatabaseBundleQueryOptions(),
143
- );
140
+ final result = await db.getBundles(const DatabaseBundleQueryOptions());
144
141
  expect(result.data.length, 2);
145
142
  expect(result.pagination.total, 2);
146
143
  });
@@ -148,9 +145,8 @@ void main() {
148
145
  test('getChannels delegates correctly', () async {
149
146
  final factory = createDatabasePlugin<String>(
150
147
  name: 'testDb',
151
- factory: (config) => _MockDatabasePlugin(
152
- id: config, bundles: [_bundle('b1')],
153
- ),
148
+ factory: (config) =>
149
+ _MockDatabasePlugin(id: config, bundles: [_bundle('b1')]),
154
150
  );
155
151
  final db = factory('test')();
156
152
  final channels = await db.getChannels();
@@ -168,7 +164,10 @@ void main() {
168
164
  await db.commitBundle();
169
165
 
170
166
  expect(mockImpl.committedChanges.length, 1);
171
- expect(mockImpl.committedChanges.first.operation, BundleChangeOperation.insert);
167
+ expect(
168
+ mockImpl.committedChanges.first.operation,
169
+ BundleChangeOperation.insert,
170
+ );
172
171
  expect(mockImpl.committedChanges.first.data.id, 'new');
173
172
  });
174
173
 
@@ -183,7 +182,10 @@ void main() {
183
182
  await db.commitBundle();
184
183
 
185
184
  expect(mockImpl.committedChanges.length, 1);
186
- expect(mockImpl.committedChanges.first.operation, BundleChangeOperation.update);
185
+ expect(
186
+ mockImpl.committedChanges.first.operation,
187
+ BundleChangeOperation.update,
188
+ );
187
189
  expect(mockImpl.committedChanges.first.data.enabled, false);
188
190
  });
189
191
 
@@ -198,7 +200,10 @@ void main() {
198
200
  await db.commitBundle();
199
201
 
200
202
  expect(mockImpl.committedChanges.length, 1);
201
- expect(mockImpl.committedChanges.first.operation, BundleChangeOperation.delete);
203
+ expect(
204
+ mockImpl.committedChanges.first.operation,
205
+ BundleChangeOperation.delete,
206
+ );
202
207
  });
203
208
 
204
209
  test('commitBundle with no changes sends empty', () async {
@@ -232,9 +237,14 @@ void main() {
232
237
  name: 'testDb',
233
238
  factory: (config) => mockImpl,
234
239
  );
235
- final db = factory('test', DatabasePluginHooks(
236
- onDatabaseUpdated: () async { hookCalled = true; },
237
- ))();
240
+ final db = factory(
241
+ 'test',
242
+ DatabasePluginHooks(
243
+ onDatabaseUpdated: () async {
244
+ hookCalled = true;
245
+ },
246
+ ),
247
+ )();
238
248
 
239
249
  await db.appendBundle(_bundle('x'));
240
250
  await db.commitBundle();
@@ -269,25 +279,19 @@ void main() {
269
279
 
270
280
  test('replaces patches', () {
271
281
  final base = _bundle('a');
272
- final updated = mergeBundleUpdate(base, {
273
- 'patches': [],
274
- });
282
+ final updated = mergeBundleUpdate(base, {'patches': []});
275
283
  expect(updated.patches, isEmpty);
276
284
  });
277
285
 
278
286
  test('updates scalar fields', () {
279
287
  final base = _bundle('a');
280
- final updated = mergeBundleUpdate(base, {
281
- 'enabled': false,
282
- });
288
+ final updated = mergeBundleUpdate(base, {'enabled': false});
283
289
  expect(updated.enabled, false);
284
290
  });
285
291
 
286
292
  test('preserves existing fields not in patch', () {
287
293
  final base = _bundle('a');
288
- final updated = mergeBundleUpdate(base, {
289
- 'enabled': false,
290
- });
294
+ final updated = mergeBundleUpdate(base, {'enabled': false});
291
295
  expect(updated.fileHash, 'hash_a');
292
296
  });
293
297
  });
@@ -73,9 +73,14 @@ void main() {
73
73
  supportedProtocol: 'mock://',
74
74
  factory: (config) => _MockNodeProfile(),
75
75
  );
76
- final plugin = factory('cfg', StoragePluginHooks(
77
- onStorageUploaded: () async { hookCalled = true; },
78
- ));
76
+ final plugin = factory(
77
+ 'cfg',
78
+ StoragePluginHooks(
79
+ onStorageUploaded: () async {
80
+ hookCalled = true;
81
+ },
82
+ ),
83
+ );
79
84
  await plugin.profiles.node!.upload('key', '/path');
80
85
  expect(hookCalled, isTrue);
81
86
  });
@@ -131,8 +136,9 @@ void main() {
131
136
  factory: (config) => _MockRuntimeProfile(),
132
137
  );
133
138
  final plugin = factory('cfg');
134
- final url = await plugin.profiles.runtime!
135
- .getDownloadUrl('mock://file.zip');
139
+ final url = await plugin.profiles.runtime!.getDownloadUrl(
140
+ 'mock://file.zip',
141
+ );
136
142
  expect(url['url'], contains('file.zip'));
137
143
  });
138
144
  });
@@ -142,10 +148,8 @@ void main() {
142
148
  final factory = createUniversalStoragePlugin<String>(
143
149
  name: 'testUniversal',
144
150
  supportedProtocol: 'mock://',
145
- factory: (config) => (
146
- node: _MockNodeProfile(),
147
- runtime: _MockRuntimeProfile(),
148
- ),
151
+ factory: (config) =>
152
+ (node: _MockNodeProfile(), runtime: _MockRuntimeProfile()),
149
153
  );
150
154
  final plugin = factory('cfg');
151
155
  expect(plugin.name, 'testUniversal');
@@ -157,18 +161,17 @@ void main() {
157
161
  final factory = createUniversalStoragePlugin<String>(
158
162
  name: 'testUniversal',
159
163
  supportedProtocol: 'mock://',
160
- factory: (config) => (
161
- node: _MockNodeProfile(),
162
- runtime: _MockRuntimeProfile(),
163
- ),
164
+ factory: (config) =>
165
+ (node: _MockNodeProfile(), runtime: _MockRuntimeProfile()),
164
166
  );
165
167
  final plugin = factory('cfg');
166
168
 
167
169
  final nodeResult = await plugin.profiles.node!.upload('k', '/p');
168
170
  expect(nodeResult, isNotEmpty);
169
171
 
170
- final runtimeUrl = await plugin.profiles.runtime!
171
- .getDownloadUrl('mock://file');
172
+ final runtimeUrl = await plugin.profiles.runtime!.getDownloadUrl(
173
+ 'mock://file',
174
+ );
172
175
  expect(runtimeUrl, isNotEmpty);
173
176
  });
174
177
 
@@ -6,9 +6,14 @@ void main() {
6
6
  group('generateMinBundleId', () {
7
7
  test('produces valid UUID v7 format', () {
8
8
  final id = generateMinBundleId();
9
- expect(id, matches(RegExp(
10
- r'^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
11
- )));
9
+ expect(
10
+ id,
11
+ matches(
12
+ RegExp(
13
+ r'^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
14
+ ),
15
+ ),
16
+ );
12
17
  });
13
18
 
14
19
  test('has zeroed random bits', () {