@ifc-lite/cli 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/commands/analyze.d.ts +2 -0
  2. package/dist/commands/analyze.d.ts.map +1 -0
  3. package/dist/commands/analyze.js +290 -0
  4. package/dist/commands/analyze.js.map +1 -0
  5. package/dist/commands/ask.d.ts.map +1 -1
  6. package/dist/commands/ask.js +140 -19
  7. package/dist/commands/ask.js.map +1 -1
  8. package/dist/commands/create.d.ts +3 -0
  9. package/dist/commands/create.d.ts.map +1 -1
  10. package/dist/commands/create.js +48 -8
  11. package/dist/commands/create.js.map +1 -1
  12. package/dist/commands/eval.d.ts.map +1 -1
  13. package/dist/commands/eval.js +28 -17
  14. package/dist/commands/eval.js.map +1 -1
  15. package/dist/commands/mutate.d.ts.map +1 -1
  16. package/dist/commands/mutate.js +170 -20
  17. package/dist/commands/mutate.js.map +1 -1
  18. package/dist/commands/query.js +5 -1
  19. package/dist/commands/query.js.map +1 -1
  20. package/dist/commands/run.d.ts.map +1 -1
  21. package/dist/commands/run.js +14 -10
  22. package/dist/commands/run.js.map +1 -1
  23. package/dist/commands/stats.d.ts.map +1 -1
  24. package/dist/commands/stats.js +2 -1
  25. package/dist/commands/stats.js.map +1 -1
  26. package/dist/commands/validate.d.ts.map +1 -1
  27. package/dist/commands/validate.js +6 -2
  28. package/dist/commands/validate.js.map +1 -1
  29. package/dist/commands/view.d.ts +4 -0
  30. package/dist/commands/view.d.ts.map +1 -0
  31. package/dist/commands/view.js +254 -0
  32. package/dist/commands/view.js.map +1 -0
  33. package/dist/index.js +17 -0
  34. package/dist/index.js.map +1 -1
  35. package/dist/loader.d.ts +10 -0
  36. package/dist/loader.d.ts.map +1 -1
  37. package/dist/loader.js +16 -0
  38. package/dist/loader.js.map +1 -1
  39. package/dist/output.d.ts +8 -0
  40. package/dist/output.d.ts.map +1 -1
  41. package/dist/output.js +25 -0
  42. package/dist/output.js.map +1 -1
  43. package/dist/streaming-viewer.d.ts +2 -0
  44. package/dist/streaming-viewer.d.ts.map +1 -0
  45. package/dist/streaming-viewer.js +6 -0
  46. package/dist/streaming-viewer.js.map +1 -0
  47. package/package.json +9 -7
@@ -17,8 +17,8 @@
17
17
  */
18
18
  import { writeFile } from 'node:fs/promises';
19
19
  import { IfcCreator } from '@ifc-lite/create';
20
- import { getFlag, hasFlag, fatal, printJson } from '../output.js';
21
- const ELEMENT_TYPES = [
20
+ import { getFlag, hasFlag, fatal, printJson, validateViewerPort } from '../output.js';
21
+ export const ELEMENT_TYPES = [
22
22
  'wall', 'slab', 'column', 'beam', 'stair', 'roof', 'gable-roof',
23
23
  'door', 'window', 'wall-door', 'wall-window', 'ramp', 'railing',
24
24
  'plate', 'member', 'footing', 'pile', 'space', 'curtain-wall',
@@ -32,8 +32,7 @@ export async function createCommand(args) {
32
32
  fatal(`Usage: ifc-lite create <type> [options] --out <file.ifc>\n\nTypes: ${ELEMENT_TYPES.join(', ')}`);
33
33
  }
34
34
  const outPath = getFlag(args, '--out');
35
- if (!outPath)
36
- fatal('--out is required for create command');
35
+ const viewerPort = validateViewerPort(getFlag(args, '--viewer'));
37
36
  const projectName = getFlag(args, '--project') ?? 'CLI Project';
38
37
  const storeyName = getFlag(args, '--storey') ?? 'Ground Floor';
39
38
  const storeyElevation = parseFloat(getFlag(args, '--elevation') ?? '0');
@@ -78,20 +77,61 @@ export async function createCommand(args) {
78
77
  }
79
78
  }
80
79
  const result = creator.toIfc();
81
- await writeFile(outPath, result.content, 'utf-8');
80
+ // Write to file (if --out specified)
81
+ if (outPath) {
82
+ await writeFile(outPath, result.content, 'utf-8');
83
+ }
84
+ // Stream to viewer (if --viewer specified)
85
+ let viewerOk = false;
86
+ if (viewerPort) {
87
+ try {
88
+ const resp = await fetch(`http://localhost:${viewerPort}/api/command`, {
89
+ method: 'POST',
90
+ headers: { 'Content-Type': 'application/json' },
91
+ body: JSON.stringify({
92
+ action: 'addGeometry',
93
+ ifcContent: result.content,
94
+ }),
95
+ });
96
+ if (!resp.ok) {
97
+ process.stderr.write(`Viewer HTTP ${resp.status}: ${resp.statusText}\n`);
98
+ }
99
+ else {
100
+ const status = (await resp.json());
101
+ if (status.ok) {
102
+ viewerOk = true;
103
+ process.stderr.write(`Streamed to viewer on port ${viewerPort}\n`);
104
+ }
105
+ else {
106
+ process.stderr.write(`Viewer error: ${status.error}\n`);
107
+ }
108
+ }
109
+ }
110
+ catch {
111
+ process.stderr.write(`Could not connect to viewer on port ${viewerPort}\n`);
112
+ }
113
+ }
114
+ if (!outPath && !viewerPort) {
115
+ fatal('--out or --viewer is required for create command');
116
+ }
117
+ // Fail if viewer-only mode and streaming failed
118
+ if (viewerPort && !outPath && !viewerOk) {
119
+ fatal('Failed to stream geometry to viewer (no --out fallback)');
120
+ }
82
121
  if (jsonOutput) {
83
122
  printJson({
84
- file: outPath,
123
+ file: outPath ?? null,
85
124
  entityCount: result.stats.entityCount,
86
125
  fileSize: result.stats.fileSize,
87
126
  entities: result.entities,
127
+ streamedToViewer: viewerOk,
88
128
  });
89
129
  }
90
- else {
130
+ else if (outPath) {
91
131
  process.stderr.write(`IFC written to ${outPath} (${result.stats.entityCount} entities)\n`);
92
132
  }
93
133
  }
94
- function addElement(creator, storey, elementType, params) {
134
+ export function addElement(creator, storey, elementType, params) {
95
135
  const p = params;
96
136
  switch (elementType.toLowerCase()) {
97
137
  case 'wall':
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../../src/commands/eval.ts"],"names":[],"mappings":"AAyBA,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqG/D"}
1
+ {"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../../src/commands/eval.ts"],"names":[],"mappings":"AA2BA,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA6G/D"}
@@ -15,43 +15,54 @@
15
15
  * ifc-lite eval model.ifc "bim.query().byType('IfcWall').count()"
16
16
  * ifc-lite eval model.ifc "bim.query().byType('IfcDoor').toArray().map(d => d.name)"
17
17
  */
18
- import { createHeadlessContext } from '../loader.js';
19
- import { printJson, fatal, hasFlag, getFlag } from '../output.js';
18
+ import { createHeadlessContext, createStreamingContext } from '../loader.js';
19
+ import { printJson, fatal, hasFlag, getFlag, validateViewerPort } from '../output.js';
20
20
  /** Known flags that take a value argument */
21
- const EVAL_VALUE_FLAGS = new Set(['--type', '--limit']);
21
+ const EVAL_VALUE_FLAGS = new Set(['--type', '--limit', '--viewer']);
22
+ /** Known boolean flags (no value) */
23
+ const EVAL_BOOLEAN_FLAGS = new Set(['--json']);
22
24
  export async function evalCommand(args) {
23
25
  const jsonOutput = hasFlag(args, '--json');
24
26
  const typeFilter = getFlag(args, '--type');
25
27
  const limitStr = getFlag(args, '--limit');
28
+ const viewerPortRaw = getFlag(args, '--viewer');
29
+ const viewerPort = validateViewerPort(viewerPortRaw);
26
30
  // Parse positional args, skipping known flags and their values.
27
- // Once the file path (first positional) is collected, stop option parsing
28
- // so expressions like "-1" are not treated as flags.
31
+ // Known value flags (--type, --limit) and boolean flags (--json) are always
32
+ // skipped regardless of position. After the file path is collected, other
33
+ // dash-prefixed tokens (e.g. "-1") are treated as expression parts.
29
34
  const positional = [];
30
- let noMoreOptions = false;
35
+ let afterFilePath = false;
31
36
  for (let i = 0; i < args.length; i++) {
32
37
  const arg = args[i];
33
38
  if (arg === '--') {
34
- noMoreOptions = true;
39
+ afterFilePath = true;
35
40
  continue;
36
41
  }
37
- if (!noMoreOptions) {
38
- if (EVAL_VALUE_FLAGS.has(arg)) {
39
- i++; // skip flag value
40
- continue;
41
- }
42
- if (arg.startsWith('-'))
43
- continue; // skip boolean flags
42
+ // Always skip known flags, even after the file path
43
+ if (EVAL_VALUE_FLAGS.has(arg)) {
44
+ i++; // skip flag value
45
+ continue;
44
46
  }
47
+ if (EVAL_BOOLEAN_FLAGS.has(arg))
48
+ continue;
49
+ // Before the file path, skip any unrecognised flags too
50
+ if (!afterFilePath && arg.startsWith('-'))
51
+ continue;
45
52
  positional.push(arg);
46
- // After collecting the file path, treat everything else as expression parts
53
+ // After collecting the file path, allow dash-prefixed expression tokens
47
54
  if (positional.length === 1)
48
- noMoreOptions = true;
55
+ afterFilePath = true;
49
56
  }
50
57
  if (positional.length < 2)
51
58
  fatal('Usage: ifc-lite eval <file.ifc> "<expression>"');
52
59
  const [filePath, ...exprParts] = positional;
53
60
  const expression = exprParts.join(' ');
54
- const { bim } = await createHeadlessContext(filePath);
61
+ // Use streaming context if --viewer is specified, so bim.viewer.* calls
62
+ // are forwarded to the running 3D viewer in real time.
63
+ const { bim } = viewerPort
64
+ ? await createStreamingContext(filePath, viewerPort)
65
+ : await createHeadlessContext(filePath);
55
66
  // When --type is specified, iterate entities and evaluate per-entity with `ref` in scope
56
67
  if (typeFilter) {
57
68
  const types = typeFilter.split(',').map(t => {
@@ -1 +1 @@
1
- {"version":3,"file":"eval.js","sourceRoot":"","sources":["../../src/commands/eval.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eval.js","sourceRoot":"","sources":["../../src/commands/eval.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mutate.d.ts","sourceRoot":"","sources":["../../src/commands/mutate.ts"],"names":[],"mappings":"AAkGA,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiHjE"}
1
+ {"version":3,"file":"mutate.d.ts","sourceRoot":"","sources":["../../src/commands/mutate.ts"],"names":[],"mappings":"AA8GA,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA2IjE"}
@@ -9,7 +9,7 @@
9
9
  */
10
10
  import { writeFile } from 'node:fs/promises';
11
11
  import { createHeadlessContext } from '../loader.js';
12
- import { getFlag, hasFlag, fatal, printJson } from '../output.js';
12
+ import { getFlag, getAllFlags, hasFlag, fatal, printJson } from '../output.js';
13
13
  import { MutablePropertyView } from '@ifc-lite/mutations';
14
14
  import { StepExporter } from '@ifc-lite/export';
15
15
  import { extractPropertiesOnDemand } from '@ifc-lite/parser';
@@ -36,23 +36,32 @@ function parseWhereFilter(filter) {
36
36
  return { psetName, propName: rest, operator: 'exists' };
37
37
  }
38
38
  /**
39
- * Parse a --set value like "Pset_WallCommon.IsExternal=true" into
40
- * { psetName, propName, value }.
39
+ * Parse a --set value. Supports two forms:
40
+ * "PsetName.PropName=Value" → property set mutation
41
+ * "AttributeName=Value" → entity attribute mutation (Name, Description, etc.)
41
42
  */
42
43
  function parseSetArg(setStr) {
43
44
  const dotIdx = setStr.indexOf('.');
44
- if (dotIdx <= 0) {
45
- fatal(`Invalid --set syntax: "${setStr}". Expected: PsetName.PropName=Value`);
45
+ const eqIdx = setStr.indexOf('=');
46
+ if (eqIdx <= 0) {
47
+ fatal(`Invalid --set syntax: "${setStr}". Expected: PsetName.PropName=Value or AttributeName=Value`);
48
+ }
49
+ // No dot or dot comes after '=' → attribute mutation (e.g. "Name=TestWall")
50
+ if (dotIdx <= 0 || dotIdx > eqIdx) {
51
+ const propName = setStr.slice(0, eqIdx);
52
+ const value = setStr.slice(eqIdx + 1);
53
+ return { psetName: null, propName, value, isAttribute: true };
46
54
  }
55
+ // Standard pset.prop=value form
47
56
  const psetName = setStr.slice(0, dotIdx);
48
57
  const rest = setStr.slice(dotIdx + 1);
49
- const eqIdx = rest.indexOf('=');
50
- if (eqIdx <= 0) {
58
+ const restEqIdx = rest.indexOf('=');
59
+ if (restEqIdx <= 0) {
51
60
  fatal(`Invalid --set syntax: "${setStr}". Expected: PsetName.PropName=Value`);
52
61
  }
53
- const propName = rest.slice(0, eqIdx);
54
- const value = rest.slice(eqIdx + 1);
55
- return { psetName, propName, value };
62
+ const propName = rest.slice(0, restEqIdx);
63
+ const value = rest.slice(restEqIdx + 1);
64
+ return { psetName, propName, value, isAttribute: false };
56
65
  }
57
66
  /**
58
67
  * Coerce string value to appropriate type and determine PropertyValueType.
@@ -99,16 +108,19 @@ export async function mutateCommand(args) {
99
108
  fatal('Usage: ifc-lite mutate <file.ifc> --id <N> --set PsetName.PropName=Value --out output.ifc');
100
109
  const idStr = getFlag(args, '--id');
101
110
  const type = getFlag(args, '--type');
102
- const setStr = getFlag(args, '--set');
111
+ const setStrs = getAllFlags(args, '--set');
103
112
  const outPath = getFlag(args, '--out');
104
113
  const propFilter = getFlag(args, '--where');
105
114
  const jsonOutput = hasFlag(args, '--json');
106
- if (!setStr)
107
- fatal('--set is required. Example: --set Pset_WallCommon.IsExternal=true');
115
+ if (setStrs.length === 0)
116
+ fatal('--set is required. Example: --set Pset_WallCommon.IsExternal=true or --set Name=TestWall');
108
117
  if (!outPath)
109
118
  fatal('--out is required. Specify output file path.');
110
- const { psetName, propName, value } = parseSetArg(setStr);
111
- const { coerced, valueType } = coerceValue(value);
119
+ const mutations = setStrs.map(s => {
120
+ const parsed = parseSetArg(s);
121
+ const { coerced, valueType } = coerceValue(parsed.value);
122
+ return { ...parsed, coerced, valueType };
123
+ });
112
124
  // Load the store and create a BimContext for querying
113
125
  const { bim, store } = await createHeadlessContext(filePath);
114
126
  // Find target entities
@@ -174,8 +186,17 @@ export async function mutateCommand(args) {
174
186
  });
175
187
  // Apply mutations via the real mutation system
176
188
  let mutatedCount = 0;
189
+ const attributeMutations = [];
177
190
  for (const entity of targets) {
178
- mutationView.setProperty(entity.ref.expressId, psetName, propName, coerced, valueType);
191
+ for (const mut of mutations) {
192
+ if (mut.isAttribute) {
193
+ // Attribute mutations are handled via store manipulation
194
+ attributeMutations.push({ entity, propName: mut.propName, value: mut.value });
195
+ }
196
+ else {
197
+ mutationView.setProperty(entity.ref.expressId, mut.psetName, mut.propName, mut.coerced, mut.valueType);
198
+ }
199
+ }
179
200
  mutatedCount++;
180
201
  }
181
202
  // Export with mutations applied via StepExporter
@@ -185,19 +206,148 @@ export async function mutateCommand(args) {
185
206
  schema: schema,
186
207
  applyMutations: true,
187
208
  });
188
- await writeFile(outPath, result.content, 'utf-8');
209
+ // Apply attribute mutations via STEP text post-processing
210
+ let outputContent = result.content;
211
+ if (attributeMutations.length > 0) {
212
+ outputContent = applyAttributeMutations(outputContent, attributeMutations);
213
+ }
214
+ await writeFile(outPath, outputContent, 'utf-8');
215
+ const mutationDescs = mutations.map(m => m.isAttribute ? m.propName : `${m.psetName}.${m.propName}`);
189
216
  if (jsonOutput) {
190
217
  printJson({
191
218
  mutated: mutatedCount,
192
- property: `${psetName}.${propName}`,
193
- value: coerced,
219
+ properties: mutationDescs.map((desc, i) => ({
220
+ property: desc,
221
+ value: mutations[i].coerced,
222
+ })),
194
223
  output: outPath,
195
224
  stats: result.stats,
196
225
  });
197
226
  }
198
227
  else {
199
- process.stderr.write(`Mutated ${mutatedCount} entities: ${psetName}.${propName} = ${value}\n`);
228
+ for (const mut of mutations) {
229
+ const desc = mut.isAttribute ? mut.propName : `${mut.psetName}.${mut.propName}`;
230
+ process.stderr.write(`Mutated ${mutatedCount} entities: ${desc} = ${mut.value}\n`);
231
+ }
200
232
  process.stderr.write(`Written to ${outPath} (${result.stats.entityCount} entities, ${result.stats.newEntityCount} new)\n`);
201
233
  }
202
234
  }
235
+ /**
236
+ * IFC entity attribute indices (0-based positions in STEP argument list).
237
+ * Standard for all IfcRoot subtypes: GlobalId(0), OwnerHistory(1), Name(2), Description(3).
238
+ * IfcObject subtypes add ObjectType(4). Tag varies by entity type.
239
+ */
240
+ const ATTRIBUTE_INDEX = {
241
+ name: 2,
242
+ description: 3,
243
+ objecttype: 4,
244
+ };
245
+ /**
246
+ * IFC types that have an ObjectType attribute at index 4.
247
+ * Only IfcObject subtypes (building elements, spatial elements) define ObjectType.
248
+ * Relationship types (IfcRelAggregates, etc.) and type objects do NOT.
249
+ */
250
+ const OBJECTTYPE_TYPES = new Set([
251
+ 'IFCWALL', 'IFCWALLSTANDARDCASE', 'IFCSLAB', 'IFCCOLUMN', 'IFCBEAM',
252
+ 'IFCDOOR', 'IFCWINDOW', 'IFCROOF', 'IFCSTAIR', 'IFCRAILING', 'IFCMEMBER',
253
+ 'IFCPLATE', 'IFCCOVERING', 'IFCFOOTING', 'IFCPILE', 'IFCCURTAINWALL',
254
+ 'IFCRAMP', 'IFCSPACE', 'IFCBUILDINGELEMENTPROXY', 'IFCFURNISHINGELEMENT',
255
+ 'IFCFLOWSEGMENT', 'IFCFLOWTERMINAL', 'IFCFLOWFITTING', 'IFCDISTRIBUTIONELEMENT',
256
+ 'IFCOPENINGELEMENT', 'IFCSITE', 'IFCBUILDING', 'IFCBUILDINGSTOREY', 'IFCPROJECT',
257
+ ]);
258
+ /**
259
+ * Apply attribute mutations to STEP content via text replacement.
260
+ * For each target entity, finds its STEP line and replaces the attribute at the known index.
261
+ */
262
+ function applyAttributeMutations(content, mutations) {
263
+ // Group mutations by expressId for efficient single-pass replacement
264
+ const mutationsByEntity = new Map();
265
+ for (const m of mutations) {
266
+ const id = m.entity.ref.expressId;
267
+ const list = mutationsByEntity.get(id) ?? [];
268
+ list.push({ propName: m.propName, value: m.value });
269
+ mutationsByEntity.set(id, list);
270
+ }
271
+ const lines = content.split('\n');
272
+ for (let i = 0; i < lines.length; i++) {
273
+ const line = lines[i];
274
+ // Match entity lines: #123=IFCTYPE(...);
275
+ const match = line.match(/^#(\d+)\s*=\s*(\w+)\s*\(/);
276
+ if (!match)
277
+ continue;
278
+ const expressId = parseInt(match[1], 10);
279
+ const entityType = match[2].toUpperCase();
280
+ const entityMuts = mutationsByEntity.get(expressId);
281
+ if (!entityMuts)
282
+ continue;
283
+ // Parse the STEP argument list (handle nested parens and quoted strings)
284
+ const argsStart = line.indexOf('(');
285
+ const argsEnd = line.lastIndexOf(')');
286
+ if (argsStart === -1 || argsEnd === -1)
287
+ continue;
288
+ const args = splitStepArgs(line.slice(argsStart + 1, argsEnd));
289
+ for (const mut of entityMuts) {
290
+ const attrIdx = ATTRIBUTE_INDEX[mut.propName.toLowerCase()];
291
+ if (attrIdx !== undefined && attrIdx < args.length) {
292
+ // Validate ObjectType is only written to entities that define it
293
+ if (mut.propName.toLowerCase() === 'objecttype' && !OBJECTTYPE_TYPES.has(entityType)) {
294
+ process.stderr.write(`Warning: attribute "ObjectType" not applicable to ${entityType} #${expressId}, skipping\n`);
295
+ continue;
296
+ }
297
+ // Escape for STEP format and wrap in quotes
298
+ const escaped = mut.value.replace(/\\/g, '\\\\').replace(/'/g, "''");
299
+ args[attrIdx] = `'${escaped}'`;
300
+ }
301
+ else {
302
+ process.stderr.write(`Warning: attribute "${mut.propName}" not recognized for entity #${expressId}\n`);
303
+ }
304
+ }
305
+ lines[i] = line.slice(0, argsStart + 1) + args.join(',') + line.slice(argsEnd);
306
+ }
307
+ return lines.join('\n');
308
+ }
309
+ /**
310
+ * Split a STEP argument string by commas, respecting nested parens and quoted strings.
311
+ */
312
+ function splitStepArgs(argsStr) {
313
+ const result = [];
314
+ let current = '';
315
+ let depth = 0;
316
+ let inString = false;
317
+ for (let i = 0; i < argsStr.length; i++) {
318
+ const ch = argsStr[i];
319
+ if (inString) {
320
+ current += ch;
321
+ if (ch === "'" && argsStr[i + 1] === "'") {
322
+ current += "'";
323
+ i++; // skip escaped quote
324
+ }
325
+ else if (ch === "'") {
326
+ inString = false;
327
+ }
328
+ }
329
+ else if (ch === "'") {
330
+ inString = true;
331
+ current += ch;
332
+ }
333
+ else if (ch === '(') {
334
+ depth++;
335
+ current += ch;
336
+ }
337
+ else if (ch === ')') {
338
+ depth--;
339
+ current += ch;
340
+ }
341
+ else if (ch === ',' && depth === 0) {
342
+ result.push(current);
343
+ current = '';
344
+ }
345
+ else {
346
+ current += ch;
347
+ }
348
+ }
349
+ if (current)
350
+ result.push(current);
351
+ return result;
352
+ }
203
353
  //# sourceMappingURL=mutate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mutate.js","sourceRoot":"","sources":["../../src/commands/mutate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mutate.js","sourceRoot":"","sources":["../../src/commands/mutate.ts"],"names":[],"mappings":"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"}
@@ -956,7 +956,11 @@ function outputGroupBy(entities, groupByKey, sumQuantity, bim, jsonOutput, group
956
956
  }
957
957
  if (sumQuantity) {
958
958
  const grandTotal = [...groupAgg.values()].reduce((a, b) => a + b, 0);
959
- process.stdout.write(`\n Total: ${entities.length} entities in ${groups.size} groups\n\n`);
959
+ process.stdout.write(`\n Total: ${entities.length} entities in ${groups.size} groups\n`);
960
+ if (grandTotal === 0 && entities.length > 0) {
961
+ process.stderr.write(`\n Warning: All ${sumQuantity} values are 0. The file may not contain quantity data for this property.\n`);
962
+ }
963
+ process.stdout.write('\n');
960
964
  }
961
965
  else {
962
966
  process.stdout.write(`\n Total: ${entities.length} entities in ${groups.size} groups\n\n`);