@vessel-dsp/core 0.5.0 → 0.6.1

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 (241) hide show
  1. package/README.md +10 -0
  2. package/dist/editor/commands.d.ts +48 -0
  3. package/dist/editor/commands.d.ts.map +1 -0
  4. package/{src/editor/commands.ts → dist/editor/commands.js} +44 -91
  5. package/dist/editor/commands.js.map +1 -0
  6. package/dist/editor/factory.d.ts +10 -0
  7. package/dist/editor/factory.d.ts.map +1 -0
  8. package/{src/editor/factory.ts → dist/editor/factory.js} +11 -27
  9. package/dist/editor/factory.js.map +1 -0
  10. package/dist/editor/history.d.ts +29 -0
  11. package/dist/editor/history.d.ts.map +1 -0
  12. package/{src/editor/history.ts → dist/editor/history.js} +12 -42
  13. package/dist/editor/history.js.map +1 -0
  14. package/{src/editor/index.ts → dist/editor/index.d.ts} +1 -3
  15. package/dist/editor/index.d.ts.map +1 -0
  16. package/dist/editor/index.js +5 -0
  17. package/dist/editor/index.js.map +1 -0
  18. package/dist/editor/layout.d.ts +8 -0
  19. package/dist/editor/layout.d.ts.map +1 -0
  20. package/{src/editor/layout.ts → dist/editor/layout.js} +36 -90
  21. package/dist/editor/layout.js.map +1 -0
  22. package/dist/formats/circuit-json/serializer.d.ts +86 -0
  23. package/dist/formats/circuit-json/serializer.d.ts.map +1 -0
  24. package/{src/formats/circuit-json/serializer.ts → dist/formats/circuit-json/serializer.js} +114 -414
  25. package/dist/formats/circuit-json/serializer.js.map +1 -0
  26. package/dist/formats/document.d.ts +64 -0
  27. package/dist/formats/document.d.ts.map +1 -0
  28. package/dist/formats/document.js +300 -0
  29. package/dist/formats/document.js.map +1 -0
  30. package/dist/formats/interchange/parser.d.ts +3 -0
  31. package/dist/formats/interchange/parser.d.ts.map +1 -0
  32. package/{src/formats/interchange/parser.ts → dist/formats/interchange/parser.js} +651 -299
  33. package/dist/formats/interchange/parser.js.map +1 -0
  34. package/dist/formats/interchange/serializer.d.ts +9 -0
  35. package/dist/formats/interchange/serializer.d.ts.map +1 -0
  36. package/{src/formats/interchange/serializer.ts → dist/formats/interchange/serializer.js} +151 -158
  37. package/dist/formats/interchange/serializer.js.map +1 -0
  38. package/dist/formats/ltspice/catalog.d.ts +19 -0
  39. package/dist/formats/ltspice/catalog.d.ts.map +1 -0
  40. package/{src/formats/ltspice/catalog.ts → dist/formats/ltspice/catalog.js} +18 -52
  41. package/dist/formats/ltspice/catalog.js.map +1 -0
  42. package/dist/formats/ltspice/encoding.d.ts +2 -0
  43. package/dist/formats/ltspice/encoding.d.ts.map +1 -0
  44. package/{src/formats/ltspice/encoding.ts → dist/formats/ltspice/encoding.js} +17 -41
  45. package/dist/formats/ltspice/encoding.js.map +1 -0
  46. package/dist/formats/ltspice/parser.d.ts +3 -0
  47. package/dist/formats/ltspice/parser.d.ts.map +1 -0
  48. package/{src/formats/ltspice/parser.ts → dist/formats/ltspice/parser.js} +39 -141
  49. package/dist/formats/ltspice/parser.js.map +1 -0
  50. package/dist/formats/ltspice/serializer.d.ts +7 -0
  51. package/dist/formats/ltspice/serializer.d.ts.map +1 -0
  52. package/{src/formats/ltspice/serializer.ts → dist/formats/ltspice/serializer.js} +18 -45
  53. package/dist/formats/ltspice/serializer.js.map +1 -0
  54. package/dist/formats/schx/catalog.d.ts +19 -0
  55. package/dist/formats/schx/catalog.d.ts.map +1 -0
  56. package/{src/formats/schx/catalog.ts → dist/formats/schx/catalog.js} +48 -101
  57. package/dist/formats/schx/catalog.js.map +1 -0
  58. package/dist/formats/schx/parser.d.ts +3 -0
  59. package/dist/formats/schx/parser.d.ts.map +1 -0
  60. package/{src/formats/schx/parser.ts → dist/formats/schx/parser.js} +31 -86
  61. package/dist/formats/schx/parser.js.map +1 -0
  62. package/dist/formats/schx/runtime-descriptors.d.ts +3 -0
  63. package/dist/formats/schx/runtime-descriptors.d.ts.map +1 -0
  64. package/{src/formats/schx/runtime-descriptors.ts → dist/formats/schx/runtime-descriptors.js} +36 -123
  65. package/dist/formats/schx/runtime-descriptors.js.map +1 -0
  66. package/dist/formats/schx/serializer.d.ts +5 -0
  67. package/dist/formats/schx/serializer.d.ts.map +1 -0
  68. package/{src/formats/schx/serializer.ts → dist/formats/schx/serializer.js} +17 -42
  69. package/dist/formats/schx/serializer.js.map +1 -0
  70. package/dist/formats/schx/transforms.d.ts +4 -0
  71. package/dist/formats/schx/transforms.d.ts.map +1 -0
  72. package/{src/formats/schx/transforms.ts → dist/formats/schx/transforms.js} +6 -10
  73. package/dist/formats/schx/transforms.js.map +1 -0
  74. package/dist/formats/spice/parser.d.ts +3 -0
  75. package/dist/formats/spice/parser.d.ts.map +1 -0
  76. package/{src/formats/spice/parser.ts → dist/formats/spice/parser.js} +50 -96
  77. package/dist/formats/spice/parser.js.map +1 -0
  78. package/dist/formats/spice/serializer.d.ts +3 -0
  79. package/dist/formats/spice/serializer.d.ts.map +1 -0
  80. package/{src/formats/spice/serializer.ts → dist/formats/spice/serializer.js} +8 -13
  81. package/dist/formats/spice/serializer.js.map +1 -0
  82. package/dist/index.d.ts +47 -0
  83. package/dist/index.d.ts.map +1 -0
  84. package/dist/index.js +32 -0
  85. package/dist/index.js.map +1 -0
  86. package/dist/model/connectivity.d.ts +16 -0
  87. package/dist/model/connectivity.d.ts.map +1 -0
  88. package/{src/model/connectivity.ts → dist/model/connectivity.js} +28 -63
  89. package/dist/model/connectivity.js.map +1 -0
  90. package/dist/model/netlist.d.ts +24 -0
  91. package/dist/model/netlist.d.ts.map +1 -0
  92. package/{src/model/netlist.ts → dist/model/netlist.js} +42 -110
  93. package/dist/model/netlist.js.map +1 -0
  94. package/dist/model/properties.d.ts +9 -0
  95. package/dist/model/properties.d.ts.map +1 -0
  96. package/{src/model/properties.ts → dist/model/properties.js} +10 -18
  97. package/dist/model/properties.js.map +1 -0
  98. package/dist/model/quantity.d.ts +3 -0
  99. package/dist/model/quantity.d.ts.map +1 -0
  100. package/{src/model/quantity.ts → dist/model/quantity.js} +7 -30
  101. package/dist/model/quantity.js.map +1 -0
  102. package/dist/model/types.d.ts +431 -0
  103. package/dist/model/types.d.ts.map +1 -0
  104. package/dist/model/types.js +10 -0
  105. package/dist/model/types.js.map +1 -0
  106. package/dist/model/validation.d.ts +32 -0
  107. package/dist/model/validation.d.ts.map +1 -0
  108. package/{src/model/validation.ts → dist/model/validation.js} +420 -323
  109. package/dist/model/validation.js.map +1 -0
  110. package/dist/model/wires.d.ts +3 -0
  111. package/dist/model/wires.d.ts.map +1 -0
  112. package/{src/model/wires.ts → dist/model/wires.js} +10 -16
  113. package/dist/model/wires.js.map +1 -0
  114. package/dist/panel/extract.d.ts +5 -0
  115. package/dist/panel/extract.d.ts.map +1 -0
  116. package/{src/panel/extract.ts → dist/panel/extract.js} +146 -235
  117. package/dist/panel/extract.js.map +1 -0
  118. package/dist/panel/index.d.ts +6 -0
  119. package/dist/panel/index.d.ts.map +1 -0
  120. package/dist/panel/index.js +5 -0
  121. package/dist/panel/index.js.map +1 -0
  122. package/dist/panel/knobs.d.ts +7 -0
  123. package/dist/panel/knobs.d.ts.map +1 -0
  124. package/{src/panel/knobs.ts → dist/panel/knobs.js} +7 -18
  125. package/dist/panel/knobs.js.map +1 -0
  126. package/dist/panel/protocol.d.ts +9 -0
  127. package/dist/panel/protocol.d.ts.map +1 -0
  128. package/{src/panel/protocol.ts → dist/panel/protocol.js} +10 -26
  129. package/dist/panel/protocol.js.map +1 -0
  130. package/{src/panel/types.ts → dist/panel/types.d.ts} +50 -89
  131. package/dist/panel/types.d.ts.map +1 -0
  132. package/dist/panel/types.js +2 -0
  133. package/dist/panel/types.js.map +1 -0
  134. package/dist/preview/bounds.d.ts +12 -0
  135. package/dist/preview/bounds.d.ts.map +1 -0
  136. package/{src/preview/bounds.ts → dist/preview/bounds.js} +15 -29
  137. package/dist/preview/bounds.js.map +1 -0
  138. package/dist/preview/box-layout.d.ts +4 -0
  139. package/dist/preview/box-layout.d.ts.map +1 -0
  140. package/{src/preview/box-layout.ts → dist/preview/box-layout.js} +2 -6
  141. package/dist/preview/box-layout.js.map +1 -0
  142. package/dist/preview/colors.d.ts +3 -0
  143. package/dist/preview/colors.d.ts.map +1 -0
  144. package/{src/preview/colors.ts → dist/preview/colors.js} +3 -5
  145. package/dist/preview/colors.js.map +1 -0
  146. package/dist/preview/hanging.d.ts +8 -0
  147. package/dist/preview/hanging.d.ts.map +1 -0
  148. package/{src/preview/hanging.ts → dist/preview/hanging.js} +9 -28
  149. package/dist/preview/hanging.js.map +1 -0
  150. package/dist/preview/junctions.d.ts +3 -0
  151. package/dist/preview/junctions.d.ts.map +1 -0
  152. package/{src/preview/junctions.ts → dist/preview/junctions.js} +9 -24
  153. package/dist/preview/junctions.js.map +1 -0
  154. package/dist/preview/label-layout.d.ts +12 -0
  155. package/dist/preview/label-layout.d.ts.map +1 -0
  156. package/{src/preview/label-layout.ts → dist/preview/label-layout.js} +15 -36
  157. package/dist/preview/label-layout.js.map +1 -0
  158. package/dist/preview/ports.d.ts +17 -0
  159. package/dist/preview/ports.d.ts.map +1 -0
  160. package/{src/preview/ports.ts → dist/preview/ports.js} +10 -37
  161. package/dist/preview/ports.js.map +1 -0
  162. package/dist/preview/renderable-wires.d.ts +3 -0
  163. package/dist/preview/renderable-wires.d.ts.map +1 -0
  164. package/{src/preview/renderable-wires.ts → dist/preview/renderable-wires.js} +12 -29
  165. package/dist/preview/renderable-wires.js.map +1 -0
  166. package/dist/preview/routing.d.ts +4 -0
  167. package/dist/preview/routing.d.ts.map +1 -0
  168. package/dist/preview/routing.js +13 -0
  169. package/dist/preview/routing.js.map +1 -0
  170. package/dist/preview/snap.d.ts +9 -0
  171. package/dist/preview/snap.d.ts.map +1 -0
  172. package/{src/preview/snap.ts → dist/preview/snap.js} +9 -31
  173. package/dist/preview/snap.js.map +1 -0
  174. package/dist/preview/symbols/svg-content.d.ts +7 -0
  175. package/dist/preview/symbols/svg-content.d.ts.map +1 -0
  176. package/{src/preview/symbols/svg-content.ts → dist/preview/symbols/svg-content.js} +3 -6
  177. package/dist/preview/symbols/svg-content.js.map +1 -0
  178. package/dist/preview/symbols.d.ts +7 -0
  179. package/dist/preview/symbols.d.ts.map +1 -0
  180. package/{src/preview/symbols.ts → dist/preview/symbols.js} +18 -43
  181. package/dist/preview/symbols.js.map +1 -0
  182. package/dist/preview/wire-chains.d.ts +4 -0
  183. package/dist/preview/wire-chains.d.ts.map +1 -0
  184. package/{src/preview/wire-chains.ts → dist/preview/wire-chains.js} +37 -37
  185. package/dist/preview/wire-chains.js.map +1 -0
  186. package/package.json +3 -3
  187. package/src/formats/document.ts +0 -274
  188. package/src/index.ts +0 -205
  189. package/src/model/types.ts +0 -309
  190. package/src/panel/index.ts +0 -39
  191. package/src/preview/routing.ts +0 -15
  192. package/src/preview/symbols/analog-switch.svg +0 -17
  193. package/src/preview/symbols/battery.svg +0 -16
  194. package/src/preview/symbols/bbd.svg +0 -21
  195. package/src/preview/symbols/bjt-npn.svg +0 -16
  196. package/src/preview/symbols/bjt-pnp.svg +0 -17
  197. package/src/preview/symbols/capacitor-electrolytic.svg +0 -13
  198. package/src/preview/symbols/capacitor.svg +0 -12
  199. package/src/preview/symbols/current-source.svg +0 -14
  200. package/src/preview/symbols/delay-ic.svg +0 -22
  201. package/src/preview/symbols/diode-schottky.svg +0 -12
  202. package/src/preview/symbols/diode-zener.svg +0 -12
  203. package/src/preview/symbols/diode.svg +0 -13
  204. package/src/preview/symbols/flipflop.svg +0 -20
  205. package/src/preview/symbols/ground.svg +0 -12
  206. package/src/preview/symbols/ic-block.svg +0 -20
  207. package/src/preview/symbols/ic.svg +0 -19
  208. package/src/preview/symbols/inductor.svg +0 -11
  209. package/src/preview/symbols/jack-input.svg +0 -16
  210. package/src/preview/symbols/jack-output.svg +0 -16
  211. package/src/preview/symbols/jfet-junction-n.svg +0 -17
  212. package/src/preview/symbols/jfet-n.svg +0 -17
  213. package/src/preview/symbols/jfet-p.svg +0 -17
  214. package/src/preview/symbols/label.svg +0 -8
  215. package/src/preview/symbols/led.svg +0 -18
  216. package/src/preview/symbols/mosfet-n.svg +0 -21
  217. package/src/preview/symbols/mosfet-p.svg +0 -21
  218. package/src/preview/symbols/named-wire.svg +0 -11
  219. package/src/preview/symbols/opamp.svg +0 -21
  220. package/src/preview/symbols/optocoupler.svg +0 -30
  221. package/src/preview/symbols/ota.svg +0 -20
  222. package/src/preview/symbols/pentode.svg +0 -25
  223. package/src/preview/symbols/photoresistor.svg +0 -19
  224. package/src/preview/symbols/port.svg +0 -8
  225. package/src/preview/symbols/potentiometer.svg +0 -15
  226. package/src/preview/symbols/power-amp.svg +0 -20
  227. package/src/preview/symbols/rail.svg +0 -11
  228. package/src/preview/symbols/regulator.svg +0 -13
  229. package/src/preview/symbols/relay.svg +0 -20
  230. package/src/preview/symbols/resistor.svg +0 -11
  231. package/src/preview/symbols/switch-3pdt.svg +0 -32
  232. package/src/preview/symbols/switch-rotary.svg +0 -23
  233. package/src/preview/symbols/switch-spdt.svg +0 -16
  234. package/src/preview/symbols/switch-spst.svg +0 -14
  235. package/src/preview/symbols/switch-toggle.svg +0 -14
  236. package/src/preview/symbols/transformer.svg +0 -17
  237. package/src/preview/symbols/triode.svg +0 -17
  238. package/src/preview/symbols/tube-diode.svg +0 -13
  239. package/src/preview/symbols/unsupported.svg +0 -8
  240. package/src/preview/symbols/variable-resistor.svg +0 -13
  241. package/src/preview/symbols/voltage-source.svg +0 -15
@@ -0,0 +1,431 @@
1
+ export type Point = Readonly<{
2
+ x: number;
3
+ y: number;
4
+ }>;
5
+ export type Rotation = 0 | 1 | 2 | 3;
6
+ export type ParsedQuantity = Readonly<{
7
+ raw: string;
8
+ value: number;
9
+ unit: string;
10
+ }>;
11
+ export type ComponentKind = 'resistor' | 'capacitor' | 'inductor' | 'diode' | 'led' | 'bjt' | 'jfet' | 'mosfet' | 'opamp' | 'ota' | 'triode' | 'pentode' | 'tube-diode' | 'transformer' | 'potentiometer' | 'variable-resistor' | 'switch' | 'optocoupler' | 'voltage-source' | 'current-source' | 'battery' | 'ground' | 'rail' | 'jack' | 'bbd' | 'delay-ic' | 'power-amp' | 'regulator' | 'analog-switch' | 'flipflop' | 'ic' | 'label' | 'named-wire' | 'port' | 'unsupported';
12
+ export type Terminal = Readonly<{
13
+ name: string;
14
+ position: Point;
15
+ }>;
16
+ export type PropertyObject = Readonly<{
17
+ readonly [key: string]: PropertyValue;
18
+ }>;
19
+ export type PropertyValue = ParsedQuantity | string | number | boolean | null | readonly PropertyValue[] | PropertyObject;
20
+ export type Component = Readonly<{
21
+ id: string;
22
+ kind: ComponentKind;
23
+ name: string;
24
+ origin: Point;
25
+ rotation: Rotation;
26
+ flipped: boolean;
27
+ terminals: readonly Terminal[];
28
+ properties: Readonly<Record<string, PropertyValue>>;
29
+ sourceTypeName: string | null;
30
+ }>;
31
+ export type Wire = Readonly<{
32
+ id: string;
33
+ endpoints: readonly [Point, Point];
34
+ }>;
35
+ export type DocumentMetadata = Readonly<{
36
+ name: string;
37
+ description: string;
38
+ partNumber: string;
39
+ }>;
40
+ export type DocumentSource = Readonly<Record<string, string>>;
41
+ export type ControlInterfaceRole = 'external-control' | 'tempo-tap' | 'trigger' | 'reset' | 'sampler-trigger' | 'expression' | 'unknown';
42
+ export type ControlInterfaceConnector = '1/4-inch-mono-ts' | '1/4-inch-trs' | '3.5mm-mono-ts' | '3.5mm-trs' | 'proprietary' | 'unknown';
43
+ export type ControlInterfaceAssignmentHint = 'momentary' | 'latching' | 'momentary-or-latching' | 'continuous';
44
+ export type ControlInterfacePolarity = 'normally-open' | 'normally-closed' | 'expression' | 'unknown';
45
+ export type ControlInterfaceBinding = Readonly<{
46
+ sourceComponentId?: string;
47
+ controlId?: string;
48
+ controlName?: string;
49
+ property?: string;
50
+ }>;
51
+ export type ControlInterface = Readonly<{
52
+ id: string;
53
+ name: string;
54
+ role: ControlInterfaceRole;
55
+ componentId?: string;
56
+ controlRole?: string;
57
+ interface?: string;
58
+ connector?: ControlInterfaceConnector;
59
+ assignmentHint?: ControlInterfaceAssignmentHint;
60
+ polarity?: ControlInterfacePolarity;
61
+ binding?: ControlInterfaceBinding;
62
+ description?: string;
63
+ }>;
64
+ export type CircuitDocumentDeviceKind = 'audio-pedal' | 'control-accessory' | 'utility' | 'unknown';
65
+ export type CircuitDocumentDevice = Readonly<{
66
+ id?: string;
67
+ version?: number;
68
+ kind: CircuitDocumentDeviceKind;
69
+ family?: string;
70
+ model?: string;
71
+ audioProcessing?: boolean;
72
+ }>;
73
+ export type ControlOutputSwitchMode = 'momentary' | 'latching';
74
+ export type ControlOutput = Readonly<{
75
+ id: string;
76
+ name: string;
77
+ role: ControlInterfaceRole;
78
+ connector?: ControlInterfaceConnector;
79
+ switchMode?: ControlOutputSwitchMode;
80
+ polarity?: ControlInterfacePolarity;
81
+ inactiveValue?: number;
82
+ activeValue?: number;
83
+ componentId?: string;
84
+ description?: string;
85
+ }>;
86
+ export type ControlContext = Readonly<{
87
+ id: string;
88
+ name: string;
89
+ role: string;
90
+ description?: string;
91
+ }>;
92
+ export type ControlGroup = Readonly<{
93
+ id: string;
94
+ name: string;
95
+ role: string;
96
+ contextIds?: readonly string[];
97
+ description?: string;
98
+ }>;
99
+ export type DeviceInterfaceControlKind = 'knob' | 'slider' | 'switch' | 'selector' | 'footswitch' | 'led' | 'jack';
100
+ export type DeviceInterfaceBinding = Readonly<{
101
+ componentId: string;
102
+ controlId?: string;
103
+ controlName?: string;
104
+ property?: string;
105
+ externalInterfaceId?: string;
106
+ }>;
107
+ export type ControlApplicabilityPredicate = Readonly<{
108
+ allOf?: readonly string[];
109
+ anyOf?: readonly string[];
110
+ }>;
111
+ export type DeviceInterfaceControl = Readonly<{
112
+ id: string;
113
+ label: string;
114
+ kind: DeviceInterfaceControlKind;
115
+ role: string;
116
+ groupId?: string;
117
+ order?: number;
118
+ binding?: DeviceInterfaceBinding;
119
+ appliesWhen?: ControlApplicabilityPredicate;
120
+ description?: string;
121
+ }>;
122
+ export type DeviceInterface = Readonly<{
123
+ controls: readonly DeviceInterfaceControl[];
124
+ }>;
125
+ export type PanelGridIndexing = 'one-based' | 'zero-based';
126
+ export type PanelRowOrder = 'top-to-bottom' | 'bottom-to-top';
127
+ export type PanelColumnOrder = 'left-to-right' | 'right-to-left';
128
+ export type PanelGridLayout = Readonly<{
129
+ kind: 'stompbox-grid';
130
+ rows: number;
131
+ columns: number;
132
+ indexing: PanelGridIndexing;
133
+ rowOrder?: PanelRowOrder;
134
+ columnOrder?: PanelColumnOrder;
135
+ }>;
136
+ export type PanelControlKind = 'knob' | 'slider' | 'switch' | 'selector' | 'footswitch' | 'led' | 'jack';
137
+ export type PanelGridPosition = Readonly<{
138
+ row: number;
139
+ column: number;
140
+ rowSpan?: number;
141
+ columnSpan?: number;
142
+ }>;
143
+ export type PanelElementBinding = Readonly<{
144
+ componentId: string;
145
+ controlId?: string;
146
+ controlName?: string;
147
+ property?: string;
148
+ }>;
149
+ export type PanelElementPlacement = Readonly<{
150
+ id?: string;
151
+ bind: PanelElementBinding;
152
+ kind: PanelControlKind;
153
+ grid: PanelGridPosition;
154
+ label?: string;
155
+ interfaceControlId?: string;
156
+ physical?: PanelElementPhysicalPlacement;
157
+ }>;
158
+ /** @deprecated Use PanelElementPlacement. */
159
+ export type PanelControlPlacement = PanelElementPlacement;
160
+ export type PanelFace = Readonly<{
161
+ id: string;
162
+ label?: string;
163
+ layout: PanelGridLayout;
164
+ geometry?: PanelFaceGeometry;
165
+ elements: readonly PanelElementPlacement[];
166
+ }>;
167
+ export type PanelPlacementMetadata = Readonly<{
168
+ faces: readonly PanelFace[];
169
+ }>;
170
+ export type VdspBuildDataScalar = string | number | boolean | null;
171
+ export type VdspBuildDataValue = VdspBuildDataScalar | readonly VdspBuildDataValue[] | VdspBuildDataObject;
172
+ export type VdspBuildDataObject = Readonly<{
173
+ readonly [key: string]: VdspBuildDataValue | undefined;
174
+ }>;
175
+ export type MillimeterRect = Readonly<{
176
+ x: number;
177
+ y: number;
178
+ width: number;
179
+ height: number;
180
+ }>;
181
+ export type PanelFaceGeometry = VdspBuildDataObject & Readonly<{
182
+ units?: string;
183
+ surface?: string;
184
+ usableRectMm?: MillimeterRect;
185
+ }>;
186
+ export type PanelElementPhysicalPlacement = VdspBuildDataObject & Readonly<{
187
+ units?: string;
188
+ centerMm?: Point;
189
+ drillDiameterMm?: number;
190
+ partProfileId?: string;
191
+ locked?: boolean;
192
+ }>;
193
+ export type BuildIntent = 'diy-build-artifact' | 'schema-review-sample';
194
+ export type BuildCompleteness = 'complete-selected-build' | 'partial-offboard-wiring';
195
+ export type BuildScope = VdspBuildDataObject & Readonly<{
196
+ schema: 'build-scope/v1';
197
+ intent?: BuildIntent;
198
+ completeness?: BuildCompleteness;
199
+ selectedBoardId?: string;
200
+ selectedOffBoardWiringHarnessIds?: readonly string[];
201
+ alternateBoardIds?: readonly string[];
202
+ bomScope?: string;
203
+ }>;
204
+ export type MechanicalBuildMetadata = VdspBuildDataObject & Readonly<{
205
+ schema?: string;
206
+ units?: string;
207
+ coordinateSystem?: VdspBuildDataObject;
208
+ enclosure?: VdspBuildDataObject & Readonly<{
209
+ profileId?: string;
210
+ label?: string;
211
+ outerSizeMm?: VdspBuildDataObject;
212
+ wallThicknessMm?: number;
213
+ }>;
214
+ internalBoard?: VdspBuildDataObject & Readonly<{
215
+ preferredBoardId?: string;
216
+ usableRectMm?: MillimeterRect;
217
+ keepoutRectsMm?: readonly VdspBuildDataObject[];
218
+ }>;
219
+ }>;
220
+ export type BuildBomRefKind = 'component' | 'device-interface-control' | 'panel-element' | 'board' | 'freeform-build-item';
221
+ export type BuildBomRef = VdspBuildDataObject & Readonly<{
222
+ kind: BuildBomRefKind;
223
+ componentId?: string;
224
+ controlId?: string;
225
+ panelElementId?: string;
226
+ boardId?: string;
227
+ label?: string;
228
+ }>;
229
+ export type BuildBomItem = VdspBuildDataObject & Readonly<{
230
+ id: string;
231
+ refs: readonly BuildBomRef[];
232
+ quantity: number;
233
+ value?: string;
234
+ partProfileId?: string;
235
+ category?: string;
236
+ sku?: string;
237
+ }>;
238
+ export type BuildBom = VdspBuildDataObject & Readonly<{
239
+ schema: 'build-bom/v1';
240
+ items: readonly BuildBomItem[];
241
+ }>;
242
+ export type BuildPartProfile = VdspBuildDataObject & Readonly<{
243
+ id: string;
244
+ kind?: string;
245
+ }>;
246
+ export type BuildPartProfileCatalog = VdspBuildDataObject & Readonly<{
247
+ schema: 'part-profile-catalog/v1';
248
+ resolution?: string;
249
+ units?: string;
250
+ profiles: readonly BuildPartProfile[];
251
+ }>;
252
+ export type BoardFootprint = VdspBuildDataObject & Readonly<{
253
+ id: string;
254
+ boardApplicability?: BoardApplicability;
255
+ }>;
256
+ export type BoardFootprintCatalog = VdspBuildDataObject & Readonly<{
257
+ schema: 'board-footprint-catalog/v1';
258
+ resolution?: string;
259
+ units?: string;
260
+ footprints: readonly BoardFootprint[];
261
+ }>;
262
+ export type OffBoardWiringCoverage = 'selected-build-complete' | 'representative-selected-build-endpoints';
263
+ export type OffBoardWiringHarnessStatus = 'complete' | 'partial' | 'candidate';
264
+ export type OffBoardWiringEndpointKind = 'panel-component-terminal' | 'board-terminal' | 'power-terminal' | 'footswitch-terminal' | 'free-wire-label';
265
+ export type OffBoardWiringEndpoint = VdspBuildDataObject & Readonly<{
266
+ id: string;
267
+ kind: OffBoardWiringEndpointKind;
268
+ componentId?: string;
269
+ terminalName?: string;
270
+ panelElementId?: string;
271
+ boardId?: string;
272
+ terminalId?: string;
273
+ label?: string;
274
+ }>;
275
+ export type BoardNetRef = VdspBuildDataObject & Readonly<{
276
+ source: 'board-netlist';
277
+ boardId?: string;
278
+ netId: string;
279
+ }>;
280
+ export type CanonicalCircuitNetRef = VdspBuildDataObject & Readonly<{
281
+ source: 'canonical-circuit';
282
+ member?: ComponentTerminalRef;
283
+ }>;
284
+ export type OffBoardSignalRef = BoardNetRef | CanonicalCircuitNetRef | VdspBuildDataObject;
285
+ export type OffBoardWireAttributes = VdspBuildDataObject & Readonly<{
286
+ color?: string;
287
+ gaugeAwg?: number;
288
+ reviewedLengthMm?: number;
289
+ groupId?: string;
290
+ }>;
291
+ export type OffBoardWiringConnection = VdspBuildDataObject & Readonly<{
292
+ id: string;
293
+ fromEndpointId: string;
294
+ toEndpointId: string;
295
+ signalRef?: OffBoardSignalRef;
296
+ wire?: OffBoardWireAttributes;
297
+ }>;
298
+ export type OffBoardWiringHarness = VdspBuildDataObject & Readonly<{
299
+ id: string;
300
+ status?: OffBoardWiringHarnessStatus;
301
+ notes?: string;
302
+ endpoints: readonly OffBoardWiringEndpoint[];
303
+ connections: readonly OffBoardWiringConnection[];
304
+ }>;
305
+ export type OffBoardWiringPlan = VdspBuildDataObject & Readonly<{
306
+ schema: 'offboard-wiring/v1';
307
+ source?: string;
308
+ coverage?: OffBoardWiringCoverage;
309
+ harnesses: readonly OffBoardWiringHarness[];
310
+ }>;
311
+ export type BoardFamily = 'prototype-board' | 'fabricated-board';
312
+ export type BoardKind = 'stripboard' | 'perfboard' | 'breadboard-pattern' | 'pcb';
313
+ export type BoardSubtype = 'veroboard' | 'isolated-pad' | 'solderable-half-breadboard' | 'single-sided-through-hole' | 'two-layer-through-hole';
314
+ export type BoardApplicability = VdspBuildDataObject & Readonly<{
315
+ family: BoardFamily;
316
+ kind: BoardKind;
317
+ subtype?: BoardSubtype;
318
+ }>;
319
+ export type ComponentTerminalRef = VdspBuildDataObject & Readonly<{
320
+ componentId: string;
321
+ terminalName: string;
322
+ }>;
323
+ export type BoardSourceCircuitHash = VdspBuildDataObject & Readonly<{
324
+ schema: 'canonical-circuit-facts-hash/v1';
325
+ hashAlgorithm: 'sha256';
326
+ hash: string;
327
+ }>;
328
+ export type BoardHole = VdspBuildDataObject & Readonly<{
329
+ row: number;
330
+ column: number;
331
+ }>;
332
+ export type BoardEdgeTerminal = VdspBuildDataObject & Readonly<{
333
+ id: string;
334
+ role?: string;
335
+ terminalRef?: ComponentTerminalRef;
336
+ hole?: BoardHole;
337
+ }>;
338
+ export type BoardPlacedPad = VdspBuildDataObject & Readonly<{
339
+ padId: string;
340
+ terminalName?: string;
341
+ hole?: BoardHole;
342
+ positionMm?: Point;
343
+ }>;
344
+ export type BoardFootprintPlacement = VdspBuildDataObject & Readonly<{
345
+ componentId: string;
346
+ footprintId: string;
347
+ atGrid?: BoardHole;
348
+ atMm?: Point;
349
+ rotationDeg?: number;
350
+ pads: readonly BoardPlacedPad[];
351
+ }>;
352
+ export type BoardNetMember = VdspBuildDataObject & Readonly<{
353
+ componentId: string;
354
+ terminalName: string;
355
+ padId?: string;
356
+ terminalId?: string;
357
+ }>;
358
+ export type BoardNet = VdspBuildDataObject & Readonly<{
359
+ id: string;
360
+ name?: string;
361
+ members: readonly BoardNetMember[];
362
+ }>;
363
+ export type BoardNetlist = VdspBuildDataObject & Readonly<{
364
+ source?: string;
365
+ nets: readonly BoardNet[];
366
+ }>;
367
+ export type BoardRoute = VdspBuildDataObject & Readonly<{
368
+ id: string;
369
+ netRef?: BoardNetRef | CanonicalCircuitNetRef | VdspBuildDataObject;
370
+ locked?: boolean;
371
+ conductors?: readonly VdspBuildDataObject[];
372
+ copper?: readonly VdspBuildDataObject[];
373
+ vias?: readonly VdspBuildDataObject[];
374
+ zones?: readonly VdspBuildDataObject[];
375
+ drills?: readonly VdspBuildDataObject[];
376
+ }>;
377
+ export type BoardReview = VdspBuildDataObject & Readonly<{
378
+ status?: 'buildable' | 'candidate' | 'stale' | string;
379
+ reviewedBy?: string;
380
+ reviewedAt?: string;
381
+ notes?: string;
382
+ }>;
383
+ export type BoardRealization = VdspBuildDataObject & Readonly<{
384
+ id: string;
385
+ schema: 'circuit-board/v1';
386
+ family: BoardFamily;
387
+ kind: BoardKind;
388
+ subtype?: BoardSubtype;
389
+ source?: string;
390
+ units?: string;
391
+ locked?: boolean;
392
+ sourceCircuit?: BoardSourceCircuitHash;
393
+ edgeTerminals: readonly BoardEdgeTerminal[];
394
+ footprintPlacements: readonly BoardFootprintPlacement[];
395
+ netlist?: BoardNetlist;
396
+ routes: readonly BoardRoute[];
397
+ zones?: readonly VdspBuildDataObject[];
398
+ drills?: readonly VdspBuildDataObject[];
399
+ review?: BoardReview;
400
+ }>;
401
+ export type Warning = Readonly<{
402
+ code: string;
403
+ message: string;
404
+ componentId?: string;
405
+ wireId?: string;
406
+ }>;
407
+ export type CircuitDocument = Readonly<{
408
+ metadata: DocumentMetadata;
409
+ source?: DocumentSource;
410
+ device?: CircuitDocumentDevice;
411
+ controlGroups?: readonly ControlGroup[];
412
+ controlContexts?: readonly ControlContext[];
413
+ mechanical?: MechanicalBuildMetadata;
414
+ build?: BuildScope;
415
+ bom?: BuildBom;
416
+ partProfiles?: BuildPartProfileCatalog;
417
+ footprints?: BoardFootprintCatalog;
418
+ offBoardWiring?: OffBoardWiringPlan;
419
+ boards?: readonly BoardRealization[];
420
+ deviceInterface?: DeviceInterface;
421
+ panel?: PanelPlacementMetadata;
422
+ controlInterfaces?: readonly ControlInterface[];
423
+ controlOutputs?: readonly ControlOutput[];
424
+ components: readonly Component[];
425
+ wires: readonly Wire[];
426
+ directives: readonly string[];
427
+ warnings: readonly Warning[];
428
+ rawAttributes: Readonly<Record<string, string>>;
429
+ }>;
430
+ export declare const EMPTY_DOCUMENT: CircuitDocument;
431
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/model/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export const EMPTY_DOCUMENT = {
2
+ metadata: { name: '', description: '', partNumber: '' },
3
+ source: {},
4
+ components: [],
5
+ wires: [],
6
+ directives: [],
7
+ warnings: [],
8
+ rawAttributes: {},
9
+ };
10
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/model/types.ts"],"names":[],"mappings":"AAylBA,MAAM,CAAC,MAAM,cAAc,GAAoB;IAC3C,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;IACvD,MAAM,EAAE,EAAE;IACV,UAAU,EAAE,EAAE;IACd,KAAK,EAAE,EAAE;IACT,UAAU,EAAE,EAAE;IACd,QAAQ,EAAE,EAAE;IACZ,aAAa,EAAE,EAAE;CACpB,CAAC"}
@@ -0,0 +1,32 @@
1
+ import type { CircuitDocument, Component, ComponentKind } from './types';
2
+ export type ValidationSeverity = 'error' | 'warning';
3
+ export type ValidationCode = 'value-required' | 'model-required' | 'value-unparseable' | 'value-out-of-range' | 'unit-mismatch' | 'unsupported-component' | 'invalid-jack-role' | 'invalid-jack-interface' | 'invalid-jack-audio-role' | 'descriptor-control-empty' | 'descriptor-mode-label-mismatch' | 'duplicate-device-interface-control-id' | 'invalid-device-interface-token' | 'control-group-context-unresolved' | 'device-interface-group-unresolved' | 'device-interface-context-unresolved' | 'device-interface-binding-unresolved' | 'device-interface-duplicate-role' | 'panel-interface-control-unresolved' | 'panel-binding-unresolved' | 'panel-control-unresolved' | 'panel-kind-mismatch' | 'panel-cell-collision' | 'build-board-unresolved' | 'build-harness-unresolved' | 'bom-ref-unresolved' | 'offboard-endpoint-unresolved' | 'offboard-signal-unresolved' | 'board-source-hash-invalid' | 'board-terminal-unresolved' | 'board-route-feature-invalid' | 'board-net-unrouted' | 'duplicate-id' | 'degenerate-wire';
4
+ export type ValidationIssue = Readonly<{
5
+ code: ValidationCode;
6
+ severity: ValidationSeverity;
7
+ message: string;
8
+ componentId?: string;
9
+ property?: string;
10
+ wireId?: string;
11
+ }>;
12
+ export type QuantityRule = Readonly<{
13
+ kind: 'quantity';
14
+ name: string;
15
+ required: boolean;
16
+ aliases?: readonly string[];
17
+ unit?: string;
18
+ min?: number;
19
+ max?: number;
20
+ }>;
21
+ export type StringRule = Readonly<{
22
+ kind: 'string';
23
+ name: string;
24
+ required: boolean;
25
+ aliases?: readonly string[];
26
+ }>;
27
+ export type PropertyRule = QuantityRule | StringRule;
28
+ export declare function getRulesForKind(kind: ComponentKind): readonly PropertyRule[];
29
+ export declare function validateComponent(component: Component, rules?: readonly PropertyRule[]): readonly ValidationIssue[];
30
+ export declare function validateDocument(doc: CircuitDocument): readonly ValidationIssue[];
31
+ export declare function hasErrors(issues: readonly ValidationIssue[]): boolean;
32
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/model/validation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAKR,eAAe,EACf,SAAS,EACT,aAAa,EAWhB,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,CAAC;AAErD,MAAM,MAAM,cAAc,GACpB,gBAAgB,GAChB,gBAAgB,GAChB,mBAAmB,GACnB,oBAAoB,GACpB,eAAe,GACf,uBAAuB,GACvB,mBAAmB,GACnB,wBAAwB,GACxB,yBAAyB,GACzB,0BAA0B,GAC1B,gCAAgC,GAChC,uCAAuC,GACvC,gCAAgC,GAChC,kCAAkC,GAClC,mCAAmC,GACnC,qCAAqC,GACrC,qCAAqC,GACrC,iCAAiC,GACjC,oCAAoC,GACpC,0BAA0B,GAC1B,0BAA0B,GAC1B,qBAAqB,GACrB,sBAAsB,GACtB,wBAAwB,GACxB,0BAA0B,GAC1B,oBAAoB,GACpB,8BAA8B,GAC9B,4BAA4B,GAC5B,2BAA2B,GAC3B,2BAA2B,GAC3B,6BAA6B,GAC7B,oBAAoB,GACpB,cAAc,GACd,iBAAiB,CAAC;AAExB,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC;IACnC,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC;IAChC,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC;IAC9B,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B,CAAC,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,UAAU,CAAC;AAsGrD,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,YAAY,EAAE,CAE5E;AAED,wBAAgB,iBAAiB,CAC7B,SAAS,EAAE,SAAS,EACpB,KAAK,GAAE,SAAS,YAAY,EAAoC,GACjE,SAAS,eAAe,EAAE,CAoE5B;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,eAAe,GAAG,SAAS,eAAe,EAAE,CA2DjF;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,GAAG,OAAO,CAErE"}