@bjornpagen/bumbledb 1.1.0 → 1.2.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.
Files changed (148) hide show
  1. package/COOKBOOK.md +114 -11
  2. package/README.md +52 -9
  3. package/dist/capacity.d.ts +15 -55
  4. package/dist/capacity.d.ts.map +1 -1
  5. package/dist/capacity.js +63 -12
  6. package/dist/capacity.js.map +1 -1
  7. package/dist/changes.d.ts +26 -3
  8. package/dist/changes.d.ts.map +1 -1
  9. package/dist/changes.js +89 -44
  10. package/dist/changes.js.map +1 -1
  11. package/dist/closed.d.ts +23 -51
  12. package/dist/closed.d.ts.map +1 -1
  13. package/dist/closed.js +110 -168
  14. package/dist/closed.js.map +1 -1
  15. package/dist/codec.d.ts +4 -9
  16. package/dist/codec.d.ts.map +1 -1
  17. package/dist/codec.js +108 -183
  18. package/dist/codec.js.map +1 -1
  19. package/dist/compile.d.ts +16 -16
  20. package/dist/compile.d.ts.map +1 -1
  21. package/dist/compile.js +36 -15
  22. package/dist/compile.js.map +1 -1
  23. package/dist/db-native.d.ts +39 -0
  24. package/dist/db-native.d.ts.map +1 -1
  25. package/dist/db-native.js +8 -0
  26. package/dist/db-native.js.map +1 -1
  27. package/dist/db.d.ts +28 -8
  28. package/dist/db.d.ts.map +1 -1
  29. package/dist/db.js +91 -38
  30. package/dist/db.js.map +1 -1
  31. package/dist/errors.d.ts +11 -3
  32. package/dist/errors.d.ts.map +1 -1
  33. package/dist/errors.js +13 -1
  34. package/dist/errors.js.map +1 -1
  35. package/dist/face.d.ts +19 -25
  36. package/dist/face.d.ts.map +1 -1
  37. package/dist/face.js +30 -24
  38. package/dist/face.js.map +1 -1
  39. package/dist/fields.d.ts +13 -26
  40. package/dist/fields.d.ts.map +1 -1
  41. package/dist/fields.js +89 -116
  42. package/dist/fields.js.map +1 -1
  43. package/dist/immutable.d.ts +10 -0
  44. package/dist/immutable.d.ts.map +1 -0
  45. package/dist/immutable.js +75 -0
  46. package/dist/immutable.js.map +1 -0
  47. package/dist/index.d.ts +14 -10
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +5 -3
  50. package/dist/index.js.map +1 -1
  51. package/dist/internal/log.d.ts +2 -0
  52. package/dist/internal/log.d.ts.map +1 -1
  53. package/dist/internal/log.js +2 -0
  54. package/dist/internal/log.js.map +1 -1
  55. package/dist/law.d.ts +10 -10
  56. package/dist/law.d.ts.map +1 -1
  57. package/dist/law.js +1 -1
  58. package/dist/law.js.map +1 -1
  59. package/dist/lower.d.ts.map +1 -1
  60. package/dist/lower.js +11 -6
  61. package/dist/lower.js.map +1 -1
  62. package/dist/native.d.ts +1 -1
  63. package/dist/native.d.ts.map +1 -1
  64. package/dist/native.js.map +1 -1
  65. package/dist/query/atom.d.ts +1 -1
  66. package/dist/query/atom.d.ts.map +1 -1
  67. package/dist/query/atom.js.map +1 -1
  68. package/dist/query/description.d.ts +33 -0
  69. package/dist/query/description.d.ts.map +1 -0
  70. package/dist/query/description.js +302 -0
  71. package/dist/query/description.js.map +1 -0
  72. package/dist/query/lower.d.ts +60 -4
  73. package/dist/query/lower.d.ts.map +1 -1
  74. package/dist/query/lower.js +126 -161
  75. package/dist/query/lower.js.map +1 -1
  76. package/dist/query/parse-ir.d.ts +7 -2
  77. package/dist/query/parse-ir.d.ts.map +1 -1
  78. package/dist/query/parse-ir.js +240 -53
  79. package/dist/query/parse-ir.js.map +1 -1
  80. package/dist/query/run.d.ts.map +1 -1
  81. package/dist/query/run.js +8 -10
  82. package/dist/query/run.js.map +1 -1
  83. package/dist/query/scope.d.ts +3 -4
  84. package/dist/query/scope.d.ts.map +1 -1
  85. package/dist/query/scope.js +5 -10
  86. package/dist/query/scope.js.map +1 -1
  87. package/dist/relation.d.ts +22 -48
  88. package/dist/relation.d.ts.map +1 -1
  89. package/dist/relation.js +30 -82
  90. package/dist/relation.js.map +1 -1
  91. package/dist/rows.d.ts +7 -4
  92. package/dist/rows.d.ts.map +1 -1
  93. package/dist/rows.js +44 -198
  94. package/dist/rows.js.map +1 -1
  95. package/dist/runtime-errors.d.ts +26 -2
  96. package/dist/runtime-errors.d.ts.map +1 -1
  97. package/dist/runtime-errors.js +43 -3
  98. package/dist/runtime-errors.js.map +1 -1
  99. package/dist/schema.d.ts +9 -1
  100. package/dist/schema.d.ts.map +1 -1
  101. package/dist/schema.js +85 -24
  102. package/dist/schema.js.map +1 -1
  103. package/dist/selection.d.ts +27 -0
  104. package/dist/selection.d.ts.map +1 -0
  105. package/dist/selection.js +104 -0
  106. package/dist/selection.js.map +1 -0
  107. package/dist/shape.d.ts +6 -9
  108. package/dist/shape.d.ts.map +1 -1
  109. package/dist/statements.d.ts +17 -52
  110. package/dist/statements.d.ts.map +1 -1
  111. package/dist/statements.js +92 -111
  112. package/dist/statements.js.map +1 -1
  113. package/dist/values.d.ts +25 -0
  114. package/dist/values.d.ts.map +1 -0
  115. package/dist/values.js +203 -0
  116. package/dist/values.js.map +1 -0
  117. package/pack-provenance.json +3 -3
  118. package/package.json +4 -4
  119. package/src/capacity.ts +86 -76
  120. package/src/changes.ts +183 -54
  121. package/src/closed.ts +161 -314
  122. package/src/codec.ts +116 -190
  123. package/src/compile.ts +56 -32
  124. package/src/db-native.ts +42 -0
  125. package/src/db.ts +134 -52
  126. package/src/errors.ts +16 -1
  127. package/src/face.ts +44 -74
  128. package/src/fields.ts +100 -146
  129. package/src/immutable.ts +76 -0
  130. package/src/index.ts +34 -28
  131. package/src/internal/log.ts +2 -0
  132. package/src/law.ts +13 -13
  133. package/src/lower.ts +13 -10
  134. package/src/native.ts +2 -0
  135. package/src/query/atom.ts +1 -0
  136. package/src/query/description.ts +394 -0
  137. package/src/query/lower.ts +139 -173
  138. package/src/query/parse-ir.ts +247 -54
  139. package/src/query/run.ts +15 -9
  140. package/src/query/scope.ts +10 -18
  141. package/src/relation.ts +58 -142
  142. package/src/rows.ts +62 -205
  143. package/src/runtime-errors.ts +47 -3
  144. package/src/schema.ts +99 -29
  145. package/src/selection.ts +124 -0
  146. package/src/shape.ts +9 -9
  147. package/src/statements.ts +138 -189
  148. package/src/values.ts +223 -0
package/dist/face.d.ts CHANGED
@@ -1,24 +1,18 @@
1
- import type { AnyClosed, AnySelectedClosed, PayloadField } from "./closed.js";
2
- import type { AnyField, SignatureOf } from "./fields.js";
1
+ import type { AnyClosed } from "./closed.js";
2
+ import { type AnyField, type SignatureOf } from "./fields.js";
3
3
  import type { Same } from "./judgment.js";
4
- import type { AnyRelation, AnySelected, FieldsShape, RelationFields, SelectionBinding } from "./relation.js";
5
- type OwnerOf<S extends FaceSource> = S extends AnySelected | AnySelectedClosed ? S["relation"] : S;
4
+ import type { AnyRelation, FieldsShape } from "./relation.js";
5
+ import { type AnySelected, type FieldsOf, type SelectionBinding } from "./selection.js";
6
+ type OwnerOf<S extends FaceSource> = S extends AnySelected ? S["relation"] : S;
6
7
  type FaceOwner = AnyRelation | AnyClosed;
7
- interface FaceData<O extends FaceOwner = FaceOwner, P extends readonly string[] = readonly string[]> {
8
+ interface Face<O extends FaceOwner = FaceOwner, P extends readonly string[] = readonly string[]> {
8
9
  readonly owner: O;
9
10
  readonly projection: P;
10
11
  readonly selection: readonly SelectionBinding[];
11
12
  }
12
- interface Face<S extends FaceSource, P extends readonly string[]> {
13
- readonly source: S;
14
- readonly projection: P;
15
- readonly data: FaceData<OwnerOf<S>, P>;
16
- }
17
- type AnyFace = Face<FaceSource, readonly string[]>;
18
- type FaceSource = AnyRelation | AnyClosed | AnySelected | AnySelectedClosed;
19
- type FaceFields<S extends FaceSource> = S extends AnySelected ? keyof RelationFields<S["relation"]> & string : S extends AnySelectedClosed ? "id" | (keyof S["relation"]["columns"] & string) : S extends AnyRelation ? keyof RelationFields<S> & string : S extends {
20
- readonly axioms: Readonly<Record<string, infer Row>>;
21
- } ? "id" | (keyof Row & string) : never;
13
+ type AnyFace = Face<FaceOwner, readonly string[]>;
14
+ type FaceSource = AnyRelation | AnyClosed | AnySelected;
15
+ type FaceFields<S extends FaceSource> = keyof FieldsOf<OwnerOf<S>> & string;
22
16
  /**
23
17
  * The wire shape a face projects: the field's {@link SignatureOf} with an
24
18
  * interval's width erased. A fixed-width interval pairs with a plain one —
@@ -31,14 +25,11 @@ type ProjectedSignature<F extends AnyField> = F extends {
31
25
  readonly element: infer E;
32
26
  } ? E : undefined, undefined] : SignatureOf<F>;
33
27
  type ShapeIn<Fields extends FieldsShape, K extends string> = K extends keyof Fields ? ProjectedSignature<Fields[K]> : undefined;
34
- type ProjectedShape<S extends FaceSource, K extends string> = S extends AnySelected ? ShapeIn<RelationFields<S["relation"]>, K> : S extends AnySelectedClosed ? K extends "id" ? ProjectedSignature<S["relation"]["id"]> : ShapeIn<S["relation"]["columns"], K> : S extends AnyRelation ? ShapeIn<RelationFields<S>, K> : S extends {
35
- readonly id: infer Id extends AnyField;
36
- readonly columns: infer Cols extends Record<string, PayloadField>;
37
- } ? K extends "id" ? ProjectedSignature<Id> : ShapeIn<Cols, K> : undefined;
28
+ type ProjectedShape<S extends FaceSource, K extends string> = ShapeIn<FieldsOf<OwnerOf<S>>, K>;
38
29
  type ShapesOf<S extends FaceSource, P extends readonly string[]> = {
39
30
  readonly [I in keyof P]: ProjectedShape<S, P[I] & string>;
40
31
  };
41
- type FaceShapes<F extends AnyFace> = F extends Face<infer S, infer P> ? ShapesOf<S, P> : never;
32
+ type FaceShapes<F extends AnyFace> = ShapesOf<F["owner"], F["projection"]>;
42
33
  type Arity<F extends AnyFace> = F["projection"]["length"];
43
34
  interface FaceArityMismatch<Left, Right> {
44
35
  readonly "face arity mismatch — positional pairing requires both sides to project equally many fields": readonly [
@@ -54,9 +45,12 @@ interface FaceShapeMismatch<Left, Right> {
54
45
  ];
55
46
  }
56
47
  type SameShapes<A extends AnyFace, B extends AnyFace> = Same<FaceShapes<A>, FaceShapes<B>> extends true ? unknown : FaceShapeMismatch<FaceShapes<A>, FaceShapes<B>>;
57
- declare function on<S extends FaceSource, const F extends FaceFields<S>>(source: S, field: F): Face<S, readonly [F]>;
58
- declare function on<S extends FaceSource, const P extends readonly [FaceFields<S>, ...FaceFields<S>[]]>(source: S, fields: P): Face<S, P>;
59
- declare function renderFace(face: FaceData): string;
60
- export type { AnyFace, Arity, Face, FaceArityMismatch, FaceData, FaceFields, FaceOwner, FaceShapeMismatch, FaceShapes, FaceSource, OwnerOf, ProjectedShape, SameArity, SameShapes };
61
- export { on, renderFace };
48
+ declare function on<S extends FaceSource, const F extends FaceFields<S>>(source: S, field: F): Face<OwnerOf<S>, readonly [F]>;
49
+ declare function on<S extends FaceSource, const P extends readonly [FaceFields<S>, ...FaceFields<S>[]]>(source: S, fields: P): Face<OwnerOf<S>, P>;
50
+ /** Own and check a structural face. No constructor-only admission token. */
51
+ declare function faceDescriptor<F extends AnyFace>(input: F): F;
52
+ declare function faceDescriptor(input: unknown): AnyFace;
53
+ declare function renderFace(face: AnyFace): string;
54
+ export type { AnyFace, Arity, Face, FaceArityMismatch, FaceFields, FaceOwner, FaceShapeMismatch, FaceShapes, FaceSource, OwnerOf, ProjectedShape, SameArity, SameShapes };
55
+ export { faceDescriptor, on, renderFace };
62
56
  //# sourceMappingURL=face.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"face.d.ts","sourceRoot":"","sources":["../src/face.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"face.d.ts","sourceRoot":"","sources":["../src/face.ts"],"names":[],"mappings":"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"}
package/dist/face.js CHANGED
@@ -1,41 +1,47 @@
1
+ import { memberDescriptor, sealedFieldOf } from "#closed.ts";
1
2
  import { AuthoringError } from "#errors.ts";
3
+ import { assertDeclarationRecord } from "#fields.ts";
4
+ import { selectionBindings } from "#selection.ts";
2
5
  import { renderLiteralSet } from "#spec.ts";
6
+ import { arrayValue, recordValue } from "#values.ts";
3
7
  const emptySelection = Object.freeze([]);
4
8
  function faceParts(source) {
9
+ assertDeclarationRecord("face source", source);
5
10
  if ("relation" in source) {
11
+ recordValue("selected relation", source, ["relation", "selection"]);
6
12
  return { owner: source.relation, selection: source.selection };
7
13
  }
8
14
  return { owner: source, selection: emptySelection };
9
15
  }
10
16
  function on(source, fields) {
11
- const projection = Object.freeze(typeof fields === "string" ? [fields] : [...fields]);
12
17
  const parts = faceParts(source);
13
- const data = Object.freeze({
18
+ return faceDescriptor({
14
19
  owner: parts.owner,
15
- projection,
20
+ projection: typeof fields === "string" ? [fields] : fields,
16
21
  selection: parts.selection
17
22
  });
18
- const value = Object.freeze({ source, projection, data });
19
- if (!faceMinted(value, source, projection)) {
20
- throw new AuthoringError({ message: `face over ${parts.owner.name}: face construction incomplete` });
21
- }
22
- return value;
23
23
  }
24
- /**
25
- * The trusted admission seam of the face mint (the pattern's home is
26
- * `isTypedScope` in query/lower.ts): the
27
- * checkable facts the value carries exactly the source and projection it
28
- * was built from, and `data.owner` is exactly the owner {@link faceParts}
29
- * resolves for that source are verified before the wide construction is
30
- * admitted at the exact {@link Face} type (whose `data` claims the owner at
31
- * its precise type, the carrier the schema-level law-typing reads).
32
- */
33
- function faceMinted(value, source, projection) {
34
- const owner = "relation" in source ? source.relation : source;
35
- return (value.source === source &&
36
- value.projection === projection &&
37
- value.data.owner === owner &&
38
- value.data.projection === projection);
24
+ function faceDescriptor(raw) {
25
+ const input = recordValue("face", raw, ["owner", "projection", "selection"]);
26
+ const owner = memberDescriptor(input.owner);
27
+ const projection = arrayValue("face projection", input.projection, (_, value) => {
28
+ if (typeof value !== "string")
29
+ throw new AuthoringError({ message: "face: expected a field name" });
30
+ return value;
31
+ });
32
+ if (projection.length === 0) {
33
+ throw new AuthoringError({ message: "face: expected a nonempty projection" });
34
+ }
35
+ const projected = new Set();
36
+ for (const field of projection) {
37
+ if (typeof field !== "string" || sealedFieldOf(owner, field) === undefined)
38
+ throw new AuthoringError({ message: `face ${owner.name}: unknown field ${String(field)}` });
39
+ if (projected.has(field))
40
+ throw new AuthoringError({ message: `face ${owner.name}: duplicate field ${field}` });
41
+ projected.add(field);
42
+ }
43
+ const selection = selectionBindings(owner, input.selection);
44
+ return Object.freeze({ owner, projection, selection });
39
45
  }
40
46
  function renderFace(face) {
41
47
  const projection = face.projection.join(", ");
@@ -49,5 +55,5 @@ function renderFace(face) {
49
55
  .join(", ");
50
56
  return `${face.owner.name}(${projection} | ${bindings})`;
51
57
  }
52
- export { on, renderFace };
58
+ export { faceDescriptor, on, renderFace };
53
59
  //# 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":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAI3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAE3C,MAAM,cAAc,GAAgC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AAIrE,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;AA8FD,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,IAAI,cAAc,CAAC,EAAE,OAAO,EAAE,aAAa,KAAK,CAAC,KAAK,CAAC,IAAI,gCAAgC,EAAE,CAAC,CAAA;IACrG,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,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;AAkBD,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,CAAA"}
1
+ {"version":3,"file":"face.js","sourceRoot":"","sources":["../src/face.ts"],"names":[],"mappings":"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"}
package/dist/fields.d.ts CHANGED
@@ -1,7 +1,5 @@
1
- import { Result } from "effect";
2
- import { DbError } from "./runtime-errors.js";
3
1
  import type { LiteralSpec } from "./spec.js";
4
- import { Uuid } from "./uuid.js";
2
+ import type { Uuid } from "./uuid.js";
5
3
  /**
6
4
  * A half-open integer interval `[start, end)` as a plain value object —
7
5
  * the ONE discrete interval value type, whatever the field's element type
@@ -17,29 +15,14 @@ interface IntervalValue {
17
15
  /**
18
16
  * A half-open dense float interval `[start, end)` as a plain value object:
19
17
  * two canonical binary64 bounds on the dense numeric line.
20
- * NaN is never an endpoint, signed zero is normalized at the checked
21
- * constructor and again by the native boundary, and strict `start < end`
22
- * makes empty spans unrepresentable through {@link span}. Infinite bounds
23
- * denote a missing bound, not a member point.
18
+ * Field-directed validation rejects NaN endpoints and empty intervals and
19
+ * normalizes signed zero. Infinite bounds denote a missing bound, not a
20
+ * member point; a plain object alone is not evidence of validation.
24
21
  */
25
22
  interface FloatIntervalValue {
26
23
  readonly start: number;
27
24
  readonly end: number;
28
25
  }
29
- /**
30
- * Constructs a checked interval literal — the `start..end` spelling.
31
- * Half-open and nonempty by construction. Fallible pure parsing
32
- * returns `Result` (use `Effect.fromResult(span(...))` inside a generator),
33
- * never hidden I/O and never a thrown domain outcome.
34
- *
35
- * Two element domains, selected by argument type: `span(0n, 60n)` is a
36
- * discrete integer interval; `span(0.5, 1.5)` is a dense float interval
37
- * with canonical endpoints (NaN refused, `-0` normalized to `+0`,
38
- * `-Infinity` legal only as the lower bound and `+Infinity` only as the
39
- * upper bound — both enforced by strict numeric `start < end`).
40
- */
41
- declare function span(start: bigint, end: bigint): Result.Result<IntervalValue, DbError>;
42
- declare function span(start: number, end: number): Result.Result<FloatIntervalValue, DbError>;
43
26
  /**
44
27
  * Nonempty declaration-order handle vector — the ONE roster carrier. The
45
28
  * handle union is `Handles[number]`, the ordinal of a handle is its tuple
@@ -137,10 +120,8 @@ type Infer<F extends AnyField> = F extends {
137
120
  readonly kind: "bytes";
138
121
  } ? Uint8Array : F extends {
139
122
  readonly kind: "interval";
140
- readonly element: "f64";
141
- } ? FloatIntervalValue : F extends {
142
- readonly kind: "interval";
143
- } ? IntervalValue : never;
123
+ readonly element: infer Element;
124
+ } ? Element extends "f64" ? FloatIntervalValue : IntervalValue : never;
144
125
  /**
145
126
  * The typed shape refusal shared by every literal machine — the selection
146
127
  * lowering here, the row codec (`rows.ts`), and the query-literal
@@ -165,6 +146,12 @@ declare function isIntervalValue(value: unknown): value is IntervalValue;
165
146
  declare function isFloatIntervalValue(value: unknown): value is FloatIntervalValue;
166
147
  declare function assertDeclarationOrderKey(where: string, name: string): void;
167
148
  declare function assertDeclarationRecord(where: string, record: object): void;
149
+ /** Own a checked roster; never freeze the caller's array. */
150
+ declare function ownHandles<const H extends ClosedHandleTuple>(context: string, handles: H): H;
151
+ declare function ownHandles(context: string, handles: unknown): ClosedHandleTuple;
152
+ /** Checked structural field descriptors, shared by declaration boundaries. */
153
+ declare function fieldDescriptor<F extends AnyField>(context: string, input: F): F;
154
+ declare function fieldDescriptor(context: string, input: unknown): AnyField;
168
155
  declare const u64: U64Field;
169
156
  declare const i64: I64Field;
170
157
  /** Binary64. The native value boundary canonicalizes NaN and signed zero. */
@@ -178,5 +165,5 @@ declare function interval<Element extends U64Field | I64Field | F64Field>(elemen
178
165
  declare function interval<Element extends U64Field | I64Field, const Width extends bigint>(element: Element, width: Width): IntervalField<Element["kind"], Width>;
179
166
  declare function literalOf(field: AnyField, value: unknown): LiteralSpec;
180
167
  export type { AnyClosedIdField, AnyClosedRoster, AnyField, BoolField, BytesField, ClosedHandleTuple, ClosedIdField, ClosedRoster, F64Field, FloatIntervalValue, I64Field, Infer, IntervalElementKind, IntervalField, IntervalValue, SignatureOf, StrField, U64Field, UuidField };
181
- export { assertDeclarationOrderKey, assertDeclarationRecord, bool, bytes, f64, i64, interval, isFloatIntervalValue, isIntervalValue, literalOf, literalShapeError, rosterOf, rostersAgree, signaturesAgree, span, str, u64, uuid };
168
+ export { assertDeclarationOrderKey, assertDeclarationRecord, bool, bytes, f64, fieldDescriptor, i64, interval, isFloatIntervalValue, isIntervalValue, literalOf, literalShapeError, ownHandles, rosterOf, rostersAgree, signaturesAgree, str, u64, uuid };
182
169
  //# sourceMappingURL=fields.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAI/B;;;;;;;GAOG;AACH,UAAU,aAAa;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACpB;AAED;;;;;;;GAOG;AACH,UAAU,kBAAkB;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACpB;AAED;;;;;;;;;;;GAWG;AACH,iBAAS,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;AAChF,iBAAS,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAA;AAyBrF;;;;;GAKG;AACH,KAAK,iBAAiB,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAA;AAEvD,UAAU,YAAY,CAAC,IAAI,SAAS,MAAM,EAAE,OAAO,SAAS,iBAAiB;IAC5E,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CACzB;AAED,2EAA2E;AAC3E,KAAK,eAAe,GAAG,YAAY,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;AAE9D,UAAU,SAAS;IAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACrB;AAED,UAAU,QAAQ;IACjB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;CACpB;AAED,UAAU,QAAQ;IACjB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;CACpB;AAED,UAAU,QAAQ;IACjB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;CACpB;AAED,UAAU,QAAQ;IACjB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;CACpB;AAED;;;;;GAKG;AACH,UAAU,SAAS;IAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACrB;AAED,UAAU,UAAU,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM;IACjD,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;CACrB;AAED,KAAK,mBAAmB,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAA;AAEhD,UAAU,aAAa,CACtB,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,EACzD,KAAK,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS;IAErD,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;CACrB;AAED,UAAU,aAAa,CAAC,IAAI,SAAS,MAAM,EAAE,OAAO,SAAS,iBAAiB;IAC7E,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;CAC5C;AAED,2EAA2E;AAC3E,KAAK,gBAAgB,GAAG,aAAa,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;AAEhE,KAAK,QAAQ,GACV,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,UAAU,GACV,aAAa,GACb,gBAAgB,CAAA;AAEnB;;;;;;;GAOG;AACH,KAAK,WAAW,CAAC,CAAC,SAAS,QAAQ,IAAI,SAAS;IAC/C,CAAC,CAAC,MAAM,CAAC;IACT,CAAC,SAAS;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,SAAS;IACrD,CAAC,SAAS;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,SAAS;IACvD,CAAC,SAAS;QACT,QAAQ,CAAC,MAAM,EAAE;YAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,MAAM,CAAC;YAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,iBAAiB,CAAA;SAAE,CAAA;KAC/G,GACE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GACf,SAAS;CACZ,CAAA;AAED,KAAK,KAAK,CAAC,CAAC,SAAS,QAAQ,IAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjE,OAAO,GACP,CAAC,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;CAAE,GACjC,MAAM,GACN,CAAC,SAAS;IAAE,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,SAAS,MAAM,CAAC,EAAE,CAAA;KAAE,CAAA;CAAE,GACvF,CAAC,GACD,CAAC,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;CAAE,GACjC,MAAM,GACN,CAAC,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;CAAE,GACjC,MAAM,GACN,CAAC,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;CAAE,GACjC,MAAM,GACN,CAAC,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAClC,IAAI,GACJ,CAAC,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GACnC,UAAU,GACV,CAAC,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAA;CAAE,GAC/D,kBAAkB,GAClB,CAAC,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GACtC,aAAa,GACb,KAAK,CAAA;AAEjB;;;;;GAKG;AACH,iBAAS,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,CAEnF;AAED,iBAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,eAAe,GAAG,SAAS,CAK1E;AAED;;;;GAIG;AACH,iBAAS,YAAY,CAAC,CAAC,EAAE,eAAe,GAAG,SAAS,EAAE,CAAC,EAAE,eAAe,GAAG,SAAS,GAAG,OAAO,CAW7F;AAED;;;;GAIG;AACH,iBAAS,eAAe,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAM1D;AAED,iBAAS,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAS/D;AAED,iBAAS,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CASzE;AA0CD,iBAAS,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAWpE;AAED,iBAAS,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAOpE;AAED,QAAA,MAAM,GAAG,EAAE,QAAyC,CAAA;AAEpD,QAAA,MAAM,GAAG,EAAE,QAAyC,CAAA;AAEpD,6EAA6E;AAC7E,QAAA,MAAM,GAAG,EAAE,QAAyC,CAAA;AAEpD,2EAA2E;AAC3E,QAAA,MAAM,IAAI,EAAE,SAA2C,CAAA;AAEvD,QAAA,MAAM,IAAI,EAAE,SAA2C,CAAA;AAEvD,QAAA,MAAM,GAAG,EAAE,QAAyC,CAAA;AAEpD,iBAAS,KAAK,CAAC,KAAK,CAAC,KAAK,SAAS,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAO1E;AAED,iBAAS,QAAQ,CAAC,OAAO,SAAS,QAAQ,GAAG,QAAQ,GAAG,QAAQ,EAC/D,OAAO,EAAE,OAAO,GACd,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAA;AAC5C,iBAAS,QAAQ,CAAC,OAAO,SAAS,QAAQ,GAAG,QAAQ,EAAE,KAAK,CAAC,KAAK,SAAS,MAAM,EAChF,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,GACV,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAA;AAyBxC,iBAAS,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,GAAG,WAAW,CAuD/D;AAED,YAAY,EACX,gBAAgB,EAChB,eAAe,EACf,QAAQ,EACR,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,kBAAkB,EAClB,QAAQ,EACR,KAAK,EACL,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,CAAA;AACD,OAAO,EACN,yBAAyB,EACzB,uBAAuB,EACvB,IAAI,EACJ,KAAK,EACL,GAAG,EACH,GAAG,EACH,QAAQ,EACR,oBAAoB,EACpB,eAAe,EACf,SAAS,EACT,iBAAiB,EACjB,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,IAAI,EACJ,GAAG,EACH,GAAG,EACH,IAAI,EACJ,CAAA"}
1
+ {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"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"}
package/dist/fields.js CHANGED
@@ -1,29 +1,7 @@
1
1
  import { regex } from "arkregex";
2
- import { Result } from "effect";
3
2
  import { AuthoringError } from "#errors.ts";
4
- import { DbError } from "#runtime-errors.ts";
5
- import { Uuid } from "#uuid.ts";
3
+ import { arrayValue, fieldValue, recordValue, taggedValueOf, U64_MAX } from "#values.ts";
6
4
  const INTEGER_INDEX_NAME = regex("^(?:0|[1-9][0-9]*)$");
7
- function span(start, end) {
8
- if (typeof start === "bigint" && typeof end === "bigint") {
9
- if (start >= end) {
10
- return Result.fail(new DbError({ operation: "span", reason: { _tag: "InvalidArgument" } }));
11
- }
12
- return Result.succeed(Object.freeze({ start, end }));
13
- }
14
- if (typeof start === "number" && typeof end === "number") {
15
- if (Number.isNaN(start) || Number.isNaN(end)) {
16
- return Result.fail(new DbError({ operation: "span", reason: { _tag: "InvalidArgument" } }));
17
- }
18
- const lo = Object.is(start, -0) ? 0 : start;
19
- const hi = Object.is(end, -0) ? 0 : end;
20
- if (!(lo < hi)) {
21
- return Result.fail(new DbError({ operation: "span", reason: { _tag: "InvalidArgument" } }));
22
- }
23
- return Result.succeed(Object.freeze({ start: lo, end: hi }));
24
- }
25
- return Result.fail(new DbError({ operation: "span", reason: { _tag: "InvalidArgument" } }));
26
- }
27
5
  /**
28
6
  * The typed shape refusal shared by every literal machine — the selection
29
7
  * lowering here, the row codec (`rows.ts`), and the query-literal
@@ -82,45 +60,10 @@ function isFloatIntervalValue(value) {
82
60
  typeof value.start === "number" &&
83
61
  typeof value.end === "number");
84
62
  }
85
- function handleLiteral(closed, value) {
86
- if (typeof value !== "string") {
87
- throw literalShapeError("selection literal", `a ${closed.name} handle name (string)`, value);
88
- }
89
- if (!closed.handles.includes(value)) {
90
- throw new AuthoringError({
91
- message: `"${value}" is not a handle of ${closed.name} — the roster is ${closed.handles.join(", ")}`
92
- });
93
- }
94
- return { kind: "handle", handle: value };
95
- }
96
- function intervalLiteral(element, value) {
97
- if (element === "f64") {
98
- if (!isFloatIntervalValue(value)) {
99
- throw literalShapeError("selection literal", "float interval ({ start, end } numbers)", value);
100
- }
101
- if (Number.isNaN(value.start) || Number.isNaN(value.end) || !(value.start < value.end)) {
102
- throw new AuthoringError({
103
- message: "selection literal: a float interval is half-open and nonempty with non-NaN canonical endpoints"
104
- });
105
- }
106
- return {
107
- kind: "value",
108
- value: {
109
- kind: "intervalF64",
110
- start: Object.is(value.start, -0) ? 0 : value.start,
111
- end: Object.is(value.end, -0) ? 0 : value.end
112
- }
113
- };
114
- }
115
- if (!isIntervalValue(value)) {
116
- throw literalShapeError("selection literal", "interval ({ start, end } bigints)", value);
117
- }
118
- if (element === "u64") {
119
- return { kind: "value", value: { kind: "intervalU64", start: value.start, end: value.end } };
120
- }
121
- return { kind: "value", value: { kind: "intervalI64", start: value.start, end: value.end } };
122
- }
123
63
  function assertDeclarationOrderKey(where, name) {
64
+ if (typeof name !== "string" || !name.isWellFormed()) {
65
+ throw new AuthoringError({ message: `${where}: expected a well-formed Unicode name` });
66
+ }
124
67
  if (INTEGER_INDEX_NAME.test(name)) {
125
68
  throw new AuthoringError({
126
69
  message: `${where}: name ${name} is an integer index — JavaScript object keys re-order integer indices, breaking the declaration-order law; use a non-numeric name`
@@ -133,12 +76,91 @@ function assertDeclarationOrderKey(where, name) {
133
76
  }
134
77
  }
135
78
  function assertDeclarationRecord(where, record) {
79
+ if (typeof record !== "object" || record === null) {
80
+ throw new AuthoringError({ message: `${where}: expected a plain declaration record` });
81
+ }
136
82
  const proto = Object.getPrototypeOf(record);
137
83
  if (proto !== Object.prototype && proto !== null) {
138
84
  throw new AuthoringError({
139
85
  message: `${where}: the declaration record's prototype was replaced — a plain \`__proto__: {...}\` entry is the prototype setter, so its key silently vanishes from the declaration; spell it computed (["__proto__"]: {...}) to declare it as data`
140
86
  });
141
87
  }
88
+ for (const key of Reflect.ownKeys(record)) {
89
+ const property = Object.getOwnPropertyDescriptor(record, key);
90
+ if (typeof key !== "string" || property?.enumerable !== true || !("value" in property)) {
91
+ throw new AuthoringError({ message: `${where}: declarations require enumerable own data fields` });
92
+ }
93
+ }
94
+ }
95
+ function ownHandles(context, handles) {
96
+ if (!Array.isArray(handles) || handles.length === 0) {
97
+ throw new AuthoringError({ message: `${context}: expected a nonempty handle tuple` });
98
+ }
99
+ const seen = new Set();
100
+ const values = arrayValue(context, handles, (_, handle) => {
101
+ if (typeof handle !== "string")
102
+ throw new AuthoringError({ message: `${context}: expected string handles` });
103
+ if (!handle.isWellFormed())
104
+ throw new AuthoringError({ message: `${context}: expected well-formed string handles` });
105
+ if (seen.has(handle))
106
+ throw new AuthoringError({ message: `${context}: duplicate handle ${handle}` });
107
+ seen.add(handle);
108
+ return handle;
109
+ });
110
+ const first = values[0];
111
+ if (first === undefined)
112
+ throw new AuthoringError({ message: `${context}: expected a nonempty handle tuple` });
113
+ return Object.freeze([first, ...values.slice(1)]);
114
+ }
115
+ function fieldDescriptor(context, input) {
116
+ if (typeof input !== "object" || input === null || !("kind" in input)) {
117
+ throw new AuthoringError({ message: `${context}: expected a field descriptor` });
118
+ }
119
+ assertDeclarationRecord(context, input);
120
+ switch (input.kind) {
121
+ case "bool":
122
+ case "str":
123
+ case "i64":
124
+ case "f64":
125
+ case "uuid":
126
+ recordValue(context, input, ["kind"]);
127
+ return Object.freeze({ kind: input.kind });
128
+ case "u64": {
129
+ if (!("closed" in input)) {
130
+ recordValue(context, input, ["kind"]);
131
+ return u64;
132
+ }
133
+ recordValue(context, input, ["kind", "closed"]);
134
+ const roster = recordValue(context, input.closed, ["name", "handles"]);
135
+ if (typeof roster.name !== "string")
136
+ throw new AuthoringError({ message: `${context}: expected a roster name` });
137
+ assertDeclarationOrderKey(context, roster.name);
138
+ return Object.freeze({
139
+ kind: "u64",
140
+ closed: Object.freeze({ name: roster.name, handles: ownHandles(context, roster.handles) })
141
+ });
142
+ }
143
+ case "bytes": {
144
+ const value = recordValue(context, input, ["kind", "width"]);
145
+ if (typeof value.width !== "number")
146
+ throw new AuthoringError({ message: `${context}: expected a bytes width` });
147
+ return bytes(value.width);
148
+ }
149
+ case "interval": {
150
+ const value = recordValue(context, input, ["kind", "element", "width"]);
151
+ if (value.element !== "u64" && value.element !== "i64" && value.element !== "f64") {
152
+ throw new AuthoringError({ message: `${context}: expected an interval element kind` });
153
+ }
154
+ if (value.width === undefined)
155
+ return interval({ kind: value.element });
156
+ if (value.element === "f64" || typeof value.width !== "bigint") {
157
+ throw new AuthoringError({ message: `${context}: only discrete intervals accept a bigint width` });
158
+ }
159
+ return interval({ kind: value.element }, value.width);
160
+ }
161
+ default:
162
+ throw new AuthoringError({ message: `${context}: unknown field kind` });
163
+ }
142
164
  }
143
165
  const u64 = Object.freeze({ kind: "u64" });
144
166
  const i64 = Object.freeze({ kind: "i64" });
@@ -168,67 +190,18 @@ function interval(element, width) {
168
190
  message: "interval(f64) takes no width — a fixed-width float interval is unrepresentable (rounded start + width is not an exact fixed length on the dense line); applications supply two checked bounds"
169
191
  });
170
192
  }
171
- if (width !== undefined && width < 1n) {
193
+ if (width !== undefined && (typeof width !== "bigint" || width < 1n || width > U64_MAX)) {
172
194
  throw new AuthoringError({
173
- message: `interval width must be >= 1 (got ${width}) — w >= 1 is pinned at declaration`
195
+ message: "interval width must be a bigint in 1..=u64::MAX"
174
196
  });
175
197
  }
176
198
  return Object.freeze({ kind: "interval", element: elementKind, width });
177
199
  }
178
200
  function literalOf(field, value) {
179
- const roster = rosterOf(field);
180
- if (roster !== undefined) {
181
- return handleLiteral(roster, value);
182
- }
183
- switch (field.kind) {
184
- case "bool": {
185
- if (typeof value !== "boolean") {
186
- throw literalShapeError("selection literal", "boolean", value);
187
- }
188
- return { kind: "value", value: { kind: "bool", value } };
189
- }
190
- case "u64": {
191
- if (typeof value !== "bigint") {
192
- throw literalShapeError("selection literal", "bigint", value);
193
- }
194
- return { kind: "value", value: { kind: "u64", value } };
195
- }
196
- case "i64": {
197
- if (typeof value !== "bigint") {
198
- throw literalShapeError("selection literal", "bigint", value);
199
- }
200
- return { kind: "value", value: { kind: "i64", value } };
201
- }
202
- case "str": {
203
- if (typeof value !== "string") {
204
- throw literalShapeError("selection literal", "string", value);
205
- }
206
- if (!value.isWellFormed()) {
207
- throw literalShapeError("selection literal", "well-formed string", value);
208
- }
209
- return { kind: "value", value: { kind: "string", value } };
210
- }
211
- case "f64": {
212
- if (typeof value !== "number") {
213
- throw literalShapeError("selection literal", "number", value);
214
- }
215
- return { kind: "value", value: { kind: "f64", value } };
216
- }
217
- case "uuid": {
218
- if (!Uuid.isUuid(value)) {
219
- throw literalShapeError("selection literal", "a UUID (canonical UUID text)", value);
220
- }
221
- return { kind: "value", value: { kind: "uuid", value } };
222
- }
223
- case "bytes": {
224
- if (!(value instanceof Uint8Array)) {
225
- throw literalShapeError("selection literal", "Uint8Array", value);
226
- }
227
- return { kind: "value", value: { kind: "fixedBytes", value } };
228
- }
229
- case "interval":
230
- return intervalLiteral(field.element, value);
201
+ if ("closed" in field) {
202
+ return { kind: "handle", handle: fieldValue("selection literal", field, value) };
231
203
  }
204
+ return { kind: "value", value: taggedValueOf("selection literal", field, value) };
232
205
  }
233
- export { assertDeclarationOrderKey, assertDeclarationRecord, bool, bytes, f64, i64, interval, isFloatIntervalValue, isIntervalValue, literalOf, literalShapeError, rosterOf, rostersAgree, signaturesAgree, span, str, u64, uuid };
206
+ export { assertDeclarationOrderKey, assertDeclarationRecord, bool, bytes, f64, fieldDescriptor, i64, interval, isFloatIntervalValue, isIntervalValue, literalOf, literalShapeError, ownHandles, rosterOf, rostersAgree, signaturesAgree, str, u64, uuid };
234
207
  //# sourceMappingURL=fields.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fields.js","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fields.js","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ declare function isImmutable(input: unknown, visiting?: WeakSet<object>): boolean;
2
+ /** Validation is never skipped for a mutable structural input. Validated
3
+ * immutable outputs can be reused without requiring constructor identity. */
4
+ declare function descriptorCache<A extends object>(parse: (input: unknown) => A): (input: unknown) => A;
5
+ /** Detached inspection data: share proven immutable branches, copy byte
6
+ * buffers and their parents, and preserve references within one snapshot.
7
+ * This is for already checked internal data, not an input validator. */
8
+ declare function snapshotData<A>(input: A, onCopy?: (source: object, snapshot: object) => void): A;
9
+ export { descriptorCache, isImmutable, snapshotData };
10
+ //# sourceMappingURL=immutable.d.ts.map