@crvouga/sqlite-mem 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/COMPATIBILITY-AUDIT.md +199 -0
- package/COMPATIBILITY.md +93 -0
- package/LICENSE +21 -0
- package/README.md +171 -0
- package/compat/coverage.json +21896 -0
- package/compat/fts-oracle-surface.json +198 -0
- package/compat/gate-report.json +424 -0
- package/compat/requirements.json +20929 -0
- package/dist/api/database.d.ts +26 -0
- package/dist/api/database.d.ts.map +1 -0
- package/dist/api/statement.d.ts +27 -0
- package/dist/api/statement.d.ts.map +1 -0
- package/dist/ast/nodes.d.ts +451 -0
- package/dist/ast/nodes.d.ts.map +1 -0
- package/dist/constraints/check.d.ts +12 -0
- package/dist/constraints/check.d.ts.map +1 -0
- package/dist/errors/index.d.ts +12 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/executor/attach.d.ts +6 -0
- package/dist/executor/attach.d.ts.map +1 -0
- package/dist/executor/ddl.d.ts +11 -0
- package/dist/executor/ddl.d.ts.map +1 -0
- package/dist/executor/dml.d.ts +7 -0
- package/dist/executor/dml.d.ts.map +1 -0
- package/dist/executor/env.d.ts +62 -0
- package/dist/executor/env.d.ts.map +1 -0
- package/dist/executor/execute.d.ts +5 -0
- package/dist/executor/execute.d.ts.map +1 -0
- package/dist/executor/pragma.d.ts +5 -0
- package/dist/executor/pragma.d.ts.map +1 -0
- package/dist/executor/result.d.ts +18 -0
- package/dist/executor/result.d.ts.map +1 -0
- package/dist/executor/select.d.ts +7 -0
- package/dist/executor/select.d.ts.map +1 -0
- package/dist/executor/simple-select.d.ts +10 -0
- package/dist/executor/simple-select.d.ts.map +1 -0
- package/dist/executor/triggers.d.ts +12 -0
- package/dist/executor/triggers.d.ts.map +1 -0
- package/dist/executor/vtable.d.ts +13 -0
- package/dist/executor/vtable.d.ts.map +1 -0
- package/dist/expressions/context.d.ts +28 -0
- package/dist/expressions/context.d.ts.map +1 -0
- package/dist/expressions/eval.d.ts +5 -0
- package/dist/expressions/eval.d.ts.map +1 -0
- package/dist/expressions/index.d.ts +4 -0
- package/dist/expressions/index.d.ts.map +1 -0
- package/dist/expressions/like.d.ts +5 -0
- package/dist/expressions/like.d.ts.map +1 -0
- package/dist/functions/aggregate.d.ts +9 -0
- package/dist/functions/aggregate.d.ts.map +1 -0
- package/dist/functions/datetime.d.ts +3 -0
- package/dist/functions/datetime.d.ts.map +1 -0
- package/dist/functions/extensions.d.ts +8 -0
- package/dist/functions/extensions.d.ts.map +1 -0
- package/dist/functions/index.d.ts +9 -0
- package/dist/functions/index.d.ts.map +1 -0
- package/dist/functions/json.d.ts +7 -0
- package/dist/functions/json.d.ts.map +1 -0
- package/dist/functions/math.d.ts +3 -0
- package/dist/functions/math.d.ts.map +1 -0
- package/dist/functions/registry.d.ts +38 -0
- package/dist/functions/registry.d.ts.map +1 -0
- package/dist/functions/scalar.d.ts +10 -0
- package/dist/functions/scalar.d.ts.map +1 -0
- package/dist/functions/table-valued.d.ts +9 -0
- package/dist/functions/table-valued.d.ts.map +1 -0
- package/dist/functions/window.d.ts +24 -0
- package/dist/functions/window.d.ts.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12204 -0
- package/dist/index.js.map +7 -0
- package/dist/indexes/index.d.ts +16 -0
- package/dist/indexes/index.d.ts.map +1 -0
- package/dist/json/index.d.ts +8 -0
- package/dist/json/index.d.ts.map +1 -0
- package/dist/json/jsonb.d.ts +43 -0
- package/dist/json/jsonb.d.ts.map +1 -0
- package/dist/json/ops.d.ts +19 -0
- package/dist/json/ops.d.ts.map +1 -0
- package/dist/json/parse.d.ts +14 -0
- package/dist/json/parse.d.ts.map +1 -0
- package/dist/json/path.d.ts +27 -0
- package/dist/json/path.d.ts.map +1 -0
- package/dist/json/stringify.d.ts +5 -0
- package/dist/json/stringify.d.ts.map +1 -0
- package/dist/json/tvf.d.ts +14 -0
- package/dist/json/tvf.d.ts.map +1 -0
- package/dist/json/types.d.ts +30 -0
- package/dist/json/types.d.ts.map +1 -0
- package/dist/lexer/tokenize.d.ts +17 -0
- package/dist/lexer/tokenize.d.ts.map +1 -0
- package/dist/parser/index.d.ts +5 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/parser.d.ts +104 -0
- package/dist/parser/parser.d.ts.map +1 -0
- package/dist/planner/access.d.ts +43 -0
- package/dist/planner/access.d.ts.map +1 -0
- package/dist/planner/index.d.ts +4 -0
- package/dist/planner/index.d.ts.map +1 -0
- package/dist/runtime/clock.d.ts +6 -0
- package/dist/runtime/clock.d.ts.map +1 -0
- package/dist/runtime/index.d.ts +4 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/options.d.ts +19 -0
- package/dist/runtime/options.d.ts.map +1 -0
- package/dist/runtime/prng.d.ts +20 -0
- package/dist/runtime/prng.d.ts.map +1 -0
- package/dist/schema/catalog.d.ts +15 -0
- package/dist/schema/catalog.d.ts.map +1 -0
- package/dist/serialization/codec.d.ts +12 -0
- package/dist/serialization/codec.d.ts.map +1 -0
- package/dist/serialization/index.d.ts +2 -0
- package/dist/serialization/index.d.ts.map +1 -0
- package/dist/storage/database-state.d.ts +86 -0
- package/dist/storage/database-state.d.ts.map +1 -0
- package/dist/storage/index.d.ts +7 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/row.d.ts +11 -0
- package/dist/storage/row.d.ts.map +1 -0
- package/dist/storage/table.d.ts +90 -0
- package/dist/storage/table.d.ts.map +1 -0
- package/dist/transactions/manager.d.ts +20 -0
- package/dist/transactions/manager.d.ts.map +1 -0
- package/dist/types/collation.d.ts +5 -0
- package/dist/types/collation.d.ts.map +1 -0
- package/dist/types/value.d.ts +52 -0
- package/dist/types/value.d.ts.map +1 -0
- package/dist/vtable/fts/options.d.ts +35 -0
- package/dist/vtable/fts/options.d.ts.map +1 -0
- package/dist/vtable/fts/porter.d.ts +3 -0
- package/dist/vtable/fts/porter.d.ts.map +1 -0
- package/dist/vtable/fts/query.d.ts +40 -0
- package/dist/vtable/fts/query.d.ts.map +1 -0
- package/dist/vtable/fts/table.d.ts +80 -0
- package/dist/vtable/fts/table.d.ts.map +1 -0
- package/dist/vtable/fts/tokenize.d.ts +21 -0
- package/dist/vtable/fts/tokenize.d.ts.map +1 -0
- package/dist/vtable/fts5.d.ts +2 -0
- package/dist/vtable/fts5.d.ts.map +1 -0
- package/dist/vtable/index.d.ts +3 -0
- package/dist/vtable/index.d.ts.map +1 -0
- package/dist/vtable/modules.d.ts +66 -0
- package/dist/vtable/modules.d.ts.map +1 -0
- package/package.json +107 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Rowid } from "../storage/row.ts";
|
|
2
|
+
import { type SqlValue } from "../types/value.ts";
|
|
3
|
+
export declare class IndexStore {
|
|
4
|
+
readonly name: string;
|
|
5
|
+
private entries;
|
|
6
|
+
constructor(name?: string, entries?: ReadonlyMap<string, readonly Rowid[]>);
|
|
7
|
+
checkUnique(values: readonly SqlValue[], rowid?: Rowid): void;
|
|
8
|
+
insert(values: readonly SqlValue[], rowid: Rowid, unique?: boolean): void;
|
|
9
|
+
lookup(values: readonly SqlValue[]): readonly Rowid[];
|
|
10
|
+
remove(values: readonly SqlValue[], rowid?: Rowid): boolean;
|
|
11
|
+
clear(): void;
|
|
12
|
+
clone(): IndexStore;
|
|
13
|
+
get size(): number;
|
|
14
|
+
}
|
|
15
|
+
export declare function serializeIndexKey(values: readonly SqlValue[]): string | null;
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/indexes/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAA4B,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE5E,qBAAa,UAAU;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,OAAO,CAAuB;gBAE1B,IAAI,SAAU,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC;IAQ3E,WAAW,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI;IAgB7D,MAAM,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,UAAO,GAAG,IAAI;IAatE,MAAM,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,GAAG,SAAS,KAAK,EAAE;IAMrD,MAAM,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO;IAgB3D,KAAK,IAAI,IAAI;IAIb,KAAK,IAAI,UAAU;IAInB,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,GAAG,MAAM,GAAG,IAAI,CAM5E"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { decodeJsonb, encodeJsonb, jsonbToText, looksLikeJsonb, textToJsonb, walkJsonbTree, } from "./jsonb.ts";
|
|
2
|
+
export { ensureJson, extractOne, jsonArrowPath, jsonNodeToSql, mutateJson, patchJson, removeJson, sqlToJsonInput, sqlValueToJsonNode, toJsonbBlob, toJsonText, wrapJsonError, } from "./ops.ts";
|
|
3
|
+
export { isValidJsonText, JsonParseError, jsonErrorPosition, parseJsonText } from "./parse.ts";
|
|
4
|
+
export { parseJsonPath, pathGet } from "./path.ts";
|
|
5
|
+
export { jsonQuoteString, prettyJson, stringifyJson } from "./stringify.ts";
|
|
6
|
+
export { jsonEachRows, jsonTreeRows } from "./tvf.ts";
|
|
7
|
+
export type { JsonNode, JsonTypeName } from "./types.ts";
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/json/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,cAAc,EACd,WAAW,EACX,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,UAAU,EACV,UAAU,EACV,aAAa,EACb,aAAa,EACb,UAAU,EACV,SAAS,EACT,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,UAAU,EACV,aAAa,GACd,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACtD,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { JsonNode } from "./types.ts";
|
|
2
|
+
/** JSONB element types (low nibble). */
|
|
3
|
+
export declare const JB: {
|
|
4
|
+
readonly NULL: 0;
|
|
5
|
+
readonly TRUE: 1;
|
|
6
|
+
readonly FALSE: 2;
|
|
7
|
+
readonly INT: 3;
|
|
8
|
+
readonly INT5: 4;
|
|
9
|
+
readonly FLOAT: 5;
|
|
10
|
+
readonly FLOAT5: 6;
|
|
11
|
+
readonly TEXT: 7;
|
|
12
|
+
readonly TEXTJ: 8;
|
|
13
|
+
readonly TEXT5: 9;
|
|
14
|
+
readonly TEXTRAW: 10;
|
|
15
|
+
readonly ARRAY: 11;
|
|
16
|
+
readonly OBJECT: 12;
|
|
17
|
+
};
|
|
18
|
+
export declare function encodeJsonb(node: JsonNode): Uint8Array;
|
|
19
|
+
export interface JsonbElement {
|
|
20
|
+
offset: number;
|
|
21
|
+
end: number;
|
|
22
|
+
type: number;
|
|
23
|
+
payloadOffset: number;
|
|
24
|
+
payloadSize: number;
|
|
25
|
+
}
|
|
26
|
+
export declare function readHeader(blob: Uint8Array, offset: number): JsonbElement;
|
|
27
|
+
export declare function looksLikeJsonb(blob: Uint8Array): boolean;
|
|
28
|
+
export declare function decodeJsonb(blob: Uint8Array): JsonNode;
|
|
29
|
+
/** Walk JSONB and collect element metadata for TVF id/parent assignment. */
|
|
30
|
+
export interface JsonbWalkEntry {
|
|
31
|
+
offset: number;
|
|
32
|
+
parent: number | null;
|
|
33
|
+
node: JsonNode;
|
|
34
|
+
key: string | number | null;
|
|
35
|
+
path: string;
|
|
36
|
+
fullkey: string;
|
|
37
|
+
/** For object entries, offset of the key header (used as id). */
|
|
38
|
+
idOffset: number;
|
|
39
|
+
}
|
|
40
|
+
export declare function walkJsonbTree(blob: Uint8Array): JsonbWalkEntry[];
|
|
41
|
+
export declare function jsonbToText(blob: Uint8Array): string;
|
|
42
|
+
export declare function textToJsonb(text: string): Uint8Array;
|
|
43
|
+
//# sourceMappingURL=jsonb.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsonb.d.ts","sourceRoot":"","sources":["../../src/json/jsonb.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,wCAAwC;AACxC,eAAO,MAAM,EAAE;;;;;;;;;;;;;;CAcL,CAAC;AAEX,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,CAItD;AAyED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,CAoBzE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAQxD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,QAAQ,CAItD;AAyED,4EAA4E;AAC5E,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc,EAAE,CAMhE;AA+CD,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAEpD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAEpD"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { SqlJsonText, type SqlValue } from "../types/value.ts";
|
|
2
|
+
import { type JsonNode } from "./types.ts";
|
|
3
|
+
export declare function sqlToJsonInput(value: SqlValue): JsonNode;
|
|
4
|
+
export declare function trySqlToJsonInput(value: SqlValue): JsonNode | null;
|
|
5
|
+
/** VALUE arg for insert/set/array/object — literal unless JSON subtype / JSONB. */
|
|
6
|
+
export declare function sqlValueToJsonNode(value: SqlValue): JsonNode;
|
|
7
|
+
export declare function jsonNodeToSql(node: JsonNode, mode: "sql" | "json" | "jsonb"): SqlValue;
|
|
8
|
+
export declare function jsonArrowPath(right: SqlValue): string;
|
|
9
|
+
export declare function extractOne(root: JsonNode, path: string): JsonNode | undefined;
|
|
10
|
+
export type MutateMode = "insert" | "replace" | "set";
|
|
11
|
+
export declare function mutateJson(root: JsonNode, path: string, value: JsonNode, mode: MutateMode): JsonNode;
|
|
12
|
+
export declare function removeJson(root: JsonNode, path: string): JsonNode;
|
|
13
|
+
/** RFC7396-ish JSON Merge Patch as implemented by SQLite json_patch. */
|
|
14
|
+
export declare function patchJson(target: JsonNode, patch: JsonNode): JsonNode;
|
|
15
|
+
export declare function wrapJsonError(e: unknown): never;
|
|
16
|
+
export declare function ensureJson(value: SqlValue): JsonNode;
|
|
17
|
+
export declare function toJsonbBlob(value: SqlValue): Uint8Array;
|
|
18
|
+
export declare function toJsonText(value: SqlValue): SqlJsonText;
|
|
19
|
+
//# sourceMappingURL=ops.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ops.d.ts","sourceRoot":"","sources":["../../src/json/ops.ts"],"names":[],"mappings":"AACA,OAAO,EAA2C,WAAW,EAAE,KAAK,QAAQ,EAAc,MAAM,mBAAmB,CAAC;AAKpH,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtD,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAsBxD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAMlE;AAED,mFAAmF;AACnF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAmB5D;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAgCtF;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAerD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAE7E;AAED,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAC;AAEtD,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,GAAG,QAAQ,CAYpG;AAuED,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAgBjE;AAED,wEAAwE;AACxE,wBAAgB,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAiBrE;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,KAAK,CAI/C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAMpD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,UAAU,CAGvD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,WAAW,CAEvD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SqliteError } from "../errors/index.ts";
|
|
2
|
+
import type { JsonNode } from "./types.ts";
|
|
3
|
+
export declare class JsonParseError extends Error {
|
|
4
|
+
readonly position: number;
|
|
5
|
+
constructor(message: string, position: number);
|
|
6
|
+
}
|
|
7
|
+
/** Parse JSON / JSON5-ish input into a JsonNode. Position is 1-based for errors. */
|
|
8
|
+
export declare function parseJsonText(input: string, options?: {
|
|
9
|
+
strictCanonical?: boolean;
|
|
10
|
+
}): JsonNode;
|
|
11
|
+
export declare function jsonErrorPosition(input: string): number;
|
|
12
|
+
export declare function isValidJsonText(input: string, flags?: number): boolean;
|
|
13
|
+
export declare function malformedJsonError(position?: number): SqliteError;
|
|
14
|
+
//# sourceMappingURL=parse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/json/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,qBAAa,cAAe,SAAQ,KAAK;IAGrC,QAAQ,CAAC,QAAQ,EAAE,MAAM;gBADzB,OAAO,EAAE,MAAM,EACN,QAAQ,EAAE,MAAM;CAK5B;AAED,oFAAoF;AACpF,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,QAAQ,CAQ9F;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQvD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,OAAO,CAcjE;AAgUD,wBAAgB,kBAAkB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,CAEjE"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { JsonNode } from "./types.ts";
|
|
2
|
+
export type PathStep = {
|
|
3
|
+
kind: "root";
|
|
4
|
+
} | {
|
|
5
|
+
kind: "key";
|
|
6
|
+
key: string;
|
|
7
|
+
} | {
|
|
8
|
+
kind: "index";
|
|
9
|
+
index: number;
|
|
10
|
+
} | {
|
|
11
|
+
kind: "append";
|
|
12
|
+
} | {
|
|
13
|
+
kind: "fromEnd";
|
|
14
|
+
n: number;
|
|
15
|
+
};
|
|
16
|
+
export declare function parseJsonPath(path: string): PathStep[];
|
|
17
|
+
/** Resolve path for read; returns undefined if missing. */
|
|
18
|
+
export declare function pathGet(root: JsonNode, steps: PathStep[]): JsonNode | undefined;
|
|
19
|
+
export interface PathParent {
|
|
20
|
+
parent: JsonNode;
|
|
21
|
+
step: PathStep;
|
|
22
|
+
/** For object: entry index; for array: element index (may be length for append). */
|
|
23
|
+
index: number;
|
|
24
|
+
}
|
|
25
|
+
/** Locate parent container for the final path step (for mutate). */
|
|
26
|
+
export declare function pathParent(root: JsonNode, steps: PathStep[]): PathParent | null;
|
|
27
|
+
//# sourceMappingURL=path.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../src/json/path.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,MAAM,QAAQ,GAChB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC5B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnC,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CA4EtD;AAED,2DAA2D;AAC3D,wBAAgB,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ,GAAG,SAAS,CA4B/E;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,QAAQ,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,oFAAoF;IACpF,KAAK,EAAE,MAAM,CAAC;CACf;AAED,oEAAoE;AACpE,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,UAAU,GAAG,IAAI,CAgB/E"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { JsonNode } from "./types.ts";
|
|
2
|
+
export declare function stringifyJson(node: JsonNode): string;
|
|
3
|
+
export declare function jsonQuoteString(value: string): string;
|
|
4
|
+
export declare function prettyJson(node: JsonNode, indent?: string): string;
|
|
5
|
+
//# sourceMappingURL=stringify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stringify.d.ts","sourceRoot":"","sources":["../../src/json/stringify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAkBpD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAoCrD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,SAAS,GAAG,MAAM,CAElE"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { SqlValue } from "../types/value.ts";
|
|
2
|
+
export interface JsonTvfRow {
|
|
3
|
+
key: SqlValue;
|
|
4
|
+
value: SqlValue;
|
|
5
|
+
type: string;
|
|
6
|
+
atom: SqlValue;
|
|
7
|
+
id: number;
|
|
8
|
+
parent: SqlValue;
|
|
9
|
+
fullkey: string;
|
|
10
|
+
path: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function jsonEachRows(json: SqlValue, path?: SqlValue): JsonTvfRow[];
|
|
13
|
+
export declare function jsonTreeRows(json: SqlValue, path?: SqlValue): JsonTvfRow[];
|
|
14
|
+
//# sourceMappingURL=tvf.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tvf.d.ts","sourceRoot":"","sources":["../../src/json/tvf.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAMlD,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,QAAQ,CAAC;IACd,KAAK,EAAE,QAAQ,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,QAAQ,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAwBD,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,EAAE,CA+B1E;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,EAAE,CAuB1E"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/** Internal JSON value tree used by sqlite-mem JSON1/JSONB. */
|
|
2
|
+
export type JsonNode = {
|
|
3
|
+
kind: "null";
|
|
4
|
+
} | {
|
|
5
|
+
kind: "true";
|
|
6
|
+
} | {
|
|
7
|
+
kind: "false";
|
|
8
|
+
} | {
|
|
9
|
+
kind: "integer";
|
|
10
|
+
text: string;
|
|
11
|
+
} | {
|
|
12
|
+
kind: "real";
|
|
13
|
+
text: string;
|
|
14
|
+
} | {
|
|
15
|
+
kind: "string";
|
|
16
|
+
value: string;
|
|
17
|
+
} | {
|
|
18
|
+
kind: "array";
|
|
19
|
+
elements: JsonNode[];
|
|
20
|
+
} | {
|
|
21
|
+
kind: "object";
|
|
22
|
+
entries: Array<{
|
|
23
|
+
key: string;
|
|
24
|
+
value: JsonNode;
|
|
25
|
+
}>;
|
|
26
|
+
};
|
|
27
|
+
export type JsonTypeName = "null" | "true" | "false" | "integer" | "real" | "text" | "array" | "object";
|
|
28
|
+
export declare function jsonTypeName(node: JsonNode): JsonTypeName;
|
|
29
|
+
export declare function cloneJson(node: JsonNode): JsonNode;
|
|
30
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/json/types.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAE/D,MAAM,MAAM,QAAQ,GAChB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,QAAQ,EAAE,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,QAAQ,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC;AAEzE,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAExG,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,YAAY,CAmBzD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAiBlD"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export type TokenKind = "EOF" | "IDENT" | "STRING" | "NUMBER" | "BLOB" | "PARAM_POS" | "PARAM_NAMED" | "DOT" | "COMMA" | "SEMI" | "LPAREN" | "RPAREN" | "PLUS" | "MINUS" | "STAR" | "SLASH" | "PERCENT" | "EQ" | "EQEQ" | "NE" | "LT" | "LE" | "GT" | "GE" | "CONCAT" | "AMP" | "PIPE" | "LSHIFT" | "RSHIFT" | "JSON_ARROW" | "JSON_ARROW2" | "TILDE" | "ABORT" | "ACTION" | "ADD" | "AFTER" | "ALL" | "ALTER" | "ANALYZE" | "AND" | "AS" | "ASC" | "ATTACH" | "AUTOINCREMENT" | "BEFORE" | "BEGIN" | "BETWEEN" | "BY" | "CASCADE" | "CASE" | "CAST" | "CHECK" | "COLLATE" | "COLUMN" | "COMMIT" | "CONFLICT" | "CONSTRAINT" | "CREATE" | "CROSS" | "CURRENT" | "CURRENT_DATE" | "CURRENT_TIME" | "CURRENT_TIMESTAMP" | "DATABASE" | "DEFAULT" | "DEFERRABLE" | "DEFERRED" | "DELETE" | "DESC" | "DETACH" | "DISTINCT" | "DO" | "DROP" | "EACH" | "ELSE" | "END" | "ESCAPE" | "EXCEPT" | "EXCLUDE" | "EXCLUSIVE" | "EXISTS" | "EXPLAIN" | "FAIL" | "FILTER" | "FIRST" | "FOLLOWING" | "FOR" | "FOREIGN" | "FROM" | "FULL" | "GENERATED" | "GLOB" | "GROUP" | "GROUPS" | "HAVING" | "IF" | "IGNORE" | "IMMEDIATE" | "IN" | "INDEX" | "INDEXED" | "INITIALLY" | "INNER" | "INSERT" | "INSTEAD" | "INTERSECT" | "INTO" | "IS" | "ISNULL" | "JOIN" | "KEY" | "LAST" | "LEFT" | "LIKE" | "LIMIT" | "MATCH" | "MATERIALIZED" | "NATURAL" | "NO" | "NOT" | "NOTHING" | "NOTNULL" | "NULL" | "NULLS" | "OF" | "OFFSET" | "ON" | "OR" | "ORDER" | "OTHERS" | "OUTER" | "OVER" | "PARTITION" | "PLAN" | "PRAGMA" | "PRECEDING" | "PRIMARY" | "QUERY" | "RAISE" | "RANGE" | "RECURSIVE" | "REFERENCES" | "REGEXP" | "REINDEX" | "RELEASE" | "RENAME" | "REPLACE" | "RESTRICT" | "RETURNING" | "RIGHT" | "ROLLBACK" | "ROW" | "ROWS" | "SAVEPOINT" | "SELECT" | "SET" | "TABLE" | "TEMP" | "TEMPORARY" | "THEN" | "TIES" | "TO" | "TRANSACTION" | "TRIGGER" | "UNBOUNDED" | "UNION" | "UNIQUE" | "UPDATE" | "USING" | "VACUUM" | "VALUES" | "VIEW" | "VIRTUAL" | "WHEN" | "WHERE" | "WINDOW" | "WITH" | "WITHOUT";
|
|
2
|
+
export interface Token {
|
|
3
|
+
kind: TokenKind;
|
|
4
|
+
value: string;
|
|
5
|
+
/** For NUMBER/BLOB/STRING, the parsed value */
|
|
6
|
+
literal?: string | number | bigint | Uint8Array | null;
|
|
7
|
+
/** True when a NUMBER token used float/scientific syntax. */
|
|
8
|
+
forceReal?: boolean;
|
|
9
|
+
index?: number;
|
|
10
|
+
line: number;
|
|
11
|
+
column: number;
|
|
12
|
+
start: number;
|
|
13
|
+
end: number;
|
|
14
|
+
}
|
|
15
|
+
export declare function tokenize(input: string): Token[];
|
|
16
|
+
export declare function isKeyword(kind: TokenKind): boolean;
|
|
17
|
+
//# sourceMappingURL=tokenize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenize.d.ts","sourceRoot":"","sources":["../../src/lexer/tokenize.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIjD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,qEAAqE;AACrE,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,CAG9C"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import type { Expr, SelectStmt, Statement } from "../ast/nodes.ts";
|
|
2
|
+
import type { Token } from "../lexer/tokenize.ts";
|
|
3
|
+
export declare class Parser {
|
|
4
|
+
private readonly tokens;
|
|
5
|
+
private pos;
|
|
6
|
+
constructor(tokens: Token[]);
|
|
7
|
+
private current;
|
|
8
|
+
private peek;
|
|
9
|
+
private at;
|
|
10
|
+
private check;
|
|
11
|
+
private advance;
|
|
12
|
+
private match;
|
|
13
|
+
private expect;
|
|
14
|
+
syntaxError(message: string): never;
|
|
15
|
+
/** Accept IDENT or keyword tokens as identifier names. */
|
|
16
|
+
parseIdent(): string;
|
|
17
|
+
private parseQualifiedTableName;
|
|
18
|
+
private parseTableName;
|
|
19
|
+
private parseAttachStmt;
|
|
20
|
+
private parseDetachStmt;
|
|
21
|
+
private optionalAlias;
|
|
22
|
+
parseStatements(): Statement[];
|
|
23
|
+
parseStatement(): Statement;
|
|
24
|
+
private parseAnalyzeStmt;
|
|
25
|
+
private parseReindexStmt;
|
|
26
|
+
private parseVacuumStmt;
|
|
27
|
+
private parseWithClause;
|
|
28
|
+
private parseOptionalWith;
|
|
29
|
+
parseSelectStmt(): SelectStmt;
|
|
30
|
+
private parseSelectCore;
|
|
31
|
+
private parseCompoundTail;
|
|
32
|
+
private parseResultColumns;
|
|
33
|
+
private isSelectClauseStart;
|
|
34
|
+
private parseFromItem;
|
|
35
|
+
private makeJoin;
|
|
36
|
+
private parseJoinOp;
|
|
37
|
+
private parseFromPrimary;
|
|
38
|
+
private parseValuesAsSelect;
|
|
39
|
+
private parseOrderBy;
|
|
40
|
+
private parseLimit;
|
|
41
|
+
private parseInsertStmt;
|
|
42
|
+
private parseUpsertClause;
|
|
43
|
+
private parseSetItems;
|
|
44
|
+
private parseReturning;
|
|
45
|
+
private parseUpdateStmt;
|
|
46
|
+
private parseDeleteStmt;
|
|
47
|
+
private parseCreateStmt;
|
|
48
|
+
private parseCreateVirtualTable;
|
|
49
|
+
/** One comma-separated CREATE VIRTUAL TABLE module argument (FTS options, columns, …). */
|
|
50
|
+
private parseVirtualTableArg;
|
|
51
|
+
private parseIdentOrQuoted;
|
|
52
|
+
private parseVirtualTableOptionValue;
|
|
53
|
+
private parseIfNotExists;
|
|
54
|
+
private parseIfExists;
|
|
55
|
+
private mapUpdateOr;
|
|
56
|
+
private parseCreateTable;
|
|
57
|
+
private parseColumnDef;
|
|
58
|
+
/** Type names may include optional precision/scale: VARCHAR(10), DECIMAL(10,2). */
|
|
59
|
+
private parseTypeName;
|
|
60
|
+
private isColumnConstraintStart;
|
|
61
|
+
private parseColumnConstraint;
|
|
62
|
+
private parseGeneratedConstraint;
|
|
63
|
+
private parseReferencesConstraint;
|
|
64
|
+
private parseTableConstraint;
|
|
65
|
+
private parseIndexedColumns;
|
|
66
|
+
private parseOnConflict;
|
|
67
|
+
private parseConflictAction;
|
|
68
|
+
private parseFkAction;
|
|
69
|
+
private parseFkActions;
|
|
70
|
+
private parseOrConflict;
|
|
71
|
+
private parseCreateIndex;
|
|
72
|
+
private parseCreateView;
|
|
73
|
+
private parseCreateTrigger;
|
|
74
|
+
private parseTriggerBody;
|
|
75
|
+
private parseDropStmt;
|
|
76
|
+
private parseDropTable;
|
|
77
|
+
private parseDropIndex;
|
|
78
|
+
private parseDropView;
|
|
79
|
+
private parseDropTrigger;
|
|
80
|
+
private parseAlterTableStmt;
|
|
81
|
+
private parseBeginStmt;
|
|
82
|
+
private parseCommitStmt;
|
|
83
|
+
private parseRollbackStmt;
|
|
84
|
+
private parseSavepointStmt;
|
|
85
|
+
private parseReleaseStmt;
|
|
86
|
+
private parsePragmaStmt;
|
|
87
|
+
parseExpr(): Expr;
|
|
88
|
+
private parseExprPrec;
|
|
89
|
+
private peekBinaryOp;
|
|
90
|
+
private parseIsRhs;
|
|
91
|
+
private parseInRhs;
|
|
92
|
+
private parseLikeRhs;
|
|
93
|
+
private parsePostfix;
|
|
94
|
+
private parseUnaryExpr;
|
|
95
|
+
private parsePrimaryExpr;
|
|
96
|
+
private parseIdentOrFunction;
|
|
97
|
+
private finishCall;
|
|
98
|
+
private parseCaseExpr;
|
|
99
|
+
private parseWindowSpec;
|
|
100
|
+
private parseFrameSpec;
|
|
101
|
+
private parseFrameBound;
|
|
102
|
+
}
|
|
103
|
+
export declare function parseTokens(tokens: Token[]): Statement[];
|
|
104
|
+
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parser/parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { Expr, FromItem, TableRef } from "../ast/nodes.ts";
|
|
2
|
+
import type { ExecutionEnv } from "../executor/env.ts";
|
|
3
|
+
import type { Row } from "../storage/row.ts";
|
|
4
|
+
import type { Table } from "../storage/table.ts";
|
|
5
|
+
import type { SqlValue } from "../types/value.ts";
|
|
6
|
+
export interface ConstEquality {
|
|
7
|
+
table: string | null;
|
|
8
|
+
column: string;
|
|
9
|
+
valueExpr: Expr;
|
|
10
|
+
}
|
|
11
|
+
export declare function conjunctions(expr: Expr): Expr[];
|
|
12
|
+
export declare function equalityAgainstConst(expr: Expr): ConstEquality | null;
|
|
13
|
+
export declare function whereFullyCovered(where: Expr, coveredColumns: Set<string>, alias: string, tableName: string): boolean;
|
|
14
|
+
export interface TableRowLookup {
|
|
15
|
+
table: Table;
|
|
16
|
+
alias: string;
|
|
17
|
+
rows: Row[];
|
|
18
|
+
/** Lowercased columns whose equality predicates were applied by the access path. */
|
|
19
|
+
coveredColumns: Set<string>;
|
|
20
|
+
}
|
|
21
|
+
/** Look up rows for a simple `FROM table WHERE ...` using PK, a covering equality index, or an automatic hash. */
|
|
22
|
+
export declare function tryIndexedTableRows(from: FromItem, where: Expr, env: ExecutionEnv): TableRowLookup | null;
|
|
23
|
+
export declare function lookupTableRows(from: TableRef, where: Expr, env: ExecutionEnv): TableRowLookup | null;
|
|
24
|
+
export interface JoinProbe {
|
|
25
|
+
table: Table;
|
|
26
|
+
alias: string;
|
|
27
|
+
/** When true, ON is fully applied by the probe (skip re-eval). */
|
|
28
|
+
covering: boolean;
|
|
29
|
+
lookup: (leftCellsValue: (table: string | null, name: string) => SqlValue) => Row[];
|
|
30
|
+
}
|
|
31
|
+
/** Equality join keys extracted from ON (column = column), for hash join when no index probe. */
|
|
32
|
+
export interface JoinEqualityKeys {
|
|
33
|
+
/** Right-side column names in join-key order. */
|
|
34
|
+
rightColumns: string[];
|
|
35
|
+
/** Corresponding left-side (probe) column references. */
|
|
36
|
+
leftKeys: {
|
|
37
|
+
table: string | null;
|
|
38
|
+
column: string;
|
|
39
|
+
}[];
|
|
40
|
+
}
|
|
41
|
+
export declare function tryJoinEqualityKeys(right: FromItem, on: Expr | null, env?: ExecutionEnv): JoinEqualityKeys | null;
|
|
42
|
+
export declare function tryJoinProbe(right: FromItem, on: Expr | null, env: ExecutionEnv): JoinProbe | null;
|
|
43
|
+
//# sourceMappingURL=access.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../src/planner/access.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD,OAAO,KAAK,EAAE,GAAG,EAAS,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,CAK/C;AAMD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,aAAa,GAAG,IAAI,CASrE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CASrH;AAaD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,oFAAoF;IACpF,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC7B;AAED,kHAAkH;AAClH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,GAAG,cAAc,GAAG,IAAI,CAGzG;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,GAAG,cAAc,GAAG,IAAI,CA2FrG;AAQD,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,KAAK,QAAQ,KAAK,GAAG,EAAE,CAAC;CACrF;AAED,iGAAiG;AACjG,MAAM,WAAW,gBAAgB;IAC/B,iDAAiD;IACjD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,yDAAyD;IACzD,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACtD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,YAAY,GAAG,gBAAgB,GAAG,IAAI,CAkCjH;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,CAyFlG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/planner/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,MAAM,IAAI,GAAG,SAAS,CAAC;AAE7B,wBAAgB,WAAW,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAEtD"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** Fixed reference instant used when callers do not supply a clock. */
|
|
2
|
+
export declare const DEFAULT_NOW: Date;
|
|
3
|
+
export type Clock = () => Date;
|
|
4
|
+
export declare function fixedClock(instant?: Date): Clock;
|
|
5
|
+
export declare function resolveClock(now?: Date | Clock): Clock;
|
|
6
|
+
//# sourceMappingURL=clock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clock.d.ts","sourceRoot":"","sources":["../../src/runtime/clock.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,eAAO,MAAM,WAAW,MAAuC,CAAC;AAEhE,MAAM,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC;AAE/B,wBAAgB,UAAU,CAAC,OAAO,GAAE,IAAkB,GAAG,KAAK,CAI7D;AAED,wBAAgB,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,KAAK,CAItD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/E,OAAO,EAAE,KAAK,eAAe,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Clock } from "./clock.ts";
|
|
2
|
+
import type { Prng } from "./prng.ts";
|
|
3
|
+
export interface DatabaseOptions {
|
|
4
|
+
/**
|
|
5
|
+
* Seed for deterministic `random()` (and any other PRNG-backed builtins).
|
|
6
|
+
* Defaults to `1`.
|
|
7
|
+
*/
|
|
8
|
+
seed?: number | bigint;
|
|
9
|
+
/**
|
|
10
|
+
* Clock for `date('now')` / `datetime('now')` / etc.
|
|
11
|
+
* Defaults to a fixed instant (`2000-01-01T00:00:00.000Z`).
|
|
12
|
+
* Pass a `Date` or `() => Date` to override.
|
|
13
|
+
*/
|
|
14
|
+
now?: Date | Clock;
|
|
15
|
+
/** Optional pre-built PRNG (takes precedence over `seed`). */
|
|
16
|
+
prng?: Prng;
|
|
17
|
+
}
|
|
18
|
+
export declare const DEFAULT_DATABASE_SEED = 1;
|
|
19
|
+
//# sourceMappingURL=options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/runtime/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB;;;;OAIG;IACH,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC;IACnB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAED,eAAO,MAAM,qBAAqB,IAAI,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deterministic 64-bit PRNG (xorshift64*).
|
|
3
|
+
* Used for SQLite `random()` and any other nondeterministic builtins.
|
|
4
|
+
*/
|
|
5
|
+
export declare class Prng {
|
|
6
|
+
private state;
|
|
7
|
+
constructor(seed?: number | bigint);
|
|
8
|
+
/** Next unsigned 64-bit value. */
|
|
9
|
+
nextU64(): bigint;
|
|
10
|
+
/** SQLite `random()` style signed 64-bit integer in [-2^63+1, 2^63-1]. */
|
|
11
|
+
nextSqliteRandom(): bigint;
|
|
12
|
+
nextFloat(): number;
|
|
13
|
+
nextInt(min: number, max: number): number;
|
|
14
|
+
/** Current unsigned 64-bit engine state (for snapshot / transaction rollback). */
|
|
15
|
+
getState(): bigint;
|
|
16
|
+
setState(state: bigint): void;
|
|
17
|
+
clone(): Prng;
|
|
18
|
+
}
|
|
19
|
+
export declare function deriveSeed(...parts: Array<number | string | bigint>): number;
|
|
20
|
+
//# sourceMappingURL=prng.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prng.d.ts","sourceRoot":"","sources":["../../src/runtime/prng.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,IAAI;IACf,OAAO,CAAC,KAAK,CAAS;gBAEV,IAAI,GAAE,MAAM,GAAG,MAAU;IAMrC,kCAAkC;IAClC,OAAO,IAAI,MAAM;IASjB,0EAA0E;IAC1E,gBAAgB,IAAI,MAAM;IAO1B,SAAS,IAAI,MAAM;IAKnB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAMzC,kFAAkF;IAClF,QAAQ,IAAI,MAAM;IAIlB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI7B,KAAK,IAAI,IAAI;CAKd;AAED,wBAAgB,UAAU,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,GAAG,MAAM,CAU5E"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { DatabaseState } from "../storage/database-state.ts";
|
|
2
|
+
import { Table } from "../storage/table.ts";
|
|
3
|
+
export type SchemaObjectType = "table" | "index" | "view" | "trigger";
|
|
4
|
+
export interface SchemaCatalogRow {
|
|
5
|
+
type: SchemaObjectType;
|
|
6
|
+
name: string;
|
|
7
|
+
tbl_name: string;
|
|
8
|
+
rootpage: number;
|
|
9
|
+
sql: string | null;
|
|
10
|
+
}
|
|
11
|
+
export declare function schemaCatalogRows(state: DatabaseState): SchemaCatalogRow[];
|
|
12
|
+
export declare function buildSchemaCatalog(state: DatabaseState, name?: string): Table;
|
|
13
|
+
export declare function buildSqliteSchema(state: DatabaseState): Table;
|
|
14
|
+
export declare function buildSqliteMaster(state: DatabaseState): Table;
|
|
15
|
+
//# sourceMappingURL=catalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/schema/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAkB,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAG5D,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;AAEtE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,gBAAgB,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,gBAAgB,EAAE,CA8C1E;AAOD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,SAAkB,GAAG,KAAK,CAqBtF;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,KAAK,CAE7D;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,KAAK,CAE7D"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DatabaseState } from "../storage/database-state.ts";
|
|
2
|
+
export interface SnapshotRuntime {
|
|
3
|
+
prngState: bigint;
|
|
4
|
+
nowMs: number;
|
|
5
|
+
}
|
|
6
|
+
export interface DecodedSnapshot {
|
|
7
|
+
state: DatabaseState;
|
|
8
|
+
runtime: SnapshotRuntime | null;
|
|
9
|
+
}
|
|
10
|
+
export declare function encodeDatabaseState(state: DatabaseState, runtime: SnapshotRuntime): Uint8Array;
|
|
11
|
+
export declare function decodeDatabaseState(snapshot: Uint8Array): DecodedSnapshot;
|
|
12
|
+
//# sourceMappingURL=codec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../src/serialization/codec.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAiC,MAAM,8BAA8B,CAAC;AAW5F,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;CACjC;AAkLD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,GAAG,UAAU,CA8C9F;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,UAAU,GAAG,eAAe,CA0FzE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/serialization/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,eAAe,GACrB,MAAM,YAAY,CAAC"}
|