@json-schema-engine/compiler 0.0.1
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/LICENSE +21 -0
- package/README.md +47 -0
- package/dist/emit.d.ts +52 -0
- package/dist/emit.d.ts.map +1 -0
- package/dist/emit.js +166 -0
- package/dist/emit.js.map +1 -0
- package/dist/explain.d.ts +28 -0
- package/dist/explain.d.ts.map +1 -0
- package/dist/explain.js +42 -0
- package/dist/explain.js.map +1 -0
- package/dist/index.d.ts +132 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +169 -0
- package/dist/index.js.map +1 -0
- package/dist/plan.d.ts +83 -0
- package/dist/plan.d.ts.map +1 -0
- package/dist/plan.js +385 -0
- package/dist/plan.js.map +1 -0
- package/dist/runtime-compile.d.ts +30 -0
- package/dist/runtime-compile.d.ts.map +1 -0
- package/dist/runtime-compile.js +29 -0
- package/dist/runtime-compile.js.map +1 -0
- package/dist/runtime.d.ts +157 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +336 -0
- package/dist/runtime.js.map +1 -0
- package/dist/serialize/apply.d.ts +28 -0
- package/dist/serialize/apply.d.ts.map +1 -0
- package/dist/serialize/apply.js +211 -0
- package/dist/serialize/apply.js.map +1 -0
- package/dist/serialize/context.d.ts +143 -0
- package/dist/serialize/context.d.ts.map +1 -0
- package/dist/serialize/context.js +93 -0
- package/dist/serialize/context.js.map +1 -0
- package/dist/serialize/expressions.d.ts +7 -0
- package/dist/serialize/expressions.d.ts.map +1 -0
- package/dist/serialize/expressions.js +177 -0
- package/dist/serialize/expressions.js.map +1 -0
- package/dist/serialize/guards.d.ts +7 -0
- package/dist/serialize/guards.d.ts.map +1 -0
- package/dist/serialize/guards.js +19 -0
- package/dist/serialize/guards.js.map +1 -0
- package/dist/serialize/index.d.ts +7 -0
- package/dist/serialize/index.d.ts.map +1 -0
- package/dist/serialize/index.js +266 -0
- package/dist/serialize/index.js.map +1 -0
- package/dist/serialize/keywords.d.ts +32 -0
- package/dist/serialize/keywords.d.ts.map +1 -0
- package/dist/serialize/keywords.js +131 -0
- package/dist/serialize/keywords.js.map +1 -0
- package/dist/serialize/messages.d.ts +36 -0
- package/dist/serialize/messages.d.ts.map +1 -0
- package/dist/serialize/messages.js +100 -0
- package/dist/serialize/messages.js.map +1 -0
- package/dist/serialize/names.d.ts +47 -0
- package/dist/serialize/names.d.ts.map +1 -0
- package/dist/serialize/names.js +115 -0
- package/dist/serialize/names.js.map +1 -0
- package/dist/serialize/spans.d.ts +34 -0
- package/dist/serialize/spans.d.ts.map +1 -0
- package/dist/serialize/spans.js +61 -0
- package/dist/serialize/spans.js.map +1 -0
- package/dist/serialize/statements.d.ts +16 -0
- package/dist/serialize/statements.d.ts.map +1 -0
- package/dist/serialize/statements.js +396 -0
- package/dist/serialize/statements.js.map +1 -0
- package/dist/serialize/unit.d.ts +8 -0
- package/dist/serialize/unit.d.ts.map +1 -0
- package/dist/serialize/unit.js +107 -0
- package/dist/serialize/unit.js.map +1 -0
- package/dist/standalone.d.ts +24 -0
- package/dist/standalone.d.ts.map +1 -0
- package/dist/standalone.js +166 -0
- package/dist/standalone.js.map +1 -0
- package/package.json +38 -0
- package/src/emit.ts +196 -0
- package/src/explain.ts +67 -0
- package/src/index.ts +366 -0
- package/src/plan.ts +496 -0
- package/src/runtime-compile.ts +90 -0
- package/src/runtime.ts +599 -0
- package/src/serialize/apply.ts +251 -0
- package/src/serialize/context.ts +161 -0
- package/src/serialize/expressions.ts +202 -0
- package/src/serialize/guards.ts +20 -0
- package/src/serialize/index.ts +432 -0
- package/src/serialize/keywords.ts +144 -0
- package/src/serialize/messages.ts +120 -0
- package/src/serialize/names.ts +136 -0
- package/src/serialize/spans.ts +88 -0
- package/src/serialize/statements.ts +531 -0
- package/src/serialize/unit.ts +118 -0
- package/src/standalone.ts +187 -0
package/dist/plan.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { AnnotationUnit, JsonValue, SchemaRef } from "@json-schema-engine/core";
|
|
2
|
+
import type { Runtime, TraceState } from "./runtime.js";
|
|
3
|
+
/** A compiled flag-mode validator. */
|
|
4
|
+
export type CompiledValidate = (instance: JsonValue) => boolean;
|
|
5
|
+
/** A compiled list-mode evaluator (interpreter-exact flat error units). */
|
|
6
|
+
export type CompiledEvaluateList<E> = (instance: JsonValue) => {
|
|
7
|
+
valid: boolean;
|
|
8
|
+
errors: E[];
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* A compiled annotation-mode evaluator: flat error units plus the raw
|
|
12
|
+
* (list-filtered) annotation units. The artifact wrapper applies the `keep`
|
|
13
|
+
* predicate and the valid-only presence rule over these.
|
|
14
|
+
*/
|
|
15
|
+
export type CompiledEvaluateListAnn<E> = (instance: JsonValue) => {
|
|
16
|
+
valid: boolean;
|
|
17
|
+
errors: E[];
|
|
18
|
+
annotations: AnnotationUnit[];
|
|
19
|
+
};
|
|
20
|
+
/** Instantiate list-mode artifact source (same closure contract as {@link instantiate}). */
|
|
21
|
+
export declare function instantiateList<E>(source: string, runtime: Runtime, targets: readonly SchemaRef[]): CompiledEvaluateList<E>;
|
|
22
|
+
/** Instantiate annotation-mode artifact source (same closure contract as {@link instantiate}). */
|
|
23
|
+
export declare function instantiateListAnn<E>(source: string, runtime: Runtime, targets: readonly SchemaRef[]): CompiledEvaluateListAnn<E>;
|
|
24
|
+
/** A compiled trace-mode evaluator: the filled per-evaluation {@link TraceState}. */
|
|
25
|
+
export type CompiledEvaluateTrace = (instance: JsonValue) => TraceState;
|
|
26
|
+
/** Instantiate trace-mode artifact source (same closure contract as {@link instantiate}). */
|
|
27
|
+
export declare function instantiateTrace(source: string, runtime: Runtime, targets: readonly SchemaRef[]): CompiledEvaluateTrace;
|
|
28
|
+
/** Instantiate artifact source against its runtime closure and target table. */
|
|
29
|
+
export declare function instantiate(source: string, runtime: Runtime, targets: readonly SchemaRef[]): CompiledValidate;
|
|
30
|
+
//# sourceMappingURL=runtime-compile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-compile.d.ts","sourceRoot":"","sources":["../src/runtime-compile.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EACT,SAAS,EACV,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAExD,sCAAsC;AACtC,MAAM,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,SAAS,KAAK,OAAO,CAAC;AAEhE,2EAA2E;AAC3E,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,KAAK;IAC7D,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,CAAC,EAAE,CAAC;CACb,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,KAAK;IAChE,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,CAAC,EAAE,CAAC;IACZ,WAAW,EAAE,cAAc,EAAE,CAAC;CAC/B,CAAC;AAEF,4FAA4F;AAC5F,wBAAgB,eAAe,CAAC,CAAC,EAC/B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,SAAS,EAAE,GAC5B,oBAAoB,CAAC,CAAC,CAAC,CAOzB;AAED,kGAAkG;AAClG,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,SAAS,EAAE,GAC5B,uBAAuB,CAAC,CAAC,CAAC,CAO5B;AAED,qFAAqF;AACrF,MAAM,MAAM,qBAAqB,GAAG,CAAC,QAAQ,EAAE,SAAS,KAAK,UAAU,CAAC;AAExE,6FAA6F;AAC7F,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,SAAS,EAAE,GAC5B,qBAAqB,CAOvB;AAED,gFAAgF;AAChF,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,SAAS,EAAE,GAC5B,gBAAgB,CAOlB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// The ONLY module that materializes code at runtime (D10 runtime mode).
|
|
2
|
+
// Confining `new Function` here keeps the CSP story auditable: everything
|
|
3
|
+
// else, including the interpreter, is greppably free of code generation.
|
|
4
|
+
// Standalone source emission (M6.5) bypasses this module entirely.
|
|
5
|
+
/** Instantiate list-mode artifact source (same closure contract as {@link instantiate}). */
|
|
6
|
+
export function instantiateList(source, runtime, targets) {
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-implied-eval
|
|
8
|
+
const factory = new Function("R", "T", source);
|
|
9
|
+
return factory(runtime, targets);
|
|
10
|
+
}
|
|
11
|
+
/** Instantiate annotation-mode artifact source (same closure contract as {@link instantiate}). */
|
|
12
|
+
export function instantiateListAnn(source, runtime, targets) {
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/no-implied-eval
|
|
14
|
+
const factory = new Function("R", "T", source);
|
|
15
|
+
return factory(runtime, targets);
|
|
16
|
+
}
|
|
17
|
+
/** Instantiate trace-mode artifact source (same closure contract as {@link instantiate}). */
|
|
18
|
+
export function instantiateTrace(source, runtime, targets) {
|
|
19
|
+
// eslint-disable-next-line @typescript-eslint/no-implied-eval
|
|
20
|
+
const factory = new Function("R", "T", source);
|
|
21
|
+
return factory(runtime, targets);
|
|
22
|
+
}
|
|
23
|
+
/** Instantiate artifact source against its runtime closure and target table. */
|
|
24
|
+
export function instantiate(source, runtime, targets) {
|
|
25
|
+
// eslint-disable-next-line @typescript-eslint/no-implied-eval
|
|
26
|
+
const factory = new Function("R", "T", source);
|
|
27
|
+
return factory(runtime, targets);
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=runtime-compile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-compile.js","sourceRoot":"","sources":["../src/runtime-compile.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,0EAA0E;AAC1E,yEAAyE;AACzE,mEAAmE;AA6BnE,4FAA4F;AAC5F,MAAM,UAAU,eAAe,CAC7B,MAAc,EACd,OAAgB,EAChB,OAA6B;IAE7B,8DAA8D;IAC9D,MAAM,OAAO,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAGjB,CAAC;IAC7B,OAAO,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,kBAAkB,CAChC,MAAc,EACd,OAAgB,EAChB,OAA6B;IAE7B,8DAA8D;IAC9D,MAAM,OAAO,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAGd,CAAC;IAChC,OAAO,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC;AAKD,6FAA6F;AAC7F,MAAM,UAAU,gBAAgB,CAC9B,MAAc,EACd,OAAgB,EAChB,OAA6B;IAE7B,8DAA8D;IAC9D,MAAM,OAAO,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAGnB,CAAC;IAC3B,OAAO,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,WAAW,CACzB,MAAc,EACd,OAAgB,EAChB,OAA6B;IAE7B,8DAA8D;IAC9D,MAAM,OAAO,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAGxB,CAAC;IACtB,OAAO,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { type AnnotationUnit, type ErrorUnit, type MutableRenderNode, type ResultUnits, canonicalKey, codePointLength, escapeSegment, firstDuplicatePair, foldIndexCoverage, foldNameCoverage, hasDuplicateItems, isMultipleOf, jsonEqual, type FormatTable, type JsonValue, type AnnotationSelection, type SchemaRef, type SchemaRegistry, type RegexCache } from "@json-schema-engine/core";
|
|
2
|
+
/** True for JSON objects (not arrays, not null). */
|
|
3
|
+
export declare const isObject: (v: unknown) => v is Record<string, JsonValue>;
|
|
4
|
+
/** `n` is an integer-valued JSON number. */
|
|
5
|
+
export declare const isInteger: (v: unknown) => boolean;
|
|
6
|
+
/**
|
|
7
|
+
* The application(s) that raised one recorded unit: one node, or the nodes
|
|
8
|
+
* sharing a path node inside a traced island (a segment-less custom apply
|
|
9
|
+
* shares its parent's, as core's own adapter attributes it).
|
|
10
|
+
*/
|
|
11
|
+
export type NodeRef = MutableRenderNode | MutableRenderNode[];
|
|
12
|
+
/** A node's parent as emitted code sees it: the holder or another node. */
|
|
13
|
+
export interface NodeParent {
|
|
14
|
+
children: MutableRenderNode[];
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Per-evaluation state of a trace artifact: the flat channels paired with
|
|
18
|
+
* the application that raised each unit, and the tree under its holder.
|
|
19
|
+
* Emitted code fills it; {@link finishTrace} turns it into renderer input.
|
|
20
|
+
*/
|
|
21
|
+
export interface TraceState {
|
|
22
|
+
valid: boolean;
|
|
23
|
+
errs: ErrorUnit[];
|
|
24
|
+
errNodes: NodeRef[];
|
|
25
|
+
/**
|
|
26
|
+
* The errors an accepting keyword made irrelevant, in drop order (the
|
|
27
|
+
* interpreter's `dropErrorsFrom` order). Filled only by a retaining
|
|
28
|
+
* artifact; the relevant level discards at the cut.
|
|
29
|
+
*/
|
|
30
|
+
droppedErrs: ErrorUnit[];
|
|
31
|
+
droppedErrNodes: NodeRef[];
|
|
32
|
+
anns: AnnotationUnit[];
|
|
33
|
+
annNodes: NodeRef[];
|
|
34
|
+
/**
|
|
35
|
+
* Indexes into `anns` of the annotations a failed application made
|
|
36
|
+
* irrelevant. A retaining artifact keeps every annotation in `anns` in
|
|
37
|
+
* recording order and its cuts flag here instead of truncating, so the
|
|
38
|
+
* dropped side renders in that order too; null on the relevant level.
|
|
39
|
+
*/
|
|
40
|
+
annDropped: Set<number> | null;
|
|
41
|
+
/** the root's parent: `hold.children[0]` is the root application */
|
|
42
|
+
hold: NodeParent;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Attributes every unit to its application and applies the selection's
|
|
46
|
+
* `keep` predicate, yielding the flat surface and the tree. With `retain`
|
|
47
|
+
* the irrelevant records a retaining artifact kept aside are rendered as
|
|
48
|
+
* the dropped pair; without it they are left out, so a verbose artifact
|
|
49
|
+
* serves a relevant-level demand exactly. An invalid run has no relevant
|
|
50
|
+
* annotations (draft-03 §12.2): every one it recorded is a dropped one.
|
|
51
|
+
*/
|
|
52
|
+
export declare function finishTrace(st: TraceState, keep: ((unit: AnnotationUnit) => boolean) | undefined, retain: boolean): {
|
|
53
|
+
units: ResultUnits;
|
|
54
|
+
root: MutableRenderNode;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* The closure passed to every compiled unit function: shared helpers, the
|
|
58
|
+
* regex table (pattern source → compiled RegExp, via the engine's cache),
|
|
59
|
+
* and the interpreter trampoline for islands and fallbacks.
|
|
60
|
+
*/
|
|
61
|
+
export interface Runtime {
|
|
62
|
+
readonly isObject: typeof isObject;
|
|
63
|
+
readonly isInteger: typeof isInteger;
|
|
64
|
+
readonly jsonEqual: typeof jsonEqual;
|
|
65
|
+
readonly canonicalKey: typeof canonicalKey;
|
|
66
|
+
readonly codePointLength: typeof codePointLength;
|
|
67
|
+
readonly escapeSegment: typeof escapeSegment;
|
|
68
|
+
readonly isMultipleOf: typeof isMultipleOf;
|
|
69
|
+
readonly hasDuplicateItems: typeof hasDuplicateItems;
|
|
70
|
+
readonly firstDuplicatePair: typeof firstDuplicatePair;
|
|
71
|
+
/** compiled-consumer coverage folds (COMPILED-CONSUMERS.md phase B) */
|
|
72
|
+
readonly foldNameCoverage: typeof foldNameCoverage;
|
|
73
|
+
readonly foldIndexCoverage: typeof foldIndexCoverage;
|
|
74
|
+
/** compiled RegExp by pattern source */
|
|
75
|
+
readonly re: Record<string, {
|
|
76
|
+
test(s: string): boolean;
|
|
77
|
+
}>;
|
|
78
|
+
/** asserting-format definitions by name (the engine's format table, filtered) */
|
|
79
|
+
readonly formats: Record<string, {
|
|
80
|
+
test(v: JsonValue): boolean;
|
|
81
|
+
}>;
|
|
82
|
+
/** the artifact's depth bound (D20), shared with trampolined fragments */
|
|
83
|
+
readonly maxDepth: number;
|
|
84
|
+
/** throws the typed depth error a compiled unit's guard trips (D20) */
|
|
85
|
+
tooDeep(): never;
|
|
86
|
+
/**
|
|
87
|
+
* Trampoline into the interpreter for one island/fallback fragment,
|
|
88
|
+
* charging `depth` against the shared budget (D20). Flag-mode callers use
|
|
89
|
+
* only `.valid`.
|
|
90
|
+
*/
|
|
91
|
+
frag(target: SchemaRef, value: JsonValue, scope: readonly string[], depth: number): boolean;
|
|
92
|
+
/**
|
|
93
|
+
* Coverage-harvesting trampoline (COMPILED-CONSUMERS.md phase B, §5): like
|
|
94
|
+
* {@link frag} for an island applied IN-PLACE under a compiled consumer,
|
|
95
|
+
* but the island's surviving root-cursor consumed dependency records are
|
|
96
|
+
* folded into the parent's runtime coverage channel `ev`. Consumed ids are
|
|
97
|
+
* always recorded (the M5.5 invariant), so an island always reports the
|
|
98
|
+
* coverage a consumer would observe. A failed island's root records are
|
|
99
|
+
* empty; the caller's mark/truncate is the uniform backstop either way.
|
|
100
|
+
*/
|
|
101
|
+
fragCov(target: SchemaRef, value: JsonValue, scope: readonly string[], depth: number, ev: unknown[]): boolean;
|
|
102
|
+
/**
|
|
103
|
+
* List-mode trampoline: evaluates the fragment with the caller's
|
|
104
|
+
* evaluation-path prefix, maps its error records to interpreter-exact
|
|
105
|
+
* units (instance locations re-rooted under `ip`), and appends them.
|
|
106
|
+
* `ev` (an island applied IN-PLACE from a tracked consumer's region body)
|
|
107
|
+
* additionally receives the {@link Runtime.fragCov} coverage harvest — the
|
|
108
|
+
* error mapping is unconditional either way, because a failed in-place
|
|
109
|
+
* island's ERRORS survive in list output (only its coverage span, which is
|
|
110
|
+
* empty on failure anyway, is the caller's truncate concern).
|
|
111
|
+
*/
|
|
112
|
+
fragList(target: SchemaRef, value: JsonValue, scope: readonly string[], depth: number, ep: string, ip: string, errs: ErrorUnit[], ev?: unknown[]): boolean;
|
|
113
|
+
/**
|
|
114
|
+
* Annotation-mode list trampoline: like {@link fragList} for errors, then
|
|
115
|
+
* harvests the island's surviving root annotation records as annotation
|
|
116
|
+
* units (retention lists applied, instance locations re-rooted under `ip`)
|
|
117
|
+
* onto `anns`. `ev` composes exactly as on {@link Runtime.fragList}.
|
|
118
|
+
* Present only on annotation-mode artifacts.
|
|
119
|
+
*/
|
|
120
|
+
fragListAnn?(target: SchemaRef, value: JsonValue, scope: readonly string[], depth: number, ep: string, ip: string, errs: ErrorUnit[], anns: AnnotationUnit[], ev?: unknown[]): boolean;
|
|
121
|
+
/** Trace emission: a fresh per-evaluation state. Present only on trace artifacts. */
|
|
122
|
+
traceState?(): TraceState;
|
|
123
|
+
/** Trace emission: the node of one application, linked under its parent. */
|
|
124
|
+
traceNode?(tp: NodeParent, ep: string, sloc: string, ip: string): MutableRenderNode;
|
|
125
|
+
/** Trace emission: an error unit with the application that raised it. */
|
|
126
|
+
traceError?(st: TraceState, tn: MutableRenderNode, unit: ErrorUnit): void;
|
|
127
|
+
/** Trace emission: an annotation unit with the application that raised it. */
|
|
128
|
+
traceAnn?(st: TraceState, tn: MutableRenderNode, unit: AnnotationUnit): void;
|
|
129
|
+
/**
|
|
130
|
+
* Trace emission: an accepting keyword's cut of the errors since mark
|
|
131
|
+
* `m`. The emitted source is level-neutral; the artifact's level decides
|
|
132
|
+
* here whether the cut discards them or moves them aside as dropped.
|
|
133
|
+
*/
|
|
134
|
+
cutErrors?(st: TraceState, m: number): void;
|
|
135
|
+
/**
|
|
136
|
+
* Trace emission: a failed application's cut of the annotations since
|
|
137
|
+
* mark `m` — discarded, or flagged as dropped, by the artifact's level.
|
|
138
|
+
*/
|
|
139
|
+
cutAnns?(st: TraceState, m: number): void;
|
|
140
|
+
/**
|
|
141
|
+
* Trace emission's island trampoline: the fragment runs traced, its
|
|
142
|
+
* subtree is grafted under the calling application, and its records join
|
|
143
|
+
* the channels attributed to the fragment nodes that raised them — on a
|
|
144
|
+
* retaining artifact, the fragment's own dropped records included. `ev`
|
|
145
|
+
* composes as on {@link Runtime.fragList}.
|
|
146
|
+
*/
|
|
147
|
+
fragTrace?(target: SchemaRef, value: JsonValue, scope: readonly string[], depth: number, ep: string, ip: string, st: TraceState, tp: NodeParent, ev?: unknown[]): boolean;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Builds the {@link Runtime} closure for an artifact bound to one registry.
|
|
151
|
+
* `retain` selects the verbose level's trace helpers: the relevance cuts
|
|
152
|
+
* keep the irrelevant records aside instead of discarding them.
|
|
153
|
+
*/
|
|
154
|
+
export declare function makeRuntime(registry: SchemaRegistry, regexCache: RegexCache, patterns: readonly string[], maxDepth: number, listParams?: boolean, annotate?: {
|
|
155
|
+
selection?: boolean | AnnotationSelection;
|
|
156
|
+
}, formatTable?: FormatTable, usedFormats?: readonly string[], trace?: boolean, retain?: boolean): Runtime;
|
|
157
|
+
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime.js
ADDED
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
// Runtime surface shared by every compiled artifact. Emitted code never
|
|
2
|
+
// re-implements a semantic: it calls these, which are core's own functions,
|
|
3
|
+
// so the compiled and interpreted tiers agree by construction (D9, M6).
|
|
4
|
+
import { MaxDepthExceededError, renderAnnotation, renderError, traceToRenderNodes, canonicalKey, codePointLength, escapeSegment, evaluateFragment, firstDuplicatePair, foldIndexCoverage, foldNameCoverage, harvestCoverage, hasDuplicateItems, isMultipleOf, jsonEqual, makeRecordPredicate, rootCursor, } from "@json-schema-engine/core";
|
|
5
|
+
/** True for JSON objects (not arrays, not null). */
|
|
6
|
+
export const isObject = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
|
|
7
|
+
/** `n` is an integer-valued JSON number. */
|
|
8
|
+
export const isInteger = (v) => typeof v === "number" && Number.isInteger(v);
|
|
9
|
+
/**
|
|
10
|
+
* Attributes every unit to its application and applies the selection's
|
|
11
|
+
* `keep` predicate, yielding the flat surface and the tree. With `retain`
|
|
12
|
+
* the irrelevant records a retaining artifact kept aside are rendered as
|
|
13
|
+
* the dropped pair; without it they are left out, so a verbose artifact
|
|
14
|
+
* serves a relevant-level demand exactly. An invalid run has no relevant
|
|
15
|
+
* annotations (draft-03 §12.2): every one it recorded is a dropped one.
|
|
16
|
+
*/
|
|
17
|
+
export function finishTrace(st, keep, retain) {
|
|
18
|
+
const attribute = (ref, list, index) => {
|
|
19
|
+
if (Array.isArray(ref))
|
|
20
|
+
for (const node of ref)
|
|
21
|
+
node[list].push(index);
|
|
22
|
+
else
|
|
23
|
+
ref[list].push(index);
|
|
24
|
+
};
|
|
25
|
+
st.errs.forEach((_, i) => {
|
|
26
|
+
attribute(st.errNodes[i], "errors", i);
|
|
27
|
+
});
|
|
28
|
+
const droppedErrors = retain ? st.droppedErrs : [];
|
|
29
|
+
droppedErrors.forEach((_, i) => {
|
|
30
|
+
attribute(st.droppedErrNodes[i], "droppedErrors", i);
|
|
31
|
+
});
|
|
32
|
+
const annotations = [];
|
|
33
|
+
const droppedAnnotations = [];
|
|
34
|
+
const flagged = st.annDropped;
|
|
35
|
+
st.anns.forEach((unit, i) => {
|
|
36
|
+
const irrelevant = !st.valid || flagged?.has(i) === true;
|
|
37
|
+
if (irrelevant && !retain)
|
|
38
|
+
return;
|
|
39
|
+
// `keep` sees relevant and dropped units alike, as the interpreter's
|
|
40
|
+
// selection does.
|
|
41
|
+
if (keep !== undefined && !keep(unit))
|
|
42
|
+
return;
|
|
43
|
+
if (irrelevant) {
|
|
44
|
+
attribute(st.annNodes[i], "droppedAnnotations", droppedAnnotations.length);
|
|
45
|
+
droppedAnnotations.push(unit);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
attribute(st.annNodes[i], "annotations", annotations.length);
|
|
49
|
+
annotations.push(unit);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
return {
|
|
53
|
+
units: {
|
|
54
|
+
errors: st.errs,
|
|
55
|
+
droppedErrors,
|
|
56
|
+
annotations,
|
|
57
|
+
droppedAnnotations,
|
|
58
|
+
},
|
|
59
|
+
root: st.hold.children[0],
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Builds the {@link Runtime} closure for an artifact bound to one registry.
|
|
64
|
+
* `retain` selects the verbose level's trace helpers: the relevance cuts
|
|
65
|
+
* keep the irrelevant records aside instead of discarding them.
|
|
66
|
+
*/
|
|
67
|
+
export function makeRuntime(registry, regexCache, patterns, maxDepth, listParams = false, annotate, formatTable, usedFormats = [], trace = false, retain = false) {
|
|
68
|
+
const re = Object.create(null);
|
|
69
|
+
for (const source of patterns)
|
|
70
|
+
re[source] = regexCache.compile(source);
|
|
71
|
+
// Filter the engine's format table down to the names the artifact tests,
|
|
72
|
+
// exactly as `re` narrows the pattern cache. A used name with no backing
|
|
73
|
+
// definition is unreachable via public paths (the constructor rejects
|
|
74
|
+
// assertFormats without a table, and lower() only emits formatTest for
|
|
75
|
+
// table-present names), so a miss here is a compiler bug — fail loudly.
|
|
76
|
+
const formats = Object.create(null);
|
|
77
|
+
for (const name of usedFormats) {
|
|
78
|
+
const definition = formatTable?.[name];
|
|
79
|
+
if (definition === undefined) {
|
|
80
|
+
throw new TypeError(`compiled artifact tests format '${name}' with no table definition`);
|
|
81
|
+
}
|
|
82
|
+
formats[name] = definition;
|
|
83
|
+
}
|
|
84
|
+
// Flag-mode annotation elision: no annotation is ever rendered. Dependency
|
|
85
|
+
// records for consumed behavior ids still record (M5.5 invariant, enforced
|
|
86
|
+
// by the engine's produce()), so unevaluated* inside fragments sees its
|
|
87
|
+
// channel.
|
|
88
|
+
const shouldRecord = makeRecordPredicate(false);
|
|
89
|
+
// Captured once: the coverage producers a consumer would observe, for the
|
|
90
|
+
// coverage harvests (COMPILED-CONSUMERS.md §5).
|
|
91
|
+
const coverageIds = registry.coverageIds();
|
|
92
|
+
// Annotation harvest predicate (built once): an island records exactly the
|
|
93
|
+
// annotations the selection's lists keep. `keep` runs later in the wrapper.
|
|
94
|
+
const annRecord = annotate
|
|
95
|
+
? makeRecordPredicate(annotate.selection ?? true)
|
|
96
|
+
: null;
|
|
97
|
+
return {
|
|
98
|
+
isObject,
|
|
99
|
+
isInteger,
|
|
100
|
+
jsonEqual,
|
|
101
|
+
canonicalKey,
|
|
102
|
+
codePointLength,
|
|
103
|
+
escapeSegment,
|
|
104
|
+
isMultipleOf,
|
|
105
|
+
hasDuplicateItems,
|
|
106
|
+
firstDuplicatePair,
|
|
107
|
+
foldNameCoverage,
|
|
108
|
+
foldIndexCoverage,
|
|
109
|
+
re,
|
|
110
|
+
formats,
|
|
111
|
+
maxDepth,
|
|
112
|
+
tooDeep: () => {
|
|
113
|
+
throw new MaxDepthExceededError(`compiled evaluation exceeds maxDepth (${maxDepth})`);
|
|
114
|
+
},
|
|
115
|
+
frag: (target, value, scope, depth) => {
|
|
116
|
+
const options = {
|
|
117
|
+
dynamicScope: scope,
|
|
118
|
+
depth,
|
|
119
|
+
regexCache,
|
|
120
|
+
maxDepth,
|
|
121
|
+
shouldRecord,
|
|
122
|
+
};
|
|
123
|
+
return evaluateFragment(registry, target, rootCursor(value), options)
|
|
124
|
+
.valid;
|
|
125
|
+
},
|
|
126
|
+
fragCov: (target, value, scope, depth, ev) => {
|
|
127
|
+
// The SAME cursor object must reach harvestCoverage: it filters root
|
|
128
|
+
// records by cursor identity (coverage.ts), so a second rootCursor()
|
|
129
|
+
// would match nothing.
|
|
130
|
+
const cursor = rootCursor(value);
|
|
131
|
+
const options = {
|
|
132
|
+
dynamicScope: scope,
|
|
133
|
+
depth,
|
|
134
|
+
regexCache,
|
|
135
|
+
maxDepth,
|
|
136
|
+
shouldRecord,
|
|
137
|
+
};
|
|
138
|
+
const result = evaluateFragment(registry, target, cursor, options);
|
|
139
|
+
ev.push(...harvestCoverage(result.dependencies, cursor, coverageIds));
|
|
140
|
+
return result.valid;
|
|
141
|
+
},
|
|
142
|
+
fragList: (target, value, scope, depth, ep, ip, errs, ev) => {
|
|
143
|
+
// One synthetic pre-escaped PathNode segment reproduces the caller's
|
|
144
|
+
// whole evaluation-path prefix (materializePath joins on "/").
|
|
145
|
+
const pathNode = ep === "" ? null : { parent: null, segment: ep.slice(1) };
|
|
146
|
+
// The SAME cursor object must reach harvestCoverage (see fragCov).
|
|
147
|
+
const cursor = rootCursor(value);
|
|
148
|
+
const options = {
|
|
149
|
+
dynamicScope: scope,
|
|
150
|
+
depth,
|
|
151
|
+
regexCache,
|
|
152
|
+
maxDepth,
|
|
153
|
+
shouldRecord,
|
|
154
|
+
pathNode,
|
|
155
|
+
};
|
|
156
|
+
const result = evaluateFragment(registry, target, cursor, options);
|
|
157
|
+
for (const record of result.errors) {
|
|
158
|
+
const unit = renderError(record, listParams);
|
|
159
|
+
unit.inputLocation = ip + unit.inputLocation;
|
|
160
|
+
errs.push(unit);
|
|
161
|
+
}
|
|
162
|
+
if (ev !== undefined) {
|
|
163
|
+
ev.push(...harvestCoverage(result.dependencies, cursor, coverageIds));
|
|
164
|
+
}
|
|
165
|
+
return result.valid;
|
|
166
|
+
},
|
|
167
|
+
...(annotate
|
|
168
|
+
? {
|
|
169
|
+
fragListAnn: (target, value, scope, depth, ep, ip, errs, anns, ev) => {
|
|
170
|
+
const pathNode = ep === "" ? null : { parent: null, segment: ep.slice(1) };
|
|
171
|
+
// The SAME cursor object must reach harvestCoverage (see fragCov).
|
|
172
|
+
const cursor = rootCursor(value);
|
|
173
|
+
const options = {
|
|
174
|
+
dynamicScope: scope,
|
|
175
|
+
depth,
|
|
176
|
+
regexCache,
|
|
177
|
+
maxDepth,
|
|
178
|
+
shouldRecord: annRecord,
|
|
179
|
+
pathNode,
|
|
180
|
+
};
|
|
181
|
+
const result = evaluateFragment(registry, target, cursor, options);
|
|
182
|
+
for (const record of result.errors) {
|
|
183
|
+
const unit = renderError(record, listParams);
|
|
184
|
+
unit.inputLocation = ip + unit.inputLocation;
|
|
185
|
+
errs.push(unit);
|
|
186
|
+
}
|
|
187
|
+
for (const a of result.annotations) {
|
|
188
|
+
const unit = renderAnnotation(a);
|
|
189
|
+
unit.inputLocation = ip + unit.inputLocation;
|
|
190
|
+
anns.push(unit);
|
|
191
|
+
}
|
|
192
|
+
if (ev !== undefined) {
|
|
193
|
+
ev.push(...harvestCoverage(result.dependencies, cursor, coverageIds));
|
|
194
|
+
}
|
|
195
|
+
return result.valid;
|
|
196
|
+
},
|
|
197
|
+
}
|
|
198
|
+
: {}),
|
|
199
|
+
...(trace ? traceHelpers(retain) : {}),
|
|
200
|
+
};
|
|
201
|
+
function traceHelpers(retain) {
|
|
202
|
+
return {
|
|
203
|
+
traceState: () => ({
|
|
204
|
+
valid: true,
|
|
205
|
+
errs: [],
|
|
206
|
+
errNodes: [],
|
|
207
|
+
droppedErrs: [],
|
|
208
|
+
droppedErrNodes: [],
|
|
209
|
+
anns: [],
|
|
210
|
+
annNodes: [],
|
|
211
|
+
annDropped: retain ? new Set() : null,
|
|
212
|
+
hold: { children: [] },
|
|
213
|
+
}),
|
|
214
|
+
traceNode: (tp, ep, sloc, ip) => {
|
|
215
|
+
const node = {
|
|
216
|
+
evaluationPath: ep,
|
|
217
|
+
schemaLocation: sloc,
|
|
218
|
+
inputLocation: ip,
|
|
219
|
+
valid: true,
|
|
220
|
+
keywords: [],
|
|
221
|
+
errors: [],
|
|
222
|
+
droppedErrors: [],
|
|
223
|
+
annotations: [],
|
|
224
|
+
droppedAnnotations: [],
|
|
225
|
+
children: [],
|
|
226
|
+
};
|
|
227
|
+
tp.children.push(node);
|
|
228
|
+
return node;
|
|
229
|
+
},
|
|
230
|
+
traceError: (st, tn, unit) => {
|
|
231
|
+
st.errs.push(unit);
|
|
232
|
+
st.errNodes.push(tn);
|
|
233
|
+
},
|
|
234
|
+
traceAnn: (st, tn, unit) => {
|
|
235
|
+
st.anns.push(unit);
|
|
236
|
+
st.annNodes.push(tn);
|
|
237
|
+
},
|
|
238
|
+
// The relevant level discards what an accepting keyword or a failed
|
|
239
|
+
// application made irrelevant, exactly as list mode truncates. The
|
|
240
|
+
// verbose level keeps it: dropped errors move aside in drop order
|
|
241
|
+
// (the interpreter's `dropErrorsFrom`); dropped annotations stay in
|
|
242
|
+
// place, flagged, so the marks that later cuts take remain positions
|
|
243
|
+
// in the one recording-ordered channel.
|
|
244
|
+
cutErrors: retain
|
|
245
|
+
? (st, m) => {
|
|
246
|
+
const { errs, errNodes } = st;
|
|
247
|
+
for (let i = m; i < errs.length; i++) {
|
|
248
|
+
st.droppedErrs.push(errs[i]);
|
|
249
|
+
st.droppedErrNodes.push(errNodes[i]);
|
|
250
|
+
}
|
|
251
|
+
errs.length = m;
|
|
252
|
+
errNodes.length = m;
|
|
253
|
+
}
|
|
254
|
+
: (st, m) => {
|
|
255
|
+
st.errs.length = m;
|
|
256
|
+
st.errNodes.length = m;
|
|
257
|
+
},
|
|
258
|
+
cutAnns: retain
|
|
259
|
+
? (st, m) => {
|
|
260
|
+
const flagged = st.annDropped;
|
|
261
|
+
for (let i = m; i < st.anns.length; i++)
|
|
262
|
+
flagged.add(i);
|
|
263
|
+
}
|
|
264
|
+
: (st, m) => {
|
|
265
|
+
st.anns.length = m;
|
|
266
|
+
st.annNodes.length = m;
|
|
267
|
+
},
|
|
268
|
+
fragTrace: (target, value, scope, depth, ep, ip, st, tp, ev) => {
|
|
269
|
+
const pathNode = ep === "" ? null : { parent: null, segment: ep.slice(1) };
|
|
270
|
+
// The SAME cursor object must reach harvestCoverage (see fragCov).
|
|
271
|
+
const cursor = rootCursor(value);
|
|
272
|
+
const options = {
|
|
273
|
+
dynamicScope: scope,
|
|
274
|
+
depth,
|
|
275
|
+
regexCache,
|
|
276
|
+
maxDepth,
|
|
277
|
+
shouldRecord: annRecord ?? shouldRecord,
|
|
278
|
+
pathNode,
|
|
279
|
+
tracing: true,
|
|
280
|
+
};
|
|
281
|
+
const result = evaluateFragment(registry, target, cursor, options);
|
|
282
|
+
// The fragment's tree hangs under the calling application whether or
|
|
283
|
+
// not it passed: the interpreter keeps failed applications too.
|
|
284
|
+
const { root, at } = traceToRenderNodes(result.traceRoot, ip);
|
|
285
|
+
tp.children.push(root);
|
|
286
|
+
const owner = (node) => {
|
|
287
|
+
const nodes = at.get(node);
|
|
288
|
+
return nodes.length === 1 ? nodes[0] : nodes;
|
|
289
|
+
};
|
|
290
|
+
for (const record of result.errors) {
|
|
291
|
+
const unit = renderError(record, listParams);
|
|
292
|
+
unit.inputLocation = ip + unit.inputLocation;
|
|
293
|
+
st.errs.push(unit);
|
|
294
|
+
st.errNodes.push(owner(record.pathNode));
|
|
295
|
+
}
|
|
296
|
+
if (retain) {
|
|
297
|
+
// The fragment ran to completion between two compiled cuts, so
|
|
298
|
+
// appending its drops here keeps the whole run's drop order.
|
|
299
|
+
for (const record of result.droppedErrors) {
|
|
300
|
+
const unit = renderError(record, listParams);
|
|
301
|
+
unit.inputLocation = ip + unit.inputLocation;
|
|
302
|
+
st.droppedErrs.push(unit);
|
|
303
|
+
st.droppedErrNodes.push(owner(record.pathNode));
|
|
304
|
+
}
|
|
305
|
+
// Every annotation the fragment recorded, in recording order;
|
|
306
|
+
// those outside its root frame's survivors are dropped — all of
|
|
307
|
+
// them when the fragment failed, since a failed application's
|
|
308
|
+
// frame is discarded whole.
|
|
309
|
+
const relevant = result.valid ? new Set(result.annotations) : null;
|
|
310
|
+
for (const a of result.allAnnotations) {
|
|
311
|
+
const unit = renderAnnotation(a);
|
|
312
|
+
unit.inputLocation = ip + unit.inputLocation;
|
|
313
|
+
if (!relevant?.has(a)) {
|
|
314
|
+
st.annDropped.add(st.anns.length);
|
|
315
|
+
}
|
|
316
|
+
st.anns.push(unit);
|
|
317
|
+
st.annNodes.push(owner(a.pathNode));
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
else {
|
|
321
|
+
for (const a of result.annotations) {
|
|
322
|
+
const unit = renderAnnotation(a);
|
|
323
|
+
unit.inputLocation = ip + unit.inputLocation;
|
|
324
|
+
st.anns.push(unit);
|
|
325
|
+
st.annNodes.push(owner(a.pathNode));
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
if (ev !== undefined) {
|
|
329
|
+
ev.push(...harvestCoverage(result.dependencies, cursor, coverageIds));
|
|
330
|
+
}
|
|
331
|
+
return result.valid;
|
|
332
|
+
},
|
|
333
|
+
};
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|