@tscircuit/core 0.0.1909 → 0.0.1911

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 CHANGED
@@ -530,7 +530,7 @@ declare class IsolatedCircuit {
530
530
  pcbDisabled: boolean;
531
531
  pcbRoutingDisabled: boolean;
532
532
  _featureMspSchematicTraceRouting: boolean;
533
- /** Experimental automatic via stitching; opt in before rendering. */
533
+ /** Allows board-level via stitching; set to false to disable globally. */
534
534
  _featurePcbViaStitching: boolean;
535
535
  /**
536
536
  * The IsolatedCircuit name is usually set by the platform, it's not required but
package/dist/index.js CHANGED
@@ -29210,6 +29210,7 @@ var BoundaryTerminalCopper = class {
29210
29210
  import {
29211
29211
  PortfolioSingleIntraNodeSolver
29212
29212
  } from "@tscircuit/capacity-autorouter";
29213
+ import { BaseSolver } from "@tscircuit/solver-utils";
29213
29214
 
29214
29215
  // node_modules/@tscircuit/fanout-solver/lib/cache-via-occupant-neighborhoods.ts
29215
29216
  function cacheViaOccupantNeighborhoods(router) {
@@ -29465,6 +29466,57 @@ function attachSourceOriginTransitSearch(router, requiresTransit, topZ, minimumV
29465
29466
  function getBusTargetLayer(params, busId) {
29466
29467
  return params.targetLayerByBusId?.get(busId) ?? params.targetLayer;
29467
29468
  }
29469
+ var BatchedReservedViaRoutingSolver = class extends BaseSolver {
29470
+ constructor(options) {
29471
+ super();
29472
+ this.options = options;
29473
+ this.activeSubSolver = options.router;
29474
+ this.MAX_ITERATIONS = Math.ceil(options.router.MAX_ITERATIONS / 5e3) + 1;
29475
+ }
29476
+ options;
29477
+ partialCandidates = [];
29478
+ partialSignatures = /* @__PURE__ */ new Set();
29479
+ _step() {
29480
+ const { router } = this.options;
29481
+ for (let batch = 0; batch < 5e3 && !router.solved && !router.failed; batch++)
29482
+ router.step();
29483
+ this.collectPartialCandidate();
29484
+ this.stats = {
29485
+ iterations: router.iterations,
29486
+ routedConnectionCount: router.getSolvedRouteCount(),
29487
+ connectionCount: this.options.connectionCount
29488
+ };
29489
+ if (router.solved || router.failed) {
29490
+ this.activeSubSolver = null;
29491
+ this.solved = true;
29492
+ }
29493
+ }
29494
+ collectPartialCandidate() {
29495
+ const { router, connectionCount, sourceOrigin, maximumPartialCandidates } = this.options;
29496
+ if (maximumPartialCandidates === 0 || connectionCount < (sourceOrigin ? 2 : 3) || router.getSolvedRouteCount() !== connectionCount - 1)
29497
+ return;
29498
+ const output = router.getOutput();
29499
+ const signature = output.map((route) => {
29500
+ const middle = route.route[Math.floor(route.route.length / 2)];
29501
+ return `${route.connectionName}:${route.route.length}:${middle.x},${middle.y}`;
29502
+ }).sort().join(";");
29503
+ if (this.partialSignatures.has(signature) || sourceOrigin && this.partialCandidates.length >= maximumPartialCandidates)
29504
+ return;
29505
+ this.partialSignatures.add(signature);
29506
+ this.partialCandidates.push(output);
29507
+ if (this.partialCandidates.length > maximumPartialCandidates)
29508
+ this.partialCandidates.shift();
29509
+ }
29510
+ computeProgress() {
29511
+ return this.options.router.iterations / this.options.router.MAX_ITERATIONS;
29512
+ }
29513
+ getConstructorParams() {
29514
+ return [this.options];
29515
+ }
29516
+ visualize() {
29517
+ return this.activeSubSolver?.visualize() ?? this.options.router.visualize();
29518
+ }
29519
+ };
29468
29520
  var CopperIndex = class _CopperIndex {
29469
29521
  constructor(cellSize, margin) {
29470
29522
  this.cellSize = cellSize;
@@ -30288,32 +30340,30 @@ function* routeReservedViaBusesWorker(params, validatedTerminalSplices) {
30288
30340
  if (sourceOrigin && !isVia && layer === "top" && router._moveCost >= 0 && (!transitSearch || transitSearch.beforeFirstVia()))
30289
30341
  router._moveCost += baseCost * (sourceTravelCost - 1);
30290
30342
  };
30291
- const partialCandidates = [];
30292
- const partialSignatures = /* @__PURE__ */ new Set();
30293
30343
  const maximumPartialCandidates = sourceOrigin ? maximumSourceOriginRepairAttempts : maximumLocalRepairAttempts;
30294
- while (!router.solved && !router.failed) {
30295
- for (let batch = 0; batch < 5e3 && !router.solved && !router.failed; batch++)
30296
- router.step();
30297
- const routedConnectionCount = router.getSolvedRouteCount();
30298
- if (maximumPartialCandidates > 0 && connections.length >= (sourceOrigin ? 2 : 3) && routedConnectionCount === connections.length - 1) {
30299
- const output = router.getOutput();
30300
- const signature = output.map((route) => {
30301
- const middle = route.route[Math.floor(route.route.length / 2)];
30302
- return `${route.connectionName}:${route.route.length}:${middle.x},${middle.y}`;
30303
- }).sort().join(";");
30304
- if (!partialSignatures.has(signature) && (!sourceOrigin || partialCandidates.length < maximumPartialCandidates)) {
30305
- partialSignatures.add(signature);
30306
- partialCandidates.push(output);
30307
- if (partialCandidates.length > maximumPartialCandidates)
30308
- partialCandidates.shift();
30309
- }
30310
- }
30344
+ router.setup();
30345
+ const routingSolver = new BatchedReservedViaRoutingSolver({
30346
+ router,
30347
+ connectionCount: connections.length,
30348
+ sourceOrigin,
30349
+ maximumPartialCandidates
30350
+ });
30351
+ yield {
30352
+ type: "subsolver",
30353
+ solver: routingSolver,
30354
+ iterations: router.iterations,
30355
+ routedConnectionCount: router.getSolvedRouteCount(),
30356
+ connectionCount: connections.length
30357
+ };
30358
+ while (!routingSolver.solved && !routingSolver.failed) {
30359
+ routingSolver.step();
30311
30360
  yield {
30312
30361
  iterations: router.iterations,
30313
- routedConnectionCount,
30362
+ routedConnectionCount: router.getSolvedRouteCount(),
30314
30363
  connectionCount: connections.length
30315
30364
  };
30316
30365
  }
30366
+ const { partialCandidates } = routingSolver;
30317
30367
  const makePrefixes = (routed) => allBuses.flatMap(
30318
30368
  (bus) => bus.connections.filter((connection) => !routed.has(connection.connectionIndex)).map((connection) => {
30319
30369
  const viaPoint = params.fixedViaPointsByConnectionIndex.get(
@@ -32699,6 +32749,12 @@ function* rerouteSourceOriginLengthsSteps(params) {
32699
32749
  return null;
32700
32750
  }
32701
32751
 
32752
+ // node_modules/@tscircuit/fanout-solver/lib/subsolver-request.ts
32753
+ import { BaseSolver as BaseSolver2 } from "@tscircuit/solver-utils";
32754
+ function isSubsolverRequest(request) {
32755
+ return typeof request === "object" && request !== null && "type" in request && request.type === "subsolver" && "solver" in request && request.solver instanceof BaseSolver2;
32756
+ }
32757
+
32702
32758
  // node_modules/@tscircuit/fanout-solver/lib/route-peripheral-buses.ts
32703
32759
  function* routePeripheralBusesSteps(params) {
32704
32760
  const { srj, buses, layerNames } = params;
@@ -32755,6 +32811,11 @@ function* routePeripheralBusesSteps(params) {
32755
32811
  });
32756
32812
  let step = routing.next();
32757
32813
  while (!step.done) {
32814
+ if (isSubsolverRequest(step.value)) {
32815
+ const output = yield step.value;
32816
+ step = routing.next(output);
32817
+ continue;
32818
+ }
32758
32819
  yield {
32759
32820
  phase: "route-layer",
32760
32821
  iterations: step.value.iterations,
@@ -32879,7 +32940,7 @@ function* routePeripheralBusesSteps(params) {
32879
32940
  }
32880
32941
 
32881
32942
  // node_modules/@tscircuit/fanout-solver/lib/fanout-solver.ts
32882
- import { BaseSolver } from "@tscircuit/solver-utils";
32943
+ import { BaseSolver as BaseSolver3 } from "@tscircuit/solver-utils";
32883
32944
 
32884
32945
  // node_modules/@tscircuit/fanout-solver/lib/select-compatible-candidates.ts
32885
32946
  function selectCompatibleCandidates(params) {
@@ -39901,6 +39962,11 @@ function* routeLayerReservedAttemptSteps(params, attemptState, attemptedWideSour
39901
39962
  })();
39902
39963
  let next = steps.next();
39903
39964
  while (!next.done) {
39965
+ if (isSubsolverRequest(next.value)) {
39966
+ const output = yield next.value;
39967
+ next = steps.next(output);
39968
+ continue;
39969
+ }
39904
39970
  yield {
39905
39971
  phase: "route-layer",
39906
39972
  layer,
@@ -40109,6 +40175,11 @@ function* routeLayerReservedAttemptSteps(params, attemptState, attemptedWideSour
40109
40175
  });
40110
40176
  let replacement = replacementSteps.next();
40111
40177
  while (!replacement.done) {
40178
+ if (isSubsolverRequest(replacement.value)) {
40179
+ const output = yield replacement.value;
40180
+ replacement = replacementSteps.next(output);
40181
+ continue;
40182
+ }
40112
40183
  yield {
40113
40184
  phase: "repair-lengths",
40114
40185
  layer,
@@ -43422,7 +43493,7 @@ function visualizeSimpleRouteJson(srj) {
43422
43493
 
43423
43494
  // node_modules/@tscircuit/fanout-solver/lib/fanout-solver.ts
43424
43495
  var process = getRuntimeProcess(globalThis);
43425
- var FanoutWorkSolver = class extends BaseSolver {
43496
+ var FanoutWorkSolver = class extends BaseSolver3 {
43426
43497
  constructor(solverName, generator, getVisualization, getStats, getProgress) {
43427
43498
  super();
43428
43499
  this.solverName = solverName;
@@ -43472,10 +43543,8 @@ var FanoutWorkSolver = class extends BaseSolver {
43472
43543
  this.solved = true;
43473
43544
  return;
43474
43545
  }
43475
- const yielded = result.value;
43476
- if (yielded?.type === "subsolver" && yielded.solver instanceof BaseSolver) {
43477
- this.activeSubSolver = yielded.solver;
43478
- }
43546
+ if (isSubsolverRequest(result.value))
43547
+ this.activeSubSolver = result.value.solver;
43479
43548
  }
43480
43549
  computeProgress() {
43481
43550
  return this.getProgress();
@@ -43979,7 +44048,7 @@ function getCandidateEscapeLayersForBus(params) {
43979
44048
  const candidateLayers = individuallyRoutableLayers.length > 0 ? individuallyRoutableLayers : allowedEscapeLayers;
43980
44049
  return candidateLayers;
43981
44050
  }
43982
- var FanoutSolver = class extends BaseSolver {
44051
+ var FanoutSolver = class extends BaseSolver3 {
43983
44052
  constructor(inputSrj, options = {}) {
43984
44053
  super();
43985
44054
  this.inputSrj = inputSrj;
@@ -44131,6 +44200,19 @@ var FanoutSolver = class extends BaseSolver {
44131
44200
  const steps = peripheralRouting ? routePeripheralBusesSteps(params) : routeLayerReservedBusesSteps(params);
44132
44201
  let next = steps.next();
44133
44202
  while (!next.done) {
44203
+ if (isSubsolverRequest(next.value)) {
44204
+ this.stats = {
44205
+ ...this.stats,
44206
+ phase: "layer-reserved-route-layer",
44207
+ workUnit: next.value.routedConnectionCount,
44208
+ workUnitCount: this.inputSrj.connections.length,
44209
+ routedConnections: `${next.value.routedConnectionCount}/${this.inputSrj.connections.length}`,
44210
+ routingIterations: next.value.iterations
44211
+ };
44212
+ const output = yield next.value;
44213
+ next = steps.next(output);
44214
+ continue;
44215
+ }
44134
44216
  this.stats = {
44135
44217
  ...this.stats,
44136
44218
  phase: `layer-reserved-${next.value.phase}`,
@@ -49211,7 +49293,7 @@ import { CreateFdmEnclosureSolver } from "@tscircuit/create-fdm-enclosure";
49211
49293
  // node_modules/@tscircuit/implicit-copper-pour-solver/lib/implicit-copper-pour-pipeline-solver.ts
49212
49294
  import {
49213
49295
  BasePipelineSolver,
49214
- BaseSolver as BaseSolver2,
49296
+ BaseSolver as BaseSolver4,
49215
49297
  definePipelineStep
49216
49298
  } from "@tscircuit/solver-utils";
49217
49299
 
@@ -50851,7 +50933,7 @@ var mergeSolverGraphics = (source, overlay) => {
50851
50933
  };
50852
50934
 
50853
50935
  // node_modules/@tscircuit/implicit-copper-pour-solver/lib/implicit-copper-pour-pipeline-solver.ts
50854
- var PrepareCircuitJsonSolver = class extends BaseSolver2 {
50936
+ var PrepareCircuitJsonSolver = class extends BaseSolver4 {
50855
50937
  constructor(input) {
50856
50938
  super();
50857
50939
  this.input = input;
@@ -50867,7 +50949,7 @@ var PrepareCircuitJsonSolver = class extends BaseSolver2 {
50867
50949
  return this.output;
50868
50950
  }
50869
50951
  };
50870
- var AssignGridCellsSolver = class extends BaseSolver2 {
50952
+ var AssignGridCellsSolver = class extends BaseSolver4 {
50871
50953
  constructor(input) {
50872
50954
  super();
50873
50955
  this.input = input;
@@ -50890,7 +50972,7 @@ var AssignGridCellsSolver = class extends BaseSolver2 {
50890
50972
  return this.output;
50891
50973
  }
50892
50974
  };
50893
- var TracePowerPolygonsSolver = class extends BaseSolver2 {
50975
+ var TracePowerPolygonsSolver = class extends BaseSolver4 {
50894
50976
  constructor(input) {
50895
50977
  super();
50896
50978
  this.input = input;
@@ -50926,7 +51008,7 @@ var TracePowerPolygonsSolver = class extends BaseSolver2 {
50926
51008
  };
50927
51009
  }
50928
51010
  };
50929
- var SimplifyPolygonEdgesSolver = class extends BaseSolver2 {
51011
+ var SimplifyPolygonEdgesSolver = class extends BaseSolver4 {
50930
51012
  constructor(input) {
50931
51013
  super();
50932
51014
  this.input = input;
@@ -51064,7 +51146,7 @@ import { LayoutPipelineSolver } from "@tscircuit/matchpack";
51064
51146
  import { SchematicTracePipelineSolver } from "@tscircuit/schematic-trace-solver";
51065
51147
 
51066
51148
  // node_modules/@tscircuit/via-stitch-solver/lib/solvers/ViaStitchSolver.ts
51067
- import { BaseSolver as BaseSolver3 } from "@tscircuit/solver-utils";
51149
+ import { BaseSolver as BaseSolver5 } from "@tscircuit/solver-utils";
51068
51150
 
51069
51151
  // node_modules/@tscircuit/via-stitch-solver/lib/geometry/brep-point-containment.ts
51070
51152
  var POINT_EPSILON = 1e-8;
@@ -51292,7 +51374,7 @@ var resolveOptions = (options = {}) => {
51292
51374
  const resolvedOptions = {
51293
51375
  sourceNetIds: options.sourceNetIds ? new Set(options.sourceNetIds) : void 0,
51294
51376
  layers: options.layers ?? ["top", "bottom"],
51295
- viaPitch: options.viaPitch ?? 1,
51377
+ viaStitchPitch: options.viaStitchPitch ?? 1,
51296
51378
  viaHoleDiameter: options.viaHoleDiameter ?? 0.3,
51297
51379
  viaOuterDiameter: options.viaOuterDiameter ?? 0.6,
51298
51380
  pourEdgeClearance: options.pourEdgeClearance ?? 0.2,
@@ -51302,7 +51384,7 @@ var resolveOptions = (options = {}) => {
51302
51384
  isTented: options.isTented ?? true
51303
51385
  };
51304
51386
  for (const [optionName, optionValue] of [
51305
- ["viaPitch", resolvedOptions.viaPitch],
51387
+ ["viaStitchPitch", resolvedOptions.viaStitchPitch],
51306
51388
  ["viaHoleDiameter", resolvedOptions.viaHoleDiameter],
51307
51389
  ["viaOuterDiameter", resolvedOptions.viaOuterDiameter],
51308
51390
  ["minimumViaSeparation", resolvedOptions.minimumViaSeparation]
@@ -51391,7 +51473,7 @@ var getGridCoordinates = ({
51391
51473
  }
51392
51474
  return coordinates;
51393
51475
  };
51394
- var ViaStitchSolver = class extends BaseSolver3 {
51476
+ var ViaStitchSolver = class extends BaseSolver5 {
51395
51477
  constructor(input) {
51396
51478
  super();
51397
51479
  this.input = input;
@@ -51469,13 +51551,13 @@ var ViaStitchSolver = class extends BaseSolver3 {
51469
51551
  minimum: overlapBounds.minX + requiredCopperRadius,
51470
51552
  maximum: overlapBounds.maxX - requiredCopperRadius,
51471
51553
  origin: this.options.gridOrigin.x,
51472
- pitch: this.options.viaPitch
51554
+ pitch: this.options.viaStitchPitch
51473
51555
  });
51474
51556
  const yCoordinates = getGridCoordinates({
51475
51557
  minimum: overlapBounds.minY + requiredCopperRadius,
51476
51558
  maximum: overlapBounds.maxY - requiredCopperRadius,
51477
51559
  origin: this.options.gridOrigin.y,
51478
- pitch: this.options.viaPitch
51560
+ pitch: this.options.viaStitchPitch
51479
51561
  });
51480
51562
  for (const y of yCoordinates) {
51481
51563
  for (const x of xCoordinates) {
@@ -62028,7 +62110,7 @@ function Group_getRoutingPhasePlans(group) {
62028
62110
  var package_default = {
62029
62111
  name: "@tscircuit/core",
62030
62112
  type: "module",
62031
- version: "0.0.1908",
62113
+ version: "0.0.1910",
62032
62114
  types: "dist/index.d.ts",
62033
62115
  main: "dist/index.js",
62034
62116
  module: "dist/index.js",
@@ -62068,7 +62150,7 @@ var package_default = {
62068
62150
  "@tscircuit/common": "^0.0.20",
62069
62151
  "@tscircuit/copper-pour-solver": "^0.0.54",
62070
62152
  "@tscircuit/create-fdm-enclosure": "0.0.4",
62071
- "@tscircuit/fanout-solver": "0.0.76",
62153
+ "@tscircuit/fanout-solver": "0.0.78",
62072
62154
  "@tscircuit/footprinter": "^0.0.426",
62073
62155
  "@tscircuit/image-utils": "^0.0.8",
62074
62156
  "@tscircuit/implicit-copper-pour-solver": "github:tscircuit/implicit-copper-pour-solver#a5cbbda0cd65fd4707c5c1af25779837c25aba92",
@@ -62086,7 +62168,7 @@ var package_default = {
62086
62168
  "@tscircuit/schematic-trace-solver": "^0.0.196",
62087
62169
  "@tscircuit/solver-utils": "^0.0.16",
62088
62170
  "@tscircuit/soup-util": "^0.0.41",
62089
- "@tscircuit/via-stitch-solver": "github:tscircuit/via-stitch-solver#75653b6440e75584b052f03595afd34283ae7558",
62171
+ "@tscircuit/via-stitch-solver": "github:tscircuit/via-stitch-solver#64f2ac7781b795bdc0d74ba411988e60767fa653",
62090
62172
  "@tscircuit/winding-breakout-point-solver": "github:tscircuit/winding-breakout-point-solver#202dbe9eb0088633b6fa094120dba6f2f41f8803",
62091
62173
  "@types/bun": "^1.2.16",
62092
62174
  "@types/debug": "^4.1.12",
@@ -66650,8 +66732,8 @@ var IsolatedCircuit = class {
66650
66732
  pcbDisabled = false;
66651
66733
  pcbRoutingDisabled = false;
66652
66734
  _featureMspSchematicTraceRouting = true;
66653
- /** Experimental automatic via stitching; opt in before rendering. */
66654
- _featurePcbViaStitching = false;
66735
+ /** Allows board-level via stitching; set to false to disable globally. */
66736
+ _featurePcbViaStitching = true;
66655
66737
  /**
66656
66738
  * The IsolatedCircuit name is usually set by the platform, it's not required but
66657
66739
  * if supplied can identify the circuit in certain effects, e.g. it is passed
@@ -67329,7 +67411,8 @@ var renderViaStitchingForCopperPours = (copperPour) => {
67329
67411
  options: {
67330
67412
  sourceNetIds: [...new Set(sourceNetIds)],
67331
67413
  viaHoleDiameter: pcbBoard?.min_via_hole_diameter ?? holeDiameter,
67332
- viaOuterDiameter: pcbBoard?.min_via_pad_diameter ?? padDiameter
67414
+ viaOuterDiameter: pcbBoard?.min_via_pad_diameter ?? padDiameter,
67415
+ viaStitchPitch: boardComponent?._parsedProps.viaStitchPitch
67333
67416
  }
67334
67417
  };
67335
67418
  const solver = new ViaStitchSolver(solverInput);
@@ -67353,6 +67436,7 @@ var renderViaStitchingForCopperPours = (copperPour) => {
67353
67436
  function CopperPour_doInitialPcbViaStitchRender(copperPour) {
67354
67437
  if (copperPour.root?.pcbDisabled || !copperPour.root?._featurePcbViaStitching)
67355
67438
  return;
67439
+ if (!copperPour._getBoard()?._parsedProps.enableViaStitching) return;
67356
67440
  copperPour._queueAsyncEffect("PcbViaStitchRender", async () => {
67357
67441
  renderViaStitchingForCopperPours(copperPour);
67358
67442
  });
@@ -71944,7 +72028,7 @@ var validateWindingBreakoutInput = (input) => {
71944
72028
  };
71945
72029
 
71946
72030
  // node_modules/@tscircuit/winding-breakout-point-solver/lib/solvers/GatePlacementSolver.ts
71947
- import { BaseSolver as BaseSolver4 } from "@tscircuit/solver-utils";
72031
+ import { BaseSolver as BaseSolver6 } from "@tscircuit/solver-utils";
71948
72032
 
71949
72033
  // node_modules/@tscircuit/winding-breakout-point-solver/lib/gate-placement/place-breakout-gates.ts
71950
72034
  var GEOMETRY_EPSILON = 1e-9;
@@ -72474,7 +72558,7 @@ var getSharedGateSlotCount = (points) => new Set(
72474
72558
  (point6) => `${point6.regionId}:${point6.x.toFixed(9)}:${point6.y.toFixed(9)}`
72475
72559
  )
72476
72560
  ).size;
72477
- var GatePlacementSolver = class extends BaseSolver4 {
72561
+ var GatePlacementSolver = class extends BaseSolver6 {
72478
72562
  constructor(params) {
72479
72563
  super();
72480
72564
  this.params = params;
@@ -72613,7 +72697,7 @@ var GatePlacementSolver = class extends BaseSolver4 {
72613
72697
  };
72614
72698
 
72615
72699
  // node_modules/@tscircuit/winding-breakout-point-solver/lib/solvers/ReferenceOrderingSolver.ts
72616
- import { BaseSolver as BaseSolver5 } from "@tscircuit/solver-utils";
72700
+ import { BaseSolver as BaseSolver7 } from "@tscircuit/solver-utils";
72617
72701
 
72618
72702
  // node_modules/@tscircuit/winding-breakout-point-solver/lib/ordering/get-natural-winding-order.ts
72619
72703
  var getNaturalWindingOrder = (region, connections) => connections.map((connection) => {
@@ -72680,7 +72764,7 @@ var getReferenceWindingOrder = (naturalOrder, atomicGroups, buses) => {
72680
72764
  };
72681
72765
 
72682
72766
  // node_modules/@tscircuit/winding-breakout-point-solver/lib/solvers/ReferenceOrderingSolver.ts
72683
- var ReferenceOrderingSolver = class extends BaseSolver5 {
72767
+ var ReferenceOrderingSolver = class extends BaseSolver7 {
72684
72768
  constructor(params) {
72685
72769
  super();
72686
72770
  this.params = params;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tscircuit/core",
3
3
  "type": "module",
4
- "version": "0.0.1909",
4
+ "version": "0.0.1911",
5
5
  "types": "dist/index.d.ts",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",
@@ -41,7 +41,7 @@
41
41
  "@tscircuit/common": "^0.0.20",
42
42
  "@tscircuit/copper-pour-solver": "^0.0.54",
43
43
  "@tscircuit/create-fdm-enclosure": "0.0.4",
44
- "@tscircuit/fanout-solver": "0.0.76",
44
+ "@tscircuit/fanout-solver": "0.0.78",
45
45
  "@tscircuit/footprinter": "^0.0.426",
46
46
  "@tscircuit/image-utils": "^0.0.8",
47
47
  "@tscircuit/implicit-copper-pour-solver": "github:tscircuit/implicit-copper-pour-solver#a5cbbda0cd65fd4707c5c1af25779837c25aba92",
@@ -59,7 +59,7 @@
59
59
  "@tscircuit/schematic-trace-solver": "^0.0.196",
60
60
  "@tscircuit/solver-utils": "^0.0.16",
61
61
  "@tscircuit/soup-util": "^0.0.41",
62
- "@tscircuit/via-stitch-solver": "github:tscircuit/via-stitch-solver#75653b6440e75584b052f03595afd34283ae7558",
62
+ "@tscircuit/via-stitch-solver": "github:tscircuit/via-stitch-solver#64f2ac7781b795bdc0d74ba411988e60767fa653",
63
63
  "@tscircuit/winding-breakout-point-solver": "github:tscircuit/winding-breakout-point-solver#202dbe9eb0088633b6fa094120dba6f2f41f8803",
64
64
  "@types/bun": "^1.2.16",
65
65
  "@types/debug": "^4.1.12",