@ifc-lite/cli 0.26.0 → 0.27.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 (128) hide show
  1. package/dist/commands/ask.d.ts +8 -0
  2. package/dist/commands/ask.d.ts.map +1 -1
  3. package/dist/commands/ask.js +10 -9
  4. package/dist/commands/ask.js.map +1 -1
  5. package/dist/commands/bsdd.d.ts.map +1 -1
  6. package/dist/commands/bsdd.js +49 -13
  7. package/dist/commands/bsdd.js.map +1 -1
  8. package/dist/commands/diff-classification-label.d.ts +12 -0
  9. package/dist/commands/diff-classification-label.d.ts.map +1 -0
  10. package/dist/commands/diff-classification-label.js +20 -0
  11. package/dist/commands/diff-classification-label.js.map +1 -0
  12. package/dist/commands/diff-engine.d.ts.map +1 -1
  13. package/dist/commands/diff-engine.js +33 -11
  14. package/dist/commands/diff-engine.js.map +1 -1
  15. package/dist/commands/diff-test-helpers.d.ts +12 -0
  16. package/dist/commands/diff-test-helpers.d.ts.map +1 -1
  17. package/dist/commands/diff-test-helpers.js +68 -0
  18. package/dist/commands/diff-test-helpers.js.map +1 -1
  19. package/dist/commands/diff-unit-scale-fixtures.d.ts +34 -0
  20. package/dist/commands/diff-unit-scale-fixtures.d.ts.map +1 -0
  21. package/dist/commands/diff-unit-scale-fixtures.js +94 -0
  22. package/dist/commands/diff-unit-scale-fixtures.js.map +1 -0
  23. package/dist/commands/export.d.ts +11 -0
  24. package/dist/commands/export.d.ts.map +1 -1
  25. package/dist/commands/export.js +9 -14
  26. package/dist/commands/export.js.map +1 -1
  27. package/dist/commands/merge.d.ts.map +1 -1
  28. package/dist/commands/merge.js +8 -0
  29. package/dist/commands/merge.js.map +1 -1
  30. package/dist/commands/query-aggregation.d.ts +27 -4
  31. package/dist/commands/query-aggregation.d.ts.map +1 -1
  32. package/dist/commands/query-aggregation.js +67 -6
  33. package/dist/commands/query-aggregation.js.map +1 -1
  34. package/dist/commands/query-output.d.ts +7 -0
  35. package/dist/commands/query-output.d.ts.map +1 -1
  36. package/dist/commands/query-output.js +63 -27
  37. package/dist/commands/query-output.js.map +1 -1
  38. package/dist/commands/query-storey.d.ts +24 -0
  39. package/dist/commands/query-storey.d.ts.map +1 -0
  40. package/dist/commands/query-storey.js +71 -0
  41. package/dist/commands/query-storey.js.map +1 -0
  42. package/dist/commands/query.d.ts +2 -25
  43. package/dist/commands/query.d.ts.map +1 -1
  44. package/dist/commands/query.js +39 -158
  45. package/dist/commands/query.js.map +1 -1
  46. package/dist/commands/schedule-aggregate.d.ts +51 -0
  47. package/dist/commands/schedule-aggregate.d.ts.map +1 -0
  48. package/dist/commands/schedule-aggregate.js +121 -0
  49. package/dist/commands/schedule-aggregate.js.map +1 -0
  50. package/dist/commands/schedule-columns.d.ts +15 -0
  51. package/dist/commands/schedule-columns.d.ts.map +1 -0
  52. package/dist/commands/schedule-columns.js +63 -0
  53. package/dist/commands/schedule-columns.js.map +1 -0
  54. package/dist/commands/schedule-group.d.ts +65 -0
  55. package/dist/commands/schedule-group.d.ts.map +1 -0
  56. package/dist/commands/schedule-group.js +0 -0
  57. package/dist/commands/schedule-group.js.map +1 -0
  58. package/dist/commands/schedule-presets.d.ts +21 -0
  59. package/dist/commands/schedule-presets.d.ts.map +1 -0
  60. package/dist/commands/schedule-presets.js +62 -0
  61. package/dist/commands/schedule-presets.js.map +1 -0
  62. package/dist/commands/schedule-render-html.d.ts +13 -0
  63. package/dist/commands/schedule-render-html.d.ts.map +1 -0
  64. package/dist/commands/schedule-render-html.js +100 -0
  65. package/dist/commands/schedule-render-html.js.map +1 -0
  66. package/dist/commands/schedule-render-md.d.ts +12 -0
  67. package/dist/commands/schedule-render-md.d.ts.map +1 -0
  68. package/dist/commands/schedule-render-md.js +77 -0
  69. package/dist/commands/schedule-render-md.js.map +1 -0
  70. package/dist/commands/schedule-render.d.ts +51 -0
  71. package/dist/commands/schedule-render.d.ts.map +1 -0
  72. package/dist/commands/schedule-render.js +205 -0
  73. package/dist/commands/schedule-render.js.map +1 -0
  74. package/dist/commands/schedule-spec.d.ts +29 -0
  75. package/dist/commands/schedule-spec.d.ts.map +1 -0
  76. package/dist/commands/schedule-spec.js +111 -0
  77. package/dist/commands/schedule-spec.js.map +1 -0
  78. package/dist/commands/schedule.d.ts +23 -0
  79. package/dist/commands/schedule.d.ts.map +1 -0
  80. package/dist/commands/schedule.js +249 -0
  81. package/dist/commands/schedule.js.map +1 -0
  82. package/dist/commands/schema.d.ts.map +1 -1
  83. package/dist/commands/schema.js +192 -17
  84. package/dist/commands/schema.js.map +1 -1
  85. package/dist/commands/stats-aggregation.d.ts +31 -6
  86. package/dist/commands/stats-aggregation.d.ts.map +1 -1
  87. package/dist/commands/stats-aggregation.js +79 -11
  88. package/dist/commands/stats-aggregation.js.map +1 -1
  89. package/dist/commands/stats.d.ts.map +1 -1
  90. package/dist/commands/stats.js +4 -4
  91. package/dist/commands/stats.js.map +1 -1
  92. package/dist/commands/validate.d.ts +7 -4
  93. package/dist/commands/validate.d.ts.map +1 -1
  94. package/dist/commands/validate.js +9 -6
  95. package/dist/commands/validate.js.map +1 -1
  96. package/dist/commands/where-filter.d.ts +42 -0
  97. package/dist/commands/where-filter.d.ts.map +1 -0
  98. package/dist/commands/where-filter.js +88 -0
  99. package/dist/commands/where-filter.js.map +1 -0
  100. package/dist/energy-export.d.ts.map +1 -1
  101. package/dist/energy-export.js +12 -2
  102. package/dist/energy-export.js.map +1 -1
  103. package/dist/geometry-report.d.ts.map +1 -1
  104. package/dist/geometry-report.js +15 -3
  105. package/dist/geometry-report.js.map +1 -1
  106. package/dist/headless-backend.d.ts +20 -5
  107. package/dist/headless-backend.d.ts.map +1 -1
  108. package/dist/headless-backend.js +131 -90
  109. package/dist/headless-backend.js.map +1 -1
  110. package/dist/index.js +22 -0
  111. package/dist/index.js.map +1 -1
  112. package/dist/output.d.ts +13 -0
  113. package/dist/output.d.ts.map +1 -1
  114. package/dist/output.js +21 -0
  115. package/dist/output.js.map +1 -1
  116. package/dist/property-filter-match.d.ts +12 -0
  117. package/dist/property-filter-match.d.ts.map +1 -0
  118. package/dist/property-filter-match.js +17 -0
  119. package/dist/property-filter-match.js.map +1 -0
  120. package/dist/query-overlay-relations.d.ts +29 -0
  121. package/dist/query-overlay-relations.d.ts.map +1 -0
  122. package/dist/query-overlay-relations.js +88 -0
  123. package/dist/query-overlay-relations.js.map +1 -0
  124. package/dist/query-overlay.d.ts +44 -0
  125. package/dist/query-overlay.d.ts.map +1 -0
  126. package/dist/query-overlay.js +100 -0
  127. package/dist/query-overlay.js.map +1 -0
  128. package/package.json +21 -21
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/commands/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/commands/query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import { type NumericAggMode } from './query-aggregation.js';
2
+ import type { ScheduleColumn } from './schedule-columns.js';
3
+ import type { ScheduleRow } from './schedule-render.js';
4
+ import { type GroupKey } from './schedule-group.js';
5
+ export type SubtotalMode = 'count' | NumericAggMode;
6
+ /** One parsed `--subtotals` aggregation. `header`/`index` are null for `count`. */
7
+ export interface SubtotalAgg {
8
+ /** Original token, e.g. `count` or `sum:Area` — also the JSON field key. */
9
+ spec: string;
10
+ mode: SubtotalMode;
11
+ header: string | null;
12
+ index: number | null;
13
+ }
14
+ /** One computed aggregation value on a subtotal/total row. */
15
+ export interface SubtotalValue {
16
+ spec: string;
17
+ value: number | null;
18
+ }
19
+ /** A subtotal (per group) or the grand total row. */
20
+ export interface SubtotalRowData {
21
+ kind: 'subtotal' | 'total';
22
+ /** The group key values that identify this group; empty for the grand total. */
23
+ groupValues: Array<{
24
+ header: string;
25
+ index: number;
26
+ value: unknown;
27
+ }>;
28
+ values: SubtotalValue[];
29
+ }
30
+ /** The output plan: flat ordered rows, per-group subtotal rows, and a grand total. */
31
+ export interface SubtotalPlan {
32
+ rows: ScheduleRow[];
33
+ groups: Array<{
34
+ rows: ScheduleRow[];
35
+ subtotal: SubtotalRowData;
36
+ }>;
37
+ total: SubtotalRowData;
38
+ }
39
+ /**
40
+ * Parse `--subtotals "<agg>[, ...]"` into aggregations. A `sum|avg|min|max`
41
+ * token requires a `:<Header>` naming a declared column; `count` takes none.
42
+ */
43
+ export declare function parseSubtotalsSpec(spec: string | undefined, columns: ScheduleColumn[]): SubtotalAgg[];
44
+ /**
45
+ * Build the subtotal output plan from ORDERED rows (they must already be sorted
46
+ * so equal group tuples are contiguous — see `orderRows`). With group keys, each
47
+ * contiguous run becomes a group with its own subtotal; the grand total spans
48
+ * all rows in every case.
49
+ */
50
+ export declare function buildSubtotalPlan(rows: ScheduleRow[], groupKeys: GroupKey[], aggs: SubtotalAgg[]): SubtotalPlan;
51
+ //# sourceMappingURL=schedule-aggregate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule-aggregate.d.ts","sourceRoot":"","sources":["../../src/commands/schedule-aggregate.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAA6D,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/G,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,cAAc,CAAC;AAEpD,mFAAmF;AACnF,MAAM,WAAW,WAAW;IAC1B,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,8DAA8D;AAC9D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,qDAAqD;AACrD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IAC3B,gFAAgF;IAChF,WAAW,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACtE,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB;AAED,sFAAsF;AACtF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,WAAW,EAAE,CAAC;QAAC,QAAQ,EAAE,eAAe,CAAA;KAAE,CAAC,CAAC;IAClE,KAAK,EAAE,eAAe,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,WAAW,EAAE,CA+BrG;AA+BD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,YAAY,CAuB/G"}
@@ -0,0 +1,121 @@
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
+ * Subtotals for `ifc-lite schedule` (PR-2).
6
+ *
7
+ * `--subtotals <agg>[, ...]` where agg is `count | sum:<Header> | avg:<Header> |
8
+ * min:<Header> | max:<Header>`. Every `<Header>` must be a declared `--columns`
9
+ * header, else a `fatal(...)`. Numeric aggregation reuses the shared
10
+ * `aggregateFinite` from `query-aggregation.ts` — the same reducer behind
11
+ * `query --group-by`'s `--sum/--avg/--min/--max` aggregation mode, so the two
12
+ * cannot drift from each other (this is `query --group-by`'s aggregation, NOT
13
+ * the flat, ungrouped `query --sum/--avg/--min/--max`, which never calls
14
+ * `aggregateFinite` at all — see the doc comment on `aggregateFinite` itself
15
+ * for the full picture, including why a non-finite value cannot poison a
16
+ * subtotal here even though it happens via `cellToNumber` filtering it out
17
+ * before `aggregateFinite` is called, not via `aggregateFinite`'s own guard).
18
+ *
19
+ * With `--group-by`, a subtotal row follows each contiguous group and a grand
20
+ * total closes the schedule. Without `--group-by`, only the grand total is
21
+ * emitted (documented in the command help).
22
+ */
23
+ import { fatal } from '../output.js';
24
+ import { aggregateFinite } from './query-aggregation.js';
25
+ import { cellToNumber, cellCanonicalKey, columnMode } from './schedule-group.js';
26
+ /**
27
+ * Parse `--subtotals "<agg>[, ...]"` into aggregations. A `sum|avg|min|max`
28
+ * token requires a `:<Header>` naming a declared column; `count` takes none.
29
+ */
30
+ export function parseSubtotalsSpec(spec, columns) {
31
+ if (spec === undefined || spec.trim() === '')
32
+ return [];
33
+ const aggs = [];
34
+ for (const rawSegment of spec.split(',')) {
35
+ const segment = rawSegment.trim();
36
+ if (segment === '')
37
+ fatal(`Invalid --subtotals spec: empty entry in "${spec}". Expected "count | sum:Header | avg:Header | min:Header | max:Header".`);
38
+ const colonIdx = segment.indexOf(':');
39
+ const fn = (colonIdx === -1 ? segment : segment.slice(0, colonIdx)).trim().toLowerCase();
40
+ if (fn === 'count') {
41
+ if (colonIdx !== -1)
42
+ fatal(`Invalid --subtotals entry "${segment}": count takes no :Header.`);
43
+ aggs.push({ spec: 'count', mode: 'count', header: null, index: null });
44
+ continue;
45
+ }
46
+ if (fn !== 'sum' && fn !== 'avg' && fn !== 'min' && fn !== 'max') {
47
+ fatal(`Unknown --subtotals aggregation "${fn}". Valid: count, sum:Header, avg:Header, min:Header, max:Header.`);
48
+ }
49
+ if (colonIdx === -1)
50
+ fatal(`--subtotals "${fn}" requires a header, e.g. ${fn}:Area.`);
51
+ const header = segment.slice(colonIdx + 1).trim();
52
+ if (header === '')
53
+ fatal(`--subtotals "${fn}" requires a header, e.g. ${fn}:Area.`);
54
+ const index = columns.findIndex(c => c.header === header);
55
+ if (index === -1) {
56
+ const valid = columns.map(c => c.header).join(', ');
57
+ fatal(`--subtotals header "${header}" is not a declared --columns header. Valid headers: ${valid}`);
58
+ }
59
+ // Canonical spec token (lower-cased fn) so the CSV label and JSON key are stable.
60
+ aggs.push({ spec: `${fn}:${header}`, mode: fn, header, index });
61
+ }
62
+ return aggs;
63
+ }
64
+ /** Compute one row of aggregation values over the given rows. */
65
+ function computeValues(rows, aggs) {
66
+ return aggs.map(agg => {
67
+ if (agg.mode === 'count')
68
+ return { spec: agg.spec, value: rows.length };
69
+ const nums = [];
70
+ for (const row of rows) {
71
+ const n = cellToNumber(row[agg.index]);
72
+ if (n !== null)
73
+ nums.push(n);
74
+ }
75
+ return { spec: agg.spec, value: aggregateFinite(nums, agg.mode) };
76
+ });
77
+ }
78
+ /**
79
+ * True when two rows share every group key value (contiguous-group boundary
80
+ * test). Uses the SAME `cellCanonicalKey`/`columnMode` canonicalisation
81
+ * `orderRows` groups by (`schedule-group.ts`) — a raw `String(value)`
82
+ * comparison here used to disagree with the sorter's numeric/nullish
83
+ * equivalences ('1' vs '1.0', `null` vs a whitespace-only string), splitting
84
+ * one contiguous run the sorter placed together into two separate groups
85
+ * with repeated "Subtotal (...)" headings.
86
+ */
87
+ function sameGroup(a, b, groupKeys, modeByIndex) {
88
+ return groupKeys.every(g => {
89
+ const mode = modeByIndex.get(g.index);
90
+ return cellCanonicalKey(a[g.index], mode) === cellCanonicalKey(b[g.index], mode);
91
+ });
92
+ }
93
+ /**
94
+ * Build the subtotal output plan from ORDERED rows (they must already be sorted
95
+ * so equal group tuples are contiguous — see `orderRows`). With group keys, each
96
+ * contiguous run becomes a group with its own subtotal; the grand total spans
97
+ * all rows in every case.
98
+ */
99
+ export function buildSubtotalPlan(rows, groupKeys, aggs) {
100
+ const groups = [];
101
+ if (groupKeys.length > 0) {
102
+ // Decide each group column's mode once, from the full row set — the same
103
+ // canonicalisation `orderRows` used to make these rows contiguous.
104
+ const modeByIndex = new Map(groupKeys.map(g => [g.index, columnMode(rows, g.index)]));
105
+ let start = 0;
106
+ for (let i = 1; i <= rows.length; i++) {
107
+ if (i === rows.length || !sameGroup(rows[start], rows[i], groupKeys, modeByIndex)) {
108
+ const groupRows = rows.slice(start, i);
109
+ const groupValues = groupKeys.map(g => ({ header: g.header, index: g.index, value: groupRows[0][g.index] }));
110
+ groups.push({
111
+ rows: groupRows,
112
+ subtotal: { kind: 'subtotal', groupValues, values: computeValues(groupRows, aggs) },
113
+ });
114
+ start = i;
115
+ }
116
+ }
117
+ }
118
+ const total = { kind: 'total', groupValues: [], values: computeValues(rows, aggs) };
119
+ return { rows, groups, total };
120
+ }
121
+ //# sourceMappingURL=schedule-aggregate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule-aggregate.js","sourceRoot":"","sources":["../../src/commands/schedule-aggregate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export interface ScheduleColumn {
2
+ header: string;
3
+ path: string;
4
+ }
5
+ /**
6
+ * Parse a `--columns` spec into an ordered list of `{ header, path }` columns.
7
+ *
8
+ * Paths are attribute names or dot-separated `Set.Member` references, neither of
9
+ * which contains a comma, so splitting on the top-level comma is unambiguous.
10
+ * Each segment is a `Header=path` pair; a segment with no `=` uses its whole
11
+ * text as both header and path. Only the first `=` splits, so a value-side `=`
12
+ * (unusual in a path but harmless) stays with the path.
13
+ */
14
+ export declare function parseColumnSpec(spec: string | undefined): ScheduleColumn[];
15
+ //# sourceMappingURL=schedule-columns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule-columns.d.ts","sourceRoot":"","sources":["../../src/commands/schedule-columns.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,EAAE,CA8C1E"}
@@ -0,0 +1,63 @@
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
+ * Column-spec parser for `ifc-lite schedule`.
6
+ *
7
+ * A spec is a comma-separated list of `Header=path` pairs. `path` is either a
8
+ * plain attribute name (`Name`, `Tag`, `GlobalId`), a `PsetName.PropName`, or a
9
+ * `QtoName.QtyName`. A bare `path` with no `=` uses the path as its own header.
10
+ */
11
+ import { fatal } from '../output.js';
12
+ /**
13
+ * Parse a `--columns` spec into an ordered list of `{ header, path }` columns.
14
+ *
15
+ * Paths are attribute names or dot-separated `Set.Member` references, neither of
16
+ * which contains a comma, so splitting on the top-level comma is unambiguous.
17
+ * Each segment is a `Header=path` pair; a segment with no `=` uses its whole
18
+ * text as both header and path. Only the first `=` splits, so a value-side `=`
19
+ * (unusual in a path but harmless) stays with the path.
20
+ */
21
+ export function parseColumnSpec(spec) {
22
+ if (spec === undefined || spec.trim() === '') {
23
+ fatal('--columns is required, e.g. --columns "Name=Name, Level=Pset_WallCommon.Reference"');
24
+ }
25
+ const columns = [];
26
+ // Header (case-sensitive, matching every --sort/--group-by/--subtotals
27
+ // header lookup elsewhere in this command) -> the raw "Header=path" segment
28
+ // that first declared it, so a collision can be reported with both specs.
29
+ const bySegment = new Map();
30
+ for (const rawSegment of spec.split(',')) {
31
+ const segment = rawSegment.trim();
32
+ if (segment === '') {
33
+ fatal(`Invalid --columns spec: empty column in "${spec}". Expected "Header=path[, ...]".`);
34
+ }
35
+ const eqIdx = segment.indexOf('=');
36
+ let header;
37
+ let path;
38
+ if (eqIdx === -1) {
39
+ // Bare path: the path is its own header.
40
+ header = segment;
41
+ path = segment;
42
+ }
43
+ else {
44
+ header = segment.slice(0, eqIdx).trim();
45
+ path = segment.slice(eqIdx + 1).trim();
46
+ if (header === '' || path === '') {
47
+ fatal(`Invalid --columns entry "${segment}": expected "Header=path" with both sides non-empty.`);
48
+ }
49
+ }
50
+ const firstSegment = bySegment.get(header);
51
+ if (firstSegment !== undefined) {
52
+ fatal(`Duplicate --columns header "${header}": "${firstSegment}" and "${segment}" both declare it. ` +
53
+ `Every column needs a distinct header — give one an explicit "Header=path" with a different name.`);
54
+ }
55
+ bySegment.set(header, segment);
56
+ columns.push({ header, path });
57
+ }
58
+ if (columns.length === 0) {
59
+ fatal(`Invalid --columns spec: "${spec}". Expected "Header=path[, ...]".`);
60
+ }
61
+ return columns;
62
+ }
63
+ //# sourceMappingURL=schedule-columns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule-columns.js","sourceRoot":"","sources":["../../src/commands/schedule-columns.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAOrC;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,IAAwB;IACtD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC7C,KAAK,CAAC,oFAAoF,CAAC,CAAC;IAC9F,CAAC;IAED,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,uEAAuE;IACvE,4EAA4E;IAC5E,0EAA0E;IAC1E,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YACnB,KAAK,CAAC,4CAA4C,IAAI,mCAAmC,CAAC,CAAC;QAC7F,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,MAAc,CAAC;QACnB,IAAI,IAAY,CAAC;QACjB,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,yCAAyC;YACzC,MAAM,GAAG,OAAO,CAAC;YACjB,IAAI,GAAG,OAAO,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;YACxC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACvC,IAAI,MAAM,KAAK,EAAE,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;gBACjC,KAAK,CAAC,4BAA4B,OAAO,sDAAsD,CAAC,CAAC;YACnG,CAAC;QACH,CAAC;QAED,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,KAAK,CACH,+BAA+B,MAAM,OAAO,YAAY,UAAU,OAAO,qBAAqB;gBAC5F,kGAAkG,CACrG,CAAC;QACJ,CAAC;QACD,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,4BAA4B,IAAI,mCAAmC,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,65 @@
1
+ import type { ScheduleColumn } from './schedule-columns.js';
2
+ import type { ScheduleRow } from './schedule-render.js';
3
+ export type SortDir = 'asc' | 'desc';
4
+ /** One `--sort` key: a declared column plus a direction. */
5
+ export interface SortKey {
6
+ header: string;
7
+ index: number;
8
+ dir: SortDir;
9
+ }
10
+ /** One `--group-by` key: a declared column. */
11
+ export interface GroupKey {
12
+ header: string;
13
+ index: number;
14
+ }
15
+ /**
16
+ * Parse `--sort "<Header>[:asc|desc][, ...]"` into ordered keys. Default
17
+ * direction is asc; an unknown direction suffix is a `fatal(...)`.
18
+ */
19
+ export declare function parseSortSpec(spec: string | undefined, columns: ScheduleColumn[]): SortKey[];
20
+ /** Parse `--group-by "<Header>[, ...]"` into ordered keys. */
21
+ export declare function parseGroupBySpec(spec: string | undefined, columns: ScheduleColumn[]): GroupKey[];
22
+ /**
23
+ * Coerce a cell to a finite number when it fully parses as one, else `null`.
24
+ * A `null`/empty cell and a non-numeric string are both `null` so the caller
25
+ * can sort them last and skip them in a numeric aggregation.
26
+ */
27
+ export declare function cellToNumber(value: unknown): number | null;
28
+ /** True for a cell that sorts last (missing / empty). */
29
+ export declare function isNullish(value: unknown): boolean;
30
+ /** Whether a column's cells should compare/group numerically or as strings. */
31
+ export type CellMode = 'numeric' | 'string';
32
+ /**
33
+ * Decide one column's comparison mode from EVERY row, not per compared pair:
34
+ * numeric only when every non-blank cell in the column parses as a finite
35
+ * number, else string. Deciding per pair (the pre-fix behaviour) is
36
+ * intransitive — e.g. over ['2', '10', '1x', '3'], the pair (2, 10) compares
37
+ * numerically (2 < 10) while (2, '1x') falls back to string compare, so the
38
+ * apparent order depends on which pairs `Array.sort` happens to compare
39
+ * rather than forming one consistent ranking. An all-blank column has no
40
+ * cell to disagree on; its mode is irrelevant (every cell sorts/groups by
41
+ * `isNullish` before the mode is ever consulted) but 'string' is the safe
42
+ * default.
43
+ */
44
+ export declare function columnMode(rows: ScheduleRow[], index: number): CellMode;
45
+ /**
46
+ * Canonical grouping/equality key for one cell, given the column's decided
47
+ * mode. Every nullish cell (missing, `null`, or a whitespace-only string)
48
+ * canonicalises to the SAME key regardless of its exact spelling, and in
49
+ * numeric mode every cell that parses to the same number canonicalises to
50
+ * the same key ('1' and '1.0' both become '#1') — the single canonicaliser
51
+ * `orderRows`' grouping order and `buildSubtotalPlan`'s contiguous-run
52
+ * boundary test (`schedule-aggregate.ts`) both use, so a group that sorts
53
+ * together is also recognised as one group rather than splitting into
54
+ * repeated "Subtotal (...)" headings over raw-string differences the sorter
55
+ * already treats as equal.
56
+ */
57
+ export declare function cellCanonicalKey(value: unknown, mode: CellMode): string;
58
+ /**
59
+ * Order rows for output. Group headers order first (asc, or the direction the
60
+ * same header carries as a `--sort` key) so each group is contiguous, then the
61
+ * remaining `--sort` keys, then the original entity index as the stable
62
+ * tiebreaker. Returns a new array; the input is not mutated.
63
+ */
64
+ export declare function orderRows(rows: ScheduleRow[], sortKeys: SortKey[], groupKeys: GroupKey[]): ScheduleRow[];
65
+ //# sourceMappingURL=schedule-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule-group.d.ts","sourceRoot":"","sources":["../../src/commands/schedule-group.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,MAAM,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;AAErC,4DAA4D;AAC5D,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,OAAO,CAAC;CACd;AAED,+CAA+C;AAC/C,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAWD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,EAAE,CAsB5F;AAED,8DAA8D;AAC9D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,QAAQ,EAAE,CAShG;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAO1D;AAED,yDAAyD;AACzD,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEjD;AAED,+EAA+E;AAC/E,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE5C;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,CASvE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,CAIvE;AA0BD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CA0BxG"}
Binary file
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule-group.js","sourceRoot":"","sources":["../../src/commands/schedule-group.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export interface SchedulePreset {
2
+ type: string;
3
+ columns: string;
4
+ groupBy?: string;
5
+ sort?: string;
6
+ subtotals?: string;
7
+ }
8
+ export declare const SCHEDULE_PRESETS: Record<string, SchedulePreset>;
9
+ /**
10
+ * Look up a preset by name (case-insensitive). An unknown name is a
11
+ * `fatal(...)` that lists the valid preset names.
12
+ *
13
+ * `Object.hasOwn` guards a plain-object-property lookup against a name that
14
+ * collides with something every object inherits from `Object.prototype`
15
+ * (`constructor`, `toString`, `hasOwnProperty`, ...) — a bare
16
+ * `SCHEDULE_PRESETS[name]` would resolve `--preset constructor` to the
17
+ * inherited `Function` value instead of failing, since a function is truthy
18
+ * and a plain `!preset` check never catches it.
19
+ */
20
+ export declare function resolvePreset(name: string): SchedulePreset;
21
+ //# sourceMappingURL=schedule-presets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule-presets.d.ts","sourceRoot":"","sources":["../../src/commands/schedule-presets.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CA4B3D,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAQ1D"}
@@ -0,0 +1,62 @@
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
+ * Named presets for `ifc-lite schedule --preset <name>`.
6
+ *
7
+ * A preset supplies a default `--type` and a default `--columns` set (and,
8
+ * optionally, a default `--group-by`/`--sort`/`--subtotals`) so a common
9
+ * schedule runs with no other flags. Explicit `--type`/`--columns`/
10
+ * `--group-by`/`--sort`/`--subtotals` each override the preset's corresponding
11
+ * default (explicit flag wins); `--where`/`--format` apply as normal.
12
+ *
13
+ * Column paths use the standard IFC4 property/quantity sets. A path is `Attr`,
14
+ * `Pset.Prop`, or `Qto.Qty`, written `Header=path`. The `Material` pseudo-path
15
+ * resolves an element's associated material name via the shared material
16
+ * accessor (see `resolveScheduleValue`).
17
+ */
18
+ import { fatal } from '../output.js';
19
+ export const SCHEDULE_PRESETS = {
20
+ door: {
21
+ type: 'IfcDoor',
22
+ columns: 'Mark=Tag, Name, FireRating=Pset_DoorCommon.FireRating, IsExternal=Pset_DoorCommon.IsExternal, Width=Qto_DoorBaseQuantities.Width, Height=Qto_DoorBaseQuantities.Height',
23
+ },
24
+ window: {
25
+ type: 'IfcWindow',
26
+ columns: 'Mark=Tag, Name, FireRating=Pset_WindowCommon.FireRating, IsExternal=Pset_WindowCommon.IsExternal, Width=Qto_WindowBaseQuantities.Width, Height=Qto_WindowBaseQuantities.Height',
27
+ },
28
+ space: {
29
+ type: 'IfcSpace',
30
+ columns: 'Number=Name, LongName=LongName, Category=Pset_SpaceCommon.Category, NetFloorArea=Qto_SpaceBaseQuantities.NetFloorArea, NetVolume=Qto_SpaceBaseQuantities.NetVolume',
31
+ sort: 'NetFloorArea:desc',
32
+ },
33
+ wall: {
34
+ type: 'IfcWall',
35
+ columns: 'Name, FireRating=Pset_WallCommon.FireRating, IsExternal=Pset_WallCommon.IsExternal, LoadBearing=Pset_WallCommon.LoadBearing, Length=Qto_WallBaseQuantities.Length, Height=Qto_WallBaseQuantities.Height, NetVolume=Qto_WallBaseQuantities.NetVolume',
36
+ },
37
+ 'material-takeoff': {
38
+ type: 'IfcWall',
39
+ columns: 'Material=Material, NetVolume=Qto_WallBaseQuantities.NetVolume',
40
+ groupBy: 'Material',
41
+ subtotals: 'count, sum:NetVolume',
42
+ },
43
+ };
44
+ /**
45
+ * Look up a preset by name (case-insensitive). An unknown name is a
46
+ * `fatal(...)` that lists the valid preset names.
47
+ *
48
+ * `Object.hasOwn` guards a plain-object-property lookup against a name that
49
+ * collides with something every object inherits from `Object.prototype`
50
+ * (`constructor`, `toString`, `hasOwnProperty`, ...) — a bare
51
+ * `SCHEDULE_PRESETS[name]` would resolve `--preset constructor` to the
52
+ * inherited `Function` value instead of failing, since a function is truthy
53
+ * and a plain `!preset` check never catches it.
54
+ */
55
+ export function resolvePreset(name) {
56
+ const key = name.toLowerCase();
57
+ if (!Object.hasOwn(SCHEDULE_PRESETS, key)) {
58
+ fatal(`Unknown --preset "${name}". Valid presets: ${Object.keys(SCHEDULE_PRESETS).join(', ')}.`);
59
+ }
60
+ return SCHEDULE_PRESETS[key];
61
+ }
62
+ //# sourceMappingURL=schedule-presets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule-presets.js","sourceRoot":"","sources":["../../src/commands/schedule-presets.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAUrC,MAAM,CAAC,MAAM,gBAAgB,GAAmC;IAC9D,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,OAAO,EACL,wKAAwK;KAC3K;IACD,MAAM,EAAE;QACN,IAAI,EAAE,WAAW;QACjB,OAAO,EACL,gLAAgL;KACnL;IACD,KAAK,EAAE;QACL,IAAI,EAAE,UAAU;QAChB,OAAO,EACL,oKAAoK;QACtK,IAAI,EAAE,mBAAmB;KAC1B;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,OAAO,EACL,qPAAqP;KACxP;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,+DAA+D;QACxE,OAAO,EAAE,UAAU;QACnB,SAAS,EAAE,sBAAsB;KAClC;CACF,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAC/B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,GAAG,CAAC,EAAE,CAAC;QAC1C,KAAK,CACH,qBAAqB,IAAI,qBAAqB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC1F,CAAC;IACJ,CAAC;IACD,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { ScheduleColumn } from './schedule-columns.js';
2
+ import type { SubtotalPlan } from './schedule-aggregate.js';
3
+ import type { ScheduleRow } from './schedule-render.js';
4
+ /** Render the schedule as a standalone HTML document containing one `<table>`. */
5
+ export declare function renderScheduleHtml(columns: ScheduleColumn[], rows: ScheduleRow[]): string;
6
+ /**
7
+ * Render a schedule with `--subtotals` as a standalone HTML document: grouped
8
+ * rows followed by their subtotal `<tr class="subtotal">`, then the grand
9
+ * total `<tr class="total">` — the same layout `renderScheduleCsvWithSubtotals`
10
+ * produces.
11
+ */
12
+ export declare function renderScheduleHtmlWithSubtotals(columns: ScheduleColumn[], plan: SubtotalPlan): string;
13
+ //# sourceMappingURL=schedule-render-html.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule-render-html.d.ts","sourceRoot":"","sources":["../../src/commands/schedule-render-html.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAmB,MAAM,yBAAyB,CAAC;AAE7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AA8CxD,kFAAkF;AAClF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,CAEzF;AAED;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,YAAY,GAAG,MAAM,CAarG"}