@minnowdb/core 0.2.0 → 0.3.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 +21 -32
- package/dist/engine/artifact-cache.d.ts +2 -0
- package/dist/engine/artifact-cache.d.ts.map +1 -1
- package/dist/engine/artifact-cache.js +5 -0
- package/dist/engine/artifact-cache.js.map +1 -1
- package/dist/engine/batch.d.ts +6 -1
- package/dist/engine/batch.d.ts.map +1 -1
- package/dist/engine/batch.js +17 -6
- package/dist/engine/batch.js.map +1 -1
- package/dist/engine/catalog.d.ts +22 -2
- package/dist/engine/catalog.d.ts.map +1 -1
- package/dist/engine/catalog.js +30 -3
- package/dist/engine/catalog.js.map +1 -1
- package/dist/engine/client.d.ts +3 -0
- package/dist/engine/client.d.ts.map +1 -1
- package/dist/engine/client.js +21 -10
- package/dist/engine/client.js.map +1 -1
- package/dist/engine/database.d.ts +71 -5
- package/dist/engine/database.d.ts.map +1 -1
- package/dist/engine/database.js +3619 -421
- package/dist/engine/database.js.map +1 -1
- package/dist/engine/defaults.d.ts +4 -7
- package/dist/engine/defaults.d.ts.map +1 -1
- package/dist/engine/defaults.js +47 -21
- package/dist/engine/defaults.js.map +1 -1
- package/dist/engine/fts.d.ts.map +1 -1
- package/dist/engine/fts.js +2 -0
- package/dist/engine/fts.js.map +1 -1
- package/dist/engine/index.d.ts +1 -0
- package/dist/engine/index.d.ts.map +1 -1
- package/dist/engine/index.js +1 -0
- package/dist/engine/index.js.map +1 -1
- package/dist/engine/live.d.ts +6 -2
- package/dist/engine/live.d.ts.map +1 -1
- package/dist/engine/live.js +10 -2
- package/dist/engine/live.js.map +1 -1
- package/dist/engine/optimizer.d.ts.map +1 -1
- package/dist/engine/optimizer.js +258 -23
- package/dist/engine/optimizer.js.map +1 -1
- package/dist/engine/query-cache.d.ts +1 -1
- package/dist/engine/query-cache.d.ts.map +1 -1
- package/dist/engine/query-cache.js +3 -1
- package/dist/engine/query-cache.js.map +1 -1
- package/dist/engine/query.d.ts +132 -22
- package/dist/engine/query.d.ts.map +1 -1
- package/dist/engine/query.js +1368 -246
- package/dist/engine/query.js.map +1 -1
- package/dist/engine/schema-wire.d.ts +6 -2
- package/dist/engine/schema-wire.d.ts.map +1 -1
- package/dist/engine/schema-wire.js +40 -33
- package/dist/engine/schema-wire.js.map +1 -1
- package/dist/engine/schema.d.ts +157 -76
- package/dist/engine/schema.d.ts.map +1 -1
- package/dist/engine/schema.js +548 -103
- package/dist/engine/schema.js.map +1 -1
- package/dist/engine/sort-keys.d.ts +4 -3
- package/dist/engine/sort-keys.d.ts.map +1 -1
- package/dist/engine/sort-keys.js +42 -27
- package/dist/engine/sort-keys.js.map +1 -1
- package/dist/engine/sql-domains.d.ts +26 -0
- package/dist/engine/sql-domains.d.ts.map +1 -0
- package/dist/engine/sql-domains.js +421 -0
- package/dist/engine/sql-domains.js.map +1 -0
- package/dist/engine/sql-driver.d.ts +19 -0
- package/dist/engine/sql-driver.d.ts.map +1 -0
- package/dist/engine/sql-driver.js +2 -0
- package/dist/engine/sql-driver.js.map +1 -0
- package/dist/engine/sql-json.d.ts +7 -8
- package/dist/engine/sql-json.d.ts.map +1 -1
- package/dist/engine/sql-json.js +28 -14
- package/dist/engine/sql-json.js.map +1 -1
- package/dist/engine/sql-semantics.d.ts +2 -0
- package/dist/engine/sql-semantics.d.ts.map +1 -1
- package/dist/engine/sql-semantics.js +69 -3
- package/dist/engine/sql-semantics.js.map +1 -1
- package/dist/engine/vector.d.ts +5 -1
- package/dist/engine/vector.d.ts.map +1 -1
- package/dist/engine/vector.js +433 -61
- package/dist/engine/vector.js.map +1 -1
- package/dist/engine/worker-host.d.ts +1 -0
- package/dist/engine/worker-host.d.ts.map +1 -1
- package/dist/engine/worker-host.js +8 -0
- package/dist/engine/worker-host.js.map +1 -1
- package/dist/plan/index.d.ts +3 -3
- package/dist/plan/index.js +3 -3
- package/dist/storage/indexeddb.d.ts +44 -5
- package/dist/storage/indexeddb.d.ts.map +1 -1
- package/dist/storage/indexeddb.js +738 -175
- package/dist/storage/indexeddb.js.map +1 -1
- package/dist/storage/memory.d.ts +27 -10
- package/dist/storage/memory.d.ts.map +1 -1
- package/dist/storage/memory.js +67 -18
- package/dist/storage/memory.js.map +1 -1
- package/dist/storage/opfs/leader.d.ts +28 -6
- package/dist/storage/opfs/leader.d.ts.map +1 -1
- package/dist/storage/opfs/leader.js +301 -34
- package/dist/storage/opfs/leader.js.map +1 -1
- package/dist/storage/opfs/rpc.d.ts.map +1 -1
- package/dist/storage/opfs/rpc.js +2 -1
- package/dist/storage/opfs/rpc.js.map +1 -1
- package/dist/storage/opfs/store.d.ts +34 -5
- package/dist/storage/opfs/store.d.ts.map +1 -1
- package/dist/storage/opfs/store.js +41 -0
- package/dist/storage/opfs/store.js.map +1 -1
- package/dist/storage/snapshot.d.ts +14 -0
- package/dist/storage/snapshot.d.ts.map +1 -1
- package/dist/storage/snapshot.js +44 -0
- package/dist/storage/snapshot.js.map +1 -1
- package/dist/storage/toolkit/index.d.ts +1 -1
- package/dist/storage/toolkit/index.d.ts.map +1 -1
- package/dist/storage/toolkit/index.js +1 -1
- package/dist/storage/toolkit/index.js.map +1 -1
- package/dist/storage/toolkit/record-core.d.ts +19 -5
- package/dist/storage/toolkit/record-core.d.ts.map +1 -1
- package/dist/storage/toolkit/record-core.js +353 -78
- package/dist/storage/toolkit/record-core.js.map +1 -1
- package/dist/storage/toolkit/wire.d.ts +15 -0
- package/dist/storage/toolkit/wire.d.ts.map +1 -1
- package/dist/storage/toolkit/wire.js +134 -0
- package/dist/storage/toolkit/wire.js.map +1 -1
- package/dist/storage/types.d.ts +213 -31
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/types.js +291 -20
- package/dist/storage/types.js.map +1 -1
- package/dist/testing/block-store-conformance.d.ts.map +1 -1
- package/dist/testing/block-store-conformance.js +153 -2
- package/dist/testing/block-store-conformance.js.map +1 -1
- package/dist/testing/index.d.ts +9 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +23 -0
- package/dist/testing/index.js.map +1 -1
- package/dist/testing/simulator.d.ts +98 -0
- package/dist/testing/simulator.d.ts.map +1 -0
- package/dist/testing/simulator.js +560 -0
- package/dist/testing/simulator.js.map +1 -0
- package/dist/testing/sqllogictest.d.ts +90 -0
- package/dist/testing/sqllogictest.d.ts.map +1 -0
- package/dist/testing/sqllogictest.js +435 -0
- package/dist/testing/sqllogictest.js.map +1 -0
- package/dist/transactions/index.d.ts +18 -3
- package/dist/transactions/index.d.ts.map +1 -1
- package/dist/transactions/index.js +64 -8
- package/dist/transactions/index.js.map +1 -1
- package/package.json +5 -3
- package/postgres-feature-profile.json +223 -0
- package/sql-feature-matrix.json +179 -251
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ColumnDefault } from "../storage/index.js";
|
|
2
|
-
import { type AnyTable, type MigrationStep, type ReferentialAction, type SchemaColumnType, type SchemaDefinition, type TableCheck } from "./schema.js";
|
|
1
|
+
import type { ColumnDefault, SqlDomain } from "../storage/index.js";
|
|
2
|
+
import { type AnyTable, type MigrationStep, type ReferentialAction, type SchemaColumnType, type SchemaDefinition, type TableCheck, type TableForeignKey } from "./schema.js";
|
|
3
3
|
/**
|
|
4
4
|
* Structured-clone-safe mirror of the schema DSL. Column builders and table validators carry
|
|
5
5
|
* methods, so a schema cannot cross a postMessage boundary as-is; these types keep only the data
|
|
@@ -9,6 +9,8 @@ export interface WireColumn {
|
|
|
9
9
|
readonly type: SchemaColumnType;
|
|
10
10
|
readonly isNullable: boolean;
|
|
11
11
|
readonly isUnique: boolean;
|
|
12
|
+
readonly integer?: true;
|
|
13
|
+
readonly sqlDomain?: SqlDomain;
|
|
12
14
|
readonly defaultSpec?: ColumnDefault;
|
|
13
15
|
readonly renamedFromName?: string;
|
|
14
16
|
readonly reference?: {
|
|
@@ -23,6 +25,8 @@ export interface WireColumn {
|
|
|
23
25
|
export interface WireTable {
|
|
24
26
|
readonly name: string;
|
|
25
27
|
readonly columns: Record<string, WireColumn>;
|
|
28
|
+
readonly primaryKey?: readonly string[];
|
|
29
|
+
readonly foreignKeys?: readonly TableForeignKey[];
|
|
26
30
|
/** Absent rather than empty so a frame written without the field stays readable. */
|
|
27
31
|
readonly checks?: readonly TableCheck[];
|
|
28
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-wire.d.ts","sourceRoot":"","sources":["../../src/engine/schema-wire.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"schema-wire.d.ts","sourceRoot":"","sources":["../../src/engine/schema-wire.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,25 @@
|
|
|
1
|
-
import {
|
|
2
|
-
function serializeColumn(definition) {
|
|
1
|
+
import { columnFromState, schema, table, view, } from "./schema.js";
|
|
2
|
+
function serializeColumn(definition, frozen) {
|
|
3
|
+
const backfillValue = frozen === undefined
|
|
4
|
+
? typeof definition.backfillValue === "function"
|
|
5
|
+
? definition.backfillValue()
|
|
6
|
+
: definition.backfillValue
|
|
7
|
+
: frozen.backfillValue;
|
|
3
8
|
return {
|
|
4
9
|
type: definition.type,
|
|
5
10
|
isNullable: definition.isNullable,
|
|
6
11
|
isUnique: definition.isUnique,
|
|
12
|
+
...(definition.integer ? { integer: true } : {}),
|
|
13
|
+
...(definition.sqlDomain === undefined
|
|
14
|
+
? {}
|
|
15
|
+
: { sqlDomain: structuredClone(definition.sqlDomain) }),
|
|
7
16
|
...(definition.defaultSpec === undefined ? {} : { defaultSpec: { ...definition.defaultSpec } }),
|
|
8
17
|
...(definition.renamedFromName === undefined
|
|
9
18
|
? {}
|
|
10
19
|
: { renamedFromName: definition.renamedFromName }),
|
|
11
20
|
...(definition.reference === undefined ? {} : { reference: { ...definition.reference } }),
|
|
12
21
|
...(definition.enumValues === undefined ? {} : { enumValues: [...definition.enumValues] }),
|
|
13
|
-
...(
|
|
14
|
-
? {}
|
|
15
|
-
: {
|
|
16
|
-
backfillValue: typeof definition.backfillValue === "function"
|
|
17
|
-
? definition.backfillValue()
|
|
18
|
-
: definition.backfillValue,
|
|
19
|
-
}),
|
|
22
|
+
...(backfillValue === undefined ? {} : { backfillValue }),
|
|
20
23
|
};
|
|
21
24
|
}
|
|
22
25
|
function serializeTable(definition) {
|
|
@@ -26,6 +29,10 @@ function serializeTable(definition) {
|
|
|
26
29
|
name,
|
|
27
30
|
serializeColumn(columnDefinition),
|
|
28
31
|
])),
|
|
32
|
+
...(definition.primaryKey.length === 0 ? {} : { primaryKey: [...definition.primaryKey] }),
|
|
33
|
+
...(definition.foreignKeys.length === 0
|
|
34
|
+
? {}
|
|
35
|
+
: { foreignKeys: structuredClone(definition.foreignKeys) }),
|
|
29
36
|
...(definition.checks.length === 0
|
|
30
37
|
? {}
|
|
31
38
|
: { checks: definition.checks.map((check) => ({ ...check })) }),
|
|
@@ -66,7 +73,7 @@ export function serializeMigrationSteps(steps) {
|
|
|
66
73
|
kind: "add-column",
|
|
67
74
|
tableName: step.tableName,
|
|
68
75
|
columnName: step.columnName,
|
|
69
|
-
definition: serializeColumn(step.definition),
|
|
76
|
+
definition: serializeColumn(step.definition, step.backfill === undefined ? {} : { backfillValue: step.backfill }),
|
|
70
77
|
};
|
|
71
78
|
case "replace-view":
|
|
72
79
|
return { kind: "replace-view", view: serializeView(step.view) };
|
|
@@ -79,33 +86,33 @@ function deserializeColumn(wire) {
|
|
|
79
86
|
if (wire.enumValues !== undefined && wire.type !== "string") {
|
|
80
87
|
throw new TypeError(`Enum values require a string column, got ${wire.type}`);
|
|
81
88
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
// Rebuilt from the spec directly rather than through .default(), which would re-interpret the
|
|
99
|
-
// reserved generator names.
|
|
100
|
-
if (wire.defaultSpec !== undefined)
|
|
101
|
-
builder = columnWithDefaultSpec(builder, wire.defaultSpec);
|
|
102
|
-
return builder;
|
|
89
|
+
// Rebuild in one step. Chaining dynamic nullable/unique builders is needlessly invariant and
|
|
90
|
+
// used to discard a backfill when a default spec was applied last.
|
|
91
|
+
return columnFromState({
|
|
92
|
+
type: wire.type,
|
|
93
|
+
isNullable: wire.isNullable,
|
|
94
|
+
isUnique: wire.isUnique,
|
|
95
|
+
integer: wire.integer === true,
|
|
96
|
+
...(wire.sqlDomain === undefined ? {} : { sqlDomain: structuredClone(wire.sqlDomain) }),
|
|
97
|
+
...(wire.defaultSpec === undefined ? {} : { defaultSpec: wire.defaultSpec }),
|
|
98
|
+
...(wire.renamedFromName === undefined ? {} : { renamedFromName: wire.renamedFromName }),
|
|
99
|
+
...(wire.reference === undefined ? {} : { reference: wire.reference }),
|
|
100
|
+
...(wire.enumValues === undefined ? {} : { enumValues: wire.enumValues }),
|
|
101
|
+
...(wire.backfillValue === undefined ? {} : { backfillValue: wire.backfillValue }),
|
|
102
|
+
});
|
|
103
103
|
}
|
|
104
104
|
function deserializeTable(wire) {
|
|
105
|
-
|
|
105
|
+
const columns = Object.fromEntries(Object.entries(wire.columns).map(([name, columnDefinition]) => [
|
|
106
106
|
name,
|
|
107
107
|
deserializeColumn(columnDefinition),
|
|
108
|
-
]))
|
|
108
|
+
]));
|
|
109
|
+
const options = {
|
|
110
|
+
...(wire.foreignKeys === undefined ? {} : { foreignKeys: structuredClone(wire.foreignKeys) }),
|
|
111
|
+
...(wire.checks === undefined ? {} : { checks: wire.checks.map((check) => ({ ...check })) }),
|
|
112
|
+
};
|
|
113
|
+
return wire.primaryKey === undefined
|
|
114
|
+
? table(wire.name, columns, options)
|
|
115
|
+
: table(wire.name, columns, { ...options, primaryKey: [...wire.primaryKey] });
|
|
109
116
|
}
|
|
110
117
|
export function deserializeSchema(wire) {
|
|
111
118
|
return schema(wire.tables.map(deserializeTable), {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-wire.js","sourceRoot":"","sources":["../../src/engine/schema-wire.ts"],"names":[],"mappings":"AACA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"schema-wire.js","sourceRoot":"","sources":["../../src/engine/schema-wire.ts"],"names":[],"mappings":"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"}
|
package/dist/engine/schema.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { type ColumnDefault, type TableColumnRecord, type TableRecord } from "../storage/index.js";
|
|
2
|
-
import { type Catalog } from "./catalog.js";
|
|
3
|
-
import { type
|
|
1
|
+
import { type ColumnDefault, type SqlDomain, type TableColumnRecord, type TableRecord } from "../storage/index.js";
|
|
2
|
+
import { type Catalog, type CatalogColumn, type CatalogTable } from "./catalog.js";
|
|
3
|
+
import { type QueryValue } from "./query.js";
|
|
4
4
|
/**
|
|
5
5
|
* Typed schema DSL and catalog migration planning. Column builders carry compile-time value and
|
|
6
6
|
* nullability types; `planMigration` diffs a schema against the live catalog into metadata-only
|
|
@@ -22,6 +22,16 @@ export interface TableCheck {
|
|
|
22
22
|
readonly name: string;
|
|
23
23
|
readonly sql: string;
|
|
24
24
|
}
|
|
25
|
+
/** A table-level relation, used when either side has a composite primary key. */
|
|
26
|
+
export interface TableForeignKey<TColumnName extends string = string> {
|
|
27
|
+
readonly name: string;
|
|
28
|
+
readonly columns: readonly TColumnName[];
|
|
29
|
+
readonly references: {
|
|
30
|
+
readonly table: string;
|
|
31
|
+
readonly columns: readonly string[];
|
|
32
|
+
};
|
|
33
|
+
readonly onDelete?: ReferentialAction;
|
|
34
|
+
}
|
|
25
35
|
/**
|
|
26
36
|
* The constraint name `migrate()` gives a declared relation. It matches the name the SQL parser
|
|
27
37
|
* derives for an unnamed inline REFERENCES, so a table built either way has the same catalog.
|
|
@@ -34,43 +44,36 @@ export declare function foreignKeyName(tableName: string, columnName: string): s
|
|
|
34
44
|
export type HasDefault<TValue> = TValue & {
|
|
35
45
|
readonly __minnowHasDefault?: true;
|
|
36
46
|
};
|
|
37
|
-
/**
|
|
38
|
-
* The public name for the flavor, for hand-declared `DB` interfaces (the Kysely convention).
|
|
39
|
-
* `InferDatabase` applies it automatically from the schema; write it yourself only when you
|
|
40
|
-
* declare the row types by hand and want generated columns to stay omissible on insert:
|
|
41
|
-
*
|
|
42
|
-
* ```ts
|
|
43
|
-
* interface DB {
|
|
44
|
-
* notes: { id: Generated<number>; slug: Generated<string>; body: string };
|
|
45
|
-
* }
|
|
46
|
-
* ```
|
|
47
|
-
*/
|
|
47
|
+
/** Legacy compatibility marker. Schema-derived core and Kysely types read defaults directly. */
|
|
48
48
|
export type Generated<TValue> = HasDefault<TValue>;
|
|
49
|
-
export interface ColumnBuilder<TValue, TNullable extends boolean, TUnique extends boolean = false, THasDefault extends boolean = false> {
|
|
49
|
+
export interface ColumnBuilder<TValue extends SchemaValue, TNullable extends boolean, TUnique extends boolean = false, THasDefault extends boolean = false, TInput extends SchemaValue = TValue> {
|
|
50
50
|
readonly kind: "column";
|
|
51
51
|
readonly type: SchemaColumnType;
|
|
52
52
|
readonly isNullable: TNullable;
|
|
53
53
|
readonly isUnique: TUnique;
|
|
54
54
|
readonly hasDefault: THasDefault;
|
|
55
|
+
/** Type-only metadata consumed by adapters; optional so it emits no runtime payload. */
|
|
56
|
+
readonly "~types"?: {
|
|
57
|
+
readonly select: TValue;
|
|
58
|
+
readonly input: TInput;
|
|
59
|
+
};
|
|
60
|
+
/** True for exact SQL integer columns; ordinary number columns use Float64 semantics. */
|
|
61
|
+
readonly integer: boolean;
|
|
62
|
+
/** Logical SQL semantics layered over the stable string storage encoding. */
|
|
63
|
+
readonly sqlDomain?: SqlDomain;
|
|
55
64
|
readonly defaultSpec?: ColumnDefault;
|
|
56
|
-
/**
|
|
57
|
-
* A userland default generator. Never persisted and never sent to the engine — the typed
|
|
58
|
-
* facade (`insertInto`, `typedTable`) calls it for omitted-or-null slots before the batch
|
|
59
|
-
* crosses the boundary, so untyped write paths (raw batches, SQL) do not see it.
|
|
60
|
-
*/
|
|
61
|
-
readonly defaultFn?: () => TValue;
|
|
62
65
|
/** Present on `column.enum()` builders: the closed set of values writes must draw from. */
|
|
63
66
|
readonly enumValues?: readonly string[];
|
|
64
67
|
/** What rows written before this column existed read as; see `.backfill()`. */
|
|
65
|
-
readonly backfillValue?:
|
|
68
|
+
readonly backfillValue?: TInput | (() => TInput);
|
|
66
69
|
readonly renamedFromName?: string;
|
|
67
70
|
readonly reference?: ColumnReferenceSpec;
|
|
68
71
|
/** Marks the column nullable; inserts may omit it and reads may return null. */
|
|
69
|
-
nullable(): ColumnBuilder<TValue, true, TUnique, THasDefault>;
|
|
72
|
+
nullable(): ColumnBuilder<TValue, true, TUnique, THasDefault, TInput>;
|
|
70
73
|
/** Marks the table's unique key; exactly one non-nullable column may carry it. */
|
|
71
|
-
unique(): ColumnBuilder<TValue, TNullable, true, THasDefault>;
|
|
74
|
+
unique(this: ColumnBuilder<TValue, false, TUnique, THasDefault, TInput>): ColumnBuilder<TValue, TNullable, true, THasDefault, TInput>;
|
|
72
75
|
/** Declares this column as the rename target of an existing catalog column. */
|
|
73
|
-
renamedFrom(name: string): ColumnBuilder<TValue, TNullable, TUnique, THasDefault>;
|
|
76
|
+
renamedFrom(name: string): ColumnBuilder<TValue, TNullable, TUnique, THasDefault, TInput>;
|
|
74
77
|
/**
|
|
75
78
|
* What rows written before this column existed read as, instead of NULL. Giving one is what
|
|
76
79
|
* makes adding a non-nullable column possible: no stored byte is rewritten, and reads
|
|
@@ -80,7 +83,7 @@ export interface ColumnBuilder<TValue, TNullable extends boolean, TUnique extend
|
|
|
80
83
|
* catalog — so it can derive a value (a timestamp, a version stamp) without readers ever
|
|
81
84
|
* disagreeing. It cannot derive from other columns; that would need a value per row.
|
|
82
85
|
*/
|
|
83
|
-
backfill(
|
|
86
|
+
backfill(this: ColumnBuilder<TValue, false, TUnique, THasDefault, TInput>, value: TInput | (() => TInput)): ColumnBuilder<TValue, TNullable, TUnique, THasDefault, TInput>;
|
|
84
87
|
/**
|
|
85
88
|
* Declares a FOREIGN KEY onto another table's unique key. `migrate()` creates it as a real
|
|
86
89
|
* constraint, so a write naming a parent row that does not exist is rejected — the same
|
|
@@ -88,39 +91,75 @@ export interface ColumnBuilder<TValue, TNullable extends boolean, TUnique extend
|
|
|
88
91
|
*
|
|
89
92
|
* `onDelete` defaults to `"restrict"`. `"set null"` requires a nullable column.
|
|
90
93
|
*/
|
|
91
|
-
references(table: string, column: string, options?: {
|
|
92
|
-
onDelete?: ReferentialAction
|
|
93
|
-
}): ColumnBuilder<TValue, TNullable, TUnique, THasDefault>;
|
|
94
|
+
references(this: ColumnBuilder<TValue, TNullable, TUnique, THasDefault, TInput>, table: string, column: string, options?: {
|
|
95
|
+
onDelete?: Exclude<ReferentialAction, "set null">;
|
|
96
|
+
}): ColumnBuilder<TValue, TNullable, TUnique, THasDefault, TInput>;
|
|
97
|
+
references(this: ColumnBuilder<TValue, true, TUnique, THasDefault, TInput>, table: string, column: string, options: {
|
|
98
|
+
onDelete: "set null";
|
|
99
|
+
}): ColumnBuilder<TValue, TNullable, TUnique, THasDefault, TInput>;
|
|
100
|
+
/** Declares a literal SQL default. Omission or SQL `DEFAULT` invokes it; NULL does not. */
|
|
101
|
+
default(value: TInput): ColumnBuilder<TValue, TNullable, TUnique, true, TInput>;
|
|
94
102
|
/**
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
* gets it — raw batches, SQL statements, other tabs. Datetime columns accept only "now",
|
|
99
|
-
* which stamps one consistent timestamp per batch.
|
|
100
|
-
*
|
|
101
|
-
* A function is a userland generator (`() => ulid()`): the typed facade calls it just
|
|
102
|
-
* before the batch is sent, so it never persists and never crosses the worker boundary —
|
|
103
|
-
* and write paths that don't go through the facade don't see it.
|
|
103
|
+
* Declares a variable-free SQL default expression, such as `CURRENT_TIMESTAMP`,
|
|
104
|
+
* `gen_random_uuid()`, or `nextval('orders_id_seq')`. The engine parses and type-checks it
|
|
105
|
+
* before migration and evaluates it once per omitted row.
|
|
104
106
|
*/
|
|
105
|
-
|
|
107
|
+
defaultSql(sql: string): ColumnBuilder<TValue, TNullable, TUnique, true, TInput>;
|
|
106
108
|
/**
|
|
107
|
-
* Generates monotonically increasing integers for
|
|
109
|
+
* Generates monotonically increasing integers for omitted or SQL `DEFAULT` slots from a persistent
|
|
108
110
|
* per-table counter that is atomic across tabs. Explicit values are allowed and bump the
|
|
109
111
|
* counter past their maximum. Number unique-key columns only.
|
|
110
112
|
*/
|
|
111
|
-
autoIncrement: TValue extends number ? () => ColumnBuilder<TValue, TNullable, TUnique, true> : never;
|
|
113
|
+
autoIncrement: TValue extends number ? (this: ColumnBuilder<TValue, false, true, THasDefault, TInput>) => ColumnBuilder<TValue, TNullable, TUnique, true, TInput> : never;
|
|
114
|
+
}
|
|
115
|
+
type SchemaValue = boolean | number | string | Date;
|
|
116
|
+
/**
|
|
117
|
+
* Metadata shared by every concrete ColumnBuilder. Schema collections need an existential
|
|
118
|
+
* column type: including fluent methods here would make TValue invariant because those methods
|
|
119
|
+
* both consume and return it. Public inference still retains each concrete builder in TColumns.
|
|
120
|
+
*/
|
|
121
|
+
interface AnyColumn {
|
|
122
|
+
readonly kind: "column";
|
|
123
|
+
readonly type: SchemaColumnType;
|
|
124
|
+
readonly isNullable: boolean;
|
|
125
|
+
readonly isUnique: boolean;
|
|
126
|
+
readonly hasDefault: boolean;
|
|
127
|
+
readonly integer: boolean;
|
|
128
|
+
readonly sqlDomain?: SqlDomain;
|
|
129
|
+
readonly defaultSpec?: ColumnDefault;
|
|
130
|
+
readonly enumValues?: readonly string[];
|
|
131
|
+
readonly backfillValue?: SchemaValue | (() => SchemaValue);
|
|
132
|
+
readonly renamedFromName?: string;
|
|
133
|
+
readonly reference?: ColumnReferenceSpec;
|
|
112
134
|
}
|
|
113
|
-
type AnyColumn = ColumnBuilder<boolean | number | string | Date, boolean, boolean, boolean>;
|
|
114
135
|
/**
|
|
115
136
|
* Rebuilds a column carrying an exact default spec — the wire layer's escape hatch, since the
|
|
116
|
-
* public `.default()`
|
|
137
|
+
* public `.default()` accepts literals and cannot express auto-increment catalog metadata.
|
|
117
138
|
*/
|
|
118
|
-
export declare function columnWithDefaultSpec(base: Pick<AnyColumn, "type" | "isNullable" | "isUnique" | "renamedFromName" | "reference" | "enumValues"
|
|
139
|
+
export declare function columnWithDefaultSpec(base: Pick<AnyColumn, "type" | "isNullable" | "isUnique" | "renamedFromName" | "reference" | "enumValues"> & Partial<Pick<AnyColumn, "integer" | "sqlDomain">>, spec: ColumnDefault): AnyColumn;
|
|
140
|
+
/** Rebuilds a fluent column from structured-clone-safe metadata. */
|
|
141
|
+
export declare function columnFromState(state: Pick<AnyColumn, "type" | "isNullable" | "isUnique"> & Partial<Pick<AnyColumn, "integer" | "sqlDomain" | "renamedFromName" | "reference" | "defaultSpec" | "enumValues" | "backfillValue">>): AnyColumn;
|
|
119
142
|
export declare const column: {
|
|
120
|
-
boolean: () => ColumnBuilder<boolean, false, false, false>;
|
|
121
|
-
number: () => ColumnBuilder<number, false, false, false>;
|
|
122
|
-
|
|
123
|
-
|
|
143
|
+
boolean: () => ColumnBuilder<boolean, false, false, false, boolean>;
|
|
144
|
+
number: () => ColumnBuilder<number, false, false, false, number>;
|
|
145
|
+
/** Exact safe-integer semantics, matching SQL INTEGER/SMALLINT/BIGINT. */
|
|
146
|
+
integer: () => ColumnBuilder<number, false, false, false, number>;
|
|
147
|
+
string: () => ColumnBuilder<string, false, false, false, string>;
|
|
148
|
+
datetime: () => ColumnBuilder<Date, false, false, false, Date>;
|
|
149
|
+
/** Exact decimal SQL NUMERIC. Selects return strings; writes accept strings or numbers. */
|
|
150
|
+
numeric: (options?: {
|
|
151
|
+
precision?: number;
|
|
152
|
+
scale?: number;
|
|
153
|
+
}) => ColumnBuilder<string, false, false, false, string | number>;
|
|
154
|
+
json: () => ColumnBuilder<string, false, false, false, string>;
|
|
155
|
+
jsonb: () => ColumnBuilder<string, false, false, false, string>;
|
|
156
|
+
uuid: () => ColumnBuilder<string, false, false, false, string>;
|
|
157
|
+
time: () => ColumnBuilder<string, false, false, false, string>;
|
|
158
|
+
interval: () => ColumnBuilder<string, false, false, false, string>;
|
|
159
|
+
/** JSON array text at the JavaScript boundary, with the SQL element type retained in metadata. */
|
|
160
|
+
array: (element: string) => ColumnBuilder<string, false, false, false, string>;
|
|
161
|
+
/** A named SQL enum domain, distinct from the lightweight `column.enum()` restriction. */
|
|
162
|
+
sqlEnum: <const TValues extends readonly [string, ...string[]]>(name: string, values: TValues) => ColumnBuilder<TValues[number], false>;
|
|
124
163
|
/**
|
|
125
164
|
* A string column restricted to a closed set of values, typed as their literal union:
|
|
126
165
|
*
|
|
@@ -135,11 +174,13 @@ export declare const column: {
|
|
|
135
174
|
*/
|
|
136
175
|
enum: <const TValues extends readonly [string, ...string[]]>(values: TValues) => ColumnBuilder<TValues[number], false>;
|
|
137
176
|
};
|
|
138
|
-
|
|
177
|
+
/** Runtime table shape accepted by schema collections without erasing concrete table inference. */
|
|
178
|
+
export interface AnyTable {
|
|
139
179
|
readonly kind: "table";
|
|
140
|
-
readonly name:
|
|
141
|
-
readonly columns:
|
|
142
|
-
|
|
180
|
+
readonly name: string;
|
|
181
|
+
readonly columns: Record<string, AnyColumn>;
|
|
182
|
+
readonly primaryKey: readonly string[];
|
|
183
|
+
readonly foreignKeys: readonly TableForeignKey[];
|
|
143
184
|
readonly checks: readonly TableCheck[];
|
|
144
185
|
/** Standard Schema-compatible runtime validator for one insert row. */
|
|
145
186
|
readonly "~standard": {
|
|
@@ -155,8 +196,21 @@ export interface TableSchema<TColumns extends Record<string, AnyColumn>, TName e
|
|
|
155
196
|
};
|
|
156
197
|
};
|
|
157
198
|
}
|
|
158
|
-
export
|
|
159
|
-
|
|
199
|
+
export interface TableSchema<TColumns extends Record<string, AnyColumn>, TName extends string = string, TPrimaryKey extends ReadonlyArray<keyof TColumns & string> = readonly []> extends AnyTable {
|
|
200
|
+
readonly name: TName;
|
|
201
|
+
readonly columns: TColumns;
|
|
202
|
+
/** Ordered table-level primary key. Empty when `.unique()` owns the scalar identity. */
|
|
203
|
+
readonly primaryKey: TPrimaryKey;
|
|
204
|
+
/** Table-level relations, including composite FOREIGN KEY declarations. */
|
|
205
|
+
readonly foreignKeys: ReadonlyArray<TableForeignKey<keyof TColumns & string>>;
|
|
206
|
+
/** Row conditions every write must satisfy; empty when none were declared. */
|
|
207
|
+
readonly checks: readonly TableCheck[];
|
|
208
|
+
}
|
|
209
|
+
export interface TableOptions<TColumns extends Record<string, AnyColumn> = Record<string, AnyColumn>, TPrimaryKey extends ReadonlyArray<keyof TColumns & string> = readonly []> {
|
|
210
|
+
/** Ordered PRIMARY KEY columns. Use `.unique()` for the existing scalar shorthand. */
|
|
211
|
+
readonly primaryKey?: TPrimaryKey;
|
|
212
|
+
/** Table-level relations; required for composite FOREIGN KEYs. */
|
|
213
|
+
readonly foreignKeys?: ReadonlyArray<TableForeignKey<keyof TColumns & string>>;
|
|
160
214
|
/**
|
|
161
215
|
* Row conditions every write must satisfy (E141-06), each a boolean SQL expression over this
|
|
162
216
|
* table's own columns — the declarative form of `CONSTRAINT name CHECK (sql)`. The engine
|
|
@@ -165,7 +219,12 @@ export interface TableOptions {
|
|
|
165
219
|
*/
|
|
166
220
|
readonly checks?: readonly TableCheck[];
|
|
167
221
|
}
|
|
168
|
-
export declare function table<const TName extends string, TColumns extends Record<string, AnyColumn>>(name: TName, columns: TColumns, options
|
|
222
|
+
export declare function table<const TName extends string, TColumns extends Record<string, AnyColumn>, const TPrimaryKey extends ReadonlyArray<keyof TColumns & string>>(name: TName, columns: TColumns, options: TableOptions<TColumns, TPrimaryKey> & {
|
|
223
|
+
readonly primaryKey: TPrimaryKey;
|
|
224
|
+
}): TableSchema<TColumns, TName, TPrimaryKey>;
|
|
225
|
+
export declare function table<const TName extends string, TColumns extends Record<string, AnyColumn>>(name: TName, columns: TColumns, options?: Omit<TableOptions<TColumns>, "primaryKey"> & {
|
|
226
|
+
readonly primaryKey?: never;
|
|
227
|
+
}): TableSchema<TColumns, TName>;
|
|
169
228
|
/**
|
|
170
229
|
* The FOREIGN KEY constraints a table declares, in column order. This is the single derivation
|
|
171
230
|
* of "what relations does this table have" — `planMigration` diffs against it and `migrate()`
|
|
@@ -174,8 +233,10 @@ export declare function table<const TName extends string, TColumns extends Recor
|
|
|
174
233
|
export declare function declaredForeignKeys(definition: AnyTable): Array<{
|
|
175
234
|
name: string;
|
|
176
235
|
column: string;
|
|
236
|
+
columns?: string[];
|
|
177
237
|
parentTable: string;
|
|
178
238
|
parentColumn: string;
|
|
239
|
+
parentColumns?: string[];
|
|
179
240
|
onDelete: ReferentialAction;
|
|
180
241
|
}>;
|
|
181
242
|
/**
|
|
@@ -217,7 +278,14 @@ export interface SchemaDefinition<TTables extends readonly AnyTable[], TViews ex
|
|
|
217
278
|
export declare function schema<TTables extends readonly AnyTable[], TViews extends readonly AnyView[] = []>(tables: TTables, options?: {
|
|
218
279
|
views?: TViews;
|
|
219
280
|
}): SchemaDefinition<TTables, TViews>;
|
|
220
|
-
type
|
|
281
|
+
type ColumnTypeMetadata<TColumn> = TColumn extends {
|
|
282
|
+
readonly "~types"?: infer TMetadata extends {
|
|
283
|
+
readonly select: unknown;
|
|
284
|
+
readonly input: unknown;
|
|
285
|
+
};
|
|
286
|
+
} ? NonNullable<TMetadata> : never;
|
|
287
|
+
type ColumnValue<TColumn extends AnyColumn> = TColumn["isNullable"] extends true ? ColumnTypeMetadata<TColumn>["select"] | null : ColumnTypeMetadata<TColumn>["select"];
|
|
288
|
+
type ColumnInputValue<TColumn extends AnyColumn> = TColumn["isNullable"] extends true ? ColumnTypeMetadata<TColumn>["input"] | null : ColumnTypeMetadata<TColumn>["input"];
|
|
221
289
|
/** The complete row shape a read returns. */
|
|
222
290
|
export type InferRow<TTable extends AnyTable> = {
|
|
223
291
|
[K in keyof TTable["columns"]]: ColumnValue<TTable["columns"][K]>;
|
|
@@ -237,16 +305,22 @@ type DefaultKeys<TTable extends AnyTable> = {
|
|
|
237
305
|
}[keyof TTable["columns"]];
|
|
238
306
|
type OptionalInsertKeys<TTable extends AnyTable> = NullableKeys<TTable> | DefaultKeys<TTable>;
|
|
239
307
|
/** Insert rows require every non-nullable column and may omit nullable or default-bearing ones. */
|
|
240
|
-
export type InferInsertRow<TTable extends AnyTable> = Omit<
|
|
241
|
-
[K in
|
|
308
|
+
export type InferInsertRow<TTable extends AnyTable> = Omit<{
|
|
309
|
+
[K in keyof TTable["columns"]]: ColumnInputValue<TTable["columns"][K]>;
|
|
310
|
+
}, OptionalInsertKeys<TTable>> & {
|
|
311
|
+
[K in OptionalInsertKeys<TTable>]?: ColumnInputValue<TTable["columns"][K]>;
|
|
242
312
|
};
|
|
313
|
+
/** Scalar `.unique()` keys plus columns named by a table-level primary key. */
|
|
314
|
+
export type PrimaryKeyKeys<TTable extends AnyTable> = {
|
|
315
|
+
[K in keyof TTable["columns"]]: TTable["columns"][K]["isUnique"] extends true ? K : never;
|
|
316
|
+
}[keyof TTable["columns"]] | TTable["primaryKey"][number];
|
|
243
317
|
/**
|
|
244
318
|
* Update changes may cover any column except the unique key. An explicit `undefined` entry is
|
|
245
319
|
* allowed and means "leave this column untouched", so a spread-patch built from optional fields
|
|
246
320
|
* stays assignable under `exactOptionalPropertyTypes`.
|
|
247
321
|
*/
|
|
248
322
|
export type InferUpdateChanges<TTable extends AnyTable> = {
|
|
249
|
-
[K in keyof TTable["columns"] as
|
|
323
|
+
[K in keyof TTable["columns"] as K extends PrimaryKeyKeys<TTable> ? never : K]?: ColumnInputValue<TTable["columns"][K]> | undefined;
|
|
250
324
|
};
|
|
251
325
|
export type MigrationStep = {
|
|
252
326
|
kind: "create-table";
|
|
@@ -332,6 +406,12 @@ export interface MigrationPlan {
|
|
|
332
406
|
export declare function isDestructiveStep(step: MigrationStep): step is Extract<MigrationStep, {
|
|
333
407
|
kind: "drop-column" | "drop-table";
|
|
334
408
|
}>;
|
|
409
|
+
/**
|
|
410
|
+
* A column can stop being projected without rewriting anything, but not while something else in
|
|
411
|
+
* the catalog still points at it. Each of these would leave a constraint or key referring to a
|
|
412
|
+
* column no longer there, so the drop is refused rather than silently invalidating them.
|
|
413
|
+
*/
|
|
414
|
+
export declare function assertColumnDroppable(record: CatalogTable, column: CatalogColumn): void;
|
|
335
415
|
/**
|
|
336
416
|
* Diffs the live catalog against a schema into metadata-only steps, in a deterministic order.
|
|
337
417
|
* Anything unprovable fails explicitly: type changes, dropped columns, unique-key changes,
|
|
@@ -351,40 +431,41 @@ export interface PlanMigrationOptions {
|
|
|
351
431
|
readonly schemaOwnsDatabase?: boolean;
|
|
352
432
|
}
|
|
353
433
|
export declare function planMigration(catalog: Catalog, definition: SchemaDefinition<readonly AnyTable[]>, options?: PlanMigrationOptions): MigrationPlan;
|
|
354
|
-
type
|
|
434
|
+
type ScalarUniqueKeyValue<TTable extends AnyTable> = {
|
|
355
435
|
[K in keyof TTable["columns"]]: TTable["columns"][K]["isUnique"] extends true ? ColumnValue<TTable["columns"][K]> : never;
|
|
356
436
|
}[keyof TTable["columns"]];
|
|
437
|
+
type DeclaredPrimaryKeyValue<TTable extends AnyTable> = {
|
|
438
|
+
[K in TTable["primaryKey"][number]]: ColumnValue<TTable["columns"][K]>;
|
|
439
|
+
};
|
|
440
|
+
/** Scalar keys stay scalar; composite keys are objects keyed by their declared column names. */
|
|
441
|
+
export type PrimaryKeyValue<TTable extends AnyTable> = TTable["primaryKey"] extends readonly [] ? ScalarUniqueKeyValue<TTable> : TTable["primaryKey"] extends readonly [infer TOnly extends keyof TTable["columns"]] ? ColumnValue<TTable["columns"][TOnly]> : DeclaredPrimaryKeyValue<TTable>;
|
|
357
442
|
type ColumnArrays<TShape> = {
|
|
358
443
|
[K in keyof TShape]: ReadonlyArray<TShape[K]>;
|
|
359
444
|
};
|
|
360
445
|
interface TypedTableDatabase {
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
}
|
|
367
|
-
deleteBatch(tableName: string, input: {
|
|
368
|
-
keys: readonly unknown[];
|
|
369
|
-
}): Promise<unknown>;
|
|
370
|
-
readTable(tableName: string, options?: {
|
|
371
|
-
columns?: readonly string[];
|
|
372
|
-
}): Promise<Array<Record<string, unknown>>>;
|
|
446
|
+
execute(sql: string, params?: readonly QueryValue[]): Promise<unknown>;
|
|
447
|
+
query(sql: string, options?: {
|
|
448
|
+
params?: readonly QueryValue[];
|
|
449
|
+
}): Promise<{
|
|
450
|
+
rows: Array<Record<string, unknown>>;
|
|
451
|
+
}>;
|
|
373
452
|
}
|
|
374
453
|
/**
|
|
375
|
-
* A thin, fully typed handle
|
|
376
|
-
*
|
|
454
|
+
* A thin, fully typed SQL handle: inserts require every non-nullable column, updates exclude the
|
|
455
|
+
* unique key, and reads return the complete inferred row shape. Every operation is rendered as
|
|
456
|
+
* parameterized SQL and goes through the parser/planner/executor; this helper has no private
|
|
457
|
+
* batch or table-read semantics that can drift from SQL.
|
|
377
458
|
*/
|
|
378
459
|
export declare function typedTable<TTable extends AnyTable>(database: TypedTableDatabase, definition: TTable): {
|
|
379
460
|
definition: TTable;
|
|
380
461
|
insert(rows: ReadonlyArray<InferInsertRow<TTable>>): Promise<unknown>;
|
|
381
462
|
upsert(rows: ReadonlyArray<InferInsertRow<TTable>>): Promise<unknown>;
|
|
382
463
|
update(input: {
|
|
383
|
-
keys: ReadonlyArray<
|
|
464
|
+
keys: ReadonlyArray<PrimaryKeyValue<TTable>>;
|
|
384
465
|
changes: Partial<ColumnArrays<InferUpdateChanges<TTable>>>;
|
|
385
466
|
}): Promise<unknown>;
|
|
386
467
|
delete(input: {
|
|
387
|
-
keys: ReadonlyArray<
|
|
468
|
+
keys: ReadonlyArray<PrimaryKeyValue<TTable>>;
|
|
388
469
|
}): Promise<unknown>;
|
|
389
470
|
rows(): Promise<Array<InferRow<TTable>>>;
|
|
390
471
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/engine/schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/engine/schema.ts"],"names":[],"mappings":"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"}
|