@powersync/service-core 0.0.0-dev-20241119082750 → 0.0.0-dev-20241219091224

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 (201) hide show
  1. package/CHANGELOG.md +88 -18
  2. package/dist/auth/KeySpec.d.ts +1 -0
  3. package/dist/auth/KeySpec.js +10 -8
  4. package/dist/auth/KeySpec.js.map +1 -1
  5. package/dist/auth/RemoteJWKSCollector.js +2 -2
  6. package/dist/auth/RemoteJWKSCollector.js.map +1 -1
  7. package/dist/auth/StaticSupabaseKeyCollector.d.ts +19 -0
  8. package/dist/auth/StaticSupabaseKeyCollector.js +28 -0
  9. package/dist/auth/StaticSupabaseKeyCollector.js.map +1 -0
  10. package/dist/auth/auth-index.d.ts +1 -0
  11. package/dist/auth/auth-index.js +1 -0
  12. package/dist/auth/auth-index.js.map +1 -1
  13. package/dist/entry/commands/compact-action.js +15 -15
  14. package/dist/entry/commands/compact-action.js.map +1 -1
  15. package/dist/entry/commands/migrate-action.js +15 -4
  16. package/dist/entry/commands/migrate-action.js.map +1 -1
  17. package/dist/index.d.ts +1 -3
  18. package/dist/index.js +1 -3
  19. package/dist/index.js.map +1 -1
  20. package/dist/migrations/PowerSyncMigrationManager.d.ts +17 -0
  21. package/dist/migrations/PowerSyncMigrationManager.js +22 -0
  22. package/dist/migrations/PowerSyncMigrationManager.js.map +1 -0
  23. package/dist/migrations/ensure-automatic-migrations.d.ts +4 -0
  24. package/dist/migrations/ensure-automatic-migrations.js +14 -0
  25. package/dist/migrations/ensure-automatic-migrations.js.map +1 -0
  26. package/dist/migrations/migrations-index.d.ts +2 -3
  27. package/dist/migrations/migrations-index.js +2 -3
  28. package/dist/migrations/migrations-index.js.map +1 -1
  29. package/dist/routes/RouterEngine.js +2 -1
  30. package/dist/routes/RouterEngine.js.map +1 -1
  31. package/dist/routes/configure-fastify.d.ts +28 -28
  32. package/dist/routes/endpoints/admin.d.ts +24 -24
  33. package/dist/routes/endpoints/sync-rules.js.map +1 -1
  34. package/dist/storage/BucketStorage.d.ts +41 -1
  35. package/dist/storage/BucketStorage.js +26 -0
  36. package/dist/storage/BucketStorage.js.map +1 -1
  37. package/dist/storage/storage-index.d.ts +2 -14
  38. package/dist/storage/storage-index.js +2 -14
  39. package/dist/storage/storage-index.js.map +1 -1
  40. package/dist/sync/sync.js +12 -3
  41. package/dist/sync/sync.js.map +1 -1
  42. package/dist/system/ServiceContext.d.ts +3 -0
  43. package/dist/system/ServiceContext.js +11 -3
  44. package/dist/system/ServiceContext.js.map +1 -1
  45. package/dist/util/config/compound-config-collector.js +16 -0
  46. package/dist/util/config/compound-config-collector.js.map +1 -1
  47. package/dist/util/config/types.d.ts +2 -2
  48. package/dist/util/utils.d.ts +14 -1
  49. package/dist/util/utils.js +56 -0
  50. package/dist/util/utils.js.map +1 -1
  51. package/package.json +7 -11
  52. package/src/auth/KeySpec.ts +12 -9
  53. package/src/auth/RemoteJWKSCollector.ts +2 -2
  54. package/src/auth/StaticSupabaseKeyCollector.ts +31 -0
  55. package/src/auth/auth-index.ts +1 -0
  56. package/src/entry/commands/compact-action.ts +20 -15
  57. package/src/entry/commands/migrate-action.ts +17 -4
  58. package/src/index.ts +1 -4
  59. package/src/migrations/PowerSyncMigrationManager.ts +43 -0
  60. package/src/migrations/ensure-automatic-migrations.ts +15 -0
  61. package/src/migrations/migrations-index.ts +2 -3
  62. package/src/routes/RouterEngine.ts +2 -1
  63. package/src/routes/endpoints/sync-rules.ts +1 -2
  64. package/src/storage/BucketStorage.ts +44 -1
  65. package/src/storage/storage-index.ts +3 -15
  66. package/src/sync/sync.ts +12 -3
  67. package/src/system/ServiceContext.ts +17 -4
  68. package/src/util/config/compound-config-collector.ts +19 -1
  69. package/src/util/config/types.ts +2 -2
  70. package/src/util/utils.ts +59 -1
  71. package/test/src/auth.test.ts +54 -21
  72. package/test/src/env.ts +0 -1
  73. package/tsconfig.tsbuildinfo +1 -1
  74. package/dist/db/db-index.d.ts +0 -1
  75. package/dist/db/db-index.js +0 -2
  76. package/dist/db/db-index.js.map +0 -1
  77. package/dist/db/mongo.d.ts +0 -35
  78. package/dist/db/mongo.js +0 -73
  79. package/dist/db/mongo.js.map +0 -1
  80. package/dist/locks/LockManager.d.ts +0 -10
  81. package/dist/locks/LockManager.js +0 -7
  82. package/dist/locks/LockManager.js.map +0 -1
  83. package/dist/locks/MongoLocks.d.ts +0 -36
  84. package/dist/locks/MongoLocks.js +0 -81
  85. package/dist/locks/MongoLocks.js.map +0 -1
  86. package/dist/locks/locks-index.d.ts +0 -2
  87. package/dist/locks/locks-index.js +0 -3
  88. package/dist/locks/locks-index.js.map +0 -1
  89. package/dist/migrations/db/migrations/1684951997326-init.d.ts +0 -3
  90. package/dist/migrations/db/migrations/1684951997326-init.js +0 -33
  91. package/dist/migrations/db/migrations/1684951997326-init.js.map +0 -1
  92. package/dist/migrations/db/migrations/1688556755264-initial-sync-rules.d.ts +0 -2
  93. package/dist/migrations/db/migrations/1688556755264-initial-sync-rules.js +0 -5
  94. package/dist/migrations/db/migrations/1688556755264-initial-sync-rules.js.map +0 -1
  95. package/dist/migrations/db/migrations/1702295701188-sync-rule-state.d.ts +0 -3
  96. package/dist/migrations/db/migrations/1702295701188-sync-rule-state.js +0 -56
  97. package/dist/migrations/db/migrations/1702295701188-sync-rule-state.js.map +0 -1
  98. package/dist/migrations/db/migrations/1711543888062-write-checkpoint-index.d.ts +0 -3
  99. package/dist/migrations/db/migrations/1711543888062-write-checkpoint-index.js +0 -29
  100. package/dist/migrations/db/migrations/1711543888062-write-checkpoint-index.js.map +0 -1
  101. package/dist/migrations/db/migrations/1727099539247-custom-write-checkpoint-index.d.ts +0 -3
  102. package/dist/migrations/db/migrations/1727099539247-custom-write-checkpoint-index.js +0 -31
  103. package/dist/migrations/db/migrations/1727099539247-custom-write-checkpoint-index.js.map +0 -1
  104. package/dist/migrations/definitions.d.ts +0 -18
  105. package/dist/migrations/definitions.js +0 -6
  106. package/dist/migrations/definitions.js.map +0 -1
  107. package/dist/migrations/executor.d.ts +0 -16
  108. package/dist/migrations/executor.js +0 -64
  109. package/dist/migrations/executor.js.map +0 -1
  110. package/dist/migrations/migrations.d.ts +0 -18
  111. package/dist/migrations/migrations.js +0 -110
  112. package/dist/migrations/migrations.js.map +0 -1
  113. package/dist/migrations/store/migration-store.d.ts +0 -11
  114. package/dist/migrations/store/migration-store.js +0 -46
  115. package/dist/migrations/store/migration-store.js.map +0 -1
  116. package/dist/storage/MongoBucketStorage.d.ts +0 -48
  117. package/dist/storage/MongoBucketStorage.js +0 -426
  118. package/dist/storage/MongoBucketStorage.js.map +0 -1
  119. package/dist/storage/mongo/MongoBucketBatch.d.ts +0 -67
  120. package/dist/storage/mongo/MongoBucketBatch.js +0 -643
  121. package/dist/storage/mongo/MongoBucketBatch.js.map +0 -1
  122. package/dist/storage/mongo/MongoCompactor.d.ts +0 -40
  123. package/dist/storage/mongo/MongoCompactor.js +0 -309
  124. package/dist/storage/mongo/MongoCompactor.js.map +0 -1
  125. package/dist/storage/mongo/MongoIdSequence.d.ts +0 -12
  126. package/dist/storage/mongo/MongoIdSequence.js +0 -21
  127. package/dist/storage/mongo/MongoIdSequence.js.map +0 -1
  128. package/dist/storage/mongo/MongoPersistedSyncRules.d.ts +0 -9
  129. package/dist/storage/mongo/MongoPersistedSyncRules.js +0 -9
  130. package/dist/storage/mongo/MongoPersistedSyncRules.js.map +0 -1
  131. package/dist/storage/mongo/MongoPersistedSyncRulesContent.d.ts +0 -20
  132. package/dist/storage/mongo/MongoPersistedSyncRulesContent.js +0 -26
  133. package/dist/storage/mongo/MongoPersistedSyncRulesContent.js.map +0 -1
  134. package/dist/storage/mongo/MongoStorageProvider.d.ts +0 -5
  135. package/dist/storage/mongo/MongoStorageProvider.js +0 -26
  136. package/dist/storage/mongo/MongoStorageProvider.js.map +0 -1
  137. package/dist/storage/mongo/MongoSyncBucketStorage.d.ts +0 -38
  138. package/dist/storage/mongo/MongoSyncBucketStorage.js +0 -531
  139. package/dist/storage/mongo/MongoSyncBucketStorage.js.map +0 -1
  140. package/dist/storage/mongo/MongoSyncRulesLock.d.ts +0 -16
  141. package/dist/storage/mongo/MongoSyncRulesLock.js +0 -65
  142. package/dist/storage/mongo/MongoSyncRulesLock.js.map +0 -1
  143. package/dist/storage/mongo/MongoWriteCheckpointAPI.d.ts +0 -20
  144. package/dist/storage/mongo/MongoWriteCheckpointAPI.js +0 -103
  145. package/dist/storage/mongo/MongoWriteCheckpointAPI.js.map +0 -1
  146. package/dist/storage/mongo/OperationBatch.d.ts +0 -35
  147. package/dist/storage/mongo/OperationBatch.js +0 -119
  148. package/dist/storage/mongo/OperationBatch.js.map +0 -1
  149. package/dist/storage/mongo/PersistedBatch.d.ts +0 -46
  150. package/dist/storage/mongo/PersistedBatch.js +0 -213
  151. package/dist/storage/mongo/PersistedBatch.js.map +0 -1
  152. package/dist/storage/mongo/config.d.ts +0 -19
  153. package/dist/storage/mongo/config.js +0 -26
  154. package/dist/storage/mongo/config.js.map +0 -1
  155. package/dist/storage/mongo/db.d.ts +0 -36
  156. package/dist/storage/mongo/db.js +0 -47
  157. package/dist/storage/mongo/db.js.map +0 -1
  158. package/dist/storage/mongo/models.d.ts +0 -156
  159. package/dist/storage/mongo/models.js +0 -27
  160. package/dist/storage/mongo/models.js.map +0 -1
  161. package/dist/storage/mongo/util.d.ts +0 -40
  162. package/dist/storage/mongo/util.js +0 -151
  163. package/dist/storage/mongo/util.js.map +0 -1
  164. package/src/db/db-index.ts +0 -1
  165. package/src/db/mongo.ts +0 -81
  166. package/src/locks/LockManager.ts +0 -16
  167. package/src/locks/MongoLocks.ts +0 -142
  168. package/src/locks/locks-index.ts +0 -2
  169. package/src/migrations/db/migrations/1684951997326-init.ts +0 -38
  170. package/src/migrations/db/migrations/1688556755264-initial-sync-rules.ts +0 -5
  171. package/src/migrations/db/migrations/1702295701188-sync-rule-state.ts +0 -102
  172. package/src/migrations/db/migrations/1711543888062-write-checkpoint-index.ts +0 -34
  173. package/src/migrations/db/migrations/1727099539247-custom-write-checkpoint-index.ts +0 -37
  174. package/src/migrations/definitions.ts +0 -21
  175. package/src/migrations/executor.ts +0 -87
  176. package/src/migrations/migrations.ts +0 -142
  177. package/src/migrations/store/migration-store.ts +0 -63
  178. package/src/storage/MongoBucketStorage.ts +0 -540
  179. package/src/storage/mongo/MongoBucketBatch.ts +0 -841
  180. package/src/storage/mongo/MongoCompactor.ts +0 -392
  181. package/src/storage/mongo/MongoIdSequence.ts +0 -24
  182. package/src/storage/mongo/MongoPersistedSyncRules.ts +0 -16
  183. package/src/storage/mongo/MongoPersistedSyncRulesContent.ts +0 -50
  184. package/src/storage/mongo/MongoStorageProvider.ts +0 -31
  185. package/src/storage/mongo/MongoSyncBucketStorage.ts +0 -636
  186. package/src/storage/mongo/MongoSyncRulesLock.ts +0 -85
  187. package/src/storage/mongo/MongoWriteCheckpointAPI.ts +0 -151
  188. package/src/storage/mongo/OperationBatch.ts +0 -131
  189. package/src/storage/mongo/PersistedBatch.ts +0 -272
  190. package/src/storage/mongo/config.ts +0 -40
  191. package/src/storage/mongo/db.ts +0 -88
  192. package/src/storage/mongo/models.ts +0 -179
  193. package/src/storage/mongo/util.ts +0 -158
  194. package/test/src/__snapshots__/sync.test.ts.snap +0 -332
  195. package/test/src/bucket_validation.test.ts +0 -142
  196. package/test/src/bucket_validation.ts +0 -116
  197. package/test/src/compacting.test.ts +0 -295
  198. package/test/src/data_storage.test.ts +0 -1499
  199. package/test/src/stream_utils.ts +0 -42
  200. package/test/src/sync.test.ts +0 -511
  201. package/test/src/util.ts +0 -148
package/CHANGELOG.md CHANGED
@@ -1,14 +1,84 @@
1
1
  # @powersync/service-core
2
2
 
3
- ## 0.0.0-dev-20241119082750
3
+ ## 0.0.0-dev-20241219091224
4
4
 
5
5
  ### Minor Changes
6
6
 
7
- - d2ece1b: Added ability to emit data replication events
8
- - 8610431: Introduced alpha support for MySQL as a datasource for replication.
7
+ - 697d44b: Moved MongoDB sync bucket storage implementation to the MongoDB module.
8
+
9
+ ### Patch Changes
10
+
11
+ - 697d44b: Updated ts-codec to 1.3.0 for better decode error responses
12
+ - Updated dependencies [697d44b]
13
+ - Updated dependencies [a66be3b]
14
+ - Updated dependencies [697d44b]
15
+ - @powersync/lib-services-framework@0.0.0-dev-20241219091224
16
+ - @powersync/service-sync-rules@0.0.0-dev-20241219091224
17
+ - @powersync/service-rsocket-router@0.0.0-dev-20241219091224
18
+
19
+ ## 0.12.2
20
+
21
+ ### Patch Changes
22
+
23
+ - 320e646: Fix bucket parameters grouping.
24
+ - e3a9343: Reduce noise in log output
25
+
26
+ ## 0.12.1
27
+
28
+ ### Patch Changes
29
+
30
+ - 889ac46: Fix "BSONObj size is invalid" error during replication.
31
+
32
+ ## 0.12.0
33
+
34
+ ### Minor Changes
35
+
36
+ - ebc62ff: Add EdDSA support for JWTs.
37
+
38
+ ### Patch Changes
39
+
40
+ - Updated dependencies [ebc62ff]
41
+ - @powersync/service-types@0.5.0
42
+
43
+ ## 0.11.0
44
+
45
+ ### Minor Changes
46
+
47
+ - 62e97f3: Support resuming initial replication for Postgres.
48
+
49
+ ### Patch Changes
50
+
51
+ - 8c6ce90: Workaround for Aurora Postgres write checkpoint bug
52
+ - Updated dependencies [a235c9f]
53
+ - @powersync/service-sync-rules@0.22.0
54
+
55
+ ## 0.10.1
56
+
57
+ ### Patch Changes
58
+
59
+ - 2a4f020: Fix regression for missing HTTP probes. Reported in [issue](https://github.com/powersync-ja/powersync-service/issues/144).
60
+
61
+ ## 0.10.0
62
+
63
+ ### Minor Changes
64
+
65
+ - 35c267f: Add "supabase_jwt_secret" config option to simplify static Supabase auth.
66
+
67
+ ### Patch Changes
68
+
69
+ - 2c18ad2: Fix compact action
70
+ - Updated dependencies [35c267f]
71
+ - @powersync/service-types@0.4.0
72
+
73
+ ## 0.9.0
74
+
75
+ ### Minor Changes
76
+
77
+ - 57bd18b: Added ability to emit data replication events
78
+ - 57bd18b: Introduced alpha support for MySQL as a datasource for replication.
9
79
  Bunch of cleanup
10
- - 2ccd6af: Moved Write Checkpoint APIs to SyncBucketStorage
11
- - d51921f: - Introduced modules to the powersync service architecture
80
+ - 57bd18b: Moved Write Checkpoint APIs to SyncBucketStorage
81
+ - 57bd18b: - Introduced modules to the powersync service architecture
12
82
  - Core functionality has been moved to "engine" classes. Modules can register additional functionality with these engines.
13
83
  - The sync API functionality used by the routes has been abstracted to an interface. API routes are now managed by the RouterEngine.
14
84
  - Replication is managed by the ReplicationEngine and new replication data sources can be registered to the engine by modules.
@@ -17,19 +87,19 @@
17
87
 
18
88
  ### Patch Changes
19
89
 
20
- - ac03d8f: Improved sync rules storage cached parsed sync rules, accommodating different parsing options where necessary.
21
- - e4d19b2: Moved tag variable initialization in diagnostics route to ensure it is initialized before usage
22
- - Updated dependencies [d2ece1b]
23
- - Updated dependencies [d2ece1b]
24
- - Updated dependencies [8610431]
25
- - Updated dependencies [d2ece1b]
26
- - Updated dependencies [d51921f]
27
- - Updated dependencies [1f22484]
28
- - Updated dependencies [4ecaee2]
29
- - @powersync/lib-services-framework@0.0.0-dev-20241119082750
30
- - @powersync/service-sync-rules@0.0.0-dev-20241119082750
31
- - @powersync/service-rsocket-router@0.0.0-dev-20241119082750
32
- - @powersync/service-types@0.0.0-dev-20241119082750
90
+ - 57bd18b: Improved sync rules storage cached parsed sync rules, accommodating different parsing options where necessary.
91
+ - 57bd18b: Moved tag variable initialization in diagnostics route to ensure it is initialized before usage
92
+ - Updated dependencies [57bd18b]
93
+ - Updated dependencies [57bd18b]
94
+ - Updated dependencies [57bd18b]
95
+ - Updated dependencies [57bd18b]
96
+ - Updated dependencies [57bd18b]
97
+ - Updated dependencies [57bd18b]
98
+ - Updated dependencies [57bd18b]
99
+ - @powersync/lib-services-framework@0.2.0
100
+ - @powersync/service-sync-rules@0.21.0
101
+ - @powersync/service-rsocket-router@0.0.14
102
+ - @powersync/service-types@0.3.0
33
103
 
34
104
  ## 0.8.8
35
105
 
@@ -1,6 +1,7 @@
1
1
  import * as jose from 'jose';
2
2
  export declare const HS_ALGORITHMS: string[];
3
3
  export declare const RSA_ALGORITHMS: string[];
4
+ export declare const OKP_ALGORITHMS: string[];
4
5
  export declare const SUPPORTED_ALGORITHMS: string[];
5
6
  export interface KeyOptions {
6
7
  /**
@@ -1,7 +1,8 @@
1
1
  import * as jose from 'jose';
2
2
  export const HS_ALGORITHMS = ['HS256', 'HS384', 'HS512'];
3
3
  export const RSA_ALGORITHMS = ['RS256', 'RS384', 'RS512'];
4
- export const SUPPORTED_ALGORITHMS = [...HS_ALGORITHMS, ...RSA_ALGORITHMS];
4
+ export const OKP_ALGORITHMS = ['EdDSA'];
5
+ export const SUPPORTED_ALGORITHMS = [...HS_ALGORITHMS, ...RSA_ALGORITHMS, ...OKP_ALGORITHMS];
5
6
  export class KeySpec {
6
7
  static async importKey(key, options) {
7
8
  const parsed = (await jose.importJWK(key));
@@ -17,18 +18,19 @@ export class KeySpec {
17
18
  }
18
19
  matchesAlgorithm(jwtAlg) {
19
20
  if (this.source.alg) {
20
- return jwtAlg == this.source.alg;
21
+ return jwtAlg === this.source.alg;
21
22
  }
22
- else if (this.source.kty == 'RSA') {
23
+ else if (this.source.kty === 'RSA') {
23
24
  return RSA_ALGORITHMS.includes(jwtAlg);
24
25
  }
25
- else if (this.source.kty == 'oct') {
26
+ else if (this.source.kty === 'oct') {
26
27
  return HS_ALGORITHMS.includes(jwtAlg);
27
28
  }
28
- else {
29
- // We don't support 'ec' yet
30
- return false;
29
+ else if (this.source.kty === 'OKP') {
30
+ return OKP_ALGORITHMS.includes(jwtAlg);
31
31
  }
32
+ // 'EC' is unsupported
33
+ return false;
32
34
  }
33
35
  async isValidSignature(token) {
34
36
  try {
@@ -36,7 +38,7 @@ export class KeySpec {
36
38
  return true;
37
39
  }
38
40
  catch (e) {
39
- if (e.code == 'ERR_JWS_SIGNATURE_VERIFICATION_FAILED') {
41
+ if (e.code === 'ERR_JWS_SIGNATURE_VERIFICATION_FAILED') {
40
42
  return false;
41
43
  }
42
44
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"KeySpec.js","sourceRoot":"","sources":["../../src/auth/KeySpec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC1D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,GAAG,aAAa,EAAE,GAAG,cAAc,CAAC,CAAC;AAgB1E,MAAM,OAAO,OAAO;IAKlB,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,GAAa,EAAE,OAAoB;QACxD,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAiB,CAAC;QAC3D,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,YAAY,MAAgB,EAAE,GAAiB,EAAE,OAAoB;QACnE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;IACzB,CAAC;IAED,gBAAgB,CAAC,MAAc;QAC7B,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YACpB,OAAO,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;QACnC,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC;YACpC,OAAO,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC;YACpC,OAAO,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,4BAA4B;YAC5B,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,KAAa;QAClC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,CAAC,IAAI,IAAI,uCAAuC,EAAE,CAAC;gBACtD,OAAO,KAAK,CAAC;YACf,CAAC;iBAAM,CAAC;gBACN,iCAAiC;gBACjC,MAAM,CAAC,CAAC;YACV,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"KeySpec.js","sourceRoot":"","sources":["../../src/auth/KeySpec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC1D,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAO,CAAC,CAAC;AACxC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,GAAG,aAAa,EAAE,GAAG,cAAc,EAAE,GAAG,cAAc,CAAC,CAAC;AAgB7F,MAAM,OAAO,OAAO;IAKlB,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,GAAa,EAAE,OAAoB;QACxD,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAiB,CAAC;QAC3D,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,YAAY,MAAgB,EAAE,GAAiB,EAAE,OAAoB;QACnE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;IACzB,CAAC;IAED,gBAAgB,CAAC,MAAc;QAC7B,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YACpB,OAAO,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;QACpC,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;YACrC,OAAO,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;YACrC,OAAO,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;YACrC,OAAO,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;QAED,sBAAsB;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,KAAa;QAClC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,CAAC,IAAI,KAAK,uCAAuC,EAAE,CAAC;gBACvD,OAAO,KAAK,CAAC;YACf,CAAC;iBAAM,CAAC;gBACN,iCAAiC;gBACjC,MAAM,CAAC,CAAC;YACV,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
@@ -50,8 +50,8 @@ export class RemoteJWKSCollector {
50
50
  }
51
51
  let keys = [];
52
52
  for (let keyData of data.keys) {
53
- if (keyData.kty != 'RSA') {
54
- // Only RSA public keys supported here
53
+ if (keyData.kty != 'RSA' && keyData.kty != 'OKP') {
54
+ // HS (oct) keys not allowed because they are symmetric
55
55
  continue;
56
56
  }
57
57
  if (typeof keyData.use == 'string') {
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteJWKSCollector.js","sourceRoot":"","sources":["../../src/auth/RemoteJWKSCollector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RemoteJWKSCollector.js","sourceRoot":"","sources":["../../src/auth/RemoteJWKSCollector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import * as jose from 'jose';
2
+ import { KeySpec } from './KeySpec.js';
3
+ import { KeyCollector, KeyResult } from './KeyCollector.js';
4
+ /**
5
+ * Set of static keys for Supabase.
6
+ *
7
+ * Same as StaticKeyCollector, but with some configuration tweaks for Supabase.
8
+ *
9
+ * Similar to SupabaseKeyCollector, but using hardcoded keys instead of fetching
10
+ * from the database.
11
+ *
12
+ * A key can be added both with and without a kid, in case wildcard matching is desired.
13
+ */
14
+ export declare class StaticSupabaseKeyCollector implements KeyCollector {
15
+ private keys;
16
+ static importKeys(keys: jose.JWK[]): Promise<StaticSupabaseKeyCollector>;
17
+ constructor(keys: KeySpec[]);
18
+ getKeys(): Promise<KeyResult>;
19
+ }
@@ -0,0 +1,28 @@
1
+ import { KeySpec } from './KeySpec.js';
2
+ const SUPABASE_KEY_OPTIONS = {
3
+ requiresAudience: ['authenticated'],
4
+ maxLifetimeSeconds: 86400 * 7 + 1200 // 1 week + 20 minutes margin
5
+ };
6
+ /**
7
+ * Set of static keys for Supabase.
8
+ *
9
+ * Same as StaticKeyCollector, but with some configuration tweaks for Supabase.
10
+ *
11
+ * Similar to SupabaseKeyCollector, but using hardcoded keys instead of fetching
12
+ * from the database.
13
+ *
14
+ * A key can be added both with and without a kid, in case wildcard matching is desired.
15
+ */
16
+ export class StaticSupabaseKeyCollector {
17
+ static async importKeys(keys) {
18
+ const parsedKeys = await Promise.all(keys.map((key) => KeySpec.importKey(key, SUPABASE_KEY_OPTIONS)));
19
+ return new StaticSupabaseKeyCollector(parsedKeys);
20
+ }
21
+ constructor(keys) {
22
+ this.keys = keys;
23
+ }
24
+ async getKeys() {
25
+ return { keys: this.keys, errors: [] };
26
+ }
27
+ }
28
+ //# sourceMappingURL=StaticSupabaseKeyCollector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StaticSupabaseKeyCollector.js","sourceRoot":"","sources":["../../src/auth/StaticSupabaseKeyCollector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAc,MAAM,cAAc,CAAC;AAGnD,MAAM,oBAAoB,GAAe;IACvC,gBAAgB,EAAE,CAAC,eAAe,CAAC;IACnC,kBAAkB,EAAE,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,6BAA6B;CACnE,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,OAAO,0BAA0B;IACrC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAgB;QACtC,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC;QACtG,OAAO,IAAI,0BAA0B,CAAC,UAAU,CAAC,CAAC;IACpD,CAAC;IAED,YAAoB,IAAe;QAAf,SAAI,GAAJ,IAAI,CAAW;IAAG,CAAC;IAEvC,KAAK,CAAC,OAAO;QACX,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACzC,CAAC;CACF"}
@@ -7,3 +7,4 @@ export * from './KeyStore.js';
7
7
  export * from './LeakyBucket.js';
8
8
  export * from './RemoteJWKSCollector.js';
9
9
  export * from './StaticKeyCollector.js';
10
+ export * from './StaticSupabaseKeyCollector.js';
@@ -7,4 +7,5 @@ export * from './KeyStore.js';
7
7
  export * from './LeakyBucket.js';
8
8
  export * from './RemoteJWKSCollector.js';
9
9
  export * from './StaticKeyCollector.js';
10
+ export * from './StaticSupabaseKeyCollector.js';
10
11
  //# sourceMappingURL=auth-index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-index.js","sourceRoot":"","sources":["../../src/auth/auth-index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"auth-index.js","sourceRoot":"","sources":["../../src/auth/auth-index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC"}
@@ -50,10 +50,11 @@ var __disposeResources = (this && this.__disposeResources) || (function (Suppres
50
50
  var e = new Error(message);
51
51
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
52
52
  });
53
- import { logger } from '@powersync/lib-services-framework';
53
+ import { container, logger } from '@powersync/lib-services-framework';
54
54
  import * as v8 from 'v8';
55
- import * as storage from '../../storage/storage-index.js';
55
+ import * as system from '../../system/system-index.js';
56
56
  import * as utils from '../../util/util-index.js';
57
+ import { modules } from '../../index.js';
57
58
  import { extractRunnerOptions, wrapConfigCommand } from './config-command.js';
58
59
  const COMMAND_NAME = 'compact';
59
60
  /**
@@ -73,26 +74,24 @@ export function registerCompactAction(program) {
73
74
  wrapConfigCommand(compactCommand);
74
75
  return compactCommand.description('Compact storage').action(async (options) => {
75
76
  const buckets = options.buckets?.split(',');
76
- if (buckets != null) {
77
+ if (buckets == null) {
77
78
  logger.info('Compacting storage for all buckets...');
78
79
  }
79
80
  else {
80
- logger.info(`Compacting storage for ${buckets.join(', ')}...`);
81
+ logger.info(`Compacting storage for ${buckets?.join(', ')}...`);
81
82
  }
82
- const runnerConfig = extractRunnerOptions(options);
83
- const configuration = await utils.loadConfig(runnerConfig);
84
- logger.info('Successfully loaded configuration...');
85
- const { storage: storageConfig } = configuration;
83
+ const config = await utils.loadConfig(extractRunnerOptions(options));
84
+ const serviceContext = new system.ServiceContextContainer(config);
85
+ // Register modules in order to allow custom module compacting
86
+ const moduleManager = container.getImplementation(modules.ModuleManager);
87
+ await moduleManager.initialize(serviceContext);
86
88
  logger.info('Connecting to storage...');
87
- const psdb = storage.createPowerSyncMongo(storageConfig);
88
- const client = psdb.client;
89
- await client.connect();
90
89
  try {
91
90
  const env_1 = { stack: [], error: void 0, hasError: false };
92
91
  try {
93
- const bucketStorage = new storage.MongoBucketStorage(psdb, {
94
- slot_name_prefix: configuration.slot_name_prefix
95
- });
92
+ // Start the storage engine in order to create the appropriate BucketStorage
93
+ await serviceContext.lifeCycleEngine.start();
94
+ const bucketStorage = serviceContext.storageEngine.activeBucketStorage;
96
95
  const active = await bucketStorage.getActiveSyncRulesContent();
97
96
  if (active == null) {
98
97
  logger.info('No active instance to compact');
@@ -113,10 +112,11 @@ export function registerCompactAction(program) {
113
112
  }
114
113
  catch (e) {
115
114
  logger.error(`Failed to compact: ${e.toString()}`);
115
+ // Indirectly triggers lifeCycleEngine.stop
116
116
  process.exit(1);
117
117
  }
118
118
  finally {
119
- await client.close();
119
+ // Indirectly triggers lifeCycleEngine.stop
120
120
  process.exit(0);
121
121
  }
122
122
  });
@@ -1 +1 @@
1
- {"version":3,"file":"compact-action.js","sourceRoot":"","sources":["../../../src/entry/commands/compact-action.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compact-action.js","sourceRoot":"","sources":["../../../src/entry/commands/compact-action.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,MAAM,MAAM,8BAA8B,CAAC;AACvD,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAElD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE9E,MAAM,YAAY,GAAG,SAAS,CAAC;AAE/B;;GAEG;AACH,MAAM,UAAU,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC,eAAe,CAAC;AAE1D;;;;GAIG;AACH,MAAM,uBAAuB,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC;AAE/E,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,MAAM,cAAc,GAAG,OAAO;SAC3B,OAAO,CAAC,YAAY,CAAC;SACrB,MAAM,CAAC,yBAAyB,EAAE,4EAA4E,CAAC,CAAC;IAEnH,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAElC,OAAO,cAAc,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QAC5E,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,0BAA0B,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;QACrE,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAElE,8DAA8D;QAC9D,MAAM,aAAa,GAAG,SAAS,CAAC,iBAAiB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACzE,MAAM,aAAa,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAE/C,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAExC,IAAI,CAAC;;;gBACH,4EAA4E;gBAC5E,MAAM,cAAc,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;gBAC7C,MAAM,aAAa,GAAG,cAAc,CAAC,aAAa,CAAC,mBAAmB,CAAC;gBAEvE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,yBAAyB,EAAE,CAAC;gBAC/D,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;oBAC7C,OAAO;gBACT,CAAC;gBACD,MAAM,CAAC,kCAAG,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,QAAA,CAAC;gBAC5C,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;gBACxC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,uBAAuB,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC;gBACrF,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;;;;;;;;;SAChD;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACnD,2CAA2C;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;gBAAS,CAAC;YACT,2CAA2C;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,5 +1,7 @@
1
- import { logger } from '@powersync/lib-services-framework';
2
- import * as migrations from '../../migrations/migrations-index.js';
1
+ import { container, logger } from '@powersync/lib-services-framework';
2
+ import * as modules from '../../modules/modules-index.js';
3
+ import * as system from '../../system/system-index.js';
4
+ import * as utils from '../../util/util-index.js';
3
5
  import { extractRunnerOptions, wrapConfigCommand } from './config-command.js';
4
6
  const COMMAND_NAME = 'migrate';
5
7
  export function registerMigrationAction(program) {
@@ -9,11 +11,20 @@ export function registerMigrationAction(program) {
9
11
  .description('Run migrations')
10
12
  .argument('<direction>', 'Migration direction. `up` or `down`')
11
13
  .action(async (direction, options) => {
14
+ const config = await utils.loadConfig(extractRunnerOptions(options));
15
+ const serviceContext = new system.ServiceContextContainer(config);
16
+ // Register modules in order to allow custom module migrations
17
+ const moduleManager = container.getImplementation(modules.ModuleManager);
18
+ await moduleManager.initialize(serviceContext);
12
19
  try {
13
- await migrations.migrate({
20
+ await serviceContext.migrations.migrate({
14
21
  direction,
15
- runner_config: extractRunnerOptions(options)
22
+ // Give the migrations access to the service context
23
+ migrationContext: {
24
+ service_context: serviceContext
25
+ }
16
26
  });
27
+ await serviceContext.migrations[Symbol.asyncDispose]();
17
28
  process.exit(0);
18
29
  }
19
30
  catch (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"migrate-action.js","sourceRoot":"","sources":["../../../src/entry/commands/migrate-action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAG3D,OAAO,KAAK,UAAU,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE9E,MAAM,YAAY,GAAG,SAAS,CAAC;AAE/B,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAEvD,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAEpC,OAAO,gBAAgB;SACpB,WAAW,CAAC,gBAAgB,CAAC;SAC7B,QAAQ,CAAC,aAAa,EAAE,qCAAqC,CAAC;SAC9D,MAAM,CAAC,KAAK,EAAE,SAA+B,EAAE,OAAO,EAAE,EAAE;QACzD,IAAI,CAAC;YACH,MAAM,UAAU,CAAC,OAAO,CAAC;gBACvB,SAAS;gBACT,aAAa,EAAE,oBAAoB,CAAC,OAAO,CAAC;aAC7C,CAAC,CAAC;YAEH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"migrate-action.js","sourceRoot":"","sources":["../../../src/entry/commands/migrate-action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAc,MAAM,mCAAmC,CAAC;AAGlF,OAAO,KAAK,OAAO,MAAM,gCAAgC,CAAC;AAC1D,OAAO,KAAK,MAAM,MAAM,8BAA8B,CAAC;AACvD,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE9E,MAAM,YAAY,GAAG,SAAS,CAAC;AAE/B,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAEvD,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAEpC,OAAO,gBAAgB;SACpB,WAAW,CAAC,gBAAgB,CAAC;SAC7B,QAAQ,CAAC,aAAa,EAAE,qCAAqC,CAAC;SAC9D,MAAM,CAAC,KAAK,EAAE,SAA+B,EAAE,OAAO,EAAE,EAAE;QACzD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;QACrE,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAElE,8DAA8D;QAC9D,MAAM,aAAa,GAAG,SAAS,CAAC,iBAAiB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACzE,MAAM,aAAa,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAE/C,IAAI,CAAC;YACH,MAAM,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC;gBACtC,SAAS;gBACT,oDAAoD;gBACpD,gBAAgB,EAAE;oBAChB,eAAe,EAAE,cAAc;iBAChC;aACF,CAAC,CAAC;YAEH,MAAM,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;YACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
package/dist/index.d.ts CHANGED
@@ -2,15 +2,13 @@ export * from './api/api-index.js';
2
2
  export * as api from './api/api-index.js';
3
3
  export * from './auth/auth-index.js';
4
4
  export * as auth from './auth/auth-index.js';
5
- export * from './db/db-index.js';
6
- export * as db from './db/db-index.js';
7
5
  export * from './entry/entry-index.js';
8
6
  export * as entry from './entry/entry-index.js';
9
7
  export * as framework from '@powersync/lib-services-framework';
10
8
  export * from './metrics/Metrics.js';
11
9
  export * as metrics from './metrics/Metrics.js';
10
+ export * from './migrations/migrations-index.js';
12
11
  export * as migrations from './migrations/migrations-index.js';
13
- export * from './migrations/migrations.js';
14
12
  export * from './modules/modules-index.js';
15
13
  export * as modules from './modules/modules-index.js';
16
14
  export * from './replication/replication-index.js';
package/dist/index.js CHANGED
@@ -3,16 +3,14 @@ export * from './api/api-index.js';
3
3
  export * as api from './api/api-index.js';
4
4
  export * from './auth/auth-index.js';
5
5
  export * as auth from './auth/auth-index.js';
6
- export * from './db/db-index.js';
7
- export * as db from './db/db-index.js';
8
6
  export * from './entry/entry-index.js';
9
7
  export * as entry from './entry/entry-index.js';
10
8
  // Re-export framework for easy use of Container API
11
9
  export * as framework from '@powersync/lib-services-framework';
12
10
  export * from './metrics/Metrics.js';
13
11
  export * as metrics from './metrics/Metrics.js';
12
+ export * from './migrations/migrations-index.js';
14
13
  export * as migrations from './migrations/migrations-index.js';
15
- export * from './migrations/migrations.js';
16
14
  export * from './modules/modules-index.js';
17
15
  export * as modules from './modules/modules-index.js';
18
16
  export * from './replication/replication-index.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AAEzC,cAAc,oBAAoB,CAAC;AACnC,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAC;AAE1C,cAAc,sBAAsB,CAAC;AACrC,OAAO,KAAK,IAAI,MAAM,sBAAsB,CAAC;AAE7C,cAAc,kBAAkB,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEvC,cAAc,wBAAwB,CAAC;AACvC,OAAO,KAAK,KAAK,MAAM,wBAAwB,CAAC;AAEhD,oDAAoD;AACpD,OAAO,KAAK,SAAS,MAAM,mCAAmC,CAAC;AAE/D,cAAc,sBAAsB,CAAC;AACrC,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,OAAO,KAAK,UAAU,MAAM,kCAAkC,CAAC;AAC/D,cAAc,4BAA4B,CAAC;AAE3C,cAAc,4BAA4B,CAAC;AAC3C,OAAO,KAAK,OAAO,MAAM,4BAA4B,CAAC;AAEtD,cAAc,oCAAoC,CAAC;AACnD,OAAO,KAAK,WAAW,MAAM,oCAAoC,CAAC;AAElE,cAAc,0BAA0B,CAAC;AACzC,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AAEnD,cAAc,4BAA4B,CAAC;AAC3C,OAAO,KAAK,OAAO,MAAM,4BAA4B,CAAC;AAEtD,cAAc,sBAAsB,CAAC;AACrC,OAAO,KAAK,IAAI,MAAM,sBAAsB,CAAC;AAE7C,cAAc,0BAA0B,CAAC;AACzC,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AAEnD,cAAc,sBAAsB,CAAC;AACrC,OAAO,KAAK,KAAK,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AAEzC,cAAc,oBAAoB,CAAC;AACnC,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAC;AAE1C,cAAc,sBAAsB,CAAC;AACrC,OAAO,KAAK,IAAI,MAAM,sBAAsB,CAAC;AAE7C,cAAc,wBAAwB,CAAC;AACvC,OAAO,KAAK,KAAK,MAAM,wBAAwB,CAAC;AAEhD,oDAAoD;AACpD,OAAO,KAAK,SAAS,MAAM,mCAAmC,CAAC;AAE/D,cAAc,sBAAsB,CAAC;AACrC,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,cAAc,kCAAkC,CAAC;AACjD,OAAO,KAAK,UAAU,MAAM,kCAAkC,CAAC;AAE/D,cAAc,4BAA4B,CAAC;AAC3C,OAAO,KAAK,OAAO,MAAM,4BAA4B,CAAC;AAEtD,cAAc,oCAAoC,CAAC;AACnD,OAAO,KAAK,WAAW,MAAM,oCAAoC,CAAC;AAElE,cAAc,0BAA0B,CAAC;AACzC,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AAEnD,cAAc,4BAA4B,CAAC;AAC3C,OAAO,KAAK,OAAO,MAAM,4BAA4B,CAAC;AAEtD,cAAc,sBAAsB,CAAC;AACrC,OAAO,KAAK,IAAI,MAAM,sBAAsB,CAAC;AAE7C,cAAc,0BAA0B,CAAC;AACzC,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AAEnD,cAAc,sBAAsB,CAAC;AACrC,OAAO,KAAK,KAAK,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,17 @@
1
+ import * as framework from '@powersync/lib-services-framework';
2
+ import * as system from '../system/system-index.js';
3
+ /**
4
+ * PowerSync service migrations each have this context available to the `up` and `down` methods.
5
+ */
6
+ export interface PowerSyncMigrationContext {
7
+ service_context: system.ServiceContext;
8
+ }
9
+ export interface PowerSyncMigrationGenerics extends framework.MigrationAgentGenerics {
10
+ MIGRATION_CONTEXT: PowerSyncMigrationContext;
11
+ }
12
+ export type PowerSyncMigrationFunction = framework.MigrationFunction<PowerSyncMigrationContext>;
13
+ export declare abstract class AbstractPowerSyncMigrationAgent extends framework.AbstractMigrationAgent<PowerSyncMigrationGenerics> {
14
+ abstract getInternalScriptsDir(): string;
15
+ loadInternalMigrations(): Promise<framework.Migration<PowerSyncMigrationContext>[]>;
16
+ }
17
+ export type PowerSyncMigrationManager = framework.MigrationManager<PowerSyncMigrationGenerics>;
@@ -0,0 +1,22 @@
1
+ import * as framework from '@powersync/lib-services-framework';
2
+ import fs from 'fs/promises';
3
+ import path from 'path';
4
+ export class AbstractPowerSyncMigrationAgent extends framework.AbstractMigrationAgent {
5
+ async loadInternalMigrations() {
6
+ const migrationsDir = this.getInternalScriptsDir();
7
+ const files = await fs.readdir(migrationsDir);
8
+ const migrations = files.filter((file) => {
9
+ // Vitest resolves ts files
10
+ return ['.js', '.ts'].includes(path.extname(file));
11
+ });
12
+ return await Promise.all(migrations.map(async (migration) => {
13
+ const module = await import(path.resolve(migrationsDir, migration));
14
+ return {
15
+ name: path.basename(migration).replace(path.extname(migration), ''),
16
+ up: module.up,
17
+ down: module.down
18
+ };
19
+ }));
20
+ }
21
+ }
22
+ //# sourceMappingURL=PowerSyncMigrationManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PowerSyncMigrationManager.js","sourceRoot":"","sources":["../../src/migrations/PowerSyncMigrationManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AAgBxB,MAAM,OAAgB,+BAAgC,SAAQ,SAAS,CAAC,sBAAkD;IAGxH,KAAK,CAAC,sBAAsB;QAC1B,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACvC,2BAA2B;YAC3B,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,OAAO,CAAC,GAAG,CACtB,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;YACjC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC;YACpE,OAAO;gBACL,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;gBACnE,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,IAAI,EAAE,MAAM,CAAC,IAAI;aAClB,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ import * as system from '../system/system-index.js';
2
+ export declare const ensureAutomaticMigrations: (options: {
3
+ serviceContext: system.ServiceContext;
4
+ }) => Promise<void>;
@@ -0,0 +1,14 @@
1
+ import * as framework from '@powersync/lib-services-framework';
2
+ export const ensureAutomaticMigrations = async (options) => {
3
+ const { serviceContext } = options;
4
+ if (serviceContext.configuration.migrations?.disable_auto_migration) {
5
+ return;
6
+ }
7
+ await serviceContext.migrations.migrate({
8
+ direction: framework.migrations.Direction.Up,
9
+ migrationContext: {
10
+ service_context: serviceContext
11
+ }
12
+ });
13
+ };
14
+ //# sourceMappingURL=ensure-automatic-migrations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure-automatic-migrations.js","sourceRoot":"","sources":["../../src/migrations/ensure-automatic-migrations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,mCAAmC,CAAC;AAG/D,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,EAAE,OAAkD,EAAE,EAAE;IACpG,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IACnC,IAAI,cAAc,CAAC,aAAa,CAAC,UAAU,EAAE,sBAAsB,EAAE,CAAC;QACpE,OAAO;IACT,CAAC;IACD,MAAM,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC;QACtC,SAAS,EAAE,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;QAC5C,gBAAgB,EAAE;YAChB,eAAe,EAAE,cAAc;SAChC;KACF,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -1,3 +1,2 @@
1
- export * from './definitions.js';
2
- export * from './executor.js';
3
- export * from './migrations.js';
1
+ export * from './ensure-automatic-migrations.js';
2
+ export * from './PowerSyncMigrationManager.js';
@@ -1,4 +1,3 @@
1
- export * from './definitions.js';
2
- export * from './executor.js';
3
- export * from './migrations.js';
1
+ export * from './ensure-automatic-migrations.js';
2
+ export * from './PowerSyncMigrationManager.js';
4
3
  //# sourceMappingURL=migrations-index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"migrations-index.js","sourceRoot":"","sources":["../../src/migrations/migrations-index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"migrations-index.js","sourceRoot":"","sources":["../../src/migrations/migrations-index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { logger } from '@powersync/lib-services-framework';
2
2
  import { ADMIN_ROUTES } from './endpoints/admin.js';
3
3
  import { CHECKPOINT_ROUTES } from './endpoints/checkpointing.js';
4
+ import { PROBES_ROUTES } from './endpoints/probes.js';
4
5
  import { syncStreamReactive } from './endpoints/socket-route.js';
5
6
  import { SYNC_RULES_ROUTES } from './endpoints/sync-rules.js';
6
7
  import { SYNC_STREAM_ROUTES } from './endpoints/sync-stream.js';
@@ -16,7 +17,7 @@ export class RouterEngine {
16
17
  this.closed = false;
17
18
  // Default routes
18
19
  this.routes = {
19
- api_routes: [...ADMIN_ROUTES, ...CHECKPOINT_ROUTES, ...SYNC_RULES_ROUTES],
20
+ api_routes: [...ADMIN_ROUTES, ...CHECKPOINT_ROUTES, ...SYNC_RULES_ROUTES, ...PROBES_ROUTES],
20
21
  stream_routes: [...SYNC_STREAM_ROUTES],
21
22
  socket_routes: [syncStreamReactive]
22
23
  };
@@ -1 +1 @@
1
- {"version":3,"file":"RouterEngine.js","sourceRoot":"","sources":["../../src/routes/RouterEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RouterEngine.js","sourceRoot":"","sources":["../../src/routes/RouterEngine.ts"],"names":[],"mappings":"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"}