@tscircuit/schematic-trace-solver 0.0.186 → 0.0.188

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 (53) hide show
  1. package/dist/index.d.ts +40 -23
  2. package/dist/index.js +1041 -319
  3. package/lib/solvers/InlineNetLabelSolver/InlineNetLabelSolver.ts +611 -230
  4. package/lib/solvers/InlineNetLabelSolver/alignPortOnlyInlineNetLabelStubs.ts +2 -6
  5. package/lib/solvers/InlineNetLabelSolver/getInlineLabelObstacles.ts +64 -0
  6. package/lib/solvers/InlineNetLabelSolver/getLocalTraceLabelShifts.ts +407 -0
  7. package/lib/solvers/InlineNetLabelSolver/getOutputLabelCollisions.ts +145 -0
  8. package/lib/solvers/InlineNetLabelSolver/isLabelRepresentedInline.ts +15 -0
  9. package/lib/solvers/InlineNetLabelSolver/pushAnchoredNetLabelsAwayFromInlineLabels.ts +61 -31
  10. package/lib/solvers/NetLabelNetLabelCollisionSolver/NetLabelNetLabelCollisionSolver.ts +83 -14
  11. package/lib/solvers/NetLabelToTraceSolver/NetLabelToTraceSolver.ts +4 -3
  12. package/lib/solvers/SameNetJunctionAlignmentSolver/alignSameNetJunctions.ts +14 -11
  13. package/lib/solvers/SchematicTracePipelineSolver/SchematicTracePipelineSolver.ts +3 -0
  14. package/lib/types/InputProblem.ts +2 -2
  15. package/package.json +1 -1
  16. package/site/bug-reports/bug-report-20260907T083336Z.page.tsx +4 -0
  17. package/site/bug-reports/bug-report-20260907T110144Z.page.tsx +4 -0
  18. package/site/bug-reports/bug-report-20260907T145640Z.page.tsx +4 -0
  19. package/tests/bug-reports/bug-report-20260806T093501Z/__snapshots__/bug-report-20260806T093501Z.snap.svg +2 -2
  20. package/tests/bug-reports/bug-report-20260811T075142Z/__snapshots__/bug-report-20260811T075142Z.snap.svg +18 -18
  21. package/tests/bug-reports/bug-report-20260819T091818Z/__snapshots__/bug-report-20260819T091818Z.snap.svg +2 -2
  22. package/tests/bug-reports/bug-report-20260819T091818Z/bug-report-20260819T091818Z.test.ts +21 -0
  23. package/tests/bug-reports/bug-report-20260825T103621Z/__snapshots__/bug-report-20260825T103621Z.snap.svg +5 -38
  24. package/tests/bug-reports/bug-report-20260826T072956Z/__snapshots__/bug-report-20260826T072956Z.snap.svg +3 -9
  25. package/tests/bug-reports/bug-report-20260901T055358Z/__snapshots__/bug-report-20260901T055358Z.snap.svg +18 -30
  26. package/tests/bug-reports/bug-report-20260901T055358Z/bug-report-20260901T055358Z.test.ts +33 -0
  27. package/tests/bug-reports/bug-report-20260907T083336Z/__snapshots__/bug-report-20260907T083336Z.snap.svg +520 -0
  28. package/tests/bug-reports/bug-report-20260907T083336Z/bug-report-20260907T083336Z.json +2031 -0
  29. package/tests/bug-reports/bug-report-20260907T083336Z/bug-report-20260907T083336Z.test.ts +27 -0
  30. package/tests/bug-reports/bug-report-20260907T110144Z/__snapshots__/bug-report-20260907T110144Z.snap.svg +282 -0
  31. package/tests/bug-reports/bug-report-20260907T110144Z/bug-report-20260907T110144Z.json +1073 -0
  32. package/tests/bug-reports/bug-report-20260907T110144Z/bug-report-20260907T110144Z.test.ts +12 -0
  33. package/tests/bug-reports/bug-report-20260907T145640Z/__snapshots__/bug-report-20260907T145640Z.snap.svg +1107 -0
  34. package/tests/bug-reports/bug-report-20260907T145640Z/bug-report-20260907T145640Z.json +3563 -0
  35. package/tests/bug-reports/bug-report-20260907T145640Z/bug-report-20260907T145640Z.test.ts +117 -0
  36. package/tests/repros/__snapshots__/board-1273-trace-overlap-cycle.snap.svg +2 -2
  37. package/tests/repros/__snapshots__/repro-battery-management-bq24073.snap.svg +4 -4
  38. package/tests/repros/__snapshots__/repro-board-648-esp12f-section.snap.svg +2 -2
  39. package/tests/repros/__snapshots__/repro-core-tb67s579ftg-inline-label-routing.snap.svg +20 -20
  40. package/tests/repros/__snapshots__/repro-esp12f-section.snap.svg +37 -55
  41. package/tests/repros/__snapshots__/repro-hub-usb-sheet.snap.svg +44 -68
  42. package/tests/repros/__snapshots__/repro-mspm0l1306-capacitor-symmetry.snap.svg +3 -9
  43. package/tests/repros/__snapshots__/repro-usb-power-vbus-label-detour.snap.svg +50 -74
  44. package/tests/repros/__snapshots__/repro48-555-timer-vcc-rail-label.snap.svg +2 -2
  45. package/tests/repros/repro-battery-management-bq24073.test.ts +13 -1
  46. package/tests/repros/repro-hub-usb-sheet.test.ts +25 -0
  47. package/tests/repros/repro-usb-power-vbus-label-detour.test.ts +59 -13
  48. package/tests/solvers/InlineNetLabelSolver/local-trace-label-shifts.test.ts +296 -0
  49. package/tests/solvers/InlineNetLabelSolver/multi-pin-connected-components.test.ts +7 -4
  50. package/tests/solvers/InlineNetLabelSolver/push-anchored-net-labels-away.test.ts +2 -1
  51. package/tests/solvers/InlineNetLabelSolver/shared-direct-and-named-connection.test.ts +62 -0
  52. package/tests/solvers/InlineNetLabelSolver/two-pin-terminal-stubs-atomic.test.ts +9 -3
  53. package/tests/solvers/SameNetJunctionAlignmentSolver/parallel-load-rails.test.ts +24 -0
@@ -55,5 +55,38 @@ test("bug-report-20260901T055358Z", () => {
55
55
  restoredGroundLabelConnector?.tracePath,
56
56
  )
57
57
 
58
+ // A reroute must not trade the USB_DN inline label for a tag over the
59
+ // neighboring USB wires.
60
+ expect(
61
+ inlineOutput.inlineNetLabelPlacements.some((label) =>
62
+ label.pinIds.includes("schematic_port_85"),
63
+ ),
64
+ ).toBe(true)
65
+ for (const netLabelText of ["XIN", "XOUT"]) {
66
+ const connection = inputProblem.netConnections.find(
67
+ (connection) => connection.netLabelText === netLabelText,
68
+ )!
69
+ expect(connection.allowInlineNetLabel).toBe(true)
70
+ expect(
71
+ inlineOutput.inlineNetLabelPlacements.some(
72
+ (label) => label.netId === connection.netId,
73
+ ),
74
+ ).toBe(true)
75
+ }
76
+ // IOVDD4 is a power-net anchor, not an opted-in inline signal.
77
+ const power = inputProblem.netConnections.find((connection) =>
78
+ connection.pinIds.includes("schematic_port_61"),
79
+ )!
80
+ expect(power.allowInlineNetLabel).not.toBe(true)
81
+ expect(
82
+ inlineOutput.netLabelPlacements.some((label) =>
83
+ label.pinIds.includes("schematic_port_61"),
84
+ ),
85
+ ).toBe(true)
86
+ expect(
87
+ inlineOutput.inlineNetLabelPlacements.some((label) =>
88
+ label.pinIds.includes("schematic_port_61"),
89
+ ),
90
+ ).toBe(false)
58
91
  expect(solver).toMatchSolverSnapshot(import.meta.path)
59
92
  })