@powersync/common 1.6.1

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 (93) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +6 -0
  3. package/lib/client/AbstractPowerSyncDatabase.d.ts +367 -0
  4. package/lib/client/AbstractPowerSyncDatabase.js +645 -0
  5. package/lib/client/AbstractPowerSyncDatabase.js.map +1 -0
  6. package/lib/client/AbstractPowerSyncOpenFactory.d.ts +29 -0
  7. package/lib/client/AbstractPowerSyncOpenFactory.js +25 -0
  8. package/lib/client/AbstractPowerSyncOpenFactory.js.map +1 -0
  9. package/lib/client/connection/PowerSyncBackendConnector.d.ts +23 -0
  10. package/lib/client/connection/PowerSyncBackendConnector.js +2 -0
  11. package/lib/client/connection/PowerSyncBackendConnector.js.map +1 -0
  12. package/lib/client/connection/PowerSyncCredentials.d.ts +5 -0
  13. package/lib/client/connection/PowerSyncCredentials.js +2 -0
  14. package/lib/client/connection/PowerSyncCredentials.js.map +1 -0
  15. package/lib/client/sync/bucket/BucketStorageAdapter.d.ts +71 -0
  16. package/lib/client/sync/bucket/BucketStorageAdapter.js +8 -0
  17. package/lib/client/sync/bucket/BucketStorageAdapter.js.map +1 -0
  18. package/lib/client/sync/bucket/CrudBatch.d.ts +31 -0
  19. package/lib/client/sync/bucket/CrudBatch.js +26 -0
  20. package/lib/client/sync/bucket/CrudBatch.js.map +1 -0
  21. package/lib/client/sync/bucket/CrudEntry.d.ts +86 -0
  22. package/lib/client/sync/bucket/CrudEntry.js +85 -0
  23. package/lib/client/sync/bucket/CrudEntry.js.map +1 -0
  24. package/lib/client/sync/bucket/CrudTransaction.d.ts +29 -0
  25. package/lib/client/sync/bucket/CrudTransaction.js +25 -0
  26. package/lib/client/sync/bucket/CrudTransaction.js.map +1 -0
  27. package/lib/client/sync/bucket/OpType.d.ts +16 -0
  28. package/lib/client/sync/bucket/OpType.js +23 -0
  29. package/lib/client/sync/bucket/OpType.js.map +1 -0
  30. package/lib/client/sync/bucket/OplogEntry.d.ts +23 -0
  31. package/lib/client/sync/bucket/OplogEntry.js +34 -0
  32. package/lib/client/sync/bucket/OplogEntry.js.map +1 -0
  33. package/lib/client/sync/bucket/SqliteBucketStorage.d.ts +66 -0
  34. package/lib/client/sync/bucket/SqliteBucketStorage.js +299 -0
  35. package/lib/client/sync/bucket/SqliteBucketStorage.js.map +1 -0
  36. package/lib/client/sync/bucket/SyncDataBatch.d.ts +6 -0
  37. package/lib/client/sync/bucket/SyncDataBatch.js +12 -0
  38. package/lib/client/sync/bucket/SyncDataBatch.js.map +1 -0
  39. package/lib/client/sync/bucket/SyncDataBucket.d.ts +40 -0
  40. package/lib/client/sync/bucket/SyncDataBucket.js +41 -0
  41. package/lib/client/sync/bucket/SyncDataBucket.js.map +1 -0
  42. package/lib/client/sync/stream/AbstractRemote.d.ts +25 -0
  43. package/lib/client/sync/stream/AbstractRemote.js +43 -0
  44. package/lib/client/sync/stream/AbstractRemote.js.map +1 -0
  45. package/lib/client/sync/stream/AbstractStreamingSyncImplementation.d.ts +101 -0
  46. package/lib/client/sync/stream/AbstractStreamingSyncImplementation.js +478 -0
  47. package/lib/client/sync/stream/AbstractStreamingSyncImplementation.js.map +1 -0
  48. package/lib/client/sync/stream/streaming-sync-types.d.ts +116 -0
  49. package/lib/client/sync/stream/streaming-sync-types.js +23 -0
  50. package/lib/client/sync/stream/streaming-sync-types.js.map +1 -0
  51. package/lib/db/Column.d.ts +19 -0
  52. package/lib/db/Column.js +26 -0
  53. package/lib/db/Column.js.map +1 -0
  54. package/lib/db/DBAdapter.d.ts +95 -0
  55. package/lib/db/DBAdapter.js +20 -0
  56. package/lib/db/DBAdapter.js.map +1 -0
  57. package/lib/db/crud/SyncStatus.d.ts +38 -0
  58. package/lib/db/crud/SyncStatus.js +58 -0
  59. package/lib/db/crud/SyncStatus.js.map +1 -0
  60. package/lib/db/crud/UploadQueueStatus.d.ts +20 -0
  61. package/lib/db/crud/UploadQueueStatus.js +25 -0
  62. package/lib/db/crud/UploadQueueStatus.js.map +1 -0
  63. package/lib/db/schema/Index.d.ts +22 -0
  64. package/lib/db/schema/Index.js +30 -0
  65. package/lib/db/schema/Index.js.map +1 -0
  66. package/lib/db/schema/IndexedColumn.d.ts +19 -0
  67. package/lib/db/schema/IndexedColumn.js +30 -0
  68. package/lib/db/schema/IndexedColumn.js.map +1 -0
  69. package/lib/db/schema/Schema.d.ts +38 -0
  70. package/lib/db/schema/Schema.js +38 -0
  71. package/lib/db/schema/Schema.js.map +1 -0
  72. package/lib/db/schema/Table.d.ts +51 -0
  73. package/lib/db/schema/Table.js +114 -0
  74. package/lib/db/schema/Table.js.map +1 -0
  75. package/lib/db/schema/TableV2.d.ts +30 -0
  76. package/lib/db/schema/TableV2.js +44 -0
  77. package/lib/db/schema/TableV2.js.map +1 -0
  78. package/lib/index.d.ts +30 -0
  79. package/lib/index.js +31 -0
  80. package/lib/index.js.map +1 -0
  81. package/lib/utils/AbortOperation.d.ts +9 -0
  82. package/lib/utils/AbortOperation.js +19 -0
  83. package/lib/utils/AbortOperation.js.map +1 -0
  84. package/lib/utils/BaseObserver.d.ts +20 -0
  85. package/lib/utils/BaseObserver.js +23 -0
  86. package/lib/utils/BaseObserver.js.map +1 -0
  87. package/lib/utils/mutex.d.ts +7 -0
  88. package/lib/utils/mutex.js +29 -0
  89. package/lib/utils/mutex.js.map +1 -0
  90. package/lib/utils/strings.d.ts +3 -0
  91. package/lib/utils/strings.js +10 -0
  92. package/lib/utils/strings.js.map +1 -0
  93. package/package.json +42 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Table.js","sourceRoot":"","sources":["../../../src/db/schema/Table.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { ColumnType } from '../Column';
2
+ import { Index } from './Index';
3
+ export type BaseColumnType<T extends number | string | null> = {
4
+ type: ColumnType;
5
+ };
6
+ export declare const column: {
7
+ text: BaseColumnType<string | null>;
8
+ integer: BaseColumnType<number | null>;
9
+ real: BaseColumnType<number | null>;
10
+ };
11
+ export type ColumnsType = Record<string, BaseColumnType<any>>;
12
+ export type ExtractColumnValueType<T extends BaseColumnType<any>> = T extends BaseColumnType<infer R> ? R : unknown;
13
+ export type RowType<T extends TableV2<any>> = {
14
+ [K in keyof T['columns']]: ExtractColumnValueType<T['columns'][K]>;
15
+ } & {
16
+ id: string;
17
+ };
18
+ export type IndexShorthand = Record<string, string[]>;
19
+ export interface TableV2Options {
20
+ indexes?: IndexShorthand;
21
+ localOnly?: boolean;
22
+ insertOnly?: boolean;
23
+ viewName?: string;
24
+ }
25
+ export declare class TableV2<Columns extends ColumnsType = ColumnsType> {
26
+ columns: Columns;
27
+ options: TableV2Options;
28
+ indexes: Index[];
29
+ constructor(columns: Columns, options?: TableV2Options);
30
+ }
@@ -0,0 +1,44 @@
1
+ import { ColumnType } from '../Column';
2
+ import { Index } from './Index';
3
+ import { IndexedColumn } from './IndexedColumn';
4
+ const text = {
5
+ type: ColumnType.TEXT
6
+ };
7
+ const integer = {
8
+ type: ColumnType.INTEGER
9
+ };
10
+ const real = {
11
+ type: ColumnType.REAL
12
+ };
13
+ export const column = {
14
+ text,
15
+ integer,
16
+ real
17
+ };
18
+ /*
19
+ Generate a new table from the columns and indexes
20
+ */
21
+ export class TableV2 {
22
+ columns;
23
+ options;
24
+ indexes;
25
+ constructor(columns, options = {}) {
26
+ this.columns = columns;
27
+ this.options = options;
28
+ if (options?.indexes) {
29
+ this.indexes = Object.entries(options.indexes).map(([name, columns]) => {
30
+ if (name.startsWith('-')) {
31
+ return new Index({
32
+ name: name.substring(1),
33
+ columns: columns.map((c) => new IndexedColumn({ name: c, ascending: false }))
34
+ });
35
+ }
36
+ return new Index({
37
+ name: name,
38
+ columns: columns.map((c) => new IndexedColumn({ name: c, ascending: true }))
39
+ });
40
+ });
41
+ }
42
+ }
43
+ }
44
+ //# sourceMappingURL=TableV2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableV2.js","sourceRoot":"","sources":["../../../src/db/schema/TableV2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAMhD,MAAM,IAAI,GAAkC;IAC1C,IAAI,EAAE,UAAU,CAAC,IAAI;CACtB,CAAC;AAEF,MAAM,OAAO,GAAkC;IAC7C,IAAI,EAAE,UAAU,CAAC,OAAO;CACzB,CAAC;AAEF,MAAM,IAAI,GAAkC;IAC1C,IAAI,EAAE,UAAU,CAAC,IAAI;CACtB,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI;IACJ,OAAO;IACP,IAAI;CACL,CAAC;AAqBF;;EAEE;AACF,MAAM,OAAO,OAAO;IAIT;IACA;IAJF,OAAO,CAAU;IAExB,YACS,OAAgB,EAChB,UAA0B,EAAE;QAD5B,YAAO,GAAP,OAAO,CAAS;QAChB,YAAO,GAAP,OAAO,CAAqB;QAEnC,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE;gBACrE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACzB,OAAO,IAAI,KAAK,CAAC;wBACf,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;wBACvB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;qBAC9E,CAAC,CAAC;gBACL,CAAC;gBAED,OAAO,IAAI,KAAK,CAAC;oBACf,IAAI,EAAE,IAAI;oBACV,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;iBAC7E,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,30 @@
1
+ export * from './client/AbstractPowerSyncDatabase';
2
+ export * from './client/AbstractPowerSyncOpenFactory';
3
+ export * from './client/connection/PowerSyncBackendConnector';
4
+ export * from './client/connection/PowerSyncCredentials';
5
+ export * from './client/sync/bucket/BucketStorageAdapter';
6
+ export * from './client/sync/bucket/CrudEntry';
7
+ export * from './client/sync/bucket/SqliteBucketStorage';
8
+ export * from './client/sync/bucket/CrudBatch';
9
+ export * from './client/sync/bucket/CrudTransaction';
10
+ export * from './client/sync/bucket/SyncDataBatch';
11
+ export * from './client/sync/bucket/SyncDataBucket';
12
+ export * from './client/sync/bucket/OpType';
13
+ export * from './client/sync/bucket/OplogEntry';
14
+ export * from './client/sync/stream/AbstractRemote';
15
+ export * from './client/sync/stream/AbstractStreamingSyncImplementation';
16
+ export * from './client/sync/stream/streaming-sync-types';
17
+ export * from './db/crud/SyncStatus';
18
+ export * from './db/crud/UploadQueueStatus';
19
+ export * from './db/schema/Schema';
20
+ export * from './db/schema/Table';
21
+ export * from './db/schema/Index';
22
+ export * from './db/schema/IndexedColumn';
23
+ export * from './db/crud/SyncStatus';
24
+ export * from './db/crud/UploadQueueStatus';
25
+ export * from './db/DBAdapter';
26
+ export * from './db/Column';
27
+ export * from './db/schema/TableV2';
28
+ export * from './utils/AbortOperation';
29
+ export * from './utils/BaseObserver';
30
+ export * from './utils/strings';
package/lib/index.js ADDED
@@ -0,0 +1,31 @@
1
+ export * from './client/AbstractPowerSyncDatabase';
2
+ export * from './client/AbstractPowerSyncOpenFactory';
3
+ export * from './client/connection/PowerSyncBackendConnector';
4
+ export * from './client/connection/PowerSyncCredentials';
5
+ export * from './client/sync/bucket/BucketStorageAdapter';
6
+ export * from './client/sync/bucket/CrudEntry';
7
+ export * from './client/sync/bucket/SqliteBucketStorage';
8
+ export * from './client/sync/bucket/CrudBatch';
9
+ export * from './client/sync/bucket/CrudTransaction';
10
+ export * from './client/sync/bucket/SyncDataBatch';
11
+ export * from './client/sync/bucket/SyncDataBucket';
12
+ export * from './client/sync/bucket/OpType';
13
+ export * from './client/sync/bucket/OplogEntry';
14
+ export * from './client/sync/stream/AbstractRemote';
15
+ export * from './client/sync/stream/AbstractStreamingSyncImplementation';
16
+ export * from './client/sync/stream/streaming-sync-types';
17
+ export * from './db/crud/SyncStatus';
18
+ export * from './db/crud/UploadQueueStatus';
19
+ export * from './db/schema/Schema';
20
+ export * from './db/schema/Table';
21
+ export * from './db/schema/Index';
22
+ export * from './db/schema/IndexedColumn';
23
+ export * from './db/crud/SyncStatus';
24
+ export * from './db/crud/UploadQueueStatus';
25
+ export * from './db/DBAdapter';
26
+ export * from './db/Column';
27
+ export * from './db/schema/TableV2';
28
+ export * from './utils/AbortOperation';
29
+ export * from './utils/BaseObserver';
30
+ export * from './utils/strings';
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAC;AACnD,cAAc,uCAAuC,CAAC;AACtD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,0CAA0C,CAAC;AACzD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0CAA0C,CAAC;AACzD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0DAA0D,CAAC;AACzE,cAAc,2CAA2C,CAAC;AAE1D,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AAEpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Calls to Abortcontroller.abort(reason: any) will result in the
3
+ * `reason` being thrown. This is not necessarily an error,
4
+ * but extends error for better logging purposes.
5
+ */
6
+ export declare class AbortOperation extends Error {
7
+ protected reason: string;
8
+ constructor(reason: string);
9
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Calls to Abortcontroller.abort(reason: any) will result in the
3
+ * `reason` being thrown. This is not necessarily an error,
4
+ * but extends error for better logging purposes.
5
+ */
6
+ export class AbortOperation extends Error {
7
+ reason;
8
+ constructor(reason) {
9
+ super(reason);
10
+ this.reason = reason;
11
+ // Set the prototype explicitly
12
+ Object.setPrototypeOf(this, AbortOperation.prototype);
13
+ // Capture stack trace
14
+ if (Error.captureStackTrace) {
15
+ Error.captureStackTrace(this, AbortOperation);
16
+ }
17
+ }
18
+ }
19
+ //# sourceMappingURL=AbortOperation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbortOperation.js","sourceRoot":"","sources":["../../src/utils/AbortOperation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IACjB;IAAtB,YAAsB,MAAc;QAClC,KAAK,CAAC,MAAM,CAAC,CAAC;QADM,WAAM,GAAN,MAAM,CAAQ;QAElC,+BAA+B;QAC/B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;QAEtD,sBAAsB;QACtB,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,20 @@
1
+ export interface Disposable {
2
+ dispose: () => Promise<void>;
3
+ }
4
+ export interface BaseObserverInterface<T extends BaseListener> {
5
+ registerListener(listener: Partial<T>): () => void;
6
+ }
7
+ export type BaseListener = {
8
+ [key: string]: ((...event: any) => any) | undefined;
9
+ };
10
+ export declare class BaseObserver<T extends BaseListener = BaseListener> implements BaseObserverInterface<T> {
11
+ protected listeners: {
12
+ [id: string]: Partial<T>;
13
+ };
14
+ constructor();
15
+ /**
16
+ * Register a listener for updates to the PowerSync client.
17
+ */
18
+ registerListener(listener: Partial<T>): () => void;
19
+ iterateListeners(cb: (listener: Partial<T>) => any): void;
20
+ }
@@ -0,0 +1,23 @@
1
+ import { v4 } from 'uuid';
2
+ export class BaseObserver {
3
+ listeners;
4
+ constructor() {
5
+ this.listeners = {};
6
+ }
7
+ /**
8
+ * Register a listener for updates to the PowerSync client.
9
+ */
10
+ registerListener(listener) {
11
+ const id = v4();
12
+ this.listeners[id] = listener;
13
+ return () => {
14
+ delete this.listeners[id];
15
+ };
16
+ }
17
+ iterateListeners(cb) {
18
+ for (const i in this.listeners) {
19
+ cb(this.listeners[i]);
20
+ }
21
+ }
22
+ }
23
+ //# sourceMappingURL=BaseObserver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseObserver.js","sourceRoot":"","sources":["../../src/utils/BaseObserver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAc1B,MAAM,OAAO,YAAY;IACb,SAAS,CAA+B;IAElD;QACE,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,QAAoB;QACnC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;QAChB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;QAC9B,OAAO,GAAG,EAAE;YACV,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,EAAiC;QAChD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC/B,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,7 @@
1
+ import { Mutex } from 'async-mutex';
2
+ /**
3
+ * Wrapper for async-mutex runExclusive, which allows for a timeout on each exclusive lock.
4
+ */
5
+ export declare function mutexRunExclusive<T>(mutex: Mutex, callback: () => Promise<T>, options?: {
6
+ timeoutMs: number;
7
+ }): Promise<T>;
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Wrapper for async-mutex runExclusive, which allows for a timeout on each exclusive lock.
3
+ */
4
+ export async function mutexRunExclusive(mutex, callback, options) {
5
+ return new Promise((resolve, reject) => {
6
+ const timeout = options?.timeoutMs;
7
+ let timedOut = false;
8
+ const timeoutId = timeout
9
+ ? setTimeout(() => {
10
+ timedOut = true;
11
+ reject(new Error('Timeout waiting for lock'));
12
+ }, timeout)
13
+ : undefined;
14
+ mutex.runExclusive(async () => {
15
+ if (timeoutId) {
16
+ clearTimeout(timeoutId);
17
+ }
18
+ if (timedOut)
19
+ return;
20
+ try {
21
+ resolve(await callback());
22
+ }
23
+ catch (ex) {
24
+ reject(ex);
25
+ }
26
+ });
27
+ });
28
+ }
29
+ //# sourceMappingURL=mutex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutex.js","sourceRoot":"","sources":["../../src/utils/mutex.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAAY,EACZ,QAA0B,EAC1B,OAA+B;IAE/B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,OAAO,GAAG,OAAO,EAAE,SAAS,CAAC;QACnC,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,SAAS,GAAG,OAAO;YACvB,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE;gBACd,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;YAChD,CAAC,EAAE,OAAO,CAAC;YACb,CAAC,CAAC,SAAS,CAAC;QAEd,KAAK,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;YAC5B,IAAI,SAAS,EAAE,CAAC;gBACd,YAAY,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC;YACD,IAAI,QAAQ;gBAAE,OAAO;YAErB,IAAI,CAAC;gBACH,OAAO,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAC;YAC5B,CAAC;YAAC,OAAO,EAAE,EAAE,CAAC;gBACZ,MAAM,CAAC,EAAE,CAAC,CAAC;YACb,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function quoteString(s: string): string;
2
+ export declare function quoteJsonPath(path: string): string;
3
+ export declare function quoteIdentifier(s: string): string;
@@ -0,0 +1,10 @@
1
+ export function quoteString(s) {
2
+ return `'${s.replaceAll("'", "''")}'`;
3
+ }
4
+ export function quoteJsonPath(path) {
5
+ return quoteString(`$.${path}`);
6
+ }
7
+ export function quoteIdentifier(s) {
8
+ return `"${s.replaceAll('"', '""')}"`;
9
+ }
10
+ //# sourceMappingURL=strings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strings.js","sourceRoot":"","sources":["../../src/utils/strings.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,WAAW,CAAC,CAAS;IACnC,OAAO,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,CAAS;IACvC,OAAO,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;AACxC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "@powersync/common",
3
+ "version": "1.6.1",
4
+ "publishConfig": {
5
+ "registry": "https://registry.npmjs.org/",
6
+ "access": "public"
7
+ },
8
+ "description": "API definitions for JourneyApps PowerSync",
9
+ "main": "lib/index.js",
10
+ "types": "lib/index.d.ts",
11
+ "author": "JOURNEYAPPS",
12
+ "license": "Apache-2.0",
13
+ "files": [
14
+ "lib"
15
+ ],
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "git+https://github.com/powersync-ja/powersync-js.git"
19
+ },
20
+ "bugs": {
21
+ "url": "https://github.com/powersync-ja/powersync-js/issues"
22
+ },
23
+ "homepage": "https://docs.powersync.com/resources/api-reference",
24
+ "dependencies": {
25
+ "async-mutex": "^0.4.0",
26
+ "can-ndjson-stream": "^1.0.2",
27
+ "event-iterator": "^2.0.0",
28
+ "js-logger": "^1.6.1",
29
+ "lodash": "^4.17.21",
30
+ "uuid": "^9.0.1"
31
+ },
32
+ "devDependencies": {
33
+ "@types/lodash": "^4.14.197",
34
+ "@types/node": "^20.5.9",
35
+ "@types/uuid": "^9.0.1",
36
+ "typescript": "^5.1.3"
37
+ },
38
+ "scripts": {
39
+ "build": "tsc -b",
40
+ "clean": "rm -rf lib tsconfig.tsbuildinfo"
41
+ }
42
+ }