@powersync/service-module-postgres-storage 0.0.0-dev-20260909133214 → 0.0.0-dev-20260929095716

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 CHANGED
@@ -1,15 +1,54 @@
1
1
  # @powersync/service-module-postgres-storage
2
2
 
3
- ## 0.0.0-dev-20260909133214
4
-
5
- ### Patch Changes
6
-
7
- - Updated dependencies [70b00a4]
8
- - @powersync/service-sync-rules@0.0.0-dev-20260909133214
9
- - @powersync/lib-services-framework@0.0.0-dev-20260909133214
10
- - @powersync/service-jpgwire@0.0.0-dev-20260909133214
11
- - @powersync/service-core@0.0.0-dev-20260909133214
12
- - @powersync/lib-service-postgres@0.0.0-dev-20260909133214
3
+ ## 0.0.0-dev-20260929095716
4
+
5
+ ### Patch Changes
6
+
7
+ - c8e8b75: Add `config.connections` to edition 3 sync configs. The common structure allows a connection type and empty table options; module-specific options require a registered parser that declares and parses them.
8
+
9
+ ```yaml
10
+ config:
11
+ edition: 3
12
+ connections:
13
+ default:
14
+ type: mongodb
15
+ tables:
16
+ my_table: {}
17
+ streams:
18
+ my_table:
19
+ query: SELECT * FROM my_table
20
+ ```
21
+
22
+ Plans with parsed connection options or required module IDs use sync-plan format 3. Plans without either retain formats 1 and 2. Changed connection options require replacement processing when a new sync config is deployed.
23
+
24
+ Add a shared service-context parser with module registration hooks for schema extension, parsing, and persisted validation. Validation routes, deployments, replication, and saved-config loading use this parser. Saved plans fail to load when a required module is unavailable.
25
+
26
+ - Updated dependencies [0483d4e]
27
+ - Updated dependencies [c8e8b75]
28
+ - Updated dependencies [28f024b]
29
+ - Updated dependencies [424bbc0]
30
+ - Updated dependencies [b70f467]
31
+ - Updated dependencies [18f0c95]
32
+ - Updated dependencies [c60db6e]
33
+ - Updated dependencies [0483d4e]
34
+ - Updated dependencies [a8c3f15]
35
+ - @powersync/service-core@0.0.0-dev-20260929095716
36
+ - @powersync/service-sync-rules@0.0.0-dev-20260929095716
37
+ - @powersync/lib-services-framework@0.0.0-dev-20260929095716
38
+ - @powersync/service-jpgwire@0.0.0-dev-20260929095716
39
+ - @powersync/lib-service-postgres@0.0.0-dev-20260929095716
40
+
41
+ ## 0.19.1
42
+
43
+ ### Patch Changes
44
+
45
+ - Updated dependencies [f842b4e]
46
+ - Updated dependencies [5ae6f75]
47
+ - @powersync/service-core@1.26.1
48
+ - @powersync/service-sync-rules@0.42.0
49
+ - @powersync/lib-services-framework@0.10.2
50
+ - @powersync/service-jpgwire@0.21.24
51
+ - @powersync/lib-service-postgres@0.5.5
13
52
 
14
53
  ## 0.19.0
15
54
 
@@ -15,7 +15,7 @@ export declare class PostgresBucketStorageFactory extends storage.BucketStorageF
15
15
  readonly db: lib_postgres.DatabaseClient;
16
16
  readonly replicationStreamNamePrefix: string;
17
17
  private activeStorageCache;
18
- constructor(options: PostgresBucketStorageOptions);
18
+ constructor(options: PostgresBucketStorageOptions, syncConfigParser: storage.SyncConfigParser);
19
19
  [Symbol.asyncDispose](): Promise<void>;
20
20
  prepareStatements(connection: pg_wire.PgConnection): Promise<void>;
21
21
  getInstance(replicationStream: storage.PersistedReplicationStream, options?: GetIntanceOptions): storage.SyncRulesBucketStorage;
@@ -13,8 +13,8 @@ export class PostgresBucketStorageFactory extends storage.BucketStorageFactory {
13
13
  db;
14
14
  replicationStreamNamePrefix;
15
15
  activeStorageCache;
16
- constructor(options) {
17
- super();
16
+ constructor(options, syncConfigParser) {
17
+ super({ syncConfigParser });
18
18
  this.options = options;
19
19
  this.db = new lib_postgres.DatabaseClient({
20
20
  config: options.config,
@@ -28,7 +28,12 @@ export class PostgresBucketStorageFactory extends storage.BucketStorageFactory {
28
28
  });
29
29
  }
30
30
  async [Symbol.asyncDispose]() {
31
- await this.db[Symbol.asyncDispose]();
31
+ try {
32
+ await super[Symbol.asyncDispose]();
33
+ }
34
+ finally {
35
+ await this.db[Symbol.asyncDispose]();
36
+ }
32
37
  }
33
38
  async prepareStatements(connection) {
34
39
  // It should be possible to prepare statements for some common operations here.
@@ -143,6 +148,7 @@ export class PostgresBucketStorageFactory extends storage.BucketStorageFactory {
143
148
  WHERE
144
149
  state = ${{ type: 'varchar', value: storage.SyncRuleState.PROCESSING }}
145
150
  `.execute();
151
+ // Uses the legacy sequence name "sync_rules_id_sequence" for backwards-compatibility. See AGENTS.md.
146
152
  const newSyncRulesRow = await db.sql `
147
153
  WITH
148
154
  next_id AS (
@@ -189,7 +195,7 @@ export class PostgresBucketStorageFactory extends storage.BucketStorageFactory {
189
195
  `
190
196
  .decoded(models.SyncRules)
191
197
  .first();
192
- return new PostgresPersistedReplicationStream(this.db, newSyncRulesRow);
198
+ return new PostgresPersistedReplicationStream(this.db, newSyncRulesRow, this.syncConfigParser);
193
199
  });
194
200
  }
195
201
  /**
@@ -311,7 +317,7 @@ export class PostgresBucketStorageFactory extends storage.BucketStorageFactory {
311
317
  `
312
318
  .decoded(models.SyncRules)
313
319
  .rows();
314
- return rows.map((row) => new PostgresPersistedReplicationStream(this.db, row));
320
+ return rows.map((row) => new PostgresPersistedReplicationStream(this.db, row, this.syncConfigParser));
315
321
  }
316
322
  async getStoppedReplicationStreams() {
317
323
  const rows = await this.db.sql `
@@ -324,10 +330,10 @@ export class PostgresBucketStorageFactory extends storage.BucketStorageFactory {
324
330
  `
325
331
  .decoded(models.SyncRules)
326
332
  .rows();
327
- return rows.map((row) => new PostgresPersistedReplicationStream(this.db, row));
333
+ return rows.map((row) => new PostgresPersistedReplicationStream(this.db, row, this.syncConfigParser));
328
334
  }
329
335
  resolvedSyncConfigFromRow(row, options = {}) {
330
- const stream = new PostgresPersistedReplicationStream(this.db, row);
336
+ const stream = new PostgresPersistedReplicationStream(this.db, row, this.syncConfigParser);
331
337
  const content = stream.syncConfigContent[0];
332
338
  const thisFactory = this;
333
339
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"PostgresBucketStorageFactory.js","sourceRoot":"","sources":["../../src/storage/PostgresBucketStorageFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PostgresBucketStorageFactory.js","sourceRoot":"","sources":["../../src/storage/PostgresBucketStorageFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqB,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAEhF,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,KAAK,YAAY,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,MAAM,EAAmC,MAAM,mBAAmB,CAAC;AAE5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,kCAAkC,EAAE,MAAM,oDAAoD,CAAC;AASxG,MAAM,OAAO,4BAA6B,SAAQ,OAAO,CAAC,oBAAoB;IAQhE;IAPZ,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IACrB,EAAE,CAA8B;IACzB,2BAA2B,CAAS;IAE5C,kBAAkB,CAA6C;IAEvE,YACY,OAAqC,EAC/C,gBAA0C;QAE1C,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAHlB,YAAO,GAAP,OAAO,CAA8B;QAI/C,IAAI,CAAC,EAAE,GAAG,IAAI,YAAY,CAAC,cAAc,CAAC;YACxC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,mBAAmB;YAC3B,oBAAoB,EAAE,CAAC,oBAAoB,CAAC;YAC5C,eAAe,EAAE,yBAAyB,EAAE;SAC7C,CAAC,CAAC;QACH,IAAI,CAAC,2BAA2B,GAAG,OAAO,CAAC,2BAA2B,CAAC;QAEvE,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC;YACvB,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC;SAC5E,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;QACrC,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;QACvC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,UAAgC;QACtD,+EAA+E;QAC/E,qCAAqC;IACvC,CAAC;IAED,WAAW,CACT,iBAAqD,EACrD,OAA2B;QAE3B,MAAM,eAAe,GAAG,IAAI,wBAAwB,CAAC;YACnD,OAAO,EAAE,IAAI;YACb,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,iBAAiB;YACjB,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY;YAC7C,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB;SACpD,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,EAAE,kBAAkB,EAAE,CAAC;YACjC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;QAC1E,CAAC;QACD,eAAe,CAAC,gBAAgB,CAAC;YAC/B,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE;gBACtB,KAAK,CAAC,gBAAgB,CAAC;oBACrB,gBAAgB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,CAAC;iBAC7F,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;QACH,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC1D,IAAI,gBAAgB,IAAI,IAAI,EAAE,CAAC;YAC7B,OAAO;gBACL,qBAAqB,EAAE,CAAC;gBACxB,qBAAqB,EAAE,CAAC;gBACxB,sBAAsB,EAAE,CAAC;gBACzB,yBAAyB,EAAE,CAAC;aAC7B,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAA;;;;;;;;;;;;KAY9B,CAAC,KAAK,EAKH,CAAC;QAEL,OAAO;YACL,qBAAqB,EAAE,MAAM,CAAC,KAAM,CAAC,qBAAqB,CAAC;YAC3D,qBAAqB,EAAE,MAAM,CAAC,KAAM,CAAC,oBAAoB,CAAC;YAC1D,sBAAsB,EAAE,MAAM,CAAC,KAAM,CAAC,qBAAqB,CAAC,GAAG,MAAM,CAAC,KAAM,CAAC,qBAAqB,CAAC;YACnG,yBAAyB,EAAE,CAAC;SAC7B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAA;;;;;KAKpC;aACE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;aACxB,KAAK,EAAE,CAAC;QACX,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,WAAW,CAAC,EAAE,CAAC;QACxB,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,YAAY,CAAC,mBAAmB,CAAC;YACvD,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,4BAA4B;SACnC,CAAC,CAAC;QACH,MAAM,WAAW,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YAChC,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAA;;;;aAIV,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE;OAC3C,CAAC,OAAO,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAA;;;;;KAKvC;aACE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;aACxB,KAAK,EAAE,CAAC;QACX,OAAO,cAAe,CAAC,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,MAAM,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,8BAA8B,CAC1D,MAAM,YAAY,CAAC,KAAK,CAAC,6BAA6B,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CACrE,CAAC;QAEF,OAAO;YACL,EAAE;YACF,IAAI,EAAE,YAAY,CAAC,wBAAwB;SAC5C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAuC;QAC3D,MAAM,cAAc,GAClB,OAAO,CAAC,cAAc;YACtB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc;YAC3C,IAAI,CAAC,OAAO,CAAC,qBAAqB;YAClC,OAAO,CAAC,uBAAuB,CAAC;QAClC,MAAM,aAAa,GAAG,OAAO,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;QACrE,IAAI,aAAa,IAAI,IAAI,IAAI,cAAc,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;YACzE,MAAM,IAAI,SAAS,CAAC,YAAY,CAC9B,SAAS,CAAC,SAAS,CAAC,WAAW,EAC/B,+BAA+B,cAAc,yBAAyB,CACvE,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;YACtC,MAAM,EAAE,CAAC,GAAG,CAAA;;;oBAGE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE;;oBAEtD,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,UAAU,EAAE;OACzE,CAAC,OAAO,EAAE,CAAC;YAEZ,qGAAqG;YACrG,MAAM,eAAe,GAAG,MAAM,EAAE,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;cAwB5B,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;cAC/C,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;cAC5C,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,UAAU,EAAE;;gBAE1D,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,2BAA2B,EAAE;;;;;;;;gBAQ5D,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;;cAEnE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE;cACvC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI,EAAE;;;;OAIhE;iBACE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;iBACzB,KAAK,EAAE,CAAC;YAEX,OAAO,IAAI,kCAAkC,CAAC,IAAI,CAAC,EAAE,EAAE,eAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAClG,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,wBAAwB,CAAC,aAA2C;QAChF,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;YACzC,OAAO;QACT,CAAC;QAED,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAA;;;;;;;;;;;KAWhB,CAAC,OAAO,EAAE,CAAC;QAEZ,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAA;;;;KAIhB,CAAC,OAAO,EAAE,CAAC;IACd,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,mBAA2B;QAClD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAEhD,+DAA+D;QAC/D,kGAAkG;QAClG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,IAAI,mBAAmB,EAAE,CAAC;YAC5E,gDAAgD;YAEhD,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;YAC3D,gCAAgC;YAChC,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAA;;;oBAGH,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;;iBAEzD,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,IAAI,EAAE,MAAM,EAAE;wBAClD,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;OAC7E,CAAC,OAAO,EAAE,CAAC;QACd,CAAC;aAAM,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,EAAE,OAAO,CAAC,mBAAmB,IAAI,mBAAmB,EAAE,CAAC;YACtF,8EAA8E;YAC9E,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;YAE7D,4EAA4E;YAC5E,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAA;;;oBAGH,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;;iBAE5D,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,IAAI,EAAE,MAAM,EAAE;wBACpD,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;OACzE,CAAC,OAAO,EAAE,CAAC;QACd,CAAC;aAAM,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,EAAE,OAAO,CAAC,mBAAmB,IAAI,mBAAmB,EAAE,CAAC;YACtF,6DAA6D;YAE7D,4EAA4E;YAC5E,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAA;;;oBAGH,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;;iBAE5D,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,IAAI,EAAE,MAAM,EAAE;wBACpD,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;OACzE,CAAC,OAAO,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAA;;;;;;kBAMrB,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;qBACrD,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;;;;;KAKzE;aACE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;aACzB,KAAK,EAAE,CAAC;QACX,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,yBAAyB,CAAC,SAAS,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAA;;;;;;kBAMf,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;;;;;KAKzE;aACE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;aACzB,KAAK,EAAE,CAAC;QAEX,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,gCAAgC;QACpC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAA;;;;;;kBAMhB,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;qBACrD,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;KAC5E;aACE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;aACzB,IAAI,EAAE,CAAC;QAEV,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,kCAAkC,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACxG,CAAC;IAED,KAAK,CAAC,4BAA4B;QAChC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAA;;;;;;kBAMhB,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;KACnE;aACE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;aACzB,IAAI,EAAE,CAAC;QAEV,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,kCAAkC,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACxG,CAAC;IAEO,yBAAyB,CAC/B,GAA4B,EAC5B,UAA4C,EAAE;QAE9C,MAAM,MAAM,GAAG,IAAI,kCAAkC,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC3F,MAAM,OAAO,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAG,IAAI,CAAC;QAEzB,OAAO;YACL,OAAO;YACP,iBAAiB,EAAE,MAAM;YACzB,IAAI,OAAO;gBACT,gDAAgD;gBAChD,+FAA+F;gBAC/F,wBAAwB;gBACxB,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;oBAC/B,MAAM,kBAAkB,GAAG,WAAW,CAAC,kBAAkB,CAAC;oBAC1D,IAAI,kBAAkB,EAAE,mBAAmB,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;wBAC1E,OAAO,kBAAkB,CAAC;oBAC5B,CAAC;gBACH,CAAC;gBAED,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBACjD,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;oBAC/B,WAAW,CAAC,kBAAkB,GAAG,QAAQ,CAAC;gBAC5C,CAAC;gBACD,OAAO,QAAQ,CAAC;YAClB,CAAC;SACF,CAAC;IACJ,CAAC;CACF"}
@@ -22,7 +22,7 @@ export class PostgresStorageProvider {
22
22
  replicationStreamNamePrefix: options.resolvedConfig.slot_name_prefix,
23
23
  checksumCacheTtlMs: options.resolvedConfig.api_parameters.bucket_count_cache_ttl_minutes * 60_000,
24
24
  defaultStorageVersion: decodedConfig.default_storage_version
25
- });
25
+ }, options.syncConfigParser);
26
26
  const reportStorageFactory = new PostgresReportStorage({
27
27
  config: normalizedConfig
28
28
  });
@@ -1 +1 @@
1
- {"version":3,"file":"PostgresStorageProvider.js","sourceRoot":"","sources":["../../src/storage/PostgresStorageProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAG3D,OAAO,EAAE,uBAAuB,EAAE,8BAA8B,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AACnH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,OAAO,uBAAuB;IAClC,IAAI,IAAI;QACN,OAAO,YAAY,CAAC,wBAAwB,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAkC;QACjD,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;QAEnC,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC;QACnC,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,gFAAgF;YAChF,MAAM,IAAI,KAAK,CACb,8DAA8D,OAAO,CAAC,IAAI,QAAQ,YAAY,CAAC,wBAAwB,EAAE,CAC1H,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GAAG,qBAAqB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5D,MAAM,gBAAgB,GAAG,8BAA8B,CAAC,aAAa,CAAC,CAAC;QACvE,MAAM,cAAc,GAAG,IAAI,4BAA4B,CAAC;YACtD,MAAM,EAAE,gBAAgB;YACxB,2BAA2B,EAAE,OAAO,CAAC,cAAc,CAAC,gBAAgB;YACpE,kBAAkB,EAAE,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,8BAA8B,GAAG,MAAM;YACjG,qBAAqB,EAAE,aAAa,CAAC,uBAAuB;SAC7D,CAAC,CAAC;QAEH,MAAM,oBAAoB,GAAG,IAAI,qBAAqB,CAAC;YACrD,MAAM,EAAE,gBAAgB;SACzB,CAAC,CAAC;QAEH,OAAO;YACL,aAAa,EAAE,oBAAoB;YACnC,OAAO,EAAE,cAAc;YACvB,QAAQ,EAAE,KAAK,IAAI,EAAE;gBACnB,MAAM,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC/C,MAAM,oBAAoB,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;YACvD,CAAC;YACD,QAAQ,EAAE,KAAK,IAAI,EAAE;gBACnB,MAAM,CAAC,IAAI,CAAC,kCAAkC,gBAAgB,CAAC,QAAQ,KAAK,CAAC,CAAC;gBAC9E,MAAM,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;gBACpC,MAAM,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC/C,MAAM,oBAAoB,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;gBACrD,OAAO,IAAI,CAAC;YACd,CAAC;SAC8B,CAAC;IACpC,CAAC;CACF"}
1
+ {"version":3,"file":"PostgresStorageProvider.js","sourceRoot":"","sources":["../../src/storage/PostgresStorageProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAG3D,OAAO,EAAE,uBAAuB,EAAE,8BAA8B,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AACnH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,OAAO,uBAAuB;IAClC,IAAI,IAAI;QACN,OAAO,YAAY,CAAC,wBAAwB,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAkC;QACjD,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;QAEnC,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC;QACnC,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,gFAAgF;YAChF,MAAM,IAAI,KAAK,CACb,8DAA8D,OAAO,CAAC,IAAI,QAAQ,YAAY,CAAC,wBAAwB,EAAE,CAC1H,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GAAG,qBAAqB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5D,MAAM,gBAAgB,GAAG,8BAA8B,CAAC,aAAa,CAAC,CAAC;QACvE,MAAM,cAAc,GAAG,IAAI,4BAA4B,CACrD;YACE,MAAM,EAAE,gBAAgB;YACxB,2BAA2B,EAAE,OAAO,CAAC,cAAc,CAAC,gBAAgB;YACpE,kBAAkB,EAAE,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,8BAA8B,GAAG,MAAM;YACjG,qBAAqB,EAAE,aAAa,CAAC,uBAAuB;SAC7D,EACD,OAAO,CAAC,gBAAgB,CACzB,CAAC;QAEF,MAAM,oBAAoB,GAAG,IAAI,qBAAqB,CAAC;YACrD,MAAM,EAAE,gBAAgB;SACzB,CAAC,CAAC;QAEH,OAAO;YACL,aAAa,EAAE,oBAAoB;YACnC,OAAO,EAAE,cAAc;YACvB,QAAQ,EAAE,KAAK,IAAI,EAAE;gBACnB,MAAM,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC/C,MAAM,oBAAoB,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;YACvD,CAAC;YACD,QAAQ,EAAE,KAAK,IAAI,EAAE;gBACnB,MAAM,CAAC,IAAI,CAAC,kCAAkC,gBAAgB,CAAC,QAAQ,KAAK,CAAC,CAAC;gBAC9E,MAAM,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;gBACpC,MAAM,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC/C,MAAM,oBAAoB,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;gBACrD,OAAO,IAAI,CAAC;YACd,CAAC;SAC8B,CAAC;IACpC,CAAC;CACF"}
@@ -3,15 +3,16 @@ import { storage } from '@powersync/service-core';
3
3
  import { models } from '../../types/types.js';
4
4
  export declare class PostgresPersistedSyncConfigContent extends storage.PersistedSyncConfigContent {
5
5
  private db;
6
- constructor(db: lib_postgres.DatabaseClient, row: models.SyncRulesDecoded);
6
+ constructor(db: lib_postgres.DatabaseClient, row: models.SyncRulesDecoded, syncConfigParser: storage.SyncConfigParser);
7
7
  getSyncConfigStatus(): Promise<storage.PersistedSyncConfigStatus | null>;
8
8
  }
9
9
  export declare class PostgresPersistedReplicationStream extends storage.PersistedReplicationStream {
10
10
  private db;
11
11
  private readonly row;
12
+ private readonly syncConfigParser;
12
13
  current_lock: storage.ReplicationLock | null;
13
14
  readonly syncConfigContent: readonly PostgresPersistedSyncConfigContent[];
14
- constructor(db: lib_postgres.DatabaseClient, row: models.SyncRulesDecoded);
15
+ constructor(db: lib_postgres.DatabaseClient, row: models.SyncRulesDecoded, syncConfigParser: storage.SyncConfigParser);
15
16
  parsed(options: storage.ParseSyncConfigOptions): storage.ParsedSyncConfigSet;
16
17
  lock(): Promise<storage.ReplicationLock>;
17
18
  }
@@ -4,7 +4,7 @@ import { storage } from '@powersync/service-core';
4
4
  import { models } from '../../types/types.js';
5
5
  export class PostgresPersistedSyncConfigContent extends storage.PersistedSyncConfigContent {
6
6
  db;
7
- constructor(db, row) {
7
+ constructor(db, row, syncConfigParser) {
8
8
  super({
9
9
  replicationStreamId: Number(row.id),
10
10
  sync_rules_content: row.content,
@@ -13,7 +13,7 @@ export class PostgresPersistedSyncConfigContent extends storage.PersistedSyncCon
13
13
  storageVersion: row.storage_version ?? storage.LEGACY_STORAGE_VERSION,
14
14
  syncConfigState: row.state,
15
15
  version_label: row.version_label ?? undefined
16
- });
16
+ }, syncConfigParser);
17
17
  this.db = db;
18
18
  }
19
19
  async getSyncConfigStatus() {
@@ -45,9 +45,10 @@ function syncConfigStatusFromRow(row) {
45
45
  export class PostgresPersistedReplicationStream extends storage.PersistedReplicationStream {
46
46
  db;
47
47
  row;
48
+ syncConfigParser;
48
49
  current_lock = null;
49
50
  syncConfigContent;
50
- constructor(db, row) {
51
+ constructor(db, row, syncConfigParser) {
51
52
  super({
52
53
  replicationStreamId: Number(row.id),
53
54
  replicationStreamName: row.slot_name,
@@ -56,10 +57,11 @@ export class PostgresPersistedReplicationStream extends storage.PersistedReplica
56
57
  });
57
58
  this.db = db;
58
59
  this.row = row;
60
+ this.syncConfigParser = syncConfigParser;
59
61
  if (this.storageVersion >= storage.STORAGE_VERSION_4) {
60
62
  throw new ServiceError(ErrorCode.PSYNC_S1005, `Unsupported storage version ${this.storageVersion} for PostgreSQL storage`);
61
63
  }
62
- this.syncConfigContent = [new PostgresPersistedSyncConfigContent(this.db, this.row)];
64
+ this.syncConfigContent = [new PostgresPersistedSyncConfigContent(this.db, this.row, this.syncConfigParser)];
63
65
  }
64
66
  parsed(options) {
65
67
  return this.syncConfigContent[0].parsed(options);
@@ -67,6 +69,7 @@ export class PostgresPersistedReplicationStream extends storage.PersistedReplica
67
69
  async lock() {
68
70
  const manager = new lib_postgres.PostgresLockManager({
69
71
  db: this.db,
72
+ // Uses the legacy "sync_rules_" lock name prefix for backwards-compatibility. See AGENTS.md.
70
73
  name: `sync_rules_${this.replicationStreamId}_${this.replicationStreamName}`
71
74
  });
72
75
  const lockHandle = await manager.acquire();
@@ -1 +1 @@
1
- {"version":3,"file":"PostgresPersistedSyncConfigContent.js","sourceRoot":"","sources":["../../../src/storage/sync-rules/PostgresPersistedSyncConfigContent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,MAAM,OAAO,kCAAmC,SAAQ,OAAO,CAAC,0BAA0B;IAE9E;IADV,YACU,EAA+B,EACvC,GAA4B;QAE5B,KAAK,CAAC;YACJ,mBAAmB,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,kBAAkB,EAAE,GAAG,CAAC,OAAO;YAC/B,aAAa,EAAE,GAAG,CAAC,SAAS;YAC5B,qBAAqB,EAAE,GAAG,CAAC,SAAS;YACpC,cAAc,EAAE,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,sBAAsB;YACrE,eAAe,EAAE,GAAG,CAAC,KAA8B;YACnD,aAAa,EAAE,GAAG,CAAC,aAAa,IAAI,SAAS;SAC9C,CAAC,CAAC;QAXK,OAAE,GAAF,EAAE,CAA6B;IAYzC,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAA;;;;;;eAMlB,EAAE,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,EAAE,MAAM,EAAE;KAC3D;aACE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;aACzB,KAAK,EAAE,CAAC;QAEX,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;IAC3D,CAAC;CACF;AAED,SAAS,uBAAuB,CAAC,GAA4B;IAC3D,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAClB,mBAAmB,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,KAAK,EAAE,GAAG,CAAC,KAA8B;QACzC,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,mBAAmB,EAAE,GAAG,CAAC,mBAAmB;QAC5C,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;QACtC,iBAAiB,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI;QACjF,kBAAkB,EAAE,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI;KACrF,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,kCAAmC,SAAQ,OAAO,CAAC,0BAA0B;IAK9E;IACS;IALnB,YAAY,GAAmC,IAAI,CAAC;IAC3C,iBAAiB,CAAgD;IAE1E,YACU,EAA+B,EACtB,GAA4B;QAE7C,KAAK,CAAC;YACJ,mBAAmB,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,qBAAqB,EAAE,GAAG,CAAC,SAAS;YACpC,KAAK,EAAE,GAAG,CAAC,KAA8B;YACzC,cAAc,EAAE,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,sBAAsB;SACtE,CAAC,CAAC;QARK,OAAE,GAAF,EAAE,CAA6B;QACtB,QAAG,GAAH,GAAG,CAAyB;QAQ7C,IAAI,IAAI,CAAC,cAAc,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;YACrD,MAAM,IAAI,YAAY,CACpB,SAAS,CAAC,WAAW,EACrB,+BAA+B,IAAI,CAAC,cAAc,yBAAyB,CAC5E,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,kCAAkC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,CAAC,OAAuC;QAC5C,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,mBAAmB,CAAC;YACnD,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,cAAc,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,qBAAqB,EAAE;SAC7E,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,YAAY,CAAC,SAAS,CAAC,WAAW,EAAE,+DAA+D,CAAC,CAAC;QACjH,CAAC;QAED,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;YACtC,IAAI,CAAC;gBACH,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;YAC7B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC;gBAC/C,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC,EAAE,MAAM,CAAC,CAAC;QAEX,OAAO,CAAC,IAAI,CAAC,YAAY,GAAG;YAC1B,aAAa,EAAE,IAAI,CAAC,mBAAmB;YACvC,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACxB,OAAO,UAAU,CAAC,OAAO,EAAE,CAAC;YAC9B,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"PostgresPersistedSyncConfigContent.js","sourceRoot":"","sources":["../../../src/storage/sync-rules/PostgresPersistedSyncConfigContent.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
- import { framework, TestStorageOptions } from '@powersync/service-core';
1
+ import { framework, SyncConfigParser, TestStorageOptions } from '@powersync/service-core';
2
2
  import { PostgresMigrationAgent } from '../migrations/PostgresMigrationAgent.js';
3
3
  import { PostgresBucketStorageFactory } from '../storage/PostgresBucketStorageFactory.js';
4
4
  import { PostgresReportStorage } from '../storage/PostgresReportStorage.js';
5
5
  import { PostgresStorageConfigDecoded } from '../types/types.js';
6
6
  export type PostgresTestStorageOptions = {
7
7
  url: string;
8
+ syncConfigParser?: SyncConfigParser;
8
9
  /**
9
10
  * Vitest can cause issues when loading .ts files for migrations.
10
11
  * This allows for providing a custom PostgresMigrationAgent.
@@ -1,5 +1,5 @@
1
1
  import { createLogger, logger as defaultLogger, transports } from '@powersync/lib-services-framework';
2
- import { framework } from '@powersync/service-core';
2
+ import { framework, SqlSyncConfigParser } from '@powersync/service-core';
3
3
  import { PostgresMigrationAgent } from '../migrations/PostgresMigrationAgent.js';
4
4
  import { PostgresBucketStorageFactory } from '../storage/PostgresBucketStorageFactory.js';
5
5
  import { PostgresReportStorage } from '../storage/PostgresReportStorage.js';
@@ -55,7 +55,7 @@ export function postgresTestSetup(factoryOptions) {
55
55
  await using storageFactory = new PostgresBucketStorageFactory({
56
56
  config: TEST_CONNECTION_OPTIONS,
57
57
  replicationStreamNamePrefix: 'test_'
58
- });
58
+ }, factoryOptions.syncConfigParser ?? new SqlSyncConfigParser());
59
59
  await truncateTables(storageFactory.db);
60
60
  };
61
61
  return {
@@ -82,7 +82,7 @@ export function postgresTestSetup(factoryOptions) {
82
82
  return new PostgresBucketStorageFactory({
83
83
  config: TEST_CONNECTION_OPTIONS,
84
84
  replicationStreamNamePrefix: 'test_'
85
- });
85
+ }, factoryOptions.syncConfigParser ?? new SqlSyncConfigParser());
86
86
  }
87
87
  catch (ex) {
88
88
  // Vitest does not display these errors nicely when using the `await using` syntx
@@ -1 +1 @@
1
- {"version":3,"file":"test-utils.js","sourceRoot":"","sources":["../../src/utils/test-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-utils.js","sourceRoot":"","sources":["../../src/utils/test-utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@powersync/service-module-postgres-storage",
3
3
  "repository": "https://github.com/powersync-ja/powersync-service",
4
- "version": "0.0.0-dev-20260909133214",
4
+ "version": "0.0.0-dev-20260929095716",
5
5
  "license": "FSL-1.1-ALv2",
6
6
  "type": "module",
7
7
  "publishConfig": {
@@ -16,17 +16,17 @@
16
16
  "lru-cache": "^10.2.2",
17
17
  "ts-codec": "^1.3.0",
18
18
  "uuid": "^14.0.0",
19
- "@powersync/lib-service-postgres": "0.0.0-dev-20260909133214",
20
- "@powersync/lib-services-framework": "0.0.0-dev-20260909133214",
21
- "@powersync/service-core": "0.0.0-dev-20260909133214",
19
+ "@powersync/lib-service-postgres": "0.0.0-dev-20260929095716",
20
+ "@powersync/service-core": "0.0.0-dev-20260929095716",
21
+ "@powersync/lib-services-framework": "0.0.0-dev-20260929095716",
22
22
  "@powersync/service-types": "0.18.0",
23
- "@powersync/service-jpgwire": "0.0.0-dev-20260909133214",
24
23
  "@powersync/service-jsonbig": "0.17.13",
25
- "@powersync/service-sync-rules": "0.0.0-dev-20260909133214"
24
+ "@powersync/service-sync-rules": "0.0.0-dev-20260929095716",
25
+ "@powersync/service-jpgwire": "0.0.0-dev-20260929095716"
26
26
  },
27
27
  "devDependencies": {
28
28
  "typescript": "~6.0.3",
29
- "@powersync/service-core-tests": "0.0.0-dev-20260909133214"
29
+ "@powersync/service-core-tests": "0.0.0-dev-20260929095716"
30
30
  },
31
31
  "scripts": {
32
32
  "build": "tsc -b",
@@ -25,8 +25,11 @@ export class PostgresBucketStorageFactory extends storage.BucketStorageFactory {
25
25
 
26
26
  private activeStorageCache: storage.SyncRulesBucketStorage | undefined;
27
27
 
28
- constructor(protected options: PostgresBucketStorageOptions) {
29
- super();
28
+ constructor(
29
+ protected options: PostgresBucketStorageOptions,
30
+ syncConfigParser: storage.SyncConfigParser
31
+ ) {
32
+ super({ syncConfigParser });
30
33
  this.db = new lib_postgres.DatabaseClient({
31
34
  config: options.config,
32
35
  schema: STORAGE_SCHEMA_NAME,
@@ -41,7 +44,11 @@ export class PostgresBucketStorageFactory extends storage.BucketStorageFactory {
41
44
  }
42
45
 
43
46
  async [Symbol.asyncDispose]() {
44
- await this.db[Symbol.asyncDispose]();
47
+ try {
48
+ await super[Symbol.asyncDispose]();
49
+ } finally {
50
+ await this.db[Symbol.asyncDispose]();
51
+ }
45
52
  }
46
53
 
47
54
  async prepareStatements(connection: pg_wire.PgConnection) {
@@ -180,6 +187,7 @@ export class PostgresBucketStorageFactory extends storage.BucketStorageFactory {
180
187
  state = ${{ type: 'varchar', value: storage.SyncRuleState.PROCESSING }}
181
188
  `.execute();
182
189
 
190
+ // Uses the legacy sequence name "sync_rules_id_sequence" for backwards-compatibility. See AGENTS.md.
183
191
  const newSyncRulesRow = await db.sql`
184
192
  WITH
185
193
  next_id AS (
@@ -227,7 +235,7 @@ export class PostgresBucketStorageFactory extends storage.BucketStorageFactory {
227
235
  .decoded(models.SyncRules)
228
236
  .first();
229
237
 
230
- return new PostgresPersistedReplicationStream(this.db, newSyncRulesRow!);
238
+ return new PostgresPersistedReplicationStream(this.db, newSyncRulesRow!, this.syncConfigParser);
231
239
  });
232
240
  }
233
241
 
@@ -361,7 +369,7 @@ export class PostgresBucketStorageFactory extends storage.BucketStorageFactory {
361
369
  .decoded(models.SyncRules)
362
370
  .rows();
363
371
 
364
- return rows.map((row) => new PostgresPersistedReplicationStream(this.db, row));
372
+ return rows.map((row) => new PostgresPersistedReplicationStream(this.db, row, this.syncConfigParser));
365
373
  }
366
374
 
367
375
  async getStoppedReplicationStreams(): Promise<storage.PersistedReplicationStream[]> {
@@ -376,14 +384,14 @@ export class PostgresBucketStorageFactory extends storage.BucketStorageFactory {
376
384
  .decoded(models.SyncRules)
377
385
  .rows();
378
386
 
379
- return rows.map((row) => new PostgresPersistedReplicationStream(this.db, row));
387
+ return rows.map((row) => new PostgresPersistedReplicationStream(this.db, row, this.syncConfigParser));
380
388
  }
381
389
 
382
390
  private resolvedSyncConfigFromRow(
383
391
  row: models.SyncRulesDecoded,
384
392
  options: { cacheActiveStorage?: boolean } = {}
385
393
  ): storage.ResolvedSyncConfig {
386
- const stream = new PostgresPersistedReplicationStream(this.db, row);
394
+ const stream = new PostgresPersistedReplicationStream(this.db, row, this.syncConfigParser);
387
395
  const content = stream.syncConfigContent[0];
388
396
  const thisFactory = this;
389
397
 
@@ -25,12 +25,15 @@ export class PostgresStorageProvider implements storage.StorageProvider {
25
25
 
26
26
  const decodedConfig = PostgresStorageConfig.decode(storage);
27
27
  const normalizedConfig = normalizePostgresStorageConfig(decodedConfig);
28
- const storageFactory = new PostgresBucketStorageFactory({
29
- config: normalizedConfig,
30
- replicationStreamNamePrefix: options.resolvedConfig.slot_name_prefix,
31
- checksumCacheTtlMs: options.resolvedConfig.api_parameters.bucket_count_cache_ttl_minutes * 60_000,
32
- defaultStorageVersion: decodedConfig.default_storage_version
33
- });
28
+ const storageFactory = new PostgresBucketStorageFactory(
29
+ {
30
+ config: normalizedConfig,
31
+ replicationStreamNamePrefix: options.resolvedConfig.slot_name_prefix,
32
+ checksumCacheTtlMs: options.resolvedConfig.api_parameters.bucket_count_cache_ttl_minutes * 60_000,
33
+ defaultStorageVersion: decodedConfig.default_storage_version
34
+ },
35
+ options.syncConfigParser
36
+ );
34
37
 
35
38
  const reportStorageFactory = new PostgresReportStorage({
36
39
  config: normalizedConfig
@@ -6,17 +6,21 @@ import { models } from '../../types/types.js';
6
6
  export class PostgresPersistedSyncConfigContent extends storage.PersistedSyncConfigContent {
7
7
  constructor(
8
8
  private db: lib_postgres.DatabaseClient,
9
- row: models.SyncRulesDecoded
9
+ row: models.SyncRulesDecoded,
10
+ syncConfigParser: storage.SyncConfigParser
10
11
  ) {
11
- super({
12
- replicationStreamId: Number(row.id),
13
- sync_rules_content: row.content,
14
- compiled_plan: row.sync_plan,
15
- replicationStreamName: row.slot_name,
16
- storageVersion: row.storage_version ?? storage.LEGACY_STORAGE_VERSION,
17
- syncConfigState: row.state as storage.SyncRuleState,
18
- version_label: row.version_label ?? undefined
19
- });
12
+ super(
13
+ {
14
+ replicationStreamId: Number(row.id),
15
+ sync_rules_content: row.content,
16
+ compiled_plan: row.sync_plan,
17
+ replicationStreamName: row.slot_name,
18
+ storageVersion: row.storage_version ?? storage.LEGACY_STORAGE_VERSION,
19
+ syncConfigState: row.state as storage.SyncRuleState,
20
+ version_label: row.version_label ?? undefined
21
+ },
22
+ syncConfigParser
23
+ );
20
24
  }
21
25
 
22
26
  async getSyncConfigStatus(): Promise<storage.PersistedSyncConfigStatus | null> {
@@ -54,7 +58,8 @@ export class PostgresPersistedReplicationStream extends storage.PersistedReplica
54
58
 
55
59
  constructor(
56
60
  private db: lib_postgres.DatabaseClient,
57
- private readonly row: models.SyncRulesDecoded
61
+ private readonly row: models.SyncRulesDecoded,
62
+ private readonly syncConfigParser: storage.SyncConfigParser
58
63
  ) {
59
64
  super({
60
65
  replicationStreamId: Number(row.id),
@@ -68,7 +73,7 @@ export class PostgresPersistedReplicationStream extends storage.PersistedReplica
68
73
  `Unsupported storage version ${this.storageVersion} for PostgreSQL storage`
69
74
  );
70
75
  }
71
- this.syncConfigContent = [new PostgresPersistedSyncConfigContent(this.db, this.row)];
76
+ this.syncConfigContent = [new PostgresPersistedSyncConfigContent(this.db, this.row, this.syncConfigParser)];
72
77
  }
73
78
 
74
79
  parsed(options: storage.ParseSyncConfigOptions): storage.ParsedSyncConfigSet {
@@ -78,6 +83,7 @@ export class PostgresPersistedReplicationStream extends storage.PersistedReplica
78
83
  async lock(): Promise<storage.ReplicationLock> {
79
84
  const manager = new lib_postgres.PostgresLockManager({
80
85
  db: this.db,
86
+ // Uses the legacy "sync_rules_" lock name prefix for backwards-compatibility. See AGENTS.md.
81
87
  name: `sync_rules_${this.replicationStreamId}_${this.replicationStreamName}`
82
88
  });
83
89
  const lockHandle = await manager.acquire();
@@ -1,5 +1,12 @@
1
1
  import { createLogger, logger as defaultLogger, transports } from '@powersync/lib-services-framework';
2
- import { framework, PowerSyncMigrationManager, ServiceContext, TestStorageOptions } from '@powersync/service-core';
2
+ import {
3
+ framework,
4
+ PowerSyncMigrationManager,
5
+ ServiceContext,
6
+ SqlSyncConfigParser,
7
+ SyncConfigParser,
8
+ TestStorageOptions
9
+ } from '@powersync/service-core';
3
10
  import { PostgresMigrationAgent } from '../migrations/PostgresMigrationAgent.js';
4
11
  import { PostgresBucketStorageFactory } from '../storage/PostgresBucketStorageFactory.js';
5
12
  import { PostgresReportStorage } from '../storage/PostgresReportStorage.js';
@@ -8,6 +15,7 @@ import { truncateTables } from './db.js';
8
15
 
9
16
  export type PostgresTestStorageOptions = {
10
17
  url: string;
18
+ syncConfigParser?: SyncConfigParser;
11
19
  /**
12
20
  * Vitest can cause issues when loading .ts files for migrations.
13
21
  * This allows for providing a custom PostgresMigrationAgent.
@@ -71,10 +79,13 @@ export function postgresTestSetup(factoryOptions: PostgresTestStorageOptions) {
71
79
  const clearStorage = async () => {
72
80
  await runMigrations({ down: false, up: true });
73
81
 
74
- await using storageFactory = new PostgresBucketStorageFactory({
75
- config: TEST_CONNECTION_OPTIONS,
76
- replicationStreamNamePrefix: 'test_'
77
- });
82
+ await using storageFactory = new PostgresBucketStorageFactory(
83
+ {
84
+ config: TEST_CONNECTION_OPTIONS,
85
+ replicationStreamNamePrefix: 'test_'
86
+ },
87
+ factoryOptions.syncConfigParser ?? new SqlSyncConfigParser()
88
+ );
78
89
  await truncateTables(storageFactory.db);
79
90
  };
80
91
 
@@ -100,10 +111,13 @@ export function postgresTestSetup(factoryOptions: PostgresTestStorageOptions) {
100
111
  await clearStorage();
101
112
  }
102
113
 
103
- return new PostgresBucketStorageFactory({
104
- config: TEST_CONNECTION_OPTIONS,
105
- replicationStreamNamePrefix: 'test_'
106
- });
114
+ return new PostgresBucketStorageFactory(
115
+ {
116
+ config: TEST_CONNECTION_OPTIONS,
117
+ replicationStreamNamePrefix: 'test_'
118
+ },
119
+ factoryOptions.syncConfigParser ?? new SqlSyncConfigParser()
120
+ );
107
121
  } catch (ex) {
108
122
  // Vitest does not display these errors nicely when using the `await using` syntx
109
123
  console.error(ex, ex.cause);
@@ -1,3 +1,4 @@
1
+ import { SqlSyncConfigParser } from '@powersync/service-core';
1
2
  import { beforeEach, describe, expect, it } from 'vitest';
2
3
 
3
4
  import { Direction } from '@powersync/lib-services-framework';
@@ -16,10 +17,13 @@ describe('Migrations', () => {
16
17
  // The migration tests clear the migration store, without running the down migrations.
17
18
  // This ensures all the down migrations have been run before.
18
19
  const setup = POSTGRES_STORAGE_SETUP;
19
- await using factory = new PostgresBucketStorageFactory({
20
- config: TEST_CONNECTION_OPTIONS,
21
- replicationStreamNamePrefix: 'test_'
22
- });
20
+ await using factory = new PostgresBucketStorageFactory(
21
+ {
22
+ config: TEST_CONNECTION_OPTIONS,
23
+ replicationStreamNamePrefix: 'test_'
24
+ },
25
+ new SqlSyncConfigParser()
26
+ );
23
27
 
24
28
  await dropTables(factory.db);
25
29
  await setup.migrate(Direction.Down);