@ifc-lite/bcf 1.18.2 → 2.0.0
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/dist/ids-reporter.d.ts +15 -0
- package/dist/ids-reporter.d.ts.map +1 -1
- package/dist/ids-reporter.js +77 -4
- package/dist/ids-reporter.js.map +1 -1
- package/dist/reader-components.d.ts +15 -0
- package/dist/reader-components.d.ts.map +1 -0
- package/dist/reader-components.js +202 -0
- package/dist/reader-components.js.map +1 -0
- package/dist/reader.d.ts.map +1 -1
- package/dist/reader.js +108 -138
- package/dist/reader.js.map +1 -1
- package/dist/writer.d.ts.map +1 -1
- package/dist/writer.js +223 -68
- package/dist/writer.js.map +1 -1
- package/dist/xml-text.d.ts +32 -0
- package/dist/xml-text.d.ts.map +1 -0
- package/dist/xml-text.js +55 -0
- package/dist/xml-text.js.map +1 -0
- package/package.json +4 -3
package/dist/ids-reporter.d.ts
CHANGED
|
@@ -37,6 +37,21 @@ export interface IDSSpecResultInput {
|
|
|
37
37
|
passedCount: number;
|
|
38
38
|
failedCount: number;
|
|
39
39
|
entityResults: IDSEntityResultInput[];
|
|
40
|
+
/**
|
|
41
|
+
* Present when the specification declares minOccurs/maxOccurs. A
|
|
42
|
+
* cardinality-only failure (e.g. a required entity type entirely
|
|
43
|
+
* absent from the model) has `applicableCount === 0` and an empty
|
|
44
|
+
* `entityResults` — there is no entity to attach a per-entity topic
|
|
45
|
+
* to, so grouping strategies that iterate `entityResults` must fall
|
|
46
|
+
* back to this to avoid dropping the failure silently.
|
|
47
|
+
*/
|
|
48
|
+
cardinalityResult?: {
|
|
49
|
+
passed: boolean;
|
|
50
|
+
actualCount: number;
|
|
51
|
+
minExpected?: number;
|
|
52
|
+
maxExpected?: number | 'unbounded';
|
|
53
|
+
message: string;
|
|
54
|
+
};
|
|
40
55
|
}
|
|
41
56
|
/** Entity result — structurally matches IDSEntityResult */
|
|
42
57
|
export interface IDSEntityResultInput {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ids-reporter.d.ts","sourceRoot":"","sources":["../src/ids-reporter.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAA4D,MAAM,YAAY,CAAC;AAsDvG,4EAA4E;AAC5E,MAAM,WAAW,cAAc;IAC7B,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gCAAgC;IAChC,oBAAoB,EAAE,kBAAkB,EAAE,CAAC;CAC5C;AAED,yEAAyE;AACzE,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,gBAAgB,CAAC;IAC3C,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,oBAAoB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"ids-reporter.d.ts","sourceRoot":"","sources":["../src/ids-reporter.ts"],"names":[],"mappings":"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"}
|
package/dist/ids-reporter.js
CHANGED
|
@@ -106,17 +106,71 @@ export function createBCFFromIDSReport(report, options = {}) {
|
|
|
106
106
|
}
|
|
107
107
|
return project;
|
|
108
108
|
}
|
|
109
|
+
/**
|
|
110
|
+
* Build the topic for a specification that FAILED on cardinality alone
|
|
111
|
+
* (its applicability matched zero entities and minOccurs required at
|
|
112
|
+
* least one). There is no entity to attach a per-entity or
|
|
113
|
+
* per-requirement topic to, so grouping strategies that iterate
|
|
114
|
+
* `entityResults` need this fallback or the failure never appears in
|
|
115
|
+
* the exported BCF file at all.
|
|
116
|
+
*/
|
|
117
|
+
function createCardinalityFailureTopic(specResult, author, failureTopicType) {
|
|
118
|
+
const message = specResult.cardinalityResult?.message ?? 'Cardinality requirement not satisfied';
|
|
119
|
+
return createTopic({
|
|
120
|
+
title: `${specResult.specification.name}: cardinality requirement not met`,
|
|
121
|
+
description: `Specification: ${specResult.specification.name}\n${specResult.specification.description ?? ''}\n\n${message} (0 applicable entities matched).`,
|
|
122
|
+
author,
|
|
123
|
+
topicType: failureTopicType,
|
|
124
|
+
topicStatus: 'Open',
|
|
125
|
+
priority: 'High',
|
|
126
|
+
labels: ['IDS', specResult.specification.name, 'cardinality'],
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Add a synthetic "Info" topic recording that `maxTopics` cut off `remaining`
|
|
131
|
+
* further items. Without this, a large model silently drops entities past
|
|
132
|
+
* the cap with no trace in the exported BCF file — the same silent-loss
|
|
133
|
+
* shape `MAX_COMMENTS_PER_TOPIC`'s "... and N more" comment exists to avoid
|
|
134
|
+
* for comments within one topic.
|
|
135
|
+
*/
|
|
136
|
+
function addTruncationNoticeTopic(project, author, remaining, itemLabel) {
|
|
137
|
+
if (remaining <= 0)
|
|
138
|
+
return;
|
|
139
|
+
const topic = createTopic({
|
|
140
|
+
title: `... and ${remaining} more ${itemLabel}${remaining === 1 ? '' : 's'} (truncated at maxTopics)`,
|
|
141
|
+
description: `The IDS validation report contained more ${itemLabel}s than the configured maxTopics limit. ${remaining} additional ${remaining === 1 ? 'entry was' : 'entries were'} not exported as BCF topics.`,
|
|
142
|
+
author,
|
|
143
|
+
topicType: 'Info',
|
|
144
|
+
topicStatus: 'Open',
|
|
145
|
+
labels: ['IDS', 'truncated'],
|
|
146
|
+
});
|
|
147
|
+
project.topics.set(topic.guid, topic);
|
|
148
|
+
}
|
|
109
149
|
function buildTopicsPerEntity(project, report, opts) {
|
|
110
150
|
let topicCount = 0;
|
|
151
|
+
let qualifyingCount = 0;
|
|
111
152
|
for (const specResult of report.specificationResults) {
|
|
112
153
|
if (specResult.status === 'not_applicable')
|
|
113
154
|
continue;
|
|
155
|
+
// A cardinality-only failure (required entity type matched zero
|
|
156
|
+
// times) has no entities to iterate below — without this branch the
|
|
157
|
+
// failure is invisible in per-entity grouping.
|
|
158
|
+
if (specResult.status === 'fail' && specResult.entityResults.length === 0) {
|
|
159
|
+
qualifyingCount++;
|
|
160
|
+
if (topicCount < opts.maxTopics) {
|
|
161
|
+
const topic = createCardinalityFailureTopic(specResult, opts.author, opts.failureTopicType);
|
|
162
|
+
project.topics.set(topic.guid, topic);
|
|
163
|
+
topicCount++;
|
|
164
|
+
}
|
|
165
|
+
continue;
|
|
166
|
+
}
|
|
114
167
|
for (const entity of specResult.entityResults) {
|
|
115
|
-
if (topicCount >= opts.maxTopics)
|
|
116
|
-
return;
|
|
117
168
|
// Skip passing entities unless requested
|
|
118
169
|
if (entity.passed && !opts.includePassingEntities)
|
|
119
170
|
continue;
|
|
171
|
+
qualifyingCount++;
|
|
172
|
+
if (topicCount >= opts.maxTopics)
|
|
173
|
+
continue;
|
|
120
174
|
const failedReqs = entity.requirementResults.filter(r => r.status === 'fail');
|
|
121
175
|
const totalReqs = entity.requirementResults.filter(r => r.status !== 'not_applicable').length;
|
|
122
176
|
const entityLabel = entity.entityName || `#${entity.expressId}`;
|
|
@@ -155,17 +209,20 @@ function buildTopicsPerEntity(project, report, opts) {
|
|
|
155
209
|
topicCount++;
|
|
156
210
|
}
|
|
157
211
|
}
|
|
212
|
+
addTruncationNoticeTopic(project, opts.author, qualifyingCount - topicCount, 'entity');
|
|
158
213
|
}
|
|
159
214
|
// ============================================================================
|
|
160
215
|
// Per-specification grouping
|
|
161
216
|
// ============================================================================
|
|
162
217
|
function buildTopicsPerSpecification(project, report, opts) {
|
|
163
218
|
let topicCount = 0;
|
|
219
|
+
let qualifyingCount = 0;
|
|
164
220
|
for (const specResult of report.specificationResults) {
|
|
165
221
|
if (specResult.status !== 'fail')
|
|
166
222
|
continue;
|
|
223
|
+
qualifyingCount++;
|
|
167
224
|
if (topicCount >= opts.maxTopics)
|
|
168
|
-
|
|
225
|
+
continue;
|
|
169
226
|
const failedEntities = specResult.entityResults.filter(e => !e.passed);
|
|
170
227
|
const topic = createTopic({
|
|
171
228
|
title: `[FAIL] ${specResult.specification.name}`,
|
|
@@ -212,23 +269,38 @@ function buildTopicsPerSpecification(project, report, opts) {
|
|
|
212
269
|
project.topics.set(topic.guid, topic);
|
|
213
270
|
topicCount++;
|
|
214
271
|
}
|
|
272
|
+
addTruncationNoticeTopic(project, opts.author, qualifyingCount - topicCount, 'specification');
|
|
215
273
|
}
|
|
216
274
|
// ============================================================================
|
|
217
275
|
// Per-requirement grouping (like IfcOpenShell, but improved)
|
|
218
276
|
// ============================================================================
|
|
219
277
|
function buildTopicsPerRequirement(project, report, opts) {
|
|
220
278
|
let topicCount = 0;
|
|
279
|
+
let qualifyingCount = 0;
|
|
221
280
|
for (const specResult of report.specificationResults) {
|
|
222
281
|
if (specResult.status !== 'fail')
|
|
223
282
|
continue;
|
|
283
|
+
// Cardinality-only failure — no entity/requirement to attach a topic
|
|
284
|
+
// to below. Same fallback as buildTopicsPerEntity, for the same
|
|
285
|
+
// reason: otherwise the failure has no BCF topic anywhere.
|
|
286
|
+
if (specResult.entityResults.length === 0) {
|
|
287
|
+
qualifyingCount++;
|
|
288
|
+
if (topicCount < opts.maxTopics) {
|
|
289
|
+
const topic = createCardinalityFailureTopic(specResult, opts.author, opts.failureTopicType);
|
|
290
|
+
project.topics.set(topic.guid, topic);
|
|
291
|
+
topicCount++;
|
|
292
|
+
}
|
|
293
|
+
continue;
|
|
294
|
+
}
|
|
224
295
|
for (const entity of specResult.entityResults) {
|
|
225
296
|
if (entity.passed)
|
|
226
297
|
continue;
|
|
227
298
|
for (const req of entity.requirementResults) {
|
|
228
299
|
if (req.status !== 'fail')
|
|
229
300
|
continue;
|
|
301
|
+
qualifyingCount++;
|
|
230
302
|
if (topicCount >= opts.maxTopics)
|
|
231
|
-
|
|
303
|
+
continue;
|
|
232
304
|
const entityLabel = entity.entityName || `#${entity.expressId}`;
|
|
233
305
|
const topic = createTopic({
|
|
234
306
|
title: `${entity.entityType}: ${entityLabel} - ${req.failureReason ?? req.checkedDescription}`,
|
|
@@ -260,6 +332,7 @@ function buildTopicsPerRequirement(project, report, opts) {
|
|
|
260
332
|
}
|
|
261
333
|
}
|
|
262
334
|
}
|
|
335
|
+
addTruncationNoticeTopic(project, opts.author, qualifyingCount - topicCount, 'requirement failure');
|
|
263
336
|
}
|
|
264
337
|
// ============================================================================
|
|
265
338
|
// Helpers — Description builders
|
package/dist/ids-reporter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ids-reporter.js","sourceRoot":"","sources":["../src/ids-reporter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ids-reporter.js","sourceRoot":"","sources":["../src/ids-reporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parsing the `<Components>` block of a BCF viewpoint: the selection and
|
|
3
|
+
* exception lists, the per-element visibility flags, and the colouring map.
|
|
4
|
+
*
|
|
5
|
+
* Split out of `reader.ts`, which was over the module-size budget and which
|
|
6
|
+
* held two copies of the component splitter -- the shape that let a real defect
|
|
7
|
+
* live at one site's fixtures while the other looked identical. There is one
|
|
8
|
+
* splitter now, in `parseComponentElements`.
|
|
9
|
+
*/
|
|
10
|
+
import type { BCFComponents } from './types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Parse components (selection/visibility/coloring)
|
|
13
|
+
*/
|
|
14
|
+
export declare function parseComponents(content: string): BCFComponents | undefined;
|
|
15
|
+
//# sourceMappingURL=reader-components.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reader-components.d.ts","sourceRoot":"","sources":["../src/reader-components.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAGV,aAAa,EAGd,MAAM,YAAY,CAAC;AA+BpB;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAyC1E"}
|
|
@@ -0,0 +1,202 @@
|
|
|
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 { extractElement, unescapeXml } from './xml-text.js';
|
|
5
|
+
/**
|
|
6
|
+
* Every `<Component>` element in an XML fragment.
|
|
7
|
+
*
|
|
8
|
+
* The two branches are spelled out rather than factored behind a common
|
|
9
|
+
* `<Component[^>]*` prefix as
|
|
10
|
+
* `<Component[^>]*(?:\/>|>[\s\S]*?<\/Component>)`, and that is the whole
|
|
11
|
+
* point: `[^>]*` is greedy and eats the `/` of a self-closing tag, so the
|
|
12
|
+
* `\/>` alternative can never fire. A uniform list still parsed, because the
|
|
13
|
+
* engine backtracks and gives the `/` back when no later `</Component>`
|
|
14
|
+
* exists. A MIXED list did not: `<Component .../><Component ...>...</Component>`
|
|
15
|
+
* matched as ONE element spanning both, and the first component silently
|
|
16
|
+
* inherited the second's `authoringToolId` and `originatingSystem`.
|
|
17
|
+
*
|
|
18
|
+
* That is why every fixture passed. Uniform lists are the only shape the suite
|
|
19
|
+
* had, and they are the one shape the defect cannot reach.
|
|
20
|
+
*/
|
|
21
|
+
const COMPONENT_ELEMENT = /<Component[^>]*?\/>|<Component[^>]*>[\s\S]*?<\/Component>/g;
|
|
22
|
+
/** Parse each `<Component>` in `xml`, dropping any that does not parse. */
|
|
23
|
+
function parseComponentElements(xml) {
|
|
24
|
+
const components = [];
|
|
25
|
+
for (const match of xml.matchAll(COMPONENT_ELEMENT)) {
|
|
26
|
+
const component = parseComponent(match[0]);
|
|
27
|
+
if (component)
|
|
28
|
+
components.push(component);
|
|
29
|
+
}
|
|
30
|
+
return components;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Parse components (selection/visibility/coloring)
|
|
34
|
+
*/
|
|
35
|
+
export function parseComponents(content) {
|
|
36
|
+
const componentsMatch = content.match(/<Components>([\s\S]*?)<\/Components>/);
|
|
37
|
+
if (!componentsMatch)
|
|
38
|
+
return undefined;
|
|
39
|
+
const componentsContent = componentsMatch[1];
|
|
40
|
+
// Parse selection
|
|
41
|
+
const selection = parseComponentList(componentsContent, 'Selection');
|
|
42
|
+
// Parse visibility
|
|
43
|
+
let visibility = parseVisibility(componentsContent);
|
|
44
|
+
// Parse coloring
|
|
45
|
+
const coloring = parseColoring(componentsContent);
|
|
46
|
+
// Nothing read `ViewSetupHints` back, so every hint was lost on read —
|
|
47
|
+
// including out of our own archives. It was invisible because no writer
|
|
48
|
+
// fixture set the hints, so the round trip compared `undefined` to
|
|
49
|
+
// `undefined`.
|
|
50
|
+
//
|
|
51
|
+
// Searched across the whole `Components` body on purpose, because the two
|
|
52
|
+
// schema versions disagree on placement: 2.1 puts the element on
|
|
53
|
+
// `Components`, 3.0 nests it inside `Visibility`, and `writer.ts` emits
|
|
54
|
+
// whichever the requested version calls for. Anchoring to either one would
|
|
55
|
+
// read half the files we produce.
|
|
56
|
+
const viewSetupHints = parseViewSetupHints(componentsContent);
|
|
57
|
+
if (viewSetupHints) {
|
|
58
|
+
// Visibility is required by the schema, but tolerate a file that omits it:
|
|
59
|
+
// DefaultVisibility's schema default is true.
|
|
60
|
+
visibility = { ...(visibility ?? { defaultVisibility: true }), viewSetupHints };
|
|
61
|
+
}
|
|
62
|
+
if (!selection && !visibility && !coloring) {
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
selection: selection?.length ? selection : undefined,
|
|
67
|
+
visibility,
|
|
68
|
+
coloring: coloring?.length ? coloring : undefined,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Parse a list of components
|
|
73
|
+
*/
|
|
74
|
+
function parseComponentList(content, elementName) {
|
|
75
|
+
const match = content.match(new RegExp(`<${elementName}>([\\s\\S]*?)<\\/${elementName}>`));
|
|
76
|
+
if (!match)
|
|
77
|
+
return undefined;
|
|
78
|
+
const components = parseComponentElements(match[1]);
|
|
79
|
+
return components.length > 0 ? components : undefined;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Parse a single component
|
|
83
|
+
*/
|
|
84
|
+
function parseComponent(content) {
|
|
85
|
+
const ifcGuidMatch = content.match(/IfcGuid="([^"]+)"/);
|
|
86
|
+
/** An attribute value, decoded the same way `extractElement` decodes an
|
|
87
|
+
* element's text, so `AuthoringToolId="A & B"` and the element spelling
|
|
88
|
+
* of the same field yield the same string. Deliberately not
|
|
89
|
+
* `reader.ts::extractAttr`, which is contracted to take an already-captured
|
|
90
|
+
* attribute string and does not decode entities. Without this the two spellings of the SAME field
|
|
91
|
+
* disagreed: `AuthoringToolId="A & B"` came back as the literal
|
|
92
|
+
* `A & B` while `<AuthoringToolId>A & B</AuthoringToolId>` came back
|
|
93
|
+
* as `A & B`. Which one a file uses is not supposed to change its value. */
|
|
94
|
+
// Only the OPENING TAG. `content` is the whole element, so an unscoped
|
|
95
|
+
// search reads a CHILD's attribute as the component's own:
|
|
96
|
+
// `<Component IfcGuid="G"><Child OriginatingSystem="x"/></Component>` used to
|
|
97
|
+
// report `x`. `\b` for the same reason `reader.ts::extractAttr` has it, or
|
|
98
|
+
// `XAuthoringToolId="sneaky"` satisfies a search for `AuthoringToolId`.
|
|
99
|
+
const openingTag = content.slice(0, content.indexOf('>') + 1);
|
|
100
|
+
const attribute = (name) => {
|
|
101
|
+
const raw = openingTag.match(new RegExp(`\\b${name}="([^"]*)"`))?.[1];
|
|
102
|
+
return raw ? unescapeXml(raw) : undefined;
|
|
103
|
+
};
|
|
104
|
+
// Per BCF 2.1 §"Component" (unchanged in 3.0) only `IfcGuid` is an
|
|
105
|
+
// attribute; `OriginatingSystem` and `AuthoringToolId` are child
|
|
106
|
+
// ELEMENTS — which is exactly what writeComponent() emits. Reading them
|
|
107
|
+
// as attributes matched nothing, so both fields were dropped from every
|
|
108
|
+
// archive, ifc-lite's own included. The attribute spellings are still
|
|
109
|
+
// accepted as a fallback so files from tools that emit the non-spec form
|
|
110
|
+
// keep working; the element form wins when both are present.
|
|
111
|
+
// `|| undefined`, not `??`: an EMPTY element (`<AuthoringToolId></...>`) has
|
|
112
|
+
// to read the same as an empty attribute and as an absent one. Without it
|
|
113
|
+
// the element form returned `''`, which survived the identity guard below
|
|
114
|
+
// with no identity at all, and `writeComponent` then wrote it back as a bare
|
|
115
|
+
// `<Component/>` that the reader discards. Three spellings of "nothing"
|
|
116
|
+
// disagreeing is the same defect this file exists to fix.
|
|
117
|
+
const authoringToolId = (extractElement(content, 'AuthoringToolId') || undefined) ?? attribute('AuthoringToolId');
|
|
118
|
+
const originatingSystem = (extractElement(content, 'OriginatingSystem') || undefined) ?? attribute('OriginatingSystem');
|
|
119
|
+
// A component needs some identity to be meaningful. `IfcGuid` is optional
|
|
120
|
+
// in the schema, so `AuthoringToolId` alone is a valid identification —
|
|
121
|
+
// and used to be discarded here because it was never found.
|
|
122
|
+
if (!ifcGuidMatch && authoringToolId === undefined) {
|
|
123
|
+
return undefined;
|
|
124
|
+
}
|
|
125
|
+
return {
|
|
126
|
+
ifcGuid: ifcGuidMatch?.[1] === undefined ? undefined : unescapeXml(ifcGuidMatch[1]),
|
|
127
|
+
authoringToolId,
|
|
128
|
+
originatingSystem,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Parse visibility settings
|
|
133
|
+
*/
|
|
134
|
+
function parseVisibility(content) {
|
|
135
|
+
// Both branches, for the same reason as `COMPONENT_ELEMENT`: `<Exceptions>`
|
|
136
|
+
// and `<ViewSetupHints>` are optional, so `<Visibility DefaultVisibility=
|
|
137
|
+
// "false"/>` is schema-legal. Matching only the paired form made the whole
|
|
138
|
+
// `<Components>` block return undefined for such a file, dropping the
|
|
139
|
+
// selection and colouring with it. ifc-lite's own writer always emits the
|
|
140
|
+
// paired form, which is why no fixture reached this.
|
|
141
|
+
const visibilityMatch = content.match(/<Visibility[^>]*?\/>|<Visibility[^>]*>[\s\S]*?<\/Visibility>/);
|
|
142
|
+
if (!visibilityMatch)
|
|
143
|
+
return undefined;
|
|
144
|
+
// Read from the `<Visibility>` element, NOT from the enclosing `<Components>`
|
|
145
|
+
// string: a `DefaultVisibility` attribute on any earlier element (a
|
|
146
|
+
// `<Selection>` component, say) won the match and inverted the answer, so a
|
|
147
|
+
// file saying show-all hid everything.
|
|
148
|
+
const defaultVisMatch = visibilityMatch[0].match(/DefaultVisibility="([^"]+)"/);
|
|
149
|
+
const defaultVisibility = defaultVisMatch?.[1] !== 'false';
|
|
150
|
+
const exceptions = parseComponentList(visibilityMatch[0], 'Exceptions');
|
|
151
|
+
return {
|
|
152
|
+
defaultVisibility,
|
|
153
|
+
exceptions,
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Parse coloring settings
|
|
158
|
+
*/
|
|
159
|
+
function parseColoring(content) {
|
|
160
|
+
const coloringMatch = content.match(/<Coloring>([\s\S]*?)<\/Coloring>/);
|
|
161
|
+
if (!coloringMatch)
|
|
162
|
+
return undefined;
|
|
163
|
+
const colorings = [];
|
|
164
|
+
const colorMatches = coloringMatch[1].matchAll(/<Color\s+Color="([^"]+)"[^>]*>([\s\S]*?)<\/Color>/g);
|
|
165
|
+
for (const match of colorMatches) {
|
|
166
|
+
const color = match[1];
|
|
167
|
+
const components = parseComponentElements(match[2]);
|
|
168
|
+
if (components.length > 0) {
|
|
169
|
+
colorings.push({ color, components });
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
return colorings.length > 0 ? colorings : undefined;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Parse the `<ViewSetupHints>` element that sits directly under `<Components>`.
|
|
176
|
+
*
|
|
177
|
+
* All three attributes are optional xs:boolean; an absent one stays `undefined`
|
|
178
|
+
* rather than collapsing to `false`, because "the author did not say" and "the
|
|
179
|
+
* author said no" mean different things to a viewer applying the hints.
|
|
180
|
+
*/
|
|
181
|
+
function parseViewSetupHints(content) {
|
|
182
|
+
const match = content.match(/<ViewSetupHints\b([^>]*)>/);
|
|
183
|
+
if (!match)
|
|
184
|
+
return undefined;
|
|
185
|
+
const attrs = match[1];
|
|
186
|
+
const flag = (name) => {
|
|
187
|
+
const raw = attrs.match(new RegExp(`\\b${name}="([^"]*)"`))?.[1];
|
|
188
|
+
if (raw === undefined)
|
|
189
|
+
return undefined;
|
|
190
|
+
return raw === 'true' || raw === '1';
|
|
191
|
+
};
|
|
192
|
+
const spacesVisible = flag('SpacesVisible');
|
|
193
|
+
const spaceBoundariesVisible = flag('SpaceBoundariesVisible');
|
|
194
|
+
const openingsVisible = flag('OpeningsVisible');
|
|
195
|
+
if (spacesVisible === undefined
|
|
196
|
+
&& spaceBoundariesVisible === undefined
|
|
197
|
+
&& openingsVisible === undefined) {
|
|
198
|
+
return undefined;
|
|
199
|
+
}
|
|
200
|
+
return { spacesVisible, spaceBoundariesVisible, openingsVisible };
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=reader-components.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reader-components.js","sourceRoot":"","sources":["../src/reader-components.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAkB/D,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,iBAAiB,GAAG,4DAA4D,CAAC;AAEvF,2EAA2E;AAC3E,SAAS,sBAAsB,CAAC,GAAW;IACzC,MAAM,UAAU,GAAmB,EAAE,CAAC;IACtC,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,SAAS;YAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC9E,IAAI,CAAC,eAAe;QAAE,OAAO,SAAS,CAAC;IAEvC,MAAM,iBAAiB,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;IAE7C,kBAAkB;IAClB,MAAM,SAAS,GAAG,kBAAkB,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;IAErE,mBAAmB;IACnB,IAAI,UAAU,GAAG,eAAe,CAAC,iBAAiB,CAAC,CAAC;IAEpD,iBAAiB;IACjB,MAAM,QAAQ,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAElD,uEAAuE;IACvE,wEAAwE;IACxE,mEAAmE;IACnE,eAAe;IACf,EAAE;IACF,0EAA0E;IAC1E,iEAAiE;IACjE,wEAAwE;IACxE,2EAA2E;IAC3E,kCAAkC;IAClC,MAAM,cAAc,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;IAC9D,IAAI,cAAc,EAAE,CAAC;QACnB,2EAA2E;QAC3E,8CAA8C;QAC9C,UAAU,GAAG,EAAE,GAAG,CAAC,UAAU,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC;IAClF,CAAC;IAED,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QACpD,UAAU;QACV,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;KAClD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,OAAe,EAAE,WAAmB;IAC9D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,WAAW,oBAAoB,WAAW,GAAG,CAAC,CAAC,CAAC;IAC3F,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAE7B,MAAM,UAAU,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,OAAe;IACrC,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAExD;;;;;;;iFAO6E;IAC7E,uEAAuE;IACvE,2DAA2D;IAC3D,8EAA8E;IAC9E,2EAA2E;IAC3E,wEAAwE;IACxE,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,CAAC,IAAY,EAAsB,EAAE;QACrD,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACtE,OAAO,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5C,CAAC,CAAC;IAEF,mEAAmE;IACnE,iEAAiE;IACjE,wEAAwE;IACxE,wEAAwE;IACxE,sEAAsE;IACtE,yEAAyE;IACzE,6DAA6D;IAC7D,6EAA6E;IAC7E,0EAA0E;IAC1E,0EAA0E;IAC1E,6EAA6E;IAC7E,wEAAwE;IACxE,0DAA0D;IAC1D,MAAM,eAAe,GACnB,CAAC,cAAc,CAAC,OAAO,EAAE,iBAAiB,CAAC,IAAI,SAAS,CAAC,IAAI,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAC5F,MAAM,iBAAiB,GACrB,CAAC,cAAc,CAAC,OAAO,EAAE,mBAAmB,CAAC,IAAI,SAAS,CAAC,IAAI,SAAS,CAAC,mBAAmB,CAAC,CAAC;IAEhG,0EAA0E;IAC1E,wEAAwE;IACxE,4DAA4D;IAC5D,IAAI,CAAC,YAAY,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QACnD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnF,eAAe;QACf,iBAAiB;KAClB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,OAAe;IACtC,4EAA4E;IAC5E,0EAA0E;IAC1E,2EAA2E;IAC3E,sEAAsE;IACtE,0EAA0E;IAC1E,qDAAqD;IACrD,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CACnC,8DAA8D,CAC/D,CAAC;IACF,IAAI,CAAC,eAAe;QAAE,OAAO,SAAS,CAAC;IAEvC,8EAA8E;IAC9E,oEAAoE;IACpE,4EAA4E;IAC5E,uCAAuC;IACvC,MAAM,eAAe,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAChF,MAAM,iBAAiB,GAAG,eAAe,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC;IAE3D,MAAM,UAAU,GAAG,kBAAkB,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IAExE,OAAO;QACL,iBAAiB;QACjB,UAAU;KACX,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,OAAe;IACpC,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACxE,IAAI,CAAC,aAAa;QAAE,OAAO,SAAS,CAAC;IAErC,MAAM,SAAS,GAAkB,EAAE,CAAC;IACpC,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oDAAoD,CAAC,CAAC;IAErG,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,UAAU,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AACtD,CAAC;AAED;;;;;;GAMG;AACH,SAAS,mBAAmB,CAAC,OAAe;IAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACzD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAE7B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,IAAI,GAAG,CAAC,IAAY,EAAuB,EAAE;QACjD,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACjE,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QACxC,OAAO,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC;IACvC,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5C,MAAM,sBAAsB,GAAG,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAC9D,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAEhD,IACE,aAAa,KAAK,SAAS;WACxB,sBAAsB,KAAK,SAAS;WACpC,eAAe,KAAK,SAAS,EAChC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,eAAe,EAAE,CAAC;AACpE,CAAC"}
|
package/dist/reader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../src/reader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../src/reader.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACV,UAAU,EAgBX,MAAM,YAAY,CAAC;AAyIpB;;;;;;GAMG;AACH,wBAAsB,OAAO,CAC3B,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,WAAW,GAAG,UAAU,EAC5C,MAAM,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAE,GACpF,OAAO,CAAC,UAAU,CAAC,CA4CrB"}
|