@ifc-lite/lists 2.1.0 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/discovery.js +1 -1
- package/dist/discovery.js.map +1 -1
- package/dist/entity-attributes.d.ts +4 -0
- package/dist/entity-attributes.d.ts.map +1 -0
- package/dist/entity-attributes.js +15 -0
- package/dist/entity-attributes.js.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/model-tag-scope.d.ts +22 -0
- package/dist/model-tag-scope.d.ts.map +1 -0
- package/dist/model-tag-scope.js +5 -0
- package/dist/model-tag-scope.js.map +1 -0
- package/dist/name-pattern.d.ts +32 -12
- package/dist/name-pattern.d.ts.map +1 -1
- package/dist/name-pattern.js +71 -0
- package/dist/name-pattern.js.map +1 -1
- package/dist/types.d.ts +3 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -13
- package/dist/types.js.map +1 -1
- package/package.json +4 -3
package/dist/discovery.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
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
|
-
import { ENTITY_ATTRIBUTES } from './
|
|
4
|
+
import { ENTITY_ATTRIBUTES } from './entity-attributes.js';
|
|
5
5
|
/** Max entities to sample per type per provider for column discovery */
|
|
6
6
|
const SAMPLE_SIZE = 50;
|
|
7
7
|
/**
|
package/dist/discovery.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAU/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** The built-in entity attributes a list column may read (`ColumnDefinition.attribute`). */
|
|
2
|
+
export declare const ENTITY_ATTRIBUTES: readonly ["Name", "GlobalId", "Class", "Type", "Description", "ObjectType", "PredefinedType", "Tag"];
|
|
3
|
+
export type EntityAttribute = typeof ENTITY_ATTRIBUTES[number];
|
|
4
|
+
//# sourceMappingURL=entity-attributes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-attributes.d.ts","sourceRoot":"","sources":["../src/entity-attributes.ts"],"names":[],"mappings":"AAIA,4FAA4F;AAC5F,eAAO,MAAM,iBAAiB,sGASpB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
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
|
+
/** The built-in entity attributes a list column may read (`ColumnDefinition.attribute`). */
|
|
5
|
+
export const ENTITY_ATTRIBUTES = [
|
|
6
|
+
'Name',
|
|
7
|
+
'GlobalId',
|
|
8
|
+
'Class',
|
|
9
|
+
'Type',
|
|
10
|
+
'Description',
|
|
11
|
+
'ObjectType',
|
|
12
|
+
'PredefinedType',
|
|
13
|
+
'Tag',
|
|
14
|
+
];
|
|
15
|
+
//# sourceMappingURL=entity-attributes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-attributes.js","sourceRoot":"","sources":["../src/entity-attributes.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D,4FAA4F;AAC5F,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,MAAM;IACN,UAAU;IACV,OAAO;IACP,MAAM;IACN,aAAa;IACb,YAAY;IACZ,gBAAgB;IAChB,KAAK;CACG,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export type { ListDataProvider, ListDefinition, ListResult, ListRow, CellValue, ColumnDefinition, PropertyCondition, ConditionOperator, ListClassificationRef, ListGrouping, ListGroup, ListSummary, ListScheduleRow, DiscoveredColumns,
|
|
2
|
-
export {
|
|
1
|
+
export type { ListDataProvider, ListDefinition, ListResult, ListRow, CellValue, ColumnDefinition, PropertyCondition, ConditionOperator, ListClassificationRef, ListGrouping, ListGroup, ListSummary, ListScheduleRow, DiscoveredColumns, } from './types.js';
|
|
2
|
+
export type { ListModelTagScope } from './model-tag-scope.js';
|
|
3
|
+
export { ENTITY_ATTRIBUTES, type EntityAttribute } from './entity-attributes.js';
|
|
3
4
|
export { executeList, listResultToCSV, summariseListRows, groupingColumnIds, groupPathKey, toScheduleRows, ZONE_MODE_VOLUME, ZONE_MODE_BREAKDOWN, isZoneVolumeMode, } from './engine.js';
|
|
4
5
|
export { compileNameMatcher, isNamePattern } from './name-pattern.js';
|
|
5
6
|
export { discoverColumns } from './discovery.js';
|
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,
|
|
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;AAGtE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGjD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
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
|
-
export { ENTITY_ATTRIBUTES } from './
|
|
4
|
+
export { ENTITY_ATTRIBUTES } from './entity-attributes.js';
|
|
5
5
|
// Engine
|
|
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)
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAoB/D,OAAO,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAoB/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;AAEtE,mBAAmB;AACnB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,UAAU;AACV,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which models a list runs over, by the viewer's user-facing MODEL TAGS
|
|
3
|
+
* (issue #4215). Persisted on `ListDefinition.modelTagScope`.
|
|
4
|
+
*
|
|
5
|
+
* `tagIds` are the viewer's stable tag ids — a rename changes nothing here —
|
|
6
|
+
* and the four operators read exactly as they do in the viewer's search and
|
|
7
|
+
* clash rules: `hasAny` (at least one of), `hasAll` (every one of), `hasNone`
|
|
8
|
+
* (none of), `untagged` (the model carries no tag at all; `tagIds` is
|
|
9
|
+
* ignored). Independent of `expressIdsByModel` and `entityTypes`, which scope
|
|
10
|
+
* ELEMENTS within whichever models are in scope. Absent means every model,
|
|
11
|
+
* so a list persisted before this existed runs as it did.
|
|
12
|
+
*
|
|
13
|
+
* The package only carries the shape; resolving it against a federation's
|
|
14
|
+
* tags is the viewer's (`apps/viewer/src/lib/lists/model-tag-scope.ts`), and
|
|
15
|
+
* a scope naming a tag that no longer exists must be refused there, never
|
|
16
|
+
* widened.
|
|
17
|
+
*/
|
|
18
|
+
export interface ListModelTagScope {
|
|
19
|
+
op: 'hasAny' | 'hasAll' | 'hasNone' | 'untagged';
|
|
20
|
+
tagIds: string[];
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=model-tag-scope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-tag-scope.d.ts","sourceRoot":"","sources":["../src/model-tag-scope.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;IACjD,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-tag-scope.js","sourceRoot":"","sources":["../src/model-tag-scope.ts"],"names":[],"mappings":"AAAA;;+DAE+D"}
|
package/dist/name-pattern.d.ts
CHANGED
|
@@ -1,22 +1,42 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Property-set / property NAME matching for list columns and queries.
|
|
3
|
-
*
|
|
4
|
-
* A name wrapped in slashes (`/Qto_.*BaseQuantities/`, optionally with trailing
|
|
5
|
-
* flags such as `/qto_.+/i`) is treated as a regular expression matched against
|
|
6
|
-
* the candidate name; anything else is an exact, case-sensitive string match
|
|
7
|
-
* (the historical behaviour). This lets one column / query pull a value from
|
|
8
|
-
* several property or quantity sets at once — e.g. `NetVolume` from
|
|
9
|
-
* `Qto_WallBaseQuantities` AND `Qto_SlabBaseQuantities` — the way Bonsai's
|
|
10
|
-
* `/regex/` syntax works (issue #1591). IFC set / property names never contain
|
|
11
|
-
* slashes, so the `/.../` form is unambiguous.
|
|
12
|
-
*/
|
|
13
1
|
type NameMatcher = (name: string) => boolean;
|
|
14
2
|
/** True when `pattern` uses the `/regex/` form (a valid slash-delimited literal). */
|
|
15
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
16
|
/**
|
|
17
17
|
* Compile a name pattern into a predicate. `/body/flags` compiles to a RegExp;
|
|
18
18
|
* anything else (including a malformed literal, which is logged) becomes an
|
|
19
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.
|
|
20
40
|
*/
|
|
21
41
|
export declare function compileNameMatcher(pattern: string): NameMatcher;
|
|
22
42
|
export {};
|
|
@@ -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":"AAmBA,KAAK,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;AAU7C,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQ1E;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAoB/D"}
|
package/dist/name-pattern.js
CHANGED
|
@@ -1,6 +1,19 @@
|
|
|
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
|
+
* Property-set / property NAME matching for list columns and queries.
|
|
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';
|
|
4
17
|
// Compiled matchers are cached by pattern string: `findPropertyEntry` /
|
|
5
18
|
// `findQuantityEntry` run per row, and the pattern is fixed per column, so
|
|
6
19
|
// without this a regex column would recompile its RegExp for every element.
|
|
@@ -12,16 +25,69 @@ const matcherCache = new Map();
|
|
|
12
25
|
export function isNamePattern(pattern) {
|
|
13
26
|
return parseRegexLiteral(pattern) !== null;
|
|
14
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
|
+
}
|
|
15
50
|
/**
|
|
16
51
|
* Compile a name pattern into a predicate. `/body/flags` compiles to a RegExp;
|
|
17
52
|
* anything else (including a malformed literal, which is logged) becomes an
|
|
18
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.
|
|
19
74
|
*/
|
|
20
75
|
export function compileNameMatcher(pattern) {
|
|
21
76
|
const cached = matcherCache.get(pattern);
|
|
22
77
|
if (cached)
|
|
23
78
|
return cached;
|
|
24
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
|
+
}
|
|
25
91
|
const matcher = re ? (name) => re.test(name) : (name) => name === pattern;
|
|
26
92
|
if (matcherCache.size >= CACHE_CAP)
|
|
27
93
|
matcherCache.clear();
|
|
@@ -32,6 +98,11 @@ export function compileNameMatcher(pattern) {
|
|
|
32
98
|
* Parse a `/body/flags` regex literal, or return null for a plain name. A
|
|
33
99
|
* malformed literal is NOT silently swallowed: it's logged and treated as a
|
|
34
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()`.
|
|
35
106
|
*/
|
|
36
107
|
function parseRegexLiteral(pattern) {
|
|
37
108
|
const m = /^\/(.+)\/([a-z]*)$/.exec(pattern);
|
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;
|
|
1
|
+
{"version":3,"file":"name-pattern.js","sourceRoot":"","sources":["../src/name-pattern.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAI3F,wEAAwE;AACxE,2EAA2E;AAC3E,4EAA4E;AAC5E,+EAA+E;AAC/E,qEAAqE;AACrE,MAAM,SAAS,GAAG,GAAG,CAAC;AACtB,MAAM,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAC;AAEpD,qFAAqF;AACrF,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,OAAO,iBAAiB,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;AAC7C,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAc;IACpD,IAAI,CAAC;QACH,yBAAyB,CAAC,MAAM,CAAC,CAAC;QAClC,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,uBAAuB;YAAE,OAAO,GAAG,CAAC,MAAM,CAAC;QAC9D,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,EAAE,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,EAAE,EAAE,CAAC;QACP,IAAI,CAAC;YACH,yBAAyB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,uBAAuB,EAAE,CAAC;gBAC3C,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7F,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAgB,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC;IAEvF,IAAI,YAAY,CAAC,IAAI,IAAI,SAAS;QAAE,YAAY,CAAC,KAAK,EAAE,CAAC;IACzD,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,iBAAiB,CAAC,OAAe;IACxC,MAAM,CAAC,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,IAAI,CAAC;QACH,uEAAuE;QACvE,uEAAuE;QACvE,wEAAwE;QACxE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,gCAAgC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACnG,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ListModelTagScope } from './model-tag-scope.js';
|
|
1
2
|
/**
|
|
2
3
|
* Types for the Lists feature - configurable property tables from IFC data
|
|
3
4
|
*/
|
|
@@ -176,6 +177,8 @@ export interface ListDefinition {
|
|
|
176
177
|
* snapshots don't over-select when local express IDs collide across files.
|
|
177
178
|
*/
|
|
178
179
|
expressIdsByModel?: Record<string, number[]>;
|
|
180
|
+
/** Optional MODEL scope by model tag (#4215, `model-tag-scope.ts`); absent = every model. */
|
|
181
|
+
modelTagScope?: ListModelTagScope;
|
|
179
182
|
/** Optional property-based filter conditions */
|
|
180
183
|
conditions: PropertyCondition[];
|
|
181
184
|
/** Columns to display */
|
|
@@ -350,6 +353,4 @@ export interface DiscoveredColumns {
|
|
|
350
353
|
properties: Map<string, string[]>;
|
|
351
354
|
quantities: Map<string, string[]>;
|
|
352
355
|
}
|
|
353
|
-
export declare const ENTITY_ATTRIBUTES: readonly ["Name", "GlobalId", "Class", "Type", "Description", "ObjectType", "PredefinedType", "Tag"];
|
|
354
|
-
export type EntityAttribute = typeof ENTITY_ATTRIBUTES[number];
|
|
355
356
|
//# 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;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAM5E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,gBAAgB;IAC/B,qDAAqD;IACrD,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,EAAE,CAAC;IAE/C,mDAAmD;IACnD,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IACzC,wCAAwC;IACxC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7C,2CAA2C;IAC3C,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAChD,6DAA6D;IAC7D,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/C,oDAAoD;IACpD,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IACxC,wDAAwD;IACxD,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7C;;;;;+BAK2B;IAC3B,yBAAyB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAEtD,yEAAyE;IACzE,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;IAClD,yEAAyE;IACzE,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;IAElD;;;;;;;;OAQG;IACH,mBAAmB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;IACvD;;0EAEsE;IACtE,mBAAmB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;IAOvD;;;OAGG;IACH,eAAe,CAAC,IAAI,MAAM,EAAE,CAAC;IAC7B;6DACyD;IACzD,gBAAgB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC/C,6DAA6D;IAC7D,kBAAkB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,qBAAqB,EAAE,CAAC;IAChE,wEAAwE;IACxE,aAAa,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1C;;;;;wBAKoB;IACpB,gBAAgB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7C;gDAC4C;IAC5C,eAAe,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5C;4CACwC;IACxC,WAAW,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IACxC;;mEAE+D;IAC/D,cAAc,CAAC,IAAI,MAAM,CAAC;IAC1B;;kFAE8E;IAC9E,YAAY,CAAC,IAAI,MAAM,CAAC;IACxB;+EAC2E;IAC3E,uBAAuB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IACpD;;;;;OAKG;IACH,kBAAkB,CAAC,IAAI,iBAAiB,CAAC;IAEzC;;;;;;;;OAQG;IACH,iBAAiB,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG;QACxD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,SAAS,EAAE,OAAO,CAAC;QACnB,gBAAgB,EAAE,MAAM,EAAE,CAAC;KAC5B,GAAG,IAAI,CAAC;IACT;sDACkD;IAClD,eAAe,CAAC,IAAI,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxD;;;;;;;;;;;;;;;OAeG;IACH,mBAAmB,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG;QAC1D,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,MAAM,EAAE,KAAK,CAAC;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACpD,GAAG,IAAI,CAAC;IACT,gBAAgB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAClF;AAED,2EAA2E;AAC3E,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAMD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAElB,oCAAoC;IACpC,WAAW,EAAE,WAAW,EAAE,CAAC;IAE3B;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAE7C,gDAAgD;IAChD,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAEhC,yBAAyB;IACzB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAE5B,yBAAyB;IACzB,MAAM,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,KAAK,GAAG,MAAM,CAAA;KAAE,CAAC;IAEzD,yDAAyD;IACzD,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,wEAAwE;IACxE,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;CAC9B;AAMD,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;;;;;;OAaG;IACH,MAAM,EAAE,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,gBAAgB,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC;IAC1H,qFAAqF;IACrF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;yCAGqC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CAClC;AAED,MAAM,MAAM,iBAAiB,GACzB,QAAQ,GACR,WAAW,GACX,UAAU,GACV,IAAI,GACJ,IAAI,GACJ,KAAK,GACL,KAAK,GACL,QAAQ,CAAC;AAMb,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX;;;;;;;OAOG;IACH,MAAM,EAAE,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,gBAAgB,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC;IAC1H,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;yCAGqC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD,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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -1,17 +1,5 @@
|
|
|
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
|
-
// Built-in Attributes
|
|
6
|
-
// ============================================================================
|
|
7
|
-
export const ENTITY_ATTRIBUTES = [
|
|
8
|
-
'Name',
|
|
9
|
-
'GlobalId',
|
|
10
|
-
'Class',
|
|
11
|
-
'Type',
|
|
12
|
-
'Description',
|
|
13
|
-
'ObjectType',
|
|
14
|
-
'PredefinedType',
|
|
15
|
-
'Tag',
|
|
16
|
-
];
|
|
4
|
+
export {};
|
|
17
5
|
//# 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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ifc-lite/lists",
|
|
3
|
-
"version": "2.1
|
|
3
|
+
"version": "2.2.1",
|
|
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,8 +13,9 @@
|
|
|
13
13
|
}
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@ifc-lite/data": "4.
|
|
17
|
-
"@ifc-lite/encoding": "2.2.0"
|
|
16
|
+
"@ifc-lite/data": "4.2.1",
|
|
17
|
+
"@ifc-lite/encoding": "2.2.0",
|
|
18
|
+
"@ifc-lite/regex-guard": "0.2.0"
|
|
18
19
|
},
|
|
19
20
|
"devDependencies": {
|
|
20
21
|
"csv-parse": "7.0.2",
|