@ifc-lite/cli 0.24.1 → 0.24.3

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.
@@ -1,2 +1,13 @@
1
+ import { type Clash } from '@ifc-lite/clash';
2
+ /**
3
+ * One clash as a human-readable row.
4
+ *
5
+ * A penetration whose `distanceKind` is `'estimate'` was read off the element
6
+ * AABBs, not measured on the meshes, so it is printed as an approximation and
7
+ * labelled. Calling it a flat "penetration" is the overclaim this label exists
8
+ * to stop: for stacked layers that number is a box dimension, and it can equal
9
+ * an element's own thickness. Exported for direct unit testing.
10
+ */
11
+ export declare function formatClashRow(clash: Clash): string;
1
12
  export declare function clashCommand(args: string[]): Promise<void>;
2
13
  //# sourceMappingURL=clash.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"clash.d.ts","sourceRoot":"","sources":["../../src/commands/clash.ts"],"names":[],"mappings":"AAoKA,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+GhE"}
1
+ {"version":3,"file":"clash.d.ts","sourceRoot":"","sources":["../../src/commands/clash.ts"],"names":[],"mappings":"AAoBA,OAAO,EAOL,KAAK,KAAK,EAIX,MAAM,iBAAiB,CAAC;AAqGzB;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAWnD;AA0FD,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4HhE"}
@@ -15,7 +15,7 @@ import { basename } from 'node:path';
15
15
  import { createHeadlessContext } from '../loader.js';
16
16
  import { getFlag, hasFlag, fatal, printJson, routeConsoleDiagnosticsToStderr } from '../output.js';
17
17
  import { GeometryProcessor } from '@ifc-lite/geometry';
18
- import { createClashEngine, disciplineMatrixRules, groupClashes, isClusterGroupingIneffective, } from '@ifc-lite/clash';
18
+ import { createClashEngine, disciplineMatrixRules, groupClashes, isClusterGroupingIneffective, classifyRuleCoverage, ruleHadNoMatch, } from '@ifc-lite/clash';
19
19
  import { elementsFromStep } from '@ifc-lite/clash/step';
20
20
  import { createBCFFromClashResult } from '@ifc-lite/clash/bcf';
21
21
  import { writeBCF } from '@ifc-lite/bcf';
@@ -107,15 +107,86 @@ function buildRules(args, mode, tolerance, clearance) {
107
107
  rule.clearance = clearance;
108
108
  return [rule];
109
109
  }
110
- function formatClashRow(clash) {
110
+ /**
111
+ * One clash as a human-readable row.
112
+ *
113
+ * A penetration whose `distanceKind` is `'estimate'` was read off the element
114
+ * AABBs, not measured on the meshes, so it is printed as an approximation and
115
+ * labelled. Calling it a flat "penetration" is the overclaim this label exists
116
+ * to stop: for stacked layers that number is a box dimension, and it can equal
117
+ * an element's own thickness. Exported for direct unit testing.
118
+ */
119
+ export function formatClashRow(clash) {
111
120
  const aName = clash.a.name ? `${clash.a.tag} "${clash.a.name}"` : clash.a.tag;
112
121
  const bName = clash.b.name ? `${clash.b.tag} "${clash.b.name}"` : clash.b.tag;
122
+ // Absent `distanceKind` means "unknown provenance" (a clash rehydrated from
123
+ // a pre-label run, or a producer that has not been updated yet), never
124
+ // "measured" — so only an explicit 'mesh' renders unqualified.
125
+ const estimated = clash.distanceKind !== 'mesh';
113
126
  const distance = clash.distance < 0
114
- ? `penetration ${Math.abs(clash.distance).toFixed(3)}m`
127
+ ? `penetration ${estimated ? '~' : ''}${Math.abs(clash.distance).toFixed(3)}m${estimated ? ' (AABB estimate)' : ''}`
115
128
  : `gap ${clash.distance.toFixed(3)}m`;
116
129
  return ` [${clash.severity}] ${aName} x ${bName} (${clash.status}, ${distance})`;
117
130
  }
118
- function printHumanSummary(result) {
131
+ /**
132
+ * Rule ids whose selectors matched nothing to compare (on either side) in
133
+ * THIS model, described by WHICH side(s) were empty — never blames "the
134
+ * matrix" when the run had no matrix to blame (the default `--a`/`--b` path
135
+ * has exactly one hand-built rule; only `--matrix` runs the discipline
136
+ * matrix).
137
+ */
138
+ function emptyRuleDescriptions(result) {
139
+ const rules = new Map(result.rulesRun.map((r) => [r.id, r]));
140
+ return (result.ruleCoverage ?? [])
141
+ .filter(ruleHadNoMatch)
142
+ .map((c) => {
143
+ const rule = rules.get(c.rule);
144
+ if (!rule)
145
+ return c.rule;
146
+ const emptySides = [];
147
+ if (c.matchedA === 0)
148
+ emptySides.push(`selector A ("${rule.a}")`);
149
+ if (c.matchedB === 0)
150
+ emptySides.push(`selector B ("${rule.b}")`);
151
+ const sides = emptySides.length > 0 ? emptySides.join(' and ') : 'a selector';
152
+ return `"${rule.name}": ${sides} matched 0 elements`;
153
+ });
154
+ }
155
+ /**
156
+ * Case (c) from the design: distinguish "ran and found zero" from "no rule
157
+ * matched anything, so the check never really ran". Reported as a warning,
158
+ * never as an error — zero clashes is a legitimate outcome, this only says
159
+ * which kind of zero it is. See {@link classifyRuleCoverage}.
160
+ *
161
+ * `isMatrix` gates the matrix-specific wording: the discipline matrix
162
+ * (`--matrix`) runs many rules and its "no-match" case really does mean the
163
+ * matrix as a whole never ran. The default `--a`/`--b` path builds exactly
164
+ * one ad-hoc rule — when that rule's selector matches nothing on one side
165
+ * (e.g. `--a IfcWall --b IfcRoof` on a model with no roofs), the OTHER side
166
+ * still matched and no matrix was ever involved, so the message must name
167
+ * the empty selector instead of claiming the matrix didn't run.
168
+ */
169
+ function printCoverageWarning(result, isMatrix) {
170
+ const outcome = classifyRuleCoverage(result);
171
+ if (outcome === 'no-match') {
172
+ if (isMatrix) {
173
+ process.stdout.write(`\n WARNING: none of the ${result.rulesRun.length} rule(s) matched any elements in this model.\n` +
174
+ ` The clash matrix did NOT run — "${result.summary.total} clashes" means nothing was checked,\n` +
175
+ ` not that the model is clean. This matrix is shaped for MEP/HVAC/electrical/fire coordination;\n` +
176
+ ` it may simply not describe this model's disciplines (e.g. an infrastructure model).\n` +
177
+ ` Empty rules: ${emptyRuleDescriptions(result).join(', ')}\n`);
178
+ }
179
+ else {
180
+ process.stdout.write(`\n WARNING: ${emptyRuleDescriptions(result).join(', ')} — no comparison ran, so\n` +
181
+ ` "${result.summary.total} clashes" means nothing was checked, not that the model is clean.\n`);
182
+ }
183
+ }
184
+ else if (outcome === 'partial') {
185
+ process.stdout.write(`\n Note: ${emptyRuleDescriptions(result).length} of ${result.rulesRun.length} rule(s) never ran a ` +
186
+ `comparison: ${emptyRuleDescriptions(result).join(', ')}\n`);
187
+ }
188
+ }
189
+ function printHumanSummary(result, isMatrix) {
119
190
  const { summary } = result;
120
191
  process.stdout.write(`\n Clash Detection Results\n`);
121
192
  process.stdout.write(` -----------------------\n`);
@@ -124,6 +195,7 @@ function printHumanSummary(result) {
124
195
  if (result.truncated) {
125
196
  process.stdout.write(` Truncated: ${result.truncated.reason} (${result.truncated.droppedPairs} pairs dropped)\n`);
126
197
  }
198
+ printCoverageWarning(result, isMatrix);
127
199
  if (summary.total > 0) {
128
200
  const shown = result.clashes.slice(0, HUMAN_CLASH_CAP);
129
201
  process.stdout.write(`\n Top ${shown.length} of ${summary.total} clashes:\n`);
@@ -150,6 +222,7 @@ export async function clashCommand(args) {
150
222
  fatal('Usage: ifc-lite clash <file.ifc> [--a <selector>] [--b <selector>] [--mode hard|clearance] [--tolerance N] [--clearance N] [--matrix] [--bcf <out.bcfzip>] [--group cluster|rule|typePair|element] [--bcf-status <status>] [--max-topics N] [--json]');
151
223
  }
152
224
  const jsonOutput = hasFlag(args, '--json');
225
+ const isMatrix = hasFlag(args, '--matrix');
153
226
  const mode = parseMode(getFlag(args, '--mode'));
154
227
  const tolerance = parseNumberFlag(getFlag(args, '--tolerance'), '--tolerance');
155
228
  const clearance = parseNumberFlag(getFlag(args, '--clearance'), '--clearance');
@@ -210,10 +283,22 @@ export async function clashCommand(args) {
210
283
  const truncated = total > clashes.length
211
284
  ? { reason: `capped at ${JSON_CLASH_CAP} clashes for display`, dropped: total - clashes.length }
212
285
  : null;
213
- printJson({ summary: result.summary, truncated, clashes });
286
+ // `ruleCoverageOutcome` is the machine-readable form of the same signal
287
+ // printed by `printCoverageWarning` in the human summary: 'no-match'
288
+ // means no rule in `rulesRun` matched any elements — the matrix never
289
+ // ran a real comparison, so `summary.total === 0` here does NOT mean
290
+ // "model is clean". Never fails the command; consumers decide what to
291
+ // do with it.
292
+ printJson({
293
+ summary: result.summary,
294
+ truncated,
295
+ ruleCoverageOutcome: classifyRuleCoverage(result),
296
+ ruleCoverage: result.ruleCoverage ?? null,
297
+ clashes,
298
+ });
214
299
  return;
215
300
  }
216
- printHumanSummary(result);
301
+ printHumanSummary(result, isMatrix);
217
302
  }
218
303
  finally {
219
304
  // Reset BEFORE disposing, and never let a cleanup failure escape.
@@ -1 +1 @@
1
- {"version":3,"file":"clash.js","sourceRoot":"","sources":["../../src/commands/clash.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clash.js","sourceRoot":"","sources":["../../src/commands/clash.ts"],"names":[],"mappings":"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"}
@@ -64,6 +64,33 @@ export declare function typeTagModel(): string;
64
64
  * IFC4. Same pinned-registry family as #2001/#2003.
65
65
  */
66
66
  export declare function railTypeModel(): string;
67
+ /**
68
+ * The infrastructure-revision fixture: one IFC4X3 model in two revisions,
69
+ * carrying the four edit shapes an externally-corroborated comparison of a real
70
+ * infrastructure certification sample pair found, and nothing else.
71
+ *
72
+ * Each element is one shape, so a miss names itself:
73
+ *
74
+ * - `COUR` (`IfcCourse`) — **`PredefinedType` cleared** (`.PAVING.` → `$`) and
75
+ * nothing else touched. This is the shape that dominated the real pair (19 of
76
+ * its 23 modified products), and the one the IFC4 codegen pin hides: an
77
+ * `IfcCourse` is IFC4X3-only, so a `PredefinedType` read that names attributes
78
+ * through the pin finds no attribute list at all and reports the element
79
+ * unchanged. See {@link railTypeModel} for the same defect on `Tag`.
80
+ * - `PAVE` (`IfcPavement`) — byte-identical in both revisions. The bounding
81
+ * control on the other side: widening what the fingerprint can see must not
82
+ * start reporting an untouched IFC4X3 element as modified.
83
+ * - `PROX` (`IfcBuildingElementProxy` → `IfcGeographicElement`) —
84
+ * **reclassified**, with a new Description and ObjectType, keeping its
85
+ * GlobalId. Four of the real pair's 23 were exactly this.
86
+ * - `KERB` (`IfcKerb`) — deleted. `SIGN` (`IfcSignal`) — added.
87
+ *
88
+ * `PROX` is deliberately an IFC4 class in both revisions: it proves the
89
+ * comparison still sees a class/description/object-type edit through the pinned
90
+ * path, so a failure on `COUR` alone localises to the attribute-name lookup
91
+ * rather than to the fingerprint or the engine.
92
+ */
93
+ export declare function infraRevisionModel(revision: 1 | 2): string;
67
94
  export declare const BASE_MODEL: string;
68
95
  /** Same building, re-exported: the two walls carry brand-new GlobalIds. */
69
96
  export declare const HEAD_MODEL: string;
@@ -1 +1 @@
1
- {"version":3,"file":"diff-test-helpers.d.ts","sourceRoot":"","sources":["../../src/commands/diff-test-helpers.ts"],"names":[],"mappings":"AAIA,kFAAkF;AAElF,yDAAyD;AACzD,wBAAgB,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED;;wDAEwD;AACxD,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CA4B1D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA+BtD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA0B5D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAwBrC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAmBtC;AAED,eAAO,MAAM,UAAU,QAAoC,CAAC;AAC5D,2EAA2E;AAC3E,eAAO,MAAM,UAAU,QAAoC,CAAC"}
1
+ {"version":3,"file":"diff-test-helpers.d.ts","sourceRoot":"","sources":["../../src/commands/diff-test-helpers.ts"],"names":[],"mappings":"AAIA,kFAAkF;AAElF,yDAAyD;AACzD,wBAAgB,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED;;wDAEwD;AACxD,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CA4B1D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA+BtD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA0B5D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAwBrC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAmBtC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CA+B1D;AAED,eAAO,MAAM,UAAU,QAAoC,CAAC;AAC5D,2EAA2E;AAC3E,eAAO,MAAM,UAAU,QAAoC,CAAC"}
@@ -197,6 +197,60 @@ ENDSEC;
197
197
  END-ISO-10303-21;
198
198
  `;
199
199
  }
200
+ /**
201
+ * The infrastructure-revision fixture: one IFC4X3 model in two revisions,
202
+ * carrying the four edit shapes an externally-corroborated comparison of a real
203
+ * infrastructure certification sample pair found, and nothing else.
204
+ *
205
+ * Each element is one shape, so a miss names itself:
206
+ *
207
+ * - `COUR` (`IfcCourse`) — **`PredefinedType` cleared** (`.PAVING.` → `$`) and
208
+ * nothing else touched. This is the shape that dominated the real pair (19 of
209
+ * its 23 modified products), and the one the IFC4 codegen pin hides: an
210
+ * `IfcCourse` is IFC4X3-only, so a `PredefinedType` read that names attributes
211
+ * through the pin finds no attribute list at all and reports the element
212
+ * unchanged. See {@link railTypeModel} for the same defect on `Tag`.
213
+ * - `PAVE` (`IfcPavement`) — byte-identical in both revisions. The bounding
214
+ * control on the other side: widening what the fingerprint can see must not
215
+ * start reporting an untouched IFC4X3 element as modified.
216
+ * - `PROX` (`IfcBuildingElementProxy` → `IfcGeographicElement`) —
217
+ * **reclassified**, with a new Description and ObjectType, keeping its
218
+ * GlobalId. Four of the real pair's 23 were exactly this.
219
+ * - `KERB` (`IfcKerb`) — deleted. `SIGN` (`IfcSignal`) — added.
220
+ *
221
+ * `PROX` is deliberately an IFC4 class in both revisions: it proves the
222
+ * comparison still sees a class/description/object-type edit through the pinned
223
+ * path, so a failure on `COUR` alone localises to the attribute-name lookup
224
+ * rather than to the fingerprint or the engine.
225
+ */
226
+ export function infraRevisionModel(revision) {
227
+ const head = revision === 2;
228
+ return `ISO-10303-21;
229
+ HEADER;
230
+ FILE_DESCRIPTION((''),'2;1');
231
+ FILE_NAME('m','2026',(''),(''),'','','');
232
+ FILE_SCHEMA(('IFC4X3'));
233
+ ENDSEC;
234
+ DATA;
235
+ #1= IFCPROJECT('${guid('PROJ')}',$,'Proj',$,$,$,$,(#20),#30);
236
+ #20= IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,1.E-5,#21,$);
237
+ #21= IFCAXIS2PLACEMENT3D(#22,$,$);
238
+ #22= IFCCARTESIANPOINT((0.,0.,0.));
239
+ #30= IFCUNITASSIGNMENT((#31));
240
+ #31= IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.);
241
+ #40= IFCLOCALPLACEMENT($,#21);
242
+ #50= IFCCOURSE('${guid('COUR')}',$,'Base course',$,$,#40,$,'c1',${head ? '$' : '.PAVING.'});
243
+ #51= IFCPAVEMENT('${guid('PAVE')}',$,'Wearing course',$,$,#40,$,'p1',.FLEXIBLE.);
244
+ ${head
245
+ ? `#52= IFCGEOGRAPHICELEMENT('${guid('PROX')}',$,'Marker','terrain marker','geographic',#40,$,'x1',.TERRAIN.);`
246
+ : `#52= IFCBUILDINGELEMENTPROXY('${guid('PROX')}',$,'Marker',$,$,#40,$,'x1',.ELEMENT.);`}
247
+ ${head
248
+ ? `#53= IFCSIGNAL('${guid('SIGN')}',$,'Signal',$,$,#40,$,'s1',.VISUAL.);`
249
+ : `#53= IFCKERB('${guid('KERB')}',$,'Kerb',$,$,#40,$,'k1',.USERDEFINED.);`}
250
+ ENDSEC;
251
+ END-ISO-10303-21;
252
+ `;
253
+ }
200
254
  export const BASE_MODEL = model(guid('OLDA'), guid('OLDB'));
201
255
  /** Same building, re-exported: the two walls carry brand-new GlobalIds. */
202
256
  export const HEAD_MODEL = model(guid('NEWA'), guid('NEWB'));
@@ -1 +1 @@
1
- {"version":3,"file":"diff-test-helpers.js","sourceRoot":"","sources":["../../src/commands/diff-test-helpers.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D,kFAAkF;AAElF,yDAAyD;AACzD,MAAM,UAAU,IAAI,CAAC,QAAgB;IACnC,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClD,CAAC;AAED;;wDAEwD;AACxD,MAAM,UAAU,KAAK,CAAC,KAAa,EAAE,KAAa;IAChD,OAAO;;;;;;;kBAOS,IAAI,CAAC,MAAM,CAAC;;;;;;;0BAOJ,IAAI,CAAC,MAAM,CAAC;;;;;;;gBAOtB,KAAK;gBACL,KAAK;0CACqB,IAAI,CAAC,MAAM,CAAC;;;CAGrD,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,OAAO;;;;;;;kBAOS,IAAI,CAAC,MAAM,CAAC;;;;;;;0BAOJ,IAAI,CAAC,MAAM,CAAC;gBACtB,IAAI,CAAC,MAAM,CAAC;;uBAEL,IAAI,CAAC,MAAM,CAAC;;kCAED,IAAI,CAAC,MAAM,CAAC;gBAC9B,QAAQ;iBACP,IAAI,CAAC,MAAM,CAAC;;0CAEa,IAAI,CAAC,MAAM,CAAC;sBAChC,IAAI,CAAC,MAAM,CAAC;0BACR,IAAI,CAAC,MAAM,CAAC;yBACb,IAAI,CAAC,MAAM,CAAC;;;CAGpC,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,OAAO;;;;;;;kBAOS,IAAI,CAAC,MAAM,CAAC;;;;;;;0BAOJ,IAAI,CAAC,MAAM,CAAC;4BACV,IAAI,CAAC,MAAM,CAAC;gBACxB,QAAQ;wBACA,IAAI,CAAC,MAAM,CAAC;;;2BAGT,IAAI,CAAC,MAAM,CAAC;0CACG,IAAI,CAAC,MAAM,CAAC;;;CAGrD,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO;;;;;;;kBAOS,IAAI,CAAC,MAAM,CAAC;;;;;;;0BAOJ,IAAI,CAAC,MAAM,CAAC;oBAClB,IAAI,CAAC,MAAM,CAAC;oBACZ,IAAI,CAAC,MAAM,CAAC;gBAChB,IAAI,CAAC,MAAM,CAAC;gBACZ,IAAI,CAAC,MAAM,CAAC;0CACc,IAAI,CAAC,MAAM,CAAC;;;CAGrD,CAAC;AACF,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO;;;;;;;kBAOS,IAAI,CAAC,MAAM,CAAC;;;;;;oBAMV,IAAI,CAAC,MAAM,CAAC;oBACZ,IAAI,CAAC,MAAM,CAAC;;;CAG/B,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5D,2EAA2E;AAC3E,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"diff-test-helpers.js","sourceRoot":"","sources":["../../src/commands/diff-test-helpers.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ifc-lite/cli",
3
- "version": "0.24.1",
3
+ "version": "0.24.3",
4
4
  "description": "CLI toolkit for IFC files — query, validate, export, create, and script BIM data",
5
5
  "type": "module",
6
6
  "bin": {
@@ -21,24 +21,24 @@
21
21
  ],
22
22
  "dependencies": {
23
23
  "@ifc-lite/bcf": "^1.18.1",
24
- "@ifc-lite/clash": "^1.6.6",
24
+ "@ifc-lite/clash": "^1.8.0",
25
+ "@ifc-lite/create": "^2.1.1",
25
26
  "@ifc-lite/data": "^3.3.0",
26
- "@ifc-lite/create": "^2.0.3",
27
- "@ifc-lite/diff": "^0.6.0",
28
- "@ifc-lite/export": "^2.8.6",
29
- "@ifc-lite/extensions": "^0.4.1",
30
- "@ifc-lite/geometry": "^3.8.1",
31
- "@ifc-lite/ids": "^1.15.45",
32
- "@ifc-lite/merge": "^0.4.1",
33
- "@ifc-lite/ifcx": "^2.3.5",
34
- "@ifc-lite/mcp": "^0.11.1",
27
+ "@ifc-lite/diff": "^0.7.0",
28
+ "@ifc-lite/export": "^2.9.3",
29
+ "@ifc-lite/extensions": "^0.4.2",
30
+ "@ifc-lite/geometry": "^3.8.3",
31
+ "@ifc-lite/ids": "^1.15.47",
32
+ "@ifc-lite/ifcx": "^2.3.6",
33
+ "@ifc-lite/merge": "^0.4.2",
34
+ "@ifc-lite/mcp": "^0.11.2",
35
35
  "@ifc-lite/mutations": "^1.26.0",
36
- "@ifc-lite/parser": "^4.0.2",
37
- "@ifc-lite/sandbox": "^2.2.0",
36
+ "@ifc-lite/parser": "^4.1.0",
38
37
  "@ifc-lite/query": "^1.14.16",
39
- "@ifc-lite/sdk": "^2.1.1",
38
+ "@ifc-lite/sandbox": "^2.2.0",
39
+ "@ifc-lite/sdk": "^2.1.2",
40
40
  "@ifc-lite/viewer-core": "^0.2.12",
41
- "@ifc-lite/wasm": "^4.5.0"
41
+ "@ifc-lite/wasm": "^4.7.0"
42
42
  },
43
43
  "devDependencies": {
44
44
  "@types/node": "^26.1.2",