@altopelago/aeos-core 0.9.0 → 0.9.2

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.
@@ -6,9 +6,149 @@
6
6
  import { hasUnknownConstraintKeys } from '../types/schema.js';
7
7
  import { createDiag, emitError } from '../diag/emit.js';
8
8
  import { ErrorCodes } from '../diag/codes.js';
9
+ const MAX_SCHEMA_REGEX_LENGTH = 512;
10
+ const PORTABLE_REGEX_ESCAPES = new Set([
11
+ '0', 'b', 'B', 'd', 'D', 'f', 'n', 'r', 's', 'S', 't', 'v', 'w', 'W',
12
+ '\\', '^', '$', '.', '|', '?', '*', '+', '(', ')', '[', ']', '{', '}', '-',
13
+ ]);
9
14
  function isReferenceType(type) {
10
15
  return type === 'CloneReference' || type === 'PointerReference';
11
16
  }
17
+ function isRegexQuantifierStart(pattern, index) {
18
+ const char = pattern[index];
19
+ return char === '*' || char === '+' || char === '{';
20
+ }
21
+ function hasNestedQuantifiedGroup(pattern) {
22
+ const stack = [];
23
+ let escaped = false;
24
+ let inCharacterClass = false;
25
+ for (let i = 0; i < pattern.length; i += 1) {
26
+ const char = pattern[i];
27
+ if (escaped) {
28
+ escaped = false;
29
+ continue;
30
+ }
31
+ if (char === '\\') {
32
+ escaped = true;
33
+ continue;
34
+ }
35
+ if (char === '[') {
36
+ inCharacterClass = true;
37
+ continue;
38
+ }
39
+ if (char === ']' && inCharacterClass) {
40
+ inCharacterClass = false;
41
+ continue;
42
+ }
43
+ if (inCharacterClass) {
44
+ continue;
45
+ }
46
+ if (char === '(') {
47
+ stack.push({ hasInnerQuantifier: false });
48
+ continue;
49
+ }
50
+ if (char === ')') {
51
+ const group = stack.pop();
52
+ if (!group)
53
+ continue;
54
+ if (group.hasInnerQuantifier && isRegexQuantifierStart(pattern, i + 1)) {
55
+ return true;
56
+ }
57
+ const parent = stack.at(-1);
58
+ if (parent && isRegexQuantifierStart(pattern, i + 1)) {
59
+ parent.hasInnerQuantifier = true;
60
+ }
61
+ continue;
62
+ }
63
+ const current = stack.at(-1);
64
+ if (current && isRegexQuantifierStart(pattern, i)) {
65
+ current.hasInnerQuantifier = true;
66
+ }
67
+ }
68
+ return false;
69
+ }
70
+ function validatePortablePatternSyntax(pattern) {
71
+ const stack = [];
72
+ let escaped = false;
73
+ let inCharacterClass = false;
74
+ for (let i = 0; i < pattern.length; i += 1) {
75
+ const char = pattern[i] ?? '';
76
+ if (escaped) {
77
+ if (/^[1-9]$/.test(char)) {
78
+ return 'backreferences are not part of the AEOS portable pattern profile';
79
+ }
80
+ if ((char === 'p' || char === 'P') && pattern[i + 1] === '{') {
81
+ return 'Unicode property escapes are not part of the AEOS portable pattern profile';
82
+ }
83
+ if (char === 'k' && pattern[i + 1] === '<') {
84
+ return 'named backreferences are not part of the AEOS portable pattern profile';
85
+ }
86
+ if (/^[A-Za-z0-9]$/.test(char) && !PORTABLE_REGEX_ESCAPES.has(char)) {
87
+ return `unsupported escape sequence \\${char}`;
88
+ }
89
+ escaped = false;
90
+ continue;
91
+ }
92
+ if (char === '\\') {
93
+ escaped = true;
94
+ continue;
95
+ }
96
+ if (inCharacterClass) {
97
+ if (char === ']') {
98
+ inCharacterClass = false;
99
+ }
100
+ continue;
101
+ }
102
+ if (char === '[') {
103
+ inCharacterClass = true;
104
+ continue;
105
+ }
106
+ if (char === '(') {
107
+ if (pattern[i + 1] === '?') {
108
+ if (pattern[i + 2] !== ':') {
109
+ return 'lookaround, named groups, and inline regex flags are not part of the AEOS portable pattern profile';
110
+ }
111
+ i += 2;
112
+ }
113
+ stack.push('(');
114
+ continue;
115
+ }
116
+ if (char === ')') {
117
+ if (stack.pop() === undefined) {
118
+ return 'unmatched closing group';
119
+ }
120
+ }
121
+ }
122
+ if (escaped) {
123
+ return 'trailing escape';
124
+ }
125
+ if (inCharacterClass) {
126
+ return 'unterminated character class';
127
+ }
128
+ if (stack.length > 0) {
129
+ return 'unterminated group';
130
+ }
131
+ return null;
132
+ }
133
+ function regexConstraintProblem(value) {
134
+ if (value.length > MAX_SCHEMA_REGEX_LENGTH) {
135
+ return `regex exceeds ${MAX_SCHEMA_REGEX_LENGTH} characters`;
136
+ }
137
+ const portableProblem = validatePortablePatternSyntax(value);
138
+ if (portableProblem) {
139
+ return portableProblem;
140
+ }
141
+ if (hasNestedQuantifiedGroup(value)) {
142
+ return 'regex contains a nested quantified group';
143
+ }
144
+ try {
145
+ new RegExp(value);
146
+ }
147
+ catch {
148
+ return 'regex is not valid ECMAScript syntax';
149
+ }
150
+ return null;
151
+ }
12
152
  function validateReferenceConstraints(schema, rulePath, constraints, ctx) {
13
153
  const reference = constraints.reference;
14
154
  const referenceKind = constraints.reference_kind;
@@ -33,11 +173,9 @@ function validateReferenceConstraints(schema, rulePath, constraints, ctx) {
33
173
  emitError(ctx, createDiag(rulePath, null, `Invalid reference_target_pattern constraint for path ${rulePath}: ${String(referenceTargetPattern)}`, ErrorCodes.INVALID_REFERENCE_CONSTRAINT));
34
174
  return false;
35
175
  }
36
- try {
37
- new RegExp(referenceTargetPattern);
38
- }
39
- catch {
40
- emitError(ctx, createDiag(rulePath, null, `Invalid reference_target_pattern regex for path ${rulePath}: ${referenceTargetPattern}`, ErrorCodes.INVALID_REFERENCE_CONSTRAINT));
176
+ const regexProblem = regexConstraintProblem(referenceTargetPattern);
177
+ if (regexProblem) {
178
+ emitError(ctx, createDiag(rulePath, null, `Invalid reference_target_pattern regex for path ${rulePath}: ${regexProblem}`, ErrorCodes.INVALID_REFERENCE_CONSTRAINT));
41
179
  return false;
42
180
  }
43
181
  if (reference === 'forbid') {
@@ -71,6 +209,20 @@ function validateReferenceConstraints(schema, rulePath, constraints, ctx) {
71
209
  }
72
210
  return true;
73
211
  }
212
+ function validateRegexConstraint(rulePath, key, value, ctx) {
213
+ if (value === undefined)
214
+ return true;
215
+ if (typeof value !== 'string') {
216
+ emitError(ctx, createDiag(rulePath, null, `Invalid ${key} constraint for path ${rulePath}: ${String(value)}`, ErrorCodes.UNKNOWN_CONSTRAINT_KEY));
217
+ return false;
218
+ }
219
+ const regexProblem = regexConstraintProblem(value);
220
+ if (regexProblem) {
221
+ emitError(ctx, createDiag(rulePath, null, `Invalid ${key} regex for path ${rulePath}: ${regexProblem}`, ErrorCodes.UNKNOWN_CONSTRAINT_KEY));
222
+ return false;
223
+ }
224
+ return true;
225
+ }
74
226
  function validateConstraintTree(schema, rulePath, constraints, ctx) {
75
227
  if (hasUnknownConstraintKeys(constraints)) {
76
228
  emitError(ctx, createDiag(rulePath, null, `Unknown constraint key in rule for path: ${rulePath}`, ErrorCodes.UNKNOWN_CONSTRAINT_KEY));
@@ -79,6 +231,64 @@ function validateConstraintTree(schema, rulePath, constraints, ctx) {
79
231
  if (!validateReferenceConstraints(schema, rulePath, constraints, ctx)) {
80
232
  return false;
81
233
  }
234
+ if (!validateRegexConstraint(rulePath, 'pattern', constraints.pattern, ctx)) {
235
+ return false;
236
+ }
237
+ for (const key of ['required', 'nullable', 'allow_infinity', 'allow_nan', 'resolve_reference_form', 'closed_attributes', 'allow_unspecified_radix']) {
238
+ const value = constraints[key];
239
+ if (value !== undefined && typeof value !== 'boolean') {
240
+ emitError(ctx, createDiag(rulePath, null, `${key} must be boolean for path ${rulePath}`, ErrorCodes.UNKNOWN_CONSTRAINT_KEY));
241
+ return false;
242
+ }
243
+ }
244
+ for (const key of ['type', 'null_value', 'sign', 'datatype']) {
245
+ const value = constraints[key];
246
+ if (value !== undefined && typeof value !== 'string') {
247
+ emitError(ctx, createDiag(rulePath, null, `${key} must be string for path ${rulePath}`, ErrorCodes.UNKNOWN_CONSTRAINT_KEY));
248
+ return false;
249
+ }
250
+ }
251
+ if (constraints.sign !== undefined && !['signed', 'unsigned'].includes(String(constraints.sign))) {
252
+ emitError(ctx, createDiag(rulePath, null, `Invalid sign constraint for path ${rulePath}`, ErrorCodes.UNKNOWN_CONSTRAINT_KEY));
253
+ return false;
254
+ }
255
+ if (constraints.toggle_pair !== undefined && !['any', 'yes_no', 'on_off'].includes(String(constraints.toggle_pair))) {
256
+ emitError(ctx, createDiag(rulePath, null, `Invalid toggle_pair constraint for path ${rulePath}`, ErrorCodes.UNKNOWN_CONSTRAINT_KEY));
257
+ return false;
258
+ }
259
+ if (constraints.null_values !== undefined && (!Array.isArray(constraints.null_values) || !constraints.null_values.every((value) => typeof value === 'string'))) {
260
+ emitError(ctx, createDiag(rulePath, null, `Invalid null_values constraint for path ${rulePath}`, ErrorCodes.UNKNOWN_CONSTRAINT_KEY));
261
+ return false;
262
+ }
263
+ if (constraints.any_of !== undefined) {
264
+ if (!Array.isArray(constraints.any_of) || constraints.any_of.length === 0) {
265
+ emitError(ctx, createDiag(rulePath, null, `Invalid any_of constraint for path ${rulePath}`, ErrorCodes.UNKNOWN_CONSTRAINT_KEY));
266
+ return false;
267
+ }
268
+ for (const [index, branch] of constraints.any_of.entries()) {
269
+ if (branch === null || typeof branch !== 'object' || Array.isArray(branch)) {
270
+ emitError(ctx, createDiag(`${rulePath}.any_of[${index}]`, null, `Invalid any_of branch for path ${rulePath}`, ErrorCodes.UNKNOWN_CONSTRAINT_KEY));
271
+ return false;
272
+ }
273
+ if (!validateConstraintTree(schema, `${rulePath}.any_of[${index}]`, branch, ctx)) {
274
+ return false;
275
+ }
276
+ }
277
+ }
278
+ for (const key of ['min_children', 'max_children', 'length_exact', 'radix', 'min_digits', 'max_digits', 'min_length', 'max_length']) {
279
+ const value = constraints[key];
280
+ if (value !== undefined && (typeof value !== 'number' || !Number.isInteger(value) || value < 0)) {
281
+ emitError(ctx, createDiag(rulePath, null, `Invalid ${key} constraint for path ${rulePath}`, ErrorCodes.UNKNOWN_CONSTRAINT_KEY));
282
+ return false;
283
+ }
284
+ }
285
+ for (const key of ['min_value', 'max_value']) {
286
+ const value = constraints[key];
287
+ if (value !== undefined && typeof value !== 'string') {
288
+ emitError(ctx, createDiag(rulePath, null, `${key} must be string for path ${rulePath}`, ErrorCodes.UNKNOWN_CONSTRAINT_KEY));
289
+ return false;
290
+ }
291
+ }
82
292
  const nestedAttributes = constraints.attributes;
83
293
  if (nestedAttributes === undefined) {
84
294
  return true;
@@ -118,18 +328,28 @@ export function buildRuleIndex(schema, ctx) {
118
328
  if (schema.reference_policy !== undefined && !['allow', 'forbid'].includes(schema.reference_policy)) {
119
329
  emitError(ctx, createDiag('$', null, `Invalid schema reference_policy: ${String(schema.reference_policy)}`, ErrorCodes.INVALID_REFERENCE_CONSTRAINT));
120
330
  }
331
+ if (schema.attribute_policy !== undefined && !['inherit_world', 'forbid'].includes(schema.attribute_policy)) {
332
+ emitError(ctx, createDiag('$', null, `Invalid schema attribute_policy: ${String(schema.attribute_policy)}`, ErrorCodes.INVALID_SCHEMA_POLICY));
333
+ }
121
334
  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));
335
+ const hasPath = typeof rule.path === 'string' && rule.path.length > 0;
336
+ const hasSelector = typeof rule.selector === 'string' && rule.selector.length > 0;
337
+ const ruleKey = hasPath ? rule.path : hasSelector ? rule.selector : '<unknown>';
338
+ // Check for missing path/selector
339
+ if (!hasPath && !hasSelector) {
340
+ emitError(ctx, createDiag('<unknown>', null, 'Rule missing required "path" or "selector" field', ErrorCodes.RULE_MISSING_PATH));
341
+ continue;
342
+ }
343
+ if (hasPath && hasSelector) {
344
+ emitError(ctx, createDiag(ruleKey, null, `Rule must use either "path" or "selector", not both: ${ruleKey}`, ErrorCodes.RULE_MISSING_PATH));
125
345
  continue;
126
346
  }
127
347
  // Check for duplicate rule paths
128
- if (index.has(rule.path)) {
348
+ if (hasPath && index.has(rule.path)) {
129
349
  emitError(ctx, createDiag(rule.path, null, `Duplicate rule for path: ${rule.path}`, ErrorCodes.DUPLICATE_RULE_PATH));
130
350
  continue;
131
351
  }
132
- if (!validateConstraintTree(schema, rule.path, rule.constraints, ctx)) {
352
+ if (!validateConstraintTree(schema, ruleKey, rule.constraints, ctx)) {
133
353
  continue;
134
354
  }
135
355
  // Enforce datatype allow-list if provided at schema level.
@@ -140,11 +360,13 @@ export function buildRuleIndex(schema, ctx) {
140
360
  if (datatypeAllowlist && rule.constraints && typeof rule.constraints.datatype === 'string') {
141
361
  const dt = rule.constraints.datatype;
142
362
  if (!datatypeAllowlist.includes(dt)) {
143
- emitError(ctx, createDiag(rule.path, null, `Datatype '${dt}' not allowed by schema datatype_allowlist`, ErrorCodes.DATATYPE_ALLOWLIST_REJECT));
363
+ emitError(ctx, createDiag(ruleKey, null, `Datatype '${dt}' not allowed by schema datatype_allowlist`, ErrorCodes.DATATYPE_ALLOWLIST_REJECT));
144
364
  // continue; still index the rule so other checks can run
145
365
  }
146
366
  }
147
- index.set(rule.path, rule);
367
+ if (hasPath) {
368
+ index.set(rule.path, rule);
369
+ }
148
370
  }
149
371
  return index;
150
372
  }
@@ -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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"}
@@ -14,6 +14,7 @@ interface StringValue {
14
14
  value: string;
15
15
  span: Span;
16
16
  }
17
+ export declare function matchesPortablePattern(pattern: string | undefined, value: string): boolean;
17
18
  /**
18
19
  * Check string form constraints for events matching schema rules.
19
20
  *
@@ -32,8 +33,8 @@ export declare function checkStringForm(ruleIndex: RuleIndex, events: ReadonlyMa
32
33
  /**
33
34
  * Check pattern constraints for events matching schema rules.
34
35
  *
35
- * For each event with a pattern constraint, verify the string value
36
- * matches the regex pattern.
36
+ * For each event with a pattern constraint, verify the normalized literal
37
+ * value matches the regex pattern.
37
38
  *
38
39
  * AEOS v1 Decision: Patterns are ECMAScript regex strings. The pattern
39
40
  * must match the entire string (anchored with ^...$). If the pattern
@@ -1 +1 @@
1
- {"version":3,"file":"stringForm.d.ts","sourceRoot":"","sources":["../../src/rules/stringForm.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;AAElD;;GAEG;AACH,UAAU,WAAW;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,IAAI,CAAC;CACd;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAC3B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,EACxC,GAAG,EAAE,WAAW,GACjB,IAAI,CAwCN;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CACzB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,EACxC,GAAG,EAAE,WAAW,GACjB,IAAI,CA2CN"}
1
+ {"version":3,"file":"stringForm.d.ts","sourceRoot":"","sources":["../../src/rules/stringForm.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;AAElD;;GAEG;AACH,UAAU,WAAW;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,IAAI,CAAC;CACd;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAc1F;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAC3B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,EACxC,GAAG,EAAE,WAAW,GACjB,IAAI,CAwCN;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CACzB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,EACxC,GAAG,EAAE,WAAW,GACjB,IAAI,CAwBN"}
@@ -5,6 +5,23 @@
5
5
  */
6
6
  import { createDiag, emitError } from '../diag/emit.js';
7
7
  import { ErrorCodes } from '../diag/codes.js';
8
+ export function matchesPortablePattern(pattern, value) {
9
+ if (pattern === undefined)
10
+ return true;
11
+ let regexPattern = pattern;
12
+ if (!regexPattern.startsWith('^')) {
13
+ regexPattern = '^' + regexPattern;
14
+ }
15
+ if (!regexPattern.endsWith('$')) {
16
+ regexPattern = regexPattern + '$';
17
+ }
18
+ try {
19
+ return new RegExp(regexPattern).test(value);
20
+ }
21
+ catch {
22
+ return false;
23
+ }
24
+ }
8
25
  /**
9
26
  * Check string form constraints for events matching schema rules.
10
27
  *
@@ -29,8 +46,8 @@ export function checkStringForm(ruleIndex, events, ctx) {
29
46
  const event = events.get(path);
30
47
  if (!event)
31
48
  continue; // Missing path handled by presence check
32
- // Only apply to string types
33
- if (event.type !== 'StringLiteral') {
49
+ // Length constraints apply to normalized string-like literal payloads.
50
+ if (!isStringLikeLiteral(event.type)) {
34
51
  continue;
35
52
  }
36
53
  const length = event.value.length;
@@ -47,8 +64,8 @@ export function checkStringForm(ruleIndex, events, ctx) {
47
64
  /**
48
65
  * Check pattern constraints for events matching schema rules.
49
66
  *
50
- * For each event with a pattern constraint, verify the string value
51
- * matches the regex pattern.
67
+ * For each event with a pattern constraint, verify the normalized literal
68
+ * value matches the regex pattern.
52
69
  *
53
70
  * AEOS v1 Decision: Patterns are ECMAScript regex strings. The pattern
54
71
  * must match the entire string (anchored with ^...$). If the pattern
@@ -67,30 +84,24 @@ export function checkPatterns(ruleIndex, events, ctx) {
67
84
  const event = events.get(path);
68
85
  if (!event)
69
86
  continue; // Missing path handled by presence check
70
- // Only apply to string types
71
- if (event.type !== 'StringLiteral') {
87
+ if (!isStringLikeLiteral(event.type)) {
72
88
  continue;
73
89
  }
74
- // Compile pattern (add anchors if not present for full-match semantics)
75
- let regexPattern = pattern;
76
- if (!regexPattern.startsWith('^')) {
77
- regexPattern = '^' + regexPattern;
78
- }
79
- if (!regexPattern.endsWith('$')) {
80
- regexPattern = regexPattern + '$';
81
- }
82
- let regex;
83
- try {
84
- regex = new RegExp(regexPattern);
85
- }
86
- catch {
87
- // Invalid regex is a schema error, not a data error
88
- // This should have been caught during schema validation
89
- continue;
90
- }
91
- if (!regex.test(event.value)) {
90
+ if (!matchesPortablePattern(pattern, event.value)) {
92
91
  emitError(ctx, createDiag(path, event.span, `Pattern mismatch: value does not match pattern "${pattern}"`, ErrorCodes.PATTERN_MISMATCH));
93
92
  }
94
93
  }
95
94
  }
95
+ function isStringLikeLiteral(type) {
96
+ return type === 'StringLiteral'
97
+ || type === 'SeparatorLiteral'
98
+ || type === 'NullLiteral'
99
+ || type === 'EncodingLiteral'
100
+ || type === 'DateLiteral'
101
+ || type === 'TimeLiteral'
102
+ || type === 'DateTimeLiteral'
103
+ || type === 'ZRUTDateTimeLiteral'
104
+ || type === 'TrimtickLiteral'
105
+ || type === 'TrimtickStringLiteral';
106
+ }
96
107
  //# sourceMappingURL=stringForm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stringForm.js","sourceRoot":"","sources":["../../src/rules/stringForm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stringForm.js","sourceRoot":"","sources":["../../src/rules/stringForm.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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"}