@ifc-lite/cli 0.34.0 → 0.38.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/README.md +1 -1
- package/dist/commands/anonymize.d.ts.map +1 -1
- package/dist/commands/anonymize.js +1 -0
- package/dist/commands/anonymize.js.map +1 -1
- package/dist/commands/check.d.ts +2 -0
- package/dist/commands/check.d.ts.map +1 -0
- package/dist/commands/check.js +119 -0
- package/dist/commands/check.js.map +1 -0
- package/dist/commands/convert.d.ts.map +1 -1
- package/dist/commands/convert.js +28 -8
- package/dist/commands/convert.js.map +1 -1
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +6 -0
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/delivery-checks-rules.d.ts +37 -0
- package/dist/commands/delivery-checks-rules.d.ts.map +1 -0
- package/dist/commands/delivery-checks-rules.js +76 -0
- package/dist/commands/delivery-checks-rules.js.map +1 -0
- package/dist/commands/delivery-checks.d.ts +12 -0
- package/dist/commands/delivery-checks.d.ts.map +1 -1
- package/dist/commands/delivery-checks.js +16 -5
- package/dist/commands/delivery-checks.js.map +1 -1
- package/dist/commands/delivery-recipe.d.ts +13 -2
- package/dist/commands/delivery-recipe.d.ts.map +1 -1
- package/dist/commands/delivery-recipe.js +29 -17
- package/dist/commands/delivery-recipe.js.map +1 -1
- package/dist/commands/delivery-report.d.ts +2 -2
- package/dist/commands/delivery-report.d.ts.map +1 -1
- package/dist/commands/delivery-report.js +14 -4
- package/dist/commands/delivery-report.js.map +1 -1
- package/dist/commands/delivery.d.ts.map +1 -1
- package/dist/commands/delivery.js +17 -5
- package/dist/commands/delivery.js.map +1 -1
- package/dist/commands/diff-engine.js +1 -0
- package/dist/commands/diff-engine.js.map +1 -1
- package/dist/commands/diff-scope.d.ts.map +1 -1
- package/dist/commands/diff-scope.js +2 -0
- package/dist/commands/diff-scope.js.map +1 -1
- package/dist/commands/diff.d.ts.map +1 -1
- package/dist/commands/diff.js +2 -0
- package/dist/commands/diff.js.map +1 -1
- package/dist/commands/export.d.ts.map +1 -1
- package/dist/commands/export.js +13 -0
- package/dist/commands/export.js.map +1 -1
- package/dist/commands/ext.js +26 -10
- package/dist/commands/ext.js.map +1 -1
- package/dist/commands/extract-entities.d.ts.map +1 -1
- package/dist/commands/extract-entities.js +26 -8
- package/dist/commands/extract-entities.js.map +1 -1
- package/dist/commands/flow-host.d.ts +26 -0
- package/dist/commands/flow-host.d.ts.map +1 -0
- package/dist/commands/flow-host.js +29 -0
- package/dist/commands/flow-host.js.map +1 -0
- package/dist/commands/flow-tracking.d.ts +20 -0
- package/dist/commands/flow-tracking.d.ts.map +1 -0
- package/dist/commands/flow-tracking.js +86 -0
- package/dist/commands/flow-tracking.js.map +1 -0
- package/dist/commands/flow.d.ts +2 -0
- package/dist/commands/flow.d.ts.map +1 -0
- package/dist/commands/flow.js +273 -0
- package/dist/commands/flow.js.map +1 -0
- package/dist/commands/gym/channels.d.ts.map +1 -1
- package/dist/commands/gym/channels.js +10 -2
- package/dist/commands/gym/channels.js.map +1 -1
- package/dist/commands/gym.d.ts.map +1 -1
- package/dist/commands/gym.js +5 -1
- package/dist/commands/gym.js.map +1 -1
- package/dist/commands/ids.d.ts.map +1 -1
- package/dist/commands/ids.js +36 -3
- package/dist/commands/ids.js.map +1 -1
- package/dist/commands/info.d.ts.map +1 -1
- package/dist/commands/info.js +20 -5
- package/dist/commands/info.js.map +1 -1
- package/dist/commands/layer-publish.d.ts.map +1 -1
- package/dist/commands/layer-publish.js +6 -0
- package/dist/commands/layer-publish.js.map +1 -1
- package/dist/commands/lod.d.ts.map +1 -1
- package/dist/commands/lod.js +4 -1
- package/dist/commands/lod.js.map +1 -1
- package/dist/commands/mutate-step-record.d.ts +25 -1
- package/dist/commands/mutate-step-record.d.ts.map +1 -1
- package/dist/commands/mutate-step-record.js +17 -22
- package/dist/commands/mutate-step-record.js.map +1 -1
- package/dist/commands/mutate.d.ts +2 -1
- package/dist/commands/mutate.d.ts.map +1 -1
- package/dist/commands/mutate.js +27 -2
- package/dist/commands/mutate.js.map +1 -1
- package/dist/commands/rekey.d.ts.map +1 -1
- package/dist/commands/rekey.js +22 -1
- package/dist/commands/rekey.js.map +1 -1
- package/dist/commands/schema.d.ts.map +1 -1
- package/dist/commands/schema.js +5 -1
- package/dist/commands/schema.js.map +1 -1
- package/dist/commands/simplify.d.ts.map +1 -1
- package/dist/commands/simplify.js +4 -1
- package/dist/commands/simplify.js.map +1 -1
- package/dist/commands/validate.d.ts +5 -14
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +11 -14
- package/dist/commands/validate.js.map +1 -1
- package/dist/headless-backend-store-authoring.d.ts +28 -0
- package/dist/headless-backend-store-authoring.d.ts.map +1 -0
- package/dist/headless-backend-store-authoring.js +34 -0
- package/dist/headless-backend-store-authoring.js.map +1 -0
- package/dist/headless-backend.d.ts +7 -0
- package/dist/headless-backend.d.ts.map +1 -1
- package/dist/headless-backend.js +59 -55
- package/dist/headless-backend.js.map +1 -1
- package/dist/help.d.ts +22 -0
- package/dist/help.d.ts.map +1 -0
- package/dist/help.js +260 -0
- package/dist/help.js.map +1 -0
- package/dist/index.js +41 -189
- package/dist/index.js.map +1 -1
- package/dist/loader.d.ts +12 -0
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +54 -7
- package/dist/loader.js.map +1 -1
- package/dist/out-flag-commands.d.ts +12 -0
- package/dist/out-flag-commands.d.ts.map +1 -0
- package/dist/out-flag-commands.js +19 -0
- package/dist/out-flag-commands.js.map +1 -0
- package/dist/query-overlay-relations.js +1 -1
- package/dist/query-overlay-relations.js.map +1 -1
- package/dist/query-overlay.d.ts +0 -2
- package/dist/query-overlay.d.ts.map +1 -1
- package/dist/query-overlay.js +0 -15
- package/dist/query-overlay.js.map +1 -1
- package/package.json +26 -22
- package/dist/version.d.ts +0 -14
- package/dist/version.d.ts.map +0 -1
- package/dist/version.js +0 -38
- package/dist/version.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -9,6 +9,8 @@
|
|
|
9
9
|
* from the command line. Designed for both humans and LLM terminals.
|
|
10
10
|
*/
|
|
11
11
|
import { logger, parseVerbosity } from './logger.js';
|
|
12
|
+
import { fatal } from './output.js';
|
|
13
|
+
import { COMMANDS_WITH_OUT } from './out-flag-commands.js';
|
|
12
14
|
import { infoCommand } from './commands/info.js';
|
|
13
15
|
import { queryCommand } from './commands/query.js';
|
|
14
16
|
import { scheduleCommand } from './commands/schedule.js';
|
|
@@ -44,197 +46,21 @@ import { layerCommand } from './commands/layer.js';
|
|
|
44
46
|
import { refCommand } from './commands/ref.js';
|
|
45
47
|
import { gymCommand } from './commands/gym.js';
|
|
46
48
|
import { deliveryCommand } from './commands/delivery.js';
|
|
49
|
+
import { checkCommand } from './commands/check.js';
|
|
50
|
+
import { flowCommand } from './commands/flow.js';
|
|
47
51
|
import { fileURLToPath } from 'node:url';
|
|
48
52
|
import { dirname, join } from 'node:path';
|
|
49
|
-
import {
|
|
50
|
-
|
|
51
|
-
const __dirname = dirname(__filename);
|
|
53
|
+
import { readPackageVersion } from '@ifc-lite/data/node';
|
|
54
|
+
import { buildHelp, buildCommandHelp } from './help.js';
|
|
52
55
|
// package.json sits one level above both `src/` and `dist/`.
|
|
53
|
-
const VERSION =
|
|
54
|
-
const HELP = `
|
|
55
|
-
ifc-lite v${VERSION} — BIM toolkit for the terminal
|
|
56
|
-
|
|
57
|
-
Usage: ifc-lite <command> [options]
|
|
58
|
-
|
|
59
|
-
Commands:
|
|
60
|
-
info <file.ifc> Model summary (schema, entities, storeys)
|
|
61
|
-
query <file.ifc> [--type T] [--json] Query entities by type/properties/quantities
|
|
62
|
-
[--select "IfcWall, Pset_WallCommon.FireRating=2HR"] IfcOpenShell-style selector (classes union with --type; properties AND with --where)
|
|
63
|
-
props <file.ifc> --id <N> All properties for a single entity
|
|
64
|
-
export <file.ifc> --format csv|json|ifc|obj|gltf|glb|jsonld|step|ifcx|usd|hbjson|dfjson Export data / geometry / energy model
|
|
65
|
-
schedule <file.ifc> --type T --columns "H=path,..." Tabular schedule of one class (csv/json/md/html)
|
|
66
|
-
[--preset door|window|space|wall|material-takeoff] default type+columns (flags override)
|
|
67
|
-
[--where PsetName.Prop=Value] [--format csv|json|md|html] path = attr | Pset.Prop | Qto.Qty
|
|
68
|
-
[--sort "Header[:asc|desc],..."] multi-key row sort by column HEADER (numbers numeric, nulls last)
|
|
69
|
-
[--group-by "Header,..."] contiguous groups, ordered by group key (asc, or --sort's dir)
|
|
70
|
-
[--subtotals "count|sum:H|avg:H|min:H|max:H,..."] subtotal row per group + grand total
|
|
71
|
-
(without --group-by: grand total only; CSV/md label the group column, JSON marks __row)
|
|
72
|
-
[--spec spec.json] load a saved schedule definition (beats --preset; an explicit flag beats both)
|
|
73
|
-
[--save spec.json] persist this invocation's resolved definition for --spec reuse
|
|
74
|
-
diagnose-geometry <file.ifc> [--json] CSG / opening diagnostics (failures, classification)
|
|
75
|
-
[--product ID|GUID] [--type T] Filter worst-hosts detail to one product/type
|
|
76
|
-
extract-entities <file.ifc> --out F Isolate entities into a small, viewable standalone IFC
|
|
77
|
-
[--product ID|GUID] [--storey S] [--detect] [--view] by GUID/type/storey or auto-triage
|
|
78
|
-
anonymize <file.ifc> --out F Export selected objects + context as an anonymized IFC
|
|
79
|
-
[--id N,...] [--guid G,...] [--type T] [--storey S]
|
|
80
|
-
[--keep-psets] [--keep-names] [--keep-other-names] [--keep-currency]
|
|
81
|
-
[--no-rel-voids-element] [--no-rel-fills-element] [--no-rel-defines-by-type]
|
|
82
|
-
[--no-rel-associates-material] [--no-rel-aggregates] [--no-rel-nests]
|
|
83
|
-
[--connect-depth N] [--guid-map F] [--json]
|
|
84
|
-
ids <file.ifc> <rules.ids> Validate against IDS rules
|
|
85
|
-
bcf <create|list|add-comment> Work with BCF collaboration files
|
|
86
|
-
clash <file.ifc> [--matrix] [--bcf F] Detect geometric clashes between elements
|
|
87
|
-
create <type> [options] --out F Create IFC elements (30+ types)
|
|
88
|
-
eval <file.ifc> "<expression>" Evaluate SDK expression
|
|
89
|
-
run <script.js> <file.ifc> Execute a script against model
|
|
90
|
-
schema Dump SDK API schema (for LLM tools)
|
|
91
|
-
merge <f1.ifc> <f2.ifc> --out F Merge multiple IFC files
|
|
92
|
-
convert <file.ifc> --schema VER --out F Convert between IFC schema versions
|
|
93
|
-
diff <f1.ifc> <f2.ifc> Compare two IFC files
|
|
94
|
-
[--by-content] [--identity-out F] [--identity-in F] Match re-GUIDed elements by content; save/replay the identity map
|
|
95
|
-
[--geometry] [--split-merge] [--successors] Wasm mesh pass: world geometry hashes/boxes/volumes; split/merge + successor claims
|
|
96
|
-
[--lineage-out F] [--lineage-in F] [--accept F] [--key-from Tag|Pset.Prop] Lineage for rekeying external data; authored key
|
|
97
|
-
rekey <table.csv|json> --lineage F --out F Carry a table keyed on old element keys across a revision
|
|
98
|
-
validate <file.ifc> Structural validation checks
|
|
99
|
-
bsdd <class|search|psets|qsets> <arg> buildingSMART Data Dictionary lookup
|
|
100
|
-
stats <file.ifc> Auto-calculated model KPIs and health check
|
|
101
|
-
mutate <file.ifc> --id N --set P=V --out F Modify properties/attributes and save
|
|
102
|
-
generate-spaces <file.ifc> --out F Derive IfcSpace from walls (slab/roof-aware height)
|
|
103
|
-
ask <file.ifc> "<question>" Natural language BIM queries
|
|
104
|
-
view <file.ifc> [--port N] Interactive 3D viewer in browser
|
|
105
|
-
analyze <file.ifc> --viewer <port> Query + visualize analysis results
|
|
106
|
-
lod <file.ifc> --level 0|1 Generate lightweight LOD artifacts
|
|
107
|
-
simplify <file.ifc> --out F [--level 1..5] [--ids 1,2,...] [--json] Demesher: simplify meshes, write lighter IFC
|
|
108
|
-
mcp <file.ifc> [--transport stdio|http] Start an MCP server bound to one or more IFC files
|
|
109
|
-
ext validate <path>|init <dir> Manage IFClite extensions (Phase 0 — validate, init)
|
|
110
|
-
layer <publish|diff|merge|log|bake|...> Layered change tracking over a local store (.ifc-lite/)
|
|
111
|
-
ref <list|create|move|protect> Manage named refs in the layer store
|
|
112
|
-
gym --model <file.ifc> | --seed <n> reset/step/reward environment loop (JSONL over stdin/stdout)
|
|
113
|
-
delivery <recipe.json> [--json] [--out F] [--html F] Repeatable delivery check (structural + IDS) from a saved recipe
|
|
114
|
-
recipe: {"models":["m.ifc"],"structural":true,"ids":["rules.ids"]}, paths relative to the recipe file
|
|
115
|
-
|
|
116
|
-
Options:
|
|
117
|
-
--help, -h Show help
|
|
118
|
-
--version, -v Show version
|
|
119
|
-
--json Output as JSON (machine-readable)
|
|
120
|
-
--out <file> Write output to file instead of stdout
|
|
121
|
-
--verbose Show parser + geometry diagnostics (stderr)
|
|
122
|
-
--quiet Errors only
|
|
123
|
-
--debug Verbose + stack traces on error
|
|
124
|
-
--log-level <level> error|warn|info|debug (explicit wins over shorthands)
|
|
125
|
-
|
|
126
|
-
Examples:
|
|
127
|
-
ifc-lite info model.ifc
|
|
128
|
-
ifc-lite query model.ifc --type IfcWall --json
|
|
129
|
-
ifc-lite query model.ifc --type IfcDoor --props --limit 5
|
|
130
|
-
ifc-lite query model.ifc --type IfcWall --materials --classifications --json
|
|
131
|
-
ifc-lite query model.ifc --type IfcWall --all --json
|
|
132
|
-
ifc-lite query model.ifc --type IfcWall --quantity-names
|
|
133
|
-
ifc-lite query model.ifc --type IfcWall --sum GrossSideArea
|
|
134
|
-
ifc-lite query model.ifc --type IfcWall --group-by material --json
|
|
135
|
-
ifc-lite query model.ifc --spatial --summary
|
|
136
|
-
ifc-lite query model.ifc --spatial
|
|
137
|
-
ifc-lite props model.ifc --id 42
|
|
138
|
-
ifc-lite export model.ifc --format csv --type IfcWall --columns Name,Type,GlobalId
|
|
139
|
-
ifc-lite export model.ifc --format json --type IfcWall,IfcDoor
|
|
140
|
-
ifc-lite schedule model.ifc --type IfcDoor --columns "Name=Name, Mark=Pset_DoorCommon.Reference"
|
|
141
|
-
ifc-lite schedule model.ifc --type IfcWall --columns "Name,Qto_WallBaseQuantities.NetVolume" --where Pset_WallCommon.IsExternal=true --format json
|
|
142
|
-
ifc-lite schedule model.ifc --type IfcDoor --columns "Name=Name, Fire=Pset_DoorCommon.FireRating, Area=Qto_DoorBaseQuantities.Area" --group-by Fire --sort "Area:desc" --subtotals "count, sum:Area"
|
|
143
|
-
ifc-lite schedule model.ifc --preset door
|
|
144
|
-
ifc-lite schedule model.ifc --preset material-takeoff --format json
|
|
145
|
-
ifc-lite schedule model.ifc --preset door --format md
|
|
146
|
-
ifc-lite schedule model.ifc --preset door --format html > doors.html
|
|
147
|
-
ifc-lite schedule model.ifc --preset door --save door-schedule.json
|
|
148
|
-
ifc-lite schedule model.ifc --spec door-schedule.json --format json
|
|
149
|
-
ifc-lite diagnose-geometry model.ifc --json
|
|
150
|
-
ifc-lite diagnose-geometry model.ifc --type IfcWall
|
|
151
|
-
ifc-lite diagnose-geometry model.ifc --product 0YvCT2_$X3_xJG3rzD8L_8
|
|
152
|
-
ifc-lite ids model.ifc requirements.ids --json
|
|
153
|
-
ifc-lite bcf create --title "Missing door" --out topic.bcf
|
|
154
|
-
ifc-lite clash model.ifc --matrix --json
|
|
155
|
-
ifc-lite clash model.ifc --a "IfcDuct*|IfcPipe*" --b "IfcWall*" --mode clearance --clearance 0.05
|
|
156
|
-
ifc-lite clash model.ifc --matrix --bcf clashes.bcfzip
|
|
157
|
-
ifc-lite create wall --height 3 --thickness 0.2 --start 0,0,0 --end 5,0,0 --out wall.ifc
|
|
158
|
-
ifc-lite create stair --number-of-risers 12 --riser-height 0.175 --width 1.2 --out stair.ifc
|
|
159
|
-
ifc-lite create door --width 0.9 --height 2.1 --position 0,0,0 --out door.ifc
|
|
160
|
-
ifc-lite create i-shape-beam --start 0,0,3 --end 5,0,3 --out beam.ifc
|
|
161
|
-
ifc-lite create wall --from-json --out w.ifc < params.json
|
|
162
|
-
ifc-lite create wall --pset '{"Name":"Pset_WallCommon","Properties":[{"Name":"IsExternal","NominalValue":true}]}' --out w.ifc
|
|
163
|
-
ifc-lite create wall --material '{"Name":"Concrete","Category":"Structural"}' --out w.ifc
|
|
164
|
-
ifc-lite create wall --color 0.8,0.2,0.2 --out w.ifc
|
|
165
|
-
ifc-lite eval model.ifc "bim.query().byType('IfcWall').count()"
|
|
166
|
-
ifc-lite eval model.ifc "bim.storeys().map(s => s.name)"
|
|
167
|
-
ifc-lite run analysis.js model.ifc
|
|
168
|
-
ifc-lite schema
|
|
169
|
-
ifc-lite schema --compact
|
|
170
|
-
ifc-lite merge arch.ifc struct.ifc mep.ifc --out federated.ifc
|
|
171
|
-
ifc-lite convert model.ifc --schema IFC4 --out model-ifc4.ifc
|
|
172
|
-
ifc-lite diff model-v1.ifc model-v2.ifc --json
|
|
173
|
-
ifc-lite diff model-v1.ifc model-v2.ifc --by-entity
|
|
174
|
-
ifc-lite diff model-v1.ifc model-v2.ifc --by-content --identity-out renames.json
|
|
175
|
-
ifc-lite diff model-v1.ifc model-v2.ifc --identity-in renames.json
|
|
176
|
-
ifc-lite diff model-v1.ifc model-v2.ifc --geometry --split-merge --successors --json
|
|
177
|
-
ifc-lite diff model-v1.ifc model-v2.ifc --key-from Pset_Asset.AssetId --lineage-out lineage.json
|
|
178
|
-
ifc-lite rekey costs.csv --lineage lineage.json --key-column GlobalId --out costs-v2.csv
|
|
179
|
-
ifc-lite validate model.ifc --json
|
|
180
|
-
ifc-lite bsdd class IfcWall
|
|
181
|
-
ifc-lite bsdd search "concrete wall"
|
|
182
|
-
ifc-lite bsdd psets IfcWall
|
|
183
|
-
ifc-lite ask model.ifc "how many walls?"
|
|
184
|
-
ifc-lite ask model.ifc "window-wall ratio" --json
|
|
185
|
-
ifc-lite ask model.ifc "list materials" --explain
|
|
186
|
-
ifc-lite view model.ifc
|
|
187
|
-
ifc-lite view model.ifc --port 3456
|
|
188
|
-
curl -X POST http://localhost:3456/api/command -H 'Content-Type: application/json' -d '{"action":"colorize","type":"IfcWall","color":[1,0,0,1]}'
|
|
189
|
-
ifc-lite analyze model.ifc --viewer 3456 --type IfcWall --missing "Pset_WallCommon.FireRating" --color red
|
|
190
|
-
ifc-lite analyze model.ifc --viewer 3456 --type IfcSlab --where "GrossArea>100" --color orange --isolate
|
|
191
|
-
ifc-lite analyze model.ifc --viewer 3456 --type IfcWall --heatmap "Qto_WallBaseQuantities.GrossSideArea"
|
|
192
|
-
ifc-lite analyze model.ifc --viewer 3456 --rules rules.json --json
|
|
193
|
-
ifc-lite lod model.ifc --level 0 --out model.lod0.json
|
|
194
|
-
ifc-lite lod model.ifc --level 1 --out model.glb --meta model.lod1.json
|
|
195
|
-
ifc-lite mcp model.ifc
|
|
196
|
-
ifc-lite mcp model.ifc --read-only
|
|
197
|
-
ifc-lite mcp arch.ifc struct.ifc --federate
|
|
198
|
-
ifc-lite mcp model.ifc --transport http --port 8765 --token abc
|
|
199
|
-
ifc-lite ref create main
|
|
200
|
-
ifc-lite layer publish delta.ifcx --base main --intent "Set fire ratings" --scope "model.mutate:Pset_FireSafety*@IfcWall"
|
|
201
|
-
ifc-lite layer merge blake3:abc123 --into main --preview
|
|
202
|
-
ifc-lite layer log main
|
|
203
|
-
ifc-lite layer bake main -o flat.ifcx
|
|
204
|
-
ifc-lite gym --model model.ifc --checks schema,clash
|
|
205
|
-
ifc-lite gym --model model.ifc --checks schema,clash,ids --ids rules.ids
|
|
206
|
-
ifc-lite gym --seed 42 --checks schema,clash
|
|
207
|
-
|
|
208
|
-
Pipe-friendly:
|
|
209
|
-
ifc-lite query model.ifc --type IfcWall --json | jq '.[].name'
|
|
210
|
-
ifc-lite export model.ifc --format csv --type IfcSlab > slabs.csv
|
|
211
|
-
echo '{"Start":[0,0,0],"End":[10,0,0],"Height":3}' | ifc-lite create wall --from-json --out w.ifc
|
|
212
|
-
|
|
213
|
-
Create element types:
|
|
214
|
-
wall, slab, column, beam, stair, roof, gable-roof, door, window,
|
|
215
|
-
wall-door, wall-window, ramp, railing, plate, member, footing, pile,
|
|
216
|
-
space, curtain-wall, furnishing, proxy, circular-column,
|
|
217
|
-
hollow-circular-column, i-shape-beam, l-shape-member, t-shape-member,
|
|
218
|
-
u-shape-member, rectangle-hollow-beam
|
|
219
|
-
|
|
220
|
-
gym protocol (newline-delimited JSON, one command per stdin line):
|
|
221
|
-
On start: {"type":"reset","observation":{entityCounts,storeyCount,schema,bounds},"channels":{...}}
|
|
222
|
-
-> {"type":"step","ops":[{"op":"setProperty"|"setAttribute"|"deleteProperty", ...}]}
|
|
223
|
-
<- {"type":"reward","channels":{schema:{score,...},clash:{score,...},ids:{score,...}},"done":false}
|
|
224
|
-
-> {"type":"reset"} reloads the pristine model, replies like the initial reset
|
|
225
|
-
-> {"type":"reset","seed":8} episode factory: swaps to a generated World Gym benchmark
|
|
226
|
-
model (optional "family"/"corrupt"/"corruptRate" fields);
|
|
227
|
-
needs the repo checkout (tools/world-gym). Also on start via
|
|
228
|
-
--seed <n> [--family ...] [--corrupt|--no-corrupt|--corrupt-rate p].
|
|
229
|
-
Generated-episode resets add "episode":{seed,family,corrupted}.
|
|
230
|
-
-> {"type":"close"} exits 0
|
|
231
|
-
Malformed input replies {"type":"error","message":"..."} instead of crashing.
|
|
232
|
-
v0 ops: setProperty/setAttribute/deleteProperty only (mirrors bim.mutate's method
|
|
233
|
-
names). Geometry-creating ops are out of scope for v0.
|
|
234
|
-
|
|
235
|
-
Learn more: https://ifclite.com
|
|
236
|
-
`;
|
|
56
|
+
const VERSION = readPackageVersion(join(dirname(fileURLToPath(import.meta.url)), '..', 'package.json'));
|
|
237
57
|
/** Command being executed, captured for the top-level error handler. */
|
|
58
|
+
/**
|
|
59
|
+
* Commands that handle `--help` themselves, with more detail than the global
|
|
60
|
+
* `Commands:` block carries. Their handlers already tested for it; before
|
|
61
|
+
* #5527 that branch was simply unreachable.
|
|
62
|
+
*/
|
|
63
|
+
const HELP_DELEGATING_COMMANDS = new Set(['layer', 'ref', 'ext']);
|
|
238
64
|
let activeCommand = '';
|
|
239
65
|
/** True when --debug was passed (stack traces on error). */
|
|
240
66
|
let debugFlag = false;
|
|
@@ -245,10 +71,25 @@ async function main() {
|
|
|
245
71
|
logger.configure({ level: verbosity.level });
|
|
246
72
|
debugFlag = verbosity.debug;
|
|
247
73
|
const args = verbosity.rest;
|
|
248
|
-
|
|
249
|
-
|
|
74
|
+
const wantsHelp = args.includes('--help') || args.includes('-h');
|
|
75
|
+
if (args.length === 0) {
|
|
76
|
+
process.stdout.write(buildHelp(VERSION) + '\n');
|
|
250
77
|
return;
|
|
251
78
|
}
|
|
79
|
+
if (wantsHelp) {
|
|
80
|
+
// `--help` used to be answered globally BEFORE dispatch, with the command
|
|
81
|
+
// still sitting in `args`, so all 37 subcommands printed the same page and
|
|
82
|
+
// the real help written in `layer`/`ref`/`ext` was unreachable (#5527).
|
|
83
|
+
const requested = args[0];
|
|
84
|
+
if (HELP_DELEGATING_COMMANDS.has(requested)) {
|
|
85
|
+
// These three write richer help of their own; let them answer.
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
const commandHelp = buildCommandHelp(VERSION, requested);
|
|
89
|
+
process.stdout.write((commandHelp ?? buildHelp(VERSION)) + '\n');
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
252
93
|
if (args.includes('--version') || args.includes('-v')) {
|
|
253
94
|
process.stdout.write(`ifc-lite ${VERSION}\n`);
|
|
254
95
|
return;
|
|
@@ -256,6 +97,11 @@ async function main() {
|
|
|
256
97
|
const command = args[0];
|
|
257
98
|
activeCommand = command;
|
|
258
99
|
const commandArgs = args.slice(1);
|
|
100
|
+
if (commandArgs.includes('--out') && !COMMANDS_WITH_OUT.has(command)) {
|
|
101
|
+
fatal(`\`${command}\` does not write to a file: it has no --out. ` +
|
|
102
|
+
`Redirect its output instead, e.g. \`ifc-lite ${command} ... > out.json\`. ` +
|
|
103
|
+
`Commands that do take --out: ${[...COMMANDS_WITH_OUT].sort().join(', ')}.`);
|
|
104
|
+
}
|
|
259
105
|
switch (command) {
|
|
260
106
|
case 'info':
|
|
261
107
|
await infoCommand(commandArgs);
|
|
@@ -362,6 +208,12 @@ async function main() {
|
|
|
362
208
|
case 'delivery':
|
|
363
209
|
await deliveryCommand(commandArgs);
|
|
364
210
|
break;
|
|
211
|
+
case 'check':
|
|
212
|
+
await checkCommand(commandArgs);
|
|
213
|
+
break;
|
|
214
|
+
case 'flow':
|
|
215
|
+
await flowCommand(commandArgs);
|
|
216
|
+
break;
|
|
365
217
|
default:
|
|
366
218
|
process.stderr.write(`Unknown command: ${command}\n`);
|
|
367
219
|
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":";AACA;;+DAE+D;AAE/D;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/loader.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type IfcDataStore } from '@ifc-lite/parser';
|
|
2
2
|
import { type BimContext } from '@ifc-lite/sdk';
|
|
3
|
+
import { HeadlessBackend } from './headless-backend.js';
|
|
3
4
|
/**
|
|
4
5
|
* Parse an IFC file from disk into an IfcDataStore.
|
|
5
6
|
* Suppresses parser console output for clean CLI experience.
|
|
@@ -13,12 +14,23 @@ export declare function loadIfcFile(filePath: string): Promise<IfcDataStore>;
|
|
|
13
14
|
* `readFile` of the same file. `label` is only used in error messages.
|
|
14
15
|
*/
|
|
15
16
|
export declare function loadIfcBytes(bytes: Uint8Array, label?: string): Promise<IfcDataStore>;
|
|
17
|
+
/** Bytes {@link parseIfcBytes} refused before parsing: empty, not STEP, truncated, or with no DATA section. */
|
|
18
|
+
export declare class IfcBytesRejectedError extends Error {
|
|
19
|
+
constructor(message: string);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* {@link loadIfcBytes} for a caller that must survive a bad file (a flow's
|
|
23
|
+
* `model.openFromSource` mid-run): the same checks, but a rejection throws
|
|
24
|
+
* {@link IfcBytesRejectedError} instead of exiting the process.
|
|
25
|
+
*/
|
|
26
|
+
export declare function parseIfcBytes(bytes: Uint8Array, label?: string): Promise<IfcDataStore>;
|
|
16
27
|
/**
|
|
17
28
|
* Create a BimContext backed by a headless backend from an IFC file.
|
|
18
29
|
*/
|
|
19
30
|
export declare function createHeadlessContext(filePath: string): Promise<{
|
|
20
31
|
bim: BimContext;
|
|
21
32
|
store: IfcDataStore;
|
|
33
|
+
backend: HeadlessBackend;
|
|
22
34
|
}>;
|
|
23
35
|
/**
|
|
24
36
|
* Create a BimContext that streams viewer commands to a running `ifc-lite view` server.
|
package/dist/loader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAWA,OAAO,EAA+B,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAoB,KAAK,UAAU,EAA4D,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAWA,OAAO,EAA+B,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAoB,KAAK,UAAU,EAA4D,MAAM,eAAe,CAAC;AAC5H,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD;;;GAGG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAGzE;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,UAAU,EACjB,KAAK,SAAU,GACd,OAAO,CAAC,YAAY,CAAC,CAQvB;AAED,+GAA+G;AAC/G,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,OAAO,EAAE,MAAM;CAI5B;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,UAAU,EACjB,KAAK,SAAU,GACd,OAAO,CAAC,YAAY,CAAC,CA2FvB;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,eAAe,CAAA;CAAE,CAAC,CAKzI;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,GAAG,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,CAAC,CAUnD"}
|
package/dist/loader.js
CHANGED
|
@@ -27,10 +27,32 @@ export async function loadIfcFile(filePath) {
|
|
|
27
27
|
* `readFile` of the same file. `label` is only used in error messages.
|
|
28
28
|
*/
|
|
29
29
|
export async function loadIfcBytes(bytes, label = 'input') {
|
|
30
|
+
try {
|
|
31
|
+
return await parseIfcBytes(bytes, label);
|
|
32
|
+
}
|
|
33
|
+
catch (err) {
|
|
34
|
+
if (!(err instanceof IfcBytesRejectedError))
|
|
35
|
+
throw err;
|
|
36
|
+
process.stderr.write(`Error: ${err.message}\n`);
|
|
37
|
+
process.exit(1);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/** Bytes {@link parseIfcBytes} refused before parsing: empty, not STEP, truncated, or with no DATA section. */
|
|
41
|
+
export class IfcBytesRejectedError extends Error {
|
|
42
|
+
constructor(message) {
|
|
43
|
+
super(message);
|
|
44
|
+
this.name = 'IfcBytesRejectedError';
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* {@link loadIfcBytes} for a caller that must survive a bad file (a flow's
|
|
49
|
+
* `model.openFromSource` mid-run): the same checks, but a rejection throws
|
|
50
|
+
* {@link IfcBytesRejectedError} instead of exiting the process.
|
|
51
|
+
*/
|
|
52
|
+
export async function parseIfcBytes(bytes, label = 'input') {
|
|
30
53
|
// Validate the file is a STEP/IFC file
|
|
31
54
|
if (bytes.byteLength === 0) {
|
|
32
|
-
|
|
33
|
-
process.exit(1);
|
|
55
|
+
throw new IfcBytesRejectedError(`${label} is empty (0 bytes)`);
|
|
34
56
|
}
|
|
35
57
|
// Transparent .ifcZIP unwrap (issue #1494) — cheap magic-byte no-op for an
|
|
36
58
|
// ordinary .ifc file. `unwrapIfcZipView` returns an ArrayBuffer over the
|
|
@@ -40,15 +62,40 @@ export async function loadIfcBytes(bytes, label = 'input') {
|
|
|
40
62
|
bytes = new Uint8Array(await unwrapIfcZipView(bytes));
|
|
41
63
|
}
|
|
42
64
|
catch (err) {
|
|
43
|
-
|
|
44
|
-
process.exit(1);
|
|
65
|
+
throw new IfcBytesRejectedError(`${label}: ${err.message}`);
|
|
45
66
|
}
|
|
46
67
|
// Check for STEP file signature ("ISO-10303-21") in the first 256 bytes.
|
|
47
68
|
// TextDecoder (not Buffer.toString) so a plain Uint8Array view works too.
|
|
48
69
|
const headerSnippet = new TextDecoder('latin1').decode(bytes.subarray(0, Math.min(bytes.byteLength, 256)));
|
|
49
70
|
if (!headerSnippet.includes('ISO-10303-21')) {
|
|
50
|
-
|
|
51
|
-
|
|
71
|
+
throw new IfcBytesRejectedError(`${label} is not a valid IFC/STEP file`);
|
|
72
|
+
}
|
|
73
|
+
// A STEP file ends with `END-ISO-10303-21;`. Its absence means the bytes are
|
|
74
|
+
// truncated -- a half-finished download, a killed export, a partial upload --
|
|
75
|
+
// and a truncated file does not fail to parse: it parses to a PREFIX. The
|
|
76
|
+
// scan stops wherever the bytes stop and reports whatever it got, so
|
|
77
|
+
// `ifc-lite info` answered "Entities: 59" and exited 0 for the first 4 KB of a
|
|
78
|
+
// real model, and "Schema: IFC4" for a 22-byte stub with no FILE_SCHEMA at
|
|
79
|
+
// all (#5532). A confidently wrong answer is worse than an error, because
|
|
80
|
+
// nothing downstream can tell it apart from a small model.
|
|
81
|
+
//
|
|
82
|
+
// Only the tail is decoded: these files reach hundreds of MB.
|
|
83
|
+
const tailStart = Math.max(0, bytes.byteLength - 256);
|
|
84
|
+
const tailSnippet = new TextDecoder('latin1').decode(bytes.subarray(tailStart));
|
|
85
|
+
if (!tailSnippet.includes('END-ISO-10303-21;')) {
|
|
86
|
+
throw new IfcBytesRejectedError(`${label} is truncated: it starts like a STEP file but has no ` +
|
|
87
|
+
`END-ISO-10303-21; terminator, so any entity count or schema read from it ` +
|
|
88
|
+
`would describe only the part that arrived.`);
|
|
89
|
+
}
|
|
90
|
+
// A file with a header and no DATA section carries no entities at all. It is
|
|
91
|
+
// well-formed STEP, so the terminator check above passes; it is still not a
|
|
92
|
+
// model, and reporting a schema for it asserts something the file never said.
|
|
93
|
+
// Bounded, like the header scan: `DATA;` follows the header, and these files
|
|
94
|
+
// reach hundreds of MB -- decoding one whole would also risk V8's max string
|
|
95
|
+
// length. 64 KB is far more header than any exporter writes.
|
|
96
|
+
const headText = new TextDecoder('latin1').decode(bytes.subarray(0, Math.min(bytes.byteLength, 64 * 1024)));
|
|
97
|
+
if (!/^\s*DATA\s*;/m.test(headText)) {
|
|
98
|
+
throw new IfcBytesRejectedError(`${label} has no DATA section, so it contains no IFC entities.`);
|
|
52
99
|
}
|
|
53
100
|
const parser = new IfcParser();
|
|
54
101
|
// Capture the parser's internal console.log/warn during parsing and route
|
|
@@ -88,7 +135,7 @@ export async function createHeadlessContext(filePath) {
|
|
|
88
135
|
const store = await loadIfcFile(filePath);
|
|
89
136
|
const backend = new HeadlessBackend(store, basename(filePath));
|
|
90
137
|
const bim = createBimContext({ backend });
|
|
91
|
-
return { bim, store };
|
|
138
|
+
return { bim, store, backend };
|
|
92
139
|
}
|
|
93
140
|
/**
|
|
94
141
|
* Create a BimContext that streams viewer commands to a running `ifc-lite view` server.
|
package/dist/loader.js.map
CHANGED
|
@@ -1 +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,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAqB,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAA6E,MAAM,eAAe,CAAC;AAC5H,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,4BAA4B,EAAE,gCAAgC,EAAE,MAAM,uBAAuB,CAAC;AAEvG;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,QAAgB;IAChD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACxC,OAAO,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACxC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,KAAiB,EACjB,KAAK,GAAG,OAAO;IAEf,
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Commands that write their result to a path given by `--out`.
|
|
3
|
+
*
|
|
4
|
+
* `--out` was listed under the global `Options:` block, and is not global: the
|
|
5
|
+
* 21 commands not named here parse no such flag, so `info --json --out f.json`
|
|
6
|
+
* wrote to stdout, created nothing and exited 0 (#5528). It is documented per
|
|
7
|
+
* command instead -- each of these already shows `--out F` on its own line in
|
|
8
|
+
* `Commands:` -- and passing it to any other command is refused rather than
|
|
9
|
+
* swallowed.
|
|
10
|
+
*/
|
|
11
|
+
export declare const COMMANDS_WITH_OUT: Set<string>;
|
|
12
|
+
//# sourceMappingURL=out-flag-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"out-flag-commands.d.ts","sourceRoot":"","sources":["../src/out-flag-commands.ts"],"names":[],"mappings":"AAIA;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,aAI5B,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
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
|
+
* Commands that write their result to a path given by `--out`.
|
|
6
|
+
*
|
|
7
|
+
* `--out` was listed under the global `Options:` block, and is not global: the
|
|
8
|
+
* 21 commands not named here parse no such flag, so `info --json --out f.json`
|
|
9
|
+
* wrote to stdout, created nothing and exited 0 (#5528). It is documented per
|
|
10
|
+
* command instead -- each of these already shows `--out F` on its own line in
|
|
11
|
+
* `Commands:` -- and passing it to any other command is refused rather than
|
|
12
|
+
* swallowed.
|
|
13
|
+
*/
|
|
14
|
+
export const COMMANDS_WITH_OUT = new Set([
|
|
15
|
+
'export', 'diagnose-geometry', 'extract-entities', 'anonymize', 'bcf', 'create',
|
|
16
|
+
'merge', 'convert', 'rekey', 'mutate', 'generate-spaces', 'analyze', 'lod',
|
|
17
|
+
'simplify', 'delivery', 'flow',
|
|
18
|
+
]);
|
|
19
|
+
//# sourceMappingURL=out-flag-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"out-flag-commands.js","sourceRoot":"","sources":["../src/out-flag-commands.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IACvC,QAAQ,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ;IAC/E,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAE,KAAK;IAC1E,UAAU,EAAE,UAAU,EAAE,MAAM;CAC/B,CAAC,CAAC"}
|
|
@@ -6,7 +6,7 @@ import { effectiveEntityType } from './query-overlay.js';
|
|
|
6
6
|
function effective(store, view) {
|
|
7
7
|
return resolveEffectiveRelationshipOverlay(store, {
|
|
8
8
|
createdEntities: () => view.getNewEntities(),
|
|
9
|
-
mutatedEntityIds: () => view.
|
|
9
|
+
mutatedEntityIds: () => view.getEffectiveChanges().map(change => change.entityId),
|
|
10
10
|
namedAttributes: id => view.getAttributeMutationsForEntity(id).map(({ name, value }) => [name, value]),
|
|
11
11
|
positionalAttributes: id => view.getPositionalMutationsForEntity(id) ?? [],
|
|
12
12
|
entityType: id => view.getEntityTypeMutation(id)?.newType,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-overlay-relations.js","sourceRoot":"","sources":["../src/query-overlay-relations.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAG/D,OAAO,EACL,0BAA0B,EAC1B,mCAAmC,GAEpC,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,SAAS,SAAS,CAAC,KAAmB,EAAE,IAAyB;IAC/D,OAAO,mCAAmC,CAAC,KAAK,EAAE;QAChD,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE;QAC5C,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"query-overlay-relations.js","sourceRoot":"","sources":["../src/query-overlay-relations.ts"],"names":[],"mappings":"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"}
|
package/dist/query-overlay.d.ts
CHANGED
|
@@ -22,8 +22,6 @@ export declare function applyParsedEntityOverrides(view: MutablePropertyView | n
|
|
|
22
22
|
* `undefined` means "not in the overlay, fall through to the parsed store".
|
|
23
23
|
*/
|
|
24
24
|
export declare function overlayEntityData(view: MutablePropertyView | null, ref: EntityRef, schemaVersion: string): EntityData | null | undefined;
|
|
25
|
-
/** This session's overlay-only entities matching an `entities()` query's type criteria. */
|
|
26
|
-
export declare function foldNewEntities(view: MutablePropertyView, types: string[] | undefined, expandTypes: (types: string[]) => string[], isProductType: (upperType: string) => boolean, modelId: string, schemaVersion: string): EntityData[];
|
|
27
25
|
/**
|
|
28
26
|
* `getProperties`/`getQuantities`'s overlay half. Unlike {@link overlayEntityData},
|
|
29
27
|
* this has no per-entity "not in the overlay" case to fall through on:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-overlay.d.ts","sourceRoot":"","sources":["../src/query-overlay.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC7F,OAAO,KAAK,EAAE,mBAAmB,EAAa,MAAM,qBAAqB,CAAC;AA2C1E,kFAAkF;AAClF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG/F;AAED,iFAAiF;AACjF,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,mBAAmB,GAAG,IAAI,EAChC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,UAAU,GACf,UAAU,CAwBZ;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,mBAAmB,GAAG,IAAI,EAChC,GAAG,EAAE,SAAS,EACd,aAAa,EAAE,MAAM,GACpB,UAAU,GAAG,IAAI,GAAG,SAAS,CAM/B;AAED
|
|
1
|
+
{"version":3,"file":"query-overlay.d.ts","sourceRoot":"","sources":["../src/query-overlay.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC7F,OAAO,KAAK,EAAE,mBAAmB,EAAa,MAAM,qBAAqB,CAAC;AA2C1E,kFAAkF;AAClF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG/F;AAED,iFAAiF;AACjF,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,mBAAmB,GAAG,IAAI,EAChC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,UAAU,GACf,UAAU,CAwBZ;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,mBAAmB,GAAG,IAAI,EAChC,GAAG,EAAE,SAAS,EACd,aAAa,EAAE,MAAM,GACpB,UAAU,GAAG,IAAI,GAAG,SAAS,CAM/B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI,EAAE,GAAG,EAAE,SAAS,GAAG,eAAe,EAAE,GAAG,SAAS,CAYjH;AAED,sEAAsE;AACtE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI,EAAE,GAAG,EAAE,SAAS,GAAG,eAAe,EAAE,GAAG,SAAS,CAOjH"}
|
package/dist/query-overlay.js
CHANGED
|
@@ -94,21 +94,6 @@ export function overlayEntityData(view, ref, schemaVersion) {
|
|
|
94
94
|
return undefined;
|
|
95
95
|
return createdEntityData(effectiveCreatedEntity(view, created, schemaVersion), ref.modelId);
|
|
96
96
|
}
|
|
97
|
-
/** This session's overlay-only entities matching an `entities()` query's type criteria. */
|
|
98
|
-
export function foldNewEntities(view, types, expandTypes, isProductType, modelId, schemaVersion) {
|
|
99
|
-
const wantedTypes = types && types.length > 0 ? new Set(expandTypes(types)) : null;
|
|
100
|
-
const out = [];
|
|
101
|
-
for (const created of view.getNewEntities()) {
|
|
102
|
-
if (view.isDeleted(created.expressId))
|
|
103
|
-
continue;
|
|
104
|
-
const effective = effectiveCreatedEntity(view, created, schemaVersion);
|
|
105
|
-
const upperType = effective.type.toUpperCase();
|
|
106
|
-
const matches = wantedTypes ? wantedTypes.has(upperType) : isProductType(upperType);
|
|
107
|
-
if (matches)
|
|
108
|
-
out.push(createdEntityData(effective, modelId));
|
|
109
|
-
}
|
|
110
|
-
return out;
|
|
111
|
-
}
|
|
112
97
|
/**
|
|
113
98
|
* `getProperties`/`getQuantities`'s overlay half. Unlike {@link overlayEntityData},
|
|
114
99
|
* this has no per-entity "not in the overlay" case to fall through on:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-overlay.js","sourceRoot":"","sources":["../src/query-overlay.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"query-overlay.js","sourceRoot":"","sources":["../src/query-overlay.ts"],"names":[],"mappings":"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"}
|