@tscircuit/props 0.0.328 → 0.0.330
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 +29 -22
- package/dist/index.d.ts +196 -173
- package/dist/index.js +479 -472
- package/dist/index.js.map +1 -1
- package/lib/components/board.ts +3 -0
- package/lib/components/platedhole.ts +8 -4
- package/lib/platformConfig.ts +19 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -260,55 +260,69 @@ expectTypesMatch(true);
|
|
|
260
260
|
import { z as z12 } from "zod";
|
|
261
261
|
var schematicPinLabel = z12.string().regex(/^[A-Za-z0-9_]+$/);
|
|
262
262
|
|
|
263
|
+
// lib/common/ninePointAnchor.ts
|
|
264
|
+
import { z as z13 } from "zod";
|
|
265
|
+
var ninePointAnchor = z13.enum([
|
|
266
|
+
"top_left",
|
|
267
|
+
"top_center",
|
|
268
|
+
"top_right",
|
|
269
|
+
"center_left",
|
|
270
|
+
"center",
|
|
271
|
+
"center_right",
|
|
272
|
+
"bottom_left",
|
|
273
|
+
"bottom_center",
|
|
274
|
+
"bottom_right"
|
|
275
|
+
]);
|
|
276
|
+
|
|
263
277
|
// lib/components/board.ts
|
|
264
|
-
import { z as
|
|
278
|
+
import { z as z28 } from "zod";
|
|
265
279
|
|
|
266
280
|
// lib/components/group.ts
|
|
267
281
|
import { length as length2, distance as distance6 } from "circuit-json";
|
|
268
282
|
|
|
269
283
|
// lib/common/point.ts
|
|
270
284
|
import { distance as distance5 } from "circuit-json";
|
|
271
|
-
import { z as
|
|
272
|
-
var point =
|
|
285
|
+
import { z as z14 } from "zod";
|
|
286
|
+
var point = z14.object({
|
|
273
287
|
x: distance5,
|
|
274
288
|
y: distance5
|
|
275
289
|
});
|
|
276
290
|
|
|
277
291
|
// lib/components/group.ts
|
|
278
|
-
import { z as
|
|
292
|
+
import { z as z27 } from "zod";
|
|
279
293
|
|
|
280
294
|
// lib/manual-edits/manual-edit-events/base_manual_edit_event.ts
|
|
281
|
-
import { z as
|
|
282
|
-
var base_manual_edit_event =
|
|
283
|
-
edit_event_id:
|
|
284
|
-
in_progress:
|
|
285
|
-
created_at:
|
|
295
|
+
import { z as z15 } from "zod";
|
|
296
|
+
var base_manual_edit_event = z15.object({
|
|
297
|
+
edit_event_id: z15.string(),
|
|
298
|
+
in_progress: z15.boolean().optional(),
|
|
299
|
+
created_at: z15.number()
|
|
286
300
|
});
|
|
287
301
|
expectTypesMatch(
|
|
288
302
|
true
|
|
289
303
|
);
|
|
290
304
|
|
|
291
305
|
// lib/manual-edits/manual-edit-events/edit_pcb_component_location_event.ts
|
|
292
|
-
import { z as
|
|
306
|
+
import { z as z16 } from "zod";
|
|
293
307
|
var edit_pcb_component_location_event = base_manual_edit_event.extend({
|
|
294
|
-
pcb_edit_event_type:
|
|
295
|
-
edit_event_type:
|
|
296
|
-
pcb_component_id:
|
|
297
|
-
original_center:
|
|
298
|
-
new_center:
|
|
308
|
+
pcb_edit_event_type: z16.literal("edit_component_location").describe("deprecated"),
|
|
309
|
+
edit_event_type: z16.literal("edit_pcb_component_location"),
|
|
310
|
+
pcb_component_id: z16.string(),
|
|
311
|
+
original_center: z16.object({ x: z16.number(), y: z16.number() }),
|
|
312
|
+
new_center: z16.object({ x: z16.number(), y: z16.number() })
|
|
299
313
|
});
|
|
300
314
|
var edit_component_location_event = edit_pcb_component_location_event;
|
|
301
315
|
expectTypesMatch(true);
|
|
302
316
|
|
|
303
317
|
// lib/manual-edits/manual-edit-events/edit_trace_hint_event.ts
|
|
304
|
-
import { z as
|
|
318
|
+
import { z as z17 } from "zod";
|
|
305
319
|
var edit_trace_hint_event = base_manual_edit_event.extend({
|
|
306
|
-
pcb_edit_event_type:
|
|
307
|
-
edit_event_type:
|
|
308
|
-
pcb_port_id:
|
|
309
|
-
pcb_trace_hint_id:
|
|
310
|
-
route:
|
|
311
|
-
|
|
320
|
+
pcb_edit_event_type: z17.literal("edit_trace_hint").describe("deprecated"),
|
|
321
|
+
edit_event_type: z17.literal("edit_pcb_trace_hint").optional(),
|
|
322
|
+
pcb_port_id: z17.string(),
|
|
323
|
+
pcb_trace_hint_id: z17.string().optional(),
|
|
324
|
+
route: z17.array(
|
|
325
|
+
z17.object({ x: z17.number(), y: z17.number(), via: z17.boolean().optional() })
|
|
312
326
|
)
|
|
313
327
|
});
|
|
314
328
|
expectTypesMatch(
|
|
@@ -316,38 +330,38 @@ expectTypesMatch(
|
|
|
316
330
|
);
|
|
317
331
|
|
|
318
332
|
// lib/manual-edits/manual-edit-events/edit_schematic_component_location_event.ts
|
|
319
|
-
import { z as
|
|
333
|
+
import { z as z18 } from "zod";
|
|
320
334
|
var edit_schematic_component_location_event = base_manual_edit_event.extend({
|
|
321
|
-
edit_event_type:
|
|
322
|
-
schematic_component_id:
|
|
323
|
-
original_center:
|
|
324
|
-
new_center:
|
|
335
|
+
edit_event_type: z18.literal("edit_schematic_component_location"),
|
|
336
|
+
schematic_component_id: z18.string(),
|
|
337
|
+
original_center: z18.object({ x: z18.number(), y: z18.number() }),
|
|
338
|
+
new_center: z18.object({ x: z18.number(), y: z18.number() })
|
|
325
339
|
});
|
|
326
340
|
expectTypesMatch(true);
|
|
327
341
|
|
|
328
342
|
// lib/manual-edits/manual-edit-events/edit_pcb_group_location_event.ts
|
|
329
|
-
import { z as
|
|
343
|
+
import { z as z19 } from "zod";
|
|
330
344
|
var edit_pcb_group_location_event = base_manual_edit_event.extend({
|
|
331
|
-
edit_event_type:
|
|
332
|
-
pcb_group_id:
|
|
333
|
-
original_center:
|
|
334
|
-
new_center:
|
|
345
|
+
edit_event_type: z19.literal("edit_pcb_group_location"),
|
|
346
|
+
pcb_group_id: z19.string(),
|
|
347
|
+
original_center: z19.object({ x: z19.number(), y: z19.number() }),
|
|
348
|
+
new_center: z19.object({ x: z19.number(), y: z19.number() })
|
|
335
349
|
});
|
|
336
350
|
expectTypesMatch(true);
|
|
337
351
|
|
|
338
352
|
// lib/manual-edits/manual-edit-events/edit_schematic_group_location_event.ts
|
|
339
|
-
import { z as
|
|
353
|
+
import { z as z20 } from "zod";
|
|
340
354
|
var edit_schematic_group_location_event = base_manual_edit_event.extend({
|
|
341
|
-
edit_event_type:
|
|
342
|
-
schematic_group_id:
|
|
343
|
-
original_center:
|
|
344
|
-
new_center:
|
|
355
|
+
edit_event_type: z20.literal("edit_schematic_group_location"),
|
|
356
|
+
schematic_group_id: z20.string(),
|
|
357
|
+
original_center: z20.object({ x: z20.number(), y: z20.number() }),
|
|
358
|
+
new_center: z20.object({ x: z20.number(), y: z20.number() })
|
|
345
359
|
});
|
|
346
360
|
expectTypesMatch(true);
|
|
347
361
|
|
|
348
362
|
// lib/manual-edits/manual_edit_event.ts
|
|
349
|
-
import { z as
|
|
350
|
-
var manual_edit_event =
|
|
363
|
+
import { z as z21 } from "zod";
|
|
364
|
+
var manual_edit_event = z21.union([
|
|
351
365
|
edit_pcb_component_location_event,
|
|
352
366
|
edit_trace_hint_event,
|
|
353
367
|
edit_schematic_component_location_event
|
|
@@ -355,33 +369,33 @@ var manual_edit_event = z20.union([
|
|
|
355
369
|
expectTypesMatch(true);
|
|
356
370
|
|
|
357
371
|
// lib/manual-edits/manual_edits_file.ts
|
|
358
|
-
import { z as
|
|
372
|
+
import { z as z25 } from "zod";
|
|
359
373
|
|
|
360
374
|
// lib/manual-edits/manual_pcb_placement.ts
|
|
361
|
-
import { z as
|
|
375
|
+
import { z as z22 } from "zod";
|
|
362
376
|
import { point as point2 } from "circuit-json";
|
|
363
|
-
var manual_pcb_placement =
|
|
364
|
-
selector:
|
|
365
|
-
relative_to:
|
|
377
|
+
var manual_pcb_placement = z22.object({
|
|
378
|
+
selector: z22.string(),
|
|
379
|
+
relative_to: z22.string().optional().default("group_center").describe("Can be a selector or 'group_center'"),
|
|
366
380
|
center: point2
|
|
367
381
|
});
|
|
368
382
|
expectTypesMatch(true);
|
|
369
383
|
|
|
370
384
|
// lib/manual-edits/manual_trace_hint.ts
|
|
371
|
-
import { z as
|
|
385
|
+
import { z as z23 } from "zod";
|
|
372
386
|
import { route_hint_point } from "circuit-json";
|
|
373
|
-
var manual_trace_hint =
|
|
374
|
-
pcb_port_selector:
|
|
375
|
-
offsets:
|
|
387
|
+
var manual_trace_hint = z23.object({
|
|
388
|
+
pcb_port_selector: z23.string(),
|
|
389
|
+
offsets: z23.array(route_hint_point)
|
|
376
390
|
});
|
|
377
391
|
expectTypesMatch(true);
|
|
378
392
|
|
|
379
393
|
// lib/manual-edits/manual_schematic_placement.ts
|
|
380
|
-
import { z as
|
|
394
|
+
import { z as z24 } from "zod";
|
|
381
395
|
import { point as point4 } from "circuit-json";
|
|
382
|
-
var manual_schematic_placement =
|
|
383
|
-
selector:
|
|
384
|
-
relative_to:
|
|
396
|
+
var manual_schematic_placement = z24.object({
|
|
397
|
+
selector: z24.string(),
|
|
398
|
+
relative_to: z24.string().optional().default("group_center").describe("Can be a selector or 'group_center'"),
|
|
385
399
|
center: point4
|
|
386
400
|
});
|
|
387
401
|
expectTypesMatch(
|
|
@@ -389,37 +403,37 @@ expectTypesMatch(
|
|
|
389
403
|
);
|
|
390
404
|
|
|
391
405
|
// lib/manual-edits/manual_edits_file.ts
|
|
392
|
-
var manual_edits_file =
|
|
393
|
-
pcb_placements:
|
|
394
|
-
manual_trace_hints:
|
|
395
|
-
schematic_placements:
|
|
406
|
+
var manual_edits_file = z25.object({
|
|
407
|
+
pcb_placements: z25.array(manual_pcb_placement).optional(),
|
|
408
|
+
manual_trace_hints: z25.array(manual_trace_hint).optional(),
|
|
409
|
+
schematic_placements: z25.array(manual_schematic_placement).optional()
|
|
396
410
|
});
|
|
397
411
|
expectTypesMatch(true);
|
|
398
412
|
|
|
399
413
|
// lib/common/connectionsProp.ts
|
|
400
|
-
import { z as
|
|
401
|
-
var connectionTarget =
|
|
414
|
+
import { z as z26 } from "zod";
|
|
415
|
+
var connectionTarget = z26.string().or(z26.array(z26.string()).readonly()).or(z26.array(z26.string()));
|
|
402
416
|
var createConnectionsProp = (labels) => {
|
|
403
|
-
return
|
|
417
|
+
return z26.record(z26.enum(labels), connectionTarget);
|
|
404
418
|
};
|
|
405
419
|
|
|
406
420
|
// lib/components/group.ts
|
|
407
|
-
var layoutConfig =
|
|
408
|
-
layoutMode:
|
|
409
|
-
position:
|
|
410
|
-
grid:
|
|
411
|
-
gridCols:
|
|
412
|
-
gridRows:
|
|
413
|
-
gridTemplateRows:
|
|
414
|
-
gridTemplateColumns:
|
|
415
|
-
gridTemplate:
|
|
416
|
-
gridGap:
|
|
417
|
-
gridRowGap:
|
|
418
|
-
gridColumnGap:
|
|
419
|
-
flex:
|
|
420
|
-
flexDirection:
|
|
421
|
-
alignItems:
|
|
422
|
-
justifyContent:
|
|
421
|
+
var layoutConfig = z27.object({
|
|
422
|
+
layoutMode: z27.enum(["grid", "flex", "match-adapt", "relative", "none"]).optional(),
|
|
423
|
+
position: z27.enum(["absolute", "relative"]).optional(),
|
|
424
|
+
grid: z27.boolean().optional(),
|
|
425
|
+
gridCols: z27.number().or(z27.string()).optional(),
|
|
426
|
+
gridRows: z27.number().or(z27.string()).optional(),
|
|
427
|
+
gridTemplateRows: z27.string().optional(),
|
|
428
|
+
gridTemplateColumns: z27.string().optional(),
|
|
429
|
+
gridTemplate: z27.string().optional(),
|
|
430
|
+
gridGap: z27.number().or(z27.string()).optional(),
|
|
431
|
+
gridRowGap: z27.number().or(z27.string()).optional(),
|
|
432
|
+
gridColumnGap: z27.number().or(z27.string()).optional(),
|
|
433
|
+
flex: z27.boolean().or(z27.string()).optional(),
|
|
434
|
+
flexDirection: z27.enum(["row", "column"]).optional(),
|
|
435
|
+
alignItems: z27.enum(["start", "center", "end", "stretch"]).optional(),
|
|
436
|
+
justifyContent: z27.enum([
|
|
423
437
|
"start",
|
|
424
438
|
"center",
|
|
425
439
|
"end",
|
|
@@ -428,16 +442,16 @@ var layoutConfig = z26.object({
|
|
|
428
442
|
"space-around",
|
|
429
443
|
"space-evenly"
|
|
430
444
|
]).optional(),
|
|
431
|
-
flexRow:
|
|
432
|
-
flexColumn:
|
|
433
|
-
gap:
|
|
434
|
-
pack:
|
|
435
|
-
packOrderStrategy:
|
|
445
|
+
flexRow: z27.boolean().optional(),
|
|
446
|
+
flexColumn: z27.boolean().optional(),
|
|
447
|
+
gap: z27.number().or(z27.string()).optional(),
|
|
448
|
+
pack: z27.boolean().optional().describe("Pack the contents of this group using a packing strategy"),
|
|
449
|
+
packOrderStrategy: z27.enum([
|
|
436
450
|
"largest_to_smallest",
|
|
437
451
|
"first_to_last",
|
|
438
452
|
"highest_to_lowest_pin_count"
|
|
439
453
|
]).optional(),
|
|
440
|
-
packPlacementStrategy:
|
|
454
|
+
packPlacementStrategy: z27.enum(["shortest_connection_along_outline"]).optional(),
|
|
441
455
|
padding: length2.optional(),
|
|
442
456
|
paddingLeft: length2.optional(),
|
|
443
457
|
paddingRight: length2.optional(),
|
|
@@ -447,27 +461,27 @@ var layoutConfig = z26.object({
|
|
|
447
461
|
paddingY: length2.optional(),
|
|
448
462
|
width: length2.optional(),
|
|
449
463
|
height: length2.optional(),
|
|
450
|
-
matchAdapt:
|
|
451
|
-
matchAdaptTemplate:
|
|
464
|
+
matchAdapt: z27.boolean().optional(),
|
|
465
|
+
matchAdaptTemplate: z27.any().optional()
|
|
452
466
|
});
|
|
453
467
|
expectTypesMatch(true);
|
|
454
|
-
var border =
|
|
468
|
+
var border = z27.object({
|
|
455
469
|
strokeWidth: length2.optional(),
|
|
456
|
-
dashed:
|
|
457
|
-
solid:
|
|
458
|
-
});
|
|
459
|
-
var autorouterConfig =
|
|
460
|
-
serverUrl:
|
|
461
|
-
inputFormat:
|
|
462
|
-
serverMode:
|
|
463
|
-
serverCacheEnabled:
|
|
464
|
-
cache:
|
|
470
|
+
dashed: z27.boolean().optional(),
|
|
471
|
+
solid: z27.boolean().optional()
|
|
472
|
+
});
|
|
473
|
+
var autorouterConfig = z27.object({
|
|
474
|
+
serverUrl: z27.string().optional(),
|
|
475
|
+
inputFormat: z27.enum(["simplified", "circuit-json"]).optional(),
|
|
476
|
+
serverMode: z27.enum(["job", "solve-endpoint"]).optional(),
|
|
477
|
+
serverCacheEnabled: z27.boolean().optional(),
|
|
478
|
+
cache: z27.custom((v) => true).optional(),
|
|
465
479
|
traceClearance: length2.optional(),
|
|
466
|
-
groupMode:
|
|
467
|
-
algorithmFn:
|
|
480
|
+
groupMode: z27.enum(["sequential_trace", "subcircuit", "sequential-trace"]).optional(),
|
|
481
|
+
algorithmFn: z27.custom(
|
|
468
482
|
(v) => typeof v === "function" || v === void 0
|
|
469
483
|
).optional(),
|
|
470
|
-
preset:
|
|
484
|
+
preset: z27.enum([
|
|
471
485
|
"sequential_trace",
|
|
472
486
|
"subcircuit",
|
|
473
487
|
"auto",
|
|
@@ -478,45 +492,45 @@ var autorouterConfig = z26.object({
|
|
|
478
492
|
"auto-local",
|
|
479
493
|
"auto-cloud"
|
|
480
494
|
]).optional(),
|
|
481
|
-
local:
|
|
495
|
+
local: z27.boolean().optional()
|
|
482
496
|
});
|
|
483
|
-
var autorouterProp =
|
|
497
|
+
var autorouterProp = z27.union([
|
|
484
498
|
autorouterConfig,
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
499
|
+
z27.literal("sequential_trace"),
|
|
500
|
+
z27.literal("subcircuit"),
|
|
501
|
+
z27.literal("auto"),
|
|
502
|
+
z27.literal("auto_local"),
|
|
503
|
+
z27.literal("auto_cloud"),
|
|
504
|
+
z27.literal("freerouting"),
|
|
505
|
+
z27.literal("sequential-trace"),
|
|
506
|
+
z27.literal("auto-local"),
|
|
507
|
+
z27.literal("auto-cloud")
|
|
494
508
|
]);
|
|
495
509
|
var baseGroupProps = commonLayoutProps.extend({
|
|
496
|
-
name:
|
|
497
|
-
children:
|
|
498
|
-
schTitle:
|
|
499
|
-
key:
|
|
500
|
-
showAsSchematicBox:
|
|
501
|
-
connections:
|
|
510
|
+
name: z27.string().optional(),
|
|
511
|
+
children: z27.any().optional(),
|
|
512
|
+
schTitle: z27.string().optional(),
|
|
513
|
+
key: z27.any().optional(),
|
|
514
|
+
showAsSchematicBox: z27.boolean().optional(),
|
|
515
|
+
connections: z27.record(z27.string(), connectionTarget.optional()).optional(),
|
|
502
516
|
schPinArrangement: schematicPinArrangement.optional(),
|
|
503
517
|
...layoutConfig.shape,
|
|
504
518
|
grid: layoutConfig.shape.grid.describe("@deprecated use pcbGrid"),
|
|
505
519
|
flex: layoutConfig.shape.flex.describe("@deprecated use pcbFlex"),
|
|
506
|
-
pcbGrid:
|
|
507
|
-
pcbGridCols:
|
|
508
|
-
pcbGridRows:
|
|
509
|
-
pcbGridTemplateRows:
|
|
510
|
-
pcbGridTemplateColumns:
|
|
511
|
-
pcbGridTemplate:
|
|
512
|
-
pcbGridGap:
|
|
513
|
-
pcbGridRowGap:
|
|
514
|
-
pcbGridColumnGap:
|
|
515
|
-
pcbFlex:
|
|
516
|
-
pcbFlexGap:
|
|
517
|
-
pcbFlexDirection:
|
|
518
|
-
pcbAlignItems:
|
|
519
|
-
pcbJustifyContent:
|
|
520
|
+
pcbGrid: z27.boolean().optional(),
|
|
521
|
+
pcbGridCols: z27.number().or(z27.string()).optional(),
|
|
522
|
+
pcbGridRows: z27.number().or(z27.string()).optional(),
|
|
523
|
+
pcbGridTemplateRows: z27.string().optional(),
|
|
524
|
+
pcbGridTemplateColumns: z27.string().optional(),
|
|
525
|
+
pcbGridTemplate: z27.string().optional(),
|
|
526
|
+
pcbGridGap: z27.number().or(z27.string()).optional(),
|
|
527
|
+
pcbGridRowGap: z27.number().or(z27.string()).optional(),
|
|
528
|
+
pcbGridColumnGap: z27.number().or(z27.string()).optional(),
|
|
529
|
+
pcbFlex: z27.boolean().or(z27.string()).optional(),
|
|
530
|
+
pcbFlexGap: z27.number().or(z27.string()).optional(),
|
|
531
|
+
pcbFlexDirection: z27.enum(["row", "column"]).optional(),
|
|
532
|
+
pcbAlignItems: z27.enum(["start", "center", "end", "stretch"]).optional(),
|
|
533
|
+
pcbJustifyContent: z27.enum([
|
|
520
534
|
"start",
|
|
521
535
|
"center",
|
|
522
536
|
"end",
|
|
@@ -525,25 +539,25 @@ var baseGroupProps = commonLayoutProps.extend({
|
|
|
525
539
|
"space-around",
|
|
526
540
|
"space-evenly"
|
|
527
541
|
]).optional(),
|
|
528
|
-
pcbFlexRow:
|
|
529
|
-
pcbFlexColumn:
|
|
530
|
-
pcbGap:
|
|
531
|
-
pcbPack:
|
|
532
|
-
pcbPackGap:
|
|
533
|
-
schGrid:
|
|
534
|
-
schGridCols:
|
|
535
|
-
schGridRows:
|
|
536
|
-
schGridTemplateRows:
|
|
537
|
-
schGridTemplateColumns:
|
|
538
|
-
schGridTemplate:
|
|
539
|
-
schGridGap:
|
|
540
|
-
schGridRowGap:
|
|
541
|
-
schGridColumnGap:
|
|
542
|
-
schFlex:
|
|
543
|
-
schFlexGap:
|
|
544
|
-
schFlexDirection:
|
|
545
|
-
schAlignItems:
|
|
546
|
-
schJustifyContent:
|
|
542
|
+
pcbFlexRow: z27.boolean().optional(),
|
|
543
|
+
pcbFlexColumn: z27.boolean().optional(),
|
|
544
|
+
pcbGap: z27.number().or(z27.string()).optional(),
|
|
545
|
+
pcbPack: z27.boolean().optional(),
|
|
546
|
+
pcbPackGap: z27.number().or(z27.string()).optional(),
|
|
547
|
+
schGrid: z27.boolean().optional(),
|
|
548
|
+
schGridCols: z27.number().or(z27.string()).optional(),
|
|
549
|
+
schGridRows: z27.number().or(z27.string()).optional(),
|
|
550
|
+
schGridTemplateRows: z27.string().optional(),
|
|
551
|
+
schGridTemplateColumns: z27.string().optional(),
|
|
552
|
+
schGridTemplate: z27.string().optional(),
|
|
553
|
+
schGridGap: z27.number().or(z27.string()).optional(),
|
|
554
|
+
schGridRowGap: z27.number().or(z27.string()).optional(),
|
|
555
|
+
schGridColumnGap: z27.number().or(z27.string()).optional(),
|
|
556
|
+
schFlex: z27.boolean().or(z27.string()).optional(),
|
|
557
|
+
schFlexGap: z27.number().or(z27.string()).optional(),
|
|
558
|
+
schFlexDirection: z27.enum(["row", "column"]).optional(),
|
|
559
|
+
schAlignItems: z27.enum(["start", "center", "end", "stretch"]).optional(),
|
|
560
|
+
schJustifyContent: z27.enum([
|
|
547
561
|
"start",
|
|
548
562
|
"center",
|
|
549
563
|
"end",
|
|
@@ -552,11 +566,11 @@ var baseGroupProps = commonLayoutProps.extend({
|
|
|
552
566
|
"space-around",
|
|
553
567
|
"space-evenly"
|
|
554
568
|
]).optional(),
|
|
555
|
-
schFlexRow:
|
|
556
|
-
schFlexColumn:
|
|
557
|
-
schGap:
|
|
558
|
-
schPack:
|
|
559
|
-
schMatchAdapt:
|
|
569
|
+
schFlexRow: z27.boolean().optional(),
|
|
570
|
+
schFlexColumn: z27.boolean().optional(),
|
|
571
|
+
schGap: z27.number().or(z27.string()).optional(),
|
|
572
|
+
schPack: z27.boolean().optional(),
|
|
573
|
+
schMatchAdapt: z27.boolean().optional(),
|
|
560
574
|
pcbWidth: length2.optional(),
|
|
561
575
|
pcbHeight: length2.optional(),
|
|
562
576
|
schWidth: length2.optional(),
|
|
@@ -576,32 +590,32 @@ var baseGroupProps = commonLayoutProps.extend({
|
|
|
576
590
|
pcbPaddingTop: length2.optional(),
|
|
577
591
|
pcbPaddingBottom: length2.optional()
|
|
578
592
|
});
|
|
579
|
-
var partsEngine =
|
|
593
|
+
var partsEngine = z27.custom((v) => "findPart" in v);
|
|
580
594
|
var subcircuitGroupProps = baseGroupProps.extend({
|
|
581
595
|
manualEdits: manual_edits_file.optional(),
|
|
582
|
-
schAutoLayoutEnabled:
|
|
583
|
-
schTraceAutoLabelEnabled:
|
|
596
|
+
schAutoLayoutEnabled: z27.boolean().optional(),
|
|
597
|
+
schTraceAutoLabelEnabled: z27.boolean().optional(),
|
|
584
598
|
schMaxTraceDistance: distance6.optional(),
|
|
585
|
-
routingDisabled:
|
|
599
|
+
routingDisabled: z27.boolean().optional(),
|
|
586
600
|
defaultTraceWidth: length2.optional(),
|
|
587
601
|
minTraceWidth: length2.optional(),
|
|
588
602
|
partsEngine: partsEngine.optional(),
|
|
589
|
-
pcbRouteCache:
|
|
603
|
+
pcbRouteCache: z27.custom((v) => true).optional(),
|
|
590
604
|
autorouter: autorouterProp.optional(),
|
|
591
|
-
square:
|
|
592
|
-
emptyArea:
|
|
593
|
-
filledArea:
|
|
605
|
+
square: z27.boolean().optional(),
|
|
606
|
+
emptyArea: z27.string().optional(),
|
|
607
|
+
filledArea: z27.string().optional(),
|
|
594
608
|
width: distance6.optional(),
|
|
595
609
|
height: distance6.optional(),
|
|
596
|
-
outline:
|
|
610
|
+
outline: z27.array(point).optional(),
|
|
597
611
|
outlineOffsetX: distance6.optional(),
|
|
598
612
|
outlineOffsetY: distance6.optional()
|
|
599
613
|
});
|
|
600
614
|
var subcircuitGroupPropsWithBool = subcircuitGroupProps.extend({
|
|
601
|
-
subcircuit:
|
|
615
|
+
subcircuit: z27.literal(true)
|
|
602
616
|
});
|
|
603
|
-
var groupProps =
|
|
604
|
-
baseGroupProps.extend({ subcircuit:
|
|
617
|
+
var groupProps = z27.discriminatedUnion("subcircuit", [
|
|
618
|
+
baseGroupProps.extend({ subcircuit: z27.literal(false).optional() }),
|
|
605
619
|
subcircuitGroupPropsWithBool
|
|
606
620
|
]);
|
|
607
621
|
expectTypesMatch(true);
|
|
@@ -610,9 +624,10 @@ expectTypesMatch(true);
|
|
|
610
624
|
|
|
611
625
|
// lib/components/board.ts
|
|
612
626
|
var boardProps = subcircuitGroupProps.extend({
|
|
613
|
-
material:
|
|
614
|
-
layers:
|
|
615
|
-
borderRadius: distance.optional()
|
|
627
|
+
material: z28.enum(["fr4", "fr1"]).default("fr4"),
|
|
628
|
+
layers: z28.union([z28.literal(2), z28.literal(4)]).default(2),
|
|
629
|
+
borderRadius: distance.optional(),
|
|
630
|
+
boardOrigin: ninePointAnchor.optional()
|
|
616
631
|
});
|
|
617
632
|
expectTypesMatch(true);
|
|
618
633
|
|
|
@@ -630,33 +645,33 @@ expectTypesMatch(true);
|
|
|
630
645
|
|
|
631
646
|
// lib/components/chip.ts
|
|
632
647
|
import { distance as distance8, supplier_name as supplier_name2 } from "circuit-json";
|
|
633
|
-
import { z as
|
|
634
|
-
var connectionTarget2 =
|
|
635
|
-
var connectionsProp =
|
|
636
|
-
var pinLabelsProp =
|
|
648
|
+
import { z as z30 } from "zod";
|
|
649
|
+
var connectionTarget2 = z30.string().or(z30.array(z30.string()).readonly()).or(z30.array(z30.string()));
|
|
650
|
+
var connectionsProp = z30.custom().pipe(z30.record(z30.string(), connectionTarget2));
|
|
651
|
+
var pinLabelsProp = z30.record(
|
|
637
652
|
schematicPinLabel,
|
|
638
|
-
schematicPinLabel.or(
|
|
653
|
+
schematicPinLabel.or(z30.array(schematicPinLabel).readonly()).or(z30.array(schematicPinLabel))
|
|
639
654
|
);
|
|
640
655
|
expectTypesMatch(true);
|
|
641
|
-
var pinCompatibleVariant =
|
|
642
|
-
manufacturerPartNumber:
|
|
643
|
-
supplierPartNumber:
|
|
656
|
+
var pinCompatibleVariant = z30.object({
|
|
657
|
+
manufacturerPartNumber: z30.string().optional(),
|
|
658
|
+
supplierPartNumber: z30.record(supplier_name2, z30.array(z30.string())).optional()
|
|
644
659
|
});
|
|
645
660
|
var chipProps = commonComponentProps.extend({
|
|
646
|
-
manufacturerPartNumber:
|
|
661
|
+
manufacturerPartNumber: z30.string().optional(),
|
|
647
662
|
pinLabels: pinLabelsProp.optional(),
|
|
648
|
-
showPinAliases:
|
|
649
|
-
pcbPinLabels:
|
|
650
|
-
internallyConnectedPins:
|
|
651
|
-
externallyConnectedPins:
|
|
663
|
+
showPinAliases: z30.boolean().optional(),
|
|
664
|
+
pcbPinLabels: z30.record(z30.string(), z30.string()).optional(),
|
|
665
|
+
internallyConnectedPins: z30.array(z30.array(z30.union([z30.string(), z30.number()]))).optional(),
|
|
666
|
+
externallyConnectedPins: z30.array(z30.array(z30.string())).optional(),
|
|
652
667
|
schPinArrangement: schematicPortArrangement.optional(),
|
|
653
668
|
schPortArrangement: schematicPortArrangement.optional(),
|
|
654
|
-
pinCompatibleVariants:
|
|
669
|
+
pinCompatibleVariants: z30.array(pinCompatibleVariant).optional(),
|
|
655
670
|
schPinStyle: schematicPinStyle.optional(),
|
|
656
671
|
schPinSpacing: distance8.optional(),
|
|
657
672
|
schWidth: distance8.optional(),
|
|
658
673
|
schHeight: distance8.optional(),
|
|
659
|
-
noSchematicRepresentation:
|
|
674
|
+
noSchematicRepresentation: z30.boolean().optional(),
|
|
660
675
|
connections: connectionsProp.optional()
|
|
661
676
|
});
|
|
662
677
|
var bugProps = chipProps;
|
|
@@ -668,93 +683,93 @@ expectTypesMatch(true);
|
|
|
668
683
|
|
|
669
684
|
// lib/components/jumper.ts
|
|
670
685
|
import { distance as distance9 } from "circuit-json";
|
|
671
|
-
import { z as
|
|
686
|
+
import { z as z31 } from "zod";
|
|
672
687
|
var jumperProps = commonComponentProps.extend({
|
|
673
|
-
manufacturerPartNumber:
|
|
674
|
-
pinLabels:
|
|
675
|
-
|
|
676
|
-
schematicPinLabel.or(
|
|
688
|
+
manufacturerPartNumber: z31.string().optional(),
|
|
689
|
+
pinLabels: z31.record(
|
|
690
|
+
z31.number().or(schematicPinLabel),
|
|
691
|
+
schematicPinLabel.or(z31.array(schematicPinLabel))
|
|
677
692
|
).optional(),
|
|
678
693
|
schPinStyle: schematicPinStyle.optional(),
|
|
679
694
|
schPinSpacing: distance9.optional(),
|
|
680
695
|
schWidth: distance9.optional(),
|
|
681
696
|
schHeight: distance9.optional(),
|
|
682
|
-
schDirection:
|
|
697
|
+
schDirection: z31.enum(["left", "right"]).optional(),
|
|
683
698
|
schPinArrangement: schematicPinArrangement.optional(),
|
|
684
699
|
schPortArrangement: schematicPortArrangement.optional(),
|
|
685
|
-
pcbPinLabels:
|
|
686
|
-
pinCount:
|
|
687
|
-
internallyConnectedPins:
|
|
688
|
-
connections:
|
|
700
|
+
pcbPinLabels: z31.record(z31.string(), z31.string()).optional(),
|
|
701
|
+
pinCount: z31.union([z31.literal(2), z31.literal(3)]).optional(),
|
|
702
|
+
internallyConnectedPins: z31.array(z31.array(z31.union([z31.string(), z31.number()]))).optional(),
|
|
703
|
+
connections: z31.custom().pipe(z31.record(z31.string(), connectionTarget)).optional()
|
|
689
704
|
});
|
|
690
705
|
expectTypesMatch(true);
|
|
691
706
|
|
|
692
707
|
// lib/components/solderjumper.ts
|
|
693
|
-
import { z as
|
|
708
|
+
import { z as z32 } from "zod";
|
|
694
709
|
var solderjumperProps = jumperProps.extend({
|
|
695
|
-
bridgedPins:
|
|
696
|
-
bridged:
|
|
710
|
+
bridgedPins: z32.array(z32.array(z32.string())).optional(),
|
|
711
|
+
bridged: z32.boolean().optional()
|
|
697
712
|
});
|
|
698
713
|
expectTypesMatch(true);
|
|
699
714
|
|
|
700
715
|
// lib/components/connector.ts
|
|
701
716
|
import { distance as distance10 } from "circuit-json";
|
|
702
|
-
import { z as
|
|
717
|
+
import { z as z33 } from "zod";
|
|
703
718
|
var connectorProps = commonComponentProps.extend({
|
|
704
|
-
manufacturerPartNumber:
|
|
705
|
-
pinLabels:
|
|
706
|
-
|
|
707
|
-
schematicPinLabel.or(
|
|
719
|
+
manufacturerPartNumber: z33.string().optional(),
|
|
720
|
+
pinLabels: z33.record(
|
|
721
|
+
z33.number().or(schematicPinLabel),
|
|
722
|
+
schematicPinLabel.or(z33.array(schematicPinLabel))
|
|
708
723
|
).optional(),
|
|
709
724
|
schPinStyle: schematicPinStyle.optional(),
|
|
710
725
|
schPinSpacing: distance10.optional(),
|
|
711
726
|
schWidth: distance10.optional(),
|
|
712
727
|
schHeight: distance10.optional(),
|
|
713
|
-
schDirection:
|
|
728
|
+
schDirection: z33.enum(["left", "right"]).optional(),
|
|
714
729
|
schPortArrangement: schematicPortArrangement.optional(),
|
|
715
|
-
internallyConnectedPins:
|
|
716
|
-
standard:
|
|
730
|
+
internallyConnectedPins: z33.array(z33.array(z33.union([z33.string(), z33.number()]))).optional(),
|
|
731
|
+
standard: z33.enum(["usb_c", "m2"]).optional()
|
|
717
732
|
});
|
|
718
733
|
expectTypesMatch(true);
|
|
719
734
|
|
|
720
735
|
// lib/components/fuse.ts
|
|
721
|
-
import { z as
|
|
736
|
+
import { z as z34 } from "zod";
|
|
722
737
|
var fusePinLabels = ["pin1", "pin2"];
|
|
723
738
|
var fuseProps = commonComponentProps.extend({
|
|
724
|
-
currentRating:
|
|
725
|
-
voltageRating:
|
|
726
|
-
schShowRatings:
|
|
739
|
+
currentRating: z34.union([z34.number(), z34.string()]),
|
|
740
|
+
voltageRating: z34.union([z34.number(), z34.string()]).optional(),
|
|
741
|
+
schShowRatings: z34.boolean().optional(),
|
|
727
742
|
schOrientation: schematicOrientation.optional(),
|
|
728
|
-
connections:
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
743
|
+
connections: z34.record(
|
|
744
|
+
z34.string(),
|
|
745
|
+
z34.union([
|
|
746
|
+
z34.string(),
|
|
747
|
+
z34.array(z34.string()).readonly(),
|
|
748
|
+
z34.array(z34.string())
|
|
734
749
|
])
|
|
735
750
|
).optional()
|
|
736
751
|
});
|
|
737
752
|
|
|
738
753
|
// lib/components/platedhole.ts
|
|
739
754
|
import { distance as distance11 } from "circuit-json";
|
|
740
|
-
import { z as
|
|
741
|
-
var distanceHiddenUndefined =
|
|
755
|
+
import { z as z35 } from "zod";
|
|
756
|
+
var distanceHiddenUndefined = z35.custom().transform((a) => {
|
|
742
757
|
if (a === void 0) return void 0;
|
|
743
758
|
return distance11.parse(a);
|
|
744
759
|
});
|
|
745
|
-
var platedHoleProps =
|
|
760
|
+
var platedHoleProps = z35.discriminatedUnion("shape", [
|
|
746
761
|
pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({
|
|
747
|
-
name:
|
|
748
|
-
connectsTo:
|
|
749
|
-
shape:
|
|
762
|
+
name: z35.string().optional(),
|
|
763
|
+
connectsTo: z35.string().or(z35.array(z35.string())).optional(),
|
|
764
|
+
shape: z35.literal("circle"),
|
|
750
765
|
holeDiameter: distance11,
|
|
751
766
|
outerDiameter: distance11,
|
|
752
767
|
portHints: portHints.optional()
|
|
753
768
|
}),
|
|
754
769
|
pcbLayoutProps.omit({ layer: true }).extend({
|
|
755
|
-
name:
|
|
756
|
-
connectsTo:
|
|
757
|
-
shape:
|
|
770
|
+
name: z35.string().optional(),
|
|
771
|
+
connectsTo: z35.string().or(z35.array(z35.string())).optional(),
|
|
772
|
+
shape: z35.literal("oval"),
|
|
758
773
|
outerWidth: distance11,
|
|
759
774
|
outerHeight: distance11,
|
|
760
775
|
holeWidth: distanceHiddenUndefined,
|
|
@@ -764,10 +779,10 @@ var platedHoleProps = z34.discriminatedUnion("shape", [
|
|
|
764
779
|
portHints: portHints.optional()
|
|
765
780
|
}),
|
|
766
781
|
pcbLayoutProps.omit({ layer: true }).extend({
|
|
767
|
-
name:
|
|
768
|
-
connectsTo:
|
|
769
|
-
shape:
|
|
770
|
-
rectPad:
|
|
782
|
+
name: z35.string().optional(),
|
|
783
|
+
connectsTo: z35.string().or(z35.array(z35.string())).optional(),
|
|
784
|
+
shape: z35.literal("pill"),
|
|
785
|
+
rectPad: z35.boolean().optional(),
|
|
771
786
|
outerWidth: distance11,
|
|
772
787
|
outerHeight: distance11,
|
|
773
788
|
holeWidth: distanceHiddenUndefined,
|
|
@@ -777,30 +792,32 @@ var platedHoleProps = z34.discriminatedUnion("shape", [
|
|
|
777
792
|
portHints: portHints.optional()
|
|
778
793
|
}),
|
|
779
794
|
pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({
|
|
780
|
-
name:
|
|
781
|
-
connectsTo:
|
|
782
|
-
shape:
|
|
795
|
+
name: z35.string().optional(),
|
|
796
|
+
connectsTo: z35.string().or(z35.array(z35.string())).optional(),
|
|
797
|
+
shape: z35.literal("circular_hole_with_rect_pad"),
|
|
783
798
|
holeDiameter: distance11,
|
|
784
799
|
rectPadWidth: distance11,
|
|
785
800
|
rectPadHeight: distance11,
|
|
786
801
|
rectBorderRadius: distance11.optional(),
|
|
787
|
-
holeShape:
|
|
788
|
-
padShape:
|
|
802
|
+
holeShape: z35.literal("circle").optional(),
|
|
803
|
+
padShape: z35.literal("rect").optional(),
|
|
789
804
|
portHints: portHints.optional(),
|
|
790
|
-
|
|
791
|
-
|
|
805
|
+
holeOffsetX: distance11.optional(),
|
|
806
|
+
holeOffsetY: distance11.optional()
|
|
792
807
|
}),
|
|
793
808
|
pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({
|
|
794
|
-
name:
|
|
795
|
-
connectsTo:
|
|
796
|
-
shape:
|
|
797
|
-
holeShape:
|
|
798
|
-
padShape:
|
|
809
|
+
name: z35.string().optional(),
|
|
810
|
+
connectsTo: z35.string().or(z35.array(z35.string())).optional(),
|
|
811
|
+
shape: z35.literal("pill_hole_with_rect_pad"),
|
|
812
|
+
holeShape: z35.literal("pill"),
|
|
813
|
+
padShape: z35.literal("rect"),
|
|
799
814
|
holeWidth: distance11,
|
|
800
815
|
holeHeight: distance11,
|
|
801
816
|
rectPadWidth: distance11,
|
|
802
817
|
rectPadHeight: distance11,
|
|
803
|
-
portHints: portHints.optional()
|
|
818
|
+
portHints: portHints.optional(),
|
|
819
|
+
holeOffsetX: distance11.optional(),
|
|
820
|
+
holeOffsetY: distance11.optional()
|
|
804
821
|
})
|
|
805
822
|
]).refine((a) => {
|
|
806
823
|
if ("innerWidth" in a && a.innerWidth !== void 0) {
|
|
@@ -815,14 +832,14 @@ expectTypesMatch(true);
|
|
|
815
832
|
|
|
816
833
|
// lib/components/resistor.ts
|
|
817
834
|
import { resistance } from "circuit-json";
|
|
818
|
-
import { z as
|
|
835
|
+
import { z as z36 } from "zod";
|
|
819
836
|
var resistorPinLabels = ["pin1", "pin2", "pos", "neg"];
|
|
820
837
|
var resistorProps = commonComponentProps.extend({
|
|
821
838
|
resistance,
|
|
822
|
-
pullupFor:
|
|
823
|
-
pullupTo:
|
|
824
|
-
pulldownFor:
|
|
825
|
-
pulldownTo:
|
|
839
|
+
pullupFor: z36.string().optional(),
|
|
840
|
+
pullupTo: z36.string().optional(),
|
|
841
|
+
pulldownFor: z36.string().optional(),
|
|
842
|
+
pulldownTo: z36.string().optional(),
|
|
826
843
|
schOrientation: schematicOrientation.optional(),
|
|
827
844
|
connections: createConnectionsProp(resistorPinLabels).optional()
|
|
828
845
|
});
|
|
@@ -831,23 +848,23 @@ expectTypesMatch(true);
|
|
|
831
848
|
|
|
832
849
|
// lib/components/potentiometer.ts
|
|
833
850
|
import { resistance as resistance2 } from "circuit-json";
|
|
834
|
-
import { z as
|
|
851
|
+
import { z as z37 } from "zod";
|
|
835
852
|
var potentiometerProps = commonComponentProps.extend({
|
|
836
853
|
maxResistance: resistance2,
|
|
837
|
-
pinVariant:
|
|
854
|
+
pinVariant: z37.enum(["two_pin", "three_pin"]).optional()
|
|
838
855
|
});
|
|
839
856
|
expectTypesMatch(true);
|
|
840
857
|
|
|
841
858
|
// lib/components/crystal.ts
|
|
842
859
|
import { frequency, capacitance } from "circuit-json";
|
|
843
|
-
import { z as
|
|
860
|
+
import { z as z38 } from "zod";
|
|
844
861
|
var crystalPins = lrPins;
|
|
845
862
|
var crystalProps = commonComponentProps.extend({
|
|
846
863
|
frequency,
|
|
847
864
|
loadCapacitance: capacitance,
|
|
848
|
-
manufacturerPartNumber:
|
|
849
|
-
mpn:
|
|
850
|
-
pinVariant:
|
|
865
|
+
manufacturerPartNumber: z38.string().optional(),
|
|
866
|
+
mpn: z38.string().optional(),
|
|
867
|
+
pinVariant: z38.enum(["two_pin", "four_pin"]).optional(),
|
|
851
868
|
schOrientation: schematicOrientation.optional(),
|
|
852
869
|
connections: createConnectionsProp(crystalPins).optional()
|
|
853
870
|
});
|
|
@@ -855,34 +872,34 @@ expectTypesMatch(true);
|
|
|
855
872
|
|
|
856
873
|
// lib/components/resonator.ts
|
|
857
874
|
import { frequency as frequency2, capacitance as capacitance2 } from "circuit-json";
|
|
858
|
-
import { z as
|
|
875
|
+
import { z as z39 } from "zod";
|
|
859
876
|
var resonatorProps = commonComponentProps.extend({
|
|
860
877
|
frequency: frequency2,
|
|
861
878
|
loadCapacitance: capacitance2,
|
|
862
|
-
pinVariant:
|
|
879
|
+
pinVariant: z39.enum(["no_ground", "ground_pin", "two_ground_pins"]).optional()
|
|
863
880
|
});
|
|
864
881
|
expectTypesMatch(true);
|
|
865
882
|
|
|
866
883
|
// lib/components/stampboard.ts
|
|
867
884
|
import { distance as distance12 } from "circuit-json";
|
|
868
|
-
import { z as
|
|
885
|
+
import { z as z40 } from "zod";
|
|
869
886
|
var stampboardProps = boardProps.extend({
|
|
870
|
-
leftPinCount:
|
|
871
|
-
rightPinCount:
|
|
872
|
-
topPinCount:
|
|
873
|
-
bottomPinCount:
|
|
874
|
-
leftPins:
|
|
875
|
-
rightPins:
|
|
876
|
-
topPins:
|
|
877
|
-
bottomPins:
|
|
887
|
+
leftPinCount: z40.number().optional(),
|
|
888
|
+
rightPinCount: z40.number().optional(),
|
|
889
|
+
topPinCount: z40.number().optional(),
|
|
890
|
+
bottomPinCount: z40.number().optional(),
|
|
891
|
+
leftPins: z40.array(z40.string()).optional(),
|
|
892
|
+
rightPins: z40.array(z40.string()).optional(),
|
|
893
|
+
topPins: z40.array(z40.string()).optional(),
|
|
894
|
+
bottomPins: z40.array(z40.string()).optional(),
|
|
878
895
|
pinPitch: distance12.optional(),
|
|
879
|
-
innerHoles:
|
|
896
|
+
innerHoles: z40.boolean().optional()
|
|
880
897
|
});
|
|
881
898
|
expectTypesMatch(true);
|
|
882
899
|
|
|
883
900
|
// lib/components/capacitor.ts
|
|
884
901
|
import { capacitance as capacitance3, voltage } from "circuit-json";
|
|
885
|
-
import { z as
|
|
902
|
+
import { z as z41 } from "zod";
|
|
886
903
|
var capacitorPinLabels = [
|
|
887
904
|
"pin1",
|
|
888
905
|
"pin2",
|
|
@@ -894,13 +911,13 @@ var capacitorPinLabels = [
|
|
|
894
911
|
var capacitorProps = commonComponentProps.extend({
|
|
895
912
|
capacitance: capacitance3,
|
|
896
913
|
maxVoltageRating: voltage.optional(),
|
|
897
|
-
schShowRatings:
|
|
898
|
-
polarized:
|
|
899
|
-
decouplingFor:
|
|
900
|
-
decouplingTo:
|
|
901
|
-
bypassFor:
|
|
902
|
-
bypassTo:
|
|
903
|
-
maxDecouplingTraceLength:
|
|
914
|
+
schShowRatings: z41.boolean().optional().default(false),
|
|
915
|
+
polarized: z41.boolean().optional().default(false),
|
|
916
|
+
decouplingFor: z41.string().optional(),
|
|
917
|
+
decouplingTo: z41.string().optional(),
|
|
918
|
+
bypassFor: z41.string().optional(),
|
|
919
|
+
bypassTo: z41.string().optional(),
|
|
920
|
+
maxDecouplingTraceLength: z41.number().optional(),
|
|
904
921
|
schOrientation: schematicOrientation.optional(),
|
|
905
922
|
connections: createConnectionsProp(capacitorPinLabels).optional()
|
|
906
923
|
});
|
|
@@ -908,63 +925,63 @@ var capacitorPins = lrPolarPins;
|
|
|
908
925
|
expectTypesMatch(true);
|
|
909
926
|
|
|
910
927
|
// lib/components/net.ts
|
|
911
|
-
import { z as
|
|
912
|
-
var netProps =
|
|
913
|
-
name:
|
|
914
|
-
connectsTo:
|
|
928
|
+
import { z as z42 } from "zod";
|
|
929
|
+
var netProps = z42.object({
|
|
930
|
+
name: z42.string(),
|
|
931
|
+
connectsTo: z42.string().or(z42.array(z42.string())).optional()
|
|
915
932
|
});
|
|
916
933
|
expectTypesMatch(true);
|
|
917
934
|
|
|
918
935
|
// lib/components/constrainedlayout.ts
|
|
919
|
-
import { z as
|
|
920
|
-
var constrainedLayoutProps =
|
|
921
|
-
name:
|
|
922
|
-
pcbOnly:
|
|
923
|
-
schOnly:
|
|
936
|
+
import { z as z43 } from "zod";
|
|
937
|
+
var constrainedLayoutProps = z43.object({
|
|
938
|
+
name: z43.string().optional(),
|
|
939
|
+
pcbOnly: z43.boolean().optional(),
|
|
940
|
+
schOnly: z43.boolean().optional()
|
|
924
941
|
});
|
|
925
942
|
expectTypesMatch(true);
|
|
926
943
|
|
|
927
944
|
// lib/components/constraint.ts
|
|
928
|
-
import { z as
|
|
929
|
-
var pcbXDistConstraintProps =
|
|
930
|
-
pcb:
|
|
945
|
+
import { z as z44 } from "zod";
|
|
946
|
+
var pcbXDistConstraintProps = z44.object({
|
|
947
|
+
pcb: z44.literal(true).optional(),
|
|
931
948
|
xDist: distance,
|
|
932
|
-
left:
|
|
933
|
-
right:
|
|
934
|
-
edgeToEdge:
|
|
935
|
-
centerToCenter:
|
|
949
|
+
left: z44.string(),
|
|
950
|
+
right: z44.string(),
|
|
951
|
+
edgeToEdge: z44.literal(true).optional(),
|
|
952
|
+
centerToCenter: z44.literal(true).optional()
|
|
936
953
|
});
|
|
937
954
|
expectTypesMatch(
|
|
938
955
|
true
|
|
939
956
|
);
|
|
940
|
-
var pcbYDistConstraintProps =
|
|
941
|
-
pcb:
|
|
957
|
+
var pcbYDistConstraintProps = z44.object({
|
|
958
|
+
pcb: z44.literal(true).optional(),
|
|
942
959
|
yDist: distance,
|
|
943
|
-
top:
|
|
944
|
-
bottom:
|
|
945
|
-
edgeToEdge:
|
|
946
|
-
centerToCenter:
|
|
960
|
+
top: z44.string(),
|
|
961
|
+
bottom: z44.string(),
|
|
962
|
+
edgeToEdge: z44.literal(true).optional(),
|
|
963
|
+
centerToCenter: z44.literal(true).optional()
|
|
947
964
|
});
|
|
948
965
|
expectTypesMatch(
|
|
949
966
|
true
|
|
950
967
|
);
|
|
951
|
-
var pcbSameYConstraintProps =
|
|
952
|
-
pcb:
|
|
953
|
-
sameY:
|
|
954
|
-
for:
|
|
968
|
+
var pcbSameYConstraintProps = z44.object({
|
|
969
|
+
pcb: z44.literal(true).optional(),
|
|
970
|
+
sameY: z44.literal(true).optional(),
|
|
971
|
+
for: z44.array(z44.string())
|
|
955
972
|
});
|
|
956
973
|
expectTypesMatch(
|
|
957
974
|
true
|
|
958
975
|
);
|
|
959
|
-
var pcbSameXConstraintProps =
|
|
960
|
-
pcb:
|
|
961
|
-
sameX:
|
|
962
|
-
for:
|
|
976
|
+
var pcbSameXConstraintProps = z44.object({
|
|
977
|
+
pcb: z44.literal(true).optional(),
|
|
978
|
+
sameX: z44.literal(true).optional(),
|
|
979
|
+
for: z44.array(z44.string())
|
|
963
980
|
});
|
|
964
981
|
expectTypesMatch(
|
|
965
982
|
true
|
|
966
983
|
);
|
|
967
|
-
var constraintProps =
|
|
984
|
+
var constraintProps = z44.union([
|
|
968
985
|
pcbXDistConstraintProps,
|
|
969
986
|
pcbYDistConstraintProps,
|
|
970
987
|
pcbSameYConstraintProps,
|
|
@@ -973,13 +990,13 @@ var constraintProps = z43.union([
|
|
|
973
990
|
expectTypesMatch(true);
|
|
974
991
|
|
|
975
992
|
// lib/components/cutout.ts
|
|
976
|
-
import { z as
|
|
993
|
+
import { z as z45 } from "zod";
|
|
977
994
|
var rectCutoutProps = pcbLayoutProps.omit({
|
|
978
995
|
layer: true,
|
|
979
996
|
pcbRotation: true
|
|
980
997
|
}).extend({
|
|
981
|
-
name:
|
|
982
|
-
shape:
|
|
998
|
+
name: z45.string().optional(),
|
|
999
|
+
shape: z45.literal("rect"),
|
|
983
1000
|
width: distance,
|
|
984
1001
|
height: distance
|
|
985
1002
|
});
|
|
@@ -988,8 +1005,8 @@ var circleCutoutProps = pcbLayoutProps.omit({
|
|
|
988
1005
|
layer: true,
|
|
989
1006
|
pcbRotation: true
|
|
990
1007
|
}).extend({
|
|
991
|
-
name:
|
|
992
|
-
shape:
|
|
1008
|
+
name: z45.string().optional(),
|
|
1009
|
+
shape: z45.literal("circle"),
|
|
993
1010
|
radius: distance
|
|
994
1011
|
});
|
|
995
1012
|
expectTypesMatch(true);
|
|
@@ -997,66 +1014,66 @@ var polygonCutoutProps = pcbLayoutProps.omit({
|
|
|
997
1014
|
layer: true,
|
|
998
1015
|
pcbRotation: true
|
|
999
1016
|
}).extend({
|
|
1000
|
-
name:
|
|
1001
|
-
shape:
|
|
1002
|
-
points:
|
|
1017
|
+
name: z45.string().optional(),
|
|
1018
|
+
shape: z45.literal("polygon"),
|
|
1019
|
+
points: z45.array(point)
|
|
1003
1020
|
});
|
|
1004
1021
|
expectTypesMatch(true);
|
|
1005
|
-
var cutoutProps =
|
|
1022
|
+
var cutoutProps = z45.discriminatedUnion("shape", [
|
|
1006
1023
|
rectCutoutProps,
|
|
1007
1024
|
circleCutoutProps,
|
|
1008
1025
|
polygonCutoutProps
|
|
1009
1026
|
]);
|
|
1010
1027
|
|
|
1011
1028
|
// lib/components/smtpad.ts
|
|
1012
|
-
import { z as
|
|
1029
|
+
import { z as z46 } from "zod";
|
|
1013
1030
|
var rectSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
|
|
1014
|
-
name:
|
|
1015
|
-
shape:
|
|
1031
|
+
name: z46.string().optional(),
|
|
1032
|
+
shape: z46.literal("rect"),
|
|
1016
1033
|
width: distance,
|
|
1017
1034
|
height: distance,
|
|
1018
1035
|
rectBorderRadius: distance.optional(),
|
|
1019
1036
|
portHints: portHints.optional(),
|
|
1020
|
-
coveredWithSolderMask:
|
|
1037
|
+
coveredWithSolderMask: z46.boolean().optional()
|
|
1021
1038
|
});
|
|
1022
1039
|
expectTypesMatch(true);
|
|
1023
1040
|
var rotatedRectSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
|
|
1024
|
-
name:
|
|
1025
|
-
shape:
|
|
1041
|
+
name: z46.string().optional(),
|
|
1042
|
+
shape: z46.literal("rotated_rect"),
|
|
1026
1043
|
width: distance,
|
|
1027
1044
|
height: distance,
|
|
1028
|
-
ccwRotation:
|
|
1045
|
+
ccwRotation: z46.number(),
|
|
1029
1046
|
portHints: portHints.optional(),
|
|
1030
|
-
coveredWithSolderMask:
|
|
1047
|
+
coveredWithSolderMask: z46.boolean().optional()
|
|
1031
1048
|
});
|
|
1032
1049
|
expectTypesMatch(true);
|
|
1033
1050
|
var circleSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
|
|
1034
|
-
name:
|
|
1035
|
-
shape:
|
|
1051
|
+
name: z46.string().optional(),
|
|
1052
|
+
shape: z46.literal("circle"),
|
|
1036
1053
|
radius: distance,
|
|
1037
1054
|
portHints: portHints.optional(),
|
|
1038
|
-
coveredWithSolderMask:
|
|
1055
|
+
coveredWithSolderMask: z46.boolean().optional()
|
|
1039
1056
|
});
|
|
1040
1057
|
expectTypesMatch(true);
|
|
1041
1058
|
var pillSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
|
|
1042
|
-
name:
|
|
1043
|
-
shape:
|
|
1059
|
+
name: z46.string().optional(),
|
|
1060
|
+
shape: z46.literal("pill"),
|
|
1044
1061
|
width: distance,
|
|
1045
1062
|
height: distance,
|
|
1046
1063
|
radius: distance,
|
|
1047
1064
|
portHints: portHints.optional(),
|
|
1048
|
-
coveredWithSolderMask:
|
|
1065
|
+
coveredWithSolderMask: z46.boolean().optional()
|
|
1049
1066
|
});
|
|
1050
1067
|
expectTypesMatch(true);
|
|
1051
1068
|
var polygonSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
|
|
1052
|
-
name:
|
|
1053
|
-
shape:
|
|
1054
|
-
points:
|
|
1069
|
+
name: z46.string().optional(),
|
|
1070
|
+
shape: z46.literal("polygon"),
|
|
1071
|
+
points: z46.array(point),
|
|
1055
1072
|
portHints: portHints.optional(),
|
|
1056
|
-
coveredWithSolderMask:
|
|
1073
|
+
coveredWithSolderMask: z46.boolean().optional()
|
|
1057
1074
|
});
|
|
1058
1075
|
expectTypesMatch(true);
|
|
1059
|
-
var smtPadProps =
|
|
1076
|
+
var smtPadProps = z46.discriminatedUnion("shape", [
|
|
1060
1077
|
circleSmtPadProps,
|
|
1061
1078
|
rectSmtPadProps,
|
|
1062
1079
|
rotatedRectSmtPadProps,
|
|
@@ -1066,29 +1083,29 @@ var smtPadProps = z45.discriminatedUnion("shape", [
|
|
|
1066
1083
|
expectTypesMatch(true);
|
|
1067
1084
|
|
|
1068
1085
|
// lib/components/solderpaste.ts
|
|
1069
|
-
import { z as
|
|
1086
|
+
import { z as z47 } from "zod";
|
|
1070
1087
|
var rectSolderPasteProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
|
|
1071
|
-
shape:
|
|
1088
|
+
shape: z47.literal("rect"),
|
|
1072
1089
|
width: distance,
|
|
1073
1090
|
height: distance
|
|
1074
1091
|
});
|
|
1075
1092
|
expectTypesMatch(true);
|
|
1076
1093
|
var circleSolderPasteProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
|
|
1077
|
-
shape:
|
|
1094
|
+
shape: z47.literal("circle"),
|
|
1078
1095
|
radius: distance
|
|
1079
1096
|
});
|
|
1080
1097
|
expectTypesMatch(true);
|
|
1081
|
-
var solderPasteProps =
|
|
1098
|
+
var solderPasteProps = z47.union([
|
|
1082
1099
|
circleSolderPasteProps,
|
|
1083
1100
|
rectSolderPasteProps
|
|
1084
1101
|
]);
|
|
1085
1102
|
expectTypesMatch(true);
|
|
1086
1103
|
|
|
1087
1104
|
// lib/components/hole.ts
|
|
1088
|
-
import { z as
|
|
1105
|
+
import { z as z48 } from "zod";
|
|
1089
1106
|
var circleHoleProps = pcbLayoutProps.extend({
|
|
1090
|
-
name:
|
|
1091
|
-
shape:
|
|
1107
|
+
name: z48.string().optional(),
|
|
1108
|
+
shape: z48.literal("circle").optional(),
|
|
1092
1109
|
diameter: distance.optional(),
|
|
1093
1110
|
radius: distance.optional()
|
|
1094
1111
|
}).transform((d) => ({
|
|
@@ -1097,37 +1114,37 @@ var circleHoleProps = pcbLayoutProps.extend({
|
|
|
1097
1114
|
radius: d.radius ?? d.diameter / 2
|
|
1098
1115
|
}));
|
|
1099
1116
|
var pillHoleProps = pcbLayoutProps.extend({
|
|
1100
|
-
name:
|
|
1101
|
-
shape:
|
|
1117
|
+
name: z48.string().optional(),
|
|
1118
|
+
shape: z48.literal("pill"),
|
|
1102
1119
|
width: distance,
|
|
1103
1120
|
height: distance
|
|
1104
1121
|
});
|
|
1105
|
-
var holeProps =
|
|
1122
|
+
var holeProps = z48.union([circleHoleProps, pillHoleProps]);
|
|
1106
1123
|
expectTypesMatch(true);
|
|
1107
1124
|
|
|
1108
1125
|
// lib/components/trace.ts
|
|
1109
1126
|
import { distance as distance13, route_hint_point as route_hint_point2 } from "circuit-json";
|
|
1110
|
-
import { z as
|
|
1111
|
-
var portRef =
|
|
1112
|
-
|
|
1113
|
-
|
|
1127
|
+
import { z as z49 } from "zod";
|
|
1128
|
+
var portRef = z49.union([
|
|
1129
|
+
z49.string(),
|
|
1130
|
+
z49.custom(
|
|
1114
1131
|
(v) => Boolean(v.getPortSelector)
|
|
1115
1132
|
)
|
|
1116
1133
|
]);
|
|
1117
|
-
var baseTraceProps =
|
|
1118
|
-
key:
|
|
1134
|
+
var baseTraceProps = z49.object({
|
|
1135
|
+
key: z49.string().optional(),
|
|
1119
1136
|
thickness: distance13.optional(),
|
|
1120
|
-
schematicRouteHints:
|
|
1121
|
-
pcbRouteHints:
|
|
1122
|
-
pcbPathRelativeTo:
|
|
1123
|
-
pcbPath:
|
|
1124
|
-
schDisplayLabel:
|
|
1125
|
-
schStroke:
|
|
1137
|
+
schematicRouteHints: z49.array(point).optional(),
|
|
1138
|
+
pcbRouteHints: z49.array(route_hint_point2).optional(),
|
|
1139
|
+
pcbPathRelativeTo: z49.string().optional(),
|
|
1140
|
+
pcbPath: z49.array(point).optional(),
|
|
1141
|
+
schDisplayLabel: z49.string().optional(),
|
|
1142
|
+
schStroke: z49.string().optional(),
|
|
1126
1143
|
maxLength: distance13.optional()
|
|
1127
1144
|
});
|
|
1128
|
-
var traceProps =
|
|
1145
|
+
var traceProps = z49.union([
|
|
1129
1146
|
baseTraceProps.extend({
|
|
1130
|
-
path:
|
|
1147
|
+
path: z49.array(portRef)
|
|
1131
1148
|
}),
|
|
1132
1149
|
baseTraceProps.extend({
|
|
1133
1150
|
from: portRef,
|
|
@@ -1137,23 +1154,23 @@ var traceProps = z48.union([
|
|
|
1137
1154
|
|
|
1138
1155
|
// lib/components/footprint.ts
|
|
1139
1156
|
import { layer_ref as layer_ref4 } from "circuit-json";
|
|
1140
|
-
import { z as
|
|
1141
|
-
var footprintProps =
|
|
1157
|
+
import { z as z50 } from "zod";
|
|
1158
|
+
var footprintProps = z50.object({
|
|
1142
1159
|
originalLayer: layer_ref4.default("top").optional()
|
|
1143
1160
|
});
|
|
1144
1161
|
expectTypesMatch(true);
|
|
1145
1162
|
|
|
1146
1163
|
// lib/components/symbol.ts
|
|
1147
|
-
import { z as
|
|
1148
|
-
var symbolProps =
|
|
1149
|
-
originalFacingDirection:
|
|
1164
|
+
import { z as z51 } from "zod";
|
|
1165
|
+
var symbolProps = z51.object({
|
|
1166
|
+
originalFacingDirection: z51.enum(["up", "down", "left", "right"]).default("right").optional()
|
|
1150
1167
|
});
|
|
1151
1168
|
expectTypesMatch(true);
|
|
1152
1169
|
|
|
1153
1170
|
// lib/components/battery.ts
|
|
1154
1171
|
import { voltage as voltage2 } from "circuit-json";
|
|
1155
|
-
import { z as
|
|
1156
|
-
var capacity =
|
|
1172
|
+
import { z as z52 } from "zod";
|
|
1173
|
+
var capacity = z52.number().or(z52.string().endsWith("mAh")).transform((v) => {
|
|
1157
1174
|
if (typeof v === "string") {
|
|
1158
1175
|
const valString = v.replace("mAh", "");
|
|
1159
1176
|
const num = Number.parseFloat(valString);
|
|
@@ -1167,7 +1184,7 @@ var capacity = z51.number().or(z51.string().endsWith("mAh")).transform((v) => {
|
|
|
1167
1184
|
var batteryProps = commonComponentProps.extend({
|
|
1168
1185
|
capacity: capacity.optional(),
|
|
1169
1186
|
voltage: voltage2.optional(),
|
|
1170
|
-
standard:
|
|
1187
|
+
standard: z52.enum(["AA", "AAA", "9V", "CR2032", "18650", "C"]).optional(),
|
|
1171
1188
|
schOrientation: schematicOrientation.optional()
|
|
1172
1189
|
});
|
|
1173
1190
|
var batteryPins = lrPolarPins;
|
|
@@ -1177,29 +1194,29 @@ expectTypesMatch(true);
|
|
|
1177
1194
|
import { distance as distance14 } from "circuit-json";
|
|
1178
1195
|
|
|
1179
1196
|
// lib/common/pcbOrientation.ts
|
|
1180
|
-
import { z as
|
|
1181
|
-
var pcbOrientation =
|
|
1197
|
+
import { z as z53 } from "zod";
|
|
1198
|
+
var pcbOrientation = z53.enum(["vertical", "horizontal"]).describe(
|
|
1182
1199
|
"vertical means pins go 1->2 downward and horizontal means pins go 1->2 rightward"
|
|
1183
1200
|
);
|
|
1184
1201
|
expectTypesMatch(true);
|
|
1185
1202
|
|
|
1186
1203
|
// lib/components/pin-header.ts
|
|
1187
|
-
import { z as
|
|
1204
|
+
import { z as z54 } from "zod";
|
|
1188
1205
|
var pinHeaderProps = commonComponentProps.extend({
|
|
1189
|
-
pinCount:
|
|
1206
|
+
pinCount: z54.number(),
|
|
1190
1207
|
pitch: distance14.optional(),
|
|
1191
|
-
schFacingDirection:
|
|
1192
|
-
gender:
|
|
1193
|
-
showSilkscreenPinLabels:
|
|
1194
|
-
pcbPinLabels:
|
|
1195
|
-
doubleRow:
|
|
1196
|
-
rightAngle:
|
|
1208
|
+
schFacingDirection: z54.enum(["up", "down", "left", "right"]).optional(),
|
|
1209
|
+
gender: z54.enum(["male", "female", "unpopulated"]).optional().default("male"),
|
|
1210
|
+
showSilkscreenPinLabels: z54.boolean().optional(),
|
|
1211
|
+
pcbPinLabels: z54.record(z54.string(), z54.string()).optional(),
|
|
1212
|
+
doubleRow: z54.boolean().optional(),
|
|
1213
|
+
rightAngle: z54.boolean().optional(),
|
|
1197
1214
|
pcbOrientation: pcbOrientation.optional(),
|
|
1198
1215
|
holeDiameter: distance14.optional(),
|
|
1199
1216
|
platedDiameter: distance14.optional(),
|
|
1200
|
-
pinLabels:
|
|
1201
|
-
connections:
|
|
1202
|
-
facingDirection:
|
|
1217
|
+
pinLabels: z54.record(z54.string(), schematicPinLabel).or(z54.array(schematicPinLabel)).optional(),
|
|
1218
|
+
connections: z54.custom().pipe(z54.record(z54.string(), connectionTarget)).optional(),
|
|
1219
|
+
facingDirection: z54.enum(["left", "right"]).optional(),
|
|
1203
1220
|
schPinArrangement: schematicPinArrangement.optional(),
|
|
1204
1221
|
schPinStyle: schematicPinStyle.optional(),
|
|
1205
1222
|
schPinSpacing: distance14.optional(),
|
|
@@ -1209,29 +1226,29 @@ var pinHeaderProps = commonComponentProps.extend({
|
|
|
1209
1226
|
expectTypesMatch(true);
|
|
1210
1227
|
|
|
1211
1228
|
// lib/components/netalias.ts
|
|
1212
|
-
import { z as
|
|
1229
|
+
import { z as z55 } from "zod";
|
|
1213
1230
|
import { rotation as rotation2 } from "circuit-json";
|
|
1214
|
-
var netAliasProps =
|
|
1215
|
-
net:
|
|
1216
|
-
connection:
|
|
1231
|
+
var netAliasProps = z55.object({
|
|
1232
|
+
net: z55.string().optional(),
|
|
1233
|
+
connection: z55.string().optional(),
|
|
1217
1234
|
schX: distance.optional(),
|
|
1218
1235
|
schY: distance.optional(),
|
|
1219
1236
|
schRotation: rotation2.optional(),
|
|
1220
|
-
anchorSide:
|
|
1237
|
+
anchorSide: z55.enum(["left", "top", "right", "bottom"]).optional()
|
|
1221
1238
|
});
|
|
1222
1239
|
expectTypesMatch(true);
|
|
1223
1240
|
|
|
1224
1241
|
// lib/components/netlabel.ts
|
|
1225
|
-
import { z as
|
|
1242
|
+
import { z as z56 } from "zod";
|
|
1226
1243
|
import { rotation as rotation3 } from "circuit-json";
|
|
1227
|
-
var netLabelProps =
|
|
1228
|
-
net:
|
|
1229
|
-
connection:
|
|
1230
|
-
connectsTo:
|
|
1244
|
+
var netLabelProps = z56.object({
|
|
1245
|
+
net: z56.string().optional(),
|
|
1246
|
+
connection: z56.string().optional(),
|
|
1247
|
+
connectsTo: z56.string().or(z56.array(z56.string())).optional(),
|
|
1231
1248
|
schX: distance.optional(),
|
|
1232
1249
|
schY: distance.optional(),
|
|
1233
1250
|
schRotation: rotation3.optional(),
|
|
1234
|
-
anchorSide:
|
|
1251
|
+
anchorSide: z56.enum(["left", "top", "right", "bottom"]).optional()
|
|
1235
1252
|
});
|
|
1236
1253
|
expectTypesMatch(true);
|
|
1237
1254
|
|
|
@@ -1245,7 +1262,7 @@ var subcircuitProps = subcircuitGroupProps;
|
|
|
1245
1262
|
expectTypesMatch(true);
|
|
1246
1263
|
|
|
1247
1264
|
// lib/components/transistor.ts
|
|
1248
|
-
import { z as
|
|
1265
|
+
import { z as z58 } from "zod";
|
|
1249
1266
|
var transistorPinsLabels = [
|
|
1250
1267
|
"pin1",
|
|
1251
1268
|
"pin2",
|
|
@@ -1258,7 +1275,7 @@ var transistorPinsLabels = [
|
|
|
1258
1275
|
"drain"
|
|
1259
1276
|
];
|
|
1260
1277
|
var transistorProps = commonComponentProps.extend({
|
|
1261
|
-
type:
|
|
1278
|
+
type: z58.enum(["npn", "pnp", "bjt", "jfet", "mosfet", "igbt"]),
|
|
1262
1279
|
connections: createConnectionsProp(transistorPinsLabels).optional()
|
|
1263
1280
|
});
|
|
1264
1281
|
var transistorPins = [
|
|
@@ -1272,10 +1289,10 @@ var transistorPins = [
|
|
|
1272
1289
|
expectTypesMatch(true);
|
|
1273
1290
|
|
|
1274
1291
|
// lib/components/mosfet.ts
|
|
1275
|
-
import { z as
|
|
1292
|
+
import { z as z59 } from "zod";
|
|
1276
1293
|
var mosfetProps = commonComponentProps.extend({
|
|
1277
|
-
channelType:
|
|
1278
|
-
mosfetMode:
|
|
1294
|
+
channelType: z59.enum(["n", "p"]),
|
|
1295
|
+
mosfetMode: z59.enum(["enhancement", "depletion"])
|
|
1279
1296
|
});
|
|
1280
1297
|
var mosfetPins = [
|
|
1281
1298
|
"pin1",
|
|
@@ -1289,19 +1306,19 @@ expectTypesMatch(true);
|
|
|
1289
1306
|
|
|
1290
1307
|
// lib/components/inductor.ts
|
|
1291
1308
|
import { inductance } from "circuit-json";
|
|
1292
|
-
import { z as
|
|
1309
|
+
import { z as z60 } from "zod";
|
|
1293
1310
|
var inductorPins = lrPins;
|
|
1294
1311
|
var inductorProps = commonComponentProps.extend({
|
|
1295
1312
|
inductance,
|
|
1296
|
-
maxCurrentRating:
|
|
1313
|
+
maxCurrentRating: z60.union([z60.string(), z60.number()]).optional(),
|
|
1297
1314
|
schOrientation: schematicOrientation.optional(),
|
|
1298
1315
|
connections: createConnectionsProp(inductorPins).optional()
|
|
1299
1316
|
});
|
|
1300
1317
|
expectTypesMatch(true);
|
|
1301
1318
|
|
|
1302
1319
|
// lib/components/diode.ts
|
|
1303
|
-
import { z as
|
|
1304
|
-
var diodeConnectionKeys =
|
|
1320
|
+
import { z as z61 } from "zod";
|
|
1321
|
+
var diodeConnectionKeys = z61.enum([
|
|
1305
1322
|
"anode",
|
|
1306
1323
|
"cathode",
|
|
1307
1324
|
"pin1",
|
|
@@ -1309,9 +1326,9 @@ var diodeConnectionKeys = z60.enum([
|
|
|
1309
1326
|
"pos",
|
|
1310
1327
|
"neg"
|
|
1311
1328
|
]);
|
|
1312
|
-
var connectionTarget3 =
|
|
1313
|
-
var connectionsProp2 =
|
|
1314
|
-
var diodeVariant =
|
|
1329
|
+
var connectionTarget3 = z61.string().or(z61.array(z61.string()).readonly()).or(z61.array(z61.string()));
|
|
1330
|
+
var connectionsProp2 = z61.record(diodeConnectionKeys, connectionTarget3);
|
|
1331
|
+
var diodeVariant = z61.enum([
|
|
1315
1332
|
"standard",
|
|
1316
1333
|
"schottky",
|
|
1317
1334
|
"zener",
|
|
@@ -1322,12 +1339,12 @@ var diodeVariant = z60.enum([
|
|
|
1322
1339
|
var diodeProps = commonComponentProps.extend({
|
|
1323
1340
|
connections: connectionsProp2.optional(),
|
|
1324
1341
|
variant: diodeVariant.optional().default("standard"),
|
|
1325
|
-
standard:
|
|
1326
|
-
schottky:
|
|
1327
|
-
zener:
|
|
1328
|
-
avalanche:
|
|
1329
|
-
photo:
|
|
1330
|
-
tvs:
|
|
1342
|
+
standard: z61.boolean().optional(),
|
|
1343
|
+
schottky: z61.boolean().optional(),
|
|
1344
|
+
zener: z61.boolean().optional(),
|
|
1345
|
+
avalanche: z61.boolean().optional(),
|
|
1346
|
+
photo: z61.boolean().optional(),
|
|
1347
|
+
tvs: z61.boolean().optional(),
|
|
1331
1348
|
schOrientation: schematicOrientation.optional()
|
|
1332
1349
|
}).superRefine((data, ctx) => {
|
|
1333
1350
|
const enabledFlags = [
|
|
@@ -1340,11 +1357,11 @@ var diodeProps = commonComponentProps.extend({
|
|
|
1340
1357
|
].filter(Boolean).length;
|
|
1341
1358
|
if (enabledFlags > 1) {
|
|
1342
1359
|
ctx.addIssue({
|
|
1343
|
-
code:
|
|
1360
|
+
code: z61.ZodIssueCode.custom,
|
|
1344
1361
|
message: "Exactly one diode variant must be enabled",
|
|
1345
1362
|
path: []
|
|
1346
1363
|
});
|
|
1347
|
-
return
|
|
1364
|
+
return z61.INVALID;
|
|
1348
1365
|
}
|
|
1349
1366
|
}).transform((data) => {
|
|
1350
1367
|
const result = {
|
|
@@ -1391,26 +1408,26 @@ var diodePins = lrPolarPins;
|
|
|
1391
1408
|
expectTypesMatch(true);
|
|
1392
1409
|
|
|
1393
1410
|
// lib/components/led.ts
|
|
1394
|
-
import { z as
|
|
1411
|
+
import { z as z62 } from "zod";
|
|
1395
1412
|
var ledProps = commonComponentProps.extend({
|
|
1396
|
-
color:
|
|
1397
|
-
wavelength:
|
|
1398
|
-
schDisplayValue:
|
|
1413
|
+
color: z62.string().optional(),
|
|
1414
|
+
wavelength: z62.string().optional(),
|
|
1415
|
+
schDisplayValue: z62.string().optional(),
|
|
1399
1416
|
schOrientation: schematicOrientation.optional(),
|
|
1400
1417
|
connections: createConnectionsProp(lrPolarPins).optional(),
|
|
1401
|
-
laser:
|
|
1418
|
+
laser: z62.boolean().optional()
|
|
1402
1419
|
});
|
|
1403
1420
|
var ledPins = lrPolarPins;
|
|
1404
1421
|
|
|
1405
1422
|
// lib/components/switch.ts
|
|
1406
|
-
import { z as
|
|
1423
|
+
import { z as z63 } from "zod";
|
|
1407
1424
|
var switchProps = commonComponentProps.extend({
|
|
1408
|
-
type:
|
|
1409
|
-
isNormallyClosed:
|
|
1410
|
-
spst:
|
|
1411
|
-
spdt:
|
|
1412
|
-
dpst:
|
|
1413
|
-
dpdt:
|
|
1425
|
+
type: z63.enum(["spst", "spdt", "dpst", "dpdt"]).optional(),
|
|
1426
|
+
isNormallyClosed: z63.boolean().optional().default(false),
|
|
1427
|
+
spst: z63.boolean().optional(),
|
|
1428
|
+
spdt: z63.boolean().optional(),
|
|
1429
|
+
dpst: z63.boolean().optional(),
|
|
1430
|
+
dpdt: z63.boolean().optional()
|
|
1414
1431
|
}).transform((props) => {
|
|
1415
1432
|
const updatedProps = { ...props };
|
|
1416
1433
|
if (updatedProps.dpdt) {
|
|
@@ -1442,52 +1459,52 @@ expectTypesMatch(true);
|
|
|
1442
1459
|
|
|
1443
1460
|
// lib/components/fabrication-note-text.ts
|
|
1444
1461
|
import { length as length3 } from "circuit-json";
|
|
1445
|
-
import { z as
|
|
1462
|
+
import { z as z64 } from "zod";
|
|
1446
1463
|
var fabricationNoteTextProps = pcbLayoutProps.extend({
|
|
1447
|
-
text:
|
|
1448
|
-
anchorAlignment:
|
|
1449
|
-
font:
|
|
1464
|
+
text: z64.string(),
|
|
1465
|
+
anchorAlignment: z64.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
|
|
1466
|
+
font: z64.enum(["tscircuit2024"]).optional(),
|
|
1450
1467
|
fontSize: length3.optional(),
|
|
1451
|
-
color:
|
|
1468
|
+
color: z64.string().optional()
|
|
1452
1469
|
});
|
|
1453
1470
|
|
|
1454
1471
|
// lib/components/fabrication-note-path.ts
|
|
1455
1472
|
import { length as length4, route_hint_point as route_hint_point3 } from "circuit-json";
|
|
1456
|
-
import { z as
|
|
1473
|
+
import { z as z65 } from "zod";
|
|
1457
1474
|
var fabricationNotePathProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotation: true }).extend({
|
|
1458
|
-
route:
|
|
1475
|
+
route: z65.array(route_hint_point3),
|
|
1459
1476
|
strokeWidth: length4.optional(),
|
|
1460
|
-
color:
|
|
1477
|
+
color: z65.string().optional()
|
|
1461
1478
|
});
|
|
1462
1479
|
|
|
1463
1480
|
// lib/components/pcb-trace.ts
|
|
1464
1481
|
import { distance as distance15, route_hint_point as route_hint_point4 } from "circuit-json";
|
|
1465
|
-
import { z as
|
|
1466
|
-
var pcbTraceProps =
|
|
1467
|
-
layer:
|
|
1482
|
+
import { z as z66 } from "zod";
|
|
1483
|
+
var pcbTraceProps = z66.object({
|
|
1484
|
+
layer: z66.string().optional(),
|
|
1468
1485
|
thickness: distance15.optional(),
|
|
1469
|
-
route:
|
|
1486
|
+
route: z66.array(route_hint_point4)
|
|
1470
1487
|
});
|
|
1471
1488
|
|
|
1472
1489
|
// lib/components/via.ts
|
|
1473
1490
|
import { distance as distance16, layer_ref as layer_ref5 } from "circuit-json";
|
|
1474
|
-
import { z as
|
|
1491
|
+
import { z as z67 } from "zod";
|
|
1475
1492
|
var viaProps = commonLayoutProps.extend({
|
|
1476
|
-
name:
|
|
1493
|
+
name: z67.string().optional(),
|
|
1477
1494
|
fromLayer: layer_ref5,
|
|
1478
1495
|
toLayer: layer_ref5,
|
|
1479
1496
|
holeDiameter: distance16,
|
|
1480
1497
|
outerDiameter: distance16,
|
|
1481
|
-
connectsTo:
|
|
1498
|
+
connectsTo: z67.string().or(z67.array(z67.string())).optional()
|
|
1482
1499
|
});
|
|
1483
1500
|
expectTypesMatch(true);
|
|
1484
1501
|
|
|
1485
1502
|
// lib/components/testpoint.ts
|
|
1486
1503
|
import { distance as distance17 } from "circuit-json";
|
|
1487
|
-
import { z as
|
|
1504
|
+
import { z as z68 } from "zod";
|
|
1488
1505
|
var testpointProps = commonComponentProps.extend({
|
|
1489
|
-
footprintVariant:
|
|
1490
|
-
padShape:
|
|
1506
|
+
footprintVariant: z68.enum(["pad", "through_hole"]).optional(),
|
|
1507
|
+
padShape: z68.enum(["rect", "circle"]).optional().default("circle"),
|
|
1491
1508
|
padDiameter: distance17.optional(),
|
|
1492
1509
|
holeDiameter: distance17.optional(),
|
|
1493
1510
|
width: distance17.optional(),
|
|
@@ -1499,34 +1516,34 @@ var testpointProps = commonComponentProps.extend({
|
|
|
1499
1516
|
expectTypesMatch(true);
|
|
1500
1517
|
|
|
1501
1518
|
// lib/components/breakoutpoint.ts
|
|
1502
|
-
import { z as
|
|
1519
|
+
import { z as z69 } from "zod";
|
|
1503
1520
|
var breakoutPointProps = pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({
|
|
1504
|
-
connection:
|
|
1521
|
+
connection: z69.string()
|
|
1505
1522
|
});
|
|
1506
1523
|
expectTypesMatch(true);
|
|
1507
1524
|
|
|
1508
1525
|
// lib/components/pcb-keepout.ts
|
|
1509
1526
|
import { distance as distance18 } from "circuit-json";
|
|
1510
|
-
import { z as
|
|
1511
|
-
var pcbKeepoutProps =
|
|
1527
|
+
import { z as z70 } from "zod";
|
|
1528
|
+
var pcbKeepoutProps = z70.union([
|
|
1512
1529
|
pcbLayoutProps.omit({ pcbRotation: true }).extend({
|
|
1513
|
-
shape:
|
|
1530
|
+
shape: z70.literal("circle"),
|
|
1514
1531
|
radius: distance18
|
|
1515
1532
|
}),
|
|
1516
1533
|
pcbLayoutProps.extend({
|
|
1517
|
-
shape:
|
|
1534
|
+
shape: z70.literal("rect"),
|
|
1518
1535
|
width: distance18,
|
|
1519
1536
|
height: distance18
|
|
1520
1537
|
})
|
|
1521
1538
|
]);
|
|
1522
1539
|
|
|
1523
1540
|
// lib/components/copper-pour.ts
|
|
1524
|
-
import { z as
|
|
1541
|
+
import { z as z71 } from "zod";
|
|
1525
1542
|
import { layer_ref as layer_ref6 } from "circuit-json";
|
|
1526
|
-
var copperPourProps =
|
|
1527
|
-
name:
|
|
1543
|
+
var copperPourProps = z71.object({
|
|
1544
|
+
name: z71.string().optional(),
|
|
1528
1545
|
layer: layer_ref6,
|
|
1529
|
-
connectsTo:
|
|
1546
|
+
connectsTo: z71.string(),
|
|
1530
1547
|
padMargin: distance.optional(),
|
|
1531
1548
|
traceMargin: distance.optional()
|
|
1532
1549
|
});
|
|
@@ -1534,26 +1551,26 @@ expectTypesMatch(true);
|
|
|
1534
1551
|
|
|
1535
1552
|
// lib/components/cadassembly.ts
|
|
1536
1553
|
import { layer_ref as layer_ref7 } from "circuit-json";
|
|
1537
|
-
import { z as
|
|
1538
|
-
var cadassemblyProps =
|
|
1554
|
+
import { z as z72 } from "zod";
|
|
1555
|
+
var cadassemblyProps = z72.object({
|
|
1539
1556
|
originalLayer: layer_ref7.default("top").optional(),
|
|
1540
|
-
children:
|
|
1557
|
+
children: z72.any().optional()
|
|
1541
1558
|
});
|
|
1542
1559
|
expectTypesMatch(true);
|
|
1543
1560
|
|
|
1544
1561
|
// lib/components/cadmodel.ts
|
|
1545
|
-
import { z as
|
|
1546
|
-
var pcbPosition =
|
|
1562
|
+
import { z as z73 } from "zod";
|
|
1563
|
+
var pcbPosition = z73.object({
|
|
1547
1564
|
pcbX: distance.optional(),
|
|
1548
1565
|
pcbY: distance.optional(),
|
|
1549
1566
|
pcbZ: distance.optional()
|
|
1550
1567
|
});
|
|
1551
1568
|
var cadModelBaseWithUrl = cadModelBase.extend({
|
|
1552
|
-
modelUrl:
|
|
1569
|
+
modelUrl: z73.string()
|
|
1553
1570
|
});
|
|
1554
1571
|
var cadModelObject = cadModelBaseWithUrl.merge(pcbPosition);
|
|
1555
1572
|
expectTypesMatch(true);
|
|
1556
|
-
var cadmodelProps =
|
|
1573
|
+
var cadmodelProps = z73.union([z73.null(), z73.string(), cadModelObject]);
|
|
1557
1574
|
|
|
1558
1575
|
// lib/components/power-source.ts
|
|
1559
1576
|
import { voltage as voltage3 } from "circuit-json";
|
|
@@ -1563,9 +1580,9 @@ var powerSourceProps = commonComponentProps.extend({
|
|
|
1563
1580
|
|
|
1564
1581
|
// lib/components/voltagesource.ts
|
|
1565
1582
|
import { frequency as frequency3, rotation as rotation4, voltage as voltage4 } from "circuit-json";
|
|
1566
|
-
import { z as
|
|
1583
|
+
import { z as z74 } from "zod";
|
|
1567
1584
|
var voltageSourcePinLabels = ["pin1", "pin2", "pos", "neg"];
|
|
1568
|
-
var percentage =
|
|
1585
|
+
var percentage = z74.union([z74.string(), z74.number()]).transform((val) => {
|
|
1569
1586
|
if (typeof val === "string") {
|
|
1570
1587
|
if (val.endsWith("%")) {
|
|
1571
1588
|
return parseFloat(val.slice(0, -1)) / 100;
|
|
@@ -1574,13 +1591,13 @@ var percentage = z73.union([z73.string(), z73.number()]).transform((val) => {
|
|
|
1574
1591
|
}
|
|
1575
1592
|
return val;
|
|
1576
1593
|
}).pipe(
|
|
1577
|
-
|
|
1594
|
+
z74.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
|
|
1578
1595
|
);
|
|
1579
1596
|
var voltageSourceProps = commonComponentProps.extend({
|
|
1580
1597
|
voltage: voltage4.optional(),
|
|
1581
1598
|
frequency: frequency3.optional(),
|
|
1582
1599
|
peakToPeakVoltage: voltage4.optional(),
|
|
1583
|
-
waveShape:
|
|
1600
|
+
waveShape: z74.enum(["sinewave", "square", "triangle", "sawtooth"]).optional(),
|
|
1584
1601
|
phase: rotation4.optional(),
|
|
1585
1602
|
dutyCycle: percentage.optional(),
|
|
1586
1603
|
connections: createConnectionsProp(voltageSourcePinLabels).optional()
|
|
@@ -1591,22 +1608,6 @@ expectTypesMatch(true);
|
|
|
1591
1608
|
// lib/components/schematic-box.ts
|
|
1592
1609
|
import { distance as distance19 } from "circuit-json";
|
|
1593
1610
|
import { z as z75 } from "zod";
|
|
1594
|
-
|
|
1595
|
-
// lib/common/ninePointAnchor.ts
|
|
1596
|
-
import { z as z74 } from "zod";
|
|
1597
|
-
var ninePointAnchor = z74.enum([
|
|
1598
|
-
"top_left",
|
|
1599
|
-
"top_center",
|
|
1600
|
-
"top_right",
|
|
1601
|
-
"center_left",
|
|
1602
|
-
"center",
|
|
1603
|
-
"center_right",
|
|
1604
|
-
"bottom_left",
|
|
1605
|
-
"bottom_center",
|
|
1606
|
-
"bottom_right"
|
|
1607
|
-
]);
|
|
1608
|
-
|
|
1609
|
-
// lib/components/schematic-box.ts
|
|
1610
1611
|
var schematicBoxProps = z75.object({
|
|
1611
1612
|
schX: distance19.optional(),
|
|
1612
1613
|
schY: distance19.optional(),
|
|
@@ -1813,6 +1814,11 @@ var footprintLibraryResult = z89.object({
|
|
|
1813
1814
|
cadModel: cadModelProp.optional()
|
|
1814
1815
|
});
|
|
1815
1816
|
var pathToCircuitJsonFn = z89.function().args(z89.string()).returns(z89.promise(footprintLibraryResult)).describe("A function that takes a path and returns Circuit JSON");
|
|
1817
|
+
var footprintFileParserEntry = z89.object({
|
|
1818
|
+
loadFromUrl: z89.function().args(z89.string()).returns(z89.promise(footprintLibraryResult)).describe(
|
|
1819
|
+
"A function that takes a footprint file URL and returns Circuit JSON"
|
|
1820
|
+
)
|
|
1821
|
+
});
|
|
1816
1822
|
var platformConfig = z89.object({
|
|
1817
1823
|
partsEngine: partsEngine.optional(),
|
|
1818
1824
|
autorouter: autorouterProp.optional(),
|
|
@@ -1836,7 +1842,8 @@ var platformConfig = z89.object({
|
|
|
1836
1842
|
z89.union([unvalidatedCircuitJson, pathToCircuitJsonFn])
|
|
1837
1843
|
)
|
|
1838
1844
|
])
|
|
1839
|
-
).optional()
|
|
1845
|
+
).optional(),
|
|
1846
|
+
footprintFileParserMap: z89.record(z89.string(), footprintFileParserEntry).optional()
|
|
1840
1847
|
});
|
|
1841
1848
|
expectTypesMatch(true);
|
|
1842
1849
|
|