circuit-json-to-lbrn 0.0.42 → 0.0.44

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 (96) hide show
  1. package/dist/index.d.ts +12 -1
  2. package/dist/index.js +238 -15
  3. package/lib/ConvertContext.ts +12 -0
  4. package/lib/createCopperCutFillForLayer.ts +217 -0
  5. package/lib/element-handlers/addPcbTrace/index.ts +35 -13
  6. package/lib/getManifold.ts +31 -0
  7. package/lib/index.ts +72 -4
  8. package/package.json +3 -2
  9. package/site/index.html +24 -1
  10. package/site/main.tsx +8 -0
  11. package/tests/basics/__snapshots__/board-outline-does-not-appear-in soldermask.snap.svg +1 -1
  12. package/tests/basics/__snapshots__/board-outline.snap.svg +1 -1
  13. package/tests/basics/__snapshots__/mixed-soldermask-margins.snap.svg +1 -1
  14. package/tests/basics/addPcbCutout/__snapshots__/pcb-cutout-circle.snap.svg +1 -1
  15. package/tests/basics/addPcbCutout/__snapshots__/pcb-cutout-path.snap.svg +1 -1
  16. package/tests/basics/addPcbCutout/__snapshots__/pcb-cutout-polygon.snap.svg +1 -1
  17. package/tests/basics/addPcbCutout/__snapshots__/pcb-cutout-rect.snap.svg +1 -1
  18. package/tests/basics/addPcbCutout/pcb-cutout-circle.test.ts +1 -1
  19. package/tests/basics/addPcbCutout/pcb-cutout-path.test.ts +1 -1
  20. package/tests/basics/addPcbCutout/pcb-cutout-polygon.test.ts +1 -1
  21. package/tests/basics/addPcbCutout/pcb-cutout-rect.test.ts +1 -1
  22. package/tests/basics/addPcbHole/__snapshots__/pcb-hole-circle.snap.svg +1 -1
  23. package/tests/basics/addPcbHole/__snapshots__/pcb-hole-oval.snap.svg +1 -1
  24. package/tests/basics/addPcbHole/__snapshots__/pcb-hole-pill.snap.svg +1 -1
  25. package/tests/basics/addPcbHole/__snapshots__/pcb-hole-rect.snap.svg +1 -1
  26. package/tests/basics/addPcbHole/__snapshots__/pcb-hole-rotated-pill.snap.svg +1 -1
  27. package/tests/basics/addPcbHole/__snapshots__/pcb-hole-soldermask-margin.snap.svg +1 -1
  28. package/tests/basics/addPcbHole/__snapshots__/pcb-hole-with-soldermask.snap.svg +1 -1
  29. package/tests/basics/addPcbHole/pcb-hole-circle.test.ts +1 -1
  30. package/tests/basics/addPcbHole/pcb-hole-oval.test.ts +1 -1
  31. package/tests/basics/addPcbHole/pcb-hole-pill.test.ts +1 -1
  32. package/tests/basics/addPcbHole/pcb-hole-rect.test.ts +1 -1
  33. package/tests/basics/addPcbHole/pcb-hole-rotated-pill.test.ts +1 -1
  34. package/tests/basics/addPcbHole/pcb-hole-soldermask-margin.test.ts +1 -1
  35. package/tests/basics/addPcbHole/pcb-hole-with-soldermask.test.ts +1 -1
  36. package/tests/basics/addPcbVia/__snapshots__/pcb-via-basic.snap.svg +1 -1
  37. package/tests/basics/addPcbVia/__snapshots__/pcb-via-with-net.snap.svg +1 -1
  38. package/tests/basics/addPcbVia/__snapshots__/pcb-via-with-soldermask.snap.svg +1 -1
  39. package/tests/basics/addPcbVia/pcb-via-basic.test.ts +1 -1
  40. package/tests/basics/addPcbVia/pcb-via-with-net.test.ts +1 -1
  41. package/tests/basics/addPcbVia/pcb-via-with-soldermask.test.ts +1 -1
  42. package/tests/basics/addPlatedHole/__snapshots__/pcb-plated-hole-circular-hole-with-rect-pad.snap.svg +1 -1
  43. package/tests/basics/addPlatedHole/__snapshots__/pcb-plated-hole-oval.snap.svg +1 -1
  44. package/tests/basics/addPlatedHole/__snapshots__/pcb-plated-hole-pill-with-rect-pad.snap.svg +1 -1
  45. package/tests/basics/addPlatedHole/__snapshots__/pcb-plated-hole-pill.snap.svg +1 -1
  46. package/tests/basics/addPlatedHole/__snapshots__/pcb-plated-hole-polygon.snap.svg +1 -1
  47. package/tests/basics/addPlatedHole/__snapshots__/pcb-plated-hole-rotated-pill-with-rect-pad.snap.svg +1 -1
  48. package/tests/basics/addPlatedHole/pcb-plated-hole-circle.test.ts +1 -1
  49. package/tests/basics/addPlatedHole/pcb-plated-hole-circular-hole-with-rect-pad.test.ts +1 -1
  50. package/tests/basics/addPlatedHole/pcb-plated-hole-oval.test.ts +1 -1
  51. package/tests/basics/addPlatedHole/pcb-plated-hole-pill-with-rect-pad.test.ts +1 -1
  52. package/tests/basics/addPlatedHole/pcb-plated-hole-pill.test.ts +1 -1
  53. package/tests/basics/addPlatedHole/pcb-plated-hole-polygon.test.ts +1 -1
  54. package/tests/basics/addPlatedHole/pcb-plated-hole-rotated-pill-with-rect-pad.test.ts +1 -1
  55. package/tests/basics/addSmtPad/__snapshots__/circleSmtPad.snap.svg +1 -1
  56. package/tests/basics/addSmtPad/__snapshots__/pillSmtPad.snap.svg +1 -1
  57. package/tests/basics/addSmtPad/__snapshots__/polygonSmtPad.snap.svg +1 -1
  58. package/tests/basics/addSmtPad/__snapshots__/rotatedPillSmtPad.snap.svg +1 -1
  59. package/tests/basics/addSmtPad/__snapshots__/rotatedRectSmtPad.snap.svg +1 -1
  60. package/tests/basics/addSmtPad/circleSmtPad.test.ts +1 -1
  61. package/tests/basics/addSmtPad/pillSmtPad.test.ts +1 -1
  62. package/tests/basics/addSmtPad/polygonSmtPad.test.ts +1 -1
  63. package/tests/basics/addSmtPad/rotatedPillSmtPad.test.ts +1 -1
  64. package/tests/basics/addSmtPad/rotatedRectSmtPad.test.ts +1 -1
  65. package/tests/basics/board-outline-does-not-appear-in soldermask.test.ts +1 -1
  66. package/tests/basics/board-outline.test.ts +1 -1
  67. package/tests/basics/copper-cut-fill/__snapshots__/copper-cut-fill-basic.snap.svg +8 -0
  68. package/tests/basics/copper-cut-fill/__snapshots__/copper-cut-fill-with-pads.snap.svg +8 -0
  69. package/tests/basics/copper-cut-fill/copper-cut-fill-basic.test.ts +73 -0
  70. package/tests/basics/copper-cut-fill/copper-cut-fill-with-pads.test.ts +128 -0
  71. package/tests/basics/keyboard-defaul60/keyboard-both-layer-includeSoldermask.test.ts +1 -1
  72. package/tests/basics/keyboard-defaul60/keyboard-both-layers.test.ts +1 -1
  73. package/tests/basics/keyboard-defaul60/keyboard-bottom-layer.test.ts +1 -1
  74. package/tests/basics/keyboard-defaul60/keyboard-top-layer.test.ts +1 -1
  75. package/tests/basics/laser-profile.test.ts +4 -4
  76. package/tests/basics/lga-interconnect.test.ts +1 -1
  77. package/tests/basics/mixed-soldermask-margins.test.ts +1 -1
  78. package/tests/basics/single-trace.test.ts +1 -1
  79. package/tests/basics/soldermask/copper-and-soldermask.test.ts +1 -1
  80. package/tests/basics/soldermask/copper-only.test.ts +1 -1
  81. package/tests/basics/soldermask/soldermask-only.test.ts +1 -1
  82. package/tests/basics/soldermask-margin/__snapshots__/percent-soldermask-margin.snap.svg +1 -1
  83. package/tests/basics/soldermask-margin/negative-soldermask-margin.test.ts +1 -1
  84. package/tests/basics/soldermask-margin/percent-soldermask-margin.test.ts +1 -1
  85. package/tests/basics/soldermask-margin/positive-soldermask-margin.test.ts +1 -1
  86. package/tests/basics/trace-margin/pico-w-3x5-led-matrix-trace-margin.test.ts +1 -1
  87. package/tests/basics/trace-margin/trace-margin-basic.test.ts +1 -1
  88. package/tests/basics/trace-margin/trace-margin-error.test.ts +4 -4
  89. package/tests/examples/example01/__snapshots__/example01.snap.svg +1 -1
  90. package/tests/examples/example01/example01.test.ts +1 -1
  91. package/tests/examples/example02/example02.test.ts +1 -1
  92. package/tests/examples/example03/example03.test.ts +1 -1
  93. package/tests/examples/example04/example04.test.ts +1 -1
  94. package/tests/examples/example05/__snapshots__/example05.snap.svg +1 -0
  95. package/tests/examples/example05/example05.circuit.json +9562 -0
  96. package/tests/examples/example05/example05.test.ts +31 -0
@@ -64,7 +64,7 @@ const circuitJson: CircuitJson = [
64
64
  test("renders soldermask with positive margin", async () => {
65
65
  const pcbSvg = await convertCircuitJsonToPcbSvg(circuitJson)
66
66
 
67
- const project = convertCircuitJsonToLbrn(circuitJson, {
67
+ const project = await convertCircuitJsonToLbrn(circuitJson, {
68
68
  includeSoldermask: true,
69
69
  includeCopper: true,
70
70
  globalCopperSoldermaskMarginAdjustment: -0.2,
@@ -75,7 +75,7 @@ const circuitJson: CircuitJson = [
75
75
  test("soldermask renders with correct percent margin", async () => {
76
76
  const pcbSvg = await convertCircuitJsonToPcbSvg(circuitJson)
77
77
 
78
- const project = convertCircuitJsonToLbrn(circuitJson, {
78
+ const project = await convertCircuitJsonToLbrn(circuitJson, {
79
79
  includeSoldermask: true,
80
80
  includeCopper: true,
81
81
  solderMaskMarginPercent: -20, // negative shrink
@@ -64,7 +64,7 @@ const circuitJson: CircuitJson = [
64
64
  test("renders soldermask with positive margin", async () => {
65
65
  const pcbSvg = await convertCircuitJsonToPcbSvg(circuitJson)
66
66
 
67
- const project = convertCircuitJsonToLbrn(circuitJson, {
67
+ const project = await convertCircuitJsonToLbrn(circuitJson, {
68
68
  includeSoldermask: true,
69
69
  includeCopper: true,
70
70
  globalCopperSoldermaskMarginAdjustment: 0.2,
@@ -11,7 +11,7 @@ test(
11
11
  async () => {
12
12
  const pcbSvg = await convertCircuitJsonToPcbSvg(circuitJson as CircuitJson)
13
13
 
14
- const project = convertCircuitJsonToLbrn(circuitJson as CircuitJson, {
14
+ const project = await convertCircuitJsonToLbrn(circuitJson as CircuitJson, {
15
15
  includeCopper: true,
16
16
  traceMargin: 0.15,
17
17
  laserSpotSize: 0.005,
@@ -43,7 +43,7 @@ test("trace-margin-basic", async () => {
43
43
 
44
44
  const pcbSvg = await convertCircuitJsonToPcbSvg(circuitJson)
45
45
 
46
- const project = convertCircuitJsonToLbrn(circuitJson, {
46
+ const project = await convertCircuitJsonToLbrn(circuitJson, {
47
47
  includeCopper: true,
48
48
  traceMargin: 0.3,
49
49
  laserSpotSize: 0.005,
@@ -2,7 +2,7 @@ import { test, expect } from "bun:test"
2
2
  import { convertCircuitJsonToLbrn } from "../../../lib"
3
3
  import type { CircuitJson } from "circuit-json"
4
4
 
5
- test("trace-margin - error when includeCopper is false", () => {
5
+ test("trace-margin - error when includeCopper is false", async () => {
6
6
  const circuitJson = [
7
7
  {
8
8
  type: "pcb_board",
@@ -38,10 +38,10 @@ test("trace-margin - error when includeCopper is false", () => {
38
38
  },
39
39
  ] as CircuitJson
40
40
 
41
- expect(() => {
41
+ await expect(
42
42
  convertCircuitJsonToLbrn(circuitJson, {
43
43
  includeCopper: false,
44
44
  traceMargin: 0.3,
45
- })
46
- }).toThrow("traceMargin requires includeCopper to be true")
45
+ }),
46
+ ).rejects.toThrow("traceMargin requires includeCopper to be true")
47
47
  })