@modular-circuit/ir 0.0.63 → 0.1.0

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.
Files changed (240) hide show
  1. package/dist/index.d.mts +739 -0
  2. package/dist/index.d.ts +739 -0
  3. package/dist/index.js +124 -0
  4. package/dist/index.mjs +89 -0
  5. package/package.json +12 -9
  6. package/build/constraints/index.d.ts +0 -2
  7. package/build/constraints/index.d.ts.map +0 -1
  8. package/build/constraints/index.js +0 -1
  9. package/build/graph/gnd.d.ts +0 -6
  10. package/build/graph/gnd.d.ts.map +0 -1
  11. package/build/graph/gnd.js +0 -0
  12. package/build/graph/graph.d.ts +0 -17
  13. package/build/graph/graph.d.ts.map +0 -1
  14. package/build/graph/graph.js +0 -0
  15. package/build/graph/graph_item.d.ts +0 -4
  16. package/build/graph/graph_item.d.ts.map +0 -1
  17. package/build/graph/graph_item.js +0 -0
  18. package/build/graph/index.d.ts +0 -10
  19. package/build/graph/index.d.ts.map +0 -1
  20. package/build/graph/index.js +0 -9
  21. package/build/graph/ir_block.d.ts +0 -15
  22. package/build/graph/ir_block.d.ts.map +0 -1
  23. package/build/graph/ir_block.js +0 -0
  24. package/build/graph/junction.d.ts +0 -4
  25. package/build/graph/junction.d.ts.map +0 -1
  26. package/build/graph/junction.js +0 -0
  27. package/build/graph/label.d.ts +0 -7
  28. package/build/graph/label.d.ts.map +0 -1
  29. package/build/graph/label.js +0 -0
  30. package/build/graph/port.d.ts +0 -18
  31. package/build/graph/port.d.ts.map +0 -1
  32. package/build/graph/port.js +0 -0
  33. package/build/graph/power_sym.d.ts +0 -6
  34. package/build/graph/power_sym.d.ts.map +0 -1
  35. package/build/graph/power_sym.js +0 -0
  36. package/build/graph/pwr_base.d.ts +0 -5
  37. package/build/graph/pwr_base.d.ts.map +0 -1
  38. package/build/graph/pwr_base.js +0 -0
  39. package/build/graph/wire.d.ts +0 -5
  40. package/build/graph/wire.d.ts.map +0 -1
  41. package/build/graph/wire.js +0 -0
  42. package/build/index.d.ts +0 -5
  43. package/build/index.d.ts.map +0 -1
  44. package/build/index.js +0 -4
  45. package/build/kicad/common/eda_item.d.ts +0 -4
  46. package/build/kicad/common/eda_item.d.ts.map +0 -1
  47. package/build/kicad/common/eda_item.js +0 -0
  48. package/build/kicad/common/eda_text.d.ts +0 -6
  49. package/build/kicad/common/eda_text.d.ts.map +0 -1
  50. package/build/kicad/common/eda_text.js +0 -0
  51. package/build/kicad/common/effects.d.ts +0 -8
  52. package/build/kicad/common/effects.d.ts.map +0 -1
  53. package/build/kicad/common/effects.js +0 -0
  54. package/build/kicad/common/embedded_files.d.ts +0 -31
  55. package/build/kicad/common/embedded_files.d.ts.map +0 -1
  56. package/build/kicad/common/embedded_files.js +0 -8
  57. package/build/kicad/common/fill.d.ts +0 -6
  58. package/build/kicad/common/fill.d.ts.map +0 -1
  59. package/build/kicad/common/fill.js +0 -0
  60. package/build/kicad/common/font.d.ts +0 -10
  61. package/build/kicad/common/font.d.ts.map +0 -1
  62. package/build/kicad/common/font.js +0 -0
  63. package/build/kicad/common/index.d.ts +0 -14
  64. package/build/kicad/common/index.d.ts.map +0 -1
  65. package/build/kicad/common/index.js +0 -13
  66. package/build/kicad/common/justify.d.ts +0 -6
  67. package/build/kicad/common/justify.d.ts.map +0 -1
  68. package/build/kicad/common/justify.js +0 -0
  69. package/build/kicad/common/page_size.d.ts +0 -19
  70. package/build/kicad/common/page_size.d.ts.map +0 -1
  71. package/build/kicad/common/page_size.js +0 -17
  72. package/build/kicad/common/paper.d.ts +0 -7
  73. package/build/kicad/common/paper.d.ts.map +0 -1
  74. package/build/kicad/common/paper.js +0 -0
  75. package/build/kicad/common/serializable.d.ts +0 -5
  76. package/build/kicad/common/serializable.d.ts.map +0 -1
  77. package/build/kicad/common/serializable.js +0 -0
  78. package/build/kicad/common/stroke.d.ts +0 -7
  79. package/build/kicad/common/stroke.d.ts.map +0 -1
  80. package/build/kicad/common/stroke.js +0 -0
  81. package/build/kicad/common/title_block.d.ts +0 -7
  82. package/build/kicad/common/title_block.d.ts.map +0 -1
  83. package/build/kicad/common/title_block.js +0 -0
  84. package/build/kicad/eeschema/base_symbol.d.ts +0 -11
  85. package/build/kicad/eeschema/base_symbol.d.ts.map +0 -1
  86. package/build/kicad/eeschema/base_symbol.js +0 -0
  87. package/build/kicad/eeschema/bus.d.ts +0 -7
  88. package/build/kicad/eeschema/bus.d.ts.map +0 -1
  89. package/build/kicad/eeschema/bus.js +0 -0
  90. package/build/kicad/eeschema/bus_alias.d.ts +0 -5
  91. package/build/kicad/eeschema/bus_alias.d.ts.map +0 -1
  92. package/build/kicad/eeschema/bus_alias.js +0 -0
  93. package/build/kicad/eeschema/bus_entry.d.ts +0 -8
  94. package/build/kicad/eeschema/bus_entry.d.ts.map +0 -1
  95. package/build/kicad/eeschema/bus_entry.js +0 -0
  96. package/build/kicad/eeschema/drawing.d.ts +0 -5
  97. package/build/kicad/eeschema/drawing.d.ts.map +0 -1
  98. package/build/kicad/eeschema/drawing.js +0 -0
  99. package/build/kicad/eeschema/graphic_item.d.ts +0 -48
  100. package/build/kicad/eeschema/graphic_item.d.ts.map +0 -1
  101. package/build/kicad/eeschema/graphic_item.js +0 -9
  102. package/build/kicad/eeschema/index.d.ts +0 -33
  103. package/build/kicad/eeschema/index.d.ts.map +0 -1
  104. package/build/kicad/eeschema/index.js +0 -32
  105. package/build/kicad/eeschema/junction.d.ts +0 -5
  106. package/build/kicad/eeschema/junction.d.ts.map +0 -1
  107. package/build/kicad/eeschema/junction.js +0 -0
  108. package/build/kicad/eeschema/lib_symbol.d.ts +0 -21
  109. package/build/kicad/eeschema/lib_symbol.d.ts.map +0 -1
  110. package/build/kicad/eeschema/lib_symbol.js +0 -0
  111. package/build/kicad/eeschema/lib_symbols.d.ts +0 -5
  112. package/build/kicad/eeschema/lib_symbols.d.ts.map +0 -1
  113. package/build/kicad/eeschema/lib_symbols.js +0 -0
  114. package/build/kicad/eeschema/no_connect.d.ts +0 -4
  115. package/build/kicad/eeschema/no_connect.d.ts.map +0 -1
  116. package/build/kicad/eeschema/no_connect.js +0 -0
  117. package/build/kicad/eeschema/pin_alternate.d.ts +0 -7
  118. package/build/kicad/eeschema/pin_alternate.d.ts.map +0 -1
  119. package/build/kicad/eeschema/pin_alternate.js +0 -0
  120. package/build/kicad/eeschema/pin_definition.d.ts +0 -20
  121. package/build/kicad/eeschema/pin_definition.d.ts.map +0 -1
  122. package/build/kicad/eeschema/pin_definition.js +0 -0
  123. package/build/kicad/eeschema/pin_instance.d.ts +0 -6
  124. package/build/kicad/eeschema/pin_instance.d.ts.map +0 -1
  125. package/build/kicad/eeschema/pin_instance.js +0 -0
  126. package/build/kicad/eeschema/sch_field.d.ts +0 -5
  127. package/build/kicad/eeschema/sch_field.d.ts.map +0 -1
  128. package/build/kicad/eeschema/sch_field.js +0 -0
  129. package/build/kicad/eeschema/sch_image.d.ts +0 -7
  130. package/build/kicad/eeschema/sch_image.d.ts.map +0 -1
  131. package/build/kicad/eeschema/sch_image.js +0 -0
  132. package/build/kicad/eeschema/sch_item.d.ts +0 -4
  133. package/build/kicad/eeschema/sch_item.d.ts.map +0 -1
  134. package/build/kicad/eeschema/sch_item.js +0 -0
  135. package/build/kicad/eeschema/sch_item_property.d.ts +0 -4
  136. package/build/kicad/eeschema/sch_item_property.d.ts.map +0 -1
  137. package/build/kicad/eeschema/sch_item_property.js +0 -0
  138. package/build/kicad/eeschema/sch_label.d.ts +0 -25
  139. package/build/kicad/eeschema/sch_label.d.ts.map +0 -1
  140. package/build/kicad/eeschema/sch_label.js +0 -0
  141. package/build/kicad/eeschema/sch_line.d.ts +0 -7
  142. package/build/kicad/eeschema/sch_line.d.ts.map +0 -1
  143. package/build/kicad/eeschema/sch_line.js +0 -0
  144. package/build/kicad/eeschema/sch_sheet.d.ts +0 -21
  145. package/build/kicad/eeschema/sch_sheet.d.ts.map +0 -1
  146. package/build/kicad/eeschema/sch_sheet.js +0 -0
  147. package/build/kicad/eeschema/sch_sheet_instance.d.ts +0 -6
  148. package/build/kicad/eeschema/sch_sheet_instance.d.ts.map +0 -1
  149. package/build/kicad/eeschema/sch_sheet_instance.js +0 -0
  150. package/build/kicad/eeschema/sch_sheet_pin.d.ts +0 -4
  151. package/build/kicad/eeschema/sch_sheet_pin.d.ts.map +0 -1
  152. package/build/kicad/eeschema/sch_sheet_pin.js +0 -0
  153. package/build/kicad/eeschema/sch_symbol.d.ts +0 -20
  154. package/build/kicad/eeschema/sch_symbol.d.ts.map +0 -1
  155. package/build/kicad/eeschema/sch_symbol.js +0 -0
  156. package/build/kicad/eeschema/sch_symbol_properties.d.ts +0 -8
  157. package/build/kicad/eeschema/sch_symbol_properties.d.ts.map +0 -1
  158. package/build/kicad/eeschema/sch_symbol_properties.js +0 -0
  159. package/build/kicad/eeschema/sch_text.d.ts +0 -6
  160. package/build/kicad/eeschema/sch_text.d.ts.map +0 -1
  161. package/build/kicad/eeschema/sch_text.js +0 -0
  162. package/build/kicad/eeschema/sch_text_box.d.ts +0 -5
  163. package/build/kicad/eeschema/sch_text_box.d.ts.map +0 -1
  164. package/build/kicad/eeschema/sch_text_box.js +0 -0
  165. package/build/kicad/eeschema/schematic.d.ts +0 -43
  166. package/build/kicad/eeschema/schematic.d.ts.map +0 -1
  167. package/build/kicad/eeschema/schematic.js +0 -0
  168. package/build/kicad/eeschema/sheet_field_type.d.ts +0 -6
  169. package/build/kicad/eeschema/sheet_field_type.d.ts.map +0 -1
  170. package/build/kicad/eeschema/sheet_field_type.js +0 -7
  171. package/build/kicad/eeschema/sheet_instance.d.ts +0 -5
  172. package/build/kicad/eeschema/sheet_instance.d.ts.map +0 -1
  173. package/build/kicad/eeschema/sheet_instance.js +0 -0
  174. package/build/kicad/eeschema/sheet_instances.d.ts +0 -5
  175. package/build/kicad/eeschema/sheet_instances.d.ts.map +0 -1
  176. package/build/kicad/eeschema/sheet_instances.js +0 -0
  177. package/build/kicad/eeschema/symbol_instance.d.ts +0 -9
  178. package/build/kicad/eeschema/symbol_instance.d.ts.map +0 -1
  179. package/build/kicad/eeschema/symbol_instance.js +0 -0
  180. package/build/kicad/index.d.ts +0 -3
  181. package/build/kicad/index.d.ts.map +0 -1
  182. package/build/kicad/index.js +0 -2
  183. package/build/modular_circuits/block/block_base.d.ts +0 -10
  184. package/build/modular_circuits/block/block_base.d.ts.map +0 -1
  185. package/build/modular_circuits/block/block_base.js +0 -0
  186. package/build/modular_circuits/block/block_port.d.ts +0 -8
  187. package/build/modular_circuits/block/block_port.d.ts.map +0 -1
  188. package/build/modular_circuits/block/block_port.js +0 -0
  189. package/build/modular_circuits/block/index.d.ts +0 -4
  190. package/build/modular_circuits/block/index.d.ts.map +0 -1
  191. package/build/modular_circuits/block/index.js +0 -3
  192. package/build/modular_circuits/block/kicad_block.d.ts +0 -8
  193. package/build/modular_circuits/block/kicad_block.d.ts.map +0 -1
  194. package/build/modular_circuits/block/kicad_block.js +0 -0
  195. package/build/modular_circuits/block/module_block.d.ts +0 -10
  196. package/build/modular_circuits/block/module_block.d.ts.map +0 -1
  197. package/build/modular_circuits/block/module_block.js +0 -0
  198. package/build/modular_circuits/bom/bom_item.d.ts +0 -20
  199. package/build/modular_circuits/bom/bom_item.d.ts.map +0 -1
  200. package/build/modular_circuits/bom/bom_item.js +0 -0
  201. package/build/modular_circuits/bom/component.d.ts +0 -4
  202. package/build/modular_circuits/bom/component.d.ts.map +0 -1
  203. package/build/modular_circuits/bom/component.js +0 -0
  204. package/build/modular_circuits/bom/component_property.d.ts +0 -43
  205. package/build/modular_circuits/bom/component_property.d.ts.map +0 -1
  206. package/build/modular_circuits/bom/component_property.js +0 -0
  207. package/build/modular_circuits/bom/index.d.ts +0 -5
  208. package/build/modular_circuits/bom/index.d.ts.map +0 -1
  209. package/build/modular_circuits/bom/index.js +0 -4
  210. package/build/modular_circuits/design.d.ts +0 -45
  211. package/build/modular_circuits/design.d.ts.map +0 -1
  212. package/build/modular_circuits/design.js +0 -0
  213. package/build/modular_circuits/design_port.d.ts +0 -7
  214. package/build/modular_circuits/design_port.d.ts.map +0 -1
  215. package/build/modular_circuits/design_port.js +0 -0
  216. package/build/modular_circuits/eda_port_annotation.d.ts +0 -15
  217. package/build/modular_circuits/eda_port_annotation.d.ts.map +0 -1
  218. package/build/modular_circuits/eda_port_annotation.js +0 -24
  219. package/build/modular_circuits/index.d.ts +0 -16
  220. package/build/modular_circuits/index.d.ts.map +0 -1
  221. package/build/modular_circuits/index.js +0 -15
  222. package/build/modular_circuits/module_bom.d.ts +0 -8
  223. package/build/modular_circuits/module_bom.d.ts.map +0 -1
  224. package/build/modular_circuits/module_bom.js +0 -0
  225. package/build/modular_circuits/module_circuit.d.ts +0 -42
  226. package/build/modular_circuits/module_circuit.d.ts.map +0 -1
  227. package/build/modular_circuits/module_circuit.js +0 -0
  228. package/build/modular_circuits/module_resolver.d.ts +0 -32
  229. package/build/modular_circuits/module_resolver.d.ts.map +0 -1
  230. package/build/modular_circuits/module_resolver.js +0 -0
  231. package/build/modular_circuits/module_spec.d.ts +0 -10
  232. package/build/modular_circuits/module_spec.d.ts.map +0 -1
  233. package/build/modular_circuits/module_spec.js +0 -0
  234. package/build/modular_circuits/project.d.ts +0 -46
  235. package/build/modular_circuits/project.d.ts.map +0 -1
  236. package/build/modular_circuits/project.js +0 -1
  237. package/build/modular_circuits/tag.d.ts +0 -9
  238. package/build/modular_circuits/tag.d.ts.map +0 -1
  239. package/build/modular_circuits/tag.js +0 -0
  240. package/build/tsconfig.build.tsbuildinfo +0 -1
@@ -0,0 +1,739 @@
1
+ import { GRAPHICS_ITEM, VECTOR2, Color, GRAPHICS_TEXT, At, GS_Junction, ELECTRICAL_PINTYPE, GRAPHIC_PINSHAPE, GS_NoConnect, LabelShapes, GS_SCH_LINE, PortLike, PortType, GroundParam, VoltageSourceParam, Connection } from '@modular-circuit/electronics-model';
2
+
3
+ interface EDA_ITEM extends GRAPHICS_ITEM {
4
+ }
5
+
6
+ interface Font {
7
+ face?: string;
8
+ size: VECTOR2;
9
+ thickness?: number;
10
+ bold?: boolean;
11
+ italic?: boolean;
12
+ color?: Color;
13
+ }
14
+
15
+ interface Justify {
16
+ horizontal: 'left' | 'center' | 'right';
17
+ vertical: 'top' | 'center' | 'bottom';
18
+ mirror?: boolean;
19
+ }
20
+
21
+ interface Effects {
22
+ font: Font;
23
+ justify?: Justify;
24
+ hide?: boolean;
25
+ }
26
+
27
+ interface EDA_TEXT extends GRAPHICS_TEXT {
28
+ effects: Effects;
29
+ }
30
+
31
+ declare enum FILE_TYPE {
32
+ FONT = 0,
33
+ MODEL = 1,
34
+ WORKSHEET = 2,
35
+ DATA_SHEET = 3,
36
+ OTHER = 4
37
+ }
38
+ interface EMBEDDED_FILE {
39
+ Validate: () => boolean;
40
+ GetLink: () => string;
41
+ name: string;
42
+ type: FILE_TYPE;
43
+ is_valid: boolean;
44
+ compressedEncodedData: string;
45
+ decompressedData: string;
46
+ data_sha: string;
47
+ }
48
+ interface EMBEDDED_FILES {
49
+ AddFile(file: EMBEDDED_FILE): void;
50
+ RemoveFile(filename: string): void;
51
+ HasFile(filename: string): boolean;
52
+ IsEmpty(): boolean;
53
+ UpdateFontFiles(): string[];
54
+ GetFontFiles(): string[];
55
+ GetEmbeddedFile(filename: string): EMBEDDED_FILE | undefined;
56
+ files: {
57
+ [filename: string]: EMBEDDED_FILE;
58
+ };
59
+ fontFile: string[];
60
+ }
61
+
62
+ interface Fill {
63
+ type: 'none' | 'outline' | 'background' | 'color';
64
+ color?: Color;
65
+ }
66
+
67
+ declare const PaperSize: {
68
+ User: readonly [431.8, 279.4];
69
+ A0: readonly [1189, 841];
70
+ A1: readonly [841, 594];
71
+ A2: readonly [594, 420];
72
+ A3: readonly [420, 297];
73
+ A4: readonly [297, 210];
74
+ A5: readonly [210, 148];
75
+ A: readonly [279.4, 215.9];
76
+ B: readonly [431.8, 279.4];
77
+ C: readonly [558.8, 431.8];
78
+ D: readonly [863.6, 558.8];
79
+ E: readonly [1117.6, 863.6];
80
+ USLetter: readonly [279.4, 215.9];
81
+ USLegal: readonly [355.6, 215.9];
82
+ USLedger: readonly [431.8, 279.4];
83
+ };
84
+ type PaperSizeName = keyof typeof PaperSize;
85
+
86
+ interface Paper {
87
+ size: PaperSizeName;
88
+ width?: number;
89
+ height?: number;
90
+ }
91
+
92
+ interface SERIALIZABLE {
93
+ Serialize(): JSON;
94
+ Deserialize(data: JSON): void;
95
+ }
96
+
97
+ interface Stroke {
98
+ width: number;
99
+ type: 'dash' | 'dot' | 'dash_dot' | 'dash_dot_dot' | 'solid' | 'default';
100
+ color?: Color;
101
+ }
102
+
103
+ interface TitleBlock {
104
+ title: string;
105
+ date: string;
106
+ rev: string;
107
+ comment: Record<string, string>;
108
+ }
109
+
110
+ interface SCH_ITEM extends EDA_ITEM {
111
+ }
112
+
113
+ interface BASE_SYMBOL extends SCH_ITEM {
114
+ unit?: number;
115
+ convert?: number;
116
+ in_bom: boolean;
117
+ on_board: boolean;
118
+ dnp: boolean;
119
+ fields_autoplaced: boolean;
120
+ exclude_from_sim: boolean;
121
+ }
122
+
123
+ interface Bus extends GRAPHICS_ITEM {
124
+ pts: VECTOR2[];
125
+ stroke: Stroke;
126
+ }
127
+
128
+ interface BusAlias {
129
+ name: string;
130
+ members: string[];
131
+ }
132
+
133
+ interface BusEntry extends GRAPHICS_ITEM {
134
+ at: At;
135
+ size: VECTOR2;
136
+ stroke: Stroke;
137
+ }
138
+
139
+ declare enum SHAPE_T {
140
+ SEGMENT = "line",
141
+ RECTANGLE = "rect",/// use RECTANGLE instead of RECT to avoid collision in a Windows header
142
+ ARC = "arc",
143
+ CIRCLE = "circle",
144
+ POLY = "polyline",
145
+ BEZIER = "bezier"
146
+ }
147
+ interface GraphicItem {
148
+ stroke?: Stroke;
149
+ fill?: Fill;
150
+ }
151
+ interface Polyline extends GraphicItem {
152
+ shape: SHAPE_T.POLY;
153
+ pts: VECTOR2[];
154
+ }
155
+ interface Arc extends GraphicItem {
156
+ shape: SHAPE_T.ARC;
157
+ start: VECTOR2;
158
+ mid: VECTOR2;
159
+ end: VECTOR2;
160
+ }
161
+ interface Bezier extends GraphicItem {
162
+ shape: SHAPE_T.BEZIER;
163
+ pts: VECTOR2[];
164
+ }
165
+ interface Circle extends GraphicItem {
166
+ shape: SHAPE_T.CIRCLE;
167
+ center: VECTOR2;
168
+ radius: number;
169
+ }
170
+ interface Rectangle extends GraphicItem {
171
+ shape: SHAPE_T.RECTANGLE;
172
+ start: VECTOR2;
173
+ end: VECTOR2;
174
+ }
175
+ interface TextBox extends GraphicItem {
176
+ shape: SHAPE_T.RECTANGLE;
177
+ text: string;
178
+ at: At;
179
+ size: VECTOR2;
180
+ effects: Effects;
181
+ }
182
+
183
+ interface SCH_TEXT extends SCH_ITEM, EDA_TEXT {
184
+ exclude_from_sim?: boolean;
185
+ }
186
+
187
+ interface SCH_TEXT_BOX extends SCH_ITEM, EDA_TEXT {
188
+ }
189
+
190
+ type Drawing = Arc | Bezier | Circle | Polyline | Rectangle | SCH_TEXT | SCH_TEXT_BOX;
191
+
192
+ interface Junction extends GS_Junction {
193
+ color?: Color;
194
+ }
195
+
196
+ interface PIN_ALTERNATE {
197
+ name: string;
198
+ type: ELECTRICAL_PINTYPE;
199
+ shape: GRAPHIC_PINSHAPE;
200
+ }
201
+
202
+ interface PIN_DEFINITION {
203
+ type: ELECTRICAL_PINTYPE;
204
+ shape: GRAPHIC_PINSHAPE;
205
+ hide?: boolean;
206
+ at: At;
207
+ length: number;
208
+ name: {
209
+ text: string;
210
+ effects: Effects;
211
+ };
212
+ number: {
213
+ text: string;
214
+ effects: Effects;
215
+ };
216
+ alternates?: PIN_ALTERNATE[];
217
+ }
218
+
219
+ interface SCH_FIELD extends EDA_TEXT {
220
+ name: string;
221
+ }
222
+
223
+ interface SCH_ITEM_PROPERTY extends Omit<SCH_FIELD, 'uuid'> {
224
+ }
225
+
226
+ interface PIN_DISPLAY_OPT {
227
+ offset?: number;
228
+ hide?: boolean;
229
+ }
230
+ interface LIB_SYMBOL {
231
+ name: string;
232
+ power?: true;
233
+ pin_numbers?: PIN_DISPLAY_OPT;
234
+ pin_names?: PIN_DISPLAY_OPT;
235
+ exclude_from_sim?: boolean;
236
+ in_bom?: boolean;
237
+ on_board?: boolean;
238
+ properties?: SCH_ITEM_PROPERTY[];
239
+ children?: LIB_SYMBOL[];
240
+ pins?: PIN_DEFINITION[];
241
+ drawings?: Drawing[];
242
+ }
243
+
244
+ interface LIB_SYMBOLS {
245
+ symbols: LIB_SYMBOL[];
246
+ }
247
+
248
+ interface NoConnect extends GS_NoConnect {
249
+ }
250
+
251
+ interface PIN_INSTANCE extends GRAPHICS_ITEM {
252
+ number: string;
253
+ alternate?: string;
254
+ }
255
+
256
+ interface SCH_IMAGE extends GRAPHICS_ITEM {
257
+ at: At;
258
+ data: string;
259
+ scale: number;
260
+ }
261
+
262
+ type LabelType = 'label' | 'global_label' | 'hierarchical_label';
263
+ interface SCH_LABEL_BASE extends SCH_TEXT {
264
+ fields?: SCH_FIELD[];
265
+ shape: LabelShapes;
266
+ fields_autoplaced?: boolean;
267
+ }
268
+ interface NetLabel extends Omit<SCH_LABEL_BASE, 'shape'> {
269
+ label_type: 'label';
270
+ }
271
+ interface GlobalLabel extends SCH_LABEL_BASE {
272
+ label_type: 'global_label';
273
+ }
274
+ interface HierarchicalLabel extends SCH_LABEL_BASE {
275
+ label_type: 'hierarchical_label';
276
+ }
277
+ type SCH_LABEL = NetLabel | GlobalLabel | HierarchicalLabel;
278
+ interface LABEL_META {
279
+ text: string;
280
+ shape: LabelShapes;
281
+ }
282
+
283
+ interface SCH_LINE extends SCH_ITEM, GS_SCH_LINE {
284
+ stroke: Stroke;
285
+ }
286
+
287
+ interface SCH_SHEET_PIN extends HierarchicalLabel {
288
+ }
289
+
290
+ /**
291
+ * 摆放在画布中的原理图符号,通过SHEET_FILENAME字段关联实际设计
292
+ * SHEET_FILENAME字段内容可以是项目中设计的相对路径比如module_a.kicad_sch
293
+ * 也可以是指向registry中的project,比如@eda.cn/module_a
294
+ */
295
+ interface SCH_SHEET extends SCH_ITEM {
296
+ at: At;
297
+ size: VECTOR2;
298
+ pins: SCH_SHEET_PIN[];
299
+ fields: SCH_FIELD[];
300
+ fields_autoplaced: boolean;
301
+ stroke: Stroke;
302
+ fill: Required<Omit<Fill, 'type'>>;
303
+ }
304
+
305
+ interface SCH_SHEET_INSTANCE {
306
+ path: string;
307
+ page?: string;
308
+ project: string;
309
+ }
310
+
311
+ interface SYMBOL_INSTANCE {
312
+ path: string;
313
+ project?: string;
314
+ reference?: string;
315
+ value?: string;
316
+ unit?: number;
317
+ footprint?: string;
318
+ }
319
+
320
+ /**
321
+ * lib_id is enough for performing ERC for power symbols
322
+ */
323
+ interface SCH_SYMBOL_META {
324
+ lib_id: string | null;
325
+ }
326
+ interface SCH_SYMBOL extends BASE_SYMBOL, SCH_SYMBOL_META {
327
+ lib_name?: string;
328
+ at: At;
329
+ mirror?: 'x' | 'y';
330
+ properties: SCH_ITEM_PROPERTY[];
331
+ pins: PIN_INSTANCE[];
332
+ instances?: SYMBOL_INSTANCE[];
333
+ }
334
+
335
+ /**
336
+ * KiCad原理图符号的固有属性
337
+ */
338
+ interface SCH_SYMBOL_PROPERTIES {
339
+ value: string;
340
+ footprint: string;
341
+ }
342
+
343
+ interface SheetInstance {
344
+ page: string;
345
+ path: string;
346
+ }
347
+
348
+ interface SheetInstances {
349
+ sheet_instances: Record<string, SheetInstance>;
350
+ }
351
+
352
+ /**
353
+ * 一张完整的原理图
354
+ */
355
+ interface SCHEMATIC extends EDA_ITEM {
356
+ version: number;
357
+ generator: string;
358
+ generator_version: string;
359
+ paper: Paper;
360
+ title_block: TitleBlock;
361
+ lib_symbols?: LIB_SYMBOLS;
362
+ labels?: SCH_LABEL[];
363
+ symbols?: SCH_SYMBOL[];
364
+ wires?: SCH_LINE[];
365
+ buses?: Bus[];
366
+ bus_entries?: BusEntry[];
367
+ bus_aliases?: BusAlias[];
368
+ junctions?: Junction[];
369
+ no_connects?: NoConnect[];
370
+ drawings?: (Polyline | SCH_TEXT)[];
371
+ images?: SCH_IMAGE[];
372
+ sheet_instances?: SheetInstances;
373
+ symbol_instances?: SYMBOL_INSTANCE;
374
+ sheets?: SCH_SHEET[];
375
+ }
376
+
377
+ declare enum SHEET_FIELD_TYPE {
378
+ SHEETNAME = 0,
379
+ SHEETFILENAME = 1,
380
+ SHEET_MANDATORY_FIELDS = 2
381
+ }
382
+
383
+ interface ComponentProperty {
384
+ /**
385
+ * 器件的类型
386
+ */
387
+ readonly Type: string;
388
+ /**
389
+ * 器件的MPN
390
+ */
391
+ MPN: string;
392
+ /**
393
+ * 器件的制造商
394
+ */
395
+ Manufacturer: string;
396
+ /**
397
+ * 器件的值
398
+ */
399
+ Value: string;
400
+ /**
401
+ * 器件的备注
402
+ */
403
+ Description: string;
404
+ /**
405
+ * 器件的类别
406
+ */
407
+ readonly Category: string;
408
+ /**
409
+ * 器件的包体
410
+ */
411
+ readonly Package: string;
412
+ /**
413
+ * 器件生命周期
414
+ */
415
+ readonly Lifecycle: string;
416
+ /**
417
+ * 器件关联的封装
418
+ */
419
+ readonly Footprint: string;
420
+ /**
421
+ *器件的数据表
422
+ */
423
+ readonly Datasheet: string;
424
+ }
425
+
426
+ interface Component extends ComponentProperty {
427
+ }
428
+
429
+ /**
430
+ * 允许为BOM中器件添加替代料(2nd source,3rd source)
431
+ */
432
+ interface BomItem extends ComponentProperty {
433
+ /**
434
+ * 位号
435
+ */
436
+ readonly Designator: string;
437
+ /**
438
+ * 元器件, undefined 表示未匹配
439
+ */
440
+ component: Component | undefined;
441
+ /**
442
+ * 替代料的元器件
443
+ */
444
+ alternatives: Component[];
445
+ }
446
+
447
+ type EDA_PORT_ANNOTATION = SCH_SYMBOL_META | LABEL_META;
448
+ declare const KICAD_GND_NAME = "GND";
449
+ declare enum PORT_ANNOT_TYPE {
450
+ NORMAL_SYMBOL_PIN = 0,
451
+ GLOBAL_GND_PIN = 1,
452
+ GLOBAL_POWER_PIN = 2
453
+ }
454
+ interface EDA_PORT_ELECTRICAL_ANNOT {
455
+ pin_type: ELECTRICAL_PINTYPE;
456
+ port_annot_type: PORT_ANNOT_TYPE;
457
+ }
458
+ declare function parse_eda_annotation(eda_annotation?: EDA_PORT_ANNOTATION): EDA_PORT_ELECTRICAL_ANNOT;
459
+
460
+ /**
461
+ * 除了HierarchicalLabel之外,也包含了电源符号
462
+ */
463
+ type DesignPort = PortLike & EDA_PORT_ANNOTATION;
464
+
465
+ /**
466
+ * 模组的BOM展示与模块的BOM略有不同,需要先展示模组中使用的模块
467
+ */
468
+ interface ModuleBom {
469
+ [index: string]: BomItem[] | ModuleBom;
470
+ }
471
+
472
+ /**
473
+ * .module_circuit后缀(模组)或者.kicad_sch后缀(模块)的文件,对应于KiCad的.kicad_sch和PolymorphicBlocks的Design
474
+ */
475
+ interface ModuleDesignBase extends SCHEMATIC {
476
+ get_ports(): DesignPort[];
477
+ }
478
+ /**
479
+ * 项目的设计
480
+ */
481
+ interface ProjectDesign extends SCHEMATIC {
482
+ get_bom(): ModuleBom;
483
+ }
484
+ /**
485
+ * 项目填充了Port之后才可以发布为模块
486
+ */
487
+ interface PublishedProjectDesign extends ProjectDesign {
488
+ get_ports(): DesignPort[];
489
+ }
490
+ /**
491
+ * 从EDA图纸创建的模块,并从其中自动提取Port及BOM
492
+ */
493
+ interface EDA_DESIGN {
494
+ readonly bom_is_complete: boolean;
495
+ }
496
+ /**
497
+ * 通用模块,仅包含基础属性但并不完全(元器件并未指定到具体的型号)的模块,,摆放到设计后再推荐其元器件值和型号
498
+ */
499
+ interface GeneralModuleDesign extends ModuleDesignBase, EDA_DESIGN {
500
+ readonly bom_is_complete: true;
501
+ get_recommendation(): BomItem[][];
502
+ }
503
+ /**
504
+ * 包含了完整BOM的模块
505
+ */
506
+ interface ConcreteBlockDesign extends ModuleDesignBase, EDA_DESIGN {
507
+ readonly bom_is_complete: false;
508
+ get_bom(): BomItem[];
509
+ }
510
+ type ReusableDesign = GeneralModuleDesign | ConcreteBlockDesign | PublishedProjectDesign;
511
+ type Design = ProjectDesign | ReusableDesign;
512
+
513
+ /**
514
+ * 除了SHEET_PIN之外,也包含了电源符号
515
+ */
516
+ type BlockPort = PortLike & (SCH_SHEET_PIN & SCH_SYMBOL);
517
+
518
+ /**
519
+ * 模块的属性,依次是名称、值、单位、功能
520
+ */
521
+ interface ModuleSpec {
522
+ name: string;
523
+ value: string;
524
+ unit?: string;
525
+ functionality: string;
526
+ }
527
+
528
+ declare const MODULAR_CIRCUIT_EXT = "modular_circuit";
529
+ /**
530
+ *用户通过Design Studio创建的项目
531
+ */
532
+ interface Project {
533
+ /**
534
+ * 项目的id
535
+ */
536
+ id: string;
537
+ /**
538
+ * 项目的名称
539
+ */
540
+ name: string;
541
+ /**
542
+ * 项目的主文件,可以是.kicad_sch或者.modular_circuit
543
+ */
544
+ main: string;
545
+ /**
546
+ * 项目的作者
547
+ */
548
+ author: string;
549
+ /**
550
+ * 项目的短描述
551
+ */
552
+ short_description: string;
553
+ /**
554
+ * 项目的详细描述
555
+ */
556
+ detailed_description: string;
557
+ /**
558
+ * 项目的创建时间
559
+ */
560
+ create_date_time: string;
561
+ /**
562
+ * 模块或者项目的特性
563
+ */
564
+ specifications: ModuleSpec[];
565
+ /**
566
+ * 项目的依赖
567
+ */
568
+ dependencies: {
569
+ [key: string]: string;
570
+ };
571
+ }
572
+
573
+ /**
574
+ * 模块标签用于快速搜索、定位相似功能的模块
575
+ * 预置的Tag由管理员定义
576
+ * “LDO”、“电源转换”、“3.3V”等
577
+ */
578
+ interface Tag {
579
+ name: string;
580
+ }
581
+
582
+ interface BlockBase extends SCH_SHEET {
583
+ /**
584
+ * 对应KiCad的SCH_SHEET_PIN的拓展
585
+ * 现在的思路是分别拿SCH_SHEET_PIN 跟Named Port Map 中的同名Port拼出来一个SheetPort
586
+ */
587
+ get_ports(): BlockPort[];
588
+ }
589
+
590
+ /**
591
+ *摆到画布中的模块
592
+ */
593
+ interface KiCadBlock extends BlockBase {
594
+ has_bom(): boolean;
595
+ }
596
+
597
+ /**
598
+ * 摆放到画布中的模组
599
+ */
600
+ interface ModuleBlock extends BlockBase {
601
+ get_kicad_blocks(): KiCadBlock[];
602
+ get_module_blocks(): ModuleBlock[];
603
+ }
604
+
605
+ /**
606
+ *项目在填充了Ports之后即可发布为模块,可以是在Design Studio中创建并发布的项目,也可以是后台从EDA设计发布的项目
607
+ */
608
+ interface ModuleCircuit extends Project {
609
+ /**
610
+ * 模块的版本,须符合semantic versioning
611
+ */
612
+ version: string;
613
+ /**
614
+ EDA工具制作的原理图自带的可有效用于ERC检查的端口信息,对于Global Power,Value相同的视作同一端口,比如GND、+3.3V、-5V等,
615
+ 同时Global Power的Value也会用作EDA_PORT_ANNOTATION的key
616
+ */
617
+ eda_port_annotations: {
618
+ [key: string]: EDA_PORT_ANNOTATION;
619
+ };
620
+ /**
621
+ * 模块的端口定义,既会用于ERC检查、也会用于生成网表并最终生成kicad原理图,一个Port里可以有一个或者多个信号(层次标签)
622
+ */
623
+ ports: PortLike[];
624
+ /**
625
+ * BOM是否齐备
626
+ */
627
+ bom_matched: boolean;
628
+ /**
629
+ * 分类为树形结构由管理员定义,用户无法修改;这里存放的是树形结构节点的code name ,每个节点的code name 是唯一的
630
+ */
631
+ categories: string[];
632
+ /**
633
+ * 项目的分类标签
634
+ */
635
+ tags: Tag[];
636
+ /**
637
+ * 模块的BOM
638
+ */
639
+ bom: BomItem[];
640
+ }
641
+
642
+ interface ModuleName {
643
+ author: string;
644
+ name: string;
645
+ }
646
+ interface ModuleIndex extends ModuleName {
647
+ version: string;
648
+ }
649
+ type RuntimeModuleCircuit = ModuleCircuit & {
650
+ cate_name: string;
651
+ file_zip: string;
652
+ };
653
+ interface ModuleResolver {
654
+ /**
655
+ * 获取一个已发布项目(项目)的design(.zip)的url
656
+ * 项目发布时候是作为zip发布,里面是平铺的.kicad_sch或者.modular_circuit
657
+ */
658
+ get_module_archive(idx: ModuleIndex): Promise<URL | undefined>;
659
+ /**
660
+ * 获取模块的详细信息
661
+ */
662
+ get_module_circuit(idx: ModuleIndex): Promise<ModuleCircuit | undefined>;
663
+ /**
664
+ * 获取模块的详细信息
665
+ */
666
+ get_module_circuit_by_id(id: string): Promise<ModuleCircuit | undefined>;
667
+ /**
668
+ * 根据后端的id获取一个已发布项目(项目)的design(.zip)的url
669
+ */
670
+ get_module_archive_by_id(id: string): Promise<URL | undefined>;
671
+ }
672
+
673
+ interface IR_GraphItem extends GRAPHICS_ITEM {
674
+ }
675
+
676
+ interface IR_Port extends IR_GraphItem {
677
+ /**
678
+ *递增的端口序号,对应于模块定义中的PortList (VIEW层从1开始)
679
+ */
680
+ index: number;
681
+ /**
682
+ * 可以重复、同一模块中只有index才是唯一的
683
+ */
684
+ name: string;
685
+ /**
686
+ * 电气端口类型
687
+ */
688
+ shape: ELECTRICAL_PINTYPE;
689
+ type: PortType | string;
690
+ }
691
+
692
+ interface IR_Block extends IR_GraphItem {
693
+ name?: string;
694
+ /**
695
+ * 模块类型
696
+ */
697
+ type: ModuleName;
698
+ /**
699
+ * 模块摆到画布上之后的ID
700
+ */
701
+ ports: IR_Port[];
702
+ }
703
+
704
+ interface PowerBase extends IR_GraphItem {
705
+ value: string;
706
+ }
707
+
708
+ interface IR_GND extends PowerBase {
709
+ param?: GroundParam;
710
+ }
711
+
712
+ interface IR_Junction extends IR_GraphItem {
713
+ }
714
+
715
+ interface IR_Label extends IR_GraphItem {
716
+ type: LabelType;
717
+ text: string;
718
+ }
719
+
720
+ interface IR_PowerSym extends PowerBase {
721
+ param?: VoltageSourceParam;
722
+ }
723
+
724
+ interface IR_Wire extends IR_GraphItem, Connection {
725
+ }
726
+
727
+ interface IR_Graph extends IR_GraphItem {
728
+ name?: string;
729
+ blocks?: IR_Block[];
730
+ wires?: IR_Wire[];
731
+ gnd?: IR_GND[];
732
+ pwr?: IR_PowerSym[];
733
+ labels?: IR_Label[];
734
+ junctions?: IR_Junction[];
735
+ }
736
+
737
+ declare const MODULAR_CIRCUIT_SCH_EXT = "modular_circuit";
738
+
739
+ export { type Arc, type BASE_SYMBOL, type Bezier, type BlockBase, type BlockPort, type BomItem, type Bus, type BusAlias, type BusEntry, type Circle, type Component, type ComponentProperty, type ConcreteBlockDesign, type Design, type DesignPort, type Drawing, type EDA_DESIGN, type EDA_ITEM, type EDA_PORT_ANNOTATION, type EDA_PORT_ELECTRICAL_ANNOT, type EDA_TEXT, type EMBEDDED_FILE, type EMBEDDED_FILES, type Effects, FILE_TYPE, type Fill, type Font, type GeneralModuleDesign, type GlobalLabel, type GraphicItem, type HierarchicalLabel, type IR_Block, type IR_GND, type IR_Graph, type IR_GraphItem, type IR_Junction, type IR_Label, type IR_Port, type IR_PowerSym, type IR_Wire, type Junction, type Justify, KICAD_GND_NAME, type KiCadBlock, type LABEL_META, type LIB_SYMBOL, type LIB_SYMBOLS, type LabelType, MODULAR_CIRCUIT_EXT, MODULAR_CIRCUIT_SCH_EXT, type ModuleBlock, type ModuleBom, type ModuleCircuit, type ModuleDesignBase, type ModuleIndex, type ModuleName, type ModuleResolver, type ModuleSpec, type NetLabel, type NoConnect, type PIN_ALTERNATE, type PIN_DEFINITION, type PIN_DISPLAY_OPT, type PIN_INSTANCE, PORT_ANNOT_TYPE, type Paper, PaperSize, type PaperSizeName, type Polyline, type Project, type ProjectDesign, type PublishedProjectDesign, type Rectangle, type ReusableDesign, type RuntimeModuleCircuit, type SCHEMATIC, type SCH_FIELD, type SCH_IMAGE, type SCH_ITEM, type SCH_ITEM_PROPERTY, type SCH_LABEL, type SCH_LINE, type SCH_SHEET, type SCH_SHEET_INSTANCE, type SCH_SHEET_PIN, type SCH_SYMBOL, type SCH_SYMBOL_META, type SCH_SYMBOL_PROPERTIES, type SCH_TEXT, type SCH_TEXT_BOX, type SERIALIZABLE, SHAPE_T, SHEET_FIELD_TYPE, type SYMBOL_INSTANCE, type SheetInstance, type SheetInstances, type Stroke, type Tag, type TextBox, type TitleBlock, parse_eda_annotation };