brepjs 18.76.0 → 18.78.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 (85) hide show
  1. package/dist/2d.cjs +6 -6
  2. package/dist/2d.js +6 -6
  3. package/dist/{blueprint-BHyTsY5E.cjs → blueprint-BE93BNYE.cjs} +5 -5
  4. package/dist/{blueprint-DuT3LJGx.js → blueprint-BVe9JU-L.js} +5 -5
  5. package/dist/{blueprintFns-dPHJgrqC.cjs → blueprintFns-B_7kKwEZ.cjs} +2 -2
  6. package/dist/{blueprintFns-qaEV4X2R.js → blueprintFns-DWinspVK.js} +2 -2
  7. package/dist/{blueprintSketcher-Th4H1tao.cjs → blueprintSketcher-D75tuXkF.cjs} +3 -3
  8. package/dist/{blueprintSketcher-IY1gJ613.js → blueprintSketcher-DL-wgnVs.js} +3 -3
  9. package/dist/{boolean2D-BGK18W_l.cjs → boolean2D-C4Txi8U1.cjs} +4 -4
  10. package/dist/{boolean2D-DUDg_dMv.js → boolean2D-OtHT7POp.js} +4 -4
  11. package/dist/brepjs.cjs +153 -152
  12. package/dist/brepjs.js +26 -26
  13. package/dist/{cameraFns-Ctxe8ev-.js → cameraFns-DCXqzH_m.js} +2 -2
  14. package/dist/{cameraFns-G2lc5c9M.cjs → cameraFns-DfSRnD1k.cjs} +2 -2
  15. package/dist/core.cjs +1 -1
  16. package/dist/core.js +1 -1
  17. package/dist/{cornerFinder-DamaTij5.js → cornerFinder-DPkLU1Of.js} +1 -1
  18. package/dist/{cornerFinder-CxqA_AYe.cjs → cornerFinder-KuLU-4pQ.cjs} +1 -1
  19. package/dist/{curveFns-CwOY58kC.js → curveFns-B4KEYU1M.js} +1 -1
  20. package/dist/{curveFns-B8UdENpg.cjs → curveFns-C0oCmjV2.cjs} +1 -1
  21. package/dist/{drawFns-CcR9_01X.js → drawFns-C6h_w03r.js} +12 -12
  22. package/dist/{drawFns-BwfhGs8Z.cjs → drawFns-DxjMxRpE.cjs} +12 -12
  23. package/dist/{faceFns-BJ0mbRh5.js → faceFns-BJ2hzXJp.js} +2 -2
  24. package/dist/{faceFns-CZvemlPW.cjs → faceFns-p0lyVuyw.cjs} +2 -2
  25. package/dist/{primitiveFns-FudrSXrp.cjs → healingFns-B7dElsC4.cjs} +9 -466
  26. package/dist/{primitiveFns-B6Q6lx9-.js → healingFns-DS_nK9KF.js} +8 -303
  27. package/dist/{helpers-DsaGpuUh.js → helpers-C78MY-s6.js} +6 -6
  28. package/dist/{helpers-90SKWHEY.cjs → helpers-DTBDjbdR.cjs} +6 -6
  29. package/dist/{importFns-CXH2OmJ6.cjs → importFns-CUAiLgt_.cjs} +2 -2
  30. package/dist/{importFns-B02-HKco.js → importFns-Rv22QSn6.js} +2 -2
  31. package/dist/index.d.ts +1 -0
  32. package/dist/io.cjs +2 -2
  33. package/dist/io.js +2 -2
  34. package/dist/kernel/occt/geometryQueryOps.d.ts +5 -1
  35. package/dist/kernel/occtWasm/occtWasmAdapter.cjs +1 -1
  36. package/dist/kernel/occtWasm/occtWasmAdapter.js +1 -1
  37. package/dist/kernel/occtWasm/surfaceOps.d.ts +5 -1
  38. package/dist/{extrudeFns-msxcCUm2.js → loftFns-DuxEscJB.js} +93 -2
  39. package/dist/{extrudeFns-b7JHaMsv.cjs → loftFns-DycLH1Pq.cjs} +104 -1
  40. package/dist/{measureFns-DYeTPyHr.js → measureFns-C8c6xRUE.js} +3 -3
  41. package/dist/{measureFns-CRS3U8gj.cjs → measureFns-DnxobCbD.cjs} +3 -3
  42. package/dist/measurement.cjs +1 -1
  43. package/dist/measurement.js +1 -1
  44. package/dist/{meshFns-CvmTzMPL.cjs → meshFns-BawS1xNA.cjs} +3 -3
  45. package/dist/{meshFns-CLQL2D95.js → meshFns-CuYzpojl.js} +3 -3
  46. package/dist/{occtWasmAdapter-m4Nua92H.js → occtWasmAdapter-BrTkhQYK.js} +83 -6
  47. package/dist/{occtWasmAdapter-DdghAlnN.cjs → occtWasmAdapter-W86SRBpi.cjs} +83 -6
  48. package/dist/operations/threadFns.d.ts +39 -0
  49. package/dist/operations.cjs +33 -32
  50. package/dist/operations.d.ts +1 -0
  51. package/dist/operations.js +3 -3
  52. package/dist/{booleanFns-Cu-J1THp.js → primitiveFns-BxH5omw3.js} +301 -7
  53. package/dist/{booleanFns-DxnTjP19.cjs → primitiveFns-JRmXxbRr.cjs} +460 -4
  54. package/dist/projection.cjs +1 -1
  55. package/dist/projection.js +1 -1
  56. package/dist/query.cjs +2 -2
  57. package/dist/query.js +2 -2
  58. package/dist/{shapeFns-CQmd2W5F.cjs → shapeFns-D5WNrq3s.cjs} +2 -2
  59. package/dist/{shapeFns-CQRGTifg.js → shapeFns-DZ6poxP7.js} +2 -2
  60. package/dist/shapeRef.cjs +1 -1
  61. package/dist/shapeRef.js +1 -1
  62. package/dist/{shapeRefFns-DoPplxoN.cjs → shapeRefFns-BOWP8n4j.cjs} +4 -4
  63. package/dist/{shapeRefFns-DvIvS0do.js → shapeRefFns-ClsyeZp4.js} +4 -4
  64. package/dist/{shapeTypes-C4cMKLoj.cjs → shapeTypes-CxSqNvHA.cjs} +55 -26
  65. package/dist/{shapeTypes-VCBsDI43.js → shapeTypes-CyTY0prh.js} +55 -26
  66. package/dist/sketching.cjs +3 -3
  67. package/dist/sketching.js +3 -3
  68. package/dist/{solidBuilders-DBsHetmI.js → solidBuilders-BtEFUFQ9.js} +2 -2
  69. package/dist/{solidBuilders-B0Hzin8a.cjs → solidBuilders-diw2zyyN.cjs} +2 -2
  70. package/dist/{surfaceBuilders-QK_Cnn_u.cjs → surfaceBuilders-CPHOXRLE.cjs} +2 -2
  71. package/dist/{surfaceBuilders-DllH3kXs.js → surfaceBuilders-Do0rypyD.js} +2 -2
  72. package/dist/text.cjs +2 -2
  73. package/dist/text.js +2 -2
  74. package/dist/{textBlueprints-C_ThSDVg.js → textBlueprints-C3IbySW_.js} +9 -99
  75. package/dist/{textBlueprints-8lNMcsUv.cjs → textBlueprints-SKuamOmI.cjs} +17 -119
  76. package/dist/{textMetrics-CxdhimFF.js → textMetrics--BwiJH2B.js} +1 -1
  77. package/dist/{textMetrics-Bn5VPcTV.cjs → textMetrics-Bzbkal_A.cjs} +1 -1
  78. package/dist/{historyFns-BV5sQxft.js → threadFns-D8-zfJ0b.js} +73 -6
  79. package/dist/{historyFns-xUNAdUYV.cjs → threadFns-aWgxzqmT.cjs} +79 -6
  80. package/dist/topology/booleanFns.d.ts +9 -1
  81. package/dist/topology.cjs +39 -39
  82. package/dist/topology.js +7 -7
  83. package/dist/{topologyQueryFns-BtfhAVY2.js → topologyQueryFns-BomrmBie.js} +1 -1
  84. package/dist/{topologyQueryFns-Bj5wpC75.cjs → topologyQueryFns-Dzxrwn-E.cjs} +1 -1
  85. package/package.json +1 -1
package/dist/brepjs.cjs CHANGED
@@ -1,36 +1,36 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_textBlueprints = require("./textBlueprints-8lNMcsUv.cjs");
3
- const require_shapeTypes = require("./shapeTypes-C4cMKLoj.cjs");
4
- const require_occtWasmAdapter = require("./occtWasmAdapter-DdghAlnN.cjs");
2
+ const require_textBlueprints = require("./textBlueprints-SKuamOmI.cjs");
3
+ const require_shapeTypes = require("./shapeTypes-CxSqNvHA.cjs");
4
+ const require_occtWasmAdapter = require("./occtWasmAdapter-W86SRBpi.cjs");
5
5
  const require_vec3 = require("./vec3-CFwOI0ZI.cjs");
6
6
  const require_errors = require("./errors-CXJtc4I7.cjs");
7
- const require_topologyQueryFns = require("./topologyQueryFns-Bj5wpC75.cjs");
7
+ const require_topologyQueryFns = require("./topologyQueryFns-Dzxrwn-E.cjs");
8
8
  const require_constants = require("./constants-BOVyEYGH.cjs");
9
9
  const require_types = require("./types-KjA8tY4Y.cjs");
10
10
  const require_vecOps = require("./vecOps-CCnJt-yH.cjs");
11
11
  const require_planeOps = require("./planeOps-BA4HfgQu.cjs");
12
- const require_faceFns = require("./faceFns-CZvemlPW.cjs");
13
- const require_shapeFns = require("./shapeFns-CQmd2W5F.cjs");
14
- const require_curveFns = require("./curveFns-B8UdENpg.cjs");
15
- const require_meshFns = require("./meshFns-CvmTzMPL.cjs");
12
+ const require_faceFns = require("./faceFns-p0lyVuyw.cjs");
13
+ const require_shapeFns = require("./shapeFns-D5WNrq3s.cjs");
14
+ const require_curveFns = require("./curveFns-C0oCmjV2.cjs");
15
+ const require_meshFns = require("./meshFns-BawS1xNA.cjs");
16
16
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
17
- const require_surfaceBuilders = require("./surfaceBuilders-QK_Cnn_u.cjs");
18
- const require_booleanFns = require("./booleanFns-DxnTjP19.cjs");
19
- const require_primitiveFns = require("./primitiveFns-FudrSXrp.cjs");
20
- const require_historyFns = require("./historyFns-xUNAdUYV.cjs");
21
- const require_blueprintSketcher = require("./blueprintSketcher-Th4H1tao.cjs");
22
- const require_helpers = require("./helpers-90SKWHEY.cjs");
23
- const require_drawFns = require("./drawFns-BwfhGs8Z.cjs");
24
- const require_solidBuilders = require("./solidBuilders-B0Hzin8a.cjs");
25
- const require_measureFns = require("./measureFns-CRS3U8gj.cjs");
26
- const require_cornerFinder = require("./cornerFinder-CxqA_AYe.cjs");
27
- const require_boolean2D = require("./boolean2D-BGK18W_l.cjs");
28
- const require_blueprintFns = require("./blueprintFns-dPHJgrqC.cjs");
29
- const require_importFns = require("./importFns-CXH2OmJ6.cjs");
30
- const require_extrudeFns = require("./extrudeFns-b7JHaMsv.cjs");
31
- const require_cameraFns = require("./cameraFns-G2lc5c9M.cjs");
32
- const require_textMetrics = require("./textMetrics-Bn5VPcTV.cjs");
33
- const require_shapeRefFns = require("./shapeRefFns-DoPplxoN.cjs");
17
+ const require_surfaceBuilders = require("./surfaceBuilders-CPHOXRLE.cjs");
18
+ const require_primitiveFns = require("./primitiveFns-JRmXxbRr.cjs");
19
+ const require_healingFns = require("./healingFns-B7dElsC4.cjs");
20
+ const require_threadFns = require("./threadFns-aWgxzqmT.cjs");
21
+ const require_blueprintSketcher = require("./blueprintSketcher-D75tuXkF.cjs");
22
+ const require_helpers = require("./helpers-DTBDjbdR.cjs");
23
+ const require_drawFns = require("./drawFns-DxjMxRpE.cjs");
24
+ const require_solidBuilders = require("./solidBuilders-diw2zyyN.cjs");
25
+ const require_measureFns = require("./measureFns-DnxobCbD.cjs");
26
+ const require_cornerFinder = require("./cornerFinder-KuLU-4pQ.cjs");
27
+ const require_boolean2D = require("./boolean2D-C4Txi8U1.cjs");
28
+ const require_blueprintFns = require("./blueprintFns-B_7kKwEZ.cjs");
29
+ const require_importFns = require("./importFns-CUAiLgt_.cjs");
30
+ const require_loftFns = require("./loftFns-DycLH1Pq.cjs");
31
+ const require_cameraFns = require("./cameraFns-DfSRnD1k.cjs");
32
+ const require_textMetrics = require("./textMetrics-Bzbkal_A.cjs");
33
+ const require_shapeRefFns = require("./shapeRefFns-BOWP8n4j.cjs");
34
34
  const require_workerHandler = require("./workerHandler-CdlOTwJg.cjs");
35
35
  //#region src/topology/shapeBooleans.ts
36
36
  var BOPAlgo_GlueShift = 1;
@@ -2594,7 +2594,7 @@ function solveAssembly(assembly) {
2594
2594
  if (!mates || mates.length === 0) return require_errors.err(require_errors.validationError(require_errors.BrepErrorCode.ASSEMBLY_MATE_INVALID, "solveAssembly: no mates defined"));
2595
2595
  try {
2596
2596
  const nodes = [];
2597
- require_historyFns.walkAssembly(assembly, (node) => {
2597
+ require_threadFns.walkAssembly(assembly, (node) => {
2598
2598
  nodes.push(node.name);
2599
2599
  });
2600
2600
  const solverConstraints = [];
@@ -2742,7 +2742,7 @@ function composePose(a, b) {
2742
2742
  /** Collect every joint attached anywhere in the assembly tree. */
2743
2743
  function collectJoints(assembly) {
2744
2744
  const joints = [];
2745
- require_historyFns.walkAssembly(assembly, (node) => {
2745
+ require_threadFns.walkAssembly(assembly, (node) => {
2746
2746
  if (node.joints) joints.push(...node.joints);
2747
2747
  });
2748
2748
  return joints;
@@ -2760,7 +2760,7 @@ function collectJoints(assembly) {
2760
2760
  function forwardKinematics(assembly, jointValues = {}) {
2761
2761
  const joints = [];
2762
2762
  const names = /* @__PURE__ */ new Set();
2763
- require_historyFns.walkAssembly(assembly, (node) => {
2763
+ require_threadFns.walkAssembly(assembly, (node) => {
2764
2764
  names.add(node.name);
2765
2765
  if (node.joints) joints.push(...node.joints);
2766
2766
  });
@@ -3469,40 +3469,40 @@ function transformCopy(shape, composed) {
3469
3469
  }
3470
3470
  /** Fuse two 3D shapes (boolean union). */
3471
3471
  function fuse(a, b, options) {
3472
- return require_booleanFns.fuse(resolve(a), resolve(b), {
3472
+ return require_primitiveFns.fuse(resolve(a), resolve(b), {
3473
3473
  ...options,
3474
3474
  unsafe: true
3475
3475
  });
3476
3476
  }
3477
3477
  /** Cut a tool from a base shape (boolean subtraction). */
3478
3478
  function cut(base, tool, options) {
3479
- return require_booleanFns.cut(resolve(base), resolve(tool), {
3479
+ return require_primitiveFns.cut(resolve(base), resolve(tool), {
3480
3480
  ...options,
3481
3481
  unsafe: true
3482
3482
  });
3483
3483
  }
3484
3484
  /** Compute the intersection of two shapes (boolean common). */
3485
3485
  function intersect(a, b, options) {
3486
- return require_booleanFns.intersect(resolve(a), resolve(b), {
3486
+ return require_primitiveFns.intersect(resolve(a), resolve(b), {
3487
3487
  ...options,
3488
3488
  unsafe: true
3489
3489
  });
3490
3490
  }
3491
3491
  /** Section (cross-section) a shape with a plane. */
3492
3492
  function section(shape, plane, options) {
3493
- return require_booleanFns.section(resolve(shape), plane, options);
3493
+ return require_primitiveFns.section(resolve(shape), plane, options);
3494
3494
  }
3495
3495
  /** Section a shape with a plane and return a filled Face. */
3496
3496
  function sectionToFace(shape, plane, options) {
3497
- return require_booleanFns.sectionToFace(resolve(shape), plane, options);
3497
+ return require_primitiveFns.sectionToFace(resolve(shape), plane, options);
3498
3498
  }
3499
3499
  /** Split a shape with tool shapes. */
3500
3500
  function split(shape, tools) {
3501
- return require_booleanFns.split(resolve(shape), tools);
3501
+ return require_primitiveFns.split(resolve(shape), tools);
3502
3502
  }
3503
3503
  /** Slice a shape with multiple planes. */
3504
3504
  function slice(shape, planes, options) {
3505
- return require_booleanFns.slice(resolve(shape), planes, options);
3505
+ return require_primitiveFns.slice(resolve(shape), planes, options);
3506
3506
  }
3507
3507
  /**
3508
3508
  * Resolve a FinderFn callback or ShapeFinder into an array of elements.
@@ -3553,7 +3553,7 @@ function fillet(shape, edgesOrRadius, maybeRadius) {
3553
3553
  edges = void 0;
3554
3554
  radius = edgesOrRadius;
3555
3555
  }
3556
- return require_primitiveFns.fillet(s, edges, radius);
3556
+ return require_healingFns.fillet(s, edges, radius);
3557
3557
  }
3558
3558
  function chamfer(shape, edgesOrDistance, maybeDistance) {
3559
3559
  const s = resolve(shape);
@@ -3569,23 +3569,23 @@ function chamfer(shape, edgesOrDistance, maybeDistance) {
3569
3569
  const normalized = normalizeChamferDistance(distance);
3570
3570
  if (normalized.mode === "distAngle") {
3571
3571
  const selectedEdges = edges ?? require_topologyQueryFns.getEdges(s);
3572
- return require_primitiveFns.chamferDistAngle(s, [...selectedEdges], normalized.distance, normalized.angle);
3572
+ return require_healingFns.chamferDistAngle(s, [...selectedEdges], normalized.distance, normalized.angle);
3573
3573
  }
3574
- return require_primitiveFns.chamfer(s, edges, normalized.distance);
3574
+ return require_healingFns.chamfer(s, edges, normalized.distance);
3575
3575
  }
3576
3576
  /** Create a hollow shell by removing faces and offsetting remaining walls. */
3577
3577
  function shell(shape, faces, thickness, options) {
3578
3578
  const s = resolve(shape);
3579
3579
  const resolvedFaces = resolveFaces(faces, s);
3580
- return require_primitiveFns.shell(s, resolvedFaces, thickness, options?.tolerance);
3580
+ return require_healingFns.shell(s, resolvedFaces, thickness, options?.tolerance);
3581
3581
  }
3582
3582
  /** Offset all faces of a valid solid by a given distance. */
3583
3583
  function offset(shape, distance, options) {
3584
- return require_primitiveFns.offset(resolve(shape), distance, options?.tolerance);
3584
+ return require_healingFns.offset(resolve(shape), distance, options?.tolerance);
3585
3585
  }
3586
3586
  /** Thicken a surface (face or shell) into a solid. */
3587
3587
  function thicken(shape, thickness) {
3588
- return require_primitiveFns.thicken(resolve(shape), thickness);
3588
+ return require_healingFns.thicken(resolve(shape), thickness);
3589
3589
  }
3590
3590
  /**
3591
3591
  * Draft (taper) selected faces of a 3D shape.
@@ -3597,11 +3597,11 @@ function thicken(shape, thickness) {
3597
3597
  function draft(shape, faces, options) {
3598
3598
  const s = resolve(shape);
3599
3599
  const resolvedFaces = resolveFaces(faces, s);
3600
- return require_primitiveFns.draft(s, resolvedFaces, options.pullDirection, options.neutralPlane, options.angle);
3600
+ return require_healingFns.draft(s, resolvedFaces, options.pullDirection, options.neutralPlane, options.angle);
3601
3601
  }
3602
3602
  /** Heal a shape using the appropriate fixer. */
3603
3603
  function heal(shape) {
3604
- return require_primitiveFns.heal(resolve(shape));
3604
+ return require_healingFns.heal(resolve(shape));
3605
3605
  }
3606
3606
  /** Simplify a shape by merging same-domain faces/edges. */
3607
3607
  function simplify(shape) {
@@ -3629,7 +3629,7 @@ function fromBREP$1(data) {
3629
3629
  }
3630
3630
  /** Check if a shape is valid. */
3631
3631
  function isValid(shape) {
3632
- return require_primitiveFns.isValid(resolve(shape));
3632
+ return require_healingFns.isValid(resolve(shape));
3633
3633
  }
3634
3634
  /** Check if a shape is empty (null). */
3635
3635
  function isEmpty(shape) {
@@ -3651,7 +3651,7 @@ function extrude(face, height) {
3651
3651
  0,
3652
3652
  height
3653
3653
  ] : height;
3654
- return require_extrudeFns.extrude(f, vec);
3654
+ return require_loftFns.extrude(f, vec);
3655
3655
  }
3656
3656
  /**
3657
3657
  * Revolve a face around an axis to create a solid of revolution.
@@ -3662,7 +3662,7 @@ function revolve(face, options) {
3662
3662
  0,
3663
3663
  0
3664
3664
  ];
3665
- return require_extrudeFns.revolve(resolve(face), pivotPoint, options?.axis ?? [
3665
+ return require_loftFns.revolve(resolve(face), pivotPoint, options?.axis ?? [
3666
3666
  0,
3667
3667
  0,
3668
3668
  1
@@ -3673,7 +3673,7 @@ function revolve(face, options) {
3673
3673
  */
3674
3674
  function loft(wires, options) {
3675
3675
  const resolvedWires = wires.map((w) => resolve(w));
3676
- return require_textBlueprints.loft(resolvedWires, options);
3676
+ return require_loftFns.loft(resolvedWires, options);
3677
3677
  }
3678
3678
  //#endregion
3679
3679
  //#region src/operations/compoundOpsFns.ts
@@ -3794,7 +3794,7 @@ function drill(shape, options) {
3794
3794
  pos[2] + dir[2] * tMin
3795
3795
  ], dir);
3796
3796
  }
3797
- return require_booleanFns.cut(s, tool, { unsafe: true });
3797
+ return require_primitiveFns.cut(s, tool, { unsafe: true });
3798
3798
  }
3799
3799
  /**
3800
3800
  * Cut a pocket (2D profile extruded inward) into a shape.
@@ -3813,9 +3813,9 @@ function pocket(shape, options) {
3813
3813
  const center = require_faceFns.faceCenter(targetFace);
3814
3814
  const faceResult = require_surfaceBuilders.makeFace(toWire(profile));
3815
3815
  if (require_errors.isErr(faceResult)) return faceResult;
3816
- const toolResult = require_extrudeFns.extrude(require_shapeFns.translate(faceResult.value, center), require_vecOps.vecScale(require_vecOps.vecNormalize(normal), -depth));
3816
+ const toolResult = require_loftFns.extrude(require_shapeFns.translate(faceResult.value, center), require_vecOps.vecScale(require_vecOps.vecNormalize(normal), -depth));
3817
3817
  if (require_errors.isErr(toolResult)) return toolResult;
3818
- return require_booleanFns.cut(s, toolResult.value, { unsafe: true });
3818
+ return require_primitiveFns.cut(s, toolResult.value, { unsafe: true });
3819
3819
  }
3820
3820
  /**
3821
3821
  * Add a boss (2D profile extruded outward) onto a shape.
@@ -3834,9 +3834,9 @@ function boss(shape, options) {
3834
3834
  const center = require_faceFns.faceCenter(targetFace);
3835
3835
  const faceResult = require_surfaceBuilders.makeFace(toWire(profile));
3836
3836
  if (require_errors.isErr(faceResult)) return faceResult;
3837
- const toolResult = require_extrudeFns.extrude(require_shapeFns.translate(faceResult.value, center), require_vecOps.vecScale(require_vecOps.vecNormalize(normal), height));
3837
+ const toolResult = require_loftFns.extrude(require_shapeFns.translate(faceResult.value, center), require_vecOps.vecScale(require_vecOps.vecNormalize(normal), height));
3838
3838
  if (require_errors.isErr(toolResult)) return toolResult;
3839
- return require_booleanFns.fuse(s, toolResult.value, { unsafe: true });
3839
+ return require_primitiveFns.fuse(s, toolResult.value, { unsafe: true });
3840
3840
  }
3841
3841
  /**
3842
3842
  * Mirror a shape and fuse it with the original.
@@ -3852,7 +3852,7 @@ function mirrorJoin(shape, options) {
3852
3852
  ];
3853
3853
  const planeOrigin = options?.at;
3854
3854
  if (require_vecOps.vecIsZero(normal)) return require_errors.err(require_errors.validationError("MIRROR_ZERO_NORMAL", "Mirror plane normal cannot be zero"));
3855
- return require_booleanFns.fuse(s, require_shapeFns.mirror(s, normal, planeOrigin), { unsafe: true });
3855
+ return require_primitiveFns.fuse(s, require_shapeFns.mirror(s, normal, planeOrigin), { unsafe: true });
3856
3856
  }
3857
3857
  /**
3858
3858
  * Create a rectangular (2D grid) pattern of a shape.
@@ -3879,7 +3879,7 @@ function rectangularPattern(shape, options) {
3879
3879
  ];
3880
3880
  copies.push(require_shapeFns.translate(s, offset));
3881
3881
  }
3882
- return require_booleanFns.fuseAll(copies, { unsafe: true });
3882
+ return require_primitiveFns.fuseAll(copies, { unsafe: true });
3883
3883
  }
3884
3884
  //#endregion
3885
3885
  //#region src/topology/wrapperFns.ts
@@ -3996,11 +3996,11 @@ function create3DBooleans(val) {
3996
3996
  ...opts,
3997
3997
  unsafe: true
3998
3998
  }))),
3999
- fuseAll: (tools, opts) => wrap3D(trustAsT(unwrapOrThrow(require_booleanFns.fuseAll([val, ...tools.map(resolve)], {
3999
+ fuseAll: (tools, opts) => wrap3D(trustAsT(unwrapOrThrow(require_primitiveFns.fuseAll([val, ...tools.map(resolve)], {
4000
4000
  ...opts,
4001
4001
  unsafe: true
4002
4002
  })))),
4003
- cutAll: (tools, opts) => wrap3D(trustAsT(unwrapOrThrow(require_booleanFns.cutAll(val, tools, {
4003
+ cutAll: (tools, opts) => wrap3D(trustAsT(unwrapOrThrow(require_primitiveFns.cutAll(val, tools, {
4004
4004
  ...opts,
4005
4005
  unsafe: true
4006
4006
  })))),
@@ -4051,8 +4051,8 @@ function create3DQueries(val) {
4051
4051
  }
4052
4052
  function create3DPatterns(val) {
4053
4053
  return {
4054
- linearPattern: (dir, count, spacing) => wrap3D(trustAsT(unwrapOrThrow(require_historyFns.linearPattern(val, dir, count, spacing)))),
4055
- circularPattern: (axis, count, angle) => wrap3D(trustAsT(unwrapOrThrow(require_historyFns.circularPattern(val, axis, count, angle))))
4054
+ linearPattern: (dir, count, spacing) => wrap3D(trustAsT(unwrapOrThrow(require_threadFns.linearPattern(val, dir, count, spacing)))),
4055
+ circularPattern: (axis, count, angle) => wrap3D(trustAsT(unwrapOrThrow(require_threadFns.circularPattern(val, axis, count, angle))))
4056
4056
  };
4057
4057
  }
4058
4058
  function createWrapped3D(val) {
@@ -4077,7 +4077,7 @@ function createWrappedCurve(val) {
4077
4077
  isClosed: () => require_curveFns.curveIsClosed(val),
4078
4078
  sweep(spine, opts) {
4079
4079
  if (!require_shapeTypes.isWire(val)) throw new Error("sweep requires a Wire");
4080
- const result = unwrapOrThrow(require_extrudeFns.sweep(asClosedWire(val), resolve(spine), opts));
4080
+ const result = unwrapOrThrow(require_loftFns.sweep(asClosedWire(val), resolve(spine), opts));
4081
4081
  return wrap3D(Array.isArray(result) ? result[0] : result);
4082
4082
  }
4083
4083
  };
@@ -4587,7 +4587,7 @@ function finalizeExternalSolid(wire, thickness, bore, geom, diagnostics) {
4587
4587
  var _usingCtx3 = require_shapeTypes._usingCtx();
4588
4588
  const faceResult = require_surfaceBuilders.makeFace(wire);
4589
4589
  if (require_errors.isErr(faceResult)) return faceResult;
4590
- const solidResult = require_extrudeFns.extrude(faceResult.value, [
4590
+ const solidResult = require_loftFns.extrude(faceResult.value, [
4591
4591
  0,
4592
4592
  0,
4593
4593
  thickness
@@ -4598,7 +4598,7 @@ function finalizeExternalSolid(wire, thickness, bore, geom, diagnostics) {
4598
4598
  const boreFaceResult = makeBoreFace(bore / 2);
4599
4599
  if (require_errors.isErr(boreFaceResult)) return boreFaceResult;
4600
4600
  boreScope.register(boreFaceResult.value);
4601
- const boreRaw = require_extrudeFns.extrude(boreFaceResult.value, [
4601
+ const boreRaw = require_loftFns.extrude(boreFaceResult.value, [
4602
4602
  0,
4603
4603
  0,
4604
4604
  thickness + 1
@@ -4610,7 +4610,7 @@ function finalizeExternalSolid(wire, thickness, bore, geom, diagnostics) {
4610
4610
  0,
4611
4611
  -.5
4612
4612
  ]));
4613
- const cutResult = require_booleanFns.cut(solidResult.value, boreSolid);
4613
+ const cutResult = require_primitiveFns.cut(solidResult.value, boreSolid);
4614
4614
  if (require_errors.isErr(cutResult)) return cutResult;
4615
4615
  return require_errors.ok(buildGearResult(cutResult.value, geom, diagnostics));
4616
4616
  } catch (_) {
@@ -4627,7 +4627,7 @@ function makeBoreFace(radius) {
4627
4627
  function finalizeInternalSolid(outerWire, innerToothedWire, thickness, geom, diagnostics) {
4628
4628
  const faceResult = require_surfaceBuilders.makeFace(outerWire, [innerToothedWire]);
4629
4629
  if (require_errors.isErr(faceResult)) return faceResult;
4630
- const solidResult = require_extrudeFns.extrude(faceResult.value, [
4630
+ const solidResult = require_loftFns.extrude(faceResult.value, [
4631
4631
  0,
4632
4632
  0,
4633
4633
  thickness
@@ -4785,14 +4785,14 @@ var primitives_exports = /* @__PURE__ */ require_textBlueprints.__exportAll({
4785
4785
  //#endregion
4786
4786
  //#region src/ns/booleans.ts
4787
4787
  var booleans_exports = /* @__PURE__ */ require_textBlueprints.__exportAll({
4788
- checkBoolean: () => require_primitiveFns.checkBoolean,
4788
+ checkBoolean: () => require_healingFns.checkBoolean,
4789
4789
  convexHull: () => convexHull,
4790
4790
  cut: () => cut,
4791
- cutAll: () => require_booleanFns.cutAll,
4792
- cutAllBisect: () => require_primitiveFns.cutAllBisect,
4791
+ cutAll: () => require_primitiveFns.cutAll,
4792
+ cutAllBisect: () => require_healingFns.cutAllBisect,
4793
4793
  fuse: () => fuse,
4794
- fuseAll: () => require_booleanFns.fuseAll,
4795
- fuseAllBisect: () => require_primitiveFns.fuseAllBisect,
4794
+ fuseAll: () => require_primitiveFns.fuseAll,
4795
+ fuseAllBisect: () => require_healingFns.fuseAllBisect,
4796
4796
  hull: () => hull,
4797
4797
  intersect: () => intersect,
4798
4798
  minkowski: () => minkowski,
@@ -4812,7 +4812,7 @@ var modifiers_exports = /* @__PURE__ */ require_textBlueprints.__exportAll({
4812
4812
  shell: () => shell,
4813
4813
  simplify: () => simplify,
4814
4814
  thicken: () => thicken,
4815
- variableFillet: () => require_primitiveFns.variableFillet
4815
+ variableFillet: () => require_healingFns.variableFillet
4816
4816
  });
4817
4817
  //#endregion
4818
4818
  //#region src/ns/transforms.ts
@@ -4847,7 +4847,7 @@ var measurement_exports = /* @__PURE__ */ require_textBlueprints.__exportAll({
4847
4847
  //#region src/ns/ioNs.ts
4848
4848
  var ioNs_exports = /* @__PURE__ */ require_textBlueprints.__exportAll({
4849
4849
  blueprintToDXF: () => require_importFns.blueprintToDXF,
4850
- exportAssemblySTEP: () => require_historyFns.exportAssemblySTEP,
4850
+ exportAssemblySTEP: () => require_threadFns.exportAssemblySTEP,
4851
4851
  exportDXF: () => require_importFns.exportDXF,
4852
4852
  exportGlb: () => require_importFns.exportGlb,
4853
4853
  exportGltf: () => require_importFns.exportGltf,
@@ -4880,24 +4880,24 @@ var query_exports = /* @__PURE__ */ require_textBlueprints.__exportAll({
4880
4880
  //#endregion
4881
4881
  //#region src/ns/construction.ts
4882
4882
  var construction_exports = /* @__PURE__ */ require_textBlueprints.__exportAll({
4883
- complexExtrude: () => require_extrudeFns.complexExtrude,
4883
+ complexExtrude: () => require_loftFns.complexExtrude,
4884
4884
  extrude: () => extrude,
4885
- guidedSweep: () => require_extrudeFns.guidedSweep,
4885
+ guidedSweep: () => require_loftFns.guidedSweep,
4886
4886
  loft: () => loft,
4887
- multiSectionSweep: () => require_extrudeFns.multiSectionSweep,
4887
+ multiSectionSweep: () => require_loftFns.multiSectionSweep,
4888
4888
  revolve: () => revolve,
4889
4889
  roof: () => roof,
4890
- supportExtrude: () => require_extrudeFns.supportExtrude,
4890
+ supportExtrude: () => require_loftFns.supportExtrude,
4891
4891
  surfaceFromGrid: () => surfaceFromGrid,
4892
4892
  surfaceFromImage: () => surfaceFromImage,
4893
- sweep: () => require_extrudeFns.sweep,
4894
- twistExtrude: () => require_extrudeFns.twistExtrude
4893
+ sweep: () => require_loftFns.sweep,
4894
+ twistExtrude: () => require_loftFns.twistExtrude
4895
4895
  });
4896
4896
  //#endregion
4897
4897
  //#region src/ns/patterns.ts
4898
4898
  var patterns_exports = /* @__PURE__ */ require_textBlueprints.__exportAll({
4899
- circularPattern: () => require_historyFns.circularPattern,
4900
- linearPattern: () => require_historyFns.linearPattern
4899
+ circularPattern: () => require_threadFns.circularPattern,
4900
+ linearPattern: () => require_threadFns.linearPattern
4901
4901
  });
4902
4902
  //#endregion
4903
4903
  //#region src/csg/hash.ts
@@ -5577,7 +5577,7 @@ function evalFuse(node, ctx) {
5577
5577
  if (!a.ok) return a;
5578
5578
  const b = resolveOperand(ctx, node.b, "Fuse.b");
5579
5579
  if (!b.ok) return b;
5580
- return require_booleanFns.fuse(a.value, b.value, boolOptions(node, ctx));
5580
+ return require_primitiveFns.fuse(a.value, b.value, boolOptions(node, ctx));
5581
5581
  }
5582
5582
  function evalCut(node, ctx) {
5583
5583
  if (node.a.kind === "Empty") return emptyResult$1("Cut");
@@ -5586,7 +5586,7 @@ function evalCut(node, ctx) {
5586
5586
  if (!a.ok) return a;
5587
5587
  const b = resolveOperand(ctx, node.b, "Cut.b");
5588
5588
  if (!b.ok) return b;
5589
- return require_booleanFns.cut(a.value, b.value, boolOptions(node, ctx));
5589
+ return require_primitiveFns.cut(a.value, b.value, boolOptions(node, ctx));
5590
5590
  }
5591
5591
  function evalIntersect(node, ctx) {
5592
5592
  if (node.a.kind === "Empty" || node.b.kind === "Empty") return emptyResult$1("Intersect");
@@ -5594,7 +5594,7 @@ function evalIntersect(node, ctx) {
5594
5594
  if (!a.ok) return a;
5595
5595
  const b = resolveOperand(ctx, node.b, "Intersect.b");
5596
5596
  if (!b.ok) return b;
5597
- return require_booleanFns.intersect(a.value, b.value, boolOptions(node, ctx));
5597
+ return require_primitiveFns.intersect(a.value, b.value, boolOptions(node, ctx));
5598
5598
  }
5599
5599
  function resolveAll(ctx, nodes, where) {
5600
5600
  const out = [];
@@ -5611,7 +5611,7 @@ function evalFuseAll(node, ctx) {
5611
5611
  if (non.length === 1 && non[0]) return ctx.evalNode(non[0]);
5612
5612
  const resolved = resolveAll(ctx, non, "FuseAll.operand");
5613
5613
  if (!resolved.ok) return resolved;
5614
- return require_booleanFns.fuseAll(resolved.value, boolOptions(node, ctx));
5614
+ return require_primitiveFns.fuseAll(resolved.value, boolOptions(node, ctx));
5615
5615
  }
5616
5616
  function evalCutAll(node, ctx) {
5617
5617
  if (node.base.kind === "Empty") return emptyResult$1("CutAll");
@@ -5621,7 +5621,7 @@ function evalCutAll(node, ctx) {
5621
5621
  if (!base.ok) return base;
5622
5622
  const resolved = resolveAll(ctx, tools, "CutAll.tool");
5623
5623
  if (!resolved.ok) return resolved;
5624
- return require_booleanFns.cutAll(base.value, resolved.value, boolOptions(node, ctx));
5624
+ return require_primitiveFns.cutAll(base.value, resolved.value, boolOptions(node, ctx));
5625
5625
  }
5626
5626
  //#endregion
5627
5627
  //#region src/csg/evaluators/transforms.ts
@@ -6600,12 +6600,12 @@ exports.RAD2DEG = require_constants.RAD2DEG;
6600
6600
  exports.Sketch = require_textBlueprints.Sketch;
6601
6601
  exports.Sketcher = require_drawFns.Sketcher;
6602
6602
  exports.Sketches = require_textBlueprints.Sketches;
6603
- exports.addChild = require_historyFns.addChild;
6603
+ exports.addChild = require_threadFns.addChild;
6604
6604
  exports.addHoles = require_primitiveFns.addHoles;
6605
6605
  exports.addJoint = addJoint;
6606
6606
  exports.addMate = addMate;
6607
- exports.addStep = require_historyFns.addStep;
6608
- exports.adjacentFaces = require_primitiveFns.adjacentFaces;
6607
+ exports.addStep = require_threadFns.addStep;
6608
+ exports.adjacentFaces = require_healingFns.adjacentFaces;
6609
6609
  exports.all = require_errors.all;
6610
6610
  exports.andThen = require_errors.andThen;
6611
6611
  exports.applyGlue = applyGlue;
@@ -6615,10 +6615,10 @@ exports.as2D = require_shapeTypes.as2D;
6615
6615
  exports.as3D = require_shapeTypes.as3D;
6616
6616
  exports.asTopo = require_faceFns.asTopo;
6617
6617
  exports.assignRoles = require_shapeRefFns.assignRoles;
6618
- exports.autoHeal = require_primitiveFns.autoHeal;
6618
+ exports.autoHeal = require_healingFns.autoHeal;
6619
6619
  exports.bezier = require_primitiveFns.bezier;
6620
6620
  exports.blueprintToDXF = require_importFns.blueprintToDXF;
6621
- exports.booleanPipeline = require_booleanFns.booleanPipeline;
6621
+ exports.booleanPipeline = require_primitiveFns.booleanPipeline;
6622
6622
  Object.defineProperty(exports, "booleans", {
6623
6623
  enumerable: true,
6624
6624
  get: function() {
@@ -6636,22 +6636,22 @@ exports.cast = require_faceFns.cast;
6636
6636
  exports.castShape = require_shapeTypes.castShape;
6637
6637
  exports.castShape3D = require_shapeTypes.castShape3D;
6638
6638
  exports.chamfer = chamfer;
6639
- exports.chamferDistAngleShape = require_primitiveFns.chamferDistAngle;
6640
- exports.chamferWithEvolution = require_primitiveFns.chamferWithEvolution;
6639
+ exports.chamferDistAngleShape = require_healingFns.chamferDistAngle;
6640
+ exports.chamferWithEvolution = require_healingFns.chamferWithEvolution;
6641
6641
  exports.checkAllInterferences = checkAllInterferences;
6642
- exports.checkBoolean = require_primitiveFns.checkBoolean;
6642
+ exports.checkBoolean = require_healingFns.checkBoolean;
6643
6643
  exports.checkInterference = checkInterference;
6644
6644
  exports.circle = require_primitiveFns.circle;
6645
- exports.circularPattern = require_historyFns.circularPattern;
6645
+ exports.circularPattern = require_threadFns.circularPattern;
6646
6646
  exports.classifyPointOnFace = require_faceFns.classifyPointOnFace;
6647
6647
  exports.clearMeshCache = require_meshFns.clearMeshCache;
6648
6648
  exports.clone = clone;
6649
6649
  exports.closedWire = require_shapeTypes.closedWire;
6650
6650
  exports.collect = require_errors.collect;
6651
- exports.collectShapes = require_historyFns.collectShapes;
6651
+ exports.collectShapes = require_threadFns.collectShapes;
6652
6652
  exports.colorFaces = require_shapeFns.colorFaces;
6653
6653
  exports.colorShape = require_shapeFns.colorShape;
6654
- exports.complexExtrude = require_extrudeFns.complexExtrude;
6654
+ exports.complexExtrude = require_loftFns.complexExtrude;
6655
6655
  exports.composeTransforms = require_shapeFns.composeTransforms;
6656
6656
  exports.compound = require_primitiveFns.compound;
6657
6657
  exports.compoundSketchExtrude = require_textBlueprints.compoundSketchExtrude;
@@ -6669,9 +6669,9 @@ Object.defineProperty(exports, "construction", {
6669
6669
  });
6670
6670
  exports.convexHull = convexHull;
6671
6671
  exports.cornerFinder = require_cornerFinder.cornerFinder;
6672
- exports.countNodes = require_historyFns.countNodes;
6673
- exports.createAssembly = require_historyFns.createAssembly;
6674
- exports.createAssemblyNode = require_historyFns.createAssemblyNode;
6672
+ exports.countNodes = require_threadFns.countNodes;
6673
+ exports.createAssembly = require_threadFns.createAssembly;
6674
+ exports.createAssemblyNode = require_threadFns.createAssemblyNode;
6675
6675
  exports.createBlueprint = require_blueprintFns.createBlueprint;
6676
6676
  exports.createCamera = require_cameraFns.createCamera;
6677
6677
  exports.createCompound = require_shapeTypes.createCompound;
@@ -6680,14 +6680,14 @@ exports.createDistanceQuery = require_measureFns.createDistanceQuery;
6680
6680
  exports.createEdge = require_shapeTypes.createEdge;
6681
6681
  exports.createFace = require_shapeTypes.createFace;
6682
6682
  exports.createHandle = require_shapeTypes.createHandle;
6683
- exports.createHistory = require_historyFns.createHistory;
6683
+ exports.createHistory = require_threadFns.createHistory;
6684
6684
  exports.createKernelHandle = require_shapeTypes.createKernelHandle;
6685
6685
  exports.createMeshCache = require_meshFns.createMeshCache;
6686
6686
  exports.createNamedPlane = require_planeOps.createNamedPlane;
6687
6687
  exports.createOperationRegistry = require_workerHandler.createOperationRegistry;
6688
6688
  exports.createPlane = require_planeOps.createPlane;
6689
6689
  exports.createRef = require_shapeRefFns.createRef;
6690
- exports.createRegistry = require_historyFns.createRegistry;
6690
+ exports.createRegistry = require_threadFns.createRegistry;
6691
6691
  exports.createShell = require_shapeTypes.createShell;
6692
6692
  exports.createSolid = require_shapeTypes.createSolid;
6693
6693
  exports.createTaskQueue = require_workerHandler.createTaskQueue;
@@ -6721,16 +6721,16 @@ exports.curveStartPoint = require_curveFns.curveStartPoint;
6721
6721
  exports.curveTangentAt = require_curveFns.curveTangentAt;
6722
6722
  exports.cut = cut;
6723
6723
  exports.cut2D = require_boolean2D.cut2D;
6724
- exports.cutAll = require_booleanFns.cutAll;
6725
- exports.cutAllBisect = require_primitiveFns.cutAllBisect;
6724
+ exports.cutAll = require_primitiveFns.cutAll;
6725
+ exports.cutAllBisect = require_healingFns.cutAllBisect;
6726
6726
  exports.cutBlueprints = require_boolean2D.cutBlueprints;
6727
- exports.cutWithEvolution = require_primitiveFns.cutWithEvolution;
6727
+ exports.cutWithEvolution = require_healingFns.cutWithEvolution;
6728
6728
  exports.cylinder = require_primitiveFns.cylinder;
6729
6729
  exports.defaultScorer = require_shapeRefFns.defaultScorer;
6730
6730
  exports.dequeueTask = require_workerHandler.dequeueTask;
6731
6731
  exports.describe = describe;
6732
6732
  exports.deserializeDrawing = require_drawFns.deserializeDrawing;
6733
- exports.deserializeHistory = require_historyFns.deserializeHistory;
6733
+ exports.deserializeHistory = require_threadFns.deserializeHistory;
6734
6734
  exports.deserializeShape = require_faceFns.fromBREP;
6735
6735
  exports.downcast = require_faceFns.downcast;
6736
6736
  exports.draft = draft;
@@ -6755,13 +6755,13 @@ exports.drawingIntersect = require_drawFns.drawingIntersect;
6755
6755
  exports.drawingToSketchOnPlane = require_drawFns.drawingToSketchOnPlane;
6756
6756
  exports.drill = drill;
6757
6757
  exports.edgeFinder = require_helpers.edgeFinder;
6758
- exports.edgesOfFace = require_primitiveFns.edgesOfFace;
6758
+ exports.edgesOfFace = require_healingFns.edgesOfFace;
6759
6759
  exports.ellipse = require_primitiveFns.ellipse;
6760
6760
  exports.ellipseArc = require_primitiveFns.ellipseArc;
6761
6761
  exports.ellipsoid = require_primitiveFns.ellipsoid;
6762
6762
  exports.enqueueTask = require_workerHandler.enqueueTask;
6763
6763
  exports.err = require_errors.err;
6764
- exports.exportAssemblySTEP = require_historyFns.exportAssemblySTEP;
6764
+ exports.exportAssemblySTEP = require_threadFns.exportAssemblySTEP;
6765
6765
  exports.exportDXF = require_importFns.exportDXF;
6766
6766
  exports.exportGlb = require_importFns.exportGlb;
6767
6767
  exports.exportGltf = require_importFns.exportGltf;
@@ -6772,14 +6772,14 @@ exports.exportSTEPConfigured = require_importFns.exportSTEPConfigured;
6772
6772
  exports.exportSTL = require_meshFns.exportSTL;
6773
6773
  exports.exportThreeMF = require_importFns.exportThreeMF;
6774
6774
  exports.extrude = extrude;
6775
- exports.extrudeAll = require_extrudeFns.extrudeAll;
6775
+ exports.extrudeAll = require_loftFns.extrudeAll;
6776
6776
  exports.face = require_primitiveFns.face;
6777
6777
  exports.faceAxis = require_faceFns.faceAxis;
6778
6778
  exports.faceCenter = require_faceFns.faceCenter;
6779
6779
  exports.faceFinder = require_helpers.faceFinder;
6780
6780
  exports.faceGeomType = require_faceFns.faceGeomType;
6781
6781
  exports.faceOrientation = require_faceFns.faceOrientation;
6782
- exports.facesOfEdge = require_primitiveFns.facesOfEdge;
6782
+ exports.facesOfEdge = require_healingFns.facesOfEdge;
6783
6783
  exports.fieldBoolean = fieldBoolean;
6784
6784
  exports.fieldContour = fieldContour;
6785
6785
  exports.fieldOffset = fieldOffset;
@@ -6788,12 +6788,12 @@ exports.fieldShell = fieldShell;
6788
6788
  exports.fill = require_surfaceBuilders.fill;
6789
6789
  exports.filledFace = require_primitiveFns.filledFace;
6790
6790
  exports.fillet = fillet;
6791
- exports.filletWithEvolution = require_primitiveFns.filletWithEvolution;
6791
+ exports.filletWithEvolution = require_healingFns.filletWithEvolution;
6792
6792
  exports.findFacesByTag = require_shapeFns.findFacesByTag;
6793
- exports.findNode = require_historyFns.findNode;
6794
- exports.findStep = require_historyFns.findStep;
6795
- exports.fixSelfIntersection = require_primitiveFns.fixSelfIntersection;
6796
- exports.fixShape = require_primitiveFns.fixShape;
6793
+ exports.findNode = require_threadFns.findNode;
6794
+ exports.findStep = require_threadFns.findStep;
6795
+ exports.fixSelfIntersection = require_healingFns.fixSelfIntersection;
6796
+ exports.fixShape = require_healingFns.fixShape;
6797
6797
  exports.flatMap = require_errors.flatMap;
6798
6798
  exports.flatten = require_errors.flatten;
6799
6799
  exports.flipFaceOrientation = require_faceFns.flipFaceOrientation;
@@ -6807,10 +6807,10 @@ exports.fromKernelVec = fromKernelVec;
6807
6807
  exports.fromNullable = require_errors.fromNullable;
6808
6808
  exports.fuse = fuse;
6809
6809
  exports.fuse2D = require_boolean2D.fuse2D;
6810
- exports.fuseAll = require_booleanFns.fuseAll;
6811
- exports.fuseAllBisect = require_primitiveFns.fuseAllBisect;
6810
+ exports.fuseAll = require_primitiveFns.fuseAll;
6811
+ exports.fuseAllBisect = require_healingFns.fuseAllBisect;
6812
6812
  exports.fuseBlueprints = require_boolean2D.fuseBlueprints;
6813
- exports.fuseWithEvolution = require_primitiveFns.fuseWithEvolution;
6813
+ exports.fuseWithEvolution = require_healingFns.fuseWithEvolution;
6814
6814
  exports.gearGeometry = gearGeometry;
6815
6815
  exports.getActiveVoxelId = getActiveVoxelId;
6816
6816
  exports.getBounds = require_topologyQueryFns.getBounds;
@@ -6825,12 +6825,12 @@ exports.getFaceTags = require_shapeFns.getFaceTags;
6825
6825
  exports.getFaces = require_topologyQueryFns.getFaces;
6826
6826
  exports.getFont = require_textBlueprints.getFont;
6827
6827
  exports.getHashCode = require_shapeFns.getHashCode;
6828
- exports.getHistoryShape = require_historyFns.getShape;
6828
+ exports.getHistoryShape = require_threadFns.getShape;
6829
6829
  exports.getKernel = require_shapeTypes.getKernel;
6830
6830
  exports.getKernelCapabilities = require_shapeTypes.getKernelCapabilities;
6831
6831
  exports.getKernelTier = require_shapeTypes.getKernelTier;
6832
- exports.getNurbsCurveData = require_primitiveFns.getNurbsCurveData;
6833
- exports.getNurbsSurfaceData = require_primitiveFns.getNurbsSurfaceData;
6832
+ exports.getNurbsCurveData = require_healingFns.getNurbsCurveData;
6833
+ exports.getNurbsSurfaceData = require_healingFns.getNurbsSurfaceData;
6834
6834
  exports.getOrientation = require_curveFns.getOrientation;
6835
6835
  exports.getOrientation2D = require_blueprintFns.getOrientation2D;
6836
6836
  exports.getPerformanceStats = require_shapeTypes.getPerformanceStats;
@@ -6844,11 +6844,11 @@ exports.getTagMetadata = require_shapeFns.getTagMetadata;
6844
6844
  exports.getVertices = require_topologyQueryFns.getVertices;
6845
6845
  exports.getVoxel = getVoxel;
6846
6846
  exports.getWires = require_topologyQueryFns.getWires;
6847
- exports.guidedSweep = require_extrudeFns.guidedSweep;
6847
+ exports.guidedSweep = require_loftFns.guidedSweep;
6848
6848
  exports.heal = heal;
6849
- exports.healFace = require_primitiveFns.healFace;
6850
- exports.healSolid = require_primitiveFns.healSolid;
6851
- exports.healWire = require_primitiveFns.healWire;
6849
+ exports.healFace = require_healingFns.healFace;
6850
+ exports.healSolid = require_healingFns.healSolid;
6851
+ exports.healWire = require_healingFns.healWire;
6852
6852
  exports.helix = require_primitiveFns.helix;
6853
6853
  exports.hull = hull;
6854
6854
  exports.importDXF = importDXF;
@@ -6869,7 +6869,7 @@ exports.interpolateCurve = require_curveFns.interpolateCurve;
6869
6869
  exports.intersect = intersect;
6870
6870
  exports.intersect2D = require_boolean2D.intersect2D;
6871
6871
  exports.intersectBlueprints = require_boolean2D.intersectBlueprints;
6872
- exports.intersectWithEvolution = require_primitiveFns.intersectWithEvolution;
6872
+ exports.intersectWithEvolution = require_healingFns.intersectWithEvolution;
6873
6873
  exports.invalidateShapeCache = require_topologyQueryFns.invalidateShapeCache;
6874
6874
  Object.defineProperty(exports, "io", {
6875
6875
  enumerable: true,
@@ -6930,10 +6930,10 @@ exports.kernelError = require_errors.kernelError;
6930
6930
  exports.latticeInfill = latticeInfill;
6931
6931
  exports.latticeInfillShape = latticeInfillShape;
6932
6932
  exports.line = require_primitiveFns.line;
6933
- exports.linearPattern = require_historyFns.linearPattern;
6933
+ exports.linearPattern = require_threadFns.linearPattern;
6934
6934
  exports.loadFont = require_textBlueprints.loadFont;
6935
6935
  exports.loft = loft;
6936
- exports.loftAll = require_textBlueprints.loftAll;
6936
+ exports.loftAll = require_loftFns.loftAll;
6937
6937
  exports.makeBaseBox = require_drawFns.makeBaseBox;
6938
6938
  exports.makeExternalGear = makeExternalGear;
6939
6939
  exports.makeInternalGear = makeInternalGear;
@@ -6976,9 +6976,9 @@ Object.defineProperty(exports, "modifiers", {
6976
6976
  return modifiers_exports;
6977
6977
  }
6978
6978
  });
6979
- exports.modifyStep = require_historyFns.modifyStep;
6979
+ exports.modifyStep = require_threadFns.modifyStep;
6980
6980
  exports.moduleInitError = require_errors.moduleInitError;
6981
- exports.multiSectionSweep = require_extrudeFns.multiSectionSweep;
6981
+ exports.multiSectionSweep = require_loftFns.multiSectionSweep;
6982
6982
  exports.normalAt = require_faceFns.normalAt;
6983
6983
  exports.offset = offset;
6984
6984
  exports.offsetFace = require_primitiveFns.offsetFace;
@@ -7010,7 +7010,7 @@ exports.polygon = require_primitiveFns.polygon;
7010
7010
  exports.polyhedron = polyhedron;
7011
7011
  exports.polysideInnerRadius = require_drawFns.polysideInnerRadius;
7012
7012
  exports.polysidesBlueprint = require_boolean2D.polysidesBlueprint;
7013
- exports.positionOnCurve = require_primitiveFns.positionOnCurve;
7013
+ exports.positionOnCurve = require_healingFns.positionOnCurve;
7014
7014
  exports.prewarm = require_shapeTypes.prewarm;
7015
7015
  Object.defineProperty(exports, "primitives", {
7016
7016
  enumerable: true,
@@ -7032,15 +7032,15 @@ exports.rectangularPattern = rectangularPattern;
7032
7032
  exports.registerHandler = require_workerHandler.registerHandler;
7033
7033
  exports.registerKernel = require_shapeTypes.registerKernel;
7034
7034
  exports.registerKernelTier = require_shapeTypes.registerKernelTier;
7035
- exports.registerOperation = require_historyFns.registerOperation;
7036
- exports.registerShape = require_historyFns.registerShape;
7035
+ exports.registerOperation = require_threadFns.registerOperation;
7036
+ exports.registerShape = require_threadFns.registerShape;
7037
7037
  exports.registerVoxel = registerVoxel;
7038
7038
  exports.rejectAll = require_workerHandler.rejectAll;
7039
- exports.removeChild = require_historyFns.removeChild;
7039
+ exports.removeChild = require_threadFns.removeChild;
7040
7040
  exports.removeHolesFromFace = require_faceFns.removeHolesFromFace;
7041
7041
  exports.repairMesh = repairMesh;
7042
- exports.replayFrom = require_historyFns.replayFrom;
7043
- exports.replayHistory = require_historyFns.replayHistory;
7042
+ exports.replayFrom = require_threadFns.replayFrom;
7043
+ exports.replayHistory = require_threadFns.replayHistory;
7044
7044
  exports.resetDisposalStats = require_shapeTypes.resetDisposalStats;
7045
7045
  exports.resetPerformanceStats = require_shapeTypes.resetPerformanceStats;
7046
7046
  exports.resize = require_shapeFns.resize;
@@ -7078,7 +7078,7 @@ exports.sdfSweep = sweep;
7078
7078
  exports.sdfTorus = torus;
7079
7079
  exports.section = section;
7080
7080
  exports.sectionToFace = sectionToFace;
7081
- exports.serializeHistory = require_historyFns.serializeHistory;
7081
+ exports.serializeHistory = require_threadFns.serializeHistory;
7082
7082
  exports.setJointValue = setJointValue;
7083
7083
  exports.setShapeOrigin = require_shapeFns.setShapeOrigin;
7084
7084
  exports.setTagMetadata = require_shapeFns.setTagMetadata;
@@ -7086,11 +7086,11 @@ exports.sewShells = require_primitiveFns.sewShells;
7086
7086
  exports.shape = shape;
7087
7087
  exports.shapeToMeshInput = shapeToMeshInput;
7088
7088
  exports.shapeType = require_faceFns.shapeType;
7089
- exports.sharedEdges = require_primitiveFns.sharedEdges;
7089
+ exports.sharedEdges = require_healingFns.sharedEdges;
7090
7090
  exports.shell = shell;
7091
7091
  exports.shellMesh = shellMesh;
7092
7092
  exports.shellShape = shellShape;
7093
- exports.shellWithEvolution = require_primitiveFns.shellWithEvolution;
7093
+ exports.shellWithEvolution = require_healingFns.shellWithEvolution;
7094
7094
  exports.simplify = simplify;
7095
7095
  exports.sketchCircle = require_drawFns.sketchCircle;
7096
7096
  exports.sketchEllipse = require_drawFns.sketchEllipse;
@@ -7112,20 +7112,20 @@ exports.sketchWires = require_textBlueprints.sketchWires;
7112
7112
  exports.sketcherStateError = require_errors.sketcherStateError;
7113
7113
  exports.slice = slice;
7114
7114
  exports.solid = require_primitiveFns.solid;
7115
- exports.solidFromShell = require_primitiveFns.solidFromShell;
7115
+ exports.solidFromShell = require_healingFns.solidFromShell;
7116
7116
  exports.solveAssembly = solveAssembly;
7117
7117
  exports.sphere = require_primitiveFns.sphere;
7118
7118
  exports.split = split;
7119
- exports.stepCount = require_historyFns.stepCount;
7120
- exports.stepsFrom = require_historyFns.stepsFrom;
7119
+ exports.stepCount = require_threadFns.stepCount;
7120
+ exports.stepsFrom = require_threadFns.stepsFrom;
7121
7121
  exports.stretch2D = require_blueprintFns.stretch2D;
7122
7122
  exports.subFace = require_primitiveFns.subFace;
7123
- exports.supportExtrude = require_extrudeFns.supportExtrude;
7123
+ exports.supportExtrude = require_loftFns.supportExtrude;
7124
7124
  exports.supportsConstraintSketch = require_shapeTypes.supportsConstraintSketch;
7125
7125
  exports.supportsProjection = require_shapeTypes.supportsProjection;
7126
7126
  exports.surfaceFromGrid = surfaceFromGrid;
7127
7127
  exports.surfaceFromImage = surfaceFromImage;
7128
- exports.sweep = require_extrudeFns.sweep;
7128
+ exports.sweep = require_loftFns.sweep;
7129
7129
  exports.tagFaces = require_shapeFns.tagFaces;
7130
7130
  exports.tangentArc = require_primitiveFns.tangentArc;
7131
7131
  exports.tap = require_errors.tap;
@@ -7133,13 +7133,14 @@ exports.tapErr = require_errors.tapErr;
7133
7133
  exports.textBlueprints = require_textBlueprints.textBlueprints;
7134
7134
  exports.textMetrics = require_textMetrics.textMetrics;
7135
7135
  exports.thicken = thicken;
7136
+ exports.thread = require_threadFns.thread;
7136
7137
  exports.threePointArc = require_primitiveFns.threePointArc;
7137
7138
  exports.toBREP = toBREP;
7138
- exports.toBufferGeometryData = require_primitiveFns.toBufferGeometryData;
7139
- exports.toGroupedBufferGeometryData = require_primitiveFns.toGroupedBufferGeometryData;
7139
+ exports.toBufferGeometryData = require_healingFns.toBufferGeometryData;
7140
+ exports.toGroupedBufferGeometryData = require_healingFns.toGroupedBufferGeometryData;
7140
7141
  exports.toKernelVec = toKernelVec;
7141
- exports.toLODGeometryData = require_primitiveFns.toLODGeometryData;
7142
- exports.toLineGeometryData = require_primitiveFns.toLineGeometryData;
7142
+ exports.toLODGeometryData = require_healingFns.toLODGeometryData;
7143
+ exports.toLineGeometryData = require_healingFns.toLineGeometryData;
7143
7144
  exports.toSVGPathD = require_blueprintFns.toSVGPathD;
7144
7145
  exports.toVec2 = require_types.toVec2;
7145
7146
  exports.toVec3 = require_types.toVec3;
@@ -7158,22 +7159,22 @@ exports.translateDrawing = require_drawFns.translateDrawing;
7158
7159
  exports.translatePlane = require_planeOps.translatePlane;
7159
7160
  exports.tryCatch = require_errors.tryCatch;
7160
7161
  exports.tryCatchAsync = require_errors.tryCatchAsync;
7161
- exports.twistExtrude = require_extrudeFns.twistExtrude;
7162
+ exports.twistExtrude = require_loftFns.twistExtrude;
7162
7163
  exports.typeCastError = require_errors.typeCastError;
7163
- exports.undoLast = require_historyFns.undoLast;
7164
+ exports.undoLast = require_threadFns.undoLast;
7164
7165
  exports.unsupportedError = require_errors.unsupportedError;
7165
7166
  exports.unwrap = require_errors.unwrap;
7166
7167
  exports.unwrapErr = require_errors.unwrapErr;
7167
7168
  exports.unwrapOr = require_errors.unwrapOr;
7168
7169
  exports.unwrapOrElse = require_errors.unwrapOrElse;
7169
- exports.updateNode = require_historyFns.updateNode;
7170
+ exports.updateNode = require_threadFns.updateNode;
7170
7171
  exports.updateRoles = require_shapeRefFns.updateRoles;
7171
7172
  exports.uvBounds = require_faceFns.uvBounds;
7172
7173
  exports.uvCoordinates = require_faceFns.uvCoordinates;
7173
7174
  exports.validSolid = require_shapeTypes.validSolid;
7174
7175
  exports.validatePlanetary = validatePlanetary;
7175
7176
  exports.validationError = require_errors.validationError;
7176
- exports.variableFillet = require_primitiveFns.variableFillet;
7177
+ exports.variableFillet = require_healingFns.variableFillet;
7177
7178
  exports.vecAdd = require_vecOps.vecAdd;
7178
7179
  exports.vecAngle = require_vecOps.vecAngle;
7179
7180
  exports.vecCross = require_vecOps.vecCross;
@@ -7193,19 +7194,19 @@ exports.vecSub = require_vecOps.vecSub;
7193
7194
  exports.vertex = require_primitiveFns.vertex;
7194
7195
  exports.vertexFinder = vertexFinder;
7195
7196
  exports.vertexPosition = require_topologyQueryFns.vertexPosition;
7196
- exports.verticesOfEdge = require_primitiveFns.verticesOfEdge;
7197
+ exports.verticesOfEdge = require_healingFns.verticesOfEdge;
7197
7198
  exports.voxelBoolean = voxelBoolean;
7198
7199
  exports.voxelBooleanField = voxelBooleanField;
7199
7200
  exports.voxelBooleanFieldShapes = voxelBooleanFieldShapes;
7200
7201
  exports.voxelBooleanShapes = voxelBooleanShapes;
7201
7202
  exports.voxelField = voxelField;
7202
7203
  exports.voxelFieldFromShape = voxelFieldFromShape;
7203
- exports.walkAssembly = require_historyFns.walkAssembly;
7204
+ exports.walkAssembly = require_threadFns.walkAssembly;
7204
7205
  exports.windingNumbers = windingNumbers;
7205
7206
  exports.wire = require_primitiveFns.wire;
7206
7207
  exports.wireFinder = require_helpers.wireFinder;
7207
7208
  exports.wireLoop = require_primitiveFns.wireLoop;
7208
- exports.wiresOfFace = require_primitiveFns.wiresOfFace;
7209
+ exports.wiresOfFace = require_healingFns.wiresOfFace;
7209
7210
  exports.withKernel = require_shapeTypes.withKernel;
7210
7211
  exports.withKernelDir = withKernelDir;
7211
7212
  exports.withKernelPnt = withKernelPnt;