brepjs 16.0.0 → 18.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/README.md +16 -15
  2. package/dist/2d.cjs +5 -5
  3. package/dist/2d.js +5 -5
  4. package/dist/{blueprint-DvED9rwq.js → blueprint-BWbHrFLP.js} +5 -5
  5. package/dist/{blueprint-D3OHmUKq.cjs → blueprint-DXpRzOQ6.cjs} +5 -5
  6. package/dist/{blueprintFns-Cp93uqxQ.js → blueprintFns-CVxNqXuv.js} +2 -2
  7. package/dist/{blueprintFns-Qok7Q3Hl.cjs → blueprintFns-CqsQQUDE.cjs} +2 -2
  8. package/dist/{boolean2D-CSQDbVdw.cjs → boolean2D-CJp5CiHx.cjs} +7 -7
  9. package/dist/{boolean2D-Bzt9_N65.js → boolean2D-DrRvvcjC.js} +7 -7
  10. package/dist/{booleanFns-CHs5pfa5.js → booleanFns-BWqIlVaW.js} +4 -4
  11. package/dist/{booleanFns-BYPZ71HI.cjs → booleanFns-BnJS6p4-.cjs} +4 -4
  12. package/dist/brepjs.cjs +20 -20
  13. package/dist/brepjs.js +20 -20
  14. package/dist/core.cjs +1 -1
  15. package/dist/core.js +1 -1
  16. package/dist/{cornerFinder-CXX9eFJP.cjs → cornerFinder-BC40RqL3.cjs} +1 -1
  17. package/dist/{cornerFinder-Xipmh8GJ.js → cornerFinder-YP_n3Hug.js} +1 -1
  18. package/dist/{curveFns-CYcOtGk1.cjs → curveFns-u8y-X8mn.cjs} +1 -1
  19. package/dist/{curveFns-DdYnAYRc.js → curveFns-yRtG4rxm.js} +1 -1
  20. package/dist/{drawFns-VUd3vlN8.cjs → drawFns-BbmFEhqG.cjs} +10 -10
  21. package/dist/{drawFns-C57u25JA.js → drawFns-VDGFSOfM.js} +10 -10
  22. package/dist/{extrudeFns-CyJdzOh9.js → extrudeFns-1sJctKf2.js} +1 -1
  23. package/dist/{extrudeFns-B-My0FG_.cjs → extrudeFns-Cf6iW-08.cjs} +1 -1
  24. package/dist/{faceFns-DUb1drNo.cjs → faceFns-DJWeK4dL.cjs} +1 -1
  25. package/dist/{faceFns-Bd_Rxi0i.js → faceFns-dW7m231K.js} +1 -1
  26. package/dist/{helpers-BFceSqJT.cjs → helpers-D6dq9RD2.cjs} +5 -5
  27. package/dist/{helpers-BjAezes0.js → helpers-Dy7SXAos.js} +5 -5
  28. package/dist/{historyFns-DlA4hmXQ.cjs → historyFns-B0xWUs3O.cjs} +4 -4
  29. package/dist/{historyFns-DUoAao5A.js → historyFns-BTnA8L5V.js} +4 -4
  30. package/dist/{importFns-CB87pmgW.js → importFns-DJNwFh8h.js} +2 -2
  31. package/dist/{importFns-BFeTG4CK.cjs → importFns-DguTNJ_N.cjs} +2 -2
  32. package/dist/io.cjs +2 -2
  33. package/dist/io.js +2 -2
  34. package/dist/kernel/occtWasm/occtWasmAdapter.cjs +1 -1
  35. package/dist/kernel/occtWasm/occtWasmAdapter.d.ts +3 -3
  36. package/dist/kernel/occtWasm/occtWasmAdapter.d.ts.map +1 -1
  37. package/dist/kernel/occtWasm/occtWasmAdapter.js +1 -1
  38. package/dist/kernel/occtWasm/occtWasmTypes.d.ts +7 -7
  39. package/dist/kernel/occtWasm/occtWasmTypes.d.ts.map +1 -1
  40. package/dist/{measureFns-BFFXNFGZ.cjs → measureFns-CI9eY2cN.cjs} +2 -2
  41. package/dist/{measureFns-zfD4TZCP.js → measureFns-GZgBrqnh.js} +2 -2
  42. package/dist/measurement.cjs +1 -1
  43. package/dist/measurement.js +1 -1
  44. package/dist/{meshFns-DBuDtUPk.js → meshFns-Bh9j6de9.js} +2 -2
  45. package/dist/{meshFns-DFUoQyPn.cjs → meshFns-DTVZCv6W.cjs} +2 -2
  46. package/dist/{occtWasmAdapter-B2iK9ZtR.cjs → occtWasmAdapter-ByVgi_2u.cjs} +11 -11
  47. package/dist/{occtWasmAdapter-skYyvZkQ.js → occtWasmAdapter-D6hR--A4.js} +11 -11
  48. package/dist/operations.cjs +2 -2
  49. package/dist/operations.js +2 -2
  50. package/dist/{primitiveFns-CLGB5eH8.js → primitiveFns-B5pbJQop.js} +5 -5
  51. package/dist/{primitiveFns-CvONcifl.cjs → primitiveFns-KnENm6Lq.cjs} +5 -5
  52. package/dist/query.cjs +2 -2
  53. package/dist/query.js +2 -2
  54. package/dist/{shapeFns-LuFDe1Zt.js → shapeFns-D0P0pr-T.js} +2 -2
  55. package/dist/{shapeFns-_qjTVOOu.cjs → shapeFns-DDT1aaOB.cjs} +2 -2
  56. package/dist/shapeRef.cjs +1 -1
  57. package/dist/shapeRef.js +1 -1
  58. package/dist/{shapeRefFns-Bst2Q7hu.cjs → shapeRefFns-CiIoI-G1.cjs} +3 -3
  59. package/dist/{shapeRefFns-JAl-dXcQ.js → shapeRefFns-uXvRDDMO.js} +3 -3
  60. package/dist/{shapeTypes-BaqgkZCg.js → shapeTypes-CD7UP20p.js} +1 -1
  61. package/dist/{shapeTypes-BCVe-1bC.cjs → shapeTypes-DsXfDJvg.cjs} +1 -1
  62. package/dist/sketching.cjs +2 -2
  63. package/dist/sketching.js +2 -2
  64. package/dist/{solidBuilders-BEQIXFI7.cjs → solidBuilders-B8sQ2dah.cjs} +2 -2
  65. package/dist/{solidBuilders-BkIjYbQk.js → solidBuilders-BEqdy1Xc.js} +2 -2
  66. package/dist/{surfaceBuilders-C5FAaH5y.js → surfaceBuilders-56nzsw47.js} +2 -2
  67. package/dist/{surfaceBuilders-DY4OJ3xC.cjs → surfaceBuilders-DUMjL8xe.cjs} +2 -2
  68. package/dist/topology.cjs +6 -6
  69. package/dist/topology.js +6 -6
  70. package/package.json +11 -3
package/README.md CHANGED
@@ -6,7 +6,7 @@ CAD modeling for JavaScript.
6
6
  [![CI](https://github.com/andymai/brepjs/actions/workflows/ci.yml/badge.svg)](https://github.com/andymai/brepjs/actions/workflows/ci.yml)
7
7
  [![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](./LICENSE)
8
8
 
9
- **[Getting Started](./docs/getting-started.md)** · **[Cheat Sheet](./docs/cheat-sheet.md)** · **[Docs](https://andymai.github.io/brepjs/)**
9
+ **[Getting Started](./docs/getting-started.md)** · **[Cheat Sheet](./docs/cheat-sheet.md)** · **[Docs](https://docs.brepjs.dev/)**
10
10
 
11
11
  Shapes are exact mathematical boundaries - not triangle meshes - so booleans are precise, measurements are real, and you can export to STEP. TypeScript types prove the geometry is valid at compile time.
12
12
 
@@ -67,20 +67,21 @@ Imports flow downward only. Boundaries are enforced in CI.
67
67
 
68
68
  ## Documentation
69
69
 
70
- - [Getting Started](./docs/getting-started.md): Install, create shapes, export to STEP
71
- - [B-Rep Concepts](./docs/concepts.md): Vertices, edges, faces, solids - and why they matter
72
- - [Which API?](./docs/which-api.md): Fluent wrapper vs Sketcher vs functional
73
- - [Cheat Sheet](./docs/cheat-sheet.md): Single-page quick reference
74
- - [Cookbook](./docs/cookbook.md): 21 practical recipes for common CAD workflows
75
- - [Three.js Integration](./docs/threejs-integration.md): Render brepjs shapes in the browser
76
- - [Function Lookup](./docs/function-lookup.md): Alphabetical index of every export
77
- - [Error Reference](./docs/errors.md): Error codes and recovery
78
- - [API Reference](https://andymai.github.io/brepjs/): Searchable TypeDoc reference
79
- - [Memory Management](./docs/memory-management.md): WASM resource cleanup patterns
80
- - [Performance](./docs/performance.md): Optimization tips
81
- - [Custom Kernels](./docs/kernel-swap.md): Swap or write your own geometry kernel
82
- - [Architecture](./docs/architecture.md): Layer diagram and module overview
83
- - [Compatibility](./docs/compatibility.md): Tested environments
70
+ The chapter-based guide is the recommended starting point:
71
+
72
+ - **[Why brepjs](https://docs.brepjs.dev/introduction/why-brepjs)** what makes it different, who it's for
73
+ - **[Install & Initialize](https://docs.brepjs.dev/getting-started/install)** three init styles, bundler notes
74
+ - **[Your First Solid](https://docs.brepjs.dev/getting-started/first-solid)** the canonical drill-fillet-export workflow
75
+ - **[Cheat Sheet](https://docs.brepjs.dev/getting-started/cheat-sheet)** single-page reference
76
+ - **[Core Concepts](https://docs.brepjs.dev/concepts/brep-vs-mesh)** B-Rep, topology, types, kernels, tolerance
77
+ - **[Common Tasks](https://docs.brepjs.dev/tasks/booleans)** booleans, fillets, sketching, lofts, sweeps, finders, measurement, IO
78
+ - **[Three.js Integration](https://docs.brepjs.dev/integration/threejs)** meshing and rendering
79
+ - **[Migration](https://docs.brepjs.dev/migration/replicad)** coming from Replicad, OpenSCAD, or Three.js
80
+ - **[Extending brepjs](https://docs.brepjs.dev/extending/architecture)** custom kernels, custom operations, architecture
81
+ - **[Reference](https://docs.brepjs.dev/reference/glossary)** glossary, function lookup, error codes, ADRs
82
+ - **[API Reference (TypeDoc)](https://andymai.github.io/brepjs/)** searchable type-level reference
83
+
84
+ Legacy single-page docs in [./docs/](./docs/) remain available; the chapter site is the canonical location going forward.
84
85
 
85
86
  ## Projects Using brepjs
86
87
 
package/dist/2d.cjs CHANGED
@@ -1,10 +1,10 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_shapeTypes = require("./shapeTypes-BCVe-1bC.cjs");
2
+ const require_shapeTypes = require("./shapeTypes-DsXfDJvg.cjs");
3
3
  const require_errors = require("./errors-CXRNVCec.cjs");
4
- const require_faceFns = require("./faceFns-DUb1drNo.cjs");
5
- const require_boolean2D = require("./boolean2D-CSQDbVdw.cjs");
6
- const require_blueprint = require("./blueprint-D3OHmUKq.cjs");
7
- const require_blueprintFns = require("./blueprintFns-Qok7Q3Hl.cjs");
4
+ const require_faceFns = require("./faceFns-DJWeK4dL.cjs");
5
+ const require_boolean2D = require("./boolean2D-CJp5CiHx.cjs");
6
+ const require_blueprint = require("./blueprint-DXpRzOQ6.cjs");
7
+ const require_blueprintFns = require("./blueprintFns-CqsQQUDE.cjs");
8
8
  //#region src/core/curve2dHandle.ts
9
9
  /**
10
10
  * Wrap a raw kernel 2D curve handle with brand + disposal tracking.
package/dist/2d.js CHANGED
@@ -1,9 +1,9 @@
1
- import { B as createKernelHandle, Z as getKernel2D, a as createEdge } from "./shapeTypes-BaqgkZCg.js";
1
+ import { B as createKernelHandle, Z as getKernel2D, a as createEdge } from "./shapeTypes-CD7UP20p.js";
2
2
  import { A as ok, b as err, d as validationError, t as BrepErrorCode } from "./errors-DboJwVCf.js";
3
- import { z as kernelCallRaw } from "./faceFns-Bd_Rxi0i.js";
4
- import { _ as Blueprints, a as fuseBlueprints, c as roundedRectangleBlueprint, g as CompoundBlueprint, h as organiseBlueprints, i as cutBlueprints, n as fuse2D, o as intersectBlueprints, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-Bzt9_N65.js";
5
- import { _ as Curve2D, t as Blueprint, y as BoundingBox2d } from "./blueprint-DvED9rwq.js";
6
- import { S as reverseCurve, _ as curve2dIsOnCurve, a as isInside2D, b as curve2dSplitAt, c as scale2D, d as stretch2D, f as toSVGPathD, g as curve2dFirstPoint, h as curve2dDistanceFrom, i as getOrientation2D, l as sketchOnFace2D, m as curve2dBoundingBox, o as mirror2D, p as translate2D, r as getBounds2D, s as rotate2D, t as createBlueprint, u as sketchOnPlane2D, v as curve2dLastPoint, x as curve2dTangentAt, y as curve2dParameter } from "./blueprintFns-Cp93uqxQ.js";
3
+ import { z as kernelCallRaw } from "./faceFns-dW7m231K.js";
4
+ import { _ as Blueprints, a as fuseBlueprints, c as roundedRectangleBlueprint, g as CompoundBlueprint, h as organiseBlueprints, i as cutBlueprints, n as fuse2D, o as intersectBlueprints, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-DrRvvcjC.js";
5
+ import { _ as Curve2D, t as Blueprint, y as BoundingBox2d } from "./blueprint-BWbHrFLP.js";
6
+ import { S as reverseCurve, _ as curve2dIsOnCurve, a as isInside2D, b as curve2dSplitAt, c as scale2D, d as stretch2D, f as toSVGPathD, g as curve2dFirstPoint, h as curve2dDistanceFrom, i as getOrientation2D, l as sketchOnFace2D, m as curve2dBoundingBox, o as mirror2D, p as translate2D, r as getBounds2D, s as rotate2D, t as createBlueprint, u as sketchOnPlane2D, v as curve2dLastPoint, x as curve2dTangentAt, y as curve2dParameter } from "./blueprintFns-CVxNqXuv.js";
7
7
  //#region src/core/curve2dHandle.ts
8
8
  /**
9
9
  * Wrap a raw kernel 2D curve handle with brand + disposal tracking.
@@ -1,13 +1,13 @@
1
- import { G as unregisterFromCleanup, U as registerForCleanup, X as getKernel, Z as getKernel2D, a as createEdge, u as createWire } from "./shapeTypes-BaqgkZCg.js";
1
+ import { G as unregisterFromCleanup, U as registerForCleanup, X as getKernel, Z as getKernel2D, a as createEdge, u as createWire } from "./shapeTypes-CD7UP20p.js";
2
2
  import { A as ok, R as unwrap, b as err, d as validationError, h as bug, n as computationError } from "./errors-DboJwVCf.js";
3
- import { M as cast, m as uvCoordinates, n as faceCenter, p as uvBounds, r as faceGeomType } from "./faceFns-Bd_Rxi0i.js";
3
+ import { M as cast, m as uvCoordinates, n as faceCenter, p as uvBounds, r as faceGeomType } from "./faceFns-dW7m231K.js";
4
4
  import { r as RAD2DEG, t as DEG2RAD } from "./constants-csSEYddm.js";
5
5
  import { r as toVec3 } from "./types--GD-LVc6.js";
6
6
  import { r as makePlane } from "./planeOps-sTrM3dcQ.js";
7
- import { f as getOrientation } from "./curveFns-DdYnAYRc.js";
7
+ import { f as getOrientation } from "./curveFns-yRtG4rxm.js";
8
8
  import { n as getAtOrThrow, r as lastOrThrow, t as firstOrThrow } from "./arrayAccess-tCIbjLs5.js";
9
- import { r as makeFace } from "./surfaceBuilders-C5FAaH5y.js";
10
- import { _ as samePoint, b as subtract2d, l as add2d, o as normalize2d, p as distance2d, t as getSingleFace, v as scalarMultiply2d } from "./helpers-BjAezes0.js";
9
+ import { r as makeFace } from "./surfaceBuilders-56nzsw47.js";
10
+ import { _ as samePoint, b as subtract2d, l as add2d, o as normalize2d, p as distance2d, t as getSingleFace, v as scalarMultiply2d } from "./helpers-Dy7SXAos.js";
11
11
  //#region src/2d/lib/definitions.ts
12
12
  /** Type guard that checks whether a value is a `Point2D`. */
13
13
  function isPoint2D(point) {
@@ -1,13 +1,13 @@
1
- const require_shapeTypes = require("./shapeTypes-BCVe-1bC.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-DsXfDJvg.cjs");
2
2
  const require_errors = require("./errors-CXRNVCec.cjs");
3
- const require_faceFns = require("./faceFns-DUb1drNo.cjs");
3
+ const require_faceFns = require("./faceFns-DJWeK4dL.cjs");
4
4
  const require_constants = require("./constants-BNP_xnBN.cjs");
5
5
  const require_types = require("./types-gLi9wL0N.cjs");
6
6
  const require_planeOps = require("./planeOps-BJOIbn4K.cjs");
7
- const require_curveFns = require("./curveFns-CYcOtGk1.cjs");
7
+ const require_curveFns = require("./curveFns-u8y-X8mn.cjs");
8
8
  const require_arrayAccess = require("./arrayAccess-DsnQpdSD.cjs");
9
- const require_surfaceBuilders = require("./surfaceBuilders-DY4OJ3xC.cjs");
10
- const require_helpers = require("./helpers-BFceSqJT.cjs");
9
+ const require_surfaceBuilders = require("./surfaceBuilders-DUMjL8xe.cjs");
10
+ const require_helpers = require("./helpers-D6dq9RD2.cjs");
11
11
  //#region src/2d/lib/definitions.ts
12
12
  /** Type guard that checks whether a value is a `Point2D`. */
13
13
  function isPoint2D(point) {
@@ -1,6 +1,6 @@
1
1
  import { A as ok, b as err, d as validationError, t as BrepErrorCode } from "./errors-DboJwVCf.js";
2
- import { g as CompoundBlueprint } from "./boolean2D-Bzt9_N65.js";
3
- import { t as Blueprint } from "./blueprint-DvED9rwq.js";
2
+ import { g as CompoundBlueprint } from "./boolean2D-DrRvvcjC.js";
3
+ import { t as Blueprint } from "./blueprint-BWbHrFLP.js";
4
4
  //#region src/2d/lib/curve2dFns.ts
5
5
  /**
6
6
  * Return a reversed copy of the curve (non-mutating).
@@ -1,6 +1,6 @@
1
1
  const require_errors = require("./errors-CXRNVCec.cjs");
2
- const require_boolean2D = require("./boolean2D-CSQDbVdw.cjs");
3
- const require_blueprint = require("./blueprint-D3OHmUKq.cjs");
2
+ const require_boolean2D = require("./boolean2D-CJp5CiHx.cjs");
3
+ const require_blueprint = require("./blueprint-DXpRzOQ6.cjs");
4
4
  //#region src/2d/lib/curve2dFns.ts
5
5
  /**
6
6
  * Return a reversed copy of the curve (non-mutating).
@@ -1,16 +1,16 @@
1
- const require_shapeTypes = require("./shapeTypes-BCVe-1bC.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-DsXfDJvg.cjs");
2
2
  const require_errors = require("./errors-CXRNVCec.cjs");
3
- const require_faceFns = require("./faceFns-DUb1drNo.cjs");
3
+ const require_faceFns = require("./faceFns-DJWeK4dL.cjs");
4
4
  const require_constants = require("./constants-BNP_xnBN.cjs");
5
5
  const require_types = require("./types-gLi9wL0N.cjs");
6
6
  const require_vecOps = require("./vecOps-CODplJp3.cjs");
7
7
  const require_planeOps = require("./planeOps-BJOIbn4K.cjs");
8
- const require_curveFns = require("./curveFns-CYcOtGk1.cjs");
8
+ const require_curveFns = require("./curveFns-u8y-X8mn.cjs");
9
9
  const require_arrayAccess = require("./arrayAccess-DsnQpdSD.cjs");
10
- const require_surfaceBuilders = require("./surfaceBuilders-DY4OJ3xC.cjs");
11
- const require_helpers = require("./helpers-BFceSqJT.cjs");
12
- const require_blueprint = require("./blueprint-D3OHmUKq.cjs");
13
- const require_extrudeFns = require("./extrudeFns-B-My0FG_.cjs");
10
+ const require_surfaceBuilders = require("./surfaceBuilders-DUMjL8xe.cjs");
11
+ const require_helpers = require("./helpers-D6dq9RD2.cjs");
12
+ const require_blueprint = require("./blueprint-DXpRzOQ6.cjs");
13
+ const require_extrudeFns = require("./extrudeFns-Cf6iW-08.cjs");
14
14
  //#region node_modules/flatqueue/index.js
15
15
  /** @template T */
16
16
  var FlatQueue = class {
@@ -1,16 +1,16 @@
1
- import { R as DisposalScope, X as getKernel, Y as _usingCtx, Z as getKernel2D, a as createEdge, h as isShape3D, o as createFace, t as castShape, u as createWire } from "./shapeTypes-BaqgkZCg.js";
1
+ import { R as DisposalScope, X as getKernel, Y as _usingCtx, Z as getKernel2D, a as createEdge, h as isShape3D, o as createFace, t as castShape, u as createWire } from "./shapeTypes-CD7UP20p.js";
2
2
  import { A as ok, R as unwrap, T as isOk, b as err, d as validationError, h as bug, i as kernelError, l as typeCastError, n as computationError, s as safeIndex } from "./errors-DboJwVCf.js";
3
- import { N as downcast, c as normalAt, p as uvBounds, u as pointOnSurface } from "./faceFns-Bd_Rxi0i.js";
3
+ import { N as downcast, c as normalAt, p as uvBounds, u as pointOnSurface } from "./faceFns-dW7m231K.js";
4
4
  import { r as RAD2DEG, t as DEG2RAD } from "./constants-csSEYddm.js";
5
5
  import { r as toVec3 } from "./types--GD-LVc6.js";
6
6
  import { d as vecNormalize, h as vecScale, r as vecCross } from "./vecOps-B-PCHgyB.js";
7
7
  import { n as createPlane } from "./planeOps-sTrM3dcQ.js";
8
- import { c as curveStartPoint, l as curveTangentAt, r as curveIsClosed } from "./curveFns-DdYnAYRc.js";
8
+ import { c as curveStartPoint, l as curveTangentAt, r as curveIsClosed } from "./curveFns-yRtG4rxm.js";
9
9
  import { r as lastOrThrow, t as firstOrThrow } from "./arrayAccess-tCIbjLs5.js";
10
- import { _ as zip, i as makeNewFaceWithinFace, r as makeFace, s as assembleWire } from "./surfaceBuilders-C5FAaH5y.js";
11
- import { _ as samePoint$1, b as subtract2d, d as cartesianToPolar, f as crossProduct2d, g as rotate2d, h as polarToCartesian, l as add2d, m as polarAngle2d, o as normalize2d, p as distance2d, s as PRECISION_INTERSECTION, v as scalarMultiply2d } from "./helpers-BjAezes0.js";
12
- import { _ as Curve2D, b as removeDuplicatePoints, c as make2dCircle, f as make2dSegmentCurve, h as approximateAsBSpline, m as make2dThreePointArc, n as asSVG, o as make2dArcFromCenter, p as make2dTangentArc, r as viewbox, s as make2dBezierCurve, t as Blueprint, u as make2dEllipseArc, x as isPoint2D, y as BoundingBox2d } from "./blueprint-DvED9rwq.js";
13
- import { c as sweep, i as complexExtrude, l as twistExtrude, r as revolve, t as extrude } from "./extrudeFns-CyJdzOh9.js";
10
+ import { _ as zip, i as makeNewFaceWithinFace, r as makeFace, s as assembleWire } from "./surfaceBuilders-56nzsw47.js";
11
+ import { _ as samePoint$1, b as subtract2d, d as cartesianToPolar, f as crossProduct2d, g as rotate2d, h as polarToCartesian, l as add2d, m as polarAngle2d, o as normalize2d, p as distance2d, s as PRECISION_INTERSECTION, v as scalarMultiply2d } from "./helpers-Dy7SXAos.js";
12
+ import { _ as Curve2D, b as removeDuplicatePoints, c as make2dCircle, f as make2dSegmentCurve, h as approximateAsBSpline, m as make2dThreePointArc, n as asSVG, o as make2dArcFromCenter, p as make2dTangentArc, r as viewbox, s as make2dBezierCurve, t as Blueprint, u as make2dEllipseArc, x as isPoint2D, y as BoundingBox2d } from "./blueprint-BWbHrFLP.js";
13
+ import { c as sweep, i as complexExtrude, l as twistExtrude, r as revolve, t as extrude } from "./extrudeFns-1sJctKf2.js";
14
14
  //#region node_modules/flatqueue/index.js
15
15
  /** @template T */
16
16
  var FlatQueue = class {
@@ -1,12 +1,12 @@
1
- import { X as getKernel, h as isShape3D, t as castShape } from "./shapeTypes-BaqgkZCg.js";
1
+ import { X as getKernel, h as isShape3D, t as castShape } from "./shapeTypes-CD7UP20p.js";
2
2
  import { A as ok, R as unwrap, b as err, d as validationError, i as kernelError, l as typeCastError, t as BrepErrorCode, w as isErr } from "./errors-DboJwVCf.js";
3
- import { C as getVertices, b as getEdges, w as getWires } from "./faceFns-Bd_Rxi0i.js";
3
+ import { C as getVertices, b as getEdges, w as getWires } from "./faceFns-dW7m231K.js";
4
4
  import { n as HASH_CODE_MAX } from "./constants-csSEYddm.js";
5
5
  import { h as vecScale, t as vecAdd } from "./vecOps-B-PCHgyB.js";
6
6
  import { o as resolvePlane } from "./planeOps-sTrM3dcQ.js";
7
- import { _ as propagateAllMetadata, g as collectInputFaceHashes, v as propagateMetadataByHash } from "./shapeFns-LuFDe1Zt.js";
7
+ import { _ as propagateAllMetadata, g as collectInputFaceHashes, v as propagateMetadataByHash } from "./shapeFns-D0P0pr-T.js";
8
8
  import { n as getAtOrThrow, t as firstOrThrow } from "./arrayAccess-tCIbjLs5.js";
9
- import { r as makeFace } from "./surfaceBuilders-C5FAaH5y.js";
9
+ import { r as makeFace } from "./surfaceBuilders-56nzsw47.js";
10
10
  //#region src/topology/booleanFns.ts
11
11
  /**
12
12
  * Boolean and compound operations — functional replacements for _3DShape boolean methods.
@@ -1,12 +1,12 @@
1
- const require_shapeTypes = require("./shapeTypes-BCVe-1bC.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-DsXfDJvg.cjs");
2
2
  const require_errors = require("./errors-CXRNVCec.cjs");
3
- const require_faceFns = require("./faceFns-DUb1drNo.cjs");
3
+ const require_faceFns = require("./faceFns-DJWeK4dL.cjs");
4
4
  const require_constants = require("./constants-BNP_xnBN.cjs");
5
5
  const require_vecOps = require("./vecOps-CODplJp3.cjs");
6
6
  const require_planeOps = require("./planeOps-BJOIbn4K.cjs");
7
- const require_shapeFns = require("./shapeFns-_qjTVOOu.cjs");
7
+ const require_shapeFns = require("./shapeFns-DDT1aaOB.cjs");
8
8
  const require_arrayAccess = require("./arrayAccess-DsnQpdSD.cjs");
9
- const require_surfaceBuilders = require("./surfaceBuilders-DY4OJ3xC.cjs");
9
+ const require_surfaceBuilders = require("./surfaceBuilders-DUMjL8xe.cjs");
10
10
  //#region src/topology/booleanFns.ts
11
11
  /**
12
12
  * Boolean and compound operations — functional replacements for _3DShape boolean methods.
package/dist/brepjs.cjs CHANGED
@@ -1,30 +1,30 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_drawFns = require("./drawFns-VUd3vlN8.cjs");
3
- const require_shapeTypes = require("./shapeTypes-BCVe-1bC.cjs");
4
- const require_occtWasmAdapter = require("./occtWasmAdapter-B2iK9ZtR.cjs");
2
+ const require_drawFns = require("./drawFns-BbmFEhqG.cjs");
3
+ const require_shapeTypes = require("./shapeTypes-DsXfDJvg.cjs");
4
+ const require_occtWasmAdapter = require("./occtWasmAdapter-ByVgi_2u.cjs");
5
5
  const require_errors = require("./errors-CXRNVCec.cjs");
6
- const require_faceFns = require("./faceFns-DUb1drNo.cjs");
6
+ const require_faceFns = require("./faceFns-DJWeK4dL.cjs");
7
7
  const require_constants = require("./constants-BNP_xnBN.cjs");
8
8
  const require_types = require("./types-gLi9wL0N.cjs");
9
9
  const require_vecOps = require("./vecOps-CODplJp3.cjs");
10
10
  const require_planeOps = require("./planeOps-BJOIbn4K.cjs");
11
- const require_shapeFns = require("./shapeFns-_qjTVOOu.cjs");
12
- const require_curveFns = require("./curveFns-CYcOtGk1.cjs");
13
- const require_meshFns = require("./meshFns-DFUoQyPn.cjs");
11
+ const require_shapeFns = require("./shapeFns-DDT1aaOB.cjs");
12
+ const require_curveFns = require("./curveFns-u8y-X8mn.cjs");
13
+ const require_meshFns = require("./meshFns-DTVZCv6W.cjs");
14
14
  const require_arrayAccess = require("./arrayAccess-DsnQpdSD.cjs");
15
- const require_surfaceBuilders = require("./surfaceBuilders-DY4OJ3xC.cjs");
16
- const require_booleanFns = require("./booleanFns-BYPZ71HI.cjs");
17
- const require_primitiveFns = require("./primitiveFns-CvONcifl.cjs");
18
- const require_historyFns = require("./historyFns-DlA4hmXQ.cjs");
19
- const require_boolean2D = require("./boolean2D-CSQDbVdw.cjs");
20
- const require_helpers = require("./helpers-BFceSqJT.cjs");
21
- const require_solidBuilders = require("./solidBuilders-BEQIXFI7.cjs");
22
- const require_measureFns = require("./measureFns-BFFXNFGZ.cjs");
23
- const require_cornerFinder = require("./cornerFinder-CXX9eFJP.cjs");
24
- const require_extrudeFns = require("./extrudeFns-B-My0FG_.cjs");
25
- const require_blueprintFns = require("./blueprintFns-Qok7Q3Hl.cjs");
26
- const require_importFns = require("./importFns-BFeTG4CK.cjs");
27
- const require_shapeRefFns = require("./shapeRefFns-Bst2Q7hu.cjs");
15
+ const require_surfaceBuilders = require("./surfaceBuilders-DUMjL8xe.cjs");
16
+ const require_booleanFns = require("./booleanFns-BnJS6p4-.cjs");
17
+ const require_primitiveFns = require("./primitiveFns-KnENm6Lq.cjs");
18
+ const require_historyFns = require("./historyFns-B0xWUs3O.cjs");
19
+ const require_boolean2D = require("./boolean2D-CJp5CiHx.cjs");
20
+ const require_helpers = require("./helpers-D6dq9RD2.cjs");
21
+ const require_solidBuilders = require("./solidBuilders-B8sQ2dah.cjs");
22
+ const require_measureFns = require("./measureFns-CI9eY2cN.cjs");
23
+ const require_cornerFinder = require("./cornerFinder-BC40RqL3.cjs");
24
+ const require_extrudeFns = require("./extrudeFns-Cf6iW-08.cjs");
25
+ const require_blueprintFns = require("./blueprintFns-CqsQQUDE.cjs");
26
+ const require_importFns = require("./importFns-DguTNJ_N.cjs");
27
+ const require_shapeRefFns = require("./shapeRefFns-CiIoI-G1.cjs");
28
28
  const require_workerHandler = require("./workerHandler-C-3cFcsQ.cjs");
29
29
  //#region src/topology/shapeBooleans.ts
30
30
  var BOPAlgo_GlueShift = 1;
package/dist/brepjs.js CHANGED
@@ -1,29 +1,29 @@
1
- import { $ as initFromOC, A as planarWire, B as createKernelHandle, C as isOrientedFace, D as manifoldShell, E as isValidSolid, F as as3D, H as isLive, I as is2D, J as withScopeResultAsync, K as withScope, L as is3D, M as getShapeKind, O as orientedFace, P as as2D, Q as init, R as DisposalScope, S as isManifoldShell, T as isPlanarWire, V as getDisposalStats, W as resetDisposalStats, X as getKernel, _ as isSolid, a as createEdge, at as BrepkitAdapter, b as closedWire, c as createSolid, d as isCompound, et as prewarm, f as isEdge, g as isShell, h as isShape3D, i as createCompound, it as supportsProjection, j as validSolid, k as planarFace, l as createVertex, m as isShape1D, n as castShape3D, nt as withKernel, o as createFace, ot as getPerformanceStats, p as isFace, q as withScopeResult, rt as supportsConstraintSketch, s as createShell, st as resetPerformanceStats, t as castShape, tt as registerKernel, u as createWire, v as isVertex, w as isPlanarFace, x as isClosedWire, y as isWire, z as createHandle } from "./shapeTypes-BaqgkZCg.js";
2
- import { t as OcctWasmAdapter } from "./occtWasmAdapter-skYyvZkQ.js";
1
+ import { $ as initFromOC, A as planarWire, B as createKernelHandle, C as isOrientedFace, D as manifoldShell, E as isValidSolid, F as as3D, H as isLive, I as is2D, J as withScopeResultAsync, K as withScope, L as is3D, M as getShapeKind, O as orientedFace, P as as2D, Q as init, R as DisposalScope, S as isManifoldShell, T as isPlanarWire, V as getDisposalStats, W as resetDisposalStats, X as getKernel, _ as isSolid, a as createEdge, at as BrepkitAdapter, b as closedWire, c as createSolid, d as isCompound, et as prewarm, f as isEdge, g as isShell, h as isShape3D, i as createCompound, it as supportsProjection, j as validSolid, k as planarFace, l as createVertex, m as isShape1D, n as castShape3D, nt as withKernel, o as createFace, ot as getPerformanceStats, p as isFace, q as withScopeResult, rt as supportsConstraintSketch, s as createShell, st as resetPerformanceStats, t as castShape, tt as registerKernel, u as createWire, v as isVertex, w as isPlanarFace, x as isClosedWire, y as isWire, z as createHandle } from "./shapeTypes-CD7UP20p.js";
2
+ import { t as OcctWasmAdapter } from "./occtWasmAdapter-D6hR--A4.js";
3
3
  import { A as ok, B as unwrapOr, C as fromNullable, D as mapBoth, E as map, F as tapErr, H as zip, I as tryCatch, L as tryCatchAsync, M as orElse, N as pipeline, O as mapErr, P as tap, R as unwrap, S as flatten, T as isOk, V as unwrapOrElse, _ as all, a as moduleInitError, b as err, c as sketcherStateError, d as validationError, g as OK, h as bug, i as kernelError, j as or, k as match, l as typeCastError, m as BrepBugError, n as computationError, o as queryError, r as ioError, t as BrepErrorCode, u as unsupportedError, v as andThen, w as isErr, x as flatMap, y as collect, z as unwrapErr } from "./errors-DboJwVCf.js";
4
- import { A as vertexPosition, B as kernelCallScoped, C as getVertices, D as iterFaces, E as iterEdges, F as isCompSolid, I as iterTopo, L as shapeType, M as cast, N as downcast, O as iterVertices, P as fromBREP, R as kernelCall, T as invalidateShapeCache, a as flipFaceOrientation, b as getEdges, c as normalAt, d as projectPointOnFace, f as removeHolesFromFace, g as getBounds, h as describe$1, i as faceOrientation, j as asTopo, k as iterWires, l as outerWire, m as uvCoordinates, n as faceCenter, o as getSurfaceType, p as uvBounds, r as faceGeomType, s as innerWires, t as classifyPointOnFace, u as pointOnSurface, w as getWires, x as getFaces, y as getCachedSurfaceType, z as kernelCallRaw } from "./faceFns-Bd_Rxi0i.js";
4
+ import { A as vertexPosition, B as kernelCallScoped, C as getVertices, D as iterFaces, E as iterEdges, F as isCompSolid, I as iterTopo, L as shapeType, M as cast, N as downcast, O as iterVertices, P as fromBREP, R as kernelCall, T as invalidateShapeCache, a as flipFaceOrientation, b as getEdges, c as normalAt, d as projectPointOnFace, f as removeHolesFromFace, g as getBounds, h as describe$1, i as faceOrientation, j as asTopo, k as iterWires, l as outerWire, m as uvCoordinates, n as faceCenter, o as getSurfaceType, p as uvBounds, r as faceGeomType, s as innerWires, t as classifyPointOnFace, u as pointOnSurface, w as getWires, x as getFaces, y as getCachedSurfaceType, z as kernelCallRaw } from "./faceFns-dW7m231K.js";
5
5
  import { n as HASH_CODE_MAX, r as RAD2DEG, t as DEG2RAD } from "./constants-csSEYddm.js";
6
6
  import { n as toVec2, r as toVec3, t as resolveDirection } from "./types--GD-LVc6.js";
7
7
  import { a as vecDot, c as vecLength, d as vecNormalize, f as vecProjectToPlane, g as vecSub, h as vecScale, i as vecDistance, l as vecLengthSq, m as vecRotate, n as vecAngle, o as vecEquals, p as vecRepr, r as vecCross, s as vecIsZero, t as vecAdd, u as vecNegate } from "./vecOps-B-PCHgyB.js";
8
8
  import { i as pivotPlane, n as createPlane, o as resolvePlane, r as makePlane, s as translatePlane, t as createNamedPlane } from "./planeOps-sTrM3dcQ.js";
9
- import { C as findFacesByTag, D as tagFaces, E as setTagMetadata, O as getFaceOrigins, S as getShapeColor, T as getTagMetadata, a as isSameShape, b as colorShape, c as applyMatrix$1, d as resize, f as rotate$1, h as translate$1, i as isEqualShape, k as setShapeOrigin, l as composeTransforms, m as transformCopy$1, n as getHashCode, o as simplify$1, p as scale$1, r as isEmpty$2, s as toBREP$1, t as clone$1, u as mirror$1, w as getFaceTags, x as getFaceColor, y as colorFaces } from "./shapeFns-LuFDe1Zt.js";
10
- import { a as curveLength, c as curveStartPoint, d as getCurveType, f as getOrientation, i as curveIsPeriodic, l as curveTangentAt, m as offsetWire2D, n as curveEndPoint, o as curvePeriod, p as interpolateCurve, r as curveIsClosed, s as curvePointAt, t as approximateCurve, u as flipOrientation } from "./curveFns-DdYnAYRc.js";
11
- import { a as meshEdges$1, c as createMeshCache, i as mesh$1, n as exportSTEP, o as meshMultiLOD, r as exportSTL, s as clearMeshCache, t as exportIGES } from "./meshFns-DBuDtUPk.js";
9
+ import { C as findFacesByTag, D as tagFaces, E as setTagMetadata, O as getFaceOrigins, S as getShapeColor, T as getTagMetadata, a as isSameShape, b as colorShape, c as applyMatrix$1, d as resize, f as rotate$1, h as translate$1, i as isEqualShape, k as setShapeOrigin, l as composeTransforms, m as transformCopy$1, n as getHashCode, o as simplify$1, p as scale$1, r as isEmpty$2, s as toBREP$1, t as clone$1, u as mirror$1, w as getFaceTags, x as getFaceColor, y as colorFaces } from "./shapeFns-D0P0pr-T.js";
10
+ import { a as curveLength, c as curveStartPoint, d as getCurveType, f as getOrientation, i as curveIsPeriodic, l as curveTangentAt, m as offsetWire2D, n as curveEndPoint, o as curvePeriod, p as interpolateCurve, r as curveIsClosed, s as curvePointAt, t as approximateCurve, u as flipOrientation } from "./curveFns-yRtG4rxm.js";
11
+ import { a as meshEdges$1, c as createMeshCache, i as mesh$1, n as exportSTEP, o as meshMultiLOD, r as exportSTL, s as clearMeshCache, t as exportIGES } from "./meshFns-Bh9j6de9.js";
12
12
  import { n as getAtOrThrow, t as firstOrThrow } from "./arrayAccess-tCIbjLs5.js";
13
- import { n as fill, r as makeFace } from "./surfaceBuilders-C5FAaH5y.js";
14
- import { a as fuseAll, c as sectionToFace$1, i as fuse$1, l as slice$1, n as cut$1, o as intersect$1, r as cutAll, s as section$1, t as booleanPipeline, u as split$1 } from "./booleanFns-CHs5pfa5.js";
15
- import { $ as getNurbsSurfaceData, A as fixShape, B as offset$1, C as threePointArc, D as wireLoop, E as wire, F as isValid$1, G as chamferWithEvolution, H as thicken$1, I as solidFromShell, J as fuseWithEvolution, K as cutWithEvolution, L as chamfer$1, M as healFace, N as healSolid, O as autoHeal, P as healWire, Q as getNurbsCurveData, R as draft$1, S as tangentArc, T as vertex, U as variableFillet, V as shell$1, W as positionOnCurve, X as shellWithEvolution, Y as intersectWithEvolution, Z as checkBoolean, _ as polygon, a as circle, at as wiresOfFace, b as sphere, c as cylinder, ct as toGroupedBufferGeometryData, d as ellipsoid, et as adjacentFaces, f as face, g as offsetFace, h as line, i as bsplineApprox, it as verticesOfEdge, j as heal$1, k as fixSelfIntersection, l as ellipse, lt as toLODGeometryData, m as helix, n as bezier, nt as facesOfEdge, o as compound, ot as chamferDistAngle, p as filledFace, q as filletWithEvolution, r as box, rt as sharedEdges, s as cone, st as toBufferGeometryData, t as addHoles, tt as edgesOfFace, u as ellipseArc, ut as toLineGeometryData, v as sewShells, w as torus, x as subFace, y as solid, z as fillet$1 } from "./primitiveFns-CLGB5eH8.js";
16
- import { C as walkAssembly, D as exportAssemblySTEP, E as linearPattern, O as createAssembly, S as updateNode, _ as collectShapes, a as findStep, b as findNode, c as registerOperation, d as replayHistory, f as serializeHistory, g as addChild, h as undoLast, i as deserializeHistory, l as registerShape, m as stepsFrom, n as createHistory, o as getShape, p as stepCount, r as createRegistry, s as modifyStep, t as addStep, u as replayFrom, v as countNodes, w as circularPattern, x as removeChild, y as createAssemblyNode } from "./historyFns-DUoAao5A.js";
17
- import { a as fuseBlueprints, c as roundedRectangleBlueprint, f as Sketch, h as organiseBlueprints, i as cutBlueprints, m as loftAll, n as fuse2D, o as intersectBlueprints, p as loft$1, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-Bzt9_N65.js";
18
- import { a as createTypedFinder, i as wireFinder, n as edgeFinder, r as faceFinder, t as getSingleFace } from "./helpers-BjAezes0.js";
19
- import { $ as sketchFaceOffset, B as drawSingleCircle, C as cameraFromPlane, D as makeProjectedEdges, E as projectEdges, F as drawParametricFunction, G as loadFont, H as drawText, I as drawPointsInterpolation, J as textMetrics, K as sketchText, L as drawPolysides, M as draw, N as drawCircle, O as isProjectionPlane, P as drawEllipse, Q as sketchEllipse, R as drawRectangle, S as drawProjection, T as createCamera, U as fontMetrics, V as drawSingleEllipse, W as getFont, X as polysideInnerRadius, Y as makeBaseBox, Z as sketchCircle, _ as sketchLoft, a as drawingIntersect, b as sketchWires, c as rotateDrawing, d as compoundSketchExtrude, et as sketchHelix, f as compoundSketchFace, g as sketchFace, h as sketchExtrude, i as drawingFuse, it as sketchRoundedRectangle, j as deserializeDrawing, l as scaleDrawing, m as compoundSketchRevolve, n as drawingCut, nt as sketchPolysides, o as drawingToSketchOnPlane, ot as Sketches, p as compoundSketchLoft, q as textBlueprints, r as drawingFillet, rt as sketchRectangle, s as mirrorDrawing, st as CompoundSketch, t as drawingChamfer, tt as sketchParametricFunction, u as translateDrawing, v as sketchRevolve, w as cameraLookAt, x as drawFaceOutline, y as sketchSweep, z as drawRoundedRectangle } from "./drawFns-C57u25JA.js";
20
- import { r as makeCylinder } from "./solidBuilders-BkIjYbQk.js";
21
- import { a as measureDistance, c as measureLinearProps, d as measureVolumeProps, i as measureCurvatureAtMid, l as measureSurfaceProps, n as measureArea, o as measureDistanceProps, r as measureCurvatureAt, s as measureLength, t as createDistanceQuery, u as measureVolume } from "./measureFns-zfD4TZCP.js";
22
- import { t as cornerFinder } from "./cornerFinder-Xipmh8GJ.js";
23
- import { a as guidedSweep, c as sweep, i as complexExtrude, l as twistExtrude, n as extrudeAll, o as multiSectionSweep, r as revolve$1, s as supportExtrude, t as extrude$1 } from "./extrudeFns-CyJdzOh9.js";
24
- import { S as reverseCurve, _ as curve2dIsOnCurve, a as isInside2D, b as curve2dSplitAt, c as scale2D, d as stretch2D, f as toSVGPathD, g as curve2dFirstPoint, h as curve2dDistanceFrom, i as getOrientation2D, l as sketchOnFace2D, m as curve2dBoundingBox, n as createCompoundBlueprint, o as mirror2D, p as translate2D, r as getBounds2D, s as rotate2D, t as createBlueprint, u as sketchOnPlane2D, v as curve2dLastPoint, x as curve2dTangentAt, y as curve2dParameter } from "./blueprintFns-Cp93uqxQ.js";
25
- import { a as importSVG, c as blueprintToDXF, d as exportGltf, f as exportOBJ, i as exportSTEPConfigured, l as exportDXF, n as importSTEP, o as importSVGPathD, r as importSTL, s as exportThreeMF, t as importIGES, u as exportGlb } from "./importFns-CB87pmgW.js";
26
- import { a as updateRoles, i as resolveRef, n as captureHint, o as defaultScorer, r as createRef, t as assignRoles } from "./shapeRefFns-JAl-dXcQ.js";
13
+ import { n as fill, r as makeFace } from "./surfaceBuilders-56nzsw47.js";
14
+ import { a as fuseAll, c as sectionToFace$1, i as fuse$1, l as slice$1, n as cut$1, o as intersect$1, r as cutAll, s as section$1, t as booleanPipeline, u as split$1 } from "./booleanFns-BWqIlVaW.js";
15
+ import { $ as getNurbsSurfaceData, A as fixShape, B as offset$1, C as threePointArc, D as wireLoop, E as wire, F as isValid$1, G as chamferWithEvolution, H as thicken$1, I as solidFromShell, J as fuseWithEvolution, K as cutWithEvolution, L as chamfer$1, M as healFace, N as healSolid, O as autoHeal, P as healWire, Q as getNurbsCurveData, R as draft$1, S as tangentArc, T as vertex, U as variableFillet, V as shell$1, W as positionOnCurve, X as shellWithEvolution, Y as intersectWithEvolution, Z as checkBoolean, _ as polygon, a as circle, at as wiresOfFace, b as sphere, c as cylinder, ct as toGroupedBufferGeometryData, d as ellipsoid, et as adjacentFaces, f as face, g as offsetFace, h as line, i as bsplineApprox, it as verticesOfEdge, j as heal$1, k as fixSelfIntersection, l as ellipse, lt as toLODGeometryData, m as helix, n as bezier, nt as facesOfEdge, o as compound, ot as chamferDistAngle, p as filledFace, q as filletWithEvolution, r as box, rt as sharedEdges, s as cone, st as toBufferGeometryData, t as addHoles, tt as edgesOfFace, u as ellipseArc, ut as toLineGeometryData, v as sewShells, w as torus, x as subFace, y as solid, z as fillet$1 } from "./primitiveFns-B5pbJQop.js";
16
+ import { C as walkAssembly, D as exportAssemblySTEP, E as linearPattern, O as createAssembly, S as updateNode, _ as collectShapes, a as findStep, b as findNode, c as registerOperation, d as replayHistory, f as serializeHistory, g as addChild, h as undoLast, i as deserializeHistory, l as registerShape, m as stepsFrom, n as createHistory, o as getShape, p as stepCount, r as createRegistry, s as modifyStep, t as addStep, u as replayFrom, v as countNodes, w as circularPattern, x as removeChild, y as createAssemblyNode } from "./historyFns-BTnA8L5V.js";
17
+ import { a as fuseBlueprints, c as roundedRectangleBlueprint, f as Sketch, h as organiseBlueprints, i as cutBlueprints, m as loftAll, n as fuse2D, o as intersectBlueprints, p as loft$1, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-DrRvvcjC.js";
18
+ import { a as createTypedFinder, i as wireFinder, n as edgeFinder, r as faceFinder, t as getSingleFace } from "./helpers-Dy7SXAos.js";
19
+ import { $ as sketchFaceOffset, B as drawSingleCircle, C as cameraFromPlane, D as makeProjectedEdges, E as projectEdges, F as drawParametricFunction, G as loadFont, H as drawText, I as drawPointsInterpolation, J as textMetrics, K as sketchText, L as drawPolysides, M as draw, N as drawCircle, O as isProjectionPlane, P as drawEllipse, Q as sketchEllipse, R as drawRectangle, S as drawProjection, T as createCamera, U as fontMetrics, V as drawSingleEllipse, W as getFont, X as polysideInnerRadius, Y as makeBaseBox, Z as sketchCircle, _ as sketchLoft, a as drawingIntersect, b as sketchWires, c as rotateDrawing, d as compoundSketchExtrude, et as sketchHelix, f as compoundSketchFace, g as sketchFace, h as sketchExtrude, i as drawingFuse, it as sketchRoundedRectangle, j as deserializeDrawing, l as scaleDrawing, m as compoundSketchRevolve, n as drawingCut, nt as sketchPolysides, o as drawingToSketchOnPlane, ot as Sketches, p as compoundSketchLoft, q as textBlueprints, r as drawingFillet, rt as sketchRectangle, s as mirrorDrawing, st as CompoundSketch, t as drawingChamfer, tt as sketchParametricFunction, u as translateDrawing, v as sketchRevolve, w as cameraLookAt, x as drawFaceOutline, y as sketchSweep, z as drawRoundedRectangle } from "./drawFns-VDGFSOfM.js";
20
+ import { r as makeCylinder } from "./solidBuilders-BEqdy1Xc.js";
21
+ import { a as measureDistance, c as measureLinearProps, d as measureVolumeProps, i as measureCurvatureAtMid, l as measureSurfaceProps, n as measureArea, o as measureDistanceProps, r as measureCurvatureAt, s as measureLength, t as createDistanceQuery, u as measureVolume } from "./measureFns-GZgBrqnh.js";
22
+ import { t as cornerFinder } from "./cornerFinder-YP_n3Hug.js";
23
+ import { a as guidedSweep, c as sweep, i as complexExtrude, l as twistExtrude, n as extrudeAll, o as multiSectionSweep, r as revolve$1, s as supportExtrude, t as extrude$1 } from "./extrudeFns-1sJctKf2.js";
24
+ import { S as reverseCurve, _ as curve2dIsOnCurve, a as isInside2D, b as curve2dSplitAt, c as scale2D, d as stretch2D, f as toSVGPathD, g as curve2dFirstPoint, h as curve2dDistanceFrom, i as getOrientation2D, l as sketchOnFace2D, m as curve2dBoundingBox, n as createCompoundBlueprint, o as mirror2D, p as translate2D, r as getBounds2D, s as rotate2D, t as createBlueprint, u as sketchOnPlane2D, v as curve2dLastPoint, x as curve2dTangentAt, y as curve2dParameter } from "./blueprintFns-CVxNqXuv.js";
25
+ import { a as importSVG, c as blueprintToDXF, d as exportGltf, f as exportOBJ, i as exportSTEPConfigured, l as exportDXF, n as importSTEP, o as importSVGPathD, r as importSTL, s as exportThreeMF, t as importIGES, u as exportGlb } from "./importFns-DJNwFh8h.js";
26
+ import { a as updateRoles, i as resolveRef, n as captureHint, o as defaultScorer, r as createRef, t as assignRoles } from "./shapeRefFns-uXvRDDMO.js";
27
27
  import { a as createTaskQueue, c as isEmpty$1, d as isDisposeRequest, f as isErrorResponse, h as isSuccessResponse, i as createWorkerClient, l as pendingCount, m as isOperationRequest, n as createWorkerHandler, o as dequeueTask, p as isInitRequest, r as registerHandler, s as enqueueTask, t as createOperationRegistry, u as rejectAll } from "./workerHandler-Dm0_0F8Z.js";
28
28
  //#region \0rolldown/runtime.js
29
29
  var __defProp = Object.defineProperty;
package/dist/core.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_shapeTypes = require("./shapeTypes-BCVe-1bC.cjs");
2
+ const require_shapeTypes = require("./shapeTypes-DsXfDJvg.cjs");
3
3
  const require_errors = require("./errors-CXRNVCec.cjs");
4
4
  const require_constants = require("./constants-BNP_xnBN.cjs");
5
5
  const require_types = require("./types-gLi9wL0N.cjs");
package/dist/core.js CHANGED
@@ -1,4 +1,4 @@
1
- import { B as createKernelHandle, C as isOrientedFace, D as manifoldShell, E as isValidSolid, H as isLive, I as is2D, J as withScopeResultAsync, K as withScope, L as is3D, M as getShapeKind, O as orientedFace, R as DisposalScope, S as isManifoldShell, _ as isSolid, b as closedWire, d as isCompound, f as isEdge, g as isShell, h as isShape3D, j as validSolid, m as isShape1D, p as isFace, q as withScopeResult, t as castShape, v as isVertex, x as isClosedWire, y as isWire, z as createHandle } from "./shapeTypes-BaqgkZCg.js";
1
+ import { B as createKernelHandle, C as isOrientedFace, D as manifoldShell, E as isValidSolid, H as isLive, I as is2D, J as withScopeResultAsync, K as withScope, L as is3D, M as getShapeKind, O as orientedFace, R as DisposalScope, S as isManifoldShell, _ as isSolid, b as closedWire, d as isCompound, f as isEdge, g as isShell, h as isShape3D, j as validSolid, m as isShape1D, p as isFace, q as withScopeResult, t as castShape, v as isVertex, x as isClosedWire, y as isWire, z as createHandle } from "./shapeTypes-CD7UP20p.js";
2
2
  import { A as ok, B as unwrapOr, E as map, I as tryCatch, L as tryCatchAsync, O as mapErr, R as unwrap, T as isOk, V as unwrapOrElse, a as moduleInitError, b as err, c as sketcherStateError, d as validationError, g as OK, h as bug, i as kernelError, k as match, l as typeCastError, m as BrepBugError, n as computationError, o as queryError, r as ioError, u as unsupportedError, v as andThen, w as isErr, x as flatMap, y as collect, z as unwrapErr } from "./errors-DboJwVCf.js";
3
3
  import { n as HASH_CODE_MAX, r as RAD2DEG, t as DEG2RAD } from "./constants-csSEYddm.js";
4
4
  import { n as toVec2, r as toVec3, t as resolveDirection } from "./types--GD-LVc6.js";
@@ -1,6 +1,6 @@
1
1
  const require_constants = require("./constants-BNP_xnBN.cjs");
2
2
  const require_arrayAccess = require("./arrayAccess-DsnQpdSD.cjs");
3
- const require_helpers = require("./helpers-BFceSqJT.cjs");
3
+ const require_helpers = require("./helpers-D6dq9RD2.cjs");
4
4
  //#region src/query/cornerFinder.ts
5
5
  var PI_2 = 2 * Math.PI;
6
6
  function positiveHalfAngle(angle) {
@@ -1,6 +1,6 @@
1
1
  import { t as DEG2RAD } from "./constants-csSEYddm.js";
2
2
  import { n as getAtOrThrow } from "./arrayAccess-tCIbjLs5.js";
3
- import { _ as samePoint, p as distance2d, u as angle2d } from "./helpers-BjAezes0.js";
3
+ import { _ as samePoint, p as distance2d, u as angle2d } from "./helpers-Dy7SXAos.js";
4
4
  //#region src/query/cornerFinder.ts
5
5
  var PI_2 = 2 * Math.PI;
6
6
  function positiveHalfAngle(angle) {
@@ -1,4 +1,4 @@
1
- const require_shapeTypes = require("./shapeTypes-BCVe-1bC.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-DsXfDJvg.cjs");
2
2
  const require_errors = require("./errors-CXRNVCec.cjs");
3
3
  //#region src/topology/curveFns.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { X as getKernel, f as isEdge, t as castShape, y as isWire } from "./shapeTypes-BaqgkZCg.js";
1
+ import { X as getKernel, f as isEdge, t as castShape, y as isWire } from "./shapeTypes-CD7UP20p.js";
2
2
  import { A as ok, b as err, l as typeCastError } from "./errors-DboJwVCf.js";
3
3
  //#region src/topology/curveFns.ts
4
4
  /**
@@ -29,22 +29,22 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
29
29
  enumerable: true
30
30
  }) : target, mod));
31
31
  //#endregion
32
- const require_shapeTypes = require("./shapeTypes-BCVe-1bC.cjs");
32
+ const require_shapeTypes = require("./shapeTypes-DsXfDJvg.cjs");
33
33
  const require_errors = require("./errors-CXRNVCec.cjs");
34
- const require_faceFns = require("./faceFns-DUb1drNo.cjs");
34
+ const require_faceFns = require("./faceFns-DJWeK4dL.cjs");
35
35
  const require_constants = require("./constants-BNP_xnBN.cjs");
36
36
  const require_types = require("./types-gLi9wL0N.cjs");
37
37
  const require_vecOps = require("./vecOps-CODplJp3.cjs");
38
38
  const require_planeOps = require("./planeOps-BJOIbn4K.cjs");
39
- const require_curveFns = require("./curveFns-CYcOtGk1.cjs");
39
+ const require_curveFns = require("./curveFns-u8y-X8mn.cjs");
40
40
  const require_arrayAccess = require("./arrayAccess-DsnQpdSD.cjs");
41
- const require_surfaceBuilders = require("./surfaceBuilders-DY4OJ3xC.cjs");
42
- const require_boolean2D = require("./boolean2D-CSQDbVdw.cjs");
43
- const require_helpers = require("./helpers-BFceSqJT.cjs");
44
- const require_blueprint = require("./blueprint-D3OHmUKq.cjs");
45
- const require_solidBuilders = require("./solidBuilders-BEQIXFI7.cjs");
46
- const require_cornerFinder = require("./cornerFinder-CXX9eFJP.cjs");
47
- const require_extrudeFns = require("./extrudeFns-B-My0FG_.cjs");
41
+ const require_surfaceBuilders = require("./surfaceBuilders-DUMjL8xe.cjs");
42
+ const require_boolean2D = require("./boolean2D-CJp5CiHx.cjs");
43
+ const require_helpers = require("./helpers-D6dq9RD2.cjs");
44
+ const require_blueprint = require("./blueprint-DXpRzOQ6.cjs");
45
+ const require_solidBuilders = require("./solidBuilders-B8sQ2dah.cjs");
46
+ const require_cornerFinder = require("./cornerFinder-BC40RqL3.cjs");
47
+ const require_extrudeFns = require("./extrudeFns-Cf6iW-08.cjs");
48
48
  let opentype_js = require("opentype.js");
49
49
  opentype_js = __toESM(opentype_js, 1);
50
50
  //#region src/2d/lib/stitching.ts
@@ -1,19 +1,19 @@
1
- import { R as DisposalScope, X as getKernel, Y as _usingCtx, o as createFace, p as isFace, t as castShape, u as createWire } from "./shapeTypes-BaqgkZCg.js";
1
+ import { R as DisposalScope, X as getKernel, Y as _usingCtx, o as createFace, p as isFace, t as castShape, u as createWire } from "./shapeTypes-CD7UP20p.js";
2
2
  import { A as ok, R as unwrap, T as isOk, b as err, d as validationError, h as bug, r as ioError, s as safeIndex, t as BrepErrorCode } from "./errors-DboJwVCf.js";
3
- import { M as cast, N as downcast, b as getEdges, c as normalAt, l as outerWire, n as faceCenter } from "./faceFns-Bd_Rxi0i.js";
3
+ import { M as cast, N as downcast, b as getEdges, c as normalAt, l as outerWire, n as faceCenter } from "./faceFns-dW7m231K.js";
4
4
  import { t as DEG2RAD } from "./constants-csSEYddm.js";
5
5
  import { r as toVec3 } from "./types--GD-LVc6.js";
6
6
  import { c as vecLength, d as vecNormalize, g as vecSub, h as vecScale, m as vecRotate, r as vecCross } from "./vecOps-B-PCHgyB.js";
7
7
  import { a as planeToWorld, o as resolvePlane } from "./planeOps-sTrM3dcQ.js";
8
- import { m as offsetWire2D } from "./curveFns-DdYnAYRc.js";
8
+ import { m as offsetWire2D } from "./curveFns-yRtG4rxm.js";
9
9
  import { n as getAtOrThrow, r as lastOrThrow, t as firstOrThrow } from "./arrayAccess-tCIbjLs5.js";
10
- import { c as makeBSplineApproximation, d as makeEllipse, p as makeHelix, r as makeFace, s as assembleWire, t as addHolesInFace, u as makeCircle } from "./surfaceBuilders-C5FAaH5y.js";
11
- import { S as Flatbush, _ as Blueprints, b as make2dOffset, c as roundedRectangleBlueprint, f as Sketch, g as CompoundBlueprint, h as organiseBlueprints, l as BaseSketcher2d, n as fuse2D, r as intersect2D, s as polysidesBlueprint, t as cut2D, u as BlueprintSketcher, v as chamferCurves, x as intersectCurves, y as filletCurves } from "./boolean2D-Bzt9_N65.js";
12
- import { _ as samePoint$1, b as subtract2d, c as PRECISION_OFFSET, l as add2d, y as squareDistance2d } from "./helpers-BjAezes0.js";
13
- import { _ as Curve2D, a as edgeToCurve, c as make2dCircle, d as make2dInerpolatedBSplineCurve, f as make2dSegmentCurve, g as approximateAsSvgCompatibleCurve, i as curvesAsEdgesOnPlane, l as make2dEllipse, o as make2dArcFromCenter, t as Blueprint, v as deserializeCurve2D, y as BoundingBox2d } from "./blueprint-DvED9rwq.js";
14
- import { o as makeSolid, t as makeCompound } from "./solidBuilders-BkIjYbQk.js";
15
- import { t as cornerFinder } from "./cornerFinder-Xipmh8GJ.js";
16
- import { i as complexExtrude, l as twistExtrude, r as revolve, t as extrude } from "./extrudeFns-CyJdzOh9.js";
10
+ import { c as makeBSplineApproximation, d as makeEllipse, p as makeHelix, r as makeFace, s as assembleWire, t as addHolesInFace, u as makeCircle } from "./surfaceBuilders-56nzsw47.js";
11
+ import { S as Flatbush, _ as Blueprints, b as make2dOffset, c as roundedRectangleBlueprint, f as Sketch, g as CompoundBlueprint, h as organiseBlueprints, l as BaseSketcher2d, n as fuse2D, r as intersect2D, s as polysidesBlueprint, t as cut2D, u as BlueprintSketcher, v as chamferCurves, x as intersectCurves, y as filletCurves } from "./boolean2D-DrRvvcjC.js";
12
+ import { _ as samePoint$1, b as subtract2d, c as PRECISION_OFFSET, l as add2d, y as squareDistance2d } from "./helpers-Dy7SXAos.js";
13
+ import { _ as Curve2D, a as edgeToCurve, c as make2dCircle, d as make2dInerpolatedBSplineCurve, f as make2dSegmentCurve, g as approximateAsSvgCompatibleCurve, i as curvesAsEdgesOnPlane, l as make2dEllipse, o as make2dArcFromCenter, t as Blueprint, v as deserializeCurve2D, y as BoundingBox2d } from "./blueprint-BWbHrFLP.js";
14
+ import { o as makeSolid, t as makeCompound } from "./solidBuilders-BEqdy1Xc.js";
15
+ import { t as cornerFinder } from "./cornerFinder-YP_n3Hug.js";
16
+ import { i as complexExtrude, l as twistExtrude, r as revolve, t as extrude } from "./extrudeFns-1sJctKf2.js";
17
17
  import opentype from "opentype.js";
18
18
  //#region src/2d/lib/stitching.ts
19
19
  /**
@@ -1,4 +1,4 @@
1
- import { X as getKernel, c as createSolid, h as isShape3D, t as castShape, y as isWire } from "./shapeTypes-BaqgkZCg.js";
1
+ import { X as getKernel, c as createSolid, h as isShape3D, t as castShape, y as isWire } from "./shapeTypes-CD7UP20p.js";
2
2
  import { A as ok, b as err, d as validationError, i as kernelError, l as typeCastError, t as BrepErrorCode, w as isErr } from "./errors-DboJwVCf.js";
3
3
  import { c as vecLength, d as vecNormalize, t as vecAdd } from "./vecOps-B-PCHgyB.js";
4
4
  //#region src/operations/extrudeUtils.ts
@@ -1,4 +1,4 @@
1
- const require_shapeTypes = require("./shapeTypes-BCVe-1bC.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-DsXfDJvg.cjs");
2
2
  const require_errors = require("./errors-CXRNVCec.cjs");
3
3
  const require_vecOps = require("./vecOps-CODplJp3.cjs");
4
4
  //#region src/operations/extrudeUtils.ts
@@ -1,4 +1,4 @@
1
- const require_shapeTypes = require("./shapeTypes-BCVe-1bC.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-DsXfDJvg.cjs");
2
2
  const require_errors = require("./errors-CXRNVCec.cjs");
3
3
  const require_types = require("./types-gLi9wL0N.cjs");
4
4
  //#region src/core/kernelCall.ts
@@ -1,4 +1,4 @@
1
- import { N as getOrQueryType, R as DisposalScope, X as getKernel, Y as _usingCtx, r as castShapeWithKnownType, t as castShape } from "./shapeTypes-BaqgkZCg.js";
1
+ import { N as getOrQueryType, R as DisposalScope, X as getKernel, Y as _usingCtx, r as castShapeWithKnownType, t as castShape } from "./shapeTypes-CD7UP20p.js";
2
2
  import { A as ok, R as unwrap, b as err, f as getSuggestionForCode, l as typeCastError, p as translateKernelError } from "./errors-DboJwVCf.js";
3
3
  import { r as toVec3 } from "./types--GD-LVc6.js";
4
4
  //#region src/core/kernelCall.ts
@@ -1,11 +1,11 @@
1
- const require_shapeTypes = require("./shapeTypes-BCVe-1bC.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-DsXfDJvg.cjs");
2
2
  const require_errors = require("./errors-CXRNVCec.cjs");
3
- const require_faceFns = require("./faceFns-DUb1drNo.cjs");
3
+ const require_faceFns = require("./faceFns-DJWeK4dL.cjs");
4
4
  const require_constants = require("./constants-BNP_xnBN.cjs");
5
5
  const require_vecOps = require("./vecOps-CODplJp3.cjs");
6
- const require_shapeFns = require("./shapeFns-_qjTVOOu.cjs");
7
- const require_curveFns = require("./curveFns-CYcOtGk1.cjs");
8
- const require_measureFns = require("./measureFns-BFFXNFGZ.cjs");
6
+ const require_shapeFns = require("./shapeFns-DDT1aaOB.cjs");
7
+ const require_curveFns = require("./curveFns-u8y-X8mn.cjs");
8
+ const require_measureFns = require("./measureFns-CI9eY2cN.cjs");
9
9
  //#region src/utils/vec2d.ts
10
10
  /** Precision for curve intersection and parameter operations. */
11
11
  var PRECISION_INTERSECTION = 1e-9;
@@ -1,11 +1,11 @@
1
- import { X as getKernel, p as isFace } from "./shapeTypes-BaqgkZCg.js";
1
+ import { X as getKernel, p as isFace } from "./shapeTypes-CD7UP20p.js";
2
2
  import { A as ok, T as isOk, b as err, h as bug, o as queryError } from "./errors-DboJwVCf.js";
3
- import { C as getVertices, b as getEdges, c as normalAt, o as getSurfaceType, w as getWires, x as getFaces } from "./faceFns-Bd_Rxi0i.js";
3
+ import { C as getVertices, b as getEdges, c as normalAt, o as getSurfaceType, w as getWires, x as getFaces } from "./faceFns-dW7m231K.js";
4
4
  import { t as DEG2RAD } from "./constants-csSEYddm.js";
5
5
  import { a as vecDot, d as vecNormalize } from "./vecOps-B-PCHgyB.js";
6
- import { a as isSameShape, n as getHashCode } from "./shapeFns-LuFDe1Zt.js";
7
- import { a as curveLength, d as getCurveType, r as curveIsClosed } from "./curveFns-DdYnAYRc.js";
8
- import { n as measureArea } from "./measureFns-zfD4TZCP.js";
6
+ import { a as isSameShape, n as getHashCode } from "./shapeFns-D0P0pr-T.js";
7
+ import { a as curveLength, d as getCurveType, r as curveIsClosed } from "./curveFns-yRtG4rxm.js";
8
+ import { n as measureArea } from "./measureFns-GZgBrqnh.js";
9
9
  //#region src/utils/vec2d.ts
10
10
  /** Precision for curve intersection and parameter operations. */
11
11
  var PRECISION_INTERSECTION = 1e-9;
@@ -1,9 +1,9 @@
1
- const require_shapeTypes = require("./shapeTypes-BCVe-1bC.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-DsXfDJvg.cjs");
2
2
  const require_errors = require("./errors-CXRNVCec.cjs");
3
- const require_faceFns = require("./faceFns-DUb1drNo.cjs");
3
+ const require_faceFns = require("./faceFns-DJWeK4dL.cjs");
4
4
  const require_vecOps = require("./vecOps-CODplJp3.cjs");
5
- const require_shapeFns = require("./shapeFns-_qjTVOOu.cjs");
6
- const require_booleanFns = require("./booleanFns-BYPZ71HI.cjs");
5
+ const require_shapeFns = require("./shapeFns-DDT1aaOB.cjs");
6
+ const require_booleanFns = require("./booleanFns-BnJS6p4-.cjs");
7
7
  //#region src/utils/uuid.ts
8
8
  /** Generate a v4-style UUID string using `crypto.getRandomValues`. */
9
9
  function uuidv() {
@@ -1,9 +1,9 @@
1
- import { B as createKernelHandle, X as getKernel, t as castShape } from "./shapeTypes-BaqgkZCg.js";
1
+ import { B as createKernelHandle, X as getKernel, t as castShape } from "./shapeTypes-CD7UP20p.js";
2
2
  import { A as ok, b as err, d as validationError, n as computationError, r as ioError } from "./errors-DboJwVCf.js";
3
- import { P as fromBREP } from "./faceFns-Bd_Rxi0i.js";
3
+ import { P as fromBREP } from "./faceFns-dW7m231K.js";
4
4
  import { d as vecNormalize, s as vecIsZero } from "./vecOps-B-PCHgyB.js";
5
- import { s as toBREP } from "./shapeFns-LuFDe1Zt.js";
6
- import { a as fuseAll } from "./booleanFns-CHs5pfa5.js";
5
+ import { s as toBREP } from "./shapeFns-D0P0pr-T.js";
6
+ import { a as fuseAll } from "./booleanFns-BWqIlVaW.js";
7
7
  //#region src/utils/uuid.ts
8
8
  /** Generate a v4-style UUID string using `crypto.getRandomValues`. */
9
9
  function uuidv() {