@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.
- package/CHANGELOG.md +31 -0
- package/README.md +12 -1
- package/dist/dataset/dataset.d.ts +4 -45
- package/dist/dataset/dataset.d.ts.map +1 -1
- package/dist/dataset/dataset.js +4 -94
- package/dist/dataset/dataset.js.map +1 -1
- package/dist/dataset/generate.d.ts +49 -0
- package/dist/dataset/generate.d.ts.map +1 -0
- package/dist/dataset/generate.js +96 -0
- package/dist/dataset/generate.js.map +1 -0
- package/dist/foundation/axes.d.ts +4 -9
- package/dist/foundation/axes.d.ts.map +1 -1
- package/dist/foundation/axes.js +11 -37
- package/dist/foundation/axes.js.map +1 -1
- package/dist/foundation/errors.d.ts +7 -5
- package/dist/foundation/errors.d.ts.map +1 -1
- package/dist/foundation/errors.js +1 -1
- package/dist/foundation/errors.js.map +1 -1
- package/dist/foundation/ir.d.ts +9 -1
- package/dist/foundation/ir.d.ts.map +1 -1
- package/dist/foundation/ir.js.map +1 -1
- package/dist/foundation/types.d.ts.map +1 -1
- package/dist/foundation/types.js +9 -42
- package/dist/foundation/types.js.map +1 -1
- package/dist/foundation/walk.d.ts +7 -71
- package/dist/foundation/walk.d.ts.map +1 -1
- package/dist/foundation/walk.js +8 -264
- package/dist/foundation/walk.js.map +1 -1
- package/dist/generator/engine.d.ts +4 -35
- package/dist/generator/engine.d.ts.map +1 -1
- package/dist/generator/engine.js +3 -574
- package/dist/generator/engine.js.map +1 -1
- package/dist/generator/replay.d.ts +4 -8
- package/dist/generator/replay.d.ts.map +1 -1
- package/dist/generator/replay.js +3 -20
- package/dist/generator/replay.js.map +1 -1
- package/dist/generator/trace.d.ts +5 -0
- package/dist/generator/trace.d.ts.map +1 -1
- package/dist/generator/trace.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/internal.d.ts +1 -1
- package/dist/internal.d.ts.map +1 -1
- package/dist/plugin.d.ts +7 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +14 -0
- package/dist/plugin.js.map +1 -0
- package/dist/runtime/contracts.d.ts +101 -0
- package/dist/runtime/contracts.d.ts.map +1 -0
- package/dist/runtime/contracts.js +67 -0
- package/dist/runtime/contracts.js.map +1 -0
- package/dist/runtime/runtime.d.ts +56 -0
- package/dist/runtime/runtime.d.ts.map +1 -0
- package/dist/runtime/runtime.js +392 -0
- package/dist/runtime/runtime.js.map +1 -0
- package/dist/runtime.d.ts +7 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +5 -0
- package/dist/runtime.js.map +1 -0
- package/dist/schema/decimal.d.ts +2 -2
- package/dist/schema/decimal.js +2 -2
- package/dist/standard/behaviors.d.ts +6 -0
- package/dist/standard/behaviors.d.ts.map +1 -0
- package/dist/standard/behaviors.js +358 -0
- package/dist/standard/behaviors.js.map +1 -0
- package/dist/standard/generation.d.ts +53 -0
- package/dist/standard/generation.d.ts.map +1 -0
- package/dist/standard/generation.js +359 -0
- package/dist/standard/generation.js.map +1 -0
- package/dist/standard/kinds.d.ts +6 -0
- package/dist/standard/kinds.d.ts.map +1 -0
- package/dist/standard/kinds.js +178 -0
- package/dist/standard/kinds.js.map +1 -0
- package/dist/standard/runtime.d.ts +3 -0
- package/dist/standard/runtime.d.ts.map +1 -0
- package/dist/standard/runtime.js +9 -0
- package/dist/standard/runtime.js.map +1 -0
- package/dist/standard/validation.d.ts +44 -0
- package/dist/standard/validation.d.ts.map +1 -0
- package/dist/standard/validation.js +353 -0
- package/dist/standard/validation.js.map +1 -0
- package/dist/standard.d.ts +5 -0
- package/dist/standard.d.ts.map +1 -0
- package/dist/standard.js +5 -0
- package/dist/standard.js.map +1 -0
- package/dist/validator/parse.d.ts +2 -11
- package/dist/validator/parse.d.ts.map +1 -1
- package/dist/validator/parse.js +3 -426
- package/dist/validator/parse.js.map +1 -1
- package/package.json +24 -4
|
@@ -0,0 +1,392 @@
|
|
|
1
|
+
import { generateDataset } from '../dataset/generate.js';
|
|
2
|
+
import { ConformError, SchemaConflictError } from '../foundation/errors.js';
|
|
3
|
+
import { mulberry32, rngFromString, seedFromString } from '../foundation/prng.js';
|
|
4
|
+
import { Schema } from '../foundation/types.js';
|
|
5
|
+
/** Version 2 records all required extension contracts. */
|
|
6
|
+
export const IR_VERSION = 2;
|
|
7
|
+
/** Require plain records at all external metadata boundaries. */
|
|
8
|
+
const record = (value) => {
|
|
9
|
+
if (value === null || typeof value !== 'object' || Array.isArray(value))
|
|
10
|
+
throw new TypeError('expected metadata object');
|
|
11
|
+
const proto = Object.getPrototypeOf(value);
|
|
12
|
+
if (proto !== null && proto !== Object.prototype)
|
|
13
|
+
throw new TypeError('expected plain metadata object');
|
|
14
|
+
return value;
|
|
15
|
+
};
|
|
16
|
+
/** Copy JSON data without lossy coercion, closure stripping or prototype setters. */
|
|
17
|
+
const copyJSON = (value, seen = new Set()) => {
|
|
18
|
+
if (value === null || typeof value === 'string' || typeof value === 'boolean')
|
|
19
|
+
return value;
|
|
20
|
+
if (typeof value === 'number' && Number.isFinite(value))
|
|
21
|
+
return value;
|
|
22
|
+
if (typeof value !== 'object')
|
|
23
|
+
throw new TypeError('schema serialization requires JSON data (closures are unsupported)');
|
|
24
|
+
if (seen.has(value))
|
|
25
|
+
throw new TypeError('cyclic schema data');
|
|
26
|
+
seen.add(value);
|
|
27
|
+
const result = Array.isArray(value)
|
|
28
|
+
? value.map((item) => copyJSON(item, seen))
|
|
29
|
+
: Object.fromEntries(Object.entries(record(value)).map(([key, item]) => [key, copyJSON(item, seen)]));
|
|
30
|
+
seen.delete(value);
|
|
31
|
+
return result;
|
|
32
|
+
};
|
|
33
|
+
const identity = (descriptor) => ({
|
|
34
|
+
id: descriptor.id,
|
|
35
|
+
version: descriptor.version,
|
|
36
|
+
});
|
|
37
|
+
const phases = ['modifier', 'derived', 'cadence', 'invariant', 'sample'];
|
|
38
|
+
/** Validate and snapshot descriptors; caller mutations cannot change the registry. */
|
|
39
|
+
export const createSchemaRuntime = (options) => {
|
|
40
|
+
const registry = (items, handlers, snapshot) => {
|
|
41
|
+
const result = new Map();
|
|
42
|
+
for (const descriptor of items) {
|
|
43
|
+
if (typeof descriptor.id !== 'string' ||
|
|
44
|
+
!/^[a-zA-Z][\w./-]*$/.test(descriptor.id) ||
|
|
45
|
+
!Number.isSafeInteger(descriptor.version) ||
|
|
46
|
+
descriptor.version < 1)
|
|
47
|
+
throw new TypeError('invalid schema contract identity');
|
|
48
|
+
if (result.has(descriptor.id))
|
|
49
|
+
throw new TypeError(`duplicate schema contract ${descriptor.id}`);
|
|
50
|
+
for (const handler of handlers)
|
|
51
|
+
if (typeof Reflect.get(descriptor, handler) !== 'function')
|
|
52
|
+
throw new TypeError(`${descriptor.id}: missing handler ${handler}`);
|
|
53
|
+
result.set(descriptor.id, Object.freeze(snapshot(descriptor)));
|
|
54
|
+
}
|
|
55
|
+
return result;
|
|
56
|
+
};
|
|
57
|
+
const kinds = registry(options.kinds, ['checkMetadata', 'generate', 'validate', 'children', 'rebuild'], (descriptor) => {
|
|
58
|
+
const describe = descriptor.describe;
|
|
59
|
+
if (describe !== undefined && typeof describe !== 'function')
|
|
60
|
+
throw new TypeError(`${descriptor.id}: invalid describe handler`);
|
|
61
|
+
return {
|
|
62
|
+
id: descriptor.id,
|
|
63
|
+
version: descriptor.version,
|
|
64
|
+
...(describe === undefined ? {} : { describe: describe.bind(descriptor) }),
|
|
65
|
+
checkMetadata: descriptor.checkMetadata.bind(descriptor),
|
|
66
|
+
generate: descriptor.generate.bind(descriptor),
|
|
67
|
+
validate: descriptor.validate.bind(descriptor),
|
|
68
|
+
children: descriptor.children.bind(descriptor),
|
|
69
|
+
rebuild: descriptor.rebuild.bind(descriptor),
|
|
70
|
+
};
|
|
71
|
+
});
|
|
72
|
+
const behaviors = registry(options.behaviors, [
|
|
73
|
+
'read',
|
|
74
|
+
'write',
|
|
75
|
+
'checkMetadata',
|
|
76
|
+
'appliesTo',
|
|
77
|
+
'merge',
|
|
78
|
+
'generate',
|
|
79
|
+
'validate',
|
|
80
|
+
'serialize',
|
|
81
|
+
], (descriptor) => ({
|
|
82
|
+
id: descriptor.id,
|
|
83
|
+
version: descriptor.version,
|
|
84
|
+
phase: descriptor.phase,
|
|
85
|
+
read: descriptor.read.bind(descriptor),
|
|
86
|
+
write: descriptor.write.bind(descriptor),
|
|
87
|
+
checkMetadata: descriptor.checkMetadata.bind(descriptor),
|
|
88
|
+
appliesTo: descriptor.appliesTo.bind(descriptor),
|
|
89
|
+
merge: descriptor.merge.bind(descriptor),
|
|
90
|
+
generate: descriptor.generate.bind(descriptor),
|
|
91
|
+
validate: descriptor.validate.bind(descriptor),
|
|
92
|
+
serialize: descriptor.serialize.bind(descriptor),
|
|
93
|
+
}));
|
|
94
|
+
for (const descriptor of behaviors.values())
|
|
95
|
+
if (!phases.includes(descriptor.phase))
|
|
96
|
+
throw new TypeError(`unknown behavior phase ${descriptor.phase}`);
|
|
97
|
+
const ordered = [...behaviors.values()].sort((a, b) => phases.indexOf(a.phase) - phases.indexOf(b.phase));
|
|
98
|
+
const kindOf = (node) => {
|
|
99
|
+
const descriptor = kinds.get(node.kind);
|
|
100
|
+
if (descriptor === undefined)
|
|
101
|
+
throw new TypeError(`missing schema kind ${node.kind}`);
|
|
102
|
+
return descriptor;
|
|
103
|
+
};
|
|
104
|
+
const active = (node) => {
|
|
105
|
+
const entries = ordered.flatMap((descriptor) => {
|
|
106
|
+
const raw = descriptor.read(node);
|
|
107
|
+
if (raw === undefined)
|
|
108
|
+
return [];
|
|
109
|
+
const metadata = descriptor.checkMetadata(raw);
|
|
110
|
+
if (!descriptor.appliesTo(node, metadata))
|
|
111
|
+
throw new TypeError(`behavior ${descriptor.id} is not applicable to ${node.kind}`);
|
|
112
|
+
return [{ descriptor, metadata }];
|
|
113
|
+
});
|
|
114
|
+
// Every carried metadata entry needs its handler, including standard axes.
|
|
115
|
+
for (const carrier of [node.mods?.axes, node.mods?.behaviors])
|
|
116
|
+
if (carrier !== undefined) {
|
|
117
|
+
for (const key of Object.keys(record(carrier)))
|
|
118
|
+
if (!entries.some((e) => e.descriptor.id === key))
|
|
119
|
+
throw new TypeError(`missing schema behavior ${key}`);
|
|
120
|
+
}
|
|
121
|
+
if (node.mods !== undefined) {
|
|
122
|
+
const keys = Object.keys(record(node.mods)).filter((key) => key !== 'axes' && key !== 'behaviors');
|
|
123
|
+
if (keys.length > 0 && !entries.some((e) => e.descriptor.id === 'modifiers'))
|
|
124
|
+
throw new TypeError('missing schema behavior modifiers');
|
|
125
|
+
}
|
|
126
|
+
return entries;
|
|
127
|
+
};
|
|
128
|
+
const validateTree = (input, ancestors = new Set()) => {
|
|
129
|
+
const raw = record(input);
|
|
130
|
+
if (typeof raw.kind !== 'string')
|
|
131
|
+
throw new TypeError('schema kind must be a string');
|
|
132
|
+
if (ancestors.has(raw))
|
|
133
|
+
throw new TypeError('cyclic schema tree');
|
|
134
|
+
ancestors.add(raw);
|
|
135
|
+
const descriptor = kinds.get(raw.kind);
|
|
136
|
+
if (descriptor === undefined)
|
|
137
|
+
throw new TypeError(`missing schema kind ${raw.kind}`);
|
|
138
|
+
const node = descriptor.checkMetadata(raw);
|
|
139
|
+
if (node.kind !== descriptor.id)
|
|
140
|
+
throw new TypeError(`kind ${descriptor.id} returned mismatched metadata`);
|
|
141
|
+
active(node);
|
|
142
|
+
const children = descriptor.children(node).map(({ key, node: child }) => {
|
|
143
|
+
if (typeof key !== 'string' && typeof key !== 'number')
|
|
144
|
+
throw new TypeError('invalid child path');
|
|
145
|
+
return { key, node: validateTree(child, ancestors) };
|
|
146
|
+
});
|
|
147
|
+
ancestors.delete(raw);
|
|
148
|
+
return descriptor.rebuild(node, children);
|
|
149
|
+
};
|
|
150
|
+
const walk = (node, visitor, path) => {
|
|
151
|
+
if (visitor.enter?.(node, path) !== false)
|
|
152
|
+
for (const child of kindOf(node).children(node))
|
|
153
|
+
walk(child.node, visitor, [...path, child.key]);
|
|
154
|
+
visitor.leave?.(node, path);
|
|
155
|
+
};
|
|
156
|
+
const contracts = (node) => {
|
|
157
|
+
const usedKinds = new Map();
|
|
158
|
+
const usedBehaviors = new Map();
|
|
159
|
+
walk(node, {
|
|
160
|
+
enter: (current) => {
|
|
161
|
+
const kind = kindOf(current);
|
|
162
|
+
usedKinds.set(kind.id, identity(kind));
|
|
163
|
+
for (const { descriptor } of active(current))
|
|
164
|
+
usedBehaviors.set(descriptor.id, identity(descriptor));
|
|
165
|
+
},
|
|
166
|
+
}, []);
|
|
167
|
+
return {
|
|
168
|
+
kinds: [...usedKinds.values()],
|
|
169
|
+
behaviors: [...usedBehaviors.values()],
|
|
170
|
+
};
|
|
171
|
+
};
|
|
172
|
+
const isDeferred = (node) => active(node).some((entry) => entry.descriptor.phase === 'derived');
|
|
173
|
+
const describe = (node) => kindOf(node).describe?.(node, describe) ?? node.kind;
|
|
174
|
+
const mock = (schema, options = {}) => {
|
|
175
|
+
const node = validateTree(schema._node);
|
|
176
|
+
const seed = String(options.seed ?? 'databehave');
|
|
177
|
+
const factory = options.prng ?? mulberry32;
|
|
178
|
+
const rng = typeof options.seed === 'number' ? factory(options.seed) : factory(seedFromString(seed));
|
|
179
|
+
const modifierProbs = {
|
|
180
|
+
default: 0,
|
|
181
|
+
optional: 0,
|
|
182
|
+
nullable: 0,
|
|
183
|
+
...options.modifierProbs,
|
|
184
|
+
};
|
|
185
|
+
for (const [key, value] of Object.entries(modifierProbs))
|
|
186
|
+
if (!(value >= 0 && value <= 1))
|
|
187
|
+
throw new RangeError(`modifierProbs.${key} must be in [0, 1], got ${value}`);
|
|
188
|
+
const generate = (current, path, parent) => {
|
|
189
|
+
const entries = active(current);
|
|
190
|
+
let emitted;
|
|
191
|
+
const index = [...path].reverse().find((segment) => typeof segment === 'number') ?? options.index;
|
|
192
|
+
const context = {
|
|
193
|
+
root: undefined,
|
|
194
|
+
parent,
|
|
195
|
+
seed: `${seed}:${path.join('.')}`,
|
|
196
|
+
path,
|
|
197
|
+
rng,
|
|
198
|
+
modifierProbs,
|
|
199
|
+
generate,
|
|
200
|
+
isDeferred,
|
|
201
|
+
...(typeof index === 'number' ? { index } : {}),
|
|
202
|
+
...(options.input === undefined ? {} : { input: options.input }),
|
|
203
|
+
leafRng: () => {
|
|
204
|
+
const stable = options.stableBy?.(context);
|
|
205
|
+
return stable == null || stable === '' ? rng : rngFromString(`${stable}:${path.join('.')}`);
|
|
206
|
+
},
|
|
207
|
+
emit: (entry) => {
|
|
208
|
+
emitted = entry;
|
|
209
|
+
},
|
|
210
|
+
};
|
|
211
|
+
const invoke = (i, scoped) => {
|
|
212
|
+
const entry = entries[i];
|
|
213
|
+
if (entry !== undefined)
|
|
214
|
+
return entry.descriptor.generate(entry.metadata, current, scoped, (sampling) => invoke(i + 1, sampling === undefined ? scoped : { ...scoped, sampling }));
|
|
215
|
+
if (scoped.sampling !== undefined)
|
|
216
|
+
return scoped.sampling.fallback();
|
|
217
|
+
scoped.emit({ path, axis: 'type' });
|
|
218
|
+
return kindOf(current).generate(current, scoped);
|
|
219
|
+
};
|
|
220
|
+
let succeeded = false;
|
|
221
|
+
try {
|
|
222
|
+
const value = invoke(0, context);
|
|
223
|
+
succeeded = true;
|
|
224
|
+
return value;
|
|
225
|
+
}
|
|
226
|
+
finally {
|
|
227
|
+
if (emitted !== undefined && (succeeded || emitted.axis === 'invariant-fail'))
|
|
228
|
+
options.trace?.emit({
|
|
229
|
+
...emitted,
|
|
230
|
+
contracts: {
|
|
231
|
+
kind: identity(kindOf(current)),
|
|
232
|
+
behaviors: entries.map((e) => identity(e.descriptor)),
|
|
233
|
+
},
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
};
|
|
237
|
+
return generate(node, [], Object.freeze({}));
|
|
238
|
+
};
|
|
239
|
+
const check = (node, value, path, issues, root, parent) => {
|
|
240
|
+
const context = {
|
|
241
|
+
root,
|
|
242
|
+
parent: parent ?? Object.freeze({}),
|
|
243
|
+
seed: `parse:${path.join('.')}`,
|
|
244
|
+
path,
|
|
245
|
+
issues,
|
|
246
|
+
check,
|
|
247
|
+
describe,
|
|
248
|
+
isDeferred,
|
|
249
|
+
};
|
|
250
|
+
const entries = active(node);
|
|
251
|
+
const invoke = (i) => {
|
|
252
|
+
const entry = entries[i];
|
|
253
|
+
return entry === undefined
|
|
254
|
+
? kindOf(node).validate(node, value, context)
|
|
255
|
+
: entry.descriptor.validate(entry.metadata, node, value, context, () => invoke(i + 1));
|
|
256
|
+
};
|
|
257
|
+
return invoke(0);
|
|
258
|
+
};
|
|
259
|
+
const safeParse = (schema, value) => {
|
|
260
|
+
const node = validateTree(schema._node);
|
|
261
|
+
const issues = [];
|
|
262
|
+
const out = check(node, value, [], issues, undefined, undefined);
|
|
263
|
+
return issues.length === 0
|
|
264
|
+
? { ok: true, value: out }
|
|
265
|
+
: { ok: false, error: new ConformError(issues) };
|
|
266
|
+
};
|
|
267
|
+
const serializeSchema = (schema) => {
|
|
268
|
+
const node = validateTree(schema._node);
|
|
269
|
+
const encode = (current, path) => {
|
|
270
|
+
let next = kindOf(current).rebuild(current, kindOf(current)
|
|
271
|
+
.children(current)
|
|
272
|
+
.map((child) => ({
|
|
273
|
+
...child,
|
|
274
|
+
node: encode(child.node, [...path, child.key]),
|
|
275
|
+
})));
|
|
276
|
+
for (const { descriptor, metadata } of active(current)) {
|
|
277
|
+
try {
|
|
278
|
+
const encoded = descriptor.serialize(metadata);
|
|
279
|
+
copyJSON(metadata);
|
|
280
|
+
next = descriptor.write(next, encoded);
|
|
281
|
+
}
|
|
282
|
+
catch (error) {
|
|
283
|
+
if (error instanceof SchemaConflictError)
|
|
284
|
+
throw new SchemaConflictError(error.message, [...path, ...error.path], undefined, error.code);
|
|
285
|
+
throw error;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
return next;
|
|
289
|
+
};
|
|
290
|
+
const encoded = copyJSON(encode(node, []));
|
|
291
|
+
return {
|
|
292
|
+
$databehaveVersion: IR_VERSION,
|
|
293
|
+
contracts: contracts(node),
|
|
294
|
+
node: validateTree(encoded),
|
|
295
|
+
};
|
|
296
|
+
};
|
|
297
|
+
const runtime = {
|
|
298
|
+
mock,
|
|
299
|
+
safeParse,
|
|
300
|
+
mockDataset: (options) => generateDataset(options, mock),
|
|
301
|
+
parse: (schema, value) => {
|
|
302
|
+
const result = safeParse(schema, value);
|
|
303
|
+
if (!result.ok)
|
|
304
|
+
throw result.error;
|
|
305
|
+
return result.value;
|
|
306
|
+
},
|
|
307
|
+
withBehavior: (schema, id, metadata) => {
|
|
308
|
+
const descriptor = behaviors.get(id);
|
|
309
|
+
if (descriptor === undefined)
|
|
310
|
+
throw new TypeError(`missing schema behavior ${id}`);
|
|
311
|
+
const incoming = descriptor.checkMetadata(metadata);
|
|
312
|
+
const previous = descriptor.read(schema._node);
|
|
313
|
+
const merged = previous === undefined ? incoming : descriptor.merge(previous, incoming);
|
|
314
|
+
return new Schema(validateTree(descriptor.write(schema._node, merged)));
|
|
315
|
+
},
|
|
316
|
+
fromIR: (node) => new Schema(validateTree(node)),
|
|
317
|
+
walkSchema: (schema, visitor) => walk(validateTree(schema instanceof Schema ? schema._node : schema), visitor, []),
|
|
318
|
+
serializeSchema,
|
|
319
|
+
deserializeSchema: (input) => {
|
|
320
|
+
if (input === null || typeof input !== 'object' || Array.isArray(input))
|
|
321
|
+
throw new TypeError('expected an envelope object');
|
|
322
|
+
const envelope = record(input);
|
|
323
|
+
if (envelope.$databehaveVersion !== IR_VERSION)
|
|
324
|
+
throw new TypeError('incompatible IR version');
|
|
325
|
+
if (envelope.node === null || typeof envelope.node !== 'object')
|
|
326
|
+
throw new TypeError('envelope.node must be an IR object');
|
|
327
|
+
const claimed = record(envelope.contracts);
|
|
328
|
+
for (const [name, available] of [
|
|
329
|
+
['kinds', kinds],
|
|
330
|
+
['behaviors', behaviors],
|
|
331
|
+
]) {
|
|
332
|
+
const entries = claimed[name];
|
|
333
|
+
if (!Array.isArray(entries))
|
|
334
|
+
throw new TypeError(`missing ${name} contracts`);
|
|
335
|
+
const seen = new Set();
|
|
336
|
+
for (const item of entries) {
|
|
337
|
+
const contract = record(item);
|
|
338
|
+
if (typeof contract.id !== 'string' || seen.has(contract.id))
|
|
339
|
+
throw new TypeError('invalid or duplicate serialized contract');
|
|
340
|
+
seen.add(contract.id);
|
|
341
|
+
const actual = available.get(contract.id);
|
|
342
|
+
if (actual === undefined || actual.version !== contract.version)
|
|
343
|
+
throw new TypeError(`missing or incompatible ${name} contract ${contract.id}`);
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
const node = validateTree(copyJSON(envelope.node));
|
|
347
|
+
const required = contracts(node);
|
|
348
|
+
for (const name of ['kinds', 'behaviors']) {
|
|
349
|
+
const entries = claimed[name];
|
|
350
|
+
if (entries.length !== required[name].length ||
|
|
351
|
+
required[name].some((c) => !entries.some((e) => e.id === c.id && e.version === c.version)))
|
|
352
|
+
throw new TypeError(`incorrect serialized ${name} contracts`);
|
|
353
|
+
}
|
|
354
|
+
return new Schema(node);
|
|
355
|
+
},
|
|
356
|
+
replay: (schema, options = {}) => {
|
|
357
|
+
const node = deepFreeze(snapshot(validateTree(schema._node)));
|
|
358
|
+
const frozen = Object.freeze({
|
|
359
|
+
...options,
|
|
360
|
+
...(options.modifierProbs === undefined
|
|
361
|
+
? {}
|
|
362
|
+
: { modifierProbs: Object.freeze({ ...options.modifierProbs }) }),
|
|
363
|
+
...(options.input === undefined
|
|
364
|
+
? {}
|
|
365
|
+
: {
|
|
366
|
+
input: deepFreeze(copyJSON(options.input)),
|
|
367
|
+
}),
|
|
368
|
+
});
|
|
369
|
+
return Object.assign(() => mock(new Schema(node), frozen), {
|
|
370
|
+
options: frozen,
|
|
371
|
+
contracts: deepFreeze(contracts(node)),
|
|
372
|
+
});
|
|
373
|
+
},
|
|
374
|
+
};
|
|
375
|
+
return Object.freeze(runtime);
|
|
376
|
+
};
|
|
377
|
+
const deepFreeze = (value) => {
|
|
378
|
+
if (value !== null && typeof value === 'object' && !Object.isFrozen(value)) {
|
|
379
|
+
Object.freeze(value);
|
|
380
|
+
Object.values(value).forEach(deepFreeze);
|
|
381
|
+
}
|
|
382
|
+
return value;
|
|
383
|
+
};
|
|
384
|
+
/** Snapshot replay metadata while retaining executable callbacks in process. */
|
|
385
|
+
const snapshot = (value) => {
|
|
386
|
+
if (value === null || typeof value !== 'object')
|
|
387
|
+
return value;
|
|
388
|
+
return Array.isArray(value)
|
|
389
|
+
? value.map(snapshot)
|
|
390
|
+
: Object.fromEntries(Object.entries(record(value)).map(([key, item]) => [key, snapshot(item)]));
|
|
391
|
+
};
|
|
392
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Synchronous standalone composition; no application host or transport dependency. */
|
|
2
|
+
export { createSchemaRuntime, IR_VERSION, type SchemaRuntime, type SchemaRuntimeOptions, type SchemaContract, type SchemaEnvelope, type SchemaVisitor, type WalkPath, type RuntimeReplay } from './runtime/runtime.js';
|
|
3
|
+
export { defineKind, defineBehavior, type KindDescriptor, type KindDefinition, type TypedKind, type BehaviorDescriptor, type BehaviorDefinition, type TypedBehavior, type BehaviorPhase, type SchemaChild, type GenerationContext, type GenerationNext, type SamplingContext, type ValidationContext } from './runtime/contracts.js';
|
|
4
|
+
export { Schema, type Infer } from './foundation/types.js';
|
|
5
|
+
export type { SchemaNode, Modifiers } from './foundation/ir.js';
|
|
6
|
+
export type { MockOptions } from './generator/engine.js';
|
|
7
|
+
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,KAAK,aAAa,EAAE,KAAK,oBAAoB,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACtN,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,KAAK,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AACpU,OAAO,EAAE,MAAM,EAAE,KAAK,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAC1D,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC/D,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA"}
|
package/dist/runtime.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** Synchronous standalone composition; no application host or transport dependency. */
|
|
2
|
+
export { createSchemaRuntime, IR_VERSION } from './runtime/runtime.js';
|
|
3
|
+
export { defineKind, defineBehavior } from './runtime/contracts.js';
|
|
4
|
+
export { Schema } from './foundation/types.js';
|
|
5
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAkJ,MAAM,sBAAsB,CAAA;AACtN,OAAO,EAAE,UAAU,EAAE,cAAc,EAAmQ,MAAM,wBAAwB,CAAA;AACpU,OAAO,EAAE,MAAM,EAAc,MAAM,uBAAuB,CAAA"}
|
package/dist/schema/decimal.d.ts
CHANGED
|
@@ -26,8 +26,8 @@ export declare class DecimalSchema extends Schema<string> {
|
|
|
26
26
|
/**
|
|
27
27
|
* Declare a fixed-point decimal column.
|
|
28
28
|
*
|
|
29
|
-
* @param precision total significant digits (1..38 for Snowflake)
|
|
30
|
-
* @param scale
|
|
29
|
+
* @param precision - total significant digits (1..38 for Snowflake)
|
|
30
|
+
* @param scale - digits after the decimal point (0..precision)
|
|
31
31
|
*/
|
|
32
32
|
export declare const decimal: (precision: number, scale: number) => DecimalSchema;
|
|
33
33
|
//# sourceMappingURL=decimal.d.ts.map
|
package/dist/schema/decimal.js
CHANGED
|
@@ -24,8 +24,8 @@ export class DecimalSchema extends Schema {
|
|
|
24
24
|
/**
|
|
25
25
|
* Declare a fixed-point decimal column.
|
|
26
26
|
*
|
|
27
|
-
* @param precision total significant digits (1..38 for Snowflake)
|
|
28
|
-
* @param scale
|
|
27
|
+
* @param precision - total significant digits (1..38 for Snowflake)
|
|
28
|
+
* @param scale - digits after the decimal point (0..precision)
|
|
29
29
|
*/
|
|
30
30
|
export const decimal = (precision, scale) => {
|
|
31
31
|
if (!Number.isInteger(precision) || precision < 1 || precision > 38) {
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { BehaviorDescriptor } from '../runtime/contracts.js';
|
|
2
|
+
/** Preserve JSON data and reject every closure, cycle and lossy JSON value. */
|
|
3
|
+
export declare const jsonData: (value: unknown, path?: readonly (string | number)[], seen?: Set<object>) => unknown;
|
|
4
|
+
/** Standard behavior descriptors; order preserves eventually before occasionally. */
|
|
5
|
+
export declare const standardBehaviors: readonly BehaviorDescriptor[];
|
|
6
|
+
//# sourceMappingURL=behaviors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"behaviors.d.ts","sourceRoot":"","sources":["../../src/standard/behaviors.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,kBAAkB,EAInB,MAAM,yBAAyB,CAAA;AA0BhC,+EAA+E;AAC/E,eAAO,MAAM,QAAQ,GACnB,OAAO,OAAO,EACd,OAAM,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAO,EACvC,kBAAwB,KACvB,OAuBF,CAAA;AA0UD,qFAAqF;AACrF,eAAO,MAAM,iBAAiB,EAAE,SAAS,kBAAkB,EAQzD,CAAA"}
|