@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.
- package/README.md +10 -0
- package/dist/editor/commands.d.ts +48 -0
- package/dist/editor/commands.d.ts.map +1 -0
- package/{src/editor/commands.ts → dist/editor/commands.js} +44 -91
- package/dist/editor/commands.js.map +1 -0
- package/dist/editor/factory.d.ts +10 -0
- package/dist/editor/factory.d.ts.map +1 -0
- package/{src/editor/factory.ts → dist/editor/factory.js} +11 -27
- package/dist/editor/factory.js.map +1 -0
- package/dist/editor/history.d.ts +29 -0
- package/dist/editor/history.d.ts.map +1 -0
- package/{src/editor/history.ts → dist/editor/history.js} +12 -42
- package/dist/editor/history.js.map +1 -0
- package/{src/editor/index.ts → dist/editor/index.d.ts} +1 -3
- package/dist/editor/index.d.ts.map +1 -0
- package/dist/editor/index.js +5 -0
- package/dist/editor/index.js.map +1 -0
- package/dist/editor/layout.d.ts +8 -0
- package/dist/editor/layout.d.ts.map +1 -0
- package/{src/editor/layout.ts → dist/editor/layout.js} +36 -90
- package/dist/editor/layout.js.map +1 -0
- package/dist/formats/circuit-json/serializer.d.ts +86 -0
- package/dist/formats/circuit-json/serializer.d.ts.map +1 -0
- package/{src/formats/circuit-json/serializer.ts → dist/formats/circuit-json/serializer.js} +114 -414
- package/dist/formats/circuit-json/serializer.js.map +1 -0
- package/dist/formats/document.d.ts +64 -0
- package/dist/formats/document.d.ts.map +1 -0
- package/dist/formats/document.js +300 -0
- package/dist/formats/document.js.map +1 -0
- package/dist/formats/interchange/parser.d.ts +3 -0
- package/dist/formats/interchange/parser.d.ts.map +1 -0
- package/{src/formats/interchange/parser.ts → dist/formats/interchange/parser.js} +651 -299
- package/dist/formats/interchange/parser.js.map +1 -0
- package/dist/formats/interchange/serializer.d.ts +9 -0
- package/dist/formats/interchange/serializer.d.ts.map +1 -0
- package/{src/formats/interchange/serializer.ts → dist/formats/interchange/serializer.js} +151 -158
- package/dist/formats/interchange/serializer.js.map +1 -0
- package/dist/formats/ltspice/catalog.d.ts +19 -0
- package/dist/formats/ltspice/catalog.d.ts.map +1 -0
- package/{src/formats/ltspice/catalog.ts → dist/formats/ltspice/catalog.js} +18 -52
- package/dist/formats/ltspice/catalog.js.map +1 -0
- package/dist/formats/ltspice/encoding.d.ts +2 -0
- package/dist/formats/ltspice/encoding.d.ts.map +1 -0
- package/{src/formats/ltspice/encoding.ts → dist/formats/ltspice/encoding.js} +17 -41
- package/dist/formats/ltspice/encoding.js.map +1 -0
- package/dist/formats/ltspice/parser.d.ts +3 -0
- package/dist/formats/ltspice/parser.d.ts.map +1 -0
- package/{src/formats/ltspice/parser.ts → dist/formats/ltspice/parser.js} +39 -141
- package/dist/formats/ltspice/parser.js.map +1 -0
- package/dist/formats/ltspice/serializer.d.ts +7 -0
- package/dist/formats/ltspice/serializer.d.ts.map +1 -0
- package/{src/formats/ltspice/serializer.ts → dist/formats/ltspice/serializer.js} +18 -45
- package/dist/formats/ltspice/serializer.js.map +1 -0
- package/dist/formats/schx/catalog.d.ts +19 -0
- package/dist/formats/schx/catalog.d.ts.map +1 -0
- package/{src/formats/schx/catalog.ts → dist/formats/schx/catalog.js} +48 -101
- package/dist/formats/schx/catalog.js.map +1 -0
- package/dist/formats/schx/parser.d.ts +3 -0
- package/dist/formats/schx/parser.d.ts.map +1 -0
- package/{src/formats/schx/parser.ts → dist/formats/schx/parser.js} +31 -86
- package/dist/formats/schx/parser.js.map +1 -0
- package/dist/formats/schx/runtime-descriptors.d.ts +3 -0
- package/dist/formats/schx/runtime-descriptors.d.ts.map +1 -0
- package/{src/formats/schx/runtime-descriptors.ts → dist/formats/schx/runtime-descriptors.js} +36 -123
- package/dist/formats/schx/runtime-descriptors.js.map +1 -0
- package/dist/formats/schx/serializer.d.ts +5 -0
- package/dist/formats/schx/serializer.d.ts.map +1 -0
- package/{src/formats/schx/serializer.ts → dist/formats/schx/serializer.js} +17 -42
- package/dist/formats/schx/serializer.js.map +1 -0
- package/dist/formats/schx/transforms.d.ts +4 -0
- package/dist/formats/schx/transforms.d.ts.map +1 -0
- package/{src/formats/schx/transforms.ts → dist/formats/schx/transforms.js} +6 -10
- package/dist/formats/schx/transforms.js.map +1 -0
- package/dist/formats/spice/parser.d.ts +3 -0
- package/dist/formats/spice/parser.d.ts.map +1 -0
- package/{src/formats/spice/parser.ts → dist/formats/spice/parser.js} +50 -96
- package/dist/formats/spice/parser.js.map +1 -0
- package/dist/formats/spice/serializer.d.ts +3 -0
- package/dist/formats/spice/serializer.d.ts.map +1 -0
- package/{src/formats/spice/serializer.ts → dist/formats/spice/serializer.js} +8 -13
- package/dist/formats/spice/serializer.js.map +1 -0
- package/dist/index.d.ts +47 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -0
- package/dist/model/connectivity.d.ts +16 -0
- package/dist/model/connectivity.d.ts.map +1 -0
- package/{src/model/connectivity.ts → dist/model/connectivity.js} +28 -63
- package/dist/model/connectivity.js.map +1 -0
- package/dist/model/netlist.d.ts +24 -0
- package/dist/model/netlist.d.ts.map +1 -0
- package/{src/model/netlist.ts → dist/model/netlist.js} +42 -110
- package/dist/model/netlist.js.map +1 -0
- package/dist/model/properties.d.ts +9 -0
- package/dist/model/properties.d.ts.map +1 -0
- package/{src/model/properties.ts → dist/model/properties.js} +10 -18
- package/dist/model/properties.js.map +1 -0
- package/dist/model/quantity.d.ts +3 -0
- package/dist/model/quantity.d.ts.map +1 -0
- package/{src/model/quantity.ts → dist/model/quantity.js} +7 -30
- package/dist/model/quantity.js.map +1 -0
- package/dist/model/types.d.ts +431 -0
- package/dist/model/types.d.ts.map +1 -0
- package/dist/model/types.js +10 -0
- package/dist/model/types.js.map +1 -0
- package/dist/model/validation.d.ts +32 -0
- package/dist/model/validation.d.ts.map +1 -0
- package/{src/model/validation.ts → dist/model/validation.js} +420 -323
- package/dist/model/validation.js.map +1 -0
- package/dist/model/wires.d.ts +3 -0
- package/dist/model/wires.d.ts.map +1 -0
- package/{src/model/wires.ts → dist/model/wires.js} +10 -16
- package/dist/model/wires.js.map +1 -0
- package/dist/panel/extract.d.ts +5 -0
- package/dist/panel/extract.d.ts.map +1 -0
- package/{src/panel/extract.ts → dist/panel/extract.js} +146 -235
- package/dist/panel/extract.js.map +1 -0
- package/dist/panel/index.d.ts +6 -0
- package/dist/panel/index.d.ts.map +1 -0
- package/dist/panel/index.js +5 -0
- package/dist/panel/index.js.map +1 -0
- package/dist/panel/knobs.d.ts +7 -0
- package/dist/panel/knobs.d.ts.map +1 -0
- package/{src/panel/knobs.ts → dist/panel/knobs.js} +7 -18
- package/dist/panel/knobs.js.map +1 -0
- package/dist/panel/protocol.d.ts +9 -0
- package/dist/panel/protocol.d.ts.map +1 -0
- package/{src/panel/protocol.ts → dist/panel/protocol.js} +10 -26
- package/dist/panel/protocol.js.map +1 -0
- package/{src/panel/types.ts → dist/panel/types.d.ts} +50 -89
- package/dist/panel/types.d.ts.map +1 -0
- package/dist/panel/types.js +2 -0
- package/dist/panel/types.js.map +1 -0
- package/dist/preview/bounds.d.ts +12 -0
- package/dist/preview/bounds.d.ts.map +1 -0
- package/{src/preview/bounds.ts → dist/preview/bounds.js} +15 -29
- package/dist/preview/bounds.js.map +1 -0
- package/dist/preview/box-layout.d.ts +4 -0
- package/dist/preview/box-layout.d.ts.map +1 -0
- package/{src/preview/box-layout.ts → dist/preview/box-layout.js} +2 -6
- package/dist/preview/box-layout.js.map +1 -0
- package/dist/preview/colors.d.ts +3 -0
- package/dist/preview/colors.d.ts.map +1 -0
- package/{src/preview/colors.ts → dist/preview/colors.js} +3 -5
- package/dist/preview/colors.js.map +1 -0
- package/dist/preview/hanging.d.ts +8 -0
- package/dist/preview/hanging.d.ts.map +1 -0
- package/{src/preview/hanging.ts → dist/preview/hanging.js} +9 -28
- package/dist/preview/hanging.js.map +1 -0
- package/dist/preview/junctions.d.ts +3 -0
- package/dist/preview/junctions.d.ts.map +1 -0
- package/{src/preview/junctions.ts → dist/preview/junctions.js} +9 -24
- package/dist/preview/junctions.js.map +1 -0
- package/dist/preview/label-layout.d.ts +12 -0
- package/dist/preview/label-layout.d.ts.map +1 -0
- package/{src/preview/label-layout.ts → dist/preview/label-layout.js} +15 -36
- package/dist/preview/label-layout.js.map +1 -0
- package/dist/preview/ports.d.ts +17 -0
- package/dist/preview/ports.d.ts.map +1 -0
- package/{src/preview/ports.ts → dist/preview/ports.js} +10 -37
- package/dist/preview/ports.js.map +1 -0
- package/dist/preview/renderable-wires.d.ts +3 -0
- package/dist/preview/renderable-wires.d.ts.map +1 -0
- package/{src/preview/renderable-wires.ts → dist/preview/renderable-wires.js} +12 -29
- package/dist/preview/renderable-wires.js.map +1 -0
- package/dist/preview/routing.d.ts +4 -0
- package/dist/preview/routing.d.ts.map +1 -0
- package/dist/preview/routing.js +13 -0
- package/dist/preview/routing.js.map +1 -0
- package/dist/preview/snap.d.ts +9 -0
- package/dist/preview/snap.d.ts.map +1 -0
- package/{src/preview/snap.ts → dist/preview/snap.js} +9 -31
- package/dist/preview/snap.js.map +1 -0
- package/dist/preview/symbols/svg-content.d.ts +7 -0
- package/dist/preview/symbols/svg-content.d.ts.map +1 -0
- package/{src/preview/symbols/svg-content.ts → dist/preview/symbols/svg-content.js} +3 -6
- package/dist/preview/symbols/svg-content.js.map +1 -0
- package/dist/preview/symbols.d.ts +7 -0
- package/dist/preview/symbols.d.ts.map +1 -0
- package/{src/preview/symbols.ts → dist/preview/symbols.js} +18 -43
- package/dist/preview/symbols.js.map +1 -0
- package/dist/preview/wire-chains.d.ts +4 -0
- package/dist/preview/wire-chains.d.ts.map +1 -0
- package/{src/preview/wire-chains.ts → dist/preview/wire-chains.js} +37 -37
- package/dist/preview/wire-chains.js.map +1 -0
- package/package.json +3 -3
- package/src/formats/document.ts +0 -274
- package/src/index.ts +0 -205
- package/src/model/types.ts +0 -309
- package/src/panel/index.ts +0 -39
- package/src/preview/routing.ts +0 -15
- package/src/preview/symbols/analog-switch.svg +0 -17
- package/src/preview/symbols/battery.svg +0 -16
- package/src/preview/symbols/bbd.svg +0 -21
- package/src/preview/symbols/bjt-npn.svg +0 -16
- package/src/preview/symbols/bjt-pnp.svg +0 -17
- package/src/preview/symbols/capacitor-electrolytic.svg +0 -13
- package/src/preview/symbols/capacitor.svg +0 -12
- package/src/preview/symbols/current-source.svg +0 -14
- package/src/preview/symbols/delay-ic.svg +0 -22
- package/src/preview/symbols/diode-schottky.svg +0 -12
- package/src/preview/symbols/diode-zener.svg +0 -12
- package/src/preview/symbols/diode.svg +0 -13
- package/src/preview/symbols/flipflop.svg +0 -20
- package/src/preview/symbols/ground.svg +0 -12
- package/src/preview/symbols/ic-block.svg +0 -20
- package/src/preview/symbols/ic.svg +0 -19
- package/src/preview/symbols/inductor.svg +0 -11
- package/src/preview/symbols/jack-input.svg +0 -16
- package/src/preview/symbols/jack-output.svg +0 -16
- package/src/preview/symbols/jfet-junction-n.svg +0 -17
- package/src/preview/symbols/jfet-n.svg +0 -17
- package/src/preview/symbols/jfet-p.svg +0 -17
- package/src/preview/symbols/label.svg +0 -8
- package/src/preview/symbols/led.svg +0 -18
- package/src/preview/symbols/mosfet-n.svg +0 -21
- package/src/preview/symbols/mosfet-p.svg +0 -21
- package/src/preview/symbols/named-wire.svg +0 -11
- package/src/preview/symbols/opamp.svg +0 -21
- package/src/preview/symbols/optocoupler.svg +0 -30
- package/src/preview/symbols/ota.svg +0 -20
- package/src/preview/symbols/pentode.svg +0 -25
- package/src/preview/symbols/photoresistor.svg +0 -19
- package/src/preview/symbols/port.svg +0 -8
- package/src/preview/symbols/potentiometer.svg +0 -15
- package/src/preview/symbols/power-amp.svg +0 -20
- package/src/preview/symbols/rail.svg +0 -11
- package/src/preview/symbols/regulator.svg +0 -13
- package/src/preview/symbols/relay.svg +0 -20
- package/src/preview/symbols/resistor.svg +0 -11
- package/src/preview/symbols/switch-3pdt.svg +0 -32
- package/src/preview/symbols/switch-rotary.svg +0 -23
- package/src/preview/symbols/switch-spdt.svg +0 -16
- package/src/preview/symbols/switch-spst.svg +0 -14
- package/src/preview/symbols/switch-toggle.svg +0 -14
- package/src/preview/symbols/transformer.svg +0 -17
- package/src/preview/symbols/triode.svg +0 -17
- package/src/preview/symbols/tube-diode.svg +0 -13
- package/src/preview/symbols/unsupported.svg +0 -8
- package/src/preview/symbols/variable-resistor.svg +0 -13
- package/src/preview/symbols/voltage-source.svg +0 -15
|
@@ -1,51 +1,10 @@
|
|
|
1
|
-
import { getPinNode, resolveConnectivity
|
|
2
|
-
import { isParsedQuantity, isPropertyObject } from '../../model/properties';
|
|
3
|
-
|
|
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
|
|
48
|
-
|
|
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
|
-
|
|
90
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
352
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
}
|
|
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
|
-
}
|
|
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
|
-
|
|
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"}
|