@powersync/service-core 0.12.2 → 0.14.0

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 (198) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/auth/KeySpec.d.ts +1 -0
  3. package/dist/auth/KeySpec.js +5 -2
  4. package/dist/auth/KeySpec.js.map +1 -1
  5. package/dist/auth/RemoteJWKSCollector.js +1 -1
  6. package/dist/auth/RemoteJWKSCollector.js.map +1 -1
  7. package/dist/entry/commands/compact-action.js +14 -14
  8. package/dist/entry/commands/compact-action.js.map +1 -1
  9. package/dist/entry/commands/migrate-action.js +15 -4
  10. package/dist/entry/commands/migrate-action.js.map +1 -1
  11. package/dist/index.d.ts +1 -3
  12. package/dist/index.js +1 -3
  13. package/dist/index.js.map +1 -1
  14. package/dist/migrations/PowerSyncMigrationManager.d.ts +17 -0
  15. package/dist/migrations/PowerSyncMigrationManager.js +21 -0
  16. package/dist/migrations/PowerSyncMigrationManager.js.map +1 -0
  17. package/dist/migrations/ensure-automatic-migrations.d.ts +4 -0
  18. package/dist/migrations/ensure-automatic-migrations.js +14 -0
  19. package/dist/migrations/ensure-automatic-migrations.js.map +1 -0
  20. package/dist/migrations/migrations-index.d.ts +2 -3
  21. package/dist/migrations/migrations-index.js +2 -3
  22. package/dist/migrations/migrations-index.js.map +1 -1
  23. package/dist/routes/configure-fastify.d.ts +12 -12
  24. package/dist/routes/endpoints/admin.d.ts +24 -24
  25. package/dist/routes/endpoints/probes.d.ts +1 -1
  26. package/dist/routes/endpoints/probes.js +5 -5
  27. package/dist/routes/endpoints/probes.js.map +1 -1
  28. package/dist/storage/BucketStorage.d.ts +49 -1
  29. package/dist/storage/BucketStorage.js +26 -0
  30. package/dist/storage/BucketStorage.js.map +1 -1
  31. package/dist/storage/SourceTable.d.ts +4 -0
  32. package/dist/storage/SourceTable.js +4 -0
  33. package/dist/storage/SourceTable.js.map +1 -1
  34. package/dist/storage/bson.d.ts +24 -0
  35. package/dist/storage/bson.js +73 -0
  36. package/dist/storage/bson.js.map +1 -0
  37. package/dist/storage/storage-index.d.ts +3 -14
  38. package/dist/storage/storage-index.js +3 -14
  39. package/dist/storage/storage-index.js.map +1 -1
  40. package/dist/sync/sync.js +3 -1
  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/types.d.ts +2 -2
  46. package/dist/util/utils.d.ts +13 -1
  47. package/dist/util/utils.js +20 -1
  48. package/dist/util/utils.js.map +1 -1
  49. package/package.json +7 -8
  50. package/src/auth/KeySpec.ts +5 -3
  51. package/src/auth/RemoteJWKSCollector.ts +1 -1
  52. package/src/entry/commands/compact-action.ts +19 -14
  53. package/src/entry/commands/migrate-action.ts +17 -4
  54. package/src/index.ts +1 -4
  55. package/src/migrations/PowerSyncMigrationManager.ts +42 -0
  56. package/src/migrations/ensure-automatic-migrations.ts +15 -0
  57. package/src/migrations/migrations-index.ts +2 -3
  58. package/src/routes/endpoints/probes.ts +6 -6
  59. package/src/storage/BucketStorage.ts +53 -1
  60. package/src/storage/SourceTable.ts +4 -0
  61. package/src/storage/bson.ts +78 -0
  62. package/src/storage/storage-index.ts +3 -15
  63. package/src/sync/sync.ts +3 -1
  64. package/src/system/ServiceContext.ts +17 -4
  65. package/src/util/config/types.ts +2 -2
  66. package/src/util/utils.ts +21 -1
  67. package/test/src/auth.test.ts +33 -0
  68. package/test/src/env.ts +0 -1
  69. package/test/src/routes/probes.test.ts +6 -1
  70. package/tsconfig.tsbuildinfo +1 -1
  71. package/dist/db/db-index.d.ts +0 -1
  72. package/dist/db/db-index.js +0 -2
  73. package/dist/db/db-index.js.map +0 -1
  74. package/dist/db/mongo.d.ts +0 -35
  75. package/dist/db/mongo.js +0 -73
  76. package/dist/db/mongo.js.map +0 -1
  77. package/dist/locks/LockManager.d.ts +0 -10
  78. package/dist/locks/LockManager.js +0 -7
  79. package/dist/locks/LockManager.js.map +0 -1
  80. package/dist/locks/MongoLocks.d.ts +0 -36
  81. package/dist/locks/MongoLocks.js +0 -81
  82. package/dist/locks/MongoLocks.js.map +0 -1
  83. package/dist/locks/locks-index.d.ts +0 -2
  84. package/dist/locks/locks-index.js +0 -3
  85. package/dist/locks/locks-index.js.map +0 -1
  86. package/dist/migrations/db/migrations/1684951997326-init.d.ts +0 -3
  87. package/dist/migrations/db/migrations/1684951997326-init.js +0 -33
  88. package/dist/migrations/db/migrations/1684951997326-init.js.map +0 -1
  89. package/dist/migrations/db/migrations/1688556755264-initial-sync-rules.d.ts +0 -2
  90. package/dist/migrations/db/migrations/1688556755264-initial-sync-rules.js +0 -5
  91. package/dist/migrations/db/migrations/1688556755264-initial-sync-rules.js.map +0 -1
  92. package/dist/migrations/db/migrations/1702295701188-sync-rule-state.d.ts +0 -3
  93. package/dist/migrations/db/migrations/1702295701188-sync-rule-state.js +0 -56
  94. package/dist/migrations/db/migrations/1702295701188-sync-rule-state.js.map +0 -1
  95. package/dist/migrations/db/migrations/1711543888062-write-checkpoint-index.d.ts +0 -3
  96. package/dist/migrations/db/migrations/1711543888062-write-checkpoint-index.js +0 -29
  97. package/dist/migrations/db/migrations/1711543888062-write-checkpoint-index.js.map +0 -1
  98. package/dist/migrations/db/migrations/1727099539247-custom-write-checkpoint-index.d.ts +0 -3
  99. package/dist/migrations/db/migrations/1727099539247-custom-write-checkpoint-index.js +0 -31
  100. package/dist/migrations/db/migrations/1727099539247-custom-write-checkpoint-index.js.map +0 -1
  101. package/dist/migrations/definitions.d.ts +0 -18
  102. package/dist/migrations/definitions.js +0 -6
  103. package/dist/migrations/definitions.js.map +0 -1
  104. package/dist/migrations/executor.d.ts +0 -16
  105. package/dist/migrations/executor.js +0 -64
  106. package/dist/migrations/executor.js.map +0 -1
  107. package/dist/migrations/migrations.d.ts +0 -18
  108. package/dist/migrations/migrations.js +0 -110
  109. package/dist/migrations/migrations.js.map +0 -1
  110. package/dist/migrations/store/migration-store.d.ts +0 -11
  111. package/dist/migrations/store/migration-store.js +0 -46
  112. package/dist/migrations/store/migration-store.js.map +0 -1
  113. package/dist/storage/MongoBucketStorage.d.ts +0 -48
  114. package/dist/storage/MongoBucketStorage.js +0 -427
  115. package/dist/storage/MongoBucketStorage.js.map +0 -1
  116. package/dist/storage/mongo/MongoBucketBatch.d.ts +0 -74
  117. package/dist/storage/mongo/MongoBucketBatch.js +0 -683
  118. package/dist/storage/mongo/MongoBucketBatch.js.map +0 -1
  119. package/dist/storage/mongo/MongoCompactor.d.ts +0 -40
  120. package/dist/storage/mongo/MongoCompactor.js +0 -310
  121. package/dist/storage/mongo/MongoCompactor.js.map +0 -1
  122. package/dist/storage/mongo/MongoIdSequence.d.ts +0 -12
  123. package/dist/storage/mongo/MongoIdSequence.js +0 -21
  124. package/dist/storage/mongo/MongoIdSequence.js.map +0 -1
  125. package/dist/storage/mongo/MongoPersistedSyncRules.d.ts +0 -9
  126. package/dist/storage/mongo/MongoPersistedSyncRules.js +0 -9
  127. package/dist/storage/mongo/MongoPersistedSyncRules.js.map +0 -1
  128. package/dist/storage/mongo/MongoPersistedSyncRulesContent.d.ts +0 -20
  129. package/dist/storage/mongo/MongoPersistedSyncRulesContent.js +0 -26
  130. package/dist/storage/mongo/MongoPersistedSyncRulesContent.js.map +0 -1
  131. package/dist/storage/mongo/MongoStorageProvider.d.ts +0 -5
  132. package/dist/storage/mongo/MongoStorageProvider.js +0 -26
  133. package/dist/storage/mongo/MongoStorageProvider.js.map +0 -1
  134. package/dist/storage/mongo/MongoSyncBucketStorage.d.ts +0 -38
  135. package/dist/storage/mongo/MongoSyncBucketStorage.js +0 -534
  136. package/dist/storage/mongo/MongoSyncBucketStorage.js.map +0 -1
  137. package/dist/storage/mongo/MongoSyncRulesLock.d.ts +0 -16
  138. package/dist/storage/mongo/MongoSyncRulesLock.js +0 -65
  139. package/dist/storage/mongo/MongoSyncRulesLock.js.map +0 -1
  140. package/dist/storage/mongo/MongoWriteCheckpointAPI.d.ts +0 -20
  141. package/dist/storage/mongo/MongoWriteCheckpointAPI.js +0 -104
  142. package/dist/storage/mongo/MongoWriteCheckpointAPI.js.map +0 -1
  143. package/dist/storage/mongo/OperationBatch.d.ts +0 -35
  144. package/dist/storage/mongo/OperationBatch.js +0 -119
  145. package/dist/storage/mongo/OperationBatch.js.map +0 -1
  146. package/dist/storage/mongo/PersistedBatch.d.ts +0 -46
  147. package/dist/storage/mongo/PersistedBatch.js +0 -223
  148. package/dist/storage/mongo/PersistedBatch.js.map +0 -1
  149. package/dist/storage/mongo/config.d.ts +0 -19
  150. package/dist/storage/mongo/config.js +0 -26
  151. package/dist/storage/mongo/config.js.map +0 -1
  152. package/dist/storage/mongo/db.d.ts +0 -36
  153. package/dist/storage/mongo/db.js +0 -47
  154. package/dist/storage/mongo/db.js.map +0 -1
  155. package/dist/storage/mongo/models.d.ts +0 -163
  156. package/dist/storage/mongo/models.js +0 -27
  157. package/dist/storage/mongo/models.js.map +0 -1
  158. package/dist/storage/mongo/util.d.ts +0 -54
  159. package/dist/storage/mongo/util.js +0 -190
  160. package/dist/storage/mongo/util.js.map +0 -1
  161. package/src/db/db-index.ts +0 -1
  162. package/src/db/mongo.ts +0 -81
  163. package/src/locks/LockManager.ts +0 -16
  164. package/src/locks/MongoLocks.ts +0 -142
  165. package/src/locks/locks-index.ts +0 -2
  166. package/src/migrations/db/migrations/1684951997326-init.ts +0 -38
  167. package/src/migrations/db/migrations/1688556755264-initial-sync-rules.ts +0 -5
  168. package/src/migrations/db/migrations/1702295701188-sync-rule-state.ts +0 -102
  169. package/src/migrations/db/migrations/1711543888062-write-checkpoint-index.ts +0 -34
  170. package/src/migrations/db/migrations/1727099539247-custom-write-checkpoint-index.ts +0 -37
  171. package/src/migrations/definitions.ts +0 -21
  172. package/src/migrations/executor.ts +0 -87
  173. package/src/migrations/migrations.ts +0 -142
  174. package/src/migrations/store/migration-store.ts +0 -63
  175. package/src/storage/MongoBucketStorage.ts +0 -541
  176. package/src/storage/mongo/MongoBucketBatch.ts +0 -900
  177. package/src/storage/mongo/MongoCompactor.ts +0 -393
  178. package/src/storage/mongo/MongoIdSequence.ts +0 -24
  179. package/src/storage/mongo/MongoPersistedSyncRules.ts +0 -16
  180. package/src/storage/mongo/MongoPersistedSyncRulesContent.ts +0 -50
  181. package/src/storage/mongo/MongoStorageProvider.ts +0 -31
  182. package/src/storage/mongo/MongoSyncBucketStorage.ts +0 -640
  183. package/src/storage/mongo/MongoSyncRulesLock.ts +0 -85
  184. package/src/storage/mongo/MongoWriteCheckpointAPI.ts +0 -154
  185. package/src/storage/mongo/OperationBatch.ts +0 -131
  186. package/src/storage/mongo/PersistedBatch.ts +0 -285
  187. package/src/storage/mongo/config.ts +0 -40
  188. package/src/storage/mongo/db.ts +0 -88
  189. package/src/storage/mongo/models.ts +0 -187
  190. package/src/storage/mongo/util.ts +0 -203
  191. package/test/src/__snapshots__/sync.test.ts.snap +0 -332
  192. package/test/src/bucket_validation.test.ts +0 -143
  193. package/test/src/bucket_validation.ts +0 -60
  194. package/test/src/compacting.test.ts +0 -295
  195. package/test/src/data_storage.test.ts +0 -1569
  196. package/test/src/stream_utils.ts +0 -42
  197. package/test/src/sync.test.ts +0 -511
  198. package/test/src/util.ts +0 -150
@@ -6,11 +6,11 @@ export declare const executeSql: router.Endpoint<{
6
6
  };
7
7
  connection_id?: string | undefined;
8
8
  }, {
9
+ success: boolean;
9
10
  results: {
10
11
  columns: string[];
11
12
  rows: (string | number | boolean | null)[][];
12
13
  };
13
- success: boolean;
14
14
  error?: string | undefined;
15
15
  }, import("../router.js").Context, import("../router.js").RequestEndpointHandlerPayload<{
16
16
  sql: {
@@ -25,11 +25,11 @@ export declare const executeSql: router.Endpoint<{
25
25
  };
26
26
  connection_id?: string | undefined;
27
27
  }, import("../router.js").Context, import("../router.js").BasicRouterRequest>, {
28
+ success: boolean;
28
29
  results: {
29
30
  columns: string[];
30
31
  rows: (string | number | boolean | null)[][];
31
32
  };
32
- success: boolean;
33
33
  error?: string | undefined;
34
34
  }>> & {
35
35
  path: string;
@@ -55,11 +55,11 @@ export declare const executeSql: router.Endpoint<{
55
55
  };
56
56
  connection_id?: string | undefined;
57
57
  }, import("../router.js").Context, import("../router.js").BasicRouterRequest>) => Promise<{
58
+ success: boolean;
58
59
  results: {
59
60
  columns: string[];
60
61
  rows: (string | number | boolean | null)[][];
61
62
  };
62
- success: boolean;
63
63
  error?: string | undefined;
64
64
  }>;
65
65
  };
@@ -405,8 +405,8 @@ export declare const validate: router.Endpoint<{
405
405
  level: "warning" | "fatal";
406
406
  }[];
407
407
  connections: {
408
- id: string;
409
408
  tag: string;
409
+ id: string;
410
410
  slot_name: string;
411
411
  initial_replication_done: boolean;
412
412
  tables: {
@@ -421,9 +421,9 @@ export declare const validate: router.Endpoint<{
421
421
  parameter_queries: boolean;
422
422
  pattern?: string | undefined;
423
423
  }[];
424
- last_checkpoint_ts?: string | undefined;
425
- last_keepalive_ts?: string | undefined;
426
424
  last_lsn?: string | undefined;
425
+ last_keepalive_ts?: string | undefined;
426
+ last_checkpoint_ts?: string | undefined;
427
427
  replication_lag_bytes?: number | undefined;
428
428
  }[];
429
429
  content?: string | undefined;
@@ -437,8 +437,8 @@ export declare const validate: router.Endpoint<{
437
437
  level: "warning" | "fatal";
438
438
  }[];
439
439
  connections: {
440
- id: string;
441
440
  tag: string;
441
+ id: string;
442
442
  slot_name: string;
443
443
  initial_replication_done: boolean;
444
444
  tables: {
@@ -453,9 +453,9 @@ export declare const validate: router.Endpoint<{
453
453
  parameter_queries: boolean;
454
454
  pattern?: string | undefined;
455
455
  }[];
456
- last_checkpoint_ts?: string | undefined;
457
- last_keepalive_ts?: string | undefined;
458
456
  last_lsn?: string | undefined;
457
+ last_keepalive_ts?: string | undefined;
458
+ last_checkpoint_ts?: string | undefined;
459
459
  replication_lag_bytes?: number | undefined;
460
460
  }[];
461
461
  content?: string | undefined;
@@ -480,8 +480,8 @@ export declare const validate: router.Endpoint<{
480
480
  level: "warning" | "fatal";
481
481
  }[];
482
482
  connections: {
483
- id: string;
484
483
  tag: string;
484
+ id: string;
485
485
  slot_name: string;
486
486
  initial_replication_done: boolean;
487
487
  tables: {
@@ -496,9 +496,9 @@ export declare const validate: router.Endpoint<{
496
496
  parameter_queries: boolean;
497
497
  pattern?: string | undefined;
498
498
  }[];
499
- last_checkpoint_ts?: string | undefined;
500
- last_keepalive_ts?: string | undefined;
501
499
  last_lsn?: string | undefined;
500
+ last_keepalive_ts?: string | undefined;
501
+ last_checkpoint_ts?: string | undefined;
502
502
  replication_lag_bytes?: number | undefined;
503
503
  }[];
504
504
  content?: string | undefined;
@@ -511,11 +511,11 @@ export declare const ADMIN_ROUTES: ((router.Endpoint<{
511
511
  };
512
512
  connection_id?: string | undefined;
513
513
  }, {
514
+ success: boolean;
514
515
  results: {
515
516
  columns: string[];
516
517
  rows: (string | number | boolean | null)[][];
517
518
  };
518
- success: boolean;
519
519
  error?: string | undefined;
520
520
  }, import("../router.js").Context, import("../router.js").RequestEndpointHandlerPayload<{
521
521
  sql: {
@@ -530,11 +530,11 @@ export declare const ADMIN_ROUTES: ((router.Endpoint<{
530
530
  };
531
531
  connection_id?: string | undefined;
532
532
  }, import("../router.js").Context, import("../router.js").BasicRouterRequest>, {
533
+ success: boolean;
533
534
  results: {
534
535
  columns: string[];
535
536
  rows: (string | number | boolean | null)[][];
536
537
  };
537
- success: boolean;
538
538
  error?: string | undefined;
539
539
  }>> & {
540
540
  path: string;
@@ -560,11 +560,11 @@ export declare const ADMIN_ROUTES: ((router.Endpoint<{
560
560
  };
561
561
  connection_id?: string | undefined;
562
562
  }, import("../router.js").Context, import("../router.js").BasicRouterRequest>) => Promise<{
563
+ success: boolean;
563
564
  results: {
564
565
  columns: string[];
565
566
  rows: (string | number | boolean | null)[][];
566
567
  };
567
- success: boolean;
568
568
  error?: string | undefined;
569
569
  }>;
570
570
  }) | (router.Endpoint<{
@@ -906,8 +906,8 @@ export declare const ADMIN_ROUTES: ((router.Endpoint<{
906
906
  level: "warning" | "fatal";
907
907
  }[];
908
908
  connections: {
909
- id: string;
910
909
  tag: string;
910
+ id: string;
911
911
  slot_name: string;
912
912
  initial_replication_done: boolean;
913
913
  tables: {
@@ -922,9 +922,9 @@ export declare const ADMIN_ROUTES: ((router.Endpoint<{
922
922
  parameter_queries: boolean;
923
923
  pattern?: string | undefined;
924
924
  }[];
925
- last_checkpoint_ts?: string | undefined;
926
- last_keepalive_ts?: string | undefined;
927
925
  last_lsn?: string | undefined;
926
+ last_keepalive_ts?: string | undefined;
927
+ last_checkpoint_ts?: string | undefined;
928
928
  replication_lag_bytes?: number | undefined;
929
929
  }[];
930
930
  content?: string | undefined;
@@ -938,8 +938,8 @@ export declare const ADMIN_ROUTES: ((router.Endpoint<{
938
938
  level: "warning" | "fatal";
939
939
  }[];
940
940
  connections: {
941
- id: string;
942
941
  tag: string;
942
+ id: string;
943
943
  slot_name: string;
944
944
  initial_replication_done: boolean;
945
945
  tables: {
@@ -954,9 +954,9 @@ export declare const ADMIN_ROUTES: ((router.Endpoint<{
954
954
  parameter_queries: boolean;
955
955
  pattern?: string | undefined;
956
956
  }[];
957
- last_checkpoint_ts?: string | undefined;
958
- last_keepalive_ts?: string | undefined;
959
957
  last_lsn?: string | undefined;
958
+ last_keepalive_ts?: string | undefined;
959
+ last_checkpoint_ts?: string | undefined;
960
960
  replication_lag_bytes?: number | undefined;
961
961
  }[];
962
962
  content?: string | undefined;
@@ -981,8 +981,8 @@ export declare const ADMIN_ROUTES: ((router.Endpoint<{
981
981
  level: "warning" | "fatal";
982
982
  }[];
983
983
  connections: {
984
- id: string;
985
984
  tag: string;
985
+ id: string;
986
986
  slot_name: string;
987
987
  initial_replication_done: boolean;
988
988
  tables: {
@@ -997,9 +997,9 @@ export declare const ADMIN_ROUTES: ((router.Endpoint<{
997
997
  parameter_queries: boolean;
998
998
  pattern?: string | undefined;
999
999
  }[];
1000
- last_checkpoint_ts?: string | undefined;
1001
- last_keepalive_ts?: string | undefined;
1002
1000
  last_lsn?: string | undefined;
1001
+ last_keepalive_ts?: string | undefined;
1002
+ last_checkpoint_ts?: string | undefined;
1003
1003
  replication_lag_bytes?: number | undefined;
1004
1004
  }[];
1005
1005
  content?: string | undefined;
@@ -1,4 +1,4 @@
1
- import { router } from "@powersync/lib-services-framework";
1
+ import { router } from '@powersync/lib-services-framework';
2
2
  export declare enum ProbeRoutes {
3
3
  STARTUP = "/probes/startup",
4
4
  LIVENESS = "/probes/liveness",
@@ -1,5 +1,5 @@
1
- import { container, router } from "@powersync/lib-services-framework";
2
- import { routeDefinition } from "../router.js";
1
+ import { container, router } from '@powersync/lib-services-framework';
2
+ import { routeDefinition } from '../router.js';
3
3
  export var ProbeRoutes;
4
4
  (function (ProbeRoutes) {
5
5
  ProbeRoutes["STARTUP"] = "/probes/startup";
@@ -14,7 +14,7 @@ export const startupCheck = routeDefinition({
14
14
  return new router.RouterResponse({
15
15
  status: state.started ? 200 : 400,
16
16
  data: {
17
- ...state,
17
+ ...state
18
18
  }
19
19
  });
20
20
  }
@@ -29,7 +29,7 @@ export const livenessCheck = routeDefinition({
29
29
  return new router.RouterResponse({
30
30
  status,
31
31
  data: {
32
- ...state,
32
+ ...state
33
33
  }
34
34
  });
35
35
  }
@@ -42,7 +42,7 @@ export const readinessCheck = routeDefinition({
42
42
  return new router.RouterResponse({
43
43
  status: state.ready ? 200 : 400,
44
44
  data: {
45
- ...state,
45
+ ...state
46
46
  }
47
47
  });
48
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"probes.js","sourceRoot":"","sources":["../../../src/routes/endpoints/probes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,0CAA2B,CAAA;IAC3B,4CAA6B,CAAA;IAC7B,8CAA+B,CAAA;AACjC,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,eAAe,CAAC;IAC1C,IAAI,EAAE,WAAW,CAAC,OAAO;IACzB,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG;IAC7B,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAEvC,OAAO,IAAI,MAAM,CAAC,cAAc,CAAC;YAC/B,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;YACjC,IAAI,EAAE;gBACJ,GAAG,KAAK;aACT;SACF,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;IAC3C,IAAI,EAAE,WAAW,CAAC,QAAQ;IAC1B,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG;IAC7B,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAEvC,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAA;QAC9D,MAAM,MAAM,GAAG,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAElD,OAAO,IAAI,MAAM,CAAC,cAAc,CAAC;YAC/B,MAAM;YACN,IAAI,EAAE;gBACJ,GAAG,KAAK;aACT;SACF,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC;IAC5C,IAAI,EAAE,WAAW,CAAC,SAAS;IAC3B,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG;IAC7B,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAEvC,OAAO,IAAI,MAAM,CAAC,cAAc,CAAC;YAC/B,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;YAC/B,IAAI,EAAE;gBACJ,GAAG,KAAK;aACT;SACF,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,YAAY,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"probes.js","sourceRoot":"","sources":["../../../src/routes/endpoints/probes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,0CAA2B,CAAA;IAC3B,4CAA6B,CAAA;IAC7B,8CAA+B,CAAA;AACjC,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,eAAe,CAAC;IAC1C,IAAI,EAAE,WAAW,CAAC,OAAO;IACzB,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG;IAC7B,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAEvC,OAAO,IAAI,MAAM,CAAC,cAAc,CAAC;YAC/B,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;YACjC,IAAI,EAAE;gBACJ,GAAG,KAAK;aACT;SACF,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;IAC3C,IAAI,EAAE,WAAW,CAAC,QAAQ;IAC1B,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG;IAC7B,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAEvC,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAC/D,MAAM,MAAM,GAAG,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAElD,OAAO,IAAI,MAAM,CAAC,cAAc,CAAC;YAC/B,MAAM;YACN,IAAI,EAAE;gBACJ,GAAG,KAAK;aACT;SACF,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC;IAC5C,IAAI,EAAE,WAAW,CAAC,SAAS;IAC3B,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG;IAC7B,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAEvC,OAAO,IAAI,MAAM,CAAC,cAAc,CAAC;YAC/B,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;YAC/B,IAAI,EAAE;gBACJ,GAAG,KAAK;aACT;SACF,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,YAAY,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC"}
@@ -1,11 +1,45 @@
1
1
  import { DisposableListener, DisposableObserverClient } from '@powersync/lib-services-framework';
2
2
  import { EvaluatedParameters, EvaluatedRow, SqlSyncRules, SqliteJsonRow, SqliteJsonValue, SqliteRow, ToastableSqliteRow } from '@powersync/service-sync-rules';
3
+ import { BSON } from 'bson';
3
4
  import * as util from '../util/util-index.js';
4
5
  import { ReplicationEventPayload } from './ReplicationEventPayload.js';
5
6
  import { SourceEntityDescriptor } from './SourceEntity.js';
6
7
  import { SourceTable } from './SourceTable.js';
7
- import { BatchedCustomWriteCheckpointOptions, ReplicaId } from './storage-index.js';
8
+ import { BatchedCustomWriteCheckpointOptions } from './storage-index.js';
8
9
  import { SyncStorageWriteCheckpointAPI } from './WriteCheckpointAPI.js';
10
+ /**
11
+ * Replica id uniquely identifying a row on the source database.
12
+ *
13
+ * Can be any value serializable to BSON.
14
+ *
15
+ * If the value is an entire document, the data serialized to a v5 UUID may be a good choice here.
16
+ */
17
+ export type ReplicaId = BSON.UUID | BSON.Document | any;
18
+ export declare enum SyncRuleState {
19
+ /**
20
+ * New sync rules - needs to be processed (initial replication).
21
+ *
22
+ * While multiple sets of sync rules _can_ be in PROCESSING,
23
+ * it's generally pointless, so we only keep one in that state.
24
+ */
25
+ PROCESSING = "PROCESSING",
26
+ /**
27
+ * Sync rule processing is done, and can be used for sync.
28
+ *
29
+ * Only one set of sync rules should be in ACTIVE state.
30
+ */
31
+ ACTIVE = "ACTIVE",
32
+ /**
33
+ * This state is used when the sync rules has been replaced,
34
+ * and replication is or should be stopped.
35
+ */
36
+ STOP = "STOP",
37
+ /**
38
+ * After sync rules have been stopped, the data needs to be
39
+ * deleted. Once deleted, the state is TERMINATED.
40
+ */
41
+ TERMINATED = "TERMINATED"
42
+ }
9
43
  export interface BucketStorageFactoryListener extends DisposableListener {
10
44
  syncStorageCreated: (storage: SyncRulesBucketStorage) => void;
11
45
  replicationEvent: (event: ReplicationEventPayload) => void;
@@ -393,3 +427,17 @@ export interface TerminateOptions {
393
427
  */
394
428
  clearStorage: boolean;
395
429
  }
430
+ /**
431
+ * Helper for tests.
432
+ * This is not in the `service-core-tests` package in order for storage modules
433
+ * to provide relevant factories without requiring `service-core-tests` as a direct dependency.
434
+ */
435
+ export interface TestStorageOptions {
436
+ /**
437
+ * By default, collections are only cleared/
438
+ * Setting this to true will drop the collections completely.
439
+ */
440
+ dropAll?: boolean;
441
+ doNotClear?: boolean;
442
+ }
443
+ export type TestStorageFactory = (options?: TestStorageOptions) => Promise<BucketStorageFactory>;
@@ -1,3 +1,29 @@
1
+ export var SyncRuleState;
2
+ (function (SyncRuleState) {
3
+ /**
4
+ * New sync rules - needs to be processed (initial replication).
5
+ *
6
+ * While multiple sets of sync rules _can_ be in PROCESSING,
7
+ * it's generally pointless, so we only keep one in that state.
8
+ */
9
+ SyncRuleState["PROCESSING"] = "PROCESSING";
10
+ /**
11
+ * Sync rule processing is done, and can be used for sync.
12
+ *
13
+ * Only one set of sync rules should be in ACTIVE state.
14
+ */
15
+ SyncRuleState["ACTIVE"] = "ACTIVE";
16
+ /**
17
+ * This state is used when the sync rules has been replaced,
18
+ * and replication is or should be stopped.
19
+ */
20
+ SyncRuleState["STOP"] = "STOP";
21
+ /**
22
+ * After sync rules have been stopped, the data needs to be
23
+ * deleted. Once deleted, the state is TERMINATED.
24
+ */
25
+ SyncRuleState["TERMINATED"] = "TERMINATED";
26
+ })(SyncRuleState || (SyncRuleState = {}));
1
27
  export const DEFAULT_DOCUMENT_BATCH_LIMIT = 1000;
2
28
  export const DEFAULT_DOCUMENT_CHUNK_LIMIT_BYTES = 1 * 1024 * 1024;
3
29
  export var SaveOperationTag;
@@ -1 +1 @@
1
- {"version":3,"file":"BucketStorage.js","sourceRoot":"","sources":["../../src/storage/BucketStorage.ts"],"names":[],"mappings":"AAsLA,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,CAAC;AACjD,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAgOlE,MAAM,CAAN,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,qCAAiB,CAAA;IACjB,qCAAiB,CAAA;IACjB,qCAAiB,CAAA;AACnB,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,QAI3B;AA4CD,MAAM,UAAU,UAAU,CAAC,MAA0B,EAAE,SAA6B;IAClF,MAAM,SAAS,GAAuB,EAAE,CAAC;IACzC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,WAAW,EAAE,CAAC;YACtC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"BucketStorage.js","sourceRoot":"","sources":["../../src/storage/BucketStorage.ts"],"names":[],"mappings":"AA2BA,MAAM,CAAN,IAAY,aAyBX;AAzBD,WAAY,aAAa;IACvB;;;;;OAKG;IACH,0CAAyB,CAAA;IAEzB;;;;OAIG;IACH,kCAAiB,CAAA;IACjB;;;OAGG;IACH,8BAAa,CAAA;IACb;;;OAGG;IACH,0CAAyB,CAAA;AAC3B,CAAC,EAzBW,aAAa,KAAb,aAAa,QAyBxB;AAsKD,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,CAAC;AACjD,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAgOlE,MAAM,CAAN,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,qCAAiB,CAAA;IACjB,qCAAiB,CAAA;IACjB,qCAAiB,CAAA;AACnB,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,QAI3B;AA4CD,MAAM,UAAU,UAAU,CAAC,MAA0B,EAAE,SAA6B;IAClF,MAAM,SAAS,GAAuB,EAAE,CAAC;IACzC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,WAAW,EAAE,CAAC;YACtC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -35,10 +35,14 @@ export declare class SourceTable {
35
35
  constructor(id: any, connectionTag: string, objectId: number | string, schema: string, table: string, replicaIdColumns: ColumnDescriptor[], snapshotComplete: boolean);
36
36
  get hasReplicaIdentity(): boolean;
37
37
  /**
38
+ * Use for postgres only.
39
+ *
38
40
  * Usage: db.query({statement: `SELECT $1::regclass`, params: [{type: 'varchar', value: table.qualifiedName}]})
39
41
  */
40
42
  get qualifiedName(): string;
41
43
  /**
44
+ * Use for postgres and logs only.
45
+ *
42
46
  * Usage: db.query(`SELECT * FROM ${table.escapedIdentifier}`)
43
47
  */
44
48
  get escapedIdentifier(): string;
@@ -38,12 +38,16 @@ export class SourceTable {
38
38
  return this.replicaIdColumns.length > 0;
39
39
  }
40
40
  /**
41
+ * Use for postgres only.
42
+ *
41
43
  * Usage: db.query({statement: `SELECT $1::regclass`, params: [{type: 'varchar', value: table.qualifiedName}]})
42
44
  */
43
45
  get qualifiedName() {
44
46
  return this.escapedIdentifier;
45
47
  }
46
48
  /**
49
+ * Use for postgres and logs only.
50
+ *
47
51
  * Usage: db.query(`SELECT * FROM ${table.escapedIdentifier}`)
48
52
  */
49
53
  get escapedIdentifier() {
@@ -1 +1 @@
1
- {"version":3,"file":"SourceTable.js","sourceRoot":"","sources":["../../src/storage/SourceTable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAG9C,MAAM,OAAO,WAAW;IA8BtB,YACkB,EAAO,EACP,aAAqB,EACrB,QAAyB,EACzB,MAAc,EACd,KAAa,EAEb,gBAAoC,EACpC,gBAAyB;QAPzB,OAAE,GAAF,EAAE,CAAK;QACP,kBAAa,GAAb,aAAa,CAAQ;QACrB,aAAQ,GAAR,QAAQ,CAAiB;QACzB,WAAM,GAAN,MAAM,CAAQ;QACd,UAAK,GAAL,KAAK,CAAQ;QAEb,qBAAgB,GAAhB,gBAAgB,CAAoB;QACpC,qBAAgB,GAAhB,gBAAgB,CAAS;QAnC3C;;;;;;WAMG;QACI,aAAQ,GAAG,IAAI,CAAC;QAEvB;;;;;;WAMG;QACI,mBAAc,GAAG,IAAI,CAAC;QAE7B;;;;;;WAMG;QACI,cAAS,GAAG,IAAI,CAAC;IAWrB,CAAC;IAEJ,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,IAAI,iBAAiB;QACnB,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IACtF,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,SAAS,CAAC;IAChE,CAAC;;AA5De,uBAAW,GAAG,WAAW,AAAd,CAAe"}
1
+ {"version":3,"file":"SourceTable.js","sourceRoot":"","sources":["../../src/storage/SourceTable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAG9C,MAAM,OAAO,WAAW;IA8BtB,YACkB,EAAO,EACP,aAAqB,EACrB,QAAyB,EACzB,MAAc,EACd,KAAa,EAEb,gBAAoC,EACpC,gBAAyB;QAPzB,OAAE,GAAF,EAAE,CAAK;QACP,kBAAa,GAAb,aAAa,CAAQ;QACrB,aAAQ,GAAR,QAAQ,CAAiB;QACzB,WAAM,GAAN,MAAM,CAAQ;QACd,UAAK,GAAL,KAAK,CAAQ;QAEb,qBAAgB,GAAhB,gBAAgB,CAAoB;QACpC,qBAAgB,GAAhB,gBAAgB,CAAS;QAnC3C;;;;;;WAMG;QACI,aAAQ,GAAG,IAAI,CAAC;QAEvB;;;;;;WAMG;QACI,mBAAc,GAAG,IAAI,CAAC;QAE7B;;;;;;WAMG;QACI,cAAS,GAAG,IAAI,CAAC;IAWrB,CAAC;IAEJ,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACH,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,IAAI,iBAAiB;QACnB,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IACtF,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,SAAS,CAAC;IAChE,CAAC;;AAhEe,uBAAW,GAAG,WAAW,AAAd,CAAe"}
@@ -0,0 +1,24 @@
1
+ import * as bson from 'bson';
2
+ import { SqliteJsonValue } from '@powersync/service-sync-rules';
3
+ import { ReplicaId } from './BucketStorage.js';
4
+ export declare const BSON_DESERIALIZE_OPTIONS: bson.DeserializeOptions;
5
+ /**
6
+ * Lookup serialization must be number-agnostic. I.e. normalize numbers, instead of preserving numbers.
7
+ * @param lookup
8
+ */
9
+ export declare const serializeLookupBuffer: (lookup: SqliteJsonValue[]) => Buffer;
10
+ export declare const serializeLookup: (lookup: SqliteJsonValue[]) => bson.Binary;
11
+ /**
12
+ * True if this is a bson.UUID.
13
+ *
14
+ * Works even with multiple copies of the bson package.
15
+ */
16
+ export declare const isUUID: (value: any) => value is bson.UUID;
17
+ export declare const serializeReplicaId: (id: ReplicaId) => Buffer;
18
+ export declare const deserializeReplicaId: (id: Buffer) => ReplicaId;
19
+ export declare const deserializeBson: (buffer: Buffer) => bson.Document;
20
+ export declare const serializeBson: (document: any) => Buffer;
21
+ /**
22
+ * Returns true if two ReplicaId values are the same (serializes to the same BSON value).
23
+ */
24
+ export declare const replicaIdEquals: (a: ReplicaId, b: ReplicaId) => boolean;
@@ -0,0 +1,73 @@
1
+ import * as bson from 'bson';
2
+ export const BSON_DESERIALIZE_OPTIONS = {
3
+ // use bigint instead of Long
4
+ useBigInt64: true
5
+ };
6
+ /**
7
+ * Lookup serialization must be number-agnostic. I.e. normalize numbers, instead of preserving numbers.
8
+ * @param lookup
9
+ */
10
+ export const serializeLookupBuffer = (lookup) => {
11
+ const normalized = lookup.map((value) => {
12
+ if (typeof value == 'number' && Number.isInteger(value)) {
13
+ return BigInt(value);
14
+ }
15
+ else {
16
+ return value;
17
+ }
18
+ });
19
+ return bson.serialize({ l: normalized });
20
+ };
21
+ export const serializeLookup = (lookup) => {
22
+ return new bson.Binary(serializeLookupBuffer(lookup));
23
+ };
24
+ /**
25
+ * True if this is a bson.UUID.
26
+ *
27
+ * Works even with multiple copies of the bson package.
28
+ */
29
+ export const isUUID = (value) => {
30
+ if (value == null || typeof value != 'object') {
31
+ return false;
32
+ }
33
+ const uuid = value;
34
+ return uuid._bsontype == 'Binary' && uuid.sub_type == bson.Binary.SUBTYPE_UUID;
35
+ };
36
+ export const serializeReplicaId = (id) => {
37
+ return bson.serialize({ id });
38
+ };
39
+ export const deserializeReplicaId = (id) => {
40
+ const deserialized = deserializeBson(id);
41
+ return deserialized.id;
42
+ };
43
+ export const deserializeBson = (buffer) => {
44
+ return bson.deserialize(buffer, BSON_DESERIALIZE_OPTIONS);
45
+ };
46
+ export const serializeBson = (document) => {
47
+ return bson.serialize(document);
48
+ };
49
+ /**
50
+ * Returns true if two ReplicaId values are the same (serializes to the same BSON value).
51
+ */
52
+ export const replicaIdEquals = (a, b) => {
53
+ if (a === b) {
54
+ return true;
55
+ }
56
+ else if (typeof a == 'string' && typeof b == 'string') {
57
+ return a == b;
58
+ }
59
+ else if (isUUID(a) && isUUID(b)) {
60
+ return a.equals(b);
61
+ }
62
+ else if (a == null && b == null) {
63
+ return true;
64
+ }
65
+ else if ((b == null && a != null) || (a == null && b != null)) {
66
+ return false;
67
+ }
68
+ else {
69
+ // There are many possible primitive values, this covers them all
70
+ return serializeReplicaId(a).equals(serializeReplicaId(b));
71
+ }
72
+ };
73
+ //# sourceMappingURL=bson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bson.js","sourceRoot":"","sources":["../../src/storage/bson.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,9 @@
1
+ export * from './bson.js';
1
2
  export * from './BucketStorage.js';
2
- export * from './MongoBucketStorage.js';
3
+ export * from './ChecksumCache.js';
3
4
  export * from './ReplicationEventPayload.js';
4
5
  export * from './SourceEntity.js';
5
6
  export * from './SourceTable.js';
6
7
  export * from './StorageEngine.js';
7
- export * from './mongo/config.js';
8
- export * from './mongo/db.js';
9
- export * from './mongo/models.js';
10
- export * from './mongo/MongoBucketBatch.js';
11
- export * from './mongo/MongoIdSequence.js';
12
- export * from './mongo/MongoPersistedSyncRules.js';
13
- export * from './mongo/MongoPersistedSyncRulesContent.js';
14
- export * from './mongo/MongoStorageProvider.js';
15
- export * from './mongo/MongoSyncBucketStorage.js';
16
- export * from './mongo/MongoSyncRulesLock.js';
17
- export * from './mongo/OperationBatch.js';
18
- export * from './mongo/PersistedBatch.js';
19
- export * from './mongo/util.js';
8
+ export * from './StorageProvider.js';
20
9
  export * from './WriteCheckpointAPI.js';
@@ -1,21 +1,10 @@
1
+ export * from './bson.js';
1
2
  export * from './BucketStorage.js';
2
- export * from './MongoBucketStorage.js';
3
+ export * from './ChecksumCache.js';
3
4
  export * from './ReplicationEventPayload.js';
4
5
  export * from './SourceEntity.js';
5
6
  export * from './SourceTable.js';
6
7
  export * from './StorageEngine.js';
7
- export * from './mongo/config.js';
8
- export * from './mongo/db.js';
9
- export * from './mongo/models.js';
10
- export * from './mongo/MongoBucketBatch.js';
11
- export * from './mongo/MongoIdSequence.js';
12
- export * from './mongo/MongoPersistedSyncRules.js';
13
- export * from './mongo/MongoPersistedSyncRulesContent.js';
14
- export * from './mongo/MongoStorageProvider.js';
15
- export * from './mongo/MongoSyncBucketStorage.js';
16
- export * from './mongo/MongoSyncRulesLock.js';
17
- export * from './mongo/OperationBatch.js';
18
- export * from './mongo/PersistedBatch.js';
19
- export * from './mongo/util.js';
8
+ export * from './StorageProvider.js';
20
9
  export * from './WriteCheckpointAPI.js';
21
10
  //# sourceMappingURL=storage-index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage-index.js","sourceRoot":"","sources":["../../src/storage/storage-index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oCAAoC,CAAC;AACnD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"storage-index.js","sourceRoot":"","sources":["../../src/storage/storage-index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC"}
package/dist/sync/sync.js CHANGED
@@ -237,7 +237,9 @@ async function* bucketDataBatch(request) {
237
237
  send_data = { data: r };
238
238
  }
239
239
  else if (raw_data) {
240
- // Data is a raw string - we can use the more efficient JSON.stringify.
240
+ /**
241
+ * Data is a raw string - we can use the more efficient JSON.stringify.
242
+ */
241
243
  const response = {
242
244
  data: r
243
245
  };
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/sync/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/sync/sync.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { LifeCycledSystem, ServiceIdentifier } from '@powersync/lib-services-framework';
2
2
  import * as metrics from '../metrics/Metrics.js';
3
+ import { PowerSyncMigrationManager } from '../migrations/PowerSyncMigrationManager.js';
3
4
  import * as replication from '../replication/replication-index.js';
4
5
  import * as routes from '../routes/routes-index.js';
5
6
  import * as storage from '../storage/storage-index.js';
@@ -11,6 +12,7 @@ export interface ServiceContext {
11
12
  replicationEngine: replication.ReplicationEngine | null;
12
13
  routerEngine: routes.RouterEngine | null;
13
14
  storageEngine: storage.StorageEngine;
15
+ migrations: PowerSyncMigrationManager;
14
16
  }
15
17
  /**
16
18
  * Context which allows for registering and getting implementations
@@ -25,6 +27,7 @@ export declare class ServiceContextContainer implements ServiceContext {
25
27
  get replicationEngine(): replication.ReplicationEngine | null;
26
28
  get routerEngine(): routes.RouterEngine | null;
27
29
  get metrics(): metrics.Metrics | null;
30
+ get migrations(): PowerSyncMigrationManager;
28
31
  /**
29
32
  * Allows for registering core and generic implementations of services/helpers.
30
33
  * This uses the framework container under the hood.