@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
|
@@ -0,0 +1,65 @@
|
|
|
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
|
+
* Cell-to-value parsing for the CSV connector, split out so `csv-connector.ts`
|
|
6
|
+
* stays within its module-size budget.
|
|
7
|
+
*/
|
|
8
|
+
import { PropertyValueType } from '@ifc-lite/data';
|
|
9
|
+
/**
|
|
10
|
+
* Returned for a Real/Integer cell that is not a number at all ("N/A", "TBD").
|
|
11
|
+
* `parseFloat`/`parseInt` yield `NaN` for these and `NaN || 0` is `0`, which
|
|
12
|
+
* writes a fabricated zero no consumer can tell from an imported one. Callers
|
|
13
|
+
* must check for this sentinel and skip the cell instead.
|
|
14
|
+
*/
|
|
15
|
+
export const PARSE_INVALID = Symbol('csv-parse-invalid');
|
|
16
|
+
/** Parse a CSV cell to `type`, or {@link PARSE_INVALID} if it cannot be. */
|
|
17
|
+
export function parseValue(value, type) {
|
|
18
|
+
switch (type) {
|
|
19
|
+
case PropertyValueType.Real: {
|
|
20
|
+
const parsed = parseFloat(value);
|
|
21
|
+
return Number.isNaN(parsed) ? PARSE_INVALID : parsed;
|
|
22
|
+
}
|
|
23
|
+
case PropertyValueType.Integer: {
|
|
24
|
+
const parsed = parseInt(value, 10);
|
|
25
|
+
return Number.isNaN(parsed) ? PARSE_INVALID : parsed;
|
|
26
|
+
}
|
|
27
|
+
case PropertyValueType.Boolean:
|
|
28
|
+
case PropertyValueType.Logical: {
|
|
29
|
+
const lower = value.toLowerCase();
|
|
30
|
+
return lower === 'true' || lower === 'yes' || lower === '1';
|
|
31
|
+
}
|
|
32
|
+
case PropertyValueType.List: {
|
|
33
|
+
// Two accepted CSV encodings, resolved in three steps: a valid JSON
|
|
34
|
+
// ARRAY wins, a semicolon is the unambiguous marker of the other
|
|
35
|
+
// form, and only a cell that looks like JSON, carries no semicolon,
|
|
36
|
+
// and still will not parse is refused. Valid JSON that is not an
|
|
37
|
+
// array (`5`, `{"a":1}`) is not a list either, so it falls to the
|
|
38
|
+
// semicolon path and becomes a one-element list, as before.
|
|
39
|
+
//
|
|
40
|
+
// Both simpler rules are wrong in opposite directions. Deciding on the
|
|
41
|
+
// thrown exception sent malformed JSON down the semicolon path, so
|
|
42
|
+
// `[1,2` parsed to `['[1,2']` -- a fabricated value of exactly the kind
|
|
43
|
+
// PARSE_INVALID exists to keep out. Deciding on a leading `[` alone
|
|
44
|
+
// refused `[EXT];[LOAD]`, a legitimate semicolon list whose first entry
|
|
45
|
+
// starts with `[`, dropping cells that imported correctly before.
|
|
46
|
+
const trimmed = value.trim();
|
|
47
|
+
try {
|
|
48
|
+
const parsed = JSON.parse(trimmed);
|
|
49
|
+
if (Array.isArray(parsed))
|
|
50
|
+
return parsed;
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
// Not JSON. Fall through to the shape checks below.
|
|
54
|
+
}
|
|
55
|
+
if (trimmed.includes(';'))
|
|
56
|
+
return trimmed.split(';').map((s) => s.trim());
|
|
57
|
+
if (trimmed.startsWith('['))
|
|
58
|
+
return PARSE_INVALID;
|
|
59
|
+
return trimmed.split(';').map((s) => s.trim());
|
|
60
|
+
}
|
|
61
|
+
default:
|
|
62
|
+
return value;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=csv-parse-value.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"csv-parse-value.js","sourceRoot":"","sources":["../src/csv-parse-value.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGnD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAEzD,4EAA4E;AAC5E,MAAM,UAAU,UAAU,CACxB,KAAa,EACb,IAAuB;IAEvB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5B,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YACjC,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC;QACvD,CAAC;QAED,KAAK,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;YAC/B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACnC,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC;QACvD,CAAC;QAED,KAAK,iBAAiB,CAAC,OAAO,CAAC;QAC/B,KAAK,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;YAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YAClC,OAAO,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,GAAG,CAAC;QAC9D,CAAC;QAED,KAAK,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5B,oEAAoE;YACpE,iEAAiE;YACjE,oEAAoE;YACpE,iEAAiE;YACjE,kEAAkE;YAClE,4DAA4D;YAC5D,EAAE;YACF,uEAAuE;YACvE,mEAAmE;YACnE,wEAAwE;YACxE,oEAAoE;YACpE,wEAAwE;YACxE,kEAAkE;YAClE,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;oBAAE,OAAO,MAAuB,CAAC;YAC5D,CAAC;YAAC,MAAM,CAAC;gBACP,oDAAoD;YACtD,CAAC;YACD,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1E,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,OAAO,aAAa,CAAC;YAClD,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;QAED;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import type { PropertyTable, PropertySet, QuantitySet } from '@ifc-lite/data';
|
|
11
11
|
import { PropertyValueType, QuantityType } from '@ifc-lite/data';
|
|
12
|
-
import type { IfcAttributeValue, PropertyValue, EntityTypeMutation, Mutation, NewEntity, EffectiveChange } from './types.js';
|
|
12
|
+
import type { IfcAttributeValue, PropertyValue, PropertyMutation, EntityTypeMutation, Mutation, NewEntity, EffectiveChange } from './types.js';
|
|
13
13
|
import { type AttributeExtractor } from './effective-changes.js';
|
|
14
14
|
export type { AttributeExtractor } from './effective-changes.js';
|
|
15
15
|
/**
|
|
@@ -180,8 +180,13 @@ export declare class MutablePropertyView {
|
|
|
180
180
|
* Set a property value
|
|
181
181
|
* If the property set doesn't exist, creates it automatically
|
|
182
182
|
* @param skipHistory - If true, don't add to mutation history (used for undo/redo)
|
|
183
|
+
* @param dataType - IFC measure dataType this value was scaled against at
|
|
184
|
+
* write time (e.g. an IDS correction, #3929/#3943), stored on the
|
|
185
|
+
* `PropertyMutation` for a read-side overlay that needs to convert it
|
|
186
|
+
* between unit frames. New, additive, optional — every existing caller
|
|
187
|
+
* is unaffected.
|
|
183
188
|
*/
|
|
184
|
-
setProperty(entityId: number, psetName: string, propName: string, value: PropertyValue, valueType?: PropertyValueType, unit?: string, skipHistory?: boolean): Mutation;
|
|
189
|
+
setProperty(entityId: number, psetName: string, propName: string, value: PropertyValue, valueType?: PropertyValueType, unit?: string, skipHistory?: boolean, dataType?: string): Mutation;
|
|
185
190
|
/**
|
|
186
191
|
* Delete a property
|
|
187
192
|
* @param skipHistory - If true, don't add to mutation history (used for undo/redo)
|
|
@@ -423,6 +428,36 @@ export declare class MutablePropertyView {
|
|
|
423
428
|
* Get mutations for a specific entity
|
|
424
429
|
*/
|
|
425
430
|
getMutationsForEntity(entityId: number): Mutation[];
|
|
431
|
+
/**
|
|
432
|
+
* The live overlay's CURRENT property mutation for one entity's specific
|
|
433
|
+
* pset+prop, or `undefined` when that exact key carries no override right
|
|
434
|
+
* now.
|
|
435
|
+
*
|
|
436
|
+
* Reads `propertyMutations` directly (the same map `getPropertyValue` and
|
|
437
|
+
* `hasChanges` consult) — never `mutationHistory` (see `getMutationsForEntity`
|
|
438
|
+
* above), which is append-only and does not shrink on undo. Undo re-applies
|
|
439
|
+
* the inverse mutation with `skipHistory=true` (`mutationSlice.ts`, "to
|
|
440
|
+
* avoid polluting mutation history"): that inverse call still writes
|
|
441
|
+
* through `setProperty`/`deleteProperty`, so `propertyMutations` — and thus
|
|
442
|
+
* this method — reflects the reverted (or, after redo, re-applied) value
|
|
443
|
+
* immediately, while `getMutationsForEntity` keeps returning the stale
|
|
444
|
+
* pre-undo entry.
|
|
445
|
+
*
|
|
446
|
+
* Unlike `getPropertyValue` (which collapses "no override", "override
|
|
447
|
+
* value is null", and "override is a DELETE marker" all down to a bare
|
|
448
|
+
* `null`), this returns the raw `PropertyMutation` so a caller projecting
|
|
449
|
+
* the overlay onto an EXTERNAL base it doesn't otherwise share with this
|
|
450
|
+
* view (e.g. the IDS bridge's `PropertyOverlayResolver`, #3929) can tell
|
|
451
|
+
* "nothing to apply here" apart from "apply a DELETE" apart from "apply a
|
|
452
|
+
* SET to null". Unlike `getEffectiveChanges()`, this does not require the
|
|
453
|
+
* view's own `getBasePropertiesForEntity` to already know the pset —
|
|
454
|
+
* `setProperty` always writes `propertyMutations` regardless of whether the
|
|
455
|
+
* pset is new-in-session or pre-existing (see its "Always store in
|
|
456
|
+
* propertyMutations for tracking" comment), so this stays correct for a
|
|
457
|
+
* view with no base wired at all (a `MutablePropertyView` overlay used
|
|
458
|
+
* purely as a delta against someone else's separate base).
|
|
459
|
+
*/
|
|
460
|
+
getPropertyMutation(entityId: number, psetName: string, propName: string): Readonly<PropertyMutation> | undefined;
|
|
426
461
|
/**
|
|
427
462
|
* Check if an entity currently carries an overlay change.
|
|
428
463
|
*
|
|
@@ -504,7 +539,10 @@ export declare class MutablePropertyView {
|
|
|
504
539
|
*/
|
|
505
540
|
clear(): void;
|
|
506
541
|
/**
|
|
507
|
-
* Apply a batch of mutations (e.g., from imported change set)
|
|
542
|
+
* Apply a batch of mutations (e.g., from imported change set). The
|
|
543
|
+
* dispatcher itself lives in `applyMutationsBatch` (./apply-mutations.js)
|
|
544
|
+
* — this method just supplies the two bits of private state it needs
|
|
545
|
+
* without exposing them publicly.
|
|
508
546
|
*/
|
|
509
547
|
applyMutations(mutations: Mutation[]): void;
|
|
510
548
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutable-property-view.d.ts","sourceRoot":"","sources":["../src/mutable-property-view.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAY,WAAW,EAAY,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"mutable-property-view.d.ts","sourceRoot":"","sources":["../src/mutable-property-view.ts"],"names":[],"mappings":"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"}
|