@powersync/service-core 0.0.0-dev-20240725112650 → 0.0.0-dev-20240918092408

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 (331) hide show
  1. package/CHANGELOG.md +80 -2
  2. package/dist/api/RouteAPI.d.ts +68 -0
  3. package/dist/api/RouteAPI.js +2 -0
  4. package/dist/api/RouteAPI.js.map +1 -0
  5. package/dist/api/api-index.d.ts +1 -0
  6. package/dist/api/api-index.js +1 -0
  7. package/dist/api/api-index.js.map +1 -1
  8. package/dist/api/diagnostics.d.ts +4 -4
  9. package/dist/api/diagnostics.js +11 -65
  10. package/dist/api/diagnostics.js.map +1 -1
  11. package/dist/api/schema.d.ts +3 -5
  12. package/dist/api/schema.js +9 -79
  13. package/dist/api/schema.js.map +1 -1
  14. package/dist/auth/KeyStore.d.ts +7 -4
  15. package/dist/auth/KeyStore.js +1 -1
  16. package/dist/auth/KeyStore.js.map +1 -1
  17. package/dist/auth/auth-index.d.ts +0 -1
  18. package/dist/auth/auth-index.js +0 -1
  19. package/dist/auth/auth-index.js.map +1 -1
  20. package/dist/entry/cli-entry.js +3 -2
  21. package/dist/entry/cli-entry.js.map +1 -1
  22. package/dist/entry/commands/compact-action.js +12 -8
  23. package/dist/entry/commands/compact-action.js.map +1 -1
  24. package/dist/entry/commands/migrate-action.js +4 -5
  25. package/dist/entry/commands/migrate-action.js.map +1 -1
  26. package/dist/entry/commands/teardown-action.js +2 -2
  27. package/dist/entry/commands/teardown-action.js.map +1 -1
  28. package/dist/index.d.ts +4 -2
  29. package/dist/index.js +4 -2
  30. package/dist/index.js.map +1 -1
  31. package/dist/metrics/Metrics.d.ts +2 -2
  32. package/dist/metrics/Metrics.js +5 -13
  33. package/dist/metrics/Metrics.js.map +1 -1
  34. package/dist/migrations/db/migrations/1684951997326-init.d.ts +2 -2
  35. package/dist/migrations/db/migrations/1684951997326-init.js +4 -2
  36. package/dist/migrations/db/migrations/1684951997326-init.js.map +1 -1
  37. package/dist/migrations/db/migrations/1702295701188-sync-rule-state.d.ts +2 -2
  38. package/dist/migrations/db/migrations/1702295701188-sync-rule-state.js +4 -2
  39. package/dist/migrations/db/migrations/1702295701188-sync-rule-state.js.map +1 -1
  40. package/dist/migrations/db/migrations/1711543888062-write-checkpoint-index.d.ts +2 -2
  41. package/dist/migrations/db/migrations/1711543888062-write-checkpoint-index.js +4 -2
  42. package/dist/migrations/db/migrations/1711543888062-write-checkpoint-index.js.map +1 -1
  43. package/dist/migrations/migrations.d.ts +8 -0
  44. package/dist/migrations/migrations.js +19 -7
  45. package/dist/migrations/migrations.js.map +1 -1
  46. package/dist/modules/AbstractModule.d.ts +26 -0
  47. package/dist/modules/AbstractModule.js +11 -0
  48. package/dist/modules/AbstractModule.js.map +1 -0
  49. package/dist/modules/ModuleManager.d.ts +11 -0
  50. package/dist/modules/ModuleManager.js +32 -0
  51. package/dist/modules/ModuleManager.js.map +1 -0
  52. package/dist/modules/modules-index.d.ts +2 -0
  53. package/dist/modules/modules-index.js +3 -0
  54. package/dist/modules/modules-index.js.map +1 -0
  55. package/dist/replication/AbstractReplicationJob.d.ts +38 -0
  56. package/dist/replication/AbstractReplicationJob.js +51 -0
  57. package/dist/replication/AbstractReplicationJob.js.map +1 -0
  58. package/dist/replication/AbstractReplicator.d.ts +53 -0
  59. package/dist/replication/AbstractReplicator.js +187 -0
  60. package/dist/replication/AbstractReplicator.js.map +1 -0
  61. package/dist/replication/ErrorRateLimiter.d.ts +0 -9
  62. package/dist/replication/ErrorRateLimiter.js +1 -42
  63. package/dist/replication/ErrorRateLimiter.js.map +1 -1
  64. package/dist/replication/ReplicationEngine.d.ts +18 -0
  65. package/dist/replication/ReplicationEngine.js +41 -0
  66. package/dist/replication/ReplicationEngine.js.map +1 -0
  67. package/dist/replication/ReplicationModule.d.ts +39 -0
  68. package/dist/replication/ReplicationModule.js +65 -0
  69. package/dist/replication/ReplicationModule.js.map +1 -0
  70. package/dist/replication/replication-index.d.ts +4 -6
  71. package/dist/replication/replication-index.js +4 -6
  72. package/dist/replication/replication-index.js.map +1 -1
  73. package/dist/routes/RouterEngine.d.ts +42 -0
  74. package/dist/routes/RouterEngine.js +80 -0
  75. package/dist/routes/RouterEngine.js.map +1 -0
  76. package/dist/routes/auth.d.ts +2 -2
  77. package/dist/routes/auth.js +11 -11
  78. package/dist/routes/auth.js.map +1 -1
  79. package/dist/routes/configure-fastify.d.ts +30 -176
  80. package/dist/routes/configure-fastify.js +10 -11
  81. package/dist/routes/configure-fastify.js.map +1 -1
  82. package/dist/routes/configure-rsocket.d.ts +3 -3
  83. package/dist/routes/configure-rsocket.js +6 -5
  84. package/dist/routes/configure-rsocket.js.map +1 -1
  85. package/dist/routes/endpoints/admin.d.ts +0 -34
  86. package/dist/routes/endpoints/admin.js +48 -89
  87. package/dist/routes/endpoints/admin.js.map +1 -1
  88. package/dist/routes/endpoints/checkpointing.d.ts +56 -16
  89. package/dist/routes/endpoints/checkpointing.js +33 -12
  90. package/dist/routes/endpoints/checkpointing.js.map +1 -1
  91. package/dist/routes/endpoints/route-endpoints-index.d.ts +0 -1
  92. package/dist/routes/endpoints/route-endpoints-index.js +0 -1
  93. package/dist/routes/endpoints/route-endpoints-index.js.map +1 -1
  94. package/dist/routes/endpoints/socket-route.js +40 -25
  95. package/dist/routes/endpoints/socket-route.js.map +1 -1
  96. package/dist/routes/endpoints/sync-rules.d.ts +1 -1
  97. package/dist/routes/endpoints/sync-rules.js +32 -23
  98. package/dist/routes/endpoints/sync-rules.js.map +1 -1
  99. package/dist/routes/endpoints/sync-stream.d.ts +10 -0
  100. package/dist/routes/endpoints/sync-stream.js +13 -8
  101. package/dist/routes/endpoints/sync-stream.js.map +1 -1
  102. package/dist/routes/router-socket.d.ts +1 -0
  103. package/dist/routes/router-socket.js +2 -1
  104. package/dist/routes/router-socket.js.map +1 -1
  105. package/dist/routes/router.d.ts +6 -2
  106. package/dist/routes/router.js.map +1 -1
  107. package/dist/routes/routes-index.d.ts +1 -0
  108. package/dist/routes/routes-index.js +1 -0
  109. package/dist/routes/routes-index.js.map +1 -1
  110. package/dist/runner/teardown.js +47 -76
  111. package/dist/runner/teardown.js.map +1 -1
  112. package/dist/storage/BucketStorage.d.ts +30 -19
  113. package/dist/storage/BucketStorage.js +0 -10
  114. package/dist/storage/BucketStorage.js.map +1 -1
  115. package/dist/storage/MongoBucketStorage.d.ts +4 -4
  116. package/dist/storage/MongoBucketStorage.js +19 -24
  117. package/dist/storage/MongoBucketStorage.js.map +1 -1
  118. package/dist/storage/SourceEntity.d.ts +20 -0
  119. package/dist/storage/SourceEntity.js +2 -0
  120. package/dist/storage/SourceEntity.js.map +1 -0
  121. package/dist/storage/SourceTable.d.ts +4 -5
  122. package/dist/storage/SourceTable.js +3 -4
  123. package/dist/storage/SourceTable.js.map +1 -1
  124. package/dist/storage/StorageEngine.d.ts +24 -0
  125. package/dist/storage/StorageEngine.js +43 -0
  126. package/dist/storage/StorageEngine.js.map +1 -0
  127. package/dist/storage/StorageProvider.d.ts +21 -0
  128. package/dist/storage/StorageProvider.js +2 -0
  129. package/dist/storage/StorageProvider.js.map +1 -0
  130. package/dist/storage/mongo/MongoBucketBatch.d.ts +1 -1
  131. package/dist/storage/mongo/MongoBucketBatch.js +6 -7
  132. package/dist/storage/mongo/MongoBucketBatch.js.map +1 -1
  133. package/dist/storage/mongo/MongoCompactor.js +2 -1
  134. package/dist/storage/mongo/MongoCompactor.js.map +1 -1
  135. package/dist/storage/mongo/MongoPersistedSyncRulesContent.d.ts +2 -2
  136. package/dist/storage/mongo/MongoPersistedSyncRulesContent.js +2 -2
  137. package/dist/storage/mongo/MongoPersistedSyncRulesContent.js.map +1 -1
  138. package/dist/storage/mongo/MongoStorageProvider.d.ts +5 -0
  139. package/dist/storage/mongo/MongoStorageProvider.js +26 -0
  140. package/dist/storage/mongo/MongoStorageProvider.js.map +1 -0
  141. package/dist/storage/mongo/MongoSyncBucketStorage.d.ts +7 -6
  142. package/dist/storage/mongo/MongoSyncBucketStorage.js +24 -15
  143. package/dist/storage/mongo/MongoSyncBucketStorage.js.map +1 -1
  144. package/dist/storage/mongo/MongoSyncRulesLock.js +1 -1
  145. package/dist/storage/mongo/MongoSyncRulesLock.js.map +1 -1
  146. package/dist/storage/mongo/OperationBatch.d.ts +7 -3
  147. package/dist/storage/mongo/OperationBatch.js +16 -7
  148. package/dist/storage/mongo/OperationBatch.js.map +1 -1
  149. package/dist/storage/mongo/PersistedBatch.d.ts +3 -3
  150. package/dist/storage/mongo/PersistedBatch.js +2 -2
  151. package/dist/storage/mongo/PersistedBatch.js.map +1 -1
  152. package/dist/storage/mongo/models.d.ts +13 -4
  153. package/dist/storage/mongo/models.js.map +1 -1
  154. package/dist/storage/mongo/util.d.ts +12 -1
  155. package/dist/storage/mongo/util.js +50 -2
  156. package/dist/storage/mongo/util.js.map +1 -1
  157. package/dist/storage/storage-index.d.ts +5 -2
  158. package/dist/storage/storage-index.js +5 -2
  159. package/dist/storage/storage-index.js.map +1 -1
  160. package/dist/sync/sync.d.ts +2 -1
  161. package/dist/sync/sync.js +36 -10
  162. package/dist/sync/sync.js.map +1 -1
  163. package/dist/sync/util.js.map +1 -1
  164. package/dist/system/ServiceContext.d.ts +37 -0
  165. package/dist/system/ServiceContext.js +48 -0
  166. package/dist/system/ServiceContext.js.map +1 -0
  167. package/dist/system/system-index.d.ts +1 -1
  168. package/dist/system/system-index.js +1 -1
  169. package/dist/system/system-index.js.map +1 -1
  170. package/dist/util/config/compound-config-collector.d.ts +9 -2
  171. package/dist/util/config/compound-config-collector.js +14 -23
  172. package/dist/util/config/compound-config-collector.js.map +1 -1
  173. package/dist/util/config/sync-rules/sync-rules-provider.d.ts +9 -0
  174. package/dist/util/config/sync-rules/sync-rules-provider.js +15 -0
  175. package/dist/util/config/sync-rules/sync-rules-provider.js.map +1 -0
  176. package/dist/util/config/types.d.ts +6 -4
  177. package/dist/util/config/types.js.map +1 -1
  178. package/dist/util/config.d.ts +3 -4
  179. package/dist/util/config.js +5 -20
  180. package/dist/util/config.js.map +1 -1
  181. package/dist/util/protocol-types.d.ts +4 -0
  182. package/dist/util/protocol-types.js +5 -1
  183. package/dist/util/protocol-types.js.map +1 -1
  184. package/dist/util/util-index.d.ts +3 -6
  185. package/dist/util/util-index.js +3 -6
  186. package/dist/util/util-index.js.map +1 -1
  187. package/dist/util/utils.d.ts +10 -6
  188. package/dist/util/utils.js +45 -25
  189. package/dist/util/utils.js.map +1 -1
  190. package/package.json +5 -7
  191. package/src/api/RouteAPI.ts +78 -0
  192. package/src/api/api-index.ts +1 -0
  193. package/src/api/diagnostics.ts +16 -71
  194. package/src/api/schema.ts +13 -89
  195. package/src/auth/KeyStore.ts +9 -6
  196. package/src/auth/auth-index.ts +0 -1
  197. package/src/entry/cli-entry.ts +3 -2
  198. package/src/entry/commands/compact-action.ts +12 -9
  199. package/src/entry/commands/migrate-action.ts +5 -8
  200. package/src/entry/commands/teardown-action.ts +2 -2
  201. package/src/index.ts +5 -2
  202. package/src/metrics/Metrics.ts +6 -16
  203. package/src/migrations/db/migrations/1684951997326-init.ts +9 -4
  204. package/src/migrations/db/migrations/1702295701188-sync-rule-state.ts +7 -4
  205. package/src/migrations/db/migrations/1711543888062-write-checkpoint-index.ts +6 -4
  206. package/src/migrations/migrations.ts +24 -8
  207. package/src/modules/AbstractModule.ts +37 -0
  208. package/src/modules/ModuleManager.ts +34 -0
  209. package/src/modules/modules-index.ts +2 -0
  210. package/src/replication/AbstractReplicationJob.ts +79 -0
  211. package/src/replication/AbstractReplicator.ts +227 -0
  212. package/src/replication/ErrorRateLimiter.ts +0 -44
  213. package/src/replication/ReplicationEngine.ts +43 -0
  214. package/src/replication/ReplicationModule.ts +101 -0
  215. package/src/replication/replication-index.ts +4 -6
  216. package/src/routes/RouterEngine.ts +120 -0
  217. package/src/routes/auth.ts +21 -12
  218. package/src/routes/configure-fastify.ts +13 -14
  219. package/src/routes/configure-rsocket.ts +9 -8
  220. package/src/routes/endpoints/admin.ts +74 -100
  221. package/src/routes/endpoints/checkpointing.ts +46 -12
  222. package/src/routes/endpoints/route-endpoints-index.ts +0 -1
  223. package/src/routes/endpoints/socket-route.ts +44 -27
  224. package/src/routes/endpoints/sync-rules.ts +41 -25
  225. package/src/routes/endpoints/sync-stream.ts +13 -8
  226. package/src/routes/router-socket.ts +2 -1
  227. package/src/routes/router.ts +6 -3
  228. package/src/routes/routes-index.ts +1 -0
  229. package/src/runner/teardown.ts +50 -88
  230. package/src/storage/BucketStorage.ts +38 -25
  231. package/src/storage/MongoBucketStorage.ts +23 -26
  232. package/src/storage/SourceEntity.ts +22 -0
  233. package/src/storage/SourceTable.ts +4 -6
  234. package/src/storage/StorageEngine.ts +55 -0
  235. package/src/storage/StorageProvider.ts +27 -0
  236. package/src/storage/mongo/MongoBucketBatch.ts +8 -8
  237. package/src/storage/mongo/MongoCompactor.ts +2 -1
  238. package/src/storage/mongo/MongoPersistedSyncRulesContent.ts +3 -3
  239. package/src/storage/mongo/MongoStorageProvider.ts +31 -0
  240. package/src/storage/mongo/MongoSyncBucketStorage.ts +39 -20
  241. package/src/storage/mongo/MongoSyncRulesLock.ts +1 -1
  242. package/src/storage/mongo/OperationBatch.ts +18 -11
  243. package/src/storage/mongo/PersistedBatch.ts +6 -5
  244. package/src/storage/mongo/models.ts +13 -4
  245. package/src/storage/mongo/util.ts +49 -4
  246. package/src/storage/storage-index.ts +5 -2
  247. package/src/sync/sync.ts +46 -11
  248. package/src/sync/util.ts +0 -1
  249. package/src/system/ServiceContext.ts +68 -0
  250. package/src/system/system-index.ts +1 -1
  251. package/src/util/config/compound-config-collector.ts +30 -31
  252. package/src/util/config/sync-rules/sync-rules-provider.ts +18 -0
  253. package/src/util/config/types.ts +6 -5
  254. package/src/util/config.ts +6 -23
  255. package/src/util/protocol-types.ts +6 -1
  256. package/src/util/util-index.ts +3 -6
  257. package/src/util/utils.ts +55 -39
  258. package/test/src/__snapshots__/sync.test.ts.snap +7 -7
  259. package/test/src/auth.test.ts +7 -7
  260. package/test/src/broadcast_iterable.test.ts +1 -1
  261. package/test/src/checksum_cache.test.ts +3 -3
  262. package/test/src/compacting.test.ts +26 -17
  263. package/test/src/data_storage.test.ts +258 -146
  264. package/test/src/env.ts +1 -3
  265. package/test/src/merge_iterable.test.ts +1 -6
  266. package/test/src/setup.ts +1 -1
  267. package/test/src/stream_utils.ts +42 -0
  268. package/test/src/sync.test.ts +52 -31
  269. package/test/src/util.ts +48 -51
  270. package/test/tsconfig.json +1 -1
  271. package/tsconfig.tsbuildinfo +1 -1
  272. package/dist/auth/SupabaseKeyCollector.d.ts +0 -22
  273. package/dist/auth/SupabaseKeyCollector.js +0 -61
  274. package/dist/auth/SupabaseKeyCollector.js.map +0 -1
  275. package/dist/replication/PgRelation.d.ts +0 -16
  276. package/dist/replication/PgRelation.js +0 -26
  277. package/dist/replication/PgRelation.js.map +0 -1
  278. package/dist/replication/WalConnection.d.ts +0 -34
  279. package/dist/replication/WalConnection.js +0 -190
  280. package/dist/replication/WalConnection.js.map +0 -1
  281. package/dist/replication/WalStream.d.ts +0 -57
  282. package/dist/replication/WalStream.js +0 -515
  283. package/dist/replication/WalStream.js.map +0 -1
  284. package/dist/replication/WalStreamManager.d.ts +0 -30
  285. package/dist/replication/WalStreamManager.js +0 -198
  286. package/dist/replication/WalStreamManager.js.map +0 -1
  287. package/dist/replication/WalStreamRunner.d.ts +0 -38
  288. package/dist/replication/WalStreamRunner.js +0 -155
  289. package/dist/replication/WalStreamRunner.js.map +0 -1
  290. package/dist/replication/util.d.ts +0 -9
  291. package/dist/replication/util.js +0 -62
  292. package/dist/replication/util.js.map +0 -1
  293. package/dist/routes/endpoints/dev.d.ts +0 -312
  294. package/dist/routes/endpoints/dev.js +0 -172
  295. package/dist/routes/endpoints/dev.js.map +0 -1
  296. package/dist/system/CorePowerSyncSystem.d.ts +0 -23
  297. package/dist/system/CorePowerSyncSystem.js +0 -52
  298. package/dist/system/CorePowerSyncSystem.js.map +0 -1
  299. package/dist/util/PgManager.d.ts +0 -24
  300. package/dist/util/PgManager.js +0 -55
  301. package/dist/util/PgManager.js.map +0 -1
  302. package/dist/util/migration_lib.d.ts +0 -11
  303. package/dist/util/migration_lib.js +0 -64
  304. package/dist/util/migration_lib.js.map +0 -1
  305. package/dist/util/pgwire_utils.d.ts +0 -24
  306. package/dist/util/pgwire_utils.js +0 -117
  307. package/dist/util/pgwire_utils.js.map +0 -1
  308. package/dist/util/populate_test_data.d.ts +0 -8
  309. package/dist/util/populate_test_data.js +0 -65
  310. package/dist/util/populate_test_data.js.map +0 -1
  311. package/src/auth/SupabaseKeyCollector.ts +0 -67
  312. package/src/replication/PgRelation.ts +0 -42
  313. package/src/replication/WalConnection.ts +0 -227
  314. package/src/replication/WalStream.ts +0 -624
  315. package/src/replication/WalStreamManager.ts +0 -213
  316. package/src/replication/WalStreamRunner.ts +0 -180
  317. package/src/replication/util.ts +0 -76
  318. package/src/routes/endpoints/dev.ts +0 -199
  319. package/src/system/CorePowerSyncSystem.ts +0 -64
  320. package/src/util/PgManager.ts +0 -64
  321. package/src/util/migration_lib.ts +0 -79
  322. package/src/util/pgwire_utils.ts +0 -139
  323. package/src/util/populate_test_data.ts +0 -78
  324. package/test/src/__snapshots__/pg_test.test.ts.snap +0 -256
  325. package/test/src/large_batch.test.ts +0 -194
  326. package/test/src/pg_test.test.ts +0 -450
  327. package/test/src/schema_changes.test.ts +0 -545
  328. package/test/src/slow_tests.test.ts +0 -338
  329. package/test/src/validation.test.ts +0 -63
  330. package/test/src/wal_stream.test.ts +0 -319
  331. package/test/src/wal_stream_utils.ts +0 -156
@@ -1,8 +1,9 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
2
  import { EvaluatedParameters, EvaluatedRow, SqlSyncRules, SqliteJsonRow, SqliteJsonValue, SqliteRow, ToastableSqliteRow } from '@powersync/service-sync-rules';
3
- import * as replication from '../replication/replication-index.js';
4
3
  import * as util from '../util/util-index.js';
5
4
  import { SourceTable } from './SourceTable.js';
5
+ import { SourceEntityDescriptor } from './SourceEntity.js';
6
+ import { ReplicaId } from './storage-index.js';
6
7
  export interface BucketStorageFactory {
7
8
  /**
8
9
  * Update sync rules from configuration, if changed.
@@ -17,7 +18,7 @@ export interface BucketStorageFactory {
17
18
  /**
18
19
  * Get a storage instance to query sync data for specific sync rules.
19
20
  */
20
- getInstance(options: PersistedSyncRules): SyncRulesBucketStorage;
21
+ getInstance(options: PersistedSyncRulesContent): SyncRulesBucketStorage;
21
22
  /**
22
23
  * Deploy new sync rules.
23
24
  */
@@ -38,7 +39,7 @@ export interface BucketStorageFactory {
38
39
  /**
39
40
  * Get the sync rules used for querying.
40
41
  */
41
- getActiveSyncRules(): Promise<PersistedSyncRules | null>;
42
+ getActiveSyncRules(options: ParseSyncRulesOptions): Promise<PersistedSyncRules | null>;
42
43
  /**
43
44
  * Get the sync rules used for querying.
44
45
  */
@@ -46,7 +47,7 @@ export interface BucketStorageFactory {
46
47
  /**
47
48
  * Get the sync rules that will be active next once done with initial replicatino.
48
49
  */
49
- getNextSyncRules(): Promise<PersistedSyncRules | null>;
50
+ getNextSyncRules(options: ParseSyncRulesOptions): Promise<PersistedSyncRules | null>;
50
51
  /**
51
52
  * Get the sync rules that will be active next once done with initial replicatino.
52
53
  */
@@ -82,7 +83,7 @@ export interface WriteCheckpoint {
82
83
  }
83
84
  export interface ActiveCheckpoint {
84
85
  readonly checkpoint: util.OpId;
85
- readonly lsn: string;
86
+ readonly lsn: string | null;
86
87
  hasSyncRules(): boolean;
87
88
  getBucketStorage(): Promise<SyncRulesBucketStorage | null>;
88
89
  }
@@ -102,6 +103,9 @@ export interface StorageMetrics {
102
103
  */
103
104
  replication_size_bytes: number;
104
105
  }
106
+ export interface ParseSyncRulesOptions {
107
+ defaultSchema: string;
108
+ }
105
109
  export interface PersistedSyncRulesContent {
106
110
  readonly id: number;
107
111
  readonly sync_rules_content: string;
@@ -109,7 +113,7 @@ export interface PersistedSyncRulesContent {
109
113
  readonly last_fatal_error?: string | null;
110
114
  readonly last_keepalive_ts?: Date | null;
111
115
  readonly last_checkpoint_ts?: Date | null;
112
- parsed(): PersistedSyncRules;
116
+ parsed(options: ParseSyncRulesOptions): PersistedSyncRules;
113
117
  lock(): Promise<ReplicationLock>;
114
118
  }
115
119
  export interface ReplicationLock {
@@ -121,13 +125,6 @@ export interface PersistedSyncRules {
121
125
  readonly sync_rules: SqlSyncRules;
122
126
  readonly slot_name: string;
123
127
  }
124
- export declare class DefaultPersistedSyncRules implements PersistedSyncRules {
125
- readonly id: number;
126
- readonly sync_rules: SqlSyncRules;
127
- readonly checkpoint_lsn: string | null;
128
- constructor(id: number, sync_rules: SqlSyncRules, checkpoint_lsn: string | null);
129
- get slot_name(): string;
130
- }
131
128
  export interface UpdateSyncRulesOptions {
132
129
  content: string;
133
130
  lock?: boolean;
@@ -152,17 +149,19 @@ export interface BucketDataBatchOptions {
152
149
  */
153
150
  chunkLimitBytes?: number;
154
151
  }
152
+ export interface StartBatchOptions extends ParseSyncRulesOptions {
153
+ zeroLSN: string;
154
+ }
155
155
  export interface SyncRulesBucketStorage {
156
- readonly sync_rules: SqlSyncRules;
157
156
  readonly group_id: number;
158
157
  readonly slot_name: string;
159
158
  readonly factory: BucketStorageFactory;
160
159
  resolveTable(options: ResolveTableOptions): Promise<ResolveTableResult>;
161
- startBatch(options: {}, callback: (batch: BucketStorageBatch) => Promise<void>): Promise<FlushedResult | null>;
160
+ startBatch(options: StartBatchOptions, callback: (batch: BucketStorageBatch) => Promise<void>): Promise<FlushedResult | null>;
162
161
  getCheckpoint(): Promise<{
163
162
  checkpoint: util.OpId;
164
- lsn: string;
165
163
  }>;
164
+ getParsedSyncRules(options: ParseSyncRulesOptions): SqlSyncRules;
166
165
  getParameterSets(checkpoint: util.OpId, lookups: SqliteJsonValue[][]): Promise<SqliteJsonRow[]>;
167
166
  /**
168
167
  * Get a "batch" of data for a checkpoint.
@@ -189,7 +188,7 @@ export interface SyncRulesBucketStorage {
189
188
  *
190
189
  * Must only be called on stopped sync rules.
191
190
  */
192
- terminate(): Promise<void>;
191
+ terminate(options?: TerminateOptions): Promise<void>;
193
192
  getStatus(): Promise<SyncRuleStatus>;
194
193
  /**
195
194
  * Clear the storage, without changing state.
@@ -217,7 +216,7 @@ export interface ResolveTableOptions {
217
216
  group_id: number;
218
217
  connection_id: number;
219
218
  connection_tag: string;
220
- relation: replication.PgRelation;
219
+ entity_descriptor: SourceEntityDescriptor;
221
220
  sync_rules: SqlSyncRules;
222
221
  }
223
222
  export interface ResolveTableResult {
@@ -286,7 +285,9 @@ export interface SaveInsert {
286
285
  tag: 'insert';
287
286
  sourceTable: SourceTable;
288
287
  before?: undefined;
288
+ beforeReplicaId?: undefined;
289
289
  after: SqliteRow;
290
+ afterReplicaId: ReplicaId;
290
291
  }
291
292
  export interface SaveUpdate {
292
293
  tag: 'update';
@@ -295,18 +296,22 @@ export interface SaveUpdate {
295
296
  * This is only present when the id has changed, and will only contain replica identity columns.
296
297
  */
297
298
  before?: SqliteRow;
299
+ beforeReplicaId?: ReplicaId;
298
300
  /**
299
301
  * A null value means null column.
300
302
  *
301
303
  * An undefined value means it's a TOAST value - must be copied from another record.
302
304
  */
303
305
  after: ToastableSqliteRow;
306
+ afterReplicaId: ReplicaId;
304
307
  }
305
308
  export interface SaveDelete {
306
309
  tag: 'delete';
307
310
  sourceTable: SourceTable;
308
- before: SqliteRow;
311
+ before?: SqliteRow;
312
+ beforeReplicaId: ReplicaId;
309
313
  after?: undefined;
314
+ afterReplicaId?: undefined;
310
315
  }
311
316
  export interface SyncBucketDataBatch {
312
317
  batch: util.SyncBucketData;
@@ -338,3 +343,9 @@ export interface CompactOptions {
338
343
  */
339
344
  compactBuckets?: string[];
340
345
  }
346
+ export interface TerminateOptions {
347
+ /**
348
+ * If true, also clear the storage before terminating.
349
+ */
350
+ clearStorage: boolean;
351
+ }
@@ -1,13 +1,3 @@
1
- export class DefaultPersistedSyncRules {
2
- constructor(id, sync_rules, checkpoint_lsn) {
3
- this.id = id;
4
- this.sync_rules = sync_rules;
5
- this.checkpoint_lsn = checkpoint_lsn;
6
- }
7
- get slot_name() {
8
- return `powersync_${this.id}`;
9
- }
10
- }
11
1
  export const DEFAULT_DOCUMENT_BATCH_LIMIT = 1000;
12
2
  export const DEFAULT_DOCUMENT_CHUNK_LIMIT_BYTES = 1 * 1024 * 1024;
13
3
  export function mergeToast(record, persisted) {
@@ -1 +1 @@
1
- {"version":3,"file":"BucketStorage.js","sourceRoot":"","sources":["../../src/storage/BucketStorage.ts"],"names":[],"mappings":"AA+JA,MAAM,OAAO,yBAAyB;IAGpC,YAA4B,EAAU,EAAkB,UAAwB,EAAE,cAA6B;QAAnF,OAAE,GAAF,EAAE,CAAQ;QAAkB,eAAU,GAAV,UAAU,CAAc;QAC9E,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,aAAa,IAAI,CAAC,EAAE,EAAE,CAAC;IAChC,CAAC;CACF;AAYD,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,CAAC;AACjD,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAuNlE,MAAM,UAAU,UAAU,CAAC,MAA0B,EAAE,SAA6B;IAClF,MAAM,SAAS,GAAuB,EAAE,CAAC;IACzC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;QACtB,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,WAAW,EAAE;YACrC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;SACjC;aAAM;YACL,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;SAC9B;KACF;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"BucketStorage.js","sourceRoot":"","sources":["../../src/storage/BucketStorage.ts"],"names":[],"mappings":"AA6KA,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,CAAC;AACjD,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAqOlE,MAAM,UAAU,UAAU,CAAC,MAA0B,EAAE,SAA6B;IAClF,MAAM,SAAS,GAAuB,EAAE,CAAC;IACzC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;QACtB,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,WAAW,EAAE;YACrC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;SACjC;aAAM;YACL,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;SAC9B;KACF;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
- import { ActiveCheckpoint, BucketStorageFactory, PersistedSyncRules, PersistedSyncRulesContent, StorageMetrics, UpdateSyncRulesOptions, WriteCheckpoint } from './BucketStorage.js';
2
+ import { ActiveCheckpoint, BucketStorageFactory, ParseSyncRulesOptions, PersistedSyncRules, PersistedSyncRulesContent, StorageMetrics, UpdateSyncRulesOptions, WriteCheckpoint } from './BucketStorage.js';
3
3
  import { MongoPersistedSyncRulesContent } from './mongo/MongoPersistedSyncRulesContent.js';
4
4
  import { MongoSyncBucketStorage } from './mongo/MongoSyncBucketStorage.js';
5
5
  import { PowerSyncMongo, PowerSyncMongoOptions } from './mongo/db.js';
@@ -14,7 +14,7 @@ export declare class MongoBucketStorage implements BucketStorageFactory {
14
14
  constructor(db: PowerSyncMongo, options: {
15
15
  slot_name_prefix: string;
16
16
  });
17
- getInstance(options: PersistedSyncRules): MongoSyncBucketStorage;
17
+ getInstance(options: PersistedSyncRulesContent): MongoSyncBucketStorage;
18
18
  configureSyncRules(sync_rules: string, options?: {
19
19
  lock?: boolean;
20
20
  }): Promise<{
@@ -29,9 +29,9 @@ export declare class MongoBucketStorage implements BucketStorageFactory {
29
29
  slotRemoved(slot_name: string): Promise<void>;
30
30
  updateSyncRules(options: UpdateSyncRulesOptions): Promise<MongoPersistedSyncRulesContent>;
31
31
  getActiveSyncRulesContent(): Promise<MongoPersistedSyncRulesContent | null>;
32
- getActiveSyncRules(): Promise<PersistedSyncRules | null>;
32
+ getActiveSyncRules(options: ParseSyncRulesOptions): Promise<PersistedSyncRules | null>;
33
33
  getNextSyncRulesContent(): Promise<MongoPersistedSyncRulesContent | null>;
34
- getNextSyncRules(): Promise<PersistedSyncRules | null>;
34
+ getNextSyncRules(options: ParseSyncRulesOptions): Promise<PersistedSyncRules | null>;
35
35
  getReplicatingSyncRules(): Promise<PersistedSyncRulesContent[]>;
36
36
  getStoppedSyncRules(): Promise<PersistedSyncRulesContent[]>;
37
37
  createWriteCheckpoint(user_id: string, lsns: Record<string, string>): Promise<bigint>;
@@ -1,17 +1,16 @@
1
- import * as timers from 'timers/promises';
2
- import { LRUCache } from 'lru-cache/min';
3
1
  import { SqlSyncRules } from '@powersync/service-sync-rules';
4
2
  import { wrapWithAbort } from 'ix/asynciterable/operators/withabort.js';
5
- import * as replication from '../replication/replication-index.js';
3
+ import { LRUCache } from 'lru-cache/min';
4
+ import * as timers from 'timers/promises';
5
+ import * as locks from '../locks/locks-index.js';
6
6
  import * as sync from '../sync/sync-index.js';
7
7
  import * as util from '../util/util-index.js';
8
- import * as locks from '../locks/locks-index.js';
8
+ import { logger } from '@powersync/lib-services-framework';
9
+ import { v4 as uuid } from 'uuid';
9
10
  import { MongoPersistedSyncRulesContent } from './mongo/MongoPersistedSyncRulesContent.js';
10
11
  import { MongoSyncBucketStorage } from './mongo/MongoSyncBucketStorage.js';
11
12
  import { SyncRuleState } from './mongo/models.js';
12
13
  import { generateSlotName } from './mongo/util.js';
13
- import { v4 as uuid } from 'uuid';
14
- import { logger } from '@powersync/lib-services-framework';
15
14
  export class MongoBucketStorage {
16
15
  constructor(db, options) {
17
16
  this.storageCache = new LRUCache({
@@ -25,8 +24,7 @@ export class MongoBucketStorage {
25
24
  return undefined;
26
25
  }
27
26
  const rules = new MongoPersistedSyncRulesContent(this.db, doc2);
28
- const storage = this.getInstance(rules.parsed());
29
- return storage;
27
+ return this.getInstance(rules);
30
28
  }
31
29
  });
32
30
  // Nothing is done here until a subscriber starts to iterate
@@ -39,11 +37,11 @@ export class MongoBucketStorage {
39
37
  this.slot_name_prefix = options.slot_name_prefix;
40
38
  }
41
39
  getInstance(options) {
42
- let { id, sync_rules, slot_name } = options;
40
+ let { id, slot_name } = options;
43
41
  if (typeof id == 'bigint') {
44
42
  id = Number(id);
45
43
  }
46
- return new MongoSyncBucketStorage(this, id, sync_rules, slot_name);
44
+ return new MongoSyncBucketStorage(this, id, options, slot_name);
47
45
  }
48
46
  async configureSyncRules(sync_rules, options) {
49
47
  const next = await this.getNextSyncRulesContent();
@@ -104,7 +102,12 @@ export class MongoBucketStorage {
104
102
  }
105
103
  async updateSyncRules(options) {
106
104
  // Parse and validate before applying any changes
107
- const parsed = SqlSyncRules.fromYaml(options.content);
105
+ const parsed = SqlSyncRules.fromYaml(options.content, {
106
+ // No schema-based validation at this point
107
+ schema: undefined,
108
+ defaultSchema: 'not_applicable',
109
+ throwOnError: true
110
+ });
108
111
  let rules = undefined;
109
112
  await this.session.withTransaction(async () => {
110
113
  // Only have a single set of sync rules with PROCESSING.
@@ -153,9 +156,9 @@ export class MongoBucketStorage {
153
156
  }
154
157
  return new MongoPersistedSyncRulesContent(this.db, doc);
155
158
  }
156
- async getActiveSyncRules() {
159
+ async getActiveSyncRules(options) {
157
160
  const content = await this.getActiveSyncRulesContent();
158
- return content?.parsed() ?? null;
161
+ return content?.parsed(options) ?? null;
159
162
  }
160
163
  async getNextSyncRulesContent() {
161
164
  const doc = await this.db.sync_rules.findOne({
@@ -166,9 +169,9 @@ export class MongoBucketStorage {
166
169
  }
167
170
  return new MongoPersistedSyncRulesContent(this.db, doc);
168
171
  }
169
- async getNextSyncRules() {
172
+ async getNextSyncRules(options) {
170
173
  const content = await this.getNextSyncRulesContent();
171
- return content?.parsed() ?? null;
174
+ return content?.parsed(options) ?? null;
172
175
  }
173
176
  async getReplicatingSyncRules() {
174
177
  const docs = await this.db.sync_rules
@@ -221,14 +224,6 @@ export class MongoBucketStorage {
221
224
  return this.makeActiveCheckpoint(doc);
222
225
  }
223
226
  async getStorageMetrics() {
224
- const active_sync_rules = await this.getActiveSyncRules();
225
- if (active_sync_rules == null) {
226
- return {
227
- operations_size_bytes: 0,
228
- parameters_size_bytes: 0,
229
- replication_size_bytes: 0
230
- };
231
- }
232
227
  const operations_aggregate = await this.db.bucket_data
233
228
  .aggregate([
234
229
  {
@@ -287,7 +282,7 @@ export class MongoBucketStorage {
287
282
  makeActiveCheckpoint(doc) {
288
283
  return {
289
284
  checkpoint: util.timestampToOpId(doc?.last_checkpoint ?? 0n),
290
- lsn: doc?.last_checkpoint_lsn ?? replication.ZERO_LSN,
285
+ lsn: doc?.last_checkpoint_lsn ?? null,
291
286
  hasSyncRules() {
292
287
  return doc != null;
293
288
  },
@@ -1 +1 @@
1
- {"version":3,"file":"MongoBucketStorage.js","sourceRoot":"","sources":["../../src/storage/MongoBucketStorage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAExE,OAAO,KAAK,WAAW,MAAM,qCAAqC,CAAC;AACnE,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAC9C,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAC9C,OAAO,KAAK,KAAK,MAAM,yBAAyB,CAAC;AAWjD,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAC3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAE3E,OAAO,EAAoB,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAI3D,MAAM,OAAO,kBAAkB;IA0B7B,YAAY,EAAkB,EAAE,OAAqC;QArBpD,iBAAY,GAAG,IAAI,QAAQ,CAAiC;YAC3E,GAAG,EAAE,CAAC;YACN,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;gBACxB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAC3C;oBACE,GAAG,EAAE,EAAE;iBACR,EACD,EAAE,KAAK,EAAE,CAAC,EAAE,CACb,CAAC;gBACF,IAAI,IAAI,IAAI,IAAI,EAAE;oBAChB,2BAA2B;oBAC3B,OAAO,SAAS,CAAC;iBAClB;gBACD,MAAM,KAAK,GAAG,IAAI,8BAA8B,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBAChE,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;gBACjD,OAAO,OAAO,CAAC;YACjB,CAAC;SACF,CAAC,CAAC;QA6aH,4DAA4D;QAC3C,eAAU,GAAG,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAE,EAAE;YAClE,OAAO,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QA3aD,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;QACxB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QAC1C,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IACnD,CAAC;IAED,WAAW,CAAC,OAA2B;QACrC,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;QAC5C,IAAK,OAAO,EAAU,IAAI,QAAQ,EAAE;YAClC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;SACjB;QACD,OAAO,IAAI,sBAAsB,CAAC,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,UAAkB,EAAE,OAA4B;QACvE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAEtD,IAAI,IAAI,EAAE,kBAAkB,IAAI,UAAU,EAAE;YAC1C,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;YACvD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;SAC3B;aAAM,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,EAAE,kBAAkB,IAAI,UAAU,EAAE;YACnE,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;YACvD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;SAC3B;aAAM;YACL,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;YACrD,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC;gBACtD,OAAO,EAAE,UAAU;gBACnB,IAAI,EAAE,OAAO,EAAE,IAAI;aACpB,CAAC,CAAC;YACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,oBAAoB,CAAC,YAAY,IAAI,SAAS,EAAE,CAAC;SACtG;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,SAAiB;QACjC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAEtD,gEAAgE;QAChE,qFAAqF;QACrF,eAAe;QACf,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,SAAS,EAAE;YAC/C,wCAAwC;YACxC,MAAM,IAAI,CAAC,eAAe,CAAC;gBACzB,OAAO,EAAE,IAAI,CAAC,kBAAkB;aACjC,CAAC,CAAC;YACH,gCAAgC;YAChC,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAChC;gBACE,GAAG,EAAE,IAAI,CAAC,EAAE;gBACZ,KAAK,EAAE,aAAa,CAAC,UAAU;aAChC,EACD;gBACE,IAAI,EAAE;oBACJ,KAAK,EAAE,aAAa,CAAC,IAAI;iBAC1B;aACF,CACF,CAAC;SACH;aAAM,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,EAAE,SAAS,IAAI,SAAS,EAAE;YACzD,sEAAsE;YACtE,MAAM,IAAI,CAAC,eAAe,CAAC;gBACzB,OAAO,EAAE,MAAM,CAAC,kBAAkB;aACnC,CAAC,CAAC;YAEH,gCAAgC;YAChC,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAChC;gBACE,GAAG,EAAE,MAAM,CAAC,EAAE;gBACd,KAAK,EAAE,aAAa,CAAC,MAAM;aAC5B,EACD;gBACE,IAAI,EAAE;oBACJ,KAAK,EAAE,aAAa,CAAC,IAAI;iBAC1B;aACF,CACF,CAAC;SACH;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAA+B;QACnD,iDAAiD;QACjD,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEtD,IAAI,KAAK,GAA+C,SAAS,CAAC;QAElE,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,IAAI,EAAE;YAC5C,wDAAwD;YACxD,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CACjC;gBACE,KAAK,EAAE,aAAa,CAAC,UAAU;aAChC,EACD,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,aAAa,CAAC,IAAI,EAAE,EAAE,CACxC,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,gBAAgB,CAC1D;gBACE,GAAG,EAAE,YAAY;aAClB,EACD;gBACE,IAAI,EAAE;oBACJ,KAAK,EAAE,EAAE;iBACV;aACF,EACD;gBACE,MAAM,EAAE,IAAI;gBACZ,cAAc,EAAE,OAAO;aACxB,CACF,CAAC;YAEF,MAAM,EAAE,GAAG,MAAM,CAAC,MAAO,CAAC,KAAK,CAAC,CAAC;YACjC,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YAE9D,MAAM,GAAG,GAAqB;gBAC5B,GAAG,EAAE,EAAE;gBACP,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,eAAe,EAAE,IAAI;gBACrB,mBAAmB,EAAE,IAAI;gBACzB,oBAAoB,EAAE,IAAI;gBAC1B,aAAa,EAAE,KAAK;gBACpB,KAAK,EAAE,aAAa,CAAC,UAAU;gBAC/B,SAAS,EAAE,SAAS;gBACpB,kBAAkB,EAAE,IAAI;gBACxB,gBAAgB,EAAE,IAAI;gBACtB,iBAAiB,EAAE,IAAI;aACxB,CAAC;YACF,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACxC,KAAK,GAAG,IAAI,8BAA8B,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YACzD,IAAI,OAAO,CAAC,IAAI,EAAE;gBAChB,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;aACjC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,KAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,yBAAyB;QAC7B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAC1C;YACE,KAAK,EAAE,aAAa,CAAC,MAAM;SAC5B,EACD,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAChC,CAAC;QACF,IAAI,GAAG,IAAI,IAAI,EAAE;YACf,OAAO,IAAI,CAAC;SACb;QAED,OAAO,IAAI,8BAA8B,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACvD,OAAO,OAAO,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,uBAAuB;QAC3B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAC1C;YACE,KAAK,EAAE,aAAa,CAAC,UAAU;SAChC,EACD,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAChC,CAAC;QACF,IAAI,GAAG,IAAI,IAAI,EAAE;YACf,OAAO,IAAI,CAAC;SACb;QAED,OAAO,IAAI,8BAA8B,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACrD,OAAO,OAAO,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,uBAAuB;QAC3B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU;aAClC,IAAI,CAAC;YACJ,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,aAAa,CAAC,UAAU,EAAE,CAAC;SAC5E,CAAC;aACD,OAAO,EAAE,CAAC;QAEb,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACtB,OAAO,IAAI,8BAA8B,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU;aAClC,IAAI,CAAC;YACJ,KAAK,EAAE,aAAa,CAAC,IAAI;SAC1B,CAAC;aACD,OAAO,EAAE,CAAC;QAEb,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACtB,OAAO,IAAI,8BAA8B,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,OAAe,EAAE,IAA4B;QACvE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,gBAAgB,CAC1D;YACE,OAAO,EAAE,OAAO;SACjB,EACD;YACE,IAAI,EAAE;gBACJ,IAAI,EAAE,IAAI;aACX;YACD,IAAI,EAAE;gBACJ,SAAS,EAAE,EAAE;aACd;SACF,EACD,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,CAC1C,CAAC;QACF,OAAO,GAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,OAAe,EAAE,GAAW;QACpD,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC;YAClE,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;SACxB,CAAC,CAAC;QACH,OAAO,mBAAmB,EAAE,SAAS,IAAI,IAAI,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAC1C;YACE,KAAK,EAAE,aAAa,CAAC,MAAM;SAC5B,EACD;YACE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE;YACjB,KAAK,EAAE,CAAC;YACR,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE;SACnE,CACF,CAAC;QAEF,OAAO,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1D,IAAI,iBAAiB,IAAI,IAAI,EAAE;YAC7B,OAAO;gBACL,qBAAqB,EAAE,CAAC;gBACxB,qBAAqB,EAAE,CAAC;gBACxB,sBAAsB,EAAE,CAAC;aAC1B,CAAC;SACH;QACD,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,WAAW;aAEnD,SAAS,CAAC;YACT;gBACE,UAAU,EAAE;oBACV,YAAY,EAAE,EAAE;oBAChB,KAAK,EAAE,EAAE;iBACV;aACF;SACF,CAAC;aACD,OAAO,EAAE,CAAC;QAEb,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,iBAAiB;aACzD,SAAS,CAAC;YACT;gBACE,UAAU,EAAE;oBACV,YAAY,EAAE,EAAE;oBAChB,KAAK,EAAE,EAAE;iBACV;aACF;SACF,CAAC;aACD,OAAO,EAAE,CAAC;QAEb,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY;aACrD,SAAS,CAAC;YACT;gBACE,UAAU,EAAE;oBACV,YAAY,EAAE,EAAE;oBAChB,KAAK,EAAE,EAAE;iBACV;aACF;SACF,CAAC;aACD,OAAO,EAAE,CAAC;QAEb,OAAO;YACL,qBAAqB,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI;YAChE,qBAAqB,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI;YAChE,sBAAsB,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI;SACnE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC5C,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;SACvB,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,OAAO,GAAG,KAAK,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;gBAC1D,IAAI,EAAE,4BAA4B;aACnC,CAAC,CAAC;YAEH,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;gBAC5B,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;oBAC/B,GAAG,EAAE,IAAI,EAAE;iBACZ,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,QAAQ,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACxC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;aACvB,CAAC,CAAC;SACJ;QAED,OAAO,QAAS,CAAC,GAAG,CAAC;IACvB,CAAC;IAEO,oBAAoB,CAAC,GAA4B;QACvD,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,eAAe,IAAI,EAAE,CAAC;YAC5D,GAAG,EAAE,GAAG,EAAE,mBAAmB,IAAI,WAAW,CAAC,QAAQ;YACrD,YAAY;gBACV,OAAO,GAAG,IAAI,IAAI,CAAC;YACrB,CAAC;YACD,gBAAgB,EAAE,KAAK,IAAI,EAAE;gBAC3B,IAAI,GAAG,IAAI,IAAI,EAAE;oBACf,OAAO,IAAI,CAAC;iBACb;gBACD,OAAO,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;YAC1D,CAAC;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,CAAC,qBAAqB,CAAC,MAAmB;QACtD,MAAM,QAAQ,GAAqB;YACjC;gBACE,MAAM,EAAE;oBACN,oBAAoB,EAAE,QAAQ;oBAC9B,aAAa,EAAE,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE;iBAC7C;aACF;YACD;gBACE,QAAQ,EAAE;oBACR,aAAa,EAAE,CAAC;oBAChB,kBAAkB,EAAE,CAAC;oBACrB,8BAA8B,EAAE,CAAC;oBACjC,kCAAkC,EAAE,CAAC;iBACtC;aACF;SACF,CAAC;QAEF,kEAAkE;QAClE,8CAA8C;QAC9C,IAAI,GAAG,GAAG,IAA+B,CAAC;QAC1C,IAAI,WAAW,GAAG,IAA8B,CAAC;QAEjD,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAC9C,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CACpC;gBACE,KAAK,EAAE,aAAa,CAAC,MAAM;aAC5B,EACD;gBACE,OAAO;gBACP,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE;gBACjB,KAAK,EAAE,CAAC;gBACR,UAAU,EAAE;oBACV,GAAG,EAAE,CAAC;oBACN,eAAe,EAAE,CAAC;oBAClB,mBAAmB,EAAE,CAAC;iBACvB;aACF,CACF,CAAC;YACF,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,WAAW,IAAI,IAAI,CAAC;YACtD,WAAW,GAAG,IAAI,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,IAAI,WAAW,IAAI,IAAI,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;SAC9C;QAED,IAAI,MAAM,CAAC,OAAO,EAAE;YAClB,OAAO;SACR;QAED,IAAI,GAAG,EAAE;YACP,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;SACtC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE;YAChD,YAAY,EAAE,cAAc;YAC5B,uEAAuE;YACvE,6BAA6B;YAC7B,0EAA0E;YAC1E,iBAAiB;YACjB,oBAAoB,EAAE,WAAW;SAClC,CAAC,CAAC;QAEH,MAAM,CAAC,gBAAgB,CACrB,OAAO,EACP,GAAG,EAAE;YACH,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAC;QAEF,IAAI,MAAM,GAA4B,IAAI,CAAC;QAE3C,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE;YAC1C,IAAI,MAAM,CAAC,OAAO,EAAE;gBAClB,MAAM;aACP;YACD,IAAI,MAAM,CAAC,aAAa,IAAI,QAAQ,IAAI,MAAM,CAAC,aAAa,IAAI,QAAQ,EAAE;gBACxE,SAAS;aACV;YACD,MAAM,GAAG,GAAG,MAAM,CAAC,YAAa,CAAC;YACjC,IAAI,GAAG,IAAI,IAAI,EAAE;gBACf,SAAS;aACV;YACD,MAAM,EAAE,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;YAC1C,qEAAqE;YACrE,IAAI,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,EAAE;gBAChF,MAAM,GAAG,EAAE,CAAC;gBACZ,MAAM,EAAE,CAAC;aACV;SACF;IACH,CAAC;IAOD;;OAEG;IACH,KAAK,CAAC,CAAC,oBAAoB,CAAC,OAAe,EAAE,MAAmB;QAC9D,IAAI,cAAc,GAAqB,IAAI,CAAC;QAC5C,IAAI,mBAAmB,GAAkB,IAAI,CAAC;QAE9C,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACpD,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE;YAC3B,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;YAE/B,2CAA2C;YAC3C,wBAAwB;YACxB,iCAAiC;YACjC,oDAAoD;YAEpD,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;YAElF,IAAI,sBAAsB,IAAI,mBAAmB,IAAI,UAAU,IAAI,cAAc,EAAE;gBACjF,gCAAgC;gBAChC,4DAA4D;gBAC5D,6DAA6D;gBAC7D,MAAM,MAAM,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBACjD,SAAS;aACV;YAED,mBAAmB,GAAG,sBAAsB,CAAC;YAC7C,cAAc,GAAG,UAAU,CAAC;YAE5B,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,eAAe,EAAE,sBAAsB,EAAE,CAAC;SAC7D;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"MongoBucketStorage.js","sourceRoot":"","sources":["../../src/storage/MongoBucketStorage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ export interface ColumnDescriptor {
2
+ name: string;
3
+ /**
4
+ * The type of the column ie VARCHAR, INT, etc
5
+ */
6
+ type?: string;
7
+ /**
8
+ * Some data sources have a type id that can be used to identify the type of the column
9
+ */
10
+ typeId?: number;
11
+ }
12
+ export interface SourceEntityDescriptor {
13
+ /**
14
+ * The internal id of the data source structure in the database
15
+ */
16
+ objectId: number | string;
17
+ schema: string;
18
+ name: string;
19
+ replicationColumns: ColumnDescriptor[];
20
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SourceEntity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SourceEntity.js","sourceRoot":"","sources":["../../src/storage/SourceEntity.ts"],"names":[],"mappings":""}
@@ -1,13 +1,12 @@
1
- import * as replication from '../replication/replication-index.js';
1
+ import { ColumnDescriptor } from './SourceEntity.js';
2
2
  export declare class SourceTable {
3
3
  readonly id: any;
4
4
  readonly connectionTag: string;
5
- readonly relationId: number;
5
+ readonly objectId: number | string;
6
6
  readonly schema: string;
7
7
  readonly table: string;
8
- readonly replicaIdColumns: replication.ReplicationColumn[];
8
+ readonly replicaIdColumns: ColumnDescriptor[];
9
9
  readonly snapshotComplete: boolean;
10
- static readonly DEFAULT_SCHEMA = "public";
11
10
  static readonly DEFAULT_TAG = "default";
12
11
  /**
13
12
  * True if the table is used in sync rules for data queries.
@@ -25,7 +24,7 @@ export declare class SourceTable {
25
24
  * Defaults to true for tests.
26
25
  */
27
26
  syncParameters: boolean;
28
- constructor(id: any, connectionTag: string, relationId: number, schema: string, table: string, replicaIdColumns: replication.ReplicationColumn[], snapshotComplete: boolean);
27
+ constructor(id: any, connectionTag: string, objectId: number | string, schema: string, table: string, replicaIdColumns: ColumnDescriptor[], snapshotComplete: boolean);
29
28
  get hasReplicaIdentity(): boolean;
30
29
  /**
31
30
  * Usage: db.query({statement: `SELECT $1::regclass`, params: [{type: 'varchar', value: table.qualifiedName}]})
@@ -1,10 +1,10 @@
1
- import { DEFAULT_SCHEMA, DEFAULT_TAG } from '@powersync/service-sync-rules';
1
+ import { DEFAULT_TAG } from '@powersync/service-sync-rules';
2
2
  import * as util from '../util/util-index.js';
3
3
  export class SourceTable {
4
- constructor(id, connectionTag, relationId, schema, table, replicaIdColumns, snapshotComplete) {
4
+ constructor(id, connectionTag, objectId, schema, table, replicaIdColumns, snapshotComplete) {
5
5
  this.id = id;
6
6
  this.connectionTag = connectionTag;
7
- this.relationId = relationId;
7
+ this.objectId = objectId;
8
8
  this.schema = schema;
9
9
  this.table = table;
10
10
  this.replicaIdColumns = replicaIdColumns;
@@ -45,6 +45,5 @@ export class SourceTable {
45
45
  return this.syncData || this.syncParameters;
46
46
  }
47
47
  }
48
- SourceTable.DEFAULT_SCHEMA = DEFAULT_SCHEMA;
49
48
  SourceTable.DEFAULT_TAG = DEFAULT_TAG;
50
49
  //# sourceMappingURL=SourceTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SourceTable.js","sourceRoot":"","sources":["../../src/storage/SourceTable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAG5E,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAE9C,MAAM,OAAO,WAAW;IAsBtB,YACkB,EAAO,EACP,aAAqB,EACrB,UAAkB,EAClB,MAAc,EACd,KAAa,EAEb,gBAAiD,EACjD,gBAAyB;QAPzB,OAAE,GAAF,EAAE,CAAK;QACP,kBAAa,GAAb,aAAa,CAAQ;QACrB,eAAU,GAAV,UAAU,CAAQ;QAClB,WAAM,GAAN,MAAM,CAAQ;QACd,UAAK,GAAL,KAAK,CAAQ;QAEb,qBAAgB,GAAhB,gBAAgB,CAAiC;QACjD,qBAAgB,GAAhB,gBAAgB,CAAS;QA1B3C;;;;;;WAMG;QACI,aAAQ,GAAG,IAAI,CAAC;QAEvB;;;;;;WAMG;QACI,mBAAc,GAAG,IAAI,CAAC;IAW1B,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,CAAC;IAC9C,CAAC;;AApDe,0BAAc,GAAG,cAAc,AAAjB,CAAkB;AAChC,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;IAqBtB,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;QA1B3C;;;;;;WAMG;QACI,aAAQ,GAAG,IAAI,CAAC;QAEvB;;;;;;WAMG;QACI,mBAAc,GAAG,IAAI,CAAC;IAW1B,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,CAAC;IAC9C,CAAC;;AAnDe,uBAAW,GAAG,WAAW,AAAd,CAAe"}
@@ -0,0 +1,24 @@
1
+ import { ResolvedPowerSyncConfig } from '../util/util-index.js';
2
+ import { BucketStorageFactory } from './BucketStorage.js';
3
+ import { BucketStorageProvider, ActiveStorage } from './StorageProvider.js';
4
+ export type StorageEngineOptions = {
5
+ configuration: ResolvedPowerSyncConfig;
6
+ };
7
+ export declare class StorageEngine {
8
+ private options;
9
+ private storageProviders;
10
+ private currentActiveStorage;
11
+ constructor(options: StorageEngineOptions);
12
+ get activeBucketStorage(): BucketStorageFactory;
13
+ get activeStorage(): ActiveStorage;
14
+ /**
15
+ * Register a provider which generates a {@link BucketStorageFactory}
16
+ * given the matching config specified in the loaded {@link ResolvedPowerSyncConfig}
17
+ */
18
+ registerProvider(provider: BucketStorageProvider): void;
19
+ start(): Promise<void>;
20
+ /**
21
+ * Shutdown the storage engine, safely shutting down any activated storage providers.
22
+ */
23
+ shutDown(): Promise<void>;
24
+ }
@@ -0,0 +1,43 @@
1
+ import { logger } from '@powersync/lib-services-framework';
2
+ export class StorageEngine {
3
+ constructor(options) {
4
+ this.options = options;
5
+ // TODO: This will need to revisited when we actually support multiple storage providers.
6
+ this.storageProviders = new Map();
7
+ this.currentActiveStorage = null;
8
+ }
9
+ get activeBucketStorage() {
10
+ return this.activeStorage.storage;
11
+ }
12
+ get activeStorage() {
13
+ if (!this.currentActiveStorage) {
14
+ throw new Error(`No storage provider has been initialized yet.`);
15
+ }
16
+ return this.currentActiveStorage;
17
+ }
18
+ /**
19
+ * Register a provider which generates a {@link BucketStorageFactory}
20
+ * given the matching config specified in the loaded {@link ResolvedPowerSyncConfig}
21
+ */
22
+ registerProvider(provider) {
23
+ this.storageProviders.set(provider.type, provider);
24
+ }
25
+ async start() {
26
+ logger.info('Starting Storage Engine...');
27
+ const { configuration } = this.options;
28
+ this.currentActiveStorage = await this.storageProviders.get(configuration.storage.type).getStorage({
29
+ resolvedConfig: configuration
30
+ });
31
+ logger.info(`Successfully activated storage: ${configuration.storage.type}.`);
32
+ logger.info('Successfully started Storage Engine.');
33
+ }
34
+ /**
35
+ * Shutdown the storage engine, safely shutting down any activated storage providers.
36
+ */
37
+ async shutDown() {
38
+ logger.info('Shutting down Storage Engine...');
39
+ await this.currentActiveStorage?.shutDown();
40
+ logger.info('Successfully shut down Storage Engine.');
41
+ }
42
+ }
43
+ //# sourceMappingURL=StorageEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StorageEngine.js","sourceRoot":"","sources":["../../src/storage/StorageEngine.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAM3D,MAAM,OAAO,aAAa;IAKxB,YAAoB,OAA6B;QAA7B,YAAO,GAAP,OAAO,CAAsB;QAJjD,yFAAyF;QACjF,qBAAgB,GAAuC,IAAI,GAAG,EAAE,CAAC;QACjE,yBAAoB,GAAyB,IAAI,CAAC;IAEN,CAAC;IAErD,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;IACpC,CAAC;IAED,IAAI,aAAa;QACf,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;SAClE;QAED,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAED;;;OAGG;IACH,gBAAgB,CAAC,QAA+B;QAC9C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC1C,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QACvC,IAAI,CAAC,oBAAoB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAE,CAAC,UAAU,CAAC;YAClG,cAAc,EAAE,aAAa;SAC9B,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,mCAAmC,aAAa,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;QAC9E,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,QAAQ;QACnB,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC/C,MAAM,IAAI,CAAC,oBAAoB,EAAE,QAAQ,EAAE,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IACxD,CAAC;CACF"}
@@ -0,0 +1,21 @@
1
+ import { BucketStorageFactory } from './BucketStorage.js';
2
+ import * as util from '../util/util-index.js';
3
+ export interface ActiveStorage {
4
+ storage: BucketStorageFactory;
5
+ shutDown(): Promise<void>;
6
+ /**
7
+ * Tear down / drop the storage permanently
8
+ */
9
+ tearDown(): Promise<boolean>;
10
+ }
11
+ export interface GetStorageOptions {
12
+ resolvedConfig: util.ResolvedPowerSyncConfig;
13
+ }
14
+ export interface BucketStorageProvider {
15
+ /**
16
+ * The storage type that this provider provides.
17
+ * The type should match the `type` field in the config.
18
+ */
19
+ type: string;
20
+ getStorage(options: GetStorageOptions): Promise<ActiveStorage>;
21
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=StorageProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StorageProvider.js","sourceRoot":"","sources":["../../src/storage/StorageProvider.ts"],"names":[],"mappings":""}
@@ -26,7 +26,7 @@ export declare class MongoBucketBatch implements BucketStorageBatch {
26
26
  * For tests only - not for persistence logic.
27
27
  */
28
28
  last_flushed_op: bigint | null;
29
- constructor(db: PowerSyncMongo, sync_rules: SqlSyncRules, group_id: number, slot_name: string, last_checkpoint_lsn: string | null, no_checkpoint_before_lsn: string | null);
29
+ constructor(db: PowerSyncMongo, sync_rules: SqlSyncRules, group_id: number, slot_name: string, last_checkpoint_lsn: string | null, no_checkpoint_before_lsn: string);
30
30
  flush(): Promise<FlushedResult | null>;
31
31
  private flushInner;
32
32
  private replicateBatch;
@@ -1,14 +1,13 @@
1
1
  import * as bson from 'bson';
2
2
  import * as mongo from 'mongodb';
3
- import * as util from '../../util/util-index.js';
4
- import * as replication from '../../replication/replication-index.js';
5
3
  import { container, errors, logger } from '@powersync/lib-services-framework';
4
+ import * as util from '../../util/util-index.js';
6
5
  import { mergeToast } from '../BucketStorage.js';
7
6
  import { SourceTable } from '../SourceTable.js';
8
7
  import { MongoIdSequence } from './MongoIdSequence.js';
9
8
  import { cacheKey, OperationBatch, RecordOperation } from './OperationBatch.js';
10
9
  import { PersistedBatch } from './PersistedBatch.js';
11
- import { BSON_DESERIALIZE_OPTIONS, idPrefixFilter, serializeLookup } from './util.js';
10
+ import { BSON_DESERIALIZE_OPTIONS, idPrefixFilter, replicaIdEquals, serializeLookup } from './util.js';
12
11
  /**
13
12
  * 15MB
14
13
  */
@@ -42,7 +41,7 @@ export class MongoBucketBatch {
42
41
  this.slot_name = slot_name;
43
42
  this.session = this.client.startSession();
44
43
  this.last_checkpoint_lsn = last_checkpoint_lsn;
45
- this.no_checkpoint_before_lsn = no_checkpoint_before_lsn ?? replication.ZERO_LSN;
44
+ this.no_checkpoint_before_lsn = no_checkpoint_before_lsn;
46
45
  }
47
46
  async flush() {
48
47
  let result = null;
@@ -228,7 +227,7 @@ export class MongoBucketBatch {
228
227
  }
229
228
  }
230
229
  // 2. Save bucket data
231
- if (beforeId != null && (afterId == null || !beforeId.equals(afterId))) {
230
+ if (beforeId != null && (afterId == null || !replicaIdEquals(beforeId, afterId))) {
232
231
  // Source ID updated
233
232
  if (sourceTable.syncData) {
234
233
  // Delete old record
@@ -335,7 +334,7 @@ export class MongoBucketBatch {
335
334
  lookups: new_lookups
336
335
  };
337
336
  }
338
- if (afterId == null || !beforeId.equals(afterId)) {
337
+ if (afterId == null || !replicaIdEquals(beforeId, afterId)) {
339
338
  // Either a delete (afterId == null), or replaced the old replication id
340
339
  batch.deleteCurrentData(before_key);
341
340
  }
@@ -573,7 +572,7 @@ export class MongoBucketBatch {
573
572
  }
574
573
  });
575
574
  return tables.map((table) => {
576
- const copy = new SourceTable(table.id, table.connectionTag, table.relationId, table.schema, table.table, table.replicaIdColumns, table.snapshotComplete);
575
+ const copy = new SourceTable(table.id, table.connectionTag, table.objectId, table.schema, table.table, table.replicaIdColumns, table.snapshotComplete);
577
576
  copy.syncData = table.syncData;
578
577
  copy.syncParameters = table.syncParameters;
579
578
  return copy;