@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
|
@@ -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 @@
|
|
|
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"}
|