@switchbot/openapi-cli 1.2.0 → 1.3.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/dist/commands/batch.js +24 -14
- package/dist/commands/batch.js.map +1 -1
- package/dist/commands/device-meta.d.ts +2 -0
- package/dist/commands/device-meta.js +142 -0
- package/dist/commands/device-meta.js.map +1 -0
- package/dist/commands/devices.js +42 -9
- package/dist/commands/devices.js.map +1 -1
- package/dist/commands/expand.d.ts +2 -0
- package/dist/commands/expand.js +195 -0
- package/dist/commands/expand.js.map +1 -0
- package/dist/commands/plan.d.ts +2 -1
- package/dist/commands/plan.js +29 -13
- package/dist/commands/plan.js.map +1 -1
- package/dist/commands/watch.js +3 -1
- package/dist/commands/watch.js.map +1 -1
- package/dist/devices/cache.d.ts +5 -1
- package/dist/devices/cache.js +40 -6
- package/dist/devices/cache.js.map +1 -1
- package/dist/devices/device-meta.d.ts +15 -0
- package/dist/devices/device-meta.js +57 -0
- package/dist/devices/device-meta.js.map +1 -0
- package/dist/lib/devices.js +1 -1
- package/dist/lib/devices.js.map +1 -1
- package/dist/utils/name-resolver.d.ts +17 -0
- package/dist/utils/name-resolver.js +79 -0
- package/dist/utils/name-resolver.js.map +1 -0
- package/dist/utils/output.d.ts +7 -0
- package/dist/utils/output.js +29 -0
- package/dist/utils/output.js.map +1 -1
- package/dist/utils/quota.d.ts +2 -0
- package/dist/utils/quota.js +75 -5
- package/dist/utils/quota.js.map +1 -1
- package/dist/utils/string.d.ts +2 -0
- package/dist/utils/string.js +23 -0
- package/dist/utils/string.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import { handleError, isJsonMode, printJson, UsageError } from '../utils/output.js';
|
|
2
|
+
import { getCachedDevice } from '../devices/cache.js';
|
|
3
|
+
import { executeCommand, isDestructiveCommand, getDestructiveReason } from '../lib/devices.js';
|
|
4
|
+
import { isDryRun } from '../utils/flags.js';
|
|
5
|
+
import { DryRunSignal } from '../api/client.js';
|
|
6
|
+
// ---- Mapping tables --------------------------------------------------------
|
|
7
|
+
const AC_MODE_MAP = { auto: 1, cool: 2, dry: 3, fan: 4, heat: 5 };
|
|
8
|
+
const AC_FAN_MAP = { auto: 1, low: 2, mid: 3, high: 4 };
|
|
9
|
+
const CURTAIN_MODE_MAP = { default: 'ff', performance: '0', silent: '1' };
|
|
10
|
+
const RELAY_MODE_MAP = { toggle: 0, edge: 1, detached: 2, momentary: 3 };
|
|
11
|
+
const BLIND_DIRECTION = new Set(['up', 'down']);
|
|
12
|
+
// ---- Translators -----------------------------------------------------------
|
|
13
|
+
function buildAcSetAll(opts) {
|
|
14
|
+
if (!opts.temp)
|
|
15
|
+
throw new UsageError('--temp is required for setAll (e.g. --temp 26)');
|
|
16
|
+
if (!opts.mode)
|
|
17
|
+
throw new UsageError('--mode is required for setAll (auto|cool|dry|fan|heat)');
|
|
18
|
+
if (!opts.fan)
|
|
19
|
+
throw new UsageError('--fan is required for setAll (auto|low|mid|high)');
|
|
20
|
+
if (!opts.power)
|
|
21
|
+
throw new UsageError('--power is required for setAll (on|off)');
|
|
22
|
+
const temp = parseInt(opts.temp, 10);
|
|
23
|
+
if (!Number.isFinite(temp) || temp < 16 || temp > 30) {
|
|
24
|
+
throw new UsageError(`--temp must be an integer between 16 and 30 (got "${opts.temp}")`);
|
|
25
|
+
}
|
|
26
|
+
const modeInt = AC_MODE_MAP[opts.mode.toLowerCase()];
|
|
27
|
+
if (modeInt === undefined) {
|
|
28
|
+
throw new UsageError(`--mode must be one of: auto, cool, dry, fan, heat (got "${opts.mode}")`);
|
|
29
|
+
}
|
|
30
|
+
const fanInt = AC_FAN_MAP[opts.fan.toLowerCase()];
|
|
31
|
+
if (fanInt === undefined) {
|
|
32
|
+
throw new UsageError(`--fan must be one of: auto, low, mid, high (got "${opts.fan}")`);
|
|
33
|
+
}
|
|
34
|
+
const power = opts.power.toLowerCase();
|
|
35
|
+
if (power !== 'on' && power !== 'off') {
|
|
36
|
+
throw new UsageError(`--power must be "on" or "off" (got "${opts.power}")`);
|
|
37
|
+
}
|
|
38
|
+
return `${temp},${modeInt},${fanInt},${power}`;
|
|
39
|
+
}
|
|
40
|
+
function buildCurtainSetPosition(opts) {
|
|
41
|
+
if (!opts.position)
|
|
42
|
+
throw new UsageError('--position is required (0-100)');
|
|
43
|
+
const pos = parseInt(opts.position, 10);
|
|
44
|
+
if (!Number.isFinite(pos) || pos < 0 || pos > 100) {
|
|
45
|
+
throw new UsageError(`--position must be an integer between 0 and 100 (got "${opts.position}")`);
|
|
46
|
+
}
|
|
47
|
+
const modeStr = opts.mode ? CURTAIN_MODE_MAP[opts.mode.toLowerCase()] : 'ff';
|
|
48
|
+
if (modeStr === undefined) {
|
|
49
|
+
throw new UsageError(`--mode must be one of: default, performance, silent (got "${opts.mode}")`);
|
|
50
|
+
}
|
|
51
|
+
return `0,${modeStr},${pos}`;
|
|
52
|
+
}
|
|
53
|
+
function buildBlindTiltSetPosition(opts) {
|
|
54
|
+
if (!opts.direction)
|
|
55
|
+
throw new UsageError('--direction is required (up|down)');
|
|
56
|
+
if (!opts.angle)
|
|
57
|
+
throw new UsageError('--angle is required (0-100)');
|
|
58
|
+
const dir = opts.direction.toLowerCase();
|
|
59
|
+
if (!BLIND_DIRECTION.has(dir)) {
|
|
60
|
+
throw new UsageError(`--direction must be "up" or "down" (got "${opts.direction}")`);
|
|
61
|
+
}
|
|
62
|
+
const angle = parseInt(opts.angle, 10);
|
|
63
|
+
if (!Number.isFinite(angle) || angle < 0 || angle > 100) {
|
|
64
|
+
throw new UsageError(`--angle must be an integer between 0 and 100 (got "${opts.angle}")`);
|
|
65
|
+
}
|
|
66
|
+
return `${dir};${angle}`;
|
|
67
|
+
}
|
|
68
|
+
function buildRelaySetMode(opts) {
|
|
69
|
+
if (!opts.channel)
|
|
70
|
+
throw new UsageError('--channel is required (1 or 2)');
|
|
71
|
+
if (!opts.mode)
|
|
72
|
+
throw new UsageError('--mode is required (toggle|edge|detached|momentary)');
|
|
73
|
+
const ch = parseInt(opts.channel, 10);
|
|
74
|
+
if (ch !== 1 && ch !== 2) {
|
|
75
|
+
throw new UsageError(`--channel must be 1 or 2 (got "${opts.channel}")`);
|
|
76
|
+
}
|
|
77
|
+
const modeInt = RELAY_MODE_MAP[opts.mode.toLowerCase()];
|
|
78
|
+
if (modeInt === undefined) {
|
|
79
|
+
throw new UsageError(`--mode must be one of: toggle, edge, detached, momentary (got "${opts.mode}")`);
|
|
80
|
+
}
|
|
81
|
+
return `${ch};${modeInt}`;
|
|
82
|
+
}
|
|
83
|
+
// ---- Registration ----------------------------------------------------------
|
|
84
|
+
export function registerExpandCommand(devices) {
|
|
85
|
+
devices
|
|
86
|
+
.command('expand')
|
|
87
|
+
.description('Send a command with semantic flags instead of raw positional parameters')
|
|
88
|
+
.argument('<deviceId>', 'Target device ID from "devices list"')
|
|
89
|
+
.argument('<command>', 'Command name: setAll (AC), setPosition (Curtain/Blind Tilt), setMode (Relay Switch 2)')
|
|
90
|
+
.option('--temp <celsius>', 'AC setAll: temperature in Celsius (16-30)')
|
|
91
|
+
.option('--mode <mode>', 'AC: auto|cool|dry|fan|heat Curtain: default|performance|silent Relay: toggle|edge|detached|momentary')
|
|
92
|
+
.option('--fan <speed>', 'AC setAll: fan speed auto|low|mid|high')
|
|
93
|
+
.option('--power <state>', 'AC setAll: on|off')
|
|
94
|
+
.option('--position <percent>', 'Curtain setPosition: 0-100 (0=open, 100=closed)')
|
|
95
|
+
.option('--direction <dir>', 'Blind Tilt setPosition: up|down')
|
|
96
|
+
.option('--angle <percent>', 'Blind Tilt setPosition: 0-100 (0=closed, 100=open)')
|
|
97
|
+
.option('--channel <n>', 'Relay Switch 2 setMode: channel 1 or 2')
|
|
98
|
+
.option('--yes', 'Confirm destructive commands')
|
|
99
|
+
.addHelpText('after', `
|
|
100
|
+
Translates semantic flags into the wire parameter format, then sends the command.
|
|
101
|
+
|
|
102
|
+
Supported expansions:
|
|
103
|
+
|
|
104
|
+
Air Conditioner — setAll
|
|
105
|
+
--temp 26 --mode cool --fan low --power on → "26,2,2,on"
|
|
106
|
+
--mode values: auto | cool | dry | fan | heat
|
|
107
|
+
--fan values: auto | low | mid | high
|
|
108
|
+
|
|
109
|
+
Curtain / Curtain 3 — setPosition
|
|
110
|
+
--position 50 [--mode silent] → "0,1,50"
|
|
111
|
+
--mode values: default (ff) | performance (0) | silent (1)
|
|
112
|
+
|
|
113
|
+
Blind Tilt — setPosition
|
|
114
|
+
--direction up --angle 50 → "up;50"
|
|
115
|
+
|
|
116
|
+
Relay Switch 2PM — setMode
|
|
117
|
+
--channel 1 --mode edge → "1;1"
|
|
118
|
+
--mode values: toggle (0) | edge (1) | detached (2) | momentary (3)
|
|
119
|
+
|
|
120
|
+
Examples:
|
|
121
|
+
$ switchbot devices expand <acId> setAll --temp 26 --mode cool --fan low --power on
|
|
122
|
+
$ switchbot devices expand <curtainId> setPosition --position 50 --mode silent
|
|
123
|
+
$ switchbot devices expand <blindId> setPosition --direction up --angle 50
|
|
124
|
+
$ switchbot devices expand <relayId> setMode --channel 1 --mode edge
|
|
125
|
+
$ switchbot devices expand <acId> setAll --temp 22 --mode heat --fan auto --power on --dry-run
|
|
126
|
+
`)
|
|
127
|
+
.action(async (deviceId, command, options) => {
|
|
128
|
+
try {
|
|
129
|
+
const cached = getCachedDevice(deviceId);
|
|
130
|
+
const deviceType = cached?.type ?? '';
|
|
131
|
+
let parameter;
|
|
132
|
+
if (command === 'setAll') {
|
|
133
|
+
parameter = buildAcSetAll(options);
|
|
134
|
+
}
|
|
135
|
+
else if (command === 'setPosition') {
|
|
136
|
+
if (!cached) {
|
|
137
|
+
throw new UsageError(`Device ${deviceId} is not in the local cache — run 'switchbot devices list' first so 'expand' knows whether this is a Curtain or a Blind Tilt.`);
|
|
138
|
+
}
|
|
139
|
+
const isBlind = deviceType.startsWith('Blind Tilt');
|
|
140
|
+
parameter = isBlind
|
|
141
|
+
? buildBlindTiltSetPosition(options)
|
|
142
|
+
: buildCurtainSetPosition(options);
|
|
143
|
+
}
|
|
144
|
+
else if (command === 'setMode' && deviceType.startsWith('Relay Switch')) {
|
|
145
|
+
parameter = buildRelaySetMode(options);
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
throw new UsageError(`'expand' does not support "${command}" for device type "${deviceType || 'unknown'}". ` +
|
|
149
|
+
`Use 'switchbot devices command' to send raw parameters instead.`);
|
|
150
|
+
}
|
|
151
|
+
if (!options.yes && !isDryRun() && isDestructiveCommand(deviceType, command, 'command')) {
|
|
152
|
+
const reason = getDestructiveReason(deviceType, command, 'command');
|
|
153
|
+
if (isJsonMode()) {
|
|
154
|
+
console.error(JSON.stringify({ error: { code: 2, kind: 'guard',
|
|
155
|
+
message: `"${command}" on ${deviceType || 'device'} is destructive and requires --yes.`,
|
|
156
|
+
hint: reason ? `Re-run with --yes. Reason: ${reason}` : 'Re-run with --yes to confirm.',
|
|
157
|
+
} }));
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
console.error(`Refusing to run destructive command "${command}" without --yes.`);
|
|
161
|
+
if (reason)
|
|
162
|
+
console.error(`Reason: ${reason}`);
|
|
163
|
+
}
|
|
164
|
+
process.exit(2);
|
|
165
|
+
}
|
|
166
|
+
const body = await executeCommand(deviceId, command, parameter, 'command');
|
|
167
|
+
const isIr = cached?.category === 'ir';
|
|
168
|
+
if (isJsonMode()) {
|
|
169
|
+
const result = { ok: true, command, deviceId, parameter };
|
|
170
|
+
if (isIr)
|
|
171
|
+
result.subKind = 'ir-no-feedback';
|
|
172
|
+
if (body && typeof body === 'object' && Object.keys(body).length > 0)
|
|
173
|
+
result.response = body;
|
|
174
|
+
printJson(result);
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
console.log(`✓ Command sent: ${command} (${parameter})`);
|
|
178
|
+
if (isIr)
|
|
179
|
+
console.log(' Note: IR command sent — no device confirmation (fire-and-forget).');
|
|
180
|
+
}
|
|
181
|
+
catch (error) {
|
|
182
|
+
if (error instanceof DryRunSignal) {
|
|
183
|
+
if (isJsonMode()) {
|
|
184
|
+
printJson({ ok: true, dryRun: true, command, deviceId });
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
console.log(`◦ dry-run: ${command} would be sent to ${deviceId}`);
|
|
188
|
+
}
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
handleError(error);
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
//# sourceMappingURL=expand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expand.js","sourceRoot":"","sources":["../../src/commands/expand.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/plan.d.ts
CHANGED
package/dist/commands/plan.js
CHANGED
|
@@ -3,6 +3,7 @@ import { printJson, isJsonMode, handleError } from '../utils/output.js';
|
|
|
3
3
|
import { executeCommand, isDestructiveCommand } from '../lib/devices.js';
|
|
4
4
|
import { executeScene } from '../lib/scenes.js';
|
|
5
5
|
import { getCachedDevice } from '../devices/cache.js';
|
|
6
|
+
import { resolveDeviceId } from '../utils/name-resolver.js';
|
|
6
7
|
const PLAN_JSON_SCHEMA = {
|
|
7
8
|
$schema: 'https://json-schema.org/draft/2020-12/schema',
|
|
8
9
|
$id: 'https://switchbot.dev/plan-1.0.json',
|
|
@@ -19,10 +20,15 @@ const PLAN_JSON_SCHEMA = {
|
|
|
19
20
|
oneOf: [
|
|
20
21
|
{
|
|
21
22
|
type: 'object',
|
|
22
|
-
required: ['type', '
|
|
23
|
+
required: ['type', 'command'],
|
|
24
|
+
oneOf: [
|
|
25
|
+
{ required: ['deviceId'], not: { required: ['deviceName'] } },
|
|
26
|
+
{ required: ['deviceName'], not: { required: ['deviceId'] } },
|
|
27
|
+
],
|
|
23
28
|
properties: {
|
|
24
29
|
type: { const: 'command' },
|
|
25
30
|
deviceId: { type: 'string', minLength: 1 },
|
|
31
|
+
deviceName: { type: 'string', minLength: 1 },
|
|
26
32
|
command: { type: 'string', minLength: 1 },
|
|
27
33
|
parameter: {},
|
|
28
34
|
commandType: { enum: ['command', 'customize'] },
|
|
@@ -78,8 +84,17 @@ export function validatePlan(raw) {
|
|
|
78
84
|
const s = step;
|
|
79
85
|
switch (s.type) {
|
|
80
86
|
case 'command':
|
|
81
|
-
if (typeof s.deviceId !== 'string' || !s.deviceId) {
|
|
82
|
-
issues.push({ path: `${at}.deviceId`, message: 'must be a non-empty string' });
|
|
87
|
+
if (s.deviceId !== undefined && (typeof s.deviceId !== 'string' || !s.deviceId)) {
|
|
88
|
+
issues.push({ path: `${at}.deviceId`, message: 'must be a non-empty string when provided' });
|
|
89
|
+
}
|
|
90
|
+
if (s.deviceName !== undefined && (typeof s.deviceName !== 'string' || !s.deviceName)) {
|
|
91
|
+
issues.push({ path: `${at}.deviceName`, message: 'must be a non-empty string when provided' });
|
|
92
|
+
}
|
|
93
|
+
if (!s.deviceId && !s.deviceName) {
|
|
94
|
+
issues.push({ path: `${at}`, message: 'must have either "deviceId" or "deviceName"' });
|
|
95
|
+
}
|
|
96
|
+
if (s.deviceId && s.deviceName) {
|
|
97
|
+
issues.push({ path: `${at}`, message: '"deviceId" and "deviceName" cannot both be set' });
|
|
83
98
|
}
|
|
84
99
|
if (typeof s.command !== 'string' || !s.command) {
|
|
85
100
|
issues.push({ path: `${at}.command`, message: 'must be a non-empty string' });
|
|
@@ -264,64 +279,65 @@ Workflow:
|
|
|
264
279
|
continue;
|
|
265
280
|
}
|
|
266
281
|
// command
|
|
267
|
-
const
|
|
282
|
+
const resolvedDeviceId = resolveDeviceId(step.deviceId, step.deviceName);
|
|
283
|
+
const deviceType = getCachedDevice(resolvedDeviceId)?.type;
|
|
268
284
|
const commandType = step.commandType ?? 'command';
|
|
269
285
|
const destructive = isDestructiveCommand(deviceType, step.command, commandType);
|
|
270
286
|
if (destructive && !options.yes) {
|
|
271
287
|
out.results.push({
|
|
272
288
|
step: idx,
|
|
273
289
|
type: 'command',
|
|
274
|
-
deviceId:
|
|
290
|
+
deviceId: resolvedDeviceId,
|
|
275
291
|
command: step.command,
|
|
276
292
|
status: 'skipped',
|
|
277
293
|
error: 'destructive — rerun with --yes',
|
|
278
294
|
});
|
|
279
295
|
out.summary.skipped++;
|
|
280
296
|
if (!isJsonMode())
|
|
281
|
-
console.log(` ${idx}. ⚠ skipped ${step.command} on ${
|
|
297
|
+
console.log(` ${idx}. ⚠ skipped ${step.command} on ${resolvedDeviceId} (destructive — pass --yes)`);
|
|
282
298
|
if (!options.continueOnError)
|
|
283
299
|
break;
|
|
284
300
|
continue;
|
|
285
301
|
}
|
|
286
302
|
try {
|
|
287
|
-
await executeCommand(
|
|
303
|
+
await executeCommand(resolvedDeviceId, step.command, step.parameter, commandType);
|
|
288
304
|
out.results.push({
|
|
289
305
|
step: idx,
|
|
290
306
|
type: 'command',
|
|
291
|
-
deviceId:
|
|
307
|
+
deviceId: resolvedDeviceId,
|
|
292
308
|
command: step.command,
|
|
293
309
|
status: 'ok',
|
|
294
310
|
});
|
|
295
311
|
out.summary.ok++;
|
|
296
312
|
if (!isJsonMode())
|
|
297
|
-
console.log(` ${idx}. ✓ ${step.command} on ${
|
|
313
|
+
console.log(` ${idx}. ✓ ${step.command} on ${resolvedDeviceId}`);
|
|
298
314
|
}
|
|
299
315
|
catch (err) {
|
|
300
316
|
if (err instanceof Error && err.name === 'DryRunSignal') {
|
|
301
317
|
out.results.push({
|
|
302
318
|
step: idx,
|
|
303
319
|
type: 'command',
|
|
304
|
-
deviceId:
|
|
320
|
+
deviceId: resolvedDeviceId,
|
|
305
321
|
command: step.command,
|
|
306
322
|
status: 'ok',
|
|
307
323
|
});
|
|
308
324
|
out.summary.ok++;
|
|
309
325
|
if (!isJsonMode())
|
|
310
|
-
console.log(` ${idx}. ◦ dry-run ${step.command} on ${
|
|
326
|
+
console.log(` ${idx}. ◦ dry-run ${step.command} on ${resolvedDeviceId}`);
|
|
311
327
|
continue;
|
|
312
328
|
}
|
|
313
329
|
const msg = err instanceof Error ? err.message : String(err);
|
|
314
330
|
out.results.push({
|
|
315
331
|
step: idx,
|
|
316
332
|
type: 'command',
|
|
317
|
-
deviceId:
|
|
333
|
+
deviceId: resolvedDeviceId,
|
|
318
334
|
command: step.command,
|
|
319
335
|
status: 'error',
|
|
320
336
|
error: msg,
|
|
321
337
|
});
|
|
322
338
|
out.summary.error++;
|
|
323
339
|
if (!isJsonMode())
|
|
324
|
-
console.log(` ${idx}. ✗ ${step.command} on ${
|
|
340
|
+
console.log(` ${idx}. ✗ ${step.command} on ${resolvedDeviceId}: ${msg}`);
|
|
325
341
|
if (!options.continueOnError)
|
|
326
342
|
break;
|
|
327
343
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAgC5D,MAAM,gBAAgB,GAAG;IACvB,OAAO,EAAE,8CAA8C;IACvD,GAAG,EAAE,qCAAqC;IAC1C,KAAK,EAAE,gBAAgB;IACvB,WAAW,EACT,4IAA4I;IAC9I,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC;IAC9B,UAAU,EAAE;QACV,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QACzB,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,KAAK,EAAE;YACL,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;wBAC7B,KAAK,EAAE;4BACL,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE;4BAC7D,EAAE,QAAQ,EAAE,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE;yBAC9D;wBACD,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;4BAC1B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;4BAC1C,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;4BAC5C,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;4BACzC,SAAS,EAAE,EAAE;4BACb,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE;4BAC/C,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBACzB;wBACD,oBAAoB,EAAE,KAAK;qBAC5B;oBACD;wBACE,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;wBAC7B,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;4BACxB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;4BACzC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBACzB;wBACD,oBAAoB,EAAE,KAAK;qBAC5B;oBACD;wBACE,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC;wBACxB,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;4BACvB,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE;4BACpD,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBACzB;wBACD,oBAAoB,EAAE,KAAK;qBAC5B;iBACF;aACF;SACF;KACF;IACD,oBAAoB,EAAE,KAAK;CACnB,CAAC;AAOX,MAAM,UAAU,YAAY,CAAC,GAAY;IAIvC,MAAM,MAAM,GAA0B,EAAE,CAAC;IACzC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC,EAAE,CAAC;IACvF,CAAC;IACD,MAAM,CAAC,GAAG,GAA8B,CAAC;IACzC,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC5D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC/B,CAAC;IACD,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QAC1B,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC;QACzB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QACD,MAAM,CAAC,GAAG,IAA+B,CAAC;QAC1C,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;YACf,KAAK,SAAS;gBACZ,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAChF,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,0CAA0C,EAAE,CAAC,CAAC;gBAC/F,CAAC;gBACD,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;oBACtF,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,0CAA0C,EAAE,CAAC,CAAC;gBACjG,CAAC;gBACD,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;oBACjC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,6CAA6C,EAAE,CAAC,CAAC;gBACzF,CAAC;gBACD,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;oBAC/B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,gDAAgD,EAAE,CAAC,CAAC;gBAC5F,CAAC;gBACD,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;oBAChD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC,CAAC;gBAChF,CAAC;gBACD,IACE,CAAC,CAAC,WAAW,KAAK,SAAS;oBAC3B,CAAC,CAAC,WAAW,KAAK,SAAS;oBAC3B,CAAC,CAAC,WAAW,KAAK,WAAW,EAC7B,CAAC;oBACD,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,GAAG,EAAE,cAAc;wBACzB,OAAO,EAAE,kCAAkC;qBAC5C,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM;YACR,KAAK,OAAO;gBACV,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;oBAChD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC,CAAC;gBAChF,CAAC;gBACD,MAAM;YACR,KAAK,MAAM;gBACT,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC;oBACtF,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,GAAG,EAAE,KAAK;wBAChB,OAAO,EAAE,mCAAmC;qBAC7C,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM;YACR;gBACE,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,GAAG,EAAE,OAAO;oBAClB,OAAO,EAAE,6CAA6C;iBACvD,CAAC,CAAC;QACP,CAAC;IACH,CAAC,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACpD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAW,EAAE,CAAC;AACzC,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,IAAwB;IACpD,MAAM,IAAI,GAAG,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,GAAG;QAC7C,CAAC,CAAC,MAAM,SAAS,EAAE;QACnB,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,GAAG;YAChC,CAAC,CAAC,2BAA2B;YAC7B,CAAC,CAAC,uBAAuB,IAAI,EAAE,CAClC,CAAC;IACJ,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,2BAA4B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IACvE,CAAC;AACH,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5C,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC;AAYD,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,MAAM,IAAI,GAAG,OAAO;SACjB,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,mDAAmD,CAAC;SAChE,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;;;;;;CAgBzB,CAAC,CAAC;IAED,IAAI;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,2CAA2C,CAAC;SACxD,MAAM,CAAC,GAAG,EAAE;QACX,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEL,IAAI;SACD,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,oDAAoD,CAAC;SACjE,QAAQ,CAAC,QAAQ,EAAE,gDAAgD,CAAC;SACpE,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,EAAE;QACzC,IAAI,GAAY,CAAC;QACjB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QACD,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,IAAI,UAAU,EAAE,EAAE,CAAC;gBACjB,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBACjC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBAC9B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,UAAU,EAAE,EAAE,CAAC;YACjB,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QAC7G,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,IAAI;SACD,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,gFAAgF,CAAC;SAC7F,QAAQ,CAAC,QAAQ,EAAE,gDAAgD,CAAC;SACpE,MAAM,CAAC,OAAO,EAAE,sEAAsE,CAAC;SACvF,MAAM,CAAC,qBAAqB,EAAE,iEAAiE,CAAC;SAChG,MAAM,CACL,KAAK,EACH,IAAwB,EACxB,OAAqD,EACrD,EAAE;QACF,IAAI,GAAY,CAAC;QACjB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QACD,MAAM,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACV,IAAI,UAAU,EAAE,EAAE,CAAC;gBACjB,SAAS,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;gBAClD,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM;oBAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACvE,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,GAAG,GAAkB;YACzB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;SACrE,CAAC;QAEF,IAAI,CAAC;YACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7C,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC7B,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;gBAClB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACzB,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;oBACjD,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;oBACzE,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;oBACjB,IAAI,CAAC,UAAU,EAAE;wBAAE,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,UAAU,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;oBAC9D,SAAS;gBACX,CAAC;gBACD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAC1B,IAAI,CAAC;wBACH,MAAM,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBACjC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;wBACpF,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;wBACjB,IAAI,CAAC,UAAU,EAAE;4BAAE,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,aAAa,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;oBACtE,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBAC7D,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;wBACnG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;wBACpB,IAAI,CAAC,UAAU,EAAE;4BAAE,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,aAAa,IAAI,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC,CAAC;wBAC5E,IAAI,CAAC,OAAO,CAAC,eAAe;4BAAE,MAAM;oBACtC,CAAC;oBACD,SAAS;gBACX,CAAC;gBACD,UAAU;gBACV,MAAM,gBAAgB,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;gBACzE,MAAM,UAAU,GAAG,eAAe,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC;gBAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC;gBAClD,MAAM,WAAW,GAAG,oBAAoB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;gBAChF,IAAI,WAAW,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;oBAChC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;wBACf,IAAI,EAAE,GAAG;wBACT,IAAI,EAAE,SAAS;wBACf,QAAQ,EAAE,gBAAgB;wBAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,MAAM,EAAE,SAAS;wBACjB,KAAK,EAAE,gCAAgC;qBACxC,CAAC,CAAC;oBACH,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;oBACtB,IAAI,CAAC,UAAU,EAAE;wBACf,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,eAAe,IAAI,CAAC,OAAO,OAAO,gBAAgB,6BAA6B,CAAC,CAAC;oBACvG,IAAI,CAAC,OAAO,CAAC,eAAe;wBAAE,MAAM;oBACpC,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;oBAClF,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;wBACf,IAAI,EAAE,GAAG;wBACT,IAAI,EAAE,SAAS;wBACf,QAAQ,EAAE,gBAAgB;wBAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,MAAM,EAAE,IAAI;qBACb,CAAC,CAAC;oBACH,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;oBACjB,IAAI,CAAC,UAAU,EAAE;wBACf,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,OAAO,IAAI,CAAC,OAAO,OAAO,gBAAgB,EAAE,CAAC,CAAC;gBACtE,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;wBACxD,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;4BACf,IAAI,EAAE,GAAG;4BACT,IAAI,EAAE,SAAS;4BACf,QAAQ,EAAE,gBAAgB;4BAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;4BACrB,MAAM,EAAE,IAAI;yBACb,CAAC,CAAC;wBACH,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;wBACjB,IAAI,CAAC,UAAU,EAAE;4BACf,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,eAAe,IAAI,CAAC,OAAO,OAAO,gBAAgB,EAAE,CAAC,CAAC;wBAC5E,SAAS;oBACX,CAAC;oBACD,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC7D,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;wBACf,IAAI,EAAE,GAAG;wBACT,IAAI,EAAE,SAAS;wBACf,QAAQ,EAAE,gBAAgB;wBAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,MAAM,EAAE,OAAO;wBACf,KAAK,EAAE,GAAG;qBACX,CAAC,CAAC;oBACH,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;oBACpB,IAAI,CAAC,UAAU,EAAE;wBACf,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,OAAO,IAAI,CAAC,OAAO,OAAO,gBAAgB,KAAK,GAAG,EAAE,CAAC,CAAC;oBAC5E,IAAI,CAAC,OAAO,CAAC,eAAe;wBAAE,MAAM;gBACtC,CAAC;YACH,CAAC;YAED,IAAI,UAAU,EAAE,EAAE,CAAC;gBACjB,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC;gBAClD,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,UAAU,KAAK,YAAY,OAAO,UAAU,KAAK,EAAE,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QACD,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC,CACF,CAAC;AACN,CAAC"}
|
package/dist/commands/watch.js
CHANGED
|
@@ -2,6 +2,7 @@ import { printJson, isJsonMode, handleError, UsageError } from '../utils/output.
|
|
|
2
2
|
import { fetchDeviceStatus } from '../lib/devices.js';
|
|
3
3
|
import { getCachedDevice } from '../devices/cache.js';
|
|
4
4
|
import { parseDurationToMs, getFields } from '../utils/flags.js';
|
|
5
|
+
import { createClient } from '../api/client.js';
|
|
5
6
|
const DEFAULT_INTERVAL_MS = 30_000;
|
|
6
7
|
const MIN_INTERVAL_MS = 1_000;
|
|
7
8
|
function diff(prev, next, fields) {
|
|
@@ -93,6 +94,7 @@ Examples:
|
|
|
93
94
|
process.on('SIGTERM', onSig);
|
|
94
95
|
try {
|
|
95
96
|
const prev = new Map();
|
|
97
|
+
const client = createClient();
|
|
96
98
|
let tick = 0;
|
|
97
99
|
while (!ac.signal.aborted) {
|
|
98
100
|
tick++;
|
|
@@ -102,7 +104,7 @@ Examples:
|
|
|
102
104
|
await Promise.all(deviceIds.map(async (id) => {
|
|
103
105
|
const cached = getCachedDevice(id);
|
|
104
106
|
try {
|
|
105
|
-
const body = await fetchDeviceStatus(id);
|
|
107
|
+
const body = await fetchDeviceStatus(id, client);
|
|
106
108
|
const changed = diff(prev.get(id), body, fields);
|
|
107
109
|
prev.set(id, body);
|
|
108
110
|
if (Object.keys(changed).length === 0 && !options.includeUnchanged) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/commands/watch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/commands/watch.ts"],"names":[],"mappings":"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"}
|
package/dist/devices/cache.d.ts
CHANGED
|
@@ -35,8 +35,12 @@ export interface DeviceListBodyShape {
|
|
|
35
35
|
}
|
|
36
36
|
/** Force the next loadCache() call to re-read from disk. Used in tests. */
|
|
37
37
|
export declare function resetListCache(): void;
|
|
38
|
+
/** Force the next loadStatusCache() call to re-read from disk. Used in tests. */
|
|
39
|
+
export declare function resetStatusCache(): void;
|
|
38
40
|
export declare function loadCache(): DeviceCache | null;
|
|
39
41
|
export declare function getCachedDevice(deviceId: string): CachedDevice | null;
|
|
42
|
+
/** Build a deviceId -> type map from the metadata cache. */
|
|
43
|
+
export declare function getCachedTypeMap(deviceIds?: Iterable<string>): Map<string, string>;
|
|
40
44
|
export declare function updateCacheFromDeviceList(body: DeviceListBodyShape): void;
|
|
41
45
|
export declare function clearCache(): void;
|
|
42
46
|
/** Age of the on-disk list cache in ms, or null if there is no cache. */
|
|
@@ -53,7 +57,7 @@ export interface StatusCache {
|
|
|
53
57
|
export declare function loadStatusCache(): StatusCache;
|
|
54
58
|
/** Read a status entry; returns null when missing or older than `ttlMs`. */
|
|
55
59
|
export declare function getCachedStatus(deviceId: string, ttlMs: number, now?: number): Record<string, unknown> | null;
|
|
56
|
-
export declare function setCachedStatus(deviceId: string, body: Record<string, unknown>, now?: Date): void;
|
|
60
|
+
export declare function setCachedStatus(deviceId: string, body: Record<string, unknown>, now?: Date, ttlMsForGc?: number): void;
|
|
57
61
|
export declare function clearStatusCache(): void;
|
|
58
62
|
/** Summary for `switchbot cache show`. */
|
|
59
63
|
export interface CacheSummary {
|
package/dist/devices/cache.js
CHANGED
|
@@ -13,10 +13,15 @@ function cacheFilePath() {
|
|
|
13
13
|
}
|
|
14
14
|
// In-memory hot-cache: undefined = not yet loaded, null = loaded but empty.
|
|
15
15
|
let _listCache = undefined;
|
|
16
|
+
let _statusCache = undefined;
|
|
16
17
|
/** Force the next loadCache() call to re-read from disk. Used in tests. */
|
|
17
18
|
export function resetListCache() {
|
|
18
19
|
_listCache = undefined;
|
|
19
20
|
}
|
|
21
|
+
/** Force the next loadStatusCache() call to re-read from disk. Used in tests. */
|
|
22
|
+
export function resetStatusCache() {
|
|
23
|
+
_statusCache = undefined;
|
|
24
|
+
}
|
|
20
25
|
export function loadCache() {
|
|
21
26
|
if (_listCache !== undefined)
|
|
22
27
|
return _listCache;
|
|
@@ -46,6 +51,26 @@ export function getCachedDevice(deviceId) {
|
|
|
46
51
|
return null;
|
|
47
52
|
return cache.devices[deviceId] ?? null;
|
|
48
53
|
}
|
|
54
|
+
/** Build a deviceId -> type map from the metadata cache. */
|
|
55
|
+
export function getCachedTypeMap(deviceIds) {
|
|
56
|
+
const cache = loadCache();
|
|
57
|
+
const out = new Map();
|
|
58
|
+
if (!cache)
|
|
59
|
+
return out;
|
|
60
|
+
if (deviceIds) {
|
|
61
|
+
for (const id of deviceIds) {
|
|
62
|
+
const entry = cache.devices[id];
|
|
63
|
+
if (entry?.type)
|
|
64
|
+
out.set(id, entry.type);
|
|
65
|
+
}
|
|
66
|
+
return out;
|
|
67
|
+
}
|
|
68
|
+
for (const [deviceId, entry] of Object.entries(cache.devices)) {
|
|
69
|
+
if (entry.type)
|
|
70
|
+
out.set(deviceId, entry.type);
|
|
71
|
+
}
|
|
72
|
+
return out;
|
|
73
|
+
}
|
|
49
74
|
export function updateCacheFromDeviceList(body) {
|
|
50
75
|
const devices = {};
|
|
51
76
|
for (const d of body.deviceList) {
|
|
@@ -122,22 +147,30 @@ function statusCacheFilePath() {
|
|
|
122
147
|
return path.join(dir, 'status.json');
|
|
123
148
|
}
|
|
124
149
|
export function loadStatusCache() {
|
|
150
|
+
if (_statusCache !== undefined)
|
|
151
|
+
return _statusCache;
|
|
125
152
|
const file = statusCacheFilePath();
|
|
126
|
-
if (!fs.existsSync(file))
|
|
127
|
-
|
|
153
|
+
if (!fs.existsSync(file)) {
|
|
154
|
+
_statusCache = { entries: {} };
|
|
155
|
+
return _statusCache;
|
|
156
|
+
}
|
|
128
157
|
try {
|
|
129
158
|
const raw = fs.readFileSync(file, 'utf-8');
|
|
130
159
|
const parsed = JSON.parse(raw);
|
|
131
160
|
if (!parsed || typeof parsed.entries !== 'object' || parsed.entries === null) {
|
|
132
|
-
|
|
161
|
+
_statusCache = { entries: {} };
|
|
162
|
+
return _statusCache;
|
|
133
163
|
}
|
|
164
|
+
_statusCache = parsed;
|
|
134
165
|
return parsed;
|
|
135
166
|
}
|
|
136
167
|
catch {
|
|
137
|
-
|
|
168
|
+
_statusCache = { entries: {} };
|
|
169
|
+
return _statusCache;
|
|
138
170
|
}
|
|
139
171
|
}
|
|
140
172
|
function saveStatusCache(cache) {
|
|
173
|
+
_statusCache = cache;
|
|
141
174
|
try {
|
|
142
175
|
const file = statusCacheFilePath();
|
|
143
176
|
const dir = path.dirname(file);
|
|
@@ -174,19 +207,20 @@ function evictExpiredStatusEntries(cache, ttlMs, now = Date.now()) {
|
|
|
174
207
|
delete cache.entries[id];
|
|
175
208
|
}
|
|
176
209
|
}
|
|
177
|
-
export function setCachedStatus(deviceId, body, now = new Date()) {
|
|
210
|
+
export function setCachedStatus(deviceId, body, now = new Date(), ttlMsForGc = DEFAULT_STATUS_GC_TTL_MS) {
|
|
178
211
|
const cache = loadStatusCache();
|
|
179
212
|
cache.entries[deviceId] = {
|
|
180
213
|
fetchedAt: now.toISOString(),
|
|
181
214
|
body,
|
|
182
215
|
};
|
|
183
|
-
evictExpiredStatusEntries(cache,
|
|
216
|
+
evictExpiredStatusEntries(cache, ttlMsForGc, now.getTime());
|
|
184
217
|
saveStatusCache(cache);
|
|
185
218
|
}
|
|
186
219
|
export function clearStatusCache() {
|
|
187
220
|
const file = statusCacheFilePath();
|
|
188
221
|
if (fs.existsSync(file))
|
|
189
222
|
fs.unlinkSync(file);
|
|
223
|
+
_statusCache = { entries: {} };
|
|
190
224
|
}
|
|
191
225
|
export function describeCache(now = Date.now()) {
|
|
192
226
|
const listFile = cacheFilePath();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/devices/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,oEAAoE;AACpE,MAAM,wBAAwB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,OAAO;AAwC7D,SAAS,aAAa;IACpB,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAC;IACjC,MAAM,GAAG,GAAG,QAAQ;QAClB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;IAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;AACxC,CAAC;AAED,4EAA4E;AAC5E,IAAI,UAAU,GAAmC,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/devices/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,oEAAoE;AACpE,MAAM,wBAAwB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,OAAO;AAwC7D,SAAS,aAAa;IACpB,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAC;IACjC,MAAM,GAAG,GAAG,QAAQ;QAClB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;IAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;AACxC,CAAC;AAED,4EAA4E;AAC5E,IAAI,UAAU,GAAmC,SAAS,CAAC;AAC3D,IAAI,YAAY,GAA4B,SAAS,CAAC;AAEtD,2EAA2E;AAC3E,MAAM,UAAU,cAAc;IAC5B,UAAU,GAAG,SAAS,CAAC;AACzB,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,gBAAgB;IAC9B,YAAY,GAAG,SAAS,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,UAAU,CAAC;IAChD,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAC7B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,UAAU,GAAG,IAAI,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,CAAC;QAC7C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC1E,UAAU,GAAG,IAAI,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,UAAU,GAAG,KAAK,CAAC;QACnB,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,UAAU,GAAG,IAAI,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAC1B,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;AACzC,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,gBAAgB,CAAC,SAA4B;IAC3D,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAC1B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,IAAI,CAAC,KAAK;QAAE,OAAO,GAAG,CAAC;IAEvB,IAAI,SAAS,EAAE,CAAC;QACd,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAChC,IAAI,KAAK,EAAE,IAAI;gBAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9D,IAAI,KAAK,CAAC,IAAI;YAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,IAAyB;IACjE,MAAM,OAAO,GAAiC,EAAE,CAAC;IAEjD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QAChC,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,UAAU;YAAE,SAAS;QAC3C,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG;YACpB,IAAI,EAAE,CAAC,CAAC,UAAU;YAClB,IAAI,EAAE,CAAC,CAAC,UAAU;YAClB,QAAQ,EAAE,UAAU;YACpB,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,kBAAkB,EAAE,CAAC,CAAC,kBAAkB;YACxC,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,WAAW,EAAE,CAAC,CAAC,WAAW;SAC3B,CAAC;IACJ,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxC,IAAI,CAAC,CAAC,CAAC,QAAQ;YAAE,SAAS;QAC1B,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG;YACpB,IAAI,EAAE,CAAC,CAAC,UAAU;YAClB,IAAI,EAAE,CAAC,CAAC,UAAU;YAClB,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,WAAW,EAAE,CAAC,CAAC,WAAW;SAC3B,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAgB;QACzB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,OAAO;KACR,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACxE,UAAU,GAAG,KAAK,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,uEAAuE;IACzE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAC7B,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC7C,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC;AAED,+EAA+E;AAE/E,yEAAyE;AACzE,MAAM,UAAU,cAAc,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAC7C,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAC1B,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;AAC/B,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAC9D,IAAI,CAAC,KAAK,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAChC,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC;AACrC,CAAC;AAqBD,SAAS,mBAAmB;IAC1B,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAC;IACjC,MAAM,GAAG,GAAG,QAAQ;QAClB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;IAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,YAAY,CAAC;IACpD,MAAM,IAAI,GAAG,mBAAmB,EAAE,CAAC;IACnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,YAAY,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QAC/B,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,CAAC;QAC9C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC7E,YAAY,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YAC/B,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,YAAY,GAAG,MAAM,CAAC;QACtB,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,YAAY,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QAC/B,OAAO,YAAY,CAAC;IACtB,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,KAAkB;IACzC,YAAY,GAAG,KAAK,CAAC;IACrB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,mBAAmB,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB;IACnB,CAAC;AACH,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,eAAe,CAC7B,QAAgB,EAChB,KAAa,EACb,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAEhB,IAAI,CAAC,KAAK,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,IAAI,GAAG,GAAG,EAAE,IAAI,KAAK;QAAE,OAAO,IAAI,CAAC;IACnC,OAAO,KAAK,CAAC,IAAI,CAAC;AACpB,CAAC;AAED,kFAAkF;AAClF,SAAS,yBAAyB,CAAC,KAAkB,EAAE,KAAa,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IACpF,MAAM,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC/D,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAChC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,MAAM;YAAE,OAAO,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,QAAgB,EAChB,IAA6B,EAC7B,GAAG,GAAG,IAAI,IAAI,EAAE,EAChB,UAAU,GAAG,wBAAwB;IAErC,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG;QACxB,SAAS,EAAE,GAAG,CAAC,WAAW,EAAE;QAC5B,IAAI;KACL,CAAC;IACF,yBAAyB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5D,eAAe,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,MAAM,IAAI,GAAG,mBAAmB,EAAE,CAAC;IACnC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC7C,YAAY,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AACjC,CAAC;AAoBD,MAAM,UAAU,aAAa,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAC5C,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,SAAS,EAAE,CAAC;IAC9B,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAyB;QACjC,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,UAAU;KACnB,CAAC;IACF,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;QACzC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC7C,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IAC3D,CAAC;IAED,MAAM,UAAU,GAAG,mBAAmB,EAAE,CAAC;IACzC,MAAM,YAAY,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC;IACtC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,MAAM,GAA2B;QACrC,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,OAAO,CAAC,MAAM;KAC3B,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,OAAO;aACnB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;aACvB,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;aACjD,IAAI,EAAE,CAAC;QACV,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface DeviceMeta {
|
|
2
|
+
alias?: string;
|
|
3
|
+
hidden?: boolean;
|
|
4
|
+
notes?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface DeviceMetaFile {
|
|
7
|
+
version: '1';
|
|
8
|
+
devices: Record<string, DeviceMeta>;
|
|
9
|
+
}
|
|
10
|
+
export declare function getMetaFilePath(): string;
|
|
11
|
+
export declare function loadDeviceMeta(): DeviceMetaFile;
|
|
12
|
+
export declare function saveDeviceMeta(meta: DeviceMetaFile): void;
|
|
13
|
+
export declare function getDeviceMeta(deviceId: string): DeviceMeta | null;
|
|
14
|
+
export declare function setDeviceMeta(deviceId: string, patch: Partial<DeviceMeta>): void;
|
|
15
|
+
export declare function clearDeviceMeta(deviceId: string): void;
|