@tscircuit/schematic-trace-solver 0.0.179 → 0.0.181

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 (142) hide show
  1. package/dist/index.d.ts +2 -2
  2. package/dist/index.js +88 -11
  3. package/lib/solvers/AvailableNetOrientationSolver/AvailableNetOrientationSolver.ts +63 -4
  4. package/lib/solvers/AvailableNetOrientationSolver/traces.ts +36 -0
  5. package/lib/solvers/AvailableNetOrientationSolver/types.ts +1 -0
  6. package/lib/solvers/SameNetJunctionAlignmentSolver/alignSameNetJunctions.ts +29 -11
  7. package/package.json +1 -1
  8. package/tests/bug-reports/bug-report-20260706T213649Z/__snapshots__/bug-report-20260706T213649Z.snap.svg +2 -114
  9. package/tests/bug-reports/bug-report-20260706T213649Z/bug-report-20260706T213649Z.json +1 -0
  10. package/tests/bug-reports/bug-report-20260706T220324Z/__snapshots__/bug-report-20260706T220324Z.snap.svg +3 -94
  11. package/tests/bug-reports/bug-report-20260706T220324Z/bug-report-20260706T220324Z.json +1 -0
  12. package/tests/bug-reports/bug-report-20260707T092615Z/__snapshots__/bug-report-20260707T092615Z.snap.svg +533 -578
  13. package/tests/bug-reports/bug-report-20260707T092615Z/bug-report-20260707T092615Z.json +1 -0
  14. package/tests/bug-reports/bug-report-20260707T134549Z/__snapshots__/bug-report-20260707T134549Z.snap.svg +2 -37
  15. package/tests/bug-reports/bug-report-20260707T134549Z/bug-report-20260707T134549Z.json +1 -0
  16. package/tests/bug-reports/bug-report-20260707T134722Z/__snapshots__/bug-report-20260707T134722Z.snap.svg +4 -25
  17. package/tests/bug-reports/bug-report-20260707T134722Z/bug-report-20260707T134722Z.json +1 -0
  18. package/tests/bug-reports/bug-report-20260707T140410Z/__snapshots__/bug-report-20260707T140410Z.snap.svg +1 -50
  19. package/tests/bug-reports/bug-report-20260707T140410Z/bug-report-20260707T140410Z.json +1 -0
  20. package/tests/bug-reports/bug-report-20260707T141025Z/__snapshots__/bug-report-20260707T141025Z.snap.svg +1 -15
  21. package/tests/bug-reports/bug-report-20260707T141025Z/bug-report-20260707T141025Z.json +1 -0
  22. package/tests/bug-reports/bug-report-20260707T141421Z/__snapshots__/bug-report-20260707T141421Z.snap.svg +5 -33
  23. package/tests/bug-reports/bug-report-20260707T141421Z/bug-report-20260707T141421Z.json +1 -0
  24. package/tests/bug-reports/bug-report-20260707T230831Z/__snapshots__/bug-report-20260707T230831Z.snap.svg +1 -15
  25. package/tests/bug-reports/bug-report-20260707T230831Z/bug-report-20260707T230831Z.json +1 -0
  26. package/tests/bug-reports/bug-report-20260708T055430Z/__snapshots__/bug-report-20260708T055430Z.snap.svg +65 -79
  27. package/tests/bug-reports/bug-report-20260708T055430Z/bug-report-20260708T055430Z.json +1 -0
  28. package/tests/bug-reports/bug-report-20260708T095725Z/__snapshots__/bug-report-20260708T095725Z.snap.svg +1 -15
  29. package/tests/bug-reports/bug-report-20260708T095725Z/bug-report-20260708T095725Z.json +1 -0
  30. package/tests/bug-reports/bug-report-20260716T144856Z/__snapshots__/bug-report-20260716T144856Z.snap.svg +1 -43
  31. package/tests/bug-reports/bug-report-20260716T144856Z/bug-report-20260716T144856Z.json +1 -0
  32. package/tests/bug-reports/bug-report-20260717T022934Z/__snapshots__/bug-report-20260717T022934Z.snap.svg +2 -30
  33. package/tests/bug-reports/bug-report-20260717T022934Z/bug-report-20260717T022934Z.json +1 -0
  34. package/tests/bug-reports/bug-report-20260717T031704Z/__snapshots__/bug-report-20260717T031704Z.snap.svg +1 -8
  35. package/tests/bug-reports/bug-report-20260717T031704Z/bug-report-20260717T031704Z.json +1 -0
  36. package/tests/bug-reports/bug-report-20260721T221026Z/__snapshots__/bug-report-20260721T221026Z.snap.svg +1 -92
  37. package/tests/bug-reports/bug-report-20260721T221026Z/bug-report-20260721T221026Z.json +1 -0
  38. package/tests/bug-reports/bug-report-20260728T144234Z/__snapshots__/bug-report-20260728T144234Z.snap.svg +1 -29
  39. package/tests/bug-reports/bug-report-20260728T144234Z/bug-report-20260728T144234Z.json +1 -0
  40. package/tests/bug-reports/bug-report-20260728T225606Z/__snapshots__/bug-report-20260728T225606Z.snap.svg +1 -22
  41. package/tests/bug-reports/bug-report-20260728T225606Z/bug-report-20260728T225606Z.json +1 -0
  42. package/tests/bug-reports/bug-report-20260730T061837Z/__snapshots__/bug-report-20260730T061837Z.snap.svg +1 -8
  43. package/tests/bug-reports/bug-report-20260730T061837Z/bug-report-20260730T061837Z.json +1 -0
  44. package/tests/bug-reports/bug-report-20260804T095800Z/__snapshots__/bug-report-20260804T095800Z.snap.svg +1 -36
  45. package/tests/bug-reports/bug-report-20260804T095800Z/bug-report-20260804T095800Z.json +1 -0
  46. package/tests/bug-reports/bug-report-20260804T171919Z/__snapshots__/bug-report-20260804T171919Z.snap.svg +2 -121
  47. package/tests/bug-reports/bug-report-20260804T171919Z/bug-report-20260804T171919Z.json +1 -0
  48. package/tests/bug-reports/bug-report-20260804T225912Z/__snapshots__/bug-report-20260804T225912Z.snap.svg +1 -8
  49. package/tests/bug-reports/bug-report-20260804T225912Z/bug-report-20260804T225912Z.json +1 -0
  50. package/tests/bug-reports/bug-report-20260805T061316Z/__snapshots__/bug-report-20260805T061316Z.snap.svg +1 -15
  51. package/tests/bug-reports/bug-report-20260805T061316Z/bug-report-20260805T061316Z.json +1 -0
  52. package/tests/bug-reports/bug-report-20260806T061548Z/__snapshots__/bug-report-20260806T061548Z.snap.svg +1 -15
  53. package/tests/bug-reports/bug-report-20260806T061548Z/bug-report-20260806T061548Z.json +1 -0
  54. package/tests/bug-reports/bug-report-20260806T093501Z/__snapshots__/bug-report-20260806T093501Z.snap.svg +1 -22
  55. package/tests/bug-reports/bug-report-20260806T093501Z/bug-report-20260806T093501Z.json +1 -0
  56. package/tests/bug-reports/bug-report-20260811T075142Z/__snapshots__/bug-report-20260811T075142Z.snap.svg +1 -8
  57. package/tests/bug-reports/bug-report-20260811T075142Z/bug-report-20260811T075142Z.json +1 -0
  58. package/tests/bug-reports/bug-report-20260815T073240Z/__snapshots__/bug-report-20260815T073240Z.snap.svg +1 -22
  59. package/tests/bug-reports/bug-report-20260815T073240Z/bug-report-20260815T073240Z.json +1 -0
  60. package/tests/bug-reports/bug-report-20260819T091818Z/__snapshots__/bug-report-20260819T091818Z.snap.svg +1 -15
  61. package/tests/bug-reports/bug-report-20260819T091818Z/bug-report-20260819T091818Z.json +1 -0
  62. package/tests/bug-reports/bug-report-20260825T103621Z/__snapshots__/bug-report-20260825T103621Z.snap.svg +1 -29
  63. package/tests/bug-reports/bug-report-20260825T103621Z/bug-report-20260825T103621Z.json +1 -0
  64. package/tests/bug-reports/bug-report-20260826T072956Z/__snapshots__/bug-report-20260826T072956Z.snap.svg +31 -95
  65. package/tests/bug-reports/bug-report-20260826T072956Z/bug-report-20260826T072956Z.json +1 -0
  66. package/tests/repros/__snapshots__/board-1273-trace-overlap-cycle.snap.svg +1 -113
  67. package/tests/repros/__snapshots__/board-15984-same-net-junction.snap.svg +1 -29
  68. package/tests/repros/__snapshots__/board1096-usb-label-overlap-iteration.snap.svg +64 -56
  69. package/tests/repros/__snapshots__/bugreport-001-gnd-overlap.snap.svg +1 -15
  70. package/tests/repros/__snapshots__/netlabel-connector-through-rail-label.snap.svg +1 -22
  71. package/tests/repros/__snapshots__/repro-atmega328p-missing-gnd-netlabel.snap.svg +185 -186
  72. package/tests/repros/__snapshots__/repro-board-589-regulator-section.snap.svg +1 -15
  73. package/tests/repros/__snapshots__/repro-board-648-esp12f-section.snap.svg +1 -15
  74. package/tests/repros/__snapshots__/repro-board-8090-power-section.snap.svg +126 -0
  75. package/tests/repros/__snapshots__/repro-bq24074-battery-charger.snap.svg +1 -29
  76. package/tests/repros/__snapshots__/repro-bq25895-cross-net-trace-overlap.snap.svg +1 -8
  77. package/tests/repros/__snapshots__/repro-cc2340r5.snap.svg +1 -15
  78. package/tests/repros/__snapshots__/repro-example35-minimize-trace-crossing.snap.svg +1 -8
  79. package/tests/repros/__snapshots__/repro-hub-usb-sheet.snap.svg +545 -0
  80. package/tests/repros/__snapshots__/repro-ina237-current-monitor.snap.svg +1 -22
  81. package/tests/repros/__snapshots__/repro-isolated-rs485-isow7841.snap.svg +2 -2
  82. package/tests/repros/__snapshots__/repro-mcp73831-charger-traces.snap.svg +131 -0
  83. package/tests/repros/__snapshots__/repro-missing-trace-netlabel.snap.svg +1 -15
  84. package/tests/repros/__snapshots__/repro-mouse-switch-ground-unnecessary-jog.snap.svg +83 -0
  85. package/tests/repros/__snapshots__/repro-mspm0l1306-capacitor-symmetry.snap.svg +1 -29
  86. package/tests/repros/__snapshots__/repro-netlabel-overlap-trace.snap.svg +1 -8
  87. package/tests/repros/__snapshots__/repro-nrf52810-clock-routing.snap.svg +1 -29
  88. package/tests/repros/__snapshots__/repro-pmp11282-isolated-dcdc.snap.svg +2 -2
  89. package/tests/repros/__snapshots__/repro-powerbank-3v-system-power.snap.svg +1 -29
  90. package/tests/repros/__snapshots__/repro-rf1-unnecessary-dogleg.snap.svg +72 -0
  91. package/tests/repros/__snapshots__/repro-rp2040-gamepad-trace-alignment.snap.svg +1 -8
  92. package/tests/repros/__snapshots__/repro-rp2040-usb-cc2-ground-overlap.snap.svg +1 -8
  93. package/tests/repros/__snapshots__/repro-smartwatch-power-sheet.snap.svg +4 -4
  94. package/tests/repros/__snapshots__/repro-tps61222-trace-intersection.snap.svg +1 -8
  95. package/tests/repros/__snapshots__/repro-usb-power-vbus-label-detour.snap.svg +991 -1091
  96. package/tests/repros/__snapshots__/repro130-bq27441-fuel-gauge-trace-through-c1.snap.svg +2 -2
  97. package/tests/repros/__snapshots__/repro161-power-section-autolayout.snap.svg +1 -15
  98. package/tests/repros/__snapshots__/repro48-555-timer-vcc-rail-label.snap.svg +1 -22
  99. package/tests/repros/__snapshots__/repro51-overlap-junction-crossing.snap.svg +1 -15
  100. package/tests/repros/__snapshots__/small-variant-resistor-facing-direction.snap.svg +65 -79
  101. package/tests/repros/__snapshots__/trace-overlap-box-resistor.snap.svg +1 -8
  102. package/tests/repros/assets/board-1273-trace-overlap-cycle.input.json +1 -0
  103. package/tests/repros/assets/board-15984-schematic-trace-input.json +1 -0
  104. package/tests/repros/assets/bugreport-001-gnd-overlap.input.json +1 -0
  105. package/tests/repros/assets/repro-atmega328p-fault-pullup.input.json +1 -0
  106. package/tests/repros/assets/repro-atmega328p-missing-gnd-netlabel.input.json +1 -0
  107. package/tests/repros/assets/repro-board-589-regulator-section.input.json +1 -0
  108. package/tests/repros/assets/repro-board-648-esp12f-section.input.json +1 -0
  109. package/tests/repros/assets/repro-board-8090-power-section.input.json +322 -0
  110. package/tests/repros/assets/repro-bq24074-battery-charger.input.json +1 -0
  111. package/tests/repros/assets/repro-bq25895-cross-net-trace-overlap.input.json +1 -0
  112. package/tests/repros/assets/repro-cc2340r5.input.json +1 -0
  113. package/tests/repros/assets/repro-example35-minimize-trace-crossing.input.json +1 -0
  114. package/tests/repros/assets/repro-hub-usb-sheet.input.json +3967 -0
  115. package/tests/repros/assets/repro-ina237-current-monitor.input.json +1 -0
  116. package/tests/repros/assets/repro-mcp73831-charger-traces.input.json +256 -0
  117. package/tests/repros/assets/repro-missing-trace-netlabel.input.json +1 -0
  118. package/tests/repros/assets/repro-mouse-switch-ground-unnecessary-jog.input.json +158 -0
  119. package/tests/repros/assets/repro-mspm0l1306-capacitor-symmetry.input.json +1 -0
  120. package/tests/repros/assets/repro-netlabel-connector-through-label.input.json +1 -0
  121. package/tests/repros/assets/repro-netlabel-overlap-trace.input.json +1 -0
  122. package/tests/repros/assets/repro-nrf52810-clock-routing.input.json +1 -0
  123. package/tests/repros/assets/repro-powerbank-3v-system-power.input.json +1 -0
  124. package/tests/repros/assets/repro-rf1-unnecessary-dogleg.input.json +90 -0
  125. package/tests/repros/assets/repro-rp2040-gamepad-trace-alignment.input.json +1 -0
  126. package/tests/repros/assets/repro-rp2040-usb-cc2-ground-overlap.input.json +1 -0
  127. package/tests/repros/assets/repro-tps61222-trace-intersection.input.json +1 -0
  128. package/tests/repros/assets/repro-usb-power-vbus-label-detour.input.json +1 -0
  129. package/tests/repros/assets/repro126-trace-overlap-box-resistor.input.json +1 -0
  130. package/tests/repros/assets/repro161-power-section-autolayout.input.json +1 -0
  131. package/tests/repros/assets/repro48-555-timer-vcc-rail-label.input.json +1 -0
  132. package/tests/repros/assets/repro51-overlap-junction-crossing.input.json +1 -0
  133. package/tests/repros/assets/small-variant-resistor-facing-direction.input.json +1 -0
  134. package/tests/repros/board1096-usb-label-overlap-iteration.json +1 -0
  135. package/tests/repros/board1096-usb-label-overlap-iteration.test.ts +1 -1
  136. package/tests/repros/repro-battery-management-bq24073.test.ts +17 -0
  137. package/tests/repros/repro-board-8090-power-section.test.ts +18 -0
  138. package/tests/repros/repro-hub-usb-sheet.test.ts +56 -0
  139. package/tests/repros/repro-mcp73831-charger-traces.test.ts +16 -0
  140. package/tests/repros/repro-mouse-switch-ground-unnecessary-jog.test.ts +15 -0
  141. package/tests/repros/repro-rf1-unnecessary-dogleg.test.ts +15 -0
  142. package/tests/repros/repro-smartwatch-power-sheet.test.ts +31 -5
@@ -238,6 +238,7 @@
238
238
  },
239
239
  {
240
240
  "netId": "GND",
241
+ "isGround": true,
241
242
  "netLabelWidth": 0.42,
242
243
  "netLabelHeight": 0.48,
243
244
  "pinIds": [
@@ -348,21 +348,7 @@ orientation: x+" data-x="2.98" data-y="0.9000000000000101" cx="399.4369914229162
348
348
  L 743.932794877475,487.0729560493768
349
349
  L 743.932794877475,505.84077092516213
350
350
  Z
351
- " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.09454596865px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_13__stack1" x="738.460065034225" y="503.87058818159215" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="9.85091371785px" transform="rotate(-90 738.460065034225 503.87058818159215)">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_14__stack1" d="
352
- M 411.68336609376746,451.4418362832581
353
- L 417.1560959370175,454.3971103986131
354
- L 417.1560959370175,473.16492527439846
355
- L 406.21063625051744,473.16492527439846
356
- L 406.21063625051744,454.3971103986131
357
- Z
358
- " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.09454596865px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_14__stack1" x="411.68336609376746" y="456.3672931421831" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="9.85091371785px" transform="rotate(90 411.68336609376746 456.3672931421831)">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_15__stack1" d="
359
- M 719.9075108656075,62.87801741250786
360
- L 725.3802407088575,65.83329152786285
361
- L 725.3802407088575,84.60110640364819
362
- L 714.4347810223575,84.60110640364819
363
- L 714.4347810223575,65.83329152786285
364
- Z
365
- " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.09454596865px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_15__stack1" x="719.9075108656075" y="67.80347427143286" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="9.85091371785px" transform="rotate(90 719.9075108656075 67.80347427143286)">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_16__stack1" d="
351
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.09454596865px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_13__stack1" x="738.460065034225" y="503.87058818159215" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="9.85091371785px" transform="rotate(-90 738.460065034225 503.87058818159215)">XX</text><rect class="component-overlay sch-component-overlay sch-net-label-overlay" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_14__stack1" x="405.11609028186746" y="451.4418362832581" width="13.134551623800007" height="9.850913717849949" fill="transparent"/><path class="sch-net-label-symbol-path" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_14__stack1" d="M 405.11609028186746 461.29275000110806 L 418.25064190566746 461.29275000110806" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.09454596865px" stroke-linecap="round"/><path class="sch-net-label-symbol-path" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_14__stack1" d="M 411.68336609376746 461.29275000110806 L 411.68336609376746 451.4418362832581" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.09454596865px" stroke-linecap="round"/><text class="sch-net-label-symbol-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_14__stack1" x="411.68336609376746" y="464.0291149227331" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="9.85091371785px">XX</text><rect class="component-overlay sch-component-overlay sch-net-label-overlay" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_15__stack1" x="713.3402350537075" y="62.87801741250789" width="13.134551623800007" height="9.850913717850005" fill="transparent"/><path class="sch-net-label-symbol-path" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_15__stack1" d="M 713.3402350537075 72.72893113035789 L 726.4747866775075 72.72893113035789" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.09454596865px" stroke-linecap="round"/><path class="sch-net-label-symbol-path" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_15__stack1" d="M 719.9075108656075 72.72893113035789 L 719.9075108656075 62.87801741250789" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.09454596865px" stroke-linecap="round"/><text class="sch-net-label-symbol-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_15__stack1" x="719.9075108656075" y="75.46529605198289" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="9.85091371785px">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_16__stack1" d="
366
352
  M 485.07267329175,470.5416634362006
367
353
  L 482.117399176395,476.01439327945064
368
354
  L 424.77778436538364,476.0143932794506
@@ -662,6 +662,7 @@
662
662
  "netConnections": [
663
663
  {
664
664
  "netId": "GND",
665
+ "isGround": true,
665
666
  "netLabelWidth": 0.42,
666
667
  "netLabelHeight": 0.48,
667
668
  "pinIds": [