@ifc-lite/create 2.5.0 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/README.md +8 -0
  2. package/dist/cost-authoring-rules.d.ts +70 -0
  3. package/dist/cost-authoring-rules.d.ts.map +1 -0
  4. package/dist/cost-authoring-rules.js +118 -0
  5. package/dist/cost-authoring-rules.js.map +1 -0
  6. package/dist/ifc-creator-cost.d.ts +107 -0
  7. package/dist/ifc-creator-cost.d.ts.map +1 -0
  8. package/dist/ifc-creator-cost.js +279 -0
  9. package/dist/ifc-creator-cost.js.map +1 -0
  10. package/dist/ifc-creator-definitions.d.ts +21 -0
  11. package/dist/ifc-creator-definitions.d.ts.map +1 -0
  12. package/dist/ifc-creator-definitions.js +56 -0
  13. package/dist/ifc-creator-definitions.js.map +1 -0
  14. package/dist/ifc-creator-math.d.ts +15 -1
  15. package/dist/ifc-creator-math.d.ts.map +1 -1
  16. package/dist/ifc-creator-math.js +42 -0
  17. package/dist/ifc-creator-math.js.map +1 -1
  18. package/dist/ifc-creator.d.ts +23 -2
  19. package/dist/ifc-creator.d.ts.map +1 -1
  20. package/dist/ifc-creator.js +82 -67
  21. package/dist/ifc-creator.js.map +1 -1
  22. package/dist/in-store/cost-nesting-cycle.d.ts +8 -0
  23. package/dist/in-store/cost-nesting-cycle.d.ts.map +1 -0
  24. package/dist/in-store/cost-nesting-cycle.js +28 -0
  25. package/dist/in-store/cost-nesting-cycle.js.map +1 -0
  26. package/dist/in-store/cost-reference-validation.d.ts +13 -0
  27. package/dist/in-store/cost-reference-validation.d.ts.map +1 -0
  28. package/dist/in-store/cost-reference-validation.js +49 -0
  29. package/dist/in-store/cost-reference-validation.js.map +1 -0
  30. package/dist/in-store/cost-removal.d.ts +40 -0
  31. package/dist/in-store/cost-removal.d.ts.map +1 -0
  32. package/dist/in-store/cost-removal.js +107 -0
  33. package/dist/in-store/cost-removal.js.map +1 -0
  34. package/dist/in-store/cost.d.ts +109 -0
  35. package/dist/in-store/cost.d.ts.map +1 -0
  36. package/dist/in-store/cost.js +323 -0
  37. package/dist/in-store/cost.js.map +1 -0
  38. package/dist/in-store/resolve-source.d.ts.map +1 -1
  39. package/dist/in-store/resolve-source.js +11 -8
  40. package/dist/in-store/resolve-source.js.map +1 -1
  41. package/dist/index.d.ts +3 -0
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +2 -0
  44. package/dist/index.js.map +1 -1
  45. package/dist/types-cost.d.ts +134 -0
  46. package/dist/types-cost.d.ts.map +1 -0
  47. package/dist/types-cost.js +5 -0
  48. package/dist/types-cost.js.map +1 -0
  49. package/dist/types.d.ts +7 -0
  50. package/dist/types.d.ts.map +1 -1
  51. package/package.json +5 -4
@@ -0,0 +1,323 @@
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
+ * Loaded-model cost authoring (#4857 PR A) — `bim.store.addCost*` / `nestCostItems`
6
+ * / `assignCostItemsToSchedule` / `assignToCostItem` / `setCostItemValues` /
7
+ * `removeCostEntity`. The counterpart of `ifc-creator-cost.ts` for a model
8
+ * that is already parsed and loaded rather than being built from scratch:
9
+ * same validation (`cost-authoring-rules.ts`, shared so a value illegal from
10
+ * one entry point is illegal from the other), different serialization —
11
+ * `StoreEditor.addEntity` takes a typed attribute array, not raw STEP text.
12
+ *
13
+ * Pure: no I/O, no parser access, no read of the store's OWN existing graph.
14
+ * `nestCostItemsInStore` (reparenting) and `removeCostEntityInStore`
15
+ * (safe-delete / cascade) both need to know what ALREADY references an
16
+ * entity, which only a graph READ can answer — the caller resolves referrers
17
+ * first and hands them in. The editor is the only mutable thing touched.
18
+ */
19
+ import { generateIfcGuid } from '@ifc-lite/encoding';
20
+ import { ownerHistoryRef } from './_emit-helpers.js';
21
+ import { requireAssignableIfcObjectDefinition, requireEntitySubtype, requireEntityType, requireEntityTypeOneOf, requireMatchingCostSchema, } from './cost-reference-validation.js';
22
+ import { COST_ITEM_TYPES, COST_SCHEDULE_TYPES, QUANTITY_KINDS, assertCostSchema, assertOneOf, requireRef, validateArithmeticOperator, validateRefList, validateTypedValue, } from '../cost-authoring-rules.js';
23
+ import { assertNoNestingCycle } from './cost-nesting-cycle.js';
24
+ /** `IfcCostValue.Components` / `IfcAppliedValueSelect`'s entity branches: another cost/applied value. */
25
+ const APPLIED_VALUE_ENTITY_TYPES = new Set(['IFCCOSTVALUE', 'IFCAPPLIEDVALUE']);
26
+ /** The entity branches of IFC4/IFC4X3 IfcAppliedValueSelect. */
27
+ const APPLIED_VALUE_REF_TYPES = new Set(['IFCMEASUREWITHUNIT', 'IFCREFERENCE']);
28
+ function typedAttrValue(value, schema, context) {
29
+ validateTypedValue(value, schema, context);
30
+ return { typed: { type: value.Type, value: value.Value } };
31
+ }
32
+ function refListAttr(ids) {
33
+ return ids === undefined ? null : ids.map(id => `#${id}`);
34
+ }
35
+ /**
36
+ * Emit an `IfcCostSchedule` into the loaded model's overlay.
37
+ *
38
+ * [0] GlobalId, [1] OwnerHistory, [2] Name, [3] Description, [4] ObjectType,
39
+ * [5] Identification, [6] PredefinedType, [7] Status, [8] SubmittedOn,
40
+ * [9] UpdateDate — same IFC4 layout `emitCostSchedule` writes; refused for
41
+ * IFC2X3 (different layout, see `assertCostSchema`).
42
+ */
43
+ export function addCostScheduleToStore(editor, anchor, params) {
44
+ const schema = requireMatchingCostSchema(editor, anchor.schema);
45
+ assertCostSchema(schema, 'addCostSchedule');
46
+ if (typeof params.Name !== 'string' || params.Name.length === 0) {
47
+ throw new Error('addCostSchedule: Name is required');
48
+ }
49
+ assertOneOf(params.PredefinedType, COST_SCHEDULE_TYPES, 'PredefinedType', 'addCostSchedule');
50
+ return editor.addEntity('IfcCostSchedule', [
51
+ generateIfcGuid(anchor.guidRandom),
52
+ ownerHistoryRef(anchor.ownerHistoryId),
53
+ params.Name,
54
+ params.Description ?? null,
55
+ params.ObjectType ?? null,
56
+ params.Identification ?? null,
57
+ params.PredefinedType ? `.${params.PredefinedType}.` : null,
58
+ params.Status ?? null,
59
+ params.SubmittedOn ?? null,
60
+ params.UpdateDate ?? null,
61
+ ]).expressId;
62
+ }
63
+ /**
64
+ * Emit an `IfcCostItem`. [0] GlobalId, [1] OwnerHistory, [2] Name,
65
+ * [3] Description, [4] ObjectType, [5] Identification, [6] PredefinedType,
66
+ * [7] CostValues, [8] CostQuantities — an empty `CostValues`/`CostQuantities`
67
+ * array is refused (EXPRESS `[1:?]`); use `attachCostValuesToItemInStore` to
68
+ * attach them after the fact instead.
69
+ */
70
+ export function addCostItemToStore(editor, anchor, params) {
71
+ const schema = requireMatchingCostSchema(editor, anchor.schema);
72
+ const costValues = params.CostValues === undefined ? undefined : [...new Set(params.CostValues)];
73
+ const costQuantities = params.CostQuantities === undefined ? undefined : [...new Set(params.CostQuantities)];
74
+ assertCostSchema(schema, 'addCostItem');
75
+ if (typeof params.Name !== 'string' || params.Name.length === 0) {
76
+ throw new Error('addCostItem: Name is required');
77
+ }
78
+ assertOneOf(params.PredefinedType, COST_ITEM_TYPES, 'PredefinedType', 'addCostItem');
79
+ validateRefList(costValues, 'CostValues', 'addCostItem');
80
+ validateRefList(costQuantities, 'CostQuantities', 'addCostItem');
81
+ for (const id of costValues ?? [])
82
+ requireEntityType(editor, id, 'IfcCostValue', 'CostValues', 'addCostItem');
83
+ for (const id of costQuantities ?? []) {
84
+ requireEntitySubtype(editor, id, 'IfcPhysicalQuantity', 'CostQuantities', 'addCostItem');
85
+ }
86
+ return editor.addEntity('IfcCostItem', [
87
+ generateIfcGuid(anchor.guidRandom),
88
+ ownerHistoryRef(anchor.ownerHistoryId),
89
+ params.Name,
90
+ params.Description ?? null,
91
+ params.ObjectType ?? null,
92
+ params.Identification ?? null,
93
+ params.PredefinedType ? `.${params.PredefinedType}.` : null,
94
+ refListAttr(costValues),
95
+ refListAttr(costQuantities),
96
+ ]).expressId;
97
+ }
98
+ /**
99
+ * Emit an `IfcCostValue`. [0] Name, [1] Description, [2] AppliedValue,
100
+ * [3] UnitBasis, [4] ApplicableDate, [5] FixedUntilDate, [6] Category,
101
+ * [7] Condition, [8] ArithmeticOperator, [9] Components.
102
+ *
103
+ * `AppliedValue` and `AppliedValueRef` are the two branches of one SELECT —
104
+ * at most one may be given (mirrors `emitCostValue`).
105
+ */
106
+ export function addCostValueToStore(editor, anchor, params) {
107
+ const schema = requireMatchingCostSchema(editor, anchor.schema);
108
+ assertCostSchema(schema, 'addCostValue');
109
+ if (params.AppliedValue !== undefined && params.AppliedValueRef !== undefined) {
110
+ throw new Error('addCostValue: AppliedValue and AppliedValueRef are the two branches of one SELECT — give at most one');
111
+ }
112
+ validateArithmeticOperator(params.ArithmeticOperator, schema, 'addCostValue');
113
+ let applied = null;
114
+ if (params.AppliedValue !== undefined) {
115
+ applied = typedAttrValue(params.AppliedValue, schema, 'addCostValue');
116
+ }
117
+ else if (params.AppliedValueRef !== undefined) {
118
+ requireRef(params.AppliedValueRef, 'AppliedValueRef', 'addCostValue');
119
+ requireEntityTypeOneOf(editor, params.AppliedValueRef, APPLIED_VALUE_REF_TYPES, 'AppliedValueRef', 'addCostValue');
120
+ applied = `#${params.AppliedValueRef}`;
121
+ }
122
+ if (params.UnitBasis !== undefined) {
123
+ requireRef(params.UnitBasis, 'UnitBasis', 'addCostValue');
124
+ requireEntityType(editor, params.UnitBasis, 'IfcMeasureWithUnit', 'UnitBasis', 'addCostValue');
125
+ }
126
+ validateRefList(params.Components, 'Components', 'addCostValue');
127
+ for (const id of params.Components ?? [])
128
+ requireEntityTypeOneOf(editor, id, APPLIED_VALUE_ENTITY_TYPES, 'Components', 'addCostValue');
129
+ return editor.addEntity('IfcCostValue', [
130
+ params.Name ?? null,
131
+ params.Description ?? null,
132
+ applied,
133
+ params.UnitBasis === undefined ? null : `#${params.UnitBasis}`,
134
+ params.ApplicableDate ?? null,
135
+ params.FixedUntilDate ?? null,
136
+ params.Category ?? null,
137
+ params.Condition ?? null,
138
+ params.ArithmeticOperator ? `.${params.ArithmeticOperator}.` : null,
139
+ refListAttr(params.Components),
140
+ ]).expressId;
141
+ }
142
+ /**
143
+ * Emit an `IfcPhysicalSimpleQuantity` (the same subtypes `emitPhysicalQuantity`
144
+ * writes), for `IfcCostItem.CostQuantities`. [0] Name, [1] Description,
145
+ * [2] Unit, [3] `<Kind>Value`, [4] Formula.
146
+ */
147
+ export function addCostQuantityToStore(editor, anchor, params) {
148
+ const schema = requireMatchingCostSchema(editor, anchor.schema);
149
+ assertCostSchema(schema, 'addCostQuantity');
150
+ if (typeof params.Name !== 'string' || params.Name.length === 0) {
151
+ throw new Error('addCostQuantity: Name is required');
152
+ }
153
+ assertOneOf(params.Kind, QUANTITY_KINDS, 'Kind', 'addCostQuantity');
154
+ if (!Number.isFinite(params.Value))
155
+ throw new Error(`addCostQuantity: ${params.Kind} value must be a finite number`);
156
+ if (params.Kind === 'IfcQuantityNumber' && schema !== 'IFC4X3') {
157
+ throw new Error(`addCostQuantity: ${params.Kind} does not exist in ${schema}; requires Schema "IFC4X3"`);
158
+ }
159
+ if (params.Kind !== 'IfcQuantityNumber' && params.Value < 0) {
160
+ throw new Error(`addCostQuantity: ${params.Kind} value must be non-negative, got ${params.Value}`);
161
+ }
162
+ if (params.Unit !== undefined) {
163
+ requireRef(params.Unit, 'Unit', 'addCostQuantity');
164
+ requireEntitySubtype(editor, params.Unit, 'IfcNamedUnit', 'Unit', 'addCostQuantity');
165
+ }
166
+ const isInteger = params.Kind === 'IfcQuantityCount' && schema === 'IFC4X3';
167
+ if (isInteger && !Number.isInteger(params.Value)) {
168
+ throw new Error(`addCostQuantity: ${params.Kind} value must be a finite integer in IFC4X3`);
169
+ }
170
+ return editor.addEntity(params.Kind, [
171
+ params.Name,
172
+ params.Description ?? null,
173
+ params.Unit === undefined ? null : `#${params.Unit}`,
174
+ isInteger ? params.Value : { real: params.Value },
175
+ params.Formula ?? null,
176
+ ]).expressId;
177
+ }
178
+ /**
179
+ * Nest `childIds` under `parentId` as `IfcRelNests.RelatedObjects` (slot 5),
180
+ * `RelatingObject` = parent.
181
+ *
182
+ * A child already nested under one or more DIFFERENT `IfcRelNests` is
183
+ * reparented: it is removed from EVERY one of those rels' `RelatedObjects`
184
+ * first (a file may legally list a child under more than one nest —
185
+ * `MULTIPLE_NESTING_PARENTS` is a diagnostic, not a refusal — so detaching
186
+ * from only the first one found would leave it still nested under the rest),
187
+ * tombstoning a rel if that empties it (`RelatedObjects` is `[1:?]`, so an
188
+ * emptied list cannot be left as `()`), then added to (or its own new) the
189
+ * target rel.
190
+ */
191
+ export function nestCostItemsInStore(editor, anchor, parentId, childIds, existingNestByChild, existingTargetNest) {
192
+ const schema = requireMatchingCostSchema(editor, anchor.schema);
193
+ assertCostSchema(schema, 'nestCostItems');
194
+ validateRefList(childIds, 'childIds', 'nestCostItems');
195
+ requireRef(parentId, 'parentId', 'nestCostItems');
196
+ if (childIds.includes(parentId)) {
197
+ throw new Error(`nestCostItems: parentId #${parentId} cannot also be one of childIds (an item cannot nest itself)`);
198
+ }
199
+ requireEntityType(editor, parentId, 'IfcCostItem', 'parentId', 'nestCostItems');
200
+ // De-duplicated once: every use below (the reparent scan, the merge, the
201
+ // freshly-created rel's own RelatedObjects) reads from this, not childIds
202
+ // — a repeated id in the caller's list must not write a repeated #N into a
203
+ // list IFC readers count members of.
204
+ const uniqueChildIds = [...new Set(childIds)];
205
+ for (const childId of uniqueChildIds)
206
+ requireEntityType(editor, childId, 'IfcCostItem', 'childId', 'nestCostItems');
207
+ // The SDK supplies relatingId so the helper can reject indirect cycles.
208
+ assertNoNestingCycle(parentId, uniqueChildIds, existingNestByChild);
209
+ // Detach every child of THIS call from every old rel it is a member of, one
210
+ // rewrite per (rel, not per (rel, child)): two children reparented out of
211
+ // the same old IfcRelNests in one call must both leave it, and re-filtering
212
+ // the ORIGINAL (unchanged) relatedIds on each iteration would make the
213
+ // second child's rewrite silently undo the first child's removal.
214
+ const detachedRelIds = new Set();
215
+ for (const childId of uniqueChildIds) {
216
+ for (const existing of existingNestByChild.get(childId) ?? []) {
217
+ if (existing.relId === existingTargetNest?.relId || detachedRelIds.has(existing.relId))
218
+ continue;
219
+ detachedRelIds.add(existing.relId);
220
+ const remaining = existing.relatedIds.filter(id => !uniqueChildIds.includes(id));
221
+ if (remaining.length === 0)
222
+ editor.removeEntity(existing.relId);
223
+ else
224
+ editor.setPositionalAttribute(existing.relId, 5, remaining.map(id => `#${id}`));
225
+ }
226
+ }
227
+ if (existingTargetNest) {
228
+ const merged = [...new Set([...existingTargetNest.relatedIds, ...uniqueChildIds])];
229
+ editor.setPositionalAttribute(existingTargetNest.relId, 5, merged.map(id => `#${id}`));
230
+ return existingTargetNest.relId;
231
+ }
232
+ return editor.addEntity('IfcRelNests', [
233
+ generateIfcGuid(anchor.guidRandom),
234
+ ownerHistoryRef(anchor.ownerHistoryId),
235
+ null,
236
+ null,
237
+ `#${parentId}`,
238
+ uniqueChildIds.map(id => `#${id}`),
239
+ ]).expressId;
240
+ }
241
+ /**
242
+ * Shared `IfcRelAssignsToControl` writer behind
243
+ * `assignCostItemsToScheduleInStore` / `assignObjectsToCostItemInStore`:
244
+ * [0] GlobalId, [1] OwnerHistory, [2] Name, [3] Description,
245
+ * [4] RelatedObjects, [5] RelatedObjectsType, [6] RelatingControl. Appends to
246
+ * `existingAssignment` when the controlling entity already has one, rather
247
+ * than creating a second relationship for the same control.
248
+ */
249
+ function assignToControlInStore(editor, anchor, relatingControlId, relatedObjectIds, existingAssignment, context, controlType, relatedType) {
250
+ const schema = requireMatchingCostSchema(editor, anchor.schema);
251
+ assertCostSchema(schema, context);
252
+ validateRefList(relatedObjectIds, 'relatedObjectIds', context);
253
+ requireRef(relatingControlId, 'relatingControlId', context);
254
+ requireEntityType(editor, relatingControlId, controlType, 'relatingControlId', context);
255
+ // De-duplicated once so a repeated id in the caller's list can't write a
256
+ // repeated #N into RelatedObjects — a caller-visible malformed member list.
257
+ const uniqueRelated = [...new Set(relatedObjectIds)];
258
+ for (const id of uniqueRelated) {
259
+ if (relatedType === 'IfcObjectDefinition') {
260
+ requireAssignableIfcObjectDefinition(editor, id, relatingControlId, context);
261
+ }
262
+ else if (relatedType) {
263
+ requireEntityType(editor, id, relatedType, 'relatedObjectIds', context);
264
+ }
265
+ else if (!editor.hasEntity(id)) {
266
+ throw new Error(`${context}: relatedObjectIds #${id} does not exist in this model`);
267
+ }
268
+ }
269
+ if (existingAssignment) {
270
+ // Filter against the union across every relationship for this control
271
+ // (a member of a DIFFERENT one is not re-added), but merge only into
272
+ // THIS rel's own list — never the union itself, which would copy a
273
+ // secondary relationship's members into the primary one.
274
+ const alreadyMember = new Set(existingAssignment.allMemberIds ?? existingAssignment.relatedIds);
275
+ const toAdd = uniqueRelated.filter(id => !alreadyMember.has(id));
276
+ if (toAdd.length === 0)
277
+ return existingAssignment.relId;
278
+ const merged = [...existingAssignment.relatedIds, ...toAdd];
279
+ editor.setPositionalAttribute(existingAssignment.relId, 4, merged.map(id => `#${id}`));
280
+ return existingAssignment.relId;
281
+ }
282
+ return editor.addEntity('IfcRelAssignsToControl', [
283
+ generateIfcGuid(anchor.guidRandom),
284
+ ownerHistoryRef(anchor.ownerHistoryId),
285
+ null,
286
+ null,
287
+ uniqueRelated.map(id => `#${id}`),
288
+ null,
289
+ `#${relatingControlId}`,
290
+ ]).expressId;
291
+ }
292
+ /** Assign `itemIds` (IfcCostItem) to `scheduleId` (IfcCostSchedule) as its controlled objects. */
293
+ export function assignCostItemsToScheduleInStore(editor, anchor, scheduleId, itemIds, existingAssignment) {
294
+ return assignToControlInStore(editor, anchor, scheduleId, itemIds, existingAssignment, 'assignCostItemsToSchedule', 'IfcCostSchedule', 'IfcCostItem');
295
+ }
296
+ /**
297
+ * Assign IFC objects (products, tasks, resources, etc.) to a cost item.
298
+ * The controlling item itself is not a legal related member.
299
+ */
300
+ export function assignObjectsToCostItemInStore(editor, anchor, costItemId, objectIds, existingAssignment) {
301
+ return assignToControlInStore(editor, anchor, costItemId, objectIds, existingAssignment, 'assignToCostItem', 'IfcCostItem', 'IfcObjectDefinition');
302
+ }
303
+ /**
304
+ * Set (replace) `itemId`'s `IfcCostItem.CostValues` (slot 7). `valueIds` is
305
+ * REQUIRED, not optional: an empty array is how a caller CLEARS the list,
306
+ * written as `$` — never `()`, which `[1:?]` forbids.
307
+ */
308
+ export function attachCostValuesToItemInStore(editor, anchor, itemId, valueIds) {
309
+ assertCostSchema(requireMatchingCostSchema(editor, anchor.schema), 'setCostItemValues');
310
+ requireEntityType(editor, itemId, 'IfcCostItem', 'itemId', 'setCostItemValues');
311
+ for (const id of valueIds) {
312
+ requireRef(id, 'CostValues', 'setCostItemValues');
313
+ requireEntityType(editor, id, 'IfcCostValue', 'CostValues', 'setCostItemValues');
314
+ }
315
+ // De-duplicated (SET semantics, first occurrence kept), like every other
316
+ // list writer here (nestCostItemsInStore's childIds, assignToControlInStore's
317
+ // relatedObjectIds, …) — a repeated id must not write a repeated #N into a
318
+ // list the evaluator sums over (setCostItemValues([v, v]) would otherwise
319
+ // double-count that value).
320
+ const uniqueValueIds = [...new Set(valueIds)];
321
+ editor.setPositionalAttribute(itemId, 7, uniqueValueIds.length === 0 ? null : uniqueValueIds.map(id => `#${id}`));
322
+ }
323
+ //# sourceMappingURL=cost.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cost.js","sourceRoot":"","sources":["../../src/in-store/cost.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-source.d.ts","sourceRoot":"","sources":["../../src/in-store/resolve-source.ts"],"names":[],"mappings":"AAIA;;;;;;;;;GASG;AAEH,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEtE,OAAO,KAAK,EAAE,gBAAgB,EAA2B,MAAM,gBAAgB,CAAC;AA0ChF;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,YAAY,EACnB,eAAe,EAAE,MAAM,GACtB,gBAAgB,CA0GlB"}
1
+ {"version":3,"file":"resolve-source.d.ts","sourceRoot":"","sources":["../../src/in-store/resolve-source.ts"],"names":[],"mappings":"AAIA;;;;;;;;;GASG;AAEH,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGtE,OAAO,KAAK,EAAE,gBAAgB,EAA2B,MAAM,gBAAgB,CAAC;AA0ChF;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,YAAY,EACnB,eAAe,EAAE,MAAM,GACtB,gBAAgB,CA+GlB"}
@@ -12,6 +12,7 @@
12
12
  * backend layer can call it without needing parser internals.
13
13
  */
14
14
  import { EntityExtractor } from '@ifc-lite/parser';
15
+ import { resolvedTypeName } from '@ifc-lite/data';
15
16
  import { safeLengthUnitScale } from './length-unit-scale.js';
16
17
  /**
17
18
  * Rel types whose `RelatedObjects` list is replayed against a
@@ -130,11 +131,13 @@ export function resolveDuplicateSource(store, sourceExpressId) {
130
131
  // duplicate flow convert its metre offset onto the native-unit
131
132
  // sourceLocation. Falls back to 1 (metres) on extraction failure.
132
133
  const lengthUnitScale = safeLengthUnitScale(store.source, store.entityIndex, 'resolveDuplicateSource') ?? 1.0;
134
+ // Canonical PascalCase, or the raw STEP type as parsed (#4933).
135
+ const type = resolvedTypeName(store.entities, sourceExpressId) ?? sourceEntity.type;
136
+ if (!type) {
137
+ throw new Error(`resolveDuplicateSource: #${sourceExpressId} has no resolvable IFC type — cannot duplicate`);
138
+ }
133
139
  return {
134
- // Canonical PascalCase (e.g. "IfcWall"); falls back to the raw
135
- // extractor type when the entity table doesn't recognise the id
136
- // (vendor extensions etc).
137
- type: store.entities.getTypeName(sourceExpressId) || sourceEntity.type,
140
+ type,
138
141
  attributes: attrs,
139
142
  placementExpressId: placementId,
140
143
  parentPlacementId,
@@ -191,10 +194,10 @@ function collectSourceAssociations(store, extractor, sourceId) {
191
194
  continue;
192
195
  const name = typeof entity.attributes[2] === 'string' ? entity.attributes[2] : null;
193
196
  const description = typeof entity.attributes[3] === 'string' ? entity.attributes[3] : null;
194
- // Use the entity table's canonical name so the duplicate replays
195
- // a PascalCase type into the editor (e.g. "IfcRelDefinesByProperties"),
196
- // not the byType map's UPPERCASE storage key.
197
- const canonicalRelType = store.entities.getTypeName(relId) || relType;
197
+ // Canonical PascalCase when the table has it; association rels are
198
+ // usually categorised out of the `EntityTable` entirely, so `relType`
199
+ // (the constant this loop is already iterating by) is the fallback.
200
+ const canonicalRelType = resolvedTypeName(store.entities, relId) ?? relType;
198
201
  out.push({
199
202
  relType: canonicalRelType,
200
203
  ownerHistoryId,
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-source.js","sourceRoot":"","sources":["../../src/in-store/resolve-source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolve-source.js","sourceRoot":"","sources":["../../src/in-store/resolve-source.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -34,6 +34,8 @@ export { applyStylesInStore, collectLeafRepresentationItems, type ApplyStyleOpti
34
34
  export { addRoofToStore, type RoofInStoreParams, type RoofRectangleParams, type RoofPolygonParams, type RoofBuildResult } from './in-store/roof.js';
35
35
  export { addPlateToStore, type PlateInStoreParams, type PlateRectangleParams, type PlatePolygonParams, type PlateBuildResult } from './in-store/plate.js';
36
36
  export { addMemberToStore, type MemberInStoreParams, type MemberBuildResult } from './in-store/member.js';
37
+ export { addCostScheduleToStore, addCostItemToStore, addCostValueToStore, addCostQuantityToStore, nestCostItemsInStore, assignCostItemsToScheduleInStore, assignObjectsToCostItemInStore, attachCostValuesToItemInStore, type CostAnchor, type ExistingRelatedList, } from './in-store/cost.js';
38
+ export { removeCostEntityInStore, type CostRemovalReferrers } from './in-store/cost-removal.js';
37
39
  export { resolveSpatialAnchor } from './in-store/resolve-anchor.js';
38
40
  export { toNativeLength, fromNativeLength } from './in-store/anchor.js';
39
41
  export type { SpatialAnchor } from './in-store/anchor.js';
@@ -46,4 +48,5 @@ export { generateSpacesFromWalls, offsetRoomFootprint, GENERATED_SPACE_OBJECTTYP
46
48
  export { generateSpaces, listStoreys, type GenerateSpacesAllOptions, type GenerateSpacesAllResult, type GenerateSpacesStoreyResult, type StoreyInfo, } from './in-store/generate-spaces-all.js';
47
49
  export { addDrawingMarkupToStore, addMeasureMarkupToStore, addPolygonAreaMarkupToStore, addTextMarkupToStore, addCloudMarkupToStore, DRAWING_MARKUP_OBJECTTYPE, DRAWING_MARKUP_PSET_NAME, DRAWING_MARKUP_QSET_NAME, type DrawingMarkupObjectType, type MarkupAnchor, type MarkupPoint2D, type MeasureMarkupParams, type MeasureMarkupResult, type PolygonAreaMarkupParams, type PolygonAreaMarkupResult, type TextMarkupParams, type TextMarkupResult, type CloudMarkupParams, type CloudMarkupResult, type DrawingMarkupBatchInput, type DrawingMarkupBatchResult, } from './in-store/drawing-markup.js';
48
50
  export type { Point3D, Point2D, Placement3D, RectangleProfile, ArbitraryProfile, CircleProfile, CircleHollowProfile, IShapeProfile, LShapeProfile, TShapeProfile, UShapeProfile, CShapeProfile, RectangleHollowProfile, ProfileDef, RectangularOpening, GenericElementParams, AxisElementParams, ElementAttributes, WallParams, SlabParams, ColumnParams, BeamParams, StairParams, RoofParams, GableRoofParams, WallDoorParams, WallWindowParams, DoorParams, WindowParams, RampParams, RailingParams, PlateParams, MemberParams, FootingParams, PileParams, SpaceParams, CurtainWallParams, FurnishingParams, ProxyParams, PropertyType, PropertyDef, PropertySetDef, QuantityKind, QuantityDef, QuantitySetDef, MaterialLayerDef, MaterialDef, ProjectParams, SiteParams, BuildingParams, StoreyParams, IfcWorkScheduleParams, IfcWorkPlanParams, IfcTaskParams, IfcRelSequenceParams, IfcWorkCalendarParams, IfcWorkTimeParams, IfcRecurrencePatternParams, IfcTimePeriodParams, IfcWorkScheduleType, IfcTaskPredefinedType, IfcTaskDurationType, IfcRelSequenceType, IfcWorkCalendarType, IfcRecurrenceType, WorkScheduleParams, WorkPlanParams, TaskParams, SequenceParams, WorkCalendarParams, WorkTimeParams, RecurrencePatternParams, TimePeriodParams, WorkScheduleType, TaskPredefinedType, TaskDurationType, SequenceType, WorkCalendarType, RecurrenceType, CreatedEntity, CreateResult, } from './types.js';
51
+ export type { CostArithmeticOperator, CostItemParams, CostItemPredefinedType, CostMeasureType, CostQuantityKind, CostQuantityParams, CostScheduleParams, CostSchedulePredefinedType, CostSIUnitType, CostTypedValue, CostValueParams, SIUnitParams, } from './types-cost.js';
49
52
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -39,6 +39,8 @@ export { applyStylesInStore, collectLeafRepresentationItems, } from './in-store/
39
39
  export { addRoofToStore } from './in-store/roof.js';
40
40
  export { addPlateToStore } from './in-store/plate.js';
41
41
  export { addMemberToStore } from './in-store/member.js';
42
+ export { addCostScheduleToStore, addCostItemToStore, addCostValueToStore, addCostQuantityToStore, nestCostItemsInStore, assignCostItemsToScheduleInStore, assignObjectsToCostItemInStore, attachCostValuesToItemInStore, } from './in-store/cost.js';
43
+ export { removeCostEntityInStore } from './in-store/cost-removal.js';
42
44
  export { resolveSpatialAnchor } from './in-store/resolve-anchor.js';
43
45
  export { toNativeLength, fromNativeLength } from './in-store/anchor.js';
44
46
  export { duplicateInStore, } from './in-store/duplicate.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,yEAAyE;AACzE,0EAA0E;AAC1E,OAAO,EAAE,gBAAgB,EAAoD,MAAM,sBAAsB,CAAC;AAC1G,OAAO,EAAE,cAAc,EAAgD,MAAM,oBAAoB,CAAC;AAClG,OAAO,EAAE,cAAc,EAAkG,MAAM,oBAAoB,CAAC;AACpJ,OAAO,EAAE,cAAc,EAAgD,MAAM,oBAAoB,CAAC;AAClG,OAAO,EAAE,cAAc,EAAgD,MAAM,oBAAoB,CAAC;AAClG,OAAO,EAAE,gBAAgB,EAAoD,MAAM,sBAAsB,CAAC;AAC1G,OAAO,EAAE,eAAe,EAAsG,MAAM,qBAAqB,CAAC;AAC1J,OAAO,EACL,sBAAsB,EACtB,qBAAqB,GAKtB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,kBAAkB,EAClB,8BAA8B,GAK/B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAkG,MAAM,oBAAoB,CAAC;AACpJ,OAAO,EAAE,eAAe,EAAsG,MAAM,qBAAqB,CAAC;AAC1J,OAAO,EAAE,gBAAgB,EAAoD,MAAM,sBAAsB,CAAC;AAC1G,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,EACL,gBAAgB,GAKjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EACL,mBAAmB,GAKpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,GAGhC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,eAAe,EACf,aAAa,EACb,eAAe,GAEhB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,0BAA0B,GAI3B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,cAAc,EACd,WAAW,GAKZ,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,2BAA2B,EAC3B,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,GAczB,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,yEAAyE;AACzE,0EAA0E;AAC1E,OAAO,EAAE,gBAAgB,EAAoD,MAAM,sBAAsB,CAAC;AAC1G,OAAO,EAAE,cAAc,EAAgD,MAAM,oBAAoB,CAAC;AAClG,OAAO,EAAE,cAAc,EAAkG,MAAM,oBAAoB,CAAC;AACpJ,OAAO,EAAE,cAAc,EAAgD,MAAM,oBAAoB,CAAC;AAClG,OAAO,EAAE,cAAc,EAAgD,MAAM,oBAAoB,CAAC;AAClG,OAAO,EAAE,gBAAgB,EAAoD,MAAM,sBAAsB,CAAC;AAC1G,OAAO,EAAE,eAAe,EAAsG,MAAM,qBAAqB,CAAC;AAC1J,OAAO,EACL,sBAAsB,EACtB,qBAAqB,GAKtB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,kBAAkB,EAClB,8BAA8B,GAK/B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAkG,MAAM,oBAAoB,CAAC;AACpJ,OAAO,EAAE,eAAe,EAAsG,MAAM,qBAAqB,CAAC;AAC1J,OAAO,EAAE,gBAAgB,EAAoD,MAAM,sBAAsB,CAAC;AAC1G,OAAO,EACL,sBAAsB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,sBAAsB,EACvF,oBAAoB,EAAE,gCAAgC,EAAE,8BAA8B,EACtF,6BAA6B,GAE9B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,uBAAuB,EAA6B,MAAM,4BAA4B,CAAC;AAChG,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,EACL,gBAAgB,GAKjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EACL,mBAAmB,GAKpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,GAGhC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,eAAe,EACf,aAAa,EACb,eAAe,GAEhB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,0BAA0B,GAI3B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,cAAc,EACd,WAAW,GAKZ,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,2BAA2B,EAC3B,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,GAczB,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Parameter types for the 5D / cost authoring API (IfcCostSchedule,
3
+ * IfcCostItem, IfcCostValue and the units, quantities and relationships they
4
+ * reference).
5
+ *
6
+ * Kept out of `types.ts` so that file stays under its recorded module-size
7
+ * budget (`scripts/module-size-allowlist.txt`).
8
+ *
9
+ * ABSENT IS NOT EMPTY. Every optional field here means "the source did not
10
+ * supply this", and is written as STEP `$`. A LIST-valued field (`CostValues`,
11
+ * `CostQuantities`, `Components`) is declared `[1:?]` in EXPRESS, so an EMPTY
12
+ * array is not a way of spelling "absent" — it is a malformed list, and the
13
+ * builder rejects it rather than silently degrading it to `$`. The cost read
14
+ * model draws the same distinction (`CostItemInfo.CostValues` is `undefined`
15
+ * when the attribute is absent and `[]` only when it was present and invalid),
16
+ * so conflating the two here would make the round trip lie.
17
+ */
18
+ /** IfcCostScheduleTypeEnum (IFC4 / IFC4X3). */
19
+ export type CostSchedulePredefinedType = 'BUDGET' | 'COSTPLAN' | 'ESTIMATE' | 'TENDER' | 'PRICEDBILLOFQUANTITIES' | 'UNPRICEDBILLOFQUANTITIES' | 'SCHEDULEOFRATES' | 'USERDEFINED' | 'NOTDEFINED';
20
+ /** IfcCostItemTypeEnum (IFC4 / IFC4X3). */
21
+ export type CostItemPredefinedType = 'USERDEFINED' | 'NOTDEFINED';
22
+ /** IfcArithmeticOperatorEnum (MODULO is accepted only when the target schema is IFC4X3). */
23
+ export type CostArithmeticOperator = 'ADD' | 'DIVIDE' | 'MODULO' | 'MULTIPLY' | 'SUBTRACT';
24
+ /**
25
+ * The SELECT branch names this builder will write for a typed IFC value.
26
+ *
27
+ * `IfcCostValue.AppliedValue` is an `IfcAppliedValueSelect` and
28
+ * `IfcMeasureWithUnit.ValueComponent` is an `IfcValue` — both SELECTs, so STEP
29
+ * requires the branch to be named: `IFCMONETARYMEASURE(12.5)`, never a bare
30
+ * `12.5`. A bare number parses but resolves to a different SELECT branch (or
31
+ * to none), which is why the branch is part of the parameter rather than
32
+ * inferred from the number.
33
+ */
34
+ export type CostMeasureType = 'IfcMonetaryMeasure' | 'IfcAreaMeasure' | 'IfcVolumeMeasure' | 'IfcLengthMeasure' | 'IfcMassMeasure' | 'IfcTimeMeasure' | 'IfcCountMeasure' | 'IfcNumericMeasure' | 'IfcRatioMeasure' | 'IfcReal' | 'IfcInteger';
35
+ /** A typed IFC measure: the SELECT branch plus its numeric value. */
36
+ export interface CostTypedValue {
37
+ Type: CostMeasureType;
38
+ Value: number;
39
+ }
40
+ /** IfcUnitEnum values this builder can write as an IfcSIUnit. */
41
+ export type CostSIUnitType = 'LENGTHUNIT' | 'AREAUNIT' | 'VOLUMEUNIT' | 'MASSUNIT' | 'TIMEUNIT';
42
+ /** IfcSIUnit — the unit an IfcMeasureWithUnit or an IfcPhysicalQuantity names. */
43
+ export interface SIUnitParams {
44
+ UnitType: CostSIUnitType;
45
+ /** IfcSIPrefix (e.g. 'MILLI', 'KILO'). Absent means the unprefixed SI unit. */
46
+ Prefix?: string;
47
+ /** IfcSIUnitName, e.g. 'SQUARE_METRE'. */
48
+ Name: string;
49
+ }
50
+ /** IfcCostSchedule (IfcControl). */
51
+ export interface CostScheduleParams {
52
+ Name: string;
53
+ Description?: string;
54
+ ObjectType?: string;
55
+ Identification?: string;
56
+ PredefinedType?: CostSchedulePredefinedType;
57
+ Status?: string;
58
+ /** IfcDateTime, e.g. '2026-03-01T09:00:00'. */
59
+ SubmittedOn?: string;
60
+ /** IfcDateTime. */
61
+ UpdateDate?: string;
62
+ }
63
+ /** IfcCostItem. */
64
+ export interface CostItemParams {
65
+ Name: string;
66
+ Description?: string;
67
+ ObjectType?: string;
68
+ Identification?: string;
69
+ PredefinedType?: CostItemPredefinedType;
70
+ /**
71
+ * expressIds of IfcCostValue / IfcAppliedValue entities, in the order they
72
+ * must appear. Absent (undefined) writes `$`; an empty array is rejected.
73
+ */
74
+ CostValues?: number[];
75
+ /**
76
+ * expressIds of IfcPhysicalQuantity entities, in order. Absent writes `$`;
77
+ * an empty array is rejected.
78
+ */
79
+ CostQuantities?: number[];
80
+ }
81
+ /**
82
+ * IfcCostValue.
83
+ *
84
+ * `AppliedValue` and `Components` are NOT interchangeable and this builder
85
+ * never derives one from the other: a value that carried a literal
86
+ * `AppliedValue` in the source is written with that literal and no
87
+ * `Components`, and a value that was the sum of its `Components` is written
88
+ * with `Components` and an absent `AppliedValue`. Normalising either way would
89
+ * change what the file says about where the number came from.
90
+ */
91
+ export interface CostValueParams {
92
+ Name?: string;
93
+ Description?: string;
94
+ /** Literal typed value, written as a named SELECT branch. */
95
+ AppliedValue?: CostTypedValue;
96
+ /**
97
+ * expressId of an IfcMeasureWithUnit, the entity branch of
98
+ * IfcAppliedValueSelect. Mutually exclusive with `AppliedValue`.
99
+ */
100
+ AppliedValueRef?: number;
101
+ /**
102
+ * expressId of an IfcMeasureWithUnit giving the basis this rate is quoted
103
+ * per — a rate "per 100 m²" has a UnitBasis of 100 SQUARE_METRE. It is a
104
+ * divisor, not a label: dropping or inventing it moves the amount by whole
105
+ * orders of magnitude.
106
+ */
107
+ UnitBasis?: number;
108
+ /** IfcDate. */
109
+ ApplicableDate?: string;
110
+ /** IfcDate. */
111
+ FixedUntilDate?: string;
112
+ Category?: string;
113
+ Condition?: string;
114
+ ArithmeticOperator?: CostArithmeticOperator;
115
+ /**
116
+ * expressIds of the IfcAppliedValue / IfcCostValue entities this value is
117
+ * computed from, in order. Absent writes `$`; an empty array is rejected.
118
+ * Repeating an expressId shares that entity rather than copying it.
119
+ */
120
+ Components?: number[];
121
+ }
122
+ /** The IfcPhysicalSimpleQuantity subtypes a cost item can take quantities from. */
123
+ export type CostQuantityKind = 'IfcQuantityLength' | 'IfcQuantityArea' | 'IfcQuantityVolume' | 'IfcQuantityWeight' | 'IfcQuantityTime' | 'IfcQuantityCount' | 'IfcQuantityNumber';
124
+ /** IfcPhysicalSimpleQuantity, as referenced from IfcCostItem.CostQuantities. */
125
+ export interface CostQuantityParams {
126
+ Kind: CostQuantityKind;
127
+ Name: string;
128
+ Value: number;
129
+ Description?: string;
130
+ /** expressId of the unit entity this quantity is measured in. */
131
+ Unit?: number;
132
+ Formula?: string;
133
+ }
134
+ //# sourceMappingURL=types-cost.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-cost.d.ts","sourceRoot":"","sources":["../src/types-cost.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
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
+ export {};
5
+ //# sourceMappingURL=types-cost.js.map