brepjs 18.65.0 → 18.66.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 (89) hide show
  1. package/dist/2d.cjs +6 -6
  2. package/dist/2d.js +6 -6
  3. package/dist/{blueprint-smNMCQA1.cjs → blueprint-B7iZ_BZT.cjs} +5 -5
  4. package/dist/{blueprint-1wDhBDmB.js → blueprint-DEtjb9pL.js} +5 -5
  5. package/dist/{blueprintFns-DkHfzzv0.cjs → blueprintFns-Bf5TA7pN.cjs} +2 -2
  6. package/dist/{blueprintFns-DeCDdsDz.js → blueprintFns-Bmd98FWr.js} +2 -2
  7. package/dist/{blueprintSketcher-Bpd7nMHt.cjs → blueprintSketcher-Bj39XtSt.cjs} +3 -3
  8. package/dist/{blueprintSketcher-BL85kdgo.js → blueprintSketcher-nuOhijiI.js} +3 -3
  9. package/dist/{boolean2D-CHu_3RIB.cjs → boolean2D-BfDgoaT7.cjs} +4 -4
  10. package/dist/{boolean2D-CWgORqab.js → boolean2D-DWbUmSlH.js} +4 -4
  11. package/dist/{booleanFns-ogc1TMXG.js → booleanFns-CN5sVkm6.js} +4 -4
  12. package/dist/{booleanFns-C9olM-r4.cjs → booleanFns-D-wTRioN.cjs} +4 -4
  13. package/dist/brepjs.cjs +33 -25
  14. package/dist/brepjs.js +26 -26
  15. package/dist/{cameraFns-9SLctf9O.js → cameraFns-BTkg-7od.js} +2 -2
  16. package/dist/{cameraFns-Za6Rsnmg.cjs → cameraFns-BXAgEEUR.cjs} +2 -2
  17. package/dist/core.cjs +1 -1
  18. package/dist/core.js +1 -1
  19. package/dist/{cornerFinder-CUhZgX6X.cjs → cornerFinder-0DmLYmdL.cjs} +1 -1
  20. package/dist/{cornerFinder-Cchldpsv.js → cornerFinder-C_w8TN9u.js} +1 -1
  21. package/dist/{curveFns-DH5NpaKO.js → curveFns-BIj3b16T.js} +1 -1
  22. package/dist/{curveFns-DR68aqxR.cjs → curveFns-BlfkX_gl.cjs} +1 -1
  23. package/dist/{drawFns-Cq6bAjFC.js → drawFns-CNOti33I.js} +12 -12
  24. package/dist/{drawFns-DPE6EU_v.cjs → drawFns-CluLvJOJ.cjs} +12 -12
  25. package/dist/{extrudeFns-DZEN4PPg.js → extrudeFns-CaBzNeiI.js} +1 -1
  26. package/dist/{extrudeFns-yfUN1m7e.cjs → extrudeFns-DYn4rntp.cjs} +1 -1
  27. package/dist/{faceFns-_m0px2ug.cjs → faceFns-7g1e493t.cjs} +2 -2
  28. package/dist/{faceFns-Qrz3lIDv.js → faceFns-Bd3zdzrq.js} +2 -2
  29. package/dist/{helpers-Bk538__I.js → helpers-DQ634U2V.js} +6 -6
  30. package/dist/{helpers-BXiYZ2Dl.cjs → helpers-qJvSmWhx.cjs} +6 -6
  31. package/dist/{historyFns-BJKkvynn.js → historyFns-C6TSTHV4.js} +4 -4
  32. package/dist/{historyFns-B-R48Dze.cjs → historyFns-CyXK3XjV.cjs} +4 -4
  33. package/dist/{importFns-D8EPeKcC.cjs → importFns-DK85PN5U.cjs} +2 -2
  34. package/dist/{importFns-Cid57qQ1.js → importFns-DpXocvJY.js} +2 -2
  35. package/dist/index.d.ts +5 -1
  36. package/dist/io.cjs +2 -2
  37. package/dist/io.js +2 -2
  38. package/dist/kernel/brepkit/brepkitAdapter.d.ts +2 -0
  39. package/dist/kernel/capabilities.d.ts +35 -0
  40. package/dist/kernel/index.d.ts +30 -0
  41. package/dist/kernel/interfaces/core.d.ts +15 -0
  42. package/dist/kernel/manifold/manifoldAdapter.d.ts +9 -0
  43. package/dist/kernel/occt/defaultAdapter.d.ts +2 -0
  44. package/dist/kernel/occtWasm/occtWasmAdapter.cjs +1 -1
  45. package/dist/kernel/occtWasm/occtWasmAdapter.d.ts +2 -0
  46. package/dist/kernel/occtWasm/occtWasmAdapter.js +1 -1
  47. package/dist/kernel/quality.d.ts +29 -0
  48. package/dist/{measureFns-CqSFeI4R.cjs → measureFns-LAuiTxIU.cjs} +3 -3
  49. package/dist/{measureFns-95m36tbx.js → measureFns-Pxrwu7Nl.js} +3 -3
  50. package/dist/measurement.cjs +1 -1
  51. package/dist/measurement.js +1 -1
  52. package/dist/{meshFns-CR8dRmoo.cjs → meshFns-0wmojo6X.cjs} +12 -6
  53. package/dist/{meshFns-BCggXbKk.js → meshFns-BYLqZcfo.js} +12 -6
  54. package/dist/{occtWasmAdapter-BuIYbIwy.cjs → occtWasmAdapter-BPu07Zxg.cjs} +33 -0
  55. package/dist/{occtWasmAdapter-B0PIezOZ.js → occtWasmAdapter-Ctfykwr2.js} +22 -1
  56. package/dist/operations.cjs +2 -2
  57. package/dist/operations.js +2 -2
  58. package/dist/{primitiveFns-Fy3scr-a.js → primitiveFns-BJ5PwAOM.js} +7 -7
  59. package/dist/{primitiveFns-DFsImECE.cjs → primitiveFns-BVpOZIFy.cjs} +7 -7
  60. package/dist/projection.cjs +1 -1
  61. package/dist/projection.js +1 -1
  62. package/dist/query.cjs +2 -2
  63. package/dist/query.js +2 -2
  64. package/dist/{shapeFns-DNqkQ2yJ.cjs → shapeFns-B15j-oke.cjs} +2 -2
  65. package/dist/{shapeFns-Ct1lekCK.js → shapeFns-Bf3fSMLC.js} +2 -2
  66. package/dist/shapeRef.cjs +1 -1
  67. package/dist/shapeRef.js +1 -1
  68. package/dist/{shapeRefFns-CZqzvMgX.js → shapeRefFns-C1nNU4at.js} +4 -4
  69. package/dist/{shapeRefFns-BB9iWqZb.cjs → shapeRefFns-Cu3aH-S0.cjs} +4 -4
  70. package/dist/{shapeTypes-DAhE_41P.cjs → shapeTypes-C6gF9fGL.cjs} +149 -1
  71. package/dist/{shapeTypes-C-32Klnb.js → shapeTypes-KIrwDkmg.js} +108 -2
  72. package/dist/sketching.cjs +3 -3
  73. package/dist/sketching.js +3 -3
  74. package/dist/{solidBuilders-B-gb9ZsJ.js → solidBuilders-CN91DyTF.js} +2 -2
  75. package/dist/{solidBuilders-iapbn6CO.cjs → solidBuilders-Ii8I669S.cjs} +2 -2
  76. package/dist/{surfaceBuilders-B9kzwe0E.cjs → surfaceBuilders-DSgKSrN-.cjs} +2 -2
  77. package/dist/{surfaceBuilders-Cwecm13F.js → surfaceBuilders-VOedQa9z.js} +2 -2
  78. package/dist/text.cjs +2 -2
  79. package/dist/text.js +2 -2
  80. package/dist/{textBlueprints-7KWxP1zT.cjs → textBlueprints-BROqnpya.cjs} +7 -7
  81. package/dist/{textBlueprints-CyIv54Ac.js → textBlueprints-k0trqpEg.js} +7 -7
  82. package/dist/{textMetrics-D740OLnV.js → textMetrics-DnOTH1ld.js} +1 -1
  83. package/dist/{textMetrics-BXoJfZKn.cjs → textMetrics-dS4ldSza.cjs} +1 -1
  84. package/dist/topology/meshFns.d.ts +5 -5
  85. package/dist/topology.cjs +7 -7
  86. package/dist/topology.js +7 -7
  87. package/dist/{topologyQueryFns-C0yUIRDE.js → topologyQueryFns-Bkr82t7v.js} +1 -1
  88. package/dist/{topologyQueryFns-CBVVRWvE.cjs → topologyQueryFns-CseKGFog.cjs} +1 -1
  89. package/package.json +1 -1
@@ -1,13 +1,13 @@
1
- import { Z as getKernel, _ as isSolid, c as createSolid, h as isShape3D, p as isFace, r as castShapeWithKnownType, t as castShape, x as isClosedWire, y as isWire } from "./shapeTypes-C-32Klnb.js";
1
+ import { Z as getKernel, _ as isSolid, c as createSolid, h as isShape3D, p as isFace, r as castShapeWithKnownType, t as castShape, x as isClosedWire, y as isWire } from "./shapeTypes-KIrwDkmg.js";
2
2
  import { A as ok, T as isOk, b as err, d as validationError, i as kernelError, l as typeCastError, t as BrepErrorCode, v as andThen, w as isErr } from "./errors-DNWJsfVU.js";
3
- import { c as getFaces, i as getCachedIsValid, l as getOrCreateCache, m as invalidateShapeCache, p as getWires, s as getEdges } from "./topologyQueryFns-C0yUIRDE.js";
3
+ import { c as getFaces, i as getCachedIsValid, l as getOrCreateCache, m as invalidateShapeCache, p as getWires, s as getEdges } from "./topologyQueryFns-Bkr82t7v.js";
4
4
  import { n as HASH_CODE_MAX, t as DEG2RAD } from "./constants-ITRzCnCp.js";
5
- import { _ as downcast } from "./faceFns-Qrz3lIDv.js";
6
- import { _ as propagateAllMetadata, g as collectInputFaceHashes, h as translate } from "./shapeFns-Ct1lekCK.js";
5
+ import { _ as downcast } from "./faceFns-Bd3zdzrq.js";
6
+ import { _ as propagateAllMetadata, g as collectInputFaceHashes, h as translate } from "./shapeFns-Bf3fSMLC.js";
7
7
  import { t as firstOrThrow } from "./arrayAccess-DrUGPADn.js";
8
- import { _ as makeThreePointArc, a as makeNonPlanarFace, c as makeBSplineApproximation, d as makeCircle, f as makeEllipse, g as makeTangentArc, h as makeLine, i as makeNewFaceWithinFace, m as makeHelix, o as makePolygon, p as makeEllipseArc, r as makeFace, s as assembleWire, t as addHolesInFace, u as makeBezierCurve } from "./surfaceBuilders-Cwecm13F.js";
9
- import { a as fuseAll, i as fuse, n as cut, r as cutAll } from "./booleanFns-ogc1TMXG.js";
10
- import { a as makeOffset, c as makeTorus, i as makeEllipsoid, l as makeVertex, n as makeCone, o as makeSolid, r as makeCylinder, s as makeSphere, t as makeCompound, u as weldShellsAndFaces } from "./solidBuilders-B-gb9ZsJ.js";
8
+ import { _ as makeThreePointArc, a as makeNonPlanarFace, c as makeBSplineApproximation, d as makeCircle, f as makeEllipse, g as makeTangentArc, h as makeLine, i as makeNewFaceWithinFace, m as makeHelix, o as makePolygon, p as makeEllipseArc, r as makeFace, s as assembleWire, t as addHolesInFace, u as makeBezierCurve } from "./surfaceBuilders-VOedQa9z.js";
9
+ import { a as fuseAll, i as fuse, n as cut, r as cutAll } from "./booleanFns-CN5sVkm6.js";
10
+ import { a as makeOffset, c as makeTorus, i as makeEllipsoid, l as makeVertex, n as makeCone, o as makeSolid, r as makeCylinder, s as makeSphere, t as makeCompound, u as weldShellsAndFaces } from "./solidBuilders-CN91DyTF.js";
11
11
  //#region src/topology/threeHelpers.ts
12
12
  /**
13
13
  * Convert a ShapeMesh into BufferGeometry-compatible typed arrays.
@@ -1,13 +1,13 @@
1
- const require_shapeTypes = require("./shapeTypes-DAhE_41P.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-C6gF9fGL.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-CBVVRWvE.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-CseKGFog.cjs");
4
4
  const require_constants = require("./constants-BOVyEYGH.cjs");
5
- const require_faceFns = require("./faceFns-_m0px2ug.cjs");
6
- const require_shapeFns = require("./shapeFns-DNqkQ2yJ.cjs");
5
+ const require_faceFns = require("./faceFns-7g1e493t.cjs");
6
+ const require_shapeFns = require("./shapeFns-B15j-oke.cjs");
7
7
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
8
- const require_surfaceBuilders = require("./surfaceBuilders-B9kzwe0E.cjs");
9
- const require_booleanFns = require("./booleanFns-C9olM-r4.cjs");
10
- const require_solidBuilders = require("./solidBuilders-iapbn6CO.cjs");
8
+ const require_surfaceBuilders = require("./surfaceBuilders-DSgKSrN-.cjs");
9
+ const require_booleanFns = require("./booleanFns-D-wTRioN.cjs");
10
+ const require_solidBuilders = require("./solidBuilders-Ii8I669S.cjs");
11
11
  //#region src/topology/threeHelpers.ts
12
12
  /**
13
13
  * Convert a ShapeMesh into BufferGeometry-compatible typed arrays.
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_cameraFns = require("./cameraFns-Za6Rsnmg.cjs");
2
+ const require_cameraFns = require("./cameraFns-BXAgEEUR.cjs");
3
3
  exports.PROJECTION_PLANES = require_cameraFns.PROJECTION_PLANES;
4
4
  exports.cameraFromPlane = require_cameraFns.cameraFromPlane;
5
5
  exports.cameraLookAt = require_cameraFns.cameraLookAt;
@@ -1,2 +1,2 @@
1
- import { a as makeProjectedEdges, i as projectEdges, n as cameraLookAt, o as PROJECTION_PLANES, r as createCamera, s as isProjectionPlane, t as cameraFromPlane } from "./cameraFns-9SLctf9O.js";
1
+ import { a as makeProjectedEdges, i as projectEdges, n as cameraLookAt, o as PROJECTION_PLANES, r as createCamera, s as isProjectionPlane, t as cameraFromPlane } from "./cameraFns-BTkg-7od.js";
2
2
  export { PROJECTION_PLANES, cameraFromPlane, cameraLookAt, createCamera, isProjectionPlane, makeProjectedEdges, projectEdges };
package/dist/query.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_helpers = require("./helpers-BXiYZ2Dl.cjs");
3
- const require_cornerFinder = require("./cornerFinder-CUhZgX6X.cjs");
2
+ const require_helpers = require("./helpers-qJvSmWhx.cjs");
3
+ const require_cornerFinder = require("./cornerFinder-0DmLYmdL.cjs");
4
4
  exports.cornerFinder = require_cornerFinder.cornerFinder;
5
5
  exports.edgeFinder = require_helpers.edgeFinder;
6
6
  exports.faceFinder = require_helpers.faceFinder;
package/dist/query.js CHANGED
@@ -1,3 +1,3 @@
1
- import { n as edgeFinder, r as faceFinder, t as getSingleFace } from "./helpers-Bk538__I.js";
2
- import { t as cornerFinder } from "./cornerFinder-Cchldpsv.js";
1
+ import { n as edgeFinder, r as faceFinder, t as getSingleFace } from "./helpers-DQ634U2V.js";
2
+ import { t as cornerFinder } from "./cornerFinder-C_w8TN9u.js";
3
3
  export { cornerFinder, edgeFinder, faceFinder, getSingleFace };
@@ -1,6 +1,6 @@
1
- const require_shapeTypes = require("./shapeTypes-DAhE_41P.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-C6gF9fGL.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-CBVVRWvE.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-CseKGFog.cjs");
4
4
  const require_constants = require("./constants-BOVyEYGH.cjs");
5
5
  //#region src/topology/metadata/originTrackingFns.ts
6
6
  /**
@@ -1,6 +1,6 @@
1
- import { Z as getKernel, t as castShape } from "./shapeTypes-C-32Klnb.js";
1
+ import { Z as getKernel, t as castShape } from "./shapeTypes-KIrwDkmg.js";
2
2
  import { A as ok, b as err, d as validationError, t as BrepErrorCode } from "./errors-DNWJsfVU.js";
3
- import { C as kernelCall, c as getFaces, l as getOrCreateCache, r as getCacheEntry, w as kernelCallRaw } from "./topologyQueryFns-C0yUIRDE.js";
3
+ import { C as kernelCall, c as getFaces, l as getOrCreateCache, r as getCacheEntry, w as kernelCallRaw } from "./topologyQueryFns-Bkr82t7v.js";
4
4
  import { n as HASH_CODE_MAX, t as DEG2RAD } from "./constants-ITRzCnCp.js";
5
5
  //#region src/topology/metadata/originTrackingFns.ts
6
6
  /**
package/dist/shapeRef.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_shapeRefFns = require("./shapeRefFns-BB9iWqZb.cjs");
2
+ const require_shapeRefFns = require("./shapeRefFns-Cu3aH-S0.cjs");
3
3
  exports.assignRoles = require_shapeRefFns.assignRoles;
4
4
  exports.captureHint = require_shapeRefFns.captureHint;
5
5
  exports.createRef = require_shapeRefFns.createRef;
package/dist/shapeRef.js CHANGED
@@ -1,2 +1,2 @@
1
- import { a as updateRoles, i as resolveRef, n as captureHint, o as defaultScorer, r as createRef, t as assignRoles } from "./shapeRefFns-CZqzvMgX.js";
1
+ import { a as updateRoles, i as resolveRef, n as captureHint, o as defaultScorer, r as createRef, t as assignRoles } from "./shapeRefFns-C1nNU4at.js";
2
2
  export { assignRoles, captureHint, createRef, defaultScorer, resolveRef, updateRoles };
@@ -1,8 +1,8 @@
1
1
  import { n as wasmIndex } from "./vec3-Dpha8d5k.js";
2
- import { c as getFaces } from "./topologyQueryFns-C0yUIRDE.js";
3
- import { c as normalAt, n as faceCenter, r as faceGeomType } from "./faceFns-Qrz3lIDv.js";
4
- import { n as getHashCode } from "./shapeFns-Ct1lekCK.js";
5
- import { n as measureArea } from "./measureFns-95m36tbx.js";
2
+ import { c as getFaces } from "./topologyQueryFns-Bkr82t7v.js";
3
+ import { c as normalAt, n as faceCenter, r as faceGeomType } from "./faceFns-Bd3zdzrq.js";
4
+ import { n as getHashCode } from "./shapeFns-Bf3fSMLC.js";
5
+ import { n as measureArea } from "./measureFns-Pxrwu7Nl.js";
6
6
  //#region src/topology/shapeRef/scoring.ts
7
7
  /**
8
8
  * Default face scorer combining surface type, normal alignment, centroid proximity,
@@ -1,8 +1,8 @@
1
1
  const require_vec3 = require("./vec3-CFwOI0ZI.cjs");
2
- const require_topologyQueryFns = require("./topologyQueryFns-CBVVRWvE.cjs");
3
- const require_faceFns = require("./faceFns-_m0px2ug.cjs");
4
- const require_shapeFns = require("./shapeFns-DNqkQ2yJ.cjs");
5
- const require_measureFns = require("./measureFns-CqSFeI4R.cjs");
2
+ const require_topologyQueryFns = require("./topologyQueryFns-CseKGFog.cjs");
3
+ const require_faceFns = require("./faceFns-7g1e493t.cjs");
4
+ const require_shapeFns = require("./shapeFns-B15j-oke.cjs");
5
+ const require_measureFns = require("./measureFns-LAuiTxIU.cjs");
6
6
  //#region src/topology/shapeRef/scoring.ts
7
7
  /**
8
8
  * Default face scorer combining surface type, normal alignment, centroid proximity,
@@ -1,6 +1,40 @@
1
+ const require_occtWasmAdapter = require("./occtWasmAdapter-BPu07Zxg.cjs");
1
2
  const require_vec3 = require("./vec3-CFwOI0ZI.cjs");
2
- const require_occtWasmAdapter = require("./occtWasmAdapter-BuIYbIwy.cjs");
3
3
  const require_errors = require("./errors-CXJtc4I7.cjs");
4
+ //#region src/kernel/quality.ts
5
+ /**
6
+ * Extract-time deflection per level. `'standard'` matches brepjs's historical
7
+ * `mesh()` defaults (1e-3 / 0.1) so behaviour is unchanged when no quality is
8
+ * set.
9
+ */
10
+ var DEFLECTION = {
11
+ draft: {
12
+ tolerance: .01,
13
+ angularTolerance: .5
14
+ },
15
+ standard: {
16
+ tolerance: .001,
17
+ angularTolerance: .1
18
+ },
19
+ fine: {
20
+ tolerance: 1e-4,
21
+ angularTolerance: .05
22
+ }
23
+ };
24
+ var _current = "standard";
25
+ /** The active quality level (defaults to `'standard'`). */
26
+ function currentQuality() {
27
+ return _current;
28
+ }
29
+ /** Deflection params for a level (defaults to the active level). */
30
+ function qualityDeflection(level = _current) {
31
+ return DEFLECTION[level];
32
+ }
33
+ /** @internal — set by `withQuality`/`withTier`; restored in their `finally`. */
34
+ function setQualityState(level) {
35
+ _current = level;
36
+ }
37
+ //#endregion
4
38
  //#region src/kernel/kernel2dTypes.ts
5
39
  /** Check if the kernel supports 2D geometry operations. */
6
40
  function supportsKernel2D(kernel) {
@@ -5291,6 +5325,7 @@ function makeDraftAdapter(oc) {
5291
5325
  var DefaultAdapter = class {
5292
5326
  oc;
5293
5327
  kernelId = "occt";
5328
+ capabilities = require_occtWasmAdapter.EXACT_BREP_CAPABILITIES;
5294
5329
  constructor(oc) {
5295
5330
  this.oc = oc;
5296
5331
  Object.assign(this, makeBooleanOps$2(oc), makeBooleanPipelineOps(oc), makeHullOps(oc), makeConstructorOps(oc), makeExtendedConstructorOps(oc), makeSweepOps$2(oc), makeModifierOps$2(oc), makeTransformOps$2(oc), makeMeshOps$2(oc), makeIoOps$2(oc), makeMeasureOps$2(oc), makeTopologyOps$2(oc), makeGeometryQueryOps(oc), makeNurbsQueryOps(oc), makeCurveOps(oc), makeHealingOps(oc), makeHistoryOps(oc), makeAdvancedOps(oc), makeKernel2dOps$1(oc), makeDraftAdapter(oc), makeBrepkitOnlyStubs());
@@ -9630,6 +9665,7 @@ function makeCoreOps$1(bk) {
9630
9665
  var BrepkitAdapter = class {
9631
9666
  oc;
9632
9667
  kernelId = "brepkit";
9668
+ capabilities = require_occtWasmAdapter.EXACT_BREP_CAPABILITIES;
9633
9669
  /** The underlying brepkit WASM kernel instance (typed). */
9634
9670
  bk;
9635
9671
  constructor(brepkitKernel) {
@@ -14981,9 +15017,32 @@ function makeCoreOps(_module) {
14981
15017
  discardCheckpoint: () => notImplemented("discardCheckpoint")
14982
15018
  };
14983
15019
  }
15020
+ /** Manifold min circular angle (degrees) per quality level: finer ⇒ smaller angle ⇒ more segments. */
15021
+ var MIN_CIRCULAR_ANGLE_DEG = {
15022
+ draft: 30,
15023
+ standard: 10,
15024
+ fine: 3
15025
+ };
14984
15026
  var ManifoldAdapter = class {
14985
15027
  oc;
14986
15028
  kernelId = "manifold";
15029
+ capabilities = {
15030
+ exact: false,
15031
+ brepExport: false,
15032
+ exactMeasurement: false,
15033
+ tessellationModel: "build-time"
15034
+ };
15035
+ /**
15036
+ * Map a quality level to Manifold's global tessellation. Clearing the segment
15037
+ * count and driving by an angle bound makes it radius-adaptive (a small sphere
15038
+ * still gets enough facets).
15039
+ */
15040
+ setQuality(level) {
15041
+ const m = this.oc;
15042
+ m.setCircularSegments?.(0);
15043
+ m.setMinCircularEdgeLength?.(0);
15044
+ m.setMinCircularAngle?.(MIN_CIRCULAR_ANGLE_DEG[level]);
15045
+ }
14987
15046
  constructor(module) {
14988
15047
  this.oc = module;
14989
15048
  Object.assign(this, makePrimitiveOps(module), makeBooleanOps(module), makeTransformOps(module), makeBuilderOps(module), makeSweepOps(module), makeModifierOps(module), makeMeshOps(module), makeMeasureOps(module), makeTopologyOps(module), makeIoOps(module), makeGeometryOps(module), makeEvolutionOps(module), makeRepairOps(module), makeKernel2DOps(module), makeConstraintSketchOps(module), makeProjectionOps(module), makeCoreOps(module));
@@ -15065,6 +15124,53 @@ function withKernel(id, fn) {
15065
15124
  _cachedDefault = prev ? _kernels.get(prev) ?? null : null;
15066
15125
  }
15067
15126
  }
15127
+ /** Capabilities of a kernel (defaults to the active kernel). */
15128
+ function getKernelCapabilities(id) {
15129
+ return getKernel(id).capabilities;
15130
+ }
15131
+ /**
15132
+ * Run `fn` at a tessellation quality level. For `build-time` kernels (Manifold)
15133
+ * the level is pushed to the kernel's global setting on enter and restored on
15134
+ * exit; for `extract-time` kernels (OCCT) it becomes the default deflection at
15135
+ * `mesh()`/export inside `fn`. Synchronous only (mirrors {@link withKernel}).
15136
+ */
15137
+ function withQuality(level, fn) {
15138
+ const prevLevel = currentQuality();
15139
+ try {
15140
+ setQualityState(level);
15141
+ getKernel().setQuality?.(level);
15142
+ const result = fn();
15143
+ if (result instanceof Promise) throw new Error("withQuality() callback returned a Promise. Async code must read currentQuality()/getKernel() directly.");
15144
+ return result;
15145
+ } finally {
15146
+ setQualityState(prevLevel);
15147
+ getKernel().setQuality?.(prevLevel);
15148
+ }
15149
+ }
15150
+ var _tiers = /* @__PURE__ */ new Map();
15151
+ /**
15152
+ * Bind a named tier to a (kernel, quality) pair — e.g. a `'preview'` tier on a
15153
+ * fast mesh kernel at `'draft'` quality, and an `'exact'` tier on an OCCT
15154
+ * kernel at `'fine'`. Lets call sites express intent (`withTier('preview', …)`)
15155
+ * instead of hard-coding a kernel id + quality knob.
15156
+ */
15157
+ function registerKernelTier(name, tier) {
15158
+ _tiers.set(name, tier);
15159
+ }
15160
+ /** The (kernel, quality) a tier resolves to, or undefined if unregistered. */
15161
+ function getKernelTier(name) {
15162
+ return _tiers.get(name);
15163
+ }
15164
+ /**
15165
+ * Run `fn` under a registered tier: switches to the tier's kernel and applies
15166
+ * its quality (both restored on exit). Composes {@link withKernel} and
15167
+ * {@link withQuality}. Throws if the tier is unregistered.
15168
+ */
15169
+ function withTier(name, fn) {
15170
+ const tier = _tiers.get(name);
15171
+ if (!tier) throw new Error(`withTier: no tier registered for "${name}". Call registerKernelTier("${name}", { kernel, quality }) first.`);
15172
+ return withKernel(tier.kernel, () => withQuality(tier.quality, fn));
15173
+ }
15068
15174
  /** Initialise the brepjs kernel from a loaded WASM instance. */
15069
15175
  function initFromOC(oc) {
15070
15176
  resetMeasureDetectionCache();
@@ -15833,6 +15939,12 @@ Object.defineProperty(exports, "createWire", {
15833
15939
  return createWire;
15834
15940
  }
15835
15941
  });
15942
+ Object.defineProperty(exports, "currentQuality", {
15943
+ enumerable: true,
15944
+ get: function() {
15945
+ return currentQuality;
15946
+ }
15947
+ });
15836
15948
  Object.defineProperty(exports, "getActiveKernelId", {
15837
15949
  enumerable: true,
15838
15950
  get: function() {
@@ -15857,6 +15969,18 @@ Object.defineProperty(exports, "getKernel2D", {
15857
15969
  return getKernel2D;
15858
15970
  }
15859
15971
  });
15972
+ Object.defineProperty(exports, "getKernelCapabilities", {
15973
+ enumerable: true,
15974
+ get: function() {
15975
+ return getKernelCapabilities;
15976
+ }
15977
+ });
15978
+ Object.defineProperty(exports, "getKernelTier", {
15979
+ enumerable: true,
15980
+ get: function() {
15981
+ return getKernelTier;
15982
+ }
15983
+ });
15860
15984
  Object.defineProperty(exports, "getOrQueryType", {
15861
15985
  enumerable: true,
15862
15986
  get: function() {
@@ -16031,6 +16155,12 @@ Object.defineProperty(exports, "prewarm", {
16031
16155
  return prewarm;
16032
16156
  }
16033
16157
  });
16158
+ Object.defineProperty(exports, "qualityDeflection", {
16159
+ enumerable: true,
16160
+ get: function() {
16161
+ return qualityDeflection;
16162
+ }
16163
+ });
16034
16164
  Object.defineProperty(exports, "registerForCleanup", {
16035
16165
  enumerable: true,
16036
16166
  get: function() {
@@ -16043,6 +16173,12 @@ Object.defineProperty(exports, "registerKernel", {
16043
16173
  return registerKernel;
16044
16174
  }
16045
16175
  });
16176
+ Object.defineProperty(exports, "registerKernelTier", {
16177
+ enumerable: true,
16178
+ get: function() {
16179
+ return registerKernelTier;
16180
+ }
16181
+ });
16046
16182
  Object.defineProperty(exports, "resetDisposalStats", {
16047
16183
  enumerable: true,
16048
16184
  get: function() {
@@ -16085,6 +16221,12 @@ Object.defineProperty(exports, "withKernel", {
16085
16221
  return withKernel;
16086
16222
  }
16087
16223
  });
16224
+ Object.defineProperty(exports, "withQuality", {
16225
+ enumerable: true,
16226
+ get: function() {
16227
+ return withQuality;
16228
+ }
16229
+ });
16088
16230
  Object.defineProperty(exports, "withScope", {
16089
16231
  enumerable: true,
16090
16232
  get: function() {
@@ -16103,3 +16245,9 @@ Object.defineProperty(exports, "withScopeResultAsync", {
16103
16245
  return withScopeResultAsync;
16104
16246
  }
16105
16247
  });
16248
+ Object.defineProperty(exports, "withTier", {
16249
+ enumerable: true,
16250
+ get: function() {
16251
+ return withTier;
16252
+ }
16253
+ });
@@ -1,6 +1,40 @@
1
+ import { S as EXACT_BREP_CAPABILITIES, _ as serializeCurve2d$2, a as curveTypeName, b as quickHull, c as intersectCurves2dFn, d as makeEllipse2d$2, f as makeLine2d$2, g as scaleCurve2d$2, h as rotateCurve2d$2, i as curveBounds, l as makeBezier2d$2, m as mirrorAtPoint, n as addCurveToBBox, o as deserializeCurve2d$2, p as mirrorAcrossAxis, r as createBBox2d, s as evaluateCurve2d$2, t as OcctWasmAdapter, u as makeCircle2d$2, v as tangentCurve2d, y as translateCurve2d$2 } from "./occtWasmAdapter-Ctfykwr2.js";
1
2
  import { n as wasmIndex, t as vec3At } from "./vec3-Dpha8d5k.js";
2
- import { _ as serializeCurve2d$2, a as curveTypeName, b as quickHull, c as intersectCurves2dFn, d as makeEllipse2d$2, f as makeLine2d$2, g as scaleCurve2d$2, h as rotateCurve2d$2, i as curveBounds, l as makeBezier2d$2, m as mirrorAtPoint, n as addCurveToBBox, o as deserializeCurve2d$2, p as mirrorAcrossAxis, r as createBBox2d, s as evaluateCurve2d$2, t as OcctWasmAdapter, u as makeCircle2d$2, v as tangentCurve2d, y as translateCurve2d$2 } from "./occtWasmAdapter-B0PIezOZ.js";
3
3
  import { A as ok, b as err } from "./errors-DNWJsfVU.js";
4
+ //#region src/kernel/quality.ts
5
+ /**
6
+ * Extract-time deflection per level. `'standard'` matches brepjs's historical
7
+ * `mesh()` defaults (1e-3 / 0.1) so behaviour is unchanged when no quality is
8
+ * set.
9
+ */
10
+ var DEFLECTION = {
11
+ draft: {
12
+ tolerance: .01,
13
+ angularTolerance: .5
14
+ },
15
+ standard: {
16
+ tolerance: .001,
17
+ angularTolerance: .1
18
+ },
19
+ fine: {
20
+ tolerance: 1e-4,
21
+ angularTolerance: .05
22
+ }
23
+ };
24
+ var _current = "standard";
25
+ /** The active quality level (defaults to `'standard'`). */
26
+ function currentQuality() {
27
+ return _current;
28
+ }
29
+ /** Deflection params for a level (defaults to the active level). */
30
+ function qualityDeflection(level = _current) {
31
+ return DEFLECTION[level];
32
+ }
33
+ /** @internal — set by `withQuality`/`withTier`; restored in their `finally`. */
34
+ function setQualityState(level) {
35
+ _current = level;
36
+ }
37
+ //#endregion
4
38
  //#region src/kernel/kernel2dTypes.ts
5
39
  /** Check if the kernel supports 2D geometry operations. */
6
40
  function supportsKernel2D(kernel) {
@@ -5287,6 +5321,7 @@ function makeDraftAdapter(oc) {
5287
5321
  var DefaultAdapter = class {
5288
5322
  oc;
5289
5323
  kernelId = "occt";
5324
+ capabilities = EXACT_BREP_CAPABILITIES;
5290
5325
  constructor(oc) {
5291
5326
  this.oc = oc;
5292
5327
  Object.assign(this, makeBooleanOps$2(oc), makeBooleanPipelineOps(oc), makeHullOps(oc), makeConstructorOps(oc), makeExtendedConstructorOps(oc), makeSweepOps$2(oc), makeModifierOps$2(oc), makeTransformOps$2(oc), makeMeshOps$2(oc), makeIoOps$2(oc), makeMeasureOps$2(oc), makeTopologyOps$2(oc), makeGeometryQueryOps(oc), makeNurbsQueryOps(oc), makeCurveOps(oc), makeHealingOps(oc), makeHistoryOps(oc), makeAdvancedOps(oc), makeKernel2dOps$1(oc), makeDraftAdapter(oc), makeBrepkitOnlyStubs());
@@ -9622,6 +9657,7 @@ function makeCoreOps$1(bk) {
9622
9657
  var BrepkitAdapter = class {
9623
9658
  oc;
9624
9659
  kernelId = "brepkit";
9660
+ capabilities = EXACT_BREP_CAPABILITIES;
9625
9661
  /** The underlying brepkit WASM kernel instance (typed). */
9626
9662
  bk;
9627
9663
  constructor(brepkitKernel) {
@@ -14973,9 +15009,32 @@ function makeCoreOps(_module) {
14973
15009
  discardCheckpoint: () => notImplemented("discardCheckpoint")
14974
15010
  };
14975
15011
  }
15012
+ /** Manifold min circular angle (degrees) per quality level: finer ⇒ smaller angle ⇒ more segments. */
15013
+ var MIN_CIRCULAR_ANGLE_DEG = {
15014
+ draft: 30,
15015
+ standard: 10,
15016
+ fine: 3
15017
+ };
14976
15018
  var ManifoldAdapter = class {
14977
15019
  oc;
14978
15020
  kernelId = "manifold";
15021
+ capabilities = {
15022
+ exact: false,
15023
+ brepExport: false,
15024
+ exactMeasurement: false,
15025
+ tessellationModel: "build-time"
15026
+ };
15027
+ /**
15028
+ * Map a quality level to Manifold's global tessellation. Clearing the segment
15029
+ * count and driving by an angle bound makes it radius-adaptive (a small sphere
15030
+ * still gets enough facets).
15031
+ */
15032
+ setQuality(level) {
15033
+ const m = this.oc;
15034
+ m.setCircularSegments?.(0);
15035
+ m.setMinCircularEdgeLength?.(0);
15036
+ m.setMinCircularAngle?.(MIN_CIRCULAR_ANGLE_DEG[level]);
15037
+ }
14979
15038
  constructor(module) {
14980
15039
  this.oc = module;
14981
15040
  Object.assign(this, makePrimitiveOps(module), makeBooleanOps(module), makeTransformOps(module), makeBuilderOps(module), makeSweepOps(module), makeModifierOps(module), makeMeshOps(module), makeMeasureOps(module), makeTopologyOps(module), makeIoOps(module), makeGeometryOps(module), makeEvolutionOps(module), makeRepairOps(module), makeKernel2DOps(module), makeConstraintSketchOps(module), makeProjectionOps(module), makeCoreOps(module));
@@ -15057,6 +15116,53 @@ function withKernel(id, fn) {
15057
15116
  _cachedDefault = prev ? _kernels.get(prev) ?? null : null;
15058
15117
  }
15059
15118
  }
15119
+ /** Capabilities of a kernel (defaults to the active kernel). */
15120
+ function getKernelCapabilities(id) {
15121
+ return getKernel(id).capabilities;
15122
+ }
15123
+ /**
15124
+ * Run `fn` at a tessellation quality level. For `build-time` kernels (Manifold)
15125
+ * the level is pushed to the kernel's global setting on enter and restored on
15126
+ * exit; for `extract-time` kernels (OCCT) it becomes the default deflection at
15127
+ * `mesh()`/export inside `fn`. Synchronous only (mirrors {@link withKernel}).
15128
+ */
15129
+ function withQuality(level, fn) {
15130
+ const prevLevel = currentQuality();
15131
+ try {
15132
+ setQualityState(level);
15133
+ getKernel().setQuality?.(level);
15134
+ const result = fn();
15135
+ if (result instanceof Promise) throw new Error("withQuality() callback returned a Promise. Async code must read currentQuality()/getKernel() directly.");
15136
+ return result;
15137
+ } finally {
15138
+ setQualityState(prevLevel);
15139
+ getKernel().setQuality?.(prevLevel);
15140
+ }
15141
+ }
15142
+ var _tiers = /* @__PURE__ */ new Map();
15143
+ /**
15144
+ * Bind a named tier to a (kernel, quality) pair — e.g. a `'preview'` tier on a
15145
+ * fast mesh kernel at `'draft'` quality, and an `'exact'` tier on an OCCT
15146
+ * kernel at `'fine'`. Lets call sites express intent (`withTier('preview', …)`)
15147
+ * instead of hard-coding a kernel id + quality knob.
15148
+ */
15149
+ function registerKernelTier(name, tier) {
15150
+ _tiers.set(name, tier);
15151
+ }
15152
+ /** The (kernel, quality) a tier resolves to, or undefined if unregistered. */
15153
+ function getKernelTier(name) {
15154
+ return _tiers.get(name);
15155
+ }
15156
+ /**
15157
+ * Run `fn` under a registered tier: switches to the tier's kernel and applies
15158
+ * its quality (both restored on exit). Composes {@link withKernel} and
15159
+ * {@link withQuality}. Throws if the tier is unregistered.
15160
+ */
15161
+ function withTier(name, fn) {
15162
+ const tier = _tiers.get(name);
15163
+ if (!tier) throw new Error(`withTier: no tier registered for "${name}". Call registerKernelTier("${name}", { kernel, quality }) first.`);
15164
+ return withKernel(tier.kernel, () => withQuality(tier.quality, fn));
15165
+ }
15060
15166
  /** Initialise the brepjs kernel from a loaded WASM instance. */
15061
15167
  function initFromOC(oc) {
15062
15168
  resetMeasureDetectionCache();
@@ -15717,4 +15823,4 @@ function castShapeWithKnownType(ocShape, knownType, dim) {
15717
15823
  return createCompound(dc, dim);
15718
15824
  }
15719
15825
  //#endregion
15720
- export { init as $, planarWire as A, createKernelHandle as B, isOrientedFace as C, manifoldShell as D, isValidSolid as E, as3D as F, unregisterFromCleanup as G, isLive as H, is2D as I, withScopeResultAsync as J, withScope as K, is3D as L, getShapeKind as M, getOrQueryType as N, orientedFace as O, as2D as P, getKernel2D as Q, DisposalScope as R, isManifoldShell as S, isPlanarWire as T, registerForCleanup as U, getDisposalStats as V, resetDisposalStats as W, getActiveKernelId as X, _usingCtx as Y, getKernel as Z, isSolid as _, createEdge as a, supportsConstraintSketch as at, closedWire as b, createSolid as c, getPerformanceStats as ct, isCompound as d, initFromManifold as et, isEdge as f, isShell as g, isShape3D as h, createCompound as i, withKernel as it, validSolid as j, planarFace as k, createVertex as l, resetPerformanceStats as lt, isShape1D as m, castShape3D as n, prewarm as nt, createFace as o, supportsProjection as ot, isFace as p, withScopeResult as q, castShapeWithKnownType as r, registerKernel as rt, createShell as s, BrepkitAdapter as st, castShape as t, initFromOC as tt, createWire as u, isVertex as v, isPlanarFace as w, isClosedWire as x, isWire as y, createHandle as z };
15826
+ export { getKernelCapabilities as $, planarWire as A, createKernelHandle as B, isOrientedFace as C, manifoldShell as D, isValidSolid as E, as3D as F, unregisterFromCleanup as G, isLive as H, is2D as I, withScopeResultAsync as J, withScope as K, is3D as L, getShapeKind as M, getOrQueryType as N, orientedFace as O, as2D as P, getKernel2D as Q, DisposalScope as R, isManifoldShell as S, isPlanarWire as T, registerForCleanup as U, getDisposalStats as V, resetDisposalStats as W, getActiveKernelId as X, _usingCtx as Y, getKernel as Z, isSolid as _, createEdge as a, registerKernel as at, closedWire as b, createSolid as c, withQuality as ct, isCompound as d, supportsProjection as dt, getKernelTier as et, isEdge as f, BrepkitAdapter as ft, isShell as g, qualityDeflection as gt, isShape3D as h, currentQuality as ht, createCompound as i, prewarm as it, validSolid as j, planarFace as k, createVertex as l, withTier as lt, isShape1D as m, resetPerformanceStats as mt, castShape3D as n, initFromManifold as nt, createFace as o, registerKernelTier as ot, isFace as p, getPerformanceStats as pt, withScopeResult as q, castShapeWithKnownType as r, initFromOC as rt, createShell as s, withKernel as st, castShape as t, init as tt, createWire as u, supportsConstraintSketch as ut, isVertex as v, isPlanarFace as w, isClosedWire as x, isWire as y, createHandle as z };
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_textBlueprints = require("./textBlueprints-7KWxP1zT.cjs");
3
- const require_blueprintSketcher = require("./blueprintSketcher-Bpd7nMHt.cjs");
4
- const require_drawFns = require("./drawFns-DPE6EU_v.cjs");
2
+ const require_textBlueprints = require("./textBlueprints-BROqnpya.cjs");
3
+ const require_blueprintSketcher = require("./blueprintSketcher-Bj39XtSt.cjs");
4
+ const require_drawFns = require("./drawFns-CluLvJOJ.cjs");
5
5
  //#region src/sketching.ts
6
6
  /**
7
7
  * brepjs/sketching — Sketcher, Drawing, and sketch-to-shape operations.
package/dist/sketching.js CHANGED
@@ -1,6 +1,6 @@
1
- import { n as BaseSketcher2d, t as BlueprintSketcher } from "./blueprintSketcher-BL85kdgo.js";
2
- import { A as sketchEllipse, C as DrawingPen, D as makeBaseBox, E as deserializeDrawing, F as sketchRectangle, I as sketchRoundedRectangle, L as FaceSketcher, M as sketchHelix, N as sketchParametricFunction, O as polysideInnerRadius, P as sketchPolysides, R as Sketcher, S as drawText, T as Drawing, _ as drawPolysides, a as drawingIntersect, b as drawSingleCircle, c as rotateDrawing, d as drawFaceOutline, f as drawProjection, g as drawPointsInterpolation, h as drawParametricFunction, i as drawingFuse, j as sketchFaceOffset, k as sketchCircle, l as scaleDrawing, m as drawEllipse, n as drawingCut, o as drawingToSketchOnPlane, p as drawCircle, r as drawingFillet, s as mirrorDrawing, t as drawingChamfer, u as translateDrawing, v as drawRectangle, w as draw, x as drawSingleEllipse, y as drawRoundedRectangle } from "./drawFns-Cq6bAjFC.js";
3
- import { a as Sketch, c as compoundSketchLoft, d as sketchFace, f as sketchLoft, h as sketchWires, i as Sketches, l as compoundSketchRevolve, m as sketchSweep, o as compoundSketchExtrude, p as sketchRevolve, s as compoundSketchFace, u as sketchExtrude, v as CompoundSketch } from "./textBlueprints-CyIv54Ac.js";
1
+ import { n as BaseSketcher2d, t as BlueprintSketcher } from "./blueprintSketcher-nuOhijiI.js";
2
+ import { A as sketchEllipse, C as DrawingPen, D as makeBaseBox, E as deserializeDrawing, F as sketchRectangle, I as sketchRoundedRectangle, L as FaceSketcher, M as sketchHelix, N as sketchParametricFunction, O as polysideInnerRadius, P as sketchPolysides, R as Sketcher, S as drawText, T as Drawing, _ as drawPolysides, a as drawingIntersect, b as drawSingleCircle, c as rotateDrawing, d as drawFaceOutline, f as drawProjection, g as drawPointsInterpolation, h as drawParametricFunction, i as drawingFuse, j as sketchFaceOffset, k as sketchCircle, l as scaleDrawing, m as drawEllipse, n as drawingCut, o as drawingToSketchOnPlane, p as drawCircle, r as drawingFillet, s as mirrorDrawing, t as drawingChamfer, u as translateDrawing, v as drawRectangle, w as draw, x as drawSingleEllipse, y as drawRoundedRectangle } from "./drawFns-CNOti33I.js";
3
+ import { a as Sketch, c as compoundSketchLoft, d as sketchFace, f as sketchLoft, h as sketchWires, i as Sketches, l as compoundSketchRevolve, m as sketchSweep, o as compoundSketchExtrude, p as sketchRevolve, s as compoundSketchFace, u as sketchExtrude, v as CompoundSketch } from "./textBlueprints-k0trqpEg.js";
4
4
  //#region src/sketching.ts
5
5
  /**
6
6
  * brepjs/sketching — Sketcher, Drawing, and sketch-to-shape operations.
@@ -1,6 +1,6 @@
1
- import { Z as getKernel, _ as isSolid, c as createSolid, g as isShell, h as isShape3D, i as createCompound, l as createVertex } from "./shapeTypes-C-32Klnb.js";
1
+ import { Z as getKernel, _ as isSolid, c as createSolid, g as isShell, h as isShape3D, i as createCompound, l as createVertex } from "./shapeTypes-KIrwDkmg.js";
2
2
  import { A as ok, R as unwrap, b as err, l as typeCastError, v as andThen } from "./errors-DNWJsfVU.js";
3
- import { _ as downcast, g as cast } from "./faceFns-Qrz3lIDv.js";
3
+ import { _ as downcast, g as cast } from "./faceFns-Bd3zdzrq.js";
4
4
  //#region src/topology/shapeUtils.ts
5
5
  /**
6
6
  * Shape assembly utilities — welding and sewing operations.
@@ -1,6 +1,6 @@
1
- const require_shapeTypes = require("./shapeTypes-DAhE_41P.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-C6gF9fGL.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
- const require_faceFns = require("./faceFns-_m0px2ug.cjs");
3
+ const require_faceFns = require("./faceFns-7g1e493t.cjs");
4
4
  //#region src/topology/shapeUtils.ts
5
5
  /**
6
6
  * Shape assembly utilities — welding and sewing operations.
@@ -1,6 +1,6 @@
1
- const require_shapeTypes = require("./shapeTypes-DAhE_41P.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-C6gF9fGL.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
- const require_faceFns = require("./faceFns-_m0px2ug.cjs");
3
+ const require_faceFns = require("./faceFns-7g1e493t.cjs");
4
4
  //#region src/utils/range.ts
5
5
  /** Generate an array of integers `[0, 1, …, len - 1]`. */
6
6
  function range(len) {
@@ -1,6 +1,6 @@
1
- import { Z as getKernel, a as createEdge, o as createFace, p as isFace, u as createWire, w as isPlanarFace } from "./shapeTypes-C-32Klnb.js";
1
+ import { Z as getKernel, a as createEdge, o as createFace, p as isFace, u as createWire, w as isPlanarFace } from "./shapeTypes-KIrwDkmg.js";
2
2
  import { A as ok, b as err, d as validationError, i as kernelError, v as andThen } from "./errors-DNWJsfVU.js";
3
- import { g as cast, l as outerWire } from "./faceFns-Qrz3lIDv.js";
3
+ import { g as cast, l as outerWire } from "./faceFns-Bd3zdzrq.js";
4
4
  //#region src/utils/range.ts
5
5
  /** Generate an array of integers `[0, 1, …, len - 1]`. */
6
6
  function range(len) {
package/dist/text.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_textBlueprints = require("./textBlueprints-7KWxP1zT.cjs");
3
- const require_textMetrics = require("./textMetrics-BXoJfZKn.cjs");
2
+ const require_textBlueprints = require("./textBlueprints-BROqnpya.cjs");
3
+ const require_textMetrics = require("./textMetrics-dS4ldSza.cjs");
4
4
  exports.fontMetrics = require_textMetrics.fontMetrics;
5
5
  exports.getFont = require_textBlueprints.getFont;
6
6
  exports.loadFont = require_textBlueprints.loadFont;
package/dist/text.js CHANGED
@@ -1,3 +1,3 @@
1
- import { n as getFont, r as loadFont, t as textBlueprints } from "./textBlueprints-CyIv54Ac.js";
2
- import { n as textMetrics, r as sketchText, t as fontMetrics } from "./textMetrics-D740OLnV.js";
1
+ import { n as getFont, r as loadFont, t as textBlueprints } from "./textBlueprints-k0trqpEg.js";
2
+ import { n as textMetrics, r as sketchText, t as fontMetrics } from "./textMetrics-DnOTH1ld.js";
3
3
  export { fontMetrics, getFont, loadFont, sketchText, textBlueprints, textMetrics };
@@ -29,18 +29,18 @@ 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-DAhE_41P.cjs");
32
+ const require_shapeTypes = require("./shapeTypes-C6gF9fGL.cjs");
33
33
  const require_errors = require("./errors-CXJtc4I7.cjs");
34
34
  const require_types = require("./types-KjA8tY4Y.cjs");
35
35
  const require_vecOps = require("./vecOps-CCnJt-yH.cjs");
36
36
  const require_planeOps = require("./planeOps-BA4HfgQu.cjs");
37
- const require_faceFns = require("./faceFns-_m0px2ug.cjs");
38
- const require_curveFns = require("./curveFns-DR68aqxR.cjs");
37
+ const require_faceFns = require("./faceFns-7g1e493t.cjs");
38
+ const require_curveFns = require("./curveFns-BlfkX_gl.cjs");
39
39
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
40
- const require_surfaceBuilders = require("./surfaceBuilders-B9kzwe0E.cjs");
41
- const require_blueprintSketcher = require("./blueprintSketcher-Bpd7nMHt.cjs");
42
- const require_solidBuilders = require("./solidBuilders-iapbn6CO.cjs");
43
- const require_extrudeFns = require("./extrudeFns-yfUN1m7e.cjs");
40
+ const require_surfaceBuilders = require("./surfaceBuilders-DSgKSrN-.cjs");
41
+ const require_blueprintSketcher = require("./blueprintSketcher-Bj39XtSt.cjs");
42
+ const require_solidBuilders = require("./solidBuilders-Ii8I669S.cjs");
43
+ const require_extrudeFns = require("./extrudeFns-DYn4rntp.cjs");
44
44
  let opentype_js = require("opentype.js");
45
45
  opentype_js = __toESM(opentype_js, 1);
46
46
  //#region src/operations/loftFns.ts