@tscircuit/footprinter 0.0.175 → 0.0.177

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.js CHANGED
@@ -28,6 +28,7 @@ __export(fn_exports, {
28
28
  msop: () => msop,
29
29
  pad: () => pad,
30
30
  pinrow: () => pinrow,
31
+ platedhole: () => platedhole3,
31
32
  potentiometer: () => potentiometer,
32
33
  pushbutton: () => pushbutton,
33
34
  qfn: () => qfn,
@@ -4069,12 +4070,12 @@ var sot89_3 = (parameters) => {
4069
4070
  const pads = [];
4070
4071
  const padGap = Number.parseFloat(parameters.p);
4071
4072
  const padWidth = Number.parseFloat(parameters.pw);
4072
- const length45 = Number.parseFloat(parameters.w);
4073
+ const length46 = Number.parseFloat(parameters.w);
4073
4074
  const padHeight = Number.parseFloat(parameters.pl);
4074
4075
  pads.push(
4075
- rectpad(1, -length45 / 2, padGap, padHeight, padWidth),
4076
- rectpad(2, -length45 / 2 + (1.5 - 1.3) / 2, 0, 1.5, padWidth),
4077
- rectpad(3, -length45 / 2, -padGap, padHeight, padWidth)
4076
+ rectpad(1, -length46 / 2, padGap, padHeight, padWidth),
4077
+ rectpad(2, -length46 / 2 + (1.5 - 1.3) / 2, 0, 1.5, padWidth),
4078
+ rectpad(3, -length46 / 2, -padGap, padHeight, padWidth)
4078
4079
  );
4079
4080
  const silkscreenRefText = silkscreenRef(0, 0, 0.3);
4080
4081
  const width = Number.parseFloat(parameters.w) / 2 - 1;
@@ -4114,7 +4115,7 @@ var sot89_5 = (parameters) => {
4114
4115
  const pads = [];
4115
4116
  const padGap = Number.parseFloat(parameters.p);
4116
4117
  const padWidth = Number.parseFloat(parameters.pw);
4117
- const length45 = Number.parseFloat(parameters.w);
4118
+ const length46 = Number.parseFloat(parameters.w);
4118
4119
  pads.push(
4119
4120
  rectpad(1, -1.85, -1.5, 1.5, 0.7),
4120
4121
  rectpad(2, -1.85, 1.5, 1.5, 0.7),
@@ -5884,7 +5885,7 @@ import { z as z52 } from "zod";
5884
5885
  import { length as length41 } from "circuit-json";
5885
5886
  var son_def = z52.object({
5886
5887
  fn: z52.string(),
5887
- num_pins: z52.literal(8).default(8),
5888
+ num_pins: z52.union([z52.literal(6), z52.literal(8)]).default(8),
5888
5889
  w: z52.string().default("3mm"),
5889
5890
  h: z52.string().default("3mm"),
5890
5891
  p: z52.string().default("0.5mm"),
@@ -5899,7 +5900,12 @@ var son = (raw_params) => {
5899
5900
  if (raw_params.string && raw_params.string.includes("_ep")) {
5900
5901
  raw_params.ep = true;
5901
5902
  }
5902
- const parameters = son_def.parse(raw_params);
5903
+ const match = raw_params.string?.match(/^son_(\d+)/);
5904
+ const numPins = match ? Number.parseInt(match[1], 10) : raw_params.num_pins || 8;
5905
+ const parameters = son_def.parse({
5906
+ ...raw_params,
5907
+ num_pins: numPins
5908
+ });
5903
5909
  const w = length41.parse(parameters.w);
5904
5910
  const h = length41.parse(parameters.h);
5905
5911
  const p = length41.parse(parameters.p);
@@ -6636,6 +6642,55 @@ var sot323_3 = (parameters) => {
6636
6642
  ];
6637
6643
  };
6638
6644
 
6645
+ // src/fn/platedhole.ts
6646
+ import { z as z58 } from "zod";
6647
+ import { length as length45 } from "circuit-json";
6648
+ import { mm as mm6 } from "@tscircuit/mm";
6649
+ var platedhole_def = z58.object({
6650
+ fn: z58.string(),
6651
+ d: length45.optional(),
6652
+ hd: length45.optional(),
6653
+ r: length45.optional(),
6654
+ hr: length45.optional(),
6655
+ pd: length45.optional(),
6656
+ pr: length45.optional()
6657
+ }).transform((v) => {
6658
+ let holeD;
6659
+ if (v.d !== void 0)
6660
+ holeD = mm6(v.d);
6661
+ else if (v.hd !== void 0)
6662
+ holeD = mm6(v.hd);
6663
+ else if (v.r !== void 0)
6664
+ holeD = mm6(v.r) * 2;
6665
+ else if (v.hr !== void 0)
6666
+ holeD = mm6(v.hr) * 2;
6667
+ else
6668
+ holeD = mm6("1mm");
6669
+ let padD;
6670
+ if (v.pd !== void 0)
6671
+ padD = mm6(v.pd);
6672
+ else if (v.pr !== void 0)
6673
+ padD = mm6(v.pr) * 2;
6674
+ else
6675
+ padD = holeD * (1.5 / 1);
6676
+ return {
6677
+ fn: v.fn,
6678
+ d: holeD,
6679
+ pd: padD
6680
+ };
6681
+ });
6682
+ var platedhole3 = (raw_params) => {
6683
+ const params = platedhole_def.parse(raw_params);
6684
+ const { d, pd } = params;
6685
+ return {
6686
+ circuitJson: [
6687
+ platedhole(1, 0, 0, d, pd),
6688
+ silkscreenRef(0, pd / 2 + 0.5, 0.2)
6689
+ ],
6690
+ parameters: params
6691
+ };
6692
+ };
6693
+
6639
6694
  // src/helpers/is-not-null.ts
6640
6695
  function isNotNull(value) {
6641
6696
  return value !== null;