@ifc-lite/ids 3.2.0 → 3.3.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.
Files changed (217) 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/bridge/data-accessor.d.ts.map +1 -1
  45. package/dist/bridge/data-accessor.js +49 -25
  46. package/dist/bridge/data-accessor.js.map +1 -1
  47. package/dist/bridge/index.d.ts +1 -0
  48. package/dist/bridge/index.d.ts.map +1 -1
  49. package/dist/bridge/index.js +1 -0
  50. package/dist/bridge/index.js.map +1 -1
  51. package/dist/bridge/measure-conversion.d.ts +51 -0
  52. package/dist/bridge/measure-conversion.d.ts.map +1 -0
  53. package/dist/bridge/measure-conversion.js +106 -0
  54. package/dist/bridge/measure-conversion.js.map +1 -0
  55. package/dist/bridge/predefined-property-sets.d.ts +24 -0
  56. package/dist/bridge/predefined-property-sets.d.ts.map +1 -0
  57. package/dist/bridge/predefined-property-sets.js +86 -0
  58. package/dist/bridge/predefined-property-sets.js.map +1 -0
  59. package/dist/bridge/predefined-types.d.ts +34 -13
  60. package/dist/bridge/predefined-types.d.ts.map +1 -1
  61. package/dist/bridge/predefined-types.js +40 -71
  62. package/dist/bridge/predefined-types.js.map +1 -1
  63. package/dist/bridge/project-property.d.ts +43 -0
  64. package/dist/bridge/project-property.d.ts.map +1 -0
  65. package/dist/bridge/project-property.js +60 -0
  66. package/dist/bridge/project-property.js.map +1 -0
  67. package/dist/bridge/properties.d.ts +4 -3
  68. package/dist/bridge/properties.d.ts.map +1 -1
  69. package/dist/bridge/properties.js +64 -111
  70. package/dist/bridge/properties.js.map +1 -1
  71. package/dist/bridge/property-overlay-resolver.d.ts +10 -0
  72. package/dist/bridge/property-overlay-resolver.d.ts.map +1 -1
  73. package/dist/bridge/property-overlay-resolver.js +53 -4
  74. package/dist/bridge/property-overlay-resolver.js.map +1 -1
  75. package/dist/bridge/units.d.ts +49 -20
  76. package/dist/bridge/units.d.ts.map +1 -1
  77. package/dist/bridge/units.js +134 -84
  78. package/dist/bridge/units.js.map +1 -1
  79. package/dist/constraint-types.d.ts +30 -14
  80. package/dist/constraint-types.d.ts.map +1 -1
  81. package/dist/constraints/comparators.d.ts +4 -1
  82. package/dist/constraints/comparators.d.ts.map +1 -1
  83. package/dist/constraints/comparators.js +6 -1
  84. package/dist/constraints/comparators.js.map +1 -1
  85. package/dist/constraints/describe.d.ts.map +1 -1
  86. package/dist/constraints/describe.js +67 -21
  87. package/dist/constraints/describe.js.map +1 -1
  88. package/dist/constraints/match-bounds.d.ts +25 -0
  89. package/dist/constraints/match-bounds.d.ts.map +1 -0
  90. package/dist/constraints/match-bounds.js +112 -0
  91. package/dist/constraints/match-bounds.js.map +1 -0
  92. package/dist/constraints/match-family.d.ts.map +1 -1
  93. package/dist/constraints/match-family.js +25 -90
  94. package/dist/constraints/match-family.js.map +1 -1
  95. package/dist/constraints/xsd-datetime.js +6 -6
  96. package/dist/constraints/xsd-examples.d.ts +20 -0
  97. package/dist/constraints/xsd-examples.d.ts.map +1 -0
  98. package/dist/constraints/xsd-examples.js +187 -0
  99. package/dist/constraints/xsd-examples.js.map +1 -0
  100. package/dist/constraints/xsd-lexical.d.ts +2 -0
  101. package/dist/constraints/xsd-lexical.d.ts.map +1 -0
  102. package/dist/constraints/xsd-lexical.js +49 -0
  103. package/dist/constraints/xsd-lexical.js.map +1 -0
  104. package/dist/constraints/xsd-order.d.ts +33 -0
  105. package/dist/constraints/xsd-order.d.ts.map +1 -0
  106. package/dist/constraints/xsd-order.js +211 -0
  107. package/dist/constraints/xsd-order.js.map +1 -0
  108. package/dist/constraints/xsd-regex-ast.d.ts +37 -0
  109. package/dist/constraints/xsd-regex-ast.d.ts.map +1 -0
  110. package/dist/constraints/xsd-regex-ast.js +137 -0
  111. package/dist/constraints/xsd-regex-ast.js.map +1 -0
  112. package/dist/constraints/xsd-regex-blocks.d.ts +7 -0
  113. package/dist/constraints/xsd-regex-blocks.d.ts.map +1 -0
  114. package/dist/constraints/xsd-regex-blocks.js +68 -0
  115. package/dist/constraints/xsd-regex-blocks.js.map +1 -0
  116. package/dist/constraints/xsd-regex.d.ts +2 -45
  117. package/dist/constraints/xsd-regex.d.ts.map +1 -1
  118. package/dist/constraints/xsd-regex.js +231 -134
  119. package/dist/constraints/xsd-regex.js.map +1 -1
  120. package/dist/facets/entity-facet.d.ts.map +1 -1
  121. package/dist/facets/entity-facet.js +4 -1
  122. package/dist/facets/entity-facet.js.map +1 -1
  123. package/dist/facets/partof-facet.d.ts.map +1 -1
  124. package/dist/facets/partof-facet.js +80 -19
  125. package/dist/facets/partof-facet.js.map +1 -1
  126. package/dist/facets/predefined-type-match.d.ts +8 -3
  127. package/dist/facets/predefined-type-match.d.ts.map +1 -1
  128. package/dist/facets/predefined-type-match.js.map +1 -1
  129. package/dist/index.d.ts +8 -2
  130. package/dist/index.d.ts.map +1 -1
  131. package/dist/index.js +23 -0
  132. package/dist/index.js.map +1 -1
  133. package/dist/parser/dom.d.ts +4 -0
  134. package/dist/parser/dom.d.ts.map +1 -1
  135. package/dist/parser/dom.js +5 -0
  136. package/dist/parser/dom.js.map +1 -1
  137. package/dist/parser/parse-restriction.d.ts.map +1 -1
  138. package/dist/parser/parse-restriction.js +32 -14
  139. package/dist/parser/parse-restriction.js.map +1 -1
  140. package/dist/parser/xml-parser.d.ts +7 -4
  141. package/dist/parser/xml-parser.d.ts.map +1 -1
  142. package/dist/parser/xml-parser.js +30 -45
  143. package/dist/parser/xml-parser.js.map +1 -1
  144. package/dist/preview/audit.d.ts +16 -0
  145. package/dist/preview/audit.d.ts.map +1 -0
  146. package/dist/preview/audit.js +58 -0
  147. package/dist/preview/audit.js.map +1 -0
  148. package/dist/preview/features.d.ts +30 -0
  149. package/dist/preview/features.d.ts.map +1 -0
  150. package/dist/preview/features.js +96 -0
  151. package/dist/preview/features.js.map +1 -0
  152. package/dist/preview/parse-ids11.d.ts +9 -0
  153. package/dist/preview/parse-ids11.d.ts.map +1 -0
  154. package/dist/preview/parse-ids11.js +90 -0
  155. package/dist/preview/parse-ids11.js.map +1 -0
  156. package/dist/preview/partof-nested.d.ts +27 -0
  157. package/dist/preview/partof-nested.d.ts.map +1 -0
  158. package/dist/preview/partof-nested.js +61 -0
  159. package/dist/preview/partof-nested.js.map +1 -0
  160. package/dist/preview/tolerance.d.ts +15 -0
  161. package/dist/preview/tolerance.d.ts.map +1 -0
  162. package/dist/preview/tolerance.js +66 -0
  163. package/dist/preview/tolerance.js.map +1 -0
  164. package/dist/preview/types.d.ts +67 -0
  165. package/dist/preview/types.d.ts.map +1 -0
  166. package/dist/preview/types.js +5 -0
  167. package/dist/preview/types.js.map +1 -0
  168. package/dist/translation/describe-constraint.js +16 -14
  169. package/dist/translation/describe-constraint.js.map +1 -1
  170. package/dist/translation/locales/de.d.ts +2 -0
  171. package/dist/translation/locales/de.d.ts.map +1 -1
  172. package/dist/translation/locales/de.js +2 -0
  173. package/dist/translation/locales/de.js.map +1 -1
  174. package/dist/translation/locales/en.d.ts +2 -0
  175. package/dist/translation/locales/en.d.ts.map +1 -1
  176. package/dist/translation/locales/en.js +2 -0
  177. package/dist/translation/locales/en.js.map +1 -1
  178. package/dist/translation/locales/fr.d.ts +2 -0
  179. package/dist/translation/locales/fr.d.ts.map +1 -1
  180. package/dist/translation/locales/fr.js +2 -0
  181. package/dist/translation/locales/fr.js.map +1 -1
  182. package/dist/translation/locales/index.d.ts +1 -0
  183. package/dist/translation/locales/index.d.ts.map +1 -1
  184. package/dist/translation/locales/index.js +1 -0
  185. package/dist/translation/locales/index.js.map +1 -1
  186. package/dist/translation/locales/it.d.ts +198 -0
  187. package/dist/translation/locales/it.d.ts.map +1 -0
  188. package/dist/translation/locales/it.js +235 -0
  189. package/dist/translation/locales/it.js.map +1 -0
  190. package/dist/translation/service.d.ts +2 -6
  191. package/dist/translation/service.d.ts.map +1 -1
  192. package/dist/translation/service.js +17 -25
  193. package/dist/translation/service.js.map +1 -1
  194. package/dist/types.d.ts +26 -31
  195. package/dist/types.d.ts.map +1 -1
  196. package/dist/validation/format-failure-reason.js +1 -1
  197. package/dist/validation/format-failure-reason.js.map +1 -1
  198. package/dist/validation/prohibited-specification.d.ts +31 -0
  199. package/dist/validation/prohibited-specification.d.ts.map +1 -0
  200. package/dist/validation/prohibited-specification.js +25 -0
  201. package/dist/validation/prohibited-specification.js.map +1 -0
  202. package/dist/validation/validator.d.ts.map +1 -1
  203. package/dist/validation/validator.js +14 -11
  204. package/dist/validation/validator.js.map +1 -1
  205. package/dist/writer/constraint.d.ts +8 -0
  206. package/dist/writer/constraint.d.ts.map +1 -0
  207. package/dist/writer/constraint.js +142 -0
  208. package/dist/writer/constraint.js.map +1 -0
  209. package/dist/writer/index.d.ts +48 -0
  210. package/dist/writer/index.d.ts.map +1 -0
  211. package/dist/writer/index.js +209 -0
  212. package/dist/writer/index.js.map +1 -0
  213. package/dist/writer/xml-lines.d.ts +17 -0
  214. package/dist/writer/xml-lines.d.ts.map +1 -0
  215. package/dist/writer/xml-lines.js +69 -0
  216. package/dist/writer/xml-lines.js.map +1 -0
  217. package/package.json +5 -5
@@ -3,6 +3,7 @@
3
3
  * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
4
  import { matchConstraint, formatConstraint } from '../constraints/index.js';
5
5
  import { matchPredefinedType } from './predefined-type-match.js';
6
+ import { checkPartOfParentFacets } from '../preview/partof-nested.js';
6
7
  /** IFC entity NAME comparisons are case-insensitive per IDS spec. Predefined
7
8
  * types are NOT — see `predefined-type-match.ts`. */
8
9
  const IFC_CASE_INSENSITIVE = { caseInsensitive: true };
@@ -16,6 +17,64 @@ const RELATION_NAMES = {
16
17
  IfcRelFillsElement: 'filling',
17
18
  'IfcRelVoidsElement IfcRelFillsElement': 'connected through an opening to',
18
19
  };
20
+ /**
21
+ * The six part-of relations the IDS manual lists, plus the merged
22
+ * voids/fills token. The single fills and voids links are asked for
23
+ * directly so the opening a window fills is reached whatever an
24
+ * accessor's merged walk returns.
25
+ */
26
+ const ALL_PARTOF_RELATIONS = [
27
+ 'IfcRelAggregates',
28
+ 'IfcRelAssignsToGroup',
29
+ 'IfcRelContainedInSpatialStructure',
30
+ 'IfcRelNests',
31
+ 'IfcRelVoidsElement',
32
+ 'IfcRelFillsElement',
33
+ 'IfcRelVoidsElement IfcRelFillsElement',
34
+ ];
35
+ /** The relation a failure names: `part of` when the facet leaves it open. */
36
+ function relationKey(facet) {
37
+ return facet.anyRelation ? 'part of' : facet.relation;
38
+ }
39
+ function describeRelation(facet) {
40
+ if (facet.anyRelation)
41
+ return 'part of';
42
+ return RELATION_NAMES[facet.relation] || facet.relation;
43
+ }
44
+ /** Ancestors reachable through one relation (transitive within it). */
45
+ function collectAncestors(expressId, relation, accessor) {
46
+ const ancestors = accessor.getAncestors ? accessor.getAncestors(expressId, relation) : [];
47
+ if (ancestors.length === 0) {
48
+ const direct = accessor.getParent(expressId, relation);
49
+ if (direct)
50
+ ancestors.push(direct);
51
+ }
52
+ return ancestors;
53
+ }
54
+ /**
55
+ * A partOf facet without a relation considers every part-of relation,
56
+ * recursively (IDS 1.0 user manual, #7401), so a chain may mix them: a
57
+ * mullion aggregated into a curtain wall contained in a storey is part of
58
+ * that storey. Walk to a fixpoint over all relations, nearest first.
59
+ */
60
+ function collectAnyRelationAncestors(expressId, accessor) {
61
+ const out = [];
62
+ const seen = new Set([expressId]);
63
+ const queue = [expressId];
64
+ while (queue.length > 0) {
65
+ const id = queue.shift();
66
+ for (const relation of ALL_PARTOF_RELATIONS) {
67
+ for (const parent of collectAncestors(id, relation, accessor)) {
68
+ if (seen.has(parent.expressId))
69
+ continue;
70
+ seen.add(parent.expressId);
71
+ out.push(parent);
72
+ queue.push(parent.expressId);
73
+ }
74
+ }
75
+ }
76
+ return out;
77
+ }
19
78
  /**
20
79
  * Check if an entity matches a partOf facet
21
80
  */
@@ -25,16 +84,11 @@ export function checkPartOfFacet(facet, expressId, accessor) {
25
84
  // pass if ANY matches the requirement entity. Fall back to single-
26
85
  // step `getParent` when the accessor doesn't expose ancestor
27
86
  // traversal.
28
- const ancestors = accessor.getAncestors
29
- ? accessor.getAncestors(expressId, facet.relation)
30
- : [];
31
- if (ancestors.length === 0) {
32
- const direct = accessor.getParent(expressId, facet.relation);
33
- if (direct)
34
- ancestors.push(direct);
35
- }
87
+ const ancestors = facet.anyRelation
88
+ ? collectAnyRelationAncestors(expressId, accessor)
89
+ : collectAncestors(expressId, facet.relation, accessor);
36
90
  if (ancestors.length === 0) {
37
- const relationName = RELATION_NAMES[facet.relation] || facet.relation;
91
+ const relationName = describeRelation(facet);
38
92
  const expectedEntity = facet.entity
39
93
  ? formatConstraint(facet.entity.name)
40
94
  : 'any entity';
@@ -44,10 +98,10 @@ export function checkPartOfFacet(facet, expressId, accessor) {
44
98
  expectedValue: `${relationName} ${expectedEntity}`,
45
99
  failure: {
46
100
  type: 'PARTOF_RELATION_MISSING',
47
- field: facet.relation,
101
+ field: relationKey(facet),
48
102
  expected: `${relationName} ${expectedEntity}`,
49
103
  context: {
50
- relation: facet.relation,
104
+ relation: relationKey(facet),
51
105
  },
52
106
  },
53
107
  };
@@ -58,7 +112,7 @@ export function checkPartOfFacet(facet, expressId, accessor) {
58
112
  // generic "no match" form.
59
113
  let bestFailure;
60
114
  for (const parent of ancestors) {
61
- const result = checkAncestorAgainstFacet(facet, parent);
115
+ const result = checkAncestorAgainstFacet(facet, parent, accessor);
62
116
  if (result.passed)
63
117
  return result;
64
118
  if (!bestFailure ||
@@ -69,10 +123,15 @@ export function checkPartOfFacet(facet, expressId, accessor) {
69
123
  }
70
124
  return bestFailure;
71
125
  }
72
- function checkAncestorAgainstFacet(facet, parent) {
126
+ function checkAncestorAgainstFacet(facet, parent, accessor) {
127
+ // IDS 1.1 PREVIEW (#379/#380): conditions on the related element itself.
128
+ // Unset on every IDS 1.0 document, so this is a no-op there.
129
+ const nestedFailure = facet.facets ? checkPartOfParentFacets(facet, parent, accessor) : undefined;
73
130
  // If no entity constraint, just check if relationship exists
74
131
  if (!facet.entity) {
75
- const relationName = RELATION_NAMES[facet.relation] || facet.relation;
132
+ if (nestedFailure)
133
+ return nestedFailure;
134
+ const relationName = describeRelation(facet);
76
135
  return {
77
136
  passed: true,
78
137
  actualValue: `${relationName} ${parent.entityType}`,
@@ -81,7 +140,7 @@ function checkAncestorAgainstFacet(facet, parent) {
81
140
  }
82
141
  // Check parent entity type (case-insensitive for IFC entity names)
83
142
  if (!matchConstraint(facet.entity.name, parent.entityType, IFC_CASE_INSENSITIVE)) {
84
- const relationName = RELATION_NAMES[facet.relation] || facet.relation;
143
+ const relationName = describeRelation(facet);
85
144
  return {
86
145
  passed: false,
87
146
  actualValue: `${relationName} ${parent.entityType}`,
@@ -92,7 +151,7 @@ function checkAncestorAgainstFacet(facet, parent) {
92
151
  actual: parent.entityType,
93
152
  expected: formatConstraint(facet.entity.name),
94
153
  context: {
95
- relation: facet.relation,
154
+ relation: relationKey(facet),
96
155
  parentId: String(parent.expressId),
97
156
  },
98
157
  },
@@ -116,7 +175,7 @@ function checkAncestorAgainstFacet(facet, parent) {
116
175
  field: 'predefinedType',
117
176
  expected: formatConstraint(facet.entity.predefinedType),
118
177
  context: {
119
- relation: facet.relation,
178
+ relation: relationKey(facet),
120
179
  parentType: parent.entityType,
121
180
  },
122
181
  },
@@ -133,14 +192,16 @@ function checkAncestorAgainstFacet(facet, parent) {
133
192
  actual: outcome.actual,
134
193
  expected: formatConstraint(facet.entity.predefinedType),
135
194
  context: {
136
- relation: facet.relation,
195
+ relation: relationKey(facet),
137
196
  parentType: parent.entityType,
138
197
  },
139
198
  },
140
199
  };
141
200
  }
142
201
  }
143
- const relationName = RELATION_NAMES[facet.relation] || facet.relation;
202
+ if (nestedFailure)
203
+ return nestedFailure;
204
+ const relationName = describeRelation(facet);
144
205
  const parentDesc = parent.predefinedType
145
206
  ? `${parent.entityType}[${parent.predefinedType}]`
146
207
  : parent.entityType;
@@ -1 +1 @@
1
- {"version":3,"file":"partof-facet.js","sourceRoot":"","sources":["../../src/facets/partof-facet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"partof-facet.js","sourceRoot":"","sources":["../../src/facets/partof-facet.ts"],"names":[],"mappings":"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"}
@@ -17,9 +17,14 @@
17
17
  * `USERDEFINED`, `NOTDEFINED`, …).
18
18
  * 2. Only when that raw token is `USERDEFINED`, fall back to the
19
19
  * user-defined name (`ObjectType`/`ElementType`/`ProcessType`).
20
- * 3. When no raw token is reported at all (legacy accessors that do not
21
- * implement `getPredefinedTypeRaw`), compare against the
22
- * user-defined name directly.
20
+ * 3. When no raw token is reported at all, compare against the
21
+ * resolved name directly. This serves accessors that do not
22
+ * implement `getPredefinedTypeRaw` and report the already-resolved
23
+ * predefined type through `getObjectType` alone. It is NOT an
24
+ * `ObjectType` fallback: an accessor must return `undefined` from
25
+ * `getObjectType` for an entity with no predefined type, so an
26
+ * unset or `NOTDEFINED` PredefinedType never matches a custom
27
+ * literal through a stray `ObjectType` (IDS 1.0; #7394).
23
28
  *
24
29
  * Both comparisons are CASE-SENSITIVE: enum tokens are uppercase by the
25
30
  * IFC schema and the IDS literal must match them exactly, and the corpus
@@ -1 +1 @@
1
- {"version":3,"file":"predefined-type-match.d.ts","sourceRoot":"","sources":["../../src/facets/predefined-type-match.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,MAAM,MAAM,mBAAmB;AAC7B,mCAAmC;AACjC;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE;AAC5B,qEAAqE;GACnE;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE;AAC7B;;;;GAIG;GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3D;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,aAAa,EACzB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,eAAe,EAAE,MAAM,GAAG,SAAS,GAClC,mBAAmB,CAmBrB"}
1
+ {"version":3,"file":"predefined-type-match.d.ts","sourceRoot":"","sources":["../../src/facets/predefined-type-match.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,MAAM,MAAM,mBAAmB;AAC7B,mCAAmC;AACjC;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE;AAC5B,qEAAqE;GACnE;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE;AAC7B;;;;GAIG;GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3D;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,aAAa,EACzB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,eAAe,EAAE,MAAM,GAAG,SAAS,GAClC,mBAAmB,CAmBrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"predefined-type-match.js","sourceRoot":"","sources":["../../src/facets/predefined-type-match.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AA4C/D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAc1D;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,UAAyB,EACzB,OAA2B,EAC3B,eAAmC;IAEnC,IAAI,CAAC,OAAO,IAAI,CAAC,eAAe;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAE5D,IAAI,OAAO,IAAI,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC;QACpD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC3B,CAAC;IACD,IACE,OAAO,KAAK,aAAa;QACzB,eAAe;QACf,eAAe,KAAK,OAAO;QAC3B,eAAe,CAAC,UAAU,EAAE,eAAe,CAAC,EAC5C,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC3B,CAAC;IACD,IAAI,CAAC,OAAO,IAAI,eAAe,IAAI,eAAe,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,CAAC;QAChF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"predefined-type-match.js","sourceRoot":"","sources":["../../src/facets/predefined-type-match.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAiD/D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAc1D;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,UAAyB,EACzB,OAA2B,EAC3B,eAAmC;IAEnC,IAAI,CAAC,OAAO,IAAI,CAAC,eAAe;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAE5D,IAAI,OAAO,IAAI,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC;QACpD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC3B,CAAC;IACD,IACE,OAAO,KAAK,aAAa;QACzB,eAAe;QACf,eAAe,KAAK,OAAO;QAC3B,eAAe,CAAC,UAAU,EAAE,eAAe,CAAC,EAC5C,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC3B,CAAC;IACD,IAAI,CAAC,OAAO,IAAI,eAAe,IAAI,eAAe,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,CAAC;QAChF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;AAC9E,CAAC"}
package/dist/index.d.ts CHANGED
@@ -5,18 +5,24 @@
5
5
  * - IDS XML parsing
6
6
  * - All facet types (Entity, Attribute, Property, Classification, Material, PartOf)
7
7
  * - All constraint types (Simple, Pattern, Enumeration, Bounds)
8
- * - Multi-language translation (EN, DE, FR)
8
+ * - Multi-language translation (EN, DE, FR, IT)
9
9
  * - Human-readable validation reports
10
10
  */
11
11
  export type { IDSDocument, IDSInfo, IDSSpecification, IDSApplicability, IDSRequirement, IFCVersion, RequirementOptionality, IDSFacet, FacetType, IDSEntityFacet, IDSAttributeFacet, IDSPropertyFacet, IDSClassificationFacet, IDSMaterialFacet, IDSPartOfFacet, PartOfRelation, IDSConstraint, IDSSimpleValue, IDSPatternConstraint, IDSEnumerationConstraint, IDSBoundsConstraint, ValidationSource, SpecificationSummary, RequirementSummary, CheckKind, FailureReasonCode, SetResult, RequirementResult, EntityResult, SpecificationResult, ValidationReport, ValidationModelInfo, IDSValidationReport, IDSModelInfo, IDSValidationSummary, IDSSpecificationResult, IDSCardinalityResult, IDSEntityResult, IDSRequirementResult, IDSFailureDetail, FailureType, IFCDataAccessor, PropertyValueResult, PropertySetInfo, ClassificationInfo, MaterialInfo, ParentInfo, ValidatorOptions, ValidationProgress, SupportedLocale, TranslationService, } from './types.js';
12
- export { parseIDS, IDSParseError } from './parser/xml-parser.js';
12
+ export { parseIDS, IDSParseError, type ParseIDSOptions } from './parser/xml-parser.js';
13
+ export { writeIdsXml, type IdsXmlFormat, type IdsXmlWriteOptions } from './writer/index.js';
14
+ export { IDS11_PREVIEW_FEATURES, IDS11PreviewRequiredError, findIds11Features, type IDS11FeatureInfo, } from './preview/features.js';
15
+ export type { IDSPreviewFlags, IDS11PreviewFeature, IDS11FeatureUse, IDS11FacetUri, IDS11FacetInstructions, IDS11ToleranceRule, } from './preview/types.js';
13
16
  export { flattenMaterials } from './bridge/materials.js';
14
17
  export { validateIDS, calculateSummary } from './validation/validator.js';
15
18
  export { isIDSValidationReport } from './report-guards.js';
16
19
  export { checkFacet, filterByFacet, checkEntityFacet, filterByEntityFacet, checkAttributeFacet, checkPropertyFacet, checkClassificationFacet, checkMaterialFacet, checkPartOfFacet, type FacetCheckResult, } from './facets/index.js';
17
20
  export { boundedPassRate, passRateBand, type PassRateBand } from './validation/pass-rate.js';
21
+ export { rowForAlias as ifc2x3TypeMappingForAlias, type Ifc2x3TypeMappingRow, } from './facets/ifc2x3-type-mapping.js';
18
22
  export { matchConstraint, formatConstraint, getConstraintMismatchReason, } from './constraints/index.js';
19
23
  export { translateXsdRegex, type TranslateResult } from './constraints/xsd-regex.js';
24
+ export { generatePatternExamples, type PatternExamples, type PatternExampleOptions, } from './constraints/xsd-examples.js';
25
+ export { IFC2X3_MAPPED_ALIASES } from './facets/ifc2x3-type-mapping.js';
20
26
  export { auditIDSDocument, auditIDSStructure } from './audit/index.js';
21
27
  export type { IDSAuditCode, IDSAuditIssue, IDSAuditOptions, IDSAuditReport, IDSAuditSeverity, } from './audit/types.js';
22
28
  export { createTranslationService } from './translation/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA;;;;;;;;;GASG;AAMH,YAAY,EAEV,WAAW,EACX,OAAO,EACP,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,sBAAsB,EAGtB,QAAQ,EACR,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,cAAc,EAGd,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EAGnB,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,EACT,iBAAiB,EACjB,SAAS,EACT,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EAGnB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,EAGX,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,UAAU,EAGV,gBAAgB,EAChB,kBAAkB,EAGlB,eAAe,EACf,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAMpB,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAYjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAMzD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAM3D,OAAO,EACL,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,gBAAgB,GACtB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAM7F,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,wBAAwB,CAAC;AAIhC,OAAO,EAAE,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAMrF,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACvE,YAAY,EACV,YAAY,EACZ,aAAa,EACb,eAAe,EACf,cAAc,EACd,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAGlE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA;;;;;;;;;GASG;AAMH,YAAY,EAEV,WAAW,EACX,OAAO,EACP,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,sBAAsB,EAGtB,QAAQ,EACR,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,cAAc,EAGd,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EAGnB,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,EACT,iBAAiB,EACjB,SAAS,EACT,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EAGnB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,EAGX,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,UAAU,EAGV,gBAAgB,EAChB,kBAAkB,EAGlB,eAAe,EACf,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAMpB,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAQvF,OAAO,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAQ5F,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,iBAAiB,EACjB,KAAK,gBAAgB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAY5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAMzD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAM3D,OAAO,EACL,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,gBAAgB,GACtB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAK7F,OAAO,EACL,WAAW,IAAI,yBAAyB,EACxC,KAAK,oBAAoB,GAC1B,MAAM,iCAAiC,CAAC;AAMzC,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,wBAAwB,CAAC;AAIhC,OAAO,EAAE,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAIrF,OAAO,EACL,uBAAuB,EACvB,KAAK,eAAe,EACpB,KAAK,qBAAqB,GAC3B,MAAM,+BAA+B,CAAC;AAKvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAMxE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACvE,YAAY,EACV,YAAY,EACZ,aAAa,EACb,eAAe,EACf,cAAc,EACd,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAGlE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC"}
package/dist/index.js CHANGED
@@ -6,6 +6,18 @@
6
6
  // ============================================================================
7
7
  export { parseIDS, IDSParseError } from './parser/xml-parser.js';
8
8
  // ============================================================================
9
+ // Writer
10
+ // ============================================================================
11
+ // The one IDS 1.0 writer (ADR-005): `@ifc-lite/rules`' `ruleSetToIds` and the
12
+ // viewer's reviewed IDS drafts serialise through it.
13
+ export { writeIdsXml } from './writer/index.js';
14
+ // ============================================================================
15
+ // IDS 1.1 PREVIEW (IDS-124, ADR-011) — unstable, opt-in, follows upstream
16
+ // ============================================================================
17
+ // Candidate features of the unreleased IDS 1.1, each tied to its upstream
18
+ // issue. Off unless a caller passes `preview: { ids11: true }`.
19
+ export { IDS11_PREVIEW_FEATURES, IDS11PreviewRequiredError, findIds11Features, } from './preview/features.js';
20
+ // ============================================================================
9
21
  // Material bridge
10
22
  // ============================================================================
11
23
  // Flattens the parser's hierarchical material graph into flat `{name,
@@ -26,6 +38,10 @@ export { isIDSValidationReport } from './report-guards.js';
26
38
  // ============================================================================
27
39
  export { checkFacet, filterByFacet, checkEntityFacet, filterByEntityFacet, checkAttributeFacet, checkPropertyFacet, checkClassificationFacet, checkMaterialFacet, checkPartOfFacet, } from './facets/index.js';
28
40
  export { boundedPassRate, passRateBand } from './validation/pass-rate.js';
41
+ // IFC2X3 occurrence/type mapping table (IfcAirTerminal -> IfcFlowTerminal +
42
+ // IfcAirTerminalType): shared with `@ifc-lite/ids-authoring`'s gate so an
43
+ // authored IFC2X3 facet accepts the same aliases the audit and checker do.
44
+ export { rowForAlias as ifc2x3TypeMappingForAlias, } from './facets/ifc2x3-type-mapping.js';
29
45
  // ============================================================================
30
46
  // Constraints
31
47
  // ============================================================================
@@ -33,6 +49,13 @@ export { matchConstraint, formatConstraint, getConstraintMismatchReason, } from
33
49
  // The one XSD-regex -> JS-regex translator, shared with `@ifc-lite/rules`'
34
50
  // IDS import (#5225) so an imported pattern means what the checker reads.
35
51
  export { translateXsdRegex } from './constraints/xsd-regex.js';
52
+ // Matching and non-matching example strings for an XSD pattern, verified
53
+ // against `matchConstraint` (pattern explanations, synthetic test fixtures).
54
+ export { generatePatternExamples, } from './constraints/xsd-examples.js';
55
+ // IFC4 class names an IFC2X3 entity facet may use through buildingSMART's
56
+ // occurrence/type mapping table, so authoring tools (`@ifc-lite/ids-authoring`
57
+ // lint) do not report them as missing from IFC2X3.
58
+ export { IFC2X3_MAPPED_ALIASES } from './facets/ifc2x3-type-mapping.js';
36
59
  // ============================================================================
37
60
  // Audit (IDS document correctness)
38
61
  // ============================================================================
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAsF/D,+EAA+E;AAC/E,SAAS;AACT,+EAA+E;AAE/E,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEjE,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E,sEAAsE;AACtE,wEAAwE;AACxE,sEAAsE;AACtE,sEAAsE;AACtE,qEAAqE;AACrE,0CAA0C;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAE/E,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE1E,+EAA+E;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,+EAA+E;AAC/E,SAAS;AACT,+EAA+E;AAE/E,OAAO,EACL,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,GAEjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,eAAe,EAAE,YAAY,EAAqB,MAAM,2BAA2B,CAAC;AAE7F,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,wBAAwB,CAAC;AAEhC,2EAA2E;AAC3E,0EAA0E;AAC1E,OAAO,EAAE,iBAAiB,EAAwB,MAAM,4BAA4B,CAAC;AAErF,+EAA+E;AAC/E,mCAAmC;AACnC,+EAA+E;AAE/E,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AASvE,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,0CAA0C;AAC1C,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAsF/D,+EAA+E;AAC/E,SAAS;AACT,+EAA+E;AAE/E,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAwB,MAAM,wBAAwB,CAAC;AAEvF,+EAA+E;AAC/E,SAAS;AACT,+EAA+E;AAE/E,8EAA8E;AAC9E,qDAAqD;AACrD,OAAO,EAAE,WAAW,EAA8C,MAAM,mBAAmB,CAAC;AAE5F,+EAA+E;AAC/E,0EAA0E;AAC1E,+EAA+E;AAE/E,0EAA0E;AAC1E,gEAAgE;AAChE,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,iBAAiB,GAElB,MAAM,uBAAuB,CAAC;AAU/B,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E,sEAAsE;AACtE,wEAAwE;AACxE,sEAAsE;AACtE,sEAAsE;AACtE,qEAAqE;AACrE,0CAA0C;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAE/E,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE1E,+EAA+E;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,+EAA+E;AAC/E,SAAS;AACT,+EAA+E;AAE/E,OAAO,EACL,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,GAEjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,eAAe,EAAE,YAAY,EAAqB,MAAM,2BAA2B,CAAC;AAE7F,4EAA4E;AAC5E,0EAA0E;AAC1E,2EAA2E;AAC3E,OAAO,EACL,WAAW,IAAI,yBAAyB,GAEzC,MAAM,iCAAiC,CAAC;AAEzC,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,wBAAwB,CAAC;AAEhC,2EAA2E;AAC3E,0EAA0E;AAC1E,OAAO,EAAE,iBAAiB,EAAwB,MAAM,4BAA4B,CAAC;AAErF,yEAAyE;AACzE,6EAA6E;AAC7E,OAAO,EACL,uBAAuB,GAGxB,MAAM,+BAA+B,CAAC;AAEvC,0EAA0E;AAC1E,+EAA+E;AAC/E,mDAAmD;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,+EAA+E;AAC/E,mCAAmC;AACnC,+EAA+E;AAE/E,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AASvE,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,0CAA0C;AAC1C,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC"}
@@ -8,4 +8,8 @@ export declare function getChildElements(parent: Element, localName: string): El
8
8
  export declare function getChildElementNS(parent: Element, localName: string, namespace: string): Element | null;
9
9
  export declare function getChildElementsNS(parent: Element, localName: string, namespace: string): Element[];
10
10
  export declare function getChildText(parent: Element, localName: string): string | undefined;
11
+ /** A facet's `@uri` attribute as an object to spread (empty when absent or blank). */
12
+ export declare function uriOf(el: Element): {
13
+ uri?: string;
14
+ };
11
15
  //# sourceMappingURL=dom.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../src/parser/dom.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AAEH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAOlF;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,EAAE,CAQ9E;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,GAAG,IAAI,CAUhB;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,EAAE,CAWX;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGnF"}
1
+ {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../src/parser/dom.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AAEH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAOlF;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,EAAE,CAQ9E;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,GAAG,IAAI,CAUhB;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,EAAE,CAWX;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGnF;AAED,sFAAsF;AACtF,wBAAgB,KAAK,CAAC,EAAE,EAAE,OAAO,GAAG;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAGnD"}
@@ -46,4 +46,9 @@ export function getChildText(parent, localName) {
46
46
  const child = getChildElement(parent, localName);
47
47
  return child?.textContent?.trim() || undefined;
48
48
  }
49
+ /** A facet's `@uri` attribute as an object to spread (empty when absent or blank). */
50
+ export function uriOf(el) {
51
+ const uri = el.getAttribute('uri')?.trim();
52
+ return uri ? { uri } : {};
53
+ }
49
54
  //# sourceMappingURL=dom.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dom.js","sourceRoot":"","sources":["../../src/parser/dom.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;GAIG;AAEH,MAAM,UAAU,eAAe,CAAC,MAAe,EAAE,SAAiB;IAChE,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,IAAI,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC;YAC9D,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAe,EAAE,SAAiB;IACjE,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,IAAI,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC;YAC9D,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,MAAe,EACf,SAAiB,EACjB,SAAiB;IAEjB,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,IACE,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE;YACzD,KAAK,CAAC,YAAY,KAAK,SAAS,EAChC,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,MAAe,EACf,SAAiB,EACjB,SAAiB;IAEjB,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,IACE,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE;YACzD,KAAK,CAAC,YAAY,KAAK,SAAS,EAChC,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAe,EAAE,SAAiB;IAC7D,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACjD,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"dom.js","sourceRoot":"","sources":["../../src/parser/dom.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;GAIG;AAEH,MAAM,UAAU,eAAe,CAAC,MAAe,EAAE,SAAiB;IAChE,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,IAAI,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC;YAC9D,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAe,EAAE,SAAiB;IACjE,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,IAAI,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC;YAC9D,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,MAAe,EACf,SAAiB,EACjB,SAAiB;IAEjB,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,IACE,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE;YACzD,KAAK,CAAC,YAAY,KAAK,SAAS,EAChC,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,MAAe,EACf,SAAiB,EACjB,SAAiB;IAEjB,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,IACE,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE;YACzD,KAAK,CAAC,YAAY,KAAK,SAAS,EAChC,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAe,EAAE,SAAiB;IAC7D,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACjD,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;AACjD,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,KAAK,CAAC,EAAW;IAC/B,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IAC3C,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5B,CAAC"}
@@ -1 +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"}
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;AAkBrB;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,OAAO,GAAG,aAAa,CAY3D"}
@@ -1,8 +1,12 @@
1
1
  /* This Source Code Form is subject to the terms of the Mozilla Public
2
2
  * License, v. 2.0. If a copy of the MPL was not distributed with this
3
3
  * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ import { boundOrderOf, readNumeric, readOrderedLexeme } from '../constraints/xsd-order.js';
4
5
  import { getChildElement, getChildElements, getChildElementNS, getChildElementsNS, } from './dom.js';
5
6
  const XS_NAMESPACE = 'http://www.w3.org/2001/XMLSchema';
7
+ const BOUND_FACETS = ['minInclusive', 'maxInclusive', 'minExclusive', 'maxExclusive'];
8
+ /** `xs:nonNegativeInteger`'s lexical space (an optional `+`, then digits). */
9
+ const NON_NEGATIVE_INTEGER = /^\+?\d+$/;
6
10
  /**
7
11
  * Parse XSD restriction element.
8
12
  *
@@ -106,30 +110,44 @@ function parseRestrictionFamilies(el) {
106
110
  // must NOT read the same as no minInclusive at all).
107
111
  const unparseable = [];
108
112
  const rawValueOf = (e) => e.getAttribute('value') || e.textContent || '';
109
- const readNumber = (facet, e) => {
113
+ // A min/max bound is read in the lexical space of the restriction's
114
+ // `@base`, never by `parseFloat` — which read `2024-03-31` as 2024 and
115
+ // `6,5` as 6 (#7399). A bound outside that space is recorded as
116
+ // unparseable, so the restriction fails closed and the audit names it.
117
+ const order = boundOrderOf(base);
118
+ const readBound = (facet) => {
119
+ const e = facetEls[facet];
110
120
  if (!e)
111
- return undefined;
121
+ return;
112
122
  const raw = rawValueOf(e);
113
- const v = parseFloat(raw);
114
- if (Number.isFinite(v))
115
- return v;
116
- unparseable.push({ facet, rawValue: raw });
117
- return undefined;
123
+ if (order === 'numeric') {
124
+ const v = readNumeric(raw, base);
125
+ if (v !== undefined)
126
+ bounds[facet] = v;
127
+ else
128
+ unparseable.push({ facet, rawValue: raw });
129
+ return;
130
+ }
131
+ const lexeme = readOrderedLexeme(raw, base);
132
+ if (lexeme !== undefined)
133
+ (bounds.temporalBounds ??= {})[facet] = lexeme;
134
+ else
135
+ unparseable.push({ facet, rawValue: raw });
118
136
  };
137
+ // A length or digit count is an `xs:nonNegativeInteger`: the whole
138
+ // text, not the leading digits `parseInt` would take from `"6,5"`.
119
139
  const readInt = (facet, e) => {
120
140
  if (!e)
121
141
  return undefined;
122
142
  const raw = rawValueOf(e);
123
- const v = parseInt(raw, 10);
124
- if (Number.isFinite(v) && v >= 0)
125
- return v;
143
+ const text = raw.trim();
144
+ if (NON_NEGATIVE_INTEGER.test(text))
145
+ return Number(text);
126
146
  unparseable.push({ facet, rawValue: raw });
127
147
  return undefined;
128
148
  };
129
- bounds.minInclusive = readNumber('minInclusive', facetEls.minInclusive);
130
- bounds.maxInclusive = readNumber('maxInclusive', facetEls.maxInclusive);
131
- bounds.minExclusive = readNumber('minExclusive', facetEls.minExclusive);
132
- bounds.maxExclusive = readNumber('maxExclusive', facetEls.maxExclusive);
149
+ for (const facet of BOUND_FACETS)
150
+ readBound(facet);
133
151
  bounds.length = readInt('length', facetEls.length);
134
152
  bounds.minLength = readInt('minLength', facetEls.minLength);
135
153
  bounds.maxLength = readInt('maxLength', facetEls.maxLength);
@@ -1 +1 @@
1
- {"version":3,"file":"parse-restriction.js","sourceRoot":"","sources":["../../src/parser/parse-restriction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse-restriction.js","sourceRoot":"","sources":["../../src/parser/parse-restriction.ts"],"names":[],"mappings":"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"}
@@ -3,13 +3,16 @@
3
3
  * Parses buildingSMART IDS 1.0 XML files
4
4
  */
5
5
  import type { IDSDocument } from '../types.js';
6
+ import type { IDSPreviewFlags } from '../preview/types.js';
6
7
  /** Error thrown when parsing invalid IDS XML */
7
8
  export declare class IDSParseError extends Error {
8
9
  details?: string | undefined;
9
10
  constructor(message: string, details?: string | undefined);
10
11
  }
11
- /**
12
- * Parse IDS XML content into an IDSDocument
13
- */
14
- export declare function parseIDS(xmlContent: string | ArrayBuffer): IDSDocument;
12
+ /** Options for `parseIDS`. `preview.ids11` also reads IDS 1.1 PREVIEW candidates (unstable). */
13
+ export interface ParseIDSOptions {
14
+ preview?: IDSPreviewFlags;
15
+ }
16
+ /** Parse IDS XML content into an IDSDocument (IDS 1.0 unless `options.preview.ids11`). */
17
+ export declare function parseIDS(xmlContent: string | ArrayBuffer, options?: ParseIDSOptions): IDSDocument;
15
18
  //# sourceMappingURL=xml-parser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"xml-parser.d.ts","sourceRoot":"","sources":["../../src/parser/xml-parser.ts"],"names":[],"mappings":"AAIA;;;GAGG;AAEH,OAAO,KAAK,EACV,WAAW,EAiBZ,MAAM,aAAa,CAAC;AAarB,gDAAgD;AAChD,qBAAa,aAAc,SAAQ,KAAK;IAG7B,OAAO,CAAC,EAAE,MAAM;gBADvB,OAAO,EAAE,MAAM,EACR,OAAO,CAAC,EAAE,MAAM,YAAA;CAK1B;AA8BD;;GAEG;AACH,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,GAAG,WAAW,CAuEtE"}
1
+ {"version":3,"file":"xml-parser.d.ts","sourceRoot":"","sources":["../../src/parser/xml-parser.ts"],"names":[],"mappings":"AAIA;;;GAGG;AAEH,OAAO,KAAK,EACV,WAAW,EAiBZ,MAAM,aAAa,CAAC;AAWrB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAI3D,gDAAgD;AAChD,qBAAa,aAAc,SAAQ,KAAK;IAG7B,OAAO,CAAC,EAAE,MAAM;gBADvB,OAAO,EAAE,MAAM,EACR,OAAO,CAAC,EAAE,MAAM,YAAA;CAK1B;AA8BD,gGAAgG;AAChG,MAAM,WAAW,eAAe;IAAG,OAAO,CAAC,EAAE,eAAe,CAAA;CAAE;AAE9D,0FAA0F;AAC1F,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,WAAW,CAyEjG"}