@json-schema-engine/core 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.
Files changed (143) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +50 -0
  3. package/dist/coverage.d.ts +30 -0
  4. package/dist/coverage.d.ts.map +1 -0
  5. package/dist/coverage.js +81 -0
  6. package/dist/coverage.js.map +1 -0
  7. package/dist/cursor.d.ts +16 -0
  8. package/dist/cursor.d.ts.map +1 -0
  9. package/dist/cursor.js +28 -0
  10. package/dist/cursor.js.map +1 -0
  11. package/dist/dialect.d.ts +316 -0
  12. package/dist/dialect.d.ts.map +1 -0
  13. package/dist/dialect.js +135 -0
  14. package/dist/dialect.js.map +1 -0
  15. package/dist/engine.d.ts +203 -0
  16. package/dist/engine.d.ts.map +1 -0
  17. package/dist/engine.js +493 -0
  18. package/dist/engine.js.map +1 -0
  19. package/dist/index.d.ts +182 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +370 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/json.d.ts +49 -0
  24. package/dist/json.d.ts.map +1 -0
  25. package/dist/json.js +128 -0
  26. package/dist/json.js.map +1 -0
  27. package/dist/keywords/applicator.d.ts +57 -0
  28. package/dist/keywords/applicator.d.ts.map +1 -0
  29. package/dist/keywords/applicator.js +789 -0
  30. package/dist/keywords/applicator.js.map +1 -0
  31. package/dist/keywords/core.d.ts +42 -0
  32. package/dist/keywords/core.d.ts.map +1 -0
  33. package/dist/keywords/core.js +139 -0
  34. package/dist/keywords/core.js.map +1 -0
  35. package/dist/keywords/format.d.ts +43 -0
  36. package/dist/keywords/format.d.ts.map +1 -0
  37. package/dist/keywords/format.js +101 -0
  38. package/dist/keywords/format.js.map +1 -0
  39. package/dist/keywords/metaschemas2019.d.ts +3 -0
  40. package/dist/keywords/metaschemas2019.d.ts.map +1 -0
  41. package/dist/keywords/metaschemas2019.js +406 -0
  42. package/dist/keywords/metaschemas2019.js.map +1 -0
  43. package/dist/keywords/metaschemas2020.d.ts +3 -0
  44. package/dist/keywords/metaschemas2020.d.ts.map +1 -0
  45. package/dist/keywords/metaschemas2020.js +441 -0
  46. package/dist/keywords/metaschemas2020.js.map +1 -0
  47. package/dist/keywords/metaschemas6.d.ts +3 -0
  48. package/dist/keywords/metaschemas6.d.ts.map +1 -0
  49. package/dist/keywords/metaschemas6.js +221 -0
  50. package/dist/keywords/metaschemas6.js.map +1 -0
  51. package/dist/keywords/metaschemas7.d.ts +3 -0
  52. package/dist/keywords/metaschemas7.d.ts.map +1 -0
  53. package/dist/keywords/metaschemas7.js +248 -0
  54. package/dist/keywords/metaschemas7.js.map +1 -0
  55. package/dist/keywords/unevaluated.d.ts +14 -0
  56. package/dist/keywords/unevaluated.d.ts.map +1 -0
  57. package/dist/keywords/unevaluated.js +296 -0
  58. package/dist/keywords/unevaluated.js.map +1 -0
  59. package/dist/keywords/validation.d.ts +21 -0
  60. package/dist/keywords/validation.d.ts.map +1 -0
  61. package/dist/keywords/validation.js +332 -0
  62. package/dist/keywords/validation.js.map +1 -0
  63. package/dist/keywords/vocab2019.d.ts +36 -0
  64. package/dist/keywords/vocab2019.d.ts.map +1 -0
  65. package/dist/keywords/vocab2019.js +585 -0
  66. package/dist/keywords/vocab2019.js.map +1 -0
  67. package/dist/keywords/vocab2020.d.ts +20 -0
  68. package/dist/keywords/vocab2020.d.ts.map +1 -0
  69. package/dist/keywords/vocab2020.js +55 -0
  70. package/dist/keywords/vocab2020.js.map +1 -0
  71. package/dist/keywords/vocab7.d.ts +46 -0
  72. package/dist/keywords/vocab7.d.ts.map +1 -0
  73. package/dist/keywords/vocab7.js +305 -0
  74. package/dist/keywords/vocab7.js.map +1 -0
  75. package/dist/loader.d.ts +41 -0
  76. package/dist/loader.d.ts.map +1 -0
  77. package/dist/loader.js +13 -0
  78. package/dist/loader.js.map +1 -0
  79. package/dist/lowering.d.ts +371 -0
  80. package/dist/lowering.d.ts.map +1 -0
  81. package/dist/lowering.js +59 -0
  82. package/dist/lowering.js.map +1 -0
  83. package/dist/output.d.ts +251 -0
  84. package/dist/output.d.ts.map +1 -0
  85. package/dist/output.js +357 -0
  86. package/dist/output.js.map +1 -0
  87. package/dist/records.d.ts +71 -0
  88. package/dist/records.d.ts.map +1 -0
  89. package/dist/records.js +150 -0
  90. package/dist/records.js.map +1 -0
  91. package/dist/ref.d.ts +10 -0
  92. package/dist/ref.d.ts.map +1 -0
  93. package/dist/ref.js +5 -0
  94. package/dist/ref.js.map +1 -0
  95. package/dist/regex.d.ts +45 -0
  96. package/dist/regex.d.ts.map +1 -0
  97. package/dist/regex.js +163 -0
  98. package/dist/regex.js.map +1 -0
  99. package/dist/registry.d.ts +141 -0
  100. package/dist/registry.d.ts.map +1 -0
  101. package/dist/registry.js +407 -0
  102. package/dist/registry.js.map +1 -0
  103. package/dist/result.d.ts +109 -0
  104. package/dist/result.d.ts.map +1 -0
  105. package/dist/result.js +112 -0
  106. package/dist/result.js.map +1 -0
  107. package/dist/uri.d.ts +18 -0
  108. package/dist/uri.d.ts.map +1 -0
  109. package/dist/uri.js +27 -0
  110. package/dist/uri.js.map +1 -0
  111. package/dist/walk.d.ts +25 -0
  112. package/dist/walk.d.ts.map +1 -0
  113. package/dist/walk.js +65 -0
  114. package/dist/walk.js.map +1 -0
  115. package/package.json +32 -0
  116. package/src/coverage.ts +88 -0
  117. package/src/cursor.ts +42 -0
  118. package/src/dialect.ts +428 -0
  119. package/src/engine.ts +741 -0
  120. package/src/index.ts +699 -0
  121. package/src/json.ts +137 -0
  122. package/src/keywords/applicator.ts +895 -0
  123. package/src/keywords/core.ts +168 -0
  124. package/src/keywords/format.ts +143 -0
  125. package/src/keywords/metaschemas2019.ts +410 -0
  126. package/src/keywords/metaschemas2020.ts +443 -0
  127. package/src/keywords/metaschemas6.ts +226 -0
  128. package/src/keywords/metaschemas7.ts +253 -0
  129. package/src/keywords/unevaluated.ts +329 -0
  130. package/src/keywords/validation.ts +627 -0
  131. package/src/keywords/vocab2019.ts +676 -0
  132. package/src/keywords/vocab2020.ts +82 -0
  133. package/src/keywords/vocab7.ts +393 -0
  134. package/src/loader.ts +60 -0
  135. package/src/lowering.ts +414 -0
  136. package/src/output.ts +651 -0
  137. package/src/records.ts +226 -0
  138. package/src/ref.ts +14 -0
  139. package/src/regex.ts +171 -0
  140. package/src/registry.ts +481 -0
  141. package/src/result.ts +252 -0
  142. package/src/uri.ts +35 -0
  143. package/src/walk.ts +88 -0
package/dist/json.js ADDED
@@ -0,0 +1,128 @@
1
+ // JSON utilities. Discipline notes carried over from the F2 prototype
2
+ // (DESIGN.md §5): Object.hasOwn everywhere an instance or schema key is
3
+ // tested (`__proto__`/`toString`/`constructor` are legal property names);
4
+ // regex compiled in unicode mode with fallback; length in code points.
5
+ /** True for JSON objects, excluding arrays and `null`. */
6
+ export const isObject = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
7
+ /**
8
+ * The primitive type of an instance value. `"integer"` is a numeric subtype
9
+ * handled by the `type` keyword and is never returned here.
10
+ */
11
+ export function jsonTypeOf(v) {
12
+ if (v === null)
13
+ return "null";
14
+ if (Array.isArray(v))
15
+ return "array";
16
+ switch (typeof v) {
17
+ case "boolean":
18
+ return "boolean";
19
+ case "number":
20
+ return "number";
21
+ case "string":
22
+ return "string";
23
+ default:
24
+ return "object";
25
+ }
26
+ }
27
+ /**
28
+ * JSON equality per the spec: same type and value, object member order
29
+ * insignificant.
30
+ */
31
+ export function jsonEqual(a, b) {
32
+ if (a === b)
33
+ return true;
34
+ if (Array.isArray(a)) {
35
+ if (!Array.isArray(b) || a.length !== b.length)
36
+ return false;
37
+ for (let i = 0; i < a.length; i++) {
38
+ if (!jsonEqual(a[i], b[i]))
39
+ return false;
40
+ }
41
+ return true;
42
+ }
43
+ if (isObject(a)) {
44
+ if (!isObject(b))
45
+ return false;
46
+ const keys = Object.keys(a);
47
+ if (keys.length !== Object.keys(b).length)
48
+ return false;
49
+ for (const k of keys) {
50
+ if (!Object.hasOwn(b, k) || !jsonEqual(a[k], b[k]))
51
+ return false;
52
+ }
53
+ return true;
54
+ }
55
+ return false;
56
+ }
57
+ /**
58
+ * A canonical string key for JSON equality: two values share a key exactly
59
+ * when {@link jsonEqual} holds (object member order made insignificant by
60
+ * sorting keys). Used to bucket values for near-linear duplicate detection;
61
+ * callers confirm bucket collisions with {@link jsonEqual} since distinct
62
+ * values could, in principle, collide on the key.
63
+ */
64
+ export function canonicalKey(value) {
65
+ if (value === null || typeof value !== "object")
66
+ return JSON.stringify(value);
67
+ if (Array.isArray(value))
68
+ return `[${value.map(canonicalKey).join(",")}]`;
69
+ const keys = Object.keys(value).sort();
70
+ return `{${keys.map((k) => `${JSON.stringify(k)}:${canonicalKey(value[k])}`).join(",")}}`;
71
+ }
72
+ /** String length in Unicode code points, per `minLength`/`maxLength`. */
73
+ export function codePointLength(s) {
74
+ let n = 0;
75
+ for (let i = 0; i < s.length; i++) {
76
+ n++;
77
+ const c = s.charCodeAt(i);
78
+ if (c >= 0xd800 && c <= 0xdbff)
79
+ i++;
80
+ }
81
+ return n;
82
+ }
83
+ /**
84
+ * Compiles an ECMA-262 regex in unicode mode where possible (required for
85
+ * `\p{...}` property escapes), falling back for patterns invalid under the
86
+ * `u` flag.
87
+ */
88
+ export function schemaRegExp(pattern) {
89
+ try {
90
+ return new RegExp(pattern, "u");
91
+ }
92
+ catch {
93
+ return new RegExp(pattern);
94
+ }
95
+ }
96
+ /** Escapes a JSON Pointer segment (RFC 6901). */
97
+ export const escapeSegment = (s) => s.replace(/~/g, "~0").replace(/\//g, "~1");
98
+ /** Unescapes a JSON Pointer segment (RFC 6901). */
99
+ export const unescapeSegment = (s) => s.replace(/~1/g, "/").replace(/~0/g, "~");
100
+ /**
101
+ * The first jsonEqual-duplicate pair in `items` (by ascending index), or
102
+ * `null` when every item is distinct — `uniqueItems`' predicate, shared by
103
+ * both tiers. Buckets by {@link canonicalKey} for near-linear detection; a
104
+ * key collision is confirmed with {@link jsonEqual} so distinct values that
105
+ * happen to share a key are never misreported as duplicates.
106
+ */
107
+ export function firstDuplicatePair(items) {
108
+ const seen = new Map();
109
+ for (let i = 0; i < items.length; i++) {
110
+ const key = canonicalKey(items[i]);
111
+ const bucket = seen.get(key);
112
+ if (bucket === undefined) {
113
+ seen.set(key, [i]);
114
+ continue;
115
+ }
116
+ for (const j of bucket) {
117
+ if (jsonEqual(items[j], items[i]))
118
+ return [j, i];
119
+ }
120
+ bucket.push(i);
121
+ }
122
+ return null;
123
+ }
124
+ /** True when `items` contains any jsonEqual-duplicate pair (`uniqueItems`'s compiled-tier predicate). */
125
+ export function hasDuplicateItems(items) {
126
+ return firstDuplicatePair(items) !== null;
127
+ }
128
+ //# sourceMappingURL=json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../src/json.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import { KeywordBehavior } from "../dialect.js";
2
+ /** 2020-12 applicator vocabulary URI. */
3
+ export declare const VOCAB_APPLICATOR = "https://json-schema.org/draft/2020-12/vocab/applicator";
4
+ /** `allOf`: every subschema must match, at the same cursor. */
5
+ export declare const allOf: KeywordBehavior;
6
+ /** EXEMPLAR (in-place applicator class): every branch runs, even after a match (DESIGN.md §4 rule 6; see engine.ts). */
7
+ export declare const anyOf: KeywordBehavior;
8
+ /** `oneOf`: exactly one subschema must match, at the same cursor. */
9
+ export declare const oneOf: KeywordBehavior;
10
+ /** `not`: the subschema must not match. */
11
+ export declare const not: KeywordBehavior;
12
+ /**
13
+ * `if`: applies its subschema and communicates the outcome to `then`/`else`
14
+ * as dependency data (draft-03 Appendix D); the keyword itself always
15
+ * accepts, so a rejecting condition's errors are irrelevant (§12.2). The
16
+ * compiled form realizes the dependency structurally — the hoisted condition
17
+ * selects the sibling apply — so `then`/`else` lower nothing and the planner
18
+ * edges for both branches are declared here.
19
+ */
20
+ export declare const ifKeyword: KeywordBehavior;
21
+ /**
22
+ * `then` / `else`: consume `if`'s outcome; the selected branch applies its
23
+ * subschema and reports that verdict as its own, the other is inert. Without
24
+ * a sibling `if` there is no outcome and the keyword accepts.
25
+ */
26
+ export declare const conditionalBranch: (branchId: string, name: "then" | "else", when: boolean) => KeywordBehavior;
27
+ export declare const thenKeyword: KeywordBehavior;
28
+ export declare const elseKeyword: KeywordBehavior;
29
+ /** `dependentSchemas`: applies a named subschema when the property is present. */
30
+ export declare const dependentSchemas: KeywordBehavior;
31
+ /** EXEMPLAR (child applicator class): child cursors, produces the matched property names. */
32
+ export declare const properties: KeywordBehavior;
33
+ /** `patternProperties`: applies to properties whose name matches a pattern; produces the matched names. */
34
+ export declare const patternProperties: KeywordBehavior;
35
+ /**
36
+ * `additionalProperties`: applies to properties not matched by sibling
37
+ * `properties`/`patternProperties` — statically derivable from the schema
38
+ * object, no channel involvement (contrast `unevaluatedProperties`).
39
+ */
40
+ export declare const additionalProperties: KeywordBehavior;
41
+ /** `prefixItems`: applies each subschema to the array item at its index; produces the largest applied index. */
42
+ export declare const prefixItems: KeywordBehavior;
43
+ /** `items`: applies to array items past sibling `prefixItems`; produces `true` when it applied to any item. */
44
+ export declare const items: KeywordBehavior;
45
+ /**
46
+ * `contains`: at least one array item must match (range configurable by
47
+ * sibling `minContains`/`maxContains`); produces matched indexes.
48
+ */
49
+ export declare const contains: KeywordBehavior;
50
+ /**
51
+ * `propertyNames`: applies the subschema to each property name (as a string
52
+ * instance), not to the object itself.
53
+ */
54
+ export declare const propertyNames: KeywordBehavior;
55
+ /** The 2020-12 applicator vocabulary's keyword behaviors, by name. */
56
+ export declare const applicatorVocabulary: Record<string, KeywordBehavior>;
57
+ //# sourceMappingURL=applicator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applicator.d.ts","sourceRoot":"","sources":["../../src/keywords/applicator.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,eAAe,EAGhB,MAAM,eAAe,CAAC;AAKvB,yCAAyC;AACzC,eAAO,MAAM,gBAAgB,2DAC6B,CAAC;AA2B3D,+DAA+D;AAC/D,eAAO,MAAM,KAAK,EAAE,eAkBnB,CAAC;AAEF,wHAAwH;AACxH,eAAO,MAAM,KAAK,EAAE,eAgCnB,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,KAAK,EAAE,eA0CnB,CAAC;AAEF,2CAA2C;AAC3C,eAAO,MAAM,GAAG,EAAE,eAgCjB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,EAAE,eAgEvB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAC5B,UAAU,MAAM,EAChB,MAAM,MAAM,GAAG,MAAM,EACrB,MAAM,OAAO,KACZ,eAWD,CAAC;AAEH,eAAO,MAAM,WAAW,EAAE,eAIzB,CAAC;AACF,eAAO,MAAM,WAAW,EAAE,eAIzB,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,gBAAgB,EAAE,eA6C9B,CAAC;AAEF,6FAA6F;AAC7F,eAAO,MAAM,UAAU,EAAE,eAqExB,CAAC;AAEF,2GAA2G;AAC3G,eAAO,MAAM,iBAAiB,EAAE,eAoF/B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,eAwFlC,CAAC;AAEF,gHAAgH;AAChH,eAAO,MAAM,WAAW,EAAE,eAuEzB,CAAC;AAEF,+GAA+G;AAC/G,eAAO,MAAM,KAAK,EAAE,eAiEnB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,eA6FtB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,eAuC3B,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAgBhE,CAAC"}