@tscircuit/cli 0.1.1956 → 0.1.1957

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/main.js CHANGED
@@ -136044,7 +136044,7 @@ var import_perfect_cli = __toESM2(require_dist2(), 1);
136044
136044
  // lib/getVersion.ts
136045
136045
  import { createRequire as createRequire2 } from "node:module";
136046
136046
  // package.json
136047
- var version = "0.1.1955";
136047
+ var version = "0.1.1956";
136048
136048
  var package_default = {
136049
136049
  name: "@tscircuit/cli",
136050
136050
  version,
@@ -303593,6 +303593,7 @@ var registerCheckSchematicPlacement = (program2) => {
303593
303593
  // cli/check/shorts/register.ts
303594
303594
  import { mkdir, writeFile } from "node:fs/promises";
303595
303595
  import path49 from "node:path";
303596
+ import { all_layers as all_layers2, layer_string } from "circuit-json";
303596
303597
 
303597
303598
  // cli/check/shorts/get-check-short-layers.ts
303598
303599
  var innerCopperLayers = [
@@ -303609,12 +303610,16 @@ var getCheckShortLayers = ({
303609
303610
  circuitJson,
303610
303611
  layerOption
303611
303612
  }) => {
303612
- if (layerOption !== "all")
303613
- return [layerOption];
303614
303613
  const pcbBoard = circuitJson.find((element) => element.type === "pcb_board");
303615
303614
  const boardLayerCount = pcbBoard?.type === "pcb_board" ? pcbBoard.num_layers : 2;
303616
303615
  const innerLayerCount = Math.max(0, Math.floor(boardLayerCount) - 2);
303617
- return ["top", ...innerCopperLayers.slice(0, innerLayerCount), "bottom"];
303616
+ const availableLayers = boardLayerCount <= 1 ? ["top"] : ["top", ...innerCopperLayers.slice(0, innerLayerCount), "bottom"];
303617
+ if (layerOption === "all")
303618
+ return availableLayers;
303619
+ if (!availableLayers.includes(layerOption)) {
303620
+ throw new Error(`--layer ${layerOption} is not available on this ${boardLayerCount}-layer board; available layers: ${availableLayers.join(", ")}`);
303621
+ }
303622
+ return [layerOption];
303618
303623
  };
303619
303624
 
303620
303625
  // cli/check/shorts/register.ts
@@ -303652,12 +303657,16 @@ var parseMode = (mode) => {
303652
303657
  return mode;
303653
303658
  throw new Error("--mode must be either pcb or gerber");
303654
303659
  };
303660
+ var checkShortsLayerNames = [...all_layers2, "all"].join(", ");
303655
303661
  var parseLayer = (layer) => {
303656
303662
  if (!layer)
303657
303663
  return "all";
303658
- if (layer === "top" || layer === "bottom" || layer === "all")
303664
+ if (layer === "all")
303659
303665
  return layer;
303660
- throw new Error("--layer must be top, bottom, or all");
303666
+ const parsedLayer = layer_string.safeParse(layer);
303667
+ if (parsedLayer.success)
303668
+ return parsedLayer.data;
303669
+ throw new Error(`--layer must be one of: ${checkShortsLayerNames}`);
303661
303670
  };
303662
303671
  var formatLabels = (labels) => labels.length > 0 ? labels.join(", ") : "(unknown)";
303663
303672
  var formatShort = (short, index) => {
@@ -303729,7 +303738,7 @@ var checkShorts = async (file, options = {}) => {
303729
303738
  };
303730
303739
  };
303731
303740
  var registerCheckShorts = (program2) => {
303732
- program2.commands.find((c3) => c3.name() === "check").command("shorts").description("Detect unintended shorts between separate PCB copper groups").argument("[file]", "Path to the entry file or prebuilt circuit JSON").option("--mode <mode>", "Bitmap source to analyze: pcb or gerber", "gerber").option("--layer <layer>", "Layer to analyze: top, bottom, or all", "all").option("--pixels-per-mm <number>", "Bitmap resolution for short detection").action(async (file, options) => {
303741
+ program2.commands.find((c3) => c3.name() === "check").command("shorts").description("Detect unintended shorts between separate PCB copper groups").argument("[file]", "Path to the entry file or prebuilt circuit JSON").option("--mode <mode>", "Bitmap source to analyze: pcb or gerber", "gerber").option("--layer <layer>", `Layer to analyze: ${checkShortsLayerNames}`, "all").option("--pixels-per-mm <number>", "Bitmap resolution for short detection").action(async (file, options) => {
303733
303742
  try {
303734
303743
  const result = await checkShorts(file, options);
303735
303744
  console.log(result.output);
@@ -317845,7 +317854,7 @@ var __export4 = (target, all) => {
317845
317854
  };
317846
317855
  var dist_exports = {};
317847
317856
  __export4(dist_exports, {
317848
- all_layers: () => all_layers2,
317857
+ all_layers: () => all_layers3,
317849
317858
  any_circuit_element: () => any_circuit_element,
317850
317859
  any_soup_element: () => any_soup_element4,
317851
317860
  any_source_component: () => any_source_component,
@@ -317883,7 +317892,7 @@ __export4(dist_exports, {
317883
317892
  kicadSymbolProperties: () => kicadSymbolProperties2,
317884
317893
  kicadSymbolProperty: () => kicadSymbolProperty2,
317885
317894
  layer_ref: () => layer_ref2,
317886
- layer_string: () => layer_string,
317895
+ layer_string: () => layer_string2,
317887
317896
  length: () => length67,
317888
317897
  manufacturing_drc_properties: () => manufacturing_drc_properties,
317889
317898
  ms: () => ms6,
@@ -322984,7 +322993,7 @@ var source_pcb_ground_plane = external_exports2.object({
322984
322993
  subcircuit_id: external_exports2.string().optional()
322985
322994
  }).describe("Defines a ground plane in the source domain");
322986
322995
  expectTypesMatch2(true);
322987
- var all_layers2 = [
322996
+ var all_layers3 = [
322988
322997
  "top",
322989
322998
  "bottom",
322990
322999
  "inner1",
@@ -322994,9 +323003,9 @@ var all_layers2 = [
322994
323003
  "inner5",
322995
323004
  "inner6"
322996
323005
  ];
322997
- var layer_string = external_exports2.enum(all_layers2);
322998
- var layer_ref2 = layer_string.or(external_exports2.object({
322999
- name: layer_string
323006
+ var layer_string2 = external_exports2.enum(all_layers3);
323007
+ var layer_ref2 = layer_string2.or(external_exports2.object({
323008
+ name: layer_string2
323000
323009
  })).transform((layer) => {
323001
323010
  if (typeof layer === "string") {
323002
323011
  return layer;
@@ -329951,7 +329960,7 @@ var __export5 = (target, all) => {
329951
329960
  };
329952
329961
  var dist_exports2 = {};
329953
329962
  __export5(dist_exports2, {
329954
- all_layers: () => all_layers3,
329963
+ all_layers: () => all_layers4,
329955
329964
  any_circuit_element: () => any_circuit_element2,
329956
329965
  any_soup_element: () => any_soup_element5,
329957
329966
  any_source_component: () => any_source_component2,
@@ -329989,7 +329998,7 @@ __export5(dist_exports2, {
329989
329998
  kicadSymbolProperties: () => kicadSymbolProperties3,
329990
329999
  kicadSymbolProperty: () => kicadSymbolProperty3,
329991
330000
  layer_ref: () => layer_ref3,
329992
- layer_string: () => layer_string2,
330001
+ layer_string: () => layer_string3,
329993
330002
  length: () => length69,
329994
330003
  manufacturing_drc_properties: () => manufacturing_drc_properties2,
329995
330004
  ms: () => ms7,
@@ -331168,7 +331177,7 @@ var source_pcb_ground_plane2 = z622.object({
331168
331177
  subcircuit_id: z622.string().optional()
331169
331178
  }).describe("Defines a ground plane in the source domain");
331170
331179
  expectTypesMatch3(true);
331171
- var all_layers3 = [
331180
+ var all_layers4 = [
331172
331181
  "top",
331173
331182
  "bottom",
331174
331183
  "inner1",
@@ -331178,9 +331187,9 @@ var all_layers3 = [
331178
331187
  "inner5",
331179
331188
  "inner6"
331180
331189
  ];
331181
- var layer_string2 = z632.enum(all_layers3);
331182
- var layer_ref3 = layer_string2.or(z632.object({
331183
- name: layer_string2
331190
+ var layer_string3 = z632.enum(all_layers4);
331191
+ var layer_ref3 = layer_string3.or(z632.object({
331192
+ name: layer_string3
331184
331193
  })).transform((layer) => {
331185
331194
  if (typeof layer === "string") {
331186
331195
  return layer;
package/dist/lib/index.js CHANGED
@@ -65757,7 +65757,7 @@ var getNodeHandler = (winterSpec, { port, middleware = [] }) => {
65757
65757
  }));
65758
65758
  };
65759
65759
  // package.json
65760
- var version = "0.1.1955";
65760
+ var version = "0.1.1956";
65761
65761
  var package_default = {
65762
65762
  name: "@tscircuit/cli",
65763
65763
  version,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tscircuit/cli",
3
- "version": "0.1.1956",
3
+ "version": "0.1.1957",
4
4
  "main": "dist/cli/main.js",
5
5
  "exports": {
6
6
  ".": "./dist/cli/main.js",