@ifc-lite/ids 3.1.0 → 3.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/bounded-cache.d.ts +18 -0
- package/dist/bounded-cache.d.ts.map +1 -0
- package/dist/bounded-cache.js +40 -0
- package/dist/bounded-cache.js.map +1 -0
- 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 +9 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -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/report-types.d.ts +7 -0
- package/dist/report-types.d.ts.map +1 -1
- 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/pass-rate.d.ts +14 -0
- package/dist/validation/pass-rate.d.ts.map +1 -0
- package/dist/validation/pass-rate.js +25 -0
- package/dist/validation/pass-rate.js.map +1 -0
- 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 +4 -2
- package/dist/validation/validator.d.ts.map +1 -1
- package/dist/validation/validator.js +23 -18
- 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
|
@@ -1,171 +1,11 @@
|
|
|
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 { SHAPE_IDS, SHAPE_INFO, SHAPE_SPECIFICATIONS, SHAPE_SPECIFICATION, SHAPE_APPLICABILITY, SHAPE_REQUIREMENTS, SHAPE_IDS_VALUE, SHAPE_SIMPLE_VALUE, SHAPE_XS_RESTRICTION, SHAPE_XS_FACET, XS_RESTRICTION_FACETS, shapeInRequirements, facetBaseShape, ids11FacetShape, IDS11_PARTOF_NESTED, } from './shapes.js';
|
|
4
5
|
const XS_NS = 'http://www.w3.org/2001/XMLSchema';
|
|
5
6
|
// `xmlns`, `xmlns:*`, `xsi:*`, `xml:*` are tolerated as global hooks —
|
|
6
7
|
// they're not specific to any IDS element but XML allows them anywhere.
|
|
7
8
|
const TOLERATED_GLOBAL_ATTR_PREFIXES = new Set(['xmlns', 'xsi', 'xml']);
|
|
8
|
-
const SHAPE_IDS = {
|
|
9
|
-
attrs: [],
|
|
10
|
-
children: ['info', 'specifications'],
|
|
11
|
-
};
|
|
12
|
-
const SHAPE_INFO = {
|
|
13
|
-
attrs: [],
|
|
14
|
-
children: [
|
|
15
|
-
'title',
|
|
16
|
-
'copyright',
|
|
17
|
-
'version',
|
|
18
|
-
'description',
|
|
19
|
-
'author',
|
|
20
|
-
'date',
|
|
21
|
-
'purpose',
|
|
22
|
-
'milestone',
|
|
23
|
-
],
|
|
24
|
-
};
|
|
25
|
-
const SHAPE_SPECIFICATIONS = {
|
|
26
|
-
attrs: [],
|
|
27
|
-
children: ['specification'],
|
|
28
|
-
};
|
|
29
|
-
const SHAPE_SPECIFICATION = {
|
|
30
|
-
attrs: ['name', 'ifcVersion', 'identifier', 'description', 'instructions'],
|
|
31
|
-
requiredAttrs: ['name', 'ifcVersion'],
|
|
32
|
-
children: ['applicability', 'requirements'],
|
|
33
|
-
};
|
|
34
|
-
const SHAPE_APPLICABILITY = {
|
|
35
|
-
// The XSD attaches the xs:occurs attribute group → minOccurs, maxOccurs.
|
|
36
|
-
attrs: ['minOccurs', 'maxOccurs'],
|
|
37
|
-
children: [
|
|
38
|
-
'entity',
|
|
39
|
-
'partOf',
|
|
40
|
-
'classification',
|
|
41
|
-
'attribute',
|
|
42
|
-
'property',
|
|
43
|
-
'material',
|
|
44
|
-
],
|
|
45
|
-
};
|
|
46
|
-
const SHAPE_REQUIREMENTS = {
|
|
47
|
-
attrs: ['description'],
|
|
48
|
-
children: [
|
|
49
|
-
'entity',
|
|
50
|
-
'partOf',
|
|
51
|
-
'classification',
|
|
52
|
-
'attribute',
|
|
53
|
-
'property',
|
|
54
|
-
'material',
|
|
55
|
-
],
|
|
56
|
-
};
|
|
57
|
-
// Per-facet shapes in *applicability* context (no cardinality / uri /
|
|
58
|
-
// instructions) vs *requirements* context (extension types per XSD).
|
|
59
|
-
const SHAPE_ENTITY_BODY = {
|
|
60
|
-
attrs: [],
|
|
61
|
-
children: ['name', 'predefinedType'],
|
|
62
|
-
};
|
|
63
|
-
const SHAPE_ATTRIBUTE_BODY = {
|
|
64
|
-
attrs: [],
|
|
65
|
-
children: ['name', 'value'],
|
|
66
|
-
};
|
|
67
|
-
const SHAPE_CLASSIFICATION_BODY = {
|
|
68
|
-
attrs: [],
|
|
69
|
-
children: ['value', 'system'],
|
|
70
|
-
};
|
|
71
|
-
const SHAPE_PARTOF_BODY = {
|
|
72
|
-
attrs: ['relation'],
|
|
73
|
-
children: ['entity'],
|
|
74
|
-
};
|
|
75
|
-
const SHAPE_PROPERTY_BODY = {
|
|
76
|
-
attrs: ['dataType'],
|
|
77
|
-
children: ['propertySet', 'baseName', 'value'],
|
|
78
|
-
};
|
|
79
|
-
const SHAPE_MATERIAL_BODY = {
|
|
80
|
-
attrs: [],
|
|
81
|
-
children: ['value'],
|
|
82
|
-
};
|
|
83
|
-
// In *requirements* context, the schema extends each facet with
|
|
84
|
-
// cardinality / instructions / uri (and entity gets just instructions).
|
|
85
|
-
function shapeInRequirements(facetTag) {
|
|
86
|
-
const base = facetBaseShape(facetTag);
|
|
87
|
-
switch (facetTag.toLowerCase()) {
|
|
88
|
-
case 'entity':
|
|
89
|
-
return { ...base, attrs: [...base.attrs, 'instructions'] };
|
|
90
|
-
case 'partof':
|
|
91
|
-
return {
|
|
92
|
-
...base,
|
|
93
|
-
attrs: [...base.attrs, 'cardinality', 'instructions'],
|
|
94
|
-
};
|
|
95
|
-
case 'attribute':
|
|
96
|
-
return {
|
|
97
|
-
...base,
|
|
98
|
-
attrs: [...base.attrs, 'cardinality', 'instructions'],
|
|
99
|
-
};
|
|
100
|
-
case 'classification':
|
|
101
|
-
case 'property':
|
|
102
|
-
case 'material':
|
|
103
|
-
return {
|
|
104
|
-
...base,
|
|
105
|
-
attrs: [...base.attrs, 'cardinality', 'instructions', 'uri'],
|
|
106
|
-
};
|
|
107
|
-
default:
|
|
108
|
-
return base;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
function facetBaseShape(tag) {
|
|
112
|
-
// Tags arrive lowercased from `localName.toLowerCase()`. Match
|
|
113
|
-
// case-insensitively so `partof` resolves to the partOf shape.
|
|
114
|
-
switch (tag.toLowerCase()) {
|
|
115
|
-
case 'entity':
|
|
116
|
-
return SHAPE_ENTITY_BODY;
|
|
117
|
-
case 'attribute':
|
|
118
|
-
return SHAPE_ATTRIBUTE_BODY;
|
|
119
|
-
case 'classification':
|
|
120
|
-
return SHAPE_CLASSIFICATION_BODY;
|
|
121
|
-
case 'partof':
|
|
122
|
-
return SHAPE_PARTOF_BODY;
|
|
123
|
-
case 'property':
|
|
124
|
-
return SHAPE_PROPERTY_BODY;
|
|
125
|
-
case 'material':
|
|
126
|
-
return SHAPE_MATERIAL_BODY;
|
|
127
|
-
default:
|
|
128
|
-
return { attrs: [], children: [] };
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
// idsValue (used for <name>, <value>, <baseName>, <propertySet>,
|
|
132
|
-
// <system>, <predefinedType>): choice of simpleValue OR xs:restriction.
|
|
133
|
-
const SHAPE_IDS_VALUE = {
|
|
134
|
-
attrs: [],
|
|
135
|
-
children: ['simpleValue'],
|
|
136
|
-
xsChildren: ['restriction'],
|
|
137
|
-
};
|
|
138
|
-
const SHAPE_SIMPLE_VALUE = {
|
|
139
|
-
attrs: [],
|
|
140
|
-
children: [],
|
|
141
|
-
textOnly: true,
|
|
142
|
-
};
|
|
143
|
-
// xs:restriction child facets the IDS XSD admits.
|
|
144
|
-
const XS_RESTRICTION_FACETS = [
|
|
145
|
-
'enumeration',
|
|
146
|
-
'pattern',
|
|
147
|
-
'minInclusive',
|
|
148
|
-
'maxInclusive',
|
|
149
|
-
'minExclusive',
|
|
150
|
-
'maxExclusive',
|
|
151
|
-
'length',
|
|
152
|
-
'minLength',
|
|
153
|
-
'maxLength',
|
|
154
|
-
'totalDigits',
|
|
155
|
-
'fractionDigits',
|
|
156
|
-
'whiteSpace',
|
|
157
|
-
];
|
|
158
|
-
const SHAPE_XS_RESTRICTION = {
|
|
159
|
-
attrs: ['base'],
|
|
160
|
-
children: [],
|
|
161
|
-
xsChildren: XS_RESTRICTION_FACETS,
|
|
162
|
-
};
|
|
163
|
-
// Each xs:enumeration/xs:pattern/etc carries a `value` attribute.
|
|
164
|
-
const SHAPE_XS_FACET = {
|
|
165
|
-
attrs: ['value'],
|
|
166
|
-
children: [],
|
|
167
|
-
textOnly: true,
|
|
168
|
-
};
|
|
169
9
|
/**
|
|
170
10
|
* Walks the parsed XML root and emits issues for any element/attribute
|
|
171
11
|
* outside the IDS XSD's shape. Re-uses xmldom/native DOMParser for the
|
|
@@ -173,7 +13,9 @@ const SHAPE_XS_FACET = {
|
|
|
173
13
|
* `IDSDocument` shape can't tell us about extra attributes/elements
|
|
174
14
|
* stripped during parsing).
|
|
175
15
|
*/
|
|
176
|
-
export async function runStructuralAudit(xml
|
|
16
|
+
export async function runStructuralAudit(xml,
|
|
17
|
+
/** IDS 1.1 PREVIEW: admit the 1.1 candidate shapes (see `ids11FacetShape`). */
|
|
18
|
+
ids11 = false) {
|
|
177
19
|
const issues = [];
|
|
178
20
|
const xmlString = typeof xml === 'string' ? xml : new TextDecoder().decode(xml);
|
|
179
21
|
// BOM strip — same fix as parser.
|
|
@@ -190,7 +32,7 @@ export async function runStructuralAudit(xml) {
|
|
|
190
32
|
const root = doc.documentElement;
|
|
191
33
|
if (!root || (root.localName ?? '').toLowerCase() !== 'ids')
|
|
192
34
|
return issues;
|
|
193
|
-
walkIds(root, issues);
|
|
35
|
+
walkIds(root, issues, ids11);
|
|
194
36
|
return issues;
|
|
195
37
|
}
|
|
196
38
|
let parserPromise;
|
|
@@ -209,62 +51,89 @@ function getParser() {
|
|
|
209
51
|
})();
|
|
210
52
|
return parserPromise;
|
|
211
53
|
}
|
|
212
|
-
function walkIds(el, issues) {
|
|
54
|
+
function walkIds(el, issues, ids11) {
|
|
213
55
|
checkShape(el, SHAPE_IDS, 'ids', issues);
|
|
214
56
|
for (const child of childElements(el)) {
|
|
215
57
|
const ln = (child.localName ?? '').toLowerCase();
|
|
216
58
|
if (ln === 'info')
|
|
217
59
|
walkInfo(child, 'ids.info', issues);
|
|
218
60
|
else if (ln === 'specifications')
|
|
219
|
-
walkSpecifications(child, 'ids.specifications', issues);
|
|
61
|
+
walkSpecifications(child, 'ids.specifications', issues, ids11);
|
|
220
62
|
}
|
|
221
63
|
}
|
|
222
64
|
function walkInfo(el, path, issues) {
|
|
223
65
|
checkShape(el, SHAPE_INFO, path, issues);
|
|
224
66
|
// Info children are leaf text nodes; don't recurse.
|
|
225
67
|
}
|
|
226
|
-
function walkSpecifications(el, path, issues) {
|
|
68
|
+
function walkSpecifications(el, path, issues, ids11) {
|
|
227
69
|
checkShape(el, SHAPE_SPECIFICATIONS, path, issues);
|
|
228
70
|
let i = 0;
|
|
229
71
|
for (const child of childElements(el)) {
|
|
230
72
|
const ln = (child.localName ?? '').toLowerCase();
|
|
231
73
|
if (ln === 'specification')
|
|
232
|
-
walkSpecification(child, `${path}.specification[${i++}]`, issues);
|
|
74
|
+
walkSpecification(child, `${path}.specification[${i++}]`, issues, ids11);
|
|
233
75
|
}
|
|
234
76
|
}
|
|
235
|
-
function walkSpecification(el, path, issues) {
|
|
77
|
+
function walkSpecification(el, path, issues, ids11) {
|
|
236
78
|
checkShape(el, SHAPE_SPECIFICATION, path, issues);
|
|
237
79
|
for (const child of childElements(el)) {
|
|
238
80
|
const ln = (child.localName ?? '').toLowerCase();
|
|
239
81
|
if (ln === 'applicability')
|
|
240
|
-
walkFacetContainer(child, `${path}.applicability`, false, issues);
|
|
82
|
+
walkFacetContainer(child, `${path}.applicability`, false, issues, ids11);
|
|
241
83
|
else if (ln === 'requirements')
|
|
242
|
-
walkFacetContainer(child, `${path}.requirements`, true, issues);
|
|
84
|
+
walkFacetContainer(child, `${path}.requirements`, true, issues, ids11);
|
|
243
85
|
}
|
|
244
86
|
}
|
|
245
|
-
function walkFacetContainer(el, path, isRequirements, issues) {
|
|
87
|
+
function walkFacetContainer(el, path, isRequirements, issues, ids11) {
|
|
246
88
|
checkShape(el, isRequirements ? SHAPE_REQUIREMENTS : SHAPE_APPLICABILITY, path, issues);
|
|
247
89
|
let i = 0;
|
|
248
90
|
for (const child of childElements(el)) {
|
|
249
91
|
const ln = (child.localName ?? '').toLowerCase();
|
|
250
|
-
walkFacet(child, ln, `${path}.facets[${i++}]`, isRequirements, issues);
|
|
92
|
+
walkFacet(child, ln, `${path}.facets[${i++}]`, isRequirements ? 'requirement' : 'applicability', issues, ids11);
|
|
251
93
|
}
|
|
252
94
|
}
|
|
253
|
-
function walkFacet(el, tag, path,
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
95
|
+
function walkFacet(el, tag, path, context, issues, ids11) {
|
|
96
|
+
let shape;
|
|
97
|
+
if (ids11)
|
|
98
|
+
shape = ids11FacetShape(tag, context);
|
|
99
|
+
else
|
|
100
|
+
shape = context === 'requirement' ? shapeInRequirements(tag) : facetBaseShape(tag);
|
|
257
101
|
checkShape(el, shape, path, issues);
|
|
102
|
+
if (ids11 && tag === 'partof')
|
|
103
|
+
checkPartOfEntityCount(el, path, issues);
|
|
258
104
|
for (const child of childElements(el)) {
|
|
259
105
|
const ln = (child.localName ?? '').toLowerCase();
|
|
260
|
-
walkIdsValueOrFacet(child, ln, `${path}.${ln}`,
|
|
106
|
+
walkIdsValueOrFacet(child, ln, `${path}.${ln}`, tag === 'partof', issues, ids11);
|
|
261
107
|
}
|
|
262
108
|
}
|
|
263
|
-
|
|
109
|
+
/**
|
|
110
|
+
* IDS 1.1 PREVIEW: #380 turns partOf's `xs:sequence` into an unbounded
|
|
111
|
+
* `xs:choice`, which no longer pins the related entity to one. #379 says
|
|
112
|
+
* "at least one entity"; the conservative reading taken here is exactly one,
|
|
113
|
+
* because several conjunctive entity facets on one related element are
|
|
114
|
+
* never satisfiable for distinct classes.
|
|
115
|
+
*/
|
|
116
|
+
function checkPartOfEntityCount(el, path, issues) {
|
|
117
|
+
const entities = childElements(el).filter((c) => (c.localName ?? '').toLowerCase() === 'entity').length;
|
|
118
|
+
if (entities === 1)
|
|
119
|
+
return;
|
|
120
|
+
issues.push({
|
|
121
|
+
severity: 'error',
|
|
122
|
+
code: 'E_XSD_STRUCTURE',
|
|
123
|
+
message: `<partOf> needs exactly one <entity> (IDS 1.1 preview reading of #379/#380), found ${entities}`,
|
|
124
|
+
path,
|
|
125
|
+
detail: { element: 'partOf', entities },
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
function walkIdsValueOrFacet(el, tag, path, inPartOf, issues, ids11) {
|
|
129
|
+
if (ids11 && inPartOf && IDS11_PARTOF_NESTED.includes(tag)) {
|
|
130
|
+
walkFacet(el, tag, path, 'nested', issues, ids11);
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
264
133
|
switch (tag) {
|
|
265
134
|
case 'entity':
|
|
266
135
|
// `partOf > entity` is a nested entity facet (applicability shape).
|
|
267
|
-
walkFacet(el, 'entity', path,
|
|
136
|
+
walkFacet(el, 'entity', path, 'nested', issues, false);
|
|
268
137
|
return;
|
|
269
138
|
case 'name':
|
|
270
139
|
case 'value':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/audit/structural/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/audit/structural/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Element shapes of the IDS 1.0 XSD (`ids.xsd`) for the structural audit,
|
|
3
|
+
* split out of `index.ts` so the walk and the tables can change apart.
|
|
4
|
+
* `ids11ShapeFor` overlays the IDS 1.1 PREVIEW candidates on top.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Element shape — the union of attributes and child-element local-names
|
|
8
|
+
* the IDS XSD permits at this position. `attrs` lists the unprefixed
|
|
9
|
+
* names; presence of any other (non-tolerated) attribute is an error.
|
|
10
|
+
*/
|
|
11
|
+
export interface ElementShape {
|
|
12
|
+
/** Allowed attribute local-names. */
|
|
13
|
+
attrs: readonly string[];
|
|
14
|
+
/** Required attribute local-names (subset of `attrs`). */
|
|
15
|
+
requiredAttrs?: readonly string[];
|
|
16
|
+
/** Allowed child element local-names. */
|
|
17
|
+
children: readonly string[];
|
|
18
|
+
/** Children allowed only as bare text content (no nested elements). */
|
|
19
|
+
textOnly?: boolean;
|
|
20
|
+
/** Allowed XSD-namespaced child local-names (e.g. `xs:restriction`). */
|
|
21
|
+
xsChildren?: readonly string[];
|
|
22
|
+
}
|
|
23
|
+
export declare const SHAPE_IDS: ElementShape;
|
|
24
|
+
export declare const SHAPE_INFO: ElementShape;
|
|
25
|
+
export declare const SHAPE_SPECIFICATIONS: ElementShape;
|
|
26
|
+
export declare const SHAPE_SPECIFICATION: ElementShape;
|
|
27
|
+
export declare const SHAPE_APPLICABILITY: ElementShape;
|
|
28
|
+
export declare const SHAPE_REQUIREMENTS: ElementShape;
|
|
29
|
+
export declare function shapeInRequirements(facetTag: string): ElementShape;
|
|
30
|
+
export declare function facetBaseShape(tag: string): ElementShape;
|
|
31
|
+
export declare const SHAPE_IDS_VALUE: ElementShape;
|
|
32
|
+
export declare const SHAPE_SIMPLE_VALUE: ElementShape;
|
|
33
|
+
export declare const XS_RESTRICTION_FACETS: string[];
|
|
34
|
+
export declare const SHAPE_XS_RESTRICTION: ElementShape;
|
|
35
|
+
export declare const SHAPE_XS_FACET: ElementShape;
|
|
36
|
+
/** Facets IDS 1.1 PREVIEW (#379, draft PR #380) allows inside `partOf` besides its entity. */
|
|
37
|
+
export declare const IDS11_PARTOF_NESTED: readonly ["attribute", "property", "classification", "material"];
|
|
38
|
+
/** Where a facet element sits: IDS 1.0 contexts, or nested in partOf (1.1 PREVIEW). */
|
|
39
|
+
export type FacetContext = 'applicability' | 'requirement' | 'nested';
|
|
40
|
+
/**
|
|
41
|
+
* A facet's shape with the IDS 1.1 PREVIEW candidates overlaid: `uri` on
|
|
42
|
+
* property/classification/material outside requirements (#188, #251; PR #382
|
|
43
|
+
* on the upstream `ver/1.1.x` branch), `instructions` on applicability
|
|
44
|
+
* facets (#154 proposal) and the nested facets of partOf (#380 draft).
|
|
45
|
+
*/
|
|
46
|
+
export declare function ids11FacetShape(tag: string, context: FacetContext): ElementShape;
|
|
47
|
+
//# sourceMappingURL=shapes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shapes.d.ts","sourceRoot":"","sources":["../../../src/audit/structural/shapes.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AAEH;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,qCAAqC;IACrC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,0DAA0D;IAC1D,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,yCAAyC;IACzC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,uEAAuE;IACvE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wEAAwE;IACxE,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAChC;AAED,eAAO,MAAM,SAAS,EAAE,YAGvB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,YAYxB,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,YAGlC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,YAIjC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,YAWjC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,YAUhC,CAAC;AAgCF,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAyBlE;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAmBxD;AAID,eAAO,MAAM,eAAe,EAAE,YAI7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,YAIhC,CAAC;AAGF,eAAO,MAAM,qBAAqB,UAajC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,YAIlC,CAAC;AAGF,eAAO,MAAM,cAAc,EAAE,YAI5B,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,mBAAmB,kEAAmE,CAAC;AAEpG,uFAAuF;AACvF,MAAM,MAAM,YAAY,GAAG,eAAe,GAAG,aAAa,GAAG,QAAQ,CAAC;AAEtE;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY,CAShF"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
+
export const SHAPE_IDS = {
|
|
5
|
+
attrs: [],
|
|
6
|
+
children: ['info', 'specifications'],
|
|
7
|
+
};
|
|
8
|
+
export const SHAPE_INFO = {
|
|
9
|
+
attrs: [],
|
|
10
|
+
children: [
|
|
11
|
+
'title',
|
|
12
|
+
'copyright',
|
|
13
|
+
'version',
|
|
14
|
+
'description',
|
|
15
|
+
'author',
|
|
16
|
+
'date',
|
|
17
|
+
'purpose',
|
|
18
|
+
'milestone',
|
|
19
|
+
],
|
|
20
|
+
};
|
|
21
|
+
export const SHAPE_SPECIFICATIONS = {
|
|
22
|
+
attrs: [],
|
|
23
|
+
children: ['specification'],
|
|
24
|
+
};
|
|
25
|
+
export const SHAPE_SPECIFICATION = {
|
|
26
|
+
attrs: ['name', 'ifcVersion', 'identifier', 'description', 'instructions'],
|
|
27
|
+
requiredAttrs: ['name', 'ifcVersion'],
|
|
28
|
+
children: ['applicability', 'requirements'],
|
|
29
|
+
};
|
|
30
|
+
export const SHAPE_APPLICABILITY = {
|
|
31
|
+
// The XSD attaches the xs:occurs attribute group → minOccurs, maxOccurs.
|
|
32
|
+
attrs: ['minOccurs', 'maxOccurs'],
|
|
33
|
+
children: [
|
|
34
|
+
'entity',
|
|
35
|
+
'partOf',
|
|
36
|
+
'classification',
|
|
37
|
+
'attribute',
|
|
38
|
+
'property',
|
|
39
|
+
'material',
|
|
40
|
+
],
|
|
41
|
+
};
|
|
42
|
+
export const SHAPE_REQUIREMENTS = {
|
|
43
|
+
attrs: ['description'],
|
|
44
|
+
children: [
|
|
45
|
+
'entity',
|
|
46
|
+
'partOf',
|
|
47
|
+
'classification',
|
|
48
|
+
'attribute',
|
|
49
|
+
'property',
|
|
50
|
+
'material',
|
|
51
|
+
],
|
|
52
|
+
};
|
|
53
|
+
// Per-facet shapes in *applicability* context (no cardinality / uri /
|
|
54
|
+
// instructions) vs *requirements* context (extension types per XSD).
|
|
55
|
+
const SHAPE_ENTITY_BODY = {
|
|
56
|
+
attrs: [],
|
|
57
|
+
children: ['name', 'predefinedType'],
|
|
58
|
+
};
|
|
59
|
+
const SHAPE_ATTRIBUTE_BODY = {
|
|
60
|
+
attrs: [],
|
|
61
|
+
children: ['name', 'value'],
|
|
62
|
+
};
|
|
63
|
+
const SHAPE_CLASSIFICATION_BODY = {
|
|
64
|
+
attrs: [],
|
|
65
|
+
children: ['value', 'system'],
|
|
66
|
+
};
|
|
67
|
+
const SHAPE_PARTOF_BODY = {
|
|
68
|
+
attrs: ['relation'],
|
|
69
|
+
children: ['entity'],
|
|
70
|
+
};
|
|
71
|
+
const SHAPE_PROPERTY_BODY = {
|
|
72
|
+
attrs: ['dataType'],
|
|
73
|
+
children: ['propertySet', 'baseName', 'value'],
|
|
74
|
+
};
|
|
75
|
+
const SHAPE_MATERIAL_BODY = {
|
|
76
|
+
attrs: [],
|
|
77
|
+
children: ['value'],
|
|
78
|
+
};
|
|
79
|
+
// In *requirements* context, the schema extends each facet with
|
|
80
|
+
// cardinality / instructions / uri (and entity gets just instructions).
|
|
81
|
+
export function shapeInRequirements(facetTag) {
|
|
82
|
+
const base = facetBaseShape(facetTag);
|
|
83
|
+
switch (facetTag.toLowerCase()) {
|
|
84
|
+
case 'entity':
|
|
85
|
+
return { ...base, attrs: [...base.attrs, 'instructions'] };
|
|
86
|
+
case 'partof':
|
|
87
|
+
return {
|
|
88
|
+
...base,
|
|
89
|
+
attrs: [...base.attrs, 'cardinality', 'instructions'],
|
|
90
|
+
};
|
|
91
|
+
case 'attribute':
|
|
92
|
+
return {
|
|
93
|
+
...base,
|
|
94
|
+
attrs: [...base.attrs, 'cardinality', 'instructions'],
|
|
95
|
+
};
|
|
96
|
+
case 'classification':
|
|
97
|
+
case 'property':
|
|
98
|
+
case 'material':
|
|
99
|
+
return {
|
|
100
|
+
...base,
|
|
101
|
+
attrs: [...base.attrs, 'cardinality', 'instructions', 'uri'],
|
|
102
|
+
};
|
|
103
|
+
default:
|
|
104
|
+
return base;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
export function facetBaseShape(tag) {
|
|
108
|
+
// Tags arrive lowercased from `localName.toLowerCase()`. Match
|
|
109
|
+
// case-insensitively so `partof` resolves to the partOf shape.
|
|
110
|
+
switch (tag.toLowerCase()) {
|
|
111
|
+
case 'entity':
|
|
112
|
+
return SHAPE_ENTITY_BODY;
|
|
113
|
+
case 'attribute':
|
|
114
|
+
return SHAPE_ATTRIBUTE_BODY;
|
|
115
|
+
case 'classification':
|
|
116
|
+
return SHAPE_CLASSIFICATION_BODY;
|
|
117
|
+
case 'partof':
|
|
118
|
+
return SHAPE_PARTOF_BODY;
|
|
119
|
+
case 'property':
|
|
120
|
+
return SHAPE_PROPERTY_BODY;
|
|
121
|
+
case 'material':
|
|
122
|
+
return SHAPE_MATERIAL_BODY;
|
|
123
|
+
default:
|
|
124
|
+
return { attrs: [], children: [] };
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
// idsValue (used for <name>, <value>, <baseName>, <propertySet>,
|
|
128
|
+
// <system>, <predefinedType>): choice of simpleValue OR xs:restriction.
|
|
129
|
+
export const SHAPE_IDS_VALUE = {
|
|
130
|
+
attrs: [],
|
|
131
|
+
children: ['simpleValue'],
|
|
132
|
+
xsChildren: ['restriction'],
|
|
133
|
+
};
|
|
134
|
+
export const SHAPE_SIMPLE_VALUE = {
|
|
135
|
+
attrs: [],
|
|
136
|
+
children: [],
|
|
137
|
+
textOnly: true,
|
|
138
|
+
};
|
|
139
|
+
// xs:restriction child facets the IDS XSD admits.
|
|
140
|
+
export const XS_RESTRICTION_FACETS = [
|
|
141
|
+
'enumeration',
|
|
142
|
+
'pattern',
|
|
143
|
+
'minInclusive',
|
|
144
|
+
'maxInclusive',
|
|
145
|
+
'minExclusive',
|
|
146
|
+
'maxExclusive',
|
|
147
|
+
'length',
|
|
148
|
+
'minLength',
|
|
149
|
+
'maxLength',
|
|
150
|
+
'totalDigits',
|
|
151
|
+
'fractionDigits',
|
|
152
|
+
'whiteSpace',
|
|
153
|
+
];
|
|
154
|
+
export const SHAPE_XS_RESTRICTION = {
|
|
155
|
+
attrs: ['base'],
|
|
156
|
+
children: [],
|
|
157
|
+
xsChildren: XS_RESTRICTION_FACETS,
|
|
158
|
+
};
|
|
159
|
+
// Each xs:enumeration/xs:pattern/etc carries a `value` attribute.
|
|
160
|
+
export const SHAPE_XS_FACET = {
|
|
161
|
+
attrs: ['value'],
|
|
162
|
+
children: [],
|
|
163
|
+
textOnly: true,
|
|
164
|
+
};
|
|
165
|
+
/** Facets IDS 1.1 PREVIEW (#379, draft PR #380) allows inside `partOf` besides its entity. */
|
|
166
|
+
export const IDS11_PARTOF_NESTED = ['attribute', 'property', 'classification', 'material'];
|
|
167
|
+
/**
|
|
168
|
+
* A facet's shape with the IDS 1.1 PREVIEW candidates overlaid: `uri` on
|
|
169
|
+
* property/classification/material outside requirements (#188, #251; PR #382
|
|
170
|
+
* on the upstream `ver/1.1.x` branch), `instructions` on applicability
|
|
171
|
+
* facets (#154 proposal) and the nested facets of partOf (#380 draft).
|
|
172
|
+
*/
|
|
173
|
+
export function ids11FacetShape(tag, context) {
|
|
174
|
+
const lower = tag.toLowerCase();
|
|
175
|
+
const base = context === 'requirement' ? shapeInRequirements(lower) : facetBaseShape(lower);
|
|
176
|
+
const attrs = [...base.attrs];
|
|
177
|
+
const takesUri = lower === 'property' || lower === 'classification' || lower === 'material';
|
|
178
|
+
if (context !== 'requirement' && takesUri)
|
|
179
|
+
attrs.push('uri');
|
|
180
|
+
if (context === 'applicability')
|
|
181
|
+
attrs.push('instructions');
|
|
182
|
+
const children = lower === 'partof' ? [...base.children, ...IDS11_PARTOF_NESTED] : base.children;
|
|
183
|
+
return { ...base, attrs, children };
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=shapes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shapes.js","sourceRoot":"","sources":["../../../src/audit/structural/shapes.ts"],"names":[],"mappings":"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"}
|
package/dist/audit/types.d.ts
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* model conforms to a valid IDS).
|
|
10
10
|
*/
|
|
11
11
|
import type { FacetType, IDSDocument, IFCVersion } from '../types.js';
|
|
12
|
+
import type { IDSPreviewFlags } from '../preview/types.js';
|
|
12
13
|
/** Severity buckets for audit issues. */
|
|
13
14
|
export type IDSAuditSeverity = 'error' | 'warning' | 'info';
|
|
14
15
|
/**
|
|
@@ -21,7 +22,7 @@ export type IDSAuditSeverity = 'error' | 'warning' | 'info';
|
|
|
21
22
|
*
|
|
22
23
|
* Stable across minor versions — additions are backwards-compatible.
|
|
23
24
|
*/
|
|
24
|
-
export type IDSAuditCode = 'E_PARSE_XML' | 'E_PARSE_ROOT' | 'E_PARSE_FACET' | 'E_PARSE_UNKNOWN' | 'E_XSD_REQUIRED_ATTR' | 'E_XSD_ENUM' | 'E_XSD_PATTERN' | 'E_XSD_STRUCTURE' | 'E_XSD_SCHEMA_LOCATION' | 'W_XSD_DEPRECATED' | 'E_IFC_ENTITY_UNKNOWN' | 'E_IFC_PREDEF_TYPE_INVALID' | 'E_IFC_PSET_UNKNOWN' | 'W_IFC_PSET_RESERVED_PREFIX' | 'E_IFC_PROP_NOT_IN_PSET' | 'W_IFC_DATATYPE_MISMATCH' | 'E_IFC_ATTR_UNKNOWN_FOR_ENTITY' | 'E_IFC_PARTOF_RELATION' | 'E_IFC_PARTOF_ENTITY' | 'E_RESTRICTION_EMPTY' | 'E_RESTRICTION_RANGE' | 'E_RESTRICTION_BASE_MISMATCH' | 'E_RESTRICTION_VALUE_MISMATCH' | 'E_RESTRICTION_FACET_UNPARSEABLE' | 'W_REGEX_UNVERIFIED' | 'E_REGEX_UNSAFE' | 'E_CARDINALITY_INVALID' | 'W_CARDINALITY_PROHIBITED_APPLICABILITY' | 'E_IFC_DATATYPE_UNKNOWN';
|
|
25
|
+
export type IDSAuditCode = 'E_PARSE_XML' | 'E_PARSE_ROOT' | 'E_PARSE_FACET' | 'E_PARSE_UNKNOWN' | 'E_XSD_REQUIRED_ATTR' | 'E_XSD_ENUM' | 'E_XSD_PATTERN' | 'E_XSD_STRUCTURE' | 'E_XSD_SCHEMA_LOCATION' | 'W_XSD_DEPRECATED' | 'E_IFC_ENTITY_UNKNOWN' | 'E_IFC_PREDEF_TYPE_INVALID' | 'E_IFC_PSET_UNKNOWN' | 'W_IFC_PSET_RESERVED_PREFIX' | 'E_IFC_PROP_NOT_IN_PSET' | 'W_IFC_DATATYPE_MISMATCH' | 'E_IFC_ATTR_UNKNOWN_FOR_ENTITY' | 'E_IFC_PARTOF_RELATION' | 'E_IFC_PARTOF_ENTITY' | 'E_RESTRICTION_EMPTY' | 'E_RESTRICTION_RANGE' | 'E_RESTRICTION_BASE_MISMATCH' | 'E_RESTRICTION_VALUE_MISMATCH' | 'E_RESTRICTION_FACET_UNPARSEABLE' | 'W_REGEX_UNVERIFIED' | 'E_REGEX_UNSAFE' | 'E_CARDINALITY_INVALID' | 'W_CARDINALITY_PROHIBITED_APPLICABILITY' | 'E_IFC_DATATYPE_UNKNOWN' | 'E_IFC_ENTITY_CASE' | 'E_IFC_ENTITY_IMPOSSIBLE' | 'I_IDS11_PREVIEW_FEATURE' | 'W_IDS11_IDENTIFIER_DUPLICATE';
|
|
25
26
|
/** A single audit finding. */
|
|
26
27
|
export interface IDSAuditIssue {
|
|
27
28
|
/** Severity bucket. `error` issues fail the audit; `warning`/`info` do not. */
|
|
@@ -87,5 +88,12 @@ export interface IDSAuditOptions {
|
|
|
87
88
|
* Run coherence checks (restrictions, cardinality). Default `true`.
|
|
88
89
|
*/
|
|
89
90
|
coherenceChecks?: boolean;
|
|
91
|
+
/**
|
|
92
|
+
* IDS 1.1 PREVIEW (unstable). With `ids11`, the document is parsed with
|
|
93
|
+
* the 1.1 candidates, their XML shapes are accepted, each use is reported
|
|
94
|
+
* as `I_IDS11_PREVIEW_FEATURE`, and duplicate specification identifiers
|
|
95
|
+
* are a warning (#339). Default: IDS 1.0 rules only.
|
|
96
|
+
*/
|
|
97
|
+
preview?: IDSPreviewFlags;
|
|
90
98
|
}
|
|
91
99
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/audit/types.ts"],"names":[],"mappings":"AAIA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/audit/types.ts"],"names":[],"mappings":"AAIA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,yCAAyC;AACzC,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAE5D;;;;;;;;;GASG;AACH,MAAM,MAAM,YAAY,GAEpB,aAAa,GACb,cAAc,GACd,eAAe,GACf,iBAAiB,GAEjB,qBAAqB,GACrB,YAAY,GACZ,eAAe,GACf,iBAAiB,GACjB,uBAAuB,GACvB,kBAAkB,GAElB,sBAAsB,GACtB,2BAA2B,GAC3B,oBAAoB,GACpB,4BAA4B,GAC5B,wBAAwB,GACxB,yBAAyB,GACzB,+BAA+B,GAC/B,uBAAuB,GACvB,qBAAqB,GAErB,qBAAqB,GACrB,qBAAqB,GACrB,6BAA6B,GAC7B,8BAA8B,GAC9B,iCAAiC,GACjC,oBAAoB,GACpB,gBAAgB,GAChB,uBAAuB,GACvB,wCAAwC,GAExC,wBAAwB,GAGxB,mBAAmB,GACnB,yBAAyB,GAGzB,yBAAyB,GACzB,8BAA8B,CAAC;AAEnC,8BAA8B;AAC9B,MAAM,WAAW,aAAa;IAC5B,+EAA+E;IAC/E,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,4DAA4D;IAC5D,IAAI,EAAE,YAAY,CAAC;IACnB,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAC;IAChB,4FAA4F;IAC5F,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;CACtD;AAED,8BAA8B;AAC9B,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;IACtC,8DAA8D;IAC9D,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB;;;;OAIG;IACH,cAAc,CAAC,EAAE,WAAW,CAAC;CAC9B;AAED,4DAA4D;AAC5D,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B"}
|
package/dist/audit/xsd/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
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 { isValidLexicalForXsType } from '
|
|
4
|
+
import { isValidLexicalForXsType } from '../../constraints/xsd-lexical.js';
|
|
5
5
|
// info/author's element declaration is an inline restriction of xs:string,
|
|
6
6
|
// not the named ids:upperCaseName/ids:relations types — so it has no home in
|
|
7
7
|
// the shared XS_VALUE_REGEX table and is checked directly here.
|