@bjornpagen/bumbledb 0.20.2 → 1.0.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/COOKBOOK.md +283 -1611
- package/README.md +156 -118
- package/dist/capacity.d.ts +16 -12
- package/dist/capacity.d.ts.map +1 -1
- package/dist/capacity.js +16 -48
- package/dist/capacity.js.map +1 -1
- package/dist/changes.d.ts +54 -0
- package/dist/changes.d.ts.map +1 -0
- package/dist/changes.js +245 -0
- package/dist/changes.js.map +1 -0
- package/dist/close.d.ts +24 -0
- package/dist/close.d.ts.map +1 -0
- package/dist/close.js +34 -0
- package/dist/close.js.map +1 -0
- package/dist/closed.d.ts +1 -3
- package/dist/closed.d.ts.map +1 -1
- package/dist/closed.js +24 -12
- package/dist/closed.js.map +1 -1
- package/dist/codec.d.ts +56 -0
- package/dist/codec.d.ts.map +1 -0
- package/dist/codec.js +289 -0
- package/dist/codec.js.map +1 -0
- package/dist/compile.d.ts +68 -0
- package/dist/compile.d.ts.map +1 -0
- package/dist/compile.js +75 -0
- package/dist/compile.js.map +1 -0
- package/dist/db-native.d.ts +170 -0
- package/dist/db-native.d.ts.map +1 -0
- package/dist/db-native.js +5 -0
- package/dist/db-native.js.map +1 -0
- package/dist/db.d.ts +101 -233
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +232 -1084
- package/dist/db.js.map +1 -1
- package/dist/errors.d.ts +57 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +32 -0
- package/dist/errors.js.map +1 -0
- package/dist/face.d.ts.map +1 -1
- package/dist/face.js +2 -2
- package/dist/face.js.map +1 -1
- package/dist/fields.d.ts +65 -24
- package/dist/fields.d.ts.map +1 -1
- package/dist/fields.js +94 -24
- package/dist/fields.js.map +1 -1
- package/dist/index.d.ts +37 -32
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -21
- package/dist/index.js.map +1 -1
- package/dist/internal/log.d.ts +24 -0
- package/dist/internal/log.d.ts.map +1 -0
- package/dist/internal/log.js +10 -0
- package/dist/internal/log.js.map +1 -0
- package/dist/law.d.ts +8 -13
- package/dist/law.d.ts.map +1 -1
- package/dist/law.js +6 -59
- package/dist/law.js.map +1 -1
- package/dist/lower.d.ts +0 -13
- package/dist/lower.d.ts.map +1 -1
- package/dist/lower.js +9 -17
- package/dist/lower.js.map +1 -1
- package/dist/migration.d.ts +33 -0
- package/dist/migration.d.ts.map +1 -0
- package/dist/migration.js +48 -0
- package/dist/migration.js.map +1 -0
- package/dist/native.d.ts +256 -301
- package/dist/native.d.ts.map +1 -1
- package/dist/native.js +65 -108
- package/dist/native.js.map +1 -1
- package/dist/query/atom.d.ts +24 -13
- package/dist/query/atom.d.ts.map +1 -1
- package/dist/query/atom.js +7 -3
- package/dist/query/atom.js.map +1 -1
- package/dist/query/compute.d.ts +68 -0
- package/dist/query/compute.d.ts.map +1 -0
- package/dist/query/compute.js +141 -0
- package/dist/query/compute.js.map +1 -0
- package/dist/query/find.d.ts +15 -8
- package/dist/query/find.d.ts.map +1 -1
- package/dist/query/find.js +6 -2
- package/dist/query/find.js.map +1 -1
- package/dist/query/lower.d.ts +23 -2
- package/dist/query/lower.d.ts.map +1 -1
- package/dist/query/lower.js +433 -80
- package/dist/query/lower.js.map +1 -1
- package/dist/query/parse-ir.d.ts.map +1 -1
- package/dist/query/parse-ir.js +17 -8
- package/dist/query/parse-ir.js.map +1 -1
- package/dist/query/run.d.ts +12 -2
- package/dist/query/run.d.ts.map +1 -1
- package/dist/query/run.js +26 -9
- package/dist/query/run.js.map +1 -1
- package/dist/query/scope.d.ts +47 -3
- package/dist/query/scope.d.ts.map +1 -1
- package/dist/query/scope.js +83 -19
- package/dist/query/scope.js.map +1 -1
- package/dist/relation.d.ts +3 -8
- package/dist/relation.d.ts.map +1 -1
- package/dist/relation.js +16 -10
- package/dist/relation.js.map +1 -1
- package/dist/result.d.ts +47 -0
- package/dist/result.d.ts.map +1 -0
- package/dist/result.js +50 -0
- package/dist/result.js.map +1 -0
- package/dist/rows.d.ts +69 -0
- package/dist/rows.d.ts.map +1 -0
- package/dist/rows.js +328 -0
- package/dist/rows.js.map +1 -0
- package/dist/runtime-codes.d.ts +2 -0
- package/dist/runtime-codes.d.ts.map +1 -0
- package/dist/runtime-codes.js +19 -0
- package/dist/runtime-codes.js.map +1 -0
- package/dist/runtime-errors.d.ts +106 -0
- package/dist/runtime-errors.d.ts.map +1 -0
- package/dist/runtime-errors.js +62 -0
- package/dist/runtime-errors.js.map +1 -0
- package/dist/runtime-native.d.ts +171 -0
- package/dist/runtime-native.d.ts.map +1 -0
- package/dist/runtime-native.js +5 -0
- package/dist/runtime-native.js.map +1 -0
- package/dist/runtime.d.ts +73 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +293 -0
- package/dist/runtime.js.map +1 -0
- package/dist/scalar.d.ts +165 -0
- package/dist/scalar.d.ts.map +1 -0
- package/dist/scalar.js +344 -0
- package/dist/scalar.js.map +1 -0
- package/dist/schema.d.ts +1 -1
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +34 -37
- package/dist/schema.js.map +1 -1
- package/dist/shape.d.ts +28 -0
- package/dist/shape.d.ts.map +1 -0
- package/dist/shape.js +2 -0
- package/dist/shape.js.map +1 -0
- package/dist/spec.d.ts +27 -3
- package/dist/spec.d.ts.map +1 -1
- package/dist/spec.js +22 -1
- package/dist/spec.js.map +1 -1
- package/dist/statements.d.ts +16 -3
- package/dist/statements.d.ts.map +1 -1
- package/dist/statements.js +54 -28
- package/dist/statements.js.map +1 -1
- package/dist/uuid.d.ts +23 -0
- package/dist/uuid.d.ts.map +1 -0
- package/dist/uuid.js +54 -0
- package/dist/uuid.js.map +1 -0
- package/pack-provenance.json +7 -0
- package/package.json +12 -16
- package/src/capacity.ts +34 -54
- package/src/changes.ts +361 -0
- package/src/close.ts +53 -0
- package/src/closed.ts +25 -19
- package/src/codec.ts +379 -0
- package/src/compile.ts +149 -0
- package/src/db-native.ts +247 -0
- package/src/db.ts +461 -1632
- package/src/errors.ts +50 -0
- package/src/face.ts +2 -2
- package/src/fields.ts +182 -55
- package/src/index.ts +62 -126
- package/src/internal/log.ts +51 -0
- package/src/law.ts +13 -28
- package/src/lower.ts +9 -4
- package/src/migration.ts +69 -0
- package/src/native.ts +326 -487
- package/src/query/atom.ts +61 -25
- package/src/query/compute.ts +237 -0
- package/src/query/find.ts +31 -12
- package/src/query/lower.ts +531 -143
- package/src/query/parse-ir.ts +18 -13
- package/src/query/run.ts +32 -16
- package/src/query/scope.ts +140 -8
- package/src/relation.ts +17 -21
- package/src/result.ts +130 -0
- package/src/rows.ts +404 -0
- package/src/runtime-codes.ts +18 -0
- package/src/runtime-errors.ts +69 -0
- package/src/runtime-native.ts +242 -0
- package/src/runtime.ts +440 -0
- package/src/scalar.ts +560 -0
- package/src/schema.ts +35 -37
- package/src/shape.ts +31 -0
- package/src/spec.ts +33 -3
- package/src/statements.ts +75 -68
- package/src/uuid.ts +69 -0
- package/dist/marshal.d.ts +0 -44
- package/dist/marshal.d.ts.map +0 -1
- package/dist/marshal.js +0 -165
- package/dist/marshal.js.map +0 -1
- package/src/marshal.ts +0 -200
package/dist/scalar.d.ts
ADDED
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import type { ValueSpec } from "./spec.js";
|
|
2
|
+
/** F0: leaf scope for the shared AST (C1). Query vars are typed; source fields stay unresolved. */
|
|
3
|
+
export type ScalarLeafScope = "query-var" | "source-field";
|
|
4
|
+
/** The engine's scalar result vocabulary — distinct at the type level. */
|
|
5
|
+
type ScalarKind = "u64" | "i64" | "f64" | "bool";
|
|
6
|
+
/** Cached result kind: known only when derivable; otherwise honestly unresolved. */
|
|
7
|
+
type ScalarResultKind = ScalarKind | "unresolved";
|
|
8
|
+
/** Host value for a derived scalar kind. */
|
|
9
|
+
type ScalarValue<K extends ScalarKind> = K extends "f64" ? number : K extends "bool" ? boolean : bigint;
|
|
10
|
+
type NumericCast = "toF64" | "toF64Exact" | "toI64Exact" | "toU64Exact";
|
|
11
|
+
type NumericKind = "u64" | "i64" | "f64";
|
|
12
|
+
type NumericOrUnresolved = NumericKind | "unresolved";
|
|
13
|
+
/**
|
|
14
|
+
* Combine known numeric kinds, or stay unresolved when a source-field leaf
|
|
15
|
+
* still needs native binding. Distinct known kinds collapse to `never`
|
|
16
|
+
* (static refusal) and throw at the constructor.
|
|
17
|
+
*/
|
|
18
|
+
type CombineNumeric<L, R> = L extends "unresolved" ? R extends "bool" ? never : "unresolved" : R extends "unresolved" ? L extends "bool" ? never : "unresolved" : L extends R ? L : never;
|
|
19
|
+
/** The tagged literal subset shared by every leaf scope. */
|
|
20
|
+
type ScalarLiteral = {
|
|
21
|
+
readonly bool: boolean;
|
|
22
|
+
} | {
|
|
23
|
+
readonly u64: bigint;
|
|
24
|
+
} | {
|
|
25
|
+
readonly i64: bigint;
|
|
26
|
+
} | {
|
|
27
|
+
readonly f64: number;
|
|
28
|
+
};
|
|
29
|
+
type ScalarOpKind = "literal" | "negate" | "isNaN" | "isFinite" | "add" | "subtract" | "multiply" | "divide" | "cast";
|
|
30
|
+
/**
|
|
31
|
+
* Structural query-variable leaf. The query layer supplies a bound variable
|
|
32
|
+
* whose field kind is already a schema kind; this module does not import
|
|
33
|
+
* query types (scope → atom → compute → scalar would cycle).
|
|
34
|
+
*/
|
|
35
|
+
interface ScalarQueryVar {
|
|
36
|
+
readonly label: string;
|
|
37
|
+
readonly field: {
|
|
38
|
+
readonly kind: string;
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
type QueryVarLeaf = {
|
|
42
|
+
readonly kind: "var";
|
|
43
|
+
readonly ref: ScalarQueryVar;
|
|
44
|
+
};
|
|
45
|
+
type SourceFieldLeaf = {
|
|
46
|
+
readonly kind: "field";
|
|
47
|
+
readonly name: string;
|
|
48
|
+
};
|
|
49
|
+
type ScalarLeaf<S extends ScalarLeafScope> = S extends "query-var" ? QueryVarLeaf : SourceFieldLeaf;
|
|
50
|
+
type ScalarNodeBody<S extends ScalarLeafScope> = ScalarLeaf<S> | {
|
|
51
|
+
readonly kind: "literal";
|
|
52
|
+
readonly value: ScalarLiteral;
|
|
53
|
+
} | {
|
|
54
|
+
readonly kind: "negate";
|
|
55
|
+
readonly expr: ScalarNode<S>;
|
|
56
|
+
} | {
|
|
57
|
+
readonly kind: "isNaN";
|
|
58
|
+
readonly expr: ScalarNode<S>;
|
|
59
|
+
} | {
|
|
60
|
+
readonly kind: "isFinite";
|
|
61
|
+
readonly expr: ScalarNode<S>;
|
|
62
|
+
} | {
|
|
63
|
+
readonly kind: "add";
|
|
64
|
+
readonly left: ScalarNode<S>;
|
|
65
|
+
readonly right: ScalarNode<S>;
|
|
66
|
+
} | {
|
|
67
|
+
readonly kind: "subtract";
|
|
68
|
+
readonly left: ScalarNode<S>;
|
|
69
|
+
readonly right: ScalarNode<S>;
|
|
70
|
+
} | {
|
|
71
|
+
readonly kind: "multiply";
|
|
72
|
+
readonly left: ScalarNode<S>;
|
|
73
|
+
readonly right: ScalarNode<S>;
|
|
74
|
+
} | {
|
|
75
|
+
readonly kind: "divide";
|
|
76
|
+
readonly left: ScalarNode<S>;
|
|
77
|
+
readonly right: ScalarNode<S>;
|
|
78
|
+
} | {
|
|
79
|
+
readonly kind: "cast";
|
|
80
|
+
readonly cast: NumericCast;
|
|
81
|
+
readonly expr: ScalarNode<S>;
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* One authored node: roster arms plus cached `scope` / `result` / `depth`.
|
|
85
|
+
* Summaries are construction metadata; lowering and L17 serialization read
|
|
86
|
+
* the grammar arms and ignore the summaries.
|
|
87
|
+
*/
|
|
88
|
+
type ScalarNode<S extends ScalarLeafScope = ScalarLeafScope, K extends ScalarResultKind = ScalarResultKind> = ScalarNodeBody<S> & {
|
|
89
|
+
readonly scope: S;
|
|
90
|
+
readonly result: K;
|
|
91
|
+
readonly depth: number;
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Migration authoring expression (source-field scope). `K` is the cached
|
|
95
|
+
* result kind, not a host value type: I64 and U64 remain distinct even
|
|
96
|
+
* though both use bigint in JavaScript.
|
|
97
|
+
*/
|
|
98
|
+
type ScalarExpr<K extends ScalarResultKind = ScalarResultKind> = ScalarNode<"source-field", K>;
|
|
99
|
+
/** A migration field read: unresolved until native snapshot binding. */
|
|
100
|
+
type ScalarFieldRef = ScalarNode<"source-field", "unresolved"> & SourceFieldLeaf;
|
|
101
|
+
declare const MAX_SCALAR_DEPTH = 128;
|
|
102
|
+
declare function scalarAuthoringWork(): number;
|
|
103
|
+
declare function checkU64(value: bigint, where: string): void;
|
|
104
|
+
declare function checkI64(value: bigint, where: string): void;
|
|
105
|
+
declare function checkF64(value: number, where: string): void;
|
|
106
|
+
declare function checkBool(value: boolean, where: string): void;
|
|
107
|
+
declare function literalValue(value: ScalarLiteral): ScalarLiteral;
|
|
108
|
+
/** Converts a shared one-arm literal to the query wire `ValueSpec` spelling. */
|
|
109
|
+
declare function literalWireOf(value: ScalarLiteral): ValueSpec;
|
|
110
|
+
declare function literalKindOf(value: ScalarLiteral): ScalarKind;
|
|
111
|
+
declare function assertDepth(where: string, depth: number): void;
|
|
112
|
+
declare function assertNumeric(where: string, kind: ScalarKind): void;
|
|
113
|
+
declare function assertSameKind(where: string, left: ScalarKind, right: ScalarKind): ScalarKind;
|
|
114
|
+
declare function isScalarNode(value: unknown): value is ScalarNode;
|
|
115
|
+
declare function isUnresolvedScalar(node: ScalarNode): boolean;
|
|
116
|
+
/** Query-var leaf — kind is the variable's schema kind, already known. */
|
|
117
|
+
declare function queryVarLeaf<K extends ScalarKind>(ref: ScalarQueryVar, kind: K): ScalarNode<"query-var", K>;
|
|
118
|
+
declare function scalarLiteral<S extends ScalarLeafScope>(scope: S, value: ScalarLiteral): ScalarNode<S, ScalarKind>;
|
|
119
|
+
type BinaryOp = "add" | "subtract" | "multiply" | "divide";
|
|
120
|
+
declare function scalarBinary<S extends ScalarLeafScope>(where: string, op: BinaryOp, left: ScalarNode<S>, right: ScalarNode<S>): ScalarNode<S, ScalarResultKind>;
|
|
121
|
+
declare function scalarNegate<S extends ScalarLeafScope>(where: string, expr: ScalarNode<S>): ScalarNode<S, ScalarResultKind>;
|
|
122
|
+
declare function scalarCast<S extends ScalarLeafScope>(where: string, cast: NumericCast, result: ScalarKind, expr: ScalarNode<S>): ScalarNode<S, ScalarKind>;
|
|
123
|
+
declare function scalarFloatPredicate<S extends ScalarLeafScope>(where: string, op: "isNaN" | "isFinite", expr: ScalarNode<S>): ScalarNode<S, "bool">;
|
|
124
|
+
/** Query-var leaves collected once at find-binding time — not during construction. */
|
|
125
|
+
declare function queryVarsOf(node: ScalarNode<"query-var">): readonly ScalarQueryVar[];
|
|
126
|
+
declare function field(name: string): ScalarFieldRef;
|
|
127
|
+
declare function literal(value: ScalarLiteral): ScalarExpr<ScalarKind>;
|
|
128
|
+
declare function u64(value: bigint): ScalarExpr<"u64">;
|
|
129
|
+
declare function i64(value: bigint): ScalarExpr<"i64">;
|
|
130
|
+
declare function f64(value: number): ScalarExpr<"f64">;
|
|
131
|
+
declare function bool(value: boolean): ScalarExpr<"bool">;
|
|
132
|
+
declare function negate<K extends "i64" | "f64" | "unresolved">(expr: ScalarExpr<K>): ScalarExpr<K>;
|
|
133
|
+
declare function add<L extends NumericOrUnresolved, R extends CombineNumeric<L, R> extends never ? never : NumericOrUnresolved>(left: ScalarExpr<L>, right: ScalarExpr<R>): ScalarExpr<CombineNumeric<L, R>>;
|
|
134
|
+
declare function subtract<L extends NumericOrUnresolved, R extends CombineNumeric<L, R> extends never ? never : NumericOrUnresolved>(left: ScalarExpr<L>, right: ScalarExpr<R>): ScalarExpr<CombineNumeric<L, R>>;
|
|
135
|
+
declare function multiply<L extends NumericOrUnresolved, R extends CombineNumeric<L, R> extends never ? never : NumericOrUnresolved>(left: ScalarExpr<L>, right: ScalarExpr<R>): ScalarExpr<CombineNumeric<L, R>>;
|
|
136
|
+
declare function divide<L extends NumericOrUnresolved, R extends CombineNumeric<L, R> extends never ? never : NumericOrUnresolved>(left: ScalarExpr<L>, right: ScalarExpr<R>): ScalarExpr<CombineNumeric<L, R>>;
|
|
137
|
+
declare function toF64(expr: ScalarExpr<NumericOrUnresolved>): ScalarExpr<"f64">;
|
|
138
|
+
declare function toF64Exact(expr: ScalarExpr<NumericOrUnresolved>): ScalarExpr<"f64">;
|
|
139
|
+
declare function toI64Exact(expr: ScalarExpr<NumericOrUnresolved>): ScalarExpr<"i64">;
|
|
140
|
+
declare function toU64Exact(expr: ScalarExpr<NumericOrUnresolved>): ScalarExpr<"u64">;
|
|
141
|
+
declare function isNaNExpr(expr: ScalarExpr<"f64" | "unresolved">): ScalarExpr<"bool">;
|
|
142
|
+
declare function isFiniteExpr(expr: ScalarExpr<"f64" | "unresolved">): ScalarExpr<"bool">;
|
|
143
|
+
/** The authoring namespace: `Scalar.field("units")`, `Scalar.add(...)`. */
|
|
144
|
+
declare const Scalar: Readonly<{
|
|
145
|
+
field: typeof field;
|
|
146
|
+
literal: typeof literal;
|
|
147
|
+
u64: typeof u64;
|
|
148
|
+
i64: typeof i64;
|
|
149
|
+
f64: typeof f64;
|
|
150
|
+
bool: typeof bool;
|
|
151
|
+
negate: typeof negate;
|
|
152
|
+
add: typeof add;
|
|
153
|
+
subtract: typeof subtract;
|
|
154
|
+
multiply: typeof multiply;
|
|
155
|
+
divide: typeof divide;
|
|
156
|
+
toF64: typeof toF64;
|
|
157
|
+
toF64Exact: typeof toF64Exact;
|
|
158
|
+
toI64Exact: typeof toI64Exact;
|
|
159
|
+
toU64Exact: typeof toU64Exact;
|
|
160
|
+
isNaN: typeof isNaNExpr;
|
|
161
|
+
isFinite: typeof isFiniteExpr;
|
|
162
|
+
}>;
|
|
163
|
+
export type { CombineNumeric, NumericCast, NumericKind, NumericOrUnresolved, QueryVarLeaf, ScalarExpr, ScalarFieldRef, ScalarKind, ScalarLiteral, ScalarNode, ScalarOpKind, ScalarQueryVar, ScalarResultKind, ScalarValue, SourceFieldLeaf };
|
|
164
|
+
export { assertDepth, assertNumeric, assertSameKind, checkBool, checkF64, checkI64, checkU64, isScalarNode, isUnresolvedScalar, literalKindOf, literalValue, literalWireOf, MAX_SCALAR_DEPTH, queryVarLeaf, queryVarsOf, Scalar, scalarAuthoringWork, scalarBinary, scalarCast, scalarFloatPredicate, scalarLiteral, scalarNegate };
|
|
165
|
+
//# sourceMappingURL=scalar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scalar.d.ts","sourceRoot":"","sources":["../src/scalar.ts"],"names":[],"mappings":"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"}
|
package/dist/scalar.js
ADDED
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The ONE leaf-scoped scalar AST (C1/C8): one tagged literal grammar and
|
|
3
|
+
* operator roster, parameterized by {@link ScalarLeafScope}. TypeScript never
|
|
4
|
+
* evaluates — the native compiler binds source fields and the engine
|
|
5
|
+
* `ScalarEvaluator` executes. Construction is constant work against cached
|
|
6
|
+
* depth/kind summaries; it does not re-walk the tree.
|
|
7
|
+
*
|
|
8
|
+
* Query-var leaves carry a known schema kind. Source-field leaves stay
|
|
9
|
+
* `unresolved` until native snapshot binding. A result kind is recorded only
|
|
10
|
+
* when it is derivable from known operands; otherwise it stays unresolved.
|
|
11
|
+
* Known incompatible kinds refuse here. Unresolved trees are inert metadata,
|
|
12
|
+
* not typechecked programs.
|
|
13
|
+
*
|
|
14
|
+
* Wire spellings (the grammar arms, not a second flattened interpretation):
|
|
15
|
+
* migration plan JSON — field/literal/operator nodes; one-arm literals (`{ u64: n }`)
|
|
16
|
+
* query IR — `{ kind: "literal", value: ValueSpec }` via `literalWireOf`
|
|
17
|
+
*/
|
|
18
|
+
import { AuthoringError } from "#errors.ts";
|
|
19
|
+
const MAX_SCALAR_DEPTH = 128;
|
|
20
|
+
const U64_MAX = (1n << 64n) - 1n;
|
|
21
|
+
const I64_MIN = -(1n << 63n);
|
|
22
|
+
const I64_MAX = (1n << 63n) - 1n;
|
|
23
|
+
/** Constructor admissions only — not descendant visits. D27 construction-work pin. */
|
|
24
|
+
let authoringWork = 0;
|
|
25
|
+
function scalarAuthoringWork() {
|
|
26
|
+
return authoringWork;
|
|
27
|
+
}
|
|
28
|
+
function admit(where, node) {
|
|
29
|
+
authoringWork += 1;
|
|
30
|
+
assertDepth(where, node.depth);
|
|
31
|
+
return Object.freeze(node);
|
|
32
|
+
}
|
|
33
|
+
function checkU64(value, where) {
|
|
34
|
+
if (typeof value !== "bigint" || value < 0n || value > U64_MAX) {
|
|
35
|
+
throw new AuthoringError({ message: `${where}: a u64 literal is a bigint in 0..=2^64-1` });
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function checkI64(value, where) {
|
|
39
|
+
if (typeof value !== "bigint" || value < I64_MIN || value > I64_MAX) {
|
|
40
|
+
throw new AuthoringError({ message: `${where}: an i64 literal is a bigint in -2^63..=2^63-1` });
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
function checkF64(value, where) {
|
|
44
|
+
if (typeof value !== "number") {
|
|
45
|
+
throw new AuthoringError({ message: `${where}: an f64 literal is a number` });
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function checkBool(value, where) {
|
|
49
|
+
if (typeof value !== "boolean") {
|
|
50
|
+
throw new AuthoringError({ message: `${where}: a bool literal is a boolean` });
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
function literalValue(value) {
|
|
54
|
+
return Object.freeze(value);
|
|
55
|
+
}
|
|
56
|
+
/** Converts a shared one-arm literal to the query wire `ValueSpec` spelling. */
|
|
57
|
+
function literalWireOf(value) {
|
|
58
|
+
if ("bool" in value) {
|
|
59
|
+
return { kind: "bool", value: value.bool };
|
|
60
|
+
}
|
|
61
|
+
if ("u64" in value) {
|
|
62
|
+
return { kind: "u64", value: value.u64 };
|
|
63
|
+
}
|
|
64
|
+
if ("i64" in value) {
|
|
65
|
+
return { kind: "i64", value: value.i64 };
|
|
66
|
+
}
|
|
67
|
+
return { kind: "f64", value: value.f64 };
|
|
68
|
+
}
|
|
69
|
+
function literalKindOf(value) {
|
|
70
|
+
if ("bool" in value) {
|
|
71
|
+
return "bool";
|
|
72
|
+
}
|
|
73
|
+
if ("u64" in value) {
|
|
74
|
+
return "u64";
|
|
75
|
+
}
|
|
76
|
+
if ("i64" in value) {
|
|
77
|
+
return "i64";
|
|
78
|
+
}
|
|
79
|
+
return "f64";
|
|
80
|
+
}
|
|
81
|
+
function assertDepth(where, depth) {
|
|
82
|
+
if (depth > MAX_SCALAR_DEPTH) {
|
|
83
|
+
throw new AuthoringError({
|
|
84
|
+
message: `${where}: the expression is deeper than ${MAX_SCALAR_DEPTH} nodes (the engine's scalar depth bound)`
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
function assertNumeric(where, kind) {
|
|
89
|
+
if (kind === "bool") {
|
|
90
|
+
throw new AuthoringError({ message: `${where}: the operand is bool, not numeric (u64/i64/f64)` });
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
function assertSameKind(where, left, right) {
|
|
94
|
+
if (left !== right) {
|
|
95
|
+
throw new AuthoringError({
|
|
96
|
+
message: `${where}: operand kinds differ (${left} vs ${right}) — the engine has no mixed promotion; cast explicitly (Scalar.toF64/ toF64Exact/ toI64Exact/ toU64Exact)`
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
return left;
|
|
100
|
+
}
|
|
101
|
+
function assertScope(where, left, right) {
|
|
102
|
+
if (left.scope !== right.scope) {
|
|
103
|
+
throw new AuthoringError({
|
|
104
|
+
message: `${where}: leaf scopes differ (${left.scope} vs ${right.scope}) — query-var and source-field trees do not mix`
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
return left.scope;
|
|
108
|
+
}
|
|
109
|
+
function combineNumeric(where, left, right) {
|
|
110
|
+
if (left === "unresolved" || right === "unresolved") {
|
|
111
|
+
if (left !== "unresolved") {
|
|
112
|
+
assertNumeric(where, left);
|
|
113
|
+
}
|
|
114
|
+
if (right !== "unresolved") {
|
|
115
|
+
assertNumeric(where, right);
|
|
116
|
+
}
|
|
117
|
+
return "unresolved";
|
|
118
|
+
}
|
|
119
|
+
assertNumeric(where, left);
|
|
120
|
+
assertNumeric(where, right);
|
|
121
|
+
return assertSameKind(where, left, right);
|
|
122
|
+
}
|
|
123
|
+
function negateKind(where, inner) {
|
|
124
|
+
if (inner === "unresolved") {
|
|
125
|
+
return "unresolved";
|
|
126
|
+
}
|
|
127
|
+
if (inner !== "i64" && inner !== "f64") {
|
|
128
|
+
throw new AuthoringError({
|
|
129
|
+
message: `${where}: the operand is ${inner} — negation is defined over i64 and f64 only`
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
return inner;
|
|
133
|
+
}
|
|
134
|
+
function assertCastOperand(where, inner) {
|
|
135
|
+
if (inner === "unresolved") {
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
assertNumeric(where, inner);
|
|
139
|
+
}
|
|
140
|
+
function assertFloatOperand(where, inner) {
|
|
141
|
+
if (inner === "unresolved") {
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
if (inner !== "f64") {
|
|
145
|
+
throw new AuthoringError({ message: `${where}: the operand is ${inner} — the float predicates read f64` });
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
function isScalarNode(value) {
|
|
149
|
+
return (typeof value === "object" &&
|
|
150
|
+
value !== null &&
|
|
151
|
+
"kind" in value &&
|
|
152
|
+
"scope" in value &&
|
|
153
|
+
"result" in value &&
|
|
154
|
+
"depth" in value);
|
|
155
|
+
}
|
|
156
|
+
function isUnresolvedScalar(node) {
|
|
157
|
+
return node.result === "unresolved";
|
|
158
|
+
}
|
|
159
|
+
/** Source-field leaf — unresolved until L14 binds it against the verified snapshot. */
|
|
160
|
+
function sourceField(name) {
|
|
161
|
+
if (typeof name !== "string" || name.length === 0) {
|
|
162
|
+
throw new AuthoringError({ message: "scalar field(...) names a nonempty source field" });
|
|
163
|
+
}
|
|
164
|
+
return admit("Scalar.field", {
|
|
165
|
+
kind: "field",
|
|
166
|
+
name,
|
|
167
|
+
scope: "source-field",
|
|
168
|
+
result: "unresolved",
|
|
169
|
+
depth: 1
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
/** Query-var leaf — kind is the variable's schema kind, already known. */
|
|
173
|
+
function queryVarLeaf(ref, kind) {
|
|
174
|
+
return admit("Scalar.queryVar", {
|
|
175
|
+
kind: "var",
|
|
176
|
+
ref,
|
|
177
|
+
scope: "query-var",
|
|
178
|
+
result: kind,
|
|
179
|
+
depth: 1
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
function scalarLiteral(scope, value) {
|
|
183
|
+
const kind = literalKindOf(value);
|
|
184
|
+
return admit("Scalar.literal", {
|
|
185
|
+
kind: "literal",
|
|
186
|
+
value: literalValue(value),
|
|
187
|
+
scope,
|
|
188
|
+
result: kind,
|
|
189
|
+
depth: 1
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
function scalarBinary(where, op, left, right) {
|
|
193
|
+
const scope = assertScope(where, left, right);
|
|
194
|
+
return admit(where, {
|
|
195
|
+
kind: op,
|
|
196
|
+
left,
|
|
197
|
+
right,
|
|
198
|
+
scope,
|
|
199
|
+
result: combineNumeric(where, left.result, right.result),
|
|
200
|
+
depth: Math.max(left.depth, right.depth) + 1
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
function scalarNegate(where, expr) {
|
|
204
|
+
return admit(where, {
|
|
205
|
+
kind: "negate",
|
|
206
|
+
expr,
|
|
207
|
+
scope: expr.scope,
|
|
208
|
+
result: negateKind(where, expr.result),
|
|
209
|
+
depth: expr.depth + 1
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
function scalarCast(where, cast, result, expr) {
|
|
213
|
+
assertCastOperand(where, expr.result);
|
|
214
|
+
return admit(where, {
|
|
215
|
+
kind: "cast",
|
|
216
|
+
cast,
|
|
217
|
+
expr,
|
|
218
|
+
scope: expr.scope,
|
|
219
|
+
result,
|
|
220
|
+
depth: expr.depth + 1
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
function scalarFloatPredicate(where, op, expr) {
|
|
224
|
+
assertFloatOperand(where, expr.result);
|
|
225
|
+
return admit(where, {
|
|
226
|
+
kind: op,
|
|
227
|
+
expr,
|
|
228
|
+
scope: expr.scope,
|
|
229
|
+
result: "bool",
|
|
230
|
+
depth: expr.depth + 1
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
/** Query-var leaves collected once at find-binding time — not during construction. */
|
|
234
|
+
function queryVarsOf(node) {
|
|
235
|
+
const vars = [];
|
|
236
|
+
const pending = [node];
|
|
237
|
+
while (pending.length > 0) {
|
|
238
|
+
const next = pending.pop();
|
|
239
|
+
if (next === undefined) {
|
|
240
|
+
break;
|
|
241
|
+
}
|
|
242
|
+
switch (next.kind) {
|
|
243
|
+
case "var":
|
|
244
|
+
vars.push(next.ref);
|
|
245
|
+
break;
|
|
246
|
+
case "literal":
|
|
247
|
+
break;
|
|
248
|
+
case "negate":
|
|
249
|
+
case "isNaN":
|
|
250
|
+
case "isFinite":
|
|
251
|
+
case "cast":
|
|
252
|
+
pending.push(next.expr);
|
|
253
|
+
break;
|
|
254
|
+
case "add":
|
|
255
|
+
case "subtract":
|
|
256
|
+
case "multiply":
|
|
257
|
+
case "divide":
|
|
258
|
+
pending.push(next.left, next.right);
|
|
259
|
+
break;
|
|
260
|
+
default:
|
|
261
|
+
throw new AuthoringError({
|
|
262
|
+
message: "queryVarsOf: a query-var tree cannot carry a source-field leaf"
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
return vars;
|
|
267
|
+
}
|
|
268
|
+
function field(name) {
|
|
269
|
+
return sourceField(name);
|
|
270
|
+
}
|
|
271
|
+
function literal(value) {
|
|
272
|
+
return scalarLiteral("source-field", value);
|
|
273
|
+
}
|
|
274
|
+
function u64(value) {
|
|
275
|
+
checkU64(value, "Scalar.u64");
|
|
276
|
+
return scalarLiteral("source-field", { u64: value });
|
|
277
|
+
}
|
|
278
|
+
function i64(value) {
|
|
279
|
+
checkI64(value, "Scalar.i64");
|
|
280
|
+
return scalarLiteral("source-field", { i64: value });
|
|
281
|
+
}
|
|
282
|
+
function f64(value) {
|
|
283
|
+
checkF64(value, "Scalar.f64");
|
|
284
|
+
return scalarLiteral("source-field", { f64: value });
|
|
285
|
+
}
|
|
286
|
+
function bool(value) {
|
|
287
|
+
checkBool(value, "Scalar.bool");
|
|
288
|
+
return scalarLiteral("source-field", { bool: value });
|
|
289
|
+
}
|
|
290
|
+
function negate(expr) {
|
|
291
|
+
return scalarNegate("Scalar.negate", expr);
|
|
292
|
+
}
|
|
293
|
+
function add(left, right) {
|
|
294
|
+
return scalarBinary("Scalar.add", "add", left, right);
|
|
295
|
+
}
|
|
296
|
+
function subtract(left, right) {
|
|
297
|
+
return scalarBinary("Scalar.subtract", "subtract", left, right);
|
|
298
|
+
}
|
|
299
|
+
function multiply(left, right) {
|
|
300
|
+
return scalarBinary("Scalar.multiply", "multiply", left, right);
|
|
301
|
+
}
|
|
302
|
+
function divide(left, right) {
|
|
303
|
+
return scalarBinary("Scalar.divide", "divide", left, right);
|
|
304
|
+
}
|
|
305
|
+
function toF64(expr) {
|
|
306
|
+
return scalarCast("Scalar.toF64", "toF64", "f64", expr);
|
|
307
|
+
}
|
|
308
|
+
function toF64Exact(expr) {
|
|
309
|
+
return scalarCast("Scalar.toF64Exact", "toF64Exact", "f64", expr);
|
|
310
|
+
}
|
|
311
|
+
function toI64Exact(expr) {
|
|
312
|
+
return scalarCast("Scalar.toI64Exact", "toI64Exact", "i64", expr);
|
|
313
|
+
}
|
|
314
|
+
function toU64Exact(expr) {
|
|
315
|
+
return scalarCast("Scalar.toU64Exact", "toU64Exact", "u64", expr);
|
|
316
|
+
}
|
|
317
|
+
function isNaNExpr(expr) {
|
|
318
|
+
return scalarFloatPredicate("Scalar.isNaN", "isNaN", expr);
|
|
319
|
+
}
|
|
320
|
+
function isFiniteExpr(expr) {
|
|
321
|
+
return scalarFloatPredicate("Scalar.isFinite", "isFinite", expr);
|
|
322
|
+
}
|
|
323
|
+
/** The authoring namespace: `Scalar.field("units")`, `Scalar.add(...)`. */
|
|
324
|
+
const Scalar = Object.freeze({
|
|
325
|
+
field,
|
|
326
|
+
literal,
|
|
327
|
+
u64,
|
|
328
|
+
i64,
|
|
329
|
+
f64,
|
|
330
|
+
bool,
|
|
331
|
+
negate,
|
|
332
|
+
add,
|
|
333
|
+
subtract,
|
|
334
|
+
multiply,
|
|
335
|
+
divide,
|
|
336
|
+
toF64,
|
|
337
|
+
toF64Exact,
|
|
338
|
+
toI64Exact,
|
|
339
|
+
toU64Exact,
|
|
340
|
+
isNaN: isNaNExpr,
|
|
341
|
+
isFinite: isFiniteExpr
|
|
342
|
+
});
|
|
343
|
+
export { assertDepth, assertNumeric, assertSameKind, checkBool, checkF64, checkI64, checkU64, isScalarNode, isUnresolvedScalar, literalKindOf, literalValue, literalWireOf, MAX_SCALAR_DEPTH, queryVarLeaf, queryVarsOf, Scalar, scalarAuthoringWork, scalarBinary, scalarCast, scalarFloatPredicate, scalarLiteral, scalarNegate };
|
|
344
|
+
//# sourceMappingURL=scalar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scalar.js","sourceRoot":"","sources":["../src/scalar.ts"],"names":[],"mappings":"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"}
|
package/dist/schema.d.ts
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* engine's exact rule so `lower` never emits an engine-refused
|
|
11
11
|
* containment. The type tier is `law.ts`'s `TargetKeyWall` (best effort,
|
|
12
12
|
* statically known tuples); every OTHER semantic judgment (key-internal
|
|
13
|
-
* legality,
|
|
13
|
+
* legality, …) stays the engine's `SchemaError` at
|
|
14
14
|
* `Db.create` — the engine is the final authority for every boundary,
|
|
15
15
|
* this wall just makes the SDK agree with it first.
|
|
16
16
|
*/
|
package/dist/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAI3C,OAAO,EAAE,KAAK,SAAS,EAAmC,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,SAAS,CAAA;AACpH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C,OAAO,EAAgC,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAkR7E,KAAK,cAAc,GAAG,WAAW,GAAG,SAAS,CAAA;AAE7C,KAAK,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;AAErD,UAAU,MAAM,CAAC,IAAI,SAAS,eAAe,EAAE,OAAO,SAAS,aAAa,GAAG,aAAa;IAC3F,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAA;IACxB,QAAQ,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,CAAA;IACzC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CACzB;AAED,KAAK,SAAS,GAAG,MAAM,CAAC,eAAe,CAAC,CAAA;AAExC,KAAK,gBAAgB,CAAC,CAAC,SAAS,aAAa,IAAI,CAAC,SAAS,aAAa,GACrE;IAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG;QAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE;CAAE,GACpE,KAAK,CAAA;AAER,iBAAS,MAAM,CAAC,KAAK,CAAC,IAAI,SAAS,eAAe,EAAE,KAAK,CAAC,KAAK,SAAS,SAAS,SAAS,EAAE,EAC3F,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,IAAI,EACf,UAAU,EAAE,KAAK,GAAG,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,GAC/C,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CA6BxD;AAED,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,CAAA"}
|