@tscircuit/footprinter 0.0.182 → 0.0.184
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 +17 -10
- package/dist/index.js +98 -118
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -39,6 +39,7 @@ declare const any_footprinter_def: z.ZodUnion<[z.ZodObject<{
|
|
|
39
39
|
h: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
|
|
40
40
|
ball: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
|
|
41
41
|
pad: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
|
|
42
|
+
circularpads: z.ZodOptional<z.ZodBoolean>;
|
|
42
43
|
tlorigin: z.ZodOptional<z.ZodBoolean>;
|
|
43
44
|
blorigin: z.ZodOptional<z.ZodBoolean>;
|
|
44
45
|
trorigin: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -57,6 +58,7 @@ declare const any_footprinter_def: z.ZodUnion<[z.ZodObject<{
|
|
|
57
58
|
} | undefined;
|
|
58
59
|
ball?: number | undefined;
|
|
59
60
|
pad?: number | undefined;
|
|
61
|
+
circularpads?: boolean | undefined;
|
|
60
62
|
tlorigin?: boolean | undefined;
|
|
61
63
|
blorigin?: boolean | undefined;
|
|
62
64
|
trorigin?: boolean | undefined;
|
|
@@ -70,6 +72,7 @@ declare const any_footprinter_def: z.ZodUnion<[z.ZodObject<{
|
|
|
70
72
|
grid?: string | undefined;
|
|
71
73
|
ball?: string | number | undefined;
|
|
72
74
|
pad?: string | number | undefined;
|
|
75
|
+
circularpads?: boolean | undefined;
|
|
73
76
|
tlorigin?: boolean | undefined;
|
|
74
77
|
blorigin?: boolean | undefined;
|
|
75
78
|
trorigin?: boolean | undefined;
|
|
@@ -89,6 +92,7 @@ declare const any_footprinter_def: z.ZodUnion<[z.ZodObject<{
|
|
|
89
92
|
} | undefined;
|
|
90
93
|
ball?: number | undefined;
|
|
91
94
|
pad?: number | undefined;
|
|
95
|
+
circularpads?: boolean | undefined;
|
|
92
96
|
tlorigin?: boolean | undefined;
|
|
93
97
|
blorigin?: boolean | undefined;
|
|
94
98
|
trorigin?: boolean | undefined;
|
|
@@ -102,6 +106,7 @@ declare const any_footprinter_def: z.ZodUnion<[z.ZodObject<{
|
|
|
102
106
|
grid?: string | undefined;
|
|
103
107
|
ball?: string | number | undefined;
|
|
104
108
|
pad?: string | number | undefined;
|
|
109
|
+
circularpads?: boolean | undefined;
|
|
105
110
|
tlorigin?: boolean | undefined;
|
|
106
111
|
blorigin?: boolean | undefined;
|
|
107
112
|
trorigin?: boolean | undefined;
|
|
@@ -992,7 +997,7 @@ declare const any_footprinter_def: z.ZodUnion<[z.ZodObject<{
|
|
|
992
997
|
legsoutside?: boolean | undefined;
|
|
993
998
|
}>, z.ZodObject<{
|
|
994
999
|
tht: z.ZodBoolean;
|
|
995
|
-
p: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number
|
|
1000
|
+
p: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
|
|
996
1001
|
pw: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
|
|
997
1002
|
ph: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
|
|
998
1003
|
metric: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
|
|
@@ -1000,18 +1005,18 @@ declare const any_footprinter_def: z.ZodUnion<[z.ZodObject<{
|
|
|
1000
1005
|
w: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
|
|
1001
1006
|
h: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
|
|
1002
1007
|
}, "strip", z.ZodTypeAny, {
|
|
1003
|
-
p: number;
|
|
1004
1008
|
tht: boolean;
|
|
1005
1009
|
w?: number | undefined;
|
|
1010
|
+
p?: number | undefined;
|
|
1006
1011
|
pw?: number | undefined;
|
|
1007
1012
|
ph?: number | undefined;
|
|
1008
1013
|
metric?: number | undefined;
|
|
1009
1014
|
imperial?: number | undefined;
|
|
1010
1015
|
h?: number | undefined;
|
|
1011
1016
|
}, {
|
|
1012
|
-
p: string | number;
|
|
1013
1017
|
tht: boolean;
|
|
1014
1018
|
w?: string | number | undefined;
|
|
1019
|
+
p?: string | number | undefined;
|
|
1015
1020
|
pw?: string | number | undefined;
|
|
1016
1021
|
ph?: string | number | undefined;
|
|
1017
1022
|
metric?: string | number | undefined;
|
|
@@ -1115,14 +1120,16 @@ declare const any_footprinter_def: z.ZodUnion<[z.ZodObject<{
|
|
|
1115
1120
|
}>]>;
|
|
1116
1121
|
type AnyFootprinterDefinitionOutput = z.infer<typeof any_footprinter_def>;
|
|
1117
1122
|
|
|
1118
|
-
|
|
1123
|
+
type StandardSize = {
|
|
1119
1124
|
imperial: string;
|
|
1120
1125
|
metric: string;
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
+
p_mm_min: number;
|
|
1127
|
+
ph_mm_min: number;
|
|
1128
|
+
pw_mm_min: number;
|
|
1129
|
+
h_mm_min: number;
|
|
1130
|
+
w_mm_min: number;
|
|
1131
|
+
};
|
|
1132
|
+
declare const footprintSizes: StandardSize[];
|
|
1126
1133
|
|
|
1127
1134
|
type FootprinterParamsBuilder<K extends string> = {
|
|
1128
1135
|
[P in K | "params" | "soup" | "circuitJson"]: P extends "params" | "soup" | "circuitJson" ? Footprinter[P] : (v?: number | string | boolean) => FootprinterParamsBuilder<K>;
|
|
@@ -1137,7 +1144,7 @@ type Footprinter = {
|
|
|
1137
1144
|
lr: (num_pins?: number) => FootprinterParamsBuilder<"w" | "l" | "pl" | "pr">;
|
|
1138
1145
|
qfp: (num_pins?: number) => FootprinterParamsBuilder<"w" | "p" | "id" | "od" | "wide" | "narrow">;
|
|
1139
1146
|
quad: (num_pins?: number) => FootprinterParamsBuilder<"w" | "l" | "square" | "pl" | "pr" | "pb" | "pt" | "p" | "pw" | "ph">;
|
|
1140
|
-
bga: (num_pins?: number) => FootprinterParamsBuilder<"grid" | "p" | "w" | "h" | "ball" | "pad" | "missing" | "tlorigin" | "blorigin" | "trorigin" | "brorigin">;
|
|
1147
|
+
bga: (num_pins?: number) => FootprinterParamsBuilder<"grid" | "p" | "w" | "h" | "ball" | "pad" | "missing" | "tlorigin" | "blorigin" | "trorigin" | "brorigin" | "circularpads">;
|
|
1141
1148
|
qfn: (num_pins?: number) => FootprinterParamsBuilder<"w" | "h" | "p">;
|
|
1142
1149
|
soic: (num_pins?: number) => FootprinterParamsBuilder<"w" | "p" | "id" | "od">;
|
|
1143
1150
|
mlp: (num_pins?: number) => FootprinterParamsBuilder<"w" | "h" | "p">;
|
package/dist/index.js
CHANGED
|
@@ -271,111 +271,96 @@ var rectpad = (pn, x, y, w, h) => {
|
|
|
271
271
|
import mm2 from "@tscircuit/mm";
|
|
272
272
|
import { z as z2 } from "zod";
|
|
273
273
|
import { length, distance } from "circuit-json";
|
|
274
|
-
|
|
275
|
-
// src/helpers/silkscreenpath.ts
|
|
276
|
-
var silkscreenpath = (route, options = {}) => {
|
|
277
|
-
return {
|
|
278
|
-
type: "pcb_silkscreen_path",
|
|
279
|
-
layer: options.layer || "top",
|
|
280
|
-
pcb_component_id: options.pcb_component_id || "",
|
|
281
|
-
pcb_silkscreen_path_id: options.pcb_silkscreen_path_id || "",
|
|
282
|
-
route,
|
|
283
|
-
stroke_width: options.stroke_width || 0.1
|
|
284
|
-
};
|
|
285
|
-
};
|
|
286
|
-
|
|
287
|
-
// src/helpers/passive-fn.ts
|
|
288
274
|
var footprintSizes = [
|
|
289
275
|
{
|
|
290
276
|
imperial: "01005",
|
|
291
277
|
metric: "0402",
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
278
|
+
p_mm_min: 0.038,
|
|
279
|
+
pw_mm_min: 0.2,
|
|
280
|
+
ph_mm_min: 0.2,
|
|
281
|
+
w_mm_min: 0.58,
|
|
282
|
+
h_mm_min: 0.21
|
|
296
283
|
},
|
|
297
284
|
{
|
|
298
285
|
imperial: "0201",
|
|
299
286
|
metric: "0603",
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
287
|
+
p_mm_min: 0.6,
|
|
288
|
+
pw_mm_min: 0.3,
|
|
289
|
+
ph_mm_min: 0.3,
|
|
290
|
+
w_mm_min: 0.9,
|
|
291
|
+
h_mm_min: 0.3
|
|
304
292
|
},
|
|
305
293
|
{
|
|
306
294
|
imperial: "0402",
|
|
307
295
|
metric: "1005",
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
296
|
+
p_mm_min: 1,
|
|
297
|
+
pw_mm_min: 0.6,
|
|
298
|
+
ph_mm_min: 0.6,
|
|
299
|
+
w_mm_min: 1.6,
|
|
300
|
+
h_mm_min: 0.7
|
|
312
301
|
},
|
|
313
302
|
{
|
|
314
303
|
imperial: "0603",
|
|
315
304
|
metric: "1608",
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
305
|
+
p_mm_min: 1.6,
|
|
306
|
+
pw_mm_min: 0.85,
|
|
307
|
+
ph_mm_min: 0.95,
|
|
308
|
+
w_mm_min: 2.6,
|
|
309
|
+
h_mm_min: 1
|
|
320
310
|
},
|
|
321
311
|
{
|
|
322
312
|
imperial: "0805",
|
|
323
313
|
metric: "2012",
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
314
|
+
p_mm_min: 2.15,
|
|
315
|
+
pw_mm_min: 0.85,
|
|
316
|
+
ph_mm_min: 1.2,
|
|
317
|
+
w_mm_min: 3,
|
|
318
|
+
h_mm_min: 1.2
|
|
328
319
|
},
|
|
329
320
|
{
|
|
330
321
|
imperial: "1206",
|
|
331
322
|
metric: "3216",
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
323
|
+
p_mm_min: 3.2,
|
|
324
|
+
pw_mm_min: 1,
|
|
325
|
+
ph_mm_min: 1.9,
|
|
326
|
+
w_mm_min: 4.2,
|
|
327
|
+
h_mm_min: 2.5
|
|
336
328
|
},
|
|
337
329
|
{
|
|
338
330
|
imperial: "1210",
|
|
339
331
|
metric: "3225",
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
332
|
+
p_mm_min: 2,
|
|
333
|
+
pw_mm_min: 1.1,
|
|
334
|
+
ph_mm_min: 1.1,
|
|
335
|
+
w_mm_min: 3.2,
|
|
336
|
+
h_mm_min: 2.5
|
|
344
337
|
},
|
|
345
338
|
{
|
|
346
339
|
imperial: "2010",
|
|
347
340
|
metric: "5025",
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
341
|
+
p_mm_min: 3.6,
|
|
342
|
+
pw_mm_min: 1.2,
|
|
343
|
+
ph_mm_min: 1.2,
|
|
344
|
+
w_mm_min: 5,
|
|
345
|
+
h_mm_min: 2.5
|
|
352
346
|
},
|
|
353
347
|
{
|
|
354
348
|
imperial: "2512",
|
|
355
349
|
metric: "6332",
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
350
|
+
p_mm_min: 4.5,
|
|
351
|
+
pw_mm_min: 1.6,
|
|
352
|
+
ph_mm_min: 1.6,
|
|
353
|
+
w_mm_min: 6.3,
|
|
354
|
+
h_mm_min: 3.2
|
|
360
355
|
}
|
|
361
356
|
];
|
|
362
|
-
var metricMap = footprintSizes.
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
return acc;
|
|
366
|
-
},
|
|
367
|
-
{}
|
|
368
|
-
);
|
|
369
|
-
var imperialMap = footprintSizes.reduce(
|
|
370
|
-
(acc, s) => {
|
|
371
|
-
acc[s.imperial] = s;
|
|
372
|
-
return acc;
|
|
373
|
-
},
|
|
374
|
-
{}
|
|
357
|
+
var metricMap = Object.fromEntries(footprintSizes.map((s) => [s.metric, s]));
|
|
358
|
+
var imperialMap = Object.fromEntries(
|
|
359
|
+
footprintSizes.map((s) => [s.imperial, s])
|
|
375
360
|
);
|
|
376
361
|
var passive_def = z2.object({
|
|
377
362
|
tht: z2.boolean(),
|
|
378
|
-
p: length,
|
|
363
|
+
p: length.optional(),
|
|
379
364
|
pw: length.optional(),
|
|
380
365
|
ph: length.optional(),
|
|
381
366
|
metric: distance.optional(),
|
|
@@ -383,10 +368,6 @@ var passive_def = z2.object({
|
|
|
383
368
|
w: length.optional(),
|
|
384
369
|
h: length.optional()
|
|
385
370
|
});
|
|
386
|
-
var deriveXFromH = (h) => 0.079 * h ** 2 + 0.94 * h - 9e-3;
|
|
387
|
-
var deriveZFromW = (w) => 1.09 * w + 0.6;
|
|
388
|
-
var deriveGFromW = (w) => 0.59 * w - 0.31;
|
|
389
|
-
var deriveCFromW = (w) => -0.01 * w ** 2 + 0.94 * w + 0.03;
|
|
390
371
|
var passive = (params) => {
|
|
391
372
|
let { tht, p, pw, ph, metric, imperial, w, h } = params;
|
|
392
373
|
if (typeof w === "string") w = mm2(w);
|
|
@@ -394,37 +375,24 @@ var passive = (params) => {
|
|
|
394
375
|
if (typeof p === "string") p = mm2(p);
|
|
395
376
|
if (typeof pw === "string") pw = mm2(pw);
|
|
396
377
|
if (typeof ph === "string") ph = mm2(ph);
|
|
397
|
-
if (h > w) {
|
|
378
|
+
if (h !== void 0 && w !== void 0 && h > w) {
|
|
398
379
|
throw new Error(
|
|
399
380
|
"height cannot be greater than width (rotated footprint not yet implemented)"
|
|
400
381
|
);
|
|
401
382
|
}
|
|
402
383
|
let sz;
|
|
403
|
-
if (metric)
|
|
404
|
-
|
|
405
|
-
}
|
|
406
|
-
if (imperial) {
|
|
407
|
-
sz = imperialMap[imperial];
|
|
408
|
-
}
|
|
409
|
-
if (!sz && w && h && !pw && !ph) {
|
|
410
|
-
sz = {
|
|
411
|
-
imperial: "custom",
|
|
412
|
-
metric: "custom",
|
|
413
|
-
Z_mm_min: deriveZFromW(w),
|
|
414
|
-
G_mm_min: deriveGFromW(w),
|
|
415
|
-
X_mm_min: deriveXFromH(h),
|
|
416
|
-
C_mm_ref: deriveCFromW(w)
|
|
417
|
-
};
|
|
418
|
-
}
|
|
384
|
+
if (metric) sz = metricMap[metric];
|
|
385
|
+
if (imperial) sz = imperialMap[imperial];
|
|
419
386
|
if (sz) {
|
|
420
|
-
w = sz.
|
|
421
|
-
h = sz.
|
|
422
|
-
p = sz.
|
|
423
|
-
pw =
|
|
424
|
-
ph =
|
|
425
|
-
}
|
|
426
|
-
if (
|
|
427
|
-
|
|
387
|
+
w = sz.w_mm_min;
|
|
388
|
+
h = sz.h_mm_min;
|
|
389
|
+
p = sz.p_mm_min;
|
|
390
|
+
pw = sz.pw_mm_min;
|
|
391
|
+
ph = sz.ph_mm_min;
|
|
392
|
+
}
|
|
393
|
+
if (p === void 0 || pw === void 0 || ph === void 0) {
|
|
394
|
+
throw new Error("Could not determine required pad dimensions (p, pw, ph)");
|
|
395
|
+
}
|
|
428
396
|
const silkscreenLine = {
|
|
429
397
|
type: "pcb_silkscreen_path",
|
|
430
398
|
layer: "top",
|
|
@@ -476,6 +444,20 @@ var res = (parameters) => {
|
|
|
476
444
|
return { circuitJson: passive(parameters), parameters };
|
|
477
445
|
};
|
|
478
446
|
|
|
447
|
+
// src/helpers/circlepad.ts
|
|
448
|
+
var circlepad = (pn, { x, y, radius }) => {
|
|
449
|
+
return {
|
|
450
|
+
type: "pcb_smtpad",
|
|
451
|
+
x,
|
|
452
|
+
y,
|
|
453
|
+
radius,
|
|
454
|
+
layer: "top",
|
|
455
|
+
shape: "circle",
|
|
456
|
+
pcb_smtpad_id: "",
|
|
457
|
+
port_hints: Array.isArray(pn) ? pn.map((item) => item.toString()) : [pn.toString()]
|
|
458
|
+
};
|
|
459
|
+
};
|
|
460
|
+
|
|
479
461
|
// src/helpers/zod/ALPHABET.ts
|
|
480
462
|
var ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
|
481
463
|
|
|
@@ -522,6 +504,7 @@ var bga_def = z5.object({
|
|
|
522
504
|
h: length2.optional(),
|
|
523
505
|
ball: length2.optional().describe("ball diameter"),
|
|
524
506
|
pad: length2.optional().describe("pad width/height"),
|
|
507
|
+
circularpads: z5.boolean().optional().describe("use circular pads"),
|
|
525
508
|
tlorigin: z5.boolean().optional(),
|
|
526
509
|
blorigin: z5.boolean().optional(),
|
|
527
510
|
trorigin: z5.boolean().optional(),
|
|
@@ -610,14 +593,13 @@ var bga = (raw_params) => {
|
|
|
610
593
|
continue;
|
|
611
594
|
}
|
|
612
595
|
pin_num -= missing_pins_passed;
|
|
596
|
+
const portHints = [pin_num, `${ALPHABET[pin_y]}${pin_x + 1}`];
|
|
613
597
|
pads.push(
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
pad2
|
|
620
|
-
)
|
|
598
|
+
parameters.circularpads ? circlepad(portHints, {
|
|
599
|
+
x: pad_x,
|
|
600
|
+
y: pad_y,
|
|
601
|
+
radius: pad2 / 2
|
|
602
|
+
}) : rectpad(portHints, pad_x, pad_y, pad2, pad2)
|
|
621
603
|
);
|
|
622
604
|
}
|
|
623
605
|
}
|
|
@@ -2033,6 +2015,20 @@ var axial = (raw_params) => {
|
|
|
2033
2015
|
// src/fn/pushbutton.ts
|
|
2034
2016
|
import { length as length9 } from "circuit-json";
|
|
2035
2017
|
import { z as z15 } from "zod";
|
|
2018
|
+
|
|
2019
|
+
// src/helpers/silkscreenpath.ts
|
|
2020
|
+
var silkscreenpath = (route, options = {}) => {
|
|
2021
|
+
return {
|
|
2022
|
+
type: "pcb_silkscreen_path",
|
|
2023
|
+
layer: options.layer || "top",
|
|
2024
|
+
pcb_component_id: options.pcb_component_id || "",
|
|
2025
|
+
pcb_silkscreen_path_id: options.pcb_silkscreen_path_id || "",
|
|
2026
|
+
route,
|
|
2027
|
+
stroke_width: options.stroke_width || 0.1
|
|
2028
|
+
};
|
|
2029
|
+
};
|
|
2030
|
+
|
|
2031
|
+
// src/fn/pushbutton.ts
|
|
2036
2032
|
var pushbutton_def = z15.object({
|
|
2037
2033
|
fn: z15.literal("pushbutton"),
|
|
2038
2034
|
w: length9.default(4.5),
|
|
@@ -6401,7 +6397,7 @@ var electrolytic = (raw_params) => {
|
|
|
6401
6397
|
const X = -(d / 2 + 0.5);
|
|
6402
6398
|
const plusY = od / 2 + 1.5;
|
|
6403
6399
|
const Size = 0.5;
|
|
6404
|
-
const
|
|
6400
|
+
const silkscreenpath2 = {
|
|
6405
6401
|
type: "pcb_silkscreen_path",
|
|
6406
6402
|
layer: "top",
|
|
6407
6403
|
pcb_component_id: "",
|
|
@@ -6430,7 +6426,7 @@ var electrolytic = (raw_params) => {
|
|
|
6430
6426
|
silkscreenBody2,
|
|
6431
6427
|
silkscreenBody3,
|
|
6432
6428
|
silkscreenBody,
|
|
6433
|
-
|
|
6429
|
+
silkscreenpath2,
|
|
6434
6430
|
silkscreenline,
|
|
6435
6431
|
silkscreenRefText
|
|
6436
6432
|
],
|
|
@@ -6617,22 +6613,6 @@ var sot323_3 = (parameters) => {
|
|
|
6617
6613
|
// src/fn/smtpad.ts
|
|
6618
6614
|
import { z as z58 } from "zod";
|
|
6619
6615
|
import { length as length45 } from "circuit-json";
|
|
6620
|
-
|
|
6621
|
-
// src/helpers/circlepad.ts
|
|
6622
|
-
var circlepad = (pn, { x, y, radius }) => {
|
|
6623
|
-
return {
|
|
6624
|
-
type: "pcb_smtpad",
|
|
6625
|
-
x,
|
|
6626
|
-
y,
|
|
6627
|
-
radius,
|
|
6628
|
-
layer: "top",
|
|
6629
|
-
shape: "circle",
|
|
6630
|
-
pcb_smtpad_id: "",
|
|
6631
|
-
port_hints: Array.isArray(pn) ? pn.map((item) => item.toString()) : [pn.toString()]
|
|
6632
|
-
};
|
|
6633
|
-
};
|
|
6634
|
-
|
|
6635
|
-
// src/fn/smtpad.ts
|
|
6636
6616
|
import { mm as mm6 } from "@tscircuit/mm";
|
|
6637
6617
|
var smtpad_def = z58.object({
|
|
6638
6618
|
fn: z58.string(),
|