@ifc-lite/cli 0.17.2 → 0.18.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 (38) hide show
  1. package/dist/commands/layer-diff.d.ts +3 -0
  2. package/dist/commands/layer-diff.d.ts.map +1 -0
  3. package/dist/commands/layer-diff.js +46 -0
  4. package/dist/commands/layer-diff.js.map +1 -0
  5. package/dist/commands/layer-history.d.ts +61 -0
  6. package/dist/commands/layer-history.d.ts.map +1 -0
  7. package/dist/commands/layer-history.js +276 -0
  8. package/dist/commands/layer-history.js.map +1 -0
  9. package/dist/commands/layer-merge.d.ts +22 -0
  10. package/dist/commands/layer-merge.d.ts.map +1 -0
  11. package/dist/commands/layer-merge.js +138 -0
  12. package/dist/commands/layer-merge.js.map +1 -0
  13. package/dist/commands/layer-publish.d.ts +67 -0
  14. package/dist/commands/layer-publish.d.ts.map +1 -0
  15. package/dist/commands/layer-publish.js +299 -0
  16. package/dist/commands/layer-publish.js.map +1 -0
  17. package/dist/commands/layer-store.d.ts +59 -0
  18. package/dist/commands/layer-store.d.ts.map +1 -0
  19. package/dist/commands/layer-store.js +225 -0
  20. package/dist/commands/layer-store.js.map +1 -0
  21. package/dist/commands/layer-test-helpers.d.ts +10 -0
  22. package/dist/commands/layer-test-helpers.d.ts.map +1 -0
  23. package/dist/commands/layer-test-helpers.js +49 -0
  24. package/dist/commands/layer-test-helpers.js.map +1 -0
  25. package/dist/commands/layer.d.ts +2 -0
  26. package/dist/commands/layer.d.ts.map +1 -0
  27. package/dist/commands/layer.js +100 -0
  28. package/dist/commands/layer.js.map +1 -0
  29. package/dist/commands/mcp.d.ts.map +1 -1
  30. package/dist/commands/mcp.js +4 -1
  31. package/dist/commands/mcp.js.map +1 -1
  32. package/dist/commands/ref.d.ts +17 -0
  33. package/dist/commands/ref.d.ts.map +1 -0
  34. package/dist/commands/ref.js +173 -0
  35. package/dist/commands/ref.js.map +1 -0
  36. package/dist/index.js +15 -0
  37. package/dist/index.js.map +1 -1
  38. package/package.json +13 -11
@@ -0,0 +1,173 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ /**
5
+ * `ifc-lite ref` — manage named refs (mutable pointers to layer stacks)
6
+ * in the local layer store (`.ifc-lite/refs.json`).
7
+ *
8
+ * ref list List refs with stack hashes
9
+ * ref create <name> [--from R] Create a ref (optionally copying R)
10
+ * ref move <name> --to <target> Point a ref at another ref's stack or
11
+ * a comma-separated layer-id list
12
+ * ref protect <name> [...] Set merge policy on a ref
13
+ */
14
+ import { computeStackHash } from '@ifc-lite/ifcx';
15
+ import { getAllFlags, getFlag, hasFlag, printJson } from '../output.js';
16
+ import { getRef, readRefs, requireRef, resolveLayerId, setRef, shortId, storeFromArgs, } from './layer-store.js';
17
+ export function listRefs(store) {
18
+ const { refs } = readRefs(store);
19
+ return Object.keys(refs)
20
+ .sort()
21
+ .map((name) => {
22
+ const entry = refs[name];
23
+ const summary = {
24
+ name,
25
+ layers: entry.layers,
26
+ stackHash: computeStackHash(entry.layers),
27
+ };
28
+ if (entry.policy)
29
+ summary.policy = entry.policy;
30
+ return summary;
31
+ });
32
+ }
33
+ export function createRef(store, name, from) {
34
+ if (getRef(store, name)) {
35
+ throw new Error(`Ref "${name}" already exists`);
36
+ }
37
+ const layers = from === undefined ? [] : [...requireRef(store, from).layers];
38
+ const entry = { layers };
39
+ setRef(store, name, entry);
40
+ return entry;
41
+ }
42
+ /** Move a ref to another ref's stack or a comma-separated layer-id list. */
43
+ export function moveRef(store, name, to) {
44
+ const entry = requireRef(store, name);
45
+ const target = getRef(store, to);
46
+ const layers = target !== undefined
47
+ ? [...target.layers]
48
+ : to
49
+ .split(',')
50
+ .map((id) => id.trim())
51
+ .filter((id) => id.length > 0)
52
+ .map((id) => resolveLayerId(store, id));
53
+ const updated = { ...entry, layers };
54
+ setRef(store, name, updated);
55
+ return updated;
56
+ }
57
+ export function protectRef(store, name, options) {
58
+ const entry = requireRef(store, name);
59
+ const policy = { ...entry.policy };
60
+ if (options.requiredChecks !== undefined && options.requiredChecks.length > 0) {
61
+ policy.requiredChecks = [...(policy.requiredChecks ?? []), ...options.requiredChecks];
62
+ }
63
+ if (options.requireHumanApproval)
64
+ policy.requireHumanApproval = true;
65
+ const updated = { ...entry, policy };
66
+ setRef(store, name, updated);
67
+ return updated;
68
+ }
69
+ // ---------------------------------------------------------------------------
70
+ // command
71
+ // ---------------------------------------------------------------------------
72
+ export async function refCommand(args) {
73
+ const sub = args[0];
74
+ if (!sub || sub === '--help' || sub === '-h') {
75
+ printUsage();
76
+ return;
77
+ }
78
+ const rest = args.slice(1);
79
+ switch (sub) {
80
+ case 'list':
81
+ await refListCommand(rest);
82
+ return;
83
+ case 'create':
84
+ await refCreateCommand(rest);
85
+ return;
86
+ case 'move':
87
+ await refMoveCommand(rest);
88
+ return;
89
+ case 'protect':
90
+ await refProtectCommand(rest);
91
+ return;
92
+ default:
93
+ process.stderr.write(`Unknown ref subcommand: ${sub}\n`);
94
+ printUsage();
95
+ process.exit(1);
96
+ }
97
+ }
98
+ function printUsage() {
99
+ process.stdout.write(`Usage: ifc-lite ref <command> [...args]
100
+
101
+ Commands:
102
+ list List refs with layer counts and stack hashes.
103
+ Flags: --json, --store <dir>
104
+ create <name> [--from <ref>] Create a ref, optionally copying another
105
+ ref's layer stack.
106
+ move <name> --to <target> Point a ref at another ref's stack or at a
107
+ comma-separated list of layer ids.
108
+ protect <name> Set merge policy on a ref.
109
+ Flags: --require-check <spec> (repeatable),
110
+ --require-human-approval
111
+
112
+ All commands honour --store <dir> (default: <cwd>/.ifc-lite).
113
+ `);
114
+ }
115
+ async function refListCommand(args) {
116
+ const refs = listRefs(storeFromArgs(args));
117
+ if (hasFlag(args, '--json')) {
118
+ printJson(refs);
119
+ return;
120
+ }
121
+ if (refs.length === 0) {
122
+ process.stderr.write('No refs.\n');
123
+ return;
124
+ }
125
+ for (const ref of refs) {
126
+ const policyBits = [];
127
+ if (ref.policy?.requireHumanApproval)
128
+ policyBits.push('human-approval');
129
+ for (const check of ref.policy?.requiredChecks ?? [])
130
+ policyBits.push(`check:${check}`);
131
+ const policySuffix = policyBits.length > 0 ? ` [${policyBits.join(', ')}]` : '';
132
+ const top = ref.layers.length > 0 ? ` @ ${shortId(ref.layers[ref.layers.length - 1])}` : '';
133
+ process.stdout.write(`${ref.name} ${ref.layers.length} layer(s)${top} ${ref.stackHash}${policySuffix}\n`);
134
+ }
135
+ }
136
+ function positionalName(args, usage) {
137
+ const name = args[0];
138
+ if (!name || name.startsWith('-'))
139
+ throw new Error(usage);
140
+ return name;
141
+ }
142
+ async function refCreateCommand(args) {
143
+ const name = positionalName(args, 'Usage: ifc-lite ref create <name> [--from <ref>]');
144
+ const entry = createRef(storeFromArgs(args), name, getFlag(args, '--from'));
145
+ if (hasFlag(args, '--json'))
146
+ printJson({ name, ...entry });
147
+ else
148
+ process.stderr.write(`Created ref ${name} (${entry.layers.length} layer(s))\n`);
149
+ }
150
+ async function refMoveCommand(args) {
151
+ const usage = 'Usage: ifc-lite ref move <name> --to <ref|layer-id,layer-id,...>';
152
+ const name = positionalName(args, usage);
153
+ const to = getFlag(args, '--to');
154
+ if (!to)
155
+ throw new Error(usage);
156
+ const entry = moveRef(storeFromArgs(args), name, to);
157
+ if (hasFlag(args, '--json'))
158
+ printJson({ name, ...entry });
159
+ else
160
+ process.stderr.write(`Moved ref ${name} to ${entry.layers.length} layer(s)\n`);
161
+ }
162
+ async function refProtectCommand(args) {
163
+ const name = positionalName(args, 'Usage: ifc-lite ref protect <name> [--require-check <spec>]... [--require-human-approval]');
164
+ const entry = protectRef(storeFromArgs(args), name, {
165
+ requiredChecks: getAllFlags(args, '--require-check'),
166
+ requireHumanApproval: hasFlag(args, '--require-human-approval'),
167
+ });
168
+ if (hasFlag(args, '--json'))
169
+ printJson({ name, ...entry });
170
+ else
171
+ process.stderr.write(`Protected ref ${name}\n`);
172
+ }
173
+ //# sourceMappingURL=ref.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ref.js","sourceRoot":"","sources":["../../src/commands/ref.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;GASG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EACL,MAAM,EACN,QAAQ,EACR,UAAU,EACV,cAAc,EACd,MAAM,EACN,OAAO,EACP,aAAa,GAGd,MAAM,kBAAkB,CAAC;AAS1B,MAAM,UAAU,QAAQ,CAAC,KAAiB;IACxC,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;SACrB,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,MAAM,OAAO,GAAe;YAC1B,IAAI;YACJ,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,SAAS,EAAE,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC;SAC1C,CAAC;QACF,IAAI,KAAK,CAAC,MAAM;YAAE,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAChD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAiB,EAAE,IAAY,EAAE,IAAa;IACtE,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,kBAAkB,CAAC,CAAC;IAClD,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAa,EAAE,MAAM,EAAE,CAAC;IACnC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC3B,OAAO,KAAK,CAAC;AACf,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,OAAO,CAAC,KAAiB,EAAE,IAAY,EAAE,EAAU;IACjE,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACjC,MAAM,MAAM,GACV,MAAM,KAAK,SAAS;QAClB,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QACpB,CAAC,CAAC,EAAE;aACC,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;aACtB,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;aAC7B,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IAChD,MAAM,OAAO,GAAa,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC;IAC/C,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,KAAiB,EACjB,IAAY,EACZ,OAAsE;IAEtE,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;IACnC,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS,IAAI,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9E,MAAM,CAAC,cAAc,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACxF,CAAC;IACD,IAAI,OAAO,CAAC,oBAAoB;QAAE,MAAM,CAAC,oBAAoB,GAAG,IAAI,CAAC;IACrE,MAAM,OAAO,GAAa,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC;IAC/C,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAc;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC7C,UAAU,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,MAAM;YACT,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;YAC3B,OAAO;QACT,KAAK,QAAQ;YACX,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC7B,OAAO;QACT,KAAK,MAAM;YACT,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;YAC3B,OAAO;QACT,KAAK,SAAS;YACZ,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC9B,OAAO;QACT;YACE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,GAAG,IAAI,CAAC,CAAC;YACzD,UAAU,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,SAAS,UAAU;IACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;;;;;;;;;;;;;;CActB,CAAC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,IAAc;IAC1C,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3C,IAAI,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC5B,SAAS,CAAC,IAAI,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACnC,OAAO;IACT,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,IAAI,GAAG,CAAC,MAAM,EAAE,oBAAoB;YAAE,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACxE,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,cAAc,IAAI,EAAE;YAAE,UAAU,CAAC,IAAI,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC;QACxF,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACjF,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5F,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,GAAG,CAAC,SAAS,GAAG,YAAY,IAAI,CACtF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,IAAc,EAAE,KAAa;IACnD,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACrB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,IAAc;IAC5C,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE,kDAAkD,CAAC,CAAC;IACtF,MAAM,KAAK,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC5E,IAAI,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;QAAE,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;;QACtD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,MAAM,cAAc,CAAC,CAAC;AACvF,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,IAAc;IAC1C,MAAM,KAAK,GAAG,kEAAkE,CAAC;IACjF,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACzC,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACrD,IAAI,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;QAAE,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;;QACtD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,aAAa,CAAC,CAAC;AACtF,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,IAAc;IAC7C,MAAM,IAAI,GAAG,cAAc,CACzB,IAAI,EACJ,2FAA2F,CAC5F,CAAC;IACF,MAAM,KAAK,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE;QAClD,cAAc,EAAE,WAAW,CAAC,IAAI,EAAE,iBAAiB,CAAC;QACpD,oBAAoB,EAAE,OAAO,CAAC,IAAI,EAAE,0BAA0B,CAAC;KAChE,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;QAAE,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;;QACtD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC;AACvD,CAAC"}
package/dist/index.js CHANGED
@@ -36,6 +36,8 @@ import { analyzeCommand } from './commands/analyze.js';
36
36
  import { lodCommand } from './commands/lod.js';
37
37
  import { mcpCommand } from './commands/mcp.js';
38
38
  import { extCommand } from './commands/ext.js';
39
+ import { layerCommand } from './commands/layer.js';
40
+ import { refCommand } from './commands/ref.js';
39
41
  import { readFileSync } from 'node:fs';
40
42
  import { fileURLToPath } from 'node:url';
41
43
  import { dirname, join } from 'node:path';
@@ -88,6 +90,8 @@ const HELP = `
88
90
  lod <file.ifc> --level 0|1 Generate lightweight LOD artifacts
89
91
  mcp <file.ifc> [--transport stdio|http] Start an MCP server bound to one or more IFC files
90
92
  ext validate <path>|init <dir> Manage IFClite extensions (Phase 0 — validate, init)
93
+ layer <publish|diff|merge|log|bake|...> Layered change tracking over a local store (.ifc-lite/)
94
+ ref <list|create|move|protect> Manage named refs in the layer store
91
95
 
92
96
  Options:
93
97
  --help, -h Show help
@@ -158,6 +162,11 @@ const HELP = `
158
162
  ifc-lite mcp model.ifc --read-only
159
163
  ifc-lite mcp arch.ifc struct.ifc --federate
160
164
  ifc-lite mcp model.ifc --transport http --port 8765 --token abc
165
+ ifc-lite ref create main
166
+ ifc-lite layer publish delta.ifcx --base main --intent "Set fire ratings" --scope "model.mutate:Pset_FireSafety*@IfcWall"
167
+ ifc-lite layer merge blake3:abc123 --into main --preview
168
+ ifc-lite layer log main
169
+ ifc-lite layer bake main -o flat.ifcx
161
170
 
162
171
  Pipe-friendly:
163
172
  ifc-lite query model.ifc --type IfcWall --json | jq '.[].name'
@@ -277,6 +286,12 @@ async function main() {
277
286
  case 'ext':
278
287
  await extCommand(commandArgs);
279
288
  break;
289
+ case 'layer':
290
+ await layerCommand(commandArgs);
291
+ break;
292
+ case 'ref':
293
+ await refCommand(commandArgs);
294
+ break;
280
295
  default:
281
296
  process.stderr.write(`Unknown command: ${command}\n`);
282
297
  process.stderr.write(`Run 'ifc-lite --help' for usage.\n`);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.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.17.2",
3
+ "version": "0.18.0",
4
4
  "description": "CLI toolkit for IFC files — query, validate, export, create, and script BIM data",
5
5
  "type": "module",
6
6
  "bin": {
@@ -21,21 +21,23 @@
21
21
  ],
22
22
  "dependencies": {
23
23
  "@ifc-lite/bcf": "^1.16.2",
24
- "@ifc-lite/clash": "^1.6.2",
24
+ "@ifc-lite/clash": "^1.6.3",
25
25
  "@ifc-lite/create": "^1.16.4",
26
- "@ifc-lite/data": "^2.5.2",
26
+ "@ifc-lite/data": "^2.5.3",
27
27
  "@ifc-lite/export": "^2.5.2",
28
- "@ifc-lite/extensions": "^0.3.5",
29
- "@ifc-lite/geometry": "^3.1.4",
30
- "@ifc-lite/ids": "^1.15.27",
31
- "@ifc-lite/mcp": "^0.7.2",
32
- "@ifc-lite/mutations": "^1.18.1",
33
- "@ifc-lite/parser": "^3.8.2",
28
+ "@ifc-lite/extensions": "^0.4.0",
29
+ "@ifc-lite/geometry": "^3.2.0",
30
+ "@ifc-lite/ids": "^1.15.30",
31
+ "@ifc-lite/ifcx": "^2.3.0",
32
+ "@ifc-lite/merge": "^0.2.0",
33
+ "@ifc-lite/mcp": "^0.8.0",
34
+ "@ifc-lite/mutations": "^1.19.0",
35
+ "@ifc-lite/parser": "^3.8.5",
34
36
  "@ifc-lite/query": "^1.14.13",
35
37
  "@ifc-lite/sandbox": "^1.16.3",
36
38
  "@ifc-lite/sdk": "^1.21.2",
37
- "@ifc-lite/viewer-core": "^0.2.9",
38
- "@ifc-lite/wasm": "^3.0.14"
39
+ "@ifc-lite/viewer-core": "^0.2.10",
40
+ "@ifc-lite/wasm": "^4.0.0"
39
41
  },
40
42
  "devDependencies": {
41
43
  "@types/node": "^26.1.0",