brepjs 18.107.0 → 18.108.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.
package/dist/brepjs.cjs CHANGED
@@ -12,7 +12,7 @@ const require_planeOps = require("./planeOps-BA4HfgQu.cjs");
12
12
  const require_faceFns = require("./faceFns-DKg2St8b.cjs");
13
13
  const require_shapeFns = require("./shapeFns-L4a8kH_A.cjs");
14
14
  const require_curveFns = require("./curveFns-Dx7_wMut.cjs");
15
- const require_meshFns = require("./meshFns-BgF4Xesg.cjs");
15
+ const require_meshFns = require("./meshFns-JwMEfMvC.cjs");
16
16
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
17
17
  const require_surfaceBuilders = require("./surfaceBuilders-FLnYYA70.cjs");
18
18
  const require_solidBuilders = require("./solidBuilders-CgRmJEdn.cjs");
@@ -5807,6 +5807,8 @@ var Evaluator = class {
5807
5807
  kernelId;
5808
5808
  defaultTolerance;
5809
5809
  maxCacheEntries;
5810
+ maxMeshCacheEntries;
5811
+ meshCache = /* @__PURE__ */ new Map();
5810
5812
  onStep;
5811
5813
  hits = 0;
5812
5814
  misses = 0;
@@ -5818,6 +5820,9 @@ var Evaluator = class {
5818
5820
  const max = options.maxCacheEntries;
5819
5821
  if (max !== void 0 && (!Number.isInteger(max) || max < 1)) throw new RangeError(`Evaluator: maxCacheEntries must be a positive integer, got ${String(max)}`);
5820
5822
  this.maxCacheEntries = max;
5823
+ const meshMax = options.maxMeshCacheEntries;
5824
+ if (meshMax !== void 0 && (!Number.isInteger(meshMax) || meshMax < 1)) throw new RangeError(`Evaluator: maxMeshCacheEntries must be a positive integer, got ${String(meshMax)}`);
5825
+ this.maxMeshCacheEntries = meshMax;
5821
5826
  }
5822
5827
  /**
5823
5828
  * Materialize a CSG IR tree against the given parameter environment.
@@ -5846,6 +5851,40 @@ var Evaluator = class {
5846
5851
  }
5847
5852
  });
5848
5853
  }
5854
+ /**
5855
+ * Materialize a node and mesh it, caching the mesh by the shape's content key
5856
+ * plus the mesh parameters. The mesh cache is independent of the shape cache:
5857
+ * a hit returns the cached mesh without evaluating or meshing — even after the
5858
+ * shape was LRU-evicted (a mesh is plain data, not a kernel handle). The
5859
+ * returned mesh is borrowed (do not mutate it); it stays valid for the
5860
+ * Evaluator's lifetime, or until `maxMeshCacheEntries` evicts it.
5861
+ */
5862
+ evaluateMesh(node, env = {}, meshOpts = {}) {
5863
+ meshOpts.signal?.throwIfAborted();
5864
+ const useCache = meshOpts.cache ?? true;
5865
+ const quality = require_shapeTypes.qualityDeflection();
5866
+ const tolerance = meshOpts.tolerance ?? quality.tolerance;
5867
+ const angularTolerance = meshOpts.angularTolerance ?? quality.angularTolerance;
5868
+ const meshKey = `${cacheKey(node, env, this.kernelId, this.defaultTolerance)}|${require_meshFns.buildMeshCacheKey(tolerance, angularTolerance, meshOpts.skipNormals ?? false, meshOpts.includeUVs ?? false)}`;
5869
+ if (useCache) {
5870
+ const cached = this.meshCache.get(meshKey);
5871
+ if (cached !== void 0) {
5872
+ if (this.maxMeshCacheEntries !== void 0) {
5873
+ this.meshCache.delete(meshKey);
5874
+ this.meshCache.set(meshKey, cached);
5875
+ }
5876
+ return require_errors.ok(cached);
5877
+ }
5878
+ }
5879
+ const shape = this.evaluate(node, env);
5880
+ if (!shape.ok) return shape;
5881
+ const built = require_shapeTypes.withKernel(this.kernelId, () => require_meshFns.mesh(shape.value, meshOpts));
5882
+ if (useCache) {
5883
+ this.meshCache.set(meshKey, built);
5884
+ if (this.maxMeshCacheEntries !== void 0) this.trimMeshCache(this.maxMeshCacheEntries);
5885
+ }
5886
+ return require_errors.ok(built);
5887
+ }
5849
5888
  evaluateInner(node, env) {
5850
5889
  const key = cacheKey(node, env, this.kernelId, this.defaultTolerance);
5851
5890
  const cached = this.cache.get(key);
@@ -5898,6 +5937,13 @@ var Evaluator = class {
5898
5937
  if (shape !== void 0) this.releaseShape(shape);
5899
5938
  }
5900
5939
  }
5940
+ trimMeshCache(max) {
5941
+ while (this.meshCache.size > max) {
5942
+ const oldest = this.meshCache.keys().next();
5943
+ if (oldest.done) break;
5944
+ this.meshCache.delete(oldest.value);
5945
+ }
5946
+ }
5901
5947
  rollbackPending() {
5902
5948
  for (const key of this.pendingKeys) {
5903
5949
  const shape = this.cache.get(key);
@@ -5923,6 +5969,7 @@ var Evaluator = class {
5923
5969
  for (const shape of this.refCounts.keys()) shape[Symbol.dispose]();
5924
5970
  this.refCounts.clear();
5925
5971
  this.cache.clear();
5972
+ this.meshCache.clear();
5926
5973
  }
5927
5974
  };
5928
5975
  /**
package/dist/brepjs.js CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as getKernelCapabilities, A as planarWire, B as createKernelHandle, C as isOrientedFace, D as manifoldShell, E as isValidSolid, F as as3D, H as isLive, I as is2D, J as withScopeResultAsync, K as withScope, L as is3D, M as getShapeKind, O as orientedFace, P as as2D, R as DisposalScope, S as isManifoldShell, T as isPlanarWire, V as getDisposalStats, W as resetDisposalStats, X as getActiveKernelId, Y as _usingCtx, Z as getKernel, _ as isSolid, a as createEdge, at as registerKernel, b as closedWire, c as createSolid, ct as withQuality, d as isCompound, dt as supportsProjection, et as getKernelTier, f as isEdge, ft as BrepkitAdapter, g as isShell, h as isShape3D, ht as currentQuality, i as createCompound, it as prewarm, j as validSolid, k as planarFace, l as createVertex, lt as withTier, m as isShape1D, mt as resetPerformanceStats, n as castShape3D, nt as initFromManifold, o as createFace, ot as registerKernelTier, p as isFace, pt as getPerformanceStats, q as withScopeResult, rt as initFromOC, s as createShell, st as withKernel, t as castShape, tt as init, u as createWire, ut as supportsConstraintSketch, v as isVertex, w as isPlanarFace, x as isClosedWire, y as isWire, z as createHandle } from "./shapeTypes-C4lPfrc2.js";
1
+ import { $ as getKernelCapabilities, A as planarWire, B as createKernelHandle, C as isOrientedFace, D as manifoldShell, E as isValidSolid, F as as3D, H as isLive, I as is2D, J as withScopeResultAsync, K as withScope, L as is3D, M as getShapeKind, O as orientedFace, P as as2D, R as DisposalScope, S as isManifoldShell, T as isPlanarWire, V as getDisposalStats, W as resetDisposalStats, X as getActiveKernelId, Y as _usingCtx, Z as getKernel, _ as isSolid, a as createEdge, at as registerKernel, b as closedWire, c as createSolid, ct as withQuality, d as isCompound, dt as supportsProjection, et as getKernelTier, f as isEdge, ft as BrepkitAdapter, g as isShell, gt as qualityDeflection, h as isShape3D, ht as currentQuality, i as createCompound, it as prewarm, j as validSolid, k as planarFace, l as createVertex, lt as withTier, m as isShape1D, mt as resetPerformanceStats, n as castShape3D, nt as initFromManifold, o as createFace, ot as registerKernelTier, p as isFace, pt as getPerformanceStats, q as withScopeResult, rt as initFromOC, s as createShell, st as withKernel, t as castShape, tt as init, u as createWire, ut as supportsConstraintSketch, v as isVertex, w as isPlanarFace, x as isClosedWire, y as isWire, z as createHandle } from "./shapeTypes-C4lPfrc2.js";
2
2
  import { D as DEFAULT_CAPABILITIES, O as EXACT_BREP_CAPABILITIES, t as OcctWasmAdapter } from "./occtWasmAdapter-BDEPveZs.js";
3
3
  import { n as wasmIndex } from "./vec3-Dpha8d5k.js";
4
4
  import { A as ok, B as unwrapOr, C as fromNullable, D as mapBoth, E as map, F as tapErr, H as zip, I as tryCatch, L as tryCatchAsync, M as orElse, N as pipeline, O as mapErr, P as tap, R as unwrap, S as flatten, T as isOk, V as unwrapOrElse, _ as all, a as moduleInitError, b as err, c as sketcherStateError, d as validationError, g as OK, h as bug, i as kernelError, j as or, k as match, l as typeCastError, m as BrepBugError, n as computationError, o as queryError, r as ioError, t as BrepErrorCode, u as unsupportedError, v as andThen, w as isErr, x as flatMap, y as collect, z as unwrapErr } from "./errors-DNWJsfVU.js";
@@ -10,7 +10,7 @@ import { i as pivotPlane, n as createPlane, o as resolvePlane, r as makePlane, s
10
10
  import { S as shapeType, _ as cast, a as faceOrientation, b as isCompSolid, 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, p as removeHolesFromFace, r as faceCenter, s as getSurfaceType, t as classifyPointOnFace, u as outerWire, v as downcast, x as iterTopo, y as fromBREP } from "./faceFns-mo4ThIHz.js";
11
11
  import { C as findFacesByTag, D as tagFaces, E as setTagMetadata, O as getFaceOrigins, S as getShapeColor, T as getTagMetadata, a as isSameShape, b as colorShape, c as applyMatrix$1, d as resize, f as rotate$2, h as translate$2, i as isEqualShape, k as setShapeOrigin, l as composeTransforms, m as transformCopy$1, n as getHashCode, o as simplify$1, p as scale$3, r as isEmpty$2, s as toBREP$1, t as clone$1, u as mirror$2, w as getFaceTags, x as getFaceColor, y as colorFaces } from "./shapeFns-DyBbhU30.js";
12
12
  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-CG05Jygr.js";
13
- import { a as meshEdges$1, c as meshMultiLOD, i as mesh$1, l as clearMeshCache, n as exportSTEP, o as meshLODs, r as exportSTL, s as meshLODsProgressive, t as exportIGES, u as createMeshCache } from "./meshFns-BvP9Tm5Q.js";
13
+ import { a as meshEdges$1, c as meshMultiLOD, d as createMeshCache, i as mesh$1, l as buildMeshCacheKey, n as exportSTEP, o as meshLODs, r as exportSTL, s as meshLODsProgressive, t as exportIGES, u as clearMeshCache } from "./meshFns-DeGn7mQ4.js";
14
14
  import { n as getAtOrThrow, r as lastOrThrow, t as firstOrThrow } from "./arrayAccess-DrUGPADn.js";
15
15
  import { _ as makeThreePointArc, d as makeCircle, h as makeLine, l as makeBSplineInterpolation, n as fill, r as makeFace, s as assembleWire } from "./surfaceBuilders-Bww4jhBo.js";
16
16
  import { _ as section$1, b as split$1, d as booleanPipeline, f as cut$2, g as intersect$2, h as fuseAll$2, m as fuse$2, p as cutAll$2, r as makeCylinder, t as makeCompound, v as sectionToFace$1, y as slice$1 } from "./solidBuilders-Biwv2cW3.js";
@@ -5810,6 +5810,8 @@ var Evaluator = class {
5810
5810
  kernelId;
5811
5811
  defaultTolerance;
5812
5812
  maxCacheEntries;
5813
+ maxMeshCacheEntries;
5814
+ meshCache = /* @__PURE__ */ new Map();
5813
5815
  onStep;
5814
5816
  hits = 0;
5815
5817
  misses = 0;
@@ -5821,6 +5823,9 @@ var Evaluator = class {
5821
5823
  const max = options.maxCacheEntries;
5822
5824
  if (max !== void 0 && (!Number.isInteger(max) || max < 1)) throw new RangeError(`Evaluator: maxCacheEntries must be a positive integer, got ${String(max)}`);
5823
5825
  this.maxCacheEntries = max;
5826
+ const meshMax = options.maxMeshCacheEntries;
5827
+ if (meshMax !== void 0 && (!Number.isInteger(meshMax) || meshMax < 1)) throw new RangeError(`Evaluator: maxMeshCacheEntries must be a positive integer, got ${String(meshMax)}`);
5828
+ this.maxMeshCacheEntries = meshMax;
5824
5829
  }
5825
5830
  /**
5826
5831
  * Materialize a CSG IR tree against the given parameter environment.
@@ -5849,6 +5854,40 @@ var Evaluator = class {
5849
5854
  }
5850
5855
  });
5851
5856
  }
5857
+ /**
5858
+ * Materialize a node and mesh it, caching the mesh by the shape's content key
5859
+ * plus the mesh parameters. The mesh cache is independent of the shape cache:
5860
+ * a hit returns the cached mesh without evaluating or meshing — even after the
5861
+ * shape was LRU-evicted (a mesh is plain data, not a kernel handle). The
5862
+ * returned mesh is borrowed (do not mutate it); it stays valid for the
5863
+ * Evaluator's lifetime, or until `maxMeshCacheEntries` evicts it.
5864
+ */
5865
+ evaluateMesh(node, env = {}, meshOpts = {}) {
5866
+ meshOpts.signal?.throwIfAborted();
5867
+ const useCache = meshOpts.cache ?? true;
5868
+ const quality = qualityDeflection();
5869
+ const tolerance = meshOpts.tolerance ?? quality.tolerance;
5870
+ const angularTolerance = meshOpts.angularTolerance ?? quality.angularTolerance;
5871
+ const meshKey = `${cacheKey(node, env, this.kernelId, this.defaultTolerance)}|${buildMeshCacheKey(tolerance, angularTolerance, meshOpts.skipNormals ?? false, meshOpts.includeUVs ?? false)}`;
5872
+ if (useCache) {
5873
+ const cached = this.meshCache.get(meshKey);
5874
+ if (cached !== void 0) {
5875
+ if (this.maxMeshCacheEntries !== void 0) {
5876
+ this.meshCache.delete(meshKey);
5877
+ this.meshCache.set(meshKey, cached);
5878
+ }
5879
+ return ok(cached);
5880
+ }
5881
+ }
5882
+ const shape = this.evaluate(node, env);
5883
+ if (!shape.ok) return shape;
5884
+ const built = withKernel(this.kernelId, () => mesh$1(shape.value, meshOpts));
5885
+ if (useCache) {
5886
+ this.meshCache.set(meshKey, built);
5887
+ if (this.maxMeshCacheEntries !== void 0) this.trimMeshCache(this.maxMeshCacheEntries);
5888
+ }
5889
+ return ok(built);
5890
+ }
5852
5891
  evaluateInner(node, env) {
5853
5892
  const key = cacheKey(node, env, this.kernelId, this.defaultTolerance);
5854
5893
  const cached = this.cache.get(key);
@@ -5901,6 +5940,13 @@ var Evaluator = class {
5901
5940
  if (shape !== void 0) this.releaseShape(shape);
5902
5941
  }
5903
5942
  }
5943
+ trimMeshCache(max) {
5944
+ while (this.meshCache.size > max) {
5945
+ const oldest = this.meshCache.keys().next();
5946
+ if (oldest.done) break;
5947
+ this.meshCache.delete(oldest.value);
5948
+ }
5949
+ }
5904
5950
  rollbackPending() {
5905
5951
  for (const key of this.pendingKeys) {
5906
5952
  const shape = this.cache.get(key);
@@ -5926,6 +5972,7 @@ var Evaluator = class {
5926
5972
  for (const shape of this.refCounts.keys()) shape[Symbol.dispose]();
5927
5973
  this.refCounts.clear();
5928
5974
  this.cache.clear();
5975
+ this.meshCache.clear();
5929
5976
  }
5930
5977
  };
5931
5978
  /**
@@ -1,5 +1,6 @@
1
1
  import { Result } from '../core/result.js';
2
2
  import { AnyShape, Dimension } from '../core/shapeTypes.js';
3
+ import { ShapeMesh, MeshOptions } from '../topology/meshFns.js';
3
4
  import { Env } from './expressions.js';
4
5
  import { IRNode } from './types.js';
5
6
  export interface EvaluatorOptions {
@@ -21,6 +22,14 @@ export interface EvaluatorOptions {
21
22
  * (calling it from an onStep callback throws). Must be a positive integer.
22
23
  */
23
24
  readonly maxCacheEntries?: number | undefined;
25
+ /**
26
+ * Upper bound on entries in the {@link Evaluator.evaluateMesh} content cache,
27
+ * which is independent of the shape cache. Defaults to unbounded. Bounding it
28
+ * separately is what lets a mesh outlive its (evicted) kernel shape, so a
29
+ * re-`evaluateMesh` is a pure data hit with no re-materialization. Must be a
30
+ * positive integer.
31
+ */
32
+ readonly maxMeshCacheEntries?: number | undefined;
24
33
  }
25
34
  export interface StepInfo {
26
35
  readonly node: IRNode;
@@ -42,6 +51,8 @@ export declare class Evaluator implements Disposable {
42
51
  private readonly kernelId;
43
52
  private readonly defaultTolerance;
44
53
  private readonly maxCacheEntries;
54
+ private readonly maxMeshCacheEntries;
55
+ private readonly meshCache;
45
56
  private readonly onStep?;
46
57
  private hits;
47
58
  private misses;
@@ -58,9 +69,23 @@ export declare class Evaluator implements Disposable {
58
69
  * throws.
59
70
  */
60
71
  evaluate(node: IRNode, env?: Env): Result<AnyShape<Dimension>>;
72
+ /**
73
+ * Materialize a node and mesh it, caching the mesh by the shape's content key
74
+ * plus the mesh parameters. The mesh cache is independent of the shape cache:
75
+ * a hit returns the cached mesh without evaluating or meshing — even after the
76
+ * shape was LRU-evicted (a mesh is plain data, not a kernel handle). The
77
+ * returned mesh is borrowed (do not mutate it); it stays valid for the
78
+ * Evaluator's lifetime, or until `maxMeshCacheEntries` evicts it.
79
+ */
80
+ evaluateMesh(node: IRNode, env?: Env, meshOpts?: MeshOptions & {
81
+ skipNormals?: boolean;
82
+ includeUVs?: boolean;
83
+ cache?: boolean;
84
+ }): Result<ShapeMesh>;
61
85
  private evaluateInner;
62
86
  private releaseShape;
63
87
  private trimCache;
88
+ private trimMeshCache;
64
89
  private rollbackPending;
65
90
  cacheStats(): CacheStats;
66
91
  resetStats(): void;
package/dist/io.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_meshFns = require("./meshFns-BgF4Xesg.cjs");
2
+ const require_meshFns = require("./meshFns-JwMEfMvC.cjs");
3
3
  const require_importFns = require("./importFns-B6hw9Nhx.cjs");
4
4
  exports.blueprintToDXF = require_importFns.blueprintToDXF;
5
5
  exports.exportDXF = require_importFns.exportDXF;
package/dist/io.js CHANGED
@@ -1,3 +1,3 @@
1
- import { n as exportSTEP, r as exportSTL, t as exportIGES } from "./meshFns-BvP9Tm5Q.js";
1
+ import { n as exportSTEP, r as exportSTL, t as exportIGES } from "./meshFns-DeGn7mQ4.js";
2
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-CEczwPdN.js";
3
3
  export { blueprintToDXF, exportDXF, exportGlb, exportGltf, exportIGES, exportOBJ, exportSTEP, exportSTEPConfigured, exportSTL, exportThreeMF, importIGES, importSTEP, importSTL, importSVG, importSVGPathD };
@@ -424,4 +424,4 @@ async function meshLODsProgressive(shape, options = {}) {
424
424
  return results;
425
425
  }
426
426
  //#endregion
427
- export { meshEdges as a, meshMultiLOD as c, mesh as i, clearMeshCache as l, exportSTEP as n, meshLODs as o, exportSTL as r, meshLODsProgressive as s, exportIGES as t, createMeshCache as u };
427
+ export { meshEdges as a, meshMultiLOD as c, createMeshCache as d, mesh as i, buildMeshCacheKey as l, exportSTEP as n, meshLODs as o, exportSTL as r, meshLODsProgressive as s, exportIGES as t, clearMeshCache as u };
@@ -424,6 +424,12 @@ async function meshLODsProgressive(shape, options = {}) {
424
424
  return results;
425
425
  }
426
426
  //#endregion
427
+ Object.defineProperty(exports, "buildMeshCacheKey", {
428
+ enumerable: true,
429
+ get: function() {
430
+ return buildMeshCacheKey;
431
+ }
432
+ });
427
433
  Object.defineProperty(exports, "clearMeshCache", {
428
434
  enumerable: true,
429
435
  get: function() {
package/dist/topology.cjs CHANGED
@@ -3,7 +3,7 @@ const require_topologyQueryFns = require("./topologyQueryFns-ygBBXxnP.cjs");
3
3
  const require_faceFns = require("./faceFns-DKg2St8b.cjs");
4
4
  const require_shapeFns = require("./shapeFns-L4a8kH_A.cjs");
5
5
  const require_curveFns = require("./curveFns-Dx7_wMut.cjs");
6
- const require_meshFns = require("./meshFns-BgF4Xesg.cjs");
6
+ const require_meshFns = require("./meshFns-JwMEfMvC.cjs");
7
7
  const require_solidBuilders = require("./solidBuilders-CgRmJEdn.cjs");
8
8
  const require_healingFns = require("./healingFns-OL0bBSSY.cjs");
9
9
  const require_primitiveFns = require("./primitiveFns-BAWtMd9H.cjs");
package/dist/topology.js CHANGED
@@ -2,7 +2,7 @@ import { S as vertexPosition, _ as iterFaces, b as iterVertices, c as getFaces,
2
2
  import { S as shapeType, _ as cast, a as faceOrientation, b as isCompSolid, 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, v as downcast, x as iterTopo, y as fromBREP } from "./faceFns-mo4ThIHz.js";
3
3
  import { a as isSameShape, i as isEqualShape, n as getHashCode } from "./shapeFns-DyBbhU30.js";
4
4
  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-CG05Jygr.js";
5
- import { l as clearMeshCache, n as exportSTEP, r as exportSTL, t as exportIGES, u as createMeshCache } from "./meshFns-BvP9Tm5Q.js";
5
+ import { d as createMeshCache, n as exportSTEP, r as exportSTL, t as exportIGES, u as clearMeshCache } from "./meshFns-DeGn7mQ4.js";
6
6
  import { h as fuseAll, p as cutAll } from "./solidBuilders-Biwv2cW3.js";
7
7
  import { A as edgesOfFace, B as toLineGeometryData, C as shellWithEvolution, D as getNurbsCurveData, E as fuseAllBisect, F as chamferDistAngle, I as toBufferGeometryData, L as toGroupedBufferGeometryData, M as sharedEdges, N as verticesOfEdge, O as getNurbsSurfaceData, P as wiresOfFace, S as intersectWithEvolution, T as cutAllBisect, _ as positionOnCurve, a as healFace, b as filletWithEvolution, g as variableFillet, j as facesOfEdge, k as adjacentFaces, l as solidFromShell, n as fixSelfIntersection, o as healSolid, r as fixShape, s as healWire, t as autoHeal, v as chamferWithEvolution, w as checkBoolean, x as fuseWithEvolution, y as cutWithEvolution } from "./healingFns-C5AomW4j.js";
8
8
  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-62SO4ti5.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "brepjs",
3
- "version": "18.107.0",
3
+ "version": "18.108.0",
4
4
  "description": "Web CAD library with pluggable geometry kernel",
5
5
  "keywords": [
6
6
  "cad",