@ifc-lite/cli 0.2.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.
- package/LICENSE +373 -0
- package/dist/commands/bcf.d.ts +2 -0
- package/dist/commands/bcf.d.ts.map +1 -0
- package/dist/commands/bcf.js +78 -0
- package/dist/commands/bcf.js.map +1 -0
- package/dist/commands/bsdd.d.ts +2 -0
- package/dist/commands/bsdd.d.ts.map +1 -0
- package/dist/commands/bsdd.js +73 -0
- package/dist/commands/bsdd.js.map +1 -0
- package/dist/commands/convert.d.ts +2 -0
- package/dist/commands/convert.d.ts.map +1 -0
- package/dist/commands/convert.js +49 -0
- package/dist/commands/convert.js.map +1 -0
- package/dist/commands/create.d.ts +2 -0
- package/dist/commands/create.d.ts.map +1 -0
- package/dist/commands/create.js +430 -0
- package/dist/commands/create.js.map +1 -0
- package/dist/commands/diff.d.ts +2 -0
- package/dist/commands/diff.d.ts.map +1 -0
- package/dist/commands/diff.js +106 -0
- package/dist/commands/diff.js.map +1 -0
- package/dist/commands/eval.d.ts +2 -0
- package/dist/commands/eval.d.ts.map +1 -0
- package/dist/commands/eval.js +47 -0
- package/dist/commands/eval.js.map +1 -0
- package/dist/commands/export.d.ts +2 -0
- package/dist/commands/export.d.ts.map +1 -0
- package/dist/commands/export.js +62 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/ids.d.ts +2 -0
- package/dist/commands/ids.d.ts.map +1 -0
- package/dist/commands/ids.js +187 -0
- package/dist/commands/ids.js.map +1 -0
- package/dist/commands/info.d.ts +2 -0
- package/dist/commands/info.d.ts.map +1 -0
- package/dist/commands/info.js +77 -0
- package/dist/commands/info.js.map +1 -0
- package/dist/commands/merge.d.ts +2 -0
- package/dist/commands/merge.d.ts.map +1 -0
- package/dist/commands/merge.js +60 -0
- package/dist/commands/merge.js.map +1 -0
- package/dist/commands/props.d.ts +2 -0
- package/dist/commands/props.d.ts.map +1 -0
- package/dist/commands/props.js +40 -0
- package/dist/commands/props.js.map +1 -0
- package/dist/commands/query.d.ts +2 -0
- package/dist/commands/query.d.ts.map +1 -0
- package/dist/commands/query.js +124 -0
- package/dist/commands/query.js.map +1 -0
- package/dist/commands/run.d.ts +2 -0
- package/dist/commands/run.d.ts.map +1 -0
- package/dist/commands/run.js +43 -0
- package/dist/commands/run.js.map +1 -0
- package/dist/commands/schema.d.ts +2 -0
- package/dist/commands/schema.d.ts.map +1 -0
- package/dist/commands/schema.js +107 -0
- package/dist/commands/schema.js.map +1 -0
- package/dist/commands/validate.d.ts +2 -0
- package/dist/commands/validate.d.ts.map +1 -0
- package/dist/commands/validate.js +111 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/headless-backend.d.ts +36 -0
- package/dist/headless-backend.d.ts.map +1 -0
- package/dist/headless-backend.js +441 -0
- package/dist/headless-backend.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +174 -0
- package/dist/index.js.map +1 -0
- package/dist/loader.d.ts +15 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +46 -0
- package/dist/loader.js.map +1 -0
- package/dist/output.d.ts +30 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +90 -0
- package/dist/output.js.map +1 -0
- package/package.json +66 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAUA,OAAO,EAAa,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAGlE;;;GAGG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAuBzE;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,CAAC,CAK/G"}
|
package/dist/loader.js
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
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 file loader — reads and parses IFC files for CLI commands.
|
|
6
|
+
*/
|
|
7
|
+
import { readFile } from 'node:fs/promises';
|
|
8
|
+
import { basename } from 'node:path';
|
|
9
|
+
import { IfcParser } from '@ifc-lite/parser';
|
|
10
|
+
import { createBimContext } from '@ifc-lite/sdk';
|
|
11
|
+
import { HeadlessBackend } from './headless-backend.js';
|
|
12
|
+
/**
|
|
13
|
+
* Parse an IFC file from disk into an IfcDataStore.
|
|
14
|
+
* Suppresses parser console output for clean CLI experience.
|
|
15
|
+
*/
|
|
16
|
+
export async function loadIfcFile(filePath) {
|
|
17
|
+
const buffer = await readFile(filePath);
|
|
18
|
+
const parser = new IfcParser();
|
|
19
|
+
// Suppress parser's internal console.log/warn during parsing
|
|
20
|
+
const origLog = console.log;
|
|
21
|
+
const origWarn = console.warn;
|
|
22
|
+
console.log = () => { };
|
|
23
|
+
console.warn = () => { };
|
|
24
|
+
try {
|
|
25
|
+
// Ensure we pass the exact slice — Node Buffers may be views into
|
|
26
|
+
// a larger pooled ArrayBuffer, so buffer.buffer can include extra bytes.
|
|
27
|
+
const arrayBuffer = buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength);
|
|
28
|
+
const store = await parser.parseColumnar(arrayBuffer);
|
|
29
|
+
store.fileSize = buffer.byteLength;
|
|
30
|
+
return store;
|
|
31
|
+
}
|
|
32
|
+
finally {
|
|
33
|
+
console.log = origLog;
|
|
34
|
+
console.warn = origWarn;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Create a BimContext backed by a headless backend from an IFC file.
|
|
39
|
+
*/
|
|
40
|
+
export async function createHeadlessContext(filePath) {
|
|
41
|
+
const store = await loadIfcFile(filePath);
|
|
42
|
+
const backend = new HeadlessBackend(store, basename(filePath));
|
|
43
|
+
const bim = createBimContext({ backend });
|
|
44
|
+
return { bim, store };
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,SAAS,EAAqB,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAmB,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,QAAgB;IAChD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;IAE/B,6DAA6D;IAC7D,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAC5B,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAC9B,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;IACvB,OAAO,CAAC,IAAI,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;IACxB,IAAI,CAAC;QACH,kEAAkE;QAClE,yEAAyE;QACzE,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CACrC,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CACvB,CAAC;QACjB,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACtD,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC;QACnC,OAAO,KAAK,CAAC;IACf,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC;QACtB,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC;IAC1B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,QAAgB;IAC1D,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1C,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AACxB,CAAC"}
|
package/dist/output.d.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export type OutputFormat = 'json' | 'table' | 'csv';
|
|
2
|
+
/**
|
|
3
|
+
* Write output to stdout or a file.
|
|
4
|
+
*/
|
|
5
|
+
export declare function writeOutput(content: string, outPath?: string): Promise<void>;
|
|
6
|
+
/**
|
|
7
|
+
* Format data as a simple ASCII table.
|
|
8
|
+
*/
|
|
9
|
+
export declare function formatTable(headers: string[], rows: string[][]): string;
|
|
10
|
+
/**
|
|
11
|
+
* Print JSON to stdout.
|
|
12
|
+
*/
|
|
13
|
+
export declare function printJson(data: unknown): void;
|
|
14
|
+
/**
|
|
15
|
+
* Print an error to stderr and exit.
|
|
16
|
+
*/
|
|
17
|
+
export declare function fatal(message: string): never;
|
|
18
|
+
/**
|
|
19
|
+
* Parse a CLI flag value from argv.
|
|
20
|
+
*/
|
|
21
|
+
export declare function getFlag(args: string[], flag: string): string | undefined;
|
|
22
|
+
/**
|
|
23
|
+
* Check if a boolean flag is present.
|
|
24
|
+
*/
|
|
25
|
+
export declare function hasFlag(args: string[], flag: string): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Get positional arguments (non-flag arguments).
|
|
28
|
+
*/
|
|
29
|
+
export declare function getPositionalArgs(args: string[]): string[];
|
|
30
|
+
//# sourceMappingURL=output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;AAEpD;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQlF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,CAqBvE;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAE7C;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAG5C;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAIxE;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAa1D"}
|
package/dist/output.js
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
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
|
+
* Output formatting utilities for CLI commands.
|
|
6
|
+
*/
|
|
7
|
+
import { writeFile } from 'node:fs/promises';
|
|
8
|
+
/**
|
|
9
|
+
* Write output to stdout or a file.
|
|
10
|
+
*/
|
|
11
|
+
export async function writeOutput(content, outPath) {
|
|
12
|
+
if (outPath) {
|
|
13
|
+
await writeFile(outPath, content, 'utf-8');
|
|
14
|
+
process.stderr.write(`Written to ${outPath}\n`);
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
process.stdout.write(content);
|
|
18
|
+
if (!content.endsWith('\n'))
|
|
19
|
+
process.stdout.write('\n');
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Format data as a simple ASCII table.
|
|
24
|
+
*/
|
|
25
|
+
export function formatTable(headers, rows) {
|
|
26
|
+
const widths = headers.map((h, i) => {
|
|
27
|
+
let max = h.length;
|
|
28
|
+
for (const row of rows) {
|
|
29
|
+
const cell = row[i] ?? '';
|
|
30
|
+
if (cell.length > max)
|
|
31
|
+
max = cell.length;
|
|
32
|
+
}
|
|
33
|
+
return Math.min(max, 60);
|
|
34
|
+
});
|
|
35
|
+
const sep = widths.map(w => '─'.repeat(w + 2)).join('┼');
|
|
36
|
+
const formatRow = (cells) => cells.map((c, i) => ` ${(c ?? '').slice(0, widths[i]).padEnd(widths[i])} `).join('│');
|
|
37
|
+
const lines = [];
|
|
38
|
+
lines.push(formatRow(headers));
|
|
39
|
+
lines.push(sep);
|
|
40
|
+
for (const row of rows) {
|
|
41
|
+
lines.push(formatRow(row));
|
|
42
|
+
}
|
|
43
|
+
return lines.join('\n');
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Print JSON to stdout.
|
|
47
|
+
*/
|
|
48
|
+
export function printJson(data) {
|
|
49
|
+
process.stdout.write(JSON.stringify(data, null, 2) + '\n');
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Print an error to stderr and exit.
|
|
53
|
+
*/
|
|
54
|
+
export function fatal(message) {
|
|
55
|
+
process.stderr.write(`Error: ${message}\n`);
|
|
56
|
+
process.exit(1);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Parse a CLI flag value from argv.
|
|
60
|
+
*/
|
|
61
|
+
export function getFlag(args, flag) {
|
|
62
|
+
const idx = args.indexOf(flag);
|
|
63
|
+
if (idx === -1 || idx + 1 >= args.length)
|
|
64
|
+
return undefined;
|
|
65
|
+
return args[idx + 1];
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Check if a boolean flag is present.
|
|
69
|
+
*/
|
|
70
|
+
export function hasFlag(args, flag) {
|
|
71
|
+
return args.includes(flag);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Get positional arguments (non-flag arguments).
|
|
75
|
+
*/
|
|
76
|
+
export function getPositionalArgs(args) {
|
|
77
|
+
const result = [];
|
|
78
|
+
for (let i = 0; i < args.length; i++) {
|
|
79
|
+
if (args[i].startsWith('-')) {
|
|
80
|
+
// Skip flag and its value
|
|
81
|
+
if (!args[i].startsWith('--no-') && i + 1 < args.length && !args[i + 1].startsWith('-')) {
|
|
82
|
+
i++;
|
|
83
|
+
}
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
result.push(args[i]);
|
|
87
|
+
}
|
|
88
|
+
return result;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ifc-lite/cli",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "CLI toolkit for IFC files — query, validate, export, create, and script BIM data",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"ifc-lite": "./dist/index.js"
|
|
8
|
+
},
|
|
9
|
+
"main": "./dist/index.js",
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"import": "./dist/index.js",
|
|
14
|
+
"types": "./dist/index.d.ts"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"files": [
|
|
18
|
+
"dist",
|
|
19
|
+
"README.md"
|
|
20
|
+
],
|
|
21
|
+
"dependencies": {
|
|
22
|
+
"@ifc-lite/parser": "^2.1.1",
|
|
23
|
+
"@ifc-lite/query": "^1.14.4",
|
|
24
|
+
"@ifc-lite/data": "^1.14.3",
|
|
25
|
+
"@ifc-lite/sdk": "^1.14.4",
|
|
26
|
+
"@ifc-lite/export": "^1.15.1",
|
|
27
|
+
"@ifc-lite/ids": "^1.14.4",
|
|
28
|
+
"@ifc-lite/bcf": "^1.14.3",
|
|
29
|
+
"@ifc-lite/create": "^1.14.3",
|
|
30
|
+
"@ifc-lite/encoding": "^1.14.4",
|
|
31
|
+
"@ifc-lite/sandbox": "^1.14.3"
|
|
32
|
+
},
|
|
33
|
+
"devDependencies": {
|
|
34
|
+
"@types/node": "^20.0.0",
|
|
35
|
+
"typescript": "^5.3.0"
|
|
36
|
+
},
|
|
37
|
+
"engines": {
|
|
38
|
+
"node": ">=18.0.0"
|
|
39
|
+
},
|
|
40
|
+
"license": "MPL-2.0",
|
|
41
|
+
"author": "Louis True",
|
|
42
|
+
"repository": {
|
|
43
|
+
"type": "git",
|
|
44
|
+
"url": "https://github.com/louistrue/ifc-lite.git",
|
|
45
|
+
"directory": "packages/cli"
|
|
46
|
+
},
|
|
47
|
+
"homepage": "https://louistrue.github.io/ifc-lite/",
|
|
48
|
+
"bugs": "https://github.com/louistrue/ifc-lite/issues",
|
|
49
|
+
"keywords": [
|
|
50
|
+
"ifc",
|
|
51
|
+
"bim",
|
|
52
|
+
"cli",
|
|
53
|
+
"aec",
|
|
54
|
+
"building",
|
|
55
|
+
"construction",
|
|
56
|
+
"ifc-lite"
|
|
57
|
+
],
|
|
58
|
+
"publishConfig": {
|
|
59
|
+
"access": "public"
|
|
60
|
+
},
|
|
61
|
+
"scripts": {
|
|
62
|
+
"build": "tsc",
|
|
63
|
+
"dev": "tsc --watch",
|
|
64
|
+
"start": "node dist/index.js"
|
|
65
|
+
}
|
|
66
|
+
}
|