@syncular/client 0.0.6-95 → 0.1.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.
- package/README.md +713 -11
- package/dist/auth-leases.d.ts +11 -0
- package/dist/auth-leases.d.ts.map +1 -0
- package/dist/auth-leases.js +140 -0
- package/dist/auth-leases.js.map +1 -0
- package/dist/blob-limits.d.ts +15 -0
- package/dist/blob-limits.d.ts.map +1 -0
- package/dist/blob-limits.js +66 -0
- package/dist/blob-limits.js.map +1 -0
- package/dist/bridge-client.d.ts +69 -0
- package/dist/bridge-client.d.ts.map +1 -0
- package/dist/bridge-client.js +282 -0
- package/dist/bridge-client.js.map +1 -0
- package/dist/client-config.d.ts +6 -0
- package/dist/client-config.d.ts.map +1 -0
- package/dist/client-config.js +18 -0
- package/dist/client-config.js.map +1 -0
- package/dist/client.d.ts +65 -397
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +150 -960
- package/dist/client.js.map +1 -1
- package/dist/command-history.d.ts +35 -0
- package/dist/command-history.d.ts.map +1 -0
- package/dist/command-history.js +378 -0
- package/dist/command-history.js.map +1 -0
- package/dist/console-diagnostics.d.ts +33 -0
- package/dist/console-diagnostics.d.ts.map +1 -0
- package/dist/console-diagnostics.js +496 -0
- package/dist/console-diagnostics.js.map +1 -0
- package/dist/crdt-yjs/index.d.ts +4 -0
- package/dist/crdt-yjs/index.d.ts.map +1 -0
- package/dist/crdt-yjs/index.js +4 -0
- package/dist/crdt-yjs/index.js.map +1 -0
- package/dist/crdt-yjs/webview-host-facade.d.ts +126 -0
- package/dist/crdt-yjs/webview-host-facade.d.ts.map +1 -0
- package/dist/crdt-yjs/webview-host-facade.js +284 -0
- package/dist/crdt-yjs/webview-host-facade.js.map +1 -0
- package/dist/crdt-yjs/yjs-document-field-adapter.d.ts +153 -0
- package/dist/crdt-yjs/yjs-document-field-adapter.d.ts.map +1 -0
- package/dist/crdt-yjs/yjs-document-field-adapter.js +406 -0
- package/dist/crdt-yjs/yjs-document-field-adapter.js.map +1 -0
- package/dist/crdt-yjs/yjs-prosemirror-bridge.d.ts +73 -0
- package/dist/crdt-yjs/yjs-prosemirror-bridge.d.ts.map +1 -0
- package/dist/crdt-yjs/yjs-prosemirror-bridge.js +169 -0
- package/dist/crdt-yjs/yjs-prosemirror-bridge.js.map +1 -0
- package/dist/database.d.ts +83 -0
- package/dist/database.d.ts.map +1 -0
- package/dist/database.js +916 -0
- package/dist/database.js.map +1 -0
- package/dist/diagnostics.d.ts +10 -0
- package/dist/diagnostics.d.ts.map +1 -0
- package/dist/diagnostics.js +83 -0
- package/dist/diagnostics.js.map +1 -0
- package/dist/errors.d.ts +24 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +211 -0
- package/dist/errors.js.map +1 -0
- package/dist/generated-bridge.d.ts +365 -0
- package/dist/generated-bridge.d.ts.map +1 -0
- package/dist/generated-bridge.js +250 -0
- package/dist/generated-bridge.js.map +1 -0
- package/dist/index.d.ts +13 -23
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -25
- package/dist/index.js.map +1 -1
- package/dist/mutations.d.ts +4 -72
- package/dist/mutations.d.ts.map +1 -1
- package/dist/mutations.js +2 -568
- package/dist/mutations.js.map +1 -1
- package/dist/network.d.ts +3 -0
- package/dist/network.d.ts.map +1 -0
- package/dist/network.js +17 -0
- package/dist/network.js.map +1 -0
- package/dist/react/index.d.ts +169 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +628 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react-native/index.d.ts +35 -0
- package/dist/react-native/index.d.ts.map +1 -0
- package/dist/react-native/index.js +49 -0
- package/dist/react-native/index.js.map +1 -0
- package/dist/runtime-contract.d.ts +13 -0
- package/dist/runtime-contract.d.ts.map +1 -0
- package/dist/runtime-contract.js +24 -0
- package/dist/runtime-contract.js.map +1 -0
- package/dist/rust-client.d.ts +106 -0
- package/dist/rust-client.d.ts.map +1 -0
- package/dist/rust-client.js +936 -0
- package/dist/rust-client.js.map +1 -0
- package/dist/sentry.d.ts +35 -0
- package/dist/sentry.d.ts.map +1 -0
- package/dist/sentry.js +155 -0
- package/dist/sentry.js.map +1 -0
- package/dist/sql-safety.d.ts +3 -0
- package/dist/sql-safety.d.ts.map +1 -0
- package/dist/sql-safety.js +62 -0
- package/dist/sql-safety.js.map +1 -0
- package/dist/syncular-runtime-artifacts.json +61 -0
- package/dist/tauri/index.d.ts +35 -0
- package/dist/tauri/index.d.ts.map +1 -0
- package/dist/tauri/index.js +114 -0
- package/dist/tauri/index.js.map +1 -0
- package/dist/types.d.ts +1059 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/wasm/.syncular-wasm-profile +1 -0
- package/dist/wasm/syncular-runtime-artifact.json +21 -0
- package/dist/wasm/syncular.d.ts +207 -0
- package/dist/wasm/syncular.js +2341 -0
- package/dist/wasm/syncular_bg.wasm +0 -0
- package/dist/wasm/syncular_bg.wasm.d.ts +97 -0
- package/dist/wasm-bindings/runtime-contract.d.ts +22 -0
- package/dist/wasm-bindings/runtime-contract.d.ts.map +1 -0
- package/dist/wasm-bindings/runtime-contract.js +112 -0
- package/dist/wasm-bindings/runtime-contract.js.map +1 -0
- package/dist/wasm-core/.syncular-wasm-profile +1 -0
- package/dist/wasm-core/syncular-runtime-artifact.json +17 -0
- package/dist/wasm-core/syncular.d.ts +162 -0
- package/dist/wasm-core/syncular.js +1847 -0
- package/dist/wasm-core/syncular_bg.wasm +0 -0
- package/dist/wasm-core/syncular_bg.wasm.d.ts +77 -0
- package/dist/wasm-perf/.syncular-wasm-profile +1 -0
- package/dist/wasm-perf/syncular-runtime-artifact.json +21 -0
- package/dist/wasm-perf/syncular.d.ts +207 -0
- package/dist/wasm-perf/syncular.js +2341 -0
- package/dist/wasm-perf/syncular_bg.wasm +0 -0
- package/dist/wasm-perf/syncular_bg.wasm.d.ts +97 -0
- package/dist/wasm-runtime.d.ts +18 -0
- package/dist/wasm-runtime.d.ts.map +1 -0
- package/dist/wasm-runtime.js +28 -0
- package/dist/wasm-runtime.js.map +1 -0
- package/dist/worker-client.d.ts +123 -0
- package/dist/worker-client.d.ts.map +1 -0
- package/dist/worker-client.js +1686 -0
- package/dist/worker-client.js.map +1 -0
- package/dist/worker-entry.d.ts +2 -0
- package/dist/worker-entry.d.ts.map +1 -0
- package/dist/worker-entry.js +479 -0
- package/dist/worker-entry.js.map +1 -0
- package/dist/worker-protocol.d.ts +64 -0
- package/dist/worker-protocol.d.ts.map +1 -0
- package/dist/worker-protocol.js +16 -0
- package/dist/worker-protocol.js.map +1 -0
- package/dist/worker-realtime.d.ts +39 -0
- package/dist/worker-realtime.d.ts.map +1 -0
- package/dist/worker-realtime.js +677 -0
- package/dist/worker-realtime.js.map +1 -0
- package/package.json +124 -17
- package/src/auth-leases.ts +251 -0
- package/src/blob-limits.ts +98 -0
- package/src/bridge-client.ts +512 -0
- package/src/client-config.ts +29 -0
- package/src/client.ts +256 -1414
- package/src/command-history.ts +623 -0
- package/src/console-diagnostics.ts +617 -0
- package/src/crdt-yjs/index.ts +3 -0
- package/src/crdt-yjs/webview-host-facade.ts +477 -0
- package/src/crdt-yjs/yjs-document-field-adapter.ts +733 -0
- package/src/crdt-yjs/yjs-prosemirror-bridge.ts +272 -0
- package/src/database.ts +1342 -0
- package/src/diagnostics.ts +116 -0
- package/src/errors.ts +269 -0
- package/src/generated-bridge.ts +741 -0
- package/src/index.ts +21 -25
- package/src/mutations.ts +12 -821
- package/src/network.ts +32 -0
- package/src/react/index.ts +1036 -0
- package/src/react-native/index.ts +152 -0
- package/src/runtime-contract.ts +48 -0
- package/src/rust-client.ts +1488 -0
- package/src/sentry.ts +215 -0
- package/src/sql-safety.ts +61 -0
- package/src/tauri/index.ts +211 -0
- package/src/types.ts +1356 -0
- package/src/wasm-bindings/generated-wasm-bindings.d.ts +70 -0
- package/src/wasm-bindings/runtime-contract.ts +158 -0
- package/src/wasm-runtime.ts +76 -0
- package/src/worker-client.ts +2215 -0
- package/src/worker-entry.ts +584 -0
- package/src/worker-protocol.ts +109 -0
- package/src/worker-realtime.ts +843 -0
- package/dist/blobs/index.d.ts +0 -7
- package/dist/blobs/index.d.ts.map +0 -1
- package/dist/blobs/index.js +0 -7
- package/dist/blobs/index.js.map +0 -1
- package/dist/blobs/manager.d.ts +0 -345
- package/dist/blobs/manager.d.ts.map +0 -1
- package/dist/blobs/manager.js +0 -749
- package/dist/blobs/manager.js.map +0 -1
- package/dist/blobs/migrate.d.ts +0 -14
- package/dist/blobs/migrate.d.ts.map +0 -1
- package/dist/blobs/migrate.js +0 -59
- package/dist/blobs/migrate.js.map +0 -1
- package/dist/blobs/types.d.ts +0 -62
- package/dist/blobs/types.d.ts.map +0 -1
- package/dist/blobs/types.js +0 -5
- package/dist/blobs/types.js.map +0 -1
- package/dist/conflicts.d.ts +0 -31
- package/dist/conflicts.d.ts.map +0 -1
- package/dist/conflicts.js +0 -112
- package/dist/conflicts.js.map +0 -1
- package/dist/create-client.d.ts +0 -118
- package/dist/create-client.d.ts.map +0 -1
- package/dist/create-client.js +0 -178
- package/dist/create-client.js.map +0 -1
- package/dist/engine/SyncEngine.d.ts +0 -272
- package/dist/engine/SyncEngine.d.ts.map +0 -1
- package/dist/engine/SyncEngine.js +0 -1860
- package/dist/engine/SyncEngine.js.map +0 -1
- package/dist/engine/index.d.ts +0 -6
- package/dist/engine/index.d.ts.map +0 -1
- package/dist/engine/index.js +0 -6
- package/dist/engine/index.js.map +0 -1
- package/dist/engine/types.d.ts +0 -345
- package/dist/engine/types.d.ts.map +0 -1
- package/dist/engine/types.js +0 -7
- package/dist/engine/types.js.map +0 -1
- package/dist/handlers/collection.d.ts +0 -6
- package/dist/handlers/collection.d.ts.map +0 -1
- package/dist/handlers/collection.js +0 -21
- package/dist/handlers/collection.js.map +0 -1
- package/dist/handlers/create-handler.d.ts +0 -120
- package/dist/handlers/create-handler.d.ts.map +0 -1
- package/dist/handlers/create-handler.js +0 -145
- package/dist/handlers/create-handler.js.map +0 -1
- package/dist/handlers/types.d.ts +0 -83
- package/dist/handlers/types.d.ts.map +0 -1
- package/dist/handlers/types.js +0 -5
- package/dist/handlers/types.js.map +0 -1
- package/dist/migrate.d.ts +0 -19
- package/dist/migrate.d.ts.map +0 -1
- package/dist/migrate.js +0 -238
- package/dist/migrate.js.map +0 -1
- package/dist/outbox.d.ts +0 -112
- package/dist/outbox.d.ts.map +0 -1
- package/dist/outbox.js +0 -294
- package/dist/outbox.js.map +0 -1
- package/dist/plugins/incrementing-version.d.ts +0 -34
- package/dist/plugins/incrementing-version.d.ts.map +0 -1
- package/dist/plugins/incrementing-version.js +0 -83
- package/dist/plugins/incrementing-version.js.map +0 -1
- package/dist/plugins/index.d.ts +0 -3
- package/dist/plugins/index.d.ts.map +0 -1
- package/dist/plugins/index.js +0 -3
- package/dist/plugins/index.js.map +0 -1
- package/dist/plugins/types.d.ts +0 -49
- package/dist/plugins/types.d.ts.map +0 -1
- package/dist/plugins/types.js +0 -15
- package/dist/plugins/types.js.map +0 -1
- package/dist/proxy/connection.d.ts +0 -33
- package/dist/proxy/connection.d.ts.map +0 -1
- package/dist/proxy/connection.js +0 -153
- package/dist/proxy/connection.js.map +0 -1
- package/dist/proxy/dialect.d.ts +0 -46
- package/dist/proxy/dialect.d.ts.map +0 -1
- package/dist/proxy/dialect.js +0 -58
- package/dist/proxy/dialect.js.map +0 -1
- package/dist/proxy/driver.d.ts +0 -42
- package/dist/proxy/driver.d.ts.map +0 -1
- package/dist/proxy/driver.js +0 -78
- package/dist/proxy/driver.js.map +0 -1
- package/dist/proxy/index.d.ts +0 -10
- package/dist/proxy/index.d.ts.map +0 -1
- package/dist/proxy/index.js +0 -10
- package/dist/proxy/index.js.map +0 -1
- package/dist/proxy/mutations.d.ts +0 -9
- package/dist/proxy/mutations.d.ts.map +0 -1
- package/dist/proxy/mutations.js +0 -11
- package/dist/proxy/mutations.js.map +0 -1
- package/dist/pull-engine.d.ts +0 -48
- package/dist/pull-engine.d.ts.map +0 -1
- package/dist/pull-engine.js +0 -648
- package/dist/pull-engine.js.map +0 -1
- package/dist/push-engine.d.ts +0 -18
- package/dist/push-engine.d.ts.map +0 -1
- package/dist/push-engine.js +0 -167
- package/dist/push-engine.js.map +0 -1
- package/dist/query/FingerprintCollector.d.ts +0 -18
- package/dist/query/FingerprintCollector.d.ts.map +0 -1
- package/dist/query/FingerprintCollector.js +0 -28
- package/dist/query/FingerprintCollector.js.map +0 -1
- package/dist/query/QueryContext.d.ts +0 -33
- package/dist/query/QueryContext.d.ts.map +0 -1
- package/dist/query/QueryContext.js +0 -16
- package/dist/query/QueryContext.js.map +0 -1
- package/dist/query/fingerprint.d.ts +0 -61
- package/dist/query/fingerprint.d.ts.map +0 -1
- package/dist/query/fingerprint.js +0 -91
- package/dist/query/fingerprint.js.map +0 -1
- package/dist/query/index.d.ts +0 -7
- package/dist/query/index.d.ts.map +0 -1
- package/dist/query/index.js +0 -7
- package/dist/query/index.js.map +0 -1
- package/dist/query/tracked-select.d.ts +0 -18
- package/dist/query/tracked-select.d.ts.map +0 -1
- package/dist/query/tracked-select.js +0 -90
- package/dist/query/tracked-select.js.map +0 -1
- package/dist/schema.d.ts +0 -83
- package/dist/schema.d.ts.map +0 -1
- package/dist/schema.js +0 -7
- package/dist/schema.js.map +0 -1
- package/dist/subscription-state.d.ts +0 -46
- package/dist/subscription-state.d.ts.map +0 -1
- package/dist/subscription-state.js +0 -185
- package/dist/subscription-state.js.map +0 -1
- package/dist/sync-loop.d.ts +0 -34
- package/dist/sync-loop.d.ts.map +0 -1
- package/dist/sync-loop.js +0 -253
- package/dist/sync-loop.js.map +0 -1
- package/dist/sync.d.ts +0 -32
- package/dist/sync.d.ts.map +0 -1
- package/dist/sync.js +0 -55
- package/dist/sync.js.map +0 -1
- package/dist/utils/id.d.ts +0 -17
- package/dist/utils/id.d.ts.map +0 -1
- package/dist/utils/id.js +0 -46
- package/dist/utils/id.js.map +0 -1
- package/src/blobs/index.ts +0 -7
- package/src/blobs/manager.ts +0 -1027
- package/src/blobs/migrate.ts +0 -67
- package/src/blobs/types.ts +0 -84
- package/src/client.test.ts +0 -417
- package/src/conflicts.ts +0 -171
- package/src/create-client.test.ts +0 -83
- package/src/create-client.ts +0 -330
- package/src/engine/SyncEngine.test.ts +0 -254
- package/src/engine/SyncEngine.ts +0 -2375
- package/src/engine/index.ts +0 -6
- package/src/engine/types.ts +0 -419
- package/src/handlers/collection.ts +0 -36
- package/src/handlers/create-handler.ts +0 -330
- package/src/handlers/types.ts +0 -108
- package/src/migrate.ts +0 -318
- package/src/outbox.ts +0 -383
- package/src/plugins/incrementing-version.ts +0 -133
- package/src/plugins/index.ts +0 -2
- package/src/plugins/types.ts +0 -63
- package/src/proxy/connection.ts +0 -191
- package/src/proxy/dialect.ts +0 -76
- package/src/proxy/driver.ts +0 -126
- package/src/proxy/index.ts +0 -10
- package/src/proxy/mutations.ts +0 -18
- package/src/pull-engine.test.ts +0 -151
- package/src/pull-engine.ts +0 -855
- package/src/push-engine.ts +0 -216
- package/src/query/FingerprintCollector.ts +0 -29
- package/src/query/QueryContext.ts +0 -54
- package/src/query/fingerprint.ts +0 -109
- package/src/query/index.ts +0 -10
- package/src/query/tracked-select.ts +0 -139
- package/src/schema.ts +0 -94
- package/src/subscription-state.ts +0 -259
- package/src/sync-loop.ts +0 -379
- package/src/sync.ts +0 -170
- package/src/utils/id.ts +0 -55
package/dist/pull-engine.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pull-engine.js","sourceRoot":"","sources":["../src/pull-engine.ts"],"names":[],"mappings":"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"}
|
package/dist/push-engine.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @syncular/client - Sync push engine (commit-based)
|
|
3
|
-
*/
|
|
4
|
-
import type { SyncPushResponse, SyncTransport } from '@syncular/core';
|
|
5
|
-
import type { Kysely } from 'kysely';
|
|
6
|
-
import type { SyncClientPlugin } from './plugins/types';
|
|
7
|
-
import type { SyncClientDb } from './schema';
|
|
8
|
-
export interface SyncPushOnceOptions {
|
|
9
|
-
clientId: string;
|
|
10
|
-
actorId?: string;
|
|
11
|
-
plugins?: SyncClientPlugin[];
|
|
12
|
-
}
|
|
13
|
-
export interface SyncPushOnceResult {
|
|
14
|
-
pushed: boolean;
|
|
15
|
-
response?: SyncPushResponse;
|
|
16
|
-
}
|
|
17
|
-
export declare function syncPushOnce<DB extends SyncClientDb>(db: Kysely<DB>, transport: SyncTransport, options: SyncPushOnceOptions): Promise<SyncPushOnceResult>;
|
|
18
|
-
//# sourceMappingURL=push-engine.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"push-engine.d.ts","sourceRoot":"","sources":["../src/push-engine.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAEV,gBAAgB,EAChB,aAAa,EACd,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAQrC,OAAO,KAAK,EACV,gBAAgB,EAEjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B;AAiBD,wBAAsB,YAAY,CAAC,EAAE,SAAS,YAAY,EACxD,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,EACd,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,CAiK7B"}
|
package/dist/push-engine.js
DELETED
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @syncular/client - Sync push engine (commit-based)
|
|
3
|
-
*/
|
|
4
|
-
import { countSyncMetric } from '@syncular/core';
|
|
5
|
-
import { upsertConflictsForRejectedCommit } from './conflicts.js';
|
|
6
|
-
import { getNextSendableOutboxCommit, markOutboxCommitAcked, markOutboxCommitFailed, markOutboxCommitPending, } from './outbox.js';
|
|
7
|
-
function hasPushViaWs(transport) {
|
|
8
|
-
return 'pushViaWs' in transport && typeof transport.pushViaWs === 'function';
|
|
9
|
-
}
|
|
10
|
-
function clonePushRequest(request) {
|
|
11
|
-
if (typeof structuredClone === 'function')
|
|
12
|
-
return structuredClone(request);
|
|
13
|
-
return JSON.parse(JSON.stringify(request));
|
|
14
|
-
}
|
|
15
|
-
export async function syncPushOnce(db, transport, options) {
|
|
16
|
-
// getNextSendableOutboxCommit now atomically claims the commit
|
|
17
|
-
// (marks it as 'sending' and returns it in one operation)
|
|
18
|
-
const next = await getNextSendableOutboxCommit(db);
|
|
19
|
-
if (!next)
|
|
20
|
-
return { pushed: false };
|
|
21
|
-
const request = {
|
|
22
|
-
clientId: options.clientId,
|
|
23
|
-
clientCommitId: next.client_commit_id,
|
|
24
|
-
operations: next.operations,
|
|
25
|
-
schemaVersion: next.schema_version,
|
|
26
|
-
};
|
|
27
|
-
const ctx = {
|
|
28
|
-
actorId: options.actorId ?? 'unknown',
|
|
29
|
-
clientId: options.clientId,
|
|
30
|
-
};
|
|
31
|
-
const plugins = options.plugins ?? [];
|
|
32
|
-
let requestToSend = request;
|
|
33
|
-
if (plugins.length > 0) {
|
|
34
|
-
try {
|
|
35
|
-
requestToSend = clonePushRequest(request);
|
|
36
|
-
for (const plugin of plugins) {
|
|
37
|
-
if (!plugin.beforePush)
|
|
38
|
-
continue;
|
|
39
|
-
requestToSend = await plugin.beforePush(ctx, requestToSend);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
catch (err) {
|
|
43
|
-
const message = err instanceof Error ? err.message : 'Unknown error';
|
|
44
|
-
await markOutboxCommitPending(db, { id: next.id, error: message });
|
|
45
|
-
throw err;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
let res;
|
|
49
|
-
let usedWsPush = false;
|
|
50
|
-
try {
|
|
51
|
-
// Try WS push first if the transport supports it
|
|
52
|
-
let wsResponse = null;
|
|
53
|
-
if (hasPushViaWs(transport)) {
|
|
54
|
-
wsResponse = await transport.pushViaWs(requestToSend);
|
|
55
|
-
}
|
|
56
|
-
if (wsResponse) {
|
|
57
|
-
res = wsResponse;
|
|
58
|
-
usedWsPush = true;
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
// Fall back to HTTP
|
|
62
|
-
const combined = await transport.sync({
|
|
63
|
-
clientId: requestToSend.clientId,
|
|
64
|
-
push: {
|
|
65
|
-
clientCommitId: requestToSend.clientCommitId,
|
|
66
|
-
operations: requestToSend.operations,
|
|
67
|
-
schemaVersion: requestToSend.schemaVersion,
|
|
68
|
-
},
|
|
69
|
-
});
|
|
70
|
-
if (!combined.push) {
|
|
71
|
-
throw new Error('Server returned no push response');
|
|
72
|
-
}
|
|
73
|
-
res = combined.push;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
catch (err) {
|
|
77
|
-
const message = err instanceof Error ? err.message : 'Unknown error';
|
|
78
|
-
// Treat transport exceptions as retryable. The sync loop already applies backoff,
|
|
79
|
-
// and failed commits are reserved for terminal server rejections (e.g. conflicts).
|
|
80
|
-
await markOutboxCommitPending(db, { id: next.id, error: message });
|
|
81
|
-
throw err;
|
|
82
|
-
}
|
|
83
|
-
let responseToUse = res;
|
|
84
|
-
if (plugins.length > 0) {
|
|
85
|
-
try {
|
|
86
|
-
for (const plugin of plugins) {
|
|
87
|
-
if (!plugin.afterPush)
|
|
88
|
-
continue;
|
|
89
|
-
responseToUse = await plugin.afterPush(ctx, {
|
|
90
|
-
request: requestToSend,
|
|
91
|
-
response: responseToUse,
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
catch (err) {
|
|
96
|
-
// The server already received and processed this commit. Persist the raw response
|
|
97
|
-
// so we don't end up retrying a commit that was already applied.
|
|
98
|
-
const responseJson = JSON.stringify(res);
|
|
99
|
-
if (res.status === 'applied' || res.status === 'cached') {
|
|
100
|
-
await markOutboxCommitAcked(db, {
|
|
101
|
-
id: next.id,
|
|
102
|
-
commitSeq: res.commitSeq ?? null,
|
|
103
|
-
responseJson,
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
await upsertConflictsForRejectedCommit(db, {
|
|
108
|
-
outboxCommitId: next.id,
|
|
109
|
-
clientCommitId: next.client_commit_id,
|
|
110
|
-
response: res,
|
|
111
|
-
});
|
|
112
|
-
await markOutboxCommitFailed(db, {
|
|
113
|
-
id: next.id,
|
|
114
|
-
error: 'REJECTED',
|
|
115
|
-
responseJson,
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
throw err;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
const responseJson = JSON.stringify(responseToUse);
|
|
122
|
-
const detectedConflicts = responseToUse.results.reduce((count, result) => count + (result.status === 'conflict' ? 1 : 0), 0);
|
|
123
|
-
if (detectedConflicts > 0 && !usedWsPush) {
|
|
124
|
-
countSyncMetric('sync.conflicts.detected', detectedConflicts, {
|
|
125
|
-
attributes: {
|
|
126
|
-
source: 'client',
|
|
127
|
-
transport: 'http',
|
|
128
|
-
},
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
if (responseToUse.status === 'applied' || responseToUse.status === 'cached') {
|
|
132
|
-
await markOutboxCommitAcked(db, {
|
|
133
|
-
id: next.id,
|
|
134
|
-
commitSeq: responseToUse.commitSeq ?? null,
|
|
135
|
-
responseJson,
|
|
136
|
-
});
|
|
137
|
-
return { pushed: true, response: responseToUse };
|
|
138
|
-
}
|
|
139
|
-
// Check if all errors are retriable - if so, keep pending for retry
|
|
140
|
-
const errorResults = responseToUse.results.filter((r) => r.status === 'error');
|
|
141
|
-
const allRetriable = errorResults.length > 0 && errorResults.every((r) => r.retriable === true);
|
|
142
|
-
if (allRetriable) {
|
|
143
|
-
// All errors are retriable - keep commit pending for retry
|
|
144
|
-
const errorMessages = errorResults
|
|
145
|
-
.map((r) => r.error ?? 'Unknown error')
|
|
146
|
-
.join('; ');
|
|
147
|
-
await markOutboxCommitPending(db, {
|
|
148
|
-
id: next.id,
|
|
149
|
-
error: `Retriable: ${errorMessages}`,
|
|
150
|
-
responseJson,
|
|
151
|
-
});
|
|
152
|
-
return { pushed: true, response: responseToUse };
|
|
153
|
-
}
|
|
154
|
-
// Terminal rejection - mark as failed and record conflicts
|
|
155
|
-
await upsertConflictsForRejectedCommit(db, {
|
|
156
|
-
outboxCommitId: next.id,
|
|
157
|
-
clientCommitId: next.client_commit_id,
|
|
158
|
-
response: responseToUse,
|
|
159
|
-
});
|
|
160
|
-
await markOutboxCommitFailed(db, {
|
|
161
|
-
id: next.id,
|
|
162
|
-
error: 'REJECTED',
|
|
163
|
-
responseJson,
|
|
164
|
-
});
|
|
165
|
-
return { pushed: true, response: responseToUse };
|
|
166
|
-
}
|
|
167
|
-
//# sourceMappingURL=push-engine.js.map
|
package/dist/push-engine.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"push-engine.js","sourceRoot":"","sources":["../src/push-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @syncular/client - Fingerprint Collector
|
|
3
|
-
*
|
|
4
|
-
* Accumulates fingerprint data from multiple queries.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Fingerprint collector accumulates fingerprint data from multiple queries
|
|
8
|
-
*/
|
|
9
|
-
export declare class FingerprintCollector {
|
|
10
|
-
private fingerprints;
|
|
11
|
-
add(fingerprint: string): void;
|
|
12
|
-
/**
|
|
13
|
-
* Get combined fingerprint from all collected fingerprints
|
|
14
|
-
*/
|
|
15
|
-
getCombined(): string;
|
|
16
|
-
clear(): void;
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=FingerprintCollector.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FingerprintCollector.d.ts","sourceRoot":"","sources":["../../src/query/FingerprintCollector.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,YAAY,CAAgB;IAEpC,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAE7B;IAED;;OAEG;IACH,WAAW,IAAI,MAAM,CAIpB;IAED,KAAK,IAAI,IAAI,CAEZ;CACF"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @syncular/client - Fingerprint Collector
|
|
3
|
-
*
|
|
4
|
-
* Accumulates fingerprint data from multiple queries.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Fingerprint collector accumulates fingerprint data from multiple queries
|
|
8
|
-
*/
|
|
9
|
-
export class FingerprintCollector {
|
|
10
|
-
fingerprints = [];
|
|
11
|
-
add(fingerprint) {
|
|
12
|
-
this.fingerprints.push(fingerprint);
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Get combined fingerprint from all collected fingerprints
|
|
16
|
-
*/
|
|
17
|
-
getCombined() {
|
|
18
|
-
if (this.fingerprints.length === 0)
|
|
19
|
-
return '';
|
|
20
|
-
if (this.fingerprints.length === 1)
|
|
21
|
-
return this.fingerprints[0] ?? '';
|
|
22
|
-
return this.fingerprints.join('|');
|
|
23
|
-
}
|
|
24
|
-
clear() {
|
|
25
|
-
this.fingerprints = [];
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=FingerprintCollector.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FingerprintCollector.js","sourceRoot":"","sources":["../../src/query/FingerprintCollector.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,OAAO,oBAAoB;IACvB,YAAY,GAAa,EAAE,CAAC;IAEpC,GAAG,CAAC,WAAmB,EAAQ;QAC7B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAAA,CACrC;IAED;;OAEG;IACH,WAAW,GAAW;QACpB,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAC9C,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAAA,CACpC;IAED,KAAK,GAAS;QACZ,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IAAA,CACxB;CACF"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @syncular/client - Query Context
|
|
3
|
-
*
|
|
4
|
-
* Provides a query context with tracked selectFrom for scope tracking
|
|
5
|
-
* and automatic fingerprint generation.
|
|
6
|
-
*/
|
|
7
|
-
import type { Kysely } from 'kysely';
|
|
8
|
-
import type { SyncClientDb } from '../schema';
|
|
9
|
-
import type { FingerprintCollector } from './FingerprintCollector';
|
|
10
|
-
import type { MutationTimestampSource } from './fingerprint';
|
|
11
|
-
import { createTrackedSelectFrom } from './tracked-select';
|
|
12
|
-
export type TrackedSelectFrom<DB> = ReturnType<typeof createTrackedSelectFrom<DB>>;
|
|
13
|
-
/**
|
|
14
|
-
* Query context provided to query functions.
|
|
15
|
-
*
|
|
16
|
-
* Only `selectFrom` is exposed to ensure proper scope tracking and fingerprinting.
|
|
17
|
-
* If you need raw database access, use the db directly outside the query function.
|
|
18
|
-
*/
|
|
19
|
-
export interface QueryContext<DB extends SyncClientDb = SyncClientDb> {
|
|
20
|
-
/**
|
|
21
|
-
* Wrapped selectFrom that:
|
|
22
|
-
* 1. Registers table as watched scope
|
|
23
|
-
* 2. Intercepts .execute() to auto-detect fingerprinting mode:
|
|
24
|
-
* - Result has keyField (default: 'id')? -> row-level fingerprinting
|
|
25
|
-
* - No keyField? -> value-based fingerprinting (for aggregates)
|
|
26
|
-
*/
|
|
27
|
-
selectFrom: TrackedSelectFrom<DB>;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Create a query context with tracked selectFrom.
|
|
31
|
-
*/
|
|
32
|
-
export declare function createQueryContext<DB extends SyncClientDb>(db: Kysely<DB>, scopeCollector: Set<string>, fingerprintCollector: FingerprintCollector, engine: MutationTimestampSource, keyField?: string): QueryContext<DB>;
|
|
33
|
-
//# sourceMappingURL=QueryContext.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QueryContext.d.ts","sourceRoot":"","sources":["../../src/query/QueryContext.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,MAAM,MAAM,iBAAiB,CAAC,EAAE,IAAI,UAAU,CAC5C,OAAO,uBAAuB,CAAC,EAAE,CAAC,CACnC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,YAAY,CAAC,EAAE,SAAS,YAAY,GAAG,YAAY;IAClE;;;;;;OAMG;IACH,UAAU,EAAE,iBAAiB,CAAC,EAAE,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,SAAS,YAAY,EACxD,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,EACd,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,EAC3B,oBAAoB,EAAE,oBAAoB,EAC1C,MAAM,EAAE,uBAAuB,EAC/B,QAAQ,SAAO,GACd,YAAY,CAAC,EAAE,CAAC,CAUlB"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @syncular/client - Query Context
|
|
3
|
-
*
|
|
4
|
-
* Provides a query context with tracked selectFrom for scope tracking
|
|
5
|
-
* and automatic fingerprint generation.
|
|
6
|
-
*/
|
|
7
|
-
import { createTrackedSelectFrom } from './tracked-select.js';
|
|
8
|
-
/**
|
|
9
|
-
* Create a query context with tracked selectFrom.
|
|
10
|
-
*/
|
|
11
|
-
export function createQueryContext(db, scopeCollector, fingerprintCollector, engine, keyField = 'id') {
|
|
12
|
-
return {
|
|
13
|
-
selectFrom: createTrackedSelectFrom(db, scopeCollector, fingerprintCollector, engine, keyField),
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=QueryContext.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QueryContext.js","sourceRoot":"","sources":["../../src/query/QueryContext.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAuB3D;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,EAAc,EACd,cAA2B,EAC3B,oBAA0C,EAC1C,MAA+B,EAC/B,QAAQ,GAAG,IAAI,EACG;IAClB,OAAO;QACL,UAAU,EAAE,uBAAuB,CACjC,EAAE,EACF,cAAc,EACd,oBAAoB,EACpB,MAAM,EACN,QAAQ,CACT;KACF,CAAC;AAAA,CACH"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @syncular/client - Fingerprint-based rerender optimization utilities
|
|
3
|
-
*
|
|
4
|
-
* Provides efficient fingerprint computation for query results to avoid
|
|
5
|
-
* expensive deep equality checks. Uses mutation timestamps from the SyncEngine.
|
|
6
|
-
*/
|
|
7
|
-
export interface MutationTimestampSource {
|
|
8
|
-
getMutationTimestamp(table: string, rowId: string): number;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Compute a fingerprint for query results based on length + ids + mutation timestamps.
|
|
12
|
-
* Much faster than deep equality for large datasets.
|
|
13
|
-
*
|
|
14
|
-
* Fingerprint format: `length:id1@ts1,id2@ts2,...`
|
|
15
|
-
*
|
|
16
|
-
* @param rows - Query result rows (must have an id-like field)
|
|
17
|
-
* @param engine - SyncEngine to look up mutation timestamps
|
|
18
|
-
* @param table - Table name for timestamp lookup
|
|
19
|
-
* @param keyField - Field name to use as row identifier (default: 'id')
|
|
20
|
-
* @returns Fingerprint string for comparison
|
|
21
|
-
*
|
|
22
|
-
* @example
|
|
23
|
-
* ```ts
|
|
24
|
-
* const fingerprint = computeFingerprint(tasks, engine, 'tasks', 'id');
|
|
25
|
-
* // Returns: "3:abc@1706123456789,def@1706123456790,ghi@0"
|
|
26
|
-
* ```
|
|
27
|
-
*/
|
|
28
|
-
export declare function computeFingerprint<T extends Record<string, unknown>>(rows: T[], engine: MutationTimestampSource, table: string, keyField?: string): string;
|
|
29
|
-
/**
|
|
30
|
-
* Check if rows have the required key field for fingerprinting.
|
|
31
|
-
* Returns true for empty arrays (no data to fingerprint).
|
|
32
|
-
*
|
|
33
|
-
* @param rows - Query result rows to check
|
|
34
|
-
* @param keyField - Field name to check for (default: 'id')
|
|
35
|
-
* @returns true if rows can be fingerprinted, false otherwise
|
|
36
|
-
*
|
|
37
|
-
* @example
|
|
38
|
-
* ```ts
|
|
39
|
-
* // Can fingerprint - rows have 'id' field
|
|
40
|
-
* canFingerprint([{ id: '1', name: 'foo' }]); // true
|
|
41
|
-
*
|
|
42
|
-
* // Cannot fingerprint - rows lack 'id' field (aggregates, etc.)
|
|
43
|
-
* canFingerprint([{ count: 42 }]); // false
|
|
44
|
-
* ```
|
|
45
|
-
*/
|
|
46
|
-
export declare function canFingerprint<T>(rows: T[], keyField?: string): boolean;
|
|
47
|
-
/**
|
|
48
|
-
* Compute row-level fingerprint from query results.
|
|
49
|
-
* Format: `table:count:id1@ts1,id2@ts2,...`
|
|
50
|
-
*/
|
|
51
|
-
export declare function computeRowFingerprint(rows: unknown[], table: string, engine: MutationTimestampSource, keyField: string): string;
|
|
52
|
-
/**
|
|
53
|
-
* Compute value-based fingerprint for aggregate/scalar queries.
|
|
54
|
-
* Format: `table:hash(value)`
|
|
55
|
-
*/
|
|
56
|
-
export declare function computeValueFingerprint(table: string, value: unknown): string;
|
|
57
|
-
/**
|
|
58
|
-
* Check if result rows have the key field for row-level fingerprinting.
|
|
59
|
-
*/
|
|
60
|
-
export declare function hasKeyField(rows: unknown[], keyField: string): boolean;
|
|
61
|
-
//# sourceMappingURL=fingerprint.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fingerprint.d.ts","sourceRoot":"","sources":["../../src/query/fingerprint.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,uBAAuB;IACtC,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5D;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,IAAI,EAAE,CAAC,EAAE,EACT,MAAM,EAAE,uBAAuB,EAC/B,KAAK,EAAE,MAAM,EACb,QAAQ,SAAO,GACd,MAAM,CAWR;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,QAAQ,SAAO,GAAG,OAAO,CAGrE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,OAAO,EAAE,EACf,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,uBAAuB,EAC/B,QAAQ,EAAE,MAAM,GACf,MAAM,CAYR;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAI7E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGtE"}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @syncular/client - Fingerprint-based rerender optimization utilities
|
|
3
|
-
*
|
|
4
|
-
* Provides efficient fingerprint computation for query results to avoid
|
|
5
|
-
* expensive deep equality checks. Uses mutation timestamps from the SyncEngine.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Compute a fingerprint for query results based on length + ids + mutation timestamps.
|
|
9
|
-
* Much faster than deep equality for large datasets.
|
|
10
|
-
*
|
|
11
|
-
* Fingerprint format: `length:id1@ts1,id2@ts2,...`
|
|
12
|
-
*
|
|
13
|
-
* @param rows - Query result rows (must have an id-like field)
|
|
14
|
-
* @param engine - SyncEngine to look up mutation timestamps
|
|
15
|
-
* @param table - Table name for timestamp lookup
|
|
16
|
-
* @param keyField - Field name to use as row identifier (default: 'id')
|
|
17
|
-
* @returns Fingerprint string for comparison
|
|
18
|
-
*
|
|
19
|
-
* @example
|
|
20
|
-
* ```ts
|
|
21
|
-
* const fingerprint = computeFingerprint(tasks, engine, 'tasks', 'id');
|
|
22
|
-
* // Returns: "3:abc@1706123456789,def@1706123456790,ghi@0"
|
|
23
|
-
* ```
|
|
24
|
-
*/
|
|
25
|
-
export function computeFingerprint(rows, engine, table, keyField = 'id') {
|
|
26
|
-
if (rows.length === 0)
|
|
27
|
-
return '0:';
|
|
28
|
-
const parts = [];
|
|
29
|
-
for (const row of rows) {
|
|
30
|
-
const id = String(row[keyField] ?? '');
|
|
31
|
-
const ts = engine.getMutationTimestamp(table, id);
|
|
32
|
-
parts.push(`${id}@${ts}`);
|
|
33
|
-
}
|
|
34
|
-
return `${rows.length}:${parts.join(',')}`;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Check if rows have the required key field for fingerprinting.
|
|
38
|
-
* Returns true for empty arrays (no data to fingerprint).
|
|
39
|
-
*
|
|
40
|
-
* @param rows - Query result rows to check
|
|
41
|
-
* @param keyField - Field name to check for (default: 'id')
|
|
42
|
-
* @returns true if rows can be fingerprinted, false otherwise
|
|
43
|
-
*
|
|
44
|
-
* @example
|
|
45
|
-
* ```ts
|
|
46
|
-
* // Can fingerprint - rows have 'id' field
|
|
47
|
-
* canFingerprint([{ id: '1', name: 'foo' }]); // true
|
|
48
|
-
*
|
|
49
|
-
* // Cannot fingerprint - rows lack 'id' field (aggregates, etc.)
|
|
50
|
-
* canFingerprint([{ count: 42 }]); // false
|
|
51
|
-
* ```
|
|
52
|
-
*/
|
|
53
|
-
export function canFingerprint(rows, keyField = 'id') {
|
|
54
|
-
if (rows.length === 0)
|
|
55
|
-
return true;
|
|
56
|
-
return keyField in rows[0];
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Compute row-level fingerprint from query results.
|
|
60
|
-
* Format: `table:count:id1@ts1,id2@ts2,...`
|
|
61
|
-
*/
|
|
62
|
-
export function computeRowFingerprint(rows, table, engine, keyField) {
|
|
63
|
-
if (rows.length === 0)
|
|
64
|
-
return `${table}:0:`;
|
|
65
|
-
const parts = [];
|
|
66
|
-
for (const row of rows) {
|
|
67
|
-
const r = row;
|
|
68
|
-
const id = String(r[keyField] ?? '');
|
|
69
|
-
const ts = engine.getMutationTimestamp(table, id);
|
|
70
|
-
parts.push(`${id}@${ts}`);
|
|
71
|
-
}
|
|
72
|
-
return `${table}:${rows.length}:${parts.join(',')}`;
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Compute value-based fingerprint for aggregate/scalar queries.
|
|
76
|
-
* Format: `table:hash(value)`
|
|
77
|
-
*/
|
|
78
|
-
export function computeValueFingerprint(table, value) {
|
|
79
|
-
// Simple hash of the JSON representation
|
|
80
|
-
const json = JSON.stringify(value);
|
|
81
|
-
return `${table}:${json}`;
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Check if result rows have the key field for row-level fingerprinting.
|
|
85
|
-
*/
|
|
86
|
-
export function hasKeyField(rows, keyField) {
|
|
87
|
-
if (rows.length === 0)
|
|
88
|
-
return false;
|
|
89
|
-
return keyField in rows[0];
|
|
90
|
-
}
|
|
91
|
-
//# sourceMappingURL=fingerprint.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fingerprint.js","sourceRoot":"","sources":["../../src/query/fingerprint.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAS,EACT,MAA+B,EAC/B,KAAa,EACb,QAAQ,GAAG,IAAI,EACP;IACR,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEnC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACvC,MAAM,EAAE,GAAG,MAAM,CAAC,oBAAoB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAClD,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAAA,CAC5C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,cAAc,CAAI,IAAS,EAAE,QAAQ,GAAG,IAAI,EAAW;IACrE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,OAAO,QAAQ,IAAK,IAAI,CAAC,CAAC,CAA6B,CAAC;AAAA,CACzD;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAe,EACf,KAAa,EACb,MAA+B,EAC/B,QAAgB,EACR;IACR,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,KAAK,KAAK,CAAC;IAE5C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,CAAC,GAAG,GAA8B,CAAC;QACzC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACrC,MAAM,EAAE,GAAG,MAAM,CAAC,oBAAoB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAClD,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,GAAG,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAAA,CACrD;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAa,EAAE,KAAc,EAAU;IAC7E,yCAAyC;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACnC,OAAO,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC;AAAA,CAC3B;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAe,EAAE,QAAgB,EAAW;IACtE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,OAAO,QAAQ,IAAK,IAAI,CAAC,CAAC,CAA6B,CAAC;AAAA,CACzD"}
|
package/dist/query/index.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @syncular/client - Query utilities exports
|
|
3
|
-
*/
|
|
4
|
-
export { FingerprintCollector } from './FingerprintCollector';
|
|
5
|
-
export { canFingerprint, computeFingerprint, } from './fingerprint';
|
|
6
|
-
export { createQueryContext, type QueryContext } from './QueryContext';
|
|
7
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/query/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EACL,cAAc,EACd,kBAAkB,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/query/index.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @syncular/client - Query utilities exports
|
|
3
|
-
*/
|
|
4
|
-
export { FingerprintCollector } from './FingerprintCollector.js';
|
|
5
|
-
export { canFingerprint, computeFingerprint, } from './fingerprint.js';
|
|
6
|
-
export { createQueryContext } from './QueryContext.js';
|
|
7
|
-
//# sourceMappingURL=index.js.map
|
package/dist/query/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/query/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EACL,cAAc,EACd,kBAAkB,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAqB,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @syncular/client - Tracked SelectFrom
|
|
3
|
-
*
|
|
4
|
-
* Provides a wrapped selectFrom that:
|
|
5
|
-
* 1. Tracks tables as watched scopes when called
|
|
6
|
-
* 2. Intercepts .execute() to auto-generate fingerprints
|
|
7
|
-
*/
|
|
8
|
-
import type { Kysely } from 'kysely';
|
|
9
|
-
import type { FingerprintCollector } from './FingerprintCollector';
|
|
10
|
-
/** Portable type alias for Kysely's selectFrom method signature */
|
|
11
|
-
type TrackedSelectFrom<DB> = Kysely<DB>['selectFrom'];
|
|
12
|
-
import { type MutationTimestampSource } from './fingerprint';
|
|
13
|
-
/**
|
|
14
|
-
* Create a tracked selectFrom that registers scopes and generates fingerprints.
|
|
15
|
-
*/
|
|
16
|
-
export declare function createTrackedSelectFrom<DB>(db: Kysely<DB>, scopeCollector: Set<string>, fingerprintCollector: FingerprintCollector, engine: MutationTimestampSource, keyField?: string): TrackedSelectFrom<DB>;
|
|
17
|
-
export {};
|
|
18
|
-
//# sourceMappingURL=tracked-select.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tracked-select.d.ts","sourceRoot":"","sources":["../../src/query/tracked-select.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,mEAAmE;AACnE,KAAK,iBAAiB,CAAC,EAAE,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;AAEtD,OAAO,EAIL,KAAK,uBAAuB,EAC7B,MAAM,eAAe,CAAC;AA4FvB;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,EACxC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,EACd,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,EAC3B,oBAAoB,EAAE,oBAAoB,EAC1C,MAAM,EAAE,uBAAuB,EAC/B,QAAQ,SAAO,GACd,iBAAiB,CAAC,EAAE,CAAC,CAkBvB"}
|