brepjs 20.11.2 → 20.12.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 (93) hide show
  1. package/dist/2d.cjs +6 -6
  2. package/dist/2d.js +6 -6
  3. package/dist/{adjacencyFns-Cu9Zjjsv.js → adjacencyFns-C0YD3Zrp.js} +1 -1
  4. package/dist/{adjacencyFns-ChCZyiBA.cjs → adjacencyFns-Cibtcqdl.cjs} +1 -1
  5. package/dist/{blueprint-DxAD4jsT.cjs → blueprint-CHBjfXQO.cjs} +6 -6
  6. package/dist/{blueprint-CHmxRlJw.js → blueprint-CN5dNZ1h.js} +6 -6
  7. package/dist/{blueprintFns-CVjTOusS.js → blueprintFns--26Mr3Lm.js} +3 -3
  8. package/dist/{blueprintFns-BxEYPNV5.cjs → blueprintFns-DOdzDcPX.cjs} +3 -3
  9. package/dist/{blueprintSketcher-Cy1atQHR.cjs → blueprintSketcher-CG4H8A6M.cjs} +3 -3
  10. package/dist/{blueprintSketcher-BECQIPIt.js → blueprintSketcher-CQPC4SEF.js} +3 -3
  11. package/dist/{boolean2D-DF0i9O9B.cjs → boolean2D-DjJogOY-.cjs} +5 -5
  12. package/dist/{boolean2D-Cf9l3KK0.js → boolean2D-tR_2N_Vy.js} +5 -5
  13. package/dist/brepjs.cjs +41 -30
  14. package/dist/brepjs.js +41 -31
  15. package/dist/{cameraFns-nr0q89z5.cjs → cameraFns-CUX8VNKT.cjs} +3 -3
  16. package/dist/{cameraFns-CkLHhFRs.js → cameraFns-xUCRxpsa.js} +3 -3
  17. package/dist/core/errors.d.ts +1 -0
  18. package/dist/core.cjs +3 -3
  19. package/dist/core.js +3 -3
  20. package/dist/{cornerFinder-CrceCNPv.cjs → cornerFinder-Bg67ivza.cjs} +1 -1
  21. package/dist/{cornerFinder-6S-UlbNA.js → cornerFinder-utEooGH7.js} +1 -1
  22. package/dist/{curveFns-DdG-DkSs.js → curveFns-AMqd_WaO.js} +1 -1
  23. package/dist/{curveFns-BBx04S8G.cjs → curveFns-CMiP40Ko.cjs} +1 -1
  24. package/dist/{drawFns-COim8Ti4.cjs → drawFns-C_YnK4Ar.cjs} +13 -13
  25. package/dist/{drawFns-Vb8LHeb-.js → drawFns-D6YK0JbH.js} +13 -13
  26. package/dist/{errors-CUsZRWJ7.js → errors-BTccWbtE.js} +1 -0
  27. package/dist/{errors-B9r_Dzs1.cjs → errors-O_blYTWT.cjs} +1 -0
  28. package/dist/{faceFns-DolWAvAu.cjs → faceFns-CdUF0JOe.cjs} +2 -2
  29. package/dist/{faceFns-3VaHLMb8.js → faceFns-Ciq7lYTa.js} +2 -2
  30. package/dist/{healingFns-BZRF9VAs.cjs → healingFns-CrUTSyyK.cjs} +4 -4
  31. package/dist/{healingFns-xog7HTv1.js → healingFns-Dchd7dm5.js} +4 -4
  32. package/dist/{helpers-BhBnVALd.js → helpers-CBXclBes.js} +6 -6
  33. package/dist/{helpers-BjVuQMLI.cjs → helpers-GZyqAK5c.cjs} +6 -6
  34. package/dist/{importFns-Uz6iAurc.cjs → importFns-C3LbWc6X.cjs} +2 -2
  35. package/dist/{importFns-BExUbyad.js → importFns-CcPhunG6.js} +2 -2
  36. package/dist/index.d.ts +1 -1
  37. package/dist/io.cjs +2 -2
  38. package/dist/io.js +2 -2
  39. package/dist/{loftFns-nWtrZfoY.cjs → loftFns-BsFinbgs.cjs} +1 -1
  40. package/dist/{loftFns-B7rgdvke.js → loftFns-pMh0ET-J.js} +1 -1
  41. package/dist/{measureFns-eOGL04SI.cjs → measureFns-Cyjpl2Kl.cjs} +3 -3
  42. package/dist/{measureFns-AxoHtJ3J.js → measureFns-DukwjzUl.js} +3 -3
  43. package/dist/measurement.cjs +2 -2
  44. package/dist/measurement.js +2 -2
  45. package/dist/{meshFns-BhOC8SuD.cjs → meshFns-BNrdUhgG.cjs} +3 -3
  46. package/dist/{meshFns-C1nJQkWC.js → meshFns-LytwBtBQ.js} +3 -3
  47. package/dist/operations.cjs +2 -2
  48. package/dist/operations.js +2 -2
  49. package/dist/{originTrackingFns-DRRVoZxG.cjs → originTrackingFns-BRJ2PZ8J.cjs} +1 -1
  50. package/dist/{originTrackingFns-4z3sWvOD.js → originTrackingFns-BqlxFeWq.js} +1 -1
  51. package/dist/{planeOps-DgG0vHN7.js → planeOps-D3yDuMux.js} +1 -1
  52. package/dist/{planeOps-C7sRqzno.cjs → planeOps-DZfLToKZ.cjs} +1 -1
  53. package/dist/{primitiveFns-D-5rBhH4.js → primitiveFns-Vf_2qORp.js} +4 -4
  54. package/dist/{primitiveFns-BdSDbmhs.cjs → primitiveFns-eE9jyVCs.cjs} +4 -4
  55. package/dist/{principalBoxFns-BeOAlafI.js → principalBoxFns-ClynMQMo.js} +3 -3
  56. package/dist/{principalBoxFns-CY98NNKz.cjs → principalBoxFns-uZrBoGLA.cjs} +3 -3
  57. package/dist/projection.cjs +1 -1
  58. package/dist/projection.js +1 -1
  59. package/dist/query.cjs +2 -2
  60. package/dist/query.js +2 -2
  61. package/dist/{refResolveFns-DB8FIWrZ.js → refResolveFns-BvQkLKLw.js} +5 -5
  62. package/dist/{refResolveFns--VMNo9vf.cjs → refResolveFns-awGNYa3x.cjs} +5 -5
  63. package/dist/result.cjs +1 -1
  64. package/dist/result.js +1 -1
  65. package/dist/{shapeFns-CREKqmcG.cjs → shapeFns-CHFmX5HQ.cjs} +2 -2
  66. package/dist/{shapeFns-BTfhLPET.js → shapeFns-D7DcPxfx.js} +2 -2
  67. package/dist/shapeRef.cjs +1 -1
  68. package/dist/shapeRef.js +1 -1
  69. package/dist/sketching.cjs +3 -3
  70. package/dist/sketching.js +3 -3
  71. package/dist/{solidBuilders-CSg8AUaL.js → solidBuilders-DKNxcpSB.js} +6 -6
  72. package/dist/{solidBuilders-BeanhIbq.cjs → solidBuilders-fzrTygbj.cjs} +6 -6
  73. package/dist/{surfaceBuilders-4F0VrN1_.js → surfaceBuilders-B1Ikcte3.js} +3 -3
  74. package/dist/{surfaceBuilders-BdOO4OJU.cjs → surfaceBuilders-DFqsIPkm.cjs} +3 -3
  75. package/dist/text/fontRegistry.d.ts +12 -1
  76. package/dist/text.cjs +3 -2
  77. package/dist/text.d.ts +1 -1
  78. package/dist/text.js +3 -3
  79. package/dist/{textBlueprints-0pLR2X5a.cjs → textBlueprints-C38JfUeN.cjs} +40 -16
  80. package/dist/{textBlueprints-BpituhGG.js → textBlueprints-TLU7rjuN.js} +35 -17
  81. package/dist/{textMetrics-DmgaIDzF.js → textMetrics-CEnX8GBe.js} +2 -2
  82. package/dist/{textMetrics-BhIL6fpo.cjs → textMetrics-r9ldmBb5.cjs} +2 -2
  83. package/dist/{threadFns-LGRpYJea.cjs → threadFns-BzxB-0i5.cjs} +7 -7
  84. package/dist/{threadFns-C54cXKrZ.js → threadFns-eDV-yg06.js} +7 -7
  85. package/dist/topology.cjs +9 -9
  86. package/dist/topology.js +9 -9
  87. package/dist/{topologyQueryFns-BYXQ2Kkn.js → topologyQueryFns-DKNVBMuN.js} +1 -1
  88. package/dist/{topologyQueryFns-BJ5U4AmO.cjs → topologyQueryFns-gyva7bvF.cjs} +1 -1
  89. package/dist/{validityTypes-ClsRW650.js → validityTypes-BmqE7KfX.js} +1 -1
  90. package/dist/{validityTypes-C2l1ryPq.cjs → validityTypes-CwMwVFdY.cjs} +1 -1
  91. package/dist/vectors.cjs +1 -1
  92. package/dist/vectors.js +1 -1
  93. package/package.json +1 -1
package/dist/sketching.js CHANGED
@@ -1,6 +1,6 @@
1
- import { n as BaseSketcher2d, t as BlueprintSketcher } from "./blueprintSketcher-BECQIPIt.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-Vb8LHeb-.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-BpituhGG.js";
1
+ import { n as BaseSketcher2d, t as BlueprintSketcher } from "./blueprintSketcher-CQPC4SEF.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-D6YK0JbH.js";
3
+ import { a as Sketches, c as compoundSketchFace, d as sketchExtrude, f as sketchFace, g as sketchWires, h as sketchSweep, l as compoundSketchLoft, m as sketchRevolve, o as Sketch, p as sketchLoft, s as compoundSketchExtrude, u as compoundSketchRevolve, y as CompoundSketch } from "./textBlueprints-TLU7rjuN.js";
4
4
  // src/sketching.ts
5
5
  /**
6
6
  * brepjs/sketching — Sketcher, Drawing, and sketch-to-shape operations.
@@ -1,14 +1,14 @@
1
1
  import { C as isSolid, D as getShapeKind, E as GeometryCleanupError, G as _usingCtx, S as isShell, d as createSolid, f as createVertex, h as disposeResultShape, n as castResultShape, q as getKernel, s as createCompound, x as isShape3D } from "./shapeTypes-Db3yAgTO.js";
2
- import { E as ok, P as unwrap, b as isErr, d as validationError, g as err, i as kernelError, l as typeCastError, m as andThen, t as BrepErrorCode } from "./errors-CUsZRWJ7.js";
3
- import { C as subShapeHashes, c as getFaces, f as getVertices, p as getWires, s as getEdges } from "./topologyQueryFns-BYXQ2Kkn.js";
2
+ import { E as ok, P as unwrap, b as isErr, d as validationError, g as err, i as kernelError, l as typeCastError, m as andThen, t as BrepErrorCode } from "./errors-BTccWbtE.js";
3
+ import { C as subShapeHashes, c as getFaces, f as getVertices, p as getWires, s as getEdges } from "./topologyQueryFns-DKNVBMuN.js";
4
4
  import { n as HASH_CODE_MAX } from "./constants-iraOnb2p.js";
5
5
  import { a as vecDot, g as vecSub, h as vecScale, t as vecAdd } from "./vecOps-S-m9H_fe.js";
6
- import { o as resolvePlane } from "./planeOps-DgG0vHN7.js";
7
- import { _ as cast, y as downcast } from "./faceFns-3VaHLMb8.js";
8
- import { n as propagateOriginsByHash, r as propagateOriginsFromEvolution, t as getFaceOrigins } from "./originTrackingFns-4z3sWvOD.js";
6
+ import { o as resolvePlane } from "./planeOps-D3yDuMux.js";
7
+ import { _ as cast, y as downcast } from "./faceFns-Ciq7lYTa.js";
8
+ import { n as propagateOriginsByHash, r as propagateOriginsFromEvolution, t as getFaceOrigins } from "./originTrackingFns-BqlxFeWq.js";
9
9
  import { n as hasFaceRoles, r as propagateFaceRolesFromEvolution } from "./faceRoleFns-BPxzQF-n.js";
10
10
  import { n as getAtOrThrow, t as firstOrThrow } from "./arrayAccess-BpgouNir.js";
11
- import { r as makeFace } from "./surfaceBuilders-4F0VrN1_.js";
11
+ import { r as makeFace } from "./surfaceBuilders-B1Ikcte3.js";
12
12
  // src/topology/metadata/faceTagFns.ts
13
13
  var shapeTagStore = /* @__PURE__ */ new WeakMap();
14
14
  var tagMetadataStore = /* @__PURE__ */ new WeakMap();
@@ -1,14 +1,14 @@
1
1
  const require_shapeTypes = require("./shapeTypes-HDVHzNk1.cjs");
2
- const require_errors = require("./errors-B9r_Dzs1.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-BJ5U4AmO.cjs");
2
+ const require_errors = require("./errors-O_blYTWT.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-gyva7bvF.cjs");
4
4
  const require_constants = require("./constants-oee0S_x6.cjs");
5
5
  const require_vecOps = require("./vecOps-CrGEPPQM.cjs");
6
- const require_planeOps = require("./planeOps-C7sRqzno.cjs");
7
- const require_faceFns = require("./faceFns-DolWAvAu.cjs");
8
- const require_originTrackingFns = require("./originTrackingFns-DRRVoZxG.cjs");
6
+ const require_planeOps = require("./planeOps-DZfLToKZ.cjs");
7
+ const require_faceFns = require("./faceFns-CdUF0JOe.cjs");
8
+ const require_originTrackingFns = require("./originTrackingFns-BRJ2PZ8J.cjs");
9
9
  const require_faceRoleFns = require("./faceRoleFns-Db5bYj4Q.cjs");
10
10
  const require_arrayAccess = require("./arrayAccess-DpJYARwv.cjs");
11
- const require_surfaceBuilders = require("./surfaceBuilders-BdOO4OJU.cjs");
11
+ const require_surfaceBuilders = require("./surfaceBuilders-DFqsIPkm.cjs");
12
12
  // src/topology/metadata/faceTagFns.ts
13
13
  var shapeTagStore = /* @__PURE__ */ new WeakMap();
14
14
  var tagMetadataStore = /* @__PURE__ */ new WeakMap();
@@ -1,7 +1,7 @@
1
1
  import { G as _usingCtx, N as DisposalScope, c as createEdge, l as createFace, p as createWire, q as getKernel, y as isFace } from "./shapeTypes-Db3yAgTO.js";
2
- import { E as ok, d as validationError, g as err, i as kernelError, m as andThen } from "./errors-CUsZRWJ7.js";
3
- import { a as isPlanarFace } from "./validityTypes-ClsRW650.js";
4
- import { _ as cast, u as outerWire } from "./faceFns-3VaHLMb8.js";
2
+ import { E as ok, d as validationError, g as err, i as kernelError, m as andThen } from "./errors-BTccWbtE.js";
3
+ import { a as isPlanarFace } from "./validityTypes-BmqE7KfX.js";
4
+ import { _ as cast, u as outerWire } from "./faceFns-Ciq7lYTa.js";
5
5
  // src/utils/range.ts
6
6
  /** Generate an array of integers `[0, 1, …, len - 1]`. */
7
7
  function range(len) {
@@ -1,7 +1,7 @@
1
1
  const require_shapeTypes = require("./shapeTypes-HDVHzNk1.cjs");
2
- const require_errors = require("./errors-B9r_Dzs1.cjs");
3
- const require_validityTypes = require("./validityTypes-C2l1ryPq.cjs");
4
- const require_faceFns = require("./faceFns-DolWAvAu.cjs");
2
+ const require_errors = require("./errors-O_blYTWT.cjs");
3
+ const require_validityTypes = require("./validityTypes-CwMwVFdY.cjs");
4
+ const require_faceFns = require("./faceFns-CdUF0JOe.cjs");
5
5
  // src/utils/range.ts
6
6
  /** Generate an array of integers `[0, 1, …, len - 1]`. */
7
7
  function range(len) {
@@ -13,10 +13,21 @@ import { OpenTypeFont } from '../kernel/occt/wasmTypes/externals.js';
13
13
  * @returns The parsed opentype.js Font object.
14
14
  */
15
15
  export declare function loadFont(fontPath: string | ArrayBuffer, fontFamily?: string, force?: boolean): Promise<Result<OpenTypeFont>>;
16
+ /**
17
+ * Register a font that text functions use when no font has been loaded.
18
+ *
19
+ * Unlike {@link loadFont}, this does not occupy the `'default'` family: once any font is
20
+ * loaded, it takes precedence over the fallback.
21
+ *
22
+ * @param fontData - Raw OpenType/TrueType font bytes.
23
+ * @returns The parsed opentype.js Font object.
24
+ */
25
+ export declare function setFallbackFont(fontData: ArrayBuffer): Result<OpenTypeFont>;
16
26
  /**
17
27
  * Retrieve a previously loaded font by family name.
18
28
  *
19
29
  * @param fontFamily - Registry key (defaults to `'default'`).
20
- * @returns The opentype.js Font object, or `undefined` if not loaded.
30
+ * @returns The opentype.js Font object, or `undefined` if not loaded. `'default'` resolves
31
+ * to the fallback font when no font has been loaded.
21
32
  */
22
33
  export declare const getFont: (fontFamily?: string) => OpenTypeFont | undefined;
package/dist/text.cjs CHANGED
@@ -1,9 +1,10 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_textBlueprints = require("./textBlueprints-0pLR2X5a.cjs");
3
- const require_textMetrics = require("./textMetrics-BhIL6fpo.cjs");
2
+ const require_textBlueprints = require("./textBlueprints-C38JfUeN.cjs");
3
+ const require_textMetrics = require("./textMetrics-r9ldmBb5.cjs");
4
4
  exports.fontMetrics = require_textMetrics.fontMetrics;
5
5
  exports.getFont = require_textBlueprints.getFont;
6
6
  exports.loadFont = require_textBlueprints.loadFont;
7
+ exports.setFallbackFont = require_textBlueprints.setFallbackFont;
7
8
  exports.sketchText = require_textMetrics.sketchText;
8
9
  exports.textBlueprints = require_textBlueprints.textBlueprints;
9
10
  exports.textMetrics = require_textMetrics.textMetrics;
package/dist/text.d.ts CHANGED
@@ -6,7 +6,7 @@
6
6
  * import { loadFont, sketchText } from 'brepjs/text';
7
7
  * ```
8
8
  */
9
- export { loadFont, getFont } from './text/fontRegistry.js';
9
+ export { loadFont, getFont, setFallbackFont } from './text/fontRegistry.js';
10
10
  export { textBlueprints } from './text/textBlueprints.js';
11
11
  export { sketchText } from './text/sketchText.js';
12
12
  export { textMetrics, fontMetrics, type TextMetricsResult, type FontMetricsResult, } from './text/textMetrics.js';
package/dist/text.js CHANGED
@@ -1,3 +1,3 @@
1
- import { n as getFont, r as loadFont, t as textBlueprints } from "./textBlueprints-BpituhGG.js";
2
- import { n as textMetrics, r as sketchText, t as fontMetrics } from "./textMetrics-DmgaIDzF.js";
3
- export { fontMetrics, getFont, loadFont, sketchText, textBlueprints, textMetrics };
1
+ import { i as setFallbackFont, n as getFont, r as loadFont, t as textBlueprints } from "./textBlueprints-TLU7rjuN.js";
2
+ import { n as textMetrics, r as sketchText, t as fontMetrics } from "./textMetrics-CEnX8GBe.js";
3
+ export { fontMetrics, getFont, loadFont, setFallbackFont, sketchText, textBlueprints, textMetrics };
@@ -1,19 +1,19 @@
1
1
  const require_rolldown_runtime = require("./rolldown-runtime-BW-eSwOZ.cjs");
2
2
  const require_shapeTypes = require("./shapeTypes-HDVHzNk1.cjs");
3
3
  const require_bug = require("./bug-CBcpIPuf.cjs");
4
- const require_errors = require("./errors-B9r_Dzs1.cjs");
4
+ const require_errors = require("./errors-O_blYTWT.cjs");
5
5
  const require_constants = require("./constants-oee0S_x6.cjs");
6
6
  const require_types = require("./types-CjF9Rofr.cjs");
7
7
  const require_vecOps = require("./vecOps-CrGEPPQM.cjs");
8
- const require_planeOps = require("./planeOps-C7sRqzno.cjs");
9
- const require_faceFns = require("./faceFns-DolWAvAu.cjs");
10
- const require_solidBuilders = require("./solidBuilders-BeanhIbq.cjs");
8
+ const require_planeOps = require("./planeOps-DZfLToKZ.cjs");
9
+ const require_faceFns = require("./faceFns-CdUF0JOe.cjs");
10
+ const require_solidBuilders = require("./solidBuilders-fzrTygbj.cjs");
11
11
  const require_faceRoleFns = require("./faceRoleFns-Db5bYj4Q.cjs");
12
- const require_curveFns = require("./curveFns-BBx04S8G.cjs");
12
+ const require_curveFns = require("./curveFns-CMiP40Ko.cjs");
13
13
  const require_arrayAccess = require("./arrayAccess-DpJYARwv.cjs");
14
- const require_surfaceBuilders = require("./surfaceBuilders-BdOO4OJU.cjs");
15
- const require_blueprintSketcher = require("./blueprintSketcher-Cy1atQHR.cjs");
16
- const require_loftFns = require("./loftFns-nWtrZfoY.cjs");
14
+ const require_surfaceBuilders = require("./surfaceBuilders-DFqsIPkm.cjs");
15
+ const require_blueprintSketcher = require("./blueprintSketcher-CG4H8A6M.cjs");
16
+ const require_loftFns = require("./loftFns-BsFinbgs.cjs");
17
17
  let opentype_js = require("opentype.js");
18
18
  opentype_js = require_rolldown_runtime.__toESM(opentype_js, 1);
19
19
  // src/topology/shapeRef/extrudeRoleFns.ts
@@ -824,25 +824,43 @@ async function loadFont(fontPath, fontFamily = "default", force = false) {
824
824
  if (!response.ok) return require_errors.err(require_errors.ioError(require_errors.BrepErrorCode.FONT_FETCH_FAILED, `Failed to fetch font from ${fontPath}: HTTP ${response.status} ${response.statusText}`));
825
825
  fontData = await response.arrayBuffer();
826
826
  } else fontData = fontPath;
827
- let font;
827
+ const parsed = parseFont(fontData);
828
+ if (!parsed.ok) return parsed;
829
+ FONT_REGISTER[fontFamily] = parsed.value;
830
+ if (!FONT_REGISTER["default"]) FONT_REGISTER["default"] = parsed.value;
831
+ return parsed;
832
+ }
833
+ function parseFont(fontData) {
828
834
  try {
829
- font = opentype_js.default.parse(fontData);
835
+ return require_errors.ok(opentype_js.default.parse(fontData));
830
836
  } catch (e) {
831
837
  return require_errors.err(require_errors.ioError(require_errors.BrepErrorCode.FONT_PARSE_FAILED, `Failed to parse font data: ${e instanceof Error ? e.message : String(e)}`, e));
832
838
  }
833
- const typedFont = font;
834
- FONT_REGISTER[fontFamily] = typedFont;
835
- if (!FONT_REGISTER["default"]) FONT_REGISTER["default"] = typedFont;
836
- return require_errors.ok(typedFont);
839
+ }
840
+ var fallbackFont;
841
+ /**
842
+ * Register a font that text functions use when no font has been loaded.
843
+ *
844
+ * Unlike {@link loadFont}, this does not occupy the `'default'` family: once any font is
845
+ * loaded, it takes precedence over the fallback.
846
+ *
847
+ * @param fontData - Raw OpenType/TrueType font bytes.
848
+ * @returns The parsed opentype.js Font object.
849
+ */
850
+ function setFallbackFont(fontData) {
851
+ const parsed = parseFont(fontData);
852
+ if (parsed.ok) fallbackFont = parsed.value;
853
+ return parsed;
837
854
  }
838
855
  /**
839
856
  * Retrieve a previously loaded font by family name.
840
857
  *
841
858
  * @param fontFamily - Registry key (defaults to `'default'`).
842
- * @returns The opentype.js Font object, or `undefined` if not loaded.
859
+ * @returns The opentype.js Font object, or `undefined` if not loaded. `'default'` resolves
860
+ * to the fallback font when no font has been loaded.
843
861
  */
844
862
  var getFont = (fontFamily = "default") => {
845
- return FONT_REGISTER[fontFamily];
863
+ return FONT_REGISTER[fontFamily] ?? (fontFamily === "default" ? fallbackFont : void 0);
846
864
  };
847
865
  // src/text/textBlueprints.ts
848
866
  var sketchFontCommands = function* (commands) {
@@ -960,6 +978,12 @@ Object.defineProperty(exports, "revolve", {
960
978
  return revolve;
961
979
  }
962
980
  });
981
+ Object.defineProperty(exports, "setFallbackFont", {
982
+ enumerable: true,
983
+ get: function() {
984
+ return setFallbackFont;
985
+ }
986
+ });
963
987
  Object.defineProperty(exports, "sketchExtrude", {
964
988
  enumerable: true,
965
989
  get: function() {
@@ -1,18 +1,18 @@
1
1
  import { d as createSolid, h as disposeResultShape, l as createFace, m as disposeDowncastSource, n as castResultShape, p as createWire, q as getKernel, x as isShape3D } from "./shapeTypes-Db3yAgTO.js";
2
2
  import { n as bug } from "./bug-ClMTAJhe.js";
3
- import { E as ok, P as unwrap, d as validationError, g as err, i as kernelError, l as typeCastError, r as ioError, t as BrepErrorCode } from "./errors-CUsZRWJ7.js";
3
+ import { E as ok, P as unwrap, d as validationError, g as err, i as kernelError, l as typeCastError, r as ioError, t as BrepErrorCode } from "./errors-BTccWbtE.js";
4
4
  import { n as HASH_CODE_MAX } from "./constants-iraOnb2p.js";
5
5
  import { r as toVec3 } from "./types-CKXsIm9-.js";
6
6
  import { c as vecLength, d as vecNormalize, h as vecScale, i as vecDistance, r as vecCross, t as vecAdd } from "./vecOps-S-m9H_fe.js";
7
- import { n as createPlane } from "./planeOps-DgG0vHN7.js";
8
- import { v as copyShape } from "./faceFns-3VaHLMb8.js";
9
- import { o as makeSolid, p as cutAll, t as makeCompound } from "./solidBuilders-CSg8AUaL.js";
7
+ import { n as createPlane } from "./planeOps-D3yDuMux.js";
8
+ import { v as copyShape } from "./faceFns-Ciq7lYTa.js";
9
+ import { o as makeSolid, p as cutAll, t as makeCompound } from "./solidBuilders-DKNxcpSB.js";
10
10
  import { i as setFaceRoles } from "./faceRoleFns-BPxzQF-n.js";
11
- import { l as curveStartPoint, u as curveTangentAt } from "./curveFns-DdG-DkSs.js";
11
+ import { l as curveStartPoint, u as curveTangentAt } from "./curveFns-AMqd_WaO.js";
12
12
  import { n as getAtOrThrow, t as firstOrThrow } from "./arrayAccess-BpgouNir.js";
13
- import { i as makeNewFaceWithinFace, r as makeFace, t as addHolesInFace } from "./surfaceBuilders-4F0VrN1_.js";
14
- import { r as organiseBlueprints, t as BlueprintSketcher } from "./blueprintSketcher-BECQIPIt.js";
15
- import { c as twistExtrude, r as complexExtrude, s as sweep, t as loft } from "./loftFns-B7rgdvke.js";
13
+ import { i as makeNewFaceWithinFace, r as makeFace, t as addHolesInFace } from "./surfaceBuilders-B1Ikcte3.js";
14
+ import { r as organiseBlueprints, t as BlueprintSketcher } from "./blueprintSketcher-CQPC4SEF.js";
15
+ import { c as twistExtrude, r as complexExtrude, s as sweep, t as loft } from "./loftFns-pMh0ET-J.js";
16
16
  import opentype from "opentype.js";
17
17
  // src/topology/shapeRef/extrudeRoleFns.ts
18
18
  /** Match tolerance as a fraction of the extrusion's size. */
@@ -822,25 +822,43 @@ async function loadFont(fontPath, fontFamily = "default", force = false) {
822
822
  if (!response.ok) return err(ioError(BrepErrorCode.FONT_FETCH_FAILED, `Failed to fetch font from ${fontPath}: HTTP ${response.status} ${response.statusText}`));
823
823
  fontData = await response.arrayBuffer();
824
824
  } else fontData = fontPath;
825
- let font;
825
+ const parsed = parseFont(fontData);
826
+ if (!parsed.ok) return parsed;
827
+ FONT_REGISTER[fontFamily] = parsed.value;
828
+ if (!FONT_REGISTER["default"]) FONT_REGISTER["default"] = parsed.value;
829
+ return parsed;
830
+ }
831
+ function parseFont(fontData) {
826
832
  try {
827
- font = opentype.parse(fontData);
833
+ return ok(opentype.parse(fontData));
828
834
  } catch (e) {
829
835
  return err(ioError(BrepErrorCode.FONT_PARSE_FAILED, `Failed to parse font data: ${e instanceof Error ? e.message : String(e)}`, e));
830
836
  }
831
- const typedFont = font;
832
- FONT_REGISTER[fontFamily] = typedFont;
833
- if (!FONT_REGISTER["default"]) FONT_REGISTER["default"] = typedFont;
834
- return ok(typedFont);
837
+ }
838
+ var fallbackFont;
839
+ /**
840
+ * Register a font that text functions use when no font has been loaded.
841
+ *
842
+ * Unlike {@link loadFont}, this does not occupy the `'default'` family: once any font is
843
+ * loaded, it takes precedence over the fallback.
844
+ *
845
+ * @param fontData - Raw OpenType/TrueType font bytes.
846
+ * @returns The parsed opentype.js Font object.
847
+ */
848
+ function setFallbackFont(fontData) {
849
+ const parsed = parseFont(fontData);
850
+ if (parsed.ok) fallbackFont = parsed.value;
851
+ return parsed;
835
852
  }
836
853
  /**
837
854
  * Retrieve a previously loaded font by family name.
838
855
  *
839
856
  * @param fontFamily - Registry key (defaults to `'default'`).
840
- * @returns The opentype.js Font object, or `undefined` if not loaded.
857
+ * @returns The opentype.js Font object, or `undefined` if not loaded. `'default'` resolves
858
+ * to the fallback font when no font has been loaded.
841
859
  */
842
860
  var getFont = (fontFamily = "default") => {
843
- return FONT_REGISTER[fontFamily];
861
+ return FONT_REGISTER[fontFamily] ?? (fontFamily === "default" ? fallbackFont : void 0);
844
862
  };
845
863
  // src/text/textBlueprints.ts
846
864
  var sketchFontCommands = function* (commands) {
@@ -886,4 +904,4 @@ function textBlueprints(text, { startX = 0, startY = 0, fontSize = 16, fontFamil
886
904
  const blueprints = Array.from(sketchFontCommands(writtenText.commands));
887
905
  return organiseBlueprints(blueprints).mirror([0, 0]);
888
906
  }
889
- export { wrapSketchDataArray as _, Sketch as a, extrudeAll as b, compoundSketchLoft as c, sketchFace as d, sketchLoft as f, wrapSketchData as g, sketchWires as h, Sketches as i, compoundSketchRevolve as l, sketchSweep as m, getFont as n, compoundSketchExtrude as o, sketchRevolve as p, loadFont as r, compoundSketchFace as s, textBlueprints as t, sketchExtrude as u, CompoundSketch as v, revolve as x, extrude as y };
907
+ export { revolve as S, wrapSketchData as _, Sketches as a, extrude as b, compoundSketchFace as c, sketchExtrude as d, sketchFace as f, sketchWires as g, sketchSweep as h, setFallbackFont as i, compoundSketchLoft as l, sketchRevolve as m, getFont as n, Sketch as o, sketchLoft as p, loadFont as r, compoundSketchExtrude as s, textBlueprints as t, compoundSketchRevolve as u, wrapSketchDataArray as v, extrudeAll as x, CompoundSketch as y };
@@ -1,5 +1,5 @@
1
- import { E as ok, d as validationError, g as err, t as BrepErrorCode } from "./errors-CUsZRWJ7.js";
2
- import { g as wrapSketchData, i as Sketches, n as getFont, t as textBlueprints, v as CompoundSketch } from "./textBlueprints-BpituhGG.js";
1
+ import { E as ok, d as validationError, g as err, t as BrepErrorCode } from "./errors-BTccWbtE.js";
2
+ import { _ as wrapSketchData, a as Sketches, n as getFont, t as textBlueprints, y as CompoundSketch } from "./textBlueprints-TLU7rjuN.js";
3
3
  // src/text/sketchText.ts
4
4
  /**
5
5
  * Render text as 3D sketch outlines on a plane.
@@ -1,5 +1,5 @@
1
- const require_errors = require("./errors-B9r_Dzs1.cjs");
2
- const require_textBlueprints = require("./textBlueprints-0pLR2X5a.cjs");
1
+ const require_errors = require("./errors-O_blYTWT.cjs");
2
+ const require_textBlueprints = require("./textBlueprints-C38JfUeN.cjs");
3
3
  // src/text/sketchText.ts
4
4
  /**
5
5
  * Render text as 3D sketch outlines on a plane.
@@ -1,12 +1,12 @@
1
1
  const require_shapeTypes = require("./shapeTypes-HDVHzNk1.cjs");
2
- const require_errors = require("./errors-B9r_Dzs1.cjs");
2
+ const require_errors = require("./errors-O_blYTWT.cjs");
3
3
  const require_vecOps = require("./vecOps-CrGEPPQM.cjs");
4
- const require_faceFns = require("./faceFns-DolWAvAu.cjs");
5
- const require_solidBuilders = require("./solidBuilders-BeanhIbq.cjs");
6
- const require_primitiveFns = require("./primitiveFns-BdSDbmhs.cjs");
7
- const require_shapeFns = require("./shapeFns-CREKqmcG.cjs");
8
- const require_loftFns = require("./loftFns-nWtrZfoY.cjs");
9
- const require_refResolveFns = require("./refResolveFns--VMNo9vf.cjs");
4
+ const require_faceFns = require("./faceFns-CdUF0JOe.cjs");
5
+ const require_solidBuilders = require("./solidBuilders-fzrTygbj.cjs");
6
+ const require_primitiveFns = require("./primitiveFns-eE9jyVCs.cjs");
7
+ const require_shapeFns = require("./shapeFns-CHFmX5HQ.cjs");
8
+ const require_loftFns = require("./loftFns-BsFinbgs.cjs");
9
+ const require_refResolveFns = require("./refResolveFns-awGNYa3x.cjs");
10
10
  // src/utils/uuid.ts
11
11
  /** Generate a v4-style UUID string using `crypto.getRandomValues`. */
12
12
  function uuidv() {
@@ -1,12 +1,12 @@
1
1
  import { F as createKernelHandle, G as _usingCtx, N as DisposalScope, n as castResultShape, q as getKernel, x as isShape3D } from "./shapeTypes-Db3yAgTO.js";
2
- import { E as ok, d as validationError, g as err, n as computationError, r as ioError, t as BrepErrorCode, x as isOk } from "./errors-CUsZRWJ7.js";
2
+ import { E as ok, d as validationError, g as err, n as computationError, r as ioError, t as BrepErrorCode, x as isOk } from "./errors-BTccWbtE.js";
3
3
  import { d as vecNormalize, s as vecIsZero } from "./vecOps-S-m9H_fe.js";
4
- import { b as fromBREP } from "./faceFns-3VaHLMb8.js";
5
- import { h as fuseAll } from "./solidBuilders-CSg8AUaL.js";
6
- import { E as wire, h as line } from "./primitiveFns-D-5rBhH4.js";
7
- import { s as toBREP } from "./shapeFns-BTfhLPET.js";
8
- import { t as loft } from "./loftFns-B7rgdvke.js";
9
- import { c as resolveRefParams } from "./refResolveFns-DB8FIWrZ.js";
4
+ import { b as fromBREP } from "./faceFns-Ciq7lYTa.js";
5
+ import { h as fuseAll } from "./solidBuilders-DKNxcpSB.js";
6
+ import { E as wire, h as line } from "./primitiveFns-Vf_2qORp.js";
7
+ import { s as toBREP } from "./shapeFns-D7DcPxfx.js";
8
+ import { t as loft } from "./loftFns-pMh0ET-J.js";
9
+ import { c as resolveRefParams } from "./refResolveFns-BvQkLKLw.js";
10
10
  // src/utils/uuid.ts
11
11
  /** Generate a v4-style UUID string using `crypto.getRandomValues`. */
12
12
  function uuidv() {
package/dist/topology.cjs CHANGED
@@ -1,13 +1,13 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_topologyQueryFns = require("./topologyQueryFns-BJ5U4AmO.cjs");
3
- const require_faceFns = require("./faceFns-DolWAvAu.cjs");
4
- const require_solidBuilders = require("./solidBuilders-BeanhIbq.cjs");
5
- const require_primitiveFns = require("./primitiveFns-BdSDbmhs.cjs");
6
- const require_shapeFns = require("./shapeFns-CREKqmcG.cjs");
7
- const require_curveFns = require("./curveFns-BBx04S8G.cjs");
8
- const require_meshFns = require("./meshFns-BhOC8SuD.cjs");
9
- const require_healingFns = require("./healingFns-BZRF9VAs.cjs");
10
- const require_adjacencyFns = require("./adjacencyFns-ChCZyiBA.cjs");
2
+ const require_topologyQueryFns = require("./topologyQueryFns-gyva7bvF.cjs");
3
+ const require_faceFns = require("./faceFns-CdUF0JOe.cjs");
4
+ const require_solidBuilders = require("./solidBuilders-fzrTygbj.cjs");
5
+ const require_primitiveFns = require("./primitiveFns-eE9jyVCs.cjs");
6
+ const require_shapeFns = require("./shapeFns-CHFmX5HQ.cjs");
7
+ const require_curveFns = require("./curveFns-CMiP40Ko.cjs");
8
+ const require_meshFns = require("./meshFns-BNrdUhgG.cjs");
9
+ const require_healingFns = require("./healingFns-CrUTSyyK.cjs");
10
+ const require_adjacencyFns = require("./adjacencyFns-Cibtcqdl.cjs");
11
11
  exports.addHoles = require_primitiveFns.addHoles;
12
12
  exports.adjacentFaces = require_adjacencyFns.adjacentFaces;
13
13
  exports.approximateCurve = require_curveFns.approximateCurve;
package/dist/topology.js CHANGED
@@ -1,10 +1,10 @@
1
- import { _ as iterFaces, b as iterVertices, c as getFaces, f as getVertices, g as iterEdges, m as invalidateShapeCache, n as getBounds, p as getWires, s as getEdges, w as vertexPosition, x as iterWires } from "./topologyQueryFns-BYXQ2Kkn.js";
2
- import { C as shapeType, S as iterTopo, _ as cast, a as faceOrientation, b as fromBREP, c as innerWires, d as pointOnSurface, f as projectPointOnFace, g as asTopo, h as uvCoordinates, i as faceGeomType, l as normalAt, m as uvBounds, n as faceAxis, o as flipFaceOrientation, r as faceCenter, s as getSurfaceType, t as classifyPointOnFace, u as outerWire, x as isCompSolid, y as downcast } from "./faceFns-3VaHLMb8.js";
3
- import { h as fuseAll, p as cutAll } from "./solidBuilders-CSg8AUaL.js";
4
- import { C as threePointArc, D as wireLoop, E as wire, S as tangentArc, T as vertex, _ as polygon, a as circle, b as sphere, c as cylinder, d as ellipsoid, f as face, g as offsetFace, h as line, i as bsplineApprox, l as ellipse, m as helix, n as bezier, o as compound, p as filledFace, r as box, s as cone, t as addHoles, u as ellipseArc, v as sewShells, w as torus, x as subFace, y as solid } from "./primitiveFns-D-5rBhH4.js";
5
- import { a as isSameShape, i as isEqualShape, n as getHashCode } from "./shapeFns-BTfhLPET.js";
6
- import { a as curveIsPeriodic, c as curvePointAt, d as flipOrientation, f as getCurveType, h as offsetWire2D, i as curveIsClosed, l as curveStartPoint, m as interpolateCurve, n as curveAxis, o as curveLength, p as getOrientation, r as curveEndPoint, s as curvePeriod, t as approximateCurve, u as curveTangentAt } from "./curveFns-DdG-DkSs.js";
7
- import { d as clearMeshCache, f as createMeshCache, n as exportSTEP, r as exportSTL, t as exportIGES } from "./meshFns-C1nJQkWC.js";
8
- import { A as variableFillet, F as toLineGeometryData, M as toGroupedBufferGeometryData, S as chamferDistAngle, _ as checkBoolean, a as healFace, b as getNurbsCurveData, d as chamferWithEvolution, f as cutWithEvolution, g as shellWithEvolution, h as intersectWithEvolution, j as toBufferGeometryData, l as solidFromShell, m as fuseWithEvolution, n as fixSelfIntersection, o as healSolid, p as filletWithEvolution, r as fixShape, s as healWire, t as autoHeal, u as positionOnCurve, v as cutAllBisect, x as getNurbsSurfaceData, y as fuseAllBisect } from "./healingFns-xog7HTv1.js";
9
- import { i as facesOfEdge, l as wiresOfFace, n as adjacentFaces, o as sharedEdges, r as edgesOfFace, s as verticesOfEdge } from "./adjacencyFns-Cu9Zjjsv.js";
1
+ import { _ as iterFaces, b as iterVertices, c as getFaces, f as getVertices, g as iterEdges, m as invalidateShapeCache, n as getBounds, p as getWires, s as getEdges, w as vertexPosition, x as iterWires } from "./topologyQueryFns-DKNVBMuN.js";
2
+ import { C as shapeType, S as iterTopo, _ as cast, a as faceOrientation, b as fromBREP, c as innerWires, d as pointOnSurface, f as projectPointOnFace, g as asTopo, h as uvCoordinates, i as faceGeomType, l as normalAt, m as uvBounds, n as faceAxis, o as flipFaceOrientation, r as faceCenter, s as getSurfaceType, t as classifyPointOnFace, u as outerWire, x as isCompSolid, y as downcast } from "./faceFns-Ciq7lYTa.js";
3
+ import { h as fuseAll, p as cutAll } from "./solidBuilders-DKNxcpSB.js";
4
+ import { C as threePointArc, D as wireLoop, E as wire, S as tangentArc, T as vertex, _ as polygon, a as circle, b as sphere, c as cylinder, d as ellipsoid, f as face, g as offsetFace, h as line, i as bsplineApprox, l as ellipse, m as helix, n as bezier, o as compound, p as filledFace, r as box, s as cone, t as addHoles, u as ellipseArc, v as sewShells, w as torus, x as subFace, y as solid } from "./primitiveFns-Vf_2qORp.js";
5
+ import { a as isSameShape, i as isEqualShape, n as getHashCode } from "./shapeFns-D7DcPxfx.js";
6
+ import { a as curveIsPeriodic, c as curvePointAt, d as flipOrientation, f as getCurveType, h as offsetWire2D, i as curveIsClosed, l as curveStartPoint, m as interpolateCurve, n as curveAxis, o as curveLength, p as getOrientation, r as curveEndPoint, s as curvePeriod, t as approximateCurve, u as curveTangentAt } from "./curveFns-AMqd_WaO.js";
7
+ import { d as clearMeshCache, f as createMeshCache, n as exportSTEP, r as exportSTL, t as exportIGES } from "./meshFns-LytwBtBQ.js";
8
+ import { A as variableFillet, F as toLineGeometryData, M as toGroupedBufferGeometryData, S as chamferDistAngle, _ as checkBoolean, a as healFace, b as getNurbsCurveData, d as chamferWithEvolution, f as cutWithEvolution, g as shellWithEvolution, h as intersectWithEvolution, j as toBufferGeometryData, l as solidFromShell, m as fuseWithEvolution, n as fixSelfIntersection, o as healSolid, p as filletWithEvolution, r as fixShape, s as healWire, t as autoHeal, u as positionOnCurve, v as cutAllBisect, x as getNurbsSurfaceData, y as fuseAllBisect } from "./healingFns-Dchd7dm5.js";
9
+ import { i as facesOfEdge, l as wiresOfFace, n as adjacentFaces, o as sharedEdges, r as edgesOfFace, s as verticesOfEdge } from "./adjacencyFns-C0YD3Zrp.js";
10
10
  export { addHoles, adjacentFaces, approximateCurve, asTopo, autoHeal, bezier, box, bsplineApprox, cast, chamferDistAngle as chamferDistAngleShape, chamferWithEvolution, checkBoolean, circle, classifyPointOnFace, clearMeshCache, compound, cone, createMeshCache, curveAxis, curveEndPoint, curveIsClosed, curveIsPeriodic, curveLength, curvePeriod, curvePointAt, curveStartPoint, curveTangentAt, cutAll, cutAllBisect, cutWithEvolution, cylinder, fromBREP as deserializeShape, downcast, edgesOfFace, ellipse, ellipseArc, ellipsoid, exportIGES, exportSTEP, exportSTL, face, faceAxis, faceCenter, faceGeomType, faceOrientation, facesOfEdge, filledFace, filletWithEvolution, fixSelfIntersection, fixShape, flipFaceOrientation, flipOrientation, fuseAll, fuseAllBisect, fuseWithEvolution, getBounds, getCurveType, getEdges, getFaces, getHashCode, getNurbsCurveData, getNurbsSurfaceData, getOrientation, getSurfaceType, getVertices, getWires, healFace, healSolid, healWire, helix, innerWires, interpolateCurve, intersectWithEvolution, invalidateShapeCache, isCompSolid, isEqualShape, isSameShape, iterEdges, iterFaces, iterTopo, iterVertices, iterWires, line, normalAt, offsetFace, offsetWire2D, outerWire, pointOnSurface, polygon, positionOnCurve, projectPointOnFace, sewShells, shapeType, sharedEdges, shellWithEvolution, solid, solidFromShell, sphere, subFace, tangentArc, threePointArc, toBufferGeometryData, toGroupedBufferGeometryData, toLineGeometryData, torus, uvBounds, uvCoordinates, variableFillet, vertex, vertexPosition, verticesOfEdge, wire, wireLoop, wiresOfFace };
@@ -1,5 +1,5 @@
1
1
  import { G as _usingCtx, N as DisposalScope, O as getOrQueryType, n as castResultShape, q as getKernel, r as castResultShapeWithKnownType } from "./shapeTypes-Db3yAgTO.js";
2
- import { E as ok, g as err } from "./errors-CUsZRWJ7.js";
2
+ import { E as ok, g as err } from "./errors-BTccWbtE.js";
3
3
  import { n as HASH_CODE_MAX } from "./constants-iraOnb2p.js";
4
4
  // src/core/kernelErrorTranslation.ts
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  const require_shapeTypes = require("./shapeTypes-HDVHzNk1.cjs");
2
- const require_errors = require("./errors-B9r_Dzs1.cjs");
2
+ const require_errors = require("./errors-O_blYTWT.cjs");
3
3
  const require_constants = require("./constants-oee0S_x6.cjs");
4
4
  // src/core/kernelErrorTranslation.ts
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  import { q as getKernel } from "./shapeTypes-Db3yAgTO.js";
2
- import { E as ok, g as err } from "./errors-CUsZRWJ7.js";
2
+ import { E as ok, g as err } from "./errors-BTccWbtE.js";
3
3
  // src/core/validityTypes.ts
4
4
  /**
5
5
  * Type guard — check if a wire is closed (forms a loop).
@@ -1,5 +1,5 @@
1
1
  const require_shapeTypes = require("./shapeTypes-HDVHzNk1.cjs");
2
- const require_errors = require("./errors-B9r_Dzs1.cjs");
2
+ const require_errors = require("./errors-O_blYTWT.cjs");
3
3
  // src/core/validityTypes.ts
4
4
  /**
5
5
  * Type guard — check if a wire is closed (forms a loop).
package/dist/vectors.cjs CHANGED
@@ -2,7 +2,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_constants = require("./constants-oee0S_x6.cjs");
3
3
  const require_types = require("./types-CjF9Rofr.cjs");
4
4
  const require_vecOps = require("./vecOps-CrGEPPQM.cjs");
5
- const require_planeOps = require("./planeOps-C7sRqzno.cjs");
5
+ const require_planeOps = require("./planeOps-DZfLToKZ.cjs");
6
6
  exports.DEG2RAD = require_constants.DEG2RAD;
7
7
  exports.RAD2DEG = require_constants.RAD2DEG;
8
8
  exports.createNamedPlane = require_planeOps.createNamedPlane;
package/dist/vectors.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { r as RAD2DEG, t as DEG2RAD } from "./constants-iraOnb2p.js";
2
2
  import { n as toVec2, r as toVec3, t as resolveDirection } from "./types-CKXsIm9-.js";
3
3
  import { a as vecDot, c as vecLength, d as vecNormalize, f as vecProjectToPlane, g as vecSub, h as vecScale, i as vecDistance, l as vecLengthSq, m as vecRotate, n as vecAngle, o as vecEquals, p as vecRepr, r as vecCross, s as vecIsZero, t as vecAdd, u as vecNegate } from "./vecOps-S-m9H_fe.js";
4
- import { i as pivotPlane, n as createPlane, o as resolvePlane, s as translatePlane, t as createNamedPlane } from "./planeOps-DgG0vHN7.js";
4
+ import { i as pivotPlane, n as createPlane, o as resolvePlane, s as translatePlane, t as createNamedPlane } from "./planeOps-D3yDuMux.js";
5
5
  export { DEG2RAD, RAD2DEG, createNamedPlane, createPlane, pivotPlane, resolveDirection, resolvePlane, toVec2, toVec3, translatePlane, vecAdd, vecAngle, vecCross, vecDistance, vecDot, vecEquals, vecIsZero, vecLength, vecLengthSq, vecNegate, vecNormalize, vecProjectToPlane, vecRepr, vecRotate, vecScale, vecSub };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "brepjs",
3
- "version": "20.11.2",
3
+ "version": "20.12.0",
4
4
  "description": "Web CAD library with pluggable geometry kernel",
5
5
  "keywords": [
6
6
  "cad",