@tscircuit/core 0.0.1361 → 0.0.1363
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 +163 -52
- package/dist/index.js +154 -45
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
@@ -4206,6 +4206,32 @@ var jlcMinTolerances = {
|
|
|
4206
4206
|
min_via_pad_diameter: 0.3
|
|
4207
4207
|
};
|
|
4208
4208
|
|
|
4209
|
+
// lib/utils/getViaSpanLayers.ts
|
|
4210
|
+
var getViaSpanLayers = ({
|
|
4211
|
+
fromLayer,
|
|
4212
|
+
toLayer,
|
|
4213
|
+
layerCount
|
|
4214
|
+
}) => {
|
|
4215
|
+
if (fromLayer === toLayer) return [fromLayer];
|
|
4216
|
+
const stack = ["top"];
|
|
4217
|
+
for (let i = 1; i <= layerCount - 2; i++) {
|
|
4218
|
+
stack.push(`inner${i}`);
|
|
4219
|
+
}
|
|
4220
|
+
stack.push("bottom");
|
|
4221
|
+
const fromIndex = stack.indexOf(fromLayer);
|
|
4222
|
+
const toIndex = stack.indexOf(toLayer);
|
|
4223
|
+
if (fromIndex === -1 || toIndex === -1) return [fromLayer, toLayer];
|
|
4224
|
+
return fromIndex <= toIndex ? stack.slice(fromIndex, toIndex + 1) : stack.slice(toIndex, fromIndex + 1).reverse();
|
|
4225
|
+
};
|
|
4226
|
+
var getViaBoardLayers = (layerCount) => {
|
|
4227
|
+
if (layerCount <= 1) return ["top"];
|
|
4228
|
+
return getViaSpanLayers({
|
|
4229
|
+
fromLayer: "top",
|
|
4230
|
+
toLayer: "bottom",
|
|
4231
|
+
layerCount
|
|
4232
|
+
});
|
|
4233
|
+
};
|
|
4234
|
+
|
|
4209
4235
|
// lib/components/primitive-components/Trace/Trace_doInitialPcbTraceRender.ts
|
|
4210
4236
|
var portToObjective = (port) => {
|
|
4211
4237
|
const portPosition = port._getGlobalPcbPositionAfterLayout();
|
|
@@ -4301,10 +4327,30 @@ function Trace_doInitialPcbTraceRender(trace) {
|
|
|
4301
4327
|
}
|
|
4302
4328
|
const nets = trace._findConnectedNets().netsWithSelectors;
|
|
4303
4329
|
if (ports.length === 0 && nets.length === 2) {
|
|
4304
|
-
|
|
4305
|
-
|
|
4306
|
-
);
|
|
4307
|
-
|
|
4330
|
+
const [netA, netB] = nets.map(({ net }) => net);
|
|
4331
|
+
const netAPorts = netA.getAllConnectedPorts();
|
|
4332
|
+
const netBPorts = netB.getAllConnectedPorts();
|
|
4333
|
+
if (netAPorts.length === 0 || netBPorts.length === 0) {
|
|
4334
|
+
console.log(
|
|
4335
|
+
"Nothing to connect this net to, one of the nets is empty. TODO should emit a warning!"
|
|
4336
|
+
);
|
|
4337
|
+
return;
|
|
4338
|
+
}
|
|
4339
|
+
let closestPortPair = [netAPorts[0], netBPorts[0]];
|
|
4340
|
+
let closestDistance = Infinity;
|
|
4341
|
+
for (const netAPort of netAPorts) {
|
|
4342
|
+
const closestNetBPort = getClosest(netAPort, netBPorts);
|
|
4343
|
+
const netAPortPosition = netAPort._getGlobalPcbPositionBeforeLayout();
|
|
4344
|
+
const netBPortPosition = closestNetBPort._getGlobalPcbPositionBeforeLayout();
|
|
4345
|
+
const distance19 = Math.sqrt(
|
|
4346
|
+
(netAPortPosition.x - netBPortPosition.x) ** 2 + (netAPortPosition.y - netBPortPosition.y) ** 2
|
|
4347
|
+
);
|
|
4348
|
+
if (distance19 < closestDistance) {
|
|
4349
|
+
closestDistance = distance19;
|
|
4350
|
+
closestPortPair = [netAPort, closestNetBPort];
|
|
4351
|
+
}
|
|
4352
|
+
}
|
|
4353
|
+
ports.push(...closestPortPair);
|
|
4308
4354
|
} else if (ports.length === 1 && nets.length === 1) {
|
|
4309
4355
|
const port = ports[0];
|
|
4310
4356
|
const portsInNet = nets[0].net.getAllConnectedPorts();
|
|
@@ -4513,19 +4559,29 @@ function Trace_doInitialPcbTraceRender(trace) {
|
|
|
4513
4559
|
subcircuit_id: trace.getSubcircuit()?.subcircuit_id,
|
|
4514
4560
|
trace_length: traceLength
|
|
4515
4561
|
});
|
|
4562
|
+
const subcircuitConnectivityMapKey = trace.subcircuit_connectivity_map_key ?? db.source_trace.get(trace.source_trace_id)?.subcircuit_connectivity_map_key;
|
|
4516
4563
|
trace._portsRoutedOnPcb = ports;
|
|
4517
4564
|
trace.pcb_trace_id = pcb_trace.pcb_trace_id;
|
|
4518
4565
|
for (const point6 of mergedRoute) {
|
|
4519
4566
|
if (point6.route_type === "via") {
|
|
4567
|
+
const fromLayer = point6.from_layer;
|
|
4568
|
+
const toLayer = point6.to_layer;
|
|
4520
4569
|
db.pcb_via.insert({
|
|
4521
4570
|
pcb_trace_id: pcb_trace.pcb_trace_id,
|
|
4522
4571
|
x: point6.x,
|
|
4523
4572
|
y: point6.y,
|
|
4524
4573
|
hole_diameter: holeDiameter,
|
|
4525
4574
|
outer_diameter: padDiameter,
|
|
4526
|
-
layers:
|
|
4527
|
-
|
|
4528
|
-
|
|
4575
|
+
layers: getViaSpanLayers({
|
|
4576
|
+
fromLayer,
|
|
4577
|
+
toLayer,
|
|
4578
|
+
layerCount: subcircuit._getSubcircuitLayerCount()
|
|
4579
|
+
}),
|
|
4580
|
+
from_layer: fromLayer,
|
|
4581
|
+
to_layer: toLayer,
|
|
4582
|
+
subcircuit_id: subcircuit?.subcircuit_id ?? void 0,
|
|
4583
|
+
pcb_group_id: trace.getGroup()?.pcb_group_id ?? void 0,
|
|
4584
|
+
subcircuit_connectivity_map_key: subcircuitConnectivityMapKey
|
|
4529
4585
|
});
|
|
4530
4586
|
}
|
|
4531
4587
|
}
|
|
@@ -4756,6 +4812,7 @@ function Trace_doInitialPcbManualTraceRender(trace) {
|
|
|
4756
4812
|
const { maybeFlipLayer } = trace._getPcbPrimitiveFlippedHelpers();
|
|
4757
4813
|
const transform2 = trace._computePcbGlobalTransformBeforeLayout();
|
|
4758
4814
|
const insertedRoutes = [];
|
|
4815
|
+
const subcircuitConnectivityMapKey2 = trace.subcircuit_connectivity_map_key ?? db.source_trace.get(trace.source_trace_id)?.subcircuit_connectivity_map_key;
|
|
4759
4816
|
for (const inflatedPcbTrace of inflatedPcbTraces) {
|
|
4760
4817
|
const transformedRoute = inflatedPcbTrace.route.map((point6) => {
|
|
4761
4818
|
if (point6.route_type === "wire") {
|
|
@@ -4809,10 +4866,11 @@ function Trace_doInitialPcbManualTraceRender(trace) {
|
|
|
4809
4866
|
const toLayer = maybeFlipLayer(
|
|
4810
4867
|
inflatedPcbVia?.to_layer ?? point6.to_layer
|
|
4811
4868
|
);
|
|
4812
|
-
const layers = (inflatedPcbVia?.layers ??
|
|
4813
|
-
point6.from_layer,
|
|
4814
|
-
point6.to_layer
|
|
4815
|
-
|
|
4869
|
+
const layers = (inflatedPcbVia?.layers ?? getViaSpanLayers({
|
|
4870
|
+
fromLayer: point6.from_layer,
|
|
4871
|
+
toLayer: point6.to_layer,
|
|
4872
|
+
layerCount: subcircuit._getSubcircuitLayerCount()
|
|
4873
|
+
})).map((layer2) => maybeFlipLayer(layer2));
|
|
4816
4874
|
db.pcb_via.insert({
|
|
4817
4875
|
pcb_trace_id: pcb_trace2.pcb_trace_id,
|
|
4818
4876
|
x: point6.x,
|
|
@@ -4824,7 +4882,7 @@ function Trace_doInitialPcbManualTraceRender(trace) {
|
|
|
4824
4882
|
to_layer: toLayer,
|
|
4825
4883
|
subcircuit_id: subcircuit?.subcircuit_id ?? void 0,
|
|
4826
4884
|
pcb_group_id: trace.getGroup()?.pcb_group_id ?? void 0,
|
|
4827
|
-
subcircuit_connectivity_map_key: inflatedPcbVia?.subcircuit_connectivity_map_key,
|
|
4885
|
+
subcircuit_connectivity_map_key: inflatedPcbVia?.subcircuit_connectivity_map_key ?? subcircuitConnectivityMapKey2,
|
|
4828
4886
|
net_is_assignable: inflatedPcbVia?.net_is_assignable,
|
|
4829
4887
|
net_assigned: inflatedPcbVia?.net_assigned,
|
|
4830
4888
|
is_tented: inflatedPcbVia?.is_tented
|
|
@@ -5008,19 +5066,29 @@ function Trace_doInitialPcbManualTraceRender(trace) {
|
|
|
5008
5066
|
pcb_group_id: trace.getGroup()?.pcb_group_id ?? void 0,
|
|
5009
5067
|
trace_length: traceLength
|
|
5010
5068
|
});
|
|
5069
|
+
const subcircuitConnectivityMapKey = trace.subcircuit_connectivity_map_key ?? db.source_trace.get(trace.source_trace_id)?.subcircuit_connectivity_map_key;
|
|
5011
5070
|
const pcbStyle = trace.getInheritedMergedProperty("pcbStyle");
|
|
5012
5071
|
const { holeDiameter, padDiameter } = getViaDiameterDefaults(pcbStyle);
|
|
5013
5072
|
for (const point6 of route) {
|
|
5014
5073
|
if (point6.route_type === "via") {
|
|
5074
|
+
const fromLayer = point6.from_layer;
|
|
5075
|
+
const toLayer = point6.to_layer;
|
|
5015
5076
|
db.pcb_via.insert({
|
|
5016
5077
|
pcb_trace_id: pcb_trace.pcb_trace_id,
|
|
5017
5078
|
x: point6.x,
|
|
5018
5079
|
y: point6.y,
|
|
5019
5080
|
hole_diameter: holeDiameter,
|
|
5020
5081
|
outer_diameter: padDiameter,
|
|
5021
|
-
layers:
|
|
5022
|
-
|
|
5023
|
-
|
|
5082
|
+
layers: getViaSpanLayers({
|
|
5083
|
+
fromLayer,
|
|
5084
|
+
toLayer,
|
|
5085
|
+
layerCount: subcircuit._getSubcircuitLayerCount()
|
|
5086
|
+
}),
|
|
5087
|
+
from_layer: fromLayer,
|
|
5088
|
+
to_layer: toLayer,
|
|
5089
|
+
subcircuit_id: subcircuit?.subcircuit_id ?? void 0,
|
|
5090
|
+
pcb_group_id: trace.getGroup()?.pcb_group_id ?? void 0,
|
|
5091
|
+
subcircuit_connectivity_map_key: subcircuitConnectivityMapKey
|
|
5024
5092
|
});
|
|
5025
5093
|
}
|
|
5026
5094
|
}
|
|
@@ -7241,26 +7309,6 @@ import { viaProps } from "@tscircuit/props";
|
|
|
7241
7309
|
import {
|
|
7242
7310
|
layer_ref
|
|
7243
7311
|
} from "circuit-json";
|
|
7244
|
-
|
|
7245
|
-
// lib/utils/getViaSpanLayers.ts
|
|
7246
|
-
var getViaSpanLayers = ({
|
|
7247
|
-
fromLayer,
|
|
7248
|
-
toLayer,
|
|
7249
|
-
layerCount
|
|
7250
|
-
}) => {
|
|
7251
|
-
if (fromLayer === toLayer) return [fromLayer];
|
|
7252
|
-
const stack = ["top"];
|
|
7253
|
-
for (let i = 1; i <= layerCount - 2; i++) {
|
|
7254
|
-
stack.push(`inner${i}`);
|
|
7255
|
-
}
|
|
7256
|
-
stack.push("bottom");
|
|
7257
|
-
const fromIndex = stack.indexOf(fromLayer);
|
|
7258
|
-
const toIndex = stack.indexOf(toLayer);
|
|
7259
|
-
if (fromIndex === -1 || toIndex === -1) return [fromLayer, toLayer];
|
|
7260
|
-
return fromIndex <= toIndex ? stack.slice(fromIndex, toIndex + 1) : stack.slice(toIndex, fromIndex + 1).reverse();
|
|
7261
|
-
};
|
|
7262
|
-
|
|
7263
|
-
// lib/components/primitive-components/PcbVia.ts
|
|
7264
7312
|
import { z as z6 } from "zod";
|
|
7265
7313
|
var pcbViaProps = viaProps.extend({
|
|
7266
7314
|
layers: z6.array(layer_ref).optional(),
|
|
@@ -22803,21 +22851,39 @@ var Group5 = class extends NormalComponent3 {
|
|
|
22803
22851
|
continue;
|
|
22804
22852
|
}
|
|
22805
22853
|
if (pcb_trace.type === "pcb_trace") {
|
|
22854
|
+
const sourceTraceId = getSourceTraceIdForRoutedTrace({
|
|
22855
|
+
db,
|
|
22856
|
+
trace: pcb_trace,
|
|
22857
|
+
subcircuit_id: this.subcircuit_id
|
|
22858
|
+
});
|
|
22859
|
+
const { connection_name: inputConnectionName } = pcb_trace;
|
|
22860
|
+
let subcircuitConnectivityMapKey;
|
|
22861
|
+
if (sourceTraceId) {
|
|
22862
|
+
subcircuitConnectivityMapKey = db.source_trace.get(sourceTraceId)?.subcircuit_connectivity_map_key;
|
|
22863
|
+
}
|
|
22864
|
+
if (!subcircuitConnectivityMapKey && inputConnectionName) {
|
|
22865
|
+
const sourceNet = db.source_net.get(inputConnectionName);
|
|
22866
|
+
if (sourceNet) {
|
|
22867
|
+
subcircuitConnectivityMapKey = sourceNet.subcircuit_connectivity_map_key;
|
|
22868
|
+
}
|
|
22869
|
+
}
|
|
22806
22870
|
for (const point6 of pcb_trace.route) {
|
|
22807
22871
|
if (point6.route_type === "via") {
|
|
22808
22872
|
const routedViaPoint = point6;
|
|
22873
|
+
const fromLayer = point6.from_layer;
|
|
22874
|
+
const toLayer = point6.to_layer;
|
|
22809
22875
|
db.pcb_via.insert({
|
|
22810
22876
|
pcb_trace_id: pcb_trace.pcb_trace_id,
|
|
22811
22877
|
x: point6.x,
|
|
22812
22878
|
y: point6.y,
|
|
22813
22879
|
hole_diameter: routedViaPoint.via_hole_diameter ?? routedViaPoint.hole_diameter ?? routedViaHoleDiameter,
|
|
22814
22880
|
outer_diameter: routedViaPoint.via_diameter ?? routedViaPoint.outer_diameter ?? routedViaPadDiameter,
|
|
22815
|
-
layers:
|
|
22816
|
-
|
|
22817
|
-
|
|
22818
|
-
|
|
22819
|
-
|
|
22820
|
-
|
|
22881
|
+
layers: getViaBoardLayers(this._getSubcircuitLayerCount()),
|
|
22882
|
+
from_layer: fromLayer,
|
|
22883
|
+
to_layer: toLayer,
|
|
22884
|
+
subcircuit_id: this.subcircuit_id,
|
|
22885
|
+
pcb_group_id: this.pcb_group_id ?? void 0,
|
|
22886
|
+
subcircuit_connectivity_map_key: subcircuitConnectivityMapKey
|
|
22821
22887
|
});
|
|
22822
22888
|
}
|
|
22823
22889
|
}
|
|
@@ -24240,7 +24306,7 @@ import { identity as identity5 } from "transformation-matrix";
|
|
|
24240
24306
|
var package_default = {
|
|
24241
24307
|
name: "@tscircuit/core",
|
|
24242
24308
|
type: "module",
|
|
24243
|
-
version: "0.0.
|
|
24309
|
+
version: "0.0.1362",
|
|
24244
24310
|
types: "dist/index.d.ts",
|
|
24245
24311
|
main: "dist/index.js",
|
|
24246
24312
|
module: "dist/index.js",
|
|
@@ -24277,7 +24343,7 @@ var package_default = {
|
|
|
24277
24343
|
"@tscircuit/checks": "0.0.138",
|
|
24278
24344
|
"@tscircuit/circuit-json-util": "^0.0.96",
|
|
24279
24345
|
"@tscircuit/common": "^0.0.20",
|
|
24280
|
-
"@tscircuit/copper-pour-solver": "
|
|
24346
|
+
"@tscircuit/copper-pour-solver": "0.0.35",
|
|
24281
24347
|
"@tscircuit/footprinter": "^0.0.357",
|
|
24282
24348
|
"@tscircuit/image-utils": "^0.0.8",
|
|
24283
24349
|
"@tscircuit/infer-cable-insertion-point": "^0.0.2",
|
|
@@ -24288,11 +24354,11 @@ var package_default = {
|
|
|
24288
24354
|
"@tscircuit/matchpack": "^0.0.29",
|
|
24289
24355
|
"@tscircuit/math-utils": "^0.0.36",
|
|
24290
24356
|
"@tscircuit/miniflex": "^0.0.4",
|
|
24291
|
-
"@tscircuit/props": "^0.0.555",
|
|
24292
24357
|
"@tscircuit/ngspice-spice-engine": "^0.0.18",
|
|
24358
|
+
"@tscircuit/props": "^0.0.558",
|
|
24293
24359
|
"@tscircuit/schematic-match-adapt": "^0.0.18",
|
|
24294
|
-
"@tscircuit/solver-utils": "^0.0.16",
|
|
24295
24360
|
"@tscircuit/schematic-trace-solver": "^0.0.72",
|
|
24361
|
+
"@tscircuit/solver-utils": "^0.0.16",
|
|
24296
24362
|
"@tscircuit/soup-util": "^0.0.41",
|
|
24297
24363
|
"@types/bun": "^1.2.16",
|
|
24298
24364
|
"@types/debug": "^4.1.12",
|
|
@@ -25333,6 +25399,47 @@ var Subcircuit = class extends Group5 {
|
|
|
25333
25399
|
doInitialRenderIsolatedSubcircuits() {
|
|
25334
25400
|
Subcircuit_doInitialRenderIsolatedSubcircuits(this);
|
|
25335
25401
|
}
|
|
25402
|
+
doInitialCreateNetsFromProps() {
|
|
25403
|
+
super.doInitialCreateNetsFromProps();
|
|
25404
|
+
this._createTracesForExposedNets();
|
|
25405
|
+
}
|
|
25406
|
+
_createTracesForExposedNets() {
|
|
25407
|
+
const exposedNets = this._getNetNamesToExpose();
|
|
25408
|
+
if (!exposedNets?.length) return;
|
|
25409
|
+
const parentSubcircuit = this.parent?.getSubcircuit?.();
|
|
25410
|
+
if (!parentSubcircuit) return;
|
|
25411
|
+
if (!this.name) return;
|
|
25412
|
+
for (const exposedNetName of exposedNets) {
|
|
25413
|
+
const netName = normalizeExposedNetName(exposedNetName);
|
|
25414
|
+
const parentNetSelector = `> net.${netName}`;
|
|
25415
|
+
const childNetSelector = `.${this.name} > net.${netName}`;
|
|
25416
|
+
const traceName = `exposed_net.${netName}`;
|
|
25417
|
+
const parentHasDirectNet = parentSubcircuit.children.some(
|
|
25418
|
+
(child) => child instanceof Net && child._parsedProps.name === netName
|
|
25419
|
+
);
|
|
25420
|
+
if (!parentHasDirectNet) {
|
|
25421
|
+
parentSubcircuit.add(new Net({ name: netName }));
|
|
25422
|
+
}
|
|
25423
|
+
const existingTrace = parentSubcircuit.children.find(
|
|
25424
|
+
(child) => child instanceof Trace3 && child._parsedProps.name === traceName
|
|
25425
|
+
);
|
|
25426
|
+
if (existingTrace) continue;
|
|
25427
|
+
parentSubcircuit.add(
|
|
25428
|
+
new Trace3({
|
|
25429
|
+
name: traceName,
|
|
25430
|
+
from: childNetSelector,
|
|
25431
|
+
to: parentNetSelector,
|
|
25432
|
+
displayName: netName
|
|
25433
|
+
})
|
|
25434
|
+
);
|
|
25435
|
+
}
|
|
25436
|
+
}
|
|
25437
|
+
_getNetNamesToExpose() {
|
|
25438
|
+
const explicitExposedNets = this._parsedProps.exposedNets ?? [];
|
|
25439
|
+
if (!this._parsedProps.exposeNets) return explicitExposedNets;
|
|
25440
|
+
const childNetNames = this.selectAll("net").filter((net) => net instanceof Net && net.getSubcircuit() === this).map((net) => net._parsedProps.name);
|
|
25441
|
+
return Array.from(/* @__PURE__ */ new Set([...explicitExposedNets, ...childNetNames]));
|
|
25442
|
+
}
|
|
25336
25443
|
/**
|
|
25337
25444
|
* During this phase, we inflate the subcircuit circuit json into class
|
|
25338
25445
|
* instances
|
|
@@ -25361,6 +25468,7 @@ var Subcircuit = class extends Group5 {
|
|
|
25361
25468
|
inflateCircuitJson(this, circuitJson, children);
|
|
25362
25469
|
}
|
|
25363
25470
|
};
|
|
25471
|
+
var normalizeExposedNetName = (netName) => netName.startsWith("net.") ? netName.slice("net.".length) : netName;
|
|
25364
25472
|
|
|
25365
25473
|
// lib/components/normal-components/MountedBoard.ts
|
|
25366
25474
|
var MountedBoard = class extends Subcircuit {
|
|
@@ -29153,6 +29261,7 @@ var CopperPour = class extends PrimitiveComponent2 {
|
|
|
29153
29261
|
const clearance = props.clearance ?? 0.2;
|
|
29154
29262
|
const inputProblem = convertCircuitJsonToInputProblem(circuitJson, {
|
|
29155
29263
|
layer: props.layer,
|
|
29264
|
+
subcircuit_id: subcircuit?.subcircuit_id ?? void 0,
|
|
29156
29265
|
source_net_id: net.source_net_id,
|
|
29157
29266
|
pad_margin: props.padMargin ?? clearance,
|
|
29158
29267
|
trace_margin: props.traceMargin ?? clearance,
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tscircuit/core",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.1363",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"module": "dist/index.js",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"@tscircuit/checks": "0.0.138",
|
|
39
39
|
"@tscircuit/circuit-json-util": "^0.0.96",
|
|
40
40
|
"@tscircuit/common": "^0.0.20",
|
|
41
|
-
"@tscircuit/copper-pour-solver": "
|
|
41
|
+
"@tscircuit/copper-pour-solver": "0.0.35",
|
|
42
42
|
"@tscircuit/footprinter": "^0.0.357",
|
|
43
43
|
"@tscircuit/image-utils": "^0.0.8",
|
|
44
44
|
"@tscircuit/infer-cable-insertion-point": "^0.0.2",
|
|
@@ -49,11 +49,11 @@
|
|
|
49
49
|
"@tscircuit/matchpack": "^0.0.29",
|
|
50
50
|
"@tscircuit/math-utils": "^0.0.36",
|
|
51
51
|
"@tscircuit/miniflex": "^0.0.4",
|
|
52
|
-
"@tscircuit/props": "^0.0.555",
|
|
53
52
|
"@tscircuit/ngspice-spice-engine": "^0.0.18",
|
|
53
|
+
"@tscircuit/props": "^0.0.558",
|
|
54
54
|
"@tscircuit/schematic-match-adapt": "^0.0.18",
|
|
55
|
-
"@tscircuit/solver-utils": "^0.0.16",
|
|
56
55
|
"@tscircuit/schematic-trace-solver": "^0.0.72",
|
|
56
|
+
"@tscircuit/solver-utils": "^0.0.16",
|
|
57
57
|
"@tscircuit/soup-util": "^0.0.41",
|
|
58
58
|
"@types/bun": "^1.2.16",
|
|
59
59
|
"@types/debug": "^4.1.12",
|