@databehave/schema 0.1.4 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/README.md +12 -1
  3. package/dist/dataset/dataset.d.ts +4 -45
  4. package/dist/dataset/dataset.d.ts.map +1 -1
  5. package/dist/dataset/dataset.js +4 -94
  6. package/dist/dataset/dataset.js.map +1 -1
  7. package/dist/dataset/generate.d.ts +49 -0
  8. package/dist/dataset/generate.d.ts.map +1 -0
  9. package/dist/dataset/generate.js +96 -0
  10. package/dist/dataset/generate.js.map +1 -0
  11. package/dist/foundation/axes.d.ts +4 -9
  12. package/dist/foundation/axes.d.ts.map +1 -1
  13. package/dist/foundation/axes.js +11 -37
  14. package/dist/foundation/axes.js.map +1 -1
  15. package/dist/foundation/errors.d.ts +7 -5
  16. package/dist/foundation/errors.d.ts.map +1 -1
  17. package/dist/foundation/errors.js +1 -1
  18. package/dist/foundation/errors.js.map +1 -1
  19. package/dist/foundation/ir.d.ts +9 -1
  20. package/dist/foundation/ir.d.ts.map +1 -1
  21. package/dist/foundation/ir.js.map +1 -1
  22. package/dist/foundation/types.d.ts.map +1 -1
  23. package/dist/foundation/types.js +9 -42
  24. package/dist/foundation/types.js.map +1 -1
  25. package/dist/foundation/walk.d.ts +7 -71
  26. package/dist/foundation/walk.d.ts.map +1 -1
  27. package/dist/foundation/walk.js +8 -264
  28. package/dist/foundation/walk.js.map +1 -1
  29. package/dist/generator/engine.d.ts +4 -35
  30. package/dist/generator/engine.d.ts.map +1 -1
  31. package/dist/generator/engine.js +3 -574
  32. package/dist/generator/engine.js.map +1 -1
  33. package/dist/generator/replay.d.ts +4 -8
  34. package/dist/generator/replay.d.ts.map +1 -1
  35. package/dist/generator/replay.js +3 -20
  36. package/dist/generator/replay.js.map +1 -1
  37. package/dist/generator/trace.d.ts +5 -0
  38. package/dist/generator/trace.d.ts.map +1 -1
  39. package/dist/generator/trace.js.map +1 -1
  40. package/dist/index.d.ts +6 -0
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +6 -0
  43. package/dist/index.js.map +1 -1
  44. package/dist/internal.d.ts +1 -1
  45. package/dist/internal.d.ts.map +1 -1
  46. package/dist/plugin.d.ts +7 -0
  47. package/dist/plugin.d.ts.map +1 -0
  48. package/dist/plugin.js +14 -0
  49. package/dist/plugin.js.map +1 -0
  50. package/dist/runtime/contracts.d.ts +101 -0
  51. package/dist/runtime/contracts.d.ts.map +1 -0
  52. package/dist/runtime/contracts.js +67 -0
  53. package/dist/runtime/contracts.js.map +1 -0
  54. package/dist/runtime/runtime.d.ts +56 -0
  55. package/dist/runtime/runtime.d.ts.map +1 -0
  56. package/dist/runtime/runtime.js +392 -0
  57. package/dist/runtime/runtime.js.map +1 -0
  58. package/dist/runtime.d.ts +7 -0
  59. package/dist/runtime.d.ts.map +1 -0
  60. package/dist/runtime.js +5 -0
  61. package/dist/runtime.js.map +1 -0
  62. package/dist/schema/decimal.d.ts +2 -2
  63. package/dist/schema/decimal.js +2 -2
  64. package/dist/standard/behaviors.d.ts +6 -0
  65. package/dist/standard/behaviors.d.ts.map +1 -0
  66. package/dist/standard/behaviors.js +358 -0
  67. package/dist/standard/behaviors.js.map +1 -0
  68. package/dist/standard/generation.d.ts +53 -0
  69. package/dist/standard/generation.d.ts.map +1 -0
  70. package/dist/standard/generation.js +359 -0
  71. package/dist/standard/generation.js.map +1 -0
  72. package/dist/standard/kinds.d.ts +6 -0
  73. package/dist/standard/kinds.d.ts.map +1 -0
  74. package/dist/standard/kinds.js +178 -0
  75. package/dist/standard/kinds.js.map +1 -0
  76. package/dist/standard/runtime.d.ts +3 -0
  77. package/dist/standard/runtime.d.ts.map +1 -0
  78. package/dist/standard/runtime.js +9 -0
  79. package/dist/standard/runtime.js.map +1 -0
  80. package/dist/standard/validation.d.ts +44 -0
  81. package/dist/standard/validation.d.ts.map +1 -0
  82. package/dist/standard/validation.js +353 -0
  83. package/dist/standard/validation.js.map +1 -0
  84. package/dist/standard.d.ts +5 -0
  85. package/dist/standard.d.ts.map +1 -0
  86. package/dist/standard.js +5 -0
  87. package/dist/standard.js.map +1 -0
  88. package/dist/validator/parse.d.ts +2 -11
  89. package/dist/validator/parse.d.ts.map +1 -1
  90. package/dist/validator/parse.js +3 -426
  91. package/dist/validator/parse.js.map +1 -1
  92. package/package.json +24 -4
@@ -0,0 +1,44 @@
1
+ import type { StandardSchemaNode } from '../foundation/ir.js';
2
+ import type { ValidationContext } from '../runtime/contracts.js';
3
+ /** Standard kinds retain their required-value diagnostics without constraining external kinds. */
4
+ export declare const validateRequiredValue: (node: StandardSchemaNode, value: unknown, context: ValidationContext, next: () => unknown) => unknown;
5
+ /** Standard validators; composites always recurse through the active runtime. */
6
+ export declare const kindValidators: {
7
+ string: (node: Extract<StandardSchemaNode, {
8
+ kind: "string";
9
+ }>, value: unknown, context: ValidationContext) => unknown;
10
+ number: (node: Extract<StandardSchemaNode, {
11
+ kind: "number";
12
+ }>, value: unknown, context: ValidationContext) => unknown;
13
+ decimal: (node: Extract<StandardSchemaNode, {
14
+ kind: "decimal";
15
+ }>, value: unknown, context: ValidationContext) => unknown;
16
+ boolean: (_node: Extract<StandardSchemaNode, {
17
+ kind: "boolean";
18
+ }>, value: unknown, context: ValidationContext) => unknown;
19
+ null: (_node: Extract<StandardSchemaNode, {
20
+ kind: "null";
21
+ }>, value: unknown, context: ValidationContext) => unknown;
22
+ literal: (node: Extract<StandardSchemaNode, {
23
+ kind: "literal";
24
+ }>, value: unknown, context: ValidationContext) => unknown;
25
+ enum: (node: Extract<StandardSchemaNode, {
26
+ kind: "enum";
27
+ }>, value: unknown, context: ValidationContext) => unknown;
28
+ array: (node: Extract<StandardSchemaNode, {
29
+ kind: "array";
30
+ }>, value: unknown, context: ValidationContext) => unknown;
31
+ object: (node: Extract<StandardSchemaNode, {
32
+ kind: "object";
33
+ }>, value: unknown, context: ValidationContext) => unknown;
34
+ tuple: (node: Extract<StandardSchemaNode, {
35
+ kind: "tuple";
36
+ }>, value: unknown, context: ValidationContext) => unknown;
37
+ union: (node: Extract<StandardSchemaNode, {
38
+ kind: "union";
39
+ }>, value: unknown, context: ValidationContext) => unknown;
40
+ discriminated: (node: Extract<StandardSchemaNode, {
41
+ kind: "discriminated";
42
+ }>, value: unknown, context: ValidationContext) => unknown;
43
+ };
44
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/standard/validation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAEhE,kGAAkG;AAClG,eAAO,MAAM,qBAAqB,GAChC,MAAM,kBAAkB,EACxB,OAAO,OAAO,EACd,SAAS,iBAAiB,EAC1B,MAAM,MAAM,OAAO,KAClB,OAsBF,CAAA;AAED,iFAAiF;AACjF,eAAO,MAAM,cAAc;mBAEjB,OAAO,CAAC,kBAAkB,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,CAAC,SAC9C,OAAO,WACL,iBAAiB,KACzB,OAAO;mBAuCF,OAAO,CAAC,kBAAkB,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,CAAC,SAC9C,OAAO,WACL,iBAAiB,KACzB,OAAO;oBAuCF,OAAO,CAAC,kBAAkB,EAAE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC,SAC/C,OAAO,WACL,iBAAiB,KACzB,OAAO;qBAiCD,OAAO,CAAC,kBAAkB,EAAE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC,SAChD,OAAO,WACL,iBAAiB,KACzB,OAAO;kBAcD,OAAO,CAAC,kBAAkB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,SAC7C,OAAO,WACL,iBAAiB,KACzB,OAAO;oBAcF,OAAO,CAAC,kBAAkB,EAAE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC,SAC/C,OAAO,WACL,iBAAiB,KACzB,OAAO;iBAaF,OAAO,CAAC,kBAAkB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,SAC5C,OAAO,WACL,iBAAiB,KACzB,OAAO;kBAaF,OAAO,CAAC,kBAAkB,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,SAC7C,OAAO,WACL,iBAAiB,KACzB,OAAO;mBAqCF,OAAO,CAAC,kBAAkB,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,CAAC,SAC9C,OAAO,WACL,iBAAiB,KACzB,OAAO;kBAqCF,OAAO,CAAC,kBAAkB,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,SAC7C,OAAO,WACL,iBAAiB,KACzB,OAAO;kBAqBF,OAAO,CAAC,kBAAkB,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,SAC7C,OAAO,WACL,iBAAiB,KACzB,OAAO;0BA6BF,OAAO,CAAC,kBAAkB,EAAE;QAAE,IAAI,EAAE,eAAe,CAAA;KAAE,CAAC,SACrD,OAAO,WACL,iBAAiB,KACzB,OAAO;CAyCX,CAAA"}
@@ -0,0 +1,353 @@
1
+ /** Standard kinds retain their required-value diagnostics without constraining external kinds. */
2
+ export const validateRequiredValue = (node, value, context, next) => {
3
+ if (node.kind === 'union')
4
+ return next();
5
+ if (value === undefined) {
6
+ context.issues.push({
7
+ path: context.path,
8
+ code: 'required',
9
+ message: 'required',
10
+ expected: context.describe(node),
11
+ });
12
+ return undefined;
13
+ }
14
+ if (value === null && node.kind !== 'null' && !(node.kind === 'literal' && node.value === null)) {
15
+ context.issues.push({
16
+ path: context.path,
17
+ code: 'unexpected-null',
18
+ message: 'unexpected null',
19
+ expected: context.describe(node),
20
+ received: null,
21
+ });
22
+ return null;
23
+ }
24
+ return next();
25
+ };
26
+ /** Standard validators; composites always recurse through the active runtime. */
27
+ export const kindValidators = {
28
+ string: (node, value, context) => {
29
+ const { path, issues } = context;
30
+ if (typeof value !== 'string') {
31
+ issues.push({
32
+ path,
33
+ code: 'string.expected',
34
+ message: 'expected string',
35
+ expected: 'string',
36
+ received: value,
37
+ });
38
+ return value;
39
+ }
40
+ if (node.min !== undefined && value.length < node.min) {
41
+ issues.push({
42
+ path,
43
+ code: 'string.too-short',
44
+ message: `length < min ${node.min}`,
45
+ received: value,
46
+ });
47
+ }
48
+ if (node.max !== undefined && value.length > node.max) {
49
+ issues.push({
50
+ path,
51
+ code: 'string.too-long',
52
+ message: `length > max ${node.max}`,
53
+ received: value,
54
+ });
55
+ }
56
+ if (node.pattern !== undefined && !new RegExp(node.pattern).test(value)) {
57
+ issues.push({
58
+ path,
59
+ code: 'string.pattern-mismatch',
60
+ message: `does not match /${node.pattern}/`,
61
+ received: value,
62
+ });
63
+ }
64
+ return value;
65
+ },
66
+ number: (node, value, context) => {
67
+ const { path, issues } = context;
68
+ if (typeof value !== 'number' || Number.isNaN(value)) {
69
+ issues.push({
70
+ path,
71
+ code: 'number.expected',
72
+ message: 'expected number',
73
+ expected: 'number',
74
+ received: value,
75
+ });
76
+ return value;
77
+ }
78
+ if (node.int && !Number.isInteger(value)) {
79
+ issues.push({
80
+ path,
81
+ code: 'number.not-integer',
82
+ message: 'expected integer',
83
+ received: value,
84
+ });
85
+ }
86
+ if (node.min !== undefined && value < node.min) {
87
+ issues.push({
88
+ path,
89
+ code: 'number.too-small',
90
+ message: `< min ${node.min}`,
91
+ received: value,
92
+ });
93
+ }
94
+ if (node.max !== undefined && value > node.max) {
95
+ issues.push({
96
+ path,
97
+ code: 'number.too-large',
98
+ message: `> max ${node.max}`,
99
+ received: value,
100
+ });
101
+ }
102
+ return value;
103
+ },
104
+ decimal: (node, value, context) => {
105
+ const { path, issues } = context;
106
+ if (typeof value !== 'string') {
107
+ issues.push({
108
+ path,
109
+ code: 'decimal.expected',
110
+ message: 'expected decimal string',
111
+ expected: 'string',
112
+ received: value,
113
+ });
114
+ return value;
115
+ }
116
+ if (!/^-?\d+(\.\d+)?$/.test(value)) {
117
+ issues.push({
118
+ path,
119
+ code: 'decimal.not-numeric',
120
+ message: 'not a numeric string',
121
+ received: value,
122
+ });
123
+ }
124
+ else {
125
+ const [, frac = ''] = value.split('.');
126
+ if (frac.length > node.scale) {
127
+ issues.push({
128
+ path,
129
+ code: 'decimal.scale-exceeded',
130
+ message: `scale ${frac.length} exceeds declared scale ${node.scale}`,
131
+ received: value,
132
+ });
133
+ }
134
+ }
135
+ return value;
136
+ },
137
+ boolean: (_node, value, context) => {
138
+ const { path, issues } = context;
139
+ if (typeof value !== 'boolean') {
140
+ issues.push({
141
+ path,
142
+ code: 'boolean.expected',
143
+ message: 'expected boolean',
144
+ expected: 'boolean',
145
+ received: value,
146
+ });
147
+ }
148
+ return value;
149
+ },
150
+ null: (_node, value, context) => {
151
+ const { path, issues } = context;
152
+ if (value !== null) {
153
+ issues.push({
154
+ path,
155
+ code: 'null.expected',
156
+ message: 'expected null',
157
+ expected: 'null',
158
+ received: value,
159
+ });
160
+ }
161
+ return value;
162
+ },
163
+ literal: (node, value, context) => {
164
+ const { path, issues } = context;
165
+ if (value !== node.value) {
166
+ issues.push({
167
+ path,
168
+ code: 'literal.not-equal',
169
+ message: `expected literal ${JSON.stringify(node.value)}`,
170
+ received: value,
171
+ });
172
+ }
173
+ return value;
174
+ },
175
+ enum: (node, value, context) => {
176
+ const { path, issues } = context;
177
+ if (!node.values.includes(value)) {
178
+ issues.push({
179
+ path,
180
+ code: 'enum.not-member',
181
+ message: `not in enum [${node.values.join(', ')}]`,
182
+ received: value,
183
+ });
184
+ }
185
+ return value;
186
+ },
187
+ array: (node, value, context) => {
188
+ const { path, issues, root, parent, check } = context;
189
+ if (!Array.isArray(value)) {
190
+ issues.push({
191
+ path,
192
+ code: 'array.expected',
193
+ message: 'expected array',
194
+ expected: 'array',
195
+ received: value,
196
+ });
197
+ return value;
198
+ }
199
+ if (node.length !== undefined && value.length !== node.length) {
200
+ issues.push({
201
+ path,
202
+ code: 'array.length-mismatch',
203
+ message: `length ${value.length} ≠ required ${node.length}`,
204
+ received: value,
205
+ });
206
+ }
207
+ if (node.minLength !== undefined && value.length < node.minLength) {
208
+ issues.push({
209
+ path,
210
+ code: 'array.too-short',
211
+ message: `length < minLength ${node.minLength}`,
212
+ });
213
+ }
214
+ if (node.maxLength !== undefined && value.length > node.maxLength) {
215
+ issues.push({
216
+ path,
217
+ code: 'array.too-long',
218
+ message: `length > maxLength ${node.maxLength}`,
219
+ });
220
+ }
221
+ return value.map((item, i) => check(node.item, item, [...path, i], issues, root, parent));
222
+ },
223
+ object: (node, value, context) => {
224
+ const { path, issues, root, check } = context;
225
+ if (value === null || typeof value !== 'object' || Array.isArray(value)) {
226
+ issues.push({
227
+ path,
228
+ code: 'object.expected',
229
+ message: 'expected object',
230
+ expected: 'object',
231
+ received: value,
232
+ });
233
+ return value;
234
+ }
235
+ const out = {};
236
+ const obj = value;
237
+ const nextRoot = root ?? out;
238
+ // Two-pass: non-derived first so derived can see them in `parent`.
239
+ const keys = Object.keys(node.fields);
240
+ const derivedKeys = [];
241
+ for (const key of keys) {
242
+ const field = node.fields[key];
243
+ if (context.isDeferred(field)) {
244
+ derivedKeys.push(key);
245
+ continue;
246
+ }
247
+ const raw = obj[key];
248
+ const checked = check(field, raw, [...path, key], issues, nextRoot, out);
249
+ if (checked !== undefined || field.mods?.optional !== true)
250
+ out[key] = checked;
251
+ }
252
+ for (const key of derivedKeys) {
253
+ const field = node.fields[key];
254
+ const raw = obj[key];
255
+ const checked = check(field, raw, [...path, key], issues, nextRoot, out);
256
+ if (checked !== undefined || field.mods?.optional !== true)
257
+ out[key] = checked;
258
+ }
259
+ return out;
260
+ },
261
+ tuple: (node, value, context) => {
262
+ const { path, issues, root, parent, check } = context;
263
+ if (!Array.isArray(value)) {
264
+ issues.push({
265
+ path,
266
+ code: 'tuple.expected-array',
267
+ message: 'expected tuple (array)',
268
+ received: value,
269
+ });
270
+ return value;
271
+ }
272
+ if (value.length !== node.items.length) {
273
+ issues.push({
274
+ path,
275
+ code: 'tuple.length-mismatch',
276
+ message: `tuple length ${value.length} ≠ ${node.items.length}`,
277
+ });
278
+ }
279
+ return node.items.map((item, i) => check(item, value[i], [...path, i], issues, root, parent));
280
+ },
281
+ union: (node, value, context) => {
282
+ const { path, issues, root, parent, check } = context;
283
+ // Try each option; succeed on the first with zero issues. When every
284
+ // option fails, surface the issues from the branch that came closest
285
+ // (fewest issues) so debugging an unmatched union doesn't degrade
286
+ // to a single opaque "matches none" message.
287
+ let bestIssues;
288
+ let bestValue = value;
289
+ for (const opt of node.options) {
290
+ const subIssues = [];
291
+ const v = check(opt, value, path, subIssues, root, parent);
292
+ if (subIssues.length === 0)
293
+ return v;
294
+ if (bestIssues === undefined || subIssues.length < bestIssues.length) {
295
+ bestIssues = subIssues;
296
+ bestValue = v;
297
+ }
298
+ }
299
+ issues.push({
300
+ path,
301
+ code: 'union.no-match',
302
+ message: `value matches none of the union options`,
303
+ received: value,
304
+ });
305
+ if (bestIssues) {
306
+ for (const sub of bestIssues)
307
+ issues.push(sub);
308
+ }
309
+ return bestValue;
310
+ },
311
+ discriminated: (node, value, context) => {
312
+ const { path, issues, root, parent, check } = context;
313
+ if (typeof value !== 'object' || value === null || Array.isArray(value)) {
314
+ issues.push({
315
+ path,
316
+ code: 'discriminated.expected-object',
317
+ message: 'expected object (discriminated union)',
318
+ expected: `object{${node.key}: ...}`,
319
+ received: value,
320
+ });
321
+ return value;
322
+ }
323
+ const tagVal = value[node.key];
324
+ if (typeof tagVal !== 'string' && typeof tagVal !== 'number' && typeof tagVal !== 'boolean') {
325
+ issues.push({
326
+ path: [...path, node.key],
327
+ code: 'discriminated.missing-tag',
328
+ message: `missing discriminator "${node.key}"`,
329
+ expected: Object.keys(node.branches)
330
+ .map((t) => JSON.stringify(t))
331
+ .join(' | '),
332
+ received: tagVal,
333
+ });
334
+ return value;
335
+ }
336
+ const tag = String(tagVal);
337
+ const branch = node.branches[tag];
338
+ if (branch === undefined) {
339
+ issues.push({
340
+ path: [...path, node.key],
341
+ code: 'discriminated.unknown-tag',
342
+ message: `unknown discriminator value ${JSON.stringify(tagVal)}`,
343
+ expected: Object.keys(node.branches)
344
+ .map((t) => JSON.stringify(t))
345
+ .join(' | '),
346
+ received: tagVal,
347
+ });
348
+ return value;
349
+ }
350
+ return check(branch, value, path, issues, root, parent);
351
+ },
352
+ };
353
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/standard/validation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /** Grouped official descriptors, replaceable through the public extension protocol. */
2
+ export { standardKinds } from './standard/kinds.js';
3
+ export { standardBehaviors } from './standard/behaviors.js';
4
+ export { standardRuntime } from './standard/runtime.js';
5
+ //# sourceMappingURL=standard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standard.d.ts","sourceRoot":"","sources":["../src/standard.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA"}
@@ -0,0 +1,5 @@
1
+ /** Grouped official descriptors, replaceable through the public extension protocol. */
2
+ export { standardKinds } from './standard/kinds.js';
3
+ export { standardBehaviors } from './standard/behaviors.js';
4
+ export { standardRuntime } from './standard/runtime.js';
5
+ //# sourceMappingURL=standard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standard.js","sourceRoot":"","sources":["../src/standard.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA"}
@@ -1,15 +1,6 @@
1
- /**
2
- * Validator — verify that a value conforms to a schema.
3
- *
4
- * `parse` throws ConformError. `safeParse` returns a discriminated result.
5
- *
6
- * Behavioral axes are enforced in addition to shape:
7
- * - `domain` (`values` and `lookup`)
8
- * - `invariants` (single-record) and `correlate` (multi-field, same axis)
9
- * - `derived` (value must equal what `derivedFrom(...)` would compute)
10
- */
11
- import { ConformError } from '../foundation/errors.js';
1
+ import type { ConformError } from '../foundation/errors.js';
12
2
  import type { Infer, Schema } from '../foundation/types.js';
3
+ /** Result of validating through the selected runtime. */
13
4
  export type SafeParseResult<T> = {
14
5
  readonly ok: true;
15
6
  readonly value: T;
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/validator/parse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,YAAY,EAAc,MAAM,yBAAyB,CAAA;AAElE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAE3D,MAAM,MAAM,eAAe,CAAC,CAAC,IACzB;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GACxC;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;CAAE,CAAA;AAExD,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,OAAO,KAAG,KAAK,CAAC,CAAC,CAK1E,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,OAAO,KAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAK/F,CAAA"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/validator/parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAE3D,yDAAyD;AACzD,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;CAAE,CAAA;AAChI,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,OAAO,KAAG,KAAK,CAAC,CAAC,CAAyC,CAAA;AACpH,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,OAAO,KAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAA6C,CAAA"}