brepjs 18.65.0 → 18.66.1

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 (90) hide show
  1. package/dist/2d.cjs +6 -6
  2. package/dist/2d.js +6 -6
  3. package/dist/{blueprint-smNMCQA1.cjs → blueprint-D0HcOCoD.cjs} +5 -5
  4. package/dist/{blueprint-1wDhBDmB.js → blueprint-DUu2ps2h.js} +5 -5
  5. package/dist/{blueprintFns-DeCDdsDz.js → blueprintFns-BoMZHBGl.js} +2 -2
  6. package/dist/{blueprintFns-DkHfzzv0.cjs → blueprintFns-pq0yw94E.cjs} +2 -2
  7. package/dist/{blueprintSketcher-Bpd7nMHt.cjs → blueprintSketcher-CWSesXXR.cjs} +3 -3
  8. package/dist/{blueprintSketcher-BL85kdgo.js → blueprintSketcher-DelJzBzJ.js} +3 -3
  9. package/dist/{boolean2D-CHu_3RIB.cjs → boolean2D-C6xLLzU_.cjs} +4 -4
  10. package/dist/{boolean2D-CWgORqab.js → boolean2D-DYjuIlFY.js} +4 -4
  11. package/dist/{booleanFns-ogc1TMXG.js → booleanFns-CLzeqmgT.js} +4 -4
  12. package/dist/{booleanFns-C9olM-r4.cjs → booleanFns-D57G9tJA.cjs} +4 -4
  13. package/dist/brepjs.cjs +33 -25
  14. package/dist/brepjs.js +26 -26
  15. package/dist/{cameraFns-Za6Rsnmg.cjs → cameraFns-DSAYGgrz.cjs} +2 -2
  16. package/dist/{cameraFns-9SLctf9O.js → cameraFns-D_UnhA2O.js} +2 -2
  17. package/dist/core.cjs +1 -1
  18. package/dist/core.js +1 -1
  19. package/dist/{cornerFinder-Cchldpsv.js → cornerFinder-CszkHDW1.js} +1 -1
  20. package/dist/{cornerFinder-CUhZgX6X.cjs → cornerFinder-Dvu2q_-E.cjs} +1 -1
  21. package/dist/{curveFns-DR68aqxR.cjs → curveFns-BJLQixZw.cjs} +1 -1
  22. package/dist/{curveFns-DH5NpaKO.js → curveFns-CLNHpU2N.js} +1 -1
  23. package/dist/{drawFns-DPE6EU_v.cjs → drawFns-BuE0lne3.cjs} +12 -12
  24. package/dist/{drawFns-Cq6bAjFC.js → drawFns-Cw29tkrx.js} +12 -12
  25. package/dist/{extrudeFns-DZEN4PPg.js → extrudeFns-19bOK66L.js} +1 -1
  26. package/dist/{extrudeFns-yfUN1m7e.cjs → extrudeFns-BDgqrytA.cjs} +1 -1
  27. package/dist/{faceFns-_m0px2ug.cjs → faceFns-BmaS4kkW.cjs} +2 -2
  28. package/dist/{faceFns-Qrz3lIDv.js → faceFns-CWU_70z7.js} +2 -2
  29. package/dist/{helpers-Bk538__I.js → helpers-CA8uFXQW.js} +6 -6
  30. package/dist/{helpers-BXiYZ2Dl.cjs → helpers-qkB-gFkC.cjs} +6 -6
  31. package/dist/{historyFns-B-R48Dze.cjs → historyFns-CDVZ3KM8.cjs} +4 -4
  32. package/dist/{historyFns-BJKkvynn.js → historyFns-CnUZzNHQ.js} +4 -4
  33. package/dist/{importFns-D8EPeKcC.cjs → importFns-B7pbqJhZ.cjs} +2 -2
  34. package/dist/{importFns-Cid57qQ1.js → importFns-BBnjqm6T.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/manifold/sweepOps.d.ts +1 -0
  44. package/dist/kernel/occt/defaultAdapter.d.ts +2 -0
  45. package/dist/kernel/occtWasm/occtWasmAdapter.cjs +1 -1
  46. package/dist/kernel/occtWasm/occtWasmAdapter.d.ts +2 -0
  47. package/dist/kernel/occtWasm/occtWasmAdapter.js +1 -1
  48. package/dist/kernel/quality.d.ts +29 -0
  49. package/dist/{measureFns-95m36tbx.js → measureFns-Bye5UsOe.js} +3 -3
  50. package/dist/{measureFns-CqSFeI4R.cjs → measureFns-HhPPUiRO.cjs} +3 -3
  51. package/dist/measurement.cjs +1 -1
  52. package/dist/measurement.js +1 -1
  53. package/dist/{meshFns-CR8dRmoo.cjs → meshFns-B5jxU_H4.cjs} +12 -6
  54. package/dist/{meshFns-BCggXbKk.js → meshFns-Cog1SKSV.js} +12 -6
  55. package/dist/{occtWasmAdapter-BuIYbIwy.cjs → occtWasmAdapter-BPu07Zxg.cjs} +33 -0
  56. package/dist/{occtWasmAdapter-B0PIezOZ.js → occtWasmAdapter-Ctfykwr2.js} +22 -1
  57. package/dist/operations.cjs +2 -2
  58. package/dist/operations.js +2 -2
  59. package/dist/{primitiveFns-DFsImECE.cjs → primitiveFns-B_Vhus6h.cjs} +7 -7
  60. package/dist/{primitiveFns-Fy3scr-a.js → primitiveFns-DTg4kOPD.js} +7 -7
  61. package/dist/projection.cjs +1 -1
  62. package/dist/projection.js +1 -1
  63. package/dist/query.cjs +2 -2
  64. package/dist/query.js +2 -2
  65. package/dist/{shapeFns-Ct1lekCK.js → shapeFns-CMQD_3Rz.js} +2 -2
  66. package/dist/{shapeFns-DNqkQ2yJ.cjs → shapeFns-ClKe2vri.cjs} +2 -2
  67. package/dist/shapeRef.cjs +1 -1
  68. package/dist/shapeRef.js +1 -1
  69. package/dist/{shapeRefFns-BB9iWqZb.cjs → shapeRefFns-DUt-hIWq.cjs} +4 -4
  70. package/dist/{shapeRefFns-CZqzvMgX.js → shapeRefFns-DqmUj3wF.js} +4 -4
  71. package/dist/{shapeTypes-DAhE_41P.cjs → shapeTypes-CPClTSJn.cjs} +168 -15
  72. package/dist/{shapeTypes-C-32Klnb.js → shapeTypes-CQscfe8k.js} +127 -16
  73. package/dist/sketching.cjs +3 -3
  74. package/dist/sketching.js +3 -3
  75. package/dist/{solidBuilders-iapbn6CO.cjs → solidBuilders-CtxTfDlu.cjs} +2 -2
  76. package/dist/{solidBuilders-B-gb9ZsJ.js → solidBuilders-U04-5yA1.js} +2 -2
  77. package/dist/{surfaceBuilders-B9kzwe0E.cjs → surfaceBuilders-88vLyzZe.cjs} +2 -2
  78. package/dist/{surfaceBuilders-Cwecm13F.js → surfaceBuilders-GesSUnRk.js} +2 -2
  79. package/dist/text.cjs +2 -2
  80. package/dist/text.js +2 -2
  81. package/dist/{textBlueprints-7KWxP1zT.cjs → textBlueprints-BRqklfRI.cjs} +7 -7
  82. package/dist/{textBlueprints-CyIv54Ac.js → textBlueprints-DP_2uuR2.js} +7 -7
  83. package/dist/{textMetrics-D740OLnV.js → textMetrics-BAOyWVzI.js} +1 -1
  84. package/dist/{textMetrics-BXoJfZKn.cjs → textMetrics-F2qR-eqQ.cjs} +1 -1
  85. package/dist/topology/meshFns.d.ts +5 -5
  86. package/dist/topology.cjs +7 -7
  87. package/dist/topology.js +7 -7
  88. package/dist/{topologyQueryFns-C0yUIRDE.js → topologyQueryFns-BuZ2h4o9.js} +1 -1
  89. package/dist/{topologyQueryFns-CBVVRWvE.cjs → topologyQueryFns-jK9Vpzqr.cjs} +1 -1
  90. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { Z as getKernel, c as createSolid, h as isShape3D, t as castShape, y as isWire } from "./shapeTypes-C-32Klnb.js";
1
+ import { Z as getKernel, c as createSolid, h as isShape3D, t as castShape, y as isWire } from "./shapeTypes-CQscfe8k.js";
2
2
  import { A as ok, b as err, d as validationError, i as kernelError, l as typeCastError, t as BrepErrorCode, w as isErr } from "./errors-DNWJsfVU.js";
3
3
  import { c as vecLength, d as vecNormalize, t as vecAdd } from "./vecOps-SKPRvPH-.js";
4
4
  //#region src/operations/extrudeUtils.ts
@@ -1,4 +1,4 @@
1
- const require_shapeTypes = require("./shapeTypes-DAhE_41P.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-CPClTSJn.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
3
  const require_vecOps = require("./vecOps-CCnJt-yH.cjs");
4
4
  //#region src/operations/extrudeUtils.ts
@@ -1,6 +1,6 @@
1
- const require_shapeTypes = require("./shapeTypes-DAhE_41P.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-CPClTSJn.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-CBVVRWvE.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-jK9Vpzqr.cjs");
4
4
  const require_types = require("./types-KjA8tY4Y.cjs");
5
5
  //#region src/topology/cast.ts
6
6
  var TOPO_ENUM = {
@@ -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-CQscfe8k.js";
2
2
  import { A as ok, R as unwrap, b as err, l as typeCastError } from "./errors-DNWJsfVU.js";
3
- import { a as getCachedSurfaceType } from "./topologyQueryFns-C0yUIRDE.js";
3
+ import { a as getCachedSurfaceType } from "./topologyQueryFns-BuZ2h4o9.js";
4
4
  import { r as toVec3 } from "./types-D24Y27N0.js";
5
5
  //#region src/topology/cast.ts
6
6
  var TOPO_ENUM = {
@@ -1,12 +1,12 @@
1
- import { Z as getKernel, p as isFace } from "./shapeTypes-C-32Klnb.js";
1
+ import { Z as getKernel, p as isFace } from "./shapeTypes-CQscfe8k.js";
2
2
  import { A as ok, T as isOk, b as err, h as bug, o as queryError } from "./errors-DNWJsfVU.js";
3
- import { c as getFaces, f as getVertices, p as getWires, s as getEdges } from "./topologyQueryFns-C0yUIRDE.js";
3
+ import { c as getFaces, f as getVertices, p as getWires, s as getEdges } from "./topologyQueryFns-BuZ2h4o9.js";
4
4
  import { t as DEG2RAD } from "./constants-ITRzCnCp.js";
5
5
  import { a as vecDot, d as vecNormalize } from "./vecOps-SKPRvPH-.js";
6
- import { c as normalAt, o as getSurfaceType } from "./faceFns-Qrz3lIDv.js";
7
- import { a as isSameShape, n as getHashCode } from "./shapeFns-Ct1lekCK.js";
8
- import { a as curveLength, d as getCurveType, r as curveIsClosed } from "./curveFns-DH5NpaKO.js";
9
- import { n as measureArea } from "./measureFns-95m36tbx.js";
6
+ import { c as normalAt, o as getSurfaceType } from "./faceFns-CWU_70z7.js";
7
+ import { a as isSameShape, n as getHashCode } from "./shapeFns-CMQD_3Rz.js";
8
+ import { a as curveLength, d as getCurveType, r as curveIsClosed } from "./curveFns-CLNHpU2N.js";
9
+ import { n as measureArea } from "./measureFns-Bye5UsOe.js";
10
10
  //#region src/utils/vec2d.ts
11
11
  /** Precision for curve intersection and parameter operations. */
12
12
  var PRECISION_INTERSECTION = 1e-9;
@@ -1,12 +1,12 @@
1
- const require_shapeTypes = require("./shapeTypes-DAhE_41P.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-CPClTSJn.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-CBVVRWvE.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-jK9Vpzqr.cjs");
4
4
  const require_constants = require("./constants-BOVyEYGH.cjs");
5
5
  const require_vecOps = require("./vecOps-CCnJt-yH.cjs");
6
- const require_faceFns = require("./faceFns-_m0px2ug.cjs");
7
- const require_shapeFns = require("./shapeFns-DNqkQ2yJ.cjs");
8
- const require_curveFns = require("./curveFns-DR68aqxR.cjs");
9
- const require_measureFns = require("./measureFns-CqSFeI4R.cjs");
6
+ const require_faceFns = require("./faceFns-BmaS4kkW.cjs");
7
+ const require_shapeFns = require("./shapeFns-ClKe2vri.cjs");
8
+ const require_curveFns = require("./curveFns-BJLQixZw.cjs");
9
+ const require_measureFns = require("./measureFns-HhPPUiRO.cjs");
10
10
  //#region src/utils/vec2d.ts
11
11
  /** Precision for curve intersection and parameter operations. */
12
12
  var PRECISION_INTERSECTION = 1e-9;
@@ -1,9 +1,9 @@
1
- const require_shapeTypes = require("./shapeTypes-DAhE_41P.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-CPClTSJn.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
3
  const require_vecOps = require("./vecOps-CCnJt-yH.cjs");
4
- const require_faceFns = require("./faceFns-_m0px2ug.cjs");
5
- const require_shapeFns = require("./shapeFns-DNqkQ2yJ.cjs");
6
- const require_booleanFns = require("./booleanFns-C9olM-r4.cjs");
4
+ const require_faceFns = require("./faceFns-BmaS4kkW.cjs");
5
+ const require_shapeFns = require("./shapeFns-ClKe2vri.cjs");
6
+ const require_booleanFns = require("./booleanFns-D57G9tJA.cjs");
7
7
  //#region src/utils/uuid.ts
8
8
  /** Generate a v4-style UUID string using `crypto.getRandomValues`. */
9
9
  function uuidv() {
@@ -1,9 +1,9 @@
1
- import { B as createKernelHandle, Z as getKernel, t as castShape } from "./shapeTypes-C-32Klnb.js";
1
+ import { B as createKernelHandle, Z as getKernel, t as castShape } from "./shapeTypes-CQscfe8k.js";
2
2
  import { A as ok, b as err, d as validationError, n as computationError, r as ioError } from "./errors-DNWJsfVU.js";
3
3
  import { d as vecNormalize, s as vecIsZero } from "./vecOps-SKPRvPH-.js";
4
- import { v as fromBREP } from "./faceFns-Qrz3lIDv.js";
5
- import { s as toBREP } from "./shapeFns-Ct1lekCK.js";
6
- import { a as fuseAll } from "./booleanFns-ogc1TMXG.js";
4
+ import { v as fromBREP } from "./faceFns-CWU_70z7.js";
5
+ import { s as toBREP } from "./shapeFns-CMQD_3Rz.js";
6
+ import { a as fuseAll } from "./booleanFns-CLzeqmgT.js";
7
7
  //#region src/utils/uuid.ts
8
8
  /** Generate a v4-style UUID string using `crypto.getRandomValues`. */
9
9
  function uuidv() {
@@ -1,8 +1,8 @@
1
- const require_shapeTypes = require("./shapeTypes-DAhE_41P.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-CPClTSJn.cjs");
2
2
  const require_vec3 = require("./vec3-CFwOI0ZI.cjs");
3
3
  const require_errors = require("./errors-CXJtc4I7.cjs");
4
4
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
5
- const require_blueprint = require("./blueprint-smNMCQA1.cjs");
5
+ const require_blueprint = require("./blueprint-D0HcOCoD.cjs");
6
6
  //#region src/io/objExportFns.ts
7
7
  /** Read a vec3 from a typed array at the given vertex index. */
8
8
  function vec3At(arr, i) {
@@ -1,8 +1,8 @@
1
- import { Z as getKernel, t as castShape } from "./shapeTypes-C-32Klnb.js";
1
+ import { Z as getKernel, t as castShape } from "./shapeTypes-CQscfe8k.js";
2
2
  import { n as wasmIndex, t as vec3At$1 } from "./vec3-Dpha8d5k.js";
3
3
  import { A as ok, b as err, r as ioError, t as BrepErrorCode } from "./errors-DNWJsfVU.js";
4
4
  import { n as getAtOrThrow } from "./arrayAccess-DrUGPADn.js";
5
- import { f as make2dSegmentCurve, m as make2dThreePointArc, s as make2dBezierCurve, t as Blueprint } from "./blueprint-1wDhBDmB.js";
5
+ import { f as make2dSegmentCurve, m as make2dThreePointArc, s as make2dBezierCurve, t as Blueprint } from "./blueprint-DUu2ps2h.js";
6
6
  //#region src/io/objExportFns.ts
7
7
  /** Read a vec3 from a typed array at the given vertex index. */
8
8
  function vec3At(arr, i) {
package/dist/index.d.ts CHANGED
@@ -1,7 +1,11 @@
1
1
  /**
2
2
  * brepjs — Public API
3
3
  */
4
- export { init, initFromOC, initFromManifold, prewarm, getKernel, registerKernel, withKernel, BrepkitAdapter, OcctWasmAdapter, } from './kernel/index.js';
4
+ export { init, initFromOC, initFromManifold, prewarm, getKernel, registerKernel, withKernel, getKernelCapabilities, withQuality, registerKernelTier, getKernelTier, withTier, BrepkitAdapter, OcctWasmAdapter, } from './kernel/index.js';
5
+ export { currentQuality } from './kernel/quality.js';
6
+ export type { QualityLevel } from './kernel/quality.js';
7
+ export { EXACT_BREP_CAPABILITIES, DEFAULT_CAPABILITIES } from './kernel/capabilities.js';
8
+ export type { KernelCapabilities, TessellationModel } from './kernel/capabilities.js';
5
9
  export type { KernelAdapter, BrepkitHandle, OcctWasmHandle, OcctWasmModule, OcctKernelWasm, SurfaceType, ShapeOrientation, ShapeType, KernelBooleanOps, KernelBuilderOps, KernelCore, KernelCurveOps, KernelEvolutionOps, KernelIOOps, KernelMeasureOps, KernelMeshOps, KernelModifierOps, KernelPrimitiveOps, KernelRepairOps, KernelSurfaceOps, KernelSweepOps, KernelTopologyOps, KernelTransformOps, } from './kernel/index.js';
6
10
  export { supportsProjection, supportsConstraintSketch } from './kernel/index.js';
7
11
  export type { ProjectionCapability, ConstraintSketchCapability } from './kernel/index.js';
package/dist/io.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_meshFns = require("./meshFns-CR8dRmoo.cjs");
3
- const require_importFns = require("./importFns-D8EPeKcC.cjs");
2
+ const require_meshFns = require("./meshFns-B5jxU_H4.cjs");
3
+ const require_importFns = require("./importFns-B7pbqJhZ.cjs");
4
4
  exports.blueprintToDXF = require_importFns.blueprintToDXF;
5
5
  exports.exportDXF = require_importFns.exportDXF;
6
6
  exports.exportGlb = require_importFns.exportGlb;
package/dist/io.js CHANGED
@@ -1,3 +1,3 @@
1
- import { n as exportSTEP, r as exportSTL, t as exportIGES } from "./meshFns-BCggXbKk.js";
2
- import { a as importSVG, c as blueprintToDXF, d as exportGltf, f as exportOBJ, i as exportSTEPConfigured, l as exportDXF, n as importSTEP, o as importSVGPathD, r as importSTL, s as exportThreeMF, t as importIGES, u as exportGlb } from "./importFns-Cid57qQ1.js";
1
+ import { n as exportSTEP, r as exportSTL, t as exportIGES } from "./meshFns-Cog1SKSV.js";
2
+ import { a as importSVG, c as blueprintToDXF, d as exportGltf, f as exportOBJ, i as exportSTEPConfigured, l as exportDXF, n as importSTEP, o as importSVGPathD, r as importSTL, s as exportThreeMF, t as importIGES, u as exportGlb } from "./importFns-BBnjqm6T.js";
3
3
  export { blueprintToDXF, exportDXF, exportGlb, exportGltf, exportIGES, exportOBJ, exportSTEP, exportSTEPConfigured, exportSTL, exportThreeMF, importIGES, importSTEP, importSTL, importSVG, importSVGPathD };
@@ -1,3 +1,4 @@
1
+ import { KernelCapabilities } from '../capabilities.js';
1
2
  import { ConstraintSketchCapability, KernelAdapter, KernelInstance, KernelShape } from '../types.js';
2
3
  /**
3
4
  * brepkit-only extensions that live outside `KernelAdapter` and
@@ -20,6 +21,7 @@ export interface BrepkitAdapter extends KernelAdapter, ConstraintSketchCapabilit
20
21
  export declare class BrepkitAdapter {
21
22
  readonly oc: KernelInstance;
22
23
  readonly kernelId = "brepkit";
24
+ readonly capabilities: KernelCapabilities;
23
25
  /** The underlying brepkit WASM kernel instance (typed). */
24
26
  private readonly bk;
25
27
  constructor(brepkitKernel: KernelInstance);
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Kernel capability flags — let callers route work by what a kernel *is*, not by
3
+ * its id. The headline need: send export/measurement to an exact B-rep kernel
4
+ * and fast previews to a mesh kernel without hard-coding `'manifold'` vs
5
+ * `'occt-wasm'` at every call site.
6
+ *
7
+ * `tessellationModel` also tells the quality layer (see {@link ./quality.js})
8
+ * *how* a kernel's mesh resolution is controlled:
9
+ * - `'build-time'` — the mesh is fixed when the solid is built (e.g. Manifold's
10
+ * global circular-segment setting); quality must be applied *before* building.
11
+ * - `'extract-time'`— the shape is exact and tessellated on demand with a
12
+ * per-call deflection (e.g. OCCT); quality is the default deflection at
13
+ * `mesh()`/export time.
14
+ * - `'none'` — no tessellation control (or not a meshing kernel).
15
+ * @module
16
+ */
17
+ export type TessellationModel = 'build-time' | 'extract-time' | 'none';
18
+ export interface KernelCapabilities {
19
+ /** Exact B-rep geometry (vs. a mesh approximation). */
20
+ readonly exact: boolean;
21
+ /** Can serialize to B-rep exchange formats (BREP/STEP). */
22
+ readonly brepExport: boolean;
23
+ /** Volume/area/length match the analytic value (vs. mesh-approximate). */
24
+ readonly exactMeasurement: boolean;
25
+ /** How tessellation resolution is controlled — see module docs. */
26
+ readonly tessellationModel: TessellationModel;
27
+ }
28
+ /** Default for an exact B-rep kernel (OCCT family, brepkit). */
29
+ export declare const EXACT_BREP_CAPABILITIES: KernelCapabilities;
30
+ /**
31
+ * Conservative fallback for a kernel that doesn't declare capabilities: assume
32
+ * exact B-rep so export/measurement aren't wrongly blocked, but claim no
33
+ * tessellation control.
34
+ */
35
+ export declare const DEFAULT_CAPABILITIES: KernelCapabilities;
@@ -1,5 +1,7 @@
1
1
  import { KernelAdapter, KernelInstance } from './types.js';
2
2
  import { Kernel2DCapability } from './kernel2dTypes.js';
3
+ import { KernelCapabilities } from './capabilities.js';
4
+ import { QualityLevel } from './quality.js';
3
5
  import { OcctWasmAdapter } from './occtWasm/occtWasmAdapter.js';
4
6
  type ManifoldModule = any;
5
7
  /** Initialise and register the manifold kernel from a loaded manifold-3d module. */
@@ -32,6 +34,34 @@ export declare function getKernel2D(id?: string): KernelAdapter & Kernel2DCapabi
32
34
  */
33
35
  export declare function getActiveKernelId(): string | null;
34
36
  export declare function withKernel<T extends Exclude<unknown, Promise<unknown>>>(id: string, fn: () => T): T;
37
+ /** Capabilities of a kernel (defaults to the active kernel). */
38
+ export declare function getKernelCapabilities(id?: string): KernelCapabilities;
39
+ /**
40
+ * Run `fn` at a tessellation quality level. For `build-time` kernels (Manifold)
41
+ * the level is pushed to the kernel's global setting on enter and restored on
42
+ * exit; for `extract-time` kernels (OCCT) it becomes the default deflection at
43
+ * `mesh()`/export inside `fn`. Synchronous only (mirrors {@link withKernel}).
44
+ */
45
+ export declare function withQuality<T extends Exclude<unknown, Promise<unknown>>>(level: QualityLevel, fn: () => T): T;
46
+ interface KernelTier {
47
+ readonly kernel: string;
48
+ readonly quality: QualityLevel;
49
+ }
50
+ /**
51
+ * Bind a named tier to a (kernel, quality) pair — e.g. a `'preview'` tier on a
52
+ * fast mesh kernel at `'draft'` quality, and an `'exact'` tier on an OCCT
53
+ * kernel at `'fine'`. Lets call sites express intent (`withTier('preview', …)`)
54
+ * instead of hard-coding a kernel id + quality knob.
55
+ */
56
+ export declare function registerKernelTier(name: string, tier: KernelTier): void;
57
+ /** The (kernel, quality) a tier resolves to, or undefined if unregistered. */
58
+ export declare function getKernelTier(name: string): KernelTier | undefined;
59
+ /**
60
+ * Run `fn` under a registered tier: switches to the tier's kernel and applies
61
+ * its quality (both restored on exit). Composes {@link withKernel} and
62
+ * {@link withQuality}. Throws if the tier is unregistered.
63
+ */
64
+ export declare function withTier<T extends Exclude<unknown, Promise<unknown>>>(name: string, fn: () => T): T;
35
65
  /** Initialise the brepjs kernel from a loaded WASM instance. */
36
66
  export declare function initFromOC(oc: KernelInstance): void;
37
67
  /**
@@ -1,4 +1,6 @@
1
1
  import { KernelInstance } from '../types.js';
2
+ import { KernelCapabilities } from '../capabilities.js';
3
+ import { QualityLevel } from '../quality.js';
2
4
  export interface KernelCore {
3
5
  /**
4
6
  * The raw kernel WASM instance.
@@ -12,6 +14,19 @@ export interface KernelCore {
12
14
  * Used to prevent mixing shapes from different kernels.
13
15
  */
14
16
  readonly kernelId: string;
17
+ /**
18
+ * What this kernel *is* — exact vs mesh-approximate, can export B-rep, how
19
+ * tessellation is controlled. Lets callers route export/measurement and
20
+ * quality without hard-coding kernel ids. See {@link ../capabilities.js}.
21
+ */
22
+ readonly capabilities: KernelCapabilities;
23
+ /**
24
+ * Apply a tessellation quality level. Implemented only by `build-time`
25
+ * kernels (e.g. Manifold maps it to a global circular-segment setting before
26
+ * solids are built); `extract-time` kernels leave this undefined and instead
27
+ * read the active level as their default deflection at `mesh()`/export time.
28
+ */
29
+ setQuality?(level: QualityLevel): void;
15
30
  /** Dispose a kernel handle, releasing its resources. */
16
31
  dispose(handle: {
17
32
  delete(): void;
@@ -1,9 +1,18 @@
1
1
  import { KernelAdapter } from '../interfaces/index.js';
2
+ import { KernelCapabilities } from '../capabilities.js';
3
+ import { QualityLevel } from '../quality.js';
2
4
  import { ManifoldModule } from './helpers.js';
3
5
  export interface ManifoldAdapter extends KernelAdapter {
4
6
  }
5
7
  export declare class ManifoldAdapter {
6
8
  readonly oc: any;
7
9
  readonly kernelId = "manifold";
10
+ readonly capabilities: KernelCapabilities;
11
+ /**
12
+ * Map a quality level to Manifold's global tessellation. Clearing the segment
13
+ * count and driving by an angle bound makes it radius-adaptive (a small sphere
14
+ * still gets enough facets).
15
+ */
16
+ setQuality(level: QualityLevel): void;
8
17
  constructor(module: ManifoldModule);
9
18
  }
@@ -4,6 +4,7 @@ import { CrossSection, Vec3 } from './approximations.js';
4
4
  type ManifoldOriented = {
5
5
  rotate(r: Vec3): unknown;
6
6
  translate(t: Vec3): unknown;
7
+ transform(m: number[]): unknown;
7
8
  };
8
9
  /**
9
10
  * Place a +Z extrusion so its base sits at the section origin and it grows along
@@ -1,3 +1,4 @@
1
+ import { KernelCapabilities } from '../capabilities.js';
1
2
  import { KernelAdapter, KernelInstance } from '../types.js';
2
3
  import { Kernel2DCapability } from '../kernel2dTypes.js';
3
4
  export interface DefaultAdapter extends KernelAdapter, Kernel2DCapability {
@@ -12,5 +13,6 @@ export interface DefaultAdapter extends KernelAdapter, Kernel2DCapability {
12
13
  export declare class DefaultAdapter {
13
14
  readonly oc: KernelInstance;
14
15
  readonly kernelId = "occt";
16
+ readonly capabilities: KernelCapabilities;
15
17
  constructor(oc: KernelInstance);
16
18
  }
@@ -1,3 +1,3 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_occtWasmAdapter = require("../../occtWasmAdapter-BuIYbIwy.cjs");
2
+ const require_occtWasmAdapter = require("../../occtWasmAdapter-BPu07Zxg.cjs");
3
3
  exports.OcctWasmAdapter = require_occtWasmAdapter.OcctWasmAdapter;
@@ -1,3 +1,4 @@
1
+ import { KernelCapabilities } from '../capabilities.js';
1
2
  import { BooleanOpType, BooleanOptions, CheckBooleanResult, DiagnosticOperationResult, DistanceResult, KernelAdapter, KernelEdgeMeshResult, KernelInstance, KernelMeshResult, KernelShape, KernelType, MeshOptions, NurbsCurveData, OperationResult, ShapeOrientation, ShapeType, StepAssemblyPart, SurfaceType } from '../types.js';
2
3
  import { BulkMeasurement } from '../interfaces/measureOps.js';
3
4
  import { TransformEntry } from '../interfaces/transformOps.js';
@@ -21,6 +22,7 @@ export interface OcctKernelOwner {
21
22
  export declare class OcctWasmAdapter implements KernelAdapter {
22
23
  readonly oc: KernelInstance;
23
24
  readonly kernelId = "occt-wasm";
25
+ readonly capabilities: KernelCapabilities;
24
26
  private readonly Module;
25
27
  private readonly k;
26
28
  private readonly owner;
@@ -1,2 +1,2 @@
1
- import { t as OcctWasmAdapter } from "../../occtWasmAdapter-B0PIezOZ.js";
1
+ import { t as OcctWasmAdapter } from "../../occtWasmAdapter-Ctfykwr2.js";
2
2
  export { OcctWasmAdapter };
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Tessellation quality levels — a kernel-agnostic fidelity/speed dial.
3
+ *
4
+ * Callers pick an intent (`'draft' | 'standard' | 'fine'`) instead of
5
+ * kernel-specific knobs (Manifold circular segments vs. OCCT deflection). Each
6
+ * level maps to:
7
+ * - a **deflection** pair, used as the default at `mesh()`/export for
8
+ * `extract-time` kernels (OCCT), and
9
+ * - a per-kernel `setQuality()` for `build-time` kernels (Manifold), which
10
+ * translate the level to their native global setting before a solid is built.
11
+ *
12
+ * The current level is process-global state, scoped by `withQuality()` /
13
+ * `withTier()` in `./index.js`. This module is pure data + state so it has no
14
+ * dependency on the kernel registry.
15
+ * @module
16
+ */
17
+ export type QualityLevel = 'draft' | 'standard' | 'fine';
18
+ export interface QualityDeflection {
19
+ /** Linear deflection (absolute, model units). */
20
+ readonly tolerance: number;
21
+ /** Angular deflection (radians). */
22
+ readonly angularTolerance: number;
23
+ }
24
+ /** The active quality level (defaults to `'standard'`). */
25
+ export declare function currentQuality(): QualityLevel;
26
+ /** Deflection params for a level (defaults to the active level). */
27
+ export declare function qualityDeflection(level?: QualityLevel): QualityDeflection;
28
+ /** @internal — set by `withQuality`/`withTier`; restored in their `finally`. */
29
+ export declare function setQualityState(level: QualityLevel): void;
@@ -1,7 +1,7 @@
1
- import { Z as getKernel } from "./shapeTypes-C-32Klnb.js";
1
+ import { Z as getKernel } from "./shapeTypes-CQscfe8k.js";
2
2
  import { A as ok, b as err, d as validationError, t as BrepErrorCode } from "./errors-DNWJsfVU.js";
3
- import { w as kernelCallRaw } from "./topologyQueryFns-C0yUIRDE.js";
4
- import { p as uvBounds } from "./faceFns-Qrz3lIDv.js";
3
+ import { w as kernelCallRaw } from "./topologyQueryFns-BuZ2h4o9.js";
4
+ import { p as uvBounds } from "./faceFns-CWU_70z7.js";
5
5
  //#region src/measurement/measureCache.ts
6
6
  var cache = /* @__PURE__ */ new WeakMap();
7
7
  function getCachedMeasurement(shape, key) {
@@ -1,7 +1,7 @@
1
- const require_shapeTypes = require("./shapeTypes-DAhE_41P.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-CPClTSJn.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-CBVVRWvE.cjs");
4
- const require_faceFns = require("./faceFns-_m0px2ug.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-jK9Vpzqr.cjs");
4
+ const require_faceFns = require("./faceFns-BmaS4kkW.cjs");
5
5
  //#region src/measurement/measureCache.ts
6
6
  var cache = /* @__PURE__ */ new WeakMap();
7
7
  function getCachedMeasurement(shape, key) {
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_measureFns = require("./measureFns-CqSFeI4R.cjs");
2
+ const require_measureFns = require("./measureFns-HhPPUiRO.cjs");
3
3
  exports.createDistanceQuery = require_measureFns.createDistanceQuery;
4
4
  exports.measureArea = require_measureFns.measureArea;
5
5
  exports.measureDistance = require_measureFns.measureDistance;
@@ -1,2 +1,2 @@
1
- import { a as measureDistance, c as measureLinearProps, d as measureVolumeProps, l as measureSurfaceProps, n as measureArea, o as measureDistanceProps, s as measureLength, t as createDistanceQuery, u as measureVolume } from "./measureFns-95m36tbx.js";
1
+ import { a as measureDistance, c as measureLinearProps, d as measureVolumeProps, l as measureSurfaceProps, n as measureArea, o as measureDistanceProps, s as measureLength, t as createDistanceQuery, u as measureVolume } from "./measureFns-Bye5UsOe.js";
2
2
  export { createDistanceQuery, measureArea, measureDistance, measureDistanceProps, measureLength, measureLinearProps, measureSurfaceProps, measureVolume, measureVolumeProps };
@@ -1,7 +1,7 @@
1
- const require_shapeTypes = require("./shapeTypes-DAhE_41P.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-CPClTSJn.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-CBVVRWvE.cjs");
4
- const require_shapeFns = require("./shapeFns-DNqkQ2yJ.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-jK9Vpzqr.cjs");
4
+ const require_shapeFns = require("./shapeFns-ClKe2vri.cjs");
5
5
  //#region src/topology/meshCache.ts
6
6
  /**
7
7
  * Build a parameter key for the inner cache map (excludes shape identity).
@@ -121,7 +121,9 @@ function createMeshCache() {
121
121
  * @returns A ShapeMesh containing typed arrays ready for GPU upload.
122
122
  * @see toBufferGeometryData — convert to Three.js BufferGeometry format
123
123
  */
124
- function mesh(shape, { tolerance = .001, angularTolerance = .1, skipNormals = false, includeUVs = false, cache = true, signal } = {}) {
124
+ function mesh(shape, opts = {}) {
125
+ const quality = require_shapeTypes.qualityDeflection();
126
+ const { tolerance = quality.tolerance, angularTolerance = quality.angularTolerance, skipNormals = false, includeUVs = false, cache = true, signal } = opts;
125
127
  signal?.throwIfAborted();
126
128
  const cacheKey = buildMeshCacheKey(tolerance, angularTolerance, skipNormals, includeUVs);
127
129
  if (cache) {
@@ -159,7 +161,9 @@ function mesh(shape, { tolerance = .001, angularTolerance = .1, skipNormals = fa
159
161
  * @returns An EdgeMesh containing line vertex positions and per-edge groups.
160
162
  * @see toLineGeometryData — convert to Three.js LineSegments format
161
163
  */
162
- function meshEdges(shape, { tolerance = .001, angularTolerance = .1, cache = true } = {}) {
164
+ function meshEdges(shape, opts = {}) {
165
+ const quality = require_shapeTypes.qualityDeflection();
166
+ const { tolerance = quality.tolerance, angularTolerance = quality.angularTolerance, cache = true } = opts;
163
167
  const cacheKey = buildEdgeMeshCacheKey(tolerance, angularTolerance);
164
168
  if (cache) {
165
169
  const cached = getEdgeMeshForShape(shape.wrapped, cacheKey);
@@ -263,7 +267,9 @@ function exportSTEP(shape) {
263
267
  *
264
268
  * @returns Ok with a Blob (MIME type `application/sla`), or Err on failure.
265
269
  */
266
- function exportSTL(shape, { tolerance = .001, angularTolerance = .1, binary = false } = {}) {
270
+ function exportSTL(shape, opts = {}) {
271
+ const quality = require_shapeTypes.qualityDeflection();
272
+ const { tolerance = quality.tolerance, angularTolerance = quality.angularTolerance, binary = false } = opts;
267
273
  const unserializable = probeSerializable(shape, "STL");
268
274
  if (unserializable) return require_errors.err(unserializable);
269
275
  try {
@@ -1,7 +1,7 @@
1
- import { Z as getKernel } from "./shapeTypes-C-32Klnb.js";
1
+ import { Z as getKernel, gt as qualityDeflection } from "./shapeTypes-CQscfe8k.js";
2
2
  import { A as ok, b as err, r as ioError } from "./errors-DNWJsfVU.js";
3
- import { d as getSolids, n as getBounds } from "./topologyQueryFns-C0yUIRDE.js";
4
- import { O as getFaceOrigins } from "./shapeFns-Ct1lekCK.js";
3
+ import { d as getSolids, n as getBounds } from "./topologyQueryFns-BuZ2h4o9.js";
4
+ import { O as getFaceOrigins } from "./shapeFns-CMQD_3Rz.js";
5
5
  //#region src/topology/meshCache.ts
6
6
  /**
7
7
  * Build a parameter key for the inner cache map (excludes shape identity).
@@ -121,7 +121,9 @@ function createMeshCache() {
121
121
  * @returns A ShapeMesh containing typed arrays ready for GPU upload.
122
122
  * @see toBufferGeometryData — convert to Three.js BufferGeometry format
123
123
  */
124
- function mesh(shape, { tolerance = .001, angularTolerance = .1, skipNormals = false, includeUVs = false, cache = true, signal } = {}) {
124
+ function mesh(shape, opts = {}) {
125
+ const quality = qualityDeflection();
126
+ const { tolerance = quality.tolerance, angularTolerance = quality.angularTolerance, skipNormals = false, includeUVs = false, cache = true, signal } = opts;
125
127
  signal?.throwIfAborted();
126
128
  const cacheKey = buildMeshCacheKey(tolerance, angularTolerance, skipNormals, includeUVs);
127
129
  if (cache) {
@@ -159,7 +161,9 @@ function mesh(shape, { tolerance = .001, angularTolerance = .1, skipNormals = fa
159
161
  * @returns An EdgeMesh containing line vertex positions and per-edge groups.
160
162
  * @see toLineGeometryData — convert to Three.js LineSegments format
161
163
  */
162
- function meshEdges(shape, { tolerance = .001, angularTolerance = .1, cache = true } = {}) {
164
+ function meshEdges(shape, opts = {}) {
165
+ const quality = qualityDeflection();
166
+ const { tolerance = quality.tolerance, angularTolerance = quality.angularTolerance, cache = true } = opts;
163
167
  const cacheKey = buildEdgeMeshCacheKey(tolerance, angularTolerance);
164
168
  if (cache) {
165
169
  const cached = getEdgeMeshForShape(shape.wrapped, cacheKey);
@@ -263,7 +267,9 @@ function exportSTEP(shape) {
263
267
  *
264
268
  * @returns Ok with a Blob (MIME type `application/sla`), or Err on failure.
265
269
  */
266
- function exportSTL(shape, { tolerance = .001, angularTolerance = .1, binary = false } = {}) {
270
+ function exportSTL(shape, opts = {}) {
271
+ const quality = qualityDeflection();
272
+ const { tolerance = quality.tolerance, angularTolerance = quality.angularTolerance, binary = false } = opts;
267
273
  const unserializable = probeSerializable(shape, "STL");
268
274
  if (unserializable) return err(unserializable);
269
275
  try {
@@ -1,4 +1,24 @@
1
1
  const require_vec3 = require("./vec3-CFwOI0ZI.cjs");
2
+ //#region src/kernel/capabilities.ts
3
+ /** Default for an exact B-rep kernel (OCCT family, brepkit). */
4
+ var EXACT_BREP_CAPABILITIES = {
5
+ exact: true,
6
+ brepExport: true,
7
+ exactMeasurement: true,
8
+ tessellationModel: "extract-time"
9
+ };
10
+ /**
11
+ * Conservative fallback for a kernel that doesn't declare capabilities: assume
12
+ * exact B-rep so export/measurement aren't wrongly blocked, but claim no
13
+ * tessellation control.
14
+ */
15
+ var DEFAULT_CAPABILITIES = {
16
+ exact: true,
17
+ brepExport: true,
18
+ exactMeasurement: true,
19
+ tessellationModel: "none"
20
+ };
21
+ //#endregion
2
22
  //#region src/kernel/hullGeometry.ts
3
23
  function sub(a, b) {
4
24
  return {
@@ -4122,6 +4142,7 @@ function notImplemented(method) {
4122
4142
  var OcctWasmAdapter = class OcctWasmAdapter {
4123
4143
  oc;
4124
4144
  kernelId = "occt-wasm";
4145
+ capabilities = EXACT_BREP_CAPABILITIES;
4125
4146
  Module;
4126
4147
  k;
4127
4148
  owner;
@@ -4925,6 +4946,18 @@ var OcctWasmAdapter = class OcctWasmAdapter {
4925
4946
  }
4926
4947
  };
4927
4948
  //#endregion
4949
+ Object.defineProperty(exports, "DEFAULT_CAPABILITIES", {
4950
+ enumerable: true,
4951
+ get: function() {
4952
+ return DEFAULT_CAPABILITIES;
4953
+ }
4954
+ });
4955
+ Object.defineProperty(exports, "EXACT_BREP_CAPABILITIES", {
4956
+ enumerable: true,
4957
+ get: function() {
4958
+ return EXACT_BREP_CAPABILITIES;
4959
+ }
4960
+ });
4928
4961
  Object.defineProperty(exports, "OcctWasmAdapter", {
4929
4962
  enumerable: true,
4930
4963
  get: function() {
@@ -1,4 +1,24 @@
1
1
  import { n as wasmIndex } from "./vec3-Dpha8d5k.js";
2
+ //#region src/kernel/capabilities.ts
3
+ /** Default for an exact B-rep kernel (OCCT family, brepkit). */
4
+ var EXACT_BREP_CAPABILITIES = {
5
+ exact: true,
6
+ brepExport: true,
7
+ exactMeasurement: true,
8
+ tessellationModel: "extract-time"
9
+ };
10
+ /**
11
+ * Conservative fallback for a kernel that doesn't declare capabilities: assume
12
+ * exact B-rep so export/measurement aren't wrongly blocked, but claim no
13
+ * tessellation control.
14
+ */
15
+ var DEFAULT_CAPABILITIES = {
16
+ exact: true,
17
+ brepExport: true,
18
+ exactMeasurement: true,
19
+ tessellationModel: "none"
20
+ };
21
+ //#endregion
2
22
  //#region src/kernel/hullGeometry.ts
3
23
  function sub(a, b) {
4
24
  return {
@@ -4122,6 +4142,7 @@ function notImplemented(method) {
4122
4142
  var OcctWasmAdapter = class OcctWasmAdapter {
4123
4143
  oc;
4124
4144
  kernelId = "occt-wasm";
4145
+ capabilities = EXACT_BREP_CAPABILITIES;
4125
4146
  Module;
4126
4147
  k;
4127
4148
  owner;
@@ -4925,4 +4946,4 @@ var OcctWasmAdapter = class OcctWasmAdapter {
4925
4946
  }
4926
4947
  };
4927
4948
  //#endregion
4928
- export { serializeCurve2d$1 as _, curveTypeName as a, quickHull as b, intersectCurves2dFn as c, makeEllipse2d$1 as d, makeLine2d$1 as f, scaleCurve2d$1 as g, rotateCurve2d$1 as h, curveBounds as i, makeBezier2d$1 as l, mirrorAtPoint as m, addCurveToBBox as n, deserializeCurve2d$1 as o, mirrorAcrossAxis as p, createBBox2d as r, evaluateCurve2d$1 as s, OcctWasmAdapter as t, makeCircle2d$1 as u, tangentCurve2d as v, translateCurve2d$1 as y };
4949
+ export { EXACT_BREP_CAPABILITIES as S, serializeCurve2d$1 as _, curveTypeName as a, quickHull as b, intersectCurves2dFn as c, makeEllipse2d$1 as d, makeLine2d$1 as f, scaleCurve2d$1 as g, rotateCurve2d$1 as h, curveBounds as i, makeBezier2d$1 as l, mirrorAtPoint as m, addCurveToBBox as n, deserializeCurve2d$1 as o, mirrorAcrossAxis as p, createBBox2d as r, evaluateCurve2d$1 as s, OcctWasmAdapter as t, makeCircle2d$1 as u, tangentCurve2d as v, DEFAULT_CAPABILITIES as x, translateCurve2d$1 as y };
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_historyFns = require("./historyFns-B-R48Dze.cjs");
3
- const require_extrudeFns = require("./extrudeFns-yfUN1m7e.cjs");
2
+ const require_historyFns = require("./historyFns-CDVZ3KM8.cjs");
3
+ const require_extrudeFns = require("./extrudeFns-BDgqrytA.cjs");
4
4
  exports.addChild = require_historyFns.addChild;
5
5
  exports.addStep = require_historyFns.addStep;
6
6
  exports.circularPattern = require_historyFns.circularPattern;
@@ -1,3 +1,3 @@
1
- import { C as walkAssembly, D as exportAssemblySTEP, E as linearPattern, O as createAssembly, S as updateNode, T as gridPattern, _ as collectShapes, a as findStep, b as findNode, c as registerOperation, d as replayHistory, g as addChild, h as undoLast, l as registerShape, m as stepsFrom, n as createHistory, o as getShape, p as stepCount, r as createRegistry, s as modifyStep, t as addStep, u as replayFrom, v as countNodes, w as circularPattern, x as removeChild, y as createAssemblyNode } from "./historyFns-BJKkvynn.js";
2
- import { c as sweep, i as complexExtrude, l as twistExtrude, s as supportExtrude } from "./extrudeFns-DZEN4PPg.js";
1
+ import { C as walkAssembly, D as exportAssemblySTEP, E as linearPattern, O as createAssembly, S as updateNode, T as gridPattern, _ as collectShapes, a as findStep, b as findNode, c as registerOperation, d as replayHistory, g as addChild, h as undoLast, l as registerShape, m as stepsFrom, n as createHistory, o as getShape, p as stepCount, r as createRegistry, s as modifyStep, t as addStep, u as replayFrom, v as countNodes, w as circularPattern, x as removeChild, y as createAssemblyNode } from "./historyFns-CnUZzNHQ.js";
2
+ import { c as sweep, i as complexExtrude, l as twistExtrude, s as supportExtrude } from "./extrudeFns-19bOK66L.js";
3
3
  export { addChild, addStep, circularPattern, collectShapes, complexExtrude, countNodes, createAssembly, createAssemblyNode, createHistory, createRegistry, exportAssemblySTEP, findNode, findStep, getShape as getHistoryShape, gridPattern, linearPattern, modifyStep, registerOperation, registerShape, removeChild, replayFrom, replayHistory, stepCount, stepsFrom, supportExtrude, sweep, twistExtrude, undoLast, updateNode, walkAssembly };