circuit-json 0.0.59 → 0.0.75
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 +5 -5
- package/dist/index.d.ts +3518 -281
- package/dist/index.js +516 -394
- package/dist/index.js.map +1 -1
- package/package.json +5 -2
package/dist/index.js
CHANGED
|
@@ -31,12 +31,14 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
31
31
|
var src_exports = {};
|
|
32
32
|
__export(src_exports, {
|
|
33
33
|
all_layers: () => all_layers,
|
|
34
|
+
any_circuit_element: () => any_circuit_element,
|
|
34
35
|
any_soup_element: () => any_soup_element,
|
|
35
36
|
any_source_component: () => any_source_component,
|
|
36
37
|
cad_component: () => cad_component,
|
|
37
38
|
capacitance: () => capacitance,
|
|
38
39
|
current: () => current,
|
|
39
40
|
distance: () => distance,
|
|
41
|
+
getZodPrefixedIdWithDefault: () => getZodPrefixedIdWithDefault,
|
|
40
42
|
inductance: () => inductance,
|
|
41
43
|
layer_ref: () => layer_ref,
|
|
42
44
|
layer_string: () => layer_string,
|
|
@@ -46,6 +48,8 @@ __export(src_exports, {
|
|
|
46
48
|
pcb_fabrication_note_path: () => pcb_fabrication_note_path,
|
|
47
49
|
pcb_fabrication_note_text: () => pcb_fabrication_note_text,
|
|
48
50
|
pcb_hole: () => pcb_hole,
|
|
51
|
+
pcb_hole_circle_or_square_shape: () => pcb_hole_circle_or_square_shape,
|
|
52
|
+
pcb_hole_oval_shape: () => pcb_hole_oval_shape,
|
|
49
53
|
pcb_keepout: () => pcb_keepout,
|
|
50
54
|
pcb_placement_error: () => pcb_placement_error,
|
|
51
55
|
pcb_plated_hole: () => pcb_plated_hole,
|
|
@@ -64,6 +68,9 @@ __export(src_exports, {
|
|
|
64
68
|
pcb_trace: () => pcb_trace,
|
|
65
69
|
pcb_trace_error: () => pcb_trace_error,
|
|
66
70
|
pcb_trace_hint: () => pcb_trace_hint,
|
|
71
|
+
pcb_trace_route_point: () => pcb_trace_route_point,
|
|
72
|
+
pcb_trace_route_point_via: () => pcb_trace_route_point_via,
|
|
73
|
+
pcb_trace_route_point_wire: () => pcb_trace_route_point_wire,
|
|
67
74
|
pcb_via: () => pcb_via,
|
|
68
75
|
point: () => point,
|
|
69
76
|
point3: () => point3,
|
|
@@ -78,6 +85,7 @@ __export(src_exports, {
|
|
|
78
85
|
schematic_line: () => schematic_line,
|
|
79
86
|
schematic_net_label: () => schematic_net_label,
|
|
80
87
|
schematic_path: () => schematic_path,
|
|
88
|
+
schematic_pin_styles: () => schematic_pin_styles,
|
|
81
89
|
schematic_port: () => schematic_port,
|
|
82
90
|
schematic_text: () => schematic_text,
|
|
83
91
|
schematic_trace: () => schematic_trace,
|
|
@@ -199,7 +207,17 @@ var length = import_zod.z.string().or(import_zod.z.number()).transform((v) => pa
|
|
|
199
207
|
var distance = length;
|
|
200
208
|
var current = import_zod.z.string().or(import_zod.z.number()).transform((v) => parseAndConvertSiUnit(v).value);
|
|
201
209
|
var time = import_zod.z.string().or(import_zod.z.number()).transform((v) => parseAndConvertSiUnit(v).value);
|
|
202
|
-
var rotation = import_zod.z.string().or(import_zod.z.number()).transform((
|
|
210
|
+
var rotation = import_zod.z.string().or(import_zod.z.number()).transform((arg) => {
|
|
211
|
+
if (typeof arg === "number")
|
|
212
|
+
return arg;
|
|
213
|
+
if (arg.endsWith("deg")) {
|
|
214
|
+
return Number.parseFloat(arg.split("deg")[0]);
|
|
215
|
+
}
|
|
216
|
+
if (arg.endsWith("rad")) {
|
|
217
|
+
return Number.parseFloat(arg.split("rad")[0]) * 180 / Math.PI;
|
|
218
|
+
}
|
|
219
|
+
return Number.parseFloat(arg);
|
|
220
|
+
});
|
|
203
221
|
|
|
204
222
|
// src/common/point.ts
|
|
205
223
|
var import_zod2 = require("zod");
|
|
@@ -225,12 +243,19 @@ var size = import_zod4.z.object({
|
|
|
225
243
|
height: import_zod4.z.number()
|
|
226
244
|
});
|
|
227
245
|
|
|
246
|
+
// src/common/getZodPrefixedIdWithDefault.ts
|
|
247
|
+
var import_zod5 = require("zod");
|
|
248
|
+
var import_nanoid = require("nanoid");
|
|
249
|
+
var getZodPrefixedIdWithDefault = (prefix) => {
|
|
250
|
+
return import_zod5.z.string().optional().default(() => `${prefix}_${(0, import_nanoid.nanoid)(10)}`);
|
|
251
|
+
};
|
|
252
|
+
|
|
228
253
|
// src/source/source_simple_capacitor.ts
|
|
229
|
-
var
|
|
254
|
+
var import_zod8 = require("zod");
|
|
230
255
|
|
|
231
256
|
// src/pcb/properties/supplier_name.ts
|
|
232
|
-
var
|
|
233
|
-
var supplier_name =
|
|
257
|
+
var import_zod6 = require("zod");
|
|
258
|
+
var supplier_name = import_zod6.z.enum([
|
|
234
259
|
"jlcpcb",
|
|
235
260
|
"macrofab",
|
|
236
261
|
"pcbway",
|
|
@@ -240,76 +265,76 @@ var supplier_name = import_zod5.z.enum([
|
|
|
240
265
|
]);
|
|
241
266
|
|
|
242
267
|
// src/source/base/source_component_base.ts
|
|
243
|
-
var
|
|
244
|
-
var source_component_base =
|
|
245
|
-
type:
|
|
246
|
-
ftype:
|
|
247
|
-
source_component_id:
|
|
248
|
-
name:
|
|
249
|
-
manufacturer_part_number:
|
|
250
|
-
supplier_part_numbers:
|
|
268
|
+
var import_zod7 = require("zod");
|
|
269
|
+
var source_component_base = import_zod7.z.object({
|
|
270
|
+
type: import_zod7.z.literal("source_component"),
|
|
271
|
+
ftype: import_zod7.z.string().optional(),
|
|
272
|
+
source_component_id: import_zod7.z.string(),
|
|
273
|
+
name: import_zod7.z.string(),
|
|
274
|
+
manufacturer_part_number: import_zod7.z.string().optional(),
|
|
275
|
+
supplier_part_numbers: import_zod7.z.record(supplier_name, import_zod7.z.array(import_zod7.z.string())).optional()
|
|
251
276
|
});
|
|
252
277
|
|
|
253
278
|
// src/source/source_simple_capacitor.ts
|
|
254
279
|
var source_simple_capacitor = source_component_base.extend({
|
|
255
|
-
ftype:
|
|
280
|
+
ftype: import_zod8.z.literal("simple_capacitor"),
|
|
256
281
|
capacitance
|
|
257
282
|
});
|
|
258
283
|
|
|
259
284
|
// src/source/source_simple_resistor.ts
|
|
260
|
-
var
|
|
285
|
+
var import_zod9 = require("zod");
|
|
261
286
|
var source_simple_resistor = source_component_base.extend({
|
|
262
|
-
ftype:
|
|
287
|
+
ftype: import_zod9.z.literal("simple_resistor"),
|
|
263
288
|
resistance
|
|
264
289
|
});
|
|
265
290
|
|
|
266
291
|
// src/source/source_simple_diode.ts
|
|
267
|
-
var
|
|
292
|
+
var import_zod10 = require("zod");
|
|
268
293
|
var source_simple_diode = source_component_base.extend({
|
|
269
|
-
ftype:
|
|
294
|
+
ftype: import_zod10.z.literal("simple_diode")
|
|
270
295
|
});
|
|
271
296
|
|
|
272
297
|
// src/source/source_simple_ground.ts
|
|
273
|
-
var
|
|
298
|
+
var import_zod11 = require("zod");
|
|
274
299
|
var source_simple_ground = source_component_base.extend({
|
|
275
|
-
ftype:
|
|
300
|
+
ftype: import_zod11.z.literal("simple_ground")
|
|
276
301
|
});
|
|
277
302
|
|
|
278
303
|
// src/source/source_simple_bug.ts
|
|
279
|
-
var
|
|
304
|
+
var import_zod12 = require("zod");
|
|
280
305
|
var source_simple_bug = source_component_base.extend({
|
|
281
|
-
ftype:
|
|
306
|
+
ftype: import_zod12.z.literal("simple_bug")
|
|
282
307
|
}).describe("@deprecated");
|
|
283
308
|
|
|
284
309
|
// src/source/source_simple_chip.ts
|
|
285
|
-
var
|
|
310
|
+
var import_zod13 = require("zod");
|
|
286
311
|
var source_simple_chip = source_component_base.extend({
|
|
287
|
-
ftype:
|
|
312
|
+
ftype: import_zod13.z.literal("simple_chip")
|
|
288
313
|
});
|
|
289
314
|
|
|
290
315
|
// src/source/source_simple_inductor.ts
|
|
291
|
-
var
|
|
316
|
+
var import_zod14 = require("zod");
|
|
292
317
|
var source_simple_inductor = source_component_base.extend({
|
|
293
|
-
ftype:
|
|
318
|
+
ftype: import_zod14.z.literal("simple_inductor"),
|
|
294
319
|
inductance
|
|
295
320
|
});
|
|
296
321
|
|
|
297
322
|
// src/source/source_led.ts
|
|
298
|
-
var
|
|
323
|
+
var import_zod15 = require("zod");
|
|
299
324
|
var source_led = source_simple_diode.extend({
|
|
300
|
-
ftype:
|
|
325
|
+
ftype: import_zod15.z.literal("led")
|
|
301
326
|
});
|
|
302
327
|
|
|
303
328
|
// src/source/source_simple_power_source.ts
|
|
304
|
-
var
|
|
329
|
+
var import_zod16 = require("zod");
|
|
305
330
|
var source_simple_power_source = source_component_base.extend({
|
|
306
|
-
ftype:
|
|
331
|
+
ftype: import_zod16.z.literal("simple_power_source"),
|
|
307
332
|
voltage
|
|
308
333
|
});
|
|
309
334
|
|
|
310
335
|
// src/source/any_source_component.ts
|
|
311
|
-
var
|
|
312
|
-
var any_source_component =
|
|
336
|
+
var import_zod17 = require("zod");
|
|
337
|
+
var any_source_component = import_zod17.z.union([
|
|
313
338
|
source_simple_resistor,
|
|
314
339
|
source_simple_capacitor,
|
|
315
340
|
source_simple_diode,
|
|
@@ -321,52 +346,52 @@ var any_source_component = import_zod16.z.union([
|
|
|
321
346
|
]);
|
|
322
347
|
|
|
323
348
|
// src/source/source_port.ts
|
|
324
|
-
var
|
|
325
|
-
var source_port =
|
|
326
|
-
type:
|
|
327
|
-
pin_number:
|
|
328
|
-
port_hints:
|
|
329
|
-
name:
|
|
330
|
-
source_port_id:
|
|
331
|
-
source_component_id:
|
|
349
|
+
var import_zod18 = require("zod");
|
|
350
|
+
var source_port = import_zod18.z.object({
|
|
351
|
+
type: import_zod18.z.literal("source_port"),
|
|
352
|
+
pin_number: import_zod18.z.number().optional(),
|
|
353
|
+
port_hints: import_zod18.z.array(import_zod18.z.string()).optional(),
|
|
354
|
+
name: import_zod18.z.string(),
|
|
355
|
+
source_port_id: import_zod18.z.string(),
|
|
356
|
+
source_component_id: import_zod18.z.string()
|
|
332
357
|
});
|
|
333
358
|
|
|
334
359
|
// src/source/source_trace.ts
|
|
335
|
-
var
|
|
336
|
-
var source_trace =
|
|
337
|
-
type:
|
|
338
|
-
source_trace_id:
|
|
339
|
-
connected_source_port_ids:
|
|
340
|
-
connected_source_net_ids:
|
|
360
|
+
var import_zod19 = require("zod");
|
|
361
|
+
var source_trace = import_zod19.z.object({
|
|
362
|
+
type: import_zod19.z.literal("source_trace"),
|
|
363
|
+
source_trace_id: import_zod19.z.string(),
|
|
364
|
+
connected_source_port_ids: import_zod19.z.array(import_zod19.z.string()),
|
|
365
|
+
connected_source_net_ids: import_zod19.z.array(import_zod19.z.string())
|
|
341
366
|
});
|
|
342
367
|
|
|
343
368
|
// src/source/source_group.ts
|
|
344
|
-
var
|
|
345
|
-
var source_group =
|
|
346
|
-
type:
|
|
347
|
-
source_group_id:
|
|
348
|
-
name:
|
|
369
|
+
var import_zod20 = require("zod");
|
|
370
|
+
var source_group = import_zod20.z.object({
|
|
371
|
+
type: import_zod20.z.literal("source_group"),
|
|
372
|
+
source_group_id: import_zod20.z.string(),
|
|
373
|
+
name: import_zod20.z.string().optional()
|
|
349
374
|
});
|
|
350
375
|
|
|
351
376
|
// src/source/source_net.ts
|
|
352
|
-
var
|
|
353
|
-
var source_net =
|
|
354
|
-
type:
|
|
355
|
-
source_net_id:
|
|
356
|
-
name:
|
|
357
|
-
member_source_group_ids:
|
|
358
|
-
is_power:
|
|
359
|
-
is_ground:
|
|
360
|
-
is_digital_signal:
|
|
361
|
-
is_analog_signal:
|
|
362
|
-
trace_width:
|
|
377
|
+
var import_zod21 = require("zod");
|
|
378
|
+
var source_net = import_zod21.z.object({
|
|
379
|
+
type: import_zod21.z.literal("source_net"),
|
|
380
|
+
source_net_id: import_zod21.z.string(),
|
|
381
|
+
name: import_zod21.z.string(),
|
|
382
|
+
member_source_group_ids: import_zod21.z.array(import_zod21.z.string()),
|
|
383
|
+
is_power: import_zod21.z.boolean().optional(),
|
|
384
|
+
is_ground: import_zod21.z.boolean().optional(),
|
|
385
|
+
is_digital_signal: import_zod21.z.boolean().optional(),
|
|
386
|
+
is_analog_signal: import_zod21.z.boolean().optional(),
|
|
387
|
+
trace_width: import_zod21.z.number().optional()
|
|
363
388
|
});
|
|
364
389
|
|
|
365
390
|
// src/schematic/schematic_box.ts
|
|
366
|
-
var
|
|
367
|
-
var schematic_box =
|
|
368
|
-
type:
|
|
369
|
-
schematic_component_id:
|
|
391
|
+
var import_zod22 = require("zod");
|
|
392
|
+
var schematic_box = import_zod22.z.object({
|
|
393
|
+
type: import_zod22.z.literal("schematic_box"),
|
|
394
|
+
schematic_component_id: import_zod22.z.string(),
|
|
370
395
|
width: distance,
|
|
371
396
|
height: distance,
|
|
372
397
|
x: distance,
|
|
@@ -374,61 +399,70 @@ var schematic_box = import_zod21.z.object({
|
|
|
374
399
|
}).describe("Draws a box on the schematic");
|
|
375
400
|
|
|
376
401
|
// src/schematic/schematic_path.ts
|
|
377
|
-
var
|
|
378
|
-
var schematic_path =
|
|
379
|
-
type:
|
|
380
|
-
schematic_component_id:
|
|
381
|
-
fill_color:
|
|
382
|
-
is_filled:
|
|
383
|
-
points:
|
|
402
|
+
var import_zod23 = require("zod");
|
|
403
|
+
var schematic_path = import_zod23.z.object({
|
|
404
|
+
type: import_zod23.z.literal("schematic_path"),
|
|
405
|
+
schematic_component_id: import_zod23.z.string(),
|
|
406
|
+
fill_color: import_zod23.z.enum(["red", "blue"]).optional(),
|
|
407
|
+
is_filled: import_zod23.z.boolean().optional(),
|
|
408
|
+
points: import_zod23.z.array(point)
|
|
384
409
|
});
|
|
385
410
|
|
|
386
411
|
// src/schematic/schematic_component.ts
|
|
387
|
-
var
|
|
388
|
-
var
|
|
389
|
-
|
|
412
|
+
var import_zod24 = require("zod");
|
|
413
|
+
var schematic_pin_styles = import_zod24.z.record(
|
|
414
|
+
import_zod24.z.object({
|
|
415
|
+
left_margin: length.optional(),
|
|
416
|
+
right_margin: length.optional(),
|
|
417
|
+
top_margin: length.optional(),
|
|
418
|
+
bottom_margin: length.optional()
|
|
419
|
+
})
|
|
420
|
+
);
|
|
421
|
+
var schematic_component = import_zod24.z.object({
|
|
422
|
+
type: import_zod24.z.literal("schematic_component"),
|
|
390
423
|
rotation: rotation.default(0),
|
|
391
424
|
size,
|
|
392
425
|
center: point,
|
|
393
|
-
source_component_id:
|
|
394
|
-
schematic_component_id:
|
|
426
|
+
source_component_id: import_zod24.z.string(),
|
|
427
|
+
schematic_component_id: import_zod24.z.string(),
|
|
395
428
|
pin_spacing: length.optional(),
|
|
429
|
+
pin_styles: schematic_pin_styles.optional(),
|
|
396
430
|
box_width: length.optional(),
|
|
397
|
-
symbol_name:
|
|
398
|
-
port_arrangement:
|
|
399
|
-
|
|
400
|
-
left_size:
|
|
401
|
-
right_size:
|
|
402
|
-
top_size:
|
|
403
|
-
bottom_size:
|
|
431
|
+
symbol_name: import_zod24.z.string().optional(),
|
|
432
|
+
port_arrangement: import_zod24.z.union([
|
|
433
|
+
import_zod24.z.object({
|
|
434
|
+
left_size: import_zod24.z.number(),
|
|
435
|
+
right_size: import_zod24.z.number(),
|
|
436
|
+
top_size: import_zod24.z.number().optional(),
|
|
437
|
+
bottom_size: import_zod24.z.number().optional()
|
|
404
438
|
}),
|
|
405
|
-
|
|
406
|
-
left_side:
|
|
407
|
-
pins:
|
|
408
|
-
direction:
|
|
439
|
+
import_zod24.z.object({
|
|
440
|
+
left_side: import_zod24.z.object({
|
|
441
|
+
pins: import_zod24.z.array(import_zod24.z.number()),
|
|
442
|
+
direction: import_zod24.z.enum(["top-to-bottom", "bottom-to-top"]).optional()
|
|
409
443
|
}).optional(),
|
|
410
|
-
right_side:
|
|
411
|
-
pins:
|
|
412
|
-
direction:
|
|
444
|
+
right_side: import_zod24.z.object({
|
|
445
|
+
pins: import_zod24.z.array(import_zod24.z.number()),
|
|
446
|
+
direction: import_zod24.z.enum(["top-to-bottom", "bottom-to-top"]).optional()
|
|
413
447
|
}).optional(),
|
|
414
|
-
top_side:
|
|
415
|
-
pins:
|
|
416
|
-
direction:
|
|
448
|
+
top_side: import_zod24.z.object({
|
|
449
|
+
pins: import_zod24.z.array(import_zod24.z.number()),
|
|
450
|
+
direction: import_zod24.z.enum(["left-to-right", "right-to-left"]).optional()
|
|
417
451
|
}).optional(),
|
|
418
|
-
bottom_side:
|
|
419
|
-
pins:
|
|
420
|
-
direction:
|
|
452
|
+
bottom_side: import_zod24.z.object({
|
|
453
|
+
pins: import_zod24.z.array(import_zod24.z.number()),
|
|
454
|
+
direction: import_zod24.z.enum(["left-to-right", "right-to-left"]).optional()
|
|
421
455
|
}).optional()
|
|
422
456
|
})
|
|
423
457
|
]).optional(),
|
|
424
|
-
port_labels:
|
|
458
|
+
port_labels: import_zod24.z.record(import_zod24.z.string()).optional()
|
|
425
459
|
});
|
|
426
460
|
|
|
427
461
|
// src/schematic/schematic_line.ts
|
|
428
|
-
var
|
|
429
|
-
var schematic_line =
|
|
430
|
-
type:
|
|
431
|
-
schematic_component_id:
|
|
462
|
+
var import_zod25 = require("zod");
|
|
463
|
+
var schematic_line = import_zod25.z.object({
|
|
464
|
+
type: import_zod25.z.literal("schematic_line"),
|
|
465
|
+
schematic_component_id: import_zod25.z.string(),
|
|
432
466
|
x1: distance,
|
|
433
467
|
x2: distance,
|
|
434
468
|
y1: distance,
|
|
@@ -436,75 +470,75 @@ var schematic_line = import_zod24.z.object({
|
|
|
436
470
|
});
|
|
437
471
|
|
|
438
472
|
// src/schematic/schematic_trace.ts
|
|
439
|
-
var
|
|
440
|
-
var schematic_trace =
|
|
441
|
-
type:
|
|
442
|
-
schematic_trace_id:
|
|
443
|
-
source_trace_id:
|
|
444
|
-
edges:
|
|
445
|
-
|
|
446
|
-
from:
|
|
447
|
-
x:
|
|
448
|
-
y:
|
|
473
|
+
var import_zod26 = require("zod");
|
|
474
|
+
var schematic_trace = import_zod26.z.object({
|
|
475
|
+
type: import_zod26.z.literal("schematic_trace"),
|
|
476
|
+
schematic_trace_id: import_zod26.z.string(),
|
|
477
|
+
source_trace_id: import_zod26.z.string(),
|
|
478
|
+
edges: import_zod26.z.array(
|
|
479
|
+
import_zod26.z.object({
|
|
480
|
+
from: import_zod26.z.object({
|
|
481
|
+
x: import_zod26.z.number(),
|
|
482
|
+
y: import_zod26.z.number()
|
|
449
483
|
}),
|
|
450
|
-
to:
|
|
451
|
-
x:
|
|
452
|
-
y:
|
|
484
|
+
to: import_zod26.z.object({
|
|
485
|
+
x: import_zod26.z.number(),
|
|
486
|
+
y: import_zod26.z.number()
|
|
453
487
|
}),
|
|
454
|
-
from_schematic_port_id:
|
|
455
|
-
to_schematic_port_id:
|
|
488
|
+
from_schematic_port_id: import_zod26.z.string().optional(),
|
|
489
|
+
to_schematic_port_id: import_zod26.z.string().optional()
|
|
456
490
|
})
|
|
457
491
|
)
|
|
458
492
|
});
|
|
459
493
|
|
|
460
494
|
// src/schematic/schematic_text.ts
|
|
461
|
-
var
|
|
462
|
-
var schematic_text =
|
|
463
|
-
type:
|
|
464
|
-
schematic_component_id:
|
|
465
|
-
schematic_text_id:
|
|
466
|
-
text:
|
|
467
|
-
position:
|
|
495
|
+
var import_zod27 = require("zod");
|
|
496
|
+
var schematic_text = import_zod27.z.object({
|
|
497
|
+
type: import_zod27.z.literal("schematic_text"),
|
|
498
|
+
schematic_component_id: import_zod27.z.string(),
|
|
499
|
+
schematic_text_id: import_zod27.z.string(),
|
|
500
|
+
text: import_zod27.z.string(),
|
|
501
|
+
position: import_zod27.z.object({
|
|
468
502
|
x: distance,
|
|
469
503
|
y: distance
|
|
470
504
|
}),
|
|
471
|
-
rotation:
|
|
472
|
-
anchor:
|
|
505
|
+
rotation: import_zod27.z.number().default(0),
|
|
506
|
+
anchor: import_zod27.z.enum(["center", "left", "right", "top", "bottom"]).default("center")
|
|
473
507
|
});
|
|
474
508
|
|
|
475
509
|
// src/schematic/schematic_port.ts
|
|
476
|
-
var
|
|
477
|
-
var schematic_port =
|
|
478
|
-
type:
|
|
479
|
-
schematic_port_id:
|
|
480
|
-
source_port_id:
|
|
481
|
-
schematic_component_id:
|
|
510
|
+
var import_zod28 = require("zod");
|
|
511
|
+
var schematic_port = import_zod28.z.object({
|
|
512
|
+
type: import_zod28.z.literal("schematic_port"),
|
|
513
|
+
schematic_port_id: import_zod28.z.string(),
|
|
514
|
+
source_port_id: import_zod28.z.string(),
|
|
515
|
+
schematic_component_id: import_zod28.z.string().optional(),
|
|
482
516
|
center: point,
|
|
483
|
-
facing_direction:
|
|
517
|
+
facing_direction: import_zod28.z.enum(["up", "down", "left", "right"]).optional()
|
|
484
518
|
}).describe("Defines a port on a schematic component");
|
|
485
519
|
|
|
486
520
|
// src/schematic/schematic_net_label.ts
|
|
487
|
-
var
|
|
488
|
-
var schematic_net_label =
|
|
489
|
-
type:
|
|
490
|
-
source_net_id:
|
|
521
|
+
var import_zod29 = require("zod");
|
|
522
|
+
var schematic_net_label = import_zod29.z.object({
|
|
523
|
+
type: import_zod29.z.literal("schematic_net_label"),
|
|
524
|
+
source_net_id: import_zod29.z.string(),
|
|
491
525
|
center: point,
|
|
492
|
-
anchor_side:
|
|
493
|
-
text:
|
|
526
|
+
anchor_side: import_zod29.z.enum(["top", "bottom", "left", "right"]),
|
|
527
|
+
text: import_zod29.z.string()
|
|
494
528
|
});
|
|
495
529
|
|
|
496
530
|
// src/schematic/schematic_error.ts
|
|
497
|
-
var
|
|
498
|
-
var schematic_error =
|
|
499
|
-
schematic_error_id:
|
|
500
|
-
type:
|
|
531
|
+
var import_zod30 = require("zod");
|
|
532
|
+
var schematic_error = import_zod30.z.object({
|
|
533
|
+
schematic_error_id: import_zod30.z.string(),
|
|
534
|
+
type: import_zod30.z.literal("schematic_error"),
|
|
501
535
|
// eventually each error type should be broken out into a dir of files
|
|
502
|
-
error_type:
|
|
503
|
-
message:
|
|
536
|
+
error_type: import_zod30.z.literal("schematic_port_not_found"),
|
|
537
|
+
message: import_zod30.z.string()
|
|
504
538
|
}).describe("Defines a schematic error on the schematic");
|
|
505
539
|
|
|
506
540
|
// src/pcb/properties/layer_ref.ts
|
|
507
|
-
var
|
|
541
|
+
var import_zod31 = require("zod");
|
|
508
542
|
var all_layers = [
|
|
509
543
|
"top",
|
|
510
544
|
"bottom",
|
|
@@ -515,9 +549,9 @@ var all_layers = [
|
|
|
515
549
|
"inner5",
|
|
516
550
|
"inner6"
|
|
517
551
|
];
|
|
518
|
-
var layer_string =
|
|
552
|
+
var layer_string = import_zod31.z.enum(all_layers);
|
|
519
553
|
var layer_ref = layer_string.or(
|
|
520
|
-
|
|
554
|
+
import_zod31.z.object({
|
|
521
555
|
name: layer_string
|
|
522
556
|
})
|
|
523
557
|
).transform((layer) => {
|
|
@@ -526,204 +560,258 @@ var layer_ref = layer_string.or(
|
|
|
526
560
|
}
|
|
527
561
|
return layer.name;
|
|
528
562
|
});
|
|
529
|
-
var visible_layer =
|
|
563
|
+
var visible_layer = import_zod31.z.enum(["top", "bottom"]);
|
|
530
564
|
|
|
531
565
|
// src/pcb/properties/pcb_route_hints.ts
|
|
532
|
-
var
|
|
533
|
-
var pcb_route_hint =
|
|
566
|
+
var import_zod32 = require("zod");
|
|
567
|
+
var pcb_route_hint = import_zod32.z.object({
|
|
534
568
|
x: distance,
|
|
535
569
|
y: distance,
|
|
536
|
-
via:
|
|
570
|
+
via: import_zod32.z.boolean().optional(),
|
|
537
571
|
via_to_layer: layer_ref.optional()
|
|
538
572
|
});
|
|
539
|
-
var pcb_route_hints =
|
|
573
|
+
var pcb_route_hints = import_zod32.z.array(pcb_route_hint);
|
|
540
574
|
|
|
541
575
|
// src/pcb/properties/route_hint_point.ts
|
|
542
|
-
var
|
|
543
|
-
var route_hint_point =
|
|
576
|
+
var import_zod33 = require("zod");
|
|
577
|
+
var route_hint_point = import_zod33.z.object({
|
|
544
578
|
x: distance,
|
|
545
579
|
y: distance,
|
|
546
|
-
via:
|
|
580
|
+
via: import_zod33.z.boolean().optional(),
|
|
547
581
|
to_layer: layer_ref.optional(),
|
|
548
582
|
trace_width: distance.optional()
|
|
549
583
|
});
|
|
550
584
|
|
|
551
585
|
// src/pcb/pcb_component.ts
|
|
552
|
-
var
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
586
|
+
var import_zod34 = require("zod");
|
|
587
|
+
|
|
588
|
+
// src/utils/expect-types-match.ts
|
|
589
|
+
var expectTypesMatch = (shouldBe) => {
|
|
590
|
+
};
|
|
591
|
+
|
|
592
|
+
// src/pcb/pcb_component.ts
|
|
593
|
+
var pcb_component = import_zod34.z.object({
|
|
594
|
+
type: import_zod34.z.literal("pcb_component"),
|
|
595
|
+
pcb_component_id: getZodPrefixedIdWithDefault("pcb_component"),
|
|
596
|
+
source_component_id: import_zod34.z.string(),
|
|
557
597
|
center: point,
|
|
558
598
|
layer: layer_ref,
|
|
559
599
|
rotation,
|
|
560
600
|
width: length,
|
|
561
601
|
height: length
|
|
562
602
|
}).describe("Defines a component on the PCB");
|
|
603
|
+
expectTypesMatch(true);
|
|
563
604
|
|
|
564
605
|
// src/pcb/pcb_hole.ts
|
|
565
|
-
var
|
|
566
|
-
var
|
|
567
|
-
type:
|
|
568
|
-
|
|
569
|
-
|
|
606
|
+
var import_zod35 = require("zod");
|
|
607
|
+
var pcb_hole_circle_or_square = import_zod35.z.object({
|
|
608
|
+
type: import_zod35.z.literal("pcb_hole"),
|
|
609
|
+
pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
|
|
610
|
+
hole_shape: import_zod35.z.enum(["circle", "square"]),
|
|
611
|
+
hole_diameter: import_zod35.z.number(),
|
|
570
612
|
x: distance,
|
|
571
613
|
y: distance
|
|
572
|
-
})
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
614
|
+
});
|
|
615
|
+
var pcb_hole_circle_or_square_shape = pcb_hole_circle_or_square.describe(
|
|
616
|
+
"Defines a circular or square hole on the PCB"
|
|
617
|
+
);
|
|
618
|
+
expectTypesMatch(true);
|
|
619
|
+
var pcb_hole_oval = import_zod35.z.object({
|
|
620
|
+
type: import_zod35.z.literal("pcb_hole"),
|
|
621
|
+
pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
|
|
622
|
+
hole_shape: import_zod35.z.literal("oval"),
|
|
623
|
+
hole_width: import_zod35.z.number(),
|
|
624
|
+
hole_height: import_zod35.z.number(),
|
|
625
|
+
x: distance,
|
|
626
|
+
y: distance
|
|
627
|
+
});
|
|
628
|
+
var pcb_hole_oval_shape = pcb_hole_oval.describe(
|
|
629
|
+
"Defines an oval hole on the PCB"
|
|
630
|
+
);
|
|
631
|
+
expectTypesMatch(true);
|
|
632
|
+
var pcb_hole = pcb_hole_circle_or_square.or(pcb_hole_oval);
|
|
582
633
|
|
|
583
634
|
// src/pcb/pcb_plated_hole.ts
|
|
584
|
-
var
|
|
585
|
-
var
|
|
586
|
-
type:
|
|
587
|
-
shape:
|
|
588
|
-
outer_diameter:
|
|
589
|
-
hole_diameter:
|
|
635
|
+
var import_zod36 = require("zod");
|
|
636
|
+
var pcb_plated_hole_circle = import_zod36.z.object({
|
|
637
|
+
type: import_zod36.z.literal("pcb_plated_hole"),
|
|
638
|
+
shape: import_zod36.z.literal("circle"),
|
|
639
|
+
outer_diameter: import_zod36.z.number(),
|
|
640
|
+
hole_diameter: import_zod36.z.number(),
|
|
590
641
|
x: distance,
|
|
591
642
|
y: distance,
|
|
592
|
-
layers:
|
|
593
|
-
port_hints:
|
|
594
|
-
pcb_component_id:
|
|
595
|
-
pcb_port_id:
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
643
|
+
layers: import_zod36.z.array(layer_ref),
|
|
644
|
+
port_hints: import_zod36.z.array(import_zod36.z.string()).optional(),
|
|
645
|
+
pcb_component_id: import_zod36.z.string().optional(),
|
|
646
|
+
pcb_port_id: import_zod36.z.string().optional(),
|
|
647
|
+
pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole")
|
|
648
|
+
});
|
|
649
|
+
var pcb_plated_hole_oval = import_zod36.z.object({
|
|
650
|
+
type: import_zod36.z.literal("pcb_plated_hole"),
|
|
651
|
+
shape: import_zod36.z.enum(["oval", "pill"]),
|
|
652
|
+
outer_width: import_zod36.z.number(),
|
|
653
|
+
outer_height: import_zod36.z.number(),
|
|
654
|
+
hole_width: import_zod36.z.number(),
|
|
655
|
+
hole_height: import_zod36.z.number(),
|
|
656
|
+
x: distance,
|
|
657
|
+
y: distance,
|
|
658
|
+
layers: import_zod36.z.array(layer_ref),
|
|
659
|
+
port_hints: import_zod36.z.array(import_zod36.z.string()).optional(),
|
|
660
|
+
pcb_component_id: import_zod36.z.string().optional(),
|
|
661
|
+
pcb_port_id: import_zod36.z.string().optional(),
|
|
662
|
+
pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole")
|
|
663
|
+
});
|
|
664
|
+
var pcb_plated_hole = import_zod36.z.union([
|
|
665
|
+
pcb_plated_hole_circle,
|
|
666
|
+
pcb_plated_hole_oval
|
|
667
|
+
]);
|
|
668
|
+
expectTypesMatch(
|
|
669
|
+
true
|
|
670
|
+
);
|
|
671
|
+
expectTypesMatch(true);
|
|
612
672
|
|
|
613
673
|
// src/pcb/pcb_port.ts
|
|
614
|
-
var
|
|
615
|
-
var pcb_port =
|
|
616
|
-
type:
|
|
617
|
-
pcb_port_id:
|
|
618
|
-
source_port_id:
|
|
619
|
-
pcb_component_id:
|
|
674
|
+
var import_zod37 = require("zod");
|
|
675
|
+
var pcb_port = import_zod37.z.object({
|
|
676
|
+
type: import_zod37.z.literal("pcb_port"),
|
|
677
|
+
pcb_port_id: getZodPrefixedIdWithDefault("pcb_port"),
|
|
678
|
+
source_port_id: import_zod37.z.string(),
|
|
679
|
+
pcb_component_id: import_zod37.z.string(),
|
|
620
680
|
x: distance,
|
|
621
681
|
y: distance,
|
|
622
|
-
layers:
|
|
682
|
+
layers: import_zod37.z.array(layer_ref)
|
|
623
683
|
}).describe("Defines a port on the PCB");
|
|
684
|
+
expectTypesMatch(true);
|
|
624
685
|
|
|
625
686
|
// src/pcb/pcb_smtpad.ts
|
|
626
|
-
var import_zod37 = require("zod");
|
|
627
|
-
var pcb_smtpad = import_zod37.z.union([
|
|
628
|
-
import_zod37.z.object({
|
|
629
|
-
pcb_smtpad_id: import_zod37.z.string(),
|
|
630
|
-
type: import_zod37.z.literal("pcb_smtpad"),
|
|
631
|
-
shape: import_zod37.z.literal("circle"),
|
|
632
|
-
x: distance,
|
|
633
|
-
y: distance,
|
|
634
|
-
radius: import_zod37.z.number(),
|
|
635
|
-
layer: layer_ref,
|
|
636
|
-
port_hints: import_zod37.z.array(import_zod37.z.string()).optional(),
|
|
637
|
-
pcb_component_id: import_zod37.z.string().optional(),
|
|
638
|
-
pcb_port_id: import_zod37.z.string().optional()
|
|
639
|
-
}),
|
|
640
|
-
import_zod37.z.object({
|
|
641
|
-
pcb_smtpad_id: import_zod37.z.string(),
|
|
642
|
-
type: import_zod37.z.literal("pcb_smtpad"),
|
|
643
|
-
shape: import_zod37.z.literal("rect"),
|
|
644
|
-
x: distance,
|
|
645
|
-
y: distance,
|
|
646
|
-
width: import_zod37.z.number(),
|
|
647
|
-
height: import_zod37.z.number(),
|
|
648
|
-
layer: layer_ref,
|
|
649
|
-
port_hints: import_zod37.z.array(import_zod37.z.string()).optional(),
|
|
650
|
-
pcb_component_id: import_zod37.z.string().optional(),
|
|
651
|
-
pcb_port_id: import_zod37.z.string().optional()
|
|
652
|
-
})
|
|
653
|
-
]).describe("Defines an SMT pad on the PCB");
|
|
654
|
-
|
|
655
|
-
// src/pcb/pcb_text.ts
|
|
656
687
|
var import_zod38 = require("zod");
|
|
657
|
-
var
|
|
658
|
-
type: import_zod38.z.literal("
|
|
659
|
-
|
|
688
|
+
var pcb_smtpad_circle = import_zod38.z.object({
|
|
689
|
+
type: import_zod38.z.literal("pcb_smtpad"),
|
|
690
|
+
shape: import_zod38.z.literal("circle"),
|
|
691
|
+
pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
|
|
660
692
|
x: distance,
|
|
661
693
|
y: distance,
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
694
|
+
radius: import_zod38.z.number(),
|
|
695
|
+
layer: layer_ref,
|
|
696
|
+
port_hints: import_zod38.z.array(import_zod38.z.string()).optional(),
|
|
697
|
+
pcb_component_id: import_zod38.z.string().optional(),
|
|
698
|
+
pcb_port_id: import_zod38.z.string().optional()
|
|
699
|
+
});
|
|
700
|
+
var pcb_smtpad_rect = import_zod38.z.object({
|
|
701
|
+
type: import_zod38.z.literal("pcb_smtpad"),
|
|
702
|
+
shape: import_zod38.z.literal("rect"),
|
|
703
|
+
pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
|
|
704
|
+
x: distance,
|
|
705
|
+
y: distance,
|
|
706
|
+
width: import_zod38.z.number(),
|
|
707
|
+
height: import_zod38.z.number(),
|
|
708
|
+
layer: layer_ref,
|
|
709
|
+
port_hints: import_zod38.z.array(import_zod38.z.string()).optional(),
|
|
710
|
+
pcb_component_id: import_zod38.z.string().optional(),
|
|
711
|
+
pcb_port_id: import_zod38.z.string().optional()
|
|
712
|
+
});
|
|
713
|
+
var pcb_smtpad = import_zod38.z.union([pcb_smtpad_circle, pcb_smtpad_rect]).describe("Defines an SMT pad on the PCB");
|
|
714
|
+
expectTypesMatch(true);
|
|
715
|
+
expectTypesMatch(true);
|
|
716
|
+
|
|
717
|
+
// src/pcb/pcb_text.ts
|
|
718
|
+
var import_zod39 = require("zod");
|
|
719
|
+
var pcb_text = import_zod39.z.object({
|
|
720
|
+
type: import_zod39.z.literal("pcb_text"),
|
|
721
|
+
pcb_text_id: getZodPrefixedIdWithDefault("pcb_text"),
|
|
722
|
+
text: import_zod39.z.string(),
|
|
723
|
+
center: point,
|
|
724
|
+
layer: layer_ref,
|
|
725
|
+
width: length,
|
|
726
|
+
height: length,
|
|
727
|
+
lines: import_zod39.z.number(),
|
|
728
|
+
align: import_zod39.z.enum(["bottom-left"])
|
|
666
729
|
}).describe("Defines text on the PCB");
|
|
730
|
+
expectTypesMatch(true);
|
|
667
731
|
|
|
668
732
|
// src/pcb/pcb_trace.ts
|
|
669
|
-
var
|
|
670
|
-
var
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
733
|
+
var import_zod40 = require("zod");
|
|
734
|
+
var pcb_trace_route_point_wire = import_zod40.z.object({
|
|
735
|
+
route_type: import_zod40.z.literal("wire"),
|
|
736
|
+
x: distance,
|
|
737
|
+
y: distance,
|
|
738
|
+
width: distance,
|
|
739
|
+
start_pcb_port_id: import_zod40.z.string().optional(),
|
|
740
|
+
end_pcb_port_id: import_zod40.z.string().optional(),
|
|
741
|
+
layer: layer_ref
|
|
742
|
+
});
|
|
743
|
+
var pcb_trace_route_point_via = import_zod40.z.object({
|
|
744
|
+
route_type: import_zod40.z.literal("via"),
|
|
745
|
+
x: distance,
|
|
746
|
+
y: distance,
|
|
747
|
+
from_layer: import_zod40.z.string(),
|
|
748
|
+
to_layer: import_zod40.z.string()
|
|
749
|
+
});
|
|
750
|
+
var pcb_trace_route_point = import_zod40.z.union([
|
|
751
|
+
pcb_trace_route_point_wire,
|
|
752
|
+
pcb_trace_route_point_via
|
|
753
|
+
]);
|
|
754
|
+
var pcb_trace = import_zod40.z.object({
|
|
755
|
+
type: import_zod40.z.literal("pcb_trace"),
|
|
756
|
+
source_trace_id: import_zod40.z.string().optional(),
|
|
757
|
+
pcb_component_id: import_zod40.z.string().optional(),
|
|
758
|
+
pcb_trace_id: getZodPrefixedIdWithDefault("pcb_trace"),
|
|
759
|
+
route_thickness_mode: import_zod40.z.enum(["constant", "interpolated"]).default("constant").optional(),
|
|
760
|
+
should_round_corners: import_zod40.z.boolean().optional(),
|
|
761
|
+
route: import_zod40.z.array(
|
|
762
|
+
import_zod40.z.union([
|
|
763
|
+
import_zod40.z.object({
|
|
764
|
+
route_type: import_zod40.z.literal("wire"),
|
|
681
765
|
x: distance,
|
|
682
766
|
y: distance,
|
|
683
767
|
width: distance,
|
|
684
|
-
start_pcb_port_id:
|
|
685
|
-
end_pcb_port_id:
|
|
686
|
-
layer:
|
|
768
|
+
start_pcb_port_id: import_zod40.z.string().optional(),
|
|
769
|
+
end_pcb_port_id: import_zod40.z.string().optional(),
|
|
770
|
+
layer: layer_ref
|
|
687
771
|
}),
|
|
688
|
-
|
|
689
|
-
route_type:
|
|
772
|
+
import_zod40.z.object({
|
|
773
|
+
route_type: import_zod40.z.literal("via"),
|
|
690
774
|
x: distance,
|
|
691
775
|
y: distance,
|
|
692
|
-
from_layer:
|
|
693
|
-
to_layer:
|
|
776
|
+
from_layer: import_zod40.z.string(),
|
|
777
|
+
to_layer: import_zod40.z.string()
|
|
694
778
|
})
|
|
695
779
|
])
|
|
696
780
|
)
|
|
697
|
-
});
|
|
781
|
+
}).describe("Defines a trace on the PCB");
|
|
782
|
+
expectTypesMatch(true);
|
|
783
|
+
expectTypesMatch(true);
|
|
698
784
|
|
|
699
785
|
// src/pcb/pcb_trace_error.ts
|
|
700
|
-
var
|
|
701
|
-
var pcb_trace_error =
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
error_type:
|
|
705
|
-
message:
|
|
786
|
+
var import_zod41 = require("zod");
|
|
787
|
+
var pcb_trace_error = import_zod41.z.object({
|
|
788
|
+
type: import_zod41.z.literal("pcb_trace_error"),
|
|
789
|
+
pcb_trace_error_id: getZodPrefixedIdWithDefault("pcb_trace_error"),
|
|
790
|
+
error_type: import_zod41.z.literal("pcb_trace_error"),
|
|
791
|
+
message: import_zod41.z.string(),
|
|
706
792
|
center: point.optional(),
|
|
707
|
-
pcb_trace_id:
|
|
708
|
-
source_trace_id:
|
|
709
|
-
pcb_component_ids:
|
|
710
|
-
pcb_port_ids:
|
|
793
|
+
pcb_trace_id: import_zod41.z.string(),
|
|
794
|
+
source_trace_id: import_zod41.z.string(),
|
|
795
|
+
pcb_component_ids: import_zod41.z.array(import_zod41.z.string()),
|
|
796
|
+
pcb_port_ids: import_zod41.z.array(import_zod41.z.string())
|
|
711
797
|
}).describe("Defines a trace error on the PCB");
|
|
798
|
+
expectTypesMatch(true);
|
|
712
799
|
|
|
713
800
|
// src/pcb/pcb_port_not_matched_error.ts
|
|
714
|
-
var
|
|
715
|
-
var pcb_port_not_matched_error =
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
801
|
+
var import_zod42 = require("zod");
|
|
802
|
+
var pcb_port_not_matched_error = import_zod42.z.object({
|
|
803
|
+
type: import_zod42.z.literal("pcb_port_not_matched_error"),
|
|
804
|
+
pcb_error_id: getZodPrefixedIdWithDefault("pcb_error"),
|
|
805
|
+
message: import_zod42.z.string(),
|
|
806
|
+
pcb_component_ids: import_zod42.z.array(import_zod42.z.string())
|
|
807
|
+
}).describe("Defines a trace error on the PCB where a port is not matched");
|
|
808
|
+
expectTypesMatch(true);
|
|
722
809
|
|
|
723
810
|
// src/pcb/pcb_via.ts
|
|
724
|
-
var
|
|
725
|
-
var pcb_via =
|
|
726
|
-
type:
|
|
811
|
+
var import_zod43 = require("zod");
|
|
812
|
+
var pcb_via = import_zod43.z.object({
|
|
813
|
+
type: import_zod43.z.literal("pcb_via"),
|
|
814
|
+
pcb_via_id: getZodPrefixedIdWithDefault("pcb_via"),
|
|
727
815
|
x: distance,
|
|
728
816
|
y: distance,
|
|
729
817
|
outer_diameter: distance.default("0.6mm"),
|
|
@@ -732,44 +820,48 @@ var pcb_via = import_zod42.z.object({
|
|
|
732
820
|
from_layer: layer_ref.optional(),
|
|
733
821
|
/** @deprecated */
|
|
734
822
|
to_layer: layer_ref.optional(),
|
|
735
|
-
layers:
|
|
823
|
+
layers: import_zod43.z.array(layer_ref)
|
|
736
824
|
}).describe("Defines a via on the PCB");
|
|
825
|
+
expectTypesMatch(true);
|
|
737
826
|
|
|
738
827
|
// src/pcb/pcb_board.ts
|
|
739
|
-
var
|
|
740
|
-
var pcb_board =
|
|
741
|
-
type:
|
|
742
|
-
pcb_board_id:
|
|
828
|
+
var import_zod44 = require("zod");
|
|
829
|
+
var pcb_board = import_zod44.z.object({
|
|
830
|
+
type: import_zod44.z.literal("pcb_board"),
|
|
831
|
+
pcb_board_id: getZodPrefixedIdWithDefault("pcb_board"),
|
|
743
832
|
width: length,
|
|
744
833
|
height: length,
|
|
745
|
-
center: point
|
|
834
|
+
center: point,
|
|
835
|
+
outline: import_zod44.z.array(point).optional()
|
|
746
836
|
}).describe("Defines the board outline of the PCB");
|
|
837
|
+
expectTypesMatch(true);
|
|
747
838
|
|
|
748
839
|
// src/pcb/pcb_placement_error.ts
|
|
749
|
-
var
|
|
750
|
-
var pcb_placement_error =
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
message: import_zod44.z.string()
|
|
840
|
+
var import_zod45 = require("zod");
|
|
841
|
+
var pcb_placement_error = import_zod45.z.object({
|
|
842
|
+
type: import_zod45.z.literal("pcb_placement_error"),
|
|
843
|
+
pcb_placement_error_id: getZodPrefixedIdWithDefault("pcb_placement_error"),
|
|
844
|
+
message: import_zod45.z.string()
|
|
755
845
|
}).describe("Defines a placement error on the PCB");
|
|
846
|
+
expectTypesMatch(true);
|
|
756
847
|
|
|
757
848
|
// src/pcb/pcb_trace_hint.ts
|
|
758
|
-
var import_zod45 = require("zod");
|
|
759
|
-
var pcb_trace_hint = import_zod45.z.object({
|
|
760
|
-
pcb_trace_hint_id: import_zod45.z.string(),
|
|
761
|
-
type: import_zod45.z.literal("pcb_trace_hint"),
|
|
762
|
-
pcb_port_id: import_zod45.z.string(),
|
|
763
|
-
pcb_component_id: import_zod45.z.string(),
|
|
764
|
-
route: import_zod45.z.array(route_hint_point.optional())
|
|
765
|
-
}).describe("A hint that can be used to generate a PCB trace");
|
|
766
|
-
|
|
767
|
-
// src/pcb/pcb_silkscreen_line.ts
|
|
768
849
|
var import_zod46 = require("zod");
|
|
769
|
-
var
|
|
770
|
-
type: import_zod46.z.literal("
|
|
771
|
-
|
|
850
|
+
var pcb_trace_hint = import_zod46.z.object({
|
|
851
|
+
type: import_zod46.z.literal("pcb_trace_hint"),
|
|
852
|
+
pcb_trace_hint_id: getZodPrefixedIdWithDefault("pcb_trace_hint"),
|
|
853
|
+
pcb_port_id: import_zod46.z.string(),
|
|
772
854
|
pcb_component_id: import_zod46.z.string(),
|
|
855
|
+
route: import_zod46.z.array(route_hint_point)
|
|
856
|
+
}).describe("A hint that can be used during generation of a PCB trace");
|
|
857
|
+
expectTypesMatch(true);
|
|
858
|
+
|
|
859
|
+
// src/pcb/pcb_silkscreen_line.ts
|
|
860
|
+
var import_zod47 = require("zod");
|
|
861
|
+
var pcb_silkscreen_line = import_zod47.z.object({
|
|
862
|
+
type: import_zod47.z.literal("pcb_silkscreen_line"),
|
|
863
|
+
pcb_silkscreen_line_id: getZodPrefixedIdWithDefault("pcb_silkscreen_line"),
|
|
864
|
+
pcb_component_id: import_zod47.z.string(),
|
|
773
865
|
stroke_width: distance.default("0.1mm"),
|
|
774
866
|
x1: distance,
|
|
775
867
|
y1: distance,
|
|
@@ -777,141 +869,161 @@ var pcb_silkscreen_line = import_zod46.z.object({
|
|
|
777
869
|
y2: distance,
|
|
778
870
|
layer: visible_layer
|
|
779
871
|
}).describe("Defines a silkscreen line on the PCB");
|
|
872
|
+
expectTypesMatch(true);
|
|
780
873
|
|
|
781
874
|
// src/pcb/pcb_silkscreen_path.ts
|
|
782
|
-
var
|
|
783
|
-
var pcb_silkscreen_path =
|
|
784
|
-
type:
|
|
785
|
-
pcb_silkscreen_path_id:
|
|
786
|
-
pcb_component_id:
|
|
875
|
+
var import_zod48 = require("zod");
|
|
876
|
+
var pcb_silkscreen_path = import_zod48.z.object({
|
|
877
|
+
type: import_zod48.z.literal("pcb_silkscreen_path"),
|
|
878
|
+
pcb_silkscreen_path_id: getZodPrefixedIdWithDefault("pcb_silkscreen_path"),
|
|
879
|
+
pcb_component_id: import_zod48.z.string(),
|
|
787
880
|
layer: visible_layer,
|
|
788
|
-
route:
|
|
881
|
+
route: import_zod48.z.array(point),
|
|
789
882
|
stroke_width: length
|
|
790
883
|
}).describe("Defines a silkscreen path on the PCB");
|
|
884
|
+
expectTypesMatch(true);
|
|
791
885
|
|
|
792
886
|
// src/pcb/pcb_silkscreen_text.ts
|
|
793
|
-
var
|
|
794
|
-
var pcb_silkscreen_text =
|
|
795
|
-
type:
|
|
796
|
-
|
|
887
|
+
var import_zod49 = require("zod");
|
|
888
|
+
var pcb_silkscreen_text = import_zod49.z.object({
|
|
889
|
+
type: import_zod49.z.literal("pcb_silkscreen_text"),
|
|
890
|
+
pcb_silkscreen_text_id: getZodPrefixedIdWithDefault("pcb_silkscreen_text"),
|
|
891
|
+
font: import_zod49.z.literal("tscircuit2024").default("tscircuit2024"),
|
|
797
892
|
font_size: distance.default("0.2mm"),
|
|
798
|
-
pcb_component_id:
|
|
799
|
-
text:
|
|
800
|
-
layer:
|
|
893
|
+
pcb_component_id: import_zod49.z.string(),
|
|
894
|
+
text: import_zod49.z.string(),
|
|
895
|
+
layer: layer_ref,
|
|
801
896
|
anchor_position: point.default({ x: 0, y: 0 }),
|
|
802
|
-
anchor_alignment:
|
|
897
|
+
anchor_alignment: import_zod49.z.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center")
|
|
803
898
|
}).describe("Defines silkscreen text on the PCB");
|
|
899
|
+
expectTypesMatch(true);
|
|
804
900
|
|
|
805
901
|
// src/pcb/pcb_silkscreen_rect.ts
|
|
806
|
-
var
|
|
807
|
-
var pcb_silkscreen_rect =
|
|
808
|
-
type:
|
|
809
|
-
pcb_silkscreen_rect_id:
|
|
810
|
-
pcb_component_id:
|
|
902
|
+
var import_zod50 = require("zod");
|
|
903
|
+
var pcb_silkscreen_rect = import_zod50.z.object({
|
|
904
|
+
type: import_zod50.z.literal("pcb_silkscreen_rect"),
|
|
905
|
+
pcb_silkscreen_rect_id: getZodPrefixedIdWithDefault("pcb_silkscreen_rect"),
|
|
906
|
+
pcb_component_id: import_zod50.z.string(),
|
|
811
907
|
center: point,
|
|
812
|
-
width:
|
|
813
|
-
height:
|
|
814
|
-
layer:
|
|
908
|
+
width: length,
|
|
909
|
+
height: length,
|
|
910
|
+
layer: layer_ref
|
|
815
911
|
}).describe("Defines a silkscreen rect on the PCB");
|
|
912
|
+
expectTypesMatch(true);
|
|
816
913
|
|
|
817
914
|
// src/pcb/pcb_silkscreen_circle.ts
|
|
818
|
-
var
|
|
819
|
-
var pcb_silkscreen_circle =
|
|
820
|
-
type:
|
|
821
|
-
pcb_silkscreen_circle_id:
|
|
822
|
-
|
|
915
|
+
var import_zod51 = require("zod");
|
|
916
|
+
var pcb_silkscreen_circle = import_zod51.z.object({
|
|
917
|
+
type: import_zod51.z.literal("pcb_silkscreen_circle"),
|
|
918
|
+
pcb_silkscreen_circle_id: getZodPrefixedIdWithDefault(
|
|
919
|
+
"pcb_silkscreen_circle"
|
|
920
|
+
),
|
|
921
|
+
pcb_component_id: import_zod51.z.string(),
|
|
823
922
|
center: point,
|
|
824
|
-
radius:
|
|
923
|
+
radius: length,
|
|
825
924
|
layer: visible_layer
|
|
826
925
|
}).describe("Defines a silkscreen circle on the PCB");
|
|
926
|
+
expectTypesMatch(true);
|
|
827
927
|
|
|
828
928
|
// src/pcb/pcb_silkscreen_oval.ts
|
|
829
|
-
var
|
|
830
|
-
var pcb_silkscreen_oval =
|
|
831
|
-
type:
|
|
832
|
-
pcb_silkscreen_oval_id:
|
|
833
|
-
pcb_component_id:
|
|
929
|
+
var import_zod52 = require("zod");
|
|
930
|
+
var pcb_silkscreen_oval = import_zod52.z.object({
|
|
931
|
+
type: import_zod52.z.literal("pcb_silkscreen_oval"),
|
|
932
|
+
pcb_silkscreen_oval_id: getZodPrefixedIdWithDefault("pcb_silkscreen_oval"),
|
|
933
|
+
pcb_component_id: import_zod52.z.string(),
|
|
834
934
|
center: point,
|
|
835
935
|
radius_x: distance,
|
|
836
936
|
radius_y: distance,
|
|
837
937
|
layer: visible_layer
|
|
838
938
|
}).describe("Defines a silkscreen oval on the PCB");
|
|
939
|
+
expectTypesMatch(true);
|
|
839
940
|
|
|
840
941
|
// src/pcb/pcb_fabrication_note_text.ts
|
|
841
|
-
var
|
|
842
|
-
var pcb_fabrication_note_text =
|
|
843
|
-
type:
|
|
844
|
-
|
|
942
|
+
var import_zod53 = require("zod");
|
|
943
|
+
var pcb_fabrication_note_text = import_zod53.z.object({
|
|
944
|
+
type: import_zod53.z.literal("pcb_fabrication_note_text"),
|
|
945
|
+
pcb_fabrication_note_text_id: getZodPrefixedIdWithDefault(
|
|
946
|
+
"pcb_fabrication_note_text"
|
|
947
|
+
),
|
|
948
|
+
font: import_zod53.z.literal("tscircuit2024").default("tscircuit2024"),
|
|
845
949
|
font_size: distance.default("1mm"),
|
|
846
|
-
pcb_component_id:
|
|
847
|
-
text:
|
|
950
|
+
pcb_component_id: import_zod53.z.string(),
|
|
951
|
+
text: import_zod53.z.string(),
|
|
848
952
|
layer: visible_layer,
|
|
849
953
|
anchor_position: point.default({ x: 0, y: 0 }),
|
|
850
|
-
anchor_alignment:
|
|
954
|
+
anchor_alignment: import_zod53.z.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
|
|
955
|
+
color: import_zod53.z.string().optional()
|
|
851
956
|
}).describe(
|
|
852
957
|
"Defines a fabrication note in text on the PCB, useful for leaving notes for assemblers or fabricators"
|
|
853
958
|
);
|
|
959
|
+
expectTypesMatch(true);
|
|
854
960
|
|
|
855
961
|
// src/pcb/pcb_fabrication_note_path.ts
|
|
856
|
-
var
|
|
857
|
-
var pcb_fabrication_note_path =
|
|
858
|
-
type:
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
962
|
+
var import_zod54 = require("zod");
|
|
963
|
+
var pcb_fabrication_note_path = import_zod54.z.object({
|
|
964
|
+
type: import_zod54.z.literal("pcb_fabrication_note_path"),
|
|
965
|
+
pcb_fabrication_note_path_id: getZodPrefixedIdWithDefault(
|
|
966
|
+
"pcb_fabrication_note_path"
|
|
967
|
+
),
|
|
968
|
+
pcb_component_id: import_zod54.z.string(),
|
|
969
|
+
layer: layer_ref,
|
|
970
|
+
route: import_zod54.z.array(point),
|
|
971
|
+
stroke_width: length,
|
|
972
|
+
color: import_zod54.z.string().optional()
|
|
864
973
|
}).describe(
|
|
865
974
|
"Defines a fabrication path on the PCB for fabricators or assemblers"
|
|
866
975
|
);
|
|
976
|
+
expectTypesMatch(true);
|
|
867
977
|
|
|
868
978
|
// src/pcb/pcb_keepout.ts
|
|
869
|
-
var
|
|
870
|
-
var pcb_keepout =
|
|
871
|
-
type:
|
|
872
|
-
|
|
873
|
-
|
|
979
|
+
var import_zod55 = require("zod");
|
|
980
|
+
var pcb_keepout = import_zod55.z.object({
|
|
981
|
+
type: import_zod55.z.literal("pcb_keepout"),
|
|
982
|
+
shape: import_zod55.z.literal("rect"),
|
|
983
|
+
center: point,
|
|
984
|
+
width: distance,
|
|
985
|
+
height: distance,
|
|
986
|
+
pcb_keepout_id: import_zod55.z.string(),
|
|
987
|
+
layers: import_zod55.z.array(import_zod55.z.string()),
|
|
874
988
|
// Specify layers where the keepout applies
|
|
875
|
-
description:
|
|
989
|
+
description: import_zod55.z.string().optional()
|
|
876
990
|
// Optional description of the keepout
|
|
877
|
-
}).
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
})
|
|
890
|
-
)
|
|
991
|
+
}).or(
|
|
992
|
+
import_zod55.z.object({
|
|
993
|
+
type: import_zod55.z.literal("pcb_keepout"),
|
|
994
|
+
shape: import_zod55.z.literal("circle"),
|
|
995
|
+
center: point,
|
|
996
|
+
radius: distance,
|
|
997
|
+
pcb_keepout_id: import_zod55.z.string(),
|
|
998
|
+
layers: import_zod55.z.array(import_zod55.z.string()),
|
|
999
|
+
// Specify layers where the keepout applies
|
|
1000
|
+
description: import_zod55.z.string().optional()
|
|
1001
|
+
// Optional description of the keepout
|
|
1002
|
+
})
|
|
891
1003
|
);
|
|
892
1004
|
|
|
893
1005
|
// src/cad/cad_component.ts
|
|
894
|
-
var
|
|
895
|
-
var cad_component =
|
|
896
|
-
type:
|
|
897
|
-
cad_component_id:
|
|
898
|
-
pcb_component_id:
|
|
899
|
-
source_component_id:
|
|
1006
|
+
var import_zod56 = require("zod");
|
|
1007
|
+
var cad_component = import_zod56.z.object({
|
|
1008
|
+
type: import_zod56.z.literal("cad_component"),
|
|
1009
|
+
cad_component_id: import_zod56.z.string(),
|
|
1010
|
+
pcb_component_id: import_zod56.z.string(),
|
|
1011
|
+
source_component_id: import_zod56.z.string(),
|
|
900
1012
|
position: point3,
|
|
901
1013
|
rotation: point3.optional(),
|
|
902
1014
|
size: point3.optional(),
|
|
903
1015
|
layer: layer_ref.optional(),
|
|
904
1016
|
// These are all ways to generate/load the 3d model
|
|
905
|
-
footprinter_string:
|
|
906
|
-
model_obj_url:
|
|
907
|
-
model_stl_url:
|
|
908
|
-
model_3mf_url:
|
|
909
|
-
model_jscad:
|
|
1017
|
+
footprinter_string: import_zod56.z.string().optional(),
|
|
1018
|
+
model_obj_url: import_zod56.z.string().optional(),
|
|
1019
|
+
model_stl_url: import_zod56.z.string().optional(),
|
|
1020
|
+
model_3mf_url: import_zod56.z.string().optional(),
|
|
1021
|
+
model_jscad: import_zod56.z.any().optional()
|
|
910
1022
|
}).describe("Defines a component on the PCB");
|
|
911
1023
|
|
|
912
|
-
// src/
|
|
913
|
-
var
|
|
914
|
-
var
|
|
1024
|
+
// src/any_circuit_element.ts
|
|
1025
|
+
var import_zod57 = require("zod");
|
|
1026
|
+
var any_circuit_element = import_zod57.z.union([
|
|
915
1027
|
source_trace,
|
|
916
1028
|
source_port,
|
|
917
1029
|
any_source_component,
|
|
@@ -927,6 +1039,7 @@ var any_soup_element = import_zod56.z.union([
|
|
|
927
1039
|
pcb_component,
|
|
928
1040
|
pcb_hole,
|
|
929
1041
|
pcb_plated_hole,
|
|
1042
|
+
pcb_keepout,
|
|
930
1043
|
pcb_port,
|
|
931
1044
|
pcb_text,
|
|
932
1045
|
pcb_trace,
|
|
@@ -956,15 +1069,18 @@ var any_soup_element = import_zod56.z.union([
|
|
|
956
1069
|
schematic_net_label,
|
|
957
1070
|
cad_component
|
|
958
1071
|
]);
|
|
1072
|
+
var any_soup_element = any_circuit_element;
|
|
959
1073
|
// Annotate the CommonJS export names for ESM import in node:
|
|
960
1074
|
0 && (module.exports = {
|
|
961
1075
|
all_layers,
|
|
1076
|
+
any_circuit_element,
|
|
962
1077
|
any_soup_element,
|
|
963
1078
|
any_source_component,
|
|
964
1079
|
cad_component,
|
|
965
1080
|
capacitance,
|
|
966
1081
|
current,
|
|
967
1082
|
distance,
|
|
1083
|
+
getZodPrefixedIdWithDefault,
|
|
968
1084
|
inductance,
|
|
969
1085
|
layer_ref,
|
|
970
1086
|
layer_string,
|
|
@@ -974,6 +1090,8 @@ var any_soup_element = import_zod56.z.union([
|
|
|
974
1090
|
pcb_fabrication_note_path,
|
|
975
1091
|
pcb_fabrication_note_text,
|
|
976
1092
|
pcb_hole,
|
|
1093
|
+
pcb_hole_circle_or_square_shape,
|
|
1094
|
+
pcb_hole_oval_shape,
|
|
977
1095
|
pcb_keepout,
|
|
978
1096
|
pcb_placement_error,
|
|
979
1097
|
pcb_plated_hole,
|
|
@@ -992,6 +1110,9 @@ var any_soup_element = import_zod56.z.union([
|
|
|
992
1110
|
pcb_trace,
|
|
993
1111
|
pcb_trace_error,
|
|
994
1112
|
pcb_trace_hint,
|
|
1113
|
+
pcb_trace_route_point,
|
|
1114
|
+
pcb_trace_route_point_via,
|
|
1115
|
+
pcb_trace_route_point_wire,
|
|
995
1116
|
pcb_via,
|
|
996
1117
|
point,
|
|
997
1118
|
point3,
|
|
@@ -1006,6 +1127,7 @@ var any_soup_element = import_zod56.z.union([
|
|
|
1006
1127
|
schematic_line,
|
|
1007
1128
|
schematic_net_label,
|
|
1008
1129
|
schematic_path,
|
|
1130
|
+
schematic_pin_styles,
|
|
1009
1131
|
schematic_port,
|
|
1010
1132
|
schematic_text,
|
|
1011
1133
|
schematic_trace,
|