@ifc-lite/query 2.2.0 → 2.3.2

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.
@@ -276,6 +276,7 @@ export class DuckDBIntegration {
276
276
  const relTypeNames = {
277
277
  [RelationshipType.ContainsElements]: 'ContainsElements',
278
278
  [RelationshipType.Aggregates]: 'Aggregates',
279
+ [RelationshipType.Nests]: 'IfcRelNests', // matches the other 3 RelationshipType->string maps (#4205 review)
279
280
  [RelationshipType.DefinesByProperties]: 'DefinesByProperties',
280
281
  [RelationshipType.DefinesByType]: 'DefinesByType',
281
282
  [RelationshipType.AssociatesMaterial]: 'AssociatesMaterial',
@@ -286,12 +287,11 @@ export class DuckDBIntegration {
286
287
  [RelationshipType.ConnectsElements]: 'ConnectsElements',
287
288
  [RelationshipType.SpaceBoundary]: 'SpaceBoundary',
288
289
  [RelationshipType.AssignsToGroup]: 'AssignsToGroup',
290
+ [RelationshipType.AssignsToGroupByFactor]: 'IfcRelAssignsToGroupByFactor',
289
291
  [RelationshipType.AssignsToProduct]: 'AssignsToProduct',
290
292
  [RelationshipType.ReferencedInSpatialStructure]: 'ReferencedInSpatialStructure',
291
293
  };
292
- // One row per `IfcRel*` STEP record, including any collapsed into an
293
- // edge's `shadowedRelationshipIds` (#3760/#3782) — not one row per
294
- // deduped edge; see `flattenRelationshipEdges`'s doc comment.
294
+ // One row per `IfcRel*` STEP record, not one row per deduped edge; see `flattenRelationshipEdges`'s doc comment.
295
295
  const rows = flattenRelationshipEdges(relationships.forward).map((row) => ({
296
296
  sourceId: row.sourceId,
297
297
  targetId: row.targetId,
@@ -1 +1 @@
1
- {"version":3,"file":"duckdb-integration.js","sourceRoot":"","sources":["../src/duckdb-integration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"duckdb-integration.js","sourceRoot":"","sources":["../src/duckdb-integration.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,15 @@ export declare class EntityNode {
34
34
  get type(): string;
35
35
  contains(): EntityNode[];
36
36
  containedIn(): EntityNode | null;
37
+ /**
38
+ * True when this element has more than one direct
39
+ * `IfcRelContainedInSpatialStructure` edge, i.e. `containedIn()`'s answer
40
+ * (first-declared wins) was a tie-break rather than the only candidate the
41
+ * source file declared (#4311). Duplicate edges naming the SAME structure
42
+ * collapse to one before either method ever sees them (relationship-graph
43
+ * dedupe), so this only fires on genuinely different candidates.
44
+ */
45
+ containedInAmbiguous(): boolean;
37
46
  decomposes(): EntityNode[];
38
47
  decomposedBy(): EntityNode | null;
39
48
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"entity-node.d.ts","sourceRoot":"","sources":["../src/entity-node.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,IAAI,YAAY,EAAE,SAAS,EAAqB,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG1I,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AA0BlD,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,SAAS,GAChB,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC,CAO3D;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAe;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,iBAAiB,CAAyG;gBAEtH,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM;IAKlD;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAa7B,IAAI,QAAQ,IAAI,MAAM,CAMrB;IAED,IAAI,IAAI,IAAI,MAAM,CAMjB;IAED,IAAI,WAAW,IAAI,MAAM,CAMxB;IAED,IAAI,UAAU,IAAI,MAAM,CAMvB;IAED,IAAI,GAAG,IAAI,MAAM,CAGhB;IAED;;;;OAIG;IACH,aAAa,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAe1E,IAAI,IAAI,IAAI,MAAM,CAEjB;IAID,QAAQ,IAAI,UAAU,EAAE;IAIxB,WAAW,IAAI,UAAU,GAAG,IAAI;IAMhC,UAAU,IAAI,UAAU,EAAE;IAI1B,YAAY,IAAI,UAAU,GAAG,IAAI;IAMjC;;;;;;;;OAQG;IACH,YAAY,IAAI,UAAU,GAAG,IAAI;IAKjC,4EAA4E;IAC5E,SAAS,IAAI,UAAU,EAAE;IAKzB,KAAK,IAAI,UAAU,EAAE;IAIrB;;;;;;;OAOG;IACH,QAAQ,IAAI,UAAU,EAAE;IAKxB,QAAQ,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,GAAE,SAAS,GAAG,SAAqB,GAAG,UAAU,EAAE;IA+B9G,QAAQ,IAAI,UAAU,GAAG,IAAI;IAY7B,MAAM,IAAI,UAAU,GAAG,IAAI;IAa3B,UAAU,IAAI,WAAW,EAAE;IAI3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAgBlE,UAAU,IAAI,WAAW,EAAE;IAI3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAW/D,OAAO,CAAC,UAAU;CAInB"}
1
+ {"version":3,"file":"entity-node.d.ts","sourceRoot":"","sources":["../src/entity-node.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,IAAI,YAAY,EAAE,SAAS,EAAqB,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG1I,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AA0BlD,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,SAAS,GAChB,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC,CAO3D;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAe;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,iBAAiB,CAAyG;gBAEtH,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM;IAKlD;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAa7B,IAAI,QAAQ,IAAI,MAAM,CAMrB;IAED,IAAI,IAAI,IAAI,MAAM,CAMjB;IAED,IAAI,WAAW,IAAI,MAAM,CAMxB;IAED,IAAI,UAAU,IAAI,MAAM,CAMvB;IAED,IAAI,GAAG,IAAI,MAAM,CAGhB;IAED;;;;OAIG;IACH,aAAa,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAe1E,IAAI,IAAI,IAAI,MAAM,CAEjB;IAID,QAAQ,IAAI,UAAU,EAAE;IAIxB,WAAW,IAAI,UAAU,GAAG,IAAI;IAKhC;;;;;;;OAOG;IACH,oBAAoB,IAAI,OAAO;IAK/B,UAAU,IAAI,UAAU,EAAE;IAI1B,YAAY,IAAI,UAAU,GAAG,IAAI;IAMjC;;;;;;;;OAQG;IACH,YAAY,IAAI,UAAU,GAAG,IAAI;IAKjC,4EAA4E;IAC5E,SAAS,IAAI,UAAU,EAAE;IAKzB,KAAK,IAAI,UAAU,EAAE;IAIrB;;;;;;;OAOG;IACH,QAAQ,IAAI,UAAU,EAAE;IAKxB,QAAQ,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,GAAE,SAAS,GAAG,SAAqB,GAAG,UAAU,EAAE;IA+B9G,QAAQ,IAAI,UAAU,GAAG,IAAI;IAY7B,MAAM,IAAI,UAAU,GAAG,IAAI;IAa3B,UAAU,IAAI,WAAW,EAAE;IAI3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAgBlE,UAAU,IAAI,WAAW,EAAE;IAI3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAW/D,OAAO,CAAC,UAAU;CAInB"}
@@ -137,6 +137,17 @@ export class EntityNode {
137
137
  const nodes = this.getRelated(RelationshipType.ContainsElements, 'inverse');
138
138
  return nodes[0] ?? null;
139
139
  }
140
+ /**
141
+ * True when this element has more than one direct
142
+ * `IfcRelContainedInSpatialStructure` edge, i.e. `containedIn()`'s answer
143
+ * (first-declared wins) was a tie-break rather than the only candidate the
144
+ * source file declared (#4311). Duplicate edges naming the SAME structure
145
+ * collapse to one before either method ever sees them (relationship-graph
146
+ * dedupe), so this only fires on genuinely different candidates.
147
+ */
148
+ containedInAmbiguous() {
149
+ return this.getRelated(RelationshipType.ContainsElements, 'inverse').length > 1;
150
+ }
140
151
  // Aggregation
141
152
  decomposes() {
142
153
  return this.getRelated(RelationshipType.Aggregates, 'forward');
@@ -1 +1 @@
1
- {"version":3,"file":"entity-node.js","sourceRoot":"","sources":["../src/entity-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity-node.js","sourceRoot":"","sources":["../src/entity-node.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@
9
9
  * matched fewer rows there than in the CLI/MCP. This module is the single
10
10
  * home for that comparison so the four call sites can't drift apart again.
11
11
  */
12
- export type FilterComparisonOp = '=' | '!=' | '>' | '<' | '>=' | '<=' | 'contains' | 'exists';
12
+ export type FilterComparisonOp = '=' | '!=' | '>' | '<' | '>=' | '<=' | 'contains' | 'exists' | 'matches';
13
13
  /**
14
14
  * Normalize boolean-like values for comparison. IFC STEP encodes booleans as
15
15
  * `.T.`/`.F.` tokens; parsed property values are typically real JS booleans
@@ -19,6 +19,19 @@ export type FilterComparisonOp = '=' | '!=' | '>' | '<' | '>=' | '<=' | 'contain
19
19
  * `String(a) === String(b)` comparisons below treat them all as equal.
20
20
  */
21
21
  export declare function normalizeBooleanValue(value: unknown): unknown;
22
+ /** Thrown by {@link compileFilterPattern} for a pattern this module refuses
23
+ * to compile, whether because it is not valid regex syntax or because it
24
+ * matches a known catastrophic-backtracking shape. Named so a caller that
25
+ * wants to distinguish "your pattern was rejected" from other errors can
26
+ * `instanceof` it; every current caller lets it propagate as a loud failure
27
+ * (the CLI's top-level `main().catch` prints `Error [<command>]: <message>`
28
+ * and exits 1; the MCP server's generic tool-call catch turns it into an
29
+ * `isError: true` result; the viewer SDK adapter's `entities()` already
30
+ * throws `TypeError` for other invalid input in this same method, so this
31
+ * joins that precedent rather than inventing a new one). */
32
+ export declare class InvalidFilterPatternError extends Error {
33
+ constructor(message: string);
34
+ }
22
35
  /**
23
36
  * Evaluate a single comparison operator against a stored value and a
24
37
  * filter value. Booleans are normalized first (see {@link normalizeBooleanValue}),
@@ -30,6 +43,14 @@ export declare function normalizeBooleanValue(value: unknown): unknown;
30
43
  * confirmed the property was found (e.g. `IFCPROPERTYSINGLEVALUE('FireRating',
31
44
  * $,$,$)` is present in its pset with a `$` nominal value, which parses to
32
45
  * `null`; it still exists). So `exists` is unconditional true once reached.
46
+ *
47
+ * `matches` is a regex test — see {@link matchesRegex} for the exact
48
+ * delimiter/flag/error contract. It is NOT boolean-normalized: normalizing
49
+ * `true`/`false` to the strings `'true'`/`'false'` before every other
50
+ * operator exists so `.T.`/`true`/`TRUE` compare as equal, which has nothing
51
+ * to do with regex matching, and normalizing first would only make a pattern
52
+ * like `/^\.T\.$/` (deliberately matching the raw STEP token) silently see
53
+ * `'true'` instead.
33
54
  */
34
55
  export declare function compareFilterValue(actual: unknown, operator: FilterComparisonOp, expected: unknown): boolean;
35
56
  //# sourceMappingURL=filter-predicate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"filter-predicate.d.ts","sourceRoot":"","sources":["../src/filter-predicate.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,kBAAkB,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE9F;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAI7D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAc5G"}
1
+ {"version":3,"file":"filter-predicate.d.ts","sourceRoot":"","sources":["../src/filter-predicate.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,kBAAkB,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE1G;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAI7D;AA6DD;;;;;;;;;4DAS4D;AAC5D,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,OAAO,EAAE,MAAM;CAI5B;AA6FD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAe5G"}
@@ -1,6 +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 { hasCatastrophicBacktrackingShape } from '@ifc-lite/regex-guard';
4
5
  /**
5
6
  * Normalize boolean-like values for comparison. IFC STEP encodes booleans as
6
7
  * `.T.`/`.F.` tokens; parsed property values are typically real JS booleans
@@ -16,6 +17,161 @@ export function normalizeBooleanValue(value) {
16
17
  return 'false';
17
18
  return value;
18
19
  }
20
+ /**
21
+ * `matches`'s `expected` side is a bare regex *source* — no `/…/` delimiters,
22
+ * no flag suffix. That is deliberately the same shape `SelectorText`'s
23
+ * `{ kind: 'regex', source }` carries in `packages/query/src/selector/ast.ts`
24
+ * (`readRegex` in `tokenize.ts` already strips the delimiters and unescapes
25
+ * `\/`), so a selector adapter can hand a parsed regex filter's `source`
26
+ * straight to this operator without re-deriving delimiter stripping.
27
+ * Matching is case-sensitive by construction (no implicit `i` flag, unlike
28
+ * `contains`, which lowercases both sides) — the pattern's author controls
29
+ * case sensitivity, not this function.
30
+ *
31
+ * `expected` is caller-supplied — the CLI `--where ~=` flag and, more
32
+ * pointedly, the MCP `query_entities` tool's `property.value`, which is
33
+ * agent/LLM-influenced input running synchronously on the MCP server's one
34
+ * main thread. `new RegExp(source).test(actual)` is not a safe operation on
35
+ * untrusted `source`: a pattern shaped like `^(a+)+$` against a
36
+ * non-matching subject is exponential in subject length in V8's backtracking
37
+ * engine (measured: a 35-character non-matching subject already exceeds
38
+ * 30s; see `filter-predicate.test.ts`'s catastrophic-pattern test for the
39
+ * reproduction). `compileFilterPattern` below rejects patterns matching that
40
+ * shape, and any other invalid pattern, *before* compiling — loudly, by
41
+ * throwing, not by returning `false`. That intentionally changes this
42
+ * function's contract from "never throws" (the shape every other
43
+ * `compareFilterValue` branch keeps: `>` against a non-numeric `expected` is
44
+ * `Number(x) > NaN`, already `false`, never a throw) to "throws on a
45
+ * rejected or malformed pattern" — the two are different failure classes.
46
+ * Silently returning `false` for an operator-coercion mismatch (a caller
47
+ * error at the value level) is fine; silently returning `false` for a
48
+ * pattern this repo refuses to run is not, per this repo's existing
49
+ * fail-loud precedent for caller-supplied input (`--limit`/`--offset`
50
+ * validate up front with `fatal()` rather than silently clamping). A caller
51
+ * that wants to reject a pattern even earlier (e.g. a selector adapter
52
+ * validating user input before a query starts) still can — that guidance
53
+ * from the previous version of this comment still holds — but it is no
54
+ * longer required for safety, because this layer now refuses unsafe input
55
+ * itself.
56
+ *
57
+ * This is a heuristic input constraint, not a proof of linear-time
58
+ * execution — see `compileFilterPattern`'s own doc comment for what it does
59
+ * and does not catch, and the PR description for the alternatives (a
60
+ * wall-clock timeout, a linear-time engine) this environment ruled out.
61
+ */
62
+ function matchesRegex(actual, expected) {
63
+ const re = compileFilterPattern(String(expected));
64
+ return re.test(String(actual));
65
+ }
66
+ /** Upper bound on a `matches` pattern's source length. Chosen to comfortably
67
+ * cover realistic IFC identifier/name/type patterns (`^IfcWall`,
68
+ * `Pset_.*Common`, GlobalId-shaped alternations) while still being short
69
+ * enough that {@link hasNestedQuantifier}'s O(n^2) scan and any surviving
70
+ * backtracking risk stay cheap. NOTE: this cap alone does not neutralize
71
+ * catastrophic backtracking — the measured repro's worst timing (>30s,
72
+ * killed) came from a 35-character pattern/subject, far under any length
73
+ * cap generous enough to be usable. Length is a blunt secondary control;
74
+ * {@link hasNestedQuantifier} is the control actually aimed at the measured
75
+ * failure shape. */
76
+ const MAX_FILTER_PATTERN_LENGTH = 200;
77
+ /** Thrown by {@link compileFilterPattern} for a pattern this module refuses
78
+ * to compile, whether because it is not valid regex syntax or because it
79
+ * matches a known catastrophic-backtracking shape. Named so a caller that
80
+ * wants to distinguish "your pattern was rejected" from other errors can
81
+ * `instanceof` it; every current caller lets it propagate as a loud failure
82
+ * (the CLI's top-level `main().catch` prints `Error [<command>]: <message>`
83
+ * and exits 1; the MCP server's generic tool-call catch turns it into an
84
+ * `isError: true` result; the viewer SDK adapter's `entities()` already
85
+ * throws `TypeError` for other invalid input in this same method, so this
86
+ * joins that precedent rather than inventing a new one). */
87
+ export class InvalidFilterPatternError extends Error {
88
+ constructor(message) {
89
+ super(message);
90
+ this.name = 'InvalidFilterPatternError';
91
+ }
92
+ }
93
+ /**
94
+ * Detect the specific catastrophic-backtracking shape this module measured
95
+ * and is defending against: a quantified group (`(...)+`, `(...)*`,
96
+ * `(...){m,n}`) whose own contents contain another quantifier at the same
97
+ * nesting depth, e.g. `(a+)+`, `(a*)*`, `(a+){2,}`. Ambiguous nested
98
+ * repetition is the textbook cause of exponential backtracking in a
99
+ * backtracking (non-linear-time) engine like V8's — each extra repeat of
100
+ * the outer quantifier multiplies the number of ways the inner one can
101
+ * partition the same input, and on a non-matching subject the engine tries
102
+ * all of them before giving up.
103
+ *
104
+ * Delegates to `@ifc-lite/regex-guard`'s `hasCatastrophicBacktrackingShape`
105
+ * rather than carrying its own copy of the scan. This module used to hand-roll
106
+ * a paren-depth scan here, independently of the shared guard package added
107
+ * for #4259 (`packages/regex-guard`) — two implementations wrong in the same
108
+ * way for different reasons (see #4318): this module's scan tracked `(`/`)`
109
+ * depth with no awareness of character classes, so a `)` written inside
110
+ * `[...]` (e.g. `^(a+[)]?a+)+$`) desynced the depth count and the check never
111
+ * fired on a genuinely catastrophic pattern. The shared guard now has the
112
+ * same fix (a manual scan that skips from an unescaped `[` to its closing
113
+ * `]`), so routing through it here closes the same bypass without
114
+ * maintaining a second copy.
115
+ *
116
+ * This is still a heuristic, not a backtracking-complexity analyzer: it will
117
+ * reject some patterns that would in fact run fine (a false positive — the
118
+ * user hits a "pattern rejected" error for a pattern that was actually
119
+ * safe), and it will not catch every ReDoS-capable shape (e.g. overlapping
120
+ * alternation like `(a|a)*`). Given this environment cannot add a
121
+ * linear-time regex engine (no dependency install available) or move
122
+ * `.test()` off the main thread onto a wall-clock timeout (a much larger,
123
+ * async-ifying change — see the PR description), this heuristic plus the
124
+ * length cap is the practical, dependency-free mitigation available;
125
+ * residual risk from a shape it misses is real and is stated as such rather
126
+ * than implied away. See {@link compileFilterPattern}, the sole call site.
127
+ */
128
+ const hasNestedQuantifier = hasCatastrophicBacktrackingShape;
129
+ /** Bounded so a pattern this module has already validated once (the common
130
+ * case: the same `matches` pattern is compiled once, then tested against
131
+ * every candidate entity in a `where`/`--where` query — see
132
+ * `applyWhereFilter`, `matchesPropertyFilter` in both the CLI and MCP
133
+ * packages, and the viewer SDK adapter, none of which vary the pattern
134
+ * per-entity) is compiled exactly once, not once per entity, without
135
+ * requiring every call site to remember to hoist the compile out of its
136
+ * loop itself. Cleared wholesale rather than evicted LRU-style once it
137
+ * would grow past a bound — simpler, and a cache clear just means the next
138
+ * lookup re-validates and re-compiles, which is correct, only slower. */
139
+ const FILTER_PATTERN_CACHE_LIMIT = 500;
140
+ const filterPatternCache = new Map();
141
+ /**
142
+ * Validate and compile a `matches` pattern, or throw
143
+ * {@link InvalidFilterPatternError} naming why. See {@link hasNestedQuantifier}
144
+ * and {@link MAX_FILTER_PATTERN_LENGTH} for what is rejected and why;
145
+ * neither rejection depends on ever running the pattern against a subject,
146
+ * so a rejected pattern fails in roughly constant time regardless of how
147
+ * long its would-be matching would have taken.
148
+ */
149
+ function compileFilterPattern(pattern) {
150
+ const cached = filterPatternCache.get(pattern);
151
+ if (cached)
152
+ return cached;
153
+ if (pattern.length > MAX_FILTER_PATTERN_LENGTH) {
154
+ throw new InvalidFilterPatternError(`matches: pattern rejected -- ${pattern.length} characters exceeds the ` +
155
+ `${MAX_FILTER_PATTERN_LENGTH}-character limit for a "matches" pattern.`);
156
+ }
157
+ if (hasNestedQuantifier(pattern)) {
158
+ throw new InvalidFilterPatternError(`matches: pattern rejected -- it contains a quantified group with another ` +
159
+ `quantifier inside it (e.g. "(a+)+"), a shape that can take exponential ` +
160
+ `time to fail to match on adversarial input. Rewrite the pattern without ` +
161
+ `nesting a quantifier inside a quantified group.`);
162
+ }
163
+ let re;
164
+ try {
165
+ re = new RegExp(pattern);
166
+ }
167
+ catch (err) {
168
+ throw new InvalidFilterPatternError(`matches: invalid regular expression ${JSON.stringify(pattern)}: ${err.message}`);
169
+ }
170
+ if (filterPatternCache.size >= FILTER_PATTERN_CACHE_LIMIT)
171
+ filterPatternCache.clear();
172
+ filterPatternCache.set(pattern, re);
173
+ return re;
174
+ }
19
175
  /**
20
176
  * Evaluate a single comparison operator against a stored value and a
21
177
  * filter value. Booleans are normalized first (see {@link normalizeBooleanValue}),
@@ -27,10 +183,20 @@ export function normalizeBooleanValue(value) {
27
183
  * confirmed the property was found (e.g. `IFCPROPERTYSINGLEVALUE('FireRating',
28
184
  * $,$,$)` is present in its pset with a `$` nominal value, which parses to
29
185
  * `null`; it still exists). So `exists` is unconditional true once reached.
186
+ *
187
+ * `matches` is a regex test — see {@link matchesRegex} for the exact
188
+ * delimiter/flag/error contract. It is NOT boolean-normalized: normalizing
189
+ * `true`/`false` to the strings `'true'`/`'false'` before every other
190
+ * operator exists so `.T.`/`true`/`TRUE` compare as equal, which has nothing
191
+ * to do with regex matching, and normalizing first would only make a pattern
192
+ * like `/^\.T\.$/` (deliberately matching the raw STEP token) silently see
193
+ * `'true'` instead.
30
194
  */
31
195
  export function compareFilterValue(actual, operator, expected) {
32
196
  if (operator === 'exists')
33
197
  return true;
198
+ if (operator === 'matches')
199
+ return matchesRegex(actual, expected);
34
200
  const normActual = normalizeBooleanValue(actual);
35
201
  const normExpected = normalizeBooleanValue(expected);
36
202
  switch (operator) {
@@ -1 +1 @@
1
- {"version":3,"file":"filter-predicate.js","sourceRoot":"","sources":["../src/filter-predicate.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAgB/D;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IAC7F,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IACjG,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAe,EAAE,QAA4B,EAAE,QAAiB;IACjG,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,YAAY,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACrD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,GAAG,CAAC,CAAC,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,MAAM,CAAC,YAAY,CAAC,CAAC;QAC7D,KAAK,IAAI,CAAC,CAAC,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,MAAM,CAAC,YAAY,CAAC,CAAC;QAC9D,KAAK,GAAG,CAAC,CAAC,OAAO,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;QAC3D,KAAK,GAAG,CAAC,CAAC,OAAO,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;QAC3D,KAAK,IAAI,CAAC,CAAC,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC;QAC7D,KAAK,IAAI,CAAC,CAAC,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC;QAC7D,KAAK,UAAU,CAAC,CAAC,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACtG,OAAO,CAAC,CAAC,OAAO,KAAK,CAAC;IACxB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"filter-predicate.js","sourceRoot":"","sources":["../src/filter-predicate.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ifc-lite/query",
3
- "version": "2.2.0",
3
+ "version": "2.3.2",
4
4
  "description": "Query system for IFC-Lite",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -13,10 +13,11 @@
13
13
  }
14
14
  },
15
15
  "dependencies": {
16
- "@ifc-lite/parser": "^5.2.0",
17
- "@ifc-lite/data": "^4.0.0",
18
- "@ifc-lite/spatial": "^1.14.16",
19
- "@ifc-lite/geometry": "^4.3.0"
16
+ "@ifc-lite/parser": "^6.2.1",
17
+ "@ifc-lite/data": "^4.2.1",
18
+ "@ifc-lite/spatial": "^1.14.18",
19
+ "@ifc-lite/geometry": "^6.0.0",
20
+ "@ifc-lite/regex-guard": "^0.2.0"
20
21
  },
21
22
  "devDependencies": {
22
23
  "typescript": "^6.0.3",