@tscircuit/footprinter 0.0.138 → 0.0.140

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
@@ -358,6 +358,7 @@ declare const any_footprinter_def: z.ZodUnion<[z.ZodObject<{
358
358
  }>, z.ZodEffects<z.ZodEffects<z.ZodObject<{
359
359
  fn: z.ZodString;
360
360
  num_pins: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
361
+ rows: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>>;
361
362
  p: z.ZodDefault<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
362
363
  id: z.ZodDefault<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
363
364
  od: z.ZodDefault<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
@@ -369,6 +370,7 @@ declare const any_footprinter_def: z.ZodUnion<[z.ZodObject<{
369
370
  p: number;
370
371
  id: number;
371
372
  od: number;
373
+ rows: number;
372
374
  male?: boolean | undefined;
373
375
  female?: boolean | undefined;
374
376
  }, {
@@ -377,6 +379,7 @@ declare const any_footprinter_def: z.ZodUnion<[z.ZodObject<{
377
379
  p?: string | number | undefined;
378
380
  id?: string | number | undefined;
379
381
  od?: string | number | undefined;
382
+ rows?: string | number | undefined;
380
383
  male?: boolean | undefined;
381
384
  female?: boolean | undefined;
382
385
  }>, {
@@ -387,12 +390,14 @@ declare const any_footprinter_def: z.ZodUnion<[z.ZodObject<{
387
390
  p: number;
388
391
  id: number;
389
392
  od: number;
393
+ rows: number;
390
394
  }, {
391
395
  fn: string;
392
396
  num_pins?: number | undefined;
393
397
  p?: string | number | undefined;
394
398
  id?: string | number | undefined;
395
399
  od?: string | number | undefined;
400
+ rows?: string | number | undefined;
396
401
  male?: boolean | undefined;
397
402
  female?: boolean | undefined;
398
403
  }>, {
@@ -403,12 +408,14 @@ declare const any_footprinter_def: z.ZodUnion<[z.ZodObject<{
403
408
  p: number;
404
409
  id: number;
405
410
  od: number;
411
+ rows: number;
406
412
  }, {
407
413
  fn: string;
408
414
  num_pins?: number | undefined;
409
415
  p?: string | number | undefined;
410
416
  id?: string | number | undefined;
411
417
  od?: string | number | undefined;
418
+ rows?: string | number | undefined;
412
419
  male?: boolean | undefined;
413
420
  female?: boolean | undefined;
414
421
  }>, z.ZodEffects<z.ZodObject<z.objectUtil.extendShape<{
@@ -1000,7 +1007,7 @@ type Footprinter = {
1000
1007
  ssop: (num_pins?: number) => FootprinterParamsBuilder<"w" | "p">;
1001
1008
  tssop: (num_pins?: number) => FootprinterParamsBuilder<"w" | "p">;
1002
1009
  dfn: (num_pins?: number) => FootprinterParamsBuilder<"w" | "p">;
1003
- pinrow: (num_pins?: number) => FootprinterParamsBuilder<"p" | "id" | "od" | "male" | "female">;
1010
+ pinrow: (num_pins?: number) => FootprinterParamsBuilder<"p" | "id" | "od" | "male" | "female" | "rows">;
1004
1011
  axial: () => FootprinterParamsBuilder<"p" | "id" | "od">;
1005
1012
  hc49: () => FootprinterParamsBuilder<"p" | "id" | "od" | "w" | "h">;
1006
1013
  to220: () => FootprinterParamsBuilder<"w" | "h" | "p" | "id" | "od">;
@@ -1008,7 +1015,7 @@ type Footprinter = {
1008
1015
  sot563: () => FootprinterParamsBuilder<"w" | "p" | "pl" | "pw">;
1009
1016
  sot723: () => FootprinterParamsBuilder<"w" | "h" | "pl" | "pw">;
1010
1017
  sot23: () => FootprinterParamsBuilder<"w" | "h" | "pl" | "pw">;
1011
- sot89: () => FootprinterParamsBuilder<"w" | "p" | "pl">;
1018
+ sot89: () => FootprinterParamsBuilder<"w" | "p" | "pl" | "pw" | "h">;
1012
1019
  smc: () => FootprinterParamsBuilder<"w" | "h" | "p" | "pw" | "pl">;
1013
1020
  minimelf: () => FootprinterParamsBuilder<"w" | "h" | "p" | "pw" | "pl">;
1014
1021
  melf: () => FootprinterParamsBuilder<"w" | "h" | "p" | "pw" | "pl">;
package/dist/index.js CHANGED
@@ -52,6 +52,7 @@ __export(fn_exports, {
52
52
  sot363: () => sot363,
53
53
  sot563: () => sot563,
54
54
  sot723: () => sot723,
55
+ sot89: () => sot89,
55
56
  ssop: () => ssop,
56
57
  stampboard: () => stampboard,
57
58
  stampreceiver: () => stampreceiver,
@@ -1436,6 +1437,7 @@ import { length as length5 } from "circuit-json";
1436
1437
  var pinrow_def = z11.object({
1437
1438
  fn: z11.string(),
1438
1439
  num_pins: z11.number().optional().default(6),
1440
+ rows: z11.union([z11.string(), z11.number()]).transform((val) => Number(val)).optional().default(1).describe("number of rows"),
1439
1441
  p: length5.default("0.1in").describe("pitch"),
1440
1442
  id: length5.default("1.0mm").describe("inner diameter"),
1441
1443
  od: length5.default("1.5mm").describe("outer diameter"),
@@ -1444,29 +1446,56 @@ var pinrow_def = z11.object({
1444
1446
  }).transform((data) => ({
1445
1447
  ...data,
1446
1448
  male: data.male ?? (data.female ? false : true),
1447
- // Auto-set male if not explicitly provided
1448
1449
  female: data.female ?? false
1449
- // Default female to false if not provided
1450
1450
  })).superRefine((data, ctx) => {
1451
1451
  if (data.male && data.female) {
1452
1452
  ctx.addIssue({
1453
1453
  code: z11.ZodIssueCode.custom,
1454
- message: "'male' and 'female' cannot both be true it should be male or female.",
1455
- //Error message if male and female are both true
1454
+ message: "'male' and 'female' cannot both be true; it should be male or female.",
1456
1455
  path: ["male", "female"]
1457
1456
  });
1458
1457
  }
1459
1458
  });
1460
1459
  var pinrow = (raw_params) => {
1461
1460
  const parameters = pinrow_def.parse(raw_params);
1462
- const { p, id, od } = parameters;
1461
+ const { p, id, od, rows } = parameters;
1463
1462
  const holes = [];
1464
- const ns = parameters.num_pins - 1;
1465
- const xoff = -(ns / 2) * p;
1466
- for (let i = 0; i < parameters.num_pins; i++) {
1467
- holes.push(platedhole(i + 1, xoff + i * p, 0, id, od));
1463
+ const num_pins = parameters.num_pins;
1464
+ if (rows > 1) {
1465
+ const num_pins_per_row = Math.ceil(num_pins / rows);
1466
+ const ySpacing = p;
1467
+ for (let row = 0; row < rows; row++) {
1468
+ const yoff = row * ySpacing;
1469
+ const startPin = row * num_pins_per_row;
1470
+ for (let pinIndex = 0; pinIndex < num_pins_per_row; pinIndex++) {
1471
+ const pinNumber = startPin + pinIndex + 1;
1472
+ if (pinNumber > num_pins)
1473
+ break;
1474
+ const xoff = pinIndex * p;
1475
+ holes.push(platedhole(pinNumber, xoff, yoff, id, od));
1476
+ }
1477
+ }
1478
+ } else {
1479
+ const num_spaces = num_pins - 1;
1480
+ const xoff = -(num_spaces / 2) * p;
1481
+ for (let i = 0; i < num_pins; i++) {
1482
+ holes.push(platedhole(i + 1, xoff + i * p, 0, id, od));
1483
+ }
1484
+ }
1485
+ if (rows === 1) {
1486
+ const silkscreenRefText2 = silkscreenRef(0, rows * p, 0.5);
1487
+ return {
1488
+ circuitJson: [...holes, silkscreenRefText2],
1489
+ parameters
1490
+ };
1468
1491
  }
1469
- const silkscreenRefText = silkscreenRef(0, p / 2, 0.5);
1492
+ const silkscreenRefText = silkscreenRef(
1493
+ (num_pins / rows - 1) * p / 2,
1494
+ // Center the silkscreen horizontally
1495
+ rows * p,
1496
+ // Keep it at the top vertically
1497
+ 0.5
1498
+ );
1470
1499
  return {
1471
1500
  circuitJson: [...holes, silkscreenRefText],
1472
1501
  parameters
@@ -3488,20 +3517,147 @@ var sodWithoutParsing10 = (parameters) => {
3488
3517
  return pads;
3489
3518
  };
3490
3519
 
3520
+ // src/fn/sot89.ts
3521
+ import { z as z31 } from "zod";
3522
+ var sot89_def = z31.object({
3523
+ fn: z31.string(),
3524
+ num_pins: z31.union([z31.literal(3), z31.literal(5)]).default(3),
3525
+ w: z31.string().default("4.80mm"),
3526
+ h: z31.string().default("4.80mm"),
3527
+ pl: z31.string().default("1.3mm"),
3528
+ pw: z31.string().default("0.9mm"),
3529
+ p: z31.string().default("1.5mm"),
3530
+ string: z31.string().optional()
3531
+ });
3532
+ var sot89_3 = (parameters) => {
3533
+ const pads = [];
3534
+ const padGap = Number.parseFloat(parameters.p);
3535
+ const padWidth = Number.parseFloat(parameters.pw);
3536
+ const length35 = Number.parseFloat(parameters.w);
3537
+ const padHeight = Number.parseFloat(parameters.pl);
3538
+ pads.push(
3539
+ rectpad(1, -length35 / 2, padGap, padHeight, padWidth),
3540
+ rectpad(2, -length35 / 2 + (1.5 - 1.3) / 2, 0, 1.5, padWidth),
3541
+ rectpad(3, -length35 / 2, -padGap, padHeight, padWidth)
3542
+ );
3543
+ const silkscreenRefText = silkscreenRef(0, 0, 0.3);
3544
+ const width = Number.parseFloat(parameters.w) / 2 - 1;
3545
+ const height = Number.parseFloat(parameters.h) / 2;
3546
+ const silkscreenPath1 = {
3547
+ layer: "top",
3548
+ pcb_component_id: "",
3549
+ pcb_silkscreen_path_id: "silkscreen_path_1",
3550
+ route: [
3551
+ { x: -width, y: height },
3552
+ { x: width, y: height },
3553
+ { x: width, y: height / 2 + 0.5 }
3554
+ ],
3555
+ type: "pcb_silkscreen_path",
3556
+ stroke_width: 0.1
3557
+ };
3558
+ const silkscreenPath2 = {
3559
+ layer: "top",
3560
+ pcb_component_id: "",
3561
+ pcb_silkscreen_path_id: "silkscreen_path_2",
3562
+ route: [
3563
+ { x: -width, y: -height },
3564
+ { x: width, y: -height },
3565
+ { x: width, y: -height / 2 - 0.5 }
3566
+ ],
3567
+ type: "pcb_silkscreen_path",
3568
+ stroke_width: 0.1
3569
+ };
3570
+ return [
3571
+ ...pads,
3572
+ silkscreenPath1,
3573
+ silkscreenPath2,
3574
+ silkscreenRefText
3575
+ ];
3576
+ };
3577
+ var sot89_5 = (parameters) => {
3578
+ const pads = [];
3579
+ const padGap = Number.parseFloat(parameters.p);
3580
+ const padWidth = Number.parseFloat(parameters.pw);
3581
+ const length35 = Number.parseFloat(parameters.w);
3582
+ pads.push(
3583
+ rectpad(1, -1.85, -1.5, 1.5, 0.7),
3584
+ rectpad(2, -1.85, 1.5, 1.5, 0.7),
3585
+ rectpad(3, 0, 0, 0.8, 2),
3586
+ rectpad(4, 1.85, -1.5, 1.5, 0.7),
3587
+ rectpad(5, 1.85, 1.5, 1.5, 0.7)
3588
+ );
3589
+ const silkscreenRefText = silkscreenRef(
3590
+ 0,
3591
+ Number.parseFloat(parameters.h) / 2 + 0.5,
3592
+ 0.3
3593
+ );
3594
+ const width = Number.parseFloat(parameters.w) / 2 - 1;
3595
+ const height = Number.parseFloat(parameters.h) / 2;
3596
+ const silkscreenPath1 = {
3597
+ layer: "top",
3598
+ pcb_component_id: "",
3599
+ pcb_silkscreen_path_id: "silkscreen_path_1",
3600
+ route: [
3601
+ { x: -width, y: height },
3602
+ { x: width, y: height }
3603
+ ],
3604
+ type: "pcb_silkscreen_path",
3605
+ stroke_width: 0.1
3606
+ };
3607
+ const silkscreenPath2 = {
3608
+ layer: "top",
3609
+ pcb_component_id: "",
3610
+ pcb_silkscreen_path_id: "silkscreen_path_2",
3611
+ route: [
3612
+ { x: -width, y: -height },
3613
+ { x: width, y: -height }
3614
+ ],
3615
+ type: "pcb_silkscreen_path",
3616
+ stroke_width: 0.1
3617
+ };
3618
+ return [
3619
+ ...pads,
3620
+ silkscreenPath1,
3621
+ silkscreenPath2,
3622
+ silkscreenRefText
3623
+ ];
3624
+ };
3625
+ var sot89 = (raw_params) => {
3626
+ const match = raw_params.string?.match(/^sot89_(\d+)/);
3627
+ const numPins = match ? Number.parseInt(match[1], 10) : 3;
3628
+ const parameters = sot89_def.parse({
3629
+ ...raw_params,
3630
+ num_pins: numPins
3631
+ });
3632
+ if (parameters.num_pins === 3) {
3633
+ return {
3634
+ circuitJson: sot89_3(parameters),
3635
+ parameters
3636
+ };
3637
+ }
3638
+ if (parameters.num_pins === 5) {
3639
+ return {
3640
+ circuitJson: sot89_5(parameters),
3641
+ parameters
3642
+ };
3643
+ }
3644
+ throw new Error("Invalid number of pins for SOT89");
3645
+ };
3646
+
3491
3647
  // src/fn/to220.ts
3492
3648
  import {
3493
3649
  length as length25
3494
3650
  } from "circuit-json";
3495
- import { z as z31 } from "zod";
3496
- var to220_def = z31.object({
3497
- fn: z31.string(),
3651
+ import { z as z32 } from "zod";
3652
+ var to220_def = z32.object({
3653
+ fn: z32.string(),
3498
3654
  p: length25.optional().default("5.0mm"),
3499
3655
  id: length25.optional().default("1.0mm"),
3500
3656
  od: length25.optional().default("1.9mm"),
3501
3657
  w: length25.optional().default("13mm"),
3502
3658
  h: length25.optional().default("7mm"),
3503
- num_pins: z31.number().optional(),
3504
- string: z31.string().optional()
3659
+ num_pins: z32.number().optional(),
3660
+ string: z32.string().optional()
3505
3661
  });
3506
3662
  var to220 = (raw_params) => {
3507
3663
  const parameters = to220_def.parse(raw_params);
@@ -3581,16 +3737,16 @@ var to220 = (raw_params) => {
3581
3737
  };
3582
3738
 
3583
3739
  // src/fn/minimelf.ts
3584
- import { z as z32 } from "zod";
3740
+ import { z as z33 } from "zod";
3585
3741
  import { length as length26 } from "circuit-json";
3586
- var minimelf_def = z32.object({
3587
- fn: z32.string(),
3588
- num_pins: z32.literal(2).default(2),
3589
- w: z32.string().default("5.40mm"),
3590
- h: z32.string().default("2.30mm"),
3591
- pl: z32.string().default("1.30mm"),
3592
- pw: z32.string().default("1.70mm"),
3593
- p: z32.string().default("3.5mm")
3742
+ var minimelf_def = z33.object({
3743
+ fn: z33.string(),
3744
+ num_pins: z33.literal(2).default(2),
3745
+ w: z33.string().default("5.40mm"),
3746
+ h: z33.string().default("2.30mm"),
3747
+ pl: z33.string().default("1.30mm"),
3748
+ pw: z33.string().default("1.70mm"),
3749
+ p: z33.string().default("3.5mm")
3594
3750
  });
3595
3751
  var minimelf = (raw_params) => {
3596
3752
  const parameters = minimelf_def.parse(raw_params);
@@ -3657,16 +3813,16 @@ var miniMelfWithoutParsing = (parameters) => {
3657
3813
  };
3658
3814
 
3659
3815
  // src/fn/sod882d.ts
3660
- import { z as z33 } from "zod";
3816
+ import { z as z34 } from "zod";
3661
3817
  import { length as length27 } from "circuit-json";
3662
- var sod_def11 = z33.object({
3663
- fn: z33.string(),
3664
- num_pins: z33.literal(2).default(2),
3665
- w: z33.string().default("1.90mm"),
3666
- h: z33.string().default("1.33mm"),
3667
- pl: z33.string().default("0.5mm"),
3668
- pw: z33.string().default("0.7mm"),
3669
- p: z33.string().default("0.8mm")
3818
+ var sod_def11 = z34.object({
3819
+ fn: z34.string(),
3820
+ num_pins: z34.literal(2).default(2),
3821
+ w: z34.string().default("1.90mm"),
3822
+ h: z34.string().default("1.33mm"),
3823
+ pl: z34.string().default("0.5mm"),
3824
+ pw: z34.string().default("0.7mm"),
3825
+ p: z34.string().default("0.8mm")
3670
3826
  });
3671
3827
  var sod882d = (raw_params) => {
3672
3828
  const parameters = sod_def11.parse(raw_params);
@@ -3737,16 +3893,16 @@ var sodWithoutParsing11 = (parameters) => {
3737
3893
  };
3738
3894
 
3739
3895
  // src/fn/melf.ts
3740
- import { z as z34 } from "zod";
3896
+ import { z as z35 } from "zod";
3741
3897
  import { length as length28 } from "circuit-json";
3742
- var melf_def = z34.object({
3743
- fn: z34.string(),
3744
- num_pins: z34.literal(2).default(2),
3745
- w: z34.string().default("7.0mm"),
3746
- h: z34.string().default("3.35mm"),
3747
- pl: z34.string().default("1.50mm"),
3748
- pw: z34.string().default("2.70mm"),
3749
- p: z34.string().default("4.8mm")
3898
+ var melf_def = z35.object({
3899
+ fn: z35.string(),
3900
+ num_pins: z35.literal(2).default(2),
3901
+ w: z35.string().default("7.0mm"),
3902
+ h: z35.string().default("3.35mm"),
3903
+ pl: z35.string().default("1.50mm"),
3904
+ pw: z35.string().default("2.70mm"),
3905
+ p: z35.string().default("4.8mm")
3750
3906
  });
3751
3907
  var melf = (raw_params) => {
3752
3908
  const parameters = melf_def.parse(raw_params);
@@ -3817,16 +3973,16 @@ var melfWithoutParsing = (parameters) => {
3817
3973
  };
3818
3974
 
3819
3975
  // src/fn/micromelf.ts
3820
- import { z as z35 } from "zod";
3976
+ import { z as z36 } from "zod";
3821
3977
  import { length as length29 } from "circuit-json";
3822
- var micromelf_def = z35.object({
3823
- fn: z35.string(),
3824
- num_pins: z35.literal(2).default(2),
3825
- w: z35.string().default("3.0mm"),
3826
- h: z35.string().default("1.80mm"),
3827
- pl: z35.string().default("0.80mm"),
3828
- pw: z35.string().default("1.20mm"),
3829
- p: z35.string().default("1.6mm")
3978
+ var micromelf_def = z36.object({
3979
+ fn: z36.string(),
3980
+ num_pins: z36.literal(2).default(2),
3981
+ w: z36.string().default("3.0mm"),
3982
+ h: z36.string().default("1.80mm"),
3983
+ pl: z36.string().default("0.80mm"),
3984
+ pw: z36.string().default("1.20mm"),
3985
+ p: z36.string().default("1.6mm")
3830
3986
  });
3831
3987
  var micromelf = (raw_params) => {
3832
3988
  const parameters = micromelf_def.parse(raw_params);
@@ -3897,16 +4053,16 @@ var microMelfWithoutParsing = (parameters) => {
3897
4053
  };
3898
4054
 
3899
4055
  // src/fn/sma.ts
3900
- import { z as z36 } from "zod";
4056
+ import { z as z37 } from "zod";
3901
4057
  import { length as length30 } from "circuit-json";
3902
- var sma_def = z36.object({
3903
- fn: z36.string(),
3904
- num_pins: z36.literal(2).default(2),
3905
- w: z36.string().default("7.10mm"),
3906
- h: z36.string().default("3.40mm"),
3907
- pl: z36.string().default("2.45mm"),
3908
- pw: z36.string().default("1.80mm"),
3909
- p: z36.string().default("4.05mm")
4058
+ var sma_def = z37.object({
4059
+ fn: z37.string(),
4060
+ num_pins: z37.literal(2).default(2),
4061
+ w: z37.string().default("7.10mm"),
4062
+ h: z37.string().default("3.40mm"),
4063
+ pl: z37.string().default("2.45mm"),
4064
+ pw: z37.string().default("1.80mm"),
4065
+ p: z37.string().default("4.05mm")
3910
4066
  });
3911
4067
  var sma = (raw_params) => {
3912
4068
  const parameters = sma_def.parse(raw_params);
@@ -3976,16 +4132,16 @@ var smaWithoutParsing = (parameters) => {
3976
4132
  };
3977
4133
 
3978
4134
  // src/fn/smf.ts
3979
- import { z as z37 } from "zod";
4135
+ import { z as z38 } from "zod";
3980
4136
  import { length as length31 } from "circuit-json";
3981
- var smf_def = z37.object({
3982
- fn: z37.string(),
3983
- num_pins: z37.literal(2).default(2),
3984
- w: z37.string().default("4.80mm"),
3985
- h: z37.string().default("2.10mm"),
3986
- pl: z37.string().default("1.30mm"),
3987
- pw: z37.string().default("1.40mm"),
3988
- p: z37.string().default("2.9mm")
4137
+ var smf_def = z38.object({
4138
+ fn: z38.string(),
4139
+ num_pins: z38.literal(2).default(2),
4140
+ w: z38.string().default("4.80mm"),
4141
+ h: z38.string().default("2.10mm"),
4142
+ pl: z38.string().default("1.30mm"),
4143
+ pw: z38.string().default("1.40mm"),
4144
+ p: z38.string().default("2.9mm")
3989
4145
  });
3990
4146
  var smf = (raw_params) => {
3991
4147
  const parameters = smf_def.parse(raw_params);
@@ -4056,16 +4212,16 @@ var smfWithoutParsing = (parameters) => {
4056
4212
  };
4057
4213
 
4058
4214
  // src/fn/smb.ts
4059
- import { z as z38 } from "zod";
4215
+ import { z as z39 } from "zod";
4060
4216
  import { length as length32 } from "circuit-json";
4061
- var smb_def = z38.object({
4062
- fn: z38.string(),
4063
- num_pins: z38.literal(2).default(2),
4064
- w: z38.string().default("7.30mm"),
4065
- h: z38.string().default("4.40mm"),
4066
- pl: z38.string().default("2.50mm"),
4067
- pw: z38.string().default("2.30mm"),
4068
- p: z38.string().default("4.30mm")
4217
+ var smb_def = z39.object({
4218
+ fn: z39.string(),
4219
+ num_pins: z39.literal(2).default(2),
4220
+ w: z39.string().default("7.30mm"),
4221
+ h: z39.string().default("4.40mm"),
4222
+ pl: z39.string().default("2.50mm"),
4223
+ pw: z39.string().default("2.30mm"),
4224
+ p: z39.string().default("4.30mm")
4069
4225
  });
4070
4226
  var smb = (raw_params) => {
4071
4227
  const parameters = smb_def.parse(raw_params);
@@ -4136,16 +4292,16 @@ var smbWithoutParsing = (parameters) => {
4136
4292
  };
4137
4293
 
4138
4294
  // src/fn/vssop8.ts
4139
- import { z as z39 } from "zod";
4295
+ import { z as z40 } from "zod";
4140
4296
  import { length as length33 } from "circuit-json";
4141
- var vssop8_def = z39.object({
4142
- fn: z39.string(),
4143
- num_pins: z39.literal(8).default(8),
4144
- w: z39.string().default("3.06mm"),
4145
- h: z39.string().default("3.14mm"),
4146
- p: z39.string().default("0.65mm"),
4147
- pl: z39.string().default("1.6mm"),
4148
- pw: z39.string().default("0.5mm")
4297
+ var vssop8_def = z40.object({
4298
+ fn: z40.string(),
4299
+ num_pins: z40.literal(8).default(8),
4300
+ w: z40.string().default("3.06mm"),
4301
+ h: z40.string().default("3.14mm"),
4302
+ p: z40.string().default("0.65mm"),
4303
+ pl: z40.string().default("1.6mm"),
4304
+ pw: z40.string().default("0.5mm")
4149
4305
  });
4150
4306
  var vssop8 = (raw_params) => {
4151
4307
  const parameters = vssop8_def.parse(raw_params);
@@ -4237,16 +4393,16 @@ var getVssop8Pads = (parameters, pad_spacing) => {
4237
4393
  };
4238
4394
 
4239
4395
  // src/fn/smc.ts
4240
- import { z as z40 } from "zod";
4396
+ import { z as z41 } from "zod";
4241
4397
  import { length as length34 } from "circuit-json";
4242
- var smc_def = z40.object({
4243
- fn: z40.string(),
4244
- num_pins: z40.literal(2).default(2),
4245
- w: z40.string().default("10.70mm"),
4246
- h: z40.string().default("6.60mm"),
4247
- pl: z40.string().default("3.30mm"),
4248
- pw: z40.string().default("2.50mm"),
4249
- p: z40.string().default("6.80mm")
4398
+ var smc_def = z41.object({
4399
+ fn: z41.string(),
4400
+ num_pins: z41.literal(2).default(2),
4401
+ w: z41.string().default("10.70mm"),
4402
+ h: z41.string().default("6.60mm"),
4403
+ pl: z41.string().default("3.30mm"),
4404
+ pw: z41.string().default("2.50mm"),
4405
+ p: z41.string().default("6.80mm")
4250
4406
  });
4251
4407
  var smc = (raw_params) => {
4252
4408
  const parameters = smc_def.parse(raw_params);
@@ -4312,16 +4468,16 @@ var smcWithoutParsing = (parameters) => {
4312
4468
  };
4313
4469
 
4314
4470
  // src/fn/sot223.ts
4315
- import { z as z41 } from "zod";
4316
- var sot223_def = z41.object({
4317
- fn: z41.string(),
4318
- num_pins: z41.number().default(4),
4319
- w: z41.string().default("8.50mm"),
4320
- h: z41.string().default("6.90mm"),
4321
- pl: z41.string().default("2mm"),
4322
- pw: z41.string().default("1.5mm"),
4323
- p: z41.string().default("2.30mm"),
4324
- string: z41.string().optional()
4471
+ import { z as z42 } from "zod";
4472
+ var sot223_def = z42.object({
4473
+ fn: z42.string(),
4474
+ num_pins: z42.number().default(4),
4475
+ w: z42.string().default("8.50mm"),
4476
+ h: z42.string().default("6.90mm"),
4477
+ pl: z42.string().default("2mm"),
4478
+ pw: z42.string().default("1.5mm"),
4479
+ p: z42.string().default("2.30mm"),
4480
+ string: z42.string().optional()
4325
4481
  });
4326
4482
  var sot223 = (raw_params) => {
4327
4483
  const match = raw_params.string?.match(/^sot223_(\d+)/);