@powersync/web 1.6.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/README.md +1 -1
  2. package/dist/fe5d98632ac68b2022d7.wasm +0 -0
  3. package/dist/index.umd.js +40336 -0
  4. package/dist/index.umd.js.map +1 -0
  5. package/dist/worker/SharedSyncImplementation.umd.js +4174 -0
  6. package/dist/worker/SharedSyncImplementation.umd.js.map +1 -0
  7. package/dist/worker/WASQLiteDB.umd.js +2780 -0
  8. package/dist/worker/WASQLiteDB.umd.js.map +1 -0
  9. package/dist/worker/node_modules_bson_lib_bson_mjs.umd.js +4437 -0
  10. package/dist/worker/node_modules_bson_lib_bson_mjs.umd.js.map +1 -0
  11. package/dist/worker/node_modules_crypto-browserify_index_js.umd.js +33582 -0
  12. package/dist/worker/node_modules_crypto-browserify_index_js.umd.js.map +1 -0
  13. package/dist/worker/node_modules_journeyapps_wa-sqlite_dist_wa-sqlite-async_mjs.umd.js +175 -0
  14. package/dist/worker/node_modules_journeyapps_wa-sqlite_dist_wa-sqlite-async_mjs.umd.js.map +1 -0
  15. package/dist/worker/node_modules_journeyapps_wa-sqlite_src_examples_IDBBatchAtomicVFS_js.umd.js +1926 -0
  16. package/dist/worker/node_modules_journeyapps_wa-sqlite_src_examples_IDBBatchAtomicVFS_js.umd.js.map +1 -0
  17. package/lib/package.json +89 -0
  18. package/lib/src/db/PowerSyncDatabase.d.ts +19 -7
  19. package/lib/src/db/PowerSyncDatabase.js +1 -0
  20. package/lib/src/db/PowerSyncDatabase.js.map +1 -0
  21. package/lib/src/db/adapters/AbstractWebPowerSyncDatabaseOpenFactory.js +1 -0
  22. package/lib/src/db/adapters/AbstractWebPowerSyncDatabaseOpenFactory.js.map +1 -0
  23. package/lib/src/db/adapters/AbstractWebSQLOpenFactory.d.ts +2 -2
  24. package/lib/src/db/adapters/AbstractWebSQLOpenFactory.js +5 -4
  25. package/lib/src/db/adapters/AbstractWebSQLOpenFactory.js.map +1 -0
  26. package/lib/src/db/adapters/SSRDBAdapter.js +1 -0
  27. package/lib/src/db/adapters/SSRDBAdapter.js.map +1 -0
  28. package/lib/src/db/adapters/wa-sqlite/WASQLiteDBAdapter.d.ts +3 -2
  29. package/lib/src/db/adapters/wa-sqlite/WASQLiteDBAdapter.js +11 -3
  30. package/lib/src/db/adapters/wa-sqlite/WASQLiteDBAdapter.js.map +1 -0
  31. package/lib/src/db/adapters/wa-sqlite/WASQLiteOpenFactory.js +1 -0
  32. package/lib/src/db/adapters/wa-sqlite/WASQLiteOpenFactory.js.map +1 -0
  33. package/lib/src/db/adapters/wa-sqlite/WASQLitePowerSyncDatabaseOpenFactory.js +1 -0
  34. package/lib/src/db/adapters/wa-sqlite/WASQLitePowerSyncDatabaseOpenFactory.js.map +1 -0
  35. package/lib/src/db/adapters/web-sql-flags.d.ts +13 -2
  36. package/lib/src/db/adapters/web-sql-flags.js +1 -0
  37. package/lib/src/db/adapters/web-sql-flags.js.map +1 -0
  38. package/lib/src/db/sync/SSRWebStreamingSyncImplementation.d.ts +34 -2
  39. package/lib/src/db/sync/SSRWebStreamingSyncImplementation.js +44 -3
  40. package/lib/src/db/sync/SSRWebStreamingSyncImplementation.js.map +1 -0
  41. package/lib/src/db/sync/SharedWebStreamingSyncImplementation.js +33 -9
  42. package/lib/src/db/sync/SharedWebStreamingSyncImplementation.js.map +1 -0
  43. package/lib/src/db/sync/WebRemote.d.ts +1 -0
  44. package/lib/src/db/sync/WebRemote.js +12 -0
  45. package/lib/src/db/sync/WebRemote.js.map +1 -0
  46. package/lib/src/db/sync/WebStreamingSyncImplementation.d.ts +9 -2
  47. package/lib/src/db/sync/WebStreamingSyncImplementation.js +1 -0
  48. package/lib/src/db/sync/WebStreamingSyncImplementation.js.map +1 -0
  49. package/lib/src/db/sync/userAgent.d.ts +17 -0
  50. package/lib/src/db/sync/userAgent.js +65 -0
  51. package/lib/src/db/sync/userAgent.js.map +1 -0
  52. package/lib/src/index.js +1 -0
  53. package/lib/src/index.js.map +1 -0
  54. package/lib/src/shared/open-db.js +1 -0
  55. package/lib/src/shared/open-db.js.map +1 -0
  56. package/lib/src/shared/types.js +1 -0
  57. package/lib/src/shared/types.js.map +1 -0
  58. package/lib/src/worker/db/WASQLiteDB.worker.d.ts +4 -1
  59. package/lib/src/worker/db/WASQLiteDB.worker.js +61 -1
  60. package/lib/src/worker/db/WASQLiteDB.worker.js.map +1 -0
  61. package/lib/src/worker/db/open-worker-database.d.ts +4 -2
  62. package/lib/src/worker/db/open-worker-database.js +41 -20
  63. package/lib/src/worker/db/open-worker-database.js.map +1 -0
  64. package/lib/src/worker/sync/AbstractSharedSyncClientProvider.js +1 -0
  65. package/lib/src/worker/sync/AbstractSharedSyncClientProvider.js.map +1 -0
  66. package/lib/src/worker/sync/BroadcastLogger.js +1 -0
  67. package/lib/src/worker/sync/BroadcastLogger.js.map +1 -0
  68. package/lib/src/worker/sync/SharedSyncImplementation.js +1 -0
  69. package/lib/src/worker/sync/SharedSyncImplementation.js.map +1 -0
  70. package/lib/src/worker/sync/SharedSyncImplementation.worker.js +1 -0
  71. package/lib/src/worker/sync/SharedSyncImplementation.worker.js.map +1 -0
  72. package/lib/tsconfig.tsbuildinfo +1 -1
  73. package/package.json +36 -14
  74. package/lib/src/worker/db/SharedWASQLiteDB.worker.d.ts +0 -1
  75. package/lib/src/worker/db/SharedWASQLiteDB.worker.js +0 -49
@@ -1,8 +1,9 @@
1
1
  import * as Comlink from 'comlink';
2
- import { openWorkerDatabasePort } from '../../worker/db/open-worker-database';
2
+ import { openWorkerDatabasePort, resolveWorkerDatabasePortFactory } from '../../worker/db/open-worker-database';
3
3
  import { AbstractSharedSyncClientProvider } from '../../worker/sync/AbstractSharedSyncClientProvider';
4
4
  import { SharedSyncClientEvent } from '../../worker/sync/SharedSyncImplementation';
5
5
  import { WebStreamingSyncImplementation } from './WebStreamingSyncImplementation';
6
+ import { resolveWebSQLFlags } from '../adapters/web-sql-flags';
6
7
  /**
7
8
  * The shared worker will trigger methods on this side of the message port
8
9
  * via this client provider.
@@ -78,12 +79,30 @@ export class SharedWebStreamingSyncImplementation extends WebStreamingSyncImplem
78
79
  * Configure or connect to the shared sync worker.
79
80
  * This worker will manage all syncing operations remotely.
80
81
  */
81
- const syncWorker = new SharedWorker(new URL('../../worker/sync/SharedSyncImplementation.worker.js', import.meta.url), {
82
- /* @vite-ignore */
83
- name: `shared-sync-${this.webOptions.identifier}`,
84
- type: 'module'
85
- });
86
- this.messagePort = syncWorker.port;
82
+ const resolvedWorkerOptions = {
83
+ ...options,
84
+ dbFilename: this.options.identifier,
85
+ flags: resolveWebSQLFlags(options.flags)
86
+ };
87
+ const syncWorker = options.sync?.worker;
88
+ if (syncWorker) {
89
+ if (typeof syncWorker === 'function') {
90
+ this.messagePort = syncWorker(resolvedWorkerOptions).port;
91
+ }
92
+ else {
93
+ this.messagePort = new SharedWorker(`${syncWorker}`, {
94
+ /* @vite-ignore */
95
+ name: `shared-sync-${this.webOptions.identifier}`
96
+ }).port;
97
+ }
98
+ }
99
+ else {
100
+ this.messagePort = new SharedWorker(new URL('../../worker/sync/SharedSyncImplementation.worker.js', import.meta.url), {
101
+ /* @vite-ignore */
102
+ name: `shared-sync-${this.webOptions.identifier}`,
103
+ type: 'module'
104
+ }).port;
105
+ }
87
106
  this.syncManager = Comlink.wrap(this.messagePort);
88
107
  this.triggerCrudUpload = this.syncManager.triggerCrudUpload;
89
108
  /**
@@ -93,14 +112,18 @@ export class SharedWebStreamingSyncImplementation extends WebStreamingSyncImplem
93
112
  * sync worker.
94
113
  */
95
114
  const { crudUploadThrottleMs, identifier, retryDelayMs } = this.options;
96
- const dbOpenerPort = openWorkerDatabasePort(this.options.identifier, true);
115
+ const dbWorker = options.database?.options?.worker;
116
+ const dbOpenerPort = typeof dbWorker === 'function'
117
+ ? resolveWorkerDatabasePortFactory(() => dbWorker(resolvedWorkerOptions))
118
+ : openWorkerDatabasePort(this.options.identifier, true, dbWorker);
119
+ const flags = { ...this.webOptions.flags, workers: undefined };
97
120
  this.isInitialized = this.syncManager.init(Comlink.transfer(dbOpenerPort, [dbOpenerPort]), {
98
121
  dbName: this.options.identifier,
99
122
  streamOptions: {
100
123
  crudUploadThrottleMs,
101
124
  identifier,
102
125
  retryDelayMs,
103
- flags: this.webOptions.flags
126
+ flags: flags
104
127
  }
105
128
  });
106
129
  /**
@@ -160,3 +183,4 @@ export class SharedWebStreamingSyncImplementation extends WebStreamingSyncImplem
160
183
  return this.syncManager['_testUpdateAllStatuses'](status.toJSON());
161
184
  }
162
185
  }
186
+ //# sourceMappingURL=SharedWebStreamingSyncImplementation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SharedWebStreamingSyncImplementation.js","sourceRoot":"","sources":["../../../../src/db/sync/SharedWebStreamingSyncImplementation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,sBAAsB,EAAE,gCAAgC,EAAE,MAAM,sCAAsC,CAAC;AAChH,OAAO,EAAE,gCAAgC,EAAE,MAAM,oDAAoD,CAAC;AACtG,OAAO,EAEL,qBAAqB,EAEtB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,8BAA8B,EAE/B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D;;;GAGG;AACH,MAAM,wBAAyB,SAAQ,gCAAgC;IAEzD;IACH;IAFT,YACY,OAA8C,EACjD,aAAkD;QAEzD,KAAK,EAAE,CAAC;QAHE,YAAO,GAAP,OAAO,CAAuC;QACjD,kBAAa,GAAb,aAAa,CAAqC;IAG3D,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QAC/D,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QACD;;;;;WAKG;QACH,OAAO;YACL,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,SAAS,EAAE,WAAW,CAAC,SAAS;SACjC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU;QACd;;;WAGG;QACH,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;IAClC,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,GAAG,CAAQ;QACf,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,KAAK,CAAC,GAAG,CAAQ;QACf,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,IAAI,CAAC,GAAG,CAAQ;QACd,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,CAAC;IACD,GAAG,CAAC,GAAG,CAAQ;QACb,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,CAAC;IACD,IAAI,CAAC,GAAG,CAAQ;QACd,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,CAAC;IACD,KAAK,CAAC,GAAG,CAAQ;QACf,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,IAAI,CAAC,KAAa;QAChB,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,CAAC,KAAa;QACnB,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,oCAAqC,SAAQ,8BAA8B;IAC5E,WAAW,CAA2C;IACtD,cAAc,CAA2B;IACzC,WAAW,CAAc;IAEzB,aAAa,CAAgB;IAEvC,YAAY,OAA8C;QACxD,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf;;;WAGG;QACH,MAAM,qBAAqB,GAAG;YAC5B,GAAG,OAAO;YACV,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAW;YACpC,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC;SACzC,CAAC;QAEF,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;QACxC,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE,CAAC;gBACrC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,WAAW,GAAG,IAAI,YAAY,CAAC,GAAG,UAAU,EAAE,EAAE;oBACnD,kBAAkB;oBAClB,IAAI,EAAE,eAAe,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE;iBAClD,CAAC,CAAC,IAAI,CAAC;YACV,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,WAAW,GAAG,IAAI,YAAY,CACjC,IAAI,GAAG,CAAC,sDAAsD,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAChF;gBACE,kBAAkB;gBAClB,IAAI,EAAE,eAAe,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE;gBACjD,IAAI,EAAE,QAAQ;aACf,CACF,CAAC,IAAI,CAAC;QACT,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAA2B,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5E,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC;QAE5D;;;;;WAKG;QACH,MAAM,EAAE,oBAAoB,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAExE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC;QAEnD,MAAM,YAAY,GAChB,OAAO,QAAQ,KAAK,UAAU;YAC5B,CAAC,CAAE,gCAAgC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAiB;YAC1F,CAAC,CAAE,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,UAAW,EAAE,IAAI,EAAE,QAAQ,CAAiB,CAAC;QAExF,MAAM,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QAE/D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE;YACzF,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,UAAW;YAChC,aAAa,EAAE;gBACb,oBAAoB;gBACpB,UAAU;gBACV,YAAY;gBACZ,KAAK,EAAE,KAAK;aACb;SACF,CAAC,CAAC;QAEH;;WAEG;QACH,IAAI,CAAC,cAAc,GAAG,IAAI,wBAAwB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;YAC7E,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QAEH;;;;WAIG;QACH,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACxD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAC,OAAoC;QAChD,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,iEAAiE;QACjE,+FAA+F;QAC/F,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,oFAAoF;QACpF,MAAM,mBAAmB,GAA4B;YACnD,KAAK,EAAE,qBAAqB,CAAC,YAAY;YACzC,IAAI,EAAE,EAAE;SACT,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;QAClD,oBAAoB;QACpB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB,CAAC,MAAkB;QAChD,OAAQ,IAAI,CAAC,WAAmB,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9E,CAAC;CACF"}
@@ -5,5 +5,6 @@ export declare class WebRemote extends AbstractRemote {
5
5
  protected logger: ILogger;
6
6
  private _bson;
7
7
  constructor(connector: RemoteConnector, logger?: ILogger, options?: Partial<AbstractRemoteOptions>);
8
+ getUserAgent(): string;
8
9
  getBSON(): Promise<BSONImplementation>;
9
10
  }
@@ -1,4 +1,5 @@
1
1
  import { AbstractRemote, DEFAULT_REMOTE_LOGGER, FetchImplementationProvider } from '@powersync/common';
2
+ import { getUserAgentInfo } from './userAgent';
2
3
  /*
3
4
  * Depends on browser's implementation of global fetch.
4
5
  */
@@ -19,6 +20,16 @@ export class WebRemote extends AbstractRemote {
19
20
  this.connector = connector;
20
21
  this.logger = logger;
21
22
  }
23
+ getUserAgent() {
24
+ let ua = [super.getUserAgent(), `powersync-web`];
25
+ try {
26
+ ua.push(...getUserAgentInfo());
27
+ }
28
+ catch (e) {
29
+ this.logger.warn('Failed to get user agent info', e);
30
+ }
31
+ return ua.join(' ');
32
+ }
22
33
  async getBSON() {
23
34
  if (this._bson) {
24
35
  return this._bson;
@@ -31,3 +42,4 @@ export class WebRemote extends AbstractRemote {
31
42
  return this._bson;
32
43
  }
33
44
  }
45
+ //# sourceMappingURL=WebRemote.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebRemote.js","sourceRoot":"","sources":["../../../../src/db/sync/WebRemote.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,cAAc,EAGd,qBAAqB,EAErB,2BAA2B,EAE5B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C;;GAEG;AACH,MAAM,gBAAiB,SAAQ,2BAA2B;IACxD,QAAQ;QACN,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,SAAU,SAAQ,cAAc;IAI/B;IACA;IAJJ,KAAK,CAAiC;IAE9C,YACY,SAA0B,EAC1B,SAAkB,qBAAqB,EACjD,OAAwC;QAExC,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE;YACvB,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;YAClB,mBAAmB,EAAE,OAAO,EAAE,mBAAmB,IAAI,IAAI,gBAAgB,EAAE;SAC5E,CAAC,CAAC;QAPO,cAAS,GAAT,SAAS,CAAiB;QAC1B,WAAM,GAAN,MAAM,CAAiC;IAOnD,CAAC;IAED,YAAY;QACV,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,eAAe,CAAC,CAAC;QACjD,IAAI,CAAC;YACH,EAAE,CAAC,IAAI,CAAC,GAAG,gBAAgB,EAAE,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;QAED;;WAEG;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF"}
@@ -1,7 +1,14 @@
1
1
  import { AbstractStreamingSyncImplementation, AbstractStreamingSyncImplementationOptions, LockOptions } from '@powersync/common';
2
+ import { ResolvedWebSQLOpenOptions, WebSQLFlags } from '../adapters/web-sql-flags';
2
3
  export interface WebStreamingSyncImplementationOptions extends AbstractStreamingSyncImplementationOptions {
3
- flags?: {
4
- broadcastLogs?: boolean;
4
+ flags?: WebSQLFlags;
5
+ database?: {
6
+ options: {
7
+ worker?: string | URL | ((options: ResolvedWebSQLOpenOptions) => Worker | SharedWorker);
8
+ };
9
+ };
10
+ sync?: {
11
+ worker?: string | URL | ((options: ResolvedWebSQLOpenOptions) => SharedWorker);
5
12
  };
6
13
  }
7
14
  export declare class WebStreamingSyncImplementation extends AbstractStreamingSyncImplementation {
@@ -13,3 +13,4 @@ export class WebStreamingSyncImplementation extends AbstractStreamingSyncImpleme
13
13
  return navigator.locks.request(identifier, { signal: lockOptions.signal }, lockOptions.callback);
14
14
  }
15
15
  }
16
+ //# sourceMappingURL=WebStreamingSyncImplementation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebStreamingSyncImplementation.js","sourceRoot":"","sources":["../../../../src/db/sync/WebStreamingSyncImplementation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mCAAmC,EAGnC,QAAQ,EACT,MAAM,mBAAmB,CAAC;AAgB3B,MAAM,OAAO,8BAA+B,SAAQ,mCAAmC;IACrF,YAAY,OAA8C;QACxD,0DAA0D;QAC1D,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,OAAgD,CAAC;IAC/D,CAAC;IAED,UAAU,CAAI,WAA2B;QACvC,MAAM,UAAU,GAAG,kBAAkB,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;QACtF,WAAW,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC;QACvF,OAAO,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IACnG,CAAC;CACF"}
@@ -0,0 +1,17 @@
1
+ export interface NavigatorInfo {
2
+ userAgent: string;
3
+ userAgentData?: {
4
+ brands?: {
5
+ brand: string;
6
+ version: string;
7
+ }[];
8
+ platform?: string;
9
+ };
10
+ }
11
+ /**
12
+ * Get a minimal representation of browser, version and operating system.
13
+ *
14
+ * The goal is to get enough environemnt info to reproduce issues, but no
15
+ * more.
16
+ */
17
+ export declare function getUserAgentInfo(nav?: NavigatorInfo): string[];
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Get a minimal representation of browser, version and operating system.
3
+ *
4
+ * The goal is to get enough environemnt info to reproduce issues, but no
5
+ * more.
6
+ */
7
+ export function getUserAgentInfo(nav) {
8
+ nav ??= navigator;
9
+ const browser = getBrowserInfo(nav);
10
+ const os = getOsInfo(nav);
11
+ // The cast below is to cater for TypeScript < 5.5.0
12
+ return [browser, os].filter((v) => v != null);
13
+ }
14
+ function getBrowserInfo(nav) {
15
+ const brands = nav.userAgentData?.brands;
16
+ if (brands != null) {
17
+ const tests = [
18
+ { name: 'Google Chrome', value: 'Chrome' },
19
+ { name: 'Opera', value: 'Opera' },
20
+ { name: 'Edge', value: 'Edge' },
21
+ { name: 'Chromium', value: 'Chromium' }
22
+ ];
23
+ for (let { name, value } of tests) {
24
+ const brand = brands.find((b) => b.brand == name);
25
+ if (brand != null) {
26
+ return `${value}/${brand.version}`;
27
+ }
28
+ }
29
+ }
30
+ const ua = nav.userAgent;
31
+ const regexps = [
32
+ { re: /(?:firefox|fxios)\/(\d+)/i, value: 'Firefox' },
33
+ { re: /(?:edg|edge|edga|edgios)\/(\d+)/i, value: 'Edge' },
34
+ { re: /opr\/(\d+)/i, value: 'Opera' },
35
+ { re: /(?:chrome|chromium|crios)\/(\d+)/i, value: 'Chrome' },
36
+ { re: /version\/(\d+).*safari/i, value: 'Safari' }
37
+ ];
38
+ for (let { re, value } of regexps) {
39
+ const match = re.exec(ua);
40
+ if (match != null) {
41
+ return `${value}/${match[1]}`;
42
+ }
43
+ }
44
+ return null;
45
+ }
46
+ function getOsInfo(nav) {
47
+ if (nav.userAgentData?.platform != null) {
48
+ return nav.userAgentData.platform.toLowerCase();
49
+ }
50
+ const ua = nav.userAgent;
51
+ const regexps = [
52
+ { re: /windows/i, value: 'windows' },
53
+ { re: /android/i, value: 'android' },
54
+ { re: /linux/i, value: 'linux' },
55
+ { re: /iphone|ipad|ipod/i, value: 'ios' },
56
+ { re: /macintosh|mac os x/i, value: 'macos' }
57
+ ];
58
+ for (let { re, value } of regexps) {
59
+ if (re.test(ua)) {
60
+ return value;
61
+ }
62
+ }
63
+ return null;
64
+ }
65
+ //# sourceMappingURL=userAgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userAgent.js","sourceRoot":"","sources":["../../../../src/db/sync/userAgent.ts"],"names":[],"mappings":"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"}
package/lib/src/index.js CHANGED
@@ -9,3 +9,4 @@ export * from './db/adapters/AbstractWebPowerSyncDatabaseOpenFactory';
9
9
  export * from './db/adapters/web-sql-flags';
10
10
  export * from './db/adapters/AbstractWebSQLOpenFactory';
11
11
  export * from './db/adapters/wa-sqlite/WASQLiteOpenFactory';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0CAA0C,CAAC;AACzD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,8DAA8D,CAAC;AAC7E,cAAc,uDAAuD,CAAC;AACtE,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yCAAyC,CAAC;AACxD,cAAc,6CAA6C,CAAC"}
@@ -190,3 +190,4 @@ export async function _openDB(dbFileName, options = { useWebWorker: true }) {
190
190
  close: () => sqlite3.close(db)
191
191
  };
192
192
  }
193
+ //# sourceMappingURL=open-db.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open-db.js","sourceRoot":"","sources":["../../../src/shared/open-db.ts"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/shared/types.ts"],"names":[],"mappings":""}
@@ -1 +1,4 @@
1
- export {};
1
+ /**
2
+ * Supports both shared and dedicated workers, based on how the worker is constructed (new SharedWorker vs new Worker()).
3
+ */
4
+ import '@journeyapps/wa-sqlite';
@@ -1,3 +1,63 @@
1
+ /**
2
+ * Supports both shared and dedicated workers, based on how the worker is constructed (new SharedWorker vs new Worker()).
3
+ */
4
+ import '@journeyapps/wa-sqlite';
1
5
  import * as Comlink from 'comlink';
2
6
  import { _openDB } from '../../shared/open-db';
3
- Comlink.expose(async (dbFileName) => Comlink.proxy(await _openDB(dbFileName)));
7
+ const DBMap = new Map();
8
+ const OPEN_DB_LOCK = 'open-wasqlite-db';
9
+ let nextClientId = 1;
10
+ const openDBShared = async (dbFileName) => {
11
+ // Prevent multiple simultaneous opens from causing race conditions
12
+ return navigator.locks.request(OPEN_DB_LOCK, async () => {
13
+ const clientId = nextClientId++;
14
+ if (!DBMap.has(dbFileName)) {
15
+ const clientIds = new Set();
16
+ const connection = await _openDB(dbFileName);
17
+ DBMap.set(dbFileName, {
18
+ clientIds,
19
+ db: connection
20
+ });
21
+ }
22
+ const dbEntry = DBMap.get(dbFileName);
23
+ dbEntry.clientIds.add(clientId);
24
+ const { db } = dbEntry;
25
+ const wrappedConnection = {
26
+ ...db,
27
+ close: Comlink.proxy(() => {
28
+ const { clientIds } = dbEntry;
29
+ clientIds.delete(clientId);
30
+ if (clientIds.size == 0) {
31
+ console.debug(`Closing connection to ${dbFileName}.`);
32
+ DBMap.delete(dbFileName);
33
+ return db.close?.();
34
+ }
35
+ console.debug(`Connection to ${dbFileName} not closed yet due to active clients.`);
36
+ })
37
+ };
38
+ return Comlink.proxy(wrappedConnection);
39
+ });
40
+ };
41
+ const openDBDedicated = async (dbFileName) => {
42
+ const connection = await _openDB(dbFileName);
43
+ return Comlink.proxy(connection);
44
+ };
45
+ // Check if we're in a SharedWorker context
46
+ if (typeof SharedWorkerGlobalScope !== 'undefined') {
47
+ const _self = self;
48
+ _self.onconnect = function (event) {
49
+ const port = event.ports[0];
50
+ console.debug('Exposing shared db on port', port);
51
+ Comlink.expose(openDBShared, port);
52
+ };
53
+ addEventListener('unload', () => {
54
+ Array.from(DBMap.values()).forEach(async (dbConnection) => {
55
+ const db = await dbConnection.db;
56
+ db.close?.();
57
+ });
58
+ });
59
+ }
60
+ else {
61
+ Comlink.expose(openDBDedicated);
62
+ }
63
+ //# sourceMappingURL=WASQLiteDB.worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WASQLiteDB.worker.js","sourceRoot":"","sources":["../../../../src/worker/db/WASQLiteDB.worker.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,11 @@ import type { OpenDB } from '../../shared/types';
3
3
  /**
4
4
  * Opens a shared or dedicated worker which exposes opening of database connections
5
5
  */
6
- export declare function openWorkerDatabasePort(workerIdentifier: string, multipleTabs?: boolean): MessagePort | Worker;
6
+ export declare function openWorkerDatabasePort(workerIdentifier: string, multipleTabs?: boolean, worker?: string | URL): MessagePort | Worker;
7
7
  /**
8
8
  * @returns A function which allows for opening database connections inside
9
9
  * a worker.
10
10
  */
11
- export declare function getWorkerDatabaseOpener(workerIdentifier: string, multipleTabs?: boolean): Comlink.Remote<OpenDB>;
11
+ export declare function getWorkerDatabaseOpener(workerIdentifier: string, multipleTabs?: boolean, worker?: string | URL): Comlink.Remote<OpenDB>;
12
+ export declare function resolveWorkerDatabasePortFactory(worker: () => Worker | SharedWorker): MessagePort | Worker;
13
+ export declare function isSharedWorker(worker: Worker | SharedWorker): worker is SharedWorker;
@@ -2,29 +2,50 @@ import * as Comlink from 'comlink';
2
2
  /**
3
3
  * Opens a shared or dedicated worker which exposes opening of database connections
4
4
  */
5
- export function openWorkerDatabasePort(workerIdentifier, multipleTabs = true) {
6
- /**
7
- * Webpack V5 can bundle the worker automatically if the full Worker constructor syntax is used
8
- * https://webpack.js.org/guides/web-workers/
9
- * This enables multi tab support by default, but falls back if SharedWorker is not available
10
- * (in the case of Android)
11
- */
12
- return multipleTabs
13
- ? new SharedWorker(new URL('./SharedWASQLiteDB.worker.js', import.meta.url), {
14
- /* @vite-ignore */
15
- name: `shared-DB-worker-${workerIdentifier}`,
16
- type: 'module'
17
- }).port
18
- : new Worker(new URL('./WASQLiteDB.worker.js', import.meta.url), {
19
- /* @vite-ignore */
20
- name: `DB-worker-${workerIdentifier}`,
21
- type: 'module'
22
- });
5
+ export function openWorkerDatabasePort(workerIdentifier, multipleTabs = true, worker = '') {
6
+ if (worker) {
7
+ return multipleTabs
8
+ ? new SharedWorker(`${worker}`, {
9
+ /* @vite-ignore */
10
+ name: `shared-DB-worker-${workerIdentifier}`
11
+ }).port
12
+ : new Worker(`${worker}`, {
13
+ /* @vite-ignore */
14
+ name: `DB-worker-${workerIdentifier}`
15
+ });
16
+ }
17
+ else {
18
+ /**
19
+ * Webpack V5 can bundle the worker automatically if the full Worker constructor syntax is used
20
+ * https://webpack.js.org/guides/web-workers/
21
+ * This enables multi tab support by default, but falls back if SharedWorker is not available
22
+ * (in the case of Android)
23
+ */
24
+ return multipleTabs
25
+ ? new SharedWorker(new URL('./WASQLiteDB.worker.js', import.meta.url), {
26
+ /* @vite-ignore */
27
+ name: `shared-DB-worker-${workerIdentifier}`,
28
+ type: 'module'
29
+ }).port
30
+ : new Worker(new URL('./WASQLiteDB.worker.js', import.meta.url), {
31
+ /* @vite-ignore */
32
+ name: `DB-worker-${workerIdentifier}`,
33
+ type: 'module'
34
+ });
35
+ }
23
36
  }
24
37
  /**
25
38
  * @returns A function which allows for opening database connections inside
26
39
  * a worker.
27
40
  */
28
- export function getWorkerDatabaseOpener(workerIdentifier, multipleTabs = true) {
29
- return Comlink.wrap(openWorkerDatabasePort(workerIdentifier, multipleTabs));
41
+ export function getWorkerDatabaseOpener(workerIdentifier, multipleTabs = true, worker = '') {
42
+ return Comlink.wrap(openWorkerDatabasePort(workerIdentifier, multipleTabs, worker));
30
43
  }
44
+ export function resolveWorkerDatabasePortFactory(worker) {
45
+ const workerInstance = worker();
46
+ return isSharedWorker(workerInstance) ? workerInstance.port : workerInstance;
47
+ }
48
+ export function isSharedWorker(worker) {
49
+ return 'port' in worker;
50
+ }
51
+ //# sourceMappingURL=open-worker-database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open-worker-database.js","sourceRoot":"","sources":["../../../../src/worker/db/open-worker-database.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAGnC;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,gBAAwB,EAAE,YAAY,GAAG,IAAI,EAAE,SAAuB,EAAE;IAC7G,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,YAAY;YACjB,CAAC,CAAC,IAAI,YAAY,CAAC,GAAG,MAAM,EAAE,EAAE;gBAC5B,kBAAkB;gBAClB,IAAI,EAAE,oBAAoB,gBAAgB,EAAE;aAC7C,CAAC,CAAC,IAAI;YACT,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,EAAE,EAAE;gBACtB,kBAAkB;gBAClB,IAAI,EAAE,aAAa,gBAAgB,EAAE;aACtC,CAAC,CAAC;IACT,CAAC;SAAM,CAAC;QACN;;;;;WAKG;QACH,OAAO,YAAY;YACjB,CAAC,CAAC,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,wBAAwB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBACnE,kBAAkB;gBAClB,IAAI,EAAE,oBAAoB,gBAAgB,EAAE;gBAC5C,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC,IAAI;YACT,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,wBAAwB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBAC7D,kBAAkB;gBAClB,IAAI,EAAE,aAAa,gBAAgB,EAAE;gBACrC,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;IACT,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,gBAAwB,EAAE,YAAY,GAAG,IAAI,EAAE,SAAuB,EAAE;IAC9G,OAAO,OAAO,CAAC,IAAI,CAAS,sBAAsB,CAAC,gBAAgB,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;AAC9F,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,MAAmC;IAClF,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC;IAChC,OAAO,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAA6B;IAC1D,OAAO,MAAM,IAAI,MAAM,CAAC;AAC1B,CAAC"}
@@ -3,3 +3,4 @@
3
3
  */
4
4
  export class AbstractSharedSyncClientProvider {
5
5
  }
6
+ //# sourceMappingURL=AbstractSharedSyncClientProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractSharedSyncClientProvider.js","sourceRoot":"","sources":["../../../../src/worker/sync/AbstractSharedSyncClientProvider.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,OAAgB,gCAAgC;CAarD"}
@@ -102,3 +102,4 @@ export class BroadcastLogger {
102
102
  return sanitizedParams;
103
103
  }
104
104
  }
105
+ //# sourceMappingURL=BroadcastLogger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BroadcastLogger.js","sourceRoot":"","sources":["../../../../src/worker/sync/BroadcastLogger.ts"],"names":[],"mappings":"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"}
@@ -251,3 +251,4 @@ export class SharedSyncImplementation extends BaseObserver {
251
251
  this.updateAllStatuses(status);
252
252
  }
253
253
  }
254
+ //# sourceMappingURL=SharedSyncImplementation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SharedSyncImplementation.js","sourceRoot":"","sources":["../../../../src/worker/sync/SharedSyncImplementation.ts"],"names":[],"mappings":"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"}
@@ -20,3 +20,4 @@ _self.onconnect = function (event) {
20
20
  Comlink.expose(sharedSyncImplementation, port);
21
21
  sharedSyncImplementation.addPort(port);
22
22
  };
23
+ //# sourceMappingURL=SharedSyncImplementation.worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SharedSyncImplementation.worker.js","sourceRoot":"","sources":["../../../../src/worker/sync/SharedSyncImplementation.worker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EAEtB,MAAM,4BAA4B,CAAC;AACpC,OAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,MAAM,KAAK,GAA4B,IAAW,CAAC;AACnD,MAAM,CAAC,WAAW,EAAE,CAAC;AACrB,MAAM,wBAAwB,GAAG,IAAI,wBAAwB,EAAE,CAAC;AAEhE,KAAK,CAAC,SAAS,GAAG,UAAU,KAA2B;IACrD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE5B;;;OAGG;IACH,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;QACzC,MAAM,OAAO,GAAG,KAAK,CAAC,IAA+B,CAAC;QACtD,IAAI,OAAO,EAAE,KAAK,IAAI,qBAAqB,CAAC,YAAY,EAAE,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAC;YAC7C,wBAAwB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,MAAM,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;IAC/C,wBAAwB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC,CAAC"}