@syncular/client 0.1.2 → 0.2.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 +227 -709
- package/dist/apply.d.ts +80 -0
- package/dist/apply.js +301 -0
- package/dist/blob.d.ts +127 -0
- package/dist/blob.js +201 -0
- package/dist/bun-database.d.ts +22 -0
- package/dist/bun-database.js +61 -0
- package/dist/client.d.ts +320 -69
- package/dist/client.js +1627 -163
- package/dist/content-type.d.ts +2 -0
- package/dist/content-type.js +2 -0
- package/dist/database.d.ts +35 -80
- package/dist/database.js +32 -947
- package/dist/encryption.d.ts +47 -0
- package/dist/encryption.js +75 -0
- package/dist/errors.d.ts +8 -22
- package/dist/errors.js +10 -207
- package/dist/http.d.ts +32 -0
- package/dist/http.js +196 -0
- package/dist/index.d.ts +28 -16
- package/dist/index.js +25 -12
- package/dist/invalidation.d.ts +69 -0
- package/dist/invalidation.js +84 -0
- package/dist/leader-lock.d.ts +28 -0
- package/dist/leader-lock.js +38 -0
- package/dist/multi-tab.d.ts +134 -0
- package/dist/multi-tab.js +399 -0
- package/dist/node-database.d.ts +41 -0
- package/dist/node-database.js +133 -0
- package/dist/outbox.d.ts +56 -0
- package/dist/outbox.js +140 -0
- package/dist/schema.d.ts +107 -0
- package/dist/schema.js +267 -0
- package/dist/state.d.ts +40 -0
- package/dist/state.js +77 -0
- package/dist/transport.d.ts +44 -0
- package/dist/transport.js +7 -0
- package/dist/wasm-database.d.ts +30 -0
- package/dist/wasm-database.js +170 -0
- package/dist/window.d.ts +64 -0
- package/dist/window.js +0 -0
- package/dist/worker-entry.d.ts +16 -2
- package/dist/worker-entry.js +300 -456
- package/dist/worker-host.d.ts +174 -0
- package/dist/worker-host.js +536 -0
- package/dist/worker-protocol.d.ts +173 -61
- package/dist/worker-protocol.js +7 -16
- package/package.json +45 -112
- package/src/apply.ts +435 -0
- package/src/blob.ts +333 -0
- package/src/bun-database.ts +75 -0
- package/src/client.ts +2247 -277
- package/src/content-type.ts +2 -0
- package/src/database.ts +63 -1389
- package/src/encryption.ts +123 -0
- package/src/errors.ts +11 -265
- package/src/http.ts +254 -0
- package/src/index.ts +25 -20
- package/src/invalidation.ts +128 -0
- package/src/leader-lock.ts +68 -0
- package/src/multi-tab.ts +550 -0
- package/src/node-database.ts +180 -0
- package/src/outbox.ts +206 -0
- package/src/schema.ts +397 -0
- package/src/state.ts +126 -0
- package/src/transport.ts +52 -0
- package/src/wasm-database.ts +279 -0
- package/src/window.ts +0 -0
- package/src/worker-entry.ts +391 -545
- package/src/worker-host.ts +800 -0
- package/src/worker-protocol.ts +204 -99
- package/dist/auth-leases.d.ts +0 -11
- package/dist/auth-leases.d.ts.map +0 -1
- package/dist/auth-leases.js +0 -140
- package/dist/auth-leases.js.map +0 -1
- package/dist/blob-limits.d.ts +0 -15
- package/dist/blob-limits.d.ts.map +0 -1
- package/dist/blob-limits.js +0 -66
- package/dist/blob-limits.js.map +0 -1
- package/dist/bridge-client.d.ts +0 -69
- package/dist/bridge-client.d.ts.map +0 -1
- package/dist/bridge-client.js +0 -282
- package/dist/bridge-client.js.map +0 -1
- package/dist/client-config.d.ts +0 -6
- package/dist/client-config.d.ts.map +0 -1
- package/dist/client-config.js +0 -18
- package/dist/client-config.js.map +0 -1
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js.map +0 -1
- package/dist/command-history.d.ts +0 -35
- package/dist/command-history.d.ts.map +0 -1
- package/dist/command-history.js +0 -378
- package/dist/command-history.js.map +0 -1
- package/dist/console-diagnostics.d.ts +0 -33
- package/dist/console-diagnostics.d.ts.map +0 -1
- package/dist/console-diagnostics.js +0 -496
- package/dist/console-diagnostics.js.map +0 -1
- package/dist/crdt-yjs/index.d.ts +0 -4
- package/dist/crdt-yjs/index.d.ts.map +0 -1
- package/dist/crdt-yjs/index.js +0 -4
- package/dist/crdt-yjs/index.js.map +0 -1
- package/dist/crdt-yjs/webview-host-facade.d.ts +0 -126
- package/dist/crdt-yjs/webview-host-facade.d.ts.map +0 -1
- package/dist/crdt-yjs/webview-host-facade.js +0 -284
- package/dist/crdt-yjs/webview-host-facade.js.map +0 -1
- package/dist/crdt-yjs/yjs-document-field-adapter.d.ts +0 -153
- package/dist/crdt-yjs/yjs-document-field-adapter.d.ts.map +0 -1
- package/dist/crdt-yjs/yjs-document-field-adapter.js +0 -406
- package/dist/crdt-yjs/yjs-document-field-adapter.js.map +0 -1
- package/dist/crdt-yjs/yjs-prosemirror-bridge.d.ts +0 -73
- package/dist/crdt-yjs/yjs-prosemirror-bridge.d.ts.map +0 -1
- package/dist/crdt-yjs/yjs-prosemirror-bridge.js +0 -169
- package/dist/crdt-yjs/yjs-prosemirror-bridge.js.map +0 -1
- package/dist/database.d.ts.map +0 -1
- package/dist/database.js.map +0 -1
- package/dist/diagnostics.d.ts +0 -10
- package/dist/diagnostics.d.ts.map +0 -1
- package/dist/diagnostics.js +0 -83
- package/dist/diagnostics.js.map +0 -1
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js.map +0 -1
- package/dist/generated-bridge.d.ts +0 -365
- package/dist/generated-bridge.d.ts.map +0 -1
- package/dist/generated-bridge.js +0 -250
- package/dist/generated-bridge.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/mutations.d.ts +0 -72
- package/dist/mutations.d.ts.map +0 -1
- package/dist/mutations.js +0 -63
- package/dist/mutations.js.map +0 -1
- package/dist/network.d.ts +0 -3
- package/dist/network.d.ts.map +0 -1
- package/dist/network.js +0 -17
- package/dist/network.js.map +0 -1
- package/dist/react/index.d.ts +0 -169
- package/dist/react/index.d.ts.map +0 -1
- package/dist/react/index.js +0 -628
- package/dist/react/index.js.map +0 -1
- package/dist/react-native/index.d.ts +0 -35
- package/dist/react-native/index.d.ts.map +0 -1
- package/dist/react-native/index.js +0 -49
- package/dist/react-native/index.js.map +0 -1
- package/dist/runtime-contract.d.ts +0 -13
- package/dist/runtime-contract.d.ts.map +0 -1
- package/dist/runtime-contract.js +0 -24
- package/dist/runtime-contract.js.map +0 -1
- package/dist/rust-client.d.ts +0 -106
- package/dist/rust-client.d.ts.map +0 -1
- package/dist/rust-client.js +0 -938
- package/dist/rust-client.js.map +0 -1
- package/dist/sentry.d.ts +0 -35
- package/dist/sentry.d.ts.map +0 -1
- package/dist/sentry.js +0 -155
- package/dist/sentry.js.map +0 -1
- package/dist/sql-safety.d.ts +0 -3
- package/dist/sql-safety.d.ts.map +0 -1
- package/dist/sql-safety.js +0 -62
- package/dist/sql-safety.js.map +0 -1
- package/dist/syncular-runtime-artifacts.json +0 -61
- package/dist/tauri/index.d.ts +0 -35
- package/dist/tauri/index.d.ts.map +0 -1
- package/dist/tauri/index.js +0 -114
- package/dist/tauri/index.js.map +0 -1
- package/dist/types.d.ts +0 -1096
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/wasm/.syncular-wasm-profile +0 -1
- package/dist/wasm/syncular-runtime-artifact.json +0 -21
- package/dist/wasm/syncular.d.ts +0 -207
- package/dist/wasm/syncular.js +0 -2341
- package/dist/wasm/syncular_bg.wasm +0 -0
- package/dist/wasm/syncular_bg.wasm.d.ts +0 -97
- package/dist/wasm-bindings/runtime-contract.d.ts +0 -22
- package/dist/wasm-bindings/runtime-contract.d.ts.map +0 -1
- package/dist/wasm-bindings/runtime-contract.js +0 -112
- package/dist/wasm-bindings/runtime-contract.js.map +0 -1
- package/dist/wasm-core/.syncular-wasm-profile +0 -1
- package/dist/wasm-core/syncular-runtime-artifact.json +0 -17
- package/dist/wasm-core/syncular.d.ts +0 -162
- package/dist/wasm-core/syncular.js +0 -1847
- package/dist/wasm-core/syncular_bg.wasm +0 -0
- package/dist/wasm-core/syncular_bg.wasm.d.ts +0 -77
- package/dist/wasm-perf/.syncular-wasm-profile +0 -1
- package/dist/wasm-perf/syncular-runtime-artifact.json +0 -21
- package/dist/wasm-perf/syncular.d.ts +0 -207
- package/dist/wasm-perf/syncular.js +0 -2341
- package/dist/wasm-perf/syncular_bg.wasm +0 -0
- package/dist/wasm-perf/syncular_bg.wasm.d.ts +0 -97
- package/dist/wasm-runtime.d.ts +0 -23
- package/dist/wasm-runtime.d.ts.map +0 -1
- package/dist/wasm-runtime.js +0 -69
- package/dist/wasm-runtime.js.map +0 -1
- package/dist/worker-client.d.ts +0 -123
- package/dist/worker-client.d.ts.map +0 -1
- package/dist/worker-client.js +0 -1735
- package/dist/worker-client.js.map +0 -1
- package/dist/worker-entry.d.ts.map +0 -1
- package/dist/worker-entry.js.map +0 -1
- package/dist/worker-protocol.d.ts.map +0 -1
- package/dist/worker-protocol.js.map +0 -1
- package/dist/worker-realtime.d.ts +0 -39
- package/dist/worker-realtime.d.ts.map +0 -1
- package/dist/worker-realtime.js +0 -677
- package/dist/worker-realtime.js.map +0 -1
- package/src/auth-leases.ts +0 -251
- package/src/blob-limits.ts +0 -98
- package/src/bridge-client.ts +0 -512
- package/src/client-config.ts +0 -29
- package/src/command-history.ts +0 -623
- package/src/console-diagnostics.ts +0 -617
- package/src/crdt-yjs/index.ts +0 -3
- package/src/crdt-yjs/webview-host-facade.ts +0 -477
- package/src/crdt-yjs/yjs-document-field-adapter.ts +0 -733
- package/src/crdt-yjs/yjs-prosemirror-bridge.ts +0 -272
- package/src/diagnostics.ts +0 -116
- package/src/generated-bridge.ts +0 -741
- package/src/mutations.ts +0 -168
- package/src/network.ts +0 -32
- package/src/react/index.ts +0 -1036
- package/src/react-native/index.ts +0 -152
- package/src/runtime-contract.ts +0 -48
- package/src/rust-client.ts +0 -1491
- package/src/sentry.ts +0 -215
- package/src/sql-safety.ts +0 -61
- package/src/tauri/index.ts +0 -211
- package/src/types.ts +0 -1397
- package/src/wasm-bindings/generated-wasm-bindings.d.ts +0 -70
- package/src/wasm-bindings/runtime-contract.ts +0 -158
- package/src/wasm-runtime.ts +0 -145
- package/src/worker-client.ts +0 -2289
- package/src/worker-realtime.ts +0 -843
package/dist/database.d.ts
CHANGED
|
@@ -1,83 +1,38 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
db: Kysely<DB>;
|
|
16
|
-
client: SyncularRuntimeClient;
|
|
17
|
-
dialect: SyncularDialect;
|
|
18
|
-
mutations: MutationsApi<DB, undefined>;
|
|
19
|
-
leasedMutations: MutationsApi<DB, undefined>;
|
|
20
|
-
blobs: SyncularBlobs;
|
|
1
|
+
/**
|
|
2
|
+
* Storage abstraction (REVISE B3): the client core runs on any SQLite that
|
|
3
|
+
* implements this minimal synchronous surface. Tests use bun:sqlite
|
|
4
|
+
* (`./bun-database`); browsers use sqlite-wasm + OPFS (`./wasm-database`).
|
|
5
|
+
* Methods are synchronous because both backends execute synchronously once
|
|
6
|
+
* open — only opening a database is async, which lives in the factories.
|
|
7
|
+
*/
|
|
8
|
+
export type SqlValue = string | number | bigint | boolean | Uint8Array | null;
|
|
9
|
+
export type SqlRow = Record<string, SqlValue>;
|
|
10
|
+
export interface ClientDatabase {
|
|
11
|
+
/** Execute a single statement (no result rows). */
|
|
12
|
+
exec(sql: string, params?: readonly SqlValue[]): void;
|
|
13
|
+
/** Execute a single statement and return its rows as objects. */
|
|
14
|
+
query(sql: string, params?: readonly SqlValue[]): SqlRow[];
|
|
21
15
|
/**
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
* and stops on `close()`. Reach for it directly only for advanced control;
|
|
25
|
-
* `start`/`stop`/`sync` proxy to it.
|
|
16
|
+
* Run `fn` atomically. Nested calls are savepoints: an inner failure
|
|
17
|
+
* rolls back only the inner scope.
|
|
26
18
|
*/
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
authLease(leaseId: string): Promise<SyncularAuthLeaseRecord | null>;
|
|
38
|
-
activeAuthLeases(actorId?: string | null, nowMs?: number): Promise<SyncularAuthLeaseRecord[]>;
|
|
39
|
-
diagnosticSnapshot(): Promise<SyncularDiagnosticSnapshot>;
|
|
40
|
-
presence: SyncularPresenceClientLike;
|
|
41
|
-
conflicts: SyncularConflictsClientLike;
|
|
42
|
-
close(): Promise<void>;
|
|
43
|
-
}
|
|
44
|
-
export declare function withSyncularSchemaWrites<DB, Result>(database: Pick<SyncularDatabase<DB>, 'client'>, callback: (db: Kysely<any>) => Promise<Result>): Promise<Result>;
|
|
45
|
-
export interface SyncularMutationsMeta {
|
|
46
|
-
operations: SyncOperation[];
|
|
47
|
-
localMutations: Array<{
|
|
48
|
-
table: string;
|
|
49
|
-
rowId: string;
|
|
50
|
-
op: 'upsert' | 'delete';
|
|
51
|
-
}>;
|
|
52
|
-
clientCommitIds: string[];
|
|
53
|
-
}
|
|
54
|
-
export interface SyncularMutationsOptions {
|
|
55
|
-
client: Pick<SyncularRuntimeClient, 'applyMutation' | 'applyMutationsBatch' | 'applyMutationsCommit' | 'applyYjsEnvelopeToPayload' | 'executeSql'> & Partial<Pick<SyncularRuntimeClient, 'applyLeasedMutation' | 'applyLeasedMutationsCommit'>>;
|
|
56
|
-
requireAuthLease?: boolean;
|
|
57
|
-
codecs?: ColumnCodecSource;
|
|
58
|
-
codecDialect?: ColumnCodecDialect;
|
|
59
|
-
idColumn?: string;
|
|
60
|
-
versionColumn?: string | null;
|
|
61
|
-
omitColumns?: string[];
|
|
62
|
-
tableConfig?: SyncularTableConfigMap;
|
|
63
|
-
readBaseVersion?: (args: {
|
|
64
|
-
table: string;
|
|
65
|
-
rowId: string;
|
|
66
|
-
idColumn: string;
|
|
67
|
-
versionColumn: string;
|
|
68
|
-
}) => Promise<number | null>;
|
|
69
|
-
afterCommit?: (meta: SyncularMutationsMeta) => void | Promise<void>;
|
|
19
|
+
transaction<T>(fn: () => T): T;
|
|
20
|
+
/**
|
|
21
|
+
* Optional sqlite-image capability (SPEC §5.3): expose `bytes` as an
|
|
22
|
+
* attached read-only database schema named `alias` for the duration of
|
|
23
|
+
* `fn`, then detach. Presence of this method is what makes the client
|
|
24
|
+
* advertise `accept` bit 2 (§4.2). MUST be called outside any open
|
|
25
|
+
* transaction (SQLite cannot ATTACH inside one); `fn` may open its own.
|
|
26
|
+
*/
|
|
27
|
+
withSqliteImage?<T>(bytes: Uint8Array, alias: string, fn: () => T): T;
|
|
28
|
+
close(): void;
|
|
70
29
|
}
|
|
71
|
-
|
|
72
|
-
export declare function
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
}):
|
|
80
|
-
export declare function createSyncularDialect(client: SyncularRuntimeClient, options?: SyncularDialectOptions): SyncularDialect;
|
|
81
|
-
export declare function createSyncularMutations<DB>(options: SyncularMutationsOptions): MutationsApi<DB, undefined>;
|
|
82
|
-
export declare function createSyncularCommit<DB>(options: SyncularMutationsOptions): MutationsCommitFn<DB, SyncularMutationsMeta, undefined>;
|
|
83
|
-
//# sourceMappingURL=database.d.ts.map
|
|
30
|
+
/** Attach-schema aliases are code-chosen, never user input — enforce it. */
|
|
31
|
+
export declare function assertImageAlias(alias: string): void;
|
|
32
|
+
/**
|
|
33
|
+
* Savepoint-based transaction helper shared by database implementations.
|
|
34
|
+
* `run` executes a parameterless statement.
|
|
35
|
+
*/
|
|
36
|
+
export declare function runTransaction<T>(depthHolder: {
|
|
37
|
+
depth: number;
|
|
38
|
+
}, run: (sql: string) => void, fn: () => T): T;
|