@powersync/service-core 1.20.4 → 1.20.5

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 (151) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/api/RouteAPI.d.ts +14 -0
  3. package/dist/api/api-index.d.ts +1 -1
  4. package/dist/api/api-index.js +1 -1
  5. package/dist/api/api-index.js.map +1 -1
  6. package/dist/api/api-metrics.js.map +1 -1
  7. package/dist/api/diagnostics.js +16 -14
  8. package/dist/api/diagnostics.js.map +1 -1
  9. package/dist/auth/CachedKeyCollector.js +1 -1
  10. package/dist/auth/CachedKeyCollector.js.map +1 -1
  11. package/dist/auth/CompoundKeyCollector.js.map +1 -1
  12. package/dist/auth/KeyStore.js.map +1 -1
  13. package/dist/auth/RemoteJWKSCollector.js.map +1 -1
  14. package/dist/auth/StaticKeyCollector.d.ts +1 -1
  15. package/dist/auth/StaticKeyCollector.js.map +1 -1
  16. package/dist/auth/StaticSupabaseKeyCollector.d.ts +1 -1
  17. package/dist/auth/StaticSupabaseKeyCollector.js.map +1 -1
  18. package/dist/entry/commands/teardown-action.js +1 -1
  19. package/dist/entry/commands/teardown-action.js.map +1 -1
  20. package/dist/entry/entry-index.d.ts +1 -1
  21. package/dist/entry/entry-index.js +1 -1
  22. package/dist/entry/entry-index.js.map +1 -1
  23. package/dist/events/EventsEngine.js +1 -1
  24. package/dist/events/EventsEngine.js.map +1 -1
  25. package/dist/metrics/MetricsEngine.d.ts +1 -1
  26. package/dist/metrics/metrics-index.d.ts +3 -3
  27. package/dist/metrics/metrics-index.js +3 -3
  28. package/dist/metrics/metrics-index.js.map +1 -1
  29. package/dist/metrics/open-telemetry/util.js +1 -1
  30. package/dist/metrics/open-telemetry/util.js.map +1 -1
  31. package/dist/metrics/register-metrics.js +2 -2
  32. package/dist/metrics/register-metrics.js.map +1 -1
  33. package/dist/modules/AbstractModule.d.ts +1 -1
  34. package/dist/modules/AbstractModule.js.map +1 -1
  35. package/dist/modules/modules-index.d.ts +1 -1
  36. package/dist/modules/modules-index.js +1 -1
  37. package/dist/modules/modules-index.js.map +1 -1
  38. package/dist/replication/AbstractReplicationJob.d.ts +1 -1
  39. package/dist/replication/replication-index.d.ts +3 -3
  40. package/dist/replication/replication-index.js +3 -3
  41. package/dist/replication/replication-index.js.map +1 -1
  42. package/dist/replication/replication-metrics.js.map +1 -1
  43. package/dist/routes/configure-fastify.d.ts +59 -32
  44. package/dist/routes/endpoints/admin.d.ts +108 -54
  45. package/dist/routes/endpoints/sync-rules.js +3 -3
  46. package/dist/routes/endpoints/sync-rules.js.map +1 -1
  47. package/dist/routes/endpoints/sync-stream.d.ts +10 -10
  48. package/dist/routes/hooks.js +1 -1
  49. package/dist/routes/hooks.js.map +1 -1
  50. package/dist/routes/route-register.js.map +1 -1
  51. package/dist/storage/BucketStorageBatch.d.ts +1 -1
  52. package/dist/storage/BucketStorageFactory.d.ts +5 -3
  53. package/dist/storage/BucketStorageFactory.js +10 -8
  54. package/dist/storage/BucketStorageFactory.js.map +1 -1
  55. package/dist/storage/ChecksumCache.js.map +1 -1
  56. package/dist/storage/PersistedSyncRulesContent.js +14 -2
  57. package/dist/storage/PersistedSyncRulesContent.js.map +1 -1
  58. package/dist/storage/ReplicationEventPayload.d.ts +1 -1
  59. package/dist/storage/SourceTable.d.ts +1 -1
  60. package/dist/storage/SourceTable.js.map +1 -1
  61. package/dist/storage/storage-index.d.ts +8 -8
  62. package/dist/storage/storage-index.js +8 -8
  63. package/dist/storage/storage-index.js.map +1 -1
  64. package/dist/storage/storage-metrics.js.map +1 -1
  65. package/dist/streams/streams-index.d.ts +2 -2
  66. package/dist/streams/streams-index.js +2 -2
  67. package/dist/streams/streams-index.js.map +1 -1
  68. package/dist/sync/BucketChecksumState.js +4 -19
  69. package/dist/sync/BucketChecksumState.js.map +1 -1
  70. package/dist/sync/RequestTracker.js +1 -1
  71. package/dist/sync/RequestTracker.js.map +1 -1
  72. package/dist/sync/sync-index.d.ts +2 -2
  73. package/dist/sync/sync-index.js +2 -2
  74. package/dist/sync/sync-index.js.map +1 -1
  75. package/dist/sync/sync.js.map +1 -1
  76. package/dist/sync/util.js.map +1 -1
  77. package/dist/system/ServiceContext.d.ts +1 -1
  78. package/dist/system/ServiceContext.js +1 -1
  79. package/dist/system/ServiceContext.js.map +1 -1
  80. package/dist/util/config/collectors/impl/base64-config-collector.d.ts +1 -1
  81. package/dist/util/config/collectors/impl/base64-config-collector.js.map +1 -1
  82. package/dist/util/config/collectors/impl/filesystem-config-collector.d.ts +1 -1
  83. package/dist/util/config/collectors/impl/filesystem-config-collector.js +1 -1
  84. package/dist/util/config/collectors/impl/filesystem-config-collector.js.map +1 -1
  85. package/dist/util/config/sync-rules/sync-rules-provider.js.map +1 -1
  86. package/dist/util/config.js +1 -1
  87. package/dist/util/config.js.map +1 -1
  88. package/dist/util/errors.d.ts +3 -0
  89. package/dist/util/errors.js +15 -0
  90. package/dist/util/errors.js.map +1 -0
  91. package/dist/util/protocol-types.d.ts +2 -2
  92. package/dist/util/util-index.d.ts +1 -1
  93. package/dist/util/util-index.js +1 -1
  94. package/dist/util/util-index.js.map +1 -1
  95. package/dist/util/utils.d.ts +1 -1
  96. package/package.json +5 -5
  97. package/src/api/RouteAPI.ts +17 -0
  98. package/src/api/api-index.ts +1 -1
  99. package/src/api/api-metrics.ts +1 -1
  100. package/src/api/diagnostics.ts +18 -19
  101. package/src/auth/CachedKeyCollector.ts +2 -3
  102. package/src/auth/CompoundKeyCollector.ts +2 -3
  103. package/src/auth/KeyStore.ts +1 -1
  104. package/src/auth/RemoteJWKSCollector.ts +0 -1
  105. package/src/auth/StaticKeyCollector.ts +1 -1
  106. package/src/auth/StaticSupabaseKeyCollector.ts +1 -1
  107. package/src/entry/commands/teardown-action.ts +1 -1
  108. package/src/entry/entry-index.ts +1 -1
  109. package/src/events/EventsEngine.ts +1 -1
  110. package/src/metrics/MetricsEngine.ts +1 -1
  111. package/src/metrics/metrics-index.ts +3 -3
  112. package/src/metrics/open-telemetry/util.ts +1 -1
  113. package/src/metrics/register-metrics.ts +3 -3
  114. package/src/modules/AbstractModule.ts +1 -1
  115. package/src/modules/modules-index.ts +1 -1
  116. package/src/replication/AbstractReplicationJob.ts +1 -1
  117. package/src/replication/replication-index.ts +3 -3
  118. package/src/replication/replication-metrics.ts +1 -1
  119. package/src/routes/endpoints/sync-rules.ts +3 -5
  120. package/src/routes/hooks.ts +2 -2
  121. package/src/routes/route-register.ts +2 -10
  122. package/src/storage/BucketStorageBatch.ts +1 -1
  123. package/src/storage/BucketStorageFactory.ts +18 -14
  124. package/src/storage/ChecksumCache.ts +1 -1
  125. package/src/storage/PersistedSyncRulesContent.ts +18 -2
  126. package/src/storage/ReplicationEventPayload.ts +1 -1
  127. package/src/storage/SourceTable.ts +1 -1
  128. package/src/storage/storage-index.ts +8 -8
  129. package/src/storage/storage-metrics.ts +2 -2
  130. package/src/streams/streams-index.ts +2 -2
  131. package/src/sync/BucketChecksumState.ts +5 -21
  132. package/src/sync/RequestTracker.ts +1 -1
  133. package/src/sync/sync-index.ts +2 -2
  134. package/src/sync/sync.ts +1 -7
  135. package/src/sync/util.ts +1 -1
  136. package/src/system/ServiceContext.ts +1 -1
  137. package/src/util/config/collectors/impl/base64-config-collector.ts +1 -1
  138. package/src/util/config/collectors/impl/filesystem-config-collector.ts +2 -2
  139. package/src/util/config/sync-rules/sync-rules-provider.ts +1 -1
  140. package/src/util/config.ts +1 -1
  141. package/src/util/errors.ts +21 -0
  142. package/src/util/util-index.ts +1 -1
  143. package/src/util/utils.ts +1 -1
  144. package/test/src/auth.test.ts +7 -7
  145. package/test/src/module-loader.test.ts +1 -1
  146. package/test/src/routes/mocks.ts +1 -1
  147. package/test/src/routes/stream.test.ts +1 -2
  148. package/test/src/sync/BucketChecksumState.test.ts +2 -2
  149. package/test/src/util/protocol_types.test.ts +1 -1
  150. package/tsconfig.tsbuildinfo +1 -1
  151. package/vitest.config.ts +1 -1
@@ -1,4 +1,5 @@
1
1
  import { LifeCycledSystem, ServiceIdentifier } from '@powersync/lib-services-framework';
2
+ import { EventsEngine } from '../events/EventsEngine.js';
2
3
  import * as metrics from '../metrics/MetricsEngine.js';
3
4
  import { PowerSyncMigrationManager } from '../migrations/PowerSyncMigrationManager.js';
4
5
  import * as replication from '../replication/replication-index.js';
@@ -6,7 +7,6 @@ import * as routes from '../routes/routes-index.js';
6
7
  import * as storage from '../storage/storage-index.js';
7
8
  import { SyncContext } from '../sync/SyncContext.js';
8
9
  import * as utils from '../util/util-index.js';
9
- import { EventsEngine } from '../events/EventsEngine.js';
10
10
  export interface ServiceContext {
11
11
  configuration: utils.ResolvedPowerSyncConfig;
12
12
  lifeCycleEngine: LifeCycledSystem;
@@ -1,4 +1,5 @@
1
1
  import { container, LifeCycledSystem, MigrationManager } from '@powersync/lib-services-framework';
2
+ import { EventsEngine } from '../events/EventsEngine.js';
2
3
  import { framework } from '../index.js';
3
4
  import * as metrics from '../metrics/MetricsEngine.js';
4
5
  import * as replication from '../replication/replication-index.js';
@@ -6,7 +7,6 @@ import * as routes from '../routes/routes-index.js';
6
7
  import * as storage from '../storage/storage-index.js';
7
8
  import { SyncContext } from '../sync/SyncContext.js';
8
9
  import * as utils from '../util/util-index.js';
9
- import { EventsEngine } from '../events/EventsEngine.js';
10
10
  export var ServiceContextMode;
11
11
  (function (ServiceContextMode) {
12
12
  ServiceContextMode["API"] = "api";
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceContext.js","sourceRoot":"","sources":["../../src/system/ServiceContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ServiceContext.js","sourceRoot":"","sources":["../../src/system/ServiceContext.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { ConfigCollector } from '../config-collector.js';
2
1
  import { RunnerConfig } from '../../types.js';
2
+ import { ConfigCollector } from '../config-collector.js';
3
3
  export declare class Base64ConfigCollector extends ConfigCollector {
4
4
  get name(): string;
5
5
  collectSerialized(runnerConfig: RunnerConfig): Promise<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"base64-config-collector.js","sourceRoot":"","sources":["../../../../../src/util/config/collectors/impl/base64-config-collector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD,MAAM,OAAO,qBAAsB,SAAQ,eAAe;IACxD,IAAI,IAAI;QACN,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,YAA0B;QAChD,MAAM,EAAE,aAAa,EAAE,GAAG,YAAY,CAAC;QACvC,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,sCAAsC;QACtC,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC5E,CAAC;CACF"}
1
+ {"version":3,"file":"base64-config-collector.js","sourceRoot":"","sources":["../../../../../src/util/config/collectors/impl/base64-config-collector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,OAAO,qBAAsB,SAAQ,eAAe;IACxD,IAAI,IAAI;QACN,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,YAA0B;QAChD,MAAM,EAAE,aAAa,EAAE,GAAG,YAAY,CAAC;QACvC,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,sCAAsC;QACtC,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC5E,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
- import { ConfigCollector } from '../config-collector.js';
2
1
  import { RunnerConfig } from '../../types.js';
2
+ import { ConfigCollector } from '../config-collector.js';
3
3
  export declare class FileSystemConfigCollector extends ConfigCollector {
4
4
  get name(): string;
5
5
  collectSerialized(runnerConfig: RunnerConfig): Promise<any>;
@@ -1,7 +1,7 @@
1
1
  import * as fs from 'fs/promises';
2
2
  import * as path from 'path';
3
- import { ConfigCollector, ConfigFileFormat } from '../config-collector.js';
4
3
  import { logger } from '@powersync/lib-services-framework';
4
+ import { ConfigCollector, ConfigFileFormat } from '../config-collector.js';
5
5
  export class FileSystemConfigCollector extends ConfigCollector {
6
6
  get name() {
7
7
  return 'FileSystem';
@@ -1 +1 @@
1
- {"version":3,"file":"filesystem-config-collector.js","sourceRoot":"","sources":["../../../../../src/util/config/collectors/impl/filesystem-config-collector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE3E,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAE3D,MAAM,OAAO,yBAA0B,SAAQ,eAAe;IAC5D,IAAI,IAAI;QACN,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,YAA0B;QAChD,MAAM,EAAE,WAAW,EAAE,GAAG,YAAY,CAAC;QACrC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;QAE9D,uBAAuB;QACvB,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,oBAAoB,YAAY,8CAA8C,CAAC,CAAC;QAClG,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,iDAAiD,YAAY,EAAE,CAAC,CAAC;QAC7E,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAEzD,IAAI,WAAyC,CAAC;QAC9C,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACnC,KAAK,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC/B,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC;gBACpC,MAAM;YACR,KAAK,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAChC,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC;gBACpC,MAAM;QACV,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACjD,CAAC;CACF"}
1
+ {"version":3,"file":"filesystem-config-collector.js","sourceRoot":"","sources":["../../../../../src/util/config/collectors/impl/filesystem-config-collector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAE3D,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE3E,MAAM,OAAO,yBAA0B,SAAQ,eAAe;IAC5D,IAAI,IAAI;QACN,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,YAA0B;QAChD,MAAM,EAAE,WAAW,EAAE,GAAG,YAAY,CAAC;QACrC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;QAE9D,uBAAuB;QACvB,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,oBAAoB,YAAY,8CAA8C,CAAC,CAAC;QAClG,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,iDAAiD,YAAY,EAAE,CAAC,CAAC;QAC7E,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAEzD,IAAI,WAAyC,CAAC;QAC9C,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACnC,KAAK,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC/B,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC;gBACpC,MAAM;YACR,KAAK,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAChC,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC;gBACpC,MAAM;QACV,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACjD,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"sync-rules-provider.js","sourceRoot":"","sources":["../../../../src/util/config/sync-rules/sync-rules-provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,aAAa,CAAC;AAQ7B,MAAM,OAAO,kCAAkC;IACzB;IAApB,YAAoB,MAAuB;QAAvB,WAAM,GAAN,MAAM,CAAiB;IAAG,CAAC;IAE/C,KAAK,CAAC,GAAG;QACP,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAC7B,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5B,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;IACnC,CAAC;CACF"}
1
+ {"version":3,"file":"sync-rules-provider.js","sourceRoot":"","sources":["../../../../src/util/config/sync-rules/sync-rules-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,aAAa,CAAC;AAS7B,MAAM,OAAO,kCAAkC;IACzB;IAApB,YAAoB,MAAuB;QAAvB,WAAM,GAAN,MAAM,CAAiB;IAAG,CAAC;IAE/C,KAAK,CAAC,GAAG;QACP,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAC7B,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5B,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;IACnC,CAAC;CACF"}
@@ -1,6 +1,6 @@
1
1
  import * as fs from 'fs/promises';
2
2
  import winston from 'winston';
3
- import { container, logger, LogFormat, DEFAULT_LOG_LEVEL, DEFAULT_LOG_FORMAT } from '@powersync/lib-services-framework';
3
+ import { container, DEFAULT_LOG_FORMAT, DEFAULT_LOG_LEVEL, LogFormat, logger } from '@powersync/lib-services-framework';
4
4
  import { CompoundConfigCollector } from './util-index.js';
5
5
  export function configureLogger(config) {
6
6
  const level = process.env.PS_LOG_LEVEL ?? config?.level ?? DEFAULT_LOG_LEVEL;
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/util/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAGxH,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,MAAM,UAAU,eAAe,CAAC,MAAiC;IAC/D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,MAAM,EAAE,KAAK,IAAI,iBAAiB,CAAC;IAC7E,MAAM,MAAM,GACT,OAAO,CAAC,GAAG,CAAC,aAAoD,IAAI,MAAM,EAAE,MAAM,IAAI,kBAAkB,CAAC;IAC5G,MAAM,aAAa,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC;IAEvF,2JAA2J;IAC3J,8EAA8E;IAC9E,MAAM,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACtH,MAAM,CAAC,IAAI,CAAC,iCAAiC,KAAK,iBAAiB,MAAM,GAAG,CAAC,CAAC;IAE9E,MAAM,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AACrG,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,YAA0B;IACzD,MAAM,SAAS,GAAG,SAAS,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IAC3D,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAA+B;IACjE,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACrC,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACvB,OAAO,UAAU,CAAC,OAAO,CAAC;IAC5B,CAAC;SAAM,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;QAC3B,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/util/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAGxH,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,MAAM,UAAU,eAAe,CAAC,MAAiC;IAC/D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,MAAM,EAAE,KAAK,IAAI,iBAAiB,CAAC;IAC7E,MAAM,MAAM,GACT,OAAO,CAAC,GAAG,CAAC,aAAoD,IAAI,MAAM,EAAE,MAAM,IAAI,kBAAkB,CAAC;IAC5G,MAAM,aAAa,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC;IAEvF,2JAA2J;IAC3J,8EAA8E;IAC9E,MAAM,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACtH,MAAM,CAAC,IAAI,CAAC,iCAAiC,KAAK,iBAAiB,MAAM,GAAG,CAAC,CAAC;IAE9E,MAAM,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AACrG,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,YAA0B;IACzD,MAAM,SAAS,GAAG,SAAS,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IAC3D,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAA+B;IACjE,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACrC,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACvB,OAAO,UAAU,CAAC,OAAO,CAAC;IAC5B,CAAC;SAAM,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;QAC3B,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { YamlError } from '@powersync/service-sync-rules';
2
+ import { ReplicationError } from '@powersync/service-types';
3
+ export declare function syncConfigYamlErrorToReplicationError({ type, message, location }: YamlError, ts?: string): ReplicationError;
@@ -0,0 +1,15 @@
1
+ export function syncConfigYamlErrorToReplicationError({ type, message, location }, ts) {
2
+ const error = {
3
+ level: type,
4
+ message,
5
+ ts
6
+ };
7
+ if (location != null) {
8
+ error.location = {
9
+ start_offset: location.start,
10
+ end_offset: location.end
11
+ };
12
+ }
13
+ return error;
14
+ }
15
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/util/errors.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,qCAAqC,CACnD,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAa,EACtC,EAAW;IAEX,MAAM,KAAK,GAAqB;QAC9B,KAAK,EAAE,IAAI;QACX,OAAO;QACP,EAAE;KACH,CAAC;IACF,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;QACrB,KAAK,CAAC,QAAQ,GAAG;YACf,YAAY,EAAE,QAAQ,CAAC,KAAK;YAC5B,UAAU,EAAE,QAAQ,CAAC,GAAG;SACzB,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -102,15 +102,15 @@ export declare const StreamingSyncRequest: t.ObjectCodec<{
102
102
  */
103
103
  streams: t.OptionalCodec<t.Codec<{
104
104
  subscriptions: {
105
- parameters: Record<string, any> | null;
106
105
  stream: string;
106
+ parameters: Record<string, any> | null;
107
107
  override_priority: number | null;
108
108
  }[];
109
109
  include_defaults?: boolean | undefined;
110
110
  }, {
111
111
  subscriptions: {
112
- parameters: Record<string, any> | null;
113
112
  stream: string;
113
+ parameters: Record<string, any> | null;
114
114
  override_priority: number | null;
115
115
  }[];
116
116
  include_defaults?: boolean | undefined;
@@ -1,4 +1,5 @@
1
1
  export * from './alerting.js';
2
+ export * from './checkpointing.js';
2
3
  export * from './env.js';
3
4
  export * from './lsn.js';
4
5
  export * from './memory-tracking.js';
@@ -6,7 +7,6 @@ export * from './Mutex.js';
6
7
  export * from './protocol-types.js';
7
8
  export * from './secs.js';
8
9
  export * from './utils.js';
9
- export * from './checkpointing.js';
10
10
  export * from './version.js';
11
11
  export * from './config.js';
12
12
  export * from './config/compound-config-collector.js';
@@ -1,4 +1,5 @@
1
1
  export * from './alerting.js';
2
+ export * from './checkpointing.js';
2
3
  export * from './env.js';
3
4
  export * from './lsn.js';
4
5
  export * from './memory-tracking.js';
@@ -6,7 +7,6 @@ export * from './Mutex.js';
6
7
  export * from './protocol-types.js';
7
8
  export * from './secs.js';
8
9
  export * from './utils.js';
9
- export * from './checkpointing.js';
10
10
  export * from './version.js';
11
11
  export * from './config.js';
12
12
  export * from './config/compound-config-collector.js';
@@ -1 +1 @@
1
- {"version":3,"file":"util-index.js","sourceRoot":"","sources":["../../src/util/util-index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAE7B,cAAc,aAAa,CAAC;AAC5B,cAAc,uCAAuC,CAAC;AACtD,cAAc,mBAAmB,CAAC;AAElC,cAAc,yCAAyC,CAAC;AACxD,cAAc,qDAAqD,CAAC;AACpE,cAAc,uDAAuD,CAAC;AACtE,cAAc,yDAAyD,CAAC;AAExE,cAAc,yDAAyD,CAAC;AACxE,cAAc,6DAA6D,CAAC;AAC5E,cAAc,yDAAyD,CAAC;AACxE,cAAc,uCAAuC,CAAC;AACtD,cAAc,4CAA4C,CAAC"}
1
+ {"version":3,"file":"util-index.js","sourceRoot":"","sources":["../../src/util/util-index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAE7B,cAAc,aAAa,CAAC;AAC5B,cAAc,uCAAuC,CAAC;AACtD,cAAc,mBAAmB,CAAC;AAElC,cAAc,yCAAyC,CAAC;AACxD,cAAc,qDAAqD,CAAC;AACpE,cAAc,uDAAuD,CAAC;AACtE,cAAc,yDAAyD,CAAC;AAExE,cAAc,yDAAyD,CAAC;AACxE,cAAc,6DAA6D,CAAC;AAC5E,cAAc,yDAAyD,CAAC;AACxE,cAAc,uCAAuC,CAAC;AACtD,cAAc,4CAA4C,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import * as sync_rules from '@powersync/service-sync-rules';
2
2
  import * as bson from 'bson';
3
- import { BucketChecksum, ProtocolOpId, OplogEntry } from './protocol-types.js';
3
+ import { BucketChecksum, OplogEntry, ProtocolOpId } from './protocol-types.js';
4
4
  import * as storage from '../storage/storage-index.js';
5
5
  export type ChecksumMap = Map<string, BucketChecksum>;
6
6
  /**
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
8
- "version": "1.20.4",
8
+ "version": "1.20.5",
9
9
  "main": "dist/index.js",
10
10
  "license": "FSL-1.1-ALv2",
11
11
  "type": "module",
@@ -33,11 +33,11 @@
33
33
  "uuid": "^11.1.0",
34
34
  "winston": "^3.13.0",
35
35
  "yaml": "^2.3.2",
36
- "@powersync/lib-services-framework": "0.9.2",
36
+ "@powersync/lib-services-framework": "0.9.3",
37
+ "@powersync/service-rsocket-router": "0.2.19",
37
38
  "@powersync/service-jsonbig": "0.17.12",
38
- "@powersync/service-rsocket-router": "0.2.18",
39
- "@powersync/service-sync-rules": "0.34.1",
40
- "@powersync/service-types": "0.15.0"
39
+ "@powersync/service-sync-rules": "0.35.0",
40
+ "@powersync/service-types": "0.15.1"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@types/async": "^3.2.24",
@@ -14,6 +14,16 @@ export interface ReplicationLagOptions {
14
14
  bucketStorage: SyncRulesBucketStorage;
15
15
  }
16
16
 
17
+ export interface SlotWalBudgetInfo {
18
+ wal_status: string;
19
+ safe_wal_size?: number;
20
+ max_slot_wal_keep_size?: number;
21
+ }
22
+
23
+ export interface SlotWalBudgetOptions {
24
+ slotName: string;
25
+ }
26
+
17
27
  /**
18
28
  * Describes all the methods currently required to service the sync API endpoints.
19
29
  */
@@ -49,6 +59,13 @@ export interface RouteAPI {
49
59
  */
50
60
  getReplicationLagBytes(options: ReplicationLagOptions): Promise<number | undefined>;
51
61
 
62
+ /**
63
+ * @returns WAL budget information for the replication slot, or undefined
64
+ * if the slot doesn't exist or the source doesn't support this.
65
+ * Only implemented by the Postgres adapter.
66
+ */
67
+ getSlotWalBudget?(options: SlotWalBudgetOptions): Promise<SlotWalBudgetInfo | undefined>;
68
+
52
69
  /**
53
70
  * Get the current LSN or equivalent replication HEAD position identifier.
54
71
  *
@@ -1,4 +1,4 @@
1
+ export * from './api-metrics.js';
1
2
  export * from './diagnostics.js';
2
3
  export * from './RouteAPI.js';
3
4
  export * from './schema.js';
4
- export * from './api-metrics.js';
@@ -1,5 +1,5 @@
1
- import { MetricsEngine } from '../metrics/MetricsEngine.js';
2
1
  import { APIMetric } from '@powersync/service-types';
2
+ import { MetricsEngine } from '../metrics/MetricsEngine.js';
3
3
 
4
4
  /**
5
5
  * Create and register the core API metrics.
@@ -1,9 +1,10 @@
1
1
  import { logger } from '@powersync/lib-services-framework';
2
- import { DEFAULT_TAG, SourceTableInterface, SqlSyncRules, SyncConfigWithErrors } from '@powersync/service-sync-rules';
2
+ import { DEFAULT_TAG, SourceTableInterface, SyncConfigWithErrors } from '@powersync/service-sync-rules';
3
3
  import { ReplicationError, SyncRulesStatus, TableInfo } from '@powersync/service-types';
4
4
 
5
5
  import * as storage from '../storage/storage-index.js';
6
- import { RouteAPI } from './RouteAPI.js';
6
+ import { syncConfigYamlErrorToReplicationError } from '../util/errors.js';
7
+ import { RouteAPI, SlotWalBudgetInfo } from './RouteAPI.js';
7
8
 
8
9
  export interface DiagnosticsOptions {
9
10
  /**
@@ -62,6 +63,7 @@ export async function getSyncRulesStatus(
62
63
  const systemStorage = live_status ? bucketStorage.getInstance(sync_rules) : undefined;
63
64
  const status = await systemStorage?.getStatus();
64
65
  let replication_lag_bytes: number | undefined = undefined;
66
+ let slot_wal_budget: SlotWalBudgetInfo | undefined = undefined;
65
67
 
66
68
  let tables_flat: TableInfo[] = [];
67
69
 
@@ -87,6 +89,16 @@ export async function getSyncRulesStatus(
87
89
  // Ignore
88
90
  logger.warn(`Unable to get replication lag`, e);
89
91
  }
92
+
93
+ if (apiHandler.getSlotWalBudget) {
94
+ try {
95
+ slot_wal_budget = await apiHandler.getSlotWalBudget({
96
+ slotName: sync_rules.slot_name
97
+ });
98
+ } catch (e) {
99
+ logger.warn(`Unable to get WAL budget`, e);
100
+ }
101
+ }
90
102
  }
91
103
  } else {
92
104
  const source_table_patterns = rules.getSourceTables();
@@ -131,23 +143,7 @@ export async function getSyncRulesStatus(
131
143
  ts: sync_rules.last_fatal_error_ts?.toISOString()
132
144
  });
133
145
  }
134
- errors.push(
135
- ...syncRuleErrors.map(({ type, message, location }) => {
136
- const error: ReplicationError = {
137
- level: type,
138
- message,
139
- ts: now
140
- };
141
- if (location != null) {
142
- error.location = {
143
- start_offset: location.start,
144
- end_offset: location.end
145
- };
146
- }
147
-
148
- return error;
149
- })
150
- );
146
+ errors.push(...syncRuleErrors.map((error) => syncConfigYamlErrorToReplicationError(error, now)));
151
147
 
152
148
  if (live_status && status?.active) {
153
149
  // Check replication lag for active sync rules.
@@ -197,6 +193,9 @@ export async function getSyncRulesStatus(
197
193
  last_checkpoint_ts: sync_rules.last_checkpoint_ts?.toISOString(),
198
194
  last_keepalive_ts: sync_rules.last_keepalive_ts?.toISOString(),
199
195
  replication_lag_bytes: replication_lag_bytes,
196
+ wal_status: slot_wal_budget?.wal_status,
197
+ safe_wal_size: slot_wal_budget?.safe_wal_size,
198
+ max_slot_wal_keep_size: slot_wal_budget?.max_slot_wal_keep_size,
200
199
  tables: tables_flat
201
200
  }
202
201
  ],
@@ -1,9 +1,8 @@
1
- import * as jose from 'jose';
1
+ import { AuthorizationError, ErrorCode, logger } from '@powersync/lib-services-framework';
2
2
  import timers from 'timers/promises';
3
+ import { KeyCollector, KeyResult } from './KeyCollector.js';
3
4
  import { KeySpec } from './KeySpec.js';
4
5
  import { LeakyBucket } from './LeakyBucket.js';
5
- import { KeyCollector, KeyResult } from './KeyCollector.js';
6
- import { AuthorizationError, ErrorCode, logger } from '@powersync/lib-services-framework';
7
6
  import { mapAuthConfigError } from './utils.js';
8
7
 
9
8
  /**
@@ -1,7 +1,6 @@
1
- import * as jose from 'jose';
2
- import { KeySpec } from './KeySpec.js';
3
- import { KeyCollector, KeyResult } from './KeyCollector.js';
4
1
  import { AuthorizationError } from '@powersync/lib-services-framework';
2
+ import { KeyCollector, KeyResult } from './KeyCollector.js';
3
+ import { KeySpec } from './KeySpec.js';
5
4
 
6
5
  export class CompoundKeyCollector implements KeyCollector {
7
6
  private collectors: KeyCollector[];
@@ -4,7 +4,7 @@ import secs from '../util/secs.js';
4
4
  import { JwtPayload } from './JwtPayload.js';
5
5
  import { KeyCollector } from './KeyCollector.js';
6
6
  import { KeyOptions, KeySpec, SUPPORTED_ALGORITHMS } from './KeySpec.js';
7
- import { debugKeyNotFound, mapAuthError, SupabaseAuthDetails, tokenDebugDetails } from './utils.js';
7
+ import { debugKeyNotFound, mapAuthError, SupabaseAuthDetails } from './utils.js';
8
8
 
9
9
  /**
10
10
  * KeyStore to get keys and verify tokens.
@@ -1,6 +1,5 @@
1
1
  import * as http from 'http';
2
2
  import * as https from 'https';
3
- import * as jose from 'jose';
4
3
  import fetch from 'node-fetch';
5
4
 
6
5
  import {
@@ -1,6 +1,6 @@
1
1
  import * as jose from 'jose';
2
- import { KeySpec } from './KeySpec.js';
3
2
  import { KeyCollector, KeyResult } from './KeyCollector.js';
3
+ import { KeySpec } from './KeySpec.js';
4
4
 
5
5
  /**
6
6
  * Set of static keys.
@@ -1,6 +1,6 @@
1
1
  import * as jose from 'jose';
2
- import { KeySpec, KeyOptions } from './KeySpec.js';
3
2
  import { KeyCollector, KeyResult } from './KeyCollector.js';
3
+ import { KeyOptions, KeySpec } from './KeySpec.js';
4
4
 
5
5
  export const SUPABASE_KEY_OPTIONS: KeyOptions = {
6
6
  requiresAudience: ['authenticated'],
@@ -1,8 +1,8 @@
1
1
  import { Command } from 'commander';
2
2
 
3
+ import { ErrorCode, ServiceError } from '@powersync/lib-services-framework';
3
4
  import { teardown } from '../../runner/teardown.js';
4
5
  import { extractRunnerOptions, wrapConfigCommand } from './config-command.js';
5
- import { ErrorCode, ServiceError } from '@powersync/lib-services-framework';
6
6
 
7
7
  const COMMAND_NAME = 'teardown';
8
8
 
@@ -1,6 +1,6 @@
1
1
  export * from './cli-entry.js';
2
+ export * from './commands/compact-action.js';
2
3
  export * from './commands/config-command.js';
3
4
  export * from './commands/migrate-action.js';
4
5
  export * from './commands/start-action.js';
5
6
  export * from './commands/teardown-action.js';
6
- export * from './commands/compact-action.js';
@@ -1,6 +1,6 @@
1
- import EventEmitter from 'node:events';
2
1
  import { logger } from '@powersync/lib-services-framework';
3
2
  import { event_types } from '@powersync/service-types';
3
+ import EventEmitter from 'node:events';
4
4
 
5
5
  export class EventsEngine {
6
6
  private emitter: EventEmitter;
@@ -1,5 +1,5 @@
1
1
  import { logger, ServiceAssertionError } from '@powersync/lib-services-framework';
2
- import { Counter, UpDownCounter, ObservableGauge, MetricMetadata, MetricsFactory } from './metrics-interfaces.js';
2
+ import { Counter, MetricMetadata, MetricsFactory, ObservableGauge, UpDownCounter } from './metrics-interfaces.js';
3
3
 
4
4
  export interface MetricsEngineOptions {
5
5
  factory: MetricsFactory;
@@ -1,6 +1,6 @@
1
- export * from './MetricsEngine.js';
2
1
  export * from './metrics-interfaces.js';
3
- export * from './RollingBucketMax.js';
4
- export * from './register-metrics.js';
2
+ export * from './MetricsEngine.js';
5
3
  export * from './open-telemetry/OpenTelemetryMetricsFactory.js';
6
4
  export * from './open-telemetry/util.js';
5
+ export * from './register-metrics.js';
6
+ export * from './RollingBucketMax.js';
@@ -6,8 +6,8 @@ import { ServiceContext } from '../../system/ServiceContext.js';
6
6
  import { MetricsFactory } from '../metrics-interfaces.js';
7
7
  import { OpenTelemetryMetricsFactory } from './OpenTelemetryMetricsFactory.js';
8
8
 
9
- import pkg from '../../../package.json' with { type: 'json' };
10
9
  import { resourceFromAttributes } from '@opentelemetry/resources';
10
+ import pkg from '../../../package.json' with { type: 'json' };
11
11
 
12
12
  export function createOpenTelemetryMetricsFactory(context: ServiceContext): MetricsFactory {
13
13
  const { configuration, lifeCycleEngine, storageEngine } = context;
@@ -1,9 +1,9 @@
1
- import { ServiceContextContainer } from '../system/ServiceContext.js';
2
- import { createOpenTelemetryMetricsFactory } from './open-telemetry/util.js';
3
- import { MetricsEngine } from './MetricsEngine.js';
4
1
  import { createCoreAPIMetrics, initializeCoreAPIMetrics } from '../api/api-metrics.js';
5
2
  import { createCoreReplicationMetrics, initializeCoreReplicationMetrics } from '../replication/replication-metrics.js';
6
3
  import { createCoreStorageMetrics, initializeCoreStorageMetrics } from '../storage/storage-metrics.js';
4
+ import { ServiceContextContainer } from '../system/ServiceContext.js';
5
+ import { MetricsEngine } from './MetricsEngine.js';
6
+ import { createOpenTelemetryMetricsFactory } from './open-telemetry/util.js';
7
7
 
8
8
  export enum MetricModes {
9
9
  API = 'api',
@@ -1,7 +1,7 @@
1
- import { ServiceContextContainer } from '../system/ServiceContext.js';
2
1
  import { logger } from '@powersync/lib-services-framework';
3
2
  import winston from 'winston';
4
3
  import { PersistedSyncRulesContent } from '../storage/storage-index.js';
4
+ import { ServiceContextContainer } from '../system/ServiceContext.js';
5
5
 
6
6
  export interface TearDownOptions {
7
7
  /**
@@ -1,3 +1,3 @@
1
- export * from './ModuleManager.js';
2
1
  export * from './AbstractModule.js';
3
2
  export * from './loader.js';
3
+ export * from './ModuleManager.js';
@@ -1,8 +1,8 @@
1
1
  import { container, logger } from '@powersync/lib-services-framework';
2
2
  import winston from 'winston';
3
+ import { MetricsEngine } from '../metrics/MetricsEngine.js';
3
4
  import * as storage from '../storage/storage-index.js';
4
5
  import { ErrorRateLimiter } from './ErrorRateLimiter.js';
5
- import { MetricsEngine } from '../metrics/MetricsEngine.js';
6
6
 
7
7
  export interface AbstractReplicationJobOptions {
8
8
  id: string;
@@ -1,8 +1,8 @@
1
1
  export * from './AbstractReplicationJob.js';
2
2
  export * from './AbstractReplicator.js';
3
3
  export * from './ErrorRateLimiter.js';
4
- export * from './ReplicationLagTracker.js';
4
+ export * from './RelationCache.js';
5
+ export * from './replication-metrics.js';
5
6
  export * from './ReplicationEngine.js';
7
+ export * from './ReplicationLagTracker.js';
6
8
  export * from './ReplicationModule.js';
7
- export * from './replication-metrics.js';
8
- export * from './RelationCache.js';
@@ -1,5 +1,5 @@
1
- import { MetricsEngine } from '../metrics/metrics-index.js';
2
1
  import { ReplicationMetric } from '@powersync/service-types';
2
+ import { MetricsEngine } from '../metrics/metrics-index.js';
3
3
 
4
4
  /**
5
5
  * Create and register the core replication metrics.
@@ -4,9 +4,9 @@ import type { FastifyPluginAsync } from 'fastify';
4
4
  import * as t from 'ts-codec';
5
5
 
6
6
  import { RouteAPI } from '../../api/RouteAPI.js';
7
+ import { updateSyncRulesFromConfig, updateSyncRulesFromYaml } from '../../storage/BucketStorageFactory.js';
7
8
  import { authApi } from '../auth.js';
8
9
  import { routeDefinition } from '../router.js';
9
- import { updateSyncRulesFromConfig, updateSyncRulesFromYaml } from '../../storage/BucketStorageFactory.js';
10
10
 
11
11
  const DeploySyncRulesRequest = t.object({
12
12
  content: t.string
@@ -56,7 +56,7 @@ export const deploySyncRules = routeDefinition({
56
56
 
57
57
  try {
58
58
  const apiHandler = service_context.routerEngine.getAPI();
59
- syncConfig = SqlSyncRules.fromYaml(payload.params.content, {
59
+ syncConfig = SqlSyncRules.fromYaml(content, {
60
60
  ...apiHandler.getParseSyncRulesOptions(),
61
61
  // We don't do any schema-level validation at this point
62
62
  schema: undefined
@@ -70,9 +70,7 @@ export const deploySyncRules = routeDefinition({
70
70
  });
71
71
  }
72
72
 
73
- const sync_rules = await storageEngine.activeBucketStorage.updateSyncRules(
74
- updateSyncRulesFromConfig(syncConfig.config)
75
- );
73
+ const sync_rules = await storageEngine.activeBucketStorage.updateSyncRules(updateSyncRulesFromConfig(syncConfig));
76
74
 
77
75
  return {
78
76
  slot_name: sync_rules.slot_name
@@ -1,6 +1,6 @@
1
- import type fastify from 'fastify';
2
- import a from 'async';
3
1
  import { logger } from '@powersync/lib-services-framework';
2
+ import a from 'async';
3
+ import type fastify from 'fastify';
4
4
 
5
5
  export type CreateRequestQueueParams = {
6
6
  max_queue_depth: number;
@@ -1,17 +1,9 @@
1
1
  import type fastify from 'fastify';
2
2
  import * as uuid from 'uuid';
3
3
 
4
- import {
5
- ErrorCode,
6
- errors,
7
- HTTPMethod,
8
- logger,
9
- RouteNotFound,
10
- router,
11
- ServiceError
12
- } from '@powersync/lib-services-framework';
13
- import { Context, ContextProvider, RequestEndpoint, RequestEndpointHandlerPayload } from './router.js';
4
+ import { errors, HTTPMethod, logger, RouteNotFound, router, ServiceError } from '@powersync/lib-services-framework';
14
5
  import { FastifyReply } from 'fastify';
6
+ import { Context, ContextProvider, RequestEndpoint, RequestEndpointHandlerPayload } from './router.js';
15
7
 
16
8
  export type FastifyEndpoint<I, O, C> = RequestEndpoint<I, O, C> & {
17
9
  parse?: boolean;
@@ -1,10 +1,10 @@
1
1
  import { ObserverClient } from '@powersync/lib-services-framework';
2
2
  import { EvaluatedParameters, EvaluatedRow, SqliteRow, ToastableSqliteRow } from '@powersync/service-sync-rules';
3
3
  import { BSON } from 'bson';
4
+ import { InternalOpId } from '../util/utils.js';
4
5
  import { ReplicationEventPayload } from './ReplicationEventPayload.js';
5
6
  import { SourceTable, TableSnapshotStatus } from './SourceTable.js';
6
7
  import { BatchedCustomWriteCheckpointOptions } from './storage-index.js';
7
- import { InternalOpId } from '../util/utils.js';
8
8
 
9
9
  export const DEFAULT_BUCKET_BATCH_COMMIT_OPTIONS: ResolvedBucketBatchCommitOptions = {
10
10
  createEmptyCheckpoints: true,