@ifc-lite/export 4.2.0 → 4.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/dist/anonymize-export.d.ts.map +1 -1
- package/dist/anonymize-export.js +10 -4
- package/dist/anonymize-export.js.map +1 -1
- package/dist/anonymize-placement.js +2 -2
- package/dist/anonymize-placement.js.map +1 -1
- package/dist/appearance-dependencies.d.ts.map +1 -1
- package/dist/appearance-dependencies.js +9 -5
- package/dist/appearance-dependencies.js.map +1 -1
- package/dist/csv-table.d.ts +10 -0
- package/dist/csv-table.d.ts.map +1 -0
- package/dist/csv-table.js +39 -0
- package/dist/csv-table.js.map +1 -0
- package/dist/effective-appearance-record.d.ts.map +1 -1
- package/dist/effective-appearance-record.js +11 -7
- package/dist/effective-appearance-record.js.map +1 -1
- package/dist/ifc5-export-helpers.d.ts +19 -0
- package/dist/ifc5-export-helpers.d.ts.map +1 -1
- package/dist/ifc5-export-helpers.js +41 -0
- package/dist/ifc5-export-helpers.js.map +1 -1
- package/dist/ifc5-exporter.d.ts +9 -10
- package/dist/ifc5-exporter.d.ts.map +1 -1
- package/dist/ifc5-exporter.js +5 -32
- package/dist/ifc5-exporter.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/merged-empty-containers.d.ts.map +1 -1
- package/dist/merged-empty-containers.js +6 -9
- package/dist/merged-empty-containers.js.map +1 -1
- package/dist/reference-collector.d.ts +20 -8
- package/dist/reference-collector.d.ts.map +1 -1
- package/dist/reference-collector.js +33 -41
- package/dist/reference-collector.js.map +1 -1
- package/dist/schema-converter-attr-remap.d.ts +11 -22
- package/dist/schema-converter-attr-remap.d.ts.map +1 -1
- package/dist/schema-converter-attr-remap.js +35 -23
- package/dist/schema-converter-attr-remap.js.map +1 -1
- package/dist/schema-converter.d.ts.map +1 -1
- package/dist/schema-converter.js +16 -78
- package/dist/schema-converter.js.map +1 -1
- package/dist/step-argument-parser.d.ts +13 -3
- package/dist/step-argument-parser.d.ts.map +1 -1
- package/dist/step-argument-parser.js +21 -11
- package/dist/step-argument-parser.js.map +1 -1
- package/dist/step-comment-skip.d.ts +1 -1
- package/dist/step-comment-skip.js +1 -1
- package/dist/step-overlay-attribute-overrides.d.ts.map +1 -1
- package/dist/step-overlay-attribute-overrides.js +6 -2
- package/dist/step-overlay-attribute-overrides.js.map +1 -1
- package/dist/step-serialization.d.ts +1 -1
- package/dist/step-serialization.js +1 -1
- package/dist/subset-entity-reader.d.ts +12 -4
- package/dist/subset-entity-reader.d.ts.map +1 -1
- package/dist/subset-entity-reader.js +4 -16
- package/dist/subset-entity-reader.js.map +1 -1
- package/package.json +6 -6
|
@@ -9,28 +9,16 @@
|
|
|
9
9
|
* value strings, respecting nested parentheses and single-quoted strings.
|
|
10
10
|
* Empty list → [].
|
|
11
11
|
*
|
|
12
|
-
* A thin wrapper over `step-argument-parser.ts`'s
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* near-identical scan; kept here as `remapRenamedAttributesByName`'s only
|
|
17
|
-
* caller expects, but no longer a fourth copy of the same rule
|
|
18
|
-
* (LTplus-AG/ifc-lite#4125). `trimAttributes` in `schema-converter.ts` is
|
|
19
|
-
* NOT folded in here: it stops early at a positional budget, which is a
|
|
20
|
-
* genuinely different rule, not a copy of this one.
|
|
12
|
+
* A thin wrapper over `step-argument-parser.ts`'s validated
|
|
13
|
+
* `splitTopLevelStepArguments`. This module used to carry its own permissive
|
|
14
|
+
* scan; keeping the wrapper gives remapping an explicit refusal boundary
|
|
15
|
+
* without retaining a fourth parser (LTplus-AG/ifc-lite#4125/#4200).
|
|
21
16
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
* (`"a, b,c"` → `['a','b','c']` instead of `['a',' b','c']`). Both are safe
|
|
26
|
-
* for `remapRenamedAttributesByName`'s real inputs: neither `IFCDOORTYPE`
|
|
27
|
-
* nor `IFCWINDOWTYPE`'s fixed-arity attribute list has a trailing comma in
|
|
28
|
-
* well-formed STEP, so the first difference never fires; and STEP has no
|
|
29
|
-
* semantic significance to whitespace between top-level tokens, so a trimmed
|
|
30
|
-
* token is the same value either way. Pinned by
|
|
31
|
-
* `schema-converter-attr-remap.test.ts`.
|
|
17
|
+
* The validated splitter preserves an empty trailing slot so malformed
|
|
18
|
+
* fixed-arity records cannot shift positional meaning, and trims legal STEP
|
|
19
|
+
* whitespace around each token. Pinned by the adjacent tests.
|
|
32
20
|
*/
|
|
33
|
-
export declare function splitTopLevelAttributes(attrsRaw: string): string[];
|
|
21
|
+
export declare function splitTopLevelAttributes(attrsRaw: string): string[] | null;
|
|
34
22
|
/**
|
|
35
23
|
* Renamed entity types whose attribute lists are safe to reconcile BY NAME
|
|
36
24
|
* (`remapRenamedAttributesByName`) instead of leaving the line's attributes
|
|
@@ -66,10 +54,11 @@ export declare const BY_NAME_ATTR_REMAP_TYPES: Set<string>;
|
|
|
66
54
|
* prefix of the other.
|
|
67
55
|
*
|
|
68
56
|
* A target attribute with no same-named source attribute becomes `$`
|
|
69
|
-
* (unknown) rather than a guess
|
|
57
|
+
* (unknown) rather than a guess, unless IFC2X3 requires a value there (see
|
|
58
|
+
* `IFC2X3_MANDATORY_DEFAULTS`); a source attribute with no same-named
|
|
70
59
|
* target slot is dropped. Both are honest data loss for attributes the
|
|
71
60
|
* target schema's OWN shape does not carry under that name — never a
|
|
72
61
|
* misplaced value.
|
|
73
62
|
*/
|
|
74
|
-
export declare function remapRenamedAttributesByName(attrsRaw: string, srcNames: readonly string[], tgtNames: readonly string[]): string;
|
|
63
|
+
export declare function remapRenamedAttributesByName(attrsRaw: string, srcNames: readonly string[], tgtNames: readonly string[]): string | null;
|
|
75
64
|
//# sourceMappingURL=schema-converter-attr-remap.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-converter-attr-remap.d.ts","sourceRoot":"","sources":["../src/schema-converter-attr-remap.ts"],"names":[],"mappings":"AAMA;;;;;GAKG;AAEH
|
|
1
|
+
{"version":3,"file":"schema-converter-attr-remap.d.ts","sourceRoot":"","sources":["../src/schema-converter-attr-remap.ts"],"names":[],"mappings":"AAMA;;;;;GAKG;AAEH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAEzE;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,wBAAwB,aAA4C,CAAC;AAmBlF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,QAAQ,EAAE,SAAS,MAAM,EAAE,GAC1B,MAAM,GAAG,IAAI,CAaf"}
|
|
@@ -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 {
|
|
4
|
+
import { splitTopLevelStepArguments } from './step-argument-parser.js';
|
|
5
5
|
/**
|
|
6
6
|
* Attribute-list reconciliation for a genuine cross-schema entity RENAME
|
|
7
7
|
* whose lists fail `schema-converter.ts`'s strict-prefix test (neither list
|
|
@@ -13,29 +13,17 @@ import { splitTopLevelArgs } from './step-argument-parser.js';
|
|
|
13
13
|
* value strings, respecting nested parentheses and single-quoted strings.
|
|
14
14
|
* Empty list → [].
|
|
15
15
|
*
|
|
16
|
-
* A thin wrapper over `step-argument-parser.ts`'s
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* near-identical scan; kept here as `remapRenamedAttributesByName`'s only
|
|
21
|
-
* caller expects, but no longer a fourth copy of the same rule
|
|
22
|
-
* (LTplus-AG/ifc-lite#4125). `trimAttributes` in `schema-converter.ts` is
|
|
23
|
-
* NOT folded in here: it stops early at a positional budget, which is a
|
|
24
|
-
* genuinely different rule, not a copy of this one.
|
|
16
|
+
* A thin wrapper over `step-argument-parser.ts`'s validated
|
|
17
|
+
* `splitTopLevelStepArguments`. This module used to carry its own permissive
|
|
18
|
+
* scan; keeping the wrapper gives remapping an explicit refusal boundary
|
|
19
|
+
* without retaining a fourth parser (LTplus-AG/ifc-lite#4125/#4200).
|
|
25
20
|
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
* (`"a, b,c"` → `['a','b','c']` instead of `['a',' b','c']`). Both are safe
|
|
30
|
-
* for `remapRenamedAttributesByName`'s real inputs: neither `IFCDOORTYPE`
|
|
31
|
-
* nor `IFCWINDOWTYPE`'s fixed-arity attribute list has a trailing comma in
|
|
32
|
-
* well-formed STEP, so the first difference never fires; and STEP has no
|
|
33
|
-
* semantic significance to whitespace between top-level tokens, so a trimmed
|
|
34
|
-
* token is the same value either way. Pinned by
|
|
35
|
-
* `schema-converter-attr-remap.test.ts`.
|
|
21
|
+
* The validated splitter preserves an empty trailing slot so malformed
|
|
22
|
+
* fixed-arity records cannot shift positional meaning, and trims legal STEP
|
|
23
|
+
* whitespace around each token. Pinned by the adjacent tests.
|
|
36
24
|
*/
|
|
37
25
|
export function splitTopLevelAttributes(attrsRaw) {
|
|
38
|
-
return
|
|
26
|
+
return splitTopLevelStepArguments(attrsRaw);
|
|
39
27
|
}
|
|
40
28
|
/**
|
|
41
29
|
* Renamed entity types whose attribute lists are safe to reconcile BY NAME
|
|
@@ -60,6 +48,22 @@ export function splitTopLevelAttributes(attrsRaw) {
|
|
|
60
48
|
* differently shaped) representation for it.
|
|
61
49
|
*/
|
|
62
50
|
export const BY_NAME_ATTR_REMAP_TYPES = new Set(['IFCDOORTYPE', 'IFCWINDOWTYPE']);
|
|
51
|
+
/**
|
|
52
|
+
* The value written into a remap target slot that IFC2X3 declares mandatory
|
|
53
|
+
* when the source has nothing for it. `IfcDoorStyle`/`IfcWindowStyle` require
|
|
54
|
+
* `OperationType`, `ConstructionType`, `ParameterTakesPrecedence` and
|
|
55
|
+
* `Sizeable`; IFC4's types have no `ConstructionType` or `Sizeable` and leave
|
|
56
|
+
* `ParameterTakesPrecedence` optional, so a plain `$` there made a record a
|
|
57
|
+
* strict Part 21 reader rejects. `.NOTDEFINED.` is a member of every one of
|
|
58
|
+
* those enums and `.F.` is the BOOLEAN that claims nothing. Same table as
|
|
59
|
+
* `ifc2x3_mandatory_default` in the Rust `schema_convert.rs`.
|
|
60
|
+
*/
|
|
61
|
+
const IFC2X3_MANDATORY_DEFAULTS = new Map([
|
|
62
|
+
['OperationType', '.NOTDEFINED.'],
|
|
63
|
+
['ConstructionType', '.NOTDEFINED.'],
|
|
64
|
+
['ParameterTakesPrecedence', '.F.'],
|
|
65
|
+
['Sizeable', '.F.'],
|
|
66
|
+
]);
|
|
63
67
|
/**
|
|
64
68
|
* Reconcile a renamed entity's attribute list by matching attribute NAMES
|
|
65
69
|
* between the source and target schema tables, rather than by position.
|
|
@@ -72,17 +76,25 @@ export const BY_NAME_ATTR_REMAP_TYPES = new Set(['IFCDOORTYPE', 'IFCWINDOWTYPE']
|
|
|
72
76
|
* prefix of the other.
|
|
73
77
|
*
|
|
74
78
|
* A target attribute with no same-named source attribute becomes `$`
|
|
75
|
-
* (unknown) rather than a guess
|
|
79
|
+
* (unknown) rather than a guess, unless IFC2X3 requires a value there (see
|
|
80
|
+
* `IFC2X3_MANDATORY_DEFAULTS`); a source attribute with no same-named
|
|
76
81
|
* target slot is dropped. Both are honest data loss for attributes the
|
|
77
82
|
* target schema's OWN shape does not carry under that name — never a
|
|
78
83
|
* misplaced value.
|
|
79
84
|
*/
|
|
80
85
|
export function remapRenamedAttributesByName(attrsRaw, srcNames, tgtNames) {
|
|
81
86
|
const values = splitTopLevelAttributes(attrsRaw);
|
|
87
|
+
if (values === null)
|
|
88
|
+
return null;
|
|
82
89
|
const byName = new Map();
|
|
83
90
|
for (let i = 0; i < srcNames.length && i < values.length; i++) {
|
|
84
91
|
byName.set(srcNames[i], values[i]);
|
|
85
92
|
}
|
|
86
|
-
return tgtNames
|
|
93
|
+
return tgtNames
|
|
94
|
+
.map((name) => {
|
|
95
|
+
const given = byName.get(name);
|
|
96
|
+
return given !== undefined && given !== '$' ? given : (IFC2X3_MANDATORY_DEFAULTS.get(name) ?? '$');
|
|
97
|
+
})
|
|
98
|
+
.join(',');
|
|
87
99
|
}
|
|
88
100
|
//# sourceMappingURL=schema-converter-attr-remap.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-converter-attr-remap.js","sourceRoot":"","sources":["../src/schema-converter-attr-remap.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"schema-converter-attr-remap.js","sourceRoot":"","sources":["../src/schema-converter-attr-remap.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE;;;;;GAKG;AAEH;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAgB;IACtD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC;AAElF;;;;;;;;;GASG;AACH,MAAM,yBAAyB,GAAgC,IAAI,GAAG,CAAC;IACrE,CAAC,eAAe,EAAE,cAAc,CAAC;IACjC,CAAC,kBAAkB,EAAE,cAAc,CAAC;IACpC,CAAC,0BAA0B,EAAE,KAAK,CAAC;IACnC,CAAC,UAAU,EAAE,KAAK,CAAC;CACpB,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,4BAA4B,CAC1C,QAAgB,EAChB,QAA2B,EAC3B,QAA2B;IAE3B,MAAM,MAAM,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9D,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,QAAQ;SACZ,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;IACrG,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-converter.d.ts","sourceRoot":"","sources":["../src/schema-converter.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"schema-converter.d.ts","sourceRoot":"","sources":["../src/schema-converter.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAOxE,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AA4GrE;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,gBAAgB,EAC5B,QAAQ,EAAE,gBAAgB,GACzB,MAAM,CAQR;AAwGD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,gBAAgB,EAC5B,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,CAAC,EAAE,YAAY,GACpB,MAAM,CAwGR;AA2CD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,gBAAgB,EAC5B,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAET;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,gBAAgB,EAC5B,QAAQ,EAAE,gBAAgB,GACzB,MAAM,CAqBR"}
|
package/dist/schema-converter.js
CHANGED
|
@@ -23,6 +23,7 @@ import { deterministicGlobalId } from '@ifc-lite/parser';
|
|
|
23
23
|
import { ENTITIES_IFC2X3, ENTITIES_IFC4, ENTITIES_IFC4X3 } from '@ifc-lite/data';
|
|
24
24
|
import { resolveUnrepresentedEntity } from './schema-untranslatable.js';
|
|
25
25
|
import { BY_NAME_ATTR_REMAP_TYPES, remapRenamedAttributesByName } from './schema-converter-attr-remap.js';
|
|
26
|
+
import { splitTopLevelStepArguments } from './step-argument-parser.js';
|
|
26
27
|
/**
|
|
27
28
|
* Entity type name mappings between schema versions.
|
|
28
29
|
*
|
|
@@ -235,33 +236,11 @@ function isStrictAttrPrefix(shorter, longer) {
|
|
|
235
236
|
}
|
|
236
237
|
/** Count top-level (comma-separated) STEP attributes, respecting nested
|
|
237
238
|
* parentheses and single-quoted strings. Empty list → 0. */
|
|
238
|
-
function
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
let inString = false;
|
|
244
|
-
for (let i = 0; i < attrsRaw.length; i++) {
|
|
245
|
-
const ch = attrsRaw[i];
|
|
246
|
-
if (ch === "'" && !inString)
|
|
247
|
-
inString = true;
|
|
248
|
-
else if (ch === "'" && inString) {
|
|
249
|
-
if (i + 1 < attrsRaw.length && attrsRaw[i + 1] === "'") {
|
|
250
|
-
i++;
|
|
251
|
-
continue;
|
|
252
|
-
}
|
|
253
|
-
inString = false;
|
|
254
|
-
}
|
|
255
|
-
else if (!inString) {
|
|
256
|
-
if (ch === '(')
|
|
257
|
-
depth++;
|
|
258
|
-
else if (ch === ')')
|
|
259
|
-
depth--;
|
|
260
|
-
else if (ch === ',' && depth === 0)
|
|
261
|
-
count++;
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
return count;
|
|
239
|
+
function requireTopLevelAttributes(attrsRaw) {
|
|
240
|
+
const attrs = splitTopLevelStepArguments(attrsRaw);
|
|
241
|
+
if (attrs === null)
|
|
242
|
+
throw new Error('Schema conversion refused an invalid STEP argument list.');
|
|
243
|
+
return attrs;
|
|
265
244
|
}
|
|
266
245
|
/**
|
|
267
246
|
* Convert a raw STEP entity line from one schema version to another.
|
|
@@ -294,6 +273,10 @@ export function convertStepLine(line, fromSchema, toSchema, random) {
|
|
|
294
273
|
const prefix = match[1]; // "#123="
|
|
295
274
|
const entityType = match[2].toUpperCase();
|
|
296
275
|
const attrsRaw = match[3] ?? '';
|
|
276
|
+
// Validate before choosing any conversion branch. A malformed slot list
|
|
277
|
+
// must not still receive a type rename, proxy replacement, trim, or padding:
|
|
278
|
+
// that would partially convert a record whose positions are untrustworthy.
|
|
279
|
+
requireTopLevelAttributes(attrsRaw);
|
|
297
280
|
// Convert entity type
|
|
298
281
|
const newType = convertEntityType(entityType, fromSchema, toSchema);
|
|
299
282
|
// Replace entities that have no valid representation in the target schema
|
|
@@ -365,14 +348,17 @@ export function convertStepLine(line, fromSchema, toSchema, random) {
|
|
|
365
348
|
finalAttrs = trimAttributes(attrsRaw, tgtAttrs.length);
|
|
366
349
|
}
|
|
367
350
|
else if (isStrictAttrPrefix(srcAttrs, tgtAttrs)) {
|
|
368
|
-
const currentCount =
|
|
351
|
+
const currentCount = requireTopLevelAttributes(finalAttrs).length;
|
|
369
352
|
if (currentCount > 0 && currentCount < tgtAttrs.length) {
|
|
370
353
|
finalAttrs = `${finalAttrs}${',$'.repeat(tgtAttrs.length - currentCount)}`;
|
|
371
354
|
}
|
|
372
355
|
}
|
|
373
356
|
else if (entityType !== newType && BY_NAME_ATTR_REMAP_TYPES.has(entityType)) {
|
|
374
357
|
// Neither list is a prefix of the other; see `BY_NAME_ATTR_REMAP_TYPES`.
|
|
375
|
-
|
|
358
|
+
const remapped = remapRenamedAttributesByName(attrsRaw, srcAttrs, tgtAttrs);
|
|
359
|
+
if (remapped === null)
|
|
360
|
+
throw new Error('Schema conversion refused an invalid STEP argument list.');
|
|
361
|
+
finalAttrs = remapped;
|
|
376
362
|
}
|
|
377
363
|
}
|
|
378
364
|
return `${prefix}${newType}(${finalAttrs});`;
|
|
@@ -413,55 +399,7 @@ function trimAttributes(attrsRaw, maxCount) {
|
|
|
413
399
|
// schema keeps none.
|
|
414
400
|
if (maxCount <= 0)
|
|
415
401
|
return '';
|
|
416
|
-
|
|
417
|
-
let depth = 0;
|
|
418
|
-
let inString = false;
|
|
419
|
-
let current = '';
|
|
420
|
-
for (let i = 0; i < attrsRaw.length; i++) {
|
|
421
|
-
const ch = attrsRaw[i];
|
|
422
|
-
if (ch === "'" && !inString) {
|
|
423
|
-
inString = true;
|
|
424
|
-
current += ch;
|
|
425
|
-
}
|
|
426
|
-
else if (ch === "'" && inString) {
|
|
427
|
-
// Check for escaped quote ''
|
|
428
|
-
if (i + 1 < attrsRaw.length && attrsRaw[i + 1] === "'") {
|
|
429
|
-
current += "''";
|
|
430
|
-
i++;
|
|
431
|
-
continue;
|
|
432
|
-
}
|
|
433
|
-
inString = false;
|
|
434
|
-
current += ch;
|
|
435
|
-
}
|
|
436
|
-
else if (inString) {
|
|
437
|
-
current += ch;
|
|
438
|
-
}
|
|
439
|
-
else if (ch === '(') {
|
|
440
|
-
depth++;
|
|
441
|
-
current += ch;
|
|
442
|
-
}
|
|
443
|
-
else if (ch === ')') {
|
|
444
|
-
depth--;
|
|
445
|
-
current += ch;
|
|
446
|
-
}
|
|
447
|
-
else if (ch === ',' && depth === 0) {
|
|
448
|
-
attrs.push(current);
|
|
449
|
-
current = '';
|
|
450
|
-
if (attrs.length >= maxCount) {
|
|
451
|
-
return attrs.join(',');
|
|
452
|
-
}
|
|
453
|
-
}
|
|
454
|
-
else {
|
|
455
|
-
current += ch;
|
|
456
|
-
}
|
|
457
|
-
}
|
|
458
|
-
// Last attribute
|
|
459
|
-
attrs.push(current);
|
|
460
|
-
// Trim to maxCount
|
|
461
|
-
if (attrs.length > maxCount) {
|
|
462
|
-
return attrs.slice(0, maxCount).join(',');
|
|
463
|
-
}
|
|
464
|
-
return attrs.join(',');
|
|
402
|
+
return requireTopLevelAttributes(attrsRaw).slice(0, maxCount).join(',');
|
|
465
403
|
}
|
|
466
404
|
/**
|
|
467
405
|
* Check if a conversion between two schema versions requires entity type changes.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-converter.js","sourceRoot":"","sources":["../src/schema-converter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema-converter.js","sourceRoot":"","sources":["../src/schema-converter.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,9 +18,19 @@
|
|
|
18
18
|
*/
|
|
19
19
|
/**
|
|
20
20
|
* Split a STEP argument list on top-level commas, respecting nested
|
|
21
|
-
* parens, quoted strings, and comments (#4227).
|
|
21
|
+
* parens, quoted strings, and comments (#4227). This permissive helper is for
|
|
22
|
+
* already-extracted aggregate/list bodies; whole entity records must go
|
|
23
|
+
* through `readStepSlots` so every slot is validated before mutation.
|
|
22
24
|
*/
|
|
23
|
-
export declare function
|
|
25
|
+
export declare function splitTopLevelListItems(text: string): string[];
|
|
26
|
+
export interface StepRecordSlots {
|
|
27
|
+
readonly prefix: string;
|
|
28
|
+
readonly type: string;
|
|
29
|
+
readonly slots: readonly string[];
|
|
30
|
+
readonly suffix: string;
|
|
31
|
+
}
|
|
32
|
+
/** Parse a complete STEP record into validated, position-addressable slots. */
|
|
33
|
+
export declare function readStepSlots(entityText: string): StepRecordSlots | null;
|
|
24
34
|
/**
|
|
25
35
|
* Replace ONE top-level argument of a STEP record, by zero-based slot, leaving
|
|
26
36
|
* every other token — and the record's class keyword and id — byte-identical.
|
|
@@ -48,7 +58,7 @@ export declare function replaceStepArgument(entityText: string, attrIndex: numbe
|
|
|
48
58
|
* Split a STEP argument list on top-level commas while preserving nested syntax,
|
|
49
59
|
* or null when the text is not a well-formed argument list.
|
|
50
60
|
*
|
|
51
|
-
* Similar to `
|
|
61
|
+
* Similar to `splitTopLevelListItems` but uses a slightly different accumulation style
|
|
52
62
|
* suited for the {@link replaceStepArgument} call-site.
|
|
53
63
|
*
|
|
54
64
|
* ## Why it validates
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-argument-parser.d.ts","sourceRoot":"","sources":["../src/step-argument-parser.ts"],"names":[],"mappings":"AAkBA;;;;;;;;;;;;;;;;;GAiBG;AACH
|
|
1
|
+
{"version":3,"file":"step-argument-parser.d.ts","sourceRoot":"","sources":["../src/step-argument-parser.ts"],"names":[],"mappings":"AAkBA;;;;;;;;;;;;;;;;;GAiBG;AACH;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CA4D7D;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,+EAA+E;AAC/E,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAOxE;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,MAAM,GAAG,IAAI,CAsBf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAmEzE"}
|
|
@@ -12,7 +12,7 @@ import { isWellFormedStepSlot } from './step-slot-grammar.js';
|
|
|
12
12
|
* repoint, see below), the same failure class. Compiled once since
|
|
13
13
|
* `replaceStepArgument` runs per rewritten line.
|
|
14
14
|
*/
|
|
15
|
-
const RECORD_PREFIX_RE = new RegExp(`^(#\\d+\\s*=\\s
|
|
15
|
+
const RECORD_PREFIX_RE = new RegExp(`^(#\\d+\\s*=\\s*(\\w+)${STEP_TRIVIA}\\()([\\s\\S]*)(\\)\\s*;)\\s*$`);
|
|
16
16
|
/**
|
|
17
17
|
* The STEP argument parser and rewriter: reading a record's top-level argument
|
|
18
18
|
* list out of its text, and writing one slot back.
|
|
@@ -33,9 +33,11 @@ const RECORD_PREFIX_RE = new RegExp(`^(#\\d+\\s*=\\s*\\w+${STEP_TRIVIA}\\()([\\s
|
|
|
33
33
|
*/
|
|
34
34
|
/**
|
|
35
35
|
* Split a STEP argument list on top-level commas, respecting nested
|
|
36
|
-
* parens, quoted strings, and comments (#4227).
|
|
36
|
+
* parens, quoted strings, and comments (#4227). This permissive helper is for
|
|
37
|
+
* already-extracted aggregate/list bodies; whole entity records must go
|
|
38
|
+
* through `readStepSlots` so every slot is validated before mutation.
|
|
37
39
|
*/
|
|
38
|
-
export function
|
|
40
|
+
export function splitTopLevelListItems(text) {
|
|
39
41
|
const parts = [];
|
|
40
42
|
let current = '';
|
|
41
43
|
let depth = 0;
|
|
@@ -89,6 +91,17 @@ export function splitTopLevelArgs(text) {
|
|
|
89
91
|
}
|
|
90
92
|
return parts;
|
|
91
93
|
}
|
|
94
|
+
/** Parse a complete STEP record into validated, position-addressable slots. */
|
|
95
|
+
export function readStepSlots(entityText) {
|
|
96
|
+
const match = entityText.match(RECORD_PREFIX_RE);
|
|
97
|
+
if (!match)
|
|
98
|
+
return null;
|
|
99
|
+
const [, prefix, type, attrsText, suffix] = match;
|
|
100
|
+
const slots = splitTopLevelStepArguments(attrsText);
|
|
101
|
+
if (slots === null)
|
|
102
|
+
return null;
|
|
103
|
+
return { prefix, type: type.toUpperCase(), slots, suffix };
|
|
104
|
+
}
|
|
92
105
|
/**
|
|
93
106
|
* Replace ONE top-level argument of a STEP record, by zero-based slot, leaving
|
|
94
107
|
* every other token — and the record's class keyword and id — byte-identical.
|
|
@@ -112,11 +125,7 @@ export function splitTopLevelArgs(text) {
|
|
|
112
125
|
* (#2470). Silently corrupted output instead of a dropped entity, same class.
|
|
113
126
|
*/
|
|
114
127
|
export function replaceStepArgument(entityText, attrIndex, replacement) {
|
|
115
|
-
const
|
|
116
|
-
if (!match)
|
|
117
|
-
return null;
|
|
118
|
-
const [, prefix, attrsText, suffix] = match;
|
|
119
|
-
const attrs = splitTopLevelStepArguments(attrsText);
|
|
128
|
+
const record = readStepSlots(entityText);
|
|
120
129
|
// Load-bearing, and covered: the bounds check below READS `attrs.length`, so a
|
|
121
130
|
// null reaches it as a TypeError rather than falling through to a rejection.
|
|
122
131
|
// Deleting this line fails exactly the three malformed-input cases in
|
|
@@ -124,8 +133,9 @@ export function replaceStepArgument(entityText, attrIndex, replacement) {
|
|
|
124
133
|
// closing paren — which throw instead of returning null. Kept as its own line,
|
|
125
134
|
// not folded into that check, because "could not scan it" and "that slot is
|
|
126
135
|
// past the end" are different facts about the input.
|
|
127
|
-
if (
|
|
136
|
+
if (record === null)
|
|
128
137
|
return null;
|
|
138
|
+
const attrs = [...record.slots];
|
|
129
139
|
// A negative or fractional slot must not reach the assignment below: it would
|
|
130
140
|
// set a NAMED PROPERTY on the array rather than an element, `join` would skip
|
|
131
141
|
// it, and this would hand back the line unchanged — but non-null, which the
|
|
@@ -136,13 +146,13 @@ export function replaceStepArgument(entityText, attrIndex, replacement) {
|
|
|
136
146
|
if (!Number.isInteger(attrIndex) || attrIndex < 0 || attrIndex >= attrs.length)
|
|
137
147
|
return null;
|
|
138
148
|
attrs[attrIndex] = replacement;
|
|
139
|
-
return `${prefix}${attrs.join(',')}${suffix}`;
|
|
149
|
+
return `${record.prefix}${attrs.join(',')}${record.suffix}`;
|
|
140
150
|
}
|
|
141
151
|
/**
|
|
142
152
|
* Split a STEP argument list on top-level commas while preserving nested syntax,
|
|
143
153
|
* or null when the text is not a well-formed argument list.
|
|
144
154
|
*
|
|
145
|
-
* Similar to `
|
|
155
|
+
* Similar to `splitTopLevelListItems` but uses a slightly different accumulation style
|
|
146
156
|
* suited for the {@link replaceStepArgument} call-site.
|
|
147
157
|
*
|
|
148
158
|
* ## Why it validates
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-argument-parser.js","sourceRoot":"","sources":["../src/step-argument-parser.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;;;;;;GAOG;AACH,MAAM,gBAAgB,GAAG,IAAI,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"step-argument-parser.js","sourceRoot":"","sources":["../src/step-argument-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* (a comma, an unbalanced paren, an odd number of `'`) is skipped as one
|
|
7
7
|
* unit rather than read as argument-list structure. Shared by both
|
|
8
8
|
* `step-argument-parser.ts` splitters so the skip rule can't drift between
|
|
9
|
-
* them again (#4227: `
|
|
9
|
+
* them again (#4227: `splitTopLevelListItems` shipped with no comment handling
|
|
10
10
|
* at all while `splitTopLevelStepArguments` had this same logic inline).
|
|
11
11
|
*/
|
|
12
12
|
export declare function skipStepComment(text: string, i: number): number;
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* (a comma, an unbalanced paren, an odd number of `'`) is skipped as one
|
|
10
10
|
* unit rather than read as argument-list structure. Shared by both
|
|
11
11
|
* `step-argument-parser.ts` splitters so the skip rule can't drift between
|
|
12
|
-
* them again (#4227: `
|
|
12
|
+
* them again (#4227: `splitTopLevelListItems` shipped with no comment handling
|
|
13
13
|
* at all while `splitTopLevelStepArguments` had this same logic inline).
|
|
14
14
|
*/
|
|
15
15
|
export function skipStepComment(text, i) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-overlay-attribute-overrides.d.ts","sourceRoot":"","sources":["../src/step-overlay-attribute-overrides.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAK1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,EAC9C,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,IAAI,EAC1D,aAAa,EAAE,gBAAgB,EAC/B,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GACrD,MAAM,
|
|
1
|
+
{"version":3,"file":"step-overlay-attribute-overrides.d.ts","sourceRoot":"","sources":["../src/step-overlay-attribute-overrides.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAK1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,EAC9C,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,IAAI,EAC1D,aAAa,EAAE,gBAAgB,EAC/B,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GACrD,MAAM,CAwER"}
|
|
@@ -2,7 +2,7 @@
|
|
|
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
4
|
import { getAttributeNamesAcrossSchemas } from '@ifc-lite/parser';
|
|
5
|
-
import {
|
|
5
|
+
import { splitTopLevelStepArguments } from './step-argument-parser.js';
|
|
6
6
|
import { getRealTypedSlots } from './attribute-real-slots.js';
|
|
7
7
|
import { serializeNamedAttribute, serializePositionalOverride } from './step-attribute-serializers.js';
|
|
8
8
|
/**
|
|
@@ -27,7 +27,11 @@ import { serializeNamedAttribute, serializePositionalOverride } from './step-att
|
|
|
27
27
|
* two APIs queued the edit.
|
|
28
28
|
*/
|
|
29
29
|
export function applyOverlayEntityOverrides(argsText, entityType, attributeOverrides, positionalOverrides, schemaVersion, onRejected) {
|
|
30
|
-
const
|
|
30
|
+
const parsed = splitTopLevelStepArguments(argsText);
|
|
31
|
+
if (parsed === null) {
|
|
32
|
+
throw new Error('Cannot apply an overlay override to an invalid STEP argument list.');
|
|
33
|
+
}
|
|
34
|
+
const args = parsed;
|
|
31
35
|
const attrNames = getAttributeNamesAcrossSchemas(entityType);
|
|
32
36
|
const named = [];
|
|
33
37
|
for (const [attrName, value] of attributeOverrides ?? []) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-overlay-attribute-overrides.js","sourceRoot":"","sources":["../src/step-overlay-attribute-overrides.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAW/D,OAAO,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"step-overlay-attribute-overrides.js","sourceRoot":"","sources":["../src/step-overlay-attribute-overrides.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAW/D,OAAO,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAGvG;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,2BAA2B,CACzC,QAAgB,EAChB,UAAkB,EAClB,kBAA8C,EAC9C,mBAA0D,EAC1D,aAA+B,EAC/B,UAAsD;IAEtD,MAAM,MAAM,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IACpD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;IACxF,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC;IACpB,MAAM,SAAS,GAAG,8BAA8B,CAAC,UAAU,CAAC,CAAC;IAE7D,MAAM,KAAK,GAA4B,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,kBAAkB,IAAI,EAAE,EAAE,CAAC;QACzD,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,KAAK,IAAI,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,0EAA0E;IAC1E,2EAA2E;IAC3E,0EAA0E;IAC1E,wEAAwE;IACxE,6BAA6B;IAC7B,EAAE;IACF,uEAAuE;IACvE,2EAA2E;IAC3E,yEAAyE;IACzE,IAAI,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7D,IAAI,CAAC,QAAQ,IAAI,mBAAmB,EAAE,CAAC;QACrC,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,mBAAmB,EAAE,CAAC;YAC1C,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;gBACrD,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxD,CAAC;IAED,yEAAyE;IACzE,6DAA6D;IAC7D,MAAM,SAAS,GAAG,iBAAiB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAC/D,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,uBAAuB,CACxC,UAAU,EACV,KAAK,EACL,KAAK,EACL,IAAI,CAAC,KAAK,CAAC,EACX,SAAS,CACV,CAAC;QACF,0EAA0E;QAC1E,wEAAwE;QACxE,4DAA4D;QAC5D,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACxB,UAAU,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;YACrD,SAAS;QACX,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC;IAC3B,CAAC;IAED,IAAI,mBAAmB,IAAI,mBAAmB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACxD,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,mBAAmB,EAAE,CAAC;YACjD,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM;gBAAE,SAAS;YAChD,IAAI,CAAC,KAAK,CAAC,GAAG,2BAA2B,CACvC,UAAU,EACV,KAAK,EACL,KAAK,EACL,IAAI,CAAC,KAAK,CAAC,EACX,SAAS,EACT,aAAa,CACd,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* Three neighbours are deliberately NOT here, because none turns a value into
|
|
8
8
|
* a token and each has rules of its own worth finding on its own:
|
|
9
9
|
* - `step-argument-parser.ts` reads a record's arguments back OUT of a line
|
|
10
|
-
* and writes one slot by index (`
|
|
10
|
+
* and writes one slot by index (`splitTopLevelListItems`, `replaceStepArgument`,
|
|
11
11
|
* `splitTopLevelStepArguments`);
|
|
12
12
|
* - `step-file-assembly.ts` joins a finished header and finished entity lines
|
|
13
13
|
* into the delivered file (`assembleStepBytes`, `assembleStepBlob`);
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* Three neighbours are deliberately NOT here, because none turns a value into
|
|
11
11
|
* a token and each has rules of its own worth finding on its own:
|
|
12
12
|
* - `step-argument-parser.ts` reads a record's arguments back OUT of a line
|
|
13
|
-
* and writes one slot by index (`
|
|
13
|
+
* and writes one slot by index (`splitTopLevelListItems`, `replaceStepArgument`,
|
|
14
14
|
* `splitTopLevelStepArguments`);
|
|
15
15
|
* - `step-file-assembly.ts` joins a finished header and finished entity lines
|
|
16
16
|
* into the delivered file (`assembleStepBytes`, `assembleStepBlob`);
|
|
@@ -8,12 +8,20 @@
|
|
|
8
8
|
* Deliberately thin: this module owns none of the parsing rules itself. It
|
|
9
9
|
* composes `decodeRange` (`source-ref-bounds.ts`, the same readability gate
|
|
10
10
|
* every other byte-range read in this package uses — #2491) with
|
|
11
|
-
* `
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
11
|
+
* `readStepSlots` (`step-argument-parser.ts`, the same validated record reader
|
|
12
|
+
* `filterHiddenRefsFromRelationshipLine` uses) so a second, independent
|
|
13
|
+
* STEP-line parser cannot disagree with the ones the rest of the exporter
|
|
14
|
+
* already relies on.
|
|
15
15
|
*/
|
|
16
16
|
import type { IfcSourceBytes } from '@ifc-lite/parser';
|
|
17
|
+
/**
|
|
18
|
+
* `#N=TYPE(...);` record, with STEP trivia (whitespace and/or a
|
|
19
|
+
* `/* ... */` comment, #3789) tolerated between the type name and `(` —
|
|
20
|
+
* the same adjacency fix the rest of this package's record readers carry.
|
|
21
|
+
* Without it a wrapped record reads as unparseable, `readEntityArgs` returns
|
|
22
|
+
* `null`, and `anonymize-placement.ts` / `anonymize-scrub.ts` silently skip
|
|
23
|
+
* that entity instead of scrubbing it.
|
|
24
|
+
*/
|
|
17
25
|
/** One entity's parsed STEP record: its type token and top-level arguments,
|
|
18
26
|
* in declaration order (still raw STEP tokens — `#N`, `'text'`, `$`, `.T.`,
|
|
19
27
|
* a nested `(...)` list — not decoded values). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subset-entity-reader.d.ts","sourceRoot":"","sources":["../src/subset-entity-reader.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"subset-entity-reader.d.ts","sourceRoot":"","sources":["../src/subset-entity-reader.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAMvD;;;;;;;GAOG;AACH;;mDAEmD;AACnD,MAAM,WAAW,gBAAgB;IAC/B,2DAA2D;IAC3D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CAClC;AAED;kFACkF;AAClF,MAAM,WAAW,oBAAoB;IACnC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;CACxF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE;IAAE,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;CAAE,EAC1C,KAAK,EAAE,oBAAoB,EAC3B,EAAE,EAAE,MAAM,GACT,gBAAgB,GAAG,IAAI,CASzB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;AAc5D;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,gBAAgB,GAAG,SAAS,CAIhG;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAMvF"}
|