@ifc-lite/export 2.8.3 → 2.8.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/declared-property-type.d.ts +107 -0
- package/dist/declared-property-type.d.ts.map +1 -0
- package/dist/declared-property-type.js +236 -0
- package/dist/declared-property-type.js.map +1 -0
- package/dist/delta-modification-ledger.d.ts +148 -0
- package/dist/delta-modification-ledger.d.ts.map +1 -0
- package/dist/delta-modification-ledger.js +194 -0
- package/dist/delta-modification-ledger.js.map +1 -0
- package/dist/demesh-session.d.ts.map +1 -1
- package/dist/demesh-session.js +7 -0
- package/dist/demesh-session.js.map +1 -1
- package/dist/in-place-nomination.d.ts +65 -0
- package/dist/in-place-nomination.d.ts.map +1 -0
- package/dist/in-place-nomination.js +27 -0
- package/dist/in-place-nomination.js.map +1 -0
- package/dist/merged-exporter.js +1 -1
- package/dist/retype.d.ts.map +1 -1
- package/dist/retype.js +2 -1
- package/dist/retype.js.map +1 -1
- package/dist/select-qualification.d.ts +12 -0
- package/dist/select-qualification.d.ts.map +1 -1
- package/dist/select-qualification.js +12 -1
- package/dist/select-qualification.js.map +1 -1
- package/dist/source-ref-bounds.d.ts +53 -0
- package/dist/source-ref-bounds.d.ts.map +1 -0
- package/dist/source-ref-bounds.js +25 -0
- package/dist/source-ref-bounds.js.map +1 -0
- package/dist/step-argument-parser.d.ts +90 -0
- package/dist/step-argument-parser.d.ts.map +1 -0
- package/dist/step-argument-parser.js +207 -0
- package/dist/step-argument-parser.js.map +1 -0
- package/dist/step-exporter.d.ts +45 -4
- package/dist/step-exporter.d.ts.map +1 -1
- package/dist/step-exporter.js +465 -84
- package/dist/step-exporter.js.map +1 -1
- package/dist/step-file-assembly.d.ts +35 -0
- package/dist/step-file-assembly.d.ts.map +1 -0
- package/dist/step-file-assembly.js +102 -0
- package/dist/step-file-assembly.js.map +1 -0
- package/dist/step-serialization.d.ts +48 -48
- package/dist/step-serialization.d.ts.map +1 -1
- package/dist/step-serialization.js +90 -182
- package/dist/step-serialization.js.map +1 -1
- package/dist/type-owned-psets.d.ts +36 -0
- package/dist/type-owned-psets.d.ts.map +1 -1
- package/dist/type-owned-psets.js +41 -0
- package/dist/type-owned-psets.js.map +1 -1
- package/dist/unit-normalize.d.ts.map +1 -1
- package/dist/unit-normalize.js +13 -1
- package/dist/unit-normalize.js.map +1 -1
- package/package.json +7 -6
|
@@ -0,0 +1,194 @@
|
|
|
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
|
+
* The kinds whose intent site is NOT their emit site, even in a FULL export —
|
|
6
|
+
* so their count is settled from effect in both modes (#2474).
|
|
7
|
+
*
|
|
8
|
+
* A pset/qset edit is nominated when the session's mutation history names the
|
|
9
|
+
* set, long before anything asks whether that name resolves to content. It
|
|
10
|
+
* frequently does not: `deletePropertySet(id, 'AName')` on a host that owns no
|
|
11
|
+
* such set nominates, matches nothing, generates nothing, withholds nothing —
|
|
12
|
+
* and used to put "1 modification" in the header of a byte-identical file. The
|
|
13
|
+
* same shape reaches the quantity side through an UNDONE quantity-set creation,
|
|
14
|
+
* whose `CREATE_QUANTITY` record stays in the append-only history after the
|
|
15
|
+
* overlay has dropped the set.
|
|
16
|
+
*
|
|
17
|
+
* The other four kinds are written by the very pass that nominates them, or by
|
|
18
|
+
* one that reports back: `retype` and `positional` are nominated inside the
|
|
19
|
+
* source-iteration pass and only when the line actually changed, and
|
|
20
|
+
* `attribute` / `georeferencing` are applied to that same line.
|
|
21
|
+
*
|
|
22
|
+
* ## What counts as CHANGED for a set
|
|
23
|
+
*
|
|
24
|
+
* The test is effect on the emitted FILE, not equality of property values: this
|
|
25
|
+
* export either wrote a line for the host's set or left one out. Regenerating a
|
|
26
|
+
* set with identical values still counts, because the replacement carries fresh
|
|
27
|
+
* express ids and genuinely is different bytes — "the same properties" is not
|
|
28
|
+
* the same file, and pretending otherwise would need a comparison this pass
|
|
29
|
+
* cannot make (it never reads the lines it replaced). Deleting a set that
|
|
30
|
+
* exists counts through the WITHHELD side ({@link
|
|
31
|
+
* ModificationLedger.recordWithheld}); deleting one that does not exist touches
|
|
32
|
+
* neither side and is what stopped counting.
|
|
33
|
+
*/
|
|
34
|
+
const EFFECT_SETTLED_KINDS = new Set([
|
|
35
|
+
'property-set',
|
|
36
|
+
'quantity-set',
|
|
37
|
+
]);
|
|
38
|
+
/** Fixed order, so `stats.warnings` is deterministic across runs. */
|
|
39
|
+
const KIND_ORDER = [
|
|
40
|
+
'attribute',
|
|
41
|
+
'georeferencing',
|
|
42
|
+
'retype',
|
|
43
|
+
'positional',
|
|
44
|
+
'property-set',
|
|
45
|
+
'quantity-set',
|
|
46
|
+
];
|
|
47
|
+
/**
|
|
48
|
+
* How many expressIds the "deltaOnly dropped these edits" warning names before
|
|
49
|
+
* it summarises the rest. A session can edit thousands of entities and this
|
|
50
|
+
* string is read by a human, not parsed.
|
|
51
|
+
*/
|
|
52
|
+
const UNDELIVERED_IDS_IN_WARNING = 5;
|
|
53
|
+
/** Plural noun and the reason a delta cannot carry that kind, per kind. */
|
|
54
|
+
const KIND_REPORT = {
|
|
55
|
+
attribute: {
|
|
56
|
+
nouns: 'attribute edits',
|
|
57
|
+
why: 'a full export applies one by rewriting the entity\'s own line, and a delta contains no source lines',
|
|
58
|
+
},
|
|
59
|
+
georeferencing: {
|
|
60
|
+
nouns: 'georeferencing edits',
|
|
61
|
+
why: 'they are queued as attribute edits on the existing IfcProjectedCRS / IfcMapConversion, '
|
|
62
|
+
+ 'which a full export applies by rewriting that entity\'s own line',
|
|
63
|
+
},
|
|
64
|
+
retype: {
|
|
65
|
+
nouns: 'retypes',
|
|
66
|
+
why: 'a full export applies one by rewriting the entity\'s own line, and a delta contains no source lines',
|
|
67
|
+
},
|
|
68
|
+
positional: {
|
|
69
|
+
nouns: 'positional edits',
|
|
70
|
+
why: 'a full export applies one by rewriting the entity\'s own line, and a delta contains no source lines',
|
|
71
|
+
},
|
|
72
|
+
'property-set': {
|
|
73
|
+
nouns: 'property-set changes',
|
|
74
|
+
why: 'a removal produces no replacement content for a delta to carry (a full export applies it by '
|
|
75
|
+
+ 'omitting the removed lines)',
|
|
76
|
+
},
|
|
77
|
+
'quantity-set': {
|
|
78
|
+
nouns: 'quantity-set changes',
|
|
79
|
+
why: 'a removal produces no replacement content for a delta to carry (a full export applies it by '
|
|
80
|
+
+ 'omitting the removed lines)',
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
export function createModificationLedger(deltaOnly) {
|
|
84
|
+
// Per kind, in nomination order - the warning lists ids in the order the
|
|
85
|
+
// session produced them. Both modes keep the same books; what differs is
|
|
86
|
+
// which kinds a nomination delivers on its own, and whether an undelivered
|
|
87
|
+
// pair is worth a warning (a full export has no delta format to blame).
|
|
88
|
+
//
|
|
89
|
+
// `modifiedEntityCount` counts ENTITIES, and the exporter nominates from
|
|
90
|
+
// seven sites (property sets, quantity sets, named attributes, the two
|
|
91
|
+
// georeferencing branches, and retype + positional inside the
|
|
92
|
+
// source-iteration pass). Several of those legitimately fire for the same
|
|
93
|
+
// host in one session; counting entities is what keeps that one modification.
|
|
94
|
+
const nominated = new Map();
|
|
95
|
+
const delivered = new Map();
|
|
96
|
+
const acknowledged = new Map();
|
|
97
|
+
const mark = (index, entityId, kind) => {
|
|
98
|
+
let ids = index.get(kind);
|
|
99
|
+
if (!ids) {
|
|
100
|
+
ids = new Set();
|
|
101
|
+
index.set(kind, ids);
|
|
102
|
+
}
|
|
103
|
+
ids.add(entityId);
|
|
104
|
+
};
|
|
105
|
+
const has = (index, entityId, kind) => index.get(kind)?.has(entityId) === true;
|
|
106
|
+
return {
|
|
107
|
+
nominate: (entityId, kind) => {
|
|
108
|
+
mark(nominated, entityId, kind);
|
|
109
|
+
// In a FULL export the kinds an entity's own line carries are written by
|
|
110
|
+
// the pass that nominates them, so there is no emission to wait for and
|
|
111
|
+
// the nomination settles itself. The set kinds are the exception - see
|
|
112
|
+
// `EFFECT_SETTLED_KINDS`.
|
|
113
|
+
if (!deltaOnly && !EFFECT_SETTLED_KINDS.has(kind))
|
|
114
|
+
mark(delivered, entityId, kind);
|
|
115
|
+
},
|
|
116
|
+
recordEmitted: (entityId, kind) => { mark(delivered, entityId, kind); },
|
|
117
|
+
recordWithheld: (entityId, kind) => {
|
|
118
|
+
if (!deltaOnly)
|
|
119
|
+
mark(delivered, entityId, kind);
|
|
120
|
+
},
|
|
121
|
+
acknowledgeUndelivered: (entityId, kind) => { mark(acknowledged, entityId, kind); },
|
|
122
|
+
settle: () => {
|
|
123
|
+
// An entity counts once, however many of its kinds landed - the header
|
|
124
|
+
// claim is per entity and this keying must not inflate it. Only a
|
|
125
|
+
// NOMINATED pair can count: a pass records what it wrote without asking
|
|
126
|
+
// whether the host was countable, and an overlay-created host's generated
|
|
127
|
+
// psets are already counted in `newEntityCount`.
|
|
128
|
+
const deliveredEntities = new Set();
|
|
129
|
+
const warnings = [];
|
|
130
|
+
for (const kind of KIND_ORDER) {
|
|
131
|
+
const ids = nominated.get(kind);
|
|
132
|
+
if (!ids)
|
|
133
|
+
continue;
|
|
134
|
+
const undelivered = [];
|
|
135
|
+
for (const entityId of ids) {
|
|
136
|
+
// Delivery wins over an acknowledgement: a pass that reported a
|
|
137
|
+
// partial failure may still have delivered this kind by another route.
|
|
138
|
+
if (has(delivered, entityId, kind))
|
|
139
|
+
deliveredEntities.add(entityId);
|
|
140
|
+
else if (!has(acknowledged, entityId, kind))
|
|
141
|
+
undelivered.push(entityId);
|
|
142
|
+
}
|
|
143
|
+
// A full export's undelivered pair is not a limitation of the output
|
|
144
|
+
// format - it is an edit that resolved to nothing, such as deleting a
|
|
145
|
+
// set the host never had. There is no other flag to re-export with and
|
|
146
|
+
// nothing for the caller to do, so it is reported by the count alone:
|
|
147
|
+
// zero modifications over a file this export did not change.
|
|
148
|
+
if (deltaOnly && undelivered.length > 0)
|
|
149
|
+
warnings.push(undeliveredWarning(kind, undelivered));
|
|
150
|
+
}
|
|
151
|
+
return { modifiedEntityCount: deliveredEntities.size, warnings };
|
|
152
|
+
},
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Record what a rewritten SOURCE LINE delivered for `entityId`.
|
|
157
|
+
*
|
|
158
|
+
* A source line carries every IN-PLACE edit and nothing else: property and
|
|
159
|
+
* quantity sets live in separate records, and a type object's type-owned pset
|
|
160
|
+
* edit is delivered by the `HasPropertySets` REPOINT, not by the line rewrite
|
|
161
|
+
* that carries it — which is why the repoint site records `property-set`
|
|
162
|
+
* itself and the fallback site (where the repoint failed) does not.
|
|
163
|
+
*
|
|
164
|
+
* Only the kinds the mutation pipeline REPORTS having applied. A named
|
|
165
|
+
* attribute whose name resolves to no slot in the record's class is discarded
|
|
166
|
+
* by `applyAttributeMutations`, and calling that delivered would re-create the
|
|
167
|
+
* exact misreport this ledger exists to remove. `attributed` covers BOTH kinds
|
|
168
|
+
* a named-attribute rewrite can deliver: georeferencing edits to an existing
|
|
169
|
+
* `IfcProjectedCRS` / `IfcMapConversion` are queued into the very same
|
|
170
|
+
* `modifiedAttributes` map and applied by the very same call.
|
|
171
|
+
*/
|
|
172
|
+
export function recordSourceLineDelivery(ledger, entityId, mutated) {
|
|
173
|
+
if (mutated.attributed) {
|
|
174
|
+
ledger.recordEmitted(entityId, 'attribute');
|
|
175
|
+
ledger.recordEmitted(entityId, 'georeferencing');
|
|
176
|
+
}
|
|
177
|
+
if (mutated.retyped)
|
|
178
|
+
ledger.recordEmitted(entityId, 'retype');
|
|
179
|
+
if (mutated.positional)
|
|
180
|
+
ledger.recordEmitted(entityId, 'positional');
|
|
181
|
+
}
|
|
182
|
+
function undeliveredWarning(kind, undelivered) {
|
|
183
|
+
const shown = undelivered
|
|
184
|
+
.slice(0, UNDELIVERED_IDS_IN_WARNING)
|
|
185
|
+
.map((id) => `#${id}`)
|
|
186
|
+
.join(', ');
|
|
187
|
+
const rest = undelivered.length - UNDELIVERED_IDS_IN_WARNING;
|
|
188
|
+
const subject = undelivered.length === 1 ? 'entity' : 'entities';
|
|
189
|
+
const { nouns, why } = KIND_REPORT[kind];
|
|
190
|
+
return (`deltaOnly export carried no ${nouns} for ${undelivered.length} existing ${subject} `
|
|
191
|
+
+ `(${shown}${rest > 0 ? `, +${rest} more` : ''}): ${why}. `
|
|
192
|
+
+ `Export with deltaOnly disabled to apply ${undelivered.length === 1 ? 'it' : 'them'}.`);
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=delta-modification-ledger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delta-modification-ledger.js","sourceRoot":"","sources":["../src/delta-modification-ledger.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AA+F/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,oBAAoB,GAAkC,IAAI,GAAG,CAAC;IAClE,cAAc;IACd,cAAc;CACf,CAAC,CAAC;AAEH,qEAAqE;AACrE,MAAM,UAAU,GAAgC;IAC9C,WAAW;IACX,gBAAgB;IAChB,QAAQ;IACR,YAAY;IACZ,cAAc;IACd,cAAc;CACf,CAAC;AAEF;;;;GAIG;AACH,MAAM,0BAA0B,GAAG,CAAC,CAAC;AAErC,2EAA2E;AAC3E,MAAM,WAAW,GAA6D;IAC5E,SAAS,EAAE;QACT,KAAK,EAAE,iBAAiB;QACxB,GAAG,EAAE,qGAAqG;KAC3G;IACD,cAAc,EAAE;QACd,KAAK,EAAE,sBAAsB;QAC7B,GAAG,EAAE,yFAAyF;cAC1F,kEAAkE;KACvE;IACD,MAAM,EAAE;QACN,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,qGAAqG;KAC3G;IACD,UAAU,EAAE;QACV,KAAK,EAAE,kBAAkB;QACzB,GAAG,EAAE,qGAAqG;KAC3G;IACD,cAAc,EAAE;QACd,KAAK,EAAE,sBAAsB;QAC7B,GAAG,EAAE,8FAA8F;cAC/F,6BAA6B;KAClC;IACD,cAAc,EAAE;QACd,KAAK,EAAE,sBAAsB;QAC7B,GAAG,EAAE,8FAA8F;cAC/F,6BAA6B;KAClC;CACF,CAAC;AA6BF,MAAM,UAAU,wBAAwB,CAAC,SAAkB;IACzD,yEAAyE;IACzE,yEAAyE;IACzE,2EAA2E;IAC3E,wEAAwE;IACxE,EAAE;IACF,yEAAyE;IACzE,uEAAuE;IACvE,8DAA8D;IAC9D,0EAA0E;IAC1E,8EAA8E;IAC9E,MAAM,SAAS,GAAG,IAAI,GAAG,EAAiC,CAAC;IAC3D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAiC,CAAC;IAC3D,MAAM,YAAY,GAAG,IAAI,GAAG,EAAiC,CAAC;IAC9D,MAAM,IAAI,GAAG,CACX,KAAyC,EACzC,QAAgB,EAChB,IAAsB,EAChB,EAAE;QACR,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;YACxB,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACvB,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpB,CAAC,CAAC;IACF,MAAM,GAAG,GAAG,CACV,KAAyC,EACzC,QAAgB,EAChB,IAAsB,EACb,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IAEtD,OAAO;QACL,QAAQ,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE;YAC3B,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YAChC,yEAAyE;YACzE,wEAAwE;YACxE,uEAAuE;YACvE,0BAA0B;YAC1B,IAAI,CAAC,SAAS,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACrF,CAAC;QACD,aAAa,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACvE,cAAc,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE;YACjC,IAAI,CAAC,SAAS;gBAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAClD,CAAC;QACD,sBAAsB,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACnF,MAAM,EAAE,GAAG,EAAE;YACX,uEAAuE;YACvE,kEAAkE;YAClE,wEAAwE;YACxE,0EAA0E;YAC1E,iDAAiD;YACjD,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;YAC5C,MAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;gBAC9B,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,CAAC,GAAG;oBAAE,SAAS;gBACnB,MAAM,WAAW,GAAa,EAAE,CAAC;gBACjC,KAAK,MAAM,QAAQ,IAAI,GAAG,EAAE,CAAC;oBAC3B,gEAAgE;oBAChE,uEAAuE;oBACvE,IAAI,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC;wBAAE,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;yBAC/D,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC;wBAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC1E,CAAC;gBACD,qEAAqE;gBACrE,sEAAsE;gBACtE,uEAAuE;gBACvE,sEAAsE;gBACtE,6DAA6D;gBAC7D,IAAI,SAAS,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;oBAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;YAChG,CAAC;YACD,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC;QACnE,CAAC;KACF,CAAC;AACJ,CAAC;AAiBD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAA0B,EAC1B,QAAgB,EAChB,OAA2B;IAE3B,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC5C,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,OAAO,CAAC,OAAO;QAAE,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC9D,IAAI,OAAO,CAAC,UAAU;QAAE,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAsB,EAAE,WAAqB;IACvE,MAAM,KAAK,GAAG,WAAW;SACtB,KAAK,CAAC,CAAC,EAAE,0BAA0B,CAAC;SACpC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;SACrB,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,GAAG,0BAA0B,CAAC;IAC7D,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC;IACjE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO,CACL,+BAA+B,KAAK,QAAQ,WAAW,CAAC,MAAM,aAAa,OAAO,GAAG;UACnF,IAAI,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;UAC1D,2CAA2C,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,CACzF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"demesh-session.d.ts","sourceRoot":"","sources":["../src/demesh-session.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"demesh-session.d.ts","sourceRoot":"","sources":["../src/demesh-session.ts"],"names":[],"mappings":"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"}
|
package/dist/demesh-session.js
CHANGED
|
@@ -172,6 +172,13 @@ export class DemeshSession {
|
|
|
172
172
|
});
|
|
173
173
|
upconverted = true;
|
|
174
174
|
}
|
|
175
|
+
// Deliberately BARE. This view exists to carry `applySimplifiedGeometry`'s
|
|
176
|
+
// representation edits and records no property or quantity mutation of any
|
|
177
|
+
// kind, so it has nothing to resolve a base for; wiring extractors here
|
|
178
|
+
// would buy a per-entity source walk for a lookup nothing performs. It is
|
|
179
|
+
// named in #2487 as a site with no extractors, and it is the one site that
|
|
180
|
+
// does not need them — the exporter supplies the quantity base for any view
|
|
181
|
+
// that turns out to need one.
|
|
175
182
|
const view = new MutablePropertyView(null, 'default');
|
|
176
183
|
const editor = new StoreEditor(store, view);
|
|
177
184
|
const elements = [...this.applied.values()].map((el) => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"demesh-session.js","sourceRoot":"","sources":["../src/demesh-session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"demesh-session.js","sourceRoot":"","sources":["../src/demesh-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where a FULL export nominates the two NAMED-ATTRIBUTE modification kinds.
|
|
3
|
+
*
|
|
4
|
+
* `attribute` and `georeferencing` are both applied by writing a named slot on
|
|
5
|
+
* the host's own source line, and both used to be nominated where the edit was
|
|
6
|
+
* COLLECTED — before any pass had asked whether the write landed. Two reachable
|
|
7
|
+
* edits write nothing: `setAttribute(id, 'Name', v)` with `v` already in the
|
|
8
|
+
* slot, and `setAttribute(id, name, v)` naming an attribute the class declares
|
|
9
|
+
* no slot for (which `applyAttributeMutations` discards). Either one put
|
|
10
|
+
* "1 modification" in the header of a file byte-identical to its input — the
|
|
11
|
+
* same shape #2462 / #2469 / #2474 removed from the other kinds, and the last
|
|
12
|
+
* member of that family (#2483).
|
|
13
|
+
*
|
|
14
|
+
* The signal already existed: the mutation pipeline reports `attributed` by
|
|
15
|
+
* comparing the line across the named-attribute write, so it is an EFFECT and
|
|
16
|
+
* not an intent. What was missing is a nomination that waits for it.
|
|
17
|
+
*
|
|
18
|
+
* ## Why the nomination moves rather than the count
|
|
19
|
+
*
|
|
20
|
+
* The other direction — nominate at collection, then withdraw — cannot be used
|
|
21
|
+
* here without taking the nomination away from `deltaOnly`, whose per-kind
|
|
22
|
+
* warning exists precisely to NAME an edit the delta format could not carry.
|
|
23
|
+
* There, an undeliverable edit is the one that most needs nominating, so that
|
|
24
|
+
* mode keeps counting intent and settles delivery at the end. A full export has
|
|
25
|
+
* no such warning and no delta format to blame, so the honest report is the
|
|
26
|
+
* count alone: zero modifications over a file this export did not change.
|
|
27
|
+
*
|
|
28
|
+
* So the collection sites keep the eligibility rules (an overlay-CREATED host
|
|
29
|
+
* is already in `newEntityCount`; a host with no emittable source bytes never
|
|
30
|
+
* gets its line rewritten) and record WHO would be nominated, and the emit
|
|
31
|
+
* sites decide WHETHER. {@link InPlaceNominees} is that handoff.
|
|
32
|
+
*/
|
|
33
|
+
import type { ModificationLedger, SourceLineDelivery } from './delta-modification-ledger.js';
|
|
34
|
+
/**
|
|
35
|
+
* The hosts whose in-place named-attribute edits are eligible to count, per
|
|
36
|
+
* kind, as decided by the collection pass.
|
|
37
|
+
*
|
|
38
|
+
* Two sets rather than one, because the two kinds are queued into the SAME
|
|
39
|
+
* `modifiedAttributes` map and applied by the SAME call: `attributed` alone
|
|
40
|
+
* cannot say which of them a rewritten line delivered. A host can be in both
|
|
41
|
+
* (an `IfcProjectedCRS` the session also renamed through `setAttribute`), and
|
|
42
|
+
* then both are nominated — `modifiedEntityCount` counts entities, so that is
|
|
43
|
+
* still one modification.
|
|
44
|
+
*/
|
|
45
|
+
export interface InPlaceNominees {
|
|
46
|
+
/** Hosts carrying a `setAttribute` edit the source-line pass could apply. */
|
|
47
|
+
readonly attribute: ReadonlySet<number>;
|
|
48
|
+
/** Hosts carrying a georeferencing edit queued as named attributes. */
|
|
49
|
+
readonly georeferencing: ReadonlySet<number>;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Nominate the named-attribute kinds a rewritten SOURCE LINE actually
|
|
53
|
+
* delivered for `entityId`.
|
|
54
|
+
*
|
|
55
|
+
* Call this wherever a full export writes a rewritten source line — the
|
|
56
|
+
* source-iteration pass, and the type-object `HasPropertySets` rewrite that
|
|
57
|
+
* REPLACES it for the hosts that pass skips. Per site, not per feature: a host
|
|
58
|
+
* whose line only ever comes out of the rewrite path would otherwise stop
|
|
59
|
+
* counting a rename that genuinely landed.
|
|
60
|
+
*
|
|
61
|
+
* `retype` and `positional` are not here. They are nominated inline by the pass
|
|
62
|
+
* that measures them and have never had an earlier intent site to move.
|
|
63
|
+
*/
|
|
64
|
+
export declare function nominateDeliveredInPlaceEdits(ledger: ModificationLedger, entityId: number, mutated: SourceLineDelivery, nominees: InPlaceNominees): void;
|
|
65
|
+
//# sourceMappingURL=in-place-nomination.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-place-nomination.d.ts","sourceRoot":"","sources":["../src/in-place-nomination.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAE7F;;;;;;;;;;GAUG;AACH,MAAM,WAAW,eAAe;IAC9B,6EAA6E;IAC7E,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACxC,uEAAuE;IACvE,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC9C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,kBAAkB,EAC1B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,eAAe,GACxB,IAAI,CAMN"}
|
|
@@ -0,0 +1,27 @@
|
|
|
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
|
+
* Nominate the named-attribute kinds a rewritten SOURCE LINE actually
|
|
6
|
+
* delivered for `entityId`.
|
|
7
|
+
*
|
|
8
|
+
* Call this wherever a full export writes a rewritten source line — the
|
|
9
|
+
* source-iteration pass, and the type-object `HasPropertySets` rewrite that
|
|
10
|
+
* REPLACES it for the hosts that pass skips. Per site, not per feature: a host
|
|
11
|
+
* whose line only ever comes out of the rewrite path would otherwise stop
|
|
12
|
+
* counting a rename that genuinely landed.
|
|
13
|
+
*
|
|
14
|
+
* `retype` and `positional` are not here. They are nominated inline by the pass
|
|
15
|
+
* that measures them and have never had an earlier intent site to move.
|
|
16
|
+
*/
|
|
17
|
+
export function nominateDeliveredInPlaceEdits(ledger, entityId, mutated, nominees) {
|
|
18
|
+
// The one gate: a line the named-attribute write left byte-identical carries
|
|
19
|
+
// no modification, whether the edit was a no-op value or a discarded name.
|
|
20
|
+
if (!mutated.attributed)
|
|
21
|
+
return;
|
|
22
|
+
if (nominees.attribute.has(entityId))
|
|
23
|
+
ledger.nominate(entityId, 'attribute');
|
|
24
|
+
if (nominees.georeferencing.has(entityId))
|
|
25
|
+
ledger.nominate(entityId, 'georeferencing');
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=in-place-nomination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-place-nomination.js","sourceRoot":"","sources":["../src/in-place-nomination.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAuD/D;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,6BAA6B,CAC3C,MAA0B,EAC1B,QAAgB,EAChB,OAA2B,EAC3B,QAAyB;IAEzB,6EAA6E;IAC7E,2EAA2E;IAC3E,IAAI,CAAC,OAAO,CAAC,UAAU;QAAE,OAAO;IAChC,IAAI,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC7E,IAAI,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;AACzF,CAAC"}
|
package/dist/merged-exporter.js
CHANGED
|
@@ -5,7 +5,7 @@ import { generateHeader, deterministicGlobalId, IfcParser, asSourceBytes } from
|
|
|
5
5
|
import { decodeIfcString } from '@ifc-lite/encoding';
|
|
6
6
|
import { collectReferencedEntityIds, getVisibleEntityIds, collectStyleEntities } from './reference-collector.js';
|
|
7
7
|
import { convertStepLine, needsConversion } from './schema-converter.js';
|
|
8
|
-
import { assembleStepBytes, assembleStepBlob } from './step-
|
|
8
|
+
import { assembleStepBytes, assembleStepBlob } from './step-file-assembly.js';
|
|
9
9
|
import { getCompleteEntityIndex, getMaxExpressId } from './entity-iteration.js';
|
|
10
10
|
import { StepExporter } from './step-exporter.js';
|
|
11
11
|
import { rescaleEntityLengths, computeNormalizeFactor } from './unit-normalize.js';
|
package/dist/retype.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retype.d.ts","sourceRoot":"","sources":["../src/retype.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"retype.d.ts","sourceRoot":"","sources":["../src/retype.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAoD9D,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,gFAAgF;IAChF,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EAAE,EACnB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACzC,MAAM,EAAE,gBAAgB,GACvB,gBAAgB,CA+ClB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACzC,MAAM,EAAE,gBAAgB,GACvB,MAAM,CAsBR"}
|
package/dist/retype.js
CHANGED
|
@@ -25,7 +25,8 @@
|
|
|
25
25
|
* raw argument tokens are preserved byte-for-byte.
|
|
26
26
|
*/
|
|
27
27
|
import { ENTITIES_IFC2X3, ENTITIES_IFC4, ENTITIES_IFC4X3 } from '@ifc-lite/data';
|
|
28
|
-
import { escapeStepString
|
|
28
|
+
import { escapeStepString } from './step-serialization.js';
|
|
29
|
+
import { splitTopLevelArgs } from './step-argument-parser.js';
|
|
29
30
|
function buildSchemaMap(list) {
|
|
30
31
|
const map = new Map();
|
|
31
32
|
for (const entity of list) {
|
package/dist/retype.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retype.js","sourceRoot":"","sources":["../src/retype.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"retype.js","sourceRoot":"","sources":["../src/retype.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
import type { IfcAttributeValue } from '@ifc-lite/parser';
|
|
2
|
+
/**
|
|
3
|
+
* `selectName` → its DEFINED-TYPE leaves, mapped to the EXPRESS primitive each
|
|
4
|
+
* bottoms out in (`IfcText` → `STRING`, `IfcLengthMeasure` → `REAL`). Nested
|
|
5
|
+
* selects are flattened; entity members are skipped (they serialize as `#ref`
|
|
6
|
+
* and are never type-qualified).
|
|
7
|
+
*
|
|
8
|
+
* Exported for `declared-property-type.ts`, which asks the same question of
|
|
9
|
+
* `IfcValue` for a different reason: not "which member does this bare value
|
|
10
|
+
* imply" but "is this token a member at all, and does it agree with the value".
|
|
11
|
+
* One walk, one cache, one definition of what a qualifiable member is.
|
|
12
|
+
*/
|
|
13
|
+
export declare function getSelectDefinedLeaves(selectName: string): Map<string, string>;
|
|
2
14
|
/**
|
|
3
15
|
* Emit the type-qualified STEP token for a SELECT slot when it can be resolved
|
|
4
16
|
* unambiguously from the schema, else `null` (the caller falls back to the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-qualification.d.ts","sourceRoot":"","sources":["../src/select-qualification.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"select-qualification.d.ts","sourceRoot":"","sources":["../src/select-qualification.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAgB1D;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAqB9E;AAsED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,iBAAiB,GACvB,MAAM,GAAG,IAAI,CAOf"}
|
|
@@ -35,7 +35,18 @@ function isDefinedType(type) {
|
|
|
35
35
|
// DEFINED-TYPE leaves (recursing nested selects; entity members are skipped —
|
|
36
36
|
// they serialize as `#ref`, never qualified).
|
|
37
37
|
const selectLeafCache = new Map();
|
|
38
|
-
|
|
38
|
+
/**
|
|
39
|
+
* `selectName` → its DEFINED-TYPE leaves, mapped to the EXPRESS primitive each
|
|
40
|
+
* bottoms out in (`IfcText` → `STRING`, `IfcLengthMeasure` → `REAL`). Nested
|
|
41
|
+
* selects are flattened; entity members are skipped (they serialize as `#ref`
|
|
42
|
+
* and are never type-qualified).
|
|
43
|
+
*
|
|
44
|
+
* Exported for `declared-property-type.ts`, which asks the same question of
|
|
45
|
+
* `IfcValue` for a different reason: not "which member does this bare value
|
|
46
|
+
* imply" but "is this token a member at all, and does it agree with the value".
|
|
47
|
+
* One walk, one cache, one definition of what a qualifiable member is.
|
|
48
|
+
*/
|
|
49
|
+
export function getSelectDefinedLeaves(selectName) {
|
|
39
50
|
const cached = selectLeafCache.get(selectName);
|
|
40
51
|
if (cached)
|
|
41
52
|
return cached;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-qualification.js","sourceRoot":"","sources":["../src/select-qualification.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAE9E,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEnF,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC3E,CAAC;AAED,6EAA6E;AAC7E,8EAA8E;AAC9E,8CAA8C;AAC9C,MAAM,eAAe,GAAG,IAAI,GAAG,EAA+B,CAAC;AAE/D,
|
|
1
|
+
{"version":3,"file":"select-qualification.js","sourceRoot":"","sources":["../src/select-qualification.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* "Can this record's line actually be read out of this source?"
|
|
3
|
+
*
|
|
4
|
+
* The exporter's byte-range gates used to ask two weaker questions — is there a
|
|
5
|
+
* source at all, and does this ref claim a non-empty range — and relied on an
|
|
6
|
+
* UNSTATED invariant to join them: an empty source implies zero-length refs
|
|
7
|
+
* (#2491). Every producer in the repo happens to honour it (the one source-less
|
|
8
|
+
* store builder adds every ref as `(0, 0)`), and nothing states or enforces it.
|
|
9
|
+
*
|
|
10
|
+
* A store that violates it made the exporter write a CORRUPT file, silently. A
|
|
11
|
+
* ref claiming real bytes over a source that has none passed the presence gates,
|
|
12
|
+
* so the property-set generator wrote an `IfcRelDefinesByProperties` naming the
|
|
13
|
+
* host — while the source-iteration pass emitted the host's own line as the
|
|
14
|
+
* EMPTY STRING, because `IfcSourceBytes.decodeUtf8` clamps a range it cannot
|
|
15
|
+
* address. A relationship pointing at a wall whose line had vanished: no error,
|
|
16
|
+
* no warning.
|
|
17
|
+
*
|
|
18
|
+
* ## Why the ref rather than the invariant
|
|
19
|
+
*
|
|
20
|
+
* The invariant could have been asserted where stores are constructed. There is
|
|
21
|
+
* no single chokepoint for that — stores are built by the parser, by the server
|
|
22
|
+
* data model, by test doubles and by any embedder of the published API — so an
|
|
23
|
+
* assertion would have to be added to each, and the next producer (a partial or
|
|
24
|
+
* streaming source, or one that attaches bytes after building its index) would
|
|
25
|
+
* be free to skip it. Testing the ref puts the check where the value is USED,
|
|
26
|
+
* which is one place per read and cannot be bypassed by a new producer.
|
|
27
|
+
*
|
|
28
|
+
* The degraded behaviour is the one the exporter already handles correctly and
|
|
29
|
+
* has tests for: a record with no emittable bytes. Nothing is generated FOR it,
|
|
30
|
+
* nothing that names it is written, and it does not appear in the file — the
|
|
31
|
+
* same outcome as the source-less store the server path builds.
|
|
32
|
+
*
|
|
33
|
+
* This predicate is deliberately NOT applied to the incidental readers
|
|
34
|
+
* (`getRelatedEntities`, `getPropertySetName`, …). Those decode a range and
|
|
35
|
+
* match a pattern in it; a clamped, empty decode already yields "no match",
|
|
36
|
+
* which is the same answer and needs no gate of its own.
|
|
37
|
+
*/
|
|
38
|
+
import type { ExportEntityRef } from './entity-iteration.js';
|
|
39
|
+
/** The half of a source this module needs: how many bytes it can serve. */
|
|
40
|
+
interface SourceExtent {
|
|
41
|
+
readonly byteLength: number;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* A predicate over entity refs: true when `[byteOffset, byteOffset+byteLength)`
|
|
45
|
+
* is a non-empty range fully inside `source`.
|
|
46
|
+
*
|
|
47
|
+
* `source` may be absent (a store built with no source at all), in which case
|
|
48
|
+
* nothing is readable. A ref at `(0, 0)` is not readable either — that is the
|
|
49
|
+
* canonical "this record has no source line" marker, not a zero-width read.
|
|
50
|
+
*/
|
|
51
|
+
export declare function createSourceRefReader(source: SourceExtent | null | undefined): (ref: Pick<ExportEntityRef, 'byteOffset' | 'byteLength'> | undefined) => boolean;
|
|
52
|
+
export {};
|
|
53
|
+
//# sourceMappingURL=source-ref-bounds.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-ref-bounds.d.ts","sourceRoot":"","sources":["../src/source-ref-bounds.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,2EAA2E;AAC3E,UAAU,YAAY;IACpB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,GACtC,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,YAAY,GAAG,YAAY,CAAC,GAAG,SAAS,KAAK,OAAO,CAUlF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
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
|
+
* A predicate over entity refs: true when `[byteOffset, byteOffset+byteLength)`
|
|
6
|
+
* is a non-empty range fully inside `source`.
|
|
7
|
+
*
|
|
8
|
+
* `source` may be absent (a store built with no source at all), in which case
|
|
9
|
+
* nothing is readable. A ref at `(0, 0)` is not readable either — that is the
|
|
10
|
+
* canonical "this record has no source line" marker, not a zero-width read.
|
|
11
|
+
*/
|
|
12
|
+
export function createSourceRefReader(source) {
|
|
13
|
+
const extent = source ? source.byteLength : 0;
|
|
14
|
+
return (ref) => {
|
|
15
|
+
if (!ref)
|
|
16
|
+
return false;
|
|
17
|
+
if (ref.byteOffset < 0 || ref.byteLength <= 0)
|
|
18
|
+
return false;
|
|
19
|
+
// `<=` on the END, so a range that stops exactly at the last byte reads.
|
|
20
|
+
// Written as a sum rather than as two comparisons because a ref whose
|
|
21
|
+
// offset alone is in range can still run off the end.
|
|
22
|
+
return ref.byteOffset + ref.byteLength <= extent;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=source-ref-bounds.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-ref-bounds.js","sourceRoot":"","sources":["../src/source-ref-bounds.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AA+C/D;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAuC;IAEvC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,EAAE,EAAE;QACb,IAAI,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC;QACvB,IAAI,GAAG,CAAC,UAAU,GAAG,CAAC,IAAI,GAAG,CAAC,UAAU,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5D,yEAAyE;QACzE,sEAAsE;QACtE,sDAAsD;QACtD,OAAO,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,IAAI,MAAM,CAAC;IACnD,CAAC,CAAC;AACJ,CAAC"}
|