@ifc-lite/ids 3.1.0 → 3.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/README.md +10 -1
  2. package/dist/audit/coherence/cardinality.js +4 -1
  3. package/dist/audit/coherence/cardinality.js.map +1 -1
  4. package/dist/audit/coherence/index.d.ts +0 -1
  5. package/dist/audit/coherence/index.d.ts.map +1 -1
  6. package/dist/audit/coherence/index.js +59 -45
  7. package/dist/audit/coherence/index.js.map +1 -1
  8. package/dist/audit/coherence/regex.d.ts +3 -3
  9. package/dist/audit/coherence/regex.js +3 -3
  10. package/dist/audit/ifc-schema/attribute-value.d.ts +19 -0
  11. package/dist/audit/ifc-schema/attribute-value.d.ts.map +1 -0
  12. package/dist/audit/ifc-schema/attribute-value.js +71 -0
  13. package/dist/audit/ifc-schema/attribute-value.js.map +1 -0
  14. package/dist/audit/ifc-schema/datatype-check.d.ts +9 -1
  15. package/dist/audit/ifc-schema/datatype-check.d.ts.map +1 -1
  16. package/dist/audit/ifc-schema/datatype-check.js +24 -2
  17. package/dist/audit/ifc-schema/datatype-check.js.map +1 -1
  18. package/dist/audit/ifc-schema/entity-requirement.d.ts +21 -0
  19. package/dist/audit/ifc-schema/entity-requirement.d.ts.map +1 -0
  20. package/dist/audit/ifc-schema/entity-requirement.js +45 -0
  21. package/dist/audit/ifc-schema/entity-requirement.js.map +1 -0
  22. package/dist/audit/ifc-schema/index.d.ts.map +1 -1
  23. package/dist/audit/ifc-schema/index.js +105 -19
  24. package/dist/audit/ifc-schema/index.js.map +1 -1
  25. package/dist/audit/index.d.ts.map +1 -1
  26. package/dist/audit/index.js +8 -2
  27. package/dist/audit/index.js.map +1 -1
  28. package/dist/audit/parser-shim.d.ts +15 -1
  29. package/dist/audit/parser-shim.d.ts.map +1 -1
  30. package/dist/audit/parser-shim.js +2 -2
  31. package/dist/audit/parser-shim.js.map +1 -1
  32. package/dist/audit/structural/index.d.ts +3 -1
  33. package/dist/audit/structural/index.d.ts.map +1 -1
  34. package/dist/audit/structural/index.js +48 -179
  35. package/dist/audit/structural/index.js.map +1 -1
  36. package/dist/audit/structural/shapes.d.ts +47 -0
  37. package/dist/audit/structural/shapes.d.ts.map +1 -0
  38. package/dist/audit/structural/shapes.js +185 -0
  39. package/dist/audit/structural/shapes.js.map +1 -0
  40. package/dist/audit/types.d.ts +9 -1
  41. package/dist/audit/types.d.ts.map +1 -1
  42. package/dist/audit/xsd/index.js +1 -1
  43. package/dist/audit/xsd/index.js.map +1 -1
  44. package/dist/bounded-cache.d.ts +18 -0
  45. package/dist/bounded-cache.d.ts.map +1 -0
  46. package/dist/bounded-cache.js +40 -0
  47. package/dist/bounded-cache.js.map +1 -0
  48. package/dist/bridge/data-accessor.d.ts.map +1 -1
  49. package/dist/bridge/data-accessor.js +49 -25
  50. package/dist/bridge/data-accessor.js.map +1 -1
  51. package/dist/bridge/index.d.ts +1 -0
  52. package/dist/bridge/index.d.ts.map +1 -1
  53. package/dist/bridge/index.js +1 -0
  54. package/dist/bridge/index.js.map +1 -1
  55. package/dist/bridge/measure-conversion.d.ts +51 -0
  56. package/dist/bridge/measure-conversion.d.ts.map +1 -0
  57. package/dist/bridge/measure-conversion.js +106 -0
  58. package/dist/bridge/measure-conversion.js.map +1 -0
  59. package/dist/bridge/predefined-property-sets.d.ts +24 -0
  60. package/dist/bridge/predefined-property-sets.d.ts.map +1 -0
  61. package/dist/bridge/predefined-property-sets.js +86 -0
  62. package/dist/bridge/predefined-property-sets.js.map +1 -0
  63. package/dist/bridge/predefined-types.d.ts +34 -13
  64. package/dist/bridge/predefined-types.d.ts.map +1 -1
  65. package/dist/bridge/predefined-types.js +40 -71
  66. package/dist/bridge/predefined-types.js.map +1 -1
  67. package/dist/bridge/project-property.d.ts +43 -0
  68. package/dist/bridge/project-property.d.ts.map +1 -0
  69. package/dist/bridge/project-property.js +60 -0
  70. package/dist/bridge/project-property.js.map +1 -0
  71. package/dist/bridge/properties.d.ts +4 -3
  72. package/dist/bridge/properties.d.ts.map +1 -1
  73. package/dist/bridge/properties.js +64 -111
  74. package/dist/bridge/properties.js.map +1 -1
  75. package/dist/bridge/property-overlay-resolver.d.ts +10 -0
  76. package/dist/bridge/property-overlay-resolver.d.ts.map +1 -1
  77. package/dist/bridge/property-overlay-resolver.js +53 -4
  78. package/dist/bridge/property-overlay-resolver.js.map +1 -1
  79. package/dist/bridge/units.d.ts +49 -20
  80. package/dist/bridge/units.d.ts.map +1 -1
  81. package/dist/bridge/units.js +134 -84
  82. package/dist/bridge/units.js.map +1 -1
  83. package/dist/constraint-types.d.ts +30 -14
  84. package/dist/constraint-types.d.ts.map +1 -1
  85. package/dist/constraints/comparators.d.ts +4 -1
  86. package/dist/constraints/comparators.d.ts.map +1 -1
  87. package/dist/constraints/comparators.js +6 -1
  88. package/dist/constraints/comparators.js.map +1 -1
  89. package/dist/constraints/describe.d.ts.map +1 -1
  90. package/dist/constraints/describe.js +67 -21
  91. package/dist/constraints/describe.js.map +1 -1
  92. package/dist/constraints/match-bounds.d.ts +25 -0
  93. package/dist/constraints/match-bounds.d.ts.map +1 -0
  94. package/dist/constraints/match-bounds.js +112 -0
  95. package/dist/constraints/match-bounds.js.map +1 -0
  96. package/dist/constraints/match-family.d.ts.map +1 -1
  97. package/dist/constraints/match-family.js +25 -90
  98. package/dist/constraints/match-family.js.map +1 -1
  99. package/dist/constraints/xsd-datetime.js +6 -6
  100. package/dist/constraints/xsd-examples.d.ts +20 -0
  101. package/dist/constraints/xsd-examples.d.ts.map +1 -0
  102. package/dist/constraints/xsd-examples.js +187 -0
  103. package/dist/constraints/xsd-examples.js.map +1 -0
  104. package/dist/constraints/xsd-lexical.d.ts +2 -0
  105. package/dist/constraints/xsd-lexical.d.ts.map +1 -0
  106. package/dist/constraints/xsd-lexical.js +49 -0
  107. package/dist/constraints/xsd-lexical.js.map +1 -0
  108. package/dist/constraints/xsd-order.d.ts +33 -0
  109. package/dist/constraints/xsd-order.d.ts.map +1 -0
  110. package/dist/constraints/xsd-order.js +211 -0
  111. package/dist/constraints/xsd-order.js.map +1 -0
  112. package/dist/constraints/xsd-regex-ast.d.ts +37 -0
  113. package/dist/constraints/xsd-regex-ast.d.ts.map +1 -0
  114. package/dist/constraints/xsd-regex-ast.js +137 -0
  115. package/dist/constraints/xsd-regex-ast.js.map +1 -0
  116. package/dist/constraints/xsd-regex-blocks.d.ts +7 -0
  117. package/dist/constraints/xsd-regex-blocks.d.ts.map +1 -0
  118. package/dist/constraints/xsd-regex-blocks.js +68 -0
  119. package/dist/constraints/xsd-regex-blocks.js.map +1 -0
  120. package/dist/constraints/xsd-regex.d.ts +2 -45
  121. package/dist/constraints/xsd-regex.d.ts.map +1 -1
  122. package/dist/constraints/xsd-regex.js +231 -134
  123. package/dist/constraints/xsd-regex.js.map +1 -1
  124. package/dist/facets/entity-facet.d.ts.map +1 -1
  125. package/dist/facets/entity-facet.js +4 -1
  126. package/dist/facets/entity-facet.js.map +1 -1
  127. package/dist/facets/partof-facet.d.ts.map +1 -1
  128. package/dist/facets/partof-facet.js +80 -19
  129. package/dist/facets/partof-facet.js.map +1 -1
  130. package/dist/facets/predefined-type-match.d.ts +8 -3
  131. package/dist/facets/predefined-type-match.d.ts.map +1 -1
  132. package/dist/facets/predefined-type-match.js.map +1 -1
  133. package/dist/index.d.ts +9 -2
  134. package/dist/index.d.ts.map +1 -1
  135. package/dist/index.js +24 -0
  136. package/dist/index.js.map +1 -1
  137. package/dist/parser/dom.d.ts +4 -0
  138. package/dist/parser/dom.d.ts.map +1 -1
  139. package/dist/parser/dom.js +5 -0
  140. package/dist/parser/dom.js.map +1 -1
  141. package/dist/parser/parse-restriction.d.ts.map +1 -1
  142. package/dist/parser/parse-restriction.js +32 -14
  143. package/dist/parser/parse-restriction.js.map +1 -1
  144. package/dist/parser/xml-parser.d.ts +7 -4
  145. package/dist/parser/xml-parser.d.ts.map +1 -1
  146. package/dist/parser/xml-parser.js +30 -45
  147. package/dist/parser/xml-parser.js.map +1 -1
  148. package/dist/preview/audit.d.ts +16 -0
  149. package/dist/preview/audit.d.ts.map +1 -0
  150. package/dist/preview/audit.js +58 -0
  151. package/dist/preview/audit.js.map +1 -0
  152. package/dist/preview/features.d.ts +30 -0
  153. package/dist/preview/features.d.ts.map +1 -0
  154. package/dist/preview/features.js +96 -0
  155. package/dist/preview/features.js.map +1 -0
  156. package/dist/preview/parse-ids11.d.ts +9 -0
  157. package/dist/preview/parse-ids11.d.ts.map +1 -0
  158. package/dist/preview/parse-ids11.js +90 -0
  159. package/dist/preview/parse-ids11.js.map +1 -0
  160. package/dist/preview/partof-nested.d.ts +27 -0
  161. package/dist/preview/partof-nested.d.ts.map +1 -0
  162. package/dist/preview/partof-nested.js +61 -0
  163. package/dist/preview/partof-nested.js.map +1 -0
  164. package/dist/preview/tolerance.d.ts +15 -0
  165. package/dist/preview/tolerance.d.ts.map +1 -0
  166. package/dist/preview/tolerance.js +66 -0
  167. package/dist/preview/tolerance.js.map +1 -0
  168. package/dist/preview/types.d.ts +67 -0
  169. package/dist/preview/types.d.ts.map +1 -0
  170. package/dist/preview/types.js +5 -0
  171. package/dist/preview/types.js.map +1 -0
  172. package/dist/report-types.d.ts +7 -0
  173. package/dist/report-types.d.ts.map +1 -1
  174. package/dist/translation/describe-constraint.js +16 -14
  175. package/dist/translation/describe-constraint.js.map +1 -1
  176. package/dist/translation/locales/de.d.ts +2 -0
  177. package/dist/translation/locales/de.d.ts.map +1 -1
  178. package/dist/translation/locales/de.js +2 -0
  179. package/dist/translation/locales/de.js.map +1 -1
  180. package/dist/translation/locales/en.d.ts +2 -0
  181. package/dist/translation/locales/en.d.ts.map +1 -1
  182. package/dist/translation/locales/en.js +2 -0
  183. package/dist/translation/locales/en.js.map +1 -1
  184. package/dist/translation/locales/fr.d.ts +2 -0
  185. package/dist/translation/locales/fr.d.ts.map +1 -1
  186. package/dist/translation/locales/fr.js +2 -0
  187. package/dist/translation/locales/fr.js.map +1 -1
  188. package/dist/translation/locales/index.d.ts +1 -0
  189. package/dist/translation/locales/index.d.ts.map +1 -1
  190. package/dist/translation/locales/index.js +1 -0
  191. package/dist/translation/locales/index.js.map +1 -1
  192. package/dist/translation/locales/it.d.ts +198 -0
  193. package/dist/translation/locales/it.d.ts.map +1 -0
  194. package/dist/translation/locales/it.js +235 -0
  195. package/dist/translation/locales/it.js.map +1 -0
  196. package/dist/translation/service.d.ts +2 -6
  197. package/dist/translation/service.d.ts.map +1 -1
  198. package/dist/translation/service.js +17 -25
  199. package/dist/translation/service.js.map +1 -1
  200. package/dist/types.d.ts +26 -31
  201. package/dist/types.d.ts.map +1 -1
  202. package/dist/validation/format-failure-reason.js +1 -1
  203. package/dist/validation/format-failure-reason.js.map +1 -1
  204. package/dist/validation/pass-rate.d.ts +14 -0
  205. package/dist/validation/pass-rate.d.ts.map +1 -0
  206. package/dist/validation/pass-rate.js +25 -0
  207. package/dist/validation/pass-rate.js.map +1 -0
  208. package/dist/validation/prohibited-specification.d.ts +31 -0
  209. package/dist/validation/prohibited-specification.d.ts.map +1 -0
  210. package/dist/validation/prohibited-specification.js +25 -0
  211. package/dist/validation/prohibited-specification.js.map +1 -0
  212. package/dist/validation/validator.d.ts +4 -2
  213. package/dist/validation/validator.d.ts.map +1 -1
  214. package/dist/validation/validator.js +23 -18
  215. package/dist/validation/validator.js.map +1 -1
  216. package/dist/writer/constraint.d.ts +8 -0
  217. package/dist/writer/constraint.d.ts.map +1 -0
  218. package/dist/writer/constraint.js +142 -0
  219. package/dist/writer/constraint.js.map +1 -0
  220. package/dist/writer/index.d.ts +48 -0
  221. package/dist/writer/index.d.ts.map +1 -0
  222. package/dist/writer/index.js +209 -0
  223. package/dist/writer/index.js.map +1 -0
  224. package/dist/writer/xml-lines.d.ts +17 -0
  225. package/dist/writer/xml-lines.d.ts.map +1 -0
  226. package/dist/writer/xml-lines.js +69 -0
  227. package/dist/writer/xml-lines.js.map +1 -0
  228. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"units.js","sourceRoot":"","sources":["../../src/bridge/units.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"units.js","sourceRoot":"","sources":["../../src/bridge/units.ts"],"names":[],"mappings":"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"}
@@ -7,12 +7,15 @@
7
7
  * re-export.
8
8
  */
9
9
  /** Union of all constraint types */
10
+ import type { IDS11ToleranceRule } from './preview/types.js';
10
11
  export type IDSConstraint = IDSSimpleValue | IDSPatternConstraint | IDSEnumerationConstraint | IDSBoundsConstraint;
11
12
  /** Simple value - exact match */
12
13
  export interface IDSSimpleValue {
13
14
  type: 'simpleValue';
14
15
  /** The exact value to match */
15
16
  value: string;
17
+ /** IDS 1.1 PREVIEW (#418): numeric tolerance rule; unset means IDS 1.0. */
18
+ toleranceRule?: IDS11ToleranceRule;
16
19
  }
17
20
  /** Pattern constraint - regex match */
18
21
  export interface IDSPatternConstraint {
@@ -35,9 +38,8 @@ export interface IDSPatternConstraint {
35
38
  * overwhelmingly common single-family restriction. Matching
36
39
  * (`matchConstraint`) and the two description paths
37
40
  * (`formatConstraint`, `TranslationService.describeConstraint`)
38
- * account for it. The IDS-document auditors under `audit/` still
39
- * inspect only the primary family, so a malformed regex or an
40
- * inverted bound in a sibling is not linted.
41
+ * account for it, and so do the IDS-document auditors under `audit/`
42
+ * (coherence and predefined-type checks visit every sibling, IDS-010).
41
43
  */
42
44
  and?: readonly IDSConstraint[];
43
45
  }
@@ -46,6 +48,8 @@ export interface IDSEnumerationConstraint {
46
48
  type: 'enumeration';
47
49
  /** List of allowed values */
48
50
  values: string[];
51
+ /** IDS 1.1 PREVIEW (#418): numeric tolerance rule; unset means IDS 1.0. */
52
+ toleranceRule?: IDS11ToleranceRule;
49
53
  /**
50
54
  * The originating `xs:restriction @base` (e.g. `xs:string`,
51
55
  * `xs:integer`). Set when the constraint came from an
@@ -62,9 +66,8 @@ export interface IDSEnumerationConstraint {
62
66
  * overwhelmingly common single-family restriction. Matching
63
67
  * (`matchConstraint`) and the two description paths
64
68
  * (`formatConstraint`, `TranslationService.describeConstraint`)
65
- * account for it. The IDS-document auditors under `audit/` still
66
- * inspect only the primary family, so a malformed regex or an
67
- * inverted bound in a sibling is not linted.
69
+ * account for it, and so do the IDS-document auditors under `audit/`
70
+ * (coherence and predefined-type checks visit every sibling, IDS-010).
68
71
  */
69
72
  and?: readonly IDSConstraint[];
70
73
  }
@@ -105,17 +108,30 @@ export interface IDSBoundsConstraint {
105
108
  * overwhelmingly common single-family restriction. Matching
106
109
  * (`matchConstraint`) and the two description paths
107
110
  * (`formatConstraint`, `TranslationService.describeConstraint`)
108
- * account for it. The IDS-document auditors under `audit/` still
109
- * inspect only the primary family, so a malformed regex or an
110
- * inverted bound in a sibling is not linted.
111
+ * account for it, and so do the IDS-document auditors under `audit/`
112
+ * (coherence and predefined-type checks visit every sibling, IDS-010).
111
113
  */
112
114
  and?: readonly IDSConstraint[];
113
115
  /**
114
- * Facets whose `<xs:*Inclusive|Exclusive|Digits>` element was PRESENT
115
- * in the source `<xs:restriction>` but whose `@value` could not be
116
- * parsed as the expected number (`parseFloat`/`parseInt` failed, or a
117
- * digit-count facet came out negative) — e.g. a typo'd `"6O"` (letter
118
- * O) or the European decimal `"6,5"`. Distinct from a facet that was
116
+ * The bound facets of an `xs:date` / `xs:dateTime` / `xs:time` /
117
+ * `xs:duration` restriction, as their validated lexical text. Those
118
+ * value spaces are not numbers, so the numeric `min*` / `max*` fields
119
+ * above stay unset for them and the bounds live here instead, compared
120
+ * in the base's own order (#7399).
121
+ */
122
+ temporalBounds?: {
123
+ minInclusive?: string;
124
+ maxInclusive?: string;
125
+ minExclusive?: string;
126
+ maxExclusive?: string;
127
+ };
128
+ /**
129
+ * Facets whose `<xs:*Inclusive|Exclusive|Length|Digits>` element was
130
+ * PRESENT in the source `<xs:restriction>` but whose `@value` is not in
131
+ * the lexical space the facet requires: for a min/max bound, the
132
+ * restriction `@base`'s (#7399); for a length or digit-count facet, a
133
+ * non-negative integer — e.g. a typo'd `"6O"` (letter O), the European
134
+ * decimal `"6,5"`, or `"2024-13-01"` under `xs:date`. Distinct from a facet that was
119
135
  * never present at all: the corresponding numeric field above is
120
136
  * `undefined` in BOTH cases, but only this list distinguishes "no
121
137
  * such constraint" from "the author tried to constrain this and
@@ -1 +1 @@
1
- {"version":3,"file":"constraint-types.d.ts","sourceRoot":"","sources":["../src/constraint-types.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH,oCAAoC;AACpC,MAAM,MAAM,aAAa,GACrB,cAAc,GACd,oBAAoB,GACpB,wBAAwB,GACxB,mBAAmB,CAAC;AAExB,iCAAiC;AACjC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,aAAa,CAAC;IACpB,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,uCAAuC;AACvC,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,SAAS,CAAC;IAChB,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;;;;;;;OAYG;IACH,GAAG,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;CAChC;AAED,uDAAuD;AACvD,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,aAAa,CAAC;IACpB,6BAA6B;IAC7B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;;;;;;;OAYG;IACH,GAAG,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;CAChC;AAED,yDAAyD;AACzD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,QAAQ,CAAC;IACf,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;;;;;;;OAYG;IACH,GAAG,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IAC/B;;;;;;;;;;;;OAYG;IACH,iBAAiB,CAAC,EAAE,SAAS;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACtF"}
1
+ {"version":3,"file":"constraint-types.d.ts","sourceRoot":"","sources":["../src/constraint-types.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH,oCAAoC;AACpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,MAAM,MAAM,aAAa,GACrB,cAAc,GACd,oBAAoB,GACpB,wBAAwB,GACxB,mBAAmB,CAAC;AAExB,iCAAiC;AACjC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,aAAa,CAAC;IACpB,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,aAAa,CAAC,EAAE,kBAAkB,CAAC;CACpC;AAED,uCAAuC;AACvC,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,SAAS,CAAC;IAChB,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;;;;;;OAWG;IACH,GAAG,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;CAChC;AAED,uDAAuD;AACvD,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,aAAa,CAAC;IACpB,6BAA6B;IAC7B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,2EAA2E;IAC3E,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;;;;;;OAWG;IACH,GAAG,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;CAChC;AAED,yDAAyD;AACzD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,QAAQ,CAAC;IACf,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;;;;;;OAWG;IACH,GAAG,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IAC/B;;;;;;OAMG;IACH,cAAc,CAAC,EAAE;QACf,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF;;;;;;;;;;;;;OAaG;IACH,iBAAiB,CAAC,EAAE,SAAS;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACtF"}
@@ -1,3 +1,4 @@
1
+ import type { IDS11ToleranceRule } from '../preview/types.js';
1
2
  /**
2
3
  * Whether an IDS literal could ever match through `compareNumeric` —
3
4
  * i.e. it is a strict numeric literal: optional sign, digits, optional
@@ -34,7 +35,9 @@ export declare function numericEpsilon(castValue: number, actual?: number): numb
34
35
  * `2022`, which would silently equate dates with their year. Requiring
35
36
  * `isWhollyNumeric(...)` on both sides keeps date-like strings opaque.
36
37
  */
37
- export declare function compareNumeric(expected: string, actual: string | number | boolean): boolean | undefined;
38
+ export declare function compareNumeric(expected: string, actual: string | number | boolean,
39
+ /** IDS 1.1 PREVIEW (#418) rule from the constraint; unset is the IDS 1.0 comparison. */
40
+ toleranceRule?: IDS11ToleranceRule): boolean | undefined;
38
41
  /**
39
42
  * Compare an IDS boolean literal to a stored value. Per IDS 1.0 spec
40
43
  * the literal MUST be lowercase `true` / `false`; uppercase or
@@ -1 +1 @@
1
- {"version":3,"file":"comparators.d.ts","sourceRoot":"","sources":["../../src/constraints/comparators.ts"],"names":[],"mappings":"AAeA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED,wEAAwE;AACxE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEvD;AAWD,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CASzE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAChC,OAAO,GAAG,SAAS,CAYrB;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAChC,OAAO,GAAG,SAAS,CAgBrB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EACjC,eAAe,EAAE,OAAO,GACvB,OAAO,GAAG,SAAS,CAOrB"}
1
+ {"version":3,"file":"comparators.d.ts","sourceRoot":"","sources":["../../src/constraints/comparators.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG9D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED,wEAAwE;AACxE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEvD;AAWD,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CASzE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;AACjC,wFAAwF;AACxF,aAAa,CAAC,EAAE,kBAAkB,GACjC,OAAO,GAAG,SAAS,CAarB;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAChC,OAAO,GAAG,SAAS,CAgBrB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EACjC,eAAe,EAAE,OAAO,GACvB,OAAO,GAAG,SAAS,CAOrB"}
@@ -10,6 +10,7 @@
10
10
  * `parseFloat` path that silently equated date-shaped strings.
11
11
  */
12
12
  import { isWhollyNumeric } from '@ifc-lite/encoding';
13
+ import { equalsWithIds11Tolerance } from '../preview/tolerance.js';
13
14
  /**
14
15
  * Whether an IDS literal could ever match through `compareNumeric` —
15
16
  * i.e. it is a strict numeric literal: optional sign, digits, optional
@@ -63,7 +64,9 @@ export function numericEpsilon(castValue, actual) {
63
64
  * `2022`, which would silently equate dates with their year. Requiring
64
65
  * `isWhollyNumeric(...)` on both sides keeps date-like strings opaque.
65
66
  */
66
- export function compareNumeric(expected, actual) {
67
+ export function compareNumeric(expected, actual,
68
+ /** IDS 1.1 PREVIEW (#418) rule from the constraint; unset is the IDS 1.0 comparison. */
69
+ toleranceRule) {
67
70
  const actualStr = String(actual);
68
71
  const expectedIsNumeric = isWhollyNumeric(expected);
69
72
  const actualIsNumeric = typeof actual === 'number' || isWhollyNumeric(actualStr);
@@ -73,6 +76,8 @@ export function compareNumeric(expected, actual) {
73
76
  const actualNum = typeof actual === 'number' ? actual : parseFloat(actualStr);
74
77
  if (Number.isNaN(expectedNum) || Number.isNaN(actualNum))
75
78
  return undefined;
79
+ if (toleranceRule === 'ids11-418')
80
+ return equalsWithIds11Tolerance(expectedNum, actualNum);
76
81
  return Math.abs(expectedNum - actualNum) <= numericEpsilon(expectedNum, actualNum);
77
82
  }
78
83
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"comparators.js","sourceRoot":"","sources":["../../src/constraints/comparators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"comparators.js","sourceRoot":"","sources":["../../src/constraints/comparators.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAClD,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,OAAO,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,CAAC;AAC/C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEhC,MAAM,UAAU,cAAc,CAAC,SAAiB,EAAE,MAAe;IAC/D,MAAM,QAAQ,GAAG,kBAAkB,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IAChE,MAAM,GAAG,GACP,EAAE,GAAG,MAAM,CAAC,OAAO;QACnB,IAAI,CAAC,GAAG,CACN,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EACnB,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAClD,CAAC;IACJ,OAAO,QAAQ,GAAG,GAAG,CAAC;AACxB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,cAAc,CAC5B,QAAgB,EAChB,MAAiC;AACjC,wFAAwF;AACxF,aAAkC;IAElC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,iBAAiB,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IACpD,MAAM,eAAe,GACnB,OAAO,MAAM,KAAK,QAAQ,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;IAC3D,IAAI,CAAC,iBAAiB,IAAI,CAAC,eAAe;QAAE,OAAO,SAAS,CAAC;IAE7D,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAC9E,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IAE3E,IAAI,aAAa,KAAK,WAAW;QAAE,OAAO,wBAAwB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC3F,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC,IAAI,cAAc,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AACrF,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAC5B,QAAgB,EAChB,MAAiC;IAEjC,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QAChD,iEAAiE;QACjE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC;IAClE,CAAC;IAED,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QAC5C,OAAO,MAAM,KAAK,QAAQ,CAAC;IAC7B,CAAC;IAED,sDAAsD;IACtD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC3B,QAAgB,EAChB,MAAiC,EACjC,eAAwB;IAExB,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,SAAS,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACxC,IAAI,eAAe,IAAI,SAAS,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;QAC1E,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"describe.d.ts","sourceRoot":"","sources":["../../src/constraints/describe.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,aAAa,EAEd,MAAM,aAAa,CAAC;AA8BrB;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,aAAa,EACzB,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GACxD,MAAM,CA6BR;AA0FD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,aAAa,GAAG,MAAM,CAOlE"}
1
+ {"version":3,"file":"describe.d.ts","sourceRoot":"","sources":["../../src/constraints/describe.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,aAAa,EAEd,MAAM,aAAa,CAAC;AAgCrB;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,aAAa,EACzB,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GACxD,MAAM,CA6BR;AAkID;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,aAAa,GAAG,MAAM,CAOlE"}
@@ -4,6 +4,8 @@
4
4
  import { conjunctiveFacetsOf, matchOneFamily, NUMERIC_TOLERANCE, } from './match-family.js';
5
5
  import { matchDigitFacets, countDecimalDigits, } from './digit-facets.js';
6
6
  import { isStrictNumericLiteral } from './comparators.js';
7
+ import { numericValueOf } from './match-bounds.js';
8
+ import { compareOrdered, isOrderedValue } from './xsd-order.js';
7
9
  /**
8
10
  * Cap enumeration rendering. These strings are embedded in per-entity
9
11
  * validation results — an uncapped 800-value code list produced ~20KB
@@ -63,13 +65,14 @@ function getBoundsMismatchReason(constraint, actualValue) {
63
65
  if (constraint.unparseableFacets !== undefined && constraint.unparseableFacets.length > 0) {
64
66
  const facets = formatUnparseableFacets(constraint.unparseableFacets);
65
67
  return (`this xs:restriction is malformed and cannot be evaluated: ` +
66
- `${facets} did not parse as a number — fix the IDS specification ` +
68
+ `${facets} ${notReadableAs(constraint)} — fix the IDS specification ` +
67
69
  `(every value is being rejected until it is corrected, not just "${actualValue}")`);
68
70
  }
69
- const num = typeof actualValue === 'number'
70
- ? actualValue
71
- : parseFloat(String(actualValue));
72
- if (isNaN(num)) {
71
+ if (constraint.temporalBounds !== undefined) {
72
+ return getTemporalBoundsMismatchReason(constraint, actualValue);
73
+ }
74
+ const num = numericValueOf(actualValue);
75
+ if (num === undefined) {
73
76
  return `"${actualValue}" is not a valid number`;
74
77
  }
75
78
  const violations = [];
@@ -105,6 +108,43 @@ function getBoundsMismatchReason(constraint, actualValue) {
105
108
  }
106
109
  return `${num} ${violations.join(' and ')}`;
107
110
  }
111
+ /**
112
+ * Why malformed facets could not be read: a min/max bound against the
113
+ * restriction base it failed (#7399), a length or digit count as a
114
+ * non-negative integer.
115
+ */
116
+ function notReadableAs(constraint) {
117
+ const facets = constraint.unparseableFacets ?? [];
118
+ if (!facets.every((f) => /^(min|max)(In|Ex)clusive$/.test(f.facet))) {
119
+ return 'could not be read (a bound must be a value of the restriction base, a length or digit count a non-negative integer)';
120
+ }
121
+ return constraint.base
122
+ ? `is not a valid ${constraint.base} value`
123
+ : 'did not parse as a number';
124
+ }
125
+ function getTemporalBoundsMismatchReason(constraint, actualValue) {
126
+ const t = constraint.temporalBounds ?? {};
127
+ if (typeof actualValue !== 'string' || !isOrderedValue(actualValue, constraint.base)) {
128
+ return `"${actualValue}" is not a valid ${constraint.base ?? 'date, time or duration'} value`;
129
+ }
130
+ const violations = [];
131
+ const check = (bound, op, ok) => {
132
+ if (bound === undefined)
133
+ return;
134
+ const c = compareOrdered(actualValue, bound, constraint.base);
135
+ // XSD leaves some pairs unordered — a zone-less time within 14 hours
136
+ // of a zoned bound, `P366D` against `P1Y` — and those are not accepted.
137
+ if (c === undefined)
138
+ violations.push(`cannot be ordered against ${bound}`);
139
+ else if (!ok(c))
140
+ violations.push(`must be ${op} ${bound}`);
141
+ };
142
+ check(t.minInclusive, '>=', (c) => c >= 0);
143
+ check(t.maxInclusive, '<=', (c) => c <= 0);
144
+ check(t.minExclusive, '>', (c) => c > 0);
145
+ check(t.maxExclusive, '<', (c) => c < 0);
146
+ return `${actualValue} ${violations.join(' and ')}`;
147
+ }
108
148
  /**
109
149
  * Per-constraint display-string cache. Failure paths format the same
110
150
  * constraint for every non-matching entity — millions of times during
@@ -159,24 +199,30 @@ function formatBounds(constraint) {
159
199
  // fail-closed behaviour `matchBounds` actually enforces.
160
200
  if (constraint.unparseableFacets !== undefined && constraint.unparseableFacets.length > 0) {
161
201
  const facets = formatUnparseableFacets(constraint.unparseableFacets);
162
- return `a value satisfying the xs:restriction — currently unparseable: ${facets} did not parse as a number`;
202
+ return `a value satisfying the xs:restriction — currently unparseable: ${facets} ${notReadableAs(constraint)}`;
163
203
  }
164
204
  const parts = [];
165
- if (constraint.minInclusive !== undefined &&
166
- constraint.maxInclusive !== undefined) {
167
- return `between ${constraint.minInclusive} and ${constraint.maxInclusive}`;
168
- }
169
- if (constraint.minInclusive !== undefined) {
170
- parts.push(`>= ${constraint.minInclusive}`);
171
- }
172
- if (constraint.maxInclusive !== undefined) {
173
- parts.push(`<= ${constraint.maxInclusive}`);
174
- }
175
- if (constraint.minExclusive !== undefined) {
176
- parts.push(`> ${constraint.minExclusive}`);
177
- }
178
- if (constraint.maxExclusive !== undefined) {
179
- parts.push(`< ${constraint.maxExclusive}`);
205
+ // Date, time and duration bounds are kept as their lexemes; numeric
206
+ // ones as numbers. A constraint carries one kind or the other.
207
+ const t = constraint.temporalBounds;
208
+ const minInclusive = t?.minInclusive ?? constraint.minInclusive;
209
+ const maxInclusive = t?.maxInclusive ?? constraint.maxInclusive;
210
+ const minExclusive = t?.minExclusive ?? constraint.minExclusive;
211
+ const maxExclusive = t?.maxExclusive ?? constraint.maxExclusive;
212
+ if (minInclusive !== undefined && maxInclusive !== undefined) {
213
+ return `between ${minInclusive} and ${maxInclusive}`;
214
+ }
215
+ if (minInclusive !== undefined) {
216
+ parts.push(`>= ${minInclusive}`);
217
+ }
218
+ if (maxInclusive !== undefined) {
219
+ parts.push(`<= ${maxInclusive}`);
220
+ }
221
+ if (minExclusive !== undefined) {
222
+ parts.push(`> ${minExclusive}`);
223
+ }
224
+ if (maxExclusive !== undefined) {
225
+ parts.push(`< ${maxExclusive}`);
180
226
  }
181
227
  if (constraint.totalDigits !== undefined) {
182
228
  parts.push(`<= ${constraint.totalDigits} total digits`);
@@ -1 +1 @@
1
- {"version":3,"file":"describe.js","sourceRoot":"","sources":["../../src/constraints/describe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"describe.js","sourceRoot":"","sources":["../../src/constraints/describe.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * The bounds-family matcher: min/max bounds, string lengths and digit
3
+ * counts. Split out of `match-family.ts` (module-size budget) when bounds
4
+ * learned to compare by their restriction's `@base` (#7399).
5
+ */
6
+ import type { IDSBoundsConstraint } from '../types.js';
7
+ /**
8
+ * The value a numeric bound compares against: a number as given, or a
9
+ * string whose WHOLE text is a numeric lexeme. `parseFloat` used to read
10
+ * `"2024-12-31"` as 2024 and `"5 m"` as 5, so a non-number satisfied a
11
+ * numeric range by its prefix (#7399).
12
+ */
13
+ export declare function numericValueOf(actualValue: string | number | boolean): number | undefined;
14
+ /**
15
+ * Whether `actualValue` satisfies the `temporalBounds` of an `xs:date` /
16
+ * `xs:dateTime` / `xs:time` / `xs:duration` restriction. A value outside
17
+ * the base's value space, or one XSD leaves unordered against a bound,
18
+ * fails.
19
+ */
20
+ export declare function matchTemporalBounds(constraint: IDSBoundsConstraint, actualValue: string | number | boolean): boolean;
21
+ /**
22
+ * Match against bounds.
23
+ */
24
+ export declare function matchBounds(constraint: IDSBoundsConstraint, actualValue: string | number | boolean): boolean;
25
+ //# sourceMappingURL=match-bounds.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"match-bounds.d.ts","sourceRoot":"","sources":["../../src/constraints/match-bounds.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAIvD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAIzF;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,mBAAmB,EAC/B,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GACrC,OAAO,CAgBT;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE,mBAAmB,EAC/B,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GACrC,OAAO,CA8ET"}
@@ -0,0 +1,112 @@
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 { matchDigitFacets } from './digit-facets.js';
5
+ import { compareOrdered, readNumeric } from './xsd-order.js';
6
+ /**
7
+ * The value a numeric bound compares against: a number as given, or a
8
+ * string whose WHOLE text is a numeric lexeme. `parseFloat` used to read
9
+ * `"2024-12-31"` as 2024 and `"5 m"` as 5, so a non-number satisfied a
10
+ * numeric range by its prefix (#7399).
11
+ */
12
+ export function numericValueOf(actualValue) {
13
+ if (typeof actualValue === 'number')
14
+ return Number.isNaN(actualValue) ? undefined : actualValue;
15
+ if (typeof actualValue !== 'string')
16
+ return undefined;
17
+ return readNumeric(actualValue, 'xs:double');
18
+ }
19
+ /**
20
+ * Whether `actualValue` satisfies the `temporalBounds` of an `xs:date` /
21
+ * `xs:dateTime` / `xs:time` / `xs:duration` restriction. A value outside
22
+ * the base's value space, or one XSD leaves unordered against a bound,
23
+ * fails.
24
+ */
25
+ export function matchTemporalBounds(constraint, actualValue) {
26
+ const t = constraint.temporalBounds;
27
+ if (t === undefined)
28
+ return true;
29
+ const cmp = (bound) => compareOrdered(actualValue, bound, constraint.base);
30
+ const holds = (bound, ok) => {
31
+ if (bound === undefined)
32
+ return true;
33
+ const c = cmp(bound);
34
+ return c !== undefined && ok(c);
35
+ };
36
+ return (holds(t.minInclusive, (c) => c >= 0) &&
37
+ holds(t.maxInclusive, (c) => c <= 0) &&
38
+ holds(t.minExclusive, (c) => c > 0) &&
39
+ holds(t.maxExclusive, (c) => c < 0));
40
+ }
41
+ /**
42
+ * Match against bounds.
43
+ */
44
+ export function matchBounds(constraint, actualValue) {
45
+ // A facet element was present in the source `<xs:restriction>` but
46
+ // its `@value` is not in the lexical space it needs (a typo, a wrong
47
+ // decimal separator, a date under a numeric base, a negative
48
+ // digit-count, …). `parseRestriction` left it unset, the same as a
49
+ // facet that was never present — which would otherwise make this an
50
+ // unconditional pass. Fail closed instead: we cannot verify
51
+ // compliance against a restriction we could not fully parse, so no
52
+ // value passes until the IDS is corrected. See
53
+ // `getBoundsMismatchReason` for the author-facing explanation and
54
+ // `audit/coherence` for the corresponding lint diagnostic.
55
+ if (constraint.unparseableFacets !== undefined && constraint.unparseableFacets.length > 0) {
56
+ return false;
57
+ }
58
+ // String-length facets (xs:length / xs:minLength / xs:maxLength)
59
+ // operate on the textual length, not on numeric magnitude. When any
60
+ // of them are present, evaluate the length constraints first.
61
+ if (constraint.length !== undefined ||
62
+ constraint.minLength !== undefined ||
63
+ constraint.maxLength !== undefined) {
64
+ const str = String(actualValue);
65
+ if (constraint.length !== undefined && str.length !== constraint.length) {
66
+ return false;
67
+ }
68
+ if (constraint.minLength !== undefined && str.length < constraint.minLength) {
69
+ return false;
70
+ }
71
+ if (constraint.maxLength !== undefined && str.length > constraint.maxLength) {
72
+ return false;
73
+ }
74
+ // Length-only restrictions don't impose numeric bounds; if the
75
+ // constraint also carries min/max/totalDigits/fractionDigits we
76
+ // fall through to the numeric check below (rare in practice).
77
+ if (constraint.minInclusive === undefined &&
78
+ constraint.maxInclusive === undefined &&
79
+ constraint.minExclusive === undefined &&
80
+ constraint.maxExclusive === undefined &&
81
+ constraint.temporalBounds === undefined &&
82
+ constraint.totalDigits === undefined &&
83
+ constraint.fractionDigits === undefined) {
84
+ return true;
85
+ }
86
+ }
87
+ // Date, time and duration bounds order in their own value space, and a
88
+ // number never satisfies them.
89
+ if (constraint.temporalBounds !== undefined) {
90
+ return matchTemporalBounds(constraint, actualValue);
91
+ }
92
+ const num = numericValueOf(actualValue);
93
+ if (num === undefined)
94
+ return false;
95
+ if (constraint.minInclusive !== undefined && num < constraint.minInclusive) {
96
+ return false;
97
+ }
98
+ if (constraint.maxInclusive !== undefined && num > constraint.maxInclusive) {
99
+ return false;
100
+ }
101
+ if (constraint.minExclusive !== undefined && num <= constraint.minExclusive) {
102
+ return false;
103
+ }
104
+ if (constraint.maxExclusive !== undefined && num >= constraint.maxExclusive) {
105
+ return false;
106
+ }
107
+ const digitsOk = matchDigitFacets(constraint, actualValue);
108
+ if (digitsOk === false)
109
+ return false;
110
+ return true;
111
+ }
112
+ //# sourceMappingURL=match-bounds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"match-bounds.js","sourceRoot":"","sources":["../../src/constraints/match-bounds.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;;;;;;;;;;;;;;GAcG;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,EACX,UAAU,UAAQ,GACjB,OAAO,CAaT"}
1
+ {"version":3,"file":"match-family.d.ts","sourceRoot":"","sources":["../../src/constraints/match-family.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACV,aAAa,EAId,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,EACX,UAAU,UAAQ,GACjB,OAAO,CAaT"}