@faicad/faijs 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +29 -0
- package/NOTICE +29 -0
- package/dist/api/api-namespace.d.ts +27 -0
- package/dist/api/api-namespace.d.ts.map +1 -0
- package/dist/api/api-namespace.js +78 -0
- package/dist/api/api-namespace.js.map +1 -0
- package/dist/api/assembly/entities.d.ts +55 -0
- package/dist/api/assembly/entities.d.ts.map +1 -0
- package/dist/api/assembly/entities.js +158 -0
- package/dist/api/assembly/entities.js.map +1 -0
- package/dist/api/assembly/golden-mate.d.ts +49 -0
- package/dist/api/assembly/golden-mate.d.ts.map +1 -0
- package/dist/api/assembly/golden-mate.js +101 -0
- package/dist/api/assembly/golden-mate.js.map +1 -0
- package/dist/api/assembly/index.d.ts +16 -0
- package/dist/api/assembly/index.d.ts.map +1 -0
- package/dist/api/assembly/index.js +16 -0
- package/dist/api/assembly/index.js.map +1 -0
- package/dist/api/assembly/joints.d.ts +208 -0
- package/dist/api/assembly/joints.d.ts.map +1 -0
- package/dist/api/assembly/joints.js +240 -0
- package/dist/api/assembly/joints.js.map +1 -0
- package/dist/api/assembly/lower.d.ts +61 -0
- package/dist/api/assembly/lower.d.ts.map +1 -0
- package/dist/api/assembly/lower.js +145 -0
- package/dist/api/assembly/lower.js.map +1 -0
- package/dist/api/assembly/normalize.d.ts +19 -0
- package/dist/api/assembly/normalize.d.ts.map +1 -0
- package/dist/api/assembly/normalize.js +32 -0
- package/dist/api/assembly/normalize.js.map +1 -0
- package/dist/api/assembly/pose.d.ts +78 -0
- package/dist/api/assembly/pose.d.ts.map +1 -0
- package/dist/api/assembly/pose.js +116 -0
- package/dist/api/assembly/pose.js.map +1 -0
- package/dist/api/assembly/preview.d.ts +55 -0
- package/dist/api/assembly/preview.d.ts.map +1 -0
- package/dist/api/assembly/preview.js +61 -0
- package/dist/api/assembly/preview.js.map +1 -0
- package/dist/api/assembly/solve.d.ts +72 -0
- package/dist/api/assembly/solve.d.ts.map +1 -0
- package/dist/api/assembly/solve.js +139 -0
- package/dist/api/assembly/solve.js.map +1 -0
- package/dist/api/assembly/solvers/global-solver.d.ts +34 -0
- package/dist/api/assembly/solvers/global-solver.d.ts.map +1 -0
- package/dist/api/assembly/solvers/global-solver.js +461 -0
- package/dist/api/assembly/solvers/global-solver.js.map +1 -0
- package/dist/api/assembly/solvers/linalg.d.ts +92 -0
- package/dist/api/assembly/solvers/linalg.d.ts.map +1 -0
- package/dist/api/assembly/solvers/linalg.js +217 -0
- package/dist/api/assembly/solvers/linalg.js.map +1 -0
- package/dist/api/assembly/solvers/pose-from-delta.d.ts +43 -0
- package/dist/api/assembly/solvers/pose-from-delta.d.ts.map +1 -0
- package/dist/api/assembly/solvers/pose-from-delta.js +61 -0
- package/dist/api/assembly/solvers/pose-from-delta.js.map +1 -0
- package/dist/api/assembly/solvers/types.d.ts +60 -0
- package/dist/api/assembly/solvers/types.d.ts.map +1 -0
- package/dist/api/assembly/solvers/types.js +11 -0
- package/dist/api/assembly/solvers/types.js.map +1 -0
- package/dist/api/assembly/types.d.ts +136 -0
- package/dist/api/assembly/types.d.ts.map +1 -0
- package/dist/api/assembly/types.js +13 -0
- package/dist/api/assembly/types.js.map +1 -0
- package/dist/api/assembly/validate.d.ts +37 -0
- package/dist/api/assembly/validate.d.ts.map +1 -0
- package/dist/api/assembly/validate.js +131 -0
- package/dist/api/assembly/validate.js.map +1 -0
- package/dist/api/assert.d.ts +54 -0
- package/dist/api/assert.d.ts.map +1 -0
- package/dist/api/assert.js +90 -0
- package/dist/api/assert.js.map +1 -0
- package/dist/api/asset.d.ts +20 -0
- package/dist/api/asset.d.ts.map +1 -0
- package/dist/api/asset.js +28 -0
- package/dist/api/asset.js.map +1 -0
- package/dist/api/boolean.d.ts +56 -0
- package/dist/api/boolean.d.ts.map +1 -0
- package/dist/api/boolean.js +151 -0
- package/dist/api/boolean.js.map +1 -0
- package/dist/api/brep-mirror/joinery-brep.d.ts +172 -0
- package/dist/api/brep-mirror/joinery-brep.d.ts.map +1 -0
- package/dist/api/brep-mirror/joinery-brep.js +461 -0
- package/dist/api/brep-mirror/joinery-brep.js.map +1 -0
- package/dist/api/brep-mirror/threadFns.d.ts +68 -0
- package/dist/api/brep-mirror/threadFns.d.ts.map +1 -0
- package/dist/api/brep-mirror/threadFns.js +103 -0
- package/dist/api/brep-mirror/threadFns.js.map +1 -0
- package/dist/api/brepjs-compat/index.d.ts +234 -0
- package/dist/api/brepjs-compat/index.d.ts.map +1 -0
- package/dist/api/brepjs-compat/index.js +289 -0
- package/dist/api/brepjs-compat/index.js.map +1 -0
- package/dist/api/chamfer-math.d.ts +46 -0
- package/dist/api/chamfer-math.d.ts.map +1 -0
- package/dist/api/chamfer-math.js +60 -0
- package/dist/api/chamfer-math.js.map +1 -0
- package/dist/api/chamfer.d.ts +63 -0
- package/dist/api/chamfer.d.ts.map +1 -0
- package/dist/api/chamfer.js +234 -0
- package/dist/api/chamfer.js.map +1 -0
- package/dist/api/compat/index.d.ts +173 -0
- package/dist/api/compat/index.d.ts.map +1 -0
- package/dist/api/compat/index.js +222 -0
- package/dist/api/compat/index.js.map +1 -0
- package/dist/api/compound.d.ts +108 -0
- package/dist/api/compound.d.ts.map +1 -0
- package/dist/api/compound.js +162 -0
- package/dist/api/compound.js.map +1 -0
- package/dist/api/copy.d.ts +39 -0
- package/dist/api/copy.d.ts.map +1 -0
- package/dist/api/copy.js +81 -0
- package/dist/api/copy.js.map +1 -0
- package/dist/api/edge-ref.d.ts +42 -0
- package/dist/api/edge-ref.d.ts.map +1 -0
- package/dist/api/edge-ref.js +89 -0
- package/dist/api/edge-ref.js.map +1 -0
- package/dist/api/engrave.d.ts +39 -0
- package/dist/api/engrave.d.ts.map +1 -0
- package/dist/api/engrave.js +215 -0
- package/dist/api/engrave.js.map +1 -0
- package/dist/api/extrude.d.ts +81 -0
- package/dist/api/extrude.d.ts.map +1 -0
- package/dist/api/extrude.js +299 -0
- package/dist/api/extrude.js.map +1 -0
- package/dist/api/face-ref.d.ts +37 -0
- package/dist/api/face-ref.d.ts.map +1 -0
- package/dist/api/face-ref.js +64 -0
- package/dist/api/face-ref.js.map +1 -0
- package/dist/api/fai_drill.d.ts +46 -0
- package/dist/api/fai_drill.d.ts.map +1 -0
- package/dist/api/fai_drill.js +230 -0
- package/dist/api/fai_drill.js.map +1 -0
- package/dist/api/fai_extrude.d.ts +36 -0
- package/dist/api/fai_extrude.d.ts.map +1 -0
- package/dist/api/fai_extrude.js +78 -0
- package/dist/api/fai_extrude.js.map +1 -0
- package/dist/api/fai_split.d.ts +46 -0
- package/dist/api/fai_split.d.ts.map +1 -0
- package/dist/api/fai_split.js +253 -0
- package/dist/api/fai_split.js.map +1 -0
- package/dist/api/fillet.d.ts +46 -0
- package/dist/api/fillet.d.ts.map +1 -0
- package/dist/api/fillet.js +127 -0
- package/dist/api/fillet.js.map +1 -0
- package/dist/api/generated/2d.d.ts +18 -0
- package/dist/api/generated/2d.d.ts.map +1 -0
- package/dist/api/generated/2d.js +2 -0
- package/dist/api/generated/2d.js.map +1 -0
- package/dist/api/generated/brepjs/index.d.ts +310 -0
- package/dist/api/generated/brepjs/index.d.ts.map +1 -0
- package/dist/api/generated/brepjs/index.js +195 -0
- package/dist/api/generated/brepjs/index.js.map +1 -0
- package/dist/api/generated/cad/script-face.d.ts +12 -0
- package/dist/api/generated/cad/script-face.d.ts.map +1 -0
- package/dist/api/generated/cad/script-face.js +147 -0
- package/dist/api/generated/cad/script-face.js.map +1 -0
- package/dist/api/generated/core.d.ts +126 -0
- package/dist/api/generated/core.d.ts.map +1 -0
- package/dist/api/generated/core.js +86 -0
- package/dist/api/generated/core.js.map +1 -0
- package/dist/api/generated/gear.d.ts +20 -0
- package/dist/api/generated/gear.d.ts.map +1 -0
- package/dist/api/generated/gear.js +4 -0
- package/dist/api/generated/gear.js.map +1 -0
- package/dist/api/generated/io.d.ts +18 -0
- package/dist/api/generated/io.d.ts.map +1 -0
- package/dist/api/generated/io.js +2 -0
- package/dist/api/generated/io.js.map +1 -0
- package/dist/api/generated/kernel.d.ts +44 -0
- package/dist/api/generated/kernel.d.ts.map +1 -0
- package/dist/api/generated/kernel.js +5 -0
- package/dist/api/generated/kernel.js.map +1 -0
- package/dist/api/generated/measurement.d.ts +132 -0
- package/dist/api/generated/measurement.d.ts.map +1 -0
- package/dist/api/generated/measurement.js +191 -0
- package/dist/api/generated/measurement.js.map +1 -0
- package/dist/api/generated/ns.d.ts +15 -0
- package/dist/api/generated/ns.d.ts.map +1 -0
- package/dist/api/generated/ns.js +15 -0
- package/dist/api/generated/ns.js.map +1 -0
- package/dist/api/generated/operations.d.ts +190 -0
- package/dist/api/generated/operations.d.ts.map +1 -0
- package/dist/api/generated/operations.js +131 -0
- package/dist/api/generated/operations.js.map +1 -0
- package/dist/api/generated/projection.d.ts +13 -0
- package/dist/api/generated/projection.d.ts.map +1 -0
- package/dist/api/generated/projection.js +5 -0
- package/dist/api/generated/projection.js.map +1 -0
- package/dist/api/generated/query.d.ts +14 -0
- package/dist/api/generated/query.d.ts.map +1 -0
- package/dist/api/generated/query.js +2 -0
- package/dist/api/generated/query.js.map +1 -0
- package/dist/api/generated/script-face-manifest.d.ts +15 -0
- package/dist/api/generated/script-face-manifest.d.ts.map +1 -0
- package/dist/api/generated/script-face-manifest.js +39 -0
- package/dist/api/generated/script-face-manifest.js.map +1 -0
- package/dist/api/generated/script-face.d.ts +100 -0
- package/dist/api/generated/script-face.d.ts.map +1 -0
- package/dist/api/generated/script-face.js +49 -0
- package/dist/api/generated/script-face.js.map +1 -0
- package/dist/api/generated/sketching.d.ts +13 -0
- package/dist/api/generated/sketching.d.ts.map +1 -0
- package/dist/api/generated/sketching.js +16 -0
- package/dist/api/generated/sketching.js.map +1 -0
- package/dist/api/generated/text.d.ts +11 -0
- package/dist/api/generated/text.d.ts.map +1 -0
- package/dist/api/generated/text.js +4 -0
- package/dist/api/generated/text.js.map +1 -0
- package/dist/api/generated/topology.d.ts +353 -0
- package/dist/api/generated/topology.d.ts.map +1 -0
- package/dist/api/generated/topology.js +253 -0
- package/dist/api/generated/topology.js.map +1 -0
- package/dist/api/generated/view.d.ts +9 -0
- package/dist/api/generated/view.d.ts.map +1 -0
- package/dist/api/generated/view.js +9 -0
- package/dist/api/generated/view.js.map +1 -0
- package/dist/api/geom.d.ts +66 -0
- package/dist/api/geom.d.ts.map +1 -0
- package/dist/api/geom.js +122 -0
- package/dist/api/geom.js.map +1 -0
- package/dist/api/index.d.ts +47 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +70 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/internal/compat-op.d.ts +88 -0
- package/dist/api/internal/compat-op.d.ts.map +1 -0
- package/dist/api/internal/compat-op.js +176 -0
- package/dist/api/internal/compat-op.js.map +1 -0
- package/dist/api/internal/compat-projection.d.ts +53 -0
- package/dist/api/internal/compat-projection.d.ts.map +1 -0
- package/dist/api/internal/compat-projection.js +72 -0
- package/dist/api/internal/compat-projection.js.map +1 -0
- package/dist/api/internal/dual-form-args.d.ts +143 -0
- package/dist/api/internal/dual-form-args.d.ts.map +1 -0
- package/dist/api/internal/dual-form-args.js +217 -0
- package/dist/api/internal/dual-form-args.js.map +1 -0
- package/dist/api/internal/l3-bridge.d.ts +94 -0
- package/dist/api/internal/l3-bridge.d.ts.map +1 -0
- package/dist/api/internal/l3-bridge.js +143 -0
- package/dist/api/internal/l3-bridge.js.map +1 -0
- package/dist/api/internal/result-unwrap.d.ts +101 -0
- package/dist/api/internal/result-unwrap.d.ts.map +1 -0
- package/dist/api/internal/result-unwrap.js +119 -0
- package/dist/api/internal/result-unwrap.js.map +1 -0
- package/dist/api/internal/svg-asset-resolver.d.ts +22 -0
- package/dist/api/internal/svg-asset-resolver.d.ts.map +1 -0
- package/dist/api/internal/svg-asset-resolver.js +45 -0
- package/dist/api/internal/svg-asset-resolver.js.map +1 -0
- package/dist/api/knurl.d.ts +38 -0
- package/dist/api/knurl.d.ts.map +1 -0
- package/dist/api/knurl.js +62 -0
- package/dist/api/knurl.js.map +1 -0
- package/dist/api/load.d.ts +39 -0
- package/dist/api/load.d.ts.map +1 -0
- package/dist/api/load.js +82 -0
- package/dist/api/load.js.map +1 -0
- package/dist/api/occt-kernel-bridge.d.ts +43 -0
- package/dist/api/occt-kernel-bridge.d.ts.map +1 -0
- package/dist/api/occt-kernel-bridge.js +59 -0
- package/dist/api/occt-kernel-bridge.js.map +1 -0
- package/dist/api/primitives.d.ts +161 -0
- package/dist/api/primitives.d.ts.map +1 -0
- package/dist/api/primitives.js +296 -0
- package/dist/api/primitives.js.map +1 -0
- package/dist/api/reconcile.d.ts +28 -0
- package/dist/api/reconcile.d.ts.map +1 -0
- package/dist/api/reconcile.js +45 -0
- package/dist/api/reconcile.js.map +1 -0
- package/dist/api/result.d.ts +15 -0
- package/dist/api/result.d.ts.map +1 -0
- package/dist/api/result.js +15 -0
- package/dist/api/result.js.map +1 -0
- package/dist/api/screw.d.ts +38 -0
- package/dist/api/screw.d.ts.map +1 -0
- package/dist/api/screw.js +160 -0
- package/dist/api/screw.js.map +1 -0
- package/dist/api/sdf.d.ts +32 -0
- package/dist/api/sdf.d.ts.map +1 -0
- package/dist/api/sdf.js +46 -0
- package/dist/api/sdf.js.map +1 -0
- package/dist/api/sketch.d.ts +73 -0
- package/dist/api/sketch.d.ts.map +1 -0
- package/dist/api/sketch.js +149 -0
- package/dist/api/sketch.js.map +1 -0
- package/dist/api/surface/arg-spec.d.ts +111 -0
- package/dist/api/surface/arg-spec.d.ts.map +1 -0
- package/dist/api/surface/arg-spec.js +3535 -0
- package/dist/api/surface/arg-spec.js.map +1 -0
- package/dist/api/surface/projection-overrides.d.ts +38 -0
- package/dist/api/surface/projection-overrides.d.ts.map +1 -0
- package/dist/api/surface/projection-overrides.js +163 -0
- package/dist/api/surface/projection-overrides.js.map +1 -0
- package/dist/api/svgExtrude.d.ts +32 -0
- package/dist/api/svgExtrude.d.ts.map +1 -0
- package/dist/api/svgExtrude.js +73 -0
- package/dist/api/svgExtrude.js.map +1 -0
- package/dist/api/text.d.ts +34 -0
- package/dist/api/text.d.ts.map +1 -0
- package/dist/api/text.js +100 -0
- package/dist/api/text.js.map +1 -0
- package/dist/api/topo-resolve.d.ts +89 -0
- package/dist/api/topo-resolve.d.ts.map +1 -0
- package/dist/api/topo-resolve.js +195 -0
- package/dist/api/topo-resolve.js.map +1 -0
- package/dist/api/transform.d.ts +108 -0
- package/dist/api/transform.d.ts.map +1 -0
- package/dist/api/transform.js +229 -0
- package/dist/api/transform.js.map +1 -0
- package/dist/api/view/index.d.ts +16 -0
- package/dist/api/view/index.d.ts.map +1 -0
- package/dist/api/view/index.js +16 -0
- package/dist/api/view/index.js.map +1 -0
- package/dist/api/view/view-camera.d.ts +53 -0
- package/dist/api/view/view-camera.d.ts.map +1 -0
- package/dist/api/view/view-camera.js +51 -0
- package/dist/api/view/view-camera.js.map +1 -0
- package/dist/api/view/view-projection.d.ts +80 -0
- package/dist/api/view/view-projection.d.ts.map +1 -0
- package/dist/api/view/view-projection.js +128 -0
- package/dist/api/view/view-projection.js.map +1 -0
- package/dist/api/view/view-sheet.d.ts +56 -0
- package/dist/api/view/view-sheet.d.ts.map +1 -0
- package/dist/api/view/view-sheet.js +91 -0
- package/dist/api/view/view-sheet.js.map +1 -0
- package/dist/boolean/cross-section.d.ts +64 -0
- package/dist/boolean/cross-section.d.ts.map +1 -0
- package/dist/boolean/cross-section.js +301 -0
- package/dist/boolean/cross-section.js.map +1 -0
- package/dist/boolean/csg-backend.d.ts +94 -0
- package/dist/boolean/csg-backend.d.ts.map +1 -0
- package/dist/boolean/csg-backend.js +137 -0
- package/dist/boolean/csg-backend.js.map +1 -0
- package/dist/boolean/csg-core.d.ts +207 -0
- package/dist/boolean/csg-core.d.ts.map +1 -0
- package/dist/boolean/csg-core.js +576 -0
- package/dist/boolean/csg-core.js.map +1 -0
- package/dist/boolean/deriveNormals.d.ts +21 -0
- package/dist/boolean/deriveNormals.d.ts.map +1 -0
- package/dist/boolean/deriveNormals.js +24 -0
- package/dist/boolean/deriveNormals.js.map +1 -0
- package/dist/boolean/dovetail-math.d.ts +56 -0
- package/dist/boolean/dovetail-math.d.ts.map +1 -0
- package/dist/boolean/dovetail-math.js +85 -0
- package/dist/boolean/dovetail-math.js.map +1 -0
- package/dist/boolean/extrude-helpers.d.ts +88 -0
- package/dist/boolean/extrude-helpers.d.ts.map +1 -0
- package/dist/boolean/extrude-helpers.js +134 -0
- package/dist/boolean/extrude-helpers.js.map +1 -0
- package/dist/boolean/geo-convert.d.ts +52 -0
- package/dist/boolean/geo-convert.d.ts.map +1 -0
- package/dist/boolean/geo-convert.js +94 -0
- package/dist/boolean/geo-convert.js.map +1 -0
- package/dist/boolean/joinery-shapes.d.ts +76 -0
- package/dist/boolean/joinery-shapes.d.ts.map +1 -0
- package/dist/boolean/joinery-shapes.js +205 -0
- package/dist/boolean/joinery-shapes.js.map +1 -0
- package/dist/boolean/manifold-preview.d.ts +26 -0
- package/dist/boolean/manifold-preview.d.ts.map +1 -0
- package/dist/boolean/manifold-preview.js +48 -0
- package/dist/boolean/manifold-preview.js.map +1 -0
- package/dist/brep/brep-chain.d.ts +115 -0
- package/dist/brep/brep-chain.d.ts.map +1 -0
- package/dist/brep/brep-chain.js +99 -0
- package/dist/brep/brep-chain.js.map +1 -0
- package/dist/brep/brep-ops.d.ts +251 -0
- package/dist/brep/brep-ops.d.ts.map +1 -0
- package/dist/brep/brep-ops.js +545 -0
- package/dist/brep/brep-ops.js.map +1 -0
- package/dist/brep/brep-topology.d.ts +63 -0
- package/dist/brep/brep-topology.d.ts.map +1 -0
- package/dist/brep/brep-topology.js +86 -0
- package/dist/brep/brep-topology.js.map +1 -0
- package/dist/brep/brep-utils.d.ts +25 -0
- package/dist/brep/brep-utils.d.ts.map +1 -0
- package/dist/brep/brep-utils.js +42 -0
- package/dist/brep/brep-utils.js.map +1 -0
- package/dist/brep/engine/adapters/brep-mock.d.ts +24 -0
- package/dist/brep/engine/adapters/brep-mock.d.ts.map +1 -0
- package/dist/brep/engine/adapters/brep-mock.js +303 -0
- package/dist/brep/engine/adapters/brep-mock.js.map +1 -0
- package/dist/brep/engine/adapters/brepkit.d.ts +25 -0
- package/dist/brep/engine/adapters/brepkit.d.ts.map +1 -0
- package/dist/brep/engine/adapters/brepkit.js +51 -0
- package/dist/brep/engine/adapters/brepkit.js.map +1 -0
- package/dist/brep/engine/adapters/occt.d.ts +31 -0
- package/dist/brep/engine/adapters/occt.d.ts.map +1 -0
- package/dist/brep/engine/adapters/occt.js +61 -0
- package/dist/brep/engine/adapters/occt.js.map +1 -0
- package/dist/brep/engine/primitives.d.ts +136 -0
- package/dist/brep/engine/primitives.d.ts.map +1 -0
- package/dist/brep/engine/primitives.js +13 -0
- package/dist/brep/engine/primitives.js.map +1 -0
- package/dist/brep/engine/registry.d.ts +88 -0
- package/dist/brep/engine/registry.d.ts.map +1 -0
- package/dist/brep/engine/registry.js +139 -0
- package/dist/brep/engine/registry.js.map +1 -0
- package/dist/brep/engine/types.d.ts +157 -0
- package/dist/brep/engine/types.d.ts.map +1 -0
- package/dist/brep/engine/types.js +11 -0
- package/dist/brep/engine/types.js.map +1 -0
- package/dist/brep/export/step.d.ts +48 -0
- package/dist/brep/export/step.d.ts.map +1 -0
- package/dist/brep/export/step.js +118 -0
- package/dist/brep/export/step.js.map +1 -0
- package/dist/brep/export/stl.d.ts +27 -0
- package/dist/brep/export/stl.d.ts.map +1 -0
- package/dist/brep/export/stl.js +93 -0
- package/dist/brep/export/stl.js.map +1 -0
- package/dist/brep/face-evolution.d.ts +244 -0
- package/dist/brep/face-evolution.d.ts.map +1 -0
- package/dist/brep/face-evolution.js +408 -0
- package/dist/brep/face-evolution.js.map +1 -0
- package/dist/brep/handle-bridge.d.ts +59 -0
- package/dist/brep/handle-bridge.d.ts.map +1 -0
- package/dist/brep/handle-bridge.js +91 -0
- package/dist/brep/handle-bridge.js.map +1 -0
- package/dist/brep/index.d.ts +15 -0
- package/dist/brep/index.d.ts.map +1 -0
- package/dist/brep/index.js +20 -0
- package/dist/brep/index.js.map +1 -0
- package/dist/brep/primitives-brep.d.ts +52 -0
- package/dist/brep/primitives-brep.d.ts.map +1 -0
- package/dist/brep/primitives-brep.js +108 -0
- package/dist/brep/primitives-brep.js.map +1 -0
- package/dist/brep/svg/svg-to-solid.d.ts +111 -0
- package/dist/brep/svg/svg-to-solid.d.ts.map +1 -0
- package/dist/brep/svg/svg-to-solid.js +843 -0
- package/dist/brep/svg/svg-to-solid.js.map +1 -0
- package/dist/brep/text/fontRegistry.d.ts +71 -0
- package/dist/brep/text/fontRegistry.d.ts.map +1 -0
- package/dist/brep/text/fontRegistry.js +100 -0
- package/dist/brep/text/fontRegistry.js.map +1 -0
- package/dist/brep/text/fontTestHelper.d.ts +30 -0
- package/dist/brep/text/fontTestHelper.d.ts.map +1 -0
- package/dist/brep/text/fontTestHelper.js +57 -0
- package/dist/brep/text/fontTestHelper.js.map +1 -0
- package/dist/brep/text/text-to-solid.d.ts +48 -0
- package/dist/brep/text/text-to-solid.d.ts.map +1 -0
- package/dist/brep/text/text-to-solid.js +218 -0
- package/dist/brep/text/text-to-solid.js.map +1 -0
- package/dist/brepjs-compat.d.ts +20 -0
- package/dist/brepjs-compat.d.ts.map +1 -0
- package/dist/brepjs-compat.js +20 -0
- package/dist/brepjs-compat.js.map +1 -0
- package/dist/brepkit-kernel/brepkitKernel.d.ts +29 -0
- package/dist/brepkit-kernel/brepkitKernel.d.ts.map +1 -0
- package/dist/brepkit-kernel/brepkitKernel.js +571 -0
- package/dist/brepkit-kernel/brepkitKernel.js.map +1 -0
- package/dist/brepkit-kernel/brepkitWasm.d.ts +25 -0
- package/dist/brepkit-kernel/brepkitWasm.d.ts.map +1 -0
- package/dist/brepkit-kernel/brepkitWasm.js +51 -0
- package/dist/brepkit-kernel/brepkitWasm.js.map +1 -0
- package/dist/browser-host/browser-event-sink.d.ts +31 -0
- package/dist/browser-host/browser-event-sink.d.ts.map +1 -0
- package/dist/browser-host/browser-event-sink.js +35 -0
- package/dist/browser-host/browser-event-sink.js.map +1 -0
- package/dist/browser-host/browser-font-provider.d.ts +47 -0
- package/dist/browser-host/browser-font-provider.d.ts.map +1 -0
- package/dist/browser-host/browser-font-provider.js +69 -0
- package/dist/browser-host/browser-font-provider.js.map +1 -0
- package/dist/browser-host/csg-worker-protocol.d.ts +102 -0
- package/dist/browser-host/csg-worker-protocol.d.ts.map +1 -0
- package/dist/browser-host/csg-worker-protocol.js +8 -0
- package/dist/browser-host/csg-worker-protocol.js.map +1 -0
- package/dist/browser-host/csg-worker.d.ts +13 -0
- package/dist/browser-host/csg-worker.d.ts.map +1 -0
- package/dist/browser-host/csg-worker.js +98 -0
- package/dist/browser-host/csg-worker.js.map +1 -0
- package/dist/browser-host/fetch-asset-resolver.d.ts +45 -0
- package/dist/browser-host/fetch-asset-resolver.d.ts.map +1 -0
- package/dist/browser-host/fetch-asset-resolver.js +63 -0
- package/dist/browser-host/fetch-asset-resolver.js.map +1 -0
- package/dist/browser-host/index.d.ts +76 -0
- package/dist/browser-host/index.d.ts.map +1 -0
- package/dist/browser-host/index.js +95 -0
- package/dist/browser-host/index.js.map +1 -0
- package/dist/browser-host/inline-csg-backend.d.ts +56 -0
- package/dist/browser-host/inline-csg-backend.d.ts.map +1 -0
- package/dist/browser-host/inline-csg-backend.js +110 -0
- package/dist/browser-host/inline-csg-backend.js.map +1 -0
- package/dist/browser-host/inline-sdf-backend.d.ts +23 -0
- package/dist/browser-host/inline-sdf-backend.d.ts.map +1 -0
- package/dist/browser-host/inline-sdf-backend.js +28 -0
- package/dist/browser-host/inline-sdf-backend.js.map +1 -0
- package/dist/browser-host/sdf-worker-protocol.d.ts +41 -0
- package/dist/browser-host/sdf-worker-protocol.d.ts.map +1 -0
- package/dist/browser-host/sdf-worker-protocol.js +5 -0
- package/dist/browser-host/sdf-worker-protocol.js.map +1 -0
- package/dist/browser-host/sdf-worker.d.ts +12 -0
- package/dist/browser-host/sdf-worker.d.ts.map +1 -0
- package/dist/browser-host/sdf-worker.js +39 -0
- package/dist/browser-host/sdf-worker.js.map +1 -0
- package/dist/browser-host/worker-csg-backend.d.ts +63 -0
- package/dist/browser-host/worker-csg-backend.d.ts.map +1 -0
- package/dist/browser-host/worker-csg-backend.js +92 -0
- package/dist/browser-host/worker-csg-backend.js.map +1 -0
- package/dist/browser-host/worker-sdf-backend.d.ts +26 -0
- package/dist/browser-host/worker-sdf-backend.d.ts.map +1 -0
- package/dist/browser-host/worker-sdf-backend.js +66 -0
- package/dist/browser-host/worker-sdf-backend.js.map +1 -0
- package/dist/browser.d.ts +136 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +119 -0
- package/dist/browser.js.map +1 -0
- package/dist/cad-runtime/admit-compat-lib.d.ts +29 -0
- package/dist/cad-runtime/admit-compat-lib.d.ts.map +1 -0
- package/dist/cad-runtime/admit-compat-lib.js +49 -0
- package/dist/cad-runtime/admit-compat-lib.js.map +1 -0
- package/dist/cad-runtime/backend-dispatch.d.ts +58 -0
- package/dist/cad-runtime/backend-dispatch.d.ts.map +1 -0
- package/dist/cad-runtime/backend-dispatch.js +87 -0
- package/dist/cad-runtime/backend-dispatch.js.map +1 -0
- package/dist/cad-runtime/browser-lib-loader.d.ts +76 -0
- package/dist/cad-runtime/browser-lib-loader.d.ts.map +1 -0
- package/dist/cad-runtime/browser-lib-loader.js +113 -0
- package/dist/cad-runtime/browser-lib-loader.js.map +1 -0
- package/dist/cad-runtime/content-key.d.ts +30 -0
- package/dist/cad-runtime/content-key.d.ts.map +1 -0
- package/dist/cad-runtime/content-key.js +134 -0
- package/dist/cad-runtime/content-key.js.map +1 -0
- package/dist/cad-runtime/createRuntimeWithCad.d.ts +22 -0
- package/dist/cad-runtime/createRuntimeWithCad.d.ts.map +1 -0
- package/dist/cad-runtime/createRuntimeWithCad.js +29 -0
- package/dist/cad-runtime/createRuntimeWithCad.js.map +1 -0
- package/dist/cad-runtime/direct-executor.d.ts +404 -0
- package/dist/cad-runtime/direct-executor.d.ts.map +1 -0
- package/dist/cad-runtime/direct-executor.js +1180 -0
- package/dist/cad-runtime/direct-executor.js.map +1 -0
- package/dist/cad-runtime/exec-backend.d.ts +62 -0
- package/dist/cad-runtime/exec-backend.d.ts.map +1 -0
- package/dist/cad-runtime/exec-backend.js +18 -0
- package/dist/cad-runtime/exec-backend.js.map +1 -0
- package/dist/cad-runtime/exec-backends/interp-backend.d.ts +36 -0
- package/dist/cad-runtime/exec-backends/interp-backend.d.ts.map +1 -0
- package/dist/cad-runtime/exec-backends/interp-backend.js +91 -0
- package/dist/cad-runtime/exec-backends/interp-backend.js.map +1 -0
- package/dist/cad-runtime/exec-backends/vm-backend.d.ts +19 -0
- package/dist/cad-runtime/exec-backends/vm-backend.d.ts.map +1 -0
- package/dist/cad-runtime/exec-backends/vm-backend.js +16 -0
- package/dist/cad-runtime/exec-backends/vm-backend.js.map +1 -0
- package/dist/cad-runtime/execution-limit-error.d.ts +13 -0
- package/dist/cad-runtime/execution-limit-error.d.ts.map +1 -0
- package/dist/cad-runtime/execution-limit-error.js +16 -0
- package/dist/cad-runtime/execution-limit-error.js.map +1 -0
- package/dist/cad-runtime/index.d.ts +10 -0
- package/dist/cad-runtime/index.d.ts.map +1 -0
- package/dist/cad-runtime/index.js +7 -0
- package/dist/cad-runtime/index.js.map +1 -0
- package/dist/cad-runtime/interp/closure.d.ts +39 -0
- package/dist/cad-runtime/interp/closure.d.ts.map +1 -0
- package/dist/cad-runtime/interp/closure.js +66 -0
- package/dist/cad-runtime/interp/closure.js.map +1 -0
- package/dist/cad-runtime/interp/env.d.ts +79 -0
- package/dist/cad-runtime/interp/env.d.ts.map +1 -0
- package/dist/cad-runtime/interp/env.js +76 -0
- package/dist/cad-runtime/interp/env.js.map +1 -0
- package/dist/cad-runtime/interp/eval-expr.d.ts +23 -0
- package/dist/cad-runtime/interp/eval-expr.d.ts.map +1 -0
- package/dist/cad-runtime/interp/eval-expr.js +232 -0
- package/dist/cad-runtime/interp/eval-expr.js.map +1 -0
- package/dist/cad-runtime/interp/exec-stmt.d.ts +34 -0
- package/dist/cad-runtime/interp/exec-stmt.d.ts.map +1 -0
- package/dist/cad-runtime/interp/exec-stmt.js +276 -0
- package/dist/cad-runtime/interp/exec-stmt.js.map +1 -0
- package/dist/cad-runtime/interp/signals.d.ts +31 -0
- package/dist/cad-runtime/interp/signals.d.ts.map +1 -0
- package/dist/cad-runtime/interp/signals.js +45 -0
- package/dist/cad-runtime/interp/signals.js.map +1 -0
- package/dist/cad-runtime/lib-id.d.ts +30 -0
- package/dist/cad-runtime/lib-id.d.ts.map +1 -0
- package/dist/cad-runtime/lib-id.js +94 -0
- package/dist/cad-runtime/lib-id.js.map +1 -0
- package/dist/cad-runtime/live-shapes.d.ts +94 -0
- package/dist/cad-runtime/live-shapes.d.ts.map +1 -0
- package/dist/cad-runtime/live-shapes.js +258 -0
- package/dist/cad-runtime/live-shapes.js.map +1 -0
- package/dist/cad-runtime/module-executor.d.ts +271 -0
- package/dist/cad-runtime/module-executor.d.ts.map +1 -0
- package/dist/cad-runtime/module-executor.js +630 -0
- package/dist/cad-runtime/module-executor.js.map +1 -0
- package/dist/cad-runtime/module-registry.d.ts +114 -0
- package/dist/cad-runtime/module-registry.d.ts.map +1 -0
- package/dist/cad-runtime/module-registry.js +218 -0
- package/dist/cad-runtime/module-registry.js.map +1 -0
- package/dist/cad-runtime/ports.d.ts +213 -0
- package/dist/cad-runtime/ports.d.ts.map +1 -0
- package/dist/cad-runtime/ports.js +13 -0
- package/dist/cad-runtime/ports.js.map +1 -0
- package/dist/cad-runtime/preview-exec.d.ts +50 -0
- package/dist/cad-runtime/preview-exec.d.ts.map +1 -0
- package/dist/cad-runtime/preview-exec.js +61 -0
- package/dist/cad-runtime/preview-exec.js.map +1 -0
- package/dist/cad-runtime/runtime.d.ts +575 -0
- package/dist/cad-runtime/runtime.d.ts.map +1 -0
- package/dist/cad-runtime/runtime.js +1229 -0
- package/dist/cad-runtime/runtime.js.map +1 -0
- package/dist/cad-runtime/terminal-dag.d.ts +65 -0
- package/dist/cad-runtime/terminal-dag.d.ts.map +1 -0
- package/dist/cad-runtime/terminal-dag.js +167 -0
- package/dist/cad-runtime/terminal-dag.js.map +1 -0
- package/dist/csg.d.ts +16 -0
- package/dist/csg.d.ts.map +1 -0
- package/dist/csg.js +13 -0
- package/dist/csg.js.map +1 -0
- package/dist/define-op.d.ts +163 -0
- package/dist/define-op.d.ts.map +1 -0
- package/dist/define-op.js +268 -0
- package/dist/define-op.js.map +1 -0
- package/dist/faqts/browser.d.ts +16 -0
- package/dist/faqts/browser.d.ts.map +1 -0
- package/dist/faqts/browser.js +13 -0
- package/dist/faqts/browser.js.map +1 -0
- package/dist/faqts/exec-blob.d.ts +14 -0
- package/dist/faqts/exec-blob.d.ts.map +1 -0
- package/dist/faqts/exec-blob.js +22 -0
- package/dist/faqts/exec-blob.js.map +1 -0
- package/dist/faqts/exec-node.d.ts +15 -0
- package/dist/faqts/exec-node.d.ts.map +1 -0
- package/dist/faqts/exec-node.js +29 -0
- package/dist/faqts/exec-node.js.map +1 -0
- package/dist/faqts/imports.d.ts +74 -0
- package/dist/faqts/imports.d.ts.map +1 -0
- package/dist/faqts/imports.js +95 -0
- package/dist/faqts/imports.js.map +1 -0
- package/dist/faqts/index.d.ts +22 -0
- package/dist/faqts/index.d.ts.map +1 -0
- package/dist/faqts/index.js +21 -0
- package/dist/faqts/index.js.map +1 -0
- package/dist/faqts/node.d.ts +23 -0
- package/dist/faqts/node.d.ts.map +1 -0
- package/dist/faqts/node.js +23 -0
- package/dist/faqts/node.js.map +1 -0
- package/dist/faqts/run.d.ts +62 -0
- package/dist/faqts/run.d.ts.map +1 -0
- package/dist/faqts/run.js +62 -0
- package/dist/faqts/run.js.map +1 -0
- package/dist/faqts/transform.d.ts +43 -0
- package/dist/faqts/transform.d.ts.map +1 -0
- package/dist/faqts/transform.js +35 -0
- package/dist/faqts/transform.js.map +1 -0
- package/dist/fcstd/build-fai-zip.d.ts +29 -0
- package/dist/fcstd/build-fai-zip.d.ts.map +1 -0
- package/dist/fcstd/build-fai-zip.js +98 -0
- package/dist/fcstd/build-fai-zip.js.map +1 -0
- package/dist/fcstd/codegen.d.ts +57 -0
- package/dist/fcstd/codegen.d.ts.map +1 -0
- package/dist/fcstd/codegen.js +487 -0
- package/dist/fcstd/codegen.js.map +1 -0
- package/dist/fcstd/container.d.ts +60 -0
- package/dist/fcstd/container.d.ts.map +1 -0
- package/dist/fcstd/container.js +25 -0
- package/dist/fcstd/container.js.map +1 -0
- package/dist/fcstd/contour.d.ts +35 -0
- package/dist/fcstd/contour.d.ts.map +1 -0
- package/dist/fcstd/contour.js +86 -0
- package/dist/fcstd/contour.js.map +1 -0
- package/dist/fcstd/convert.d.ts +34 -0
- package/dist/fcstd/convert.d.ts.map +1 -0
- package/dist/fcstd/convert.js +223 -0
- package/dist/fcstd/convert.js.map +1 -0
- package/dist/fcstd/document.d.ts +41 -0
- package/dist/fcstd/document.d.ts.map +1 -0
- package/dist/fcstd/document.js +137 -0
- package/dist/fcstd/document.js.map +1 -0
- package/dist/fcstd/expressions.d.ts +37 -0
- package/dist/fcstd/expressions.d.ts.map +1 -0
- package/dist/fcstd/expressions.js +56 -0
- package/dist/fcstd/expressions.js.map +1 -0
- package/dist/fcstd/external-geo.d.ts +24 -0
- package/dist/fcstd/external-geo.d.ts.map +1 -0
- package/dist/fcstd/external-geo.js +119 -0
- package/dist/fcstd/external-geo.js.map +1 -0
- package/dist/fcstd/feature-translate.d.ts +107 -0
- package/dist/fcstd/feature-translate.d.ts.map +1 -0
- package/dist/fcstd/feature-translate.js +774 -0
- package/dist/fcstd/feature-translate.js.map +1 -0
- package/dist/fcstd/placement.d.ts +50 -0
- package/dist/fcstd/placement.d.ts.map +1 -0
- package/dist/fcstd/placement.js +77 -0
- package/dist/fcstd/placement.js.map +1 -0
- package/dist/fcstd/planegcs-backend.d.ts +19 -0
- package/dist/fcstd/planegcs-backend.d.ts.map +1 -0
- package/dist/fcstd/planegcs-backend.js +611 -0
- package/dist/fcstd/planegcs-backend.js.map +1 -0
- package/dist/fcstd/sketch-parse.d.ts +138 -0
- package/dist/fcstd/sketch-parse.d.ts.map +1 -0
- package/dist/fcstd/sketch-parse.js +201 -0
- package/dist/fcstd/sketch-parse.js.map +1 -0
- package/dist/fcstd/sketch-solver.d.ts +45 -0
- package/dist/fcstd/sketch-solver.d.ts.map +1 -0
- package/dist/fcstd/sketch-solver.js +23 -0
- package/dist/fcstd/sketch-solver.js.map +1 -0
- package/dist/fcstd/sketch-verify.d.ts +25 -0
- package/dist/fcstd/sketch-verify.d.ts.map +1 -0
- package/dist/fcstd/sketch-verify.js +49 -0
- package/dist/fcstd/sketch-verify.js.map +1 -0
- package/dist/fcstd/unpack.d.ts +25 -0
- package/dist/fcstd/unpack.d.ts.map +1 -0
- package/dist/fcstd/unpack.js +55 -0
- package/dist/fcstd/unpack.js.map +1 -0
- package/dist/identity.d.ts +229 -0
- package/dist/identity.d.ts.map +1 -0
- package/dist/identity.js +229 -0
- package/dist/identity.js.map +1 -0
- package/dist/index.d.ts +125 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +121 -0
- package/dist/index.js.map +1 -0
- package/dist/lang/allocate-id.d.ts +69 -0
- package/dist/lang/allocate-id.d.ts.map +1 -0
- package/dist/lang/allocate-id.js +82 -0
- package/dist/lang/allocate-id.js.map +1 -0
- package/dist/lang/code-to-args.d.ts +58 -0
- package/dist/lang/code-to-args.d.ts.map +1 -0
- package/dist/lang/code-to-args.js +124 -0
- package/dist/lang/code-to-args.js.map +1 -0
- package/dist/lang/codegen.d.ts +72 -0
- package/dist/lang/codegen.d.ts.map +1 -0
- package/dist/lang/codegen.js +148 -0
- package/dist/lang/codegen.js.map +1 -0
- package/dist/lang/compile.d.ts +50 -0
- package/dist/lang/compile.d.ts.map +1 -0
- package/dist/lang/compile.js +368 -0
- package/dist/lang/compile.js.map +1 -0
- package/dist/lang/expr-validate.d.ts +41 -0
- package/dist/lang/expr-validate.d.ts.map +1 -0
- package/dist/lang/expr-validate.js +96 -0
- package/dist/lang/expr-validate.js.map +1 -0
- package/dist/lang/fnv-hash.d.ts +13 -0
- package/dist/lang/fnv-hash.d.ts.map +1 -0
- package/dist/lang/fnv-hash.js +20 -0
- package/dist/lang/fnv-hash.js.map +1 -0
- package/dist/lang/host-arg.d.ts +154 -0
- package/dist/lang/host-arg.d.ts.map +1 -0
- package/dist/lang/host-arg.js +216 -0
- package/dist/lang/host-arg.js.map +1 -0
- package/dist/lang/keep.d.ts +109 -0
- package/dist/lang/keep.d.ts.map +1 -0
- package/dist/lang/keep.js +226 -0
- package/dist/lang/keep.js.map +1 -0
- package/dist/lang/metadata-extractor.d.ts +203 -0
- package/dist/lang/metadata-extractor.d.ts.map +1 -0
- package/dist/lang/metadata-extractor.js +1377 -0
- package/dist/lang/metadata-extractor.js.map +1 -0
- package/dist/lang/parse-error.d.ts +39 -0
- package/dist/lang/parse-error.d.ts.map +1 -0
- package/dist/lang/parse-error.js +28 -0
- package/dist/lang/parse-error.js.map +1 -0
- package/dist/lang/parser.d.ts +91 -0
- package/dist/lang/parser.d.ts.map +1 -0
- package/dist/lang/parser.js +1594 -0
- package/dist/lang/parser.js.map +1 -0
- package/dist/lang/security-scanner.d.ts +104 -0
- package/dist/lang/security-scanner.d.ts.map +1 -0
- package/dist/lang/security-scanner.js +773 -0
- package/dist/lang/security-scanner.js.map +1 -0
- package/dist/lang/source-edit.d.ts +80 -0
- package/dist/lang/source-edit.d.ts.map +1 -0
- package/dist/lang/source-edit.js +96 -0
- package/dist/lang/source-edit.js.map +1 -0
- package/dist/lang/statement-summary.d.ts +84 -0
- package/dist/lang/statement-summary.d.ts.map +1 -0
- package/dist/lang/statement-summary.js +28 -0
- package/dist/lang/statement-summary.js.map +1 -0
- package/dist/lang/symbol-table.d.ts +28 -0
- package/dist/lang/symbol-table.d.ts.map +1 -0
- package/dist/lang/symbol-table.generated.d.ts +80 -0
- package/dist/lang/symbol-table.generated.d.ts.map +1 -0
- package/dist/lang/symbol-table.generated.js +79 -0
- package/dist/lang/symbol-table.generated.js.map +1 -0
- package/dist/lang/symbol-table.js +27 -0
- package/dist/lang/symbol-table.js.map +1 -0
- package/dist/lang/types.d.ts +57 -0
- package/dist/lang/types.d.ts.map +1 -0
- package/dist/lang/types.js +13 -0
- package/dist/lang/types.js.map +1 -0
- package/dist/mesh/boolean.d.ts +34 -0
- package/dist/mesh/boolean.d.ts.map +1 -0
- package/dist/mesh/boolean.js +41 -0
- package/dist/mesh/boolean.js.map +1 -0
- package/dist/mesh/drill-hole/DrillHoleCore.d.ts +90 -0
- package/dist/mesh/drill-hole/DrillHoleCore.d.ts.map +1 -0
- package/dist/mesh/drill-hole/DrillHoleCore.js +287 -0
- package/dist/mesh/drill-hole/DrillHoleCore.js.map +1 -0
- package/dist/mesh/drill-hole/drill-types.d.ts +34 -0
- package/dist/mesh/drill-hole/drill-types.d.ts.map +1 -0
- package/dist/mesh/drill-hole/drill-types.js +7 -0
- package/dist/mesh/drill-hole/drill-types.js.map +1 -0
- package/dist/mesh/engrave.d.ts +36 -0
- package/dist/mesh/engrave.d.ts.map +1 -0
- package/dist/mesh/engrave.js +154 -0
- package/dist/mesh/engrave.js.map +1 -0
- package/dist/mesh/fai_drill.d.ts +21 -0
- package/dist/mesh/fai_drill.d.ts.map +1 -0
- package/dist/mesh/fai_drill.js +92 -0
- package/dist/mesh/fai_drill.js.map +1 -0
- package/dist/mesh/fai_extrude.d.ts +24 -0
- package/dist/mesh/fai_extrude.d.ts.map +1 -0
- package/dist/mesh/fai_extrude.js +42 -0
- package/dist/mesh/fai_extrude.js.map +1 -0
- package/dist/mesh/fai_split.d.ts +164 -0
- package/dist/mesh/fai_split.d.ts.map +1 -0
- package/dist/mesh/fai_split.js +269 -0
- package/dist/mesh/fai_split.js.map +1 -0
- package/dist/mesh/index.d.ts +84 -0
- package/dist/mesh/index.d.ts.map +1 -0
- package/dist/mesh/index.js +95 -0
- package/dist/mesh/index.js.map +1 -0
- package/dist/mesh/io.d.ts +17 -0
- package/dist/mesh/io.d.ts.map +1 -0
- package/dist/mesh/io.js +33 -0
- package/dist/mesh/io.js.map +1 -0
- package/dist/mesh/knurl/KnurlGenerator.d.ts +77 -0
- package/dist/mesh/knurl/KnurlGenerator.d.ts.map +1 -0
- package/dist/mesh/knurl/KnurlGenerator.js +116 -0
- package/dist/mesh/knurl/KnurlGenerator.js.map +1 -0
- package/dist/mesh/knurl/displacement.d.ts +53 -0
- package/dist/mesh/knurl/displacement.d.ts.map +1 -0
- package/dist/mesh/knurl/displacement.js +274 -0
- package/dist/mesh/knurl/displacement.js.map +1 -0
- package/dist/mesh/knurl/mapping.d.ts +104 -0
- package/dist/mesh/knurl/mapping.d.ts.map +1 -0
- package/dist/mesh/knurl/mapping.js +307 -0
- package/dist/mesh/knurl/mapping.js.map +1 -0
- package/dist/mesh/knurl/meshIndex.d.ts +63 -0
- package/dist/mesh/knurl/meshIndex.d.ts.map +1 -0
- package/dist/mesh/knurl/meshIndex.js +134 -0
- package/dist/mesh/knurl/meshIndex.js.map +1 -0
- package/dist/mesh/knurl/subdivision.d.ts +54 -0
- package/dist/mesh/knurl/subdivision.d.ts.map +1 -0
- package/dist/mesh/knurl/subdivision.js +517 -0
- package/dist/mesh/knurl/subdivision.js.map +1 -0
- package/dist/mesh/knurl/textureLoader.d.ts +38 -0
- package/dist/mesh/knurl/textureLoader.d.ts.map +1 -0
- package/dist/mesh/knurl/textureLoader.js +40 -0
- package/dist/mesh/knurl/textureLoader.js.map +1 -0
- package/dist/mesh/manifold-loader.d.ts +41 -0
- package/dist/mesh/manifold-loader.d.ts.map +1 -0
- package/dist/mesh/manifold-loader.js +56 -0
- package/dist/mesh/manifold-loader.js.map +1 -0
- package/dist/mesh/primitives.d.ts +104 -0
- package/dist/mesh/primitives.d.ts.map +1 -0
- package/dist/mesh/primitives.js +275 -0
- package/dist/mesh/primitives.js.map +1 -0
- package/dist/mesh/query.d.ts +43 -0
- package/dist/mesh/query.d.ts.map +1 -0
- package/dist/mesh/query.js +124 -0
- package/dist/mesh/query.js.map +1 -0
- package/dist/mesh/reconcile.d.ts +84 -0
- package/dist/mesh/reconcile.d.ts.map +1 -0
- package/dist/mesh/reconcile.js +261 -0
- package/dist/mesh/reconcile.js.map +1 -0
- package/dist/mesh/rigid-transform.d.ts +28 -0
- package/dist/mesh/rigid-transform.d.ts.map +1 -0
- package/dist/mesh/rigid-transform.js +51 -0
- package/dist/mesh/rigid-transform.js.map +1 -0
- package/dist/mesh/transform.d.ts +57 -0
- package/dist/mesh/transform.d.ts.map +1 -0
- package/dist/mesh/transform.js +102 -0
- package/dist/mesh/transform.js.map +1 -0
- package/dist/mesh/types.d.ts +279 -0
- package/dist/mesh/types.d.ts.map +1 -0
- package/dist/mesh/types.js +46 -0
- package/dist/mesh/types.js.map +1 -0
- package/dist/module-resolver/index.d.ts +8 -0
- package/dist/module-resolver/index.d.ts.map +1 -0
- package/dist/module-resolver/index.js +8 -0
- package/dist/module-resolver/index.js.map +1 -0
- package/dist/module-resolver/resolver.d.ts +112 -0
- package/dist/module-resolver/resolver.d.ts.map +1 -0
- package/dist/module-resolver/resolver.js +226 -0
- package/dist/module-resolver/resolver.js.map +1 -0
- package/dist/module-resolver/version.d.ts +46 -0
- package/dist/module-resolver/version.d.ts.map +1 -0
- package/dist/module-resolver/version.js +187 -0
- package/dist/module-resolver/version.js.map +1 -0
- package/dist/node-host/cli-event-sink.d.ts +25 -0
- package/dist/node-host/cli-event-sink.d.ts.map +1 -0
- package/dist/node-host/cli-event-sink.js +22 -0
- package/dist/node-host/cli-event-sink.js.map +1 -0
- package/dist/node-host/cli.d.ts +168 -0
- package/dist/node-host/cli.d.ts.map +1 -0
- package/dist/node-host/cli.js +646 -0
- package/dist/node-host/cli.js.map +1 -0
- package/dist/node-host/fs-asset-resolver.d.ts +55 -0
- package/dist/node-host/fs-asset-resolver.d.ts.map +1 -0
- package/dist/node-host/fs-asset-resolver.js +107 -0
- package/dist/node-host/fs-asset-resolver.js.map +1 -0
- package/dist/node-host/fs-project-loader.d.ts +40 -0
- package/dist/node-host/fs-project-loader.d.ts.map +1 -0
- package/dist/node-host/fs-project-loader.js +112 -0
- package/dist/node-host/fs-project-loader.js.map +1 -0
- package/dist/node-host/index.d.ts +46 -0
- package/dist/node-host/index.d.ts.map +1 -0
- package/dist/node-host/index.js +56 -0
- package/dist/node-host/index.js.map +1 -0
- package/dist/node-host/node-font-provider.d.ts +50 -0
- package/dist/node-host/node-font-provider.d.ts.map +1 -0
- package/dist/node-host/node-font-provider.js +87 -0
- package/dist/node-host/node-font-provider.js.map +1 -0
- package/dist/node.d.ts +23 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/node.js +23 -0
- package/dist/node.js.map +1 -0
- package/dist/occt-kernel/highLevelApi.d.ts +106 -0
- package/dist/occt-kernel/highLevelApi.d.ts.map +1 -0
- package/dist/occt-kernel/highLevelApi.js +149 -0
- package/dist/occt-kernel/highLevelApi.js.map +1 -0
- package/dist/occt-kernel/meshReconstruct.d.ts +75 -0
- package/dist/occt-kernel/meshReconstruct.d.ts.map +1 -0
- package/dist/occt-kernel/meshReconstruct.js +196 -0
- package/dist/occt-kernel/meshReconstruct.js.map +1 -0
- package/dist/occt-kernel/occtKernel.d.ts +174 -0
- package/dist/occt-kernel/occtKernel.d.ts.map +1 -0
- package/dist/occt-kernel/occtKernel.js +400 -0
- package/dist/occt-kernel/occtKernel.js.map +1 -0
- package/dist/occt-kernel/stepColorParser.d.ts +54 -0
- package/dist/occt-kernel/stepColorParser.d.ts.map +1 -0
- package/dist/occt-kernel/stepColorParser.js +139 -0
- package/dist/occt-kernel/stepColorParser.js.map +1 -0
- package/dist/occt-kernel/topologyExt.d.ts +80 -0
- package/dist/occt-kernel/topologyExt.d.ts.map +1 -0
- package/dist/occt-kernel/topologyExt.js +1295 -0
- package/dist/occt-kernel/topologyExt.js.map +1 -0
- package/dist/primitives/brep-primitives.d.ts +104 -0
- package/dist/primitives/brep-primitives.d.ts.map +1 -0
- package/dist/primitives/brep-primitives.js +297 -0
- package/dist/primitives/brep-primitives.js.map +1 -0
- package/dist/primitives/mesh-primitives.d.ts +38 -0
- package/dist/primitives/mesh-primitives.d.ts.map +1 -0
- package/dist/primitives/mesh-primitives.js +160 -0
- package/dist/primitives/mesh-primitives.js.map +1 -0
- package/dist/primitives/parse-svg-size.d.ts +18 -0
- package/dist/primitives/parse-svg-size.d.ts.map +1 -0
- package/dist/primitives/parse-svg-size.js +31 -0
- package/dist/primitives/parse-svg-size.js.map +1 -0
- package/dist/primitives/screw/screw-db.d.ts +86 -0
- package/dist/primitives/screw/screw-db.d.ts.map +1 -0
- package/dist/primitives/screw/screw-db.js +95 -0
- package/dist/primitives/screw/screw-db.js.map +1 -0
- package/dist/primitives/screw/screw.d.ts +13 -0
- package/dist/primitives/screw/screw.d.ts.map +1 -0
- package/dist/primitives/screw/screw.js +176 -0
- package/dist/primitives/screw/screw.js.map +1 -0
- package/dist/primitives/svg-extrude.d.ts +43 -0
- package/dist/primitives/svg-extrude.d.ts.map +1 -0
- package/dist/primitives/svg-extrude.js +78 -0
- package/dist/primitives/svg-extrude.js.map +1 -0
- package/dist/primitives/text/cjk.d.ts +61 -0
- package/dist/primitives/text/cjk.d.ts.map +1 -0
- package/dist/primitives/text/cjk.js +215 -0
- package/dist/primitives/text/cjk.js.map +1 -0
- package/dist/primitives/text-geometry.d.ts +47 -0
- package/dist/primitives/text-geometry.d.ts.map +1 -0
- package/dist/primitives/text-geometry.js +127 -0
- package/dist/primitives/text-geometry.js.map +1 -0
- package/dist/primitives/types.d.ts +56 -0
- package/dist/primitives/types.d.ts.map +1 -0
- package/dist/primitives/types.js +25 -0
- package/dist/primitives/types.js.map +1 -0
- package/dist/runtime-state.d.ts +303 -0
- package/dist/runtime-state.d.ts.map +1 -0
- package/dist/runtime-state.js +316 -0
- package/dist/runtime-state.js.map +1 -0
- package/dist/sdf/sdf-core.d.ts +67 -0
- package/dist/sdf/sdf-core.d.ts.map +1 -0
- package/dist/sdf/sdf-core.js +118 -0
- package/dist/sdf/sdf-core.js.map +1 -0
- package/dist/sdf/sdf-runner.d.ts +33 -0
- package/dist/sdf/sdf-runner.d.ts.map +1 -0
- package/dist/sdf/sdf-runner.js +45 -0
- package/dist/sdf/sdf-runner.js.map +1 -0
- package/dist/sdf/templates.d.ts +7 -0
- package/dist/sdf/templates.d.ts.map +1 -0
- package/dist/sdf/templates.js +282 -0
- package/dist/sdf/templates.js.map +1 -0
- package/dist/sdf/types.d.ts +114 -0
- package/dist/sdf/types.d.ts.map +1 -0
- package/dist/sdf/types.js +97 -0
- package/dist/sdf/types.js.map +1 -0
- package/dist/sdf.d.ts +12 -0
- package/dist/sdf.d.ts.map +1 -0
- package/dist/sdf.js +10 -0
- package/dist/sdf.js.map +1 -0
- package/dist/sdk.d.ts +30 -0
- package/dist/sdk.d.ts.map +1 -0
- package/dist/sdk.js +34 -0
- package/dist/sdk.js.map +1 -0
- package/dist/shape.d.ts +121 -0
- package/dist/shape.d.ts.map +1 -0
- package/dist/shape.js +145 -0
- package/dist/shape.js.map +1 -0
- package/dist/test-helpers.d.ts +31 -0
- package/dist/test-helpers.d.ts.map +1 -0
- package/dist/test-helpers.js +55 -0
- package/dist/test-helpers.js.map +1 -0
- package/dist/topology/build-face-ids.d.ts +35 -0
- package/dist/topology/build-face-ids.d.ts.map +1 -0
- package/dist/topology/build-face-ids.js +70 -0
- package/dist/topology/build-face-ids.js.map +1 -0
- package/dist/topology/build-logical-points.d.ts +68 -0
- package/dist/topology/build-logical-points.d.ts.map +1 -0
- package/dist/topology/build-logical-points.js +169 -0
- package/dist/topology/build-logical-points.js.map +1 -0
- package/dist/topology/build-selector-runtime.d.ts +82 -0
- package/dist/topology/build-selector-runtime.d.ts.map +1 -0
- package/dist/topology/build-selector-runtime.js +601 -0
- package/dist/topology/build-selector-runtime.js.map +1 -0
- package/dist/topology/naming/build-naming.d.ts +89 -0
- package/dist/topology/naming/build-naming.d.ts.map +1 -0
- package/dist/topology/naming/build-naming.js +107 -0
- package/dist/topology/naming/build-naming.js.map +1 -0
- package/dist/topology/naming/capture-topo-ref.d.ts +22 -0
- package/dist/topology/naming/capture-topo-ref.d.ts.map +1 -0
- package/dist/topology/naming/capture-topo-ref.js +34 -0
- package/dist/topology/naming/capture-topo-ref.js.map +1 -0
- package/dist/topology/naming/geom-hint.d.ts +92 -0
- package/dist/topology/naming/geom-hint.d.ts.map +1 -0
- package/dist/topology/naming/geom-hint.js +254 -0
- package/dist/topology/naming/geom-hint.js.map +1 -0
- package/dist/topology/naming/index.d.ts +19 -0
- package/dist/topology/naming/index.d.ts.map +1 -0
- package/dist/topology/naming/index.js +19 -0
- package/dist/topology/naming/index.js.map +1 -0
- package/dist/topology/naming/ref-params.d.ts +49 -0
- package/dist/topology/naming/ref-params.d.ts.map +1 -0
- package/dist/topology/naming/ref-params.js +92 -0
- package/dist/topology/naming/ref-params.js.map +1 -0
- package/dist/topology/naming/resolve-derived.d.ts +23 -0
- package/dist/topology/naming/resolve-derived.d.ts.map +1 -0
- package/dist/topology/naming/resolve-derived.js +128 -0
- package/dist/topology/naming/resolve-derived.js.map +1 -0
- package/dist/topology/naming/resolve-edge.d.ts +36 -0
- package/dist/topology/naming/resolve-edge.d.ts.map +1 -0
- package/dist/topology/naming/resolve-edge.js +138 -0
- package/dist/topology/naming/resolve-edge.js.map +1 -0
- package/dist/topology/naming/resolve-face.d.ts +89 -0
- package/dist/topology/naming/resolve-face.d.ts.map +1 -0
- package/dist/topology/naming/resolve-face.js +107 -0
- package/dist/topology/naming/resolve-face.js.map +1 -0
- package/dist/topology/naming/resolve-vertex.d.ts +27 -0
- package/dist/topology/naming/resolve-vertex.d.ts.map +1 -0
- package/dist/topology/naming/resolve-vertex.js +115 -0
- package/dist/topology/naming/resolve-vertex.js.map +1 -0
- package/dist/topology/naming/resolver.d.ts +40 -0
- package/dist/topology/naming/resolver.d.ts.map +1 -0
- package/dist/topology/naming/resolver.js +71 -0
- package/dist/topology/naming/resolver.js.map +1 -0
- package/dist/topology/naming/roles.d.ts +111 -0
- package/dist/topology/naming/roles.d.ts.map +1 -0
- package/dist/topology/naming/roles.js +271 -0
- package/dist/topology/naming/roles.js.map +1 -0
- package/dist/topology/naming/score.d.ts +60 -0
- package/dist/topology/naming/score.d.ts.map +1 -0
- package/dist/topology/naming/score.js +121 -0
- package/dist/topology/naming/score.js.map +1 -0
- package/dist/topology/naming/types.d.ts +142 -0
- package/dist/topology/naming/types.d.ts.map +1 -0
- package/dist/topology/naming/types.js +27 -0
- package/dist/topology/naming/types.js.map +1 -0
- package/dist/topology/types.d.ts +225 -0
- package/dist/topology/types.d.ts.map +1 -0
- package/dist/topology/types.js +2 -0
- package/dist/topology/types.js.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/baseSketcher2d.d.ts +106 -0
- package/dist/vendored/brepjs/2d/blueprints/baseSketcher2d.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/baseSketcher2d.js +341 -0
- package/dist/vendored/brepjs/2d/blueprints/baseSketcher2d.js.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/blueprint.d.ts +185 -0
- package/dist/vendored/brepjs/2d/blueprints/blueprint.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/blueprint.js +361 -0
- package/dist/vendored/brepjs/2d/blueprints/blueprint.js.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/blueprintApproximations.d.ts +15 -0
- package/dist/vendored/brepjs/2d/blueprints/blueprintApproximations.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/blueprintApproximations.js +28 -0
- package/dist/vendored/brepjs/2d/blueprints/blueprintApproximations.js.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/blueprintCustomCorners.d.ts +29 -0
- package/dist/vendored/brepjs/2d/blueprints/blueprintCustomCorners.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/blueprintCustomCorners.js +86 -0
- package/dist/vendored/brepjs/2d/blueprints/blueprintCustomCorners.js.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/blueprintFns.d.ts +57 -0
- package/dist/vendored/brepjs/2d/blueprints/blueprintFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/blueprintFns.js +92 -0
- package/dist/vendored/brepjs/2d/blueprints/blueprintFns.js.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/blueprintOffset.d.ts +58 -0
- package/dist/vendored/brepjs/2d/blueprints/blueprintOffset.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/blueprintOffset.js +346 -0
- package/dist/vendored/brepjs/2d/blueprints/blueprintOffset.js.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/blueprintSketcher.d.ts +30 -0
- package/dist/vendored/brepjs/2d/blueprints/blueprintSketcher.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/blueprintSketcher.js +45 -0
- package/dist/vendored/brepjs/2d/blueprints/blueprintSketcher.js.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/blueprints.d.ts +68 -0
- package/dist/vendored/brepjs/2d/blueprints/blueprints.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/blueprints.js +116 -0
- package/dist/vendored/brepjs/2d/blueprints/blueprints.js.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/boolean2D.d.ts +68 -0
- package/dist/vendored/brepjs/2d/blueprints/boolean2D.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/boolean2D.js +362 -0
- package/dist/vendored/brepjs/2d/blueprints/boolean2D.js.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/booleanHelpers.d.ts +34 -0
- package/dist/vendored/brepjs/2d/blueprints/booleanHelpers.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/booleanHelpers.js +176 -0
- package/dist/vendored/brepjs/2d/blueprints/booleanHelpers.js.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/booleanOperations.d.ts +55 -0
- package/dist/vendored/brepjs/2d/blueprints/booleanOperations.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/booleanOperations.js +110 -0
- package/dist/vendored/brepjs/2d/blueprints/booleanOperations.js.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/cannedBlueprints.d.ts +41 -0
- package/dist/vendored/brepjs/2d/blueprints/cannedBlueprints.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/cannedBlueprints.js +90 -0
- package/dist/vendored/brepjs/2d/blueprints/cannedBlueprints.js.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/compoundBlueprint.d.ts +85 -0
- package/dist/vendored/brepjs/2d/blueprints/compoundBlueprint.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/compoundBlueprint.js +136 -0
- package/dist/vendored/brepjs/2d/blueprints/compoundBlueprint.js.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/ellipseUtils.d.ts +48 -0
- package/dist/vendored/brepjs/2d/blueprints/ellipseUtils.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/ellipseUtils.js +154 -0
- package/dist/vendored/brepjs/2d/blueprints/ellipseUtils.js.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/genericSketcher.d.ts +342 -0
- package/dist/vendored/brepjs/2d/blueprints/genericSketcher.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/genericSketcher.js +32 -0
- package/dist/vendored/brepjs/2d/blueprints/genericSketcher.js.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/index.d.ts +16 -0
- package/dist/vendored/brepjs/2d/blueprints/index.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/index.js +13 -0
- package/dist/vendored/brepjs/2d/blueprints/index.js.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/intersectionSegments.d.ts +18 -0
- package/dist/vendored/brepjs/2d/blueprints/intersectionSegments.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/intersectionSegments.js +230 -0
- package/dist/vendored/brepjs/2d/blueprints/intersectionSegments.js.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/lib.d.ts +73 -0
- package/dist/vendored/brepjs/2d/blueprints/lib.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/lib.js +103 -0
- package/dist/vendored/brepjs/2d/blueprints/lib.js.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/segmentAssembly.d.ts +31 -0
- package/dist/vendored/brepjs/2d/blueprints/segmentAssembly.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/segmentAssembly.js +226 -0
- package/dist/vendored/brepjs/2d/blueprints/segmentAssembly.js.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/svg.d.ts +22 -0
- package/dist/vendored/brepjs/2d/blueprints/svg.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/blueprints/svg.js +30 -0
- package/dist/vendored/brepjs/2d/blueprints/svg.js.map +1 -0
- package/dist/vendored/brepjs/2d/curve2dGeometryFns.d.ts +124 -0
- package/dist/vendored/brepjs/2d/curve2dGeometryFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/curve2dGeometryFns.js +235 -0
- package/dist/vendored/brepjs/2d/curve2dGeometryFns.js.map +1 -0
- package/dist/vendored/brepjs/2d/curves.d.ts +45 -0
- package/dist/vendored/brepjs/2d/curves.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/curves.js +139 -0
- package/dist/vendored/brepjs/2d/curves.js.map +1 -0
- package/dist/vendored/brepjs/2d/lib/approximations.d.ts +47 -0
- package/dist/vendored/brepjs/2d/lib/approximations.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/lib/approximations.js +82 -0
- package/dist/vendored/brepjs/2d/lib/approximations.js.map +1 -0
- package/dist/vendored/brepjs/2d/lib/boundingBox2d.d.ts +39 -0
- package/dist/vendored/brepjs/2d/lib/boundingBox2d.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/lib/boundingBox2d.js +88 -0
- package/dist/vendored/brepjs/2d/lib/boundingBox2d.js.map +1 -0
- package/dist/vendored/brepjs/2d/lib/curve2D.d.ts +82 -0
- package/dist/vendored/brepjs/2d/lib/curve2D.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/lib/curve2D.js +258 -0
- package/dist/vendored/brepjs/2d/lib/curve2D.js.map +1 -0
- package/dist/vendored/brepjs/2d/lib/curve2dFns.d.ts +53 -0
- package/dist/vendored/brepjs/2d/lib/curve2dFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/lib/curve2dFns.js +69 -0
- package/dist/vendored/brepjs/2d/lib/curve2dFns.js.map +1 -0
- package/dist/vendored/brepjs/2d/lib/customCorners.d.ts +29 -0
- package/dist/vendored/brepjs/2d/lib/customCorners.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/lib/customCorners.js +237 -0
- package/dist/vendored/brepjs/2d/lib/customCorners.js.map +1 -0
- package/dist/vendored/brepjs/2d/lib/definitions.d.ts +12 -0
- package/dist/vendored/brepjs/2d/lib/definitions.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/lib/definitions.js +19 -0
- package/dist/vendored/brepjs/2d/lib/definitions.js.map +1 -0
- package/dist/vendored/brepjs/2d/lib/ellipseArcFlags.d.ts +21 -0
- package/dist/vendored/brepjs/2d/lib/ellipseArcFlags.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/lib/ellipseArcFlags.js +71 -0
- package/dist/vendored/brepjs/2d/lib/ellipseArcFlags.js.map +1 -0
- package/dist/vendored/brepjs/2d/lib/index.d.ts +14 -0
- package/dist/vendored/brepjs/2d/lib/index.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/lib/index.js +14 -0
- package/dist/vendored/brepjs/2d/lib/index.js.map +1 -0
- package/dist/vendored/brepjs/2d/lib/intersections.d.ts +34 -0
- package/dist/vendored/brepjs/2d/lib/intersections.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/lib/intersections.js +77 -0
- package/dist/vendored/brepjs/2d/lib/intersections.js.map +1 -0
- package/dist/vendored/brepjs/2d/lib/makeCurves.d.ts +63 -0
- package/dist/vendored/brepjs/2d/lib/makeCurves.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/lib/makeCurves.js +117 -0
- package/dist/vendored/brepjs/2d/lib/makeCurves.js.map +1 -0
- package/dist/vendored/brepjs/2d/lib/offset.d.ts +30 -0
- package/dist/vendored/brepjs/2d/lib/offset.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/lib/offset.js +109 -0
- package/dist/vendored/brepjs/2d/lib/offset.js.map +1 -0
- package/dist/vendored/brepjs/2d/lib/precision.d.ts +12 -0
- package/dist/vendored/brepjs/2d/lib/precision.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/lib/precision.js +12 -0
- package/dist/vendored/brepjs/2d/lib/precision.js.map +1 -0
- package/dist/vendored/brepjs/2d/lib/stitching.d.ts +15 -0
- package/dist/vendored/brepjs/2d/lib/stitching.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/lib/stitching.js +67 -0
- package/dist/vendored/brepjs/2d/lib/stitching.js.map +1 -0
- package/dist/vendored/brepjs/2d/lib/svgPath.d.ts +4 -0
- package/dist/vendored/brepjs/2d/lib/svgPath.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/lib/svgPath.js +114 -0
- package/dist/vendored/brepjs/2d/lib/svgPath.js.map +1 -0
- package/dist/vendored/brepjs/2d/lib/utils.d.ts +11 -0
- package/dist/vendored/brepjs/2d/lib/utils.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/lib/utils.js +24 -0
- package/dist/vendored/brepjs/2d/lib/utils.js.map +1 -0
- package/dist/vendored/brepjs/2d/lib/vectorOperations.d.ts +19 -0
- package/dist/vendored/brepjs/2d/lib/vectorOperations.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d/lib/vectorOperations.js +26 -0
- package/dist/vendored/brepjs/2d/lib/vectorOperations.js.map +1 -0
- package/dist/vendored/brepjs/2d.d.ts +26 -0
- package/dist/vendored/brepjs/2d.d.ts.map +1 -0
- package/dist/vendored/brepjs/2d.js +33 -0
- package/dist/vendored/brepjs/2d.js.map +1 -0
- package/dist/vendored/brepjs/core/constants.d.ts +7 -0
- package/dist/vendored/brepjs/core/constants.d.ts.map +1 -0
- package/dist/vendored/brepjs/core/constants.js +7 -0
- package/dist/vendored/brepjs/core/constants.js.map +1 -0
- package/dist/vendored/brepjs/core/curve2dHandle.d.ts +35 -0
- package/dist/vendored/brepjs/core/curve2dHandle.d.ts.map +1 -0
- package/dist/vendored/brepjs/core/curve2dHandle.js +48 -0
- package/dist/vendored/brepjs/core/curve2dHandle.js.map +1 -0
- package/dist/vendored/brepjs/core/dimensionTypes.d.ts +61 -0
- package/dist/vendored/brepjs/core/dimensionTypes.d.ts.map +1 -0
- package/dist/vendored/brepjs/core/dimensionTypes.js +54 -0
- package/dist/vendored/brepjs/core/dimensionTypes.js.map +1 -0
- package/dist/vendored/brepjs/core/disposal.d.ts +136 -0
- package/dist/vendored/brepjs/core/disposal.d.ts.map +1 -0
- package/dist/vendored/brepjs/core/disposal.js +441 -0
- package/dist/vendored/brepjs/core/disposal.js.map +1 -0
- package/dist/vendored/brepjs/core/errors.d.ts +191 -0
- package/dist/vendored/brepjs/core/errors.d.ts.map +1 -0
- package/dist/vendored/brepjs/core/errors.js +238 -0
- package/dist/vendored/brepjs/core/errors.js.map +1 -0
- package/dist/vendored/brepjs/core/kernelBoundary.d.ts +40 -0
- package/dist/vendored/brepjs/core/kernelBoundary.d.ts.map +1 -0
- package/dist/vendored/brepjs/core/kernelBoundary.js +99 -0
- package/dist/vendored/brepjs/core/kernelBoundary.js.map +1 -0
- package/dist/vendored/brepjs/core/kernelCall.d.ts +48 -0
- package/dist/vendored/brepjs/core/kernelCall.d.ts.map +1 -0
- package/dist/vendored/brepjs/core/kernelCall.js +154 -0
- package/dist/vendored/brepjs/core/kernelCall.js.map +1 -0
- package/dist/vendored/brepjs/core/kernelErrorTranslation.d.ts +17 -0
- package/dist/vendored/brepjs/core/kernelErrorTranslation.d.ts.map +1 -0
- package/dist/vendored/brepjs/core/kernelErrorTranslation.js +98 -0
- package/dist/vendored/brepjs/core/kernelErrorTranslation.js.map +1 -0
- package/dist/vendored/brepjs/core/kernelReentrancy.d.ts +41 -0
- package/dist/vendored/brepjs/core/kernelReentrancy.d.ts.map +1 -0
- package/dist/vendored/brepjs/core/kernelReentrancy.js +68 -0
- package/dist/vendored/brepjs/core/kernelReentrancy.js.map +1 -0
- package/dist/vendored/brepjs/core/planeOps.d.ts +62 -0
- package/dist/vendored/brepjs/core/planeOps.d.ts.map +1 -0
- package/dist/vendored/brepjs/core/planeOps.js +148 -0
- package/dist/vendored/brepjs/core/planeOps.js.map +1 -0
- package/dist/vendored/brepjs/core/planeTypes.d.ts +22 -0
- package/dist/vendored/brepjs/core/planeTypes.d.ts.map +1 -0
- package/dist/vendored/brepjs/core/planeTypes.js +6 -0
- package/dist/vendored/brepjs/core/planeTypes.js.map +1 -0
- package/dist/vendored/brepjs/core/result.d.ts +85 -0
- package/dist/vendored/brepjs/core/result.d.ts.map +1 -0
- package/dist/vendored/brepjs/core/result.js +212 -0
- package/dist/vendored/brepjs/core/result.js.map +1 -0
- package/dist/vendored/brepjs/core/shapeTypeCache.d.ts +27 -0
- package/dist/vendored/brepjs/core/shapeTypeCache.d.ts.map +1 -0
- package/dist/vendored/brepjs/core/shapeTypeCache.js +40 -0
- package/dist/vendored/brepjs/core/shapeTypeCache.js.map +1 -0
- package/dist/vendored/brepjs/core/shapeTypes.d.ts +199 -0
- package/dist/vendored/brepjs/core/shapeTypes.d.ts.map +1 -0
- package/dist/vendored/brepjs/core/shapeTypes.js +267 -0
- package/dist/vendored/brepjs/core/shapeTypes.js.map +1 -0
- package/dist/vendored/brepjs/core/typeDiscriminants.d.ts +25 -0
- package/dist/vendored/brepjs/core/typeDiscriminants.d.ts.map +1 -0
- package/dist/vendored/brepjs/core/typeDiscriminants.js +50 -0
- package/dist/vendored/brepjs/core/typeDiscriminants.js.map +1 -0
- package/dist/vendored/brepjs/core/types.d.ts +51 -0
- package/dist/vendored/brepjs/core/types.d.ts.map +1 -0
- package/dist/vendored/brepjs/core/types.js +35 -0
- package/dist/vendored/brepjs/core/types.js.map +1 -0
- package/dist/vendored/brepjs/core/validityTypes.d.ts +143 -0
- package/dist/vendored/brepjs/core/validityTypes.d.ts.map +1 -0
- package/dist/vendored/brepjs/core/validityTypes.js +174 -0
- package/dist/vendored/brepjs/core/validityTypes.js.map +1 -0
- package/dist/vendored/brepjs/core/vecOps.d.ts +53 -0
- package/dist/vendored/brepjs/core/vecOps.d.ts.map +1 -0
- package/dist/vendored/brepjs/core/vecOps.js +131 -0
- package/dist/vendored/brepjs/core/vecOps.js.map +1 -0
- package/dist/vendored/brepjs/core.d.ts +17 -0
- package/dist/vendored/brepjs/core.d.ts.map +1 -0
- package/dist/vendored/brepjs/core.js +13 -0
- package/dist/vendored/brepjs/core.js.map +1 -0
- package/dist/vendored/brepjs/gear/gearFns.d.ts +148 -0
- package/dist/vendored/brepjs/gear/gearFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/gear/gearFns.js +479 -0
- package/dist/vendored/brepjs/gear/gearFns.js.map +1 -0
- package/dist/vendored/brepjs/gear/gearMath.d.ts +89 -0
- package/dist/vendored/brepjs/gear/gearMath.d.ts.map +1 -0
- package/dist/vendored/brepjs/gear/gearMath.js +195 -0
- package/dist/vendored/brepjs/gear/gearMath.js.map +1 -0
- package/dist/vendored/brepjs/gear/gearProfile.d.ts +17 -0
- package/dist/vendored/brepjs/gear/gearProfile.d.ts.map +1 -0
- package/dist/vendored/brepjs/gear/gearProfile.js +159 -0
- package/dist/vendored/brepjs/gear/gearProfile.js.map +1 -0
- package/dist/vendored/brepjs/gear/index.d.ts +4 -0
- package/dist/vendored/brepjs/gear/index.d.ts.map +1 -0
- package/dist/vendored/brepjs/gear/index.js +4 -0
- package/dist/vendored/brepjs/gear/index.js.map +1 -0
- package/dist/vendored/brepjs/index.d.ts +152 -0
- package/dist/vendored/brepjs/index.d.ts.map +1 -0
- package/dist/vendored/brepjs/index.js +195 -0
- package/dist/vendored/brepjs/index.js.map +1 -0
- package/dist/vendored/brepjs/io/dxfExportFns.d.ts +74 -0
- package/dist/vendored/brepjs/io/dxfExportFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/io/dxfExportFns.js +134 -0
- package/dist/vendored/brepjs/io/dxfExportFns.js.map +1 -0
- package/dist/vendored/brepjs/io/dxfImportFns.d.ts +20 -0
- package/dist/vendored/brepjs/io/dxfImportFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/io/dxfImportFns.js +132 -0
- package/dist/vendored/brepjs/io/dxfImportFns.js.map +1 -0
- package/dist/vendored/brepjs/io/gltfExportFns.d.ts +97 -0
- package/dist/vendored/brepjs/io/gltfExportFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/io/gltfExportFns.js +460 -0
- package/dist/vendored/brepjs/io/gltfExportFns.js.map +1 -0
- package/dist/vendored/brepjs/io/gltfImportFns.d.ts +21 -0
- package/dist/vendored/brepjs/io/gltfImportFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/io/gltfImportFns.js +33 -0
- package/dist/vendored/brepjs/io/gltfImportFns.js.map +1 -0
- package/dist/vendored/brepjs/io/importFns.d.ts +56 -0
- package/dist/vendored/brepjs/io/importFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/io/importFns.js +108 -0
- package/dist/vendored/brepjs/io/importFns.js.map +1 -0
- package/dist/vendored/brepjs/io/ioUtils.d.ts +22 -0
- package/dist/vendored/brepjs/io/ioUtils.d.ts.map +1 -0
- package/dist/vendored/brepjs/io/ioUtils.js +56 -0
- package/dist/vendored/brepjs/io/ioUtils.js.map +1 -0
- package/dist/vendored/brepjs/io/objExportFns.d.ts +23 -0
- package/dist/vendored/brepjs/io/objExportFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/io/objExportFns.js +67 -0
- package/dist/vendored/brepjs/io/objExportFns.js.map +1 -0
- package/dist/vendored/brepjs/io/objImportFns.d.ts +26 -0
- package/dist/vendored/brepjs/io/objImportFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/io/objImportFns.js +96 -0
- package/dist/vendored/brepjs/io/objImportFns.js.map +1 -0
- package/dist/vendored/brepjs/io/stepConfigFns.d.ts +30 -0
- package/dist/vendored/brepjs/io/stepConfigFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/io/stepConfigFns.js +30 -0
- package/dist/vendored/brepjs/io/stepConfigFns.js.map +1 -0
- package/dist/vendored/brepjs/io/svgImportFns.d.ts +58 -0
- package/dist/vendored/brepjs/io/svgImportFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/io/svgImportFns.js +394 -0
- package/dist/vendored/brepjs/io/svgImportFns.js.map +1 -0
- package/dist/vendored/brepjs/io/threemfExportFns.d.ts +48 -0
- package/dist/vendored/brepjs/io/threemfExportFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/io/threemfExportFns.js +345 -0
- package/dist/vendored/brepjs/io/threemfExportFns.js.map +1 -0
- package/dist/vendored/brepjs/io/threemfImportFns.d.ts +22 -0
- package/dist/vendored/brepjs/io/threemfImportFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/io/threemfImportFns.js +350 -0
- package/dist/vendored/brepjs/io/threemfImportFns.js.map +1 -0
- package/dist/vendored/brepjs/io.d.ts +17 -0
- package/dist/vendored/brepjs/io.d.ts.map +1 -0
- package/dist/vendored/brepjs/io.js +20 -0
- package/dist/vendored/brepjs/io.js.map +1 -0
- package/dist/vendored/brepjs/kernel/capabilities.d.ts +36 -0
- package/dist/vendored/brepjs/kernel/capabilities.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/capabilities.js +35 -0
- package/dist/vendored/brepjs/kernel/capabilities.js.map +1 -0
- package/dist/vendored/brepjs/kernel/geometry2d.d.ts +96 -0
- package/dist/vendored/brepjs/kernel/geometry2d.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/geometry2d.js +885 -0
- package/dist/vendored/brepjs/kernel/geometry2d.js.map +1 -0
- package/dist/vendored/brepjs/kernel/hullGeometry.d.ts +23 -0
- package/dist/vendored/brepjs/kernel/hullGeometry.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/hullGeometry.js +312 -0
- package/dist/vendored/brepjs/kernel/hullGeometry.js.map +1 -0
- package/dist/vendored/brepjs/kernel/index.d.ts +61 -0
- package/dist/vendored/brepjs/kernel/index.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/index.js +93 -0
- package/dist/vendored/brepjs/kernel/index.js.map +1 -0
- package/dist/vendored/brepjs/kernel/interfaces/booleanOps.d.ts +44 -0
- package/dist/vendored/brepjs/kernel/interfaces/booleanOps.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/interfaces/booleanOps.js +11 -0
- package/dist/vendored/brepjs/kernel/interfaces/booleanOps.js.map +1 -0
- package/dist/vendored/brepjs/kernel/interfaces/builderOps.d.ts +67 -0
- package/dist/vendored/brepjs/kernel/interfaces/builderOps.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/interfaces/builderOps.js +12 -0
- package/dist/vendored/brepjs/kernel/interfaces/builderOps.js.map +1 -0
- package/dist/vendored/brepjs/kernel/interfaces/core.d.ts +46 -0
- package/dist/vendored/brepjs/kernel/interfaces/core.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/interfaces/core.js +11 -0
- package/dist/vendored/brepjs/kernel/interfaces/core.js.map +1 -0
- package/dist/vendored/brepjs/kernel/interfaces/curveOps.d.ts +53 -0
- package/dist/vendored/brepjs/kernel/interfaces/curveOps.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/interfaces/curveOps.js +12 -0
- package/dist/vendored/brepjs/kernel/interfaces/curveOps.js.map +1 -0
- package/dist/vendored/brepjs/kernel/interfaces/evolutionOps.d.ts +32 -0
- package/dist/vendored/brepjs/kernel/interfaces/evolutionOps.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/interfaces/evolutionOps.js +14 -0
- package/dist/vendored/brepjs/kernel/interfaces/evolutionOps.js.map +1 -0
- package/dist/vendored/brepjs/kernel/interfaces/index.d.ts +43 -0
- package/dist/vendored/brepjs/kernel/interfaces/index.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/interfaces/index.js +12 -0
- package/dist/vendored/brepjs/kernel/interfaces/index.js.map +1 -0
- package/dist/vendored/brepjs/kernel/interfaces/ioOps.d.ts +65 -0
- package/dist/vendored/brepjs/kernel/interfaces/ioOps.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/interfaces/ioOps.js +9 -0
- package/dist/vendored/brepjs/kernel/interfaces/ioOps.js.map +1 -0
- package/dist/vendored/brepjs/kernel/interfaces/measureOps.d.ts +55 -0
- package/dist/vendored/brepjs/kernel/interfaces/measureOps.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/interfaces/measureOps.js +9 -0
- package/dist/vendored/brepjs/kernel/interfaces/measureOps.js.map +1 -0
- package/dist/vendored/brepjs/kernel/interfaces/meshOps.d.ts +25 -0
- package/dist/vendored/brepjs/kernel/interfaces/meshOps.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/interfaces/meshOps.js +8 -0
- package/dist/vendored/brepjs/kernel/interfaces/meshOps.js.map +1 -0
- package/dist/vendored/brepjs/kernel/interfaces/modifierOps.d.ts +53 -0
- package/dist/vendored/brepjs/kernel/interfaces/modifierOps.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/interfaces/modifierOps.js +10 -0
- package/dist/vendored/brepjs/kernel/interfaces/modifierOps.js.map +1 -0
- package/dist/vendored/brepjs/kernel/interfaces/primitiveOps.d.ts +22 -0
- package/dist/vendored/brepjs/kernel/interfaces/primitiveOps.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/interfaces/primitiveOps.js +11 -0
- package/dist/vendored/brepjs/kernel/interfaces/primitiveOps.js.map +1 -0
- package/dist/vendored/brepjs/kernel/interfaces/repairOps.d.ts +43 -0
- package/dist/vendored/brepjs/kernel/interfaces/repairOps.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/interfaces/repairOps.js +9 -0
- package/dist/vendored/brepjs/kernel/interfaces/repairOps.js.map +1 -0
- package/dist/vendored/brepjs/kernel/interfaces/surfaceOps.d.ts +72 -0
- package/dist/vendored/brepjs/kernel/interfaces/surfaceOps.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/interfaces/surfaceOps.js +13 -0
- package/dist/vendored/brepjs/kernel/interfaces/surfaceOps.js.map +1 -0
- package/dist/vendored/brepjs/kernel/interfaces/sweepOps.d.ts +73 -0
- package/dist/vendored/brepjs/kernel/interfaces/sweepOps.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/interfaces/sweepOps.js +11 -0
- package/dist/vendored/brepjs/kernel/interfaces/sweepOps.js.map +1 -0
- package/dist/vendored/brepjs/kernel/interfaces/topologyOps.d.ts +62 -0
- package/dist/vendored/brepjs/kernel/interfaces/topologyOps.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/interfaces/topologyOps.js +9 -0
- package/dist/vendored/brepjs/kernel/interfaces/topologyOps.js.map +1 -0
- package/dist/vendored/brepjs/kernel/interfaces/transformOps.d.ts +80 -0
- package/dist/vendored/brepjs/kernel/interfaces/transformOps.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/interfaces/transformOps.js +11 -0
- package/dist/vendored/brepjs/kernel/interfaces/transformOps.js.map +1 -0
- package/dist/vendored/brepjs/kernel/kernel2dTypes.d.ts +145 -0
- package/dist/vendored/brepjs/kernel/kernel2dTypes.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/kernel2dTypes.js +18 -0
- package/dist/vendored/brepjs/kernel/kernel2dTypes.js.map +1 -0
- package/dist/vendored/brepjs/kernel/occt/wasmTypes/externals.d.ts +41 -0
- package/dist/vendored/brepjs/kernel/occt/wasmTypes/externals.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/occt/wasmTypes/externals.js +2 -0
- package/dist/vendored/brepjs/kernel/occt/wasmTypes/externals.js.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/adapterShims.d.ts +17 -0
- package/dist/vendored/brepjs/kernel/occtWasm/adapterShims.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/adapterShims.js +75 -0
- package/dist/vendored/brepjs/kernel/occtWasm/adapterShims.js.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/booleanOps.d.ts +36 -0
- package/dist/vendored/brepjs/kernel/occtWasm/booleanOps.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/booleanOps.js +116 -0
- package/dist/vendored/brepjs/kernel/occtWasm/booleanOps.js.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/constructionOps.d.ts +43 -0
- package/dist/vendored/brepjs/kernel/occtWasm/constructionOps.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/constructionOps.js +292 -0
- package/dist/vendored/brepjs/kernel/occtWasm/constructionOps.js.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/curveOps.d.ts +34 -0
- package/dist/vendored/brepjs/kernel/occtWasm/curveOps.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/curveOps.js +164 -0
- package/dist/vendored/brepjs/kernel/occtWasm/curveOps.js.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/evolutionOps.d.ts +26 -0
- package/dist/vendored/brepjs/kernel/occtWasm/evolutionOps.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/evolutionOps.js +256 -0
- package/dist/vendored/brepjs/kernel/occtWasm/evolutionOps.js.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/helpers.d.ts +42 -0
- package/dist/vendored/brepjs/kernel/occtWasm/helpers.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/helpers.js +146 -0
- package/dist/vendored/brepjs/kernel/occtWasm/helpers.js.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/hullOps.d.ts +17 -0
- package/dist/vendored/brepjs/kernel/occtWasm/hullOps.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/hullOps.js +55 -0
- package/dist/vendored/brepjs/kernel/occtWasm/hullOps.js.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/ioOps.d.ts +58 -0
- package/dist/vendored/brepjs/kernel/occtWasm/ioOps.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/ioOps.js +303 -0
- package/dist/vendored/brepjs/kernel/occtWasm/ioOps.js.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/kernel2dOps.d.ts +113 -0
- package/dist/vendored/brepjs/kernel/occtWasm/kernel2dOps.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/kernel2dOps.js +731 -0
- package/dist/vendored/brepjs/kernel/occtWasm/kernel2dOps.js.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/measureOps.d.ts +62 -0
- package/dist/vendored/brepjs/kernel/occtWasm/measureOps.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/measureOps.js +338 -0
- package/dist/vendored/brepjs/kernel/occtWasm/measureOps.js.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/meshOps.d.ts +12 -0
- package/dist/vendored/brepjs/kernel/occtWasm/meshOps.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/meshOps.js +120 -0
- package/dist/vendored/brepjs/kernel/occtWasm/meshOps.js.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/modifierOps.d.ts +20 -0
- package/dist/vendored/brepjs/kernel/occtWasm/modifierOps.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/modifierOps.js +187 -0
- package/dist/vendored/brepjs/kernel/occtWasm/modifierOps.js.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/occtWasmAdapter.d.ts +513 -0
- package/dist/vendored/brepjs/kernel/occtWasm/occtWasmAdapter.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/occtWasmAdapter.js +1016 -0
- package/dist/vendored/brepjs/kernel/occtWasm/occtWasmAdapter.js.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/occtWasmTypes.d.ts +332 -0
- package/dist/vendored/brepjs/kernel/occtWasm/occtWasmTypes.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/occtWasmTypes.js +10 -0
- package/dist/vendored/brepjs/kernel/occtWasm/occtWasmTypes.js.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/primitiveOps.d.ts +16 -0
- package/dist/vendored/brepjs/kernel/occtWasm/primitiveOps.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/primitiveOps.js +64 -0
- package/dist/vendored/brepjs/kernel/occtWasm/primitiveOps.js.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/repairOps.d.ts +16 -0
- package/dist/vendored/brepjs/kernel/occtWasm/repairOps.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/repairOps.js +38 -0
- package/dist/vendored/brepjs/kernel/occtWasm/repairOps.js.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/surfaceOps.d.ts +56 -0
- package/dist/vendored/brepjs/kernel/occtWasm/surfaceOps.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/surfaceOps.js +247 -0
- package/dist/vendored/brepjs/kernel/occtWasm/surfaceOps.js.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/sweepOps.d.ts +56 -0
- package/dist/vendored/brepjs/kernel/occtWasm/sweepOps.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/sweepOps.js +235 -0
- package/dist/vendored/brepjs/kernel/occtWasm/sweepOps.js.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/topologyOps.d.ts +25 -0
- package/dist/vendored/brepjs/kernel/occtWasm/topologyOps.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/topologyOps.js +127 -0
- package/dist/vendored/brepjs/kernel/occtWasm/topologyOps.js.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/transformOps.d.ts +40 -0
- package/dist/vendored/brepjs/kernel/occtWasm/transformOps.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/occtWasm/transformOps.js +275 -0
- package/dist/vendored/brepjs/kernel/occtWasm/transformOps.js.map +1 -0
- package/dist/vendored/brepjs/kernel/quality.d.ts +28 -0
- package/dist/vendored/brepjs/kernel/quality.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/quality.js +40 -0
- package/dist/vendored/brepjs/kernel/quality.js.map +1 -0
- package/dist/vendored/brepjs/kernel/solverAdapter.d.ts +50 -0
- package/dist/vendored/brepjs/kernel/solverAdapter.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/solverAdapter.js +330 -0
- package/dist/vendored/brepjs/kernel/solverAdapter.js.map +1 -0
- package/dist/vendored/brepjs/kernel/stlBuilder.d.ts +21 -0
- package/dist/vendored/brepjs/kernel/stlBuilder.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/stlBuilder.js +106 -0
- package/dist/vendored/brepjs/kernel/stlBuilder.js.map +1 -0
- package/dist/vendored/brepjs/kernel/types.d.ts +214 -0
- package/dist/vendored/brepjs/kernel/types.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/types.js +22 -0
- package/dist/vendored/brepjs/kernel/types.js.map +1 -0
- package/dist/vendored/brepjs/kernel/unsupported.d.ts +15 -0
- package/dist/vendored/brepjs/kernel/unsupported.d.ts.map +1 -0
- package/dist/vendored/brepjs/kernel/unsupported.js +25 -0
- package/dist/vendored/brepjs/kernel/unsupported.js.map +1 -0
- package/dist/vendored/brepjs/measurement/interferenceFns.d.ts +68 -0
- package/dist/vendored/brepjs/measurement/interferenceFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/measurement/interferenceFns.js +102 -0
- package/dist/vendored/brepjs/measurement/interferenceFns.js.map +1 -0
- package/dist/vendored/brepjs/measurement/measureCache.d.ts +20 -0
- package/dist/vendored/brepjs/measurement/measureCache.d.ts.map +1 -0
- package/dist/vendored/brepjs/measurement/measureCache.js +28 -0
- package/dist/vendored/brepjs/measurement/measureCache.js.map +1 -0
- package/dist/vendored/brepjs/measurement/measureFns.d.ts +92 -0
- package/dist/vendored/brepjs/measurement/measureFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/measurement/measureFns.js +239 -0
- package/dist/vendored/brepjs/measurement/measureFns.js.map +1 -0
- package/dist/vendored/brepjs/measurement/measureTypes.d.ts +35 -0
- package/dist/vendored/brepjs/measurement/measureTypes.d.ts.map +1 -0
- package/dist/vendored/brepjs/measurement/measureTypes.js +7 -0
- package/dist/vendored/brepjs/measurement/measureTypes.js.map +1 -0
- package/dist/vendored/brepjs/measurement.d.ts +5 -0
- package/dist/vendored/brepjs/measurement.d.ts.map +1 -0
- package/dist/vendored/brepjs/measurement.js +5 -0
- package/dist/vendored/brepjs/measurement.js.map +1 -0
- package/dist/vendored/brepjs/ns/booleans.d.ts +11 -0
- package/dist/vendored/brepjs/ns/booleans.d.ts.map +1 -0
- package/dist/vendored/brepjs/ns/booleans.js +11 -0
- package/dist/vendored/brepjs/ns/booleans.js.map +1 -0
- package/dist/vendored/brepjs/ns/construction.d.ts +10 -0
- package/dist/vendored/brepjs/ns/construction.d.ts.map +1 -0
- package/dist/vendored/brepjs/ns/construction.js +10 -0
- package/dist/vendored/brepjs/ns/construction.js.map +1 -0
- package/dist/vendored/brepjs/ns/ioNs.d.ts +18 -0
- package/dist/vendored/brepjs/ns/ioNs.d.ts.map +1 -0
- package/dist/vendored/brepjs/ns/ioNs.js +20 -0
- package/dist/vendored/brepjs/ns/ioNs.js.map +1 -0
- package/dist/vendored/brepjs/ns/measurement.d.ts +6 -0
- package/dist/vendored/brepjs/ns/measurement.d.ts.map +1 -0
- package/dist/vendored/brepjs/ns/measurement.js +6 -0
- package/dist/vendored/brepjs/ns/measurement.js.map +1 -0
- package/dist/vendored/brepjs/ns/modifiers.d.ts +6 -0
- package/dist/vendored/brepjs/ns/modifiers.d.ts.map +1 -0
- package/dist/vendored/brepjs/ns/modifiers.js +6 -0
- package/dist/vendored/brepjs/ns/modifiers.js.map +1 -0
- package/dist/vendored/brepjs/ns/patterns.d.ts +5 -0
- package/dist/vendored/brepjs/ns/patterns.d.ts.map +1 -0
- package/dist/vendored/brepjs/ns/patterns.js +5 -0
- package/dist/vendored/brepjs/ns/patterns.js.map +1 -0
- package/dist/vendored/brepjs/ns/primitives.d.ts +7 -0
- package/dist/vendored/brepjs/ns/primitives.d.ts.map +1 -0
- package/dist/vendored/brepjs/ns/primitives.js +7 -0
- package/dist/vendored/brepjs/ns/primitives.js.map +1 -0
- package/dist/vendored/brepjs/ns/query.d.ts +6 -0
- package/dist/vendored/brepjs/ns/query.d.ts.map +1 -0
- package/dist/vendored/brepjs/ns/query.js +6 -0
- package/dist/vendored/brepjs/ns/query.js.map +1 -0
- package/dist/vendored/brepjs/ns/transforms.d.ts +5 -0
- package/dist/vendored/brepjs/ns/transforms.d.ts.map +1 -0
- package/dist/vendored/brepjs/ns/transforms.js +5 -0
- package/dist/vendored/brepjs/ns/transforms.js.map +1 -0
- package/dist/vendored/brepjs/operations/api.d.ts +39 -0
- package/dist/vendored/brepjs/operations/api.d.ts.map +1 -0
- package/dist/vendored/brepjs/operations/api.js +41 -0
- package/dist/vendored/brepjs/operations/api.js.map +1 -0
- package/dist/vendored/brepjs/operations/assemblyFns.d.ts +54 -0
- package/dist/vendored/brepjs/operations/assemblyFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/operations/assemblyFns.js +91 -0
- package/dist/vendored/brepjs/operations/assemblyFns.js.map +1 -0
- package/dist/vendored/brepjs/operations/compoundOpsFns.d.ts +43 -0
- package/dist/vendored/brepjs/operations/compoundOpsFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/operations/compoundOpsFns.js +368 -0
- package/dist/vendored/brepjs/operations/compoundOpsFns.js.map +1 -0
- package/dist/vendored/brepjs/operations/convexHullFns.d.ts +27 -0
- package/dist/vendored/brepjs/operations/convexHullFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/operations/convexHullFns.js +50 -0
- package/dist/vendored/brepjs/operations/convexHullFns.js.map +1 -0
- package/dist/vendored/brepjs/operations/dhFns.d.ts +47 -0
- package/dist/vendored/brepjs/operations/dhFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/operations/dhFns.js +53 -0
- package/dist/vendored/brepjs/operations/dhFns.js.map +1 -0
- package/dist/vendored/brepjs/operations/exporterFns.d.ts +47 -0
- package/dist/vendored/brepjs/operations/exporterFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/operations/exporterFns.js +66 -0
- package/dist/vendored/brepjs/operations/exporterFns.js.map +1 -0
- package/dist/vendored/brepjs/operations/exporterUtils.d.ts +6 -0
- package/dist/vendored/brepjs/operations/exporterUtils.d.ts.map +1 -0
- package/dist/vendored/brepjs/operations/exporterUtils.js +5 -0
- package/dist/vendored/brepjs/operations/exporterUtils.js.map +1 -0
- package/dist/vendored/brepjs/operations/exporters.d.ts +59 -0
- package/dist/vendored/brepjs/operations/exporters.d.ts.map +1 -0
- package/dist/vendored/brepjs/operations/exporters.js +74 -0
- package/dist/vendored/brepjs/operations/exporters.js.map +1 -0
- package/dist/vendored/brepjs/operations/extrudeFns.d.ts +47 -0
- package/dist/vendored/brepjs/operations/extrudeFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/operations/extrudeFns.js +119 -0
- package/dist/vendored/brepjs/operations/extrudeFns.js.map +1 -0
- package/dist/vendored/brepjs/operations/extrudeUtils.d.ts +63 -0
- package/dist/vendored/brepjs/operations/extrudeUtils.d.ts.map +1 -0
- package/dist/vendored/brepjs/operations/extrudeUtils.js +33 -0
- package/dist/vendored/brepjs/operations/extrudeUtils.js.map +1 -0
- package/dist/vendored/brepjs/operations/guidedSweepFns.d.ts +6 -0
- package/dist/vendored/brepjs/operations/guidedSweepFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/operations/guidedSweepFns.js +6 -0
- package/dist/vendored/brepjs/operations/guidedSweepFns.js.map +1 -0
- package/dist/vendored/brepjs/operations/historyFns.d.ts +83 -0
- package/dist/vendored/brepjs/operations/historyFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/operations/historyFns.js +256 -0
- package/dist/vendored/brepjs/operations/historyFns.js.map +1 -0
- package/dist/vendored/brepjs/operations/ikFns.d.ts +74 -0
- package/dist/vendored/brepjs/operations/ikFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/operations/ikFns.js +320 -0
- package/dist/vendored/brepjs/operations/ikFns.js.map +1 -0
- package/dist/vendored/brepjs/operations/instanceFns.d.ts +76 -0
- package/dist/vendored/brepjs/operations/instanceFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/operations/instanceFns.js +128 -0
- package/dist/vendored/brepjs/operations/instanceFns.js.map +1 -0
- package/dist/vendored/brepjs/operations/jointFns.d.ts +176 -0
- package/dist/vendored/brepjs/operations/jointFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/operations/jointFns.js +298 -0
- package/dist/vendored/brepjs/operations/jointFns.js.map +1 -0
- package/dist/vendored/brepjs/operations/loftFns.d.ts +60 -0
- package/dist/vendored/brepjs/operations/loftFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/operations/loftFns.js +112 -0
- package/dist/vendored/brepjs/operations/loftFns.js.map +1 -0
- package/dist/vendored/brepjs/operations/mateFns.d.ts +53 -0
- package/dist/vendored/brepjs/operations/mateFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/operations/mateFns.js +142 -0
- package/dist/vendored/brepjs/operations/mateFns.js.map +1 -0
- package/dist/vendored/brepjs/operations/multiSweepFns.d.ts +6 -0
- package/dist/vendored/brepjs/operations/multiSweepFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/operations/multiSweepFns.js +6 -0
- package/dist/vendored/brepjs/operations/multiSweepFns.js.map +1 -0
- package/dist/vendored/brepjs/operations/patternFns.d.ts +46 -0
- package/dist/vendored/brepjs/operations/patternFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/operations/patternFns.js +126 -0
- package/dist/vendored/brepjs/operations/patternFns.js.map +1 -0
- package/dist/vendored/brepjs/operations/roofFns.d.ts +25 -0
- package/dist/vendored/brepjs/operations/roofFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/operations/roofFns.js +250 -0
- package/dist/vendored/brepjs/operations/roofFns.js.map +1 -0
- package/dist/vendored/brepjs/operations/straightSkeleton.d.ts +29 -0
- package/dist/vendored/brepjs/operations/straightSkeleton.d.ts.map +1 -0
- package/dist/vendored/brepjs/operations/straightSkeleton.js +440 -0
- package/dist/vendored/brepjs/operations/straightSkeleton.js.map +1 -0
- package/dist/vendored/brepjs/operations/sweepFns.d.ts +121 -0
- package/dist/vendored/brepjs/operations/sweepFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/operations/sweepFns.js +438 -0
- package/dist/vendored/brepjs/operations/sweepFns.js.map +1 -0
- package/dist/vendored/brepjs/operations/threadFns.d.ts +57 -0
- package/dist/vendored/brepjs/operations/threadFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/operations/threadFns.js +145 -0
- package/dist/vendored/brepjs/operations/threadFns.js.map +1 -0
- package/dist/vendored/brepjs/operations/urdfFns.d.ts +48 -0
- package/dist/vendored/brepjs/operations/urdfFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/operations/urdfFns.js +171 -0
- package/dist/vendored/brepjs/operations/urdfFns.js.map +1 -0
- package/dist/vendored/brepjs/operations.d.ts +20 -0
- package/dist/vendored/brepjs/operations.d.ts.map +1 -0
- package/dist/vendored/brepjs/operations.js +26 -0
- package/dist/vendored/brepjs/operations.js.map +1 -0
- package/dist/vendored/brepjs/projection/cameraFns.d.ts +63 -0
- package/dist/vendored/brepjs/projection/cameraFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/projection/cameraFns.js +89 -0
- package/dist/vendored/brepjs/projection/cameraFns.js.map +1 -0
- package/dist/vendored/brepjs/projection/makeProjectedEdges.d.ts +14 -0
- package/dist/vendored/brepjs/projection/makeProjectedEdges.d.ts.map +1 -0
- package/dist/vendored/brepjs/projection/makeProjectedEdges.js +111 -0
- package/dist/vendored/brepjs/projection/makeProjectedEdges.js.map +1 -0
- package/dist/vendored/brepjs/projection/projectionPlanes.d.ts +18 -0
- package/dist/vendored/brepjs/projection/projectionPlanes.d.ts.map +1 -0
- package/dist/vendored/brepjs/projection/projectionPlanes.js +23 -0
- package/dist/vendored/brepjs/projection/projectionPlanes.js.map +1 -0
- package/dist/vendored/brepjs/projection.d.ts +12 -0
- package/dist/vendored/brepjs/projection.d.ts.map +1 -0
- package/dist/vendored/brepjs/projection.js +12 -0
- package/dist/vendored/brepjs/projection.js.map +1 -0
- package/dist/vendored/brepjs/query/cornerFinder.d.ts +54 -0
- package/dist/vendored/brepjs/query/cornerFinder.d.ts.map +1 -0
- package/dist/vendored/brepjs/query/cornerFinder.js +73 -0
- package/dist/vendored/brepjs/query/cornerFinder.js.map +1 -0
- package/dist/vendored/brepjs/query/directionUtils.d.ts +9 -0
- package/dist/vendored/brepjs/query/directionUtils.d.ts.map +1 -0
- package/dist/vendored/brepjs/query/directionUtils.js +18 -0
- package/dist/vendored/brepjs/query/directionUtils.js.map +1 -0
- package/dist/vendored/brepjs/query/edgeFinder.d.ts +5 -0
- package/dist/vendored/brepjs/query/edgeFinder.d.ts.map +1 -0
- package/dist/vendored/brepjs/query/edgeFinder.js +5 -0
- package/dist/vendored/brepjs/query/edgeFinder.js.map +1 -0
- package/dist/vendored/brepjs/query/faceFinder.d.ts +5 -0
- package/dist/vendored/brepjs/query/faceFinder.d.ts.map +1 -0
- package/dist/vendored/brepjs/query/faceFinder.js +5 -0
- package/dist/vendored/brepjs/query/faceFinder.js.map +1 -0
- package/dist/vendored/brepjs/query/finderCore.d.ts +49 -0
- package/dist/vendored/brepjs/query/finderCore.d.ts.map +1 -0
- package/dist/vendored/brepjs/query/finderCore.js +120 -0
- package/dist/vendored/brepjs/query/finderCore.js.map +1 -0
- package/dist/vendored/brepjs/query/finderFns.d.ts +25 -0
- package/dist/vendored/brepjs/query/finderFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/query/finderFns.js +25 -0
- package/dist/vendored/brepjs/query/finderFns.js.map +1 -0
- package/dist/vendored/brepjs/query/helpers.d.ts +11 -0
- package/dist/vendored/brepjs/query/helpers.d.ts.map +1 -0
- package/dist/vendored/brepjs/query/helpers.js +17 -0
- package/dist/vendored/brepjs/query/helpers.js.map +1 -0
- package/dist/vendored/brepjs/query/shapeDistanceFilter.d.ts +15 -0
- package/dist/vendored/brepjs/query/shapeDistanceFilter.d.ts.map +1 -0
- package/dist/vendored/brepjs/query/shapeDistanceFilter.js +21 -0
- package/dist/vendored/brepjs/query/shapeDistanceFilter.js.map +1 -0
- package/dist/vendored/brepjs/query/shapeFinders.d.ts +39 -0
- package/dist/vendored/brepjs/query/shapeFinders.d.ts.map +1 -0
- package/dist/vendored/brepjs/query/shapeFinders.js +82 -0
- package/dist/vendored/brepjs/query/shapeFinders.js.map +1 -0
- package/dist/vendored/brepjs/query/vertexFinder.d.ts +19 -0
- package/dist/vendored/brepjs/query/vertexFinder.d.ts.map +1 -0
- package/dist/vendored/brepjs/query/vertexFinder.js +73 -0
- package/dist/vendored/brepjs/query/vertexFinder.js.map +1 -0
- package/dist/vendored/brepjs/query/wireFinder.d.ts +5 -0
- package/dist/vendored/brepjs/query/wireFinder.d.ts.map +1 -0
- package/dist/vendored/brepjs/query/wireFinder.js +5 -0
- package/dist/vendored/brepjs/query/wireFinder.js.map +1 -0
- package/dist/vendored/brepjs/query.d.ts +6 -0
- package/dist/vendored/brepjs/query.d.ts.map +1 -0
- package/dist/vendored/brepjs/query.js +6 -0
- package/dist/vendored/brepjs/query.js.map +1 -0
- package/dist/vendored/brepjs/result.d.ts +7 -0
- package/dist/vendored/brepjs/result.d.ts.map +1 -0
- package/dist/vendored/brepjs/result.js +7 -0
- package/dist/vendored/brepjs/result.js.map +1 -0
- package/dist/vendored/brepjs/shapeRef.d.ts +13 -0
- package/dist/vendored/brepjs/shapeRef.d.ts.map +1 -0
- package/dist/vendored/brepjs/shapeRef.js +13 -0
- package/dist/vendored/brepjs/shapeRef.js.map +1 -0
- package/dist/vendored/brepjs/sketching/cannedSketches.d.ts +144 -0
- package/dist/vendored/brepjs/sketching/cannedSketches.d.ts.map +1 -0
- package/dist/vendored/brepjs/sketching/cannedSketches.js +327 -0
- package/dist/vendored/brepjs/sketching/cannedSketches.js.map +1 -0
- package/dist/vendored/brepjs/sketching/compoundSketch.d.ts +70 -0
- package/dist/vendored/brepjs/sketching/compoundSketch.d.ts.map +1 -0
- package/dist/vendored/brepjs/sketching/compoundSketch.js +87 -0
- package/dist/vendored/brepjs/sketching/compoundSketch.js.map +1 -0
- package/dist/vendored/brepjs/sketching/draw3d.d.ts +22 -0
- package/dist/vendored/brepjs/sketching/draw3d.d.ts.map +1 -0
- package/dist/vendored/brepjs/sketching/draw3d.js +150 -0
- package/dist/vendored/brepjs/sketching/draw3d.js.map +1 -0
- package/dist/vendored/brepjs/sketching/drawFns.d.ts +122 -0
- package/dist/vendored/brepjs/sketching/drawFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/sketching/drawFns.js +129 -0
- package/dist/vendored/brepjs/sketching/drawFns.js.map +1 -0
- package/dist/vendored/brepjs/sketching/drawing.d.ts +128 -0
- package/dist/vendored/brepjs/sketching/drawing.d.ts.map +1 -0
- package/dist/vendored/brepjs/sketching/drawing.js +275 -0
- package/dist/vendored/brepjs/sketching/drawing.js.map +1 -0
- package/dist/vendored/brepjs/sketching/drawingFactories.d.ts +95 -0
- package/dist/vendored/brepjs/sketching/drawingFactories.d.ts.map +1 -0
- package/dist/vendored/brepjs/sketching/drawingFactories.js +125 -0
- package/dist/vendored/brepjs/sketching/drawingFactories.js.map +1 -0
- package/dist/vendored/brepjs/sketching/drawingPen.d.ts +35 -0
- package/dist/vendored/brepjs/sketching/drawingPen.d.ts.map +1 -0
- package/dist/vendored/brepjs/sketching/drawingPen.js +57 -0
- package/dist/vendored/brepjs/sketching/drawingPen.js.map +1 -0
- package/dist/vendored/brepjs/sketching/faceSketcher.d.ts +53 -0
- package/dist/vendored/brepjs/sketching/faceSketcher.d.ts.map +1 -0
- package/dist/vendored/brepjs/sketching/faceSketcher.js +167 -0
- package/dist/vendored/brepjs/sketching/faceSketcher.js.map +1 -0
- package/dist/vendored/brepjs/sketching/shortcuts.d.ts +16 -0
- package/dist/vendored/brepjs/sketching/shortcuts.d.ts.map +1 -0
- package/dist/vendored/brepjs/sketching/shortcuts.js +24 -0
- package/dist/vendored/brepjs/sketching/shortcuts.js.map +1 -0
- package/dist/vendored/brepjs/sketching/sketch.d.ts +157 -0
- package/dist/vendored/brepjs/sketching/sketch.d.ts.map +1 -0
- package/dist/vendored/brepjs/sketching/sketch.js +151 -0
- package/dist/vendored/brepjs/sketching/sketch.js.map +1 -0
- package/dist/vendored/brepjs/sketching/sketchFns.d.ts +89 -0
- package/dist/vendored/brepjs/sketching/sketchFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/sketching/sketchFns.js +266 -0
- package/dist/vendored/brepjs/sketching/sketchFns.js.map +1 -0
- package/dist/vendored/brepjs/sketching/sketcher.d.ts +70 -0
- package/dist/vendored/brepjs/sketching/sketcher.d.ts.map +1 -0
- package/dist/vendored/brepjs/sketching/sketcher.js +181 -0
- package/dist/vendored/brepjs/sketching/sketcher.js.map +1 -0
- package/dist/vendored/brepjs/sketching/sketches.d.ts +70 -0
- package/dist/vendored/brepjs/sketching/sketches.d.ts.map +1 -0
- package/dist/vendored/brepjs/sketching/sketches.js +91 -0
- package/dist/vendored/brepjs/sketching/sketches.js.map +1 -0
- package/dist/vendored/brepjs/sketching.d.ts +28 -0
- package/dist/vendored/brepjs/sketching.d.ts.map +1 -0
- package/dist/vendored/brepjs/sketching.js +30 -0
- package/dist/vendored/brepjs/sketching.js.map +1 -0
- package/dist/vendored/brepjs/text/fontRegistry.d.ts +23 -0
- package/dist/vendored/brepjs/text/fontRegistry.d.ts.map +1 -0
- package/dist/vendored/brepjs/text/fontRegistry.js +61 -0
- package/dist/vendored/brepjs/text/fontRegistry.js.map +1 -0
- package/dist/vendored/brepjs/text/sketchText.d.ts +31 -0
- package/dist/vendored/brepjs/text/sketchText.d.ts.map +1 -0
- package/dist/vendored/brepjs/text/sketchText.js +30 -0
- package/dist/vendored/brepjs/text/sketchText.js.map +1 -0
- package/dist/vendored/brepjs/text/textBlueprints.d.ts +19 -0
- package/dist/vendored/brepjs/text/textBlueprints.d.ts.map +1 -0
- package/dist/vendored/brepjs/text/textBlueprints.js +61 -0
- package/dist/vendored/brepjs/text/textBlueprints.js.map +1 -0
- package/dist/vendored/brepjs/text/textMetrics.d.ts +40 -0
- package/dist/vendored/brepjs/text/textMetrics.d.ts.map +1 -0
- package/dist/vendored/brepjs/text/textMetrics.js +43 -0
- package/dist/vendored/brepjs/text/textMetrics.js.map +1 -0
- package/dist/vendored/brepjs/text.d.ts +13 -0
- package/dist/vendored/brepjs/text.d.ts.map +1 -0
- package/dist/vendored/brepjs/text.js +13 -0
- package/dist/vendored/brepjs/text.js.map +1 -0
- package/dist/vendored/brepjs/topology/adjacencyFns.d.ts +89 -0
- package/dist/vendored/brepjs/topology/adjacencyFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/adjacencyFns.js +411 -0
- package/dist/vendored/brepjs/topology/adjacencyFns.js.map +1 -0
- package/dist/vendored/brepjs/topology/api.d.ts +145 -0
- package/dist/vendored/brepjs/topology/api.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/api.js +282 -0
- package/dist/vendored/brepjs/topology/api.js.map +1 -0
- package/dist/vendored/brepjs/topology/apiTypes.d.ts +135 -0
- package/dist/vendored/brepjs/topology/apiTypes.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/apiTypes.js +24 -0
- package/dist/vendored/brepjs/topology/apiTypes.js.map +1 -0
- package/dist/vendored/brepjs/topology/booleanBatchFns.d.ts +52 -0
- package/dist/vendored/brepjs/topology/booleanBatchFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/booleanBatchFns.js +164 -0
- package/dist/vendored/brepjs/topology/booleanBatchFns.js.map +1 -0
- package/dist/vendored/brepjs/topology/booleanDiagnosticFns.d.ts +21 -0
- package/dist/vendored/brepjs/topology/booleanDiagnosticFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/booleanDiagnosticFns.js +23 -0
- package/dist/vendored/brepjs/topology/booleanDiagnosticFns.js.map +1 -0
- package/dist/vendored/brepjs/topology/booleanFns.d.ts +155 -0
- package/dist/vendored/brepjs/topology/booleanFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/booleanFns.js +600 -0
- package/dist/vendored/brepjs/topology/booleanFns.js.map +1 -0
- package/dist/vendored/brepjs/topology/cast.d.ts +48 -0
- package/dist/vendored/brepjs/topology/cast.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/cast.js +113 -0
- package/dist/vendored/brepjs/topology/cast.js.map +1 -0
- package/dist/vendored/brepjs/topology/chamferAngleFns.d.ts +24 -0
- package/dist/vendored/brepjs/topology/chamferAngleFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/chamferAngleFns.js +64 -0
- package/dist/vendored/brepjs/topology/chamferAngleFns.js.map +1 -0
- package/dist/vendored/brepjs/topology/compoundOpsFns.d.ts +6 -0
- package/dist/vendored/brepjs/topology/compoundOpsFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/compoundOpsFns.js +6 -0
- package/dist/vendored/brepjs/topology/compoundOpsFns.js.map +1 -0
- package/dist/vendored/brepjs/topology/curveBuilders.d.ts +90 -0
- package/dist/vendored/brepjs/topology/curveBuilders.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/curveBuilders.js +125 -0
- package/dist/vendored/brepjs/topology/curveBuilders.js.map +1 -0
- package/dist/vendored/brepjs/topology/curveFns.d.ts +96 -0
- package/dist/vendored/brepjs/topology/curveFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/curveFns.js +191 -0
- package/dist/vendored/brepjs/topology/curveFns.js.map +1 -0
- package/dist/vendored/brepjs/topology/evolutionFns.d.ts +78 -0
- package/dist/vendored/brepjs/topology/evolutionFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/evolutionFns.js +271 -0
- package/dist/vendored/brepjs/topology/evolutionFns.js.map +1 -0
- package/dist/vendored/brepjs/topology/faceFns.d.ts +86 -0
- package/dist/vendored/brepjs/topology/faceFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/faceFns.js +169 -0
- package/dist/vendored/brepjs/topology/faceFns.js.map +1 -0
- package/dist/vendored/brepjs/topology/healingFns.d.ts +98 -0
- package/dist/vendored/brepjs/topology/healingFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/healingFns.js +338 -0
- package/dist/vendored/brepjs/topology/healingFns.js.map +1 -0
- package/dist/vendored/brepjs/topology/hullFns.d.ts +21 -0
- package/dist/vendored/brepjs/topology/hullFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/hullFns.js +60 -0
- package/dist/vendored/brepjs/topology/hullFns.js.map +1 -0
- package/dist/vendored/brepjs/topology/index.d.ts +14 -0
- package/dist/vendored/brepjs/topology/index.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/index.js +17 -0
- package/dist/vendored/brepjs/topology/index.js.map +1 -0
- package/dist/vendored/brepjs/topology/meshCache.d.ts +68 -0
- package/dist/vendored/brepjs/topology/meshCache.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/meshCache.js +117 -0
- package/dist/vendored/brepjs/topology/meshCache.js.map +1 -0
- package/dist/vendored/brepjs/topology/meshFns.d.ts +179 -0
- package/dist/vendored/brepjs/topology/meshFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/meshFns.js +393 -0
- package/dist/vendored/brepjs/topology/meshFns.js.map +1 -0
- package/dist/vendored/brepjs/topology/metadata/colorFns.d.ts +41 -0
- package/dist/vendored/brepjs/topology/metadata/colorFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/metadata/colorFns.js +128 -0
- package/dist/vendored/brepjs/topology/metadata/colorFns.js.map +1 -0
- package/dist/vendored/brepjs/topology/metadata/faceTagFns.d.ts +44 -0
- package/dist/vendored/brepjs/topology/metadata/faceTagFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/metadata/faceTagFns.js +168 -0
- package/dist/vendored/brepjs/topology/metadata/faceTagFns.js.map +1 -0
- package/dist/vendored/brepjs/topology/metadata/metadataPropagation.d.ts +59 -0
- package/dist/vendored/brepjs/topology/metadata/metadataPropagation.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/metadata/metadataPropagation.js +109 -0
- package/dist/vendored/brepjs/topology/metadata/metadataPropagation.js.map +1 -0
- package/dist/vendored/brepjs/topology/metadata/originTrackingFns.d.ts +43 -0
- package/dist/vendored/brepjs/topology/metadata/originTrackingFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/metadata/originTrackingFns.js +270 -0
- package/dist/vendored/brepjs/topology/metadata/originTrackingFns.js.map +1 -0
- package/dist/vendored/brepjs/topology/minkowskiFns.d.ts +26 -0
- package/dist/vendored/brepjs/topology/minkowskiFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/minkowskiFns.js +136 -0
- package/dist/vendored/brepjs/topology/minkowskiFns.js.map +1 -0
- package/dist/vendored/brepjs/topology/modifierFns.d.ts +87 -0
- package/dist/vendored/brepjs/topology/modifierFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/modifierFns.js +446 -0
- package/dist/vendored/brepjs/topology/modifierFns.js.map +1 -0
- package/dist/vendored/brepjs/topology/nurbsFns.d.ts +13 -0
- package/dist/vendored/brepjs/topology/nurbsFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/nurbsFns.js +22 -0
- package/dist/vendored/brepjs/topology/nurbsFns.js.map +1 -0
- package/dist/vendored/brepjs/topology/polyhedronFns.d.ts +11 -0
- package/dist/vendored/brepjs/topology/polyhedronFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/polyhedronFns.js +47 -0
- package/dist/vendored/brepjs/topology/polyhedronFns.js.map +1 -0
- package/dist/vendored/brepjs/topology/positionFns.d.ts +18 -0
- package/dist/vendored/brepjs/topology/positionFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/positionFns.js +34 -0
- package/dist/vendored/brepjs/topology/positionFns.js.map +1 -0
- package/dist/vendored/brepjs/topology/primitiveFns.d.ts +244 -0
- package/dist/vendored/brepjs/topology/primitiveFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/primitiveFns.js +361 -0
- package/dist/vendored/brepjs/topology/primitiveFns.js.map +1 -0
- package/dist/vendored/brepjs/topology/shapeBooleans.d.ts +14 -0
- package/dist/vendored/brepjs/topology/shapeBooleans.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/shapeBooleans.js +24 -0
- package/dist/vendored/brepjs/topology/shapeBooleans.js.map +1 -0
- package/dist/vendored/brepjs/topology/shapeFns.d.ts +30 -0
- package/dist/vendored/brepjs/topology/shapeFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/shapeFns.js +50 -0
- package/dist/vendored/brepjs/topology/shapeFns.js.map +1 -0
- package/dist/vendored/brepjs/topology/shapeHelpers.d.ts +9 -0
- package/dist/vendored/brepjs/topology/shapeHelpers.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/shapeHelpers.js +14 -0
- package/dist/vendored/brepjs/topology/shapeHelpers.js.map +1 -0
- package/dist/vendored/brepjs/topology/shapeModifiers.d.ts +33 -0
- package/dist/vendored/brepjs/topology/shapeModifiers.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/shapeModifiers.js +28 -0
- package/dist/vendored/brepjs/topology/shapeModifiers.js.map +1 -0
- package/dist/vendored/brepjs/topology/shapeRef/derivedFaceRefFns.d.ts +29 -0
- package/dist/vendored/brepjs/topology/shapeRef/derivedFaceRefFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/shapeRef/derivedFaceRefFns.js +135 -0
- package/dist/vendored/brepjs/topology/shapeRef/derivedFaceRefFns.js.map +1 -0
- package/dist/vendored/brepjs/topology/shapeRef/edgeRefFns.d.ts +25 -0
- package/dist/vendored/brepjs/topology/shapeRef/edgeRefFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/shapeRef/edgeRefFns.js +123 -0
- package/dist/vendored/brepjs/topology/shapeRef/edgeRefFns.js.map +1 -0
- package/dist/vendored/brepjs/topology/shapeRef/index.d.ts +11 -0
- package/dist/vendored/brepjs/topology/shapeRef/index.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/shapeRef/index.js +10 -0
- package/dist/vendored/brepjs/topology/shapeRef/index.js.map +1 -0
- package/dist/vendored/brepjs/topology/shapeRef/refResolveFns.d.ts +66 -0
- package/dist/vendored/brepjs/topology/shapeRef/refResolveFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/shapeRef/refResolveFns.js +128 -0
- package/dist/vendored/brepjs/topology/shapeRef/refResolveFns.js.map +1 -0
- package/dist/vendored/brepjs/topology/shapeRef/roleLookup.d.ts +18 -0
- package/dist/vendored/brepjs/topology/shapeRef/roleLookup.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/shapeRef/roleLookup.js +51 -0
- package/dist/vendored/brepjs/topology/shapeRef/roleLookup.js.map +1 -0
- package/dist/vendored/brepjs/topology/shapeRef/scoring.d.ts +20 -0
- package/dist/vendored/brepjs/topology/shapeRef/scoring.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/shapeRef/scoring.js +65 -0
- package/dist/vendored/brepjs/topology/shapeRef/scoring.js.map +1 -0
- package/dist/vendored/brepjs/topology/shapeRef/shapeRefFns.d.ts +59 -0
- package/dist/vendored/brepjs/topology/shapeRef/shapeRefFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/shapeRef/shapeRefFns.js +266 -0
- package/dist/vendored/brepjs/topology/shapeRef/shapeRefFns.js.map +1 -0
- package/dist/vendored/brepjs/topology/shapeRef/shapeRefTypes.d.ts +153 -0
- package/dist/vendored/brepjs/topology/shapeRef/shapeRefTypes.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/shapeRef/shapeRefTypes.js +6 -0
- package/dist/vendored/brepjs/topology/shapeRef/shapeRefTypes.js.map +1 -0
- package/dist/vendored/brepjs/topology/shapeRef/vertexRefFns.d.ts +24 -0
- package/dist/vendored/brepjs/topology/shapeRef/vertexRefFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/shapeRef/vertexRefFns.js +128 -0
- package/dist/vendored/brepjs/topology/shapeRef/vertexRefFns.js.map +1 -0
- package/dist/vendored/brepjs/topology/shapeUtils.d.ts +16 -0
- package/dist/vendored/brepjs/topology/shapeUtils.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/shapeUtils.js +28 -0
- package/dist/vendored/brepjs/topology/shapeUtils.js.map +1 -0
- package/dist/vendored/brepjs/topology/solidBuilders.d.ts +74 -0
- package/dist/vendored/brepjs/topology/solidBuilders.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/solidBuilders.js +173 -0
- package/dist/vendored/brepjs/topology/solidBuilders.js.map +1 -0
- package/dist/vendored/brepjs/topology/surfaceBuilders.d.ts +47 -0
- package/dist/vendored/brepjs/topology/surfaceBuilders.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/surfaceBuilders.js +162 -0
- package/dist/vendored/brepjs/topology/surfaceBuilders.js.map +1 -0
- package/dist/vendored/brepjs/topology/surfaceFns.d.ts +41 -0
- package/dist/vendored/brepjs/topology/surfaceFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/surfaceFns.js +178 -0
- package/dist/vendored/brepjs/topology/surfaceFns.js.map +1 -0
- package/dist/vendored/brepjs/topology/threeHelpers.d.ts +124 -0
- package/dist/vendored/brepjs/topology/threeHelpers.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/threeHelpers.js +118 -0
- package/dist/vendored/brepjs/topology/threeHelpers.js.map +1 -0
- package/dist/vendored/brepjs/topology/topologyQueryFns.d.ts +100 -0
- package/dist/vendored/brepjs/topology/topologyQueryFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/topologyQueryFns.js +307 -0
- package/dist/vendored/brepjs/topology/topologyQueryFns.js.map +1 -0
- package/dist/vendored/brepjs/topology/transformFns.d.ts +69 -0
- package/dist/vendored/brepjs/topology/transformFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/transformFns.js +235 -0
- package/dist/vendored/brepjs/topology/transformFns.js.map +1 -0
- package/dist/vendored/brepjs/topology/wrapperFns.d.ts +169 -0
- package/dist/vendored/brepjs/topology/wrapperFns.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology/wrapperFns.js +291 -0
- package/dist/vendored/brepjs/topology/wrapperFns.js.map +1 -0
- package/dist/vendored/brepjs/topology.d.ts +28 -0
- package/dist/vendored/brepjs/topology.d.ts.map +1 -0
- package/dist/vendored/brepjs/topology.js +39 -0
- package/dist/vendored/brepjs/topology.js.map +1 -0
- package/dist/vendored/brepjs/utils/arrayAccess.d.ts +12 -0
- package/dist/vendored/brepjs/utils/arrayAccess.d.ts.map +1 -0
- package/dist/vendored/brepjs/utils/arrayAccess.js +25 -0
- package/dist/vendored/brepjs/utils/arrayAccess.js.map +1 -0
- package/dist/vendored/brepjs/utils/bug.d.ts +15 -0
- package/dist/vendored/brepjs/utils/bug.d.ts.map +1 -0
- package/dist/vendored/brepjs/utils/bug.js +21 -0
- package/dist/vendored/brepjs/utils/bug.js.map +1 -0
- package/dist/vendored/brepjs/utils/ioFilename.d.ts +3 -0
- package/dist/vendored/brepjs/utils/ioFilename.d.ts.map +1 -0
- package/dist/vendored/brepjs/utils/ioFilename.js +7 -0
- package/dist/vendored/brepjs/utils/ioFilename.js.map +1 -0
- package/dist/vendored/brepjs/utils/precisionRound.d.ts +11 -0
- package/dist/vendored/brepjs/utils/precisionRound.d.ts.map +1 -0
- package/dist/vendored/brepjs/utils/precisionRound.js +19 -0
- package/dist/vendored/brepjs/utils/precisionRound.js.map +1 -0
- package/dist/vendored/brepjs/utils/quaternion.d.ts +18 -0
- package/dist/vendored/brepjs/utils/quaternion.d.ts.map +1 -0
- package/dist/vendored/brepjs/utils/quaternion.js +68 -0
- package/dist/vendored/brepjs/utils/quaternion.js.map +1 -0
- package/dist/vendored/brepjs/utils/range.d.ts +3 -0
- package/dist/vendored/brepjs/utils/range.d.ts.map +1 -0
- package/dist/vendored/brepjs/utils/range.js +5 -0
- package/dist/vendored/brepjs/utils/range.js.map +1 -0
- package/dist/vendored/brepjs/utils/uuid.d.ts +3 -0
- package/dist/vendored/brepjs/utils/uuid.d.ts.map +1 -0
- package/dist/vendored/brepjs/utils/uuid.js +7 -0
- package/dist/vendored/brepjs/utils/uuid.js.map +1 -0
- package/dist/vendored/brepjs/utils/vec2d.d.ts +62 -0
- package/dist/vendored/brepjs/utils/vec2d.d.ts.map +1 -0
- package/dist/vendored/brepjs/utils/vec2d.js +107 -0
- package/dist/vendored/brepjs/utils/vec2d.js.map +1 -0
- package/dist/vendored/brepjs/utils/vec3.d.ts +32 -0
- package/dist/vendored/brepjs/utils/vec3.d.ts.map +1 -0
- package/dist/vendored/brepjs/utils/vec3.js +35 -0
- package/dist/vendored/brepjs/utils/vec3.js.map +1 -0
- package/dist/vendored/brepjs/utils/zip.d.ts +5 -0
- package/dist/vendored/brepjs/utils/zip.d.ts.map +1 -0
- package/dist/vendored/brepjs/utils/zip.js +8 -0
- package/dist/vendored/brepjs/utils/zip.js.map +1 -0
- package/dist/vendored/brepjs/vectors.d.ts +11 -0
- package/dist/vendored/brepjs/vectors.d.ts.map +1 -0
- package/dist/vendored/brepjs/vectors.js +9 -0
- package/dist/vendored/brepjs/vectors.js.map +1 -0
- package/package.json +154 -0
|
@@ -0,0 +1,1594 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* parser — 文本 → ScriptIR(合法 JS 子集,设计文档 §2)
|
|
3
|
+
*
|
|
4
|
+
* 执行模型:`.fai.js` 文本先用 acorn 解析(合法性证明 J-1),再 walk AST 还原为 ScriptIR。
|
|
5
|
+
* 绝不 eval / new Function / import() 真执行。
|
|
6
|
+
*
|
|
7
|
+
* 支持的语法(合法 JS 子集):
|
|
8
|
+
* - `// apiVersion: N` — 版本声明(可选,默认 1)
|
|
9
|
+
* - `export default async (cad) => { ... }` — 唯一合法容器
|
|
10
|
+
* - `const <name> = <literal>` → ParamDef(参数声明,右侧仅字面量)
|
|
11
|
+
* - `const part<N>_v<M> = [await] cad.<op>(<inputVar>?, { ...args })` → StatementIR
|
|
12
|
+
* - `cad.union/subtract/intersect(inputVar, inputVar)` → boolean op
|
|
13
|
+
* - `cad.faceNormal(var)` / `cad.bboxCenter(var)` / ... → GeomRef
|
|
14
|
+
* - `return { shape: part<N>_v<M>, name, color, metalness, roughness }` → ScriptIR.meta
|
|
15
|
+
*
|
|
16
|
+
* 禁止(acorn 抛错或 AST walk 拒绝即 ParseError):
|
|
17
|
+
* - `param` / `with` 关键字、对象字面量用 `=`
|
|
18
|
+
* - 循环 / 条件 / IIFE / try-catch / 模板字符串
|
|
19
|
+
* - 多 default export、函数定义(除顶层箭头外)
|
|
20
|
+
* - eval / new Function / 动态 import()
|
|
21
|
+
*/
|
|
22
|
+
import { parse as acornParse } from 'acorn';
|
|
23
|
+
import { isParamRef, isVarRef, isCallRef, isExprRef, splitPositionalOptions } from './types.js';
|
|
24
|
+
import { asStmtId, asPartName, } from '../identity.js';
|
|
25
|
+
// ── 解析错误 ──
|
|
26
|
+
// ParseError / ParseErrorCode 的唯一家在 parse-error.ts(无 IR 方案下 MetadataExtractor
|
|
27
|
+
// / SyntaxGate 复用同一类;此处重导出保持历史 import 面兼容)。
|
|
28
|
+
import { ParseError } from './parse-error.js';
|
|
29
|
+
import { fnv1a32 } from './fnv-hash.js';
|
|
30
|
+
export { ParseError } from './parse-error.js';
|
|
31
|
+
function getLine(node) {
|
|
32
|
+
return node?.loc?.start?.line ?? 0;
|
|
33
|
+
}
|
|
34
|
+
/** 数值折叠:非有限值(NaN/Infinity)不是 JSON 安全字面量 → 不可折叠。 */
|
|
35
|
+
function numFold(v, usedParam = false) {
|
|
36
|
+
return Number.isFinite(v) ? { ok: true, value: v, usedParam } : { ok: false };
|
|
37
|
+
}
|
|
38
|
+
function numBin(a, b, op, usedParam = false) {
|
|
39
|
+
return typeof a === 'number' && typeof b === 'number' ? numFold(op(a, b), usedParam) : { ok: false };
|
|
40
|
+
}
|
|
41
|
+
function cmpBin(a, b, op, usedParam = false) {
|
|
42
|
+
if (typeof a === 'number' && typeof b === 'number')
|
|
43
|
+
return { ok: true, value: op(a, b), usedParam };
|
|
44
|
+
if (typeof a === 'string' && typeof b === 'string')
|
|
45
|
+
return { ok: true, value: op(a, b), usedParam };
|
|
46
|
+
return { ok: false };
|
|
47
|
+
}
|
|
48
|
+
/** JS `==` 的 JSON 值域近似(null/boolean/number/string,无对象)。 */
|
|
49
|
+
function looseEq(a, b) {
|
|
50
|
+
let x = a;
|
|
51
|
+
let y = b;
|
|
52
|
+
if (typeof x === 'boolean')
|
|
53
|
+
x = x ? 1 : 0;
|
|
54
|
+
if (typeof y === 'boolean')
|
|
55
|
+
y = y ? 1 : 0;
|
|
56
|
+
if (typeof x === 'number' && typeof y === 'string')
|
|
57
|
+
return x === Number(y);
|
|
58
|
+
if (typeof x === 'string' && typeof y === 'number')
|
|
59
|
+
return Number(x) === y;
|
|
60
|
+
if (x === null || y === null)
|
|
61
|
+
return x === null && y === null;
|
|
62
|
+
return x === y;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* 静态折叠求值:仅接受可由「字面量 + 参数值」算出的表达式。
|
|
66
|
+
* 引用语句变量 / 嵌套调用 / 成员访问 → 不可折叠(返回 ok:false,调用方报 E_VALUE)。
|
|
67
|
+
*/
|
|
68
|
+
function tryFoldConstExpr(node, paramNames, paramValues) {
|
|
69
|
+
switch (node.type) {
|
|
70
|
+
case 'Literal':
|
|
71
|
+
return { ok: true, value: node.value, usedParam: false };
|
|
72
|
+
case 'Identifier': {
|
|
73
|
+
if (!paramNames.has(node.name))
|
|
74
|
+
return { ok: false };
|
|
75
|
+
const v = paramValues.get(node.name);
|
|
76
|
+
return v === undefined ? { ok: false } : { ok: true, value: v, usedParam: true };
|
|
77
|
+
}
|
|
78
|
+
case 'UnaryExpression': {
|
|
79
|
+
const operand = tryFoldConstExpr(node.argument, paramNames, paramValues);
|
|
80
|
+
if (!operand.ok)
|
|
81
|
+
return { ok: false };
|
|
82
|
+
const v = operand.value;
|
|
83
|
+
switch (node.operator) {
|
|
84
|
+
case '-': return typeof v === 'number' ? numFold(-v, operand.usedParam) : { ok: false };
|
|
85
|
+
case '+': return typeof v === 'number' ? numFold(+v, operand.usedParam) : { ok: false };
|
|
86
|
+
case '!': return { ok: true, value: !v, usedParam: operand.usedParam };
|
|
87
|
+
case '~': return typeof v === 'number' ? { ok: true, value: ~v, usedParam: operand.usedParam } : { ok: false };
|
|
88
|
+
case 'typeof': return { ok: true, value: typeof v, usedParam: operand.usedParam };
|
|
89
|
+
default: return { ok: false };
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
case 'BinaryExpression': {
|
|
93
|
+
const left = tryFoldConstExpr(node.left, paramNames, paramValues);
|
|
94
|
+
if (!left.ok)
|
|
95
|
+
return { ok: false };
|
|
96
|
+
const right = tryFoldConstExpr(node.right, paramNames, paramValues);
|
|
97
|
+
if (!right.ok)
|
|
98
|
+
return { ok: false };
|
|
99
|
+
const a = left.value;
|
|
100
|
+
const b = right.value;
|
|
101
|
+
const usedParam = left.usedParam || right.usedParam;
|
|
102
|
+
switch (node.operator) {
|
|
103
|
+
case '+': {
|
|
104
|
+
if (typeof a === 'number' && typeof b === 'number')
|
|
105
|
+
return numFold(a + b, usedParam);
|
|
106
|
+
if (typeof a === 'string' || typeof b === 'string')
|
|
107
|
+
return { ok: true, value: String(a) + String(b), usedParam };
|
|
108
|
+
return { ok: false };
|
|
109
|
+
}
|
|
110
|
+
case '-': return numBin(a, b, (x, y) => x - y, usedParam);
|
|
111
|
+
case '*': return numBin(a, b, (x, y) => x * y, usedParam);
|
|
112
|
+
case '/': return numBin(a, b, (x, y) => x / y, usedParam);
|
|
113
|
+
case '%': return numBin(a, b, (x, y) => x % y, usedParam);
|
|
114
|
+
case '**': return numBin(a, b, (x, y) => x ** y, usedParam);
|
|
115
|
+
case '<': return cmpBin(a, b, (x, y) => x < y, usedParam);
|
|
116
|
+
case '<=': return cmpBin(a, b, (x, y) => x <= y, usedParam);
|
|
117
|
+
case '>': return cmpBin(a, b, (x, y) => x > y, usedParam);
|
|
118
|
+
case '>=': return cmpBin(a, b, (x, y) => x >= y, usedParam);
|
|
119
|
+
case '==': return { ok: true, value: looseEq(a, b), usedParam };
|
|
120
|
+
case '!=': return { ok: true, value: !looseEq(a, b), usedParam };
|
|
121
|
+
case '===': return { ok: true, value: a === b, usedParam };
|
|
122
|
+
case '!==': return { ok: true, value: a !== b, usedParam };
|
|
123
|
+
default: return { ok: false };
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
// acorn 把 && / || / ?? 解析为 LogicalExpression(ESTree 规范)
|
|
127
|
+
case 'LogicalExpression': {
|
|
128
|
+
const left = tryFoldConstExpr(node.left, paramNames, paramValues);
|
|
129
|
+
if (!left.ok)
|
|
130
|
+
return { ok: false };
|
|
131
|
+
const right = tryFoldConstExpr(node.right, paramNames, paramValues);
|
|
132
|
+
if (!right.ok)
|
|
133
|
+
return { ok: false };
|
|
134
|
+
const a = left.value;
|
|
135
|
+
const usedParam = left.usedParam || right.usedParam;
|
|
136
|
+
switch (node.operator) {
|
|
137
|
+
case '&&': return { ok: true, value: a ? right.value : left.value, usedParam };
|
|
138
|
+
case '||': return { ok: true, value: a ? left.value : right.value, usedParam };
|
|
139
|
+
case '??': return { ok: true, value: a === null ? right.value : left.value, usedParam };
|
|
140
|
+
default: return { ok: false };
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
case 'TemplateLiteral': {
|
|
144
|
+
const parts = [];
|
|
145
|
+
const quasis = node.quasis;
|
|
146
|
+
const exprs = node.expressions;
|
|
147
|
+
let usedParam = false;
|
|
148
|
+
for (let i = 0; i < quasis.length; i++) {
|
|
149
|
+
const cooked = quasis[i].value?.cooked;
|
|
150
|
+
parts.push(cooked ?? '');
|
|
151
|
+
if (i < exprs.length) {
|
|
152
|
+
const r = tryFoldConstExpr(exprs[i], paramNames, paramValues);
|
|
153
|
+
if (!r.ok)
|
|
154
|
+
return { ok: false };
|
|
155
|
+
usedParam = usedParam || r.usedParam;
|
|
156
|
+
parts.push(String(r.value));
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return { ok: true, value: parts.join(''), usedParam };
|
|
160
|
+
}
|
|
161
|
+
case 'ConditionalExpression': {
|
|
162
|
+
const test = tryFoldConstExpr(node.test, paramNames, paramValues);
|
|
163
|
+
if (!test.ok)
|
|
164
|
+
return { ok: false };
|
|
165
|
+
const chosen = tryFoldConstExpr(test.value ? node.consequent : node.alternate, paramNames, paramValues);
|
|
166
|
+
if (!chosen.ok)
|
|
167
|
+
return { ok: false };
|
|
168
|
+
return { ok: true, value: chosen.value, usedParam: test.usedParam || chosen.usedParam };
|
|
169
|
+
}
|
|
170
|
+
default:
|
|
171
|
+
return { ok: false };
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
// ── ExprIR(运行时表达式,控制流放松方案 §3.3 / §4.3) ──
|
|
175
|
+
// 折叠失败(引用了语句变量等)且节点 ∈ 白名单文法时,把表达式原文 + 引用名
|
|
176
|
+
// 集合降级为 ExprIR,由编译期箭头包装发射、JS 引擎运行时求值(§5.4)。
|
|
177
|
+
/**
|
|
178
|
+
* ExprIR 白名单文法(§3.3,true-JS-subset 方案 D2 扩展):Literal / Identifier /
|
|
179
|
+
* Unary / Binary / Logical / Conditional / Array(元素递归走白名单)/
|
|
180
|
+
* **MemberExpression**(非可选链的全形态,computed 与否均收)/
|
|
181
|
+
* **CallExpression**(方法调用 `a.b(c)` 归入 ExprIR;命名空间根调用在调用方
|
|
182
|
+
* 先被截为 CallRefIR,不会到达此处)。
|
|
183
|
+
*
|
|
184
|
+
* ObjectExpression 不整体降级:对象属性值引用变量时本就是 VarRefIR(现状路径),
|
|
185
|
+
* 属性值为折叠失败的表达式时由属性值递归各自降级为 ExprIR——整体降级语义等价
|
|
186
|
+
* 且会误伤 args 顶层容器(`cad.op({ size: ... })` 的整个 args 对象不能被降级)。
|
|
187
|
+
*
|
|
188
|
+
* 命名空间限制(§4.2.2):ExprIR 文本由箭头包装在语句 fn 体内求值,命名空间
|
|
189
|
+
* 绑定名(cad / import 绑定名)在该作用域不可见——含命名空间根调用的复合表达式
|
|
190
|
+
* 由调用方(containsNsRootedCall 守卫)显式报 E_VALUE,不会进入 ExprIR。
|
|
191
|
+
*/
|
|
192
|
+
function isExprWhitelist(node) {
|
|
193
|
+
if (!node || typeof node !== 'object')
|
|
194
|
+
return false;
|
|
195
|
+
switch (node.type) {
|
|
196
|
+
case 'Literal':
|
|
197
|
+
case 'Identifier':
|
|
198
|
+
return true;
|
|
199
|
+
case 'UnaryExpression':
|
|
200
|
+
return isExprWhitelist(node.argument);
|
|
201
|
+
case 'BinaryExpression':
|
|
202
|
+
case 'LogicalExpression':
|
|
203
|
+
return isExprWhitelist(node.left) && isExprWhitelist(node.right);
|
|
204
|
+
case 'ConditionalExpression':
|
|
205
|
+
return (isExprWhitelist(node.test) &&
|
|
206
|
+
isExprWhitelist(node.consequent) &&
|
|
207
|
+
isExprWhitelist(node.alternate));
|
|
208
|
+
case 'ArrayExpression':
|
|
209
|
+
return node.elements.every((el) => el !== null && el !== undefined && isExprWhitelist(el));
|
|
210
|
+
case 'MemberExpression':
|
|
211
|
+
// 可选链(a?.b / a?.[b])不在子集内
|
|
212
|
+
if (node.optional)
|
|
213
|
+
return false;
|
|
214
|
+
if (!isExprWhitelist(node.object))
|
|
215
|
+
return false;
|
|
216
|
+
return node.computed ? isExprWhitelist(node.property) : true;
|
|
217
|
+
case 'CallExpression': {
|
|
218
|
+
if (node.optional)
|
|
219
|
+
return false;
|
|
220
|
+
if (!isExprWhitelist(node.callee))
|
|
221
|
+
return false;
|
|
222
|
+
return node.arguments.every((a) => a.type !== 'SpreadElement' && isExprWhitelist(a));
|
|
223
|
+
}
|
|
224
|
+
default:
|
|
225
|
+
return false;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* 守卫:表达式树中是否含「命名空间根调用」(callee 链根标识符 ∈ nsNames 的
|
|
230
|
+
* CallExpression)。这类子表达式无法在语句 fn 体的箭头包装作用域内解析
|
|
231
|
+
* (命名空间经 ns.<name> 访问,非词法绑定)→ 调用方显式报 E_VALUE;
|
|
232
|
+
* 整体作为单个实参的命名空间调用仍走 CallRefIR(现状路径,不受影响)。
|
|
233
|
+
*/
|
|
234
|
+
function containsNsRootedCall(node, nsNames) {
|
|
235
|
+
if (!node || typeof node !== 'object')
|
|
236
|
+
return false;
|
|
237
|
+
switch (node.type) {
|
|
238
|
+
case 'CallExpression': {
|
|
239
|
+
const root = rootIdentifierOfCallee(node.callee);
|
|
240
|
+
if (root !== null && nsNames.has(root))
|
|
241
|
+
return true;
|
|
242
|
+
if (containsNsRootedCall(node.callee, nsNames))
|
|
243
|
+
return true;
|
|
244
|
+
return node.arguments.some((a) => containsNsRootedCall(a, nsNames));
|
|
245
|
+
}
|
|
246
|
+
case 'MemberExpression':
|
|
247
|
+
return containsNsRootedCall(node.object, nsNames) ||
|
|
248
|
+
(node.computed ? containsNsRootedCall(node.property, nsNames) : false);
|
|
249
|
+
case 'UnaryExpression':
|
|
250
|
+
return containsNsRootedCall(node.argument, nsNames);
|
|
251
|
+
case 'BinaryExpression':
|
|
252
|
+
case 'LogicalExpression':
|
|
253
|
+
return containsNsRootedCall(node.left, nsNames) || containsNsRootedCall(node.right, nsNames);
|
|
254
|
+
case 'ConditionalExpression':
|
|
255
|
+
return (containsNsRootedCall(node.test, nsNames) ||
|
|
256
|
+
containsNsRootedCall(node.consequent, nsNames) ||
|
|
257
|
+
containsNsRootedCall(node.alternate, nsNames));
|
|
258
|
+
case 'ArrayExpression':
|
|
259
|
+
return node.elements.some((el) => containsNsRootedCall(el, nsNames));
|
|
260
|
+
default:
|
|
261
|
+
return false;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
/** 取 callee 链(MemberExpression.object 逐层下钻)的根标识符名;非链形态返回 null。 */
|
|
265
|
+
function rootIdentifierOfCallee(callee) {
|
|
266
|
+
let cur = callee;
|
|
267
|
+
while (cur && typeof cur === 'object') {
|
|
268
|
+
if (cur.type === 'Identifier')
|
|
269
|
+
return cur.name;
|
|
270
|
+
if (cur.type === 'MemberExpression') {
|
|
271
|
+
cur = cur.object;
|
|
272
|
+
continue;
|
|
273
|
+
}
|
|
274
|
+
return null;
|
|
275
|
+
}
|
|
276
|
+
return null;
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* 预检:节点是否「需整体降级为 ExprIR」——数组内出现折叠失败(引用变量)且自身
|
|
280
|
+
* ∈ 白名单的表达式元素。折叠成功 / 纯字面量 / 参数 / 变量引用 / 嵌套调用均返回
|
|
281
|
+
* false(维持现状路径);未知标识符等非法形态也返回 false(由现状路径报错)。
|
|
282
|
+
* 对象不整体降级(属性值各自递归降级,见 isExprWhitelist 注释)。
|
|
283
|
+
*/
|
|
284
|
+
function needsExprFallback(node, paramNames, paramValues) {
|
|
285
|
+
if (!node || typeof node !== 'object')
|
|
286
|
+
return false;
|
|
287
|
+
switch (node.type) {
|
|
288
|
+
case 'Literal':
|
|
289
|
+
case 'Identifier':
|
|
290
|
+
case 'ObjectExpression':
|
|
291
|
+
return false;
|
|
292
|
+
case 'UnaryExpression':
|
|
293
|
+
case 'BinaryExpression':
|
|
294
|
+
case 'LogicalExpression':
|
|
295
|
+
case 'TemplateLiteral':
|
|
296
|
+
case 'ConditionalExpression': {
|
|
297
|
+
if (tryFoldConstExpr(node, paramNames, paramValues).ok)
|
|
298
|
+
return false;
|
|
299
|
+
return isExprWhitelist(node);
|
|
300
|
+
}
|
|
301
|
+
case 'ArrayExpression':
|
|
302
|
+
return node.elements.some((el) => el !== null && el !== undefined && needsExprFallback(el, paramNames, paramValues));
|
|
303
|
+
default:
|
|
304
|
+
return false;
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* 递归收集 ExprIR 引用的参数名 / 变量名:Identifier → 参数进 params(ctx 键)、
|
|
309
|
+
* 已声明变量进 refs(VarRef 语义)、未知标识符 → E_REFERENCE(loose 模式透传为 partName)。
|
|
310
|
+
*/
|
|
311
|
+
function collectExprIdentifiers(node, paramNames, varToId, line, params, refs, looseVars) {
|
|
312
|
+
if (!node || typeof node !== 'object')
|
|
313
|
+
return;
|
|
314
|
+
switch (node.type) {
|
|
315
|
+
case 'Identifier': {
|
|
316
|
+
const name = node.name;
|
|
317
|
+
if (paramNames.has(name)) {
|
|
318
|
+
params.add(name);
|
|
319
|
+
}
|
|
320
|
+
else if (varToId.has(name)) {
|
|
321
|
+
refs.add(String(varToId.get(name)));
|
|
322
|
+
}
|
|
323
|
+
else if (looseVars) {
|
|
324
|
+
// Loose mode: external variable passes through as its physical PartName
|
|
325
|
+
// (the append prefix is validated by the caller against the persistent ctx).
|
|
326
|
+
refs.add(String(asPartName(name)));
|
|
327
|
+
varToId.set(name, asPartName(name));
|
|
328
|
+
}
|
|
329
|
+
else {
|
|
330
|
+
throw new ParseError(`unknown identifier "${name}" in expression`, getLine(node), 'E_REFERENCE');
|
|
331
|
+
}
|
|
332
|
+
return;
|
|
333
|
+
}
|
|
334
|
+
case 'UnaryExpression':
|
|
335
|
+
collectExprIdentifiers(node.argument, paramNames, varToId, line, params, refs, looseVars);
|
|
336
|
+
return;
|
|
337
|
+
case 'BinaryExpression':
|
|
338
|
+
case 'LogicalExpression':
|
|
339
|
+
collectExprIdentifiers(node.left, paramNames, varToId, line, params, refs, looseVars);
|
|
340
|
+
collectExprIdentifiers(node.right, paramNames, varToId, line, params, refs, looseVars);
|
|
341
|
+
return;
|
|
342
|
+
case 'ConditionalExpression':
|
|
343
|
+
collectExprIdentifiers(node.test, paramNames, varToId, line, params, refs, looseVars);
|
|
344
|
+
collectExprIdentifiers(node.consequent, paramNames, varToId, line, params, refs, looseVars);
|
|
345
|
+
collectExprIdentifiers(node.alternate, paramNames, varToId, line, params, refs, looseVars);
|
|
346
|
+
return;
|
|
347
|
+
case 'ArrayExpression':
|
|
348
|
+
for (const el of node.elements) {
|
|
349
|
+
collectExprIdentifiers(el, paramNames, varToId, line, params, refs, looseVars);
|
|
350
|
+
}
|
|
351
|
+
return;
|
|
352
|
+
case 'ObjectExpression':
|
|
353
|
+
for (const prop of node.properties) {
|
|
354
|
+
if (prop?.type !== 'Property')
|
|
355
|
+
continue;
|
|
356
|
+
// shorthand { w } 的 value 即 Identifier(w),直接收集即可
|
|
357
|
+
collectExprIdentifiers(prop.value, paramNames, varToId, line, params, refs, looseVars);
|
|
358
|
+
}
|
|
359
|
+
return;
|
|
360
|
+
case 'MemberExpression': {
|
|
361
|
+
// 成员链:沿 .object 走到根标识符收为 ref(p0.solid → refs=['p0'];
|
|
362
|
+
// p0.holes[0].center → refs=['p0']);computed 属性表达式递归收集。
|
|
363
|
+
collectExprIdentifiers(node.object, paramNames, varToId, line, params, refs, looseVars);
|
|
364
|
+
if (node.computed) {
|
|
365
|
+
collectExprIdentifiers(node.property, paramNames, varToId, line, params, refs, looseVars);
|
|
366
|
+
}
|
|
367
|
+
return;
|
|
368
|
+
}
|
|
369
|
+
case 'CallExpression': {
|
|
370
|
+
// 方法调用 a.b(c):callee 链与实参递归收集(命名空间根调用已被 buildExprIR 守卫拦截)
|
|
371
|
+
collectExprIdentifiers(node.callee, paramNames, varToId, line, params, refs, looseVars);
|
|
372
|
+
for (const a of node.arguments) {
|
|
373
|
+
collectExprIdentifiers(a.type === 'SpreadElement' ? a.argument : a, paramNames, varToId, line, params, refs, looseVars);
|
|
374
|
+
}
|
|
375
|
+
return;
|
|
376
|
+
}
|
|
377
|
+
default:
|
|
378
|
+
return;
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
/** 构建 ExprIR:原文切片(acorn 坐标相对 sourceText)+ 引用名集合;置 hasComputedArgs。
|
|
382
|
+
* 守卫:含命名空间根调用的表达式显式 E_VALUE(命名空间绑定在语句 fn 体箭头包装
|
|
383
|
+
* 作用域内不可见,整体单实参的命名空间调用应走 CallRefIR)。 */
|
|
384
|
+
function buildExprIR(node, paramNames, varToId, line, flags, looseVars, sourceText, nsNames) {
|
|
385
|
+
if (containsNsRootedCall(node, nsNames)) {
|
|
386
|
+
throw new ParseError('namespace calls are only supported as a whole argument value (CallRefIR), not inside a larger expression', line, 'E_VALUE');
|
|
387
|
+
}
|
|
388
|
+
const params = new Set();
|
|
389
|
+
const refs = new Set();
|
|
390
|
+
collectExprIdentifiers(node, paramNames, varToId, line, params, refs, looseVars);
|
|
391
|
+
if (flags)
|
|
392
|
+
flags.computed = true;
|
|
393
|
+
return {
|
|
394
|
+
$expr: {
|
|
395
|
+
text: sourceText.slice(node.start, node.end),
|
|
396
|
+
refs: [...refs],
|
|
397
|
+
params: [...params],
|
|
398
|
+
},
|
|
399
|
+
};
|
|
400
|
+
}
|
|
401
|
+
/** 解析字面量 / 数组 / 对象 / ParamRefIR / GeomRef(F1:支持可静态折叠的表达式) */
|
|
402
|
+
function parseValueExpr(node, paramNames, paramValues, varToId, nsNames, defaultNsName, line, flags, looseVars = false, sourceText = '') {
|
|
403
|
+
if (!node)
|
|
404
|
+
throw new ParseError('missing value expression', line, 'E_VALUE');
|
|
405
|
+
switch (node.type) {
|
|
406
|
+
case 'Literal':
|
|
407
|
+
return node.value;
|
|
408
|
+
case 'Identifier': {
|
|
409
|
+
// 裸标识符:参数变量 → ParamRefIR;已声明变量 → VarRefIR(A7 消灭后通用)
|
|
410
|
+
const name = node.name;
|
|
411
|
+
if (paramNames.has(name)) {
|
|
412
|
+
const ref = { $param: name };
|
|
413
|
+
return ref;
|
|
414
|
+
}
|
|
415
|
+
const varId = varToId.get(name);
|
|
416
|
+
if (varId) {
|
|
417
|
+
return { $ref: varId };
|
|
418
|
+
}
|
|
419
|
+
// Loose mode (append passes only the newest statements): an external
|
|
420
|
+
// variable passes through as its physical PartName; the caller validates
|
|
421
|
+
// it against the persistent ctx (AppendPrefixError when missing).
|
|
422
|
+
if (looseVars) {
|
|
423
|
+
const external = asPartName(name);
|
|
424
|
+
varToId.set(name, external);
|
|
425
|
+
return { $ref: external };
|
|
426
|
+
}
|
|
427
|
+
throw new ParseError(`unknown identifier "${name}" in args value (not a declared param or variable)`, line, 'E_REFERENCE');
|
|
428
|
+
}
|
|
429
|
+
case 'ArrayExpression': {
|
|
430
|
+
// ExprIR 降级:数组含折叠失败(引用变量)的白名单表达式元素 → 整体作为运行时表达式
|
|
431
|
+
if (needsExprFallback(node, paramNames, paramValues)) {
|
|
432
|
+
return buildExprIR(node, paramNames, varToId, line, flags, looseVars, sourceText, nsNames);
|
|
433
|
+
}
|
|
434
|
+
const out = [];
|
|
435
|
+
for (const el of node.elements) {
|
|
436
|
+
if (el === null || el === undefined) {
|
|
437
|
+
throw new ParseError('array holes are not supported in args', line, 'E_VALUE');
|
|
438
|
+
}
|
|
439
|
+
if (el.type === 'SpreadElement') {
|
|
440
|
+
// [...parts]:parts 须为可折叠的数组参数/字面量
|
|
441
|
+
const r = tryFoldConstExpr(el.argument, paramNames, paramValues);
|
|
442
|
+
if (!r.ok || !Array.isArray(r.value)) {
|
|
443
|
+
throw new ParseError('cannot statically evaluate spread in args (must reference an array param or literal)', line, 'E_VALUE');
|
|
444
|
+
}
|
|
445
|
+
if (flags)
|
|
446
|
+
flags.computed = true;
|
|
447
|
+
out.push(...r.value);
|
|
448
|
+
}
|
|
449
|
+
else {
|
|
450
|
+
out.push(parseValueExpr(el, paramNames, paramValues, varToId, nsNames, defaultNsName, line, flags, looseVars, sourceText));
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
return out;
|
|
454
|
+
}
|
|
455
|
+
case 'ObjectExpression': {
|
|
456
|
+
// ExprIR 降级:对象含折叠失败(引用变量)的白名单表达式属性值 → 整体作为运行时表达式
|
|
457
|
+
if (needsExprFallback(node, paramNames, paramValues)) {
|
|
458
|
+
return buildExprIR(node, paramNames, varToId, line, flags, looseVars, sourceText, nsNames);
|
|
459
|
+
}
|
|
460
|
+
const obj = {};
|
|
461
|
+
for (const prop of node.properties) {
|
|
462
|
+
if (prop.type === 'SpreadElement') {
|
|
463
|
+
// {...opts}:opts 须为可折叠的对象参数/字面量
|
|
464
|
+
const r = tryFoldConstExpr(prop.argument, paramNames, paramValues);
|
|
465
|
+
if (!r.ok || typeof r.value !== 'object' || r.value === null || Array.isArray(r.value)) {
|
|
466
|
+
throw new ParseError('cannot statically evaluate object spread in args', line, 'E_VALUE');
|
|
467
|
+
}
|
|
468
|
+
if (flags)
|
|
469
|
+
flags.computed = true;
|
|
470
|
+
Object.assign(obj, r.value);
|
|
471
|
+
continue;
|
|
472
|
+
}
|
|
473
|
+
// shorthand property: { size } → { size: size }
|
|
474
|
+
const key = prop.key.type === 'Identifier' ? prop.key.name
|
|
475
|
+
: prop.key.type === 'Literal' ? String(prop.key.value)
|
|
476
|
+
: null;
|
|
477
|
+
if (key === null) {
|
|
478
|
+
throw new ParseError(`invalid object key`, line, 'E_VALUE');
|
|
479
|
+
}
|
|
480
|
+
// shorthand: { size } → value is the same identifier
|
|
481
|
+
if (prop.shorthand) {
|
|
482
|
+
if (paramNames.has(key)) {
|
|
483
|
+
obj[key] = { $param: key };
|
|
484
|
+
}
|
|
485
|
+
else {
|
|
486
|
+
throw new ParseError(`unknown shorthand identifier "${key}" (not a declared param)`, line, 'E_REFERENCE');
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
else {
|
|
490
|
+
obj[key] = parseValueExpr(prop.value, paramNames, paramValues, varToId, nsNames, defaultNsName, line, flags, looseVars, sourceText);
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
return obj;
|
|
494
|
+
}
|
|
495
|
+
case 'CallExpression': {
|
|
496
|
+
// 嵌套调用 → CallRefIR(A7 消灭后任意 <ns>.<ident>(...) 都合法;F2 放开命名空间)
|
|
497
|
+
const callee = node.callee;
|
|
498
|
+
if (callee?.type === 'MemberExpression' &&
|
|
499
|
+
callee.object?.type === 'Identifier' &&
|
|
500
|
+
nsNames.has(callee.object.name) &&
|
|
501
|
+
callee.property?.type === 'Identifier') {
|
|
502
|
+
const nsName = callee.object.name;
|
|
503
|
+
const innerCallee = callee.property.name;
|
|
504
|
+
const innerArgs = node.arguments.map((a) => parseValueExpr(a, paramNames, paramValues, varToId, nsNames, defaultNsName, line, flags, looseVars, sourceText));
|
|
505
|
+
return {
|
|
506
|
+
$call: {
|
|
507
|
+
callee: innerCallee,
|
|
508
|
+
args: innerArgs,
|
|
509
|
+
...(nsName !== defaultNsName ? { namespace: nsName } : {}),
|
|
510
|
+
},
|
|
511
|
+
};
|
|
512
|
+
}
|
|
513
|
+
// D2 扩展:非命名空间调用(方法调用 a.b(c) / 裸调用)∈ 白名单 → ExprIR;
|
|
514
|
+
// 白名单外(new/箭头/可选链等红线或语义空白)→ E_VALUE(显式禁止而非默认拒绝)
|
|
515
|
+
if (isExprWhitelist(node)) {
|
|
516
|
+
return buildExprIR(node, paramNames, varToId, line, flags, looseVars, sourceText, nsNames);
|
|
517
|
+
}
|
|
518
|
+
throw new ParseError('nested calls in args must be <ns>.<ident>(...) or a whitelisted expression', line, 'E_VALUE');
|
|
519
|
+
}
|
|
520
|
+
// D2 扩展:成员访问(p0.solid / p0.holes[0].center)∈ 白名单 → ExprIR(原文切片运行时求值)
|
|
521
|
+
case 'MemberExpression': {
|
|
522
|
+
if (isExprWhitelist(node)) {
|
|
523
|
+
return buildExprIR(node, paramNames, varToId, line, flags, looseVars, sourceText, nsNames);
|
|
524
|
+
}
|
|
525
|
+
throw new ParseError(`unsupported member expression in args: optional chaining is not allowed`, line, 'E_VALUE');
|
|
526
|
+
}
|
|
527
|
+
// F1 扩展:可静态折叠的表达式(无控制流 → 参数值已知,编译期求值)
|
|
528
|
+
case 'UnaryExpression':
|
|
529
|
+
case 'BinaryExpression':
|
|
530
|
+
case 'LogicalExpression':
|
|
531
|
+
case 'TemplateLiteral':
|
|
532
|
+
case 'ConditionalExpression': {
|
|
533
|
+
const r = tryFoldConstExpr(node, paramNames, paramValues);
|
|
534
|
+
if (!r.ok) {
|
|
535
|
+
// ExprIR 降级:折叠失败(引用了语句变量等)且节点 ∈ 白名单文法
|
|
536
|
+
// → 运行时求值(§3.3 / §4.3);白名单外 → E_VALUE
|
|
537
|
+
if (isExprWhitelist(node)) {
|
|
538
|
+
return buildExprIR(node, paramNames, varToId, line, flags, looseVars, sourceText, nsNames);
|
|
539
|
+
}
|
|
540
|
+
throw new ParseError(`cannot statically evaluate ${node.type} in args (must reference declared params or literals)`, line, 'E_VALUE');
|
|
541
|
+
}
|
|
542
|
+
// F1-E1:仅当折叠表达式引用了已声明的参数才标 computed。
|
|
543
|
+
// 纯字面量(含负数字面量,acorn 用 UnaryExpression 表示 -10)不标 computed,
|
|
544
|
+
// 避免宿主把普通字面量参数误判为「计算参数」而降级为只读(时间线无法回填编辑)。
|
|
545
|
+
if (flags && r.usedParam)
|
|
546
|
+
flags.computed = true;
|
|
547
|
+
return r.value;
|
|
548
|
+
}
|
|
549
|
+
default:
|
|
550
|
+
throw new ParseError(`unsupported value expression: ${node.type}`, line, 'E_VALUE');
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
// ── 位置实参解析(true-JS-subset 方案 §4.2.1:五种顶层调用形态统一入口) ──
|
|
554
|
+
/**
|
|
555
|
+
* 解析一条顶层调用语句的全部位置实参(true-JS-subset 方案 §4.2.1)。
|
|
556
|
+
*
|
|
557
|
+
* 位置实参槽接受任意合法 JS 表达式:变量引用(Identifier → VarRefIR,参数也在
|
|
558
|
+
* varToId 中)、字面量、数组、对象(尾随对象同时投影为 args 选项槽)、
|
|
559
|
+
* `<ns>.<fn>(...)` 嵌套调用(CallRefIR)、可折叠运算、白名单表达式(ExprIR,
|
|
560
|
+
* 含 MemberExpression / 方法调用)。SpreadElement 仅接受可静态折叠的数组参数/
|
|
561
|
+
* 字面量(展开为多个位置实参)。红线形态(new / 箭头函数 / await 等)由
|
|
562
|
+
* parseValueExpr 的 default 分支显式 E_VALUE。
|
|
563
|
+
*
|
|
564
|
+
* @param argNodes - the raw AST argument nodes of the call.
|
|
565
|
+
* @param label - error-message context (e.g. 'inputs', 'destructuring inputs', 'myFn() call').
|
|
566
|
+
* @returns the positional ArgIR list in call order.
|
|
567
|
+
*/
|
|
568
|
+
function parsePositionalArgs(argNodes, paramNames, paramValues, varToId, nsNames, defaultNsName, line, flags, looseVars, sourceText, label) {
|
|
569
|
+
const out = [];
|
|
570
|
+
for (const argNode of argNodes) {
|
|
571
|
+
if (argNode.type === 'Identifier') {
|
|
572
|
+
// 位置变量引用:varToId 统一解析(参数声明也在表中,与原 inputs 语义一致)
|
|
573
|
+
const inputId = varToId.get(argNode.name);
|
|
574
|
+
if (inputId) {
|
|
575
|
+
out.push({ $ref: inputId });
|
|
576
|
+
continue;
|
|
577
|
+
}
|
|
578
|
+
// Loose mode: external variable passes through as its physical PartName
|
|
579
|
+
// (the append prefix is validated by the caller against the persistent ctx).
|
|
580
|
+
if (looseVars) {
|
|
581
|
+
const external = asPartName(argNode.name);
|
|
582
|
+
varToId.set(argNode.name, external);
|
|
583
|
+
out.push({ $ref: external });
|
|
584
|
+
continue;
|
|
585
|
+
}
|
|
586
|
+
throw new ParseError(`unknown variable "${argNode.name}" in ${label}`, getLine(argNode), 'E_REFERENCE');
|
|
587
|
+
}
|
|
588
|
+
if (argNode.type === 'SpreadElement') {
|
|
589
|
+
// [...parts]:parts 须为可折叠的数组参数/字面量(展开为多个位置实参)
|
|
590
|
+
const r = tryFoldConstExpr(argNode.argument, paramNames, paramValues);
|
|
591
|
+
if (!r.ok || !Array.isArray(r.value)) {
|
|
592
|
+
throw new ParseError('cannot statically evaluate spread in arguments (must reference an array param or literal)', line, 'E_VALUE');
|
|
593
|
+
}
|
|
594
|
+
flags.computed = true;
|
|
595
|
+
out.push(...r.value);
|
|
596
|
+
continue;
|
|
597
|
+
}
|
|
598
|
+
out.push(parseValueExpr(argNode, paramNames, paramValues, varToId, nsNames, defaultNsName, line, flags, looseVars, sourceText));
|
|
599
|
+
}
|
|
600
|
+
return out;
|
|
601
|
+
}
|
|
602
|
+
/**
|
|
603
|
+
* 解析一条 `const varName = [await] <ns>.<op>(...)` 语句。
|
|
604
|
+
*/
|
|
605
|
+
/**
|
|
606
|
+
* ABI 绑定校验(§3.6 / D11 / true-JS-subset §4.2.4):本机函数调用 `myFn(a1..aM, { key1: v1, ... })`,
|
|
607
|
+
* 设形参表 [p1..pk]:
|
|
608
|
+
* 1. 位置实参 a1..aM 按序绑定 p1..pM(M ≤ k,超出 → E_ARG);位置实参可为任意
|
|
609
|
+
* 合法 JS 表达式形态(只数个数,不再要求 Identifier——true-JS-subset 放开);
|
|
610
|
+
* 2. 尾部对象键绑定剩余形参 p_{M+1}..p_k(按名);未知键 / 与位置占用冲突 → E_ARG;
|
|
611
|
+
* 3. 未被绑定的形参 → undefined(JS 语义,不报错);
|
|
612
|
+
* 4. keep/keepHidden 键先剥离,不参与形参校验(§3.6 第 4 条)。
|
|
613
|
+
* @param callee - 函数名(错误消息用)。
|
|
614
|
+
* @param params - 函数形参表(来自 parseScript 预扫描的 localFnParams)。
|
|
615
|
+
* @param positionalCount - 位置实参个数(M)。
|
|
616
|
+
* @param args - 尾部对象键值(keep/keepHidden 可能仍在其中,校验时跳过)。
|
|
617
|
+
* @param line - 报错行号。
|
|
618
|
+
*/
|
|
619
|
+
function validateLocalAbi(callee, params, positionalCount, args, line) {
|
|
620
|
+
const M = positionalCount;
|
|
621
|
+
if (M > params.length) {
|
|
622
|
+
throw new ParseError(`function "${callee}" takes at most ${params.length} positional argument(s), got ${M}`, line, 'E_ARG');
|
|
623
|
+
}
|
|
624
|
+
for (const key of Object.keys(args)) {
|
|
625
|
+
if (key === 'keep' || key === 'keepHidden')
|
|
626
|
+
continue;
|
|
627
|
+
const idx = params.indexOf(key);
|
|
628
|
+
if (idx === -1) {
|
|
629
|
+
throw new ParseError(`function "${callee}" has no parameter named "${key}"`, line, 'E_ARG');
|
|
630
|
+
}
|
|
631
|
+
if (idx < M) {
|
|
632
|
+
throw new ParseError(`function "${callee}" parameter "${key}" is already bound by a positional argument`, line, 'E_ARG');
|
|
633
|
+
}
|
|
634
|
+
}
|
|
635
|
+
}
|
|
636
|
+
function parseCadStatement(declNode, paramNames, paramValues, varToId, nsNames, defaultNsName, looseVars = false, sourceText = '', localFnParams, looseLocalCalls = false) {
|
|
637
|
+
const line = getLine(declNode);
|
|
638
|
+
// 提取变量名
|
|
639
|
+
if (declNode.id?.type !== 'Identifier') {
|
|
640
|
+
throw new ParseError('expected identifier on left side of const declaration', line, 'E_STATEMENT');
|
|
641
|
+
}
|
|
642
|
+
const varName = declNode.id.name;
|
|
643
|
+
// 提取 init(可能包在 AwaitExpression 里)
|
|
644
|
+
let init = declNode.init;
|
|
645
|
+
if (init?.type === 'AwaitExpression') {
|
|
646
|
+
init = init.argument;
|
|
647
|
+
}
|
|
648
|
+
// init 必须是 CallExpression
|
|
649
|
+
if (init?.type !== 'CallExpression') {
|
|
650
|
+
throw new ParseError(`expected <ns>.<op>(...) or local function call, got ${init?.type ?? 'null'}`, line, 'E_STATEMENT');
|
|
651
|
+
}
|
|
652
|
+
const callee = init.callee;
|
|
653
|
+
// 命名空间调用:callee 是 MemberExpression <ns>.<op>(cad 或顶层 import 绑定名,F2 消灭硬编码)
|
|
654
|
+
const isNsCall = callee?.type === 'MemberExpression' &&
|
|
655
|
+
callee.object?.type === 'Identifier' &&
|
|
656
|
+
nsNames.has(callee.object.name) &&
|
|
657
|
+
callee.property?.type === 'Identifier';
|
|
658
|
+
// 本机函数调用:callee 是裸标识符且 ∈ 脚本函数集(§3.4 / §4.2)
|
|
659
|
+
const isLocalCall = callee?.type === 'Identifier' && (localFnParams?.has(callee.name) ?? false);
|
|
660
|
+
// 宽松本机调用(单行提取 codeToArgs):裸 callee 不在函数集时也放行,
|
|
661
|
+
// 视为 local 调用候选(ABI 形态未知 → 跳过绑定校验),由调用方在完整上下文校验。
|
|
662
|
+
const looseLocalCall = !isLocalCall && looseLocalCalls && callee?.type === 'Identifier';
|
|
663
|
+
if (!isNsCall && !isLocalCall && !looseLocalCall) {
|
|
664
|
+
// 裸 callee 且不在函数集 → 「函数不存在」(E_REFERENCE,§3.4 / D15);其余形态 → E_STATEMENT
|
|
665
|
+
if (callee?.type === 'Identifier') {
|
|
666
|
+
throw new ParseError(`function "${callee.name}" does not exist in this script`, line, 'E_REFERENCE');
|
|
667
|
+
}
|
|
668
|
+
throw new ParseError('expected <ns>.<op>(...) or local function call', line, 'E_STATEMENT');
|
|
669
|
+
}
|
|
670
|
+
const nsName = isNsCall ? callee.object.name : undefined;
|
|
671
|
+
const opName = isNsCall ? callee.property.name : callee.name;
|
|
672
|
+
const local = isLocalCall || looseLocalCall;
|
|
673
|
+
// 位置实参统一解析(true-JS-subset §4.2.1):变量/字面量/对象/嵌套调用/表达式任意混排;
|
|
674
|
+
// 尾随纯对象同时投影为 args 选项槽。不再有"args = parsed 覆盖赋值"静默坑(D5:多对象按位置如实传递)。
|
|
675
|
+
const flags = { computed: false };
|
|
676
|
+
const positional = parsePositionalArgs(init.arguments, paramNames, paramValues, varToId, nsNames, defaultNsName, line, flags, looseVars, sourceText, 'inputs');
|
|
677
|
+
const args = splitPositionalOptions(positional).named;
|
|
678
|
+
// 本机调用:ABI 绑定校验(§3.6,parse 期拦截 E_ARG)
|
|
679
|
+
// 位置实参个数校验(形态校验已删——任意合法 JS 表达式均可占位,§4.2.4)。
|
|
680
|
+
// 宽松本机调用(codeToArgs 单行提取)形参未知 → 跳过绑定校验,由调用方在完整上下文校验。
|
|
681
|
+
if (local && localFnParams && !looseLocalCall) {
|
|
682
|
+
const { values, named } = splitPositionalOptions(positional);
|
|
683
|
+
validateLocalAbi(opName, localFnParams.get(opName) ?? [], values.length, named, line);
|
|
684
|
+
}
|
|
685
|
+
// Phase 3:id 不再赋变量名,由最终遍历赋 sN;变量名记录到 declaredOutputs
|
|
686
|
+
const stmt = {
|
|
687
|
+
id: asStmtId('__pending__'),
|
|
688
|
+
callee: opName,
|
|
689
|
+
args,
|
|
690
|
+
positional,
|
|
691
|
+
outputs: [],
|
|
692
|
+
hasAssignment: true,
|
|
693
|
+
...(local ? { local: true } : nsName !== defaultNsName ? { namespace: nsName } : {}),
|
|
694
|
+
...(flags.computed ? { hasComputedArgs: true } : {}),
|
|
695
|
+
};
|
|
696
|
+
return { stmt, varName, declaredOutputs: [varName] };
|
|
697
|
+
}
|
|
698
|
+
/**
|
|
699
|
+
* 解析 `const { k1: v1, k2: v2 } = [await] <ns>.<any>(...)` 或本机函数调用(§3.4)。
|
|
700
|
+
*
|
|
701
|
+
* 任意键数(1..N)、任意 callee(不再限 split/front/back);本机函数调用走 local 分支。
|
|
702
|
+
*/
|
|
703
|
+
function parseDestructuring(declNode, paramNames, paramValues, varToId, nsNames, defaultNsName, looseVars = false, sourceText = '', localFnParams, looseLocalCalls = false) {
|
|
704
|
+
const line = getLine(declNode);
|
|
705
|
+
// id 必须是 ObjectPattern
|
|
706
|
+
if (declNode.id?.type !== 'ObjectPattern') {
|
|
707
|
+
throw new ParseError('expected object pattern for destructuring', line, 'E_STATEMENT');
|
|
708
|
+
}
|
|
709
|
+
const props = declNode.id.properties;
|
|
710
|
+
if (props.length === 0) {
|
|
711
|
+
throw new ParseError('destructuring must have at least one property', line, 'E_STATEMENT');
|
|
712
|
+
}
|
|
713
|
+
const keys = [];
|
|
714
|
+
const valueNames = [];
|
|
715
|
+
for (const prop of props) {
|
|
716
|
+
if (prop.type !== 'Property' || prop.key?.type !== 'Identifier') {
|
|
717
|
+
throw new ParseError('destructuring properties must be identifiers', line, 'E_STATEMENT');
|
|
718
|
+
}
|
|
719
|
+
if (prop.value?.type !== 'Identifier') {
|
|
720
|
+
throw new ParseError(`destructuring value for "${prop.key.name}" must be an identifier`, line, 'E_STATEMENT');
|
|
721
|
+
}
|
|
722
|
+
keys.push(prop.key.name);
|
|
723
|
+
valueNames.push(prop.value.name);
|
|
724
|
+
}
|
|
725
|
+
// 提取 init(可包 AwaitExpression),必须是调用(命名空间或本机函数)
|
|
726
|
+
let init = declNode.init;
|
|
727
|
+
if (init?.type === 'AwaitExpression') {
|
|
728
|
+
init = init.argument;
|
|
729
|
+
}
|
|
730
|
+
if (init?.type !== 'CallExpression') {
|
|
731
|
+
throw new ParseError(`expected <ns>.<op>(...) or local function call in destructuring, got ${init?.type ?? 'null'}`, line, 'E_STATEMENT');
|
|
732
|
+
}
|
|
733
|
+
const callee = init.callee;
|
|
734
|
+
const isNsCall = callee?.type === 'MemberExpression' &&
|
|
735
|
+
callee.object?.type === 'Identifier' &&
|
|
736
|
+
nsNames.has(callee.object.name) &&
|
|
737
|
+
callee.property?.type === 'Identifier';
|
|
738
|
+
const isLocalCall = callee?.type === 'Identifier' && (localFnParams?.has(callee.name) ?? false);
|
|
739
|
+
// 宽松本机调用(单行提取 codeToArgs):裸 callee 不在函数集时也放行,
|
|
740
|
+
// 视为 local 调用候选(ABI 形态未知 → 跳过绑定校验),由调用方在完整上下文校验。
|
|
741
|
+
const looseLocalCall = !isLocalCall && looseLocalCalls && callee?.type === 'Identifier';
|
|
742
|
+
if (!isNsCall && !isLocalCall && !looseLocalCall) {
|
|
743
|
+
if (callee?.type === 'Identifier') {
|
|
744
|
+
throw new ParseError(`function "${callee.name}" does not exist in this script`, line, 'E_REFERENCE');
|
|
745
|
+
}
|
|
746
|
+
throw new ParseError('destructuring is only allowed for <ns>.<op>(...) or local function calls', line, 'E_STATEMENT');
|
|
747
|
+
}
|
|
748
|
+
const nsName = isNsCall ? callee.object.name : undefined;
|
|
749
|
+
const opName = isNsCall ? callee.property.name : callee.name;
|
|
750
|
+
const local = isLocalCall || looseLocalCall;
|
|
751
|
+
// 位置实参统一解析(true-JS-subset §4.2.1);尾随纯对象同时投影为 args 选项槽。
|
|
752
|
+
// 旧 Object.assign 合并已删(D5:多对象按位置如实传递,不合并不覆盖)。
|
|
753
|
+
const flags = { computed: false };
|
|
754
|
+
const positional = parsePositionalArgs(init.arguments, paramNames, paramValues, varToId, nsNames, defaultNsName, line, flags, looseVars, sourceText, 'destructuring inputs');
|
|
755
|
+
const args = splitPositionalOptions(positional).named;
|
|
756
|
+
// 本机调用:ABI 绑定校验(§3.6,parse 期拦截 E_ARG)
|
|
757
|
+
// 宽松本机调用(codeToArgs 单行提取)形参未知 → 跳过绑定校验,由调用方在完整上下文校验。
|
|
758
|
+
if (local && localFnParams && !looseLocalCall) {
|
|
759
|
+
const { values, named } = splitPositionalOptions(positional);
|
|
760
|
+
validateLocalAbi(opName, localFnParams.get(opName) ?? [], values.length, named, line);
|
|
761
|
+
}
|
|
762
|
+
// Phase 3:id 不再赋变量名;outputs 在最终遍历经 varToId 解析后写入
|
|
763
|
+
const stmt = {
|
|
764
|
+
id: asStmtId('__pending__'),
|
|
765
|
+
callee: opName,
|
|
766
|
+
args,
|
|
767
|
+
positional,
|
|
768
|
+
outputs: [],
|
|
769
|
+
outputKeys: keys,
|
|
770
|
+
hasAssignment: true,
|
|
771
|
+
...(local ? { local: true } : nsName !== defaultNsName ? { namespace: nsName } : {}),
|
|
772
|
+
...(flags.computed ? { hasComputedArgs: true } : {}),
|
|
773
|
+
};
|
|
774
|
+
return { stmt, valueNames, declaredOutputs: valueNames };
|
|
775
|
+
}
|
|
776
|
+
// ── meta 解析 ──
|
|
777
|
+
/**
|
|
778
|
+
* 解析 return 语句,提取 terminal shape(s) 和 meta。
|
|
779
|
+
*
|
|
780
|
+
* 支持三种形式:
|
|
781
|
+
* - `return part0`(裸标识符)→ 单终端,无 meta
|
|
782
|
+
* - `return { shape: part0, name, color, ... }`(单终端 + meta)
|
|
783
|
+
* - `return [ { shape: part1, name, ... }, { shape: part2, name, ... } ]`(多终端)
|
|
784
|
+
*/
|
|
785
|
+
function parseReturnStatement(node, varToId) {
|
|
786
|
+
const line = getLine(node);
|
|
787
|
+
const arg = node.argument;
|
|
788
|
+
if (!arg) {
|
|
789
|
+
return { terminalShapeId: null, meta: undefined, terminalShapes: undefined };
|
|
790
|
+
}
|
|
791
|
+
// return part0(裸标识符)
|
|
792
|
+
if (arg.type === 'Identifier') {
|
|
793
|
+
const ref = varToId.get(arg.name);
|
|
794
|
+
if (!ref) {
|
|
795
|
+
throw new ParseError(`unknown variable "${arg.name}" in return`, line);
|
|
796
|
+
}
|
|
797
|
+
return { terminalShapeId: ref, meta: undefined, terminalShapes: undefined };
|
|
798
|
+
}
|
|
799
|
+
// return { shape: part0, name, color, ... }
|
|
800
|
+
if (arg.type === 'ObjectExpression') {
|
|
801
|
+
const result = parseReturnObject(arg, varToId, line);
|
|
802
|
+
return { terminalShapeId: result.id, meta: result.meta, terminalShapes: undefined };
|
|
803
|
+
}
|
|
804
|
+
// return [ { shape: ... }, ... ](多终端)
|
|
805
|
+
if (arg.type === 'ArrayExpression') {
|
|
806
|
+
const terminalShapes = [];
|
|
807
|
+
for (const elem of arg.elements) {
|
|
808
|
+
if (elem?.type !== 'ObjectExpression') {
|
|
809
|
+
throw new ParseError('return array elements must be objects { shape, ... }', line);
|
|
810
|
+
}
|
|
811
|
+
const result = parseReturnObject(elem, varToId, line);
|
|
812
|
+
if (result.id) {
|
|
813
|
+
terminalShapes.push({ id: result.id, meta: result.meta });
|
|
814
|
+
}
|
|
815
|
+
}
|
|
816
|
+
if (terminalShapes.length === 0) {
|
|
817
|
+
throw new ParseError('return array must have at least one element', line);
|
|
818
|
+
}
|
|
819
|
+
// 单元素数组等价为单终端
|
|
820
|
+
if (terminalShapes.length === 1) {
|
|
821
|
+
return { terminalShapeId: terminalShapes[0].id, meta: terminalShapes[0].meta, terminalShapes: undefined };
|
|
822
|
+
}
|
|
823
|
+
return { terminalShapeId: null, meta: undefined, terminalShapes };
|
|
824
|
+
}
|
|
825
|
+
throw new ParseError(`unsupported return expression: ${arg.type}`, line);
|
|
826
|
+
}
|
|
827
|
+
/** 解析单个 return 元素 { shape: varName, name?, color?, metalness?, roughness? } */
|
|
828
|
+
function parseReturnObject(objNode, varToId, line) {
|
|
829
|
+
let id = null;
|
|
830
|
+
const meta = {};
|
|
831
|
+
for (const prop of objNode.properties) {
|
|
832
|
+
const key = prop.key?.type === 'Identifier' ? prop.key.name
|
|
833
|
+
: prop.key?.type === 'Literal' ? String(prop.key.value)
|
|
834
|
+
: null;
|
|
835
|
+
if (!key)
|
|
836
|
+
continue;
|
|
837
|
+
if (key === 'shape') {
|
|
838
|
+
if (prop.value?.type === 'Identifier') {
|
|
839
|
+
const ref = varToId.get(prop.value.name);
|
|
840
|
+
if (!ref) {
|
|
841
|
+
throw new ParseError(`unknown variable "${prop.value.name}" in return shape`, line);
|
|
842
|
+
}
|
|
843
|
+
id = ref;
|
|
844
|
+
}
|
|
845
|
+
}
|
|
846
|
+
else if (key === 'name') {
|
|
847
|
+
if (prop.value?.type === 'Literal') {
|
|
848
|
+
meta.name = prop.value.value;
|
|
849
|
+
}
|
|
850
|
+
}
|
|
851
|
+
else if (key === 'color') {
|
|
852
|
+
if (prop.value?.type === 'Literal') {
|
|
853
|
+
if (!meta.appearance)
|
|
854
|
+
meta.appearance = {};
|
|
855
|
+
meta.appearance.color = prop.value.value;
|
|
856
|
+
}
|
|
857
|
+
}
|
|
858
|
+
else if (key === 'metalness') {
|
|
859
|
+
if (prop.value?.type === 'Literal') {
|
|
860
|
+
if (!meta.appearance)
|
|
861
|
+
meta.appearance = {};
|
|
862
|
+
meta.appearance.metalness = prop.value.value;
|
|
863
|
+
}
|
|
864
|
+
}
|
|
865
|
+
else if (key === 'roughness') {
|
|
866
|
+
if (prop.value?.type === 'Literal') {
|
|
867
|
+
if (!meta.appearance)
|
|
868
|
+
meta.appearance = {};
|
|
869
|
+
meta.appearance.roughness = prop.value.value;
|
|
870
|
+
}
|
|
871
|
+
}
|
|
872
|
+
}
|
|
873
|
+
return { id, meta: Object.keys(meta).length > 0 ? meta : undefined };
|
|
874
|
+
}
|
|
875
|
+
// ── 引用收集(Phase 1: VM 执行 deps 计算) ──
|
|
876
|
+
/** 递归收集 ArgIR 中的变量引用:$param → 参数名;$ref → 变量名;$call → 递归收集内部 args;$expr → refs/params 并入(§4.3)。 */
|
|
877
|
+
function collectRefsFromArg(value, out) {
|
|
878
|
+
if (value === null || value === undefined)
|
|
879
|
+
return;
|
|
880
|
+
if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean')
|
|
881
|
+
return;
|
|
882
|
+
if (isParamRef(value)) {
|
|
883
|
+
out.add(value.$param);
|
|
884
|
+
return;
|
|
885
|
+
}
|
|
886
|
+
if (isVarRef(value)) {
|
|
887
|
+
out.add(value.$ref);
|
|
888
|
+
return;
|
|
889
|
+
}
|
|
890
|
+
if (isCallRef(value)) {
|
|
891
|
+
for (const a of value.$call.args)
|
|
892
|
+
collectRefsFromArg(a, out);
|
|
893
|
+
return;
|
|
894
|
+
}
|
|
895
|
+
if (isExprRef(value)) {
|
|
896
|
+
for (const p of value.$expr.params)
|
|
897
|
+
out.add(p);
|
|
898
|
+
for (const r of value.$expr.refs)
|
|
899
|
+
out.add(r);
|
|
900
|
+
return;
|
|
901
|
+
}
|
|
902
|
+
if (Array.isArray(value)) {
|
|
903
|
+
for (const v of value)
|
|
904
|
+
collectRefsFromArg(v, out);
|
|
905
|
+
return;
|
|
906
|
+
}
|
|
907
|
+
if (typeof value === 'object') {
|
|
908
|
+
for (const v of Object.values(value))
|
|
909
|
+
collectRefsFromArg(v, out);
|
|
910
|
+
}
|
|
911
|
+
}
|
|
912
|
+
/**
|
|
913
|
+
* 收集单条语句引用的全部变量名(positional + args 中 $param / $ref / 嵌套调用 /
|
|
914
|
+
* ExprIR refs/params + receiver)。positional 与 args 都扫:args 是尾随对象投影
|
|
915
|
+
* (真源 positional 已含它,重复扫描幂等);手工构造 IR 可能只填 args。
|
|
916
|
+
* 存入 stmt.refs,编译期据此翻译为 deps(定义这些变量的语句 id)。
|
|
917
|
+
*/
|
|
918
|
+
function collectStatementRefs(stmt) {
|
|
919
|
+
const refs = new Set();
|
|
920
|
+
for (const arg of stmt.positional)
|
|
921
|
+
collectRefsFromArg(arg, refs);
|
|
922
|
+
for (const arg of Object.values(stmt.args))
|
|
923
|
+
collectRefsFromArg(arg, refs);
|
|
924
|
+
// receiver:成员方法调用(add_constraint/do_assemble 等)依赖其 receiver 变量,
|
|
925
|
+
// 不加入则成员调用对 compound 的依赖边缺失(连带 bug,见命名分层修复文档 §2.4)。
|
|
926
|
+
if (stmt.receiver)
|
|
927
|
+
refs.add(stmt.receiver);
|
|
928
|
+
return [...refs];
|
|
929
|
+
}
|
|
930
|
+
// ── 语句黑名单(F1:白名单 → 黑名单) ──
|
|
931
|
+
/** 控制流语句(faijs 唯一禁令,V1.5 专用错误码)。 */
|
|
932
|
+
const CONTROL_FLOW_TYPES = new Set([
|
|
933
|
+
'IfStatement', 'ForStatement', 'ForInStatement', 'ForOfStatement',
|
|
934
|
+
'WhileStatement', 'DoWhileStatement', 'SwitchStatement', 'TryStatement',
|
|
935
|
+
'ThrowStatement', 'BreakStatement', 'ContinueStatement', 'LabeledStatement',
|
|
936
|
+
'WithStatement',
|
|
937
|
+
]);
|
|
938
|
+
/** 文本仅含注释与空白(import 头部连续段约束用)。 */
|
|
939
|
+
function onlyWhitespaceAndComments(text) {
|
|
940
|
+
return text
|
|
941
|
+
.replace(/\/\*[\s\S]*?\*\//g, '')
|
|
942
|
+
.replace(/\/\/[^\n]*/g, '')
|
|
943
|
+
.trim() === '';
|
|
944
|
+
}
|
|
945
|
+
/** 文本行数(空文本 = 0;含 n 个换行的文本 = n+1 行)。 */
|
|
946
|
+
function countLines(text) {
|
|
947
|
+
if (text === '')
|
|
948
|
+
return 0;
|
|
949
|
+
return (text.match(/\n/g) ?? []).length + 1;
|
|
950
|
+
}
|
|
951
|
+
/** 由 specifier 推导包名:@scope/pkg/sub → @scope/pkg;gear-lib-demo → gear-lib-demo。 */
|
|
952
|
+
function derivePackageName(specifier) {
|
|
953
|
+
if (specifier.startsWith('@')) {
|
|
954
|
+
const parts = specifier.split('/');
|
|
955
|
+
return parts.length >= 2 ? `${parts[0]}/${parts[1]}` : specifier;
|
|
956
|
+
}
|
|
957
|
+
return specifier.split('/')[0];
|
|
958
|
+
}
|
|
959
|
+
/** ImportDeclaration → ImportIR(F2)。 */
|
|
960
|
+
function importDeclToIR(decl, line) {
|
|
961
|
+
const specifier = decl.source?.value;
|
|
962
|
+
if (typeof specifier !== 'string' || specifier === '') {
|
|
963
|
+
throw new ParseError('import must have a string specifier', line, 'E_IMPORT');
|
|
964
|
+
}
|
|
965
|
+
const packageName = derivePackageName(specifier);
|
|
966
|
+
const specifiers = decl.specifiers ?? [];
|
|
967
|
+
if (specifiers.length === 0) {
|
|
968
|
+
throw new ParseError('side-effect imports are not supported (use import * as ns from "pkg")', line, 'E_IMPORT');
|
|
969
|
+
}
|
|
970
|
+
const first = specifiers[0];
|
|
971
|
+
if (first.type === 'ImportNamespaceSpecifier') {
|
|
972
|
+
const localName = first.local?.name;
|
|
973
|
+
if (typeof localName !== 'string')
|
|
974
|
+
throw new ParseError('invalid namespace import binding', line, 'E_IMPORT');
|
|
975
|
+
return { specifier, kind: 'namespace', localName, packageName };
|
|
976
|
+
}
|
|
977
|
+
if (first.type === 'ImportDefaultSpecifier') {
|
|
978
|
+
const localName = first.local?.name;
|
|
979
|
+
if (typeof localName !== 'string')
|
|
980
|
+
throw new ParseError('invalid default import binding', line, 'E_IMPORT');
|
|
981
|
+
return { specifier, kind: 'default', localName, packageName };
|
|
982
|
+
}
|
|
983
|
+
// ImportSpecifier(named)
|
|
984
|
+
const bindings = specifiers.map((s) => s.local?.name);
|
|
985
|
+
if (bindings.some((b) => typeof b !== 'string')) {
|
|
986
|
+
throw new ParseError('invalid named import bindings', line, 'E_IMPORT');
|
|
987
|
+
}
|
|
988
|
+
return { specifier, kind: 'named', localName: bindings[0], bindings, packageName };
|
|
989
|
+
}
|
|
990
|
+
/**
|
|
991
|
+
* 默认分支:黑名单式拒绝(normal-js-subset P1)。
|
|
992
|
+
* 除控制流(专用 E_CONTROL_FLOW 码)与安全红线(eval/new/export)外,
|
|
993
|
+
* 未识别的语句形态一律 E_STATEMENT。
|
|
994
|
+
*/
|
|
995
|
+
function throwUnsupportedStatement(node, line) {
|
|
996
|
+
if (CONTROL_FLOW_TYPES.has(node.type)) {
|
|
997
|
+
throw new ParseError(`control flow statement "${node.type}" is not allowed in faijs`, line, 'E_CONTROL_FLOW');
|
|
998
|
+
}
|
|
999
|
+
if (node.type === 'ImportDeclaration') {
|
|
1000
|
+
throw new ParseError('import statements must be at the top level, before any statements', line, 'E_IMPORT');
|
|
1001
|
+
}
|
|
1002
|
+
if (node.type === 'ExportNamedDeclaration' || node.type === 'ExportAllDeclaration') {
|
|
1003
|
+
throw new ParseError('export statements are not allowed (faijs auto-exports the default module)', line, 'E_STATEMENT');
|
|
1004
|
+
}
|
|
1005
|
+
if (node.type === 'ClassDeclaration') {
|
|
1006
|
+
throw new ParseError('class declarations are not allowed in faijs', line, 'E_STATEMENT');
|
|
1007
|
+
}
|
|
1008
|
+
if (node.type === 'NewExpression') {
|
|
1009
|
+
throw new ParseError('"new" expressions are not allowed in faijs (new Function is a safety red line)', line, 'E_STATEMENT');
|
|
1010
|
+
}
|
|
1011
|
+
throw new ParseError(`unsupported statement: ${node.type}`, line, 'E_STATEMENT');
|
|
1012
|
+
}
|
|
1013
|
+
// ── 顶层函数定义(A1 / 控制流放松方案 Phase 2) ──
|
|
1014
|
+
// bodyHash 哈希的唯一家在 fnv-hash.ts(无 IR 方案下 metadata-extractor 复用)。
|
|
1015
|
+
/**
|
|
1016
|
+
* 解析顶层 `function name(params) { ... }` 为 FunctionDefIR(A1 / Phase 2)。
|
|
1017
|
+
*
|
|
1018
|
+
* 函数定义**不是几何语句**:不进 statements、不参与 DAG 终端判定;
|
|
1019
|
+
* 函数体原文按 acorn 坐标从 parseCode 切片保留,codegen 原样打印回文件(往返保真)。
|
|
1020
|
+
*
|
|
1021
|
+
* 函数体校验(Phase 2 放行控制流,§3.1 / §3.2):
|
|
1022
|
+
* - 控制流(if/for/while/switch/try/throw/break/continue/labeled)放行;
|
|
1023
|
+
* - eval / new / export / class / import / with / 动态 import() 仍拒(P5 安全红线);
|
|
1024
|
+
* - 体内禁止调用本机函数(裸 callee 调用 → E_STATEMENT,D10);
|
|
1025
|
+
* - var 允许(D12,不新增收紧)。
|
|
1026
|
+
*
|
|
1027
|
+
* @param codeOffset parseCode 相对原始 code 的字符偏移(扁平封装前缀;容器格式为 0)。
|
|
1028
|
+
* 函数体坐标经此换算为相对原始文本,供宿主 bodyRange 使用。
|
|
1029
|
+
*/
|
|
1030
|
+
function parseFunctionDeclaration(node, line, functions, parseCode, codeOffset = 0) {
|
|
1031
|
+
const name = node.id?.name;
|
|
1032
|
+
if (typeof name !== 'string' || name === '') {
|
|
1033
|
+
throw new ParseError('function declaration must have a name', line, 'E_STATEMENT');
|
|
1034
|
+
}
|
|
1035
|
+
// 查重(D14):localFns 发射与 bodyHash 按名查表要求函数名唯一
|
|
1036
|
+
if (functions.some((f) => f.name === name)) {
|
|
1037
|
+
throw new ParseError(`function "${name}" is already defined (duplicate function names are not allowed)`, line, 'E_STATEMENT');
|
|
1038
|
+
}
|
|
1039
|
+
// 形参:只允许简单 Identifier(解构/默认值/rest 参数不在子集内)
|
|
1040
|
+
const params = [];
|
|
1041
|
+
for (const p of node.params ?? []) {
|
|
1042
|
+
if (p?.type !== 'Identifier') {
|
|
1043
|
+
throw new ParseError('function params must be plain identifiers', line, 'E_STATEMENT');
|
|
1044
|
+
}
|
|
1045
|
+
params.push(p.name);
|
|
1046
|
+
}
|
|
1047
|
+
// 函数体必须是 BlockStatement(acorn 对合法函数声明必然如此,防御性校验)
|
|
1048
|
+
if (node.body?.type !== 'BlockStatement') {
|
|
1049
|
+
throw new ParseError('function body must be a block statement', line, 'E_STATEMENT');
|
|
1050
|
+
}
|
|
1051
|
+
// 函数体校验(Phase 2:放行控制流,保留安全红线,禁体内本机调用)
|
|
1052
|
+
validateFunctionBody(node.body, line);
|
|
1053
|
+
// 函数体原文(花括号内的完整文本,含换行/缩进)——坐标相对 parseCode
|
|
1054
|
+
const body = parseCode.slice(node.body.start + 1, node.body.end - 1);
|
|
1055
|
+
functions.push({
|
|
1056
|
+
name,
|
|
1057
|
+
params,
|
|
1058
|
+
body,
|
|
1059
|
+
bodyHash: fnv1a32(body),
|
|
1060
|
+
bodyRange: { start: node.body.start + 1 - codeOffset, end: node.body.end - 1 - codeOffset },
|
|
1061
|
+
});
|
|
1062
|
+
}
|
|
1063
|
+
/**
|
|
1064
|
+
* 校验函数体(Phase 2,§3.1 / §3.2 / D10 / D12):
|
|
1065
|
+
* - **放行**控制流(if/for/while/switch/try/throw/break/continue/labeled)与 var;
|
|
1066
|
+
* - **仍拒**(安全红线 P5):import 声明 / export / class / eval / new / with / 动态 import();
|
|
1067
|
+
* - **体内禁止本机函数调用**(裸标识符 callee,D10)——递归遍历全部节点(含嵌套函数体)。
|
|
1068
|
+
*/
|
|
1069
|
+
function validateFunctionBody(body, line) {
|
|
1070
|
+
const stack = [body];
|
|
1071
|
+
while (stack.length > 0) {
|
|
1072
|
+
const n = stack.pop();
|
|
1073
|
+
if (n.type === 'ImportDeclaration') {
|
|
1074
|
+
throw new ParseError('import statements are not allowed inside function bodies', line, 'E_IMPORT');
|
|
1075
|
+
}
|
|
1076
|
+
if (n.type === 'ImportExpression') {
|
|
1077
|
+
throw new ParseError('dynamic import() is not allowed in faijs', line, 'E_CONTROL_FLOW');
|
|
1078
|
+
}
|
|
1079
|
+
if (n.type === 'ExportNamedDeclaration' || n.type === 'ExportAllDeclaration') {
|
|
1080
|
+
throw new ParseError('export statements are not allowed in faijs (faijs auto-exports the default module)', line, 'E_STATEMENT');
|
|
1081
|
+
}
|
|
1082
|
+
if (n.type === 'ClassDeclaration') {
|
|
1083
|
+
throw new ParseError('class declarations are not allowed in faijs', line, 'E_STATEMENT');
|
|
1084
|
+
}
|
|
1085
|
+
if (n.type === 'WithStatement') {
|
|
1086
|
+
throw new ParseError('"with" statements are not allowed in faijs (strict mode)', line, 'E_CONTROL_FLOW');
|
|
1087
|
+
}
|
|
1088
|
+
if (n.type === 'NewExpression') {
|
|
1089
|
+
throw new ParseError('"new" expressions are not allowed in faijs (new Function is a safety red line)', line, 'E_STATEMENT');
|
|
1090
|
+
}
|
|
1091
|
+
if (n.type === 'CallExpression') {
|
|
1092
|
+
// eval 安全红线(与顶层一致)
|
|
1093
|
+
if (n.callee?.type === 'Identifier' && n.callee.name === 'eval') {
|
|
1094
|
+
throw new ParseError('eval is not allowed in faijs', line, 'E_STATEMENT');
|
|
1095
|
+
}
|
|
1096
|
+
// D10:体内禁止调用本机函数(裸标识符 callee)——顶层 ABI 与 verbatim 函数体语义冲突
|
|
1097
|
+
if (n.callee?.type === 'Identifier') {
|
|
1098
|
+
throw new ParseError(`calling local function "${n.callee.name}" inside a function body is not allowed (D10): local functions are callable from the top level only`, line, 'E_STATEMENT');
|
|
1099
|
+
}
|
|
1100
|
+
}
|
|
1101
|
+
// 子节点入栈(跳过元数据字段)
|
|
1102
|
+
for (const key of Object.keys(n)) {
|
|
1103
|
+
if (key === 'loc' || key === 'start' || key === 'end' || key === 'range' || key === 'parent')
|
|
1104
|
+
continue;
|
|
1105
|
+
const v = n[key];
|
|
1106
|
+
if (Array.isArray(v)) {
|
|
1107
|
+
for (const item of v) {
|
|
1108
|
+
if (item && typeof item === 'object' && typeof item.type === 'string')
|
|
1109
|
+
stack.push(item);
|
|
1110
|
+
}
|
|
1111
|
+
}
|
|
1112
|
+
else if (v && typeof v === 'object' && typeof v.type === 'string') {
|
|
1113
|
+
stack.push(v);
|
|
1114
|
+
}
|
|
1115
|
+
}
|
|
1116
|
+
}
|
|
1117
|
+
}
|
|
1118
|
+
/**
|
|
1119
|
+
* Parse CAD script code text into a ScriptIR.
|
|
1120
|
+
*
|
|
1121
|
+
* @param code - the script text to parse.
|
|
1122
|
+
* @param options - optional parse options (looseVars enables loose variable
|
|
1123
|
+
* resolution for partial append text).
|
|
1124
|
+
* @returns the parse result (script IR + parse diagnostics).
|
|
1125
|
+
*/
|
|
1126
|
+
export function parseScript(code, options) {
|
|
1127
|
+
const looseVars = options?.looseVars === true;
|
|
1128
|
+
const looseLocalCalls = options?.looseLocalCalls === true;
|
|
1129
|
+
// 默认注入命名空间名(U10/R2):缺省 'cad';宿主换默认绑定名时经 options.defaultNs 声明。
|
|
1130
|
+
const defaultNsName = options?.defaultNs ?? 'cad';
|
|
1131
|
+
// ── 0. 顶层 import/export 预扫描(F1 黑名单化 + F2 import 提升) ──
|
|
1132
|
+
// 用 module 模式解析原始文本:
|
|
1133
|
+
// - 顶层 export(非默认导出容器)→ 明确 E_STATEMENT(扁平包装会先被 acorn 以
|
|
1134
|
+
// SyntaxError 拒绝:'import' and 'export' may appear only at top level)。
|
|
1135
|
+
// - 顶层 import → 收集声明,校验「文件头部连续段」约束(F2),供扁平代码包装提升。
|
|
1136
|
+
let importBlock = null;
|
|
1137
|
+
const prescanImports = [];
|
|
1138
|
+
{
|
|
1139
|
+
const topLevel = [];
|
|
1140
|
+
try {
|
|
1141
|
+
topLevel.push(...acornParse(code, { ecmaVersion: 'latest', sourceType: 'module', locations: true, ranges: true }).body);
|
|
1142
|
+
}
|
|
1143
|
+
catch {
|
|
1144
|
+
// 原始文本非合法 module(如含 return)→ 交给主解析报错
|
|
1145
|
+
}
|
|
1146
|
+
for (const n of topLevel) {
|
|
1147
|
+
if (n.type === 'ExportNamedDeclaration' || n.type === 'ExportAllDeclaration') {
|
|
1148
|
+
throw new ParseError(`export statements are not allowed (faijs auto-exports the default module)`, getLine(n) ?? 1, 'E_STATEMENT');
|
|
1149
|
+
}
|
|
1150
|
+
if (n.type === 'ImportDeclaration')
|
|
1151
|
+
prescanImports.push(n);
|
|
1152
|
+
}
|
|
1153
|
+
if (prescanImports.length > 0) {
|
|
1154
|
+
const first = prescanImports[0];
|
|
1155
|
+
const last = prescanImports[prescanImports.length - 1];
|
|
1156
|
+
// 约束 1:import 之前只能有注释/空白(头部连续段)
|
|
1157
|
+
if (!onlyWhitespaceAndComments(code.slice(0, first.start))) {
|
|
1158
|
+
throw new ParseError('import statements must appear as a contiguous block at the top of the file', getLine(first) ?? 1, 'E_IMPORT');
|
|
1159
|
+
}
|
|
1160
|
+
// 约束 2:import 之间只能有注释/空白
|
|
1161
|
+
for (let i = 1; i < prescanImports.length; i++) {
|
|
1162
|
+
const gap = code.slice(prescanImports[i - 1].end, prescanImports[i].start);
|
|
1163
|
+
if (!onlyWhitespaceAndComments(gap)) {
|
|
1164
|
+
throw new ParseError('import statements must be contiguous (no statements between imports)', getLine(prescanImports[i]) ?? 1, 'E_IMPORT');
|
|
1165
|
+
}
|
|
1166
|
+
}
|
|
1167
|
+
importBlock = { start: first.start, end: last.end };
|
|
1168
|
+
}
|
|
1169
|
+
}
|
|
1170
|
+
// ── 0.5 扁平代码检测与封装 ──
|
|
1171
|
+
// 如果代码不含 `export default`,则自动封装为合法容器。
|
|
1172
|
+
// 含顶层 import 时把 import 段提到 `export default async (cad) => {...}` 之外
|
|
1173
|
+
// (import 不能出现在函数体内,否则 acorn SyntaxError —— D4)。
|
|
1174
|
+
let parseCode = code;
|
|
1175
|
+
// 扁平封装后首行代码在 parseCode 中位于第 2 行;statementLines 须扣掉封装偏移,
|
|
1176
|
+
// 使行号始终相对宿主原始文本(analyzeCode 契约)。
|
|
1177
|
+
// codeOffset:parseCode 坐标 → 原始 code 坐标的字符偏移(函数体 bodyRange 用;容器格式为 0)。
|
|
1178
|
+
let lineOffset = code.includes('export default') ? 0 : 1;
|
|
1179
|
+
let codeOffset = 0;
|
|
1180
|
+
if (lineOffset) {
|
|
1181
|
+
if (importBlock) {
|
|
1182
|
+
const prefix = code.slice(0, importBlock.start);
|
|
1183
|
+
const importText = code.slice(importBlock.start, importBlock.end);
|
|
1184
|
+
const rest = code.slice(importBlock.end);
|
|
1185
|
+
parseCode = `${prefix}${importText}\nexport default async (${defaultNsName}) => {\n${rest}\n}`;
|
|
1186
|
+
lineOffset = countLines(prefix + importText) + 1;
|
|
1187
|
+
// import 段之后的代码(函数定义所在)偏移 = 封装前缀长度(`\nexport default async (<ns>) => {\n` = 29 + len)
|
|
1188
|
+
codeOffset = 29 + defaultNsName.length;
|
|
1189
|
+
}
|
|
1190
|
+
else {
|
|
1191
|
+
parseCode = `export default async (${defaultNsName}) => {\n${code}\n}`;
|
|
1192
|
+
lineOffset = 1;
|
|
1193
|
+
codeOffset = `export default async (${defaultNsName}) => {\n`.length;
|
|
1194
|
+
}
|
|
1195
|
+
}
|
|
1196
|
+
// ── 1. acorn 解析(合法性闸门) ──
|
|
1197
|
+
let ast;
|
|
1198
|
+
try {
|
|
1199
|
+
ast = acornParse(parseCode, {
|
|
1200
|
+
ecmaVersion: 'latest',
|
|
1201
|
+
sourceType: 'module',
|
|
1202
|
+
locations: true,
|
|
1203
|
+
});
|
|
1204
|
+
}
|
|
1205
|
+
catch (err) {
|
|
1206
|
+
const syntaxErr = err;
|
|
1207
|
+
const line = syntaxErr.loc?.line ?? 1;
|
|
1208
|
+
const msg = syntaxErr.message ?? String(err);
|
|
1209
|
+
throw new ParseError(`SyntaxError: ${msg}`, line, 'E_SYNTAX');
|
|
1210
|
+
}
|
|
1211
|
+
// ── 2. 验证 AST 结构 ──
|
|
1212
|
+
// 顶层必须是 Program,且仅含一个 ExportDefaultDeclaration
|
|
1213
|
+
if (ast.type !== 'Program') {
|
|
1214
|
+
throw new ParseError('expected a module', 1);
|
|
1215
|
+
}
|
|
1216
|
+
const exportDecl = ast.body.find((n) => n.type === 'ExportDefaultDeclaration');
|
|
1217
|
+
if (!exportDecl) {
|
|
1218
|
+
throw new ParseError('missing `export default`', 1);
|
|
1219
|
+
}
|
|
1220
|
+
// export default 必须是 async 箭头函数。
|
|
1221
|
+
// 容器形参名即脚本内对「默认注入命名空间」的引用标识符(U10/R2:缺省约定 'cad',
|
|
1222
|
+
// 宿主换默认绑定名 g 时经 parseScript options.defaultNs 传入,容器形参须与之一致)。
|
|
1223
|
+
const arrowFn = exportDecl.declaration;
|
|
1224
|
+
if (arrowFn?.type !== 'ArrowFunctionExpression' ||
|
|
1225
|
+
!arrowFn.async ||
|
|
1226
|
+
arrowFn.params.length !== 1 ||
|
|
1227
|
+
arrowFn.params[0]?.type !== 'Identifier' ||
|
|
1228
|
+
arrowFn.params[0].name !== defaultNsName) {
|
|
1229
|
+
throw new ParseError(`expected \`export default async (${defaultNsName}) => { ... }\``, getLine(exportDecl));
|
|
1230
|
+
}
|
|
1231
|
+
// 箭头函数体必须是 BlockStatement
|
|
1232
|
+
const body = arrowFn.body;
|
|
1233
|
+
if (body?.type !== 'BlockStatement') {
|
|
1234
|
+
throw new ParseError('expected arrow function body to be a block statement { ... }', getLine(arrowFn));
|
|
1235
|
+
}
|
|
1236
|
+
// ── 3. walk body ──
|
|
1237
|
+
const params = [];
|
|
1238
|
+
const statements = [];
|
|
1239
|
+
const statementLines = [];
|
|
1240
|
+
/** 顶层函数定义(A1;无函数时保持空数组,ScriptIR 构建时省略) */
|
|
1241
|
+
const functions = [];
|
|
1242
|
+
const paramNames = new Set();
|
|
1243
|
+
/** 参数名 → 字面量值(F1 表达式折叠依据;仅声明在前面的参数可折叠) */
|
|
1244
|
+
const paramValues = new Map();
|
|
1245
|
+
const varToId = new Map();
|
|
1246
|
+
let meta;
|
|
1247
|
+
let terminalShapes;
|
|
1248
|
+
// ── 3.1 顶层 import → ScriptIR.imports + 命名空间绑定表(F2) ──
|
|
1249
|
+
// import 已提升到模块顶层(扁平包装之外);主解析的 ast.body 顶层直接可取。
|
|
1250
|
+
const scriptImports = [];
|
|
1251
|
+
/** 命名空间绑定名 → 包名(`import * as mech from 'gear-lib-demo'` → mech → gear-lib-demo)。
|
|
1252
|
+
* 只有 namespace 形态的 import 构成语句命名空间(cad 是缺省命名空间)。 */
|
|
1253
|
+
const importBindings = new Map();
|
|
1254
|
+
for (const node of ast.body) {
|
|
1255
|
+
if (node.type !== 'ImportDeclaration')
|
|
1256
|
+
continue;
|
|
1257
|
+
const imp = importDeclToIR(node, getLine(node));
|
|
1258
|
+
scriptImports.push(imp);
|
|
1259
|
+
if (imp.kind === 'namespace')
|
|
1260
|
+
importBindings.set(imp.localName, imp.packageName);
|
|
1261
|
+
}
|
|
1262
|
+
/** 命名空间判定:'cad'(缺省)或顶层 import 绑定名(F2 消灭硬编码)。 */
|
|
1263
|
+
const isNamespaceName = (name) => name === defaultNsName || importBindings.has(name);
|
|
1264
|
+
/** 合法命名空间名集合(parseValueExpr/parseCadStatement/parseDestructuring 共用)。 */
|
|
1265
|
+
const nsNames = new Set([defaultNsName, ...importBindings.keys()]);
|
|
1266
|
+
// ── 3.2 本机函数集预扫描(Phase 2 / §3.4) ──
|
|
1267
|
+
// 函数声明**提升**(可被其后语句调用),且未知函数名 parse 期报 E_REFERENCE——
|
|
1268
|
+
// 故解析语句前预扫描全部顶层 FunctionDeclaration,收集函数名 → 形参表(ABI 校验用)。
|
|
1269
|
+
// 仅顶层函数构成「本机函数集」;函数体内嵌套函数不参与(D10 禁体内调用,体内容器不透明)。
|
|
1270
|
+
const localFnParams = new Map();
|
|
1271
|
+
for (const topNode of body.body) {
|
|
1272
|
+
if (topNode.type !== 'FunctionDeclaration' || topNode.id?.type !== 'Identifier')
|
|
1273
|
+
continue;
|
|
1274
|
+
const params = [];
|
|
1275
|
+
for (const p of topNode.params ?? []) {
|
|
1276
|
+
if (p?.type === 'Identifier')
|
|
1277
|
+
params.push(p.name);
|
|
1278
|
+
}
|
|
1279
|
+
localFnParams.set(topNode.id.name, params);
|
|
1280
|
+
}
|
|
1281
|
+
for (const stmtNode of body.body) {
|
|
1282
|
+
const line = getLine(stmtNode);
|
|
1283
|
+
switch (stmtNode.type) {
|
|
1284
|
+
case 'FunctionDeclaration': {
|
|
1285
|
+
// A1/Phase 2:顶层函数定义。函数定义不是几何语句——不进 statements、
|
|
1286
|
+
// 不参与 DAG 终端判定(不污染终端集),codegen 原样打印回文件(往返保真)。
|
|
1287
|
+
// Phase 2:函数体放行控制流(§3.1),保留安全红线,禁体内本机调用(D10)。
|
|
1288
|
+
parseFunctionDeclaration(stmtNode, line, functions, parseCode, codeOffset);
|
|
1289
|
+
break;
|
|
1290
|
+
}
|
|
1291
|
+
case 'VariableDeclaration': {
|
|
1292
|
+
// 允许 const 和 let(let 仅用于装配变量);var 保持拒绝(O2 排后)
|
|
1293
|
+
if (stmtNode.kind !== 'const' && stmtNode.kind !== 'let') {
|
|
1294
|
+
throw new ParseError(`only 'const' or 'let' declarations allowed, got '${stmtNode.kind}'`, line, 'E_STATEMENT');
|
|
1295
|
+
}
|
|
1296
|
+
// F1 黑名单化:多声明器逐个处理(const a = 1, b = 2)
|
|
1297
|
+
for (const decl of stmtNode.declarations) {
|
|
1298
|
+
const dline = getLine(decl);
|
|
1299
|
+
// 通用解构:const { k1: v1, k2: v2 } = [await] <ns>.<any>(...)(A2 消灭:任意 callee、任意键)
|
|
1300
|
+
if (decl.id?.type === 'ObjectPattern') {
|
|
1301
|
+
if (stmtNode.kind !== 'const') {
|
|
1302
|
+
throw new ParseError('destructuring requires const', line, 'E_STATEMENT');
|
|
1303
|
+
}
|
|
1304
|
+
const { stmt, valueNames } = parseDestructuring(decl, paramNames, paramValues, varToId, nsNames, defaultNsName, looseVars, parseCode, localFnParams, looseLocalCalls);
|
|
1305
|
+
// 命名服务不再由 parser 调用:parser 只做语法分析,保留词法变量名(设计 §5.1)
|
|
1306
|
+
stmt.outputs = valueNames.map((n) => asPartName(n));
|
|
1307
|
+
statements.push(stmt);
|
|
1308
|
+
statementLines.push(dline);
|
|
1309
|
+
// varToId 仅用于作用域校验,恒等映射(词法名 → 词法名)
|
|
1310
|
+
valueNames.forEach((n) => varToId.set(n, asPartName(n)));
|
|
1311
|
+
continue;
|
|
1312
|
+
}
|
|
1313
|
+
// 判断是参数还是语句
|
|
1314
|
+
let init = decl.init;
|
|
1315
|
+
const isAwait = init?.type === 'AwaitExpression';
|
|
1316
|
+
if (isAwait)
|
|
1317
|
+
init = init.argument;
|
|
1318
|
+
// 动态 import() → 控制流专用错误码(V1.5;`await import("mod")` 走声明路径)
|
|
1319
|
+
if (init?.type === 'ImportExpression') {
|
|
1320
|
+
throw new ParseError('dynamic import() is not allowed in faijs (no control flow)', line, 'E_CONTROL_FLOW');
|
|
1321
|
+
}
|
|
1322
|
+
// Phase 3: let 允许用于普通 cad.op() 语句(单入单出复用名时 codegen 产生 let 重赋值)
|
|
1323
|
+
if (init?.type === 'CallExpression' &&
|
|
1324
|
+
(
|
|
1325
|
+
// 命名空间调用:<ns>.<op>(...)(F2:cad 或顶层 import 绑定名)
|
|
1326
|
+
(init.callee?.type === 'MemberExpression' &&
|
|
1327
|
+
init.callee.object?.type === 'Identifier' &&
|
|
1328
|
+
isNamespaceName(init.callee.object.name)) ||
|
|
1329
|
+
// 裸标识符 callee(本机函数或未知函数名——parseCadStatement 内判 local / E_REFERENCE,§3.4)
|
|
1330
|
+
init.callee?.type === 'Identifier')) {
|
|
1331
|
+
// 语句:const partN = [await] <ns>.op(...) 或 const partN = [await] localFn(...)
|
|
1332
|
+
const { stmt, varName } = parseCadStatement(decl, paramNames, paramValues, varToId, nsNames, defaultNsName, looseVars, parseCode, localFnParams, looseLocalCalls);
|
|
1333
|
+
// 命名服务不再由 parser 调用:parser 只做语法分析,保留词法变量名(设计 §5.1)
|
|
1334
|
+
stmt.outputs = [asPartName(varName)];
|
|
1335
|
+
statements.push(stmt);
|
|
1336
|
+
statementLines.push(dline);
|
|
1337
|
+
// varToId 仅用于作用域校验,恒等映射(词法名 → 词法名)
|
|
1338
|
+
varToId.set(varName, asPartName(varName));
|
|
1339
|
+
}
|
|
1340
|
+
else if (init?.type === 'Literal' ||
|
|
1341
|
+
init?.type === 'ArrayExpression' ||
|
|
1342
|
+
init?.type === 'ObjectExpression') {
|
|
1343
|
+
// 参数:const name = literal
|
|
1344
|
+
if (decl.id?.type !== 'Identifier') {
|
|
1345
|
+
throw new ParseError('param declaration must have identifier name', line, 'E_STATEMENT');
|
|
1346
|
+
}
|
|
1347
|
+
const name = decl.id.name;
|
|
1348
|
+
// 解析字面量值(不允许 ParamRefIR / GeomRef / 标识符)
|
|
1349
|
+
const value = parseLiteralOnly(init, dline);
|
|
1350
|
+
params.push({
|
|
1351
|
+
name,
|
|
1352
|
+
type: typeof value === 'number' ? 'number' : typeof value === 'boolean' ? 'bool' : 'vec3',
|
|
1353
|
+
value: value,
|
|
1354
|
+
default: value,
|
|
1355
|
+
});
|
|
1356
|
+
paramNames.add(name);
|
|
1357
|
+
paramValues.set(name, value);
|
|
1358
|
+
// F1:参数也可作为 input(cad.fai_drill(p, {...})),加入 varToId 供输入/接收者解析
|
|
1359
|
+
varToId.set(name, asPartName(name));
|
|
1360
|
+
}
|
|
1361
|
+
else {
|
|
1362
|
+
throw new ParseError(`unsupported const declaration: init type = ${init?.type ?? 'null'}`, line, 'E_STATEMENT');
|
|
1363
|
+
}
|
|
1364
|
+
}
|
|
1365
|
+
break;
|
|
1366
|
+
}
|
|
1367
|
+
case 'ReturnStatement': {
|
|
1368
|
+
const result = parseReturnStatement(stmtNode, varToId);
|
|
1369
|
+
meta = result.meta;
|
|
1370
|
+
terminalShapes = result.terminalShapes;
|
|
1371
|
+
break;
|
|
1372
|
+
}
|
|
1373
|
+
case 'ExpressionStatement': {
|
|
1374
|
+
const expr = stmtNode.expression;
|
|
1375
|
+
// 动态 import() → 控制流专用错误码(V1.5)
|
|
1376
|
+
if (expr?.type === 'ImportExpression') {
|
|
1377
|
+
throw new ParseError('dynamic import() is not allowed in faijs (no control flow)', line, 'E_CONTROL_FLOW');
|
|
1378
|
+
}
|
|
1379
|
+
// eval / new Function 安全红线
|
|
1380
|
+
if (expr?.type === 'CallExpression' && expr.callee?.type === 'Identifier' && expr.callee.name === 'eval') {
|
|
1381
|
+
throw new ParseError('eval is not allowed in faijs', line, 'E_STATEMENT');
|
|
1382
|
+
}
|
|
1383
|
+
if (expr?.type === 'NewExpression') {
|
|
1384
|
+
throw new ParseError('"new" expressions are not allowed in faijs (new Function is a safety red line)', line, 'E_STATEMENT');
|
|
1385
|
+
}
|
|
1386
|
+
// ── Phase 3: 裸重赋值 part0 = [await] cad.op(...) ──
|
|
1387
|
+
// codegen 对已声明变量的重赋值不使用 let/const,产生裸赋值表达式
|
|
1388
|
+
if (expr?.type === 'AssignmentExpression' &&
|
|
1389
|
+
expr.operator === '=' &&
|
|
1390
|
+
expr.left?.type === 'Identifier') {
|
|
1391
|
+
const varName = expr.left.name;
|
|
1392
|
+
// 验证变量已声明(loose 模式下外部变量透传,由 append 前缀校验兜底)
|
|
1393
|
+
if (!varToId.has(varName)) {
|
|
1394
|
+
if (looseVars) {
|
|
1395
|
+
varToId.set(varName, asPartName(varName));
|
|
1396
|
+
}
|
|
1397
|
+
else {
|
|
1398
|
+
throw new ParseError(`unknown variable "${varName}" in re-assignment`, line, 'E_REFERENCE');
|
|
1399
|
+
}
|
|
1400
|
+
}
|
|
1401
|
+
let init = expr.right;
|
|
1402
|
+
if (init?.type === 'AwaitExpression')
|
|
1403
|
+
init = init.argument;
|
|
1404
|
+
if (init?.type === 'CallExpression' &&
|
|
1405
|
+
(
|
|
1406
|
+
// 命名空间调用:<ns>.<op>(...)
|
|
1407
|
+
(init.callee?.type === 'MemberExpression' &&
|
|
1408
|
+
init.callee.object?.type === 'Identifier' &&
|
|
1409
|
+
isNamespaceName(init.callee.object.name) &&
|
|
1410
|
+
init.callee.property?.type === 'Identifier') ||
|
|
1411
|
+
// 裸标识符 callee(本机函数或未知函数名——parseCadStatement 内判 local / E_REFERENCE,§3.4)
|
|
1412
|
+
init.callee?.type === 'Identifier')) {
|
|
1413
|
+
// 复用 parseCadStatement 的内部逻辑
|
|
1414
|
+
const fakeDecl = {
|
|
1415
|
+
id: { type: 'Identifier', name: varName },
|
|
1416
|
+
init: expr.right,
|
|
1417
|
+
loc: stmtNode.loc,
|
|
1418
|
+
};
|
|
1419
|
+
const { stmt, varName: parsedVar } = parseCadStatement(fakeDecl, paramNames, paramValues, varToId, nsNames, defaultNsName, looseVars, parseCode, localFnParams, looseLocalCalls);
|
|
1420
|
+
// 命名服务不再由 parser 调用:裸重赋值保留词法变量名(设计 §5.1)
|
|
1421
|
+
stmt.outputs = [asPartName(parsedVar)];
|
|
1422
|
+
statements.push(stmt);
|
|
1423
|
+
statementLines.push(line);
|
|
1424
|
+
// varToId 仅用于作用域校验,恒等映射(词法名 → 词法名)
|
|
1425
|
+
varToId.set(parsedVar, asPartName(parsedVar));
|
|
1426
|
+
break;
|
|
1427
|
+
}
|
|
1428
|
+
throw new ParseError(`re-assignment must be a cad.op() call`, line, 'E_STATEMENT');
|
|
1429
|
+
}
|
|
1430
|
+
// ── 本机函数无赋值调用(§3.4 四形态之四:副作用调用) ──
|
|
1431
|
+
// myFn(part0, { ... }) —— callee 是裸标识符且 ∈ 函数集;未知函数名 → E_REFERENCE
|
|
1432
|
+
// 宽松本机调用(codeToArgs 单行提取):裸 callee 不在函数集时也放行,
|
|
1433
|
+
// 视为 local 调用候选(ABI 形态未知 → 跳过绑定校验),由调用方在完整上下文校验。
|
|
1434
|
+
if (expr?.type === 'CallExpression' && expr.callee?.type === 'Identifier') {
|
|
1435
|
+
const fnName = expr.callee.name;
|
|
1436
|
+
const looseLocal = looseLocalCalls && !localFnParams.has(fnName);
|
|
1437
|
+
if (localFnParams.has(fnName) || looseLocal) {
|
|
1438
|
+
const flags = { computed: false };
|
|
1439
|
+
const positional = parsePositionalArgs(expr.arguments, paramNames, paramValues, varToId, nsNames, defaultNsName, line, flags, looseVars, parseCode, `${fnName}() call`);
|
|
1440
|
+
const args = splitPositionalOptions(positional).named;
|
|
1441
|
+
// 宽松本机调用(codeToArgs 单行提取)形参未知 → 跳过绑定校验,由调用方在完整上下文校验。
|
|
1442
|
+
if (!looseLocal) {
|
|
1443
|
+
const { values, named } = splitPositionalOptions(positional);
|
|
1444
|
+
validateLocalAbi(fnName, localFnParams.get(fnName) ?? [], values.length, named, line);
|
|
1445
|
+
}
|
|
1446
|
+
const localStmt = {
|
|
1447
|
+
id: asStmtId('__pending__'),
|
|
1448
|
+
callee: fnName,
|
|
1449
|
+
args,
|
|
1450
|
+
positional,
|
|
1451
|
+
outputs: [],
|
|
1452
|
+
local: true,
|
|
1453
|
+
hasAssignment: false,
|
|
1454
|
+
...(flags.computed ? { hasComputedArgs: true } : {}),
|
|
1455
|
+
};
|
|
1456
|
+
statements.push(localStmt);
|
|
1457
|
+
statementLines.push(line);
|
|
1458
|
+
break;
|
|
1459
|
+
}
|
|
1460
|
+
// 裸 callee 不在函数集 → 「函数不存在」(E_REFERENCE,§3.4 / D15)
|
|
1461
|
+
throw new ParseError(`function "${fnName}" does not exist in this script`, line, 'E_REFERENCE');
|
|
1462
|
+
}
|
|
1463
|
+
// ── 成员方法调用(A6 消灭:任意方法名;receiver 须已声明) ──
|
|
1464
|
+
// assem1.add_constraint({ ... }) / assem1.do_assemble() / assem1.myMethod()
|
|
1465
|
+
if (expr?.type === 'CallExpression' &&
|
|
1466
|
+
expr.callee?.type === 'MemberExpression' &&
|
|
1467
|
+
expr.callee.object?.type === 'Identifier' &&
|
|
1468
|
+
expr.callee.property?.type === 'Identifier') {
|
|
1469
|
+
const objName = expr.callee.object.name;
|
|
1470
|
+
const methodName = expr.callee.property.name;
|
|
1471
|
+
// F1 黑名单化 + F2:命名空间调用(<ns>.<op>() 裸调用,无赋值)——对象是 'cad'
|
|
1472
|
+
// 或顶层 import 绑定名(第三方命名空间调用)
|
|
1473
|
+
if (isNamespaceName(objName)) {
|
|
1474
|
+
const nsName = objName;
|
|
1475
|
+
const flags = { computed: false };
|
|
1476
|
+
const positional = parsePositionalArgs(expr.arguments, paramNames, paramValues, varToId, nsNames, defaultNsName, line, flags, looseVars, parseCode, `${nsName}.${methodName}() call`);
|
|
1477
|
+
const args = splitPositionalOptions(positional).named;
|
|
1478
|
+
const nsStmt = {
|
|
1479
|
+
id: asStmtId('__pending__'),
|
|
1480
|
+
callee: methodName,
|
|
1481
|
+
args,
|
|
1482
|
+
positional,
|
|
1483
|
+
outputs: [],
|
|
1484
|
+
hasAssignment: false,
|
|
1485
|
+
...(nsName !== defaultNsName ? { namespace: nsName } : {}),
|
|
1486
|
+
...(flags.computed ? { hasComputedArgs: true } : {}),
|
|
1487
|
+
};
|
|
1488
|
+
statements.push(nsStmt);
|
|
1489
|
+
statementLines.push(line);
|
|
1490
|
+
break;
|
|
1491
|
+
}
|
|
1492
|
+
// 成员方法调用:receiver 须已声明
|
|
1493
|
+
const targetVar = objName;
|
|
1494
|
+
// 验证 targetVar 已声明(变量作用域检查,非 op 知识)
|
|
1495
|
+
if (!varToId.has(targetVar)) {
|
|
1496
|
+
// Loose mode: external receiver passes through (append text may call
|
|
1497
|
+
// do_assemble() on an assembly created by an earlier statement).
|
|
1498
|
+
if (looseVars) {
|
|
1499
|
+
varToId.set(targetVar, asPartName(targetVar));
|
|
1500
|
+
}
|
|
1501
|
+
else {
|
|
1502
|
+
throw new ParseError(`unknown variable "${targetVar}" in .${methodName}() call`, line, 'E_REFERENCE');
|
|
1503
|
+
}
|
|
1504
|
+
}
|
|
1505
|
+
const flags = { computed: false };
|
|
1506
|
+
const positional = parsePositionalArgs(expr.arguments, paramNames, paramValues, varToId, nsNames, defaultNsName, line, flags, looseVars, parseCode, `.${methodName}() call`);
|
|
1507
|
+
const args = splitPositionalOptions(positional).named;
|
|
1508
|
+
const memberStmt = {
|
|
1509
|
+
id: asStmtId('__pending__'),
|
|
1510
|
+
callee: methodName,
|
|
1511
|
+
args,
|
|
1512
|
+
positional,
|
|
1513
|
+
outputs: [],
|
|
1514
|
+
receiver: targetVar,
|
|
1515
|
+
hasAssignment: false,
|
|
1516
|
+
...(flags.computed ? { hasComputedArgs: true } : {}),
|
|
1517
|
+
};
|
|
1518
|
+
statements.push(memberStmt);
|
|
1519
|
+
statementLines.push(line);
|
|
1520
|
+
break;
|
|
1521
|
+
}
|
|
1522
|
+
// 其余裸表达式语句:黑名单化后仍拒绝(无意义的表达式)
|
|
1523
|
+
throw new ParseError(`bare expression statements not allowed; use 'const part0 = cad.op(...)' instead`, line, 'E_STATEMENT');
|
|
1524
|
+
}
|
|
1525
|
+
default:
|
|
1526
|
+
throwUnsupportedStatement(stmtNode, line);
|
|
1527
|
+
}
|
|
1528
|
+
}
|
|
1529
|
+
// ── 3.5 独立 StmtId 分配 + 引用收集(Phase 3: id = sN) ──
|
|
1530
|
+
// StmtId 按语句顺序分配 s(K+1)..s(K+N),K = params.length——参数在编译产物中占 s1..sK,
|
|
1531
|
+
// 使 parser 分配的 id 与 compileToModule 生成的模块语句 id 一致。
|
|
1532
|
+
const stmtIdBase = params.length;
|
|
1533
|
+
let stmtIdx = 0;
|
|
1534
|
+
for (const stmt of statements) {
|
|
1535
|
+
const sN = asStmtId(`s${stmtIdBase + (++stmtIdx)}`);
|
|
1536
|
+
stmt.id = sN;
|
|
1537
|
+
stmt.refs = collectStatementRefs(stmt);
|
|
1538
|
+
}
|
|
1539
|
+
const sourceLines = lineOffset ? statementLines.map((l) => l - lineOffset) : statementLines;
|
|
1540
|
+
// ── 4. terminal shapes ──
|
|
1541
|
+
// Phase 3:终端判定移入执行收尾(runtime.collectResult),parser 不再计算。
|
|
1542
|
+
// 显式 return [...] 的 terminalShapes 优先;否则运行期从 result.outputs 过滤。
|
|
1543
|
+
const finalTerminalShapes = terminalShapes;
|
|
1544
|
+
// ── 5. 构建 ScriptIR ──
|
|
1545
|
+
const script = {
|
|
1546
|
+
params,
|
|
1547
|
+
statements,
|
|
1548
|
+
...(scriptImports.length > 0 ? { imports: scriptImports } : {}),
|
|
1549
|
+
...(functions.length > 0 ? { functions } : {}),
|
|
1550
|
+
meta,
|
|
1551
|
+
terminalShapes: finalTerminalShapes,
|
|
1552
|
+
};
|
|
1553
|
+
return { script, varToId, statementLines: sourceLines };
|
|
1554
|
+
}
|
|
1555
|
+
// ── 字面量解析(仅允许字面量,不允许标识符/调用) ──
|
|
1556
|
+
function parseLiteralOnly(node, line) {
|
|
1557
|
+
switch (node.type) {
|
|
1558
|
+
case 'Literal':
|
|
1559
|
+
return node.value;
|
|
1560
|
+
case 'ArrayExpression':
|
|
1561
|
+
return node.elements.map((el) => parseLiteralOnly(el, line));
|
|
1562
|
+
case 'ObjectExpression': {
|
|
1563
|
+
const obj = {};
|
|
1564
|
+
for (const prop of node.properties) {
|
|
1565
|
+
const key = prop.key?.type === 'Identifier' ? prop.key.name
|
|
1566
|
+
: prop.key?.type === 'Literal' ? String(prop.key.value)
|
|
1567
|
+
: null;
|
|
1568
|
+
if (!key)
|
|
1569
|
+
throw new ParseError('invalid object key in param literal', line);
|
|
1570
|
+
obj[key] = parseLiteralOnly(prop.value, line);
|
|
1571
|
+
}
|
|
1572
|
+
return obj;
|
|
1573
|
+
}
|
|
1574
|
+
case 'UnaryExpression':
|
|
1575
|
+
if (node.operator === '-' && node.argument?.type === 'Literal') {
|
|
1576
|
+
return -node.argument.value;
|
|
1577
|
+
}
|
|
1578
|
+
throw new ParseError(`unsupported unary in param literal`, line);
|
|
1579
|
+
default:
|
|
1580
|
+
throw new ParseError(`param value must be a literal (number/string/boolean/null/array/object), got ${node.type}`, line);
|
|
1581
|
+
}
|
|
1582
|
+
}
|
|
1583
|
+
// ── 版本迁移 ──
|
|
1584
|
+
/**
|
|
1585
|
+
* Read the `// apiVersion: N` declaration from the top of a faijs source text,
|
|
1586
|
+
* defaulting to 1 when absent.
|
|
1587
|
+
* @param code - the faijs source text to inspect.
|
|
1588
|
+
* @returns the declared API version number, or 1 when none is present.
|
|
1589
|
+
*/
|
|
1590
|
+
export function getApiVersion(code) {
|
|
1591
|
+
const match = code.match(/^\/\/\s*apiVersion:\s*(\d+)/m);
|
|
1592
|
+
return match ? parseInt(match[1], 10) : 1;
|
|
1593
|
+
}
|
|
1594
|
+
//# sourceMappingURL=parser.js.map
|