@ifc-lite/cli 0.24.3 → 0.25.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 (39) hide show
  1. package/dist/commands/analyze.d.ts.map +1 -1
  2. package/dist/commands/analyze.js +11 -3
  3. package/dist/commands/analyze.js.map +1 -1
  4. package/dist/commands/ask.d.ts.map +1 -1
  5. package/dist/commands/ask.js +4 -0
  6. package/dist/commands/ask.js.map +1 -1
  7. package/dist/commands/clash.d.ts +12 -0
  8. package/dist/commands/clash.d.ts.map +1 -1
  9. package/dist/commands/clash.js +17 -3
  10. package/dist/commands/clash.js.map +1 -1
  11. package/dist/commands/export.d.ts.map +1 -1
  12. package/dist/commands/export.js +8 -11
  13. package/dist/commands/export.js.map +1 -1
  14. package/dist/commands/gym/ops.d.ts.map +1 -1
  15. package/dist/commands/gym/ops.js +3 -8
  16. package/dist/commands/gym/ops.js.map +1 -1
  17. package/dist/commands/ids.d.ts.map +1 -1
  18. package/dist/commands/ids.js +6 -0
  19. package/dist/commands/ids.js.map +1 -1
  20. package/dist/commands/lod.d.ts.map +1 -1
  21. package/dist/commands/lod.js +2 -15
  22. package/dist/commands/lod.js.map +1 -1
  23. package/dist/commands/mcp.d.ts +24 -0
  24. package/dist/commands/mcp.d.ts.map +1 -1
  25. package/dist/commands/mcp.js +46 -18
  26. package/dist/commands/mcp.js.map +1 -1
  27. package/dist/commands/mutate.d.ts +22 -0
  28. package/dist/commands/mutate.d.ts.map +1 -1
  29. package/dist/commands/mutate.js +25 -15
  30. package/dist/commands/mutate.js.map +1 -1
  31. package/dist/headless-backend.d.ts +20 -3
  32. package/dist/headless-backend.d.ts.map +1 -1
  33. package/dist/headless-backend.js +51 -72
  34. package/dist/headless-backend.js.map +1 -1
  35. package/dist/headless-test-helpers.d.ts +25 -0
  36. package/dist/headless-test-helpers.d.ts.map +1 -0
  37. package/dist/headless-test-helpers.js +72 -0
  38. package/dist/headless-test-helpers.js.map +1 -0
  39. package/package.json +20 -20
@@ -1,2 +1,26 @@
1
+ /**
2
+ * Collect the positional `.ifc` paths from `ifc-lite mcp`'s argv.
3
+ *
4
+ * The naive `args.filter(a => !a.startsWith('-'))` also catches option VALUES
5
+ * (`8765` after `--port`, `/models` after `--allow`) and turns them into bogus
6
+ * IFC paths, so the walk has to skip each value-bearing flag's next token. It
7
+ * needs a list of which flags those are — and that list used to be a local
8
+ * copy of the standalone `ifc-lite-mcp` binary's flag set.
9
+ *
10
+ * The copy drifted. `--allow-origin` was added to the binary and never here,
11
+ * so `ifc-lite mcp --transport http --allow-origin https://app.example.test
12
+ * model.ifc` skipped the flag, failed to skip the origin, and called
13
+ * `resolve('https://app.example.test')` — loading the origin as a model file.
14
+ * `MCP_VALUE_FLAGS` now comes from `@ifc-lite/mcp/cli-args`, where a test
15
+ * drives the binary's real parser against it.
16
+ *
17
+ * Flags this subcommand cannot act on are reported rather than honoured: their
18
+ * values are still skipped (that is the bug above), but the caller warns
19
+ * instead of letting the user believe the flag took effect.
20
+ */
21
+ export declare function collectModelPaths(args: string[]): {
22
+ files: string[];
23
+ unsupported: string[];
24
+ };
1
25
  export declare function mcpCommand(args: string[]): Promise<void>;
2
26
  //# sourceMappingURL=mcp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AA8BA,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiJ9D"}
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AA+BA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAAE,CAa5F;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA2I9D"}
@@ -10,7 +10,44 @@
10
10
  */
11
11
  import { resolve } from 'node:path';
12
12
  import { StdioTransport, HttpTransport, BearerTokenAuth, AllowAllAuth, loadIfcModel, createMCPServer, InMemoryModelRegistry, fullScope, readOnlyScope, VERSION, } from '@ifc-lite/mcp';
13
+ import { isMcpValueFlag, MCP_SUBCOMMAND_UNSUPPORTED_FLAGS } from '@ifc-lite/mcp/cli-args';
13
14
  import { fatal, hasFlag, getFlag, getAllFlags } from '../output.js';
15
+ /**
16
+ * Collect the positional `.ifc` paths from `ifc-lite mcp`'s argv.
17
+ *
18
+ * The naive `args.filter(a => !a.startsWith('-'))` also catches option VALUES
19
+ * (`8765` after `--port`, `/models` after `--allow`) and turns them into bogus
20
+ * IFC paths, so the walk has to skip each value-bearing flag's next token. It
21
+ * needs a list of which flags those are — and that list used to be a local
22
+ * copy of the standalone `ifc-lite-mcp` binary's flag set.
23
+ *
24
+ * The copy drifted. `--allow-origin` was added to the binary and never here,
25
+ * so `ifc-lite mcp --transport http --allow-origin https://app.example.test
26
+ * model.ifc` skipped the flag, failed to skip the origin, and called
27
+ * `resolve('https://app.example.test')` — loading the origin as a model file.
28
+ * `MCP_VALUE_FLAGS` now comes from `@ifc-lite/mcp/cli-args`, where a test
29
+ * drives the binary's real parser against it.
30
+ *
31
+ * Flags this subcommand cannot act on are reported rather than honoured: their
32
+ * values are still skipped (that is the bug above), but the caller warns
33
+ * instead of letting the user believe the flag took effect.
34
+ */
35
+ export function collectModelPaths(args) {
36
+ const files = [];
37
+ const unsupported = [];
38
+ for (let i = 0; i < args.length; i++) {
39
+ const arg = args[i];
40
+ if (arg.startsWith('-')) {
41
+ if (MCP_SUBCOMMAND_UNSUPPORTED_FLAGS.includes(arg))
42
+ unsupported.push(arg);
43
+ if (isMcpValueFlag(arg))
44
+ i++; // consume the value as well
45
+ continue;
46
+ }
47
+ files.push(resolve(arg));
48
+ }
49
+ return { files, unsupported };
50
+ }
14
51
  export async function mcpCommand(args) {
15
52
  if (args.length === 0 && (process.stdin.isTTY ?? false)) {
16
53
  process.stderr.write([
@@ -49,23 +86,9 @@ export async function mcpCommand(args) {
49
86
  const openBrowser = hasFlag(args, '--open');
50
87
  const viewerPort = Number(getFlag(args, '--viewer-port') ?? 0);
51
88
  const allowedPaths = getAllFlags(args, '--allow').map((p) => resolve(p));
52
- // Parse positional .ifc paths. The naive `args.filter(a => !a.startsWith('-'))`
53
- // also catches option values (e.g. `8765` after `--port`, `/models` after
54
- // `--allow`), turning them into bogus IFC paths. Walk explicitly and skip
55
- // each value-bearing flag's next token.
56
- const VALUE_FLAGS = new Set([
57
- '--transport', '--port', '--host', '--token', '--bsdd',
58
- '--allow', '--viewer-port',
59
- ]);
60
- const files = [];
61
- for (let i = 0; i < args.length; i++) {
62
- const arg = args[i];
63
- if (arg.startsWith('-')) {
64
- if (VALUE_FLAGS.has(arg))
65
- i++; // consume the value as well
66
- continue;
67
- }
68
- files.push(resolve(arg));
89
+ const { files, unsupported } = collectModelPaths(args);
90
+ for (const flag of unsupported) {
91
+ process.stderr.write(`[ifc-lite mcp] ${flag} is not honoured by this subcommand run the standalone \`ifc-lite-mcp\` binary for it.\n`);
69
92
  }
70
93
  const scope = readOnly ? readOnlyScope() : fullScope();
71
94
  if (transport === 'stdio') {
@@ -141,7 +164,12 @@ export async function mcpCommand(args) {
141
164
  // Keys per-session state (layer workspaces) and its disposal
142
165
  // (#1030); the transport rejects servers built without it.
143
166
  sessionId,
144
- config: { readOnly, bsddEndpoint: bsdd, samplingEnabled: false },
167
+ config: {
168
+ readOnly,
169
+ bsddEndpoint: bsdd,
170
+ allowedPaths: allowedPaths.length > 0 ? allowedPaths : undefined,
171
+ samplingEnabled: false,
172
+ },
145
173
  });
146
174
  },
147
175
  };
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,28 @@ export declare function coerceValue(value: string): {
31
31
  */
32
32
  export declare function matchesFilter(actual: any, operator: string, expected?: string): boolean;
33
33
  export declare function mutateCommand(args: string[]): Promise<void>;
34
+ /**
35
+ * IFC types that define an ObjectType attribute, read from the bundled
36
+ * buildingSMART schema for the file's own version.
37
+ *
38
+ * This used to be a hand-written list of 29 type names. Every entry in it was
39
+ * correct, but IFC4 declares ObjectType on **218** entities, so 189 were
40
+ * missing — `--set ObjectType=...` on an IfcFurniture, IfcStairFlight,
41
+ * IfcPipeSegment or IfcSanitaryTerminal was refused with a "not applicable"
42
+ * warning that was simply wrong. Deriving the set means it cannot fall behind
43
+ * the schema again, and it is schema-aware: IFC2X3 and IFC4 do not declare
44
+ * ObjectType on the same entities.
45
+ */
46
+ export declare function entitiesWithObjectType(schema: string): Promise<ReadonlySet<string>>;
47
+ /**
48
+ * Apply attribute mutations to STEP content via text replacement.
49
+ * For each target entity, finds its STEP line and replaces the attribute at the known index.
50
+ */
51
+ export declare function applyAttributeMutations(content: string, mutations: {
52
+ entity: any;
53
+ propName: string;
54
+ value: string;
55
+ }[], objectTypeEntities: ReadonlySet<string>): string;
34
56
  /**
35
57
  * Split a STEP argument string by commas, respecting nested parens and quoted strings.
36
58
  */
@@ -1 +1 @@
1
- {"version":3,"file":"mutate.d.ts","sourceRoot":"","sources":["../../src/commands/mutate.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAiBzH;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,CAyB9H;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAAC,SAAS,EAAE,iBAAiB,CAAA;CAAE,CAW/G;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAgBvF;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsJjE;AAqFD;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAkCvD"}
1
+ {"version":3,"file":"mutate.d.ts","sourceRoot":"","sources":["../../src/commands/mutate.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,iBAAiB,EAAwC,MAAM,gBAAgB,CAAC;AAEzF;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAiBzH;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,CAyB9H;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAAC,SAAS,EAAE,iBAAiB,CAAA;CAAE,CAW/G;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAgBvF;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA0JjE;AAaD;;;;;;;;;;;GAWG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAUzF;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,EAC7D,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAAC,GACtC,MAAM,CAiDR;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAkCvD"}
@@ -13,7 +13,7 @@ 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, extractQuantitiesOnDemand } from '@ifc-lite/parser';
16
- import { PropertyValueType } from '@ifc-lite/data';
16
+ import { PropertyValueType, findAttribute } from '@ifc-lite/data';
17
17
  /**
18
18
  * Parse a --where filter string.
19
19
  */
@@ -219,7 +219,7 @@ export async function mutateCommand(args) {
219
219
  // Apply attribute mutations via STEP text post-processing
220
220
  if (attributeMutations.length > 0) {
221
221
  const textContent = new TextDecoder().decode(result.content);
222
- const outputContent = applyAttributeMutations(textContent, attributeMutations);
222
+ const outputContent = applyAttributeMutations(textContent, attributeMutations, await entitiesWithObjectType(schema));
223
223
  await writeFile(outPath, outputContent, 'utf-8');
224
224
  }
225
225
  else {
@@ -256,23 +256,33 @@ const ATTRIBUTE_INDEX = {
256
256
  objecttype: 4,
257
257
  };
258
258
  /**
259
- * IFC types that have an ObjectType attribute at index 4.
260
- * Only IfcObject subtypes (building elements, spatial elements) define ObjectType.
261
- * Relationship types (IfcRelAggregates, etc.) and type objects do NOT.
259
+ * IFC types that define an ObjectType attribute, read from the bundled
260
+ * buildingSMART schema for the file's own version.
261
+ *
262
+ * This used to be a hand-written list of 29 type names. Every entry in it was
263
+ * correct, but IFC4 declares ObjectType on **218** entities, so 189 were
264
+ * missing — `--set ObjectType=...` on an IfcFurniture, IfcStairFlight,
265
+ * IfcPipeSegment or IfcSanitaryTerminal was refused with a "not applicable"
266
+ * warning that was simply wrong. Deriving the set means it cannot fall behind
267
+ * the schema again, and it is schema-aware: IFC2X3 and IFC4 do not declare
268
+ * ObjectType on the same entities.
262
269
  */
263
- const OBJECTTYPE_TYPES = new Set([
264
- 'IFCWALL', 'IFCWALLSTANDARDCASE', 'IFCSLAB', 'IFCCOLUMN', 'IFCBEAM',
265
- 'IFCDOOR', 'IFCWINDOW', 'IFCROOF', 'IFCSTAIR', 'IFCRAILING', 'IFCMEMBER',
266
- 'IFCPLATE', 'IFCCOVERING', 'IFCFOOTING', 'IFCPILE', 'IFCCURTAINWALL',
267
- 'IFCRAMP', 'IFCSPACE', 'IFCBUILDINGELEMENTPROXY', 'IFCFURNISHINGELEMENT',
268
- 'IFCFLOWSEGMENT', 'IFCFLOWTERMINAL', 'IFCFLOWFITTING', 'IFCDISTRIBUTIONELEMENT',
269
- 'IFCOPENINGELEMENT', 'IFCSITE', 'IFCBUILDING', 'IFCBUILDINGSTOREY', 'IFCPROJECT',
270
- ]);
270
+ export async function entitiesWithObjectType(schema) {
271
+ // `findAttribute` only knows the versions it has tables for; anything else
272
+ // (notably IFC5, which StepExporter accepts) falls back to IFC4 rather than
273
+ // throwing, which is what the hand-written list effectively did.
274
+ const known = new Set(['IFC2X3', 'IFC4', 'IFC4X3', 'IFC4X3_ADD2']);
275
+ const version = (known.has(schema) ? schema : 'IFC4');
276
+ const attr = await findAttribute(version, 'ObjectType');
277
+ // An attribute can be declared on an entity as a simple value or as part of
278
+ // a complex type; both mean the slot exists on that entity.
279
+ return new Set([...(attr?.simpleValueEntities ?? []), ...(attr?.complexEntities ?? [])]);
280
+ }
271
281
  /**
272
282
  * Apply attribute mutations to STEP content via text replacement.
273
283
  * For each target entity, finds its STEP line and replaces the attribute at the known index.
274
284
  */
275
- function applyAttributeMutations(content, mutations) {
285
+ export function applyAttributeMutations(content, mutations, objectTypeEntities) {
276
286
  // Group mutations by expressId for efficient single-pass replacement
277
287
  const mutationsByEntity = new Map();
278
288
  for (const m of mutations) {
@@ -303,7 +313,7 @@ function applyAttributeMutations(content, mutations) {
303
313
  const attrIdx = ATTRIBUTE_INDEX[mut.propName.toLowerCase()];
304
314
  if (attrIdx !== undefined && attrIdx < args.length) {
305
315
  // Validate ObjectType is only written to entities that define it
306
- if (mut.propName.toLowerCase() === 'objecttype' && !OBJECTTYPE_TYPES.has(entityType)) {
316
+ if (mut.propName.toLowerCase() === 'objecttype' && !objectTypeEntities.has(entityType)) {
307
317
  process.stderr.write(`Warning: attribute "ObjectType" not applicable to ${entityType} #${expressId}, skipping\n`);
308
318
  continue;
309
319
  }
@@ -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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"}
@@ -5,10 +5,18 @@
5
5
  * the standard BimBackend interface. Viewer-specific operations (colorize,
6
6
  * flyTo, etc.) are no-ops.
7
7
  */
8
- import type { BimBackend, BimEventType, ModelBackendMethods, QueryBackendMethods, SelectionBackendMethods, VisibilityBackendMethods, ViewerBackendMethods, MutateBackendMethods, StoreBackendMethods, SpacesBackendMethods, SpatialBackendMethods, ExportBackendMethods, LensBackendMethods, FilesBackendMethods, ScheduleBackendMethods } from '@ifc-lite/sdk';
8
+ import type { BimBackend, BimEventType, ModelBackendMethods, QueryBackendMethods, SelectionBackendMethods, VisibilityBackendMethods, ViewerBackendMethods, MutateBackendMethods, StoreBackendMethods, SpacesBackendMethods, StyleBackendMethods, SpatialBackendMethods, ExportBackendMethods, LensBackendMethods, FilesBackendMethods, ScheduleBackendMethods } from '@ifc-lite/sdk';
9
9
  import type { IfcDataStore } from '@ifc-lite/parser';
10
- export declare function expandTypes(types: string[]): string[];
11
- export declare function isProductType(type: string): boolean;
10
+ import { expandTypes, isQueryableObjectType } from '@ifc-lite/parser';
11
+ export { expandTypes };
12
+ /**
13
+ * Which classes an unfiltered query answers with.
14
+ *
15
+ * Thin alias: the predicate is schema logic and lives in `@ifc-lite/parser`, so
16
+ * the CLI and MCP backends cannot drift apart on it. Kept as a named export
17
+ * here because both packages already publish it under this name.
18
+ */
19
+ export declare const isProductType: typeof isQueryableObjectType;
12
20
  /**
13
21
  * Normalize boolean-like values for comparison.
14
22
  * IFC STEP files store booleans as .T./.F., but users pass true/false.
@@ -29,11 +37,13 @@ export declare class HeadlessBackend implements BimBackend {
29
37
  readonly files: FilesBackendMethods;
30
38
  readonly schedule: ScheduleBackendMethods;
31
39
  readonly spaces: SpacesBackendMethods;
40
+ readonly style: StyleBackendMethods;
32
41
  private dataStore;
33
42
  private modelName;
34
43
  private mutationView;
35
44
  private storeEditor;
36
45
  constructor(store: IfcDataStore, modelName: string);
46
+ private createStyleAdapter;
37
47
  private createSpacesAdapter;
38
48
  subscribe(_event: BimEventType, _handler: (data: unknown) => void): () => void;
39
49
  private createModelAdapter;
@@ -42,6 +52,13 @@ export declare class HeadlessBackend implements BimBackend {
42
52
  private createVisibilityAdapter;
43
53
  private createViewerAdapter;
44
54
  private createMutateAdapter;
55
+ /**
56
+ * The overlay every write goes through, created on first use.
57
+ *
58
+ * Built by `getOrCreateStoreEditor` so the property and quantity extractors
59
+ * are wired exactly once, whichever adapter writes first.
60
+ */
61
+ private getOrCreateMutationView;
45
62
  private getOrCreateStoreEditor;
46
63
  private createStoreAdapter;
47
64
  private createSpatialAdapter;
@@ -1 +1 @@
1
- {"version":3,"file":"headless-backend.d.ts","sourceRoot":"","sources":["../src/headless-backend.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EAavB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AA2ErD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAWrD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAUnD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAI7D;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAcvF;AAED,qBAAa,eAAgB,YAAW,UAAU;IAChD,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,uBAAuB,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,wBAAwB,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IAEtC,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,YAAY,CAAoC;IACxD,OAAO,CAAC,WAAW,CAA4B;gBAEnC,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM;IAkBlD,OAAO,CAAC,mBAAmB;IAU3B,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI;IAI9E,OAAO,CAAC,kBAAkB;IAoB1B,OAAO,CAAC,kBAAkB;IAoM1B,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,uBAAuB;IAS/B,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,sBAAsB;IAoB9B,OAAO,CAAC,kBAAkB;IA6E1B,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,mBAAmB;IA0H3B,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,qBAAqB;CA+B9B"}
1
+ {"version":3,"file":"headless-backend.d.ts","sourceRoot":"","sources":["../src/headless-backend.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EAavB,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AA+BrD,OAAO,EASL,WAAW,EAGX,qBAAqB,EACtB,MAAM,kBAAkB,CAAC;AAO1B,OAAO,EAAE,WAAW,EAAE,CAAC;AAavB;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,8BAAwB,CAAC;AAEnD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAI7D;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAcvF;AAED,qBAAa,eAAgB,YAAW,UAAU;IAChD,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,uBAAuB,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,wBAAwB,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IAEpC,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,YAAY,CAAoC;IACxD,OAAO,CAAC,WAAW,CAA4B;gBAEnC,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM;IAmBlD,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,mBAAmB;IAU3B,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI;IAI9E,OAAO,CAAC,kBAAkB;IAoB1B,OAAO,CAAC,kBAAkB;IAoM1B,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,uBAAuB;IAS/B,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,mBAAmB;IAI3B;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,sBAAsB;IAoB9B,OAAO,CAAC,kBAAkB;IA6E1B,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,mBAAmB;IAuH3B,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,qBAAqB;CA+B9B"}
@@ -1,13 +1,17 @@
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 { createHeadlessMutateAdapter } from '@ifc-lite/sdk';
4
5
  import { MutablePropertyView, StoreEditor } from '@ifc-lite/mutations';
5
- import { addBeamToStore, addColumnToStore, addDoorToStore, addMemberToStore, addPlateToStore, addRoofToStore, addSlabToStore, addSpaceToStore, addWallToStore, addWindowToStore, resolveSpatialAnchor, generateSpaces, listStoreys, } from '@ifc-lite/create';
6
+ import { addBeamToStore, addColumnToStore, addDoorToStore, addMemberToStore, addPlateToStore, addRoofToStore, applyStylesInStore, addSlabToStore, addSpaceToStore, addWallToStore, addWindowToStore, resolveSpatialAnchor, generateSpaces, listStoreys, } from '@ifc-lite/create';
6
7
  import { EntityNode } from '@ifc-lite/query';
7
- import { RelationshipType, IfcTypeEnum, IfcTypeEnumFromString } from '@ifc-lite/data';
8
- import { extractAllEntityAttributes, extractClassificationsOnDemand, extractMaterialsOnDemand, extractPropertiesOnDemand, extractQuantitiesOnDemand, extractTypePropertiesOnDemand, extractDocumentsOnDemand, extractRelationshipsOnDemand, extractScheduleOnDemand, } from '@ifc-lite/parser';
9
- import { exportToStep, StepExporter } from '@ifc-lite/export';
8
+ import { extractAllEntityAttributes, extractClassificationsOnDemand, extractMaterialsOnDemand, extractPropertiesOnDemand, extractQuantitiesOnDemand, extractTypePropertiesOnDemand, extractDocumentsOnDemand, extractRelationshipsOnDemand, expandTypes, QUERY_REL_TYPE_MAP, extractScheduleOnDemand, isQueryableObjectType, } from '@ifc-lite/parser';
9
+ import { escapeCsvCell, exportToStep, StepExporter } from '@ifc-lite/export';
10
10
  import { exportHbjson, exportDfjson } from './energy-export.js';
11
+ // `expandTypes` used to be defined here; it now comes from `@ifc-lite/parser`,
12
+ // shared with the other query backends (see `query-backend-maps.ts`). Re-exported
13
+ // so this module's consumers are unaffected by where it lives.
14
+ export { expandTypes };
11
15
  const MODEL_ID = 'default';
12
16
  /**
13
17
  * Strip a real IFC source-file extension from a filename-derived model name.
@@ -17,54 +21,14 @@ const MODEL_ID = 'default';
17
21
  function stripIfcExtension(name) {
18
22
  return name.replace(/\.(ifc|ifcx|ifczip)$/i, '');
19
23
  }
20
- const REL_TYPE_MAP = {
21
- IfcRelContainedInSpatialStructure: RelationshipType.ContainsElements,
22
- IfcRelAggregates: RelationshipType.Aggregates,
23
- IfcRelDefinesByType: RelationshipType.DefinesByType,
24
- IfcRelVoidsElement: RelationshipType.VoidsElement,
25
- IfcRelFillsElement: RelationshipType.FillsElement,
26
- };
27
- const IFC_SUBTYPES = {
28
- IFCWALL: ['IFCWALLSTANDARDCASE', 'IFCWALLELEMENTEDCASE'],
29
- IFCBEAM: ['IFCBEAMSTANDARDCASE'],
30
- IFCCOLUMN: ['IFCCOLUMNSTANDARDCASE'],
31
- IFCDOOR: ['IFCDOORSTANDARDCASE'],
32
- IFCWINDOW: ['IFCWINDOWSTANDARDCASE'],
33
- IFCSLAB: ['IFCSLABSTANDARDCASE', 'IFCSLABELEMENTEDCASE'],
34
- IFCMEMBER: ['IFCMEMBERSTANDARDCASE'],
35
- IFCPLATE: ['IFCPLATESTANDARDCASE'],
36
- IFCOPENINGELEMENT: ['IFCOPENINGSTANDARDCASE'],
37
- };
38
- export function expandTypes(types) {
39
- const result = [];
40
- for (const type of types) {
41
- const upper = type.toUpperCase();
42
- result.push(upper);
43
- const subtypes = IFC_SUBTYPES[upper];
44
- if (subtypes) {
45
- for (const sub of subtypes)
46
- result.push(sub);
47
- }
48
- }
49
- return result;
50
- }
51
- export function isProductType(type) {
52
- const enumVal = IfcTypeEnumFromString(type);
53
- if (enumVal === IfcTypeEnum.Unknown)
54
- return false;
55
- const upper = type.toUpperCase();
56
- if (upper.startsWith('IFCREL'))
57
- return false;
58
- if (upper.startsWith('IFCPROPERTY'))
59
- return false;
60
- if (upper.startsWith('IFCQUANTITY'))
61
- return false;
62
- if (upper === 'IFCELEMENTQUANTITY')
63
- return false;
64
- if (upper.endsWith('TYPE'))
65
- return false;
66
- return true;
67
- }
24
+ /**
25
+ * Which classes an unfiltered query answers with.
26
+ *
27
+ * Thin alias: the predicate is schema logic and lives in `@ifc-lite/parser`, so
28
+ * the CLI and MCP backends cannot drift apart on it. Kept as a named export
29
+ * here because both packages already publish it under this name.
30
+ */
31
+ export const isProductType = isQueryableObjectType;
68
32
  /**
69
33
  * Normalize boolean-like values for comparison.
70
34
  * IFC STEP files store booleans as .T./.F., but users pass true/false.
@@ -107,6 +71,7 @@ export class HeadlessBackend {
107
71
  files;
108
72
  schedule;
109
73
  spaces;
74
+ style;
110
75
  dataStore;
111
76
  modelName;
112
77
  mutationView = null;
@@ -127,6 +92,19 @@ export class HeadlessBackend {
127
92
  this.files = this.createFilesAdapter();
128
93
  this.schedule = this.createScheduleAdapter();
129
94
  this.spaces = this.createSpacesAdapter();
95
+ this.style = this.createStyleAdapter();
96
+ }
97
+ createStyleAdapter() {
98
+ return {
99
+ // Same arrangement as the spaces adapter: the work happens in
100
+ // @ifc-lite/create against the shared StoreEditor, so the new entities
101
+ // land in the overlay this backend's export adapter already reads.
102
+ applyColors: (batches, options) => applyStylesInStore(this.getOrCreateStoreEditor(), this.dataStore, batches.map(batch => ({
103
+ products: batch.refs.map(r => r.expressId),
104
+ color: batch.color,
105
+ name: batch.name,
106
+ })), options),
107
+ };
130
108
  }
131
109
  createSpacesAdapter() {
132
110
  return {
@@ -347,7 +325,7 @@ export class HeadlessBackend {
347
325
  return extractRelationshipsOnDemand(store, ref.expressId);
348
326
  },
349
327
  related(ref, relType, direction) {
350
- const relEnum = REL_TYPE_MAP[relType];
328
+ const relEnum = QUERY_REL_TYPE_MAP[relType];
351
329
  if (relEnum === undefined)
352
330
  return [];
353
331
  const targets = store.relationships.getRelated(ref.expressId, relEnum, direction);
@@ -383,15 +361,19 @@ export class HeadlessBackend {
383
361
  };
384
362
  }
385
363
  createMutateAdapter() {
386
- return {
387
- setProperty() { },
388
- setAttribute() { },
389
- deleteProperty() { },
390
- batchBegin() { },
391
- batchEnd() { },
392
- undo() { return false; },
393
- redo() { return false; },
394
- };
364
+ return createHeadlessMutateAdapter(() => this.getOrCreateMutationView());
365
+ }
366
+ /**
367
+ * The overlay every write goes through, created on first use.
368
+ *
369
+ * Built by `getOrCreateStoreEditor` so the property and quantity extractors
370
+ * are wired exactly once, whichever adapter writes first.
371
+ */
372
+ getOrCreateMutationView() {
373
+ this.getOrCreateStoreEditor();
374
+ // Non-null immediately after: getOrCreateStoreEditor assigns both fields
375
+ // together and never clears them.
376
+ return this.mutationView;
395
377
  }
396
378
  getOrCreateStoreEditor() {
397
379
  if (this.storeEditor)
@@ -500,17 +482,14 @@ export class HeadlessBackend {
500
482
  const store = this.dataStore;
501
483
  const modelName = this.modelName;
502
484
  const queryAdapter = this.query;
485
+ /**
486
+ * RFC 4180 quoting + the CWE-1236 formula-injection guard, delegated to
487
+ * `@ifc-lite/export`'s single escaper. The copy that used to live here
488
+ * tested the trigger anchored at offset 0, so a BOM/ZWSP/LRM/NBSP/U+2028
489
+ * in front of `=` walked past it.
490
+ */
503
491
  function escapeCsv(value, sep) {
504
- // CSV/formula-injection guard (CWE-1236): prefix a leading spreadsheet
505
- // formula trigger so Excel/Sheets treat the cell as text, not a formula.
506
- let str = value;
507
- if (/^[=+\-@\t\r]/.test(str)) {
508
- str = `'${str}`;
509
- }
510
- if (str.includes(sep) || str.includes('"') || str.includes('\n') || str.includes('\r')) {
511
- return `"${str.replace(/"/g, '""')}"`;
512
- }
513
- return str;
492
+ return escapeCsvCell(value, { delimiter: sep });
514
493
  }
515
494
  function resolveColumn(data, col, props, qsets) {
516
495
  if (col === 'Name' || col === 'name')