@bjornpagen/bumbledb 0.3.0 → 0.5.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 +246 -92
- package/README.md +31 -16
- package/dist/closed.d.ts +80 -75
- package/dist/closed.d.ts.map +1 -1
- package/dist/closed.js +102 -127
- package/dist/closed.js.map +1 -1
- package/dist/db.d.ts +37 -7
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +95 -55
- package/dist/db.js.map +1 -1
- package/dist/exhume.d.ts.map +1 -1
- package/dist/exhume.js +1 -14
- package/dist/exhume.js.map +1 -1
- package/dist/face.d.ts +40 -40
- package/dist/face.d.ts.map +1 -1
- package/dist/face.js +9 -17
- package/dist/face.js.map +1 -1
- package/dist/fields.d.ts +46 -15
- package/dist/fields.d.ts.map +1 -1
- package/dist/fields.js +58 -29
- package/dist/fields.js.map +1 -1
- package/dist/index.d.ts +13 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -5
- package/dist/index.js.map +1 -1
- package/dist/law.d.ts +2 -1
- package/dist/law.d.ts.map +1 -1
- package/dist/law.js +15 -14
- package/dist/law.js.map +1 -1
- package/dist/lower.d.ts.map +1 -1
- package/dist/lower.js +1 -7
- package/dist/lower.js.map +1 -1
- package/dist/marshal.d.ts +33 -6
- package/dist/marshal.d.ts.map +1 -1
- package/dist/marshal.js +75 -26
- package/dist/marshal.js.map +1 -1
- package/dist/native.d.ts +21 -2
- package/dist/native.d.ts.map +1 -1
- package/dist/native.js +20 -3
- package/dist/native.js.map +1 -1
- package/dist/order.d.ts +36 -0
- package/dist/order.d.ts.map +1 -0
- package/dist/order.js +135 -0
- package/dist/order.js.map +1 -0
- package/dist/query/atom.d.ts +76 -28
- package/dist/query/atom.d.ts.map +1 -1
- package/dist/query/atom.js +12 -16
- package/dist/query/atom.js.map +1 -1
- package/dist/query/lower.d.ts +5 -8
- package/dist/query/lower.d.ts.map +1 -1
- package/dist/query/lower.js +308 -72
- package/dist/query/lower.js.map +1 -1
- package/dist/query/predicate.d.ts.map +1 -1
- package/dist/query/predicate.js +34 -2
- package/dist/query/predicate.js.map +1 -1
- package/dist/query/run.d.ts +15 -5
- package/dist/query/run.d.ts.map +1 -1
- package/dist/query/run.js +27 -8
- package/dist/query/run.js.map +1 -1
- package/dist/query/scope.d.ts +37 -29
- package/dist/query/scope.d.ts.map +1 -1
- package/dist/query/scope.js +19 -47
- package/dist/query/scope.js.map +1 -1
- package/dist/relation.d.ts +17 -29
- package/dist/relation.d.ts.map +1 -1
- package/dist/relation.js +41 -38
- package/dist/relation.js.map +1 -1
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +7 -31
- package/dist/schema.js.map +1 -1
- package/dist/spec.d.ts +3 -2
- package/dist/spec.d.ts.map +1 -1
- package/dist/spec.js.map +1 -1
- package/dist/statements.d.ts +13 -4
- package/dist/statements.d.ts.map +1 -1
- package/dist/statements.js +75 -8
- package/dist/statements.js.map +1 -1
- package/package.json +2 -5
- package/src/closed.ts +144 -206
- package/src/db.ts +143 -68
- package/src/exhume.ts +1 -15
- package/src/face.ts +38 -48
- package/src/fields.ts +103 -49
- package/src/index.ts +11 -10
- package/src/law.ts +15 -14
- package/src/lower.ts +2 -9
- package/src/marshal.ts +82 -31
- package/src/native.ts +22 -4
- package/src/order.ts +156 -0
- package/src/query/atom.ts +70 -35
- package/src/query/lower.ts +354 -82
- package/src/query/predicate.ts +39 -4
- package/src/query/run.ts +27 -9
- package/src/query/scope.ts +52 -70
- package/src/relation.ts +54 -68
- package/src/schema.ts +7 -33
- package/src/spec.ts +3 -2
- package/src/statements.ts +82 -8
package/dist/face.js
CHANGED
|
@@ -11,11 +11,12 @@
|
|
|
11
11
|
* positional: tuple order is preserved in the type, and the statement
|
|
12
12
|
* constructors pair the two sides' tuples by arity ({@link SameArity}) AND
|
|
13
13
|
* by structural shape ({@link SameShapes}) — every projected field's
|
|
14
|
-
* kind/width/element
|
|
15
|
-
* kernel: descriptors are pure structure
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
14
|
+
* kind/width/element/roster quadruple is read off the schema type (the
|
|
15
|
+
* minimal kernel: descriptors are pure structure, and a closed reference's
|
|
16
|
+
* roster IS part of that structure) and compared positionwise. There is no
|
|
17
|
+
* domain to compare at construction — domains are LAW-BORN: the statements
|
|
18
|
+
* themselves define the equivalence classes, and `schema()` is where they
|
|
19
|
+
* aggregate and get judged (the one-generator-per-class wall).
|
|
19
20
|
*/
|
|
20
21
|
import * as errors from "@superbuilders/errors";
|
|
21
22
|
import { renderLiteralSet } from "#spec.ts";
|
|
@@ -34,16 +35,6 @@ function faceParts(source) {
|
|
|
34
35
|
}
|
|
35
36
|
return { owner: source, selection: emptySelection };
|
|
36
37
|
}
|
|
37
|
-
/**
|
|
38
|
-
* Constructs a literal set (read disjunctively) for a `where()` binding.
|
|
39
|
-
* Two leading arguments by signature: the degenerate sets have no spelling
|
|
40
|
-
* (the canonical-utterance law, `docs/architecture/70-api.md`).
|
|
41
|
-
*/
|
|
42
|
-
function oneOf(first, second, ...rest) {
|
|
43
|
-
const literals = [first, second, ...rest];
|
|
44
|
-
Object.freeze(literals);
|
|
45
|
-
return Object.freeze({ literals });
|
|
46
|
-
}
|
|
47
38
|
function on(source, fields) {
|
|
48
39
|
const projection = Object.freeze(typeof fields === "string" ? [fields] : [...fields]);
|
|
49
40
|
const parts = faceParts(source);
|
|
@@ -59,7 +50,8 @@ function on(source, fields) {
|
|
|
59
50
|
return value;
|
|
60
51
|
}
|
|
61
52
|
/**
|
|
62
|
-
* The trusted seam of the face mint (the
|
|
53
|
+
* The trusted admission seam of the face mint (the pattern's home is
|
|
54
|
+
* `isTypedScope` in query/lower.ts): the
|
|
63
55
|
* checkable facts — the value carries exactly the source and projection it
|
|
64
56
|
* was built from, and `data.owner` is exactly the owner {@link faceParts}
|
|
65
57
|
* resolves for that source — are verified before the wide construction is
|
|
@@ -90,5 +82,5 @@ function renderFace(face) {
|
|
|
90
82
|
.join(", ");
|
|
91
83
|
return `${face.owner.name}(${projection} | ${bindings})`;
|
|
92
84
|
}
|
|
93
|
-
export { on,
|
|
85
|
+
export { on, renderFace };
|
|
94
86
|
//# sourceMappingURL=face.js.map
|
package/dist/face.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"face.js","sourceRoot":"","sources":["../src/face.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"face.js","sourceRoot":"","sources":["../src/face.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAI/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAE3C,6EAA6E;AAC7E,MAAM,cAAc,GAAgC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AAYrE;;;;;;GAMG;AACH,SAAS,SAAS,CAAC,MAAkB;IAIpC,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;QAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAA;IAC/D,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,CAAA;AACpD,CAAC;AAkMD,SAAS,EAAE,CAAuB,MAAS,EAAE,MAAkC;IAC9E,MAAM,UAAU,GAAsB,MAAM,CAAC,MAAM,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAA;IACxG,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;IAC/B,MAAM,IAAI,GAAa,MAAM,CAAC,MAAM,CAAC;QACpC,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,UAAU;QACV,SAAS,EAAE,KAAK,CAAC,SAAS;KAC1B,CAAC,CAAA;IACF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;IACzD,IAAI,CAAC,UAAU,CAAuB,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;QAClE,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,KAAK,CAAC,IAAI,gCAAgC,CAAC,CAAA;IAChF,CAAC;IACD,OAAO,KAAK,CAAA;AACb,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,UAAU,CAClB,KAAuG,EACvG,MAAS,EACT,UAAa;IAEb,MAAM,KAAK,GAAG,UAAU,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAA;IAC7D,OAAO,CACN,KAAK,CAAC,MAAM,KAAK,MAAM;QACvB,KAAK,CAAC,UAAU,KAAK,UAAU;QAC/B,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK;QAC1B,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,UAAU,CACpC,CAAA;AACF,CAAC;AAED;;;;GAIG;AACH,SAAS,UAAU,CAAC,IAAc;IACjC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC7C,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,UAAU,GAAG,CAAA;IAC3C,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS;SAC7B,GAAG,CAAC,SAAS,aAAa,CAAC,OAAO;QAClC,OAAO,GAAG,OAAO,CAAC,KAAK,OAAO,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAA;IAC9D,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAA;IACZ,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,UAAU,MAAM,QAAQ,GAAG,CAAA;AACzD,CAAC;AAiBD,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,CAAA"}
|
package/dist/fields.d.ts
CHANGED
|
@@ -40,11 +40,15 @@ declare function span(start: bigint, end: bigint): IntervalValue;
|
|
|
40
40
|
* A closed relation's roster as seen from a referencing field: the handle
|
|
41
41
|
* namespace `where()` selections and ground axioms resolve bare handle ids
|
|
42
42
|
* through (the macro's own rule: a handle is legal exactly on a field that
|
|
43
|
-
* references a closed relation).
|
|
43
|
+
* references a closed relation). The handle union is PRECISE — `H` carries
|
|
44
|
+
* the literal handle names in declaration order (the unbound `string`
|
|
45
|
+
* default exists only as the fallback where no roster is in scope); the
|
|
46
|
+
* runtime twin is the same frozen declaration-order array that was always
|
|
47
|
+
* there.
|
|
44
48
|
*/
|
|
45
|
-
interface ClosedRoster {
|
|
49
|
+
interface ClosedRoster<H extends string = string> {
|
|
46
50
|
readonly name: string;
|
|
47
|
-
readonly handles: readonly
|
|
51
|
+
readonly handles: readonly H[];
|
|
48
52
|
}
|
|
49
53
|
/** The `bool` field descriptor: value type `boolean`. No `.fresh` (macro parity). */
|
|
50
54
|
interface BoolField {
|
|
@@ -104,14 +108,16 @@ interface IntervalField<Element extends "u64" | "i64" = "u64" | "i64", Width ext
|
|
|
104
108
|
}
|
|
105
109
|
/**
|
|
106
110
|
* A closed relation's reference field descriptor (`Kind.id`) — a u64
|
|
107
|
-
* descriptor carrying the closed linkage: the roster resolves
|
|
108
|
-
*
|
|
109
|
-
* generator class `"Kind.id"`.
|
|
110
|
-
*
|
|
111
|
+
* descriptor carrying the closed linkage: the roster resolves handle
|
|
112
|
+
* literals in selections and ground axioms, and `schema()` names the id's
|
|
113
|
+
* generator class `"Kind.id"`. The handle union `H` is the field's VALUE
|
|
114
|
+
* TYPE (see {@link Infer}); `kind: "u64"` stays load-bearing for the class
|
|
115
|
+
* map and JoinOk, which compare kind/class/width/element. Terminal: no
|
|
116
|
+
* `.fresh` — a vocabulary's rows are ground axioms, never minted.
|
|
111
117
|
*/
|
|
112
|
-
interface ClosedIdField {
|
|
118
|
+
interface ClosedIdField<H extends string = string> {
|
|
113
119
|
readonly kind: "u64";
|
|
114
|
-
readonly closed: ClosedRoster
|
|
120
|
+
readonly closed: ClosedRoster<H>;
|
|
115
121
|
}
|
|
116
122
|
/** Any field descriptor, whatever its kind or marks. */
|
|
117
123
|
type AnyField = BoolField | StrField | U64Field | FreshU64Field | I64Field | BytesField | IntervalField | ClosedIdField;
|
|
@@ -119,13 +125,22 @@ type AnyField = BoolField | StrField | U64Field | FreshU64Field | I64Field | Byt
|
|
|
119
125
|
* The bare structural VALUE type of a field descriptor — the one total
|
|
120
126
|
* definition every fact, result row, and query term reads: `bool` →
|
|
121
127
|
* `boolean`, `str` → `string`, `u64`/`i64` → `bigint`, `bytes<N>` →
|
|
122
|
-
* `Uint8Array`, intervals → {@link IntervalValue}
|
|
128
|
+
* `Uint8Array`, intervals → {@link IntervalValue}, and a closed reference →
|
|
129
|
+
* its PRECISE handle union (`"DirectPass" | "Failed"` — the string-literal
|
|
130
|
+
* union IS the value type at the TS surface; the engine keeps u64 row ids
|
|
131
|
+
* and the marshal owns the bijection). The closed arm precedes the `u64`
|
|
132
|
+
* arm because a closed reference is structurally a u64 descriptor plus the
|
|
133
|
+
* roster.
|
|
123
134
|
*/
|
|
124
135
|
type Infer<F extends AnyField> = F extends {
|
|
125
136
|
readonly kind: "bool";
|
|
126
137
|
} ? boolean : F extends {
|
|
127
138
|
readonly kind: "str";
|
|
128
139
|
} ? string : F extends {
|
|
140
|
+
readonly closed: {
|
|
141
|
+
readonly handles: readonly (infer H extends string)[];
|
|
142
|
+
};
|
|
143
|
+
} ? H : F extends {
|
|
129
144
|
readonly kind: "u64";
|
|
130
145
|
} ? bigint : F extends {
|
|
131
146
|
readonly kind: "i64";
|
|
@@ -134,6 +149,23 @@ type Infer<F extends AnyField> = F extends {
|
|
|
134
149
|
} ? Uint8Array : F extends {
|
|
135
150
|
readonly kind: "interval";
|
|
136
151
|
} ? IntervalValue : never;
|
|
152
|
+
/**
|
|
153
|
+
* The typed shape refusal shared by every literal machine — the selection
|
|
154
|
+
* lowering here, the row marshaler (`marshal.ts`), and the query-literal
|
|
155
|
+
* tagger (`query/lower.ts`) all throw through this ONE voice; reached only
|
|
156
|
+
* through ill-typed input (the well-typed surfaces make it unrepresentable).
|
|
157
|
+
*/
|
|
158
|
+
declare function literalShapeError(context: string, expected: string, value: unknown): Error;
|
|
159
|
+
/**
|
|
160
|
+
* The roster a field descriptor carries — THE one reader: present exactly
|
|
161
|
+
* on a closed-reference descriptor (the structural `closed` property of
|
|
162
|
+
* {@link ClosedIdField}), absent on every other field kind. Tolerates
|
|
163
|
+
* `undefined` so name-lookup misses flow through without a re-spelled
|
|
164
|
+
* probe at every call site.
|
|
165
|
+
*/
|
|
166
|
+
declare function rosterOf(field: AnyField | undefined): ClosedRoster | undefined;
|
|
167
|
+
/** Narrows an interval-shaped value: a plain object with bigint start/end — THE one interval predicate. */
|
|
168
|
+
declare function isIntervalValue(value: unknown): value is IntervalValue;
|
|
137
169
|
/**
|
|
138
170
|
* Rejects a declaration name that JavaScript would re-order. Declaration
|
|
139
171
|
* order = ordinal ids is the law relations, columns, and schemas all lean
|
|
@@ -176,12 +208,11 @@ declare function interval<Element extends U64Field | I64Field, const Width exten
|
|
|
176
208
|
* Lowers one host literal at its field position to the wire
|
|
177
209
|
* {@link LiteralSpec} — the selection-literal machine ground axioms and
|
|
178
210
|
* `where()` bindings both ride (one machine, same errors — the macro's own
|
|
179
|
-
* rule). A value on a closed-reference field
|
|
180
|
-
*
|
|
181
|
-
*
|
|
182
|
-
* the field's structural kind.
|
|
211
|
+
* rule). A value on a closed-reference field IS its handle NAME (verified
|
|
212
|
+
* against the roster: an unknown name is a construction error); everything
|
|
213
|
+
* else lowers to a plain value tagged by the field's structural kind.
|
|
183
214
|
*/
|
|
184
215
|
declare function literalOf(field: AnyField, value: unknown): LiteralSpec;
|
|
185
216
|
export type { AnyField, BoolField, BytesField, ClosedIdField, ClosedRoster, FreshU64Field, I64Field, Infer, IntervalField, IntervalValue, StrField, U64Field };
|
|
186
|
-
export { assertDeclarationOrderKey, bool, bytes, i64, interval, literalOf, span, str, u64 };
|
|
217
|
+
export { assertDeclarationOrderKey, bool, bytes, i64, interval, isIntervalValue, literalOf, literalShapeError, rosterOf, span, str, u64 };
|
|
187
218
|
//# sourceMappingURL=fields.d.ts.map
|
package/dist/fields.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE3C;;;;;;;;GAQG;AACH,UAAU,aAAa;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACpB;AAED;;;;;;GAMG;AACH,iBAAS,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,aAAa,CAKvD;AAED
|
|
1
|
+
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"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"}
|
package/dist/fields.js
CHANGED
|
@@ -29,14 +29,29 @@ function span(start, end) {
|
|
|
29
29
|
return Object.freeze({ start, end });
|
|
30
30
|
}
|
|
31
31
|
/**
|
|
32
|
-
* The typed shape refusal
|
|
32
|
+
* The typed shape refusal shared by every literal machine — the selection
|
|
33
|
+
* lowering here, the row marshaler (`marshal.ts`), and the query-literal
|
|
34
|
+
* tagger (`query/lower.ts`) all throw through this ONE voice; reached only
|
|
33
35
|
* through ill-typed input (the well-typed surfaces make it unrepresentable).
|
|
34
36
|
*/
|
|
35
|
-
function literalShapeError(expected, value) {
|
|
36
|
-
return errors.new(
|
|
37
|
+
function literalShapeError(context, expected, value) {
|
|
38
|
+
return errors.new(`${context}: expected ${expected}, got ${typeof value}`);
|
|
37
39
|
}
|
|
38
|
-
/**
|
|
39
|
-
|
|
40
|
+
/**
|
|
41
|
+
* The roster a field descriptor carries — THE one reader: present exactly
|
|
42
|
+
* on a closed-reference descriptor (the structural `closed` property of
|
|
43
|
+
* {@link ClosedIdField}), absent on every other field kind. Tolerates
|
|
44
|
+
* `undefined` so name-lookup misses flow through without a re-spelled
|
|
45
|
+
* probe at every call site.
|
|
46
|
+
*/
|
|
47
|
+
function rosterOf(field) {
|
|
48
|
+
if (field !== undefined && "closed" in field) {
|
|
49
|
+
return field.closed;
|
|
50
|
+
}
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
/** Narrows an interval-shaped value: a plain object with bigint start/end — THE one interval predicate. */
|
|
54
|
+
function isIntervalValue(value) {
|
|
40
55
|
return (typeof value === "object" &&
|
|
41
56
|
value !== null &&
|
|
42
57
|
"start" in value &&
|
|
@@ -45,25 +60,27 @@ function isIntervalLiteral(value) {
|
|
|
45
60
|
typeof value.end === "bigint");
|
|
46
61
|
}
|
|
47
62
|
/**
|
|
48
|
-
* Resolves one closed-handle literal: the handle
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
63
|
+
* Resolves one closed-handle literal: the handle NAME, verified against the
|
|
64
|
+
* roster — an unknown name is a construction error, the belt the wide
|
|
65
|
+
* fallback type deliberately does not provide (structural values make any
|
|
66
|
+
* string spellable here; the roster judges). The name IS the value at the
|
|
67
|
+
* TS surface (the drizzle law); the wire literal already crossed as
|
|
68
|
+
* `{ kind: "handle", handle }`, so the output — and every fingerprint
|
|
69
|
+
* derived from it — is untouched.
|
|
52
70
|
*/
|
|
53
71
|
function handleLiteral(closed, value) {
|
|
54
|
-
if (typeof value !== "
|
|
55
|
-
throw literalShapeError(`a ${closed.name} handle
|
|
72
|
+
if (typeof value !== "string") {
|
|
73
|
+
throw literalShapeError("selection literal", `a ${closed.name} handle name (string)`, value);
|
|
56
74
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
throw errors.new(`closed relation ${closed.name} has no handle with id ${value} (roster holds ${closed.handles.length})`);
|
|
75
|
+
if (!closed.handles.includes(value)) {
|
|
76
|
+
throw errors.new(`"${value}" is not a handle of ${closed.name} — the roster is ${closed.handles.join(", ")}`);
|
|
60
77
|
}
|
|
61
|
-
return { kind: "handle", handle };
|
|
78
|
+
return { kind: "handle", handle: value };
|
|
62
79
|
}
|
|
63
80
|
/** Lowers one interval literal at its element type. */
|
|
64
81
|
function intervalLiteral(element, value) {
|
|
65
|
-
if (!
|
|
66
|
-
throw literalShapeError("interval ({ start, end } bigints)", value);
|
|
82
|
+
if (!isIntervalValue(value)) {
|
|
83
|
+
throw literalShapeError("selection literal", "interval ({ start, end } bigints)", value);
|
|
67
84
|
}
|
|
68
85
|
if (element === "u64") {
|
|
69
86
|
return { kind: "value", value: { kind: "intervalU64", start: value.start, end: value.end } };
|
|
@@ -122,43 +139,55 @@ function interval(element, width) {
|
|
|
122
139
|
* Lowers one host literal at its field position to the wire
|
|
123
140
|
* {@link LiteralSpec} — the selection-literal machine ground axioms and
|
|
124
141
|
* `where()` bindings both ride (one machine, same errors — the macro's own
|
|
125
|
-
* rule). A value on a closed-reference field
|
|
126
|
-
*
|
|
127
|
-
*
|
|
128
|
-
* the field's structural kind.
|
|
142
|
+
* rule). A value on a closed-reference field IS its handle NAME (verified
|
|
143
|
+
* against the roster: an unknown name is a construction error); everything
|
|
144
|
+
* else lowers to a plain value tagged by the field's structural kind.
|
|
129
145
|
*/
|
|
130
146
|
function literalOf(field, value) {
|
|
131
|
-
|
|
132
|
-
|
|
147
|
+
const roster = rosterOf(field);
|
|
148
|
+
if (roster !== undefined) {
|
|
149
|
+
return handleLiteral(roster, value);
|
|
133
150
|
}
|
|
134
151
|
switch (field.kind) {
|
|
135
152
|
case "bool": {
|
|
136
153
|
if (typeof value !== "boolean") {
|
|
137
|
-
throw literalShapeError("boolean", value);
|
|
154
|
+
throw literalShapeError("selection literal", "boolean", value);
|
|
138
155
|
}
|
|
139
156
|
return { kind: "value", value: { kind: "bool", value } };
|
|
140
157
|
}
|
|
141
158
|
case "u64": {
|
|
142
159
|
if (typeof value !== "bigint") {
|
|
143
|
-
throw literalShapeError("bigint", value);
|
|
160
|
+
throw literalShapeError("selection literal", "bigint", value);
|
|
144
161
|
}
|
|
145
162
|
return { kind: "value", value: { kind: "u64", value } };
|
|
146
163
|
}
|
|
147
164
|
case "i64": {
|
|
148
165
|
if (typeof value !== "bigint") {
|
|
149
|
-
throw literalShapeError("bigint", value);
|
|
166
|
+
throw literalShapeError("selection literal", "bigint", value);
|
|
150
167
|
}
|
|
151
168
|
return { kind: "value", value: { kind: "i64", value } };
|
|
152
169
|
}
|
|
153
170
|
case "str": {
|
|
154
171
|
if (typeof value !== "string") {
|
|
155
|
-
throw literalShapeError("string", value);
|
|
172
|
+
throw literalShapeError("selection literal", "string", value);
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* The marshal's bijection law at the schema-literal seam
|
|
176
|
+
* (`marshal.ts` cellOf): a lone surrogate would cross dbCreate
|
|
177
|
+
* lossily (stored as U+FFFD engine-side), collapsing two
|
|
178
|
+
* distinct TS schema values into one stored theory/fingerprint
|
|
179
|
+
* and splitting the canonical statement rendering from the
|
|
180
|
+
* SDK's. All three string-admission seams — fact row, query
|
|
181
|
+
* literal/param, schema literal — enforce the one law.
|
|
182
|
+
*/
|
|
183
|
+
if (!value.isWellFormed()) {
|
|
184
|
+
throw literalShapeError("selection literal", "well-formed string", value);
|
|
156
185
|
}
|
|
157
186
|
return { kind: "value", value: { kind: "string", value } };
|
|
158
187
|
}
|
|
159
188
|
case "bytes": {
|
|
160
189
|
if (!(value instanceof Uint8Array)) {
|
|
161
|
-
throw literalShapeError("Uint8Array", value);
|
|
190
|
+
throw literalShapeError("selection literal", "Uint8Array", value);
|
|
162
191
|
}
|
|
163
192
|
return { kind: "value", value: { kind: "fixedBytes", value } };
|
|
164
193
|
}
|
|
@@ -166,5 +195,5 @@ function literalOf(field, value) {
|
|
|
166
195
|
return intervalLiteral(field.element, value);
|
|
167
196
|
}
|
|
168
197
|
}
|
|
169
|
-
export { assertDeclarationOrderKey, bool, bytes, i64, interval, literalOf, span, str, u64 };
|
|
198
|
+
export { assertDeclarationOrderKey, bool, bytes, i64, interval, isIntervalValue, literalOf, literalShapeError, rosterOf, span, str, u64 };
|
|
170
199
|
//# sourceMappingURL=fields.js.map
|
package/dist/fields.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAiB/C;;;;;;GAMG;AACH,SAAS,IAAI,CAAC,KAAa,EAAE,GAAW;IACvC,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;QAClB,MAAM,MAAM,CAAC,GAAG,CAAC,gEAAgE,KAAK,KAAK,GAAG,GAAG,CAAC,CAAA;IACnG,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;AACrC,CAAC;
|
|
1
|
+
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -14,36 +14,41 @@
|
|
|
14
14
|
* `db.prepare` as a plain value; the comparison/connective builders are
|
|
15
15
|
* also free exports, and the free names `eq`/`not`/`and`/`or` collide with
|
|
16
16
|
* common host identifiers — import aliasing is the answer; the SDK does
|
|
17
|
-
* not rename for collision-avoidance),
|
|
17
|
+
* not rename for collision-avoidance), the exhume surface
|
|
18
18
|
* (`Db.exhume` — the one schema-independent read path: the store's
|
|
19
19
|
* self-described shapes and raw facts by name, typed at bare structural
|
|
20
|
-
* values, deliberately schema-free)
|
|
20
|
+
* values, deliberately schema-free), and the answer-ordering helpers
|
|
21
|
+
* (`by`/`desc` — sort keys as data for the language's own `.sort`; answers
|
|
22
|
+
* are sets, the engine never orders, and limit is the language's own
|
|
23
|
+
* `.slice`). The raw native bridge is not exported.
|
|
21
24
|
*/
|
|
22
25
|
export type { AnyClosed, AnySelectedClosed, AxiomRow, Axioms, Closed, ClosedColumn, ClosedCore, ClosedData, ClosedRow, ClosedSelectionInput, PayloadField, SelectedClosed } from "#closed.ts";
|
|
23
26
|
export { closed } from "#closed.ts";
|
|
24
27
|
export type { Count } from "#count.ts";
|
|
25
28
|
export { atLeast, atMost, between, exactly, none } from "#count.ts";
|
|
26
29
|
export type { Abandon, DeclaredKeyFact, DeltaBuild, MemberRelation, OffendingFact, Prepared, ReadScope, Tx, Violation, WitnessedWriteResult, WriteResult } from "#db.ts";
|
|
27
|
-
export { abandon, Db, ErrNewtypeMismatch } from "#db.ts";
|
|
30
|
+
export { abandon, Db, ErrNewtypeMismatch, ErrWitnessedLivelock, WITNESSED_ATTEMPT_CAP } from "#db.ts";
|
|
28
31
|
export type { Exhumed, ExhumedAxiom, ExhumedDescriptor, ExhumedFact, ExhumedField, ExhumedRelation } from "#exhume.ts";
|
|
29
32
|
export { ErrExhumeCorruption, ErrExhumeFormatMismatch, ErrExhumeNoDescriptor } from "#exhume.ts";
|
|
30
|
-
export type { AnyFace, Arity, Face, FaceArityMismatch, FaceData, FaceFields, FaceOwner, FaceShapeMismatch, FaceShapes, FaceSource,
|
|
31
|
-
export { on
|
|
33
|
+
export type { AnyFace, Arity, Face, FaceArityMismatch, FaceData, FaceFields, FaceOwner, FaceShapeMismatch, FaceShapes, FaceSource, OwnerOf, SameArity, SameShapes } from "#face.ts";
|
|
34
|
+
export { on } from "#face.ts";
|
|
32
35
|
export type { AnyField, BoolField, BytesField, ClosedIdField, ClosedRoster, FreshU64Field, I64Field, Infer, IntervalField, IntervalValue, StrField, U64Field } from "#fields.ts";
|
|
33
36
|
export { bool, bytes, i64, interval, span, str, u64 } from "#fields.ts";
|
|
34
37
|
export type { ClassesOf, ClassWall, LawfulStatements, RelationClasses, SchemaClasses } from "#law.ts";
|
|
35
38
|
export { lower, lowerClosed, lowerRelation } from "#lower.ts";
|
|
36
39
|
export type { KeyFact, Minted } from "#marshal.ts";
|
|
37
40
|
export type { FactValue, OccurrenceDrift, ProgramIr, Staleness, StatementKindTag } from "#native.ts";
|
|
41
|
+
export type { Desc, SortKey } from "#order.ts";
|
|
42
|
+
export { by, desc } from "#order.ts";
|
|
38
43
|
export type { AnyCond, BindingInput, Cmp, MatchFields, MatchOwner, MatchShape, NotAtom, RecData, RuleData, SelectColumn, Tree } from "#query/atom.ts";
|
|
39
|
-
export { ALLEN, allen, and,
|
|
44
|
+
export { ALLEN, allen, and, eq, ge, gt, le, lt, ne, not, or, pointIn } from "#query/atom.ts";
|
|
40
45
|
export type { AnyQuery, AnyRuleValue, OutputRuleChain, OutputRuleScope, Query, QueryData, QueryParams, QueryRelation, QueryRow, QueryRuleChain, QueryRuleScope, QueryStart, RecRef, RecRuleChain, RecRuleScope, RuleValue, TermOps } from "#query/lower.ts";
|
|
41
46
|
export { lowerQuery, query } from "#query/lower.ts";
|
|
42
47
|
export type { ProgramScope, Rec } from "#query/predicate.ts";
|
|
43
48
|
export { program } from "#query/predicate.ts";
|
|
44
|
-
export type { ClassedField, Duration, MaskParam, Param, ParamEntry, ParamsRecord, SetParam, Var
|
|
49
|
+
export type { ClassedField, Duration, MaskParam, Param, ParamEntry, ParamsRecord, SetParam, Var } from "#query/scope.ts";
|
|
45
50
|
export type { Agg, SelectEntry } from "#query/select.ts";
|
|
46
|
-
export type { AnyRelation, AnySelected, Fact,
|
|
51
|
+
export type { AnyRelation, AnySelected, Fact, FieldsShape, FreshKeys, InsertFact, Relation, RelationData, RelationField, RelationFields, Selected, SelectionBinding, SelectionInput } from "#relation.ts";
|
|
47
52
|
export { relation } from "#relation.ts";
|
|
48
53
|
export type { AnySchema, Schema, SchemaRelation, SchemaRelations } from "#schema.ts";
|
|
49
54
|
export { schema } from "#schema.ts";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -14,19 +14,23 @@
|
|
|
14
14
|
* `db.prepare` as a plain value; the comparison/connective builders are
|
|
15
15
|
* also free exports, and the free names `eq`/`not`/`and`/`or` collide with
|
|
16
16
|
* common host identifiers — import aliasing is the answer; the SDK does
|
|
17
|
-
* not rename for collision-avoidance),
|
|
17
|
+
* not rename for collision-avoidance), the exhume surface
|
|
18
18
|
* (`Db.exhume` — the one schema-independent read path: the store's
|
|
19
19
|
* self-described shapes and raw facts by name, typed at bare structural
|
|
20
|
-
* values, deliberately schema-free)
|
|
20
|
+
* values, deliberately schema-free), and the answer-ordering helpers
|
|
21
|
+
* (`by`/`desc` — sort keys as data for the language's own `.sort`; answers
|
|
22
|
+
* are sets, the engine never orders, and limit is the language's own
|
|
23
|
+
* `.slice`). The raw native bridge is not exported.
|
|
21
24
|
*/
|
|
22
25
|
export { closed } from "#closed.ts";
|
|
23
26
|
export { atLeast, atMost, between, exactly, none } from "#count.ts";
|
|
24
|
-
export { abandon, Db, ErrNewtypeMismatch } from "#db.ts";
|
|
27
|
+
export { abandon, Db, ErrNewtypeMismatch, ErrWitnessedLivelock, WITNESSED_ATTEMPT_CAP } from "#db.ts";
|
|
25
28
|
export { ErrExhumeCorruption, ErrExhumeFormatMismatch, ErrExhumeNoDescriptor } from "#exhume.ts";
|
|
26
|
-
export { on
|
|
29
|
+
export { on } from "#face.ts";
|
|
27
30
|
export { bool, bytes, i64, interval, span, str, u64 } from "#fields.ts";
|
|
28
31
|
export { lower, lowerClosed, lowerRelation } from "#lower.ts";
|
|
29
|
-
export {
|
|
32
|
+
export { by, desc } from "#order.ts";
|
|
33
|
+
export { ALLEN, allen, and, eq, ge, gt, le, lt, ne, not, or, pointIn } from "#query/atom.ts";
|
|
30
34
|
export { lowerQuery, query } from "#query/lower.ts";
|
|
31
35
|
export { program } from "#query/predicate.ts";
|
|
32
36
|
export { relation } from "#relation.ts";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAgBH,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAEnC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAcnE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,QAAQ,CAAA;AASrG,OAAO,EACN,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,EACrB,MAAM,YAAY,CAAA;AAgBnB,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAA;AAe7B,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAEvE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAU7D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAepC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAoB5F,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEnD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AA2B7C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAEvC,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAcnC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAWxE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA"}
|
package/dist/law.d.ts
CHANGED
|
@@ -211,7 +211,8 @@ type ClassesOf<Rels extends SchemaRelations, Stmts extends readonly Statement[]>
|
|
|
211
211
|
*/
|
|
212
212
|
declare function computeClasses(name: string, relations: SchemaRelations, statements: readonly Statement[]): SchemaClasses;
|
|
213
213
|
/**
|
|
214
|
-
* The trusted seam of the class-map mint (the
|
|
214
|
+
* The trusted admission seam of the class-map mint (the pattern's home is
|
|
215
|
+
* `isTypedScope` in query/lower.ts): the
|
|
215
216
|
* checkable facts — one own record per declared relation, one own entry
|
|
216
217
|
* per declared field (the closed sealed shape's `id` included), everything
|
|
217
218
|
* frozen — are verified before the runtime map is admitted at the computed
|
package/dist/law.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"law.d.ts","sourceRoot":"","sources":["../src/law.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"law.d.ts","sourceRoot":"","sources":["../src/law.ts"],"names":[],"mappings":"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"}
|
package/dist/law.js
CHANGED
|
@@ -50,23 +50,23 @@
|
|
|
50
50
|
* silently widened.
|
|
51
51
|
*/
|
|
52
52
|
import * as errors from "@superbuilders/errors";
|
|
53
|
+
import { isClosedMember, sealedFieldsOf } from "#closed.ts";
|
|
53
54
|
import { renderStatement } from "#statements.ts";
|
|
54
|
-
/**
|
|
55
|
+
/**
|
|
56
|
+
* Reads every member's coordinates off the relation record, declaration
|
|
57
|
+
* order throughout — the sealed shape through THE one reader
|
|
58
|
+
* (`sealedFieldsOf`): a closed member's generator is its synthetic `id`
|
|
59
|
+
* (ordinal 0), an ordinary member's generators are its fresh-marked fields.
|
|
60
|
+
*/
|
|
55
61
|
function memberCoords(relations) {
|
|
56
62
|
const out = [];
|
|
57
63
|
for (const [relationName, member] of Object.entries(relations)) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
];
|
|
65
|
-
out.push({ relation: relationName, fields });
|
|
66
|
-
continue;
|
|
67
|
-
}
|
|
68
|
-
const fields = member.data.fields.map(function fieldCoord(declared) {
|
|
69
|
-
return { name: declared.name, generator: "fresh" in declared.field && declared.field.fresh === true };
|
|
64
|
+
const closed = isClosedMember(member);
|
|
65
|
+
const fields = sealedFieldsOf(member).map(function fieldCoord(declared) {
|
|
66
|
+
return {
|
|
67
|
+
name: declared.name,
|
|
68
|
+
generator: closed ? declared.name === "id" : "fresh" in declared.field && declared.field.fresh === true
|
|
69
|
+
};
|
|
70
70
|
});
|
|
71
71
|
out.push({ relation: relationName, fields });
|
|
72
72
|
}
|
|
@@ -199,7 +199,8 @@ function computeClasses(name, relations, statements) {
|
|
|
199
199
|
return Object.freeze(classes);
|
|
200
200
|
}
|
|
201
201
|
/**
|
|
202
|
-
* The trusted seam of the class-map mint (the
|
|
202
|
+
* The trusted admission seam of the class-map mint (the pattern's home is
|
|
203
|
+
* `isTypedScope` in query/lower.ts): the
|
|
203
204
|
* checkable facts — one own record per declared relation, one own entry
|
|
204
205
|
* per declared field (the closed sealed shape's `id` included), everything
|
|
205
206
|
* frozen — are verified before the runtime map is admitted at the computed
|
package/dist/law.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"law.js","sourceRoot":"","sources":["../src/law.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAEH,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"law.js","sourceRoot":"","sources":["../src/law.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAEH,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAE/C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAI3D,OAAO,EAAE,eAAe,EAAkB,MAAM,gBAAgB,CAAA;AAiRhE;;;;;GAKG;AACH,SAAS,YAAY,CAAC,SAA0B;IAC/C,MAAM,GAAG,GAAmB,EAAE,CAAA;IAC9B,KAAK,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAChE,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;QACrC,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,UAAU,CAAC,QAAQ;YACrE,OAAO;gBACN,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI;aACvG,CAAA;QACF,CAAC,CAAC,CAAA;QACF,GAAG,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAA;IAC7C,CAAC;IACD,OAAO,GAAG,CAAA;AACX,CAAC;AAUD,6BAA6B;AAC7B,SAAS,aAAa;IACrB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAA;IACxC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoB,CAAA;IAC9C,SAAS,IAAI,CAAC,KAAa;QAC1B,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC5B,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YACxB,OAAO,KAAK,CAAA;QACb,CAAC;QACD,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;YAClB,OAAO,KAAK,CAAA;QACb,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAA;QACrB,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QACvB,OAAO,IAAI,CAAA;IACZ,CAAC;IACD,OAAO;QACN,IAAI;QACJ,KAAK,CAAC,CAAC,EAAE,CAAC;YACT,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YACrB,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YACrB,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;gBACrB,OAAO,KAAK,CAAA;YACb,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YACxB,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;YACnF,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACxB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;YAC9B,CAAC;YACD,OAAO,KAAK,CAAA;QACb,CAAC;QACD,YAAY,CAAC,IAAI;YAChB,OAAO,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;QAClC,CAAC;QACD,aAAa,CAAC,KAAK;YAClB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;YACxB,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;QAC/D,CAAC;KACD,CAAA;AACF,CAAC;AAED,uFAAuF;AACvF,SAAS,cAAc,CAAC,SAAoB;IAC3C,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAA;IAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACzB,OAAO,SAAS,CAAA;IACjB,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;AAClC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,cAAc,CAAC,IAAY,EAAE,SAA0B,EAAE,UAAgC;IACjG,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,CAAC,CAAA;IACvC,MAAM,EAAE,GAAG,aAAa,EAAE,CAAA;IAC1B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAA;IAChC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAA;IACtC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC9B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAA;YAChD,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACd,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACrB,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;gBACvB,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;YACxB,CAAC;QACF,CAAC;IACF,CAAC;IACD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;QACvC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACzB,SAAQ;QACT,CAAC;QACD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAAA;QAC9B,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,SAAS,CAAC,SAAS,EAAE,QAAQ;YAC/D,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;YAC/C,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC/B,OAAM;YACP,CAAC;YACD,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS,EAAE,CAAA;YAClD,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,WAAW,EAAE,CAAA;YACpD,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAClB,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAClB,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YACrC,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;YAClC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,MAAM,CAAC,GAAG,CACf,UAAU,IAAI,0DAA0D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,yCAAyC,eAAe,CAAC,SAAS,CAAC,EAAE,CAC/J,CAAA;YACF,CAAC;QACF,CAAC,CAAC,CAAA;IACH,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAA;IACvC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC9B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAA;YAChD,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC3B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;gBAClC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAA;YAClC,CAAC;QACF,CAAC;IACF,CAAC;IACD,MAAM,OAAO,GAAoC,EAAE,CAAA;IACnD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAuC,EAAE,CAAA;QACrD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAA;YAChD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAC5D,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE;gBACzC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;gBACtD,UAAU,EAAE,IAAI;aAChB,CAAC,CAAA;QACH,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACrB,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;IACrF,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;AAC9B,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,eAAe,CACvB,OAAsB,EACtB,SAA0B;IAE1B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAA;IACb,CAAC;IACD,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,SAAS,cAAc,CAAC,MAAM;QAClE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACvC,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACtD,OAAO,KAAK,CAAA;QACb,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,WAAW,CAAC,KAAK;YACpD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;AACH,CAAC;AAGD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,CAAA"}
|