typesea 0.1.0 → 0.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 (285) hide show
  1. package/CHANGELOG.md +67 -6
  2. package/README.md +98 -17
  3. package/dist/adapters/index.d.ts +50 -8
  4. package/dist/adapters/index.d.ts.map +1 -1
  5. package/dist/adapters/index.js +169 -48
  6. package/dist/aot/index.d.ts +18 -2
  7. package/dist/aot/index.d.ts.map +1 -1
  8. package/dist/aot/index.js +93 -14
  9. package/dist/async/index.d.ts +28 -56
  10. package/dist/async/index.d.ts.map +1 -1
  11. package/dist/async/index.js +94 -37
  12. package/dist/builders/composite.d.ts +37 -6
  13. package/dist/builders/composite.d.ts.map +1 -1
  14. package/dist/builders/composite.js +84 -10
  15. package/dist/builders/index.d.ts +2 -0
  16. package/dist/builders/index.d.ts.map +1 -1
  17. package/dist/builders/index.js +2 -0
  18. package/dist/builders/modifier.d.ts +30 -5
  19. package/dist/builders/modifier.d.ts.map +1 -1
  20. package/dist/builders/modifier.js +38 -5
  21. package/dist/builders/object/guard.d.ts +18 -22
  22. package/dist/builders/object/guard.d.ts.map +1 -1
  23. package/dist/builders/object/guard.js +26 -26
  24. package/dist/builders/object/index.d.ts +2 -0
  25. package/dist/builders/object/index.d.ts.map +1 -1
  26. package/dist/builders/object/index.js +2 -0
  27. package/dist/builders/object/schema.d.ts +55 -9
  28. package/dist/builders/object/schema.d.ts.map +1 -1
  29. package/dist/builders/object/schema.js +92 -15
  30. package/dist/builders/object/types.d.ts +5 -31
  31. package/dist/builders/object/types.d.ts.map +1 -1
  32. package/dist/builders/object/types.js +2 -0
  33. package/dist/builders/scalar.d.ts +29 -8
  34. package/dist/builders/scalar.d.ts.map +1 -1
  35. package/dist/builders/scalar.js +33 -8
  36. package/dist/builders/table.d.ts +4 -0
  37. package/dist/builders/table.d.ts.map +1 -1
  38. package/dist/builders/table.js +4 -0
  39. package/dist/builders/types.d.ts +14 -4
  40. package/dist/builders/types.d.ts.map +1 -1
  41. package/dist/builders/types.js +2 -0
  42. package/dist/compile/check-composite.d.ts +22 -1
  43. package/dist/compile/check-composite.d.ts.map +1 -1
  44. package/dist/compile/check-composite.js +564 -24
  45. package/dist/compile/check-scalar.d.ts +78 -0
  46. package/dist/compile/check-scalar.d.ts.map +1 -1
  47. package/dist/compile/check-scalar.js +432 -1
  48. package/dist/compile/check.d.ts +12 -0
  49. package/dist/compile/check.d.ts.map +1 -1
  50. package/dist/compile/check.js +37 -0
  51. package/dist/compile/context.d.ts +47 -9
  52. package/dist/compile/context.d.ts.map +1 -1
  53. package/dist/compile/context.js +51 -8
  54. package/dist/compile/graph-predicate.d.ts +4 -2
  55. package/dist/compile/graph-predicate.d.ts.map +1 -1
  56. package/dist/compile/graph-predicate.js +1907 -171
  57. package/dist/compile/guard.d.ts +15 -24
  58. package/dist/compile/guard.d.ts.map +1 -1
  59. package/dist/compile/guard.js +158 -74
  60. package/dist/compile/index.d.ts +3 -1
  61. package/dist/compile/index.d.ts.map +1 -1
  62. package/dist/compile/index.js +2 -0
  63. package/dist/compile/issue.d.ts +110 -0
  64. package/dist/compile/issue.d.ts.map +1 -1
  65. package/dist/compile/issue.js +184 -1
  66. package/dist/compile/names.d.ts +12 -2
  67. package/dist/compile/names.d.ts.map +1 -1
  68. package/dist/compile/names.js +19 -3
  69. package/dist/compile/predicate.d.ts +24 -0
  70. package/dist/compile/predicate.d.ts.map +1 -1
  71. package/dist/compile/predicate.js +131 -5
  72. package/dist/compile/runtime.d.ts +80 -12
  73. package/dist/compile/runtime.d.ts.map +1 -1
  74. package/dist/compile/runtime.js +25 -6
  75. package/dist/compile/source.d.ts +10 -2
  76. package/dist/compile/source.d.ts.map +1 -1
  77. package/dist/compile/source.js +361 -26
  78. package/dist/compile/types.d.ts +20 -0
  79. package/dist/compile/types.d.ts.map +1 -1
  80. package/dist/compile/types.js +2 -0
  81. package/dist/decoder/index.d.ts +32 -46
  82. package/dist/decoder/index.d.ts.map +1 -1
  83. package/dist/decoder/index.js +102 -38
  84. package/dist/evaluate/check-composite.d.ts +59 -0
  85. package/dist/evaluate/check-composite.d.ts.map +1 -1
  86. package/dist/evaluate/check-composite.js +151 -3
  87. package/dist/evaluate/check-scalar.d.ts +16 -0
  88. package/dist/evaluate/check-scalar.d.ts.map +1 -1
  89. package/dist/evaluate/check-scalar.js +32 -0
  90. package/dist/evaluate/check.d.ts +7 -0
  91. package/dist/evaluate/check.d.ts.map +1 -1
  92. package/dist/evaluate/check.js +43 -0
  93. package/dist/evaluate/index.d.ts +2 -0
  94. package/dist/evaluate/index.d.ts.map +1 -1
  95. package/dist/evaluate/index.js +2 -0
  96. package/dist/evaluate/issue.d.ts +11 -1
  97. package/dist/evaluate/issue.d.ts.map +1 -1
  98. package/dist/evaluate/issue.js +15 -1
  99. package/dist/evaluate/predicate.d.ts +16 -5
  100. package/dist/evaluate/predicate.d.ts.map +1 -1
  101. package/dist/evaluate/predicate.js +20 -5
  102. package/dist/evaluate/shared.d.ts +59 -13
  103. package/dist/evaluate/shared.d.ts.map +1 -1
  104. package/dist/evaluate/shared.js +66 -8
  105. package/dist/evaluate/state.d.ts +35 -13
  106. package/dist/evaluate/state.d.ts.map +1 -1
  107. package/dist/evaluate/state.js +35 -2
  108. package/dist/guard/base.d.ts +79 -29
  109. package/dist/guard/base.d.ts.map +1 -1
  110. package/dist/guard/base.js +91 -29
  111. package/dist/guard/error.d.ts +10 -5
  112. package/dist/guard/error.d.ts.map +1 -1
  113. package/dist/guard/error.js +10 -5
  114. package/dist/guard/index.d.ts +2 -0
  115. package/dist/guard/index.d.ts.map +1 -1
  116. package/dist/guard/index.js +2 -0
  117. package/dist/guard/number.d.ts +26 -11
  118. package/dist/guard/number.d.ts.map +1 -1
  119. package/dist/guard/number.js +30 -11
  120. package/dist/guard/props.d.ts +27 -3
  121. package/dist/guard/props.d.ts.map +1 -1
  122. package/dist/guard/props.js +27 -3
  123. package/dist/guard/read.d.ts +62 -9
  124. package/dist/guard/read.d.ts.map +1 -1
  125. package/dist/guard/read.js +83 -10
  126. package/dist/guard/registry.d.ts +12 -2
  127. package/dist/guard/registry.d.ts.map +1 -1
  128. package/dist/guard/registry.js +15 -3
  129. package/dist/guard/string.d.ts +33 -13
  130. package/dist/guard/string.d.ts.map +1 -1
  131. package/dist/guard/string.js +37 -13
  132. package/dist/guard/types.d.ts +92 -40
  133. package/dist/guard/types.d.ts.map +1 -1
  134. package/dist/guard/types.js +2 -0
  135. package/dist/index.d.ts +1 -1
  136. package/dist/index.d.ts.map +1 -1
  137. package/dist/internal/index.d.ts +42 -6
  138. package/dist/internal/index.d.ts.map +1 -1
  139. package/dist/internal/index.js +51 -8
  140. package/dist/ir/builder.d.ts +16 -126
  141. package/dist/ir/builder.d.ts.map +1 -1
  142. package/dist/ir/builder.js +77 -137
  143. package/dist/ir/freeze.d.ts +4 -0
  144. package/dist/ir/freeze.d.ts.map +1 -1
  145. package/dist/ir/freeze.js +59 -0
  146. package/dist/ir/index.d.ts +3 -1
  147. package/dist/ir/index.d.ts.map +1 -1
  148. package/dist/ir/index.js +2 -0
  149. package/dist/ir/regexp.d.ts +2 -0
  150. package/dist/ir/regexp.d.ts.map +1 -1
  151. package/dist/ir/regexp.js +2 -0
  152. package/dist/ir/types.d.ts +90 -55
  153. package/dist/ir/types.d.ts.map +1 -1
  154. package/dist/ir/types.js +2 -0
  155. package/dist/ir/validate.d.ts +8 -1
  156. package/dist/ir/validate.d.ts.map +1 -1
  157. package/dist/ir/validate.js +477 -61
  158. package/dist/issue/index.d.ts +41 -9
  159. package/dist/issue/index.d.ts.map +1 -1
  160. package/dist/issue/index.js +61 -11
  161. package/dist/json-schema/emit-combinator.d.ts +44 -4
  162. package/dist/json-schema/emit-combinator.d.ts.map +1 -1
  163. package/dist/json-schema/emit-combinator.js +44 -4
  164. package/dist/json-schema/emit-composite.d.ts +10 -0
  165. package/dist/json-schema/emit-composite.d.ts.map +1 -1
  166. package/dist/json-schema/emit-composite.js +15 -1
  167. package/dist/json-schema/emit-scalar.d.ts +26 -3
  168. package/dist/json-schema/emit-scalar.d.ts.map +1 -1
  169. package/dist/json-schema/emit-scalar.js +70 -9
  170. package/dist/json-schema/emit-types.d.ts +11 -1
  171. package/dist/json-schema/emit-types.d.ts.map +1 -1
  172. package/dist/json-schema/emit-types.js +2 -0
  173. package/dist/json-schema/emit.d.ts +12 -1
  174. package/dist/json-schema/emit.d.ts.map +1 -1
  175. package/dist/json-schema/emit.js +12 -1
  176. package/dist/json-schema/freeze.d.ts +13 -2
  177. package/dist/json-schema/freeze.d.ts.map +1 -1
  178. package/dist/json-schema/freeze.js +41 -8
  179. package/dist/json-schema/index.d.ts +16 -2
  180. package/dist/json-schema/index.d.ts.map +1 -1
  181. package/dist/json-schema/index.js +23 -3
  182. package/dist/json-schema/issue.d.ts +4 -1
  183. package/dist/json-schema/issue.d.ts.map +1 -1
  184. package/dist/json-schema/issue.js +4 -1
  185. package/dist/json-schema/read.d.ts +24 -3
  186. package/dist/json-schema/read.d.ts.map +1 -1
  187. package/dist/json-schema/read.js +59 -12
  188. package/dist/json-schema/types.d.ts +38 -15
  189. package/dist/json-schema/types.d.ts.map +1 -1
  190. package/dist/json-schema/types.js +2 -0
  191. package/dist/kind/index.d.ts +15 -28
  192. package/dist/kind/index.d.ts.map +1 -1
  193. package/dist/kind/index.js +15 -10
  194. package/dist/lower/index.d.ts +6 -1
  195. package/dist/lower/index.d.ts.map +1 -1
  196. package/dist/lower/index.js +411 -44
  197. package/dist/message/index.d.ts +46 -10
  198. package/dist/message/index.d.ts.map +1 -1
  199. package/dist/message/index.js +88 -17
  200. package/dist/optimize/algebraic.d.ts +54 -0
  201. package/dist/optimize/algebraic.d.ts.map +1 -0
  202. package/dist/optimize/algebraic.js +314 -0
  203. package/dist/optimize/compact.d.ts +8 -1
  204. package/dist/optimize/compact.d.ts.map +1 -1
  205. package/dist/optimize/compact.js +13 -2
  206. package/dist/optimize/domain.d.ts +16 -0
  207. package/dist/optimize/domain.d.ts.map +1 -0
  208. package/dist/optimize/domain.js +615 -0
  209. package/dist/optimize/fold-boolean.d.ts +17 -2
  210. package/dist/optimize/fold-boolean.d.ts.map +1 -1
  211. package/dist/optimize/fold-boolean.js +59 -14
  212. package/dist/optimize/fold-common.d.ts +43 -8
  213. package/dist/optimize/fold-common.d.ts.map +1 -1
  214. package/dist/optimize/fold-common.js +37 -6
  215. package/dist/optimize/fold-constraints.d.ts +33 -0
  216. package/dist/optimize/fold-constraints.d.ts.map +1 -0
  217. package/dist/optimize/fold-constraints.js +484 -0
  218. package/dist/optimize/fold-scalar.d.ts +98 -13
  219. package/dist/optimize/fold-scalar.d.ts.map +1 -1
  220. package/dist/optimize/fold-scalar.js +98 -13
  221. package/dist/optimize/fold.d.ts +8 -1
  222. package/dist/optimize/fold.d.ts.map +1 -1
  223. package/dist/optimize/fold.js +22 -2
  224. package/dist/optimize/index.d.ts +9 -1
  225. package/dist/optimize/index.d.ts.map +1 -1
  226. package/dist/optimize/index.js +18 -3
  227. package/dist/optimize/map-node.d.ts +3 -1
  228. package/dist/optimize/map-node.d.ts.map +1 -1
  229. package/dist/optimize/map-node.js +45 -3
  230. package/dist/optimize/peephole.d.ts +16 -0
  231. package/dist/optimize/peephole.d.ts.map +1 -0
  232. package/dist/optimize/peephole.js +254 -0
  233. package/dist/optimize/remap.d.ts +2 -0
  234. package/dist/optimize/remap.d.ts.map +1 -1
  235. package/dist/optimize/remap.js +2 -0
  236. package/dist/optimize/rewrite.d.ts +13 -8
  237. package/dist/optimize/rewrite.d.ts.map +1 -1
  238. package/dist/optimize/rewrite.js +13 -8
  239. package/dist/plan/cache.d.ts +9 -3
  240. package/dist/plan/cache.d.ts.map +1 -1
  241. package/dist/plan/cache.js +21 -5
  242. package/dist/plan/index.d.ts +2 -0
  243. package/dist/plan/index.d.ts.map +1 -1
  244. package/dist/plan/index.js +2 -0
  245. package/dist/plan/predicate.d.ts +2 -0
  246. package/dist/plan/predicate.d.ts.map +1 -1
  247. package/dist/plan/predicate.js +268 -29
  248. package/dist/plan/schema-predicate.d.ts +6 -0
  249. package/dist/plan/schema-predicate.d.ts.map +1 -1
  250. package/dist/plan/schema-predicate.js +117 -13
  251. package/dist/plan/types.d.ts +2 -0
  252. package/dist/plan/types.d.ts.map +1 -1
  253. package/dist/plan/types.js +2 -0
  254. package/dist/result/index.d.ts +19 -5
  255. package/dist/result/index.d.ts.map +1 -1
  256. package/dist/result/index.js +10 -2
  257. package/dist/schema/common.d.ts +69 -6
  258. package/dist/schema/common.d.ts.map +1 -1
  259. package/dist/schema/common.js +104 -10
  260. package/dist/schema/freeze.d.ts +4 -0
  261. package/dist/schema/freeze.d.ts.map +1 -1
  262. package/dist/schema/freeze.js +18 -0
  263. package/dist/schema/index.d.ts +3 -0
  264. package/dist/schema/index.d.ts.map +1 -1
  265. package/dist/schema/index.js +3 -0
  266. package/dist/schema/lazy.d.ts +4 -0
  267. package/dist/schema/lazy.d.ts.map +1 -1
  268. package/dist/schema/lazy.js +4 -0
  269. package/dist/schema/literal.d.ts +7 -1
  270. package/dist/schema/literal.d.ts.map +1 -1
  271. package/dist/schema/literal.js +7 -1
  272. package/dist/schema/types.d.ts +20 -96
  273. package/dist/schema/types.d.ts.map +1 -1
  274. package/dist/schema/types.js +5 -1
  275. package/dist/schema/undefined.d.ts +17 -0
  276. package/dist/schema/undefined.d.ts.map +1 -0
  277. package/dist/schema/undefined.js +72 -0
  278. package/dist/schema/validate.d.ts +8 -1
  279. package/dist/schema/validate.d.ts.map +1 -1
  280. package/dist/schema/validate.js +146 -55
  281. package/docs/api.md +57 -0
  282. package/docs/assets/benchmark-headline.svg +163 -0
  283. package/docs/engine-notes.md +58 -15
  284. package/docs/index.html +130 -110
  285. package/package.json +65 -65
@@ -1,61 +1,86 @@
1
1
  /**
2
2
  * @file scalar.ts
3
3
  * @brief Primitive and literal guard builders.
4
+ * @details Builder helpers normalize user-facing fluent calls into immutable schema nodes
5
+ * with stable metadata.
4
6
  */
5
7
  import { SchemaTag } from "../kind/index.js";
6
8
  import { BaseGuard, NumberGuard, StringGuard } from "../guard/index.js";
7
9
  import { isLiteralValue } from "../schema/index.js";
8
10
  /**
9
- * @brief string guard.
11
+ * @brief Shared string guard singleton.
12
+ * @details Primitive guards are immutable, so exporting one instance avoids
13
+ * allocation for the common `t.string` path.
10
14
  */
11
15
  export const stringGuard = new StringGuard({
12
16
  tag: SchemaTag.String,
13
17
  checks: []
14
18
  });
15
19
  /**
16
- * @brief unknown guard.
20
+ * @brief Shared unknown guard singleton.
21
+ * @details Builder helpers normalize user-facing fluent calls into immutable schema nodes
22
+ * with stable metadata.
17
23
  */
18
24
  export const unknownGuard = new BaseGuard({
19
25
  tag: SchemaTag.Unknown
20
26
  });
21
27
  /**
22
- * @brief never guard.
28
+ * @brief Shared never guard singleton.
29
+ * @details Builder helpers normalize user-facing fluent calls into immutable schema nodes
30
+ * with stable metadata.
23
31
  */
24
32
  export const neverGuard = new BaseGuard({
25
33
  tag: SchemaTag.Never
26
34
  });
27
35
  /**
28
- * @brief number guard.
36
+ * @brief Shared finite number guard singleton.
37
+ * @details Builder helpers normalize user-facing fluent calls into immutable schema nodes
38
+ * with stable metadata.
29
39
  */
30
40
  export const numberGuard = new NumberGuard({
31
41
  tag: SchemaTag.Number,
32
42
  checks: []
33
43
  });
34
44
  /**
35
- * @brief bigint guard.
45
+ * @brief Shared bigint guard singleton.
46
+ * @details Builder helpers normalize user-facing fluent calls into immutable schema nodes
47
+ * with stable metadata.
36
48
  */
37
49
  export const bigintGuard = new BaseGuard({
38
50
  tag: SchemaTag.BigInt
39
51
  });
40
52
  /**
41
- * @brief symbol guard.
53
+ * @brief Shared symbol guard singleton.
54
+ * @details Builder helpers normalize user-facing fluent calls into immutable schema nodes
55
+ * with stable metadata.
42
56
  */
43
57
  export const symbolGuard = new BaseGuard({
44
58
  tag: SchemaTag.Symbol
45
59
  });
46
60
  /**
47
- * @brief boolean guard.
61
+ * @brief Shared boolean guard singleton.
62
+ * @details Builder helpers normalize user-facing fluent calls into immutable schema nodes
63
+ * with stable metadata.
48
64
  */
49
65
  export const booleanGuard = new BaseGuard({
50
66
  tag: SchemaTag.Boolean
51
67
  });
52
68
  /**
53
- * @brief literal.
69
+ * @brief Build a literal guard after rejecting non-literal runtime values.
70
+ * @details Builder helpers normalize user-facing fluent calls into immutable schema nodes
71
+ * with stable metadata.
72
+ * @param value Literal value to match with Object.is.
73
+ * @returns Fresh guard for exactly the supplied literal.
74
+ * @throws TypeError when the value cannot be represented as a TypeSea literal.
54
75
  */
55
76
  export function literal(value) {
56
77
  if (!isLiteralValue(value)) {
57
78
  throw new TypeError("literal value must be a primitive literal");
58
79
  }
80
+ /*
81
+ * Literal schemas store the runtime value directly. Rejecting compound input
82
+ * here keeps later equality checks side-effect free and serializable.
83
+ */
59
84
  return new BaseGuard({
60
85
  tag: SchemaTag.Literal,
61
86
  value
@@ -1,6 +1,8 @@
1
1
  /**
2
2
  * @file table.ts
3
3
  * @brief Frozen public builder table.
4
+ * @details Builder helpers normalize user-facing fluent calls into immutable schema nodes
5
+ * with stable metadata.
4
6
  */
5
7
  import { asyncDecoder, asyncPipe, asyncRefine, asyncTransform } from "../async/index.js";
6
8
  import { decoder, pipe, transform } from "../decoder/index.js";
@@ -10,6 +12,8 @@ import { extend, object, omit, partial, pick, strictObject } from "./object/inde
10
12
  import { literal } from "./scalar.js";
11
13
  /**
12
14
  * @brief t.
15
+ * @details Frozen namespace of all public builders. Freezing prevents accidental
16
+ * mutation of shared singleton guards and helper functions after module load.
13
17
  */
14
18
  export declare const t: Readonly<{
15
19
  readonly unknown: import("../index.js").BaseGuard<unknown, "required">;
@@ -1 +1 @@
1
- {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/builders/table.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,EAAU,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EACL,KAAK,EACL,kBAAkB,EAClB,SAAS,EACT,MAAM,EACN,KAAK,EACL,KAAK,EACN,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,aAAa,EACd,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,MAAM,EACN,MAAM,EACN,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,YAAY,EACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAGL,OAAO,EAMR,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,eAAO,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkCH,CAAC"}
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/builders/table.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,EAAU,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EACH,KAAK,EACL,kBAAkB,EAClB,SAAS,EACT,MAAM,EACN,KAAK,EACL,KAAK,EACR,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACH,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,aAAa,EAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EACH,MAAM,EACN,MAAM,EACN,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,YAAY,EACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAGH,OAAO,EAMV,MAAM,aAAa,CAAC;AAErB;;;;GAIG;AACH,eAAO,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkCH,CAAC"}
@@ -1,6 +1,8 @@
1
1
  /**
2
2
  * @file table.ts
3
3
  * @brief Frozen public builder table.
4
+ * @details Builder helpers normalize user-facing fluent calls into immutable schema nodes
5
+ * with stable metadata.
4
6
  */
5
7
  import { asyncDecoder, asyncPipe, asyncRefine, asyncTransform } from "../async/index.js";
6
8
  import { coerce, decoder, pipe, transform } from "../decoder/index.js";
@@ -10,6 +12,8 @@ import { extend, object, omit, partial, pick, strictObject } from "./object/inde
10
12
  import { bigintGuard, booleanGuard, literal, neverGuard, numberGuard, stringGuard, symbolGuard, unknownGuard } from "./scalar.js";
11
13
  /**
12
14
  * @brief t.
15
+ * @details Frozen namespace of all public builders. Freezing prevents accidental
16
+ * mutation of shared singleton guards and helper functions after module load.
13
17
  */
14
18
  export const t = Object.freeze({
15
19
  unknown: unknownGuard,
@@ -1,24 +1,34 @@
1
1
  /**
2
2
  * @file types.ts
3
3
  * @brief Shared builder type algebra.
4
+ * @details Builder helpers normalize user-facing fluent calls into immutable schema nodes
5
+ * with stable metadata.
4
6
  */
5
7
  import type { Guard, Infer, Presence } from "../guard/index.js";
6
8
  /**
7
- * @brief tuple shape.
9
+ * @brief Tuple builder input shape.
10
+ * @details Builder helpers normalize user-facing fluent calls into immutable schema nodes
11
+ * with stable metadata.
8
12
  */
9
13
  export type TupleShape = readonly Guard<unknown, Presence>[];
10
14
  /**
11
- * @brief infer tuple.
15
+ * @brief Infer tuple runtime value from a tuple guard shape.
16
+ * @details Builder helpers normalize user-facing fluent calls into immutable schema nodes
17
+ * with stable metadata.
12
18
  */
13
19
  export type InferTuple<TShape extends TupleShape> = {
14
20
  readonly [TKey in keyof TShape]: Infer<TShape[TKey]>;
15
21
  };
16
22
  /**
17
- * @brief union input.
23
+ * @brief Non-empty union builder input.
24
+ * @details Builder helpers normalize user-facing fluent calls into immutable schema nodes
25
+ * with stable metadata.
18
26
  */
19
27
  export type UnionInput = readonly [Guard<unknown, Presence>, ...Guard<unknown, Presence>[]];
20
28
  /**
21
- * @brief discriminated union cases.
29
+ * @brief Compile-time guard that each case owns the requested literal tag.
30
+ * @details Builder helpers normalize user-facing fluent calls into immutable schema nodes
31
+ * with stable metadata.
22
32
  */
23
33
  export type DiscriminatedUnionCases<TKey extends string, TCases extends Readonly<Record<string, Guard<unknown, Presence>>>> = string extends TKey ? TCases : {
24
34
  readonly [TCase in keyof TCases]: TCase extends string ? Infer<TCases[TCase]> extends Readonly<Record<TKey, TCase>> ? TCases[TCase] : never : never;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/builders/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,KAAK,EACL,KAAK,EACL,QAAQ,EACT,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC;AAE7D;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,MAAM,SAAS,UAAU,IAAI;IAClD,QAAQ,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CACrD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,UAAU,GACpB,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;AAErE;;GAEG;AACH,MAAM,MAAM,uBAAuB,CACjC,IAAI,SAAS,MAAM,EACnB,MAAM,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,IAC/D,MAAM,SAAS,IAAI,GACnB,MAAM,GACN;IACE,QAAQ,EAAE,KAAK,IAAI,MAAM,MAAM,GAAG,KAAK,SAAS,MAAM,GAClD,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,GACxD,MAAM,CAAC,KAAK,CAAC,GACb,KAAK,GACT,KAAK;CACR,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/builders/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACR,KAAK,EACL,KAAK,EACL,QAAQ,EACX,MAAM,mBAAmB,CAAC;AAE3B;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC;AAE7D;;;;GAIG;AACH,MAAM,MAAM,UAAU,CAAC,MAAM,SAAS,UAAU,IAAI;IAChD,QAAQ,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CACvD,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAClB,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;AAEvE;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,CAC/B,IAAI,SAAS,MAAM,EACnB,MAAM,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,IACjE,MAAM,SAAS,IAAI,GACjB,MAAM,GACN;IACM,QAAQ,EAAE,KAAK,IAAI,MAAM,MAAM,GAAG,KAAK,SAAS,MAAM,GAChD,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,GACtD,MAAM,CAAC,KAAK,CAAC,GACb,KAAK,GACb,KAAK;CACV,CAAC"}
@@ -1,5 +1,7 @@
1
1
  /**
2
2
  * @file types.ts
3
3
  * @brief Shared builder type algebra.
4
+ * @details Builder helpers normalize user-facing fluent calls into immutable schema nodes
5
+ * with stable metadata.
4
6
  */
5
7
  export {};
@@ -1,34 +1,55 @@
1
1
  /**
2
2
  * @file compile/check-composite.ts
3
3
  * @brief Composite diagnostic validator snippets.
4
+ * @details Generated-source helpers keep the side-table ABI and JavaScript source shape
5
+ * stable across runtime and AOT emission.
4
6
  */
5
7
  import { SchemaTag } from "../kind/index.js";
6
- import type { DiscriminatedUnionCase, Schema } from "../schema/index.js";
8
+ import { type DiscriminatedUnionCase, type Schema } from "../schema/index.js";
7
9
  import type { EmitContext } from "./types.js";
8
10
  /**
9
11
  * @brief check function emitter.
12
+ * @details Generated-source helpers keep the side-table ABI and JavaScript source shape
13
+ * stable across runtime and AOT emission.
10
14
  */
11
15
  export type CheckFunctionEmitter = (schema: Schema, context: EmitContext) => string;
12
16
  /**
13
17
  * @brief emit array check.
18
+ * @details Generated-source helpers keep the side-table ABI and JavaScript source shape
19
+ * stable across runtime and AOT emission.
20
+ * @param item Schema applied to each logical array slot.
21
+ * @param value Generated expression for the candidate value.
22
+ * @param path Generated expression for the mutable diagnostic path.
23
+ * @param issues Generated expression for the diagnostic buffer.
24
+ * @param context Shared code-generation context.
25
+ * @param emitChild Fallback emitter for non-leaf child validators.
26
+ * @returns JavaScript source for array diagnostics.
14
27
  */
15
28
  export declare function emitArrayCheck(item: Schema, value: string, path: string, issues: string, context: EmitContext, emitChild: CheckFunctionEmitter): string;
16
29
  /**
17
30
  * @brief emit tuple check.
31
+ * @details Generated-source helpers keep the side-table ABI and JavaScript source shape
32
+ * stable across runtime and AOT emission.
18
33
  */
19
34
  export declare function emitTupleCheck(items: readonly Schema[], value: string, path: string, issues: string, context: EmitContext, emitChild: CheckFunctionEmitter): string;
20
35
  /**
21
36
  * @brief emit record check.
37
+ * @details Generated-source helpers keep the side-table ABI and JavaScript source shape
38
+ * stable across runtime and AOT emission.
22
39
  */
23
40
  export declare function emitRecordCheck(item: Schema, value: string, path: string, issues: string, context: EmitContext, emitChild: CheckFunctionEmitter): string;
24
41
  /**
25
42
  * @brief emit object check.
43
+ * @details Generated-source helpers keep the side-table ABI and JavaScript source shape
44
+ * stable across runtime and AOT emission.
26
45
  */
27
46
  export declare function emitObjectCheck(schema: Extract<Schema, {
28
47
  readonly tag: typeof SchemaTag.Object;
29
48
  }>, value: string, path: string, issues: string, context: EmitContext, emitChild: CheckFunctionEmitter): string;
30
49
  /**
31
50
  * @brief emit discriminated union check.
51
+ * @details Generated-source helpers keep the side-table ABI and JavaScript source shape
52
+ * stable across runtime and AOT emission.
32
53
  */
33
54
  export declare function emitDiscriminatedUnionCheck(key: string, cases: readonly DiscriminatedUnionCase[], value: string, path: string, issues: string, context: EmitContext, emitChild: CheckFunctionEmitter): string;
34
55
  //# sourceMappingURL=check-composite.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"check-composite.d.ts","sourceRoot":"","sources":["../../src/compile/check-composite.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAGL,SAAS,EACV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACV,sBAAsB,EACtB,MAAM,EACP,MAAM,oBAAoB,CAAC;AAW5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CACjC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,WAAW,KACjB,MAAM,CAAC;AAEZ;;GAEG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,oBAAoB,GAC9B,MAAM,CAuBR;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,oBAAoB,GAC9B,MAAM,CAiCR;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,oBAAoB,GAC9B,MAAM,CAsBR;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;IAAE,QAAQ,CAAC,GAAG,EAAE,OAAO,SAAS,CAAC,MAAM,CAAA;CAAE,CAAC,EAClE,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,oBAAoB,GAC9B,MAAM,CAqDR;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,sBAAsB,EAAE,EACxC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,oBAAoB,GAC9B,MAAM,CA+CR"}
1
+ {"version":3,"file":"check-composite.d.ts","sourceRoot":"","sources":["../../src/compile/check-composite.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAGH,SAAS,EACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEH,KAAK,sBAAsB,EAC3B,KAAK,MAAM,EACd,MAAM,oBAAoB,CAAC;AAkB5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAC/B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,WAAW,KACnB,MAAM,CAAC;AAEZ;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC1B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,oBAAoB,GAChC,MAAM,CAgFR;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC1B,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,oBAAoB,GAChC,MAAM,CAoER;AA+ZD;;;;GAIG;AACH,wBAAgB,eAAe,CAC3B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,oBAAoB,GAChC,MAAM,CA2CR;AAmKD;;;;GAIG;AACH,wBAAgB,eAAe,CAC3B,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;IAAE,QAAQ,CAAC,GAAG,EAAE,OAAO,SAAS,CAAC,MAAM,CAAA;CAAE,CAAC,EAClE,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,oBAAoB,GAChC,MAAM,CAiGR;AA0KD;;;;GAIG;AACH,wBAAgB,2BAA2B,CACvC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,sBAAsB,EAAE,EACxC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,oBAAoB,GAChC,MAAM,CA4DR"}