@ifc-lite/lists 2.3.2 → 3.0.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 +4 -3
- package/dist/condition-value-kind.d.ts +4 -0
- package/dist/condition-value-kind.d.ts.map +1 -0
- package/dist/condition-value-kind.js +28 -0
- package/dist/condition-value-kind.js.map +1 -0
- package/dist/engine.d.ts +2 -1
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +6 -5
- package/dist/engine.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/legacy-condition-migration.d.ts +22 -0
- package/dist/legacy-condition-migration.d.ts.map +1 -0
- package/dist/legacy-condition-migration.js +160 -0
- package/dist/legacy-condition-migration.js.map +1 -0
- package/dist/list-condition-matcher.d.ts +8 -0
- package/dist/list-condition-matcher.d.ts.map +1 -0
- package/dist/list-condition-matcher.js +8 -0
- package/dist/list-condition-matcher.js.map +1 -0
- package/dist/name-pattern.d.ts +2 -42
- package/dist/name-pattern.d.ts.map +1 -1
- package/dist/name-pattern.js +2 -118
- package/dist/name-pattern.js.map +1 -1
- package/dist/presets.js +1 -1
- package/dist/presets.js.map +1 -1
- package/dist/result-types.d.ts +73 -0
- package/dist/result-types.d.ts.map +1 -0
- package/dist/result-types.js +5 -0
- package/dist/result-types.js.map +1 -0
- package/dist/types.d.ts +23 -75
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -1
- package/package.json +7 -6
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @ifc-lite/lists
|
|
2
2
|
|
|
3
|
-
Configurable property tables and schedules from IFC data. Define a list once (entity types,
|
|
3
|
+
Configurable property tables and schedules from IFC data. Define a list once (entity types, Rules filter groups, columns, grouping) and execute it against model data to get typed rows, group summaries, and CSV output. The viewer evaluates Rules filters before the provider-only Lists engine builds rows.
|
|
4
4
|
|
|
5
5
|
## Install
|
|
6
6
|
|
|
@@ -27,9 +27,10 @@ const csv = listResultToCSV(result);
|
|
|
27
27
|
|
|
28
28
|
## Features
|
|
29
29
|
|
|
30
|
-
- `ListDefinition`: entity types,
|
|
30
|
+
- `ListDefinition`: entity types, Rules `FilterGroup[]`, columns, grouping, or an explicit express-ID scope per model
|
|
31
31
|
- Column sources: entity attributes, property sets, quantity sets, materials, classifications, spatial containers (storey, building, site, project), and source model
|
|
32
|
-
-
|
|
32
|
+
- Viewer filtering uses `@ifc-lite/rules` for `groups`. The provider-only `executeList` projects an already-filtered source set and rejects nonempty Rules filters, so callers cannot silently skip them.
|
|
33
|
+
- `migrateLegacyListDefinition` converts v1 JSON and earlier provider-only rows to `groups`: a property comparison becomes a `property` rule and every other Lists predicate a `listCondition` rule the Lists engine answers (`listConditionMatcher(provider)`). Only unreadable data stays in `unreadableConditions`. `legacyConditions` is for provider-only `executeList` callers (the SDK's flat conditions).
|
|
33
34
|
- Grouping with per-group summaries (`summariseListRows`)
|
|
34
35
|
- `discoverColumns` finds available columns from the actual model data
|
|
35
36
|
- CSV export with formula-injection guarding (`listResultToCSV`)
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { PropertyCondition } from './types.js';
|
|
2
|
+
export type ListConditionValueKind = 'number' | 'boolean' | 'text' | 'texts' | 'any';
|
|
3
|
+
export declare function listConditionValueKind(source: PropertyCondition['source'], propertyName: string): ListConditionValueKind;
|
|
4
|
+
//# sourceMappingURL=condition-value-kind.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"condition-value-kind.d.ts","sourceRoot":"","sources":["../src/condition-value-kind.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;AAErF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,sBAAsB,CAexH"}
|
|
@@ -0,0 +1,28 @@
|
|
|
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
|
+
/** What kind of value the Lists engine compares for a condition (#6190), so an
|
|
5
|
+
* editor offers the operators that can match it. It follows the engine's own
|
|
6
|
+
* reads (`getConditionValue`): a zone VOLUME mode is a number, `Straddles` a
|
|
7
|
+
* boolean, the zone name and the breakdown text, spatial levels, model file and
|
|
8
|
+
* attributes text; material and classification are several texts; a property
|
|
9
|
+
* may hold either, so it keeps every operator. */
|
|
10
|
+
import { isZoneVolumeMode } from './engine.js';
|
|
11
|
+
export function listConditionValueKind(source, propertyName) {
|
|
12
|
+
switch (source) {
|
|
13
|
+
case 'quantity':
|
|
14
|
+
case 'geometry': return 'number';
|
|
15
|
+
case 'property': return 'any';
|
|
16
|
+
case 'material':
|
|
17
|
+
case 'classification': return 'texts';
|
|
18
|
+
case 'zone': {
|
|
19
|
+
const mode = propertyName.toLowerCase();
|
|
20
|
+
if (isZoneVolumeMode(mode))
|
|
21
|
+
return 'number';
|
|
22
|
+
// The zone name, or every straddled zone joined, and the breakdown are text.
|
|
23
|
+
return mode === 'straddles' ? 'boolean' : 'text';
|
|
24
|
+
}
|
|
25
|
+
default: return 'text';
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=condition-value-kind.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"condition-value-kind.js","sourceRoot":"","sources":["../src/condition-value-kind.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;kDAKkD;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAK/C,MAAM,UAAU,sBAAsB,CAAC,MAAmC,EAAE,YAAoB;IAC9F,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU,CAAC,CAAC,OAAO,QAAQ,CAAC;QACjC,KAAK,UAAU,CAAC,CAAC,OAAO,KAAK,CAAC;QAC9B,KAAK,UAAU,CAAC;QAChB,KAAK,gBAAgB,CAAC,CAAC,OAAO,OAAO,CAAC;QACtC,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,IAAI,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;YACxC,IAAI,gBAAgB,CAAC,IAAI,CAAC;gBAAE,OAAO,QAAQ,CAAC;YAC5C,6EAA6E;YAC7E,OAAO,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;QACnD,CAAC;QACD,OAAO,CAAC,CAAC,OAAO,MAAM,CAAC;IACzB,CAAC;AACH,CAAC"}
|
package/dist/engine.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ListDataProvider, ListDefinition, ListResult, ListRow, ListGroup, ListGrouping, ListSummary, ListScheduleRow } from './types.js';
|
|
1
|
+
import type { ListDataProvider, ListDefinition, ListResult, ListRow, ListGroup, ListGrouping, ListSummary, ListScheduleRow, PropertyCondition } from './types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Execute a list definition against a data provider.
|
|
4
4
|
* Returns a flat table result with matched entities and column values.
|
|
@@ -47,6 +47,7 @@ export declare function groupPathKey(path: string[]): string;
|
|
|
47
47
|
* `[]` rather than inventing a single all-rows row.
|
|
48
48
|
*/
|
|
49
49
|
export declare function toScheduleRows(groups: ListGroup[] | undefined, levelCount: number): ListScheduleRow[];
|
|
50
|
+
export declare function matchesCondition(entityId: number, condition: PropertyCondition, provider: ListDataProvider): boolean;
|
|
50
51
|
/**
|
|
51
52
|
* `zone` column/condition modes that carry a VOLUME rather than a name.
|
|
52
53
|
*
|
package/dist/engine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,OAAO,EACP,SAAS,EACT,YAAY,EACZ,WAAW,EACX,eAAe,
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,OAAO,EACP,SAAS,EACT,YAAY,EACZ,WAAW,EACX,eAAe,EAEf,iBAAiB,EAElB,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE,cAAc,EAC1B,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,SAAY,GAClB,UAAU,CAkDZ;AAYD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,YAAY,GAAG,SAAS,GAAG,MAAM,EAAE,CAM9E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,cAAc,EAC1B,IAAI,EAAE,OAAO,EAAE,GACd;IAAE,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,WAAW,CAAA;CAAE,CAsEjD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAEnD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,eAAe,EAAE,CAWrG;AAyDD,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,iBAAiB,EAC5B,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAoCT;AA2FD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,gBAAgB,kBAAkB,CAAC;AAChD,eAAO,MAAM,mBAAmB,4BAA4B,CAAC;AAM7D;;0DAE0D;AAC1D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAElE;AA4TD,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,SAAM,GAAG,MAAM,CAgD3E"}
|
package/dist/engine.js
CHANGED
|
@@ -10,8 +10,9 @@ import { withAggregateInheritance } from './condition-inherit.js';
|
|
|
10
10
|
* Returns a flat table result with matched entities and column values.
|
|
11
11
|
*/
|
|
12
12
|
export function executeList(definition, provider, modelId = 'default') {
|
|
13
|
+
if (definition.groups.some((group) => group.rules.length > 0))
|
|
14
|
+
throw new Error('executeList requires Rules groups to be evaluated before provider-only execution');
|
|
13
15
|
const startTime = performance.now();
|
|
14
|
-
// Step 1: Resolve source set (which entities match)
|
|
15
16
|
const matchedIds = resolveSourceSet(definition, provider, modelId);
|
|
16
17
|
// Step 2: Extract column values for matched entities. `columnMeta` collects,
|
|
17
18
|
// per quantity/property column, the QuantityType / measure dataType of the
|
|
@@ -186,7 +187,7 @@ export function toScheduleRows(groups, levelCount) {
|
|
|
186
187
|
// Source Set Resolution
|
|
187
188
|
// ============================================================================
|
|
188
189
|
function resolveSourceSet(definition, provider, modelId) {
|
|
189
|
-
const { entityTypes,
|
|
190
|
+
const { entityTypes, legacyConditions = [], expressIdsByModel } = definition;
|
|
190
191
|
let entityIds;
|
|
191
192
|
if (expressIdsByModel) {
|
|
192
193
|
// Explicit snapshot scope (e.g. from a filter result) — target exactly
|
|
@@ -213,10 +214,10 @@ function resolveSourceSet(definition, provider, modelId) {
|
|
|
213
214
|
entityIds = chunks.length === 1 ? chunks[0] : chunks.flat();
|
|
214
215
|
}
|
|
215
216
|
// Apply conditions as filters
|
|
216
|
-
if (
|
|
217
|
+
if (legacyConditions.length === 0) {
|
|
217
218
|
return entityIds;
|
|
218
219
|
}
|
|
219
|
-
return entityIds.filter(id => matchesAllConditions(id,
|
|
220
|
+
return entityIds.filter(id => matchesAllConditions(id, legacyConditions, provider));
|
|
220
221
|
}
|
|
221
222
|
function matchesAllConditions(entityId, conditions, provider) {
|
|
222
223
|
for (const condition of conditions) {
|
|
@@ -226,7 +227,7 @@ function matchesAllConditions(entityId, conditions, provider) {
|
|
|
226
227
|
}
|
|
227
228
|
return true;
|
|
228
229
|
}
|
|
229
|
-
function matchesCondition(entityId, condition, provider) {
|
|
230
|
+
export function matchesCondition(entityId, condition, provider) {
|
|
230
231
|
// Material and classification are multi-valued (an element can have many
|
|
231
232
|
// material layers or classification refs) so they use any/none semantics
|
|
232
233
|
// rather than the scalar comparison below.
|
package/dist/engine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
export type { ListDataProvider, ListDefinition, ListResult, ListRow, CellValue, ColumnDefinition, PropertyCondition, ConditionOperator, ListClassificationRef, ListGrouping, ListGroup, ListSummary, ListScheduleRow, DiscoveredColumns, } from './types.js';
|
|
1
|
+
export type { ListDataProvider, ListDefinition, ListResult, ListRow, CellValue, ColumnDefinition, PropertyCondition, ConditionOperator, UnreadableListCondition, ListClassificationRef, ListGrouping, ListGroup, ListSummary, ListScheduleRow, DiscoveredColumns, } from './types.js';
|
|
2
2
|
export type { ListModelTagScope } from './model-tag-scope.js';
|
|
3
3
|
export { ENTITY_ATTRIBUTES, type EntityAttribute } from './entity-attributes.js';
|
|
4
4
|
export { executeList, listResultToCSV, summariseListRows, groupingColumnIds, groupPathKey, toScheduleRows, ZONE_MODE_VOLUME, ZONE_MODE_BREAKDOWN, isZoneVolumeMode, } from './engine.js';
|
|
5
5
|
export { compileNameMatcher, isNamePattern } from './name-pattern.js';
|
|
6
|
+
export { isSavedListShape, migrateLegacyListConditions, migrateLegacyListDefinition } from './legacy-condition-migration.js';
|
|
7
|
+
export { listConditionMatcher } from './list-condition-matcher.js';
|
|
8
|
+
export { listConditionValueKind, type ListConditionValueKind } from './condition-value-kind.js';
|
|
6
9
|
export { discoverColumns } from './discovery.js';
|
|
7
10
|
export { LIST_PRESETS } from './presets.js';
|
|
8
11
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,OAAO,EACP,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,YAAY,EACZ,SAAS,EACT,WAAW,EACX,eAAe,EACf,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGjF,OAAO,EACL,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,EAAE,cAAc,EAChG,gBAAgB,EAAE,mBAAmB,EAAE,gBAAgB,GACxD,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,OAAO,EACP,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,YAAY,EACZ,SAAS,EACT,WAAW,EACX,eAAe,EACf,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGjF,OAAO,EACL,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,EAAE,cAAc,EAChG,gBAAgB,EAAE,mBAAmB,EAAE,gBAAgB,GACxD,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC7H,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAGhG,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGjD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,9 @@ export { ENTITY_ATTRIBUTES } from './entity-attributes.js';
|
|
|
6
6
|
export { executeList, listResultToCSV, summariseListRows, groupingColumnIds, groupPathKey, toScheduleRows, ZONE_MODE_VOLUME, ZONE_MODE_BREAKDOWN, isZoneVolumeMode, } from './engine.js';
|
|
7
7
|
// Name pattern matching (Bonsai-style `/regex/` set/property names)
|
|
8
8
|
export { compileNameMatcher, isNamePattern } from './name-pattern.js';
|
|
9
|
+
export { isSavedListShape, migrateLegacyListConditions, migrateLegacyListDefinition } from './legacy-condition-migration.js';
|
|
10
|
+
export { listConditionMatcher } from './list-condition-matcher.js';
|
|
11
|
+
export { listConditionValueKind } from './condition-value-kind.js';
|
|
9
12
|
// Column discovery
|
|
10
13
|
export { discoverColumns } from './discovery.js';
|
|
11
14
|
// Presets
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;+DAE+D;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAqB/D,OAAO,EAAE,iBAAiB,EAAwB,MAAM,wBAAwB,CAAC;AAEjF,SAAS;AACT,OAAO,EACL,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,EAAE,cAAc,EAChG,gBAAgB,EAAE,mBAAmB,EAAE,gBAAgB,GACxD,MAAM,aAAa,CAAC;AAErB,oEAAoE;AACpE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC7H,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAA+B,MAAM,2BAA2B,CAAC;AAEhG,mBAAmB;AACnB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,UAAU;AACV,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/** Decode saved List conditions into Rules groups (#5894, #6190). A property
|
|
2
|
+
* comparison becomes a canonical `property` rule; every other Lists predicate
|
|
3
|
+
* becomes a `listCondition` rule, which the Lists engine still answers, so no
|
|
4
|
+
* saved predicate changes the rows it keeps. Only data no build can evaluate
|
|
5
|
+
* (malformed members, an unknown operator or source, a rule this build cannot
|
|
6
|
+
* read) stays in `unreadableConditions`, visible and removable. */
|
|
7
|
+
import { type FilterGroup } from '@ifc-lite/rules';
|
|
8
|
+
import type { ListDefinition, UnreadableListCondition } from './types.js';
|
|
9
|
+
type MigrationResult = {
|
|
10
|
+
groups: FilterGroup[];
|
|
11
|
+
unreadableConditions: UnreadableListCondition[];
|
|
12
|
+
};
|
|
13
|
+
/** Saved JSON crosses a trust boundary before the typed Lists API sees it.
|
|
14
|
+
* Group CONTENTS are checked by `migrateLegacyListDefinition`, which keeps an
|
|
15
|
+
* unreadable rule visible instead of rejecting the whole list. */
|
|
16
|
+
export declare function isSavedListShape(value: unknown): value is Record<string, unknown>;
|
|
17
|
+
export declare function migrateLegacyListConditions(conditions: readonly unknown[]): MigrationResult;
|
|
18
|
+
/** Normalize a saved definition before it enters the public Lists API:
|
|
19
|
+
* v1 `conditions` and earlier provider-only rows become Rules, idempotently. */
|
|
20
|
+
export declare function migrateLegacyListDefinition(definition: unknown): ListDefinition;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=legacy-condition-migration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy-condition-migration.d.ts","sourceRoot":"","sources":["../src/legacy-condition-migration.ts"],"names":[],"mappings":"AAIA;;;;;mEAKmE;AACnE,OAAO,EAEL,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,cAAc,EAAqB,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE7F,KAAK,eAAe,GAAG;IAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAAC,oBAAoB,EAAE,uBAAuB,EAAE,CAAA;CAAE,CAAC;AAWlG;;kEAEkE;AAClE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAyBjF;AAkCD,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,SAAS,OAAO,EAAE,GAAG,eAAe,CAS3F;AAkCD;gFACgF;AAChF,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,OAAO,GAAG,cAAc,CAwB/E"}
|
|
@@ -0,0 +1,160 @@
|
|
|
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
|
+
/** Decode saved List conditions into Rules groups (#5894, #6190). A property
|
|
5
|
+
* comparison becomes a canonical `property` rule; every other Lists predicate
|
|
6
|
+
* becomes a `listCondition` rule, which the Lists engine still answers, so no
|
|
7
|
+
* saved predicate changes the rows it keeps. Only data no build can evaluate
|
|
8
|
+
* (malformed members, an unknown operator or source, a rule this build cannot
|
|
9
|
+
* read) stays in `unreadableConditions`, visible and removable. */
|
|
10
|
+
import { LIST_CONDITION_OPERATORS, LIST_CONDITION_SOURCES, Rule, isFilterRule, legacyListOperatorToFilterRule, } from '@ifc-lite/rules';
|
|
11
|
+
import { isNamePattern } from './name-pattern.js';
|
|
12
|
+
const isRecord = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
13
|
+
const COLUMN_SOURCES = new Set(['attribute', 'property', 'quantity', 'material', 'classification', 'spatial', 'model', 'zone', 'geometry']);
|
|
14
|
+
const UNREADABLE_REASONS = new Set(['unsupported-source', 'unsupported-attribute', 'name-pattern', 'inherit', 'operator', 'invalid-value', 'mixed-groups']);
|
|
15
|
+
const OPERATORS = new Set(LIST_CONDITION_OPERATORS);
|
|
16
|
+
const SOURCES = new Set(LIST_CONDITION_SOURCES);
|
|
17
|
+
/** Saved JSON crosses a trust boundary before the typed Lists API sees it.
|
|
18
|
+
* Group CONTENTS are checked by `migrateLegacyListDefinition`, which keeps an
|
|
19
|
+
* unreadable rule visible instead of rejecting the whole list. */
|
|
20
|
+
export function isSavedListShape(value) {
|
|
21
|
+
if (!isRecord(value) || typeof value.id !== 'string' || value.id.length === 0 || typeof value.name !== 'string'
|
|
22
|
+
|| typeof value.createdAt !== 'number' || !Number.isFinite(value.createdAt)
|
|
23
|
+
|| typeof value.updatedAt !== 'number' || !Number.isFinite(value.updatedAt)
|
|
24
|
+
|| !Array.isArray(value.entityTypes) || !value.entityTypes.every((item) => typeof item === 'number' && Number.isInteger(item))
|
|
25
|
+
|| !Array.isArray(value.columns) || !value.columns.every((column) => isRecord(column)
|
|
26
|
+
&& typeof column.id === 'string' && typeof column.source === 'string' && COLUMN_SOURCES.has(column.source)
|
|
27
|
+
&& typeof column.propertyName === 'string'))
|
|
28
|
+
return false;
|
|
29
|
+
if (value.groups !== undefined && !Array.isArray(value.groups))
|
|
30
|
+
return false;
|
|
31
|
+
if (value.unreadableConditions !== undefined && (!Array.isArray(value.unreadableConditions)
|
|
32
|
+
|| !value.unreadableConditions.every((row) => isRecord(row) && ((row.reason === 'invalid-condition' && 'condition' in row)
|
|
33
|
+
|| (typeof row.reason === 'string' && UNREADABLE_REASONS.has(row.reason) && isStoredCondition(row.condition))))))
|
|
34
|
+
return false;
|
|
35
|
+
if (value.expressIdsByModel !== undefined && (!isRecord(value.expressIdsByModel)
|
|
36
|
+
|| !Object.values(value.expressIdsByModel).every((ids) => Array.isArray(ids)
|
|
37
|
+
&& ids.every((id) => typeof id === 'number' && Number.isInteger(id) && id > 0))))
|
|
38
|
+
return false;
|
|
39
|
+
if (value.grouping !== undefined && (!isRecord(value.grouping)
|
|
40
|
+
|| typeof value.grouping.columnId !== 'string'
|
|
41
|
+
|| !Array.isArray(value.grouping.sumColumnIds)
|
|
42
|
+
|| !value.grouping.sumColumnIds.every((id) => typeof id === 'string')
|
|
43
|
+
|| (value.grouping.columnIds !== undefined && (!Array.isArray(value.grouping.columnIds)
|
|
44
|
+
|| !value.grouping.columnIds.every((id) => typeof id === 'string')))
|
|
45
|
+
|| (value.grouping.view !== undefined && value.grouping.view !== 'nested' && value.grouping.view !== 'schedule')))
|
|
46
|
+
return false;
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
function isStoredCondition(value) {
|
|
50
|
+
if (typeof value !== 'object' || value === null)
|
|
51
|
+
return false;
|
|
52
|
+
const row = value;
|
|
53
|
+
return typeof row.source === 'string' && typeof row.propertyName === 'string'
|
|
54
|
+
&& typeof row.operator === 'string'
|
|
55
|
+
&& (row.psetName === undefined || typeof row.psetName === 'string')
|
|
56
|
+
&& (row.inherit === undefined || row.inherit === 'type' || row.inherit === 'aggregation');
|
|
57
|
+
}
|
|
58
|
+
/** One saved condition as the Rules rule that keeps its rows, or why it has none. */
|
|
59
|
+
function convertCondition(condition) {
|
|
60
|
+
if (!isStoredCondition(condition))
|
|
61
|
+
return { unreadable: { condition, reason: 'invalid-condition' } };
|
|
62
|
+
const { source, psetName, propertyName, operator, value, inherit } = condition;
|
|
63
|
+
if (typeof value !== 'string' && typeof value !== 'number' && typeof value !== 'boolean') {
|
|
64
|
+
return { unreadable: { condition, reason: 'invalid-value' } };
|
|
65
|
+
}
|
|
66
|
+
if (!OPERATORS.has(operator))
|
|
67
|
+
return { unreadable: { condition, reason: 'operator' } };
|
|
68
|
+
if (!SOURCES.has(source))
|
|
69
|
+
return { unreadable: { condition, reason: 'unsupported-source' } };
|
|
70
|
+
// A plain property comparison has a canonical form with the v1 first-match contract (#5894).
|
|
71
|
+
if (source === 'property' && !inherit && !isNamePattern(psetName ?? '') && !isNamePattern(propertyName)) {
|
|
72
|
+
const converted = legacyListOperatorToFilterRule(operator, {
|
|
73
|
+
kind: 'property', setName: psetName ?? '', propertyName,
|
|
74
|
+
nameCaseMode: 'exact', legacyListFirst: true, op: 'eq', value: String(value),
|
|
75
|
+
});
|
|
76
|
+
if (converted.status === 'readable')
|
|
77
|
+
return { rule: converted.value };
|
|
78
|
+
}
|
|
79
|
+
return { rule: Rule.listCondition({
|
|
80
|
+
source, propertyName, operator, value,
|
|
81
|
+
...(psetName !== undefined ? { psetName } : {}), ...(inherit ? { inherit } : {}),
|
|
82
|
+
}) };
|
|
83
|
+
}
|
|
84
|
+
export function migrateLegacyListConditions(conditions) {
|
|
85
|
+
const rules = [];
|
|
86
|
+
const unreadableConditions = [];
|
|
87
|
+
for (const condition of conditions) {
|
|
88
|
+
const converted = convertCondition(condition);
|
|
89
|
+
if ('rule' in converted)
|
|
90
|
+
rules.push(converted.rule);
|
|
91
|
+
else
|
|
92
|
+
unreadableConditions.push(converted.unreadable);
|
|
93
|
+
}
|
|
94
|
+
return { groups: conjoin([], rules), unreadableConditions };
|
|
95
|
+
}
|
|
96
|
+
/** Groups OR; saved flat conditions narrow every one. AND them into each
|
|
97
|
+
* group, splitting an OR group into one AND group per rule, so
|
|
98
|
+
* `(a OR b) AND c` is kept as `(a AND c) OR (b AND c)`. */
|
|
99
|
+
function conjoin(groups, rules) {
|
|
100
|
+
if (rules.length === 0)
|
|
101
|
+
return [...groups];
|
|
102
|
+
const active = groups.filter((group) => group.rules.length > 0);
|
|
103
|
+
if (active.length === 0)
|
|
104
|
+
return [{ combinator: 'AND', rules: [...rules] }];
|
|
105
|
+
return active.flatMap((group) => group.combinator === 'AND' || group.rules.length === 1
|
|
106
|
+
? [{ combinator: 'AND', rules: [...group.rules, ...rules] }]
|
|
107
|
+
: group.rules.map((rule) => ({ combinator: 'AND', rules: [rule, ...rules] })));
|
|
108
|
+
}
|
|
109
|
+
/** Rules this build cannot read leave their group as visible, removable rows
|
|
110
|
+
* rather than making the whole saved list disappear. */
|
|
111
|
+
function readGroups(raw) {
|
|
112
|
+
const groups = [];
|
|
113
|
+
const unreadableConditions = [];
|
|
114
|
+
for (const group of raw) {
|
|
115
|
+
if (!isRecord(group) || !Array.isArray(group.rules) || (group.combinator !== 'AND' && group.combinator !== 'OR')) {
|
|
116
|
+
unreadableConditions.push({ condition: group, reason: 'invalid-condition' });
|
|
117
|
+
continue;
|
|
118
|
+
}
|
|
119
|
+
const rules = [];
|
|
120
|
+
for (const rule of group.rules) {
|
|
121
|
+
if (isFilterRule(rule))
|
|
122
|
+
rules.push(rule);
|
|
123
|
+
else
|
|
124
|
+
unreadableConditions.push({ condition: rule, reason: 'invalid-condition' });
|
|
125
|
+
}
|
|
126
|
+
groups.push({ rules, combinator: group.combinator });
|
|
127
|
+
}
|
|
128
|
+
return { groups, unreadableConditions };
|
|
129
|
+
}
|
|
130
|
+
/** Normalize a saved definition before it enters the public Lists API:
|
|
131
|
+
* v1 `conditions` and earlier provider-only rows become Rules, idempotently. */
|
|
132
|
+
export function migrateLegacyListDefinition(definition) {
|
|
133
|
+
if (!isSavedListShape(definition))
|
|
134
|
+
throw new Error('Invalid saved list definition');
|
|
135
|
+
const { conditions, groups: rawGroups, unreadableConditions: saved, ...rest } = definition;
|
|
136
|
+
const read = readGroups(rawGroups ?? []);
|
|
137
|
+
const rules = [];
|
|
138
|
+
const unreadable = [...read.unreadableConditions];
|
|
139
|
+
// Rows saved while the scoped compatibility editor existed: convertible ones become rules.
|
|
140
|
+
for (const row of saved ?? []) {
|
|
141
|
+
const converted = row.reason === 'invalid-condition' ? null : convertCondition(row.condition);
|
|
142
|
+
if (converted && 'rule' in converted)
|
|
143
|
+
rules.push(converted.rule);
|
|
144
|
+
else
|
|
145
|
+
unreadable.push(row);
|
|
146
|
+
}
|
|
147
|
+
const legacy = conditions === undefined ? [] : Array.isArray(conditions) ? conditions : [conditions];
|
|
148
|
+
for (const condition of legacy) {
|
|
149
|
+
const converted = convertCondition(condition);
|
|
150
|
+
if ('rule' in converted)
|
|
151
|
+
rules.push(converted.rule);
|
|
152
|
+
else
|
|
153
|
+
unreadable.push(converted.unreadable);
|
|
154
|
+
}
|
|
155
|
+
return {
|
|
156
|
+
...rest, groups: conjoin(read.groups, rules),
|
|
157
|
+
...(unreadable.length > 0 || saved !== undefined ? { unreadableConditions: unreadable } : {}),
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=legacy-condition-migration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy-condition-migration.js","sourceRoot":"","sources":["../src/legacy-condition-migration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** The reader behind Rules' `listCondition` adapter (#6190): the Lists
|
|
2
|
+
* engine's own predicate, so a condition inside a Rules group keeps exactly
|
|
3
|
+
* the rows it keeps as a list scope. Attach one per model to the evaluator
|
|
4
|
+
* model (`EvaluatorModel.listConditions`). */
|
|
5
|
+
import type { ListConditionMatcher } from '@ifc-lite/rules';
|
|
6
|
+
import type { ListDataProvider } from './types.js';
|
|
7
|
+
export declare function listConditionMatcher(provider: ListDataProvider): ListConditionMatcher;
|
|
8
|
+
//# sourceMappingURL=list-condition-matcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-condition-matcher.d.ts","sourceRoot":"","sources":["../src/list-condition-matcher.ts"],"names":[],"mappings":"AAIA;;;8CAG8C;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,oBAAoB,CAErF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
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
|
+
import { matchesCondition } from './engine.js';
|
|
5
|
+
export function listConditionMatcher(provider) {
|
|
6
|
+
return (expressId, rule) => matchesCondition(expressId, rule, provider);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=list-condition-matcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-condition-matcher.js","sourceRoot":"","sources":["../src/list-condition-matcher.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAO/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/C,MAAM,UAAU,oBAAoB,CAAC,QAA0B;IAC7D,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC1E,CAAC"}
|
package/dist/name-pattern.d.ts
CHANGED
|
@@ -1,43 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export declare function isNamePattern(pattern: string): boolean;
|
|
4
|
-
/**
|
|
5
|
-
* Returns a human-readable rejection reason when `source` is not safe to
|
|
6
|
-
* compile and run `.test()` with, or `undefined` when it's fine. Pure, never
|
|
7
|
-
* throws — delegates to `@ifc-lite/regex-guard`'s `assertGuardedRegexPattern`
|
|
8
|
-
* so this package shares the same catastrophic-backtracking-shape and
|
|
9
|
-
* length-cap checks as `@ifc-lite/ids`, `@ifc-lite/extensions` and
|
|
10
|
-
* `@ifc-lite/mutations`, instead of carrying its own copy. Exposed so a
|
|
11
|
-
* caller that wants to reject a dangerous pattern WITHOUT triggering
|
|
12
|
-
* `compileNameMatcher`'s throw (e.g. a live "does this pattern look right"
|
|
13
|
-
* preview) can check first.
|
|
14
|
-
*/
|
|
15
|
-
export declare function unsafeNamePatternReason(source: string): string | undefined;
|
|
16
|
-
/**
|
|
17
|
-
* Compile a name pattern into a predicate. `/body/flags` compiles to a RegExp;
|
|
18
|
-
* anything else (including a malformed literal, which is logged) becomes an
|
|
19
|
-
* exact, case-sensitive match.
|
|
20
|
-
*
|
|
21
|
-
* `compileNameMatcher` hands its returned predicate straight to `.test()`
|
|
22
|
-
* against untrusted data: a viewer list column, an SDK `psetName`/`propName`
|
|
23
|
-
* argument, or an LLM/agent-authored sandbox script's own call arguments
|
|
24
|
-
* (`packages/sandbox/src/bridge-query.ts`'s `property` tool forwards its
|
|
25
|
-
* args unmodified into `sdk.property` → `compileNameMatcher`, and the regex
|
|
26
|
-
* compiles and runs on the HOST's main thread, outside the QuickJS sandbox —
|
|
27
|
-
* a pattern the sandboxed script "owns" can hang the real browser tab). For
|
|
28
|
-
* that reason, before compiling a `/regex/` literal's body, this runs it
|
|
29
|
-
* through `@ifc-lite/regex-guard`'s `assertGuardedRegexPattern`, which
|
|
30
|
-
* rejects the well-known catastrophic-backtracking shapes and overlong
|
|
31
|
-
* patterns.
|
|
32
|
-
*
|
|
33
|
-
* Throws a plain `Error` — naming the pattern and the reason — when the body
|
|
34
|
-
* is syntactically valid but rejected by the guard: unlike a malformed
|
|
35
|
-
* literal, there is no safe fallback here, because the whole point of
|
|
36
|
-
* rejecting it is to never call `.test()` with it. A caller that cannot let
|
|
37
|
-
* an exception propagate (the sandbox bridge, in particular) MUST catch
|
|
38
|
-
* this — see the callers' own comments for why a throw is safe to cross
|
|
39
|
-
* that boundary.
|
|
40
|
-
*/
|
|
41
|
-
export declare function compileNameMatcher(pattern: string): NameMatcher;
|
|
42
|
-
export {};
|
|
1
|
+
/** Preserve the Lists API while the shared rules engine uses the same matcher. */
|
|
2
|
+
export { compileNameMatcher, isNamePattern, unsafeNamePatternReason } from '@ifc-lite/regex-guard';
|
|
43
3
|
//# sourceMappingURL=name-pattern.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"name-pattern.d.ts","sourceRoot":"","sources":["../src/name-pattern.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"name-pattern.d.ts","sourceRoot":"","sources":["../src/name-pattern.ts"],"names":[],"mappings":"AAIA,kFAAkF;AAClF,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/name-pattern.js
CHANGED
|
@@ -1,122 +1,6 @@
|
|
|
1
1
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
2
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
-
/**
|
|
5
|
-
|
|
6
|
-
*
|
|
7
|
-
* A name wrapped in slashes (`/Qto_.*BaseQuantities/`, optionally with trailing
|
|
8
|
-
* flags such as `/qto_.+/i`) is treated as a regular expression matched against
|
|
9
|
-
* the candidate name; anything else is an exact, case-sensitive string match
|
|
10
|
-
* (the historical behaviour). This lets one column / query pull a value from
|
|
11
|
-
* several property or quantity sets at once — e.g. `NetVolume` from
|
|
12
|
-
* `Qto_WallBaseQuantities` AND `Qto_SlabBaseQuantities` — the way Bonsai's
|
|
13
|
-
* `/regex/` syntax works (issue #1591). IFC set / property names never contain
|
|
14
|
-
* slashes, so the `/.../` form is unambiguous.
|
|
15
|
-
*/
|
|
16
|
-
import { assertGuardedRegexPattern, UnsafeRegexPatternError } from '@ifc-lite/regex-guard';
|
|
17
|
-
// Compiled matchers are cached by pattern string: `findPropertyEntry` /
|
|
18
|
-
// `findQuantityEntry` run per row, and the pattern is fixed per column, so
|
|
19
|
-
// without this a regex column would recompile its RegExp for every element.
|
|
20
|
-
// Distinct patterns are bounded by the user's column/query configs; the cap is
|
|
21
|
-
// a backstop against a pathological loop that mints unique patterns.
|
|
22
|
-
const CACHE_CAP = 256;
|
|
23
|
-
const matcherCache = new Map();
|
|
24
|
-
/** True when `pattern` uses the `/regex/` form (a valid slash-delimited literal). */
|
|
25
|
-
export function isNamePattern(pattern) {
|
|
26
|
-
return parseRegexLiteral(pattern) !== null;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Returns a human-readable rejection reason when `source` is not safe to
|
|
30
|
-
* compile and run `.test()` with, or `undefined` when it's fine. Pure, never
|
|
31
|
-
* throws — delegates to `@ifc-lite/regex-guard`'s `assertGuardedRegexPattern`
|
|
32
|
-
* so this package shares the same catastrophic-backtracking-shape and
|
|
33
|
-
* length-cap checks as `@ifc-lite/ids`, `@ifc-lite/extensions` and
|
|
34
|
-
* `@ifc-lite/mutations`, instead of carrying its own copy. Exposed so a
|
|
35
|
-
* caller that wants to reject a dangerous pattern WITHOUT triggering
|
|
36
|
-
* `compileNameMatcher`'s throw (e.g. a live "does this pattern look right"
|
|
37
|
-
* preview) can check first.
|
|
38
|
-
*/
|
|
39
|
-
export function unsafeNamePatternReason(source) {
|
|
40
|
-
try {
|
|
41
|
-
assertGuardedRegexPattern(source);
|
|
42
|
-
return undefined;
|
|
43
|
-
}
|
|
44
|
-
catch (err) {
|
|
45
|
-
if (err instanceof UnsafeRegexPatternError)
|
|
46
|
-
return err.reason;
|
|
47
|
-
throw err;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Compile a name pattern into a predicate. `/body/flags` compiles to a RegExp;
|
|
52
|
-
* anything else (including a malformed literal, which is logged) becomes an
|
|
53
|
-
* exact, case-sensitive match.
|
|
54
|
-
*
|
|
55
|
-
* `compileNameMatcher` hands its returned predicate straight to `.test()`
|
|
56
|
-
* against untrusted data: a viewer list column, an SDK `psetName`/`propName`
|
|
57
|
-
* argument, or an LLM/agent-authored sandbox script's own call arguments
|
|
58
|
-
* (`packages/sandbox/src/bridge-query.ts`'s `property` tool forwards its
|
|
59
|
-
* args unmodified into `sdk.property` → `compileNameMatcher`, and the regex
|
|
60
|
-
* compiles and runs on the HOST's main thread, outside the QuickJS sandbox —
|
|
61
|
-
* a pattern the sandboxed script "owns" can hang the real browser tab). For
|
|
62
|
-
* that reason, before compiling a `/regex/` literal's body, this runs it
|
|
63
|
-
* through `@ifc-lite/regex-guard`'s `assertGuardedRegexPattern`, which
|
|
64
|
-
* rejects the well-known catastrophic-backtracking shapes and overlong
|
|
65
|
-
* patterns.
|
|
66
|
-
*
|
|
67
|
-
* Throws a plain `Error` — naming the pattern and the reason — when the body
|
|
68
|
-
* is syntactically valid but rejected by the guard: unlike a malformed
|
|
69
|
-
* literal, there is no safe fallback here, because the whole point of
|
|
70
|
-
* rejecting it is to never call `.test()` with it. A caller that cannot let
|
|
71
|
-
* an exception propagate (the sandbox bridge, in particular) MUST catch
|
|
72
|
-
* this — see the callers' own comments for why a throw is safe to cross
|
|
73
|
-
* that boundary.
|
|
74
|
-
*/
|
|
75
|
-
export function compileNameMatcher(pattern) {
|
|
76
|
-
const cached = matcherCache.get(pattern);
|
|
77
|
-
if (cached)
|
|
78
|
-
return cached;
|
|
79
|
-
const re = parseRegexLiteral(pattern);
|
|
80
|
-
if (re) {
|
|
81
|
-
try {
|
|
82
|
-
assertGuardedRegexPattern(re.source);
|
|
83
|
-
}
|
|
84
|
-
catch (err) {
|
|
85
|
-
if (err instanceof UnsafeRegexPatternError) {
|
|
86
|
-
throw new Error(`[lists] rejected name pattern ${JSON.stringify(pattern)}: ${err.reason}`);
|
|
87
|
-
}
|
|
88
|
-
throw err;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
const matcher = re ? (name) => re.test(name) : (name) => name === pattern;
|
|
92
|
-
if (matcherCache.size >= CACHE_CAP)
|
|
93
|
-
matcherCache.clear();
|
|
94
|
-
matcherCache.set(pattern, matcher);
|
|
95
|
-
return matcher;
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Parse a `/body/flags` regex literal, or return null for a plain name. A
|
|
99
|
-
* malformed literal is NOT silently swallowed: it's logged and treated as a
|
|
100
|
-
* plain name (so it matches only itself), keeping behaviour predictable.
|
|
101
|
-
*
|
|
102
|
-
* This only validates SYNTAX (does it compile at all) — `isNamePattern` uses
|
|
103
|
-
* it as-is, unaffected by the ReDoS guard above, because merely
|
|
104
|
-
* *constructing* a RegExp never runs it and so cannot ReDoS; only
|
|
105
|
-
* `compileNameMatcher`'s returned predicate ever calls `.test()`.
|
|
106
|
-
*/
|
|
107
|
-
function parseRegexLiteral(pattern) {
|
|
108
|
-
const m = /^\/(.+)\/([a-z]*)$/.exec(pattern);
|
|
109
|
-
if (!m)
|
|
110
|
-
return null;
|
|
111
|
-
try {
|
|
112
|
-
// Strip the stateful `g`/`y` flags: the compiled matcher is cached and
|
|
113
|
-
// shared across rows, and `.test()` on a global/sticky RegExp advances
|
|
114
|
-
// `lastIndex`, which would make matching alternate true/false per call.
|
|
115
|
-
return new RegExp(m[1], m[2].replace(/[gy]/g, ''));
|
|
116
|
-
}
|
|
117
|
-
catch (err) {
|
|
118
|
-
console.warn(`[lists] invalid name pattern ${JSON.stringify(pattern)}: ${err.message}`);
|
|
119
|
-
return null;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
4
|
+
/** Preserve the Lists API while the shared rules engine uses the same matcher. */
|
|
5
|
+
export { compileNameMatcher, isNamePattern, unsafeNamePatternReason } from '@ifc-lite/regex-guard';
|
|
122
6
|
//# sourceMappingURL=name-pattern.js.map
|
package/dist/name-pattern.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"name-pattern.js","sourceRoot":"","sources":["../src/name-pattern.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D
|
|
1
|
+
{"version":3,"file":"name-pattern.js","sourceRoot":"","sources":["../src/name-pattern.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D,kFAAkF;AAClF,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/presets.js
CHANGED
package/dist/presets.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,SAAS,UAAU,CACjB,IAAY,EACZ,WAAmB,EACnB,WAA0B,EAC1B,OAAkC;IAElC,OAAO;QACL,EAAE,EAAE,UAAU,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;QACvD,IAAI;QACJ,WAAW;QACX,SAAS,EAAE,CAAC;QACZ,SAAS,EAAE,CAAC;QACZ,WAAW;QACX,
|
|
1
|
+
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/** Result rows, grouping, and discovery shapes for Lists. */
|
|
2
|
+
import type { ColumnDefinition } from './types.js';
|
|
3
|
+
export interface ListResult {
|
|
4
|
+
columns: ColumnDefinition[];
|
|
5
|
+
rows: ListRow[];
|
|
6
|
+
/** Total matched entities before pagination */
|
|
7
|
+
totalCount: number;
|
|
8
|
+
/** Execution time in ms */
|
|
9
|
+
executionTime: number;
|
|
10
|
+
/** Per-group breakdown — present only when `grouping` is configured. */
|
|
11
|
+
groups?: ListGroup[];
|
|
12
|
+
/** Whole-result aggregates (count + per-column sums). Present when
|
|
13
|
+
* `grouping` is configured. */
|
|
14
|
+
summary?: ListSummary;
|
|
15
|
+
}
|
|
16
|
+
/** One group in a grouped list result. With multi-criteria grouping (issue
|
|
17
|
+
* #1790) groups are emitted as a FLAT pre-order list: each parent group is
|
|
18
|
+
* immediately followed by its subgroups (`level` gives the nesting depth). */
|
|
19
|
+
export interface ListGroup {
|
|
20
|
+
/** Opaque unique group key - the JSON encoding of `path` (see
|
|
21
|
+
* `groupPathKey`), collision-free even when a model-derived label contains
|
|
22
|
+
* separator-like characters. */
|
|
23
|
+
key: string;
|
|
24
|
+
/** Display label for the group header (this level's value only). */
|
|
25
|
+
label: string;
|
|
26
|
+
/** Number of rows in the group (the Count aggregate, issue #1790). */
|
|
27
|
+
count: number;
|
|
28
|
+
/** columnId → summed numeric value, for the configured sum columns. */
|
|
29
|
+
sums: Record<string, number>;
|
|
30
|
+
/** 0-based nesting depth (0 = outermost grouping column). Always emitted by
|
|
31
|
+
* `summariseListRows`; optional for backward type compatibility. */
|
|
32
|
+
level?: number;
|
|
33
|
+
/** Group-by labels from the outermost level down to this group. */
|
|
34
|
+
path?: string[];
|
|
35
|
+
}
|
|
36
|
+
/** Whole-result aggregates. */
|
|
37
|
+
export interface ListSummary {
|
|
38
|
+
count: number;
|
|
39
|
+
sums: Record<string, number>;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* One row of the `schedule` presentation (issue #1790 round 2) — a single
|
|
43
|
+
* group-value tuple (a leaf group combination) carrying its Count and sums,
|
|
44
|
+
* projected from the LEAF entries of `ListGroup[]` (see `toScheduleRows`).
|
|
45
|
+
* Unlike `ListGroup`, a schedule row is never a parent: there is exactly one
|
|
46
|
+
* row per distinct combination of group-by values, matching Bonsai's
|
|
47
|
+
* "Building | Storey | Type | Count" schedule format.
|
|
48
|
+
*/
|
|
49
|
+
export interface ListScheduleRow {
|
|
50
|
+
/** Collision-free key — `groupPathKey(path)`, matching the source `ListGroup.key`. */
|
|
51
|
+
key: string;
|
|
52
|
+
/** Group-by values, outermost first — one per active grouping level. */
|
|
53
|
+
path: string[];
|
|
54
|
+
/** Count aggregate: number of matched elements in this group combination. */
|
|
55
|
+
count: number;
|
|
56
|
+
/** columnId -> summed numeric value, for the configured sum columns. */
|
|
57
|
+
sums: Record<string, number>;
|
|
58
|
+
}
|
|
59
|
+
export interface ListRow {
|
|
60
|
+
/** Entity reference for 3D selection */
|
|
61
|
+
entityId: number;
|
|
62
|
+
modelId: string;
|
|
63
|
+
/** Column values in same order as ListResult.columns */
|
|
64
|
+
values: CellValue[];
|
|
65
|
+
}
|
|
66
|
+
export type CellValue = string | number | boolean | null;
|
|
67
|
+
/** Available columns discovered from the model */
|
|
68
|
+
export interface DiscoveredColumns {
|
|
69
|
+
attributes: string[];
|
|
70
|
+
properties: Map<string, string[]>;
|
|
71
|
+
quantities: Map<string, string[]>;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=result-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result-types.d.ts","sourceRoot":"","sources":["../src/result-types.ts"],"names":[],"mappings":"AAIA,6DAA6D;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB;oCACgC;IAChC,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED;;+EAE+E;AAC/E,MAAM,WAAW,SAAS;IACxB;;qCAEiC;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B;yEACqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,+BAA+B;AAC/B,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,sFAAsF;IACtF,GAAG,EAAE,MAAM,CAAC;IACZ,wEAAwE;IACxE,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,6EAA6E;IAC7E,KAAK,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,OAAO;IACtB,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAMzD,kDAAkD;AAClD,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAClC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACnC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result-types.js","sourceRoot":"","sources":["../src/result-types.ts"],"names":[],"mappings":"AAAA;;+DAE+D"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/** Types for the Lists feature - configurable property tables from IFC data */
|
|
2
2
|
import type { ListModelTagScope } from './model-tag-scope.js';
|
|
3
|
+
import type { DiscoveredColumns } from './result-types.js';
|
|
3
4
|
import type { IfcTypeEnum, PropertySet, QuantitySet } from '@ifc-lite/data';
|
|
5
|
+
import type { FilterGroup, ListConditionOperator, ListConditionSource } from '@ifc-lite/rules';
|
|
4
6
|
/**
|
|
5
7
|
* Abstract interface for accessing IFC data during list execution.
|
|
6
8
|
*
|
|
@@ -173,14 +175,21 @@ export interface ListDefinition {
|
|
|
173
175
|
* Optional explicit element scope — a snapshot of express IDs per model
|
|
174
176
|
* (e.g. from a search/filter result), keyed by modelId. When present, the
|
|
175
177
|
* list targets exactly these elements per model and `entityTypes` is
|
|
176
|
-
* ignored;
|
|
178
|
+
* ignored; filter groups still apply on top. Keyed by model so federated
|
|
177
179
|
* snapshots don't over-select when local express IDs collide across files.
|
|
178
180
|
*/
|
|
179
181
|
expressIdsByModel?: Record<string, number[]>;
|
|
180
182
|
/** Optional MODEL scope by model tag (#4215, `model-tag-scope.ts`); absent = every model. */
|
|
181
183
|
modelTagScope?: ListModelTagScope;
|
|
182
|
-
/**
|
|
183
|
-
|
|
184
|
+
/** Canonical Rules filters for migrated and newly-authored lists. */
|
|
185
|
+
groups: FilterGroup[];
|
|
186
|
+
/** Flat predicates for provider-only `executeList` callers (the SDK). Saved
|
|
187
|
+
* lists carry every predicate in `groups` instead (`listCondition`, #6190). */
|
|
188
|
+
legacyConditions?: PropertyCondition[];
|
|
189
|
+
/** Saved filters migration could not read (malformed, unknown operator or
|
|
190
|
+
* source, a rule this build does not know). Kept visible; a list with any
|
|
191
|
+
* cannot run until they are removed. */
|
|
192
|
+
unreadableConditions?: UnreadableListCondition[];
|
|
184
193
|
/** Columns to display */
|
|
185
194
|
columns: ColumnDefinition[];
|
|
186
195
|
/** Current sort state */
|
|
@@ -234,7 +243,7 @@ export interface PropertyCondition {
|
|
|
234
243
|
* or the straddled zones joined when the element crosses a boundary) or
|
|
235
244
|
* `Straddles` (boolean); `geometry` is the World Coordinate (#3671) — `propertyName` selects axis `X` (default) | `Y` | `Z`
|
|
236
245
|
*/
|
|
237
|
-
source:
|
|
246
|
+
source: ListConditionSource;
|
|
238
247
|
/** Property set name (for property/quantity sources); the zone-SET id for `zone`. */
|
|
239
248
|
psetName?: string;
|
|
240
249
|
/** Attribute / property / quantity name, the spatial level for `spatial`
|
|
@@ -247,7 +256,15 @@ export interface PropertyCondition {
|
|
|
247
256
|
/** property/quantity only: `'aggregation'` takes the nearest aggregate parent's value when the element has none (#5433). Type values are always read. */
|
|
248
257
|
inherit?: 'type' | 'aggregation';
|
|
249
258
|
}
|
|
250
|
-
|
|
259
|
+
/** One vocabulary with the Rules `listCondition` adapter (#6190), which carries these predicates in groups. */
|
|
260
|
+
export type ConditionOperator = ListConditionOperator;
|
|
261
|
+
export type UnreadableListCondition = {
|
|
262
|
+
condition: PropertyCondition;
|
|
263
|
+
reason: 'unsupported-source' | 'unsupported-attribute' | 'name-pattern' | 'inherit' | 'operator' | 'invalid-value' | 'mixed-groups';
|
|
264
|
+
} | {
|
|
265
|
+
condition: unknown;
|
|
266
|
+
reason: 'invalid-condition';
|
|
267
|
+
};
|
|
251
268
|
export interface ColumnDefinition {
|
|
252
269
|
id: string;
|
|
253
270
|
/**
|
|
@@ -285,74 +302,5 @@ export interface ColumnDefinition {
|
|
|
285
302
|
*/
|
|
286
303
|
dataType?: string;
|
|
287
304
|
}
|
|
288
|
-
export
|
|
289
|
-
columns: ColumnDefinition[];
|
|
290
|
-
rows: ListRow[];
|
|
291
|
-
/** Total matched entities before pagination */
|
|
292
|
-
totalCount: number;
|
|
293
|
-
/** Execution time in ms */
|
|
294
|
-
executionTime: number;
|
|
295
|
-
/** Per-group breakdown — present only when `grouping` is configured. */
|
|
296
|
-
groups?: ListGroup[];
|
|
297
|
-
/** Whole-result aggregates (count + per-column sums). Present when
|
|
298
|
-
* `grouping` is configured. */
|
|
299
|
-
summary?: ListSummary;
|
|
300
|
-
}
|
|
301
|
-
/** One group in a grouped list result. With multi-criteria grouping (issue
|
|
302
|
-
* #1790) groups are emitted as a FLAT pre-order list: each parent group is
|
|
303
|
-
* immediately followed by its subgroups (`level` gives the nesting depth). */
|
|
304
|
-
export interface ListGroup {
|
|
305
|
-
/** Opaque unique group key - the JSON encoding of `path` (see
|
|
306
|
-
* `groupPathKey`), collision-free even when a model-derived label contains
|
|
307
|
-
* separator-like characters. */
|
|
308
|
-
key: string;
|
|
309
|
-
/** Display label for the group header (this level's value only). */
|
|
310
|
-
label: string;
|
|
311
|
-
/** Number of rows in the group (the Count aggregate, issue #1790). */
|
|
312
|
-
count: number;
|
|
313
|
-
/** columnId → summed numeric value, for the configured sum columns. */
|
|
314
|
-
sums: Record<string, number>;
|
|
315
|
-
/** 0-based nesting depth (0 = outermost grouping column). Always emitted by
|
|
316
|
-
* `summariseListRows`; optional for backward type compatibility. */
|
|
317
|
-
level?: number;
|
|
318
|
-
/** Group-by labels from the outermost level down to this group. */
|
|
319
|
-
path?: string[];
|
|
320
|
-
}
|
|
321
|
-
/** Whole-result aggregates. */
|
|
322
|
-
export interface ListSummary {
|
|
323
|
-
count: number;
|
|
324
|
-
sums: Record<string, number>;
|
|
325
|
-
}
|
|
326
|
-
/**
|
|
327
|
-
* One row of the `schedule` presentation (issue #1790 round 2) — a single
|
|
328
|
-
* group-value tuple (a leaf group combination) carrying its Count and sums,
|
|
329
|
-
* projected from the LEAF entries of `ListGroup[]` (see `toScheduleRows`).
|
|
330
|
-
* Unlike `ListGroup`, a schedule row is never a parent: there is exactly one
|
|
331
|
-
* row per distinct combination of group-by values, matching Bonsai's
|
|
332
|
-
* "Building | Storey | Type | Count" schedule format.
|
|
333
|
-
*/
|
|
334
|
-
export interface ListScheduleRow {
|
|
335
|
-
/** Collision-free key — `groupPathKey(path)`, matching the source `ListGroup.key`. */
|
|
336
|
-
key: string;
|
|
337
|
-
/** Group-by values, outermost first — one per active grouping level. */
|
|
338
|
-
path: string[];
|
|
339
|
-
/** Count aggregate: number of matched elements in this group combination. */
|
|
340
|
-
count: number;
|
|
341
|
-
/** columnId -> summed numeric value, for the configured sum columns. */
|
|
342
|
-
sums: Record<string, number>;
|
|
343
|
-
}
|
|
344
|
-
export interface ListRow {
|
|
345
|
-
/** Entity reference for 3D selection */
|
|
346
|
-
entityId: number;
|
|
347
|
-
modelId: string;
|
|
348
|
-
/** Column values in same order as ListResult.columns */
|
|
349
|
-
values: CellValue[];
|
|
350
|
-
}
|
|
351
|
-
export type CellValue = string | number | boolean | null;
|
|
352
|
-
/** Available columns discovered from the model */
|
|
353
|
-
export interface DiscoveredColumns {
|
|
354
|
-
attributes: string[];
|
|
355
|
-
properties: Map<string, string[]>;
|
|
356
|
-
quantities: Map<string, string[]>;
|
|
357
|
-
}
|
|
305
|
+
export type { ListResult, ListGroup, ListSummary, ListScheduleRow, ListRow, CellValue, DiscoveredColumns } from './result-types.js';
|
|
358
306
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAIA,+EAA+E;AAC/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -2,4 +2,6 @@
|
|
|
2
2
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
4
|
export {};
|
|
5
|
+
/* Result row and schedule shapes live in result-types.ts so the persisted
|
|
6
|
+
* definition and provider contracts remain below the module-size limit. */
|
|
5
7
|
//# sourceMappingURL=types.js.map
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;+DAE+D"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;+DAE+D;;AAmV/D;2EAC2E"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ifc-lite/lists",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "Configurable property tables and schedules from IFC data for IFC-Lite",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -13,14 +13,15 @@
|
|
|
13
13
|
}
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@ifc-lite/data": "
|
|
17
|
-
"@ifc-lite/encoding": "2.
|
|
18
|
-
"@ifc-lite/regex-guard": "0.
|
|
16
|
+
"@ifc-lite/data": "6.1.0",
|
|
17
|
+
"@ifc-lite/encoding": "2.3.0",
|
|
18
|
+
"@ifc-lite/regex-guard": "0.3.0",
|
|
19
|
+
"@ifc-lite/rules": "0.5.0"
|
|
19
20
|
},
|
|
20
21
|
"devDependencies": {
|
|
21
|
-
"csv-parse": "7.0.
|
|
22
|
+
"csv-parse": "7.0.3",
|
|
22
23
|
"typescript": "^6.0.3",
|
|
23
|
-
"vitest": "^5.0.
|
|
24
|
+
"vitest": "^5.0.2"
|
|
24
25
|
},
|
|
25
26
|
"license": "MPL-2.0",
|
|
26
27
|
"author": "Louis True",
|