@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
|
@@ -14,11 +14,12 @@
|
|
|
14
14
|
* pipeline is now `step-overlay-attribute-overrides.ts`, and the shared
|
|
15
15
|
* serializers are `step-attribute-serializers.ts`.
|
|
16
16
|
*/
|
|
17
|
-
import {
|
|
17
|
+
import { splitTopLevelStepArguments } from './step-argument-parser.js';
|
|
18
18
|
import { getRealTypedSlots } from './attribute-real-slots.js';
|
|
19
19
|
import { retypeStepLine } from './retype.js';
|
|
20
20
|
import { attrIndex, stepSourceSchema } from './subset-entity-reader.js';
|
|
21
21
|
import { serializeNamedAttribute, serializePositionalOverride } from './step-attribute-serializers.js';
|
|
22
|
+
import { unreadableRecordEditsDroppedWarning } from './step-export-types.js';
|
|
22
23
|
/**
|
|
23
24
|
* THE mutation pipeline for a line read out of the source buffer: retype,
|
|
24
25
|
* then named attribute edits, then positional edits.
|
|
@@ -47,8 +48,8 @@ import { serializeNamedAttribute, serializePositionalOverride } from './step-att
|
|
|
47
48
|
* The expressId is unchanged by all of this, so geometry / placement /
|
|
48
49
|
* representation and every IfcRel* reference (keyed by #id) carry over.
|
|
49
50
|
*
|
|
50
|
-
*
|
|
51
|
-
* operation change the line", measured across that operation alone. The count
|
|
51
|
+
* The three delivery flags report EFFECT, not intent — each is the answer to
|
|
52
|
+
* "did this operation change the line", measured across that operation alone. The count
|
|
52
53
|
* and the ledger are claims about the FILE, so an edit that resolves to the
|
|
53
54
|
* text already there has delivered nothing and must not be reported: retyping
|
|
54
55
|
* an entity to the class it already is, or writing a positional slot the token
|
|
@@ -62,6 +63,13 @@ import { serializeNamedAttribute, serializePositionalOverride } from './step-att
|
|
|
62
63
|
* two are nominated (their edits have no earlier nomination site); named
|
|
63
64
|
* attribute edits are nominated by the collection pass and `attributed` only
|
|
64
65
|
* settles their delivery.
|
|
66
|
+
*
|
|
67
|
+
* `unreadable` is the fourth field and answers a different question: not what
|
|
68
|
+
* this line carries, but whether the pipeline could read it at all. Every edit
|
|
69
|
+
* kind above writes a slot BY INDEX, so all of them refuse together on a record
|
|
70
|
+
* whose argument list does not scan — and three false delivery flags cannot say
|
|
71
|
+
* that, because a discarded edit sets them too. Both call sites turn it into a
|
|
72
|
+
* warning naming the entity (#4125).
|
|
65
73
|
*/
|
|
66
74
|
export function applySourceLineMutations(mutationView, expressId, entityText, recordType, attributeMutations, sourceSchema, overlayActive, onRejected) {
|
|
67
75
|
let text = entityText;
|
|
@@ -97,7 +105,68 @@ export function applySourceLineMutations(mutationView, expressId, entityText, re
|
|
|
97
105
|
text = applyPositionalMutations(text, positionals, workingType, sourceSchema);
|
|
98
106
|
positional = text !== beforePositionals;
|
|
99
107
|
}
|
|
100
|
-
|
|
108
|
+
// All three edit kinds above address this line's arguments BY INDEX, so all
|
|
109
|
+
// three refuse together when the argument list does not scan into slots —
|
|
110
|
+
// and all three then look exactly like an edit that resolved to the text
|
|
111
|
+
// already there. That is the failure this whole family is about, so the
|
|
112
|
+
// refusal is stated rather than left to be inferred from three false flags
|
|
113
|
+
// (#4125). Only ever set when an edit was actually asked for: a malformed
|
|
114
|
+
// record nobody edited has refused nothing.
|
|
115
|
+
//
|
|
116
|
+
// The three delivery flags are tested FIRST because any one of them being
|
|
117
|
+
// true already answers the question, without splitting the record a second
|
|
118
|
+
// time. Each of `retypeStepLine`, `applyAttributeMutations` and
|
|
119
|
+
// `applyPositionalMutations` returns its input UNCHANGED when it refuses, so
|
|
120
|
+
// a flag that is true means that writer replaced a slot, which means it
|
|
121
|
+
// scanned the argument list — over the same substring, between the same
|
|
122
|
+
// `indexOf('(')` and `lastIndexOf(');')` bounds `argumentListScans` uses. So
|
|
123
|
+
// the added conjuncts only ever skip a call that would have returned true;
|
|
124
|
+
// they cannot turn a refusal into a readable record.
|
|
125
|
+
const requested = typeMutation !== null
|
|
126
|
+
|| (attributeMutations?.size ?? 0) > 0
|
|
127
|
+
|| (positionals?.size ?? 0) > 0;
|
|
128
|
+
const unreadable = requested
|
|
129
|
+
&& !attributed
|
|
130
|
+
&& !retyped
|
|
131
|
+
&& !positional
|
|
132
|
+
&& !argumentListScans(entityText);
|
|
133
|
+
return { text, attributed, retyped, positional, unreadable };
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Run the pipeline for a writing pass and report BOTH ways it can decline to
|
|
137
|
+
* write, into that pass's warnings.
|
|
138
|
+
*
|
|
139
|
+
* Two passes emit a source entity's defining line — the source-iteration pass
|
|
140
|
+
* and the type-object `HasPropertySets` rewrite that REPLACES it — and each
|
|
141
|
+
* needs the same pair: the per-attribute rejection (a REAL-typed slot handed a
|
|
142
|
+
* non-number) and the whole-record refusal ({@link SourceLineMutations.unreadable}).
|
|
143
|
+
* They were two identical blocks at the two call sites, which is one block per
|
|
144
|
+
* pass too many: a third pass copying one of them gets a report that is right
|
|
145
|
+
* about one channel and silent about the other, and silence is what #4125 is
|
|
146
|
+
* about. So the call and both reports are one thing here.
|
|
147
|
+
*/
|
|
148
|
+
export function applySourceLineMutationsReported(apply, warnings, expressId, entityText, recordType, attributeMutations, sourceSchema, overlayActive) {
|
|
149
|
+
const mutated = apply(expressId, entityText, recordType, attributeMutations, sourceSchema, overlayActive, (attr, value) => warnings.push(`entity #${expressId}: attribute ${attr} not written - ` +
|
|
150
|
+
`${JSON.stringify(value)} is not a number and the slot is REAL-typed`));
|
|
151
|
+
if (mutated.unreadable) {
|
|
152
|
+
warnings.push(unreadableRecordEditsDroppedWarning(expressId, recordType));
|
|
153
|
+
}
|
|
154
|
+
return mutated;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Does this line's own argument list scan into slots?
|
|
158
|
+
*
|
|
159
|
+
* Scoped to the arguments deliberately. Text that is not a `#N=CLASS(...);`
|
|
160
|
+
* record at all is a different fact, and one every writer here already returns
|
|
161
|
+
* untouched without claiming anything; this answers only the question the
|
|
162
|
+
* by-index writers below actually ask.
|
|
163
|
+
*/
|
|
164
|
+
function argumentListScans(entityText) {
|
|
165
|
+
const openParen = entityText.indexOf('(');
|
|
166
|
+
const closeParen = entityText.lastIndexOf(');');
|
|
167
|
+
if (openParen < 0 || closeParen < openParen)
|
|
168
|
+
return true;
|
|
169
|
+
return splitTopLevelStepArguments(entityText.slice(openParen + 1, closeParen)) !== null;
|
|
101
170
|
}
|
|
102
171
|
/**
|
|
103
172
|
* Rewrite root IFC attributes directly on the original STEP entity line.
|
|
@@ -108,7 +177,15 @@ function applyAttributeMutations(entityText, entityType, attributeMutations, sch
|
|
|
108
177
|
if (openParen < 0 || closeParen < openParen) {
|
|
109
178
|
return entityText;
|
|
110
179
|
}
|
|
111
|
-
|
|
180
|
+
// Validating, not permissive. Every write below is BY INDEX into these
|
|
181
|
+
// parts, so parts that are not the record's slots put the value on another
|
|
182
|
+
// attribute and delete whatever was there, while `changed` still says the
|
|
183
|
+
// edit landed (#2470, #4125). A `null` refuses the whole line's named edits
|
|
184
|
+
// rather than handing back a success that did not happen; the caller reports
|
|
185
|
+
// it (see {@link applySourceLineMutations}).
|
|
186
|
+
const args = splitTopLevelStepArguments(entityText.slice(openParen + 1, closeParen));
|
|
187
|
+
if (args === null)
|
|
188
|
+
return entityText;
|
|
112
189
|
// A source line NEVER pads (unlike the overlay-created path): a short
|
|
113
190
|
// argument list here means the file speaks a different schema, and growing
|
|
114
191
|
// a record we did not author would corrupt it.
|
|
@@ -159,7 +236,11 @@ function applyPositionalMutations(entityText, positionals, entityType, schemaVer
|
|
|
159
236
|
const closeParen = entityText.lastIndexOf(');');
|
|
160
237
|
if (openParen < 0 || closeParen < openParen)
|
|
161
238
|
return entityText;
|
|
162
|
-
|
|
239
|
+
// Validating for the same reason as the named path above: `args[index] = …`
|
|
240
|
+
// is only an edit to attribute `index` when the parts ARE the record's slots.
|
|
241
|
+
const args = splitTopLevelStepArguments(entityText.slice(openParen + 1, closeParen));
|
|
242
|
+
if (args === null)
|
|
243
|
+
return entityText;
|
|
163
244
|
const realSlots = getRealTypedSlots(entityType, schemaVersion);
|
|
164
245
|
let changed = false;
|
|
165
246
|
for (const [index, value] of positionals) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-attribute-mutations.js","sourceRoot":"","sources":["../src/step-attribute-mutations.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"step-attribute-mutations.js","sourceRoot":"","sources":["../src/step-attribute-mutations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skip a comment-delimiter-bounded region atomically, starting at the index
|
|
3
|
+
* of its opening `/` marker (caller has already checked `text[i] === '/' &&
|
|
4
|
+
* text[i + 1] === '*'`). Returns the index one past the region's end — the
|
|
5
|
+
* matching close marker, or end-of-text when unterminated — so its content
|
|
6
|
+
* (a comma, an unbalanced paren, an odd number of `'`) is skipped as one
|
|
7
|
+
* unit rather than read as argument-list structure. Shared by both
|
|
8
|
+
* `step-argument-parser.ts` splitters so the skip rule can't drift between
|
|
9
|
+
* them again (#4227: `splitTopLevelListItems` shipped with no comment handling
|
|
10
|
+
* at all while `splitTopLevelStepArguments` had this same logic inline).
|
|
11
|
+
*/
|
|
12
|
+
export declare function skipStepComment(text: string, i: number): number;
|
|
13
|
+
//# sourceMappingURL=step-comment-skip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-comment-skip.d.ts","sourceRoot":"","sources":["../src/step-comment-skip.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAG/D"}
|
|
@@ -0,0 +1,19 @@
|
|
|
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
|
+
/**
|
|
5
|
+
* Skip a comment-delimiter-bounded region atomically, starting at the index
|
|
6
|
+
* of its opening `/` marker (caller has already checked `text[i] === '/' &&
|
|
7
|
+
* text[i + 1] === '*'`). Returns the index one past the region's end — the
|
|
8
|
+
* matching close marker, or end-of-text when unterminated — so its content
|
|
9
|
+
* (a comma, an unbalanced paren, an odd number of `'`) is skipped as one
|
|
10
|
+
* unit rather than read as argument-list structure. Shared by both
|
|
11
|
+
* `step-argument-parser.ts` splitters so the skip rule can't drift between
|
|
12
|
+
* them again (#4227: `splitTopLevelListItems` shipped with no comment handling
|
|
13
|
+
* at all while `splitTopLevelStepArguments` had this same logic inline).
|
|
14
|
+
*/
|
|
15
|
+
export function skipStepComment(text, i) {
|
|
16
|
+
const end = text.indexOf('*/', i + 2);
|
|
17
|
+
return end === -1 ? text.length : end + 2;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=step-comment-skip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-comment-skip.js","sourceRoot":"","sources":["../src/step-comment-skip.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,CAAS;IACrD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACtC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -202,6 +202,44 @@ export declare const relationshipWithheldWarning: (expressId: number, type: stri
|
|
|
202
202
|
* attribute, e.g. `IfcStyledItem.Item`, naming an entity this export omits).
|
|
203
203
|
*/
|
|
204
204
|
export declare const styleEntityWithheldWarning: (expressId: number, type: string) => string;
|
|
205
|
+
/**
|
|
206
|
+
* The edits queued for a source record were dropped because its own argument
|
|
207
|
+
* list could not be read as a list of slots.
|
|
208
|
+
*
|
|
209
|
+
* Said out loud, because the alternative was worse in both directions. Writing
|
|
210
|
+
* by index into parts a mis-scan produced lands the value on a different
|
|
211
|
+
* attribute and deletes what was there, while reporting success; refusing
|
|
212
|
+
* without saying so leaves an export that looks like it carried the edit. The
|
|
213
|
+
* usual cause is an undoubled apostrophe inside a string-typed attribute, which
|
|
214
|
+
* an authoring tool emits when it forgets to double one — two of those leave
|
|
215
|
+
* quote parity even and paren depth at zero, so nothing structural notices
|
|
216
|
+
* (#4125).
|
|
217
|
+
*
|
|
218
|
+
* It says what was DROPPED and nothing about what was written. It used to open
|
|
219
|
+
* "was written exactly as the source file has it", which is a claim this
|
|
220
|
+
* sentence is in no position to make: the pipeline that produces it runs before
|
|
221
|
+
* `writeSourceEntityLines` hands the record to `convertStepLine`, and a
|
|
222
|
+
* cross-schema export can rename the record's type, trim or pad its attribute
|
|
223
|
+
* list, replace it with an `IFCPROXY`, or drop it from the output entirely. So
|
|
224
|
+
* on exactly the path where a caller most needs to know what became of a
|
|
225
|
+
* dropped edit, the diagnostic was false (#4213).
|
|
226
|
+
*
|
|
227
|
+
* Buffering the report until the line's fate is known — the treatment
|
|
228
|
+
* `step-source-iteration.ts` already applies to the withholding branches — does
|
|
229
|
+
* not fit here. The refusal is produced one layer below the two writers, and
|
|
230
|
+
* the other of them (`step-property-sets.ts`'s type-object rewrite) never
|
|
231
|
+
* converts at all, so a message about the output would have to be assembled
|
|
232
|
+
* differently per caller for a fact neither caller is reporting. A sentence
|
|
233
|
+
* about the refusal is true on every path, which is what a shared message needs
|
|
234
|
+
* to be. It does not replace the dropped clause with a weaker one either — "the
|
|
235
|
+
* record keeps the values the source gave it" is false on the same conversion
|
|
236
|
+
* path, for the same reason.
|
|
237
|
+
*
|
|
238
|
+
* `type` is the class the SOURCE record carries, which is the class the dropped
|
|
239
|
+
* edits were queued against; it is not a claim about the class the export
|
|
240
|
+
* writes, which on that same conversion path can differ.
|
|
241
|
+
*/
|
|
242
|
+
export declare const unreadableRecordEditsDroppedWarning: (expressId: number, type: string) => string;
|
|
205
243
|
/**
|
|
206
244
|
* What `step-attribute-mutations.ts`'s `applySourceLineMutations` produced: the rewritten
|
|
207
245
|
* line, plus which edit kinds that rewrite actually delivered. The delivery
|
|
@@ -211,6 +249,19 @@ export declare const styleEntityWithheldWarning: (expressId: number, type: strin
|
|
|
211
249
|
*/
|
|
212
250
|
export type SourceLineMutations = SourceLineDelivery & {
|
|
213
251
|
text: string;
|
|
252
|
+
/**
|
|
253
|
+
* The line's argument list did not scan into slots, so NONE of the edits
|
|
254
|
+
* queued for it was applied and `text` is the source's own bytes.
|
|
255
|
+
*
|
|
256
|
+
* Separate from the three delivery flags because it answers a different
|
|
257
|
+
* question. Those say what this line carries; this says the pipeline refused
|
|
258
|
+
* to write it at all. Without it a refusal is indistinguishable from an edit
|
|
259
|
+
* that resolved to the text already there — three false flags either way —
|
|
260
|
+
* and writing by index into an argument list this scanner could not read is
|
|
261
|
+
* exactly how an edit lands on the wrong attribute while reporting success
|
|
262
|
+
* (#2470, #4125).
|
|
263
|
+
*/
|
|
264
|
+
unreadable: boolean;
|
|
214
265
|
};
|
|
215
266
|
/**
|
|
216
267
|
* The state one `export()` call shares across its seven phases.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-export-types.d.ts","sourceRoot":"","sources":["../src/step-export-types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"step-export-types.d.ts","sourceRoot":"","sources":["../src/step-export-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,4 +29,42 @@ export const relationshipWithheldWarning = (expressId, type) => `Relationship #$
|
|
|
29
29
|
* attribute, e.g. `IfcStyledItem.Item`, naming an entity this export omits).
|
|
30
30
|
*/
|
|
31
31
|
export const styleEntityWithheldWarning = (expressId, type) => `Entity #${expressId} (${type}) was withheld from the export: it names at least one entity that has no line in this export, in a slot with no spelling for an omitted reference (a single-valued attribute, or a set whose every member is omitted).`;
|
|
32
|
+
/**
|
|
33
|
+
* The edits queued for a source record were dropped because its own argument
|
|
34
|
+
* list could not be read as a list of slots.
|
|
35
|
+
*
|
|
36
|
+
* Said out loud, because the alternative was worse in both directions. Writing
|
|
37
|
+
* by index into parts a mis-scan produced lands the value on a different
|
|
38
|
+
* attribute and deletes what was there, while reporting success; refusing
|
|
39
|
+
* without saying so leaves an export that looks like it carried the edit. The
|
|
40
|
+
* usual cause is an undoubled apostrophe inside a string-typed attribute, which
|
|
41
|
+
* an authoring tool emits when it forgets to double one — two of those leave
|
|
42
|
+
* quote parity even and paren depth at zero, so nothing structural notices
|
|
43
|
+
* (#4125).
|
|
44
|
+
*
|
|
45
|
+
* It says what was DROPPED and nothing about what was written. It used to open
|
|
46
|
+
* "was written exactly as the source file has it", which is a claim this
|
|
47
|
+
* sentence is in no position to make: the pipeline that produces it runs before
|
|
48
|
+
* `writeSourceEntityLines` hands the record to `convertStepLine`, and a
|
|
49
|
+
* cross-schema export can rename the record's type, trim or pad its attribute
|
|
50
|
+
* list, replace it with an `IFCPROXY`, or drop it from the output entirely. So
|
|
51
|
+
* on exactly the path where a caller most needs to know what became of a
|
|
52
|
+
* dropped edit, the diagnostic was false (#4213).
|
|
53
|
+
*
|
|
54
|
+
* Buffering the report until the line's fate is known — the treatment
|
|
55
|
+
* `step-source-iteration.ts` already applies to the withholding branches — does
|
|
56
|
+
* not fit here. The refusal is produced one layer below the two writers, and
|
|
57
|
+
* the other of them (`step-property-sets.ts`'s type-object rewrite) never
|
|
58
|
+
* converts at all, so a message about the output would have to be assembled
|
|
59
|
+
* differently per caller for a fact neither caller is reporting. A sentence
|
|
60
|
+
* about the refusal is true on every path, which is what a shared message needs
|
|
61
|
+
* to be. It does not replace the dropped clause with a weaker one either — "the
|
|
62
|
+
* record keeps the values the source gave it" is false on the same conversion
|
|
63
|
+
* path, for the same reason.
|
|
64
|
+
*
|
|
65
|
+
* `type` is the class the SOURCE record carries, which is the class the dropped
|
|
66
|
+
* edits were queued against; it is not a claim about the class the export
|
|
67
|
+
* writes, which on that same conversion path can differ.
|
|
68
|
+
*/
|
|
69
|
+
export const unreadableRecordEditsDroppedWarning = (expressId, type) => `Entity #${expressId} (${type}): its argument list could not be read as a list of attributes, so every edit queued for it (attribute, retype and positional alike) was dropped rather than applied to a slot that may not be the one meant. The usual cause is an apostrophe inside a string attribute that was not doubled.`;
|
|
32
70
|
//# sourceMappingURL=step-export-types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-export-types.js","sourceRoot":"","sources":["../src/step-export-types.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAmM/D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,SAAiB,EAAE,IAAY,EAAU,EAAE,CACrF,iBAAiB,SAAS,KAAK,IAAI,0SAA0S,CAAC;AAEhV;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,SAAiB,EAAE,IAAY,EAAU,EAAE,CACpF,WAAW,SAAS,KAAK,IAAI,wNAAwN,CAAC"}
|
|
1
|
+
{"version":3,"file":"step-export-types.js","sourceRoot":"","sources":["../src/step-export-types.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAmM/D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,SAAiB,EAAE,IAAY,EAAU,EAAE,CACrF,iBAAiB,SAAS,KAAK,IAAI,0SAA0S,CAAC;AAEhV;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,SAAiB,EAAE,IAAY,EAAU,EAAE,CACpF,WAAW,SAAS,KAAK,IAAI,wNAAwN,CAAC;AAExP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,SAAiB,EAAE,IAAY,EAAU,EAAE,CAC7F,WAAW,SAAS,KAAK,IAAI,gSAAgS,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Locate the outer STEP argument list of one entity line: the first `(` (nothing
|
|
3
|
+
* is quoted before the type name) and its matching `)`, honouring quoted strings
|
|
4
|
+
* (with the `''` escape) and `/* ... */` comments so a literal `)`, `'`, or `(`
|
|
5
|
+
* inside either never shifts the match. Returns `null` for a line without
|
|
6
|
+
* arguments, or one whose span this scan cannot delimit cleanly.
|
|
7
|
+
*
|
|
8
|
+
* Split out of `unit-normalize.ts` (which has no line-count headroom left under
|
|
9
|
+
* `scripts/check-module-size.mjs`) so this scan — shared in spirit with
|
|
10
|
+
* `splitTopLevelStepArguments`'s outer scan in `step-argument-parser.ts` — has
|
|
11
|
+
* somewhere to carry its comment-awareness fix.
|
|
12
|
+
*
|
|
13
|
+
* ISO-10303-21 comment content is unrestricted: a `/* ... */` can hold an
|
|
14
|
+
* apostrophe or an unbalanced paren, neither of which is argument-list
|
|
15
|
+
* structure. Before this fix, an apostrophe inside a comment toggled quote
|
|
16
|
+
* state and an unbalanced paren inside one shifted the depth count, so a scan
|
|
17
|
+
* over an otherwise well-formed line could miss the record's real closing `)`
|
|
18
|
+
* and return `null` — which `rescaleEntityLengths` reads as "no arguments to
|
|
19
|
+
* rescale" and silently hands the line back with its length/area/volume data
|
|
20
|
+
* UNSCALED, the same silent-corruption class `splitTopLevelStepArguments` was
|
|
21
|
+
* hardened against for LTplus-AG/ifc-lite#4162.
|
|
22
|
+
*/
|
|
23
|
+
export declare function findOuterArgs(line: string): {
|
|
24
|
+
open: number;
|
|
25
|
+
close: number;
|
|
26
|
+
} | null;
|
|
27
|
+
//# sourceMappingURL=step-outer-args.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-outer-args.d.ts","sourceRoot":"","sources":["../src/step-outer-args.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CA4BlF"}
|
|
@@ -0,0 +1,64 @@
|
|
|
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
|
+
/**
|
|
5
|
+
* Locate the outer STEP argument list of one entity line: the first `(` (nothing
|
|
6
|
+
* is quoted before the type name) and its matching `)`, honouring quoted strings
|
|
7
|
+
* (with the `''` escape) and `/* ... */` comments so a literal `)`, `'`, or `(`
|
|
8
|
+
* inside either never shifts the match. Returns `null` for a line without
|
|
9
|
+
* arguments, or one whose span this scan cannot delimit cleanly.
|
|
10
|
+
*
|
|
11
|
+
* Split out of `unit-normalize.ts` (which has no line-count headroom left under
|
|
12
|
+
* `scripts/check-module-size.mjs`) so this scan — shared in spirit with
|
|
13
|
+
* `splitTopLevelStepArguments`'s outer scan in `step-argument-parser.ts` — has
|
|
14
|
+
* somewhere to carry its comment-awareness fix.
|
|
15
|
+
*
|
|
16
|
+
* ISO-10303-21 comment content is unrestricted: a `/* ... */` can hold an
|
|
17
|
+
* apostrophe or an unbalanced paren, neither of which is argument-list
|
|
18
|
+
* structure. Before this fix, an apostrophe inside a comment toggled quote
|
|
19
|
+
* state and an unbalanced paren inside one shifted the depth count, so a scan
|
|
20
|
+
* over an otherwise well-formed line could miss the record's real closing `)`
|
|
21
|
+
* and return `null` — which `rescaleEntityLengths` reads as "no arguments to
|
|
22
|
+
* rescale" and silently hands the line back with its length/area/volume data
|
|
23
|
+
* UNSCALED, the same silent-corruption class `splitTopLevelStepArguments` was
|
|
24
|
+
* hardened against for LTplus-AG/ifc-lite#4162.
|
|
25
|
+
*/
|
|
26
|
+
export function findOuterArgs(line) {
|
|
27
|
+
const open = line.indexOf('(');
|
|
28
|
+
if (open === -1)
|
|
29
|
+
return null;
|
|
30
|
+
let depth = 0;
|
|
31
|
+
let inString = false;
|
|
32
|
+
for (let i = open; i < line.length; i++) {
|
|
33
|
+
const ch = line[i];
|
|
34
|
+
if (!inString && ch === '/' && line[i + 1] === '*') {
|
|
35
|
+
const end = line.indexOf('*/', i + 2);
|
|
36
|
+
if (end === -1)
|
|
37
|
+
return null; // unterminated comment: nothing past it is trustworthy
|
|
38
|
+
i = end + 1; // loop's i++ lands one past the closing '/'
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
if (inString) {
|
|
42
|
+
if (ch === "'") {
|
|
43
|
+
if (line[i + 1] === "'")
|
|
44
|
+
i++; // escaped quote
|
|
45
|
+
else
|
|
46
|
+
inString = false;
|
|
47
|
+
}
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
if (ch === "'") {
|
|
51
|
+
inString = true;
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
if (ch === '(')
|
|
55
|
+
depth++;
|
|
56
|
+
else if (ch === ')') {
|
|
57
|
+
depth--;
|
|
58
|
+
if (depth === 0)
|
|
59
|
+
return { open, close: i };
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=step-outer-args.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-outer-args.js","sourceRoot":"","sources":["../src/step-outer-args.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,IAAI,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,CAAC,QAAQ,IAAI,EAAE,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACnD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACtC,IAAI,GAAG,KAAK,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC,CAAC,uDAAuD;YACpF,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,4CAA4C;YACzD,SAAS;QACX,CAAC;QACD,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBACf,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG;oBAAE,CAAC,EAAE,CAAC,CAAC,gBAAgB;;oBACzC,QAAQ,GAAG,KAAK,CAAC;YACxB,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAAC,QAAQ,GAAG,IAAI,CAAC;YAAC,SAAS;QAAC,CAAC;QAC9C,IAAI,EAAE,KAAK,GAAG;YAAE,KAAK,EAAE,CAAC;aACnB,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACpB,KAAK,EAAE,CAAC;YACR,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -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":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-property-sets.d.ts","sourceRoot":"","sources":["../src/step-property-sets.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"step-property-sets.d.ts","sourceRoot":"","sources":["../src/step-property-sets.ts"],"names":[],"mappings":"AAmCA,OAAO,EAAE,KAAK,kBAAkB,EAAsB,MAAM,gCAAgC,CAAC;AAE7F,OAAO,KAAK,EAAE,UAAU,EAAuB,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG7F;;;;;;;;;GASG;AACH,wBAAgB,sCAAsC,CACpD,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,iBAAiB,EAC1B,GAAG,EAAE,kBAAkB,GACtB,IAAI,CAmLN"}
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
import { decodeRange } from './source-ref-bounds.js';
|
|
26
26
|
import { resolveTypeOwnedPsetIds, rewriteTypeOwnedPsetLine, typeOwnedPsetRewriteWarning, } from './type-owned-psets.js';
|
|
27
27
|
import { recordSourceLineDelivery } from './delta-modification-ledger.js';
|
|
28
|
+
import { applySourceLineMutationsReported } from './step-attribute-mutations.js';
|
|
28
29
|
import { nominateDeliveredInPlaceEdits } from './in-place-nomination.js';
|
|
29
30
|
import { getPropertySetName } from './step-property-set-readers.js';
|
|
30
31
|
import { generatePropertySetEntities, generateQuantitySetEntities } from './step-property-set-generators.js';
|
|
@@ -97,8 +98,13 @@ export function generatePropertyAndQuantitySetEntities(pass, options, ctx) {
|
|
|
97
98
|
sourceLine = decodeRange(ctx.dataStore.source, record.byteOffset, record.byteOffset + record.byteLength);
|
|
98
99
|
// The RECORD's class is the from-type: the bytes are still the source
|
|
99
100
|
// class, whatever `typeOf` now says the entity effectively is.
|
|
100
|
-
|
|
101
|
-
|
|
101
|
+
//
|
|
102
|
+
// The reporting travels with the call (`applySourceLineMutationsReported`)
|
|
103
|
+
// because this rewrite REPLACES the source-iteration pass's line for these
|
|
104
|
+
// ids (`rewrittenEntityIds`) — a refusal reported only there would be
|
|
105
|
+
// silent for exactly the entities this branch owns, and a pass that
|
|
106
|
+
// remembered one of the two warnings would be silent about the other.
|
|
107
|
+
mutated = applySourceLineMutationsReported(ctx.applySourceLineMutations, pass.warnings, entityId, sourceLine, record.type, pass.modifiedAttributes.get(entityId), pass.sourceSchema, pass.overlayActive);
|
|
102
108
|
}
|
|
103
109
|
if (mutated === null) {
|
|
104
110
|
// `willBeEmitted` already required real source bytes for a non-overlay
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-property-sets.js","sourceRoot":"","sources":["../src/step-property-sets.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"step-property-sets.js","sourceRoot":"","sources":["../src/step-property-sets.ts"],"names":[],"mappings":"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"}
|
|
@@ -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`);
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether `part` — one slot `splitTopLevelStepArguments` already separated on
|
|
3
|
+
* a top-level comma, raw text including any surrounding whitespace/comments —
|
|
4
|
+
* is a single well-formed STEP value (a string literal, a binary literal
|
|
5
|
+
* (`"..."`), `$`, `*`, a bare keyword / enumeration / number / `#`-reference
|
|
6
|
+
* token, or a typed value or list `NAME(...)` / `(...)`), or is empty.
|
|
7
|
+
*
|
|
8
|
+
* Empty is deliberately accepted, matching `splitTopLevelStepArguments`'s
|
|
9
|
+
* docstring: `a,,b` is one empty part, not a rejection, so slot indices after it
|
|
10
|
+
* stay aligned with what the entity parser counts. A part that is ONLY a comment
|
|
11
|
+
* (no value) is NOT given that same pass — a lone `/* c */` between two commas
|
|
12
|
+
* is not a value at all, so treating it as one more empty slot is exactly the
|
|
13
|
+
* index shift that produces a phantom slot; rejecting the whole split is the
|
|
14
|
+
* correct answer there, same as any other malformed argument list.
|
|
15
|
+
*
|
|
16
|
+
* A `/` that is not opening a comment cannot be swallowed into a bare token:
|
|
17
|
+
* it is outside every token's character set, so it stops the scan and the
|
|
18
|
+
* top-of-function "consumed to the end" check then fails the whole part.
|
|
19
|
+
*
|
|
20
|
+
* Nesting past {@link MAX_SLOT_NESTING_DEPTH} is refused like any other
|
|
21
|
+
* malformed part, for the reason recorded on that constant.
|
|
22
|
+
*/
|
|
23
|
+
export declare function isWellFormedStepSlot(part: string): boolean;
|
|
24
|
+
//# sourceMappingURL=step-slot-grammar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-slot-grammar.d.ts","sourceRoot":"","sources":["../src/step-slot-grammar.ts"],"names":[],"mappings":"AAkEA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAmH1D"}
|