brepjs 20.13.0 → 20.13.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/{adjacencyFns-BXzEHSC5.cjs → adjacencyFns-BA9xrrmS.cjs} +3 -3
  4. package/dist/{adjacencyFns-BYjzMejn.js → adjacencyFns-C4Tui11_.js} +3 -3
  5. package/dist/{blueprint-464KGkzc.cjs → blueprint-D193PMxX.cjs} +5 -5
  6. package/dist/{blueprint-D-4-uTkr.js → blueprint-DH0H9OWv.js} +5 -5
  7. package/dist/{blueprintFns-CE5RdX-E.js → blueprintFns-Bfiqbmtc.js} +2 -2
  8. package/dist/{blueprintFns-BdyFiuiC.cjs → blueprintFns-DYIKTIvJ.cjs} +2 -2
  9. package/dist/{blueprintSketcher-C4XHzqTw.cjs → blueprintSketcher-B1UrnhFt.cjs} +3 -3
  10. package/dist/{blueprintSketcher-CQ9LxcIl.js → blueprintSketcher-RA8ti2Xp.js} +3 -3
  11. package/dist/{boolean2D-DwJvQ4p_.js → boolean2D-CCKUmway.js} +4 -4
  12. package/dist/{boolean2D-CKE32vHV.cjs → boolean2D-XIehGONX.cjs} +4 -4
  13. package/dist/{booleanFns-CsTz48A3.js → booleanFns-CyxmW1pL.js} +5 -5
  14. package/dist/{booleanFns-MkzdfjDv.cjs → booleanFns-zRlNDHQY.cjs} +5 -5
  15. package/dist/brepjs.cjs +30 -30
  16. package/dist/brepjs.js +30 -30
  17. package/dist/{cameraFns-vHpapIZG.cjs → cameraFns-BDjt94fY.cjs} +3 -3
  18. package/dist/{cameraFns-BDl_D28X.js → cameraFns-CtpBKmwD.js} +3 -3
  19. package/dist/core.cjs +2 -2
  20. package/dist/core.js +2 -2
  21. package/dist/{cornerFinder-Dyk5sKEN.js → cornerFinder-CIryesVI.js} +1 -1
  22. package/dist/{cornerFinder-adDN0_C4.cjs → cornerFinder-DWN1Vkea.cjs} +1 -1
  23. package/dist/{curveFns-HtjEh2W-.cjs → curveFns-0vAErrs9.cjs} +1 -1
  24. package/dist/{curveFns-RjNVzxNc.js → curveFns-b_C6tBeU.js} +1 -1
  25. package/dist/{drawFns-stc8-Gma.js → drawFns--_Bd7ONO.js} +12 -12
  26. package/dist/{drawFns-B5gZtD_P.cjs → drawFns-vcRf5KKV.cjs} +12 -12
  27. package/dist/{faceFns-C7wBHMPv.cjs → faceFns-DzNcnzS5.cjs} +2 -2
  28. package/dist/{faceFns-DaPoCzd-.js → faceFns-WtnWpVQl.js} +2 -2
  29. package/dist/{healingFns-C3Wq_hN3.js → healingFns-B82dNj9P.js} +7 -7
  30. package/dist/{healingFns-zYCbT8vR.cjs → healingFns-D26gj7M5.cjs} +7 -7
  31. package/dist/{helpers-BdtYVyP5.cjs → helpers-BO5NktbN.cjs} +6 -6
  32. package/dist/{helpers-CDzSlBi_.js → helpers-C5I0ZqYC.js} +6 -6
  33. package/dist/{importFns-CotbQ9l7.cjs → importFns-Ceb2VgcK.cjs} +34 -20
  34. package/dist/{importFns-DR7Adv-W.js → importFns-sxpO2z86.js} +34 -20
  35. package/dist/io/importFns.d.ts +12 -5
  36. package/dist/io.cjs +2 -2
  37. package/dist/io.js +2 -2
  38. package/dist/kernel/brepkit/igesMerge.d.ts +13 -0
  39. package/dist/kernel/brepkit/stepMerge.d.ts +14 -0
  40. package/dist/kernel/occtWasm/occtWasmAdapter.cjs +1 -1
  41. package/dist/kernel/occtWasm/occtWasmAdapter.js +1 -1
  42. package/dist/{loftFns-C9k9UAKh.cjs → loftFns-KXrP3aat.cjs} +1 -1
  43. package/dist/{loftFns-Cbnrz3p8.js → loftFns-Y-aBF_f7.js} +1 -1
  44. package/dist/{measureFns-DivR02Xb.js → measureFns-B0PhQ5dY.js} +3 -3
  45. package/dist/{measureFns-Bi62maOJ.cjs → measureFns-C8UjdHpB.cjs} +3 -3
  46. package/dist/measurement.cjs +2 -2
  47. package/dist/measurement.js +2 -2
  48. package/dist/{meshFns-CcuY52tt.js → meshFns-BazHDlpY.js} +4 -4
  49. package/dist/{meshFns-8MTf0Lo_.cjs → meshFns-BnkXZ0Xm.cjs} +4 -4
  50. package/dist/{occtWasmAdapter-BNOuP9DA.cjs → occtWasmAdapter-4YnvqZOW.cjs} +72 -3
  51. package/dist/{occtWasmAdapter-1k4udeb3.js → occtWasmAdapter-CGsnjMOe.js} +72 -3
  52. package/dist/operations.cjs +2 -2
  53. package/dist/operations.js +2 -2
  54. package/dist/{primitiveFns-BifV4IGL.cjs → primitiveFns-BM709SMs.cjs} +5 -5
  55. package/dist/{primitiveFns-uDvN1FH6.js → primitiveFns-BZALpT35.js} +5 -5
  56. package/dist/{principalBoxFns-DjxE8Rym.cjs → principalBoxFns-C_hSxRc7.cjs} +3 -3
  57. package/dist/{principalBoxFns-ez0xXLyK.js → principalBoxFns-DLOoxmZB.js} +3 -3
  58. package/dist/projection.cjs +1 -1
  59. package/dist/projection.js +1 -1
  60. package/dist/query.cjs +2 -2
  61. package/dist/query.js +2 -2
  62. package/dist/{refResolveFns-CuaYXFya.js → refResolveFns-BA1ES0sL.js} +6 -6
  63. package/dist/{refResolveFns-CTkAPUwM.cjs → refResolveFns-BkSLmvyY.cjs} +6 -6
  64. package/dist/{shapeFns-Rmgd4x9I.cjs → shapeFns-Bgql2_E6.cjs} +2 -2
  65. package/dist/{shapeFns-DgpWLKra.js → shapeFns-CSWOXGx9.js} +2 -2
  66. package/dist/shapeRef.cjs +1 -1
  67. package/dist/shapeRef.js +1 -1
  68. package/dist/{shapeTypes-BjitsJRQ.cjs → shapeTypes-BFfnNmzj.cjs} +214 -23
  69. package/dist/{shapeTypes-DbPghQD3.js → shapeTypes-C7hqbMwl.js} +214 -23
  70. package/dist/sketching.cjs +3 -3
  71. package/dist/sketching.js +3 -3
  72. package/dist/{solidBuilders-BUI_fGzR.js → solidBuilders-B01dFnd7.js} +3 -3
  73. package/dist/{solidBuilders-Bs2NA3xl.cjs → solidBuilders-CWw3yasa.cjs} +3 -3
  74. package/dist/{surfaceBuilders-CO_DKhWA.js → surfaceBuilders-Cn7GIsyR.js} +3 -3
  75. package/dist/{surfaceBuilders-Cn1mkQ3j.cjs → surfaceBuilders-DL7UTpW2.cjs} +3 -3
  76. package/dist/text.cjs +2 -2
  77. package/dist/text.js +2 -2
  78. package/dist/{textBlueprints-CT0Kbw1f.js → textBlueprints-B7gDC-aP.js} +8 -8
  79. package/dist/{textBlueprints-P_D0KUVx.cjs → textBlueprints-dOnCv38X.cjs} +8 -8
  80. package/dist/{textMetrics-CXKdzefS.js → textMetrics-BFzj8Zvn.js} +1 -1
  81. package/dist/{textMetrics-CVyX8GyL.cjs → textMetrics-Cqc0xzHC.cjs} +1 -1
  82. package/dist/{threadFns-BV4HLdPE.cjs → threadFns-DwTPnV_1.cjs} +7 -7
  83. package/dist/{threadFns-COs6jmaf.js → threadFns-M8pqF4TW.js} +7 -7
  84. package/dist/topology.cjs +9 -9
  85. package/dist/topology.js +9 -9
  86. package/dist/{topologyQueryFns-s0LddGkF.cjs → topologyQueryFns-95FptXtu.cjs} +1 -1
  87. package/dist/{topologyQueryFns-J2ae_Gvc.js → topologyQueryFns-C3-_9dFM.js} +1 -1
  88. package/dist/{validityTypes-BVZ0lSNi.cjs → validityTypes--tgDeAF8.cjs} +1 -1
  89. package/dist/{validityTypes-CD_Xz0vZ.js → validityTypes-C6qOP241.js} +1 -1
  90. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { A as UnsupportedKernelOperationError, C as reverseCurve2d$2, D as tangentCurve2d, E as serializeCurve2d$2, N as EXACT_BREP_CAPABILITIES, O as translateCurve2d$2, P as OCCT_CAPABILITIES, S as offsetCurve2d$2, T as scaleCurve2d$2, _ as makeCircle2d$2, a as buildAsciiSTL, b as mirrorAcrossAxis, c as createBBox2d, d as deserializeCurve2d$2, f as evaluateCurve2d$2, g as makeBezier2d$2, h as makeArc2dThreePoints, i as DEFAULT_STL_TOLERANCE, j as isUnsupportedKernelOperationError, k as quickHull, l as curveBounds, m as makeArc2dTangent, o as buildBinarySTL, p as intersectCurves2dFn, r as DEFAULT_STL_ANGULAR_TOLERANCE, s as addCurveToBBox, t as OcctWasmAdapter, u as curveTypeName, v as makeEllipse2d$2, w as rotateCurve2d$2, x as mirrorAtPoint, y as makeLine2d$2 } from "./occtWasmAdapter-1k4udeb3.js";
1
+ import { A as UnsupportedKernelOperationError, C as reverseCurve2d$2, D as tangentCurve2d, E as serializeCurve2d$2, N as EXACT_BREP_CAPABILITIES, O as translateCurve2d$2, P as OCCT_CAPABILITIES, S as offsetCurve2d$2, T as scaleCurve2d$2, _ as makeCircle2d$2, a as buildAsciiSTL, b as mirrorAcrossAxis, c as createBBox2d, d as deserializeCurve2d$2, f as evaluateCurve2d$2, g as makeBezier2d$2, h as makeArc2dThreePoints, i as DEFAULT_STL_TOLERANCE, j as isUnsupportedKernelOperationError, k as quickHull, l as curveBounds, m as makeArc2dTangent, o as buildBinarySTL, p as intersectCurves2dFn, r as DEFAULT_STL_ANGULAR_TOLERANCE, s as addCurveToBBox, t as OcctWasmAdapter, u as curveTypeName, v as makeEllipse2d$2, w as rotateCurve2d$2, x as mirrorAtPoint, y as makeLine2d$2 } from "./occtWasmAdapter-CGsnjMOe.js";
2
2
  import { i as wasmIndex, r as vec3At } from "./bug-ClMTAJhe.js";
3
3
  // src/kernel/quality.ts
4
4
  /**
@@ -8446,22 +8446,219 @@ function makeMeshOps$1(bk) {
8446
8446
  meshShape: (shape, tolerance, angularTolerance) => {}
8447
8447
  };
8448
8448
  }
8449
+ // src/kernel/brepkit/igesMerge.ts
8450
+ /**
8451
+ * Merge single-solid brepkit IGES documents into one.
8452
+ *
8453
+ * brepkit-wasm's `exportIges` takes one solid, but an IGES file holds one
8454
+ * document. brepkit's writer emits only standalone entities that point at no
8455
+ * other entity, so the merge appends each later document's directory and
8456
+ * parameter entries, renumbering only the fixed-column fields that number or
8457
+ * link them, and keeps the first document's start and global sections.
8458
+ *
8459
+ * @module
8460
+ */
8461
+ /** Plane, line, B-spline curve and B-spline surface: the entities brepkit writes. */
8462
+ var POINTER_FREE = /* @__PURE__ */ new Set([
8463
+ 108,
8464
+ 110,
8465
+ 126,
8466
+ 128
8467
+ ]);
8468
+ var PLANE = 108;
8469
+ /** A plane's sixth parameter points at its bounding curve; brepkit writes none. */
8470
+ var PLANE_BOUND = 5;
8471
+ /** Each line by the section letter in column 73. */
8472
+ function sections(doc) {
8473
+ const bySection = /* @__PURE__ */ new Map();
8474
+ for (const line of doc.split("\n")) {
8475
+ if (line.length < 73) continue;
8476
+ const letter = line.charAt(72);
8477
+ const lines = bySection.get(letter) ?? [];
8478
+ lines.push(line.slice(0, 80));
8479
+ bySection.set(letter, lines);
8480
+ }
8481
+ return {
8482
+ start: bySection.get("S") ?? [],
8483
+ global: bySection.get("G") ?? [],
8484
+ directory: bySection.get("D") ?? [],
8485
+ parameter: bySection.get("P") ?? []
8486
+ };
8487
+ }
8488
+ /** The `index`th 8-column field of a directory line. */
8489
+ function field(line, index) {
8490
+ return Number(line.slice(index * 8, index * 8 + 8).trim() || "0");
8491
+ }
8492
+ function withField(line, index, value) {
8493
+ return line.slice(0, index * 8) + String(value).padStart(8) + line.slice(index * 8 + 8);
8494
+ }
8495
+ /** `line` with its section letter and sequence number in columns 73-80. */
8496
+ function withSequence(line, letter, sequence) {
8497
+ return line.slice(0, 72).padEnd(72) + letter + String(sequence).padStart(7);
8498
+ }
8499
+ /** Throw unless the entity a directory entry describes points at nothing. */
8500
+ function assertPointerFree(line1, line2, parameter) {
8501
+ const type = field(line1, 0);
8502
+ const linked = [
8503
+ 2,
8504
+ 3,
8505
+ 4,
8506
+ 5,
8507
+ 6,
8508
+ 7
8509
+ ].some((i) => field(line1, i) !== 0) || field(line2, 2) !== 0;
8510
+ let bounded = false;
8511
+ if (type === PLANE) {
8512
+ const first = field(line1, 1) - 1;
8513
+ bounded = (parameter.slice(first, first + field(line2, 3)).map((l) => l.slice(0, 64)).join("").split(/[,;]/)[PLANE_BOUND]?.trim() ?? "0") !== "0";
8514
+ }
8515
+ if (!POINTER_FREE.has(type) || linked || bounded) throw new Error(`brepkit: cannot merge IGES documents holding a linked entity (type ${type})`);
8516
+ }
8517
+ /** One IGES document holding the entities of every brepkit IGES document in `docs`. */
8518
+ function mergeIgesDocuments(docs) {
8519
+ const [first, ...rest] = docs;
8520
+ if (first === void 0) return "";
8521
+ if (rest.length === 0) return first;
8522
+ const base = sections(first);
8523
+ const directory = [];
8524
+ const parameter = [];
8525
+ for (const doc of docs) {
8526
+ const { directory: d, parameter: p } = sections(doc);
8527
+ const dOffset = directory.length;
8528
+ const pOffset = parameter.length;
8529
+ for (let i = 0; i + 1 < d.length; i += 2) {
8530
+ const line1 = d[i] ?? "";
8531
+ const line2 = d[i + 1] ?? "";
8532
+ assertPointerFree(line1, line2, p);
8533
+ const renumbered = withField(line1, 1, field(line1, 1) + pOffset);
8534
+ directory.push(withSequence(renumbered, "D", dOffset + i + 1));
8535
+ directory.push(withSequence(line2, "D", dOffset + i + 2));
8536
+ }
8537
+ p.forEach((line, j) => {
8538
+ const owner = Number(line.slice(64, 72).trim()) + dOffset;
8539
+ parameter.push(withSequence(line.slice(0, 64) + String(owner).padStart(8), "P", pOffset + j + 1));
8540
+ });
8541
+ }
8542
+ const count = (letter, n) => letter + String(n).padStart(7);
8543
+ const terminate = count("S", base.start.length) + count("G", base.global.length) + count("D", directory.length) + count("P", parameter.length);
8544
+ return [
8545
+ ...base.start,
8546
+ ...base.global,
8547
+ ...directory,
8548
+ ...parameter,
8549
+ withSequence(terminate, "T", 1),
8550
+ ""
8551
+ ].join("\n");
8552
+ }
8553
+ // src/kernel/brepkit/stepMerge.ts
8554
+ var REPRESENTATION = /^(ADVANCED_BREP_SHAPE_REPRESENTATION\s*\(\s*'(?:[^']|'')*'\s*,\s*\()([^)]*)\)/;
8555
+ /** A string literal, kept as is, or a `#n` entity reference. */
8556
+ var TOKEN = /'(?:[^']|'')*'|#(\d+)/g;
8557
+ /** Rewrite every `#n` reference outside a string literal to `#map(n)`. */
8558
+ function mapRefs(body, map) {
8559
+ return body.replace(TOKEN, (token, id) => id === void 0 ? token : `#${map(Number(id))}`);
8560
+ }
8561
+ function refsOf(body) {
8562
+ const refs = [];
8563
+ mapRefs(body, (id) => {
8564
+ refs.push(id);
8565
+ return id;
8566
+ });
8567
+ return refs;
8568
+ }
8569
+ /** Split the data section into records at semicolons outside string literals. */
8570
+ function parseStep(doc) {
8571
+ const dataStart = doc.indexOf("DATA;");
8572
+ if (dataStart < 0) throw new Error("brepkit: STEP document has no DATA section");
8573
+ const bodyStart = dataStart + 5;
8574
+ const records = [];
8575
+ let inString = false;
8576
+ let start = bodyStart;
8577
+ for (let i = bodyStart; i < doc.length; i++) {
8578
+ const ch = doc.charAt(i);
8579
+ if (ch === "'") inString = !inString;
8580
+ if (inString || ch !== ";") continue;
8581
+ const statement = doc.slice(start, i).trim();
8582
+ if (statement === "ENDSEC") return {
8583
+ head: doc.slice(0, bodyStart),
8584
+ tail: doc.slice(start).trimStart(),
8585
+ records
8586
+ };
8587
+ const match = /^#(\d+)\s*=\s*([\s\S]*)$/.exec(statement);
8588
+ if (!match) throw new Error(`brepkit: unreadable STEP record '${statement.slice(0, 40)}'`);
8589
+ records.push({
8590
+ id: Number(match[1]),
8591
+ body: match[2] ?? ""
8592
+ });
8593
+ start = i + 1;
8594
+ }
8595
+ throw new Error("brepkit: STEP document has an unterminated DATA section");
8596
+ }
8597
+ function representationIndex(records) {
8598
+ const index = records.findIndex((r) => REPRESENTATION.test(r.body));
8599
+ if (index < 0) throw new Error("brepkit: STEP document has no shape representation");
8600
+ return index;
8601
+ }
8602
+ /** The ids of the solids a document's shape representation lists. */
8603
+ function solidIds(records) {
8604
+ const rep = records[representationIndex(records)];
8605
+ return refsOf(REPRESENTATION.exec(rep?.body ?? "")?.[2] ?? "");
8606
+ }
8607
+ /** The records `roots` reach, in file order, renumbered consecutively from `firstId`. */
8608
+ function takeReachable(records, roots, firstId) {
8609
+ const byId = new Map(records.map((r) => [r.id, r.body]));
8610
+ const reached = /* @__PURE__ */ new Set();
8611
+ const pending = [...roots];
8612
+ while (pending.length > 0) {
8613
+ const id = pending.pop() ?? 0;
8614
+ if (reached.has(id)) continue;
8615
+ reached.add(id);
8616
+ for (const ref of refsOf(byId.get(id) ?? "")) pending.push(ref);
8617
+ }
8618
+ const kept = records.filter((r) => reached.has(r.id));
8619
+ const renumber = new Map(kept.map((r, i) => [r.id, firstId + i]));
8620
+ const remap = (id) => renumber.get(id) ?? id;
8621
+ return {
8622
+ lines: kept.map((r) => `#${remap(r.id)} = ${mapRefs(r.body, remap)};`),
8623
+ renumber
8624
+ };
8625
+ }
8626
+ /** One STEP document holding the solids of every brepkit STEP document in `docs`. */
8627
+ function mergeStepDocuments(docs) {
8628
+ const [first, ...rest] = docs;
8629
+ if (first === void 0) return "";
8630
+ if (rest.length === 0) return first;
8631
+ const base = parseStep(first);
8632
+ let nextId = base.records.reduce((max, r) => Math.max(max, r.id), 0) + 1;
8633
+ const added = [];
8634
+ const solids = [];
8635
+ for (const doc of rest) {
8636
+ const { records } = parseStep(doc);
8637
+ const roots = solidIds(records);
8638
+ const { lines, renumber } = takeReachable(records, roots, nextId);
8639
+ for (const line of lines) added.push(line);
8640
+ for (const id of roots) solids.push(renumber.get(id) ?? id);
8641
+ nextId += lines.length;
8642
+ }
8643
+ const repIndex = representationIndex(base.records);
8644
+ const extraItems = solids.map((id) => `, #${id}`).join("");
8645
+ const addItems = (_match, open, items) => `${open}${items}${extraItems})`;
8646
+ const lines = base.records.map(({ id, body }, i) => `#${id} = ${i === repIndex ? body.replace(REPRESENTATION, addItems) : body};`);
8647
+ const merged = [
8648
+ ...lines.slice(0, repIndex),
8649
+ ...added,
8650
+ ...lines.slice(repIndex)
8651
+ ];
8652
+ return `${base.head}\n${merged.join("\n")}\n${base.tail}`;
8653
+ }
8449
8654
  // src/kernel/brepkit/ioOps.ts
8450
8655
  function exportSTEP(bk, shapes) {
8451
8656
  if (shapes.length === 0) return "";
8452
- const parts = [];
8453
- for (const shape of shapes) {
8454
- const solidIds = unwrapSolidsForExport(bk, shape, "exportSTEP");
8455
- for (const sid of solidIds) {
8456
- const bytes = bk.exportStep(sid);
8457
- parts.push(new TextDecoder().decode(bytes));
8458
- }
8459
- }
8460
- return parts.join("\n");
8657
+ return mergeStepDocuments(shapes.flatMap((shape) => unwrapSolidsForExport(bk, shape, "exportSTEP")).map((sid) => new TextDecoder().decode(bk.exportStep(sid))));
8461
8658
  }
8462
8659
  function exportSTL$1(bk, shape, binary, tolerance = DEFAULT_STL_TOLERANCE, angularTolerance = DEFAULT_STL_ANGULAR_TOLERANCE) {
8463
- const solidIds = unwrapSolidsForExport(bk, shape, "exportSTL");
8464
- const { vertices, triangles } = mesh$1(bk, solidHandle(wasmIndex(solidIds, 0)), {
8660
+ unwrapSolidsForExport(bk, shape, "exportSTL");
8661
+ const { vertices, triangles } = mesh$1(bk, shape, {
8465
8662
  tolerance,
8466
8663
  angularTolerance,
8467
8664
  skipNormals: true
@@ -8478,15 +8675,7 @@ function importSTL(bk, data) {
8478
8675
  }
8479
8676
  function exportIGES(bk, shapes) {
8480
8677
  if (shapes.length === 0) return "";
8481
- const parts = [];
8482
- for (const shape of shapes) {
8483
- const solidIds = unwrapSolidsForExport(bk, shape, "exportIGES");
8484
- for (const sid of solidIds) {
8485
- const bytes = bk.exportIges(sid);
8486
- parts.push(new TextDecoder().decode(bytes));
8487
- }
8488
- }
8489
- return parts.join("\n");
8678
+ return mergeIgesDocuments(shapes.flatMap((shape) => unwrapSolidsForExport(bk, shape, "exportIGES")).map((sid) => new TextDecoder().decode(bk.exportIges(sid))));
8490
8679
  }
8491
8680
  function importIGES(bk, data) {
8492
8681
  const bytes = typeof data === "string" ? new TextEncoder().encode(data) : new Uint8Array(data);
@@ -8529,9 +8718,11 @@ function toBREP(bk, shape) {
8529
8718
  }
8530
8719
  function fromBREP(bk, data) {
8531
8720
  if (typeof bk.fromBREP === "function" && data.trimStart().startsWith("{")) return solidHandle(bk.fromBREP(data));
8532
- const first = importSTEP(bk, data)[0];
8721
+ const shapes = importSTEP(bk, data);
8722
+ const [first] = shapes;
8533
8723
  if (!first) throw new Error("brepkit: fromBREP produced no shapes");
8534
- return first;
8724
+ if (shapes.length === 1) return first;
8725
+ return compoundHandle(bk.makeCompound(shapes.map((s) => unwrap$1(s, "solid"))));
8535
8726
  }
8536
8727
  function createXCAFDocument(_bk, shapes) {
8537
8728
  return {
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_blueprintSketcher = require("./blueprintSketcher-C4XHzqTw.cjs");
3
- const require_drawFns = require("./drawFns-B5gZtD_P.cjs");
4
- const require_textBlueprints = require("./textBlueprints-P_D0KUVx.cjs");
2
+ const require_blueprintSketcher = require("./blueprintSketcher-B1UrnhFt.cjs");
3
+ const require_drawFns = require("./drawFns-vcRf5KKV.cjs");
4
+ const require_textBlueprints = require("./textBlueprints-dOnCv38X.cjs");
5
5
  // src/sketching.ts
6
6
  /**
7
7
  * brepjs/sketching — Sketcher, Drawing, and sketch-to-shape operations.
package/dist/sketching.js CHANGED
@@ -1,6 +1,6 @@
1
- import { n as BaseSketcher2d, t as BlueprintSketcher } from "./blueprintSketcher-CQ9LxcIl.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-stc8-Gma.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-CT0Kbw1f.js";
1
+ import { n as BaseSketcher2d, t as BlueprintSketcher } from "./blueprintSketcher-RA8ti2Xp.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--_Bd7ONO.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-B7gDC-aP.js";
4
4
  // src/sketching.ts
5
5
  /**
6
6
  * brepjs/sketching — Sketcher, Drawing, and sketch-to-shape operations.
@@ -1,8 +1,8 @@
1
- import { C as isSolid, 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-DbPghQD3.js";
1
+ import { C as isSolid, 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-C7hqbMwl.js";
2
2
  import { E as ok, g as err, l as typeCastError, m as andThen } from "./errors-BTccWbtE.js";
3
- import { C as subShapeHashes, c as getFaces, l as getOrCreateCache, r as getCacheEntry } from "./topologyQueryFns-J2ae_Gvc.js";
3
+ import { C as subShapeHashes, c as getFaces, l as getOrCreateCache, r as getCacheEntry } from "./topologyQueryFns-C3-_9dFM.js";
4
4
  import { n as HASH_CODE_MAX } from "./constants-iraOnb2p.js";
5
- import { _ as cast, y as downcast } from "./faceFns-DaPoCzd-.js";
5
+ import { _ as cast, y as downcast } from "./faceFns-WtnWpVQl.js";
6
6
  // src/topology/metadata/originTrackingFns.ts
7
7
  /**
8
8
  * Face origin tracking — tag faces with integer origins and propagate
@@ -1,8 +1,8 @@
1
- const require_shapeTypes = require("./shapeTypes-BjitsJRQ.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-BFfnNmzj.cjs");
2
2
  const require_errors = require("./errors-O_blYTWT.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-s0LddGkF.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-95FptXtu.cjs");
4
4
  const require_constants = require("./constants-oee0S_x6.cjs");
5
- const require_faceFns = require("./faceFns-C7wBHMPv.cjs");
5
+ const require_faceFns = require("./faceFns-DzNcnzS5.cjs");
6
6
  // src/topology/metadata/originTrackingFns.ts
7
7
  /**
8
8
  * Face origin tracking — tag faces with integer origins and propagate
@@ -1,7 +1,7 @@
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-DbPghQD3.js";
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-C7hqbMwl.js";
2
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-CD_Xz0vZ.js";
4
- import { _ as cast, u as outerWire } from "./faceFns-DaPoCzd-.js";
3
+ import { a as isPlanarFace } from "./validityTypes-C6qOP241.js";
4
+ import { _ as cast, u as outerWire } from "./faceFns-WtnWpVQl.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
- const require_shapeTypes = require("./shapeTypes-BjitsJRQ.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-BFfnNmzj.cjs");
2
2
  const require_errors = require("./errors-O_blYTWT.cjs");
3
- const require_validityTypes = require("./validityTypes-BVZ0lSNi.cjs");
4
- const require_faceFns = require("./faceFns-C7wBHMPv.cjs");
3
+ const require_validityTypes = require("./validityTypes--tgDeAF8.cjs");
4
+ const require_faceFns = require("./faceFns-DzNcnzS5.cjs");
5
5
  // src/utils/range.ts
6
6
  /** Generate an array of integers `[0, 1, …, len - 1]`. */
7
7
  function range(len) {
package/dist/text.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_textBlueprints = require("./textBlueprints-P_D0KUVx.cjs");
3
- const require_textMetrics = require("./textMetrics-CVyX8GyL.cjs");
2
+ const require_textBlueprints = require("./textBlueprints-dOnCv38X.cjs");
3
+ const require_textMetrics = require("./textMetrics-Cqc0xzHC.cjs");
4
4
  exports.fontMetrics = require_textMetrics.fontMetrics;
5
5
  exports.getFont = require_textBlueprints.getFont;
6
6
  exports.loadFont = require_textBlueprints.loadFont;
package/dist/text.js CHANGED
@@ -1,3 +1,3 @@
1
- import { i as setFallbackFont, n as getFont, r as loadFont, t as textBlueprints } from "./textBlueprints-CT0Kbw1f.js";
2
- import { n as textMetrics, r as sketchText, t as fontMetrics } from "./textMetrics-CXKdzefS.js";
1
+ import { i as setFallbackFont, n as getFont, r as loadFont, t as textBlueprints } from "./textBlueprints-B7gDC-aP.js";
2
+ import { n as textMetrics, r as sketchText, t as fontMetrics } from "./textMetrics-BFzj8Zvn.js";
3
3
  export { fontMetrics, getFont, loadFont, setFallbackFont, sketchText, textBlueprints, textMetrics };
@@ -1,19 +1,19 @@
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-DbPghQD3.js";
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-C7hqbMwl.js";
2
2
  import { n as bug } from "./bug-ClMTAJhe.js";
3
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
7
  import { n as createPlane } from "./planeOps-D3yDuMux.js";
8
- import { v as copyShape } from "./faceFns-DaPoCzd-.js";
9
- import { o as makeSolid, t as makeCompound } from "./solidBuilders-BUI_fGzR.js";
10
- import { i as cutAll } from "./booleanFns-CsTz48A3.js";
8
+ import { v as copyShape } from "./faceFns-WtnWpVQl.js";
9
+ import { o as makeSolid, t as makeCompound } from "./solidBuilders-B01dFnd7.js";
10
+ import { i as cutAll } from "./booleanFns-CyxmW1pL.js";
11
11
  import { i as setFaceRoles } from "./faceRoleFns-BPxzQF-n.js";
12
- import { l as curveStartPoint, u as curveTangentAt } from "./curveFns-RjNVzxNc.js";
12
+ import { l as curveStartPoint, u as curveTangentAt } from "./curveFns-b_C6tBeU.js";
13
13
  import { n as getAtOrThrow, t as firstOrThrow } from "./arrayAccess-BpgouNir.js";
14
- import { i as makeNewFaceWithinFace, r as makeFace, t as addHolesInFace } from "./surfaceBuilders-CO_DKhWA.js";
15
- import { r as organiseBlueprints, t as BlueprintSketcher } from "./blueprintSketcher-CQ9LxcIl.js";
16
- import { c as twistExtrude, r as complexExtrude, s as sweep, t as loft } from "./loftFns-Cbnrz3p8.js";
14
+ import { i as makeNewFaceWithinFace, r as makeFace, t as addHolesInFace } from "./surfaceBuilders-Cn7GIsyR.js";
15
+ import { r as organiseBlueprints, t as BlueprintSketcher } from "./blueprintSketcher-RA8ti2Xp.js";
16
+ import { c as twistExtrude, r as complexExtrude, s as sweep, t as loft } from "./loftFns-Y-aBF_f7.js";
17
17
  import opentype from "opentype.js";
18
18
  // src/topology/shapeRef/extrudeRoleFns.ts
19
19
  /** Match tolerance as a fraction of the extrusion's size. */
@@ -1,20 +1,20 @@
1
1
  const require_rolldown_runtime = require("./rolldown-runtime-BW-eSwOZ.cjs");
2
- const require_shapeTypes = require("./shapeTypes-BjitsJRQ.cjs");
2
+ const require_shapeTypes = require("./shapeTypes-BFfnNmzj.cjs");
3
3
  const require_bug = require("./bug-CBcpIPuf.cjs");
4
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
8
  const require_planeOps = require("./planeOps-DZfLToKZ.cjs");
9
- const require_faceFns = require("./faceFns-C7wBHMPv.cjs");
10
- const require_solidBuilders = require("./solidBuilders-Bs2NA3xl.cjs");
11
- const require_booleanFns = require("./booleanFns-MkzdfjDv.cjs");
9
+ const require_faceFns = require("./faceFns-DzNcnzS5.cjs");
10
+ const require_solidBuilders = require("./solidBuilders-CWw3yasa.cjs");
11
+ const require_booleanFns = require("./booleanFns-zRlNDHQY.cjs");
12
12
  const require_faceRoleFns = require("./faceRoleFns-Db5bYj4Q.cjs");
13
- const require_curveFns = require("./curveFns-HtjEh2W-.cjs");
13
+ const require_curveFns = require("./curveFns-0vAErrs9.cjs");
14
14
  const require_arrayAccess = require("./arrayAccess-DpJYARwv.cjs");
15
- const require_surfaceBuilders = require("./surfaceBuilders-Cn1mkQ3j.cjs");
16
- const require_blueprintSketcher = require("./blueprintSketcher-C4XHzqTw.cjs");
17
- const require_loftFns = require("./loftFns-C9k9UAKh.cjs");
15
+ const require_surfaceBuilders = require("./surfaceBuilders-DL7UTpW2.cjs");
16
+ const require_blueprintSketcher = require("./blueprintSketcher-B1UrnhFt.cjs");
17
+ const require_loftFns = require("./loftFns-KXrP3aat.cjs");
18
18
  let opentype_js = require("opentype.js");
19
19
  opentype_js = require_rolldown_runtime.__toESM(opentype_js, 1);
20
20
  // src/topology/shapeRef/extrudeRoleFns.ts
@@ -1,5 +1,5 @@
1
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-CT0Kbw1f.js";
2
+ import { _ as wrapSketchData, a as Sketches, n as getFont, t as textBlueprints, y as CompoundSketch } from "./textBlueprints-B7gDC-aP.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
1
  const require_errors = require("./errors-O_blYTWT.cjs");
2
- const require_textBlueprints = require("./textBlueprints-P_D0KUVx.cjs");
2
+ const require_textBlueprints = require("./textBlueprints-dOnCv38X.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
- const require_shapeTypes = require("./shapeTypes-BjitsJRQ.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-BFfnNmzj.cjs");
2
2
  const require_errors = require("./errors-O_blYTWT.cjs");
3
3
  const require_vecOps = require("./vecOps-CrGEPPQM.cjs");
4
- const require_faceFns = require("./faceFns-C7wBHMPv.cjs");
5
- const require_booleanFns = require("./booleanFns-MkzdfjDv.cjs");
6
- const require_primitiveFns = require("./primitiveFns-BifV4IGL.cjs");
7
- const require_shapeFns = require("./shapeFns-Rmgd4x9I.cjs");
8
- const require_loftFns = require("./loftFns-C9k9UAKh.cjs");
9
- const require_refResolveFns = require("./refResolveFns-CTkAPUwM.cjs");
4
+ const require_faceFns = require("./faceFns-DzNcnzS5.cjs");
5
+ const require_booleanFns = require("./booleanFns-zRlNDHQY.cjs");
6
+ const require_primitiveFns = require("./primitiveFns-BM709SMs.cjs");
7
+ const require_shapeFns = require("./shapeFns-Bgql2_E6.cjs");
8
+ const require_loftFns = require("./loftFns-KXrP3aat.cjs");
9
+ const require_refResolveFns = require("./refResolveFns-BkSLmvyY.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
- import { F as createKernelHandle, G as _usingCtx, N as DisposalScope, n as castResultShape, q as getKernel, x as isShape3D } from "./shapeTypes-DbPghQD3.js";
1
+ import { F as createKernelHandle, G as _usingCtx, N as DisposalScope, n as castResultShape, q as getKernel, x as isShape3D } from "./shapeTypes-C7hqbMwl.js";
2
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-DaPoCzd-.js";
5
- import { o as fuseAll } from "./booleanFns-CsTz48A3.js";
6
- import { E as wire, h as line } from "./primitiveFns-uDvN1FH6.js";
7
- import { s as toBREP, t as clone } from "./shapeFns-DgpWLKra.js";
8
- import { t as loft } from "./loftFns-Cbnrz3p8.js";
9
- import { c as resolveRefParams } from "./refResolveFns-CuaYXFya.js";
4
+ import { b as fromBREP } from "./faceFns-WtnWpVQl.js";
5
+ import { o as fuseAll } from "./booleanFns-CyxmW1pL.js";
6
+ import { E as wire, h as line } from "./primitiveFns-BZALpT35.js";
7
+ import { s as toBREP, t as clone } from "./shapeFns-CSWOXGx9.js";
8
+ import { t as loft } from "./loftFns-Y-aBF_f7.js";
9
+ import { c as resolveRefParams } from "./refResolveFns-BA1ES0sL.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-s0LddGkF.cjs");
3
- const require_faceFns = require("./faceFns-C7wBHMPv.cjs");
4
- const require_booleanFns = require("./booleanFns-MkzdfjDv.cjs");
5
- const require_primitiveFns = require("./primitiveFns-BifV4IGL.cjs");
6
- const require_shapeFns = require("./shapeFns-Rmgd4x9I.cjs");
7
- const require_curveFns = require("./curveFns-HtjEh2W-.cjs");
8
- const require_meshFns = require("./meshFns-8MTf0Lo_.cjs");
9
- const require_healingFns = require("./healingFns-zYCbT8vR.cjs");
10
- const require_adjacencyFns = require("./adjacencyFns-BXzEHSC5.cjs");
2
+ const require_topologyQueryFns = require("./topologyQueryFns-95FptXtu.cjs");
3
+ const require_faceFns = require("./faceFns-DzNcnzS5.cjs");
4
+ const require_booleanFns = require("./booleanFns-zRlNDHQY.cjs");
5
+ const require_primitiveFns = require("./primitiveFns-BM709SMs.cjs");
6
+ const require_shapeFns = require("./shapeFns-Bgql2_E6.cjs");
7
+ const require_curveFns = require("./curveFns-0vAErrs9.cjs");
8
+ const require_meshFns = require("./meshFns-BnkXZ0Xm.cjs");
9
+ const require_healingFns = require("./healingFns-D26gj7M5.cjs");
10
+ const require_adjacencyFns = require("./adjacencyFns-BA9xrrmS.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-J2ae_Gvc.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-DaPoCzd-.js";
3
- import { i as cutAll, o as fuseAll } from "./booleanFns-CsTz48A3.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-uDvN1FH6.js";
5
- import { a as isSameShape, i as isEqualShape, n as getHashCode } from "./shapeFns-DgpWLKra.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-RjNVzxNc.js";
7
- import { f as clearMeshCache, n as exportSTEP, p as createMeshCache, r as exportSTL, t as exportIGES } from "./meshFns-CcuY52tt.js";
8
- import { I as toLineGeometryData, M as toBufferGeometryData, N 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 variableFillet, 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-C3Wq_hN3.js";
9
- import { i as facesOfEdge, l as wiresOfFace, n as adjacentFaces, o as sharedEdges, r as edgesOfFace, s as verticesOfEdge } from "./adjacencyFns-BYjzMejn.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-C3-_9dFM.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-WtnWpVQl.js";
3
+ import { i as cutAll, o as fuseAll } from "./booleanFns-CyxmW1pL.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-BZALpT35.js";
5
+ import { a as isSameShape, i as isEqualShape, n as getHashCode } from "./shapeFns-CSWOXGx9.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-b_C6tBeU.js";
7
+ import { f as clearMeshCache, n as exportSTEP, p as createMeshCache, r as exportSTL, t as exportIGES } from "./meshFns-BazHDlpY.js";
8
+ import { I as toLineGeometryData, M as toBufferGeometryData, N 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 variableFillet, 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-B82dNj9P.js";
9
+ import { i as facesOfEdge, l as wiresOfFace, n as adjacentFaces, o as sharedEdges, r as edgesOfFace, s as verticesOfEdge } from "./adjacencyFns-C4Tui11_.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,4 +1,4 @@
1
- const require_shapeTypes = require("./shapeTypes-BjitsJRQ.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-BFfnNmzj.cjs");
2
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
@@ -1,4 +1,4 @@
1
- import { G as _usingCtx, N as DisposalScope, O as getOrQueryType, n as castResultShape, q as getKernel, r as castResultShapeWithKnownType } from "./shapeTypes-DbPghQD3.js";
1
+ import { G as _usingCtx, N as DisposalScope, O as getOrQueryType, n as castResultShape, q as getKernel, r as castResultShapeWithKnownType } from "./shapeTypes-C7hqbMwl.js";
2
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
@@ -1,4 +1,4 @@
1
- const require_shapeTypes = require("./shapeTypes-BjitsJRQ.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-BFfnNmzj.cjs");
2
2
  const require_errors = require("./errors-O_blYTWT.cjs");
3
3
  // src/core/validityTypes.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { q as getKernel } from "./shapeTypes-DbPghQD3.js";
1
+ import { q as getKernel } from "./shapeTypes-C7hqbMwl.js";
2
2
  import { E as ok, g as err } from "./errors-BTccWbtE.js";
3
3
  // src/core/validityTypes.ts
4
4
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "brepjs",
3
- "version": "20.13.0",
3
+ "version": "20.13.1",
4
4
  "description": "Exact B-Rep CAD in TypeScript on OpenCascade WebAssembly, with a pluggable geometry kernel",
5
5
  "keywords": [
6
6
  "cad",