circuit-json 0.0.84 → 0.0.86

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -170,6 +170,17 @@ var rotation = z.string().or(z.number()).transform((arg) => {
170
170
  }
171
171
  return Number.parseFloat(arg);
172
172
  });
173
+ var battery_capacity = z.number().or(z.string().endsWith("mAh")).transform((v) => {
174
+ if (typeof v === "string") {
175
+ const valString = v.replace("mAh", "");
176
+ const num = Number.parseFloat(valString);
177
+ if (Number.isNaN(num)) {
178
+ throw new Error("Invalid capacity");
179
+ }
180
+ return num;
181
+ }
182
+ return v;
183
+ }).describe("Battery capacity in mAh");
173
184
 
174
185
  // src/common/point.ts
175
186
  import { z as z2 } from "zod";
@@ -224,7 +235,8 @@ var source_component_base = z7.object({
224
235
  source_component_id: z7.string(),
225
236
  name: z7.string(),
226
237
  manufacturer_part_number: z7.string().optional(),
227
- supplier_part_numbers: z7.record(supplier_name, z7.array(z7.string())).optional()
238
+ supplier_part_numbers: z7.record(supplier_name, z7.array(z7.string())).optional(),
239
+ display_value: z7.string().optional()
228
240
  });
229
241
 
230
242
  // src/source/source_simple_capacitor.ts
@@ -285,8 +297,17 @@ var source_simple_power_source = source_component_base.extend({
285
297
  });
286
298
 
287
299
  // src/source/any_source_component.ts
300
+ import { z as z18 } from "zod";
301
+
302
+ // src/source/source_simple_battery.ts
288
303
  import { z as z17 } from "zod";
289
- var any_source_component = z17.union([
304
+ var source_simple_battery = source_component_base.extend({
305
+ ftype: z17.literal("simple_battery"),
306
+ capacity: battery_capacity
307
+ });
308
+
309
+ // src/source/any_source_component.ts
310
+ var any_source_component = z18.union([
290
311
  source_simple_resistor,
291
312
  source_simple_capacitor,
292
313
  source_simple_diode,
@@ -294,56 +315,57 @@ var any_source_component = z17.union([
294
315
  source_simple_chip,
295
316
  source_simple_bug,
296
317
  source_led,
297
- source_simple_power_source
318
+ source_simple_power_source,
319
+ source_simple_battery
298
320
  ]);
299
321
 
300
322
  // src/source/source_port.ts
301
- import { z as z18 } from "zod";
302
- var source_port = z18.object({
303
- type: z18.literal("source_port"),
304
- pin_number: z18.number().optional(),
305
- port_hints: z18.array(z18.string()).optional(),
306
- name: z18.string(),
307
- source_port_id: z18.string(),
308
- source_component_id: z18.string()
323
+ import { z as z19 } from "zod";
324
+ var source_port = z19.object({
325
+ type: z19.literal("source_port"),
326
+ pin_number: z19.number().optional(),
327
+ port_hints: z19.array(z19.string()).optional(),
328
+ name: z19.string(),
329
+ source_port_id: z19.string(),
330
+ source_component_id: z19.string()
309
331
  });
310
332
 
311
333
  // src/source/source_trace.ts
312
- import { z as z19 } from "zod";
313
- var source_trace = z19.object({
314
- type: z19.literal("source_trace"),
315
- source_trace_id: z19.string(),
316
- connected_source_port_ids: z19.array(z19.string()),
317
- connected_source_net_ids: z19.array(z19.string())
334
+ import { z as z20 } from "zod";
335
+ var source_trace = z20.object({
336
+ type: z20.literal("source_trace"),
337
+ source_trace_id: z20.string(),
338
+ connected_source_port_ids: z20.array(z20.string()),
339
+ connected_source_net_ids: z20.array(z20.string())
318
340
  });
319
341
 
320
342
  // src/source/source_group.ts
321
- import { z as z20 } from "zod";
322
- var source_group = z20.object({
323
- type: z20.literal("source_group"),
324
- source_group_id: z20.string(),
325
- name: z20.string().optional()
343
+ import { z as z21 } from "zod";
344
+ var source_group = z21.object({
345
+ type: z21.literal("source_group"),
346
+ source_group_id: z21.string(),
347
+ name: z21.string().optional()
326
348
  });
327
349
 
328
350
  // src/source/source_net.ts
329
- import { z as z21 } from "zod";
330
- var source_net = z21.object({
331
- type: z21.literal("source_net"),
332
- source_net_id: z21.string(),
333
- name: z21.string(),
334
- member_source_group_ids: z21.array(z21.string()),
335
- is_power: z21.boolean().optional(),
336
- is_ground: z21.boolean().optional(),
337
- is_digital_signal: z21.boolean().optional(),
338
- is_analog_signal: z21.boolean().optional(),
339
- trace_width: z21.number().optional()
351
+ import { z as z22 } from "zod";
352
+ var source_net = z22.object({
353
+ type: z22.literal("source_net"),
354
+ source_net_id: z22.string(),
355
+ name: z22.string(),
356
+ member_source_group_ids: z22.array(z22.string()),
357
+ is_power: z22.boolean().optional(),
358
+ is_ground: z22.boolean().optional(),
359
+ is_digital_signal: z22.boolean().optional(),
360
+ is_analog_signal: z22.boolean().optional(),
361
+ trace_width: z22.number().optional()
340
362
  });
341
363
 
342
364
  // src/schematic/schematic_box.ts
343
- import { z as z22 } from "zod";
344
- var schematic_box = z22.object({
345
- type: z22.literal("schematic_box"),
346
- schematic_component_id: z22.string(),
365
+ import { z as z23 } from "zod";
366
+ var schematic_box = z23.object({
367
+ type: z23.literal("schematic_box"),
368
+ schematic_component_id: z23.string(),
347
369
  width: distance,
348
370
  height: distance,
349
371
  x: distance,
@@ -351,70 +373,70 @@ var schematic_box = z22.object({
351
373
  }).describe("Draws a box on the schematic");
352
374
 
353
375
  // src/schematic/schematic_path.ts
354
- import { z as z23 } from "zod";
355
- var schematic_path = z23.object({
356
- type: z23.literal("schematic_path"),
357
- schematic_component_id: z23.string(),
358
- fill_color: z23.enum(["red", "blue"]).optional(),
359
- is_filled: z23.boolean().optional(),
360
- points: z23.array(point)
376
+ import { z as z24 } from "zod";
377
+ var schematic_path = z24.object({
378
+ type: z24.literal("schematic_path"),
379
+ schematic_component_id: z24.string(),
380
+ fill_color: z24.enum(["red", "blue"]).optional(),
381
+ is_filled: z24.boolean().optional(),
382
+ points: z24.array(point)
361
383
  });
362
384
 
363
385
  // src/schematic/schematic_component.ts
364
- import { z as z24 } from "zod";
365
- var schematic_pin_styles = z24.record(
366
- z24.object({
386
+ import { z as z25 } from "zod";
387
+ var schematic_pin_styles = z25.record(
388
+ z25.object({
367
389
  left_margin: length.optional(),
368
390
  right_margin: length.optional(),
369
391
  top_margin: length.optional(),
370
392
  bottom_margin: length.optional()
371
393
  })
372
394
  );
373
- var schematic_component = z24.object({
374
- type: z24.literal("schematic_component"),
395
+ var schematic_component = z25.object({
396
+ type: z25.literal("schematic_component"),
375
397
  rotation: rotation.default(0),
376
398
  size,
377
399
  center: point,
378
- source_component_id: z24.string(),
379
- schematic_component_id: z24.string(),
400
+ source_component_id: z25.string(),
401
+ schematic_component_id: z25.string(),
380
402
  pin_spacing: length.optional(),
381
403
  pin_styles: schematic_pin_styles.optional(),
382
404
  box_width: length.optional(),
383
- symbol_name: z24.string().optional(),
384
- port_arrangement: z24.union([
385
- z24.object({
386
- left_size: z24.number(),
387
- right_size: z24.number(),
388
- top_size: z24.number().optional(),
389
- bottom_size: z24.number().optional()
405
+ symbol_name: z25.string().optional(),
406
+ port_arrangement: z25.union([
407
+ z25.object({
408
+ left_size: z25.number(),
409
+ right_size: z25.number(),
410
+ top_size: z25.number().optional(),
411
+ bottom_size: z25.number().optional()
390
412
  }),
391
- z24.object({
392
- left_side: z24.object({
393
- pins: z24.array(z24.number()),
394
- direction: z24.enum(["top-to-bottom", "bottom-to-top"]).optional()
413
+ z25.object({
414
+ left_side: z25.object({
415
+ pins: z25.array(z25.number()),
416
+ direction: z25.enum(["top-to-bottom", "bottom-to-top"]).optional()
395
417
  }).optional(),
396
- right_side: z24.object({
397
- pins: z24.array(z24.number()),
398
- direction: z24.enum(["top-to-bottom", "bottom-to-top"]).optional()
418
+ right_side: z25.object({
419
+ pins: z25.array(z25.number()),
420
+ direction: z25.enum(["top-to-bottom", "bottom-to-top"]).optional()
399
421
  }).optional(),
400
- top_side: z24.object({
401
- pins: z24.array(z24.number()),
402
- direction: z24.enum(["left-to-right", "right-to-left"]).optional()
422
+ top_side: z25.object({
423
+ pins: z25.array(z25.number()),
424
+ direction: z25.enum(["left-to-right", "right-to-left"]).optional()
403
425
  }).optional(),
404
- bottom_side: z24.object({
405
- pins: z24.array(z24.number()),
406
- direction: z24.enum(["left-to-right", "right-to-left"]).optional()
426
+ bottom_side: z25.object({
427
+ pins: z25.array(z25.number()),
428
+ direction: z25.enum(["left-to-right", "right-to-left"]).optional()
407
429
  }).optional()
408
430
  })
409
431
  ]).optional(),
410
- port_labels: z24.record(z24.string()).optional()
432
+ port_labels: z25.record(z25.string()).optional()
411
433
  });
412
434
 
413
435
  // src/schematic/schematic_line.ts
414
- import { z as z25 } from "zod";
415
- var schematic_line = z25.object({
416
- type: z25.literal("schematic_line"),
417
- schematic_component_id: z25.string(),
436
+ import { z as z26 } from "zod";
437
+ var schematic_line = z26.object({
438
+ type: z26.literal("schematic_line"),
439
+ schematic_component_id: z26.string(),
418
440
  x1: distance,
419
441
  x2: distance,
420
442
  y1: distance,
@@ -422,75 +444,75 @@ var schematic_line = z25.object({
422
444
  });
423
445
 
424
446
  // src/schematic/schematic_trace.ts
425
- import { z as z26 } from "zod";
426
- var schematic_trace = z26.object({
427
- type: z26.literal("schematic_trace"),
428
- schematic_trace_id: z26.string(),
429
- source_trace_id: z26.string(),
430
- edges: z26.array(
431
- z26.object({
432
- from: z26.object({
433
- x: z26.number(),
434
- y: z26.number()
447
+ import { z as z27 } from "zod";
448
+ var schematic_trace = z27.object({
449
+ type: z27.literal("schematic_trace"),
450
+ schematic_trace_id: z27.string(),
451
+ source_trace_id: z27.string(),
452
+ edges: z27.array(
453
+ z27.object({
454
+ from: z27.object({
455
+ x: z27.number(),
456
+ y: z27.number()
435
457
  }),
436
- to: z26.object({
437
- x: z26.number(),
438
- y: z26.number()
458
+ to: z27.object({
459
+ x: z27.number(),
460
+ y: z27.number()
439
461
  }),
440
- from_schematic_port_id: z26.string().optional(),
441
- to_schematic_port_id: z26.string().optional()
462
+ from_schematic_port_id: z27.string().optional(),
463
+ to_schematic_port_id: z27.string().optional()
442
464
  })
443
465
  )
444
466
  });
445
467
 
446
468
  // src/schematic/schematic_text.ts
447
- import { z as z27 } from "zod";
448
- var schematic_text = z27.object({
449
- type: z27.literal("schematic_text"),
450
- schematic_component_id: z27.string(),
451
- schematic_text_id: z27.string(),
452
- text: z27.string(),
453
- position: z27.object({
469
+ import { z as z28 } from "zod";
470
+ var schematic_text = z28.object({
471
+ type: z28.literal("schematic_text"),
472
+ schematic_component_id: z28.string(),
473
+ schematic_text_id: z28.string(),
474
+ text: z28.string(),
475
+ position: z28.object({
454
476
  x: distance,
455
477
  y: distance
456
478
  }),
457
- rotation: z27.number().default(0),
458
- anchor: z27.enum(["center", "left", "right", "top", "bottom"]).default("center")
479
+ rotation: z28.number().default(0),
480
+ anchor: z28.enum(["center", "left", "right", "top", "bottom"]).default("center")
459
481
  });
460
482
 
461
483
  // src/schematic/schematic_port.ts
462
- import { z as z28 } from "zod";
463
- var schematic_port = z28.object({
464
- type: z28.literal("schematic_port"),
465
- schematic_port_id: z28.string(),
466
- source_port_id: z28.string(),
467
- schematic_component_id: z28.string().optional(),
484
+ import { z as z29 } from "zod";
485
+ var schematic_port = z29.object({
486
+ type: z29.literal("schematic_port"),
487
+ schematic_port_id: z29.string(),
488
+ source_port_id: z29.string(),
489
+ schematic_component_id: z29.string().optional(),
468
490
  center: point,
469
- facing_direction: z28.enum(["up", "down", "left", "right"]).optional()
491
+ facing_direction: z29.enum(["up", "down", "left", "right"]).optional()
470
492
  }).describe("Defines a port on a schematic component");
471
493
 
472
494
  // src/schematic/schematic_net_label.ts
473
- import { z as z29 } from "zod";
474
- var schematic_net_label = z29.object({
475
- type: z29.literal("schematic_net_label"),
476
- source_net_id: z29.string(),
495
+ import { z as z30 } from "zod";
496
+ var schematic_net_label = z30.object({
497
+ type: z30.literal("schematic_net_label"),
498
+ source_net_id: z30.string(),
477
499
  center: point,
478
- anchor_side: z29.enum(["top", "bottom", "left", "right"]),
479
- text: z29.string()
500
+ anchor_side: z30.enum(["top", "bottom", "left", "right"]),
501
+ text: z30.string()
480
502
  });
481
503
 
482
504
  // src/schematic/schematic_error.ts
483
- import { z as z30 } from "zod";
484
- var schematic_error = z30.object({
485
- schematic_error_id: z30.string(),
486
- type: z30.literal("schematic_error"),
505
+ import { z as z31 } from "zod";
506
+ var schematic_error = z31.object({
507
+ schematic_error_id: z31.string(),
508
+ type: z31.literal("schematic_error"),
487
509
  // eventually each error type should be broken out into a dir of files
488
- error_type: z30.literal("schematic_port_not_found"),
489
- message: z30.string()
510
+ error_type: z31.literal("schematic_port_not_found"),
511
+ message: z31.string()
490
512
  }).describe("Defines a schematic error on the schematic");
491
513
 
492
514
  // src/pcb/properties/layer_ref.ts
493
- import { z as z31 } from "zod";
515
+ import { z as z32 } from "zod";
494
516
  var all_layers = [
495
517
  "top",
496
518
  "bottom",
@@ -501,9 +523,9 @@ var all_layers = [
501
523
  "inner5",
502
524
  "inner6"
503
525
  ];
504
- var layer_string = z31.enum(all_layers);
526
+ var layer_string = z32.enum(all_layers);
505
527
  var layer_ref = layer_string.or(
506
- z31.object({
528
+ z32.object({
507
529
  name: layer_string
508
530
  })
509
531
  ).transform((layer) => {
@@ -512,40 +534,40 @@ var layer_ref = layer_string.or(
512
534
  }
513
535
  return layer.name;
514
536
  });
515
- var visible_layer = z31.enum(["top", "bottom"]);
537
+ var visible_layer = z32.enum(["top", "bottom"]);
516
538
 
517
539
  // src/pcb/properties/pcb_route_hints.ts
518
- import { z as z32 } from "zod";
519
- var pcb_route_hint = z32.object({
540
+ import { z as z33 } from "zod";
541
+ var pcb_route_hint = z33.object({
520
542
  x: distance,
521
543
  y: distance,
522
- via: z32.boolean().optional(),
544
+ via: z33.boolean().optional(),
523
545
  via_to_layer: layer_ref.optional()
524
546
  });
525
- var pcb_route_hints = z32.array(pcb_route_hint);
547
+ var pcb_route_hints = z33.array(pcb_route_hint);
526
548
 
527
549
  // src/pcb/properties/route_hint_point.ts
528
- import { z as z33 } from "zod";
529
- var route_hint_point = z33.object({
550
+ import { z as z34 } from "zod";
551
+ var route_hint_point = z34.object({
530
552
  x: distance,
531
553
  y: distance,
532
- via: z33.boolean().optional(),
554
+ via: z34.boolean().optional(),
533
555
  to_layer: layer_ref.optional(),
534
556
  trace_width: distance.optional()
535
557
  });
536
558
 
537
559
  // src/pcb/pcb_component.ts
538
- import { z as z34 } from "zod";
560
+ import { z as z35 } from "zod";
539
561
 
540
562
  // src/utils/expect-types-match.ts
541
563
  var expectTypesMatch = (shouldBe) => {
542
564
  };
543
565
 
544
566
  // src/pcb/pcb_component.ts
545
- var pcb_component = z34.object({
546
- type: z34.literal("pcb_component"),
567
+ var pcb_component = z35.object({
568
+ type: z35.literal("pcb_component"),
547
569
  pcb_component_id: getZodPrefixedIdWithDefault("pcb_component"),
548
- source_component_id: z34.string(),
570
+ source_component_id: z35.string(),
549
571
  center: point,
550
572
  layer: layer_ref,
551
573
  rotation,
@@ -555,12 +577,12 @@ var pcb_component = z34.object({
555
577
  expectTypesMatch(true);
556
578
 
557
579
  // src/pcb/pcb_hole.ts
558
- import { z as z35 } from "zod";
559
- var pcb_hole_circle_or_square = z35.object({
560
- type: z35.literal("pcb_hole"),
580
+ import { z as z36 } from "zod";
581
+ var pcb_hole_circle_or_square = z36.object({
582
+ type: z36.literal("pcb_hole"),
561
583
  pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
562
- hole_shape: z35.enum(["circle", "square"]),
563
- hole_diameter: z35.number(),
584
+ hole_shape: z36.enum(["circle", "square"]),
585
+ hole_diameter: z36.number(),
564
586
  x: distance,
565
587
  y: distance
566
588
  });
@@ -568,12 +590,12 @@ var pcb_hole_circle_or_square_shape = pcb_hole_circle_or_square.describe(
568
590
  "Defines a circular or square hole on the PCB"
569
591
  );
570
592
  expectTypesMatch(true);
571
- var pcb_hole_oval = z35.object({
572
- type: z35.literal("pcb_hole"),
593
+ var pcb_hole_oval = z36.object({
594
+ type: z36.literal("pcb_hole"),
573
595
  pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
574
- hole_shape: z35.literal("oval"),
575
- hole_width: z35.number(),
576
- hole_height: z35.number(),
596
+ hole_shape: z36.literal("oval"),
597
+ hole_width: z36.number(),
598
+ hole_height: z36.number(),
577
599
  x: distance,
578
600
  y: distance
579
601
  });
@@ -584,36 +606,36 @@ expectTypesMatch(true);
584
606
  var pcb_hole = pcb_hole_circle_or_square.or(pcb_hole_oval);
585
607
 
586
608
  // src/pcb/pcb_plated_hole.ts
587
- import { z as z36 } from "zod";
588
- var pcb_plated_hole_circle = z36.object({
589
- type: z36.literal("pcb_plated_hole"),
590
- shape: z36.literal("circle"),
591
- outer_diameter: z36.number(),
592
- hole_diameter: z36.number(),
609
+ import { z as z37 } from "zod";
610
+ var pcb_plated_hole_circle = z37.object({
611
+ type: z37.literal("pcb_plated_hole"),
612
+ shape: z37.literal("circle"),
613
+ outer_diameter: z37.number(),
614
+ hole_diameter: z37.number(),
593
615
  x: distance,
594
616
  y: distance,
595
- layers: z36.array(layer_ref),
596
- port_hints: z36.array(z36.string()).optional(),
597
- pcb_component_id: z36.string().optional(),
598
- pcb_port_id: z36.string().optional(),
617
+ layers: z37.array(layer_ref),
618
+ port_hints: z37.array(z37.string()).optional(),
619
+ pcb_component_id: z37.string().optional(),
620
+ pcb_port_id: z37.string().optional(),
599
621
  pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole")
600
622
  });
601
- var pcb_plated_hole_oval = z36.object({
602
- type: z36.literal("pcb_plated_hole"),
603
- shape: z36.enum(["oval", "pill"]),
604
- outer_width: z36.number(),
605
- outer_height: z36.number(),
606
- hole_width: z36.number(),
607
- hole_height: z36.number(),
623
+ var pcb_plated_hole_oval = z37.object({
624
+ type: z37.literal("pcb_plated_hole"),
625
+ shape: z37.enum(["oval", "pill"]),
626
+ outer_width: z37.number(),
627
+ outer_height: z37.number(),
628
+ hole_width: z37.number(),
629
+ hole_height: z37.number(),
608
630
  x: distance,
609
631
  y: distance,
610
- layers: z36.array(layer_ref),
611
- port_hints: z36.array(z36.string()).optional(),
612
- pcb_component_id: z36.string().optional(),
613
- pcb_port_id: z36.string().optional(),
632
+ layers: z37.array(layer_ref),
633
+ port_hints: z37.array(z37.string()).optional(),
634
+ pcb_component_id: z37.string().optional(),
635
+ pcb_port_id: z37.string().optional(),
614
636
  pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole")
615
637
  });
616
- var pcb_plated_hole = z36.union([
638
+ var pcb_plated_hole = z37.union([
617
639
  pcb_plated_hole_circle,
618
640
  pcb_plated_hole_oval
619
641
  ]);
@@ -623,140 +645,140 @@ expectTypesMatch(
623
645
  expectTypesMatch(true);
624
646
 
625
647
  // src/pcb/pcb_port.ts
626
- import { z as z37 } from "zod";
627
- var pcb_port = z37.object({
628
- type: z37.literal("pcb_port"),
648
+ import { z as z38 } from "zod";
649
+ var pcb_port = z38.object({
650
+ type: z38.literal("pcb_port"),
629
651
  pcb_port_id: getZodPrefixedIdWithDefault("pcb_port"),
630
- source_port_id: z37.string(),
631
- pcb_component_id: z37.string(),
652
+ source_port_id: z38.string(),
653
+ pcb_component_id: z38.string(),
632
654
  x: distance,
633
655
  y: distance,
634
- layers: z37.array(layer_ref)
656
+ layers: z38.array(layer_ref)
635
657
  }).describe("Defines a port on the PCB");
636
658
  expectTypesMatch(true);
637
659
 
638
660
  // src/pcb/pcb_smtpad.ts
639
- import { z as z38 } from "zod";
640
- var pcb_smtpad_circle = z38.object({
641
- type: z38.literal("pcb_smtpad"),
642
- shape: z38.literal("circle"),
661
+ import { z as z39 } from "zod";
662
+ var pcb_smtpad_circle = z39.object({
663
+ type: z39.literal("pcb_smtpad"),
664
+ shape: z39.literal("circle"),
643
665
  pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
644
666
  x: distance,
645
667
  y: distance,
646
- radius: z38.number(),
668
+ radius: z39.number(),
647
669
  layer: layer_ref,
648
- port_hints: z38.array(z38.string()).optional(),
649
- pcb_component_id: z38.string().optional(),
650
- pcb_port_id: z38.string().optional()
670
+ port_hints: z39.array(z39.string()).optional(),
671
+ pcb_component_id: z39.string().optional(),
672
+ pcb_port_id: z39.string().optional()
651
673
  });
652
- var pcb_smtpad_rect = z38.object({
653
- type: z38.literal("pcb_smtpad"),
654
- shape: z38.literal("rect"),
674
+ var pcb_smtpad_rect = z39.object({
675
+ type: z39.literal("pcb_smtpad"),
676
+ shape: z39.literal("rect"),
655
677
  pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
656
678
  x: distance,
657
679
  y: distance,
658
- width: z38.number(),
659
- height: z38.number(),
680
+ width: z39.number(),
681
+ height: z39.number(),
660
682
  layer: layer_ref,
661
- port_hints: z38.array(z38.string()).optional(),
662
- pcb_component_id: z38.string().optional(),
663
- pcb_port_id: z38.string().optional()
683
+ port_hints: z39.array(z39.string()).optional(),
684
+ pcb_component_id: z39.string().optional(),
685
+ pcb_port_id: z39.string().optional()
664
686
  });
665
- var pcb_smtpad = z38.union([pcb_smtpad_circle, pcb_smtpad_rect]).describe("Defines an SMT pad on the PCB");
687
+ var pcb_smtpad = z39.union([pcb_smtpad_circle, pcb_smtpad_rect]).describe("Defines an SMT pad on the PCB");
666
688
  expectTypesMatch(true);
667
689
  expectTypesMatch(true);
668
690
 
669
691
  // src/pcb/pcb_solder_paste.ts
670
- import { z as z39 } from "zod";
671
- var pcb_solder_paste_circle = z39.object({
672
- type: z39.literal("pcb_solder_paste"),
673
- shape: z39.literal("circle"),
692
+ import { z as z40 } from "zod";
693
+ var pcb_solder_paste_circle = z40.object({
694
+ type: z40.literal("pcb_solder_paste"),
695
+ shape: z40.literal("circle"),
674
696
  pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
675
697
  x: distance,
676
698
  y: distance,
677
- radius: z39.number(),
699
+ radius: z40.number(),
678
700
  layer: layer_ref,
679
- pcb_component_id: z39.string().optional(),
680
- pcb_smtpad_id: z39.string().optional()
701
+ pcb_component_id: z40.string().optional(),
702
+ pcb_smtpad_id: z40.string().optional()
681
703
  });
682
- var pcb_solder_paste_rect = z39.object({
683
- type: z39.literal("pcb_solder_paste"),
684
- shape: z39.literal("rect"),
704
+ var pcb_solder_paste_rect = z40.object({
705
+ type: z40.literal("pcb_solder_paste"),
706
+ shape: z40.literal("rect"),
685
707
  pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
686
708
  x: distance,
687
709
  y: distance,
688
- width: z39.number(),
689
- height: z39.number(),
710
+ width: z40.number(),
711
+ height: z40.number(),
690
712
  layer: layer_ref,
691
- pcb_component_id: z39.string().optional(),
692
- pcb_smtpad_id: z39.string().optional()
713
+ pcb_component_id: z40.string().optional(),
714
+ pcb_smtpad_id: z40.string().optional()
693
715
  });
694
- var pcb_solder_paste = z39.union([pcb_solder_paste_circle, pcb_solder_paste_rect]).describe("Defines solderpaste on the PCB");
716
+ var pcb_solder_paste = z40.union([pcb_solder_paste_circle, pcb_solder_paste_rect]).describe("Defines solderpaste on the PCB");
695
717
  expectTypesMatch(true);
696
718
  expectTypesMatch(true);
697
719
 
698
720
  // src/pcb/pcb_text.ts
699
- import { z as z40 } from "zod";
700
- var pcb_text = z40.object({
701
- type: z40.literal("pcb_text"),
721
+ import { z as z41 } from "zod";
722
+ var pcb_text = z41.object({
723
+ type: z41.literal("pcb_text"),
702
724
  pcb_text_id: getZodPrefixedIdWithDefault("pcb_text"),
703
- text: z40.string(),
725
+ text: z41.string(),
704
726
  center: point,
705
727
  layer: layer_ref,
706
728
  width: length,
707
729
  height: length,
708
- lines: z40.number(),
709
- align: z40.enum(["bottom-left"])
730
+ lines: z41.number(),
731
+ align: z41.enum(["bottom-left"])
710
732
  }).describe("Defines text on the PCB");
711
733
  expectTypesMatch(true);
712
734
 
713
735
  // src/pcb/pcb_trace.ts
714
- import { z as z41 } from "zod";
715
- var pcb_trace_route_point_wire = z41.object({
716
- route_type: z41.literal("wire"),
736
+ import { z as z42 } from "zod";
737
+ var pcb_trace_route_point_wire = z42.object({
738
+ route_type: z42.literal("wire"),
717
739
  x: distance,
718
740
  y: distance,
719
741
  width: distance,
720
- start_pcb_port_id: z41.string().optional(),
721
- end_pcb_port_id: z41.string().optional(),
742
+ start_pcb_port_id: z42.string().optional(),
743
+ end_pcb_port_id: z42.string().optional(),
722
744
  layer: layer_ref
723
745
  });
724
- var pcb_trace_route_point_via = z41.object({
725
- route_type: z41.literal("via"),
746
+ var pcb_trace_route_point_via = z42.object({
747
+ route_type: z42.literal("via"),
726
748
  x: distance,
727
749
  y: distance,
728
- from_layer: z41.string(),
729
- to_layer: z41.string()
750
+ from_layer: z42.string(),
751
+ to_layer: z42.string()
730
752
  });
731
- var pcb_trace_route_point = z41.union([
753
+ var pcb_trace_route_point = z42.union([
732
754
  pcb_trace_route_point_wire,
733
755
  pcb_trace_route_point_via
734
756
  ]);
735
- var pcb_trace = z41.object({
736
- type: z41.literal("pcb_trace"),
737
- source_trace_id: z41.string().optional(),
738
- pcb_component_id: z41.string().optional(),
757
+ var pcb_trace = z42.object({
758
+ type: z42.literal("pcb_trace"),
759
+ source_trace_id: z42.string().optional(),
760
+ pcb_component_id: z42.string().optional(),
739
761
  pcb_trace_id: getZodPrefixedIdWithDefault("pcb_trace"),
740
- route_thickness_mode: z41.enum(["constant", "interpolated"]).default("constant").optional(),
741
- route_order_index: z41.number().optional(),
742
- should_round_corners: z41.boolean().optional(),
743
- route: z41.array(
744
- z41.union([
745
- z41.object({
746
- route_type: z41.literal("wire"),
762
+ route_thickness_mode: z42.enum(["constant", "interpolated"]).default("constant").optional(),
763
+ route_order_index: z42.number().optional(),
764
+ should_round_corners: z42.boolean().optional(),
765
+ route: z42.array(
766
+ z42.union([
767
+ z42.object({
768
+ route_type: z42.literal("wire"),
747
769
  x: distance,
748
770
  y: distance,
749
771
  width: distance,
750
- start_pcb_port_id: z41.string().optional(),
751
- end_pcb_port_id: z41.string().optional(),
772
+ start_pcb_port_id: z42.string().optional(),
773
+ end_pcb_port_id: z42.string().optional(),
752
774
  layer: layer_ref
753
775
  }),
754
- z41.object({
755
- route_type: z41.literal("via"),
776
+ z42.object({
777
+ route_type: z42.literal("via"),
756
778
  x: distance,
757
779
  y: distance,
758
- from_layer: z41.string(),
759
- to_layer: z41.string()
780
+ from_layer: z42.string(),
781
+ to_layer: z42.string()
760
782
  })
761
783
  ])
762
784
  )
@@ -765,34 +787,34 @@ expectTypesMatch(true);
765
787
  expectTypesMatch(true);
766
788
 
767
789
  // src/pcb/pcb_trace_error.ts
768
- import { z as z42 } from "zod";
769
- var pcb_trace_error = z42.object({
770
- type: z42.literal("pcb_trace_error"),
790
+ import { z as z43 } from "zod";
791
+ var pcb_trace_error = z43.object({
792
+ type: z43.literal("pcb_trace_error"),
771
793
  pcb_trace_error_id: getZodPrefixedIdWithDefault("pcb_trace_error"),
772
- error_type: z42.literal("pcb_trace_error"),
773
- message: z42.string(),
794
+ error_type: z43.literal("pcb_trace_error"),
795
+ message: z43.string(),
774
796
  center: point.optional(),
775
- pcb_trace_id: z42.string(),
776
- source_trace_id: z42.string(),
777
- pcb_component_ids: z42.array(z42.string()),
778
- pcb_port_ids: z42.array(z42.string())
797
+ pcb_trace_id: z43.string(),
798
+ source_trace_id: z43.string(),
799
+ pcb_component_ids: z43.array(z43.string()),
800
+ pcb_port_ids: z43.array(z43.string())
779
801
  }).describe("Defines a trace error on the PCB");
780
802
  expectTypesMatch(true);
781
803
 
782
804
  // src/pcb/pcb_port_not_matched_error.ts
783
- import { z as z43 } from "zod";
784
- var pcb_port_not_matched_error = z43.object({
785
- type: z43.literal("pcb_port_not_matched_error"),
805
+ import { z as z44 } from "zod";
806
+ var pcb_port_not_matched_error = z44.object({
807
+ type: z44.literal("pcb_port_not_matched_error"),
786
808
  pcb_error_id: getZodPrefixedIdWithDefault("pcb_error"),
787
- message: z43.string(),
788
- pcb_component_ids: z43.array(z43.string())
809
+ message: z44.string(),
810
+ pcb_component_ids: z44.array(z44.string())
789
811
  }).describe("Defines a trace error on the PCB where a port is not matched");
790
812
  expectTypesMatch(true);
791
813
 
792
814
  // src/pcb/pcb_via.ts
793
- import { z as z44 } from "zod";
794
- var pcb_via = z44.object({
795
- type: z44.literal("pcb_via"),
815
+ import { z as z45 } from "zod";
816
+ var pcb_via = z45.object({
817
+ type: z45.literal("pcb_via"),
796
818
  pcb_via_id: getZodPrefixedIdWithDefault("pcb_via"),
797
819
  x: distance,
798
820
  y: distance,
@@ -802,51 +824,51 @@ var pcb_via = z44.object({
802
824
  from_layer: layer_ref.optional(),
803
825
  /** @deprecated */
804
826
  to_layer: layer_ref.optional(),
805
- layers: z44.array(layer_ref),
806
- pcb_trace_id: z44.string().optional()
827
+ layers: z45.array(layer_ref),
828
+ pcb_trace_id: z45.string().optional()
807
829
  }).describe("Defines a via on the PCB");
808
830
  expectTypesMatch(true);
809
831
 
810
832
  // src/pcb/pcb_board.ts
811
- import { z as z45 } from "zod";
812
- var pcb_board = z45.object({
813
- type: z45.literal("pcb_board"),
833
+ import { z as z46 } from "zod";
834
+ var pcb_board = z46.object({
835
+ type: z46.literal("pcb_board"),
814
836
  pcb_board_id: getZodPrefixedIdWithDefault("pcb_board"),
815
837
  width: length,
816
838
  height: length,
817
839
  center: point,
818
840
  thickness: length.optional().default(1.4),
819
- num_layers: z45.number().optional().default(4),
820
- outline: z45.array(point).optional()
841
+ num_layers: z46.number().optional().default(4),
842
+ outline: z46.array(point).optional()
821
843
  }).describe("Defines the board outline of the PCB");
822
844
  expectTypesMatch(true);
823
845
 
824
846
  // src/pcb/pcb_placement_error.ts
825
- import { z as z46 } from "zod";
826
- var pcb_placement_error = z46.object({
827
- type: z46.literal("pcb_placement_error"),
847
+ import { z as z47 } from "zod";
848
+ var pcb_placement_error = z47.object({
849
+ type: z47.literal("pcb_placement_error"),
828
850
  pcb_placement_error_id: getZodPrefixedIdWithDefault("pcb_placement_error"),
829
- message: z46.string()
851
+ message: z47.string()
830
852
  }).describe("Defines a placement error on the PCB");
831
853
  expectTypesMatch(true);
832
854
 
833
855
  // src/pcb/pcb_trace_hint.ts
834
- import { z as z47 } from "zod";
835
- var pcb_trace_hint = z47.object({
836
- type: z47.literal("pcb_trace_hint"),
856
+ import { z as z48 } from "zod";
857
+ var pcb_trace_hint = z48.object({
858
+ type: z48.literal("pcb_trace_hint"),
837
859
  pcb_trace_hint_id: getZodPrefixedIdWithDefault("pcb_trace_hint"),
838
- pcb_port_id: z47.string(),
839
- pcb_component_id: z47.string(),
840
- route: z47.array(route_hint_point)
860
+ pcb_port_id: z48.string(),
861
+ pcb_component_id: z48.string(),
862
+ route: z48.array(route_hint_point)
841
863
  }).describe("A hint that can be used during generation of a PCB trace");
842
864
  expectTypesMatch(true);
843
865
 
844
866
  // src/pcb/pcb_silkscreen_line.ts
845
- import { z as z48 } from "zod";
846
- var pcb_silkscreen_line = z48.object({
847
- type: z48.literal("pcb_silkscreen_line"),
867
+ import { z as z49 } from "zod";
868
+ var pcb_silkscreen_line = z49.object({
869
+ type: z49.literal("pcb_silkscreen_line"),
848
870
  pcb_silkscreen_line_id: getZodPrefixedIdWithDefault("pcb_silkscreen_line"),
849
- pcb_component_id: z48.string(),
871
+ pcb_component_id: z49.string(),
850
872
  stroke_width: distance.default("0.1mm"),
851
873
  x1: distance,
852
874
  y1: distance,
@@ -857,39 +879,39 @@ var pcb_silkscreen_line = z48.object({
857
879
  expectTypesMatch(true);
858
880
 
859
881
  // src/pcb/pcb_silkscreen_path.ts
860
- import { z as z49 } from "zod";
861
- var pcb_silkscreen_path = z49.object({
862
- type: z49.literal("pcb_silkscreen_path"),
882
+ import { z as z50 } from "zod";
883
+ var pcb_silkscreen_path = z50.object({
884
+ type: z50.literal("pcb_silkscreen_path"),
863
885
  pcb_silkscreen_path_id: getZodPrefixedIdWithDefault("pcb_silkscreen_path"),
864
- pcb_component_id: z49.string(),
886
+ pcb_component_id: z50.string(),
865
887
  layer: visible_layer,
866
- route: z49.array(point),
888
+ route: z50.array(point),
867
889
  stroke_width: length
868
890
  }).describe("Defines a silkscreen path on the PCB");
869
891
  expectTypesMatch(true);
870
892
 
871
893
  // src/pcb/pcb_silkscreen_text.ts
872
- import { z as z50 } from "zod";
873
- var pcb_silkscreen_text = z50.object({
874
- type: z50.literal("pcb_silkscreen_text"),
894
+ import { z as z51 } from "zod";
895
+ var pcb_silkscreen_text = z51.object({
896
+ type: z51.literal("pcb_silkscreen_text"),
875
897
  pcb_silkscreen_text_id: getZodPrefixedIdWithDefault("pcb_silkscreen_text"),
876
- font: z50.literal("tscircuit2024").default("tscircuit2024"),
898
+ font: z51.literal("tscircuit2024").default("tscircuit2024"),
877
899
  font_size: distance.default("0.2mm"),
878
- pcb_component_id: z50.string(),
879
- text: z50.string(),
900
+ pcb_component_id: z51.string(),
901
+ text: z51.string(),
880
902
  layer: layer_ref,
881
- is_mirrored: z50.boolean().default(false).optional(),
903
+ is_mirrored: z51.boolean().default(false).optional(),
882
904
  anchor_position: point.default({ x: 0, y: 0 }),
883
- anchor_alignment: z50.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center")
905
+ anchor_alignment: z51.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center")
884
906
  }).describe("Defines silkscreen text on the PCB");
885
907
  expectTypesMatch(true);
886
908
 
887
909
  // src/pcb/pcb_silkscreen_rect.ts
888
- import { z as z51 } from "zod";
889
- var pcb_silkscreen_rect = z51.object({
890
- type: z51.literal("pcb_silkscreen_rect"),
910
+ import { z as z52 } from "zod";
911
+ var pcb_silkscreen_rect = z52.object({
912
+ type: z52.literal("pcb_silkscreen_rect"),
891
913
  pcb_silkscreen_rect_id: getZodPrefixedIdWithDefault("pcb_silkscreen_rect"),
892
- pcb_component_id: z51.string(),
914
+ pcb_component_id: z52.string(),
893
915
  center: point,
894
916
  width: length,
895
917
  height: length,
@@ -898,13 +920,13 @@ var pcb_silkscreen_rect = z51.object({
898
920
  expectTypesMatch(true);
899
921
 
900
922
  // src/pcb/pcb_silkscreen_circle.ts
901
- import { z as z52 } from "zod";
902
- var pcb_silkscreen_circle = z52.object({
903
- type: z52.literal("pcb_silkscreen_circle"),
923
+ import { z as z53 } from "zod";
924
+ var pcb_silkscreen_circle = z53.object({
925
+ type: z53.literal("pcb_silkscreen_circle"),
904
926
  pcb_silkscreen_circle_id: getZodPrefixedIdWithDefault(
905
927
  "pcb_silkscreen_circle"
906
928
  ),
907
- pcb_component_id: z52.string(),
929
+ pcb_component_id: z53.string(),
908
930
  center: point,
909
931
  radius: length,
910
932
  layer: visible_layer
@@ -912,11 +934,11 @@ var pcb_silkscreen_circle = z52.object({
912
934
  expectTypesMatch(true);
913
935
 
914
936
  // src/pcb/pcb_silkscreen_oval.ts
915
- import { z as z53 } from "zod";
916
- var pcb_silkscreen_oval = z53.object({
917
- type: z53.literal("pcb_silkscreen_oval"),
937
+ import { z as z54 } from "zod";
938
+ var pcb_silkscreen_oval = z54.object({
939
+ type: z54.literal("pcb_silkscreen_oval"),
918
940
  pcb_silkscreen_oval_id: getZodPrefixedIdWithDefault("pcb_silkscreen_oval"),
919
- pcb_component_id: z53.string(),
941
+ pcb_component_id: z54.string(),
920
942
  center: point,
921
943
  radius_x: distance,
922
944
  radius_y: distance,
@@ -925,91 +947,91 @@ var pcb_silkscreen_oval = z53.object({
925
947
  expectTypesMatch(true);
926
948
 
927
949
  // src/pcb/pcb_fabrication_note_text.ts
928
- import { z as z54 } from "zod";
929
- var pcb_fabrication_note_text = z54.object({
930
- type: z54.literal("pcb_fabrication_note_text"),
950
+ import { z as z55 } from "zod";
951
+ var pcb_fabrication_note_text = z55.object({
952
+ type: z55.literal("pcb_fabrication_note_text"),
931
953
  pcb_fabrication_note_text_id: getZodPrefixedIdWithDefault(
932
954
  "pcb_fabrication_note_text"
933
955
  ),
934
- font: z54.literal("tscircuit2024").default("tscircuit2024"),
956
+ font: z55.literal("tscircuit2024").default("tscircuit2024"),
935
957
  font_size: distance.default("1mm"),
936
- pcb_component_id: z54.string(),
937
- text: z54.string(),
958
+ pcb_component_id: z55.string(),
959
+ text: z55.string(),
938
960
  layer: visible_layer,
939
961
  anchor_position: point.default({ x: 0, y: 0 }),
940
- anchor_alignment: z54.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
941
- color: z54.string().optional()
962
+ anchor_alignment: z55.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
963
+ color: z55.string().optional()
942
964
  }).describe(
943
965
  "Defines a fabrication note in text on the PCB, useful for leaving notes for assemblers or fabricators"
944
966
  );
945
967
  expectTypesMatch(true);
946
968
 
947
969
  // src/pcb/pcb_fabrication_note_path.ts
948
- import { z as z55 } from "zod";
949
- var pcb_fabrication_note_path = z55.object({
950
- type: z55.literal("pcb_fabrication_note_path"),
970
+ import { z as z56 } from "zod";
971
+ var pcb_fabrication_note_path = z56.object({
972
+ type: z56.literal("pcb_fabrication_note_path"),
951
973
  pcb_fabrication_note_path_id: getZodPrefixedIdWithDefault(
952
974
  "pcb_fabrication_note_path"
953
975
  ),
954
- pcb_component_id: z55.string(),
976
+ pcb_component_id: z56.string(),
955
977
  layer: layer_ref,
956
- route: z55.array(point),
978
+ route: z56.array(point),
957
979
  stroke_width: length,
958
- color: z55.string().optional()
980
+ color: z56.string().optional()
959
981
  }).describe(
960
982
  "Defines a fabrication path on the PCB for fabricators or assemblers"
961
983
  );
962
984
  expectTypesMatch(true);
963
985
 
964
986
  // src/pcb/pcb_keepout.ts
965
- import { z as z56 } from "zod";
966
- var pcb_keepout = z56.object({
967
- type: z56.literal("pcb_keepout"),
968
- shape: z56.literal("rect"),
987
+ import { z as z57 } from "zod";
988
+ var pcb_keepout = z57.object({
989
+ type: z57.literal("pcb_keepout"),
990
+ shape: z57.literal("rect"),
969
991
  center: point,
970
992
  width: distance,
971
993
  height: distance,
972
- pcb_keepout_id: z56.string(),
973
- layers: z56.array(z56.string()),
994
+ pcb_keepout_id: z57.string(),
995
+ layers: z57.array(z57.string()),
974
996
  // Specify layers where the keepout applies
975
- description: z56.string().optional()
997
+ description: z57.string().optional()
976
998
  // Optional description of the keepout
977
999
  }).or(
978
- z56.object({
979
- type: z56.literal("pcb_keepout"),
980
- shape: z56.literal("circle"),
1000
+ z57.object({
1001
+ type: z57.literal("pcb_keepout"),
1002
+ shape: z57.literal("circle"),
981
1003
  center: point,
982
1004
  radius: distance,
983
- pcb_keepout_id: z56.string(),
984
- layers: z56.array(z56.string()),
1005
+ pcb_keepout_id: z57.string(),
1006
+ layers: z57.array(z57.string()),
985
1007
  // Specify layers where the keepout applies
986
- description: z56.string().optional()
1008
+ description: z57.string().optional()
987
1009
  // Optional description of the keepout
988
1010
  })
989
1011
  );
990
1012
 
991
1013
  // src/cad/cad_component.ts
992
- import { z as z57 } from "zod";
993
- var cad_component = z57.object({
994
- type: z57.literal("cad_component"),
995
- cad_component_id: z57.string(),
996
- pcb_component_id: z57.string(),
997
- source_component_id: z57.string(),
1014
+ import { z as z58 } from "zod";
1015
+ var cad_component = z58.object({
1016
+ type: z58.literal("cad_component"),
1017
+ cad_component_id: z58.string(),
1018
+ pcb_component_id: z58.string(),
1019
+ source_component_id: z58.string(),
998
1020
  position: point3,
999
1021
  rotation: point3.optional(),
1000
1022
  size: point3.optional(),
1001
1023
  layer: layer_ref.optional(),
1002
1024
  // These are all ways to generate/load the 3d model
1003
- footprinter_string: z57.string().optional(),
1004
- model_obj_url: z57.string().optional(),
1005
- model_stl_url: z57.string().optional(),
1006
- model_3mf_url: z57.string().optional(),
1007
- model_jscad: z57.any().optional()
1025
+ footprinter_string: z58.string().optional(),
1026
+ model_obj_url: z58.string().optional(),
1027
+ model_stl_url: z58.string().optional(),
1028
+ model_3mf_url: z58.string().optional(),
1029
+ model_jscad: z58.any().optional()
1008
1030
  }).describe("Defines a component on the PCB");
1009
1031
 
1010
1032
  // src/any_circuit_element.ts
1011
- import { z as z58 } from "zod";
1012
- var any_circuit_element = z58.union([
1033
+ import { z as z59 } from "zod";
1034
+ var any_circuit_element = z59.union([
1013
1035
  source_trace,
1014
1036
  source_port,
1015
1037
  any_source_component,
@@ -1022,6 +1044,7 @@ var any_circuit_element = z58.union([
1022
1044
  source_simple_diode,
1023
1045
  source_simple_resistor,
1024
1046
  source_simple_power_source,
1047
+ source_simple_battery,
1025
1048
  pcb_component,
1026
1049
  pcb_hole,
1027
1050
  pcb_plated_hole,
@@ -1062,6 +1085,7 @@ export {
1062
1085
  any_circuit_element,
1063
1086
  any_soup_element,
1064
1087
  any_source_component,
1088
+ battery_capacity,
1065
1089
  cad_component,
1066
1090
  capacitance,
1067
1091
  current,
@@ -1124,6 +1148,7 @@ export {
1124
1148
  source_led,
1125
1149
  source_net,
1126
1150
  source_port,
1151
+ source_simple_battery,
1127
1152
  source_simple_bug,
1128
1153
  source_simple_capacitor,
1129
1154
  source_simple_chip,