@ifc-lite/ids 3.2.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/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
|
@@ -1,9 +1,9 @@
|
|
|
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 { getChildElement, getChildElements, getChildElementNS, getChildText, } from './dom.js';
|
|
4
|
+
import { getChildElement, getChildElements, getChildElementNS, getChildText, uriOf, } from './dom.js';
|
|
5
5
|
import { parseRestriction } from './parse-restriction.js';
|
|
6
|
-
|
|
6
|
+
import { applyIds11Preview } from '../preview/parse-ids11.js';
|
|
7
7
|
const XS_NAMESPACE = 'http://www.w3.org/2001/XMLSchema';
|
|
8
8
|
/** Error thrown when parsing invalid IDS XML */
|
|
9
9
|
export class IDSParseError extends Error {
|
|
@@ -31,10 +31,8 @@ if (!DOMParserImpl && isNodeRuntime) {
|
|
|
31
31
|
const xmldom = (await import(/* @vite-ignore */ moduleName));
|
|
32
32
|
DOMParserImpl = xmldom.DOMParser;
|
|
33
33
|
}
|
|
34
|
-
/**
|
|
35
|
-
|
|
36
|
-
*/
|
|
37
|
-
export function parseIDS(xmlContent) {
|
|
34
|
+
/** Parse IDS XML content into an IDSDocument (IDS 1.0 unless `options.preview.ids11`). */
|
|
35
|
+
export function parseIDS(xmlContent, options) {
|
|
38
36
|
let xmlString = typeof xmlContent === 'string'
|
|
39
37
|
? xmlContent
|
|
40
38
|
: new TextDecoder().decode(xmlContent);
|
|
@@ -76,17 +74,18 @@ export function parseIDS(xmlContent) {
|
|
|
76
74
|
if (root.localName !== 'ids') {
|
|
77
75
|
throw new IDSParseError(`Invalid root element: expected "ids", got "${root.localName}"`);
|
|
78
76
|
}
|
|
79
|
-
|
|
77
|
+
const document = {
|
|
80
78
|
info: parseInfo(root),
|
|
81
79
|
specifications: parseSpecifications(root),
|
|
82
80
|
schemaLocation: root.getAttribute('xsi:schemaLocation') ||
|
|
83
81
|
root.getAttributeNS('http://www.w3.org/2001/XMLSchema-instance', 'schemaLocation') ||
|
|
84
82
|
undefined,
|
|
85
83
|
};
|
|
84
|
+
if (options?.preview?.ids11 === true)
|
|
85
|
+
applyIds11Preview(root, document, parseFacet);
|
|
86
|
+
return document;
|
|
86
87
|
}
|
|
87
|
-
/**
|
|
88
|
-
* Parse the <info> section
|
|
89
|
-
*/
|
|
88
|
+
/** Parse the <info> section */
|
|
90
89
|
function parseInfo(root) {
|
|
91
90
|
const info = getChildElement(root, 'info');
|
|
92
91
|
if (!info) {
|
|
@@ -103,9 +102,7 @@ function parseInfo(root) {
|
|
|
103
102
|
description: getChildText(info, 'description'),
|
|
104
103
|
};
|
|
105
104
|
}
|
|
106
|
-
/**
|
|
107
|
-
* Parse the <specifications> section
|
|
108
|
-
*/
|
|
105
|
+
/** Parse the <specifications> section */
|
|
109
106
|
function parseSpecifications(root) {
|
|
110
107
|
const specsContainer = getChildElement(root, 'specifications');
|
|
111
108
|
if (!specsContainer) {
|
|
@@ -224,9 +221,7 @@ function parseFacets(parent) {
|
|
|
224
221
|
}
|
|
225
222
|
return facets;
|
|
226
223
|
}
|
|
227
|
-
/**
|
|
228
|
-
* Parse a single facet element
|
|
229
|
-
*/
|
|
224
|
+
/** Parse a single facet element (also used by the IDS 1.1 preview pass). */
|
|
230
225
|
function parseFacet(el) {
|
|
231
226
|
const localName = el.localName.toLowerCase();
|
|
232
227
|
switch (localName) {
|
|
@@ -278,9 +273,7 @@ function parseAttributeFacet(el) {
|
|
|
278
273
|
value: valueEl ? parseConstraintElement(valueEl) : undefined,
|
|
279
274
|
};
|
|
280
275
|
}
|
|
281
|
-
/**
|
|
282
|
-
* Parse property facet
|
|
283
|
-
*/
|
|
276
|
+
/** Parse property facet */
|
|
284
277
|
function parsePropertyFacet(el) {
|
|
285
278
|
const propertySetEl = getChildElement(el, 'propertySet');
|
|
286
279
|
const baseNameEl = getChildElement(el, 'baseName');
|
|
@@ -311,9 +304,7 @@ function parsePropertyFacet(el) {
|
|
|
311
304
|
value: valueEl ? parseConstraintElement(valueEl) : undefined,
|
|
312
305
|
};
|
|
313
306
|
}
|
|
314
|
-
/**
|
|
315
|
-
* Parse classification facet
|
|
316
|
-
*/
|
|
307
|
+
/** Parse classification facet */
|
|
317
308
|
function parseClassificationFacet(el) {
|
|
318
309
|
const systemEl = getChildElement(el, 'system');
|
|
319
310
|
const valueEl = getChildElement(el, 'value');
|
|
@@ -323,9 +314,7 @@ function parseClassificationFacet(el) {
|
|
|
323
314
|
value: valueEl ? parseConstraintElement(valueEl) : undefined,
|
|
324
315
|
};
|
|
325
316
|
}
|
|
326
|
-
/**
|
|
327
|
-
* Parse material facet
|
|
328
|
-
*/
|
|
317
|
+
/** Parse material facet */
|
|
329
318
|
function parseMaterialFacet(el) {
|
|
330
319
|
const valueEl = getChildElement(el, 'value');
|
|
331
320
|
return {
|
|
@@ -341,34 +330,27 @@ function parsePartOfFacet(el) {
|
|
|
341
330
|
const relationAttr = relationAttrRaw || 'IfcRelContainedInSpatialStructure';
|
|
342
331
|
const entityEl = getChildElement(el, 'entity');
|
|
343
332
|
const relation = normalizePartOfRelation(relationAttr);
|
|
344
|
-
// When the source attribute didn't map cleanly onto one of the known
|
|
345
|
-
// relations (or was missing), preserve the original string so the
|
|
346
|
-
// auditor can flag the discrepancy without us breaking the existing
|
|
347
|
-
// narrow `PartOfRelation` enum.
|
|
348
|
-
const recognised = isRecognisedPartOfRelation(relationAttr);
|
|
349
333
|
const facet = {
|
|
350
334
|
type: 'partOf',
|
|
351
335
|
relation,
|
|
352
336
|
entity: entityEl ? parseEntityFacet(entityEl) : undefined,
|
|
353
337
|
};
|
|
354
|
-
|
|
338
|
+
// Only an ABSENT relation means any part-of relation (IDS 1.0, #7401);
|
|
339
|
+
// an unrecognised one, empty included, keeps its source for the auditor.
|
|
340
|
+
if (relationAttrRaw === null)
|
|
341
|
+
facet.anyRelation = true;
|
|
342
|
+
else if (!isRecognisedPartOfRelation(relationAttrRaw))
|
|
355
343
|
facet.rawRelation = relationAttrRaw;
|
|
356
|
-
}
|
|
357
344
|
return facet;
|
|
358
345
|
}
|
|
346
|
+
/** The `ids.xsd` `relations` tokens (what IDS 1.0 files and `writeIdsXml` carry), then the lenient PascalCase spellings. */
|
|
347
|
+
const RECOGNISED_PARTOF_RELATIONS = new Set([
|
|
348
|
+
'IFCRELAGGREGATES', 'IFCRELASSIGNSTOGROUP', 'IFCRELCONTAINEDINSPATIALSTRUCTURE', 'IFCRELNESTS', 'IFCRELVOIDSELEMENT IFCRELFILLSELEMENT',
|
|
349
|
+
'IfcRelAggregates', 'IfcRelContainedInSpatialStructure', 'IfcRelNests', 'IfcRelVoidsElement', 'IfcRelFillsElement',
|
|
350
|
+
'IfcRelAssignsToGroup', 'IfcRelVoidsElement IfcRelFillsElement',
|
|
351
|
+
]);
|
|
359
352
|
function isRecognisedPartOfRelation(relation) {
|
|
360
|
-
|
|
361
|
-
case 'IfcRelAggregates':
|
|
362
|
-
case 'IfcRelContainedInSpatialStructure':
|
|
363
|
-
case 'IfcRelNests':
|
|
364
|
-
case 'IfcRelVoidsElement':
|
|
365
|
-
case 'IfcRelFillsElement':
|
|
366
|
-
case 'IfcRelAssignsToGroup':
|
|
367
|
-
case 'IfcRelVoidsElement IfcRelFillsElement':
|
|
368
|
-
return true;
|
|
369
|
-
default:
|
|
370
|
-
return false;
|
|
371
|
-
}
|
|
353
|
+
return RECOGNISED_PARTOF_RELATIONS.has(relation);
|
|
372
354
|
}
|
|
373
355
|
/**
|
|
374
356
|
* Normalize partOf relation string
|
|
@@ -403,7 +385,10 @@ function parseRequirements(parent) {
|
|
|
403
385
|
const requirements = [];
|
|
404
386
|
let reqIndex = 0;
|
|
405
387
|
for (const child of Array.from(parent.children)) {
|
|
406
|
-
const
|
|
388
|
+
const parsed = parseFacet(child);
|
|
389
|
+
// IDS 1.0 allows @uri on property, classification and material facets in
|
|
390
|
+
// requirements only (in applicability it is IDS 1.1, read by the preview pass).
|
|
391
|
+
const facet = parsed && (parsed.type === 'property' || parsed.type === 'classification' || parsed.type === 'material') ? { ...parsed, ...uriOf(child) } : parsed;
|
|
407
392
|
if (facet) {
|
|
408
393
|
// IDS 1.0 uses `cardinality="required|optional|prohibited"` on the
|
|
409
394
|
// requirement facet. 0.9.7 used minOccurs/maxOccurs. Honour both;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xml-parser.js","sourceRoot":"","sources":["../../src/parser/xml-parser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"xml-parser.js","sourceRoot":"","sources":["../../src/parser/xml-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IDS 1.1 PREVIEW audit checks (IDS-124). Run only when the audit is
|
|
3
|
+
* called with `preview: { ids11: true }`.
|
|
4
|
+
*/
|
|
5
|
+
import type { IDSDocument } from '../types.js';
|
|
6
|
+
import type { IDSAuditIssue } from '../audit/types.js';
|
|
7
|
+
/** The schema location the preview writer uses; accepted only under the preview. */
|
|
8
|
+
export declare const IDS11_PREVIEW_SCHEMA_URL = "http://standards.buildingsmart.org/IDS/1.1/ids.xsd";
|
|
9
|
+
/** IDS 1.1 PREVIEW findings for a document parsed with the preview. */
|
|
10
|
+
export declare function runIds11PreviewAudit(doc: IDSDocument): IDSAuditIssue[];
|
|
11
|
+
/**
|
|
12
|
+
* Drop the 1.0 audit's schema-location error for the preview schema URL.
|
|
13
|
+
* Every other schema-location finding stays.
|
|
14
|
+
*/
|
|
15
|
+
export declare function acceptIds11SchemaLocation(issues: IDSAuditIssue[]): IDSAuditIssue[];
|
|
16
|
+
//# sourceMappingURL=audit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/preview/audit.ts"],"names":[],"mappings":"AAIA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvD,oFAAoF;AACpF,eAAO,MAAM,wBAAwB,uDAAuD,CAAC;AA2C7F,uEAAuE;AACvE,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,WAAW,GAAG,aAAa,EAAE,CAEtE;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,CAElF"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
+
import { IDS11_PREVIEW_FEATURES, findIds11Features } from './features.js';
|
|
5
|
+
/** The schema location the preview writer uses; accepted only under the preview. */
|
|
6
|
+
export const IDS11_PREVIEW_SCHEMA_URL = 'http://standards.buildingsmart.org/IDS/1.1/ids.xsd';
|
|
7
|
+
/**
|
|
8
|
+
* Specification identifiers are "for clear and unambiguous identification
|
|
9
|
+
* … It should be unique within an IDS file" (upstream user manual,
|
|
10
|
+
* `ids-metadata.md`, the documentation outcome of #339 via PR #369). The
|
|
11
|
+
* text says "should", so a duplicate is a warning, never an error.
|
|
12
|
+
*/
|
|
13
|
+
function duplicateIdentifiers(doc) {
|
|
14
|
+
const firstIndex = new Map();
|
|
15
|
+
const issues = [];
|
|
16
|
+
doc.specifications.forEach((spec, i) => {
|
|
17
|
+
if (spec.identifier === undefined)
|
|
18
|
+
return;
|
|
19
|
+
const first = firstIndex.get(spec.identifier);
|
|
20
|
+
if (first === undefined) {
|
|
21
|
+
firstIndex.set(spec.identifier, i);
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
issues.push({
|
|
25
|
+
severity: 'warning',
|
|
26
|
+
code: 'W_IDS11_IDENTIFIER_DUPLICATE',
|
|
27
|
+
message: `specification identifier "${spec.identifier}" is also used by specifications[${first}] (IDS 1.1 preview, #339)`,
|
|
28
|
+
path: `specifications[${i}].identifier`,
|
|
29
|
+
detail: { identifier: spec.identifier, firstIndex: first },
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
return issues;
|
|
33
|
+
}
|
|
34
|
+
/** One `info` issue per IDS 1.1 PREVIEW feature use, so reports carry the label. */
|
|
35
|
+
function featureNotices(doc) {
|
|
36
|
+
return findIds11Features(doc).map((use) => {
|
|
37
|
+
const info = IDS11_PREVIEW_FEATURES[use.feature];
|
|
38
|
+
return {
|
|
39
|
+
severity: 'info',
|
|
40
|
+
code: 'I_IDS11_PREVIEW_FEATURE',
|
|
41
|
+
message: `IDS 1.1 preview feature: ${info.label} (${info.upstream.join(', ')}); not valid IDS 1.0`,
|
|
42
|
+
path: use.path,
|
|
43
|
+
detail: { feature: use.feature, upstreamStatus: info.upstreamStatus },
|
|
44
|
+
};
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
/** IDS 1.1 PREVIEW findings for a document parsed with the preview. */
|
|
48
|
+
export function runIds11PreviewAudit(doc) {
|
|
49
|
+
return [...featureNotices(doc), ...duplicateIdentifiers(doc)];
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Drop the 1.0 audit's schema-location error for the preview schema URL.
|
|
53
|
+
* Every other schema-location finding stays.
|
|
54
|
+
*/
|
|
55
|
+
export function acceptIds11SchemaLocation(issues) {
|
|
56
|
+
return issues.filter((issue) => !(issue.code === 'E_XSD_SCHEMA_LOCATION' && issue.detail?.url === IDS11_PREVIEW_SCHEMA_URL));
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=audit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/preview/audit.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAS/D,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAE1E,oFAAoF;AACpF,MAAM,CAAC,MAAM,wBAAwB,GAAG,oDAAoD,CAAC;AAE7F;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,GAAgB;IAC5C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7C,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACrC,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;YAAE,OAAO;QAC1C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YACnC,OAAO;QACT,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;YACV,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,8BAA8B;YACpC,OAAO,EAAE,6BAA6B,IAAI,CAAC,UAAU,oCAAoC,KAAK,2BAA2B;YACzH,IAAI,EAAE,kBAAkB,CAAC,cAAc;YACvC,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE;SAC3D,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,oFAAoF;AACpF,SAAS,cAAc,CAAC,GAAgB;IACtC,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACxC,MAAM,IAAI,GAAG,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjD,OAAO;YACL,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,yBAAyB;YAC/B,OAAO,EAAE,4BAA4B,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB;YAClG,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE;SACtE,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,oBAAoB,CAAC,GAAgB;IACnD,OAAO,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,EAAE,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC;AAChE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAuB;IAC/D,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,uBAAuB,IAAI,KAAK,CAAC,MAAM,EAAE,GAAG,KAAK,wBAAwB,CAAC,CAAC,CAAC;AAC/H,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { IDSDocument } from '../types.js';
|
|
2
|
+
import type { IDS11FeatureUse, IDS11PreviewFeature, IDSPreviewFlags } from './types.js';
|
|
3
|
+
/** One modelled IDS 1.1 PREVIEW candidate and where upstream discusses it. */
|
|
4
|
+
export interface IDS11FeatureInfo {
|
|
5
|
+
/** Short label for messages and docs. */
|
|
6
|
+
label: string;
|
|
7
|
+
/** buildingSMART/IDS issues and pull requests the semantics come from. */
|
|
8
|
+
upstream: readonly string[];
|
|
9
|
+
/** Upstream state when this was modelled (2026-10-08). */
|
|
10
|
+
upstreamStatus: 'merged-on-1.1-branch' | 'open-proposal' | 'draft-pr';
|
|
11
|
+
/** Whether the feature has an XML form (tolerance is a comparison rule only). */
|
|
12
|
+
xml: boolean;
|
|
13
|
+
}
|
|
14
|
+
/** The modelled IDS 1.1 PREVIEW candidates. Unstable: follows upstream. */
|
|
15
|
+
export declare const IDS11_PREVIEW_FEATURES: Readonly<Record<IDS11PreviewFeature, IDS11FeatureInfo>>;
|
|
16
|
+
/** Every use of an IDS 1.1 PREVIEW feature in `doc`, in document order. */
|
|
17
|
+
export declare function findIds11Features(doc: IDSDocument): IDS11FeatureUse[];
|
|
18
|
+
/** Error thrown when a document needs IDS 1.1 PREVIEW and the caller did not opt in. */
|
|
19
|
+
export declare class IDS11PreviewRequiredError extends Error {
|
|
20
|
+
readonly caller: string;
|
|
21
|
+
readonly uses: readonly IDS11FeatureUse[];
|
|
22
|
+
constructor(caller: string, uses: readonly IDS11FeatureUse[]);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Throw `IDS11PreviewRequiredError` when `doc` uses a 1.1 PREVIEW feature
|
|
26
|
+
* and `flags.ids11` is not set. `xmlOnly` limits the check to features with
|
|
27
|
+
* an XML form (the writer has nothing to write for a tolerance rule).
|
|
28
|
+
*/
|
|
29
|
+
export declare function assertIds11Allowed(doc: IDSDocument, flags: IDSPreviewFlags | undefined, caller: string, xmlOnly?: boolean): IDS11FeatureUse[];
|
|
30
|
+
//# sourceMappingURL=features.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../src/preview/features.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,WAAW,EAAY,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAExF,8EAA8E;AAC9E,MAAM,WAAW,gBAAgB;IAC/B,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,0DAA0D;IAC1D,cAAc,EAAE,sBAAsB,GAAG,eAAe,GAAG,UAAU,CAAC;IACtE,iFAAiF;IACjF,GAAG,EAAE,OAAO,CAAC;CACd;AAED,2EAA2E;AAC3E,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAyB1F,CAAC;AAiCF,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,WAAW,GAAG,eAAe,EAAE,CASrE;AAED,wFAAwF;AACxF,qBAAa,yBAA0B,SAAQ,KAAK;aAEhC,MAAM,EAAE,MAAM;aACd,IAAI,EAAE,SAAS,eAAe,EAAE;gBADhC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,SAAS,eAAe,EAAE;CAWnD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,eAAe,GAAG,SAAS,EAClC,MAAM,EAAE,MAAM,EACd,OAAO,UAAQ,GACd,eAAe,EAAE,CAInB"}
|
|
@@ -0,0 +1,96 @@
|
|
|
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
|
+
/** The modelled IDS 1.1 PREVIEW candidates. Unstable: follows upstream. */
|
|
5
|
+
export const IDS11_PREVIEW_FEATURES = {
|
|
6
|
+
'facet-uri-in-applicability': {
|
|
7
|
+
label: 'uri on property, classification and material facets in applicability',
|
|
8
|
+
upstream: ['buildingSMART/IDS#188', 'buildingSMART/IDS#251', 'buildingSMART/IDS#382'],
|
|
9
|
+
upstreamStatus: 'merged-on-1.1-branch',
|
|
10
|
+
xml: true,
|
|
11
|
+
},
|
|
12
|
+
'facet-instructions-in-applicability': {
|
|
13
|
+
label: 'instructions on applicability facets',
|
|
14
|
+
upstream: ['buildingSMART/IDS#154'],
|
|
15
|
+
upstreamStatus: 'open-proposal',
|
|
16
|
+
xml: true,
|
|
17
|
+
},
|
|
18
|
+
'partof-nested-facets': {
|
|
19
|
+
label: 'attribute, property, classification and material facets nested in partOf',
|
|
20
|
+
upstream: ['buildingSMART/IDS#379', 'buildingSMART/IDS#380'],
|
|
21
|
+
upstreamStatus: 'draft-pr',
|
|
22
|
+
xml: true,
|
|
23
|
+
},
|
|
24
|
+
'tolerance-418': {
|
|
25
|
+
label: 'inclusive numeric tolerance with bounds rounded to 15 decimals',
|
|
26
|
+
upstream: ['buildingSMART/IDS#418'],
|
|
27
|
+
upstreamStatus: 'open-proposal',
|
|
28
|
+
xml: false,
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
function hasToleranceRule(constraint) {
|
|
32
|
+
if (!constraint)
|
|
33
|
+
return false;
|
|
34
|
+
if (constraint.type === 'simpleValue')
|
|
35
|
+
return constraint.toleranceRule !== undefined;
|
|
36
|
+
if (constraint.type === 'enumeration' && constraint.toleranceRule !== undefined)
|
|
37
|
+
return true;
|
|
38
|
+
return (constraint.and ?? []).some(hasToleranceRule);
|
|
39
|
+
}
|
|
40
|
+
function valueOf(facet) {
|
|
41
|
+
return facet.type === 'entity' || facet.type === 'partOf' ? undefined : facet.value;
|
|
42
|
+
}
|
|
43
|
+
function visitFacet(facet, path, context, out) {
|
|
44
|
+
// A requirement facet's uri is IDS 1.0; elsewhere it is the 1.1 candidate.
|
|
45
|
+
if (context !== 'requirement' && 'uri' in facet && facet.uri !== undefined) {
|
|
46
|
+
out.push({ feature: 'facet-uri-in-applicability', path });
|
|
47
|
+
}
|
|
48
|
+
// #154 proposes instructions on applicability facets. A requirement keeps
|
|
49
|
+
// its instructions on IDSRequirement (IDS 1.0); the writer refuses the
|
|
50
|
+
// facet-level field anywhere but applicability.
|
|
51
|
+
if (context === 'applicability' && facet.instructions !== undefined) {
|
|
52
|
+
out.push({ feature: 'facet-instructions-in-applicability', path });
|
|
53
|
+
}
|
|
54
|
+
if (hasToleranceRule(valueOf(facet)))
|
|
55
|
+
out.push({ feature: 'tolerance-418', path });
|
|
56
|
+
if (facet.type === 'partOf' && facet.facets !== undefined) {
|
|
57
|
+
out.push({ feature: 'partof-nested-facets', path });
|
|
58
|
+
facet.facets.forEach((nested, i) => visitFacet(nested, `${path}.facets[${i}]`, 'nested', out));
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/** Every use of an IDS 1.1 PREVIEW feature in `doc`, in document order. */
|
|
62
|
+
export function findIds11Features(doc) {
|
|
63
|
+
const out = [];
|
|
64
|
+
doc.specifications.forEach((spec, s) => {
|
|
65
|
+
spec.applicability.facets.forEach((facet, i) => visitFacet(facet, `specifications[${s}].applicability.facets[${i}]`, 'applicability', out));
|
|
66
|
+
spec.requirements.forEach((req, i) => visitFacet(req.facet, `specifications[${s}].requirements[${i}]`, 'requirement', out));
|
|
67
|
+
});
|
|
68
|
+
return out;
|
|
69
|
+
}
|
|
70
|
+
/** Error thrown when a document needs IDS 1.1 PREVIEW and the caller did not opt in. */
|
|
71
|
+
export class IDS11PreviewRequiredError extends Error {
|
|
72
|
+
caller;
|
|
73
|
+
uses;
|
|
74
|
+
constructor(caller, uses) {
|
|
75
|
+
const first = uses[0];
|
|
76
|
+
const where = first ? `${IDS11_PREVIEW_FEATURES[first.feature].label} at ${first.path}` : '';
|
|
77
|
+
super(`${caller}: the document uses IDS 1.1 preview features (${where}` +
|
|
78
|
+
`${uses.length > 1 ? ` and ${uses.length - 1} more` : ''}); ` +
|
|
79
|
+
'pass preview: { ids11: true } to opt in. IDS 1.1 is not released.');
|
|
80
|
+
this.caller = caller;
|
|
81
|
+
this.uses = uses;
|
|
82
|
+
this.name = 'IDS11PreviewRequiredError';
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Throw `IDS11PreviewRequiredError` when `doc` uses a 1.1 PREVIEW feature
|
|
87
|
+
* and `flags.ids11` is not set. `xmlOnly` limits the check to features with
|
|
88
|
+
* an XML form (the writer has nothing to write for a tolerance rule).
|
|
89
|
+
*/
|
|
90
|
+
export function assertIds11Allowed(doc, flags, caller, xmlOnly = false) {
|
|
91
|
+
const uses = findIds11Features(doc).filter((u) => !xmlOnly || IDS11_PREVIEW_FEATURES[u.feature].xml);
|
|
92
|
+
if (uses.length > 0 && flags?.ids11 !== true)
|
|
93
|
+
throw new IDS11PreviewRequiredError(caller, uses);
|
|
94
|
+
return uses;
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=features.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features.js","sourceRoot":"","sources":["../../src/preview/features.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { IDSDocument, IDSFacet } from '../types.js';
|
|
2
|
+
type FacetParser = (el: Element) => IDSFacet | null;
|
|
3
|
+
/**
|
|
4
|
+
* Add the IDS 1.1 PREVIEW fields to a document the 1.0 parser built from
|
|
5
|
+
* `root`. `parseFacet` is the 1.0 facet parser, reused for nested facets.
|
|
6
|
+
*/
|
|
7
|
+
export declare function applyIds11Preview(root: Element, doc: IDSDocument, parseFacet: FacetParser): void;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=parse-ids11.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-ids11.d.ts","sourceRoot":"","sources":["../../src/preview/parse-ids11.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAkB,MAAM,aAAa,CAAC;AASzE,KAAK,WAAW,GAAG,CAAC,EAAE,EAAE,OAAO,KAAK,QAAQ,GAAG,IAAI,CAAC;AAoDpD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,GAAG,IAAI,CAqBhG"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
+
import { getChildElement, getChildElements } from '../parser/dom.js';
|
|
5
|
+
/** Facet element names the 1.0 parser turns into facets (lower case). */
|
|
6
|
+
const FACET_TAGS = new Set(['entity', 'attribute', 'property', 'classification', 'material', 'partof']);
|
|
7
|
+
/** Facets #380 allows inside partOf besides its entity. */
|
|
8
|
+
const NESTED_TAGS = new Set(['attribute', 'property', 'classification', 'material']);
|
|
9
|
+
function facetElements(parent) {
|
|
10
|
+
return Array.from(parent.children).filter((c) => FACET_TAGS.has(c.localName.toLowerCase()));
|
|
11
|
+
}
|
|
12
|
+
/** Stamp the #418 rule on a value constraint (and its conjunctive siblings). */
|
|
13
|
+
function stampTolerance(constraint) {
|
|
14
|
+
if (!constraint)
|
|
15
|
+
return;
|
|
16
|
+
if (constraint.type === 'simpleValue' || constraint.type === 'enumeration') {
|
|
17
|
+
constraint.toleranceRule = 'ids11-418';
|
|
18
|
+
}
|
|
19
|
+
if (constraint.type !== 'simpleValue')
|
|
20
|
+
for (const sibling of constraint.and ?? [])
|
|
21
|
+
stampTolerance(sibling);
|
|
22
|
+
}
|
|
23
|
+
function readAttr(el, name) {
|
|
24
|
+
const value = el.getAttribute(name);
|
|
25
|
+
return value === null || value === '' ? undefined : value;
|
|
26
|
+
}
|
|
27
|
+
function isNested(facet) {
|
|
28
|
+
return facet.type === 'attribute' || facet.type === 'property' || facet.type === 'classification' || facet.type === 'material';
|
|
29
|
+
}
|
|
30
|
+
function enrichFacet(facet, el, context, parseFacet) {
|
|
31
|
+
// A requirement facet's uri is IDS 1.0 and stays with the 1.0 parser,
|
|
32
|
+
// which reads it; reading it here too would be redundant.
|
|
33
|
+
if (context !== 'requirement' && (facet.type === 'property' || facet.type === 'classification' || facet.type === 'material')) {
|
|
34
|
+
const uri = readAttr(el, 'uri');
|
|
35
|
+
if (uri !== undefined)
|
|
36
|
+
facet.uri = uri;
|
|
37
|
+
}
|
|
38
|
+
if (context === 'applicability') {
|
|
39
|
+
const instructions = readAttr(el, 'instructions');
|
|
40
|
+
if (instructions !== undefined)
|
|
41
|
+
facet.instructions = instructions;
|
|
42
|
+
}
|
|
43
|
+
if (facet.type !== 'entity' && facet.type !== 'partOf')
|
|
44
|
+
stampTolerance(facet.value);
|
|
45
|
+
if (facet.type === 'partOf') {
|
|
46
|
+
const nested = [];
|
|
47
|
+
for (const child of Array.from(el.children)) {
|
|
48
|
+
if (!NESTED_TAGS.has(child.localName.toLowerCase()))
|
|
49
|
+
continue;
|
|
50
|
+
const parsed = parseFacet(child);
|
|
51
|
+
if (parsed && isNested(parsed)) {
|
|
52
|
+
enrichFacet(parsed, child, 'nested', parseFacet);
|
|
53
|
+
nested.push(parsed);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
if (nested.length > 0)
|
|
57
|
+
facet.facets = nested;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Add the IDS 1.1 PREVIEW fields to a document the 1.0 parser built from
|
|
62
|
+
* `root`. `parseFacet` is the 1.0 facet parser, reused for nested facets.
|
|
63
|
+
*/
|
|
64
|
+
export function applyIds11Preview(root, doc, parseFacet) {
|
|
65
|
+
const specsEl = getChildElement(root, 'specifications');
|
|
66
|
+
if (!specsEl)
|
|
67
|
+
return;
|
|
68
|
+
getChildElements(specsEl, 'specification').forEach((specEl, s) => {
|
|
69
|
+
const spec = doc.specifications[s];
|
|
70
|
+
if (!spec)
|
|
71
|
+
return;
|
|
72
|
+
const applicabilityEl = getChildElement(specEl, 'applicability');
|
|
73
|
+
if (applicabilityEl) {
|
|
74
|
+
facetElements(applicabilityEl).forEach((el, i) => {
|
|
75
|
+
const facet = spec.applicability.facets[i];
|
|
76
|
+
if (facet)
|
|
77
|
+
enrichFacet(facet, el, 'applicability', parseFacet);
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
const requirementsEl = getChildElement(specEl, 'requirements');
|
|
81
|
+
if (requirementsEl) {
|
|
82
|
+
facetElements(requirementsEl).forEach((el, i) => {
|
|
83
|
+
const requirement = spec.requirements[i];
|
|
84
|
+
if (requirement)
|
|
85
|
+
enrichFacet(requirement.facet, el, 'requirement', parseFacet);
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=parse-ids11.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-ids11.js","sourceRoot":"","sources":["../../src/preview/parse-ids11.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IDS 1.1 PREVIEW: facets nested in `partOf` (#379, draft PR #380).
|
|
3
|
+
*
|
|
4
|
+
* #379 asks for "every IfcSpace in a storey named 01 …": partOf finds the
|
|
5
|
+
* related element, and the proposal in #380 lets attribute, property,
|
|
6
|
+
* classification and material facets sit next to partOf's entity, applying
|
|
7
|
+
* to that related element. Conservative reading (P-12 worklog): an ancestor
|
|
8
|
+
* reached through the relation counts only if it matches the entity AND
|
|
9
|
+
* every nested facet, each judged exactly as an applicability facet would
|
|
10
|
+
* judge the ancestor itself (presence plus value, no cardinality).
|
|
11
|
+
*/
|
|
12
|
+
import type { IDSPartOfFacet, IFCDataAccessor, ParentInfo } from '../types.js';
|
|
13
|
+
import type { FacetCheckResult } from '../facets/index.js';
|
|
14
|
+
type NestedFacet = NonNullable<IDSPartOfFacet['facets']>[number];
|
|
15
|
+
/**
|
|
16
|
+
* The first nested facet `parent` fails, as a partOf failure, or
|
|
17
|
+
* `undefined` when it satisfies all of them (or there are none).
|
|
18
|
+
*/
|
|
19
|
+
export declare function checkPartOfParentFacets(facet: IDSPartOfFacet, parent: ParentInfo, accessor: IFCDataAccessor): FacetCheckResult | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* IDS 1.1 PREVIEW: a partOf description followed by its nested facets in
|
|
22
|
+
* brackets, each described as an applicability facet of the related element.
|
|
23
|
+
* Unchanged for an IDS 1.0 partOf (no nested facets).
|
|
24
|
+
*/
|
|
25
|
+
export declare function describeWithNestedFacets(facet: IDSPartOfFacet, base: string, describe: (nested: NestedFacet) => string): string;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=partof-nested.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partof-nested.d.ts","sourceRoot":"","sources":["../../src/preview/partof-nested.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAM3D,KAAK,WAAW,GAAG,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAejE;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,eAAe,GACxB,gBAAgB,GAAG,SAAS,CAyB9B;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,MAAM,GACxC,MAAM,CAGR"}
|