@powersync/service-core 0.0.0-dev-20240718134716 → 0.0.0-dev-20240918082156
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +89 -6
- package/dist/api/RouteAPI.d.ts +68 -0
- package/dist/api/RouteAPI.js +2 -0
- package/dist/api/RouteAPI.js.map +1 -0
- package/dist/api/api-index.d.ts +1 -0
- package/dist/api/api-index.js +1 -0
- package/dist/api/api-index.js.map +1 -1
- package/dist/api/diagnostics.d.ts +4 -4
- package/dist/api/diagnostics.js +11 -65
- package/dist/api/diagnostics.js.map +1 -1
- package/dist/api/schema.d.ts +3 -5
- package/dist/api/schema.js +9 -79
- package/dist/api/schema.js.map +1 -1
- package/dist/auth/KeyStore.d.ts +7 -4
- package/dist/auth/KeyStore.js +1 -1
- package/dist/auth/KeyStore.js.map +1 -1
- package/dist/auth/auth-index.d.ts +0 -1
- package/dist/auth/auth-index.js +0 -1
- package/dist/auth/auth-index.js.map +1 -1
- package/dist/entry/cli-entry.js +4 -2
- package/dist/entry/cli-entry.js.map +1 -1
- package/dist/entry/commands/compact-action.d.ts +2 -0
- package/dist/entry/commands/compact-action.js +52 -0
- package/dist/entry/commands/compact-action.js.map +1 -0
- package/dist/entry/commands/migrate-action.js +4 -5
- package/dist/entry/commands/migrate-action.js.map +1 -1
- package/dist/entry/commands/teardown-action.js +2 -2
- package/dist/entry/commands/teardown-action.js.map +1 -1
- package/dist/entry/entry-index.d.ts +1 -0
- package/dist/entry/entry-index.js +1 -0
- package/dist/entry/entry-index.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/metrics/Metrics.d.ts +6 -5
- package/dist/metrics/Metrics.js +53 -10
- package/dist/metrics/Metrics.js.map +1 -1
- package/dist/migrations/db/migrations/1684951997326-init.d.ts +2 -2
- package/dist/migrations/db/migrations/1684951997326-init.js +4 -2
- package/dist/migrations/db/migrations/1684951997326-init.js.map +1 -1
- package/dist/migrations/db/migrations/1702295701188-sync-rule-state.d.ts +2 -2
- package/dist/migrations/db/migrations/1702295701188-sync-rule-state.js +4 -2
- package/dist/migrations/db/migrations/1702295701188-sync-rule-state.js.map +1 -1
- package/dist/migrations/db/migrations/1711543888062-write-checkpoint-index.d.ts +2 -2
- package/dist/migrations/db/migrations/1711543888062-write-checkpoint-index.js +4 -2
- package/dist/migrations/db/migrations/1711543888062-write-checkpoint-index.js.map +1 -1
- package/dist/migrations/migrations.d.ts +8 -0
- package/dist/migrations/migrations.js +19 -7
- package/dist/migrations/migrations.js.map +1 -1
- package/dist/modules/AbstractModule.d.ts +26 -0
- package/dist/modules/AbstractModule.js +11 -0
- package/dist/modules/AbstractModule.js.map +1 -0
- package/dist/modules/ModuleManager.d.ts +11 -0
- package/dist/modules/ModuleManager.js +32 -0
- package/dist/modules/ModuleManager.js.map +1 -0
- package/dist/modules/modules-index.d.ts +2 -0
- package/dist/modules/modules-index.js +3 -0
- package/dist/modules/modules-index.js.map +1 -0
- package/dist/replication/AbstractReplicationJob.d.ts +38 -0
- package/dist/replication/AbstractReplicationJob.js +51 -0
- package/dist/replication/AbstractReplicationJob.js.map +1 -0
- package/dist/replication/AbstractReplicator.d.ts +53 -0
- package/dist/replication/AbstractReplicator.js +187 -0
- package/dist/replication/AbstractReplicator.js.map +1 -0
- package/dist/replication/ErrorRateLimiter.d.ts +0 -9
- package/dist/replication/ErrorRateLimiter.js +1 -42
- package/dist/replication/ErrorRateLimiter.js.map +1 -1
- package/dist/replication/ReplicationEngine.d.ts +18 -0
- package/dist/replication/ReplicationEngine.js +41 -0
- package/dist/replication/ReplicationEngine.js.map +1 -0
- package/dist/replication/ReplicationModule.d.ts +39 -0
- package/dist/replication/ReplicationModule.js +65 -0
- package/dist/replication/ReplicationModule.js.map +1 -0
- package/dist/replication/replication-index.d.ts +4 -6
- package/dist/replication/replication-index.js +4 -6
- package/dist/replication/replication-index.js.map +1 -1
- package/dist/routes/RouterEngine.d.ts +42 -0
- package/dist/routes/RouterEngine.js +80 -0
- package/dist/routes/RouterEngine.js.map +1 -0
- package/dist/routes/auth.d.ts +2 -2
- package/dist/routes/auth.js +11 -11
- package/dist/routes/auth.js.map +1 -1
- package/dist/routes/configure-fastify.d.ts +737 -0
- package/dist/routes/configure-fastify.js +57 -0
- package/dist/routes/configure-fastify.js.map +1 -0
- package/dist/routes/configure-rsocket.d.ts +13 -0
- package/dist/routes/configure-rsocket.js +47 -0
- package/dist/routes/configure-rsocket.js.map +1 -0
- package/dist/routes/endpoints/admin.d.ts +0 -34
- package/dist/routes/endpoints/admin.js +48 -89
- package/dist/routes/endpoints/admin.js.map +1 -1
- package/dist/routes/endpoints/checkpointing.d.ts +56 -16
- package/dist/routes/endpoints/checkpointing.js +33 -12
- package/dist/routes/endpoints/checkpointing.js.map +1 -1
- package/dist/routes/endpoints/route-endpoints-index.d.ts +0 -1
- package/dist/routes/endpoints/route-endpoints-index.js +0 -1
- package/dist/routes/endpoints/route-endpoints-index.js.map +1 -1
- package/dist/routes/endpoints/socket-route.js +46 -39
- package/dist/routes/endpoints/socket-route.js.map +1 -1
- package/dist/routes/endpoints/sync-rules.d.ts +1 -1
- package/dist/routes/endpoints/sync-rules.js +32 -23
- package/dist/routes/endpoints/sync-rules.js.map +1 -1
- package/dist/routes/endpoints/sync-stream.d.ts +10 -0
- package/dist/routes/endpoints/sync-stream.js +17 -13
- package/dist/routes/endpoints/sync-stream.js.map +1 -1
- package/dist/routes/route-register.d.ts +1 -1
- package/dist/routes/route-register.js +1 -1
- package/dist/routes/route-register.js.map +1 -1
- package/dist/routes/router-socket.d.ts +5 -4
- package/dist/routes/router-socket.js +2 -1
- package/dist/routes/router-socket.js.map +1 -1
- package/dist/routes/router.d.ts +7 -2
- package/dist/routes/router.js.map +1 -1
- package/dist/routes/routes-index.d.ts +3 -0
- package/dist/routes/routes-index.js +3 -0
- package/dist/routes/routes-index.js.map +1 -1
- package/dist/runner/teardown.js +47 -76
- package/dist/runner/teardown.js.map +1 -1
- package/dist/storage/BucketStorage.d.ts +61 -20
- package/dist/storage/BucketStorage.js +0 -10
- package/dist/storage/BucketStorage.js.map +1 -1
- package/dist/storage/MongoBucketStorage.d.ts +4 -4
- package/dist/storage/MongoBucketStorage.js +19 -24
- package/dist/storage/MongoBucketStorage.js.map +1 -1
- package/dist/storage/SourceEntity.d.ts +20 -0
- package/dist/storage/SourceEntity.js +2 -0
- package/dist/storage/SourceEntity.js.map +1 -0
- package/dist/storage/SourceTable.d.ts +4 -5
- package/dist/storage/SourceTable.js +3 -4
- package/dist/storage/SourceTable.js.map +1 -1
- package/dist/storage/StorageEngine.d.ts +24 -0
- package/dist/storage/StorageEngine.js +43 -0
- package/dist/storage/StorageEngine.js.map +1 -0
- package/dist/storage/StorageProvider.d.ts +21 -0
- package/dist/storage/StorageProvider.js +2 -0
- package/dist/storage/StorageProvider.js.map +1 -0
- package/dist/storage/mongo/MongoBucketBatch.d.ts +1 -1
- package/dist/storage/mongo/MongoBucketBatch.js +6 -7
- package/dist/storage/mongo/MongoBucketBatch.js.map +1 -1
- package/dist/storage/mongo/MongoCompactor.d.ts +40 -0
- package/dist/storage/mongo/MongoCompactor.js +293 -0
- package/dist/storage/mongo/MongoCompactor.js.map +1 -0
- package/dist/storage/mongo/MongoPersistedSyncRulesContent.d.ts +2 -2
- package/dist/storage/mongo/MongoPersistedSyncRulesContent.js +2 -2
- package/dist/storage/mongo/MongoPersistedSyncRulesContent.js.map +1 -1
- package/dist/storage/mongo/MongoStorageProvider.d.ts +5 -0
- package/dist/storage/mongo/MongoStorageProvider.js +26 -0
- package/dist/storage/mongo/MongoStorageProvider.js.map +1 -0
- package/dist/storage/mongo/MongoSyncBucketStorage.d.ts +9 -7
- package/dist/storage/mongo/MongoSyncBucketStorage.js +43 -28
- package/dist/storage/mongo/MongoSyncBucketStorage.js.map +1 -1
- package/dist/storage/mongo/MongoSyncRulesLock.js +1 -1
- package/dist/storage/mongo/MongoSyncRulesLock.js.map +1 -1
- package/dist/storage/mongo/OperationBatch.d.ts +7 -3
- package/dist/storage/mongo/OperationBatch.js +16 -7
- package/dist/storage/mongo/OperationBatch.js.map +1 -1
- package/dist/storage/mongo/PersistedBatch.d.ts +3 -3
- package/dist/storage/mongo/PersistedBatch.js +2 -2
- package/dist/storage/mongo/PersistedBatch.js.map +1 -1
- package/dist/storage/mongo/models.d.ts +17 -7
- package/dist/storage/mongo/models.js.map +1 -1
- package/dist/storage/mongo/util.d.ts +14 -0
- package/dist/storage/mongo/util.js +70 -0
- package/dist/storage/mongo/util.js.map +1 -1
- package/dist/storage/storage-index.d.ts +5 -2
- package/dist/storage/storage-index.js +5 -2
- package/dist/storage/storage-index.js.map +1 -1
- package/dist/sync/RequestTracker.js +2 -3
- package/dist/sync/RequestTracker.js.map +1 -1
- package/dist/sync/sync-index.d.ts +1 -0
- package/dist/sync/sync-index.js +1 -0
- package/dist/sync/sync-index.js.map +1 -1
- package/dist/sync/sync.d.ts +2 -1
- package/dist/sync/sync.js +56 -17
- package/dist/sync/sync.js.map +1 -1
- package/dist/system/ServiceContext.d.ts +37 -0
- package/dist/system/ServiceContext.js +48 -0
- package/dist/system/ServiceContext.js.map +1 -0
- package/dist/system/system-index.d.ts +1 -1
- package/dist/system/system-index.js +1 -1
- package/dist/system/system-index.js.map +1 -1
- package/dist/util/config/collectors/config-collector.d.ts +12 -0
- package/dist/util/config/collectors/config-collector.js +43 -0
- package/dist/util/config/collectors/config-collector.js.map +1 -1
- package/dist/util/config/compound-config-collector.d.ts +10 -29
- package/dist/util/config/compound-config-collector.js +28 -84
- package/dist/util/config/compound-config-collector.js.map +1 -1
- package/dist/util/config/sync-rules/sync-rules-provider.d.ts +9 -0
- package/dist/util/config/sync-rules/sync-rules-provider.js +15 -0
- package/dist/util/config/sync-rules/sync-rules-provider.js.map +1 -0
- package/dist/util/config/types.d.ts +6 -4
- package/dist/util/config/types.js.map +1 -1
- package/dist/util/config.d.ts +3 -4
- package/dist/util/config.js +5 -20
- package/dist/util/config.js.map +1 -1
- package/dist/util/protocol-types.d.ts +4 -0
- package/dist/util/protocol-types.js +5 -1
- package/dist/util/protocol-types.js.map +1 -1
- package/dist/util/util-index.d.ts +3 -6
- package/dist/util/util-index.js +3 -6
- package/dist/util/util-index.js.map +1 -1
- package/dist/util/utils.d.ts +10 -6
- package/dist/util/utils.js +45 -25
- package/dist/util/utils.js.map +1 -1
- package/package.json +7 -7
- package/src/api/RouteAPI.ts +78 -0
- package/src/api/api-index.ts +1 -0
- package/src/api/diagnostics.ts +16 -71
- package/src/api/schema.ts +13 -89
- package/src/auth/KeyStore.ts +9 -6
- package/src/auth/auth-index.ts +0 -1
- package/src/entry/cli-entry.ts +4 -2
- package/src/entry/commands/compact-action.ts +57 -0
- package/src/entry/commands/migrate-action.ts +5 -8
- package/src/entry/commands/teardown-action.ts +2 -2
- package/src/entry/entry-index.ts +1 -0
- package/src/index.ts +5 -2
- package/src/metrics/Metrics.ts +70 -15
- package/src/migrations/db/migrations/1684951997326-init.ts +9 -4
- package/src/migrations/db/migrations/1702295701188-sync-rule-state.ts +7 -4
- package/src/migrations/db/migrations/1711543888062-write-checkpoint-index.ts +6 -4
- package/src/migrations/migrations.ts +24 -8
- package/src/modules/AbstractModule.ts +37 -0
- package/src/modules/ModuleManager.ts +34 -0
- package/src/modules/modules-index.ts +2 -0
- package/src/replication/AbstractReplicationJob.ts +79 -0
- package/src/replication/AbstractReplicator.ts +227 -0
- package/src/replication/ErrorRateLimiter.ts +0 -44
- package/src/replication/ReplicationEngine.ts +43 -0
- package/src/replication/ReplicationModule.ts +101 -0
- package/src/replication/replication-index.ts +4 -6
- package/src/routes/RouterEngine.ts +120 -0
- package/src/routes/auth.ts +21 -12
- package/src/routes/configure-fastify.ts +101 -0
- package/src/routes/configure-rsocket.ts +60 -0
- package/src/routes/endpoints/admin.ts +74 -100
- package/src/routes/endpoints/checkpointing.ts +46 -12
- package/src/routes/endpoints/route-endpoints-index.ts +0 -1
- package/src/routes/endpoints/socket-route.ts +50 -42
- package/src/routes/endpoints/sync-rules.ts +41 -25
- package/src/routes/endpoints/sync-stream.ts +17 -13
- package/src/routes/route-register.ts +2 -2
- package/src/routes/router-socket.ts +6 -5
- package/src/routes/router.ts +7 -2
- package/src/routes/routes-index.ts +3 -0
- package/src/runner/teardown.ts +50 -88
- package/src/storage/BucketStorage.ts +74 -26
- package/src/storage/MongoBucketStorage.ts +23 -26
- package/src/storage/SourceEntity.ts +22 -0
- package/src/storage/SourceTable.ts +4 -6
- package/src/storage/StorageEngine.ts +55 -0
- package/src/storage/StorageProvider.ts +27 -0
- package/src/storage/mongo/MongoBucketBatch.ts +8 -8
- package/src/storage/mongo/MongoCompactor.ts +372 -0
- package/src/storage/mongo/MongoPersistedSyncRulesContent.ts +3 -3
- package/src/storage/mongo/MongoStorageProvider.ts +31 -0
- package/src/storage/mongo/MongoSyncBucketStorage.ts +64 -34
- package/src/storage/mongo/MongoSyncRulesLock.ts +1 -1
- package/src/storage/mongo/OperationBatch.ts +18 -11
- package/src/storage/mongo/PersistedBatch.ts +6 -5
- package/src/storage/mongo/models.ts +17 -7
- package/src/storage/mongo/util.ts +71 -1
- package/src/storage/storage-index.ts +5 -2
- package/src/sync/RequestTracker.ts +3 -3
- package/src/sync/sync-index.ts +1 -0
- package/src/sync/sync.ts +66 -17
- package/src/system/ServiceContext.ts +68 -0
- package/src/system/system-index.ts +1 -1
- package/src/util/config/collectors/config-collector.ts +48 -0
- package/src/util/config/compound-config-collector.ts +45 -110
- package/src/util/config/sync-rules/sync-rules-provider.ts +18 -0
- package/src/util/config/types.ts +6 -5
- package/src/util/config.ts +6 -23
- package/src/util/protocol-types.ts +6 -1
- package/src/util/util-index.ts +3 -6
- package/src/util/utils.ts +55 -39
- package/test/src/__snapshots__/sync.test.ts.snap +90 -5
- package/test/src/auth.test.ts +7 -7
- package/test/src/broadcast_iterable.test.ts +1 -1
- package/test/src/bucket_validation.test.ts +142 -0
- package/test/src/bucket_validation.ts +116 -0
- package/test/src/checksum_cache.test.ts +3 -3
- package/test/src/compacting.test.ts +216 -0
- package/test/src/data_storage.test.ts +275 -204
- package/test/src/env.ts +1 -3
- package/test/src/merge_iterable.test.ts +1 -6
- package/test/src/setup.ts +1 -1
- package/test/src/stream_utils.ts +42 -0
- package/test/src/sync.test.ts +209 -48
- package/test/src/util.ts +110 -55
- package/test/tsconfig.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/auth/SupabaseKeyCollector.d.ts +0 -22
- package/dist/auth/SupabaseKeyCollector.js +0 -61
- package/dist/auth/SupabaseKeyCollector.js.map +0 -1
- package/dist/replication/PgRelation.d.ts +0 -16
- package/dist/replication/PgRelation.js +0 -26
- package/dist/replication/PgRelation.js.map +0 -1
- package/dist/replication/WalConnection.d.ts +0 -34
- package/dist/replication/WalConnection.js +0 -190
- package/dist/replication/WalConnection.js.map +0 -1
- package/dist/replication/WalStream.d.ts +0 -57
- package/dist/replication/WalStream.js +0 -517
- package/dist/replication/WalStream.js.map +0 -1
- package/dist/replication/WalStreamManager.d.ts +0 -30
- package/dist/replication/WalStreamManager.js +0 -198
- package/dist/replication/WalStreamManager.js.map +0 -1
- package/dist/replication/WalStreamRunner.d.ts +0 -38
- package/dist/replication/WalStreamRunner.js +0 -155
- package/dist/replication/WalStreamRunner.js.map +0 -1
- package/dist/replication/util.d.ts +0 -9
- package/dist/replication/util.js +0 -62
- package/dist/replication/util.js.map +0 -1
- package/dist/routes/endpoints/dev.d.ts +0 -312
- package/dist/routes/endpoints/dev.js +0 -172
- package/dist/routes/endpoints/dev.js.map +0 -1
- package/dist/system/CorePowerSyncSystem.d.ts +0 -23
- package/dist/system/CorePowerSyncSystem.js +0 -52
- package/dist/system/CorePowerSyncSystem.js.map +0 -1
- package/dist/util/PgManager.d.ts +0 -24
- package/dist/util/PgManager.js +0 -55
- package/dist/util/PgManager.js.map +0 -1
- package/dist/util/migration_lib.d.ts +0 -11
- package/dist/util/migration_lib.js +0 -64
- package/dist/util/migration_lib.js.map +0 -1
- package/dist/util/pgwire_utils.d.ts +0 -24
- package/dist/util/pgwire_utils.js +0 -117
- package/dist/util/pgwire_utils.js.map +0 -1
- package/dist/util/populate_test_data.d.ts +0 -8
- package/dist/util/populate_test_data.js +0 -65
- package/dist/util/populate_test_data.js.map +0 -1
- package/src/auth/SupabaseKeyCollector.ts +0 -67
- package/src/replication/PgRelation.ts +0 -42
- package/src/replication/WalConnection.ts +0 -227
- package/src/replication/WalStream.ts +0 -628
- package/src/replication/WalStreamManager.ts +0 -213
- package/src/replication/WalStreamRunner.ts +0 -180
- package/src/replication/util.ts +0 -76
- package/src/routes/endpoints/dev.ts +0 -199
- package/src/system/CorePowerSyncSystem.ts +0 -64
- package/src/util/PgManager.ts +0 -64
- package/src/util/migration_lib.ts +0 -79
- package/src/util/pgwire_utils.ts +0 -139
- package/src/util/populate_test_data.ts +0 -78
- package/test/src/__snapshots__/pg_test.test.ts.snap +0 -256
- package/test/src/large_batch.test.ts +0 -194
- package/test/src/pg_test.test.ts +0 -450
- package/test/src/schema_changes.test.ts +0 -545
- package/test/src/slow_tests.test.ts +0 -296
- package/test/src/validation.test.ts +0 -63
- package/test/src/wal_stream.test.ts +0 -314
- package/test/src/wal_stream_utils.ts +0 -147
package/CHANGELOG.md
CHANGED
|
@@ -1,17 +1,100 @@
|
|
|
1
1
|
# @powersync/service-core
|
|
2
2
|
|
|
3
|
-
## 0.0.0-dev-
|
|
3
|
+
## 0.0.0-dev-20240918082156
|
|
4
4
|
|
|
5
5
|
### Minor Changes
|
|
6
6
|
|
|
7
|
-
-
|
|
8
|
-
-
|
|
7
|
+
- d51921f: - Introduced modules to the powersync service architecture
|
|
8
|
+
- Core functionality has been moved to "engine" classes. Modules can register additional functionality with these engines.
|
|
9
|
+
- The sync API functionality used by the routes has been abstracted to an interface. API routes are now managed by the RouterEngine.
|
|
10
|
+
- Replication is managed by the ReplicationEngine and new replication data sources can be registered to the engine by modules.
|
|
11
|
+
- Refactored existing Postgres replication as a module.
|
|
12
|
+
- Removed Postgres specific code from the core service packages.
|
|
9
13
|
|
|
10
14
|
### Patch Changes
|
|
11
15
|
|
|
12
|
-
- Updated dependencies [
|
|
13
|
-
- @powersync/
|
|
14
|
-
- @powersync/
|
|
16
|
+
- Updated dependencies [d51921f]
|
|
17
|
+
- @powersync/service-sync-rules@0.0.0-dev-20240918082156
|
|
18
|
+
- @powersync/lib-services-framework@0.0.0-dev-20240918082156
|
|
19
|
+
- @powersync/service-types@0.0.0-dev-20240918082156
|
|
20
|
+
- @powersync/service-rsocket-router@0.0.0-dev-20240918082156
|
|
21
|
+
|
|
22
|
+
## 0.8.4
|
|
23
|
+
|
|
24
|
+
### Patch Changes
|
|
25
|
+
|
|
26
|
+
- Updated dependencies [f6b678a]
|
|
27
|
+
- @powersync/service-sync-rules@0.18.3
|
|
28
|
+
|
|
29
|
+
## 0.8.3
|
|
30
|
+
|
|
31
|
+
### Patch Changes
|
|
32
|
+
|
|
33
|
+
- 306b6d8: Fix hanging streams
|
|
34
|
+
- Updated dependencies [306b6d8]
|
|
35
|
+
- @powersync/service-rsocket-router@0.0.13
|
|
36
|
+
|
|
37
|
+
## 0.8.2
|
|
38
|
+
|
|
39
|
+
### Patch Changes
|
|
40
|
+
|
|
41
|
+
- Updated dependencies [0d4432d]
|
|
42
|
+
- @powersync/service-rsocket-router@0.0.12
|
|
43
|
+
|
|
44
|
+
## 0.8.1
|
|
45
|
+
|
|
46
|
+
### Patch Changes
|
|
47
|
+
|
|
48
|
+
- 8b3a9b9: Added `client_id` log to WebSocket `sync/stream` endpoint.
|
|
49
|
+
|
|
50
|
+
## 0.8.0
|
|
51
|
+
|
|
52
|
+
### Minor Changes
|
|
53
|
+
|
|
54
|
+
- da04865: Support client_id parameter and User-Agent headers.
|
|
55
|
+
|
|
56
|
+
### Patch Changes
|
|
57
|
+
|
|
58
|
+
- fcd54a9: Log stats on sync lock when reaching concurrency limit
|
|
59
|
+
- Updated dependencies [3291a2c]
|
|
60
|
+
- @powersync/service-rsocket-router@0.0.11
|
|
61
|
+
|
|
62
|
+
## 0.7.1
|
|
63
|
+
|
|
64
|
+
### Patch Changes
|
|
65
|
+
|
|
66
|
+
- Updated dependencies [2ae8711]
|
|
67
|
+
- @powersync/service-sync-rules@0.18.2
|
|
68
|
+
|
|
69
|
+
## 0.7.0
|
|
70
|
+
|
|
71
|
+
### Minor Changes
|
|
72
|
+
|
|
73
|
+
- c9ad713: Removed unused development routes
|
|
74
|
+
|
|
75
|
+
### Patch Changes
|
|
76
|
+
|
|
77
|
+
- Updated dependencies [c9ad713]
|
|
78
|
+
- @powersync/service-types@0.2.0
|
|
79
|
+
- @powersync/service-jpgwire@0.17.14
|
|
80
|
+
|
|
81
|
+
## 0.6.0
|
|
82
|
+
|
|
83
|
+
### Minor Changes
|
|
84
|
+
|
|
85
|
+
- 3f994ae: Added utility functions for registering routes
|
|
86
|
+
|
|
87
|
+
## 0.5.1
|
|
88
|
+
|
|
89
|
+
### Patch Changes
|
|
90
|
+
|
|
91
|
+
- bfe0e64: Fix compact command to use the correct database
|
|
92
|
+
|
|
93
|
+
## 0.5.0
|
|
94
|
+
|
|
95
|
+
### Minor Changes
|
|
96
|
+
|
|
97
|
+
- 1c1a3bf: Implement a compact command
|
|
15
98
|
|
|
16
99
|
## 0.4.2
|
|
17
100
|
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { SqlSyncRules, TablePattern } from '@powersync/service-sync-rules';
|
|
2
|
+
import * as types from '@powersync/service-types';
|
|
3
|
+
import { ParseSyncRulesOptions } from '../storage/BucketStorage.js';
|
|
4
|
+
export interface PatternResult {
|
|
5
|
+
schema: string;
|
|
6
|
+
pattern: string;
|
|
7
|
+
wildcard: boolean;
|
|
8
|
+
tables?: types.TableInfo[];
|
|
9
|
+
table?: types.TableInfo;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Describes all the methods currently required to service the sync API endpoints.
|
|
13
|
+
*/
|
|
14
|
+
export interface RouteAPI {
|
|
15
|
+
/**
|
|
16
|
+
* @returns basic identification of the connection
|
|
17
|
+
*/
|
|
18
|
+
getSourceConfig(): Promise<types.configFile.DataSourceConfig>;
|
|
19
|
+
/**
|
|
20
|
+
* Checks the current connection status of the data source.
|
|
21
|
+
* This is usually some test query to verify the source can be reached.
|
|
22
|
+
*/
|
|
23
|
+
getConnectionStatus(): Promise<types.ConnectionStatusV2>;
|
|
24
|
+
/**
|
|
25
|
+
* Generates replication table information from a given pattern of tables.
|
|
26
|
+
*
|
|
27
|
+
* @param tablePatterns A set of table patterns which typically come from
|
|
28
|
+
* the tables listed in sync rules definitions.
|
|
29
|
+
*
|
|
30
|
+
* @param sqlSyncRules
|
|
31
|
+
* @returns A result of all the tables and columns which should be replicated
|
|
32
|
+
* based off the input patterns. Certain tests are executed on the
|
|
33
|
+
* tables to ensure syncing should function according to the input
|
|
34
|
+
* pattern. Debug errors and warnings are reported per table.
|
|
35
|
+
*/
|
|
36
|
+
getDebugTablesInfo(tablePatterns: TablePattern[], sqlSyncRules: SqlSyncRules): Promise<PatternResult[]>;
|
|
37
|
+
/**
|
|
38
|
+
* @returns The replication lag: that is the amount of data which has not been
|
|
39
|
+
* replicated yet, in bytes.
|
|
40
|
+
* @param {string} syncRulesId An identifier representing which set of sync rules the lag is required for.
|
|
41
|
+
*/
|
|
42
|
+
getReplicationLag(syncRulesId: string): Promise<number>;
|
|
43
|
+
/**
|
|
44
|
+
* Get the current LSN or equivalent replication HEAD position identifier
|
|
45
|
+
*/
|
|
46
|
+
getReplicationHead(): Promise<string>;
|
|
47
|
+
/**
|
|
48
|
+
* @returns The schema for tables inside the connected database. This is typically
|
|
49
|
+
* used to validate sync rules.
|
|
50
|
+
* Side Note: https://github.com/powersync-ja/powersync-service/blob/33bbb8c0ab1c48555956593f427fc674a8f15768/packages/types/src/definitions.ts#L100
|
|
51
|
+
* contains `pg_type` which we might need to deprecate and add another generic
|
|
52
|
+
* type field - or just use this field as the connection specific type.
|
|
53
|
+
*/
|
|
54
|
+
getConnectionSchema(): Promise<types.DatabaseSchema[]>;
|
|
55
|
+
/**
|
|
56
|
+
* Executes a query and return the result from the data source. This is currently used in the
|
|
57
|
+
* admin API which is exposed in Collide.
|
|
58
|
+
*/
|
|
59
|
+
executeQuery(query: string, params: any[]): Promise<types.internal_routes.ExecuteSqlResponse>;
|
|
60
|
+
/**
|
|
61
|
+
* Close any resources that need graceful termination.
|
|
62
|
+
*/
|
|
63
|
+
shutdown(): Promise<void>;
|
|
64
|
+
/**
|
|
65
|
+
* Get the default schema (or database) when only a table name is specified in sync rules.
|
|
66
|
+
*/
|
|
67
|
+
getParseSyncRulesOptions(): ParseSyncRulesOptions;
|
|
68
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RouteAPI.js","sourceRoot":"","sources":["../../src/api/RouteAPI.ts"],"names":[],"mappings":""}
|
package/dist/api/api-index.d.ts
CHANGED
package/dist/api/api-index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-index.js","sourceRoot":"","sources":["../../src/api/api-index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"api-index.js","sourceRoot":"","sources":["../../src/api/api-index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SyncRulesStatus } from '@powersync/service-types';
|
|
2
2
|
import * as storage from '../storage/storage-index.js';
|
|
3
|
-
import {
|
|
4
|
-
export declare function getConnectionStatus(system: CorePowerSyncSystem): Promise<ConnectionStatus | null>;
|
|
3
|
+
import { RouteAPI } from './RouteAPI.js';
|
|
5
4
|
export interface DiagnosticsOptions {
|
|
6
5
|
/**
|
|
7
6
|
* Include sync rules content in response.
|
|
@@ -18,4 +17,5 @@ export interface DiagnosticsOptions {
|
|
|
18
17
|
*/
|
|
19
18
|
check_connection: boolean;
|
|
20
19
|
}
|
|
21
|
-
export declare
|
|
20
|
+
export declare const DEFAULT_DATASOURCE_ID = "default";
|
|
21
|
+
export declare function getSyncRulesStatus(bucketStorage: storage.BucketStorageFactory, apiHandler: RouteAPI, sync_rules: storage.PersistedSyncRulesContent | null, options: DiagnosticsOptions): Promise<SyncRulesStatus | undefined>;
|
package/dist/api/diagnostics.js
CHANGED
|
@@ -1,45 +1,7 @@
|
|
|
1
|
-
import { DEFAULT_TAG } from '@powersync/service-sync-rules';
|
|
2
|
-
import { pgwireRows } from '@powersync/service-jpgwire';
|
|
3
|
-
import { baseUri } from '@powersync/service-types';
|
|
4
|
-
import * as replication from '../replication/replication-index.js';
|
|
5
|
-
import * as util from '../util/util-index.js';
|
|
6
1
|
import { logger } from '@powersync/lib-services-framework';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
const pool = system.requirePgPool();
|
|
12
|
-
const base = {
|
|
13
|
-
id: system.config.connection.id,
|
|
14
|
-
postgres_uri: baseUri(system.config.connection)
|
|
15
|
-
};
|
|
16
|
-
try {
|
|
17
|
-
await util.retriedQuery(pool, `SELECT 'PowerSync connection test'`);
|
|
18
|
-
}
|
|
19
|
-
catch (e) {
|
|
20
|
-
return {
|
|
21
|
-
...base,
|
|
22
|
-
connected: false,
|
|
23
|
-
errors: [{ level: 'fatal', message: e.message }]
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
try {
|
|
27
|
-
await replication.checkSourceConfiguration(pool);
|
|
28
|
-
}
|
|
29
|
-
catch (e) {
|
|
30
|
-
return {
|
|
31
|
-
...base,
|
|
32
|
-
connected: true,
|
|
33
|
-
errors: [{ level: 'fatal', message: e.message }]
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
return {
|
|
37
|
-
...base,
|
|
38
|
-
connected: true,
|
|
39
|
-
errors: []
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
export async function getSyncRulesStatus(sync_rules, system, options) {
|
|
2
|
+
import { DEFAULT_TAG } from '@powersync/service-sync-rules';
|
|
3
|
+
export const DEFAULT_DATASOURCE_ID = 'default';
|
|
4
|
+
export async function getSyncRulesStatus(bucketStorage, apiHandler, sync_rules, options) {
|
|
43
5
|
if (sync_rules == null) {
|
|
44
6
|
return undefined;
|
|
45
7
|
}
|
|
@@ -49,7 +11,7 @@ export async function getSyncRulesStatus(sync_rules, system, options) {
|
|
|
49
11
|
let rules;
|
|
50
12
|
let persisted;
|
|
51
13
|
try {
|
|
52
|
-
persisted = sync_rules.parsed();
|
|
14
|
+
persisted = sync_rules.parsed(apiHandler.getParseSyncRulesOptions());
|
|
53
15
|
rules = persisted.sync_rules;
|
|
54
16
|
}
|
|
55
17
|
catch (e) {
|
|
@@ -59,18 +21,13 @@ export async function getSyncRulesStatus(sync_rules, system, options) {
|
|
|
59
21
|
errors: [{ level: 'fatal', message: e.message }]
|
|
60
22
|
};
|
|
61
23
|
}
|
|
62
|
-
const systemStorage = live_status ?
|
|
24
|
+
const systemStorage = live_status ? bucketStorage.getInstance(sync_rules) : undefined;
|
|
63
25
|
const status = await systemStorage?.getStatus();
|
|
64
26
|
let replication_lag_bytes = undefined;
|
|
65
27
|
let tables_flat = [];
|
|
66
28
|
if (check_connection) {
|
|
67
|
-
const pool = system.requirePgPool();
|
|
68
29
|
const source_table_patterns = rules.getSourceTables();
|
|
69
|
-
const
|
|
70
|
-
db: pool,
|
|
71
|
-
sync_rules: rules
|
|
72
|
-
});
|
|
73
|
-
const resolved_tables = await wc.getDebugTablesInfo(source_table_patterns);
|
|
30
|
+
const resolved_tables = await apiHandler.getDebugTablesInfo(source_table_patterns, rules);
|
|
74
31
|
tables_flat = resolved_tables.flatMap((info) => {
|
|
75
32
|
if (info.table) {
|
|
76
33
|
return [info.table];
|
|
@@ -84,19 +41,7 @@ export async function getSyncRulesStatus(sync_rules, system, options) {
|
|
|
84
41
|
});
|
|
85
42
|
if (systemStorage) {
|
|
86
43
|
try {
|
|
87
|
-
|
|
88
|
-
statement: `SELECT
|
|
89
|
-
slot_name,
|
|
90
|
-
confirmed_flush_lsn,
|
|
91
|
-
pg_current_wal_lsn(),
|
|
92
|
-
(pg_current_wal_lsn() - confirmed_flush_lsn) AS lsn_distance
|
|
93
|
-
FROM pg_replication_slots WHERE slot_name = $1 LIMIT 1;`,
|
|
94
|
-
params: [{ type: 'varchar', value: systemStorage.slot_name }]
|
|
95
|
-
});
|
|
96
|
-
const [row] = pgwireRows(results);
|
|
97
|
-
if (row) {
|
|
98
|
-
replication_lag_bytes = Number(row.lsn_distance);
|
|
99
|
-
}
|
|
44
|
+
replication_lag_bytes = await apiHandler.getReplicationLag(systemStorage.slot_name);
|
|
100
45
|
}
|
|
101
46
|
catch (e) {
|
|
102
47
|
// Ignore
|
|
@@ -106,7 +51,6 @@ export async function getSyncRulesStatus(sync_rules, system, options) {
|
|
|
106
51
|
}
|
|
107
52
|
else {
|
|
108
53
|
const source_table_patterns = rules.getSourceTables();
|
|
109
|
-
const tag = system.config.connection.tag ?? DEFAULT_TAG;
|
|
110
54
|
tables_flat = source_table_patterns.map((pattern) => {
|
|
111
55
|
if (pattern.isWildcard) {
|
|
112
56
|
return {
|
|
@@ -148,12 +92,14 @@ export async function getSyncRulesStatus(sync_rules, system, options) {
|
|
|
148
92
|
message: e.message
|
|
149
93
|
};
|
|
150
94
|
}));
|
|
95
|
+
const sourceConfig = await apiHandler.getSourceConfig();
|
|
96
|
+
const tag = sourceConfig.tag ?? DEFAULT_TAG;
|
|
151
97
|
return {
|
|
152
98
|
content: include_content ? sync_rules.sync_rules_content : undefined,
|
|
153
99
|
connections: [
|
|
154
100
|
{
|
|
155
|
-
id:
|
|
156
|
-
tag:
|
|
101
|
+
id: sourceConfig.id ?? DEFAULT_DATASOURCE_ID,
|
|
102
|
+
tag: sourceConfig.tag ?? DEFAULT_TAG,
|
|
157
103
|
slot_name: sync_rules.slot_name,
|
|
158
104
|
initial_replication_done: status?.snapshot_done ?? false,
|
|
159
105
|
// TODO: Rename?
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/api/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/api/diagnostics.ts"],"names":[],"mappings":"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"}
|
package/dist/api/schema.d.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
export declare function getConnectionsSchema(system: CorePowerSyncSystem): Promise<internal_routes.GetSchemaResponse>;
|
|
5
|
-
export declare function getConnectionSchema(db: pgwire.PgClient): Promise<DatabaseSchema[]>;
|
|
1
|
+
import { internal_routes } from '@powersync/service-types';
|
|
2
|
+
import * as api from '../api/api-index.js';
|
|
3
|
+
export declare function getConnectionsSchema(api: api.RouteAPI): Promise<internal_routes.GetSchemaResponse>;
|
package/dist/api/schema.js
CHANGED
|
@@ -1,88 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
export async function getConnectionsSchema(api) {
|
|
2
|
+
if (!api) {
|
|
3
|
+
return {
|
|
4
|
+
connections: []
|
|
5
|
+
};
|
|
6
6
|
}
|
|
7
|
-
const
|
|
7
|
+
const baseConfig = await api.getSourceConfig();
|
|
8
8
|
return {
|
|
9
9
|
connections: [
|
|
10
10
|
{
|
|
11
|
-
schemas,
|
|
12
|
-
tag:
|
|
13
|
-
id:
|
|
11
|
+
schemas: await api.getConnectionSchema(),
|
|
12
|
+
tag: baseConfig.tag,
|
|
13
|
+
id: baseConfig.id
|
|
14
14
|
}
|
|
15
15
|
]
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
|
-
export async function getConnectionSchema(db) {
|
|
19
|
-
var _a;
|
|
20
|
-
// https://github.com/Borvik/vscode-postgres/blob/88ec5ed061a0c9bced6c5d4ec122d0759c3f3247/src/language/server.ts
|
|
21
|
-
const results = await util.retriedQuery(db, `SELECT
|
|
22
|
-
tbl.schemaname,
|
|
23
|
-
tbl.tablename,
|
|
24
|
-
tbl.quoted_name,
|
|
25
|
-
json_agg(a ORDER BY attnum) as columns
|
|
26
|
-
FROM
|
|
27
|
-
(
|
|
28
|
-
SELECT
|
|
29
|
-
n.nspname as schemaname,
|
|
30
|
-
c.relname as tablename,
|
|
31
|
-
(quote_ident(n.nspname) || '.' || quote_ident(c.relname)) as quoted_name
|
|
32
|
-
FROM
|
|
33
|
-
pg_catalog.pg_class c
|
|
34
|
-
JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
|
|
35
|
-
WHERE
|
|
36
|
-
c.relkind = 'r'
|
|
37
|
-
AND n.nspname not in ('information_schema', 'pg_catalog', 'pg_toast')
|
|
38
|
-
AND n.nspname not like 'pg_temp_%'
|
|
39
|
-
AND n.nspname not like 'pg_toast_temp_%'
|
|
40
|
-
AND c.relnatts > 0
|
|
41
|
-
AND has_schema_privilege(n.oid, 'USAGE') = true
|
|
42
|
-
AND has_table_privilege(quote_ident(n.nspname) || '.' || quote_ident(c.relname), 'SELECT, INSERT, UPDATE, DELETE, TRUNCATE, REFERENCES, TRIGGER') = true
|
|
43
|
-
) as tbl
|
|
44
|
-
LEFT JOIN (
|
|
45
|
-
SELECT
|
|
46
|
-
attrelid,
|
|
47
|
-
attname,
|
|
48
|
-
format_type(atttypid, atttypmod) as data_type,
|
|
49
|
-
(SELECT typname FROM pg_catalog.pg_type WHERE oid = atttypid) as pg_type,
|
|
50
|
-
attnum,
|
|
51
|
-
attisdropped
|
|
52
|
-
FROM
|
|
53
|
-
pg_attribute
|
|
54
|
-
) as a ON (
|
|
55
|
-
a.attrelid = tbl.quoted_name::regclass
|
|
56
|
-
AND a.attnum > 0
|
|
57
|
-
AND NOT a.attisdropped
|
|
58
|
-
AND has_column_privilege(tbl.quoted_name, a.attname, 'SELECT, INSERT, UPDATE, REFERENCES')
|
|
59
|
-
)
|
|
60
|
-
GROUP BY schemaname, tablename, quoted_name`);
|
|
61
|
-
const rows = pgwireRows(results);
|
|
62
|
-
let schemas = {};
|
|
63
|
-
for (let row of rows) {
|
|
64
|
-
const schema = (schemas[_a = row.schemaname] ?? (schemas[_a] = {
|
|
65
|
-
name: row.schemaname,
|
|
66
|
-
tables: []
|
|
67
|
-
}));
|
|
68
|
-
const table = {
|
|
69
|
-
name: row.tablename,
|
|
70
|
-
columns: []
|
|
71
|
-
};
|
|
72
|
-
schema.tables.push(table);
|
|
73
|
-
const columnInfo = JSON.parse(row.columns);
|
|
74
|
-
for (let column of columnInfo) {
|
|
75
|
-
let pg_type = column.pg_type;
|
|
76
|
-
if (pg_type.startsWith('_')) {
|
|
77
|
-
pg_type = `${pg_type.substring(1)}[]`;
|
|
78
|
-
}
|
|
79
|
-
table.columns.push({
|
|
80
|
-
name: column.attname,
|
|
81
|
-
type: column.data_type,
|
|
82
|
-
pg_type: pg_type
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
return Object.values(schemas);
|
|
87
|
-
}
|
|
88
18
|
//# sourceMappingURL=schema.js.map
|
package/dist/api/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/api/schema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/api/schema.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,GAAiB;IAC1D,IAAI,CAAC,GAAG,EAAE;QACR,OAAO;YACL,WAAW,EAAE,EAAE;SAChB,CAAC;KACH;IAED,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,eAAe,EAAE,CAAC;IAE/C,OAAO;QACL,WAAW,EAAE;YACX;gBACE,OAAO,EAAE,MAAM,GAAG,CAAC,mBAAmB,EAAE;gBACxC,GAAG,EAAE,UAAU,CAAC,GAAI;gBACpB,EAAE,EAAE,UAAU,CAAC,EAAE;aAClB;SACF;KACF,CAAC;AACJ,CAAC"}
|
package/dist/auth/KeyStore.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { KeyCollector } from './KeyCollector.js';
|
|
2
1
|
import { JwtPayload } from './JwtPayload.js';
|
|
2
|
+
import { KeyCollector } from './KeyCollector.js';
|
|
3
3
|
/**
|
|
4
4
|
* KeyStore to get keys and verify tokens.
|
|
5
5
|
*
|
|
@@ -27,9 +27,12 @@ import { JwtPayload } from './JwtPayload.js';
|
|
|
27
27
|
* If we have a matching kid, we can generally get a detailed error (e.g. signature verification failed, invalid algorithm, etc).
|
|
28
28
|
* If we don't have a matching kid, we'll generally just get an error "Could not find an appropriate key...".
|
|
29
29
|
*/
|
|
30
|
-
export declare class KeyStore {
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
export declare class KeyStore<Collector extends KeyCollector = KeyCollector> {
|
|
31
|
+
/**
|
|
32
|
+
* @internal
|
|
33
|
+
*/
|
|
34
|
+
collector: Collector;
|
|
35
|
+
constructor(collector: Collector);
|
|
33
36
|
verifyJwt(token: string, options: {
|
|
34
37
|
defaultAudiences: string[];
|
|
35
38
|
maxAge: string;
|
package/dist/auth/KeyStore.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { logger } from '@powersync/lib-services-framework';
|
|
1
2
|
import * as jose from 'jose';
|
|
2
3
|
import secs from '../util/secs.js';
|
|
3
4
|
import { SUPPORTED_ALGORITHMS } from './KeySpec.js';
|
|
4
|
-
import { logger } from '@powersync/lib-services-framework';
|
|
5
5
|
/**
|
|
6
6
|
* KeyStore to get keys and verify tokens.
|
|
7
7
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyStore.js","sourceRoot":"","sources":["../../src/auth/KeyStore.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"KeyStore.js","sourceRoot":"","sources":["../../src/auth/KeyStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3D,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,IAAI,MAAM,iBAAiB,CAAC;AAGnC,OAAO,EAAuB,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEzE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,OAAO,QAAQ;IAMnB,YAAY,SAAoB;QAC9B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAa,EAAE,OAAuD;QACpF,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;YAC9D,oFAAoF;YACpF,sCAAsC;YACtC,cAAc,EAAE,EAAE;YAClB,0EAA0E;YAC1E,UAAU,EAAE,oBAAoB;YAChC,cAAc,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;SAC7C,CAAC,CAAC;QAEH,IAAI,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACzC,IAAI,UAAU,CAAC,gBAAgB,EAAE;YAC/B,kCAAkC;YAClC,SAAS,GAAG,UAAU,CAAC,gBAAgB,CAAC;SACzC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC;QAEpC,IAAI,GAAG,GAAG,YAAY,CAAC,GAAI,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACvB,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;SACb;QACD,IACE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACd,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC,CAAC,EACF;YACA,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,8BAA8B,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;SACvG;QAED,MAAM,aAAa,GAAG,YAAY,CAAC,GAAI,GAAG,YAAY,CAAC,GAAI,CAAC;QAE5D,wFAAwF;QACxF,8BAA8B;QAC9B,MAAM,MAAM,GAAG,UAAU,CAAC,kBAAkB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACrE,IAAI,aAAa,GAAG,MAAM,EAAE;YAC1B,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,qCAAqC,MAAM,iBAAiB,aAAa,EAAE,CAAC,CAAC;SAC/G;QAED,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;QAC3C,IAAI,UAAU,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,OAAO,UAAU,IAAI,QAAQ,CAAC,EAAE;YACtF,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC;SAClE;QAED,OAAO,YAA0B,CAAC;IACpC,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,KAAa,EAAE,OAA8B;QACxE,IAAI,UAAU,GAA2B,SAAS,CAAC;QACnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CACjC,KAAK,EACL,KAAK,EAAE,MAAM,EAAE,EAAE;YACf,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACjD,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC;YACzB,OAAO,GAAG,CAAC,GAAG,CAAC;QACjB,CAAC,EACD,OAAO,CACR,CAAC;QACF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,UAAW,EAAE,CAAC;IAC7C,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,MAAgC;QACxE,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QACvB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QACxD,IAAI,GAAG,EAAE;YACP,sDAAsD;YACtD,wCAAwC;YACxC,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE;gBACpB,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE;oBAClB,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;wBACrC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,8BAA8B,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;qBACrF;oBACD,OAAO,GAAG,CAAC;iBACZ;aACF;SACF;QAED,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE;YACpB,iCAAiC;YACjC,IAAI,GAAG,CAAC,GAAG,IAAI,IAAI,EAAE;gBACnB,qBAAqB;gBACrB,SAAS;aACV;YACD,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;gBACrC,SAAS;aACV;YAED,IAAI,MAAM,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE;gBACrC,OAAO,GAAG,CAAC;aACZ;SACF;QAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC;SACjB;aAAM;YACL,eAAe;YACf,oEAAoE;YACpE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;gBACxC,yDAAyD;gBACzD,6CAA6C;gBAC7C,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;YAEH,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAC7B,uGAAuG,CACxG,CAAC;SACH;IACH,CAAC;CACF"}
|
package/dist/auth/auth-index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-index.js","sourceRoot":"","sources":["../../src/auth/auth-index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC
|
|
1
|
+
{"version":3,"file":"auth-index.js","sourceRoot":"","sources":["../../src/auth/auth-index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC"}
|
package/dist/entry/cli-entry.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
+
import { logger } from '@powersync/lib-services-framework';
|
|
3
|
+
import { registerCompactAction } from './commands/compact-action.js';
|
|
2
4
|
import { registerMigrationAction } from './commands/migrate-action.js';
|
|
5
|
+
import { registerStartAction } from './commands/start-action.js';
|
|
3
6
|
import { registerTearDownAction } from './commands/teardown-action.js';
|
|
4
|
-
import { registerStartAction } from './entry-index.js';
|
|
5
|
-
import { logger } from '@powersync/lib-services-framework';
|
|
6
7
|
/**
|
|
7
8
|
* Generates a Commander program which serves as the entry point
|
|
8
9
|
* for the PowerSync service.
|
|
@@ -14,6 +15,7 @@ export function generateEntryProgram(startHandlers) {
|
|
|
14
15
|
entryProgram.name('powersync-runner').description('CLI to initiate a PowerSync service runner');
|
|
15
16
|
registerTearDownAction(entryProgram);
|
|
16
17
|
registerMigrationAction(entryProgram);
|
|
18
|
+
registerCompactAction(entryProgram);
|
|
17
19
|
if (startHandlers) {
|
|
18
20
|
registerStartAction(entryProgram, startHandlers);
|
|
19
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-entry.js","sourceRoot":"","sources":["../../src/entry/cli-entry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"cli-entry.js","sourceRoot":"","sources":["../../src/entry/cli-entry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAE3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,aAAyD;IAC5F,MAAM,YAAY,GAAG,IAAI,OAAO,EAAE,CAAC;IACnC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,WAAW,CAAC,4CAA4C,CAAC,CAAC;IAEhG,sBAAsB,CAAC,YAAY,CAAC,CAAC;IACrC,uBAAuB,CAAC,YAAY,CAAC,CAAC;IACtC,qBAAqB,CAAC,YAAY,CAAC,CAAC;IAEpC,IAAI,aAAa,EAAE;QACjB,mBAAmB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;KAClD;IAED,OAAO;QACL,OAAO,EAAE,YAAY;QACrB;;WAEG;QACH,OAAO,EAAE,KAAK,UAAU,UAAU;YAChC,IAAI;gBACF,MAAM,YAAY,CAAC,UAAU,EAAE,CAAC;aACjC;YAAC,OAAO,CAAC,EAAE;gBACV,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;gBAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACjB;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { logger } from '@powersync/lib-services-framework';
|
|
2
|
+
import * as v8 from 'v8';
|
|
3
|
+
import * as storage from '../../storage/storage-index.js';
|
|
4
|
+
import * as utils from '../../util/util-index.js';
|
|
5
|
+
import { extractRunnerOptions, wrapConfigCommand } from './config-command.js';
|
|
6
|
+
const COMMAND_NAME = 'compact';
|
|
7
|
+
/**
|
|
8
|
+
* Approximately max-old-space-size + 64MB.
|
|
9
|
+
*/
|
|
10
|
+
const HEAP_LIMIT = v8.getHeapStatistics().heap_size_limit;
|
|
11
|
+
/**
|
|
12
|
+
* Subtract 128MB for process overhead.
|
|
13
|
+
*
|
|
14
|
+
* Limit to 1024MB overall.
|
|
15
|
+
*/
|
|
16
|
+
const COMPACT_MEMORY_LIMIT_MB = Math.min(HEAP_LIMIT / 1024 / 1024 - 128, 1024);
|
|
17
|
+
export function registerCompactAction(program) {
|
|
18
|
+
const compactCommand = program.command(COMMAND_NAME);
|
|
19
|
+
wrapConfigCommand(compactCommand);
|
|
20
|
+
return compactCommand.description('Compact storage').action(async (options) => {
|
|
21
|
+
logger.info('Compacting storage...');
|
|
22
|
+
const runnerConfig = extractRunnerOptions(options);
|
|
23
|
+
const configuration = await utils.loadConfig(runnerConfig);
|
|
24
|
+
logger.info('Successfully loaded configuration...');
|
|
25
|
+
const { storage: storageConfig } = configuration;
|
|
26
|
+
logger.info('Connecting to storage...');
|
|
27
|
+
const psdb = storage.createPowerSyncMongo(storageConfig);
|
|
28
|
+
const client = psdb.client;
|
|
29
|
+
await client.connect();
|
|
30
|
+
try {
|
|
31
|
+
const bucketStorage = new storage.MongoBucketStorage(psdb, { slot_name_prefix: configuration.slot_name_prefix });
|
|
32
|
+
const active = await bucketStorage.getActiveSyncRulesContent();
|
|
33
|
+
if (active == null) {
|
|
34
|
+
logger.info('No active instance to compact');
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const p = bucketStorage.getInstance(active);
|
|
38
|
+
logger.info('Performing compaction...');
|
|
39
|
+
await p.compact({ memoryLimitMB: COMPACT_MEMORY_LIMIT_MB });
|
|
40
|
+
logger.info('Successfully compacted storage.');
|
|
41
|
+
}
|
|
42
|
+
catch (e) {
|
|
43
|
+
logger.error(`Failed to compact: ${e.toString()}`);
|
|
44
|
+
process.exit(1);
|
|
45
|
+
}
|
|
46
|
+
finally {
|
|
47
|
+
await client.close();
|
|
48
|
+
process.exit(0);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=compact-action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compact-action.js","sourceRoot":"","sources":["../../../src/entry/commands/compact-action.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,OAAO,MAAM,gCAAgC,CAAC;AAC1D,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE9E,MAAM,YAAY,GAAG,SAAS,CAAC;AAE/B;;GAEG;AACH,MAAM,UAAU,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC,eAAe,CAAC;AAE1D;;;;GAIG;AACH,MAAM,uBAAuB,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC;AAE/E,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAErD,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAElC,OAAO,cAAc,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QAC5E,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACrC,MAAM,YAAY,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC3D,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACpD,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,aAAa,CAAC;QACjD,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,OAAO,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,IAAI;YACF,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,EAAE,gBAAgB,EAAE,aAAa,CAAC,gBAAgB,EAAE,CAAC,CAAC;YACjH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,yBAAyB,EAAE,CAAC;YAC/D,IAAI,MAAM,IAAI,IAAI,EAAE;gBAClB,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;gBAC7C,OAAO;aACR;YACD,MAAM,CAAC,GAAG,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACxC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,uBAAuB,EAAE,CAAC,CAAC;YAC5D,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;SAChD;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;gBAAS;YACR,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|