circuit-json 0.0.428 → 0.0.429
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 +618 -175
- package/dist/index.d.mts +165 -2
- package/dist/index.mjs +1367 -1349
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -642,7 +642,7 @@ var source_pin_attributes = z23.object({
|
|
|
642
642
|
expectTypesMatch(true);
|
|
643
643
|
|
|
644
644
|
// src/source/any_source_component.ts
|
|
645
|
-
import { z as
|
|
645
|
+
import { z as z52 } from "zod";
|
|
646
646
|
|
|
647
647
|
// src/source/source_simple_fuse.ts
|
|
648
648
|
import { z as z24 } from "zod";
|
|
@@ -935,23 +935,38 @@ var source_i2c_misconfigured_error = base_circuit_json_error.extend({
|
|
|
935
935
|
);
|
|
936
936
|
expectTypesMatch(true);
|
|
937
937
|
|
|
938
|
-
// src/source/
|
|
938
|
+
// src/source/source_component_misconfigured_error.ts
|
|
939
939
|
import { z as z50 } from "zod";
|
|
940
|
+
var source_component_misconfigured_error = base_circuit_json_error.extend({
|
|
941
|
+
type: z50.literal("source_component_misconfigured_error"),
|
|
942
|
+
source_component_misconfigured_error_id: getZodPrefixedIdWithDefault(
|
|
943
|
+
"source_component_misconfigured_error"
|
|
944
|
+
),
|
|
945
|
+
error_type: z50.literal("source_component_misconfigured_error").default("source_component_misconfigured_error"),
|
|
946
|
+
source_component_ids: z50.array(z50.string()),
|
|
947
|
+
source_port_ids: z50.array(z50.string()).optional()
|
|
948
|
+
}).describe(
|
|
949
|
+
"Error emitted when one or more source components have an invalid or conflicting configuration"
|
|
950
|
+
);
|
|
951
|
+
expectTypesMatch(true);
|
|
952
|
+
|
|
953
|
+
// src/source/source_simple_voltage_source.ts
|
|
954
|
+
import { z as z51 } from "zod";
|
|
940
955
|
var source_simple_voltage_source = source_component_base.extend({
|
|
941
|
-
ftype:
|
|
956
|
+
ftype: z51.literal("simple_voltage_source"),
|
|
942
957
|
voltage,
|
|
943
958
|
frequency: frequency.optional(),
|
|
944
959
|
peak_to_peak_voltage: voltage.optional(),
|
|
945
|
-
wave_shape:
|
|
960
|
+
wave_shape: z51.enum(["sinewave", "square", "triangle", "sawtooth"]).optional(),
|
|
946
961
|
phase: rotation.optional(),
|
|
947
|
-
duty_cycle:
|
|
962
|
+
duty_cycle: z51.number().optional().describe("Duty cycle as a fraction (0 to 1)")
|
|
948
963
|
});
|
|
949
964
|
expectTypesMatch(
|
|
950
965
|
true
|
|
951
966
|
);
|
|
952
967
|
|
|
953
968
|
// src/source/any_source_component.ts
|
|
954
|
-
var any_source_component =
|
|
969
|
+
var any_source_component = z52.union([
|
|
955
970
|
source_simple_resistor,
|
|
956
971
|
source_simple_capacitor,
|
|
957
972
|
source_simple_diode,
|
|
@@ -987,126 +1002,127 @@ var any_source_component = z51.union([
|
|
|
987
1002
|
source_property_ignored_warning,
|
|
988
1003
|
source_pin_missing_trace_warning,
|
|
989
1004
|
source_missing_manufacturer_part_number_warning,
|
|
990
|
-
source_i2c_misconfigured_error
|
|
1005
|
+
source_i2c_misconfigured_error,
|
|
1006
|
+
source_component_misconfigured_error
|
|
991
1007
|
]);
|
|
992
1008
|
expectTypesMatch(true);
|
|
993
1009
|
|
|
994
1010
|
// src/source/source_port.ts
|
|
995
|
-
import { z as
|
|
996
|
-
var source_port =
|
|
997
|
-
type:
|
|
998
|
-
pin_number:
|
|
999
|
-
port_hints:
|
|
1000
|
-
name:
|
|
1001
|
-
source_port_id:
|
|
1002
|
-
source_component_id:
|
|
1003
|
-
source_group_id:
|
|
1004
|
-
most_frequently_referenced_by_name:
|
|
1005
|
-
subcircuit_id:
|
|
1006
|
-
subcircuit_connectivity_map_key:
|
|
1011
|
+
import { z as z53 } from "zod";
|
|
1012
|
+
var source_port = z53.object({
|
|
1013
|
+
type: z53.literal("source_port"),
|
|
1014
|
+
pin_number: z53.number().optional(),
|
|
1015
|
+
port_hints: z53.array(z53.string()).optional(),
|
|
1016
|
+
name: z53.string(),
|
|
1017
|
+
source_port_id: z53.string(),
|
|
1018
|
+
source_component_id: z53.string().optional(),
|
|
1019
|
+
source_group_id: z53.string().optional(),
|
|
1020
|
+
most_frequently_referenced_by_name: z53.string().optional(),
|
|
1021
|
+
subcircuit_id: z53.string().optional(),
|
|
1022
|
+
subcircuit_connectivity_map_key: z53.string().optional()
|
|
1007
1023
|
}).merge(source_pin_attributes);
|
|
1008
1024
|
expectTypesMatch(true);
|
|
1009
1025
|
|
|
1010
1026
|
// src/source/source_component_internal_connection.ts
|
|
1011
|
-
import { z as
|
|
1012
|
-
var source_component_internal_connection =
|
|
1013
|
-
type:
|
|
1014
|
-
source_component_internal_connection_id:
|
|
1015
|
-
source_component_id:
|
|
1016
|
-
source_port_ids:
|
|
1017
|
-
subcircuit_id:
|
|
1027
|
+
import { z as z54 } from "zod";
|
|
1028
|
+
var source_component_internal_connection = z54.object({
|
|
1029
|
+
type: z54.literal("source_component_internal_connection"),
|
|
1030
|
+
source_component_internal_connection_id: z54.string(),
|
|
1031
|
+
source_component_id: z54.string(),
|
|
1032
|
+
source_port_ids: z54.array(z54.string()),
|
|
1033
|
+
subcircuit_id: z54.string().optional()
|
|
1018
1034
|
});
|
|
1019
1035
|
expectTypesMatch(true);
|
|
1020
1036
|
|
|
1021
1037
|
// src/source/source_trace.ts
|
|
1022
|
-
import { z as
|
|
1023
|
-
var source_trace =
|
|
1024
|
-
type:
|
|
1025
|
-
source_trace_id:
|
|
1026
|
-
connected_source_port_ids:
|
|
1027
|
-
connected_source_net_ids:
|
|
1028
|
-
subcircuit_id:
|
|
1029
|
-
subcircuit_connectivity_map_key:
|
|
1030
|
-
max_length:
|
|
1031
|
-
min_trace_thickness:
|
|
1032
|
-
display_name:
|
|
1038
|
+
import { z as z55 } from "zod";
|
|
1039
|
+
var source_trace = z55.object({
|
|
1040
|
+
type: z55.literal("source_trace"),
|
|
1041
|
+
source_trace_id: z55.string(),
|
|
1042
|
+
connected_source_port_ids: z55.array(z55.string()),
|
|
1043
|
+
connected_source_net_ids: z55.array(z55.string()),
|
|
1044
|
+
subcircuit_id: z55.string().optional(),
|
|
1045
|
+
subcircuit_connectivity_map_key: z55.string().optional(),
|
|
1046
|
+
max_length: z55.number().optional(),
|
|
1047
|
+
min_trace_thickness: z55.number().optional(),
|
|
1048
|
+
display_name: z55.string().optional()
|
|
1033
1049
|
});
|
|
1034
1050
|
expectTypesMatch(true);
|
|
1035
1051
|
|
|
1036
1052
|
// src/source/source_group.ts
|
|
1037
|
-
import { z as
|
|
1038
|
-
var source_group =
|
|
1039
|
-
type:
|
|
1040
|
-
source_group_id:
|
|
1041
|
-
subcircuit_id:
|
|
1042
|
-
parent_subcircuit_id:
|
|
1043
|
-
parent_source_group_id:
|
|
1044
|
-
is_subcircuit:
|
|
1045
|
-
show_as_schematic_box:
|
|
1046
|
-
name:
|
|
1047
|
-
was_automatically_named:
|
|
1053
|
+
import { z as z56 } from "zod";
|
|
1054
|
+
var source_group = z56.object({
|
|
1055
|
+
type: z56.literal("source_group"),
|
|
1056
|
+
source_group_id: z56.string(),
|
|
1057
|
+
subcircuit_id: z56.string().optional(),
|
|
1058
|
+
parent_subcircuit_id: z56.string().optional(),
|
|
1059
|
+
parent_source_group_id: z56.string().optional(),
|
|
1060
|
+
is_subcircuit: z56.boolean().optional(),
|
|
1061
|
+
show_as_schematic_box: z56.boolean().optional(),
|
|
1062
|
+
name: z56.string().optional(),
|
|
1063
|
+
was_automatically_named: z56.boolean().optional()
|
|
1048
1064
|
});
|
|
1049
1065
|
expectTypesMatch(true);
|
|
1050
1066
|
|
|
1051
1067
|
// src/source/source_net.ts
|
|
1052
|
-
import { z as
|
|
1053
|
-
var source_net =
|
|
1054
|
-
type:
|
|
1055
|
-
source_net_id:
|
|
1056
|
-
name:
|
|
1057
|
-
member_source_group_ids:
|
|
1058
|
-
is_power:
|
|
1059
|
-
is_ground:
|
|
1060
|
-
is_digital_signal:
|
|
1061
|
-
is_analog_signal:
|
|
1062
|
-
is_positive_voltage_source:
|
|
1063
|
-
trace_width:
|
|
1064
|
-
subcircuit_id:
|
|
1065
|
-
subcircuit_connectivity_map_key:
|
|
1068
|
+
import { z as z57 } from "zod";
|
|
1069
|
+
var source_net = z57.object({
|
|
1070
|
+
type: z57.literal("source_net"),
|
|
1071
|
+
source_net_id: z57.string(),
|
|
1072
|
+
name: z57.string(),
|
|
1073
|
+
member_source_group_ids: z57.array(z57.string()),
|
|
1074
|
+
is_power: z57.boolean().optional(),
|
|
1075
|
+
is_ground: z57.boolean().optional(),
|
|
1076
|
+
is_digital_signal: z57.boolean().optional(),
|
|
1077
|
+
is_analog_signal: z57.boolean().optional(),
|
|
1078
|
+
is_positive_voltage_source: z57.boolean().optional(),
|
|
1079
|
+
trace_width: z57.number().optional(),
|
|
1080
|
+
subcircuit_id: z57.string().optional(),
|
|
1081
|
+
subcircuit_connectivity_map_key: z57.string().optional()
|
|
1066
1082
|
});
|
|
1067
1083
|
expectTypesMatch(true);
|
|
1068
1084
|
|
|
1069
1085
|
// src/source/source_board.ts
|
|
1070
|
-
import { z as
|
|
1071
|
-
var source_board =
|
|
1072
|
-
type:
|
|
1073
|
-
source_board_id:
|
|
1074
|
-
source_group_id:
|
|
1075
|
-
title:
|
|
1086
|
+
import { z as z58 } from "zod";
|
|
1087
|
+
var source_board = z58.object({
|
|
1088
|
+
type: z58.literal("source_board"),
|
|
1089
|
+
source_board_id: z58.string(),
|
|
1090
|
+
source_group_id: z58.string(),
|
|
1091
|
+
title: z58.string().optional()
|
|
1076
1092
|
}).describe("Defines a board in the source domain");
|
|
1077
1093
|
expectTypesMatch(true);
|
|
1078
1094
|
|
|
1079
1095
|
// src/source/source_ambiguous_port_reference.ts
|
|
1080
|
-
import { z as
|
|
1096
|
+
import { z as z59 } from "zod";
|
|
1081
1097
|
var source_ambiguous_port_reference = base_circuit_json_error.extend({
|
|
1082
|
-
type:
|
|
1098
|
+
type: z59.literal("source_ambiguous_port_reference"),
|
|
1083
1099
|
source_ambiguous_port_reference_id: getZodPrefixedIdWithDefault(
|
|
1084
1100
|
"source_ambiguous_port_reference"
|
|
1085
1101
|
),
|
|
1086
|
-
error_type:
|
|
1087
|
-
source_port_id:
|
|
1088
|
-
source_component_id:
|
|
1102
|
+
error_type: z59.literal("source_ambiguous_port_reference").default("source_ambiguous_port_reference"),
|
|
1103
|
+
source_port_id: z59.string().optional(),
|
|
1104
|
+
source_component_id: z59.string().optional()
|
|
1089
1105
|
}).describe(
|
|
1090
1106
|
"Error emitted when a port hint matches multiple non-overlapping pads, making the port reference ambiguous"
|
|
1091
1107
|
);
|
|
1092
1108
|
expectTypesMatch(true);
|
|
1093
1109
|
|
|
1094
1110
|
// src/source/source_pcb_ground_plane.ts
|
|
1095
|
-
import { z as
|
|
1096
|
-
var source_pcb_ground_plane =
|
|
1097
|
-
type:
|
|
1098
|
-
source_pcb_ground_plane_id:
|
|
1099
|
-
source_group_id:
|
|
1100
|
-
source_net_id:
|
|
1101
|
-
subcircuit_id:
|
|
1111
|
+
import { z as z60 } from "zod";
|
|
1112
|
+
var source_pcb_ground_plane = z60.object({
|
|
1113
|
+
type: z60.literal("source_pcb_ground_plane"),
|
|
1114
|
+
source_pcb_ground_plane_id: z60.string(),
|
|
1115
|
+
source_group_id: z60.string(),
|
|
1116
|
+
source_net_id: z60.string(),
|
|
1117
|
+
subcircuit_id: z60.string().optional()
|
|
1102
1118
|
}).describe("Defines a ground plane in the source domain");
|
|
1103
1119
|
expectTypesMatch(true);
|
|
1104
1120
|
|
|
1105
1121
|
// src/source/source_manually_placed_via.ts
|
|
1106
|
-
import { z as
|
|
1122
|
+
import { z as z62 } from "zod";
|
|
1107
1123
|
|
|
1108
1124
|
// src/pcb/properties/layer_ref.ts
|
|
1109
|
-
import { z as
|
|
1125
|
+
import { z as z61 } from "zod";
|
|
1110
1126
|
var all_layers = [
|
|
1111
1127
|
"top",
|
|
1112
1128
|
"bottom",
|
|
@@ -1117,9 +1133,9 @@ var all_layers = [
|
|
|
1117
1133
|
"inner5",
|
|
1118
1134
|
"inner6"
|
|
1119
1135
|
];
|
|
1120
|
-
var layer_string =
|
|
1136
|
+
var layer_string = z61.enum(all_layers);
|
|
1121
1137
|
var layer_ref = layer_string.or(
|
|
1122
|
-
|
|
1138
|
+
z61.object({
|
|
1123
1139
|
name: layer_string
|
|
1124
1140
|
})
|
|
1125
1141
|
).transform((layer) => {
|
|
@@ -1129,209 +1145,209 @@ var layer_ref = layer_string.or(
|
|
|
1129
1145
|
return layer.name;
|
|
1130
1146
|
});
|
|
1131
1147
|
expectTypesMatch(true);
|
|
1132
|
-
var visible_layer =
|
|
1148
|
+
var visible_layer = z61.enum(["top", "bottom"]);
|
|
1133
1149
|
|
|
1134
1150
|
// src/source/source_manually_placed_via.ts
|
|
1135
|
-
var source_manually_placed_via =
|
|
1136
|
-
type:
|
|
1137
|
-
source_manually_placed_via_id:
|
|
1138
|
-
source_group_id:
|
|
1139
|
-
source_net_id:
|
|
1140
|
-
subcircuit_id:
|
|
1141
|
-
source_trace_id:
|
|
1151
|
+
var source_manually_placed_via = z62.object({
|
|
1152
|
+
type: z62.literal("source_manually_placed_via"),
|
|
1153
|
+
source_manually_placed_via_id: z62.string(),
|
|
1154
|
+
source_group_id: z62.string(),
|
|
1155
|
+
source_net_id: z62.string(),
|
|
1156
|
+
subcircuit_id: z62.string().optional(),
|
|
1157
|
+
source_trace_id: z62.string().optional()
|
|
1142
1158
|
}).describe("Defines a via that is manually placed in the source domain");
|
|
1143
1159
|
expectTypesMatch(true);
|
|
1144
1160
|
|
|
1145
1161
|
// src/source/source_no_power_pin_defined_warning.ts
|
|
1146
|
-
import { z as
|
|
1147
|
-
var source_no_power_pin_defined_warning =
|
|
1148
|
-
type:
|
|
1162
|
+
import { z as z63 } from "zod";
|
|
1163
|
+
var source_no_power_pin_defined_warning = z63.object({
|
|
1164
|
+
type: z63.literal("source_no_power_pin_defined_warning"),
|
|
1149
1165
|
source_no_power_pin_defined_warning_id: getZodPrefixedIdWithDefault(
|
|
1150
1166
|
"source_no_power_pin_defined_warning"
|
|
1151
1167
|
),
|
|
1152
|
-
warning_type:
|
|
1153
|
-
message:
|
|
1154
|
-
source_component_id:
|
|
1155
|
-
source_port_ids:
|
|
1156
|
-
subcircuit_id:
|
|
1168
|
+
warning_type: z63.literal("source_no_power_pin_defined_warning").default("source_no_power_pin_defined_warning"),
|
|
1169
|
+
message: z63.string(),
|
|
1170
|
+
source_component_id: z63.string(),
|
|
1171
|
+
source_port_ids: z63.array(z63.string()),
|
|
1172
|
+
subcircuit_id: z63.string().optional()
|
|
1157
1173
|
}).describe(
|
|
1158
1174
|
"Warning emitted when a chip has no source ports with requires_power=true"
|
|
1159
1175
|
);
|
|
1160
1176
|
expectTypesMatch(true);
|
|
1161
1177
|
|
|
1162
1178
|
// src/source/source_no_ground_pin_defined_warning.ts
|
|
1163
|
-
import { z as
|
|
1164
|
-
var source_no_ground_pin_defined_warning =
|
|
1165
|
-
type:
|
|
1179
|
+
import { z as z64 } from "zod";
|
|
1180
|
+
var source_no_ground_pin_defined_warning = z64.object({
|
|
1181
|
+
type: z64.literal("source_no_ground_pin_defined_warning"),
|
|
1166
1182
|
source_no_ground_pin_defined_warning_id: getZodPrefixedIdWithDefault(
|
|
1167
1183
|
"source_no_ground_pin_defined_warning"
|
|
1168
1184
|
),
|
|
1169
|
-
warning_type:
|
|
1170
|
-
message:
|
|
1171
|
-
source_component_id:
|
|
1172
|
-
source_port_ids:
|
|
1173
|
-
subcircuit_id:
|
|
1185
|
+
warning_type: z64.literal("source_no_ground_pin_defined_warning").default("source_no_ground_pin_defined_warning"),
|
|
1186
|
+
message: z64.string(),
|
|
1187
|
+
source_component_id: z64.string(),
|
|
1188
|
+
source_port_ids: z64.array(z64.string()),
|
|
1189
|
+
subcircuit_id: z64.string().optional()
|
|
1174
1190
|
}).describe(
|
|
1175
1191
|
"Warning emitted when a chip has no source ports marked as ground pins"
|
|
1176
1192
|
);
|
|
1177
1193
|
expectTypesMatch(true);
|
|
1178
1194
|
|
|
1179
1195
|
// src/source/source_component_pins_underspecified_warning.ts
|
|
1180
|
-
import { z as
|
|
1181
|
-
var source_component_pins_underspecified_warning =
|
|
1182
|
-
type:
|
|
1196
|
+
import { z as z65 } from "zod";
|
|
1197
|
+
var source_component_pins_underspecified_warning = z65.object({
|
|
1198
|
+
type: z65.literal("source_component_pins_underspecified_warning"),
|
|
1183
1199
|
source_component_pins_underspecified_warning_id: getZodPrefixedIdWithDefault(
|
|
1184
1200
|
"source_component_pins_underspecified_warning"
|
|
1185
1201
|
),
|
|
1186
|
-
warning_type:
|
|
1187
|
-
message:
|
|
1188
|
-
source_component_id:
|
|
1189
|
-
source_port_ids:
|
|
1190
|
-
subcircuit_id:
|
|
1202
|
+
warning_type: z65.literal("source_component_pins_underspecified_warning").default("source_component_pins_underspecified_warning"),
|
|
1203
|
+
message: z65.string(),
|
|
1204
|
+
source_component_id: z65.string(),
|
|
1205
|
+
source_port_ids: z65.array(z65.string()),
|
|
1206
|
+
subcircuit_id: z65.string().optional()
|
|
1191
1207
|
}).describe(
|
|
1192
1208
|
"Warning emitted when all ports on a source component are underspecified"
|
|
1193
1209
|
);
|
|
1194
1210
|
expectTypesMatch(true);
|
|
1195
1211
|
|
|
1196
1212
|
// src/source/source_pin_must_be_connected_error.ts
|
|
1197
|
-
import { z as
|
|
1213
|
+
import { z as z66 } from "zod";
|
|
1198
1214
|
var source_pin_must_be_connected_error = base_circuit_json_error.extend({
|
|
1199
|
-
type:
|
|
1215
|
+
type: z66.literal("source_pin_must_be_connected_error"),
|
|
1200
1216
|
source_pin_must_be_connected_error_id: getZodPrefixedIdWithDefault(
|
|
1201
1217
|
"source_pin_must_be_connected_error"
|
|
1202
1218
|
),
|
|
1203
|
-
error_type:
|
|
1204
|
-
source_component_id:
|
|
1205
|
-
source_port_id:
|
|
1206
|
-
subcircuit_id:
|
|
1219
|
+
error_type: z66.literal("source_pin_must_be_connected_error").default("source_pin_must_be_connected_error"),
|
|
1220
|
+
source_component_id: z66.string(),
|
|
1221
|
+
source_port_id: z66.string(),
|
|
1222
|
+
subcircuit_id: z66.string().optional()
|
|
1207
1223
|
}).describe(
|
|
1208
1224
|
"Error emitted when a pin with mustBeConnected attribute is not connected to any trace"
|
|
1209
1225
|
);
|
|
1210
1226
|
expectTypesMatch(true);
|
|
1211
1227
|
|
|
1212
1228
|
// src/source/unknown_error_finding_part.ts
|
|
1213
|
-
import { z as
|
|
1229
|
+
import { z as z67 } from "zod";
|
|
1214
1230
|
var unknown_error_finding_part = base_circuit_json_error.extend({
|
|
1215
|
-
type:
|
|
1231
|
+
type: z67.literal("unknown_error_finding_part"),
|
|
1216
1232
|
unknown_error_finding_part_id: getZodPrefixedIdWithDefault(
|
|
1217
1233
|
"unknown_error_finding_part"
|
|
1218
1234
|
),
|
|
1219
|
-
error_type:
|
|
1220
|
-
source_component_id:
|
|
1221
|
-
subcircuit_id:
|
|
1235
|
+
error_type: z67.literal("unknown_error_finding_part").default("unknown_error_finding_part"),
|
|
1236
|
+
source_component_id: z67.string().optional(),
|
|
1237
|
+
subcircuit_id: z67.string().optional()
|
|
1222
1238
|
}).describe(
|
|
1223
1239
|
"Error emitted when an unexpected error occurs while finding a part"
|
|
1224
1240
|
);
|
|
1225
1241
|
expectTypesMatch(true);
|
|
1226
1242
|
|
|
1227
1243
|
// src/schematic/schematic_box.ts
|
|
1228
|
-
import { z as
|
|
1229
|
-
var schematic_box =
|
|
1230
|
-
type:
|
|
1231
|
-
schematic_component_id:
|
|
1232
|
-
schematic_symbol_id:
|
|
1244
|
+
import { z as z68 } from "zod";
|
|
1245
|
+
var schematic_box = z68.object({
|
|
1246
|
+
type: z68.literal("schematic_box"),
|
|
1247
|
+
schematic_component_id: z68.string().optional(),
|
|
1248
|
+
schematic_symbol_id: z68.string().optional(),
|
|
1233
1249
|
width: distance,
|
|
1234
1250
|
height: distance,
|
|
1235
|
-
is_dashed:
|
|
1251
|
+
is_dashed: z68.boolean().default(false),
|
|
1236
1252
|
x: distance,
|
|
1237
1253
|
y: distance,
|
|
1238
|
-
subcircuit_id:
|
|
1254
|
+
subcircuit_id: z68.string().optional()
|
|
1239
1255
|
}).describe("Draws a box on the schematic");
|
|
1240
1256
|
expectTypesMatch(true);
|
|
1241
1257
|
|
|
1242
1258
|
// src/schematic/schematic_path.ts
|
|
1243
|
-
import { z as
|
|
1244
|
-
var schematic_path =
|
|
1245
|
-
type:
|
|
1259
|
+
import { z as z69 } from "zod";
|
|
1260
|
+
var schematic_path = z69.object({
|
|
1261
|
+
type: z69.literal("schematic_path"),
|
|
1246
1262
|
schematic_path_id: getZodPrefixedIdWithDefault("schematic_path"),
|
|
1247
|
-
schematic_component_id:
|
|
1248
|
-
schematic_symbol_id:
|
|
1249
|
-
fill_color:
|
|
1250
|
-
is_filled:
|
|
1263
|
+
schematic_component_id: z69.string().optional(),
|
|
1264
|
+
schematic_symbol_id: z69.string().optional(),
|
|
1265
|
+
fill_color: z69.string().optional(),
|
|
1266
|
+
is_filled: z69.boolean().optional(),
|
|
1251
1267
|
stroke_width: distance.nullable().optional(),
|
|
1252
|
-
stroke_color:
|
|
1268
|
+
stroke_color: z69.string().optional(),
|
|
1253
1269
|
dash_length: distance.optional(),
|
|
1254
1270
|
dash_gap: distance.optional(),
|
|
1255
|
-
points:
|
|
1256
|
-
subcircuit_id:
|
|
1271
|
+
points: z69.array(point),
|
|
1272
|
+
subcircuit_id: z69.string().optional()
|
|
1257
1273
|
});
|
|
1258
1274
|
expectTypesMatch(true);
|
|
1259
1275
|
|
|
1260
1276
|
// src/schematic/schematic_component.ts
|
|
1261
|
-
import { z as
|
|
1262
|
-
var schematic_pin_styles =
|
|
1263
|
-
|
|
1277
|
+
import { z as z70 } from "zod";
|
|
1278
|
+
var schematic_pin_styles = z70.record(
|
|
1279
|
+
z70.object({
|
|
1264
1280
|
left_margin: length.optional(),
|
|
1265
1281
|
right_margin: length.optional(),
|
|
1266
1282
|
top_margin: length.optional(),
|
|
1267
1283
|
bottom_margin: length.optional()
|
|
1268
1284
|
})
|
|
1269
1285
|
);
|
|
1270
|
-
var schematic_component_port_arrangement_by_size =
|
|
1271
|
-
left_size:
|
|
1272
|
-
right_size:
|
|
1273
|
-
top_size:
|
|
1274
|
-
bottom_size:
|
|
1286
|
+
var schematic_component_port_arrangement_by_size = z70.object({
|
|
1287
|
+
left_size: z70.number(),
|
|
1288
|
+
right_size: z70.number(),
|
|
1289
|
+
top_size: z70.number().optional(),
|
|
1290
|
+
bottom_size: z70.number().optional()
|
|
1275
1291
|
});
|
|
1276
1292
|
expectTypesMatch(true);
|
|
1277
|
-
var schematic_component_port_arrangement_by_sides =
|
|
1278
|
-
left_side:
|
|
1279
|
-
pins:
|
|
1293
|
+
var schematic_component_port_arrangement_by_sides = z70.object({
|
|
1294
|
+
left_side: z70.object({
|
|
1295
|
+
pins: z70.array(z70.number()),
|
|
1280
1296
|
// @ts-ignore
|
|
1281
|
-
direction:
|
|
1297
|
+
direction: z70.enum(["top-to-bottom", "bottom-to-top"]).optional()
|
|
1282
1298
|
}).optional(),
|
|
1283
|
-
right_side:
|
|
1284
|
-
pins:
|
|
1299
|
+
right_side: z70.object({
|
|
1300
|
+
pins: z70.array(z70.number()),
|
|
1285
1301
|
// @ts-ignore
|
|
1286
|
-
direction:
|
|
1302
|
+
direction: z70.enum(["top-to-bottom", "bottom-to-top"]).optional()
|
|
1287
1303
|
}).optional(),
|
|
1288
|
-
top_side:
|
|
1289
|
-
pins:
|
|
1304
|
+
top_side: z70.object({
|
|
1305
|
+
pins: z70.array(z70.number()),
|
|
1290
1306
|
// @ts-ignore
|
|
1291
|
-
direction:
|
|
1307
|
+
direction: z70.enum(["left-to-right", "right-to-left"]).optional()
|
|
1292
1308
|
}).optional(),
|
|
1293
|
-
bottom_side:
|
|
1294
|
-
pins:
|
|
1309
|
+
bottom_side: z70.object({
|
|
1310
|
+
pins: z70.array(z70.number()),
|
|
1295
1311
|
// @ts-ignore
|
|
1296
|
-
direction:
|
|
1312
|
+
direction: z70.enum(["left-to-right", "right-to-left"]).optional()
|
|
1297
1313
|
}).optional()
|
|
1298
1314
|
});
|
|
1299
1315
|
expectTypesMatch(true);
|
|
1300
|
-
var port_arrangement =
|
|
1316
|
+
var port_arrangement = z70.union([
|
|
1301
1317
|
schematic_component_port_arrangement_by_size,
|
|
1302
1318
|
schematic_component_port_arrangement_by_sides
|
|
1303
1319
|
]);
|
|
1304
|
-
var schematic_component =
|
|
1305
|
-
type:
|
|
1320
|
+
var schematic_component = z70.object({
|
|
1321
|
+
type: z70.literal("schematic_component"),
|
|
1306
1322
|
size,
|
|
1307
1323
|
center: point,
|
|
1308
|
-
source_component_id:
|
|
1309
|
-
schematic_component_id:
|
|
1310
|
-
schematic_symbol_id:
|
|
1324
|
+
source_component_id: z70.string().optional(),
|
|
1325
|
+
schematic_component_id: z70.string(),
|
|
1326
|
+
schematic_symbol_id: z70.string().optional(),
|
|
1311
1327
|
pin_spacing: length.optional(),
|
|
1312
1328
|
pin_styles: schematic_pin_styles.optional(),
|
|
1313
1329
|
box_width: length.optional(),
|
|
1314
|
-
symbol_name:
|
|
1330
|
+
symbol_name: z70.string().optional(),
|
|
1315
1331
|
port_arrangement: port_arrangement.optional(),
|
|
1316
|
-
port_labels:
|
|
1317
|
-
symbol_display_value:
|
|
1318
|
-
subcircuit_id:
|
|
1319
|
-
schematic_group_id:
|
|
1320
|
-
is_schematic_group:
|
|
1321
|
-
source_group_id:
|
|
1322
|
-
is_box_with_pins:
|
|
1332
|
+
port_labels: z70.record(z70.string()).optional(),
|
|
1333
|
+
symbol_display_value: z70.string().optional(),
|
|
1334
|
+
subcircuit_id: z70.string().optional(),
|
|
1335
|
+
schematic_group_id: z70.string().optional(),
|
|
1336
|
+
is_schematic_group: z70.boolean().optional(),
|
|
1337
|
+
source_group_id: z70.string().optional(),
|
|
1338
|
+
is_box_with_pins: z70.boolean().optional().default(true)
|
|
1323
1339
|
});
|
|
1324
1340
|
expectTypesMatch(true);
|
|
1325
1341
|
|
|
1326
1342
|
// src/schematic/schematic_symbol.ts
|
|
1327
|
-
import { z as
|
|
1328
|
-
var schematicSymbolMetadata =
|
|
1343
|
+
import { z as z71 } from "zod";
|
|
1344
|
+
var schematicSymbolMetadata = z71.object({
|
|
1329
1345
|
kicad_symbol: kicadSymbolMetadata.optional()
|
|
1330
|
-
}).catchall(
|
|
1331
|
-
var schematic_symbol =
|
|
1332
|
-
type:
|
|
1333
|
-
schematic_symbol_id:
|
|
1334
|
-
name:
|
|
1346
|
+
}).catchall(z71.unknown());
|
|
1347
|
+
var schematic_symbol = z71.object({
|
|
1348
|
+
type: z71.literal("schematic_symbol"),
|
|
1349
|
+
schematic_symbol_id: z71.string(),
|
|
1350
|
+
name: z71.string().optional(),
|
|
1335
1351
|
metadata: schematicSymbolMetadata.optional()
|
|
1336
1352
|
}).describe(
|
|
1337
1353
|
"Defines a named schematic symbol that can be referenced by components."
|
|
@@ -1339,121 +1355,121 @@ var schematic_symbol = z70.object({
|
|
|
1339
1355
|
expectTypesMatch(true);
|
|
1340
1356
|
|
|
1341
1357
|
// src/schematic/schematic_line.ts
|
|
1342
|
-
import { z as
|
|
1343
|
-
var schematic_line =
|
|
1344
|
-
type:
|
|
1358
|
+
import { z as z72 } from "zod";
|
|
1359
|
+
var schematic_line = z72.object({
|
|
1360
|
+
type: z72.literal("schematic_line"),
|
|
1345
1361
|
schematic_line_id: getZodPrefixedIdWithDefault("schematic_line"),
|
|
1346
|
-
schematic_component_id:
|
|
1347
|
-
schematic_symbol_id:
|
|
1362
|
+
schematic_component_id: z72.string().optional(),
|
|
1363
|
+
schematic_symbol_id: z72.string().optional(),
|
|
1348
1364
|
x1: distance,
|
|
1349
1365
|
y1: distance,
|
|
1350
1366
|
x2: distance,
|
|
1351
1367
|
y2: distance,
|
|
1352
1368
|
stroke_width: distance.nullable().optional(),
|
|
1353
|
-
color:
|
|
1354
|
-
is_dashed:
|
|
1369
|
+
color: z72.string().default("#000000"),
|
|
1370
|
+
is_dashed: z72.boolean().default(false),
|
|
1355
1371
|
dash_length: distance.optional(),
|
|
1356
1372
|
dash_gap: distance.optional(),
|
|
1357
|
-
subcircuit_id:
|
|
1373
|
+
subcircuit_id: z72.string().optional()
|
|
1358
1374
|
}).describe("Draws a styled line on the schematic");
|
|
1359
1375
|
expectTypesMatch(true);
|
|
1360
1376
|
|
|
1361
1377
|
// src/schematic/schematic_rect.ts
|
|
1362
|
-
import { z as
|
|
1363
|
-
var schematic_rect =
|
|
1364
|
-
type:
|
|
1378
|
+
import { z as z73 } from "zod";
|
|
1379
|
+
var schematic_rect = z73.object({
|
|
1380
|
+
type: z73.literal("schematic_rect"),
|
|
1365
1381
|
schematic_rect_id: getZodPrefixedIdWithDefault("schematic_rect"),
|
|
1366
|
-
schematic_component_id:
|
|
1367
|
-
schematic_symbol_id:
|
|
1382
|
+
schematic_component_id: z73.string().optional(),
|
|
1383
|
+
schematic_symbol_id: z73.string().optional(),
|
|
1368
1384
|
center: point,
|
|
1369
1385
|
width: distance,
|
|
1370
1386
|
height: distance,
|
|
1371
1387
|
rotation: rotation.default(0),
|
|
1372
1388
|
stroke_width: distance.nullable().optional(),
|
|
1373
|
-
color:
|
|
1374
|
-
is_filled:
|
|
1375
|
-
fill_color:
|
|
1376
|
-
is_dashed:
|
|
1377
|
-
subcircuit_id:
|
|
1389
|
+
color: z73.string().default("#000000"),
|
|
1390
|
+
is_filled: z73.boolean().default(false),
|
|
1391
|
+
fill_color: z73.string().optional(),
|
|
1392
|
+
is_dashed: z73.boolean().default(false),
|
|
1393
|
+
subcircuit_id: z73.string().optional()
|
|
1378
1394
|
}).describe("Draws a styled rectangle on the schematic");
|
|
1379
1395
|
expectTypesMatch(true);
|
|
1380
1396
|
|
|
1381
1397
|
// src/schematic/schematic_circle.ts
|
|
1382
|
-
import { z as
|
|
1383
|
-
var schematic_circle =
|
|
1384
|
-
type:
|
|
1398
|
+
import { z as z74 } from "zod";
|
|
1399
|
+
var schematic_circle = z74.object({
|
|
1400
|
+
type: z74.literal("schematic_circle"),
|
|
1385
1401
|
schematic_circle_id: getZodPrefixedIdWithDefault("schematic_circle"),
|
|
1386
|
-
schematic_component_id:
|
|
1387
|
-
schematic_symbol_id:
|
|
1402
|
+
schematic_component_id: z74.string().optional(),
|
|
1403
|
+
schematic_symbol_id: z74.string().optional(),
|
|
1388
1404
|
center: point,
|
|
1389
1405
|
radius: distance,
|
|
1390
1406
|
stroke_width: distance.nullable().optional(),
|
|
1391
|
-
color:
|
|
1392
|
-
is_filled:
|
|
1393
|
-
fill_color:
|
|
1394
|
-
is_dashed:
|
|
1395
|
-
subcircuit_id:
|
|
1407
|
+
color: z74.string().default("#000000"),
|
|
1408
|
+
is_filled: z74.boolean().default(false),
|
|
1409
|
+
fill_color: z74.string().optional(),
|
|
1410
|
+
is_dashed: z74.boolean().default(false),
|
|
1411
|
+
subcircuit_id: z74.string().optional()
|
|
1396
1412
|
}).describe("Draws a styled circle on the schematic");
|
|
1397
1413
|
expectTypesMatch(true);
|
|
1398
1414
|
|
|
1399
1415
|
// src/schematic/schematic_arc.ts
|
|
1400
|
-
import { z as
|
|
1401
|
-
var schematic_arc =
|
|
1402
|
-
type:
|
|
1416
|
+
import { z as z75 } from "zod";
|
|
1417
|
+
var schematic_arc = z75.object({
|
|
1418
|
+
type: z75.literal("schematic_arc"),
|
|
1403
1419
|
schematic_arc_id: getZodPrefixedIdWithDefault("schematic_arc"),
|
|
1404
|
-
schematic_component_id:
|
|
1405
|
-
schematic_symbol_id:
|
|
1420
|
+
schematic_component_id: z75.string().optional(),
|
|
1421
|
+
schematic_symbol_id: z75.string().optional(),
|
|
1406
1422
|
center: point,
|
|
1407
1423
|
radius: distance,
|
|
1408
1424
|
start_angle_degrees: rotation,
|
|
1409
1425
|
end_angle_degrees: rotation,
|
|
1410
|
-
direction:
|
|
1426
|
+
direction: z75.enum(["clockwise", "counterclockwise"]).default("counterclockwise"),
|
|
1411
1427
|
stroke_width: distance.nullable().optional(),
|
|
1412
|
-
color:
|
|
1413
|
-
is_dashed:
|
|
1414
|
-
subcircuit_id:
|
|
1428
|
+
color: z75.string().default("#000000"),
|
|
1429
|
+
is_dashed: z75.boolean().default(false),
|
|
1430
|
+
subcircuit_id: z75.string().optional()
|
|
1415
1431
|
}).describe("Draws a styled arc on the schematic");
|
|
1416
1432
|
expectTypesMatch(true);
|
|
1417
1433
|
|
|
1418
1434
|
// src/schematic/schematic_trace.ts
|
|
1419
|
-
import { z as
|
|
1420
|
-
var schematic_trace =
|
|
1421
|
-
type:
|
|
1422
|
-
schematic_trace_id:
|
|
1423
|
-
source_trace_id:
|
|
1424
|
-
junctions:
|
|
1425
|
-
|
|
1426
|
-
x:
|
|
1427
|
-
y:
|
|
1435
|
+
import { z as z76 } from "zod";
|
|
1436
|
+
var schematic_trace = z76.object({
|
|
1437
|
+
type: z76.literal("schematic_trace"),
|
|
1438
|
+
schematic_trace_id: z76.string(),
|
|
1439
|
+
source_trace_id: z76.string().optional(),
|
|
1440
|
+
junctions: z76.array(
|
|
1441
|
+
z76.object({
|
|
1442
|
+
x: z76.number(),
|
|
1443
|
+
y: z76.number()
|
|
1428
1444
|
})
|
|
1429
1445
|
),
|
|
1430
|
-
edges:
|
|
1431
|
-
|
|
1432
|
-
from:
|
|
1433
|
-
x:
|
|
1434
|
-
y:
|
|
1446
|
+
edges: z76.array(
|
|
1447
|
+
z76.object({
|
|
1448
|
+
from: z76.object({
|
|
1449
|
+
x: z76.number(),
|
|
1450
|
+
y: z76.number()
|
|
1435
1451
|
}),
|
|
1436
|
-
to:
|
|
1437
|
-
x:
|
|
1438
|
-
y:
|
|
1452
|
+
to: z76.object({
|
|
1453
|
+
x: z76.number(),
|
|
1454
|
+
y: z76.number()
|
|
1439
1455
|
}),
|
|
1440
|
-
is_crossing:
|
|
1441
|
-
from_schematic_port_id:
|
|
1442
|
-
to_schematic_port_id:
|
|
1456
|
+
is_crossing: z76.boolean().optional(),
|
|
1457
|
+
from_schematic_port_id: z76.string().optional(),
|
|
1458
|
+
to_schematic_port_id: z76.string().optional()
|
|
1443
1459
|
})
|
|
1444
1460
|
),
|
|
1445
|
-
subcircuit_id:
|
|
1461
|
+
subcircuit_id: z76.string().optional(),
|
|
1446
1462
|
// TODO: make required in a future release
|
|
1447
|
-
subcircuit_connectivity_map_key:
|
|
1463
|
+
subcircuit_connectivity_map_key: z76.string().optional()
|
|
1448
1464
|
});
|
|
1449
1465
|
expectTypesMatch(true);
|
|
1450
1466
|
|
|
1451
1467
|
// src/schematic/schematic_text.ts
|
|
1452
|
-
import { z as
|
|
1468
|
+
import { z as z78 } from "zod";
|
|
1453
1469
|
|
|
1454
1470
|
// src/common/FivePointAnchor.ts
|
|
1455
|
-
import { z as
|
|
1456
|
-
var fivePointAnchor =
|
|
1471
|
+
import { z as z77 } from "zod";
|
|
1472
|
+
var fivePointAnchor = z77.enum([
|
|
1457
1473
|
"center",
|
|
1458
1474
|
"left",
|
|
1459
1475
|
"right",
|
|
@@ -1463,111 +1479,111 @@ var fivePointAnchor = z76.enum([
|
|
|
1463
1479
|
expectTypesMatch(true);
|
|
1464
1480
|
|
|
1465
1481
|
// src/schematic/schematic_text.ts
|
|
1466
|
-
var schematic_text =
|
|
1467
|
-
type:
|
|
1468
|
-
schematic_component_id:
|
|
1469
|
-
schematic_symbol_id:
|
|
1470
|
-
schematic_text_id:
|
|
1471
|
-
text:
|
|
1472
|
-
font_size:
|
|
1473
|
-
position:
|
|
1482
|
+
var schematic_text = z78.object({
|
|
1483
|
+
type: z78.literal("schematic_text"),
|
|
1484
|
+
schematic_component_id: z78.string().optional(),
|
|
1485
|
+
schematic_symbol_id: z78.string().optional(),
|
|
1486
|
+
schematic_text_id: z78.string(),
|
|
1487
|
+
text: z78.string(),
|
|
1488
|
+
font_size: z78.number().default(0.18),
|
|
1489
|
+
position: z78.object({
|
|
1474
1490
|
x: distance,
|
|
1475
1491
|
y: distance
|
|
1476
1492
|
}),
|
|
1477
|
-
rotation:
|
|
1478
|
-
anchor:
|
|
1479
|
-
color:
|
|
1480
|
-
subcircuit_id:
|
|
1493
|
+
rotation: z78.number().default(0),
|
|
1494
|
+
anchor: z78.union([fivePointAnchor.describe("legacy"), ninePointAnchor]).default("center"),
|
|
1495
|
+
color: z78.string().default("#000000"),
|
|
1496
|
+
subcircuit_id: z78.string().optional()
|
|
1481
1497
|
});
|
|
1482
1498
|
expectTypesMatch(true);
|
|
1483
1499
|
|
|
1484
1500
|
// src/schematic/schematic_port.ts
|
|
1485
|
-
import { z as
|
|
1486
|
-
var schematic_port =
|
|
1487
|
-
type:
|
|
1488
|
-
schematic_port_id:
|
|
1489
|
-
source_port_id:
|
|
1490
|
-
schematic_component_id:
|
|
1501
|
+
import { z as z79 } from "zod";
|
|
1502
|
+
var schematic_port = z79.object({
|
|
1503
|
+
type: z79.literal("schematic_port"),
|
|
1504
|
+
schematic_port_id: z79.string(),
|
|
1505
|
+
source_port_id: z79.string(),
|
|
1506
|
+
schematic_component_id: z79.string().optional(),
|
|
1491
1507
|
center: point,
|
|
1492
|
-
facing_direction:
|
|
1493
|
-
distance_from_component_edge:
|
|
1494
|
-
side_of_component:
|
|
1495
|
-
true_ccw_index:
|
|
1496
|
-
pin_number:
|
|
1497
|
-
display_pin_label:
|
|
1498
|
-
subcircuit_id:
|
|
1499
|
-
is_connected:
|
|
1500
|
-
has_input_arrow:
|
|
1501
|
-
has_output_arrow:
|
|
1502
|
-
is_drawn_with_inversion_circle:
|
|
1508
|
+
facing_direction: z79.enum(["up", "down", "left", "right"]).optional(),
|
|
1509
|
+
distance_from_component_edge: z79.number().optional(),
|
|
1510
|
+
side_of_component: z79.enum(["top", "bottom", "left", "right"]).optional(),
|
|
1511
|
+
true_ccw_index: z79.number().optional(),
|
|
1512
|
+
pin_number: z79.number().optional(),
|
|
1513
|
+
display_pin_label: z79.string().optional(),
|
|
1514
|
+
subcircuit_id: z79.string().optional(),
|
|
1515
|
+
is_connected: z79.boolean().optional(),
|
|
1516
|
+
has_input_arrow: z79.boolean().optional(),
|
|
1517
|
+
has_output_arrow: z79.boolean().optional(),
|
|
1518
|
+
is_drawn_with_inversion_circle: z79.boolean().optional()
|
|
1503
1519
|
}).describe("Defines a port on a schematic component");
|
|
1504
1520
|
expectTypesMatch(true);
|
|
1505
1521
|
|
|
1506
1522
|
// src/schematic/schematic_net_label.ts
|
|
1507
|
-
import { z as
|
|
1508
|
-
var schematic_net_label =
|
|
1509
|
-
type:
|
|
1523
|
+
import { z as z80 } from "zod";
|
|
1524
|
+
var schematic_net_label = z80.object({
|
|
1525
|
+
type: z80.literal("schematic_net_label"),
|
|
1510
1526
|
schematic_net_label_id: getZodPrefixedIdWithDefault("schematic_net_label"),
|
|
1511
|
-
schematic_trace_id:
|
|
1512
|
-
source_trace_id:
|
|
1513
|
-
source_net_id:
|
|
1527
|
+
schematic_trace_id: z80.string().optional(),
|
|
1528
|
+
source_trace_id: z80.string().optional(),
|
|
1529
|
+
source_net_id: z80.string(),
|
|
1514
1530
|
center: point,
|
|
1515
1531
|
anchor_position: point.optional(),
|
|
1516
|
-
anchor_side:
|
|
1517
|
-
text:
|
|
1518
|
-
symbol_name:
|
|
1519
|
-
is_movable:
|
|
1520
|
-
subcircuit_id:
|
|
1532
|
+
anchor_side: z80.enum(["top", "bottom", "left", "right"]),
|
|
1533
|
+
text: z80.string(),
|
|
1534
|
+
symbol_name: z80.string().optional(),
|
|
1535
|
+
is_movable: z80.boolean().optional(),
|
|
1536
|
+
subcircuit_id: z80.string().optional()
|
|
1521
1537
|
});
|
|
1522
1538
|
expectTypesMatch(true);
|
|
1523
1539
|
|
|
1524
1540
|
// src/schematic/schematic_error.ts
|
|
1525
|
-
import { z as
|
|
1541
|
+
import { z as z81 } from "zod";
|
|
1526
1542
|
var schematic_error = base_circuit_json_error.extend({
|
|
1527
|
-
type:
|
|
1528
|
-
schematic_error_id:
|
|
1543
|
+
type: z81.literal("schematic_error"),
|
|
1544
|
+
schematic_error_id: z81.string(),
|
|
1529
1545
|
// eventually each error type should be broken out into a dir of files
|
|
1530
|
-
error_type:
|
|
1531
|
-
subcircuit_id:
|
|
1546
|
+
error_type: z81.literal("schematic_port_not_found").default("schematic_port_not_found"),
|
|
1547
|
+
subcircuit_id: z81.string().optional()
|
|
1532
1548
|
}).describe("Defines a schematic error on the schematic");
|
|
1533
1549
|
expectTypesMatch(true);
|
|
1534
1550
|
|
|
1535
1551
|
// src/schematic/schematic_layout_error.ts
|
|
1536
|
-
import { z as
|
|
1552
|
+
import { z as z82 } from "zod";
|
|
1537
1553
|
var schematic_layout_error = base_circuit_json_error.extend({
|
|
1538
|
-
type:
|
|
1554
|
+
type: z82.literal("schematic_layout_error"),
|
|
1539
1555
|
schematic_layout_error_id: getZodPrefixedIdWithDefault(
|
|
1540
1556
|
"schematic_layout_error"
|
|
1541
1557
|
),
|
|
1542
|
-
error_type:
|
|
1543
|
-
source_group_id:
|
|
1544
|
-
schematic_group_id:
|
|
1545
|
-
subcircuit_id:
|
|
1558
|
+
error_type: z82.literal("schematic_layout_error").default("schematic_layout_error"),
|
|
1559
|
+
source_group_id: z82.string(),
|
|
1560
|
+
schematic_group_id: z82.string(),
|
|
1561
|
+
subcircuit_id: z82.string().optional()
|
|
1546
1562
|
}).describe("Error emitted when schematic layout fails for a group");
|
|
1547
1563
|
expectTypesMatch(true);
|
|
1548
1564
|
|
|
1549
1565
|
// src/schematic/schematic_debug_object.ts
|
|
1550
|
-
import { z as
|
|
1551
|
-
var schematic_debug_object_base =
|
|
1552
|
-
type:
|
|
1553
|
-
label:
|
|
1554
|
-
subcircuit_id:
|
|
1566
|
+
import { z as z83 } from "zod";
|
|
1567
|
+
var schematic_debug_object_base = z83.object({
|
|
1568
|
+
type: z83.literal("schematic_debug_object"),
|
|
1569
|
+
label: z83.string().optional(),
|
|
1570
|
+
subcircuit_id: z83.string().optional()
|
|
1555
1571
|
});
|
|
1556
1572
|
var schematic_debug_rect = schematic_debug_object_base.extend({
|
|
1557
|
-
shape:
|
|
1573
|
+
shape: z83.literal("rect"),
|
|
1558
1574
|
center: point,
|
|
1559
1575
|
size
|
|
1560
1576
|
});
|
|
1561
1577
|
var schematic_debug_line = schematic_debug_object_base.extend({
|
|
1562
|
-
shape:
|
|
1578
|
+
shape: z83.literal("line"),
|
|
1563
1579
|
start: point,
|
|
1564
1580
|
end: point
|
|
1565
1581
|
});
|
|
1566
1582
|
var schematic_debug_point = schematic_debug_object_base.extend({
|
|
1567
|
-
shape:
|
|
1583
|
+
shape: z83.literal("point"),
|
|
1568
1584
|
center: point
|
|
1569
1585
|
});
|
|
1570
|
-
var schematic_debug_object =
|
|
1586
|
+
var schematic_debug_object = z83.discriminatedUnion("shape", [
|
|
1571
1587
|
schematic_debug_rect,
|
|
1572
1588
|
schematic_debug_line,
|
|
1573
1589
|
schematic_debug_point
|
|
@@ -1575,152 +1591,152 @@ var schematic_debug_object = z82.discriminatedUnion("shape", [
|
|
|
1575
1591
|
expectTypesMatch(true);
|
|
1576
1592
|
|
|
1577
1593
|
// src/schematic/schematic_voltage_probe.ts
|
|
1578
|
-
import { z as
|
|
1579
|
-
var schematic_voltage_probe =
|
|
1580
|
-
type:
|
|
1581
|
-
schematic_voltage_probe_id:
|
|
1582
|
-
source_component_id:
|
|
1583
|
-
name:
|
|
1594
|
+
import { z as z84 } from "zod";
|
|
1595
|
+
var schematic_voltage_probe = z84.object({
|
|
1596
|
+
type: z84.literal("schematic_voltage_probe"),
|
|
1597
|
+
schematic_voltage_probe_id: z84.string(),
|
|
1598
|
+
source_component_id: z84.string().optional(),
|
|
1599
|
+
name: z84.string().optional(),
|
|
1584
1600
|
position: point,
|
|
1585
|
-
schematic_trace_id:
|
|
1601
|
+
schematic_trace_id: z84.string(),
|
|
1586
1602
|
voltage: voltage.optional(),
|
|
1587
|
-
subcircuit_id:
|
|
1588
|
-
color:
|
|
1603
|
+
subcircuit_id: z84.string().optional(),
|
|
1604
|
+
color: z84.string().optional(),
|
|
1589
1605
|
label_alignment: ninePointAnchor.optional()
|
|
1590
1606
|
}).describe("Defines a voltage probe measurement point on a schematic trace");
|
|
1591
1607
|
expectTypesMatch(true);
|
|
1592
1608
|
|
|
1593
1609
|
// src/schematic/schematic_manual_edit_conflict_warning.ts
|
|
1594
|
-
import { z as
|
|
1595
|
-
var schematic_manual_edit_conflict_warning =
|
|
1596
|
-
type:
|
|
1610
|
+
import { z as z85 } from "zod";
|
|
1611
|
+
var schematic_manual_edit_conflict_warning = z85.object({
|
|
1612
|
+
type: z85.literal("schematic_manual_edit_conflict_warning"),
|
|
1597
1613
|
schematic_manual_edit_conflict_warning_id: getZodPrefixedIdWithDefault(
|
|
1598
1614
|
"schematic_manual_edit_conflict_warning"
|
|
1599
1615
|
),
|
|
1600
|
-
warning_type:
|
|
1601
|
-
message:
|
|
1602
|
-
schematic_component_id:
|
|
1603
|
-
schematic_group_id:
|
|
1604
|
-
subcircuit_id:
|
|
1605
|
-
source_component_id:
|
|
1616
|
+
warning_type: z85.literal("schematic_manual_edit_conflict_warning").default("schematic_manual_edit_conflict_warning"),
|
|
1617
|
+
message: z85.string(),
|
|
1618
|
+
schematic_component_id: z85.string(),
|
|
1619
|
+
schematic_group_id: z85.string().optional(),
|
|
1620
|
+
subcircuit_id: z85.string().optional(),
|
|
1621
|
+
source_component_id: z85.string()
|
|
1606
1622
|
}).describe(
|
|
1607
1623
|
"Warning emitted when a component has both manual placement and explicit schX/schY coordinates"
|
|
1608
1624
|
);
|
|
1609
1625
|
expectTypesMatch(true);
|
|
1610
1626
|
|
|
1611
1627
|
// src/schematic/schematic_group.ts
|
|
1612
|
-
import { z as
|
|
1613
|
-
var schematic_group =
|
|
1614
|
-
type:
|
|
1628
|
+
import { z as z86 } from "zod";
|
|
1629
|
+
var schematic_group = z86.object({
|
|
1630
|
+
type: z86.literal("schematic_group"),
|
|
1615
1631
|
schematic_group_id: getZodPrefixedIdWithDefault("schematic_group"),
|
|
1616
|
-
source_group_id:
|
|
1617
|
-
is_subcircuit:
|
|
1618
|
-
subcircuit_id:
|
|
1632
|
+
source_group_id: z86.string(),
|
|
1633
|
+
is_subcircuit: z86.boolean().optional(),
|
|
1634
|
+
subcircuit_id: z86.string().optional(),
|
|
1619
1635
|
width: length,
|
|
1620
1636
|
height: length,
|
|
1621
1637
|
center: point,
|
|
1622
|
-
schematic_component_ids:
|
|
1623
|
-
show_as_schematic_box:
|
|
1624
|
-
name:
|
|
1625
|
-
description:
|
|
1638
|
+
schematic_component_ids: z86.array(z86.string()),
|
|
1639
|
+
show_as_schematic_box: z86.boolean().optional(),
|
|
1640
|
+
name: z86.string().optional(),
|
|
1641
|
+
description: z86.string().optional()
|
|
1626
1642
|
}).describe("Defines a group of components on the schematic");
|
|
1627
1643
|
expectTypesMatch(true);
|
|
1628
1644
|
|
|
1629
1645
|
// src/schematic/schematic_table.ts
|
|
1630
|
-
import { z as
|
|
1631
|
-
var schematic_table =
|
|
1632
|
-
type:
|
|
1646
|
+
import { z as z87 } from "zod";
|
|
1647
|
+
var schematic_table = z87.object({
|
|
1648
|
+
type: z87.literal("schematic_table"),
|
|
1633
1649
|
schematic_table_id: getZodPrefixedIdWithDefault("schematic_table"),
|
|
1634
1650
|
anchor_position: point,
|
|
1635
|
-
column_widths:
|
|
1636
|
-
row_heights:
|
|
1651
|
+
column_widths: z87.array(distance),
|
|
1652
|
+
row_heights: z87.array(distance),
|
|
1637
1653
|
cell_padding: distance.optional(),
|
|
1638
1654
|
border_width: distance.optional(),
|
|
1639
|
-
subcircuit_id:
|
|
1640
|
-
schematic_component_id:
|
|
1655
|
+
subcircuit_id: z87.string().optional(),
|
|
1656
|
+
schematic_component_id: z87.string().optional(),
|
|
1641
1657
|
anchor: ninePointAnchor.optional()
|
|
1642
1658
|
}).describe("Defines a table on the schematic");
|
|
1643
1659
|
expectTypesMatch(true);
|
|
1644
1660
|
|
|
1645
1661
|
// src/schematic/schematic_table_cell.ts
|
|
1646
|
-
import { z as
|
|
1647
|
-
var schematic_table_cell =
|
|
1648
|
-
type:
|
|
1662
|
+
import { z as z88 } from "zod";
|
|
1663
|
+
var schematic_table_cell = z88.object({
|
|
1664
|
+
type: z88.literal("schematic_table_cell"),
|
|
1649
1665
|
schematic_table_cell_id: getZodPrefixedIdWithDefault(
|
|
1650
1666
|
"schematic_table_cell"
|
|
1651
1667
|
),
|
|
1652
|
-
schematic_table_id:
|
|
1653
|
-
start_row_index:
|
|
1654
|
-
end_row_index:
|
|
1655
|
-
start_column_index:
|
|
1656
|
-
end_column_index:
|
|
1657
|
-
text:
|
|
1668
|
+
schematic_table_id: z88.string(),
|
|
1669
|
+
start_row_index: z88.number(),
|
|
1670
|
+
end_row_index: z88.number(),
|
|
1671
|
+
start_column_index: z88.number(),
|
|
1672
|
+
end_column_index: z88.number(),
|
|
1673
|
+
text: z88.string().optional(),
|
|
1658
1674
|
center: point,
|
|
1659
1675
|
width: distance,
|
|
1660
1676
|
height: distance,
|
|
1661
|
-
horizontal_align:
|
|
1662
|
-
vertical_align:
|
|
1677
|
+
horizontal_align: z88.enum(["left", "center", "right"]).optional(),
|
|
1678
|
+
vertical_align: z88.enum(["top", "middle", "bottom"]).optional(),
|
|
1663
1679
|
font_size: distance.optional(),
|
|
1664
|
-
subcircuit_id:
|
|
1680
|
+
subcircuit_id: z88.string().optional()
|
|
1665
1681
|
}).describe("Defines a cell within a schematic_table");
|
|
1666
1682
|
expectTypesMatch(true);
|
|
1667
1683
|
|
|
1668
1684
|
// src/schematic/schematic_sheet.ts
|
|
1669
|
-
import { z as
|
|
1670
|
-
var schematic_sheet =
|
|
1671
|
-
type:
|
|
1685
|
+
import { z as z89 } from "zod";
|
|
1686
|
+
var schematic_sheet = z89.object({
|
|
1687
|
+
type: z89.literal("schematic_sheet"),
|
|
1672
1688
|
schematic_sheet_id: getZodPrefixedIdWithDefault("schematic_sheet"),
|
|
1673
|
-
name:
|
|
1674
|
-
subcircuit_id:
|
|
1689
|
+
name: z89.string().optional(),
|
|
1690
|
+
subcircuit_id: z89.string().optional()
|
|
1675
1691
|
}).describe(
|
|
1676
1692
|
"Defines a schematic sheet or page that components can be placed on"
|
|
1677
1693
|
);
|
|
1678
1694
|
expectTypesMatch(true);
|
|
1679
1695
|
|
|
1680
1696
|
// src/pcb/properties/brep.ts
|
|
1681
|
-
import { z as
|
|
1682
|
-
var point_with_bulge =
|
|
1697
|
+
import { z as z90 } from "zod";
|
|
1698
|
+
var point_with_bulge = z90.object({
|
|
1683
1699
|
x: distance,
|
|
1684
1700
|
y: distance,
|
|
1685
|
-
bulge:
|
|
1701
|
+
bulge: z90.number().optional()
|
|
1686
1702
|
});
|
|
1687
1703
|
expectTypesMatch(true);
|
|
1688
|
-
var ring =
|
|
1689
|
-
vertices:
|
|
1704
|
+
var ring = z90.object({
|
|
1705
|
+
vertices: z90.array(point_with_bulge)
|
|
1690
1706
|
});
|
|
1691
1707
|
expectTypesMatch(true);
|
|
1692
|
-
var brep_shape =
|
|
1708
|
+
var brep_shape = z90.object({
|
|
1693
1709
|
outer_ring: ring,
|
|
1694
|
-
inner_rings:
|
|
1710
|
+
inner_rings: z90.array(ring).default([])
|
|
1695
1711
|
});
|
|
1696
1712
|
expectTypesMatch(true);
|
|
1697
1713
|
|
|
1698
1714
|
// src/pcb/properties/pcb_route_hints.ts
|
|
1699
|
-
import { z as
|
|
1700
|
-
var pcb_route_hint =
|
|
1715
|
+
import { z as z91 } from "zod";
|
|
1716
|
+
var pcb_route_hint = z91.object({
|
|
1701
1717
|
x: distance,
|
|
1702
1718
|
y: distance,
|
|
1703
|
-
via:
|
|
1719
|
+
via: z91.boolean().optional(),
|
|
1704
1720
|
via_to_layer: layer_ref.optional()
|
|
1705
1721
|
});
|
|
1706
|
-
var pcb_route_hints =
|
|
1722
|
+
var pcb_route_hints = z91.array(pcb_route_hint);
|
|
1707
1723
|
expectTypesMatch(true);
|
|
1708
1724
|
expectTypesMatch(true);
|
|
1709
1725
|
|
|
1710
1726
|
// src/pcb/properties/route_hint_point.ts
|
|
1711
|
-
import { z as
|
|
1712
|
-
var route_hint_point =
|
|
1727
|
+
import { z as z92 } from "zod";
|
|
1728
|
+
var route_hint_point = z92.object({
|
|
1713
1729
|
x: distance,
|
|
1714
1730
|
y: distance,
|
|
1715
|
-
via:
|
|
1731
|
+
via: z92.boolean().optional(),
|
|
1716
1732
|
to_layer: layer_ref.optional(),
|
|
1717
1733
|
trace_width: distance.optional()
|
|
1718
1734
|
});
|
|
1719
1735
|
expectTypesMatch(true);
|
|
1720
1736
|
|
|
1721
1737
|
// src/pcb/properties/manufacturing_drc_properties.ts
|
|
1722
|
-
import { z as
|
|
1723
|
-
var manufacturing_drc_properties =
|
|
1738
|
+
import { z as z93 } from "zod";
|
|
1739
|
+
var manufacturing_drc_properties = z93.object({
|
|
1724
1740
|
min_trace_width: length.optional(),
|
|
1725
1741
|
min_board_edge_clearance: length.optional(),
|
|
1726
1742
|
min_via_hole_edge_to_via_hole_edge_clearance: length.optional(),
|
|
@@ -1735,27 +1751,27 @@ var manufacturing_drc_properties = z92.object({
|
|
|
1735
1751
|
});
|
|
1736
1752
|
|
|
1737
1753
|
// src/pcb/pcb_component.ts
|
|
1738
|
-
import { z as
|
|
1739
|
-
var pcb_component =
|
|
1740
|
-
type:
|
|
1754
|
+
import { z as z94 } from "zod";
|
|
1755
|
+
var pcb_component = z94.object({
|
|
1756
|
+
type: z94.literal("pcb_component"),
|
|
1741
1757
|
pcb_component_id: getZodPrefixedIdWithDefault("pcb_component"),
|
|
1742
|
-
source_component_id:
|
|
1758
|
+
source_component_id: z94.string(),
|
|
1743
1759
|
center: point,
|
|
1744
1760
|
layer: layer_ref,
|
|
1745
1761
|
rotation,
|
|
1746
|
-
display_offset_x:
|
|
1762
|
+
display_offset_x: z94.string().optional().describe(
|
|
1747
1763
|
"How to display the x offset for this part, usually corresponding with how the user specified it"
|
|
1748
1764
|
),
|
|
1749
|
-
display_offset_y:
|
|
1765
|
+
display_offset_y: z94.string().optional().describe(
|
|
1750
1766
|
"How to display the y offset for this part, usually corresponding with how the user specified it"
|
|
1751
1767
|
),
|
|
1752
1768
|
width: length,
|
|
1753
1769
|
height: length,
|
|
1754
|
-
do_not_place:
|
|
1755
|
-
is_allowed_to_be_off_board:
|
|
1756
|
-
subcircuit_id:
|
|
1757
|
-
pcb_group_id:
|
|
1758
|
-
position_mode:
|
|
1770
|
+
do_not_place: z94.boolean().optional(),
|
|
1771
|
+
is_allowed_to_be_off_board: z94.boolean().optional(),
|
|
1772
|
+
subcircuit_id: z94.string().optional(),
|
|
1773
|
+
pcb_group_id: z94.string().optional(),
|
|
1774
|
+
position_mode: z94.enum([
|
|
1759
1775
|
"packed",
|
|
1760
1776
|
"relative_to_group_anchor",
|
|
1761
1777
|
"relative_to_another_component",
|
|
@@ -1763,129 +1779,129 @@ var pcb_component = z93.object({
|
|
|
1763
1779
|
]).optional(),
|
|
1764
1780
|
anchor_position: point.optional(),
|
|
1765
1781
|
anchor_alignment: ninePointAnchor.optional(),
|
|
1766
|
-
positioned_relative_to_pcb_group_id:
|
|
1767
|
-
positioned_relative_to_pcb_board_id:
|
|
1782
|
+
positioned_relative_to_pcb_group_id: z94.string().optional(),
|
|
1783
|
+
positioned_relative_to_pcb_board_id: z94.string().optional(),
|
|
1768
1784
|
cable_insertion_center: point.optional(),
|
|
1769
|
-
insertion_direction:
|
|
1785
|
+
insertion_direction: z94.enum([
|
|
1770
1786
|
"from_above",
|
|
1771
1787
|
"from_left",
|
|
1772
1788
|
"from_right",
|
|
1773
1789
|
"from_front",
|
|
1774
1790
|
"from_back"
|
|
1775
1791
|
]).optional(),
|
|
1776
|
-
metadata:
|
|
1792
|
+
metadata: z94.object({
|
|
1777
1793
|
kicad_footprint: kicadFootprintMetadata.optional()
|
|
1778
1794
|
}).optional(),
|
|
1779
|
-
obstructs_within_bounds:
|
|
1795
|
+
obstructs_within_bounds: z94.boolean().default(true).describe(
|
|
1780
1796
|
"Does this component take up all the space within its bounds on a layer. This is generally true except for when separated pin headers are being represented by a single component (in which case, chips can be placed between the pin headers) or for tall modules where chips fit underneath"
|
|
1781
1797
|
)
|
|
1782
1798
|
}).describe("Defines a component on the PCB");
|
|
1783
1799
|
expectTypesMatch(true);
|
|
1784
1800
|
|
|
1785
1801
|
// src/pcb/pcb_hole.ts
|
|
1786
|
-
import { z as
|
|
1787
|
-
var pcb_hole_circle =
|
|
1788
|
-
type:
|
|
1802
|
+
import { z as z95 } from "zod";
|
|
1803
|
+
var pcb_hole_circle = z95.object({
|
|
1804
|
+
type: z95.literal("pcb_hole"),
|
|
1789
1805
|
pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
|
|
1790
|
-
pcb_group_id:
|
|
1791
|
-
subcircuit_id:
|
|
1792
|
-
pcb_component_id:
|
|
1793
|
-
hole_shape:
|
|
1794
|
-
hole_diameter:
|
|
1806
|
+
pcb_group_id: z95.string().optional(),
|
|
1807
|
+
subcircuit_id: z95.string().optional(),
|
|
1808
|
+
pcb_component_id: z95.string().optional(),
|
|
1809
|
+
hole_shape: z95.literal("circle"),
|
|
1810
|
+
hole_diameter: z95.number(),
|
|
1795
1811
|
x: distance,
|
|
1796
1812
|
y: distance,
|
|
1797
|
-
is_covered_with_solder_mask:
|
|
1798
|
-
soldermask_margin:
|
|
1813
|
+
is_covered_with_solder_mask: z95.boolean().optional(),
|
|
1814
|
+
soldermask_margin: z95.number().optional()
|
|
1799
1815
|
});
|
|
1800
1816
|
var pcb_hole_circle_shape = pcb_hole_circle.describe(
|
|
1801
1817
|
"Defines a circular hole on the PCB"
|
|
1802
1818
|
);
|
|
1803
1819
|
expectTypesMatch(true);
|
|
1804
|
-
var pcb_hole_rect =
|
|
1805
|
-
type:
|
|
1820
|
+
var pcb_hole_rect = z95.object({
|
|
1821
|
+
type: z95.literal("pcb_hole"),
|
|
1806
1822
|
pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
|
|
1807
|
-
pcb_group_id:
|
|
1808
|
-
subcircuit_id:
|
|
1809
|
-
pcb_component_id:
|
|
1810
|
-
hole_shape:
|
|
1811
|
-
hole_width:
|
|
1812
|
-
hole_height:
|
|
1823
|
+
pcb_group_id: z95.string().optional(),
|
|
1824
|
+
subcircuit_id: z95.string().optional(),
|
|
1825
|
+
pcb_component_id: z95.string().optional(),
|
|
1826
|
+
hole_shape: z95.literal("rect"),
|
|
1827
|
+
hole_width: z95.number(),
|
|
1828
|
+
hole_height: z95.number(),
|
|
1813
1829
|
x: distance,
|
|
1814
1830
|
y: distance,
|
|
1815
|
-
is_covered_with_solder_mask:
|
|
1816
|
-
soldermask_margin:
|
|
1831
|
+
is_covered_with_solder_mask: z95.boolean().optional(),
|
|
1832
|
+
soldermask_margin: z95.number().optional()
|
|
1817
1833
|
});
|
|
1818
1834
|
var pcb_hole_rect_shape = pcb_hole_rect.describe(
|
|
1819
1835
|
"Defines a rectangular (square-capable) hole on the PCB. Use equal width/height for square."
|
|
1820
1836
|
);
|
|
1821
1837
|
expectTypesMatch(true);
|
|
1822
|
-
var pcb_hole_circle_or_square =
|
|
1823
|
-
type:
|
|
1838
|
+
var pcb_hole_circle_or_square = z95.object({
|
|
1839
|
+
type: z95.literal("pcb_hole"),
|
|
1824
1840
|
pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
|
|
1825
|
-
pcb_group_id:
|
|
1826
|
-
subcircuit_id:
|
|
1827
|
-
pcb_component_id:
|
|
1828
|
-
hole_shape:
|
|
1829
|
-
hole_diameter:
|
|
1841
|
+
pcb_group_id: z95.string().optional(),
|
|
1842
|
+
subcircuit_id: z95.string().optional(),
|
|
1843
|
+
pcb_component_id: z95.string().optional(),
|
|
1844
|
+
hole_shape: z95.enum(["circle", "square"]),
|
|
1845
|
+
hole_diameter: z95.number(),
|
|
1830
1846
|
x: distance,
|
|
1831
1847
|
y: distance,
|
|
1832
|
-
is_covered_with_solder_mask:
|
|
1833
|
-
soldermask_margin:
|
|
1848
|
+
is_covered_with_solder_mask: z95.boolean().optional(),
|
|
1849
|
+
soldermask_margin: z95.number().optional()
|
|
1834
1850
|
});
|
|
1835
1851
|
var pcb_hole_circle_or_square_shape = pcb_hole_circle_or_square.describe(
|
|
1836
1852
|
"Defines a circular or square hole on the PCB"
|
|
1837
1853
|
);
|
|
1838
1854
|
expectTypesMatch(true);
|
|
1839
|
-
var pcb_hole_oval =
|
|
1840
|
-
type:
|
|
1855
|
+
var pcb_hole_oval = z95.object({
|
|
1856
|
+
type: z95.literal("pcb_hole"),
|
|
1841
1857
|
pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
|
|
1842
|
-
pcb_group_id:
|
|
1843
|
-
subcircuit_id:
|
|
1844
|
-
pcb_component_id:
|
|
1845
|
-
hole_shape:
|
|
1846
|
-
hole_width:
|
|
1847
|
-
hole_height:
|
|
1858
|
+
pcb_group_id: z95.string().optional(),
|
|
1859
|
+
subcircuit_id: z95.string().optional(),
|
|
1860
|
+
pcb_component_id: z95.string().optional(),
|
|
1861
|
+
hole_shape: z95.literal("oval"),
|
|
1862
|
+
hole_width: z95.number(),
|
|
1863
|
+
hole_height: z95.number(),
|
|
1848
1864
|
x: distance,
|
|
1849
1865
|
y: distance,
|
|
1850
|
-
is_covered_with_solder_mask:
|
|
1851
|
-
soldermask_margin:
|
|
1866
|
+
is_covered_with_solder_mask: z95.boolean().optional(),
|
|
1867
|
+
soldermask_margin: z95.number().optional()
|
|
1852
1868
|
});
|
|
1853
1869
|
var pcb_hole_oval_shape = pcb_hole_oval.describe(
|
|
1854
1870
|
"Defines an oval hole on the PCB"
|
|
1855
1871
|
);
|
|
1856
1872
|
expectTypesMatch(true);
|
|
1857
|
-
var pcb_hole_pill =
|
|
1858
|
-
type:
|
|
1873
|
+
var pcb_hole_pill = z95.object({
|
|
1874
|
+
type: z95.literal("pcb_hole"),
|
|
1859
1875
|
pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
|
|
1860
|
-
pcb_group_id:
|
|
1861
|
-
subcircuit_id:
|
|
1862
|
-
pcb_component_id:
|
|
1863
|
-
hole_shape:
|
|
1864
|
-
hole_width:
|
|
1865
|
-
hole_height:
|
|
1876
|
+
pcb_group_id: z95.string().optional(),
|
|
1877
|
+
subcircuit_id: z95.string().optional(),
|
|
1878
|
+
pcb_component_id: z95.string().optional(),
|
|
1879
|
+
hole_shape: z95.literal("pill"),
|
|
1880
|
+
hole_width: z95.number(),
|
|
1881
|
+
hole_height: z95.number(),
|
|
1866
1882
|
x: distance,
|
|
1867
1883
|
y: distance,
|
|
1868
|
-
is_covered_with_solder_mask:
|
|
1869
|
-
soldermask_margin:
|
|
1884
|
+
is_covered_with_solder_mask: z95.boolean().optional(),
|
|
1885
|
+
soldermask_margin: z95.number().optional()
|
|
1870
1886
|
});
|
|
1871
1887
|
var pcb_hole_pill_shape = pcb_hole_pill.describe(
|
|
1872
1888
|
"Defines a pill-shaped hole on the PCB"
|
|
1873
1889
|
);
|
|
1874
1890
|
expectTypesMatch(true);
|
|
1875
|
-
var pcb_hole_rotated_pill =
|
|
1876
|
-
type:
|
|
1891
|
+
var pcb_hole_rotated_pill = z95.object({
|
|
1892
|
+
type: z95.literal("pcb_hole"),
|
|
1877
1893
|
pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
|
|
1878
|
-
pcb_group_id:
|
|
1879
|
-
subcircuit_id:
|
|
1880
|
-
pcb_component_id:
|
|
1881
|
-
hole_shape:
|
|
1882
|
-
hole_width:
|
|
1883
|
-
hole_height:
|
|
1894
|
+
pcb_group_id: z95.string().optional(),
|
|
1895
|
+
subcircuit_id: z95.string().optional(),
|
|
1896
|
+
pcb_component_id: z95.string().optional(),
|
|
1897
|
+
hole_shape: z95.literal("rotated_pill"),
|
|
1898
|
+
hole_width: z95.number(),
|
|
1899
|
+
hole_height: z95.number(),
|
|
1884
1900
|
x: distance,
|
|
1885
1901
|
y: distance,
|
|
1886
1902
|
ccw_rotation: rotation,
|
|
1887
|
-
is_covered_with_solder_mask:
|
|
1888
|
-
soldermask_margin:
|
|
1903
|
+
is_covered_with_solder_mask: z95.boolean().optional(),
|
|
1904
|
+
soldermask_margin: z95.number().optional()
|
|
1889
1905
|
});
|
|
1890
1906
|
var pcb_hole_rotated_pill_shape = pcb_hole_rotated_pill.describe(
|
|
1891
1907
|
"Defines a rotated pill-shaped hole on the PCB"
|
|
@@ -1894,147 +1910,147 @@ expectTypesMatch(true);
|
|
|
1894
1910
|
var pcb_hole = pcb_hole_circle_or_square.or(pcb_hole_oval).or(pcb_hole_pill).or(pcb_hole_rotated_pill).or(pcb_hole_circle).or(pcb_hole_rect);
|
|
1895
1911
|
|
|
1896
1912
|
// src/pcb/pcb_plated_hole.ts
|
|
1897
|
-
import { z as
|
|
1898
|
-
var pcb_plated_hole_circle =
|
|
1899
|
-
type:
|
|
1900
|
-
shape:
|
|
1901
|
-
pcb_group_id:
|
|
1902
|
-
subcircuit_id:
|
|
1903
|
-
outer_diameter:
|
|
1904
|
-
hole_diameter:
|
|
1905
|
-
is_covered_with_solder_mask:
|
|
1913
|
+
import { z as z96 } from "zod";
|
|
1914
|
+
var pcb_plated_hole_circle = z96.object({
|
|
1915
|
+
type: z96.literal("pcb_plated_hole"),
|
|
1916
|
+
shape: z96.literal("circle"),
|
|
1917
|
+
pcb_group_id: z96.string().optional(),
|
|
1918
|
+
subcircuit_id: z96.string().optional(),
|
|
1919
|
+
outer_diameter: z96.number(),
|
|
1920
|
+
hole_diameter: z96.number(),
|
|
1921
|
+
is_covered_with_solder_mask: z96.boolean().optional(),
|
|
1906
1922
|
x: distance,
|
|
1907
1923
|
y: distance,
|
|
1908
|
-
layers:
|
|
1909
|
-
port_hints:
|
|
1910
|
-
pcb_component_id:
|
|
1911
|
-
pcb_port_id:
|
|
1924
|
+
layers: z96.array(layer_ref),
|
|
1925
|
+
port_hints: z96.array(z96.string()).optional(),
|
|
1926
|
+
pcb_component_id: z96.string().optional(),
|
|
1927
|
+
pcb_port_id: z96.string().optional(),
|
|
1912
1928
|
pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole"),
|
|
1913
|
-
soldermask_margin:
|
|
1929
|
+
soldermask_margin: z96.number().optional()
|
|
1914
1930
|
});
|
|
1915
|
-
var pcb_plated_hole_oval =
|
|
1916
|
-
type:
|
|
1917
|
-
shape:
|
|
1918
|
-
pcb_group_id:
|
|
1919
|
-
subcircuit_id:
|
|
1920
|
-
outer_width:
|
|
1921
|
-
outer_height:
|
|
1922
|
-
hole_width:
|
|
1923
|
-
hole_height:
|
|
1924
|
-
is_covered_with_solder_mask:
|
|
1931
|
+
var pcb_plated_hole_oval = z96.object({
|
|
1932
|
+
type: z96.literal("pcb_plated_hole"),
|
|
1933
|
+
shape: z96.enum(["oval", "pill"]),
|
|
1934
|
+
pcb_group_id: z96.string().optional(),
|
|
1935
|
+
subcircuit_id: z96.string().optional(),
|
|
1936
|
+
outer_width: z96.number(),
|
|
1937
|
+
outer_height: z96.number(),
|
|
1938
|
+
hole_width: z96.number(),
|
|
1939
|
+
hole_height: z96.number(),
|
|
1940
|
+
is_covered_with_solder_mask: z96.boolean().optional(),
|
|
1925
1941
|
x: distance,
|
|
1926
1942
|
y: distance,
|
|
1927
1943
|
ccw_rotation: rotation,
|
|
1928
|
-
layers:
|
|
1929
|
-
port_hints:
|
|
1930
|
-
pcb_component_id:
|
|
1931
|
-
pcb_port_id:
|
|
1944
|
+
layers: z96.array(layer_ref),
|
|
1945
|
+
port_hints: z96.array(z96.string()).optional(),
|
|
1946
|
+
pcb_component_id: z96.string().optional(),
|
|
1947
|
+
pcb_port_id: z96.string().optional(),
|
|
1932
1948
|
pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole"),
|
|
1933
|
-
soldermask_margin:
|
|
1949
|
+
soldermask_margin: z96.number().optional()
|
|
1934
1950
|
});
|
|
1935
|
-
var pcb_circular_hole_with_rect_pad =
|
|
1936
|
-
type:
|
|
1937
|
-
shape:
|
|
1938
|
-
pcb_group_id:
|
|
1939
|
-
subcircuit_id:
|
|
1940
|
-
hole_shape:
|
|
1941
|
-
pad_shape:
|
|
1942
|
-
hole_diameter:
|
|
1943
|
-
rect_pad_width:
|
|
1944
|
-
rect_pad_height:
|
|
1945
|
-
rect_border_radius:
|
|
1951
|
+
var pcb_circular_hole_with_rect_pad = z96.object({
|
|
1952
|
+
type: z96.literal("pcb_plated_hole"),
|
|
1953
|
+
shape: z96.literal("circular_hole_with_rect_pad"),
|
|
1954
|
+
pcb_group_id: z96.string().optional(),
|
|
1955
|
+
subcircuit_id: z96.string().optional(),
|
|
1956
|
+
hole_shape: z96.literal("circle"),
|
|
1957
|
+
pad_shape: z96.literal("rect"),
|
|
1958
|
+
hole_diameter: z96.number(),
|
|
1959
|
+
rect_pad_width: z96.number(),
|
|
1960
|
+
rect_pad_height: z96.number(),
|
|
1961
|
+
rect_border_radius: z96.number().optional(),
|
|
1946
1962
|
hole_offset_x: distance.default(0),
|
|
1947
1963
|
hole_offset_y: distance.default(0),
|
|
1948
|
-
is_covered_with_solder_mask:
|
|
1964
|
+
is_covered_with_solder_mask: z96.boolean().optional(),
|
|
1949
1965
|
x: distance,
|
|
1950
1966
|
y: distance,
|
|
1951
|
-
layers:
|
|
1952
|
-
port_hints:
|
|
1953
|
-
pcb_component_id:
|
|
1954
|
-
pcb_port_id:
|
|
1967
|
+
layers: z96.array(layer_ref),
|
|
1968
|
+
port_hints: z96.array(z96.string()).optional(),
|
|
1969
|
+
pcb_component_id: z96.string().optional(),
|
|
1970
|
+
pcb_port_id: z96.string().optional(),
|
|
1955
1971
|
pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole"),
|
|
1956
|
-
soldermask_margin:
|
|
1972
|
+
soldermask_margin: z96.number().optional(),
|
|
1957
1973
|
rect_ccw_rotation: rotation.optional()
|
|
1958
1974
|
});
|
|
1959
|
-
var pcb_pill_hole_with_rect_pad =
|
|
1960
|
-
type:
|
|
1961
|
-
shape:
|
|
1962
|
-
pcb_group_id:
|
|
1963
|
-
subcircuit_id:
|
|
1964
|
-
hole_shape:
|
|
1965
|
-
pad_shape:
|
|
1966
|
-
hole_width:
|
|
1967
|
-
hole_height:
|
|
1968
|
-
rect_pad_width:
|
|
1969
|
-
rect_pad_height:
|
|
1970
|
-
rect_border_radius:
|
|
1975
|
+
var pcb_pill_hole_with_rect_pad = z96.object({
|
|
1976
|
+
type: z96.literal("pcb_plated_hole"),
|
|
1977
|
+
shape: z96.literal("pill_hole_with_rect_pad"),
|
|
1978
|
+
pcb_group_id: z96.string().optional(),
|
|
1979
|
+
subcircuit_id: z96.string().optional(),
|
|
1980
|
+
hole_shape: z96.literal("pill"),
|
|
1981
|
+
pad_shape: z96.literal("rect"),
|
|
1982
|
+
hole_width: z96.number(),
|
|
1983
|
+
hole_height: z96.number(),
|
|
1984
|
+
rect_pad_width: z96.number(),
|
|
1985
|
+
rect_pad_height: z96.number(),
|
|
1986
|
+
rect_border_radius: z96.number().optional(),
|
|
1971
1987
|
hole_offset_x: distance.default(0),
|
|
1972
1988
|
hole_offset_y: distance.default(0),
|
|
1973
|
-
is_covered_with_solder_mask:
|
|
1989
|
+
is_covered_with_solder_mask: z96.boolean().optional(),
|
|
1974
1990
|
x: distance,
|
|
1975
1991
|
y: distance,
|
|
1976
|
-
layers:
|
|
1977
|
-
port_hints:
|
|
1978
|
-
pcb_component_id:
|
|
1979
|
-
pcb_port_id:
|
|
1992
|
+
layers: z96.array(layer_ref),
|
|
1993
|
+
port_hints: z96.array(z96.string()).optional(),
|
|
1994
|
+
pcb_component_id: z96.string().optional(),
|
|
1995
|
+
pcb_port_id: z96.string().optional(),
|
|
1980
1996
|
pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole"),
|
|
1981
|
-
soldermask_margin:
|
|
1997
|
+
soldermask_margin: z96.number().optional()
|
|
1982
1998
|
});
|
|
1983
|
-
var pcb_rotated_pill_hole_with_rect_pad =
|
|
1984
|
-
type:
|
|
1985
|
-
shape:
|
|
1986
|
-
pcb_group_id:
|
|
1987
|
-
subcircuit_id:
|
|
1988
|
-
hole_shape:
|
|
1989
|
-
pad_shape:
|
|
1990
|
-
hole_width:
|
|
1991
|
-
hole_height:
|
|
1999
|
+
var pcb_rotated_pill_hole_with_rect_pad = z96.object({
|
|
2000
|
+
type: z96.literal("pcb_plated_hole"),
|
|
2001
|
+
shape: z96.literal("rotated_pill_hole_with_rect_pad"),
|
|
2002
|
+
pcb_group_id: z96.string().optional(),
|
|
2003
|
+
subcircuit_id: z96.string().optional(),
|
|
2004
|
+
hole_shape: z96.literal("rotated_pill"),
|
|
2005
|
+
pad_shape: z96.literal("rect"),
|
|
2006
|
+
hole_width: z96.number(),
|
|
2007
|
+
hole_height: z96.number(),
|
|
1992
2008
|
hole_ccw_rotation: rotation,
|
|
1993
|
-
rect_pad_width:
|
|
1994
|
-
rect_pad_height:
|
|
1995
|
-
rect_border_radius:
|
|
2009
|
+
rect_pad_width: z96.number(),
|
|
2010
|
+
rect_pad_height: z96.number(),
|
|
2011
|
+
rect_border_radius: z96.number().optional(),
|
|
1996
2012
|
rect_ccw_rotation: rotation,
|
|
1997
2013
|
hole_offset_x: distance.default(0),
|
|
1998
2014
|
hole_offset_y: distance.default(0),
|
|
1999
|
-
is_covered_with_solder_mask:
|
|
2015
|
+
is_covered_with_solder_mask: z96.boolean().optional(),
|
|
2000
2016
|
x: distance,
|
|
2001
2017
|
y: distance,
|
|
2002
|
-
layers:
|
|
2003
|
-
port_hints:
|
|
2004
|
-
pcb_component_id:
|
|
2005
|
-
pcb_port_id:
|
|
2018
|
+
layers: z96.array(layer_ref),
|
|
2019
|
+
port_hints: z96.array(z96.string()).optional(),
|
|
2020
|
+
pcb_component_id: z96.string().optional(),
|
|
2021
|
+
pcb_port_id: z96.string().optional(),
|
|
2006
2022
|
pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole"),
|
|
2007
|
-
soldermask_margin:
|
|
2023
|
+
soldermask_margin: z96.number().optional()
|
|
2008
2024
|
});
|
|
2009
|
-
var pcb_hole_with_polygon_pad =
|
|
2010
|
-
type:
|
|
2011
|
-
shape:
|
|
2012
|
-
pcb_group_id:
|
|
2013
|
-
subcircuit_id:
|
|
2014
|
-
hole_shape:
|
|
2015
|
-
hole_diameter:
|
|
2016
|
-
hole_width:
|
|
2017
|
-
hole_height:
|
|
2018
|
-
pad_outline:
|
|
2019
|
-
|
|
2025
|
+
var pcb_hole_with_polygon_pad = z96.object({
|
|
2026
|
+
type: z96.literal("pcb_plated_hole"),
|
|
2027
|
+
shape: z96.literal("hole_with_polygon_pad"),
|
|
2028
|
+
pcb_group_id: z96.string().optional(),
|
|
2029
|
+
subcircuit_id: z96.string().optional(),
|
|
2030
|
+
hole_shape: z96.enum(["circle", "oval", "pill", "rotated_pill"]),
|
|
2031
|
+
hole_diameter: z96.number().optional(),
|
|
2032
|
+
hole_width: z96.number().optional(),
|
|
2033
|
+
hole_height: z96.number().optional(),
|
|
2034
|
+
pad_outline: z96.array(
|
|
2035
|
+
z96.object({
|
|
2020
2036
|
x: distance,
|
|
2021
2037
|
y: distance
|
|
2022
2038
|
})
|
|
2023
2039
|
).min(3),
|
|
2024
2040
|
hole_offset_x: distance.default(0),
|
|
2025
2041
|
hole_offset_y: distance.default(0),
|
|
2026
|
-
is_covered_with_solder_mask:
|
|
2042
|
+
is_covered_with_solder_mask: z96.boolean().optional(),
|
|
2027
2043
|
x: distance,
|
|
2028
2044
|
y: distance,
|
|
2029
|
-
layers:
|
|
2030
|
-
port_hints:
|
|
2031
|
-
pcb_component_id:
|
|
2032
|
-
pcb_port_id:
|
|
2045
|
+
layers: z96.array(layer_ref),
|
|
2046
|
+
port_hints: z96.array(z96.string()).optional(),
|
|
2047
|
+
pcb_component_id: z96.string().optional(),
|
|
2048
|
+
pcb_port_id: z96.string().optional(),
|
|
2033
2049
|
pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole"),
|
|
2034
|
-
soldermask_margin:
|
|
2050
|
+
soldermask_margin: z96.number().optional(),
|
|
2035
2051
|
ccw_rotation: rotation.optional()
|
|
2036
2052
|
});
|
|
2037
|
-
var pcb_plated_hole =
|
|
2053
|
+
var pcb_plated_hole = z96.union([
|
|
2038
2054
|
pcb_plated_hole_circle,
|
|
2039
2055
|
pcb_plated_hole_oval,
|
|
2040
2056
|
pcb_circular_hole_with_rect_pad,
|
|
@@ -2052,138 +2068,138 @@ expectTypesMatch(true);
|
|
|
2052
2068
|
expectTypesMatch(true);
|
|
2053
2069
|
|
|
2054
2070
|
// src/pcb/pcb_port.ts
|
|
2055
|
-
import { z as
|
|
2056
|
-
var pcb_port =
|
|
2057
|
-
type:
|
|
2071
|
+
import { z as z97 } from "zod";
|
|
2072
|
+
var pcb_port = z97.object({
|
|
2073
|
+
type: z97.literal("pcb_port"),
|
|
2058
2074
|
pcb_port_id: getZodPrefixedIdWithDefault("pcb_port"),
|
|
2059
|
-
pcb_group_id:
|
|
2060
|
-
subcircuit_id:
|
|
2061
|
-
source_port_id:
|
|
2062
|
-
pcb_component_id:
|
|
2075
|
+
pcb_group_id: z97.string().optional(),
|
|
2076
|
+
subcircuit_id: z97.string().optional(),
|
|
2077
|
+
source_port_id: z97.string(),
|
|
2078
|
+
pcb_component_id: z97.string().optional(),
|
|
2063
2079
|
x: distance,
|
|
2064
2080
|
y: distance,
|
|
2065
|
-
layers:
|
|
2066
|
-
is_board_pinout:
|
|
2081
|
+
layers: z97.array(layer_ref),
|
|
2082
|
+
is_board_pinout: z97.boolean().optional()
|
|
2067
2083
|
}).describe("Defines a port on the PCB");
|
|
2068
2084
|
expectTypesMatch(true);
|
|
2069
2085
|
|
|
2070
2086
|
// src/pcb/pcb_smtpad.ts
|
|
2071
|
-
import { z as
|
|
2072
|
-
var pcb_smtpad_circle =
|
|
2073
|
-
type:
|
|
2074
|
-
shape:
|
|
2087
|
+
import { z as z98 } from "zod";
|
|
2088
|
+
var pcb_smtpad_circle = z98.object({
|
|
2089
|
+
type: z98.literal("pcb_smtpad"),
|
|
2090
|
+
shape: z98.literal("circle"),
|
|
2075
2091
|
pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
|
|
2076
|
-
pcb_group_id:
|
|
2077
|
-
subcircuit_id:
|
|
2092
|
+
pcb_group_id: z98.string().optional(),
|
|
2093
|
+
subcircuit_id: z98.string().optional(),
|
|
2078
2094
|
x: distance,
|
|
2079
2095
|
y: distance,
|
|
2080
|
-
radius:
|
|
2096
|
+
radius: z98.number(),
|
|
2081
2097
|
layer: layer_ref,
|
|
2082
|
-
port_hints:
|
|
2083
|
-
pcb_component_id:
|
|
2084
|
-
pcb_port_id:
|
|
2085
|
-
is_covered_with_solder_mask:
|
|
2086
|
-
soldermask_margin:
|
|
2098
|
+
port_hints: z98.array(z98.string()).optional(),
|
|
2099
|
+
pcb_component_id: z98.string().optional(),
|
|
2100
|
+
pcb_port_id: z98.string().optional(),
|
|
2101
|
+
is_covered_with_solder_mask: z98.boolean().optional(),
|
|
2102
|
+
soldermask_margin: z98.number().optional()
|
|
2087
2103
|
});
|
|
2088
|
-
var pcb_smtpad_rect =
|
|
2089
|
-
type:
|
|
2090
|
-
shape:
|
|
2104
|
+
var pcb_smtpad_rect = z98.object({
|
|
2105
|
+
type: z98.literal("pcb_smtpad"),
|
|
2106
|
+
shape: z98.literal("rect"),
|
|
2091
2107
|
pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
|
|
2092
|
-
pcb_group_id:
|
|
2093
|
-
subcircuit_id:
|
|
2108
|
+
pcb_group_id: z98.string().optional(),
|
|
2109
|
+
subcircuit_id: z98.string().optional(),
|
|
2094
2110
|
x: distance,
|
|
2095
2111
|
y: distance,
|
|
2096
|
-
width:
|
|
2097
|
-
height:
|
|
2098
|
-
rect_border_radius:
|
|
2099
|
-
corner_radius:
|
|
2112
|
+
width: z98.number(),
|
|
2113
|
+
height: z98.number(),
|
|
2114
|
+
rect_border_radius: z98.number().optional(),
|
|
2115
|
+
corner_radius: z98.number().optional(),
|
|
2100
2116
|
layer: layer_ref,
|
|
2101
|
-
port_hints:
|
|
2102
|
-
pcb_component_id:
|
|
2103
|
-
pcb_port_id:
|
|
2104
|
-
is_covered_with_solder_mask:
|
|
2105
|
-
soldermask_margin:
|
|
2106
|
-
soldermask_margin_left:
|
|
2107
|
-
soldermask_margin_top:
|
|
2108
|
-
soldermask_margin_right:
|
|
2109
|
-
soldermask_margin_bottom:
|
|
2117
|
+
port_hints: z98.array(z98.string()).optional(),
|
|
2118
|
+
pcb_component_id: z98.string().optional(),
|
|
2119
|
+
pcb_port_id: z98.string().optional(),
|
|
2120
|
+
is_covered_with_solder_mask: z98.boolean().optional(),
|
|
2121
|
+
soldermask_margin: z98.number().optional(),
|
|
2122
|
+
soldermask_margin_left: z98.number().optional(),
|
|
2123
|
+
soldermask_margin_top: z98.number().optional(),
|
|
2124
|
+
soldermask_margin_right: z98.number().optional(),
|
|
2125
|
+
soldermask_margin_bottom: z98.number().optional()
|
|
2110
2126
|
});
|
|
2111
|
-
var pcb_smtpad_rotated_rect =
|
|
2112
|
-
type:
|
|
2113
|
-
shape:
|
|
2127
|
+
var pcb_smtpad_rotated_rect = z98.object({
|
|
2128
|
+
type: z98.literal("pcb_smtpad"),
|
|
2129
|
+
shape: z98.literal("rotated_rect"),
|
|
2114
2130
|
pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
|
|
2115
|
-
pcb_group_id:
|
|
2116
|
-
subcircuit_id:
|
|
2131
|
+
pcb_group_id: z98.string().optional(),
|
|
2132
|
+
subcircuit_id: z98.string().optional(),
|
|
2117
2133
|
x: distance,
|
|
2118
2134
|
y: distance,
|
|
2119
|
-
width:
|
|
2120
|
-
height:
|
|
2121
|
-
rect_border_radius:
|
|
2122
|
-
corner_radius:
|
|
2135
|
+
width: z98.number(),
|
|
2136
|
+
height: z98.number(),
|
|
2137
|
+
rect_border_radius: z98.number().optional(),
|
|
2138
|
+
corner_radius: z98.number().optional(),
|
|
2123
2139
|
ccw_rotation: rotation,
|
|
2124
2140
|
layer: layer_ref,
|
|
2125
|
-
port_hints:
|
|
2126
|
-
pcb_component_id:
|
|
2127
|
-
pcb_port_id:
|
|
2128
|
-
is_covered_with_solder_mask:
|
|
2129
|
-
soldermask_margin:
|
|
2130
|
-
soldermask_margin_left:
|
|
2131
|
-
soldermask_margin_top:
|
|
2132
|
-
soldermask_margin_right:
|
|
2133
|
-
soldermask_margin_bottom:
|
|
2141
|
+
port_hints: z98.array(z98.string()).optional(),
|
|
2142
|
+
pcb_component_id: z98.string().optional(),
|
|
2143
|
+
pcb_port_id: z98.string().optional(),
|
|
2144
|
+
is_covered_with_solder_mask: z98.boolean().optional(),
|
|
2145
|
+
soldermask_margin: z98.number().optional(),
|
|
2146
|
+
soldermask_margin_left: z98.number().optional(),
|
|
2147
|
+
soldermask_margin_top: z98.number().optional(),
|
|
2148
|
+
soldermask_margin_right: z98.number().optional(),
|
|
2149
|
+
soldermask_margin_bottom: z98.number().optional()
|
|
2134
2150
|
});
|
|
2135
|
-
var pcb_smtpad_pill =
|
|
2136
|
-
type:
|
|
2137
|
-
shape:
|
|
2151
|
+
var pcb_smtpad_pill = z98.object({
|
|
2152
|
+
type: z98.literal("pcb_smtpad"),
|
|
2153
|
+
shape: z98.literal("pill"),
|
|
2138
2154
|
pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
|
|
2139
|
-
pcb_group_id:
|
|
2140
|
-
subcircuit_id:
|
|
2155
|
+
pcb_group_id: z98.string().optional(),
|
|
2156
|
+
subcircuit_id: z98.string().optional(),
|
|
2141
2157
|
x: distance,
|
|
2142
2158
|
y: distance,
|
|
2143
|
-
width:
|
|
2144
|
-
height:
|
|
2145
|
-
radius:
|
|
2159
|
+
width: z98.number(),
|
|
2160
|
+
height: z98.number(),
|
|
2161
|
+
radius: z98.number(),
|
|
2146
2162
|
layer: layer_ref,
|
|
2147
|
-
port_hints:
|
|
2148
|
-
pcb_component_id:
|
|
2149
|
-
pcb_port_id:
|
|
2150
|
-
is_covered_with_solder_mask:
|
|
2151
|
-
soldermask_margin:
|
|
2163
|
+
port_hints: z98.array(z98.string()).optional(),
|
|
2164
|
+
pcb_component_id: z98.string().optional(),
|
|
2165
|
+
pcb_port_id: z98.string().optional(),
|
|
2166
|
+
is_covered_with_solder_mask: z98.boolean().optional(),
|
|
2167
|
+
soldermask_margin: z98.number().optional()
|
|
2152
2168
|
});
|
|
2153
|
-
var pcb_smtpad_rotated_pill =
|
|
2154
|
-
type:
|
|
2155
|
-
shape:
|
|
2169
|
+
var pcb_smtpad_rotated_pill = z98.object({
|
|
2170
|
+
type: z98.literal("pcb_smtpad"),
|
|
2171
|
+
shape: z98.literal("rotated_pill"),
|
|
2156
2172
|
pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
|
|
2157
|
-
pcb_group_id:
|
|
2158
|
-
subcircuit_id:
|
|
2173
|
+
pcb_group_id: z98.string().optional(),
|
|
2174
|
+
subcircuit_id: z98.string().optional(),
|
|
2159
2175
|
x: distance,
|
|
2160
2176
|
y: distance,
|
|
2161
|
-
width:
|
|
2162
|
-
height:
|
|
2163
|
-
radius:
|
|
2177
|
+
width: z98.number(),
|
|
2178
|
+
height: z98.number(),
|
|
2179
|
+
radius: z98.number(),
|
|
2164
2180
|
ccw_rotation: rotation,
|
|
2165
2181
|
layer: layer_ref,
|
|
2166
|
-
port_hints:
|
|
2167
|
-
pcb_component_id:
|
|
2168
|
-
pcb_port_id:
|
|
2169
|
-
is_covered_with_solder_mask:
|
|
2170
|
-
soldermask_margin:
|
|
2182
|
+
port_hints: z98.array(z98.string()).optional(),
|
|
2183
|
+
pcb_component_id: z98.string().optional(),
|
|
2184
|
+
pcb_port_id: z98.string().optional(),
|
|
2185
|
+
is_covered_with_solder_mask: z98.boolean().optional(),
|
|
2186
|
+
soldermask_margin: z98.number().optional()
|
|
2171
2187
|
});
|
|
2172
|
-
var pcb_smtpad_polygon =
|
|
2173
|
-
type:
|
|
2174
|
-
shape:
|
|
2188
|
+
var pcb_smtpad_polygon = z98.object({
|
|
2189
|
+
type: z98.literal("pcb_smtpad"),
|
|
2190
|
+
shape: z98.literal("polygon"),
|
|
2175
2191
|
pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
|
|
2176
|
-
pcb_group_id:
|
|
2177
|
-
subcircuit_id:
|
|
2178
|
-
points:
|
|
2192
|
+
pcb_group_id: z98.string().optional(),
|
|
2193
|
+
subcircuit_id: z98.string().optional(),
|
|
2194
|
+
points: z98.array(point),
|
|
2179
2195
|
layer: layer_ref,
|
|
2180
|
-
port_hints:
|
|
2181
|
-
pcb_component_id:
|
|
2182
|
-
pcb_port_id:
|
|
2183
|
-
is_covered_with_solder_mask:
|
|
2184
|
-
soldermask_margin:
|
|
2196
|
+
port_hints: z98.array(z98.string()).optional(),
|
|
2197
|
+
pcb_component_id: z98.string().optional(),
|
|
2198
|
+
pcb_port_id: z98.string().optional(),
|
|
2199
|
+
is_covered_with_solder_mask: z98.boolean().optional(),
|
|
2200
|
+
soldermask_margin: z98.number().optional()
|
|
2185
2201
|
});
|
|
2186
|
-
var pcb_smtpad =
|
|
2202
|
+
var pcb_smtpad = z98.discriminatedUnion("shape", [
|
|
2187
2203
|
pcb_smtpad_circle,
|
|
2188
2204
|
pcb_smtpad_rect,
|
|
2189
2205
|
pcb_smtpad_rotated_rect,
|
|
@@ -2199,79 +2215,79 @@ expectTypesMatch(true);
|
|
|
2199
2215
|
expectTypesMatch(true);
|
|
2200
2216
|
|
|
2201
2217
|
// src/pcb/pcb_solder_paste.ts
|
|
2202
|
-
import { z as
|
|
2203
|
-
var pcb_solder_paste_circle =
|
|
2204
|
-
type:
|
|
2205
|
-
shape:
|
|
2218
|
+
import { z as z99 } from "zod";
|
|
2219
|
+
var pcb_solder_paste_circle = z99.object({
|
|
2220
|
+
type: z99.literal("pcb_solder_paste"),
|
|
2221
|
+
shape: z99.literal("circle"),
|
|
2206
2222
|
pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
|
|
2207
|
-
pcb_group_id:
|
|
2208
|
-
subcircuit_id:
|
|
2223
|
+
pcb_group_id: z99.string().optional(),
|
|
2224
|
+
subcircuit_id: z99.string().optional(),
|
|
2209
2225
|
x: distance,
|
|
2210
2226
|
y: distance,
|
|
2211
|
-
radius:
|
|
2227
|
+
radius: z99.number(),
|
|
2212
2228
|
layer: layer_ref,
|
|
2213
|
-
pcb_component_id:
|
|
2214
|
-
pcb_smtpad_id:
|
|
2229
|
+
pcb_component_id: z99.string().optional(),
|
|
2230
|
+
pcb_smtpad_id: z99.string().optional()
|
|
2215
2231
|
});
|
|
2216
|
-
var pcb_solder_paste_rect =
|
|
2217
|
-
type:
|
|
2218
|
-
shape:
|
|
2232
|
+
var pcb_solder_paste_rect = z99.object({
|
|
2233
|
+
type: z99.literal("pcb_solder_paste"),
|
|
2234
|
+
shape: z99.literal("rect"),
|
|
2219
2235
|
pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
|
|
2220
|
-
pcb_group_id:
|
|
2221
|
-
subcircuit_id:
|
|
2236
|
+
pcb_group_id: z99.string().optional(),
|
|
2237
|
+
subcircuit_id: z99.string().optional(),
|
|
2222
2238
|
x: distance,
|
|
2223
2239
|
y: distance,
|
|
2224
|
-
width:
|
|
2225
|
-
height:
|
|
2240
|
+
width: z99.number(),
|
|
2241
|
+
height: z99.number(),
|
|
2226
2242
|
layer: layer_ref,
|
|
2227
|
-
pcb_component_id:
|
|
2228
|
-
pcb_smtpad_id:
|
|
2243
|
+
pcb_component_id: z99.string().optional(),
|
|
2244
|
+
pcb_smtpad_id: z99.string().optional()
|
|
2229
2245
|
});
|
|
2230
|
-
var pcb_solder_paste_pill =
|
|
2231
|
-
type:
|
|
2232
|
-
shape:
|
|
2246
|
+
var pcb_solder_paste_pill = z99.object({
|
|
2247
|
+
type: z99.literal("pcb_solder_paste"),
|
|
2248
|
+
shape: z99.literal("pill"),
|
|
2233
2249
|
pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
|
|
2234
|
-
pcb_group_id:
|
|
2235
|
-
subcircuit_id:
|
|
2250
|
+
pcb_group_id: z99.string().optional(),
|
|
2251
|
+
subcircuit_id: z99.string().optional(),
|
|
2236
2252
|
x: distance,
|
|
2237
2253
|
y: distance,
|
|
2238
|
-
width:
|
|
2239
|
-
height:
|
|
2240
|
-
radius:
|
|
2254
|
+
width: z99.number(),
|
|
2255
|
+
height: z99.number(),
|
|
2256
|
+
radius: z99.number(),
|
|
2241
2257
|
layer: layer_ref,
|
|
2242
|
-
pcb_component_id:
|
|
2243
|
-
pcb_smtpad_id:
|
|
2258
|
+
pcb_component_id: z99.string().optional(),
|
|
2259
|
+
pcb_smtpad_id: z99.string().optional()
|
|
2244
2260
|
});
|
|
2245
|
-
var pcb_solder_paste_rotated_rect =
|
|
2246
|
-
type:
|
|
2247
|
-
shape:
|
|
2261
|
+
var pcb_solder_paste_rotated_rect = z99.object({
|
|
2262
|
+
type: z99.literal("pcb_solder_paste"),
|
|
2263
|
+
shape: z99.literal("rotated_rect"),
|
|
2248
2264
|
pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
|
|
2249
|
-
pcb_group_id:
|
|
2250
|
-
subcircuit_id:
|
|
2265
|
+
pcb_group_id: z99.string().optional(),
|
|
2266
|
+
subcircuit_id: z99.string().optional(),
|
|
2251
2267
|
x: distance,
|
|
2252
2268
|
y: distance,
|
|
2253
|
-
width:
|
|
2254
|
-
height:
|
|
2269
|
+
width: z99.number(),
|
|
2270
|
+
height: z99.number(),
|
|
2255
2271
|
ccw_rotation: distance,
|
|
2256
2272
|
layer: layer_ref,
|
|
2257
|
-
pcb_component_id:
|
|
2258
|
-
pcb_smtpad_id:
|
|
2273
|
+
pcb_component_id: z99.string().optional(),
|
|
2274
|
+
pcb_smtpad_id: z99.string().optional()
|
|
2259
2275
|
});
|
|
2260
|
-
var pcb_solder_paste_oval =
|
|
2261
|
-
type:
|
|
2262
|
-
shape:
|
|
2276
|
+
var pcb_solder_paste_oval = z99.object({
|
|
2277
|
+
type: z99.literal("pcb_solder_paste"),
|
|
2278
|
+
shape: z99.literal("oval"),
|
|
2263
2279
|
pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
|
|
2264
|
-
pcb_group_id:
|
|
2265
|
-
subcircuit_id:
|
|
2280
|
+
pcb_group_id: z99.string().optional(),
|
|
2281
|
+
subcircuit_id: z99.string().optional(),
|
|
2266
2282
|
x: distance,
|
|
2267
2283
|
y: distance,
|
|
2268
|
-
width:
|
|
2269
|
-
height:
|
|
2284
|
+
width: z99.number(),
|
|
2285
|
+
height: z99.number(),
|
|
2270
2286
|
layer: layer_ref,
|
|
2271
|
-
pcb_component_id:
|
|
2272
|
-
pcb_smtpad_id:
|
|
2287
|
+
pcb_component_id: z99.string().optional(),
|
|
2288
|
+
pcb_smtpad_id: z99.string().optional()
|
|
2273
2289
|
});
|
|
2274
|
-
var pcb_solder_paste =
|
|
2290
|
+
var pcb_solder_paste = z99.union([
|
|
2275
2291
|
pcb_solder_paste_circle,
|
|
2276
2292
|
pcb_solder_paste_rect,
|
|
2277
2293
|
pcb_solder_paste_pill,
|
|
@@ -2287,173 +2303,173 @@ expectTypesMatch(
|
|
|
2287
2303
|
expectTypesMatch(true);
|
|
2288
2304
|
|
|
2289
2305
|
// src/pcb/pcb_text.ts
|
|
2290
|
-
import { z as
|
|
2291
|
-
var pcb_text =
|
|
2292
|
-
type:
|
|
2306
|
+
import { z as z100 } from "zod";
|
|
2307
|
+
var pcb_text = z100.object({
|
|
2308
|
+
type: z100.literal("pcb_text"),
|
|
2293
2309
|
pcb_text_id: getZodPrefixedIdWithDefault("pcb_text"),
|
|
2294
|
-
pcb_group_id:
|
|
2295
|
-
subcircuit_id:
|
|
2296
|
-
text:
|
|
2310
|
+
pcb_group_id: z100.string().optional(),
|
|
2311
|
+
subcircuit_id: z100.string().optional(),
|
|
2312
|
+
text: z100.string(),
|
|
2297
2313
|
center: point,
|
|
2298
2314
|
layer: layer_ref,
|
|
2299
2315
|
width: length,
|
|
2300
2316
|
height: length,
|
|
2301
|
-
lines:
|
|
2317
|
+
lines: z100.number(),
|
|
2302
2318
|
// @ts-ignore
|
|
2303
|
-
align:
|
|
2319
|
+
align: z100.enum(["bottom-left"])
|
|
2304
2320
|
}).describe("Defines text on the PCB");
|
|
2305
2321
|
expectTypesMatch(true);
|
|
2306
2322
|
|
|
2307
2323
|
// src/pcb/pcb_trace.ts
|
|
2308
|
-
import { z as
|
|
2309
|
-
var pcb_trace_route_point_wire =
|
|
2310
|
-
route_type:
|
|
2324
|
+
import { z as z101 } from "zod";
|
|
2325
|
+
var pcb_trace_route_point_wire = z101.object({
|
|
2326
|
+
route_type: z101.literal("wire"),
|
|
2311
2327
|
x: distance,
|
|
2312
2328
|
y: distance,
|
|
2313
2329
|
width: distance,
|
|
2314
|
-
copper_pour_id:
|
|
2315
|
-
is_inside_copper_pour:
|
|
2316
|
-
start_pcb_port_id:
|
|
2317
|
-
end_pcb_port_id:
|
|
2330
|
+
copper_pour_id: z101.string().optional(),
|
|
2331
|
+
is_inside_copper_pour: z101.boolean().optional(),
|
|
2332
|
+
start_pcb_port_id: z101.string().optional(),
|
|
2333
|
+
end_pcb_port_id: z101.string().optional(),
|
|
2318
2334
|
layer: layer_ref
|
|
2319
2335
|
});
|
|
2320
|
-
var pcb_trace_route_point_via =
|
|
2321
|
-
route_type:
|
|
2336
|
+
var pcb_trace_route_point_via = z101.object({
|
|
2337
|
+
route_type: z101.literal("via"),
|
|
2322
2338
|
x: distance,
|
|
2323
2339
|
y: distance,
|
|
2324
|
-
copper_pour_id:
|
|
2325
|
-
is_inside_copper_pour:
|
|
2340
|
+
copper_pour_id: z101.string().optional(),
|
|
2341
|
+
is_inside_copper_pour: z101.boolean().optional(),
|
|
2326
2342
|
hole_diameter: distance.optional(),
|
|
2327
2343
|
outer_diameter: distance.optional(),
|
|
2328
2344
|
from_layer: layer_ref,
|
|
2329
2345
|
to_layer: layer_ref
|
|
2330
2346
|
});
|
|
2331
|
-
var pcb_trace_route_point_through_pad =
|
|
2332
|
-
route_type:
|
|
2347
|
+
var pcb_trace_route_point_through_pad = z101.object({
|
|
2348
|
+
route_type: z101.literal("through_pad"),
|
|
2333
2349
|
start: point,
|
|
2334
2350
|
end: point,
|
|
2335
2351
|
width: distance,
|
|
2336
2352
|
start_layer: layer_ref,
|
|
2337
2353
|
end_layer: layer_ref,
|
|
2338
|
-
pcb_smtpad_id:
|
|
2339
|
-
pcb_plated_hole_id:
|
|
2354
|
+
pcb_smtpad_id: z101.string().optional(),
|
|
2355
|
+
pcb_plated_hole_id: z101.string().optional()
|
|
2340
2356
|
});
|
|
2341
|
-
var pcb_trace_route_point =
|
|
2357
|
+
var pcb_trace_route_point = z101.union([
|
|
2342
2358
|
pcb_trace_route_point_wire,
|
|
2343
2359
|
pcb_trace_route_point_via,
|
|
2344
2360
|
pcb_trace_route_point_through_pad
|
|
2345
2361
|
]);
|
|
2346
|
-
var pcb_trace =
|
|
2347
|
-
type:
|
|
2348
|
-
source_trace_id:
|
|
2349
|
-
pcb_component_id:
|
|
2362
|
+
var pcb_trace = z101.object({
|
|
2363
|
+
type: z101.literal("pcb_trace"),
|
|
2364
|
+
source_trace_id: z101.string().optional(),
|
|
2365
|
+
pcb_component_id: z101.string().optional(),
|
|
2350
2366
|
pcb_trace_id: getZodPrefixedIdWithDefault("pcb_trace"),
|
|
2351
|
-
pcb_group_id:
|
|
2352
|
-
subcircuit_id:
|
|
2353
|
-
route_thickness_mode:
|
|
2354
|
-
route_order_index:
|
|
2355
|
-
should_round_corners:
|
|
2356
|
-
trace_length:
|
|
2357
|
-
highlight_color:
|
|
2358
|
-
route:
|
|
2367
|
+
pcb_group_id: z101.string().optional(),
|
|
2368
|
+
subcircuit_id: z101.string().optional(),
|
|
2369
|
+
route_thickness_mode: z101.enum(["constant", "interpolated"]).default("constant").optional(),
|
|
2370
|
+
route_order_index: z101.number().optional(),
|
|
2371
|
+
should_round_corners: z101.boolean().optional(),
|
|
2372
|
+
trace_length: z101.number().optional(),
|
|
2373
|
+
highlight_color: z101.string().optional(),
|
|
2374
|
+
route: z101.array(pcb_trace_route_point)
|
|
2359
2375
|
}).describe("Defines a trace on the PCB");
|
|
2360
2376
|
expectTypesMatch(true);
|
|
2361
2377
|
expectTypesMatch(true);
|
|
2362
2378
|
|
|
2363
2379
|
// src/pcb/pcb_trace_warning.ts
|
|
2364
|
-
import { z as
|
|
2365
|
-
var pcb_trace_warning =
|
|
2366
|
-
type:
|
|
2380
|
+
import { z as z102 } from "zod";
|
|
2381
|
+
var pcb_trace_warning = z102.object({
|
|
2382
|
+
type: z102.literal("pcb_trace_warning"),
|
|
2367
2383
|
pcb_trace_warning_id: getZodPrefixedIdWithDefault("pcb_trace_warning"),
|
|
2368
|
-
warning_type:
|
|
2369
|
-
message:
|
|
2384
|
+
warning_type: z102.literal("pcb_trace_warning").default("pcb_trace_warning"),
|
|
2385
|
+
message: z102.string(),
|
|
2370
2386
|
center: point.optional(),
|
|
2371
|
-
pcb_trace_id:
|
|
2372
|
-
source_trace_id:
|
|
2373
|
-
pcb_component_ids:
|
|
2374
|
-
pcb_port_ids:
|
|
2375
|
-
subcircuit_id:
|
|
2387
|
+
pcb_trace_id: z102.string(),
|
|
2388
|
+
source_trace_id: z102.string(),
|
|
2389
|
+
pcb_component_ids: z102.array(z102.string()),
|
|
2390
|
+
pcb_port_ids: z102.array(z102.string()),
|
|
2391
|
+
subcircuit_id: z102.string().optional()
|
|
2376
2392
|
}).describe("Defines a trace warning on the PCB");
|
|
2377
2393
|
expectTypesMatch(true);
|
|
2378
2394
|
|
|
2379
2395
|
// src/pcb/pcb_trace_error.ts
|
|
2380
|
-
import { z as
|
|
2396
|
+
import { z as z103 } from "zod";
|
|
2381
2397
|
var pcb_trace_error = base_circuit_json_error.extend({
|
|
2382
|
-
type:
|
|
2398
|
+
type: z103.literal("pcb_trace_error"),
|
|
2383
2399
|
pcb_trace_error_id: getZodPrefixedIdWithDefault("pcb_trace_error"),
|
|
2384
|
-
error_type:
|
|
2400
|
+
error_type: z103.literal("pcb_trace_error").default("pcb_trace_error"),
|
|
2385
2401
|
center: point.optional(),
|
|
2386
|
-
pcb_trace_id:
|
|
2387
|
-
source_trace_id:
|
|
2388
|
-
pcb_component_ids:
|
|
2389
|
-
pcb_port_ids:
|
|
2390
|
-
subcircuit_id:
|
|
2402
|
+
pcb_trace_id: z103.string(),
|
|
2403
|
+
source_trace_id: z103.string(),
|
|
2404
|
+
pcb_component_ids: z103.array(z103.string()),
|
|
2405
|
+
pcb_port_ids: z103.array(z103.string()),
|
|
2406
|
+
subcircuit_id: z103.string().optional()
|
|
2391
2407
|
}).describe("Defines a trace error on the PCB");
|
|
2392
2408
|
expectTypesMatch(true);
|
|
2393
2409
|
|
|
2394
2410
|
// src/pcb/pcb_trace_missing_error.ts
|
|
2395
|
-
import { z as
|
|
2411
|
+
import { z as z104 } from "zod";
|
|
2396
2412
|
var pcb_trace_missing_error = base_circuit_json_error.extend({
|
|
2397
|
-
type:
|
|
2413
|
+
type: z104.literal("pcb_trace_missing_error"),
|
|
2398
2414
|
pcb_trace_missing_error_id: getZodPrefixedIdWithDefault(
|
|
2399
2415
|
"pcb_trace_missing_error"
|
|
2400
2416
|
),
|
|
2401
|
-
error_type:
|
|
2417
|
+
error_type: z104.literal("pcb_trace_missing_error").default("pcb_trace_missing_error"),
|
|
2402
2418
|
center: point.optional(),
|
|
2403
|
-
source_trace_id:
|
|
2404
|
-
pcb_component_ids:
|
|
2405
|
-
pcb_port_ids:
|
|
2406
|
-
subcircuit_id:
|
|
2419
|
+
source_trace_id: z104.string(),
|
|
2420
|
+
pcb_component_ids: z104.array(z104.string()),
|
|
2421
|
+
pcb_port_ids: z104.array(z104.string()),
|
|
2422
|
+
subcircuit_id: z104.string().optional()
|
|
2407
2423
|
}).describe(
|
|
2408
2424
|
"Defines an error when a source trace has no corresponding PCB trace"
|
|
2409
2425
|
);
|
|
2410
2426
|
expectTypesMatch(true);
|
|
2411
2427
|
|
|
2412
2428
|
// src/pcb/pcb_port_not_matched_error.ts
|
|
2413
|
-
import { z as
|
|
2429
|
+
import { z as z105 } from "zod";
|
|
2414
2430
|
var pcb_port_not_matched_error = base_circuit_json_error.extend({
|
|
2415
|
-
type:
|
|
2431
|
+
type: z105.literal("pcb_port_not_matched_error"),
|
|
2416
2432
|
pcb_error_id: getZodPrefixedIdWithDefault("pcb_error"),
|
|
2417
|
-
error_type:
|
|
2418
|
-
pcb_component_ids:
|
|
2419
|
-
subcircuit_id:
|
|
2433
|
+
error_type: z105.literal("pcb_port_not_matched_error").default("pcb_port_not_matched_error"),
|
|
2434
|
+
pcb_component_ids: z105.array(z105.string()),
|
|
2435
|
+
subcircuit_id: z105.string().optional()
|
|
2420
2436
|
}).describe("Defines a trace error on the PCB where a port is not matched");
|
|
2421
2437
|
expectTypesMatch(true);
|
|
2422
2438
|
|
|
2423
2439
|
// src/pcb/pcb_port_not_connected_error.ts
|
|
2424
|
-
import { z as
|
|
2440
|
+
import { z as z106 } from "zod";
|
|
2425
2441
|
var pcb_port_not_connected_error = base_circuit_json_error.extend({
|
|
2426
|
-
type:
|
|
2442
|
+
type: z106.literal("pcb_port_not_connected_error"),
|
|
2427
2443
|
pcb_port_not_connected_error_id: getZodPrefixedIdWithDefault(
|
|
2428
2444
|
"pcb_port_not_connected_error"
|
|
2429
2445
|
),
|
|
2430
|
-
error_type:
|
|
2431
|
-
pcb_port_ids:
|
|
2432
|
-
pcb_component_ids:
|
|
2433
|
-
subcircuit_id:
|
|
2446
|
+
error_type: z106.literal("pcb_port_not_connected_error").default("pcb_port_not_connected_error"),
|
|
2447
|
+
pcb_port_ids: z106.array(z106.string()),
|
|
2448
|
+
pcb_component_ids: z106.array(z106.string()),
|
|
2449
|
+
subcircuit_id: z106.string().optional()
|
|
2434
2450
|
}).describe("Defines an error when a pcb port is not connected to any trace");
|
|
2435
2451
|
expectTypesMatch(
|
|
2436
2452
|
true
|
|
2437
2453
|
);
|
|
2438
2454
|
|
|
2439
2455
|
// src/pcb/pcb_net.ts
|
|
2440
|
-
import { z as
|
|
2441
|
-
var pcb_net =
|
|
2442
|
-
type:
|
|
2456
|
+
import { z as z107 } from "zod";
|
|
2457
|
+
var pcb_net = z107.object({
|
|
2458
|
+
type: z107.literal("pcb_net"),
|
|
2443
2459
|
pcb_net_id: getZodPrefixedIdWithDefault("pcb_net"),
|
|
2444
|
-
source_net_id:
|
|
2445
|
-
highlight_color:
|
|
2460
|
+
source_net_id: z107.string().optional(),
|
|
2461
|
+
highlight_color: z107.string().optional()
|
|
2446
2462
|
}).describe("Defines a net on the PCB");
|
|
2447
2463
|
expectTypesMatch(true);
|
|
2448
2464
|
|
|
2449
2465
|
// src/pcb/pcb_via.ts
|
|
2450
|
-
import { z as
|
|
2451
|
-
var pcb_via =
|
|
2452
|
-
type:
|
|
2466
|
+
import { z as z108 } from "zod";
|
|
2467
|
+
var pcb_via = z108.object({
|
|
2468
|
+
type: z108.literal("pcb_via"),
|
|
2453
2469
|
pcb_via_id: getZodPrefixedIdWithDefault("pcb_via"),
|
|
2454
|
-
pcb_group_id:
|
|
2455
|
-
subcircuit_id:
|
|
2456
|
-
subcircuit_connectivity_map_key:
|
|
2470
|
+
pcb_group_id: z108.string().optional(),
|
|
2471
|
+
subcircuit_id: z108.string().optional(),
|
|
2472
|
+
subcircuit_connectivity_map_key: z108.string().optional(),
|
|
2457
2473
|
x: distance,
|
|
2458
2474
|
y: distance,
|
|
2459
2475
|
outer_diameter: distance.default("0.6mm"),
|
|
@@ -2462,103 +2478,103 @@ var pcb_via = z107.object({
|
|
|
2462
2478
|
from_layer: layer_ref.optional(),
|
|
2463
2479
|
/** @deprecated */
|
|
2464
2480
|
to_layer: layer_ref.optional(),
|
|
2465
|
-
layers:
|
|
2466
|
-
pcb_trace_id:
|
|
2467
|
-
net_is_assignable:
|
|
2468
|
-
net_assigned:
|
|
2469
|
-
is_tented:
|
|
2481
|
+
layers: z108.array(layer_ref),
|
|
2482
|
+
pcb_trace_id: z108.string().optional(),
|
|
2483
|
+
net_is_assignable: z108.boolean().optional(),
|
|
2484
|
+
net_assigned: z108.boolean().optional(),
|
|
2485
|
+
is_tented: z108.boolean().optional()
|
|
2470
2486
|
}).describe("Defines a via on the PCB");
|
|
2471
2487
|
expectTypesMatch(true);
|
|
2472
2488
|
|
|
2473
2489
|
// src/pcb/pcb_board.ts
|
|
2474
|
-
import { z as
|
|
2475
|
-
var pcb_board =
|
|
2476
|
-
type:
|
|
2490
|
+
import { z as z109 } from "zod";
|
|
2491
|
+
var pcb_board = z109.object({
|
|
2492
|
+
type: z109.literal("pcb_board"),
|
|
2477
2493
|
pcb_board_id: getZodPrefixedIdWithDefault("pcb_board"),
|
|
2478
|
-
pcb_panel_id:
|
|
2479
|
-
carrier_pcb_board_id:
|
|
2480
|
-
is_subcircuit:
|
|
2481
|
-
subcircuit_id:
|
|
2482
|
-
is_mounted_to_carrier_board:
|
|
2494
|
+
pcb_panel_id: z109.string().optional(),
|
|
2495
|
+
carrier_pcb_board_id: z109.string().optional(),
|
|
2496
|
+
is_subcircuit: z109.boolean().optional(),
|
|
2497
|
+
subcircuit_id: z109.string().optional(),
|
|
2498
|
+
is_mounted_to_carrier_board: z109.boolean().optional(),
|
|
2483
2499
|
width: length.optional(),
|
|
2484
2500
|
height: length.optional(),
|
|
2485
2501
|
center: point,
|
|
2486
|
-
display_offset_x:
|
|
2502
|
+
display_offset_x: z109.string().optional().describe(
|
|
2487
2503
|
"How to display the x offset for this board, usually corresponding with how the user specified it"
|
|
2488
2504
|
),
|
|
2489
|
-
display_offset_y:
|
|
2505
|
+
display_offset_y: z109.string().optional().describe(
|
|
2490
2506
|
"How to display the y offset for this board, usually corresponding with how the user specified it"
|
|
2491
2507
|
),
|
|
2492
2508
|
thickness: length.optional().default(1.4),
|
|
2493
|
-
num_layers:
|
|
2494
|
-
outline:
|
|
2495
|
-
shape:
|
|
2496
|
-
material:
|
|
2497
|
-
solder_mask_color:
|
|
2498
|
-
silkscreen_color:
|
|
2509
|
+
num_layers: z109.number().optional().default(4),
|
|
2510
|
+
outline: z109.array(point).optional(),
|
|
2511
|
+
shape: z109.enum(["rect", "polygon"]).optional(),
|
|
2512
|
+
material: z109.enum(["fr4", "fr1"]).default("fr4"),
|
|
2513
|
+
solder_mask_color: z109.string().optional(),
|
|
2514
|
+
silkscreen_color: z109.string().optional(),
|
|
2499
2515
|
anchor_position: point.optional(),
|
|
2500
2516
|
anchor_alignment: ninePointAnchor.optional(),
|
|
2501
|
-
position_mode:
|
|
2517
|
+
position_mode: z109.enum(["relative_to_panel_anchor", "none"]).optional()
|
|
2502
2518
|
}).merge(manufacturing_drc_properties).describe("Defines the board outline of the PCB");
|
|
2503
2519
|
expectTypesMatch(true);
|
|
2504
2520
|
|
|
2505
2521
|
// src/pcb/pcb_panel.ts
|
|
2506
|
-
import { z as
|
|
2507
|
-
var pcb_panel =
|
|
2508
|
-
type:
|
|
2522
|
+
import { z as z110 } from "zod";
|
|
2523
|
+
var pcb_panel = z110.object({
|
|
2524
|
+
type: z110.literal("pcb_panel"),
|
|
2509
2525
|
pcb_panel_id: getZodPrefixedIdWithDefault("pcb_panel"),
|
|
2510
2526
|
width: length,
|
|
2511
2527
|
height: length,
|
|
2512
2528
|
center: point,
|
|
2513
2529
|
thickness: length.optional().default(1.4),
|
|
2514
|
-
covered_with_solder_mask:
|
|
2530
|
+
covered_with_solder_mask: z110.boolean().optional().default(true)
|
|
2515
2531
|
}).describe("Defines a PCB panel that can contain multiple boards");
|
|
2516
2532
|
expectTypesMatch(true);
|
|
2517
2533
|
|
|
2518
2534
|
// src/pcb/pcb_placement_error.ts
|
|
2519
|
-
import { z as
|
|
2535
|
+
import { z as z111 } from "zod";
|
|
2520
2536
|
var pcb_placement_error = base_circuit_json_error.extend({
|
|
2521
|
-
type:
|
|
2537
|
+
type: z111.literal("pcb_placement_error"),
|
|
2522
2538
|
pcb_placement_error_id: getZodPrefixedIdWithDefault("pcb_placement_error"),
|
|
2523
|
-
error_type:
|
|
2524
|
-
subcircuit_id:
|
|
2539
|
+
error_type: z111.literal("pcb_placement_error").default("pcb_placement_error"),
|
|
2540
|
+
subcircuit_id: z111.string().optional()
|
|
2525
2541
|
}).describe("Defines a placement error on the PCB");
|
|
2526
2542
|
expectTypesMatch(true);
|
|
2527
2543
|
|
|
2528
2544
|
// src/pcb/pcb_panelization_placement_error.ts
|
|
2529
|
-
import { z as
|
|
2545
|
+
import { z as z112 } from "zod";
|
|
2530
2546
|
var pcb_panelization_placement_error = base_circuit_json_error.extend({
|
|
2531
|
-
type:
|
|
2547
|
+
type: z112.literal("pcb_panelization_placement_error"),
|
|
2532
2548
|
pcb_panelization_placement_error_id: getZodPrefixedIdWithDefault(
|
|
2533
2549
|
"pcb_panelization_placement_error"
|
|
2534
2550
|
),
|
|
2535
|
-
error_type:
|
|
2536
|
-
pcb_panel_id:
|
|
2537
|
-
pcb_board_id:
|
|
2538
|
-
subcircuit_id:
|
|
2551
|
+
error_type: z112.literal("pcb_panelization_placement_error").default("pcb_panelization_placement_error"),
|
|
2552
|
+
pcb_panel_id: z112.string().optional(),
|
|
2553
|
+
pcb_board_id: z112.string().optional(),
|
|
2554
|
+
subcircuit_id: z112.string().optional()
|
|
2539
2555
|
}).describe("Defines a panelization placement error on the PCB");
|
|
2540
2556
|
expectTypesMatch(true);
|
|
2541
2557
|
|
|
2542
2558
|
// src/pcb/pcb_trace_hint.ts
|
|
2543
|
-
import { z as
|
|
2544
|
-
var pcb_trace_hint =
|
|
2545
|
-
type:
|
|
2559
|
+
import { z as z113 } from "zod";
|
|
2560
|
+
var pcb_trace_hint = z113.object({
|
|
2561
|
+
type: z113.literal("pcb_trace_hint"),
|
|
2546
2562
|
pcb_trace_hint_id: getZodPrefixedIdWithDefault("pcb_trace_hint"),
|
|
2547
|
-
pcb_port_id:
|
|
2548
|
-
pcb_component_id:
|
|
2549
|
-
route:
|
|
2550
|
-
subcircuit_id:
|
|
2563
|
+
pcb_port_id: z113.string(),
|
|
2564
|
+
pcb_component_id: z113.string(),
|
|
2565
|
+
route: z113.array(route_hint_point),
|
|
2566
|
+
subcircuit_id: z113.string().optional()
|
|
2551
2567
|
}).describe("A hint that can be used during generation of a PCB trace");
|
|
2552
2568
|
expectTypesMatch(true);
|
|
2553
2569
|
|
|
2554
2570
|
// src/pcb/pcb_silkscreen_line.ts
|
|
2555
|
-
import { z as
|
|
2556
|
-
var pcb_silkscreen_line =
|
|
2557
|
-
type:
|
|
2571
|
+
import { z as z114 } from "zod";
|
|
2572
|
+
var pcb_silkscreen_line = z114.object({
|
|
2573
|
+
type: z114.literal("pcb_silkscreen_line"),
|
|
2558
2574
|
pcb_silkscreen_line_id: getZodPrefixedIdWithDefault("pcb_silkscreen_line"),
|
|
2559
|
-
pcb_component_id:
|
|
2560
|
-
pcb_group_id:
|
|
2561
|
-
subcircuit_id:
|
|
2575
|
+
pcb_component_id: z114.string(),
|
|
2576
|
+
pcb_group_id: z114.string().optional(),
|
|
2577
|
+
subcircuit_id: z114.string().optional(),
|
|
2562
2578
|
stroke_width: distance.default("0.1mm"),
|
|
2563
2579
|
x1: distance,
|
|
2564
2580
|
y1: distance,
|
|
@@ -2569,32 +2585,32 @@ var pcb_silkscreen_line = z113.object({
|
|
|
2569
2585
|
expectTypesMatch(true);
|
|
2570
2586
|
|
|
2571
2587
|
// src/pcb/pcb_silkscreen_path.ts
|
|
2572
|
-
import { z as
|
|
2573
|
-
var pcb_silkscreen_path =
|
|
2574
|
-
type:
|
|
2588
|
+
import { z as z115 } from "zod";
|
|
2589
|
+
var pcb_silkscreen_path = z115.object({
|
|
2590
|
+
type: z115.literal("pcb_silkscreen_path"),
|
|
2575
2591
|
pcb_silkscreen_path_id: getZodPrefixedIdWithDefault("pcb_silkscreen_path"),
|
|
2576
|
-
pcb_component_id:
|
|
2577
|
-
pcb_group_id:
|
|
2578
|
-
subcircuit_id:
|
|
2592
|
+
pcb_component_id: z115.string(),
|
|
2593
|
+
pcb_group_id: z115.string().optional(),
|
|
2594
|
+
subcircuit_id: z115.string().optional(),
|
|
2579
2595
|
layer: visible_layer,
|
|
2580
|
-
route:
|
|
2596
|
+
route: z115.array(point),
|
|
2581
2597
|
stroke_width: length
|
|
2582
2598
|
}).describe("Defines a silkscreen path on the PCB");
|
|
2583
2599
|
expectTypesMatch(true);
|
|
2584
2600
|
|
|
2585
2601
|
// src/pcb/pcb_silkscreen_text.ts
|
|
2586
|
-
import { z as
|
|
2587
|
-
var pcb_silkscreen_text =
|
|
2588
|
-
type:
|
|
2602
|
+
import { z as z116 } from "zod";
|
|
2603
|
+
var pcb_silkscreen_text = z116.object({
|
|
2604
|
+
type: z116.literal("pcb_silkscreen_text"),
|
|
2589
2605
|
pcb_silkscreen_text_id: getZodPrefixedIdWithDefault("pcb_silkscreen_text"),
|
|
2590
|
-
pcb_group_id:
|
|
2591
|
-
subcircuit_id:
|
|
2592
|
-
font:
|
|
2606
|
+
pcb_group_id: z116.string().optional(),
|
|
2607
|
+
subcircuit_id: z116.string().optional(),
|
|
2608
|
+
font: z116.literal("tscircuit2024").default("tscircuit2024"),
|
|
2593
2609
|
font_size: distance.default("0.2mm"),
|
|
2594
|
-
pcb_component_id:
|
|
2595
|
-
text:
|
|
2596
|
-
is_knockout:
|
|
2597
|
-
knockout_padding:
|
|
2610
|
+
pcb_component_id: z116.string(),
|
|
2611
|
+
text: z116.string(),
|
|
2612
|
+
is_knockout: z116.boolean().default(false).optional(),
|
|
2613
|
+
knockout_padding: z116.object({
|
|
2598
2614
|
left: length,
|
|
2599
2615
|
top: length,
|
|
2600
2616
|
bottom: length,
|
|
@@ -2605,27 +2621,27 @@ var pcb_silkscreen_text = z115.object({
|
|
|
2605
2621
|
bottom: "0.2mm",
|
|
2606
2622
|
right: "0.2mm"
|
|
2607
2623
|
}).optional(),
|
|
2608
|
-
ccw_rotation:
|
|
2624
|
+
ccw_rotation: z116.number().optional(),
|
|
2609
2625
|
layer: layer_ref,
|
|
2610
|
-
is_mirrored:
|
|
2626
|
+
is_mirrored: z116.boolean().default(false).optional(),
|
|
2611
2627
|
anchor_position: point.default({ x: 0, y: 0 }),
|
|
2612
2628
|
anchor_alignment: ninePointAnchor.default("center")
|
|
2613
2629
|
}).describe("Defines silkscreen text on the PCB");
|
|
2614
2630
|
expectTypesMatch(true);
|
|
2615
2631
|
|
|
2616
2632
|
// src/pcb/pcb_copper_text.ts
|
|
2617
|
-
import { z as
|
|
2618
|
-
var pcb_copper_text =
|
|
2619
|
-
type:
|
|
2633
|
+
import { z as z117 } from "zod";
|
|
2634
|
+
var pcb_copper_text = z117.object({
|
|
2635
|
+
type: z117.literal("pcb_copper_text"),
|
|
2620
2636
|
pcb_copper_text_id: getZodPrefixedIdWithDefault("pcb_copper_text"),
|
|
2621
|
-
pcb_group_id:
|
|
2622
|
-
subcircuit_id:
|
|
2623
|
-
font:
|
|
2637
|
+
pcb_group_id: z117.string().optional(),
|
|
2638
|
+
subcircuit_id: z117.string().optional(),
|
|
2639
|
+
font: z117.literal("tscircuit2024").default("tscircuit2024"),
|
|
2624
2640
|
font_size: distance.default("0.2mm"),
|
|
2625
|
-
pcb_component_id:
|
|
2626
|
-
text:
|
|
2627
|
-
is_knockout:
|
|
2628
|
-
knockout_padding:
|
|
2641
|
+
pcb_component_id: z117.string(),
|
|
2642
|
+
text: z117.string(),
|
|
2643
|
+
is_knockout: z117.boolean().default(false).optional(),
|
|
2644
|
+
knockout_padding: z117.object({
|
|
2629
2645
|
left: length,
|
|
2630
2646
|
top: length,
|
|
2631
2647
|
bottom: length,
|
|
@@ -2636,61 +2652,61 @@ var pcb_copper_text = z116.object({
|
|
|
2636
2652
|
bottom: "0.2mm",
|
|
2637
2653
|
right: "0.2mm"
|
|
2638
2654
|
}).optional(),
|
|
2639
|
-
ccw_rotation:
|
|
2655
|
+
ccw_rotation: z117.number().optional(),
|
|
2640
2656
|
layer: layer_ref,
|
|
2641
|
-
is_mirrored:
|
|
2657
|
+
is_mirrored: z117.boolean().default(false).optional(),
|
|
2642
2658
|
anchor_position: point.default({ x: 0, y: 0 }),
|
|
2643
2659
|
anchor_alignment: ninePointAnchor.default("center")
|
|
2644
2660
|
}).describe("Defines copper text on the PCB");
|
|
2645
2661
|
expectTypesMatch(true);
|
|
2646
2662
|
|
|
2647
2663
|
// src/pcb/pcb_silkscreen_rect.ts
|
|
2648
|
-
import { z as
|
|
2649
|
-
var pcb_silkscreen_rect =
|
|
2650
|
-
type:
|
|
2664
|
+
import { z as z118 } from "zod";
|
|
2665
|
+
var pcb_silkscreen_rect = z118.object({
|
|
2666
|
+
type: z118.literal("pcb_silkscreen_rect"),
|
|
2651
2667
|
pcb_silkscreen_rect_id: getZodPrefixedIdWithDefault("pcb_silkscreen_rect"),
|
|
2652
|
-
pcb_component_id:
|
|
2653
|
-
pcb_group_id:
|
|
2654
|
-
subcircuit_id:
|
|
2668
|
+
pcb_component_id: z118.string(),
|
|
2669
|
+
pcb_group_id: z118.string().optional(),
|
|
2670
|
+
subcircuit_id: z118.string().optional(),
|
|
2655
2671
|
center: point,
|
|
2656
2672
|
width: length,
|
|
2657
2673
|
height: length,
|
|
2658
2674
|
layer: layer_ref,
|
|
2659
2675
|
stroke_width: length.default("1mm"),
|
|
2660
2676
|
corner_radius: length.optional(),
|
|
2661
|
-
is_filled:
|
|
2662
|
-
has_stroke:
|
|
2663
|
-
is_stroke_dashed:
|
|
2664
|
-
ccw_rotation:
|
|
2677
|
+
is_filled: z118.boolean().default(true).optional(),
|
|
2678
|
+
has_stroke: z118.boolean().optional(),
|
|
2679
|
+
is_stroke_dashed: z118.boolean().optional(),
|
|
2680
|
+
ccw_rotation: z118.number().optional()
|
|
2665
2681
|
}).describe("Defines a silkscreen rect on the PCB");
|
|
2666
2682
|
expectTypesMatch(true);
|
|
2667
2683
|
|
|
2668
2684
|
// src/pcb/pcb_silkscreen_circle.ts
|
|
2669
|
-
import { z as
|
|
2670
|
-
var pcb_silkscreen_circle =
|
|
2671
|
-
type:
|
|
2685
|
+
import { z as z119 } from "zod";
|
|
2686
|
+
var pcb_silkscreen_circle = z119.object({
|
|
2687
|
+
type: z119.literal("pcb_silkscreen_circle"),
|
|
2672
2688
|
pcb_silkscreen_circle_id: getZodPrefixedIdWithDefault(
|
|
2673
2689
|
"pcb_silkscreen_circle"
|
|
2674
2690
|
),
|
|
2675
|
-
pcb_component_id:
|
|
2676
|
-
pcb_group_id:
|
|
2677
|
-
subcircuit_id:
|
|
2691
|
+
pcb_component_id: z119.string(),
|
|
2692
|
+
pcb_group_id: z119.string().optional(),
|
|
2693
|
+
subcircuit_id: z119.string().optional(),
|
|
2678
2694
|
center: point,
|
|
2679
2695
|
radius: length,
|
|
2680
2696
|
layer: visible_layer,
|
|
2681
2697
|
stroke_width: length.default("1mm"),
|
|
2682
|
-
is_filled:
|
|
2698
|
+
is_filled: z119.boolean().optional()
|
|
2683
2699
|
}).describe("Defines a silkscreen circle on the PCB");
|
|
2684
2700
|
expectTypesMatch(true);
|
|
2685
2701
|
|
|
2686
2702
|
// src/pcb/pcb_silkscreen_oval.ts
|
|
2687
|
-
import { z as
|
|
2688
|
-
var pcb_silkscreen_oval =
|
|
2689
|
-
type:
|
|
2703
|
+
import { z as z120 } from "zod";
|
|
2704
|
+
var pcb_silkscreen_oval = z120.object({
|
|
2705
|
+
type: z120.literal("pcb_silkscreen_oval"),
|
|
2690
2706
|
pcb_silkscreen_oval_id: getZodPrefixedIdWithDefault("pcb_silkscreen_oval"),
|
|
2691
|
-
pcb_component_id:
|
|
2692
|
-
pcb_group_id:
|
|
2693
|
-
subcircuit_id:
|
|
2707
|
+
pcb_component_id: z120.string(),
|
|
2708
|
+
pcb_group_id: z120.string().optional(),
|
|
2709
|
+
subcircuit_id: z120.string().optional(),
|
|
2694
2710
|
center: point,
|
|
2695
2711
|
radius_x: distance,
|
|
2696
2712
|
radius_y: distance,
|
|
@@ -2700,242 +2716,242 @@ var pcb_silkscreen_oval = z119.object({
|
|
|
2700
2716
|
expectTypesMatch(true);
|
|
2701
2717
|
|
|
2702
2718
|
// src/pcb/pcb_silkscreen_pill.ts
|
|
2703
|
-
import { z as
|
|
2704
|
-
var pcb_silkscreen_pill =
|
|
2705
|
-
type:
|
|
2719
|
+
import { z as z121 } from "zod";
|
|
2720
|
+
var pcb_silkscreen_pill = z121.object({
|
|
2721
|
+
type: z121.literal("pcb_silkscreen_pill"),
|
|
2706
2722
|
pcb_silkscreen_pill_id: getZodPrefixedIdWithDefault("pcb_silkscreen_pill"),
|
|
2707
|
-
pcb_component_id:
|
|
2708
|
-
pcb_group_id:
|
|
2709
|
-
subcircuit_id:
|
|
2723
|
+
pcb_component_id: z121.string(),
|
|
2724
|
+
pcb_group_id: z121.string().optional(),
|
|
2725
|
+
subcircuit_id: z121.string().optional(),
|
|
2710
2726
|
center: point,
|
|
2711
2727
|
width: length,
|
|
2712
2728
|
height: length,
|
|
2713
2729
|
layer: layer_ref,
|
|
2714
|
-
ccw_rotation:
|
|
2730
|
+
ccw_rotation: z121.number().optional()
|
|
2715
2731
|
}).describe("Defines a silkscreen pill on the PCB");
|
|
2716
2732
|
expectTypesMatch(true);
|
|
2717
2733
|
|
|
2718
2734
|
// src/pcb/pcb_fabrication_note_text.ts
|
|
2719
|
-
import { z as
|
|
2720
|
-
var pcb_fabrication_note_text =
|
|
2721
|
-
type:
|
|
2735
|
+
import { z as z122 } from "zod";
|
|
2736
|
+
var pcb_fabrication_note_text = z122.object({
|
|
2737
|
+
type: z122.literal("pcb_fabrication_note_text"),
|
|
2722
2738
|
pcb_fabrication_note_text_id: getZodPrefixedIdWithDefault(
|
|
2723
2739
|
"pcb_fabrication_note_text"
|
|
2724
2740
|
),
|
|
2725
|
-
subcircuit_id:
|
|
2726
|
-
pcb_group_id:
|
|
2727
|
-
font:
|
|
2741
|
+
subcircuit_id: z122.string().optional(),
|
|
2742
|
+
pcb_group_id: z122.string().optional(),
|
|
2743
|
+
font: z122.literal("tscircuit2024").default("tscircuit2024"),
|
|
2728
2744
|
font_size: distance.default("1mm"),
|
|
2729
|
-
pcb_component_id:
|
|
2730
|
-
text:
|
|
2731
|
-
ccw_rotation:
|
|
2745
|
+
pcb_component_id: z122.string(),
|
|
2746
|
+
text: z122.string(),
|
|
2747
|
+
ccw_rotation: z122.number().optional(),
|
|
2732
2748
|
layer: visible_layer,
|
|
2733
2749
|
anchor_position: point.default({ x: 0, y: 0 }),
|
|
2734
|
-
anchor_alignment:
|
|
2735
|
-
color:
|
|
2750
|
+
anchor_alignment: z122.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
|
|
2751
|
+
color: z122.string().optional()
|
|
2736
2752
|
}).describe(
|
|
2737
2753
|
"Defines a fabrication note in text on the PCB, useful for leaving notes for assemblers or fabricators"
|
|
2738
2754
|
);
|
|
2739
2755
|
expectTypesMatch(true);
|
|
2740
2756
|
|
|
2741
2757
|
// src/pcb/pcb_fabrication_note_path.ts
|
|
2742
|
-
import { z as
|
|
2743
|
-
var pcb_fabrication_note_path =
|
|
2744
|
-
type:
|
|
2758
|
+
import { z as z123 } from "zod";
|
|
2759
|
+
var pcb_fabrication_note_path = z123.object({
|
|
2760
|
+
type: z123.literal("pcb_fabrication_note_path"),
|
|
2745
2761
|
pcb_fabrication_note_path_id: getZodPrefixedIdWithDefault(
|
|
2746
2762
|
"pcb_fabrication_note_path"
|
|
2747
2763
|
),
|
|
2748
|
-
pcb_component_id:
|
|
2749
|
-
subcircuit_id:
|
|
2764
|
+
pcb_component_id: z123.string(),
|
|
2765
|
+
subcircuit_id: z123.string().optional(),
|
|
2750
2766
|
layer: layer_ref,
|
|
2751
|
-
route:
|
|
2767
|
+
route: z123.array(point),
|
|
2752
2768
|
stroke_width: length,
|
|
2753
|
-
color:
|
|
2769
|
+
color: z123.string().optional()
|
|
2754
2770
|
}).describe(
|
|
2755
2771
|
"Defines a fabrication path on the PCB for fabricators or assemblers"
|
|
2756
2772
|
);
|
|
2757
2773
|
expectTypesMatch(true);
|
|
2758
2774
|
|
|
2759
2775
|
// src/pcb/pcb_fabrication_note_rect.ts
|
|
2760
|
-
import { z as
|
|
2761
|
-
var pcb_fabrication_note_rect =
|
|
2762
|
-
type:
|
|
2776
|
+
import { z as z124 } from "zod";
|
|
2777
|
+
var pcb_fabrication_note_rect = z124.object({
|
|
2778
|
+
type: z124.literal("pcb_fabrication_note_rect"),
|
|
2763
2779
|
pcb_fabrication_note_rect_id: getZodPrefixedIdWithDefault(
|
|
2764
2780
|
"pcb_fabrication_note_rect"
|
|
2765
2781
|
),
|
|
2766
|
-
pcb_component_id:
|
|
2767
|
-
pcb_group_id:
|
|
2768
|
-
subcircuit_id:
|
|
2782
|
+
pcb_component_id: z124.string(),
|
|
2783
|
+
pcb_group_id: z124.string().optional(),
|
|
2784
|
+
subcircuit_id: z124.string().optional(),
|
|
2769
2785
|
center: point,
|
|
2770
2786
|
width: length,
|
|
2771
2787
|
height: length,
|
|
2772
2788
|
layer: visible_layer,
|
|
2773
2789
|
stroke_width: length.default("0.1mm"),
|
|
2774
2790
|
corner_radius: length.optional(),
|
|
2775
|
-
is_filled:
|
|
2776
|
-
has_stroke:
|
|
2777
|
-
is_stroke_dashed:
|
|
2778
|
-
color:
|
|
2791
|
+
is_filled: z124.boolean().optional(),
|
|
2792
|
+
has_stroke: z124.boolean().optional(),
|
|
2793
|
+
is_stroke_dashed: z124.boolean().optional(),
|
|
2794
|
+
color: z124.string().optional()
|
|
2779
2795
|
}).describe("Defines a fabrication note rectangle on the PCB");
|
|
2780
2796
|
expectTypesMatch(true);
|
|
2781
2797
|
|
|
2782
2798
|
// src/pcb/pcb_fabrication_note_dimension.ts
|
|
2783
|
-
import { z as
|
|
2784
|
-
var pcb_fabrication_note_dimension =
|
|
2785
|
-
type:
|
|
2799
|
+
import { z as z125 } from "zod";
|
|
2800
|
+
var pcb_fabrication_note_dimension = z125.object({
|
|
2801
|
+
type: z125.literal("pcb_fabrication_note_dimension"),
|
|
2786
2802
|
pcb_fabrication_note_dimension_id: getZodPrefixedIdWithDefault(
|
|
2787
2803
|
"pcb_fabrication_note_dimension"
|
|
2788
2804
|
),
|
|
2789
|
-
pcb_component_id:
|
|
2790
|
-
pcb_group_id:
|
|
2791
|
-
subcircuit_id:
|
|
2805
|
+
pcb_component_id: z125.string(),
|
|
2806
|
+
pcb_group_id: z125.string().optional(),
|
|
2807
|
+
subcircuit_id: z125.string().optional(),
|
|
2792
2808
|
layer: visible_layer,
|
|
2793
2809
|
from: point,
|
|
2794
2810
|
to: point,
|
|
2795
|
-
text:
|
|
2796
|
-
text_ccw_rotation:
|
|
2811
|
+
text: z125.string().optional(),
|
|
2812
|
+
text_ccw_rotation: z125.number().optional(),
|
|
2797
2813
|
offset: length.optional(),
|
|
2798
2814
|
offset_distance: length.optional(),
|
|
2799
|
-
offset_direction:
|
|
2800
|
-
x:
|
|
2801
|
-
y:
|
|
2815
|
+
offset_direction: z125.object({
|
|
2816
|
+
x: z125.number(),
|
|
2817
|
+
y: z125.number()
|
|
2802
2818
|
}).optional(),
|
|
2803
|
-
font:
|
|
2819
|
+
font: z125.literal("tscircuit2024").default("tscircuit2024"),
|
|
2804
2820
|
font_size: length.default("1mm"),
|
|
2805
|
-
color:
|
|
2821
|
+
color: z125.string().optional(),
|
|
2806
2822
|
arrow_size: length.default("1mm")
|
|
2807
2823
|
}).describe("Defines a measurement annotation within PCB fabrication notes");
|
|
2808
2824
|
expectTypesMatch(true);
|
|
2809
2825
|
|
|
2810
2826
|
// src/pcb/pcb_note_text.ts
|
|
2811
|
-
import { z as z125 } from "zod";
|
|
2812
|
-
var pcb_note_text = z125.object({
|
|
2813
|
-
type: z125.literal("pcb_note_text"),
|
|
2814
|
-
pcb_note_text_id: getZodPrefixedIdWithDefault("pcb_note_text"),
|
|
2815
|
-
pcb_component_id: z125.string().optional(),
|
|
2816
|
-
pcb_group_id: z125.string().optional(),
|
|
2817
|
-
subcircuit_id: z125.string().optional(),
|
|
2818
|
-
name: z125.string().optional(),
|
|
2819
|
-
font: z125.literal("tscircuit2024").default("tscircuit2024"),
|
|
2820
|
-
font_size: distance.default("1mm"),
|
|
2821
|
-
text: z125.string().optional(),
|
|
2822
|
-
anchor_position: point.default({ x: 0, y: 0 }),
|
|
2823
|
-
anchor_alignment: z125.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
|
|
2824
|
-
layer: visible_layer.default("top"),
|
|
2825
|
-
is_mirrored_from_top_view: z125.boolean().optional(),
|
|
2826
|
-
color: z125.string().optional()
|
|
2827
|
-
}).describe("Defines a documentation note in text on the PCB");
|
|
2828
|
-
expectTypesMatch(true);
|
|
2829
|
-
|
|
2830
|
-
// src/pcb/pcb_note_rect.ts
|
|
2831
2827
|
import { z as z126 } from "zod";
|
|
2832
|
-
var
|
|
2833
|
-
type: z126.literal("
|
|
2834
|
-
|
|
2828
|
+
var pcb_note_text = z126.object({
|
|
2829
|
+
type: z126.literal("pcb_note_text"),
|
|
2830
|
+
pcb_note_text_id: getZodPrefixedIdWithDefault("pcb_note_text"),
|
|
2835
2831
|
pcb_component_id: z126.string().optional(),
|
|
2836
2832
|
pcb_group_id: z126.string().optional(),
|
|
2837
2833
|
subcircuit_id: z126.string().optional(),
|
|
2838
2834
|
name: z126.string().optional(),
|
|
2835
|
+
font: z126.literal("tscircuit2024").default("tscircuit2024"),
|
|
2836
|
+
font_size: distance.default("1mm"),
|
|
2839
2837
|
text: z126.string().optional(),
|
|
2840
|
-
|
|
2841
|
-
|
|
2842
|
-
height: length,
|
|
2838
|
+
anchor_position: point.default({ x: 0, y: 0 }),
|
|
2839
|
+
anchor_alignment: z126.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
|
|
2843
2840
|
layer: visible_layer.default("top"),
|
|
2844
|
-
|
|
2845
|
-
corner_radius: length.optional(),
|
|
2846
|
-
is_filled: z126.boolean().optional(),
|
|
2847
|
-
has_stroke: z126.boolean().optional(),
|
|
2848
|
-
is_stroke_dashed: z126.boolean().optional(),
|
|
2841
|
+
is_mirrored_from_top_view: z126.boolean().optional(),
|
|
2849
2842
|
color: z126.string().optional()
|
|
2850
|
-
}).describe("Defines a
|
|
2843
|
+
}).describe("Defines a documentation note in text on the PCB");
|
|
2851
2844
|
expectTypesMatch(true);
|
|
2852
2845
|
|
|
2853
|
-
// src/pcb/
|
|
2846
|
+
// src/pcb/pcb_note_rect.ts
|
|
2854
2847
|
import { z as z127 } from "zod";
|
|
2855
|
-
var
|
|
2856
|
-
type: z127.literal("
|
|
2857
|
-
|
|
2848
|
+
var pcb_note_rect = z127.object({
|
|
2849
|
+
type: z127.literal("pcb_note_rect"),
|
|
2850
|
+
pcb_note_rect_id: getZodPrefixedIdWithDefault("pcb_note_rect"),
|
|
2858
2851
|
pcb_component_id: z127.string().optional(),
|
|
2859
2852
|
pcb_group_id: z127.string().optional(),
|
|
2860
2853
|
subcircuit_id: z127.string().optional(),
|
|
2861
2854
|
name: z127.string().optional(),
|
|
2862
2855
|
text: z127.string().optional(),
|
|
2863
|
-
|
|
2856
|
+
center: point,
|
|
2857
|
+
width: length,
|
|
2858
|
+
height: length,
|
|
2864
2859
|
layer: visible_layer.default("top"),
|
|
2865
2860
|
stroke_width: length.default("0.1mm"),
|
|
2861
|
+
corner_radius: length.optional(),
|
|
2862
|
+
is_filled: z127.boolean().optional(),
|
|
2863
|
+
has_stroke: z127.boolean().optional(),
|
|
2864
|
+
is_stroke_dashed: z127.boolean().optional(),
|
|
2866
2865
|
color: z127.string().optional()
|
|
2867
|
-
}).describe("Defines a
|
|
2866
|
+
}).describe("Defines a rectangular documentation note on the PCB");
|
|
2868
2867
|
expectTypesMatch(true);
|
|
2869
2868
|
|
|
2870
|
-
// src/pcb/
|
|
2869
|
+
// src/pcb/pcb_note_path.ts
|
|
2871
2870
|
import { z as z128 } from "zod";
|
|
2872
|
-
var
|
|
2873
|
-
type: z128.literal("
|
|
2874
|
-
|
|
2871
|
+
var pcb_note_path = z128.object({
|
|
2872
|
+
type: z128.literal("pcb_note_path"),
|
|
2873
|
+
pcb_note_path_id: getZodPrefixedIdWithDefault("pcb_note_path"),
|
|
2875
2874
|
pcb_component_id: z128.string().optional(),
|
|
2876
2875
|
pcb_group_id: z128.string().optional(),
|
|
2877
2876
|
subcircuit_id: z128.string().optional(),
|
|
2878
2877
|
name: z128.string().optional(),
|
|
2879
2878
|
text: z128.string().optional(),
|
|
2879
|
+
route: z128.array(point),
|
|
2880
|
+
layer: visible_layer.default("top"),
|
|
2881
|
+
stroke_width: length.default("0.1mm"),
|
|
2882
|
+
color: z128.string().optional()
|
|
2883
|
+
}).describe("Defines a polyline documentation note on the PCB");
|
|
2884
|
+
expectTypesMatch(true);
|
|
2885
|
+
|
|
2886
|
+
// src/pcb/pcb_note_line.ts
|
|
2887
|
+
import { z as z129 } from "zod";
|
|
2888
|
+
var pcb_note_line = z129.object({
|
|
2889
|
+
type: z129.literal("pcb_note_line"),
|
|
2890
|
+
pcb_note_line_id: getZodPrefixedIdWithDefault("pcb_note_line"),
|
|
2891
|
+
pcb_component_id: z129.string().optional(),
|
|
2892
|
+
pcb_group_id: z129.string().optional(),
|
|
2893
|
+
subcircuit_id: z129.string().optional(),
|
|
2894
|
+
name: z129.string().optional(),
|
|
2895
|
+
text: z129.string().optional(),
|
|
2880
2896
|
x1: distance,
|
|
2881
2897
|
y1: distance,
|
|
2882
2898
|
x2: distance,
|
|
2883
2899
|
y2: distance,
|
|
2884
2900
|
layer: visible_layer.default("top"),
|
|
2885
2901
|
stroke_width: distance.default("0.1mm"),
|
|
2886
|
-
color:
|
|
2887
|
-
is_dashed:
|
|
2902
|
+
color: z129.string().optional(),
|
|
2903
|
+
is_dashed: z129.boolean().optional()
|
|
2888
2904
|
}).describe("Defines a straight documentation note line on the PCB");
|
|
2889
2905
|
expectTypesMatch(true);
|
|
2890
2906
|
|
|
2891
2907
|
// src/pcb/pcb_note_dimension.ts
|
|
2892
|
-
import { z as
|
|
2893
|
-
var pcb_note_dimension =
|
|
2894
|
-
type:
|
|
2908
|
+
import { z as z130 } from "zod";
|
|
2909
|
+
var pcb_note_dimension = z130.object({
|
|
2910
|
+
type: z130.literal("pcb_note_dimension"),
|
|
2895
2911
|
pcb_note_dimension_id: getZodPrefixedIdWithDefault("pcb_note_dimension"),
|
|
2896
|
-
pcb_component_id:
|
|
2897
|
-
pcb_group_id:
|
|
2898
|
-
subcircuit_id:
|
|
2899
|
-
name:
|
|
2912
|
+
pcb_component_id: z130.string().optional(),
|
|
2913
|
+
pcb_group_id: z130.string().optional(),
|
|
2914
|
+
subcircuit_id: z130.string().optional(),
|
|
2915
|
+
name: z130.string().optional(),
|
|
2900
2916
|
from: point,
|
|
2901
2917
|
to: point,
|
|
2902
|
-
text:
|
|
2903
|
-
text_ccw_rotation:
|
|
2918
|
+
text: z130.string().optional(),
|
|
2919
|
+
text_ccw_rotation: z130.number().optional(),
|
|
2904
2920
|
offset_distance: length.optional(),
|
|
2905
|
-
offset_direction:
|
|
2906
|
-
x:
|
|
2907
|
-
y:
|
|
2921
|
+
offset_direction: z130.object({
|
|
2922
|
+
x: z130.number(),
|
|
2923
|
+
y: z130.number()
|
|
2908
2924
|
}).optional(),
|
|
2909
|
-
font:
|
|
2925
|
+
font: z130.literal("tscircuit2024").default("tscircuit2024"),
|
|
2910
2926
|
font_size: length.default("1mm"),
|
|
2911
2927
|
layer: visible_layer.default("top"),
|
|
2912
|
-
color:
|
|
2928
|
+
color: z130.string().optional(),
|
|
2913
2929
|
arrow_size: length.default("1mm")
|
|
2914
2930
|
}).describe("Defines a measurement annotation within PCB documentation notes");
|
|
2915
2931
|
expectTypesMatch(true);
|
|
2916
2932
|
|
|
2917
2933
|
// src/pcb/pcb_footprint_overlap_error.ts
|
|
2918
|
-
import { z as
|
|
2934
|
+
import { z as z131 } from "zod";
|
|
2919
2935
|
var pcb_footprint_overlap_error = base_circuit_json_error.extend({
|
|
2920
|
-
type:
|
|
2936
|
+
type: z131.literal("pcb_footprint_overlap_error"),
|
|
2921
2937
|
pcb_error_id: getZodPrefixedIdWithDefault("pcb_error"),
|
|
2922
|
-
error_type:
|
|
2923
|
-
pcb_smtpad_ids:
|
|
2924
|
-
pcb_plated_hole_ids:
|
|
2925
|
-
pcb_hole_ids:
|
|
2926
|
-
pcb_keepout_ids:
|
|
2938
|
+
error_type: z131.literal("pcb_footprint_overlap_error").default("pcb_footprint_overlap_error"),
|
|
2939
|
+
pcb_smtpad_ids: z131.array(z131.string()).optional(),
|
|
2940
|
+
pcb_plated_hole_ids: z131.array(z131.string()).optional(),
|
|
2941
|
+
pcb_hole_ids: z131.array(z131.string()).optional(),
|
|
2942
|
+
pcb_keepout_ids: z131.array(z131.string()).optional()
|
|
2927
2943
|
}).describe("Error emitted when a pcb footprint overlaps with another element");
|
|
2928
2944
|
expectTypesMatch(
|
|
2929
2945
|
true
|
|
2930
2946
|
);
|
|
2931
2947
|
|
|
2932
2948
|
// src/pcb/pcb_courtyard_overlap_error.ts
|
|
2933
|
-
import { z as
|
|
2949
|
+
import { z as z132 } from "zod";
|
|
2934
2950
|
var pcb_courtyard_overlap_error = base_circuit_json_error.extend({
|
|
2935
|
-
type:
|
|
2951
|
+
type: z132.literal("pcb_courtyard_overlap_error"),
|
|
2936
2952
|
pcb_error_id: getZodPrefixedIdWithDefault("pcb_error"),
|
|
2937
|
-
error_type:
|
|
2938
|
-
pcb_component_ids:
|
|
2953
|
+
error_type: z132.literal("pcb_courtyard_overlap_error").default("pcb_courtyard_overlap_error"),
|
|
2954
|
+
pcb_component_ids: z132.tuple([z132.string(), z132.string()])
|
|
2939
2955
|
}).describe(
|
|
2940
2956
|
"Error emitted when the courtyard (CrtYd) of one PCB component overlaps with the courtyard of another"
|
|
2941
2957
|
);
|
|
@@ -2944,49 +2960,49 @@ expectTypesMatch(
|
|
|
2944
2960
|
);
|
|
2945
2961
|
|
|
2946
2962
|
// src/pcb/pcb_keepout.ts
|
|
2947
|
-
import { z as
|
|
2948
|
-
var pcb_keepout =
|
|
2949
|
-
type:
|
|
2950
|
-
shape:
|
|
2951
|
-
pcb_group_id:
|
|
2952
|
-
subcircuit_id:
|
|
2963
|
+
import { z as z133 } from "zod";
|
|
2964
|
+
var pcb_keepout = z133.object({
|
|
2965
|
+
type: z133.literal("pcb_keepout"),
|
|
2966
|
+
shape: z133.literal("rect"),
|
|
2967
|
+
pcb_group_id: z133.string().optional(),
|
|
2968
|
+
subcircuit_id: z133.string().optional(),
|
|
2953
2969
|
center: point,
|
|
2954
2970
|
width: distance,
|
|
2955
2971
|
height: distance,
|
|
2956
|
-
pcb_keepout_id:
|
|
2957
|
-
layers:
|
|
2972
|
+
pcb_keepout_id: z133.string(),
|
|
2973
|
+
layers: z133.array(z133.string()),
|
|
2958
2974
|
// Specify layers where the keepout applies
|
|
2959
|
-
description:
|
|
2975
|
+
description: z133.string().optional()
|
|
2960
2976
|
// Optional description of the keepout
|
|
2961
2977
|
}).or(
|
|
2962
|
-
|
|
2963
|
-
type:
|
|
2964
|
-
shape:
|
|
2965
|
-
pcb_group_id:
|
|
2966
|
-
subcircuit_id:
|
|
2978
|
+
z133.object({
|
|
2979
|
+
type: z133.literal("pcb_keepout"),
|
|
2980
|
+
shape: z133.literal("circle"),
|
|
2981
|
+
pcb_group_id: z133.string().optional(),
|
|
2982
|
+
subcircuit_id: z133.string().optional(),
|
|
2967
2983
|
center: point,
|
|
2968
2984
|
radius: distance,
|
|
2969
|
-
pcb_keepout_id:
|
|
2970
|
-
layers:
|
|
2985
|
+
pcb_keepout_id: z133.string(),
|
|
2986
|
+
layers: z133.array(z133.string()),
|
|
2971
2987
|
// Specify layers where the keepout applies
|
|
2972
|
-
description:
|
|
2988
|
+
description: z133.string().optional()
|
|
2973
2989
|
// Optional description of the keepout
|
|
2974
2990
|
})
|
|
2975
2991
|
);
|
|
2976
2992
|
expectTypesMatch(true);
|
|
2977
2993
|
|
|
2978
2994
|
// src/pcb/pcb_cutout.ts
|
|
2979
|
-
import { z as
|
|
2980
|
-
var pcb_cutout_base =
|
|
2981
|
-
type:
|
|
2995
|
+
import { z as z134 } from "zod";
|
|
2996
|
+
var pcb_cutout_base = z134.object({
|
|
2997
|
+
type: z134.literal("pcb_cutout"),
|
|
2982
2998
|
pcb_cutout_id: getZodPrefixedIdWithDefault("pcb_cutout"),
|
|
2983
|
-
pcb_group_id:
|
|
2984
|
-
subcircuit_id:
|
|
2985
|
-
pcb_board_id:
|
|
2986
|
-
pcb_panel_id:
|
|
2999
|
+
pcb_group_id: z134.string().optional(),
|
|
3000
|
+
subcircuit_id: z134.string().optional(),
|
|
3001
|
+
pcb_board_id: z134.string().optional(),
|
|
3002
|
+
pcb_panel_id: z134.string().optional()
|
|
2987
3003
|
});
|
|
2988
3004
|
var pcb_cutout_rect = pcb_cutout_base.extend({
|
|
2989
|
-
shape:
|
|
3005
|
+
shape: z134.literal("rect"),
|
|
2990
3006
|
center: point,
|
|
2991
3007
|
width: length,
|
|
2992
3008
|
height: length,
|
|
@@ -2995,26 +3011,26 @@ var pcb_cutout_rect = pcb_cutout_base.extend({
|
|
|
2995
3011
|
});
|
|
2996
3012
|
expectTypesMatch(true);
|
|
2997
3013
|
var pcb_cutout_circle = pcb_cutout_base.extend({
|
|
2998
|
-
shape:
|
|
3014
|
+
shape: z134.literal("circle"),
|
|
2999
3015
|
center: point,
|
|
3000
3016
|
radius: length
|
|
3001
3017
|
});
|
|
3002
3018
|
expectTypesMatch(true);
|
|
3003
3019
|
var pcb_cutout_polygon = pcb_cutout_base.extend({
|
|
3004
|
-
shape:
|
|
3005
|
-
points:
|
|
3020
|
+
shape: z134.literal("polygon"),
|
|
3021
|
+
points: z134.array(point)
|
|
3006
3022
|
});
|
|
3007
3023
|
expectTypesMatch(true);
|
|
3008
3024
|
var pcb_cutout_path = pcb_cutout_base.extend({
|
|
3009
|
-
shape:
|
|
3010
|
-
route:
|
|
3025
|
+
shape: z134.literal("path"),
|
|
3026
|
+
route: z134.array(point),
|
|
3011
3027
|
slot_width: length,
|
|
3012
3028
|
slot_length: length.optional(),
|
|
3013
3029
|
space_between_slots: length.optional(),
|
|
3014
3030
|
slot_corner_radius: length.optional()
|
|
3015
3031
|
});
|
|
3016
3032
|
expectTypesMatch(true);
|
|
3017
|
-
var pcb_cutout =
|
|
3033
|
+
var pcb_cutout = z134.discriminatedUnion("shape", [
|
|
3018
3034
|
pcb_cutout_rect,
|
|
3019
3035
|
pcb_cutout_circle,
|
|
3020
3036
|
pcb_cutout_polygon,
|
|
@@ -3023,169 +3039,169 @@ var pcb_cutout = z133.discriminatedUnion("shape", [
|
|
|
3023
3039
|
expectTypesMatch(true);
|
|
3024
3040
|
|
|
3025
3041
|
// src/pcb/pcb_missing_footprint_error.ts
|
|
3026
|
-
import { z as
|
|
3042
|
+
import { z as z135 } from "zod";
|
|
3027
3043
|
var pcb_missing_footprint_error = base_circuit_json_error.extend({
|
|
3028
|
-
type:
|
|
3044
|
+
type: z135.literal("pcb_missing_footprint_error"),
|
|
3029
3045
|
pcb_missing_footprint_error_id: getZodPrefixedIdWithDefault(
|
|
3030
3046
|
"pcb_missing_footprint_error"
|
|
3031
3047
|
),
|
|
3032
|
-
pcb_group_id:
|
|
3033
|
-
subcircuit_id:
|
|
3034
|
-
error_type:
|
|
3035
|
-
source_component_id:
|
|
3048
|
+
pcb_group_id: z135.string().optional(),
|
|
3049
|
+
subcircuit_id: z135.string().optional(),
|
|
3050
|
+
error_type: z135.literal("pcb_missing_footprint_error").default("pcb_missing_footprint_error"),
|
|
3051
|
+
source_component_id: z135.string()
|
|
3036
3052
|
}).describe("Defines a missing footprint error on the PCB");
|
|
3037
3053
|
expectTypesMatch(
|
|
3038
3054
|
true
|
|
3039
3055
|
);
|
|
3040
3056
|
|
|
3041
3057
|
// src/pcb/external_footprint_load_error.ts
|
|
3042
|
-
import { z as
|
|
3058
|
+
import { z as z136 } from "zod";
|
|
3043
3059
|
var external_footprint_load_error = base_circuit_json_error.extend({
|
|
3044
|
-
type:
|
|
3060
|
+
type: z136.literal("external_footprint_load_error"),
|
|
3045
3061
|
external_footprint_load_error_id: getZodPrefixedIdWithDefault(
|
|
3046
3062
|
"external_footprint_load_error"
|
|
3047
3063
|
),
|
|
3048
|
-
pcb_component_id:
|
|
3049
|
-
source_component_id:
|
|
3050
|
-
pcb_group_id:
|
|
3051
|
-
subcircuit_id:
|
|
3052
|
-
footprinter_string:
|
|
3053
|
-
error_type:
|
|
3064
|
+
pcb_component_id: z136.string(),
|
|
3065
|
+
source_component_id: z136.string(),
|
|
3066
|
+
pcb_group_id: z136.string().optional(),
|
|
3067
|
+
subcircuit_id: z136.string().optional(),
|
|
3068
|
+
footprinter_string: z136.string().optional(),
|
|
3069
|
+
error_type: z136.literal("external_footprint_load_error").default("external_footprint_load_error")
|
|
3054
3070
|
}).describe("Defines an error when an external footprint fails to load");
|
|
3055
3071
|
expectTypesMatch(true);
|
|
3056
3072
|
|
|
3057
3073
|
// src/pcb/circuit_json_footprint_load_error.ts
|
|
3058
|
-
import { z as
|
|
3074
|
+
import { z as z137 } from "zod";
|
|
3059
3075
|
var circuit_json_footprint_load_error = base_circuit_json_error.extend({
|
|
3060
|
-
type:
|
|
3076
|
+
type: z137.literal("circuit_json_footprint_load_error"),
|
|
3061
3077
|
circuit_json_footprint_load_error_id: getZodPrefixedIdWithDefault(
|
|
3062
3078
|
"circuit_json_footprint_load_error"
|
|
3063
3079
|
),
|
|
3064
|
-
pcb_component_id:
|
|
3065
|
-
source_component_id:
|
|
3066
|
-
pcb_group_id:
|
|
3067
|
-
subcircuit_id:
|
|
3068
|
-
error_type:
|
|
3069
|
-
circuit_json:
|
|
3080
|
+
pcb_component_id: z137.string(),
|
|
3081
|
+
source_component_id: z137.string(),
|
|
3082
|
+
pcb_group_id: z137.string().optional(),
|
|
3083
|
+
subcircuit_id: z137.string().optional(),
|
|
3084
|
+
error_type: z137.literal("circuit_json_footprint_load_error").default("circuit_json_footprint_load_error"),
|
|
3085
|
+
circuit_json: z137.array(z137.any()).optional()
|
|
3070
3086
|
}).describe("Defines an error when a circuit JSON footprint fails to load");
|
|
3071
3087
|
expectTypesMatch(true);
|
|
3072
3088
|
|
|
3073
3089
|
// src/pcb/pcb_group.ts
|
|
3074
|
-
import { z as
|
|
3075
|
-
var pcb_group =
|
|
3076
|
-
type:
|
|
3090
|
+
import { z as z138 } from "zod";
|
|
3091
|
+
var pcb_group = z138.object({
|
|
3092
|
+
type: z138.literal("pcb_group"),
|
|
3077
3093
|
pcb_group_id: getZodPrefixedIdWithDefault("pcb_group"),
|
|
3078
|
-
source_group_id:
|
|
3079
|
-
is_subcircuit:
|
|
3080
|
-
subcircuit_id:
|
|
3094
|
+
source_group_id: z138.string(),
|
|
3095
|
+
is_subcircuit: z138.boolean().optional(),
|
|
3096
|
+
subcircuit_id: z138.string().optional(),
|
|
3081
3097
|
width: length.optional(),
|
|
3082
3098
|
height: length.optional(),
|
|
3083
3099
|
center: point,
|
|
3084
|
-
display_offset_x:
|
|
3100
|
+
display_offset_x: z138.string().optional().describe(
|
|
3085
3101
|
"How to display the x offset for this group, usually corresponding with how the user specified it"
|
|
3086
3102
|
),
|
|
3087
|
-
display_offset_y:
|
|
3103
|
+
display_offset_y: z138.string().optional().describe(
|
|
3088
3104
|
"How to display the y offset for this group, usually corresponding with how the user specified it"
|
|
3089
3105
|
),
|
|
3090
|
-
outline:
|
|
3106
|
+
outline: z138.array(point).optional(),
|
|
3091
3107
|
anchor_position: point.optional(),
|
|
3092
3108
|
anchor_alignment: ninePointAnchor.default("center"),
|
|
3093
|
-
position_mode:
|
|
3094
|
-
positioned_relative_to_pcb_group_id:
|
|
3095
|
-
positioned_relative_to_pcb_board_id:
|
|
3096
|
-
pcb_component_ids:
|
|
3097
|
-
child_layout_mode:
|
|
3098
|
-
name:
|
|
3099
|
-
description:
|
|
3100
|
-
layout_mode:
|
|
3101
|
-
autorouter_configuration:
|
|
3109
|
+
position_mode: z138.enum(["packed", "relative_to_group_anchor", "none"]).optional(),
|
|
3110
|
+
positioned_relative_to_pcb_group_id: z138.string().optional(),
|
|
3111
|
+
positioned_relative_to_pcb_board_id: z138.string().optional(),
|
|
3112
|
+
pcb_component_ids: z138.array(z138.string()),
|
|
3113
|
+
child_layout_mode: z138.enum(["packed", "none"]).optional(),
|
|
3114
|
+
name: z138.string().optional(),
|
|
3115
|
+
description: z138.string().optional(),
|
|
3116
|
+
layout_mode: z138.string().optional(),
|
|
3117
|
+
autorouter_configuration: z138.object({
|
|
3102
3118
|
trace_clearance: length
|
|
3103
3119
|
}).optional(),
|
|
3104
|
-
autorouter_used_string:
|
|
3120
|
+
autorouter_used_string: z138.string().optional()
|
|
3105
3121
|
}).describe("Defines a group of components on the PCB");
|
|
3106
3122
|
expectTypesMatch(true);
|
|
3107
3123
|
|
|
3108
3124
|
// src/pcb/pcb_autorouting_error.ts
|
|
3109
|
-
import { z as
|
|
3125
|
+
import { z as z139 } from "zod";
|
|
3110
3126
|
var pcb_autorouting_error = base_circuit_json_error.extend({
|
|
3111
|
-
type:
|
|
3127
|
+
type: z139.literal("pcb_autorouting_error"),
|
|
3112
3128
|
pcb_error_id: getZodPrefixedIdWithDefault("pcb_autorouting_error"),
|
|
3113
|
-
error_type:
|
|
3114
|
-
subcircuit_id:
|
|
3129
|
+
error_type: z139.literal("pcb_autorouting_error").default("pcb_autorouting_error"),
|
|
3130
|
+
subcircuit_id: z139.string().optional()
|
|
3115
3131
|
}).describe("The autorouting has failed to route a portion of the board");
|
|
3116
3132
|
expectTypesMatch(true);
|
|
3117
3133
|
|
|
3118
3134
|
// src/pcb/pcb_manual_edit_conflict_warning.ts
|
|
3119
|
-
import { z as
|
|
3120
|
-
var pcb_manual_edit_conflict_warning =
|
|
3121
|
-
type:
|
|
3135
|
+
import { z as z140 } from "zod";
|
|
3136
|
+
var pcb_manual_edit_conflict_warning = z140.object({
|
|
3137
|
+
type: z140.literal("pcb_manual_edit_conflict_warning"),
|
|
3122
3138
|
pcb_manual_edit_conflict_warning_id: getZodPrefixedIdWithDefault(
|
|
3123
3139
|
"pcb_manual_edit_conflict_warning"
|
|
3124
3140
|
),
|
|
3125
|
-
warning_type:
|
|
3126
|
-
message:
|
|
3127
|
-
pcb_component_id:
|
|
3128
|
-
pcb_group_id:
|
|
3129
|
-
subcircuit_id:
|
|
3130
|
-
source_component_id:
|
|
3141
|
+
warning_type: z140.literal("pcb_manual_edit_conflict_warning").default("pcb_manual_edit_conflict_warning"),
|
|
3142
|
+
message: z140.string(),
|
|
3143
|
+
pcb_component_id: z140.string(),
|
|
3144
|
+
pcb_group_id: z140.string().optional(),
|
|
3145
|
+
subcircuit_id: z140.string().optional(),
|
|
3146
|
+
source_component_id: z140.string()
|
|
3131
3147
|
}).describe(
|
|
3132
3148
|
"Warning emitted when a component has both manual placement and explicit pcbX/pcbY coordinates"
|
|
3133
3149
|
);
|
|
3134
3150
|
expectTypesMatch(true);
|
|
3135
3151
|
|
|
3136
3152
|
// src/pcb/pcb_connector_not_in_accessible_orientation_warning.ts
|
|
3137
|
-
import { z as
|
|
3138
|
-
var connectorOrientationDirection =
|
|
3139
|
-
var pcb_connector_not_in_accessible_orientation_warning =
|
|
3140
|
-
type:
|
|
3153
|
+
import { z as z141 } from "zod";
|
|
3154
|
+
var connectorOrientationDirection = z141.enum(["x-", "x+", "y+", "y-"]);
|
|
3155
|
+
var pcb_connector_not_in_accessible_orientation_warning = z141.object({
|
|
3156
|
+
type: z141.literal("pcb_connector_not_in_accessible_orientation_warning"),
|
|
3141
3157
|
pcb_connector_not_in_accessible_orientation_warning_id: getZodPrefixedIdWithDefault(
|
|
3142
3158
|
"pcb_connector_not_in_accessible_orientation_warning"
|
|
3143
3159
|
),
|
|
3144
|
-
warning_type:
|
|
3145
|
-
message:
|
|
3146
|
-
pcb_component_id:
|
|
3147
|
-
source_component_id:
|
|
3148
|
-
pcb_board_id:
|
|
3160
|
+
warning_type: z141.literal("pcb_connector_not_in_accessible_orientation_warning").default("pcb_connector_not_in_accessible_orientation_warning"),
|
|
3161
|
+
message: z141.string(),
|
|
3162
|
+
pcb_component_id: z141.string(),
|
|
3163
|
+
source_component_id: z141.string().optional(),
|
|
3164
|
+
pcb_board_id: z141.string().optional(),
|
|
3149
3165
|
facing_direction: connectorOrientationDirection,
|
|
3150
3166
|
recommended_facing_direction: connectorOrientationDirection,
|
|
3151
|
-
subcircuit_id:
|
|
3167
|
+
subcircuit_id: z141.string().optional()
|
|
3152
3168
|
}).describe(
|
|
3153
3169
|
"Warning emitted when a connector PCB component is facing inward toward the board and should be reoriented to an outward-facing direction"
|
|
3154
3170
|
);
|
|
3155
3171
|
expectTypesMatch(true);
|
|
3156
3172
|
|
|
3157
3173
|
// src/pcb/supplier_footprint_mismatch_warning.ts
|
|
3158
|
-
import { z as
|
|
3159
|
-
var supplier_footprint_mismatch_warning =
|
|
3160
|
-
type:
|
|
3174
|
+
import { z as z142 } from "zod";
|
|
3175
|
+
var supplier_footprint_mismatch_warning = z142.object({
|
|
3176
|
+
type: z142.literal("supplier_footprint_mismatch_warning"),
|
|
3161
3177
|
supplier_footprint_mismatch_warning_id: getZodPrefixedIdWithDefault(
|
|
3162
3178
|
"supplier_footprint_mismatch_warning"
|
|
3163
3179
|
),
|
|
3164
|
-
warning_type:
|
|
3165
|
-
message:
|
|
3166
|
-
source_component_id:
|
|
3167
|
-
pcb_component_id:
|
|
3168
|
-
pcb_group_id:
|
|
3169
|
-
subcircuit_id:
|
|
3180
|
+
warning_type: z142.literal("supplier_footprint_mismatch_warning").default("supplier_footprint_mismatch_warning"),
|
|
3181
|
+
message: z142.string(),
|
|
3182
|
+
source_component_id: z142.string(),
|
|
3183
|
+
pcb_component_id: z142.string().optional(),
|
|
3184
|
+
pcb_group_id: z142.string().optional(),
|
|
3185
|
+
subcircuit_id: z142.string().optional(),
|
|
3170
3186
|
supplier_name: supplier_name.optional(),
|
|
3171
|
-
supplier_part_number:
|
|
3172
|
-
supplier_footprint_url:
|
|
3173
|
-
footprint_copper_intersection_over_union:
|
|
3187
|
+
supplier_part_number: z142.string().optional(),
|
|
3188
|
+
supplier_footprint_url: z142.string().optional(),
|
|
3189
|
+
footprint_copper_intersection_over_union: z142.number()
|
|
3174
3190
|
}).describe(
|
|
3175
3191
|
"Warning emitted when a supplier part footprint does not match the expected footprint"
|
|
3176
3192
|
);
|
|
3177
3193
|
expectTypesMatch(true);
|
|
3178
3194
|
|
|
3179
3195
|
// src/pcb/pcb_breakout_point.ts
|
|
3180
|
-
import { z as
|
|
3181
|
-
var pcb_breakout_point =
|
|
3182
|
-
type:
|
|
3196
|
+
import { z as z143 } from "zod";
|
|
3197
|
+
var pcb_breakout_point = z143.object({
|
|
3198
|
+
type: z143.literal("pcb_breakout_point"),
|
|
3183
3199
|
pcb_breakout_point_id: getZodPrefixedIdWithDefault("pcb_breakout_point"),
|
|
3184
|
-
pcb_group_id:
|
|
3185
|
-
subcircuit_id:
|
|
3186
|
-
source_trace_id:
|
|
3187
|
-
source_port_id:
|
|
3188
|
-
source_net_id:
|
|
3200
|
+
pcb_group_id: z143.string(),
|
|
3201
|
+
subcircuit_id: z143.string().optional(),
|
|
3202
|
+
source_trace_id: z143.string().optional(),
|
|
3203
|
+
source_port_id: z143.string().optional(),
|
|
3204
|
+
source_net_id: z143.string().optional(),
|
|
3189
3205
|
x: distance,
|
|
3190
3206
|
y: distance
|
|
3191
3207
|
}).describe(
|
|
@@ -3194,61 +3210,61 @@ var pcb_breakout_point = z142.object({
|
|
|
3194
3210
|
expectTypesMatch(true);
|
|
3195
3211
|
|
|
3196
3212
|
// src/pcb/pcb_ground_plane.ts
|
|
3197
|
-
import { z as
|
|
3198
|
-
var pcb_ground_plane =
|
|
3199
|
-
type:
|
|
3213
|
+
import { z as z144 } from "zod";
|
|
3214
|
+
var pcb_ground_plane = z144.object({
|
|
3215
|
+
type: z144.literal("pcb_ground_plane"),
|
|
3200
3216
|
pcb_ground_plane_id: getZodPrefixedIdWithDefault("pcb_ground_plane"),
|
|
3201
|
-
source_pcb_ground_plane_id:
|
|
3202
|
-
source_net_id:
|
|
3203
|
-
pcb_group_id:
|
|
3204
|
-
subcircuit_id:
|
|
3217
|
+
source_pcb_ground_plane_id: z144.string(),
|
|
3218
|
+
source_net_id: z144.string(),
|
|
3219
|
+
pcb_group_id: z144.string().optional(),
|
|
3220
|
+
subcircuit_id: z144.string().optional()
|
|
3205
3221
|
}).describe("Defines a ground plane on the PCB");
|
|
3206
3222
|
expectTypesMatch(true);
|
|
3207
3223
|
|
|
3208
3224
|
// src/pcb/pcb_ground_plane_region.ts
|
|
3209
|
-
import { z as
|
|
3210
|
-
var pcb_ground_plane_region =
|
|
3211
|
-
type:
|
|
3225
|
+
import { z as z145 } from "zod";
|
|
3226
|
+
var pcb_ground_plane_region = z145.object({
|
|
3227
|
+
type: z145.literal("pcb_ground_plane_region"),
|
|
3212
3228
|
pcb_ground_plane_region_id: getZodPrefixedIdWithDefault(
|
|
3213
3229
|
"pcb_ground_plane_region"
|
|
3214
3230
|
),
|
|
3215
|
-
pcb_ground_plane_id:
|
|
3216
|
-
pcb_group_id:
|
|
3217
|
-
subcircuit_id:
|
|
3231
|
+
pcb_ground_plane_id: z145.string(),
|
|
3232
|
+
pcb_group_id: z145.string().optional(),
|
|
3233
|
+
subcircuit_id: z145.string().optional(),
|
|
3218
3234
|
layer: layer_ref,
|
|
3219
|
-
points:
|
|
3235
|
+
points: z145.array(point)
|
|
3220
3236
|
}).describe("Defines a polygon region of a ground plane");
|
|
3221
3237
|
expectTypesMatch(true);
|
|
3222
3238
|
|
|
3223
3239
|
// src/pcb/pcb_thermal_spoke.ts
|
|
3224
|
-
import { z as
|
|
3225
|
-
var pcb_thermal_spoke =
|
|
3226
|
-
type:
|
|
3240
|
+
import { z as z146 } from "zod";
|
|
3241
|
+
var pcb_thermal_spoke = z146.object({
|
|
3242
|
+
type: z146.literal("pcb_thermal_spoke"),
|
|
3227
3243
|
pcb_thermal_spoke_id: getZodPrefixedIdWithDefault("pcb_thermal_spoke"),
|
|
3228
|
-
pcb_ground_plane_id:
|
|
3229
|
-
shape:
|
|
3230
|
-
spoke_count:
|
|
3244
|
+
pcb_ground_plane_id: z146.string(),
|
|
3245
|
+
shape: z146.string(),
|
|
3246
|
+
spoke_count: z146.number(),
|
|
3231
3247
|
spoke_thickness: distance,
|
|
3232
3248
|
spoke_inner_diameter: distance,
|
|
3233
3249
|
spoke_outer_diameter: distance,
|
|
3234
|
-
pcb_plated_hole_id:
|
|
3235
|
-
subcircuit_id:
|
|
3250
|
+
pcb_plated_hole_id: z146.string().optional(),
|
|
3251
|
+
subcircuit_id: z146.string().optional()
|
|
3236
3252
|
}).describe("Pattern for connecting a ground plane to a plated hole");
|
|
3237
3253
|
expectTypesMatch(true);
|
|
3238
3254
|
|
|
3239
3255
|
// src/pcb/pcb_copper_pour.ts
|
|
3240
|
-
import { z as
|
|
3241
|
-
var pcb_copper_pour_base =
|
|
3242
|
-
type:
|
|
3256
|
+
import { z as z147 } from "zod";
|
|
3257
|
+
var pcb_copper_pour_base = z147.object({
|
|
3258
|
+
type: z147.literal("pcb_copper_pour"),
|
|
3243
3259
|
pcb_copper_pour_id: getZodPrefixedIdWithDefault("pcb_copper_pour"),
|
|
3244
|
-
pcb_group_id:
|
|
3245
|
-
subcircuit_id:
|
|
3260
|
+
pcb_group_id: z147.string().optional(),
|
|
3261
|
+
subcircuit_id: z147.string().optional(),
|
|
3246
3262
|
layer: layer_ref,
|
|
3247
|
-
source_net_id:
|
|
3248
|
-
covered_with_solder_mask:
|
|
3263
|
+
source_net_id: z147.string().optional(),
|
|
3264
|
+
covered_with_solder_mask: z147.boolean().optional().default(true)
|
|
3249
3265
|
});
|
|
3250
3266
|
var pcb_copper_pour_rect = pcb_copper_pour_base.extend({
|
|
3251
|
-
shape:
|
|
3267
|
+
shape: z147.literal("rect"),
|
|
3252
3268
|
center: point,
|
|
3253
3269
|
width: length,
|
|
3254
3270
|
height: length,
|
|
@@ -3256,16 +3272,16 @@ var pcb_copper_pour_rect = pcb_copper_pour_base.extend({
|
|
|
3256
3272
|
});
|
|
3257
3273
|
expectTypesMatch(true);
|
|
3258
3274
|
var pcb_copper_pour_brep = pcb_copper_pour_base.extend({
|
|
3259
|
-
shape:
|
|
3275
|
+
shape: z147.literal("brep"),
|
|
3260
3276
|
brep_shape
|
|
3261
3277
|
});
|
|
3262
3278
|
expectTypesMatch(true);
|
|
3263
3279
|
var pcb_copper_pour_polygon = pcb_copper_pour_base.extend({
|
|
3264
|
-
shape:
|
|
3265
|
-
points:
|
|
3280
|
+
shape: z147.literal("polygon"),
|
|
3281
|
+
points: z147.array(point)
|
|
3266
3282
|
});
|
|
3267
3283
|
expectTypesMatch(true);
|
|
3268
|
-
var pcb_copper_pour =
|
|
3284
|
+
var pcb_copper_pour = z147.discriminatedUnion("shape", [
|
|
3269
3285
|
pcb_copper_pour_rect,
|
|
3270
3286
|
pcb_copper_pour_brep,
|
|
3271
3287
|
pcb_copper_pour_polygon
|
|
@@ -3273,99 +3289,99 @@ var pcb_copper_pour = z146.discriminatedUnion("shape", [
|
|
|
3273
3289
|
expectTypesMatch(true);
|
|
3274
3290
|
|
|
3275
3291
|
// src/pcb/pcb_component_outside_board_error.ts
|
|
3276
|
-
import { z as
|
|
3292
|
+
import { z as z148 } from "zod";
|
|
3277
3293
|
var pcb_component_outside_board_error = base_circuit_json_error.extend({
|
|
3278
|
-
type:
|
|
3294
|
+
type: z148.literal("pcb_component_outside_board_error"),
|
|
3279
3295
|
pcb_component_outside_board_error_id: getZodPrefixedIdWithDefault(
|
|
3280
3296
|
"pcb_component_outside_board_error"
|
|
3281
3297
|
),
|
|
3282
|
-
error_type:
|
|
3283
|
-
pcb_component_id:
|
|
3284
|
-
pcb_board_id:
|
|
3298
|
+
error_type: z148.literal("pcb_component_outside_board_error").default("pcb_component_outside_board_error"),
|
|
3299
|
+
pcb_component_id: z148.string(),
|
|
3300
|
+
pcb_board_id: z148.string(),
|
|
3285
3301
|
component_center: point,
|
|
3286
|
-
component_bounds:
|
|
3287
|
-
min_x:
|
|
3288
|
-
max_x:
|
|
3289
|
-
min_y:
|
|
3290
|
-
max_y:
|
|
3302
|
+
component_bounds: z148.object({
|
|
3303
|
+
min_x: z148.number(),
|
|
3304
|
+
max_x: z148.number(),
|
|
3305
|
+
min_y: z148.number(),
|
|
3306
|
+
max_y: z148.number()
|
|
3291
3307
|
}),
|
|
3292
|
-
subcircuit_id:
|
|
3293
|
-
source_component_id:
|
|
3308
|
+
subcircuit_id: z148.string().optional(),
|
|
3309
|
+
source_component_id: z148.string().optional()
|
|
3294
3310
|
}).describe(
|
|
3295
3311
|
"Error emitted when a PCB component is placed outside the board boundaries"
|
|
3296
3312
|
);
|
|
3297
3313
|
expectTypesMatch(true);
|
|
3298
3314
|
|
|
3299
3315
|
// src/pcb/pcb_component_not_on_board_edge_error.ts
|
|
3300
|
-
import { z as
|
|
3316
|
+
import { z as z149 } from "zod";
|
|
3301
3317
|
var pcb_component_not_on_board_edge_error = base_circuit_json_error.extend({
|
|
3302
|
-
type:
|
|
3318
|
+
type: z149.literal("pcb_component_not_on_board_edge_error"),
|
|
3303
3319
|
pcb_component_not_on_board_edge_error_id: getZodPrefixedIdWithDefault(
|
|
3304
3320
|
"pcb_component_not_on_board_edge_error"
|
|
3305
3321
|
),
|
|
3306
|
-
error_type:
|
|
3307
|
-
pcb_component_id:
|
|
3308
|
-
pcb_board_id:
|
|
3322
|
+
error_type: z149.literal("pcb_component_not_on_board_edge_error").default("pcb_component_not_on_board_edge_error"),
|
|
3323
|
+
pcb_component_id: z149.string(),
|
|
3324
|
+
pcb_board_id: z149.string(),
|
|
3309
3325
|
component_center: point,
|
|
3310
|
-
pad_to_nearest_board_edge_distance:
|
|
3311
|
-
source_component_id:
|
|
3312
|
-
subcircuit_id:
|
|
3326
|
+
pad_to_nearest_board_edge_distance: z149.number(),
|
|
3327
|
+
source_component_id: z149.string().optional(),
|
|
3328
|
+
subcircuit_id: z149.string().optional()
|
|
3313
3329
|
}).describe(
|
|
3314
3330
|
"Error emitted when a component that must be placed on the board edge is centered away from the edge"
|
|
3315
3331
|
);
|
|
3316
3332
|
expectTypesMatch(true);
|
|
3317
3333
|
|
|
3318
3334
|
// src/pcb/pcb_component_invalid_layer_error.ts
|
|
3319
|
-
import { z as
|
|
3335
|
+
import { z as z150 } from "zod";
|
|
3320
3336
|
var pcb_component_invalid_layer_error = base_circuit_json_error.extend({
|
|
3321
|
-
type:
|
|
3337
|
+
type: z150.literal("pcb_component_invalid_layer_error"),
|
|
3322
3338
|
pcb_component_invalid_layer_error_id: getZodPrefixedIdWithDefault(
|
|
3323
3339
|
"pcb_component_invalid_layer_error"
|
|
3324
3340
|
),
|
|
3325
|
-
error_type:
|
|
3326
|
-
pcb_component_id:
|
|
3327
|
-
source_component_id:
|
|
3341
|
+
error_type: z150.literal("pcb_component_invalid_layer_error").default("pcb_component_invalid_layer_error"),
|
|
3342
|
+
pcb_component_id: z150.string().optional(),
|
|
3343
|
+
source_component_id: z150.string(),
|
|
3328
3344
|
layer: layer_ref,
|
|
3329
|
-
subcircuit_id:
|
|
3345
|
+
subcircuit_id: z150.string().optional()
|
|
3330
3346
|
}).describe(
|
|
3331
3347
|
"Error emitted when a component is placed on an invalid layer (components can only be on 'top' or 'bottom' layers)"
|
|
3332
3348
|
);
|
|
3333
3349
|
expectTypesMatch(true);
|
|
3334
3350
|
|
|
3335
3351
|
// src/pcb/pcb_via_clearance_error.ts
|
|
3336
|
-
import { z as
|
|
3352
|
+
import { z as z151 } from "zod";
|
|
3337
3353
|
var pcb_via_clearance_error = base_circuit_json_error.extend({
|
|
3338
|
-
type:
|
|
3354
|
+
type: z151.literal("pcb_via_clearance_error"),
|
|
3339
3355
|
pcb_error_id: getZodPrefixedIdWithDefault("pcb_error"),
|
|
3340
|
-
error_type:
|
|
3341
|
-
pcb_via_ids:
|
|
3356
|
+
error_type: z151.literal("pcb_via_clearance_error").default("pcb_via_clearance_error"),
|
|
3357
|
+
pcb_via_ids: z151.array(z151.string()).min(2),
|
|
3342
3358
|
minimum_clearance: distance.optional(),
|
|
3343
3359
|
actual_clearance: distance.optional(),
|
|
3344
|
-
pcb_center:
|
|
3345
|
-
x:
|
|
3346
|
-
y:
|
|
3360
|
+
pcb_center: z151.object({
|
|
3361
|
+
x: z151.number().optional(),
|
|
3362
|
+
y: z151.number().optional()
|
|
3347
3363
|
}).optional(),
|
|
3348
|
-
subcircuit_id:
|
|
3364
|
+
subcircuit_id: z151.string().optional()
|
|
3349
3365
|
}).describe("Error emitted when vias are closer than the allowed clearance");
|
|
3350
3366
|
expectTypesMatch(true);
|
|
3351
3367
|
|
|
3352
3368
|
// src/pcb/pcb_via_trace_clearance_error.ts
|
|
3353
|
-
import { z as
|
|
3369
|
+
import { z as z152 } from "zod";
|
|
3354
3370
|
var pcb_via_trace_clearance_error = base_circuit_json_error.extend({
|
|
3355
|
-
type:
|
|
3371
|
+
type: z152.literal("pcb_via_trace_clearance_error"),
|
|
3356
3372
|
pcb_via_trace_clearance_error_id: getZodPrefixedIdWithDefault(
|
|
3357
3373
|
"pcb_via_trace_clearance_error"
|
|
3358
3374
|
),
|
|
3359
|
-
error_type:
|
|
3360
|
-
pcb_via_id:
|
|
3361
|
-
pcb_trace_id:
|
|
3375
|
+
error_type: z152.literal("pcb_via_trace_clearance_error").default("pcb_via_trace_clearance_error"),
|
|
3376
|
+
pcb_via_id: z152.string(),
|
|
3377
|
+
pcb_trace_id: z152.string(),
|
|
3362
3378
|
minimum_clearance: distance.optional(),
|
|
3363
3379
|
actual_clearance: distance.optional(),
|
|
3364
|
-
center:
|
|
3365
|
-
x:
|
|
3366
|
-
y:
|
|
3380
|
+
center: z152.object({
|
|
3381
|
+
x: z152.number().optional(),
|
|
3382
|
+
y: z152.number().optional()
|
|
3367
3383
|
}).optional(),
|
|
3368
|
-
subcircuit_id:
|
|
3384
|
+
subcircuit_id: z152.string().optional()
|
|
3369
3385
|
}).describe(
|
|
3370
3386
|
"Error emitted when a via and trace are closer than the allowed clearance"
|
|
3371
3387
|
);
|
|
@@ -3374,41 +3390,41 @@ expectTypesMatch(
|
|
|
3374
3390
|
);
|
|
3375
3391
|
|
|
3376
3392
|
// src/pcb/pcb_pad_pad_clearance_error.ts
|
|
3377
|
-
import { z as
|
|
3393
|
+
import { z as z153 } from "zod";
|
|
3378
3394
|
var pcb_pad_pad_clearance_error = base_circuit_json_error.extend({
|
|
3379
|
-
type:
|
|
3395
|
+
type: z153.literal("pcb_pad_pad_clearance_error"),
|
|
3380
3396
|
pcb_pad_pad_clearance_error_id: getZodPrefixedIdWithDefault(
|
|
3381
3397
|
"pcb_pad_pad_clearance_error"
|
|
3382
3398
|
),
|
|
3383
|
-
error_type:
|
|
3384
|
-
pcb_pad_ids:
|
|
3399
|
+
error_type: z153.literal("pcb_pad_pad_clearance_error").default("pcb_pad_pad_clearance_error"),
|
|
3400
|
+
pcb_pad_ids: z153.array(z153.string()).min(2),
|
|
3385
3401
|
minimum_clearance: distance.optional(),
|
|
3386
3402
|
actual_clearance: distance.optional(),
|
|
3387
|
-
center:
|
|
3388
|
-
x:
|
|
3389
|
-
y:
|
|
3403
|
+
center: z153.object({
|
|
3404
|
+
x: z153.number().optional(),
|
|
3405
|
+
y: z153.number().optional()
|
|
3390
3406
|
}).optional(),
|
|
3391
|
-
subcircuit_id:
|
|
3407
|
+
subcircuit_id: z153.string().optional()
|
|
3392
3408
|
}).describe("Error emitted when pads are closer than the allowed clearance");
|
|
3393
3409
|
expectTypesMatch(true);
|
|
3394
3410
|
|
|
3395
3411
|
// src/pcb/pcb_pad_trace_clearance_error.ts
|
|
3396
|
-
import { z as
|
|
3412
|
+
import { z as z154 } from "zod";
|
|
3397
3413
|
var pcb_pad_trace_clearance_error = base_circuit_json_error.extend({
|
|
3398
|
-
type:
|
|
3414
|
+
type: z154.literal("pcb_pad_trace_clearance_error"),
|
|
3399
3415
|
pcb_pad_trace_clearance_error_id: getZodPrefixedIdWithDefault(
|
|
3400
3416
|
"pcb_pad_trace_clearance_error"
|
|
3401
3417
|
),
|
|
3402
|
-
error_type:
|
|
3403
|
-
pcb_pad_id:
|
|
3404
|
-
pcb_trace_id:
|
|
3418
|
+
error_type: z154.literal("pcb_pad_trace_clearance_error").default("pcb_pad_trace_clearance_error"),
|
|
3419
|
+
pcb_pad_id: z154.string(),
|
|
3420
|
+
pcb_trace_id: z154.string(),
|
|
3405
3421
|
minimum_clearance: distance.optional(),
|
|
3406
3422
|
actual_clearance: distance.optional(),
|
|
3407
|
-
center:
|
|
3408
|
-
x:
|
|
3409
|
-
y:
|
|
3423
|
+
center: z154.object({
|
|
3424
|
+
x: z154.number().optional(),
|
|
3425
|
+
y: z154.number().optional()
|
|
3410
3426
|
}).optional(),
|
|
3411
|
-
subcircuit_id:
|
|
3427
|
+
subcircuit_id: z154.string().optional()
|
|
3412
3428
|
}).describe(
|
|
3413
3429
|
"Error emitted when a pad and trace are closer than allowed clearance"
|
|
3414
3430
|
);
|
|
@@ -3417,72 +3433,72 @@ expectTypesMatch(
|
|
|
3417
3433
|
);
|
|
3418
3434
|
|
|
3419
3435
|
// src/pcb/pcb_courtyard_rect.ts
|
|
3420
|
-
import { z as
|
|
3421
|
-
var pcb_courtyard_rect =
|
|
3422
|
-
type:
|
|
3436
|
+
import { z as z155 } from "zod";
|
|
3437
|
+
var pcb_courtyard_rect = z155.object({
|
|
3438
|
+
type: z155.literal("pcb_courtyard_rect"),
|
|
3423
3439
|
pcb_courtyard_rect_id: getZodPrefixedIdWithDefault("pcb_courtyard_rect"),
|
|
3424
|
-
pcb_component_id:
|
|
3425
|
-
pcb_group_id:
|
|
3426
|
-
subcircuit_id:
|
|
3440
|
+
pcb_component_id: z155.string(),
|
|
3441
|
+
pcb_group_id: z155.string().optional(),
|
|
3442
|
+
subcircuit_id: z155.string().optional(),
|
|
3427
3443
|
center: point,
|
|
3428
3444
|
width: length,
|
|
3429
3445
|
height: length,
|
|
3430
3446
|
layer: visible_layer,
|
|
3431
3447
|
ccw_rotation: rotation.optional(),
|
|
3432
|
-
color:
|
|
3448
|
+
color: z155.string().optional()
|
|
3433
3449
|
}).describe("Defines a courtyard rectangle on the PCB");
|
|
3434
3450
|
expectTypesMatch(true);
|
|
3435
3451
|
|
|
3436
3452
|
// src/pcb/pcb_courtyard_outline.ts
|
|
3437
|
-
import { z as
|
|
3438
|
-
var pcb_courtyard_outline =
|
|
3439
|
-
type:
|
|
3453
|
+
import { z as z156 } from "zod";
|
|
3454
|
+
var pcb_courtyard_outline = z156.object({
|
|
3455
|
+
type: z156.literal("pcb_courtyard_outline"),
|
|
3440
3456
|
pcb_courtyard_outline_id: getZodPrefixedIdWithDefault(
|
|
3441
3457
|
"pcb_courtyard_outline"
|
|
3442
3458
|
),
|
|
3443
|
-
pcb_component_id:
|
|
3444
|
-
pcb_group_id:
|
|
3445
|
-
subcircuit_id:
|
|
3459
|
+
pcb_component_id: z156.string(),
|
|
3460
|
+
pcb_group_id: z156.string().optional(),
|
|
3461
|
+
subcircuit_id: z156.string().optional(),
|
|
3446
3462
|
layer: visible_layer,
|
|
3447
|
-
outline:
|
|
3463
|
+
outline: z156.array(point).min(2)
|
|
3448
3464
|
}).describe("Defines a courtyard outline on the PCB");
|
|
3449
3465
|
expectTypesMatch(true);
|
|
3450
3466
|
|
|
3451
3467
|
// src/pcb/pcb_courtyard_polygon.ts
|
|
3452
|
-
import { z as
|
|
3453
|
-
var pcb_courtyard_polygon =
|
|
3454
|
-
type:
|
|
3468
|
+
import { z as z157 } from "zod";
|
|
3469
|
+
var pcb_courtyard_polygon = z157.object({
|
|
3470
|
+
type: z157.literal("pcb_courtyard_polygon"),
|
|
3455
3471
|
pcb_courtyard_polygon_id: getZodPrefixedIdWithDefault(
|
|
3456
3472
|
"pcb_courtyard_polygon"
|
|
3457
3473
|
),
|
|
3458
|
-
pcb_component_id:
|
|
3459
|
-
pcb_group_id:
|
|
3460
|
-
subcircuit_id:
|
|
3474
|
+
pcb_component_id: z157.string(),
|
|
3475
|
+
pcb_group_id: z157.string().optional(),
|
|
3476
|
+
subcircuit_id: z157.string().optional(),
|
|
3461
3477
|
layer: visible_layer,
|
|
3462
|
-
points:
|
|
3463
|
-
color:
|
|
3478
|
+
points: z157.array(point).min(3),
|
|
3479
|
+
color: z157.string().optional()
|
|
3464
3480
|
}).describe("Defines a courtyard polygon on the PCB");
|
|
3465
3481
|
expectTypesMatch(true);
|
|
3466
3482
|
|
|
3467
3483
|
// src/pcb/pcb_courtyard_circle.ts
|
|
3468
|
-
import { z as
|
|
3469
|
-
var pcb_courtyard_circle =
|
|
3470
|
-
type:
|
|
3484
|
+
import { z as z158 } from "zod";
|
|
3485
|
+
var pcb_courtyard_circle = z158.object({
|
|
3486
|
+
type: z158.literal("pcb_courtyard_circle"),
|
|
3471
3487
|
pcb_courtyard_circle_id: getZodPrefixedIdWithDefault(
|
|
3472
3488
|
"pcb_courtyard_circle"
|
|
3473
3489
|
),
|
|
3474
|
-
pcb_component_id:
|
|
3475
|
-
pcb_group_id:
|
|
3476
|
-
subcircuit_id:
|
|
3490
|
+
pcb_component_id: z158.string(),
|
|
3491
|
+
pcb_group_id: z158.string().optional(),
|
|
3492
|
+
subcircuit_id: z158.string().optional(),
|
|
3477
3493
|
center: point,
|
|
3478
3494
|
radius: length,
|
|
3479
3495
|
layer: visible_layer,
|
|
3480
|
-
color:
|
|
3496
|
+
color: z158.string().optional()
|
|
3481
3497
|
}).describe("Defines a courtyard circle on the PCB");
|
|
3482
3498
|
expectTypesMatch(true);
|
|
3483
3499
|
|
|
3484
3500
|
// src/cad/cad_component.ts
|
|
3485
|
-
import { z as
|
|
3501
|
+
import { z as z159 } from "zod";
|
|
3486
3502
|
|
|
3487
3503
|
// src/cad/cad_model_conventions.ts
|
|
3488
3504
|
var cad_model_formats = [
|
|
@@ -3513,49 +3529,49 @@ var cadModelDefaultDirectionMap = {
|
|
|
3513
3529
|
};
|
|
3514
3530
|
|
|
3515
3531
|
// src/cad/cad_component.ts
|
|
3516
|
-
var cad_component =
|
|
3517
|
-
type:
|
|
3518
|
-
cad_component_id:
|
|
3519
|
-
pcb_component_id:
|
|
3520
|
-
source_component_id:
|
|
3532
|
+
var cad_component = z159.object({
|
|
3533
|
+
type: z159.literal("cad_component"),
|
|
3534
|
+
cad_component_id: z159.string(),
|
|
3535
|
+
pcb_component_id: z159.string(),
|
|
3536
|
+
source_component_id: z159.string(),
|
|
3521
3537
|
position: point3,
|
|
3522
3538
|
rotation: point3.optional(),
|
|
3523
3539
|
size: point3.optional(),
|
|
3524
3540
|
layer: layer_ref.optional(),
|
|
3525
|
-
subcircuit_id:
|
|
3541
|
+
subcircuit_id: z159.string().optional(),
|
|
3526
3542
|
// These are all ways to generate/load the 3d model
|
|
3527
|
-
footprinter_string:
|
|
3528
|
-
model_obj_url:
|
|
3529
|
-
model_stl_url:
|
|
3530
|
-
model_3mf_url:
|
|
3531
|
-
model_gltf_url:
|
|
3532
|
-
model_glb_url:
|
|
3533
|
-
model_step_url:
|
|
3534
|
-
model_wrl_url:
|
|
3543
|
+
footprinter_string: z159.string().optional(),
|
|
3544
|
+
model_obj_url: z159.string().optional(),
|
|
3545
|
+
model_stl_url: z159.string().optional(),
|
|
3546
|
+
model_3mf_url: z159.string().optional(),
|
|
3547
|
+
model_gltf_url: z159.string().optional(),
|
|
3548
|
+
model_glb_url: z159.string().optional(),
|
|
3549
|
+
model_step_url: z159.string().optional(),
|
|
3550
|
+
model_wrl_url: z159.string().optional(),
|
|
3535
3551
|
model_asset: asset.optional(),
|
|
3536
|
-
model_unit_to_mm_scale_factor:
|
|
3537
|
-
model_board_normal_direction:
|
|
3552
|
+
model_unit_to_mm_scale_factor: z159.number().optional(),
|
|
3553
|
+
model_board_normal_direction: z159.enum(cad_model_axis_directions).optional().describe(
|
|
3538
3554
|
`The direction in the model's coordinate space that is considered "up" or "coming out of the board surface"`
|
|
3539
3555
|
),
|
|
3540
3556
|
model_origin_position: point3.optional(),
|
|
3541
|
-
model_origin_alignment:
|
|
3557
|
+
model_origin_alignment: z159.enum([
|
|
3542
3558
|
"unknown",
|
|
3543
3559
|
"center",
|
|
3544
3560
|
"center_of_component_on_board_surface",
|
|
3545
3561
|
"bottom_center_of_component"
|
|
3546
3562
|
]).optional(),
|
|
3547
|
-
model_object_fit:
|
|
3548
|
-
model_jscad:
|
|
3549
|
-
show_as_translucent_model:
|
|
3550
|
-
show_as_bounding_box:
|
|
3551
|
-
anchor_alignment:
|
|
3563
|
+
model_object_fit: z159.enum(["contain_within_bounds", "fill_bounds"]).optional().default("contain_within_bounds"),
|
|
3564
|
+
model_jscad: z159.any().optional(),
|
|
3565
|
+
show_as_translucent_model: z159.boolean().optional(),
|
|
3566
|
+
show_as_bounding_box: z159.boolean().optional(),
|
|
3567
|
+
anchor_alignment: z159.enum(["center", "center_of_component_on_board_surface"]).optional().default("center")
|
|
3552
3568
|
}).describe("Defines a component on the PCB");
|
|
3553
3569
|
expectTypesMatch(true);
|
|
3554
3570
|
|
|
3555
3571
|
// src/simulation/simulation_voltage_source.ts
|
|
3556
|
-
import { z as
|
|
3557
|
-
var wave_shape =
|
|
3558
|
-
var percentage =
|
|
3572
|
+
import { z as z160 } from "zod";
|
|
3573
|
+
var wave_shape = z160.enum(["sinewave", "square", "triangle", "sawtooth"]);
|
|
3574
|
+
var percentage = z160.union([z160.string(), z160.number()]).transform((val) => {
|
|
3559
3575
|
if (typeof val === "string") {
|
|
3560
3576
|
if (val.endsWith("%")) {
|
|
3561
3577
|
return parseFloat(val.slice(0, -1)) / 100;
|
|
@@ -3564,30 +3580,30 @@ var percentage = z159.union([z159.string(), z159.number()]).transform((val) => {
|
|
|
3564
3580
|
}
|
|
3565
3581
|
return val;
|
|
3566
3582
|
}).pipe(
|
|
3567
|
-
|
|
3583
|
+
z160.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
|
|
3568
3584
|
);
|
|
3569
|
-
var simulation_dc_voltage_source =
|
|
3570
|
-
type:
|
|
3585
|
+
var simulation_dc_voltage_source = z160.object({
|
|
3586
|
+
type: z160.literal("simulation_voltage_source"),
|
|
3571
3587
|
simulation_voltage_source_id: getZodPrefixedIdWithDefault(
|
|
3572
3588
|
"simulation_voltage_source"
|
|
3573
3589
|
),
|
|
3574
|
-
is_dc_source:
|
|
3575
|
-
positive_source_port_id:
|
|
3576
|
-
negative_source_port_id:
|
|
3577
|
-
positive_source_net_id:
|
|
3578
|
-
negative_source_net_id:
|
|
3590
|
+
is_dc_source: z160.literal(true).optional().default(true),
|
|
3591
|
+
positive_source_port_id: z160.string().optional(),
|
|
3592
|
+
negative_source_port_id: z160.string().optional(),
|
|
3593
|
+
positive_source_net_id: z160.string().optional(),
|
|
3594
|
+
negative_source_net_id: z160.string().optional(),
|
|
3579
3595
|
voltage
|
|
3580
3596
|
}).describe("Defines a DC voltage source for simulation");
|
|
3581
|
-
var simulation_ac_voltage_source =
|
|
3582
|
-
type:
|
|
3597
|
+
var simulation_ac_voltage_source = z160.object({
|
|
3598
|
+
type: z160.literal("simulation_voltage_source"),
|
|
3583
3599
|
simulation_voltage_source_id: getZodPrefixedIdWithDefault(
|
|
3584
3600
|
"simulation_voltage_source"
|
|
3585
3601
|
),
|
|
3586
|
-
is_dc_source:
|
|
3587
|
-
terminal1_source_port_id:
|
|
3588
|
-
terminal2_source_port_id:
|
|
3589
|
-
terminal1_source_net_id:
|
|
3590
|
-
terminal2_source_net_id:
|
|
3602
|
+
is_dc_source: z160.literal(false),
|
|
3603
|
+
terminal1_source_port_id: z160.string().optional(),
|
|
3604
|
+
terminal2_source_port_id: z160.string().optional(),
|
|
3605
|
+
terminal1_source_net_id: z160.string().optional(),
|
|
3606
|
+
terminal2_source_net_id: z160.string().optional(),
|
|
3591
3607
|
voltage: voltage.optional(),
|
|
3592
3608
|
frequency: frequency.optional(),
|
|
3593
3609
|
peak_to_peak_voltage: voltage.optional(),
|
|
@@ -3595,14 +3611,14 @@ var simulation_ac_voltage_source = z159.object({
|
|
|
3595
3611
|
phase: rotation.optional(),
|
|
3596
3612
|
duty_cycle: percentage.optional()
|
|
3597
3613
|
}).describe("Defines an AC voltage source for simulation");
|
|
3598
|
-
var simulation_voltage_source =
|
|
3614
|
+
var simulation_voltage_source = z160.union([simulation_dc_voltage_source, simulation_ac_voltage_source]).describe("Defines a voltage source for simulation");
|
|
3599
3615
|
expectTypesMatch(true);
|
|
3600
3616
|
expectTypesMatch(true);
|
|
3601
3617
|
expectTypesMatch(true);
|
|
3602
3618
|
|
|
3603
3619
|
// src/simulation/simulation_current_source.ts
|
|
3604
|
-
import { z as
|
|
3605
|
-
var percentage2 =
|
|
3620
|
+
import { z as z161 } from "zod";
|
|
3621
|
+
var percentage2 = z161.union([z161.string(), z161.number()]).transform((val) => {
|
|
3606
3622
|
if (typeof val === "string") {
|
|
3607
3623
|
if (val.endsWith("%")) {
|
|
3608
3624
|
return parseFloat(val.slice(0, -1)) / 100;
|
|
@@ -3611,30 +3627,30 @@ var percentage2 = z160.union([z160.string(), z160.number()]).transform((val) =>
|
|
|
3611
3627
|
}
|
|
3612
3628
|
return val;
|
|
3613
3629
|
}).pipe(
|
|
3614
|
-
|
|
3630
|
+
z161.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
|
|
3615
3631
|
);
|
|
3616
|
-
var simulation_dc_current_source =
|
|
3617
|
-
type:
|
|
3632
|
+
var simulation_dc_current_source = z161.object({
|
|
3633
|
+
type: z161.literal("simulation_current_source"),
|
|
3618
3634
|
simulation_current_source_id: getZodPrefixedIdWithDefault(
|
|
3619
3635
|
"simulation_current_source"
|
|
3620
3636
|
),
|
|
3621
|
-
is_dc_source:
|
|
3622
|
-
positive_source_port_id:
|
|
3623
|
-
negative_source_port_id:
|
|
3624
|
-
positive_source_net_id:
|
|
3625
|
-
negative_source_net_id:
|
|
3637
|
+
is_dc_source: z161.literal(true).optional().default(true),
|
|
3638
|
+
positive_source_port_id: z161.string().optional(),
|
|
3639
|
+
negative_source_port_id: z161.string().optional(),
|
|
3640
|
+
positive_source_net_id: z161.string().optional(),
|
|
3641
|
+
negative_source_net_id: z161.string().optional(),
|
|
3626
3642
|
current
|
|
3627
3643
|
}).describe("Defines a DC current source for simulation");
|
|
3628
|
-
var simulation_ac_current_source =
|
|
3629
|
-
type:
|
|
3644
|
+
var simulation_ac_current_source = z161.object({
|
|
3645
|
+
type: z161.literal("simulation_current_source"),
|
|
3630
3646
|
simulation_current_source_id: getZodPrefixedIdWithDefault(
|
|
3631
3647
|
"simulation_current_source"
|
|
3632
3648
|
),
|
|
3633
|
-
is_dc_source:
|
|
3634
|
-
terminal1_source_port_id:
|
|
3635
|
-
terminal2_source_port_id:
|
|
3636
|
-
terminal1_source_net_id:
|
|
3637
|
-
terminal2_source_net_id:
|
|
3649
|
+
is_dc_source: z161.literal(false),
|
|
3650
|
+
terminal1_source_port_id: z161.string().optional(),
|
|
3651
|
+
terminal2_source_port_id: z161.string().optional(),
|
|
3652
|
+
terminal1_source_net_id: z161.string().optional(),
|
|
3653
|
+
terminal2_source_net_id: z161.string().optional(),
|
|
3638
3654
|
current: current.optional(),
|
|
3639
3655
|
frequency: frequency.optional(),
|
|
3640
3656
|
peak_to_peak_current: current.optional(),
|
|
@@ -3642,25 +3658,25 @@ var simulation_ac_current_source = z160.object({
|
|
|
3642
3658
|
phase: rotation.optional(),
|
|
3643
3659
|
duty_cycle: percentage2.optional()
|
|
3644
3660
|
}).describe("Defines an AC current source for simulation");
|
|
3645
|
-
var simulation_current_source =
|
|
3661
|
+
var simulation_current_source = z161.union([simulation_dc_current_source, simulation_ac_current_source]).describe("Defines a current source for simulation");
|
|
3646
3662
|
expectTypesMatch(true);
|
|
3647
3663
|
expectTypesMatch(true);
|
|
3648
3664
|
expectTypesMatch(true);
|
|
3649
3665
|
|
|
3650
3666
|
// src/simulation/simulation_experiment.ts
|
|
3651
|
-
import { z as
|
|
3652
|
-
var experiment_type =
|
|
3653
|
-
|
|
3654
|
-
|
|
3655
|
-
|
|
3656
|
-
|
|
3667
|
+
import { z as z162 } from "zod";
|
|
3668
|
+
var experiment_type = z162.union([
|
|
3669
|
+
z162.literal("spice_dc_sweep"),
|
|
3670
|
+
z162.literal("spice_dc_operating_point"),
|
|
3671
|
+
z162.literal("spice_transient_analysis"),
|
|
3672
|
+
z162.literal("spice_ac_analysis")
|
|
3657
3673
|
]);
|
|
3658
|
-
var simulation_experiment =
|
|
3659
|
-
type:
|
|
3674
|
+
var simulation_experiment = z162.object({
|
|
3675
|
+
type: z162.literal("simulation_experiment"),
|
|
3660
3676
|
simulation_experiment_id: getZodPrefixedIdWithDefault(
|
|
3661
3677
|
"simulation_experiment"
|
|
3662
3678
|
),
|
|
3663
|
-
name:
|
|
3679
|
+
name: z162.string(),
|
|
3664
3680
|
experiment_type,
|
|
3665
3681
|
time_per_step: duration_ms.optional(),
|
|
3666
3682
|
start_time_ms: ms.optional(),
|
|
@@ -3669,53 +3685,53 @@ var simulation_experiment = z161.object({
|
|
|
3669
3685
|
expectTypesMatch(true);
|
|
3670
3686
|
|
|
3671
3687
|
// src/simulation/simulation_transient_voltage_graph.ts
|
|
3672
|
-
import { z as
|
|
3673
|
-
var simulation_transient_voltage_graph =
|
|
3674
|
-
type:
|
|
3688
|
+
import { z as z163 } from "zod";
|
|
3689
|
+
var simulation_transient_voltage_graph = z163.object({
|
|
3690
|
+
type: z163.literal("simulation_transient_voltage_graph"),
|
|
3675
3691
|
simulation_transient_voltage_graph_id: getZodPrefixedIdWithDefault(
|
|
3676
3692
|
"simulation_transient_voltage_graph"
|
|
3677
3693
|
),
|
|
3678
|
-
simulation_experiment_id:
|
|
3679
|
-
timestamps_ms:
|
|
3680
|
-
voltage_levels:
|
|
3681
|
-
source_component_id:
|
|
3682
|
-
subcircuit_connectivity_map_key:
|
|
3694
|
+
simulation_experiment_id: z163.string(),
|
|
3695
|
+
timestamps_ms: z163.array(z163.number()).optional(),
|
|
3696
|
+
voltage_levels: z163.array(z163.number()),
|
|
3697
|
+
source_component_id: z163.string().optional(),
|
|
3698
|
+
subcircuit_connectivity_map_key: z163.string().optional(),
|
|
3683
3699
|
time_per_step: duration_ms,
|
|
3684
3700
|
start_time_ms: ms,
|
|
3685
3701
|
end_time_ms: ms,
|
|
3686
|
-
name:
|
|
3687
|
-
color:
|
|
3702
|
+
name: z163.string().optional(),
|
|
3703
|
+
color: z163.string().optional()
|
|
3688
3704
|
}).describe("Stores voltage measurements over time for a simulation");
|
|
3689
3705
|
expectTypesMatch(true);
|
|
3690
3706
|
|
|
3691
3707
|
// src/simulation/simulation_switch.ts
|
|
3692
|
-
import { z as
|
|
3693
|
-
var simulation_switch =
|
|
3694
|
-
type:
|
|
3708
|
+
import { z as z164 } from "zod";
|
|
3709
|
+
var simulation_switch = z164.object({
|
|
3710
|
+
type: z164.literal("simulation_switch"),
|
|
3695
3711
|
simulation_switch_id: getZodPrefixedIdWithDefault("simulation_switch"),
|
|
3696
|
-
source_component_id:
|
|
3712
|
+
source_component_id: z164.string().optional(),
|
|
3697
3713
|
closes_at: ms.optional(),
|
|
3698
3714
|
opens_at: ms.optional(),
|
|
3699
|
-
starts_closed:
|
|
3715
|
+
starts_closed: z164.boolean().optional(),
|
|
3700
3716
|
switching_frequency: frequency.optional()
|
|
3701
3717
|
}).describe("Defines a switch for simulation timing control");
|
|
3702
3718
|
expectTypesMatch(true);
|
|
3703
3719
|
|
|
3704
3720
|
// src/simulation/simulation_voltage_probe.ts
|
|
3705
|
-
import { z as
|
|
3706
|
-
var simulation_voltage_probe =
|
|
3707
|
-
type:
|
|
3721
|
+
import { z as z165 } from "zod";
|
|
3722
|
+
var simulation_voltage_probe = z165.object({
|
|
3723
|
+
type: z165.literal("simulation_voltage_probe"),
|
|
3708
3724
|
simulation_voltage_probe_id: getZodPrefixedIdWithDefault(
|
|
3709
3725
|
"simulation_voltage_probe"
|
|
3710
3726
|
),
|
|
3711
|
-
source_component_id:
|
|
3712
|
-
name:
|
|
3713
|
-
signal_input_source_port_id:
|
|
3714
|
-
signal_input_source_net_id:
|
|
3715
|
-
reference_input_source_port_id:
|
|
3716
|
-
reference_input_source_net_id:
|
|
3717
|
-
subcircuit_id:
|
|
3718
|
-
color:
|
|
3727
|
+
source_component_id: z165.string().optional(),
|
|
3728
|
+
name: z165.string().optional(),
|
|
3729
|
+
signal_input_source_port_id: z165.string().optional(),
|
|
3730
|
+
signal_input_source_net_id: z165.string().optional(),
|
|
3731
|
+
reference_input_source_port_id: z165.string().optional(),
|
|
3732
|
+
reference_input_source_net_id: z165.string().optional(),
|
|
3733
|
+
subcircuit_id: z165.string().optional(),
|
|
3734
|
+
color: z165.string().optional()
|
|
3719
3735
|
}).describe(
|
|
3720
3736
|
"Defines a voltage probe for simulation. If a reference input is not provided, it measures against ground. If a reference input is provided, it measures the differential voltage between two points."
|
|
3721
3737
|
).superRefine((data, ctx) => {
|
|
@@ -3725,20 +3741,20 @@ var simulation_voltage_probe = z164.object({
|
|
|
3725
3741
|
const has_nets = !!data.signal_input_source_net_id || !!data.reference_input_source_net_id;
|
|
3726
3742
|
if (has_ports && has_nets) {
|
|
3727
3743
|
ctx.addIssue({
|
|
3728
|
-
code:
|
|
3744
|
+
code: z165.ZodIssueCode.custom,
|
|
3729
3745
|
message: "Cannot mix port and net connections in a differential probe."
|
|
3730
3746
|
});
|
|
3731
3747
|
} else if (has_ports) {
|
|
3732
3748
|
if (!data.signal_input_source_port_id || !data.reference_input_source_port_id) {
|
|
3733
3749
|
ctx.addIssue({
|
|
3734
|
-
code:
|
|
3750
|
+
code: z165.ZodIssueCode.custom,
|
|
3735
3751
|
message: "Differential port probe requires both signal_input_source_port_id and reference_input_source_port_id."
|
|
3736
3752
|
});
|
|
3737
3753
|
}
|
|
3738
3754
|
} else if (has_nets) {
|
|
3739
3755
|
if (!data.signal_input_source_net_id || !data.reference_input_source_net_id) {
|
|
3740
3756
|
ctx.addIssue({
|
|
3741
|
-
code:
|
|
3757
|
+
code: z165.ZodIssueCode.custom,
|
|
3742
3758
|
message: "Differential net probe requires both signal_input_source_net_id and reference_input_source_net_id."
|
|
3743
3759
|
});
|
|
3744
3760
|
}
|
|
@@ -3746,7 +3762,7 @@ var simulation_voltage_probe = z164.object({
|
|
|
3746
3762
|
} else {
|
|
3747
3763
|
if (!!data.signal_input_source_port_id === !!data.signal_input_source_net_id) {
|
|
3748
3764
|
ctx.addIssue({
|
|
3749
|
-
code:
|
|
3765
|
+
code: z165.ZodIssueCode.custom,
|
|
3750
3766
|
message: "A voltage probe must have exactly one of signal_input_source_port_id or signal_input_source_net_id."
|
|
3751
3767
|
});
|
|
3752
3768
|
}
|
|
@@ -3755,35 +3771,35 @@ var simulation_voltage_probe = z164.object({
|
|
|
3755
3771
|
expectTypesMatch(true);
|
|
3756
3772
|
|
|
3757
3773
|
// src/simulation/simulation_unknown_experiment_error.ts
|
|
3758
|
-
import { z as
|
|
3774
|
+
import { z as z166 } from "zod";
|
|
3759
3775
|
var simulation_unknown_experiment_error = base_circuit_json_error.extend({
|
|
3760
|
-
type:
|
|
3776
|
+
type: z166.literal("simulation_unknown_experiment_error"),
|
|
3761
3777
|
simulation_unknown_experiment_error_id: getZodPrefixedIdWithDefault(
|
|
3762
3778
|
"simulation_unknown_experiment_error"
|
|
3763
3779
|
),
|
|
3764
|
-
error_type:
|
|
3765
|
-
simulation_experiment_id:
|
|
3766
|
-
subcircuit_id:
|
|
3780
|
+
error_type: z166.literal("simulation_unknown_experiment_error").default("simulation_unknown_experiment_error"),
|
|
3781
|
+
simulation_experiment_id: z166.string().optional(),
|
|
3782
|
+
subcircuit_id: z166.string().optional()
|
|
3767
3783
|
}).describe("An unknown error occurred during the simulation experiment.");
|
|
3768
3784
|
expectTypesMatch(true);
|
|
3769
3785
|
|
|
3770
3786
|
// src/simulation/simulation_op_amp.ts
|
|
3771
|
-
import { z as
|
|
3772
|
-
var simulation_op_amp =
|
|
3773
|
-
type:
|
|
3787
|
+
import { z as z167 } from "zod";
|
|
3788
|
+
var simulation_op_amp = z167.object({
|
|
3789
|
+
type: z167.literal("simulation_op_amp"),
|
|
3774
3790
|
simulation_op_amp_id: getZodPrefixedIdWithDefault("simulation_op_amp"),
|
|
3775
|
-
source_component_id:
|
|
3776
|
-
inverting_input_source_port_id:
|
|
3777
|
-
non_inverting_input_source_port_id:
|
|
3778
|
-
output_source_port_id:
|
|
3779
|
-
positive_supply_source_port_id:
|
|
3780
|
-
negative_supply_source_port_id:
|
|
3791
|
+
source_component_id: z167.string().optional(),
|
|
3792
|
+
inverting_input_source_port_id: z167.string(),
|
|
3793
|
+
non_inverting_input_source_port_id: z167.string(),
|
|
3794
|
+
output_source_port_id: z167.string(),
|
|
3795
|
+
positive_supply_source_port_id: z167.string(),
|
|
3796
|
+
negative_supply_source_port_id: z167.string()
|
|
3781
3797
|
}).describe("Defines a simple ideal operational amplifier for simulation");
|
|
3782
3798
|
expectTypesMatch(true);
|
|
3783
3799
|
|
|
3784
3800
|
// src/any_circuit_element.ts
|
|
3785
|
-
import { z as
|
|
3786
|
-
var any_circuit_element =
|
|
3801
|
+
import { z as z168 } from "zod";
|
|
3802
|
+
var any_circuit_element = z168.union([
|
|
3787
3803
|
source_trace,
|
|
3788
3804
|
source_port,
|
|
3789
3805
|
source_component_internal_connection,
|
|
@@ -3822,6 +3838,7 @@ var any_circuit_element = z167.union([
|
|
|
3822
3838
|
source_pin_must_be_connected_error,
|
|
3823
3839
|
unknown_error_finding_part,
|
|
3824
3840
|
source_i2c_misconfigured_error,
|
|
3841
|
+
source_component_misconfigured_error,
|
|
3825
3842
|
source_ambiguous_port_reference,
|
|
3826
3843
|
pcb_component,
|
|
3827
3844
|
pcb_hole,
|
|
@@ -4104,6 +4121,7 @@ export {
|
|
|
4104
4121
|
source_board,
|
|
4105
4122
|
source_component_base,
|
|
4106
4123
|
source_component_internal_connection,
|
|
4124
|
+
source_component_misconfigured_error,
|
|
4107
4125
|
source_component_pins_underspecified_warning,
|
|
4108
4126
|
source_failed_to_create_component_error,
|
|
4109
4127
|
source_group,
|