@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 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 './types.js';
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
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"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"}
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, EntityAttribute, } from './types.js';
2
- export { ENTITY_ATTRIBUTES } from './types.js';
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';
@@ -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,EACjB,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG/C,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"}
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 './types.js';
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,EAAE,MAAM,YAAY,CAAC;AAE/C,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"}
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,5 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ export {};
5
+ //# sourceMappingURL=model-tag-scope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-tag-scope.js","sourceRoot":"","sources":["../src/model-tag-scope.ts"],"names":[],"mappings":"AAAA;;+DAE+D"}
@@ -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":"AAIA;;;;;;;;;;;GAWG;AAEH,KAAK,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;AAU7C,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAU/D"}
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"}
@@ -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);
@@ -1 +1 @@
1
- {"version":3,"file":"name-pattern.js","sourceRoot":"","sources":["../src/name-pattern.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAiB/D,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;;;;GAIG;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,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;;;;GAIG;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"}
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
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
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;AAqZ/D,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,MAAM;IACN,UAAU;IACV,OAAO;IACP,MAAM;IACN,aAAa;IACb,YAAY;IACZ,gBAAgB;IAChB,KAAK;CACG,CAAC"}
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.0",
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.0.0",
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",