@_nazmiforreal/flutter-ota 0.1.5 → 0.1.7

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 (147) hide show
  1. package/README.md +13 -13
  2. package/bin/{flutter-patcher-linux-x64 → flutter-ota-linux-x64} +0 -0
  3. package/bin/{flutter-patcher.js → flutter-ota.js} +4 -4
  4. package/dart-src/packages/cli-tools/bin/{flutter_patcher.dart → flutter_ota_kit.dart} +2 -2
  5. package/dart-src/packages/cli-tools/lib/{flutter_patcher_cli.dart → flutter_ota_kit_cli.dart} +5 -3
  6. package/dart-src/packages/cli-tools/lib/src/backend.dart +6 -25
  7. package/dart-src/packages/cli-tools/lib/src/cli_base.dart +10 -4
  8. package/dart-src/packages/cli-tools/lib/src/commands/build.dart +5 -3
  9. package/dart-src/packages/cli-tools/lib/src/commands/bundle.dart +279 -10
  10. package/dart-src/packages/cli-tools/lib/src/commands/channel.dart +7 -7
  11. package/dart-src/packages/cli-tools/lib/src/commands/config_command.dart +5 -5
  12. package/dart-src/packages/cli-tools/lib/src/commands/console.dart +4 -4
  13. package/dart-src/packages/cli-tools/lib/src/commands/deploy.dart +4 -4
  14. package/dart-src/packages/cli-tools/lib/src/commands/doctor.dart +3 -3
  15. package/dart-src/packages/cli-tools/lib/src/commands/fingerprint.dart +1 -1
  16. package/dart-src/packages/cli-tools/lib/src/commands/init.dart +294 -45
  17. package/dart-src/packages/cli-tools/lib/src/commands/keys.dart +1 -1
  18. package/dart-src/packages/cli-tools/lib/src/commands/migrate.dart +218 -69
  19. package/dart-src/packages/cli-tools/lib/src/commands/rollback.dart +5 -5
  20. package/dart-src/packages/cli-tools/lib/src/commands/storage.dart +117 -0
  21. package/dart-src/packages/cli-tools/lib/src/config.dart +29 -78
  22. package/dart-src/packages/cli-tools/lib/src/operations.dart +4 -4
  23. package/dart-src/packages/cli-tools/lib/src/pack.dart +12 -6
  24. package/dart-src/packages/cli-tools/lib/src/runner.dart +25 -6
  25. package/dart-src/packages/cli-tools/lib/src/ui/ui.dart +5 -3
  26. package/dart-src/packages/cli-tools/lib/src/verbose.dart +3 -0
  27. package/dart-src/packages/cli-tools/migrations/aws/README.md +7 -0
  28. package/dart-src/packages/cli-tools/migrations/postgres/bundles.sql +45 -0
  29. package/dart-src/packages/cli-tools/migrations/postgres/get_target_app_version_list.sql +21 -0
  30. package/dart-src/packages/cli-tools/migrations/postgres/get_update_info_by_app_version.sql +126 -0
  31. package/dart-src/packages/cli-tools/migrations/postgres/get_update_info_by_fingerprint_hash.sql +125 -0
  32. package/dart-src/packages/cli-tools/migrations/postgres/hash_user_id.sql +30 -0
  33. package/dart-src/packages/cli-tools/migrations/postgres/is_device_eligible.sql +237 -0
  34. package/dart-src/packages/cli-tools/migrations/supabase/20260520014100_hot-updater_rls.sql +11 -0
  35. package/dart-src/packages/cli-tools/pubspec.yaml +9 -11
  36. package/dart-src/packages/cli-tools/test/backends_test.dart +4 -4
  37. package/dart-src/packages/cli-tools/test/build_pack_test.dart +1 -1
  38. package/dart-src/packages/cli-tools/test/cli_test.dart +3 -3
  39. package/dart-src/packages/cli-tools/test/mocks/mock_aws_s3_client.dart +2 -2
  40. package/dart-src/packages/cli-tools/test/mocks/mock_d1_client.dart +2 -2
  41. package/dart-src/packages/cli-tools/test/mocks/mock_postgres_client.dart +7 -7
  42. package/dart-src/packages/core/lib/{flutter_patcher_core.dart → flutter_ota_kit_core.dart} +1 -1
  43. package/dart-src/packages/core/pubspec.yaml +2 -2
  44. package/dart-src/packages/core/test/rollout_test.dart +1 -1
  45. package/dart-src/packages/core/test/semver_test.dart +1 -1
  46. package/dart-src/packages/core/test/types_test.dart +2 -2
  47. package/dart-src/packages/core/test/uuid_test.dart +1 -1
  48. package/dart-src/packages/core/tool/dbg.dart +1 -1
  49. package/dart-src/plugins/aws/lib/{flutter_patcher_aws.dart → flutter_ota_kit_aws.dart} +0 -2
  50. package/dart-src/plugins/aws/lib/src/aws_cloudfront_client.dart +1 -1
  51. package/dart-src/plugins/aws/lib/src/aws_database.dart +1 -1
  52. package/dart-src/plugins/aws/lib/src/aws_s3_client.dart +1 -1
  53. package/dart-src/plugins/aws/lib/src/aws_storage.dart +1 -1
  54. package/dart-src/plugins/aws/lib/src/aws_storage_profile.dart +25 -3
  55. package/dart-src/plugins/aws/lib/src/with_cloudfront_signed_url.dart +1 -1
  56. package/dart-src/plugins/aws/pubspec.yaml +4 -4
  57. package/dart-src/plugins/aws/test/aws_database_test.dart +3 -3
  58. package/dart-src/plugins/aws/test/aws_storage_test.dart +2 -2
  59. package/dart-src/plugins/aws/test/mock_aws_s3_client.dart +2 -2
  60. package/dart-src/plugins/cloudflare/lib/src/cloudflare_worker_database.dart +1 -1
  61. package/dart-src/plugins/cloudflare/lib/src/d1_build_where.dart +1 -1
  62. package/dart-src/plugins/cloudflare/lib/src/d1_bundle_mapper.dart +1 -1
  63. package/dart-src/plugins/cloudflare/lib/src/d1_database.dart +1 -1
  64. package/dart-src/plugins/cloudflare/lib/src/d1_database_plugin.dart +2 -2
  65. package/dart-src/plugins/cloudflare/lib/src/r2_s3_client.dart +1 -1
  66. package/dart-src/plugins/cloudflare/lib/src/r2_storage.dart +1 -1
  67. package/dart-src/plugins/cloudflare/lib/src/r2_storage_profile.dart +1 -1
  68. package/dart-src/plugins/cloudflare/pubspec.yaml +4 -4
  69. package/dart-src/plugins/cloudflare/test/cloudflare_worker_database_test.dart +2 -2
  70. package/dart-src/plugins/cloudflare/test/d1_bundle_mapper_test.dart +2 -2
  71. package/dart-src/plugins/cloudflare/test/d1_database_test.dart +2 -2
  72. package/dart-src/plugins/cloudflare/test/mock_d1_client.dart +2 -2
  73. package/dart-src/plugins/cloudflare/test/mock_r2_client.dart +2 -2
  74. package/dart-src/plugins/cloudflare/test/r2_storage_test.dart +2 -2
  75. package/dart-src/plugins/plugin-core/lib/{flutter_patcher_plugin_core.dart → flutter_ota_kit_plugin_core.dart} +1 -1
  76. package/dart-src/plugins/plugin-core/lib/src/create_blob_database_plugin.dart +1 -1
  77. package/dart-src/plugins/plugin-core/lib/src/filter_compatible_app_versions.dart +1 -1
  78. package/dart-src/plugins/plugin-core/lib/src/get_update_info.dart +1 -1
  79. package/dart-src/plugins/plugin-core/lib/src/request_update_bundle_state.dart +1 -1
  80. package/dart-src/plugins/plugin-core/lib/src/resolve_update_info_from_bundles.dart +1 -1
  81. package/dart-src/plugins/plugin-core/lib/src/types.dart +2 -2
  82. package/dart-src/plugins/plugin-core/pubspec.yaml +3 -3
  83. package/dart-src/plugins/plugin-core/test/asset_storage_layout_test.dart +3 -3
  84. package/dart-src/plugins/plugin-core/test/bundle_unit_of_work_store_test.dart +2 -2
  85. package/dart-src/plugins/plugin-core/test/bundle_unit_of_work_test.dart +2 -2
  86. package/dart-src/plugins/plugin-core/test/create_blob_database_plugin_test.dart +2 -2
  87. package/dart-src/plugins/plugin-core/test/create_database_plugin_test.dart +5 -5
  88. package/dart-src/plugins/plugin-core/test/create_storage_plugin_test.dart +2 -2
  89. package/dart-src/plugins/plugin-core/test/generate_min_bundle_id_test.dart +2 -2
  90. package/dart-src/plugins/plugin-core/test/get_update_info_test.dart +2 -2
  91. package/dart-src/plugins/plugin-core/test/helpers_test.dart +2 -2
  92. package/dart-src/plugins/plugin-core/test/query_bundles_test.dart +2 -2
  93. package/dart-src/plugins/plugin-core/test/request_update_bundle_state_test.dart +3 -3
  94. package/dart-src/plugins/plugin-core/test/uuidv7_test.dart +1 -1
  95. package/dart-src/plugins/postgres/lib/{flutter_patcher_postgres.dart → flutter_ota_kit_postgres.dart} +1 -1
  96. package/dart-src/plugins/postgres/lib/src/postgres_bundle_mapper.dart +1 -1
  97. package/dart-src/plugins/postgres/lib/src/postgres_database.dart +2 -2
  98. package/dart-src/plugins/postgres/lib/src/postgres_get_update_info.dart +2 -2
  99. package/dart-src/plugins/postgres/lib/src/postgres_storage.dart +9 -9
  100. package/dart-src/plugins/postgres/lib/src/postgres_types.dart +1 -1
  101. package/dart-src/plugins/postgres/pubspec.yaml +4 -4
  102. package/dart-src/plugins/postgres/test/mock_postgres_client.dart +2 -2
  103. package/dart-src/plugins/postgres/test/postgres_bundle_mapper_test.dart +2 -2
  104. package/dart-src/plugins/postgres/test/postgres_database_test.dart +2 -2
  105. package/dart-src/plugins/supabase/lib/edge.dart +1 -1
  106. package/dart-src/plugins/supabase/lib/{flutter_patcher_supabase.dart → flutter_ota_kit_supabase.dart} +1 -1
  107. package/dart-src/plugins/supabase/lib/src/supabase_bundle_mapper.dart +1 -1
  108. package/dart-src/plugins/supabase/lib/src/supabase_client_http.dart +60 -20
  109. package/dart-src/plugins/supabase/lib/src/supabase_database.dart +2 -2
  110. package/dart-src/plugins/supabase/lib/src/supabase_edge_function_database.dart +1 -1
  111. package/dart-src/plugins/supabase/lib/src/supabase_edge_function_storage.dart +1 -1
  112. package/dart-src/plugins/supabase/lib/src/supabase_storage.dart +2 -5
  113. package/dart-src/plugins/supabase/pubspec.yaml +4 -4
  114. package/dart-src/plugins/supabase/test/mock_supabase_client.dart +5 -5
  115. package/dart-src/plugins/supabase/test/supabase_bundle_mapper_test.dart +3 -3
  116. package/dart-src/plugins/supabase/test/supabase_database_test.dart +3 -3
  117. package/dart-src/plugins/supabase/test/supabase_storage_test.dart +2 -2
  118. package/migrations/aws/README.md +7 -0
  119. package/migrations/cloudflare/0001_hot-updater_init.sql +16 -0
  120. package/migrations/cloudflare/0002_hot-updater_0.13.0.sql +8 -0
  121. package/migrations/cloudflare/0003_hot-updater_0.18.0.sql +38 -0
  122. package/migrations/cloudflare/0004_hot-updater_0.29.0.sql +11 -0
  123. package/migrations/cloudflare/0005_hot-updater_0.31.0.sql +24 -0
  124. package/migrations/cloudflare/bundles.sql +42 -0
  125. package/migrations/postgres/bundles.sql +45 -0
  126. package/migrations/postgres/get_target_app_version_list.sql +21 -0
  127. package/migrations/postgres/get_update_info_by_app_version.sql +126 -0
  128. package/migrations/postgres/get_update_info_by_fingerprint_hash.sql +125 -0
  129. package/migrations/postgres/hash_user_id.sql +30 -0
  130. package/migrations/postgres/is_device_eligible.sql +237 -0
  131. package/package.json +4 -4
  132. package/scripts/postinstall.js +15 -15
  133. package/scripts/vendor.sh +1 -1
  134. package/dart-src/packages/cli-tools/.dart_tool/package_config.json +0 -496
  135. package/dart-src/packages/cli-tools/.dart_tool/package_graph.json +0 -743
  136. package/dart-src/packages/cli-tools/pubspec.lock +0 -638
  137. package/dart-src/packages/cli-tools/test/standalone_backend_test.dart +0 -315
  138. package/dart-src/plugins/aws/lib/src/aws_lambda_edge_storage.dart +0 -72
  139. package/dart-src/plugins/aws/test/aws_lambda_edge_storage_test.dart +0 -190
  140. package/dart-src/plugins/standalone/.gitkeep +0 -0
  141. package/dart-src/plugins/standalone/lib/flutter_patcher_standalone.dart +0 -12
  142. package/dart-src/plugins/standalone/lib/src/standalone_config.dart +0 -107
  143. package/dart-src/plugins/standalone/lib/src/standalone_database.dart +0 -233
  144. package/dart-src/plugins/standalone/lib/src/standalone_storage.dart +0 -175
  145. package/dart-src/plugins/standalone/pubspec.yaml +0 -18
  146. package/dart-src/plugins/standalone/test/standalone_test.dart +0 -264
  147. /package/dart-src/plugins/cloudflare/lib/{flutter_patcher_cloudflare.dart → flutter_ota_kit_cloudflare.dart} +0 -0
@@ -1,6 +1,6 @@
1
1
  import 'package:path/path.dart' show basename;
2
2
 
3
- import 'package:flutter_patcher_plugin_core/flutter_patcher_plugin_core.dart'
3
+ import 'package:flutter_ota_kit_plugin_core/flutter_ota_kit_plugin_core.dart'
4
4
  show
5
5
  NodeStorageProfile,
6
6
  RuntimeStorageProfile,
@@ -87,9 +87,31 @@ class _S3NodeProfile implements NodeStorageProfile {
87
87
  await writeFileBytes(filePath, bytes);
88
88
  }
89
89
 
90
+ String _getRelativeKey(String key) {
91
+ final bp = _config.basePath;
92
+ if (bp != null && bp.isNotEmpty && key.startsWith(bp)) {
93
+ var stripped = key.substring(bp.length);
94
+ if (stripped.startsWith('/')) stripped = stripped.substring(1);
95
+ return stripped;
96
+ }
97
+ return key;
98
+ }
99
+
90
100
  @override
91
- Future<List<StorageObject>> listObjects([String? prefix]) =>
92
- _client.listObjects(prefix == null ? null : _getListPrefix(prefix));
101
+ Future<List<StorageObject>> listObjects([String? prefix]) async {
102
+ final list = await _client.listObjects(
103
+ prefix == null ? null : _getListPrefix(prefix),
104
+ );
105
+ return list.map((o) {
106
+ final relativeKey = _getRelativeKey(o.key);
107
+ return StorageObject(
108
+ key: relativeKey,
109
+ storageUri: 's3://${_config.bucketName}/$relativeKey',
110
+ size: o.size,
111
+ lastModifiedAt: o.lastModifiedAt,
112
+ );
113
+ }).toList();
114
+ }
93
115
 
94
116
  @override
95
117
  Future<void> deleteObjects(List<String> keys) =>
@@ -1,4 +1,4 @@
1
- import 'package:flutter_patcher_plugin_core/flutter_patcher_plugin_core.dart'
1
+ import 'package:flutter_ota_kit_plugin_core/flutter_ota_kit_plugin_core.dart'
2
2
  show
3
3
  RuntimeStorageProfile,
4
4
  StoragePlugin,
@@ -1,5 +1,5 @@
1
- name: flutter_patcher_aws
2
- description: AWS S3 storage + S3/DynamoDB database plugins for flutter_patcher (faithful port of hot-updater plugins/aws).
1
+ name: flutter_ota_kit_aws
2
+ description: AWS S3 storage + S3/DynamoDB database plugins for flutter_ota_kit (faithful port of hot-updater plugins/aws).
3
3
  version: 0.1.0
4
4
  publish_to: none
5
5
 
@@ -7,9 +7,9 @@ environment:
7
7
  sdk: ">=3.3.0 <4.0.0"
8
8
 
9
9
  dependencies:
10
- flutter_patcher_core:
10
+ flutter_ota_kit_core:
11
11
  path: ../../packages/core
12
- flutter_patcher_plugin_core:
12
+ flutter_ota_kit_plugin_core:
13
13
  path: ../../plugins/plugin-core
14
14
  crypto: ^3.0.0
15
15
  http: ^1.2.0
@@ -1,12 +1,12 @@
1
- import 'package:flutter_patcher_core/flutter_patcher_core.dart'
1
+ import 'package:flutter_ota_kit_core/flutter_ota_kit_core.dart'
2
2
  show
3
3
  AppVersionGetBundlesArgs,
4
4
  Bundle,
5
5
  Platform,
6
6
  nilUuid;
7
- import 'package:flutter_patcher_plugin_core/flutter_patcher_plugin_core.dart'
7
+ import 'package:flutter_ota_kit_plugin_core/flutter_ota_kit_plugin_core.dart'
8
8
  show DatabaseBundleQueryOptions, DatabasePlugin;
9
- import 'package:flutter_patcher_aws/flutter_patcher_aws.dart'
9
+ import 'package:flutter_ota_kit_aws/flutter_ota_kit_aws.dart'
10
10
  show S3DatabaseConfig, AwsS3ClientLike, AwsCloudFrontClientLike, s3Database;
11
11
  import 'package:test/test.dart';
12
12
 
@@ -1,7 +1,7 @@
1
1
  import 'dart:io' show Directory, File;
2
2
 
3
- import 'package:flutter_patcher_aws/flutter_patcher_aws.dart' show s3Storage;
4
- import 'package:flutter_patcher_plugin_core/flutter_patcher_plugin_core.dart'
3
+ import 'package:flutter_ota_kit_aws/flutter_ota_kit_aws.dart' show s3Storage;
4
+ import 'package:flutter_ota_kit_plugin_core/flutter_ota_kit_plugin_core.dart'
5
5
  show StoragePlugin;
6
6
  import 'package:path/path.dart' show basename;
7
7
  import 'package:test/test.dart';
@@ -1,9 +1,9 @@
1
1
  import 'dart:convert' show utf8;
2
2
 
3
- import 'package:flutter_patcher_plugin_core/flutter_patcher_plugin_core.dart'
3
+ import 'package:flutter_ota_kit_plugin_core/flutter_ota_kit_plugin_core.dart'
4
4
  show StorageObject;
5
5
 
6
- import 'package:flutter_patcher_aws/flutter_patcher_aws.dart'
6
+ import 'package:flutter_ota_kit_aws/flutter_ota_kit_aws.dart'
7
7
  show AwsS3ClientLike, AwsS3StorageConfig;
8
8
 
9
9
  /// In-memory store backing [MockAwsS3Client].
@@ -1,4 +1,4 @@
1
- import 'package:flutter_patcher_plugin_core/flutter_patcher_plugin_core.dart'
1
+ import 'package:flutter_ota_kit_plugin_core/flutter_ota_kit_plugin_core.dart'
2
2
  show createDatabasePlugin;
3
3
 
4
4
  import 'd1_client.dart' show D1ClientLike;
@@ -1,6 +1,6 @@
1
1
  import 'dart:convert' show jsonEncode;
2
2
 
3
- import 'package:flutter_patcher_plugin_core/flutter_patcher_plugin_core.dart'
3
+ import 'package:flutter_ota_kit_plugin_core/flutter_ota_kit_plugin_core.dart'
4
4
  show DatabaseBundleQueryWhere;
5
5
 
6
6
  /// Result of building a WHERE clause: SQL fragment plus positional params.
@@ -1,6 +1,6 @@
1
1
  import 'dart:convert' show jsonDecode;
2
2
 
3
- import 'package:flutter_patcher_core/flutter_patcher_core.dart'
3
+ import 'package:flutter_ota_kit_core/flutter_ota_kit_core.dart'
4
4
  show Bundle, BundleMetadata, BundlePatchArtifact, Platform, getBundlePatches;
5
5
 
6
6
  /// Default rollout cohort count — full rollout in the Dart port's per-mille
@@ -1,4 +1,4 @@
1
- import 'package:flutter_patcher_plugin_core/flutter_patcher_plugin_core.dart'
1
+ import 'package:flutter_ota_kit_plugin_core/flutter_ota_kit_plugin_core.dart'
2
2
  show createDatabasePlugin;
3
3
 
4
4
  import 'd1_config.dart' show D1DatabaseConfig, resolveD1Client;
@@ -1,6 +1,6 @@
1
1
  import 'dart:convert' show jsonEncode;
2
2
 
3
- import 'package:flutter_patcher_core/flutter_patcher_core.dart'
3
+ import 'package:flutter_ota_kit_core/flutter_ota_kit_core.dart'
4
4
  show
5
5
  AppVersionGetBundlesArgs,
6
6
  Bundle,
@@ -8,7 +8,7 @@ import 'package:flutter_patcher_core/flutter_patcher_core.dart'
8
8
  GetBundlesArgs,
9
9
  UpdateInfo,
10
10
  UpdateStrategy;
11
- import 'package:flutter_patcher_plugin_core/flutter_patcher_plugin_core.dart'
11
+ import 'package:flutter_ota_kit_plugin_core/flutter_ota_kit_plugin_core.dart'
12
12
  show
13
13
  AbstractDatabasePlugin,
14
14
  BundleChange,
@@ -3,7 +3,7 @@ import 'dart:io' show File;
3
3
  import 'dart:typed_data' show Uint8List;
4
4
 
5
5
  import 'package:crypto/crypto.dart' show Hmac, sha256;
6
- import 'package:flutter_patcher_plugin_core/flutter_patcher_plugin_core.dart'
6
+ import 'package:flutter_ota_kit_plugin_core/flutter_ota_kit_plugin_core.dart'
7
7
  show StorageObject;
8
8
  import 'package:http/http.dart' show Client, Request, Response;
9
9
 
@@ -1,4 +1,4 @@
1
- import 'package:flutter_patcher_plugin_core/flutter_patcher_plugin_core.dart'
1
+ import 'package:flutter_ota_kit_plugin_core/flutter_ota_kit_plugin_core.dart'
2
2
  show StoragePlugin, createUniversalStoragePlugin;
3
3
 
4
4
  import 'r2_config.dart' show R2S3StorageConfig;
@@ -1,6 +1,6 @@
1
1
  import 'package:path/path.dart' show basename;
2
2
 
3
- import 'package:flutter_patcher_plugin_core/flutter_patcher_plugin_core.dart'
3
+ import 'package:flutter_ota_kit_plugin_core/flutter_ota_kit_plugin_core.dart'
4
4
  show
5
5
  NodeStorageProfile,
6
6
  RuntimeStorageProfile,
@@ -1,5 +1,5 @@
1
- name: flutter_patcher_cloudflare
2
- description: Cloudflare D1 + R2 storage plugins for flutter_patcher (faithful port of hot-updater plugins/cloudflare).
1
+ name: flutter_ota_kit_cloudflare
2
+ description: Cloudflare D1 + R2 storage plugins for flutter_ota_kit (faithful port of hot-updater plugins/cloudflare).
3
3
  version: 0.1.0
4
4
  publish_to: none
5
5
 
@@ -7,9 +7,9 @@ environment:
7
7
  sdk: ">=3.3.0 <4.0.0"
8
8
 
9
9
  dependencies:
10
- flutter_patcher_core:
10
+ flutter_ota_kit_core:
11
11
  path: ../../packages/core
12
- flutter_patcher_plugin_core:
12
+ flutter_ota_kit_plugin_core:
13
13
  path: ../../plugins/plugin-core
14
14
  crypto: ^3.0.0
15
15
  http: ^1.2.0
@@ -1,4 +1,4 @@
1
- import 'package:flutter_patcher_core/flutter_patcher_core.dart'
1
+ import 'package:flutter_ota_kit_core/flutter_ota_kit_core.dart'
2
2
  show
3
3
  AppVersionGetBundlesArgs,
4
4
  Bundle,
@@ -7,7 +7,7 @@ import 'package:flutter_patcher_core/flutter_patcher_core.dart'
7
7
  Platform,
8
8
  UpdateStatus,
9
9
  nilUuid;
10
- import 'package:flutter_patcher_plugin_core/flutter_patcher_plugin_core.dart'
10
+ import 'package:flutter_ota_kit_plugin_core/flutter_ota_kit_plugin_core.dart'
11
11
  show DatabasePlugin;
12
12
  import 'package:test/test.dart';
13
13
 
@@ -1,8 +1,8 @@
1
1
  import 'dart:convert' show jsonEncode;
2
2
 
3
- import 'package:flutter_patcher_core/flutter_patcher_core.dart'
3
+ import 'package:flutter_ota_kit_core/flutter_ota_kit_core.dart'
4
4
  show Bundle, BundleMetadata, BundlePatchArtifact, Platform;
5
- import 'package:flutter_patcher_cloudflare/flutter_patcher_cloudflare.dart'
5
+ import 'package:flutter_ota_kit_cloudflare/flutter_ota_kit_cloudflare.dart'
6
6
  show
7
7
  buildBundlePatchId,
8
8
  bundleToPatchRows,
@@ -1,4 +1,4 @@
1
- import 'package:flutter_patcher_core/flutter_patcher_core.dart'
1
+ import 'package:flutter_ota_kit_core/flutter_ota_kit_core.dart'
2
2
  show
3
3
  AppVersionGetBundlesArgs,
4
4
  Bundle,
@@ -7,7 +7,7 @@ import 'package:flutter_patcher_core/flutter_patcher_core.dart'
7
7
  Platform,
8
8
  UpdateStatus,
9
9
  nilUuid;
10
- import 'package:flutter_patcher_plugin_core/flutter_patcher_plugin_core.dart'
10
+ import 'package:flutter_ota_kit_plugin_core/flutter_ota_kit_plugin_core.dart'
11
11
  show
12
12
  DatabaseBundleQueryOptions,
13
13
  DatabaseBundleQueryOrder,
@@ -1,13 +1,13 @@
1
1
  import 'dart:convert' show jsonDecode;
2
2
 
3
- import 'package:flutter_patcher_cloudflare/flutter_patcher_cloudflare.dart'
3
+ import 'package:flutter_ota_kit_cloudflare/flutter_ota_kit_cloudflare.dart'
4
4
  show
5
5
  CloudflareWorkerDatabaseConfig,
6
6
  D1ClientLike,
7
7
  D1DatabaseConfig,
8
8
  cloudflareWorkerDatabase,
9
9
  d1Database;
10
- import 'package:flutter_patcher_plugin_core/flutter_patcher_plugin_core.dart'
10
+ import 'package:flutter_ota_kit_plugin_core/flutter_ota_kit_plugin_core.dart'
11
11
  show DatabasePlugin;
12
12
 
13
13
  /// In-memory store backing [MockD1Client], mirroring the D1 tables.
@@ -1,9 +1,9 @@
1
1
  import 'dart:convert' show utf8;
2
2
 
3
- import 'package:flutter_patcher_plugin_core/flutter_patcher_plugin_core.dart'
3
+ import 'package:flutter_ota_kit_plugin_core/flutter_ota_kit_plugin_core.dart'
4
4
  show StorageObject;
5
5
 
6
- import 'package:flutter_patcher_cloudflare/flutter_patcher_cloudflare.dart'
6
+ import 'package:flutter_ota_kit_cloudflare/flutter_ota_kit_cloudflare.dart'
7
7
  show R2S3StorageConfig, R2S3ClientLike;
8
8
 
9
9
  /// In-memory store backing [MockR2Client].
@@ -1,8 +1,8 @@
1
1
  import 'dart:io' show Directory, File;
2
2
 
3
- import 'package:flutter_patcher_cloudflare/flutter_patcher_cloudflare.dart'
3
+ import 'package:flutter_ota_kit_cloudflare/flutter_ota_kit_cloudflare.dart'
4
4
  show r2Storage;
5
- import 'package:flutter_patcher_plugin_core/flutter_patcher_plugin_core.dart'
5
+ import 'package:flutter_ota_kit_plugin_core/flutter_ota_kit_plugin_core.dart'
6
6
  show StoragePlugin;
7
7
  import 'package:path/path.dart' show basename;
8
8
  import 'package:test/test.dart';
@@ -1,7 +1,7 @@
1
1
  library;
2
2
 
3
3
  // Re-export core types for convenience.
4
- export 'package:flutter_patcher_core/flutter_patcher_core.dart'
4
+ export 'package:flutter_ota_kit_core/flutter_ota_kit_core.dart'
5
5
  show
6
6
  Bundle,
7
7
  GetBundlesArgs,
@@ -1,6 +1,6 @@
1
1
  import 'dart:convert';
2
2
 
3
- import 'package:flutter_patcher_core/flutter_patcher_core.dart';
3
+ import 'package:flutter_ota_kit_core/flutter_ota_kit_core.dart';
4
4
 
5
5
  import 'bundle_unit_of_work.dart';
6
6
  import 'create_database_plugin.dart';
@@ -1,4 +1,4 @@
1
- import 'package:flutter_patcher_core/flutter_patcher_core.dart'
1
+ import 'package:flutter_ota_kit_core/flutter_ota_kit_core.dart'
2
2
  show semverSatisfies;
3
3
 
4
4
  /// Filter target app versions that are compatible with the current app version.
@@ -1,4 +1,4 @@
1
- import 'package:flutter_patcher_core/flutter_patcher_core.dart';
1
+ import 'package:flutter_ota_kit_core/flutter_ota_kit_core.dart';
2
2
 
3
3
  /// Build an [UpdateInfo] response from a [Bundle] and an [UpdateStatus].
4
4
  UpdateInfo _makeResponse(Bundle bundle, UpdateStatus status) {
@@ -1,4 +1,4 @@
1
- import 'package:flutter_patcher_core/flutter_patcher_core.dart' show Bundle;
1
+ import 'package:flutter_ota_kit_core/flutter_ota_kit_core.dart' show Bundle;
2
2
 
3
3
  import 'bundle_unit_of_work.dart';
4
4
  import 'bundle_unit_of_work_store.dart';
@@ -1,4 +1,4 @@
1
- import 'package:flutter_patcher_core/flutter_patcher_core.dart'
1
+ import 'package:flutter_ota_kit_core/flutter_ota_kit_core.dart'
2
2
  show Bundle, GetBundlesArgs, UpdateInfo, nilUuid;
3
3
 
4
4
  import 'get_update_info.dart' show getUpdateInfo;
@@ -1,5 +1,5 @@
1
- import 'package:flutter_patcher_core/flutter_patcher_core.dart';
2
- export 'package:flutter_patcher_core/flutter_patcher_core.dart'
1
+ import 'package:flutter_ota_kit_core/flutter_ota_kit_core.dart';
2
+ export 'package:flutter_ota_kit_core/flutter_ota_kit_core.dart'
3
3
  show Bundle, GetBundlesArgs, Platform, UpdateInfo;
4
4
 
5
5
  // ---------------------------------------------------------------------------
@@ -1,12 +1,12 @@
1
- name: flutter_patcher_plugin_core
2
- description: Plugin core abstractions for flutter_patcher — database, storage, and build interfaces.
1
+ name: flutter_ota_kit_plugin_core
2
+ description: Plugin core abstractions for flutter_ota_kit — database, storage, and build interfaces.
3
3
  version: 0.0.1
4
4
 
5
5
  environment:
6
6
  sdk: ">=3.3.0 <4.0.0"
7
7
 
8
8
  dependencies:
9
- flutter_patcher_core:
9
+ flutter_ota_kit_core:
10
10
  path: ../../packages/core
11
11
  mime: ^1.0.0
12
12
 
@@ -1,6 +1,6 @@
1
- import 'package:flutter_patcher_plugin_core/src/asset_storage_layout.dart';
2
- import 'package:flutter_patcher_plugin_core/src/bundle_storage_layout.dart';
3
- import 'package:flutter_patcher_plugin_core/src/legacy_asset_storage_layout.dart';
1
+ import 'package:flutter_ota_kit_plugin_core/src/asset_storage_layout.dart';
2
+ import 'package:flutter_ota_kit_plugin_core/src/bundle_storage_layout.dart';
3
+ import 'package:flutter_ota_kit_plugin_core/src/legacy_asset_storage_layout.dart';
4
4
  import 'package:test/test.dart';
5
5
 
6
6
  void main() {
@@ -1,5 +1,5 @@
1
- import 'package:flutter_patcher_plugin_core/src/bundle_unit_of_work.dart';
2
- import 'package:flutter_patcher_plugin_core/src/bundle_unit_of_work_store.dart';
1
+ import 'package:flutter_ota_kit_plugin_core/src/bundle_unit_of_work.dart';
2
+ import 'package:flutter_ota_kit_plugin_core/src/bundle_unit_of_work_store.dart';
3
3
  import 'package:test/test.dart';
4
4
 
5
5
  void main() {
@@ -1,5 +1,5 @@
1
- import 'package:flutter_patcher_plugin_core/src/bundle_unit_of_work.dart';
2
- import 'package:flutter_patcher_plugin_core/src/types.dart';
1
+ import 'package:flutter_ota_kit_plugin_core/src/bundle_unit_of_work.dart';
2
+ import 'package:flutter_ota_kit_plugin_core/src/types.dart';
3
3
  import 'package:test/test.dart';
4
4
 
5
5
  Bundle _bundle(String id, {
@@ -1,7 +1,7 @@
1
1
  import 'dart:convert';
2
2
 
3
- import 'package:flutter_patcher_core/flutter_patcher_core.dart';
4
- import 'package:flutter_patcher_plugin_core/flutter_patcher_plugin_core.dart';
3
+ import 'package:flutter_ota_kit_core/flutter_ota_kit_core.dart';
4
+ import 'package:flutter_ota_kit_plugin_core/flutter_ota_kit_plugin_core.dart';
5
5
  import 'package:test/test.dart';
6
6
 
7
7
  // ---------------------------------------------------------------------------
@@ -1,8 +1,8 @@
1
- import 'package:flutter_patcher_core/flutter_patcher_core.dart';
2
- import 'package:flutter_patcher_plugin_core/src/bundle_unit_of_work.dart';
3
- import 'package:flutter_patcher_plugin_core/src/bundle_unit_of_work_store.dart';
4
- import 'package:flutter_patcher_plugin_core/src/create_database_plugin.dart';
5
- import 'package:flutter_patcher_plugin_core/src/types.dart';
1
+ import 'package:flutter_ota_kit_core/flutter_ota_kit_core.dart';
2
+ import 'package:flutter_ota_kit_plugin_core/src/bundle_unit_of_work.dart';
3
+ import 'package:flutter_ota_kit_plugin_core/src/bundle_unit_of_work_store.dart';
4
+ import 'package:flutter_ota_kit_plugin_core/src/create_database_plugin.dart';
5
+ import 'package:flutter_ota_kit_plugin_core/src/types.dart';
6
6
  import 'package:test/test.dart';
7
7
 
8
8
  class _MockDatabasePlugin extends AbstractDatabasePlugin {
@@ -1,5 +1,5 @@
1
- import 'package:flutter_patcher_plugin_core/src/create_storage_plugin.dart';
2
- import 'package:flutter_patcher_plugin_core/src/types.dart';
1
+ import 'package:flutter_ota_kit_plugin_core/src/create_storage_plugin.dart';
2
+ import 'package:flutter_ota_kit_plugin_core/src/types.dart';
3
3
  import 'package:test/test.dart';
4
4
 
5
5
  class _MockNodeProfile implements NodeStorageProfile {
@@ -1,5 +1,5 @@
1
- import 'package:flutter_patcher_plugin_core/src/generate_min_bundle_id.dart';
2
- import 'package:flutter_patcher_plugin_core/src/uuidv7.dart';
1
+ import 'package:flutter_ota_kit_plugin_core/src/generate_min_bundle_id.dart';
2
+ import 'package:flutter_ota_kit_plugin_core/src/uuidv7.dart';
3
3
  import 'package:test/test.dart';
4
4
 
5
5
  void main() {
@@ -1,5 +1,5 @@
1
- import 'package:flutter_patcher_core/flutter_patcher_core.dart';
2
- import 'package:flutter_patcher_plugin_core/src/get_update_info.dart';
1
+ import 'package:flutter_ota_kit_core/flutter_ota_kit_core.dart';
2
+ import 'package:flutter_ota_kit_plugin_core/src/get_update_info.dart';
3
3
  import 'package:test/test.dart';
4
4
 
5
5
  const _defaultBundleMessage = 'hello';
@@ -1,6 +1,6 @@
1
- import 'package:flutter_patcher_core/flutter_patcher_core.dart'
1
+ import 'package:flutter_ota_kit_core/flutter_ota_kit_core.dart'
2
2
  show Bundle, BundleMetadata, Platform;
3
- import 'package:flutter_patcher_plugin_core/flutter_patcher_plugin_core.dart';
3
+ import 'package:flutter_ota_kit_plugin_core/flutter_ota_kit_plugin_core.dart';
4
4
  import 'package:test/test.dart';
5
5
 
6
6
  void main() {
@@ -1,6 +1,6 @@
1
- import 'package:flutter_patcher_core/flutter_patcher_core.dart'
1
+ import 'package:flutter_ota_kit_core/flutter_ota_kit_core.dart'
2
2
  show Bundle, BundleMetadata, Platform;
3
- import 'package:flutter_patcher_plugin_core/flutter_patcher_plugin_core.dart';
3
+ import 'package:flutter_ota_kit_plugin_core/flutter_ota_kit_plugin_core.dart';
4
4
  import 'package:test/test.dart';
5
5
 
6
6
  void main() {
@@ -1,6 +1,6 @@
1
- import 'package:flutter_patcher_core/flutter_patcher_core.dart';
2
- import 'package:flutter_patcher_plugin_core/src/bundle_unit_of_work_store.dart';
3
- import 'package:flutter_patcher_plugin_core/src/request_update_bundle_state.dart';
1
+ import 'package:flutter_ota_kit_core/flutter_ota_kit_core.dart';
2
+ import 'package:flutter_ota_kit_plugin_core/src/bundle_unit_of_work_store.dart';
3
+ import 'package:flutter_ota_kit_plugin_core/src/request_update_bundle_state.dart';
4
4
  import 'package:test/test.dart';
5
5
 
6
6
  Bundle _bundle(String id) => Bundle(
@@ -1,4 +1,4 @@
1
- import 'package:flutter_patcher_plugin_core/src/uuidv7.dart';
1
+ import 'package:flutter_ota_kit_plugin_core/src/uuidv7.dart';
2
2
  import 'package:test/test.dart';
3
3
 
4
4
  void main() {
@@ -1,4 +1,4 @@
1
- /// flutter_patcher_postgres — Postgres backend plugin for flutter_patcher.
1
+ /// flutter_ota_kit_postgres — Postgres backend plugin for flutter_ota_kit.
2
2
  ///
3
3
  /// Faithful port of hot-updater `plugins/postgres`.
4
4
  library;
@@ -4,7 +4,7 @@ library;
4
4
 
5
5
  import 'dart:convert';
6
6
 
7
- import 'package:flutter_patcher_core/flutter_patcher_core.dart'
7
+ import 'package:flutter_ota_kit_core/flutter_ota_kit_core.dart'
8
8
  show
9
9
  Bundle,
10
10
  BundleMetadata,
@@ -1,9 +1,9 @@
1
1
  /// Faithful port of hot-updater `plugins/postgres/src/postgres.ts`.
2
2
  library;
3
3
 
4
- import 'package:flutter_patcher_core/flutter_patcher_core.dart'
4
+ import 'package:flutter_ota_kit_core/flutter_ota_kit_core.dart'
5
5
  show Bundle, UpdateInfo;
6
- import 'package:flutter_patcher_plugin_core/flutter_patcher_plugin_core.dart'
6
+ import 'package:flutter_ota_kit_plugin_core/flutter_ota_kit_plugin_core.dart'
7
7
  show
8
8
  AbstractDatabasePlugin,
9
9
  BundleChange,
@@ -6,7 +6,7 @@
6
6
  /// installed (see `supabase/migrations` parity work / Phase 5).
7
7
  library;
8
8
 
9
- import 'package:flutter_patcher_core/flutter_patcher_core.dart'
9
+ import 'package:flutter_ota_kit_core/flutter_ota_kit_core.dart'
10
10
  show
11
11
  FingerprintGetBundlesArgs,
12
12
  GetBundlesArgs,
@@ -14,7 +14,7 @@ import 'package:flutter_patcher_core/flutter_patcher_core.dart'
14
14
  UpdateInfo,
15
15
  UpdateStatus,
16
16
  UpdateStrategy;
17
- import 'package:flutter_patcher_plugin_core/flutter_patcher_plugin_core.dart'
17
+ import 'package:flutter_ota_kit_plugin_core/flutter_ota_kit_plugin_core.dart'
18
18
  show filterCompatibleAppVersions;
19
19
 
20
20
  import 'postgres_client.dart';
@@ -2,7 +2,7 @@ import 'dart:convert';
2
2
  import 'dart:io';
3
3
  import 'dart:typed_data';
4
4
 
5
- import 'package:flutter_patcher_plugin_core/flutter_patcher_plugin_core.dart';
5
+ import 'package:flutter_ota_kit_plugin_core/flutter_ota_kit_plugin_core.dart';
6
6
 
7
7
  import 'postgres_client.dart';
8
8
  import 'postgres_config.dart';
@@ -10,7 +10,7 @@ import 'postgres_config.dart';
10
10
  /// Configuration for the Postgres bytea storage plugin.
11
11
  ///
12
12
  /// Reuses the same [PostgresConfig] connection as the database plugin. Blob
13
- /// bytes are stored in a `flutter_patcher_storage(key text primary key, data
13
+ /// bytes are stored in a `flutter_ota_kit_storage(key text primary key, data
14
14
  /// bytea, content_type text)` table. Because Postgres cannot serve bytes over
15
15
  /// HTTP itself, [servingBaseUrl] may point at a thin proxy that reads from this
16
16
  /// table so device update-checks can download over HTTP (the CLI/console supply
@@ -89,7 +89,7 @@ class _PostgresNodeProfile implements NodeStorageProfile {
89
89
  final fullKey = _withBase(key);
90
90
  final bytes = await File(filePath).readAsBytes();
91
91
  await _client.execute(
92
- 'INSERT INTO flutter_patcher_storage (key, data, content_type) '
92
+ 'INSERT INTO flutter_ota_kit_storage (key, data, content_type) '
93
93
  'VALUES (@key, @data, @ct) '
94
94
  'ON CONFLICT (key) DO UPDATE SET data = EXCLUDED.data, content_type = EXCLUDED.content_type',
95
95
  {
@@ -105,7 +105,7 @@ class _PostgresNodeProfile implements NodeStorageProfile {
105
105
  Future<bool> exists(String storageUri) async {
106
106
  final key = _strip(storageUri, _servingBaseUrl);
107
107
  final rows = await _client.execute(
108
- 'SELECT 1 FROM flutter_patcher_storage WHERE key = @key',
108
+ 'SELECT 1 FROM flutter_ota_kit_storage WHERE key = @key',
109
109
  {'@key': key},
110
110
  );
111
111
  return rows.isNotEmpty;
@@ -114,7 +114,7 @@ class _PostgresNodeProfile implements NodeStorageProfile {
114
114
  @override
115
115
  Future<void> delete(String storageUri) async {
116
116
  await _client.execute(
117
- 'DELETE FROM flutter_patcher_storage WHERE key = @key',
117
+ 'DELETE FROM flutter_ota_kit_storage WHERE key = @key',
118
118
  {'@key': _strip(storageUri, _servingBaseUrl)},
119
119
  );
120
120
  }
@@ -123,7 +123,7 @@ class _PostgresNodeProfile implements NodeStorageProfile {
123
123
  Future<void> downloadFile(String storageUri, String filePath) async {
124
124
  final key = _strip(storageUri, _servingBaseUrl);
125
125
  final rows = await _client.execute(
126
- 'SELECT data FROM flutter_patcher_storage WHERE key = @key',
126
+ 'SELECT data FROM flutter_ota_kit_storage WHERE key = @key',
127
127
  {'@key': key},
128
128
  );
129
129
  if (rows.isEmpty) {
@@ -136,7 +136,7 @@ class _PostgresNodeProfile implements NodeStorageProfile {
136
136
  Future<List<StorageObject>> listObjects([String? prefix]) async {
137
137
  final fullPrefix = prefix == null ? null : _withBase(prefix);
138
138
  final rows = await _client.execute(
139
- 'SELECT key, octet_length(data) AS size FROM flutter_patcher_storage '
139
+ 'SELECT key, octet_length(data) AS size FROM flutter_ota_kit_storage '
140
140
  'WHERE key LIKE @prefix',
141
141
  {'@prefix': '${fullPrefix ?? ''}%'},
142
142
  );
@@ -154,7 +154,7 @@ class _PostgresNodeProfile implements NodeStorageProfile {
154
154
  Future<void> deleteObjects(List<String> keys) async {
155
155
  for (final k in keys) {
156
156
  await _client.execute(
157
- 'DELETE FROM flutter_patcher_storage WHERE key = @key',
157
+ 'DELETE FROM flutter_ota_kit_storage WHERE key = @key',
158
158
  {'@key': _strip(k, _servingBaseUrl)},
159
159
  );
160
160
  }
@@ -182,7 +182,7 @@ class _PostgresRuntimeProfile implements RuntimeStorageProfile {
182
182
  Future<String?> readText(String storageUri) async {
183
183
  final key = _strip(storageUri, _servingBaseUrl);
184
184
  final rows = await _client.execute(
185
- 'SELECT data FROM flutter_patcher_storage WHERE key = @key',
185
+ 'SELECT data FROM flutter_ota_kit_storage WHERE key = @key',
186
186
  {'@key': key},
187
187
  );
188
188
  if (rows.isEmpty) return null;