@tscircuit/cli 0.1.2252 → 0.1.2254
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/cli/build/build.worker.js +1 -0
- package/dist/cli/main.js +142 -48
- package/dist/cli/snapshot/snapshot.worker.js +1 -0
- package/dist/lib/index.js +11 -8
- package/package.json +10 -8
|
@@ -34321,6 +34321,7 @@ function getPlatformConfigWithCliDefaults(userConfig, options) {
|
|
|
34321
34321
|
const cacheDir = path9.join(projectDir, ".tscircuit", "cache");
|
|
34322
34322
|
const defaultConfig = {
|
|
34323
34323
|
...basePlatformConfig,
|
|
34324
|
+
checkAvailability: true,
|
|
34324
34325
|
localCacheEngine: createLocalCacheEngine(cacheDir),
|
|
34325
34326
|
footprintFileParserMap: {
|
|
34326
34327
|
...basePlatformConfig.footprintFileParserMap,
|
package/dist/cli/main.js
CHANGED
|
@@ -172569,7 +172569,7 @@ var import_perfect_cli = __toESM3(require_dist3(), 1);
|
|
|
172569
172569
|
// lib/getVersion.ts
|
|
172570
172570
|
import { createRequire as createRequire2 } from "node:module";
|
|
172571
172571
|
// package.json
|
|
172572
|
-
var version = "0.1.
|
|
172572
|
+
var version = "0.1.2253";
|
|
172573
172573
|
var package_default = {
|
|
172574
172574
|
name: "@tscircuit/cli",
|
|
172575
172575
|
version,
|
|
@@ -172589,15 +172589,16 @@ var package_default = {
|
|
|
172589
172589
|
"@tscircuit/circuit-json-placement-analysis": "^0.0.15",
|
|
172590
172590
|
"@tscircuit/circuit-json-routing-analysis": "^0.0.8",
|
|
172591
172591
|
"@tscircuit/circuit-json-schematic-placement-analysis": "https://jscdn.tscircuit.com/@tscircuit/circuit-json-schematic-placement-analysis/0.0.33.tgz",
|
|
172592
|
-
"@tscircuit/circuit-json-util": "^0.0.
|
|
172593
|
-
"@tscircuit/eval": "0.0.
|
|
172592
|
+
"@tscircuit/circuit-json-util": "^0.0.120",
|
|
172593
|
+
"@tscircuit/eval": "0.0.1569",
|
|
172594
172594
|
"@tscircuit/fake-snippets": "^0.0.182",
|
|
172595
172595
|
"@tscircuit/file-server": "^0.0.32",
|
|
172596
172596
|
"@tscircuit/footprinter": "^0.0.430",
|
|
172597
172597
|
"@tscircuit/image-utils": "^0.0.8",
|
|
172598
172598
|
"@tscircuit/krt-wasm": "^0.1.6",
|
|
172599
172599
|
"@tscircuit/math-utils": "0.0.36",
|
|
172600
|
-
"@tscircuit/
|
|
172600
|
+
"@tscircuit/modelprinter": "^0.0.11",
|
|
172601
|
+
"@tscircuit/props": "^0.0.694",
|
|
172601
172602
|
"@tscircuit/runframe": "^0.0.2915",
|
|
172602
172603
|
"@tscircuit/schematic-match-adapt": "^0.0.22",
|
|
172603
172604
|
"@tscircuit/schematic-trace-solver": "^0.0.204",
|
|
@@ -172613,7 +172614,7 @@ var package_default = {
|
|
|
172613
172614
|
"@types/semver": "^7.5.8",
|
|
172614
172615
|
"bun-match-svg": "^0.0.12",
|
|
172615
172616
|
chokidar: "4.0.1",
|
|
172616
|
-
"circuit-json": "^0.0.
|
|
172617
|
+
"circuit-json": "^0.0.520",
|
|
172617
172618
|
"circuit-json-to-3d-png": "^0.0.6",
|
|
172618
172619
|
"circuit-json-to-altium": "github:tscircuit/circuit-json-to-altium#1a50d0dd2c0737cf940d92c0315852dc0111dd87",
|
|
172619
172620
|
"circuit-json-to-bom-csv": "^0.0.19",
|
|
@@ -172671,7 +172672,7 @@ var package_default = {
|
|
|
172671
172672
|
zod: "^3.23.8"
|
|
172672
172673
|
},
|
|
172673
172674
|
peerDependencies: {
|
|
172674
|
-
"circuit-json": "^0.0.
|
|
172675
|
+
"circuit-json": "^0.0.520",
|
|
172675
172676
|
tscircuit: "*"
|
|
172676
172677
|
},
|
|
172677
172678
|
bin: {
|
|
@@ -172688,9 +172689,10 @@ var package_default = {
|
|
|
172688
172689
|
}
|
|
172689
172690
|
},
|
|
172690
172691
|
overrides: {
|
|
172691
|
-
"circuit-json": "^0.0.
|
|
172692
|
+
"circuit-json": "^0.0.520",
|
|
172692
172693
|
altiumts: "0.0.59",
|
|
172693
|
-
poppygl: "0.0.34"
|
|
172694
|
+
poppygl: "0.0.34",
|
|
172695
|
+
"@tscircuit/core": "^0.0.2104"
|
|
172694
172696
|
},
|
|
172695
172697
|
scripts: {
|
|
172696
172698
|
start: "bun run dev",
|
|
@@ -185168,6 +185170,7 @@ function getPlatformConfigWithCliDefaults(userConfig, options) {
|
|
|
185168
185170
|
const cacheDir = path20.join(projectDir, ".tscircuit", "cache");
|
|
185169
185171
|
const defaultConfig = {
|
|
185170
185172
|
...basePlatformConfig,
|
|
185173
|
+
checkAvailability: true,
|
|
185171
185174
|
localCacheEngine: createLocalCacheEngine(cacheDir),
|
|
185172
185175
|
footprintFileParserMap: {
|
|
185173
185176
|
...basePlatformConfig.footprintFileParserMap,
|
|
@@ -367941,7 +367944,98 @@ var convertBomRowsToCsv = (bom_rows) => {
|
|
|
367941
367944
|
// lib/shared/export-snippet.ts
|
|
367942
367945
|
init_dist2();
|
|
367943
367946
|
import { convertCircuitJsonToGltf as convertCircuitJsonToGltf4 } from "circuit-json-to-gltf";
|
|
367944
|
-
|
|
367947
|
+
|
|
367948
|
+
// node_modules/circuit-json-to-pnp-csv/dist/index.js
|
|
367949
|
+
var import_papaparse2 = __toESM3(require_papaparse(), 1);
|
|
367950
|
+
import { su as su14 } from "@tscircuit/soup-util";
|
|
367951
|
+
import {
|
|
367952
|
+
getRotationBetweenPcbPin1Locations as getRotationBetweenPcbPin1Locations2
|
|
367953
|
+
} from "circuit-json";
|
|
367954
|
+
import { analyzePcbPin1Location } from "@tscircuit/circuit-json-util";
|
|
367955
|
+
import {
|
|
367956
|
+
getRotationBetweenPcbPin1Locations,
|
|
367957
|
+
pcb_pin1_location
|
|
367958
|
+
} from "circuit-json";
|
|
367959
|
+
var isBareMountingHole2 = (circuitJson, source, pcb) => {
|
|
367960
|
+
if (source.ftype !== "simple_chip")
|
|
367961
|
+
return false;
|
|
367962
|
+
if (source.manufacturer_part_number?.trim())
|
|
367963
|
+
return false;
|
|
367964
|
+
if (Object.values(source.supplier_part_numbers ?? {}).some((numbers) => numbers?.some((number) => number.trim())))
|
|
367965
|
+
return false;
|
|
367966
|
+
if (circuitJson.some((element) => element.type === "cad_component" && element.pcb_component_id === pcb.pcb_component_id && (element.model_obj_url || element.model_stl_url || element.model_3mf_url || element.model_gltf_url || element.model_glb_url || element.model_step_url || element.model_wrl_url || element.model_jscad)))
|
|
367967
|
+
return false;
|
|
367968
|
+
const geometry = circuitJson.filter((element) => (element.type === "pcb_plated_hole" || element.type === "pcb_hole" || element.type === "pcb_smtpad") && element.pcb_component_id === pcb.pcb_component_id);
|
|
367969
|
+
return geometry.length === 1 && (geometry[0].type === "pcb_plated_hole" || geometry[0].type === "pcb_hole");
|
|
367970
|
+
};
|
|
367971
|
+
var fixedDecimals = 3;
|
|
367972
|
+
var normalizeRotation2 = (rotation) => (rotation % 360 + 360) % 360;
|
|
367973
|
+
var getPickAndPlaceRotation = (pcbComponent, designator, opts) => {
|
|
367974
|
+
const { supplier } = opts;
|
|
367975
|
+
if (!supplier)
|
|
367976
|
+
return pcbComponent.rotation;
|
|
367977
|
+
const unresolved = (reason) => {
|
|
367978
|
+
const message = `${designator}: cannot verify ${supplier} pick-and-place rotation (${reason}); PCB rotation ${pcbComponent.rotation} is unverified.`;
|
|
367979
|
+
if (opts.requireSupplierRotation)
|
|
367980
|
+
throw new Error(message);
|
|
367981
|
+
const warning = {
|
|
367982
|
+
designator,
|
|
367983
|
+
pcb_component_id: pcbComponent.pcb_component_id,
|
|
367984
|
+
supplier,
|
|
367985
|
+
reason,
|
|
367986
|
+
message
|
|
367987
|
+
};
|
|
367988
|
+
if (opts.onRotationWarning)
|
|
367989
|
+
opts.onRotationWarning(warning);
|
|
367990
|
+
else
|
|
367991
|
+
console.warn(message);
|
|
367992
|
+
return pcbComponent.rotation;
|
|
367993
|
+
};
|
|
367994
|
+
if (!pcbComponent.pin1_location)
|
|
367995
|
+
return unresolved("missing_pin1_location");
|
|
367996
|
+
const supplierPin1Location = pcbComponent.supplier_pin1_location_map?.[supplier];
|
|
367997
|
+
if (!supplierPin1Location)
|
|
367998
|
+
return unresolved("missing_supplier_pin1_location");
|
|
367999
|
+
const rotationAdjustment = getRotationBetweenPcbPin1Locations2(supplierPin1Location, pcbComponent.pin1_location);
|
|
368000
|
+
if (rotationAdjustment === null)
|
|
368001
|
+
return unresolved("incompatible_pin1_locations");
|
|
368002
|
+
return normalizeRotation2(pcbComponent.rotation + rotationAdjustment);
|
|
368003
|
+
};
|
|
368004
|
+
var convertCircuitJsonToPickAndPlaceRows = (circuitJson, opts = {}) => {
|
|
368005
|
+
if (opts.requireSupplierRotation && !opts.supplier) {
|
|
368006
|
+
throw new Error("requireSupplierRotation requires a supplier");
|
|
368007
|
+
}
|
|
368008
|
+
const rows = [];
|
|
368009
|
+
for (const element of circuitJson) {
|
|
368010
|
+
if (element.type === "pcb_component") {
|
|
368011
|
+
if (element.do_not_place)
|
|
368012
|
+
continue;
|
|
368013
|
+
const source_component = su14(circuitJson).source_component.get(element.source_component_id);
|
|
368014
|
+
if (!source_component)
|
|
368015
|
+
continue;
|
|
368016
|
+
if (source_component.ftype === "simple_test_point")
|
|
368017
|
+
continue;
|
|
368018
|
+
if (isBareMountingHole2(circuitJson, source_component, element))
|
|
368019
|
+
continue;
|
|
368020
|
+
const designator = source_component.name ?? element.pcb_component_id;
|
|
368021
|
+
rows.push({
|
|
368022
|
+
designator,
|
|
368023
|
+
mid_x: element.center.x,
|
|
368024
|
+
mid_y: element.center.y * (opts.flip_y_axis ? -1 : 1),
|
|
368025
|
+
layer: element.layer,
|
|
368026
|
+
rotation: getPickAndPlaceRotation(element, designator, opts)
|
|
368027
|
+
});
|
|
368028
|
+
}
|
|
368029
|
+
}
|
|
368030
|
+
return rows;
|
|
368031
|
+
};
|
|
368032
|
+
var convertCircuitJsonToPickAndPlaceCsv = (circuitJson, opts = {}) => import_papaparse2.default.unparse(convertCircuitJsonToPickAndPlaceRows(circuitJson, opts).map((row) => ({
|
|
368033
|
+
Designator: row.designator,
|
|
368034
|
+
"Mid X": row.mid_x.toFixed(fixedDecimals),
|
|
368035
|
+
"Mid Y": row.mid_y.toFixed(fixedDecimals),
|
|
368036
|
+
Layer: row.layer,
|
|
368037
|
+
Rotation: row.rotation
|
|
368038
|
+
})));
|
|
367945
368039
|
|
|
367946
368040
|
// node_modules/manifold-3d/manifold.js
|
|
367947
368041
|
async function Module2(moduleArg = {}) {
|
|
@@ -371336,7 +371430,7 @@ import {
|
|
|
371336
371430
|
} from "circuit-to-svg";
|
|
371337
371431
|
|
|
371338
371432
|
// node_modules/dsn-converter/dist/index.js
|
|
371339
|
-
import { su as
|
|
371433
|
+
import { su as su15 } from "@tscircuit/soup-util";
|
|
371340
371434
|
import { getBoundsFromPoints as getBoundsFromPoints5 } from "@tscircuit/math-utils";
|
|
371341
371435
|
import { applyToPoint as applyToPoint99, scale as scale11 } from "transformation-matrix";
|
|
371342
371436
|
import { su as su25 } from "@tscircuit/soup-util";
|
|
@@ -371745,8 +371839,8 @@ function processComponentsAndPads(componentGroups, circuitElements, pcb) {
|
|
|
371745
371839
|
const { pcb_component_id, pcb_smtpads } = group;
|
|
371746
371840
|
if (pcb_smtpads.length === 0)
|
|
371747
371841
|
continue;
|
|
371748
|
-
const pcbComponent =
|
|
371749
|
-
const sourceComponent =
|
|
371842
|
+
const pcbComponent = su15(circuitElements).pcb_component.list().find((e) => e.pcb_component_id === pcb_component_id);
|
|
371843
|
+
const sourceComponent = su15(circuitElements).source_component.list().find((e) => e.source_component_id === pcbComponent?.source_component_id);
|
|
371750
371844
|
const footprintName = getFootprintName(sourceComponent, pcbComponent);
|
|
371751
371845
|
const componentName = sourceComponent?.name || "Unknown";
|
|
371752
371846
|
const circuitSpaceCoordinates = applyToPoint99(transformMmToUm, pcbComponent.center);
|
|
@@ -371781,8 +371875,8 @@ function processComponentsAndPads(componentGroups, circuitElements, pcb) {
|
|
|
371781
371875
|
outlines: [],
|
|
371782
371876
|
pins: componentGroup.pcb_smtpads.map((pad) => {
|
|
371783
371877
|
const pcbComponent = circuitElements.find((e) => e.type === "pcb_component" && e.source_component_id === firstComponent.sourceComponent?.source_component_id);
|
|
371784
|
-
const pcbPort =
|
|
371785
|
-
const sourcePort =
|
|
371878
|
+
const pcbPort = su15(circuitElements).pcb_port.list().find((e) => e.pcb_port_id === pad.pcb_port_id);
|
|
371879
|
+
const sourcePort = su15(circuitElements).source_port.list().find((e) => e.source_port_id === pcbPort?.source_port_id);
|
|
371786
371880
|
return createPinForImage({
|
|
371787
371881
|
pad,
|
|
371788
371882
|
pcbComponent,
|
|
@@ -374551,7 +374645,7 @@ __export5(dist_exports, {
|
|
|
374551
374645
|
experiment_type: () => experiment_type,
|
|
374552
374646
|
external_footprint_load_error: () => external_footprint_load_error2,
|
|
374553
374647
|
frequency: () => frequency7,
|
|
374554
|
-
getRotationBetweenPcbPin1Locations: () =>
|
|
374648
|
+
getRotationBetweenPcbPin1Locations: () => getRotationBetweenPcbPin1Locations3,
|
|
374555
374649
|
getZodPrefixedIdWithDefault: () => getZodPrefixedIdWithDefault,
|
|
374556
374650
|
inductance: () => inductance2,
|
|
374557
374651
|
insertionDirectionToCanonical: () => insertionDirectionToCanonical,
|
|
@@ -374644,7 +374738,7 @@ __export5(dist_exports, {
|
|
|
374644
374738
|
pcb_pad_trace_clearance_error: () => pcb_pad_trace_clearance_error,
|
|
374645
374739
|
pcb_panel: () => pcb_panel,
|
|
374646
374740
|
pcb_panelization_placement_error: () => pcb_panelization_placement_error,
|
|
374647
|
-
pcb_pin1_location: () =>
|
|
374741
|
+
pcb_pin1_location: () => pcb_pin1_location2,
|
|
374648
374742
|
pcb_placement_error: () => pcb_placement_error,
|
|
374649
374743
|
pcb_plated_hole: () => pcb_plated_hole,
|
|
374650
374744
|
pcb_port: () => pcb_port,
|
|
@@ -380435,7 +380529,7 @@ var insertion_direction = external_exports2.enum([
|
|
|
380435
380529
|
]).transform((value) => insertionDirectionToCanonical[value]).describe('The side exposing the receptacle where the cable or mating part is attached, following the 2D PCB diagram convention, not a 3D viewport frame. In project coordinate space, "from_top" is +Y, "from_bottom" -Y, "from_left" -X, "from_right" +X, "from_above" +Z and "from_below" -Z. A receptacle on the +Y edge is "from_top" even though the plug moves in -Y as it seats. Cartesian spellings such as "from_y_pos" are accepted and normalized to the named values, as are the deprecated "from_front" (now "from_top") and "from_back" (now "from_bottom").');
|
|
380436
380530
|
expectTypesMatch2(true);
|
|
380437
380531
|
expectTypesMatch2(true);
|
|
380438
|
-
var
|
|
380532
|
+
var pcb_pin1_location2 = external_exports2.enum([
|
|
380439
380533
|
"leftside_top",
|
|
380440
380534
|
"leftside_bottom",
|
|
380441
380535
|
"rightside_top",
|
|
@@ -380460,7 +380554,7 @@ var pin1LocationRotationCycles = [
|
|
|
380460
380554
|
"topside_left"
|
|
380461
380555
|
]
|
|
380462
380556
|
];
|
|
380463
|
-
var
|
|
380557
|
+
var getRotationBetweenPcbPin1Locations3 = (from, to) => {
|
|
380464
380558
|
for (const cycle of pin1LocationRotationCycles) {
|
|
380465
380559
|
const fromIndex = cycle.indexOf(from);
|
|
380466
380560
|
const toIndex = cycle.indexOf(to);
|
|
@@ -380528,8 +380622,8 @@ var pcb_component = external_exports2.object({
|
|
|
380528
380622
|
positioned_relative_to_pcb_board_id: external_exports2.string().optional(),
|
|
380529
380623
|
cable_insertion_center: point9.optional(),
|
|
380530
380624
|
insertion_direction: insertion_direction.optional(),
|
|
380531
|
-
pin1_location:
|
|
380532
|
-
supplier_pin1_location_map: external_exports2.record(supplier_name3,
|
|
380625
|
+
pin1_location: pcb_pin1_location2.optional().describe("Location of pin 1 on the unrotated, top-view component footprint"),
|
|
380626
|
+
supplier_pin1_location_map: external_exports2.record(supplier_name3, pcb_pin1_location2).optional().describe("Pin 1 location for each supplier's unrotated, top-view footprint"),
|
|
380533
380627
|
metadata: external_exports2.object({
|
|
380534
380628
|
kicad_footprint: kicadFootprintMetadata2.optional()
|
|
380535
380629
|
}).optional(),
|
|
@@ -389084,7 +389178,7 @@ var cju8 = (circuitJsonInput, options = {}) => {
|
|
|
389084
389178
|
return su2;
|
|
389085
389179
|
};
|
|
389086
389180
|
cju8.unparsed = cju8;
|
|
389087
|
-
var
|
|
389181
|
+
var su16 = cju8;
|
|
389088
389182
|
function createIdKey2(element) {
|
|
389089
389183
|
const type = element.type;
|
|
389090
389184
|
return `${type}:${element[`${type}_id`]}`;
|
|
@@ -392790,26 +392884,26 @@ var getLayerAttr = (layer) => layer && layer !== "top" ? ` layer="${layer}"` : "
|
|
|
392790
392884
|
var getRotationAttr = (rotation2) => rotation2 ? ` pcbRotation="${rotation2}deg"` : "";
|
|
392791
392885
|
var getStringAttr = (name, value) => value === undefined ? "" : ` ${name}=${JSON.stringify(value)}`;
|
|
392792
392886
|
var generateFootprintTsx2 = (circuitJson, options = {}) => {
|
|
392793
|
-
const holes =
|
|
392794
|
-
const platedHoles =
|
|
392795
|
-
const smtPads =
|
|
392796
|
-
const vias =
|
|
392797
|
-
const silkscreenPaths =
|
|
392798
|
-
const silkscreenCircles =
|
|
392799
|
-
const silkscreenRects =
|
|
392800
|
-
const silkscreenTexts =
|
|
392801
|
-
const fabricationNotePaths =
|
|
392802
|
-
const fabricationNoteTexts =
|
|
392803
|
-
const fabricationNoteRects =
|
|
392804
|
-
const fabricationNoteDimensions =
|
|
392805
|
-
const pcbNoteTexts =
|
|
392806
|
-
const pcbNoteRects =
|
|
392807
|
-
const pcbNotePaths =
|
|
392808
|
-
const pcbNoteLines =
|
|
392809
|
-
const pcbNoteDimensions =
|
|
392810
|
-
const courtyardOutlines =
|
|
392887
|
+
const holes = su16(circuitJson).pcb_hole.list();
|
|
392888
|
+
const platedHoles = su16(circuitJson).pcb_plated_hole.list();
|
|
392889
|
+
const smtPads = su16(circuitJson).pcb_smtpad.list();
|
|
392890
|
+
const vias = su16(circuitJson).pcb_via.list();
|
|
392891
|
+
const silkscreenPaths = su16(circuitJson).pcb_silkscreen_path.list();
|
|
392892
|
+
const silkscreenCircles = su16(circuitJson).pcb_silkscreen_circle.list();
|
|
392893
|
+
const silkscreenRects = su16(circuitJson).pcb_silkscreen_rect.list();
|
|
392894
|
+
const silkscreenTexts = su16(circuitJson).pcb_silkscreen_text.list();
|
|
392895
|
+
const fabricationNotePaths = su16(circuitJson).pcb_fabrication_note_path.list();
|
|
392896
|
+
const fabricationNoteTexts = su16(circuitJson).pcb_fabrication_note_text.list();
|
|
392897
|
+
const fabricationNoteRects = su16(circuitJson).pcb_fabrication_note_rect.list();
|
|
392898
|
+
const fabricationNoteDimensions = su16(circuitJson).pcb_fabrication_note_dimension.list();
|
|
392899
|
+
const pcbNoteTexts = su16(circuitJson).pcb_note_text.list();
|
|
392900
|
+
const pcbNoteRects = su16(circuitJson).pcb_note_rect.list();
|
|
392901
|
+
const pcbNotePaths = su16(circuitJson).pcb_note_path.list();
|
|
392902
|
+
const pcbNoteLines = su16(circuitJson).pcb_note_line.list();
|
|
392903
|
+
const pcbNoteDimensions = su16(circuitJson).pcb_note_dimension.list();
|
|
392904
|
+
const courtyardOutlines = su16(circuitJson).pcb_courtyard_outline.list();
|
|
392811
392905
|
const elementStrings = [];
|
|
392812
|
-
for (const cutout of
|
|
392906
|
+
for (const cutout of su16(circuitJson).pcb_cutout.list()) {
|
|
392813
392907
|
if (cutout.shape === "polygon") {
|
|
392814
392908
|
elementStrings.push(`<cutout shape="polygon" points={${JSON.stringify(cutout.points)}} />`);
|
|
392815
392909
|
}
|
|
@@ -393524,7 +393618,7 @@ var convertBetterEasyToTsx = async ({
|
|
|
393524
393618
|
cadModelBounds: cadPlacement?.bounds,
|
|
393525
393619
|
showDesignator: true
|
|
393526
393620
|
});
|
|
393527
|
-
const [cadComponent] =
|
|
393621
|
+
const [cadComponent] = su16(circuitJson).cad_component.list();
|
|
393528
393622
|
if (cadComponent) {
|
|
393529
393623
|
cadComponent.position.x = 0;
|
|
393530
393624
|
cadComponent.position.y = 0;
|
|
@@ -393534,7 +393628,7 @@ var convertBetterEasyToTsx = async ({
|
|
|
393534
393628
|
throw new Error(`Missing manufacturer part number for ${betterEasy.lcsc.number}`);
|
|
393535
393629
|
}
|
|
393536
393630
|
const componentName = normalizeManufacturerPartNumber(manufacturerPartNumber);
|
|
393537
|
-
const sourcePorts =
|
|
393631
|
+
const sourcePorts = su16(circuitJson).source_port.list();
|
|
393538
393632
|
const hiddenSchematicPinNumbers = new Set(betterEasy.dataStr.shape.flatMap((shape) => shape.type === "PIN" && shape.visibility !== "show" ? [String(shape.pinNumber)] : []));
|
|
393539
393633
|
const pinLabels = {};
|
|
393540
393634
|
const sortedPorts = sourcePorts.sort((a, b) => {
|
|
@@ -394037,7 +394131,7 @@ __export6(dist_exports2, {
|
|
|
394037
394131
|
experiment_type: () => experiment_type2,
|
|
394038
394132
|
external_footprint_load_error: () => external_footprint_load_error3,
|
|
394039
394133
|
frequency: () => frequency8,
|
|
394040
|
-
getRotationBetweenPcbPin1Locations: () =>
|
|
394134
|
+
getRotationBetweenPcbPin1Locations: () => getRotationBetweenPcbPin1Locations4,
|
|
394041
394135
|
getZodPrefixedIdWithDefault: () => getZodPrefixedIdWithDefault2,
|
|
394042
394136
|
inductance: () => inductance3,
|
|
394043
394137
|
insertionDirectionToCanonical: () => insertionDirectionToCanonical2,
|
|
@@ -394130,7 +394224,7 @@ __export6(dist_exports2, {
|
|
|
394130
394224
|
pcb_pad_trace_clearance_error: () => pcb_pad_trace_clearance_error2,
|
|
394131
394225
|
pcb_panel: () => pcb_panel2,
|
|
394132
394226
|
pcb_panelization_placement_error: () => pcb_panelization_placement_error2,
|
|
394133
|
-
pcb_pin1_location: () =>
|
|
394227
|
+
pcb_pin1_location: () => pcb_pin1_location3,
|
|
394134
394228
|
pcb_placement_error: () => pcb_placement_error2,
|
|
394135
394229
|
pcb_plated_hole: () => pcb_plated_hole2,
|
|
394136
394230
|
pcb_port: () => pcb_port2,
|
|
@@ -395999,7 +396093,7 @@ var insertion_direction2 = z105.enum([
|
|
|
395999
396093
|
]).transform((value) => insertionDirectionToCanonical2[value]).describe('The side exposing the receptacle where the cable or mating part is attached, following the 2D PCB diagram convention, not a 3D viewport frame. In project coordinate space, "from_top" is +Y, "from_bottom" -Y, "from_left" -X, "from_right" +X, "from_above" +Z and "from_below" -Z. A receptacle on the +Y edge is "from_top" even though the plug moves in -Y as it seats. Cartesian spellings such as "from_y_pos" are accepted and normalized to the named values, as are the deprecated "from_front" (now "from_top") and "from_back" (now "from_bottom").');
|
|
396000
396094
|
expectTypesMatch3(true);
|
|
396001
396095
|
expectTypesMatch3(true);
|
|
396002
|
-
var
|
|
396096
|
+
var pcb_pin1_location3 = z106.enum([
|
|
396003
396097
|
"leftside_top",
|
|
396004
396098
|
"leftside_bottom",
|
|
396005
396099
|
"rightside_top",
|
|
@@ -396024,7 +396118,7 @@ var pin1LocationRotationCycles2 = [
|
|
|
396024
396118
|
"topside_left"
|
|
396025
396119
|
]
|
|
396026
396120
|
];
|
|
396027
|
-
var
|
|
396121
|
+
var getRotationBetweenPcbPin1Locations4 = (from, to) => {
|
|
396028
396122
|
for (const cycle of pin1LocationRotationCycles2) {
|
|
396029
396123
|
const fromIndex = cycle.indexOf(from);
|
|
396030
396124
|
const toIndex = cycle.indexOf(to);
|
|
@@ -396092,8 +396186,8 @@ var pcb_component2 = z110.object({
|
|
|
396092
396186
|
positioned_relative_to_pcb_board_id: z110.string().optional(),
|
|
396093
396187
|
cable_insertion_center: point10.optional(),
|
|
396094
396188
|
insertion_direction: insertion_direction2.optional(),
|
|
396095
|
-
pin1_location:
|
|
396096
|
-
supplier_pin1_location_map: z110.record(supplier_name4,
|
|
396189
|
+
pin1_location: pcb_pin1_location3.optional().describe("Location of pin 1 on the unrotated, top-view component footprint"),
|
|
396190
|
+
supplier_pin1_location_map: z110.record(supplier_name4, pcb_pin1_location3).optional().describe("Pin 1 location for each supplier's unrotated, top-view footprint"),
|
|
396097
396191
|
metadata: z110.object({
|
|
396098
396192
|
kicad_footprint: kicadFootprintMetadata3.optional()
|
|
396099
396193
|
}).optional(),
|
|
@@ -35230,6 +35230,7 @@ function getPlatformConfigWithCliDefaults(userConfig, options) {
|
|
|
35230
35230
|
const cacheDir = path8.join(projectDir, ".tscircuit", "cache");
|
|
35231
35231
|
const defaultConfig = {
|
|
35232
35232
|
...basePlatformConfig,
|
|
35233
|
+
checkAvailability: true,
|
|
35233
35234
|
localCacheEngine: createLocalCacheEngine(cacheDir),
|
|
35234
35235
|
footprintFileParserMap: {
|
|
35235
35236
|
...basePlatformConfig.footprintFileParserMap,
|
package/dist/lib/index.js
CHANGED
|
@@ -69109,7 +69109,7 @@ var getNodeHandler = (winterSpec, { port, middleware = [] }) => {
|
|
|
69109
69109
|
}));
|
|
69110
69110
|
};
|
|
69111
69111
|
// package.json
|
|
69112
|
-
var version = "0.1.
|
|
69112
|
+
var version = "0.1.2253";
|
|
69113
69113
|
var package_default = {
|
|
69114
69114
|
name: "@tscircuit/cli",
|
|
69115
69115
|
version,
|
|
@@ -69129,15 +69129,16 @@ var package_default = {
|
|
|
69129
69129
|
"@tscircuit/circuit-json-placement-analysis": "^0.0.15",
|
|
69130
69130
|
"@tscircuit/circuit-json-routing-analysis": "^0.0.8",
|
|
69131
69131
|
"@tscircuit/circuit-json-schematic-placement-analysis": "https://jscdn.tscircuit.com/@tscircuit/circuit-json-schematic-placement-analysis/0.0.33.tgz",
|
|
69132
|
-
"@tscircuit/circuit-json-util": "^0.0.
|
|
69133
|
-
"@tscircuit/eval": "0.0.
|
|
69132
|
+
"@tscircuit/circuit-json-util": "^0.0.120",
|
|
69133
|
+
"@tscircuit/eval": "0.0.1569",
|
|
69134
69134
|
"@tscircuit/fake-snippets": "^0.0.182",
|
|
69135
69135
|
"@tscircuit/file-server": "^0.0.32",
|
|
69136
69136
|
"@tscircuit/footprinter": "^0.0.430",
|
|
69137
69137
|
"@tscircuit/image-utils": "^0.0.8",
|
|
69138
69138
|
"@tscircuit/krt-wasm": "^0.1.6",
|
|
69139
69139
|
"@tscircuit/math-utils": "0.0.36",
|
|
69140
|
-
"@tscircuit/
|
|
69140
|
+
"@tscircuit/modelprinter": "^0.0.11",
|
|
69141
|
+
"@tscircuit/props": "^0.0.694",
|
|
69141
69142
|
"@tscircuit/runframe": "^0.0.2915",
|
|
69142
69143
|
"@tscircuit/schematic-match-adapt": "^0.0.22",
|
|
69143
69144
|
"@tscircuit/schematic-trace-solver": "^0.0.204",
|
|
@@ -69153,7 +69154,7 @@ var package_default = {
|
|
|
69153
69154
|
"@types/semver": "^7.5.8",
|
|
69154
69155
|
"bun-match-svg": "^0.0.12",
|
|
69155
69156
|
chokidar: "4.0.1",
|
|
69156
|
-
"circuit-json": "^0.0.
|
|
69157
|
+
"circuit-json": "^0.0.520",
|
|
69157
69158
|
"circuit-json-to-3d-png": "^0.0.6",
|
|
69158
69159
|
"circuit-json-to-altium": "github:tscircuit/circuit-json-to-altium#1a50d0dd2c0737cf940d92c0315852dc0111dd87",
|
|
69159
69160
|
"circuit-json-to-bom-csv": "^0.0.19",
|
|
@@ -69211,7 +69212,7 @@ var package_default = {
|
|
|
69211
69212
|
zod: "^3.23.8"
|
|
69212
69213
|
},
|
|
69213
69214
|
peerDependencies: {
|
|
69214
|
-
"circuit-json": "^0.0.
|
|
69215
|
+
"circuit-json": "^0.0.520",
|
|
69215
69216
|
tscircuit: "*"
|
|
69216
69217
|
},
|
|
69217
69218
|
bin: {
|
|
@@ -69228,9 +69229,10 @@ var package_default = {
|
|
|
69228
69229
|
}
|
|
69229
69230
|
},
|
|
69230
69231
|
overrides: {
|
|
69231
|
-
"circuit-json": "^0.0.
|
|
69232
|
+
"circuit-json": "^0.0.520",
|
|
69232
69233
|
altiumts: "0.0.59",
|
|
69233
|
-
poppygl: "0.0.34"
|
|
69234
|
+
poppygl: "0.0.34",
|
|
69235
|
+
"@tscircuit/core": "^0.0.2104"
|
|
69234
69236
|
},
|
|
69235
69237
|
scripts: {
|
|
69236
69238
|
start: "bun run dev",
|
|
@@ -70278,6 +70280,7 @@ function getPlatformConfigWithCliDefaults(userConfig, options) {
|
|
|
70278
70280
|
const cacheDir = path.join(projectDir, ".tscircuit", "cache");
|
|
70279
70281
|
const defaultConfig = {
|
|
70280
70282
|
...basePlatformConfig,
|
|
70283
|
+
checkAvailability: true,
|
|
70281
70284
|
localCacheEngine: createLocalCacheEngine(cacheDir),
|
|
70282
70285
|
footprintFileParserMap: {
|
|
70283
70286
|
...basePlatformConfig.footprintFileParserMap,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tscircuit/cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2254",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/tscircuit/cli"
|
|
@@ -17,15 +17,16 @@
|
|
|
17
17
|
"@tscircuit/circuit-json-placement-analysis": "^0.0.15",
|
|
18
18
|
"@tscircuit/circuit-json-routing-analysis": "^0.0.8",
|
|
19
19
|
"@tscircuit/circuit-json-schematic-placement-analysis": "https://jscdn.tscircuit.com/@tscircuit/circuit-json-schematic-placement-analysis/0.0.33.tgz",
|
|
20
|
-
"@tscircuit/circuit-json-util": "^0.0.
|
|
21
|
-
"@tscircuit/eval": "0.0.
|
|
20
|
+
"@tscircuit/circuit-json-util": "^0.0.120",
|
|
21
|
+
"@tscircuit/eval": "0.0.1569",
|
|
22
22
|
"@tscircuit/fake-snippets": "^0.0.182",
|
|
23
23
|
"@tscircuit/file-server": "^0.0.32",
|
|
24
24
|
"@tscircuit/footprinter": "^0.0.430",
|
|
25
25
|
"@tscircuit/image-utils": "^0.0.8",
|
|
26
26
|
"@tscircuit/krt-wasm": "^0.1.6",
|
|
27
27
|
"@tscircuit/math-utils": "0.0.36",
|
|
28
|
-
"@tscircuit/
|
|
28
|
+
"@tscircuit/modelprinter": "^0.0.11",
|
|
29
|
+
"@tscircuit/props": "^0.0.694",
|
|
29
30
|
"@tscircuit/runframe": "^0.0.2915",
|
|
30
31
|
"@tscircuit/schematic-match-adapt": "^0.0.22",
|
|
31
32
|
"@tscircuit/schematic-trace-solver": "^0.0.204",
|
|
@@ -41,7 +42,7 @@
|
|
|
41
42
|
"@types/semver": "^7.5.8",
|
|
42
43
|
"bun-match-svg": "^0.0.12",
|
|
43
44
|
"chokidar": "4.0.1",
|
|
44
|
-
"circuit-json": "^0.0.
|
|
45
|
+
"circuit-json": "^0.0.520",
|
|
45
46
|
"circuit-json-to-3d-png": "^0.0.6",
|
|
46
47
|
"circuit-json-to-altium": "github:tscircuit/circuit-json-to-altium#1a50d0dd2c0737cf940d92c0315852dc0111dd87",
|
|
47
48
|
"circuit-json-to-bom-csv": "^0.0.19",
|
|
@@ -99,7 +100,7 @@
|
|
|
99
100
|
"zod": "^3.23.8"
|
|
100
101
|
},
|
|
101
102
|
"peerDependencies": {
|
|
102
|
-
"circuit-json": "^0.0.
|
|
103
|
+
"circuit-json": "^0.0.520",
|
|
103
104
|
"tscircuit": "*"
|
|
104
105
|
},
|
|
105
106
|
"bin": {
|
|
@@ -116,9 +117,10 @@
|
|
|
116
117
|
}
|
|
117
118
|
},
|
|
118
119
|
"overrides": {
|
|
119
|
-
"circuit-json": "^0.0.
|
|
120
|
+
"circuit-json": "^0.0.520",
|
|
120
121
|
"altiumts": "0.0.59",
|
|
121
|
-
"poppygl": "0.0.34"
|
|
122
|
+
"poppygl": "0.0.34",
|
|
123
|
+
"@tscircuit/core": "^0.0.2104"
|
|
122
124
|
},
|
|
123
125
|
"scripts": {
|
|
124
126
|
"start": "bun run dev",
|