circuit-json 0.0.282 → 0.0.284

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1808,6 +1808,7 @@ import { z as z81 } from "zod";
1808
1808
  var pcb_board = z81.object({
1809
1809
  type: z81.literal("pcb_board"),
1810
1810
  pcb_board_id: getZodPrefixedIdWithDefault("pcb_board"),
1811
+ pcb_panel_id: z81.string().optional(),
1811
1812
  is_subcircuit: z81.boolean().optional(),
1812
1813
  subcircuit_id: z81.string().optional(),
1813
1814
  width: length,
@@ -1820,37 +1821,48 @@ var pcb_board = z81.object({
1820
1821
  }).describe("Defines the board outline of the PCB");
1821
1822
  expectTypesMatch(true);
1822
1823
 
1823
- // src/pcb/pcb_placement_error.ts
1824
+ // src/pcb/pcb_panel.ts
1824
1825
  import { z as z82 } from "zod";
1825
- var pcb_placement_error = z82.object({
1826
- type: z82.literal("pcb_placement_error"),
1826
+ var pcb_panel = z82.object({
1827
+ type: z82.literal("pcb_panel"),
1828
+ pcb_panel_id: getZodPrefixedIdWithDefault("pcb_panel"),
1829
+ width: length,
1830
+ height: length,
1831
+ covered_with_solder_mask: z82.boolean().optional().default(true)
1832
+ }).describe("Defines a PCB panel that can contain multiple boards");
1833
+ expectTypesMatch(true);
1834
+
1835
+ // src/pcb/pcb_placement_error.ts
1836
+ import { z as z83 } from "zod";
1837
+ var pcb_placement_error = z83.object({
1838
+ type: z83.literal("pcb_placement_error"),
1827
1839
  pcb_placement_error_id: getZodPrefixedIdWithDefault("pcb_placement_error"),
1828
- error_type: z82.literal("pcb_placement_error").default("pcb_placement_error"),
1829
- message: z82.string(),
1830
- subcircuit_id: z82.string().optional()
1840
+ error_type: z83.literal("pcb_placement_error").default("pcb_placement_error"),
1841
+ message: z83.string(),
1842
+ subcircuit_id: z83.string().optional()
1831
1843
  }).describe("Defines a placement error on the PCB");
1832
1844
  expectTypesMatch(true);
1833
1845
 
1834
1846
  // src/pcb/pcb_trace_hint.ts
1835
- import { z as z83 } from "zod";
1836
- var pcb_trace_hint = z83.object({
1837
- type: z83.literal("pcb_trace_hint"),
1847
+ import { z as z84 } from "zod";
1848
+ var pcb_trace_hint = z84.object({
1849
+ type: z84.literal("pcb_trace_hint"),
1838
1850
  pcb_trace_hint_id: getZodPrefixedIdWithDefault("pcb_trace_hint"),
1839
- pcb_port_id: z83.string(),
1840
- pcb_component_id: z83.string(),
1841
- route: z83.array(route_hint_point),
1842
- subcircuit_id: z83.string().optional()
1851
+ pcb_port_id: z84.string(),
1852
+ pcb_component_id: z84.string(),
1853
+ route: z84.array(route_hint_point),
1854
+ subcircuit_id: z84.string().optional()
1843
1855
  }).describe("A hint that can be used during generation of a PCB trace");
1844
1856
  expectTypesMatch(true);
1845
1857
 
1846
1858
  // src/pcb/pcb_silkscreen_line.ts
1847
- import { z as z84 } from "zod";
1848
- var pcb_silkscreen_line = z84.object({
1849
- type: z84.literal("pcb_silkscreen_line"),
1859
+ import { z as z85 } from "zod";
1860
+ var pcb_silkscreen_line = z85.object({
1861
+ type: z85.literal("pcb_silkscreen_line"),
1850
1862
  pcb_silkscreen_line_id: getZodPrefixedIdWithDefault("pcb_silkscreen_line"),
1851
- pcb_component_id: z84.string(),
1852
- pcb_group_id: z84.string().optional(),
1853
- subcircuit_id: z84.string().optional(),
1863
+ pcb_component_id: z85.string(),
1864
+ pcb_group_id: z85.string().optional(),
1865
+ subcircuit_id: z85.string().optional(),
1854
1866
  stroke_width: distance.default("0.1mm"),
1855
1867
  x1: distance,
1856
1868
  y1: distance,
@@ -1861,32 +1873,32 @@ var pcb_silkscreen_line = z84.object({
1861
1873
  expectTypesMatch(true);
1862
1874
 
1863
1875
  // src/pcb/pcb_silkscreen_path.ts
1864
- import { z as z85 } from "zod";
1865
- var pcb_silkscreen_path = z85.object({
1866
- type: z85.literal("pcb_silkscreen_path"),
1876
+ import { z as z86 } from "zod";
1877
+ var pcb_silkscreen_path = z86.object({
1878
+ type: z86.literal("pcb_silkscreen_path"),
1867
1879
  pcb_silkscreen_path_id: getZodPrefixedIdWithDefault("pcb_silkscreen_path"),
1868
- pcb_component_id: z85.string(),
1869
- pcb_group_id: z85.string().optional(),
1870
- subcircuit_id: z85.string().optional(),
1880
+ pcb_component_id: z86.string(),
1881
+ pcb_group_id: z86.string().optional(),
1882
+ subcircuit_id: z86.string().optional(),
1871
1883
  layer: visible_layer,
1872
- route: z85.array(point),
1884
+ route: z86.array(point),
1873
1885
  stroke_width: length
1874
1886
  }).describe("Defines a silkscreen path on the PCB");
1875
1887
  expectTypesMatch(true);
1876
1888
 
1877
1889
  // src/pcb/pcb_silkscreen_text.ts
1878
- import { z as z86 } from "zod";
1879
- var pcb_silkscreen_text = z86.object({
1880
- type: z86.literal("pcb_silkscreen_text"),
1890
+ import { z as z87 } from "zod";
1891
+ var pcb_silkscreen_text = z87.object({
1892
+ type: z87.literal("pcb_silkscreen_text"),
1881
1893
  pcb_silkscreen_text_id: getZodPrefixedIdWithDefault("pcb_silkscreen_text"),
1882
- pcb_group_id: z86.string().optional(),
1883
- subcircuit_id: z86.string().optional(),
1884
- font: z86.literal("tscircuit2024").default("tscircuit2024"),
1894
+ pcb_group_id: z87.string().optional(),
1895
+ subcircuit_id: z87.string().optional(),
1896
+ font: z87.literal("tscircuit2024").default("tscircuit2024"),
1885
1897
  font_size: distance.default("0.2mm"),
1886
- pcb_component_id: z86.string(),
1887
- text: z86.string(),
1888
- is_knockout: z86.boolean().default(false).optional(),
1889
- knockout_padding: z86.object({
1898
+ pcb_component_id: z87.string(),
1899
+ text: z87.string(),
1900
+ is_knockout: z87.boolean().default(false).optional(),
1901
+ knockout_padding: z87.object({
1890
1902
  left: length,
1891
1903
  top: length,
1892
1904
  bottom: length,
@@ -1897,43 +1909,43 @@ var pcb_silkscreen_text = z86.object({
1897
1909
  bottom: "0.2mm",
1898
1910
  right: "0.2mm"
1899
1911
  }).optional(),
1900
- ccw_rotation: z86.number().optional(),
1912
+ ccw_rotation: z87.number().optional(),
1901
1913
  layer: layer_ref,
1902
- is_mirrored: z86.boolean().default(false).optional(),
1914
+ is_mirrored: z87.boolean().default(false).optional(),
1903
1915
  anchor_position: point.default({ x: 0, y: 0 }),
1904
1916
  anchor_alignment: ninePointAnchor.default("center")
1905
1917
  }).describe("Defines silkscreen text on the PCB");
1906
1918
  expectTypesMatch(true);
1907
1919
 
1908
1920
  // src/pcb/pcb_silkscreen_rect.ts
1909
- import { z as z87 } from "zod";
1910
- var pcb_silkscreen_rect = z87.object({
1911
- type: z87.literal("pcb_silkscreen_rect"),
1921
+ import { z as z88 } from "zod";
1922
+ var pcb_silkscreen_rect = z88.object({
1923
+ type: z88.literal("pcb_silkscreen_rect"),
1912
1924
  pcb_silkscreen_rect_id: getZodPrefixedIdWithDefault("pcb_silkscreen_rect"),
1913
- pcb_component_id: z87.string(),
1914
- pcb_group_id: z87.string().optional(),
1915
- subcircuit_id: z87.string().optional(),
1925
+ pcb_component_id: z88.string(),
1926
+ pcb_group_id: z88.string().optional(),
1927
+ subcircuit_id: z88.string().optional(),
1916
1928
  center: point,
1917
1929
  width: length,
1918
1930
  height: length,
1919
1931
  layer: layer_ref,
1920
1932
  stroke_width: length.default("1mm"),
1921
- is_filled: z87.boolean().default(true).optional(),
1922
- has_stroke: z87.boolean().optional(),
1923
- is_stroke_dashed: z87.boolean().optional()
1933
+ is_filled: z88.boolean().default(true).optional(),
1934
+ has_stroke: z88.boolean().optional(),
1935
+ is_stroke_dashed: z88.boolean().optional()
1924
1936
  }).describe("Defines a silkscreen rect on the PCB");
1925
1937
  expectTypesMatch(true);
1926
1938
 
1927
1939
  // src/pcb/pcb_silkscreen_circle.ts
1928
- import { z as z88 } from "zod";
1929
- var pcb_silkscreen_circle = z88.object({
1930
- type: z88.literal("pcb_silkscreen_circle"),
1940
+ import { z as z89 } from "zod";
1941
+ var pcb_silkscreen_circle = z89.object({
1942
+ type: z89.literal("pcb_silkscreen_circle"),
1931
1943
  pcb_silkscreen_circle_id: getZodPrefixedIdWithDefault(
1932
1944
  "pcb_silkscreen_circle"
1933
1945
  ),
1934
- pcb_component_id: z88.string(),
1935
- pcb_group_id: z88.string().optional(),
1936
- subcircuit_id: z88.string().optional(),
1946
+ pcb_component_id: z89.string(),
1947
+ pcb_group_id: z89.string().optional(),
1948
+ subcircuit_id: z89.string().optional(),
1937
1949
  center: point,
1938
1950
  radius: length,
1939
1951
  layer: visible_layer,
@@ -1942,13 +1954,13 @@ var pcb_silkscreen_circle = z88.object({
1942
1954
  expectTypesMatch(true);
1943
1955
 
1944
1956
  // src/pcb/pcb_silkscreen_oval.ts
1945
- import { z as z89 } from "zod";
1946
- var pcb_silkscreen_oval = z89.object({
1947
- type: z89.literal("pcb_silkscreen_oval"),
1957
+ import { z as z90 } from "zod";
1958
+ var pcb_silkscreen_oval = z90.object({
1959
+ type: z90.literal("pcb_silkscreen_oval"),
1948
1960
  pcb_silkscreen_oval_id: getZodPrefixedIdWithDefault("pcb_silkscreen_oval"),
1949
- pcb_component_id: z89.string(),
1950
- pcb_group_id: z89.string().optional(),
1951
- subcircuit_id: z89.string().optional(),
1961
+ pcb_component_id: z90.string(),
1962
+ pcb_group_id: z90.string().optional(),
1963
+ subcircuit_id: z90.string().optional(),
1952
1964
  center: point,
1953
1965
  radius_x: distance,
1954
1966
  radius_y: distance,
@@ -1957,233 +1969,233 @@ var pcb_silkscreen_oval = z89.object({
1957
1969
  expectTypesMatch(true);
1958
1970
 
1959
1971
  // src/pcb/pcb_fabrication_note_text.ts
1960
- import { z as z90 } from "zod";
1961
- var pcb_fabrication_note_text = z90.object({
1962
- type: z90.literal("pcb_fabrication_note_text"),
1972
+ import { z as z91 } from "zod";
1973
+ var pcb_fabrication_note_text = z91.object({
1974
+ type: z91.literal("pcb_fabrication_note_text"),
1963
1975
  pcb_fabrication_note_text_id: getZodPrefixedIdWithDefault(
1964
1976
  "pcb_fabrication_note_text"
1965
1977
  ),
1966
- subcircuit_id: z90.string().optional(),
1967
- pcb_group_id: z90.string().optional(),
1968
- font: z90.literal("tscircuit2024").default("tscircuit2024"),
1978
+ subcircuit_id: z91.string().optional(),
1979
+ pcb_group_id: z91.string().optional(),
1980
+ font: z91.literal("tscircuit2024").default("tscircuit2024"),
1969
1981
  font_size: distance.default("1mm"),
1970
- pcb_component_id: z90.string(),
1971
- text: z90.string(),
1982
+ pcb_component_id: z91.string(),
1983
+ text: z91.string(),
1972
1984
  layer: visible_layer,
1973
1985
  anchor_position: point.default({ x: 0, y: 0 }),
1974
- anchor_alignment: z90.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
1975
- color: z90.string().optional()
1986
+ anchor_alignment: z91.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
1987
+ color: z91.string().optional()
1976
1988
  }).describe(
1977
1989
  "Defines a fabrication note in text on the PCB, useful for leaving notes for assemblers or fabricators"
1978
1990
  );
1979
1991
  expectTypesMatch(true);
1980
1992
 
1981
1993
  // src/pcb/pcb_fabrication_note_path.ts
1982
- import { z as z91 } from "zod";
1983
- var pcb_fabrication_note_path = z91.object({
1984
- type: z91.literal("pcb_fabrication_note_path"),
1994
+ import { z as z92 } from "zod";
1995
+ var pcb_fabrication_note_path = z92.object({
1996
+ type: z92.literal("pcb_fabrication_note_path"),
1985
1997
  pcb_fabrication_note_path_id: getZodPrefixedIdWithDefault(
1986
1998
  "pcb_fabrication_note_path"
1987
1999
  ),
1988
- pcb_component_id: z91.string(),
1989
- subcircuit_id: z91.string().optional(),
2000
+ pcb_component_id: z92.string(),
2001
+ subcircuit_id: z92.string().optional(),
1990
2002
  layer: layer_ref,
1991
- route: z91.array(point),
2003
+ route: z92.array(point),
1992
2004
  stroke_width: length,
1993
- color: z91.string().optional()
2005
+ color: z92.string().optional()
1994
2006
  }).describe(
1995
2007
  "Defines a fabrication path on the PCB for fabricators or assemblers"
1996
2008
  );
1997
2009
  expectTypesMatch(true);
1998
2010
 
1999
2011
  // src/pcb/pcb_fabrication_note_rect.ts
2000
- import { z as z92 } from "zod";
2001
- var pcb_fabrication_note_rect = z92.object({
2002
- type: z92.literal("pcb_fabrication_note_rect"),
2012
+ import { z as z93 } from "zod";
2013
+ var pcb_fabrication_note_rect = z93.object({
2014
+ type: z93.literal("pcb_fabrication_note_rect"),
2003
2015
  pcb_fabrication_note_rect_id: getZodPrefixedIdWithDefault(
2004
2016
  "pcb_fabrication_note_rect"
2005
2017
  ),
2006
- pcb_component_id: z92.string(),
2007
- pcb_group_id: z92.string().optional(),
2008
- subcircuit_id: z92.string().optional(),
2018
+ pcb_component_id: z93.string(),
2019
+ pcb_group_id: z93.string().optional(),
2020
+ subcircuit_id: z93.string().optional(),
2009
2021
  center: point,
2010
2022
  width: length,
2011
2023
  height: length,
2012
2024
  layer: visible_layer,
2013
2025
  stroke_width: length.default("0.1mm"),
2014
- is_filled: z92.boolean().optional(),
2015
- has_stroke: z92.boolean().optional(),
2016
- is_stroke_dashed: z92.boolean().optional(),
2017
- color: z92.string().optional()
2026
+ is_filled: z93.boolean().optional(),
2027
+ has_stroke: z93.boolean().optional(),
2028
+ is_stroke_dashed: z93.boolean().optional(),
2029
+ color: z93.string().optional()
2018
2030
  }).describe("Defines a fabrication note rectangle on the PCB");
2019
2031
  expectTypesMatch(true);
2020
2032
 
2021
2033
  // src/pcb/pcb_fabrication_note_dimension.ts
2022
- import { z as z93 } from "zod";
2023
- var pcb_fabrication_note_dimension = z93.object({
2024
- type: z93.literal("pcb_fabrication_note_dimension"),
2034
+ import { z as z94 } from "zod";
2035
+ var pcb_fabrication_note_dimension = z94.object({
2036
+ type: z94.literal("pcb_fabrication_note_dimension"),
2025
2037
  pcb_fabrication_note_dimension_id: getZodPrefixedIdWithDefault(
2026
2038
  "pcb_fabrication_note_dimension"
2027
2039
  ),
2028
- pcb_component_id: z93.string(),
2029
- pcb_group_id: z93.string().optional(),
2030
- subcircuit_id: z93.string().optional(),
2040
+ pcb_component_id: z94.string(),
2041
+ pcb_group_id: z94.string().optional(),
2042
+ subcircuit_id: z94.string().optional(),
2031
2043
  layer: visible_layer,
2032
2044
  from: point,
2033
2045
  to: point,
2034
- text: z93.string().optional(),
2046
+ text: z94.string().optional(),
2035
2047
  offset: length.optional(),
2036
- font: z93.literal("tscircuit2024").default("tscircuit2024"),
2048
+ font: z94.literal("tscircuit2024").default("tscircuit2024"),
2037
2049
  font_size: length.default("1mm"),
2038
- color: z93.string().optional(),
2050
+ color: z94.string().optional(),
2039
2051
  arrow_size: length.default("1mm")
2040
2052
  }).describe("Defines a measurement annotation within PCB fabrication notes");
2041
2053
  expectTypesMatch(true);
2042
2054
 
2043
2055
  // src/pcb/pcb_note_text.ts
2044
- import { z as z94 } from "zod";
2045
- var pcb_note_text = z94.object({
2046
- type: z94.literal("pcb_note_text"),
2056
+ import { z as z95 } from "zod";
2057
+ var pcb_note_text = z95.object({
2058
+ type: z95.literal("pcb_note_text"),
2047
2059
  pcb_note_text_id: getZodPrefixedIdWithDefault("pcb_note_text"),
2048
- pcb_component_id: z94.string().optional(),
2049
- pcb_group_id: z94.string().optional(),
2050
- subcircuit_id: z94.string().optional(),
2051
- font: z94.literal("tscircuit2024").default("tscircuit2024"),
2060
+ pcb_component_id: z95.string().optional(),
2061
+ pcb_group_id: z95.string().optional(),
2062
+ subcircuit_id: z95.string().optional(),
2063
+ font: z95.literal("tscircuit2024").default("tscircuit2024"),
2052
2064
  font_size: distance.default("1mm"),
2053
- text: z94.string(),
2065
+ text: z95.string(),
2054
2066
  anchor_position: point.default({ x: 0, y: 0 }),
2055
- anchor_alignment: z94.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
2056
- color: z94.string().optional()
2067
+ anchor_alignment: z95.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
2068
+ color: z95.string().optional()
2057
2069
  }).describe("Defines a documentation note in text on the PCB");
2058
2070
  expectTypesMatch(true);
2059
2071
 
2060
2072
  // src/pcb/pcb_note_rect.ts
2061
- import { z as z95 } from "zod";
2062
- var pcb_note_rect = z95.object({
2063
- type: z95.literal("pcb_note_rect"),
2073
+ import { z as z96 } from "zod";
2074
+ var pcb_note_rect = z96.object({
2075
+ type: z96.literal("pcb_note_rect"),
2064
2076
  pcb_note_rect_id: getZodPrefixedIdWithDefault("pcb_note_rect"),
2065
- pcb_component_id: z95.string().optional(),
2066
- pcb_group_id: z95.string().optional(),
2067
- subcircuit_id: z95.string().optional(),
2077
+ pcb_component_id: z96.string().optional(),
2078
+ pcb_group_id: z96.string().optional(),
2079
+ subcircuit_id: z96.string().optional(),
2068
2080
  center: point,
2069
2081
  width: length,
2070
2082
  height: length,
2071
2083
  stroke_width: length.default("0.1mm"),
2072
- is_filled: z95.boolean().optional(),
2073
- has_stroke: z95.boolean().optional(),
2074
- is_stroke_dashed: z95.boolean().optional(),
2075
- color: z95.string().optional()
2084
+ is_filled: z96.boolean().optional(),
2085
+ has_stroke: z96.boolean().optional(),
2086
+ is_stroke_dashed: z96.boolean().optional(),
2087
+ color: z96.string().optional()
2076
2088
  }).describe("Defines a rectangular documentation note on the PCB");
2077
2089
  expectTypesMatch(true);
2078
2090
 
2079
2091
  // src/pcb/pcb_note_path.ts
2080
- import { z as z96 } from "zod";
2081
- var pcb_note_path = z96.object({
2082
- type: z96.literal("pcb_note_path"),
2092
+ import { z as z97 } from "zod";
2093
+ var pcb_note_path = z97.object({
2094
+ type: z97.literal("pcb_note_path"),
2083
2095
  pcb_note_path_id: getZodPrefixedIdWithDefault("pcb_note_path"),
2084
- pcb_component_id: z96.string().optional(),
2085
- pcb_group_id: z96.string().optional(),
2086
- subcircuit_id: z96.string().optional(),
2087
- route: z96.array(point),
2096
+ pcb_component_id: z97.string().optional(),
2097
+ pcb_group_id: z97.string().optional(),
2098
+ subcircuit_id: z97.string().optional(),
2099
+ route: z97.array(point),
2088
2100
  stroke_width: length.default("0.1mm"),
2089
- color: z96.string().optional()
2101
+ color: z97.string().optional()
2090
2102
  }).describe("Defines a polyline documentation note on the PCB");
2091
2103
  expectTypesMatch(true);
2092
2104
 
2093
2105
  // src/pcb/pcb_note_line.ts
2094
- import { z as z97 } from "zod";
2095
- var pcb_note_line = z97.object({
2096
- type: z97.literal("pcb_note_line"),
2106
+ import { z as z98 } from "zod";
2107
+ var pcb_note_line = z98.object({
2108
+ type: z98.literal("pcb_note_line"),
2097
2109
  pcb_note_line_id: getZodPrefixedIdWithDefault("pcb_note_line"),
2098
- pcb_component_id: z97.string().optional(),
2099
- pcb_group_id: z97.string().optional(),
2100
- subcircuit_id: z97.string().optional(),
2110
+ pcb_component_id: z98.string().optional(),
2111
+ pcb_group_id: z98.string().optional(),
2112
+ subcircuit_id: z98.string().optional(),
2101
2113
  x1: distance,
2102
2114
  y1: distance,
2103
2115
  x2: distance,
2104
2116
  y2: distance,
2105
2117
  stroke_width: distance.default("0.1mm"),
2106
- color: z97.string().optional(),
2107
- is_dashed: z97.boolean().optional()
2118
+ color: z98.string().optional(),
2119
+ is_dashed: z98.boolean().optional()
2108
2120
  }).describe("Defines a straight documentation note line on the PCB");
2109
2121
  expectTypesMatch(true);
2110
2122
 
2111
2123
  // src/pcb/pcb_note_dimension.ts
2112
- import { z as z98 } from "zod";
2113
- var pcb_note_dimension = z98.object({
2114
- type: z98.literal("pcb_note_dimension"),
2124
+ import { z as z99 } from "zod";
2125
+ var pcb_note_dimension = z99.object({
2126
+ type: z99.literal("pcb_note_dimension"),
2115
2127
  pcb_note_dimension_id: getZodPrefixedIdWithDefault("pcb_note_dimension"),
2116
- pcb_component_id: z98.string().optional(),
2117
- pcb_group_id: z98.string().optional(),
2118
- subcircuit_id: z98.string().optional(),
2128
+ pcb_component_id: z99.string().optional(),
2129
+ pcb_group_id: z99.string().optional(),
2130
+ subcircuit_id: z99.string().optional(),
2119
2131
  from: point,
2120
2132
  to: point,
2121
- text: z98.string().optional(),
2122
- font: z98.literal("tscircuit2024").default("tscircuit2024"),
2133
+ text: z99.string().optional(),
2134
+ font: z99.literal("tscircuit2024").default("tscircuit2024"),
2123
2135
  font_size: length.default("1mm"),
2124
- color: z98.string().optional(),
2136
+ color: z99.string().optional(),
2125
2137
  arrow_size: length.default("1mm")
2126
2138
  }).describe("Defines a measurement annotation within PCB documentation notes");
2127
2139
  expectTypesMatch(true);
2128
2140
 
2129
2141
  // src/pcb/pcb_footprint_overlap_error.ts
2130
- import { z as z99 } from "zod";
2131
- var pcb_footprint_overlap_error = z99.object({
2132
- type: z99.literal("pcb_footprint_overlap_error"),
2142
+ import { z as z100 } from "zod";
2143
+ var pcb_footprint_overlap_error = z100.object({
2144
+ type: z100.literal("pcb_footprint_overlap_error"),
2133
2145
  pcb_error_id: getZodPrefixedIdWithDefault("pcb_error"),
2134
- error_type: z99.literal("pcb_footprint_overlap_error").default("pcb_footprint_overlap_error"),
2135
- message: z99.string(),
2136
- pcb_smtpad_ids: z99.array(z99.string()).optional(),
2137
- pcb_plated_hole_ids: z99.array(z99.string()).optional(),
2138
- pcb_hole_ids: z99.array(z99.string()).optional(),
2139
- pcb_keepout_ids: z99.array(z99.string()).optional()
2146
+ error_type: z100.literal("pcb_footprint_overlap_error").default("pcb_footprint_overlap_error"),
2147
+ message: z100.string(),
2148
+ pcb_smtpad_ids: z100.array(z100.string()).optional(),
2149
+ pcb_plated_hole_ids: z100.array(z100.string()).optional(),
2150
+ pcb_hole_ids: z100.array(z100.string()).optional(),
2151
+ pcb_keepout_ids: z100.array(z100.string()).optional()
2140
2152
  }).describe("Error emitted when a pcb footprint overlaps with another element");
2141
2153
  expectTypesMatch(
2142
2154
  true
2143
2155
  );
2144
2156
 
2145
2157
  // src/pcb/pcb_keepout.ts
2146
- import { z as z100 } from "zod";
2147
- var pcb_keepout = z100.object({
2148
- type: z100.literal("pcb_keepout"),
2149
- shape: z100.literal("rect"),
2150
- pcb_group_id: z100.string().optional(),
2151
- subcircuit_id: z100.string().optional(),
2158
+ import { z as z101 } from "zod";
2159
+ var pcb_keepout = z101.object({
2160
+ type: z101.literal("pcb_keepout"),
2161
+ shape: z101.literal("rect"),
2162
+ pcb_group_id: z101.string().optional(),
2163
+ subcircuit_id: z101.string().optional(),
2152
2164
  center: point,
2153
2165
  width: distance,
2154
2166
  height: distance,
2155
- pcb_keepout_id: z100.string(),
2156
- layers: z100.array(z100.string()),
2167
+ pcb_keepout_id: z101.string(),
2168
+ layers: z101.array(z101.string()),
2157
2169
  // Specify layers where the keepout applies
2158
- description: z100.string().optional()
2170
+ description: z101.string().optional()
2159
2171
  // Optional description of the keepout
2160
2172
  }).or(
2161
- z100.object({
2162
- type: z100.literal("pcb_keepout"),
2163
- shape: z100.literal("circle"),
2164
- pcb_group_id: z100.string().optional(),
2165
- subcircuit_id: z100.string().optional(),
2173
+ z101.object({
2174
+ type: z101.literal("pcb_keepout"),
2175
+ shape: z101.literal("circle"),
2176
+ pcb_group_id: z101.string().optional(),
2177
+ subcircuit_id: z101.string().optional(),
2166
2178
  center: point,
2167
2179
  radius: distance,
2168
- pcb_keepout_id: z100.string(),
2169
- layers: z100.array(z100.string()),
2180
+ pcb_keepout_id: z101.string(),
2181
+ layers: z101.array(z101.string()),
2170
2182
  // Specify layers where the keepout applies
2171
- description: z100.string().optional()
2183
+ description: z101.string().optional()
2172
2184
  // Optional description of the keepout
2173
2185
  })
2174
2186
  );
2175
2187
  expectTypesMatch(true);
2176
2188
 
2177
2189
  // src/pcb/pcb_cutout.ts
2178
- import { z as z101 } from "zod";
2179
- var pcb_cutout_base = z101.object({
2180
- type: z101.literal("pcb_cutout"),
2190
+ import { z as z102 } from "zod";
2191
+ var pcb_cutout_base = z102.object({
2192
+ type: z102.literal("pcb_cutout"),
2181
2193
  pcb_cutout_id: getZodPrefixedIdWithDefault("pcb_cutout"),
2182
- pcb_group_id: z101.string().optional(),
2183
- subcircuit_id: z101.string().optional()
2194
+ pcb_group_id: z102.string().optional(),
2195
+ subcircuit_id: z102.string().optional()
2184
2196
  });
2185
2197
  var pcb_cutout_rect = pcb_cutout_base.extend({
2186
- shape: z101.literal("rect"),
2198
+ shape: z102.literal("rect"),
2187
2199
  center: point,
2188
2200
  width: length,
2189
2201
  height: length,
@@ -2191,17 +2203,17 @@ var pcb_cutout_rect = pcb_cutout_base.extend({
2191
2203
  });
2192
2204
  expectTypesMatch(true);
2193
2205
  var pcb_cutout_circle = pcb_cutout_base.extend({
2194
- shape: z101.literal("circle"),
2206
+ shape: z102.literal("circle"),
2195
2207
  center: point,
2196
2208
  radius: length
2197
2209
  });
2198
2210
  expectTypesMatch(true);
2199
2211
  var pcb_cutout_polygon = pcb_cutout_base.extend({
2200
- shape: z101.literal("polygon"),
2201
- points: z101.array(point)
2212
+ shape: z102.literal("polygon"),
2213
+ points: z102.array(point)
2202
2214
  });
2203
2215
  expectTypesMatch(true);
2204
- var pcb_cutout = z101.discriminatedUnion("shape", [
2216
+ var pcb_cutout = z102.discriminatedUnion("shape", [
2205
2217
  pcb_cutout_rect,
2206
2218
  pcb_cutout_circle,
2207
2219
  pcb_cutout_polygon
@@ -2209,119 +2221,119 @@ var pcb_cutout = z101.discriminatedUnion("shape", [
2209
2221
  expectTypesMatch(true);
2210
2222
 
2211
2223
  // src/pcb/pcb_missing_footprint_error.ts
2212
- import { z as z102 } from "zod";
2213
- var pcb_missing_footprint_error = z102.object({
2214
- type: z102.literal("pcb_missing_footprint_error"),
2224
+ import { z as z103 } from "zod";
2225
+ var pcb_missing_footprint_error = z103.object({
2226
+ type: z103.literal("pcb_missing_footprint_error"),
2215
2227
  pcb_missing_footprint_error_id: getZodPrefixedIdWithDefault(
2216
2228
  "pcb_missing_footprint_error"
2217
2229
  ),
2218
- pcb_group_id: z102.string().optional(),
2219
- subcircuit_id: z102.string().optional(),
2220
- error_type: z102.literal("pcb_missing_footprint_error").default("pcb_missing_footprint_error"),
2221
- source_component_id: z102.string(),
2222
- message: z102.string()
2230
+ pcb_group_id: z103.string().optional(),
2231
+ subcircuit_id: z103.string().optional(),
2232
+ error_type: z103.literal("pcb_missing_footprint_error").default("pcb_missing_footprint_error"),
2233
+ source_component_id: z103.string(),
2234
+ message: z103.string()
2223
2235
  }).describe("Defines a missing footprint error on the PCB");
2224
2236
  expectTypesMatch(
2225
2237
  true
2226
2238
  );
2227
2239
 
2228
2240
  // src/pcb/external_footprint_load_error.ts
2229
- import { z as z103 } from "zod";
2230
- var external_footprint_load_error = z103.object({
2231
- type: z103.literal("external_footprint_load_error"),
2241
+ import { z as z104 } from "zod";
2242
+ var external_footprint_load_error = z104.object({
2243
+ type: z104.literal("external_footprint_load_error"),
2232
2244
  external_footprint_load_error_id: getZodPrefixedIdWithDefault(
2233
2245
  "external_footprint_load_error"
2234
2246
  ),
2235
- pcb_component_id: z103.string(),
2236
- source_component_id: z103.string(),
2237
- pcb_group_id: z103.string().optional(),
2238
- subcircuit_id: z103.string().optional(),
2239
- footprinter_string: z103.string().optional(),
2240
- error_type: z103.literal("external_footprint_load_error").default("external_footprint_load_error"),
2241
- message: z103.string()
2247
+ pcb_component_id: z104.string(),
2248
+ source_component_id: z104.string(),
2249
+ pcb_group_id: z104.string().optional(),
2250
+ subcircuit_id: z104.string().optional(),
2251
+ footprinter_string: z104.string().optional(),
2252
+ error_type: z104.literal("external_footprint_load_error").default("external_footprint_load_error"),
2253
+ message: z104.string()
2242
2254
  }).describe("Defines an error when an external footprint fails to load");
2243
2255
  expectTypesMatch(true);
2244
2256
 
2245
2257
  // src/pcb/circuit_json_footprint_load_error.ts
2246
- import { z as z104 } from "zod";
2247
- var circuit_json_footprint_load_error = z104.object({
2248
- type: z104.literal("circuit_json_footprint_load_error"),
2258
+ import { z as z105 } from "zod";
2259
+ var circuit_json_footprint_load_error = z105.object({
2260
+ type: z105.literal("circuit_json_footprint_load_error"),
2249
2261
  circuit_json_footprint_load_error_id: getZodPrefixedIdWithDefault(
2250
2262
  "circuit_json_footprint_load_error"
2251
2263
  ),
2252
- pcb_component_id: z104.string(),
2253
- source_component_id: z104.string(),
2254
- pcb_group_id: z104.string().optional(),
2255
- subcircuit_id: z104.string().optional(),
2256
- error_type: z104.literal("circuit_json_footprint_load_error").default("circuit_json_footprint_load_error"),
2257
- message: z104.string(),
2258
- circuit_json: z104.array(z104.any()).optional()
2264
+ pcb_component_id: z105.string(),
2265
+ source_component_id: z105.string(),
2266
+ pcb_group_id: z105.string().optional(),
2267
+ subcircuit_id: z105.string().optional(),
2268
+ error_type: z105.literal("circuit_json_footprint_load_error").default("circuit_json_footprint_load_error"),
2269
+ message: z105.string(),
2270
+ circuit_json: z105.array(z105.any()).optional()
2259
2271
  }).describe("Defines an error when a circuit JSON footprint fails to load");
2260
2272
  expectTypesMatch(true);
2261
2273
 
2262
2274
  // src/pcb/pcb_group.ts
2263
- import { z as z105 } from "zod";
2264
- var pcb_group = z105.object({
2265
- type: z105.literal("pcb_group"),
2275
+ import { z as z106 } from "zod";
2276
+ var pcb_group = z106.object({
2277
+ type: z106.literal("pcb_group"),
2266
2278
  pcb_group_id: getZodPrefixedIdWithDefault("pcb_group"),
2267
- source_group_id: z105.string(),
2268
- is_subcircuit: z105.boolean().optional(),
2269
- subcircuit_id: z105.string().optional(),
2279
+ source_group_id: z106.string(),
2280
+ is_subcircuit: z106.boolean().optional(),
2281
+ subcircuit_id: z106.string().optional(),
2270
2282
  width: length,
2271
2283
  height: length,
2272
2284
  center: point,
2273
2285
  anchor_position: point.optional(),
2274
- anchor_alignment: z105.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).optional(),
2275
- pcb_component_ids: z105.array(z105.string()),
2276
- name: z105.string().optional(),
2277
- description: z105.string().optional(),
2278
- layout_mode: z105.string().optional(),
2279
- autorouter_configuration: z105.object({
2286
+ anchor_alignment: z106.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).optional(),
2287
+ pcb_component_ids: z106.array(z106.string()),
2288
+ name: z106.string().optional(),
2289
+ description: z106.string().optional(),
2290
+ layout_mode: z106.string().optional(),
2291
+ autorouter_configuration: z106.object({
2280
2292
  trace_clearance: length
2281
2293
  }).optional(),
2282
- autorouter_used_string: z105.string().optional()
2294
+ autorouter_used_string: z106.string().optional()
2283
2295
  }).describe("Defines a group of components on the PCB");
2284
2296
  expectTypesMatch(true);
2285
2297
 
2286
2298
  // src/pcb/pcb_autorouting_error.ts
2287
- import { z as z106 } from "zod";
2288
- var pcb_autorouting_error = z106.object({
2289
- type: z106.literal("pcb_autorouting_error"),
2299
+ import { z as z107 } from "zod";
2300
+ var pcb_autorouting_error = z107.object({
2301
+ type: z107.literal("pcb_autorouting_error"),
2290
2302
  pcb_error_id: getZodPrefixedIdWithDefault("pcb_autorouting_error"),
2291
- error_type: z106.literal("pcb_autorouting_error").default("pcb_autorouting_error"),
2292
- message: z106.string(),
2293
- subcircuit_id: z106.string().optional()
2303
+ error_type: z107.literal("pcb_autorouting_error").default("pcb_autorouting_error"),
2304
+ message: z107.string(),
2305
+ subcircuit_id: z107.string().optional()
2294
2306
  }).describe("The autorouting has failed to route a portion of the board");
2295
2307
  expectTypesMatch(true);
2296
2308
 
2297
2309
  // src/pcb/pcb_manual_edit_conflict_warning.ts
2298
- import { z as z107 } from "zod";
2299
- var pcb_manual_edit_conflict_warning = z107.object({
2300
- type: z107.literal("pcb_manual_edit_conflict_warning"),
2310
+ import { z as z108 } from "zod";
2311
+ var pcb_manual_edit_conflict_warning = z108.object({
2312
+ type: z108.literal("pcb_manual_edit_conflict_warning"),
2301
2313
  pcb_manual_edit_conflict_warning_id: getZodPrefixedIdWithDefault(
2302
2314
  "pcb_manual_edit_conflict_warning"
2303
2315
  ),
2304
- warning_type: z107.literal("pcb_manual_edit_conflict_warning").default("pcb_manual_edit_conflict_warning"),
2305
- message: z107.string(),
2306
- pcb_component_id: z107.string(),
2307
- pcb_group_id: z107.string().optional(),
2308
- subcircuit_id: z107.string().optional(),
2309
- source_component_id: z107.string()
2316
+ warning_type: z108.literal("pcb_manual_edit_conflict_warning").default("pcb_manual_edit_conflict_warning"),
2317
+ message: z108.string(),
2318
+ pcb_component_id: z108.string(),
2319
+ pcb_group_id: z108.string().optional(),
2320
+ subcircuit_id: z108.string().optional(),
2321
+ source_component_id: z108.string()
2310
2322
  }).describe(
2311
2323
  "Warning emitted when a component has both manual placement and explicit pcbX/pcbY coordinates"
2312
2324
  );
2313
2325
  expectTypesMatch(true);
2314
2326
 
2315
2327
  // src/pcb/pcb_breakout_point.ts
2316
- import { z as z108 } from "zod";
2317
- var pcb_breakout_point = z108.object({
2318
- type: z108.literal("pcb_breakout_point"),
2328
+ import { z as z109 } from "zod";
2329
+ var pcb_breakout_point = z109.object({
2330
+ type: z109.literal("pcb_breakout_point"),
2319
2331
  pcb_breakout_point_id: getZodPrefixedIdWithDefault("pcb_breakout_point"),
2320
- pcb_group_id: z108.string(),
2321
- subcircuit_id: z108.string().optional(),
2322
- source_trace_id: z108.string().optional(),
2323
- source_port_id: z108.string().optional(),
2324
- source_net_id: z108.string().optional(),
2332
+ pcb_group_id: z109.string(),
2333
+ subcircuit_id: z109.string().optional(),
2334
+ source_trace_id: z109.string().optional(),
2335
+ source_port_id: z109.string().optional(),
2336
+ source_net_id: z109.string().optional(),
2325
2337
  x: distance,
2326
2338
  y: distance
2327
2339
  }).describe(
@@ -2330,60 +2342,60 @@ var pcb_breakout_point = z108.object({
2330
2342
  expectTypesMatch(true);
2331
2343
 
2332
2344
  // src/pcb/pcb_ground_plane.ts
2333
- import { z as z109 } from "zod";
2334
- var pcb_ground_plane = z109.object({
2335
- type: z109.literal("pcb_ground_plane"),
2345
+ import { z as z110 } from "zod";
2346
+ var pcb_ground_plane = z110.object({
2347
+ type: z110.literal("pcb_ground_plane"),
2336
2348
  pcb_ground_plane_id: getZodPrefixedIdWithDefault("pcb_ground_plane"),
2337
- source_pcb_ground_plane_id: z109.string(),
2338
- source_net_id: z109.string(),
2339
- pcb_group_id: z109.string().optional(),
2340
- subcircuit_id: z109.string().optional()
2349
+ source_pcb_ground_plane_id: z110.string(),
2350
+ source_net_id: z110.string(),
2351
+ pcb_group_id: z110.string().optional(),
2352
+ subcircuit_id: z110.string().optional()
2341
2353
  }).describe("Defines a ground plane on the PCB");
2342
2354
  expectTypesMatch(true);
2343
2355
 
2344
2356
  // src/pcb/pcb_ground_plane_region.ts
2345
- import { z as z110 } from "zod";
2346
- var pcb_ground_plane_region = z110.object({
2347
- type: z110.literal("pcb_ground_plane_region"),
2357
+ import { z as z111 } from "zod";
2358
+ var pcb_ground_plane_region = z111.object({
2359
+ type: z111.literal("pcb_ground_plane_region"),
2348
2360
  pcb_ground_plane_region_id: getZodPrefixedIdWithDefault(
2349
2361
  "pcb_ground_plane_region"
2350
2362
  ),
2351
- pcb_ground_plane_id: z110.string(),
2352
- pcb_group_id: z110.string().optional(),
2353
- subcircuit_id: z110.string().optional(),
2363
+ pcb_ground_plane_id: z111.string(),
2364
+ pcb_group_id: z111.string().optional(),
2365
+ subcircuit_id: z111.string().optional(),
2354
2366
  layer: layer_ref,
2355
- points: z110.array(point)
2367
+ points: z111.array(point)
2356
2368
  }).describe("Defines a polygon region of a ground plane");
2357
2369
  expectTypesMatch(true);
2358
2370
 
2359
2371
  // src/pcb/pcb_thermal_spoke.ts
2360
- import { z as z111 } from "zod";
2361
- var pcb_thermal_spoke = z111.object({
2362
- type: z111.literal("pcb_thermal_spoke"),
2372
+ import { z as z112 } from "zod";
2373
+ var pcb_thermal_spoke = z112.object({
2374
+ type: z112.literal("pcb_thermal_spoke"),
2363
2375
  pcb_thermal_spoke_id: getZodPrefixedIdWithDefault("pcb_thermal_spoke"),
2364
- pcb_ground_plane_id: z111.string(),
2365
- shape: z111.string(),
2366
- spoke_count: z111.number(),
2376
+ pcb_ground_plane_id: z112.string(),
2377
+ shape: z112.string(),
2378
+ spoke_count: z112.number(),
2367
2379
  spoke_thickness: distance,
2368
2380
  spoke_inner_diameter: distance,
2369
2381
  spoke_outer_diameter: distance,
2370
- pcb_plated_hole_id: z111.string().optional(),
2371
- subcircuit_id: z111.string().optional()
2382
+ pcb_plated_hole_id: z112.string().optional(),
2383
+ subcircuit_id: z112.string().optional()
2372
2384
  }).describe("Pattern for connecting a ground plane to a plated hole");
2373
2385
  expectTypesMatch(true);
2374
2386
 
2375
2387
  // src/pcb/pcb_copper_pour.ts
2376
- import { z as z112 } from "zod";
2377
- var pcb_copper_pour_base = z112.object({
2378
- type: z112.literal("pcb_copper_pour"),
2388
+ import { z as z113 } from "zod";
2389
+ var pcb_copper_pour_base = z113.object({
2390
+ type: z113.literal("pcb_copper_pour"),
2379
2391
  pcb_copper_pour_id: getZodPrefixedIdWithDefault("pcb_copper_pour"),
2380
- pcb_group_id: z112.string().optional(),
2381
- subcircuit_id: z112.string().optional(),
2392
+ pcb_group_id: z113.string().optional(),
2393
+ subcircuit_id: z113.string().optional(),
2382
2394
  layer: layer_ref,
2383
- source_net_id: z112.string().optional()
2395
+ source_net_id: z113.string().optional()
2384
2396
  });
2385
2397
  var pcb_copper_pour_rect = pcb_copper_pour_base.extend({
2386
- shape: z112.literal("rect"),
2398
+ shape: z113.literal("rect"),
2387
2399
  center: point,
2388
2400
  width: length,
2389
2401
  height: length,
@@ -2391,16 +2403,16 @@ var pcb_copper_pour_rect = pcb_copper_pour_base.extend({
2391
2403
  });
2392
2404
  expectTypesMatch(true);
2393
2405
  var pcb_copper_pour_brep = pcb_copper_pour_base.extend({
2394
- shape: z112.literal("brep"),
2406
+ shape: z113.literal("brep"),
2395
2407
  brep_shape
2396
2408
  });
2397
2409
  expectTypesMatch(true);
2398
2410
  var pcb_copper_pour_polygon = pcb_copper_pour_base.extend({
2399
- shape: z112.literal("polygon"),
2400
- points: z112.array(point)
2411
+ shape: z113.literal("polygon"),
2412
+ points: z113.array(point)
2401
2413
  });
2402
2414
  expectTypesMatch(true);
2403
- var pcb_copper_pour = z112.discriminatedUnion("shape", [
2415
+ var pcb_copper_pour = z113.discriminatedUnion("shape", [
2404
2416
  pcb_copper_pour_rect,
2405
2417
  pcb_copper_pour_brep,
2406
2418
  pcb_copper_pour_polygon
@@ -2408,117 +2420,135 @@ var pcb_copper_pour = z112.discriminatedUnion("shape", [
2408
2420
  expectTypesMatch(true);
2409
2421
 
2410
2422
  // src/pcb/pcb_component_outside_board_error.ts
2411
- import { z as z113 } from "zod";
2412
- var pcb_component_outside_board_error = z113.object({
2413
- type: z113.literal("pcb_component_outside_board_error"),
2423
+ import { z as z114 } from "zod";
2424
+ var pcb_component_outside_board_error = z114.object({
2425
+ type: z114.literal("pcb_component_outside_board_error"),
2414
2426
  pcb_component_outside_board_error_id: getZodPrefixedIdWithDefault(
2415
2427
  "pcb_component_outside_board_error"
2416
2428
  ),
2417
- error_type: z113.literal("pcb_component_outside_board_error").default("pcb_component_outside_board_error"),
2418
- message: z113.string(),
2419
- pcb_component_id: z113.string(),
2420
- pcb_board_id: z113.string(),
2429
+ error_type: z114.literal("pcb_component_outside_board_error").default("pcb_component_outside_board_error"),
2430
+ message: z114.string(),
2431
+ pcb_component_id: z114.string(),
2432
+ pcb_board_id: z114.string(),
2421
2433
  component_center: point,
2422
- component_bounds: z113.object({
2423
- min_x: z113.number(),
2424
- max_x: z113.number(),
2425
- min_y: z113.number(),
2426
- max_y: z113.number()
2434
+ component_bounds: z114.object({
2435
+ min_x: z114.number(),
2436
+ max_x: z114.number(),
2437
+ min_y: z114.number(),
2438
+ max_y: z114.number()
2427
2439
  }),
2428
- subcircuit_id: z113.string().optional(),
2429
- source_component_id: z113.string().optional()
2440
+ subcircuit_id: z114.string().optional(),
2441
+ source_component_id: z114.string().optional()
2430
2442
  }).describe(
2431
2443
  "Error emitted when a PCB component is placed outside the board boundaries"
2432
2444
  );
2433
2445
  expectTypesMatch(true);
2434
2446
 
2447
+ // src/pcb/pcb_component_invalid_layer_error.ts
2448
+ import { z as z115 } from "zod";
2449
+ var pcb_component_invalid_layer_error = z115.object({
2450
+ type: z115.literal("pcb_component_invalid_layer_error"),
2451
+ pcb_component_invalid_layer_error_id: getZodPrefixedIdWithDefault(
2452
+ "pcb_component_invalid_layer_error"
2453
+ ),
2454
+ error_type: z115.literal("pcb_component_invalid_layer_error").default("pcb_component_invalid_layer_error"),
2455
+ message: z115.string(),
2456
+ pcb_component_id: z115.string().optional(),
2457
+ source_component_id: z115.string(),
2458
+ layer: layer_ref,
2459
+ subcircuit_id: z115.string().optional()
2460
+ }).describe(
2461
+ "Error emitted when a component is placed on an invalid layer (components can only be on 'top' or 'bottom' layers)"
2462
+ );
2463
+ expectTypesMatch(true);
2464
+
2435
2465
  // src/pcb/pcb_via_clearance_error.ts
2436
- import { z as z114 } from "zod";
2437
- var pcb_via_clearance_error = z114.object({
2438
- type: z114.literal("pcb_via_clearance_error"),
2466
+ import { z as z116 } from "zod";
2467
+ var pcb_via_clearance_error = z116.object({
2468
+ type: z116.literal("pcb_via_clearance_error"),
2439
2469
  pcb_error_id: getZodPrefixedIdWithDefault("pcb_error"),
2440
- error_type: z114.literal("pcb_via_clearance_error").default("pcb_via_clearance_error"),
2441
- message: z114.string(),
2442
- pcb_via_ids: z114.array(z114.string()).min(2),
2470
+ error_type: z116.literal("pcb_via_clearance_error").default("pcb_via_clearance_error"),
2471
+ message: z116.string(),
2472
+ pcb_via_ids: z116.array(z116.string()).min(2),
2443
2473
  minimum_clearance: distance.optional(),
2444
2474
  actual_clearance: distance.optional(),
2445
- pcb_center: z114.object({
2446
- x: z114.number().optional(),
2447
- y: z114.number().optional()
2475
+ pcb_center: z116.object({
2476
+ x: z116.number().optional(),
2477
+ y: z116.number().optional()
2448
2478
  }).optional(),
2449
- subcircuit_id: z114.string().optional()
2479
+ subcircuit_id: z116.string().optional()
2450
2480
  }).describe("Error emitted when vias are closer than the allowed clearance");
2451
2481
  expectTypesMatch(true);
2452
2482
 
2453
2483
  // src/pcb/pcb_courtyard_rect.ts
2454
- import { z as z115 } from "zod";
2455
- var pcb_courtyard_rect = z115.object({
2456
- type: z115.literal("pcb_courtyard_rect"),
2484
+ import { z as z117 } from "zod";
2485
+ var pcb_courtyard_rect = z117.object({
2486
+ type: z117.literal("pcb_courtyard_rect"),
2457
2487
  pcb_courtyard_rect_id: getZodPrefixedIdWithDefault("pcb_courtyard_rect"),
2458
- pcb_component_id: z115.string(),
2459
- pcb_group_id: z115.string().optional(),
2460
- subcircuit_id: z115.string().optional(),
2488
+ pcb_component_id: z117.string(),
2489
+ pcb_group_id: z117.string().optional(),
2490
+ subcircuit_id: z117.string().optional(),
2461
2491
  center: point,
2462
2492
  width: length,
2463
2493
  height: length,
2464
2494
  layer: visible_layer,
2465
2495
  stroke_width: length.default("0.1mm"),
2466
- is_filled: z115.boolean().optional(),
2467
- has_stroke: z115.boolean().optional(),
2468
- is_stroke_dashed: z115.boolean().optional(),
2469
- color: z115.string().optional()
2496
+ is_filled: z117.boolean().optional(),
2497
+ has_stroke: z117.boolean().optional(),
2498
+ is_stroke_dashed: z117.boolean().optional(),
2499
+ color: z117.string().optional()
2470
2500
  }).describe("Defines a courtyard rectangle on the PCB");
2471
2501
  expectTypesMatch(true);
2472
2502
 
2473
2503
  // src/pcb/pcb_courtyard_outline.ts
2474
- import { z as z116 } from "zod";
2475
- var pcb_courtyard_outline = z116.object({
2476
- type: z116.literal("pcb_courtyard_outline"),
2504
+ import { z as z118 } from "zod";
2505
+ var pcb_courtyard_outline = z118.object({
2506
+ type: z118.literal("pcb_courtyard_outline"),
2477
2507
  pcb_courtyard_outline_id: getZodPrefixedIdWithDefault(
2478
2508
  "pcb_courtyard_outline"
2479
2509
  ),
2480
- pcb_component_id: z116.string(),
2481
- pcb_group_id: z116.string().optional(),
2482
- subcircuit_id: z116.string().optional(),
2510
+ pcb_component_id: z118.string(),
2511
+ pcb_group_id: z118.string().optional(),
2512
+ subcircuit_id: z118.string().optional(),
2483
2513
  layer: visible_layer,
2484
- outline: z116.array(point).min(2),
2514
+ outline: z118.array(point).min(2),
2485
2515
  stroke_width: length.default("0.1mm"),
2486
- is_closed: z116.boolean().optional(),
2487
- is_stroke_dashed: z116.boolean().optional(),
2488
- color: z116.string().optional()
2516
+ is_closed: z118.boolean().optional(),
2517
+ is_stroke_dashed: z118.boolean().optional(),
2518
+ color: z118.string().optional()
2489
2519
  }).describe("Defines a courtyard outline on the PCB");
2490
2520
  expectTypesMatch(true);
2491
2521
 
2492
2522
  // src/cad/cad_component.ts
2493
- import { z as z117 } from "zod";
2494
- var cad_component = z117.object({
2495
- type: z117.literal("cad_component"),
2496
- cad_component_id: z117.string(),
2497
- pcb_component_id: z117.string(),
2498
- source_component_id: z117.string(),
2523
+ import { z as z119 } from "zod";
2524
+ var cad_component = z119.object({
2525
+ type: z119.literal("cad_component"),
2526
+ cad_component_id: z119.string(),
2527
+ pcb_component_id: z119.string(),
2528
+ source_component_id: z119.string(),
2499
2529
  position: point3,
2500
2530
  rotation: point3.optional(),
2501
2531
  size: point3.optional(),
2502
2532
  layer: layer_ref.optional(),
2503
- subcircuit_id: z117.string().optional(),
2533
+ subcircuit_id: z119.string().optional(),
2504
2534
  // These are all ways to generate/load the 3d model
2505
- footprinter_string: z117.string().optional(),
2506
- model_obj_url: z117.string().optional(),
2507
- model_stl_url: z117.string().optional(),
2508
- model_3mf_url: z117.string().optional(),
2509
- model_gltf_url: z117.string().optional(),
2510
- model_glb_url: z117.string().optional(),
2511
- model_step_url: z117.string().optional(),
2512
- model_wrl_url: z117.string().optional(),
2513
- model_unit_to_mm_scale_factor: z117.number().optional(),
2514
- model_jscad: z117.any().optional()
2535
+ footprinter_string: z119.string().optional(),
2536
+ model_obj_url: z119.string().optional(),
2537
+ model_stl_url: z119.string().optional(),
2538
+ model_3mf_url: z119.string().optional(),
2539
+ model_gltf_url: z119.string().optional(),
2540
+ model_glb_url: z119.string().optional(),
2541
+ model_step_url: z119.string().optional(),
2542
+ model_wrl_url: z119.string().optional(),
2543
+ model_unit_to_mm_scale_factor: z119.number().optional(),
2544
+ model_jscad: z119.any().optional()
2515
2545
  }).describe("Defines a component on the PCB");
2516
2546
  expectTypesMatch(true);
2517
2547
 
2518
2548
  // src/simulation/simulation_voltage_source.ts
2519
- import { z as z118 } from "zod";
2520
- var wave_shape = z118.enum(["sinewave", "square", "triangle", "sawtooth"]);
2521
- var percentage = z118.union([z118.string(), z118.number()]).transform((val) => {
2549
+ import { z as z120 } from "zod";
2550
+ var wave_shape = z120.enum(["sinewave", "square", "triangle", "sawtooth"]);
2551
+ var percentage = z120.union([z120.string(), z120.number()]).transform((val) => {
2522
2552
  if (typeof val === "string") {
2523
2553
  if (val.endsWith("%")) {
2524
2554
  return parseFloat(val.slice(0, -1)) / 100;
@@ -2527,30 +2557,30 @@ var percentage = z118.union([z118.string(), z118.number()]).transform((val) => {
2527
2557
  }
2528
2558
  return val;
2529
2559
  }).pipe(
2530
- z118.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
2560
+ z120.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
2531
2561
  );
2532
- var simulation_dc_voltage_source = z118.object({
2533
- type: z118.literal("simulation_voltage_source"),
2562
+ var simulation_dc_voltage_source = z120.object({
2563
+ type: z120.literal("simulation_voltage_source"),
2534
2564
  simulation_voltage_source_id: getZodPrefixedIdWithDefault(
2535
2565
  "simulation_voltage_source"
2536
2566
  ),
2537
- is_dc_source: z118.literal(true).optional().default(true),
2538
- positive_source_port_id: z118.string().optional(),
2539
- negative_source_port_id: z118.string().optional(),
2540
- positive_source_net_id: z118.string().optional(),
2541
- negative_source_net_id: z118.string().optional(),
2567
+ is_dc_source: z120.literal(true).optional().default(true),
2568
+ positive_source_port_id: z120.string().optional(),
2569
+ negative_source_port_id: z120.string().optional(),
2570
+ positive_source_net_id: z120.string().optional(),
2571
+ negative_source_net_id: z120.string().optional(),
2542
2572
  voltage
2543
2573
  }).describe("Defines a DC voltage source for simulation");
2544
- var simulation_ac_voltage_source = z118.object({
2545
- type: z118.literal("simulation_voltage_source"),
2574
+ var simulation_ac_voltage_source = z120.object({
2575
+ type: z120.literal("simulation_voltage_source"),
2546
2576
  simulation_voltage_source_id: getZodPrefixedIdWithDefault(
2547
2577
  "simulation_voltage_source"
2548
2578
  ),
2549
- is_dc_source: z118.literal(false),
2550
- terminal1_source_port_id: z118.string().optional(),
2551
- terminal2_source_port_id: z118.string().optional(),
2552
- terminal1_source_net_id: z118.string().optional(),
2553
- terminal2_source_net_id: z118.string().optional(),
2579
+ is_dc_source: z120.literal(false),
2580
+ terminal1_source_port_id: z120.string().optional(),
2581
+ terminal2_source_port_id: z120.string().optional(),
2582
+ terminal1_source_net_id: z120.string().optional(),
2583
+ terminal2_source_net_id: z120.string().optional(),
2554
2584
  voltage: voltage.optional(),
2555
2585
  frequency: frequency.optional(),
2556
2586
  peak_to_peak_voltage: voltage.optional(),
@@ -2558,25 +2588,25 @@ var simulation_ac_voltage_source = z118.object({
2558
2588
  phase: rotation.optional(),
2559
2589
  duty_cycle: percentage.optional()
2560
2590
  }).describe("Defines an AC voltage source for simulation");
2561
- var simulation_voltage_source = z118.union([simulation_dc_voltage_source, simulation_ac_voltage_source]).describe("Defines a voltage source for simulation");
2591
+ var simulation_voltage_source = z120.union([simulation_dc_voltage_source, simulation_ac_voltage_source]).describe("Defines a voltage source for simulation");
2562
2592
  expectTypesMatch(true);
2563
2593
  expectTypesMatch(true);
2564
2594
  expectTypesMatch(true);
2565
2595
 
2566
2596
  // src/simulation/simulation_experiment.ts
2567
- import { z as z119 } from "zod";
2568
- var experiment_type = z119.union([
2569
- z119.literal("spice_dc_sweep"),
2570
- z119.literal("spice_dc_operating_point"),
2571
- z119.literal("spice_transient_analysis"),
2572
- z119.literal("spice_ac_analysis")
2597
+ import { z as z121 } from "zod";
2598
+ var experiment_type = z121.union([
2599
+ z121.literal("spice_dc_sweep"),
2600
+ z121.literal("spice_dc_operating_point"),
2601
+ z121.literal("spice_transient_analysis"),
2602
+ z121.literal("spice_ac_analysis")
2573
2603
  ]);
2574
- var simulation_experiment = z119.object({
2575
- type: z119.literal("simulation_experiment"),
2604
+ var simulation_experiment = z121.object({
2605
+ type: z121.literal("simulation_experiment"),
2576
2606
  simulation_experiment_id: getZodPrefixedIdWithDefault(
2577
2607
  "simulation_experiment"
2578
2608
  ),
2579
- name: z119.string(),
2609
+ name: z121.string(),
2580
2610
  experiment_type,
2581
2611
  time_per_step: duration_ms.optional(),
2582
2612
  start_time_ms: ms.optional(),
@@ -2585,48 +2615,48 @@ var simulation_experiment = z119.object({
2585
2615
  expectTypesMatch(true);
2586
2616
 
2587
2617
  // src/simulation/simulation_transient_voltage_graph.ts
2588
- import { z as z120 } from "zod";
2589
- var simulation_transient_voltage_graph = z120.object({
2590
- type: z120.literal("simulation_transient_voltage_graph"),
2618
+ import { z as z122 } from "zod";
2619
+ var simulation_transient_voltage_graph = z122.object({
2620
+ type: z122.literal("simulation_transient_voltage_graph"),
2591
2621
  simulation_transient_voltage_graph_id: getZodPrefixedIdWithDefault(
2592
2622
  "simulation_transient_voltage_graph"
2593
2623
  ),
2594
- simulation_experiment_id: z120.string(),
2595
- timestamps_ms: z120.array(z120.number()).optional(),
2596
- voltage_levels: z120.array(z120.number()),
2597
- schematic_voltage_probe_id: z120.string().optional(),
2598
- simulation_voltage_probe_id: z120.string().optional(),
2599
- subcircuit_connectivity_map_key: z120.string().optional(),
2624
+ simulation_experiment_id: z122.string(),
2625
+ timestamps_ms: z122.array(z122.number()).optional(),
2626
+ voltage_levels: z122.array(z122.number()),
2627
+ schematic_voltage_probe_id: z122.string().optional(),
2628
+ simulation_voltage_probe_id: z122.string().optional(),
2629
+ subcircuit_connectivity_map_key: z122.string().optional(),
2600
2630
  time_per_step: duration_ms,
2601
2631
  start_time_ms: ms,
2602
2632
  end_time_ms: ms,
2603
- name: z120.string().optional()
2633
+ name: z122.string().optional()
2604
2634
  }).describe("Stores voltage measurements over time for a simulation");
2605
2635
  expectTypesMatch(true);
2606
2636
 
2607
2637
  // src/simulation/simulation_switch.ts
2608
- import { z as z121 } from "zod";
2609
- var simulation_switch = z121.object({
2610
- type: z121.literal("simulation_switch"),
2638
+ import { z as z123 } from "zod";
2639
+ var simulation_switch = z123.object({
2640
+ type: z123.literal("simulation_switch"),
2611
2641
  simulation_switch_id: getZodPrefixedIdWithDefault("simulation_switch"),
2612
2642
  closes_at: ms.optional(),
2613
2643
  opens_at: ms.optional(),
2614
- starts_closed: z121.boolean().optional(),
2644
+ starts_closed: z123.boolean().optional(),
2615
2645
  switching_frequency: frequency.optional()
2616
2646
  }).describe("Defines a switch for simulation timing control");
2617
2647
  expectTypesMatch(true);
2618
2648
 
2619
2649
  // src/simulation/simulation_voltage_probe.ts
2620
- import { z as z122 } from "zod";
2621
- var simulation_voltage_probe = z122.object({
2622
- type: z122.literal("simulation_voltage_probe"),
2650
+ import { z as z124 } from "zod";
2651
+ var simulation_voltage_probe = z124.object({
2652
+ type: z124.literal("simulation_voltage_probe"),
2623
2653
  simulation_voltage_probe_id: getZodPrefixedIdWithDefault(
2624
2654
  "simulation_voltage_probe"
2625
2655
  ),
2626
- source_port_id: z122.string().optional(),
2627
- source_net_id: z122.string().optional(),
2628
- name: z122.string().optional(),
2629
- subcircuit_id: z122.string().optional()
2656
+ source_port_id: z124.string().optional(),
2657
+ source_net_id: z124.string().optional(),
2658
+ name: z124.string().optional(),
2659
+ subcircuit_id: z124.string().optional()
2630
2660
  }).describe(
2631
2661
  "Defines a voltage probe for simulation, connected to a port or a net"
2632
2662
  ).refine(
@@ -2638,8 +2668,8 @@ var simulation_voltage_probe = z122.object({
2638
2668
  expectTypesMatch(true);
2639
2669
 
2640
2670
  // src/any_circuit_element.ts
2641
- import { z as z123 } from "zod";
2642
- var any_circuit_element = z123.union([
2671
+ import { z as z125 } from "zod";
2672
+ var any_circuit_element = z125.union([
2643
2673
  source_trace,
2644
2674
  source_port,
2645
2675
  any_source_component,
@@ -2684,6 +2714,7 @@ var any_circuit_element = z123.union([
2684
2714
  pcb_smtpad,
2685
2715
  pcb_solder_paste,
2686
2716
  pcb_board,
2717
+ pcb_panel,
2687
2718
  pcb_group,
2688
2719
  pcb_trace_hint,
2689
2720
  pcb_silkscreen_line,
@@ -2716,6 +2747,7 @@ var any_circuit_element = z123.union([
2716
2747
  pcb_thermal_spoke,
2717
2748
  pcb_copper_pour,
2718
2749
  pcb_component_outside_board_error,
2750
+ pcb_component_invalid_layer_error,
2719
2751
  pcb_courtyard_rect,
2720
2752
  pcb_courtyard_outline,
2721
2753
  schematic_box,
@@ -2774,6 +2806,7 @@ export {
2774
2806
  pcb_board,
2775
2807
  pcb_breakout_point,
2776
2808
  pcb_component,
2809
+ pcb_component_invalid_layer_error,
2777
2810
  pcb_component_outside_board_error,
2778
2811
  pcb_copper_pour,
2779
2812
  pcb_copper_pour_brep,
@@ -2807,6 +2840,7 @@ export {
2807
2840
  pcb_note_path,
2808
2841
  pcb_note_rect,
2809
2842
  pcb_note_text,
2843
+ pcb_panel,
2810
2844
  pcb_placement_error,
2811
2845
  pcb_plated_hole,
2812
2846
  pcb_port,