@faicad/faijs 0.16.0 → 0.17.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 +4 -5
- package/NOTICE +5 -6
- package/dist/api/api-namespace.d.ts.map +1 -1
- package/dist/api/api-namespace.js +19 -1
- package/dist/api/api-namespace.js.map +1 -1
- package/dist/api/assembly/entities.d.ts +1 -1
- package/dist/api/assembly/entities.d.ts.map +1 -1
- package/dist/api/assembly/entities.js.map +1 -1
- package/dist/api/assembly/joints.d.ts +2 -2
- package/dist/api/assembly/joints.d.ts.map +1 -1
- package/dist/api/assembly/joints.js +2 -2
- package/dist/api/assembly/joints.js.map +1 -1
- package/dist/api/assembly/lower.d.ts +1 -1
- package/dist/api/assembly/lower.d.ts.map +1 -1
- package/dist/api/assembly/lower.js.map +1 -1
- package/dist/api/assembly/pose.d.ts +3 -3
- package/dist/api/assembly/pose.d.ts.map +1 -1
- package/dist/api/assembly/pose.js +1 -1
- package/dist/api/assembly/pose.js.map +1 -1
- package/dist/api/assembly/preview.d.ts +1 -1
- package/dist/api/assembly/preview.d.ts.map +1 -1
- package/dist/api/assembly/preview.js +1 -1
- package/dist/api/assembly/preview.js.map +1 -1
- package/dist/api/assembly/solve.d.ts.map +1 -1
- package/dist/api/assembly/solve.js +3 -3
- package/dist/api/assembly/solve.js.map +1 -1
- package/dist/api/assembly/solvers/assembly-tree.d.ts +98 -0
- package/dist/api/assembly/solvers/assembly-tree.d.ts.map +1 -0
- package/dist/api/assembly/solvers/assembly-tree.js +130 -0
- package/dist/api/assembly/solvers/assembly-tree.js.map +1 -0
- package/dist/api/assembly/solvers/chain-solver.d.ts +27 -0
- package/dist/api/assembly/solvers/chain-solver.d.ts.map +1 -0
- package/dist/api/assembly/solvers/chain-solver.js +330 -0
- package/dist/api/assembly/solvers/chain-solver.js.map +1 -0
- package/dist/api/assembly/solvers/global-solver.js +2 -2
- package/dist/api/assembly/solvers/global-solver.js.map +1 -1
- package/dist/api/assembly/solvers/joints-kinematics.d.ts +308 -0
- package/dist/api/assembly/solvers/joints-kinematics.d.ts.map +1 -0
- package/dist/api/assembly/solvers/joints-kinematics.js +643 -0
- package/dist/api/assembly/solvers/joints-kinematics.js.map +1 -0
- package/dist/api/assembly/solvers/quat.d.ts +35 -0
- package/dist/api/assembly/solvers/quat.d.ts.map +1 -0
- package/dist/api/assembly/solvers/quat.js +84 -0
- package/dist/api/assembly/solvers/quat.js.map +1 -0
- package/dist/api/assembly/solvers/types.d.ts +33 -0
- package/dist/api/assembly/solvers/types.d.ts.map +1 -1
- package/dist/api/assembly/solvers/types.js.map +1 -1
- package/dist/api/boolean.d.ts.map +1 -1
- package/dist/api/boolean.js +3 -4
- package/dist/api/boolean.js.map +1 -1
- package/dist/api/brep-mirror/booleanFns.d.ts +40 -0
- package/dist/api/brep-mirror/booleanFns.d.ts.map +1 -0
- package/dist/api/brep-mirror/booleanFns.js +99 -0
- package/dist/api/brep-mirror/booleanFns.js.map +1 -0
- package/dist/api/brep-mirror/brepHelpers.d.ts +55 -0
- package/dist/api/brep-mirror/brepHelpers.d.ts.map +1 -0
- package/dist/api/brep-mirror/brepHelpers.js +131 -0
- package/dist/api/brep-mirror/brepHelpers.js.map +1 -0
- package/dist/api/brep-mirror/compoundFns.d.ts +47 -0
- package/dist/api/brep-mirror/compoundFns.d.ts.map +1 -0
- package/dist/api/brep-mirror/compoundFns.js +300 -0
- package/dist/api/brep-mirror/compoundFns.js.map +1 -0
- package/dist/api/brep-mirror/healingFns.d.ts +78 -0
- package/dist/api/brep-mirror/healingFns.d.ts.map +1 -0
- package/dist/api/brep-mirror/healingFns.js +294 -0
- package/dist/api/brep-mirror/healingFns.js.map +1 -0
- package/dist/api/brep-mirror/hullFns.d.ts +20 -0
- package/dist/api/brep-mirror/hullFns.d.ts.map +1 -0
- package/dist/api/brep-mirror/hullFns.js +46 -0
- package/dist/api/brep-mirror/hullFns.js.map +1 -0
- package/dist/api/brep-mirror/patternFns.d.ts +43 -0
- package/dist/api/brep-mirror/patternFns.d.ts.map +1 -0
- package/dist/api/brep-mirror/patternFns.js +178 -0
- package/dist/api/brep-mirror/patternFns.js.map +1 -0
- package/dist/api/brep-mirror/primitiveFns.d.ts +42 -0
- package/dist/api/brep-mirror/primitiveFns.d.ts.map +1 -0
- package/dist/api/brep-mirror/primitiveFns.js +104 -0
- package/dist/api/brep-mirror/primitiveFns.js.map +1 -0
- package/dist/api/brep-mirror/roofFns.d.ts +24 -0
- package/dist/api/brep-mirror/roofFns.d.ts.map +1 -0
- package/dist/api/brep-mirror/roofFns.js +229 -0
- package/dist/api/brep-mirror/roofFns.js.map +1 -0
- package/dist/api/brep-mirror/straightSkeleton.d.ts +36 -0
- package/dist/api/brep-mirror/straightSkeleton.d.ts.map +1 -0
- package/dist/api/brep-mirror/straightSkeleton.js +443 -0
- package/dist/api/brep-mirror/straightSkeleton.js.map +1 -0
- package/dist/api/brep-mirror/sweepFns.d.ts +55 -0
- package/dist/api/brep-mirror/sweepFns.d.ts.map +1 -0
- package/dist/api/brep-mirror/sweepFns.js +200 -0
- package/dist/api/brep-mirror/sweepFns.js.map +1 -0
- package/dist/api/brep-mirror/threadFns.d.ts +15 -0
- package/dist/api/brep-mirror/threadFns.d.ts.map +1 -1
- package/dist/api/brep-mirror/threadFns.js +37 -2
- package/dist/api/brep-mirror/threadFns.js.map +1 -1
- package/dist/api/brep-mirror/topologyFns.d.ts +74 -0
- package/dist/api/brep-mirror/topologyFns.d.ts.map +1 -0
- package/dist/api/brep-mirror/topologyFns.js +273 -0
- package/dist/api/brep-mirror/topologyFns.js.map +1 -0
- package/dist/api/brep-topology.d.ts +190 -0
- package/dist/api/brep-topology.d.ts.map +1 -0
- package/dist/api/brep-topology.js +337 -0
- package/dist/api/brep-topology.js.map +1 -0
- package/dist/api/brepjs-compat/constants.d.ts +11 -0
- package/dist/api/brepjs-compat/constants.d.ts.map +1 -0
- package/dist/api/brepjs-compat/constants.js +11 -0
- package/dist/api/brepjs-compat/constants.js.map +1 -0
- package/dist/api/brepjs-compat/index.d.ts +19 -232
- package/dist/api/brepjs-compat/index.d.ts.map +1 -1
- package/dist/api/brepjs-compat/index.js +19 -286
- package/dist/api/brepjs-compat/index.js.map +1 -1
- package/dist/api/brepjs-compat/planeOps.d.ts +98 -0
- package/dist/api/brepjs-compat/planeOps.d.ts.map +1 -0
- package/dist/api/brepjs-compat/planeOps.js +170 -0
- package/dist/api/brepjs-compat/planeOps.js.map +1 -0
- package/dist/api/brepjs-compat/planeTypes.d.ts +24 -0
- package/dist/api/brepjs-compat/planeTypes.d.ts.map +1 -0
- package/dist/api/brepjs-compat/planeTypes.js +8 -0
- package/dist/api/brepjs-compat/planeTypes.js.map +1 -0
- package/dist/api/brepjs-compat/types.d.ts +64 -0
- package/dist/api/brepjs-compat/types.d.ts.map +1 -0
- package/dist/api/brepjs-compat/types.js +48 -0
- package/dist/api/brepjs-compat/types.js.map +1 -0
- package/dist/api/brepjs-compat/vecOps.d.ts +124 -0
- package/dist/api/brepjs-compat/vecOps.d.ts.map +1 -0
- package/dist/api/brepjs-compat/vecOps.js +202 -0
- package/dist/api/brepjs-compat/vecOps.js.map +1 -0
- package/dist/api/chamfer.d.ts +5 -0
- package/dist/api/chamfer.d.ts.map +1 -1
- package/dist/api/chamfer.js +13 -8
- package/dist/api/chamfer.js.map +1 -1
- package/dist/api/compound-geom.d.ts.map +1 -1
- package/dist/api/compound-geom.js +8 -2
- package/dist/api/compound-geom.js.map +1 -1
- package/dist/api/draft.d.ts +69 -0
- package/dist/api/draft.d.ts.map +1 -0
- package/dist/api/draft.js +109 -0
- package/dist/api/draft.js.map +1 -0
- package/dist/api/edge-ref.d.ts.map +1 -1
- package/dist/api/edge-ref.js +2 -2
- package/dist/api/edge-ref.js.map +1 -1
- package/dist/api/engrave.d.ts.map +1 -1
- package/dist/api/engrave.js +2 -3
- package/dist/api/engrave.js.map +1 -1
- package/dist/api/extrude.d.ts.map +1 -1
- package/dist/api/extrude.js +28 -13
- package/dist/api/extrude.js.map +1 -1
- package/dist/api/face-ref.d.ts.map +1 -1
- package/dist/api/face-ref.js +2 -2
- package/dist/api/face-ref.js.map +1 -1
- package/dist/api/feature-repair.d.ts +137 -0
- package/dist/api/feature-repair.d.ts.map +1 -0
- package/dist/api/feature-repair.js +221 -0
- package/dist/api/feature-repair.js.map +1 -0
- package/dist/api/fillet-variable.d.ts +35 -0
- package/dist/api/fillet-variable.d.ts.map +1 -0
- package/dist/api/fillet-variable.js +71 -0
- package/dist/api/fillet-variable.js.map +1 -0
- package/dist/api/fillet.d.ts +3 -0
- package/dist/api/fillet.d.ts.map +1 -1
- package/dist/api/fillet.js +7 -4
- package/dist/api/fillet.js.map +1 -1
- package/dist/api/generated/2d.d.ts +1 -13
- package/dist/api/generated/2d.d.ts.map +1 -1
- package/dist/api/generated/2d.js +6 -1
- package/dist/api/generated/2d.js.map +1 -1
- package/dist/api/generated/brepjs/index.d.ts +298 -298
- package/dist/api/generated/brepjs/index.d.ts.map +1 -1
- package/dist/api/generated/brepjs/index.js +183 -183
- package/dist/api/generated/brepjs/index.js.map +1 -1
- package/dist/api/generated/core.d.ts +3 -123
- package/dist/api/generated/core.d.ts.map +1 -1
- package/dist/api/generated/core.js +2 -81
- package/dist/api/generated/core.js.map +1 -1
- package/dist/api/generated/gear.d.ts +1 -15
- package/dist/api/generated/gear.d.ts.map +1 -1
- package/dist/api/generated/gear.js +6 -3
- package/dist/api/generated/gear.js.map +1 -1
- package/dist/api/generated/io.d.ts +1 -13
- package/dist/api/generated/io.d.ts.map +1 -1
- package/dist/api/generated/io.js +6 -1
- package/dist/api/generated/io.js.map +1 -1
- package/dist/api/generated/kernel.d.ts +1 -39
- package/dist/api/generated/kernel.d.ts.map +1 -1
- package/dist/api/generated/kernel.js +6 -4
- package/dist/api/generated/kernel.js.map +1 -1
- package/dist/api/generated/measurement.d.ts +53 -97
- package/dist/api/generated/measurement.d.ts.map +1 -1
- package/dist/api/generated/measurement.js +48 -143
- package/dist/api/generated/measurement.js.map +1 -1
- package/dist/api/generated/ns.d.ts +1 -10
- package/dist/api/generated/ns.d.ts.map +1 -1
- package/dist/api/generated/ns.js +2 -10
- package/dist/api/generated/ns.js.map +1 -1
- package/dist/api/generated/operations.d.ts +65 -110
- package/dist/api/generated/operations.d.ts.map +1 -1
- package/dist/api/generated/operations.js +132 -80
- package/dist/api/generated/operations.js.map +1 -1
- package/dist/api/generated/projection.d.ts +1 -8
- package/dist/api/generated/projection.d.ts.map +1 -1
- package/dist/api/generated/projection.js +6 -4
- package/dist/api/generated/projection.js.map +1 -1
- package/dist/api/generated/query.d.ts +1 -9
- package/dist/api/generated/query.d.ts.map +1 -1
- package/dist/api/generated/query.js +6 -1
- package/dist/api/generated/query.js.map +1 -1
- package/dist/api/generated/script-face-manifest.d.ts +2 -0
- package/dist/api/generated/script-face-manifest.d.ts.map +1 -1
- package/dist/api/generated/script-face-manifest.js +34 -22
- package/dist/api/generated/script-face-manifest.js.map +1 -1
- package/dist/api/generated/script-face.d.ts +52 -27
- package/dist/api/generated/script-face.d.ts.map +1 -1
- package/dist/api/generated/script-face.js +18 -4
- package/dist/api/generated/script-face.js.map +1 -1
- package/dist/api/generated/sketching.d.ts +4 -7
- package/dist/api/generated/sketching.d.ts.map +1 -1
- package/dist/api/generated/sketching.js +10 -8
- package/dist/api/generated/sketching.js.map +1 -1
- package/dist/api/generated/text.d.ts +1 -6
- package/dist/api/generated/text.d.ts.map +1 -1
- package/dist/api/generated/text.js +6 -3
- package/dist/api/generated/text.js.map +1 -1
- package/dist/api/generated/topology.d.ts +77 -175
- package/dist/api/generated/topology.d.ts.map +1 -1
- package/dist/api/generated/topology.js +172 -131
- package/dist/api/generated/topology.js.map +1 -1
- package/dist/api/geom.d.ts.map +1 -1
- package/dist/api/geom.js +2 -2
- package/dist/api/geom.js.map +1 -1
- package/dist/api/helix.d.ts +51 -0
- package/dist/api/helix.d.ts.map +1 -0
- package/dist/api/helix.js +63 -0
- package/dist/api/helix.js.map +1 -0
- package/dist/api/import-step.d.ts.map +1 -1
- package/dist/api/import-step.js +6 -2
- package/dist/api/import-step.js.map +1 -1
- package/dist/api/index.d.ts +18 -5
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +29 -12
- package/dist/api/index.js.map +1 -1
- package/dist/api/internal/compat-op.d.ts +10 -0
- package/dist/api/internal/compat-op.d.ts.map +1 -1
- package/dist/api/internal/compat-op.js +9 -3
- package/dist/api/internal/compat-op.js.map +1 -1
- package/dist/api/internal/compat-projection.d.ts +4 -4
- package/dist/api/internal/compat-projection.js +7 -7
- package/dist/api/internal/compat-projection.js.map +1 -1
- package/dist/api/internal/l3-bridge.d.ts +75 -42
- package/dist/api/internal/l3-bridge.d.ts.map +1 -1
- package/dist/api/internal/l3-bridge.js +105 -50
- package/dist/api/internal/l3-bridge.js.map +1 -1
- package/dist/api/internal/profile-wire.d.ts +31 -0
- package/dist/api/internal/profile-wire.d.ts.map +1 -0
- package/dist/api/internal/profile-wire.js +37 -0
- package/dist/api/internal/profile-wire.js.map +1 -0
- package/dist/api/internal/replica-role-table.js +2 -2
- package/dist/api/internal/replica-role-table.js.map +1 -1
- package/dist/api/loft.d.ts +66 -0
- package/dist/api/loft.d.ts.map +1 -0
- package/dist/api/loft.js +111 -0
- package/dist/api/loft.js.map +1 -0
- package/dist/api/measurement/index.d.ts +51 -0
- package/dist/api/measurement/index.d.ts.map +1 -0
- package/dist/api/measurement/index.js +71 -0
- package/dist/api/measurement/index.js.map +1 -0
- package/dist/api/occt-kernel-bridge.d.ts +5 -8
- package/dist/api/occt-kernel-bridge.d.ts.map +1 -1
- package/dist/api/occt-kernel-bridge.js +18 -14
- package/dist/api/occt-kernel-bridge.js.map +1 -1
- package/dist/api/pattern.d.ts.map +1 -1
- package/dist/api/pattern.js +3 -4
- package/dist/api/pattern.js.map +1 -1
- package/dist/api/place.d.ts.map +1 -1
- package/dist/api/place.js +2 -4
- package/dist/api/place.js.map +1 -1
- package/dist/api/primitives.d.ts.map +1 -1
- package/dist/api/primitives.js +3 -4
- package/dist/api/primitives.js.map +1 -1
- package/dist/api/replicate.d.ts +28 -1
- package/dist/api/replicate.d.ts.map +1 -1
- package/dist/api/replicate.js +29 -19
- package/dist/api/replicate.js.map +1 -1
- package/dist/api/result.d.ts +6 -11
- package/dist/api/result.d.ts.map +1 -1
- package/dist/api/result.js +6 -11
- package/dist/api/result.js.map +1 -1
- package/dist/api/revolve.d.ts.map +1 -1
- package/dist/api/revolve.js +15 -14
- package/dist/api/revolve.js.map +1 -1
- package/dist/api/screw.d.ts +3 -0
- package/dist/api/screw.d.ts.map +1 -1
- package/dist/api/screw.js +9 -4
- package/dist/api/screw.js.map +1 -1
- package/dist/api/sdf.d.ts +1 -1
- package/dist/api/section-by-plane.d.ts +42 -0
- package/dist/api/section-by-plane.d.ts.map +1 -0
- package/dist/api/section-by-plane.js +61 -0
- package/dist/api/section-by-plane.js.map +1 -0
- package/dist/api/shell.d.ts +45 -0
- package/dist/api/shell.d.ts.map +1 -0
- package/dist/api/shell.js +73 -0
- package/dist/api/shell.js.map +1 -0
- package/dist/api/sketch.d.ts +8 -1
- package/dist/api/sketch.d.ts.map +1 -1
- package/dist/api/sketch.js +12 -7
- package/dist/api/sketch.js.map +1 -1
- package/dist/api/split-by-plane.d.ts +41 -0
- package/dist/api/split-by-plane.d.ts.map +1 -0
- package/dist/api/split-by-plane.js +60 -0
- package/dist/api/split-by-plane.js.map +1 -0
- package/dist/api/split.d.ts +6 -1
- package/dist/api/split.d.ts.map +1 -1
- package/dist/api/split.js +23 -9
- package/dist/api/split.js.map +1 -1
- package/dist/api/surface/arg-spec.d.ts +22 -0
- package/dist/api/surface/arg-spec.d.ts.map +1 -1
- package/dist/api/surface/arg-spec.js +723 -476
- package/dist/api/surface/arg-spec.js.map +1 -1
- package/dist/api/sweep.d.ts +55 -0
- package/dist/api/sweep.d.ts.map +1 -0
- package/dist/api/sweep.js +86 -0
- package/dist/api/sweep.js.map +1 -0
- package/dist/api/thicken.d.ts +36 -0
- package/dist/api/thicken.d.ts.map +1 -0
- package/dist/api/thicken.js +55 -0
- package/dist/api/thicken.js.map +1 -0
- package/dist/api/transform.d.ts +8 -0
- package/dist/api/transform.d.ts.map +1 -1
- package/dist/api/transform.js +15 -4
- package/dist/api/transform.js.map +1 -1
- package/dist/api/view/cameraFns.d.ts +48 -0
- package/dist/api/view/cameraFns.d.ts.map +1 -0
- package/dist/api/view/cameraFns.js +75 -0
- package/dist/api/view/cameraFns.js.map +1 -0
- package/dist/api/view/projectionPlanes.d.ts +25 -0
- package/dist/api/view/projectionPlanes.d.ts.map +1 -0
- package/dist/api/view/projectionPlanes.js +30 -0
- package/dist/api/view/projectionPlanes.js.map +1 -0
- package/dist/api/view/view-camera.d.ts +2 -2
- package/dist/api/view/view-camera.d.ts.map +1 -1
- package/dist/api/view/view-camera.js +3 -3
- package/dist/api/view/view-camera.js.map +1 -1
- package/dist/api/view/view-projection.d.ts +9 -6
- package/dist/api/view/view-projection.d.ts.map +1 -1
- package/dist/api/view/view-projection.js +132 -65
- package/dist/api/view/view-projection.js.map +1 -1
- package/dist/api/wire.d.ts +45 -0
- package/dist/api/wire.d.ts.map +1 -0
- package/dist/api/wire.js +96 -0
- package/dist/api/wire.js.map +1 -0
- package/dist/boolean/creased-normals.d.ts +50 -0
- package/dist/boolean/creased-normals.d.ts.map +1 -0
- package/dist/boolean/creased-normals.js +114 -0
- package/dist/boolean/creased-normals.js.map +1 -0
- package/dist/boolean/deriveNormals.d.ts +4 -1
- package/dist/boolean/deriveNormals.d.ts.map +1 -1
- package/dist/boolean/deriveNormals.js +5 -2
- package/dist/boolean/deriveNormals.js.map +1 -1
- package/dist/brep/brep-ops.d.ts +6 -0
- package/dist/brep/brep-ops.d.ts.map +1 -1
- package/dist/brep/brep-ops.js +11 -2
- package/dist/brep/brep-ops.js.map +1 -1
- package/dist/brep/brep-topology.d.ts +4 -0
- package/dist/brep/brep-topology.d.ts.map +1 -1
- package/dist/brep/brep-topology.js +4 -0
- package/dist/brep/brep-topology.js.map +1 -1
- package/dist/brep/engine/adapters/brep-mock.d.ts.map +1 -1
- package/dist/brep/engine/adapters/brep-mock.js +79 -59
- package/dist/brep/engine/adapters/brep-mock.js.map +1 -1
- package/dist/brep/engine/adapters/brepkit.d.ts.map +1 -1
- package/dist/brep/engine/adapters/brepkit.js +7 -1
- package/dist/brep/engine/adapters/brepkit.js.map +1 -1
- package/dist/brep/engine/adapters/occt.d.ts +15 -7
- package/dist/brep/engine/adapters/occt.d.ts.map +1 -1
- package/dist/brep/engine/adapters/occt.js +52 -167
- package/dist/brep/engine/adapters/occt.js.map +1 -1
- package/dist/brep/engine/primitives.d.ts +93 -130
- package/dist/brep/engine/primitives.d.ts.map +1 -1
- package/dist/brep/engine/primitives.js +9 -7
- package/dist/brep/engine/primitives.js.map +1 -1
- package/dist/brep/engine/types.d.ts +14 -1
- package/dist/brep/engine/types.d.ts.map +1 -1
- package/dist/brep/engine/types.js +11 -1
- package/dist/brep/engine/types.js.map +1 -1
- package/dist/brep/export/step.d.ts +3 -0
- package/dist/brep/export/step.d.ts.map +1 -1
- package/dist/brep/export/step.js +7 -1
- package/dist/brep/export/step.js.map +1 -1
- package/dist/brep/face-evolution.d.ts +8 -0
- package/dist/brep/face-evolution.d.ts.map +1 -1
- package/dist/brep/face-evolution.js +15 -3
- package/dist/brep/face-evolution.js.map +1 -1
- package/dist/brep/handle-bridge.d.ts +20 -2
- package/dist/brep/handle-bridge.d.ts.map +1 -1
- package/dist/brep/handle-bridge.js +25 -2
- package/dist/brep/handle-bridge.js.map +1 -1
- package/dist/brepkit-kernel/brepkitKernel.d.ts +25 -5
- package/dist/brepkit-kernel/brepkitKernel.d.ts.map +1 -1
- package/dist/brepkit-kernel/brepkitKernel.js +336 -144
- package/dist/brepkit-kernel/brepkitKernel.js.map +1 -1
- package/dist/cad-runtime/admit-compat-lib.d.ts +6 -1
- package/dist/cad-runtime/admit-compat-lib.d.ts.map +1 -1
- package/dist/cad-runtime/admit-compat-lib.js +5 -1
- package/dist/cad-runtime/admit-compat-lib.js.map +1 -1
- package/dist/cad-runtime/backend-dispatch.d.ts +9 -3
- package/dist/cad-runtime/backend-dispatch.d.ts.map +1 -1
- package/dist/cad-runtime/backend-dispatch.js +32 -2
- package/dist/cad-runtime/backend-dispatch.js.map +1 -1
- package/dist/cad-runtime/direct-executor.d.ts.map +1 -1
- package/dist/cad-runtime/direct-executor.js +8 -2
- package/dist/cad-runtime/direct-executor.js.map +1 -1
- package/dist/cad-runtime/runtime.d.ts +3 -0
- package/dist/cad-runtime/runtime.d.ts.map +1 -1
- package/dist/cad-runtime/runtime.js +3 -1
- package/dist/cad-runtime/runtime.js.map +1 -1
- package/dist/define-op.d.ts +18 -2
- package/dist/define-op.d.ts.map +1 -1
- package/dist/define-op.js +29 -1
- package/dist/define-op.js.map +1 -1
- package/dist/env-agnostic.d.ts +3 -0
- package/dist/env-agnostic.d.ts.map +1 -1
- package/dist/env-agnostic.js +7 -0
- package/dist/env-agnostic.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -4
- package/dist/index.js.map +1 -1
- package/dist/lang/symbol-table.generated.d.ts +28 -0
- package/dist/lang/symbol-table.generated.d.ts.map +1 -1
- package/dist/lang/symbol-table.generated.js +29 -1
- package/dist/lang/symbol-table.generated.js.map +1 -1
- package/dist/occt-kernel/highLevelApi.d.ts.map +1 -1
- package/dist/occt-kernel/highLevelApi.js +6 -3
- package/dist/occt-kernel/highLevelApi.js.map +1 -1
- package/dist/occt-kernel/hullGeometry.d.ts +31 -0
- package/dist/occt-kernel/hullGeometry.d.ts.map +1 -0
- package/dist/occt-kernel/hullGeometry.js +319 -0
- package/dist/occt-kernel/hullGeometry.js.map +1 -0
- package/dist/occt-kernel/hullOps.d.ts +24 -0
- package/dist/occt-kernel/hullOps.d.ts.map +1 -0
- package/dist/occt-kernel/hullOps.js +52 -0
- package/dist/occt-kernel/hullOps.js.map +1 -0
- package/dist/occt-kernel/occt-primitives.d.ts +14 -0
- package/dist/occt-kernel/occt-primitives.d.ts.map +1 -0
- package/dist/occt-kernel/occt-primitives.js +351 -0
- package/dist/occt-kernel/occt-primitives.js.map +1 -0
- package/dist/occt-kernel/occtKernel.d.ts +14 -6
- package/dist/occt-kernel/occtKernel.d.ts.map +1 -1
- package/dist/occt-kernel/occtKernel.js +11 -3
- package/dist/occt-kernel/occtKernel.js.map +1 -1
- package/dist/occt-kernel/topologyExt.js +2 -2
- package/dist/occt-kernel/topologyExt.js.map +1 -1
- package/dist/primitives/brep-primitives.d.ts +4 -0
- package/dist/primitives/brep-primitives.d.ts.map +1 -1
- package/dist/primitives/brep-primitives.js +4 -0
- package/dist/primitives/brep-primitives.js.map +1 -1
- package/dist/result/bug.d.ts +22 -0
- package/dist/result/bug.d.ts.map +1 -0
- package/dist/result/bug.js +28 -0
- package/dist/result/bug.js.map +1 -0
- package/dist/result/errors.d.ts +270 -0
- package/dist/result/errors.d.ts.map +1 -0
- package/dist/result/errors.js +317 -0
- package/dist/result/errors.js.map +1 -0
- package/dist/result/kernelErrorTranslation.d.ts +21 -0
- package/dist/result/kernelErrorTranslation.d.ts.map +1 -0
- package/dist/result/kernelErrorTranslation.js +102 -0
- package/dist/result/kernelErrorTranslation.js.map +1 -0
- package/dist/result/result.d.ts +213 -0
- package/dist/result/result.d.ts.map +1 -0
- package/dist/result/result.js +336 -0
- package/dist/result/result.js.map +1 -0
- package/dist/result/vec3.d.ts +12 -0
- package/dist/result/vec3.d.ts.map +1 -0
- package/dist/result/vec3.js +14 -0
- package/dist/result/vec3.js.map +1 -0
- package/dist/runtime-state.d.ts +9 -0
- package/dist/runtime-state.d.ts.map +1 -1
- package/dist/runtime-state.js.map +1 -1
- package/dist/sdk.d.ts +3 -1
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +2 -1
- package/dist/sdk.js.map +1 -1
- package/dist/shape.d.ts +43 -1
- package/dist/shape.d.ts.map +1 -1
- package/dist/shape.js +57 -1
- package/dist/shape.js.map +1 -1
- package/dist/topology/naming/geom-hint.js +1 -1
- package/dist/topology/naming/geom-hint.js.map +1 -1
- package/dist/topology/naming/score.js +1 -1
- package/dist/topology/naming/score.js.map +1 -1
- package/package.json +6 -16
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Domain error types and constructors(第一方模块)。
|
|
3
|
+
*
|
|
4
|
+
* 2026-09-25 core-decouple Phase 1:复制自 brepjs `src/core/errors.ts`
|
|
5
|
+
* (同源复制,签名不变);import 来源改为 core 第一方 `result/` 内模块。
|
|
6
|
+
* Re-exports bug/BrepBugError(Layer 0)for convenience.
|
|
7
|
+
*/
|
|
8
|
+
import { bug, BrepBugError } from './bug.js';
|
|
9
|
+
import { wasmIndex } from './vec3.js';
|
|
10
|
+
export { bug, BrepBugError };
|
|
11
|
+
// ---------------------------------------------------------------------------
|
|
12
|
+
// Error codes — typed constants for all known error code strings
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
/**
|
|
15
|
+
* Typed string constants for all known brepjs error codes, grouped by category.
|
|
16
|
+
*
|
|
17
|
+
* Use these instead of raw strings so that typos are caught at compile time.
|
|
18
|
+
*/
|
|
19
|
+
export const BrepErrorCode = {
|
|
20
|
+
// kernel operation errors
|
|
21
|
+
BSPLINE_FAILED: 'BSPLINE_FAILED',
|
|
22
|
+
FACE_BUILD_FAILED: 'FACE_BUILD_FAILED',
|
|
23
|
+
WIRE_BUILD_FAILED: 'WIRE_BUILD_FAILED',
|
|
24
|
+
SWEEP_FAILED: 'SWEEP_FAILED',
|
|
25
|
+
LOFT_FAILED: 'LOFT_FAILED',
|
|
26
|
+
FUSE_FAILED: 'FUSE_FAILED',
|
|
27
|
+
CUT_FAILED: 'CUT_FAILED',
|
|
28
|
+
HEAL_NO_EFFECT: 'HEAL_NO_EFFECT',
|
|
29
|
+
BOOLEAN_HAS_ERRORS: 'BOOLEAN_HAS_ERRORS',
|
|
30
|
+
VARIABLE_FILLET_FAILED: 'VARIABLE_FILLET_FAILED',
|
|
31
|
+
POSITION_ON_CURVE_FAILED: 'POSITION_ON_CURVE_FAILED',
|
|
32
|
+
FIX_SHAPE_FAILED: 'FIX_SHAPE_FAILED',
|
|
33
|
+
SOLID_FROM_SHELL_FAILED: 'SOLID_FROM_SHELL_FAILED',
|
|
34
|
+
FIX_SELF_INTERSECTION_FAILED: 'FIX_SELF_INTERSECTION_FAILED',
|
|
35
|
+
MESH_FAILED: 'MESH_FAILED',
|
|
36
|
+
// Validation errors
|
|
37
|
+
ELLIPSE_RADII: 'ELLIPSE_RADII',
|
|
38
|
+
FUSE_ALL_EMPTY: 'FUSE_ALL_EMPTY',
|
|
39
|
+
FILLET_NO_EDGES: 'FILLET_NO_EDGES',
|
|
40
|
+
CHAMFER_NO_EDGES: 'CHAMFER_NO_EDGES',
|
|
41
|
+
CHAMFER_ANGLE_NO_EDGES: 'CHAMFER_ANGLE_NO_EDGES',
|
|
42
|
+
CHAMFER_ANGLE_BAD_DISTANCE: 'CHAMFER_ANGLE_BAD_DISTANCE',
|
|
43
|
+
CHAMFER_ANGLE_BAD_ANGLE: 'CHAMFER_ANGLE_BAD_ANGLE',
|
|
44
|
+
BEZIER_MIN_POINTS: 'BEZIER_MIN_POINTS',
|
|
45
|
+
POLYGON_MIN_POINTS: 'POLYGON_MIN_POINTS',
|
|
46
|
+
WIRE_NOT_CLOSED: 'WIRE_NOT_CLOSED',
|
|
47
|
+
FACE_NOT_PLANAR: 'FACE_NOT_PLANAR',
|
|
48
|
+
ZERO_LENGTH_EXTRUSION: 'ZERO_LENGTH_EXTRUSION',
|
|
49
|
+
ZERO_TWIST_ANGLE: 'ZERO_TWIST_ANGLE',
|
|
50
|
+
LOFT_EMPTY: 'LOFT_EMPTY',
|
|
51
|
+
UNSUPPORTED_PROFILE: 'UNSUPPORTED_PROFILE',
|
|
52
|
+
UNKNOWN_PLANE: 'UNKNOWN_PLANE',
|
|
53
|
+
NULL_SHAPE_INPUT: 'NULL_SHAPE_INPUT',
|
|
54
|
+
INVALID_FILLET_RADIUS: 'INVALID_FILLET_RADIUS',
|
|
55
|
+
INVALID_CHAMFER_DISTANCE: 'INVALID_CHAMFER_DISTANCE',
|
|
56
|
+
INVALID_THICKNESS: 'INVALID_THICKNESS',
|
|
57
|
+
ZERO_OFFSET: 'ZERO_OFFSET',
|
|
58
|
+
NO_EDGES: 'NO_EDGES',
|
|
59
|
+
NO_FACES: 'NO_FACES',
|
|
60
|
+
DRAFT_NO_FACES: 'DRAFT_NO_FACES',
|
|
61
|
+
DRAFT_INVALID_ANGLE: 'DRAFT_INVALID_ANGLE',
|
|
62
|
+
DRAFT_NOT_3D: 'DRAFT_NOT_3D',
|
|
63
|
+
DRAFT_FAILED: 'DRAFT_FAILED',
|
|
64
|
+
// Type cast errors
|
|
65
|
+
FUSE_NOT_3D: 'FUSE_NOT_3D',
|
|
66
|
+
CUT_NOT_3D: 'CUT_NOT_3D',
|
|
67
|
+
INTERSECT_NOT_3D: 'INTERSECT_NOT_3D',
|
|
68
|
+
FUSE_ALL_NOT_3D: 'FUSE_ALL_NOT_3D',
|
|
69
|
+
CUT_ALL_NOT_3D: 'CUT_ALL_NOT_3D',
|
|
70
|
+
LOFT_NOT_3D: 'LOFT_NOT_3D',
|
|
71
|
+
SWEEP_NOT_3D: 'SWEEP_NOT_3D',
|
|
72
|
+
REVOLUTION_NOT_3D: 'REVOLUTION_NOT_3D',
|
|
73
|
+
FILLET_NOT_3D: 'FILLET_NOT_3D',
|
|
74
|
+
CHAMFER_NOT_3D: 'CHAMFER_NOT_3D',
|
|
75
|
+
CHAMFER_ANGLE_NOT_3D: 'CHAMFER_ANGLE_NOT_3D',
|
|
76
|
+
CHAMFER_ANGLE_FAILED: 'CHAMFER_ANGLE_FAILED',
|
|
77
|
+
CSG_NOT_3D: 'CSG_NOT_3D',
|
|
78
|
+
SHELL_NOT_3D: 'SHELL_NOT_3D',
|
|
79
|
+
OFFSET_NOT_3D: 'OFFSET_NOT_3D',
|
|
80
|
+
NULL_SHAPE: 'NULL_SHAPE',
|
|
81
|
+
NO_WRAPPER: 'NO_WRAPPER',
|
|
82
|
+
WELD_NOT_SHELL: 'WELD_NOT_SHELL',
|
|
83
|
+
SOLID_BUILD_FAILED: 'SOLID_BUILD_FAILED',
|
|
84
|
+
OFFSET_NOT_WIRE: 'OFFSET_NOT_WIRE',
|
|
85
|
+
UNKNOWN_SURFACE_TYPE: 'UNKNOWN_SURFACE_TYPE',
|
|
86
|
+
UNKNOWN_CURVE_TYPE: 'UNKNOWN_CURVE_TYPE',
|
|
87
|
+
SWEEP_START_NOT_WIRE: 'SWEEP_START_NOT_WIRE',
|
|
88
|
+
SWEEP_END_NOT_WIRE: 'SWEEP_END_NOT_WIRE',
|
|
89
|
+
// IO errors
|
|
90
|
+
STEP_EXPORT_FAILED: 'STEP_EXPORT_FAILED',
|
|
91
|
+
STEP_EXPORT_CONFIGURED_FAILED: 'STEP_EXPORT_CONFIGURED_FAILED',
|
|
92
|
+
STEP_FILE_READ_ERROR: 'STEP_FILE_READ_ERROR',
|
|
93
|
+
STEP_EXPORT_CRASHED: 'STEP_EXPORT_CRASHED',
|
|
94
|
+
STEP_EXPORT_UNSERIALIZABLE: 'STEP_EXPORT_UNSERIALIZABLE',
|
|
95
|
+
STL_EXPORT_FAILED: 'STL_EXPORT_FAILED',
|
|
96
|
+
STL_FILE_READ_ERROR: 'STL_FILE_READ_ERROR',
|
|
97
|
+
STL_EXPORT_CRASHED: 'STL_EXPORT_CRASHED',
|
|
98
|
+
STL_EXPORT_UNSERIALIZABLE: 'STL_EXPORT_UNSERIALIZABLE',
|
|
99
|
+
STEP_IMPORT_FAILED: 'STEP_IMPORT_FAILED',
|
|
100
|
+
STL_IMPORT_FAILED: 'STL_IMPORT_FAILED',
|
|
101
|
+
IGES_EXPORT_FAILED: 'IGES_EXPORT_FAILED',
|
|
102
|
+
IGES_IMPORT_FAILED: 'IGES_IMPORT_FAILED',
|
|
103
|
+
DXF_IMPORT_FAILED: 'DXF_IMPORT_FAILED',
|
|
104
|
+
OBJ_IMPORT_FAILED: 'OBJ_IMPORT_FAILED',
|
|
105
|
+
THREEMF_IMPORT_FAILED: 'THREEMF_IMPORT_FAILED',
|
|
106
|
+
// Computation errors
|
|
107
|
+
PARAMETER_NOT_FOUND: 'PARAMETER_NOT_FOUND',
|
|
108
|
+
INTERSECTION_FAILED: 'INTERSECTION_FAILED',
|
|
109
|
+
SELF_INTERSECTION_FAILED: 'SELF_INTERSECTION_FAILED',
|
|
110
|
+
STRAIGHT_SKELETON_FAILED: 'STRAIGHT_SKELETON_FAILED',
|
|
111
|
+
CENTER_OF_MASS_FAILED: 'CENTER_OF_MASS_FAILED',
|
|
112
|
+
// Compound operation errors
|
|
113
|
+
COMPOUND_NO_FACES: 'COMPOUND_NO_FACES',
|
|
114
|
+
COMPOUND_FACE_NOT_FOUND: 'COMPOUND_FACE_NOT_FOUND',
|
|
115
|
+
// Query errors
|
|
116
|
+
FINDER_NOT_UNIQUE: 'FINDER_NOT_UNIQUE',
|
|
117
|
+
// Hull errors
|
|
118
|
+
HULL_EMPTY_INPUT: 'HULL_EMPTY_INPUT',
|
|
119
|
+
HULL_FAILED: 'HULL_FAILED',
|
|
120
|
+
HULL_DEGENERATE: 'HULL_DEGENERATE',
|
|
121
|
+
HULL_NOT_3D: 'HULL_NOT_3D',
|
|
122
|
+
// Minkowski errors
|
|
123
|
+
MINKOWSKI_FAILED: 'MINKOWSKI_FAILED',
|
|
124
|
+
MINKOWSKI_NULL_TOOL: 'MINKOWSKI_NULL_TOOL',
|
|
125
|
+
MINKOWSKI_NOT_3D: 'MINKOWSKI_NOT_3D',
|
|
126
|
+
// Polyhedron errors
|
|
127
|
+
POLYHEDRON_INSUFFICIENT_POINTS: 'POLYHEDRON_INSUFFICIENT_POINTS',
|
|
128
|
+
POLYHEDRON_INSUFFICIENT_FACES: 'POLYHEDRON_INSUFFICIENT_FACES',
|
|
129
|
+
POLYHEDRON_INVALID_INDEX: 'POLYHEDRON_INVALID_INDEX',
|
|
130
|
+
POLYHEDRON_FAILED: 'POLYHEDRON_FAILED',
|
|
131
|
+
// General validation errors
|
|
132
|
+
VALIDATION_FAILED: 'VALIDATION_FAILED',
|
|
133
|
+
// Roof errors
|
|
134
|
+
ROOF_FAILED: 'ROOF_FAILED',
|
|
135
|
+
// Multi-section sweep errors
|
|
136
|
+
MULTI_SWEEP_INSUFFICIENT_SECTIONS: 'MULTI_SWEEP_INSUFFICIENT_SECTIONS',
|
|
137
|
+
MULTI_SWEEP_FAILED: 'MULTI_SWEEP_FAILED',
|
|
138
|
+
// Guide curve sweep errors
|
|
139
|
+
GUIDED_SWEEP_FAILED: 'GUIDED_SWEEP_FAILED',
|
|
140
|
+
// Surface errors
|
|
141
|
+
SURFACE_GRID_TOO_SMALL: 'SURFACE_GRID_TOO_SMALL',
|
|
142
|
+
SURFACE_GRID_JAGGED: 'SURFACE_GRID_JAGGED',
|
|
143
|
+
SURFACE_FAILED: 'SURFACE_FAILED',
|
|
144
|
+
// Assembly mate errors
|
|
145
|
+
ASSEMBLY_MATE_INVALID: 'ASSEMBLY_MATE_INVALID',
|
|
146
|
+
ASSEMBLY_SOLVE_FAILED: 'ASSEMBLY_SOLVE_FAILED',
|
|
147
|
+
ASSEMBLY_NOT_CONVERGED: 'ASSEMBLY_NOT_CONVERGED',
|
|
148
|
+
// Blueprint / CompoundBlueprint errors
|
|
149
|
+
BLUEPRINT_EMPTY_CURVES: 'BLUEPRINT_EMPTY_CURVES',
|
|
150
|
+
COMPOUND_BLUEPRINT_EMPTY: 'COMPOUND_BLUEPRINT_EMPTY',
|
|
151
|
+
// GLB/glTF import errors
|
|
152
|
+
GLB_IMPORT_FAILED: 'GLB_IMPORT_FAILED',
|
|
153
|
+
// Font/text errors
|
|
154
|
+
FONT_FETCH_FAILED: 'FONT_FETCH_FAILED',
|
|
155
|
+
FONT_PARSE_FAILED: 'FONT_PARSE_FAILED',
|
|
156
|
+
NO_FONT_LOADED: 'NO_FONT_LOADED',
|
|
157
|
+
// 2D curve geometry errors
|
|
158
|
+
CURVE2D_CONSTRUCTION_FAILED: 'CURVE2D_CONSTRUCTION_FAILED',
|
|
159
|
+
CURVE2D_INVALID_RADIUS: 'CURVE2D_INVALID_RADIUS',
|
|
160
|
+
CURVE2D_TRANSFORM_FAILED: 'CURVE2D_TRANSFORM_FAILED',
|
|
161
|
+
CURVE2D_QUERY_FAILED: 'CURVE2D_QUERY_FAILED',
|
|
162
|
+
CURVE2D_INTERSECTION_FAILED: 'CURVE2D_INTERSECTION_FAILED',
|
|
163
|
+
CURVE2D_BRIDGE_FAILED: 'CURVE2D_BRIDGE_FAILED',
|
|
164
|
+
// Shape identity errors
|
|
165
|
+
CLONE_FAILED: 'CLONE_FAILED',
|
|
166
|
+
SIMPLIFY_FAILED: 'SIMPLIFY_FAILED',
|
|
167
|
+
TO_BREP_FAILED: 'TO_BREP_FAILED',
|
|
168
|
+
// Unsupported capability errors (ADR-0006 Phase 4)
|
|
169
|
+
UNSUPPORTED_CAPABILITY: 'UNSUPPORTED_CAPABILITY',
|
|
170
|
+
};
|
|
171
|
+
// ---------------------------------------------------------------------------
|
|
172
|
+
// Constructors per kind
|
|
173
|
+
// ---------------------------------------------------------------------------
|
|
174
|
+
function makeError(kind, code, message, cause, metadata, suggestion) {
|
|
175
|
+
const base = { kind, code, message, cause };
|
|
176
|
+
if (suggestion) {
|
|
177
|
+
const withSuggestion = { ...base, suggestion };
|
|
178
|
+
if (metadata)
|
|
179
|
+
return { ...withSuggestion, metadata };
|
|
180
|
+
return withSuggestion;
|
|
181
|
+
}
|
|
182
|
+
if (metadata)
|
|
183
|
+
return { ...base, metadata };
|
|
184
|
+
return base;
|
|
185
|
+
}
|
|
186
|
+
/** Create an error for a failed kernel kernel operation.
|
|
187
|
+
*
|
|
188
|
+
* @param code - Error code identifying the failure.
|
|
189
|
+
* @param message - Human-readable error message.
|
|
190
|
+
* @param cause - Optional underlying cause of the error.
|
|
191
|
+
* @param metadata - Optional structured metadata attached to the error.
|
|
192
|
+
* @param suggestion - Optional actionable suggestion for resolving the error.
|
|
193
|
+
* @returns The constructed {@link BrepError}.
|
|
194
|
+
*/
|
|
195
|
+
export function kernelError(code, message, cause, metadata, suggestion) {
|
|
196
|
+
return makeError('KERNEL_OPERATION', code, message, cause, metadata, suggestion);
|
|
197
|
+
}
|
|
198
|
+
/** Create an error for invalid input parameters.
|
|
199
|
+
*
|
|
200
|
+
* @param code - Error code identifying the failure.
|
|
201
|
+
* @param message - Human-readable error message.
|
|
202
|
+
* @param cause - Optional underlying cause of the error.
|
|
203
|
+
* @param metadata - Optional structured metadata attached to the error.
|
|
204
|
+
* @param suggestion - Optional actionable suggestion for resolving the error.
|
|
205
|
+
* @returns The constructed {@link BrepError}.
|
|
206
|
+
*/
|
|
207
|
+
export function validationError(code, message, cause, metadata, suggestion) {
|
|
208
|
+
return makeError('VALIDATION', code, message, cause, metadata, suggestion);
|
|
209
|
+
}
|
|
210
|
+
/** Create an error for a failed shape type cast or conversion.
|
|
211
|
+
*
|
|
212
|
+
* @param code - Error code identifying the failure.
|
|
213
|
+
* @param message - Human-readable error message.
|
|
214
|
+
* @param cause - Optional underlying cause of the error.
|
|
215
|
+
* @param metadata - Optional structured metadata attached to the error.
|
|
216
|
+
* @param suggestion - Optional actionable suggestion for resolving the error.
|
|
217
|
+
* @returns The constructed {@link BrepError}.
|
|
218
|
+
*/
|
|
219
|
+
export function typeCastError(code, message, cause, metadata, suggestion) {
|
|
220
|
+
return makeError('TYPE_CAST', code, message, cause, metadata, suggestion);
|
|
221
|
+
}
|
|
222
|
+
/** Create an error for an invalid sketcher state transition.
|
|
223
|
+
*
|
|
224
|
+
* @param code - Error code identifying the failure.
|
|
225
|
+
* @param message - Human-readable error message.
|
|
226
|
+
* @param cause - Optional underlying cause of the error.
|
|
227
|
+
* @param metadata - Optional structured metadata attached to the error.
|
|
228
|
+
* @param suggestion - Optional actionable suggestion for resolving the error.
|
|
229
|
+
* @returns The constructed {@link BrepError}.
|
|
230
|
+
*/
|
|
231
|
+
export function sketcherStateError(code, message, cause, metadata, suggestion) {
|
|
232
|
+
return makeError('SKETCHER_STATE', code, message, cause, metadata, suggestion);
|
|
233
|
+
}
|
|
234
|
+
/** Create an error for a module initialisation failure.
|
|
235
|
+
*
|
|
236
|
+
* @param code - Error code identifying the failure.
|
|
237
|
+
* @param message - Human-readable error message.
|
|
238
|
+
* @param cause - Optional underlying cause of the error.
|
|
239
|
+
* @param metadata - Optional structured metadata attached to the error.
|
|
240
|
+
* @param suggestion - Optional actionable suggestion for resolving the error.
|
|
241
|
+
* @returns The constructed {@link BrepError}.
|
|
242
|
+
*/
|
|
243
|
+
export function moduleInitError(code, message, cause, metadata, suggestion) {
|
|
244
|
+
return makeError('MODULE_INIT', code, message, cause, metadata, suggestion);
|
|
245
|
+
}
|
|
246
|
+
/** Create an error for a failed geometric computation.
|
|
247
|
+
*
|
|
248
|
+
* @param code - Error code identifying the failure.
|
|
249
|
+
* @param message - Human-readable error message.
|
|
250
|
+
* @param cause - Optional underlying cause of the error.
|
|
251
|
+
* @param metadata - Optional structured metadata attached to the error.
|
|
252
|
+
* @param suggestion - Optional actionable suggestion for resolving the error.
|
|
253
|
+
* @returns The constructed {@link BrepError}.
|
|
254
|
+
*/
|
|
255
|
+
export function computationError(code, message, cause, metadata, suggestion) {
|
|
256
|
+
return makeError('COMPUTATION', code, message, cause, metadata, suggestion);
|
|
257
|
+
}
|
|
258
|
+
/** Create an error for a file import/export failure.
|
|
259
|
+
*
|
|
260
|
+
* @param code - Error code identifying the failure.
|
|
261
|
+
* @param message - Human-readable error message.
|
|
262
|
+
* @param cause - Optional underlying cause of the error.
|
|
263
|
+
* @param metadata - Optional structured metadata attached to the error.
|
|
264
|
+
* @param suggestion - Optional actionable suggestion for resolving the error.
|
|
265
|
+
* @returns The constructed {@link BrepError}.
|
|
266
|
+
*/
|
|
267
|
+
export function ioError(code, message, cause, metadata, suggestion) {
|
|
268
|
+
return makeError('IO', code, message, cause, metadata, suggestion);
|
|
269
|
+
}
|
|
270
|
+
/** Create an error for a shape query failure (e.g. finder not unique).
|
|
271
|
+
*
|
|
272
|
+
* @param code - Error code identifying the failure.
|
|
273
|
+
* @param message - Human-readable error message.
|
|
274
|
+
* @param cause - Optional underlying cause of the error.
|
|
275
|
+
* @param metadata - Optional structured metadata attached to the error.
|
|
276
|
+
* @param suggestion - Optional actionable suggestion for resolving the error.
|
|
277
|
+
* @returns The constructed {@link BrepError}.
|
|
278
|
+
*/
|
|
279
|
+
export function queryError(code, message, cause, metadata, suggestion) {
|
|
280
|
+
return makeError('QUERY', code, message, cause, metadata, suggestion);
|
|
281
|
+
}
|
|
282
|
+
/** Create an error for a capability not supported by the current kernel (ADR-0006 Phase 4).
|
|
283
|
+
*
|
|
284
|
+
* @param code - Error code identifying the failure.
|
|
285
|
+
* @param message - Human-readable error message.
|
|
286
|
+
* @param cause - Optional underlying cause of the error.
|
|
287
|
+
* @param metadata - Optional structured metadata attached to the error.
|
|
288
|
+
* @param suggestion - Optional actionable suggestion for resolving the error.
|
|
289
|
+
* @returns The constructed {@link BrepError}.
|
|
290
|
+
*/
|
|
291
|
+
export function unsupportedError(code, message, cause, metadata, suggestion) {
|
|
292
|
+
return makeError('UNSUPPORTED', code, message, cause, metadata, suggestion);
|
|
293
|
+
}
|
|
294
|
+
// Re-export from kernelErrorTranslation for backward compatibility
|
|
295
|
+
export { translateKernelError, getSuggestionForCode } from './kernelErrorTranslation.js';
|
|
296
|
+
// ---------------------------------------------------------------------------
|
|
297
|
+
// Array safety helper
|
|
298
|
+
// ---------------------------------------------------------------------------
|
|
299
|
+
/**
|
|
300
|
+
* Safe array index access that throws a descriptive {@link BrepBugError} instead
|
|
301
|
+
* of returning `undefined` when the index is out of bounds.
|
|
302
|
+
*
|
|
303
|
+
* Use in place of `arr[i]!` when the caller can prove the index is valid by
|
|
304
|
+
* construction but TypeScript's `noUncheckedIndexedAccess` still requires a guard.
|
|
305
|
+
*
|
|
306
|
+
* @param arr - The array to index into.
|
|
307
|
+
* @param index - The index to access.
|
|
308
|
+
* @param context - Optional caller context for the error message (e.g. function name).
|
|
309
|
+
* @returns The array element at `index`.
|
|
310
|
+
*/
|
|
311
|
+
export function safeIndex(arr, index, context) {
|
|
312
|
+
if (index < 0 || index >= arr.length) {
|
|
313
|
+
bug(context ?? 'safeIndex', `Index ${index} is out of bounds (array length ${arr.length})`);
|
|
314
|
+
}
|
|
315
|
+
return wasmIndex(arr, index);
|
|
316
|
+
}
|
|
317
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/result/errors.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Domain error types and constructors(第一方模块)。\n *\n * 2026-09-25 core-decouple Phase 1:复制自 brepjs `src/core/errors.ts`\n * (同源复制,签名不变);import 来源改为 core 第一方 `result/` 内模块。\n * Re-exports bug/BrepBugError(Layer 0)for convenience.\n */\n\nimport { bug, BrepBugError } from './bug';\nimport { wasmIndex } from './vec3';\nexport { bug, BrepBugError };\n\n// ---------------------------------------------------------------------------\n// Error kinds\n// ---------------------------------------------------------------------------\n\n/** High-level category for a brepjs error. */\nexport type BrepErrorKind =\n | 'KERNEL_OPERATION'\n | 'VALIDATION'\n | 'TYPE_CAST'\n | 'SKETCHER_STATE'\n | 'MODULE_INIT'\n | 'COMPUTATION'\n | 'IO'\n | 'QUERY'\n | 'UNSUPPORTED';\n\n// ---------------------------------------------------------------------------\n// Error codes — typed constants for all known error code strings\n// ---------------------------------------------------------------------------\n\n/**\n * Typed string constants for all known brepjs error codes, grouped by category.\n *\n * Use these instead of raw strings so that typos are caught at compile time.\n */\nexport const BrepErrorCode = {\n // kernel operation errors\n BSPLINE_FAILED: 'BSPLINE_FAILED',\n FACE_BUILD_FAILED: 'FACE_BUILD_FAILED',\n WIRE_BUILD_FAILED: 'WIRE_BUILD_FAILED',\n SWEEP_FAILED: 'SWEEP_FAILED',\n LOFT_FAILED: 'LOFT_FAILED',\n FUSE_FAILED: 'FUSE_FAILED',\n CUT_FAILED: 'CUT_FAILED',\n HEAL_NO_EFFECT: 'HEAL_NO_EFFECT',\n BOOLEAN_HAS_ERRORS: 'BOOLEAN_HAS_ERRORS',\n VARIABLE_FILLET_FAILED: 'VARIABLE_FILLET_FAILED',\n POSITION_ON_CURVE_FAILED: 'POSITION_ON_CURVE_FAILED',\n FIX_SHAPE_FAILED: 'FIX_SHAPE_FAILED',\n SOLID_FROM_SHELL_FAILED: 'SOLID_FROM_SHELL_FAILED',\n FIX_SELF_INTERSECTION_FAILED: 'FIX_SELF_INTERSECTION_FAILED',\n MESH_FAILED: 'MESH_FAILED',\n\n // Validation errors\n ELLIPSE_RADII: 'ELLIPSE_RADII',\n FUSE_ALL_EMPTY: 'FUSE_ALL_EMPTY',\n FILLET_NO_EDGES: 'FILLET_NO_EDGES',\n CHAMFER_NO_EDGES: 'CHAMFER_NO_EDGES',\n CHAMFER_ANGLE_NO_EDGES: 'CHAMFER_ANGLE_NO_EDGES',\n CHAMFER_ANGLE_BAD_DISTANCE: 'CHAMFER_ANGLE_BAD_DISTANCE',\n CHAMFER_ANGLE_BAD_ANGLE: 'CHAMFER_ANGLE_BAD_ANGLE',\n BEZIER_MIN_POINTS: 'BEZIER_MIN_POINTS',\n POLYGON_MIN_POINTS: 'POLYGON_MIN_POINTS',\n WIRE_NOT_CLOSED: 'WIRE_NOT_CLOSED',\n FACE_NOT_PLANAR: 'FACE_NOT_PLANAR',\n ZERO_LENGTH_EXTRUSION: 'ZERO_LENGTH_EXTRUSION',\n ZERO_TWIST_ANGLE: 'ZERO_TWIST_ANGLE',\n LOFT_EMPTY: 'LOFT_EMPTY',\n UNSUPPORTED_PROFILE: 'UNSUPPORTED_PROFILE',\n UNKNOWN_PLANE: 'UNKNOWN_PLANE',\n NULL_SHAPE_INPUT: 'NULL_SHAPE_INPUT',\n INVALID_FILLET_RADIUS: 'INVALID_FILLET_RADIUS',\n INVALID_CHAMFER_DISTANCE: 'INVALID_CHAMFER_DISTANCE',\n INVALID_THICKNESS: 'INVALID_THICKNESS',\n ZERO_OFFSET: 'ZERO_OFFSET',\n NO_EDGES: 'NO_EDGES',\n NO_FACES: 'NO_FACES',\n DRAFT_NO_FACES: 'DRAFT_NO_FACES',\n DRAFT_INVALID_ANGLE: 'DRAFT_INVALID_ANGLE',\n DRAFT_NOT_3D: 'DRAFT_NOT_3D',\n DRAFT_FAILED: 'DRAFT_FAILED',\n\n // Type cast errors\n FUSE_NOT_3D: 'FUSE_NOT_3D',\n CUT_NOT_3D: 'CUT_NOT_3D',\n INTERSECT_NOT_3D: 'INTERSECT_NOT_3D',\n FUSE_ALL_NOT_3D: 'FUSE_ALL_NOT_3D',\n CUT_ALL_NOT_3D: 'CUT_ALL_NOT_3D',\n LOFT_NOT_3D: 'LOFT_NOT_3D',\n SWEEP_NOT_3D: 'SWEEP_NOT_3D',\n REVOLUTION_NOT_3D: 'REVOLUTION_NOT_3D',\n FILLET_NOT_3D: 'FILLET_NOT_3D',\n CHAMFER_NOT_3D: 'CHAMFER_NOT_3D',\n CHAMFER_ANGLE_NOT_3D: 'CHAMFER_ANGLE_NOT_3D',\n CHAMFER_ANGLE_FAILED: 'CHAMFER_ANGLE_FAILED',\n CSG_NOT_3D: 'CSG_NOT_3D',\n SHELL_NOT_3D: 'SHELL_NOT_3D',\n OFFSET_NOT_3D: 'OFFSET_NOT_3D',\n NULL_SHAPE: 'NULL_SHAPE',\n NO_WRAPPER: 'NO_WRAPPER',\n WELD_NOT_SHELL: 'WELD_NOT_SHELL',\n SOLID_BUILD_FAILED: 'SOLID_BUILD_FAILED',\n OFFSET_NOT_WIRE: 'OFFSET_NOT_WIRE',\n UNKNOWN_SURFACE_TYPE: 'UNKNOWN_SURFACE_TYPE',\n UNKNOWN_CURVE_TYPE: 'UNKNOWN_CURVE_TYPE',\n SWEEP_START_NOT_WIRE: 'SWEEP_START_NOT_WIRE',\n SWEEP_END_NOT_WIRE: 'SWEEP_END_NOT_WIRE',\n\n // IO errors\n STEP_EXPORT_FAILED: 'STEP_EXPORT_FAILED',\n STEP_EXPORT_CONFIGURED_FAILED: 'STEP_EXPORT_CONFIGURED_FAILED',\n STEP_FILE_READ_ERROR: 'STEP_FILE_READ_ERROR',\n STEP_EXPORT_CRASHED: 'STEP_EXPORT_CRASHED',\n STEP_EXPORT_UNSERIALIZABLE: 'STEP_EXPORT_UNSERIALIZABLE',\n STL_EXPORT_FAILED: 'STL_EXPORT_FAILED',\n STL_FILE_READ_ERROR: 'STL_FILE_READ_ERROR',\n STL_EXPORT_CRASHED: 'STL_EXPORT_CRASHED',\n STL_EXPORT_UNSERIALIZABLE: 'STL_EXPORT_UNSERIALIZABLE',\n STEP_IMPORT_FAILED: 'STEP_IMPORT_FAILED',\n STL_IMPORT_FAILED: 'STL_IMPORT_FAILED',\n IGES_EXPORT_FAILED: 'IGES_EXPORT_FAILED',\n IGES_IMPORT_FAILED: 'IGES_IMPORT_FAILED',\n DXF_IMPORT_FAILED: 'DXF_IMPORT_FAILED',\n OBJ_IMPORT_FAILED: 'OBJ_IMPORT_FAILED',\n THREEMF_IMPORT_FAILED: 'THREEMF_IMPORT_FAILED',\n\n // Computation errors\n PARAMETER_NOT_FOUND: 'PARAMETER_NOT_FOUND',\n INTERSECTION_FAILED: 'INTERSECTION_FAILED',\n SELF_INTERSECTION_FAILED: 'SELF_INTERSECTION_FAILED',\n STRAIGHT_SKELETON_FAILED: 'STRAIGHT_SKELETON_FAILED',\n CENTER_OF_MASS_FAILED: 'CENTER_OF_MASS_FAILED',\n\n // Compound operation errors\n COMPOUND_NO_FACES: 'COMPOUND_NO_FACES',\n COMPOUND_FACE_NOT_FOUND: 'COMPOUND_FACE_NOT_FOUND',\n\n // Query errors\n FINDER_NOT_UNIQUE: 'FINDER_NOT_UNIQUE',\n\n // Hull errors\n HULL_EMPTY_INPUT: 'HULL_EMPTY_INPUT',\n HULL_FAILED: 'HULL_FAILED',\n HULL_DEGENERATE: 'HULL_DEGENERATE',\n HULL_NOT_3D: 'HULL_NOT_3D',\n\n // Minkowski errors\n MINKOWSKI_FAILED: 'MINKOWSKI_FAILED',\n MINKOWSKI_NULL_TOOL: 'MINKOWSKI_NULL_TOOL',\n MINKOWSKI_NOT_3D: 'MINKOWSKI_NOT_3D',\n\n // Polyhedron errors\n POLYHEDRON_INSUFFICIENT_POINTS: 'POLYHEDRON_INSUFFICIENT_POINTS',\n POLYHEDRON_INSUFFICIENT_FACES: 'POLYHEDRON_INSUFFICIENT_FACES',\n POLYHEDRON_INVALID_INDEX: 'POLYHEDRON_INVALID_INDEX',\n POLYHEDRON_FAILED: 'POLYHEDRON_FAILED',\n\n // General validation errors\n VALIDATION_FAILED: 'VALIDATION_FAILED',\n\n // Roof errors\n ROOF_FAILED: 'ROOF_FAILED',\n\n // Multi-section sweep errors\n MULTI_SWEEP_INSUFFICIENT_SECTIONS: 'MULTI_SWEEP_INSUFFICIENT_SECTIONS',\n MULTI_SWEEP_FAILED: 'MULTI_SWEEP_FAILED',\n\n // Guide curve sweep errors\n GUIDED_SWEEP_FAILED: 'GUIDED_SWEEP_FAILED',\n\n // Surface errors\n SURFACE_GRID_TOO_SMALL: 'SURFACE_GRID_TOO_SMALL',\n SURFACE_GRID_JAGGED: 'SURFACE_GRID_JAGGED',\n SURFACE_FAILED: 'SURFACE_FAILED',\n\n // Assembly mate errors\n ASSEMBLY_MATE_INVALID: 'ASSEMBLY_MATE_INVALID',\n ASSEMBLY_SOLVE_FAILED: 'ASSEMBLY_SOLVE_FAILED',\n ASSEMBLY_NOT_CONVERGED: 'ASSEMBLY_NOT_CONVERGED',\n\n // Blueprint / CompoundBlueprint errors\n BLUEPRINT_EMPTY_CURVES: 'BLUEPRINT_EMPTY_CURVES',\n COMPOUND_BLUEPRINT_EMPTY: 'COMPOUND_BLUEPRINT_EMPTY',\n\n // GLB/glTF import errors\n GLB_IMPORT_FAILED: 'GLB_IMPORT_FAILED',\n\n // Font/text errors\n FONT_FETCH_FAILED: 'FONT_FETCH_FAILED',\n FONT_PARSE_FAILED: 'FONT_PARSE_FAILED',\n NO_FONT_LOADED: 'NO_FONT_LOADED',\n\n // 2D curve geometry errors\n CURVE2D_CONSTRUCTION_FAILED: 'CURVE2D_CONSTRUCTION_FAILED',\n CURVE2D_INVALID_RADIUS: 'CURVE2D_INVALID_RADIUS',\n CURVE2D_TRANSFORM_FAILED: 'CURVE2D_TRANSFORM_FAILED',\n CURVE2D_QUERY_FAILED: 'CURVE2D_QUERY_FAILED',\n CURVE2D_INTERSECTION_FAILED: 'CURVE2D_INTERSECTION_FAILED',\n CURVE2D_BRIDGE_FAILED: 'CURVE2D_BRIDGE_FAILED',\n\n // Shape identity errors\n CLONE_FAILED: 'CLONE_FAILED',\n SIMPLIFY_FAILED: 'SIMPLIFY_FAILED',\n TO_BREP_FAILED: 'TO_BREP_FAILED',\n\n // Unsupported capability errors (ADR-0006 Phase 4)\n UNSUPPORTED_CAPABILITY: 'UNSUPPORTED_CAPABILITY',\n} as const;\n\n/** Union of all known error code string literals. */\nexport type BrepErrorCode = (typeof BrepErrorCode)[keyof typeof BrepErrorCode];\n\n// ---------------------------------------------------------------------------\n// Error interface\n// ---------------------------------------------------------------------------\n\n/**\n * Structured error returned inside `Result<T>` on failure.\n *\n * Every error carries a `kind` (category), a machine-readable `code`,\n * and a human-readable `message`. Optional `cause` preserves the\n * original exception, and `metadata` holds extra context.\n *\n * The optional `suggestion` field provides actionable recovery hints.\n */\nexport interface BrepError {\n readonly kind: BrepErrorKind;\n readonly code: string;\n readonly message: string;\n readonly suggestion?: string;\n readonly cause?: unknown;\n readonly metadata?: Readonly<Record<string, unknown>>;\n}\n\n// ---------------------------------------------------------------------------\n// Constructors per kind\n// ---------------------------------------------------------------------------\n\nfunction makeError(\n kind: BrepErrorKind,\n code: string,\n message: string,\n cause?: unknown,\n metadata?: Record<string, unknown>,\n suggestion?: string\n): BrepError {\n const base: BrepError = { kind, code, message, cause };\n if (suggestion) {\n const withSuggestion = { ...base, suggestion };\n if (metadata) return { ...withSuggestion, metadata };\n return withSuggestion;\n }\n if (metadata) return { ...base, metadata };\n return base;\n}\n\n/** Create an error for a failed kernel kernel operation.\n *\n * @param code - Error code identifying the failure.\n * @param message - Human-readable error message.\n * @param cause - Optional underlying cause of the error.\n * @param metadata - Optional structured metadata attached to the error.\n * @param suggestion - Optional actionable suggestion for resolving the error.\n * @returns The constructed {@link BrepError}.\n */\nexport function kernelError(\n code: string,\n message: string,\n cause?: unknown,\n metadata?: Record<string, unknown>,\n suggestion?: string\n): BrepError {\n return makeError('KERNEL_OPERATION', code, message, cause, metadata, suggestion);\n}\n\n/** Create an error for invalid input parameters.\n *\n * @param code - Error code identifying the failure.\n * @param message - Human-readable error message.\n * @param cause - Optional underlying cause of the error.\n * @param metadata - Optional structured metadata attached to the error.\n * @param suggestion - Optional actionable suggestion for resolving the error.\n * @returns The constructed {@link BrepError}.\n */\nexport function validationError(\n code: string,\n message: string,\n cause?: unknown,\n metadata?: Record<string, unknown>,\n suggestion?: string\n): BrepError {\n return makeError('VALIDATION', code, message, cause, metadata, suggestion);\n}\n\n/** Create an error for a failed shape type cast or conversion.\n *\n * @param code - Error code identifying the failure.\n * @param message - Human-readable error message.\n * @param cause - Optional underlying cause of the error.\n * @param metadata - Optional structured metadata attached to the error.\n * @param suggestion - Optional actionable suggestion for resolving the error.\n * @returns The constructed {@link BrepError}.\n */\nexport function typeCastError(\n code: string,\n message: string,\n cause?: unknown,\n metadata?: Record<string, unknown>,\n suggestion?: string\n): BrepError {\n return makeError('TYPE_CAST', code, message, cause, metadata, suggestion);\n}\n\n/** Create an error for an invalid sketcher state transition.\n *\n * @param code - Error code identifying the failure.\n * @param message - Human-readable error message.\n * @param cause - Optional underlying cause of the error.\n * @param metadata - Optional structured metadata attached to the error.\n * @param suggestion - Optional actionable suggestion for resolving the error.\n * @returns The constructed {@link BrepError}.\n */\nexport function sketcherStateError(\n code: string,\n message: string,\n cause?: unknown,\n metadata?: Record<string, unknown>,\n suggestion?: string\n): BrepError {\n return makeError('SKETCHER_STATE', code, message, cause, metadata, suggestion);\n}\n\n/** Create an error for a module initialisation failure.\n *\n * @param code - Error code identifying the failure.\n * @param message - Human-readable error message.\n * @param cause - Optional underlying cause of the error.\n * @param metadata - Optional structured metadata attached to the error.\n * @param suggestion - Optional actionable suggestion for resolving the error.\n * @returns The constructed {@link BrepError}.\n */\nexport function moduleInitError(\n code: string,\n message: string,\n cause?: unknown,\n metadata?: Record<string, unknown>,\n suggestion?: string\n): BrepError {\n return makeError('MODULE_INIT', code, message, cause, metadata, suggestion);\n}\n\n/** Create an error for a failed geometric computation.\n *\n * @param code - Error code identifying the failure.\n * @param message - Human-readable error message.\n * @param cause - Optional underlying cause of the error.\n * @param metadata - Optional structured metadata attached to the error.\n * @param suggestion - Optional actionable suggestion for resolving the error.\n * @returns The constructed {@link BrepError}.\n */\nexport function computationError(\n code: string,\n message: string,\n cause?: unknown,\n metadata?: Record<string, unknown>,\n suggestion?: string\n): BrepError {\n return makeError('COMPUTATION', code, message, cause, metadata, suggestion);\n}\n\n/** Create an error for a file import/export failure.\n *\n * @param code - Error code identifying the failure.\n * @param message - Human-readable error message.\n * @param cause - Optional underlying cause of the error.\n * @param metadata - Optional structured metadata attached to the error.\n * @param suggestion - Optional actionable suggestion for resolving the error.\n * @returns The constructed {@link BrepError}.\n */\nexport function ioError(\n code: string,\n message: string,\n cause?: unknown,\n metadata?: Record<string, unknown>,\n suggestion?: string\n): BrepError {\n return makeError('IO', code, message, cause, metadata, suggestion);\n}\n\n/** Create an error for a shape query failure (e.g. finder not unique).\n *\n * @param code - Error code identifying the failure.\n * @param message - Human-readable error message.\n * @param cause - Optional underlying cause of the error.\n * @param metadata - Optional structured metadata attached to the error.\n * @param suggestion - Optional actionable suggestion for resolving the error.\n * @returns The constructed {@link BrepError}.\n */\nexport function queryError(\n code: string,\n message: string,\n cause?: unknown,\n metadata?: Record<string, unknown>,\n suggestion?: string\n): BrepError {\n return makeError('QUERY', code, message, cause, metadata, suggestion);\n}\n\n/** Create an error for a capability not supported by the current kernel (ADR-0006 Phase 4).\n *\n * @param code - Error code identifying the failure.\n * @param message - Human-readable error message.\n * @param cause - Optional underlying cause of the error.\n * @param metadata - Optional structured metadata attached to the error.\n * @param suggestion - Optional actionable suggestion for resolving the error.\n * @returns The constructed {@link BrepError}.\n */\nexport function unsupportedError(\n code: string,\n message: string,\n cause?: unknown,\n metadata?: Record<string, unknown>,\n suggestion?: string\n): BrepError {\n return makeError('UNSUPPORTED', code, message, cause, metadata, suggestion);\n}\n\n// Re-export from kernelErrorTranslation for backward compatibility\nexport { translateKernelError, getSuggestionForCode } from './kernelErrorTranslation';\n\n// ---------------------------------------------------------------------------\n// Array safety helper\n// ---------------------------------------------------------------------------\n\n/**\n * Safe array index access that throws a descriptive {@link BrepBugError} instead\n * of returning `undefined` when the index is out of bounds.\n *\n * Use in place of `arr[i]!` when the caller can prove the index is valid by\n * construction but TypeScript's `noUncheckedIndexedAccess` still requires a guard.\n *\n * @param arr - The array to index into.\n * @param index - The index to access.\n * @param context - Optional caller context for the error message (e.g. function name).\n * @returns The array element at `index`.\n */\nexport function safeIndex<T>(arr: readonly T[], index: number, context?: string): T {\n if (index < 0 || index >= arr.length) {\n bug(context ?? 'safeIndex', `Index ${index} is out of bounds (array length ${arr.length})`);\n }\n return wasmIndex(arr, index);\n}\n"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kernel error translation — maps cryptic kernel messages to user-friendly explanations.
|
|
3
|
+
*
|
|
4
|
+
* 第一方模块(2026-09-25 core-decouple Phase 1):复制自 brepjs
|
|
5
|
+
* `src/core/kernelErrorTranslation.ts`(同源复制,签名不变)。
|
|
6
|
+
*/
|
|
7
|
+
/** Look up an actionable suggestion for a given error code.
|
|
8
|
+
*
|
|
9
|
+
* @param code - The error code to look up.
|
|
10
|
+
* @returns The suggestion for the code, or undefined if none is registered.
|
|
11
|
+
*/
|
|
12
|
+
export declare function getSuggestionForCode(code: string): string | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* Translate an kernel error message into a user-friendly explanation.
|
|
15
|
+
* If no pattern matches, returns the original message.
|
|
16
|
+
*
|
|
17
|
+
* @param kernelMessage - The raw error message from kernel
|
|
18
|
+
* @returns User-friendly error message with actionable guidance
|
|
19
|
+
*/
|
|
20
|
+
export declare function translateKernelError(kernelMessage: string): string;
|
|
21
|
+
//# sourceMappingURL=kernelErrorTranslation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kernelErrorTranslation.d.ts","sourceRoot":"","sources":["../../src/result/kernelErrorTranslation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoGH;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAErE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAQlE"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kernel error translation — maps cryptic kernel messages to user-friendly explanations.
|
|
3
|
+
*
|
|
4
|
+
* 第一方模块(2026-09-25 core-decouple Phase 1):复制自 brepjs
|
|
5
|
+
* `src/core/kernelErrorTranslation.ts`(同源复制,签名不变)。
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Common kernel error patterns and their user-friendly translations.
|
|
9
|
+
* Used by kernelCall to provide actionable error messages.
|
|
10
|
+
*/
|
|
11
|
+
const kernel_ERROR_PATTERNS = [
|
|
12
|
+
{
|
|
13
|
+
pattern: /invalid edge configuration|edges?.*(not|fail|invalid)/i,
|
|
14
|
+
translation: 'The edges may not form a continuous loop. Check that edges connect end-to-end without gaps.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
pattern: /BRepAlgoAPI.*failed|boolean.*operation.*failed/i,
|
|
18
|
+
translation: 'Boolean operation failed. Common causes: overlapping faces, zero-thickness geometry, or degenerate shapes. Try healing input shapes first.',
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
pattern: /fillet.*radius.*too.*large|fillet.*failed/i,
|
|
22
|
+
translation: 'Fillet operation failed. The radius may be too large for the selected edges. Try reducing the radius or check that edges have enough room.',
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
pattern: /chamfer.*failed|chamfer.*distance.*too.*large/i,
|
|
26
|
+
translation: 'Chamfer operation failed. The distance may be too large for the selected edges. Try reducing the distance or check edge geometry.',
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
pattern: /shell.*failed|offset.*failed/i,
|
|
30
|
+
translation: 'Shell/offset operation failed. The thickness may be too large, or the shape may have complex geometry. Try reducing thickness.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
pattern: /sweep.*failed|pipe.*failed/i,
|
|
34
|
+
translation: 'Sweep operation failed. Check that the profile and spine are compatible, and that the spine has no sharp twists or self-intersections.',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
pattern: /loft.*failed/i,
|
|
38
|
+
translation: 'Loft operation failed. Profiles may be incompatible or have different orientations. Ensure profiles are ordered consistently.',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
pattern: /extrude.*failed|prism.*failed/i,
|
|
42
|
+
translation: 'Extrusion failed. The profile may be invalid or self-intersecting. Check that the profile forms a valid closed wire.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
pattern: /revolve.*failed|revolution.*failed/i,
|
|
46
|
+
translation: 'Revolution operation failed. The profile may intersect the axis of revolution, or the angle may be invalid.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
pattern: /self.*intersect|self-intersect/i,
|
|
50
|
+
translation: 'Shape has self-intersections. The operation resulted in overlapping geometry. Simplify the input or adjust parameters.',
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
pattern: /degener|degenerat/i,
|
|
54
|
+
translation: 'Degenerate geometry detected. The shape has edges or faces with zero length/area. Check input geometry for collapsed elements.',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
pattern: /BRepCheck.*fail|shape.*invalid|shape.*not.*valid/i,
|
|
58
|
+
translation: 'Shape validation failed. The resulting shape has invalid topology. Try healing the shape or checking input geometry.',
|
|
59
|
+
},
|
|
60
|
+
];
|
|
61
|
+
// ---------------------------------------------------------------------------
|
|
62
|
+
// Per-error-code suggestions — actionable hints for the `suggestion` field
|
|
63
|
+
// ---------------------------------------------------------------------------
|
|
64
|
+
const ERROR_CODE_SUGGESTIONS = {
|
|
65
|
+
FUSE_FAILED: 'Try autoHeal() on both operands before the boolean operation. Check for overlapping faces or zero-thickness geometry.',
|
|
66
|
+
CUT_FAILED: 'Try autoHeal() on both operands before the boolean operation. Check for overlapping faces or zero-thickness geometry.',
|
|
67
|
+
FUSE_NOT_3D: 'The boolean result was not a 3D solid. Ensure both input shapes are valid 3D solids, not shells or open surfaces.',
|
|
68
|
+
CUT_NOT_3D: 'The boolean result was not a 3D solid. Ensure both input shapes are valid 3D solids, not shells or open surfaces.',
|
|
69
|
+
INTERSECT_NOT_3D: 'The boolean result was not a 3D solid. Ensure both input shapes are valid 3D solids, not shells or open surfaces.',
|
|
70
|
+
SWEEP_FAILED: 'Ensure the spine curve has no sharp corners or self-intersections. Try simplifying the profile or using a smoother path.',
|
|
71
|
+
LOFT_FAILED: 'Check that all profiles have the same number of edges and consistent orientation. Try reordering profiles.',
|
|
72
|
+
FILLET_NOT_3D: 'The fillet radius may be too large for the selected edges. Try a smaller radius or check that adjacent faces have enough room.',
|
|
73
|
+
CHAMFER_NOT_3D: 'The chamfer distance may be too large. Try a smaller distance or check edge geometry.',
|
|
74
|
+
SHELL_NOT_3D: 'The shell thickness may be too large for the shape. Try reducing thickness or removing problematic faces.',
|
|
75
|
+
OFFSET_NOT_3D: 'The offset distance may be too large for the shape geometry. Try a smaller distance.',
|
|
76
|
+
DRAFT_FAILED: 'The draft angle may be too large or the selected faces incompatible. Try a smaller angle or different faces.',
|
|
77
|
+
};
|
|
78
|
+
/** Look up an actionable suggestion for a given error code.
|
|
79
|
+
*
|
|
80
|
+
* @param code - The error code to look up.
|
|
81
|
+
* @returns The suggestion for the code, or undefined if none is registered.
|
|
82
|
+
*/
|
|
83
|
+
export function getSuggestionForCode(code) {
|
|
84
|
+
return ERROR_CODE_SUGGESTIONS[code];
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Translate an kernel error message into a user-friendly explanation.
|
|
88
|
+
* If no pattern matches, returns the original message.
|
|
89
|
+
*
|
|
90
|
+
* @param kernelMessage - The raw error message from kernel
|
|
91
|
+
* @returns User-friendly error message with actionable guidance
|
|
92
|
+
*/
|
|
93
|
+
export function translateKernelError(kernelMessage) {
|
|
94
|
+
for (const { pattern, translation } of kernel_ERROR_PATTERNS) {
|
|
95
|
+
if (pattern.test(kernelMessage)) {
|
|
96
|
+
return `${translation} (kernel: ${kernelMessage})`;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// No pattern matched — return original message
|
|
100
|
+
return kernelMessage;
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=kernelErrorTranslation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kernelErrorTranslation.js","sourceRoot":"","sources":["../../src/result/kernelErrorTranslation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,MAAM,qBAAqB,GAA4D;IACrF;QACE,OAAO,EAAE,wDAAwD;QACjE,WAAW,EACT,6FAA6F;KAChG;IACD;QACE,OAAO,EAAE,iDAAiD;QAC1D,WAAW,EACT,4IAA4I;KAC/I;IACD;QACE,OAAO,EAAE,4CAA4C;QACrD,WAAW,EACT,4IAA4I;KAC/I;IACD;QACE,OAAO,EAAE,gDAAgD;QACzD,WAAW,EACT,mIAAmI;KACtI;IACD;QACE,OAAO,EAAE,+BAA+B;QACxC,WAAW,EACT,gIAAgI;KACnI;IACD;QACE,OAAO,EAAE,6BAA6B;QACtC,WAAW,EACT,wIAAwI;KAC3I;IACD;QACE,OAAO,EAAE,eAAe;QACxB,WAAW,EACT,+HAA+H;KAClI;IACD;QACE,OAAO,EAAE,gCAAgC;QACzC,WAAW,EACT,sHAAsH;KACzH;IACD;QACE,OAAO,EAAE,qCAAqC;QAC9C,WAAW,EACT,6GAA6G;KAChH;IACD;QACE,OAAO,EAAE,iCAAiC;QAC1C,WAAW,EACT,wHAAwH;KAC3H;IACD;QACE,OAAO,EAAE,oBAAoB;QAC7B,WAAW,EACT,gIAAgI;KACnI;IACD;QACE,OAAO,EAAE,mDAAmD;QAC5D,WAAW,EACT,sHAAsH;KACzH;CACF,CAAC;AAEF,8EAA8E;AAC9E,2EAA2E;AAC3E,8EAA8E;AAE9E,MAAM,sBAAsB,GAAqC;IAC/D,WAAW,EACT,uHAAuH;IACzH,UAAU,EACR,uHAAuH;IACzH,WAAW,EACT,mHAAmH;IACrH,UAAU,EACR,mHAAmH;IACrH,gBAAgB,EACd,mHAAmH;IACrH,YAAY,EACV,0HAA0H;IAC5H,WAAW,EACT,4GAA4G;IAC9G,aAAa,EACX,gIAAgI;IAClI,cAAc,EACZ,uFAAuF;IACzF,YAAY,EACV,2GAA2G;IAC7G,aAAa,EACX,sFAAsF;IACxF,YAAY,EACV,8GAA8G;CACjH,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,aAAqB;IACxD,KAAK,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,qBAAqB,EAAE,CAAC;QAC7D,IAAI,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YAChC,OAAO,GAAG,WAAW,aAAa,aAAa,GAAG,CAAC;QACrD,CAAC;IACH,CAAC;IACD,+CAA+C;IAC/C,OAAO,aAAa,CAAC;AACvB,CAAC","sourcesContent":["/**\n * Kernel error translation — maps cryptic kernel messages to user-friendly explanations.\n *\n * 第一方模块(2026-09-25 core-decouple Phase 1):复制自 brepjs\n * `src/core/kernelErrorTranslation.ts`(同源复制,签名不变)。\n */\n\n/**\n * Common kernel error patterns and their user-friendly translations.\n * Used by kernelCall to provide actionable error messages.\n */\nconst kernel_ERROR_PATTERNS: ReadonlyArray<{ pattern: RegExp; translation: string }> = [\n {\n pattern: /invalid edge configuration|edges?.*(not|fail|invalid)/i,\n translation:\n 'The edges may not form a continuous loop. Check that edges connect end-to-end without gaps.',\n },\n {\n pattern: /BRepAlgoAPI.*failed|boolean.*operation.*failed/i,\n translation:\n 'Boolean operation failed. Common causes: overlapping faces, zero-thickness geometry, or degenerate shapes. Try healing input shapes first.',\n },\n {\n pattern: /fillet.*radius.*too.*large|fillet.*failed/i,\n translation:\n 'Fillet operation failed. The radius may be too large for the selected edges. Try reducing the radius or check that edges have enough room.',\n },\n {\n pattern: /chamfer.*failed|chamfer.*distance.*too.*large/i,\n translation:\n 'Chamfer operation failed. The distance may be too large for the selected edges. Try reducing the distance or check edge geometry.',\n },\n {\n pattern: /shell.*failed|offset.*failed/i,\n translation:\n 'Shell/offset operation failed. The thickness may be too large, or the shape may have complex geometry. Try reducing thickness.',\n },\n {\n pattern: /sweep.*failed|pipe.*failed/i,\n translation:\n 'Sweep operation failed. Check that the profile and spine are compatible, and that the spine has no sharp twists or self-intersections.',\n },\n {\n pattern: /loft.*failed/i,\n translation:\n 'Loft operation failed. Profiles may be incompatible or have different orientations. Ensure profiles are ordered consistently.',\n },\n {\n pattern: /extrude.*failed|prism.*failed/i,\n translation:\n 'Extrusion failed. The profile may be invalid or self-intersecting. Check that the profile forms a valid closed wire.',\n },\n {\n pattern: /revolve.*failed|revolution.*failed/i,\n translation:\n 'Revolution operation failed. The profile may intersect the axis of revolution, or the angle may be invalid.',\n },\n {\n pattern: /self.*intersect|self-intersect/i,\n translation:\n 'Shape has self-intersections. The operation resulted in overlapping geometry. Simplify the input or adjust parameters.',\n },\n {\n pattern: /degener|degenerat/i,\n translation:\n 'Degenerate geometry detected. The shape has edges or faces with zero length/area. Check input geometry for collapsed elements.',\n },\n {\n pattern: /BRepCheck.*fail|shape.*invalid|shape.*not.*valid/i,\n translation:\n 'Shape validation failed. The resulting shape has invalid topology. Try healing the shape or checking input geometry.',\n },\n];\n\n// ---------------------------------------------------------------------------\n// Per-error-code suggestions — actionable hints for the `suggestion` field\n// ---------------------------------------------------------------------------\n\nconst ERROR_CODE_SUGGESTIONS: Readonly<Record<string, string>> = {\n FUSE_FAILED:\n 'Try autoHeal() on both operands before the boolean operation. Check for overlapping faces or zero-thickness geometry.',\n CUT_FAILED:\n 'Try autoHeal() on both operands before the boolean operation. Check for overlapping faces or zero-thickness geometry.',\n FUSE_NOT_3D:\n 'The boolean result was not a 3D solid. Ensure both input shapes are valid 3D solids, not shells or open surfaces.',\n CUT_NOT_3D:\n 'The boolean result was not a 3D solid. Ensure both input shapes are valid 3D solids, not shells or open surfaces.',\n INTERSECT_NOT_3D:\n 'The boolean result was not a 3D solid. Ensure both input shapes are valid 3D solids, not shells or open surfaces.',\n SWEEP_FAILED:\n 'Ensure the spine curve has no sharp corners or self-intersections. Try simplifying the profile or using a smoother path.',\n LOFT_FAILED:\n 'Check that all profiles have the same number of edges and consistent orientation. Try reordering profiles.',\n FILLET_NOT_3D:\n 'The fillet radius may be too large for the selected edges. Try a smaller radius or check that adjacent faces have enough room.',\n CHAMFER_NOT_3D:\n 'The chamfer distance may be too large. Try a smaller distance or check edge geometry.',\n SHELL_NOT_3D:\n 'The shell thickness may be too large for the shape. Try reducing thickness or removing problematic faces.',\n OFFSET_NOT_3D:\n 'The offset distance may be too large for the shape geometry. Try a smaller distance.',\n DRAFT_FAILED:\n 'The draft angle may be too large or the selected faces incompatible. Try a smaller angle or different faces.',\n};\n\n/** Look up an actionable suggestion for a given error code.\n *\n * @param code - The error code to look up.\n * @returns The suggestion for the code, or undefined if none is registered.\n */\nexport function getSuggestionForCode(code: string): string | undefined {\n return ERROR_CODE_SUGGESTIONS[code];\n}\n\n/**\n * Translate an kernel error message into a user-friendly explanation.\n * If no pattern matches, returns the original message.\n *\n * @param kernelMessage - The raw error message from kernel\n * @returns User-friendly error message with actionable guidance\n */\nexport function translateKernelError(kernelMessage: string): string {\n for (const { pattern, translation } of kernel_ERROR_PATTERNS) {\n if (pattern.test(kernelMessage)) {\n return `${translation} (kernel: ${kernelMessage})`;\n }\n }\n // No pattern matched — return original message\n return kernelMessage;\n}\n"]}
|