@ifc-lite/mutations 1.27.0 → 2.1.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.
- package/README.md +42 -1
- package/dist/apply-mutations.d.ts +47 -0
- package/dist/apply-mutations.d.ts.map +1 -0
- package/dist/apply-mutations.js +182 -0
- package/dist/apply-mutations.js.map +1 -0
- package/dist/base-qset-lookup.d.ts +14 -0
- package/dist/base-qset-lookup.d.ts.map +1 -0
- package/dist/base-qset-lookup.js +14 -0
- package/dist/base-qset-lookup.js.map +1 -0
- package/dist/csv-connector.d.ts +7 -6
- package/dist/csv-connector.d.ts.map +1 -1
- package/dist/csv-connector.js +17 -32
- package/dist/csv-connector.js.map +1 -1
- package/dist/csv-parse-value.d.ts +16 -0
- package/dist/csv-parse-value.d.ts.map +1 -0
- package/dist/csv-parse-value.js +65 -0
- package/dist/csv-parse-value.js.map +1 -0
- package/dist/mutable-property-view.d.ts +41 -3
- package/dist/mutable-property-view.d.ts.map +1 -1
- package/dist/mutable-property-view.js +110 -274
- package/dist/mutable-property-view.js.map +1 -1
- package/dist/nonfinite-json.d.ts +8 -0
- package/dist/nonfinite-json.d.ts.map +1 -0
- package/dist/nonfinite-json.js +57 -0
- package/dist/nonfinite-json.js.map +1 -0
- package/dist/same-name-set-claims.d.ts +54 -0
- package/dist/same-name-set-claims.d.ts.map +1 -0
- package/dist/same-name-set-claims.js +74 -0
- package/dist/same-name-set-claims.js.map +1 -0
- package/dist/types.d.ts +11 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -69,6 +69,10 @@ is unambiguously REAL-backed, a whole-number value is serialized with the
|
|
|
69
69
|
decimal point automatically, so the natural call just works:
|
|
70
70
|
|
|
71
71
|
```typescript
|
|
72
|
+
const profile = editor.addEntity('IfcRectangleProfileDef', [
|
|
73
|
+
'.AREA.', null, '#34', 0.6, 0.4,
|
|
74
|
+
]);
|
|
75
|
+
|
|
72
76
|
editor.setPositionalAttribute(profile.expressId, 3, 1); // XDim → 1. (dotted)
|
|
73
77
|
```
|
|
74
78
|
|
|
@@ -77,6 +81,8 @@ For the rare slot that a bare value genuinely can't disambiguate — a
|
|
|
77
81
|
the number in the write-only `{ real }` marker to force a REAL literal:
|
|
78
82
|
|
|
79
83
|
```typescript
|
|
84
|
+
const unitRef = '#34'; // STEP reference to an IfcNamedUnit
|
|
85
|
+
|
|
80
86
|
editor.addEntity('IfcQuantityLength', ['L', null, unitRef, { real: 3 }]); // → IFCLENGTHMEASURE-safe 3.
|
|
81
87
|
```
|
|
82
88
|
|
|
@@ -88,6 +94,12 @@ type-QUALIFIED — `IFCBOOLEAN(.T.)`, not a bare `.T.`, in an
|
|
|
88
94
|
the member is unambiguous, so the natural call just works:
|
|
89
95
|
|
|
90
96
|
```typescript
|
|
97
|
+
// IfcBoundaryNodeCondition: Name, TranslationalStiffnessX/Y/Z,
|
|
98
|
+
// RotationalStiffnessX/Y/Z
|
|
99
|
+
const condition = editor.addEntity('IfcBoundaryNodeCondition', [
|
|
100
|
+
'Pinned', null, null, null, null, null, null,
|
|
101
|
+
]);
|
|
102
|
+
|
|
91
103
|
// TranslationalStiffnessX : SELECT(IfcBoolean, IfcLinearStiffnessMeasure)
|
|
92
104
|
editor.setPositionalAttribute(condition.expressId, 1, true); // → IFCBOOLEAN(.T.)
|
|
93
105
|
editor.setPositionalAttribute(condition.expressId, 1, 1000); // → IFCLINEARSTIFFNESSMEASURE(1000.)
|
|
@@ -146,6 +158,8 @@ To carry a created entity across, call `restoreNewEntity()` with its
|
|
|
146
158
|
view) **before** calling `importMutations`:
|
|
147
159
|
|
|
148
160
|
```typescript
|
|
161
|
+
const json = view.exportMutations();
|
|
162
|
+
|
|
149
163
|
const created = view.getNewEntity(expressId)!;
|
|
150
164
|
mutationView.restoreNewEntity(created);
|
|
151
165
|
mutationView.importMutations(json); // dependent property/attribute/quantity mutations now replay
|
|
@@ -188,7 +202,32 @@ console.log(`Updated ${result.affectedEntityCount} walls`);
|
|
|
188
202
|
Preview without applying:
|
|
189
203
|
|
|
190
204
|
```typescript
|
|
191
|
-
|
|
205
|
+
import { BulkQueryEngine, type BulkQuery } from '@ifc-lite/mutations';
|
|
206
|
+
import { PropertyValueType } from '@ifc-lite/data';
|
|
207
|
+
|
|
208
|
+
const engine = new BulkQueryEngine(store.entities, view);
|
|
209
|
+
|
|
210
|
+
// The same query the execute example above runs.
|
|
211
|
+
const bulkQuery: BulkQuery = {
|
|
212
|
+
select: {
|
|
213
|
+
entityTypes: [/* IfcWall enum value */],
|
|
214
|
+
propertyFilters: [{
|
|
215
|
+
psetName: 'Pset_WallCommon',
|
|
216
|
+
propName: 'IsExternal',
|
|
217
|
+
operator: '=',
|
|
218
|
+
value: true,
|
|
219
|
+
}],
|
|
220
|
+
},
|
|
221
|
+
action: {
|
|
222
|
+
type: 'SET_PROPERTY',
|
|
223
|
+
psetName: 'Pset_WallCommon',
|
|
224
|
+
propName: 'ThermalTransmittance',
|
|
225
|
+
value: 0.18,
|
|
226
|
+
valueType: PropertyValueType.Real,
|
|
227
|
+
},
|
|
228
|
+
};
|
|
229
|
+
|
|
230
|
+
const preview = engine.preview(bulkQuery);
|
|
192
231
|
console.log(`Would update ${preview.matchedCount} entities`);
|
|
193
232
|
```
|
|
194
233
|
|
|
@@ -202,6 +241,8 @@ import { PropertyValueType } from '@ifc-lite/data';
|
|
|
202
241
|
|
|
203
242
|
const connector = new CsvConnector(store.entities, view);
|
|
204
243
|
|
|
244
|
+
const csvText = await file.text(); // or any string of CSV
|
|
245
|
+
|
|
205
246
|
const stats = connector.import(csvText, {
|
|
206
247
|
matchStrategy: { type: 'globalId', column: 'GlobalId' },
|
|
207
248
|
propertyMappings: [
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The mutation-replay engine behind `MutablePropertyView.applyMutations` —
|
|
3
|
+
* pulled out into its own module since the switch over `Mutation['type']`
|
|
4
|
+
* is a large, self-contained dispatcher that only calls the view's already
|
|
5
|
+
* PUBLIC methods (`setProperty`, `deleteProperty`, ...). The two spots that
|
|
6
|
+
* touch the view's private state (`newEntities`, `deletedQsets`) are passed
|
|
7
|
+
* in as narrow callbacks so this file never needs those fields exposed.
|
|
8
|
+
*/
|
|
9
|
+
import { QuantityType } from '@ifc-lite/data';
|
|
10
|
+
import type { PropertyValueType } from '@ifc-lite/data';
|
|
11
|
+
import type { IfcAttributeValue, PropertyValue, Mutation } from './types.js';
|
|
12
|
+
/**
|
|
13
|
+
* The subset of `MutablePropertyView`'s public API `applyMutationsBatch`
|
|
14
|
+
* dispatches into. Declared structurally (rather than importing the class)
|
|
15
|
+
* so this module has no circular dependency on `mutable-property-view.ts`.
|
|
16
|
+
*/
|
|
17
|
+
export interface MutationApplyTarget {
|
|
18
|
+
setProperty(entityId: number, psetName: string, propName: string, newValue: PropertyValue, valueType?: PropertyValueType): unknown;
|
|
19
|
+
deleteProperty(entityId: number, psetName: string, propName: string): unknown;
|
|
20
|
+
deletePropertySet(entityId: number, psetName: string): unknown;
|
|
21
|
+
deleteQuantitySet(entityId: number, qsetName: string): unknown;
|
|
22
|
+
setQuantity(entityId: number, qsetName: string, quantName: string, value: number, quantityType: QuantityType, unit?: string): unknown;
|
|
23
|
+
createQuantitySet(entityId: number, qsetName: string, quantities: Array<{
|
|
24
|
+
name: string;
|
|
25
|
+
value: number;
|
|
26
|
+
quantityType: QuantityType;
|
|
27
|
+
unit?: string;
|
|
28
|
+
}>): unknown;
|
|
29
|
+
setPositionalAttribute(entityId: number, index: number, value: IfcAttributeValue): unknown;
|
|
30
|
+
setEntityType(entityId: number, entityType: string, predefinedType: string | null, oldValue?: string): unknown;
|
|
31
|
+
setAttribute(entityId: number, attributeName: string, newValue: string, oldValue?: string): unknown;
|
|
32
|
+
createPropertySet(entityId: number, psetName: string, properties: Array<{
|
|
33
|
+
name: string;
|
|
34
|
+
value: PropertyValue;
|
|
35
|
+
type?: PropertyValueType;
|
|
36
|
+
unit?: string;
|
|
37
|
+
}>): unknown;
|
|
38
|
+
deleteEntity(expressId: number): unknown;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Apply a batch of mutations (e.g., from imported change set) against
|
|
42
|
+
* `target`. `hasNewEntity` and `markQuantitySetDeleted` give this function
|
|
43
|
+
* the two bits of the view's private state the dispatcher needs without
|
|
44
|
+
* exposing those fields publicly.
|
|
45
|
+
*/
|
|
46
|
+
export declare function applyMutationsBatch(target: MutationApplyTarget, mutations: Mutation[], hasNewEntity: (entityId: number) => boolean, markQuantitySetDeleted: (entityId: number, qsetName: string) => void): void;
|
|
47
|
+
//# sourceMappingURL=apply-mutations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply-mutations.d.ts","sourceRoot":"","sources":["../src/apply-mutations.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE7E;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,WAAW,CACT,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,aAAa,EACvB,SAAS,CAAC,EAAE,iBAAiB,GAC5B,OAAO,CAAC;IACX,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9E,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/D,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/D,WAAW,CACT,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,YAAY,EAC1B,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC;IACX,iBAAiB,CACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,YAAY,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAC5F,OAAO,CAAC;IACX,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC;IAC3F,aAAa,CACX,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,GAAG,IAAI,EAC7B,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC;IACX,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACpG,iBAAiB,CACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,aAAa,CAAC;QAAC,IAAI,CAAC,EAAE,iBAAiB,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GACjG,OAAO,CAAC;IACX,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1C;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,mBAAmB,EAC3B,SAAS,EAAE,QAAQ,EAAE,EACrB,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,EAC3C,sBAAsB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,GACnE,IAAI,CAoNN"}
|
|
@@ -0,0 +1,182 @@
|
|
|
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 mutation-replay engine behind `MutablePropertyView.applyMutations` —
|
|
6
|
+
* pulled out into its own module since the switch over `Mutation['type']`
|
|
7
|
+
* is a large, self-contained dispatcher that only calls the view's already
|
|
8
|
+
* PUBLIC methods (`setProperty`, `deleteProperty`, ...). The two spots that
|
|
9
|
+
* touch the view's private state (`newEntities`, `deletedQsets`) are passed
|
|
10
|
+
* in as narrow callbacks so this file never needs those fields exposed.
|
|
11
|
+
*/
|
|
12
|
+
import { QuantityType } from '@ifc-lite/data';
|
|
13
|
+
/**
|
|
14
|
+
* Apply a batch of mutations (e.g., from imported change set) against
|
|
15
|
+
* `target`. `hasNewEntity` and `markQuantitySetDeleted` give this function
|
|
16
|
+
* the two bits of the view's private state the dispatcher needs without
|
|
17
|
+
* exposing those fields publicly.
|
|
18
|
+
*/
|
|
19
|
+
export function applyMutationsBatch(target, mutations, hasNewEntity, markQuantitySetDeleted) {
|
|
20
|
+
// CREATE_ENTITY records are skipped (callers must restore the
|
|
21
|
+
// payload via restoreNewEntity). Track the ids we've skipped so a
|
|
22
|
+
// matching DELETE_ENTITY in the same batch doesn't tombstone an
|
|
23
|
+
// entity that never made it into this view — that stale tombstone
|
|
24
|
+
// would later suppress a freshly-allocated overlay entity reusing
|
|
25
|
+
// the same expressId.
|
|
26
|
+
// Pass 1: collect every CREATE_ENTITY id up front, over the whole
|
|
27
|
+
// array, before applying anything. CREATE_ENTITY is unconditionally
|
|
28
|
+
// skipped below (every id it's called for lands here) — but a caller
|
|
29
|
+
// supplying an arbitrary (e.g. imported/merged) Mutation[] may not have
|
|
30
|
+
// its CREATE_ENTITY appear before the mutations that depend on it. A
|
|
31
|
+
// single incremental forward pass would only "see" a create once the
|
|
32
|
+
// loop reaches it, so a dependent mutation earlier in the array would
|
|
33
|
+
// replay before its own entity's creation was known to be skipped —
|
|
34
|
+
// reproducing the orphaned-pset bug via ordering instead of via the
|
|
35
|
+
// original bug shape. Doing the full collection first makes the result
|
|
36
|
+
// order-independent.
|
|
37
|
+
const skippedCreateIds = new Set();
|
|
38
|
+
for (const mutation of mutations) {
|
|
39
|
+
if (mutation.type === 'CREATE_ENTITY') {
|
|
40
|
+
skippedCreateIds.add(mutation.entityId);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// Pass 2: apply mutations against the now-complete skip set.
|
|
44
|
+
for (const mutation of mutations) {
|
|
45
|
+
// Any mutation recorded against an entity whose own CREATE_ENTITY was
|
|
46
|
+
// skipped above would otherwise replay into an orphan — a pset (or
|
|
47
|
+
// attribute/quantity/type edit) keyed to an expressId that exists in
|
|
48
|
+
// neither the source buffer nor `newEntities`. Refuse those too, so
|
|
49
|
+
// the round trip is lossy (entity + its edits both dropped) rather
|
|
50
|
+
// than corrupting (edits surviving without their entity). This keys
|
|
51
|
+
// off `skippedCreateIds`, not "id absent from newEntities", so a
|
|
52
|
+
// mutation against a normal, pre-existing source-buffer entity is
|
|
53
|
+
// never affected — only ids that had their own CREATE_ENTITY skipped
|
|
54
|
+
// in this same batch land here.
|
|
55
|
+
// The `newEntities` check makes the condition "the create was skipped
|
|
56
|
+
// AND nothing else supplied the entity". A caller following the
|
|
57
|
+
// documented recovery flow calls `restoreNewEntity()` first and
|
|
58
|
+
// *then* replays the history; the id is live by the time we get here,
|
|
59
|
+
// so there is no orphan to guard against and dropping its edits would
|
|
60
|
+
// silently lose data on the exact path the console.warn recommends.
|
|
61
|
+
if (mutation.type !== 'CREATE_ENTITY' &&
|
|
62
|
+
skippedCreateIds.has(mutation.entityId) &&
|
|
63
|
+
!hasNewEntity(mutation.entityId)) {
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
switch (mutation.type) {
|
|
67
|
+
case 'CREATE_PROPERTY':
|
|
68
|
+
case 'UPDATE_PROPERTY':
|
|
69
|
+
if (mutation.psetName && mutation.propName && mutation.newValue !== undefined) {
|
|
70
|
+
target.setProperty(mutation.entityId, mutation.psetName, mutation.propName, mutation.newValue, mutation.valueType);
|
|
71
|
+
}
|
|
72
|
+
break;
|
|
73
|
+
case 'DELETE_PROPERTY':
|
|
74
|
+
if (mutation.psetName && mutation.propName) {
|
|
75
|
+
target.deleteProperty(mutation.entityId, mutation.psetName, mutation.propName);
|
|
76
|
+
}
|
|
77
|
+
break;
|
|
78
|
+
case 'DELETE_PROPERTY_SET':
|
|
79
|
+
if (mutation.psetName) {
|
|
80
|
+
target.deletePropertySet(mutation.entityId, mutation.psetName);
|
|
81
|
+
}
|
|
82
|
+
break;
|
|
83
|
+
case 'DELETE_QUANTITY_SET':
|
|
84
|
+
if (mutation.psetName) {
|
|
85
|
+
target.deleteQuantitySet(mutation.entityId, mutation.psetName);
|
|
86
|
+
// The marker is recorded even when this view cannot SEE the base
|
|
87
|
+
// set, unlike the live path. `deleteQuantitySet` only masks a set
|
|
88
|
+
// the quantity extractor reports, and that extractor is opt-in
|
|
89
|
+
// (null by default, and several in-tree callers wire the property
|
|
90
|
+
// one beside it and not it). A replayed deletion is a decision the
|
|
91
|
+
// origin session already made, so dropping it here would let a
|
|
92
|
+
// later export regenerate a set the user removed. An inert marker
|
|
93
|
+
// on a set that does not exist costs a row in the change list;
|
|
94
|
+
// losing the deletion costs the user's edit.
|
|
95
|
+
markQuantitySetDeleted(mutation.entityId, mutation.psetName);
|
|
96
|
+
}
|
|
97
|
+
break;
|
|
98
|
+
case 'CREATE_QUANTITY':
|
|
99
|
+
case 'UPDATE_QUANTITY':
|
|
100
|
+
if (mutation.psetName && mutation.propName && mutation.newValue !== undefined) {
|
|
101
|
+
target.setQuantity(mutation.entityId, mutation.psetName, mutation.propName, Number(mutation.newValue), mutation.quantityType ?? QuantityType.Count, mutation.unit);
|
|
102
|
+
}
|
|
103
|
+
else if (mutation.type === 'CREATE_QUANTITY' &&
|
|
104
|
+
mutation.psetName &&
|
|
105
|
+
Array.isArray(mutation.newValue)) {
|
|
106
|
+
// `createQuantitySet()` (whole-qset creation, e.g.
|
|
107
|
+
// `StoreEditor.addQuantitySet`) records ONE CREATE_QUANTITY mutation
|
|
108
|
+
// for the whole set — no `propName`, `newValue` is the full
|
|
109
|
+
// quantities array — unlike `setQuantity()`'s per-quantity
|
|
110
|
+
// CREATE_QUANTITY, which always carries both. Mirrors the
|
|
111
|
+
// CREATE_PROPERTY_SET handling below. Without this branch the
|
|
112
|
+
// `psetName && propName` check above is false and the record
|
|
113
|
+
// matched this `case` with nothing done — never falling through to
|
|
114
|
+
// the "unhandled mutation type" warning either — so a freshly
|
|
115
|
+
// created quantity set silently vanished on
|
|
116
|
+
// exportMutations()/importMutations() round trip.
|
|
117
|
+
target.createQuantitySet(mutation.entityId, mutation.psetName, mutation.newValue);
|
|
118
|
+
}
|
|
119
|
+
break;
|
|
120
|
+
case 'UPDATE_POSITIONAL_ATTRIBUTE': {
|
|
121
|
+
// attributeName is `@<index>` for positional mutations.
|
|
122
|
+
const attr = mutation.attributeName ?? '';
|
|
123
|
+
if (!attr.startsWith('@'))
|
|
124
|
+
break;
|
|
125
|
+
const index = Number(attr.slice(1));
|
|
126
|
+
if (!Number.isInteger(index) || index < 0)
|
|
127
|
+
break;
|
|
128
|
+
if (mutation.newValue === undefined)
|
|
129
|
+
break;
|
|
130
|
+
target.setPositionalAttribute(mutation.entityId, index, mutation.newValue);
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
case 'UPDATE_ENTITY_TYPE': {
|
|
134
|
+
const newType = mutation.entityType ?? (typeof mutation.newValue === 'string' ? mutation.newValue : undefined);
|
|
135
|
+
if (!newType)
|
|
136
|
+
break;
|
|
137
|
+
target.setEntityType(mutation.entityId, newType, mutation.predefinedType ?? null, mutation.oldValue == null ? undefined : String(mutation.oldValue));
|
|
138
|
+
break;
|
|
139
|
+
}
|
|
140
|
+
case 'UPDATE_ATTRIBUTE':
|
|
141
|
+
if (mutation.attributeName && mutation.newValue !== undefined && mutation.newValue !== null) {
|
|
142
|
+
target.setAttribute(mutation.entityId, mutation.attributeName, String(mutation.newValue), mutation.oldValue == null ? undefined : String(mutation.oldValue));
|
|
143
|
+
}
|
|
144
|
+
break;
|
|
145
|
+
case 'CREATE_PROPERTY_SET':
|
|
146
|
+
if (mutation.psetName && Array.isArray(mutation.newValue)) {
|
|
147
|
+
// newValue is the original properties array (see createPropertySet,
|
|
148
|
+
// where newValue = properties: Array<{ name; value; type?; unit? }>).
|
|
149
|
+
target.createPropertySet(mutation.entityId, mutation.psetName, mutation.newValue);
|
|
150
|
+
}
|
|
151
|
+
break;
|
|
152
|
+
case 'CREATE_ENTITY': {
|
|
153
|
+
// Replay creates rely on the importer providing the entity body
|
|
154
|
+
// via `restoreNewEntity` separately. The history record alone
|
|
155
|
+
// doesn't carry the type+attributes payload — applying a bare
|
|
156
|
+
// CREATE_ENTITY would lose the entity. We log and skip rather
|
|
157
|
+
// than silently dropping it, so callers see they need to
|
|
158
|
+
// restore the payload through the dedicated path. Unless the
|
|
159
|
+
// caller already restored it, every other mutation recorded
|
|
160
|
+
// against this id in this batch is dropped too (see the guard
|
|
161
|
+
// above this switch) — otherwise the entity is gone but its edits
|
|
162
|
+
// survive as an orphan. (skippedCreateIds was already fully
|
|
163
|
+
// populated in pass 1, above.)
|
|
164
|
+
// eslint-disable-next-line no-console
|
|
165
|
+
console.warn(`applyMutations: CREATE_ENTITY for #${mutation.entityId} requires a NewEntity payload — ` +
|
|
166
|
+
`restore via restoreNewEntity(). Skipping the record; dependent mutations recorded against ` +
|
|
167
|
+
`#${mutation.entityId} are dropped too unless the entity was restored before this call.`);
|
|
168
|
+
break;
|
|
169
|
+
}
|
|
170
|
+
case 'DELETE_ENTITY':
|
|
171
|
+
target.deleteEntity(mutation.entityId);
|
|
172
|
+
break;
|
|
173
|
+
default:
|
|
174
|
+
// Surface unhandled mutation types instead of silently dropping
|
|
175
|
+
// them, so future gaps in this switch are visible.
|
|
176
|
+
// eslint-disable-next-line no-console
|
|
177
|
+
console.warn(`applyMutations: unhandled mutation type '${mutation.type}' for #${mutation.entityId} — skipped`);
|
|
178
|
+
break;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=apply-mutations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply-mutations.js","sourceRoot":"","sources":["../src/apply-mutations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Find a quantity by (qsetName, quantityName) across every quantity set
|
|
3
|
+
* carrying that name in `qsets`, first match wins. An entity can
|
|
4
|
+
* legitimately carry two distinct qsets sharing `qsetName` (one from the
|
|
5
|
+
* type definition, one from the occurrence) -- `qsets.find(...)?.quantities
|
|
6
|
+
* .find(...)` only ever sees the first one. Same defect family as
|
|
7
|
+
* `findQuantityInSets` in `@ifc-lite/query`, duplicated here rather than
|
|
8
|
+
* imported: `@ifc-lite/query` depends on `@ifc-lite/parser`, which depends
|
|
9
|
+
* on `@ifc-lite/ifcx`, which depends on `@ifc-lite/mutations` -- taking the
|
|
10
|
+
* dependency here would be a cycle.
|
|
11
|
+
*/
|
|
12
|
+
import type { QuantitySet, Quantity } from '@ifc-lite/data';
|
|
13
|
+
export declare function findQuantityInBaseSets(qsets: readonly QuantitySet[], qsetName: string, quantityName: string): Quantity | undefined;
|
|
14
|
+
//# sourceMappingURL=base-qset-lookup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-qset-lookup.d.ts","sourceRoot":"","sources":["../src/base-qset-lookup.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE5D,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,SAAS,WAAW,EAAE,EAC7B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB,QAAQ,GAAG,SAAS,CAOtB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
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 function findQuantityInBaseSets(qsets, qsetName, quantityName) {
|
|
5
|
+
for (const qset of qsets) {
|
|
6
|
+
if (qset.name !== qsetName)
|
|
7
|
+
continue;
|
|
8
|
+
const match = qset.quantities.find(q => q.name === quantityName);
|
|
9
|
+
if (match)
|
|
10
|
+
return match;
|
|
11
|
+
}
|
|
12
|
+
return undefined;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=base-qset-lookup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-qset-lookup.js","sourceRoot":"","sources":["../src/base-qset-lookup.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAgB/D,MAAM,UAAU,sBAAsB,CACpC,KAA6B,EAC7B,QAAgB,EAChB,YAAoB;IAEpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;YAAE,SAAS;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;QACjE,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IAC1B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/dist/csv-connector.d.ts
CHANGED
|
@@ -129,9 +129,14 @@ export declare class CsvConnector {
|
|
|
129
129
|
*/
|
|
130
130
|
private matchRow;
|
|
131
131
|
/**
|
|
132
|
-
* Generate mutations from matched data
|
|
132
|
+
* Generate mutations from matched data.
|
|
133
|
+
*
|
|
134
|
+
* `warnings`, when passed, collects one message per skipped cell — a
|
|
135
|
+
* malformed Real/Integer value (see {@link parseValue}) that would
|
|
136
|
+
* otherwise have silently written `0`. Optional and additive: existing
|
|
137
|
+
* callers that only want the mutation list are unaffected.
|
|
133
138
|
*/
|
|
134
|
-
generateMutations(matches: MatchResult[], mapping: DataMapping): Mutation[];
|
|
139
|
+
generateMutations(matches: MatchResult[], mapping: DataMapping, warnings?: string[]): Mutation[];
|
|
135
140
|
/**
|
|
136
141
|
* Import CSV data and apply to entities
|
|
137
142
|
*
|
|
@@ -161,10 +166,6 @@ export declare class CsvConnector {
|
|
|
161
166
|
* Parse a single CSV line respecting quoted values
|
|
162
167
|
*/
|
|
163
168
|
private parseCsvLine;
|
|
164
|
-
/**
|
|
165
|
-
* Parse a string value to the appropriate type
|
|
166
|
-
*/
|
|
167
|
-
private parseValue;
|
|
168
169
|
/**
|
|
169
170
|
* Auto-detect column mappings based on column names
|
|
170
171
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csv-connector.d.ts","sourceRoot":"","sources":["../src/csv-connector.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"csv-connector.d.ts","sourceRoot":"","sources":["../src/csv-connector.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAG7E;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7E;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,sBAAsB;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB;IACjB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,oCAAoC;IACpC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,aAAa,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,4CAA4C;IAC5C,aAAa,EAAE,aAAa,CAAC;IAC7B,wBAAwB;IACxB,gBAAgB,EAAE,eAAe,EAAE,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,kCAAkC;IAClC,KAAK,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;IAC3C,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,gBAAgB,EAAE,MAAM,CAAC;IACzB,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sCAAsC;IACtC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,OAAO,CAAsC;IACrD,4EAA4E;IAC5E,OAAO,CAAC,OAAO,CAA4B;gBAGzC,QAAQ,EAAE,WAAW,EACrB,YAAY,EAAE,mBAAmB,EACjC,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,IAAI,EAC7C,OAAO,CAAC,EAAE,aAAa;IAQzB;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,MAAM,EAAE;IAyC/D;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,WAAW,GAAG,WAAW,EAAE;IAI1D;;OAEG;IACH,OAAO,CAAC,QAAQ;IAiEhB;;;;;;;OAOG;IACH,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE;IAyChG;;;;;;;;OAQG;IACH,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,GAAE,eAAoB,GAAG,WAAW;IAuC7F;;;OAGG;IACG,WAAW,CACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,EAC9C,OAAO,GAAE,eAAe,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO,GACrD,OAAO,CAAC,WAAW,CAAC;IAiFvB;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,GAAE,eAAoB,GAAG;QAC7E,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,OAAO,EAAE,WAAW,EAAE,CAAC;QACvB,kBAAkB,EAAE,MAAM,CAAC;KAC5B;IAYD;;OAEG;IACH,OAAO,CAAC,YAAY;IA6BpB;;OAEG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE;IAuDxD;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAM1B"}
|
package/dist/csv-connector.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
4
|
import { PropertyValueType } from '@ifc-lite/data';
|
|
5
5
|
import { checkMutationGuard } from './mutation-guard.js';
|
|
6
|
+
import { PARSE_INVALID, parseValue } from './csv-parse-value.js';
|
|
6
7
|
/**
|
|
7
8
|
* CSV Data Connector
|
|
8
9
|
*/
|
|
@@ -123,9 +124,14 @@ export class CsvConnector {
|
|
|
123
124
|
return { row, rowIndex, matchedEntityIds, confidence, warnings };
|
|
124
125
|
}
|
|
125
126
|
/**
|
|
126
|
-
* Generate mutations from matched data
|
|
127
|
+
* Generate mutations from matched data.
|
|
128
|
+
*
|
|
129
|
+
* `warnings`, when passed, collects one message per skipped cell — a
|
|
130
|
+
* malformed Real/Integer value (see {@link parseValue}) that would
|
|
131
|
+
* otherwise have silently written `0`. Optional and additive: existing
|
|
132
|
+
* callers that only want the mutation list are unaffected.
|
|
127
133
|
*/
|
|
128
|
-
generateMutations(matches, mapping) {
|
|
134
|
+
generateMutations(matches, mapping, warnings) {
|
|
129
135
|
checkMutationGuard(this.canEdit);
|
|
130
136
|
const mutations = [];
|
|
131
137
|
for (const match of matches) {
|
|
@@ -138,7 +144,13 @@ export class CsvConnector {
|
|
|
138
144
|
continue;
|
|
139
145
|
const value = propMapping.transform
|
|
140
146
|
? propMapping.transform(rawValue)
|
|
141
|
-
:
|
|
147
|
+
: parseValue(rawValue, propMapping.valueType);
|
|
148
|
+
if (value === PARSE_INVALID) {
|
|
149
|
+
warnings?.push(`Row ${match.rowIndex}: could not parse "${rawValue}" in column ` +
|
|
150
|
+
`"${propMapping.sourceColumn}" as ${PropertyValueType[propMapping.valueType]} ` +
|
|
151
|
+
`for ${propMapping.targetPset}.${propMapping.targetProperty} — skipped`);
|
|
152
|
+
continue;
|
|
153
|
+
}
|
|
142
154
|
const mutation = this.mutationView.setProperty(entityId, propMapping.targetPset, propMapping.targetProperty, value, propMapping.valueType);
|
|
143
155
|
mutations.push(mutation);
|
|
144
156
|
}
|
|
@@ -182,7 +194,7 @@ export class CsvConnector {
|
|
|
182
194
|
}
|
|
183
195
|
}
|
|
184
196
|
// Generate and apply mutations
|
|
185
|
-
const mutations = this.generateMutations(matches, mapping);
|
|
197
|
+
const mutations = this.generateMutations(matches, mapping, stats.warnings);
|
|
186
198
|
stats.mutationsCreated = mutations.length;
|
|
187
199
|
}
|
|
188
200
|
catch (error) {
|
|
@@ -244,7 +256,7 @@ export class CsvConnector {
|
|
|
244
256
|
let mutationCount = 0;
|
|
245
257
|
for (let i = 0; i < allMatches.length; i += batchSize) {
|
|
246
258
|
const batch = allMatches.slice(i, i + batchSize);
|
|
247
|
-
const mutations = this.generateMutations(batch, mapping);
|
|
259
|
+
const mutations = this.generateMutations(batch, mapping, stats.warnings);
|
|
248
260
|
mutationCount += mutations.length;
|
|
249
261
|
const applyProgress = Math.min(i + batchSize, allMatches.length) / allMatches.length;
|
|
250
262
|
onProgress({
|
|
@@ -306,33 +318,6 @@ export class CsvConnector {
|
|
|
306
318
|
values.push(current.trim());
|
|
307
319
|
return values;
|
|
308
320
|
}
|
|
309
|
-
/**
|
|
310
|
-
* Parse a string value to the appropriate type
|
|
311
|
-
*/
|
|
312
|
-
parseValue(value, type) {
|
|
313
|
-
switch (type) {
|
|
314
|
-
case PropertyValueType.Real:
|
|
315
|
-
return parseFloat(value) || 0;
|
|
316
|
-
case PropertyValueType.Integer:
|
|
317
|
-
return parseInt(value, 10) || 0;
|
|
318
|
-
case PropertyValueType.Boolean:
|
|
319
|
-
case PropertyValueType.Logical:
|
|
320
|
-
const lower = value.toLowerCase();
|
|
321
|
-
return lower === 'true' || lower === 'yes' || lower === '1';
|
|
322
|
-
case PropertyValueType.List:
|
|
323
|
-
try {
|
|
324
|
-
return JSON.parse(value);
|
|
325
|
-
}
|
|
326
|
-
catch {
|
|
327
|
-
// Legitimately silent: two accepted CSV encodings for a list value,
|
|
328
|
-
// JSON first then semicolon-separated. A non-JSON cell is the normal
|
|
329
|
-
// second form, not a failure.
|
|
330
|
-
return value.split(';').map((s) => s.trim());
|
|
331
|
-
}
|
|
332
|
-
default:
|
|
333
|
-
return value;
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
321
|
/**
|
|
337
322
|
* Auto-detect column mappings based on column names
|
|
338
323
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csv-connector.js","sourceRoot":"","sources":["../src/csv-connector.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"csv-connector.js","sourceRoot":"","sources":["../src/csv-connector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cell-to-value parsing for the CSV connector, split out so `csv-connector.ts`
|
|
3
|
+
* stays within its module-size budget.
|
|
4
|
+
*/
|
|
5
|
+
import { PropertyValueType } from '@ifc-lite/data';
|
|
6
|
+
import type { PropertyValue } from './types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Returned for a Real/Integer cell that is not a number at all ("N/A", "TBD").
|
|
9
|
+
* `parseFloat`/`parseInt` yield `NaN` for these and `NaN || 0` is `0`, which
|
|
10
|
+
* writes a fabricated zero no consumer can tell from an imported one. Callers
|
|
11
|
+
* must check for this sentinel and skip the cell instead.
|
|
12
|
+
*/
|
|
13
|
+
export declare const PARSE_INVALID: unique symbol;
|
|
14
|
+
/** Parse a CSV cell to `type`, or {@link PARSE_INVALID} if it cannot be. */
|
|
15
|
+
export declare function parseValue(value: string, type: PropertyValueType): PropertyValue | typeof PARSE_INVALID;
|
|
16
|
+
//# sourceMappingURL=csv-parse-value.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"csv-parse-value.d.ts","sourceRoot":"","sources":["../src/csv-parse-value.ts"],"names":[],"mappings":"AAIA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;;;;GAKG;AACH,eAAO,MAAM,aAAa,eAA8B,CAAC;AAEzD,4EAA4E;AAC5E,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,iBAAiB,GACtB,aAAa,GAAG,OAAO,aAAa,CA+CtC"}
|