@ifc-lite/cli 0.40.2 → 0.42.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 (75) hide show
  1. package/README.md +12 -1
  2. package/dist/commands/diff-engine.d.ts.map +1 -1
  3. package/dist/commands/diff-engine.js +9 -3
  4. package/dist/commands/diff-engine.js.map +1 -1
  5. package/dist/commands/doctor.d.ts +3 -0
  6. package/dist/commands/doctor.d.ts.map +1 -0
  7. package/dist/commands/doctor.js +24 -0
  8. package/dist/commands/doctor.js.map +1 -0
  9. package/dist/commands/export-rust-formats.d.ts.map +1 -1
  10. package/dist/commands/export-rust-formats.js +37 -41
  11. package/dist/commands/export-rust-formats.js.map +1 -1
  12. package/dist/commands/extract-entities.d.ts.map +1 -1
  13. package/dist/commands/extract-entities.js +7 -11
  14. package/dist/commands/extract-entities.js.map +1 -1
  15. package/dist/commands/flow-host.d.ts.map +1 -1
  16. package/dist/commands/flow-host.js +20 -0
  17. package/dist/commands/flow-host.js.map +1 -1
  18. package/dist/commands/flow.d.ts.map +1 -1
  19. package/dist/commands/flow.js +3 -2
  20. package/dist/commands/flow.js.map +1 -1
  21. package/dist/commands/gym.d.ts.map +1 -1
  22. package/dist/commands/gym.js +2 -10
  23. package/dist/commands/gym.js.map +1 -1
  24. package/dist/commands/mutate.d.ts +6 -0
  25. package/dist/commands/mutate.d.ts.map +1 -1
  26. package/dist/commands/mutate.js +16 -19
  27. package/dist/commands/mutate.js.map +1 -1
  28. package/dist/commands/mutation-base.d.ts +4 -0
  29. package/dist/commands/mutation-base.d.ts.map +1 -0
  30. package/dist/commands/mutation-base.js +11 -0
  31. package/dist/commands/mutation-base.js.map +1 -0
  32. package/dist/commands/step-args.d.ts +0 -119
  33. package/dist/commands/step-args.d.ts.map +1 -1
  34. package/dist/commands/step-args.js +54 -49
  35. package/dist/commands/step-args.js.map +1 -1
  36. package/dist/commands/storey-selection.d.ts.map +1 -1
  37. package/dist/commands/storey-selection.js +16 -9
  38. package/dist/commands/storey-selection.js.map +1 -1
  39. package/dist/commands/subset-relations.d.ts +0 -76
  40. package/dist/commands/subset-relations.d.ts.map +1 -1
  41. package/dist/commands/subset-relations.js +88 -24
  42. package/dist/commands/subset-relations.js.map +1 -1
  43. package/dist/commands/test-fixtures/type-mutation.d.ts +18 -0
  44. package/dist/commands/test-fixtures/type-mutation.d.ts.map +1 -0
  45. package/dist/commands/test-fixtures/type-mutation.js +45 -0
  46. package/dist/commands/test-fixtures/type-mutation.js.map +1 -0
  47. package/dist/commands/validate.d.ts.map +1 -1
  48. package/dist/commands/validate.js +6 -0
  49. package/dist/commands/validate.js.map +1 -1
  50. package/dist/diagnostics.d.ts +33 -0
  51. package/dist/diagnostics.d.ts.map +1 -0
  52. package/dist/diagnostics.js +113 -0
  53. package/dist/diagnostics.js.map +1 -0
  54. package/dist/headless-backend.d.ts +30 -75
  55. package/dist/headless-backend.d.ts.map +1 -1
  56. package/dist/headless-backend.js +54 -534
  57. package/dist/headless-backend.js.map +1 -1
  58. package/dist/help.d.ts.map +1 -1
  59. package/dist/help.js +1 -0
  60. package/dist/help.js.map +1 -1
  61. package/dist/index.js +51 -82
  62. package/dist/index.js.map +1 -1
  63. package/dist/loader.d.ts +7 -1
  64. package/dist/loader.d.ts.map +1 -1
  65. package/dist/loader.js +34 -50
  66. package/dist/loader.js.map +1 -1
  67. package/package.json +22 -21
  68. package/dist/query-overlay-relations.d.ts +0 -9
  69. package/dist/query-overlay-relations.d.ts.map +0 -1
  70. package/dist/query-overlay-relations.js +0 -78
  71. package/dist/query-overlay-relations.js.map +0 -1
  72. package/dist/query-overlay.d.ts +0 -46
  73. package/dist/query-overlay.d.ts.map +0 -1
  74. package/dist/query-overlay.js +0 -141
  75. package/dist/query-overlay.js.map +0 -1
@@ -1,87 +1,42 @@
1
- /** Headless `BimBackend` implementation for the CLI (no renderer). */
2
- import type { BimBackend, BimEventType, ModelBackendMethods, QueryBackendMethods, SelectionBackendMethods, VisibilityBackendMethods, ViewerBackendMethods, MutateBackendMethods, StoreBackendMethods, SpacesBackendMethods, StyleBackendMethods, SpatialBackendMethods, ExportBackendMethods, LensBackendMethods, FilesBackendMethods, ScheduleBackendMethods, StructuralBackendMethods, CostBackendMethods } from '@ifc-lite/sdk';
1
+ /** CLI host adapters over the SDK's shared headless implementation. */
2
+ import type { BimBackend, BimEventType, SpacesBackendMethods, StoreBackendMethods } from '@ifc-lite/sdk';
3
3
  import type { IfcDataStore } from '@ifc-lite/parser';
4
- import type { TableAccess } from '@ifc-lite/flow-nodes';
5
- import { normalizeBooleanValue } from '@ifc-lite/query';
6
4
  import { expandTypes, isQueryableObjectType } from '@ifc-lite/parser';
7
- export { expandTypes };
8
- /**
9
- * Which classes an unfiltered query answers with.
10
- *
11
- * Thin alias: the predicate is schema logic and lives in `@ifc-lite/parser`, so
12
- * the CLI and MCP backends cannot drift apart on it. Kept as a named export
13
- * here because both packages already publish it under this name.
14
- */
5
+ import { normalizeBooleanValue } from '@ifc-lite/query';
6
+ import type { MutablePropertyView } from '@ifc-lite/mutations';
7
+ import type { TableAccess } from '@ifc-lite/flow-nodes';
8
+ export { expandTypes, normalizeBooleanValue };
15
9
  export declare const isProductType: typeof isQueryableObjectType;
16
- /**
17
- * Normalize boolean-like values for comparison.
18
- * IFC STEP files store booleans as .T./.F., but users pass true/false.
19
- *
20
- * Re-exported from `@ifc-lite/query` for existing importers of this module;
21
- * the actual comparison the query filter runs lives there too
22
- * (`compareFilterValue`), shared with the viewer and MCP `QueryBackendMethods`
23
- * implementations so the three can't drift apart on `where()` semantics again.
24
- */
25
- export { normalizeBooleanValue };
26
10
  export declare function normalizePropertyValue(value: unknown): string | number | boolean | null;
27
11
  export declare class HeadlessBackend implements BimBackend {
28
- readonly model: ModelBackendMethods;
29
- readonly query: QueryBackendMethods;
30
- readonly selection: SelectionBackendMethods;
31
- readonly visibility: VisibilityBackendMethods;
32
- readonly viewer: ViewerBackendMethods;
33
- readonly mutate: MutateBackendMethods;
12
+ private readonly dataStore;
13
+ readonly model: NonNullable<BimBackend['model']>;
14
+ readonly query: NonNullable<BimBackend['query']>;
15
+ readonly selection: NonNullable<BimBackend['selection']>;
16
+ readonly mutate: NonNullable<BimBackend['mutate']>;
17
+ readonly style: NonNullable<BimBackend['style']>;
18
+ readonly spatial: NonNullable<BimBackend['spatial']>;
19
+ readonly export: NonNullable<BimBackend['export']>;
20
+ readonly lens: NonNullable<BimBackend['lens']>;
21
+ readonly files: NonNullable<BimBackend['files']>;
22
+ readonly schedule: NonNullable<BimBackend['schedule']>;
23
+ readonly structural: NonNullable<BimBackend['structural']>;
24
+ readonly cost: NonNullable<BimBackend['cost']>;
34
25
  readonly store: StoreBackendMethods;
35
- readonly spatial: SpatialBackendMethods;
36
- readonly export: ExportBackendMethods;
37
- readonly lens: LensBackendMethods;
38
- readonly files: FilesBackendMethods;
39
- readonly schedule: ScheduleBackendMethods;
40
- readonly structural: StructuralBackendMethods;
41
- readonly cost: CostBackendMethods;
42
26
  readonly spaces: SpacesBackendMethods;
43
- readonly style: StyleBackendMethods;
44
- private dataStore;
45
- private modelName;
46
- /** Every spelling of the one model this backend answers for, written once:
47
- * the schedule assert, the `bim.mutate.*` guard and the `bim.store.add*`
48
- * ref-minting sites all have to give the SAME answer, or a ref is minted
49
- * under an id the very next write refuses (#3764). */
50
- private readonly acceptedModelIds;
51
- private mutationView;
52
- private storeEditor;
53
- constructor(store: IfcDataStore, modelName: string);
54
- /** Whether `modelId` names the one model this backend holds. */
55
- private acceptsModelId;
56
- /** The accepted spellings as an error-message clause: `'default' or 'a.ifc'`. */
57
- private acceptedModelIdList;
58
- /** Refuse an unknown model id loudly, at whichever surface was handed it. */
59
- private assertKnownModelId;
60
- private createStyleAdapter;
61
- private createSpacesAdapter;
62
- subscribe(_event: BimEventType, _handler: (data: unknown) => void): () => void;
63
- private createModelAdapter;
64
- private createQueryAdapter;
65
- private createSelectionAdapter;
66
- private createVisibilityAdapter;
67
- private createViewerAdapter;
68
- private createMutateAdapter;
69
- /**
70
- * The overlay every write goes through, created on first use by
71
- * `getOrCreateStoreEditor` so its extractors are wired exactly once.
72
- */
27
+ viewer: BimBackend['viewer'];
28
+ visibility: BimBackend['visibility'];
29
+ private readonly shared;
30
+ constructor(dataStore: IfcDataStore, modelName: string);
31
+ private get mutationView();
32
+ getMutationView(): MutablePropertyView | null;
73
33
  private getOrCreateMutationView;
74
- /**
75
- * The bulk entity-table access `table.joinByKey` needs to reuse
76
- * `@ifc-lite/mutations`' `csv-match.ts` tag/property index (#5167, #5230)
77
- * rather than re-implement it. Same lazily-created overlay as `bim.cost`.
78
- */
79
- tableAccess(modelId?: string): TableAccess;
80
34
  private getOrCreateStoreEditor;
35
+ private assertKnownModelId;
36
+ tableAccess(modelId?: string): TableAccess;
37
+ subscribe(event: BimEventType, handler: (data: unknown) => void): () => void;
38
+ attachStreamingAdapters(viewer: BimBackend['viewer'], visibility: BimBackend['visibility']): void;
39
+ private createSpacesAdapter;
81
40
  private createStoreAdapter;
82
- private createSpatialAdapter;
83
- private createExportAdapter;
84
- private createLensAdapter;
85
- private createFilesAdapter;
86
41
  }
87
42
  //# sourceMappingURL=headless-backend.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"headless-backend.d.ts","sourceRoot":"","sources":["../src/headless-backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"headless-backend.d.ts","sourceRoot":"","sources":["../src/headless-backend.ts"],"names":[],"mappings":"AAIA,uEAAuE;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAa,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGpH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAe,MAAM,qBAAqB,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAQxD,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;AAC9C,eAAO,MAAM,aAAa,8BAAwB,CAAC;AAGnD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAcvF;AAED,qBAAa,eAAgB,YAAW,UAAU;IAmBpC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAlBtC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IACjD,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IACjD,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IACzD,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IACjD,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IACrD,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/C,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IACvD,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;IAC3D,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/C,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7B,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;gBAElB,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM;IA6BvE,OAAO,KAAK,YAAY,GAAwE;IAChG,eAAe,IAAI,mBAAmB,GAAG,IAAI;IAC7C,OAAO,CAAC,uBAAuB;IAC/B,OAAO,CAAC,sBAAsB;IAC9B,OAAO,CAAC,kBAAkB;IAE1B,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW;IAK1C,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI;IAI5E,uBAAuB,CAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC,GAAG,IAAI;IAMjG,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,kBAAkB;CAgD3B"}