@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
@@ -1,51 +1,10 @@
1
- import { getPinNode, resolveConnectivity, type Connectivity } from '../../model/connectivity';
2
- import { isParsedQuantity, isPropertyObject } from '../../model/properties';
3
- import type {
4
- CircuitDocument,
5
- CircuitDocumentDevice,
6
- Component,
7
- ControlApplicabilityPredicate,
8
- ControlContext,
9
- ControlGroup,
10
- DeviceInterface,
11
- DeviceInterfaceBinding,
12
- DeviceInterfaceControl,
13
- ControlInterface,
14
- ControlInterfaceBinding,
15
- ControlOutput,
16
- DocumentSource,
17
- PanelElementBinding,
18
- PanelElementPlacement,
19
- PanelFace,
20
- PanelGridLayout,
21
- PanelGridPosition,
22
- PanelPlacementMetadata,
23
- Point,
24
- PropertyValue,
25
- Terminal,
26
- Warning,
27
- Wire,
28
- } from '../../model/types';
29
-
30
- export type InterchangeSourceFormat = string;
31
-
32
- export type SerializeInterchangeYamlOptions = Readonly<{
33
- filename?: string;
34
- source?: DocumentSource | null;
35
- sourceFormat?: InterchangeSourceFormat | null;
36
- }>;
37
-
38
- type YamlScalar = string | number | boolean | null;
39
- type YamlValue = YamlScalar | readonly YamlValue[] | { readonly [key: string]: YamlValue };
40
- type MutableYamlObject = Record<string, YamlValue>;
41
-
42
- export function serializeInterchangeYaml(
43
- doc: CircuitDocument,
44
- options: SerializeInterchangeYamlOptions = {},
45
- ): string {
1
+ import { getPinNode, resolveConnectivity } from '../../model/connectivity.js';
2
+ import { isParsedQuantity, isPropertyObject } from '../../model/properties.js';
3
+ export function serializeInterchangeYaml(doc, options = {}) {
46
4
  const connectivity = resolveConnectivity(doc);
47
- const root: MutableYamlObject = {
48
- schema: 'circuit-interchange/v2',
5
+ const schema = hasV3OnlyFields(doc) ? 'circuit-interchange/v3' : 'circuit-interchange/v2';
6
+ const root = {
7
+ schema,
49
8
  metadata: {
50
9
  name: doc.metadata.name,
51
10
  description: doc.metadata.description,
@@ -62,6 +21,21 @@ export function serializeInterchangeYaml(
62
21
  if (doc.controlContexts !== undefined) {
63
22
  root.controlContexts = doc.controlContexts.map(controlContextBlock);
64
23
  }
24
+ if (doc.mechanical !== undefined) {
25
+ root.mechanical = buildDataObjectBlock(doc.mechanical);
26
+ }
27
+ if (doc.build !== undefined) {
28
+ root.build = buildDataObjectBlock(doc.build);
29
+ }
30
+ if (doc.bom !== undefined) {
31
+ root.bom = buildDataObjectBlock(doc.bom);
32
+ }
33
+ if (doc.partProfiles !== undefined) {
34
+ root.partProfiles = buildDataObjectBlock(doc.partProfiles);
35
+ }
36
+ if (doc.footprints !== undefined) {
37
+ root.footprints = buildDataObjectBlock(doc.footprints);
38
+ }
65
39
  if (doc.deviceInterface !== undefined) {
66
40
  root.deviceInterface = deviceInterfaceBlock(doc.deviceInterface);
67
41
  }
@@ -74,6 +48,9 @@ export function serializeInterchangeYaml(
74
48
  if (doc.controlOutputs !== undefined) {
75
49
  root.controlOutputs = doc.controlOutputs.map(controlOutputBlock);
76
50
  }
51
+ if (doc.offBoardWiring !== undefined) {
52
+ root.offBoardWiring = buildDataObjectBlock(doc.offBoardWiring);
53
+ }
77
54
  Object.assign(root, {
78
55
  components: doc.components.map((component) => componentBlock(component, connectivity)),
79
56
  nodes: nodeBlocks(connectivity),
@@ -82,12 +59,30 @@ export function serializeInterchangeYaml(
82
59
  diagnostics: doc.warnings.map(warningBlock),
83
60
  rawAttributes: doc.rawAttributes,
84
61
  });
85
-
62
+ if (doc.boards !== undefined) {
63
+ root.boards = doc.boards.map(buildDataObjectBlock);
64
+ }
86
65
  return `${emitYaml(root, 0)}\n`;
87
66
  }
88
-
89
- function deviceBlock(device: CircuitDocumentDevice): MutableYamlObject {
90
- const out: MutableYamlObject = {
67
+ function hasV3OnlyFields(doc) {
68
+ return doc.mechanical !== undefined
69
+ || doc.build !== undefined
70
+ || doc.bom !== undefined
71
+ || doc.partProfiles !== undefined
72
+ || doc.footprints !== undefined
73
+ || doc.offBoardWiring !== undefined
74
+ || doc.boards !== undefined
75
+ || hasV3PanelFields(doc.panel);
76
+ }
77
+ function hasV3PanelFields(panel) {
78
+ return panel?.faces.some((face) => face.geometry !== undefined
79
+ || face.elements.some((element) => element.id !== undefined
80
+ || element.physical !== undefined
81
+ || element.kind === 'selector'
82
+ || element.kind === 'footswitch')) ?? false;
83
+ }
84
+ function deviceBlock(device) {
85
+ const out = {
91
86
  kind: device.kind,
92
87
  };
93
88
  if (device.id !== undefined) {
@@ -107,9 +102,8 @@ function deviceBlock(device: CircuitDocumentDevice): MutableYamlObject {
107
102
  }
108
103
  return out;
109
104
  }
110
-
111
- function controlGroupBlock(group: ControlGroup): MutableYamlObject {
112
- const out: MutableYamlObject = {
105
+ function controlGroupBlock(group) {
106
+ const out = {
113
107
  id: group.id,
114
108
  name: group.name,
115
109
  role: group.role,
@@ -122,9 +116,8 @@ function controlGroupBlock(group: ControlGroup): MutableYamlObject {
122
116
  }
123
117
  return out;
124
118
  }
125
-
126
- function controlContextBlock(context: ControlContext): MutableYamlObject {
127
- const out: MutableYamlObject = {
119
+ function controlContextBlock(context) {
120
+ const out = {
128
121
  id: context.id,
129
122
  name: context.name,
130
123
  role: context.role,
@@ -134,15 +127,13 @@ function controlContextBlock(context: ControlContext): MutableYamlObject {
134
127
  }
135
128
  return out;
136
129
  }
137
-
138
- function deviceInterfaceBlock(deviceInterface: DeviceInterface): MutableYamlObject {
130
+ function deviceInterfaceBlock(deviceInterface) {
139
131
  return {
140
132
  controls: deviceInterface.controls.map(deviceInterfaceControlBlock),
141
133
  };
142
134
  }
143
-
144
- function deviceInterfaceControlBlock(control: DeviceInterfaceControl): MutableYamlObject {
145
- const out: MutableYamlObject = {
135
+ function deviceInterfaceControlBlock(control) {
136
+ const out = {
146
137
  id: control.id,
147
138
  label: control.label,
148
139
  kind: control.kind,
@@ -165,9 +156,8 @@ function deviceInterfaceControlBlock(control: DeviceInterfaceControl): MutableYa
165
156
  }
166
157
  return out;
167
158
  }
168
-
169
- function deviceInterfaceBindingBlock(binding: DeviceInterfaceBinding): MutableYamlObject {
170
- const out: MutableYamlObject = {
159
+ function deviceInterfaceBindingBlock(binding) {
160
+ const out = {
171
161
  componentId: binding.componentId,
172
162
  };
173
163
  if (binding.controlId !== undefined) {
@@ -184,9 +174,8 @@ function deviceInterfaceBindingBlock(binding: DeviceInterfaceBinding): MutableYa
184
174
  }
185
175
  return out;
186
176
  }
187
-
188
- function controlApplicabilityPredicateBlock(predicate: ControlApplicabilityPredicate): MutableYamlObject {
189
- const out: MutableYamlObject = {};
177
+ function controlApplicabilityPredicateBlock(predicate) {
178
+ const out = {};
190
179
  if (predicate.allOf !== undefined) {
191
180
  out.allOf = predicate.allOf;
192
181
  }
@@ -195,9 +184,8 @@ function controlApplicabilityPredicateBlock(predicate: ControlApplicabilityPredi
195
184
  }
196
185
  return out;
197
186
  }
198
-
199
- function controlInterfaceBlock(controlInterface: ControlInterface): MutableYamlObject {
200
- const out: MutableYamlObject = {
187
+ function controlInterfaceBlock(controlInterface) {
188
+ const out = {
201
189
  id: controlInterface.id,
202
190
  name: controlInterface.name,
203
191
  role: controlInterface.role,
@@ -228,9 +216,8 @@ function controlInterfaceBlock(controlInterface: ControlInterface): MutableYamlO
228
216
  }
229
217
  return out;
230
218
  }
231
-
232
- function controlOutputBlock(controlOutput: ControlOutput): MutableYamlObject {
233
- const out: MutableYamlObject = {
219
+ function controlOutputBlock(controlOutput) {
220
+ const out = {
234
221
  id: controlOutput.id,
235
222
  name: controlOutput.name,
236
223
  role: controlOutput.role,
@@ -258,9 +245,8 @@ function controlOutputBlock(controlOutput: ControlOutput): MutableYamlObject {
258
245
  }
259
246
  return out;
260
247
  }
261
-
262
- function controlInterfaceBindingBlock(binding: ControlInterfaceBinding): MutableYamlObject {
263
- const out: MutableYamlObject = {};
248
+ function controlInterfaceBindingBlock(binding) {
249
+ const out = {};
264
250
  if (binding.sourceComponentId !== undefined) {
265
251
  out.sourceComponentId = binding.sourceComponentId;
266
252
  }
@@ -275,12 +261,8 @@ function controlInterfaceBindingBlock(binding: ControlInterfaceBinding): Mutable
275
261
  }
276
262
  return out;
277
263
  }
278
-
279
- function sourceBlock(
280
- documentSource: DocumentSource | undefined,
281
- options: SerializeInterchangeYamlOptions,
282
- ): MutableYamlObject {
283
- const source: MutableYamlObject = {};
264
+ function sourceBlock(documentSource, options) {
265
+ const source = {};
284
266
  for (const [key, value] of Object.entries(documentSource ?? {})) {
285
267
  source[key] = value;
286
268
  }
@@ -298,27 +280,27 @@ function sourceBlock(
298
280
  }
299
281
  return source;
300
282
  }
301
-
302
- function panelBlock(panel: PanelPlacementMetadata): MutableYamlObject {
283
+ function panelBlock(panel) {
303
284
  return {
304
285
  faces: panel.faces.map(panelFaceBlock),
305
286
  };
306
287
  }
307
-
308
- function panelFaceBlock(face: PanelFace): MutableYamlObject {
309
- const out: MutableYamlObject = {
288
+ function panelFaceBlock(face) {
289
+ const out = {
310
290
  id: face.id,
311
291
  };
312
292
  if (face.label !== undefined) {
313
293
  out.label = face.label;
314
294
  }
315
295
  out.layout = panelLayoutBlock(face.layout);
296
+ if (face.geometry !== undefined) {
297
+ out.geometry = panelFaceGeometryBlock(face.geometry);
298
+ }
316
299
  out.elements = face.elements.map(panelElementBlock);
317
300
  return out;
318
301
  }
319
-
320
- function panelLayoutBlock(layout: PanelGridLayout): MutableYamlObject {
321
- const out: MutableYamlObject = {
302
+ function panelLayoutBlock(layout) {
303
+ const out = {
322
304
  kind: layout.kind,
323
305
  rows: layout.rows,
324
306
  columns: layout.columns,
@@ -332,24 +314,34 @@ function panelLayoutBlock(layout: PanelGridLayout): MutableYamlObject {
332
314
  }
333
315
  return out;
334
316
  }
335
-
336
- function panelElementBlock(element: PanelElementPlacement): MutableYamlObject {
337
- const out: MutableYamlObject = {
317
+ function panelElementBlock(element) {
318
+ const out = {
338
319
  bind: panelElementBindingBlock(element.bind),
339
320
  kind: element.kind,
340
321
  grid: panelGridPositionBlock(element.grid),
341
322
  };
323
+ if (element.id !== undefined) {
324
+ out.id = element.id;
325
+ }
342
326
  if (element.label !== undefined) {
343
327
  out.label = element.label;
344
328
  }
345
329
  if (element.interfaceControlId !== undefined) {
346
330
  out.interfaceControlId = element.interfaceControlId;
347
331
  }
332
+ if (element.physical !== undefined) {
333
+ out.physical = panelElementPhysicalBlock(element.physical);
334
+ }
348
335
  return out;
349
336
  }
350
-
351
- function panelElementBindingBlock(binding: PanelElementBinding): MutableYamlObject {
352
- const out: MutableYamlObject = {
337
+ function panelFaceGeometryBlock(geometry) {
338
+ return buildDataObjectBlock(geometry);
339
+ }
340
+ function panelElementPhysicalBlock(physical) {
341
+ return buildDataObjectBlock(physical);
342
+ }
343
+ function panelElementBindingBlock(binding) {
344
+ const out = {
353
345
  componentId: binding.componentId,
354
346
  };
355
347
  if (binding.controlId !== undefined) {
@@ -363,9 +355,8 @@ function panelElementBindingBlock(binding: PanelElementBinding): MutableYamlObje
363
355
  }
364
356
  return out;
365
357
  }
366
-
367
- function panelGridPositionBlock(grid: PanelGridPosition): MutableYamlObject {
368
- const out: MutableYamlObject = {
358
+ function panelGridPositionBlock(grid) {
359
+ const out = {
369
360
  row: grid.row,
370
361
  column: grid.column,
371
362
  };
@@ -377,8 +368,7 @@ function panelGridPositionBlock(grid: PanelGridPosition): MutableYamlObject {
377
368
  }
378
369
  return out;
379
370
  }
380
-
381
- function componentBlock(component: Component, connectivity: Connectivity): MutableYamlObject {
371
+ function componentBlock(component, connectivity) {
382
372
  return {
383
373
  id: component.id,
384
374
  kind: component.kind,
@@ -391,12 +381,7 @@ function componentBlock(component: Component, connectivity: Connectivity): Mutab
391
381
  properties: propertiesBlock(component.properties),
392
382
  };
393
383
  }
394
-
395
- function terminalBlock(
396
- component: Component,
397
- terminal: Terminal,
398
- connectivity: Connectivity,
399
- ): MutableYamlObject {
384
+ function terminalBlock(component, terminal, connectivity) {
400
385
  return {
401
386
  name: terminal.name,
402
387
  node: getPinNode(connectivity, {
@@ -406,16 +391,14 @@ function terminalBlock(
406
391
  position: pointBlock(terminal.position),
407
392
  };
408
393
  }
409
-
410
- function propertiesBlock(properties: Readonly<Record<string, PropertyValue>>): MutableYamlObject {
411
- const out: MutableYamlObject = {};
394
+ function propertiesBlock(properties) {
395
+ const out = {};
412
396
  for (const [key, value] of Object.entries(properties)) {
413
397
  out[key] = propertyValueBlock(value);
414
398
  }
415
399
  return out;
416
400
  }
417
-
418
- function propertyValueBlock(value: PropertyValue): YamlValue {
401
+ function propertyValueBlock(value) {
419
402
  if (value === null || typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
420
403
  return value;
421
404
  }
@@ -434,29 +417,26 @@ function propertyValueBlock(value: PropertyValue): YamlValue {
434
417
  unit: value.unit,
435
418
  };
436
419
  }
437
-
438
- function nodeBlocks(connectivity: Connectivity): readonly MutableYamlObject[] {
420
+ function nodeBlocks(connectivity) {
439
421
  return Array.from(connectivity.nodeMembers.entries())
440
422
  .sort(([a], [b]) => a - b)
441
423
  .map(([id, members]) => ({
442
- id,
443
- role: id === connectivity.groundNodeId ? 'ground' : 'signal',
444
- members: members.map((member) => ({
445
- componentId: member.componentId,
446
- terminalName: member.terminalName,
447
- })),
448
- }));
449
- }
450
-
451
- function wireBlock(wire: Wire): MutableYamlObject {
424
+ id,
425
+ role: id === connectivity.groundNodeId ? 'ground' : 'signal',
426
+ members: members.map((member) => ({
427
+ componentId: member.componentId,
428
+ terminalName: member.terminalName,
429
+ })),
430
+ }));
431
+ }
432
+ function wireBlock(wire) {
452
433
  return {
453
434
  id: wire.id,
454
435
  points: wire.endpoints.map(pointBlock),
455
436
  };
456
437
  }
457
-
458
- function warningBlock(warning: Warning): MutableYamlObject {
459
- const out: MutableYamlObject = {
438
+ function warningBlock(warning) {
439
+ const out = {
460
440
  code: warning.code,
461
441
  message: warning.message,
462
442
  };
@@ -468,15 +448,31 @@ function warningBlock(warning: Warning): MutableYamlObject {
468
448
  }
469
449
  return out;
470
450
  }
471
-
472
- function pointBlock(point: Point): MutableYamlObject {
451
+ function pointBlock(point) {
473
452
  return {
474
453
  x: point.x,
475
454
  y: point.y,
476
455
  };
477
456
  }
478
-
479
- function emitYaml(value: YamlValue, indent: number): string {
457
+ function buildDataObjectBlock(value) {
458
+ const out = {};
459
+ for (const [key, child] of Object.entries(value)) {
460
+ if (child !== undefined) {
461
+ out[key] = buildDataValueBlock(child);
462
+ }
463
+ }
464
+ return out;
465
+ }
466
+ function buildDataValueBlock(value) {
467
+ if (isBuildDataScalar(value)) {
468
+ return value;
469
+ }
470
+ if (isBuildDataArray(value)) {
471
+ return value.map(buildDataValueBlock);
472
+ }
473
+ return buildDataObjectBlock(value);
474
+ }
475
+ function emitYaml(value, indent) {
480
476
  if (isScalar(value)) {
481
477
  return `${spaces(indent)}${formatScalar(value)}`;
482
478
  }
@@ -485,14 +481,12 @@ function emitYaml(value: YamlValue, indent: number): string {
485
481
  }
486
482
  return emitObject(value, indent);
487
483
  }
488
-
489
- function emitObject(value: { readonly [key: string]: YamlValue }, indent: number): string {
484
+ function emitObject(value, indent) {
490
485
  const entries = Object.entries(value);
491
486
  if (entries.length === 0) {
492
487
  return `${spaces(indent)}{}`;
493
488
  }
494
-
495
- const lines: string[] = [];
489
+ const lines = [];
496
490
  for (const [key, child] of entries) {
497
491
  if (isScalar(child)) {
498
492
  lines.push(`${spaces(indent)}${formatKey(key)}: ${formatScalar(child)}`);
@@ -501,7 +495,8 @@ function emitObject(value: { readonly [key: string]: YamlValue }, indent: number
501
495
  if (isYamlArray(child)) {
502
496
  if (child.length === 0) {
503
497
  lines.push(`${spaces(indent)}${formatKey(key)}: []`);
504
- } else {
498
+ }
499
+ else {
505
500
  lines.push(`${spaces(indent)}${formatKey(key)}:`);
506
501
  lines.push(emitArray(child, indent + 2));
507
502
  }
@@ -510,20 +505,19 @@ function emitObject(value: { readonly [key: string]: YamlValue }, indent: number
510
505
  const nestedEntries = Object.entries(child);
511
506
  if (nestedEntries.length === 0) {
512
507
  lines.push(`${spaces(indent)}${formatKey(key)}: {}`);
513
- } else {
508
+ }
509
+ else {
514
510
  lines.push(`${spaces(indent)}${formatKey(key)}:`);
515
511
  lines.push(emitObject(child, indent + 2));
516
512
  }
517
513
  }
518
514
  return lines.join('\n');
519
515
  }
520
-
521
- function emitArray(value: readonly YamlValue[], indent: number): string {
516
+ function emitArray(value, indent) {
522
517
  if (value.length === 0) {
523
518
  return `${spaces(indent)}[]`;
524
519
  }
525
-
526
- const lines: string[] = [];
520
+ const lines = [];
527
521
  for (const item of value) {
528
522
  if (isScalar(item)) {
529
523
  lines.push(`${spaces(indent)}- ${formatScalar(item)}`);
@@ -547,20 +541,22 @@ function emitArray(value: readonly YamlValue[], indent: number): string {
547
541
  }
548
542
  return lines.join('\n');
549
543
  }
550
-
551
- function isScalar(value: YamlValue): value is YamlScalar {
544
+ function isScalar(value) {
545
+ return value === null || typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';
546
+ }
547
+ function isYamlArray(value) {
548
+ return Array.isArray(value);
549
+ }
550
+ function isBuildDataScalar(value) {
552
551
  return value === null || typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';
553
552
  }
554
-
555
- function isYamlArray(value: YamlValue): value is readonly YamlValue[] {
553
+ function isBuildDataArray(value) {
556
554
  return Array.isArray(value);
557
555
  }
558
-
559
- function formatKey(key: string): string {
556
+ function formatKey(key) {
560
557
  return isPlainScalar(key) ? key : JSON.stringify(key);
561
558
  }
562
-
563
- function formatScalar(value: YamlScalar): string {
559
+ function formatScalar(value) {
564
560
  if (value === null) {
565
561
  return 'null';
566
562
  }
@@ -572,23 +568,20 @@ function formatScalar(value: YamlScalar): string {
572
568
  }
573
569
  return JSON.stringify(value);
574
570
  }
575
-
576
- function isPlainScalar(value: string): boolean {
571
+ function isPlainScalar(value) {
577
572
  return /^[A-Za-z_][A-Za-z0-9_./\-]*$/.test(value);
578
573
  }
579
-
580
- function isReservedScalar(value: string): boolean {
574
+ function isReservedScalar(value) {
581
575
  const lower = value.toLowerCase();
582
576
  return lower === 'null' || lower === 'true' || lower === 'false';
583
577
  }
584
-
585
- function looksLikeNumber(value: string): boolean {
578
+ function looksLikeNumber(value) {
586
579
  // Quote values that look like bare numbers (would be parsed as numbers by YAML)
587
580
  // This includes scientific notation like "1e-12", "1.0e-7"
588
581
  // But NOT version strings like "v1" or "1.0" that are meant to be strings
589
582
  return /^-?(?:\d+\.\d*|\d*\.\d+|\d+)(?:[eE][+-]?\d+)?$/.test(value);
590
583
  }
591
-
592
- function spaces(count: number): string {
584
+ function spaces(count) {
593
585
  return ' '.repeat(count);
594
586
  }
587
+ //# sourceMappingURL=serializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializer.js","sourceRoot":"","sources":["../../../src/formats/interchange/serializer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { ComponentKind, Point } from '../../model/types';
2
+ export declare const LTSPICE_COORD_SCALE = 0.5;
3
+ export type LtspiceTerminalDef = Readonly<{
4
+ name: string;
5
+ local: Point;
6
+ }>;
7
+ export type LtspiceSymbolDef = Readonly<{
8
+ symbolName: string;
9
+ kind: ComponentKind;
10
+ terminals: readonly LtspiceTerminalDef[];
11
+ valueProperty: string | null;
12
+ modelFromValue: boolean;
13
+ modelFromSymbolPath?: boolean;
14
+ }>;
15
+ export declare function normalizeLtspiceSymbolName(symbolName: string): string;
16
+ export declare function extractModelFromSymbolPath(symbolName: string): string;
17
+ export declare function lookupLtspiceSymbolDef(symbolName: string): LtspiceSymbolDef | undefined;
18
+ export declare function mapLtspiceTerminal(local: Point, placement: Point, orientation: string): Point;
19
+ //# sourceMappingURL=catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/formats/ltspice/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAU9D,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC,CAAC;AAE1E,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACzC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,OAAO,CAAC;IAKxB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC,CAAC;AAsFH,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAIrE;AAID,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAIrE;AAOD,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CASvF;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,GAAG,KAAK,CAyB7F"}