@faicad/faijs 0.22.2 → 0.29.5
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 +202 -28
- package/dist/api/api-namespace.d.ts +5 -5
- package/dist/api/api-namespace.d.ts.map +1 -1
- package/dist/api/api-namespace.js +4 -4
- package/dist/api/api-namespace.js.map +1 -1
- package/dist/api/appearance.d.ts +138 -0
- package/dist/api/appearance.d.ts.map +1 -0
- package/dist/api/appearance.js +230 -0
- package/dist/api/appearance.js.map +1 -0
- package/dist/api/assert.d.ts +2 -2
- package/dist/api/assert.js +8 -8
- package/dist/api/assert.js.map +1 -1
- package/dist/api/asset.d.ts +1 -1
- package/dist/api/asset.js +2 -2
- package/dist/api/asset.js.map +1 -1
- package/dist/api/boolean.d.ts +1 -1
- package/dist/api/boolean.d.ts.map +1 -1
- package/dist/api/boolean.js +128 -16
- package/dist/api/boolean.js.map +1 -1
- package/dist/api/cadquery-selectors/borrow-bridge.d.ts +14 -0
- package/dist/api/cadquery-selectors/borrow-bridge.d.ts.map +1 -0
- package/dist/api/cadquery-selectors/borrow-bridge.js +52 -0
- package/dist/api/cadquery-selectors/borrow-bridge.js.map +1 -0
- package/dist/api/cadquery-selectors/edge.d.ts +40 -0
- package/dist/api/cadquery-selectors/edge.d.ts.map +1 -0
- package/dist/api/cadquery-selectors/edge.js +70 -0
- package/dist/api/cadquery-selectors/edge.js.map +1 -0
- package/dist/api/cadquery-selectors/entity.d.ts +121 -0
- package/dist/api/cadquery-selectors/entity.d.ts.map +1 -0
- package/dist/api/cadquery-selectors/entity.js +167 -0
- package/dist/api/cadquery-selectors/entity.js.map +1 -0
- package/dist/api/cadquery-selectors/face.d.ts +33 -0
- package/dist/api/cadquery-selectors/face.d.ts.map +1 -0
- package/dist/api/cadquery-selectors/face.js +353 -0
- package/dist/api/cadquery-selectors/face.js.map +1 -0
- package/dist/api/cadquery-selectors/grammar.d.ts +50 -0
- package/dist/api/cadquery-selectors/grammar.d.ts.map +1 -0
- package/dist/api/cadquery-selectors/grammar.js +345 -0
- package/dist/api/cadquery-selectors/grammar.js.map +1 -0
- package/dist/api/cadquery-selectors/index.d.ts +18 -0
- package/dist/api/cadquery-selectors/index.d.ts.map +1 -0
- package/dist/api/cadquery-selectors/index.js +17 -0
- package/dist/api/cadquery-selectors/index.js.map +1 -0
- package/dist/api/cadquery-selectors/predicates.d.ts +76 -0
- package/dist/api/cadquery-selectors/predicates.d.ts.map +1 -0
- package/dist/api/cadquery-selectors/predicates.js +85 -0
- package/dist/api/cadquery-selectors/predicates.js.map +1 -0
- package/dist/api/cadquery-selectors/resolve.d.ts +41 -0
- package/dist/api/cadquery-selectors/resolve.d.ts.map +1 -0
- package/dist/api/cadquery-selectors/resolve.js +243 -0
- package/dist/api/cadquery-selectors/resolve.js.map +1 -0
- package/dist/api/cadquery-selectors/types.d.ts +96 -0
- package/dist/api/cadquery-selectors/types.d.ts.map +1 -0
- package/dist/api/cadquery-selectors/types.js +11 -0
- package/dist/api/cadquery-selectors/types.js.map +1 -0
- package/dist/api/chamfer.d.ts +13 -5
- package/dist/api/chamfer.d.ts.map +1 -1
- package/dist/api/chamfer.js +63 -7
- package/dist/api/chamfer.js.map +1 -1
- package/dist/api/compound-geom.d.ts +1 -1
- package/dist/api/compound-geom.js +1 -1
- package/dist/api/compound-geom.js.map +1 -1
- package/dist/api/draft.d.ts +1 -1
- package/dist/api/draft.js +1 -1
- package/dist/api/draft.js.map +1 -1
- package/dist/api/edge-ref.d.ts +1 -1
- package/dist/api/edge-ref.d.ts.map +1 -1
- package/dist/api/edge-ref.js +11 -3
- package/dist/api/edge-ref.js.map +1 -1
- package/dist/api/engrave.d.ts +1 -1
- package/dist/api/engrave.js +7 -7
- package/dist/api/engrave.js.map +1 -1
- package/dist/api/extrude.d.ts +6 -1
- package/dist/api/extrude.d.ts.map +1 -1
- package/dist/api/extrude.js +59 -5
- package/dist/api/extrude.js.map +1 -1
- package/dist/api/face-ref.d.ts +1 -1
- package/dist/api/face-ref.js +1 -1
- package/dist/api/face-ref.js.map +1 -1
- package/dist/api/feature-repair.d.ts +1 -1
- package/dist/api/feature-repair.js +1 -1
- package/dist/api/feature-repair.js.map +1 -1
- package/dist/api/fillet-variable.d.ts +1 -1
- package/dist/api/fillet-variable.js +1 -1
- package/dist/api/fillet-variable.js.map +1 -1
- package/dist/api/fillet.d.ts +28 -8
- package/dist/api/fillet.d.ts.map +1 -1
- package/dist/api/fillet.js +64 -9
- package/dist/api/fillet.js.map +1 -1
- package/dist/api/geom.d.ts +1 -1
- package/dist/api/geom.js +1 -1
- package/dist/api/geom.js.map +1 -1
- package/dist/api/helix.d.ts +1 -1
- package/dist/api/helix.js +1 -1
- package/dist/api/helix.js.map +1 -1
- package/dist/api/import-brep.d.ts +20 -2
- package/dist/api/import-brep.d.ts.map +1 -1
- package/dist/api/import-brep.js +28 -3
- package/dist/api/import-brep.js.map +1 -1
- package/dist/api/import-step.d.ts +17 -2
- package/dist/api/import-step.d.ts.map +1 -1
- package/dist/api/import-step.js +51 -3
- package/dist/api/import-step.js.map +1 -1
- package/dist/api/index.d.ts +6 -1
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +7 -2
- package/dist/api/index.js.map +1 -1
- package/dist/api/internal/compat-op.js +1 -1
- package/dist/api/internal/compat-op.js.map +1 -1
- package/dist/api/internal/mesh-solid-op.d.ts +236 -0
- package/dist/api/internal/mesh-solid-op.d.ts.map +1 -0
- package/dist/api/internal/mesh-solid-op.js +352 -0
- package/dist/api/internal/mesh-solid-op.js.map +1 -0
- package/dist/api/internal/svg-asset-resolver.d.ts +1 -1
- package/dist/api/internal/svg-asset-resolver.js +1 -1
- package/dist/api/internal/svg-asset-resolver.js.map +1 -1
- package/dist/api/knurl.d.ts +1 -1
- package/dist/api/knurl.js +2 -2
- package/dist/api/knurl.js.map +1 -1
- package/dist/api/loft.d.ts +1 -1
- package/dist/api/loft.js +1 -1
- package/dist/api/loft.js.map +1 -1
- package/dist/api/measurement/index.d.ts +9 -5
- package/dist/api/measurement/index.d.ts.map +1 -1
- package/dist/api/measurement/index.js +47 -20
- package/dist/api/measurement/index.js.map +1 -1
- package/dist/api/meta.d.ts +93 -0
- package/dist/api/meta.d.ts.map +1 -0
- package/dist/api/meta.js +99 -0
- package/dist/api/meta.js.map +1 -0
- package/dist/api/pattern.d.ts +5 -3
- package/dist/api/pattern.d.ts.map +1 -1
- package/dist/api/pattern.js +32 -4
- package/dist/api/pattern.js.map +1 -1
- package/dist/api/place.d.ts +1 -1
- package/dist/api/place.js +1 -1
- package/dist/api/place.js.map +1 -1
- package/dist/api/primitives.d.ts +1 -1
- package/dist/api/primitives.d.ts.map +1 -1
- package/dist/api/primitives.js +119 -4
- package/dist/api/primitives.js.map +1 -1
- package/dist/api/profile.d.ts +39 -12
- package/dist/api/profile.d.ts.map +1 -1
- package/dist/api/profile.js +4 -4
- package/dist/api/profile.js.map +1 -1
- package/dist/api/reconcile.d.ts +1 -1
- package/dist/api/reconcile.js +1 -1
- package/dist/api/reconcile.js.map +1 -1
- package/dist/api/replicate.d.ts.map +1 -1
- package/dist/api/replicate.js +122 -1
- package/dist/api/replicate.js.map +1 -1
- package/dist/api/screw.d.ts +1 -1
- package/dist/api/screw.js +3 -3
- package/dist/api/screw.js.map +1 -1
- package/dist/api/sdf.d.ts +1 -1
- package/dist/api/sdf.js +2 -2
- package/dist/api/sdf.js.map +1 -1
- package/dist/api/section-by-plane.d.ts +1 -1
- package/dist/api/section-by-plane.d.ts.map +1 -1
- package/dist/api/section-by-plane.js +2 -1
- package/dist/api/section-by-plane.js.map +1 -1
- package/dist/api/shell.d.ts +11 -4
- package/dist/api/shell.d.ts.map +1 -1
- package/dist/api/shell.js +53 -7
- package/dist/api/shell.js.map +1 -1
- package/dist/api/sketch-on-face.d.ts +41 -0
- package/dist/api/sketch-on-face.d.ts.map +1 -1
- package/dist/api/sketch-on-face.js +100 -1
- package/dist/api/sketch-on-face.js.map +1 -1
- package/dist/api/sketch-on-plane.d.ts +7 -5
- package/dist/api/sketch-on-plane.d.ts.map +1 -1
- package/dist/api/sketch-on-plane.js +6 -7
- package/dist/api/sketch-on-plane.js.map +1 -1
- package/dist/api/split-by-plane.d.ts +1 -1
- package/dist/api/split-by-plane.d.ts.map +1 -1
- package/dist/api/split-by-plane.js +2 -1
- package/dist/api/split-by-plane.js.map +1 -1
- package/dist/api/split.d.ts +1 -1
- package/dist/api/split.js +2 -2
- package/dist/api/split.js.map +1 -1
- package/dist/api/sweep.d.ts +1 -1
- package/dist/api/sweep.js +1 -1
- package/dist/api/sweep.js.map +1 -1
- package/dist/api/thicken.d.ts +1 -1
- package/dist/api/thicken.js +1 -1
- package/dist/api/thicken.js.map +1 -1
- package/dist/api/topo-resolve.d.ts +74 -1
- package/dist/api/topo-resolve.d.ts.map +1 -1
- package/dist/api/topo-resolve.js +180 -2
- package/dist/api/topo-resolve.js.map +1 -1
- package/dist/api/transform.d.ts +5 -1
- package/dist/api/transform.d.ts.map +1 -1
- package/dist/api/transform.js +62 -11
- package/dist/api/transform.js.map +1 -1
- package/dist/api/wire.d.ts +1 -1
- package/dist/api/wire.js +1 -1
- package/dist/api/wire.js.map +1 -1
- package/dist/brep/brep-ops.d.ts +9 -7
- package/dist/brep/brep-ops.d.ts.map +1 -1
- package/dist/brep/brep-ops.js +50 -26
- package/dist/brep/brep-ops.js.map +1 -1
- package/dist/brep/brep-topology.d.ts +5 -4
- package/dist/brep/brep-topology.d.ts.map +1 -1
- package/dist/brep/brep-topology.js +6 -5
- package/dist/brep/brep-topology.js.map +1 -1
- package/dist/brep/effective-deflection.d.ts +35 -0
- package/dist/brep/effective-deflection.d.ts.map +1 -0
- package/dist/brep/effective-deflection.js +49 -0
- package/dist/brep/effective-deflection.js.map +1 -0
- package/dist/brep/engine/adapters/brep-mock.d.ts.map +1 -1
- package/dist/brep/engine/adapters/brep-mock.js +27 -0
- package/dist/brep/engine/adapters/brep-mock.js.map +1 -1
- package/dist/brep/engine/adapters/brepkit.d.ts +18 -0
- package/dist/brep/engine/adapters/brepkit.d.ts.map +1 -1
- package/dist/brep/engine/adapters/brepkit.js +46 -1
- package/dist/brep/engine/adapters/brepkit.js.map +1 -1
- package/dist/brep/engine/adapters/occt.d.ts +1 -1
- package/dist/brep/engine/adapters/occt.d.ts.map +1 -1
- package/dist/brep/engine/adapters/occt.js +4 -2
- package/dist/brep/engine/adapters/occt.js.map +1 -1
- package/dist/brep/engine/primitives.d.ts +29 -7
- package/dist/brep/engine/primitives.d.ts.map +1 -1
- package/dist/brep/engine/primitives.js.map +1 -1
- package/dist/brep/engine/registry.d.ts +24 -1
- package/dist/brep/engine/registry.d.ts.map +1 -1
- package/dist/brep/engine/registry.js +24 -0
- package/dist/brep/engine/registry.js.map +1 -1
- package/dist/brep/engine/types.d.ts +54 -3
- package/dist/brep/engine/types.d.ts.map +1 -1
- package/dist/brep/engine/types.js +10 -0
- package/dist/brep/engine/types.js.map +1 -1
- package/dist/brep/export/export-model.d.ts +40 -0
- package/dist/brep/export/export-model.d.ts.map +1 -1
- package/dist/brep/export/export-model.js +274 -30
- package/dist/brep/export/export-model.js.map +1 -1
- package/dist/brep/export/step-meta-header.d.ts +102 -0
- package/dist/brep/export/step-meta-header.d.ts.map +1 -0
- package/dist/brep/export/step-meta-header.js +225 -0
- package/dist/brep/export/step-meta-header.js.map +1 -0
- package/dist/brep/export/step.d.ts +5 -1
- package/dist/brep/export/step.d.ts.map +1 -1
- package/dist/brep/export/step.js +11 -2
- package/dist/brep/export/step.js.map +1 -1
- package/dist/brep/face-evolution.d.ts +1 -1
- package/dist/brep/face-evolution.d.ts.map +1 -1
- package/dist/brep/face-evolution.js +20 -1
- package/dist/brep/face-evolution.js.map +1 -1
- package/dist/brep/handle-bridge.d.ts +1 -1
- package/dist/brep/handle-bridge.js +1 -1
- package/dist/brep/handle-bridge.js.map +1 -1
- package/dist/brep/mesh-solid.d.ts +218 -0
- package/dist/brep/mesh-solid.d.ts.map +1 -0
- package/dist/brep/mesh-solid.js +229 -0
- package/dist/brep/mesh-solid.js.map +1 -0
- package/dist/brep/text/fontRegistry.d.ts +32 -1
- package/dist/brep/text/fontRegistry.d.ts.map +1 -1
- package/dist/brep/text/fontRegistry.js +51 -1
- package/dist/brep/text/fontRegistry.js.map +1 -1
- package/dist/brep/text/text-to-solid.d.ts.map +1 -1
- package/dist/brep/text/text-to-solid.js +8 -3
- package/dist/brep/text/text-to-solid.js.map +1 -1
- package/dist/brepkit-kernel/brepkitKernel.d.ts +18 -2
- package/dist/brepkit-kernel/brepkitKernel.d.ts.map +1 -1
- package/dist/brepkit-kernel/brepkitKernel.js +449 -123
- package/dist/brepkit-kernel/brepkitKernel.js.map +1 -1
- package/dist/brepkit-kernel/brepkitWasm.d.ts +8 -0
- package/dist/brepkit-kernel/brepkitWasm.d.ts.map +1 -1
- package/dist/brepkit-kernel/brepkitWasm.js +10 -0
- package/dist/brepkit-kernel/brepkitWasm.js.map +1 -1
- package/dist/browser-host/browser-font-provider.d.ts +12 -0
- package/dist/browser-host/browser-font-provider.d.ts.map +1 -1
- package/dist/browser-host/browser-font-provider.js +25 -0
- package/dist/browser-host/browser-font-provider.js.map +1 -1
- package/dist/browser.d.ts +6 -3
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +10 -3
- package/dist/browser.js.map +1 -1
- package/dist/cad-runtime/backend-dispatch.d.ts +28 -3
- package/dist/cad-runtime/backend-dispatch.d.ts.map +1 -1
- package/dist/cad-runtime/backend-dispatch.js +119 -4
- package/dist/cad-runtime/backend-dispatch.js.map +1 -1
- package/dist/cad-runtime/browser-lib-loader.js.map +1 -1
- package/dist/cad-runtime/direct-executor.d.ts +15 -3
- package/dist/cad-runtime/direct-executor.d.ts.map +1 -1
- package/dist/cad-runtime/direct-executor.js +33 -1
- package/dist/cad-runtime/direct-executor.js.map +1 -1
- package/dist/cad-runtime/ports.d.ts +3 -3
- package/dist/cad-runtime/ports.d.ts.map +1 -1
- package/dist/cad-runtime/ports.js.map +1 -1
- package/dist/cad-runtime/preview-exec.d.ts +4 -4
- package/dist/cad-runtime/preview-exec.js +2 -2
- package/dist/cad-runtime/preview-exec.js.map +1 -1
- package/dist/cad-runtime/runtime.d.ts +42 -7
- package/dist/cad-runtime/runtime.d.ts.map +1 -1
- package/dist/cad-runtime/runtime.js +68 -5
- package/dist/cad-runtime/runtime.js.map +1 -1
- package/dist/define-op.d.ts +15 -1
- package/dist/define-op.d.ts.map +1 -1
- package/dist/define-op.js +73 -2
- package/dist/define-op.js.map +1 -1
- package/dist/env-agnostic.d.ts +2 -2
- package/dist/env-agnostic.d.ts.map +1 -1
- package/dist/env-agnostic.js +1 -1
- package/dist/env-agnostic.js.map +1 -1
- package/dist/geometry2d/adapt.d.ts +39 -4
- package/dist/geometry2d/adapt.d.ts.map +1 -1
- package/dist/geometry2d/adapt.js +14 -3
- package/dist/geometry2d/adapt.js.map +1 -1
- package/dist/geometry2d/blueprint.d.ts +2 -2
- package/dist/geometry2d/blueprint.js +2 -2
- package/dist/geometry2d/blueprint.js.map +1 -1
- package/dist/geometry2d/bridge/lift-on-plane.d.ts +18 -8
- package/dist/geometry2d/bridge/lift-on-plane.d.ts.map +1 -1
- package/dist/geometry2d/bridge/lift-on-plane.js +65 -12
- package/dist/geometry2d/bridge/lift-on-plane.js.map +1 -1
- package/dist/geometry2d/bridge/plane.d.ts +17 -0
- package/dist/geometry2d/bridge/plane.d.ts.map +1 -1
- package/dist/geometry2d/bridge/plane.js +22 -0
- package/dist/geometry2d/bridge/plane.js.map +1 -1
- package/dist/geometry2d/curve2d.d.ts +25 -0
- package/dist/geometry2d/curve2d.d.ts.map +1 -1
- package/dist/geometry2d/curve2d.js +41 -5
- package/dist/geometry2d/curve2d.js.map +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -3
- package/dist/index.js.map +1 -1
- package/dist/io/bytes-node.d.ts +11 -0
- package/dist/io/bytes-node.d.ts.map +1 -0
- package/dist/io/bytes-node.js +28 -0
- package/dist/io/bytes-node.js.map +1 -0
- package/dist/io/bytes.d.ts +33 -0
- package/dist/io/bytes.d.ts.map +1 -0
- package/dist/io/bytes.js +41 -0
- package/dist/io/bytes.js.map +1 -0
- package/dist/io/fai-zip/container-read.d.ts +102 -0
- package/dist/io/fai-zip/container-read.d.ts.map +1 -0
- package/dist/io/fai-zip/container-read.js +305 -0
- package/dist/io/fai-zip/container-read.js.map +1 -0
- package/dist/io/fai-zip/container-write.d.ts +70 -0
- package/dist/io/fai-zip/container-write.d.ts.map +1 -0
- package/dist/io/fai-zip/container-write.js +186 -0
- package/dist/io/fai-zip/container-write.js.map +1 -0
- package/dist/io/fai-zip/container.d.ts +107 -0
- package/dist/io/fai-zip/container.d.ts.map +1 -0
- package/dist/io/fai-zip/container.js +89 -0
- package/dist/io/fai-zip/container.js.map +1 -0
- package/dist/io/fai-zip/index.d.ts +18 -0
- package/dist/io/fai-zip/index.d.ts.map +1 -0
- package/dist/io/fai-zip/index.js +4 -0
- package/dist/io/fai-zip/index.js.map +1 -0
- package/dist/io/index.d.ts +10 -0
- package/dist/io/index.d.ts.map +1 -0
- package/dist/io/index.js +13 -0
- package/dist/io/index.js.map +1 -0
- package/dist/io/zip.d.ts +68 -0
- package/dist/io/zip.d.ts.map +1 -0
- package/dist/io/zip.js +147 -0
- package/dist/io/zip.js.map +1 -0
- package/dist/lang/code-to-args.d.ts +1 -1
- package/dist/lang/code-to-args.js +1 -1
- package/dist/lang/code-to-args.js.map +1 -1
- package/dist/lang/metadata-extractor.d.ts.map +1 -1
- package/dist/lang/metadata-extractor.js +2 -21
- package/dist/lang/metadata-extractor.js.map +1 -1
- package/dist/lang/statement-summary.d.ts +1 -1
- package/dist/lang/statement-summary.js +1 -1
- package/dist/lang/statement-summary.js.map +1 -1
- package/dist/lang/types.d.ts +6 -7
- package/dist/lang/types.d.ts.map +1 -1
- package/dist/lang/types.js +1 -1
- package/dist/lang/types.js.map +1 -1
- package/dist/mesh/index.d.ts +2 -1
- package/dist/mesh/index.d.ts.map +1 -1
- package/dist/mesh/index.js +2 -1
- package/dist/mesh/index.js.map +1 -1
- package/dist/mesh/io.d.ts +13 -0
- package/dist/mesh/io.d.ts.map +1 -1
- package/dist/mesh/io.js +38 -17
- package/dist/mesh/io.js.map +1 -1
- package/dist/mesh/primitives.d.ts.map +1 -1
- package/dist/mesh/primitives.js +41 -6
- package/dist/mesh/primitives.js.map +1 -1
- package/dist/mesh/reconcile.d.ts +1 -1
- package/dist/mesh/reconcile.js +1 -1
- package/dist/mesh/reconcile.js.map +1 -1
- package/dist/mesh/rigid-transform.d.ts +3 -3
- package/dist/mesh/rigid-transform.js +3 -3
- package/dist/mesh/rigid-transform.js.map +1 -1
- package/dist/mesh/stl-unit.d.ts +24 -0
- package/dist/mesh/stl-unit.d.ts.map +1 -0
- package/dist/mesh/stl-unit.js +17 -0
- package/dist/mesh/stl-unit.js.map +1 -0
- package/dist/mesh/threemf-bambu.d.ts +142 -0
- package/dist/mesh/threemf-bambu.d.ts.map +1 -0
- package/dist/mesh/threemf-bambu.js +334 -0
- package/dist/mesh/threemf-bambu.js.map +1 -0
- package/dist/mesh/threemf-loader.d.ts +65 -7
- package/dist/mesh/threemf-loader.d.ts.map +1 -1
- package/dist/mesh/threemf-loader.js +738 -99
- package/dist/mesh/threemf-loader.js.map +1 -1
- package/dist/mesh/threemf-view.d.ts +71 -0
- package/dist/mesh/threemf-view.d.ts.map +1 -0
- package/dist/mesh/threemf-view.js +100 -0
- package/dist/mesh/threemf-view.js.map +1 -0
- package/dist/mesh/types.d.ts +38 -0
- package/dist/mesh/types.d.ts.map +1 -1
- package/dist/mesh/types.js.map +1 -1
- package/dist/node-host/cli.d.ts +44 -6
- package/dist/node-host/cli.d.ts.map +1 -1
- package/dist/node-host/cli.js +76 -26
- package/dist/node-host/cli.js.map +1 -1
- package/dist/node-host/font-family-index.d.ts +93 -0
- package/dist/node-host/font-family-index.d.ts.map +1 -0
- package/dist/node-host/font-family-index.js +273 -0
- package/dist/node-host/font-family-index.js.map +1 -0
- package/dist/node-host/fs-asset-resolver.d.ts +8 -3
- package/dist/node-host/fs-asset-resolver.d.ts.map +1 -1
- package/dist/node-host/fs-asset-resolver.js +13 -5
- package/dist/node-host/fs-asset-resolver.js.map +1 -1
- package/dist/node-host/index.d.ts +8 -0
- package/dist/node-host/index.d.ts.map +1 -1
- package/dist/node-host/index.js +1 -0
- package/dist/node-host/index.js.map +1 -1
- package/dist/node-host/node-font-provider.d.ts +28 -0
- package/dist/node-host/node-font-provider.d.ts.map +1 -1
- package/dist/node-host/node-font-provider.js +49 -0
- package/dist/node-host/node-font-provider.js.map +1 -1
- package/dist/node.d.ts +1 -0
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +1 -0
- package/dist/node.js.map +1 -1
- package/dist/occt-kernel/highLevelApi.d.ts +4 -1
- package/dist/occt-kernel/highLevelApi.d.ts.map +1 -1
- package/dist/occt-kernel/highLevelApi.js +4 -2
- package/dist/occt-kernel/highLevelApi.js.map +1 -1
- package/dist/occt-kernel/occt-primitives.d.ts.map +1 -1
- package/dist/occt-kernel/occt-primitives.js +36 -3
- package/dist/occt-kernel/occt-primitives.js.map +1 -1
- package/dist/occt-kernel/occtKernel.d.ts +19 -14
- package/dist/occt-kernel/occtKernel.d.ts.map +1 -1
- package/dist/occt-kernel/occtKernel.js +19 -32
- package/dist/occt-kernel/occtKernel.js.map +1 -1
- package/dist/occt-kernel/stepColorParser.d.ts +18 -0
- package/dist/occt-kernel/stepColorParser.d.ts.map +1 -1
- package/dist/occt-kernel/stepColorParser.js +38 -0
- package/dist/occt-kernel/stepColorParser.js.map +1 -1
- package/dist/occt-kernel/stepMetaParser.d.ts +44 -0
- package/dist/occt-kernel/stepMetaParser.d.ts.map +1 -0
- package/dist/occt-kernel/stepMetaParser.js +166 -0
- package/dist/occt-kernel/stepMetaParser.js.map +1 -0
- package/dist/occt-kernel/topologyExt.d.ts +1 -1
- package/dist/occt-kernel/topologyExt.d.ts.map +1 -1
- package/dist/occt-kernel/topologyExt.js +4 -5
- package/dist/occt-kernel/topologyExt.js.map +1 -1
- package/dist/primitives/text/cjk-font.d.ts +2 -15
- package/dist/primitives/text/cjk-font.d.ts.map +1 -1
- package/dist/primitives/text/cjk-font.js +13 -1
- package/dist/primitives/text/cjk-font.js.map +1 -1
- package/dist/runtime-state.d.ts +85 -9
- package/dist/runtime-state.d.ts.map +1 -1
- package/dist/runtime-state.js +72 -2
- package/dist/runtime-state.js.map +1 -1
- package/dist/sdk.d.ts +3 -3
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +5 -5
- package/dist/sdk.js.map +1 -1
- package/dist/shape.d.ts +108 -5
- package/dist/shape.d.ts.map +1 -1
- package/dist/shape.js +130 -3
- package/dist/shape.js.map +1 -1
- package/dist/step/stepMetaParser.d.ts +55 -0
- package/dist/step/stepMetaParser.d.ts.map +1 -0
- package/dist/step/stepMetaParser.js +177 -0
- package/dist/step/stepMetaParser.js.map +1 -0
- package/dist/topology/naming/lineage.d.ts +6 -0
- package/dist/topology/naming/lineage.d.ts.map +1 -1
- package/dist/topology/naming/lineage.js +8 -0
- package/dist/topology/naming/lineage.js.map +1 -1
- package/dist/topology/naming/resolve-edge.d.ts +20 -1
- package/dist/topology/naming/resolve-edge.d.ts.map +1 -1
- package/dist/topology/naming/resolve-edge.js +54 -20
- package/dist/topology/naming/resolve-edge.js.map +1 -1
- package/dist/weapp.d.ts +6 -2
- package/dist/weapp.d.ts.map +1 -1
- package/dist/weapp.js +7 -1
- package/dist/weapp.js.map +1 -1
- package/package.json +19 -3
package/dist/node-host/cli.d.ts
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
* — (view) 单视图方向(默认 front)
|
|
18
18
|
* --sheet <front,top,right,iso> — (view) 多视图图纸(projectSheet;与 --view 互斥)
|
|
19
19
|
*/
|
|
20
|
-
import type {
|
|
20
|
+
import type { LibNamespace } from '../runtime-state.js';
|
|
21
21
|
import type { ExecutionMode } from '../cad-runtime/ports.js';
|
|
22
22
|
import type { ViewSpec } from '../api/view/view-camera.js';
|
|
23
23
|
/** Options accepted by the `check` command. */
|
|
@@ -26,6 +26,19 @@ export interface CliCheckOptions {
|
|
|
26
26
|
assetsDir?: string;
|
|
27
27
|
/** Extra fonts directory used by the node ports. */
|
|
28
28
|
fontsDir?: string;
|
|
29
|
+
/**
|
|
30
|
+
* Extra cad-namespace entries the host merges at run time (`cad.sketch`
|
|
31
|
+
* from @faicad/faijs-sketch).
|
|
32
|
+
*
|
|
33
|
+
* I-group (2026-10-03): the unknown-op guard compares the script's callees
|
|
34
|
+
* against `symbolTableNames()`, which knows only the STATIC table. A host
|
|
35
|
+
* that merges those libraries and passes them to {@link cliRun} therefore
|
|
36
|
+
* got `unknown op: cad.sketch is not in the cad namespace` from every check
|
|
37
|
+
* of a perfectly runnable script — `rebased-sweep.ts` reported it for every
|
|
38
|
+
* product in a corpus sweep. Check and run must see the same namespace, so
|
|
39
|
+
* the caller states its merged entries here.
|
|
40
|
+
*/
|
|
41
|
+
libs?: Record<string, unknown>;
|
|
29
42
|
}
|
|
30
43
|
/** Options accepted by the `run` command. */
|
|
31
44
|
export interface CliRunOptions {
|
|
@@ -37,13 +50,19 @@ export interface CliRunOptions {
|
|
|
37
50
|
fontsDir?: string;
|
|
38
51
|
/** Default font path used by the node ports. */
|
|
39
52
|
defaultFontPath?: string;
|
|
40
|
-
/** Host-injected library namespace (includes cad — the CLI entry faijs-cli.ts passes
|
|
41
|
-
libs?: Record<string,
|
|
53
|
+
/** Host-injected library namespace (includes cad — the CLI entry faijs-cli.ts passes createApiNamespace; core does not assemble it by default). */
|
|
54
|
+
libs?: Record<string, LibNamespace>;
|
|
42
55
|
/**
|
|
43
56
|
* 项目根(多文件 §4.5):相对 import 的解析基准,moduleKey = 相对它的路径。
|
|
44
57
|
* 缺省由入口文件向上找最近的 package.json。
|
|
45
58
|
*/
|
|
46
59
|
projectRoot?: string;
|
|
60
|
+
/**
|
|
61
|
+
* 连带导出隐藏终端(默认 false)。keep / keepHidden 保留的源几何默认不产出
|
|
62
|
+
* (隐藏的语义即"保留但不出现在产物里");置 true 恢复旧行为,把 hidden 终端
|
|
63
|
+
* 也一并写盘(多为诊断用途)。
|
|
64
|
+
*/
|
|
65
|
+
includeHidden?: boolean;
|
|
47
66
|
}
|
|
48
67
|
/** Result of the `check` (dry-run validation) command. */
|
|
49
68
|
export interface CliCheckResult {
|
|
@@ -88,7 +107,7 @@ export interface CliViewOptions {
|
|
|
88
107
|
/** Default font path used by the node ports. */
|
|
89
108
|
defaultFontPath?: string;
|
|
90
109
|
/** Host-injected library namespace (includes cad). */
|
|
91
|
-
libs?: Record<string,
|
|
110
|
+
libs?: Record<string, LibNamespace>;
|
|
92
111
|
/** Project root for relative .fai.js imports. */
|
|
93
112
|
projectRoot?: string;
|
|
94
113
|
/** Shape variable name to project; default resolves terminals like `run`. */
|
|
@@ -126,6 +145,24 @@ export declare function cliCheck(filePath: string, _opts?: CliCheckOptions): Cli
|
|
|
126
145
|
* @returns the run result describing success or failure
|
|
127
146
|
*/
|
|
128
147
|
export declare function cliRun(filePath: string, outPath: string, opts?: CliRunOptions): Promise<CliRunResult>;
|
|
148
|
+
/**
|
|
149
|
+
* 选出「可导出」的终端:默认剔除 hidden。
|
|
150
|
+
*
|
|
151
|
+
* 隐藏终端 = 「保留但不产出」(`keep` / `keepHidden` 语义,R5)。导出层必须默认跳过,
|
|
152
|
+
* 否则布尔运算保留的源几何会对每个 hidden 终端各写一个 `out.step_<i>_<name>` 产物,
|
|
153
|
+
* 让一个逻辑形状看起来像 N 个(FCStd port 的 `solids 1vsN` 失配即由此而来)。
|
|
154
|
+
* 需要旧行为(连同隐藏源一起写出,多用于诊断)时显式传 `includeHidden=true`。
|
|
155
|
+
*
|
|
156
|
+
* @param terminals - 存活终端集合(含 `hidden` 标记)
|
|
157
|
+
* @param includeHidden - 是否连同隐藏终端一起导出,缺省 false
|
|
158
|
+
* @returns `exportable`(可导出终端)与 `hiddenCount`(被剔除的隐藏终端数)
|
|
159
|
+
*/
|
|
160
|
+
export declare function selectExportableTerminals<T extends {
|
|
161
|
+
hidden?: boolean;
|
|
162
|
+
}>(terminals: readonly T[], includeHidden?: boolean): {
|
|
163
|
+
exportable: T[];
|
|
164
|
+
hiddenCount: number;
|
|
165
|
+
};
|
|
129
166
|
/**
|
|
130
167
|
* Execute the `view` command: execute a .fai.js file and write view SVG(s).
|
|
131
168
|
*
|
|
@@ -156,13 +193,14 @@ export declare function parseArgs(argv: string[]): {
|
|
|
156
193
|
view?: string;
|
|
157
194
|
sheet?: string;
|
|
158
195
|
part?: string;
|
|
196
|
+
includeHidden?: boolean;
|
|
159
197
|
};
|
|
160
198
|
/**
|
|
161
199
|
* CLI main entry point (called by scripts/faijs-cli.ts).
|
|
162
200
|
*
|
|
163
201
|
* @param argv - the raw process argument list
|
|
164
|
-
* @param libs - host-injected library namespace (includes cad — faijs-cli.ts passes
|
|
202
|
+
* @param libs - host-injected library namespace (includes cad — faijs-cli.ts passes createApiNamespace; core does not assemble it by default)
|
|
165
203
|
* @returns the process exit code (0 on success, non-zero on failure)
|
|
166
204
|
*/
|
|
167
|
-
export declare function cliMain(argv: string[], libs?: Record<string,
|
|
205
|
+
export declare function cliMain(argv: string[], libs?: Record<string, LibNamespace>): Promise<number>;
|
|
168
206
|
//# sourceMappingURL=cli.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/node-host/cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAOH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/node-host/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/node-host/cli.js
CHANGED
|
@@ -42,9 +42,9 @@ const CLI_SCOPED_PREFIX = '@faicad/';
|
|
|
42
42
|
/** 已登记短名 → scoped 全名归一表(仅收录 `@faicad/` 范围内的库,防同名陌生人包)。 */
|
|
43
43
|
const CLI_SHORT_NAMES = {
|
|
44
44
|
'sheetmetal': '@faicad/sheetmetal',
|
|
45
|
-
'
|
|
46
|
-
'
|
|
47
|
-
'
|
|
45
|
+
'faijs-cadquery': '@faicad/faijs-cadquery',
|
|
46
|
+
'faijs-gears': '@faicad/faijs-gears',
|
|
47
|
+
'faijs-fasteners': '@faicad/faijs-fasteners',
|
|
48
48
|
};
|
|
49
49
|
/**
|
|
50
50
|
* 读库 package.json 的 `faijs.autoLift` 字段(D3-autoLift 外置,§9.4):
|
|
@@ -144,11 +144,19 @@ export function cliCheck(filePath, _opts) {
|
|
|
144
144
|
// D11 (2026-09-28): unknown-op guard. check() is syntax+reference only — an
|
|
145
145
|
// op the cad namespace doesn't have used to pass `check` clean and die at
|
|
146
146
|
// runtime (e.g. `cad.sketch is not a function` when a host forgets to merge
|
|
147
|
-
// the sketch
|
|
147
|
+
// the sketch library). Compare the script's callees against the
|
|
148
148
|
// symbol-table union view (platform + registered library entries) and fail
|
|
149
149
|
// the check on any unknown callee.
|
|
150
150
|
if (result.ok && result.script) {
|
|
151
151
|
const known = new Set(symbolTableNames());
|
|
152
|
+
// Ops the host merges at run time are not in the static table; accept the
|
|
153
|
+
// names it declares as known so check agrees with the run that follows.
|
|
154
|
+
for (const ns of Object.values(_opts?.libs ?? {})) {
|
|
155
|
+
if (ns && typeof ns === 'object') {
|
|
156
|
+
for (const key of Object.keys(ns))
|
|
157
|
+
known.add(key);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
152
160
|
const unknown = [...new Set(result.script.callees)].filter((n) => !known.has(n));
|
|
153
161
|
for (const name of unknown) {
|
|
154
162
|
errors.push({
|
|
@@ -215,7 +223,7 @@ export async function cliRun(filePath, outPath, opts) {
|
|
|
215
223
|
// exception — the census and batch driver treat a throw as a process crash,
|
|
216
224
|
// while `{ ok: false, error }` keeps it a per-file, classifiable failure.
|
|
217
225
|
try {
|
|
218
|
-
return await exportExecutionResult(outPath, ext, execResult, terminals);
|
|
226
|
+
return await exportExecutionResult(outPath, ext, execResult, terminals, opts?.includeHidden ?? false);
|
|
219
227
|
}
|
|
220
228
|
catch (e) {
|
|
221
229
|
return {
|
|
@@ -225,9 +233,38 @@ export async function cliRun(filePath, outPath, opts) {
|
|
|
225
233
|
};
|
|
226
234
|
}
|
|
227
235
|
}
|
|
236
|
+
/**
|
|
237
|
+
* 选出「可导出」的终端:默认剔除 hidden。
|
|
238
|
+
*
|
|
239
|
+
* 隐藏终端 = 「保留但不产出」(`keep` / `keepHidden` 语义,R5)。导出层必须默认跳过,
|
|
240
|
+
* 否则布尔运算保留的源几何会对每个 hidden 终端各写一个 `out.step_<i>_<name>` 产物,
|
|
241
|
+
* 让一个逻辑形状看起来像 N 个(FCStd port 的 `solids 1vsN` 失配即由此而来)。
|
|
242
|
+
* 需要旧行为(连同隐藏源一起写出,多用于诊断)时显式传 `includeHidden=true`。
|
|
243
|
+
*
|
|
244
|
+
* @param terminals - 存活终端集合(含 `hidden` 标记)
|
|
245
|
+
* @param includeHidden - 是否连同隐藏终端一起导出,缺省 false
|
|
246
|
+
* @returns `exportable`(可导出终端)与 `hiddenCount`(被剔除的隐藏终端数)
|
|
247
|
+
*/
|
|
248
|
+
export function selectExportableTerminals(terminals, includeHidden = false) {
|
|
249
|
+
const hiddenCount = terminals.reduce((n, t) => (t.hidden ? n + 1 : n), 0);
|
|
250
|
+
const exportable = includeHidden ? [...terminals] : terminals.filter((t) => !t.hidden);
|
|
251
|
+
return { exportable, hiddenCount };
|
|
252
|
+
}
|
|
228
253
|
/** Export an executed result to `outPath` (shared body of cliRun's export path). */
|
|
229
|
-
async function exportExecutionResult(outPath, ext, execResult, terminals) {
|
|
230
|
-
|
|
254
|
+
async function exportExecutionResult(outPath, ext, execResult, terminals, includeHidden = false) {
|
|
255
|
+
const { exportable, hiddenCount } = selectExportableTerminals(terminals, includeHidden);
|
|
256
|
+
// 装配导出(writeAssemblyStep 的兜底路径)同样不得带出隐藏终端;includeHidden 时传 undefined。
|
|
257
|
+
const hiddenTerminals = includeHidden
|
|
258
|
+
? undefined
|
|
259
|
+
: new Set(terminals.filter((t) => t.hidden).map((t) => String(t.id)));
|
|
260
|
+
// 有终端但全部隐藏 → 明确报错(不静默回退到「最后一个 output」,那等于把隐藏源漏出去)。
|
|
261
|
+
if (!includeHidden && exportable.length === 0 && hiddenCount > 0) {
|
|
262
|
+
return {
|
|
263
|
+
ok: false,
|
|
264
|
+
error: `All ${hiddenCount} live terminal(s) are hidden — nothing to export (pass includeHidden to export them)`,
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
if (exportable.length === 0) {
|
|
231
268
|
// No terminals — use last output
|
|
232
269
|
const outputNames = [...execResult.outputs.keys()];
|
|
233
270
|
if (outputNames.length === 0) {
|
|
@@ -242,15 +279,15 @@ async function exportExecutionResult(outPath, ext, execResult, terminals) {
|
|
|
242
279
|
return writeOutput(outPath, ext, shape, solidEntry ? { solid: solidEntry.solid, kernel: solidEntry.kernel } : undefined);
|
|
243
280
|
}
|
|
244
281
|
// Single terminal
|
|
245
|
-
if (
|
|
246
|
-
const terminal =
|
|
282
|
+
if (exportable.length === 1) {
|
|
283
|
+
const terminal = exportable[0];
|
|
247
284
|
const shape = execResult.outputs.get(terminal.id);
|
|
248
285
|
if (!shape) {
|
|
249
286
|
return { ok: false, error: `No output for terminal "${terminal.id}"` };
|
|
250
287
|
}
|
|
251
288
|
// Assembly (compound with behavior) → expand members with colors
|
|
252
289
|
if (!('positions' in shape) || !('indices' in shape)) {
|
|
253
|
-
const asmResult = writeAssemblyStep(outPath, ext, shape, execResult);
|
|
290
|
+
const asmResult = writeAssemblyStep(outPath, ext, shape, execResult, hiddenTerminals);
|
|
254
291
|
if (asmResult)
|
|
255
292
|
return asmResult;
|
|
256
293
|
}
|
|
@@ -259,21 +296,21 @@ async function exportExecutionResult(outPath, ext, execResult, terminals) {
|
|
|
259
296
|
}
|
|
260
297
|
// Multiple terminals — write each to a separate file
|
|
261
298
|
// First, check if any terminal is a compound (assembly) — export it as a single STEP
|
|
262
|
-
for (let i = 0; i <
|
|
263
|
-
const terminal =
|
|
299
|
+
for (let i = 0; i < exportable.length; i++) {
|
|
300
|
+
const terminal = exportable[i];
|
|
264
301
|
const shape = execResult.outputs.get(terminal.id);
|
|
265
302
|
if (!shape)
|
|
266
303
|
continue;
|
|
267
304
|
if (!('positions' in shape) || !('indices' in shape)) {
|
|
268
305
|
// Compound terminal — try assembly STEP export
|
|
269
|
-
const asmResult = writeAssemblyStep(outPath, ext, shape, execResult);
|
|
306
|
+
const asmResult = writeAssemblyStep(outPath, ext, shape, execResult, hiddenTerminals);
|
|
270
307
|
if (asmResult)
|
|
271
308
|
return asmResult;
|
|
272
309
|
}
|
|
273
310
|
}
|
|
274
311
|
// Then export non-compound terminals
|
|
275
|
-
for (let i = 0; i <
|
|
276
|
-
const terminal =
|
|
312
|
+
for (let i = 0; i < exportable.length; i++) {
|
|
313
|
+
const terminal = exportable[i];
|
|
277
314
|
const shape = execResult.outputs.get(terminal.id);
|
|
278
315
|
if (!shape)
|
|
279
316
|
continue;
|
|
@@ -306,6 +343,7 @@ function parseViewArg(v) {
|
|
|
306
343
|
/**
|
|
307
344
|
* 选出待投影的 shape 列表(`--part` 指定,或按终端自动选择,与 `run` 一致):
|
|
308
345
|
* 只保留带 mesh 的 shape(compound/assembly 无 mesh,无法投影,跳过)。
|
|
346
|
+
* 隐藏终端(keep/keepHidden 保留的源几何)默认不投影——与 `run` 同口径。
|
|
309
347
|
*/
|
|
310
348
|
function selectViewShapes(execResult, part) {
|
|
311
349
|
const outputs = execResult.outputs;
|
|
@@ -316,8 +354,11 @@ function selectViewShapes(execResult, part) {
|
|
|
316
354
|
return [{ name: part, shape }];
|
|
317
355
|
return [];
|
|
318
356
|
}
|
|
319
|
-
|
|
320
|
-
|
|
357
|
+
// 隐藏终端默认不投影。全部终端皆隐藏 → 空集(**不**回退到「所有 outputs」,
|
|
358
|
+
// 否则会把全部中间量也画出来,与 run 的「全隐藏即无可导出」语义相悖)。
|
|
359
|
+
const allTerminals = execResult.terminals ?? [];
|
|
360
|
+
const { exportable: terminals } = selectExportableTerminals(allTerminals);
|
|
361
|
+
const ids = allTerminals.length > 0 ? terminals.map((t) => t.id) : [...outputs.keys()];
|
|
321
362
|
const out = [];
|
|
322
363
|
for (const id of ids) {
|
|
323
364
|
const shape = outputs.get(id) ?? outputs.get(asPartName(String(id)));
|
|
@@ -405,10 +446,10 @@ export async function cliView(filePath, outPath, opts) {
|
|
|
405
446
|
/**
|
|
406
447
|
* 写出输出文件。
|
|
407
448
|
*
|
|
408
|
-
*
|
|
409
|
-
* -
|
|
410
|
-
* -
|
|
411
|
-
*
|
|
449
|
+
* 按零件类型分别处理导出:
|
|
450
|
+
* - STL:取网格载荷(BREP 零件先经内核三角化),无重建。
|
|
451
|
+
* - STEP:有 BREP solid → 精确 STEP(ADVANCED_FACE);无 BREP solid → 该零件的
|
|
452
|
+
* 三角网格经重建管线导出(exportModelSync 内的 mesh 条目通路)。
|
|
412
453
|
*
|
|
413
454
|
* keep-syntax §5.1:outputs 现含 compound(group/assembly 产物,无 mesh);
|
|
414
455
|
* compound 无法导出,给出明确错误(此前"不在 outputs 中"是静默失败)。
|
|
@@ -453,7 +494,7 @@ function writeOutput(outPath, ext, shape, brepSolid) {
|
|
|
453
494
|
* Returns null if the compound has no assembly behavior (falls through to
|
|
454
495
|
* regular writeOutput), or a CliRunResult on success/failure.
|
|
455
496
|
*/
|
|
456
|
-
function writeAssemblyStep(outPath, ext, compound, execResult) {
|
|
497
|
+
function writeAssemblyStep(outPath, ext, compound, execResult, hiddenTerminals) {
|
|
457
498
|
if (ext !== 'step' && ext !== 'stp')
|
|
458
499
|
return null;
|
|
459
500
|
const slot = ensureSlot(compound);
|
|
@@ -509,6 +550,10 @@ function writeAssemblyStep(outPath, ext, compound, execResult) {
|
|
|
509
550
|
// Fallback: export all brepSolids (covers compounds where memberNames wasn't propagated)
|
|
510
551
|
if (entries.length === 0 && execResult.brepSolids) {
|
|
511
552
|
for (const [key, solidEntry] of execResult.brepSolids) {
|
|
553
|
+
// 隐藏终端(keep/keepHidden 保留的源几何)不得借这条兜底路径落盘——
|
|
554
|
+
// 与主导出路径同一判据(includeHidden 时 hiddenTerminals 传 undefined,不过滤)。
|
|
555
|
+
if (hiddenTerminals?.has(String(key)))
|
|
556
|
+
continue;
|
|
512
557
|
if (!kernel)
|
|
513
558
|
kernel = solidEntry.kernel;
|
|
514
559
|
entries.push({
|
|
@@ -546,6 +591,7 @@ export function parseArgs(argv) {
|
|
|
546
591
|
let view;
|
|
547
592
|
let sheet;
|
|
548
593
|
let part;
|
|
594
|
+
let includeHidden;
|
|
549
595
|
for (let i = 1; i < args.length; i++) {
|
|
550
596
|
const arg = args[i];
|
|
551
597
|
if (arg === '--out' || arg === '-o') {
|
|
@@ -575,21 +621,24 @@ export function parseArgs(argv) {
|
|
|
575
621
|
else if (arg === '--part') {
|
|
576
622
|
part = args[++i];
|
|
577
623
|
}
|
|
624
|
+
else if (arg === '--include-hidden') {
|
|
625
|
+
includeHidden = true;
|
|
626
|
+
}
|
|
578
627
|
else if (!file && !arg.startsWith('-')) {
|
|
579
628
|
file = arg;
|
|
580
629
|
}
|
|
581
630
|
}
|
|
582
|
-
return { command, file, out, mode, assetsDir, fontsDir, projectRoot, view, sheet, part };
|
|
631
|
+
return { command, file, out, mode, assetsDir, fontsDir, projectRoot, view, sheet, part, includeHidden };
|
|
583
632
|
}
|
|
584
633
|
/**
|
|
585
634
|
* CLI main entry point (called by scripts/faijs-cli.ts).
|
|
586
635
|
*
|
|
587
636
|
* @param argv - the raw process argument list
|
|
588
|
-
* @param libs - host-injected library namespace (includes cad — faijs-cli.ts passes
|
|
637
|
+
* @param libs - host-injected library namespace (includes cad — faijs-cli.ts passes createApiNamespace; core does not assemble it by default)
|
|
589
638
|
* @returns the process exit code (0 on success, non-zero on failure)
|
|
590
639
|
*/
|
|
591
640
|
export async function cliMain(argv, libs) {
|
|
592
|
-
const { command, file, out, mode, assetsDir, fontsDir, projectRoot, view, sheet, part } = parseArgs(argv);
|
|
641
|
+
const { command, file, out, mode, assetsDir, fontsDir, projectRoot, view, sheet, part, includeHidden } = parseArgs(argv);
|
|
593
642
|
if (!command) {
|
|
594
643
|
process.stderr.write('Usage: faijs-cli <check|run|view> <file.fai.js> [options]\n');
|
|
595
644
|
process.stderr.write(' check <file> DryRun validation\n');
|
|
@@ -599,6 +648,7 @@ export async function cliMain(argv, libs) {
|
|
|
599
648
|
process.stderr.write(' --assets <dir> Asset directory\n');
|
|
600
649
|
process.stderr.write(' --fonts <dir> Extra fonts directory\n');
|
|
601
650
|
process.stderr.write(' --project-root <dir> Project root for relative .fai.js imports\n');
|
|
651
|
+
process.stderr.write(' --include-hidden (run) also export hidden terminals (keep/keepHidden sources; default off)\n');
|
|
602
652
|
process.stderr.write(' --part <name> (view) shape variable to project (default: terminals)\n');
|
|
603
653
|
process.stderr.write(' --view <dir> (view) single view: front|back|top|bottom|left|right|iso|"x,y,z" (default front)\n');
|
|
604
654
|
process.stderr.write(' --sheet <a,b,c> (view) multi-view sheet: front,top,right,iso (mutually exclusive with --view)\n');
|
|
@@ -634,7 +684,7 @@ export async function cliMain(argv, libs) {
|
|
|
634
684
|
return 1;
|
|
635
685
|
}
|
|
636
686
|
const outPath = resolve(out);
|
|
637
|
-
const result = await cliRun(filePath, outPath, { mode, assetsDir, fontsDir, projectRoot, libs });
|
|
687
|
+
const result = await cliRun(filePath, outPath, { mode, assetsDir, fontsDir, projectRoot, libs, includeHidden });
|
|
638
688
|
if (result.ok) {
|
|
639
689
|
process.stdout.write(`✓ ${filePath} → ${outPath} (${result.outputFormat})\n`);
|
|
640
690
|
if (result.infos && result.infos.length > 0) {
|