@tscircuit/props 0.0.88 → 0.0.90
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +315 -275
- package/dist/index.js +125 -125
- package/dist/index.js.map +1 -1
- package/lib/common/layout.ts +3 -2
- package/lib/components/board.ts +11 -28
- package/lib/components/group.ts +15 -1
- package/lib/components/netalias.ts +6 -3
- package/lib/typecheck.ts +44 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -103,12 +103,15 @@ __export(lib_exports, {
|
|
|
103
103
|
viaProps: () => viaProps
|
|
104
104
|
});
|
|
105
105
|
module.exports = __toCommonJS(lib_exports);
|
|
106
|
-
var
|
|
106
|
+
var import_circuit_json17 = require("circuit-json");
|
|
107
107
|
var import_zod30 = require("zod");
|
|
108
108
|
|
|
109
109
|
// lib/typecheck.ts
|
|
110
110
|
var expectTypesMatch = (shouldBe) => {
|
|
111
111
|
};
|
|
112
|
+
expectTypesMatch("extra props b");
|
|
113
|
+
expectTypesMatch("missing props b");
|
|
114
|
+
expectTypesMatch(true);
|
|
112
115
|
|
|
113
116
|
// lib/common/direction.ts
|
|
114
117
|
var import_zod = require("zod");
|
|
@@ -262,7 +265,7 @@ var schematicPinStyle = import_zod8.z.record(
|
|
|
262
265
|
expectTypesMatch(true);
|
|
263
266
|
|
|
264
267
|
// lib/components/board.ts
|
|
265
|
-
var
|
|
268
|
+
var import_circuit_json6 = require("circuit-json");
|
|
266
269
|
|
|
267
270
|
// lib/common/point.ts
|
|
268
271
|
var import_circuit_json4 = require("circuit-json");
|
|
@@ -273,131 +276,126 @@ var point = import_zod9.z.object({
|
|
|
273
276
|
});
|
|
274
277
|
|
|
275
278
|
// lib/components/board.ts
|
|
279
|
+
var import_zod11 = require("zod");
|
|
280
|
+
|
|
281
|
+
// lib/components/group.ts
|
|
282
|
+
var import_circuit_json5 = require("circuit-json");
|
|
276
283
|
var import_zod10 = require("zod");
|
|
277
|
-
var
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
284
|
+
var baseGroupProps = commonLayoutProps.extend({
|
|
285
|
+
name: import_zod10.z.string().optional(),
|
|
286
|
+
children: import_zod10.z.any().optional()
|
|
287
|
+
});
|
|
288
|
+
var subcircuitGroupProps = baseGroupProps.extend({
|
|
289
|
+
subcircuit: import_zod10.z.literal(true),
|
|
283
290
|
layout: import_zod10.z.custom((v) => true).optional(),
|
|
284
291
|
manualEdits: import_zod10.z.custom((v) => true).optional(),
|
|
292
|
+
schAutoLayoutEnabled: import_zod10.z.boolean().optional(),
|
|
285
293
|
routingDisabled: import_zod10.z.boolean().optional(),
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
294
|
+
defaultTraceWidth: import_circuit_json5.length.optional(),
|
|
295
|
+
partsEngine: import_zod10.z.custom((v) => "findPart" in v).optional()
|
|
296
|
+
});
|
|
297
|
+
var groupProps = import_zod10.z.union([baseGroupProps, subcircuitGroupProps]);
|
|
298
|
+
expectTypesMatch(true);
|
|
299
|
+
expectTypesMatch(true);
|
|
300
|
+
expectTypesMatch(true);
|
|
301
|
+
|
|
302
|
+
// lib/components/board.ts
|
|
303
|
+
var boardProps = subcircuitGroupProps.omit({ subcircuit: true }).extend({
|
|
304
|
+
width: import_circuit_json6.distance.optional(),
|
|
305
|
+
height: import_circuit_json6.distance.optional(),
|
|
306
|
+
outline: import_zod11.z.array(point).optional()
|
|
289
307
|
});
|
|
290
308
|
expectTypesMatch(true);
|
|
291
309
|
|
|
292
310
|
// lib/components/chip.ts
|
|
293
|
-
var
|
|
294
|
-
var
|
|
311
|
+
var import_circuit_json7 = require("circuit-json");
|
|
312
|
+
var import_zod12 = require("zod");
|
|
295
313
|
var chipProps = commonComponentProps.extend({
|
|
296
|
-
manufacturerPartNumber:
|
|
297
|
-
pinLabels:
|
|
298
|
-
|
|
299
|
-
|
|
314
|
+
manufacturerPartNumber: import_zod12.z.string().optional(),
|
|
315
|
+
pinLabels: import_zod12.z.record(
|
|
316
|
+
import_zod12.z.number().or(import_zod12.z.string()),
|
|
317
|
+
import_zod12.z.string().or(import_zod12.z.array(import_zod12.z.string()).readonly())
|
|
300
318
|
).optional(),
|
|
301
319
|
schPortArrangement: schematicPortArrangement.optional(),
|
|
302
320
|
schPinStyle: schematicPinStyle.optional(),
|
|
303
|
-
schPinSpacing:
|
|
304
|
-
schWidth:
|
|
305
|
-
schHeight:
|
|
321
|
+
schPinSpacing: import_circuit_json7.distance.optional(),
|
|
322
|
+
schWidth: import_circuit_json7.distance.optional(),
|
|
323
|
+
schHeight: import_circuit_json7.distance.optional()
|
|
306
324
|
});
|
|
307
325
|
var bugProps = chipProps;
|
|
308
326
|
expectTypesMatch(true);
|
|
309
327
|
|
|
310
328
|
// lib/components/jumper.ts
|
|
311
|
-
var
|
|
312
|
-
var
|
|
329
|
+
var import_circuit_json8 = require("circuit-json");
|
|
330
|
+
var import_zod13 = require("zod");
|
|
313
331
|
var jumperProps = commonComponentProps.extend({
|
|
314
|
-
manufacturerPartNumber:
|
|
315
|
-
pinLabels:
|
|
332
|
+
manufacturerPartNumber: import_zod13.z.string().optional(),
|
|
333
|
+
pinLabels: import_zod13.z.record(import_zod13.z.number().or(import_zod13.z.string()), import_zod13.z.string()).optional(),
|
|
316
334
|
schPinStyle: schematicPinStyle.optional(),
|
|
317
|
-
schPinSpacing:
|
|
318
|
-
schWidth:
|
|
319
|
-
schHeight:
|
|
320
|
-
schDirection:
|
|
335
|
+
schPinSpacing: import_circuit_json8.distance.optional(),
|
|
336
|
+
schWidth: import_circuit_json8.distance.optional(),
|
|
337
|
+
schHeight: import_circuit_json8.distance.optional(),
|
|
338
|
+
schDirection: import_zod13.z.enum(["left", "right"]).optional(),
|
|
321
339
|
schPortArrangement: schematicPortArrangement.optional()
|
|
322
340
|
});
|
|
323
341
|
expectTypesMatch(true);
|
|
324
342
|
|
|
325
343
|
// lib/components/platedhole.ts
|
|
326
|
-
var
|
|
327
|
-
var
|
|
328
|
-
var platedHoleProps =
|
|
344
|
+
var import_circuit_json9 = require("circuit-json");
|
|
345
|
+
var import_zod14 = require("zod");
|
|
346
|
+
var platedHoleProps = import_zod14.z.discriminatedUnion("shape", [
|
|
329
347
|
pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({
|
|
330
|
-
name:
|
|
331
|
-
shape:
|
|
332
|
-
holeDiameter:
|
|
333
|
-
outerDiameter:
|
|
348
|
+
name: import_zod14.z.string().optional(),
|
|
349
|
+
shape: import_zod14.z.literal("circle"),
|
|
350
|
+
holeDiameter: import_circuit_json9.distance,
|
|
351
|
+
outerDiameter: import_circuit_json9.distance,
|
|
334
352
|
portHints: portHints.optional()
|
|
335
353
|
}),
|
|
336
354
|
pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({
|
|
337
|
-
name:
|
|
338
|
-
shape:
|
|
339
|
-
outerWidth:
|
|
340
|
-
outerHeight:
|
|
341
|
-
innerWidth:
|
|
342
|
-
innerHeight:
|
|
355
|
+
name: import_zod14.z.string().optional(),
|
|
356
|
+
shape: import_zod14.z.literal("oval"),
|
|
357
|
+
outerWidth: import_circuit_json9.distance,
|
|
358
|
+
outerHeight: import_circuit_json9.distance,
|
|
359
|
+
innerWidth: import_circuit_json9.distance,
|
|
360
|
+
innerHeight: import_circuit_json9.distance,
|
|
343
361
|
portHints: portHints.optional()
|
|
344
362
|
}),
|
|
345
363
|
pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({
|
|
346
|
-
name:
|
|
347
|
-
shape:
|
|
348
|
-
outerWidth:
|
|
349
|
-
outerHeight:
|
|
350
|
-
innerWidth:
|
|
351
|
-
innerHeight:
|
|
364
|
+
name: import_zod14.z.string().optional(),
|
|
365
|
+
shape: import_zod14.z.literal("pill"),
|
|
366
|
+
outerWidth: import_circuit_json9.distance,
|
|
367
|
+
outerHeight: import_circuit_json9.distance,
|
|
368
|
+
innerWidth: import_circuit_json9.distance,
|
|
369
|
+
innerHeight: import_circuit_json9.distance,
|
|
352
370
|
portHints: portHints.optional()
|
|
353
371
|
})
|
|
354
372
|
]);
|
|
355
373
|
expectTypesMatch(true);
|
|
356
374
|
|
|
357
375
|
// lib/components/resistor.ts
|
|
358
|
-
var
|
|
359
|
-
var
|
|
376
|
+
var import_circuit_json10 = require("circuit-json");
|
|
377
|
+
var import_zod15 = require("zod");
|
|
360
378
|
var resistorProps = commonComponentProps.extend({
|
|
361
|
-
resistance:
|
|
362
|
-
pullupFor:
|
|
363
|
-
pullupTo:
|
|
364
|
-
pulldownFor:
|
|
365
|
-
pulldownTo:
|
|
379
|
+
resistance: import_circuit_json10.resistance,
|
|
380
|
+
pullupFor: import_zod15.z.string().optional(),
|
|
381
|
+
pullupTo: import_zod15.z.string().optional(),
|
|
382
|
+
pulldownFor: import_zod15.z.string().optional(),
|
|
383
|
+
pulldownTo: import_zod15.z.string().optional()
|
|
366
384
|
});
|
|
367
385
|
var resistorPins = lrPins;
|
|
368
386
|
expectTypesMatch(true);
|
|
369
387
|
|
|
370
388
|
// lib/components/capacitor.ts
|
|
371
|
-
var import_circuit_json10 = require("circuit-json");
|
|
372
|
-
var import_zod15 = require("zod");
|
|
373
|
-
var capacitorProps = commonComponentProps.extend({
|
|
374
|
-
capacitance: import_circuit_json10.capacitance,
|
|
375
|
-
decouplingFor: import_zod15.z.string().optional(),
|
|
376
|
-
decouplingTo: import_zod15.z.string().optional(),
|
|
377
|
-
bypassFor: import_zod15.z.string().optional(),
|
|
378
|
-
bypassTo: import_zod15.z.string().optional()
|
|
379
|
-
});
|
|
380
|
-
var capacitorPins = lrPolarPins;
|
|
381
|
-
expectTypesMatch(true);
|
|
382
|
-
|
|
383
|
-
// lib/components/group.ts
|
|
384
389
|
var import_circuit_json11 = require("circuit-json");
|
|
385
390
|
var import_zod16 = require("zod");
|
|
386
|
-
var
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
layout: import_zod16.z.custom((v) => true).optional(),
|
|
393
|
-
manualEdits: import_zod16.z.custom((v) => true).optional(),
|
|
394
|
-
schAutoLayoutEnabled: import_zod16.z.boolean().optional(),
|
|
395
|
-
routingDisabled: import_zod16.z.boolean().optional(),
|
|
396
|
-
defaultTraceWidth: import_circuit_json11.length.optional()
|
|
391
|
+
var capacitorProps = commonComponentProps.extend({
|
|
392
|
+
capacitance: import_circuit_json11.capacitance,
|
|
393
|
+
decouplingFor: import_zod16.z.string().optional(),
|
|
394
|
+
decouplingTo: import_zod16.z.string().optional(),
|
|
395
|
+
bypassFor: import_zod16.z.string().optional(),
|
|
396
|
+
bypassTo: import_zod16.z.string().optional()
|
|
397
397
|
});
|
|
398
|
-
var
|
|
399
|
-
expectTypesMatch(true);
|
|
400
|
-
expectTypesMatch(true);
|
|
398
|
+
var capacitorPins = lrPolarPins;
|
|
401
399
|
expectTypesMatch(true);
|
|
402
400
|
|
|
403
401
|
// lib/components/net.ts
|
|
@@ -587,10 +585,12 @@ expectTypesMatch(true);
|
|
|
587
585
|
|
|
588
586
|
// lib/components/netalias.ts
|
|
589
587
|
var import_zod28 = require("zod");
|
|
588
|
+
var import_circuit_json16 = require("circuit-json");
|
|
590
589
|
var netAliasProps = import_zod28.z.object({
|
|
591
590
|
net: import_zod28.z.string().optional(),
|
|
592
591
|
schX: import_circuit_json12.distance.optional(),
|
|
593
592
|
schY: import_circuit_json12.distance.optional(),
|
|
593
|
+
schRotation: import_circuit_json16.rotation.optional(),
|
|
594
594
|
anchorSide: import_zod28.z.enum(["left", "up", "right", "down"]).optional()
|
|
595
595
|
});
|
|
596
596
|
expectTypesMatch(true);
|
|
@@ -601,7 +601,7 @@ var pushButtonProps = commonComponentProps.extend({});
|
|
|
601
601
|
|
|
602
602
|
// lib/index.ts
|
|
603
603
|
var inductorProps = commonComponentProps.extend({
|
|
604
|
-
inductance:
|
|
604
|
+
inductance: import_circuit_json17.inductance
|
|
605
605
|
});
|
|
606
606
|
var inductorPins = lrPins;
|
|
607
607
|
var diodeProps = commonComponentProps.extend({});
|
|
@@ -615,49 +615,49 @@ var switchProps = commonComponentProps.extend({
|
|
|
615
615
|
switchType: import_zod30.z.enum(["spst"]).default("spst"),
|
|
616
616
|
isNormallyClosed: import_zod30.z.boolean().default(false)
|
|
617
617
|
});
|
|
618
|
-
var distanceOrMultiplier2 =
|
|
618
|
+
var distanceOrMultiplier2 = import_circuit_json17.distance.or(import_zod30.z.enum(["2x", "3x", "4x"]));
|
|
619
619
|
var viaProps = commonLayoutProps.extend({
|
|
620
|
-
fromLayer:
|
|
621
|
-
toLayer:
|
|
622
|
-
holeDiameter:
|
|
623
|
-
outerDiameter:
|
|
620
|
+
fromLayer: import_circuit_json17.layer_ref,
|
|
621
|
+
toLayer: import_circuit_json17.layer_ref,
|
|
622
|
+
holeDiameter: import_circuit_json17.distance,
|
|
623
|
+
outerDiameter: import_circuit_json17.distance
|
|
624
624
|
});
|
|
625
625
|
var pcbKeepoutProps = import_zod30.z.union([
|
|
626
626
|
pcbLayoutProps.omit({ pcbRotation: true }).extend({
|
|
627
627
|
shape: import_zod30.z.literal("circle"),
|
|
628
|
-
radius:
|
|
628
|
+
radius: import_circuit_json17.distance
|
|
629
629
|
}),
|
|
630
630
|
pcbLayoutProps.extend({
|
|
631
631
|
shape: import_zod30.z.literal("rect"),
|
|
632
|
-
width:
|
|
633
|
-
height:
|
|
632
|
+
width: import_circuit_json17.distance,
|
|
633
|
+
height: import_circuit_json17.distance
|
|
634
634
|
})
|
|
635
635
|
]);
|
|
636
636
|
var schematicBoxProps = import_zod30.z.object({
|
|
637
|
-
schX:
|
|
638
|
-
schY:
|
|
639
|
-
width:
|
|
640
|
-
height:
|
|
637
|
+
schX: import_circuit_json17.distance,
|
|
638
|
+
schY: import_circuit_json17.distance,
|
|
639
|
+
width: import_circuit_json17.distance,
|
|
640
|
+
height: import_circuit_json17.distance
|
|
641
641
|
});
|
|
642
642
|
var schematicTextProps = import_zod30.z.object({
|
|
643
|
-
schX:
|
|
644
|
-
schY:
|
|
643
|
+
schX: import_circuit_json17.distance,
|
|
644
|
+
schY: import_circuit_json17.distance,
|
|
645
645
|
text: import_zod30.z.string()
|
|
646
646
|
});
|
|
647
647
|
var schematicLineProps = import_zod30.z.object({
|
|
648
|
-
x1:
|
|
649
|
-
y1:
|
|
650
|
-
x2:
|
|
651
|
-
y2:
|
|
648
|
+
x1: import_circuit_json17.distance,
|
|
649
|
+
y1: import_circuit_json17.distance,
|
|
650
|
+
x2: import_circuit_json17.distance,
|
|
651
|
+
y2: import_circuit_json17.distance
|
|
652
652
|
});
|
|
653
653
|
var schematicPathProps = import_zod30.z.object({
|
|
654
|
-
points: import_zod30.z.array(
|
|
654
|
+
points: import_zod30.z.array(import_circuit_json17.point),
|
|
655
655
|
isFilled: import_zod30.z.boolean().optional().default(false),
|
|
656
656
|
fillColor: import_zod30.z.enum(["red", "blue"]).optional()
|
|
657
657
|
});
|
|
658
658
|
var componentProps = commonComponentProps;
|
|
659
659
|
var powerSourceProps = commonComponentProps.extend({
|
|
660
|
-
voltage:
|
|
660
|
+
voltage: import_circuit_json17.voltage
|
|
661
661
|
});
|
|
662
662
|
var portProps = commonLayoutProps.extend({
|
|
663
663
|
name: import_zod30.z.string(),
|
|
@@ -669,62 +669,62 @@ var silkscreenTextProps = pcbLayoutProps.extend({
|
|
|
669
669
|
text: import_zod30.z.string(),
|
|
670
670
|
anchorAlignment: import_zod30.z.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
|
|
671
671
|
font: import_zod30.z.enum(["tscircuit2024"]).optional(),
|
|
672
|
-
fontSize:
|
|
672
|
+
fontSize: import_circuit_json17.length.optional()
|
|
673
673
|
});
|
|
674
674
|
var silkscreenPathProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotation: true }).extend({
|
|
675
|
-
route: import_zod30.z.array(
|
|
676
|
-
strokeWidth:
|
|
675
|
+
route: import_zod30.z.array(import_circuit_json17.route_hint_point),
|
|
676
|
+
strokeWidth: import_circuit_json17.length.optional()
|
|
677
677
|
});
|
|
678
678
|
var silkscreenLineProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotation: true }).extend({
|
|
679
|
-
strokeWidth:
|
|
680
|
-
x1:
|
|
681
|
-
y1:
|
|
682
|
-
x2:
|
|
683
|
-
y2:
|
|
679
|
+
strokeWidth: import_circuit_json17.distance,
|
|
680
|
+
x1: import_circuit_json17.distance,
|
|
681
|
+
y1: import_circuit_json17.distance,
|
|
682
|
+
x2: import_circuit_json17.distance,
|
|
683
|
+
y2: import_circuit_json17.distance
|
|
684
684
|
});
|
|
685
685
|
var silkscreenRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
|
|
686
686
|
isFilled: import_zod30.z.boolean().optional(),
|
|
687
687
|
isOutline: import_zod30.z.boolean().optional(),
|
|
688
|
-
strokeWidth:
|
|
689
|
-
width:
|
|
690
|
-
height:
|
|
688
|
+
strokeWidth: import_circuit_json17.distance.optional(),
|
|
689
|
+
width: import_circuit_json17.distance,
|
|
690
|
+
height: import_circuit_json17.distance
|
|
691
691
|
});
|
|
692
692
|
var silkscreenCircleProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
|
|
693
693
|
isFilled: import_zod30.z.boolean().optional(),
|
|
694
694
|
isOutline: import_zod30.z.boolean().optional(),
|
|
695
|
-
strokeWidth:
|
|
696
|
-
radius:
|
|
695
|
+
strokeWidth: import_circuit_json17.distance.optional(),
|
|
696
|
+
radius: import_circuit_json17.distance
|
|
697
697
|
});
|
|
698
698
|
var routeHintPointProps = import_zod30.z.object({
|
|
699
|
-
x:
|
|
700
|
-
y:
|
|
699
|
+
x: import_circuit_json17.distance,
|
|
700
|
+
y: import_circuit_json17.distance,
|
|
701
701
|
via: import_zod30.z.boolean().optional(),
|
|
702
|
-
toLayer:
|
|
702
|
+
toLayer: import_circuit_json17.layer_ref.optional()
|
|
703
703
|
});
|
|
704
704
|
var traceHintProps = import_zod30.z.object({
|
|
705
705
|
for: import_zod30.z.string().optional().describe(
|
|
706
706
|
"Selector for the port you're targeting, not required if you're inside a trace"
|
|
707
707
|
),
|
|
708
708
|
order: import_zod30.z.number().optional(),
|
|
709
|
-
offset:
|
|
710
|
-
offsets: import_zod30.z.array(
|
|
709
|
+
offset: import_circuit_json17.route_hint_point.or(routeHintPointProps).optional(),
|
|
710
|
+
offsets: import_zod30.z.array(import_circuit_json17.route_hint_point).or(import_zod30.z.array(routeHintPointProps)).optional(),
|
|
711
711
|
traceWidth: import_zod30.z.number().optional()
|
|
712
712
|
});
|
|
713
713
|
var pcbTraceProps = import_zod30.z.object({
|
|
714
714
|
layer: import_zod30.z.string().optional(),
|
|
715
|
-
thickness:
|
|
716
|
-
route: import_zod30.z.array(
|
|
715
|
+
thickness: import_circuit_json17.distance.optional(),
|
|
716
|
+
route: import_zod30.z.array(import_circuit_json17.route_hint_point)
|
|
717
717
|
});
|
|
718
718
|
var fabricationNoteTextProps = pcbLayoutProps.extend({
|
|
719
719
|
text: import_zod30.z.string(),
|
|
720
720
|
anchorAlignment: import_zod30.z.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
|
|
721
721
|
font: import_zod30.z.enum(["tscircuit2024"]).optional(),
|
|
722
|
-
fontSize:
|
|
722
|
+
fontSize: import_circuit_json17.length.optional(),
|
|
723
723
|
color: import_zod30.z.string().optional()
|
|
724
724
|
});
|
|
725
725
|
var fabricationNotePathProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotation: true }).extend({
|
|
726
|
-
route: import_zod30.z.array(
|
|
727
|
-
strokeWidth:
|
|
726
|
+
route: import_zod30.z.array(import_circuit_json17.route_hint_point),
|
|
727
|
+
strokeWidth: import_circuit_json17.length.optional(),
|
|
728
728
|
color: import_zod30.z.string().optional()
|
|
729
729
|
});
|
|
730
730
|
// Annotate the CommonJS export names for ESM import in node:
|