@minnowdb/core 0.0.1 → 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/LICENSE +21 -0
- package/README.md +27 -1
- package/dist/block-format/block.d.ts +46 -0
- package/dist/block-format/block.d.ts.map +1 -0
- package/dist/block-format/block.js +244 -0
- package/dist/block-format/block.js.map +1 -0
- package/dist/block-format/checksum.d.ts +7 -0
- package/dist/block-format/checksum.d.ts.map +1 -0
- package/dist/block-format/checksum.js +56 -0
- package/dist/block-format/checksum.js.map +1 -0
- package/dist/block-format/codecs.d.ts +24 -0
- package/dist/block-format/codecs.d.ts.map +1 -0
- package/dist/block-format/codecs.js +102 -0
- package/dist/block-format/codecs.js.map +1 -0
- package/dist/block-format/column.d.ts +8 -0
- package/dist/block-format/column.d.ts.map +1 -0
- package/dist/block-format/column.js +166 -0
- package/dist/block-format/column.js.map +1 -0
- package/dist/block-format/index.d.ts +7 -0
- package/dist/block-format/index.d.ts.map +1 -0
- package/dist/block-format/index.js +7 -0
- package/dist/block-format/index.js.map +1 -0
- package/dist/block-format/physical.d.ts +20 -0
- package/dist/block-format/physical.d.ts.map +1 -0
- package/dist/block-format/physical.js +439 -0
- package/dist/block-format/physical.js.map +1 -0
- package/dist/block-format/types.d.ts +93 -0
- package/dist/block-format/types.d.ts.map +1 -0
- package/dist/block-format/types.js +2 -0
- package/dist/block-format/types.js.map +1 -0
- package/dist/engine/artifact-cache.d.ts +22 -0
- package/dist/engine/artifact-cache.d.ts.map +1 -0
- package/dist/engine/artifact-cache.js +68 -0
- package/dist/engine/artifact-cache.js.map +1 -0
- package/dist/engine/batch.d.ts +28 -0
- package/dist/engine/batch.d.ts.map +1 -0
- package/dist/engine/batch.js +38 -0
- package/dist/engine/batch.js.map +1 -0
- package/dist/engine/buffered-writer.d.ts +43 -0
- package/dist/engine/buffered-writer.d.ts.map +1 -0
- package/dist/engine/buffered-writer.js +158 -0
- package/dist/engine/buffered-writer.js.map +1 -0
- package/dist/engine/catalog.d.ts +82 -0
- package/dist/engine/catalog.d.ts.map +1 -0
- package/dist/engine/catalog.js +47 -0
- package/dist/engine/catalog.js.map +1 -0
- package/dist/engine/client.d.ts +211 -0
- package/dist/engine/client.d.ts.map +1 -0
- package/dist/engine/client.js +538 -0
- package/dist/engine/client.js.map +1 -0
- package/dist/engine/coordinator.d.ts +17 -0
- package/dist/engine/coordinator.d.ts.map +1 -0
- package/dist/engine/coordinator.js +60 -0
- package/dist/engine/coordinator.js.map +1 -0
- package/dist/engine/database.d.ts +661 -0
- package/dist/engine/database.d.ts.map +1 -0
- package/dist/engine/database.js +10313 -0
- package/dist/engine/database.js.map +1 -0
- package/dist/engine/defaults.d.ts +33 -0
- package/dist/engine/defaults.d.ts.map +1 -0
- package/dist/engine/defaults.js +87 -0
- package/dist/engine/defaults.js.map +1 -0
- package/dist/engine/dsl/db.d.ts +137 -0
- package/dist/engine/dsl/db.d.ts.map +1 -0
- package/dist/engine/dsl/db.js +161 -0
- package/dist/engine/dsl/db.js.map +1 -0
- package/dist/engine/dsl/expression.d.ts +172 -0
- package/dist/engine/dsl/expression.d.ts.map +1 -0
- package/dist/engine/dsl/expression.js +397 -0
- package/dist/engine/dsl/expression.js.map +1 -0
- package/dist/engine/dsl/index.d.ts +8 -0
- package/dist/engine/dsl/index.d.ts.map +1 -0
- package/dist/engine/dsl/index.js +7 -0
- package/dist/engine/dsl/index.js.map +1 -0
- package/dist/engine/dsl/live-query.d.ts +45 -0
- package/dist/engine/dsl/live-query.d.ts.map +1 -0
- package/dist/engine/dsl/live-query.js +116 -0
- package/dist/engine/dsl/live-query.js.map +1 -0
- package/dist/engine/dsl/mutations.d.ts +123 -0
- package/dist/engine/dsl/mutations.d.ts.map +1 -0
- package/dist/engine/dsl/mutations.js +241 -0
- package/dist/engine/dsl/mutations.js.map +1 -0
- package/dist/engine/dsl/select-query-builder.d.ts +148 -0
- package/dist/engine/dsl/select-query-builder.d.ts.map +1 -0
- package/dist/engine/dsl/select-query-builder.js +377 -0
- package/dist/engine/dsl/select-query-builder.js.map +1 -0
- package/dist/engine/dsl/sql-tag.d.ts +46 -0
- package/dist/engine/dsl/sql-tag.d.ts.map +1 -0
- package/dist/engine/dsl/sql-tag.js +85 -0
- package/dist/engine/dsl/sql-tag.js.map +1 -0
- package/dist/engine/dsl/types.d.ts +133 -0
- package/dist/engine/dsl/types.d.ts.map +1 -0
- package/dist/engine/dsl/types.js +9 -0
- package/dist/engine/dsl/types.js.map +1 -0
- package/dist/engine/errors.d.ts +55 -0
- package/dist/engine/errors.d.ts.map +1 -0
- package/dist/engine/errors.js +81 -0
- package/dist/engine/errors.js.map +1 -0
- package/dist/engine/fts.d.ts +93 -0
- package/dist/engine/fts.d.ts.map +1 -0
- package/dist/engine/fts.js +273 -0
- package/dist/engine/fts.js.map +1 -0
- package/dist/engine/group-index.d.ts +32 -0
- package/dist/engine/group-index.d.ts.map +1 -0
- package/dist/engine/group-index.js +366 -0
- package/dist/engine/group-index.js.map +1 -0
- package/dist/engine/index.d.ts +13 -0
- package/dist/engine/index.d.ts.map +1 -0
- package/dist/engine/index.js +12 -0
- package/dist/engine/index.js.map +1 -0
- package/dist/engine/join-index.d.ts +12 -0
- package/dist/engine/join-index.d.ts.map +1 -0
- package/dist/engine/join-index.js +217 -0
- package/dist/engine/join-index.js.map +1 -0
- package/dist/engine/live.d.ts +86 -0
- package/dist/engine/live.d.ts.map +1 -0
- package/dist/engine/live.js +289 -0
- package/dist/engine/live.js.map +1 -0
- package/dist/engine/memory.d.ts +37 -0
- package/dist/engine/memory.d.ts.map +1 -0
- package/dist/engine/memory.js +119 -0
- package/dist/engine/memory.js.map +1 -0
- package/dist/engine/optimizer.d.ts +20 -0
- package/dist/engine/optimizer.d.ts.map +1 -0
- package/dist/engine/optimizer.js +1170 -0
- package/dist/engine/optimizer.js.map +1 -0
- package/dist/engine/query-cache.d.ts +10 -0
- package/dist/engine/query-cache.d.ts.map +1 -0
- package/dist/engine/query-cache.js +58 -0
- package/dist/engine/query-cache.js.map +1 -0
- package/dist/engine/query.d.ts +844 -0
- package/dist/engine/query.d.ts.map +1 -0
- package/dist/engine/query.js +7450 -0
- package/dist/engine/query.js.map +1 -0
- package/dist/engine/schema-wire.d.ts +92 -0
- package/dist/engine/schema-wire.d.ts.map +1 -0
- package/dist/engine/schema-wire.js +115 -0
- package/dist/engine/schema-wire.js.map +1 -0
- package/dist/engine/schema.d.ts +394 -0
- package/dist/engine/schema.d.ts.map +1 -0
- package/dist/engine/schema.js +709 -0
- package/dist/engine/schema.js.map +1 -0
- package/dist/engine/sort-keys.d.ts +36 -0
- package/dist/engine/sort-keys.d.ts.map +1 -0
- package/dist/engine/sort-keys.js +60 -0
- package/dist/engine/sort-keys.js.map +1 -0
- package/dist/engine/sql-json.d.ts +30 -0
- package/dist/engine/sql-json.d.ts.map +1 -0
- package/dist/engine/sql-json.js +120 -0
- package/dist/engine/sql-json.js.map +1 -0
- package/dist/engine/sql-semantics.d.ts +31 -0
- package/dist/engine/sql-semantics.d.ts.map +1 -0
- package/dist/engine/sql-semantics.js +121 -0
- package/dist/engine/sql-semantics.js.map +1 -0
- package/dist/engine/vector.d.ts +87 -0
- package/dist/engine/vector.d.ts.map +1 -0
- package/dist/engine/vector.js +4227 -0
- package/dist/engine/vector.js.map +1 -0
- package/dist/engine/worker-host.d.ts +48 -0
- package/dist/engine/worker-host.d.ts.map +1 -0
- package/dist/engine/worker-host.js +501 -0
- package/dist/engine/worker-host.js.map +1 -0
- package/dist/engine/worker.d.ts +2 -0
- package/dist/engine/worker.d.ts.map +1 -0
- package/dist/engine/worker.js +14 -0
- package/dist/engine/worker.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/plan/index.d.ts +17 -0
- package/dist/plan/index.d.ts.map +1 -0
- package/dist/plan/index.js +17 -0
- package/dist/plan/index.js.map +1 -0
- package/dist/storage/fixture-shape.d.ts +42 -0
- package/dist/storage/fixture-shape.d.ts.map +1 -0
- package/dist/storage/fixture-shape.js +146 -0
- package/dist/storage/fixture-shape.js.map +1 -0
- package/dist/storage/index.d.ts +5 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +5 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/indexeddb.d.ts +139 -0
- package/dist/storage/indexeddb.d.ts.map +1 -0
- package/dist/storage/indexeddb.js +3161 -0
- package/dist/storage/indexeddb.js.map +1 -0
- package/dist/storage/memory.d.ts +121 -0
- package/dist/storage/memory.d.ts.map +1 -0
- package/dist/storage/memory.js +1455 -0
- package/dist/storage/memory.js.map +1 -0
- package/dist/storage/snapshot.d.ts +108 -0
- package/dist/storage/snapshot.d.ts.map +1 -0
- package/dist/storage/snapshot.js +276 -0
- package/dist/storage/snapshot.js.map +1 -0
- package/dist/storage/types.d.ts +895 -0
- package/dist/storage/types.d.ts.map +1 -0
- package/dist/storage/types.js +1549 -0
- package/dist/storage/types.js.map +1 -0
- package/dist/testing/index.d.ts +76 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +233 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/seeds.d.ts +11 -0
- package/dist/testing/seeds.d.ts.map +1 -0
- package/dist/testing/seeds.js +50 -0
- package/dist/testing/seeds.js.map +1 -0
- package/dist/transactions/index.d.ts +148 -0
- package/dist/transactions/index.d.ts.map +1 -0
- package/dist/transactions/index.js +662 -0
- package/dist/transactions/index.js.map +1 -0
- package/dist/worker-protocol/index.d.ts +84 -0
- package/dist/worker-protocol/index.d.ts.map +1 -0
- package/dist/worker-protocol/index.js +117 -0
- package/dist/worker-protocol/index.js.map +1 -0
- package/package.json +66 -16
- package/sql-feature-matrix.json +1275 -0
- package/index.d.ts +0 -1
- package/index.js +0 -1
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { type CompactionJobRecord, type GarbageCollectionJobRecord } from "../storage/index.js";
|
|
2
|
+
import { type BatchRow, type InsertBatchInput } from "./batch.js";
|
|
3
|
+
import type { Catalog } from "./catalog.js";
|
|
4
|
+
import type { BatchValue, BufferPoolStats, StagedWriteResult, BufferedFlushResult, BufferedWriterOptions, CancelCompactionJobResult, CollectGarbageOptions, CollectGarbageStepOptions, CompactTableOptions, CompactTableResult, CompactTableStepOptions, CompactionJobProgress, CreateTableInput, DatabaseRow, MigrateOptions, DeleteBatchInput, DeleteBatchResult, ExecuteResult, GarbageCollectionProgress, GarbageCollectionResult, InsertBatchResult, QueryOptions, QuerySpillCleanupOptions, QuerySpillCleanupResult, ReadTableOptions, RunStatementOptions, SnapshotExportOptions, SnapshotImportOptions, TableDefinition, UpdateBatchInput, UpdateBatchResult, UpsertBatchResult, VisibleSegment } from "./database.js";
|
|
5
|
+
import type { LiveQueryInput, LiveQueryStats, LiveQuerySubscribeOptions } from "./live.js";
|
|
6
|
+
import type { CompiledQuery, CompiledStatement, QueryResult, QueryValue } from "./query.js";
|
|
7
|
+
import type { AnyTable, SchemaDefinition } from "./schema.js";
|
|
8
|
+
import { type WireMigrationStep } from "./schema-wire.js";
|
|
9
|
+
import type { StoreDescriptor, WireDatabaseOptions } from "./worker-host.js";
|
|
10
|
+
/**
|
|
11
|
+
* Main-thread async proxy of the full database API, talking to a worker that runs
|
|
12
|
+
* `@minnowdb/core/worker` (or a custom entry built on exposeDatabase()). Construction
|
|
13
|
+
* sends the init frame immediately; because the channel is ordered, calls may be issued without
|
|
14
|
+
* awaiting ready(). Everything here stays deliberately light — the heavy engine modules are
|
|
15
|
+
* imported as types only, so a main-thread bundle carries the proxy, not the executor.
|
|
16
|
+
*
|
|
17
|
+
* Two deliberate deviations from the in-worker API, both forced by the boundary:
|
|
18
|
+
* - Every sync member becomes async (`PreparedQuery.execute()`, stats getters, `close()`).
|
|
19
|
+
* - `migrate()` takes the same schema DSL but returns wire-format steps, and typed errors are
|
|
20
|
+
* rehydrated copies — `instanceof` works, stacks point at the worker.
|
|
21
|
+
*/
|
|
22
|
+
/** The slice of Worker (or MessagePort) the client needs. */
|
|
23
|
+
export interface ClientTransport {
|
|
24
|
+
postMessage(message: unknown): void;
|
|
25
|
+
addEventListener(type: "message", listener: (event: MessageEvent<unknown>) => void): void;
|
|
26
|
+
addEventListener(type: "error" | "messageerror", listener: () => void): void;
|
|
27
|
+
terminate?(): void;
|
|
28
|
+
}
|
|
29
|
+
export interface MinnowDatabaseClientOptions {
|
|
30
|
+
/** Defaults to `{ kind: "indexeddb", name: "minnow" }`. */
|
|
31
|
+
store?: StoreDescriptor;
|
|
32
|
+
/** Cloneable database options applied when the worker constructs the database. */
|
|
33
|
+
databaseOptions?: WireDatabaseOptions;
|
|
34
|
+
}
|
|
35
|
+
export interface ClientLiveQueryOptions {
|
|
36
|
+
/** BroadcastChannel name the worker uses to exchange cross-tab commit hints. */
|
|
37
|
+
channelName?: string;
|
|
38
|
+
pollIntervalMs?: number;
|
|
39
|
+
}
|
|
40
|
+
export interface CloseClientOptions {
|
|
41
|
+
/** Also terminate the worker after disposing; only meaningful when the transport can. */
|
|
42
|
+
terminateWorker?: boolean;
|
|
43
|
+
}
|
|
44
|
+
export interface ClientMigrationResult {
|
|
45
|
+
createdTables: string[];
|
|
46
|
+
alteredTables: string[];
|
|
47
|
+
droppedTables: string[];
|
|
48
|
+
replacedViews: string[];
|
|
49
|
+
droppedViews: string[];
|
|
50
|
+
steps: WireMigrationStep[];
|
|
51
|
+
}
|
|
52
|
+
interface EventRoute {
|
|
53
|
+
onChange?: (result: QueryResult) => void;
|
|
54
|
+
onError?: (error: unknown) => void;
|
|
55
|
+
onComplete?: () => void;
|
|
56
|
+
/** Payload shape is the handle's own; only snapshot loads emit these today. */
|
|
57
|
+
onProgress?: (progress: unknown) => void;
|
|
58
|
+
}
|
|
59
|
+
export declare class MinnowDatabaseClient {
|
|
60
|
+
#private;
|
|
61
|
+
constructor(transport: ClientTransport, options?: MinnowDatabaseClientOptions);
|
|
62
|
+
/** Resolves once the worker has opened the store and constructed the database. */
|
|
63
|
+
ready(): Promise<void>;
|
|
64
|
+
createTable(input: CreateTableInput): Promise<void>;
|
|
65
|
+
/** The published catalog; see `MinnowDatabase.introspect()`. */
|
|
66
|
+
introspect(): Promise<Catalog>;
|
|
67
|
+
listTables(): Promise<TableDefinition[]>;
|
|
68
|
+
migrate(definition: SchemaDefinition<readonly AnyTable[]>, options?: MigrateOptions): Promise<ClientMigrationResult>;
|
|
69
|
+
insertBatch(tableName: string, input: InsertBatchInput): Promise<InsertBatchResult>;
|
|
70
|
+
insert(tableName: string, row: BatchRow): Promise<InsertBatchResult>;
|
|
71
|
+
upsertBatch(tableName: string, input: InsertBatchInput): Promise<UpsertBatchResult>;
|
|
72
|
+
upsert(tableName: string, row: BatchRow): Promise<UpsertBatchResult>;
|
|
73
|
+
updateBatch(tableName: string, input: UpdateBatchInput): Promise<UpdateBatchResult>;
|
|
74
|
+
update(tableName: string, key: Exclude<BatchValue, null>, changes: Readonly<Record<string, BatchValue>>): Promise<UpdateBatchResult>;
|
|
75
|
+
deleteBatch(tableName: string, input: DeleteBatchInput): Promise<DeleteBatchResult>;
|
|
76
|
+
bufferedWriter(tableName: string, options?: BufferedWriterOptions): ClientBufferedWriter;
|
|
77
|
+
readTable(tableName: string, versionOrOptions?: number | ReadTableOptions): Promise<DatabaseRow[]>;
|
|
78
|
+
query(sql: string, options?: QueryOptions): Promise<QueryResult>;
|
|
79
|
+
run<TRow>(query: {
|
|
80
|
+
kind: "typed-query";
|
|
81
|
+
plan: CompiledQuery;
|
|
82
|
+
__row?: TRow;
|
|
83
|
+
}): Promise<TRow[]>;
|
|
84
|
+
explain(sql: string): Promise<string>;
|
|
85
|
+
execute(sql: string, params?: readonly QueryValue[]): Promise<ExecuteResult>;
|
|
86
|
+
/** Executes a compiled statement from the typed mutation builders in the worker. */
|
|
87
|
+
runStatement(statement: CompiledStatement, options?: RunStatementOptions): Promise<ExecuteResult>;
|
|
88
|
+
/**
|
|
89
|
+
* Runs the callback against one pinned manifest version, exactly like the in-worker
|
|
90
|
+
* `MinnowDatabase.snapshot()`: the worker holds the version's reader lease until the
|
|
91
|
+
* callback settles, and every session query crosses the channel pinned to that version.
|
|
92
|
+
*/
|
|
93
|
+
snapshot<T>(action: (session: ClientSnapshotSession) => Promise<T>): Promise<T>;
|
|
94
|
+
/**
|
|
95
|
+
* Runs the callback against one worker-side write transaction, exactly like the in-worker
|
|
96
|
+
* `MinnowDatabase.write()`: every staged mutation crosses the channel into the shared
|
|
97
|
+
* transaction and publishes as one atomic commit when the callback returns; an error
|
|
98
|
+
* aborts the scope with nothing published.
|
|
99
|
+
*/
|
|
100
|
+
write<T>(action: (session: ClientWriteSession) => Promise<T>): Promise<{
|
|
101
|
+
result: T;
|
|
102
|
+
version: number | null;
|
|
103
|
+
}>;
|
|
104
|
+
/**
|
|
105
|
+
* Copies the database out as a portable snapshot file, exactly like the in-worker
|
|
106
|
+
* `MinnowDatabase.exportSnapshot()`. The worker encodes it and hands it back in slices, so the
|
|
107
|
+
* main thread copies a few megabytes at a time instead of stalling on one clone of the whole
|
|
108
|
+
* database; `onProgress` reports each slice as it lands.
|
|
109
|
+
*/
|
|
110
|
+
exportSnapshot(options?: SnapshotExportOptions): Promise<Uint8Array>;
|
|
111
|
+
/**
|
|
112
|
+
* Loads a snapshot file into the worker's store, which must be empty. The bytes go over in the
|
|
113
|
+
* same slices the export comes back in, and the worker's load progress arrives as events, so a
|
|
114
|
+
* multi-megabyte restore can be shown moving rather than as a frozen tab.
|
|
115
|
+
*/
|
|
116
|
+
importSnapshot(bytes: Uint8Array, options?: SnapshotImportOptions): Promise<void>;
|
|
117
|
+
/** The worker-side buffer pool's byte budget, residency, and lifetime counters. */
|
|
118
|
+
bufferPoolStats(): Promise<BufferPoolStats>;
|
|
119
|
+
liveQueries(options?: ClientLiveQueryOptions): ClientLiveQuerySet;
|
|
120
|
+
listVisibleSegments(tableName: string, version?: number): Promise<VisibleSegment[]>;
|
|
121
|
+
cleanupQuerySpill(options?: QuerySpillCleanupOptions): Promise<QuerySpillCleanupResult>;
|
|
122
|
+
compactTable(tableName: string, options?: CompactTableOptions): Promise<CompactTableResult>;
|
|
123
|
+
compactTableStep(tableName: string, options?: CompactTableStepOptions): Promise<CompactionJobProgress>;
|
|
124
|
+
resumeCompactionJob(jobId: string, options?: {
|
|
125
|
+
maxBlocks?: number;
|
|
126
|
+
}): Promise<CompactionJobProgress>;
|
|
127
|
+
listCompactionJobs(tableName?: string): Promise<CompactionJobRecord[]>;
|
|
128
|
+
cancelCompactionJob(jobId: string): Promise<CancelCompactionJobResult>;
|
|
129
|
+
collectGarbage(options?: CollectGarbageOptions): Promise<GarbageCollectionResult>;
|
|
130
|
+
collectGarbageStep(options?: CollectGarbageStepOptions): Promise<GarbageCollectionProgress>;
|
|
131
|
+
resumeGarbageCollectionJob(jobId: string, options?: {
|
|
132
|
+
maxItems?: number;
|
|
133
|
+
}): Promise<GarbageCollectionProgress>;
|
|
134
|
+
listGarbageCollectionJobs(): Promise<GarbageCollectionJobRecord[]>;
|
|
135
|
+
/** Disposes every worker-side handle, closes the store, and optionally terminates the worker. */
|
|
136
|
+
close(options?: CloseClientOptions): Promise<void>;
|
|
137
|
+
/** @internal */
|
|
138
|
+
_invoke(handleId: string, method: string, args: unknown[]): Promise<unknown>;
|
|
139
|
+
/** @internal */
|
|
140
|
+
_routeEvents(handleId: string, route: EventRoute): void;
|
|
141
|
+
/** @internal */
|
|
142
|
+
_unrouteEvents(handleId: string): void;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* The scope handed to the client `snapshot()`: queries pinned to one manifest version,
|
|
146
|
+
* consistent with each other for the lifetime of the callback.
|
|
147
|
+
*/
|
|
148
|
+
/** The scope handed to the client `write()`; mirrors the in-worker WriteSession. */
|
|
149
|
+
export interface ClientWriteSession {
|
|
150
|
+
/** Read-your-writes: observes the pre-scope snapshot plus everything staged so far. */
|
|
151
|
+
query(sql: string, options?: {
|
|
152
|
+
params?: QueryValue[];
|
|
153
|
+
}): Promise<QueryResult>;
|
|
154
|
+
insertBatch(tableName: string, input: InsertBatchInput): Promise<StagedWriteResult>;
|
|
155
|
+
upsertBatch(tableName: string, input: InsertBatchInput): Promise<StagedWriteResult>;
|
|
156
|
+
updateBatch(tableName: string, input: UpdateBatchInput): Promise<StagedWriteResult>;
|
|
157
|
+
deleteBatch(tableName: string, input: DeleteBatchInput): Promise<StagedWriteResult>;
|
|
158
|
+
}
|
|
159
|
+
export interface ClientSnapshotSession {
|
|
160
|
+
/** The pinned manifest version; null only on a database with no commits yet. */
|
|
161
|
+
readonly version: number | null;
|
|
162
|
+
query(sql: string, options?: QueryOptions): Promise<QueryResult>;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Proxy of a worker-side BufferedTableWriter. The age timer runs on the worker's clock, and
|
|
166
|
+
* onError fires for background flush failures exactly as in-worker — delivered as an event.
|
|
167
|
+
*/
|
|
168
|
+
export declare class ClientBufferedWriter {
|
|
169
|
+
#private;
|
|
170
|
+
private readonly client;
|
|
171
|
+
private readonly handleId;
|
|
172
|
+
constructor(client: MinnowDatabaseClient, handleId: string, created: Promise<unknown>);
|
|
173
|
+
add(row: Readonly<Record<string, BatchValue>>): Promise<BufferedFlushResult | undefined>;
|
|
174
|
+
flush(): Promise<BufferedFlushResult | undefined>;
|
|
175
|
+
/** Fire-and-forget: flush failures surface through onError, matching the in-worker contract. */
|
|
176
|
+
requestFlush(): void;
|
|
177
|
+
stats(): Promise<{
|
|
178
|
+
pendingRowCount: number;
|
|
179
|
+
estimatedBytes: number;
|
|
180
|
+
}>;
|
|
181
|
+
discard(): Promise<number>;
|
|
182
|
+
close(): Promise<BufferedFlushResult | undefined>;
|
|
183
|
+
}
|
|
184
|
+
/** Proxy of a worker-side LiveQuerySet; onChange/onError arrive as events from the worker. */
|
|
185
|
+
export declare class ClientLiveQuerySet {
|
|
186
|
+
#private;
|
|
187
|
+
private readonly client;
|
|
188
|
+
private readonly handleId;
|
|
189
|
+
constructor(client: MinnowDatabaseClient, handleId: string, created: Promise<unknown>);
|
|
190
|
+
/** Registers a query (SQL or a compiled-plan envelope) and re-runs it on relevant changes. */
|
|
191
|
+
subscribe(query: LiveQueryInput, options: LiveQuerySubscribeOptions): Promise<ClientLiveSubscription>;
|
|
192
|
+
stats(): Promise<LiveQueryStats>;
|
|
193
|
+
/** Hints the worker that this tab committed elsewhere (e.g. through another client). */
|
|
194
|
+
notifyLocalCommit(): void;
|
|
195
|
+
/** Runs one authoritative version check and selective re-execution sweep. */
|
|
196
|
+
refresh(): Promise<void>;
|
|
197
|
+
close(): Promise<void>;
|
|
198
|
+
}
|
|
199
|
+
export declare class ClientLiveSubscription {
|
|
200
|
+
private readonly client;
|
|
201
|
+
private readonly handleId;
|
|
202
|
+
readonly dependencyTableIds: readonly string[];
|
|
203
|
+
private readonly onClosed;
|
|
204
|
+
private readonly state;
|
|
205
|
+
constructor(client: MinnowDatabaseClient, handleId: string, dependencyTableIds: readonly string[], onClosed: () => void, state?: {
|
|
206
|
+
completed: boolean;
|
|
207
|
+
});
|
|
208
|
+
close(): Promise<void>;
|
|
209
|
+
}
|
|
210
|
+
export {};
|
|
211
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/engine/client.ts"],"names":[],"mappings":"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"}
|