@tscircuit/schematic-trace-solver 0.0.160 → 0.0.162
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/index.d.ts +5 -0
- package/dist/index.js +221 -29
- package/lib/solvers/AvailableNetOrientationSolver/AvailableNetOrientationSolver.ts +210 -6
- package/lib/solvers/MspConnectionPairSolver/MspConnectionPairSolver.ts +28 -21
- package/lib/solvers/MspConnectionPairSolver/getMspConnectionPairsFromPins.ts +3 -3
- package/lib/solvers/MspConnectionPairSolver/shouldSeparateGroundNetRows.ts +40 -0
- package/lib/solvers/TraceCleanupSolver/sameNetRailAlignment/getFixedLabelCoordinate.ts +44 -13
- package/lib/types/InputProblem.ts +3 -0
- package/package.json +1 -1
- package/tests/bug-reports/bug-report-20260706T220324Z/__snapshots__/bug-report-20260706T220324Z.snap.svg +1 -1
- package/tests/bug-reports/bug-report-20260728T144234Z/__snapshots__/bug-report-20260728T144234Z.snap.svg +1 -1
- package/tests/bug-reports/bug-report-20260728T225606Z/__snapshots__/bug-report-20260728T225606Z.snap.svg +79 -79
- package/tests/bug-reports/bug-report-20260730T061837Z/__snapshots__/bug-report-20260730T061837Z.snap.svg +85 -85
- package/tests/bug-reports/bug-report-20260731T052229Z/__snapshots__/bug-report-20260731T052229Z.snap.svg +1 -1
- package/tests/bug-reports/bug-report-20260804T095800Z/__snapshots__/bug-report-20260804T095800Z.snap.svg +163 -163
- package/tests/bug-reports/bug-report-20260804T171919Z/__snapshots__/bug-report-20260804T171919Z.snap.svg +547 -547
- package/tests/bug-reports/bug-report-20260804T225912Z/__snapshots__/bug-report-20260804T225912Z.snap.svg +13 -13
- package/tests/bug-reports/bug-report-20260805T061316Z/__snapshots__/bug-report-20260805T061316Z.snap.svg +267 -267
- package/tests/bug-reports/bug-report-20260806T061548Z/__snapshots__/bug-report-20260806T061548Z.snap.svg +267 -267
- package/tests/bug-reports/bug-report-20260806T093501Z/__snapshots__/bug-report-20260806T093501Z.snap.svg +109 -109
- package/tests/bug-reports/bug-report-20260811T075142Z/__snapshots__/bug-report-20260811T075142Z.snap.svg +1 -1
- package/tests/bug-reports/bug-report-20260815T073240Z/__snapshots__/bug-report-20260815T073240Z.snap.svg +49 -49
- package/tests/bug-reports/bug-report-20260819T091818Z/__snapshots__/bug-report-20260819T091818Z.snap.svg +1 -1
- package/tests/bug-reports/bug-report-20260825T045913Z/__snapshots__/bug-report-20260825T045913Z.snap.svg +103 -103
- package/tests/bug-reports/bug-report-20260825T103621Z/__snapshots__/bug-report-20260825T103621Z.snap.svg +103 -103
- package/tests/bug-reports/bug-report-20260826T072956Z/__snapshots__/bug-report-20260826T072956Z.snap.svg +163 -163
- package/tests/examples/__snapshots__/example51.snap.svg +568 -568
- package/tests/fixtures/convertSolverOutputToCircuitJson.test.ts +16 -1
- package/tests/fixtures/convertSolverOutputToCircuitJson.ts +23 -12
- package/tests/repros/__snapshots__/board-1273-trace-overlap-cycle.snap.svg +736 -736
- package/tests/repros/__snapshots__/board-15984-same-net-junction.snap.svg +79 -79
- package/tests/repros/__snapshots__/board1096-usb-label-overlap-iteration.snap.svg +127 -127
- package/tests/repros/__snapshots__/repro-bluetooth-controller-ground-decoupling-groups.snap.svg +115 -0
- package/tests/repros/__snapshots__/repro-board-589-regulator-section.snap.svg +31 -31
- package/tests/repros/__snapshots__/repro-board-648-esp12f-section.snap.svg +121 -121
- package/tests/repros/__snapshots__/repro-bq25895-cross-net-trace-overlap.snap.svg +43 -43
- package/tests/repros/__snapshots__/repro-core-555-power-cross-net-overlap.snap.svg +19 -19
- package/tests/repros/__snapshots__/repro-core-ground-inline-label-fallback.snap.svg +277 -0
- package/tests/repros/__snapshots__/repro-core-subcircuit-missing-ground.snap.svg +19 -19
- package/tests/repros/__snapshots__/repro-core-tb67s579ftg-inline-label-routing.snap.svg +7 -7
- package/tests/repros/__snapshots__/repro-dc-power-isolated-routing.snap.svg +37 -37
- package/tests/repros/__snapshots__/repro-hdc2080-ground-label-alignment.snap.svg +137 -0
- package/tests/repros/__snapshots__/repro-nrf52810-clock-routing.snap.svg +61 -61
- package/tests/repros/__snapshots__/repro-pga300-redundant-ground-traces.snap.svg +115 -115
- package/tests/repros/__snapshots__/repro-pmp11282-isolated-dcdc.snap.svg +743 -743
- package/tests/repros/__snapshots__/repro-rp2040-usb-cc2-ground-overlap.snap.svg +43 -43
- package/tests/repros/__snapshots__/repro-ti-power-output-section.snap.svg +1 -1
- package/tests/repros/__snapshots__/repro-tida010076-j4-ground-bus.snap.svg +17 -17
- package/tests/repros/__snapshots__/repro-tida010076-page02.snap.svg +1131 -1131
- package/tests/repros/__snapshots__/repro-type-c-16pin-self-connection.snap.svg +7 -7
- package/tests/repros/__snapshots__/repro-type-c-16pin-to-resistor.snap.svg +7 -7
- package/tests/repros/__snapshots__/repro-usb-power-vbus-label-detour.snap.svg +666 -666
- package/tests/repros/__snapshots__/repro161-power-section-autolayout.snap.svg +73 -73
- package/tests/repros/__snapshots__/repro48-555-timer-vcc-rail-label.snap.svg +73 -73
- package/tests/repros/assets/repro-bluetooth-controller-ground-decoupling-groups.input.json +214 -0
- package/tests/repros/assets/repro-core-ground-inline-label-fallback.input.json +863 -0
- package/tests/repros/repro-bluetooth-controller-ground-decoupling-groups.test.ts +18 -0
- package/tests/repros/repro-core-ground-inline-label-fallback.test.ts +34 -0
- package/tests/repros/repro-hdc2080-ground-label-alignment.test.ts +239 -0
- package/tests/repros/repro-tida010076-j4-ground-bus.test.ts +14 -10
- package/tests/repros/repro-tida010076-page02.test.ts +2 -2
- package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label02.snap.svg +1 -1
- package/tests/solvers/MspConnectionPairSolver/msp-connection-pair-solver-ground-net-rows.test.ts +57 -0
|
@@ -69,27 +69,27 @@ orientation: x-" data-x="2.75" data-y="0" cx="467.92452830188677" cy="325.811320
|
|
|
69
69
|
.port-label { fill: rgb(0, 100, 100); }
|
|
70
70
|
.component-name { fill: rgb(0, 100, 100); }
|
|
71
71
|
|
|
72
|
-
</style><rect class="boundary" x="0" y="0" width="1200" height="800"/><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"><path d="M
|
|
73
|
-
M
|
|
74
|
-
L
|
|
75
|
-
L
|
|
76
|
-
L
|
|
77
|
-
L
|
|
72
|
+
</style><rect class="boundary" x="0" y="0" width="1200" height="800"/><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"><path d="M 323.287671232865 412.0547945205 L 619.178082191795 412.0547945205 L 619.178082191795 433.97260273968004 L 915.0684931507251 433.97260273968004" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="17.534246575344px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 323.287671232865 412.0547945205 L 619.178082191795 412.0547945205 L 619.178082191795 433.97260273968004 L 915.0684931507251 433.97260273968004" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.191780821918px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"/><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_0__stack1"><rect class="component chip sch-component-body" x="71.23287671229502" y="368.21917808214005" width="208.21917808221002" height="87.67123287671996" stroke-width="2.191780821918px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="71.23287671229502" y="368.21917808214005" width="208.21917808221002" height="87.67123287671996" fill="transparent"/><line class="component-pin sch-component-pin sch-port-line" x1="279.45205479450505" y1="390.13698630132" x2="321.095890410947" y2="390.13698630132" stroke-width="2.191780821918px"/><g class="sch-port" data-schematic-port-id="source_port_0_0__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="323.287671232865" cy="390.13698630132" r="2.191780821918" stroke-width="2.191780821918px"/><rect x="321.09589041094705" y="387.94520547940203" width="4.383561643836" height="4.383561643836" opacity="0"/></g><text class="pin-number sch-pin-number" x="301.369863013685" y="387.94520547940203" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="16.438356164385px" transform=""></text><line class="component-pin sch-component-pin sch-port-line" x1="279.45205479450505" y1="412.0547945205" x2="323.287671232865" y2="412.0547945205" stroke-width="2.191780821918px"/><g class="sch-port" data-schematic-port-id="source_port_0_1__stack1"><rect x="321.09589041094705" y="409.86301369858205" width="4.383561643836" height="4.383561643836" opacity="0"/></g><text class="pin-number sch-pin-number" x="301.369863013685" y="409.86301369858205" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="16.438356164385px" transform=""></text><line class="component-pin sch-component-pin sch-port-line" x1="279.45205479450505" y1="433.97260273968004" x2="321.095890410947" y2="433.97260273968004" stroke-width="2.191780821918px"/><g class="sch-port" data-schematic-port-id="source_port_0_2__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="323.287671232865" cy="433.97260273968004" r="2.191780821918" stroke-width="2.191780821918px"/><rect x="321.09589041094705" y="431.78082191776207" width="4.383561643836" height="4.383561643836" opacity="0"/></g><text class="pin-number sch-pin-number" x="301.369863013685" y="431.780821917762" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="16.438356164385px" transform=""></text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_1__stack1"><rect class="component chip sch-component-body" x="958.904109589085" y="368.21917808214005" width="186.30136986303" height="87.67123287671996" stroke-width="2.191780821918px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="958.904109589085" y="368.21917808214005" width="186.30136986303" height="87.67123287671996" fill="transparent"/><line class="component-pin sch-component-pin sch-port-line" x1="958.904109589085" y1="390.13698630132" x2="917.2602739726431" y2="390.13698630132" stroke-width="2.191780821918px"/><g class="sch-port" data-schematic-port-id="source_port_1_0__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="915.0684931507251" cy="390.13698630132" r="2.191780821918" stroke-width="2.191780821918px"/><rect x="912.8767123288071" y="387.94520547940203" width="4.383561643836" height="4.383561643836" opacity="0"/></g><text class="pin-number sch-pin-number" x="936.986301369905" y="387.94520547940203" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="16.438356164385px" transform=""></text><line class="component-pin sch-component-pin sch-port-line" x1="958.904109589085" y1="412.0547945205" x2="917.2602739726431" y2="412.0547945205" stroke-width="2.191780821918px"/><g class="sch-port" data-schematic-port-id="source_port_1_1__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="915.0684931507251" cy="412.0547945205" r="2.191780821918" stroke-width="2.191780821918px"/><rect x="912.8767123288071" y="409.86301369858205" width="4.383561643836" height="4.383561643836" opacity="0"/></g><text class="pin-number sch-pin-number" x="936.986301369905" y="409.86301369858205" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="16.438356164385px" transform=""></text><line class="component-pin sch-component-pin sch-port-line" x1="958.904109589085" y1="433.97260273968004" x2="915.0684931507251" y2="433.97260273968004" stroke-width="2.191780821918px"/><g class="sch-port" data-schematic-port-id="source_port_1_2__stack1"><rect x="912.8767123288071" y="431.78082191776207" width="4.383561643836" height="4.383561643836" opacity="0"/></g><text class="pin-number sch-pin-number" x="936.986301369905" y="431.780821917762" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="16.438356164385px" transform=""></text></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="323.287671232865" cy="390.13698630132" r="4.383561643836" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="323.287671232865" cy="412.0547945205" r="4.383561643836" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_2__stack1"><circle cx="323.287671232865" cy="433.97260273968004" r="4.383561643836" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="915.0684931507251" cy="390.13698630132" r="4.383561643836" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_1__stack1"><circle cx="915.0684931507251" cy="412.0547945205" r="4.383561643836" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_2__stack1"><circle cx="915.0684931507251" cy="433.97260273968004" r="4.383561643836" fill="red" opacity="0"/></g><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_0__stack1" d="
|
|
73
|
+
M 471.23287671233004,412.0547945205
|
|
74
|
+
L 460.27397260274006,406.13698630132143
|
|
75
|
+
L 460.27397260274006,368.5552511415008
|
|
76
|
+
L 482.19178082192,368.5552511415008
|
|
77
|
+
L 482.19178082192,406.13698630132143
|
|
78
78
|
Z
|
|
79
|
-
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="
|
|
80
|
-
M
|
|
81
|
-
L
|
|
82
|
-
L
|
|
83
|
-
L
|
|
84
|
-
L
|
|
79
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.191780821918px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_0__stack1" x="471.23287671233004" y="402.19178082186903" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="19.726027397261998px" transform="rotate(-90 471.23287671233004 402.19178082186903)">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" d="
|
|
80
|
+
M 323.287671232865,433.97260273968004
|
|
81
|
+
L 329.2054794520436,423.01369863009006
|
|
82
|
+
L 366.7872146118643,423.01369863009006
|
|
83
|
+
L 366.7872146118643,444.93150684927
|
|
84
|
+
L 329.2054794520436,444.93150684927
|
|
85
85
|
Z
|
|
86
|
-
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="
|
|
87
|
-
M
|
|
88
|
-
L
|
|
89
|
-
L
|
|
90
|
-
L
|
|
91
|
-
L
|
|
86
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.191780821918px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" x="333.150684931496" y="433.97260273968004" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="19.726027397261998px" transform="">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" d="
|
|
87
|
+
M 915.0684931507251,412.0547945205
|
|
88
|
+
L 909.1506849315465,423.01369863009
|
|
89
|
+
L 871.5689497717259,423.01369863009
|
|
90
|
+
L 871.5689497717259,401.09589041091004
|
|
91
|
+
L 909.1506849315465,401.09589041091004
|
|
92
92
|
Z
|
|
93
|
-
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="
|
|
93
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.191780821918px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" x="905.2054794520941" y="412.0547945205" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="19.726027397261998px" transform="">XX</text><text class="sch-text" x="104.10958904106496" y="353.972602739673" fill="#7e22ce" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="19.726027397261994px" transform="rotate(0, 104.10958904106496, 353.972602739673)">power</text><text class="sch-text" x="985.2054794521009" y="353.972602739673" fill="#7e22ce" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="19.726027397261994px" transform="rotate(0, 985.2054794521009, 353.972602739673)">load</text><rect class="schematic-box sch-box" x="71.23287671229502" y="344.109589041042" width="65.75342465753994" height="19.726027397261987" stroke-width="2.191780821918px" stroke="rgb(132, 0, 0)" fill="transparent" stroke-dasharray="17.534246575344 8.767123287672"/><rect class="schematic-box sch-box" x="958.904109589085" y="344.109589041042" width="52.60273972603193" height="19.726027397261987" stroke-width="2.191780821918px" stroke="rgb(132, 0, 0)" fill="transparent" stroke-dasharray="17.534246575344 8.767123287672"/>
|
|
94
94
|
</g>
|
|
95
95
|
</svg>
|