@ifc-lite/ids 1.15.52 → 1.15.53

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 (56) hide show
  1. package/README.md +5 -0
  2. package/dist/audit/coherence/cardinality.d.ts +19 -0
  3. package/dist/audit/coherence/cardinality.d.ts.map +1 -0
  4. package/dist/audit/coherence/cardinality.js +130 -0
  5. package/dist/audit/coherence/cardinality.js.map +1 -0
  6. package/dist/audit/coherence/index.d.ts +1 -0
  7. package/dist/audit/coherence/index.d.ts.map +1 -1
  8. package/dist/audit/coherence/index.js +18 -121
  9. package/dist/audit/coherence/index.js.map +1 -1
  10. package/dist/audit/xsd/index.d.ts.map +1 -1
  11. package/dist/audit/xsd/index.js +60 -2
  12. package/dist/audit/xsd/index.js.map +1 -1
  13. package/dist/bridge/data-accessor.d.ts.map +1 -1
  14. package/dist/bridge/data-accessor.js +7 -1
  15. package/dist/bridge/data-accessor.js.map +1 -1
  16. package/dist/bridge/properties.d.ts +5 -3
  17. package/dist/bridge/properties.d.ts.map +1 -1
  18. package/dist/bridge/properties.js +31 -23
  19. package/dist/bridge/properties.js.map +1 -1
  20. package/dist/bridge/units.d.ts +61 -3
  21. package/dist/bridge/units.d.ts.map +1 -1
  22. package/dist/bridge/units.js +154 -38
  23. package/dist/bridge/units.js.map +1 -1
  24. package/dist/constraint-types.d.ts +4 -0
  25. package/dist/constraint-types.d.ts.map +1 -1
  26. package/dist/constraints/describe.d.ts.map +1 -1
  27. package/dist/constraints/describe.js +26 -0
  28. package/dist/constraints/describe.js.map +1 -1
  29. package/dist/constraints/digit-facets.d.ts +43 -0
  30. package/dist/constraints/digit-facets.d.ts.map +1 -0
  31. package/dist/constraints/digit-facets.js +89 -0
  32. package/dist/constraints/digit-facets.js.map +1 -0
  33. package/dist/constraints/match-family.d.ts.map +1 -1
  34. package/dist/constraints/match-family.js +9 -3
  35. package/dist/constraints/match-family.js.map +1 -1
  36. package/dist/constraints/xsd-cast.d.ts.map +1 -1
  37. package/dist/constraints/xsd-cast.js +17 -9
  38. package/dist/constraints/xsd-cast.js.map +1 -1
  39. package/dist/constraints/xsd-datetime.d.ts +16 -0
  40. package/dist/constraints/xsd-datetime.d.ts.map +1 -0
  41. package/dist/constraints/xsd-datetime.js +118 -0
  42. package/dist/constraints/xsd-datetime.js.map +1 -0
  43. package/dist/facets/attribute-facet.js +10 -2
  44. package/dist/facets/attribute-facet.js.map +1 -1
  45. package/dist/facets/entity-facet.d.ts +12 -0
  46. package/dist/facets/entity-facet.d.ts.map +1 -1
  47. package/dist/facets/entity-facet.js +12 -0
  48. package/dist/facets/entity-facet.js.map +1 -1
  49. package/dist/parser/parse-restriction.d.ts +18 -0
  50. package/dist/parser/parse-restriction.d.ts.map +1 -0
  51. package/dist/parser/parse-restriction.js +149 -0
  52. package/dist/parser/parse-restriction.js.map +1 -0
  53. package/dist/parser/xml-parser.d.ts.map +1 -1
  54. package/dist/parser/xml-parser.js +2 -139
  55. package/dist/parser/xml-parser.js.map +1 -1
  56. package/package.json +5 -5
@@ -0,0 +1,43 @@
1
+ /**
2
+ * `xs:totalDigits` / `xs:fractionDigits` facet evaluation.
3
+ *
4
+ * Split out of `match-family.ts` (module-size budget) — used by both
5
+ * `matchBounds` there and `getBoundsMismatchReason` in `describe.ts`.
6
+ */
7
+ import type { IDSBoundsConstraint } from '../types.js';
8
+ /**
9
+ * Canonical fixed-point decimal string for a JS number (no scientific
10
+ * notation) — `xs:totalDigits`/`xs:fractionDigits` are defined over the
11
+ * lexical decimal form, and `String(1e-7)` would otherwise smuggle an
12
+ * `e` into the digit count.
13
+ */
14
+ export declare function toFixedDecimalString(num: number): string;
15
+ /**
16
+ * Count decimal digits per XSD §4.3.11/§4.3.12 facet semantics. The two
17
+ * facets treat leading fraction zeros DIFFERENTLY:
18
+ *
19
+ * - `fractionDigits` is `n` in value = i × 10⁻ⁿ: the count of digits
20
+ * after the decimal point, full stop. Leading zeros in the fraction
21
+ * DO count (`0.0025` → 4) since they fix the magnitude (`10⁻ⁿ`);
22
+ * only trailing zeros are insignificant (`1.4500` → 2).
23
+ * - `totalDigits` is the digit count of `i` in that same value = i ×
24
+ * 10⁻ⁿ. Leading zeros — in the integer part AND in the fraction
25
+ * before the first non-zero digit — are absorbed into the `10⁻ⁿ`
26
+ * scale factor and do NOT count (`0.0025 = 25 × 10⁻⁴` → 2, not 4).
27
+ * Trailing zeros in the fraction are still dropped (`0.250` → `25`
28
+ * → 2). Trailing zeros in the INTEGER part stay significant per the
29
+ * digit-count reading (`1000` → 4): only leading zeros are stripped.
30
+ */
31
+ export declare function countDecimalDigits(decimalStr: string): {
32
+ total: number;
33
+ fraction: number;
34
+ };
35
+ /**
36
+ * Whether `actualValue` satisfies a bounds constraint's
37
+ * totalDigits/fractionDigits facets. Exported so `describe.ts` can
38
+ * report which one actually rejected the value; `undefined` when
39
+ * neither facet is present (nothing to check) or the value isn't a
40
+ * valid decimal literal.
41
+ */
42
+ export declare function matchDigitFacets(constraint: Pick<IDSBoundsConstraint, 'totalDigits' | 'fractionDigits'>, actualValue: string | number | boolean): boolean | undefined;
43
+ //# sourceMappingURL=digit-facets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digit-facets.d.ts","sourceRoot":"","sources":["../../src/constraints/digit-facets.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGvD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAmBxD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB,CAaA;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,IAAI,CAAC,mBAAmB,EAAE,aAAa,GAAG,gBAAgB,CAAC,EACvE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GACrC,OAAO,GAAG,SAAS,CAmBrB"}
@@ -0,0 +1,89 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ import { isStrictNumericLiteral } from './comparators.js';
5
+ /**
6
+ * Canonical fixed-point decimal string for a JS number (no scientific
7
+ * notation) — `xs:totalDigits`/`xs:fractionDigits` are defined over the
8
+ * lexical decimal form, and `String(1e-7)` would otherwise smuggle an
9
+ * `e` into the digit count.
10
+ */
11
+ export function toFixedDecimalString(num) {
12
+ const str = String(num);
13
+ if (!/e/i.test(str))
14
+ return str;
15
+ const [mantissa, expStr] = str.split(/e/i);
16
+ const exp = parseInt(expStr, 10);
17
+ const neg = mantissa.startsWith('-');
18
+ const m = neg ? mantissa.slice(1) : mantissa;
19
+ const [intPart, fracPart = ''] = m.split('.');
20
+ const digits = intPart + fracPart;
21
+ const pointPos = intPart.length + exp;
22
+ let out;
23
+ if (pointPos <= 0) {
24
+ out = `0.${'0'.repeat(-pointPos)}${digits}`;
25
+ }
26
+ else if (pointPos >= digits.length) {
27
+ out = `${digits}${'0'.repeat(pointPos - digits.length)}`;
28
+ }
29
+ else {
30
+ out = `${digits.slice(0, pointPos)}.${digits.slice(pointPos)}`;
31
+ }
32
+ return neg ? `-${out}` : out;
33
+ }
34
+ /**
35
+ * Count decimal digits per XSD §4.3.11/§4.3.12 facet semantics. The two
36
+ * facets treat leading fraction zeros DIFFERENTLY:
37
+ *
38
+ * - `fractionDigits` is `n` in value = i × 10⁻ⁿ: the count of digits
39
+ * after the decimal point, full stop. Leading zeros in the fraction
40
+ * DO count (`0.0025` → 4) since they fix the magnitude (`10⁻ⁿ`);
41
+ * only trailing zeros are insignificant (`1.4500` → 2).
42
+ * - `totalDigits` is the digit count of `i` in that same value = i ×
43
+ * 10⁻ⁿ. Leading zeros — in the integer part AND in the fraction
44
+ * before the first non-zero digit — are absorbed into the `10⁻ⁿ`
45
+ * scale factor and do NOT count (`0.0025 = 25 × 10⁻⁴` → 2, not 4).
46
+ * Trailing zeros in the fraction are still dropped (`0.250` → `25`
47
+ * → 2). Trailing zeros in the INTEGER part stay significant per the
48
+ * digit-count reading (`1000` → 4): only leading zeros are stripped.
49
+ */
50
+ export function countDecimalDigits(decimalStr) {
51
+ const unsigned = decimalStr.replace(/^[+-]/, '');
52
+ const [intPartRaw, fracPartRaw = ''] = unsigned.split('.');
53
+ const fracTrimmed = fracPartRaw.replace(/0+$/, '');
54
+ const fraction = fracTrimmed.length;
55
+ // totalDigits: strip every leading zero — integer-part zeros AND any
56
+ // fraction zeros before the first significant digit — then count
57
+ // what's left of the (trailing-trimmed) digit string.
58
+ const totalTrimmed = (intPartRaw + fracTrimmed).replace(/^0+/, '');
59
+ const total = totalTrimmed.length === 0 ? 1 : totalTrimmed.length;
60
+ return { total, fraction };
61
+ }
62
+ /**
63
+ * Whether `actualValue` satisfies a bounds constraint's
64
+ * totalDigits/fractionDigits facets. Exported so `describe.ts` can
65
+ * report which one actually rejected the value; `undefined` when
66
+ * neither facet is present (nothing to check) or the value isn't a
67
+ * valid decimal literal.
68
+ */
69
+ export function matchDigitFacets(constraint, actualValue) {
70
+ if (constraint.totalDigits === undefined && constraint.fractionDigits === undefined) {
71
+ return undefined;
72
+ }
73
+ const decimalStr = typeof actualValue === 'number'
74
+ ? toFixedDecimalString(actualValue)
75
+ : String(actualValue);
76
+ // The digit facets are only meaningful against a decimal lexical
77
+ // form; a non-numeric string actual can never satisfy them.
78
+ if (!isStrictNumericLiteral(decimalStr))
79
+ return false;
80
+ const { total, fraction } = countDecimalDigits(decimalStr);
81
+ if (constraint.totalDigits !== undefined && total > constraint.totalDigits) {
82
+ return false;
83
+ }
84
+ if (constraint.fractionDigits !== undefined && fraction > constraint.fractionDigits) {
85
+ return false;
86
+ }
87
+ return true;
88
+ }
89
+ //# sourceMappingURL=digit-facets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digit-facets.js","sourceRoot":"","sources":["../../src/constraints/digit-facets.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"match-family.d.ts","sourceRoot":"","sources":["../../src/constraints/match-family.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,aAAa,EAKd,MAAM,aAAa,CAAC;AAarB,gEAAgE;AAChE,eAAO,MAAM,iBAAiB,WAAO,CAAC;AAEtC;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,aAAa,GACxB,SAAS,aAAa,EAAE,GAAG,SAAS,CAEtC;AAED,wBAAgB,cAAc,CAC5B,UAAU,EAAE,aAAa,EACzB,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EACtC,EAAE,EAAE,OAAO,GACV,OAAO,CAaT"}
1
+ {"version":3,"file":"match-family.d.ts","sourceRoot":"","sources":["../../src/constraints/match-family.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,aAAa,EAKd,MAAM,aAAa,CAAC;AAcrB,gEAAgE;AAChE,eAAO,MAAM,iBAAiB,WAAO,CAAC;AAEtC;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,aAAa,GACxB,SAAS,aAAa,EAAE,GAAG,SAAS,CAEtC;AAED,wBAAgB,cAAc,CAC5B,UAAU,EAAE,aAAa,EACzB,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EACtC,EAAE,EAAE,OAAO,GACV,OAAO,CAaT"}
@@ -4,6 +4,7 @@
4
4
  import { compareBoolean, compareNumeric, compareString, isStrictNumericLiteral, isBooleanLiteral, } from './comparators.js';
5
5
  import { isNumericXsdBase, isBooleanXsdBase } from './xsd-cast.js';
6
6
  import { translateXsdRegex } from './xsd-regex.js';
7
+ import { matchDigitFacets } from './digit-facets.js';
7
8
  /** Tolerance for the bounds matcher's exclusive comparators. */
8
9
  export const NUMERIC_TOLERANCE = 1e-6;
9
10
  /**
@@ -232,12 +233,14 @@ function matchBounds(constraint, actualValue) {
232
233
  return false;
233
234
  }
234
235
  // Length-only restrictions don't impose numeric bounds; if the
235
- // constraint also carries min/max we fall through to the numeric
236
- // check below (rare in practice).
236
+ // constraint also carries min/max/totalDigits/fractionDigits we
237
+ // fall through to the numeric check below (rare in practice).
237
238
  if (constraint.minInclusive === undefined &&
238
239
  constraint.maxInclusive === undefined &&
239
240
  constraint.minExclusive === undefined &&
240
- constraint.maxExclusive === undefined) {
241
+ constraint.maxExclusive === undefined &&
242
+ constraint.totalDigits === undefined &&
243
+ constraint.fractionDigits === undefined) {
241
244
  return true;
242
245
  }
243
246
  }
@@ -260,6 +263,9 @@ function matchBounds(constraint, actualValue) {
260
263
  if (constraint.maxExclusive !== undefined && num >= constraint.maxExclusive) {
261
264
  return false;
262
265
  }
266
+ const digitsOk = matchDigitFacets(constraint, actualValue);
267
+ if (digitsOk === false)
268
+ return false;
263
269
  return true;
264
270
  }
265
271
  //# sourceMappingURL=match-family.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"match-family.js","sourceRoot":"","sources":["../../src/constraints/match-family.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAmB/D,OAAO,EACL,cAAc,EACd,cAAc,EACd,aAAa,EAEb,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,gEAAgE;AAChE,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAEtC;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,UAAyB;IAEzB,OAAO,UAAU,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,UAAyB,EACzB,WAAsC,EACtC,EAAW;IAEX,QAAQ,UAAU,CAAC,IAAI,EAAE,CAAC;QACxB,KAAK,aAAa;YAChB,OAAO,gBAAgB,CAAC,UAAU,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;QACvD,KAAK,SAAS;YACZ,OAAO,YAAY,CAAC,UAAU,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;QACnD,KAAK,aAAa;YAChB,OAAO,gBAAgB,CAAC,UAAU,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;QACvD,KAAK,QAAQ;YACX,OAAO,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAC9C;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,sBAAsB,GAAG,IAAI,OAAO,EAA2B,CAAC;AAEtE,SAAS,sBAAsB,CAAC,UAA0B;IACxD,IAAI,SAAS,GAAG,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACvD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,SAAS;YACP,sBAAsB,CAAC,UAAU,CAAC,KAAK,CAAC;gBACxC,gBAAgB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACrC,sBAAsB,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CACvB,UAA0B,EAC1B,WAAsC,EACtC,eAAwB;IAExB,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC;IAClC,MAAM,YAAY,GAAG,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;IAC3E,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,YAAY,CAAC;IACpD,mEAAmE;IACnE,sEAAsE;IACtE,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,aAAa,GAAG,cAAc,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC5D,IAAI,aAAa,KAAK,SAAS;QAAE,OAAO,aAAa,CAAC;IACtD,MAAM,aAAa,GAAG,cAAc,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC5D,IAAI,aAAa,KAAK,SAAS;QAAE,OAAO,aAAa,CAAC;IACtD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CACnB,UAAgC,EAChC,WAAsC,EACtC,eAAe,GAAG,KAAK;IAEvB,uEAAuE;IACvE,wEAAwE;IACxE,iEAAiE;IACjE,yDAAyD;IACzD,iEAAiE;IACjE,qEAAqE;IACrE,qDAAqD;IACrD,EAAE;IACF,wEAAwE;IACxE,kEAAkE;IAClE,qEAAqE;IACrE,4DAA4D;IAC5D,wEAAwE;IACxE,+DAA+D;IAC/D,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QACpC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;IACvD,CAAC;SAAM,IAAI,OAAO,WAAW,KAAK,SAAS,EAAE,CAAC;QAC5C,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;IACvD,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IAEtC,MAAM,KAAK,GAAG,mBAAmB,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;IAC/D,oEAAoE;IACpE,sDAAsD;IACtD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC/C,CAAC;AAED;;;;;GAKG;AACH,MAAM,mBAAmB,GAAG,IAAI,OAAO,EAGpC,CAAC;AAEJ,SAAS,mBAAmB,CAC1B,UAAgC,EAChC,eAAwB;IAExB,IAAI,KAAK,GAAG,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,EAAE,CAAC;QACX,mBAAmB,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3C,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IACxB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,KAAK,GAAG,iBAAiB,CAAC,UAAU,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAC/D,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IACtB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CACxB,UAAkB,EAClB,eAAwB;IAExB,mEAAmE;IACnE,qEAAqE;IACrE,oEAAoE;IACpE,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,CACrC,0BAA0B,EAC1B,MAAM,CACP,CAAC;IACF,8DAA8D;IAC9D,mEAAmE;IACnE,sEAAsE;IACtE,MAAM,EAAE,OAAO,EAAE,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;IACpD,kEAAkE;IAClE,8DAA8D;IAC9D,mEAAmE;IACnE,mEAAmE;IACnE,yCAAyC;IACzC,MAAM,QAAQ,GAAG,OAAO,OAAO,IAAI,CAAC;IACpC,IAAI,CAAC;QACH,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,mEAAmE;QACnE,8DAA8D;QAC9D,mEAAmE;QACnE,IAAI,CAAC;YACH,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,eAAe,GAAG,IAAI,OAAO,EAGhC,CAAC;AAEJ,SAAS,gBAAgB,CAAC,UAAoC;IAK5D,IAAI,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC3C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;QAChC,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YAClC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YAC3B,IAAI,sBAAsB,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC;gBAAE,YAAY,GAAG,IAAI,CAAC;QAC5E,CAAC;QACD,IAAI,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;QACtC,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CACvB,UAAoC,EACpC,WAAsC,EACtC,eAAwB;IAExB,iEAAiE;IACjE,mEAAmE;IACnE,8DAA8D;IAC9D,mDAAmD;IACnD,MAAM,IAAI,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IACtC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,eAAe,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5E,kEAAkE;IAClE,kEAAkE;IAClE,IAAI,CAAC,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IAErC,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QAClC,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;QACpE,IAAI,YAAY,KAAK,SAAS;YAAE,OAAO,YAAY,CAAC;QACpD,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QACrD,IAAI,aAAa,KAAK,SAAS;YAAE,OAAO,aAAa,CAAC;QACtD,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QACrD,IAAI,aAAa,KAAK,SAAS;YAAE,OAAO,aAAa,CAAC;QACtD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAClB,UAA+B,EAC/B,WAAsC;IAEtC,iEAAiE;IACjE,oEAAoE;IACpE,8DAA8D;IAC9D,IACE,UAAU,CAAC,MAAM,KAAK,SAAS;QAC/B,UAAU,CAAC,SAAS,KAAK,SAAS;QAClC,UAAU,CAAC,SAAS,KAAK,SAAS,EAClC,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QAChC,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;YACxE,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,UAAU,CAAC,SAAS,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;YAC5E,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,UAAU,CAAC,SAAS,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;YAC5E,OAAO,KAAK,CAAC;QACf,CAAC;QACD,+DAA+D;QAC/D,iEAAiE;QACjE,kCAAkC;QAClC,IACE,UAAU,CAAC,YAAY,KAAK,SAAS;YACrC,UAAU,CAAC,YAAY,KAAK,SAAS;YACrC,UAAU,CAAC,YAAY,KAAK,SAAS;YACrC,UAAU,CAAC,YAAY,KAAK,SAAS,EACrC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GACP,OAAO,WAAW,KAAK,QAAQ;QAC7B,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IAEtC,IAAI,KAAK,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAE7B,IACE,UAAU,CAAC,YAAY,KAAK,SAAS;QACrC,GAAG,GAAG,UAAU,CAAC,YAAY,EAC7B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IACE,UAAU,CAAC,YAAY,KAAK,SAAS;QACrC,GAAG,GAAG,UAAU,CAAC,YAAY,EAC7B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,UAAU,CAAC,YAAY,KAAK,SAAS,IAAI,GAAG,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;QAC5E,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,UAAU,CAAC,YAAY,KAAK,SAAS,IAAI,GAAG,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;QAC5E,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"match-family.js","sourceRoot":"","sources":["../../src/constraints/match-family.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"xsd-cast.d.ts","sourceRoot":"","sources":["../../src/constraints/xsd-cast.ts"],"names":[],"mappings":"AAsBA;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,aAAmC,CAAC;AASrE;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GACtC,OAAO,CAGT;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAkCzE;AA4CD,uEAAuE;AACvE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAElE;AAED,yEAAyE;AACzE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAElE;AA6BD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,GACjC,SAAS,MAAM,EAAE,CAkDnB"}
1
+ {"version":3,"file":"xsd-cast.d.ts","sourceRoot":"","sources":["../../src/constraints/xsd-cast.ts"],"names":[],"mappings":"AAiCA;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,aAAmC,CAAC;AAMrE;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GACtC,OAAO,CAGT;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAoCzE;AA4CD,uEAAuE;AACvE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAElE;AAED,yEAAyE;AACzE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAElE;AA6BD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,GACjC,SAAS,MAAM,EAAE,CAkDnB"}
@@ -11,12 +11,19 @@
11
11
  * GENERATED REGEXES (`ids-lib.codegen/XmlSchema_XsTypesGenerator.cs`), and its
12
12
  * xs:double pattern is neither .NET nor XSD. It takes `+INF` (an XSD 1.1
13
13
  * spelling) while rejecting bare `INF` (the 1.0 one), and rejects `Infinity`
14
- * (the .NET one). Parity with upstream is the contract, so that is what these
15
- * arms implement. An IDS literal must cast successfully under at least one
16
- * of the slot's declared XSD types `xs:integer` rejects `42.0`,
14
+ * (the .NET one). Parity with upstream is the contract for the NUMERIC arms,
15
+ * where that pattern is the only statement of what upstream accepts, so that
16
+ * is what they implement. An IDS literal must cast successfully under at least
17
+ * one of the slot's declared XSD types — `xs:integer` rejects `42.0`,
17
18
  * `xs:double` accepts either, etc.
19
+ *
20
+ * Parity is not a licence to accept a value XSD excludes. The date family
21
+ * rejects the calendar-invalid values (`2023-02-29`) a shape-only regex takes,
22
+ * the same call this file already makes for the digitless doubles (#3336,
23
+ * #3721).
18
24
  */
19
25
  import { isWhollyNumeric } from '@ifc-lite/encoding';
26
+ import { isValidXsdDateTimeLiteral, isXsdDateTimeBase, } from './xsd-datetime.js';
20
27
  /**
21
28
  * The specials upstream's xs:double pattern accepts, spelled exactly as it
22
29
  * spells them:
@@ -28,8 +35,6 @@ import { isWhollyNumeric } from '@ifc-lite/encoding';
28
35
  */
29
36
  export const XSD_NUMERIC_SPECIALS = new Set(['NaN', '+INF', '-INF']);
30
37
  const INTEGER_RE = /^[+-]?\d+$/;
31
- const DATE_RE = /^\d{4}-\d{2}-\d{2}(Z|[+-]\d{2}:\d{2})?$/;
32
- const DATETIME_RE = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}:\d{2})?$/;
33
38
  const DURATION_RE = /^-?P(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+(?:\.\d+)?S)?)?$/;
34
39
  /**
35
40
  * Returns true iff the IDS literal `value` casts successfully under at
@@ -43,6 +48,13 @@ export function literalCastsUnderAnyType(value, xsdTypes) {
43
48
  return xsdTypes.some((t) => literalCastsUnder(value, t));
44
49
  }
45
50
  export function literalCastsUnder(value, xsdType) {
51
+ // Ahead of the switch so coverage of the date family is the shared guard's
52
+ // answer, not a list of case labels. `xs:date` and `xs:dateTime` had labels
53
+ // and `xs:time` did not, so every literal cast under an
54
+ // `["xs:dateTime","xs:time"]` slot (`IfcTimeSeries.StartTime`) satisfied the
55
+ // gate through `xs:time`'s permissive default (#3721).
56
+ if (isXsdDateTimeBase(xsdType))
57
+ return isValidXsdDateTimeLiteral(value, xsdType);
46
58
  switch (xsdType) {
47
59
  case 'xs:integer':
48
60
  return INTEGER_RE.test(value);
@@ -64,10 +76,6 @@ export function literalCastsUnder(value, xsdType) {
64
76
  return isWhollyNumeric(value) || XSD_NUMERIC_SPECIALS.has(value);
65
77
  case 'xs:boolean':
66
78
  return value === 'true' || value === 'false';
67
- case 'xs:date':
68
- return DATE_RE.test(value);
69
- case 'xs:dateTime':
70
- return DATETIME_RE.test(value);
71
79
  case 'xs:duration':
72
80
  return DURATION_RE.test(value);
73
81
  case 'xs:string':
@@ -1 +1 @@
1
- {"version":3,"file":"xsd-cast.js","sourceRoot":"","sources":["../../src/constraints/xsd-cast.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xsd-cast.js","sourceRoot":"","sources":["../../src/constraints/xsd-cast.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /** The XSD bases whose value space this module decides. */
2
+ export type XsdDateTimeBase = 'xs:date' | 'xs:dateTime' | 'xs:time';
3
+ /**
4
+ * Both callers dispatch on this rather than listing the bases themselves, so
5
+ * the set of bases that get a calendar check is stated once, next to the
6
+ * calendar. `xs:time` reaching a caller that enumerated only the other two is
7
+ * not hypothetical: `IfcTimeSeries.StartTime` declares
8
+ * `["xs:dateTime","xs:time"]`.
9
+ */
10
+ export declare function isXsdDateTimeBase(base: string): base is XsdDateTimeBase;
11
+ /**
12
+ * Whether `value` is in the value space of `base` — both its lexical shape and
13
+ * the calendar constraints XSD states on top of that shape.
14
+ */
15
+ export declare function isValidXsdDateTimeLiteral(value: string, base: XsdDateTimeBase): boolean;
16
+ //# sourceMappingURL=xsd-datetime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xsd-datetime.d.ts","sourceRoot":"","sources":["../../src/constraints/xsd-datetime.ts"],"names":[],"mappings":"AA2BA,2DAA2D;AAC3D,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,CAAC;AAEpE;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,eAAe,CAEvE;AAsED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,eAAe,GACpB,OAAO,CAwBT"}
@@ -0,0 +1,118 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ /**
5
+ * The `xs:date` / `xs:dateTime` / `xs:time` value space (#3721).
6
+ *
7
+ * A regex over digit RUNS decides the lexical shape and nothing else, so
8
+ * `^\d{4}-\d{2}-\d{2}$` accepts `2024-13-45` and `2023-02-29`. XML Schema
9
+ * Part 2 §3.2.7-3.2.9 layers a calendar value space on top of that shape:
10
+ * month 1-12, day within that month under the Gregorian leap rule,
11
+ * hour/minute/second in range with `24:00:00` as the only hour-24 form, and a
12
+ * timezone offset no further out than ±14:00. XSD 1.1's own `explicitPattern`
13
+ * for these types encodes every one of those bounds except day-in-month, which
14
+ * it states as an assertion because no regex can express it.
15
+ *
16
+ * Three places decide the same question — the coherence audit's
17
+ * `xs:restriction @base` check, the facets' strict-cast gate, and (through the
18
+ * first) the `info/date` conformance check in `audit/xsd/index.ts` — so the
19
+ * calendar lives here once instead of in a regex table per caller. Two files
20
+ * import this module; the third consumer arrives through
21
+ * `isValidLexicalForXsType`, which is why the count is not the import count.
22
+ */
23
+ /** Hour 24 is end-of-day, so any fractional seconds on it must be zero. */
24
+ const ALL_ZERO_FRACTION = /^0+$/;
25
+ /**
26
+ * Both callers dispatch on this rather than listing the bases themselves, so
27
+ * the set of bases that get a calendar check is stated once, next to the
28
+ * calendar. `xs:time` reaching a caller that enumerated only the other two is
29
+ * not hypothetical: `IfcTimeSeries.StartTime` declares
30
+ * `["xs:dateTime","xs:time"]`.
31
+ */
32
+ export function isXsdDateTimeBase(base) {
33
+ return base === 'xs:date' || base === 'xs:dateTime' || base === 'xs:time';
34
+ }
35
+ /**
36
+ * Lexical shapes, deliberately no wider than the regexes they replace: a
37
+ * four-digit unsigned year, so the SIGNED spelling for years before 1 CE
38
+ * (`-2024-…`) and the five-digit spelling after 9999 (`10000-…`) stay rejected
39
+ * exactly as they already were. Every quantifier has a fixed length except the
40
+ * fractional second, which is followed only by characters it cannot match, so
41
+ * no input backtracks (#3113).
42
+ *
43
+ * NOT rejected, and this is a PRE-EXISTING gap rather than something this
44
+ * module introduces or fixes: year `0000`. `ids.xsd` is XSD 1.0, which
45
+ * prohibits `0000` outright, and libxml2 duly rejects `0000-01-01`; the old
46
+ * regex accepted it and so does this, because `\d{4}` matches. Measured by
47
+ * differential against libxml2 over 11,261 values: 366 disagreements, ALL of
48
+ * them year 0000, every one of them accepted by the old regex too. Widening
49
+ * the year rule is a separate change with its own upstream-parity question, so
50
+ * it is named here rather than folded into a calendar fix.
51
+ */
52
+ const DATE_RE = /^(\d{4})-(\d{2})-(\d{2})(Z|[+-]\d{2}:\d{2})?$/;
53
+ const DATE_TIME_RE = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?(Z|[+-]\d{2}:\d{2})?$/;
54
+ const TIME_RE = /^(\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?(Z|[+-]\d{2}:\d{2})?$/;
55
+ const DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
56
+ function isLeapYear(year) {
57
+ return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
58
+ }
59
+ function isCalendarDate(year, month, day) {
60
+ if (month < 1 || month > 12)
61
+ return false;
62
+ const last = month === 2 && isLeapYear(year) ? 29 : DAYS_IN_MONTH[month - 1];
63
+ return day >= 1 && day <= last;
64
+ }
65
+ /**
66
+ * `24:00:00` is the end-of-day form XSD allows (it denotes the next day's
67
+ * `00:00:00`), and it is the ONLY hour-24 lexeme: minutes, seconds and any
68
+ * fractional digits must all be zero. Second 60 is never allowed — XSD has no
69
+ * leap seconds.
70
+ */
71
+ function isClockTime(hour, minute, second, fraction) {
72
+ if (hour === 24) {
73
+ return (minute === 0 &&
74
+ second === 0 &&
75
+ (fraction === undefined || ALL_ZERO_FRACTION.test(fraction)));
76
+ }
77
+ return hour <= 23 && minute <= 59 && second <= 59;
78
+ }
79
+ /**
80
+ * `Z`, or an offset within ±14:00 inclusive — at 14 hours the minutes must be
81
+ * zero, which is why this is a comparison and not two independent ranges.
82
+ */
83
+ function isTimezoneOffset(tz) {
84
+ if (tz === undefined || tz === 'Z')
85
+ return true;
86
+ const hours = Number(tz.slice(1, 3));
87
+ const minutes = Number(tz.slice(4, 6));
88
+ if (minutes > 59)
89
+ return false;
90
+ return hours < 14 || (hours === 14 && minutes === 0);
91
+ }
92
+ /**
93
+ * Whether `value` is in the value space of `base` — both its lexical shape and
94
+ * the calendar constraints XSD states on top of that shape.
95
+ */
96
+ export function isValidXsdDateTimeLiteral(value, base) {
97
+ if (base === 'xs:time') {
98
+ const m = TIME_RE.exec(value);
99
+ if (!m)
100
+ return false;
101
+ return (isClockTime(Number(m[1]), Number(m[2]), Number(m[3]), m[4]) &&
102
+ isTimezoneOffset(m[5]));
103
+ }
104
+ if (base === 'xs:date') {
105
+ const m = DATE_RE.exec(value);
106
+ if (!m)
107
+ return false;
108
+ return (isCalendarDate(Number(m[1]), Number(m[2]), Number(m[3])) &&
109
+ isTimezoneOffset(m[4]));
110
+ }
111
+ const m = DATE_TIME_RE.exec(value);
112
+ if (!m)
113
+ return false;
114
+ return (isCalendarDate(Number(m[1]), Number(m[2]), Number(m[3])) &&
115
+ isClockTime(Number(m[4]), Number(m[5]), Number(m[6]), m[7]) &&
116
+ isTimezoneOffset(m[8]));
117
+ }
118
+ //# sourceMappingURL=xsd-datetime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xsd-datetime.js","sourceRoot":"","sources":["../../src/constraints/xsd-datetime.ts"],"names":[],"mappings":"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"}
@@ -163,10 +163,18 @@ function getAttributeValue(attrName, expressId, accessor) {
163
163
  return accessor.getEntityName(expressId);
164
164
  case 'description':
165
165
  return accessor.getDescription(expressId);
166
- case 'objecttype':
167
- return accessor.getObjectType(expressId);
168
166
  case 'globalid':
169
167
  return accessor.getGlobalId(expressId);
168
+ // Deliberately NOT `case 'objecttype'`: `accessor.getObjectType` is the
169
+ // PredefinedType USERDEFINED-fallback helper (its own doc: "entity
170
+ // object type (predefined type)"), not the literal IFC `ObjectType`
171
+ // attribute. For an entity whose raw PredefinedType is a concrete,
172
+ // non-USERDEFINED, non-NOTDEFINED enum token (e.g. `STANDARD`), that
173
+ // helper returns the enum token — never the entity's actual ObjectType
174
+ // text — so an `<attribute><name>ObjectType</name></attribute>`
175
+ // requirement was silently checked against the wrong IFC attribute.
176
+ // Route it through the generic accessor instead, same as any other
177
+ // named attribute.
170
178
  default:
171
179
  // Try generic attribute access
172
180
  return accessor.getAttribute(expressId, attrName);
@@ -1 +1 @@
1
- {"version":3,"file":"attribute-facet.js","sourceRoot":"","sources":["../../src/facets/attribute-facet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attribute-facet.js","sourceRoot":"","sources":["../../src/facets/attribute-facet.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,18 @@ import type { IDSEntityFacet, IDSConstraint, IFCDataAccessor } from '../types.js
5
5
  import type { FacetCheckResult } from './index.js';
6
6
  /**
7
7
  * Check if an entity matches an entity facet
8
+ *
9
+ * Deliberately exact-match, not subtype-aware: buildingSMART's IDS spec is
10
+ * explicit that entity facet matching has no automatic inheritance —
11
+ * `Documentation/UserManual/entity-facet.md` (buildingSMART/IDS) says "There
12
+ * is no automatic inheritance in IDS entity facet interpretation. In other
13
+ * words, all the entities need to be listed explicitly. […] to create a
14
+ * requirement applicable to all IfcElement objects, one should list all
15
+ * IfcElement sub-entities, such as IfcWall, IfcDoor, etc. Also, the
16
+ * IfcElement should not be listed, as it is an abstract entity […] and would
17
+ * not appear in a model." Do not "fix" this into a descendant-closure match
18
+ * the way `@ifc-lite/parser`'s `expandTypes` (a different, non-IDS query
19
+ * surface) does — that would make this checker non-conformant.
8
20
  */
9
21
  export declare function checkEntityFacet(facet: IDSEntityFacet, expressId: number, accessor: IFCDataAccessor): FacetCheckResult;
10
22
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"entity-facet.d.ts","sourceRoot":"","sources":["../../src/facets/entity-facet.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,eAAe,EAChB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA4CnD;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,eAAe,GACxB,gBAAgB,CAsGlB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,eAAe,GACxB,OAAO,CA+BT;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,eAAe,GACxB,MAAM,EAAE,GAAG,SAAS,CAuCtB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,aAAa,EACzB,QAAQ,EAAE,MAAM,EAAE,GACjB,MAAM,EAAE,CA0BV"}
1
+ {"version":3,"file":"entity-facet.d.ts","sourceRoot":"","sources":["../../src/facets/entity-facet.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,eAAe,EAChB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA4CnD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,eAAe,GACxB,gBAAgB,CAsGlB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,eAAe,GACxB,OAAO,CA+BT;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,eAAe,GACxB,MAAM,EAAE,GAAG,SAAS,CAuCtB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,aAAa,EACzB,QAAQ,EAAE,MAAM,EAAE,GACjB,MAAM,EAAE,CA0BV"}
@@ -43,6 +43,18 @@ function matchesIfc2x3Mapping(facet, entityType, expressId, accessor) {
43
43
  }
44
44
  /**
45
45
  * Check if an entity matches an entity facet
46
+ *
47
+ * Deliberately exact-match, not subtype-aware: buildingSMART's IDS spec is
48
+ * explicit that entity facet matching has no automatic inheritance —
49
+ * `Documentation/UserManual/entity-facet.md` (buildingSMART/IDS) says "There
50
+ * is no automatic inheritance in IDS entity facet interpretation. In other
51
+ * words, all the entities need to be listed explicitly. […] to create a
52
+ * requirement applicable to all IfcElement objects, one should list all
53
+ * IfcElement sub-entities, such as IfcWall, IfcDoor, etc. Also, the
54
+ * IfcElement should not be listed, as it is an abstract entity […] and would
55
+ * not appear in a model." Do not "fix" this into a descendant-closure match
56
+ * the way `@ifc-lite/parser`'s `expandTypes` (a different, non-IDS query
57
+ * surface) does — that would make this checker non-conformant.
46
58
  */
47
59
  export function checkEntityFacet(facet, expressId, accessor) {
48
60
  const entityType = accessor.getEntityType(expressId);
@@ -1 +1 @@
1
- {"version":3,"file":"entity-facet.js","sourceRoot":"","sources":["../../src/facets/entity-facet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity-facet.js","sourceRoot":"","sources":["../../src/facets/entity-facet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * `<xs:restriction>` element parsing — split out of `xml-parser.ts`
3
+ * (module-size budget).
4
+ */
5
+ import type { IDSConstraint } from '../types.js';
6
+ /**
7
+ * Parse XSD restriction element.
8
+ *
9
+ * XSD facets inside one `<xs:restriction>` are conjunctive — a value
10
+ * must satisfy every one. `parseRestrictionFamilies` yields one
11
+ * `IDSConstraint` per facet family present (pattern, enumeration,
12
+ * bounds/length); this joins them, keeping the first as the primary so
13
+ * every existing `switch (constraint.type)` in `audit/`, `translation/`
14
+ * and the facet checkers keeps seeing the shape it already handles, and
15
+ * hanging the rest off `and` for `matchConstraint` to require as well.
16
+ */
17
+ export declare function parseRestriction(el: Element): IDSConstraint;
18
+ //# sourceMappingURL=parse-restriction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-restriction.d.ts","sourceRoot":"","sources":["../../src/parser/parse-restriction.ts"],"names":[],"mappings":"AAIA;;;GAGG;AAEH,OAAO,KAAK,EACV,aAAa,EAId,MAAM,aAAa,CAAC;AAWrB;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,OAAO,GAAG,aAAa,CAY3D"}