circuit-json 0.0.462 → 0.0.464

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
@@ -1694,32 +1694,70 @@ expectTypesMatch(
1694
1694
  true
1695
1695
  );
1696
1696
 
1697
- // src/pcb/properties/pcb_route_hints.ts
1697
+ // src/pcb/properties/pcb_pin1_location.ts
1698
1698
  import { z as z98 } from "zod";
1699
- var pcb_route_hint = z98.object({
1699
+ var pcb_pin1_location = z98.enum([
1700
+ "leftside_top",
1701
+ "leftside_bottom",
1702
+ "rightside_top",
1703
+ "rightside_bottom",
1704
+ "topside_left",
1705
+ "topside_right",
1706
+ "bottomside_left",
1707
+ "bottomside_right"
1708
+ ]);
1709
+ expectTypesMatch(true);
1710
+ var pin1LocationRotationCycles = [
1711
+ [
1712
+ "leftside_top",
1713
+ "bottomside_left",
1714
+ "rightside_bottom",
1715
+ "topside_right"
1716
+ ],
1717
+ [
1718
+ "leftside_bottom",
1719
+ "bottomside_right",
1720
+ "rightside_top",
1721
+ "topside_left"
1722
+ ]
1723
+ ];
1724
+ var getRotationBetweenPcbPin1Locations = (from, to) => {
1725
+ for (const cycle of pin1LocationRotationCycles) {
1726
+ const fromIndex = cycle.indexOf(from);
1727
+ const toIndex = cycle.indexOf(to);
1728
+ if (fromIndex !== -1 && toIndex !== -1) {
1729
+ return (toIndex - fromIndex + cycle.length) % cycle.length * 90;
1730
+ }
1731
+ }
1732
+ return null;
1733
+ };
1734
+
1735
+ // src/pcb/properties/pcb_route_hints.ts
1736
+ import { z as z99 } from "zod";
1737
+ var pcb_route_hint = z99.object({
1700
1738
  x: distance,
1701
1739
  y: distance,
1702
- via: z98.boolean().optional(),
1740
+ via: z99.boolean().optional(),
1703
1741
  via_to_layer: layer_ref.optional()
1704
1742
  });
1705
- var pcb_route_hints = z98.array(pcb_route_hint);
1743
+ var pcb_route_hints = z99.array(pcb_route_hint);
1706
1744
  expectTypesMatch(true);
1707
1745
  expectTypesMatch(true);
1708
1746
 
1709
1747
  // src/pcb/properties/route_hint_point.ts
1710
- import { z as z99 } from "zod";
1711
- var route_hint_point = z99.object({
1748
+ import { z as z100 } from "zod";
1749
+ var route_hint_point = z100.object({
1712
1750
  x: distance,
1713
1751
  y: distance,
1714
- via: z99.boolean().optional(),
1752
+ via: z100.boolean().optional(),
1715
1753
  to_layer: layer_ref.optional(),
1716
1754
  trace_width: distance.optional()
1717
1755
  });
1718
1756
  expectTypesMatch(true);
1719
1757
 
1720
1758
  // src/pcb/properties/manufacturing_drc_properties.ts
1721
- import { z as z100 } from "zod";
1722
- var manufacturing_drc_properties = z100.object({
1759
+ import { z as z101 } from "zod";
1760
+ var manufacturing_drc_properties = z101.object({
1723
1761
  min_trace_width: length.optional(),
1724
1762
  min_board_edge_clearance: length.optional(),
1725
1763
  min_via_hole_edge_to_via_hole_edge_clearance: length.optional(),
@@ -1734,27 +1772,27 @@ var manufacturing_drc_properties = z100.object({
1734
1772
  });
1735
1773
 
1736
1774
  // src/pcb/pcb_component.ts
1737
- import { z as z101 } from "zod";
1738
- var pcb_component = z101.object({
1739
- type: z101.literal("pcb_component"),
1775
+ import { z as z102 } from "zod";
1776
+ var pcb_component = z102.object({
1777
+ type: z102.literal("pcb_component"),
1740
1778
  pcb_component_id: getZodPrefixedIdWithDefault("pcb_component"),
1741
- source_component_id: z101.string(),
1779
+ source_component_id: z102.string(),
1742
1780
  center: point,
1743
1781
  layer: layer_ref,
1744
1782
  rotation,
1745
- display_offset_x: z101.string().optional().describe(
1783
+ display_offset_x: z102.string().optional().describe(
1746
1784
  "How to display the x offset for this part, usually corresponding with how the user specified it"
1747
1785
  ),
1748
- display_offset_y: z101.string().optional().describe(
1786
+ display_offset_y: z102.string().optional().describe(
1749
1787
  "How to display the y offset for this part, usually corresponding with how the user specified it"
1750
1788
  ),
1751
1789
  width: length,
1752
1790
  height: length,
1753
- do_not_place: z101.boolean().optional(),
1754
- is_allowed_to_be_off_board: z101.boolean().optional(),
1755
- subcircuit_id: z101.string().optional(),
1756
- pcb_group_id: z101.string().optional(),
1757
- position_mode: z101.enum([
1791
+ do_not_place: z102.boolean().optional(),
1792
+ is_allowed_to_be_off_board: z102.boolean().optional(),
1793
+ subcircuit_id: z102.string().optional(),
1794
+ pcb_group_id: z102.string().optional(),
1795
+ position_mode: z102.enum([
1758
1796
  "packed",
1759
1797
  "relative_to_group_anchor",
1760
1798
  "relative_to_another_component",
@@ -1762,123 +1800,129 @@ var pcb_component = z101.object({
1762
1800
  ]).optional(),
1763
1801
  anchor_position: point.optional(),
1764
1802
  anchor_alignment: ninePointAnchor.optional(),
1765
- positioned_relative_to_pcb_group_id: z101.string().optional(),
1766
- positioned_relative_to_pcb_board_id: z101.string().optional(),
1803
+ positioned_relative_to_pcb_group_id: z102.string().optional(),
1804
+ positioned_relative_to_pcb_board_id: z102.string().optional(),
1767
1805
  cable_insertion_center: point.optional(),
1768
1806
  insertion_direction: insertion_direction.optional(),
1769
- metadata: z101.object({
1807
+ pin1_location: pcb_pin1_location.optional().describe(
1808
+ "Location of pin 1 on the unrotated, top-view component footprint"
1809
+ ),
1810
+ supplier_pin1_location_map: z102.record(supplier_name, pcb_pin1_location).optional().describe(
1811
+ "Pin 1 location for each supplier's unrotated, top-view footprint"
1812
+ ),
1813
+ metadata: z102.object({
1770
1814
  kicad_footprint: kicadFootprintMetadata.optional()
1771
1815
  }).optional(),
1772
- obstructs_within_bounds: z101.boolean().default(true).describe(
1816
+ obstructs_within_bounds: z102.boolean().default(true).describe(
1773
1817
  "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"
1774
1818
  )
1775
1819
  }).describe("Defines a component on the PCB");
1776
1820
  expectTypesMatch(true);
1777
1821
 
1778
1822
  // src/pcb/pcb_hole.ts
1779
- import { z as z102 } from "zod";
1780
- var pcb_hole_circle = z102.object({
1781
- type: z102.literal("pcb_hole"),
1823
+ import { z as z103 } from "zod";
1824
+ var pcb_hole_circle = z103.object({
1825
+ type: z103.literal("pcb_hole"),
1782
1826
  pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
1783
- pcb_group_id: z102.string().optional(),
1784
- subcircuit_id: z102.string().optional(),
1785
- pcb_component_id: z102.string().optional(),
1786
- hole_shape: z102.literal("circle"),
1787
- hole_diameter: z102.number(),
1827
+ pcb_group_id: z103.string().optional(),
1828
+ subcircuit_id: z103.string().optional(),
1829
+ pcb_component_id: z103.string().optional(),
1830
+ hole_shape: z103.literal("circle"),
1831
+ hole_diameter: z103.number(),
1788
1832
  x: distance,
1789
1833
  y: distance,
1790
- is_covered_with_solder_mask: z102.boolean().optional(),
1791
- soldermask_margin: z102.number().optional()
1834
+ is_covered_with_solder_mask: z103.boolean().optional(),
1835
+ soldermask_margin: z103.number().optional()
1792
1836
  });
1793
1837
  var pcb_hole_circle_shape = pcb_hole_circle.describe(
1794
1838
  "Defines a circular hole on the PCB"
1795
1839
  );
1796
1840
  expectTypesMatch(true);
1797
- var pcb_hole_rect = z102.object({
1798
- type: z102.literal("pcb_hole"),
1841
+ var pcb_hole_rect = z103.object({
1842
+ type: z103.literal("pcb_hole"),
1799
1843
  pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
1800
- pcb_group_id: z102.string().optional(),
1801
- subcircuit_id: z102.string().optional(),
1802
- pcb_component_id: z102.string().optional(),
1803
- hole_shape: z102.literal("rect"),
1804
- hole_width: z102.number(),
1805
- hole_height: z102.number(),
1844
+ pcb_group_id: z103.string().optional(),
1845
+ subcircuit_id: z103.string().optional(),
1846
+ pcb_component_id: z103.string().optional(),
1847
+ hole_shape: z103.literal("rect"),
1848
+ hole_width: z103.number(),
1849
+ hole_height: z103.number(),
1806
1850
  x: distance,
1807
1851
  y: distance,
1808
- is_covered_with_solder_mask: z102.boolean().optional(),
1809
- soldermask_margin: z102.number().optional()
1852
+ is_covered_with_solder_mask: z103.boolean().optional(),
1853
+ soldermask_margin: z103.number().optional()
1810
1854
  });
1811
1855
  var pcb_hole_rect_shape = pcb_hole_rect.describe(
1812
1856
  "Defines a rectangular (square-capable) hole on the PCB. Use equal width/height for square."
1813
1857
  );
1814
1858
  expectTypesMatch(true);
1815
- var pcb_hole_circle_or_square = z102.object({
1816
- type: z102.literal("pcb_hole"),
1859
+ var pcb_hole_circle_or_square = z103.object({
1860
+ type: z103.literal("pcb_hole"),
1817
1861
  pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
1818
- pcb_group_id: z102.string().optional(),
1819
- subcircuit_id: z102.string().optional(),
1820
- pcb_component_id: z102.string().optional(),
1821
- hole_shape: z102.enum(["circle", "square"]),
1822
- hole_diameter: z102.number(),
1862
+ pcb_group_id: z103.string().optional(),
1863
+ subcircuit_id: z103.string().optional(),
1864
+ pcb_component_id: z103.string().optional(),
1865
+ hole_shape: z103.enum(["circle", "square"]),
1866
+ hole_diameter: z103.number(),
1823
1867
  x: distance,
1824
1868
  y: distance,
1825
- is_covered_with_solder_mask: z102.boolean().optional(),
1826
- soldermask_margin: z102.number().optional()
1869
+ is_covered_with_solder_mask: z103.boolean().optional(),
1870
+ soldermask_margin: z103.number().optional()
1827
1871
  });
1828
1872
  var pcb_hole_circle_or_square_shape = pcb_hole_circle_or_square.describe(
1829
1873
  "Defines a circular or square hole on the PCB"
1830
1874
  );
1831
1875
  expectTypesMatch(true);
1832
- var pcb_hole_oval = z102.object({
1833
- type: z102.literal("pcb_hole"),
1876
+ var pcb_hole_oval = z103.object({
1877
+ type: z103.literal("pcb_hole"),
1834
1878
  pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
1835
- pcb_group_id: z102.string().optional(),
1836
- subcircuit_id: z102.string().optional(),
1837
- pcb_component_id: z102.string().optional(),
1838
- hole_shape: z102.literal("oval"),
1839
- hole_width: z102.number(),
1840
- hole_height: z102.number(),
1879
+ pcb_group_id: z103.string().optional(),
1880
+ subcircuit_id: z103.string().optional(),
1881
+ pcb_component_id: z103.string().optional(),
1882
+ hole_shape: z103.literal("oval"),
1883
+ hole_width: z103.number(),
1884
+ hole_height: z103.number(),
1841
1885
  x: distance,
1842
1886
  y: distance,
1843
- is_covered_with_solder_mask: z102.boolean().optional(),
1844
- soldermask_margin: z102.number().optional()
1887
+ is_covered_with_solder_mask: z103.boolean().optional(),
1888
+ soldermask_margin: z103.number().optional()
1845
1889
  });
1846
1890
  var pcb_hole_oval_shape = pcb_hole_oval.describe(
1847
1891
  "Defines an oval hole on the PCB"
1848
1892
  );
1849
1893
  expectTypesMatch(true);
1850
- var pcb_hole_pill = z102.object({
1851
- type: z102.literal("pcb_hole"),
1894
+ var pcb_hole_pill = z103.object({
1895
+ type: z103.literal("pcb_hole"),
1852
1896
  pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
1853
- pcb_group_id: z102.string().optional(),
1854
- subcircuit_id: z102.string().optional(),
1855
- pcb_component_id: z102.string().optional(),
1856
- hole_shape: z102.literal("pill"),
1857
- hole_width: z102.number(),
1858
- hole_height: z102.number(),
1897
+ pcb_group_id: z103.string().optional(),
1898
+ subcircuit_id: z103.string().optional(),
1899
+ pcb_component_id: z103.string().optional(),
1900
+ hole_shape: z103.literal("pill"),
1901
+ hole_width: z103.number(),
1902
+ hole_height: z103.number(),
1859
1903
  x: distance,
1860
1904
  y: distance,
1861
- is_covered_with_solder_mask: z102.boolean().optional(),
1862
- soldermask_margin: z102.number().optional()
1905
+ is_covered_with_solder_mask: z103.boolean().optional(),
1906
+ soldermask_margin: z103.number().optional()
1863
1907
  });
1864
1908
  var pcb_hole_pill_shape = pcb_hole_pill.describe(
1865
1909
  "Defines a pill-shaped hole on the PCB"
1866
1910
  );
1867
1911
  expectTypesMatch(true);
1868
- var pcb_hole_rotated_pill = z102.object({
1869
- type: z102.literal("pcb_hole"),
1912
+ var pcb_hole_rotated_pill = z103.object({
1913
+ type: z103.literal("pcb_hole"),
1870
1914
  pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
1871
- pcb_group_id: z102.string().optional(),
1872
- subcircuit_id: z102.string().optional(),
1873
- pcb_component_id: z102.string().optional(),
1874
- hole_shape: z102.literal("rotated_pill"),
1875
- hole_width: z102.number(),
1876
- hole_height: z102.number(),
1915
+ pcb_group_id: z103.string().optional(),
1916
+ subcircuit_id: z103.string().optional(),
1917
+ pcb_component_id: z103.string().optional(),
1918
+ hole_shape: z103.literal("rotated_pill"),
1919
+ hole_width: z103.number(),
1920
+ hole_height: z103.number(),
1877
1921
  x: distance,
1878
1922
  y: distance,
1879
1923
  ccw_rotation: rotation,
1880
- is_covered_with_solder_mask: z102.boolean().optional(),
1881
- soldermask_margin: z102.number().optional()
1924
+ is_covered_with_solder_mask: z103.boolean().optional(),
1925
+ soldermask_margin: z103.number().optional()
1882
1926
  });
1883
1927
  var pcb_hole_rotated_pill_shape = pcb_hole_rotated_pill.describe(
1884
1928
  "Defines a rotated pill-shaped hole on the PCB"
@@ -1887,147 +1931,147 @@ expectTypesMatch(true);
1887
1931
  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);
1888
1932
 
1889
1933
  // src/pcb/pcb_plated_hole.ts
1890
- import { z as z103 } from "zod";
1891
- var pcb_plated_hole_circle = z103.object({
1892
- type: z103.literal("pcb_plated_hole"),
1893
- shape: z103.literal("circle"),
1894
- pcb_group_id: z103.string().optional(),
1895
- subcircuit_id: z103.string().optional(),
1896
- outer_diameter: z103.number(),
1897
- hole_diameter: z103.number(),
1898
- is_covered_with_solder_mask: z103.boolean().optional(),
1934
+ import { z as z104 } from "zod";
1935
+ var pcb_plated_hole_circle = z104.object({
1936
+ type: z104.literal("pcb_plated_hole"),
1937
+ shape: z104.literal("circle"),
1938
+ pcb_group_id: z104.string().optional(),
1939
+ subcircuit_id: z104.string().optional(),
1940
+ outer_diameter: z104.number(),
1941
+ hole_diameter: z104.number(),
1942
+ is_covered_with_solder_mask: z104.boolean().optional(),
1899
1943
  x: distance,
1900
1944
  y: distance,
1901
- layers: z103.array(layer_ref),
1902
- port_hints: z103.array(z103.string()).optional(),
1903
- pcb_component_id: z103.string().optional(),
1904
- pcb_port_id: z103.string().optional(),
1945
+ layers: z104.array(layer_ref),
1946
+ port_hints: z104.array(z104.string()).optional(),
1947
+ pcb_component_id: z104.string().optional(),
1948
+ pcb_port_id: z104.string().optional(),
1905
1949
  pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole"),
1906
- soldermask_margin: z103.number().optional()
1950
+ soldermask_margin: z104.number().optional()
1907
1951
  });
1908
- var pcb_plated_hole_oval = z103.object({
1909
- type: z103.literal("pcb_plated_hole"),
1910
- shape: z103.enum(["oval", "pill"]),
1911
- pcb_group_id: z103.string().optional(),
1912
- subcircuit_id: z103.string().optional(),
1913
- outer_width: z103.number(),
1914
- outer_height: z103.number(),
1915
- hole_width: z103.number(),
1916
- hole_height: z103.number(),
1917
- is_covered_with_solder_mask: z103.boolean().optional(),
1952
+ var pcb_plated_hole_oval = z104.object({
1953
+ type: z104.literal("pcb_plated_hole"),
1954
+ shape: z104.enum(["oval", "pill"]),
1955
+ pcb_group_id: z104.string().optional(),
1956
+ subcircuit_id: z104.string().optional(),
1957
+ outer_width: z104.number(),
1958
+ outer_height: z104.number(),
1959
+ hole_width: z104.number(),
1960
+ hole_height: z104.number(),
1961
+ is_covered_with_solder_mask: z104.boolean().optional(),
1918
1962
  x: distance,
1919
1963
  y: distance,
1920
1964
  ccw_rotation: rotation,
1921
- layers: z103.array(layer_ref),
1922
- port_hints: z103.array(z103.string()).optional(),
1923
- pcb_component_id: z103.string().optional(),
1924
- pcb_port_id: z103.string().optional(),
1965
+ layers: z104.array(layer_ref),
1966
+ port_hints: z104.array(z104.string()).optional(),
1967
+ pcb_component_id: z104.string().optional(),
1968
+ pcb_port_id: z104.string().optional(),
1925
1969
  pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole"),
1926
- soldermask_margin: z103.number().optional()
1970
+ soldermask_margin: z104.number().optional()
1927
1971
  });
1928
- var pcb_circular_hole_with_rect_pad = z103.object({
1929
- type: z103.literal("pcb_plated_hole"),
1930
- shape: z103.literal("circular_hole_with_rect_pad"),
1931
- pcb_group_id: z103.string().optional(),
1932
- subcircuit_id: z103.string().optional(),
1933
- hole_shape: z103.literal("circle"),
1934
- pad_shape: z103.literal("rect"),
1935
- hole_diameter: z103.number(),
1936
- rect_pad_width: z103.number(),
1937
- rect_pad_height: z103.number(),
1938
- rect_border_radius: z103.number().optional(),
1972
+ var pcb_circular_hole_with_rect_pad = z104.object({
1973
+ type: z104.literal("pcb_plated_hole"),
1974
+ shape: z104.literal("circular_hole_with_rect_pad"),
1975
+ pcb_group_id: z104.string().optional(),
1976
+ subcircuit_id: z104.string().optional(),
1977
+ hole_shape: z104.literal("circle"),
1978
+ pad_shape: z104.literal("rect"),
1979
+ hole_diameter: z104.number(),
1980
+ rect_pad_width: z104.number(),
1981
+ rect_pad_height: z104.number(),
1982
+ rect_border_radius: z104.number().optional(),
1939
1983
  hole_offset_x: distance.default(0),
1940
1984
  hole_offset_y: distance.default(0),
1941
- is_covered_with_solder_mask: z103.boolean().optional(),
1985
+ is_covered_with_solder_mask: z104.boolean().optional(),
1942
1986
  x: distance,
1943
1987
  y: distance,
1944
- layers: z103.array(layer_ref),
1945
- port_hints: z103.array(z103.string()).optional(),
1946
- pcb_component_id: z103.string().optional(),
1947
- pcb_port_id: z103.string().optional(),
1988
+ layers: z104.array(layer_ref),
1989
+ port_hints: z104.array(z104.string()).optional(),
1990
+ pcb_component_id: z104.string().optional(),
1991
+ pcb_port_id: z104.string().optional(),
1948
1992
  pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole"),
1949
- soldermask_margin: z103.number().optional(),
1993
+ soldermask_margin: z104.number().optional(),
1950
1994
  rect_ccw_rotation: rotation.optional()
1951
1995
  });
1952
- var pcb_pill_hole_with_rect_pad = z103.object({
1953
- type: z103.literal("pcb_plated_hole"),
1954
- shape: z103.literal("pill_hole_with_rect_pad"),
1955
- pcb_group_id: z103.string().optional(),
1956
- subcircuit_id: z103.string().optional(),
1957
- hole_shape: z103.literal("pill"),
1958
- pad_shape: z103.literal("rect"),
1959
- hole_width: z103.number(),
1960
- hole_height: z103.number(),
1961
- rect_pad_width: z103.number(),
1962
- rect_pad_height: z103.number(),
1963
- rect_border_radius: z103.number().optional(),
1996
+ var pcb_pill_hole_with_rect_pad = z104.object({
1997
+ type: z104.literal("pcb_plated_hole"),
1998
+ shape: z104.literal("pill_hole_with_rect_pad"),
1999
+ pcb_group_id: z104.string().optional(),
2000
+ subcircuit_id: z104.string().optional(),
2001
+ hole_shape: z104.literal("pill"),
2002
+ pad_shape: z104.literal("rect"),
2003
+ hole_width: z104.number(),
2004
+ hole_height: z104.number(),
2005
+ rect_pad_width: z104.number(),
2006
+ rect_pad_height: z104.number(),
2007
+ rect_border_radius: z104.number().optional(),
1964
2008
  hole_offset_x: distance.default(0),
1965
2009
  hole_offset_y: distance.default(0),
1966
- is_covered_with_solder_mask: z103.boolean().optional(),
2010
+ is_covered_with_solder_mask: z104.boolean().optional(),
1967
2011
  x: distance,
1968
2012
  y: distance,
1969
- layers: z103.array(layer_ref),
1970
- port_hints: z103.array(z103.string()).optional(),
1971
- pcb_component_id: z103.string().optional(),
1972
- pcb_port_id: z103.string().optional(),
2013
+ layers: z104.array(layer_ref),
2014
+ port_hints: z104.array(z104.string()).optional(),
2015
+ pcb_component_id: z104.string().optional(),
2016
+ pcb_port_id: z104.string().optional(),
1973
2017
  pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole"),
1974
- soldermask_margin: z103.number().optional()
2018
+ soldermask_margin: z104.number().optional()
1975
2019
  });
1976
- var pcb_rotated_pill_hole_with_rect_pad = z103.object({
1977
- type: z103.literal("pcb_plated_hole"),
1978
- shape: z103.literal("rotated_pill_hole_with_rect_pad"),
1979
- pcb_group_id: z103.string().optional(),
1980
- subcircuit_id: z103.string().optional(),
1981
- hole_shape: z103.literal("rotated_pill"),
1982
- pad_shape: z103.literal("rect"),
1983
- hole_width: z103.number(),
1984
- hole_height: z103.number(),
2020
+ var pcb_rotated_pill_hole_with_rect_pad = z104.object({
2021
+ type: z104.literal("pcb_plated_hole"),
2022
+ shape: z104.literal("rotated_pill_hole_with_rect_pad"),
2023
+ pcb_group_id: z104.string().optional(),
2024
+ subcircuit_id: z104.string().optional(),
2025
+ hole_shape: z104.literal("rotated_pill"),
2026
+ pad_shape: z104.literal("rect"),
2027
+ hole_width: z104.number(),
2028
+ hole_height: z104.number(),
1985
2029
  hole_ccw_rotation: rotation,
1986
- rect_pad_width: z103.number(),
1987
- rect_pad_height: z103.number(),
1988
- rect_border_radius: z103.number().optional(),
2030
+ rect_pad_width: z104.number(),
2031
+ rect_pad_height: z104.number(),
2032
+ rect_border_radius: z104.number().optional(),
1989
2033
  rect_ccw_rotation: rotation,
1990
2034
  hole_offset_x: distance.default(0),
1991
2035
  hole_offset_y: distance.default(0),
1992
- is_covered_with_solder_mask: z103.boolean().optional(),
2036
+ is_covered_with_solder_mask: z104.boolean().optional(),
1993
2037
  x: distance,
1994
2038
  y: distance,
1995
- layers: z103.array(layer_ref),
1996
- port_hints: z103.array(z103.string()).optional(),
1997
- pcb_component_id: z103.string().optional(),
1998
- pcb_port_id: z103.string().optional(),
2039
+ layers: z104.array(layer_ref),
2040
+ port_hints: z104.array(z104.string()).optional(),
2041
+ pcb_component_id: z104.string().optional(),
2042
+ pcb_port_id: z104.string().optional(),
1999
2043
  pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole"),
2000
- soldermask_margin: z103.number().optional()
2044
+ soldermask_margin: z104.number().optional()
2001
2045
  });
2002
- var pcb_hole_with_polygon_pad = z103.object({
2003
- type: z103.literal("pcb_plated_hole"),
2004
- shape: z103.literal("hole_with_polygon_pad"),
2005
- pcb_group_id: z103.string().optional(),
2006
- subcircuit_id: z103.string().optional(),
2007
- hole_shape: z103.enum(["circle", "oval", "pill", "rotated_pill"]),
2008
- hole_diameter: z103.number().optional(),
2009
- hole_width: z103.number().optional(),
2010
- hole_height: z103.number().optional(),
2011
- pad_outline: z103.array(
2012
- z103.object({
2046
+ var pcb_hole_with_polygon_pad = z104.object({
2047
+ type: z104.literal("pcb_plated_hole"),
2048
+ shape: z104.literal("hole_with_polygon_pad"),
2049
+ pcb_group_id: z104.string().optional(),
2050
+ subcircuit_id: z104.string().optional(),
2051
+ hole_shape: z104.enum(["circle", "oval", "pill", "rotated_pill"]),
2052
+ hole_diameter: z104.number().optional(),
2053
+ hole_width: z104.number().optional(),
2054
+ hole_height: z104.number().optional(),
2055
+ pad_outline: z104.array(
2056
+ z104.object({
2013
2057
  x: distance,
2014
2058
  y: distance
2015
2059
  })
2016
2060
  ).min(3),
2017
2061
  hole_offset_x: distance.default(0),
2018
2062
  hole_offset_y: distance.default(0),
2019
- is_covered_with_solder_mask: z103.boolean().optional(),
2063
+ is_covered_with_solder_mask: z104.boolean().optional(),
2020
2064
  x: distance,
2021
2065
  y: distance,
2022
- layers: z103.array(layer_ref),
2023
- port_hints: z103.array(z103.string()).optional(),
2024
- pcb_component_id: z103.string().optional(),
2025
- pcb_port_id: z103.string().optional(),
2066
+ layers: z104.array(layer_ref),
2067
+ port_hints: z104.array(z104.string()).optional(),
2068
+ pcb_component_id: z104.string().optional(),
2069
+ pcb_port_id: z104.string().optional(),
2026
2070
  pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole"),
2027
- soldermask_margin: z103.number().optional(),
2071
+ soldermask_margin: z104.number().optional(),
2028
2072
  ccw_rotation: rotation.optional()
2029
2073
  });
2030
- var pcb_plated_hole = z103.union([
2074
+ var pcb_plated_hole = z104.union([
2031
2075
  pcb_plated_hole_circle,
2032
2076
  pcb_plated_hole_oval,
2033
2077
  pcb_circular_hole_with_rect_pad,
@@ -2045,138 +2089,144 @@ expectTypesMatch(true);
2045
2089
  expectTypesMatch(true);
2046
2090
 
2047
2091
  // src/pcb/pcb_port.ts
2048
- import { z as z104 } from "zod";
2049
- var pcb_port = z104.object({
2050
- type: z104.literal("pcb_port"),
2092
+ import { z as z105 } from "zod";
2093
+ var pcb_port = z105.object({
2094
+ type: z105.literal("pcb_port"),
2051
2095
  pcb_port_id: getZodPrefixedIdWithDefault("pcb_port"),
2052
- pcb_group_id: z104.string().optional(),
2053
- subcircuit_id: z104.string().optional(),
2054
- source_port_id: z104.string(),
2055
- pcb_component_id: z104.string().optional(),
2096
+ pcb_group_id: z105.string().optional(),
2097
+ subcircuit_id: z105.string().optional(),
2098
+ source_port_id: z105.string(),
2099
+ pcb_component_id: z105.string().optional(),
2056
2100
  x: distance,
2057
2101
  y: distance,
2058
- layers: z104.array(layer_ref),
2059
- is_board_pinout: z104.boolean().optional()
2102
+ layers: z105.array(layer_ref),
2103
+ is_board_pinout: z105.boolean().optional()
2060
2104
  }).describe("Defines a port on the PCB");
2061
2105
  expectTypesMatch(true);
2062
2106
 
2063
2107
  // src/pcb/pcb_smtpad.ts
2064
- import { z as z105 } from "zod";
2065
- var pcb_smtpad_circle = z105.object({
2066
- type: z105.literal("pcb_smtpad"),
2067
- shape: z105.literal("circle"),
2108
+ import { z as z106 } from "zod";
2109
+ var pcb_smtpad_circle = z106.object({
2110
+ type: z106.literal("pcb_smtpad"),
2111
+ shape: z106.literal("circle"),
2068
2112
  pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
2069
- pcb_group_id: z105.string().optional(),
2070
- subcircuit_id: z105.string().optional(),
2113
+ pcb_group_id: z106.string().optional(),
2114
+ subcircuit_id: z106.string().optional(),
2071
2115
  x: distance,
2072
2116
  y: distance,
2073
- radius: z105.number(),
2117
+ radius: z106.number(),
2074
2118
  layer: layer_ref,
2075
- port_hints: z105.array(z105.string()).optional(),
2076
- pcb_component_id: z105.string().optional(),
2077
- pcb_port_id: z105.string().optional(),
2078
- is_covered_with_solder_mask: z105.boolean().optional(),
2079
- soldermask_margin: z105.number().optional()
2119
+ port_hints: z106.array(z106.string()).optional(),
2120
+ pcb_component_id: z106.string().optional(),
2121
+ pcb_port_id: z106.string().optional(),
2122
+ is_covered_with_solder_mask: z106.boolean().optional(),
2123
+ soldermask_margin: z106.number().optional(),
2124
+ solderpaste_margin: z106.number().optional()
2080
2125
  });
2081
- var pcb_smtpad_rect = z105.object({
2082
- type: z105.literal("pcb_smtpad"),
2083
- shape: z105.literal("rect"),
2126
+ var pcb_smtpad_rect = z106.object({
2127
+ type: z106.literal("pcb_smtpad"),
2128
+ shape: z106.literal("rect"),
2084
2129
  pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
2085
- pcb_group_id: z105.string().optional(),
2086
- subcircuit_id: z105.string().optional(),
2130
+ pcb_group_id: z106.string().optional(),
2131
+ subcircuit_id: z106.string().optional(),
2087
2132
  x: distance,
2088
2133
  y: distance,
2089
- width: z105.number(),
2090
- height: z105.number(),
2091
- rect_border_radius: z105.number().optional(),
2092
- corner_radius: z105.number().optional(),
2134
+ width: z106.number(),
2135
+ height: z106.number(),
2136
+ rect_border_radius: z106.number().optional(),
2137
+ corner_radius: z106.number().optional(),
2093
2138
  layer: layer_ref,
2094
- port_hints: z105.array(z105.string()).optional(),
2095
- pcb_component_id: z105.string().optional(),
2096
- pcb_port_id: z105.string().optional(),
2097
- is_covered_with_solder_mask: z105.boolean().optional(),
2098
- soldermask_margin: z105.number().optional(),
2099
- soldermask_margin_left: z105.number().optional(),
2100
- soldermask_margin_top: z105.number().optional(),
2101
- soldermask_margin_right: z105.number().optional(),
2102
- soldermask_margin_bottom: z105.number().optional()
2139
+ port_hints: z106.array(z106.string()).optional(),
2140
+ pcb_component_id: z106.string().optional(),
2141
+ pcb_port_id: z106.string().optional(),
2142
+ is_covered_with_solder_mask: z106.boolean().optional(),
2143
+ soldermask_margin: z106.number().optional(),
2144
+ soldermask_margin_left: z106.number().optional(),
2145
+ soldermask_margin_top: z106.number().optional(),
2146
+ soldermask_margin_right: z106.number().optional(),
2147
+ soldermask_margin_bottom: z106.number().optional(),
2148
+ solderpaste_margin: z106.number().optional()
2103
2149
  });
2104
- var pcb_smtpad_rotated_rect = z105.object({
2105
- type: z105.literal("pcb_smtpad"),
2106
- shape: z105.literal("rotated_rect"),
2150
+ var pcb_smtpad_rotated_rect = z106.object({
2151
+ type: z106.literal("pcb_smtpad"),
2152
+ shape: z106.literal("rotated_rect"),
2107
2153
  pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
2108
- pcb_group_id: z105.string().optional(),
2109
- subcircuit_id: z105.string().optional(),
2154
+ pcb_group_id: z106.string().optional(),
2155
+ subcircuit_id: z106.string().optional(),
2110
2156
  x: distance,
2111
2157
  y: distance,
2112
- width: z105.number(),
2113
- height: z105.number(),
2114
- rect_border_radius: z105.number().optional(),
2115
- corner_radius: z105.number().optional(),
2158
+ width: z106.number(),
2159
+ height: z106.number(),
2160
+ rect_border_radius: z106.number().optional(),
2161
+ corner_radius: z106.number().optional(),
2116
2162
  ccw_rotation: rotation,
2117
2163
  layer: layer_ref,
2118
- port_hints: z105.array(z105.string()).optional(),
2119
- pcb_component_id: z105.string().optional(),
2120
- pcb_port_id: z105.string().optional(),
2121
- is_covered_with_solder_mask: z105.boolean().optional(),
2122
- soldermask_margin: z105.number().optional(),
2123
- soldermask_margin_left: z105.number().optional(),
2124
- soldermask_margin_top: z105.number().optional(),
2125
- soldermask_margin_right: z105.number().optional(),
2126
- soldermask_margin_bottom: z105.number().optional()
2164
+ port_hints: z106.array(z106.string()).optional(),
2165
+ pcb_component_id: z106.string().optional(),
2166
+ pcb_port_id: z106.string().optional(),
2167
+ is_covered_with_solder_mask: z106.boolean().optional(),
2168
+ soldermask_margin: z106.number().optional(),
2169
+ soldermask_margin_left: z106.number().optional(),
2170
+ soldermask_margin_top: z106.number().optional(),
2171
+ soldermask_margin_right: z106.number().optional(),
2172
+ soldermask_margin_bottom: z106.number().optional(),
2173
+ solderpaste_margin: z106.number().optional()
2127
2174
  });
2128
- var pcb_smtpad_pill = z105.object({
2129
- type: z105.literal("pcb_smtpad"),
2130
- shape: z105.literal("pill"),
2175
+ var pcb_smtpad_pill = z106.object({
2176
+ type: z106.literal("pcb_smtpad"),
2177
+ shape: z106.literal("pill"),
2131
2178
  pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
2132
- pcb_group_id: z105.string().optional(),
2133
- subcircuit_id: z105.string().optional(),
2179
+ pcb_group_id: z106.string().optional(),
2180
+ subcircuit_id: z106.string().optional(),
2134
2181
  x: distance,
2135
2182
  y: distance,
2136
- width: z105.number(),
2137
- height: z105.number(),
2138
- radius: z105.number(),
2183
+ width: z106.number(),
2184
+ height: z106.number(),
2185
+ radius: z106.number(),
2139
2186
  layer: layer_ref,
2140
- port_hints: z105.array(z105.string()).optional(),
2141
- pcb_component_id: z105.string().optional(),
2142
- pcb_port_id: z105.string().optional(),
2143
- is_covered_with_solder_mask: z105.boolean().optional(),
2144
- soldermask_margin: z105.number().optional()
2187
+ port_hints: z106.array(z106.string()).optional(),
2188
+ pcb_component_id: z106.string().optional(),
2189
+ pcb_port_id: z106.string().optional(),
2190
+ is_covered_with_solder_mask: z106.boolean().optional(),
2191
+ soldermask_margin: z106.number().optional(),
2192
+ solderpaste_margin: z106.number().optional()
2145
2193
  });
2146
- var pcb_smtpad_rotated_pill = z105.object({
2147
- type: z105.literal("pcb_smtpad"),
2148
- shape: z105.literal("rotated_pill"),
2194
+ var pcb_smtpad_rotated_pill = z106.object({
2195
+ type: z106.literal("pcb_smtpad"),
2196
+ shape: z106.literal("rotated_pill"),
2149
2197
  pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
2150
- pcb_group_id: z105.string().optional(),
2151
- subcircuit_id: z105.string().optional(),
2198
+ pcb_group_id: z106.string().optional(),
2199
+ subcircuit_id: z106.string().optional(),
2152
2200
  x: distance,
2153
2201
  y: distance,
2154
- width: z105.number(),
2155
- height: z105.number(),
2156
- radius: z105.number(),
2202
+ width: z106.number(),
2203
+ height: z106.number(),
2204
+ radius: z106.number(),
2157
2205
  ccw_rotation: rotation,
2158
2206
  layer: layer_ref,
2159
- port_hints: z105.array(z105.string()).optional(),
2160
- pcb_component_id: z105.string().optional(),
2161
- pcb_port_id: z105.string().optional(),
2162
- is_covered_with_solder_mask: z105.boolean().optional(),
2163
- soldermask_margin: z105.number().optional()
2207
+ port_hints: z106.array(z106.string()).optional(),
2208
+ pcb_component_id: z106.string().optional(),
2209
+ pcb_port_id: z106.string().optional(),
2210
+ is_covered_with_solder_mask: z106.boolean().optional(),
2211
+ soldermask_margin: z106.number().optional(),
2212
+ solderpaste_margin: z106.number().optional()
2164
2213
  });
2165
- var pcb_smtpad_polygon = z105.object({
2166
- type: z105.literal("pcb_smtpad"),
2167
- shape: z105.literal("polygon"),
2214
+ var pcb_smtpad_polygon = z106.object({
2215
+ type: z106.literal("pcb_smtpad"),
2216
+ shape: z106.literal("polygon"),
2168
2217
  pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
2169
- pcb_group_id: z105.string().optional(),
2170
- subcircuit_id: z105.string().optional(),
2171
- points: z105.array(point),
2218
+ pcb_group_id: z106.string().optional(),
2219
+ subcircuit_id: z106.string().optional(),
2220
+ points: z106.array(point),
2172
2221
  layer: layer_ref,
2173
- port_hints: z105.array(z105.string()).optional(),
2174
- pcb_component_id: z105.string().optional(),
2175
- pcb_port_id: z105.string().optional(),
2176
- is_covered_with_solder_mask: z105.boolean().optional(),
2177
- soldermask_margin: z105.number().optional()
2222
+ port_hints: z106.array(z106.string()).optional(),
2223
+ pcb_component_id: z106.string().optional(),
2224
+ pcb_port_id: z106.string().optional(),
2225
+ is_covered_with_solder_mask: z106.boolean().optional(),
2226
+ soldermask_margin: z106.number().optional(),
2227
+ solderpaste_margin: z106.number().optional()
2178
2228
  });
2179
- var pcb_smtpad = z105.discriminatedUnion("shape", [
2229
+ var pcb_smtpad = z106.discriminatedUnion("shape", [
2180
2230
  pcb_smtpad_circle,
2181
2231
  pcb_smtpad_rect,
2182
2232
  pcb_smtpad_rotated_rect,
@@ -2192,95 +2242,95 @@ expectTypesMatch(true);
2192
2242
  expectTypesMatch(true);
2193
2243
 
2194
2244
  // src/pcb/pcb_solder_paste.ts
2195
- import { z as z106 } from "zod";
2196
- var pcb_solder_paste_circle = z106.object({
2197
- type: z106.literal("pcb_solder_paste"),
2198
- shape: z106.literal("circle"),
2245
+ import { z as z107 } from "zod";
2246
+ var pcb_solder_paste_circle = z107.object({
2247
+ type: z107.literal("pcb_solder_paste"),
2248
+ shape: z107.literal("circle"),
2199
2249
  pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
2200
- pcb_group_id: z106.string().optional(),
2201
- subcircuit_id: z106.string().optional(),
2250
+ pcb_group_id: z107.string().optional(),
2251
+ subcircuit_id: z107.string().optional(),
2202
2252
  x: distance,
2203
2253
  y: distance,
2204
- radius: z106.number(),
2254
+ radius: z107.number(),
2205
2255
  layer: layer_ref,
2206
- pcb_component_id: z106.string().optional(),
2207
- pcb_smtpad_id: z106.string().optional()
2256
+ pcb_component_id: z107.string().optional(),
2257
+ pcb_smtpad_id: z107.string().optional()
2208
2258
  });
2209
- var pcb_solder_paste_rect = z106.object({
2210
- type: z106.literal("pcb_solder_paste"),
2211
- shape: z106.literal("rect"),
2259
+ var pcb_solder_paste_rect = z107.object({
2260
+ type: z107.literal("pcb_solder_paste"),
2261
+ shape: z107.literal("rect"),
2212
2262
  pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
2213
- pcb_group_id: z106.string().optional(),
2214
- subcircuit_id: z106.string().optional(),
2263
+ pcb_group_id: z107.string().optional(),
2264
+ subcircuit_id: z107.string().optional(),
2215
2265
  x: distance,
2216
2266
  y: distance,
2217
- width: z106.number(),
2218
- height: z106.number(),
2267
+ width: z107.number(),
2268
+ height: z107.number(),
2219
2269
  layer: layer_ref,
2220
- pcb_component_id: z106.string().optional(),
2221
- pcb_smtpad_id: z106.string().optional()
2270
+ pcb_component_id: z107.string().optional(),
2271
+ pcb_smtpad_id: z107.string().optional()
2222
2272
  });
2223
- var pcb_solder_paste_pill = z106.object({
2224
- type: z106.literal("pcb_solder_paste"),
2225
- shape: z106.literal("pill"),
2273
+ var pcb_solder_paste_pill = z107.object({
2274
+ type: z107.literal("pcb_solder_paste"),
2275
+ shape: z107.literal("pill"),
2226
2276
  pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
2227
- pcb_group_id: z106.string().optional(),
2228
- subcircuit_id: z106.string().optional(),
2277
+ pcb_group_id: z107.string().optional(),
2278
+ subcircuit_id: z107.string().optional(),
2229
2279
  x: distance,
2230
2280
  y: distance,
2231
- width: z106.number(),
2232
- height: z106.number(),
2233
- radius: z106.number(),
2281
+ width: z107.number(),
2282
+ height: z107.number(),
2283
+ radius: z107.number(),
2234
2284
  layer: layer_ref,
2235
- pcb_component_id: z106.string().optional(),
2236
- pcb_smtpad_id: z106.string().optional()
2285
+ pcb_component_id: z107.string().optional(),
2286
+ pcb_smtpad_id: z107.string().optional()
2237
2287
  });
2238
- var pcb_solder_paste_rotated_rect = z106.object({
2239
- type: z106.literal("pcb_solder_paste"),
2240
- shape: z106.literal("rotated_rect"),
2288
+ var pcb_solder_paste_rotated_rect = z107.object({
2289
+ type: z107.literal("pcb_solder_paste"),
2290
+ shape: z107.literal("rotated_rect"),
2241
2291
  pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
2242
- pcb_group_id: z106.string().optional(),
2243
- subcircuit_id: z106.string().optional(),
2292
+ pcb_group_id: z107.string().optional(),
2293
+ subcircuit_id: z107.string().optional(),
2244
2294
  x: distance,
2245
2295
  y: distance,
2246
- width: z106.number(),
2247
- height: z106.number(),
2296
+ width: z107.number(),
2297
+ height: z107.number(),
2248
2298
  ccw_rotation: distance,
2249
2299
  layer: layer_ref,
2250
- pcb_component_id: z106.string().optional(),
2251
- pcb_smtpad_id: z106.string().optional()
2300
+ pcb_component_id: z107.string().optional(),
2301
+ pcb_smtpad_id: z107.string().optional()
2252
2302
  });
2253
- var pcb_solder_paste_rotated_pill = z106.object({
2254
- type: z106.literal("pcb_solder_paste"),
2255
- shape: z106.literal("rotated_pill"),
2303
+ var pcb_solder_paste_rotated_pill = z107.object({
2304
+ type: z107.literal("pcb_solder_paste"),
2305
+ shape: z107.literal("rotated_pill"),
2256
2306
  pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
2257
- pcb_group_id: z106.string().optional(),
2258
- subcircuit_id: z106.string().optional(),
2307
+ pcb_group_id: z107.string().optional(),
2308
+ subcircuit_id: z107.string().optional(),
2259
2309
  x: distance,
2260
2310
  y: distance,
2261
- width: z106.number(),
2262
- height: z106.number(),
2263
- radius: z106.number(),
2311
+ width: z107.number(),
2312
+ height: z107.number(),
2313
+ radius: z107.number(),
2264
2314
  ccw_rotation: rotation,
2265
2315
  layer: layer_ref,
2266
- pcb_component_id: z106.string().optional(),
2267
- pcb_smtpad_id: z106.string().optional()
2316
+ pcb_component_id: z107.string().optional(),
2317
+ pcb_smtpad_id: z107.string().optional()
2268
2318
  });
2269
- var pcb_solder_paste_oval = z106.object({
2270
- type: z106.literal("pcb_solder_paste"),
2271
- shape: z106.literal("oval"),
2319
+ var pcb_solder_paste_oval = z107.object({
2320
+ type: z107.literal("pcb_solder_paste"),
2321
+ shape: z107.literal("oval"),
2272
2322
  pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
2273
- pcb_group_id: z106.string().optional(),
2274
- subcircuit_id: z106.string().optional(),
2323
+ pcb_group_id: z107.string().optional(),
2324
+ subcircuit_id: z107.string().optional(),
2275
2325
  x: distance,
2276
2326
  y: distance,
2277
- width: z106.number(),
2278
- height: z106.number(),
2327
+ width: z107.number(),
2328
+ height: z107.number(),
2279
2329
  layer: layer_ref,
2280
- pcb_component_id: z106.string().optional(),
2281
- pcb_smtpad_id: z106.string().optional()
2330
+ pcb_component_id: z107.string().optional(),
2331
+ pcb_smtpad_id: z107.string().optional()
2282
2332
  });
2283
- var pcb_solder_paste = z106.union([
2333
+ var pcb_solder_paste = z107.union([
2284
2334
  pcb_solder_paste_circle,
2285
2335
  pcb_solder_paste_rect,
2286
2336
  pcb_solder_paste_pill,
@@ -2300,193 +2350,193 @@ expectTypesMatch(
2300
2350
  expectTypesMatch(true);
2301
2351
 
2302
2352
  // src/pcb/pcb_text.ts
2303
- import { z as z107 } from "zod";
2304
- var pcb_text = z107.object({
2305
- type: z107.literal("pcb_text"),
2353
+ import { z as z108 } from "zod";
2354
+ var pcb_text = z108.object({
2355
+ type: z108.literal("pcb_text"),
2306
2356
  pcb_text_id: getZodPrefixedIdWithDefault("pcb_text"),
2307
- pcb_group_id: z107.string().optional(),
2308
- subcircuit_id: z107.string().optional(),
2309
- text: z107.string(),
2357
+ pcb_group_id: z108.string().optional(),
2358
+ subcircuit_id: z108.string().optional(),
2359
+ text: z108.string(),
2310
2360
  center: point,
2311
2361
  layer: layer_ref,
2312
2362
  width: length,
2313
2363
  height: length,
2314
- lines: z107.number(),
2364
+ lines: z108.number(),
2315
2365
  // @ts-ignore
2316
- align: z107.enum(["bottom-left"])
2366
+ align: z108.enum(["bottom-left"])
2317
2367
  }).describe("Defines text on the PCB");
2318
2368
  expectTypesMatch(true);
2319
2369
 
2320
2370
  // src/pcb/pcb_trace.ts
2321
- import { z as z108 } from "zod";
2322
- var pcb_trace_route_point_wire = z108.object({
2323
- route_type: z108.literal("wire"),
2371
+ import { z as z109 } from "zod";
2372
+ var pcb_trace_route_point_wire = z109.object({
2373
+ route_type: z109.literal("wire"),
2324
2374
  x: distance,
2325
2375
  y: distance,
2326
2376
  width: distance,
2327
- copper_pour_id: z108.string().optional(),
2328
- is_inside_copper_pour: z108.boolean().optional(),
2329
- start_pcb_port_id: z108.string().optional(),
2330
- end_pcb_port_id: z108.string().optional(),
2377
+ copper_pour_id: z109.string().optional(),
2378
+ is_inside_copper_pour: z109.boolean().optional(),
2379
+ start_pcb_port_id: z109.string().optional(),
2380
+ end_pcb_port_id: z109.string().optional(),
2331
2381
  layer: layer_ref
2332
2382
  });
2333
- var pcb_trace_route_point_via = z108.object({
2334
- route_type: z108.literal("via"),
2383
+ var pcb_trace_route_point_via = z109.object({
2384
+ route_type: z109.literal("via"),
2335
2385
  x: distance,
2336
2386
  y: distance,
2337
- copper_pour_id: z108.string().optional(),
2338
- is_inside_copper_pour: z108.boolean().optional(),
2387
+ copper_pour_id: z109.string().optional(),
2388
+ is_inside_copper_pour: z109.boolean().optional(),
2339
2389
  hole_diameter: distance.optional(),
2340
2390
  outer_diameter: distance.optional(),
2341
2391
  from_layer: layer_ref,
2342
2392
  to_layer: layer_ref
2343
2393
  });
2344
- var pcb_trace_route_point_through_pad = z108.object({
2345
- route_type: z108.literal("through_pad"),
2394
+ var pcb_trace_route_point_through_pad = z109.object({
2395
+ route_type: z109.literal("through_pad"),
2346
2396
  start: point,
2347
2397
  end: point,
2348
2398
  width: distance,
2349
2399
  start_layer: layer_ref,
2350
2400
  end_layer: layer_ref,
2351
- pcb_smtpad_id: z108.string().optional(),
2352
- pcb_plated_hole_id: z108.string().optional()
2401
+ pcb_smtpad_id: z109.string().optional(),
2402
+ pcb_plated_hole_id: z109.string().optional()
2353
2403
  });
2354
- var pcb_trace_route_point = z108.union([
2404
+ var pcb_trace_route_point = z109.union([
2355
2405
  pcb_trace_route_point_wire,
2356
2406
  pcb_trace_route_point_via,
2357
2407
  pcb_trace_route_point_through_pad
2358
2408
  ]);
2359
- var pcb_trace = z108.object({
2360
- type: z108.literal("pcb_trace"),
2361
- source_trace_id: z108.string().optional(),
2362
- pcb_component_id: z108.string().optional(),
2409
+ var pcb_trace = z109.object({
2410
+ type: z109.literal("pcb_trace"),
2411
+ source_trace_id: z109.string().optional(),
2412
+ pcb_component_id: z109.string().optional(),
2363
2413
  pcb_trace_id: getZodPrefixedIdWithDefault("pcb_trace"),
2364
- pcb_group_id: z108.string().optional(),
2365
- subcircuit_id: z108.string().optional(),
2366
- route_thickness_mode: z108.enum(["constant", "interpolated"]).default("constant").optional(),
2367
- route_order_index: z108.number().optional(),
2368
- should_round_corners: z108.boolean().optional(),
2369
- trace_length: z108.number().optional(),
2370
- highlight_color: z108.string().optional(),
2371
- route: z108.array(pcb_trace_route_point)
2414
+ pcb_group_id: z109.string().optional(),
2415
+ subcircuit_id: z109.string().optional(),
2416
+ route_thickness_mode: z109.enum(["constant", "interpolated"]).default("constant").optional(),
2417
+ route_order_index: z109.number().optional(),
2418
+ should_round_corners: z109.boolean().optional(),
2419
+ trace_length: z109.number().optional(),
2420
+ highlight_color: z109.string().optional(),
2421
+ route: z109.array(pcb_trace_route_point)
2372
2422
  }).describe("Defines a trace on the PCB");
2373
2423
  expectTypesMatch(true);
2374
2424
  expectTypesMatch(true);
2375
2425
 
2376
2426
  // src/pcb/pcb_trace_warning.ts
2377
- import { z as z109 } from "zod";
2378
- var pcb_trace_warning = z109.object({
2379
- type: z109.literal("pcb_trace_warning"),
2427
+ import { z as z110 } from "zod";
2428
+ var pcb_trace_warning = z110.object({
2429
+ type: z110.literal("pcb_trace_warning"),
2380
2430
  pcb_trace_warning_id: getZodPrefixedIdWithDefault("pcb_trace_warning"),
2381
- warning_type: z109.literal("pcb_trace_warning").default("pcb_trace_warning"),
2382
- message: z109.string(),
2431
+ warning_type: z110.literal("pcb_trace_warning").default("pcb_trace_warning"),
2432
+ message: z110.string(),
2383
2433
  center: point.optional(),
2384
- pcb_trace_id: z109.string(),
2385
- source_trace_id: z109.string(),
2386
- pcb_component_ids: z109.array(z109.string()),
2387
- pcb_port_ids: z109.array(z109.string()),
2388
- subcircuit_id: z109.string().optional()
2434
+ pcb_trace_id: z110.string(),
2435
+ source_trace_id: z110.string(),
2436
+ pcb_component_ids: z110.array(z110.string()),
2437
+ pcb_port_ids: z110.array(z110.string()),
2438
+ subcircuit_id: z110.string().optional()
2389
2439
  }).describe("Defines a trace warning on the PCB");
2390
2440
  expectTypesMatch(true);
2391
2441
 
2392
2442
  // src/pcb/pcb_trace_too_long_warning.ts
2393
- import { z as z110 } from "zod";
2394
- var pcb_trace_too_long_warning = z110.object({
2395
- type: z110.literal("pcb_trace_too_long_warning"),
2443
+ import { z as z111 } from "zod";
2444
+ var pcb_trace_too_long_warning = z111.object({
2445
+ type: z111.literal("pcb_trace_too_long_warning"),
2396
2446
  pcb_trace_too_long_warning_id: getZodPrefixedIdWithDefault(
2397
2447
  "pcb_trace_too_long_warning"
2398
2448
  ),
2399
- warning_type: z110.literal("pcb_trace_too_long_warning").default("pcb_trace_too_long_warning"),
2400
- message: z110.string(),
2401
- pcb_trace_id: z110.string(),
2402
- source_net_id: z110.string().optional(),
2403
- source_trace_id: z110.string().optional(),
2449
+ warning_type: z111.literal("pcb_trace_too_long_warning").default("pcb_trace_too_long_warning"),
2450
+ message: z111.string(),
2451
+ pcb_trace_id: z111.string(),
2452
+ source_net_id: z111.string().optional(),
2453
+ source_trace_id: z111.string().optional(),
2404
2454
  actual_trace_length: distance,
2405
2455
  maximum_trace_length: distance,
2406
- subcircuit_id: z110.string().optional()
2456
+ subcircuit_id: z111.string().optional()
2407
2457
  }).describe(
2408
2458
  "Warning emitted when a PCB trace is longer than its maximum allowed length"
2409
2459
  );
2410
2460
  expectTypesMatch(true);
2411
2461
 
2412
2462
  // src/pcb/pcb_trace_error.ts
2413
- import { z as z111 } from "zod";
2463
+ import { z as z112 } from "zod";
2414
2464
  var pcb_trace_error = base_circuit_json_error.extend({
2415
- type: z111.literal("pcb_trace_error"),
2465
+ type: z112.literal("pcb_trace_error"),
2416
2466
  pcb_trace_error_id: getZodPrefixedIdWithDefault("pcb_trace_error"),
2417
- error_type: z111.literal("pcb_trace_error").default("pcb_trace_error"),
2467
+ error_type: z112.literal("pcb_trace_error").default("pcb_trace_error"),
2418
2468
  center: point.optional(),
2419
- pcb_trace_id: z111.string(),
2420
- source_trace_id: z111.string(),
2421
- pcb_component_ids: z111.array(z111.string()),
2422
- pcb_port_ids: z111.array(z111.string()),
2423
- subcircuit_id: z111.string().optional()
2469
+ pcb_trace_id: z112.string(),
2470
+ source_trace_id: z112.string(),
2471
+ pcb_component_ids: z112.array(z112.string()),
2472
+ pcb_port_ids: z112.array(z112.string()),
2473
+ subcircuit_id: z112.string().optional()
2424
2474
  }).describe("Defines a trace error on the PCB");
2425
2475
  expectTypesMatch(true);
2426
2476
 
2427
2477
  // src/pcb/pcb_trace_missing_error.ts
2428
- import { z as z112 } from "zod";
2478
+ import { z as z113 } from "zod";
2429
2479
  var pcb_trace_missing_error = base_circuit_json_error.extend({
2430
- type: z112.literal("pcb_trace_missing_error"),
2480
+ type: z113.literal("pcb_trace_missing_error"),
2431
2481
  pcb_trace_missing_error_id: getZodPrefixedIdWithDefault(
2432
2482
  "pcb_trace_missing_error"
2433
2483
  ),
2434
- error_type: z112.literal("pcb_trace_missing_error").default("pcb_trace_missing_error"),
2484
+ error_type: z113.literal("pcb_trace_missing_error").default("pcb_trace_missing_error"),
2435
2485
  center: point.optional(),
2436
- source_trace_id: z112.string(),
2437
- pcb_component_ids: z112.array(z112.string()),
2438
- pcb_port_ids: z112.array(z112.string()),
2439
- subcircuit_id: z112.string().optional()
2486
+ source_trace_id: z113.string(),
2487
+ pcb_component_ids: z113.array(z113.string()),
2488
+ pcb_port_ids: z113.array(z113.string()),
2489
+ subcircuit_id: z113.string().optional()
2440
2490
  }).describe(
2441
2491
  "Defines an error when a source trace has no corresponding PCB trace"
2442
2492
  );
2443
2493
  expectTypesMatch(true);
2444
2494
 
2445
2495
  // src/pcb/pcb_port_not_matched_error.ts
2446
- import { z as z113 } from "zod";
2496
+ import { z as z114 } from "zod";
2447
2497
  var pcb_port_not_matched_error = base_circuit_json_error.extend({
2448
- type: z113.literal("pcb_port_not_matched_error"),
2498
+ type: z114.literal("pcb_port_not_matched_error"),
2449
2499
  pcb_error_id: getZodPrefixedIdWithDefault("pcb_error"),
2450
- error_type: z113.literal("pcb_port_not_matched_error").default("pcb_port_not_matched_error"),
2451
- pcb_component_ids: z113.array(z113.string()),
2452
- subcircuit_id: z113.string().optional()
2500
+ error_type: z114.literal("pcb_port_not_matched_error").default("pcb_port_not_matched_error"),
2501
+ pcb_component_ids: z114.array(z114.string()),
2502
+ subcircuit_id: z114.string().optional()
2453
2503
  }).describe("Defines a trace error on the PCB where a port is not matched");
2454
2504
  expectTypesMatch(true);
2455
2505
 
2456
2506
  // src/pcb/pcb_port_not_connected_error.ts
2457
- import { z as z114 } from "zod";
2507
+ import { z as z115 } from "zod";
2458
2508
  var pcb_port_not_connected_error = base_circuit_json_error.extend({
2459
- type: z114.literal("pcb_port_not_connected_error"),
2509
+ type: z115.literal("pcb_port_not_connected_error"),
2460
2510
  pcb_port_not_connected_error_id: getZodPrefixedIdWithDefault(
2461
2511
  "pcb_port_not_connected_error"
2462
2512
  ),
2463
- error_type: z114.literal("pcb_port_not_connected_error").default("pcb_port_not_connected_error"),
2464
- pcb_port_ids: z114.array(z114.string()),
2465
- pcb_component_ids: z114.array(z114.string()),
2466
- subcircuit_id: z114.string().optional()
2513
+ error_type: z115.literal("pcb_port_not_connected_error").default("pcb_port_not_connected_error"),
2514
+ pcb_port_ids: z115.array(z115.string()),
2515
+ pcb_component_ids: z115.array(z115.string()),
2516
+ subcircuit_id: z115.string().optional()
2467
2517
  }).describe("Defines an error when a pcb port is not connected to any trace");
2468
2518
  expectTypesMatch(
2469
2519
  true
2470
2520
  );
2471
2521
 
2472
2522
  // src/pcb/pcb_net.ts
2473
- import { z as z115 } from "zod";
2474
- var pcb_net = z115.object({
2475
- type: z115.literal("pcb_net"),
2523
+ import { z as z116 } from "zod";
2524
+ var pcb_net = z116.object({
2525
+ type: z116.literal("pcb_net"),
2476
2526
  pcb_net_id: getZodPrefixedIdWithDefault("pcb_net"),
2477
- source_net_id: z115.string().optional(),
2478
- highlight_color: z115.string().optional()
2527
+ source_net_id: z116.string().optional(),
2528
+ highlight_color: z116.string().optional()
2479
2529
  }).describe("Defines a net on the PCB");
2480
2530
  expectTypesMatch(true);
2481
2531
 
2482
2532
  // src/pcb/pcb_via.ts
2483
- import { z as z116 } from "zod";
2484
- var pcb_via = z116.object({
2485
- type: z116.literal("pcb_via"),
2533
+ import { z as z117 } from "zod";
2534
+ var pcb_via = z117.object({
2535
+ type: z117.literal("pcb_via"),
2486
2536
  pcb_via_id: getZodPrefixedIdWithDefault("pcb_via"),
2487
- pcb_group_id: z116.string().optional(),
2488
- subcircuit_id: z116.string().optional(),
2489
- subcircuit_connectivity_map_key: z116.string().optional(),
2537
+ pcb_group_id: z117.string().optional(),
2538
+ subcircuit_id: z117.string().optional(),
2539
+ subcircuit_connectivity_map_key: z117.string().optional(),
2490
2540
  x: distance,
2491
2541
  y: distance,
2492
2542
  outer_diameter: distance.default("0.6mm"),
@@ -2495,117 +2545,117 @@ var pcb_via = z116.object({
2495
2545
  from_layer: layer_ref.optional(),
2496
2546
  /** @deprecated */
2497
2547
  to_layer: layer_ref.optional(),
2498
- layers: z116.array(layer_ref),
2499
- pcb_trace_id: z116.string().optional(),
2500
- source_trace_id: z116.string().optional(),
2501
- source_net_id: z116.string().min(1).optional(),
2502
- net_is_assignable: z116.boolean().optional(),
2503
- net_assigned: z116.boolean().optional(),
2504
- is_tented: z116.boolean().optional()
2548
+ layers: z117.array(layer_ref),
2549
+ pcb_trace_id: z117.string().optional(),
2550
+ source_trace_id: z117.string().optional(),
2551
+ source_net_id: z117.string().min(1).optional(),
2552
+ net_is_assignable: z117.boolean().optional(),
2553
+ net_assigned: z117.boolean().optional(),
2554
+ is_tented: z117.boolean().optional()
2505
2555
  }).describe("Defines a via on the PCB");
2506
2556
  expectTypesMatch(true);
2507
2557
 
2508
2558
  // src/pcb/pcb_board.ts
2509
- import { z as z117 } from "zod";
2510
- var pcb_board = z117.object({
2511
- type: z117.literal("pcb_board"),
2559
+ import { z as z118 } from "zod";
2560
+ var pcb_board = z118.object({
2561
+ type: z118.literal("pcb_board"),
2512
2562
  pcb_board_id: getZodPrefixedIdWithDefault("pcb_board"),
2513
- pcb_panel_id: z117.string().optional(),
2514
- carrier_pcb_board_id: z117.string().optional(),
2515
- is_subcircuit: z117.boolean().optional(),
2516
- subcircuit_id: z117.string().optional(),
2517
- is_mounted_to_carrier_board: z117.boolean().optional(),
2518
- is_via_in_pad_allowed: z117.boolean().optional(),
2563
+ pcb_panel_id: z118.string().optional(),
2564
+ carrier_pcb_board_id: z118.string().optional(),
2565
+ is_subcircuit: z118.boolean().optional(),
2566
+ subcircuit_id: z118.string().optional(),
2567
+ is_mounted_to_carrier_board: z118.boolean().optional(),
2568
+ is_via_in_pad_allowed: z118.boolean().optional(),
2519
2569
  width: length.optional(),
2520
2570
  height: length.optional(),
2521
2571
  center: point,
2522
- display_offset_x: z117.string().optional().describe(
2572
+ display_offset_x: z118.string().optional().describe(
2523
2573
  "How to display the x offset for this board, usually corresponding with how the user specified it"
2524
2574
  ),
2525
- display_offset_y: z117.string().optional().describe(
2575
+ display_offset_y: z118.string().optional().describe(
2526
2576
  "How to display the y offset for this board, usually corresponding with how the user specified it"
2527
2577
  ),
2528
2578
  thickness: length.optional().default(1.4),
2529
- num_layers: z117.number().optional().default(4),
2530
- outline: z117.array(point).optional(),
2531
- shape: z117.enum(["rect", "polygon"]).optional(),
2532
- material: z117.enum(["fr4", "fr1"]).default("fr4"),
2533
- solder_mask_color: z117.string().optional(),
2534
- silkscreen_color: z117.string().optional(),
2579
+ num_layers: z118.number().optional().default(4),
2580
+ outline: z118.array(point).optional(),
2581
+ shape: z118.enum(["rect", "polygon"]).optional(),
2582
+ material: z118.enum(["fr4", "fr1"]).default("fr4"),
2583
+ solder_mask_color: z118.string().optional(),
2584
+ silkscreen_color: z118.string().optional(),
2535
2585
  anchor_position: point.optional(),
2536
2586
  anchor_alignment: ninePointAnchor.optional(),
2537
- position_mode: z117.enum(["relative_to_panel_anchor", "none"]).optional()
2587
+ position_mode: z118.enum(["relative_to_panel_anchor", "none"]).optional()
2538
2588
  }).merge(manufacturing_drc_properties).describe("Defines the board outline of the PCB");
2539
2589
  expectTypesMatch(true);
2540
2590
 
2541
2591
  // src/pcb/pcb_panel.ts
2542
- import { z as z118 } from "zod";
2543
- var pcb_panel = z118.object({
2544
- type: z118.literal("pcb_panel"),
2592
+ import { z as z119 } from "zod";
2593
+ var pcb_panel = z119.object({
2594
+ type: z119.literal("pcb_panel"),
2545
2595
  pcb_panel_id: getZodPrefixedIdWithDefault("pcb_panel"),
2546
2596
  width: length,
2547
2597
  height: length,
2548
2598
  center: point,
2549
2599
  thickness: length.optional().default(1.4),
2550
- covered_with_solder_mask: z118.boolean().optional().default(true)
2600
+ covered_with_solder_mask: z119.boolean().optional().default(true)
2551
2601
  }).describe("Defines a PCB panel that can contain multiple boards");
2552
2602
  expectTypesMatch(true);
2553
2603
 
2554
2604
  // src/pcb/pcb_placement_error.ts
2555
- import { z as z119 } from "zod";
2605
+ import { z as z120 } from "zod";
2556
2606
  var pcb_placement_error = base_circuit_json_error.extend({
2557
- type: z119.literal("pcb_placement_error"),
2607
+ type: z120.literal("pcb_placement_error"),
2558
2608
  pcb_placement_error_id: getZodPrefixedIdWithDefault("pcb_placement_error"),
2559
- error_type: z119.literal("pcb_placement_error").default("pcb_placement_error"),
2560
- subcircuit_id: z119.string().optional()
2609
+ error_type: z120.literal("pcb_placement_error").default("pcb_placement_error"),
2610
+ subcircuit_id: z120.string().optional()
2561
2611
  }).describe("Defines a placement error on the PCB");
2562
2612
  expectTypesMatch(true);
2563
2613
 
2564
2614
  // src/pcb/pcb_packing_error.ts
2565
- import { z as z120 } from "zod";
2615
+ import { z as z121 } from "zod";
2566
2616
  var pcb_packing_error = base_circuit_json_error.extend({
2567
- type: z120.literal("pcb_packing_error"),
2617
+ type: z121.literal("pcb_packing_error"),
2568
2618
  pcb_packing_error_id: getZodPrefixedIdWithDefault("pcb_packing_error"),
2569
- error_type: z120.literal("pcb_packing_error").default("pcb_packing_error"),
2570
- pcb_group_id: z120.string().optional(),
2571
- subcircuit_id: z120.string().optional()
2619
+ error_type: z121.literal("pcb_packing_error").default("pcb_packing_error"),
2620
+ pcb_group_id: z121.string().optional(),
2621
+ subcircuit_id: z121.string().optional()
2572
2622
  }).describe("Defines a failure to pack PCB components within layout bounds");
2573
2623
  expectTypesMatch(true);
2574
2624
 
2575
2625
  // src/pcb/pcb_panelization_placement_error.ts
2576
- import { z as z121 } from "zod";
2626
+ import { z as z122 } from "zod";
2577
2627
  var pcb_panelization_placement_error = base_circuit_json_error.extend({
2578
- type: z121.literal("pcb_panelization_placement_error"),
2628
+ type: z122.literal("pcb_panelization_placement_error"),
2579
2629
  pcb_panelization_placement_error_id: getZodPrefixedIdWithDefault(
2580
2630
  "pcb_panelization_placement_error"
2581
2631
  ),
2582
- error_type: z121.literal("pcb_panelization_placement_error").default("pcb_panelization_placement_error"),
2583
- pcb_panel_id: z121.string().optional(),
2584
- pcb_board_id: z121.string().optional(),
2585
- subcircuit_id: z121.string().optional()
2632
+ error_type: z122.literal("pcb_panelization_placement_error").default("pcb_panelization_placement_error"),
2633
+ pcb_panel_id: z122.string().optional(),
2634
+ pcb_board_id: z122.string().optional(),
2635
+ subcircuit_id: z122.string().optional()
2586
2636
  }).describe("Defines a panelization placement error on the PCB");
2587
2637
  expectTypesMatch(true);
2588
2638
 
2589
2639
  // src/pcb/pcb_trace_hint.ts
2590
- import { z as z122 } from "zod";
2591
- var pcb_trace_hint = z122.object({
2592
- type: z122.literal("pcb_trace_hint"),
2640
+ import { z as z123 } from "zod";
2641
+ var pcb_trace_hint = z123.object({
2642
+ type: z123.literal("pcb_trace_hint"),
2593
2643
  pcb_trace_hint_id: getZodPrefixedIdWithDefault("pcb_trace_hint"),
2594
- pcb_port_id: z122.string(),
2595
- pcb_component_id: z122.string(),
2596
- route: z122.array(route_hint_point),
2597
- subcircuit_id: z122.string().optional()
2644
+ pcb_port_id: z123.string(),
2645
+ pcb_component_id: z123.string(),
2646
+ route: z123.array(route_hint_point),
2647
+ subcircuit_id: z123.string().optional()
2598
2648
  }).describe("A hint that can be used during generation of a PCB trace");
2599
2649
  expectTypesMatch(true);
2600
2650
 
2601
2651
  // src/pcb/pcb_silkscreen_line.ts
2602
- import { z as z123 } from "zod";
2603
- var pcb_silkscreen_line = z123.object({
2604
- type: z123.literal("pcb_silkscreen_line"),
2652
+ import { z as z124 } from "zod";
2653
+ var pcb_silkscreen_line = z124.object({
2654
+ type: z124.literal("pcb_silkscreen_line"),
2605
2655
  pcb_silkscreen_line_id: getZodPrefixedIdWithDefault("pcb_silkscreen_line"),
2606
- pcb_component_id: z123.string(),
2607
- pcb_group_id: z123.string().optional(),
2608
- subcircuit_id: z123.string().optional(),
2656
+ pcb_component_id: z124.string(),
2657
+ pcb_group_id: z124.string().optional(),
2658
+ subcircuit_id: z124.string().optional(),
2609
2659
  stroke_width: distance.default("0.1mm"),
2610
2660
  x1: distance,
2611
2661
  y1: distance,
@@ -2616,32 +2666,32 @@ var pcb_silkscreen_line = z123.object({
2616
2666
  expectTypesMatch(true);
2617
2667
 
2618
2668
  // src/pcb/pcb_silkscreen_path.ts
2619
- import { z as z124 } from "zod";
2620
- var pcb_silkscreen_path = z124.object({
2621
- type: z124.literal("pcb_silkscreen_path"),
2669
+ import { z as z125 } from "zod";
2670
+ var pcb_silkscreen_path = z125.object({
2671
+ type: z125.literal("pcb_silkscreen_path"),
2622
2672
  pcb_silkscreen_path_id: getZodPrefixedIdWithDefault("pcb_silkscreen_path"),
2623
- pcb_component_id: z124.string(),
2624
- pcb_group_id: z124.string().optional(),
2625
- subcircuit_id: z124.string().optional(),
2673
+ pcb_component_id: z125.string(),
2674
+ pcb_group_id: z125.string().optional(),
2675
+ subcircuit_id: z125.string().optional(),
2626
2676
  layer: visible_layer,
2627
- route: z124.array(point),
2677
+ route: z125.array(point),
2628
2678
  stroke_width: length
2629
2679
  }).describe("Defines a silkscreen path on the PCB");
2630
2680
  expectTypesMatch(true);
2631
2681
 
2632
2682
  // src/pcb/pcb_silkscreen_text.ts
2633
- import { z as z125 } from "zod";
2634
- var pcb_silkscreen_text = z125.object({
2635
- type: z125.literal("pcb_silkscreen_text"),
2683
+ import { z as z126 } from "zod";
2684
+ var pcb_silkscreen_text = z126.object({
2685
+ type: z126.literal("pcb_silkscreen_text"),
2636
2686
  pcb_silkscreen_text_id: getZodPrefixedIdWithDefault("pcb_silkscreen_text"),
2637
- pcb_group_id: z125.string().optional(),
2638
- subcircuit_id: z125.string().optional(),
2639
- font: z125.literal("tscircuit2024").default("tscircuit2024"),
2687
+ pcb_group_id: z126.string().optional(),
2688
+ subcircuit_id: z126.string().optional(),
2689
+ font: z126.literal("tscircuit2024").default("tscircuit2024"),
2640
2690
  font_size: distance.default("0.2mm"),
2641
- pcb_component_id: z125.string(),
2642
- text: z125.string(),
2643
- is_knockout: z125.boolean().default(false).optional(),
2644
- knockout_padding: z125.object({
2691
+ pcb_component_id: z126.string(),
2692
+ text: z126.string(),
2693
+ is_knockout: z126.boolean().default(false).optional(),
2694
+ knockout_padding: z126.object({
2645
2695
  left: length,
2646
2696
  top: length,
2647
2697
  bottom: length,
@@ -2652,27 +2702,27 @@ var pcb_silkscreen_text = z125.object({
2652
2702
  bottom: "0.2mm",
2653
2703
  right: "0.2mm"
2654
2704
  }).optional(),
2655
- ccw_rotation: z125.number().optional(),
2705
+ ccw_rotation: z126.number().optional(),
2656
2706
  layer: layer_ref,
2657
- is_mirrored: z125.boolean().default(false).optional(),
2707
+ is_mirrored: z126.boolean().default(false).optional(),
2658
2708
  anchor_position: point.default({ x: 0, y: 0 }),
2659
2709
  anchor_alignment: ninePointAnchor.default("center")
2660
2710
  }).describe("Defines silkscreen text on the PCB");
2661
2711
  expectTypesMatch(true);
2662
2712
 
2663
2713
  // src/pcb/pcb_copper_text.ts
2664
- import { z as z126 } from "zod";
2665
- var pcb_copper_text = z126.object({
2666
- type: z126.literal("pcb_copper_text"),
2714
+ import { z as z127 } from "zod";
2715
+ var pcb_copper_text = z127.object({
2716
+ type: z127.literal("pcb_copper_text"),
2667
2717
  pcb_copper_text_id: getZodPrefixedIdWithDefault("pcb_copper_text"),
2668
- pcb_group_id: z126.string().optional(),
2669
- subcircuit_id: z126.string().optional(),
2670
- font: z126.literal("tscircuit2024").default("tscircuit2024"),
2718
+ pcb_group_id: z127.string().optional(),
2719
+ subcircuit_id: z127.string().optional(),
2720
+ font: z127.literal("tscircuit2024").default("tscircuit2024"),
2671
2721
  font_size: distance.default("0.2mm"),
2672
- pcb_component_id: z126.string(),
2673
- text: z126.string(),
2674
- is_knockout: z126.boolean().default(false).optional(),
2675
- knockout_padding: z126.object({
2722
+ pcb_component_id: z127.string(),
2723
+ text: z127.string(),
2724
+ is_knockout: z127.boolean().default(false).optional(),
2725
+ knockout_padding: z127.object({
2676
2726
  left: length,
2677
2727
  top: length,
2678
2728
  bottom: length,
@@ -2683,61 +2733,61 @@ var pcb_copper_text = z126.object({
2683
2733
  bottom: "0.2mm",
2684
2734
  right: "0.2mm"
2685
2735
  }).optional(),
2686
- ccw_rotation: z126.number().optional(),
2736
+ ccw_rotation: z127.number().optional(),
2687
2737
  layer: layer_ref,
2688
- is_mirrored: z126.boolean().default(false).optional(),
2738
+ is_mirrored: z127.boolean().default(false).optional(),
2689
2739
  anchor_position: point.default({ x: 0, y: 0 }),
2690
2740
  anchor_alignment: ninePointAnchor.default("center")
2691
2741
  }).describe("Defines copper text on the PCB");
2692
2742
  expectTypesMatch(true);
2693
2743
 
2694
2744
  // src/pcb/pcb_silkscreen_rect.ts
2695
- import { z as z127 } from "zod";
2696
- var pcb_silkscreen_rect = z127.object({
2697
- type: z127.literal("pcb_silkscreen_rect"),
2745
+ import { z as z128 } from "zod";
2746
+ var pcb_silkscreen_rect = z128.object({
2747
+ type: z128.literal("pcb_silkscreen_rect"),
2698
2748
  pcb_silkscreen_rect_id: getZodPrefixedIdWithDefault("pcb_silkscreen_rect"),
2699
- pcb_component_id: z127.string(),
2700
- pcb_group_id: z127.string().optional(),
2701
- subcircuit_id: z127.string().optional(),
2749
+ pcb_component_id: z128.string(),
2750
+ pcb_group_id: z128.string().optional(),
2751
+ subcircuit_id: z128.string().optional(),
2702
2752
  center: point,
2703
2753
  width: length,
2704
2754
  height: length,
2705
2755
  layer: layer_ref,
2706
2756
  stroke_width: length.default("1mm"),
2707
2757
  corner_radius: length.optional(),
2708
- is_filled: z127.boolean().default(true).optional(),
2709
- has_stroke: z127.boolean().optional(),
2710
- is_stroke_dashed: z127.boolean().optional(),
2711
- ccw_rotation: z127.number().optional()
2758
+ is_filled: z128.boolean().default(true).optional(),
2759
+ has_stroke: z128.boolean().optional(),
2760
+ is_stroke_dashed: z128.boolean().optional(),
2761
+ ccw_rotation: z128.number().optional()
2712
2762
  }).describe("Defines a silkscreen rect on the PCB");
2713
2763
  expectTypesMatch(true);
2714
2764
 
2715
2765
  // src/pcb/pcb_silkscreen_circle.ts
2716
- import { z as z128 } from "zod";
2717
- var pcb_silkscreen_circle = z128.object({
2718
- type: z128.literal("pcb_silkscreen_circle"),
2766
+ import { z as z129 } from "zod";
2767
+ var pcb_silkscreen_circle = z129.object({
2768
+ type: z129.literal("pcb_silkscreen_circle"),
2719
2769
  pcb_silkscreen_circle_id: getZodPrefixedIdWithDefault(
2720
2770
  "pcb_silkscreen_circle"
2721
2771
  ),
2722
- pcb_component_id: z128.string(),
2723
- pcb_group_id: z128.string().optional(),
2724
- subcircuit_id: z128.string().optional(),
2772
+ pcb_component_id: z129.string(),
2773
+ pcb_group_id: z129.string().optional(),
2774
+ subcircuit_id: z129.string().optional(),
2725
2775
  center: point,
2726
2776
  radius: length,
2727
2777
  layer: visible_layer,
2728
2778
  stroke_width: length.default("1mm"),
2729
- is_filled: z128.boolean().optional()
2779
+ is_filled: z129.boolean().optional()
2730
2780
  }).describe("Defines a silkscreen circle on the PCB");
2731
2781
  expectTypesMatch(true);
2732
2782
 
2733
2783
  // src/pcb/pcb_silkscreen_oval.ts
2734
- import { z as z129 } from "zod";
2735
- var pcb_silkscreen_oval = z129.object({
2736
- type: z129.literal("pcb_silkscreen_oval"),
2784
+ import { z as z130 } from "zod";
2785
+ var pcb_silkscreen_oval = z130.object({
2786
+ type: z130.literal("pcb_silkscreen_oval"),
2737
2787
  pcb_silkscreen_oval_id: getZodPrefixedIdWithDefault("pcb_silkscreen_oval"),
2738
- pcb_component_id: z129.string(),
2739
- pcb_group_id: z129.string().optional(),
2740
- subcircuit_id: z129.string().optional(),
2788
+ pcb_component_id: z130.string(),
2789
+ pcb_group_id: z130.string().optional(),
2790
+ subcircuit_id: z130.string().optional(),
2741
2791
  center: point,
2742
2792
  radius_x: distance,
2743
2793
  radius_y: distance,
@@ -2747,265 +2797,265 @@ var pcb_silkscreen_oval = z129.object({
2747
2797
  expectTypesMatch(true);
2748
2798
 
2749
2799
  // src/pcb/pcb_silkscreen_graphic.ts
2750
- import { z as z130 } from "zod";
2751
- var pcb_silkscreen_graphic_base = z130.object({
2752
- type: z130.literal("pcb_silkscreen_graphic"),
2800
+ import { z as z131 } from "zod";
2801
+ var pcb_silkscreen_graphic_base = z131.object({
2802
+ type: z131.literal("pcb_silkscreen_graphic"),
2753
2803
  pcb_silkscreen_graphic_id: getZodPrefixedIdWithDefault(
2754
2804
  "pcb_silkscreen_graphic"
2755
2805
  ),
2756
- pcb_component_id: z130.string(),
2757
- pcb_group_id: z130.string().optional(),
2758
- subcircuit_id: z130.string().optional(),
2806
+ pcb_component_id: z131.string(),
2807
+ pcb_group_id: z131.string().optional(),
2808
+ subcircuit_id: z131.string().optional(),
2759
2809
  layer: visible_layer,
2760
2810
  image_asset: asset.optional()
2761
2811
  });
2762
2812
  var pcb_silkscreen_graphic_brep = pcb_silkscreen_graphic_base.extend({
2763
- shape: z130.literal("brep"),
2813
+ shape: z131.literal("brep"),
2764
2814
  brep_shape
2765
2815
  }).describe("Defines a BRep silkscreen graphic on the PCB");
2766
2816
  expectTypesMatch(
2767
2817
  true
2768
2818
  );
2769
- var pcb_silkscreen_graphic = z130.discriminatedUnion("shape", [pcb_silkscreen_graphic_brep]).describe("Defines a silkscreen graphic on the PCB");
2819
+ var pcb_silkscreen_graphic = z131.discriminatedUnion("shape", [pcb_silkscreen_graphic_brep]).describe("Defines a silkscreen graphic on the PCB");
2770
2820
  expectTypesMatch(true);
2771
2821
 
2772
2822
  // src/pcb/pcb_silkscreen_pill.ts
2773
- import { z as z131 } from "zod";
2774
- var pcb_silkscreen_pill = z131.object({
2775
- type: z131.literal("pcb_silkscreen_pill"),
2823
+ import { z as z132 } from "zod";
2824
+ var pcb_silkscreen_pill = z132.object({
2825
+ type: z132.literal("pcb_silkscreen_pill"),
2776
2826
  pcb_silkscreen_pill_id: getZodPrefixedIdWithDefault("pcb_silkscreen_pill"),
2777
- pcb_component_id: z131.string(),
2778
- pcb_group_id: z131.string().optional(),
2779
- subcircuit_id: z131.string().optional(),
2827
+ pcb_component_id: z132.string(),
2828
+ pcb_group_id: z132.string().optional(),
2829
+ subcircuit_id: z132.string().optional(),
2780
2830
  center: point,
2781
2831
  width: length,
2782
2832
  height: length,
2783
2833
  layer: layer_ref,
2784
- ccw_rotation: z131.number().optional()
2834
+ ccw_rotation: z132.number().optional()
2785
2835
  }).describe("Defines a silkscreen pill on the PCB");
2786
2836
  expectTypesMatch(true);
2787
2837
 
2788
2838
  // src/pcb/pcb_fabrication_note_text.ts
2789
- import { z as z132 } from "zod";
2790
- var pcb_fabrication_note_text = z132.object({
2791
- type: z132.literal("pcb_fabrication_note_text"),
2839
+ import { z as z133 } from "zod";
2840
+ var pcb_fabrication_note_text = z133.object({
2841
+ type: z133.literal("pcb_fabrication_note_text"),
2792
2842
  pcb_fabrication_note_text_id: getZodPrefixedIdWithDefault(
2793
2843
  "pcb_fabrication_note_text"
2794
2844
  ),
2795
- subcircuit_id: z132.string().optional(),
2796
- pcb_group_id: z132.string().optional(),
2797
- font: z132.literal("tscircuit2024").default("tscircuit2024"),
2845
+ subcircuit_id: z133.string().optional(),
2846
+ pcb_group_id: z133.string().optional(),
2847
+ font: z133.literal("tscircuit2024").default("tscircuit2024"),
2798
2848
  font_size: distance.default("1mm"),
2799
- pcb_component_id: z132.string(),
2800
- text: z132.string(),
2801
- ccw_rotation: z132.number().optional(),
2849
+ pcb_component_id: z133.string(),
2850
+ text: z133.string(),
2851
+ ccw_rotation: z133.number().optional(),
2802
2852
  layer: visible_layer,
2803
2853
  anchor_position: point.default({ x: 0, y: 0 }),
2804
- anchor_alignment: z132.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
2805
- color: z132.string().optional()
2854
+ anchor_alignment: z133.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
2855
+ color: z133.string().optional()
2806
2856
  }).describe(
2807
2857
  "Defines a fabrication note in text on the PCB, useful for leaving notes for assemblers or fabricators"
2808
2858
  );
2809
2859
  expectTypesMatch(true);
2810
2860
 
2811
2861
  // src/pcb/pcb_fabrication_note_path.ts
2812
- import { z as z133 } from "zod";
2813
- var pcb_fabrication_note_path = z133.object({
2814
- type: z133.literal("pcb_fabrication_note_path"),
2862
+ import { z as z134 } from "zod";
2863
+ var pcb_fabrication_note_path = z134.object({
2864
+ type: z134.literal("pcb_fabrication_note_path"),
2815
2865
  pcb_fabrication_note_path_id: getZodPrefixedIdWithDefault(
2816
2866
  "pcb_fabrication_note_path"
2817
2867
  ),
2818
- pcb_component_id: z133.string(),
2819
- subcircuit_id: z133.string().optional(),
2868
+ pcb_component_id: z134.string(),
2869
+ subcircuit_id: z134.string().optional(),
2820
2870
  layer: layer_ref,
2821
- route: z133.array(point),
2871
+ route: z134.array(point),
2822
2872
  stroke_width: length,
2823
- color: z133.string().optional()
2873
+ color: z134.string().optional()
2824
2874
  }).describe(
2825
2875
  "Defines a fabrication path on the PCB for fabricators or assemblers"
2826
2876
  );
2827
2877
  expectTypesMatch(true);
2828
2878
 
2829
2879
  // src/pcb/pcb_fabrication_note_rect.ts
2830
- import { z as z134 } from "zod";
2831
- var pcb_fabrication_note_rect = z134.object({
2832
- type: z134.literal("pcb_fabrication_note_rect"),
2880
+ import { z as z135 } from "zod";
2881
+ var pcb_fabrication_note_rect = z135.object({
2882
+ type: z135.literal("pcb_fabrication_note_rect"),
2833
2883
  pcb_fabrication_note_rect_id: getZodPrefixedIdWithDefault(
2834
2884
  "pcb_fabrication_note_rect"
2835
2885
  ),
2836
- pcb_component_id: z134.string(),
2837
- pcb_group_id: z134.string().optional(),
2838
- subcircuit_id: z134.string().optional(),
2886
+ pcb_component_id: z135.string(),
2887
+ pcb_group_id: z135.string().optional(),
2888
+ subcircuit_id: z135.string().optional(),
2839
2889
  center: point,
2840
2890
  width: length,
2841
2891
  height: length,
2842
2892
  layer: visible_layer,
2843
2893
  stroke_width: length.default("0.1mm"),
2844
2894
  corner_radius: length.optional(),
2845
- is_filled: z134.boolean().optional(),
2846
- has_stroke: z134.boolean().optional(),
2847
- is_stroke_dashed: z134.boolean().optional(),
2848
- color: z134.string().optional()
2895
+ is_filled: z135.boolean().optional(),
2896
+ has_stroke: z135.boolean().optional(),
2897
+ is_stroke_dashed: z135.boolean().optional(),
2898
+ color: z135.string().optional()
2849
2899
  }).describe("Defines a fabrication note rectangle on the PCB");
2850
2900
  expectTypesMatch(true);
2851
2901
 
2852
2902
  // src/pcb/pcb_fabrication_note_dimension.ts
2853
- import { z as z135 } from "zod";
2854
- var pcb_fabrication_note_dimension = z135.object({
2855
- type: z135.literal("pcb_fabrication_note_dimension"),
2903
+ import { z as z136 } from "zod";
2904
+ var pcb_fabrication_note_dimension = z136.object({
2905
+ type: z136.literal("pcb_fabrication_note_dimension"),
2856
2906
  pcb_fabrication_note_dimension_id: getZodPrefixedIdWithDefault(
2857
2907
  "pcb_fabrication_note_dimension"
2858
2908
  ),
2859
- pcb_component_id: z135.string(),
2860
- pcb_group_id: z135.string().optional(),
2861
- subcircuit_id: z135.string().optional(),
2909
+ pcb_component_id: z136.string(),
2910
+ pcb_group_id: z136.string().optional(),
2911
+ subcircuit_id: z136.string().optional(),
2862
2912
  layer: visible_layer,
2863
2913
  from: point,
2864
2914
  to: point,
2865
- text: z135.string().optional(),
2866
- text_ccw_rotation: z135.number().optional(),
2915
+ text: z136.string().optional(),
2916
+ text_ccw_rotation: z136.number().optional(),
2867
2917
  offset: length.optional(),
2868
2918
  offset_distance: length.optional(),
2869
- offset_direction: z135.object({
2870
- x: z135.number(),
2871
- y: z135.number()
2919
+ offset_direction: z136.object({
2920
+ x: z136.number(),
2921
+ y: z136.number()
2872
2922
  }).optional(),
2873
- font: z135.literal("tscircuit2024").default("tscircuit2024"),
2923
+ font: z136.literal("tscircuit2024").default("tscircuit2024"),
2874
2924
  font_size: length.default("1mm"),
2875
- color: z135.string().optional(),
2925
+ color: z136.string().optional(),
2876
2926
  arrow_size: length.default("1mm")
2877
2927
  }).describe("Defines a measurement annotation within PCB fabrication notes");
2878
2928
  expectTypesMatch(true);
2879
2929
 
2880
2930
  // src/pcb/pcb_note_text.ts
2881
- import { z as z136 } from "zod";
2882
- var pcb_note_text = z136.object({
2883
- type: z136.literal("pcb_note_text"),
2884
- pcb_note_text_id: getZodPrefixedIdWithDefault("pcb_note_text"),
2885
- pcb_component_id: z136.string().optional(),
2886
- pcb_group_id: z136.string().optional(),
2887
- subcircuit_id: z136.string().optional(),
2888
- name: z136.string().optional(),
2889
- font: z136.literal("tscircuit2024").default("tscircuit2024"),
2890
- font_size: distance.default("1mm"),
2891
- text: z136.string().optional(),
2892
- anchor_position: point.default({ x: 0, y: 0 }),
2893
- anchor_alignment: z136.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
2894
- layer: visible_layer.default("top"),
2895
- is_mirrored_from_top_view: z136.boolean().optional(),
2896
- color: z136.string().optional()
2897
- }).describe("Defines a documentation note in text on the PCB");
2898
- expectTypesMatch(true);
2899
-
2900
- // src/pcb/pcb_note_rect.ts
2901
2931
  import { z as z137 } from "zod";
2902
- var pcb_note_rect = z137.object({
2903
- type: z137.literal("pcb_note_rect"),
2904
- pcb_note_rect_id: getZodPrefixedIdWithDefault("pcb_note_rect"),
2932
+ var pcb_note_text = z137.object({
2933
+ type: z137.literal("pcb_note_text"),
2934
+ pcb_note_text_id: getZodPrefixedIdWithDefault("pcb_note_text"),
2905
2935
  pcb_component_id: z137.string().optional(),
2906
2936
  pcb_group_id: z137.string().optional(),
2907
2937
  subcircuit_id: z137.string().optional(),
2908
2938
  name: z137.string().optional(),
2939
+ font: z137.literal("tscircuit2024").default("tscircuit2024"),
2940
+ font_size: distance.default("1mm"),
2909
2941
  text: z137.string().optional(),
2910
- center: point,
2911
- width: length,
2912
- height: length,
2942
+ anchor_position: point.default({ x: 0, y: 0 }),
2943
+ anchor_alignment: z137.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
2913
2944
  layer: visible_layer.default("top"),
2914
- stroke_width: length.default("0.1mm"),
2915
- corner_radius: length.optional(),
2916
- is_filled: z137.boolean().optional(),
2917
- has_stroke: z137.boolean().optional(),
2918
- is_stroke_dashed: z137.boolean().optional(),
2945
+ is_mirrored_from_top_view: z137.boolean().optional(),
2919
2946
  color: z137.string().optional()
2920
- }).describe("Defines a rectangular documentation note on the PCB");
2947
+ }).describe("Defines a documentation note in text on the PCB");
2921
2948
  expectTypesMatch(true);
2922
2949
 
2923
- // src/pcb/pcb_note_path.ts
2950
+ // src/pcb/pcb_note_rect.ts
2924
2951
  import { z as z138 } from "zod";
2925
- var pcb_note_path = z138.object({
2926
- type: z138.literal("pcb_note_path"),
2927
- pcb_note_path_id: getZodPrefixedIdWithDefault("pcb_note_path"),
2952
+ var pcb_note_rect = z138.object({
2953
+ type: z138.literal("pcb_note_rect"),
2954
+ pcb_note_rect_id: getZodPrefixedIdWithDefault("pcb_note_rect"),
2928
2955
  pcb_component_id: z138.string().optional(),
2929
2956
  pcb_group_id: z138.string().optional(),
2930
2957
  subcircuit_id: z138.string().optional(),
2931
2958
  name: z138.string().optional(),
2932
2959
  text: z138.string().optional(),
2933
- route: z138.array(point),
2960
+ center: point,
2961
+ width: length,
2962
+ height: length,
2934
2963
  layer: visible_layer.default("top"),
2935
2964
  stroke_width: length.default("0.1mm"),
2965
+ corner_radius: length.optional(),
2966
+ is_filled: z138.boolean().optional(),
2967
+ has_stroke: z138.boolean().optional(),
2968
+ is_stroke_dashed: z138.boolean().optional(),
2936
2969
  color: z138.string().optional()
2937
- }).describe("Defines a polyline documentation note on the PCB");
2970
+ }).describe("Defines a rectangular documentation note on the PCB");
2938
2971
  expectTypesMatch(true);
2939
2972
 
2940
- // src/pcb/pcb_note_line.ts
2973
+ // src/pcb/pcb_note_path.ts
2941
2974
  import { z as z139 } from "zod";
2942
- var pcb_note_line = z139.object({
2943
- type: z139.literal("pcb_note_line"),
2944
- pcb_note_line_id: getZodPrefixedIdWithDefault("pcb_note_line"),
2975
+ var pcb_note_path = z139.object({
2976
+ type: z139.literal("pcb_note_path"),
2977
+ pcb_note_path_id: getZodPrefixedIdWithDefault("pcb_note_path"),
2945
2978
  pcb_component_id: z139.string().optional(),
2946
2979
  pcb_group_id: z139.string().optional(),
2947
2980
  subcircuit_id: z139.string().optional(),
2948
2981
  name: z139.string().optional(),
2949
2982
  text: z139.string().optional(),
2983
+ route: z139.array(point),
2984
+ layer: visible_layer.default("top"),
2985
+ stroke_width: length.default("0.1mm"),
2986
+ color: z139.string().optional()
2987
+ }).describe("Defines a polyline documentation note on the PCB");
2988
+ expectTypesMatch(true);
2989
+
2990
+ // src/pcb/pcb_note_line.ts
2991
+ import { z as z140 } from "zod";
2992
+ var pcb_note_line = z140.object({
2993
+ type: z140.literal("pcb_note_line"),
2994
+ pcb_note_line_id: getZodPrefixedIdWithDefault("pcb_note_line"),
2995
+ pcb_component_id: z140.string().optional(),
2996
+ pcb_group_id: z140.string().optional(),
2997
+ subcircuit_id: z140.string().optional(),
2998
+ name: z140.string().optional(),
2999
+ text: z140.string().optional(),
2950
3000
  x1: distance,
2951
3001
  y1: distance,
2952
3002
  x2: distance,
2953
3003
  y2: distance,
2954
3004
  layer: visible_layer.default("top"),
2955
3005
  stroke_width: distance.default("0.1mm"),
2956
- color: z139.string().optional(),
2957
- is_dashed: z139.boolean().optional()
3006
+ color: z140.string().optional(),
3007
+ is_dashed: z140.boolean().optional()
2958
3008
  }).describe("Defines a straight documentation note line on the PCB");
2959
3009
  expectTypesMatch(true);
2960
3010
 
2961
3011
  // src/pcb/pcb_note_dimension.ts
2962
- import { z as z140 } from "zod";
2963
- var pcb_note_dimension = z140.object({
2964
- type: z140.literal("pcb_note_dimension"),
3012
+ import { z as z141 } from "zod";
3013
+ var pcb_note_dimension = z141.object({
3014
+ type: z141.literal("pcb_note_dimension"),
2965
3015
  pcb_note_dimension_id: getZodPrefixedIdWithDefault("pcb_note_dimension"),
2966
- pcb_component_id: z140.string().optional(),
2967
- pcb_group_id: z140.string().optional(),
2968
- subcircuit_id: z140.string().optional(),
2969
- name: z140.string().optional(),
3016
+ pcb_component_id: z141.string().optional(),
3017
+ pcb_group_id: z141.string().optional(),
3018
+ subcircuit_id: z141.string().optional(),
3019
+ name: z141.string().optional(),
2970
3020
  from: point,
2971
3021
  to: point,
2972
- text: z140.string().optional(),
2973
- text_ccw_rotation: z140.number().optional(),
3022
+ text: z141.string().optional(),
3023
+ text_ccw_rotation: z141.number().optional(),
2974
3024
  offset_distance: length.optional(),
2975
- offset_direction: z140.object({
2976
- x: z140.number(),
2977
- y: z140.number()
3025
+ offset_direction: z141.object({
3026
+ x: z141.number(),
3027
+ y: z141.number()
2978
3028
  }).optional(),
2979
- font: z140.literal("tscircuit2024").default("tscircuit2024"),
3029
+ font: z141.literal("tscircuit2024").default("tscircuit2024"),
2980
3030
  font_size: length.default("1mm"),
2981
3031
  layer: visible_layer.default("top"),
2982
- color: z140.string().optional(),
3032
+ color: z141.string().optional(),
2983
3033
  arrow_size: length.default("1mm")
2984
3034
  }).describe("Defines a measurement annotation within PCB documentation notes");
2985
3035
  expectTypesMatch(true);
2986
3036
 
2987
3037
  // src/pcb/pcb_footprint_overlap_error.ts
2988
- import { z as z141 } from "zod";
3038
+ import { z as z142 } from "zod";
2989
3039
  var pcb_footprint_overlap_error = base_circuit_json_error.extend({
2990
- type: z141.literal("pcb_footprint_overlap_error"),
3040
+ type: z142.literal("pcb_footprint_overlap_error"),
2991
3041
  pcb_error_id: getZodPrefixedIdWithDefault("pcb_error"),
2992
- error_type: z141.literal("pcb_footprint_overlap_error").default("pcb_footprint_overlap_error"),
2993
- pcb_smtpad_ids: z141.array(z141.string()).optional(),
2994
- pcb_plated_hole_ids: z141.array(z141.string()).optional(),
2995
- pcb_hole_ids: z141.array(z141.string()).optional(),
2996
- pcb_keepout_ids: z141.array(z141.string()).optional()
3042
+ error_type: z142.literal("pcb_footprint_overlap_error").default("pcb_footprint_overlap_error"),
3043
+ pcb_smtpad_ids: z142.array(z142.string()).optional(),
3044
+ pcb_plated_hole_ids: z142.array(z142.string()).optional(),
3045
+ pcb_hole_ids: z142.array(z142.string()).optional(),
3046
+ pcb_keepout_ids: z142.array(z142.string()).optional()
2997
3047
  }).describe("Error emitted when a pcb footprint overlaps with another element");
2998
3048
  expectTypesMatch(
2999
3049
  true
3000
3050
  );
3001
3051
 
3002
3052
  // src/pcb/pcb_courtyard_overlap_error.ts
3003
- import { z as z142 } from "zod";
3053
+ import { z as z143 } from "zod";
3004
3054
  var pcb_courtyard_overlap_error = base_circuit_json_error.extend({
3005
- type: z142.literal("pcb_courtyard_overlap_error"),
3055
+ type: z143.literal("pcb_courtyard_overlap_error"),
3006
3056
  pcb_error_id: getZodPrefixedIdWithDefault("pcb_error"),
3007
- error_type: z142.literal("pcb_courtyard_overlap_error").default("pcb_courtyard_overlap_error"),
3008
- pcb_component_ids: z142.tuple([z142.string(), z142.string()])
3057
+ error_type: z143.literal("pcb_courtyard_overlap_error").default("pcb_courtyard_overlap_error"),
3058
+ pcb_component_ids: z143.tuple([z143.string(), z143.string()])
3009
3059
  }).describe(
3010
3060
  "Error emitted when the courtyard (CrtYd) of one PCB component overlaps with the courtyard of another"
3011
3061
  );
@@ -3014,51 +3064,51 @@ expectTypesMatch(
3014
3064
  );
3015
3065
 
3016
3066
  // src/pcb/pcb_keepout.ts
3017
- import { z as z143 } from "zod";
3018
- var pcb_keepout = z143.object({
3019
- type: z143.literal("pcb_keepout"),
3020
- shape: z143.literal("rect"),
3021
- pcb_group_id: z143.string().optional(),
3022
- subcircuit_id: z143.string().optional(),
3067
+ import { z as z144 } from "zod";
3068
+ var pcb_keepout = z144.object({
3069
+ type: z144.literal("pcb_keepout"),
3070
+ shape: z144.literal("rect"),
3071
+ pcb_group_id: z144.string().optional(),
3072
+ subcircuit_id: z144.string().optional(),
3023
3073
  center: point,
3024
3074
  width: distance,
3025
3075
  height: distance,
3026
- pcb_keepout_id: z143.string(),
3027
- layers: z143.array(z143.string()),
3076
+ pcb_keepout_id: z144.string(),
3077
+ layers: z144.array(z144.string()),
3028
3078
  // Specify layers where the keepout applies
3029
- description: z143.string().optional(),
3079
+ description: z144.string().optional(),
3030
3080
  // Optional description of the keepout
3031
- excluded_pcb_component_ids: z143.array(z143.string()).optional()
3081
+ excluded_pcb_component_ids: z144.array(z144.string()).optional()
3032
3082
  }).or(
3033
- z143.object({
3034
- type: z143.literal("pcb_keepout"),
3035
- shape: z143.literal("circle"),
3036
- pcb_group_id: z143.string().optional(),
3037
- subcircuit_id: z143.string().optional(),
3083
+ z144.object({
3084
+ type: z144.literal("pcb_keepout"),
3085
+ shape: z144.literal("circle"),
3086
+ pcb_group_id: z144.string().optional(),
3087
+ subcircuit_id: z144.string().optional(),
3038
3088
  center: point,
3039
3089
  radius: distance,
3040
- pcb_keepout_id: z143.string(),
3041
- layers: z143.array(z143.string()),
3090
+ pcb_keepout_id: z144.string(),
3091
+ layers: z144.array(z144.string()),
3042
3092
  // Specify layers where the keepout applies
3043
- description: z143.string().optional(),
3093
+ description: z144.string().optional(),
3044
3094
  // Optional description of the keepout
3045
- excluded_pcb_component_ids: z143.array(z143.string()).optional()
3095
+ excluded_pcb_component_ids: z144.array(z144.string()).optional()
3046
3096
  })
3047
3097
  );
3048
3098
  expectTypesMatch(true);
3049
3099
 
3050
3100
  // src/pcb/pcb_cutout.ts
3051
- import { z as z144 } from "zod";
3052
- var pcb_cutout_base = z144.object({
3053
- type: z144.literal("pcb_cutout"),
3101
+ import { z as z145 } from "zod";
3102
+ var pcb_cutout_base = z145.object({
3103
+ type: z145.literal("pcb_cutout"),
3054
3104
  pcb_cutout_id: getZodPrefixedIdWithDefault("pcb_cutout"),
3055
- pcb_group_id: z144.string().optional(),
3056
- subcircuit_id: z144.string().optional(),
3057
- pcb_board_id: z144.string().optional(),
3058
- pcb_panel_id: z144.string().optional()
3105
+ pcb_group_id: z145.string().optional(),
3106
+ subcircuit_id: z145.string().optional(),
3107
+ pcb_board_id: z145.string().optional(),
3108
+ pcb_panel_id: z145.string().optional()
3059
3109
  });
3060
3110
  var pcb_cutout_rect = pcb_cutout_base.extend({
3061
- shape: z144.literal("rect"),
3111
+ shape: z145.literal("rect"),
3062
3112
  center: point,
3063
3113
  width: length,
3064
3114
  height: length,
@@ -3067,26 +3117,26 @@ var pcb_cutout_rect = pcb_cutout_base.extend({
3067
3117
  });
3068
3118
  expectTypesMatch(true);
3069
3119
  var pcb_cutout_circle = pcb_cutout_base.extend({
3070
- shape: z144.literal("circle"),
3120
+ shape: z145.literal("circle"),
3071
3121
  center: point,
3072
3122
  radius: length
3073
3123
  });
3074
3124
  expectTypesMatch(true);
3075
3125
  var pcb_cutout_polygon = pcb_cutout_base.extend({
3076
- shape: z144.literal("polygon"),
3077
- points: z144.array(point)
3126
+ shape: z145.literal("polygon"),
3127
+ points: z145.array(point)
3078
3128
  });
3079
3129
  expectTypesMatch(true);
3080
3130
  var pcb_cutout_path = pcb_cutout_base.extend({
3081
- shape: z144.literal("path"),
3082
- route: z144.array(point),
3131
+ shape: z145.literal("path"),
3132
+ route: z145.array(point),
3083
3133
  slot_width: length,
3084
3134
  slot_length: length.optional(),
3085
3135
  space_between_slots: length.optional(),
3086
3136
  slot_corner_radius: length.optional()
3087
3137
  });
3088
3138
  expectTypesMatch(true);
3089
- var pcb_cutout = z144.discriminatedUnion("shape", [
3139
+ var pcb_cutout = z145.discriminatedUnion("shape", [
3090
3140
  pcb_cutout_rect,
3091
3141
  pcb_cutout_circle,
3092
3142
  pcb_cutout_polygon,
@@ -3095,169 +3145,169 @@ var pcb_cutout = z144.discriminatedUnion("shape", [
3095
3145
  expectTypesMatch(true);
3096
3146
 
3097
3147
  // src/pcb/pcb_missing_footprint_error.ts
3098
- import { z as z145 } from "zod";
3148
+ import { z as z146 } from "zod";
3099
3149
  var pcb_missing_footprint_error = base_circuit_json_error.extend({
3100
- type: z145.literal("pcb_missing_footprint_error"),
3150
+ type: z146.literal("pcb_missing_footprint_error"),
3101
3151
  pcb_missing_footprint_error_id: getZodPrefixedIdWithDefault(
3102
3152
  "pcb_missing_footprint_error"
3103
3153
  ),
3104
- pcb_group_id: z145.string().optional(),
3105
- subcircuit_id: z145.string().optional(),
3106
- error_type: z145.literal("pcb_missing_footprint_error").default("pcb_missing_footprint_error"),
3107
- source_component_id: z145.string()
3154
+ pcb_group_id: z146.string().optional(),
3155
+ subcircuit_id: z146.string().optional(),
3156
+ error_type: z146.literal("pcb_missing_footprint_error").default("pcb_missing_footprint_error"),
3157
+ source_component_id: z146.string()
3108
3158
  }).describe("Defines a missing footprint error on the PCB");
3109
3159
  expectTypesMatch(
3110
3160
  true
3111
3161
  );
3112
3162
 
3113
3163
  // src/pcb/external_footprint_load_error.ts
3114
- import { z as z146 } from "zod";
3164
+ import { z as z147 } from "zod";
3115
3165
  var external_footprint_load_error = base_circuit_json_error.extend({
3116
- type: z146.literal("external_footprint_load_error"),
3166
+ type: z147.literal("external_footprint_load_error"),
3117
3167
  external_footprint_load_error_id: getZodPrefixedIdWithDefault(
3118
3168
  "external_footprint_load_error"
3119
3169
  ),
3120
- pcb_component_id: z146.string(),
3121
- source_component_id: z146.string(),
3122
- pcb_group_id: z146.string().optional(),
3123
- subcircuit_id: z146.string().optional(),
3124
- footprinter_string: z146.string().optional(),
3125
- error_type: z146.literal("external_footprint_load_error").default("external_footprint_load_error")
3170
+ pcb_component_id: z147.string(),
3171
+ source_component_id: z147.string(),
3172
+ pcb_group_id: z147.string().optional(),
3173
+ subcircuit_id: z147.string().optional(),
3174
+ footprinter_string: z147.string().optional(),
3175
+ error_type: z147.literal("external_footprint_load_error").default("external_footprint_load_error")
3126
3176
  }).describe("Defines an error when an external footprint fails to load");
3127
3177
  expectTypesMatch(true);
3128
3178
 
3129
3179
  // src/pcb/circuit_json_footprint_load_error.ts
3130
- import { z as z147 } from "zod";
3180
+ import { z as z148 } from "zod";
3131
3181
  var circuit_json_footprint_load_error = base_circuit_json_error.extend({
3132
- type: z147.literal("circuit_json_footprint_load_error"),
3182
+ type: z148.literal("circuit_json_footprint_load_error"),
3133
3183
  circuit_json_footprint_load_error_id: getZodPrefixedIdWithDefault(
3134
3184
  "circuit_json_footprint_load_error"
3135
3185
  ),
3136
- pcb_component_id: z147.string(),
3137
- source_component_id: z147.string(),
3138
- pcb_group_id: z147.string().optional(),
3139
- subcircuit_id: z147.string().optional(),
3140
- error_type: z147.literal("circuit_json_footprint_load_error").default("circuit_json_footprint_load_error"),
3141
- circuit_json: z147.array(z147.any()).optional()
3186
+ pcb_component_id: z148.string(),
3187
+ source_component_id: z148.string(),
3188
+ pcb_group_id: z148.string().optional(),
3189
+ subcircuit_id: z148.string().optional(),
3190
+ error_type: z148.literal("circuit_json_footprint_load_error").default("circuit_json_footprint_load_error"),
3191
+ circuit_json: z148.array(z148.any()).optional()
3142
3192
  }).describe("Defines an error when a circuit JSON footprint fails to load");
3143
3193
  expectTypesMatch(true);
3144
3194
 
3145
3195
  // src/pcb/pcb_group.ts
3146
- import { z as z148 } from "zod";
3147
- var pcb_group = z148.object({
3148
- type: z148.literal("pcb_group"),
3196
+ import { z as z149 } from "zod";
3197
+ var pcb_group = z149.object({
3198
+ type: z149.literal("pcb_group"),
3149
3199
  pcb_group_id: getZodPrefixedIdWithDefault("pcb_group"),
3150
- source_group_id: z148.string(),
3151
- is_subcircuit: z148.boolean().optional(),
3152
- subcircuit_id: z148.string().optional(),
3200
+ source_group_id: z149.string(),
3201
+ is_subcircuit: z149.boolean().optional(),
3202
+ subcircuit_id: z149.string().optional(),
3153
3203
  width: length.optional(),
3154
3204
  height: length.optional(),
3155
3205
  center: point,
3156
- display_offset_x: z148.string().optional().describe(
3206
+ display_offset_x: z149.string().optional().describe(
3157
3207
  "How to display the x offset for this group, usually corresponding with how the user specified it"
3158
3208
  ),
3159
- display_offset_y: z148.string().optional().describe(
3209
+ display_offset_y: z149.string().optional().describe(
3160
3210
  "How to display the y offset for this group, usually corresponding with how the user specified it"
3161
3211
  ),
3162
- outline: z148.array(point).optional(),
3212
+ outline: z149.array(point).optional(),
3163
3213
  anchor_position: point.optional(),
3164
3214
  anchor_alignment: ninePointAnchor.default("center"),
3165
- position_mode: z148.enum(["packed", "relative_to_group_anchor", "none"]).optional(),
3166
- positioned_relative_to_pcb_group_id: z148.string().optional(),
3167
- positioned_relative_to_pcb_board_id: z148.string().optional(),
3168
- pcb_component_ids: z148.array(z148.string()),
3169
- child_layout_mode: z148.enum(["packed", "none"]).optional(),
3170
- name: z148.string().optional(),
3171
- description: z148.string().optional(),
3172
- layout_mode: z148.string().optional(),
3173
- autorouter_configuration: z148.object({
3215
+ position_mode: z149.enum(["packed", "relative_to_group_anchor", "none"]).optional(),
3216
+ positioned_relative_to_pcb_group_id: z149.string().optional(),
3217
+ positioned_relative_to_pcb_board_id: z149.string().optional(),
3218
+ pcb_component_ids: z149.array(z149.string()),
3219
+ child_layout_mode: z149.enum(["packed", "none"]).optional(),
3220
+ name: z149.string().optional(),
3221
+ description: z149.string().optional(),
3222
+ layout_mode: z149.string().optional(),
3223
+ autorouter_configuration: z149.object({
3174
3224
  trace_clearance: length
3175
3225
  }).optional(),
3176
- autorouter_used_string: z148.string().optional()
3226
+ autorouter_used_string: z149.string().optional()
3177
3227
  }).describe("Defines a group of components on the PCB");
3178
3228
  expectTypesMatch(true);
3179
3229
 
3180
3230
  // src/pcb/pcb_autorouting_error.ts
3181
- import { z as z149 } from "zod";
3231
+ import { z as z150 } from "zod";
3182
3232
  var pcb_autorouting_error = base_circuit_json_error.extend({
3183
- type: z149.literal("pcb_autorouting_error"),
3233
+ type: z150.literal("pcb_autorouting_error"),
3184
3234
  pcb_error_id: getZodPrefixedIdWithDefault("pcb_autorouting_error"),
3185
- error_type: z149.literal("pcb_autorouting_error").default("pcb_autorouting_error"),
3186
- subcircuit_id: z149.string().optional()
3235
+ error_type: z150.literal("pcb_autorouting_error").default("pcb_autorouting_error"),
3236
+ subcircuit_id: z150.string().optional()
3187
3237
  }).describe("The autorouting has failed to route a portion of the board");
3188
3238
  expectTypesMatch(true);
3189
3239
 
3190
3240
  // src/pcb/pcb_manual_edit_conflict_warning.ts
3191
- import { z as z150 } from "zod";
3192
- var pcb_manual_edit_conflict_warning = z150.object({
3193
- type: z150.literal("pcb_manual_edit_conflict_warning"),
3241
+ import { z as z151 } from "zod";
3242
+ var pcb_manual_edit_conflict_warning = z151.object({
3243
+ type: z151.literal("pcb_manual_edit_conflict_warning"),
3194
3244
  pcb_manual_edit_conflict_warning_id: getZodPrefixedIdWithDefault(
3195
3245
  "pcb_manual_edit_conflict_warning"
3196
3246
  ),
3197
- warning_type: z150.literal("pcb_manual_edit_conflict_warning").default("pcb_manual_edit_conflict_warning"),
3198
- message: z150.string(),
3199
- pcb_component_id: z150.string(),
3200
- pcb_group_id: z150.string().optional(),
3201
- subcircuit_id: z150.string().optional(),
3202
- source_component_id: z150.string()
3247
+ warning_type: z151.literal("pcb_manual_edit_conflict_warning").default("pcb_manual_edit_conflict_warning"),
3248
+ message: z151.string(),
3249
+ pcb_component_id: z151.string(),
3250
+ pcb_group_id: z151.string().optional(),
3251
+ subcircuit_id: z151.string().optional(),
3252
+ source_component_id: z151.string()
3203
3253
  }).describe(
3204
3254
  "Warning emitted when a component has both manual placement and explicit pcbX/pcbY coordinates"
3205
3255
  );
3206
3256
  expectTypesMatch(true);
3207
3257
 
3208
3258
  // src/pcb/pcb_connector_not_in_accessible_orientation_warning.ts
3209
- import { z as z151 } from "zod";
3210
- var connectorOrientationDirection = z151.enum(["x-", "x+", "y+", "y-"]);
3211
- var pcb_connector_not_in_accessible_orientation_warning = z151.object({
3212
- type: z151.literal("pcb_connector_not_in_accessible_orientation_warning"),
3259
+ import { z as z152 } from "zod";
3260
+ var connectorOrientationDirection = z152.enum(["x-", "x+", "y+", "y-"]);
3261
+ var pcb_connector_not_in_accessible_orientation_warning = z152.object({
3262
+ type: z152.literal("pcb_connector_not_in_accessible_orientation_warning"),
3213
3263
  pcb_connector_not_in_accessible_orientation_warning_id: getZodPrefixedIdWithDefault(
3214
3264
  "pcb_connector_not_in_accessible_orientation_warning"
3215
3265
  ),
3216
- warning_type: z151.literal("pcb_connector_not_in_accessible_orientation_warning").default("pcb_connector_not_in_accessible_orientation_warning"),
3217
- message: z151.string(),
3218
- pcb_component_id: z151.string(),
3219
- source_component_id: z151.string().optional(),
3220
- pcb_board_id: z151.string().optional(),
3266
+ warning_type: z152.literal("pcb_connector_not_in_accessible_orientation_warning").default("pcb_connector_not_in_accessible_orientation_warning"),
3267
+ message: z152.string(),
3268
+ pcb_component_id: z152.string(),
3269
+ source_component_id: z152.string().optional(),
3270
+ pcb_board_id: z152.string().optional(),
3221
3271
  facing_direction: connectorOrientationDirection,
3222
3272
  recommended_facing_direction: connectorOrientationDirection,
3223
- subcircuit_id: z151.string().optional()
3273
+ subcircuit_id: z152.string().optional()
3224
3274
  }).describe(
3225
3275
  "Warning emitted when a connector PCB component is facing inward toward the board and should be reoriented to an outward-facing direction"
3226
3276
  );
3227
3277
  expectTypesMatch(true);
3228
3278
 
3229
3279
  // src/pcb/supplier_footprint_mismatch_warning.ts
3230
- import { z as z152 } from "zod";
3231
- var supplier_footprint_mismatch_warning = z152.object({
3232
- type: z152.literal("supplier_footprint_mismatch_warning"),
3280
+ import { z as z153 } from "zod";
3281
+ var supplier_footprint_mismatch_warning = z153.object({
3282
+ type: z153.literal("supplier_footprint_mismatch_warning"),
3233
3283
  supplier_footprint_mismatch_warning_id: getZodPrefixedIdWithDefault(
3234
3284
  "supplier_footprint_mismatch_warning"
3235
3285
  ),
3236
- warning_type: z152.literal("supplier_footprint_mismatch_warning").default("supplier_footprint_mismatch_warning"),
3237
- message: z152.string(),
3238
- source_component_id: z152.string(),
3239
- pcb_component_id: z152.string().optional(),
3240
- pcb_group_id: z152.string().optional(),
3241
- subcircuit_id: z152.string().optional(),
3286
+ warning_type: z153.literal("supplier_footprint_mismatch_warning").default("supplier_footprint_mismatch_warning"),
3287
+ message: z153.string(),
3288
+ source_component_id: z153.string(),
3289
+ pcb_component_id: z153.string().optional(),
3290
+ pcb_group_id: z153.string().optional(),
3291
+ subcircuit_id: z153.string().optional(),
3242
3292
  supplier_name: supplier_name.optional(),
3243
- supplier_part_number: z152.string().optional(),
3244
- supplier_footprint_url: z152.string().optional(),
3245
- footprint_copper_intersection_over_union: z152.number()
3293
+ supplier_part_number: z153.string().optional(),
3294
+ supplier_footprint_url: z153.string().optional(),
3295
+ footprint_copper_intersection_over_union: z153.number()
3246
3296
  }).describe(
3247
3297
  "Warning emitted when a supplier part footprint does not match the expected footprint"
3248
3298
  );
3249
3299
  expectTypesMatch(true);
3250
3300
 
3251
3301
  // src/pcb/pcb_breakout_point.ts
3252
- import { z as z153 } from "zod";
3253
- var pcb_breakout_point = z153.object({
3254
- type: z153.literal("pcb_breakout_point"),
3302
+ import { z as z154 } from "zod";
3303
+ var pcb_breakout_point = z154.object({
3304
+ type: z154.literal("pcb_breakout_point"),
3255
3305
  pcb_breakout_point_id: getZodPrefixedIdWithDefault("pcb_breakout_point"),
3256
- pcb_group_id: z153.string(),
3257
- subcircuit_id: z153.string().optional(),
3258
- source_trace_id: z153.string().optional(),
3259
- source_port_id: z153.string().optional(),
3260
- source_net_id: z153.string().optional(),
3306
+ pcb_group_id: z154.string(),
3307
+ subcircuit_id: z154.string().optional(),
3308
+ source_trace_id: z154.string().optional(),
3309
+ source_port_id: z154.string().optional(),
3310
+ source_net_id: z154.string().optional(),
3261
3311
  x: distance,
3262
3312
  y: distance
3263
3313
  }).describe(
@@ -3266,61 +3316,61 @@ var pcb_breakout_point = z153.object({
3266
3316
  expectTypesMatch(true);
3267
3317
 
3268
3318
  // src/pcb/pcb_ground_plane.ts
3269
- import { z as z154 } from "zod";
3270
- var pcb_ground_plane = z154.object({
3271
- type: z154.literal("pcb_ground_plane"),
3319
+ import { z as z155 } from "zod";
3320
+ var pcb_ground_plane = z155.object({
3321
+ type: z155.literal("pcb_ground_plane"),
3272
3322
  pcb_ground_plane_id: getZodPrefixedIdWithDefault("pcb_ground_plane"),
3273
- source_pcb_ground_plane_id: z154.string(),
3274
- source_net_id: z154.string(),
3275
- pcb_group_id: z154.string().optional(),
3276
- subcircuit_id: z154.string().optional()
3323
+ source_pcb_ground_plane_id: z155.string(),
3324
+ source_net_id: z155.string(),
3325
+ pcb_group_id: z155.string().optional(),
3326
+ subcircuit_id: z155.string().optional()
3277
3327
  }).describe("Defines a ground plane on the PCB");
3278
3328
  expectTypesMatch(true);
3279
3329
 
3280
3330
  // src/pcb/pcb_ground_plane_region.ts
3281
- import { z as z155 } from "zod";
3282
- var pcb_ground_plane_region = z155.object({
3283
- type: z155.literal("pcb_ground_plane_region"),
3331
+ import { z as z156 } from "zod";
3332
+ var pcb_ground_plane_region = z156.object({
3333
+ type: z156.literal("pcb_ground_plane_region"),
3284
3334
  pcb_ground_plane_region_id: getZodPrefixedIdWithDefault(
3285
3335
  "pcb_ground_plane_region"
3286
3336
  ),
3287
- pcb_ground_plane_id: z155.string(),
3288
- pcb_group_id: z155.string().optional(),
3289
- subcircuit_id: z155.string().optional(),
3337
+ pcb_ground_plane_id: z156.string(),
3338
+ pcb_group_id: z156.string().optional(),
3339
+ subcircuit_id: z156.string().optional(),
3290
3340
  layer: layer_ref,
3291
- points: z155.array(point)
3341
+ points: z156.array(point)
3292
3342
  }).describe("Defines a polygon region of a ground plane");
3293
3343
  expectTypesMatch(true);
3294
3344
 
3295
3345
  // src/pcb/pcb_thermal_spoke.ts
3296
- import { z as z156 } from "zod";
3297
- var pcb_thermal_spoke = z156.object({
3298
- type: z156.literal("pcb_thermal_spoke"),
3346
+ import { z as z157 } from "zod";
3347
+ var pcb_thermal_spoke = z157.object({
3348
+ type: z157.literal("pcb_thermal_spoke"),
3299
3349
  pcb_thermal_spoke_id: getZodPrefixedIdWithDefault("pcb_thermal_spoke"),
3300
- pcb_ground_plane_id: z156.string(),
3301
- shape: z156.string(),
3302
- spoke_count: z156.number(),
3350
+ pcb_ground_plane_id: z157.string(),
3351
+ shape: z157.string(),
3352
+ spoke_count: z157.number(),
3303
3353
  spoke_thickness: distance,
3304
3354
  spoke_inner_diameter: distance,
3305
3355
  spoke_outer_diameter: distance,
3306
- pcb_plated_hole_id: z156.string().optional(),
3307
- subcircuit_id: z156.string().optional()
3356
+ pcb_plated_hole_id: z157.string().optional(),
3357
+ subcircuit_id: z157.string().optional()
3308
3358
  }).describe("Pattern for connecting a ground plane to a plated hole");
3309
3359
  expectTypesMatch(true);
3310
3360
 
3311
3361
  // src/pcb/pcb_copper_pour.ts
3312
- import { z as z157 } from "zod";
3313
- var pcb_copper_pour_base = z157.object({
3314
- type: z157.literal("pcb_copper_pour"),
3362
+ import { z as z158 } from "zod";
3363
+ var pcb_copper_pour_base = z158.object({
3364
+ type: z158.literal("pcb_copper_pour"),
3315
3365
  pcb_copper_pour_id: getZodPrefixedIdWithDefault("pcb_copper_pour"),
3316
- pcb_group_id: z157.string().optional(),
3317
- subcircuit_id: z157.string().optional(),
3366
+ pcb_group_id: z158.string().optional(),
3367
+ subcircuit_id: z158.string().optional(),
3318
3368
  layer: layer_ref,
3319
- source_net_id: z157.string().optional(),
3320
- covered_with_solder_mask: z157.boolean().optional().default(true)
3369
+ source_net_id: z158.string().optional(),
3370
+ covered_with_solder_mask: z158.boolean().optional().default(true)
3321
3371
  });
3322
3372
  var pcb_copper_pour_rect = pcb_copper_pour_base.extend({
3323
- shape: z157.literal("rect"),
3373
+ shape: z158.literal("rect"),
3324
3374
  center: point,
3325
3375
  width: length,
3326
3376
  height: length,
@@ -3328,16 +3378,16 @@ var pcb_copper_pour_rect = pcb_copper_pour_base.extend({
3328
3378
  });
3329
3379
  expectTypesMatch(true);
3330
3380
  var pcb_copper_pour_brep = pcb_copper_pour_base.extend({
3331
- shape: z157.literal("brep"),
3381
+ shape: z158.literal("brep"),
3332
3382
  brep_shape
3333
3383
  });
3334
3384
  expectTypesMatch(true);
3335
3385
  var pcb_copper_pour_polygon = pcb_copper_pour_base.extend({
3336
- shape: z157.literal("polygon"),
3337
- points: z157.array(point)
3386
+ shape: z158.literal("polygon"),
3387
+ points: z158.array(point)
3338
3388
  });
3339
3389
  expectTypesMatch(true);
3340
- var pcb_copper_pour = z157.discriminatedUnion("shape", [
3390
+ var pcb_copper_pour = z158.discriminatedUnion("shape", [
3341
3391
  pcb_copper_pour_rect,
3342
3392
  pcb_copper_pour_brep,
3343
3393
  pcb_copper_pour_polygon
@@ -3345,99 +3395,99 @@ var pcb_copper_pour = z157.discriminatedUnion("shape", [
3345
3395
  expectTypesMatch(true);
3346
3396
 
3347
3397
  // src/pcb/pcb_component_outside_board_error.ts
3348
- import { z as z158 } from "zod";
3398
+ import { z as z159 } from "zod";
3349
3399
  var pcb_component_outside_board_error = base_circuit_json_error.extend({
3350
- type: z158.literal("pcb_component_outside_board_error"),
3400
+ type: z159.literal("pcb_component_outside_board_error"),
3351
3401
  pcb_component_outside_board_error_id: getZodPrefixedIdWithDefault(
3352
3402
  "pcb_component_outside_board_error"
3353
3403
  ),
3354
- error_type: z158.literal("pcb_component_outside_board_error").default("pcb_component_outside_board_error"),
3355
- pcb_component_id: z158.string(),
3356
- pcb_board_id: z158.string(),
3404
+ error_type: z159.literal("pcb_component_outside_board_error").default("pcb_component_outside_board_error"),
3405
+ pcb_component_id: z159.string(),
3406
+ pcb_board_id: z159.string(),
3357
3407
  component_center: point,
3358
- component_bounds: z158.object({
3359
- min_x: z158.number(),
3360
- max_x: z158.number(),
3361
- min_y: z158.number(),
3362
- max_y: z158.number()
3408
+ component_bounds: z159.object({
3409
+ min_x: z159.number(),
3410
+ max_x: z159.number(),
3411
+ min_y: z159.number(),
3412
+ max_y: z159.number()
3363
3413
  }),
3364
- subcircuit_id: z158.string().optional(),
3365
- source_component_id: z158.string().optional()
3414
+ subcircuit_id: z159.string().optional(),
3415
+ source_component_id: z159.string().optional()
3366
3416
  }).describe(
3367
3417
  "Error emitted when a PCB component is placed outside the board boundaries"
3368
3418
  );
3369
3419
  expectTypesMatch(true);
3370
3420
 
3371
3421
  // src/pcb/pcb_component_not_on_board_edge_error.ts
3372
- import { z as z159 } from "zod";
3422
+ import { z as z160 } from "zod";
3373
3423
  var pcb_component_not_on_board_edge_error = base_circuit_json_error.extend({
3374
- type: z159.literal("pcb_component_not_on_board_edge_error"),
3424
+ type: z160.literal("pcb_component_not_on_board_edge_error"),
3375
3425
  pcb_component_not_on_board_edge_error_id: getZodPrefixedIdWithDefault(
3376
3426
  "pcb_component_not_on_board_edge_error"
3377
3427
  ),
3378
- error_type: z159.literal("pcb_component_not_on_board_edge_error").default("pcb_component_not_on_board_edge_error"),
3379
- pcb_component_id: z159.string(),
3380
- pcb_board_id: z159.string(),
3428
+ error_type: z160.literal("pcb_component_not_on_board_edge_error").default("pcb_component_not_on_board_edge_error"),
3429
+ pcb_component_id: z160.string(),
3430
+ pcb_board_id: z160.string(),
3381
3431
  component_center: point,
3382
- pad_to_nearest_board_edge_distance: z159.number(),
3383
- source_component_id: z159.string().optional(),
3384
- subcircuit_id: z159.string().optional()
3432
+ pad_to_nearest_board_edge_distance: z160.number(),
3433
+ source_component_id: z160.string().optional(),
3434
+ subcircuit_id: z160.string().optional()
3385
3435
  }).describe(
3386
3436
  "Error emitted when a component that must be placed on the board edge is centered away from the edge"
3387
3437
  );
3388
3438
  expectTypesMatch(true);
3389
3439
 
3390
3440
  // src/pcb/pcb_component_invalid_layer_error.ts
3391
- import { z as z160 } from "zod";
3441
+ import { z as z161 } from "zod";
3392
3442
  var pcb_component_invalid_layer_error = base_circuit_json_error.extend({
3393
- type: z160.literal("pcb_component_invalid_layer_error"),
3443
+ type: z161.literal("pcb_component_invalid_layer_error"),
3394
3444
  pcb_component_invalid_layer_error_id: getZodPrefixedIdWithDefault(
3395
3445
  "pcb_component_invalid_layer_error"
3396
3446
  ),
3397
- error_type: z160.literal("pcb_component_invalid_layer_error").default("pcb_component_invalid_layer_error"),
3398
- pcb_component_id: z160.string().optional(),
3399
- source_component_id: z160.string(),
3447
+ error_type: z161.literal("pcb_component_invalid_layer_error").default("pcb_component_invalid_layer_error"),
3448
+ pcb_component_id: z161.string().optional(),
3449
+ source_component_id: z161.string(),
3400
3450
  layer: layer_ref,
3401
- subcircuit_id: z160.string().optional()
3451
+ subcircuit_id: z161.string().optional()
3402
3452
  }).describe(
3403
3453
  "Error emitted when a component is placed on an invalid layer (components can only be on 'top' or 'bottom' layers)"
3404
3454
  );
3405
3455
  expectTypesMatch(true);
3406
3456
 
3407
3457
  // src/pcb/pcb_via_clearance_error.ts
3408
- import { z as z161 } from "zod";
3458
+ import { z as z162 } from "zod";
3409
3459
  var pcb_via_clearance_error = base_circuit_json_error.extend({
3410
- type: z161.literal("pcb_via_clearance_error"),
3460
+ type: z162.literal("pcb_via_clearance_error"),
3411
3461
  pcb_error_id: getZodPrefixedIdWithDefault("pcb_error"),
3412
- error_type: z161.literal("pcb_via_clearance_error").default("pcb_via_clearance_error"),
3413
- pcb_via_ids: z161.array(z161.string()).min(2),
3462
+ error_type: z162.literal("pcb_via_clearance_error").default("pcb_via_clearance_error"),
3463
+ pcb_via_ids: z162.array(z162.string()).min(2),
3414
3464
  minimum_clearance: distance.optional(),
3415
3465
  actual_clearance: distance.optional(),
3416
- pcb_center: z161.object({
3417
- x: z161.number().optional(),
3418
- y: z161.number().optional()
3466
+ pcb_center: z162.object({
3467
+ x: z162.number().optional(),
3468
+ y: z162.number().optional()
3419
3469
  }).optional(),
3420
- subcircuit_id: z161.string().optional()
3470
+ subcircuit_id: z162.string().optional()
3421
3471
  }).describe("Error emitted when vias are closer than the allowed clearance");
3422
3472
  expectTypesMatch(true);
3423
3473
 
3424
3474
  // src/pcb/pcb_via_trace_clearance_error.ts
3425
- import { z as z162 } from "zod";
3475
+ import { z as z163 } from "zod";
3426
3476
  var pcb_via_trace_clearance_error = base_circuit_json_error.extend({
3427
- type: z162.literal("pcb_via_trace_clearance_error"),
3477
+ type: z163.literal("pcb_via_trace_clearance_error"),
3428
3478
  pcb_via_trace_clearance_error_id: getZodPrefixedIdWithDefault(
3429
3479
  "pcb_via_trace_clearance_error"
3430
3480
  ),
3431
- error_type: z162.literal("pcb_via_trace_clearance_error").default("pcb_via_trace_clearance_error"),
3432
- pcb_via_id: z162.string(),
3433
- pcb_trace_id: z162.string(),
3481
+ error_type: z163.literal("pcb_via_trace_clearance_error").default("pcb_via_trace_clearance_error"),
3482
+ pcb_via_id: z163.string(),
3483
+ pcb_trace_id: z163.string(),
3434
3484
  minimum_clearance: distance.optional(),
3435
3485
  actual_clearance: distance.optional(),
3436
- center: z162.object({
3437
- x: z162.number().optional(),
3438
- y: z162.number().optional()
3486
+ center: z163.object({
3487
+ x: z163.number().optional(),
3488
+ y: z163.number().optional()
3439
3489
  }).optional(),
3440
- subcircuit_id: z162.string().optional()
3490
+ subcircuit_id: z163.string().optional()
3441
3491
  }).describe(
3442
3492
  "Error emitted when a via and trace are closer than the allowed clearance"
3443
3493
  );
@@ -3446,41 +3496,41 @@ expectTypesMatch(
3446
3496
  );
3447
3497
 
3448
3498
  // src/pcb/pcb_pad_pad_clearance_error.ts
3449
- import { z as z163 } from "zod";
3499
+ import { z as z164 } from "zod";
3450
3500
  var pcb_pad_pad_clearance_error = base_circuit_json_error.extend({
3451
- type: z163.literal("pcb_pad_pad_clearance_error"),
3501
+ type: z164.literal("pcb_pad_pad_clearance_error"),
3452
3502
  pcb_pad_pad_clearance_error_id: getZodPrefixedIdWithDefault(
3453
3503
  "pcb_pad_pad_clearance_error"
3454
3504
  ),
3455
- error_type: z163.literal("pcb_pad_pad_clearance_error").default("pcb_pad_pad_clearance_error"),
3456
- pcb_pad_ids: z163.array(z163.string()).min(2),
3505
+ error_type: z164.literal("pcb_pad_pad_clearance_error").default("pcb_pad_pad_clearance_error"),
3506
+ pcb_pad_ids: z164.array(z164.string()).min(2),
3457
3507
  minimum_clearance: distance.optional(),
3458
3508
  actual_clearance: distance.optional(),
3459
- center: z163.object({
3460
- x: z163.number().optional(),
3461
- y: z163.number().optional()
3509
+ center: z164.object({
3510
+ x: z164.number().optional(),
3511
+ y: z164.number().optional()
3462
3512
  }).optional(),
3463
- subcircuit_id: z163.string().optional()
3513
+ subcircuit_id: z164.string().optional()
3464
3514
  }).describe("Error emitted when pads are closer than the allowed clearance");
3465
3515
  expectTypesMatch(true);
3466
3516
 
3467
3517
  // src/pcb/pcb_pad_trace_clearance_error.ts
3468
- import { z as z164 } from "zod";
3518
+ import { z as z165 } from "zod";
3469
3519
  var pcb_pad_trace_clearance_error = base_circuit_json_error.extend({
3470
- type: z164.literal("pcb_pad_trace_clearance_error"),
3520
+ type: z165.literal("pcb_pad_trace_clearance_error"),
3471
3521
  pcb_pad_trace_clearance_error_id: getZodPrefixedIdWithDefault(
3472
3522
  "pcb_pad_trace_clearance_error"
3473
3523
  ),
3474
- error_type: z164.literal("pcb_pad_trace_clearance_error").default("pcb_pad_trace_clearance_error"),
3475
- pcb_pad_id: z164.string(),
3476
- pcb_trace_id: z164.string(),
3524
+ error_type: z165.literal("pcb_pad_trace_clearance_error").default("pcb_pad_trace_clearance_error"),
3525
+ pcb_pad_id: z165.string(),
3526
+ pcb_trace_id: z165.string(),
3477
3527
  minimum_clearance: distance.optional(),
3478
3528
  actual_clearance: distance.optional(),
3479
- center: z164.object({
3480
- x: z164.number().optional(),
3481
- y: z164.number().optional()
3529
+ center: z165.object({
3530
+ x: z165.number().optional(),
3531
+ y: z165.number().optional()
3482
3532
  }).optional(),
3483
- subcircuit_id: z164.string().optional()
3533
+ subcircuit_id: z165.string().optional()
3484
3534
  }).describe(
3485
3535
  "Error emitted when a pad and trace are closer than allowed clearance"
3486
3536
  );
@@ -3489,89 +3539,89 @@ expectTypesMatch(
3489
3539
  );
3490
3540
 
3491
3541
  // src/pcb/pcb_courtyard_rect.ts
3492
- import { z as z165 } from "zod";
3493
- var pcb_courtyard_rect = z165.object({
3494
- type: z165.literal("pcb_courtyard_rect"),
3542
+ import { z as z166 } from "zod";
3543
+ var pcb_courtyard_rect = z166.object({
3544
+ type: z166.literal("pcb_courtyard_rect"),
3495
3545
  pcb_courtyard_rect_id: getZodPrefixedIdWithDefault("pcb_courtyard_rect"),
3496
- pcb_component_id: z165.string(),
3497
- pcb_group_id: z165.string().optional(),
3498
- subcircuit_id: z165.string().optional(),
3546
+ pcb_component_id: z166.string(),
3547
+ pcb_group_id: z166.string().optional(),
3548
+ subcircuit_id: z166.string().optional(),
3499
3549
  center: point,
3500
3550
  width: length,
3501
3551
  height: length,
3502
3552
  layer: visible_layer,
3503
3553
  ccw_rotation: rotation.optional(),
3504
- color: z165.string().optional()
3554
+ color: z166.string().optional()
3505
3555
  }).describe("Defines a courtyard rectangle on the PCB");
3506
3556
  expectTypesMatch(true);
3507
3557
 
3508
3558
  // src/pcb/pcb_courtyard_outline.ts
3509
- import { z as z166 } from "zod";
3510
- var pcb_courtyard_outline = z166.object({
3511
- type: z166.literal("pcb_courtyard_outline"),
3559
+ import { z as z167 } from "zod";
3560
+ var pcb_courtyard_outline = z167.object({
3561
+ type: z167.literal("pcb_courtyard_outline"),
3512
3562
  pcb_courtyard_outline_id: getZodPrefixedIdWithDefault(
3513
3563
  "pcb_courtyard_outline"
3514
3564
  ),
3515
- pcb_component_id: z166.string(),
3516
- pcb_group_id: z166.string().optional(),
3517
- subcircuit_id: z166.string().optional(),
3565
+ pcb_component_id: z167.string(),
3566
+ pcb_group_id: z167.string().optional(),
3567
+ subcircuit_id: z167.string().optional(),
3518
3568
  layer: visible_layer,
3519
- outline: z166.array(point).min(2)
3569
+ outline: z167.array(point).min(2)
3520
3570
  }).describe("Defines a courtyard outline on the PCB");
3521
3571
  expectTypesMatch(true);
3522
3572
 
3523
3573
  // src/pcb/pcb_courtyard_polygon.ts
3524
- import { z as z167 } from "zod";
3525
- var pcb_courtyard_polygon = z167.object({
3526
- type: z167.literal("pcb_courtyard_polygon"),
3574
+ import { z as z168 } from "zod";
3575
+ var pcb_courtyard_polygon = z168.object({
3576
+ type: z168.literal("pcb_courtyard_polygon"),
3527
3577
  pcb_courtyard_polygon_id: getZodPrefixedIdWithDefault(
3528
3578
  "pcb_courtyard_polygon"
3529
3579
  ),
3530
- pcb_component_id: z167.string(),
3531
- pcb_group_id: z167.string().optional(),
3532
- subcircuit_id: z167.string().optional(),
3580
+ pcb_component_id: z168.string(),
3581
+ pcb_group_id: z168.string().optional(),
3582
+ subcircuit_id: z168.string().optional(),
3533
3583
  layer: visible_layer,
3534
- points: z167.array(point).min(3),
3535
- color: z167.string().optional()
3584
+ points: z168.array(point).min(3),
3585
+ color: z168.string().optional()
3536
3586
  }).describe("Defines a courtyard polygon on the PCB");
3537
3587
  expectTypesMatch(true);
3538
3588
 
3539
3589
  // src/pcb/pcb_courtyard_circle.ts
3540
- import { z as z168 } from "zod";
3541
- var pcb_courtyard_circle = z168.object({
3542
- type: z168.literal("pcb_courtyard_circle"),
3590
+ import { z as z169 } from "zod";
3591
+ var pcb_courtyard_circle = z169.object({
3592
+ type: z169.literal("pcb_courtyard_circle"),
3543
3593
  pcb_courtyard_circle_id: getZodPrefixedIdWithDefault(
3544
3594
  "pcb_courtyard_circle"
3545
3595
  ),
3546
- pcb_component_id: z168.string(),
3547
- pcb_group_id: z168.string().optional(),
3548
- subcircuit_id: z168.string().optional(),
3596
+ pcb_component_id: z169.string(),
3597
+ pcb_group_id: z169.string().optional(),
3598
+ subcircuit_id: z169.string().optional(),
3549
3599
  center: point,
3550
3600
  radius: length,
3551
3601
  layer: visible_layer,
3552
- color: z168.string().optional()
3602
+ color: z169.string().optional()
3553
3603
  }).describe("Defines a courtyard circle on the PCB");
3554
3604
  expectTypesMatch(true);
3555
3605
 
3556
3606
  // src/pcb/pcb_courtyard_pill.ts
3557
- import { z as z169 } from "zod";
3558
- var pcb_courtyard_pill = z169.object({
3559
- type: z169.literal("pcb_courtyard_pill"),
3607
+ import { z as z170 } from "zod";
3608
+ var pcb_courtyard_pill = z170.object({
3609
+ type: z170.literal("pcb_courtyard_pill"),
3560
3610
  pcb_courtyard_pill_id: getZodPrefixedIdWithDefault("pcb_courtyard_pill"),
3561
- pcb_component_id: z169.string(),
3562
- pcb_group_id: z169.string().optional(),
3563
- subcircuit_id: z169.string().optional(),
3611
+ pcb_component_id: z170.string(),
3612
+ pcb_group_id: z170.string().optional(),
3613
+ subcircuit_id: z170.string().optional(),
3564
3614
  center: point,
3565
3615
  width: length,
3566
3616
  height: length,
3567
3617
  radius: length,
3568
3618
  layer: visible_layer,
3569
- color: z169.string().optional()
3619
+ color: z170.string().optional()
3570
3620
  }).describe("Defines a courtyard pill on the PCB");
3571
3621
  expectTypesMatch(true);
3572
3622
 
3573
3623
  // src/cad/cad_component.ts
3574
- import { z as z170 } from "zod";
3624
+ import { z as z171 } from "zod";
3575
3625
 
3576
3626
  // src/cad/cad_model_conventions.ts
3577
3627
  var cad_model_formats = [
@@ -3602,49 +3652,49 @@ var cadModelDefaultDirectionMap = {
3602
3652
  };
3603
3653
 
3604
3654
  // src/cad/cad_component.ts
3605
- var cad_component = z170.object({
3606
- type: z170.literal("cad_component"),
3607
- cad_component_id: z170.string(),
3608
- pcb_component_id: z170.string(),
3609
- source_component_id: z170.string(),
3655
+ var cad_component = z171.object({
3656
+ type: z171.literal("cad_component"),
3657
+ cad_component_id: z171.string(),
3658
+ pcb_component_id: z171.string(),
3659
+ source_component_id: z171.string(),
3610
3660
  position: point3,
3611
3661
  rotation: point3.optional(),
3612
3662
  size: point3.optional(),
3613
3663
  layer: layer_ref.optional(),
3614
- subcircuit_id: z170.string().optional(),
3664
+ subcircuit_id: z171.string().optional(),
3615
3665
  // These are all ways to generate/load the 3d model
3616
- footprinter_string: z170.string().optional(),
3617
- model_obj_url: z170.string().optional(),
3618
- model_stl_url: z170.string().optional(),
3619
- model_3mf_url: z170.string().optional(),
3620
- model_gltf_url: z170.string().optional(),
3621
- model_glb_url: z170.string().optional(),
3622
- model_step_url: z170.string().optional(),
3623
- model_wrl_url: z170.string().optional(),
3666
+ footprinter_string: z171.string().optional(),
3667
+ model_obj_url: z171.string().optional(),
3668
+ model_stl_url: z171.string().optional(),
3669
+ model_3mf_url: z171.string().optional(),
3670
+ model_gltf_url: z171.string().optional(),
3671
+ model_glb_url: z171.string().optional(),
3672
+ model_step_url: z171.string().optional(),
3673
+ model_wrl_url: z171.string().optional(),
3624
3674
  model_asset: asset.optional(),
3625
- model_unit_to_mm_scale_factor: z170.number().optional(),
3626
- model_board_normal_direction: z170.enum(cad_model_axis_directions).optional().describe(
3675
+ model_unit_to_mm_scale_factor: z171.number().optional(),
3676
+ model_board_normal_direction: z171.enum(cad_model_axis_directions).optional().describe(
3627
3677
  `The direction in the model's coordinate space that is considered "up" or "coming out of the board surface"`
3628
3678
  ),
3629
3679
  model_origin_position: point3.optional(),
3630
- model_origin_alignment: z170.enum([
3680
+ model_origin_alignment: z171.enum([
3631
3681
  "unknown",
3632
3682
  "center",
3633
3683
  "center_of_component_on_board_surface",
3634
3684
  "bottom_center_of_component"
3635
3685
  ]).optional(),
3636
- model_object_fit: z170.enum(["contain_within_bounds", "fill_bounds"]).optional().default("contain_within_bounds"),
3637
- model_jscad: z170.any().optional(),
3638
- show_as_translucent_model: z170.boolean().optional(),
3639
- show_as_bounding_box: z170.boolean().optional(),
3640
- anchor_alignment: z170.enum(["center", "center_of_component_on_board_surface"]).optional().default("center")
3686
+ model_object_fit: z171.enum(["contain_within_bounds", "fill_bounds"]).optional().default("contain_within_bounds"),
3687
+ model_jscad: z171.any().optional(),
3688
+ show_as_translucent_model: z171.boolean().optional(),
3689
+ show_as_bounding_box: z171.boolean().optional(),
3690
+ anchor_alignment: z171.enum(["center", "center_of_component_on_board_surface"]).optional().default("center")
3641
3691
  }).describe("Defines a component on the PCB");
3642
3692
  expectTypesMatch(true);
3643
3693
 
3644
3694
  // src/simulation/simulation_voltage_source.ts
3645
- import { z as z171 } from "zod";
3646
- var wave_shape = z171.enum(["sinewave", "square", "triangle", "sawtooth"]);
3647
- var percentage = z171.union([z171.string(), z171.number()]).transform((val) => {
3695
+ import { z as z172 } from "zod";
3696
+ var wave_shape = z172.enum(["sinewave", "square", "triangle", "sawtooth"]);
3697
+ var percentage = z172.union([z172.string(), z172.number()]).transform((val) => {
3648
3698
  if (typeof val === "string") {
3649
3699
  if (val.endsWith("%")) {
3650
3700
  return parseFloat(val.slice(0, -1)) / 100;
@@ -3653,32 +3703,32 @@ var percentage = z171.union([z171.string(), z171.number()]).transform((val) => {
3653
3703
  }
3654
3704
  return val;
3655
3705
  }).pipe(
3656
- z171.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
3706
+ z172.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
3657
3707
  );
3658
- var simulation_dc_voltage_source = z171.object({
3659
- type: z171.literal("simulation_voltage_source"),
3708
+ var simulation_dc_voltage_source = z172.object({
3709
+ type: z172.literal("simulation_voltage_source"),
3660
3710
  simulation_voltage_source_id: getZodPrefixedIdWithDefault(
3661
3711
  "simulation_voltage_source"
3662
3712
  ),
3663
- is_dc_source: z171.literal(true).optional().default(true),
3664
- positive_source_port_id: z171.string().optional(),
3665
- negative_source_port_id: z171.string().optional(),
3666
- positive_source_net_id: z171.string().optional(),
3667
- negative_source_net_id: z171.string().optional(),
3713
+ is_dc_source: z172.literal(true).optional().default(true),
3714
+ positive_source_port_id: z172.string().optional(),
3715
+ negative_source_port_id: z172.string().optional(),
3716
+ positive_source_net_id: z172.string().optional(),
3717
+ negative_source_net_id: z172.string().optional(),
3668
3718
  voltage,
3669
3719
  ac_magnitude: voltage.optional(),
3670
3720
  ac_phase: rotation.optional()
3671
3721
  }).describe("Defines a DC voltage source for simulation");
3672
- var simulation_ac_voltage_source = z171.object({
3673
- type: z171.literal("simulation_voltage_source"),
3722
+ var simulation_ac_voltage_source = z172.object({
3723
+ type: z172.literal("simulation_voltage_source"),
3674
3724
  simulation_voltage_source_id: getZodPrefixedIdWithDefault(
3675
3725
  "simulation_voltage_source"
3676
3726
  ),
3677
- is_dc_source: z171.literal(false),
3678
- terminal1_source_port_id: z171.string().optional(),
3679
- terminal2_source_port_id: z171.string().optional(),
3680
- terminal1_source_net_id: z171.string().optional(),
3681
- terminal2_source_net_id: z171.string().optional(),
3727
+ is_dc_source: z172.literal(false),
3728
+ terminal1_source_port_id: z172.string().optional(),
3729
+ terminal2_source_port_id: z172.string().optional(),
3730
+ terminal1_source_net_id: z172.string().optional(),
3731
+ terminal2_source_net_id: z172.string().optional(),
3682
3732
  voltage: voltage.optional(),
3683
3733
  frequency: frequency.optional(),
3684
3734
  peak_to_peak_voltage: voltage.optional(),
@@ -3693,14 +3743,14 @@ var simulation_ac_voltage_source = z171.object({
3693
3743
  ac_magnitude: voltage.optional(),
3694
3744
  ac_phase: rotation.optional()
3695
3745
  }).describe("Defines an AC voltage source for simulation");
3696
- var simulation_voltage_source = z171.union([simulation_dc_voltage_source, simulation_ac_voltage_source]).describe("Defines a voltage source for simulation");
3746
+ var simulation_voltage_source = z172.union([simulation_dc_voltage_source, simulation_ac_voltage_source]).describe("Defines a voltage source for simulation");
3697
3747
  expectTypesMatch(true);
3698
3748
  expectTypesMatch(true);
3699
3749
  expectTypesMatch(true);
3700
3750
 
3701
3751
  // src/simulation/simulation_current_source.ts
3702
- import { z as z172 } from "zod";
3703
- var percentage2 = z172.union([z172.string(), z172.number()]).transform((val) => {
3752
+ import { z as z173 } from "zod";
3753
+ var percentage2 = z173.union([z173.string(), z173.number()]).transform((val) => {
3704
3754
  if (typeof val === "string") {
3705
3755
  if (val.endsWith("%")) {
3706
3756
  return parseFloat(val.slice(0, -1)) / 100;
@@ -3709,32 +3759,32 @@ var percentage2 = z172.union([z172.string(), z172.number()]).transform((val) =>
3709
3759
  }
3710
3760
  return val;
3711
3761
  }).pipe(
3712
- z172.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
3762
+ z173.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
3713
3763
  );
3714
- var simulation_dc_current_source = z172.object({
3715
- type: z172.literal("simulation_current_source"),
3764
+ var simulation_dc_current_source = z173.object({
3765
+ type: z173.literal("simulation_current_source"),
3716
3766
  simulation_current_source_id: getZodPrefixedIdWithDefault(
3717
3767
  "simulation_current_source"
3718
3768
  ),
3719
- is_dc_source: z172.literal(true).optional().default(true),
3720
- positive_source_port_id: z172.string().optional(),
3721
- negative_source_port_id: z172.string().optional(),
3722
- positive_source_net_id: z172.string().optional(),
3723
- negative_source_net_id: z172.string().optional(),
3769
+ is_dc_source: z173.literal(true).optional().default(true),
3770
+ positive_source_port_id: z173.string().optional(),
3771
+ negative_source_port_id: z173.string().optional(),
3772
+ positive_source_net_id: z173.string().optional(),
3773
+ negative_source_net_id: z173.string().optional(),
3724
3774
  current,
3725
3775
  ac_magnitude: current.optional(),
3726
3776
  ac_phase: rotation.optional()
3727
3777
  }).describe("Defines a DC current source for simulation");
3728
- var simulation_ac_current_source = z172.object({
3729
- type: z172.literal("simulation_current_source"),
3778
+ var simulation_ac_current_source = z173.object({
3779
+ type: z173.literal("simulation_current_source"),
3730
3780
  simulation_current_source_id: getZodPrefixedIdWithDefault(
3731
3781
  "simulation_current_source"
3732
3782
  ),
3733
- is_dc_source: z172.literal(false),
3734
- terminal1_source_port_id: z172.string().optional(),
3735
- terminal2_source_port_id: z172.string().optional(),
3736
- terminal1_source_net_id: z172.string().optional(),
3737
- terminal2_source_net_id: z172.string().optional(),
3783
+ is_dc_source: z173.literal(false),
3784
+ terminal1_source_port_id: z173.string().optional(),
3785
+ terminal2_source_port_id: z173.string().optional(),
3786
+ terminal1_source_net_id: z173.string().optional(),
3787
+ terminal2_source_net_id: z173.string().optional(),
3738
3788
  current: current.optional(),
3739
3789
  frequency: frequency.optional(),
3740
3790
  peak_to_peak_current: current.optional(),
@@ -3744,58 +3794,58 @@ var simulation_ac_current_source = z172.object({
3744
3794
  ac_magnitude: current.optional(),
3745
3795
  ac_phase: rotation.optional()
3746
3796
  }).describe("Defines an AC current source for simulation");
3747
- var simulation_current_source = z172.union([simulation_dc_current_source, simulation_ac_current_source]).describe("Defines a current source for simulation");
3797
+ var simulation_current_source = z173.union([simulation_dc_current_source, simulation_ac_current_source]).describe("Defines a current source for simulation");
3748
3798
  expectTypesMatch(true);
3749
3799
  expectTypesMatch(true);
3750
3800
  expectTypesMatch(true);
3751
3801
 
3752
3802
  // src/simulation/simulation_experiment.ts
3753
- import { z as z174 } from "zod";
3803
+ import { z as z175 } from "zod";
3754
3804
 
3755
3805
  // src/simulation/simulation_units.ts
3756
- import { z as z173 } from "zod";
3757
- var simulation_dc_sweep_unit = z173.custom(
3806
+ import { z as z174 } from "zod";
3807
+ var simulation_dc_sweep_unit = z174.custom(
3758
3808
  (dcSweepUnit) => dcSweepUnit === "V" || dcSweepUnit === "A"
3759
3809
  );
3760
- var simulation_parameter_unit = z173.custom(
3810
+ var simulation_parameter_unit = z174.custom(
3761
3811
  (parameterUnit) => parameterUnit === "\u03A9" || parameterUnit === "F" || parameterUnit === "H" || parameterUnit === "V" || parameterUnit === "A"
3762
3812
  );
3763
3813
 
3764
3814
  // src/simulation/simulation_experiment.ts
3765
- var experiment_type = z174.union([
3766
- z174.literal("spice_dc_sweep"),
3767
- z174.literal("spice_dc_operating_point"),
3768
- z174.literal("spice_transient_analysis"),
3769
- z174.literal("spice_ac_analysis")
3815
+ var experiment_type = z175.union([
3816
+ z175.literal("spice_dc_sweep"),
3817
+ z175.literal("spice_dc_operating_point"),
3818
+ z175.literal("spice_transient_analysis"),
3819
+ z175.literal("spice_ac_analysis")
3770
3820
  ]);
3771
- var spice_simulation_options = z174.object({
3772
- method: z174.enum(["trap", "gear"]).optional(),
3773
- reltol: z174.union([z174.number(), z174.string()]).optional(),
3774
- abstol: z174.union([z174.number(), z174.string()]).optional(),
3775
- vntol: z174.union([z174.number(), z174.string()]).optional()
3821
+ var spice_simulation_options = z175.object({
3822
+ method: z175.enum(["trap", "gear"]).optional(),
3823
+ reltol: z175.union([z175.number(), z175.string()]).optional(),
3824
+ abstol: z175.union([z175.number(), z175.string()]).optional(),
3825
+ vntol: z175.union([z175.number(), z175.string()]).optional()
3776
3826
  }).describe("SPICE solver options for a simulation experiment");
3777
- var simulation_experiment = z174.object({
3778
- type: z174.literal("simulation_experiment"),
3827
+ var simulation_experiment = z175.object({
3828
+ type: z175.literal("simulation_experiment"),
3779
3829
  simulation_experiment_id: getZodPrefixedIdWithDefault(
3780
3830
  "simulation_experiment"
3781
3831
  ),
3782
- name: z174.string(),
3832
+ name: z175.string(),
3783
3833
  experiment_type,
3784
3834
  time_per_step: duration_ms.optional(),
3785
3835
  start_time_ms: ms.optional(),
3786
3836
  end_time_ms: ms.optional(),
3787
3837
  spice_options: spice_simulation_options.optional(),
3788
- dc_sweep_voltage_source_id: z174.string().optional(),
3789
- dc_sweep_current_source_id: z174.string().optional(),
3790
- dc_sweep_start: z174.number().optional(),
3791
- dc_sweep_stop: z174.number().optional(),
3792
- dc_sweep_step: z174.number().refine((dcSweepStep) => dcSweepStep !== 0).optional(),
3838
+ dc_sweep_voltage_source_id: z175.string().optional(),
3839
+ dc_sweep_current_source_id: z175.string().optional(),
3840
+ dc_sweep_start: z175.number().optional(),
3841
+ dc_sweep_stop: z175.number().optional(),
3842
+ dc_sweep_step: z175.number().refine((dcSweepStep) => dcSweepStep !== 0).optional(),
3793
3843
  dc_sweep_unit: simulation_dc_sweep_unit.optional(),
3794
- ac_sweep_type: z174.enum(["linear", "decade", "octave"]).optional(),
3795
- ac_samples_per_interval: z174.number().int().positive().optional(),
3796
- ac_sample_count: z174.number().int().positive().optional(),
3797
- ac_start_frequency_hz: z174.number().positive().optional(),
3798
- ac_stop_frequency_hz: z174.number().positive().optional()
3844
+ ac_sweep_type: z175.enum(["linear", "decade", "octave"]).optional(),
3845
+ ac_samples_per_interval: z175.number().int().positive().optional(),
3846
+ ac_sample_count: z175.number().int().positive().optional(),
3847
+ ac_start_frequency_hz: z175.number().positive().optional(),
3848
+ ac_stop_frequency_hz: z175.number().positive().optional()
3799
3849
  }).superRefine((experiment, context) => {
3800
3850
  if (experiment.experiment_type === "spice_dc_sweep") {
3801
3851
  const requiredFields = [
@@ -3807,7 +3857,7 @@ var simulation_experiment = z174.object({
3807
3857
  for (const field of requiredFields) {
3808
3858
  if (experiment[field] === void 0) {
3809
3859
  context.addIssue({
3810
- code: z174.ZodIssueCode.custom,
3860
+ code: z175.ZodIssueCode.custom,
3811
3861
  path: [field],
3812
3862
  message: `${field} is required for a DC sweep`
3813
3863
  });
@@ -3817,7 +3867,7 @@ var simulation_experiment = z174.object({
3817
3867
  const hasCurrentSource = experiment.dc_sweep_current_source_id !== void 0;
3818
3868
  if (hasVoltageSource === hasCurrentSource) {
3819
3869
  context.addIssue({
3820
- code: z174.ZodIssueCode.custom,
3870
+ code: z175.ZodIssueCode.custom,
3821
3871
  path: ["dc_sweep_voltage_source_id"],
3822
3872
  message: "Exactly one DC sweep voltage or current source ID is required"
3823
3873
  });
@@ -3826,35 +3876,35 @@ var simulation_experiment = z174.object({
3826
3876
  if (experiment.experiment_type === "spice_ac_analysis") {
3827
3877
  if (experiment.ac_sweep_type === void 0) {
3828
3878
  context.addIssue({
3829
- code: z174.ZodIssueCode.custom,
3879
+ code: z175.ZodIssueCode.custom,
3830
3880
  path: ["ac_sweep_type"],
3831
3881
  message: "ac_sweep_type is required for an AC analysis"
3832
3882
  });
3833
3883
  }
3834
3884
  if (experiment.ac_start_frequency_hz === void 0) {
3835
3885
  context.addIssue({
3836
- code: z174.ZodIssueCode.custom,
3886
+ code: z175.ZodIssueCode.custom,
3837
3887
  path: ["ac_start_frequency_hz"],
3838
3888
  message: "ac_start_frequency_hz is required for an AC analysis"
3839
3889
  });
3840
3890
  }
3841
3891
  if (experiment.ac_stop_frequency_hz === void 0) {
3842
3892
  context.addIssue({
3843
- code: z174.ZodIssueCode.custom,
3893
+ code: z175.ZodIssueCode.custom,
3844
3894
  path: ["ac_stop_frequency_hz"],
3845
3895
  message: "ac_stop_frequency_hz is required for an AC analysis"
3846
3896
  });
3847
3897
  }
3848
3898
  if (experiment.ac_sweep_type === "linear" && experiment.ac_sample_count === void 0) {
3849
3899
  context.addIssue({
3850
- code: z174.ZodIssueCode.custom,
3900
+ code: z175.ZodIssueCode.custom,
3851
3901
  path: ["ac_sample_count"],
3852
3902
  message: "ac_sample_count is required for a linear AC analysis"
3853
3903
  });
3854
3904
  }
3855
3905
  if ((experiment.ac_sweep_type === "decade" || experiment.ac_sweep_type === "octave") && experiment.ac_samples_per_interval === void 0) {
3856
3906
  context.addIssue({
3857
- code: z174.ZodIssueCode.custom,
3907
+ code: z175.ZodIssueCode.custom,
3858
3908
  path: ["ac_samples_per_interval"],
3859
3909
  message: "ac_samples_per_interval is required for decade and octave AC analyses"
3860
3910
  });
@@ -3864,87 +3914,87 @@ var simulation_experiment = z174.object({
3864
3914
  expectTypesMatch(true);
3865
3915
 
3866
3916
  // src/simulation/simulation_transient_voltage_graph.ts
3867
- import { z as z176 } from "zod";
3917
+ import { z as z177 } from "zod";
3868
3918
 
3869
3919
  // src/simulation/simulation_parameter_sweep_coordinate.ts
3870
- import { z as z175 } from "zod";
3871
- var simulation_parameter_sweep_coordinate = z175.object({
3872
- simulation_parameter_sweep_id: z175.string(),
3873
- sweep_index: z175.number().int().nonnegative(),
3874
- parameter_value: z175.number(),
3920
+ import { z as z176 } from "zod";
3921
+ var simulation_parameter_sweep_coordinate = z176.object({
3922
+ simulation_parameter_sweep_id: z176.string(),
3923
+ sweep_index: z176.number().int().nonnegative(),
3924
+ parameter_value: z176.number(),
3875
3925
  parameter_unit: simulation_parameter_unit
3876
3926
  });
3877
3927
  expectTypesMatch(true);
3878
3928
 
3879
3929
  // src/simulation/simulation_transient_voltage_graph.ts
3880
- var simulation_transient_voltage_graph = z176.object({
3881
- type: z176.literal("simulation_transient_voltage_graph"),
3930
+ var simulation_transient_voltage_graph = z177.object({
3931
+ type: z177.literal("simulation_transient_voltage_graph"),
3882
3932
  simulation_transient_voltage_graph_id: getZodPrefixedIdWithDefault(
3883
3933
  "simulation_transient_voltage_graph"
3884
3934
  ),
3885
- simulation_experiment_id: z176.string(),
3935
+ simulation_experiment_id: z177.string(),
3886
3936
  simulation_parameter_sweep_coordinate: simulation_parameter_sweep_coordinate.optional(),
3887
- timestamps_ms: z176.array(z176.number()).optional(),
3888
- voltage_levels: z176.array(z176.number()),
3889
- source_component_id: z176.string().optional(),
3890
- subcircuit_connectivity_map_key: z176.string().optional(),
3937
+ timestamps_ms: z177.array(z177.number()).optional(),
3938
+ voltage_levels: z177.array(z177.number()),
3939
+ source_component_id: z177.string().optional(),
3940
+ subcircuit_connectivity_map_key: z177.string().optional(),
3891
3941
  time_per_step: duration_ms,
3892
3942
  start_time_ms: ms,
3893
3943
  end_time_ms: ms,
3894
- name: z176.string().optional(),
3895
- color: z176.string().optional()
3944
+ name: z177.string().optional(),
3945
+ color: z177.string().optional()
3896
3946
  }).describe("Stores voltage measurements over time for a simulation");
3897
3947
  expectTypesMatch(true);
3898
3948
 
3899
3949
  // src/simulation/simulation_transient_current_graph.ts
3900
- import { z as z177 } from "zod";
3901
- var simulation_transient_current_graph = z177.object({
3902
- type: z177.literal("simulation_transient_current_graph"),
3950
+ import { z as z178 } from "zod";
3951
+ var simulation_transient_current_graph = z178.object({
3952
+ type: z178.literal("simulation_transient_current_graph"),
3903
3953
  simulation_transient_current_graph_id: getZodPrefixedIdWithDefault(
3904
3954
  "simulation_transient_current_graph"
3905
3955
  ),
3906
- simulation_experiment_id: z177.string(),
3956
+ simulation_experiment_id: z178.string(),
3907
3957
  simulation_parameter_sweep_coordinate: simulation_parameter_sweep_coordinate.optional(),
3908
- timestamps_ms: z177.array(z177.number()).optional(),
3909
- current_levels: z177.array(z177.number()),
3910
- source_component_id: z177.string().optional(),
3911
- subcircuit_connectivity_map_key: z177.string().optional(),
3958
+ timestamps_ms: z178.array(z178.number()).optional(),
3959
+ current_levels: z178.array(z178.number()),
3960
+ source_component_id: z178.string().optional(),
3961
+ subcircuit_connectivity_map_key: z178.string().optional(),
3912
3962
  time_per_step: duration_ms,
3913
3963
  start_time_ms: ms,
3914
3964
  end_time_ms: ms,
3915
- name: z177.string().optional(),
3916
- color: z177.string().optional()
3965
+ name: z178.string().optional(),
3966
+ color: z178.string().optional()
3917
3967
  }).describe("Stores current measurements over time for a simulation");
3918
3968
  expectTypesMatch(true);
3919
3969
 
3920
3970
  // src/simulation/simulation_switch.ts
3921
- import { z as z178 } from "zod";
3922
- var simulation_switch = z178.object({
3923
- type: z178.literal("simulation_switch"),
3971
+ import { z as z179 } from "zod";
3972
+ var simulation_switch = z179.object({
3973
+ type: z179.literal("simulation_switch"),
3924
3974
  simulation_switch_id: getZodPrefixedIdWithDefault("simulation_switch"),
3925
- source_component_id: z178.string().optional(),
3975
+ source_component_id: z179.string().optional(),
3926
3976
  closes_at: ms.optional(),
3927
3977
  opens_at: ms.optional(),
3928
- starts_closed: z178.boolean().optional(),
3978
+ starts_closed: z179.boolean().optional(),
3929
3979
  switching_frequency: frequency.optional()
3930
3980
  }).describe("Defines a switch for simulation timing control");
3931
3981
  expectTypesMatch(true);
3932
3982
 
3933
3983
  // src/simulation/simulation_voltage_probe.ts
3934
- import { z as z179 } from "zod";
3935
- var simulation_voltage_probe = z179.object({
3936
- type: z179.literal("simulation_voltage_probe"),
3984
+ import { z as z180 } from "zod";
3985
+ var simulation_voltage_probe = z180.object({
3986
+ type: z180.literal("simulation_voltage_probe"),
3937
3987
  simulation_voltage_probe_id: getZodPrefixedIdWithDefault(
3938
3988
  "simulation_voltage_probe"
3939
3989
  ),
3940
- source_component_id: z179.string().optional(),
3941
- name: z179.string().optional(),
3942
- signal_input_source_port_id: z179.string().optional(),
3943
- signal_input_source_net_id: z179.string().optional(),
3944
- reference_input_source_port_id: z179.string().optional(),
3945
- reference_input_source_net_id: z179.string().optional(),
3946
- subcircuit_id: z179.string().optional(),
3947
- color: z179.string().optional()
3990
+ source_component_id: z180.string().optional(),
3991
+ name: z180.string().optional(),
3992
+ signal_input_source_port_id: z180.string().optional(),
3993
+ signal_input_source_net_id: z180.string().optional(),
3994
+ reference_input_source_port_id: z180.string().optional(),
3995
+ reference_input_source_net_id: z180.string().optional(),
3996
+ subcircuit_id: z180.string().optional(),
3997
+ color: z180.string().optional()
3948
3998
  }).describe(
3949
3999
  "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."
3950
4000
  ).superRefine((data, ctx) => {
@@ -3954,20 +4004,20 @@ var simulation_voltage_probe = z179.object({
3954
4004
  const has_nets = !!data.signal_input_source_net_id || !!data.reference_input_source_net_id;
3955
4005
  if (has_ports && has_nets) {
3956
4006
  ctx.addIssue({
3957
- code: z179.ZodIssueCode.custom,
4007
+ code: z180.ZodIssueCode.custom,
3958
4008
  message: "Cannot mix port and net connections in a differential probe."
3959
4009
  });
3960
4010
  } else if (has_ports) {
3961
4011
  if (!data.signal_input_source_port_id || !data.reference_input_source_port_id) {
3962
4012
  ctx.addIssue({
3963
- code: z179.ZodIssueCode.custom,
4013
+ code: z180.ZodIssueCode.custom,
3964
4014
  message: "Differential port probe requires both signal_input_source_port_id and reference_input_source_port_id."
3965
4015
  });
3966
4016
  }
3967
4017
  } else if (has_nets) {
3968
4018
  if (!data.signal_input_source_net_id || !data.reference_input_source_net_id) {
3969
4019
  ctx.addIssue({
3970
- code: z179.ZodIssueCode.custom,
4020
+ code: z180.ZodIssueCode.custom,
3971
4021
  message: "Differential net probe requires both signal_input_source_net_id and reference_input_source_net_id."
3972
4022
  });
3973
4023
  }
@@ -3975,7 +4025,7 @@ var simulation_voltage_probe = z179.object({
3975
4025
  } else {
3976
4026
  if (!!data.signal_input_source_port_id === !!data.signal_input_source_net_id) {
3977
4027
  ctx.addIssue({
3978
- code: z179.ZodIssueCode.custom,
4028
+ code: z180.ZodIssueCode.custom,
3979
4029
  message: "A voltage probe must have exactly one of signal_input_source_port_id or signal_input_source_net_id."
3980
4030
  });
3981
4031
  }
@@ -3984,20 +4034,20 @@ var simulation_voltage_probe = z179.object({
3984
4034
  expectTypesMatch(true);
3985
4035
 
3986
4036
  // src/simulation/simulation_current_probe.ts
3987
- import { z as z180 } from "zod";
3988
- var simulation_current_probe = z180.object({
3989
- type: z180.literal("simulation_current_probe"),
4037
+ import { z as z181 } from "zod";
4038
+ var simulation_current_probe = z181.object({
4039
+ type: z181.literal("simulation_current_probe"),
3990
4040
  simulation_current_probe_id: getZodPrefixedIdWithDefault(
3991
4041
  "simulation_current_probe"
3992
4042
  ),
3993
- source_component_id: z180.string().optional(),
3994
- name: z180.string().optional(),
3995
- positive_source_port_id: z180.string().optional(),
3996
- negative_source_port_id: z180.string().optional(),
3997
- positive_source_net_id: z180.string().optional(),
3998
- negative_source_net_id: z180.string().optional(),
3999
- subcircuit_id: z180.string().optional(),
4000
- color: z180.string().optional()
4043
+ source_component_id: z181.string().optional(),
4044
+ name: z181.string().optional(),
4045
+ positive_source_port_id: z181.string().optional(),
4046
+ negative_source_port_id: z181.string().optional(),
4047
+ positive_source_net_id: z181.string().optional(),
4048
+ negative_source_net_id: z181.string().optional(),
4049
+ subcircuit_id: z181.string().optional(),
4050
+ color: z181.string().optional()
4001
4051
  }).describe(
4002
4052
  "Defines a current probe for simulation. It measures current flowing from the positive endpoint to the negative endpoint."
4003
4053
  ).superRefine((data, ctx) => {
@@ -4009,7 +4059,7 @@ var simulation_current_probe = z180.object({
4009
4059
  const hasNets = hasPositiveNet || hasNegativeNet;
4010
4060
  if (hasPorts && hasNets) {
4011
4061
  ctx.addIssue({
4012
- code: z180.ZodIssueCode.custom,
4062
+ code: z181.ZodIssueCode.custom,
4013
4063
  message: "Cannot mix port and net connections in a current probe."
4014
4064
  });
4015
4065
  return;
@@ -4017,7 +4067,7 @@ var simulation_current_probe = z180.object({
4017
4067
  if (hasPorts) {
4018
4068
  if (!hasPositivePort || !hasNegativePort) {
4019
4069
  ctx.addIssue({
4020
- code: z180.ZodIssueCode.custom,
4070
+ code: z181.ZodIssueCode.custom,
4021
4071
  message: "Current probe using source ports requires both positive_source_port_id and negative_source_port_id."
4022
4072
  });
4023
4073
  }
@@ -4026,71 +4076,71 @@ var simulation_current_probe = z180.object({
4026
4076
  if (hasNets) {
4027
4077
  if (!hasPositiveNet || !hasNegativeNet) {
4028
4078
  ctx.addIssue({
4029
- code: z180.ZodIssueCode.custom,
4079
+ code: z181.ZodIssueCode.custom,
4030
4080
  message: "Current probe using source nets requires both positive_source_net_id and negative_source_net_id."
4031
4081
  });
4032
4082
  }
4033
4083
  return;
4034
4084
  }
4035
4085
  ctx.addIssue({
4036
- code: z180.ZodIssueCode.custom,
4086
+ code: z181.ZodIssueCode.custom,
4037
4087
  message: "A current probe must have either positive/negative source port ids or positive/negative source net ids."
4038
4088
  });
4039
4089
  });
4040
4090
  expectTypesMatch(true);
4041
4091
 
4042
4092
  // src/simulation/simulation_unknown_experiment_error.ts
4043
- import { z as z181 } from "zod";
4093
+ import { z as z182 } from "zod";
4044
4094
  var simulation_unknown_experiment_error = base_circuit_json_error.extend({
4045
- type: z181.literal("simulation_unknown_experiment_error"),
4095
+ type: z182.literal("simulation_unknown_experiment_error"),
4046
4096
  simulation_unknown_experiment_error_id: getZodPrefixedIdWithDefault(
4047
4097
  "simulation_unknown_experiment_error"
4048
4098
  ),
4049
- error_type: z181.literal("simulation_unknown_experiment_error").default("simulation_unknown_experiment_error"),
4050
- simulation_experiment_id: z181.string().optional(),
4051
- subcircuit_id: z181.string().optional()
4099
+ error_type: z182.literal("simulation_unknown_experiment_error").default("simulation_unknown_experiment_error"),
4100
+ simulation_experiment_id: z182.string().optional(),
4101
+ subcircuit_id: z182.string().optional()
4052
4102
  }).describe("An unknown error occurred during the simulation experiment.");
4053
4103
  expectTypesMatch(true);
4054
4104
 
4055
4105
  // src/simulation/simulation_parameter_sweep.ts
4056
- import { z as z182 } from "zod";
4057
- var simulation_parameter_type = z182.enum([
4106
+ import { z as z183 } from "zod";
4107
+ var simulation_parameter_type = z183.enum([
4058
4108
  "resistance",
4059
4109
  "capacitance",
4060
4110
  "inductance",
4061
4111
  "voltage",
4062
4112
  "current"
4063
4113
  ]);
4064
- var simulation_parameter_sweep_base = z182.object({
4065
- type: z182.literal("simulation_parameter_sweep"),
4114
+ var simulation_parameter_sweep_base = z183.object({
4115
+ type: z183.literal("simulation_parameter_sweep"),
4066
4116
  simulation_parameter_sweep_id: getZodPrefixedIdWithDefault(
4067
4117
  "simulation_parameter_sweep"
4068
4118
  ),
4069
- simulation_experiment_id: z182.string(),
4070
- name: z182.string().optional(),
4071
- parameter_values: z182.array(z182.number()).min(1),
4119
+ simulation_experiment_id: z183.string(),
4120
+ name: z183.string().optional(),
4121
+ parameter_values: z183.array(z183.number()).min(1),
4072
4122
  parameter_unit: simulation_parameter_unit
4073
4123
  });
4074
- var simulation_parameter_sweep = z182.discriminatedUnion("parameter_type", [
4124
+ var simulation_parameter_sweep = z183.discriminatedUnion("parameter_type", [
4075
4125
  simulation_parameter_sweep_base.extend({
4076
- parameter_type: z182.literal("resistance"),
4077
- resistor_source_component_id: z182.string()
4126
+ parameter_type: z183.literal("resistance"),
4127
+ resistor_source_component_id: z183.string()
4078
4128
  }),
4079
4129
  simulation_parameter_sweep_base.extend({
4080
- parameter_type: z182.literal("capacitance"),
4081
- capacitor_source_component_id: z182.string()
4130
+ parameter_type: z183.literal("capacitance"),
4131
+ capacitor_source_component_id: z183.string()
4082
4132
  }),
4083
4133
  simulation_parameter_sweep_base.extend({
4084
- parameter_type: z182.literal("inductance"),
4085
- inductor_source_component_id: z182.string()
4134
+ parameter_type: z183.literal("inductance"),
4135
+ inductor_source_component_id: z183.string()
4086
4136
  }),
4087
4137
  simulation_parameter_sweep_base.extend({
4088
- parameter_type: z182.literal("voltage"),
4089
- source_net_id: z182.string()
4138
+ parameter_type: z183.literal("voltage"),
4139
+ source_net_id: z183.string()
4090
4140
  }),
4091
4141
  simulation_parameter_sweep_base.extend({
4092
- parameter_type: z182.literal("current"),
4093
- current_source_component_id: z182.string()
4142
+ parameter_type: z183.literal("current"),
4143
+ current_source_component_id: z183.string()
4094
4144
  })
4095
4145
  ]).describe("Repeats a simulation experiment over component parameter values");
4096
4146
  expectTypesMatch(
@@ -4098,52 +4148,52 @@ expectTypesMatch(
4098
4148
  );
4099
4149
 
4100
4150
  // src/simulation/simulation_dc_operating_point_voltage.ts
4101
- import { z as z183 } from "zod";
4102
- var simulation_dc_operating_point_voltage = z183.object({
4103
- type: z183.literal("simulation_dc_operating_point_voltage"),
4151
+ import { z as z184 } from "zod";
4152
+ var simulation_dc_operating_point_voltage = z184.object({
4153
+ type: z184.literal("simulation_dc_operating_point_voltage"),
4104
4154
  simulation_dc_operating_point_voltage_id: getZodPrefixedIdWithDefault(
4105
4155
  "simulation_dc_operating_point_voltage"
4106
4156
  ),
4107
- simulation_experiment_id: z183.string(),
4157
+ simulation_experiment_id: z184.string(),
4108
4158
  simulation_parameter_sweep_coordinate: simulation_parameter_sweep_coordinate.optional(),
4109
- simulation_voltage_probe_id: z183.string(),
4110
- voltage: z183.number(),
4111
- name: z183.string().optional(),
4112
- color: z183.string().optional()
4159
+ simulation_voltage_probe_id: z184.string(),
4160
+ voltage: z184.number(),
4161
+ name: z184.string().optional(),
4162
+ color: z184.string().optional()
4113
4163
  });
4114
4164
  expectTypesMatch(true);
4115
4165
 
4116
4166
  // src/simulation/simulation_dc_operating_point_current.ts
4117
- import { z as z184 } from "zod";
4118
- var simulation_dc_operating_point_current = z184.object({
4119
- type: z184.literal("simulation_dc_operating_point_current"),
4167
+ import { z as z185 } from "zod";
4168
+ var simulation_dc_operating_point_current = z185.object({
4169
+ type: z185.literal("simulation_dc_operating_point_current"),
4120
4170
  simulation_dc_operating_point_current_id: getZodPrefixedIdWithDefault(
4121
4171
  "simulation_dc_operating_point_current"
4122
4172
  ),
4123
- simulation_experiment_id: z184.string(),
4173
+ simulation_experiment_id: z185.string(),
4124
4174
  simulation_parameter_sweep_coordinate: simulation_parameter_sweep_coordinate.optional(),
4125
- simulation_current_probe_id: z184.string(),
4126
- current: z184.number(),
4127
- name: z184.string().optional(),
4128
- color: z184.string().optional()
4175
+ simulation_current_probe_id: z185.string(),
4176
+ current: z185.number(),
4177
+ name: z185.string().optional(),
4178
+ color: z185.string().optional()
4129
4179
  });
4130
4180
  expectTypesMatch(true);
4131
4181
 
4132
4182
  // src/simulation/simulation_dc_sweep_voltage_graph.ts
4133
- import { z as z185 } from "zod";
4134
- var simulation_dc_sweep_voltage_graph = z185.object({
4135
- type: z185.literal("simulation_dc_sweep_voltage_graph"),
4183
+ import { z as z186 } from "zod";
4184
+ var simulation_dc_sweep_voltage_graph = z186.object({
4185
+ type: z186.literal("simulation_dc_sweep_voltage_graph"),
4136
4186
  simulation_dc_sweep_voltage_graph_id: getZodPrefixedIdWithDefault(
4137
4187
  "simulation_dc_sweep_voltage_graph"
4138
4188
  ),
4139
- simulation_experiment_id: z185.string(),
4189
+ simulation_experiment_id: z186.string(),
4140
4190
  simulation_parameter_sweep_coordinate: simulation_parameter_sweep_coordinate.optional(),
4141
- simulation_voltage_probe_id: z185.string(),
4142
- sweep_values: z185.array(z185.number()),
4191
+ simulation_voltage_probe_id: z186.string(),
4192
+ sweep_values: z186.array(z186.number()),
4143
4193
  sweep_unit: simulation_dc_sweep_unit,
4144
- voltage_levels: z185.array(z185.number()),
4145
- name: z185.string().optional(),
4146
- color: z185.string().optional()
4194
+ voltage_levels: z186.array(z186.number()),
4195
+ name: z186.string().optional(),
4196
+ color: z186.string().optional()
4147
4197
  }).refine(
4148
4198
  (graph) => graph.sweep_values.length === graph.voltage_levels.length,
4149
4199
  {
@@ -4153,20 +4203,20 @@ var simulation_dc_sweep_voltage_graph = z185.object({
4153
4203
  expectTypesMatch(true);
4154
4204
 
4155
4205
  // src/simulation/simulation_dc_sweep_current_graph.ts
4156
- import { z as z186 } from "zod";
4157
- var simulation_dc_sweep_current_graph = z186.object({
4158
- type: z186.literal("simulation_dc_sweep_current_graph"),
4206
+ import { z as z187 } from "zod";
4207
+ var simulation_dc_sweep_current_graph = z187.object({
4208
+ type: z187.literal("simulation_dc_sweep_current_graph"),
4159
4209
  simulation_dc_sweep_current_graph_id: getZodPrefixedIdWithDefault(
4160
4210
  "simulation_dc_sweep_current_graph"
4161
4211
  ),
4162
- simulation_experiment_id: z186.string(),
4212
+ simulation_experiment_id: z187.string(),
4163
4213
  simulation_parameter_sweep_coordinate: simulation_parameter_sweep_coordinate.optional(),
4164
- simulation_current_probe_id: z186.string(),
4165
- sweep_values: z186.array(z186.number()),
4214
+ simulation_current_probe_id: z187.string(),
4215
+ sweep_values: z187.array(z187.number()),
4166
4216
  sweep_unit: simulation_dc_sweep_unit,
4167
- current_levels: z186.array(z186.number()),
4168
- name: z186.string().optional(),
4169
- color: z186.string().optional()
4217
+ current_levels: z187.array(z187.number()),
4218
+ name: z187.string().optional(),
4219
+ color: z187.string().optional()
4170
4220
  }).refine(
4171
4221
  (graph) => graph.sweep_values.length === graph.current_levels.length,
4172
4222
  {
@@ -4176,29 +4226,29 @@ var simulation_dc_sweep_current_graph = z186.object({
4176
4226
  expectTypesMatch(true);
4177
4227
 
4178
4228
  // src/simulation/simulation_ac_sweep_voltage_graph.ts
4179
- import { z as z188 } from "zod";
4229
+ import { z as z189 } from "zod";
4180
4230
 
4181
4231
  // src/simulation/simulation_complex_sample.ts
4182
- import { z as z187 } from "zod";
4183
- var simulation_complex_sample = z187.object({
4184
- re: z187.number(),
4185
- im: z187.number()
4232
+ import { z as z188 } from "zod";
4233
+ var simulation_complex_sample = z188.object({
4234
+ re: z188.number(),
4235
+ im: z188.number()
4186
4236
  });
4187
4237
  expectTypesMatch(true);
4188
4238
 
4189
4239
  // src/simulation/simulation_ac_sweep_voltage_graph.ts
4190
- var simulation_ac_sweep_voltage_graph = z188.object({
4191
- type: z188.literal("simulation_ac_sweep_voltage_graph"),
4240
+ var simulation_ac_sweep_voltage_graph = z189.object({
4241
+ type: z189.literal("simulation_ac_sweep_voltage_graph"),
4192
4242
  simulation_ac_sweep_voltage_graph_id: getZodPrefixedIdWithDefault(
4193
4243
  "simulation_ac_sweep_voltage_graph"
4194
4244
  ),
4195
- simulation_experiment_id: z188.string(),
4245
+ simulation_experiment_id: z189.string(),
4196
4246
  simulation_parameter_sweep_coordinate: simulation_parameter_sweep_coordinate.optional(),
4197
- simulation_voltage_probe_id: z188.string(),
4198
- frequencies_hz: z188.array(z188.number()),
4199
- complex_voltages: z188.array(simulation_complex_sample),
4200
- name: z188.string().optional(),
4201
- color: z188.string().optional()
4247
+ simulation_voltage_probe_id: z189.string(),
4248
+ frequencies_hz: z189.array(z189.number()),
4249
+ complex_voltages: z189.array(simulation_complex_sample),
4250
+ name: z189.string().optional(),
4251
+ color: z189.string().optional()
4202
4252
  }).refine(
4203
4253
  (graph) => graph.frequencies_hz.length === graph.complex_voltages.length,
4204
4254
  {
@@ -4208,19 +4258,19 @@ var simulation_ac_sweep_voltage_graph = z188.object({
4208
4258
  expectTypesMatch(true);
4209
4259
 
4210
4260
  // src/simulation/simulation_ac_sweep_current_graph.ts
4211
- import { z as z189 } from "zod";
4212
- var simulation_ac_sweep_current_graph = z189.object({
4213
- type: z189.literal("simulation_ac_sweep_current_graph"),
4261
+ import { z as z190 } from "zod";
4262
+ var simulation_ac_sweep_current_graph = z190.object({
4263
+ type: z190.literal("simulation_ac_sweep_current_graph"),
4214
4264
  simulation_ac_sweep_current_graph_id: getZodPrefixedIdWithDefault(
4215
4265
  "simulation_ac_sweep_current_graph"
4216
4266
  ),
4217
- simulation_experiment_id: z189.string(),
4267
+ simulation_experiment_id: z190.string(),
4218
4268
  simulation_parameter_sweep_coordinate: simulation_parameter_sweep_coordinate.optional(),
4219
- simulation_current_probe_id: z189.string(),
4220
- frequencies_hz: z189.array(z189.number()),
4221
- complex_currents: z189.array(simulation_complex_sample),
4222
- name: z189.string().optional(),
4223
- color: z189.string().optional()
4269
+ simulation_current_probe_id: z190.string(),
4270
+ frequencies_hz: z190.array(z190.number()),
4271
+ complex_currents: z190.array(simulation_complex_sample),
4272
+ name: z190.string().optional(),
4273
+ color: z190.string().optional()
4224
4274
  }).refine(
4225
4275
  (graph) => graph.frequencies_hz.length === graph.complex_currents.length,
4226
4276
  {
@@ -4230,52 +4280,52 @@ var simulation_ac_sweep_current_graph = z189.object({
4230
4280
  expectTypesMatch(true);
4231
4281
 
4232
4282
  // src/simulation/simulation_op_amp.ts
4233
- import { z as z190 } from "zod";
4234
- var simulation_op_amp = z190.object({
4235
- type: z190.literal("simulation_op_amp"),
4283
+ import { z as z191 } from "zod";
4284
+ var simulation_op_amp = z191.object({
4285
+ type: z191.literal("simulation_op_amp"),
4236
4286
  simulation_op_amp_id: getZodPrefixedIdWithDefault("simulation_op_amp"),
4237
- source_component_id: z190.string().optional(),
4238
- inverting_input_source_port_id: z190.string(),
4239
- non_inverting_input_source_port_id: z190.string(),
4240
- output_source_port_id: z190.string(),
4241
- positive_supply_source_port_id: z190.string(),
4242
- negative_supply_source_port_id: z190.string()
4287
+ source_component_id: z191.string().optional(),
4288
+ inverting_input_source_port_id: z191.string(),
4289
+ non_inverting_input_source_port_id: z191.string(),
4290
+ output_source_port_id: z191.string(),
4291
+ positive_supply_source_port_id: z191.string(),
4292
+ negative_supply_source_port_id: z191.string()
4243
4293
  }).describe("Defines a simple ideal operational amplifier for simulation");
4244
4294
  expectTypesMatch(true);
4245
4295
 
4246
4296
  // src/simulation/simulation_spice_subcircuit.ts
4247
- import { z as z191 } from "zod";
4248
- var simulation_spice_subcircuit = z191.object({
4249
- type: z191.literal("simulation_spice_subcircuit"),
4297
+ import { z as z192 } from "zod";
4298
+ var simulation_spice_subcircuit = z192.object({
4299
+ type: z192.literal("simulation_spice_subcircuit"),
4250
4300
  simulation_spice_subcircuit_id: getZodPrefixedIdWithDefault(
4251
4301
  "simulation_spice_subcircuit"
4252
4302
  ),
4253
- source_component_id: z191.string(),
4254
- spice_pin_to_source_port_map: z191.record(z191.string(), z191.string()),
4255
- subcircuit_source: z191.string()
4303
+ source_component_id: z192.string(),
4304
+ spice_pin_to_source_port_map: z192.record(z192.string(), z192.string()),
4305
+ subcircuit_source: z192.string()
4256
4306
  }).describe("Defines a custom SPICE subcircuit model for simulation");
4257
4307
  expectTypesMatch(
4258
4308
  true
4259
4309
  );
4260
4310
 
4261
4311
  // src/simulation/simulation_oscilloscope_trace.ts
4262
- import { z as z192 } from "zod";
4312
+ import { z as z193 } from "zod";
4263
4313
  var hasValue = (value) => value !== void 0;
4264
- var simulation_oscilloscope_trace = z192.object({
4265
- type: z192.literal("simulation_oscilloscope_trace"),
4314
+ var simulation_oscilloscope_trace = z193.object({
4315
+ type: z193.literal("simulation_oscilloscope_trace"),
4266
4316
  simulation_oscilloscope_trace_id: getZodPrefixedIdWithDefault(
4267
4317
  "simulation_oscilloscope_trace"
4268
4318
  ),
4269
- simulation_transient_voltage_graph_id: z192.string().optional(),
4270
- simulation_transient_current_graph_id: z192.string().optional(),
4271
- simulation_voltage_probe_id: z192.string().optional(),
4272
- simulation_current_probe_id: z192.string().optional(),
4273
- display_name: z192.string().optional(),
4274
- color: z192.string().optional(),
4275
- display_center_value: z192.number().optional(),
4276
- display_center_offset_divs: z192.number().optional(),
4277
- volts_per_div: z192.number().positive().optional(),
4278
- amps_per_div: z192.number().positive().optional()
4319
+ simulation_transient_voltage_graph_id: z193.string().optional(),
4320
+ simulation_transient_current_graph_id: z193.string().optional(),
4321
+ simulation_voltage_probe_id: z193.string().optional(),
4322
+ simulation_current_probe_id: z193.string().optional(),
4323
+ display_name: z193.string().optional(),
4324
+ color: z193.string().optional(),
4325
+ display_center_value: z193.number().optional(),
4326
+ display_center_offset_divs: z193.number().optional(),
4327
+ volts_per_div: z193.number().positive().optional(),
4328
+ amps_per_div: z193.number().positive().optional()
4279
4329
  }).describe(
4280
4330
  "Defines how a simulation measurement is rendered as an oscilloscope-style trace."
4281
4331
  ).superRefine((data, ctx) => {
@@ -4289,19 +4339,19 @@ var simulation_oscilloscope_trace = z192.object({
4289
4339
  ].filter(hasValue).length;
4290
4340
  if (voltageReferences + currentReferences !== 1) {
4291
4341
  ctx.addIssue({
4292
- code: z192.ZodIssueCode.custom,
4342
+ code: z193.ZodIssueCode.custom,
4293
4343
  message: "An oscilloscope trace must reference exactly one voltage graph, current graph, voltage probe, or current probe."
4294
4344
  });
4295
4345
  }
4296
4346
  if (voltageReferences > 0 && data.amps_per_div !== void 0) {
4297
4347
  ctx.addIssue({
4298
- code: z192.ZodIssueCode.custom,
4348
+ code: z193.ZodIssueCode.custom,
4299
4349
  message: "Voltage oscilloscope traces must use volts_per_div, not amps_per_div."
4300
4350
  });
4301
4351
  }
4302
4352
  if (currentReferences > 0 && data.volts_per_div !== void 0) {
4303
4353
  ctx.addIssue({
4304
- code: z192.ZodIssueCode.custom,
4354
+ code: z193.ZodIssueCode.custom,
4305
4355
  message: "Current oscilloscope traces must use amps_per_div, not volts_per_div."
4306
4356
  });
4307
4357
  }
@@ -4309,8 +4359,8 @@ var simulation_oscilloscope_trace = z192.object({
4309
4359
  expectTypesMatch(true);
4310
4360
 
4311
4361
  // src/any_circuit_element.ts
4312
- import { z as z193 } from "zod";
4313
- var any_circuit_element = z193.union([
4362
+ import { z as z194 } from "zod";
4363
+ var any_circuit_element = z194.union([
4314
4364
  source_trace,
4315
4365
  source_port,
4316
4366
  source_component_internal_connection,
@@ -4491,6 +4541,7 @@ export {
4491
4541
  experiment_type,
4492
4542
  external_footprint_load_error,
4493
4543
  frequency,
4544
+ getRotationBetweenPcbPin1Locations,
4494
4545
  getZodPrefixedIdWithDefault,
4495
4546
  inductance,
4496
4547
  insertionDirectionToCanonical,
@@ -4572,6 +4623,7 @@ export {
4572
4623
  pcb_pad_trace_clearance_error,
4573
4624
  pcb_panel,
4574
4625
  pcb_panelization_placement_error,
4626
+ pcb_pin1_location,
4575
4627
  pcb_placement_error,
4576
4628
  pcb_plated_hole,
4577
4629
  pcb_port,