@tscircuit/props 0.0.681 → 0.0.683
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/README.md +13 -10
- package/dist/index.d.ts +568 -483
- package/dist/index.js +1285 -1229
- package/dist/index.js.map +1 -1
- package/lib/assembly/board-mounting.ts +56 -0
- package/lib/assembly/index.ts +1 -0
- package/lib/assembly/motor.ts +11 -0
- package/lib/components/board.ts +26 -15
- package/lib/components/copper-pour.ts +40 -21
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -193,8 +193,16 @@ var assemblyMotorProps = z9.object({
|
|
|
193
193
|
displayName: z9.string().optional(),
|
|
194
194
|
standard: z9.enum(["nema8", "nema17", "nema23"]).optional(),
|
|
195
195
|
model: z9.string().trim().min(1).optional(),
|
|
196
|
-
shaftFacingDirection: cadModelAxisDirection.default("z+")
|
|
196
|
+
shaftFacingDirection: cadModelAxisDirection.default("z+"),
|
|
197
|
+
wireConnection: z9.enum(["none", "stubs", "jst-ph-6"]).optional()
|
|
197
198
|
}).superRefine((motor, context) => {
|
|
199
|
+
if (motor.model !== void 0 && motor.wireConnection !== void 0) {
|
|
200
|
+
context.addIssue({
|
|
201
|
+
code: z9.ZodIssueCode.custom,
|
|
202
|
+
message: "Set wireConnection in the custom model string, or use standard",
|
|
203
|
+
path: ["wireConnection"]
|
|
204
|
+
});
|
|
205
|
+
}
|
|
198
206
|
if (motor.standard === void 0 && motor.model === void 0) {
|
|
199
207
|
context.addIssue({
|
|
200
208
|
code: z9.ZodIssueCode.custom,
|
|
@@ -265,6 +273,42 @@ var assemblyScreenProps = z10.object({
|
|
|
265
273
|
});
|
|
266
274
|
expectTypesMatch(true);
|
|
267
275
|
|
|
276
|
+
// lib/assembly/board-mounting.ts
|
|
277
|
+
import { z as z11 } from "zod";
|
|
278
|
+
var identityPathPattern = "[A-Za-z_][A-Za-z0-9_-]*(?:\\.[A-Za-z_][A-Za-z0-9_-]*)*";
|
|
279
|
+
var referencePattern = "[A-Za-z_][A-Za-z0-9_-]*(?:\\.[A-Za-z_][A-Za-z0-9_-]*)+";
|
|
280
|
+
var reference = new RegExp(`^${referencePattern}$`);
|
|
281
|
+
var anchor = new RegExp(`^${identityPathPattern}$`);
|
|
282
|
+
var expression = new RegExp(
|
|
283
|
+
`^calc\\(\\s*(${referencePattern})\\s*(?:([+-])\\s*((?:\\d+(?:\\.\\d*)?|\\.\\d+))\\s*(degcw|degccw))?\\s*\\)$`
|
|
284
|
+
);
|
|
285
|
+
var boardMountRotation = z11.string().trim().superRefine((value, ctx) => {
|
|
286
|
+
if (reference.test(value)) return;
|
|
287
|
+
const match = expression.exec(value);
|
|
288
|
+
if (!match) {
|
|
289
|
+
ctx.addIssue({
|
|
290
|
+
code: z11.ZodIssueCode.custom,
|
|
291
|
+
message: "Expected a qualified mounting reference or calc(reference +/- Ndegcw|Ndegccw)"
|
|
292
|
+
});
|
|
293
|
+
return;
|
|
294
|
+
}
|
|
295
|
+
if (match[3] !== void 0 && !Number.isFinite(Number(match[3]))) {
|
|
296
|
+
ctx.addIssue({
|
|
297
|
+
code: z11.ZodIssueCode.custom,
|
|
298
|
+
message: "Mount rotation angle must be finite"
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
});
|
|
302
|
+
var boardMountRotationAnchor = z11.custom((value) => typeof value === "string", {
|
|
303
|
+
message: "Expected a board edge or component identity path"
|
|
304
|
+
}).transform((value) => value.trim()).refine((value) => anchor.test(value), {
|
|
305
|
+
message: "Expected a board edge or component identity path"
|
|
306
|
+
});
|
|
307
|
+
var boardMountOrientation = z11.enum([
|
|
308
|
+
"top_layer_toward_mount_face",
|
|
309
|
+
"bottom_layer_toward_mount_face"
|
|
310
|
+
]);
|
|
311
|
+
|
|
268
312
|
// lib/assembly/index.ts
|
|
269
313
|
var assemblyProps = {
|
|
270
314
|
device: assemblyDeviceProps,
|
|
@@ -275,16 +319,16 @@ var assemblyProps = {
|
|
|
275
319
|
};
|
|
276
320
|
|
|
277
321
|
// lib/enclosure/cutout-aperture.ts
|
|
278
|
-
import { z as
|
|
322
|
+
import { z as z12 } from "zod";
|
|
279
323
|
var enclosureCutoutApertureShapes = ["pill", "rect", "circle"];
|
|
280
|
-
var cutoutApertureBaseProps =
|
|
324
|
+
var cutoutApertureBaseProps = z12.object({
|
|
281
325
|
margin: distance.optional(),
|
|
282
326
|
widthDimensionOffset: distance.optional(),
|
|
283
327
|
heightDimensionOffset: distance.optional(),
|
|
284
328
|
depth: distance.optional()
|
|
285
329
|
});
|
|
286
330
|
var apertureOnlyProps = cutoutApertureBaseProps.shape;
|
|
287
|
-
var enclosureCutoutApertureProps =
|
|
331
|
+
var enclosureCutoutApertureProps = z12.discriminatedUnion("shape", [
|
|
288
332
|
pillShapeProps.extend(apertureOnlyProps),
|
|
289
333
|
rectShapeProps.extend(apertureOnlyProps),
|
|
290
334
|
circleShapeProps.extend(apertureOnlyProps)
|
|
@@ -292,10 +336,10 @@ var enclosureCutoutApertureProps = z11.discriminatedUnion("shape", [
|
|
|
292
336
|
expectTypesMatch(true);
|
|
293
337
|
|
|
294
338
|
// lib/enclosure/fdm/box.ts
|
|
295
|
-
import { z as
|
|
296
|
-
var enclosureFdmBoxProps =
|
|
297
|
-
name:
|
|
298
|
-
boardRef:
|
|
339
|
+
import { z as z13 } from "zod";
|
|
340
|
+
var enclosureFdmBoxProps = z13.object({
|
|
341
|
+
name: z13.string().optional(),
|
|
342
|
+
boardRef: z13.string().min(1),
|
|
299
343
|
width: distance.optional(),
|
|
300
344
|
height: distance.optional(),
|
|
301
345
|
depth: distance.optional(),
|
|
@@ -306,8 +350,8 @@ var enclosureFdmBoxProps = z12.object({
|
|
|
306
350
|
standoffHeight: distance.optional(),
|
|
307
351
|
topHeadroom: distance.optional(),
|
|
308
352
|
lidLipDepth: distance.optional(),
|
|
309
|
-
disableCutouts:
|
|
310
|
-
showHiddenEdges:
|
|
353
|
+
disableCutouts: z13.boolean().optional(),
|
|
354
|
+
showHiddenEdges: z13.boolean().optional()
|
|
311
355
|
});
|
|
312
356
|
expectTypesMatch(true);
|
|
313
357
|
|
|
@@ -320,8 +364,8 @@ var enclosureProps = {
|
|
|
320
364
|
};
|
|
321
365
|
|
|
322
366
|
// lib/common/portHints.ts
|
|
323
|
-
import { z as
|
|
324
|
-
var portHints =
|
|
367
|
+
import { z as z14 } from "zod";
|
|
368
|
+
var portHints = z14.array(z14.string().or(z14.number()));
|
|
325
369
|
expectTypesMatch(true);
|
|
326
370
|
|
|
327
371
|
// lib/common/layout.ts
|
|
@@ -331,20 +375,20 @@ import {
|
|
|
331
375
|
rotation as rotation2,
|
|
332
376
|
supplier_name
|
|
333
377
|
} from "circuit-json";
|
|
334
|
-
import { z as
|
|
378
|
+
import { z as z24 } from "zod";
|
|
335
379
|
|
|
336
380
|
// lib/common/footprintProp.ts
|
|
337
|
-
import { z as
|
|
338
|
-
var footprintProp =
|
|
381
|
+
import { z as z15 } from "zod";
|
|
382
|
+
var footprintProp = z15.custom((v) => true);
|
|
339
383
|
|
|
340
384
|
// lib/common/kicadFootprintMetadata.ts
|
|
341
385
|
import { distance as distance4, rotation } from "circuit-json";
|
|
342
|
-
import { z as
|
|
386
|
+
import { z as z17 } from "zod";
|
|
343
387
|
|
|
344
388
|
// lib/common/point.ts
|
|
345
389
|
import { distance as distance3 } from "circuit-json";
|
|
346
|
-
import { z as
|
|
347
|
-
var point =
|
|
390
|
+
import { z as z16 } from "zod";
|
|
391
|
+
var point = z16.object({
|
|
348
392
|
x: distance3,
|
|
349
393
|
y: distance3
|
|
350
394
|
});
|
|
@@ -354,25 +398,25 @@ var kicadAt = point.extend({
|
|
|
354
398
|
rotation: rotation.optional()
|
|
355
399
|
});
|
|
356
400
|
expectTypesMatch(true);
|
|
357
|
-
var kicadFont =
|
|
401
|
+
var kicadFont = z17.object({
|
|
358
402
|
size: point.optional(),
|
|
359
403
|
thickness: distance4.optional()
|
|
360
404
|
});
|
|
361
405
|
expectTypesMatch(true);
|
|
362
|
-
var kicadEffects =
|
|
406
|
+
var kicadEffects = z17.object({
|
|
363
407
|
font: kicadFont.optional()
|
|
364
408
|
});
|
|
365
409
|
expectTypesMatch(true);
|
|
366
|
-
var kicadProperty =
|
|
367
|
-
value:
|
|
410
|
+
var kicadProperty = z17.object({
|
|
411
|
+
value: z17.string(),
|
|
368
412
|
at: kicadAt.optional(),
|
|
369
|
-
layer:
|
|
370
|
-
uuid:
|
|
371
|
-
hide:
|
|
413
|
+
layer: z17.string().optional(),
|
|
414
|
+
uuid: z17.string().optional(),
|
|
415
|
+
hide: z17.boolean().optional(),
|
|
372
416
|
effects: kicadEffects.optional()
|
|
373
417
|
});
|
|
374
418
|
expectTypesMatch(true);
|
|
375
|
-
var kicadFootprintProperties =
|
|
419
|
+
var kicadFootprintProperties = z17.object({
|
|
376
420
|
Reference: kicadProperty.optional(),
|
|
377
421
|
Value: kicadProperty.optional(),
|
|
378
422
|
Datasheet: kicadProperty.optional(),
|
|
@@ -381,74 +425,74 @@ var kicadFootprintProperties = z16.object({
|
|
|
381
425
|
expectTypesMatch(
|
|
382
426
|
true
|
|
383
427
|
);
|
|
384
|
-
var kicadFootprintAttributes =
|
|
385
|
-
through_hole:
|
|
386
|
-
smd:
|
|
387
|
-
exclude_from_pos_files:
|
|
388
|
-
exclude_from_bom:
|
|
428
|
+
var kicadFootprintAttributes = z17.object({
|
|
429
|
+
through_hole: z17.boolean().optional(),
|
|
430
|
+
smd: z17.boolean().optional(),
|
|
431
|
+
exclude_from_pos_files: z17.boolean().optional(),
|
|
432
|
+
exclude_from_bom: z17.boolean().optional()
|
|
389
433
|
});
|
|
390
434
|
expectTypesMatch(
|
|
391
435
|
true
|
|
392
436
|
);
|
|
393
|
-
var kicadFootprintPad =
|
|
394
|
-
name:
|
|
395
|
-
type:
|
|
396
|
-
shape:
|
|
437
|
+
var kicadFootprintPad = z17.object({
|
|
438
|
+
name: z17.string(),
|
|
439
|
+
type: z17.string(),
|
|
440
|
+
shape: z17.string().optional(),
|
|
397
441
|
at: kicadAt.optional(),
|
|
398
442
|
size: point.optional(),
|
|
399
443
|
drill: distance4.optional(),
|
|
400
|
-
layers:
|
|
401
|
-
removeUnusedLayers:
|
|
402
|
-
uuid:
|
|
444
|
+
layers: z17.array(z17.string()).optional(),
|
|
445
|
+
removeUnusedLayers: z17.boolean().optional(),
|
|
446
|
+
uuid: z17.string().optional()
|
|
403
447
|
});
|
|
404
448
|
expectTypesMatch(true);
|
|
405
|
-
var kicadFootprintModel =
|
|
406
|
-
path:
|
|
449
|
+
var kicadFootprintModel = z17.object({
|
|
450
|
+
path: z17.string(),
|
|
407
451
|
offset: point3.optional(),
|
|
408
452
|
scale: point3.optional(),
|
|
409
453
|
rotate: point3.optional()
|
|
410
454
|
});
|
|
411
455
|
expectTypesMatch(true);
|
|
412
|
-
var kicadFootprintMetadata =
|
|
413
|
-
footprintName:
|
|
414
|
-
version:
|
|
415
|
-
generator:
|
|
416
|
-
generatorVersion:
|
|
417
|
-
layer:
|
|
456
|
+
var kicadFootprintMetadata = z17.object({
|
|
457
|
+
footprintName: z17.string().optional(),
|
|
458
|
+
version: z17.union([z17.number(), z17.string()]).optional(),
|
|
459
|
+
generator: z17.string().optional(),
|
|
460
|
+
generatorVersion: z17.union([z17.number(), z17.string()]).optional(),
|
|
461
|
+
layer: z17.string().optional(),
|
|
418
462
|
properties: kicadFootprintProperties.optional(),
|
|
419
463
|
attributes: kicadFootprintAttributes.optional(),
|
|
420
|
-
pads:
|
|
421
|
-
embeddedFonts:
|
|
464
|
+
pads: z17.array(kicadFootprintPad).optional(),
|
|
465
|
+
embeddedFonts: z17.boolean().optional(),
|
|
422
466
|
model: kicadFootprintModel.optional()
|
|
423
467
|
});
|
|
424
468
|
expectTypesMatch(true);
|
|
425
469
|
|
|
426
470
|
// lib/common/kicadSymbolMetadata.ts
|
|
427
471
|
import { distance as distance5 } from "circuit-json";
|
|
428
|
-
import { z as
|
|
429
|
-
var kicadSymbolPinNumbers =
|
|
430
|
-
hide:
|
|
472
|
+
import { z as z18 } from "zod";
|
|
473
|
+
var kicadSymbolPinNumbers = z18.object({
|
|
474
|
+
hide: z18.boolean().optional()
|
|
431
475
|
});
|
|
432
476
|
expectTypesMatch(true);
|
|
433
|
-
var kicadSymbolPinNames =
|
|
477
|
+
var kicadSymbolPinNames = z18.object({
|
|
434
478
|
offset: distance5.optional(),
|
|
435
|
-
hide:
|
|
479
|
+
hide: z18.boolean().optional()
|
|
436
480
|
});
|
|
437
481
|
expectTypesMatch(true);
|
|
438
|
-
var kicadSymbolEffects =
|
|
482
|
+
var kicadSymbolEffects = z18.object({
|
|
439
483
|
font: kicadFont.optional(),
|
|
440
|
-
justify:
|
|
441
|
-
hide:
|
|
484
|
+
justify: z18.union([z18.string(), z18.array(z18.string())]).optional(),
|
|
485
|
+
hide: z18.boolean().optional()
|
|
442
486
|
});
|
|
443
487
|
expectTypesMatch(true);
|
|
444
|
-
var kicadSymbolProperty =
|
|
445
|
-
value:
|
|
446
|
-
id:
|
|
488
|
+
var kicadSymbolProperty = z18.object({
|
|
489
|
+
value: z18.string(),
|
|
490
|
+
id: z18.union([z18.number(), z18.string()]).optional(),
|
|
447
491
|
at: kicadAt.optional(),
|
|
448
492
|
effects: kicadSymbolEffects.optional()
|
|
449
493
|
});
|
|
450
494
|
expectTypesMatch(true);
|
|
451
|
-
var kicadSymbolProperties =
|
|
495
|
+
var kicadSymbolProperties = z18.object({
|
|
452
496
|
Reference: kicadSymbolProperty.optional(),
|
|
453
497
|
Value: kicadSymbolProperty.optional(),
|
|
454
498
|
Footprint: kicadSymbolProperty.optional(),
|
|
@@ -458,55 +502,55 @@ var kicadSymbolProperties = z17.object({
|
|
|
458
502
|
ki_fp_filters: kicadSymbolProperty.optional()
|
|
459
503
|
});
|
|
460
504
|
expectTypesMatch(true);
|
|
461
|
-
var kicadSymbolMetadata =
|
|
462
|
-
symbolName:
|
|
463
|
-
extends:
|
|
505
|
+
var kicadSymbolMetadata = z18.object({
|
|
506
|
+
symbolName: z18.string().optional(),
|
|
507
|
+
extends: z18.string().optional(),
|
|
464
508
|
pinNumbers: kicadSymbolPinNumbers.optional(),
|
|
465
509
|
pinNames: kicadSymbolPinNames.optional(),
|
|
466
|
-
excludeFromSim:
|
|
467
|
-
inBom:
|
|
468
|
-
onBoard:
|
|
510
|
+
excludeFromSim: z18.boolean().optional(),
|
|
511
|
+
inBom: z18.boolean().optional(),
|
|
512
|
+
onBoard: z18.boolean().optional(),
|
|
469
513
|
properties: kicadSymbolProperties.optional(),
|
|
470
|
-
embeddedFonts:
|
|
514
|
+
embeddedFonts: z18.boolean().optional()
|
|
471
515
|
});
|
|
472
516
|
expectTypesMatch(true);
|
|
473
517
|
|
|
474
518
|
// lib/common/pcbStyle.ts
|
|
475
519
|
import { distance as distance6 } from "circuit-json";
|
|
476
|
-
import { z as
|
|
477
|
-
var pcbStyle =
|
|
520
|
+
import { z as z19 } from "zod";
|
|
521
|
+
var pcbStyle = z19.object({
|
|
478
522
|
silkscreenFontSize: distance6.optional(),
|
|
479
523
|
viaPadDiameter: distance6.optional(),
|
|
480
524
|
viaHoleDiameter: distance6.optional(),
|
|
481
|
-
silkscreenTextPosition:
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
offsetX:
|
|
485
|
-
offsetY:
|
|
525
|
+
silkscreenTextPosition: z19.union([
|
|
526
|
+
z19.enum(["centered", "outside", "none"]),
|
|
527
|
+
z19.object({
|
|
528
|
+
offsetX: z19.number(),
|
|
529
|
+
offsetY: z19.number()
|
|
486
530
|
})
|
|
487
531
|
]).optional(),
|
|
488
|
-
silkscreenTextVisibility:
|
|
532
|
+
silkscreenTextVisibility: z19.enum(["hidden", "visible", "inherit"]).optional()
|
|
489
533
|
});
|
|
490
534
|
expectTypesMatch(true);
|
|
491
535
|
|
|
492
536
|
// lib/common/pcbSx.ts
|
|
493
537
|
import { length as length2 } from "circuit-json";
|
|
494
|
-
import { z as
|
|
495
|
-
var pcbSxValue =
|
|
538
|
+
import { z as z20 } from "zod";
|
|
539
|
+
var pcbSxValue = z20.object({
|
|
496
540
|
fontSize: length2.optional(),
|
|
497
541
|
pcbX: pcbCoordinate.optional(),
|
|
498
542
|
pcbY: pcbCoordinate.optional(),
|
|
499
|
-
visibility:
|
|
543
|
+
visibility: z20.enum(["hidden", "visible", "inherit"]).optional()
|
|
500
544
|
});
|
|
501
|
-
var pcbSx =
|
|
502
|
-
|
|
545
|
+
var pcbSx = z20.record(
|
|
546
|
+
z20.string(),
|
|
503
547
|
pcbSxValue
|
|
504
548
|
);
|
|
505
549
|
expectTypesMatch(true);
|
|
506
550
|
|
|
507
551
|
// lib/common/pinAttributeMap.ts
|
|
508
|
-
import { z as
|
|
509
|
-
var pinCapability =
|
|
552
|
+
import { z as z21 } from "zod";
|
|
553
|
+
var pinCapability = z21.enum([
|
|
510
554
|
"i2c_sda",
|
|
511
555
|
"i2c_scl",
|
|
512
556
|
"spi_cs",
|
|
@@ -516,61 +560,61 @@ var pinCapability = z20.enum([
|
|
|
516
560
|
"uart_tx",
|
|
517
561
|
"uart_rx"
|
|
518
562
|
]);
|
|
519
|
-
var pinAttributeMap =
|
|
520
|
-
isInput:
|
|
521
|
-
isOutput:
|
|
522
|
-
isBidirectional:
|
|
523
|
-
isPassive:
|
|
524
|
-
canUseTriState:
|
|
525
|
-
isUsingTriState:
|
|
526
|
-
canUseOpenCollector:
|
|
527
|
-
isUsingOpenCollector:
|
|
528
|
-
canUseOpenEmitter:
|
|
529
|
-
isUsingOpenEmitter:
|
|
530
|
-
capabilities:
|
|
531
|
-
activeCapabilities:
|
|
563
|
+
var pinAttributeMap = z21.object({
|
|
564
|
+
isInput: z21.boolean().optional(),
|
|
565
|
+
isOutput: z21.boolean().optional(),
|
|
566
|
+
isBidirectional: z21.boolean().optional(),
|
|
567
|
+
isPassive: z21.boolean().optional(),
|
|
568
|
+
canUseTriState: z21.boolean().optional(),
|
|
569
|
+
isUsingTriState: z21.boolean().optional(),
|
|
570
|
+
canUseOpenCollector: z21.boolean().optional(),
|
|
571
|
+
isUsingOpenCollector: z21.boolean().optional(),
|
|
572
|
+
canUseOpenEmitter: z21.boolean().optional(),
|
|
573
|
+
isUsingOpenEmitter: z21.boolean().optional(),
|
|
574
|
+
capabilities: z21.array(pinCapability).optional(),
|
|
575
|
+
activeCapabilities: z21.array(pinCapability).optional(),
|
|
532
576
|
activeCapability: pinCapability.optional(),
|
|
533
|
-
providesPower:
|
|
534
|
-
requiresPower:
|
|
535
|
-
providesGround:
|
|
536
|
-
requiresGround:
|
|
537
|
-
providesVoltage:
|
|
538
|
-
requiresVoltage:
|
|
539
|
-
doNotConnect:
|
|
540
|
-
includeInBoardPinout:
|
|
541
|
-
highlightColor:
|
|
542
|
-
mustBeConnected:
|
|
543
|
-
canUseInternalPullup:
|
|
544
|
-
isUsingInternalPullup:
|
|
545
|
-
needsExternalPullup:
|
|
546
|
-
canUseInternalPulldown:
|
|
547
|
-
isUsingInternalPulldown:
|
|
548
|
-
needsExternalPulldown:
|
|
549
|
-
canUseOpenDrain:
|
|
550
|
-
isUsingOpenDrain:
|
|
551
|
-
canUsePushPull:
|
|
552
|
-
isUsingPushPull:
|
|
553
|
-
shouldHaveDecouplingCapacitor:
|
|
554
|
-
recommendedDecouplingCapacitorCapacitance:
|
|
555
|
-
isGpio:
|
|
577
|
+
providesPower: z21.boolean().optional(),
|
|
578
|
+
requiresPower: z21.boolean().optional(),
|
|
579
|
+
providesGround: z21.boolean().optional(),
|
|
580
|
+
requiresGround: z21.boolean().optional(),
|
|
581
|
+
providesVoltage: z21.union([z21.string(), z21.number()]).optional(),
|
|
582
|
+
requiresVoltage: z21.union([z21.string(), z21.number()]).optional(),
|
|
583
|
+
doNotConnect: z21.boolean().optional(),
|
|
584
|
+
includeInBoardPinout: z21.boolean().optional(),
|
|
585
|
+
highlightColor: z21.string().optional(),
|
|
586
|
+
mustBeConnected: z21.boolean().optional(),
|
|
587
|
+
canUseInternalPullup: z21.boolean().optional(),
|
|
588
|
+
isUsingInternalPullup: z21.boolean().optional(),
|
|
589
|
+
needsExternalPullup: z21.boolean().optional(),
|
|
590
|
+
canUseInternalPulldown: z21.boolean().optional(),
|
|
591
|
+
isUsingInternalPulldown: z21.boolean().optional(),
|
|
592
|
+
needsExternalPulldown: z21.boolean().optional(),
|
|
593
|
+
canUseOpenDrain: z21.boolean().optional(),
|
|
594
|
+
isUsingOpenDrain: z21.boolean().optional(),
|
|
595
|
+
canUsePushPull: z21.boolean().optional(),
|
|
596
|
+
isUsingPushPull: z21.boolean().optional(),
|
|
597
|
+
shouldHaveDecouplingCapacitor: z21.boolean().optional(),
|
|
598
|
+
recommendedDecouplingCapacitorCapacitance: z21.union([z21.string(), z21.number()]).optional(),
|
|
599
|
+
isGpio: z21.boolean().optional()
|
|
556
600
|
});
|
|
557
601
|
expectTypesMatch(true);
|
|
558
602
|
|
|
559
603
|
// lib/common/schStyle.ts
|
|
560
604
|
import { distance as distance7 } from "circuit-json";
|
|
561
|
-
import { z as
|
|
562
|
-
var schStyle =
|
|
563
|
-
defaultPassiveSize:
|
|
564
|
-
defaultCapacitorOrientation:
|
|
605
|
+
import { z as z22 } from "zod";
|
|
606
|
+
var schStyle = z22.object({
|
|
607
|
+
defaultPassiveSize: z22.union([z22.enum(["xs", "sm", "md"]), distance7]).optional(),
|
|
608
|
+
defaultCapacitorOrientation: z22.enum(["vertical", "none"]).optional()
|
|
565
609
|
});
|
|
566
610
|
expectTypesMatch(true);
|
|
567
611
|
|
|
568
612
|
// lib/common/symbolProp.ts
|
|
569
|
-
import { z as
|
|
570
|
-
var symbolProp =
|
|
613
|
+
import { z as z23 } from "zod";
|
|
614
|
+
var symbolProp = z23.custom((v) => true);
|
|
571
615
|
|
|
572
616
|
// lib/common/layout.ts
|
|
573
|
-
var pcbLayoutProps =
|
|
617
|
+
var pcbLayoutProps = z24.object({
|
|
574
618
|
pcbX: pcbCoordinate.optional(),
|
|
575
619
|
pcbY: pcbCoordinate.optional(),
|
|
576
620
|
pcbLeftEdgeX: pcbCoordinate.optional(),
|
|
@@ -580,14 +624,14 @@ var pcbLayoutProps = z23.object({
|
|
|
580
624
|
pcbOffsetX: distance8.optional(),
|
|
581
625
|
pcbOffsetY: distance8.optional(),
|
|
582
626
|
pcbRotation: rotation2.optional(),
|
|
583
|
-
pcbPositionAnchor:
|
|
584
|
-
pcbPositionMode:
|
|
627
|
+
pcbPositionAnchor: z24.string().optional(),
|
|
628
|
+
pcbPositionMode: z24.enum([
|
|
585
629
|
"relative_to_group_anchor",
|
|
586
630
|
"auto",
|
|
587
631
|
"relative_to_board_anchor",
|
|
588
632
|
"relative_to_component_anchor"
|
|
589
633
|
]).optional(),
|
|
590
|
-
shouldBeOnEdgeOfBoard:
|
|
634
|
+
shouldBeOnEdgeOfBoard: z24.boolean().optional(),
|
|
591
635
|
layer: layer_ref.optional(),
|
|
592
636
|
pcbMarginTop: distance8.optional(),
|
|
593
637
|
pcbMarginRight: distance8.optional(),
|
|
@@ -597,11 +641,11 @@ var pcbLayoutProps = z23.object({
|
|
|
597
641
|
pcbMarginY: distance8.optional(),
|
|
598
642
|
pcbStyle: pcbStyle.optional(),
|
|
599
643
|
pcbSx: pcbSx.optional(),
|
|
600
|
-
pcbRelative:
|
|
601
|
-
relative:
|
|
644
|
+
pcbRelative: z24.boolean().optional(),
|
|
645
|
+
relative: z24.boolean().optional()
|
|
602
646
|
});
|
|
603
647
|
expectTypesMatch(true);
|
|
604
|
-
var commonLayoutProps =
|
|
648
|
+
var commonLayoutProps = z24.object({
|
|
605
649
|
pcbX: pcbCoordinate.optional(),
|
|
606
650
|
pcbY: pcbCoordinate.optional(),
|
|
607
651
|
pcbLeftEdgeX: pcbCoordinate.optional(),
|
|
@@ -611,14 +655,14 @@ var commonLayoutProps = z23.object({
|
|
|
611
655
|
pcbOffsetX: distance8.optional(),
|
|
612
656
|
pcbOffsetY: distance8.optional(),
|
|
613
657
|
pcbRotation: rotation2.optional(),
|
|
614
|
-
pcbPositionAnchor:
|
|
615
|
-
pcbPositionMode:
|
|
658
|
+
pcbPositionAnchor: z24.string().optional(),
|
|
659
|
+
pcbPositionMode: z24.enum([
|
|
616
660
|
"relative_to_group_anchor",
|
|
617
661
|
"auto",
|
|
618
662
|
"relative_to_board_anchor",
|
|
619
663
|
"relative_to_component_anchor"
|
|
620
664
|
]).optional(),
|
|
621
|
-
shouldBeOnEdgeOfBoard:
|
|
665
|
+
shouldBeOnEdgeOfBoard: z24.boolean().optional(),
|
|
622
666
|
pcbMarginTop: distance8.optional(),
|
|
623
667
|
pcbMarginRight: distance8.optional(),
|
|
624
668
|
pcbMarginBottom: distance8.optional(),
|
|
@@ -640,45 +684,45 @@ var commonLayoutProps = z23.object({
|
|
|
640
684
|
footprint: footprintProp.optional(),
|
|
641
685
|
symbol: symbolProp.optional(),
|
|
642
686
|
schStyle: schStyle.optional(),
|
|
643
|
-
relative:
|
|
644
|
-
schRelative:
|
|
645
|
-
pcbRelative:
|
|
687
|
+
relative: z24.boolean().optional(),
|
|
688
|
+
schRelative: z24.boolean().optional(),
|
|
689
|
+
pcbRelative: z24.boolean().optional()
|
|
646
690
|
});
|
|
647
691
|
expectTypesMatch(true);
|
|
648
|
-
var supplierProps =
|
|
649
|
-
supplierPartNumbers:
|
|
692
|
+
var supplierProps = z24.object({
|
|
693
|
+
supplierPartNumbers: z24.record(supplier_name, z24.array(z24.string())).optional()
|
|
650
694
|
});
|
|
651
695
|
expectTypesMatch(true);
|
|
652
696
|
var commonComponentProps = commonLayoutProps.merge(supplierProps).extend({
|
|
653
|
-
key:
|
|
654
|
-
name:
|
|
655
|
-
displayName:
|
|
656
|
-
schSectionName:
|
|
697
|
+
key: z24.any().optional(),
|
|
698
|
+
name: z24.string(),
|
|
699
|
+
displayName: z24.string().optional(),
|
|
700
|
+
schSectionName: z24.string().optional().describe(
|
|
657
701
|
'This component will be drawn as part of this section e.g. "Power"'
|
|
658
702
|
),
|
|
659
|
-
schSheetName:
|
|
703
|
+
schSheetName: z24.string().optional().describe(
|
|
660
704
|
'This component will be drawn as part of this sheet e.g. "Main"'
|
|
661
705
|
),
|
|
662
706
|
datasheetUrl: url.optional(),
|
|
663
707
|
cadModel: cadModelProp.optional(),
|
|
664
708
|
kicadFootprintMetadata: kicadFootprintMetadata.optional(),
|
|
665
709
|
kicadSymbolMetadata: kicadSymbolMetadata.optional(),
|
|
666
|
-
children:
|
|
667
|
-
symbolName:
|
|
668
|
-
doNotPlace:
|
|
669
|
-
allowOffBoard:
|
|
710
|
+
children: z24.any().optional(),
|
|
711
|
+
symbolName: z24.string().optional(),
|
|
712
|
+
doNotPlace: z24.boolean().optional(),
|
|
713
|
+
allowOffBoard: z24.boolean().optional().describe(
|
|
670
714
|
"Allows the PCB component to hang off the board (e.g. for USB ports or displays)"
|
|
671
715
|
),
|
|
672
|
-
obstructsWithinBounds:
|
|
716
|
+
obstructsWithinBounds: z24.boolean().optional().describe(
|
|
673
717
|
"Does this component take up all the space within its bounds on a layer. This is generally true except for when separated pin headers are being represented by a single component (in which case, chips can be placed between the pin headers) or for tall modules where chips fit underneath"
|
|
674
718
|
),
|
|
675
|
-
showAsTranslucentModel:
|
|
719
|
+
showAsTranslucentModel: z24.boolean().optional().describe(
|
|
676
720
|
"Whether to show this component's CAD model as translucent in the 3D viewer."
|
|
677
721
|
),
|
|
678
|
-
pinAttributes:
|
|
679
|
-
mpn:
|
|
680
|
-
mfn:
|
|
681
|
-
manufacturerPartNumber:
|
|
722
|
+
pinAttributes: z24.record(z24.string(), pinAttributeMap).optional(),
|
|
723
|
+
mpn: z24.string().describe("Manufacturer Part Number").optional(),
|
|
724
|
+
mfn: z24.string().describe("Manufacturer Part Number").optional(),
|
|
725
|
+
manufacturerPartNumber: z24.string().optional()
|
|
682
726
|
});
|
|
683
727
|
expectTypesMatch(true);
|
|
684
728
|
var componentProps = commonComponentProps;
|
|
@@ -693,7 +737,7 @@ var lrPolarPins = [
|
|
|
693
737
|
"cathode",
|
|
694
738
|
"neg"
|
|
695
739
|
];
|
|
696
|
-
var distanceOrMultiplier = distance8.or(
|
|
740
|
+
var distanceOrMultiplier = distance8.or(z24.enum(["2x", "3x", "4x"]));
|
|
697
741
|
|
|
698
742
|
// lib/common/resolveManufacturerPartNumber.ts
|
|
699
743
|
var resolveManufacturerPartNumber = (props) => {
|
|
@@ -708,9 +752,9 @@ var resolveManufacturerPartNumber = (props) => {
|
|
|
708
752
|
|
|
709
753
|
// lib/common/pcbPath.ts
|
|
710
754
|
import { layer_ref as layer_ref2 } from "circuit-json";
|
|
711
|
-
import { z as
|
|
755
|
+
import { z as z25 } from "zod";
|
|
712
756
|
var basePcbPathPoint = point.extend({
|
|
713
|
-
via:
|
|
757
|
+
via: z25.boolean().optional(),
|
|
714
758
|
fromLayer: layer_ref2.optional(),
|
|
715
759
|
toLayer: layer_ref2.optional()
|
|
716
760
|
});
|
|
@@ -718,20 +762,20 @@ var pcbPathPoint = basePcbPathPoint.superRefine((value, ctx) => {
|
|
|
718
762
|
if (value.via) {
|
|
719
763
|
if (!value.toLayer) {
|
|
720
764
|
ctx.addIssue({
|
|
721
|
-
code:
|
|
765
|
+
code: z25.ZodIssueCode.custom,
|
|
722
766
|
message: "toLayer is required when via is true",
|
|
723
767
|
path: ["toLayer"]
|
|
724
768
|
});
|
|
725
769
|
}
|
|
726
770
|
} else if (value.fromLayer || value.toLayer) {
|
|
727
771
|
ctx.addIssue({
|
|
728
|
-
code:
|
|
772
|
+
code: z25.ZodIssueCode.custom,
|
|
729
773
|
message: "fromLayer/toLayer are only allowed when via is true",
|
|
730
774
|
path: ["via"]
|
|
731
775
|
});
|
|
732
776
|
}
|
|
733
777
|
});
|
|
734
|
-
var pcbPath =
|
|
778
|
+
var pcbPath = z25.array(z25.union([pcbPathPoint, z25.string()]));
|
|
735
779
|
expectTypesMatch(true);
|
|
736
780
|
expectTypesMatch(true);
|
|
737
781
|
|
|
@@ -16199,8 +16243,8 @@ var footprinterStringExamples = [
|
|
|
16199
16243
|
];
|
|
16200
16244
|
|
|
16201
16245
|
// lib/common/schematicOrientation.ts
|
|
16202
|
-
import { z as
|
|
16203
|
-
var schematicOrientation =
|
|
16246
|
+
import { z as z26 } from "zod";
|
|
16247
|
+
var schematicOrientation = z26.enum([
|
|
16204
16248
|
"vertical",
|
|
16205
16249
|
"horizontal",
|
|
16206
16250
|
"pos_top",
|
|
@@ -16219,32 +16263,32 @@ expectTypesMatch(
|
|
|
16219
16263
|
);
|
|
16220
16264
|
|
|
16221
16265
|
// lib/common/schematicPinDefinitions.ts
|
|
16222
|
-
import { z as
|
|
16223
|
-
var explicitPinSideDefinition =
|
|
16224
|
-
pins:
|
|
16225
|
-
direction:
|
|
16226
|
-
|
|
16227
|
-
|
|
16228
|
-
|
|
16229
|
-
|
|
16266
|
+
import { z as z27 } from "zod";
|
|
16267
|
+
var explicitPinSideDefinition = z27.object({
|
|
16268
|
+
pins: z27.array(z27.union([z27.number(), z27.string()])),
|
|
16269
|
+
direction: z27.union([
|
|
16270
|
+
z27.literal("top-to-bottom"),
|
|
16271
|
+
z27.literal("left-to-right"),
|
|
16272
|
+
z27.literal("bottom-to-top"),
|
|
16273
|
+
z27.literal("right-to-left")
|
|
16230
16274
|
])
|
|
16231
16275
|
});
|
|
16232
|
-
var pinSideDefinitionInput =
|
|
16233
|
-
var pinSideDefinitionWithDefaultDirection = (direction2) =>
|
|
16276
|
+
var pinSideDefinitionInput = z27.array(z27.union([z27.number(), z27.string()]));
|
|
16277
|
+
var pinSideDefinitionWithDefaultDirection = (direction2) => z27.union([explicitPinSideDefinition, pinSideDefinitionInput]).transform(
|
|
16234
16278
|
(value) => Array.isArray(value) ? {
|
|
16235
16279
|
pins: value,
|
|
16236
16280
|
direction: direction2
|
|
16237
16281
|
} : value
|
|
16238
16282
|
);
|
|
16239
|
-
var schematicPortArrangement =
|
|
16240
|
-
leftSize:
|
|
16241
|
-
topSize:
|
|
16242
|
-
rightSize:
|
|
16243
|
-
bottomSize:
|
|
16244
|
-
leftPinCount:
|
|
16245
|
-
rightPinCount:
|
|
16246
|
-
topPinCount:
|
|
16247
|
-
bottomPinCount:
|
|
16283
|
+
var schematicPortArrangement = z27.object({
|
|
16284
|
+
leftSize: z27.number().optional().describe("@deprecated, use leftPinCount"),
|
|
16285
|
+
topSize: z27.number().optional().describe("@deprecated, use topPinCount"),
|
|
16286
|
+
rightSize: z27.number().optional().describe("@deprecated, use rightPinCount"),
|
|
16287
|
+
bottomSize: z27.number().optional().describe("@deprecated, use bottomPinCount"),
|
|
16288
|
+
leftPinCount: z27.number().optional(),
|
|
16289
|
+
rightPinCount: z27.number().optional(),
|
|
16290
|
+
topPinCount: z27.number().optional(),
|
|
16291
|
+
bottomPinCount: z27.number().optional(),
|
|
16248
16292
|
leftSide: pinSideDefinitionWithDefaultDirection("top-to-bottom").optional(),
|
|
16249
16293
|
rightSide: pinSideDefinitionWithDefaultDirection("top-to-bottom").optional(),
|
|
16250
16294
|
topSide: pinSideDefinitionWithDefaultDirection("left-to-right").optional(),
|
|
@@ -16255,9 +16299,9 @@ expectTypesMatch(true);
|
|
|
16255
16299
|
|
|
16256
16300
|
// lib/common/schematicPinStyle.ts
|
|
16257
16301
|
import { distance as distance9 } from "circuit-json";
|
|
16258
|
-
import { z as
|
|
16259
|
-
var schematicPinStyle =
|
|
16260
|
-
|
|
16302
|
+
import { z as z28 } from "zod";
|
|
16303
|
+
var schematicPinStyle = z28.record(
|
|
16304
|
+
z28.object({
|
|
16261
16305
|
marginLeft: distance9.optional(),
|
|
16262
16306
|
marginRight: distance9.optional(),
|
|
16263
16307
|
marginTop: distance9.optional(),
|
|
@@ -16271,17 +16315,17 @@ var schematicPinStyle = z27.record(
|
|
|
16271
16315
|
expectTypesMatch(true);
|
|
16272
16316
|
|
|
16273
16317
|
// lib/common/schematicPinLabel.ts
|
|
16274
|
-
import { z as
|
|
16275
|
-
var schematicPinLabel =
|
|
16318
|
+
import { z as z29 } from "zod";
|
|
16319
|
+
var schematicPinLabel = z29.string().regex(/^[A-Za-z0-9_]+$/);
|
|
16276
16320
|
|
|
16277
16321
|
// lib/common/schematicSize.ts
|
|
16278
16322
|
import { distance as distance10 } from "circuit-json";
|
|
16279
|
-
import { z as
|
|
16280
|
-
var schematicSymbolSize =
|
|
16323
|
+
import { z as z30 } from "zod";
|
|
16324
|
+
var schematicSymbolSize = z30.enum(["xs", "sm", "default", "md"]).or(distance10.pipe(z30.number().finite())).describe("distance between pin1 and pin2 of the schematic symbol");
|
|
16281
16325
|
|
|
16282
16326
|
// lib/common/kicadPinMetadata.ts
|
|
16283
|
-
import { z as
|
|
16284
|
-
var kicadPinElectricalType =
|
|
16327
|
+
import { z as z31 } from "zod";
|
|
16328
|
+
var kicadPinElectricalType = z31.enum([
|
|
16285
16329
|
"input",
|
|
16286
16330
|
"output",
|
|
16287
16331
|
"bidirectional",
|
|
@@ -16295,7 +16339,7 @@ var kicadPinElectricalType = z30.enum([
|
|
|
16295
16339
|
"open_emitter",
|
|
16296
16340
|
"no_connect"
|
|
16297
16341
|
]);
|
|
16298
|
-
var kicadPinGraphicStyle =
|
|
16342
|
+
var kicadPinGraphicStyle = z31.enum([
|
|
16299
16343
|
"line",
|
|
16300
16344
|
"inverted",
|
|
16301
16345
|
"clock",
|
|
@@ -16306,7 +16350,7 @@ var kicadPinGraphicStyle = z30.enum([
|
|
|
16306
16350
|
"falling_edge_clock",
|
|
16307
16351
|
"nonlogic"
|
|
16308
16352
|
]);
|
|
16309
|
-
var kicadPinMetadata =
|
|
16353
|
+
var kicadPinMetadata = z31.object({
|
|
16310
16354
|
electricalType: kicadPinElectricalType.optional(),
|
|
16311
16355
|
graphicStyle: kicadPinGraphicStyle.optional(),
|
|
16312
16356
|
pinLength: distance.optional(),
|
|
@@ -16316,14 +16360,14 @@ var kicadPinMetadata = z30.object({
|
|
|
16316
16360
|
expectTypesMatch(true);
|
|
16317
16361
|
|
|
16318
16362
|
// lib/customDrc.ts
|
|
16319
|
-
import { z as
|
|
16320
|
-
var customDrcCheckFn =
|
|
16363
|
+
import { z as z32 } from "zod";
|
|
16364
|
+
var customDrcCheckFn = z32.custom(
|
|
16321
16365
|
(value) => typeof value === "function"
|
|
16322
16366
|
);
|
|
16323
16367
|
|
|
16324
16368
|
// lib/common/ninePointAnchor.ts
|
|
16325
|
-
import { z as
|
|
16326
|
-
var ninePointAnchor =
|
|
16369
|
+
import { z as z33 } from "zod";
|
|
16370
|
+
var ninePointAnchor = z33.enum([
|
|
16327
16371
|
"top_left",
|
|
16328
16372
|
"top_center",
|
|
16329
16373
|
"top_right",
|
|
@@ -16336,47 +16380,47 @@ var ninePointAnchor = z32.enum([
|
|
|
16336
16380
|
]);
|
|
16337
16381
|
|
|
16338
16382
|
// lib/components/board.ts
|
|
16339
|
-
import { z as
|
|
16383
|
+
import { z as z47 } from "zod";
|
|
16340
16384
|
|
|
16341
16385
|
// lib/components/group.ts
|
|
16342
16386
|
import {
|
|
16343
16387
|
length as length3,
|
|
16344
16388
|
distance as distance11
|
|
16345
16389
|
} from "circuit-json";
|
|
16346
|
-
import { z as
|
|
16390
|
+
import { z as z46 } from "zod";
|
|
16347
16391
|
|
|
16348
16392
|
// lib/manual-edits/manual-edit-events/base_manual_edit_event.ts
|
|
16349
|
-
import { z as
|
|
16350
|
-
var base_manual_edit_event =
|
|
16351
|
-
edit_event_id:
|
|
16352
|
-
in_progress:
|
|
16353
|
-
created_at:
|
|
16393
|
+
import { z as z34 } from "zod";
|
|
16394
|
+
var base_manual_edit_event = z34.object({
|
|
16395
|
+
edit_event_id: z34.string(),
|
|
16396
|
+
in_progress: z34.boolean().optional(),
|
|
16397
|
+
created_at: z34.number()
|
|
16354
16398
|
});
|
|
16355
16399
|
expectTypesMatch(
|
|
16356
16400
|
true
|
|
16357
16401
|
);
|
|
16358
16402
|
|
|
16359
16403
|
// lib/manual-edits/manual-edit-events/edit_pcb_component_location_event.ts
|
|
16360
|
-
import { z as
|
|
16404
|
+
import { z as z35 } from "zod";
|
|
16361
16405
|
var edit_pcb_component_location_event = base_manual_edit_event.extend({
|
|
16362
|
-
pcb_edit_event_type:
|
|
16363
|
-
edit_event_type:
|
|
16364
|
-
pcb_component_id:
|
|
16365
|
-
original_center:
|
|
16366
|
-
new_center:
|
|
16406
|
+
pcb_edit_event_type: z35.literal("edit_component_location").describe("deprecated"),
|
|
16407
|
+
edit_event_type: z35.literal("edit_pcb_component_location"),
|
|
16408
|
+
pcb_component_id: z35.string(),
|
|
16409
|
+
original_center: z35.object({ x: z35.number(), y: z35.number() }),
|
|
16410
|
+
new_center: z35.object({ x: z35.number(), y: z35.number() })
|
|
16367
16411
|
});
|
|
16368
16412
|
var edit_component_location_event = edit_pcb_component_location_event;
|
|
16369
16413
|
expectTypesMatch(true);
|
|
16370
16414
|
|
|
16371
16415
|
// lib/manual-edits/manual-edit-events/edit_trace_hint_event.ts
|
|
16372
|
-
import { z as
|
|
16416
|
+
import { z as z36 } from "zod";
|
|
16373
16417
|
var edit_trace_hint_event = base_manual_edit_event.extend({
|
|
16374
|
-
pcb_edit_event_type:
|
|
16375
|
-
edit_event_type:
|
|
16376
|
-
pcb_port_id:
|
|
16377
|
-
pcb_trace_hint_id:
|
|
16378
|
-
route:
|
|
16379
|
-
|
|
16418
|
+
pcb_edit_event_type: z36.literal("edit_trace_hint").describe("deprecated"),
|
|
16419
|
+
edit_event_type: z36.literal("edit_pcb_trace_hint").optional(),
|
|
16420
|
+
pcb_port_id: z36.string(),
|
|
16421
|
+
pcb_trace_hint_id: z36.string().optional(),
|
|
16422
|
+
route: z36.array(
|
|
16423
|
+
z36.object({ x: z36.number(), y: z36.number(), via: z36.boolean().optional() })
|
|
16380
16424
|
)
|
|
16381
16425
|
});
|
|
16382
16426
|
expectTypesMatch(
|
|
@@ -16384,38 +16428,38 @@ expectTypesMatch(
|
|
|
16384
16428
|
);
|
|
16385
16429
|
|
|
16386
16430
|
// lib/manual-edits/manual-edit-events/edit_schematic_component_location_event.ts
|
|
16387
|
-
import { z as
|
|
16431
|
+
import { z as z37 } from "zod";
|
|
16388
16432
|
var edit_schematic_component_location_event = base_manual_edit_event.extend({
|
|
16389
|
-
edit_event_type:
|
|
16390
|
-
schematic_component_id:
|
|
16391
|
-
original_center:
|
|
16392
|
-
new_center:
|
|
16433
|
+
edit_event_type: z37.literal("edit_schematic_component_location"),
|
|
16434
|
+
schematic_component_id: z37.string(),
|
|
16435
|
+
original_center: z37.object({ x: z37.number(), y: z37.number() }),
|
|
16436
|
+
new_center: z37.object({ x: z37.number(), y: z37.number() })
|
|
16393
16437
|
});
|
|
16394
16438
|
expectTypesMatch(true);
|
|
16395
16439
|
|
|
16396
16440
|
// lib/manual-edits/manual-edit-events/edit_pcb_group_location_event.ts
|
|
16397
|
-
import { z as
|
|
16441
|
+
import { z as z38 } from "zod";
|
|
16398
16442
|
var edit_pcb_group_location_event = base_manual_edit_event.extend({
|
|
16399
|
-
edit_event_type:
|
|
16400
|
-
pcb_group_id:
|
|
16401
|
-
original_center:
|
|
16402
|
-
new_center:
|
|
16443
|
+
edit_event_type: z38.literal("edit_pcb_group_location"),
|
|
16444
|
+
pcb_group_id: z38.string(),
|
|
16445
|
+
original_center: z38.object({ x: z38.number(), y: z38.number() }),
|
|
16446
|
+
new_center: z38.object({ x: z38.number(), y: z38.number() })
|
|
16403
16447
|
});
|
|
16404
16448
|
expectTypesMatch(true);
|
|
16405
16449
|
|
|
16406
16450
|
// lib/manual-edits/manual-edit-events/edit_schematic_group_location_event.ts
|
|
16407
|
-
import { z as
|
|
16451
|
+
import { z as z39 } from "zod";
|
|
16408
16452
|
var edit_schematic_group_location_event = base_manual_edit_event.extend({
|
|
16409
|
-
edit_event_type:
|
|
16410
|
-
schematic_group_id:
|
|
16411
|
-
original_center:
|
|
16412
|
-
new_center:
|
|
16453
|
+
edit_event_type: z39.literal("edit_schematic_group_location"),
|
|
16454
|
+
schematic_group_id: z39.string(),
|
|
16455
|
+
original_center: z39.object({ x: z39.number(), y: z39.number() }),
|
|
16456
|
+
new_center: z39.object({ x: z39.number(), y: z39.number() })
|
|
16413
16457
|
});
|
|
16414
16458
|
expectTypesMatch(true);
|
|
16415
16459
|
|
|
16416
16460
|
// lib/manual-edits/manual_edit_event.ts
|
|
16417
|
-
import { z as
|
|
16418
|
-
var manual_edit_event =
|
|
16461
|
+
import { z as z40 } from "zod";
|
|
16462
|
+
var manual_edit_event = z40.union([
|
|
16419
16463
|
edit_pcb_component_location_event,
|
|
16420
16464
|
edit_trace_hint_event,
|
|
16421
16465
|
edit_schematic_component_location_event
|
|
@@ -16423,33 +16467,33 @@ var manual_edit_event = z39.union([
|
|
|
16423
16467
|
expectTypesMatch(true);
|
|
16424
16468
|
|
|
16425
16469
|
// lib/manual-edits/manual_edits_file.ts
|
|
16426
|
-
import { z as
|
|
16470
|
+
import { z as z44 } from "zod";
|
|
16427
16471
|
|
|
16428
16472
|
// lib/manual-edits/manual_pcb_placement.ts
|
|
16429
|
-
import { z as
|
|
16473
|
+
import { z as z41 } from "zod";
|
|
16430
16474
|
import { point as point2 } from "circuit-json";
|
|
16431
|
-
var manual_pcb_placement =
|
|
16432
|
-
selector:
|
|
16433
|
-
relative_to:
|
|
16475
|
+
var manual_pcb_placement = z41.object({
|
|
16476
|
+
selector: z41.string(),
|
|
16477
|
+
relative_to: z41.string().optional().default("group_center").describe("Can be a selector or 'group_center'"),
|
|
16434
16478
|
center: point2
|
|
16435
16479
|
});
|
|
16436
16480
|
expectTypesMatch(true);
|
|
16437
16481
|
|
|
16438
16482
|
// lib/manual-edits/manual_trace_hint.ts
|
|
16439
|
-
import { z as
|
|
16483
|
+
import { z as z42 } from "zod";
|
|
16440
16484
|
import { route_hint_point } from "circuit-json";
|
|
16441
|
-
var manual_trace_hint =
|
|
16442
|
-
pcb_port_selector:
|
|
16443
|
-
offsets:
|
|
16485
|
+
var manual_trace_hint = z42.object({
|
|
16486
|
+
pcb_port_selector: z42.string(),
|
|
16487
|
+
offsets: z42.array(route_hint_point)
|
|
16444
16488
|
});
|
|
16445
16489
|
expectTypesMatch(true);
|
|
16446
16490
|
|
|
16447
16491
|
// lib/manual-edits/manual_schematic_placement.ts
|
|
16448
|
-
import { z as
|
|
16492
|
+
import { z as z43 } from "zod";
|
|
16449
16493
|
import { point as point4 } from "circuit-json";
|
|
16450
|
-
var manual_schematic_placement =
|
|
16451
|
-
selector:
|
|
16452
|
-
relative_to:
|
|
16494
|
+
var manual_schematic_placement = z43.object({
|
|
16495
|
+
selector: z43.string(),
|
|
16496
|
+
relative_to: z43.string().optional().default("group_center").describe("Can be a selector or 'group_center'"),
|
|
16453
16497
|
center: point4
|
|
16454
16498
|
});
|
|
16455
16499
|
expectTypesMatch(
|
|
@@ -16457,37 +16501,37 @@ expectTypesMatch(
|
|
|
16457
16501
|
);
|
|
16458
16502
|
|
|
16459
16503
|
// lib/manual-edits/manual_edits_file.ts
|
|
16460
|
-
var manual_edits_file =
|
|
16461
|
-
pcb_placements:
|
|
16462
|
-
manual_trace_hints:
|
|
16463
|
-
schematic_placements:
|
|
16504
|
+
var manual_edits_file = z44.object({
|
|
16505
|
+
pcb_placements: z44.array(manual_pcb_placement).optional(),
|
|
16506
|
+
manual_trace_hints: z44.array(manual_trace_hint).optional(),
|
|
16507
|
+
schematic_placements: z44.array(manual_schematic_placement).optional()
|
|
16464
16508
|
});
|
|
16465
16509
|
expectTypesMatch(true);
|
|
16466
16510
|
|
|
16467
16511
|
// lib/common/connectionsProp.ts
|
|
16468
|
-
import { z as
|
|
16469
|
-
var connectionTarget =
|
|
16512
|
+
import { z as z45 } from "zod";
|
|
16513
|
+
var connectionTarget = z45.string().or(z45.array(z45.string()).readonly()).or(z45.array(z45.string()));
|
|
16470
16514
|
var createConnectionsProp = (labels) => {
|
|
16471
|
-
return
|
|
16515
|
+
return z45.record(z45.enum(labels), connectionTarget);
|
|
16472
16516
|
};
|
|
16473
16517
|
|
|
16474
16518
|
// lib/components/group.ts
|
|
16475
|
-
var layoutConfig =
|
|
16476
|
-
layoutMode:
|
|
16477
|
-
position:
|
|
16478
|
-
grid:
|
|
16479
|
-
gridCols:
|
|
16480
|
-
gridRows:
|
|
16481
|
-
gridTemplateRows:
|
|
16482
|
-
gridTemplateColumns:
|
|
16483
|
-
gridTemplate:
|
|
16484
|
-
gridGap:
|
|
16485
|
-
gridRowGap:
|
|
16486
|
-
gridColumnGap:
|
|
16487
|
-
flex:
|
|
16488
|
-
flexDirection:
|
|
16489
|
-
alignItems:
|
|
16490
|
-
justifyContent:
|
|
16519
|
+
var layoutConfig = z46.object({
|
|
16520
|
+
layoutMode: z46.enum(["grid", "flex", "match-adapt", "relative", "none"]).optional(),
|
|
16521
|
+
position: z46.enum(["absolute", "relative"]).optional(),
|
|
16522
|
+
grid: z46.boolean().optional(),
|
|
16523
|
+
gridCols: z46.number().or(z46.string()).optional(),
|
|
16524
|
+
gridRows: z46.number().or(z46.string()).optional(),
|
|
16525
|
+
gridTemplateRows: z46.string().optional(),
|
|
16526
|
+
gridTemplateColumns: z46.string().optional(),
|
|
16527
|
+
gridTemplate: z46.string().optional(),
|
|
16528
|
+
gridGap: z46.number().or(z46.string()).optional(),
|
|
16529
|
+
gridRowGap: z46.number().or(z46.string()).optional(),
|
|
16530
|
+
gridColumnGap: z46.number().or(z46.string()).optional(),
|
|
16531
|
+
flex: z46.boolean().or(z46.string()).optional(),
|
|
16532
|
+
flexDirection: z46.enum(["row", "column"]).optional(),
|
|
16533
|
+
alignItems: z46.enum(["start", "center", "end", "stretch"]).optional(),
|
|
16534
|
+
justifyContent: z46.enum([
|
|
16491
16535
|
"start",
|
|
16492
16536
|
"center",
|
|
16493
16537
|
"end",
|
|
@@ -16496,16 +16540,16 @@ var layoutConfig = z45.object({
|
|
|
16496
16540
|
"space-around",
|
|
16497
16541
|
"space-evenly"
|
|
16498
16542
|
]).optional(),
|
|
16499
|
-
flexRow:
|
|
16500
|
-
flexColumn:
|
|
16501
|
-
gap:
|
|
16502
|
-
pack:
|
|
16503
|
-
packOrderStrategy:
|
|
16543
|
+
flexRow: z46.boolean().optional(),
|
|
16544
|
+
flexColumn: z46.boolean().optional(),
|
|
16545
|
+
gap: z46.number().or(z46.string()).optional(),
|
|
16546
|
+
pack: z46.boolean().optional().describe("Pack the contents of this group using a packing strategy"),
|
|
16547
|
+
packOrderStrategy: z46.enum([
|
|
16504
16548
|
"largest_to_smallest",
|
|
16505
16549
|
"first_to_last",
|
|
16506
16550
|
"highest_to_lowest_pin_count"
|
|
16507
16551
|
]).optional(),
|
|
16508
|
-
packPlacementStrategy:
|
|
16552
|
+
packPlacementStrategy: z46.enum(["shortest_connection_along_outline"]).optional(),
|
|
16509
16553
|
padding: length3.optional(),
|
|
16510
16554
|
paddingLeft: length3.optional(),
|
|
16511
16555
|
paddingRight: length3.optional(),
|
|
@@ -16515,17 +16559,17 @@ var layoutConfig = z45.object({
|
|
|
16515
16559
|
paddingY: length3.optional(),
|
|
16516
16560
|
width: length3.optional(),
|
|
16517
16561
|
height: length3.optional(),
|
|
16518
|
-
matchAdapt:
|
|
16519
|
-
matchAdaptTemplate:
|
|
16562
|
+
matchAdapt: z46.boolean().optional(),
|
|
16563
|
+
matchAdaptTemplate: z46.any().optional()
|
|
16520
16564
|
});
|
|
16521
16565
|
expectTypesMatch(true);
|
|
16522
|
-
var border =
|
|
16566
|
+
var border = z46.object({
|
|
16523
16567
|
strokeWidth: length3.optional(),
|
|
16524
|
-
dashed:
|
|
16525
|
-
solid:
|
|
16568
|
+
dashed: z46.boolean().optional(),
|
|
16569
|
+
solid: z46.boolean().optional()
|
|
16526
16570
|
});
|
|
16527
|
-
var pcbAnchorAlignmentAutocomplete =
|
|
16528
|
-
var routingTolerances =
|
|
16571
|
+
var pcbAnchorAlignmentAutocomplete = z46.custom((value) => typeof value === "string");
|
|
16572
|
+
var routingTolerances = z46.object({
|
|
16529
16573
|
minTraceWidth: length3.optional(),
|
|
16530
16574
|
minViaHoleEdgeToViaHoleEdgeClearance: length3.optional(),
|
|
16531
16575
|
minViaEdgeToPadEdgeClearance: length3.optional(),
|
|
@@ -16539,25 +16583,25 @@ var routingTolerances = z45.object({
|
|
|
16539
16583
|
minViaHoleDiameter: length3.optional(),
|
|
16540
16584
|
minViaPadDiameter: length3.optional()
|
|
16541
16585
|
});
|
|
16542
|
-
var autorouterConfig =
|
|
16586
|
+
var autorouterConfig = z46.object({
|
|
16543
16587
|
serverUrl: url.optional(),
|
|
16544
|
-
inputFormat:
|
|
16545
|
-
serverMode:
|
|
16546
|
-
serverCacheEnabled:
|
|
16547
|
-
cache:
|
|
16588
|
+
inputFormat: z46.enum(["simplified", "circuit-json"]).optional(),
|
|
16589
|
+
serverMode: z46.enum(["job", "solve-endpoint"]).optional(),
|
|
16590
|
+
serverCacheEnabled: z46.boolean().optional(),
|
|
16591
|
+
cache: z46.custom((v) => true).optional(),
|
|
16548
16592
|
traceClearance: length3.optional(),
|
|
16549
|
-
availableJumperTypes:
|
|
16550
|
-
allowViaInPad:
|
|
16593
|
+
availableJumperTypes: z46.array(z46.enum(["1206x4", "0603"])).optional(),
|
|
16594
|
+
allowViaInPad: z46.boolean().optional().describe(
|
|
16551
16595
|
"Allows the autorouter to place vias inside connected pads. Omitted or false keeps via-in-pad routing disabled."
|
|
16552
16596
|
),
|
|
16553
|
-
groupMode:
|
|
16554
|
-
algorithmFn:
|
|
16597
|
+
groupMode: z46.enum(["sequential_trace", "subcircuit", "sequential-trace"]).optional(),
|
|
16598
|
+
algorithmFn: z46.custom(
|
|
16555
16599
|
(v) => typeof v === "function" || v === void 0
|
|
16556
16600
|
).optional(),
|
|
16557
|
-
implicitBreakoutPointSolverFn:
|
|
16601
|
+
implicitBreakoutPointSolverFn: z46.custom(
|
|
16558
16602
|
(value) => typeof value === "function" || value === void 0
|
|
16559
16603
|
).optional(),
|
|
16560
|
-
preset:
|
|
16604
|
+
preset: z46.enum([
|
|
16561
16605
|
"sequential_trace",
|
|
16562
16606
|
"subcircuit",
|
|
16563
16607
|
"default",
|
|
@@ -16582,39 +16626,39 @@ var autorouterConfig = z45.object({
|
|
|
16582
16626
|
]).transform(
|
|
16583
16627
|
(preset) => preset === "single_layer_routing" ? "bus_lanes" : preset
|
|
16584
16628
|
).optional(),
|
|
16585
|
-
local:
|
|
16629
|
+
local: z46.boolean().optional()
|
|
16586
16630
|
});
|
|
16587
|
-
var autorouterPreset =
|
|
16588
|
-
|
|
16589
|
-
|
|
16590
|
-
|
|
16591
|
-
|
|
16592
|
-
|
|
16593
|
-
|
|
16594
|
-
|
|
16595
|
-
|
|
16596
|
-
|
|
16597
|
-
|
|
16598
|
-
|
|
16599
|
-
|
|
16631
|
+
var autorouterPreset = z46.union([
|
|
16632
|
+
z46.literal("sequential_trace"),
|
|
16633
|
+
z46.literal("subcircuit"),
|
|
16634
|
+
z46.literal("default"),
|
|
16635
|
+
z46.literal("auto"),
|
|
16636
|
+
z46.literal("auto_local"),
|
|
16637
|
+
z46.literal("auto_cloud"),
|
|
16638
|
+
z46.literal("auto_jumper"),
|
|
16639
|
+
z46.literal("tscircuit_beta"),
|
|
16640
|
+
z46.literal("krt"),
|
|
16641
|
+
z46.literal("freerouting"),
|
|
16642
|
+
z46.literal("simplify"),
|
|
16643
|
+
z46.literal("laser_prefab"),
|
|
16600
16644
|
// Prefabricated PCB with laser copper ablation
|
|
16601
|
-
|
|
16602
|
-
|
|
16603
|
-
|
|
16604
|
-
|
|
16605
|
-
|
|
16606
|
-
|
|
16607
|
-
|
|
16608
|
-
|
|
16609
|
-
|
|
16645
|
+
z46.literal("single_layer_fanout"),
|
|
16646
|
+
z46.literal("fanout"),
|
|
16647
|
+
z46.literal("dogbone"),
|
|
16648
|
+
z46.literal("bus_lanes"),
|
|
16649
|
+
z46.literal("single_layer_routing").transform(() => "bus_lanes"),
|
|
16650
|
+
z46.literal("auto-jumper"),
|
|
16651
|
+
z46.literal("sequential-trace"),
|
|
16652
|
+
z46.literal("auto-local"),
|
|
16653
|
+
z46.literal("auto-cloud")
|
|
16610
16654
|
]);
|
|
16611
|
-
var autorouterString =
|
|
16612
|
-
var autorouterProp =
|
|
16655
|
+
var autorouterString = z46.string();
|
|
16656
|
+
var autorouterProp = z46.union([
|
|
16613
16657
|
autorouterConfig,
|
|
16614
16658
|
autorouterPreset,
|
|
16615
16659
|
autorouterString
|
|
16616
16660
|
]);
|
|
16617
|
-
var autorouterEffortLevel =
|
|
16661
|
+
var autorouterEffortLevel = z46.enum([
|
|
16618
16662
|
"1x",
|
|
16619
16663
|
"1.5x",
|
|
16620
16664
|
"2x",
|
|
@@ -16622,12 +16666,12 @@ var autorouterEffortLevel = z45.enum([
|
|
|
16622
16666
|
"10x",
|
|
16623
16667
|
"100x"
|
|
16624
16668
|
]);
|
|
16625
|
-
var preflightRoutingCheckPolicy =
|
|
16669
|
+
var preflightRoutingCheckPolicy = z46.enum([
|
|
16626
16670
|
"none",
|
|
16627
16671
|
"basic",
|
|
16628
16672
|
"conservative"
|
|
16629
16673
|
]);
|
|
16630
|
-
var knownAutorouterVersion =
|
|
16674
|
+
var knownAutorouterVersion = z46.enum([
|
|
16631
16675
|
"beta_pipeline1",
|
|
16632
16676
|
"beta_pipeline3",
|
|
16633
16677
|
"beta_pipeline4",
|
|
@@ -16636,7 +16680,7 @@ var knownAutorouterVersion = z45.enum([
|
|
|
16636
16680
|
"beta_pipeline9",
|
|
16637
16681
|
"latest"
|
|
16638
16682
|
]);
|
|
16639
|
-
var autorouterVersion =
|
|
16683
|
+
var autorouterVersion = z46.custom(
|
|
16640
16684
|
(value) => typeof value === "string"
|
|
16641
16685
|
).transform((value) => {
|
|
16642
16686
|
const parsedAutorouterVersion = knownAutorouterVersion.safeParse(value);
|
|
@@ -16647,33 +16691,33 @@ var autorouterVersion = z45.custom(
|
|
|
16647
16691
|
return "latest";
|
|
16648
16692
|
});
|
|
16649
16693
|
var baseGroupProps = commonLayoutProps.extend({
|
|
16650
|
-
name:
|
|
16651
|
-
children:
|
|
16652
|
-
schTitle:
|
|
16653
|
-
schSheetName:
|
|
16654
|
-
key:
|
|
16655
|
-
showAsSchematicBox:
|
|
16656
|
-
connections:
|
|
16694
|
+
name: z46.string().optional(),
|
|
16695
|
+
children: z46.any().optional(),
|
|
16696
|
+
schTitle: z46.string().optional(),
|
|
16697
|
+
schSheetName: z46.string().optional().describe('This group will be drawn as part of this sheet e.g. "Main"'),
|
|
16698
|
+
key: z46.any().optional(),
|
|
16699
|
+
showAsSchematicBox: z46.boolean().optional(),
|
|
16700
|
+
connections: z46.record(z46.string(), connectionTarget.optional()).optional(),
|
|
16657
16701
|
schPinArrangement: schematicPinArrangement.optional(),
|
|
16658
16702
|
schPinSpacing: length3.optional(),
|
|
16659
16703
|
schPinStyle: schematicPinStyle.optional(),
|
|
16660
16704
|
...layoutConfig.shape,
|
|
16661
16705
|
grid: layoutConfig.shape.grid.describe("@deprecated use pcbGrid"),
|
|
16662
16706
|
flex: layoutConfig.shape.flex.describe("@deprecated use pcbFlex"),
|
|
16663
|
-
pcbGrid:
|
|
16664
|
-
pcbGridCols:
|
|
16665
|
-
pcbGridRows:
|
|
16666
|
-
pcbGridTemplateRows:
|
|
16667
|
-
pcbGridTemplateColumns:
|
|
16668
|
-
pcbGridTemplate:
|
|
16669
|
-
pcbGridGap:
|
|
16670
|
-
pcbGridRowGap:
|
|
16671
|
-
pcbGridColumnGap:
|
|
16672
|
-
pcbFlex:
|
|
16673
|
-
pcbFlexGap:
|
|
16674
|
-
pcbFlexDirection:
|
|
16675
|
-
pcbAlignItems:
|
|
16676
|
-
pcbJustifyContent:
|
|
16707
|
+
pcbGrid: z46.boolean().optional(),
|
|
16708
|
+
pcbGridCols: z46.number().or(z46.string()).optional(),
|
|
16709
|
+
pcbGridRows: z46.number().or(z46.string()).optional(),
|
|
16710
|
+
pcbGridTemplateRows: z46.string().optional(),
|
|
16711
|
+
pcbGridTemplateColumns: z46.string().optional(),
|
|
16712
|
+
pcbGridTemplate: z46.string().optional(),
|
|
16713
|
+
pcbGridGap: z46.number().or(z46.string()).optional(),
|
|
16714
|
+
pcbGridRowGap: z46.number().or(z46.string()).optional(),
|
|
16715
|
+
pcbGridColumnGap: z46.number().or(z46.string()).optional(),
|
|
16716
|
+
pcbFlex: z46.boolean().or(z46.string()).optional(),
|
|
16717
|
+
pcbFlexGap: z46.number().or(z46.string()).optional(),
|
|
16718
|
+
pcbFlexDirection: z46.enum(["row", "column"]).optional(),
|
|
16719
|
+
pcbAlignItems: z46.enum(["start", "center", "end", "stretch"]).optional(),
|
|
16720
|
+
pcbJustifyContent: z46.enum([
|
|
16677
16721
|
"start",
|
|
16678
16722
|
"center",
|
|
16679
16723
|
"end",
|
|
@@ -16682,25 +16726,25 @@ var baseGroupProps = commonLayoutProps.extend({
|
|
|
16682
16726
|
"space-around",
|
|
16683
16727
|
"space-evenly"
|
|
16684
16728
|
]).optional(),
|
|
16685
|
-
pcbFlexRow:
|
|
16686
|
-
pcbFlexColumn:
|
|
16687
|
-
pcbGap:
|
|
16688
|
-
pcbPack:
|
|
16689
|
-
pcbPackGap:
|
|
16690
|
-
schGrid:
|
|
16691
|
-
schGridCols:
|
|
16692
|
-
schGridRows:
|
|
16693
|
-
schGridTemplateRows:
|
|
16694
|
-
schGridTemplateColumns:
|
|
16695
|
-
schGridTemplate:
|
|
16696
|
-
schGridGap:
|
|
16697
|
-
schGridRowGap:
|
|
16698
|
-
schGridColumnGap:
|
|
16699
|
-
schFlex:
|
|
16700
|
-
schFlexGap:
|
|
16701
|
-
schFlexDirection:
|
|
16702
|
-
schAlignItems:
|
|
16703
|
-
schJustifyContent:
|
|
16729
|
+
pcbFlexRow: z46.boolean().optional(),
|
|
16730
|
+
pcbFlexColumn: z46.boolean().optional(),
|
|
16731
|
+
pcbGap: z46.number().or(z46.string()).optional(),
|
|
16732
|
+
pcbPack: z46.boolean().optional(),
|
|
16733
|
+
pcbPackGap: z46.number().or(z46.string()).optional(),
|
|
16734
|
+
schGrid: z46.boolean().optional(),
|
|
16735
|
+
schGridCols: z46.number().or(z46.string()).optional(),
|
|
16736
|
+
schGridRows: z46.number().or(z46.string()).optional(),
|
|
16737
|
+
schGridTemplateRows: z46.string().optional(),
|
|
16738
|
+
schGridTemplateColumns: z46.string().optional(),
|
|
16739
|
+
schGridTemplate: z46.string().optional(),
|
|
16740
|
+
schGridGap: z46.number().or(z46.string()).optional(),
|
|
16741
|
+
schGridRowGap: z46.number().or(z46.string()).optional(),
|
|
16742
|
+
schGridColumnGap: z46.number().or(z46.string()).optional(),
|
|
16743
|
+
schFlex: z46.boolean().or(z46.string()).optional(),
|
|
16744
|
+
schFlexGap: z46.number().or(z46.string()).optional(),
|
|
16745
|
+
schFlexDirection: z46.enum(["row", "column"]).optional(),
|
|
16746
|
+
schAlignItems: z46.enum(["start", "center", "end", "stretch"]).optional(),
|
|
16747
|
+
schJustifyContent: z46.enum([
|
|
16704
16748
|
"start",
|
|
16705
16749
|
"center",
|
|
16706
16750
|
"end",
|
|
@@ -16709,11 +16753,11 @@ var baseGroupProps = commonLayoutProps.extend({
|
|
|
16709
16753
|
"space-around",
|
|
16710
16754
|
"space-evenly"
|
|
16711
16755
|
]).optional(),
|
|
16712
|
-
schFlexRow:
|
|
16713
|
-
schFlexColumn:
|
|
16714
|
-
schGap:
|
|
16715
|
-
schPack:
|
|
16716
|
-
schMatchAdapt:
|
|
16756
|
+
schFlexRow: z46.boolean().optional(),
|
|
16757
|
+
schFlexColumn: z46.boolean().optional(),
|
|
16758
|
+
schGap: z46.number().or(z46.string()).optional(),
|
|
16759
|
+
schPack: z46.boolean().optional(),
|
|
16760
|
+
schMatchAdapt: z46.boolean().optional(),
|
|
16717
16761
|
pcbWidth: length3.optional(),
|
|
16718
16762
|
pcbHeight: length3.optional(),
|
|
16719
16763
|
minTraceWidth: length3.optional(),
|
|
@@ -16736,42 +16780,42 @@ var baseGroupProps = commonLayoutProps.extend({
|
|
|
16736
16780
|
pcbPaddingBottom: length3.optional(),
|
|
16737
16781
|
pcbAnchorAlignment: pcbAnchorAlignmentAutocomplete.optional()
|
|
16738
16782
|
});
|
|
16739
|
-
var partsEngine =
|
|
16783
|
+
var partsEngine = z46.custom((v) => "findPart" in v);
|
|
16740
16784
|
var subcircuitGroupProps = baseGroupProps.extend({
|
|
16741
16785
|
manualEdits: manual_edits_file.optional(),
|
|
16742
|
-
schAutoLayoutEnabled:
|
|
16743
|
-
schTraceAutoLabelEnabled:
|
|
16786
|
+
schAutoLayoutEnabled: z46.boolean().optional(),
|
|
16787
|
+
schTraceAutoLabelEnabled: z46.boolean().optional(),
|
|
16744
16788
|
schMaxTraceDistance: distance11.optional(),
|
|
16745
|
-
routingDisabled:
|
|
16746
|
-
placementDrcChecksDisabled:
|
|
16747
|
-
bomDisabled:
|
|
16789
|
+
routingDisabled: z46.boolean().optional(),
|
|
16790
|
+
placementDrcChecksDisabled: z46.boolean().optional(),
|
|
16791
|
+
bomDisabled: z46.boolean().optional(),
|
|
16748
16792
|
defaultTraceWidth: length3.optional(),
|
|
16749
16793
|
...routingTolerances.shape,
|
|
16750
16794
|
nominalTraceWidth: length3.optional(),
|
|
16751
16795
|
partsEngine: partsEngine.optional(),
|
|
16752
|
-
_subcircuitCachingEnabled:
|
|
16753
|
-
pcbRouteCache:
|
|
16796
|
+
_subcircuitCachingEnabled: z46.boolean().optional(),
|
|
16797
|
+
pcbRouteCache: z46.custom((v) => true).optional(),
|
|
16754
16798
|
autorouter: autorouterProp.optional(),
|
|
16755
16799
|
preflightRoutingCheckPolicy: preflightRoutingCheckPolicy.optional(),
|
|
16756
16800
|
autorouterEffortLevel: autorouterEffortLevel.optional(),
|
|
16757
16801
|
autorouterVersion: autorouterVersion.optional(),
|
|
16758
|
-
square:
|
|
16759
|
-
emptyArea:
|
|
16760
|
-
filledArea:
|
|
16802
|
+
square: z46.boolean().optional(),
|
|
16803
|
+
emptyArea: z46.string().optional(),
|
|
16804
|
+
filledArea: z46.string().optional(),
|
|
16761
16805
|
width: distance11.optional(),
|
|
16762
16806
|
height: distance11.optional(),
|
|
16763
|
-
outline:
|
|
16807
|
+
outline: z46.array(point).optional(),
|
|
16764
16808
|
outlineOffsetX: distance11.optional(),
|
|
16765
16809
|
outlineOffsetY: distance11.optional(),
|
|
16766
|
-
circuitJson:
|
|
16767
|
-
exposedNets:
|
|
16768
|
-
exposeNets:
|
|
16810
|
+
circuitJson: z46.array(z46.any()).optional(),
|
|
16811
|
+
exposedNets: z46.array(z46.string()).optional(),
|
|
16812
|
+
exposeNets: z46.boolean().optional()
|
|
16769
16813
|
});
|
|
16770
16814
|
var subcircuitGroupPropsWithBool = subcircuitGroupProps.extend({
|
|
16771
|
-
subcircuit:
|
|
16815
|
+
subcircuit: z46.literal(true)
|
|
16772
16816
|
});
|
|
16773
|
-
var groupProps =
|
|
16774
|
-
baseGroupProps.extend({ subcircuit:
|
|
16817
|
+
var groupProps = z46.discriminatedUnion("subcircuit", [
|
|
16818
|
+
baseGroupProps.extend({ subcircuit: z46.literal(false).optional() }),
|
|
16775
16819
|
subcircuitGroupPropsWithBool
|
|
16776
16820
|
]);
|
|
16777
16821
|
expectTypesMatch(true);
|
|
@@ -16781,25 +16825,25 @@ expectTypesMatch(true);
|
|
|
16781
16825
|
expectTypesMatch(true);
|
|
16782
16826
|
|
|
16783
16827
|
// lib/components/board.ts
|
|
16784
|
-
var boardColor =
|
|
16785
|
-
var boardOutlinePoint =
|
|
16828
|
+
var boardColor = z47.custom((value) => typeof value === "string");
|
|
16829
|
+
var boardOutlinePoint = z47.object({
|
|
16786
16830
|
...point.shape,
|
|
16787
|
-
isCastellatedHole:
|
|
16831
|
+
isCastellatedHole: z47.boolean().optional(),
|
|
16788
16832
|
holeDiameter: distance.optional(),
|
|
16789
16833
|
padDiameter: distance.optional(),
|
|
16790
|
-
connectsTo:
|
|
16834
|
+
connectsTo: z47.string().or(z47.array(z47.string())).optional()
|
|
16791
16835
|
}).superRefine((outlinePoint, ctx) => {
|
|
16792
16836
|
if (outlinePoint.isCastellatedHole) {
|
|
16793
16837
|
if (outlinePoint.holeDiameter === void 0) {
|
|
16794
16838
|
ctx.addIssue({
|
|
16795
|
-
code:
|
|
16839
|
+
code: z47.ZodIssueCode.custom,
|
|
16796
16840
|
path: ["holeDiameter"],
|
|
16797
16841
|
message: "holeDiameter is required for a castellated hole"
|
|
16798
16842
|
});
|
|
16799
16843
|
}
|
|
16800
16844
|
if (outlinePoint.padDiameter === void 0) {
|
|
16801
16845
|
ctx.addIssue({
|
|
16802
|
-
code:
|
|
16846
|
+
code: z47.ZodIssueCode.custom,
|
|
16803
16847
|
path: ["padDiameter"],
|
|
16804
16848
|
message: "padDiameter is required for a castellated hole"
|
|
16805
16849
|
});
|
|
@@ -16808,20 +16852,19 @@ var boardOutlinePoint = z46.object({
|
|
|
16808
16852
|
}
|
|
16809
16853
|
if (outlinePoint.holeDiameter !== void 0 || outlinePoint.padDiameter !== void 0 || outlinePoint.connectsTo !== void 0) {
|
|
16810
16854
|
ctx.addIssue({
|
|
16811
|
-
code:
|
|
16855
|
+
code: z47.ZodIssueCode.custom,
|
|
16812
16856
|
path: ["isCastellatedHole"],
|
|
16813
16857
|
message: "isCastellatedHole must be true when castellated hole props are provided"
|
|
16814
16858
|
});
|
|
16815
16859
|
}
|
|
16816
16860
|
});
|
|
16817
16861
|
var boardProps = subcircuitGroupProps.omit({ connections: true }).extend({
|
|
16818
|
-
mountedTo:
|
|
16819
|
-
|
|
16820
|
-
),
|
|
16821
|
-
|
|
16822
|
-
|
|
16823
|
-
|
|
16824
|
-
fabricatorPreset: z46.enum([
|
|
16862
|
+
mountedTo: z47.string().trim().min(1).optional().describe('e.g. "NEMA17.backface".'),
|
|
16863
|
+
mountGap: distance.pipe(z47.number().nonnegative().finite()).optional().describe('Clearance from the mounting face, e.g. "6mm".'),
|
|
16864
|
+
mountRotationAnchor: boardMountRotationAnchor.optional().describe('e.g. "J_USB" or "rightedge".'),
|
|
16865
|
+
mountRotation: boardMountRotation.optional().describe('e.g. "calc(NEMA17.wireside-90degcw)".'),
|
|
16866
|
+
mountOrientation: boardMountOrientation.optional().describe('e.g. "top_layer_toward_mount_face".'),
|
|
16867
|
+
fabricatorPreset: z47.enum([
|
|
16825
16868
|
"jlcpcb_economy",
|
|
16826
16869
|
"jlcpcb_standard",
|
|
16827
16870
|
"jlcpcb_economy_20260912",
|
|
@@ -16829,24 +16872,24 @@ var boardProps = subcircuitGroupProps.omit({ connections: true }).extend({
|
|
|
16829
16872
|
]).optional().describe(
|
|
16830
16873
|
"Fabricator preset, preserved as supplied. Omitted leaves the preset unset."
|
|
16831
16874
|
),
|
|
16832
|
-
material:
|
|
16833
|
-
layers:
|
|
16834
|
-
|
|
16835
|
-
|
|
16836
|
-
|
|
16837
|
-
|
|
16838
|
-
|
|
16839
|
-
|
|
16875
|
+
material: z47.enum(["fr4", "fr1", "flex"]).default("fr4"),
|
|
16876
|
+
layers: z47.union([
|
|
16877
|
+
z47.literal(1),
|
|
16878
|
+
z47.literal(2),
|
|
16879
|
+
z47.literal(4),
|
|
16880
|
+
z47.literal(6),
|
|
16881
|
+
z47.literal(8),
|
|
16882
|
+
z47.literal(10)
|
|
16840
16883
|
]).default(2),
|
|
16841
|
-
allowBlindAndBuriedVias:
|
|
16884
|
+
allowBlindAndBuriedVias: z47.boolean().default(false).describe(
|
|
16842
16885
|
"Whether the autorouter may generate blind and buried vias. Defaults to false, which restricts newly generated vias to the full board stack."
|
|
16843
16886
|
),
|
|
16844
|
-
routeRemaining:
|
|
16887
|
+
routeRemaining: z47.boolean().optional().describe(
|
|
16845
16888
|
"Whether to route remaining unrouted connections after explicit routing phases. Boolean values are preserved; omitted leaves the setting unset. No aliases or prop conflicts are introduced, and existing boards require no migration."
|
|
16846
16889
|
),
|
|
16847
|
-
defaultViaTenting:
|
|
16848
|
-
|
|
16849
|
-
|
|
16890
|
+
defaultViaTenting: z47.union([
|
|
16891
|
+
z47.boolean(),
|
|
16892
|
+
z47.enum([
|
|
16850
16893
|
"both_sides",
|
|
16851
16894
|
"top_and_bottom_tented",
|
|
16852
16895
|
"top_tented",
|
|
@@ -16865,46 +16908,46 @@ var boardProps = subcircuitGroupProps.omit({ connections: true }).extend({
|
|
|
16865
16908
|
boardAnchorPosition: point.optional(),
|
|
16866
16909
|
anchorAlignment: ninePointAnchor.optional(),
|
|
16867
16910
|
boardAnchorAlignment: ninePointAnchor.optional().describe("Prefer using anchorAlignment when possible"),
|
|
16868
|
-
outline:
|
|
16869
|
-
title:
|
|
16911
|
+
outline: z47.array(boardOutlinePoint).optional(),
|
|
16912
|
+
title: z47.string().optional(),
|
|
16870
16913
|
solderMaskColor: boardColor.optional(),
|
|
16871
16914
|
topSolderMaskColor: boardColor.optional(),
|
|
16872
16915
|
bottomSolderMaskColor: boardColor.optional(),
|
|
16873
16916
|
silkscreenColor: boardColor.optional(),
|
|
16874
16917
|
topSilkscreenColor: boardColor.optional(),
|
|
16875
16918
|
bottomSilkscreenColor: boardColor.optional(),
|
|
16876
|
-
doubleSidedAssembly:
|
|
16877
|
-
isViaInPadAllowed:
|
|
16919
|
+
doubleSidedAssembly: z47.boolean().optional().default(false),
|
|
16920
|
+
isViaInPadAllowed: z47.boolean().optional().describe(
|
|
16878
16921
|
"Allows intentional via-in-pad designs to pass DRC. Omitted or false keeps via-in-pad disallowed."
|
|
16879
16922
|
),
|
|
16880
|
-
automaticPoursEnabled:
|
|
16923
|
+
automaticPoursEnabled: z47.boolean().default(false).describe(
|
|
16881
16924
|
"Whether implicit copper pours should be generated automatically. Defaults to false."
|
|
16882
16925
|
),
|
|
16883
|
-
enableViaStitching:
|
|
16926
|
+
enableViaStitching: z47.boolean().default(false).describe(
|
|
16884
16927
|
"Whether to stitch copper pours on the same net across layers with vias. Defaults to false."
|
|
16885
16928
|
),
|
|
16886
|
-
viaStitchPitch: distance.pipe(
|
|
16929
|
+
viaStitchPitch: distance.pipe(z47.number().positive().finite()).optional().describe(
|
|
16887
16930
|
"Positive center-to-center stitching via spacing in millimeters or a unit string, parsed to millimeters. Omitted uses the solver default. Does not enable stitching by itself."
|
|
16888
16931
|
),
|
|
16889
|
-
schematicDisabled:
|
|
16932
|
+
schematicDisabled: z47.boolean().optional()
|
|
16890
16933
|
});
|
|
16891
16934
|
expectTypesMatch(true);
|
|
16892
16935
|
expectTypesMatch(true);
|
|
16893
16936
|
|
|
16894
16937
|
// lib/components/pcb-bend.ts
|
|
16895
16938
|
import { rotation as rotation3 } from "circuit-json";
|
|
16896
|
-
import { z as
|
|
16897
|
-
var finiteDistance = distance.pipe(
|
|
16898
|
-
var pcbBendProps =
|
|
16899
|
-
name:
|
|
16939
|
+
import { z as z48 } from "zod";
|
|
16940
|
+
var finiteDistance = distance.pipe(z48.number().finite());
|
|
16941
|
+
var pcbBendProps = z48.object({
|
|
16942
|
+
name: z48.string().optional(),
|
|
16900
16943
|
x1: finiteDistance,
|
|
16901
16944
|
y1: finiteDistance,
|
|
16902
16945
|
x2: finiteDistance,
|
|
16903
16946
|
y2: finiteDistance,
|
|
16904
|
-
bendAngle: rotation3.pipe(
|
|
16905
|
-
bendRadius: distance.pipe(
|
|
16906
|
-
tearReliefRadius: distance.pipe(
|
|
16907
|
-
bendSide:
|
|
16947
|
+
bendAngle: rotation3.pipe(z48.number().finite()),
|
|
16948
|
+
bendRadius: distance.pipe(z48.number().finite().positive()),
|
|
16949
|
+
tearReliefRadius: distance.pipe(z48.number().finite().positive()).optional(),
|
|
16950
|
+
bendSide: z48.enum(["left", "right"])
|
|
16908
16951
|
}).refine(({ x1, y1, x2, y2 }) => x1 !== x2 || y1 !== y2, {
|
|
16909
16952
|
message: "Bend centerline endpoints must be distinct",
|
|
16910
16953
|
path: ["x2"]
|
|
@@ -16912,83 +16955,83 @@ var pcbBendProps = z47.object({
|
|
|
16912
16955
|
expectTypesMatch(true);
|
|
16913
16956
|
|
|
16914
16957
|
// lib/components/pcb-soldermask-opening.ts
|
|
16915
|
-
import { z as
|
|
16916
|
-
var finiteDistance2 = distance.pipe(
|
|
16917
|
-
var positiveDistance2 = distance.pipe(
|
|
16958
|
+
import { z as z49 } from "zod";
|
|
16959
|
+
var finiteDistance2 = distance.pipe(z49.number().finite());
|
|
16960
|
+
var positiveDistance2 = distance.pipe(z49.number().finite().positive());
|
|
16918
16961
|
var openingBaseProps = pcbLayoutProps.omit({ layer: true }).extend({
|
|
16919
|
-
name:
|
|
16962
|
+
name: z49.string().optional(),
|
|
16920
16963
|
/** Face whose solder mask or flex coverlay is removed. Required. */
|
|
16921
|
-
layer:
|
|
16964
|
+
layer: z49.enum(["top", "bottom"])
|
|
16922
16965
|
});
|
|
16923
|
-
var pcbSoldermaskOpeningProps =
|
|
16966
|
+
var pcbSoldermaskOpeningProps = z49.discriminatedUnion("shape", [
|
|
16924
16967
|
openingBaseProps.extend({
|
|
16925
|
-
shape:
|
|
16968
|
+
shape: z49.literal("rect"),
|
|
16926
16969
|
width: positiveDistance2,
|
|
16927
16970
|
height: positiveDistance2,
|
|
16928
|
-
radius:
|
|
16929
|
-
points:
|
|
16971
|
+
radius: z49.never().optional(),
|
|
16972
|
+
points: z49.never().optional()
|
|
16930
16973
|
}),
|
|
16931
16974
|
openingBaseProps.extend({
|
|
16932
|
-
shape:
|
|
16975
|
+
shape: z49.literal("circle"),
|
|
16933
16976
|
radius: positiveDistance2,
|
|
16934
|
-
width:
|
|
16935
|
-
height:
|
|
16936
|
-
points:
|
|
16977
|
+
width: z49.never().optional(),
|
|
16978
|
+
height: z49.never().optional(),
|
|
16979
|
+
points: z49.never().optional()
|
|
16937
16980
|
}),
|
|
16938
16981
|
openingBaseProps.extend({
|
|
16939
|
-
shape:
|
|
16982
|
+
shape: z49.literal("polygon"),
|
|
16940
16983
|
/** Local vertices; pcbX/pcbY/pcbRotation place the implicitly closed boundary. */
|
|
16941
|
-
points:
|
|
16984
|
+
points: z49.array(z49.object({ x: finiteDistance2, y: finiteDistance2 })).min(3).refine((points) => {
|
|
16942
16985
|
const twiceArea = points.reduce((sum, point8, index) => {
|
|
16943
16986
|
const next = points[(index + 1) % points.length];
|
|
16944
16987
|
return sum + point8.x * next.y - next.x * point8.y;
|
|
16945
16988
|
}, 0);
|
|
16946
16989
|
return Number.isFinite(twiceArea) && twiceArea !== 0;
|
|
16947
16990
|
}, "Solder-mask opening must enclose a nonzero area"),
|
|
16948
|
-
width:
|
|
16949
|
-
height:
|
|
16950
|
-
radius:
|
|
16991
|
+
width: z49.never().optional(),
|
|
16992
|
+
height: z49.never().optional(),
|
|
16993
|
+
radius: z49.never().optional()
|
|
16951
16994
|
})
|
|
16952
16995
|
]);
|
|
16953
16996
|
|
|
16954
16997
|
// lib/components/pcb-stiffener.ts
|
|
16955
|
-
import { z as
|
|
16956
|
-
var positiveDistance3 = distance.pipe(
|
|
16957
|
-
var finiteDistance3 = distance.pipe(
|
|
16998
|
+
import { z as z50 } from "zod";
|
|
16999
|
+
var positiveDistance3 = distance.pipe(z50.number().finite().positive());
|
|
17000
|
+
var finiteDistance3 = distance.pipe(z50.number().finite());
|
|
16958
17001
|
var stiffenerBaseProps = pcbLayoutProps.omit({ layer: true }).extend({
|
|
16959
|
-
name:
|
|
17002
|
+
name: z50.string().optional(),
|
|
16960
17003
|
/** Board attachment face, not a copper-layer assignment. Required. */
|
|
16961
|
-
layer:
|
|
16962
|
-
material:
|
|
17004
|
+
layer: z50.enum(["top", "bottom"]),
|
|
17005
|
+
material: z50.enum(["fr4", "polyimide", "stainless_steel", "aluminum"]),
|
|
16963
17006
|
/** Stiffener material thickness only, excluding PCB and adhesive. */
|
|
16964
17007
|
thickness: positiveDistance3,
|
|
16965
17008
|
/** Nonnegative adhesive thickness; omission means unspecified, not zero. */
|
|
16966
|
-
adhesiveThickness: distance.pipe(
|
|
17009
|
+
adhesiveThickness: distance.pipe(z50.number().finite().nonnegative()).optional()
|
|
16967
17010
|
});
|
|
16968
|
-
var pcbStiffenerProps =
|
|
17011
|
+
var pcbStiffenerProps = z50.discriminatedUnion("shape", [
|
|
16969
17012
|
stiffenerBaseProps.extend({
|
|
16970
|
-
shape:
|
|
17013
|
+
shape: z50.literal("rect"),
|
|
16971
17014
|
width: positiveDistance3,
|
|
16972
17015
|
height: positiveDistance3,
|
|
16973
|
-
outline:
|
|
17016
|
+
outline: z50.never().optional()
|
|
16974
17017
|
}),
|
|
16975
17018
|
stiffenerBaseProps.extend({
|
|
16976
|
-
shape:
|
|
17019
|
+
shape: z50.literal("polygon"),
|
|
16977
17020
|
/** Local vertices transformed by pcbX/pcbY/pcbRotation; implicitly closed. */
|
|
16978
|
-
outline:
|
|
17021
|
+
outline: z50.array(z50.object({ x: finiteDistance3, y: finiteDistance3 })).min(3).refine((points) => {
|
|
16979
17022
|
const twiceArea = points.reduce((sum, p, i) => {
|
|
16980
17023
|
const next = points[(i + 1) % points.length];
|
|
16981
17024
|
return sum + p.x * next.y - next.x * p.y;
|
|
16982
17025
|
}, 0);
|
|
16983
17026
|
return Number.isFinite(twiceArea) && twiceArea !== 0;
|
|
16984
17027
|
}, "Stiffener outline must enclose a nonzero area"),
|
|
16985
|
-
width:
|
|
16986
|
-
height:
|
|
17028
|
+
width: z50.never().optional(),
|
|
17029
|
+
height: z50.never().optional()
|
|
16987
17030
|
})
|
|
16988
17031
|
]);
|
|
16989
17032
|
|
|
16990
17033
|
// lib/components/panel.ts
|
|
16991
|
-
import { z as
|
|
17034
|
+
import { z as z51 } from "zod";
|
|
16992
17035
|
var panelProps = baseGroupProps.omit({
|
|
16993
17036
|
width: true,
|
|
16994
17037
|
height: true,
|
|
@@ -16997,25 +17040,25 @@ var panelProps = baseGroupProps.omit({
|
|
|
16997
17040
|
}).extend({
|
|
16998
17041
|
width: distance.optional(),
|
|
16999
17042
|
height: distance.optional(),
|
|
17000
|
-
children:
|
|
17043
|
+
children: z51.any().optional(),
|
|
17001
17044
|
anchorAlignment: ninePointAnchor.optional(),
|
|
17002
|
-
noSolderMask:
|
|
17003
|
-
panelizationMethod:
|
|
17045
|
+
noSolderMask: z51.boolean().optional(),
|
|
17046
|
+
panelizationMethod: z51.enum(["tab-routing", "outline_routing", "none"]).optional(),
|
|
17004
17047
|
boardGap: distance.optional(),
|
|
17005
|
-
layoutMode:
|
|
17006
|
-
row:
|
|
17007
|
-
col:
|
|
17048
|
+
layoutMode: z51.enum(["grid", "pack", "none"]).optional(),
|
|
17049
|
+
row: z51.number().optional(),
|
|
17050
|
+
col: z51.number().optional(),
|
|
17008
17051
|
cellWidth: distance.optional(),
|
|
17009
17052
|
cellHeight: distance.optional(),
|
|
17010
17053
|
tabWidth: distance.optional(),
|
|
17011
17054
|
tabLength: distance.optional(),
|
|
17012
|
-
mouseBites:
|
|
17055
|
+
mouseBites: z51.boolean().optional(),
|
|
17013
17056
|
edgePadding: distance.optional(),
|
|
17014
17057
|
edgePaddingLeft: distance.optional(),
|
|
17015
17058
|
edgePaddingRight: distance.optional(),
|
|
17016
17059
|
edgePaddingTop: distance.optional(),
|
|
17017
17060
|
edgePaddingBottom: distance.optional(),
|
|
17018
|
-
_subcircuitCachingEnabled:
|
|
17061
|
+
_subcircuitCachingEnabled: z51.boolean().optional()
|
|
17019
17062
|
});
|
|
17020
17063
|
expectTypesMatch(true);
|
|
17021
17064
|
|
|
@@ -17026,23 +17069,23 @@ expectTypesMatch(true);
|
|
|
17026
17069
|
|
|
17027
17070
|
// lib/common/fanoutTracePath.ts
|
|
17028
17071
|
import { layer_ref as layer_ref5 } from "circuit-json";
|
|
17029
|
-
import { z as
|
|
17072
|
+
import { z as z53 } from "zod";
|
|
17030
17073
|
var coordinate = distance.refine(Number.isFinite, "Coordinate must be finite");
|
|
17031
17074
|
var positiveDistance4 = distance.refine(
|
|
17032
17075
|
(value) => Number.isFinite(value) && value > 0,
|
|
17033
17076
|
"Distance must be positive and finite"
|
|
17034
17077
|
);
|
|
17035
|
-
var routePoint =
|
|
17036
|
-
|
|
17037
|
-
route_type:
|
|
17078
|
+
var routePoint = z53.discriminatedUnion("route_type", [
|
|
17079
|
+
z53.object({
|
|
17080
|
+
route_type: z53.literal("wire"),
|
|
17038
17081
|
x: coordinate,
|
|
17039
17082
|
y: coordinate,
|
|
17040
17083
|
width: positiveDistance4,
|
|
17041
|
-
width_interpolation_mode:
|
|
17084
|
+
width_interpolation_mode: z53.enum(["linear", "quadratic"]).optional().describe("Interpolate width from this point to the next wire point."),
|
|
17042
17085
|
layer: layer_ref5
|
|
17043
17086
|
}),
|
|
17044
|
-
|
|
17045
|
-
route_type:
|
|
17087
|
+
z53.object({
|
|
17088
|
+
route_type: z53.literal("via"),
|
|
17046
17089
|
x: coordinate,
|
|
17047
17090
|
y: coordinate,
|
|
17048
17091
|
from_layer: layer_ref5,
|
|
@@ -17051,9 +17094,9 @@ var routePoint = z52.discriminatedUnion("route_type", [
|
|
|
17051
17094
|
via_hole_diameter: positiveDistance4.optional()
|
|
17052
17095
|
})
|
|
17053
17096
|
]);
|
|
17054
|
-
var fanoutTracePath =
|
|
17055
|
-
connection:
|
|
17056
|
-
route:
|
|
17097
|
+
var fanoutTracePath = z53.object({
|
|
17098
|
+
connection: z53.string().min(1),
|
|
17099
|
+
route: z53.array(routePoint).min(2).superRefine((route, ctx) => {
|
|
17057
17100
|
const first = route[0];
|
|
17058
17101
|
let layer = first?.route_type === "via" ? first.from_layer : first?.layer;
|
|
17059
17102
|
for (const [index, point8] of route.entries()) {
|
|
@@ -17080,16 +17123,16 @@ var fanoutTracePath = z52.object({
|
|
|
17080
17123
|
|
|
17081
17124
|
// lib/common/fanoutProps.ts
|
|
17082
17125
|
import { layer_ref as layer_ref6 } from "circuit-json";
|
|
17083
|
-
import { z as
|
|
17126
|
+
import { z as z55 } from "zod";
|
|
17084
17127
|
|
|
17085
17128
|
// lib/common/fanoutBoundaryPadding.ts
|
|
17086
|
-
import { z as
|
|
17129
|
+
import { z as z54 } from "zod";
|
|
17087
17130
|
var nonnegativeDistance = distance.refine((value) => value >= 0, {
|
|
17088
17131
|
message: "Fanout boundary padding cannot be negative"
|
|
17089
17132
|
});
|
|
17090
|
-
var fanoutBoundaryPadding =
|
|
17133
|
+
var fanoutBoundaryPadding = z54.union([
|
|
17091
17134
|
nonnegativeDistance,
|
|
17092
|
-
|
|
17135
|
+
z54.object({
|
|
17093
17136
|
top: nonnegativeDistance.optional(),
|
|
17094
17137
|
right: nonnegativeDistance.optional(),
|
|
17095
17138
|
bottom: nonnegativeDistance.optional(),
|
|
@@ -17116,32 +17159,32 @@ var canonicalBusFanoutDirectionValues = [
|
|
|
17116
17159
|
"leftside_top",
|
|
17117
17160
|
"center"
|
|
17118
17161
|
];
|
|
17119
|
-
var canonicalBusFanoutDirection =
|
|
17162
|
+
var canonicalBusFanoutDirection = z55.enum(
|
|
17120
17163
|
canonicalBusFanoutDirectionValues
|
|
17121
17164
|
);
|
|
17122
|
-
var busFanoutDirection =
|
|
17165
|
+
var busFanoutDirection = z55.union([
|
|
17123
17166
|
ninePointAnchor,
|
|
17124
17167
|
canonicalBusFanoutDirection,
|
|
17125
|
-
|
|
17126
|
-
direction:
|
|
17168
|
+
z55.object({
|
|
17169
|
+
direction: z55.union([ninePointAnchor, canonicalBusFanoutDirection])
|
|
17127
17170
|
})
|
|
17128
17171
|
]);
|
|
17129
|
-
var fanoutProps =
|
|
17130
|
-
busFanoutDirections:
|
|
17172
|
+
var fanoutProps = z55.object({
|
|
17173
|
+
busFanoutDirections: z55.record(busFanoutDirection).optional(),
|
|
17131
17174
|
fanoutBoundaryPadding: fanoutBoundaryPadding.optional(),
|
|
17132
|
-
fanoutRoutingLayers:
|
|
17133
|
-
fanoutPourNetMap:
|
|
17175
|
+
fanoutRoutingLayers: z55.array(layer_ref6).min(1).optional(),
|
|
17176
|
+
fanoutPourNetMap: z55.record(layer_ref6, z55.union([z55.string(), z55.array(z55.string()).min(1)])).optional()
|
|
17134
17177
|
});
|
|
17135
17178
|
expectTypesMatch(true);
|
|
17136
17179
|
|
|
17137
17180
|
// lib/components/breakout.ts
|
|
17138
|
-
import { z as
|
|
17181
|
+
import { z as z56 } from "zod";
|
|
17139
17182
|
var nonnegativeFanoutMargin = distance.refine((value) => value >= 0, {
|
|
17140
17183
|
message: "Fanout margin cannot be negative"
|
|
17141
17184
|
});
|
|
17142
17185
|
var breakoutProps = subcircuitGroupProps.extend({
|
|
17143
17186
|
autorouter: autorouterProp.default("fanout"),
|
|
17144
|
-
pcbTracePaths:
|
|
17187
|
+
pcbTracePaths: z56.array(fanoutTracePath).optional(),
|
|
17145
17188
|
padding: distance.optional(),
|
|
17146
17189
|
paddingLeft: distance.optional(),
|
|
17147
17190
|
paddingRight: distance.optional(),
|
|
@@ -17155,41 +17198,41 @@ expectTypesMatch(true);
|
|
|
17155
17198
|
// lib/components/chip.ts
|
|
17156
17199
|
import { distance as distance12, supplier_name as supplier_name2 } from "circuit-json";
|
|
17157
17200
|
import { isValidElement } from "react";
|
|
17158
|
-
import { z as
|
|
17159
|
-
var connectionTarget2 =
|
|
17160
|
-
var noConnectProp =
|
|
17161
|
-
var connectionsProp =
|
|
17162
|
-
var spicemodelElement =
|
|
17201
|
+
import { z as z57 } from "zod";
|
|
17202
|
+
var connectionTarget2 = z57.string().or(z57.array(z57.string()).readonly()).or(z57.array(z57.string()));
|
|
17203
|
+
var noConnectProp = z57.array(schematicPinLabel).readonly().or(z57.array(schematicPinLabel));
|
|
17204
|
+
var connectionsProp = z57.custom().pipe(z57.record(z57.string(), connectionTarget2));
|
|
17205
|
+
var spicemodelElement = z57.custom(
|
|
17163
17206
|
(v) => !!v && typeof v === "object" && "type" in v && "props" in v
|
|
17164
17207
|
);
|
|
17165
|
-
var internalCircuitElement =
|
|
17208
|
+
var internalCircuitElement = z57.custom(
|
|
17166
17209
|
(value) => isValidElement(value) && value.type === "internalcircuit"
|
|
17167
17210
|
);
|
|
17168
|
-
var pinLabelsProp =
|
|
17211
|
+
var pinLabelsProp = z57.record(
|
|
17169
17212
|
schematicPinLabel,
|
|
17170
|
-
schematicPinLabel.or(
|
|
17213
|
+
schematicPinLabel.or(z57.array(schematicPinLabel).readonly()).or(z57.array(schematicPinLabel))
|
|
17171
17214
|
);
|
|
17172
17215
|
expectTypesMatch(true);
|
|
17173
|
-
var pinCompatibleVariant =
|
|
17174
|
-
manufacturerPartNumber:
|
|
17175
|
-
supplierPartNumber:
|
|
17216
|
+
var pinCompatibleVariant = z57.object({
|
|
17217
|
+
manufacturerPartNumber: z57.string().optional(),
|
|
17218
|
+
supplierPartNumber: z57.record(supplier_name2, z57.array(z57.string())).optional()
|
|
17176
17219
|
});
|
|
17177
17220
|
var chipProps = commonComponentProps.extend({
|
|
17178
|
-
manufacturerPartNumber:
|
|
17221
|
+
manufacturerPartNumber: z57.string().optional(),
|
|
17179
17222
|
pinLabels: pinLabelsProp.optional(),
|
|
17180
|
-
showPinAliases:
|
|
17181
|
-
pcbPinLabels:
|
|
17182
|
-
internallyConnectedPins:
|
|
17183
|
-
externallyConnectedPins:
|
|
17223
|
+
showPinAliases: z57.boolean().optional(),
|
|
17224
|
+
pcbPinLabels: z57.record(z57.string(), z57.string()).optional(),
|
|
17225
|
+
internallyConnectedPins: z57.array(z57.array(z57.union([z57.string(), z57.number()]))).optional(),
|
|
17226
|
+
externallyConnectedPins: z57.array(z57.array(z57.string())).optional(),
|
|
17184
17227
|
schPinArrangement: schematicPortArrangement.optional(),
|
|
17185
17228
|
schPortArrangement: schematicPortArrangement.optional(),
|
|
17186
|
-
pinCompatibleVariants:
|
|
17229
|
+
pinCompatibleVariants: z57.array(pinCompatibleVariant).optional(),
|
|
17187
17230
|
schPinStyle: schematicPinStyle.optional(),
|
|
17188
17231
|
schPinSpacing: distance12.optional(),
|
|
17189
17232
|
schWidth: distance12.optional(),
|
|
17190
17233
|
schHeight: distance12.optional(),
|
|
17191
|
-
noSchematicRepresentation:
|
|
17192
|
-
schShowInternalCircuit:
|
|
17234
|
+
noSchematicRepresentation: z57.boolean().optional(),
|
|
17235
|
+
schShowInternalCircuit: z57.boolean().optional().default(false),
|
|
17193
17236
|
noConnect: noConnectProp.optional(),
|
|
17194
17237
|
connections: connectionsProp.optional(),
|
|
17195
17238
|
spiceModel: spicemodelElement.optional(),
|
|
@@ -17204,38 +17247,38 @@ expectTypesMatch(true);
|
|
|
17204
17247
|
|
|
17205
17248
|
// lib/components/jumper.ts
|
|
17206
17249
|
import { distance as distance13 } from "circuit-json";
|
|
17207
|
-
import { z as
|
|
17250
|
+
import { z as z58 } from "zod";
|
|
17208
17251
|
var jumperProps = commonComponentProps.extend({
|
|
17209
|
-
manufacturerPartNumber:
|
|
17210
|
-
pinLabels:
|
|
17211
|
-
|
|
17212
|
-
schematicPinLabel.or(
|
|
17252
|
+
manufacturerPartNumber: z58.string().optional(),
|
|
17253
|
+
pinLabels: z58.record(
|
|
17254
|
+
z58.number().or(schematicPinLabel),
|
|
17255
|
+
schematicPinLabel.or(z58.array(schematicPinLabel))
|
|
17213
17256
|
).optional(),
|
|
17214
17257
|
schPinStyle: schematicPinStyle.optional(),
|
|
17215
17258
|
schPinSpacing: distance13.optional(),
|
|
17216
17259
|
schWidth: distance13.optional(),
|
|
17217
17260
|
schHeight: distance13.optional(),
|
|
17218
|
-
schDirection:
|
|
17261
|
+
schDirection: z58.enum(["left", "right"]).optional(),
|
|
17219
17262
|
schPinArrangement: schematicPinArrangement.optional(),
|
|
17220
17263
|
schPortArrangement: schematicPortArrangement.optional(),
|
|
17221
|
-
pcbPinLabels:
|
|
17222
|
-
pinCount:
|
|
17223
|
-
internallyConnectedPins:
|
|
17224
|
-
connections:
|
|
17264
|
+
pcbPinLabels: z58.record(z58.string(), z58.string()).optional(),
|
|
17265
|
+
pinCount: z58.union([z58.literal(2), z58.literal(3)]).optional(),
|
|
17266
|
+
internallyConnectedPins: z58.array(z58.array(z58.union([z58.string(), z58.number()]))).optional(),
|
|
17267
|
+
connections: z58.custom().pipe(z58.record(z58.string(), connectionTarget)).optional()
|
|
17225
17268
|
});
|
|
17226
17269
|
expectTypesMatch(true);
|
|
17227
17270
|
|
|
17228
17271
|
// lib/components/solderjumper.ts
|
|
17229
|
-
import { z as
|
|
17272
|
+
import { z as z59 } from "zod";
|
|
17230
17273
|
var solderjumperProps = jumperProps.extend({
|
|
17231
|
-
bridgedPins:
|
|
17232
|
-
bridged:
|
|
17274
|
+
bridgedPins: z59.array(z59.array(z59.string())).optional(),
|
|
17275
|
+
bridged: z59.boolean().optional()
|
|
17233
17276
|
});
|
|
17234
17277
|
expectTypesMatch(true);
|
|
17235
17278
|
|
|
17236
17279
|
// lib/components/connector.ts
|
|
17237
|
-
import { z as
|
|
17238
|
-
var connectorStandard =
|
|
17280
|
+
import { z as z60 } from "zod";
|
|
17281
|
+
var connectorStandard = z60.enum([
|
|
17239
17282
|
"usb_c",
|
|
17240
17283
|
"m2",
|
|
17241
17284
|
"jst_sh",
|
|
@@ -17247,43 +17290,43 @@ var connectorStandard = z59.enum([
|
|
|
17247
17290
|
]);
|
|
17248
17291
|
var connectorProps = chipProps.extend({
|
|
17249
17292
|
standard: connectorStandard.optional(),
|
|
17250
|
-
pinCount:
|
|
17293
|
+
pinCount: z60.number().int().positive().optional()
|
|
17251
17294
|
});
|
|
17252
17295
|
expectTypesMatch(true);
|
|
17253
17296
|
|
|
17254
17297
|
// lib/components/interconnect.ts
|
|
17255
|
-
import { z as
|
|
17298
|
+
import { z as z61 } from "zod";
|
|
17256
17299
|
var interconnectProps = commonComponentProps.extend({
|
|
17257
|
-
standard:
|
|
17258
|
-
pinLabels:
|
|
17259
|
-
|
|
17260
|
-
schematicPinLabel.or(
|
|
17300
|
+
standard: z61.enum(["TSC0001_36P_XALT_2025_11", "0805", "0603", "1206"]).optional(),
|
|
17301
|
+
pinLabels: z61.record(
|
|
17302
|
+
z61.number().or(schematicPinLabel),
|
|
17303
|
+
schematicPinLabel.or(z61.array(schematicPinLabel))
|
|
17261
17304
|
).optional(),
|
|
17262
|
-
internallyConnectedPins:
|
|
17305
|
+
internallyConnectedPins: z61.array(z61.array(z61.union([z61.string(), z61.number()]))).optional()
|
|
17263
17306
|
});
|
|
17264
17307
|
expectTypesMatch(true);
|
|
17265
17308
|
|
|
17266
17309
|
// lib/components/fuse.ts
|
|
17267
|
-
import { z as
|
|
17310
|
+
import { z as z62 } from "zod";
|
|
17268
17311
|
var fusePinLabels = ["pin1", "pin2"];
|
|
17269
17312
|
var fuseProps = commonComponentProps.extend({
|
|
17270
|
-
currentRating:
|
|
17271
|
-
voltageRating:
|
|
17272
|
-
schShowRatings:
|
|
17313
|
+
currentRating: z62.union([z62.number(), z62.string()]),
|
|
17314
|
+
voltageRating: z62.union([z62.number(), z62.string()]).optional(),
|
|
17315
|
+
schShowRatings: z62.boolean().optional(),
|
|
17273
17316
|
schOrientation: schematicOrientation.optional(),
|
|
17274
|
-
connections:
|
|
17275
|
-
|
|
17276
|
-
|
|
17277
|
-
|
|
17278
|
-
|
|
17279
|
-
|
|
17317
|
+
connections: z62.record(
|
|
17318
|
+
z62.string(),
|
|
17319
|
+
z62.union([
|
|
17320
|
+
z62.string(),
|
|
17321
|
+
z62.array(z62.string()).readonly(),
|
|
17322
|
+
z62.array(z62.string())
|
|
17280
17323
|
])
|
|
17281
17324
|
).optional()
|
|
17282
17325
|
});
|
|
17283
17326
|
|
|
17284
17327
|
// lib/components/platedhole.ts
|
|
17285
17328
|
import { distance as distance14 } from "circuit-json";
|
|
17286
|
-
import { z as
|
|
17329
|
+
import { z as z63 } from "zod";
|
|
17287
17330
|
var DEFAULT_PIN_HEADER_HOLE_DIAMETER = "0.04in";
|
|
17288
17331
|
var DEFAULT_PIN_HEADER_OUTER_DIAMETER = "0.1in";
|
|
17289
17332
|
var inferPlatedHoleShapeAndDefaults = (rawProps) => {
|
|
@@ -17315,26 +17358,26 @@ var inferPlatedHoleShapeAndDefaults = (rawProps) => {
|
|
|
17315
17358
|
props.outerDiameter = DEFAULT_PIN_HEADER_OUTER_DIAMETER;
|
|
17316
17359
|
return props;
|
|
17317
17360
|
};
|
|
17318
|
-
var distanceHiddenUndefined =
|
|
17361
|
+
var distanceHiddenUndefined = z63.custom().transform((a) => {
|
|
17319
17362
|
if (a === void 0) return void 0;
|
|
17320
17363
|
return distance14.parse(a);
|
|
17321
17364
|
});
|
|
17322
|
-
var platedHolePropsByShape =
|
|
17365
|
+
var platedHolePropsByShape = z63.discriminatedUnion("shape", [
|
|
17323
17366
|
pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({
|
|
17324
|
-
name:
|
|
17325
|
-
connectsTo:
|
|
17326
|
-
shape:
|
|
17367
|
+
name: z63.string().optional(),
|
|
17368
|
+
connectsTo: z63.string().or(z63.array(z63.string())).optional(),
|
|
17369
|
+
shape: z63.literal("circle"),
|
|
17327
17370
|
holeDiameter: distance14,
|
|
17328
17371
|
outerDiameter: distance14,
|
|
17329
17372
|
padDiameter: distance14.optional().describe("Diameter of the copper pad"),
|
|
17330
17373
|
portHints: portHints.optional(),
|
|
17331
17374
|
solderMaskMargin: distance14.optional(),
|
|
17332
|
-
coveredWithSolderMask:
|
|
17375
|
+
coveredWithSolderMask: z63.boolean().optional()
|
|
17333
17376
|
}),
|
|
17334
17377
|
pcbLayoutProps.omit({ layer: true }).extend({
|
|
17335
|
-
name:
|
|
17336
|
-
connectsTo:
|
|
17337
|
-
shape:
|
|
17378
|
+
name: z63.string().optional(),
|
|
17379
|
+
connectsTo: z63.string().or(z63.array(z63.string())).optional(),
|
|
17380
|
+
shape: z63.literal("oval"),
|
|
17338
17381
|
outerWidth: distance14,
|
|
17339
17382
|
outerHeight: distance14,
|
|
17340
17383
|
holeWidth: distanceHiddenUndefined,
|
|
@@ -17343,13 +17386,13 @@ var platedHolePropsByShape = z62.discriminatedUnion("shape", [
|
|
|
17343
17386
|
innerHeight: distance14.optional().describe("DEPRECATED use holeHeight"),
|
|
17344
17387
|
portHints: portHints.optional(),
|
|
17345
17388
|
solderMaskMargin: distance14.optional(),
|
|
17346
|
-
coveredWithSolderMask:
|
|
17389
|
+
coveredWithSolderMask: z63.boolean().optional()
|
|
17347
17390
|
}),
|
|
17348
17391
|
pcbLayoutProps.omit({ layer: true }).extend({
|
|
17349
|
-
name:
|
|
17350
|
-
connectsTo:
|
|
17351
|
-
shape:
|
|
17352
|
-
rectPad:
|
|
17392
|
+
name: z63.string().optional(),
|
|
17393
|
+
connectsTo: z63.string().or(z63.array(z63.string())).optional(),
|
|
17394
|
+
shape: z63.literal("pill"),
|
|
17395
|
+
rectPad: z63.boolean().optional(),
|
|
17353
17396
|
outerWidth: distance14,
|
|
17354
17397
|
outerHeight: distance14,
|
|
17355
17398
|
holeWidth: distanceHiddenUndefined,
|
|
@@ -17360,30 +17403,30 @@ var platedHolePropsByShape = z62.discriminatedUnion("shape", [
|
|
|
17360
17403
|
holeOffsetX: distance14.optional(),
|
|
17361
17404
|
holeOffsetY: distance14.optional(),
|
|
17362
17405
|
solderMaskMargin: distance14.optional(),
|
|
17363
|
-
coveredWithSolderMask:
|
|
17406
|
+
coveredWithSolderMask: z63.boolean().optional()
|
|
17364
17407
|
}),
|
|
17365
17408
|
pcbLayoutProps.omit({ layer: true }).extend({
|
|
17366
|
-
name:
|
|
17367
|
-
connectsTo:
|
|
17368
|
-
shape:
|
|
17409
|
+
name: z63.string().optional(),
|
|
17410
|
+
connectsTo: z63.string().or(z63.array(z63.string())).optional(),
|
|
17411
|
+
shape: z63.literal("circular_hole_with_rect_pad"),
|
|
17369
17412
|
holeDiameter: distance14,
|
|
17370
17413
|
rectPadWidth: distance14,
|
|
17371
17414
|
rectPadHeight: distance14,
|
|
17372
17415
|
rectBorderRadius: distance14.optional(),
|
|
17373
|
-
holeShape:
|
|
17374
|
-
padShape:
|
|
17416
|
+
holeShape: z63.literal("circle").optional(),
|
|
17417
|
+
padShape: z63.literal("rect").optional(),
|
|
17375
17418
|
portHints: portHints.optional(),
|
|
17376
17419
|
holeOffsetX: distance14.optional(),
|
|
17377
17420
|
holeOffsetY: distance14.optional(),
|
|
17378
17421
|
solderMaskMargin: distance14.optional(),
|
|
17379
|
-
coveredWithSolderMask:
|
|
17422
|
+
coveredWithSolderMask: z63.boolean().optional()
|
|
17380
17423
|
}),
|
|
17381
17424
|
pcbLayoutProps.omit({ layer: true }).extend({
|
|
17382
|
-
name:
|
|
17383
|
-
connectsTo:
|
|
17384
|
-
shape:
|
|
17385
|
-
holeShape:
|
|
17386
|
-
padShape:
|
|
17425
|
+
name: z63.string().optional(),
|
|
17426
|
+
connectsTo: z63.string().or(z63.array(z63.string())).optional(),
|
|
17427
|
+
shape: z63.literal("pill_hole_with_rect_pad"),
|
|
17428
|
+
holeShape: z63.literal("pill").optional(),
|
|
17429
|
+
padShape: z63.literal("rect").optional(),
|
|
17387
17430
|
holeWidth: distance14,
|
|
17388
17431
|
holeHeight: distance14,
|
|
17389
17432
|
rectPadWidth: distance14,
|
|
@@ -17393,22 +17436,22 @@ var platedHolePropsByShape = z62.discriminatedUnion("shape", [
|
|
|
17393
17436
|
holeOffsetX: distance14.optional(),
|
|
17394
17437
|
holeOffsetY: distance14.optional(),
|
|
17395
17438
|
solderMaskMargin: distance14.optional(),
|
|
17396
|
-
coveredWithSolderMask:
|
|
17439
|
+
coveredWithSolderMask: z63.boolean().optional()
|
|
17397
17440
|
}),
|
|
17398
17441
|
pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({
|
|
17399
|
-
name:
|
|
17400
|
-
connectsTo:
|
|
17401
|
-
shape:
|
|
17402
|
-
holeShape:
|
|
17442
|
+
name: z63.string().optional(),
|
|
17443
|
+
connectsTo: z63.string().or(z63.array(z63.string())).optional(),
|
|
17444
|
+
shape: z63.literal("hole_with_polygon_pad"),
|
|
17445
|
+
holeShape: z63.enum(["circle", "oval", "pill", "rotated_pill"]),
|
|
17403
17446
|
holeDiameter: distance14.optional(),
|
|
17404
17447
|
holeWidth: distance14.optional(),
|
|
17405
17448
|
holeHeight: distance14.optional(),
|
|
17406
|
-
padOutline:
|
|
17449
|
+
padOutline: z63.array(point),
|
|
17407
17450
|
holeOffsetX: distance14,
|
|
17408
17451
|
holeOffsetY: distance14,
|
|
17409
17452
|
portHints: portHints.optional(),
|
|
17410
17453
|
solderMaskMargin: distance14.optional(),
|
|
17411
|
-
coveredWithSolderMask:
|
|
17454
|
+
coveredWithSolderMask: z63.boolean().optional()
|
|
17412
17455
|
})
|
|
17413
17456
|
]).transform((a) => {
|
|
17414
17457
|
if ("innerWidth" in a && a.innerWidth !== void 0) {
|
|
@@ -17419,7 +17462,7 @@ var platedHolePropsByShape = z62.discriminatedUnion("shape", [
|
|
|
17419
17462
|
}
|
|
17420
17463
|
return a;
|
|
17421
17464
|
});
|
|
17422
|
-
var platedHoleProps =
|
|
17465
|
+
var platedHoleProps = z63.preprocess(
|
|
17423
17466
|
inferPlatedHoleShapeAndDefaults,
|
|
17424
17467
|
platedHolePropsByShape
|
|
17425
17468
|
);
|
|
@@ -17427,7 +17470,7 @@ expectTypesMatch(true);
|
|
|
17427
17470
|
|
|
17428
17471
|
// lib/components/resistor.ts
|
|
17429
17472
|
import { resistance } from "circuit-json";
|
|
17430
|
-
import { z as
|
|
17473
|
+
import { z as z64 } from "zod";
|
|
17431
17474
|
var resistorPinLabels = ["pin1", "pin2", "pos", "neg"];
|
|
17432
17475
|
var resistorImperialFootprintNames = /* @__PURE__ */ new Set([
|
|
17433
17476
|
"01005",
|
|
@@ -17451,7 +17494,7 @@ var resistorFootprintProp = footprintProp.optional().transform(mapResistorFootpr
|
|
|
17451
17494
|
var resistorProps = commonComponentProps.extend({
|
|
17452
17495
|
footprint: resistorFootprintProp,
|
|
17453
17496
|
resistance,
|
|
17454
|
-
tolerance:
|
|
17497
|
+
tolerance: z64.union([z64.string(), z64.number()]).transform((val) => {
|
|
17455
17498
|
if (typeof val === "string") {
|
|
17456
17499
|
if (val.endsWith("%")) {
|
|
17457
17500
|
return parseFloat(val.slice(0, -1)) / 100;
|
|
@@ -17460,12 +17503,12 @@ var resistorProps = commonComponentProps.extend({
|
|
|
17460
17503
|
}
|
|
17461
17504
|
return val;
|
|
17462
17505
|
}).pipe(
|
|
17463
|
-
|
|
17506
|
+
z64.number().min(0, "Tolerance must be non-negative").max(1, "Tolerance cannot be greater than 100%")
|
|
17464
17507
|
).optional(),
|
|
17465
|
-
pullupFor:
|
|
17466
|
-
pullupTo:
|
|
17467
|
-
pulldownFor:
|
|
17468
|
-
pulldownTo:
|
|
17508
|
+
pullupFor: z64.string().optional(),
|
|
17509
|
+
pullupTo: z64.string().optional(),
|
|
17510
|
+
pulldownFor: z64.string().optional(),
|
|
17511
|
+
pulldownTo: z64.string().optional(),
|
|
17469
17512
|
schOrientation: schematicOrientation.optional(),
|
|
17470
17513
|
schSize: schematicSymbolSize.optional(),
|
|
17471
17514
|
connections: createConnectionsProp(resistorPinLabels).optional()
|
|
@@ -17475,18 +17518,18 @@ expectTypesMatch(true);
|
|
|
17475
17518
|
|
|
17476
17519
|
// lib/components/potentiometer.ts
|
|
17477
17520
|
import { resistance as resistance2 } from "circuit-json";
|
|
17478
|
-
import { z as
|
|
17521
|
+
import { z as z65 } from "zod";
|
|
17479
17522
|
var potentiometerPinLabels = ["pin1", "pin2", "pin3"];
|
|
17480
17523
|
var potentiometerProps = commonComponentProps.extend({
|
|
17481
17524
|
maxResistance: resistance2,
|
|
17482
|
-
pinVariant:
|
|
17525
|
+
pinVariant: z65.enum(["two_pin", "three_pin"]).optional(),
|
|
17483
17526
|
connections: createConnectionsProp(potentiometerPinLabels).optional()
|
|
17484
17527
|
});
|
|
17485
17528
|
expectTypesMatch(true);
|
|
17486
17529
|
|
|
17487
17530
|
// lib/components/crystal.ts
|
|
17488
17531
|
import { capacitance, distance as distance15, frequency } from "circuit-json";
|
|
17489
|
-
import { z as
|
|
17532
|
+
import { z as z66 } from "zod";
|
|
17490
17533
|
var crystalPins = [
|
|
17491
17534
|
"pin1",
|
|
17492
17535
|
"left",
|
|
@@ -17499,8 +17542,8 @@ var crystalProps = commonComponentProps.extend({
|
|
|
17499
17542
|
frequency,
|
|
17500
17543
|
loadCapacitance: capacitance,
|
|
17501
17544
|
maxTraceLength: distance15.optional(),
|
|
17502
|
-
manufacturerPartNumber:
|
|
17503
|
-
pinVariant:
|
|
17545
|
+
manufacturerPartNumber: z66.string().optional(),
|
|
17546
|
+
pinVariant: z66.enum(["two_pin", "four_pin"]).optional(),
|
|
17504
17547
|
schOrientation: schematicOrientation.optional(),
|
|
17505
17548
|
connections: createConnectionsProp(crystalPins).optional()
|
|
17506
17549
|
});
|
|
@@ -17508,34 +17551,34 @@ expectTypesMatch(true);
|
|
|
17508
17551
|
|
|
17509
17552
|
// lib/components/resonator.ts
|
|
17510
17553
|
import { frequency as frequency2, capacitance as capacitance2 } from "circuit-json";
|
|
17511
|
-
import { z as
|
|
17554
|
+
import { z as z67 } from "zod";
|
|
17512
17555
|
var resonatorProps = commonComponentProps.extend({
|
|
17513
17556
|
frequency: frequency2,
|
|
17514
17557
|
loadCapacitance: capacitance2,
|
|
17515
|
-
pinVariant:
|
|
17558
|
+
pinVariant: z67.enum(["no_ground", "ground_pin", "two_ground_pins"]).optional()
|
|
17516
17559
|
});
|
|
17517
17560
|
expectTypesMatch(true);
|
|
17518
17561
|
|
|
17519
17562
|
// lib/components/stampboard.ts
|
|
17520
17563
|
import { distance as distance16 } from "circuit-json";
|
|
17521
|
-
import { z as
|
|
17564
|
+
import { z as z68 } from "zod";
|
|
17522
17565
|
var stampboardProps = boardProps.extend({
|
|
17523
|
-
leftPinCount:
|
|
17524
|
-
rightPinCount:
|
|
17525
|
-
topPinCount:
|
|
17526
|
-
bottomPinCount:
|
|
17527
|
-
leftPins:
|
|
17528
|
-
rightPins:
|
|
17529
|
-
topPins:
|
|
17530
|
-
bottomPins:
|
|
17566
|
+
leftPinCount: z68.number().optional(),
|
|
17567
|
+
rightPinCount: z68.number().optional(),
|
|
17568
|
+
topPinCount: z68.number().optional(),
|
|
17569
|
+
bottomPinCount: z68.number().optional(),
|
|
17570
|
+
leftPins: z68.array(z68.string()).optional(),
|
|
17571
|
+
rightPins: z68.array(z68.string()).optional(),
|
|
17572
|
+
topPins: z68.array(z68.string()).optional(),
|
|
17573
|
+
bottomPins: z68.array(z68.string()).optional(),
|
|
17531
17574
|
pinPitch: distance16.optional(),
|
|
17532
|
-
innerHoles:
|
|
17575
|
+
innerHoles: z68.boolean().optional()
|
|
17533
17576
|
});
|
|
17534
17577
|
expectTypesMatch(true);
|
|
17535
17578
|
|
|
17536
17579
|
// lib/components/capacitor.ts
|
|
17537
17580
|
import { capacitance as capacitance3, distance as distance17, voltage } from "circuit-json";
|
|
17538
|
-
import { z as
|
|
17581
|
+
import { z as z69 } from "zod";
|
|
17539
17582
|
var capacitorPinLabels = [
|
|
17540
17583
|
"pin1",
|
|
17541
17584
|
"pin2",
|
|
@@ -17547,12 +17590,12 @@ var capacitorPinLabels = [
|
|
|
17547
17590
|
var capacitorProps = commonComponentProps.extend({
|
|
17548
17591
|
capacitance: capacitance3,
|
|
17549
17592
|
maxVoltageRating: voltage.optional(),
|
|
17550
|
-
schShowRatings:
|
|
17551
|
-
polarized:
|
|
17552
|
-
decouplingFor:
|
|
17553
|
-
decouplingTo:
|
|
17554
|
-
bypassFor:
|
|
17555
|
-
bypassTo:
|
|
17593
|
+
schShowRatings: z69.boolean().optional().default(false),
|
|
17594
|
+
polarized: z69.boolean().optional().default(false),
|
|
17595
|
+
decouplingFor: z69.string().optional(),
|
|
17596
|
+
decouplingTo: z69.string().optional(),
|
|
17597
|
+
bypassFor: z69.string().optional(),
|
|
17598
|
+
bypassTo: z69.string().optional(),
|
|
17556
17599
|
maxDecouplingTraceLength: distance17.optional(),
|
|
17557
17600
|
schOrientation: schematicOrientation.optional(),
|
|
17558
17601
|
schSize: schematicSymbolSize.optional(),
|
|
@@ -17563,14 +17606,14 @@ expectTypesMatch(true);
|
|
|
17563
17606
|
|
|
17564
17607
|
// lib/components/net.ts
|
|
17565
17608
|
import { distance as distance18 } from "circuit-json";
|
|
17566
|
-
import { z as
|
|
17567
|
-
var netProps =
|
|
17568
|
-
name:
|
|
17569
|
-
connectsTo:
|
|
17570
|
-
routingPhaseIndex:
|
|
17571
|
-
highlightColor:
|
|
17572
|
-
isPowerNet:
|
|
17573
|
-
isGroundNet:
|
|
17609
|
+
import { z as z70 } from "zod";
|
|
17610
|
+
var netProps = z70.object({
|
|
17611
|
+
name: z70.string(),
|
|
17612
|
+
connectsTo: z70.string().or(z70.array(z70.string())).optional(),
|
|
17613
|
+
routingPhaseIndex: z70.number().nullable().optional(),
|
|
17614
|
+
highlightColor: z70.string().optional(),
|
|
17615
|
+
isPowerNet: z70.boolean().optional(),
|
|
17616
|
+
isGroundNet: z70.boolean().optional(),
|
|
17574
17617
|
nominalTraceWidth: distance18.optional()
|
|
17575
17618
|
});
|
|
17576
17619
|
expectTypesMatch(true);
|
|
@@ -17584,55 +17627,55 @@ var fiducialProps = commonComponentProps.extend({
|
|
|
17584
17627
|
expectTypesMatch(true);
|
|
17585
17628
|
|
|
17586
17629
|
// lib/components/constrainedlayout.ts
|
|
17587
|
-
import { z as
|
|
17588
|
-
var constrainedLayoutProps =
|
|
17589
|
-
name:
|
|
17590
|
-
pcbOnly:
|
|
17591
|
-
schOnly:
|
|
17630
|
+
import { z as z72 } from "zod";
|
|
17631
|
+
var constrainedLayoutProps = z72.object({
|
|
17632
|
+
name: z72.string().optional(),
|
|
17633
|
+
pcbOnly: z72.boolean().optional(),
|
|
17634
|
+
schOnly: z72.boolean().optional()
|
|
17592
17635
|
});
|
|
17593
17636
|
expectTypesMatch(true);
|
|
17594
17637
|
|
|
17595
17638
|
// lib/components/constraint.ts
|
|
17596
|
-
import { z as
|
|
17597
|
-
var pcbXDistConstraintProps =
|
|
17598
|
-
pcb:
|
|
17639
|
+
import { z as z73 } from "zod";
|
|
17640
|
+
var pcbXDistConstraintProps = z73.object({
|
|
17641
|
+
pcb: z73.literal(true).optional(),
|
|
17599
17642
|
xDist: distance,
|
|
17600
|
-
left:
|
|
17601
|
-
right:
|
|
17602
|
-
edgeToEdge:
|
|
17603
|
-
centerToCenter:
|
|
17643
|
+
left: z73.string(),
|
|
17644
|
+
right: z73.string(),
|
|
17645
|
+
edgeToEdge: z73.literal(true).optional(),
|
|
17646
|
+
centerToCenter: z73.literal(true).optional()
|
|
17604
17647
|
});
|
|
17605
17648
|
expectTypesMatch(
|
|
17606
17649
|
true
|
|
17607
17650
|
);
|
|
17608
|
-
var pcbYDistConstraintProps =
|
|
17609
|
-
pcb:
|
|
17651
|
+
var pcbYDistConstraintProps = z73.object({
|
|
17652
|
+
pcb: z73.literal(true).optional(),
|
|
17610
17653
|
yDist: distance,
|
|
17611
|
-
top:
|
|
17612
|
-
bottom:
|
|
17613
|
-
edgeToEdge:
|
|
17614
|
-
centerToCenter:
|
|
17654
|
+
top: z73.string(),
|
|
17655
|
+
bottom: z73.string(),
|
|
17656
|
+
edgeToEdge: z73.literal(true).optional(),
|
|
17657
|
+
centerToCenter: z73.literal(true).optional()
|
|
17615
17658
|
});
|
|
17616
17659
|
expectTypesMatch(
|
|
17617
17660
|
true
|
|
17618
17661
|
);
|
|
17619
|
-
var pcbSameYConstraintProps =
|
|
17620
|
-
pcb:
|
|
17621
|
-
sameY:
|
|
17622
|
-
for:
|
|
17662
|
+
var pcbSameYConstraintProps = z73.object({
|
|
17663
|
+
pcb: z73.literal(true).optional(),
|
|
17664
|
+
sameY: z73.literal(true).optional(),
|
|
17665
|
+
for: z73.array(z73.string())
|
|
17623
17666
|
});
|
|
17624
17667
|
expectTypesMatch(
|
|
17625
17668
|
true
|
|
17626
17669
|
);
|
|
17627
|
-
var pcbSameXConstraintProps =
|
|
17628
|
-
pcb:
|
|
17629
|
-
sameX:
|
|
17630
|
-
for:
|
|
17670
|
+
var pcbSameXConstraintProps = z73.object({
|
|
17671
|
+
pcb: z73.literal(true).optional(),
|
|
17672
|
+
sameX: z73.literal(true).optional(),
|
|
17673
|
+
for: z73.array(z73.string())
|
|
17631
17674
|
});
|
|
17632
17675
|
expectTypesMatch(
|
|
17633
17676
|
true
|
|
17634
17677
|
);
|
|
17635
|
-
var constraintProps =
|
|
17678
|
+
var constraintProps = z73.union([
|
|
17636
17679
|
pcbXDistConstraintProps,
|
|
17637
17680
|
pcbYDistConstraintProps,
|
|
17638
17681
|
pcbSameYConstraintProps,
|
|
@@ -17641,13 +17684,13 @@ var constraintProps = z72.union([
|
|
|
17641
17684
|
expectTypesMatch(true);
|
|
17642
17685
|
|
|
17643
17686
|
// lib/components/cutout.ts
|
|
17644
|
-
import { z as
|
|
17687
|
+
import { z as z74 } from "zod";
|
|
17645
17688
|
var rectCutoutProps = pcbLayoutProps.omit({
|
|
17646
17689
|
layer: true,
|
|
17647
17690
|
pcbRotation: true
|
|
17648
17691
|
}).extend({
|
|
17649
|
-
name:
|
|
17650
|
-
shape:
|
|
17692
|
+
name: z74.string().optional(),
|
|
17693
|
+
shape: z74.literal("rect"),
|
|
17651
17694
|
width: distance,
|
|
17652
17695
|
height: distance
|
|
17653
17696
|
});
|
|
@@ -17656,8 +17699,8 @@ var circleCutoutProps = pcbLayoutProps.omit({
|
|
|
17656
17699
|
layer: true,
|
|
17657
17700
|
pcbRotation: true
|
|
17658
17701
|
}).extend({
|
|
17659
|
-
name:
|
|
17660
|
-
shape:
|
|
17702
|
+
name: z74.string().optional(),
|
|
17703
|
+
shape: z74.literal("circle"),
|
|
17661
17704
|
radius: distance
|
|
17662
17705
|
});
|
|
17663
17706
|
expectTypesMatch(true);
|
|
@@ -17665,36 +17708,36 @@ var polygonCutoutProps = pcbLayoutProps.omit({
|
|
|
17665
17708
|
layer: true,
|
|
17666
17709
|
pcbRotation: true
|
|
17667
17710
|
}).extend({
|
|
17668
|
-
name:
|
|
17669
|
-
shape:
|
|
17670
|
-
points:
|
|
17711
|
+
name: z74.string().optional(),
|
|
17712
|
+
shape: z74.literal("polygon"),
|
|
17713
|
+
points: z74.array(point)
|
|
17671
17714
|
});
|
|
17672
17715
|
expectTypesMatch(true);
|
|
17673
|
-
var cutoutProps =
|
|
17716
|
+
var cutoutProps = z74.discriminatedUnion("shape", [
|
|
17674
17717
|
rectCutoutProps,
|
|
17675
17718
|
circleCutoutProps,
|
|
17676
17719
|
polygonCutoutProps
|
|
17677
17720
|
]);
|
|
17678
17721
|
|
|
17679
17722
|
// lib/components/drc-check.ts
|
|
17680
|
-
import { z as
|
|
17681
|
-
var drcCheckProps =
|
|
17682
|
-
name:
|
|
17723
|
+
import { z as z75 } from "zod";
|
|
17724
|
+
var drcCheckProps = z75.object({
|
|
17725
|
+
name: z75.string().optional(),
|
|
17683
17726
|
checkFn: customDrcCheckFn
|
|
17684
17727
|
});
|
|
17685
17728
|
expectTypesMatch(true);
|
|
17686
17729
|
|
|
17687
17730
|
// lib/components/smtpad.ts
|
|
17688
|
-
import { z as
|
|
17731
|
+
import { z as z76 } from "zod";
|
|
17689
17732
|
var rectSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
|
|
17690
|
-
name:
|
|
17691
|
-
shape:
|
|
17733
|
+
name: z76.string().optional(),
|
|
17734
|
+
shape: z76.literal("rect"),
|
|
17692
17735
|
width: distance,
|
|
17693
17736
|
height: distance,
|
|
17694
17737
|
rectBorderRadius: distance.optional(),
|
|
17695
17738
|
cornerRadius: distance.optional(),
|
|
17696
17739
|
portHints: portHints.optional(),
|
|
17697
|
-
coveredWithSolderMask:
|
|
17740
|
+
coveredWithSolderMask: z76.boolean().optional(),
|
|
17698
17741
|
solderMaskMargin: distance.optional(),
|
|
17699
17742
|
solderMaskMarginLeft: distance.optional(),
|
|
17700
17743
|
solderMaskMarginRight: distance.optional(),
|
|
@@ -17704,14 +17747,14 @@ var rectSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
|
|
|
17704
17747
|
});
|
|
17705
17748
|
expectTypesMatch(true);
|
|
17706
17749
|
var rotatedRectSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
|
|
17707
|
-
name:
|
|
17708
|
-
shape:
|
|
17750
|
+
name: z76.string().optional(),
|
|
17751
|
+
shape: z76.literal("rotated_rect"),
|
|
17709
17752
|
width: distance,
|
|
17710
17753
|
height: distance,
|
|
17711
|
-
ccwRotation:
|
|
17754
|
+
ccwRotation: z76.number(),
|
|
17712
17755
|
cornerRadius: distance.optional(),
|
|
17713
17756
|
portHints: portHints.optional(),
|
|
17714
|
-
coveredWithSolderMask:
|
|
17757
|
+
coveredWithSolderMask: z76.boolean().optional(),
|
|
17715
17758
|
solderMaskMargin: distance.optional(),
|
|
17716
17759
|
solderMaskMarginLeft: distance.optional(),
|
|
17717
17760
|
solderMaskMarginRight: distance.optional(),
|
|
@@ -17721,51 +17764,51 @@ var rotatedRectSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
|
|
|
17721
17764
|
});
|
|
17722
17765
|
expectTypesMatch(true);
|
|
17723
17766
|
var circleSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
|
|
17724
|
-
name:
|
|
17725
|
-
shape:
|
|
17767
|
+
name: z76.string().optional(),
|
|
17768
|
+
shape: z76.literal("circle"),
|
|
17726
17769
|
radius: distance,
|
|
17727
17770
|
portHints: portHints.optional(),
|
|
17728
|
-
coveredWithSolderMask:
|
|
17771
|
+
coveredWithSolderMask: z76.boolean().optional(),
|
|
17729
17772
|
solderMaskMargin: distance.optional(),
|
|
17730
17773
|
solderPasteMargin: distance.optional()
|
|
17731
17774
|
});
|
|
17732
17775
|
expectTypesMatch(true);
|
|
17733
17776
|
var pillSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
|
|
17734
|
-
name:
|
|
17735
|
-
shape:
|
|
17777
|
+
name: z76.string().optional(),
|
|
17778
|
+
shape: z76.literal("pill"),
|
|
17736
17779
|
width: distance,
|
|
17737
17780
|
height: distance,
|
|
17738
17781
|
radius: distance,
|
|
17739
17782
|
portHints: portHints.optional(),
|
|
17740
|
-
coveredWithSolderMask:
|
|
17783
|
+
coveredWithSolderMask: z76.boolean().optional(),
|
|
17741
17784
|
solderMaskMargin: distance.optional(),
|
|
17742
17785
|
solderPasteMargin: distance.optional()
|
|
17743
17786
|
});
|
|
17744
17787
|
expectTypesMatch(true);
|
|
17745
17788
|
var rotatedPillSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
|
|
17746
|
-
name:
|
|
17747
|
-
shape:
|
|
17789
|
+
name: z76.string().optional(),
|
|
17790
|
+
shape: z76.literal("rotated_pill"),
|
|
17748
17791
|
width: distance,
|
|
17749
17792
|
height: distance,
|
|
17750
17793
|
radius: distance,
|
|
17751
|
-
ccwRotation:
|
|
17794
|
+
ccwRotation: z76.number(),
|
|
17752
17795
|
portHints: portHints.optional(),
|
|
17753
|
-
coveredWithSolderMask:
|
|
17796
|
+
coveredWithSolderMask: z76.boolean().optional(),
|
|
17754
17797
|
solderMaskMargin: distance.optional(),
|
|
17755
17798
|
solderPasteMargin: distance.optional()
|
|
17756
17799
|
});
|
|
17757
17800
|
expectTypesMatch(true);
|
|
17758
17801
|
var polygonSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
|
|
17759
|
-
name:
|
|
17760
|
-
shape:
|
|
17761
|
-
points:
|
|
17802
|
+
name: z76.string().optional(),
|
|
17803
|
+
shape: z76.literal("polygon"),
|
|
17804
|
+
points: z76.array(point),
|
|
17762
17805
|
portHints: portHints.optional(),
|
|
17763
|
-
coveredWithSolderMask:
|
|
17806
|
+
coveredWithSolderMask: z76.boolean().optional(),
|
|
17764
17807
|
solderMaskMargin: distance.optional(),
|
|
17765
17808
|
solderPasteMargin: distance.optional()
|
|
17766
17809
|
});
|
|
17767
17810
|
expectTypesMatch(true);
|
|
17768
|
-
var smtPadProps =
|
|
17811
|
+
var smtPadProps = z76.discriminatedUnion("shape", [
|
|
17769
17812
|
circleSmtPadProps,
|
|
17770
17813
|
rectSmtPadProps,
|
|
17771
17814
|
rotatedRectSmtPadProps,
|
|
@@ -17776,63 +17819,63 @@ var smtPadProps = z75.discriminatedUnion("shape", [
|
|
|
17776
17819
|
expectTypesMatch(true);
|
|
17777
17820
|
|
|
17778
17821
|
// lib/components/solderpaste.ts
|
|
17779
|
-
import { z as
|
|
17822
|
+
import { z as z77 } from "zod";
|
|
17780
17823
|
var rectSolderPasteProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
|
|
17781
|
-
shape:
|
|
17824
|
+
shape: z77.literal("rect"),
|
|
17782
17825
|
width: distance,
|
|
17783
17826
|
height: distance
|
|
17784
17827
|
});
|
|
17785
17828
|
expectTypesMatch(true);
|
|
17786
17829
|
var circleSolderPasteProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
|
|
17787
|
-
shape:
|
|
17830
|
+
shape: z77.literal("circle"),
|
|
17788
17831
|
radius: distance
|
|
17789
17832
|
});
|
|
17790
17833
|
expectTypesMatch(true);
|
|
17791
|
-
var solderPasteProps =
|
|
17834
|
+
var solderPasteProps = z77.union([
|
|
17792
17835
|
circleSolderPasteProps,
|
|
17793
17836
|
rectSolderPasteProps
|
|
17794
17837
|
]);
|
|
17795
17838
|
expectTypesMatch(true);
|
|
17796
17839
|
|
|
17797
17840
|
// lib/components/hole.ts
|
|
17798
|
-
import { z as
|
|
17841
|
+
import { z as z78 } from "zod";
|
|
17799
17842
|
var circleHoleProps = pcbLayoutProps.extend({
|
|
17800
|
-
name:
|
|
17801
|
-
shape:
|
|
17843
|
+
name: z78.string().optional(),
|
|
17844
|
+
shape: z78.literal("circle").optional(),
|
|
17802
17845
|
diameter: distance.optional(),
|
|
17803
17846
|
radius: distance.optional(),
|
|
17804
17847
|
solderMaskMargin: distance.optional(),
|
|
17805
|
-
coveredWithSolderMask:
|
|
17848
|
+
coveredWithSolderMask: z78.boolean().optional()
|
|
17806
17849
|
}).transform((d) => ({
|
|
17807
17850
|
...d,
|
|
17808
17851
|
diameter: d.diameter ?? 2 * d.radius,
|
|
17809
17852
|
radius: d.radius ?? d.diameter / 2
|
|
17810
17853
|
}));
|
|
17811
17854
|
var pillHoleProps = pcbLayoutProps.extend({
|
|
17812
|
-
name:
|
|
17813
|
-
shape:
|
|
17855
|
+
name: z78.string().optional(),
|
|
17856
|
+
shape: z78.literal("pill"),
|
|
17814
17857
|
width: distance,
|
|
17815
17858
|
height: distance,
|
|
17816
17859
|
solderMaskMargin: distance.optional(),
|
|
17817
|
-
coveredWithSolderMask:
|
|
17860
|
+
coveredWithSolderMask: z78.boolean().optional()
|
|
17818
17861
|
});
|
|
17819
17862
|
var ovalHoleProps = pcbLayoutProps.extend({
|
|
17820
|
-
name:
|
|
17821
|
-
shape:
|
|
17863
|
+
name: z78.string().optional(),
|
|
17864
|
+
shape: z78.literal("oval"),
|
|
17822
17865
|
width: distance,
|
|
17823
17866
|
height: distance,
|
|
17824
17867
|
solderMaskMargin: distance.optional(),
|
|
17825
|
-
coveredWithSolderMask:
|
|
17868
|
+
coveredWithSolderMask: z78.boolean().optional()
|
|
17826
17869
|
});
|
|
17827
17870
|
var rectHoleProps = pcbLayoutProps.extend({
|
|
17828
|
-
name:
|
|
17829
|
-
shape:
|
|
17871
|
+
name: z78.string().optional(),
|
|
17872
|
+
shape: z78.literal("rect"),
|
|
17830
17873
|
width: distance,
|
|
17831
17874
|
height: distance,
|
|
17832
17875
|
solderMaskMargin: distance.optional(),
|
|
17833
|
-
coveredWithSolderMask:
|
|
17876
|
+
coveredWithSolderMask: z78.boolean().optional()
|
|
17834
17877
|
});
|
|
17835
|
-
var holeProps =
|
|
17878
|
+
var holeProps = z78.union([
|
|
17836
17879
|
circleHoleProps,
|
|
17837
17880
|
pillHoleProps,
|
|
17838
17881
|
ovalHoleProps,
|
|
@@ -17841,7 +17884,7 @@ var holeProps = z77.union([
|
|
|
17841
17884
|
expectTypesMatch(true);
|
|
17842
17885
|
|
|
17843
17886
|
// lib/components/antenna.ts
|
|
17844
|
-
import { z as
|
|
17887
|
+
import { z as z79 } from "zod";
|
|
17845
17888
|
var antennaShapes = [
|
|
17846
17889
|
"2.4ghz_quarter_wave_monopole",
|
|
17847
17890
|
"2.4ghz_meandered_monopole",
|
|
@@ -17849,7 +17892,7 @@ var antennaShapes = [
|
|
|
17849
17892
|
"2.4ghz_meandered_inverted_f",
|
|
17850
17893
|
"2.4ghz_folded_dipole"
|
|
17851
17894
|
];
|
|
17852
|
-
var antennaShape =
|
|
17895
|
+
var antennaShape = z79.enum(antennaShapes);
|
|
17853
17896
|
var antennaFrequencyBands = [
|
|
17854
17897
|
"2.4ghz",
|
|
17855
17898
|
"5ghz",
|
|
@@ -17857,7 +17900,7 @@ var antennaFrequencyBands = [
|
|
|
17857
17900
|
"dual_band_2.4ghz_5ghz",
|
|
17858
17901
|
"tri_band_2.4ghz_5ghz_6ghz"
|
|
17859
17902
|
];
|
|
17860
|
-
var antennaFrequencyBand =
|
|
17903
|
+
var antennaFrequencyBand = z79.enum(antennaFrequencyBands);
|
|
17861
17904
|
var antennaProps = commonComponentProps.extend({
|
|
17862
17905
|
antennaShape: antennaShape.optional(),
|
|
17863
17906
|
frequencyBand: antennaFrequencyBand.optional(),
|
|
@@ -17867,39 +17910,39 @@ expectTypesMatch(true);
|
|
|
17867
17910
|
|
|
17868
17911
|
// lib/components/trace.ts
|
|
17869
17912
|
import { distance as distance19, route_hint_point as route_hint_point2 } from "circuit-json";
|
|
17870
|
-
import { z as
|
|
17871
|
-
var portRef =
|
|
17872
|
-
|
|
17873
|
-
|
|
17913
|
+
import { z as z80 } from "zod";
|
|
17914
|
+
var portRef = z80.union([
|
|
17915
|
+
z80.string(),
|
|
17916
|
+
z80.custom(
|
|
17874
17917
|
(v) => typeof v === "object" && v !== null && "getPortSelector" in v && typeof v.getPortSelector === "function"
|
|
17875
17918
|
)
|
|
17876
17919
|
]);
|
|
17877
|
-
var baseTraceProps =
|
|
17878
|
-
key:
|
|
17879
|
-
name:
|
|
17880
|
-
displayName:
|
|
17920
|
+
var baseTraceProps = z80.object({
|
|
17921
|
+
key: z80.string().optional(),
|
|
17922
|
+
name: z80.string().optional(),
|
|
17923
|
+
displayName: z80.string().optional(),
|
|
17881
17924
|
thickness: distance19.optional(),
|
|
17882
17925
|
width: distance19.optional().describe("Alias for trace thickness"),
|
|
17883
|
-
schematicRouteHints:
|
|
17884
|
-
pcbRouteHints:
|
|
17885
|
-
pcbTeardrops:
|
|
17886
|
-
pcbTeardropStart:
|
|
17887
|
-
pcbTeardropEnd:
|
|
17888
|
-
pcbPathRelativeTo:
|
|
17926
|
+
schematicRouteHints: z80.array(point).optional(),
|
|
17927
|
+
pcbRouteHints: z80.array(route_hint_point2).optional(),
|
|
17928
|
+
pcbTeardrops: z80.boolean().optional().describe("Enable PCB trace teardrops."),
|
|
17929
|
+
pcbTeardropStart: z80.boolean().optional().describe("Teardrop at the start (from) of trace"),
|
|
17930
|
+
pcbTeardropEnd: z80.boolean().optional().describe("Teardrop at the end (to) of trace"),
|
|
17931
|
+
pcbPathRelativeTo: z80.string().optional(),
|
|
17889
17932
|
pcbPath: pcbPath.optional(),
|
|
17890
|
-
pcbPaths:
|
|
17891
|
-
routingPhaseIndex:
|
|
17892
|
-
pcbStraightLine:
|
|
17893
|
-
schDisplayLabel:
|
|
17894
|
-
schStroke:
|
|
17895
|
-
highlightColor:
|
|
17933
|
+
pcbPaths: z80.array(pcbPath).optional(),
|
|
17934
|
+
routingPhaseIndex: z80.number().nullable().optional(),
|
|
17935
|
+
pcbStraightLine: z80.boolean().optional().describe("Draw a straight pcb trace between the connected points"),
|
|
17936
|
+
schDisplayLabel: z80.string().optional(),
|
|
17937
|
+
schStroke: z80.string().optional(),
|
|
17938
|
+
highlightColor: z80.string().optional(),
|
|
17896
17939
|
maxLength: distance19.optional(),
|
|
17897
|
-
maxViaCount:
|
|
17898
|
-
connectsTo:
|
|
17940
|
+
maxViaCount: z80.number().int().nonnegative().optional().describe("Maximum number of vias allowed in the PCB trace route"),
|
|
17941
|
+
connectsTo: z80.string().or(z80.array(z80.string())).optional()
|
|
17899
17942
|
});
|
|
17900
|
-
var traceProps =
|
|
17943
|
+
var traceProps = z80.union([
|
|
17901
17944
|
baseTraceProps.extend({
|
|
17902
|
-
path:
|
|
17945
|
+
path: z80.array(portRef)
|
|
17903
17946
|
}),
|
|
17904
17947
|
baseTraceProps.extend({
|
|
17905
17948
|
from: portRef,
|
|
@@ -17917,31 +17960,31 @@ import {
|
|
|
17917
17960
|
layer_ref as layer_ref7,
|
|
17918
17961
|
resistance as resistance3
|
|
17919
17962
|
} from "circuit-json";
|
|
17920
|
-
import { z as
|
|
17921
|
-
var busProps =
|
|
17922
|
-
name:
|
|
17923
|
-
connections:
|
|
17924
|
-
routingPhaseIndex:
|
|
17925
|
-
maxLengthSkew: distance20.pipe(
|
|
17926
|
-
targetImpedance: resistance3.pipe(
|
|
17927
|
-
pcbTraceWidth: distance20.pipe(
|
|
17928
|
-
pcbAllowedLayers:
|
|
17963
|
+
import { z as z81 } from "zod";
|
|
17964
|
+
var busProps = z81.object({
|
|
17965
|
+
name: z81.string().optional(),
|
|
17966
|
+
connections: z81.array(z81.string()).min(1),
|
|
17967
|
+
routingPhaseIndex: z81.number().nullable().optional(),
|
|
17968
|
+
maxLengthSkew: distance20.pipe(z81.number().min(0).finite()).optional(),
|
|
17969
|
+
targetImpedance: resistance3.pipe(z81.number().positive().finite()).optional(),
|
|
17970
|
+
pcbTraceWidth: distance20.pipe(z81.number().positive().finite()).optional(),
|
|
17971
|
+
pcbAllowedLayers: z81.array(layer_ref7).min(1).optional(),
|
|
17929
17972
|
preferredLayer: layer_ref7.optional(),
|
|
17930
|
-
preferredLayers:
|
|
17973
|
+
preferredLayers: z81.array(layer_ref7).min(1).optional()
|
|
17931
17974
|
});
|
|
17932
17975
|
expectTypesMatch(true);
|
|
17933
17976
|
|
|
17934
17977
|
// lib/components/differentialpair.ts
|
|
17935
17978
|
import { distance as distance21, resistance as resistance4 } from "circuit-json";
|
|
17936
|
-
import { z as
|
|
17937
|
-
var differentialPairProps =
|
|
17938
|
-
name:
|
|
17939
|
-
positiveConnection:
|
|
17940
|
-
negativeConnection:
|
|
17941
|
-
maxLengthSkew: distance21.pipe(
|
|
17942
|
-
targetDifferentialImpedance: resistance4.pipe(
|
|
17943
|
-
pcbTraceGap: distance21.pipe(
|
|
17944
|
-
maxUncoupledLength: distance21.pipe(
|
|
17979
|
+
import { z as z82 } from "zod";
|
|
17980
|
+
var differentialPairProps = z82.object({
|
|
17981
|
+
name: z82.string().optional(),
|
|
17982
|
+
positiveConnection: z82.string(),
|
|
17983
|
+
negativeConnection: z82.string(),
|
|
17984
|
+
maxLengthSkew: distance21.pipe(z82.number().min(0).finite()).optional(),
|
|
17985
|
+
targetDifferentialImpedance: resistance4.pipe(z82.number().positive().finite()).optional(),
|
|
17986
|
+
pcbTraceGap: distance21.pipe(z82.number().positive().finite()).optional(),
|
|
17987
|
+
maxUncoupledLength: distance21.pipe(z82.number().min(0).finite()).optional()
|
|
17945
17988
|
});
|
|
17946
17989
|
expectTypesMatch(true);
|
|
17947
17990
|
|
|
@@ -17949,8 +17992,8 @@ expectTypesMatch(true);
|
|
|
17949
17992
|
import {
|
|
17950
17993
|
layer_ref as layer_ref8
|
|
17951
17994
|
} from "circuit-json";
|
|
17952
|
-
import { z as
|
|
17953
|
-
var footprintInsertionDirection =
|
|
17995
|
+
import { z as z83 } from "zod";
|
|
17996
|
+
var footprintInsertionDirection = z83.enum([
|
|
17954
17997
|
"from_left",
|
|
17955
17998
|
"from_right",
|
|
17956
17999
|
"from_top",
|
|
@@ -17968,11 +18011,11 @@ var footprintInsertionDirection = z82.enum([
|
|
|
17968
18011
|
"from_back"
|
|
17969
18012
|
]);
|
|
17970
18013
|
expectTypesMatch(true);
|
|
17971
|
-
var footprintProps =
|
|
17972
|
-
children:
|
|
17973
|
-
name:
|
|
18014
|
+
var footprintProps = z83.object({
|
|
18015
|
+
children: z83.any().optional(),
|
|
18016
|
+
name: z83.string().optional(),
|
|
17974
18017
|
originalLayer: layer_ref8.default("top").optional(),
|
|
17975
|
-
circuitJson:
|
|
18018
|
+
circuitJson: z83.array(z83.any()).optional(),
|
|
17976
18019
|
src: footprintProp.describe("Can be a footprint or kicad string").optional(),
|
|
17977
18020
|
insertionDirection: footprintInsertionDirection.optional().describe(
|
|
17978
18021
|
"Direction a cable or mating part is attached from, named for the side of the footprint it approaches from, in its unrotated orientation."
|
|
@@ -17984,19 +18027,19 @@ var footprintProps = z82.object({
|
|
|
17984
18027
|
expectTypesMatch(true);
|
|
17985
18028
|
|
|
17986
18029
|
// lib/components/symbol.ts
|
|
17987
|
-
import { z as
|
|
17988
|
-
var symbolProps =
|
|
17989
|
-
originalFacingDirection:
|
|
18030
|
+
import { z as z84 } from "zod";
|
|
18031
|
+
var symbolProps = z84.object({
|
|
18032
|
+
originalFacingDirection: z84.enum(["up", "down", "left", "right"]).default("right").optional(),
|
|
17990
18033
|
width: distance.optional(),
|
|
17991
18034
|
height: distance.optional(),
|
|
17992
|
-
name:
|
|
18035
|
+
name: z84.string().optional()
|
|
17993
18036
|
});
|
|
17994
18037
|
expectTypesMatch(true);
|
|
17995
18038
|
|
|
17996
18039
|
// lib/components/battery.ts
|
|
17997
18040
|
import { voltage as voltage2 } from "circuit-json";
|
|
17998
|
-
import { z as
|
|
17999
|
-
var capacity =
|
|
18041
|
+
import { z as z85 } from "zod";
|
|
18042
|
+
var capacity = z85.number().or(z85.string().endsWith("mAh")).transform((v) => {
|
|
18000
18043
|
if (typeof v === "string") {
|
|
18001
18044
|
const valString = v.replace("mAh", "");
|
|
18002
18045
|
const num = Number.parseFloat(valString);
|
|
@@ -18011,14 +18054,14 @@ var batteryPins = lrPolarPins;
|
|
|
18011
18054
|
var batteryProps = commonComponentProps.extend({
|
|
18012
18055
|
capacity: capacity.optional(),
|
|
18013
18056
|
voltage: voltage2.optional(),
|
|
18014
|
-
standard:
|
|
18057
|
+
standard: z85.enum(["AA", "AAA", "9V", "CR2032", "18650", "C"]).optional(),
|
|
18015
18058
|
schOrientation: schematicOrientation.optional(),
|
|
18016
18059
|
connections: createConnectionsProp(batteryPins).optional()
|
|
18017
18060
|
});
|
|
18018
18061
|
expectTypesMatch(true);
|
|
18019
18062
|
|
|
18020
18063
|
// lib/components/mountedboard.ts
|
|
18021
|
-
import { z as
|
|
18064
|
+
import { z as z86 } from "zod";
|
|
18022
18065
|
var mountedboardProps = subcircuitGroupProps.extend({
|
|
18023
18066
|
mpn: chipProps.shape.mpn,
|
|
18024
18067
|
mfn: chipProps.shape.mfn,
|
|
@@ -18032,7 +18075,7 @@ var mountedboardProps = subcircuitGroupProps.extend({
|
|
|
18032
18075
|
internallyConnectedPins: chipProps.shape.internallyConnectedPins,
|
|
18033
18076
|
externallyConnectedPins: chipProps.shape.externallyConnectedPins,
|
|
18034
18077
|
boardToBoardDistance: distance.optional(),
|
|
18035
|
-
mountOrientation:
|
|
18078
|
+
mountOrientation: z86.enum(["faceDown", "faceUp"]).optional()
|
|
18036
18079
|
});
|
|
18037
18080
|
expectTypesMatch(true);
|
|
18038
18081
|
|
|
@@ -18040,40 +18083,40 @@ expectTypesMatch(true);
|
|
|
18040
18083
|
import { distance as distance22 } from "circuit-json";
|
|
18041
18084
|
|
|
18042
18085
|
// lib/common/pcbOrientation.ts
|
|
18043
|
-
import { z as
|
|
18044
|
-
var pcbOrientation =
|
|
18086
|
+
import { z as z87 } from "zod";
|
|
18087
|
+
var pcbOrientation = z87.enum(["vertical", "horizontal"]).describe(
|
|
18045
18088
|
"vertical means pins go 1->2 downward and horizontal means pins go 1->2 rightward"
|
|
18046
18089
|
);
|
|
18047
18090
|
expectTypesMatch(true);
|
|
18048
18091
|
|
|
18049
18092
|
// lib/components/pin-header.ts
|
|
18050
|
-
import { z as
|
|
18093
|
+
import { z as z88 } from "zod";
|
|
18051
18094
|
var pinHeaderProps = commonComponentProps.extend({
|
|
18052
|
-
pinCount:
|
|
18095
|
+
pinCount: z88.number(),
|
|
18053
18096
|
pitch: distance22.optional(),
|
|
18054
|
-
schFacingDirection:
|
|
18055
|
-
gender:
|
|
18056
|
-
showSilkscreenPinLabels:
|
|
18057
|
-
pcbPinLabels:
|
|
18058
|
-
doubleRow:
|
|
18059
|
-
rightAngle:
|
|
18097
|
+
schFacingDirection: z88.enum(["up", "down", "left", "right"]).optional(),
|
|
18098
|
+
gender: z88.enum(["male", "female", "unpopulated"]).optional().default("male"),
|
|
18099
|
+
showSilkscreenPinLabels: z88.boolean().optional(),
|
|
18100
|
+
pcbPinLabels: z88.record(z88.string(), z88.string()).optional(),
|
|
18101
|
+
doubleRow: z88.boolean().optional(),
|
|
18102
|
+
rightAngle: z88.boolean().optional(),
|
|
18060
18103
|
pcbOrientation: pcbOrientation.optional(),
|
|
18061
18104
|
holeDiameter: distance22.optional(),
|
|
18062
18105
|
platedDiameter: distance22.optional(),
|
|
18063
|
-
pinLabels:
|
|
18064
|
-
connections:
|
|
18065
|
-
facingDirection:
|
|
18106
|
+
pinLabels: z88.record(z88.string(), schematicPinLabel).or(z88.array(schematicPinLabel)).optional(),
|
|
18107
|
+
connections: z88.custom().pipe(z88.record(z88.string(), connectionTarget)).optional(),
|
|
18108
|
+
facingDirection: z88.enum(["left", "right"]).optional(),
|
|
18066
18109
|
schPinArrangement: schematicPinArrangement.optional(),
|
|
18067
18110
|
schPinStyle: schematicPinStyle.optional(),
|
|
18068
18111
|
schPinSpacing: distance22.optional(),
|
|
18069
18112
|
schWidth: distance22.optional(),
|
|
18070
18113
|
schHeight: distance22.optional(),
|
|
18071
|
-
connectsFromAbove:
|
|
18072
|
-
connectsFromBelow:
|
|
18114
|
+
connectsFromAbove: z88.boolean().optional(),
|
|
18115
|
+
connectsFromBelow: z88.boolean().optional()
|
|
18073
18116
|
}).superRefine((props, ctx) => {
|
|
18074
18117
|
if (props.connectsFromAbove && props.connectsFromBelow) {
|
|
18075
18118
|
ctx.addIssue({
|
|
18076
|
-
code:
|
|
18119
|
+
code: z88.ZodIssueCode.custom,
|
|
18077
18120
|
message: "connectsFromAbove and connectsFromBelow are opposites; set at most one"
|
|
18078
18121
|
});
|
|
18079
18122
|
}
|
|
@@ -18084,30 +18127,30 @@ var pinHeaderProps = commonComponentProps.extend({
|
|
|
18084
18127
|
expectTypesMatch(true);
|
|
18085
18128
|
|
|
18086
18129
|
// lib/components/netalias.ts
|
|
18087
|
-
import { z as
|
|
18130
|
+
import { z as z89 } from "zod";
|
|
18088
18131
|
import { rotation as rotation4 } from "circuit-json";
|
|
18089
|
-
var netAliasProps =
|
|
18090
|
-
net:
|
|
18091
|
-
connection:
|
|
18132
|
+
var netAliasProps = z89.object({
|
|
18133
|
+
net: z89.string().optional(),
|
|
18134
|
+
connection: z89.string().optional(),
|
|
18092
18135
|
schX: distance.optional(),
|
|
18093
18136
|
schY: distance.optional(),
|
|
18094
18137
|
schRotation: rotation4.optional(),
|
|
18095
|
-
anchorSide:
|
|
18138
|
+
anchorSide: z89.enum(["left", "top", "right", "bottom"]).optional()
|
|
18096
18139
|
});
|
|
18097
18140
|
expectTypesMatch(true);
|
|
18098
18141
|
|
|
18099
18142
|
// lib/components/netlabel.ts
|
|
18100
|
-
import { z as
|
|
18143
|
+
import { z as z90 } from "zod";
|
|
18101
18144
|
import { rotation as rotation5 } from "circuit-json";
|
|
18102
|
-
var netLabelProps =
|
|
18103
|
-
net:
|
|
18104
|
-
connection:
|
|
18105
|
-
connectsTo:
|
|
18106
|
-
inline:
|
|
18145
|
+
var netLabelProps = z90.object({
|
|
18146
|
+
net: z90.string().optional(),
|
|
18147
|
+
connection: z90.string().optional(),
|
|
18148
|
+
connectsTo: z90.string().or(z90.array(z90.string())).optional(),
|
|
18149
|
+
inline: z90.boolean().optional(),
|
|
18107
18150
|
schX: distance.optional(),
|
|
18108
18151
|
schY: distance.optional(),
|
|
18109
18152
|
schRotation: rotation5.optional(),
|
|
18110
|
-
anchorSide:
|
|
18153
|
+
anchorSide: z90.enum(["left", "top", "right", "bottom"]).optional()
|
|
18111
18154
|
});
|
|
18112
18155
|
expectTypesMatch(true);
|
|
18113
18156
|
|
|
@@ -18122,32 +18165,32 @@ expectTypesMatch(true);
|
|
|
18122
18165
|
|
|
18123
18166
|
// lib/components/analogsimulation.ts
|
|
18124
18167
|
import { ms } from "circuit-json";
|
|
18125
|
-
import { z as
|
|
18126
|
-
var spiceEngine =
|
|
18168
|
+
import { z as z92 } from "zod";
|
|
18169
|
+
var spiceEngine = z92.custom(
|
|
18127
18170
|
(value) => typeof value === "string"
|
|
18128
18171
|
);
|
|
18129
|
-
var spiceOptions =
|
|
18130
|
-
method:
|
|
18131
|
-
reltol:
|
|
18132
|
-
abstol:
|
|
18133
|
-
vntol:
|
|
18172
|
+
var spiceOptions = z92.object({
|
|
18173
|
+
method: z92.enum(["trap", "gear"]).optional(),
|
|
18174
|
+
reltol: z92.union([z92.number(), z92.string()]).optional(),
|
|
18175
|
+
abstol: z92.union([z92.number(), z92.string()]).optional(),
|
|
18176
|
+
vntol: z92.union([z92.number(), z92.string()]).optional()
|
|
18134
18177
|
});
|
|
18135
18178
|
var analogAnalysisSimulationBaseProps = {
|
|
18136
|
-
name:
|
|
18179
|
+
name: z92.string().optional(),
|
|
18137
18180
|
spiceEngine: spiceEngine.optional(),
|
|
18138
18181
|
spiceOptions: spiceOptions.optional(),
|
|
18139
|
-
graphIndependentAxes:
|
|
18140
|
-
children:
|
|
18182
|
+
graphIndependentAxes: z92.boolean().optional(),
|
|
18183
|
+
children: z92.custom().optional()
|
|
18141
18184
|
};
|
|
18142
|
-
var analogSimulationProps =
|
|
18143
|
-
name:
|
|
18144
|
-
simulationType:
|
|
18185
|
+
var analogSimulationProps = z92.object({
|
|
18186
|
+
name: z92.string().optional(),
|
|
18187
|
+
simulationType: z92.literal("spice_transient_analysis").default("spice_transient_analysis"),
|
|
18145
18188
|
duration: ms.optional(),
|
|
18146
18189
|
startTime: ms.optional(),
|
|
18147
18190
|
timePerStep: ms.optional(),
|
|
18148
18191
|
spiceEngine: spiceEngine.optional(),
|
|
18149
18192
|
spiceOptions: spiceOptions.optional(),
|
|
18150
|
-
graphIndependentAxes:
|
|
18193
|
+
graphIndependentAxes: z92.boolean().optional()
|
|
18151
18194
|
});
|
|
18152
18195
|
expectTypesMatch(
|
|
18153
18196
|
true
|
|
@@ -18155,12 +18198,12 @@ expectTypesMatch(
|
|
|
18155
18198
|
|
|
18156
18199
|
// lib/components/analogtransientsimulation.ts
|
|
18157
18200
|
import { ms as ms2 } from "circuit-json";
|
|
18158
|
-
import { z as
|
|
18201
|
+
import { z as z93 } from "zod";
|
|
18159
18202
|
var positiveMilliseconds = ms2.refine(
|
|
18160
18203
|
(milliseconds) => milliseconds > 0,
|
|
18161
18204
|
"Time must be positive"
|
|
18162
18205
|
);
|
|
18163
|
-
var analogTransientSimulationProps =
|
|
18206
|
+
var analogTransientSimulationProps = z93.object({
|
|
18164
18207
|
...analogAnalysisSimulationBaseProps,
|
|
18165
18208
|
duration: positiveMilliseconds.default("10ms"),
|
|
18166
18209
|
startTime: ms2.default("0ms"),
|
|
@@ -18168,7 +18211,7 @@ var analogTransientSimulationProps = z92.object({
|
|
|
18168
18211
|
}).superRefine((simulation, context) => {
|
|
18169
18212
|
if (simulation.startTime < 0 || simulation.startTime > simulation.duration) {
|
|
18170
18213
|
context.addIssue({
|
|
18171
|
-
code:
|
|
18214
|
+
code: z93.ZodIssueCode.custom,
|
|
18172
18215
|
path: ["startTime"],
|
|
18173
18216
|
message: "startTime must be between zero and duration"
|
|
18174
18217
|
});
|
|
@@ -18177,19 +18220,19 @@ var analogTransientSimulationProps = z92.object({
|
|
|
18177
18220
|
expectTypesMatch(true);
|
|
18178
18221
|
|
|
18179
18222
|
// lib/components/analogdcoperatingpointsimulation.ts
|
|
18180
|
-
import { z as
|
|
18181
|
-
var analogDcOperatingPointSimulationProps =
|
|
18223
|
+
import { z as z94 } from "zod";
|
|
18224
|
+
var analogDcOperatingPointSimulationProps = z94.object({
|
|
18182
18225
|
...analogAnalysisSimulationBaseProps
|
|
18183
18226
|
});
|
|
18184
18227
|
expectTypesMatch(true);
|
|
18185
18228
|
|
|
18186
18229
|
// lib/components/analogdcsweepsimulation.ts
|
|
18187
18230
|
import { current, voltage as voltage3 } from "circuit-json";
|
|
18188
|
-
import { z as
|
|
18189
|
-
var dcSweepQuantity =
|
|
18190
|
-
var analogDcSweepSimulationProps =
|
|
18231
|
+
import { z as z95 } from "zod";
|
|
18232
|
+
var dcSweepQuantity = z95.union([voltage3, current]);
|
|
18233
|
+
var analogDcSweepSimulationProps = z95.object({
|
|
18191
18234
|
...analogAnalysisSimulationBaseProps,
|
|
18192
|
-
sweepSource:
|
|
18235
|
+
sweepSource: z95.string().min(1),
|
|
18193
18236
|
sweepStart: dcSweepQuantity,
|
|
18194
18237
|
sweepStop: dcSweepQuantity,
|
|
18195
18238
|
sweepStep: dcSweepQuantity.refine(
|
|
@@ -18199,7 +18242,7 @@ var analogDcSweepSimulationProps = z94.object({
|
|
|
18199
18242
|
}).superRefine((simulation, context) => {
|
|
18200
18243
|
if (Math.sign(simulation.sweepStop - simulation.sweepStart) !== Math.sign(simulation.sweepStep)) {
|
|
18201
18244
|
context.addIssue({
|
|
18202
|
-
code:
|
|
18245
|
+
code: z95.ZodIssueCode.custom,
|
|
18203
18246
|
path: ["sweepStep"],
|
|
18204
18247
|
message: "sweepStep must move from sweepStart toward sweepStop"
|
|
18205
18248
|
});
|
|
@@ -18209,10 +18252,10 @@ expectTypesMatch(true);
|
|
|
18209
18252
|
|
|
18210
18253
|
// lib/components/analogacsweepsimulation.ts
|
|
18211
18254
|
import { frequency as frequency3 } from "circuit-json";
|
|
18212
|
-
import { z as
|
|
18213
|
-
var analogAcSweepSimulationProps =
|
|
18255
|
+
import { z as z96 } from "zod";
|
|
18256
|
+
var analogAcSweepSimulationProps = z96.object({
|
|
18214
18257
|
...analogAnalysisSimulationBaseProps,
|
|
18215
|
-
sweepType:
|
|
18258
|
+
sweepType: z96.enum(["linear", "decade", "octave"]),
|
|
18216
18259
|
startFrequency: frequency3.refine(
|
|
18217
18260
|
(startFrequencyHz) => startFrequencyHz > 0,
|
|
18218
18261
|
"startFrequency must be positive"
|
|
@@ -18221,12 +18264,12 @@ var analogAcSweepSimulationProps = z95.object({
|
|
|
18221
18264
|
(stopFrequencyHz) => stopFrequencyHz > 0,
|
|
18222
18265
|
"stopFrequency must be positive"
|
|
18223
18266
|
),
|
|
18224
|
-
samplesPerInterval:
|
|
18225
|
-
sampleCount:
|
|
18267
|
+
samplesPerInterval: z96.number().int().positive().optional(),
|
|
18268
|
+
sampleCount: z96.number().int().positive().optional()
|
|
18226
18269
|
}).superRefine((simulation, context) => {
|
|
18227
18270
|
if (simulation.stopFrequency <= simulation.startFrequency) {
|
|
18228
18271
|
context.addIssue({
|
|
18229
|
-
code:
|
|
18272
|
+
code: z96.ZodIssueCode.custom,
|
|
18230
18273
|
path: ["stopFrequency"],
|
|
18231
18274
|
message: "stopFrequency must be greater than startFrequency"
|
|
18232
18275
|
});
|
|
@@ -18234,14 +18277,14 @@ var analogAcSweepSimulationProps = z95.object({
|
|
|
18234
18277
|
if (simulation.sweepType === "linear") {
|
|
18235
18278
|
if (simulation.sampleCount === void 0) {
|
|
18236
18279
|
context.addIssue({
|
|
18237
|
-
code:
|
|
18280
|
+
code: z96.ZodIssueCode.custom,
|
|
18238
18281
|
path: ["sampleCount"],
|
|
18239
18282
|
message: "sampleCount is required for a linear AC sweep"
|
|
18240
18283
|
});
|
|
18241
18284
|
}
|
|
18242
18285
|
if (simulation.samplesPerInterval !== void 0) {
|
|
18243
18286
|
context.addIssue({
|
|
18244
|
-
code:
|
|
18287
|
+
code: z96.ZodIssueCode.custom,
|
|
18245
18288
|
path: ["samplesPerInterval"],
|
|
18246
18289
|
message: "samplesPerInterval is only valid for decade or octave sweeps"
|
|
18247
18290
|
});
|
|
@@ -18250,14 +18293,14 @@ var analogAcSweepSimulationProps = z95.object({
|
|
|
18250
18293
|
}
|
|
18251
18294
|
if (simulation.samplesPerInterval === void 0) {
|
|
18252
18295
|
context.addIssue({
|
|
18253
|
-
code:
|
|
18296
|
+
code: z96.ZodIssueCode.custom,
|
|
18254
18297
|
path: ["samplesPerInterval"],
|
|
18255
18298
|
message: "samplesPerInterval is required for decade or octave sweeps"
|
|
18256
18299
|
});
|
|
18257
18300
|
}
|
|
18258
18301
|
if (simulation.sampleCount !== void 0) {
|
|
18259
18302
|
context.addIssue({
|
|
18260
|
-
code:
|
|
18303
|
+
code: z96.ZodIssueCode.custom,
|
|
18261
18304
|
path: ["sampleCount"],
|
|
18262
18305
|
message: "sampleCount is only valid for a linear sweep"
|
|
18263
18306
|
});
|
|
@@ -18273,43 +18316,43 @@ import {
|
|
|
18273
18316
|
resistance as resistance5,
|
|
18274
18317
|
voltage as voltage4
|
|
18275
18318
|
} from "circuit-json";
|
|
18276
|
-
import { z as
|
|
18277
|
-
var resistanceSweepQuantity = resistance5.pipe(
|
|
18278
|
-
var capacitanceSweepQuantity = capacitance4.pipe(
|
|
18279
|
-
var inductanceSweepQuantity = inductance.pipe(
|
|
18280
|
-
var voltageSweepQuantity = voltage4.pipe(
|
|
18281
|
-
var currentSweepQuantity = current2.pipe(
|
|
18319
|
+
import { z as z97 } from "zod";
|
|
18320
|
+
var resistanceSweepQuantity = resistance5.pipe(z97.number());
|
|
18321
|
+
var capacitanceSweepQuantity = capacitance4.pipe(z97.number());
|
|
18322
|
+
var inductanceSweepQuantity = inductance.pipe(z97.number());
|
|
18323
|
+
var voltageSweepQuantity = voltage4.pipe(z97.number());
|
|
18324
|
+
var currentSweepQuantity = current2.pipe(z97.number());
|
|
18282
18325
|
var createAnalogSweepCoordinateProps = (sweepQuantity) => ({
|
|
18283
|
-
name:
|
|
18284
|
-
values:
|
|
18326
|
+
name: z97.string().optional(),
|
|
18327
|
+
values: z97.array(sweepQuantity).min(1).optional(),
|
|
18285
18328
|
start: sweepQuantity.optional(),
|
|
18286
18329
|
stop: sweepQuantity.optional(),
|
|
18287
18330
|
step: sweepQuantity.optional()
|
|
18288
18331
|
});
|
|
18289
|
-
var analogResistanceSweepParameterProps =
|
|
18332
|
+
var analogResistanceSweepParameterProps = z97.object({
|
|
18290
18333
|
...createAnalogSweepCoordinateProps(resistanceSweepQuantity),
|
|
18291
|
-
parameterType:
|
|
18292
|
-
resistorRef:
|
|
18334
|
+
parameterType: z97.literal("resistance"),
|
|
18335
|
+
resistorRef: z97.string().min(1)
|
|
18293
18336
|
}).strict();
|
|
18294
|
-
var analogCapacitanceSweepParameterProps =
|
|
18337
|
+
var analogCapacitanceSweepParameterProps = z97.object({
|
|
18295
18338
|
...createAnalogSweepCoordinateProps(capacitanceSweepQuantity),
|
|
18296
|
-
parameterType:
|
|
18297
|
-
capacitorRef:
|
|
18339
|
+
parameterType: z97.literal("capacitance"),
|
|
18340
|
+
capacitorRef: z97.string().min(1)
|
|
18298
18341
|
}).strict();
|
|
18299
|
-
var analogInductanceSweepParameterProps =
|
|
18342
|
+
var analogInductanceSweepParameterProps = z97.object({
|
|
18300
18343
|
...createAnalogSweepCoordinateProps(inductanceSweepQuantity),
|
|
18301
|
-
parameterType:
|
|
18302
|
-
inductorRef:
|
|
18344
|
+
parameterType: z97.literal("inductance"),
|
|
18345
|
+
inductorRef: z97.string().min(1)
|
|
18303
18346
|
}).strict();
|
|
18304
|
-
var analogVoltageSweepParameterProps =
|
|
18347
|
+
var analogVoltageSweepParameterProps = z97.object({
|
|
18305
18348
|
...createAnalogSweepCoordinateProps(voltageSweepQuantity),
|
|
18306
|
-
parameterType:
|
|
18307
|
-
net:
|
|
18349
|
+
parameterType: z97.literal("voltage"),
|
|
18350
|
+
net: z97.string().min(1)
|
|
18308
18351
|
}).strict();
|
|
18309
|
-
var analogCurrentSweepParameterProps =
|
|
18352
|
+
var analogCurrentSweepParameterProps = z97.object({
|
|
18310
18353
|
...createAnalogSweepCoordinateProps(currentSweepQuantity),
|
|
18311
|
-
parameterType:
|
|
18312
|
-
currentSourceRef:
|
|
18354
|
+
parameterType: z97.literal("current"),
|
|
18355
|
+
currentSourceRef: z97.string().min(1)
|
|
18313
18356
|
}).strict();
|
|
18314
18357
|
var validateAnalogSweepCoordinates = (sweepCoordinates, context) => {
|
|
18315
18358
|
const hasExplicitSweepCoordinates = sweepCoordinates.values !== void 0;
|
|
@@ -18321,34 +18364,34 @@ var validateAnalogSweepCoordinates = (sweepCoordinates, context) => {
|
|
|
18321
18364
|
const hasRangeCoordinates = rangeCoordinateCount > 0;
|
|
18322
18365
|
if (hasExplicitSweepCoordinates === hasRangeCoordinates) {
|
|
18323
18366
|
context.addIssue({
|
|
18324
|
-
code:
|
|
18367
|
+
code: z97.ZodIssueCode.custom,
|
|
18325
18368
|
message: "Provide either values or start/stop/step"
|
|
18326
18369
|
});
|
|
18327
18370
|
return;
|
|
18328
18371
|
}
|
|
18329
18372
|
if (rangeCoordinateCount !== 0 && rangeCoordinateCount !== 3) {
|
|
18330
18373
|
context.addIssue({
|
|
18331
|
-
code:
|
|
18374
|
+
code: z97.ZodIssueCode.custom,
|
|
18332
18375
|
message: "start, stop, and step must be provided together"
|
|
18333
18376
|
});
|
|
18334
18377
|
return;
|
|
18335
18378
|
}
|
|
18336
18379
|
if (sweepCoordinates.step === 0) {
|
|
18337
18380
|
context.addIssue({
|
|
18338
|
-
code:
|
|
18381
|
+
code: z97.ZodIssueCode.custom,
|
|
18339
18382
|
path: ["step"],
|
|
18340
18383
|
message: "step must be nonzero"
|
|
18341
18384
|
});
|
|
18342
18385
|
}
|
|
18343
18386
|
if (sweepCoordinates.start !== void 0 && sweepCoordinates.stop !== void 0 && sweepCoordinates.step !== void 0 && Math.sign(sweepCoordinates.stop - sweepCoordinates.start) !== Math.sign(sweepCoordinates.step)) {
|
|
18344
18387
|
context.addIssue({
|
|
18345
|
-
code:
|
|
18388
|
+
code: z97.ZodIssueCode.custom,
|
|
18346
18389
|
path: ["step"],
|
|
18347
18390
|
message: "step must move from start toward stop"
|
|
18348
18391
|
});
|
|
18349
18392
|
}
|
|
18350
18393
|
};
|
|
18351
|
-
var analogSweepParameterProps =
|
|
18394
|
+
var analogSweepParameterProps = z97.discriminatedUnion("parameterType", [
|
|
18352
18395
|
analogResistanceSweepParameterProps,
|
|
18353
18396
|
analogCapacitanceSweepParameterProps,
|
|
18354
18397
|
analogInductanceSweepParameterProps,
|
|
@@ -18363,26 +18406,26 @@ expectTypesMatch(true);
|
|
|
18363
18406
|
expectTypesMatch(true);
|
|
18364
18407
|
|
|
18365
18408
|
// lib/components/autoroutingphase.ts
|
|
18366
|
-
import { z as
|
|
18367
|
-
var autoroutingPhaseProps =
|
|
18368
|
-
key:
|
|
18369
|
-
name:
|
|
18409
|
+
import { z as z98 } from "zod";
|
|
18410
|
+
var autoroutingPhaseProps = z98.object({
|
|
18411
|
+
key: z98.any().optional(),
|
|
18412
|
+
name: z98.string().optional(),
|
|
18370
18413
|
autorouter: autorouterProp.optional(),
|
|
18371
18414
|
algorithmFn: autorouterConfig.shape.algorithmFn,
|
|
18372
18415
|
preflightRoutingCheckPolicy: preflightRoutingCheckPolicy.optional(),
|
|
18373
|
-
phaseIndex:
|
|
18374
|
-
pcbTracePaths:
|
|
18416
|
+
phaseIndex: z98.number().optional(),
|
|
18417
|
+
pcbTracePaths: z98.array(fanoutTracePath).optional(),
|
|
18375
18418
|
...routingTolerances.shape,
|
|
18376
|
-
region:
|
|
18377
|
-
shape:
|
|
18378
|
-
minX:
|
|
18379
|
-
maxX:
|
|
18380
|
-
minY:
|
|
18381
|
-
maxY:
|
|
18419
|
+
region: z98.object({
|
|
18420
|
+
shape: z98.literal("rect").optional(),
|
|
18421
|
+
minX: z98.number(),
|
|
18422
|
+
maxX: z98.number(),
|
|
18423
|
+
minY: z98.number(),
|
|
18424
|
+
maxY: z98.number()
|
|
18382
18425
|
}).optional(),
|
|
18383
|
-
connection:
|
|
18384
|
-
connections:
|
|
18385
|
-
reroute:
|
|
18426
|
+
connection: z98.string().optional(),
|
|
18427
|
+
connections: z98.array(z98.string()).optional(),
|
|
18428
|
+
reroute: z98.boolean().optional(),
|
|
18386
18429
|
...fanoutProps.shape
|
|
18387
18430
|
}).superRefine((value, ctx) => {
|
|
18388
18431
|
const isSimplifyAutorouter = value.autorouter === "simplify" || typeof value.autorouter === "object" && value.autorouter?.preset === "simplify";
|
|
@@ -18393,7 +18436,7 @@ var autoroutingPhaseProps = z97.object({
|
|
|
18393
18436
|
}
|
|
18394
18437
|
if (value.reroute !== void 0 && !(isSimplifyAutorouter && value.reroute === true) && value.region === void 0 && value.connection === void 0 && value.connections === void 0) {
|
|
18395
18438
|
ctx.addIssue({
|
|
18396
|
-
code:
|
|
18439
|
+
code: z98.ZodIssueCode.custom,
|
|
18397
18440
|
message: "region, connection, or connections is required when reroute is provided",
|
|
18398
18441
|
path: ["region"]
|
|
18399
18442
|
});
|
|
@@ -18402,15 +18445,15 @@ var autoroutingPhaseProps = z97.object({
|
|
|
18402
18445
|
expectTypesMatch(true);
|
|
18403
18446
|
|
|
18404
18447
|
// lib/components/spicemodel.ts
|
|
18405
|
-
import { z as
|
|
18406
|
-
var spicemodelProps =
|
|
18407
|
-
source:
|
|
18408
|
-
spicePinMapping:
|
|
18448
|
+
import { z as z99 } from "zod";
|
|
18449
|
+
var spicemodelProps = z99.object({
|
|
18450
|
+
source: z99.string(),
|
|
18451
|
+
spicePinMapping: z99.record(z99.string(), z99.string()).optional()
|
|
18409
18452
|
});
|
|
18410
18453
|
expectTypesMatch(true);
|
|
18411
18454
|
|
|
18412
18455
|
// lib/components/transistor.ts
|
|
18413
|
-
import { z as
|
|
18456
|
+
import { z as z100 } from "zod";
|
|
18414
18457
|
var transistorPinsLabels = [
|
|
18415
18458
|
"pin1",
|
|
18416
18459
|
"pin2",
|
|
@@ -18423,7 +18466,7 @@ var transistorPinsLabels = [
|
|
|
18423
18466
|
"drain"
|
|
18424
18467
|
];
|
|
18425
18468
|
var transistorProps = commonComponentProps.extend({
|
|
18426
|
-
type:
|
|
18469
|
+
type: z100.enum(["npn", "pnp", "bjt", "jfet", "mosfet", "igbt"]),
|
|
18427
18470
|
connections: createConnectionsProp(transistorPinsLabels).optional()
|
|
18428
18471
|
});
|
|
18429
18472
|
var transistorPins = [
|
|
@@ -18437,7 +18480,7 @@ var transistorPins = [
|
|
|
18437
18480
|
expectTypesMatch(true);
|
|
18438
18481
|
|
|
18439
18482
|
// lib/components/mosfet.ts
|
|
18440
|
-
import { z as
|
|
18483
|
+
import { z as z101 } from "zod";
|
|
18441
18484
|
var mosfetPins = [
|
|
18442
18485
|
"pin1",
|
|
18443
18486
|
"drain",
|
|
@@ -18447,11 +18490,11 @@ var mosfetPins = [
|
|
|
18447
18490
|
"gate"
|
|
18448
18491
|
];
|
|
18449
18492
|
var mosfetProps = commonComponentProps.extend({
|
|
18450
|
-
channelType:
|
|
18451
|
-
mosfetMode:
|
|
18452
|
-
symbolDrainSide:
|
|
18453
|
-
symbolSourceSide:
|
|
18454
|
-
symbolGateSide:
|
|
18493
|
+
channelType: z101.enum(["n", "p"]),
|
|
18494
|
+
mosfetMode: z101.enum(["enhancement", "depletion"]),
|
|
18495
|
+
symbolDrainSide: z101.enum(["left", "right", "top", "bottom"]).optional(),
|
|
18496
|
+
symbolSourceSide: z101.enum(["left", "right", "top", "bottom"]).optional(),
|
|
18497
|
+
symbolGateSide: z101.enum(["left", "right", "top", "bottom"]).optional(),
|
|
18455
18498
|
connections: createConnectionsProp(mosfetPins).optional()
|
|
18456
18499
|
});
|
|
18457
18500
|
expectTypesMatch(true);
|
|
@@ -18473,29 +18516,29 @@ expectTypesMatch(true);
|
|
|
18473
18516
|
|
|
18474
18517
|
// lib/components/inductor.ts
|
|
18475
18518
|
import { inductance as inductance2 } from "circuit-json";
|
|
18476
|
-
import { z as
|
|
18519
|
+
import { z as z103 } from "zod";
|
|
18477
18520
|
var inductorPins = lrPins;
|
|
18478
18521
|
var inductorProps = commonComponentProps.extend({
|
|
18479
18522
|
inductance: inductance2,
|
|
18480
|
-
maxCurrentRating:
|
|
18523
|
+
maxCurrentRating: z103.union([z103.string(), z103.number()]).optional(),
|
|
18481
18524
|
schOrientation: schematicOrientation.optional(),
|
|
18482
18525
|
connections: createConnectionsProp(inductorPins).optional()
|
|
18483
18526
|
});
|
|
18484
18527
|
expectTypesMatch(true);
|
|
18485
18528
|
|
|
18486
18529
|
// lib/components/internal-circuit.ts
|
|
18487
|
-
import { z as
|
|
18488
|
-
var internalCircuitProps =
|
|
18489
|
-
children:
|
|
18530
|
+
import { z as z104 } from "zod";
|
|
18531
|
+
var internalCircuitProps = z104.object({
|
|
18532
|
+
children: z104.custom().optional()
|
|
18490
18533
|
});
|
|
18491
18534
|
expectTypesMatch(
|
|
18492
18535
|
true
|
|
18493
18536
|
);
|
|
18494
18537
|
|
|
18495
18538
|
// lib/components/diode.ts
|
|
18496
|
-
import { z as
|
|
18539
|
+
import { z as z105 } from "zod";
|
|
18497
18540
|
var diodePins = lrPolarPins;
|
|
18498
|
-
var diodeConnectionKeys =
|
|
18541
|
+
var diodeConnectionKeys = z105.enum([
|
|
18499
18542
|
"anode",
|
|
18500
18543
|
"cathode",
|
|
18501
18544
|
"pin1",
|
|
@@ -18503,13 +18546,13 @@ var diodeConnectionKeys = z104.enum([
|
|
|
18503
18546
|
"pos",
|
|
18504
18547
|
"neg"
|
|
18505
18548
|
]);
|
|
18506
|
-
var connectionTarget3 =
|
|
18507
|
-
var connectionsProp2 =
|
|
18508
|
-
var diodePinLabelsProp =
|
|
18509
|
-
|
|
18510
|
-
schematicPinLabel.or(
|
|
18549
|
+
var connectionTarget3 = z105.string().or(z105.array(z105.string()).readonly()).or(z105.array(z105.string()));
|
|
18550
|
+
var connectionsProp2 = z105.record(diodeConnectionKeys, connectionTarget3);
|
|
18551
|
+
var diodePinLabelsProp = z105.record(
|
|
18552
|
+
z105.enum(diodePins),
|
|
18553
|
+
schematicPinLabel.or(z105.array(schematicPinLabel).readonly()).or(z105.array(schematicPinLabel))
|
|
18511
18554
|
);
|
|
18512
|
-
var diodeVariant =
|
|
18555
|
+
var diodeVariant = z105.enum([
|
|
18513
18556
|
"standard",
|
|
18514
18557
|
"schottky",
|
|
18515
18558
|
"zener",
|
|
@@ -18520,12 +18563,12 @@ var diodeVariant = z104.enum([
|
|
|
18520
18563
|
var diodeProps = commonComponentProps.extend({
|
|
18521
18564
|
connections: connectionsProp2.optional(),
|
|
18522
18565
|
variant: diodeVariant.optional().default("standard"),
|
|
18523
|
-
standard:
|
|
18524
|
-
schottky:
|
|
18525
|
-
zener:
|
|
18526
|
-
avalanche:
|
|
18527
|
-
photo:
|
|
18528
|
-
tvs:
|
|
18566
|
+
standard: z105.boolean().optional(),
|
|
18567
|
+
schottky: z105.boolean().optional(),
|
|
18568
|
+
zener: z105.boolean().optional(),
|
|
18569
|
+
avalanche: z105.boolean().optional(),
|
|
18570
|
+
photo: z105.boolean().optional(),
|
|
18571
|
+
tvs: z105.boolean().optional(),
|
|
18529
18572
|
schOrientation: schematicOrientation.optional(),
|
|
18530
18573
|
schSize: schematicSymbolSize.optional(),
|
|
18531
18574
|
pinLabels: diodePinLabelsProp.optional()
|
|
@@ -18540,11 +18583,11 @@ var diodeProps = commonComponentProps.extend({
|
|
|
18540
18583
|
].filter(Boolean).length;
|
|
18541
18584
|
if (enabledFlags > 1) {
|
|
18542
18585
|
ctx.addIssue({
|
|
18543
|
-
code:
|
|
18586
|
+
code: z105.ZodIssueCode.custom,
|
|
18544
18587
|
message: "Exactly one diode variant must be enabled",
|
|
18545
18588
|
path: []
|
|
18546
18589
|
});
|
|
18547
|
-
return
|
|
18590
|
+
return z105.INVALID;
|
|
18548
18591
|
}
|
|
18549
18592
|
}).transform((data) => {
|
|
18550
18593
|
const result = {
|
|
@@ -18590,18 +18633,18 @@ var diodeProps = commonComponentProps.extend({
|
|
|
18590
18633
|
expectTypesMatch(true);
|
|
18591
18634
|
|
|
18592
18635
|
// lib/components/led.ts
|
|
18593
|
-
import { z as
|
|
18594
|
-
var legacyNumericLedPinLabelsProp =
|
|
18595
|
-
|
|
18596
|
-
schematicPinLabel.or(
|
|
18636
|
+
import { z as z106 } from "zod";
|
|
18637
|
+
var legacyNumericLedPinLabelsProp = z106.record(
|
|
18638
|
+
z106.enum(["1", "2"]),
|
|
18639
|
+
schematicPinLabel.or(z106.array(schematicPinLabel).readonly()).or(z106.array(schematicPinLabel))
|
|
18597
18640
|
).transform((pinLabels) => ({
|
|
18598
18641
|
...pinLabels["1"] === void 0 ? {} : { pin1: pinLabels["1"] },
|
|
18599
18642
|
...pinLabels["2"] === void 0 ? {} : { pin2: pinLabels["2"] }
|
|
18600
18643
|
}));
|
|
18601
18644
|
var ledProps = commonComponentProps.extend({
|
|
18602
|
-
color:
|
|
18603
|
-
wavelength:
|
|
18604
|
-
schDisplayValue:
|
|
18645
|
+
color: z106.string().optional(),
|
|
18646
|
+
wavelength: z106.string().optional(),
|
|
18647
|
+
schDisplayValue: z106.string().optional(),
|
|
18605
18648
|
schOrientation: schematicOrientation.optional(),
|
|
18606
18649
|
/** Select a compact schematic symbol; omitted, default, and md retain the standard symbol. */
|
|
18607
18650
|
schSize: schematicSymbolSize.optional(),
|
|
@@ -18609,28 +18652,28 @@ var ledProps = commonComponentProps.extend({
|
|
|
18609
18652
|
// wrappers, then normalized to the canonical pin1/pin2 representation.
|
|
18610
18653
|
pinLabels: diodePinLabelsProp.or(legacyNumericLedPinLabelsProp).optional(),
|
|
18611
18654
|
connections: createConnectionsProp(lrPolarPins).optional(),
|
|
18612
|
-
laser:
|
|
18655
|
+
laser: z106.boolean().optional()
|
|
18613
18656
|
});
|
|
18614
18657
|
var ledPins = lrPolarPins;
|
|
18615
18658
|
|
|
18616
18659
|
// lib/components/switch.ts
|
|
18617
18660
|
import { ms as ms3, frequency as frequency4 } from "circuit-json";
|
|
18618
|
-
import { z as
|
|
18661
|
+
import { z as z107 } from "zod";
|
|
18619
18662
|
var switchProps = commonComponentProps.extend({
|
|
18620
|
-
type:
|
|
18621
|
-
isNormallyClosed:
|
|
18622
|
-
spst:
|
|
18623
|
-
spdt:
|
|
18624
|
-
dpst:
|
|
18625
|
-
dpdt:
|
|
18663
|
+
type: z107.enum(["spst", "spdt", "dpst", "dpdt"]).optional(),
|
|
18664
|
+
isNormallyClosed: z107.boolean().optional().default(false),
|
|
18665
|
+
spst: z107.boolean().optional(),
|
|
18666
|
+
spdt: z107.boolean().optional(),
|
|
18667
|
+
dpst: z107.boolean().optional(),
|
|
18668
|
+
dpdt: z107.boolean().optional(),
|
|
18626
18669
|
pinLabels: pinLabelsProp.optional(),
|
|
18627
18670
|
noConnect: noConnectProp.optional(),
|
|
18628
18671
|
simSwitchFrequency: frequency4.optional(),
|
|
18629
18672
|
simCloseAt: ms3.optional(),
|
|
18630
18673
|
simOpenAt: ms3.optional(),
|
|
18631
|
-
simStartClosed:
|
|
18632
|
-
simStartOpen:
|
|
18633
|
-
connections:
|
|
18674
|
+
simStartClosed: z107.boolean().optional(),
|
|
18675
|
+
simStartOpen: z107.boolean().optional(),
|
|
18676
|
+
connections: z107.custom().pipe(z107.record(z107.string(), connectionTarget)).optional()
|
|
18634
18677
|
}).transform((props) => {
|
|
18635
18678
|
const updatedProps = { ...props };
|
|
18636
18679
|
if (updatedProps.dpdt) {
|
|
@@ -18662,33 +18705,33 @@ expectTypesMatch(true);
|
|
|
18662
18705
|
|
|
18663
18706
|
// lib/components/fabrication-note-text.ts
|
|
18664
18707
|
import { length as length4 } from "circuit-json";
|
|
18665
|
-
import { z as
|
|
18708
|
+
import { z as z108 } from "zod";
|
|
18666
18709
|
var fabricationNoteTextProps = pcbLayoutProps.extend({
|
|
18667
|
-
text:
|
|
18668
|
-
anchorAlignment:
|
|
18669
|
-
font:
|
|
18710
|
+
text: z108.string(),
|
|
18711
|
+
anchorAlignment: z108.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
|
|
18712
|
+
font: z108.enum(["tscircuit2024"]).optional(),
|
|
18670
18713
|
fontSize: length4.optional(),
|
|
18671
|
-
color:
|
|
18714
|
+
color: z108.string().optional()
|
|
18672
18715
|
});
|
|
18673
18716
|
expectTypesMatch(true);
|
|
18674
18717
|
|
|
18675
18718
|
// lib/components/fabrication-note-rect.ts
|
|
18676
18719
|
import { distance as distance23 } from "circuit-json";
|
|
18677
|
-
import { z as
|
|
18720
|
+
import { z as z109 } from "zod";
|
|
18678
18721
|
var fabricationNoteRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
|
|
18679
18722
|
width: distance23,
|
|
18680
18723
|
height: distance23,
|
|
18681
18724
|
strokeWidth: distance23.optional(),
|
|
18682
|
-
isFilled:
|
|
18683
|
-
hasStroke:
|
|
18684
|
-
isStrokeDashed:
|
|
18685
|
-
color:
|
|
18725
|
+
isFilled: z109.boolean().optional(),
|
|
18726
|
+
hasStroke: z109.boolean().optional(),
|
|
18727
|
+
isStrokeDashed: z109.boolean().optional(),
|
|
18728
|
+
color: z109.string().optional(),
|
|
18686
18729
|
cornerRadius: distance23.optional()
|
|
18687
18730
|
});
|
|
18688
18731
|
|
|
18689
18732
|
// lib/components/fabrication-note-path.ts
|
|
18690
18733
|
import { length as length5, route_hint_point as route_hint_point3 } from "circuit-json";
|
|
18691
|
-
import { z as
|
|
18734
|
+
import { z as z110 } from "zod";
|
|
18692
18735
|
var fabricationNotePathProps = pcbLayoutProps.omit({
|
|
18693
18736
|
pcbLeftEdgeX: true,
|
|
18694
18737
|
pcbRightEdgeX: true,
|
|
@@ -18700,15 +18743,15 @@ var fabricationNotePathProps = pcbLayoutProps.omit({
|
|
|
18700
18743
|
pcbOffsetY: true,
|
|
18701
18744
|
pcbRotation: true
|
|
18702
18745
|
}).extend({
|
|
18703
|
-
route:
|
|
18746
|
+
route: z110.array(route_hint_point3),
|
|
18704
18747
|
strokeWidth: length5.optional(),
|
|
18705
|
-
color:
|
|
18748
|
+
color: z110.string().optional()
|
|
18706
18749
|
});
|
|
18707
18750
|
|
|
18708
18751
|
// lib/components/fabrication-note-dimension.ts
|
|
18709
18752
|
import { distance as distance24, length as length6 } from "circuit-json";
|
|
18710
|
-
import { z as
|
|
18711
|
-
var dimensionTarget =
|
|
18753
|
+
import { z as z111 } from "zod";
|
|
18754
|
+
var dimensionTarget = z111.union([z111.string(), point]);
|
|
18712
18755
|
var fabricationNoteDimensionProps = pcbLayoutProps.omit({
|
|
18713
18756
|
pcbLeftEdgeX: true,
|
|
18714
18757
|
pcbRightEdgeX: true,
|
|
@@ -18722,44 +18765,44 @@ var fabricationNoteDimensionProps = pcbLayoutProps.omit({
|
|
|
18722
18765
|
}).extend({
|
|
18723
18766
|
from: dimensionTarget,
|
|
18724
18767
|
to: dimensionTarget,
|
|
18725
|
-
text:
|
|
18768
|
+
text: z111.string().optional(),
|
|
18726
18769
|
offset: distance24.optional(),
|
|
18727
|
-
offsetDirection:
|
|
18728
|
-
font:
|
|
18770
|
+
offsetDirection: z111.object({ x: z111.number().finite(), y: z111.number().finite() }).optional(),
|
|
18771
|
+
font: z111.enum(["tscircuit2024"]).optional(),
|
|
18729
18772
|
fontSize: length6.optional(),
|
|
18730
|
-
color:
|
|
18773
|
+
color: z111.string().optional(),
|
|
18731
18774
|
arrowSize: distance24.optional(),
|
|
18732
|
-
units:
|
|
18733
|
-
outerEdgeToEdge:
|
|
18734
|
-
centerToCenter:
|
|
18735
|
-
innerEdgeToEdge:
|
|
18775
|
+
units: z111.enum(["in", "mm"]).optional(),
|
|
18776
|
+
outerEdgeToEdge: z111.literal(true).optional(),
|
|
18777
|
+
centerToCenter: z111.literal(true).optional(),
|
|
18778
|
+
innerEdgeToEdge: z111.literal(true).optional()
|
|
18736
18779
|
});
|
|
18737
18780
|
expectTypesMatch(true);
|
|
18738
18781
|
|
|
18739
18782
|
// lib/components/pcb-trace.ts
|
|
18740
18783
|
import { distance as distance25, route_hint_point as route_hint_point4 } from "circuit-json";
|
|
18741
|
-
import { z as
|
|
18742
|
-
var pcbTraceProps =
|
|
18743
|
-
layer:
|
|
18784
|
+
import { z as z112 } from "zod";
|
|
18785
|
+
var pcbTraceProps = z112.object({
|
|
18786
|
+
layer: z112.string().optional(),
|
|
18744
18787
|
thickness: distance25.optional(),
|
|
18745
|
-
route:
|
|
18788
|
+
route: z112.array(route_hint_point4)
|
|
18746
18789
|
});
|
|
18747
18790
|
|
|
18748
18791
|
// lib/components/via.ts
|
|
18749
18792
|
import { distance as distance26, layer_ref as layer_ref9 } from "circuit-json";
|
|
18750
|
-
import { z as
|
|
18793
|
+
import { z as z113 } from "zod";
|
|
18751
18794
|
var viaProps = commonLayoutProps.extend({
|
|
18752
|
-
name:
|
|
18795
|
+
name: z113.string().optional(),
|
|
18753
18796
|
fromLayer: layer_ref9.optional(),
|
|
18754
18797
|
toLayer: layer_ref9.optional(),
|
|
18755
18798
|
holeDiameter: distance26.optional(),
|
|
18756
18799
|
outerDiameter: distance26.optional(),
|
|
18757
|
-
layers:
|
|
18758
|
-
connectsTo:
|
|
18759
|
-
netIsAssignable:
|
|
18760
|
-
tented:
|
|
18761
|
-
|
|
18762
|
-
|
|
18800
|
+
layers: z113.array(layer_ref9).optional(),
|
|
18801
|
+
connectsTo: z113.string().or(z113.array(z113.string())).optional(),
|
|
18802
|
+
netIsAssignable: z113.boolean().optional(),
|
|
18803
|
+
tented: z113.union([
|
|
18804
|
+
z113.boolean(),
|
|
18805
|
+
z113.enum([
|
|
18763
18806
|
"both_sides",
|
|
18764
18807
|
"top_and_bottom_tented",
|
|
18765
18808
|
"top_tented",
|
|
@@ -18778,15 +18821,15 @@ expectTypesMatch(true);
|
|
|
18778
18821
|
|
|
18779
18822
|
// lib/components/testpoint.ts
|
|
18780
18823
|
import { distance as distance27 } from "circuit-json";
|
|
18781
|
-
import { z as
|
|
18824
|
+
import { z as z114 } from "zod";
|
|
18782
18825
|
var testpointPins = ["pin1"];
|
|
18783
|
-
var testpointConnectionsProp =
|
|
18826
|
+
var testpointConnectionsProp = z114.object({
|
|
18784
18827
|
pin1: connectionTarget
|
|
18785
18828
|
}).strict();
|
|
18786
18829
|
var testpointProps = commonComponentProps.extend({
|
|
18787
18830
|
connections: testpointConnectionsProp.optional(),
|
|
18788
|
-
footprintVariant:
|
|
18789
|
-
padShape:
|
|
18831
|
+
footprintVariant: z114.enum(["pad", "through_hole"]).optional(),
|
|
18832
|
+
padShape: z114.enum(["rect", "circle"]).optional().default("circle"),
|
|
18790
18833
|
padDiameter: distance27.optional(),
|
|
18791
18834
|
holeDiameter: distance27.optional(),
|
|
18792
18835
|
width: distance27.optional(),
|
|
@@ -18798,42 +18841,42 @@ var testpointProps = commonComponentProps.extend({
|
|
|
18798
18841
|
expectTypesMatch(true);
|
|
18799
18842
|
|
|
18800
18843
|
// lib/components/breakoutpoint.ts
|
|
18801
|
-
import { z as
|
|
18844
|
+
import { z as z115 } from "zod";
|
|
18802
18845
|
var breakoutPointProps = pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({
|
|
18803
|
-
connection:
|
|
18846
|
+
connection: z115.string()
|
|
18804
18847
|
});
|
|
18805
18848
|
expectTypesMatch(true);
|
|
18806
18849
|
|
|
18807
18850
|
// lib/components/pcb-keepout.ts
|
|
18808
18851
|
import { distance as distance28, layer_ref as layer_ref10 } from "circuit-json";
|
|
18809
|
-
import { z as
|
|
18810
|
-
var pcbKeepoutProps =
|
|
18852
|
+
import { z as z116 } from "zod";
|
|
18853
|
+
var pcbKeepoutProps = z116.union([
|
|
18811
18854
|
pcbLayoutProps.omit({ pcbRotation: true }).extend({
|
|
18812
|
-
shape:
|
|
18855
|
+
shape: z116.literal("circle"),
|
|
18813
18856
|
radius: distance28,
|
|
18814
|
-
layers:
|
|
18857
|
+
layers: z116.array(layer_ref10).optional(),
|
|
18815
18858
|
/** Report keepout violations as warnings when true. Omit for normal enforcement. */
|
|
18816
|
-
warningOnly:
|
|
18859
|
+
warningOnly: z116.boolean().optional(),
|
|
18817
18860
|
/** Allow trace crossings without keepout diagnostics. False or omitted retains enforcement; copper pours remain excluded. */
|
|
18818
|
-
allowTraces:
|
|
18861
|
+
allowTraces: z116.boolean().optional(),
|
|
18819
18862
|
/** Allow components and their pads/plated holes without keepout diagnostics. False or omitted retains enforcement; copper pours remain excluded. */
|
|
18820
|
-
allowPlacements:
|
|
18821
|
-
excludeRefs:
|
|
18863
|
+
allowPlacements: z116.boolean().optional(),
|
|
18864
|
+
excludeRefs: z116.array(z116.string()).optional().describe(
|
|
18822
18865
|
'Component selectors excluded from the keepout, such as ".ANT1"'
|
|
18823
18866
|
)
|
|
18824
18867
|
}),
|
|
18825
18868
|
pcbLayoutProps.extend({
|
|
18826
|
-
shape:
|
|
18869
|
+
shape: z116.literal("rect"),
|
|
18827
18870
|
width: distance28,
|
|
18828
18871
|
height: distance28,
|
|
18829
|
-
layers:
|
|
18872
|
+
layers: z116.array(layer_ref10).optional(),
|
|
18830
18873
|
/** Report keepout violations as warnings when true. Omit for normal enforcement. */
|
|
18831
|
-
warningOnly:
|
|
18874
|
+
warningOnly: z116.boolean().optional(),
|
|
18832
18875
|
/** Allow trace crossings without keepout diagnostics. False or omitted retains enforcement; copper pours remain excluded. */
|
|
18833
|
-
allowTraces:
|
|
18876
|
+
allowTraces: z116.boolean().optional(),
|
|
18834
18877
|
/** Allow components and their pads/plated holes without keepout diagnostics. False or omitted retains enforcement; copper pours remain excluded. */
|
|
18835
|
-
allowPlacements:
|
|
18836
|
-
excludeRefs:
|
|
18878
|
+
allowPlacements: z116.boolean().optional(),
|
|
18879
|
+
excludeRefs: z116.array(z116.string()).optional().describe(
|
|
18837
18880
|
'Component selectors excluded from the keepout, such as ".ANT1"'
|
|
18838
18881
|
)
|
|
18839
18882
|
})
|
|
@@ -18841,20 +18884,20 @@ var pcbKeepoutProps = z115.union([
|
|
|
18841
18884
|
|
|
18842
18885
|
// lib/components/courtyard-rect.ts
|
|
18843
18886
|
import { distance as distance29 } from "circuit-json";
|
|
18844
|
-
import { z as
|
|
18887
|
+
import { z as z117 } from "zod";
|
|
18845
18888
|
var courtyardRectProps = pcbLayoutProps.extend({
|
|
18846
18889
|
width: distance29,
|
|
18847
18890
|
height: distance29,
|
|
18848
18891
|
strokeWidth: distance29.optional(),
|
|
18849
|
-
isFilled:
|
|
18850
|
-
hasStroke:
|
|
18851
|
-
isStrokeDashed:
|
|
18852
|
-
color:
|
|
18892
|
+
isFilled: z117.boolean().optional(),
|
|
18893
|
+
hasStroke: z117.boolean().optional(),
|
|
18894
|
+
isStrokeDashed: z117.boolean().optional(),
|
|
18895
|
+
color: z117.string().optional()
|
|
18853
18896
|
});
|
|
18854
18897
|
|
|
18855
18898
|
// lib/components/courtyard-outline.ts
|
|
18856
18899
|
import { length as length7 } from "circuit-json";
|
|
18857
|
-
import { z as
|
|
18900
|
+
import { z as z118 } from "zod";
|
|
18858
18901
|
var courtyardOutlineProps = pcbLayoutProps.omit({
|
|
18859
18902
|
pcbLeftEdgeX: true,
|
|
18860
18903
|
pcbRightEdgeX: true,
|
|
@@ -18866,11 +18909,11 @@ var courtyardOutlineProps = pcbLayoutProps.omit({
|
|
|
18866
18909
|
pcbOffsetY: true,
|
|
18867
18910
|
pcbRotation: true
|
|
18868
18911
|
}).extend({
|
|
18869
|
-
outline:
|
|
18912
|
+
outline: z118.array(point),
|
|
18870
18913
|
strokeWidth: length7.optional(),
|
|
18871
|
-
isClosed:
|
|
18872
|
-
isStrokeDashed:
|
|
18873
|
-
color:
|
|
18914
|
+
isClosed: z118.boolean().optional(),
|
|
18915
|
+
isStrokeDashed: z118.boolean().optional(),
|
|
18916
|
+
color: z118.string().optional()
|
|
18874
18917
|
});
|
|
18875
18918
|
|
|
18876
18919
|
// lib/components/courtyard-circle.ts
|
|
@@ -18890,14 +18933,16 @@ var courtyardPillProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
|
|
|
18890
18933
|
});
|
|
18891
18934
|
|
|
18892
18935
|
// lib/components/copper-pour.ts
|
|
18893
|
-
import { z as
|
|
18936
|
+
import { z as z121 } from "zod";
|
|
18894
18937
|
import { layer_ref as layer_ref11 } from "circuit-json";
|
|
18895
|
-
var copperPourProps =
|
|
18896
|
-
name:
|
|
18938
|
+
var copperPourProps = z121.object({
|
|
18939
|
+
name: z121.string().optional(),
|
|
18897
18940
|
layer: layer_ref11,
|
|
18898
|
-
connectsTo:
|
|
18899
|
-
crosshatch:
|
|
18900
|
-
|
|
18941
|
+
connectsTo: z121.string(),
|
|
18942
|
+
crosshatch: z121.boolean().optional(),
|
|
18943
|
+
crosshatchPitch: distance.pipe(z121.number().finite().positive()).optional(),
|
|
18944
|
+
crosshatchWidth: distance.pipe(z121.number().finite().positive()).optional(),
|
|
18945
|
+
unbroken: z121.boolean().optional().describe(
|
|
18901
18946
|
"Reserves the pour region during autorouting so unrelated traces do not split it. Vias may still cross the region using antipads."
|
|
18902
18947
|
),
|
|
18903
18948
|
padMargin: distance.optional(),
|
|
@@ -18905,24 +18950,32 @@ var copperPourProps = z120.object({
|
|
|
18905
18950
|
clearance: distance.optional(),
|
|
18906
18951
|
boardEdgeMargin: distance.optional(),
|
|
18907
18952
|
cutoutMargin: distance.optional(),
|
|
18908
|
-
useThermalReliefs:
|
|
18909
|
-
outline:
|
|
18910
|
-
coveredWithSolderMask:
|
|
18953
|
+
useThermalReliefs: z121.boolean().optional(),
|
|
18954
|
+
outline: z121.array(point).optional(),
|
|
18955
|
+
coveredWithSolderMask: z121.boolean().optional().default(true)
|
|
18956
|
+
}).superRefine((props, ctx) => {
|
|
18957
|
+
if (props.crosshatch && (props.crosshatchWidth ?? 0.25) >= (props.crosshatchPitch ?? 1)) {
|
|
18958
|
+
ctx.addIssue({
|
|
18959
|
+
code: z121.ZodIssueCode.custom,
|
|
18960
|
+
path: ["crosshatchWidth"],
|
|
18961
|
+
message: "crosshatchWidth must be less than crosshatchPitch"
|
|
18962
|
+
});
|
|
18963
|
+
}
|
|
18911
18964
|
});
|
|
18912
18965
|
expectTypesMatch(true);
|
|
18913
18966
|
|
|
18914
18967
|
// lib/components/cadassembly.ts
|
|
18915
18968
|
import { layer_ref as layer_ref12 } from "circuit-json";
|
|
18916
|
-
import { z as
|
|
18917
|
-
var cadassemblyProps =
|
|
18969
|
+
import { z as z122 } from "zod";
|
|
18970
|
+
var cadassemblyProps = z122.object({
|
|
18918
18971
|
originalLayer: layer_ref12.default("top").optional(),
|
|
18919
|
-
children:
|
|
18972
|
+
children: z122.any().optional()
|
|
18920
18973
|
});
|
|
18921
18974
|
expectTypesMatch(true);
|
|
18922
18975
|
|
|
18923
18976
|
// lib/components/cadmodel.ts
|
|
18924
|
-
import { z as
|
|
18925
|
-
var pcbPosition =
|
|
18977
|
+
import { z as z123 } from "zod";
|
|
18978
|
+
var pcbPosition = z123.object({
|
|
18926
18979
|
pcbX: pcbCoordinate.optional(),
|
|
18927
18980
|
pcbY: pcbCoordinate.optional(),
|
|
18928
18981
|
pcbLeftEdgeX: pcbCoordinate.optional(),
|
|
@@ -18939,7 +18992,7 @@ var cadModelBaseWithUrl = cadModelBase.extend({
|
|
|
18939
18992
|
});
|
|
18940
18993
|
var cadModelObject = cadModelBaseWithUrl.merge(pcbPosition);
|
|
18941
18994
|
expectTypesMatch(true);
|
|
18942
|
-
var cadmodelProps =
|
|
18995
|
+
var cadmodelProps = z123.union([z123.null(), url, cadModelObject]);
|
|
18943
18996
|
|
|
18944
18997
|
// lib/components/power-source.ts
|
|
18945
18998
|
import { voltage as voltage5 } from "circuit-json";
|
|
@@ -18949,9 +19002,9 @@ var powerSourceProps = commonComponentProps.extend({
|
|
|
18949
19002
|
|
|
18950
19003
|
// lib/components/voltagesource.ts
|
|
18951
19004
|
import { frequency as frequency5, ms as ms4, rotation as rotation6, voltage as voltage6 } from "circuit-json";
|
|
18952
|
-
import { z as
|
|
19005
|
+
import { z as z124 } from "zod";
|
|
18953
19006
|
var voltageSourcePinLabels = ["pin1", "pin2", "pos", "neg"];
|
|
18954
|
-
var percentage =
|
|
19007
|
+
var percentage = z124.union([z124.string(), z124.number()]).transform((val) => {
|
|
18955
19008
|
if (typeof val === "string") {
|
|
18956
19009
|
if (val.endsWith("%")) {
|
|
18957
19010
|
return parseFloat(val.slice(0, -1)) / 100;
|
|
@@ -18960,13 +19013,13 @@ var percentage = z123.union([z123.string(), z123.number()]).transform((val) => {
|
|
|
18960
19013
|
}
|
|
18961
19014
|
return val;
|
|
18962
19015
|
}).pipe(
|
|
18963
|
-
|
|
19016
|
+
z124.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
|
|
18964
19017
|
);
|
|
18965
19018
|
var voltageSourceProps = commonComponentProps.extend({
|
|
18966
19019
|
voltage: voltage6.optional(),
|
|
18967
19020
|
frequency: frequency5.optional(),
|
|
18968
19021
|
peakToPeakVoltage: voltage6.optional(),
|
|
18969
|
-
waveShape:
|
|
19022
|
+
waveShape: z124.enum(["sinewave", "square", "triangle", "sawtooth"]).optional(),
|
|
18970
19023
|
phase: rotation6.optional(),
|
|
18971
19024
|
dutyCycle: percentage.optional(),
|
|
18972
19025
|
pulseDelay: ms4.optional(),
|
|
@@ -18983,9 +19036,9 @@ expectTypesMatch(true);
|
|
|
18983
19036
|
|
|
18984
19037
|
// lib/components/currentsource.ts
|
|
18985
19038
|
import { frequency as frequency6, rotation as rotation7, current as current3 } from "circuit-json";
|
|
18986
|
-
import { z as
|
|
19039
|
+
import { z as z125 } from "zod";
|
|
18987
19040
|
var currentSourcePinLabels = ["pin1", "pin2", "pos", "neg"];
|
|
18988
|
-
var percentage2 =
|
|
19041
|
+
var percentage2 = z125.union([z125.string(), z125.number()]).transform((val) => {
|
|
18989
19042
|
if (typeof val === "string") {
|
|
18990
19043
|
if (val.endsWith("%")) {
|
|
18991
19044
|
return parseFloat(val.slice(0, -1)) / 100;
|
|
@@ -18994,13 +19047,13 @@ var percentage2 = z124.union([z124.string(), z124.number()]).transform((val) =>
|
|
|
18994
19047
|
}
|
|
18995
19048
|
return val;
|
|
18996
19049
|
}).pipe(
|
|
18997
|
-
|
|
19050
|
+
z125.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
|
|
18998
19051
|
);
|
|
18999
19052
|
var currentSourceProps = commonComponentProps.extend({
|
|
19000
19053
|
current: current3.optional(),
|
|
19001
19054
|
frequency: frequency6.optional(),
|
|
19002
19055
|
peakToPeakCurrent: current3.optional(),
|
|
19003
|
-
waveShape:
|
|
19056
|
+
waveShape: z125.enum(["sinewave", "square", "triangle", "sawtooth"]).optional(),
|
|
19004
19057
|
phase: rotation7.optional(),
|
|
19005
19058
|
dutyCycle: percentage2.optional(),
|
|
19006
19059
|
acMagnitude: current3.optional(),
|
|
@@ -19011,21 +19064,21 @@ var currentSourcePins = lrPolarPins;
|
|
|
19011
19064
|
expectTypesMatch(true);
|
|
19012
19065
|
|
|
19013
19066
|
// lib/components/voltageprobe.ts
|
|
19014
|
-
import { z as
|
|
19067
|
+
import { z as z126 } from "zod";
|
|
19015
19068
|
var voltageProbeProps = commonComponentProps.omit({ name: true }).extend({
|
|
19016
|
-
name:
|
|
19017
|
-
connectsTo:
|
|
19018
|
-
referenceTo:
|
|
19019
|
-
color:
|
|
19020
|
-
graphDisplayName:
|
|
19021
|
-
graphCenter:
|
|
19022
|
-
graphVerticalOffset:
|
|
19023
|
-
graphVoltagePerDiv:
|
|
19069
|
+
name: z126.string().optional(),
|
|
19070
|
+
connectsTo: z126.string(),
|
|
19071
|
+
referenceTo: z126.string().optional(),
|
|
19072
|
+
color: z126.string().optional(),
|
|
19073
|
+
graphDisplayName: z126.string().optional(),
|
|
19074
|
+
graphCenter: z126.number().optional(),
|
|
19075
|
+
graphVerticalOffset: z126.number().or(z126.string()).optional(),
|
|
19076
|
+
graphVoltagePerDiv: z126.number().or(z126.string()).optional()
|
|
19024
19077
|
});
|
|
19025
19078
|
expectTypesMatch(true);
|
|
19026
19079
|
|
|
19027
19080
|
// lib/components/ammeter.ts
|
|
19028
|
-
import { z as
|
|
19081
|
+
import { z as z127 } from "zod";
|
|
19029
19082
|
var ammeterPinLabels = ["pin1", "pin2", "pos", "neg"];
|
|
19030
19083
|
var hasAmmeterConnectionPair = (connections) => {
|
|
19031
19084
|
return connections.pos !== void 0 && connections.neg !== void 0 || connections.pin1 !== void 0 && connections.pin2 !== void 0;
|
|
@@ -19035,64 +19088,64 @@ var ammeterProps = commonComponentProps.extend({
|
|
|
19035
19088
|
hasAmmeterConnectionPair,
|
|
19036
19089
|
"Ammeter connections must include either pos/neg or pin1/pin2"
|
|
19037
19090
|
),
|
|
19038
|
-
color:
|
|
19039
|
-
graphDisplayName:
|
|
19040
|
-
graphCenter:
|
|
19041
|
-
graphVerticalOffset:
|
|
19042
|
-
graphCurrentPerDiv:
|
|
19091
|
+
color: z127.string().optional(),
|
|
19092
|
+
graphDisplayName: z127.string().optional(),
|
|
19093
|
+
graphCenter: z127.number().optional(),
|
|
19094
|
+
graphVerticalOffset: z127.number().or(z127.string()).optional(),
|
|
19095
|
+
graphCurrentPerDiv: z127.number().or(z127.string()).optional()
|
|
19043
19096
|
});
|
|
19044
19097
|
var ammeterPins = ammeterPinLabels;
|
|
19045
19098
|
expectTypesMatch(true);
|
|
19046
19099
|
|
|
19047
19100
|
// lib/components/schematic-arc.ts
|
|
19048
19101
|
import { distance as distance32, point as point5, rotation as rotation8 } from "circuit-json";
|
|
19049
|
-
import { z as
|
|
19050
|
-
var schematicArcProps =
|
|
19102
|
+
import { z as z128 } from "zod";
|
|
19103
|
+
var schematicArcProps = z128.object({
|
|
19051
19104
|
center: point5,
|
|
19052
19105
|
radius: distance32,
|
|
19053
19106
|
startAngleDegrees: rotation8,
|
|
19054
19107
|
endAngleDegrees: rotation8,
|
|
19055
|
-
direction:
|
|
19108
|
+
direction: z128.enum(["clockwise", "counterclockwise"]).default("counterclockwise"),
|
|
19056
19109
|
strokeWidth: distance32.optional(),
|
|
19057
|
-
color:
|
|
19058
|
-
isDashed:
|
|
19110
|
+
color: z128.string().optional(),
|
|
19111
|
+
isDashed: z128.boolean().optional().default(false)
|
|
19059
19112
|
});
|
|
19060
19113
|
expectTypesMatch(true);
|
|
19061
19114
|
|
|
19062
19115
|
// lib/components/toolingrail.ts
|
|
19063
|
-
import { z as
|
|
19064
|
-
var toolingrailProps =
|
|
19065
|
-
children:
|
|
19116
|
+
import { z as z129 } from "zod";
|
|
19117
|
+
var toolingrailProps = z129.object({
|
|
19118
|
+
children: z129.any().optional()
|
|
19066
19119
|
});
|
|
19067
19120
|
expectTypesMatch(true);
|
|
19068
19121
|
|
|
19069
19122
|
// lib/components/schematic-box.ts
|
|
19070
19123
|
import { distance as distance33 } from "circuit-json";
|
|
19071
|
-
import { z as
|
|
19072
|
-
var schematicBoxProps =
|
|
19073
|
-
name:
|
|
19074
|
-
chipRef:
|
|
19124
|
+
import { z as z130 } from "zod";
|
|
19125
|
+
var schematicBoxProps = z130.object({
|
|
19126
|
+
name: z130.string().optional(),
|
|
19127
|
+
chipRef: z130.string().optional(),
|
|
19075
19128
|
pinLabels: pinLabelsProp.optional(),
|
|
19076
19129
|
schPinArrangement: schematicPinArrangement.optional(),
|
|
19077
19130
|
schPinStyle: schematicPinStyle.optional(),
|
|
19078
19131
|
schX: distance33.optional(),
|
|
19079
19132
|
schY: distance33.optional(),
|
|
19080
|
-
schSectionName:
|
|
19081
|
-
schSheetName:
|
|
19133
|
+
schSectionName: z130.string().optional(),
|
|
19134
|
+
schSheetName: z130.string().optional(),
|
|
19082
19135
|
width: distance33.optional(),
|
|
19083
19136
|
height: distance33.optional(),
|
|
19084
|
-
overlay:
|
|
19137
|
+
overlay: z130.array(z130.string()).optional(),
|
|
19085
19138
|
padding: distance33.optional(),
|
|
19086
19139
|
paddingLeft: distance33.optional(),
|
|
19087
19140
|
paddingRight: distance33.optional(),
|
|
19088
19141
|
paddingTop: distance33.optional(),
|
|
19089
19142
|
paddingBottom: distance33.optional(),
|
|
19090
|
-
title:
|
|
19143
|
+
title: z130.string().optional(),
|
|
19091
19144
|
titleAlignment: ninePointAnchor.default("top_left"),
|
|
19092
|
-
titleColor:
|
|
19145
|
+
titleColor: z130.string().optional(),
|
|
19093
19146
|
titleFontSize: distance33.optional(),
|
|
19094
|
-
titleInside:
|
|
19095
|
-
strokeStyle:
|
|
19147
|
+
titleInside: z130.boolean().default(false),
|
|
19148
|
+
strokeStyle: z130.enum(["solid", "dashed"]).default("solid")
|
|
19096
19149
|
}).refine(
|
|
19097
19150
|
(elm) => elm.width !== void 0 && elm.height !== void 0 || Array.isArray(elm.overlay) && elm.overlay.length > 0,
|
|
19098
19151
|
{
|
|
@@ -19108,21 +19161,21 @@ expectTypesMatch(true);
|
|
|
19108
19161
|
|
|
19109
19162
|
// lib/components/schematic-symbol.ts
|
|
19110
19163
|
import { rotation as rotation9 } from "circuit-json";
|
|
19111
|
-
import { z as
|
|
19112
|
-
var schematicSymbolConnections =
|
|
19164
|
+
import { z as z131 } from "zod";
|
|
19165
|
+
var schematicSymbolConnections = z131.custom().pipe(z131.record(z131.string(), connectionTarget)).refine((value) => Object.keys(value).length > 0, {
|
|
19113
19166
|
message: "connections must map at least one schematic symbol port"
|
|
19114
19167
|
});
|
|
19115
|
-
var schematicSymbolProps =
|
|
19116
|
-
name:
|
|
19117
|
-
displayName:
|
|
19118
|
-
chipRef:
|
|
19119
|
-
symbolName:
|
|
19168
|
+
var schematicSymbolProps = z131.object({
|
|
19169
|
+
name: z131.string().min(1),
|
|
19170
|
+
displayName: z131.string().optional(),
|
|
19171
|
+
chipRef: z131.string().min(1).optional(),
|
|
19172
|
+
symbolName: z131.string().min(1),
|
|
19120
19173
|
connections: schematicSymbolConnections.optional(),
|
|
19121
19174
|
schX: distance.optional(),
|
|
19122
19175
|
schY: distance.optional(),
|
|
19123
19176
|
schRotation: rotation9.optional(),
|
|
19124
|
-
schSectionName:
|
|
19125
|
-
schSheetName:
|
|
19177
|
+
schSectionName: z131.string().optional(),
|
|
19178
|
+
schSheetName: z131.string().optional()
|
|
19126
19179
|
});
|
|
19127
19180
|
expectTypesMatch(
|
|
19128
19181
|
true
|
|
@@ -19130,15 +19183,15 @@ expectTypesMatch(
|
|
|
19130
19183
|
|
|
19131
19184
|
// lib/components/schematic-circle.ts
|
|
19132
19185
|
import { distance as distance34, point as point6 } from "circuit-json";
|
|
19133
|
-
import { z as
|
|
19134
|
-
var schematicCircleProps =
|
|
19186
|
+
import { z as z132 } from "zod";
|
|
19187
|
+
var schematicCircleProps = z132.object({
|
|
19135
19188
|
center: point6,
|
|
19136
19189
|
radius: distance34,
|
|
19137
19190
|
strokeWidth: distance34.optional(),
|
|
19138
|
-
color:
|
|
19139
|
-
isFilled:
|
|
19140
|
-
fillColor:
|
|
19141
|
-
isDashed:
|
|
19191
|
+
color: z132.string().optional(),
|
|
19192
|
+
isFilled: z132.boolean().optional().default(false),
|
|
19193
|
+
fillColor: z132.string().optional(),
|
|
19194
|
+
isDashed: z132.boolean().optional().default(false)
|
|
19142
19195
|
});
|
|
19143
19196
|
expectTypesMatch(
|
|
19144
19197
|
true
|
|
@@ -19146,32 +19199,32 @@ expectTypesMatch(
|
|
|
19146
19199
|
|
|
19147
19200
|
// lib/components/schematic-rect.ts
|
|
19148
19201
|
import { distance as distance35, rotation as rotation10 } from "circuit-json";
|
|
19149
|
-
import { z as
|
|
19150
|
-
var schematicRectProps =
|
|
19202
|
+
import { z as z133 } from "zod";
|
|
19203
|
+
var schematicRectProps = z133.object({
|
|
19151
19204
|
schX: distance35.optional(),
|
|
19152
19205
|
schY: distance35.optional(),
|
|
19153
19206
|
width: distance35,
|
|
19154
19207
|
height: distance35,
|
|
19155
19208
|
rotation: rotation10.default(0),
|
|
19156
19209
|
strokeWidth: distance35.optional(),
|
|
19157
|
-
color:
|
|
19158
|
-
isFilled:
|
|
19159
|
-
fillColor:
|
|
19160
|
-
isDashed:
|
|
19210
|
+
color: z133.string().optional(),
|
|
19211
|
+
isFilled: z133.boolean().optional().default(false),
|
|
19212
|
+
fillColor: z133.string().optional(),
|
|
19213
|
+
isDashed: z133.boolean().optional().default(false)
|
|
19161
19214
|
});
|
|
19162
19215
|
expectTypesMatch(true);
|
|
19163
19216
|
|
|
19164
19217
|
// lib/components/schematic-line.ts
|
|
19165
19218
|
import { distance as distance36 } from "circuit-json";
|
|
19166
|
-
import { z as
|
|
19167
|
-
var schematicLineProps =
|
|
19219
|
+
import { z as z134 } from "zod";
|
|
19220
|
+
var schematicLineProps = z134.object({
|
|
19168
19221
|
x1: distance36,
|
|
19169
19222
|
y1: distance36,
|
|
19170
19223
|
x2: distance36,
|
|
19171
19224
|
y2: distance36,
|
|
19172
19225
|
strokeWidth: distance36.optional(),
|
|
19173
|
-
color:
|
|
19174
|
-
isDashed:
|
|
19226
|
+
color: z134.string().optional(),
|
|
19227
|
+
isDashed: z134.boolean().optional().default(false),
|
|
19175
19228
|
dashLength: distance36.optional(),
|
|
19176
19229
|
dashGap: distance36.optional()
|
|
19177
19230
|
});
|
|
@@ -19179,11 +19232,11 @@ expectTypesMatch(true);
|
|
|
19179
19232
|
|
|
19180
19233
|
// lib/components/schematic-text.ts
|
|
19181
19234
|
import { distance as distance37, rotation as rotation11 } from "circuit-json";
|
|
19182
|
-
import { z as
|
|
19235
|
+
import { z as z136 } from "zod";
|
|
19183
19236
|
|
|
19184
19237
|
// lib/common/fivePointAnchor.ts
|
|
19185
|
-
import { z as
|
|
19186
|
-
var fivePointAnchor =
|
|
19238
|
+
import { z as z135 } from "zod";
|
|
19239
|
+
var fivePointAnchor = z135.enum([
|
|
19187
19240
|
"center",
|
|
19188
19241
|
"left",
|
|
19189
19242
|
"right",
|
|
@@ -19192,39 +19245,39 @@ var fivePointAnchor = z134.enum([
|
|
|
19192
19245
|
]);
|
|
19193
19246
|
|
|
19194
19247
|
// lib/components/schematic-text.ts
|
|
19195
|
-
var schematicTextProps =
|
|
19248
|
+
var schematicTextProps = z136.object({
|
|
19196
19249
|
schX: distance37.optional(),
|
|
19197
19250
|
schY: distance37.optional(),
|
|
19198
|
-
text:
|
|
19199
|
-
fontSize:
|
|
19200
|
-
anchor:
|
|
19201
|
-
color:
|
|
19251
|
+
text: z136.string(),
|
|
19252
|
+
fontSize: z136.number().default(1),
|
|
19253
|
+
anchor: z136.union([fivePointAnchor.describe("legacy"), ninePointAnchor]).default("center"),
|
|
19254
|
+
color: z136.string().default("#000000"),
|
|
19202
19255
|
schRotation: rotation11.default(0)
|
|
19203
19256
|
});
|
|
19204
19257
|
expectTypesMatch(true);
|
|
19205
19258
|
|
|
19206
19259
|
// lib/components/schematic-path.ts
|
|
19207
19260
|
import { distance as distance38, point as point7 } from "circuit-json";
|
|
19208
|
-
import { z as
|
|
19209
|
-
var schematicPathProps =
|
|
19210
|
-
points:
|
|
19211
|
-
svgPath:
|
|
19261
|
+
import { z as z137 } from "zod";
|
|
19262
|
+
var schematicPathProps = z137.object({
|
|
19263
|
+
points: z137.array(point7).optional(),
|
|
19264
|
+
svgPath: z137.string().optional(),
|
|
19212
19265
|
strokeWidth: distance38.optional(),
|
|
19213
|
-
strokeColor:
|
|
19266
|
+
strokeColor: z137.string().optional(),
|
|
19214
19267
|
dashLength: distance38.optional(),
|
|
19215
19268
|
dashGap: distance38.optional(),
|
|
19216
|
-
isFilled:
|
|
19217
|
-
fillColor:
|
|
19269
|
+
isFilled: z137.boolean().optional().default(false),
|
|
19270
|
+
fillColor: z137.string().optional()
|
|
19218
19271
|
});
|
|
19219
19272
|
expectTypesMatch(true);
|
|
19220
19273
|
|
|
19221
19274
|
// lib/components/schematic-table.ts
|
|
19222
19275
|
import { distance as distance39 } from "circuit-json";
|
|
19223
|
-
import { z as
|
|
19224
|
-
var schematicTableProps =
|
|
19276
|
+
import { z as z138 } from "zod";
|
|
19277
|
+
var schematicTableProps = z138.object({
|
|
19225
19278
|
schX: distance39.optional(),
|
|
19226
19279
|
schY: distance39.optional(),
|
|
19227
|
-
children:
|
|
19280
|
+
children: z138.any().optional(),
|
|
19228
19281
|
cellPadding: distance39.optional(),
|
|
19229
19282
|
borderWidth: distance39.optional(),
|
|
19230
19283
|
anchor: ninePointAnchor.optional(),
|
|
@@ -19234,34 +19287,34 @@ expectTypesMatch(true);
|
|
|
19234
19287
|
|
|
19235
19288
|
// lib/components/schematic-row.ts
|
|
19236
19289
|
import { distance as distance40 } from "circuit-json";
|
|
19237
|
-
import { z as
|
|
19238
|
-
var schematicRowProps =
|
|
19239
|
-
children:
|
|
19290
|
+
import { z as z139 } from "zod";
|
|
19291
|
+
var schematicRowProps = z139.object({
|
|
19292
|
+
children: z139.any().optional(),
|
|
19240
19293
|
height: distance40.optional()
|
|
19241
19294
|
});
|
|
19242
19295
|
expectTypesMatch(true);
|
|
19243
19296
|
|
|
19244
19297
|
// lib/components/schematic-cell.ts
|
|
19245
19298
|
import { distance as distance41 } from "circuit-json";
|
|
19246
|
-
import { z as
|
|
19247
|
-
var schematicCellProps =
|
|
19248
|
-
children:
|
|
19249
|
-
horizontalAlign:
|
|
19250
|
-
verticalAlign:
|
|
19299
|
+
import { z as z140 } from "zod";
|
|
19300
|
+
var schematicCellProps = z140.object({
|
|
19301
|
+
children: z140.string().optional(),
|
|
19302
|
+
horizontalAlign: z140.enum(["left", "center", "right"]).optional(),
|
|
19303
|
+
verticalAlign: z140.enum(["top", "middle", "bottom"]).optional(),
|
|
19251
19304
|
fontSize: distance41.optional(),
|
|
19252
|
-
rowSpan:
|
|
19253
|
-
colSpan:
|
|
19305
|
+
rowSpan: z140.number().optional(),
|
|
19306
|
+
colSpan: z140.number().optional(),
|
|
19254
19307
|
width: distance41.optional(),
|
|
19255
|
-
text:
|
|
19308
|
+
text: z140.string().optional()
|
|
19256
19309
|
});
|
|
19257
19310
|
expectTypesMatch(true);
|
|
19258
19311
|
|
|
19259
19312
|
// lib/components/schematic-section.ts
|
|
19260
19313
|
import { distance as distance42 } from "circuit-json";
|
|
19261
|
-
import { z as
|
|
19262
|
-
var schematicSectionProps =
|
|
19263
|
-
displayName:
|
|
19264
|
-
name:
|
|
19314
|
+
import { z as z141 } from "zod";
|
|
19315
|
+
var schematicSectionProps = z141.object({
|
|
19316
|
+
displayName: z141.string().optional(),
|
|
19317
|
+
name: z141.string(),
|
|
19265
19318
|
sectionTitleFontSize: distance42.optional()
|
|
19266
19319
|
});
|
|
19267
19320
|
expectTypesMatch(
|
|
@@ -19269,30 +19322,30 @@ expectTypesMatch(
|
|
|
19269
19322
|
);
|
|
19270
19323
|
|
|
19271
19324
|
// lib/components/schematic-sheet.ts
|
|
19272
|
-
import { z as
|
|
19325
|
+
import { z as z142 } from "zod";
|
|
19273
19326
|
import { distance as distance43 } from "circuit-json";
|
|
19274
|
-
var schematicSheetProps =
|
|
19275
|
-
name:
|
|
19276
|
-
displayName:
|
|
19277
|
-
sheetIndex:
|
|
19278
|
-
sheetSize:
|
|
19279
|
-
sheetWidth: distance43.pipe(
|
|
19280
|
-
sheetHeight: distance43.pipe(
|
|
19281
|
-
children:
|
|
19327
|
+
var schematicSheetProps = z142.object({
|
|
19328
|
+
name: z142.string().optional(),
|
|
19329
|
+
displayName: z142.string().optional(),
|
|
19330
|
+
sheetIndex: z142.number().optional(),
|
|
19331
|
+
sheetSize: z142.enum(["A4", "ANSI_B"]).default("A4"),
|
|
19332
|
+
sheetWidth: distance43.pipe(z142.number().positive()).optional(),
|
|
19333
|
+
sheetHeight: distance43.pipe(z142.number().positive()).optional(),
|
|
19334
|
+
children: z142.any().optional()
|
|
19282
19335
|
});
|
|
19283
19336
|
expectTypesMatch(true);
|
|
19284
19337
|
|
|
19285
19338
|
// lib/components/schematic-graphic.ts
|
|
19286
|
-
import { z as
|
|
19339
|
+
import { z as z143 } from "zod";
|
|
19287
19340
|
var nonemptyUrl = url.refine((value) => value.trim().length > 0, {
|
|
19288
19341
|
message: "imageUrl cannot be empty"
|
|
19289
19342
|
});
|
|
19290
19343
|
var positiveDistance5 = (fieldName) => distance.refine((value) => Number.isFinite(value) && value > 0, {
|
|
19291
19344
|
message: `${fieldName} must be a positive finite distance`
|
|
19292
19345
|
});
|
|
19293
|
-
var schematicGraphicProps =
|
|
19346
|
+
var schematicGraphicProps = z143.object({
|
|
19294
19347
|
imageUrl: nonemptyUrl.optional(),
|
|
19295
|
-
svgContent:
|
|
19348
|
+
svgContent: z143.string().refine((value) => value.trim().length > 0, {
|
|
19296
19349
|
message: "svgContent cannot be empty"
|
|
19297
19350
|
}).optional(),
|
|
19298
19351
|
width: positiveDistance5("width").optional(),
|
|
@@ -19300,7 +19353,7 @@ var schematicGraphicProps = z142.object({
|
|
|
19300
19353
|
}).superRefine(({ imageUrl, svgContent }, ctx) => {
|
|
19301
19354
|
if (imageUrl === void 0 && svgContent === void 0) {
|
|
19302
19355
|
ctx.addIssue({
|
|
19303
|
-
code:
|
|
19356
|
+
code: z143.ZodIssueCode.custom,
|
|
19304
19357
|
message: "At least one of imageUrl or svgContent is required"
|
|
19305
19358
|
});
|
|
19306
19359
|
}
|
|
@@ -19311,40 +19364,40 @@ expectTypesMatch(
|
|
|
19311
19364
|
|
|
19312
19365
|
// lib/components/copper-text.ts
|
|
19313
19366
|
import { layer_ref as layer_ref13, length as length8 } from "circuit-json";
|
|
19314
|
-
import { z as
|
|
19367
|
+
import { z as z144 } from "zod";
|
|
19315
19368
|
var copperTextProps = pcbLayoutProps.extend({
|
|
19316
|
-
text:
|
|
19369
|
+
text: z144.string(),
|
|
19317
19370
|
anchorAlignment: ninePointAnchor.default("center"),
|
|
19318
|
-
font:
|
|
19371
|
+
font: z144.enum(["tscircuit2024"]).optional(),
|
|
19319
19372
|
fontSize: length8.optional(),
|
|
19320
|
-
layers:
|
|
19321
|
-
knockout:
|
|
19322
|
-
mirrored:
|
|
19373
|
+
layers: z144.array(layer_ref13).optional(),
|
|
19374
|
+
knockout: z144.boolean().optional(),
|
|
19375
|
+
mirrored: z144.boolean().optional()
|
|
19323
19376
|
});
|
|
19324
19377
|
|
|
19325
19378
|
// lib/components/silkscreen-text.ts
|
|
19326
19379
|
import { layer_ref as layer_ref14, length as length9 } from "circuit-json";
|
|
19327
|
-
import { z as
|
|
19380
|
+
import { z as z145 } from "zod";
|
|
19328
19381
|
var silkscreenTextProps = pcbLayoutProps.extend({
|
|
19329
|
-
text:
|
|
19382
|
+
text: z145.string(),
|
|
19330
19383
|
anchorAlignment: ninePointAnchor.default("center"),
|
|
19331
|
-
font:
|
|
19384
|
+
font: z145.enum(["tscircuit2024"]).optional(),
|
|
19332
19385
|
fontSize: length9.optional(),
|
|
19333
19386
|
/**
|
|
19334
19387
|
* If true, text will knock out underlying silkscreen
|
|
19335
19388
|
*/
|
|
19336
|
-
isKnockout:
|
|
19389
|
+
isKnockout: z145.boolean().optional(),
|
|
19337
19390
|
knockoutPadding: length9.optional(),
|
|
19338
19391
|
knockoutPaddingLeft: length9.optional(),
|
|
19339
19392
|
knockoutPaddingRight: length9.optional(),
|
|
19340
19393
|
knockoutPaddingTop: length9.optional(),
|
|
19341
19394
|
knockoutPaddingBottom: length9.optional(),
|
|
19342
|
-
layers:
|
|
19395
|
+
layers: z145.array(layer_ref14).optional()
|
|
19343
19396
|
});
|
|
19344
19397
|
|
|
19345
19398
|
// lib/components/silkscreen-path.ts
|
|
19346
19399
|
import { length as length10, route_hint_point as route_hint_point5 } from "circuit-json";
|
|
19347
|
-
import { z as
|
|
19400
|
+
import { z as z146 } from "zod";
|
|
19348
19401
|
var silkscreenPathProps = pcbLayoutProps.omit({
|
|
19349
19402
|
pcbLeftEdgeX: true,
|
|
19350
19403
|
pcbRightEdgeX: true,
|
|
@@ -19356,7 +19409,7 @@ var silkscreenPathProps = pcbLayoutProps.omit({
|
|
|
19356
19409
|
pcbOffsetY: true,
|
|
19357
19410
|
pcbRotation: true
|
|
19358
19411
|
}).extend({
|
|
19359
|
-
route:
|
|
19412
|
+
route: z146.array(route_hint_point5),
|
|
19360
19413
|
strokeWidth: length10.optional()
|
|
19361
19414
|
});
|
|
19362
19415
|
|
|
@@ -19378,10 +19431,10 @@ var silkscreenLineProps = pcbLayoutProps.omit({
|
|
|
19378
19431
|
|
|
19379
19432
|
// lib/components/silkscreen-rect.ts
|
|
19380
19433
|
import { distance as distance45 } from "circuit-json";
|
|
19381
|
-
import { z as
|
|
19434
|
+
import { z as z147 } from "zod";
|
|
19382
19435
|
var silkscreenRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
|
|
19383
|
-
filled:
|
|
19384
|
-
stroke:
|
|
19436
|
+
filled: z147.boolean().default(true).optional(),
|
|
19437
|
+
stroke: z147.enum(["dashed", "solid", "none"]).optional(),
|
|
19385
19438
|
strokeWidth: distance45.optional(),
|
|
19386
19439
|
width: distance45,
|
|
19387
19440
|
height: distance45,
|
|
@@ -19390,10 +19443,10 @@ var silkscreenRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
|
|
|
19390
19443
|
|
|
19391
19444
|
// lib/components/silkscreen-circle.ts
|
|
19392
19445
|
import { distance as distance46 } from "circuit-json";
|
|
19393
|
-
import { z as
|
|
19446
|
+
import { z as z148 } from "zod";
|
|
19394
19447
|
var silkscreenCircleProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
|
|
19395
|
-
isFilled:
|
|
19396
|
-
isOutline:
|
|
19448
|
+
isFilled: z148.boolean().optional(),
|
|
19449
|
+
isOutline: z148.boolean().optional(),
|
|
19397
19450
|
strokeWidth: distance46.optional(),
|
|
19398
19451
|
radius: distance46
|
|
19399
19452
|
});
|
|
@@ -19411,69 +19464,69 @@ expectTypesMatch(true);
|
|
|
19411
19464
|
|
|
19412
19465
|
// lib/components/trace-hint.ts
|
|
19413
19466
|
import { distance as distance47, layer_ref as layer_ref15, route_hint_point as route_hint_point6 } from "circuit-json";
|
|
19414
|
-
import { z as
|
|
19415
|
-
var routeHintPointProps =
|
|
19467
|
+
import { z as z150 } from "zod";
|
|
19468
|
+
var routeHintPointProps = z150.object({
|
|
19416
19469
|
x: distance47,
|
|
19417
19470
|
y: distance47,
|
|
19418
|
-
via:
|
|
19471
|
+
via: z150.boolean().optional(),
|
|
19419
19472
|
toLayer: layer_ref15.optional()
|
|
19420
19473
|
});
|
|
19421
|
-
var traceHintProps =
|
|
19422
|
-
for:
|
|
19474
|
+
var traceHintProps = z150.object({
|
|
19475
|
+
for: z150.string().optional().describe(
|
|
19423
19476
|
"Selector for the port you're targeting, not required if you're inside a trace"
|
|
19424
19477
|
),
|
|
19425
|
-
order:
|
|
19478
|
+
order: z150.number().optional(),
|
|
19426
19479
|
offset: route_hint_point6.or(routeHintPointProps).optional(),
|
|
19427
|
-
offsets:
|
|
19428
|
-
traceWidth:
|
|
19480
|
+
offsets: z150.array(route_hint_point6).or(z150.array(routeHintPointProps)).optional(),
|
|
19481
|
+
traceWidth: z150.number().optional()
|
|
19429
19482
|
});
|
|
19430
19483
|
|
|
19431
19484
|
// lib/components/port.ts
|
|
19432
19485
|
import { distance as distance48 } from "circuit-json";
|
|
19433
|
-
import { z as
|
|
19486
|
+
import { z as z151 } from "zod";
|
|
19434
19487
|
var portProps = commonLayoutProps.extend({
|
|
19435
|
-
name:
|
|
19436
|
-
pinNumber:
|
|
19437
|
-
schStemLength:
|
|
19438
|
-
schPinLabelFontSize:
|
|
19488
|
+
name: z151.string().optional(),
|
|
19489
|
+
pinNumber: z151.number().optional(),
|
|
19490
|
+
schStemLength: z151.number().optional(),
|
|
19491
|
+
schPinLabelFontSize: z151.enum(["default", "sm"]).or(
|
|
19439
19492
|
distance48.refine((value) => Number.isFinite(value) && value > 0, {
|
|
19440
19493
|
message: "Schematic pin-label font size must be positive and finite"
|
|
19441
19494
|
})
|
|
19442
19495
|
).optional(),
|
|
19443
|
-
aliases:
|
|
19444
|
-
layer:
|
|
19445
|
-
layers:
|
|
19446
|
-
schX:
|
|
19447
|
-
schY:
|
|
19496
|
+
aliases: z151.array(z151.string()).optional(),
|
|
19497
|
+
layer: z151.string().optional(),
|
|
19498
|
+
layers: z151.array(z151.string()).optional(),
|
|
19499
|
+
schX: z151.number().optional(),
|
|
19500
|
+
schY: z151.number().optional(),
|
|
19448
19501
|
direction: direction.optional(),
|
|
19449
|
-
connectsTo:
|
|
19502
|
+
connectsTo: z151.string().or(z151.array(z151.string())).optional(),
|
|
19450
19503
|
kicadPinMetadata: kicadPinMetadata.optional(),
|
|
19451
|
-
hasInversionCircle:
|
|
19504
|
+
hasInversionCircle: z151.boolean().optional()
|
|
19452
19505
|
});
|
|
19453
19506
|
|
|
19454
19507
|
// lib/components/pcb-note-text.ts
|
|
19455
19508
|
import { length as length11 } from "circuit-json";
|
|
19456
|
-
import { z as
|
|
19509
|
+
import { z as z152 } from "zod";
|
|
19457
19510
|
var pcbNoteTextProps = pcbLayoutProps.extend({
|
|
19458
|
-
text:
|
|
19459
|
-
anchorAlignment:
|
|
19460
|
-
font:
|
|
19511
|
+
text: z152.string(),
|
|
19512
|
+
anchorAlignment: z152.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
|
|
19513
|
+
font: z152.enum(["tscircuit2024"]).optional(),
|
|
19461
19514
|
fontSize: length11.optional(),
|
|
19462
|
-
color:
|
|
19515
|
+
color: z152.string().optional()
|
|
19463
19516
|
});
|
|
19464
19517
|
expectTypesMatch(true);
|
|
19465
19518
|
|
|
19466
19519
|
// lib/components/pcb-note-rect.ts
|
|
19467
19520
|
import { distance as distance49 } from "circuit-json";
|
|
19468
|
-
import { z as
|
|
19521
|
+
import { z as z153 } from "zod";
|
|
19469
19522
|
var pcbNoteRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
|
|
19470
19523
|
width: distance49,
|
|
19471
19524
|
height: distance49,
|
|
19472
19525
|
strokeWidth: distance49.optional(),
|
|
19473
|
-
isFilled:
|
|
19474
|
-
hasStroke:
|
|
19475
|
-
isStrokeDashed:
|
|
19476
|
-
color:
|
|
19526
|
+
isFilled: z153.boolean().optional(),
|
|
19527
|
+
hasStroke: z153.boolean().optional(),
|
|
19528
|
+
isStrokeDashed: z153.boolean().optional(),
|
|
19529
|
+
color: z153.string().optional(),
|
|
19477
19530
|
cornerRadius: distance49.optional()
|
|
19478
19531
|
});
|
|
19479
19532
|
expectTypesMatch(true);
|
|
@@ -19483,7 +19536,7 @@ import {
|
|
|
19483
19536
|
length as length12,
|
|
19484
19537
|
route_hint_point as route_hint_point7
|
|
19485
19538
|
} from "circuit-json";
|
|
19486
|
-
import { z as
|
|
19539
|
+
import { z as z154 } from "zod";
|
|
19487
19540
|
var pcbNotePathProps = pcbLayoutProps.omit({
|
|
19488
19541
|
pcbLeftEdgeX: true,
|
|
19489
19542
|
pcbRightEdgeX: true,
|
|
@@ -19495,15 +19548,15 @@ var pcbNotePathProps = pcbLayoutProps.omit({
|
|
|
19495
19548
|
pcbOffsetY: true,
|
|
19496
19549
|
pcbRotation: true
|
|
19497
19550
|
}).extend({
|
|
19498
|
-
route:
|
|
19551
|
+
route: z154.array(route_hint_point7),
|
|
19499
19552
|
strokeWidth: length12.optional(),
|
|
19500
|
-
color:
|
|
19553
|
+
color: z154.string().optional()
|
|
19501
19554
|
});
|
|
19502
19555
|
expectTypesMatch(true);
|
|
19503
19556
|
|
|
19504
19557
|
// lib/components/pcb-note-line.ts
|
|
19505
19558
|
import { distance as distance50 } from "circuit-json";
|
|
19506
|
-
import { z as
|
|
19559
|
+
import { z as z155 } from "zod";
|
|
19507
19560
|
var pcbNoteLineProps = pcbLayoutProps.omit({
|
|
19508
19561
|
pcbLeftEdgeX: true,
|
|
19509
19562
|
pcbRightEdgeX: true,
|
|
@@ -19520,15 +19573,15 @@ var pcbNoteLineProps = pcbLayoutProps.omit({
|
|
|
19520
19573
|
x2: distance50,
|
|
19521
19574
|
y2: distance50,
|
|
19522
19575
|
strokeWidth: distance50.optional(),
|
|
19523
|
-
color:
|
|
19524
|
-
isDashed:
|
|
19576
|
+
color: z155.string().optional(),
|
|
19577
|
+
isDashed: z155.boolean().optional()
|
|
19525
19578
|
});
|
|
19526
19579
|
expectTypesMatch(true);
|
|
19527
19580
|
|
|
19528
19581
|
// lib/components/pcb-note-dimension.ts
|
|
19529
19582
|
import { distance as distance51, length as length13 } from "circuit-json";
|
|
19530
|
-
import { z as
|
|
19531
|
-
var dimensionTarget2 =
|
|
19583
|
+
import { z as z156 } from "zod";
|
|
19584
|
+
var dimensionTarget2 = z156.union([z156.string(), point]);
|
|
19532
19585
|
var pcbNoteDimensionProps = pcbLayoutProps.omit({
|
|
19533
19586
|
pcbLeftEdgeX: true,
|
|
19534
19587
|
pcbRightEdgeX: true,
|
|
@@ -19542,114 +19595,114 @@ var pcbNoteDimensionProps = pcbLayoutProps.omit({
|
|
|
19542
19595
|
}).extend({
|
|
19543
19596
|
from: dimensionTarget2,
|
|
19544
19597
|
to: dimensionTarget2,
|
|
19545
|
-
text:
|
|
19598
|
+
text: z156.string().optional(),
|
|
19546
19599
|
offset: distance51.optional(),
|
|
19547
|
-
offsetDirection:
|
|
19548
|
-
font:
|
|
19600
|
+
offsetDirection: z156.object({ x: z156.number().finite(), y: z156.number().finite() }).optional(),
|
|
19601
|
+
font: z156.enum(["tscircuit2024"]).optional(),
|
|
19549
19602
|
fontSize: length13.optional(),
|
|
19550
|
-
color:
|
|
19603
|
+
color: z156.string().optional(),
|
|
19551
19604
|
arrowSize: distance51.optional(),
|
|
19552
|
-
units:
|
|
19553
|
-
outerEdgeToEdge:
|
|
19554
|
-
centerToCenter:
|
|
19555
|
-
innerEdgeToEdge:
|
|
19605
|
+
units: z156.enum(["in", "mm"]).optional(),
|
|
19606
|
+
outerEdgeToEdge: z156.literal(true).optional(),
|
|
19607
|
+
centerToCenter: z156.literal(true).optional(),
|
|
19608
|
+
innerEdgeToEdge: z156.literal(true).optional()
|
|
19556
19609
|
});
|
|
19557
19610
|
expectTypesMatch(
|
|
19558
19611
|
true
|
|
19559
19612
|
);
|
|
19560
19613
|
|
|
19561
19614
|
// lib/platformConfig.ts
|
|
19562
|
-
import { z as
|
|
19563
|
-
var unvalidatedCircuitJson =
|
|
19564
|
-
var footprintLibraryResult =
|
|
19565
|
-
footprintCircuitJson:
|
|
19615
|
+
import { z as z157 } from "zod";
|
|
19616
|
+
var unvalidatedCircuitJson = z157.array(z157.any()).describe("Circuit JSON");
|
|
19617
|
+
var footprintLibraryResult = z157.object({
|
|
19618
|
+
footprintCircuitJson: z157.array(z157.any()),
|
|
19566
19619
|
cadModel: cadModelProp.optional()
|
|
19567
19620
|
});
|
|
19568
|
-
var pathToCircuitJsonFn =
|
|
19569
|
-
|
|
19570
|
-
|
|
19571
|
-
|
|
19572
|
-
).returns(
|
|
19621
|
+
var pathToCircuitJsonFn = z157.function().args(z157.string()).returns(z157.promise(footprintLibraryResult)).or(
|
|
19622
|
+
z157.function().args(
|
|
19623
|
+
z157.string(),
|
|
19624
|
+
z157.object({ resolvedPcbStyle: pcbStyle.optional() }).optional()
|
|
19625
|
+
).returns(z157.promise(footprintLibraryResult))
|
|
19573
19626
|
).describe("A function that takes a path and returns Circuit JSON");
|
|
19574
|
-
var footprintFileParserEntry =
|
|
19575
|
-
loadFromUrl:
|
|
19627
|
+
var footprintFileParserEntry = z157.object({
|
|
19628
|
+
loadFromUrl: z157.function().args(z157.string()).returns(z157.promise(footprintLibraryResult)).describe(
|
|
19576
19629
|
"A function that takes a footprint file URL and returns Circuit JSON"
|
|
19577
19630
|
)
|
|
19578
19631
|
});
|
|
19579
|
-
var spiceEngineSimulationResult =
|
|
19580
|
-
engineVersionString:
|
|
19632
|
+
var spiceEngineSimulationResult = z157.object({
|
|
19633
|
+
engineVersionString: z157.string().optional(),
|
|
19581
19634
|
simulationResultCircuitJson: unvalidatedCircuitJson
|
|
19582
19635
|
});
|
|
19583
|
-
var spiceEngineZod =
|
|
19584
|
-
simulate:
|
|
19636
|
+
var spiceEngineZod = z157.object({
|
|
19637
|
+
simulate: z157.function().args(z157.string()).returns(z157.promise(spiceEngineSimulationResult)).describe(
|
|
19585
19638
|
"A function that takes a SPICE string and returns a simulation result"
|
|
19586
19639
|
)
|
|
19587
19640
|
});
|
|
19588
|
-
var defaultSpiceEngine =
|
|
19641
|
+
var defaultSpiceEngine = z157.custom(
|
|
19589
19642
|
(value) => typeof value === "string"
|
|
19590
19643
|
);
|
|
19591
|
-
var autorouterInstance =
|
|
19592
|
-
run:
|
|
19593
|
-
getOutputSimpleRouteJson:
|
|
19644
|
+
var autorouterInstance = z157.object({
|
|
19645
|
+
run: z157.function().args().returns(z157.promise(z157.unknown())).describe("Run the autorouter"),
|
|
19646
|
+
getOutputSimpleRouteJson: z157.function().args().returns(z157.promise(z157.any())).describe("Get the resulting SimpleRouteJson")
|
|
19594
19647
|
});
|
|
19595
|
-
var autorouterDefinition =
|
|
19596
|
-
createAutorouter:
|
|
19648
|
+
var autorouterDefinition = z157.object({
|
|
19649
|
+
createAutorouter: z157.function().args(z157.any(), z157.any().optional()).returns(z157.union([autorouterInstance, z157.promise(autorouterInstance)])).describe("Create an autorouter instance")
|
|
19597
19650
|
});
|
|
19598
|
-
var platformFetch =
|
|
19599
|
-
var localCacheEngine =
|
|
19651
|
+
var platformFetch = z157.custom((value) => typeof value === "function").describe("A fetch-like function to use for platform requests");
|
|
19652
|
+
var localCacheEngine = z157.custom(
|
|
19600
19653
|
(value) => typeof value === "object" && value !== null && "getItem" in value && typeof value.getItem === "function" && "setItem" in value && typeof value.setItem === "function"
|
|
19601
19654
|
);
|
|
19602
|
-
var fabricatorEngine =
|
|
19655
|
+
var fabricatorEngine = z157.custom(
|
|
19603
19656
|
(value) => typeof value === "object" && value !== null && "runDrcChecks" in value && typeof value.runDrcChecks === "function"
|
|
19604
19657
|
);
|
|
19605
|
-
var platformConfig =
|
|
19658
|
+
var platformConfig = z157.object({
|
|
19606
19659
|
partsEngine: partsEngine.optional(),
|
|
19607
19660
|
fabricatorEngine: fabricatorEngine.optional(),
|
|
19608
19661
|
autorouter: autorouterProp.optional(),
|
|
19609
|
-
autorouterMap:
|
|
19610
|
-
allowLegacyAutorouters:
|
|
19662
|
+
autorouterMap: z157.record(z157.string(), autorouterDefinition).optional(),
|
|
19663
|
+
allowLegacyAutorouters: z157.boolean().optional(),
|
|
19611
19664
|
registryApiUrl: url.optional(),
|
|
19612
19665
|
cloudAutorouterUrl: url.optional(),
|
|
19613
|
-
projectName:
|
|
19666
|
+
projectName: z157.string().optional(),
|
|
19614
19667
|
projectBaseUrl: url.optional(),
|
|
19615
|
-
version:
|
|
19668
|
+
version: z157.string().optional(),
|
|
19616
19669
|
url: url.optional(),
|
|
19617
|
-
printBoardInformationToSilkscreen:
|
|
19618
|
-
includeBoardFiles:
|
|
19670
|
+
printBoardInformationToSilkscreen: z157.boolean().optional(),
|
|
19671
|
+
includeBoardFiles: z157.array(z157.string()).describe(
|
|
19619
19672
|
'The board files to automatically build with "tsci build", defaults to ["**/*.circuit.tsx"]. Can be an array of files or globs'
|
|
19620
19673
|
).optional(),
|
|
19621
|
-
snapshotsDir:
|
|
19674
|
+
snapshotsDir: z157.string().describe(
|
|
19622
19675
|
'The directory where snapshots are stored for "tsci snapshot", defaults to "tests/__snapshots__"'
|
|
19623
19676
|
).optional(),
|
|
19624
19677
|
defaultSpiceEngine: defaultSpiceEngine.optional(),
|
|
19625
|
-
unitPreference:
|
|
19678
|
+
unitPreference: z157.enum(["mm", "in", "mil"]).optional(),
|
|
19626
19679
|
localCacheEngine: localCacheEngine.optional(),
|
|
19627
|
-
useCloudAutorouter:
|
|
19628
|
-
enablePartOrientationAnalysis:
|
|
19629
|
-
pcbPackSolverTimeoutMs:
|
|
19630
|
-
pcbDisabled:
|
|
19631
|
-
routingDisabled:
|
|
19632
|
-
schematicDisabled:
|
|
19633
|
-
partsEngineDisabled:
|
|
19634
|
-
analogSimulationDisabled:
|
|
19635
|
-
drcChecksDisabled:
|
|
19636
|
-
netlistDrcChecksDisabled:
|
|
19637
|
-
routingDrcChecksDisabled:
|
|
19638
|
-
placementDrcChecksDisabled:
|
|
19639
|
-
pinSpecificationDrcChecksDisabled:
|
|
19640
|
-
spiceEngineMap:
|
|
19641
|
-
footprintLibraryMap:
|
|
19642
|
-
|
|
19643
|
-
|
|
19680
|
+
useCloudAutorouter: z157.boolean().optional(),
|
|
19681
|
+
enablePartOrientationAnalysis: z157.boolean().optional(),
|
|
19682
|
+
pcbPackSolverTimeoutMs: z157.number().finite().positive().optional(),
|
|
19683
|
+
pcbDisabled: z157.boolean().optional(),
|
|
19684
|
+
routingDisabled: z157.boolean().optional(),
|
|
19685
|
+
schematicDisabled: z157.boolean().optional(),
|
|
19686
|
+
partsEngineDisabled: z157.boolean().optional(),
|
|
19687
|
+
analogSimulationDisabled: z157.boolean().optional(),
|
|
19688
|
+
drcChecksDisabled: z157.boolean().optional(),
|
|
19689
|
+
netlistDrcChecksDisabled: z157.boolean().optional(),
|
|
19690
|
+
routingDrcChecksDisabled: z157.boolean().optional(),
|
|
19691
|
+
placementDrcChecksDisabled: z157.boolean().optional(),
|
|
19692
|
+
pinSpecificationDrcChecksDisabled: z157.boolean().optional(),
|
|
19693
|
+
spiceEngineMap: z157.record(z157.string(), spiceEngineZod).optional(),
|
|
19694
|
+
footprintLibraryMap: z157.record(
|
|
19695
|
+
z157.string(),
|
|
19696
|
+
z157.union([
|
|
19644
19697
|
pathToCircuitJsonFn,
|
|
19645
|
-
|
|
19646
|
-
|
|
19647
|
-
|
|
19698
|
+
z157.record(
|
|
19699
|
+
z157.string(),
|
|
19700
|
+
z157.union([unvalidatedCircuitJson, pathToCircuitJsonFn])
|
|
19648
19701
|
)
|
|
19649
19702
|
])
|
|
19650
19703
|
).optional(),
|
|
19651
|
-
footprintFileParserMap:
|
|
19652
|
-
resolveProjectStaticFileImportUrl:
|
|
19704
|
+
footprintFileParserMap: z157.record(z157.string(), footprintFileParserEntry).optional(),
|
|
19705
|
+
resolveProjectStaticFileImportUrl: z157.function().args(z157.string()).returns(z157.promise(z157.string())).describe(
|
|
19653
19706
|
"A function that returns a string URL for static files for the project"
|
|
19654
19707
|
).optional(),
|
|
19655
19708
|
platformFetch: platformFetch.optional()
|
|
@@ -19709,6 +19762,9 @@ export {
|
|
|
19709
19762
|
base_manual_edit_event,
|
|
19710
19763
|
batteryPins,
|
|
19711
19764
|
batteryProps,
|
|
19765
|
+
boardMountOrientation,
|
|
19766
|
+
boardMountRotation,
|
|
19767
|
+
boardMountRotationAnchor,
|
|
19712
19768
|
boardOutlinePoint,
|
|
19713
19769
|
boardProps,
|
|
19714
19770
|
border,
|