@ikalogic/at1000 0.1.5 → 0.1.6
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/build/{at1000-Dm22ae18.mjs → at1000-C4IWLsB5.mjs} +2 -2
- package/build/{at1000-Dm22ae18.mjs.map → at1000-C4IWLsB5.mjs.map} +1 -1
- package/build/at1000-DHgno6tN.cjs +2 -0
- package/build/{at1000-CYNSd3Yp.cjs.map → at1000-DHgno6tN.cjs.map} +1 -1
- package/build/{at1000-BP0pglbW.d.mts → at1000-DMGESusk.d.mts} +7 -7
- package/build/{at1000-PJk1gPSR.d.cts.map → at1000-DMGESusk.d.mts.map} +1 -1
- package/build/{at1000-PJk1gPSR.d.cts → at1000-TLdyugD_.d.cts} +7 -7
- package/build/{at1000-BP0pglbW.d.mts.map → at1000-TLdyugD_.d.cts.map} +1 -1
- package/build/browser.cjs +1 -1
- package/build/browser.d.cts +8 -8
- package/build/browser.d.mts +8 -8
- package/build/browser.mjs +1 -1
- package/build/{com-BNsFbKeD.d.mts → com-BM8-f4JW.d.cts} +1 -1
- package/build/{com-qCDie6XG.d.cts.map → com-BM8-f4JW.d.cts.map} +1 -1
- package/build/{com-qCDie6XG.d.cts → com-Bu0YGNYX.d.mts} +1 -1
- package/build/{com-BNsFbKeD.d.mts.map → com-Bu0YGNYX.d.mts.map} +1 -1
- package/build/{com-B1QZqhWz.cjs → com-JaZkZAlG.cjs} +2 -2
- package/build/{com-B1QZqhWz.cjs.map → com-JaZkZAlG.cjs.map} +1 -1
- package/build/{com-9odKA1Fj.mjs → com-VtVWh7gI.mjs} +2 -2
- package/build/{com-9odKA1Fj.mjs.map → com-VtVWh7gI.mjs.map} +1 -1
- package/build/com.cjs +1 -1
- package/build/com.d.cts +1 -1
- package/build/com.d.mts +1 -1
- package/build/com.mjs +1 -1
- package/build/common-B6_Yo59b.mjs +2 -0
- package/build/{common-DSzy5K03.mjs.map → common-B6_Yo59b.mjs.map} +1 -1
- package/build/{common-ClinPNdn.d.mts → common-DAOxX-Zx.d.cts} +1 -1
- package/build/{common-ClinPNdn.d.mts.map → common-DAOxX-Zx.d.cts.map} +1 -1
- package/build/common-DBMgtoTL.cjs +2 -0
- package/build/{common-ix04NEFn.cjs.map → common-DBMgtoTL.cjs.map} +1 -1
- package/build/{common-CsBdb633.d.cts → common-SiysH9tt.d.mts} +1 -1
- package/build/{common-CsBdb633.d.cts.map → common-SiysH9tt.d.mts.map} +1 -1
- package/build/{gpio-CHQBPi-F.d.mts → gpio-91G-W2m3.d.mts} +67 -22
- package/build/gpio-91G-W2m3.d.mts.map +1 -0
- package/build/gpio-Bz0JdP3l.cjs +2 -0
- package/build/gpio-Bz0JdP3l.cjs.map +1 -0
- package/build/gpio-CGsMbcQN.mjs +2 -0
- package/build/gpio-CGsMbcQN.mjs.map +1 -0
- package/build/{gpio-Cp-OTdEv.d.cts → gpio-CaoUf_cd.d.cts} +67 -22
- package/build/gpio-CaoUf_cd.d.cts.map +1 -0
- package/build/gpio.cjs +1 -1
- package/build/gpio.d.cts +3 -3
- package/build/gpio.d.mts +3 -3
- package/build/gpio.mjs +1 -1
- package/build/{hmi-BY5MO6bQ.d.cts → hmi-BSBsQPEN.d.mts} +2 -2
- package/build/{hmi-CdttEybP.d.mts.map → hmi-BSBsQPEN.d.mts.map} +1 -1
- package/build/hmi-CocSngQM.mjs +2 -0
- package/build/hmi-CocSngQM.mjs.map +1 -0
- package/build/hmi-DCplypi6.cjs +2 -0
- package/build/hmi-DCplypi6.cjs.map +1 -0
- package/build/{hmi-CdttEybP.d.mts → hmi-Des_V5c0.d.cts} +2 -2
- package/build/{hmi-BY5MO6bQ.d.cts.map → hmi-Des_V5c0.d.cts.map} +1 -1
- package/build/hmi.cjs +1 -1
- package/build/hmi.d.cts +1 -1
- package/build/hmi.d.mts +1 -1
- package/build/hmi.mjs +1 -1
- package/build/management-B9Tdk00K.cjs +2 -0
- package/build/{management-PEkkZaQ3.cjs.map → management-B9Tdk00K.cjs.map} +1 -1
- package/build/{management-COw5z8sl.d.cts → management-BIDVdvlQ.d.cts} +1 -1
- package/build/{management-COw5z8sl.d.cts.map → management-BIDVdvlQ.d.cts.map} +1 -1
- package/build/{management-CGmaS4-D.mjs → management-CXGT-yoC.mjs} +1 -1
- package/build/{management-CGmaS4-D.mjs.map → management-CXGT-yoC.mjs.map} +1 -1
- package/build/{management-CinGOMF_.d.mts → management-CwNeejKZ.d.mts} +1 -1
- package/build/{management-CinGOMF_.d.mts.map → management-CwNeejKZ.d.mts.map} +1 -1
- package/build/management.cjs +1 -1
- package/build/management.d.cts +1 -1
- package/build/management.d.mts +1 -1
- package/build/management.mjs +1 -1
- package/build/node.cjs +1 -1
- package/build/node.cjs.map +1 -1
- package/build/node.d.cts +8 -8
- package/build/node.d.mts +8 -8
- package/build/node.mjs +1 -1
- package/build/power-1yzD9ymI.cjs +2 -0
- package/build/power-1yzD9ymI.cjs.map +1 -0
- package/build/{power-B-Zc-SK6.d.cts → power-CQm1EIoO.d.cts} +45 -45
- package/build/{power-B-Zc-SK6.d.cts.map → power-CQm1EIoO.d.cts.map} +1 -1
- package/build/{power-knJhVejG.d.mts → power-CbQidLPp.d.mts} +45 -45
- package/build/{power-knJhVejG.d.mts.map → power-CbQidLPp.d.mts.map} +1 -1
- package/build/power-DqULYfeX.mjs +2 -0
- package/build/power-DqULYfeX.mjs.map +1 -0
- package/build/power.cjs +1 -1
- package/build/power.d.cts +3 -3
- package/build/power.d.mts +3 -3
- package/build/power.mjs +1 -1
- package/build/{relays-I7rKvd13.mjs → relays-BPQj7abl.mjs} +1 -1
- package/build/{relays-I7rKvd13.mjs.map → relays-BPQj7abl.mjs.map} +1 -1
- package/build/{relays-BR6408vm.d.mts → relays-Bn8LBgWl.d.cts} +1 -1
- package/build/{relays-BR6408vm.d.mts.map → relays-Bn8LBgWl.d.cts.map} +1 -1
- package/build/{relays-CoF1h8ZQ.d.cts → relays-CkBk7SOg.d.mts} +1 -1
- package/build/{relays-CoF1h8ZQ.d.cts.map → relays-CkBk7SOg.d.mts.map} +1 -1
- package/build/{relays-D_kWwwIR.cjs → relays-Mo3ywliK.cjs} +2 -2
- package/build/{relays-D_kWwwIR.cjs.map → relays-Mo3ywliK.cjs.map} +1 -1
- package/build/relays.cjs +1 -1
- package/build/relays.d.cts +1 -1
- package/build/relays.d.mts +1 -1
- package/build/relays.mjs +1 -1
- package/package.json +5 -5
- package/build/at1000-CYNSd3Yp.cjs +0 -2
- package/build/common-DSzy5K03.mjs +0 -2
- package/build/common-ix04NEFn.cjs +0 -2
- package/build/gpio-BRimmVQo.cjs +0 -2
- package/build/gpio-BRimmVQo.cjs.map +0 -1
- package/build/gpio-CHQBPi-F.d.mts.map +0 -1
- package/build/gpio-Cp-OTdEv.d.cts.map +0 -1
- package/build/gpio-nD6e5nNZ.mjs +0 -2
- package/build/gpio-nD6e5nNZ.mjs.map +0 -1
- package/build/hmi-DVUFmRMo.cjs +0 -2
- package/build/hmi-DVUFmRMo.cjs.map +0 -1
- package/build/hmi-dJ8Y4DVD.mjs +0 -2
- package/build/hmi-dJ8Y4DVD.mjs.map +0 -1
- package/build/management-PEkkZaQ3.cjs +0 -2
- package/build/power-B1rs9Bqf.mjs +0 -2
- package/build/power-B1rs9Bqf.mjs.map +0 -1
- package/build/power-BpI1_Yav.cjs +0 -2
- package/build/power-BpI1_Yav.cjs.map +0 -1
- /package/build/{chunk-DjWAcSYV.cjs → chunk-Bmb41Sf3.cjs} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common-
|
|
1
|
+
{"version":3,"file":"common-SiysH9tt.d.mts","names":[],"sources":["../src/api/common.ts"],"sourcesContent":[],"mappings":";;;cAGa,mBAAiB,CAAA,CAAA,yBAAA,CAAA,CAAA,yBAAA,CAAA,CAAA,sCAAA,CAAA,CAAA;AAAA,KAIlB,iBAAA,GAAoB,CAAA,CAAE,WAJJ,CAAA,OAIuB,iBAJvB,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as AnalogOutputLevel } from "./common-
|
|
2
|
-
import { n as Device } from "./management-
|
|
1
|
+
import { t as AnalogOutputLevel } from "./common-SiysH9tt.mjs";
|
|
2
|
+
import { n as Device } from "./management-CwNeejKZ.mjs";
|
|
3
3
|
import { UpFetch } from "up-fetch";
|
|
4
4
|
import * as v from "valibot";
|
|
5
5
|
|
|
@@ -16,8 +16,8 @@ declare const analogOutputConfiguration: v.ObjectSchema<{
|
|
|
16
16
|
declare const digitalInputConfiguration: v.ObjectSchema<{
|
|
17
17
|
readonly mode: v.LiteralSchema<"digital", undefined>;
|
|
18
18
|
readonly direction: v.LiteralSchema<"input", undefined>;
|
|
19
|
-
readonly vil: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -
|
|
20
|
-
readonly vih: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -
|
|
19
|
+
readonly vil: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -25, undefined>, v.MaxValueAction<number, 25, undefined>]>;
|
|
20
|
+
readonly vih: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -25, undefined>, v.MaxValueAction<number, 25, undefined>]>;
|
|
21
21
|
}, undefined>;
|
|
22
22
|
declare const digitalOutputConfiguration: v.ObjectSchema<{
|
|
23
23
|
readonly mode: v.LiteralSchema<"digital", undefined>;
|
|
@@ -25,8 +25,8 @@ declare const digitalOutputConfiguration: v.ObjectSchema<{
|
|
|
25
25
|
readonly value: v.BooleanSchema<undefined>;
|
|
26
26
|
readonly vol: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 24, undefined>]>;
|
|
27
27
|
readonly voh: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 24, undefined>]>;
|
|
28
|
-
readonly vil: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -
|
|
29
|
-
readonly vih: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -
|
|
28
|
+
readonly vil: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -25, undefined>, v.MaxValueAction<number, 25, undefined>]>;
|
|
29
|
+
readonly vih: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -25, undefined>, v.MaxValueAction<number, 25, undefined>]>;
|
|
30
30
|
}, undefined>;
|
|
31
31
|
type AnalogInputConfiguration = v.InferOutput<typeof analogInputConfiguration>;
|
|
32
32
|
type AnalogOutputConfiguration = v.InferOutput<typeof analogOutputConfiguration>;
|
|
@@ -49,7 +49,7 @@ declare const partialAnalogOutputConfiguration: Omit<v.ObjectSchema<{
|
|
|
49
49
|
}>;
|
|
50
50
|
readonly '~run': (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
|
|
51
51
|
value?: number | undefined;
|
|
52
|
-
}, v.NumberIssue | v.ObjectIssue | v.
|
|
52
|
+
}, v.NumberIssue | v.ObjectIssue | v.MaxValueIssue<number, 24> | v.MinValueIssue<number, 0>>;
|
|
53
53
|
readonly '~types'?: {
|
|
54
54
|
readonly input: {
|
|
55
55
|
value?: number | undefined;
|
|
@@ -57,21 +57,21 @@ declare const partialAnalogOutputConfiguration: Omit<v.ObjectSchema<{
|
|
|
57
57
|
readonly output: {
|
|
58
58
|
value?: number | undefined;
|
|
59
59
|
};
|
|
60
|
-
readonly issue: v.NumberIssue | v.ObjectIssue | v.
|
|
60
|
+
readonly issue: v.NumberIssue | v.ObjectIssue | v.MaxValueIssue<number, 24> | v.MinValueIssue<number, 0>;
|
|
61
61
|
} | undefined;
|
|
62
62
|
};
|
|
63
63
|
type PartialAnalogOutputConfiguration = v.InferOutput<typeof partialAnalogOutputConfiguration>;
|
|
64
64
|
declare const partialDigitalInputConfiguration: Omit<v.ObjectSchema<{
|
|
65
65
|
readonly mode: v.LiteralSchema<"digital", undefined>;
|
|
66
66
|
readonly direction: v.LiteralSchema<"input", undefined>;
|
|
67
|
-
readonly vil: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -
|
|
68
|
-
readonly vih: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -
|
|
67
|
+
readonly vil: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -25, undefined>, v.MaxValueAction<number, 25, undefined>]>;
|
|
68
|
+
readonly vih: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -25, undefined>, v.MaxValueAction<number, 25, undefined>]>;
|
|
69
69
|
}, undefined>, "~standard" | "~types" | "~run" | "entries"> & {
|
|
70
70
|
readonly entries: Omit<{
|
|
71
71
|
readonly mode: v.LiteralSchema<"digital", undefined>;
|
|
72
72
|
readonly direction: v.LiteralSchema<"input", undefined>;
|
|
73
|
-
readonly vil: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -
|
|
74
|
-
readonly vih: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -
|
|
73
|
+
readonly vil: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -25, undefined>, v.MaxValueAction<number, 25, undefined>]>;
|
|
74
|
+
readonly vih: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -25, undefined>, v.MaxValueAction<number, 25, undefined>]>;
|
|
75
75
|
}, "mode" | "direction">;
|
|
76
76
|
readonly '~standard': v.StandardProps<{
|
|
77
77
|
vil: number;
|
|
@@ -83,7 +83,7 @@ declare const partialDigitalInputConfiguration: Omit<v.ObjectSchema<{
|
|
|
83
83
|
readonly '~run': (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
|
|
84
84
|
vil: number;
|
|
85
85
|
vih: number;
|
|
86
|
-
}, v.NumberIssue | v.
|
|
86
|
+
}, v.NumberIssue | v.MinValueIssue<number, -25> | v.MaxValueIssue<number, 25> | v.ObjectIssue>;
|
|
87
87
|
readonly '~types'?: {
|
|
88
88
|
readonly input: {
|
|
89
89
|
vil: number;
|
|
@@ -93,18 +93,18 @@ declare const partialDigitalInputConfiguration: Omit<v.ObjectSchema<{
|
|
|
93
93
|
vil: number;
|
|
94
94
|
vih: number;
|
|
95
95
|
};
|
|
96
|
-
readonly issue: v.NumberIssue | v.
|
|
96
|
+
readonly issue: v.NumberIssue | v.MinValueIssue<number, -25> | v.MaxValueIssue<number, 25> | v.ObjectIssue;
|
|
97
97
|
} | undefined;
|
|
98
98
|
};
|
|
99
99
|
type PartialDigitalInputConfiguration = v.InferOutput<typeof partialDigitalInputConfiguration>;
|
|
100
|
-
declare const partialDigitalOutputConfiguration: Omit<v.ObjectSchema<{
|
|
100
|
+
declare const partialDigitalOutputConfiguration: Omit<Omit<v.ObjectSchema<{
|
|
101
101
|
readonly mode: v.LiteralSchema<"digital", undefined>;
|
|
102
102
|
readonly direction: v.LiteralSchema<"output", undefined>;
|
|
103
103
|
readonly value: v.BooleanSchema<undefined>;
|
|
104
104
|
readonly vol: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 24, undefined>]>;
|
|
105
105
|
readonly voh: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 24, undefined>]>;
|
|
106
|
-
readonly vil: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -
|
|
107
|
-
readonly vih: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -
|
|
106
|
+
readonly vil: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -25, undefined>, v.MaxValueAction<number, 25, undefined>]>;
|
|
107
|
+
readonly vih: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -25, undefined>, v.MaxValueAction<number, 25, undefined>]>;
|
|
108
108
|
}, undefined>, "~standard" | "~types" | "~run" | "entries"> & {
|
|
109
109
|
readonly entries: Omit<{
|
|
110
110
|
readonly mode: v.LiteralSchema<"digital", undefined>;
|
|
@@ -112,8 +112,8 @@ declare const partialDigitalOutputConfiguration: Omit<v.ObjectSchema<{
|
|
|
112
112
|
readonly value: v.BooleanSchema<undefined>;
|
|
113
113
|
readonly vol: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 24, undefined>]>;
|
|
114
114
|
readonly voh: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 24, undefined>]>;
|
|
115
|
-
readonly vil: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -
|
|
116
|
-
readonly vih: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -
|
|
115
|
+
readonly vil: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -25, undefined>, v.MaxValueAction<number, 25, undefined>]>;
|
|
116
|
+
readonly vih: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -25, undefined>, v.MaxValueAction<number, 25, undefined>]>;
|
|
117
117
|
}, "mode" | "direction">;
|
|
118
118
|
readonly '~standard': v.StandardProps<{
|
|
119
119
|
value: boolean;
|
|
@@ -134,7 +134,7 @@ declare const partialDigitalOutputConfiguration: Omit<v.ObjectSchema<{
|
|
|
134
134
|
vih: number;
|
|
135
135
|
vol: number;
|
|
136
136
|
voh: number;
|
|
137
|
-
}, v.BooleanIssue | v.NumberIssue | v.
|
|
137
|
+
}, v.BooleanIssue | v.NumberIssue | v.MinValueIssue<number, -25> | v.MaxValueIssue<number, 25> | v.ObjectIssue | v.MaxValueIssue<number, 24> | v.MinValueIssue<number, 0>>;
|
|
138
138
|
readonly '~types'?: {
|
|
139
139
|
readonly input: {
|
|
140
140
|
value: boolean;
|
|
@@ -150,7 +150,52 @@ declare const partialDigitalOutputConfiguration: Omit<v.ObjectSchema<{
|
|
|
150
150
|
vol: number;
|
|
151
151
|
voh: number;
|
|
152
152
|
};
|
|
153
|
-
readonly issue: v.BooleanIssue | v.NumberIssue | v.
|
|
153
|
+
readonly issue: v.BooleanIssue | v.NumberIssue | v.MinValueIssue<number, -25> | v.MaxValueIssue<number, 25> | v.ObjectIssue | v.MaxValueIssue<number, 24> | v.MinValueIssue<number, 0>;
|
|
154
|
+
} | undefined;
|
|
155
|
+
}, "~standard" | "~types" | "~run" | "entries"> & {
|
|
156
|
+
readonly entries: {
|
|
157
|
+
readonly value: v.BooleanSchema<undefined>;
|
|
158
|
+
readonly vil: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -25, undefined>, v.MaxValueAction<number, 25, undefined>]>, undefined>;
|
|
159
|
+
readonly vih: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -25, undefined>, v.MaxValueAction<number, 25, undefined>]>, undefined>;
|
|
160
|
+
readonly vol: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 24, undefined>]>;
|
|
161
|
+
readonly voh: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 24, undefined>]>;
|
|
162
|
+
};
|
|
163
|
+
readonly '~standard': v.StandardProps<{
|
|
164
|
+
value: boolean;
|
|
165
|
+
vil?: number | undefined;
|
|
166
|
+
vih?: number | undefined;
|
|
167
|
+
vol: number;
|
|
168
|
+
voh: number;
|
|
169
|
+
}, {
|
|
170
|
+
value: boolean;
|
|
171
|
+
vil?: number | undefined;
|
|
172
|
+
vih?: number | undefined;
|
|
173
|
+
vol: number;
|
|
174
|
+
voh: number;
|
|
175
|
+
}>;
|
|
176
|
+
readonly '~run': (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
|
|
177
|
+
value: boolean;
|
|
178
|
+
vil?: number | undefined;
|
|
179
|
+
vih?: number | undefined;
|
|
180
|
+
vol: number;
|
|
181
|
+
voh: number;
|
|
182
|
+
}, v.BooleanIssue | v.NumberIssue | v.MinValueIssue<number, -25> | v.MaxValueIssue<number, 25> | v.ObjectIssue | v.MaxValueIssue<number, 24> | v.MinValueIssue<number, 0>>;
|
|
183
|
+
readonly '~types'?: {
|
|
184
|
+
readonly input: {
|
|
185
|
+
value: boolean;
|
|
186
|
+
vil?: number | undefined;
|
|
187
|
+
vih?: number | undefined;
|
|
188
|
+
vol: number;
|
|
189
|
+
voh: number;
|
|
190
|
+
};
|
|
191
|
+
readonly output: {
|
|
192
|
+
value: boolean;
|
|
193
|
+
vil?: number | undefined;
|
|
194
|
+
vih?: number | undefined;
|
|
195
|
+
vol: number;
|
|
196
|
+
voh: number;
|
|
197
|
+
};
|
|
198
|
+
readonly issue: v.BooleanIssue | v.NumberIssue | v.MinValueIssue<number, -25> | v.MaxValueIssue<number, 25> | v.ObjectIssue | v.MaxValueIssue<number, 24> | v.MinValueIssue<number, 0>;
|
|
154
199
|
} | undefined;
|
|
155
200
|
};
|
|
156
201
|
type PartialDigitalOutputConfiguration = v.InferOutput<typeof partialDigitalOutputConfiguration>;
|
|
@@ -253,4 +298,4 @@ declare class AnalogIO {
|
|
|
253
298
|
}
|
|
254
299
|
//#endregion
|
|
255
300
|
export { DigitalInputConfiguration as a, PartialAnalogOutputConfiguration as c, SyncConfiguration as d, DigitalIO as i, PartialDigitalInputConfiguration as l, AnalogInputConfiguration as n, DigitalOutputConfiguration as o, AnalogOutputConfiguration as r, GpioApi as s, AnalogIO as t, PartialDigitalOutputConfiguration as u };
|
|
256
|
-
//# sourceMappingURL=gpio-
|
|
301
|
+
//# sourceMappingURL=gpio-91G-W2m3.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gpio-91G-W2m3.d.mts","names":[],"sources":["../src/api/gpio.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require(`./chunk-Bmb41Sf3.cjs`),t=require(`./common-DBMgtoTL.cjs`);let n=require(`valibot`);n=e.t(n);const r=n.picklist([`release`,`hold`],`Invalid sync action`),i=n.object({mode:n.literal(`analog`),direction:n.literal(`input`)}),a=n.object({mode:n.literal(`analog`),direction:n.literal(`output`),value:n.optional(t.n)}),o=n.object({mode:n.literal(`digital`),direction:n.literal(`input`),vil:t.t,vih:t.t}),s=n.object({mode:n.literal(`digital`),direction:n.literal(`output`),value:t.r,vol:t.n,voh:t.n,vil:t.t,vih:t.t});n.omit(a,[`direction`,`mode`]),n.omit(o,[`direction`,`mode`]);const c=n.partial(n.omit(s,[`direction`,`mode`]),[`vih`,`vil`]),l=n.object({value:t.r}),u=n.object({value:t.t}),d=n.object({action:r});var f=class{count;constructor(e,t){this.fetch=e,this.count=t.capabilities.io.count}reset(){return this.fetch(`/gpio/reset`,{method:`POST`,parseResponse:()=>{}})}digital(e){if(e<0||e>=this.count)throw Error(`Invalid GPIO pin ${e} (RESOURCE_NOT_FOUND)\n Suggestion: Use a pin number between 0 and ${this.count-1}\n Path: /gpio/${e}`);return new p(this.fetch,e)}analog(e){if(e<0||e>=this.count)throw Error(`Invalid GPIO pin ${e} (RESOURCE_NOT_FOUND)\n Suggestion: Use a pin number between 0 and ${this.count-1}\n Path: /gpio/${e}`);return new m(this.fetch,e)}hold(){return this.fetch(`/gpio/sync`,{method:`POST`,body:{action:`hold`},schema:d})}release(){return this.fetch(`/gpio/sync`,{method:`POST`,body:{action:`release`},schema:d})}},p=class{constructor(e,t){this.fetch=e,this.id=t}configure_input(e){return this.fetch(`/gpio/${this.id}/config`,{method:`PATCH`,body:n.parse(o,{...e,mode:`digital`,direction:`input`}),schema:o})}configure_output(e){e=n.parse(c,e);let t={mode:`digital`,direction:`output`,value:e.value,vol:e.vol,voh:e.voh,vil:e.vil??e.vol+(e.voh-e.vol)/4,vih:e.vih??e.voh-(e.voh-e.vol)/4};return this.fetch(`/gpio/${this.id}/config`,{method:`PATCH`,body:n.parse(s,t),schema:s})}async read(){return(await this.fetch(`/gpio/${this.id}/state`,{schema:l})).value}async write(e){return(await this.fetch(`/gpio/${this.id}/state`,{method:`PUT`,body:{value:e},schema:l})).value}},m=class{constructor(e,t){this.fetch=e,this.id=t}configure_input(){return this.fetch(`/gpio/${this.id}/config`,{method:`PATCH`,body:{mode:`analog`,direction:`input`},schema:i})}configure_output(e){return this.fetch(`/gpio/${this.id}/config`,{method:`PATCH`,body:n.parse(a,{value:e,mode:`analog`,direction:`output`}),schema:a})}async read(){return(await this.fetch(`/gpio/${this.id}/state`,{schema:u})).value}async write(e){return(await this.fetch(`/gpio/${this.id}/state`,{method:`PUT`,body:{value:e},schema:u})).value}};Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return m}});
|
|
2
|
+
//# sourceMappingURL=gpio-Bz0JdP3l.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gpio-Bz0JdP3l.cjs","names":["v","analogOutputLevel","analogLevel","digitalLevel","fetch: UpFetch","id: number","fullConfig: DigitalOutputConfiguration"],"sources":["../src/api/gpio.ts"],"sourcesContent":["import type { UpFetch } from 'up-fetch';\nimport * as v from 'valibot';\n\nimport { analogLevel, type AnalogOutputLevel, analogOutputLevel, digitalLevel } from './common';\nimport type { Device } from './management';\n\nexport type { AnalogOutputLevel };\n\nconst syncAction = v.picklist(['release', 'hold'], 'Invalid sync action');\nconst analogInputConfiguration = v.object({\n mode: v.literal('analog'),\n direction: v.literal('input'),\n});\nconst analogOutputConfiguration = v.object({\n mode: v.literal('analog'),\n direction: v.literal('output'),\n value: v.optional(analogOutputLevel),\n});\nconst digitalInputConfiguration = v.object({\n mode: v.literal('digital'),\n direction: v.literal('input'),\n vil: analogLevel,\n vih: analogLevel,\n});\nconst digitalOutputConfiguration = v.object({\n mode: v.literal('digital'),\n direction: v.literal('output'),\n value: digitalLevel,\n vol: analogOutputLevel,\n voh: analogOutputLevel,\n vil: analogLevel,\n vih: analogLevel,\n});\nexport type AnalogInputConfiguration = v.InferOutput<typeof analogInputConfiguration>;\nexport type AnalogOutputConfiguration = v.InferOutput<typeof analogOutputConfiguration>;\nexport type DigitalInputConfiguration = v.InferOutput<typeof digitalInputConfiguration>;\nexport type DigitalOutputConfiguration = v.InferOutput<typeof digitalOutputConfiguration>;\n\nconst partialAnalogOutputConfiguration = v.omit(analogOutputConfiguration, ['direction', 'mode']);\nexport type PartialAnalogOutputConfiguration = v.InferOutput<\n typeof partialAnalogOutputConfiguration\n>;\nconst partialDigitalInputConfiguration = v.omit(digitalInputConfiguration, ['direction', 'mode']);\nexport type PartialDigitalInputConfiguration = v.InferOutput<\n typeof partialDigitalInputConfiguration\n>;\nconst partialDigitalOutputConfiguration = v.partial(\n v.omit(digitalOutputConfiguration, ['direction', 'mode']),\n ['vih', 'vil'],\n);\nexport type PartialDigitalOutputConfiguration = v.InferOutput<\n typeof partialDigitalOutputConfiguration\n>;\n\nconst digitalState = v.object({ value: digitalLevel });\nconst analogState = v.object({ value: analogLevel });\n\nconst syncConfiguration = v.object({ action: syncAction });\nexport type SyncConfiguration = v.InferOutput<typeof syncConfiguration>;\n\n/** @hideconstructor */\nexport class GpioApi {\n private count: number;\n\n constructor(private readonly fetch: UpFetch, device: Device) {\n this.count = device.capabilities.io.count;\n }\n\n /**\n * Resets all IO configurations to default.\n */\n reset(): Promise<void> {\n return this.fetch('/gpio/reset', { method: 'POST', parseResponse: () => {} });\n }\n\n /**\n * Access a specific digital IO pin by id.\n * @param io The IO pin id.\n * @returns The digital IO instance.\n */\n digital(io: number): DigitalIO {\n if (io < 0 || io >= this.count) {\n throw new Error(\n `Invalid GPIO pin ${io} (RESOURCE_NOT_FOUND)\\n Suggestion: Use a pin number between 0 and ${\n this.count - 1\n }\\n Path: /gpio/${io}`,\n );\n }\n\n return new DigitalIO(this.fetch, io);\n }\n\n /**\n * Access a specific analog IO pin by id.\n * @param io The IO pin id.\n * @returns The analog IO instance.\n */\n analog(io: number): AnalogIO {\n if (io < 0 || io >= this.count) {\n throw new Error(\n `Invalid GPIO pin ${io} (RESOURCE_NOT_FOUND)\\n Suggestion: Use a pin number between 0 and ${\n this.count - 1\n }\\n Path: /gpio/${io}`,\n );\n }\n\n return new AnalogIO(this.fetch, io);\n }\n\n /**\n * Holds the current state of all GPIO pins.\n * @returns The applied sync state.\n */\n hold(): Promise<SyncConfiguration> {\n return this.fetch('/gpio/sync', {\n method: 'POST',\n body: { action: 'hold' } satisfies SyncConfiguration,\n schema: syncConfiguration,\n });\n }\n\n /**\n * Releases control of the IO pins, allowing external control.\n *\n * This also sets the device as a slave.\n *\n * @returns The applied sync state.\n */\n release(): Promise<SyncConfiguration> {\n return this.fetch('/gpio/sync', {\n method: 'POST',\n body: { action: 'release' } satisfies SyncConfiguration,\n schema: syncConfiguration,\n });\n }\n}\n\n/** @hideconstructor */\nexport class DigitalIO {\n constructor(private readonly fetch: UpFetch, public readonly id: number) {}\n\n /**\n * Configure the pin as a digital input.\n * @param config The digital input configuration.\n * @returns The applied configuration.\n */\n configure_input(config: PartialDigitalInputConfiguration): Promise<DigitalInputConfiguration> {\n return this.fetch(`/gpio/${this.id}/config`, {\n method: 'PATCH',\n body: v.parse(\n digitalInputConfiguration,\n { ...config, mode: 'digital', direction: 'input' } satisfies DigitalInputConfiguration,\n ),\n schema: digitalInputConfiguration,\n });\n }\n\n /**\n * Configures the pin as a digital output.\n * @param config The digital output configuration.\n * @returns The applied configuration.\n */\n configure_output(config: PartialDigitalOutputConfiguration): Promise<DigitalOutputConfiguration> {\n config = v.parse(partialDigitalOutputConfiguration, config);\n\n const fullConfig: DigitalOutputConfiguration = {\n mode: 'digital',\n direction: 'output',\n value: config.value,\n vol: config.vol,\n voh: config.voh,\n vil: config.vil ?? config.vol + (config.voh - config.vol) / 4,\n vih: config.vih ?? config.voh - (config.voh - config.vol) / 4,\n };\n\n return this.fetch(`/gpio/${this.id}/config`, {\n method: 'PATCH',\n body: v.parse(digitalOutputConfiguration, fullConfig),\n schema: digitalOutputConfiguration,\n });\n }\n\n /**\n * Reads the current state of the pin.\n * @returns The current state of the pin.\n */\n async read(): Promise<boolean> {\n return (await this.fetch(`/gpio/${this.id}/state`, { schema: digitalState })).value;\n }\n\n /**\n * Writes a value to the pin.\n * @param value The value to write.\n * @returns The written value.\n */\n async write(value: boolean): Promise<boolean> {\n return (await this.fetch(`/gpio/${this.id}/state`, {\n method: 'PUT',\n body: { value },\n schema: digitalState,\n }))\n .value;\n }\n}\n\n/** @hideconstructor */\nexport class AnalogIO {\n constructor(private readonly fetch: UpFetch, public readonly id: number) {}\n\n /**\n * Configures the pin as an analog input.\n * @returns The applied configuration.\n * @returns The applied configuration.\n */\n configure_input(): Promise<AnalogInputConfiguration> {\n return this.fetch(`/gpio/${this.id}/config`, {\n method: 'PATCH',\n body: { mode: 'analog', direction: 'input' } satisfies AnalogInputConfiguration,\n schema: analogInputConfiguration,\n });\n }\n\n /**\n * Configures the pin as an analog output.\n * @param config The analog output configuration.\n * @returns The applied configuration.\n */\n configure_output(value: AnalogOutputLevel): Promise<AnalogOutputConfiguration> {\n return this.fetch(`/gpio/${this.id}/config`, {\n method: 'PATCH',\n body: v.parse(\n analogOutputConfiguration,\n { value, mode: 'analog', direction: 'output' } satisfies AnalogOutputConfiguration,\n ),\n schema: analogOutputConfiguration,\n });\n }\n\n /**\n * Reads the current state of the pin.\n * @returns The current state of the pin.\n */\n async read(): Promise<number> {\n return (await this.fetch(`/gpio/${this.id}/state`, { schema: analogState })).value;\n }\n\n /**\n * Writes a value to the pin.\n * @param value The value to write.\n * @returns The written value.\n */\n async write(value: number): Promise<number> {\n return (await this.fetch(`/gpio/${this.id}/state`, {\n method: 'PUT',\n body: { value },\n schema: analogState,\n }))\n .value;\n }\n}\n"],"mappings":"6GAQA,MAAM,EAAaA,EAAE,SAAS,CAAC,UAAW,OAAO,CAAE,sBAAsB,CACnE,EAA2BA,EAAE,OAAO,CACxC,KAAMA,EAAE,QAAQ,SAAS,CACzB,UAAWA,EAAE,QAAQ,QAAQ,CAC9B,CAAC,CACI,EAA4BA,EAAE,OAAO,CACzC,KAAMA,EAAE,QAAQ,SAAS,CACzB,UAAWA,EAAE,QAAQ,SAAS,CAC9B,MAAOA,EAAE,SAASC,EAAAA,EAAkB,CACrC,CAAC,CACI,EAA4BD,EAAE,OAAO,CACzC,KAAMA,EAAE,QAAQ,UAAU,CAC1B,UAAWA,EAAE,QAAQ,QAAQ,CAC7B,IAAKE,EAAAA,EACL,IAAKA,EAAAA,EACN,CAAC,CACI,EAA6BF,EAAE,OAAO,CAC1C,KAAMA,EAAE,QAAQ,UAAU,CAC1B,UAAWA,EAAE,QAAQ,SAAS,CAC9B,MAAOG,EAAAA,EACP,IAAKF,EAAAA,EACL,IAAKA,EAAAA,EACL,IAAKC,EAAAA,EACL,IAAKA,EAAAA,EACN,CAAC,CAMuCF,EAAE,KAAK,EAA2B,CAAC,YAAa,OAAO,CAAC,CAIxDA,EAAE,KAAK,EAA2B,CAAC,YAAa,OAAO,CAAC,CAIjG,MAAM,EAAoCA,EAAE,QAC1CA,EAAE,KAAK,EAA4B,CAAC,YAAa,OAAO,CAAC,CACzD,CAAC,MAAO,MAAM,CACf,CAKK,EAAeA,EAAE,OAAO,CAAE,MAAOG,EAAAA,EAAc,CAAC,CAChD,EAAcH,EAAE,OAAO,CAAE,MAAOE,EAAAA,EAAa,CAAC,CAE9C,EAAoBF,EAAE,OAAO,CAAE,OAAQ,EAAY,CAAC,CAI1D,IAAa,EAAb,KAAqB,CACnB,MAEA,YAAY,EAAiC,EAAgB,CAAhC,KAAA,MAAA,EAC3B,KAAK,MAAQ,EAAO,aAAa,GAAG,MAMtC,OAAuB,CACrB,OAAO,KAAK,MAAM,cAAe,CAAE,OAAQ,OAAQ,kBAAqB,GAAI,CAAC,CAQ/E,QAAQ,EAAuB,CAC7B,GAAI,EAAK,GAAK,GAAM,KAAK,MACvB,MAAU,MACR,oBAAoB,EAAG,wEACrB,KAAK,MAAQ,EACd,oBAAoB,IACtB,CAGH,OAAO,IAAI,EAAU,KAAK,MAAO,EAAG,CAQtC,OAAO,EAAsB,CAC3B,GAAI,EAAK,GAAK,GAAM,KAAK,MACvB,MAAU,MACR,oBAAoB,EAAG,wEACrB,KAAK,MAAQ,EACd,oBAAoB,IACtB,CAGH,OAAO,IAAI,EAAS,KAAK,MAAO,EAAG,CAOrC,MAAmC,CACjC,OAAO,KAAK,MAAM,aAAc,CAC9B,OAAQ,OACR,KAAM,CAAE,OAAQ,OAAQ,CACxB,OAAQ,EACT,CAAC,CAUJ,SAAsC,CACpC,OAAO,KAAK,MAAM,aAAc,CAC9B,OAAQ,OACR,KAAM,CAAE,OAAQ,UAAW,CAC3B,OAAQ,EACT,CAAC,GAKO,EAAb,KAAuB,CACrB,YAAY,EAAiC,EAA4B,CAA5C,KAAA,MAAA,EAAgC,KAAA,GAAA,EAO7D,gBAAgB,EAA8E,CAC5F,OAAO,KAAK,MAAM,SAAS,KAAK,GAAG,SAAU,CAC3C,OAAQ,QACR,KAAMA,EAAE,MACN,EACA,CAAE,GAAG,EAAQ,KAAM,UAAW,UAAW,QAAS,CACnD,CACD,OAAQ,EACT,CAAC,CAQJ,iBAAiB,EAAgF,CAC/F,EAASA,EAAE,MAAM,EAAmC,EAAO,CAE3D,IAAMM,EAAyC,CAC7C,KAAM,UACN,UAAW,SACX,MAAO,EAAO,MACd,IAAK,EAAO,IACZ,IAAK,EAAO,IACZ,IAAK,EAAO,KAAO,EAAO,KAAO,EAAO,IAAM,EAAO,KAAO,EAC5D,IAAK,EAAO,KAAO,EAAO,KAAO,EAAO,IAAM,EAAO,KAAO,EAC7D,CAED,OAAO,KAAK,MAAM,SAAS,KAAK,GAAG,SAAU,CAC3C,OAAQ,QACR,KAAMN,EAAE,MAAM,EAA4B,EAAW,CACrD,OAAQ,EACT,CAAC,CAOJ,MAAM,MAAyB,CAC7B,OAAQ,MAAM,KAAK,MAAM,SAAS,KAAK,GAAG,QAAS,CAAE,OAAQ,EAAc,CAAC,EAAE,MAQhF,MAAM,MAAM,EAAkC,CAC5C,OAAQ,MAAM,KAAK,MAAM,SAAS,KAAK,GAAG,QAAS,CACjD,OAAQ,MACR,KAAM,CAAE,QAAO,CACf,OAAQ,EACT,CAAC,EACC,QAKM,EAAb,KAAsB,CACpB,YAAY,EAAiC,EAA4B,CAA5C,KAAA,MAAA,EAAgC,KAAA,GAAA,EAO7D,iBAAqD,CACnD,OAAO,KAAK,MAAM,SAAS,KAAK,GAAG,SAAU,CAC3C,OAAQ,QACR,KAAM,CAAE,KAAM,SAAU,UAAW,QAAS,CAC5C,OAAQ,EACT,CAAC,CAQJ,iBAAiB,EAA8D,CAC7E,OAAO,KAAK,MAAM,SAAS,KAAK,GAAG,SAAU,CAC3C,OAAQ,QACR,KAAMA,EAAE,MACN,EACA,CAAE,QAAO,KAAM,SAAU,UAAW,SAAU,CAC/C,CACD,OAAQ,EACT,CAAC,CAOJ,MAAM,MAAwB,CAC5B,OAAQ,MAAM,KAAK,MAAM,SAAS,KAAK,GAAG,QAAS,CAAE,OAAQ,EAAa,CAAC,EAAE,MAQ/E,MAAM,MAAM,EAAgC,CAC1C,OAAQ,MAAM,KAAK,MAAM,SAAS,KAAK,GAAG,QAAS,CACjD,OAAQ,MACR,KAAM,CAAE,QAAO,CACf,OAAQ,EACT,CAAC,EACC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{n as e,r as t,t as n}from"./common-B6_Yo59b.mjs";import*as r from"valibot";const i=r.picklist([`release`,`hold`],`Invalid sync action`),a=r.object({mode:r.literal(`analog`),direction:r.literal(`input`)}),o=r.object({mode:r.literal(`analog`),direction:r.literal(`output`),value:r.optional(e)}),s=r.object({mode:r.literal(`digital`),direction:r.literal(`input`),vil:n,vih:n}),c=r.object({mode:r.literal(`digital`),direction:r.literal(`output`),value:t,vol:e,voh:e,vil:n,vih:n});r.omit(o,[`direction`,`mode`]),r.omit(s,[`direction`,`mode`]);const l=r.partial(r.omit(c,[`direction`,`mode`]),[`vih`,`vil`]),u=r.object({value:t}),d=r.object({value:n}),f=r.object({action:i});var p=class{count;constructor(e,t){this.fetch=e,this.count=t.capabilities.io.count}reset(){return this.fetch(`/gpio/reset`,{method:`POST`,parseResponse:()=>{}})}digital(e){if(e<0||e>=this.count)throw Error(`Invalid GPIO pin ${e} (RESOURCE_NOT_FOUND)\n Suggestion: Use a pin number between 0 and ${this.count-1}\n Path: /gpio/${e}`);return new m(this.fetch,e)}analog(e){if(e<0||e>=this.count)throw Error(`Invalid GPIO pin ${e} (RESOURCE_NOT_FOUND)\n Suggestion: Use a pin number between 0 and ${this.count-1}\n Path: /gpio/${e}`);return new h(this.fetch,e)}hold(){return this.fetch(`/gpio/sync`,{method:`POST`,body:{action:`hold`},schema:f})}release(){return this.fetch(`/gpio/sync`,{method:`POST`,body:{action:`release`},schema:f})}},m=class{constructor(e,t){this.fetch=e,this.id=t}configure_input(e){return this.fetch(`/gpio/${this.id}/config`,{method:`PATCH`,body:r.parse(s,{...e,mode:`digital`,direction:`input`}),schema:s})}configure_output(e){e=r.parse(l,e);let t={mode:`digital`,direction:`output`,value:e.value,vol:e.vol,voh:e.voh,vil:e.vil??e.vol+(e.voh-e.vol)/4,vih:e.vih??e.voh-(e.voh-e.vol)/4};return this.fetch(`/gpio/${this.id}/config`,{method:`PATCH`,body:r.parse(c,t),schema:c})}async read(){return(await this.fetch(`/gpio/${this.id}/state`,{schema:u})).value}async write(e){return(await this.fetch(`/gpio/${this.id}/state`,{method:`PUT`,body:{value:e},schema:u})).value}},h=class{constructor(e,t){this.fetch=e,this.id=t}configure_input(){return this.fetch(`/gpio/${this.id}/config`,{method:`PATCH`,body:{mode:`analog`,direction:`input`},schema:a})}configure_output(e){return this.fetch(`/gpio/${this.id}/config`,{method:`PATCH`,body:r.parse(o,{value:e,mode:`analog`,direction:`output`}),schema:o})}async read(){return(await this.fetch(`/gpio/${this.id}/state`,{schema:d})).value}async write(e){return(await this.fetch(`/gpio/${this.id}/state`,{method:`PUT`,body:{value:e},schema:d})).value}};export{m as n,p as r,h as t};
|
|
2
|
+
//# sourceMappingURL=gpio-CGsMbcQN.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gpio-CGsMbcQN.mjs","names":["fetch: UpFetch","id: number","fullConfig: DigitalOutputConfiguration"],"sources":["../src/api/gpio.ts"],"sourcesContent":["import type { UpFetch } from 'up-fetch';\nimport * as v from 'valibot';\n\nimport { analogLevel, type AnalogOutputLevel, analogOutputLevel, digitalLevel } from './common';\nimport type { Device } from './management';\n\nexport type { AnalogOutputLevel };\n\nconst syncAction = v.picklist(['release', 'hold'], 'Invalid sync action');\nconst analogInputConfiguration = v.object({\n mode: v.literal('analog'),\n direction: v.literal('input'),\n});\nconst analogOutputConfiguration = v.object({\n mode: v.literal('analog'),\n direction: v.literal('output'),\n value: v.optional(analogOutputLevel),\n});\nconst digitalInputConfiguration = v.object({\n mode: v.literal('digital'),\n direction: v.literal('input'),\n vil: analogLevel,\n vih: analogLevel,\n});\nconst digitalOutputConfiguration = v.object({\n mode: v.literal('digital'),\n direction: v.literal('output'),\n value: digitalLevel,\n vol: analogOutputLevel,\n voh: analogOutputLevel,\n vil: analogLevel,\n vih: analogLevel,\n});\nexport type AnalogInputConfiguration = v.InferOutput<typeof analogInputConfiguration>;\nexport type AnalogOutputConfiguration = v.InferOutput<typeof analogOutputConfiguration>;\nexport type DigitalInputConfiguration = v.InferOutput<typeof digitalInputConfiguration>;\nexport type DigitalOutputConfiguration = v.InferOutput<typeof digitalOutputConfiguration>;\n\nconst partialAnalogOutputConfiguration = v.omit(analogOutputConfiguration, ['direction', 'mode']);\nexport type PartialAnalogOutputConfiguration = v.InferOutput<\n typeof partialAnalogOutputConfiguration\n>;\nconst partialDigitalInputConfiguration = v.omit(digitalInputConfiguration, ['direction', 'mode']);\nexport type PartialDigitalInputConfiguration = v.InferOutput<\n typeof partialDigitalInputConfiguration\n>;\nconst partialDigitalOutputConfiguration = v.partial(\n v.omit(digitalOutputConfiguration, ['direction', 'mode']),\n ['vih', 'vil'],\n);\nexport type PartialDigitalOutputConfiguration = v.InferOutput<\n typeof partialDigitalOutputConfiguration\n>;\n\nconst digitalState = v.object({ value: digitalLevel });\nconst analogState = v.object({ value: analogLevel });\n\nconst syncConfiguration = v.object({ action: syncAction });\nexport type SyncConfiguration = v.InferOutput<typeof syncConfiguration>;\n\n/** @hideconstructor */\nexport class GpioApi {\n private count: number;\n\n constructor(private readonly fetch: UpFetch, device: Device) {\n this.count = device.capabilities.io.count;\n }\n\n /**\n * Resets all IO configurations to default.\n */\n reset(): Promise<void> {\n return this.fetch('/gpio/reset', { method: 'POST', parseResponse: () => {} });\n }\n\n /**\n * Access a specific digital IO pin by id.\n * @param io The IO pin id.\n * @returns The digital IO instance.\n */\n digital(io: number): DigitalIO {\n if (io < 0 || io >= this.count) {\n throw new Error(\n `Invalid GPIO pin ${io} (RESOURCE_NOT_FOUND)\\n Suggestion: Use a pin number between 0 and ${\n this.count - 1\n }\\n Path: /gpio/${io}`,\n );\n }\n\n return new DigitalIO(this.fetch, io);\n }\n\n /**\n * Access a specific analog IO pin by id.\n * @param io The IO pin id.\n * @returns The analog IO instance.\n */\n analog(io: number): AnalogIO {\n if (io < 0 || io >= this.count) {\n throw new Error(\n `Invalid GPIO pin ${io} (RESOURCE_NOT_FOUND)\\n Suggestion: Use a pin number between 0 and ${\n this.count - 1\n }\\n Path: /gpio/${io}`,\n );\n }\n\n return new AnalogIO(this.fetch, io);\n }\n\n /**\n * Holds the current state of all GPIO pins.\n * @returns The applied sync state.\n */\n hold(): Promise<SyncConfiguration> {\n return this.fetch('/gpio/sync', {\n method: 'POST',\n body: { action: 'hold' } satisfies SyncConfiguration,\n schema: syncConfiguration,\n });\n }\n\n /**\n * Releases control of the IO pins, allowing external control.\n *\n * This also sets the device as a slave.\n *\n * @returns The applied sync state.\n */\n release(): Promise<SyncConfiguration> {\n return this.fetch('/gpio/sync', {\n method: 'POST',\n body: { action: 'release' } satisfies SyncConfiguration,\n schema: syncConfiguration,\n });\n }\n}\n\n/** @hideconstructor */\nexport class DigitalIO {\n constructor(private readonly fetch: UpFetch, public readonly id: number) {}\n\n /**\n * Configure the pin as a digital input.\n * @param config The digital input configuration.\n * @returns The applied configuration.\n */\n configure_input(config: PartialDigitalInputConfiguration): Promise<DigitalInputConfiguration> {\n return this.fetch(`/gpio/${this.id}/config`, {\n method: 'PATCH',\n body: v.parse(\n digitalInputConfiguration,\n { ...config, mode: 'digital', direction: 'input' } satisfies DigitalInputConfiguration,\n ),\n schema: digitalInputConfiguration,\n });\n }\n\n /**\n * Configures the pin as a digital output.\n * @param config The digital output configuration.\n * @returns The applied configuration.\n */\n configure_output(config: PartialDigitalOutputConfiguration): Promise<DigitalOutputConfiguration> {\n config = v.parse(partialDigitalOutputConfiguration, config);\n\n const fullConfig: DigitalOutputConfiguration = {\n mode: 'digital',\n direction: 'output',\n value: config.value,\n vol: config.vol,\n voh: config.voh,\n vil: config.vil ?? config.vol + (config.voh - config.vol) / 4,\n vih: config.vih ?? config.voh - (config.voh - config.vol) / 4,\n };\n\n return this.fetch(`/gpio/${this.id}/config`, {\n method: 'PATCH',\n body: v.parse(digitalOutputConfiguration, fullConfig),\n schema: digitalOutputConfiguration,\n });\n }\n\n /**\n * Reads the current state of the pin.\n * @returns The current state of the pin.\n */\n async read(): Promise<boolean> {\n return (await this.fetch(`/gpio/${this.id}/state`, { schema: digitalState })).value;\n }\n\n /**\n * Writes a value to the pin.\n * @param value The value to write.\n * @returns The written value.\n */\n async write(value: boolean): Promise<boolean> {\n return (await this.fetch(`/gpio/${this.id}/state`, {\n method: 'PUT',\n body: { value },\n schema: digitalState,\n }))\n .value;\n }\n}\n\n/** @hideconstructor */\nexport class AnalogIO {\n constructor(private readonly fetch: UpFetch, public readonly id: number) {}\n\n /**\n * Configures the pin as an analog input.\n * @returns The applied configuration.\n * @returns The applied configuration.\n */\n configure_input(): Promise<AnalogInputConfiguration> {\n return this.fetch(`/gpio/${this.id}/config`, {\n method: 'PATCH',\n body: { mode: 'analog', direction: 'input' } satisfies AnalogInputConfiguration,\n schema: analogInputConfiguration,\n });\n }\n\n /**\n * Configures the pin as an analog output.\n * @param config The analog output configuration.\n * @returns The applied configuration.\n */\n configure_output(value: AnalogOutputLevel): Promise<AnalogOutputConfiguration> {\n return this.fetch(`/gpio/${this.id}/config`, {\n method: 'PATCH',\n body: v.parse(\n analogOutputConfiguration,\n { value, mode: 'analog', direction: 'output' } satisfies AnalogOutputConfiguration,\n ),\n schema: analogOutputConfiguration,\n });\n }\n\n /**\n * Reads the current state of the pin.\n * @returns The current state of the pin.\n */\n async read(): Promise<number> {\n return (await this.fetch(`/gpio/${this.id}/state`, { schema: analogState })).value;\n }\n\n /**\n * Writes a value to the pin.\n * @param value The value to write.\n * @returns The written value.\n */\n async write(value: number): Promise<number> {\n return (await this.fetch(`/gpio/${this.id}/state`, {\n method: 'PUT',\n body: { value },\n schema: analogState,\n }))\n .value;\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as AnalogOutputLevel } from "./common-
|
|
2
|
-
import { n as Device } from "./management-
|
|
1
|
+
import { t as AnalogOutputLevel } from "./common-DAOxX-Zx.cjs";
|
|
2
|
+
import { n as Device } from "./management-BIDVdvlQ.cjs";
|
|
3
3
|
import { UpFetch } from "up-fetch";
|
|
4
4
|
import * as v from "valibot";
|
|
5
5
|
|
|
@@ -16,8 +16,8 @@ declare const analogOutputConfiguration: v.ObjectSchema<{
|
|
|
16
16
|
declare const digitalInputConfiguration: v.ObjectSchema<{
|
|
17
17
|
readonly mode: v.LiteralSchema<"digital", undefined>;
|
|
18
18
|
readonly direction: v.LiteralSchema<"input", undefined>;
|
|
19
|
-
readonly vil: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -
|
|
20
|
-
readonly vih: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -
|
|
19
|
+
readonly vil: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -25, undefined>, v.MaxValueAction<number, 25, undefined>]>;
|
|
20
|
+
readonly vih: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -25, undefined>, v.MaxValueAction<number, 25, undefined>]>;
|
|
21
21
|
}, undefined>;
|
|
22
22
|
declare const digitalOutputConfiguration: v.ObjectSchema<{
|
|
23
23
|
readonly mode: v.LiteralSchema<"digital", undefined>;
|
|
@@ -25,8 +25,8 @@ declare const digitalOutputConfiguration: v.ObjectSchema<{
|
|
|
25
25
|
readonly value: v.BooleanSchema<undefined>;
|
|
26
26
|
readonly vol: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 24, undefined>]>;
|
|
27
27
|
readonly voh: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 24, undefined>]>;
|
|
28
|
-
readonly vil: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -
|
|
29
|
-
readonly vih: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -
|
|
28
|
+
readonly vil: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -25, undefined>, v.MaxValueAction<number, 25, undefined>]>;
|
|
29
|
+
readonly vih: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -25, undefined>, v.MaxValueAction<number, 25, undefined>]>;
|
|
30
30
|
}, undefined>;
|
|
31
31
|
type AnalogInputConfiguration = v.InferOutput<typeof analogInputConfiguration>;
|
|
32
32
|
type AnalogOutputConfiguration = v.InferOutput<typeof analogOutputConfiguration>;
|
|
@@ -49,7 +49,7 @@ declare const partialAnalogOutputConfiguration: Omit<v.ObjectSchema<{
|
|
|
49
49
|
}>;
|
|
50
50
|
readonly '~run': (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
|
|
51
51
|
value?: number | undefined;
|
|
52
|
-
}, v.NumberIssue | v.ObjectIssue | v.
|
|
52
|
+
}, v.NumberIssue | v.ObjectIssue | v.MaxValueIssue<number, 24> | v.MinValueIssue<number, 0>>;
|
|
53
53
|
readonly '~types'?: {
|
|
54
54
|
readonly input: {
|
|
55
55
|
value?: number | undefined;
|
|
@@ -57,21 +57,21 @@ declare const partialAnalogOutputConfiguration: Omit<v.ObjectSchema<{
|
|
|
57
57
|
readonly output: {
|
|
58
58
|
value?: number | undefined;
|
|
59
59
|
};
|
|
60
|
-
readonly issue: v.NumberIssue | v.ObjectIssue | v.
|
|
60
|
+
readonly issue: v.NumberIssue | v.ObjectIssue | v.MaxValueIssue<number, 24> | v.MinValueIssue<number, 0>;
|
|
61
61
|
} | undefined;
|
|
62
62
|
};
|
|
63
63
|
type PartialAnalogOutputConfiguration = v.InferOutput<typeof partialAnalogOutputConfiguration>;
|
|
64
64
|
declare const partialDigitalInputConfiguration: Omit<v.ObjectSchema<{
|
|
65
65
|
readonly mode: v.LiteralSchema<"digital", undefined>;
|
|
66
66
|
readonly direction: v.LiteralSchema<"input", undefined>;
|
|
67
|
-
readonly vil: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -
|
|
68
|
-
readonly vih: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -
|
|
67
|
+
readonly vil: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -25, undefined>, v.MaxValueAction<number, 25, undefined>]>;
|
|
68
|
+
readonly vih: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -25, undefined>, v.MaxValueAction<number, 25, undefined>]>;
|
|
69
69
|
}, undefined>, "~standard" | "~types" | "~run" | "entries"> & {
|
|
70
70
|
readonly entries: Omit<{
|
|
71
71
|
readonly mode: v.LiteralSchema<"digital", undefined>;
|
|
72
72
|
readonly direction: v.LiteralSchema<"input", undefined>;
|
|
73
|
-
readonly vil: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -
|
|
74
|
-
readonly vih: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -
|
|
73
|
+
readonly vil: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -25, undefined>, v.MaxValueAction<number, 25, undefined>]>;
|
|
74
|
+
readonly vih: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -25, undefined>, v.MaxValueAction<number, 25, undefined>]>;
|
|
75
75
|
}, "mode" | "direction">;
|
|
76
76
|
readonly '~standard': v.StandardProps<{
|
|
77
77
|
vil: number;
|
|
@@ -83,7 +83,7 @@ declare const partialDigitalInputConfiguration: Omit<v.ObjectSchema<{
|
|
|
83
83
|
readonly '~run': (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
|
|
84
84
|
vil: number;
|
|
85
85
|
vih: number;
|
|
86
|
-
}, v.NumberIssue | v.
|
|
86
|
+
}, v.NumberIssue | v.MinValueIssue<number, -25> | v.MaxValueIssue<number, 25> | v.ObjectIssue>;
|
|
87
87
|
readonly '~types'?: {
|
|
88
88
|
readonly input: {
|
|
89
89
|
vil: number;
|
|
@@ -93,18 +93,18 @@ declare const partialDigitalInputConfiguration: Omit<v.ObjectSchema<{
|
|
|
93
93
|
vil: number;
|
|
94
94
|
vih: number;
|
|
95
95
|
};
|
|
96
|
-
readonly issue: v.NumberIssue | v.
|
|
96
|
+
readonly issue: v.NumberIssue | v.MinValueIssue<number, -25> | v.MaxValueIssue<number, 25> | v.ObjectIssue;
|
|
97
97
|
} | undefined;
|
|
98
98
|
};
|
|
99
99
|
type PartialDigitalInputConfiguration = v.InferOutput<typeof partialDigitalInputConfiguration>;
|
|
100
|
-
declare const partialDigitalOutputConfiguration: Omit<v.ObjectSchema<{
|
|
100
|
+
declare const partialDigitalOutputConfiguration: Omit<Omit<v.ObjectSchema<{
|
|
101
101
|
readonly mode: v.LiteralSchema<"digital", undefined>;
|
|
102
102
|
readonly direction: v.LiteralSchema<"output", undefined>;
|
|
103
103
|
readonly value: v.BooleanSchema<undefined>;
|
|
104
104
|
readonly vol: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 24, undefined>]>;
|
|
105
105
|
readonly voh: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 24, undefined>]>;
|
|
106
|
-
readonly vil: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -
|
|
107
|
-
readonly vih: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -
|
|
106
|
+
readonly vil: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -25, undefined>, v.MaxValueAction<number, 25, undefined>]>;
|
|
107
|
+
readonly vih: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -25, undefined>, v.MaxValueAction<number, 25, undefined>]>;
|
|
108
108
|
}, undefined>, "~standard" | "~types" | "~run" | "entries"> & {
|
|
109
109
|
readonly entries: Omit<{
|
|
110
110
|
readonly mode: v.LiteralSchema<"digital", undefined>;
|
|
@@ -112,8 +112,8 @@ declare const partialDigitalOutputConfiguration: Omit<v.ObjectSchema<{
|
|
|
112
112
|
readonly value: v.BooleanSchema<undefined>;
|
|
113
113
|
readonly vol: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 24, undefined>]>;
|
|
114
114
|
readonly voh: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 24, undefined>]>;
|
|
115
|
-
readonly vil: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -
|
|
116
|
-
readonly vih: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -
|
|
115
|
+
readonly vil: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -25, undefined>, v.MaxValueAction<number, 25, undefined>]>;
|
|
116
|
+
readonly vih: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -25, undefined>, v.MaxValueAction<number, 25, undefined>]>;
|
|
117
117
|
}, "mode" | "direction">;
|
|
118
118
|
readonly '~standard': v.StandardProps<{
|
|
119
119
|
value: boolean;
|
|
@@ -134,7 +134,7 @@ declare const partialDigitalOutputConfiguration: Omit<v.ObjectSchema<{
|
|
|
134
134
|
vih: number;
|
|
135
135
|
vol: number;
|
|
136
136
|
voh: number;
|
|
137
|
-
}, v.BooleanIssue | v.NumberIssue | v.
|
|
137
|
+
}, v.BooleanIssue | v.NumberIssue | v.MinValueIssue<number, -25> | v.MaxValueIssue<number, 25> | v.ObjectIssue | v.MaxValueIssue<number, 24> | v.MinValueIssue<number, 0>>;
|
|
138
138
|
readonly '~types'?: {
|
|
139
139
|
readonly input: {
|
|
140
140
|
value: boolean;
|
|
@@ -150,7 +150,52 @@ declare const partialDigitalOutputConfiguration: Omit<v.ObjectSchema<{
|
|
|
150
150
|
vol: number;
|
|
151
151
|
voh: number;
|
|
152
152
|
};
|
|
153
|
-
readonly issue: v.BooleanIssue | v.NumberIssue | v.
|
|
153
|
+
readonly issue: v.BooleanIssue | v.NumberIssue | v.MinValueIssue<number, -25> | v.MaxValueIssue<number, 25> | v.ObjectIssue | v.MaxValueIssue<number, 24> | v.MinValueIssue<number, 0>;
|
|
154
|
+
} | undefined;
|
|
155
|
+
}, "~standard" | "~types" | "~run" | "entries"> & {
|
|
156
|
+
readonly entries: {
|
|
157
|
+
readonly value: v.BooleanSchema<undefined>;
|
|
158
|
+
readonly vil: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -25, undefined>, v.MaxValueAction<number, 25, undefined>]>, undefined>;
|
|
159
|
+
readonly vih: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -25, undefined>, v.MaxValueAction<number, 25, undefined>]>, undefined>;
|
|
160
|
+
readonly vol: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 24, undefined>]>;
|
|
161
|
+
readonly voh: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 24, undefined>]>;
|
|
162
|
+
};
|
|
163
|
+
readonly '~standard': v.StandardProps<{
|
|
164
|
+
value: boolean;
|
|
165
|
+
vil?: number | undefined;
|
|
166
|
+
vih?: number | undefined;
|
|
167
|
+
vol: number;
|
|
168
|
+
voh: number;
|
|
169
|
+
}, {
|
|
170
|
+
value: boolean;
|
|
171
|
+
vil?: number | undefined;
|
|
172
|
+
vih?: number | undefined;
|
|
173
|
+
vol: number;
|
|
174
|
+
voh: number;
|
|
175
|
+
}>;
|
|
176
|
+
readonly '~run': (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
|
|
177
|
+
value: boolean;
|
|
178
|
+
vil?: number | undefined;
|
|
179
|
+
vih?: number | undefined;
|
|
180
|
+
vol: number;
|
|
181
|
+
voh: number;
|
|
182
|
+
}, v.BooleanIssue | v.NumberIssue | v.MinValueIssue<number, -25> | v.MaxValueIssue<number, 25> | v.ObjectIssue | v.MaxValueIssue<number, 24> | v.MinValueIssue<number, 0>>;
|
|
183
|
+
readonly '~types'?: {
|
|
184
|
+
readonly input: {
|
|
185
|
+
value: boolean;
|
|
186
|
+
vil?: number | undefined;
|
|
187
|
+
vih?: number | undefined;
|
|
188
|
+
vol: number;
|
|
189
|
+
voh: number;
|
|
190
|
+
};
|
|
191
|
+
readonly output: {
|
|
192
|
+
value: boolean;
|
|
193
|
+
vil?: number | undefined;
|
|
194
|
+
vih?: number | undefined;
|
|
195
|
+
vol: number;
|
|
196
|
+
voh: number;
|
|
197
|
+
};
|
|
198
|
+
readonly issue: v.BooleanIssue | v.NumberIssue | v.MinValueIssue<number, -25> | v.MaxValueIssue<number, 25> | v.ObjectIssue | v.MaxValueIssue<number, 24> | v.MinValueIssue<number, 0>;
|
|
154
199
|
} | undefined;
|
|
155
200
|
};
|
|
156
201
|
type PartialDigitalOutputConfiguration = v.InferOutput<typeof partialDigitalOutputConfiguration>;
|
|
@@ -253,4 +298,4 @@ declare class AnalogIO {
|
|
|
253
298
|
}
|
|
254
299
|
//#endregion
|
|
255
300
|
export { DigitalInputConfiguration as a, PartialAnalogOutputConfiguration as c, SyncConfiguration as d, DigitalIO as i, PartialDigitalInputConfiguration as l, AnalogInputConfiguration as n, DigitalOutputConfiguration as o, AnalogOutputConfiguration as r, GpioApi as s, AnalogIO as t, PartialDigitalOutputConfiguration as u };
|
|
256
|
-
//# sourceMappingURL=gpio-
|
|
301
|
+
//# sourceMappingURL=gpio-CaoUf_cd.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gpio-CaoUf_cd.d.cts","names":[],"sources":["../src/api/gpio.ts"],"sourcesContent":[],"mappings":"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"}
|
package/build/gpio.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`./common-
|
|
1
|
+
require(`./common-DBMgtoTL.cjs`);const e=require(`./gpio-Bz0JdP3l.cjs`);exports.AnalogIO=e.t,exports.DigitalIO=e.n,exports.GpioApi=e.r;
|
package/build/gpio.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as AnalogOutputLevel } from "./common-
|
|
2
|
-
import "./management-
|
|
3
|
-
import { a as DigitalInputConfiguration, c as PartialAnalogOutputConfiguration, d as SyncConfiguration, i as DigitalIO, l as PartialDigitalInputConfiguration, n as AnalogInputConfiguration, o as DigitalOutputConfiguration, r as AnalogOutputConfiguration, s as GpioApi, t as AnalogIO, u as PartialDigitalOutputConfiguration } from "./gpio-
|
|
1
|
+
import { t as AnalogOutputLevel } from "./common-DAOxX-Zx.cjs";
|
|
2
|
+
import "./management-BIDVdvlQ.cjs";
|
|
3
|
+
import { a as DigitalInputConfiguration, c as PartialAnalogOutputConfiguration, d as SyncConfiguration, i as DigitalIO, l as PartialDigitalInputConfiguration, n as AnalogInputConfiguration, o as DigitalOutputConfiguration, r as AnalogOutputConfiguration, s as GpioApi, t as AnalogIO, u as PartialDigitalOutputConfiguration } from "./gpio-CaoUf_cd.cjs";
|
|
4
4
|
export { AnalogIO, AnalogInputConfiguration, AnalogOutputConfiguration, AnalogOutputLevel, DigitalIO, DigitalInputConfiguration, DigitalOutputConfiguration, GpioApi, PartialAnalogOutputConfiguration, PartialDigitalInputConfiguration, PartialDigitalOutputConfiguration, SyncConfiguration };
|
package/build/gpio.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as AnalogOutputLevel } from "./common-
|
|
2
|
-
import "./management-
|
|
3
|
-
import { a as DigitalInputConfiguration, c as PartialAnalogOutputConfiguration, d as SyncConfiguration, i as DigitalIO, l as PartialDigitalInputConfiguration, n as AnalogInputConfiguration, o as DigitalOutputConfiguration, r as AnalogOutputConfiguration, s as GpioApi, t as AnalogIO, u as PartialDigitalOutputConfiguration } from "./gpio-
|
|
1
|
+
import { t as AnalogOutputLevel } from "./common-SiysH9tt.mjs";
|
|
2
|
+
import "./management-CwNeejKZ.mjs";
|
|
3
|
+
import { a as DigitalInputConfiguration, c as PartialAnalogOutputConfiguration, d as SyncConfiguration, i as DigitalIO, l as PartialDigitalInputConfiguration, n as AnalogInputConfiguration, o as DigitalOutputConfiguration, r as AnalogOutputConfiguration, s as GpioApi, t as AnalogIO, u as PartialDigitalOutputConfiguration } from "./gpio-91G-W2m3.mjs";
|
|
4
4
|
export { AnalogIO, AnalogInputConfiguration, AnalogOutputConfiguration, AnalogOutputLevel, DigitalIO, DigitalInputConfiguration, DigitalOutputConfiguration, GpioApi, PartialAnalogOutputConfiguration, PartialDigitalInputConfiguration, PartialDigitalOutputConfiguration, SyncConfiguration };
|
package/build/gpio.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./common-
|
|
1
|
+
import"./common-B6_Yo59b.mjs";import{n as e,r as t,t as n}from"./gpio-CGsMbcQN.mjs";export{n as AnalogIO,e as DigitalIO,t as GpioApi};
|
|
@@ -17,7 +17,7 @@ declare const progress: v.ObjectSchema<{
|
|
|
17
17
|
}, undefined>;
|
|
18
18
|
type Progress = v.InferOutput<typeof progress>;
|
|
19
19
|
declare const playbackConfiguration: v.ObjectSchema<{
|
|
20
|
-
readonly sound_id: v.PicklistSchema<["
|
|
20
|
+
readonly sound_id: v.PicklistSchema<["success", "warning", "failure", "notification_1", "notification_2", "imperial_march"], undefined>;
|
|
21
21
|
readonly volume: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 100, undefined>]>;
|
|
22
22
|
}, undefined>;
|
|
23
23
|
type PlaybackConfiguration = v.InferOutput<typeof playbackConfiguration>;
|
|
@@ -132,4 +132,4 @@ declare class Knob {
|
|
|
132
132
|
}
|
|
133
133
|
//#endregion
|
|
134
134
|
export { KnobEvent as a, ProgressValue as c, Knob as i, Screen as l, Color as n, PlaybackConfiguration as o, HmiApi as r, Progress as s, Audio as t, ScreenText as u };
|
|
135
|
-
//# sourceMappingURL=hmi-
|
|
135
|
+
//# sourceMappingURL=hmi-BSBsQPEN.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hmi-
|
|
1
|
+
{"version":3,"file":"hmi-BSBsQPEN.d.mts","names":[],"sources":["../src/api/hmi.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import*as e from"valibot";const t=e.pipe(e.string(),e.maxLength(1024)),n=e.object({text:t}),r=e.optional(e.pipe(e.string(),e.length(7),e.hexColor())),i=e.object({text:r,progress:r,background:r}),a=e.pipe(e.number(),e.minValue(0),e.maxValue(100)),o=e.object({progress:a}),s=e.object({sound_id:e.picklist([`success`,`warning`,`failure`,`notification_1`,`notification_2`,`imperial_march`]),volume:e.pipe(e.number(),e.minValue(0),e.maxValue(100))}),c=e.object({button_pressed:e.boolean(),button_held:e.boolean(),rotation_delta:e.number()});e.omit(c,[`button_held`]);var l=class{constructor(e){this.fetch=e}reset(){return this.fetch(`/hmi/reset`,{method:`POST`,parseResponse:()=>{}})}screen(){return new u(this.fetch)}audio(){return new d(this.fetch)}knob(){return new f(this.fetch)}},u=class{constructor(e){this.fetch=e}async print(t){return(await this.fetch(`/hmi/screen/text`,{method:`POST`,body:e.parse(n,{text:t}),schema:n})).text}colors(t){return this.fetch(`/hmi/screen/colors`,{method:`PATCH`,body:e.parse(i,t),schema:i})}async progress(t){return t==0?await this.fetch(`/hmi/screen/progress`,{method:`DELETE`,parseResponse:()=>({progress:0})}):this.fetch(`/hmi/screen/progress`,{method:`PUT`,body:e.parse(o,{progress:t}),schema:o})}clear(){return this.fetch(`/hmi/screen/clear`,{method:`POST`,parseResponse:()=>{}})}},d=class{constructor(e){this.fetch=e}async play(t){return this.fetch(`/hmi/speaker/play`,{method:`POST`,body:e.parse(s,t),schema:s})}},f=class{constructor(e){this.fetch=e}get_knob_event=()=>this.fetch(`/hmi/knob/get_knob_event`,{schema:c});is_button_pressed=async()=>(await this.get_knob_event()).button_held;async wait_event(e){await this.get_knob_event();let t=0,n=Math.min(50,e/10),r=Date.now();for(;Date.now()-r<e;){let e=await this.get_knob_event();if(t+=e.rotation_delta,e.button_pressed||Math.abs(t)>=4)return{button_pressed:e.button_pressed,rotation_delta:Math.sign(t)};await new Promise(e=>setTimeout(e,n))}return null}};export{u as i,l as n,f as r,d as t};
|
|
2
|
+
//# sourceMappingURL=hmi-CocSngQM.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hmi-CocSngQM.mjs","names":["fetch: UpFetch"],"sources":["../src/api/hmi.ts"],"sourcesContent":["import type { UpFetch } from 'up-fetch';\nimport * as v from 'valibot';\n\nconst screenText = v.pipe(v.string(), v.maxLength(1024));\nexport type ScreenText = v.InferOutput<typeof screenText>;\n\nconst text = v.object({ text: screenText });\ntype Text = v.InferOutput<typeof text>;\n\nconst optionalHexColor = v.optional(v.pipe(v.string(), v.length(7), v.hexColor()));\nconst color = v.object({\n text: optionalHexColor,\n progress: optionalHexColor,\n background: optionalHexColor,\n});\nexport type Color = v.InferOutput<typeof color>;\n\nconst progressValue = v.pipe(v.number(), v.minValue(0), v.maxValue(100));\nexport type ProgressValue = v.InferOutput<typeof progressValue>;\nconst progress = v.object({ progress: progressValue });\nexport type Progress = v.InferOutput<typeof progress>;\n\nconst playbackConfiguration = v.object({\n sound_id: v.picklist(\n ['success', 'warning', 'failure', 'notification_1', 'notification_2',\n 'imperial_march'] as const,\n ),\n volume: v.pipe(v.number(), v.minValue(0), v.maxValue(100)),\n});\nexport type PlaybackConfiguration = v.InferOutput<typeof playbackConfiguration>;\n\nconst internalKnobEvent = v.object({\n button_pressed: v.boolean(),\n button_held: v.boolean(),\n rotation_delta: v.number(),\n});\nconst knobEvent = v.omit(internalKnobEvent, ['button_held']);\nexport type KnobEvent = v.InferOutput<typeof knobEvent>;\n\n/** @hideconstructor */\nexport class HmiApi {\n constructor(private readonly fetch: UpFetch) {}\n\n /**\n * Resets the HMI.\n */\n reset(): Promise<void> {\n return this.fetch('/hmi/reset', { method: 'POST', parseResponse: () => {} });\n }\n\n /**\n * Access the screen API.\n * @returns The screen instance.\n */\n screen(): Screen {\n return new Screen(this.fetch);\n }\n\n /**\n * Access the audio API.\n * @returns The audio instance.\n */\n audio(): Audio {\n return new Audio(this.fetch);\n }\n\n /**\n * Access the knob API.\n * @returns The knob instance.\n */\n knob(): Knob {\n return new Knob(this.fetch);\n }\n}\n\n/** @hideconstructor */\nexport class Screen {\n constructor(private readonly fetch: UpFetch) {}\n\n /**\n * Prints text to the screen.\n * @param data The text to print.\n * @returns The printed text.\n */\n async print(data: ScreenText): Promise<string> {\n return (await this.fetch('/hmi/screen/text', {\n method: 'POST',\n body: v.parse(text, { text: data } satisfies Text),\n schema: text,\n }))\n .text;\n }\n\n /**\n * Sets the screen colors.\n * @param colors The colors to set.\n * @returns The updated colors.\n */\n colors(colors: Color): Promise<Color> {\n return this.fetch('/hmi/screen/colors', {\n method: 'PATCH',\n body: v.parse(color, colors satisfies Color),\n schema: color,\n });\n }\n\n /**\n * Sets the screen progress.\n * @param data The progress value to set.\n * @returns The updated progress.\n */\n async progress(data: ProgressValue): Promise<Progress> {\n if (data == 0) {\n return await this.fetch('/hmi/screen/progress', {\n method: 'DELETE',\n parseResponse: () => ({ progress: 0 }),\n });\n }\n\n return this.fetch('/hmi/screen/progress', {\n method: 'PUT',\n body: v.parse(progress, { progress: data } satisfies Progress),\n schema: progress,\n });\n }\n\n /**\n * Clears the screen.\n */\n clear(): Promise<void> {\n return this.fetch('/hmi/screen/clear', { method: 'POST', parseResponse: () => {} });\n }\n}\n\n/** @hideconstructor */\nexport class Audio {\n constructor(private readonly fetch: UpFetch) {}\n\n /**\n * Plays a sound.\n * @param config The configuration (sound_id, volume).\n * @returns The play configuration.\n */\n async play(config: PlaybackConfiguration): Promise<PlaybackConfiguration> {\n return this.fetch('/hmi/speaker/play', {\n method: 'POST',\n body: v.parse(playbackConfiguration, config),\n schema: playbackConfiguration,\n });\n }\n}\n\n/** @hideconstructor */\nexport class Knob {\n constructor(private readonly fetch: UpFetch) {}\n\n private get_knob_event = () =>\n this.fetch('/hmi/knob/get_knob_event', { schema: internalKnobEvent });\n\n is_button_pressed = async () => (await this.get_knob_event()).button_held;\n\n /**\n * Waits for a knob event and returns it.\n * @param timeout_ms The timeout in milliseconds.\n * @returns The knob event or null if the timeout was reached.\n */\n async wait_event(timeout_ms: number): Promise<KnobEvent | null> {\n await this.get_knob_event(); // Discard any previous events\n let delta = 0;\n\n const interval = Math.min(50, timeout_ms / 10);\n\n const startTime = Date.now();\n while (Date.now() - startTime < timeout_ms) {\n const knobEvent = await this.get_knob_event();\n delta += knobEvent.rotation_delta;\n\n if (knobEvent.button_pressed || Math.abs(delta) >= 4) {\n return { button_pressed: knobEvent.button_pressed, rotation_delta: Math.sign(delta) };\n }\n await new Promise((resolve) => setTimeout(resolve, interval));\n }\n\n return null;\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require(`./chunk-Bmb41Sf3.cjs`);let t=require(`valibot`);t=e.t(t);const n=t.pipe(t.string(),t.maxLength(1024)),r=t.object({text:n}),i=t.optional(t.pipe(t.string(),t.length(7),t.hexColor())),a=t.object({text:i,progress:i,background:i}),o=t.pipe(t.number(),t.minValue(0),t.maxValue(100)),s=t.object({progress:o}),c=t.object({sound_id:t.picklist([`success`,`warning`,`failure`,`notification_1`,`notification_2`,`imperial_march`]),volume:t.pipe(t.number(),t.minValue(0),t.maxValue(100))}),l=t.object({button_pressed:t.boolean(),button_held:t.boolean(),rotation_delta:t.number()});t.omit(l,[`button_held`]);var u=class{constructor(e){this.fetch=e}reset(){return this.fetch(`/hmi/reset`,{method:`POST`,parseResponse:()=>{}})}screen(){return new d(this.fetch)}audio(){return new f(this.fetch)}knob(){return new p(this.fetch)}},d=class{constructor(e){this.fetch=e}async print(e){return(await this.fetch(`/hmi/screen/text`,{method:`POST`,body:t.parse(r,{text:e}),schema:r})).text}colors(e){return this.fetch(`/hmi/screen/colors`,{method:`PATCH`,body:t.parse(a,e),schema:a})}async progress(e){return e==0?await this.fetch(`/hmi/screen/progress`,{method:`DELETE`,parseResponse:()=>({progress:0})}):this.fetch(`/hmi/screen/progress`,{method:`PUT`,body:t.parse(s,{progress:e}),schema:s})}clear(){return this.fetch(`/hmi/screen/clear`,{method:`POST`,parseResponse:()=>{}})}},f=class{constructor(e){this.fetch=e}async play(e){return this.fetch(`/hmi/speaker/play`,{method:`POST`,body:t.parse(c,e),schema:c})}},p=class{constructor(e){this.fetch=e}get_knob_event=()=>this.fetch(`/hmi/knob/get_knob_event`,{schema:l});is_button_pressed=async()=>(await this.get_knob_event()).button_held;async wait_event(e){await this.get_knob_event();let t=0,n=Math.min(50,e/10),r=Date.now();for(;Date.now()-r<e;){let e=await this.get_knob_event();if(t+=e.rotation_delta,e.button_pressed||Math.abs(t)>=4)return{button_pressed:e.button_pressed,rotation_delta:Math.sign(t)};await new Promise(e=>setTimeout(e,n))}return null}};Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return f}});
|
|
2
|
+
//# sourceMappingURL=hmi-DCplypi6.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hmi-DCplypi6.cjs","names":["v","fetch: UpFetch"],"sources":["../src/api/hmi.ts"],"sourcesContent":["import type { UpFetch } from 'up-fetch';\nimport * as v from 'valibot';\n\nconst screenText = v.pipe(v.string(), v.maxLength(1024));\nexport type ScreenText = v.InferOutput<typeof screenText>;\n\nconst text = v.object({ text: screenText });\ntype Text = v.InferOutput<typeof text>;\n\nconst optionalHexColor = v.optional(v.pipe(v.string(), v.length(7), v.hexColor()));\nconst color = v.object({\n text: optionalHexColor,\n progress: optionalHexColor,\n background: optionalHexColor,\n});\nexport type Color = v.InferOutput<typeof color>;\n\nconst progressValue = v.pipe(v.number(), v.minValue(0), v.maxValue(100));\nexport type ProgressValue = v.InferOutput<typeof progressValue>;\nconst progress = v.object({ progress: progressValue });\nexport type Progress = v.InferOutput<typeof progress>;\n\nconst playbackConfiguration = v.object({\n sound_id: v.picklist(\n ['success', 'warning', 'failure', 'notification_1', 'notification_2',\n 'imperial_march'] as const,\n ),\n volume: v.pipe(v.number(), v.minValue(0), v.maxValue(100)),\n});\nexport type PlaybackConfiguration = v.InferOutput<typeof playbackConfiguration>;\n\nconst internalKnobEvent = v.object({\n button_pressed: v.boolean(),\n button_held: v.boolean(),\n rotation_delta: v.number(),\n});\nconst knobEvent = v.omit(internalKnobEvent, ['button_held']);\nexport type KnobEvent = v.InferOutput<typeof knobEvent>;\n\n/** @hideconstructor */\nexport class HmiApi {\n constructor(private readonly fetch: UpFetch) {}\n\n /**\n * Resets the HMI.\n */\n reset(): Promise<void> {\n return this.fetch('/hmi/reset', { method: 'POST', parseResponse: () => {} });\n }\n\n /**\n * Access the screen API.\n * @returns The screen instance.\n */\n screen(): Screen {\n return new Screen(this.fetch);\n }\n\n /**\n * Access the audio API.\n * @returns The audio instance.\n */\n audio(): Audio {\n return new Audio(this.fetch);\n }\n\n /**\n * Access the knob API.\n * @returns The knob instance.\n */\n knob(): Knob {\n return new Knob(this.fetch);\n }\n}\n\n/** @hideconstructor */\nexport class Screen {\n constructor(private readonly fetch: UpFetch) {}\n\n /**\n * Prints text to the screen.\n * @param data The text to print.\n * @returns The printed text.\n */\n async print(data: ScreenText): Promise<string> {\n return (await this.fetch('/hmi/screen/text', {\n method: 'POST',\n body: v.parse(text, { text: data } satisfies Text),\n schema: text,\n }))\n .text;\n }\n\n /**\n * Sets the screen colors.\n * @param colors The colors to set.\n * @returns The updated colors.\n */\n colors(colors: Color): Promise<Color> {\n return this.fetch('/hmi/screen/colors', {\n method: 'PATCH',\n body: v.parse(color, colors satisfies Color),\n schema: color,\n });\n }\n\n /**\n * Sets the screen progress.\n * @param data The progress value to set.\n * @returns The updated progress.\n */\n async progress(data: ProgressValue): Promise<Progress> {\n if (data == 0) {\n return await this.fetch('/hmi/screen/progress', {\n method: 'DELETE',\n parseResponse: () => ({ progress: 0 }),\n });\n }\n\n return this.fetch('/hmi/screen/progress', {\n method: 'PUT',\n body: v.parse(progress, { progress: data } satisfies Progress),\n schema: progress,\n });\n }\n\n /**\n * Clears the screen.\n */\n clear(): Promise<void> {\n return this.fetch('/hmi/screen/clear', { method: 'POST', parseResponse: () => {} });\n }\n}\n\n/** @hideconstructor */\nexport class Audio {\n constructor(private readonly fetch: UpFetch) {}\n\n /**\n * Plays a sound.\n * @param config The configuration (sound_id, volume).\n * @returns The play configuration.\n */\n async play(config: PlaybackConfiguration): Promise<PlaybackConfiguration> {\n return this.fetch('/hmi/speaker/play', {\n method: 'POST',\n body: v.parse(playbackConfiguration, config),\n schema: playbackConfiguration,\n });\n }\n}\n\n/** @hideconstructor */\nexport class Knob {\n constructor(private readonly fetch: UpFetch) {}\n\n private get_knob_event = () =>\n this.fetch('/hmi/knob/get_knob_event', { schema: internalKnobEvent });\n\n is_button_pressed = async () => (await this.get_knob_event()).button_held;\n\n /**\n * Waits for a knob event and returns it.\n * @param timeout_ms The timeout in milliseconds.\n * @returns The knob event or null if the timeout was reached.\n */\n async wait_event(timeout_ms: number): Promise<KnobEvent | null> {\n await this.get_knob_event(); // Discard any previous events\n let delta = 0;\n\n const interval = Math.min(50, timeout_ms / 10);\n\n const startTime = Date.now();\n while (Date.now() - startTime < timeout_ms) {\n const knobEvent = await this.get_knob_event();\n delta += knobEvent.rotation_delta;\n\n if (knobEvent.button_pressed || Math.abs(delta) >= 4) {\n return { button_pressed: knobEvent.button_pressed, rotation_delta: Math.sign(delta) };\n }\n await new Promise((resolve) => setTimeout(resolve, interval));\n }\n\n return null;\n }\n}\n"],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ declare const progress: v.ObjectSchema<{
|
|
|
17
17
|
}, undefined>;
|
|
18
18
|
type Progress = v.InferOutput<typeof progress>;
|
|
19
19
|
declare const playbackConfiguration: v.ObjectSchema<{
|
|
20
|
-
readonly sound_id: v.PicklistSchema<["
|
|
20
|
+
readonly sound_id: v.PicklistSchema<["success", "warning", "failure", "notification_1", "notification_2", "imperial_march"], undefined>;
|
|
21
21
|
readonly volume: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 100, undefined>]>;
|
|
22
22
|
}, undefined>;
|
|
23
23
|
type PlaybackConfiguration = v.InferOutput<typeof playbackConfiguration>;
|
|
@@ -132,4 +132,4 @@ declare class Knob {
|
|
|
132
132
|
}
|
|
133
133
|
//#endregion
|
|
134
134
|
export { KnobEvent as a, ProgressValue as c, Knob as i, Screen as l, Color as n, PlaybackConfiguration as o, HmiApi as r, Progress as s, Audio as t, ScreenText as u };
|
|
135
|
-
//# sourceMappingURL=hmi-
|
|
135
|
+
//# sourceMappingURL=hmi-Des_V5c0.d.cts.map
|