@_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.
- package/README.md +1 -1
- package/bin/flutter-ota-linux-x64 +0 -0
- package/dart-src/packages/cli-tools/.dart_tool/package_config.json +46 -76
- package/dart-src/packages/cli-tools/.dart_tool/package_graph.json +140 -166
- package/dart-src/packages/cli-tools/README.md +1 -1
- package/dart-src/packages/cli-tools/lib/flutter_ota_kit_cli.dart +30 -17
- package/dart-src/packages/cli-tools/lib/src/backend.dart +30 -31
- package/dart-src/packages/cli-tools/lib/src/cli_base.dart +3 -1
- package/dart-src/packages/cli-tools/lib/src/commands/build.dart +44 -43
- package/dart-src/packages/cli-tools/lib/src/commands/bundle.dart +265 -239
- package/dart-src/packages/cli-tools/lib/src/commands/channel.dart +75 -66
- package/dart-src/packages/cli-tools/lib/src/commands/config_command.dart +39 -35
- package/dart-src/packages/cli-tools/lib/src/commands/console.dart +30 -27
- package/dart-src/packages/cli-tools/lib/src/commands/deploy.dart +88 -72
- package/dart-src/packages/cli-tools/lib/src/commands/doctor.dart +66 -29
- package/dart-src/packages/cli-tools/lib/src/commands/fingerprint.dart +10 -6
- package/dart-src/packages/cli-tools/lib/src/commands/init.dart +299 -190
- package/dart-src/packages/cli-tools/lib/src/commands/keys.dart +24 -23
- package/dart-src/packages/cli-tools/lib/src/commands/migrate.dart +111 -97
- package/dart-src/packages/cli-tools/lib/src/commands/pocketbase.dart +237 -0
- package/dart-src/packages/cli-tools/lib/src/commands/rollback.dart +43 -34
- package/dart-src/packages/cli-tools/lib/src/commands/storage.dart +57 -53
- package/dart-src/packages/cli-tools/lib/src/config.dart +227 -93
- package/dart-src/packages/cli-tools/lib/src/operations.dart +9 -8
- package/dart-src/packages/cli-tools/lib/src/pack.dart +26 -25
- package/dart-src/packages/cli-tools/lib/src/pocketbase/data_bootstrap.dart +39 -0
- package/dart-src/packages/cli-tools/lib/src/pocketbase/hooks/bundles.pb.js +56 -0
- package/dart-src/packages/cli-tools/lib/src/pocketbase/installer.dart +189 -0
- package/dart-src/packages/cli-tools/lib/src/pocketbase/process_manager.dart +123 -0
- package/dart-src/packages/cli-tools/lib/src/pocketbase/schema_installer.dart +237 -0
- package/dart-src/packages/cli-tools/lib/src/runner.dart +36 -15
- package/dart-src/packages/cli-tools/lib/src/sign.dart +13 -5
- package/dart-src/packages/cli-tools/lib/src/ui/ui.dart +10 -13
- package/dart-src/packages/cli-tools/lib/src/util.dart +3 -1
- package/dart-src/packages/cli-tools/pubspec.lock +69 -116
- package/dart-src/packages/cli-tools/pubspec.yaml +25 -7
- package/dart-src/packages/cli-tools/test/backends_test.dart +62 -32
- package/dart-src/packages/cli-tools/test/build_pack_test.dart +4 -4
- package/dart-src/packages/cli-tools/test/cli_test.dart +89 -42
- package/dart-src/packages/cli-tools/test/mocks/mock_aws_s3_client.dart +8 -13
- package/dart-src/packages/cli-tools/test/mocks/mock_d1_client.dart +23 -18
- package/dart-src/packages/cli-tools/test/mocks/mock_pocketbase_client.dart +197 -0
- package/dart-src/packages/cli-tools/test/mocks/mock_postgres_client.dart +70 -46
- package/dart-src/packages/cli-tools/test/pocketbase_installer_test.dart +72 -0
- package/dart-src/packages/cli-tools/test/pocketbase_schema_test.dart +107 -0
- package/dart-src/packages/cli-tools/test/pocketbase_smoke_test.dart +59 -0
- package/dart-src/packages/core/README.md +2 -2
- package/dart-src/packages/core/example/lib/main.dart +69 -0
- package/dart-src/packages/core/lib/flutter_ota_kit_core.dart +1 -1
- package/dart-src/packages/core/lib/src/app_update_info.dart +17 -15
- package/dart-src/packages/core/lib/src/bundle.dart +102 -94
- package/dart-src/packages/core/lib/src/bundle_artifacts.dart +1 -2
- package/dart-src/packages/core/lib/src/bundle_patch_artifact.dart +15 -16
- package/dart-src/packages/core/lib/src/changed_asset.dart +24 -22
- package/dart-src/packages/core/lib/src/get_bundles_args.dart +13 -13
- package/dart-src/packages/core/lib/src/metadata.dart +9 -7
- package/dart-src/packages/core/lib/src/patch_info.dart +8 -7
- package/dart-src/packages/core/lib/src/platform.dart +4 -3
- package/dart-src/packages/core/lib/src/rollout.dart +14 -11
- package/dart-src/packages/core/lib/src/semver_range.dart +49 -39
- package/dart-src/packages/core/lib/src/semver_version.dart +8 -7
- package/dart-src/packages/core/lib/src/status.dart +4 -3
- package/dart-src/packages/core/lib/src/update_bundle_params.dart +7 -7
- package/dart-src/packages/core/lib/src/uuid.dart +1 -2
- package/dart-src/packages/core/pubspec.yaml +6 -7
- package/dart-src/packages/core/test/rollout_test.dart +15 -8
- package/dart-src/packages/core/test/semver_test.dart +5 -2
- package/dart-src/packages/core/test/types_test.dart +26 -24
- package/dart-src/packages/core/test/uuid_test.dart +3 -1
- package/dart-src/packages/core/tool/dbg.dart +1 -0
- package/dart-src/plugins/aws/CHANGELOG.md +6 -0
- package/dart-src/plugins/aws/example/lib/main.dart +60 -0
- package/dart-src/plugins/aws/lib/flutter_ota_kit_aws.dart +5 -1
- package/dart-src/plugins/aws/lib/src/aws_cloudfront_client.dart +11 -16
- package/dart-src/plugins/aws/lib/src/aws_cloudfront_signer.dart +7 -2
- package/dart-src/plugins/aws/lib/src/aws_database.dart +14 -18
- package/dart-src/plugins/aws/lib/src/aws_s3_client.dart +23 -18
- package/dart-src/plugins/aws/lib/src/aws_ssm_client.dart +5 -4
- package/dart-src/plugins/aws/lib/src/aws_storage.dart +2 -3
- package/dart-src/plugins/aws/lib/src/aws_storage_profile.dart +10 -16
- package/dart-src/plugins/aws/lib/src/with_cloudfront_signed_url.dart +6 -9
- package/dart-src/plugins/aws/pubspec.yaml +15 -10
- package/dart-src/plugins/aws/test/aws_database_test.dart +51 -57
- package/dart-src/plugins/aws/test/mock_aws_s3_client.dart +8 -13
- package/dart-src/plugins/cloudflare/CHANGELOG.md +7 -0
- package/dart-src/plugins/cloudflare/example/lib/main.dart +62 -0
- package/dart-src/plugins/cloudflare/lib/flutter_ota_kit_cloudflare.dart +4 -2
- package/dart-src/plugins/cloudflare/lib/src/cloudflare_worker_database.dart +3 -3
- package/dart-src/plugins/cloudflare/lib/src/d1_build_where.dart +3 -2
- package/dart-src/plugins/cloudflare/lib/src/d1_bundle_mapper.dart +24 -27
- package/dart-src/plugins/cloudflare/lib/src/d1_database_plugin.dart +22 -30
- package/dart-src/plugins/cloudflare/lib/src/r2_config.dart +1 -1
- package/dart-src/plugins/cloudflare/lib/src/r2_s3_client.dart +21 -29
- package/dart-src/plugins/cloudflare/lib/src/r2_storage.dart +7 -7
- package/dart-src/plugins/cloudflare/lib/src/r2_storage_profile.dart +7 -15
- package/dart-src/plugins/cloudflare/pubspec.yaml +14 -9
- package/dart-src/plugins/cloudflare/test/cloudflare_worker_database_test.dart +46 -42
- package/dart-src/plugins/cloudflare/test/d1_database_test.dart +100 -90
- package/dart-src/plugins/cloudflare/test/mock_d1_client.dart +23 -18
- package/dart-src/plugins/cloudflare/test/mock_r2_client.dart +8 -13
- package/dart-src/plugins/cloudflare/test/r2_storage_test.dart +1 -4
- package/dart-src/plugins/plugin-core/CHANGELOG.md +16 -0
- package/dart-src/plugins/plugin-core/example/lib/main.dart +61 -0
- package/dart-src/plugins/plugin-core/lib/flutter_ota_kit_plugin_core.dart +3 -7
- package/dart-src/plugins/plugin-core/lib/src/asset_storage_layout.dart +5 -5
- package/dart-src/plugins/plugin-core/lib/src/bundle_helpers.dart +23 -0
- package/dart-src/plugins/plugin-core/lib/src/bundle_storage_layout.dart +16 -10
- package/dart-src/plugins/plugin-core/lib/src/bundle_unit_of_work.dart +31 -26
- package/dart-src/plugins/plugin-core/lib/src/calculate_pagination.dart +5 -1
- package/dart-src/plugins/plugin-core/lib/src/content_addressed_assets.dart +1 -1
- package/dart-src/plugins/plugin-core/lib/src/create_blob_database_plugin.dart +78 -71
- package/dart-src/plugins/plugin-core/lib/src/create_database_plugin.dart +56 -35
- package/dart-src/plugins/plugin-core/lib/src/create_storage_plugin.dart +10 -13
- package/dart-src/plugins/plugin-core/lib/src/paginate_bundles.dart +30 -17
- package/dart-src/plugins/plugin-core/lib/src/parse_storage_uri.dart +3 -1
- package/dart-src/plugins/plugin-core/lib/src/query_bundles.dart +5 -3
- package/dart-src/plugins/plugin-core/lib/src/request_update_bundle_state.dart +2 -4
- package/dart-src/plugins/plugin-core/lib/src/storage_helpers.dart +18 -0
- package/dart-src/plugins/plugin-core/lib/src/types.dart +7 -6
- package/dart-src/plugins/plugin-core/pubspec.yaml +12 -9
- package/dart-src/plugins/plugin-core/test/asset_storage_layout_test.dart +13 -9
- package/dart-src/plugins/plugin-core/test/bundle_unit_of_work_test.dart +28 -15
- package/dart-src/plugins/plugin-core/test/create_blob_database_plugin_test.dart +254 -122
- package/dart-src/plugins/plugin-core/test/create_database_plugin_test.dart +36 -32
- package/dart-src/plugins/plugin-core/test/create_storage_plugin_test.dart +18 -15
- package/dart-src/plugins/plugin-core/test/generate_min_bundle_id_test.dart +8 -3
- package/dart-src/plugins/plugin-core/test/get_update_info_test.dart +682 -693
- package/dart-src/plugins/plugin-core/test/helpers_test.dart +45 -21
- package/dart-src/plugins/plugin-core/test/query_bundles_test.dart +76 -13
- package/dart-src/plugins/plugin-core/test/uuidv7_test.dart +20 -9
- package/dart-src/plugins/pocketbase/CHANGELOG.md +8 -0
- package/dart-src/plugins/pocketbase/LICENSE +21 -0
- package/dart-src/plugins/pocketbase/README.md +54 -0
- package/dart-src/plugins/pocketbase/example/lib/main.dart +62 -0
- package/dart-src/plugins/pocketbase/lib/flutter_ota_kit_pocketbase.dart +28 -0
- package/dart-src/plugins/pocketbase/lib/src/pocketbase_bundle_mapper.dart +121 -0
- package/dart-src/plugins/pocketbase/lib/src/pocketbase_client.dart +349 -0
- package/dart-src/plugins/pocketbase/lib/src/pocketbase_config.dart +61 -0
- package/dart-src/plugins/pocketbase/lib/src/pocketbase_database.dart +278 -0
- package/dart-src/plugins/pocketbase/lib/src/pocketbase_storage.dart +255 -0
- package/dart-src/plugins/pocketbase/pubspec.yaml +26 -0
- package/dart-src/plugins/pocketbase/test/pb_uri_test.dart +12 -0
- package/dart-src/plugins/postgres/CHANGELOG.md +6 -0
- package/dart-src/plugins/postgres/example/lib/main.dart +67 -0
- package/dart-src/plugins/postgres/lib/flutter_ota_kit_postgres.dart +3 -6
- package/dart-src/plugins/postgres/lib/src/postgres_bundle_mapper.dart +32 -52
- package/dart-src/plugins/postgres/lib/src/postgres_config.dart +3 -1
- package/dart-src/plugins/postgres/lib/src/postgres_database.dart +28 -38
- package/dart-src/plugins/postgres/lib/src/postgres_get_update_info.dart +16 -14
- package/dart-src/plugins/postgres/lib/src/postgres_storage.dart +26 -14
- package/dart-src/plugins/postgres/lib/src/postgres_types.dart +27 -28
- package/dart-src/plugins/postgres/pubspec.yaml +14 -9
- package/dart-src/plugins/postgres/test/mock_postgres_client.dart +62 -39
- package/dart-src/plugins/postgres/test/postgres_bundle_mapper_test.dart +3 -4
- package/dart-src/plugins/postgres/test/postgres_database_test.dart +102 -73
- package/dart-src/plugins/postgres/test/postgres_storage_runtime_test.dart +60 -0
- package/dart-src/plugins/supabase/CHANGELOG.md +17 -0
- package/dart-src/plugins/supabase/README.md +2 -2
- package/dart-src/plugins/supabase/example/lib/main.dart +63 -0
- package/dart-src/plugins/supabase/lib/flutter_ota_kit_supabase.dart +2 -0
- package/dart-src/plugins/supabase/lib/src/error_message.dart +11 -0
- package/dart-src/plugins/supabase/lib/src/supabase_bundle_mapper.dart +34 -58
- package/dart-src/plugins/supabase/lib/src/supabase_client_adapter.dart +3 -13
- package/dart-src/plugins/supabase/lib/src/supabase_client_http.dart +34 -52
- package/dart-src/plugins/supabase/lib/src/supabase_database.dart +38 -30
- package/dart-src/plugins/supabase/lib/src/supabase_edge_function_storage.dart +21 -29
- package/dart-src/plugins/supabase/lib/src/supabase_signed_url_batcher.dart +7 -19
- package/dart-src/plugins/supabase/lib/src/supabase_storage.dart +18 -29
- package/dart-src/plugins/supabase/lib/src/types.dart +26 -26
- package/dart-src/plugins/supabase/pubspec.yaml +14 -9
- package/dart-src/plugins/supabase/test/mock_supabase_client.dart +57 -57
- package/dart-src/plugins/supabase/test/supabase_bundle_mapper_test.dart +30 -27
- package/dart-src/plugins/supabase/test/supabase_database_test.dart +26 -35
- package/dart-src/plugins/supabase/test/supabase_storage_test.dart +27 -34
- package/package.json +2 -2
- 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) =>
|
|
89
|
-
|
|
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) =>
|
|
100
|
-
|
|
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,
|
|
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) =>
|
|
125
|
-
|
|
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,
|
|
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) =>
|
|
152
|
-
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
236
|
-
|
|
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(
|
|
77
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
10
|
-
|
|
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', () {
|