@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.
- package/README.md +10 -1
- package/dist/audit/coherence/cardinality.js +4 -1
- package/dist/audit/coherence/cardinality.js.map +1 -1
- package/dist/audit/coherence/index.d.ts +0 -1
- package/dist/audit/coherence/index.d.ts.map +1 -1
- package/dist/audit/coherence/index.js +59 -45
- package/dist/audit/coherence/index.js.map +1 -1
- package/dist/audit/coherence/regex.d.ts +3 -3
- package/dist/audit/coherence/regex.js +3 -3
- package/dist/audit/ifc-schema/attribute-value.d.ts +19 -0
- package/dist/audit/ifc-schema/attribute-value.d.ts.map +1 -0
- package/dist/audit/ifc-schema/attribute-value.js +71 -0
- package/dist/audit/ifc-schema/attribute-value.js.map +1 -0
- package/dist/audit/ifc-schema/datatype-check.d.ts +9 -1
- package/dist/audit/ifc-schema/datatype-check.d.ts.map +1 -1
- package/dist/audit/ifc-schema/datatype-check.js +24 -2
- package/dist/audit/ifc-schema/datatype-check.js.map +1 -1
- package/dist/audit/ifc-schema/entity-requirement.d.ts +21 -0
- package/dist/audit/ifc-schema/entity-requirement.d.ts.map +1 -0
- package/dist/audit/ifc-schema/entity-requirement.js +45 -0
- package/dist/audit/ifc-schema/entity-requirement.js.map +1 -0
- package/dist/audit/ifc-schema/index.d.ts.map +1 -1
- package/dist/audit/ifc-schema/index.js +105 -19
- package/dist/audit/ifc-schema/index.js.map +1 -1
- package/dist/audit/index.d.ts.map +1 -1
- package/dist/audit/index.js +8 -2
- package/dist/audit/index.js.map +1 -1
- package/dist/audit/parser-shim.d.ts +15 -1
- package/dist/audit/parser-shim.d.ts.map +1 -1
- package/dist/audit/parser-shim.js +2 -2
- package/dist/audit/parser-shim.js.map +1 -1
- package/dist/audit/structural/index.d.ts +3 -1
- package/dist/audit/structural/index.d.ts.map +1 -1
- package/dist/audit/structural/index.js +48 -179
- package/dist/audit/structural/index.js.map +1 -1
- package/dist/audit/structural/shapes.d.ts +47 -0
- package/dist/audit/structural/shapes.d.ts.map +1 -0
- package/dist/audit/structural/shapes.js +185 -0
- package/dist/audit/structural/shapes.js.map +1 -0
- package/dist/audit/types.d.ts +9 -1
- package/dist/audit/types.d.ts.map +1 -1
- package/dist/audit/xsd/index.js +1 -1
- package/dist/audit/xsd/index.js.map +1 -1
- package/dist/bridge/data-accessor.d.ts.map +1 -1
- package/dist/bridge/data-accessor.js +49 -25
- package/dist/bridge/data-accessor.js.map +1 -1
- package/dist/bridge/index.d.ts +1 -0
- package/dist/bridge/index.d.ts.map +1 -1
- package/dist/bridge/index.js +1 -0
- package/dist/bridge/index.js.map +1 -1
- package/dist/bridge/measure-conversion.d.ts +51 -0
- package/dist/bridge/measure-conversion.d.ts.map +1 -0
- package/dist/bridge/measure-conversion.js +106 -0
- package/dist/bridge/measure-conversion.js.map +1 -0
- package/dist/bridge/predefined-property-sets.d.ts +24 -0
- package/dist/bridge/predefined-property-sets.d.ts.map +1 -0
- package/dist/bridge/predefined-property-sets.js +86 -0
- package/dist/bridge/predefined-property-sets.js.map +1 -0
- package/dist/bridge/predefined-types.d.ts +34 -13
- package/dist/bridge/predefined-types.d.ts.map +1 -1
- package/dist/bridge/predefined-types.js +40 -71
- package/dist/bridge/predefined-types.js.map +1 -1
- package/dist/bridge/project-property.d.ts +43 -0
- package/dist/bridge/project-property.d.ts.map +1 -0
- package/dist/bridge/project-property.js +60 -0
- package/dist/bridge/project-property.js.map +1 -0
- package/dist/bridge/properties.d.ts +4 -3
- package/dist/bridge/properties.d.ts.map +1 -1
- package/dist/bridge/properties.js +64 -111
- package/dist/bridge/properties.js.map +1 -1
- package/dist/bridge/property-overlay-resolver.d.ts +10 -0
- package/dist/bridge/property-overlay-resolver.d.ts.map +1 -1
- package/dist/bridge/property-overlay-resolver.js +53 -4
- package/dist/bridge/property-overlay-resolver.js.map +1 -1
- package/dist/bridge/units.d.ts +49 -20
- package/dist/bridge/units.d.ts.map +1 -1
- package/dist/bridge/units.js +134 -84
- package/dist/bridge/units.js.map +1 -1
- package/dist/constraint-types.d.ts +30 -14
- package/dist/constraint-types.d.ts.map +1 -1
- package/dist/constraints/comparators.d.ts +4 -1
- package/dist/constraints/comparators.d.ts.map +1 -1
- package/dist/constraints/comparators.js +6 -1
- package/dist/constraints/comparators.js.map +1 -1
- package/dist/constraints/describe.d.ts.map +1 -1
- package/dist/constraints/describe.js +67 -21
- package/dist/constraints/describe.js.map +1 -1
- package/dist/constraints/match-bounds.d.ts +25 -0
- package/dist/constraints/match-bounds.d.ts.map +1 -0
- package/dist/constraints/match-bounds.js +112 -0
- package/dist/constraints/match-bounds.js.map +1 -0
- package/dist/constraints/match-family.d.ts.map +1 -1
- package/dist/constraints/match-family.js +25 -90
- package/dist/constraints/match-family.js.map +1 -1
- package/dist/constraints/xsd-datetime.js +6 -6
- package/dist/constraints/xsd-examples.d.ts +20 -0
- package/dist/constraints/xsd-examples.d.ts.map +1 -0
- package/dist/constraints/xsd-examples.js +187 -0
- package/dist/constraints/xsd-examples.js.map +1 -0
- package/dist/constraints/xsd-lexical.d.ts +2 -0
- package/dist/constraints/xsd-lexical.d.ts.map +1 -0
- package/dist/constraints/xsd-lexical.js +49 -0
- package/dist/constraints/xsd-lexical.js.map +1 -0
- package/dist/constraints/xsd-order.d.ts +33 -0
- package/dist/constraints/xsd-order.d.ts.map +1 -0
- package/dist/constraints/xsd-order.js +211 -0
- package/dist/constraints/xsd-order.js.map +1 -0
- package/dist/constraints/xsd-regex-ast.d.ts +37 -0
- package/dist/constraints/xsd-regex-ast.d.ts.map +1 -0
- package/dist/constraints/xsd-regex-ast.js +137 -0
- package/dist/constraints/xsd-regex-ast.js.map +1 -0
- package/dist/constraints/xsd-regex-blocks.d.ts +7 -0
- package/dist/constraints/xsd-regex-blocks.d.ts.map +1 -0
- package/dist/constraints/xsd-regex-blocks.js +68 -0
- package/dist/constraints/xsd-regex-blocks.js.map +1 -0
- package/dist/constraints/xsd-regex.d.ts +2 -45
- package/dist/constraints/xsd-regex.d.ts.map +1 -1
- package/dist/constraints/xsd-regex.js +231 -134
- package/dist/constraints/xsd-regex.js.map +1 -1
- package/dist/facets/entity-facet.d.ts.map +1 -1
- package/dist/facets/entity-facet.js +4 -1
- package/dist/facets/entity-facet.js.map +1 -1
- package/dist/facets/partof-facet.d.ts.map +1 -1
- package/dist/facets/partof-facet.js +80 -19
- package/dist/facets/partof-facet.js.map +1 -1
- package/dist/facets/predefined-type-match.d.ts +8 -3
- package/dist/facets/predefined-type-match.d.ts.map +1 -1
- package/dist/facets/predefined-type-match.js.map +1 -1
- package/dist/index.d.ts +8 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -1
- package/dist/parser/dom.d.ts +4 -0
- package/dist/parser/dom.d.ts.map +1 -1
- package/dist/parser/dom.js +5 -0
- package/dist/parser/dom.js.map +1 -1
- package/dist/parser/parse-restriction.d.ts.map +1 -1
- package/dist/parser/parse-restriction.js +32 -14
- package/dist/parser/parse-restriction.js.map +1 -1
- package/dist/parser/xml-parser.d.ts +7 -4
- package/dist/parser/xml-parser.d.ts.map +1 -1
- package/dist/parser/xml-parser.js +30 -45
- package/dist/parser/xml-parser.js.map +1 -1
- package/dist/preview/audit.d.ts +16 -0
- package/dist/preview/audit.d.ts.map +1 -0
- package/dist/preview/audit.js +58 -0
- package/dist/preview/audit.js.map +1 -0
- package/dist/preview/features.d.ts +30 -0
- package/dist/preview/features.d.ts.map +1 -0
- package/dist/preview/features.js +96 -0
- package/dist/preview/features.js.map +1 -0
- package/dist/preview/parse-ids11.d.ts +9 -0
- package/dist/preview/parse-ids11.d.ts.map +1 -0
- package/dist/preview/parse-ids11.js +90 -0
- package/dist/preview/parse-ids11.js.map +1 -0
- package/dist/preview/partof-nested.d.ts +27 -0
- package/dist/preview/partof-nested.d.ts.map +1 -0
- package/dist/preview/partof-nested.js +61 -0
- package/dist/preview/partof-nested.js.map +1 -0
- package/dist/preview/tolerance.d.ts +15 -0
- package/dist/preview/tolerance.d.ts.map +1 -0
- package/dist/preview/tolerance.js +66 -0
- package/dist/preview/tolerance.js.map +1 -0
- package/dist/preview/types.d.ts +67 -0
- package/dist/preview/types.d.ts.map +1 -0
- package/dist/preview/types.js +5 -0
- package/dist/preview/types.js.map +1 -0
- package/dist/translation/describe-constraint.js +16 -14
- package/dist/translation/describe-constraint.js.map +1 -1
- package/dist/translation/locales/de.d.ts +2 -0
- package/dist/translation/locales/de.d.ts.map +1 -1
- package/dist/translation/locales/de.js +2 -0
- package/dist/translation/locales/de.js.map +1 -1
- package/dist/translation/locales/en.d.ts +2 -0
- package/dist/translation/locales/en.d.ts.map +1 -1
- package/dist/translation/locales/en.js +2 -0
- package/dist/translation/locales/en.js.map +1 -1
- package/dist/translation/locales/fr.d.ts +2 -0
- package/dist/translation/locales/fr.d.ts.map +1 -1
- package/dist/translation/locales/fr.js +2 -0
- package/dist/translation/locales/fr.js.map +1 -1
- package/dist/translation/locales/index.d.ts +1 -0
- package/dist/translation/locales/index.d.ts.map +1 -1
- package/dist/translation/locales/index.js +1 -0
- package/dist/translation/locales/index.js.map +1 -1
- package/dist/translation/locales/it.d.ts +198 -0
- package/dist/translation/locales/it.d.ts.map +1 -0
- package/dist/translation/locales/it.js +235 -0
- package/dist/translation/locales/it.js.map +1 -0
- package/dist/translation/service.d.ts +2 -6
- package/dist/translation/service.d.ts.map +1 -1
- package/dist/translation/service.js +17 -25
- package/dist/translation/service.js.map +1 -1
- package/dist/types.d.ts +26 -31
- package/dist/types.d.ts.map +1 -1
- package/dist/validation/format-failure-reason.js +1 -1
- package/dist/validation/format-failure-reason.js.map +1 -1
- package/dist/validation/prohibited-specification.d.ts +31 -0
- package/dist/validation/prohibited-specification.d.ts.map +1 -0
- package/dist/validation/prohibited-specification.js +25 -0
- package/dist/validation/prohibited-specification.js.map +1 -0
- package/dist/validation/validator.d.ts.map +1 -1
- package/dist/validation/validator.js +14 -11
- package/dist/validation/validator.js.map +1 -1
- package/dist/writer/constraint.d.ts +8 -0
- package/dist/writer/constraint.d.ts.map +1 -0
- package/dist/writer/constraint.js +142 -0
- package/dist/writer/constraint.js.map +1 -0
- package/dist/writer/index.d.ts +48 -0
- package/dist/writer/index.d.ts.map +1 -0
- package/dist/writer/index.js +209 -0
- package/dist/writer/index.js.map +1 -0
- package/dist/writer/xml-lines.d.ts +17 -0
- package/dist/writer/xml-lines.d.ts.map +1 -0
- package/dist/writer/xml-lines.js +69 -0
- package/dist/writer/xml-lines.js.map +1 -0
- 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 =
|
|
29
|
-
?
|
|
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 =
|
|
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
|
|
101
|
+
field: relationKey(facet),
|
|
48
102
|
expected: `${relationName} ${expectedEntity}`,
|
|
49
103
|
context: {
|
|
50
|
-
relation: facet
|
|
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
|
-
|
|
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 =
|
|
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
|
|
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
|
|
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
|
|
195
|
+
relation: relationKey(facet),
|
|
137
196
|
parentType: parent.entityType,
|
|
138
197
|
},
|
|
139
198
|
},
|
|
140
199
|
};
|
|
141
200
|
}
|
|
142
201
|
}
|
|
143
|
-
|
|
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":"AAAA;;+DAE+D;AAa/D,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAqB,MAAM,yBAAyB,CAAC;AAC/F,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;
|
|
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
|
|
21
|
-
*
|
|
22
|
-
*
|
|
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
|
|
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;
|
|
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';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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,
|
|
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"}
|
package/dist/parser/dom.d.ts
CHANGED
|
@@ -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
|
package/dist/parser/dom.d.ts.map
CHANGED
|
@@ -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"}
|
package/dist/parser/dom.js
CHANGED
|
@@ -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
|
package/dist/parser/dom.js.map
CHANGED
|
@@ -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;
|
|
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
|
-
|
|
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
|
|
121
|
+
return;
|
|
112
122
|
const raw = rawValueOf(e);
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
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
|
|
124
|
-
if (
|
|
125
|
-
return
|
|
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
|
-
|
|
130
|
-
|
|
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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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;
|
|
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"}
|