@ifc-lite/export 4.0.1 → 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/README.md +7 -0
- 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.d.ts.map +1 -1
- package/dist/anonymize-placement.js +5 -6
- package/dist/anonymize-placement.js.map +1 -1
- package/dist/appearance-dependencies.d.ts +12 -0
- package/dist/appearance-dependencies.d.ts.map +1 -0
- package/dist/appearance-dependencies.js +195 -0
- package/dist/appearance-dependencies.js.map +1 -0
- package/dist/authored-resource-cleanup.d.ts +14 -0
- package/dist/authored-resource-cleanup.d.ts.map +1 -0
- package/dist/authored-resource-cleanup.js +156 -0
- package/dist/authored-resource-cleanup.js.map +1 -0
- 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 +8 -0
- package/dist/effective-appearance-record.d.ts.map +1 -0
- package/dist/effective-appearance-record.js +49 -0
- package/dist/effective-appearance-record.js.map +1 -0
- package/dist/ifc5-appearance.d.ts +20 -0
- package/dist/ifc5-appearance.d.ts.map +1 -0
- package/dist/ifc5-appearance.js +106 -0
- package/dist/ifc5-appearance.js.map +1 -0
- 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 +12 -10
- package/dist/ifc5-exporter.d.ts.map +1 -1
- package/dist/ifc5-exporter.js +24 -41
- package/dist/ifc5-exporter.js.map +1 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/lod0-generator.js +1 -1
- package/dist/lod0-generator.js.map +1 -1
- package/dist/merged-context.d.ts.map +1 -1
- package/dist/merged-context.js +15 -1
- package/dist/merged-context.js.map +1 -1
- package/dist/merged-empty-containers.d.ts.map +1 -1
- package/dist/merged-empty-containers.js +9 -11
- package/dist/merged-empty-containers.js.map +1 -1
- package/dist/merged-subcontext.d.ts.map +1 -1
- package/dist/merged-subcontext.js +19 -1
- package/dist/merged-subcontext.js.map +1 -1
- package/dist/obj.d.ts +20 -0
- package/dist/obj.d.ts.map +1 -0
- package/dist/obj.js +40 -0
- package/dist/obj.js.map +1 -0
- package/dist/parquet-exporter.d.ts.map +1 -1
- package/dist/parquet-exporter.js +5 -5
- package/dist/parquet-exporter.js.map +1 -1
- package/dist/reference-collector.d.ts +21 -8
- package/dist/reference-collector.d.ts.map +1 -1
- package/dist/reference-collector.js +38 -45
- package/dist/reference-collector.js.map +1 -1
- package/dist/retype.d.ts +1 -1
- package/dist/retype.d.ts.map +1 -1
- package/dist/retype.js +13 -3
- package/dist/retype.js.map +1 -1
- package/dist/schema-converter-attr-remap.d.ts +18 -7
- package/dist/schema-converter-attr-remap.d.ts.map +1 -1
- package/dist/schema-converter-attr-remap.js +42 -48
- 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 +20 -3
- package/dist/step-argument-parser.d.ts.map +1 -1
- package/dist/step-argument-parser.js +60 -11
- package/dist/step-argument-parser.js.map +1 -1
- package/dist/step-attribute-mutations.d.ts +32 -2
- package/dist/step-attribute-mutations.d.ts.map +1 -1
- package/dist/step-attribute-mutations.js +87 -6
- package/dist/step-attribute-mutations.js.map +1 -1
- package/dist/step-comment-skip.d.ts +13 -0
- package/dist/step-comment-skip.d.ts.map +1 -0
- package/dist/step-comment-skip.js +19 -0
- package/dist/step-comment-skip.js.map +1 -0
- package/dist/step-export-types.d.ts +51 -0
- package/dist/step-export-types.d.ts.map +1 -1
- package/dist/step-export-types.js +38 -0
- package/dist/step-export-types.js.map +1 -1
- package/dist/step-outer-args.d.ts +27 -0
- package/dist/step-outer-args.d.ts.map +1 -0
- package/dist/step-outer-args.js +64 -0
- package/dist/step-outer-args.js.map +1 -0
- 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-property-sets.d.ts.map +1 -1
- package/dist/step-property-sets.js +8 -2
- package/dist/step-property-sets.js.map +1 -1
- package/dist/step-serialization.d.ts +1 -1
- package/dist/step-serialization.js +1 -1
- package/dist/step-slot-grammar.d.ts +24 -0
- package/dist/step-slot-grammar.d.ts.map +1 -0
- package/dist/step-slot-grammar.js +201 -0
- package/dist/step-slot-grammar.js.map +1 -0
- package/dist/step-source-iteration.d.ts.map +1 -1
- package/dist/step-source-iteration.js +26 -2
- package/dist/step-source-iteration.js.map +1 -1
- package/dist/style-closure.d.ts +3 -1
- package/dist/style-closure.d.ts.map +1 -1
- package/dist/style-closure.js +16 -1
- package/dist/style-closure.js.map +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/dist/texture-map-closure.d.ts +10 -0
- package/dist/texture-map-closure.d.ts.map +1 -0
- package/dist/texture-map-closure.js +22 -0
- package/dist/texture-map-closure.js.map +1 -0
- package/dist/unit-normalize.d.ts.map +1 -1
- package/dist/unit-normalize.js +12 -49
- package/dist/unit-normalize.js.map +1 -1
- package/package.json +8 -8
|
@@ -1,59 +1,29 @@
|
|
|
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 { splitTopLevelStepArguments } from './step-argument-parser.js';
|
|
4
5
|
/**
|
|
5
6
|
* Attribute-list reconciliation for a genuine cross-schema entity RENAME
|
|
6
7
|
* whose lists fail `schema-converter.ts`'s strict-prefix test (neither list
|
|
7
8
|
* is a positional prefix of the other). Split out to stay under
|
|
8
9
|
* `schema-converter.ts`'s line budget (`scripts/module-size-allowlist.txt`).
|
|
9
10
|
*/
|
|
10
|
-
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
11
|
+
/**
|
|
12
|
+
* Split a raw STEP attribute list into its top-level (comma-separated)
|
|
13
|
+
* value strings, respecting nested parentheses and single-quoted strings.
|
|
14
|
+
* Empty list → [].
|
|
15
|
+
*
|
|
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).
|
|
20
|
+
*
|
|
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.
|
|
24
|
+
*/
|
|
14
25
|
export function splitTopLevelAttributes(attrsRaw) {
|
|
15
|
-
|
|
16
|
-
return [];
|
|
17
|
-
const attrs = [];
|
|
18
|
-
let depth = 0;
|
|
19
|
-
let inString = false;
|
|
20
|
-
let current = '';
|
|
21
|
-
for (let i = 0; i < attrsRaw.length; i++) {
|
|
22
|
-
const ch = attrsRaw[i];
|
|
23
|
-
if (ch === "'" && !inString) {
|
|
24
|
-
inString = true;
|
|
25
|
-
current += ch;
|
|
26
|
-
}
|
|
27
|
-
else if (ch === "'" && inString) {
|
|
28
|
-
if (i + 1 < attrsRaw.length && attrsRaw[i + 1] === "'") {
|
|
29
|
-
current += "''";
|
|
30
|
-
i++;
|
|
31
|
-
continue;
|
|
32
|
-
}
|
|
33
|
-
inString = false;
|
|
34
|
-
current += ch;
|
|
35
|
-
}
|
|
36
|
-
else if (inString) {
|
|
37
|
-
current += ch;
|
|
38
|
-
}
|
|
39
|
-
else if (ch === '(') {
|
|
40
|
-
depth++;
|
|
41
|
-
current += ch;
|
|
42
|
-
}
|
|
43
|
-
else if (ch === ')') {
|
|
44
|
-
depth--;
|
|
45
|
-
current += ch;
|
|
46
|
-
}
|
|
47
|
-
else if (ch === ',' && depth === 0) {
|
|
48
|
-
attrs.push(current);
|
|
49
|
-
current = '';
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
current += ch;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
attrs.push(current);
|
|
56
|
-
return attrs;
|
|
26
|
+
return splitTopLevelStepArguments(attrsRaw);
|
|
57
27
|
}
|
|
58
28
|
/**
|
|
59
29
|
* Renamed entity types whose attribute lists are safe to reconcile BY NAME
|
|
@@ -78,6 +48,22 @@ export function splitTopLevelAttributes(attrsRaw) {
|
|
|
78
48
|
* differently shaped) representation for it.
|
|
79
49
|
*/
|
|
80
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
|
+
]);
|
|
81
67
|
/**
|
|
82
68
|
* Reconcile a renamed entity's attribute list by matching attribute NAMES
|
|
83
69
|
* between the source and target schema tables, rather than by position.
|
|
@@ -90,17 +76,25 @@ export const BY_NAME_ATTR_REMAP_TYPES = new Set(['IFCDOORTYPE', 'IFCWINDOWTYPE']
|
|
|
90
76
|
* prefix of the other.
|
|
91
77
|
*
|
|
92
78
|
* A target attribute with no same-named source attribute becomes `$`
|
|
93
|
-
* (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
|
|
94
81
|
* target slot is dropped. Both are honest data loss for attributes the
|
|
95
82
|
* target schema's OWN shape does not carry under that name — never a
|
|
96
83
|
* misplaced value.
|
|
97
84
|
*/
|
|
98
85
|
export function remapRenamedAttributesByName(attrsRaw, srcNames, tgtNames) {
|
|
99
86
|
const values = splitTopLevelAttributes(attrsRaw);
|
|
87
|
+
if (values === null)
|
|
88
|
+
return null;
|
|
100
89
|
const byName = new Map();
|
|
101
90
|
for (let i = 0; i < srcNames.length && i < values.length; i++) {
|
|
102
91
|
byName.set(srcNames[i], values[i]);
|
|
103
92
|
}
|
|
104
|
-
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(',');
|
|
105
99
|
}
|
|
106
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;;;;;GAKG;AAEH
|
|
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":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,eAAe,EAAqB,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAsB,MAAM,gBAAgB,CAAC;AACrG,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AAI1G;;;;;;GAMG;AAEH,8EAA8E;AAC9E,yEAAyE;AACzE,6DAA6D;AAC7D,MAAM,cAAc,GAAwB,IAAI,GAAG,CAAC;IAClD,gFAAgF;IAChF,8DAA8D;IAC9D,8CAA8C;IAC9C,CAAC,8BAA8B,EAAE,8BAA8B,CAAC;IAChE,CAAC,oBAAoB,EAAE,eAAe,CAAC;IACvC,CAAC,qBAAqB,EAAE,yBAAyB,CAAC;CACnD,CAAC,CAAC;AAEH,8EAA8E;AAC9E,MAAM,cAAc,GAAwB,IAAI,GAAG,CAAC;IAClD,CAAC,8BAA8B,EAAE,8BAA8B,CAAC;IAChE,CAAC,eAAe,EAAE,oBAAoB,CAAC;IACvC,6DAA6D;IAC7D,CAAC,YAAY,EAAE,yBAAyB,CAAC;IACzC,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;IAC/C,CAAC,iBAAiB,EAAE,yBAAyB,CAAC;IAC9C,CAAC,sBAAsB,EAAE,yBAAyB,CAAC;IACnD,CAAC,YAAY,EAAE,yBAAyB,CAAC;IACzC,CAAC,mBAAmB,EAAE,YAAY,CAAC;IACnC,CAAC,WAAW,EAAE,yBAAyB,CAAC;IACxC,CAAC,aAAa,EAAE,SAAS,CAAC;IAC1B,CAAC,SAAS,EAAE,yBAAyB,CAAC;IACtC,mEAAmE;IACnE,gEAAgE;IAChE,oEAAoE;IACpE,yEAAyE;IACzE,0EAA0E;IAC1E,8DAA8D;IAC9D,iEAAiE;IACjE,CAAC,aAAa,EAAE,cAAc,CAAC;IAC/B,CAAC,eAAe,EAAE,gBAAgB,CAAC;IACnC,gDAAgD;IAChD,CAAC,aAAa,EAAE,aAAa,CAAC;IAC9B,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;IACxC,CAAC,uBAAuB,EAAE,mBAAmB,CAAC;IAC9C,CAAC,WAAW,EAAE,aAAa,CAAC;IAC5B,CAAC,eAAe,EAAE,mBAAmB,CAAC;IACtC,CAAC,SAAS,EAAE,aAAa,CAAC;IAC1B,CAAC,aAAa,EAAE,mBAAmB,CAAC;IACpC,CAAC,YAAY,EAAE,aAAa,CAAC;IAC7B,CAAC,gBAAgB,EAAE,mBAAmB,CAAC;IACvC,CAAC,mBAAmB,EAAE,aAAa,CAAC;IACpC,CAAC,eAAe,EAAE,mBAAmB,CAAC;IACtC,6CAA6C;IAC7C,CAAC,iBAAiB,EAAE,yBAAyB,CAAC;CAC/C,CAAC,CAAC;AAEH,8EAA8E;AAC9E,MAAM,cAAc,GAAwB,IAAI,GAAG,CAAC;AAClD,uDAAuD;AACvD,oFAAoF;CACrF,CAAC,CAAC;AAEH,8EAA8E;AAC9E,MAAM,cAAc,GAAwB,IAAI,GAAG,CAAC;IAClD,gEAAgE;IAChE,CAAC,aAAa,EAAE,aAAa,CAAC;IAC9B,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;IACxC,CAAC,uBAAuB,EAAE,mBAAmB,CAAC;IAC9C,CAAC,WAAW,EAAE,aAAa,CAAC;IAC5B,CAAC,eAAe,EAAE,mBAAmB,CAAC;IACtC,CAAC,SAAS,EAAE,aAAa,CAAC;IAC1B,CAAC,aAAa,EAAE,mBAAmB,CAAC;IACpC,CAAC,YAAY,EAAE,aAAa,CAAC;IAC7B,CAAC,gBAAgB,EAAE,mBAAmB,CAAC;IACvC,CAAC,mBAAmB,EAAE,aAAa,CAAC;IACpC,CAAC,eAAe,EAAE,mBAAmB,CAAC;IACtC,CAAC,iBAAiB,EAAE,yBAAyB,CAAC;IAC9C,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;IAC/C,CAAC,sBAAsB,EAAE,yBAAyB,CAAC;IACnD,CAAC,mBAAmB,EAAE,yBAAyB,CAAC;IAChD,CAAC,sBAAsB,EAAE,YAAY,CAAC;IACtC,CAAC,sBAAsB,EAAE,yBAAyB,CAAC;IACnD,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;IAC/C,CAAC,aAAa,EAAE,SAAS,CAAC;IAC1B,CAAC,SAAS,EAAE,yBAAyB,CAAC;IACtC,CAAC,mBAAmB,EAAE,yBAAyB,CAAC;IAChD,CAAC,SAAS,EAAE,yBAAyB,CAAC;IACtC,CAAC,WAAW,EAAE,yBAAyB,CAAC;IACxC,CAAC,iBAAiB,EAAE,yBAAyB,CAAC;IAC9C,CAAC,SAAS,EAAE,yBAAyB,CAAC;IACtC,CAAC,WAAW,EAAE,yBAAyB,CAAC;IACxC,CAAC,6BAA6B,EAAE,UAAU,CAAC;IAC3C,CAAC,uBAAuB,EAAE,UAAU,CAAC;IACrC,CAAC,aAAa,EAAE,UAAU,CAAC;IAC3B,CAAC,cAAc,EAAE,UAAU,CAAC;IAC5B,CAAC,kBAAkB,EAAE,UAAU,CAAC;IAChC,CAAC,oBAAoB,EAAE,gBAAgB,CAAC;IACxC,CAAC,mBAAmB,EAAE,iBAAiB,CAAC;IACxC,CAAC,sCAAsC,EAAE,4BAA4B,CAAC;IACtE,CAAC,sBAAsB,EAAE,8BAA8B,CAAC;IACxD,CAAC,gCAAgC,EAAE,wBAAwB,CAAC;CAC7D,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,UAAkB,EAClB,UAA4B,EAC5B,QAA0B;IAE1B,IAAI,UAAU,KAAK,QAAQ;QAAE,OAAO,UAAU,CAAC;IAE/C,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IAEvC,4CAA4C;IAC5C,MAAM,GAAG,GAAG,gBAAgB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACnD,OAAO,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;AAClC,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CACvB,IAAsB,EACtB,EAAoB;IAEpB,qBAAqB;IACrB,IAAI,IAAI,KAAK,QAAQ,IAAI,EAAE,KAAK,MAAM;QAAE,OAAO,cAAc,CAAC;IAC9D,IAAI,IAAI,KAAK,MAAM,IAAI,EAAE,KAAK,QAAQ;QAAE,OAAO,cAAc,CAAC;IAC9D,IAAI,IAAI,KAAK,MAAM,IAAI,EAAE,KAAK,QAAQ;QAAE,OAAO,cAAc,CAAC;IAC9D,IAAI,IAAI,KAAK,QAAQ,IAAI,EAAE,KAAK,MAAM;QAAE,OAAO,cAAc,CAAC;IAE9D,wDAAwD;IACxD,IAAI,IAAI,KAAK,MAAM,IAAI,EAAE,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,CAAC,aAAa;IAClE,IAAI,IAAI,KAAK,QAAQ,IAAI,EAAE,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC,CAAC,aAAa;IAClE,IAAI,IAAI,KAAK,MAAM,IAAI,EAAE,KAAK,MAAM;QAAE,OAAO,cAAc,CAAC;IAC5D,IAAI,IAAI,KAAK,MAAM,IAAI,EAAE,KAAK,MAAM;QAAE,OAAO,cAAc,CAAC;IAE5D,uDAAuD;IACvD,IAAI,IAAI,KAAK,QAAQ,IAAI,CAAC,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC;QAC5D,OAAO,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;IACnD,CAAC;IAED,uDAAuD;IACvD,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;QAC9D,OAAO,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAChB,IAAyB,EACzB,IAAyB;IAEzB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEzC,0DAA0D;IAC1D,KAAK,MAAM,CAAC,GAAG,EAAE,YAAY,CAAC,IAAI,IAAI,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,CAAC;IAC1D,CAAC;IAED,wDAAwD;IACxD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,+EAA+E;AAC/E,iFAAiF;AACjF,4EAA4E;AAC5E,mDAAmD;AACnD,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAoD,CAAC;AACrF,SAAS,aAAa,CAAC,MAAwB;IAC7C,IAAI,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IACxB,IAAI,QAAQ,GAAoC,IAAI,CAAC;IACrD,IAAI,MAAM,KAAK,QAAQ;QAAE,QAAQ,GAAG,eAAe,CAAC;SAC/C,IAAI,MAAM,KAAK,MAAM;QAAE,QAAQ,GAAG,aAAa,CAAC;SAChD,IAAI,MAAM,KAAK,QAAQ;QAAE,QAAQ,GAAG,eAAe,CAAC;;QACpD,OAAO,IAAI,CAAC,CAAC,sDAAsD;IACxE,KAAK,GAAG,IAAI,GAAG,EAA6B,CAAC;IAC7C,KAAK,MAAM,CAAC,IAAI,QAAQ;QAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;IACxE,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACpC,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,kBAAkB,CAAC,OAA0B,EAAE,MAAyB;IAC/E,IAAI,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IAC7C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;6DAC6D;AAC7D,SAAS,uBAAuB,CAAC,QAAgB;IAC/C,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;QAAE,OAAO,CAAC,CAAC;IAC/B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,QAAQ;YAAE,QAAQ,GAAG,IAAI,CAAC;aACxC,IAAI,EAAE,KAAK,GAAG,IAAI,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAAC,CAAC,EAAE,CAAC;gBAAC,SAAS;YAAC,CAAC;YAC1E,QAAQ,GAAG,KAAK,CAAC;QACnB,CAAC;aAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YACrB,IAAI,EAAE,KAAK,GAAG;gBAAE,KAAK,EAAE,CAAC;iBACnB,IAAI,EAAE,KAAK,GAAG;gBAAE,KAAK,EAAE,CAAC;iBACxB,IAAI,EAAE,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC;gBAAE,KAAK,EAAE,CAAC;QAC9C,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAY,EACZ,UAA4B,EAC5B,QAA0B,EAC1B,MAAqB;IAErB,IAAI,UAAU,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAEzC,2EAA2E;IAC3E,6EAA6E;IAC7E,+EAA+E;IAC/E,+EAA+E;IAC/E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAC/D,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC,CAAC,uCAAuC;IAEhE,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAE,UAAU;IACpC,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEhC,sBAAsB;IACtB,MAAM,OAAO,GAAG,iBAAiB,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAEpE,0EAA0E;IAC1E,qFAAqF;IACrF,IAAI,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC;QACxC,qEAAqE;QACrE,sEAAsE;QACtE,yEAAyE;QACzE,2EAA2E;QAC3E,oDAAoD;QACpD,mCAAmC;QACnC,EAAE;QACF,0EAA0E;QAC1E,0EAA0E;QAC1E,qEAAqE;QACrE,2EAA2E;QAC3E,sDAAsD;QACtD,EAAE;QACF,wEAAwE;QACxE,4EAA4E;QAC5E,yEAAyE;QACzE,0EAA0E;QAC1E,2EAA2E;QAC3E,aAAa;QACb,EAAE;QACF,wEAAwE;QACxE,oDAAoD;QACpD,MAAM,IAAI,GAAG,MAAM;YACjB,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC;YACzB,CAAC,CAAC,qBAAqB,CAAC,YAAY,MAAM,GAAG,UAAU,IAAI,QAAQ,GAAG,CAAC,CAAC;QAC1E,OAAO,GAAG,MAAM,aAAa,IAAI,QAAQ,UAAU,4BAA4B,CAAC;IAClF,CAAC;IAED,6EAA6E;IAC7E,8EAA8E;IAC9E,+EAA+E;IAC/E,8EAA8E;IAC9E,+DAA+D;IAC/D,iEAAiE;IACjE,4EAA4E;IAC5E,6EAA6E;IAC7E,yEAAyE;IACzE,uEAAuE;IACvE,EAAE;IACF,6EAA6E;IAC7E,wEAAwE;IACxE,gEAAgE;IAChE,yEAAyE;IACzE,uEAAuE;IACvE,2EAA2E;IAC3E,8EAA8E;IAC9E,eAAe;IACf,EAAE;IACF,uEAAuE;IACvE,+EAA+E;IAC/E,kFAAkF;IAClF,IAAI,UAAU,GAAG,QAAQ,CAAC;IAC1B,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3C,yEAAyE;IACzE,uEAAuE;IACvE,4EAA4E;IAC5E,6EAA6E;IAC7E,IAAI,QAAQ,IAAI,WAAW,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzC,OAAO,0BAA0B,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC3C,UAAU,GAAG,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QACzD,CAAC;aAAM,IAAI,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;YAClD,MAAM,YAAY,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;YACzD,IAAI,YAAY,GAAG,CAAC,IAAI,YAAY,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACvD,UAAU,GAAG,GAAG,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC;YAC7E,CAAC;QACH,CAAC;aAAM,IAAI,UAAU,KAAK,OAAO,IAAI,wBAAwB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9E,yEAAyE;YACzE,UAAU,GAAG,4BAA4B,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,OAAO,GAAG,MAAM,GAAG,OAAO,IAAI,UAAU,IAAI,CAAC;AAC/C,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,gBAAgB,CAAC,UAAkB,EAAE,QAA0B;IACtE,mEAAmE;IACnE,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACjD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,6EAA6E;IAC7E,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC;QACxB,kBAAkB;QAClB,wBAAwB;QACxB,sBAAsB;QACtB,qBAAqB;KACtB,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACnC,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,QAAgB,EAAE,QAAgB;IACxD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;QAAE,OAAO,QAAQ,CAAC;IACtC,6EAA6E;IAC7E,8EAA8E;IAC9E,qBAAqB;IACrB,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAE7B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,OAAO,GAAG,EAAE,CAAC;IAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAEvB,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,QAAQ,GAAG,IAAI,CAAC;YAChB,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG,IAAI,QAAQ,EAAE,CAAC;YAClC,6BAA6B;YAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBACvD,OAAO,IAAI,IAAI,CAAC;gBAChB,CAAC,EAAE,CAAC;gBACJ,SAAS;YACX,CAAC;YACD,QAAQ,GAAG,KAAK,CAAC;YACjB,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC;aAAM,IAAI,QAAQ,EAAE,CAAC;YACpB,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACtB,KAAK,EAAE,CAAC;YACR,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACtB,KAAK,EAAE,CAAC;YACR,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpB,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;gBAC7B,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAED,iBAAiB;IACjB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEpB,mBAAmB;IACnB,IAAI,KAAK,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,UAA4B,EAC5B,QAA0B;IAE1B,OAAO,UAAU,KAAK,QAAQ,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,UAA4B,EAC5B,QAA0B;IAE1B,IAAI,UAAU,KAAK,QAAQ;QAAE,OAAO,sBAAsB,CAAC;IAE3D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,QAAQ,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QAClF,QAAQ,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,QAAQ,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAC;IACjG,CAAC;IAED,IAAI,UAAU,KAAK,QAAQ,IAAI,CAAC,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,QAAQ,CAAC,EAAE,CAAC;QAC9E,QAAQ,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;IACnG,CAAC;IAED,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC;QACxB,CAAC,CAAC,cAAc,UAAU,MAAM,QAAQ,KAAK,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAClE,CAAC,CAAC,cAAc,UAAU,MAAM,QAAQ,EAAE,CAAC;AAC/C,CAAC"}
|
|
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
|
-
*
|
|
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
|
|
@@ -70,6 +80,13 @@ export declare function replaceStepArgument(entityText: string, attrIndex: numbe
|
|
|
70
80
|
* dips negative and climbs back looks balanced at the end while every comma
|
|
71
81
|
* in between was read as nested.
|
|
72
82
|
*
|
|
83
|
+
* A part whose parentheses nest deeper than the per-slot grammar's bound is
|
|
84
|
+
* refused the same way — see `MAX_SLOT_NESTING_DEPTH` in `step-slot-grammar.ts`
|
|
85
|
+
* for why that bound exists and how the number was chosen. It is the one
|
|
86
|
+
* rejection here that is not about the record's text being wrong; it is what
|
|
87
|
+
* keeps this function's answer to "parts, or null" total, instead of letting a
|
|
88
|
+
* deeply nested list reach the caller as a thrown `RangeError` nothing handles.
|
|
89
|
+
*
|
|
73
90
|
* An EMPTY top-level slot (`a,,b`, or a trailing comma) is deliberately NOT
|
|
74
91
|
* rejected, though it is invalid STEP. It costs no alignment: an empty argument
|
|
75
92
|
* is ONE part, exactly as the entity parser counts it, so every index still
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-argument-parser.d.ts","sourceRoot":"","sources":["../src/step-argument-parser.ts"],"names":[],"mappings":"
|
|
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"}
|
|
@@ -2,6 +2,8 @@
|
|
|
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 { STEP_TRIVIA } from '@ifc-lite/parser';
|
|
5
|
+
import { skipStepComment } from './step-comment-skip.js';
|
|
6
|
+
import { isWellFormedStepSlot } from './step-slot-grammar.js';
|
|
5
7
|
/**
|
|
6
8
|
* `#N=CLASS(...)` record prefix, with STEP trivia (whitespace and/or a
|
|
7
9
|
* `/* ... */` comment, #3789) tolerated between the type name and its `(`
|
|
@@ -10,7 +12,7 @@ import { STEP_TRIVIA } from '@ifc-lite/parser';
|
|
|
10
12
|
* repoint, see below), the same failure class. Compiled once since
|
|
11
13
|
* `replaceStepArgument` runs per rewritten line.
|
|
12
14
|
*/
|
|
13
|
-
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*$`);
|
|
14
16
|
/**
|
|
15
17
|
* The STEP argument parser and rewriter: reading a record's top-level argument
|
|
16
18
|
* list out of its text, and writing one slot back.
|
|
@@ -31,15 +33,23 @@ const RECORD_PREFIX_RE = new RegExp(`^(#\\d+\\s*=\\s*\\w+${STEP_TRIVIA}\\()([\\s
|
|
|
31
33
|
*/
|
|
32
34
|
/**
|
|
33
35
|
* Split a STEP argument list on top-level commas, respecting nested
|
|
34
|
-
*
|
|
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.
|
|
35
39
|
*/
|
|
36
|
-
export function
|
|
40
|
+
export function splitTopLevelListItems(text) {
|
|
37
41
|
const parts = [];
|
|
38
42
|
let current = '';
|
|
39
43
|
let depth = 0;
|
|
40
44
|
let inString = false;
|
|
41
45
|
for (let i = 0; i < text.length; i++) {
|
|
42
46
|
const char = text[i];
|
|
47
|
+
if (!inString && char === '/' && text[i + 1] === '*') {
|
|
48
|
+
const stop = skipStepComment(text, i); // see skipStepComment's docstring
|
|
49
|
+
current += text.slice(i, stop);
|
|
50
|
+
i = stop - 1;
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
43
53
|
current += char;
|
|
44
54
|
if (inString) {
|
|
45
55
|
if (char === '\'') {
|
|
@@ -81,6 +91,17 @@ export function splitTopLevelArgs(text) {
|
|
|
81
91
|
}
|
|
82
92
|
return parts;
|
|
83
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
|
+
}
|
|
84
105
|
/**
|
|
85
106
|
* Replace ONE top-level argument of a STEP record, by zero-based slot, leaving
|
|
86
107
|
* every other token — and the record's class keyword and id — byte-identical.
|
|
@@ -104,11 +125,7 @@ export function splitTopLevelArgs(text) {
|
|
|
104
125
|
* (#2470). Silently corrupted output instead of a dropped entity, same class.
|
|
105
126
|
*/
|
|
106
127
|
export function replaceStepArgument(entityText, attrIndex, replacement) {
|
|
107
|
-
const
|
|
108
|
-
if (!match)
|
|
109
|
-
return null;
|
|
110
|
-
const [, prefix, attrsText, suffix] = match;
|
|
111
|
-
const attrs = splitTopLevelStepArguments(attrsText);
|
|
128
|
+
const record = readStepSlots(entityText);
|
|
112
129
|
// Load-bearing, and covered: the bounds check below READS `attrs.length`, so a
|
|
113
130
|
// null reaches it as a TypeError rather than falling through to a rejection.
|
|
114
131
|
// Deleting this line fails exactly the three malformed-input cases in
|
|
@@ -116,8 +133,9 @@ export function replaceStepArgument(entityText, attrIndex, replacement) {
|
|
|
116
133
|
// closing paren — which throw instead of returning null. Kept as its own line,
|
|
117
134
|
// not folded into that check, because "could not scan it" and "that slot is
|
|
118
135
|
// past the end" are different facts about the input.
|
|
119
|
-
if (
|
|
136
|
+
if (record === null)
|
|
120
137
|
return null;
|
|
138
|
+
const attrs = [...record.slots];
|
|
121
139
|
// A negative or fractional slot must not reach the assignment below: it would
|
|
122
140
|
// set a NAMED PROPERTY on the array rather than an element, `join` would skip
|
|
123
141
|
// it, and this would hand back the line unchanged — but non-null, which the
|
|
@@ -128,13 +146,13 @@ export function replaceStepArgument(entityText, attrIndex, replacement) {
|
|
|
128
146
|
if (!Number.isInteger(attrIndex) || attrIndex < 0 || attrIndex >= attrs.length)
|
|
129
147
|
return null;
|
|
130
148
|
attrs[attrIndex] = replacement;
|
|
131
|
-
return `${prefix}${attrs.join(',')}${suffix}`;
|
|
149
|
+
return `${record.prefix}${attrs.join(',')}${record.suffix}`;
|
|
132
150
|
}
|
|
133
151
|
/**
|
|
134
152
|
* Split a STEP argument list on top-level commas while preserving nested syntax,
|
|
135
153
|
* or null when the text is not a well-formed argument list.
|
|
136
154
|
*
|
|
137
|
-
* Similar to `
|
|
155
|
+
* Similar to `splitTopLevelListItems` but uses a slightly different accumulation style
|
|
138
156
|
* suited for the {@link replaceStepArgument} call-site.
|
|
139
157
|
*
|
|
140
158
|
* ## Why it validates
|
|
@@ -156,6 +174,13 @@ export function replaceStepArgument(entityText, attrIndex, replacement) {
|
|
|
156
174
|
* dips negative and climbs back looks balanced at the end while every comma
|
|
157
175
|
* in between was read as nested.
|
|
158
176
|
*
|
|
177
|
+
* A part whose parentheses nest deeper than the per-slot grammar's bound is
|
|
178
|
+
* refused the same way — see `MAX_SLOT_NESTING_DEPTH` in `step-slot-grammar.ts`
|
|
179
|
+
* for why that bound exists and how the number was chosen. It is the one
|
|
180
|
+
* rejection here that is not about the record's text being wrong; it is what
|
|
181
|
+
* keeps this function's answer to "parts, or null" total, instead of letting a
|
|
182
|
+
* deeply nested list reach the caller as a thrown `RangeError` nothing handles.
|
|
183
|
+
*
|
|
159
184
|
* An EMPTY top-level slot (`a,,b`, or a trailing comma) is deliberately NOT
|
|
160
185
|
* rejected, though it is invalid STEP. It costs no alignment: an empty argument
|
|
161
186
|
* is ONE part, exactly as the entity parser counts it, so every index still
|
|
@@ -181,6 +206,14 @@ export function splitTopLevelStepArguments(input) {
|
|
|
181
206
|
let inString = false;
|
|
182
207
|
for (let i = 0; i < input.length; i++) {
|
|
183
208
|
const char = input[i];
|
|
209
|
+
// See skipStepComment's docstring; isWellFormedStepSlot below still
|
|
210
|
+
// rejects an unterminated comment via skipTrivia.
|
|
211
|
+
if (!inString && char === '/' && input[i + 1] === '*') {
|
|
212
|
+
const stop = skipStepComment(input, i);
|
|
213
|
+
current += input.slice(i, stop);
|
|
214
|
+
i = stop - 1;
|
|
215
|
+
continue;
|
|
216
|
+
}
|
|
184
217
|
if (char === "'") {
|
|
185
218
|
current += char;
|
|
186
219
|
if (inString && i + 1 < input.length && input[i + 1] === "'") {
|
|
@@ -212,6 +245,22 @@ export function splitTopLevelStepArguments(input) {
|
|
|
212
245
|
if (inString || depth !== 0)
|
|
213
246
|
return null;
|
|
214
247
|
parts.push(current);
|
|
248
|
+
// The three checks above (quote/paren/final-depth) track SCAN state, not
|
|
249
|
+
// slot content. A phantom string can swallow a real boundary — an
|
|
250
|
+
// undoubled `'` inside two different string-typed arguments reads as one
|
|
251
|
+
// string spanning both, so the text between them (`),$,IFCLABEL(` and
|
|
252
|
+
// similar) gets folded into a single part while quote parity and paren
|
|
253
|
+
// depth both stay clean — and a comment sitting alone between two commas
|
|
254
|
+
// (no value of its own) becomes its own phantom slot, shifting every index
|
|
255
|
+
// after it. Both leave every check above satisfied on a slot list that is
|
|
256
|
+
// not the record's actual arguments (#4162). Reject the whole split rather
|
|
257
|
+
// than hand back parts whose boundaries do not correspond to real slots —
|
|
258
|
+
// a null here is what lets `replaceStepArgument`'s by-index write refuse
|
|
259
|
+
// instead of landing on the wrong attribute.
|
|
260
|
+
for (const part of parts) {
|
|
261
|
+
if (!isWellFormedStepSlot(part))
|
|
262
|
+
return null;
|
|
263
|
+
}
|
|
215
264
|
return parts;
|
|
216
265
|
}
|
|
217
266
|
//# sourceMappingURL=step-argument-parser.js.map
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"step-argument-parser.js","sourceRoot":"","sources":["../src/step-argument-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,8 +29,8 @@ import type { SourceLineMutations } from './step-exporter.js';
|
|
|
29
29
|
* The expressId is unchanged by all of this, so geometry / placement /
|
|
30
30
|
* representation and every IfcRel* reference (keyed by #id) carry over.
|
|
31
31
|
*
|
|
32
|
-
*
|
|
33
|
-
* operation change the line", measured across that operation alone. The count
|
|
32
|
+
* The three delivery flags report EFFECT, not intent — each is the answer to
|
|
33
|
+
* "did this operation change the line", measured across that operation alone. The count
|
|
34
34
|
* and the ledger are claims about the FILE, so an edit that resolves to the
|
|
35
35
|
* text already there has delivered nothing and must not be reported: retyping
|
|
36
36
|
* an entity to the class it already is, or writing a positional slot the token
|
|
@@ -44,6 +44,36 @@ import type { SourceLineMutations } from './step-exporter.js';
|
|
|
44
44
|
* two are nominated (their edits have no earlier nomination site); named
|
|
45
45
|
* attribute edits are nominated by the collection pass and `attributed` only
|
|
46
46
|
* settles their delivery.
|
|
47
|
+
*
|
|
48
|
+
* `unreadable` is the fourth field and answers a different question: not what
|
|
49
|
+
* this line carries, but whether the pipeline could read it at all. Every edit
|
|
50
|
+
* kind above writes a slot BY INDEX, so all of them refuse together on a record
|
|
51
|
+
* whose argument list does not scan — and three false delivery flags cannot say
|
|
52
|
+
* that, because a discarded edit sets them too. Both call sites turn it into a
|
|
53
|
+
* warning naming the entity (#4125).
|
|
47
54
|
*/
|
|
48
55
|
export declare function applySourceLineMutations(mutationView: MutablePropertyView | null, expressId: number, entityText: string, recordType: string, attributeMutations: Map<string, string> | undefined, sourceSchema: IfcSchemaVersion, overlayActive: boolean, onRejected?: (attrName: string, value: string) => void): SourceLineMutations;
|
|
56
|
+
/**
|
|
57
|
+
* The pipeline as a writing pass is handed it: {@link applySourceLineMutations}
|
|
58
|
+
* with the export's `MutablePropertyView` already bound
|
|
59
|
+
* (`step-export-contexts.ts`). Derived from the function rather than restated,
|
|
60
|
+
* so the injected form cannot drift from the real one.
|
|
61
|
+
*/
|
|
62
|
+
type BoundSourceLineMutations = (...args: WithoutView<Parameters<typeof applySourceLineMutations>>) => SourceLineMutations;
|
|
63
|
+
type WithoutView<T extends unknown[]> = T extends [MutablePropertyView | null, ...infer Rest] ? Rest : never;
|
|
64
|
+
/**
|
|
65
|
+
* Run the pipeline for a writing pass and report BOTH ways it can decline to
|
|
66
|
+
* write, into that pass's warnings.
|
|
67
|
+
*
|
|
68
|
+
* Two passes emit a source entity's defining line — the source-iteration pass
|
|
69
|
+
* and the type-object `HasPropertySets` rewrite that REPLACES it — and each
|
|
70
|
+
* needs the same pair: the per-attribute rejection (a REAL-typed slot handed a
|
|
71
|
+
* non-number) and the whole-record refusal ({@link SourceLineMutations.unreadable}).
|
|
72
|
+
* They were two identical blocks at the two call sites, which is one block per
|
|
73
|
+
* pass too many: a third pass copying one of them gets a report that is right
|
|
74
|
+
* about one channel and silent about the other, and silence is what #4125 is
|
|
75
|
+
* about. So the call and both reports are one thing here.
|
|
76
|
+
*/
|
|
77
|
+
export declare function applySourceLineMutationsReported(apply: BoundSourceLineMutations, warnings: string[], expressId: number, entityText: string, recordType: string, attributeMutations: Map<string, string> | undefined, sourceSchema: IfcSchemaVersion, overlayActive: boolean): SourceLineMutations;
|
|
78
|
+
export {};
|
|
49
79
|
//# sourceMappingURL=step-attribute-mutations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-attribute-mutations.d.ts","sourceRoot":"","sources":["../src/step-attribute-mutations.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"step-attribute-mutations.d.ts","sourceRoot":"","sources":["../src/step-attribute-mutations.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,mBAAmB,GAAG,IAAI,EACxC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EACnD,YAAY,EAAE,gBAAgB,EAC9B,aAAa,EAAE,OAAO,EACtB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GACrD,mBAAmB,CA6ErB;AAED;;;;;GAKG;AACH,KAAK,wBAAwB,GAAG,CAC9B,GAAG,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC,KAC9D,mBAAmB,CAAC;AACzB,KAAK,WAAW,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,mBAAmB,GAAG,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,GACzF,IAAI,GACJ,KAAK,CAAC;AAEV;;;;;;;;;;;;GAYG;AACH,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,wBAAwB,EAC/B,QAAQ,EAAE,MAAM,EAAE,EAClB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EACnD,YAAY,EAAE,gBAAgB,EAC9B,aAAa,EAAE,OAAO,GACrB,mBAAmB,CAkBrB"}
|