@altopelago/aeos-core 0.9.0 → 0.9.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 ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 AltoPelago
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -16,6 +16,7 @@ export declare const ErrorCodes: {
16
16
  readonly RULE_MISSING_PATH: "rule_missing_path";
17
17
  readonly DUPLICATE_RULE_PATH: "duplicate_rule_path";
18
18
  readonly UNKNOWN_CONSTRAINT_KEY: "unknown_constraint_key";
19
+ readonly INVALID_SCHEMA_POLICY: "invalid_schema_policy";
19
20
  readonly INVALID_REFERENCE_CONSTRAINT: "invalid_reference_constraint";
20
21
  readonly MISSING_REQUIRED_FIELD: "missing_required_field";
21
22
  readonly UNEXPECTED_BINDING: "unexpected_binding";
@@ -28,6 +29,9 @@ export declare const ErrorCodes: {
28
29
  readonly WRONG_CONTAINER_KIND: "WRONG_CONTAINER_KIND";
29
30
  readonly TUPLE_ARITY_MISMATCH: "TUPLE_ARITY_MISMATCH";
30
31
  readonly TUPLE_ELEMENT_TYPE_MISMATCH: "TUPLE_ELEMENT_TYPE_MISMATCH";
32
+ readonly CONTAINER_CARDINALITY_MISMATCH: "container_cardinality_mismatch";
33
+ readonly NULL_VALUE_MISMATCH: "null_value_mismatch";
34
+ readonly TOGGLE_PAIR_MISMATCH: "toggle_pair_mismatch";
31
35
  readonly VERSION_GATE_MISSING: "version_gate_missing";
32
36
  readonly INVALID_INDEX_FORMAT: "invalid_index_format";
33
37
  readonly NUMERIC_FORM_VIOLATION: "numeric_form_violation";
@@ -1 +1 @@
1
- {"version":3,"file":"codes.d.ts","sourceRoot":"","sources":["../../src/diag/codes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8Cb,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,UAAU,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAEnE;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAElD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CASxF"}
1
+ {"version":3,"file":"codes.d.ts","sourceRoot":"","sources":["../../src/diag/codes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkDb,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,UAAU,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAEnE;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAElD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CASxF"}
@@ -19,6 +19,7 @@ export const ErrorCodes = {
19
19
  RULE_MISSING_PATH: 'rule_missing_path',
20
20
  DUPLICATE_RULE_PATH: 'duplicate_rule_path',
21
21
  UNKNOWN_CONSTRAINT_KEY: 'unknown_constraint_key',
22
+ INVALID_SCHEMA_POLICY: 'invalid_schema_policy',
22
23
  INVALID_REFERENCE_CONSTRAINT: 'invalid_reference_constraint',
23
24
  // Presence checks (Phase 4)
24
25
  MISSING_REQUIRED_FIELD: 'missing_required_field',
@@ -33,6 +34,9 @@ export const ErrorCodes = {
33
34
  WRONG_CONTAINER_KIND: 'WRONG_CONTAINER_KIND',
34
35
  TUPLE_ARITY_MISMATCH: 'TUPLE_ARITY_MISMATCH',
35
36
  TUPLE_ELEMENT_TYPE_MISMATCH: 'TUPLE_ELEMENT_TYPE_MISMATCH',
37
+ CONTAINER_CARDINALITY_MISMATCH: 'container_cardinality_mismatch',
38
+ NULL_VALUE_MISMATCH: 'null_value_mismatch',
39
+ TOGGLE_PAIR_MISMATCH: 'toggle_pair_mismatch',
36
40
  // Core v1 indexed addressing checks
37
41
  VERSION_GATE_MISSING: 'version_gate_missing',
38
42
  INVALID_INDEX_FORMAT: 'invalid_index_format',
@@ -1 +1 @@
1
- {"version":3,"file":"codes.js","sourceRoot":"","sources":["../../src/diag/codes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACtB,gCAAgC;IAChC,iBAAiB,EAAE,mBAAmB;IACtC,yBAAyB,EAAE,2BAA2B;IAEtD,6BAA6B;IAC7B,wBAAwB,EAAE,0BAA0B;IAEpD,0BAA0B;IAC1B,iBAAiB,EAAE,mBAAmB;IACtC,mBAAmB,EAAE,qBAAqB;IAC1C,sBAAsB,EAAE,wBAAwB;IAChD,4BAA4B,EAAE,8BAA8B;IAE5D,4BAA4B;IAC5B,sBAAsB,EAAE,wBAAwB;IAChD,kBAAkB,EAAE,oBAAoB;IACxC,0BAA0B,EAAE,4BAA4B;IAExD,wBAAwB;IACxB,aAAa,EAAE,eAAe;IAC9B,kBAAkB,EAAE,oBAAoB;IACxC,mBAAmB,EAAE,qBAAqB;IAC1C,uBAAuB,EAAE,yBAAyB;IAClD,yBAAyB,EAAE,2BAA2B;IACtD,oBAAoB,EAAE,sBAAsB;IAC5C,oBAAoB,EAAE,sBAAsB;IAC5C,2BAA2B,EAAE,6BAA6B;IAE1D,oCAAoC;IACpC,oBAAoB,EAAE,sBAAsB;IAC5C,oBAAoB,EAAE,sBAAsB;IAE5C,yBAAyB;IACzB,sBAAsB,EAAE,wBAAwB;IAEhD,wBAAwB;IACxB,uBAAuB,EAAE,yBAAyB;IAClD,gBAAgB,EAAE,kBAAkB;IAEpC,4CAA4C;IAC5C,yBAAyB,EAAE,2BAA2B;IACtD,4BAA4B,EAAE,8BAA8B;IAE5D,UAAU;IACV,uBAAuB,EAAE,yBAAyB;CAC5C,CAAC;AAOX;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IACxC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO;QACH,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC;QACpC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;KACnC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"codes.js","sourceRoot":"","sources":["../../src/diag/codes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACtB,gCAAgC;IAChC,iBAAiB,EAAE,mBAAmB;IACtC,yBAAyB,EAAE,2BAA2B;IAEtD,6BAA6B;IAC7B,wBAAwB,EAAE,0BAA0B;IAEpD,0BAA0B;IAC1B,iBAAiB,EAAE,mBAAmB;IACtC,mBAAmB,EAAE,qBAAqB;IAC1C,sBAAsB,EAAE,wBAAwB;IAChD,qBAAqB,EAAE,uBAAuB;IAC9C,4BAA4B,EAAE,8BAA8B;IAE5D,4BAA4B;IAC5B,sBAAsB,EAAE,wBAAwB;IAChD,kBAAkB,EAAE,oBAAoB;IACxC,0BAA0B,EAAE,4BAA4B;IAExD,wBAAwB;IACxB,aAAa,EAAE,eAAe;IAC9B,kBAAkB,EAAE,oBAAoB;IACxC,mBAAmB,EAAE,qBAAqB;IAC1C,uBAAuB,EAAE,yBAAyB;IAClD,yBAAyB,EAAE,2BAA2B;IACtD,oBAAoB,EAAE,sBAAsB;IAC5C,oBAAoB,EAAE,sBAAsB;IAC5C,2BAA2B,EAAE,6BAA6B;IAC1D,8BAA8B,EAAE,gCAAgC;IAChE,mBAAmB,EAAE,qBAAqB;IAC1C,oBAAoB,EAAE,sBAAsB;IAE5C,oCAAoC;IACpC,oBAAoB,EAAE,sBAAsB;IAC5C,oBAAoB,EAAE,sBAAsB;IAE5C,yBAAyB;IACzB,sBAAsB,EAAE,wBAAwB;IAEhD,wBAAwB;IACxB,uBAAuB,EAAE,yBAAyB;IAClD,gBAAgB,EAAE,kBAAkB;IAEpC,4CAA4C;IAC5C,yBAAyB,EAAE,2BAA2B;IACtD,4BAA4B,EAAE,8BAA8B;IAE5D,UAAU;IACV,uBAAuB,EAAE,yBAAyB;CAC5C,CAAC;AAOX;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IACxC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO;QACH,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC;QACpC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;KACnC,CAAC;AACN,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"numericForm.d.ts","sourceRoot":"","sources":["../../src/rules/numericForm.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlD;;GAEG;AACH,UAAU,YAAY;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,IAAI,CAAC;CACd;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC5B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,EACzC,GAAG,EAAE,WAAW,GACjB,IAAI,CA0FN"}
1
+ {"version":3,"file":"numericForm.d.ts","sourceRoot":"","sources":["../../src/rules/numericForm.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlD;;GAEG;AACH,UAAU,YAAY;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,IAAI,CAAC;CACd;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC5B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,EACzC,GAAG,EAAE,WAAW,GACjB,IAAI,CAqGN"}
@@ -18,29 +18,29 @@ import { countIntegerDigits, isNegative } from '../util/digits.js';
18
18
  */
19
19
  export function checkNumericForm(ruleIndex, events, ctx) {
20
20
  for (const [path, rule] of ruleIndex) {
21
- const { sign, min_digits, max_digits, min_value, max_value } = rule.constraints;
21
+ const { sign, min_digits, max_digits, min_value, max_value, radix } = rule.constraints;
22
22
  // Skip if no numeric form constraints
23
- if (sign === undefined && min_digits === undefined && max_digits === undefined && min_value === undefined && max_value === undefined) {
23
+ if (sign === undefined && min_digits === undefined && max_digits === undefined && min_value === undefined && max_value === undefined && radix === undefined) {
24
24
  continue;
25
25
  }
26
26
  const event = events.get(path);
27
27
  if (!event)
28
28
  continue; // Missing path handled by presence check
29
- // Only apply to numeric types
30
- if (event.type !== 'NumberLiteral' && event.type !== 'IntegerLiteral' && event.type !== 'FloatLiteral') {
29
+ // Only apply to numeric and digit-bearing symbolic literal forms.
30
+ if (!isDigitFormLiteral(event.type)) {
31
31
  continue;
32
32
  }
33
33
  const raw = event.raw;
34
34
  // Sign constraint
35
- if (sign !== undefined) {
36
- if (sign === 'unsigned' && isNegative(raw)) {
35
+ if (sign !== undefined && (event.type === 'NumberLiteral' || event.type === 'IntegerLiteral' || event.type === 'FloatLiteral' || event.type === 'RadixLiteral')) {
36
+ if (sign === 'unsigned' && isFormNegative(raw)) {
37
37
  emitError(ctx, createDiag(path, event.span, `Numeric form violation: expected unsigned, got negative`, ErrorCodes.NUMERIC_FORM_VIOLATION));
38
38
  continue; // Only report first violation per path
39
39
  }
40
40
  // 'signed' constraint allows both positive and negative
41
41
  }
42
42
  // Digit count constraints
43
- const digitCount = countIntegerDigits(raw);
43
+ const digitCount = countFormDigits(event.type, raw);
44
44
  if (min_digits !== undefined && digitCount < min_digits) {
45
45
  emitError(ctx, createDiag(path, event.span, `Numeric form violation: expected min ${min_digits} digits, got ${digitCount}`, ErrorCodes.NUMERIC_FORM_VIOLATION));
46
46
  continue;
@@ -49,26 +49,96 @@ export function checkNumericForm(ruleIndex, events, ctx) {
49
49
  emitError(ctx, createDiag(path, event.span, `Numeric form violation: expected max ${max_digits} digits, got ${digitCount}`, ErrorCodes.NUMERIC_FORM_VIOLATION));
50
50
  continue;
51
51
  }
52
+ if (event.type === 'RadixLiteral' && radix !== undefined) {
53
+ const invalidDigit = firstInvalidRadixDigit(raw, radix);
54
+ if (invalidDigit !== null) {
55
+ emitError(ctx, createDiag(path, event.span, `Numeric form violation: radix literal digit '${invalidDigit}' is outside radix ${radix}`, ErrorCodes.NUMERIC_FORM_VIOLATION));
56
+ continue;
57
+ }
58
+ }
52
59
  if (min_value !== undefined || max_value !== undefined) {
53
- const normalized = normalizeIntegerLiteral(raw);
54
- if (!normalized) {
55
- emitError(ctx, createDiag(path, event.span, `Numeric form violation: exact integer range constraints require integer literal form`, ErrorCodes.NUMERIC_FORM_VIOLATION));
60
+ const range = normalizeRangeLiteral(event.type, raw);
61
+ if (!range) {
62
+ emitError(ctx, createDiag(path, event.span, `Numeric form violation: range constraints require numeric literal form`, ErrorCodes.NUMERIC_FORM_VIOLATION));
56
63
  continue;
57
64
  }
58
- const numeric = BigInt(normalized);
59
- if (min_value !== undefined && numeric < BigInt(min_value)) {
60
- emitError(ctx, createDiag(path, event.span, `Numeric form violation: expected value >= ${min_value}, got ${normalized}`, ErrorCodes.NUMERIC_FORM_VIOLATION));
65
+ if (min_value !== undefined && isBelowRange(range, min_value)) {
66
+ emitError(ctx, createDiag(path, event.span, `Numeric form violation: expected value >= ${min_value}, got ${range.raw}`, ErrorCodes.NUMERIC_FORM_VIOLATION));
61
67
  continue;
62
68
  }
63
- if (max_value !== undefined && numeric > BigInt(max_value)) {
64
- emitError(ctx, createDiag(path, event.span, `Numeric form violation: expected value <= ${max_value}, got ${normalized}`, ErrorCodes.NUMERIC_FORM_VIOLATION));
69
+ if (max_value !== undefined && isAboveRange(range, max_value)) {
70
+ emitError(ctx, createDiag(path, event.span, `Numeric form violation: expected value <= ${max_value}, got ${range.raw}`, ErrorCodes.NUMERIC_FORM_VIOLATION));
65
71
  }
66
72
  }
67
73
  }
68
74
  }
69
- function normalizeIntegerLiteral(raw) {
70
- if (!/^[+-]?\d[\d_]*$/.test(raw))
75
+ function isDigitFormLiteral(type) {
76
+ return type === 'NumberLiteral' || type === 'IntegerLiteral' || type === 'FloatLiteral' || type === 'HexLiteral' || type === 'RadixLiteral' || type === 'SeparatorLiteral';
77
+ }
78
+ function countFormDigits(type, raw) {
79
+ if (type === 'NumberLiteral' || type === 'IntegerLiteral' || type === 'FloatLiteral')
80
+ return countIntegerDigits(raw);
81
+ const body = raw
82
+ .replace(/^[#%^]/, '')
83
+ .replace(/^[+-]/, '')
84
+ .replace(/_/g, '');
85
+ let count = 0;
86
+ for (const char of body) {
87
+ if ((char >= '0' && char <= '9') || (type !== 'SeparatorLiteral' && ((char >= 'A' && char <= 'Z') || (char >= 'a' && char <= 'z') || char === '&' || char === '!'))) {
88
+ count++;
89
+ }
90
+ }
91
+ return count;
92
+ }
93
+ function isFormNegative(raw) {
94
+ return /^[$#%^]?-/.test(raw) || isNegative(raw);
95
+ }
96
+ function firstInvalidRadixDigit(raw, radix) {
97
+ const body = raw.replace(/^%/, '').replace(/^[+-]/, '').replace(/_/g, '');
98
+ for (const char of body) {
99
+ const value = radixDigitValue(char);
100
+ if (value !== null && value >= radix)
101
+ return char;
102
+ }
103
+ return null;
104
+ }
105
+ function radixDigitValue(char) {
106
+ if (char >= '0' && char <= '9')
107
+ return char.charCodeAt(0) - 48;
108
+ const lower = char.toLowerCase();
109
+ if (lower >= 'a' && lower <= 'z')
110
+ return lower.charCodeAt(0) - 87;
111
+ if (char === '&')
112
+ return 36;
113
+ if (char === '!')
114
+ return 37;
115
+ return null;
116
+ }
117
+ function normalizeRangeLiteral(type, raw) {
118
+ const normalized = raw.replace(/_/g, '');
119
+ if (type === 'FloatLiteral' || /[.eE]/.test(normalized)) {
120
+ if (!/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?$/.test(normalized))
121
+ return null;
122
+ const value = Number(normalized);
123
+ return Number.isFinite(value) ? { kind: 'float', raw: normalized, value } : null;
124
+ }
125
+ if (!/^[+-]?\d+$/.test(normalized))
71
126
  return null;
72
- return raw.replace(/_/g, '');
127
+ return { kind: 'integer', raw: normalized, value: BigInt(normalized) };
128
+ }
129
+ function isBelowRange(range, bound) {
130
+ if (range.kind === 'integer' && /^[-+]?\d+$/.test(bound)) {
131
+ return range.value < BigInt(bound);
132
+ }
133
+ return rangeAsNumber(range) < Number(bound);
134
+ }
135
+ function isAboveRange(range, bound) {
136
+ if (range.kind === 'integer' && /^[-+]?\d+$/.test(bound)) {
137
+ return range.value > BigInt(bound);
138
+ }
139
+ return rangeAsNumber(range) > Number(bound);
140
+ }
141
+ function rangeAsNumber(range) {
142
+ return range.kind === 'integer' ? Number(range.value) : range.value;
73
143
  }
74
144
  //# sourceMappingURL=numericForm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"numericForm.js","sourceRoot":"","sources":["../../src/rules/numericForm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"numericForm.js","sourceRoot":"","sources":["../../src/rules/numericForm.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"presence.d.ts","sourceRoot":"","sources":["../../src/rules/presence.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CACzB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,EAC/B,GAAG,EAAE,WAAW,GACjB,IAAI,CAaN"}
1
+ {"version":3,"file":"presence.d.ts","sourceRoot":"","sources":["../../src/rules/presence.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CACzB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,EAC/B,GAAG,EAAE,WAAW,GACjB,IAAI,CAcN"}
@@ -19,6 +19,8 @@ import { ErrorCodes } from '../diag/codes.js';
19
19
  export function checkPresence(ruleIndex, boundPaths, ctx) {
20
20
  for (const [path, rule] of ruleIndex) {
21
21
  if (rule.constraints.required === true) {
22
+ if (path.includes('[*]'))
23
+ continue;
22
24
  if (!boundPaths.has(path)) {
23
25
  emitError(ctx, createDiag(path, null, // null span for missing paths
24
26
  `Missing required field: ${path}`, ErrorCodes.MISSING_REQUIRED_FIELD));
@@ -1 +1 @@
1
- {"version":3,"file":"presence.js","sourceRoot":"","sources":["../../src/rules/presence.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CACzB,SAAoB,EACpB,UAA+B,EAC/B,GAAgB;IAEhB,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YACrC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,SAAS,CAAC,GAAG,EAAE,UAAU,CACrB,IAAI,EACJ,IAAI,EAAE,8BAA8B;gBACpC,2BAA2B,IAAI,EAAE,EACjC,UAAU,CAAC,sBAAsB,CACpC,CAAC,CAAC;YACP,CAAC;QACL,CAAC;IACL,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"presence.js","sourceRoot":"","sources":["../../src/rules/presence.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CACzB,SAAoB,EACpB,UAA+B,EAC/B,GAAgB;IAEhB,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,SAAS;YACnC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,SAAS,CAAC,GAAG,EAAE,UAAU,CACrB,IAAI,EACJ,IAAI,EAAE,8BAA8B;gBACpC,2BAA2B,IAAI,EAAE,EACjC,UAAU,CAAC,sBAAsB,CACpC,CAAC,CAAC;YACP,CAAC;QACL,CAAC;IACL,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"schemaIndex.d.ts","sourceRoot":"","sources":["../../src/rules/schemaIndex.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAsMnD;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAExD;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,GAAG,SAAS,CA+D5E;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,UAAU,CAAC,aAAa,CAAC,GAAG,OAAO,CAMzF;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,UAAU,CAAC,aAAa,CAAC,GAAG,OAAO,CAMxF"}
1
+ {"version":3,"file":"schemaIndex.d.ts","sourceRoot":"","sources":["../../src/rules/schemaIndex.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAiQnD;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAExD;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,GAAG,SAAS,CAuF5E;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,UAAU,CAAC,aAAa,CAAC,GAAG,OAAO,CAMzF;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,UAAU,CAAC,aAAa,CAAC,GAAG,OAAO,CAMxF"}
@@ -79,6 +79,36 @@ function validateConstraintTree(schema, rulePath, constraints, ctx) {
79
79
  if (!validateReferenceConstraints(schema, rulePath, constraints, ctx)) {
80
80
  return false;
81
81
  }
82
+ if (constraints.toggle_pair !== undefined && !['any', 'yes_no', 'on_off'].includes(String(constraints.toggle_pair))) {
83
+ emitError(ctx, createDiag(rulePath, null, `Invalid toggle_pair constraint for path ${rulePath}`, ErrorCodes.UNKNOWN_CONSTRAINT_KEY));
84
+ return false;
85
+ }
86
+ if (constraints.null_values !== undefined && (!Array.isArray(constraints.null_values) || !constraints.null_values.every((value) => typeof value === 'string'))) {
87
+ emitError(ctx, createDiag(rulePath, null, `Invalid null_values constraint for path ${rulePath}`, ErrorCodes.UNKNOWN_CONSTRAINT_KEY));
88
+ return false;
89
+ }
90
+ if (constraints.any_of !== undefined) {
91
+ if (!Array.isArray(constraints.any_of) || constraints.any_of.length === 0) {
92
+ emitError(ctx, createDiag(rulePath, null, `Invalid any_of constraint for path ${rulePath}`, ErrorCodes.UNKNOWN_CONSTRAINT_KEY));
93
+ return false;
94
+ }
95
+ for (const [index, branch] of constraints.any_of.entries()) {
96
+ if (branch === null || typeof branch !== 'object' || Array.isArray(branch)) {
97
+ emitError(ctx, createDiag(`${rulePath}.any_of[${index}]`, null, `Invalid any_of branch for path ${rulePath}`, ErrorCodes.UNKNOWN_CONSTRAINT_KEY));
98
+ return false;
99
+ }
100
+ if (!validateConstraintTree(schema, `${rulePath}.any_of[${index}]`, branch, ctx)) {
101
+ return false;
102
+ }
103
+ }
104
+ }
105
+ for (const key of ['min_children', 'max_children', 'length_exact', 'radix']) {
106
+ const value = constraints[key];
107
+ if (value !== undefined && (typeof value !== 'number' || !Number.isInteger(value) || value < 0)) {
108
+ emitError(ctx, createDiag(rulePath, null, `Invalid ${key} constraint for path ${rulePath}`, ErrorCodes.UNKNOWN_CONSTRAINT_KEY));
109
+ return false;
110
+ }
111
+ }
82
112
  const nestedAttributes = constraints.attributes;
83
113
  if (nestedAttributes === undefined) {
84
114
  return true;
@@ -118,18 +148,28 @@ export function buildRuleIndex(schema, ctx) {
118
148
  if (schema.reference_policy !== undefined && !['allow', 'forbid'].includes(schema.reference_policy)) {
119
149
  emitError(ctx, createDiag('$', null, `Invalid schema reference_policy: ${String(schema.reference_policy)}`, ErrorCodes.INVALID_REFERENCE_CONSTRAINT));
120
150
  }
151
+ if (schema.attribute_policy !== undefined && !['inherit_world', 'forbid'].includes(schema.attribute_policy)) {
152
+ emitError(ctx, createDiag('$', null, `Invalid schema attribute_policy: ${String(schema.attribute_policy)}`, ErrorCodes.INVALID_SCHEMA_POLICY));
153
+ }
121
154
  for (const rule of schema.rules) {
122
- // Check for missing path
123
- if (!rule.path || typeof rule.path !== 'string') {
124
- emitError(ctx, createDiag('<unknown>', null, 'Rule missing required "path" field', ErrorCodes.RULE_MISSING_PATH));
155
+ const hasPath = typeof rule.path === 'string' && rule.path.length > 0;
156
+ const hasSelector = typeof rule.selector === 'string' && rule.selector.length > 0;
157
+ const ruleKey = hasPath ? rule.path : hasSelector ? rule.selector : '<unknown>';
158
+ // Check for missing path/selector
159
+ if (!hasPath && !hasSelector) {
160
+ emitError(ctx, createDiag('<unknown>', null, 'Rule missing required "path" or "selector" field', ErrorCodes.RULE_MISSING_PATH));
161
+ continue;
162
+ }
163
+ if (hasPath && hasSelector) {
164
+ emitError(ctx, createDiag(ruleKey, null, `Rule must use either "path" or "selector", not both: ${ruleKey}`, ErrorCodes.RULE_MISSING_PATH));
125
165
  continue;
126
166
  }
127
167
  // Check for duplicate rule paths
128
- if (index.has(rule.path)) {
168
+ if (hasPath && index.has(rule.path)) {
129
169
  emitError(ctx, createDiag(rule.path, null, `Duplicate rule for path: ${rule.path}`, ErrorCodes.DUPLICATE_RULE_PATH));
130
170
  continue;
131
171
  }
132
- if (!validateConstraintTree(schema, rule.path, rule.constraints, ctx)) {
172
+ if (!validateConstraintTree(schema, ruleKey, rule.constraints, ctx)) {
133
173
  continue;
134
174
  }
135
175
  // Enforce datatype allow-list if provided at schema level.
@@ -140,11 +180,13 @@ export function buildRuleIndex(schema, ctx) {
140
180
  if (datatypeAllowlist && rule.constraints && typeof rule.constraints.datatype === 'string') {
141
181
  const dt = rule.constraints.datatype;
142
182
  if (!datatypeAllowlist.includes(dt)) {
143
- emitError(ctx, createDiag(rule.path, null, `Datatype '${dt}' not allowed by schema datatype_allowlist`, ErrorCodes.DATATYPE_ALLOWLIST_REJECT));
183
+ emitError(ctx, createDiag(ruleKey, null, `Datatype '${dt}' not allowed by schema datatype_allowlist`, ErrorCodes.DATATYPE_ALLOWLIST_REJECT));
144
184
  // continue; still index the rule so other checks can run
145
185
  }
146
186
  }
147
- index.set(rule.path, rule);
187
+ if (hasPath) {
188
+ index.set(rule.path, rule);
189
+ }
148
190
  }
149
191
  return index;
150
192
  }
@@ -1 +1 @@
1
- {"version":3,"file":"schemaIndex.js","sourceRoot":"","sources":["../../src/rules/schemaIndex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemaIndex.js","sourceRoot":"","sources":["../../src/rules/schemaIndex.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"typeCheck.d.ts","sourceRoot":"","sources":["../../src/rules/typeCheck.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAuBlD;;GAEG;AACH,UAAU,UAAU;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;CACd;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CACtB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,EACvC,GAAG,EAAE,WAAW,GACjB,IAAI,CA0CN"}
1
+ {"version":3,"file":"typeCheck.d.ts","sourceRoot":"","sources":["../../src/rules/typeCheck.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAkClD;;GAEG;AACH,UAAU,UAAU;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;CACd;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CACtB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,EACvC,GAAG,EAAE,WAAW,GACjB,IAAI,CA0CN"}
@@ -18,6 +18,17 @@ const TYPE_ALIASES = {
18
18
  'StringLiteral': ['StringLiteral'],
19
19
  'BooleanLiteral': ['BooleanLiteral'],
20
20
  'NullLiteral': ['NullLiteral'],
21
+ 'ToggleLiteral': ['ToggleLiteral'],
22
+ 'InfinityLiteral': ['InfinityLiteral'],
23
+ 'NaNLiteral': ['NaNLiteral'],
24
+ 'HexLiteral': ['HexLiteral'],
25
+ 'RadixLiteral': ['RadixLiteral'],
26
+ 'EncodingLiteral': ['EncodingLiteral'],
27
+ 'SeparatorLiteral': ['SeparatorLiteral'],
28
+ 'DateLiteral': ['DateLiteral'],
29
+ 'TimeLiteral': ['TimeLiteral'],
30
+ 'DateTimeLiteral': ['DateTimeLiteral'],
31
+ 'ZRUTDateTimeLiteral': ['ZRUTDateTimeLiteral'],
21
32
  'ObjectNode': ['ObjectNode'],
22
33
  'ListNode': ['ListNode'],
23
34
  'ListLiteral': ['ListNode', 'ListLiteral'],
@@ -56,7 +67,7 @@ export function checkTypes(ruleIndex, events, ctx) {
56
67
  if (expectedType === undefined)
57
68
  continue;
58
69
  // Check if actual type satisfies expected type
59
- if (!typeMatches(actualType, expectedType, event.raw)) {
70
+ if (!typeMatches(actualType, expectedType, event.raw, rule.constraints)) {
60
71
  const parentPath = path.replace(/\[\d+\]$/, '');
61
72
  const parentType = parentPath !== path ? events.get(parentPath)?.type : undefined;
62
73
  emitError(ctx, createDiag(path, event.span, `Type mismatch: expected ${expectedType}, got ${actualType}`, /\[\d+\]$/.test(path) && parentType === 'TupleLiteral'
@@ -68,7 +79,13 @@ export function checkTypes(ruleIndex, events, ctx) {
68
79
  /**
69
80
  * Check if an actual type satisfies an expected type constraint.
70
81
  */
71
- function typeMatches(actualType, expectedType, raw) {
82
+ function typeMatches(actualType, expectedType, raw, constraints) {
83
+ if (constraints?.nullable === true && actualType === 'NullLiteral')
84
+ return true;
85
+ if (constraints?.allow_infinity === true && actualType === 'InfinityLiteral' && isNumericExpectedType(expectedType))
86
+ return true;
87
+ if (constraints?.allow_nan === true && actualType === 'NaNLiteral' && isNumericExpectedType(expectedType))
88
+ return true;
72
89
  // Direct match
73
90
  if (actualType === expectedType)
74
91
  return true;
@@ -86,6 +103,9 @@ function typeMatches(actualType, expectedType, raw) {
86
103
  return true;
87
104
  return false;
88
105
  }
106
+ function isNumericExpectedType(expectedType) {
107
+ return expectedType === 'NumberLiteral' || expectedType === 'IntegerLiteral' || expectedType === 'FloatLiteral';
108
+ }
89
109
  function isIntegerNumber(raw) {
90
110
  if (typeof raw !== 'string')
91
111
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"typeCheck.js","sourceRoot":"","sources":["../../src/rules/typeCheck.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typeCheck.js","sourceRoot":"","sources":["../../src/rules/typeCheck.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,20 @@ export interface ConstraintsV1 {
13
13
  readonly required?: boolean;
14
14
  /** Expected literal kind (StringLiteral, IntegerLiteral, etc.) */
15
15
  readonly type?: string;
16
+ /** Accept when any listed constraint branch matches */
17
+ readonly any_of?: readonly ConstraintsV1[];
18
+ /** Allow NullLiteral to satisfy this type constraint */
19
+ readonly nullable?: boolean;
20
+ /** Allow InfinityLiteral to satisfy numeric type constraints */
21
+ readonly allow_infinity?: boolean;
22
+ /** Allow NaNLiteral to satisfy numeric type constraints */
23
+ readonly allow_nan?: boolean;
24
+ /** Required null sentinel value when the accepted value is NullLiteral */
25
+ readonly null_value?: string;
26
+ /** Accepted null sentinel values when the accepted value is NullLiteral */
27
+ readonly null_values?: readonly string[];
28
+ /** Required toggle lexical pair */
29
+ readonly toggle_pair?: 'any' | 'yes_no' | 'on_off';
16
30
  /** Reference form policy for the path */
17
31
  readonly reference?: 'allow' | 'forbid' | 'require';
18
32
  /** Required reference kind when reference='require' */
@@ -25,12 +39,18 @@ export interface ConstraintsV1 {
25
39
  readonly type_is?: 'list' | 'tuple';
26
40
  /** Core v1 exact container arity constraint */
27
41
  readonly length_exact?: number;
42
+ /** Core v1 minimum immediate child count constraint */
43
+ readonly min_children?: number;
44
+ /** Core v1 maximum immediate child count constraint */
45
+ readonly max_children?: number;
28
46
  /** For integers: 'signed' or 'unsigned' syntax */
29
47
  readonly sign?: 'signed' | 'unsigned';
30
48
  /** Minimum ASCII digit count (excludes sign) */
31
49
  readonly min_digits?: number;
32
50
  /** Maximum ASCII digit count (excludes sign) */
33
51
  readonly max_digits?: number;
52
+ /** Exact radix/base required for RadixLiteral digit forms */
53
+ readonly radix?: number;
34
54
  /** Minimum integer value (inclusive), encoded as base-10 string for exactness */
35
55
  readonly min_value?: string;
36
56
  /** Maximum integer value (inclusive), encoded as base-10 string for exactness */
@@ -49,11 +69,13 @@ export interface ConstraintsV1 {
49
69
  readonly closed_attributes?: boolean;
50
70
  }
51
71
  /**
52
- * Schema rule for a canonical path
72
+ * Schema rule for a canonical path or selector
53
73
  */
54
74
  export interface SchemaRule {
55
75
  /** Canonical path this rule applies to */
56
- readonly path: string;
76
+ readonly path?: string;
77
+ /** Canonical path selector this rule applies to */
78
+ readonly selector?: string;
57
79
  /** Constraints to apply */
58
80
  readonly constraints: ConstraintsV1;
59
81
  }
@@ -67,6 +89,8 @@ export interface SchemaV1 {
67
89
  readonly world?: 'open' | 'closed';
68
90
  /** Optional schema-wide reference policy */
69
91
  readonly reference_policy?: 'allow' | 'forbid';
92
+ /** Optional schema-wide attribute policy */
93
+ readonly attribute_policy?: 'inherit_world' | 'forbid';
70
94
  /** Optional datatype-wide constraints keyed by datatype base label */
71
95
  readonly datatype_rules?: Readonly<Record<string, ConstraintsV1>>;
72
96
  }
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/types/schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,aAAa;CAAG;AAEhE,MAAM,WAAW,aAAa;IAC1B,6BAA6B;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAE5B,kEAAkE;IAClE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEvB,yCAAyC;IACzC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IAEpD,uDAAuD;IACvD,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;IAEzD,4EAA4E;IAC5E,QAAQ,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAE3C,kFAAkF;IAClF,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAE1C,iDAAiD;IACjD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEpC,+CAA+C;IAC/C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAE/B,kDAAkD;IAClD,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAEtC,gDAAgD;IAChD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAE7B,gDAAgD;IAChD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAE7B,iFAAiF;IACjF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B,iFAAiF;IACjF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B,4EAA4E;IAC5E,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAE7B,4EAA4E;IAC5E,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAE7B,wCAAwC;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAE1B,wDAAwD;IACxD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE3B,0DAA0D;IAC1D,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAEvE,mEAAmE;IACnE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,2BAA2B;IAC3B,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACrB,qBAAqB;IACrB,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;IAEtC,mDAAmD;IACnD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAEnC,4CAA4C;IAC5C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAE/C,sEAAsE;IACtE,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;CACrE;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,MAAM,CAoBpD,CAAC;AAEH;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAOtF"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/types/schema.ts"],"names":[],"mappings":"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"}
@@ -9,15 +9,25 @@
9
9
  export const KNOWN_CONSTRAINT_KEYS = new Set([
10
10
  'required',
11
11
  'type',
12
+ 'any_of',
13
+ 'nullable',
14
+ 'allow_infinity',
15
+ 'allow_nan',
16
+ 'null_value',
17
+ 'null_values',
18
+ 'toggle_pair',
12
19
  'reference',
13
20
  'reference_kind',
14
21
  'reference_target_pattern',
15
22
  'resolve_reference_form',
16
23
  'type_is',
17
24
  'length_exact',
25
+ 'min_children',
26
+ 'max_children',
18
27
  'sign',
19
28
  'min_digits',
20
29
  'max_digits',
30
+ 'radix',
21
31
  'min_value',
22
32
  'max_value',
23
33
  'min_length',
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/types/schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA8FH;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAwB,IAAI,GAAG,CAAC;IAC9D,UAAU;IACV,MAAM;IACN,WAAW;IACX,gBAAgB;IAChB,0BAA0B;IAC1B,wBAAwB;IACxB,SAAS;IACT,cAAc;IACd,MAAM;IACN,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,SAAS;IACT,UAAU;IACV,YAAY;IACZ,mBAAmB;CACtB,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,WAAoC;IACzE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/types/schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAkIH;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAwB,IAAI,GAAG,CAAC;IAC9D,UAAU;IACV,MAAM;IACN,QAAQ;IACR,UAAU;IACV,gBAAgB;IAChB,WAAW;IACX,YAAY;IACZ,aAAa;IACb,aAAa;IACb,WAAW;IACX,gBAAgB;IAChB,0BAA0B;IAC1B,wBAAwB;IACxB,SAAS;IACT,cAAc;IACd,cAAc;IACd,cAAc;IACd,MAAM;IACN,YAAY;IACZ,YAAY;IACZ,OAAO;IACP,WAAW;IACX,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,SAAS;IACT,UAAU;IACV,YAAY;IACZ,mBAAmB;CACtB,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,WAAoC;IACzE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAkD1D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;OAKG;IACH,QAAQ,CAAC,gCAAgC,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;CAExE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,QAAQ,CACpB,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,QAAQ,EAChB,OAAO,GAAE,eAAoB,GAC9B,cAAc,CAoRhB"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AA6D1D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;OAKG;IACH,QAAQ,CAAC,gCAAgC,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;CAExE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,QAAQ,CACpB,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,QAAQ,EAChB,OAAO,GAAE,eAAoB,GAC9B,cAAc,CAqUhB"}