@ifc-lite/cli 0.6.1 → 0.7.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/dist/commands/bcf.js.map +1 -1
- package/dist/commands/create.d.ts +3 -0
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +4 -2
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/create.test.d.ts +2 -0
- package/dist/commands/create.test.d.ts.map +1 -0
- package/dist/commands/create.test.js +87 -0
- package/dist/commands/create.test.js.map +1 -0
- package/dist/commands/export.d.ts.map +1 -1
- package/dist/commands/export.js.map +1 -1
- package/dist/commands/ids.d.ts.map +1 -1
- package/dist/commands/ids.js +35 -4
- package/dist/commands/ids.js.map +1 -1
- package/dist/commands/mutate.d.ts +36 -0
- package/dist/commands/mutate.d.ts.map +1 -1
- package/dist/commands/mutate.js +5 -5
- package/dist/commands/mutate.js.map +1 -1
- package/dist/commands/mutate.test.d.ts +2 -0
- package/dist/commands/mutate.test.d.ts.map +1 -0
- package/dist/commands/mutate.test.js +283 -0
- package/dist/commands/mutate.test.js.map +1 -0
- package/dist/commands/query-aggregation.d.ts +19 -0
- package/dist/commands/query-aggregation.d.ts.map +1 -0
- package/dist/commands/query-aggregation.js +121 -0
- package/dist/commands/query-aggregation.js.map +1 -0
- package/dist/commands/query-output.d.ts +11 -0
- package/dist/commands/query-output.d.ts.map +1 -0
- package/dist/commands/query-output.js +349 -0
- package/dist/commands/query-output.js.map +1 -0
- package/dist/commands/query.d.ts.map +1 -1
- package/dist/commands/query.js +3 -453
- package/dist/commands/query.js.map +1 -1
- package/dist/headless-backend.d.ts +17 -2
- package/dist/headless-backend.d.ts.map +1 -1
- package/dist/headless-backend.js +141 -14
- package/dist/headless-backend.js.map +1 -1
- package/dist/headless-backend.test.d.ts +2 -0
- package/dist/headless-backend.test.d.ts.map +1 -0
- package/dist/headless-backend.test.js +91 -0
- package/dist/headless-backend.test.js.map +1 -0
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js.map +1 -1
- package/dist/output.test.d.ts +2 -0
- package/dist/output.test.d.ts.map +1 -0
- package/dist/output.test.js +136 -0
- package/dist/output.test.js.map +1 -0
- package/package.json +20 -19
|
@@ -0,0 +1,136 @@
|
|
|
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
|
+
import { describe, it, expect } from 'vitest';
|
|
5
|
+
import { getFlag, getAllFlags, hasFlag, getPositionalArgs, formatTable, validateViewerPort, } from './output.js';
|
|
6
|
+
describe('getFlag', () => {
|
|
7
|
+
it('returns value for a present flag', () => {
|
|
8
|
+
expect(getFlag(['--type', 'IfcWall', '--limit', '10'], '--type')).toBe('IfcWall');
|
|
9
|
+
expect(getFlag(['--type', 'IfcWall', '--limit', '10'], '--limit')).toBe('10');
|
|
10
|
+
});
|
|
11
|
+
it('returns undefined for a missing flag', () => {
|
|
12
|
+
expect(getFlag(['--type', 'IfcWall'], '--limit')).toBeUndefined();
|
|
13
|
+
});
|
|
14
|
+
it('returns undefined when flag is last arg (no value follows)', () => {
|
|
15
|
+
expect(getFlag(['--type'], '--type')).toBeUndefined();
|
|
16
|
+
});
|
|
17
|
+
it('returns the first occurrence when flag is repeated', () => {
|
|
18
|
+
expect(getFlag(['--set', 'A', '--set', 'B'], '--set')).toBe('A');
|
|
19
|
+
});
|
|
20
|
+
it('handles flag value that looks like a flag', () => {
|
|
21
|
+
// getFlag just takes the next positional token regardless
|
|
22
|
+
expect(getFlag(['--out', '--verbose'], '--out')).toBe('--verbose');
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
describe('getAllFlags', () => {
|
|
26
|
+
it('collects all values for a repeated flag', () => {
|
|
27
|
+
expect(getAllFlags(['--set', 'A', '--set', 'B', '--set', 'C'], '--set')).toEqual(['A', 'B', 'C']);
|
|
28
|
+
});
|
|
29
|
+
it('returns empty array when flag is absent', () => {
|
|
30
|
+
expect(getAllFlags(['--type', 'IfcWall'], '--set')).toEqual([]);
|
|
31
|
+
});
|
|
32
|
+
it('skips flag at end without a value', () => {
|
|
33
|
+
expect(getAllFlags(['--set', 'A', '--set'], '--set')).toEqual(['A']);
|
|
34
|
+
});
|
|
35
|
+
it('handles interleaved flags correctly', () => {
|
|
36
|
+
expect(getAllFlags(['--set', 'X', '--other', 'Y', '--set', 'Z'], '--set')).toEqual(['X', 'Z']);
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
describe('hasFlag', () => {
|
|
40
|
+
it('returns true when flag is present', () => {
|
|
41
|
+
expect(hasFlag(['--json', '--verbose'], '--json')).toBe(true);
|
|
42
|
+
});
|
|
43
|
+
it('returns false when flag is absent', () => {
|
|
44
|
+
expect(hasFlag(['--json'], '--verbose')).toBe(false);
|
|
45
|
+
});
|
|
46
|
+
it('does not match partial flag names', () => {
|
|
47
|
+
expect(hasFlag(['--json-output'], '--json')).toBe(false);
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
describe('getPositionalArgs', () => {
|
|
51
|
+
it('extracts non-flag arguments', () => {
|
|
52
|
+
expect(getPositionalArgs(['model.ifc', '--type', 'IfcWall', '--json'])).toEqual(['model.ifc']);
|
|
53
|
+
});
|
|
54
|
+
it('returns all args when there are no flags', () => {
|
|
55
|
+
expect(getPositionalArgs(['file1.ifc', 'file2.ifc'])).toEqual(['file1.ifc', 'file2.ifc']);
|
|
56
|
+
});
|
|
57
|
+
it('returns empty array when all args are flags', () => {
|
|
58
|
+
expect(getPositionalArgs(['--json', '--verbose'])).toEqual([]);
|
|
59
|
+
});
|
|
60
|
+
it('skips flag values (next arg after a flag)', () => {
|
|
61
|
+
expect(getPositionalArgs(['input.ifc', '--out', 'output.ifc'])).toEqual(['input.ifc']);
|
|
62
|
+
});
|
|
63
|
+
it('handles --no- flags without consuming next arg', () => {
|
|
64
|
+
// --no- flags are boolean, they should not consume the next positional arg
|
|
65
|
+
expect(getPositionalArgs(['input.ifc', '--no-header', 'extra.ifc'])).toEqual(['input.ifc', 'extra.ifc']);
|
|
66
|
+
});
|
|
67
|
+
it('handles flag at end of args list', () => {
|
|
68
|
+
expect(getPositionalArgs(['input.ifc', '--json'])).toEqual(['input.ifc']);
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
describe('validateViewerPort', () => {
|
|
72
|
+
it('returns undefined for undefined input', () => {
|
|
73
|
+
expect(validateViewerPort(undefined)).toBeUndefined();
|
|
74
|
+
});
|
|
75
|
+
it('returns a valid port number', () => {
|
|
76
|
+
expect(validateViewerPort('3000')).toBe(3000);
|
|
77
|
+
expect(validateViewerPort('1')).toBe(1);
|
|
78
|
+
expect(validateViewerPort('65535')).toBe(65535);
|
|
79
|
+
expect(validateViewerPort('8080')).toBe(8080);
|
|
80
|
+
});
|
|
81
|
+
it('calls fatal for port 0', () => {
|
|
82
|
+
expect(() => validateViewerPort('0')).toThrow();
|
|
83
|
+
});
|
|
84
|
+
it('calls fatal for port above 65535', () => {
|
|
85
|
+
expect(() => validateViewerPort('70000')).toThrow();
|
|
86
|
+
});
|
|
87
|
+
it('calls fatal for negative port', () => {
|
|
88
|
+
expect(() => validateViewerPort('-1')).toThrow();
|
|
89
|
+
});
|
|
90
|
+
it('calls fatal for non-numeric input', () => {
|
|
91
|
+
expect(() => validateViewerPort('abc')).toThrow();
|
|
92
|
+
});
|
|
93
|
+
it('calls fatal for empty string', () => {
|
|
94
|
+
expect(() => validateViewerPort('')).toThrow();
|
|
95
|
+
});
|
|
96
|
+
it('parses integer portion from floating point string', () => {
|
|
97
|
+
// parseInt('3.5', 10) returns 3, which is valid
|
|
98
|
+
expect(validateViewerPort('3.5')).toBe(3);
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
describe('formatTable', () => {
|
|
102
|
+
it('formats a basic table with headers and rows', () => {
|
|
103
|
+
const result = formatTable(['Name', 'Type'], [['Wall-1', 'IfcWall'], ['Slab-1', 'IfcSlab']]);
|
|
104
|
+
const lines = result.split('\n');
|
|
105
|
+
expect(lines).toHaveLength(4); // header + separator + 2 rows
|
|
106
|
+
expect(lines[0]).toContain('Name');
|
|
107
|
+
expect(lines[0]).toContain('Type');
|
|
108
|
+
expect(lines[2]).toContain('Wall-1');
|
|
109
|
+
expect(lines[2]).toContain('IfcWall');
|
|
110
|
+
expect(lines[3]).toContain('Slab-1');
|
|
111
|
+
expect(lines[3]).toContain('IfcSlab');
|
|
112
|
+
});
|
|
113
|
+
it('handles empty rows', () => {
|
|
114
|
+
const result = formatTable(['Col1', 'Col2'], []);
|
|
115
|
+
const lines = result.split('\n');
|
|
116
|
+
expect(lines).toHaveLength(2); // header + separator only
|
|
117
|
+
});
|
|
118
|
+
it('truncates cells exceeding 60 characters', () => {
|
|
119
|
+
const longString = 'A'.repeat(80);
|
|
120
|
+
const result = formatTable(['Name'], [[longString]]);
|
|
121
|
+
const lines = result.split('\n');
|
|
122
|
+
// The cell content should be sliced to at most 60 chars
|
|
123
|
+
const dataLine = lines[2];
|
|
124
|
+
// The actual cell text within the row should be at most 60 chars
|
|
125
|
+
expect(dataLine.length).toBeLessThanOrEqual(64); // 60 + padding/borders
|
|
126
|
+
});
|
|
127
|
+
it('handles missing cells in rows gracefully', () => {
|
|
128
|
+
// Row has fewer cells than headers
|
|
129
|
+
const result = formatTable(['A', 'B', 'C'], [['x']]);
|
|
130
|
+
const lines = result.split('\n');
|
|
131
|
+
expect(lines).toHaveLength(3);
|
|
132
|
+
// Should not throw, missing cells default to empty string
|
|
133
|
+
expect(lines[2]).toContain('x');
|
|
134
|
+
});
|
|
135
|
+
});
|
|
136
|
+
//# sourceMappingURL=output.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.test.js","sourceRoot":"","sources":["../src/output.test.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.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "CLI toolkit for IFC files — query, validate, export, create, and script BIM data",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -19,23 +19,24 @@
|
|
|
19
19
|
"README.md"
|
|
20
20
|
],
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@ifc-lite/parser": "^2.
|
|
23
|
-
"@ifc-lite/query": "^1.14.
|
|
24
|
-
"@ifc-lite/data": "^1.15.
|
|
25
|
-
"@ifc-lite/sdk": "^1.
|
|
26
|
-
"@ifc-lite/export": "^1.
|
|
27
|
-
"@ifc-lite/ids": "^1.14.
|
|
28
|
-
"@ifc-lite/bcf": "^1.15.
|
|
29
|
-
"@ifc-lite/create": "^1.
|
|
30
|
-
"@ifc-lite/encoding": "^1.14.
|
|
31
|
-
"@ifc-lite/sandbox": "^1.
|
|
32
|
-
"@ifc-lite/mutations": "^1.
|
|
33
|
-
"@ifc-lite/wasm": "^1.16.
|
|
34
|
-
"@ifc-lite/viewer-core": "^0.2.
|
|
22
|
+
"@ifc-lite/parser": "^2.2.0",
|
|
23
|
+
"@ifc-lite/query": "^1.14.7",
|
|
24
|
+
"@ifc-lite/data": "^1.15.2",
|
|
25
|
+
"@ifc-lite/sdk": "^1.15.0",
|
|
26
|
+
"@ifc-lite/export": "^1.18.0",
|
|
27
|
+
"@ifc-lite/ids": "^1.14.10",
|
|
28
|
+
"@ifc-lite/bcf": "^1.15.3",
|
|
29
|
+
"@ifc-lite/create": "^1.15.0",
|
|
30
|
+
"@ifc-lite/encoding": "^1.14.6",
|
|
31
|
+
"@ifc-lite/sandbox": "^1.15.0",
|
|
32
|
+
"@ifc-lite/mutations": "^1.15.0",
|
|
33
|
+
"@ifc-lite/wasm": "^1.16.7",
|
|
34
|
+
"@ifc-lite/viewer-core": "^0.2.3"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@types/node": "^20.0.0",
|
|
38
|
-
"typescript": "^5.3.0"
|
|
38
|
+
"typescript": "^5.3.0",
|
|
39
|
+
"vitest": "^3.2.1"
|
|
39
40
|
},
|
|
40
41
|
"engines": {
|
|
41
42
|
"node": ">=18.0.0"
|
|
@@ -62,9 +63,9 @@
|
|
|
62
63
|
"access": "public"
|
|
63
64
|
},
|
|
64
65
|
"scripts": {
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
"
|
|
66
|
+
"build": "pnpm exec tsc",
|
|
67
|
+
"dev": "pnpm exec tsc --watch",
|
|
68
|
+
"start": "node dist/index.js",
|
|
69
|
+
"test": "vitest run"
|
|
69
70
|
}
|
|
70
71
|
}
|