@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.
- package/LICENSE +201 -0
- package/README.md +6 -0
- package/lib/client/AbstractPowerSyncDatabase.d.ts +367 -0
- package/lib/client/AbstractPowerSyncDatabase.js +645 -0
- package/lib/client/AbstractPowerSyncDatabase.js.map +1 -0
- package/lib/client/AbstractPowerSyncOpenFactory.d.ts +29 -0
- package/lib/client/AbstractPowerSyncOpenFactory.js +25 -0
- package/lib/client/AbstractPowerSyncOpenFactory.js.map +1 -0
- package/lib/client/connection/PowerSyncBackendConnector.d.ts +23 -0
- package/lib/client/connection/PowerSyncBackendConnector.js +2 -0
- package/lib/client/connection/PowerSyncBackendConnector.js.map +1 -0
- package/lib/client/connection/PowerSyncCredentials.d.ts +5 -0
- package/lib/client/connection/PowerSyncCredentials.js +2 -0
- package/lib/client/connection/PowerSyncCredentials.js.map +1 -0
- package/lib/client/sync/bucket/BucketStorageAdapter.d.ts +71 -0
- package/lib/client/sync/bucket/BucketStorageAdapter.js +8 -0
- package/lib/client/sync/bucket/BucketStorageAdapter.js.map +1 -0
- package/lib/client/sync/bucket/CrudBatch.d.ts +31 -0
- package/lib/client/sync/bucket/CrudBatch.js +26 -0
- package/lib/client/sync/bucket/CrudBatch.js.map +1 -0
- package/lib/client/sync/bucket/CrudEntry.d.ts +86 -0
- package/lib/client/sync/bucket/CrudEntry.js +85 -0
- package/lib/client/sync/bucket/CrudEntry.js.map +1 -0
- package/lib/client/sync/bucket/CrudTransaction.d.ts +29 -0
- package/lib/client/sync/bucket/CrudTransaction.js +25 -0
- package/lib/client/sync/bucket/CrudTransaction.js.map +1 -0
- package/lib/client/sync/bucket/OpType.d.ts +16 -0
- package/lib/client/sync/bucket/OpType.js +23 -0
- package/lib/client/sync/bucket/OpType.js.map +1 -0
- package/lib/client/sync/bucket/OplogEntry.d.ts +23 -0
- package/lib/client/sync/bucket/OplogEntry.js +34 -0
- package/lib/client/sync/bucket/OplogEntry.js.map +1 -0
- package/lib/client/sync/bucket/SqliteBucketStorage.d.ts +66 -0
- package/lib/client/sync/bucket/SqliteBucketStorage.js +299 -0
- package/lib/client/sync/bucket/SqliteBucketStorage.js.map +1 -0
- package/lib/client/sync/bucket/SyncDataBatch.d.ts +6 -0
- package/lib/client/sync/bucket/SyncDataBatch.js +12 -0
- package/lib/client/sync/bucket/SyncDataBatch.js.map +1 -0
- package/lib/client/sync/bucket/SyncDataBucket.d.ts +40 -0
- package/lib/client/sync/bucket/SyncDataBucket.js +41 -0
- package/lib/client/sync/bucket/SyncDataBucket.js.map +1 -0
- package/lib/client/sync/stream/AbstractRemote.d.ts +25 -0
- package/lib/client/sync/stream/AbstractRemote.js +43 -0
- package/lib/client/sync/stream/AbstractRemote.js.map +1 -0
- package/lib/client/sync/stream/AbstractStreamingSyncImplementation.d.ts +101 -0
- package/lib/client/sync/stream/AbstractStreamingSyncImplementation.js +478 -0
- package/lib/client/sync/stream/AbstractStreamingSyncImplementation.js.map +1 -0
- package/lib/client/sync/stream/streaming-sync-types.d.ts +116 -0
- package/lib/client/sync/stream/streaming-sync-types.js +23 -0
- package/lib/client/sync/stream/streaming-sync-types.js.map +1 -0
- package/lib/db/Column.d.ts +19 -0
- package/lib/db/Column.js +26 -0
- package/lib/db/Column.js.map +1 -0
- package/lib/db/DBAdapter.d.ts +95 -0
- package/lib/db/DBAdapter.js +20 -0
- package/lib/db/DBAdapter.js.map +1 -0
- package/lib/db/crud/SyncStatus.d.ts +38 -0
- package/lib/db/crud/SyncStatus.js +58 -0
- package/lib/db/crud/SyncStatus.js.map +1 -0
- package/lib/db/crud/UploadQueueStatus.d.ts +20 -0
- package/lib/db/crud/UploadQueueStatus.js +25 -0
- package/lib/db/crud/UploadQueueStatus.js.map +1 -0
- package/lib/db/schema/Index.d.ts +22 -0
- package/lib/db/schema/Index.js +30 -0
- package/lib/db/schema/Index.js.map +1 -0
- package/lib/db/schema/IndexedColumn.d.ts +19 -0
- package/lib/db/schema/IndexedColumn.js +30 -0
- package/lib/db/schema/IndexedColumn.js.map +1 -0
- package/lib/db/schema/Schema.d.ts +38 -0
- package/lib/db/schema/Schema.js +38 -0
- package/lib/db/schema/Schema.js.map +1 -0
- package/lib/db/schema/Table.d.ts +51 -0
- package/lib/db/schema/Table.js +114 -0
- package/lib/db/schema/Table.js.map +1 -0
- package/lib/db/schema/TableV2.d.ts +30 -0
- package/lib/db/schema/TableV2.js +44 -0
- package/lib/db/schema/TableV2.js.map +1 -0
- package/lib/index.d.ts +30 -0
- package/lib/index.js +31 -0
- package/lib/index.js.map +1 -0
- package/lib/utils/AbortOperation.d.ts +9 -0
- package/lib/utils/AbortOperation.js +19 -0
- package/lib/utils/AbortOperation.js.map +1 -0
- package/lib/utils/BaseObserver.d.ts +20 -0
- package/lib/utils/BaseObserver.js +23 -0
- package/lib/utils/BaseObserver.js.map +1 -0
- package/lib/utils/mutex.d.ts +7 -0
- package/lib/utils/mutex.js +29 -0
- package/lib/utils/mutex.js.map +1 -0
- package/lib/utils/strings.d.ts +3 -0
- package/lib/utils/strings.js +10 -0
- package/lib/utils/strings.js.map +1 -0
- 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
|
package/lib/index.js.map
ADDED
|
@@ -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,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
|
+
}
|