@yu_robotics/remote-cli-router 1.0.0 → 1.0.2

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.
@@ -157,6 +157,9 @@ class FeishuLongConnHandler {
157
157
  case '/unbind':
158
158
  await this.handleUnbindCommand(openId, messageId);
159
159
  break;
160
+ case '/device':
161
+ await this.handleDeviceCommand(openId, messageId, parts.slice(1));
162
+ break;
160
163
  case '/help':
161
164
  await this.handleHelpCommand(openId, messageId);
162
165
  break;
@@ -178,14 +181,20 @@ class FeishuLongConnHandler {
178
181
  await this.replyToMessage(messageId, '❌ You have not bound a device yet, please send /bind <binding-code> to bind first');
179
182
  return;
180
183
  }
184
+ // Get active device
185
+ const activeDevice = await this.bindingManager.getActiveDevice(openId);
186
+ if (!activeDevice) {
187
+ await this.replyToMessage(messageId, '❌ No active device found. Please use /device list to view your devices');
188
+ return;
189
+ }
181
190
  // Check if ConnectionHub is available
182
191
  if (!this.connectionHub) {
183
192
  await this.replyToMessage(messageId, '❌ Server error: ConnectionHub not initialized');
184
193
  return;
185
194
  }
186
195
  // Check if device is online
187
- if (!this.connectionHub.isDeviceOnline(binding.deviceId)) {
188
- await this.replyToMessage(messageId, `❌ Device ${binding.deviceName} is currently offline, please ensure the device is started and connected to the server`);
196
+ if (!this.connectionHub.isDeviceOnline(activeDevice.deviceId)) {
197
+ await this.replyToMessage(messageId, `❌ Device ${activeDevice.deviceName} is currently offline, please ensure the device is started and connected to the server`);
189
198
  return;
190
199
  }
191
200
  console.log(`[FeishuHandler] Passing through slash command: ${command}`);
@@ -195,10 +204,10 @@ class FeishuLongConnHandler {
195
204
  const feishuMessageId = await this.sendStreamingStart(openId, `🤔 Executing ${command}...`);
196
205
  console.log(`[FeishuHandler] Created card ${feishuMessageId} for slash command ${commandMessageId}`);
197
206
  if (this.onStartStreaming) {
198
- this.onStartStreaming(commandMessageId, openId, feishuMessageId, binding.deviceId);
207
+ this.onStartStreaming(commandMessageId, openId, feishuMessageId, activeDevice.deviceId);
199
208
  }
200
209
  // Send slash command to device - the client will execute it locally
201
- const success = await this.connectionHub.sendToDevice(binding.deviceId, {
210
+ const success = await this.connectionHub.sendToDevice(activeDevice.deviceId, {
202
211
  type: types_1.MessageType.COMMAND,
203
212
  messageId: commandMessageId,
204
213
  timestamp: Date.now(),
@@ -226,10 +235,21 @@ class FeishuLongConnHandler {
226
235
  await this.replyToMessage(messageId, '❌ Binding code is invalid or expired, please generate a new one');
227
236
  return;
228
237
  }
238
+ // Check if device is already bound
239
+ const existingDevices = await this.bindingManager.getUserDevices(openId);
240
+ const alreadyBound = existingDevices.some(d => d.deviceId === bindingCode.deviceId);
241
+ if (alreadyBound) {
242
+ await this.replyToMessage(messageId, '❌ This device is already bound to your account');
243
+ return;
244
+ }
229
245
  // Bind user
230
246
  const deviceName = 'Device'; // Will be updated by client later
231
247
  await this.bindingManager.bindUser(openId, bindingCode.deviceId, deviceName);
232
- await this.replyToMessage(messageId, `✅ Binding successful!\n\nDevice ID: ${bindingCode.deviceId}\n\nYou can now control your device through Feishu.`);
248
+ const isFirstDevice = existingDevices.length === 0;
249
+ const statusNote = isFirstDevice
250
+ ? '\n\n📱 This is your first device and will be set as active.'
251
+ : '\n\n📱 Use /device switch to activate this device.';
252
+ await this.replyToMessage(messageId, `✅ Binding successful!\n\nDevice ID: ${bindingCode.deviceId}\n\nYou can now control your device through Feishu.${statusNote}\n\nUse /device list to view all your devices.`);
233
253
  }
234
254
  catch (error) {
235
255
  console.error('Error binding user:', error);
@@ -246,9 +266,24 @@ class FeishuLongConnHandler {
246
266
  await this.replyToMessage(messageId, '❌ You have not bound a device yet, please send /bind <binding-code> to bind first');
247
267
  return;
248
268
  }
249
- const isOnline = this.connectionHub?.isDeviceOnline(binding.deviceId) || false;
250
- const status = isOnline ? '🟢 Online' : '🔴 Offline';
251
- const message = `📊 Device Status\n\nDevice Name: ${binding.deviceName}\nDevice ID: ${binding.deviceId}\nStatus: ${status}\nBinding Time: ${new Date(binding.boundAt).toLocaleString('en-US')}`;
269
+ const devices = binding.devices;
270
+ if (devices.length === 0) {
271
+ await this.replyToMessage(messageId, '❌ No devices found');
272
+ return;
273
+ }
274
+ // Build status message
275
+ let message = `📊 Device Status\n\n`;
276
+ for (const device of devices) {
277
+ const isOnline = this.connectionHub?.isDeviceOnline(device.deviceId) || false;
278
+ const status = isOnline ? '🟢 Online' : '🔴 Offline';
279
+ const activeIndicator = device.isActive ? ' ⭐ ACTIVE' : '';
280
+ message += `\n**${device.deviceName}**${activeIndicator}\n`;
281
+ message += `Device ID: ${device.deviceId}\n`;
282
+ message += `Status: ${status}\n`;
283
+ message += `Bound: ${new Date(device.boundAt).toLocaleString('en-US')}\n`;
284
+ message += `Last Active: ${new Date(device.lastActiveAt).toLocaleString('en-US')}\n`;
285
+ }
286
+ message += `\n\nTotal Devices: ${devices.length}`;
252
287
  await this.replyToMessage(messageId, message);
253
288
  }
254
289
  catch (error) {
@@ -258,6 +293,8 @@ class FeishuLongConnHandler {
258
293
  }
259
294
  /**
260
295
  * Handle unbind command
296
+ * Usage: /unbind or /unbind all (unbind all devices)
297
+ * For unbinding specific device, use /device unbind <device-id>
261
298
  */
262
299
  async handleUnbindCommand(openId, messageId) {
263
300
  try {
@@ -266,14 +303,188 @@ class FeishuLongConnHandler {
266
303
  await this.replyToMessage(messageId, '❌ You have not bound a device yet');
267
304
  return;
268
305
  }
306
+ const deviceCount = binding.devices.length;
307
+ // Unbind all devices
269
308
  await this.bindingManager.unbindUser(openId);
270
- await this.replyToMessage(messageId, `✅ Device ${binding.deviceName} has been unbound`);
309
+ await this.replyToMessage(messageId, `✅ Successfully unbound ${deviceCount} device(s)`);
271
310
  }
272
311
  catch (error) {
273
312
  console.error('Error handling unbind command:', error);
274
313
  await this.replyToMessage(messageId, '❌ Unbinding failed, please try again later');
275
314
  }
276
315
  }
316
+ /**
317
+ * Handle device command
318
+ * Usage:
319
+ * /device - List all bound devices (same as /device list)
320
+ * /device list - List all bound devices
321
+ * /device switch <device-id|index> - Switch active device (by ID or index number)
322
+ * /device <device-id|index> - Quick switch to device (by ID or index number)
323
+ * /device unbind <device-id|index> - Unbind a specific device (by ID or index number)
324
+ */
325
+ async handleDeviceCommand(openId, messageId, args) {
326
+ try {
327
+ const binding = await this.bindingManager.getUserBinding(openId);
328
+ if (!binding) {
329
+ await this.replyToMessage(messageId, '❌ You have not bound a device yet, please send /bind <binding-code> to bind first');
330
+ return;
331
+ }
332
+ // No args - show device list
333
+ if (args.length === 0) {
334
+ await this.handleDeviceList(openId, messageId, binding);
335
+ return;
336
+ }
337
+ const subcommand = args[0]?.toLowerCase();
338
+ switch (subcommand) {
339
+ case 'list':
340
+ await this.handleDeviceList(openId, messageId, binding);
341
+ break;
342
+ case 'switch':
343
+ if (args.length < 2) {
344
+ await this.replyToMessage(messageId, '❌ Please provide device ID or index, format: /device switch <device-id-or-index>');
345
+ return;
346
+ }
347
+ await this.handleDeviceSwitch(openId, messageId, args[1], binding);
348
+ break;
349
+ case 'unbind':
350
+ if (args.length < 2) {
351
+ await this.replyToMessage(messageId, '❌ Please provide device ID or index, format: /device unbind <device-id-or-index>');
352
+ return;
353
+ }
354
+ await this.handleDeviceUnbind(openId, messageId, args[1], binding);
355
+ break;
356
+ default:
357
+ // If the argument looks like a number (index) or device ID, treat it as a quick switch
358
+ await this.handleDeviceSwitch(openId, messageId, args[0], binding);
359
+ }
360
+ }
361
+ catch (error) {
362
+ console.error('Error handling device command:', error);
363
+ await this.replyToMessage(messageId, '❌ Error processing device command, please try again later');
364
+ }
365
+ }
366
+ /**
367
+ * Handle /device list
368
+ */
369
+ async handleDeviceList(openId, messageId, binding) {
370
+ const devices = binding.devices;
371
+ if (devices.length === 0) {
372
+ await this.replyToMessage(messageId, '❌ No devices found');
373
+ return;
374
+ }
375
+ let message = `📱 Your Devices (${devices.length})\n\n`;
376
+ for (let i = 0; i < devices.length; i++) {
377
+ const device = devices[i];
378
+ const isOnline = this.connectionHub?.isDeviceOnline(device.deviceId) || false;
379
+ const status = isOnline ? '🟢 Online' : '🔴 Offline';
380
+ const activeIndicator = device.isActive ? ' ⭐ ACTIVE' : '';
381
+ message += `${i + 1}. **${device.deviceName}**${activeIndicator}\n`;
382
+ message += ` ID: \`${device.deviceId}\`\n`;
383
+ message += ` Status: ${status}\n`;
384
+ message += ` Bound: ${new Date(device.boundAt).toLocaleString('en-US')}\n\n`;
385
+ }
386
+ message += `\n💡 Quick switch: /device <index> or /device <device-id>`;
387
+ message += `\n Example: /device 1 or /device switch 1`;
388
+ await this.replyToMessage(messageId, message);
389
+ }
390
+ /**
391
+ * Resolve device identifier (ID or index) to device ID
392
+ * @returns Resolved device ID or null if not found
393
+ */
394
+ resolveDeviceIdentifier(identifier, binding) {
395
+ // Try to parse as index (1-based)
396
+ const index = parseInt(identifier, 10);
397
+ if (!isNaN(index) && index > 0 && index <= binding.devices.length) {
398
+ return binding.devices[index - 1].deviceId;
399
+ }
400
+ // Treat as device ID - check if it exists
401
+ const device = binding.devices.find((d) => d.deviceId === identifier);
402
+ if (device) {
403
+ return device.deviceId;
404
+ }
405
+ return null;
406
+ }
407
+ /**
408
+ * Handle /device switch <device-id-or-index>
409
+ * Also handles quick switch: /device <device-id-or-index>
410
+ */
411
+ async handleDeviceSwitch(openId, messageId, identifier, binding) {
412
+ try {
413
+ // Get binding if not provided
414
+ const userBinding = binding || await this.bindingManager.getUserBinding(openId);
415
+ if (!userBinding) {
416
+ await this.replyToMessage(messageId, '❌ You have not bound a device yet');
417
+ return;
418
+ }
419
+ // Resolve identifier to device ID
420
+ const deviceId = this.resolveDeviceIdentifier(identifier, userBinding);
421
+ if (!deviceId) {
422
+ await this.replyToMessage(messageId, `❌ Device "${identifier}" not found. Use /device to see available devices and their indices.`);
423
+ return;
424
+ }
425
+ const result = await this.bindingManager.switchActiveDevice(openId, deviceId);
426
+ if (!result) {
427
+ await this.replyToMessage(messageId, '❌ Device switch failed');
428
+ return;
429
+ }
430
+ const device = await this.bindingManager.getActiveDevice(openId);
431
+ if (!device) {
432
+ await this.replyToMessage(messageId, '❌ Failed to get active device after switch');
433
+ return;
434
+ }
435
+ await this.replyToMessage(messageId, `✅ Switched to device: **${device.deviceName}**\n\nDevice ID: \`${device.deviceId}\``);
436
+ }
437
+ catch (error) {
438
+ console.error('Error switching device:', error);
439
+ await this.replyToMessage(messageId, '❌ Failed to switch device, please try again later');
440
+ }
441
+ }
442
+ /**
443
+ * Handle /device unbind <device-id-or-index>
444
+ */
445
+ async handleDeviceUnbind(openId, messageId, identifier, binding) {
446
+ try {
447
+ // Get binding if not provided
448
+ const userBinding = binding || await this.bindingManager.getUserBinding(openId);
449
+ if (!userBinding) {
450
+ await this.replyToMessage(messageId, '❌ You have not bound a device yet');
451
+ return;
452
+ }
453
+ // Resolve identifier to device ID
454
+ const deviceId = this.resolveDeviceIdentifier(identifier, userBinding);
455
+ if (!deviceId) {
456
+ await this.replyToMessage(messageId, `❌ Device "${identifier}" not found. Use /device to see available devices and their indices.`);
457
+ return;
458
+ }
459
+ const device = userBinding.devices.find((d) => d.deviceId === deviceId);
460
+ if (!device) {
461
+ await this.replyToMessage(messageId, '❌ Device not found');
462
+ return;
463
+ }
464
+ const wasActive = device.isActive;
465
+ const result = await this.bindingManager.unbindDevice(openId, deviceId);
466
+ if (!result) {
467
+ await this.replyToMessage(messageId, '❌ Failed to unbind device');
468
+ return;
469
+ }
470
+ let responseMessage = `✅ Device **${device.deviceName}** has been unbound`;
471
+ // If we unbound the active device, inform about the new active device
472
+ if (wasActive) {
473
+ const newActiveDevice = await this.bindingManager.getActiveDevice(openId);
474
+ if (newActiveDevice) {
475
+ responseMessage += `\n\n📱 New active device: **${newActiveDevice.deviceName}**`;
476
+ }
477
+ else {
478
+ responseMessage += `\n\n⚠️ No devices remaining. Use /bind to add a new device.`;
479
+ }
480
+ }
481
+ await this.replyToMessage(messageId, responseMessage);
482
+ }
483
+ catch (error) {
484
+ console.error('Error unbinding device:', error);
485
+ await this.replyToMessage(messageId, '❌ Failed to unbind device, please try again later');
486
+ }
487
+ }
277
488
  /**
278
489
  * Handle help command
279
490
  */
@@ -281,14 +492,30 @@ class FeishuLongConnHandler {
281
492
  const helpMessage = `📖 Feishu Remote Control Help
282
493
 
283
494
  Available commands:
284
- /bind <binding-code> - Bind your device
285
- /status - View device status
286
- /unbind - Unbind device
495
+ /bind <binding-code> - Bind a new device
496
+ /status - View all device statuses
497
+ /unbind - Unbind all devices
498
+ /device - List all your devices
499
+ /device list - List all your devices
500
+ /device switch <device-id-or-index> - Switch active device
501
+ /device <device-id-or-index> - Quick switch to device
502
+ /device unbind <device-id-or-index> - Unbind a specific device
287
503
  /help - Show help information
288
504
 
289
- Regular messages will be sent directly to your device for execution.
505
+ Regular messages will be sent to your active device for execution.
506
+
507
+ Multi-device support:
508
+ • You can bind multiple devices to your account
509
+ • Only one device is active at a time
510
+ • Commands are sent to the active device
511
+ • Use /device or /device list to see your devices
512
+ • Switch by index: /device 1 or /device switch 2
513
+ • Switch by ID: /device <device-id>
290
514
 
291
515
  Examples:
516
+ • "/device" - List all devices
517
+ • "/device 1" - Switch to device #1
518
+ • "/device switch 2" - Switch to device #2
292
519
  • "List files in current directory"
293
520
  • "Run tests"
294
521
  • "View recent git commits"`;
@@ -305,14 +532,20 @@ Examples:
305
532
  await this.replyToMessage(messageId, '❌ You have not bound a device yet, please send /bind <binding-code> to bind first');
306
533
  return;
307
534
  }
535
+ // Get active device
536
+ const activeDevice = await this.bindingManager.getActiveDevice(openId);
537
+ if (!activeDevice) {
538
+ await this.replyToMessage(messageId, '❌ No active device found. Please use /device list to view your devices');
539
+ return;
540
+ }
308
541
  // Check if ConnectionHub is available
309
542
  if (!this.connectionHub) {
310
543
  await this.replyToMessage(messageId, '❌ Server error: ConnectionHub not initialized');
311
544
  return;
312
545
  }
313
546
  // Check if device is online
314
- if (!this.connectionHub.isDeviceOnline(binding.deviceId)) {
315
- await this.replyToMessage(messageId, `❌ Device ${binding.deviceName} is currently offline, please ensure the device is started and connected to the server`);
547
+ if (!this.connectionHub.isDeviceOnline(activeDevice.deviceId)) {
548
+ await this.replyToMessage(messageId, `❌ Device ${activeDevice.deviceName} is currently offline, please ensure the device is started and connected to the server`);
316
549
  return;
317
550
  }
318
551
  // Generate message ID first
@@ -323,10 +556,10 @@ Examples:
323
556
  const feishuMessageId = await this.sendStreamingStart(openId, '🤔 Processing...');
324
557
  console.log(`[FeishuHandler] Created card ${feishuMessageId} for command ${commandMessageId}`);
325
558
  if (this.onStartStreaming) {
326
- this.onStartStreaming(commandMessageId, openId, feishuMessageId, binding.deviceId);
559
+ this.onStartStreaming(commandMessageId, openId, feishuMessageId, activeDevice.deviceId);
327
560
  }
328
561
  // Send command to device
329
- const success = await this.connectionHub.sendToDevice(binding.deviceId, {
562
+ const success = await this.connectionHub.sendToDevice(activeDevice.deviceId, {
330
563
  type: types_1.MessageType.COMMAND,
331
564
  messageId: commandMessageId,
332
565
  timestamp: Date.now(),
@@ -1 +1 @@
1
- {"version":3,"file":"FeishuLongConnHandler.js","sourceRoot":"","sources":["../../src/feishu/FeishuLongConnHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FeishuLongConnHandler.js","sourceRoot":"","sources":["../../src/feishu/FeishuLongConnHandler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8DAAgD;AAChD,+BAAoC;AACpC,8DAA2D;AAE3D,oCAAuC;AAYvC;;;GAGG;AACH,MAAa,qBAAqB;IACxB,MAAM,CAAc;IACpB,QAAQ,GAAyB,IAAI,CAAC;IACtC,cAAc,CAAiB;IAC/B,aAAa,GAAyB,IAAI,CAAC;IAC3C,KAAK,CAAS;IACd,SAAS,CAAS;IAC1B,qDAAqD;IACpC,oBAAoB,GAAG,IAAI,CAAC;IAC7C,mEAAmE;IAC3D,aAAa,GAA0B,IAAI,GAAG,EAAE,CAAC;IACzD,8DAA8D;IAC9D,mFAAmF;IAC3E,oBAAoB,GAAwB,IAAI,GAAG,EAAE,CAAC;IAC9D,yFAAyF;IACjF,YAAY,GAA8B,IAAI,GAAG,EAAE,CAAC;IAC5D,4CAA4C;IAC3B,gBAAgB,GAAG,gBAAgB,CAAC;IACpC,sBAAsB,GAAG,QAAQ,CAAC;IAEnD,YAAY,MAAmC;QAC7C,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,cAAc,GAAG,IAAI,+BAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEvD,6CAA6C;QAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC;YAC5B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;YAC/B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;SAC3B,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,GAAkB;QACjC,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;IAC3B,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAiG;IAEzH;;OAEG;IACH,mBAAmB,CAAC,QAAuG;QACzH,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;IACnC,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,kBAAkB,CAAC,IAAS;QACxC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAE3B,yBAAyB;YACzB,IAAI,OAAO,CAAC,YAAY,KAAK,MAAM,EAAE,CAAC;gBACpC,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC;YACxC,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;YACrC,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAElD,OAAO,CAAC,GAAG,CAAC,yCAAyC,MAAM,KAAK,OAAO,WAAW,SAAS,EAAE,CAAC,CAAC;YAE/F,0BAA0B;YAC1B,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,mDAAmD,SAAS,EAAE,CAAC,CAAC;gBAC5E,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;gBAC5D,OAAO,CAAC,GAAG,CAAC,4DAA4D,SAAS,EAAE,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,OAAY;QACtC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC5C,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,SAAS,CAAC,OAAe;QAC/B,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa,CAAC,MAAc,EAAE,SAAiB,EAAE,OAAe;QAC5E,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAEvC,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,OAAO;gBACV,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBACtB,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5D,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,wDAAwD,CAAC,CAAC;gBACjG,CAAC;gBACD,MAAM;YAER,KAAK,SAAS;gBACZ,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gBAClD,MAAM;YAER,KAAK,SAAS;gBACZ,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gBAClD,MAAM;YAER,KAAK,SAAS;gBACZ,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClE,MAAM;YAER,KAAK,OAAO;gBACV,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gBAChD,MAAM;YAER;gBACE,oDAAoD;gBACpD,mEAAmE;gBACnE,MAAM,IAAI,CAAC,6BAA6B,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,6BAA6B,CACzC,MAAc,EACd,SAAiB,EACjB,OAAe,EACf,OAAe;QAEf,IAAI,CAAC;YACH,oBAAoB;YACpB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YACjE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,CAAC,cAAc,CACvB,SAAS,EACT,mFAAmF,CACpF,CAAC;gBACF,OAAO;YACT,CAAC;YAED,oBAAoB;YACpB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACvE,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,MAAM,IAAI,CAAC,cAAc,CACvB,SAAS,EACT,wEAAwE,CACzE,CAAC;gBACF,OAAO;YACT,CAAC;YAED,sCAAsC;YACtC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACxB,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,+CAA+C,CAAC,CAAC;gBACtF,OAAO;YACT,CAAC;YAED,4BAA4B;YAC5B,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9D,MAAM,IAAI,CAAC,cAAc,CACvB,SAAS,EACT,YAAY,YAAY,CAAC,UAAU,wFAAwF,CAC5H,CAAC;gBACF,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,kDAAkD,OAAO,EAAE,CAAC,CAAC;YAEzE,4BAA4B;YAC5B,MAAM,gBAAgB,GAAG,IAAA,SAAM,GAAE,CAAC;YAElC,oDAAoD;YACpD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,OAAO,KAAK,CAAC,CAAC;YAC5F,OAAO,CAAC,GAAG,CAAC,gCAAgC,eAAe,sBAAsB,gBAAgB,EAAE,CAAC,CAAC;YACrG,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,EAAE,eAAe,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC1F,CAAC;YAED,oEAAoE;YACpE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,YAAY,CAAC,QAAQ,EAAE;gBAC3E,IAAI,EAAE,mBAAW,CAAC,OAAO;gBACzB,SAAS,EAAE,gBAAgB;gBAC3B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,OAAO,EAAE,4CAA4C;gBACrD,MAAM;gBACN,cAAc,EAAE,IAAI,EAAE,2CAA2C;aAClE,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,kDAAkD,CAAC,CAAC;YAC3F,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;YAClE,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,oDAAoD,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB,CAAC,MAAc,EAAE,SAAiB,EAAE,IAAY;QAC7E,IAAI,CAAC;YACH,sBAAsB;YACtB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACtE,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,iEAAiE,CAAC,CAAC;gBACxG,OAAO;YACT,CAAC;YAED,mCAAmC;YACnC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YACzE,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,WAAW,CAAC,QAAQ,CAAC,CAAC;YAEpF,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,gDAAgD,CAAC,CAAC;gBACvF,OAAO;YACT,CAAC;YAED,YAAY;YACZ,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,kCAAkC;YAC/D,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YAE7E,MAAM,aAAa,GAAG,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC;YACnD,MAAM,UAAU,GAAG,aAAa;gBAC9B,CAAC,CAAC,6DAA6D;gBAC/D,CAAC,CAAC,oDAAoD,CAAC;YAEzD,MAAM,IAAI,CAAC,cAAc,CACvB,SAAS,EACT,uCAAuC,WAAW,CAAC,QAAQ,sDAAsD,UAAU,gDAAgD,CAC5K,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;YAC5C,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,0CAA0C,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,mBAAmB,CAAC,MAAc,EAAE,SAAiB;QACjE,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YACjE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,CAAC,cAAc,CACvB,SAAS,EACT,mFAAmF,CACpF,CAAC;gBACF,OAAO;YACT,CAAC;YAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YAChC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;gBAC3D,OAAO;YACT,CAAC;YAED,uBAAuB;YACvB,IAAI,OAAO,GAAG,sBAAsB,CAAC;YAErC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;gBAC9E,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC;gBACrD,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;gBAE3D,OAAO,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,eAAe,IAAI,CAAC;gBAC5D,OAAO,IAAI,cAAc,MAAM,CAAC,QAAQ,IAAI,CAAC;gBAC7C,OAAO,IAAI,WAAW,MAAM,IAAI,CAAC;gBACjC,OAAO,IAAI,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC;gBAC1E,OAAO,IAAI,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC;YACvF,CAAC;YAED,OAAO,IAAI,sBAAsB,OAAO,CAAC,MAAM,EAAE,CAAC;YAElD,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;YACvD,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,+CAA+C,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,mBAAmB,CAAC,MAAc,EAAE,SAAiB;QACjE,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YACjE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,mCAAmC,CAAC,CAAC;gBAC1E,OAAO;YACT,CAAC;YAED,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;YAE3C,qBAAqB;YACrB,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC7C,MAAM,IAAI,CAAC,cAAc,CACvB,SAAS,EACT,0BAA0B,WAAW,YAAY,CAClD,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;YACvD,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,4CAA4C,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,mBAAmB,CAAC,MAAc,EAAE,SAAiB,EAAE,IAAc;QACjF,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YACjE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,CAAC,cAAc,CACvB,SAAS,EACT,mFAAmF,CACpF,CAAC;gBACF,OAAO;YACT,CAAC;YAED,6BAA6B;YAC7B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;gBACxD,OAAO;YACT,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;YAE1C,QAAQ,UAAU,EAAE,CAAC;gBACnB,KAAK,MAAM;oBACT,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;oBACxD,MAAM;gBAER,KAAK,QAAQ;oBACX,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACpB,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,kFAAkF,CAAC,CAAC;wBACzH,OAAO;oBACT,CAAC;oBACD,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;oBACnE,MAAM;gBAER,KAAK,QAAQ;oBACX,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACpB,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,kFAAkF,CAAC,CAAC;wBACzH,OAAO;oBACT,CAAC;oBACD,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;oBACnE,MAAM;gBAER;oBACE,uFAAuF;oBACvF,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;YACvD,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,2DAA2D,CAAC,CAAC;QACpG,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB,CAAC,MAAc,EAAE,SAAiB,EAAE,OAAY;QAC5E,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,IAAI,OAAO,GAAG,oBAAoB,OAAO,CAAC,MAAM,OAAO,CAAC;QAExD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;YAC9E,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC;YACrD,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YAE3D,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,MAAM,CAAC,UAAU,KAAK,eAAe,IAAI,CAAC;YACpE,OAAO,IAAI,YAAY,MAAM,CAAC,QAAQ,MAAM,CAAC;YAC7C,OAAO,IAAI,cAAc,MAAM,IAAI,CAAC;YACpC,OAAO,IAAI,aAAa,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC;QACjF,CAAC;QAED,OAAO,IAAI,2DAA2D,CAAC;QACvE,OAAO,IAAI,6CAA6C,CAAC;QAEzD,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED;;;OAGG;IACK,uBAAuB,CAAC,UAAkB,EAAE,OAAY;QAC9D,kCAAkC;QAClC,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAClE,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC7C,CAAC;QAED,0CAA0C;QAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC;QAC3E,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC,QAAQ,CAAC;QACzB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,kBAAkB,CAAC,MAAc,EAAE,SAAiB,EAAE,UAAkB,EAAE,OAAa;QACnG,IAAI,CAAC;YACH,8BAA8B;YAC9B,MAAM,WAAW,GAAG,OAAO,IAAI,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAChF,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,mCAAmC,CAAC,CAAC;gBAC1E,OAAO;YACT,CAAC;YAED,kCAAkC;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YAEvE,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,CAAC,cAAc,CACvB,SAAS,EACT,aAAa,UAAU,sEAAsE,CAC9F,CAAC;gBACF,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAE9E,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,wBAAwB,CAAC,CAAC;gBAC/D,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACjE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,4CAA4C,CAAC,CAAC;gBACnF,OAAO;YACT,CAAC;YAED,MAAM,IAAI,CAAC,cAAc,CACvB,SAAS,EACT,2BAA2B,MAAM,CAAC,UAAU,sBAAsB,MAAM,CAAC,QAAQ,IAAI,CACtF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;YAChD,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,mDAAmD,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,kBAAkB,CAAC,MAAc,EAAE,SAAiB,EAAE,UAAkB,EAAE,OAAa;QACnG,IAAI,CAAC;YACH,8BAA8B;YAC9B,MAAM,WAAW,GAAG,OAAO,IAAI,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAChF,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,mCAAmC,CAAC,CAAC;gBAC1E,OAAO;YACT,CAAC;YAED,kCAAkC;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YAEvE,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,CAAC,cAAc,CACvB,SAAS,EACT,aAAa,UAAU,sEAAsE,CAC9F,CAAC;gBACF,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;YAC7E,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;gBAC3D,OAAO;YACT,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;YAClC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAExE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,2BAA2B,CAAC,CAAC;gBAClE,OAAO;YACT,CAAC;YAED,IAAI,eAAe,GAAG,cAAc,MAAM,CAAC,UAAU,qBAAqB,CAAC;YAE3E,sEAAsE;YACtE,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAC1E,IAAI,eAAe,EAAE,CAAC;oBACpB,eAAe,IAAI,+BAA+B,eAAe,CAAC,UAAU,IAAI,CAAC;gBACnF,CAAC;qBAAM,CAAC;oBACN,eAAe,IAAI,6DAA6D,CAAC;gBACnF,CAAC;YACH,CAAC;YAED,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;YAChD,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,mDAAmD,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB,CAAC,MAAc,EAAE,SAAiB;QAC/D,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BA6BI,CAAC;QAEzB,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,oBAAoB,CAAC,MAAc,EAAE,SAAiB,EAAE,OAAe;QACnF,IAAI,CAAC;YACH,oBAAoB;YACpB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YACjE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,CAAC,cAAc,CACvB,SAAS,EACT,mFAAmF,CACpF,CAAC;gBACF,OAAO;YACT,CAAC;YAED,oBAAoB;YACpB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACvE,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,MAAM,IAAI,CAAC,cAAc,CACvB,SAAS,EACT,wEAAwE,CACzE,CAAC;gBACF,OAAO;YACT,CAAC;YAED,sCAAsC;YACtC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACxB,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,+CAA+C,CAAC,CAAC;gBACtF,OAAO;YACT,CAAC;YAED,4BAA4B;YAC5B,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9D,MAAM,IAAI,CAAC,cAAc,CACvB,SAAS,EACT,YAAY,YAAY,CAAC,UAAU,wFAAwF,CAC5H,CAAC;gBACF,OAAO;YACT,CAAC;YAED,4BAA4B;YAC5B,MAAM,gBAAgB,GAAG,IAAA,SAAM,GAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,uDAAuD,gBAAgB,EAAE,CAAC,CAAC;YAEvF,4EAA4E;YAC5E,iDAAiD;YACjD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;YAClF,OAAO,CAAC,GAAG,CAAC,gCAAgC,eAAe,gBAAgB,gBAAgB,EAAE,CAAC,CAAC;YAC/F,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,EAAE,eAAe,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC1F,CAAC;YAED,yBAAyB;YACzB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,YAAY,CAAC,QAAQ,EAAE;gBAC3E,IAAI,EAAE,mBAAW,CAAC,OAAO;gBACzB,SAAS,EAAE,gBAAgB;gBAC3B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,OAAO;gBACP,MAAM;aACP,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,6DAA6D;gBAC7D,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBAC1B,oEAAoE;oBACpE,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,kDAAkD,CAAC,CAAC;gBAC3F,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;YACxD,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,oDAAoD,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc,CAAC,SAAiB,EAAE,IAAY;QAC1D,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;gBACjC,IAAI,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE;gBAC/B,IAAI,EAAE;oBACJ,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC;iBAClC;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,EAAE,OAAO,IAAI,KAAK,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,MAAc,EAAE,IAAY;QAC5C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;gBAClC,MAAM,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE;gBACtC,IAAI,EAAE;oBACJ,UAAU,EAAE,MAAM;oBAClB,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC;iBAClC;aACF,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,EAAE,OAAO,IAAI,KAAK,CAAC,CAAC;YAClE,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,kBAAkB,CAAC,MAAc,EAAE,cAAsB,gBAAgB;QAC7E,OAAO,CAAC,GAAG,CAAC,oDAAoD,MAAM,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;gBACjD,MAAM,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE;gBACtC,IAAI,EAAE;oBACJ,UAAU,EAAE,MAAM;oBAClB,QAAQ,EAAE,aAAa;oBACvB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;wBACtB,MAAM,EAAE,KAAK;wBACb,IAAI,EAAE;4BACJ,QAAQ,EAAE;gCACR;oCACE,GAAG,EAAE,UAAU;oCACf,OAAO,EAAE,WAAW;iCACrB;6BACF;yBACF;qBACF,CAAC;iBACH;aACF,CAAC,CAAC;YACH,OAAO,MAAM,EAAE,IAAI,EAAE,UAAU,IAAI,IAAI,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,EAAE,OAAO,IAAI,KAAK,CAAC,CAAC;YAC1E,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,eAAe,CAAI,SAAiB,EAAE,EAAoB;QACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACvE,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,sDAAsD;QAC7F,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC;QACvB,CAAC;gBAAS,CAAC;YACT,sDAAsD;YACtD,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,OAAO,EAAE,CAAC;gBACjD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACK,mBAAmB,CAAC,IAAY,EAAE,QAAgB,IAAI,CAAC,oBAAoB;QACjF,2CAA2C;QAC3C,MAAM,oBAAoB,GAAG,EAAE,CAAC,CAAC,0CAA0C;QAC3E,MAAM,cAAc,GAAG,KAAK,GAAG,oBAAoB,CAAC;QAEpD,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;QAED,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,aAAa,GAAG,IAAI,CAAC;QAEzB,OAAO,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,IAAI,aAAa,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC3B,MAAM;YACR,CAAC;YAED,oEAAoE;YACpE,IAAI,UAAU,GAAG,cAAc,CAAC;YAEhC,qCAAqC;YACrC,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;YACpE,IAAI,WAAW,GAAG,cAAc,GAAG,GAAG,EAAE,CAAC,CAAC,iDAAiD;gBACzF,UAAU,GAAG,WAAW,GAAG,CAAC,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,mCAAmC;gBACnC,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;gBACjE,IAAI,SAAS,GAAG,cAAc,GAAG,GAAG,EAAE,CAAC,CAAC,6CAA6C;oBACnF,UAAU,GAAG,SAAS,GAAG,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;YACpD,aAAa,GAAG,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACtD,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,sBAAsB,CAAC,SAAiB,EAAE,QAAe,EAAE,MAAe;QAC9E,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1G,CAAC;IAEO,KAAK,CAAC,uBAAuB,CAAC,SAAiB,EAAE,QAAe,EAAE,MAAe;QACvF,IAAI,CAAC;YACH,kCAAkC;YAClC,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC9C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,yBAAyB;gBAC9C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC3C,CAAC;YAED,4DAA4D;YAC5D,+EAA+E;YAC/E,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;gBACjC,IAAI,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE;gBAC/B,IAAI,EAAE;oBACJ,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;wBACtB,MAAM,EAAE,KAAK;wBACb,IAAI,EAAE;4BACJ,QAAQ;yBACT;qBACF,CAAC;iBACH;aACF,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,EAAE,OAAO,IAAI,KAAK,CAAC,CAAC;YAC9E,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,wBAAwB,CAAC,SAAiB,EAAE,QAAe,EAAE,WAAoB,EAAE,MAAe;QACtG,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IACzH,CAAC;IAEO,KAAK,CAAC,yBAAyB,CAAC,SAAiB,EAAE,QAAe,EAAE,WAAoB,EAAE,MAAe;QAC/G,IAAI,CAAC;YACH,kCAAkC;YAClC,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC9C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC;gBACpB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC3C,CAAC;YAED,4DAA4D;YAC5D,IAAI,WAAW,GAAG,aAAa,CAAC;YAChC,IAAI,WAAW,EAAE,CAAC;gBAChB,WAAW,IAAI,eAAe,WAAW,EAAE,CAAC;YAC9C,CAAC;YAED,0CAA0C;YAC1C,MAAM,aAAa,GAAG;gBACpB,GAAG,QAAQ;gBACX;oBACE,GAAG,EAAE,UAAU;oBACf,OAAO,EAAE,WAAW;iBACrB;aACF,CAAC;YAEF,wCAAwC;YACxC,+EAA+E;YAC/E,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;gBACjC,IAAI,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE;gBAC/B,IAAI,EAAE;oBACJ,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;wBACtB,MAAM,EAAE,KAAK;wBACb,IAAI,EAAE;4BACJ,QAAQ,EAAE,aAAa;yBACxB;qBACF,CAAC;iBACH;aACF,CAAC,CAAC;YAEH,kCAAkC;YAClC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACrC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAE5C,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,EAAE,OAAO,IAAI,KAAK,CAAC,CAAC;YAChF,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;YAE5D,wCAAwC;YACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC;gBAChC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI;aACnC,CAAC,CAAC;YAEH,4CAA4C;YAC5C,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACxB,eAAe,EAAE,IAAI,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC;oBACrD,uBAAuB,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;wBAC3C,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;oBACtC,CAAC;iBACF,CAAC;aACH,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;YAC9D,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,8CAA8C,EAAE,KAAK,CAAC,CAAC;YACrE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;YAEvD,6BAA6B;YAC7B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,8EAA8E;gBAC9E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACvB,CAAC;YAED,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,KAAK,CAAC,CAAC;YACpE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;CACF;AA77BD,sDA67BC"}
@@ -8,54 +8,54 @@ export declare class JsonStore {
8
8
  private data;
9
9
  private saveTimer;
10
10
  private readonly SAVE_DELAY;
11
+ private static readonly CURRENT_VERSION;
11
12
  constructor(storePath?: string);
12
13
  /**
13
14
  * Initialize store by loading data from disk
14
15
  */
15
16
  initialize(): Promise<void>;
17
+ /**
18
+ * Migrate from legacy single-device schema to multi-device schema
19
+ */
20
+ private migrateFromLegacy;
16
21
  /**
17
22
  * Store binding code with expiration
18
- * @param code Binding code
19
- * @param bindingCode Binding code object
20
23
  */
21
24
  setBindingCode(code: string, bindingCode: BindingCode): Promise<void>;
22
25
  /**
23
26
  * Get binding code
24
- * @param code Binding code
25
- * @returns Binding code object or null if not found/expired
26
27
  */
27
28
  getBindingCode(code: string): BindingCode | null;
28
29
  /**
29
30
  * Delete binding code
30
- * @param code Binding code
31
31
  */
32
32
  deleteBindingCode(code: string): Promise<void>;
33
33
  /**
34
34
  * Set user binding
35
- * @param openId Feishu user open_id
36
- * @param binding User binding object
37
35
  */
38
36
  setUserBinding(openId: string, binding: UserBinding): Promise<void>;
39
37
  /**
40
38
  * Get user binding
41
- * @param openId Feishu user open_id
42
- * @returns User binding or null if not found
43
39
  */
44
40
  getUserBinding(openId: string): UserBinding | null;
45
41
  /**
46
- * Get device binding
47
- * @param deviceId Device unique identifier
48
- * @returns User binding or null if not found
42
+ * Get user openId by device ID (reverse lookup)
43
+ */
44
+ getUserByDeviceId(deviceId: string): string | null;
45
+ /**
46
+ * Set device-to-user mapping
47
+ */
48
+ setDeviceToUserMap(deviceId: string, openId: string): Promise<void>;
49
+ /**
50
+ * Remove device-to-user mapping
49
51
  */
50
- getDeviceBinding(deviceId: string): UserBinding | null;
52
+ removeDeviceToUserMap(deviceId: string): Promise<void>;
51
53
  /**
52
- * Delete user binding
53
- * @param openId Feishu user open_id
54
+ * Delete user binding and all associated device mappings
54
55
  */
55
56
  deleteUserBinding(openId: string): Promise<void>;
56
57
  /**
57
- * Update user last active time
58
- * @param openId Feishu user open_id
58
+ * Update last active time for the active device of a user
59
59
  */
60
60
  updateLastActive(openId: string): Promise<void>;
61
61
  /**
@@ -84,7 +84,7 @@ export declare class JsonStore {
84
84
  getStats(): {
85
85
  bindingCodes: number;
86
86
  userBindings: number;
87
- deviceBindings: number;
87
+ devices: number;
88
88
  };
89
89
  }
90
90
  //# sourceMappingURL=JsonStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"JsonStore.d.ts","sourceRoot":"","sources":["../../src/storage/JsonStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAWpD;;;GAGG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,IAAI,CAAY;IACxB,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;gBAEvB,SAAS,CAAC,EAAE,MAAM;IAS9B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAyBjC;;;;OAIG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3E;;;;OAIG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAiBhD;;;OAGG;IACG,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpD;;;;OAIG;IACG,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAMzE;;;;OAIG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAIlD;;;;OAIG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAItD;;;OAGG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAStD;;;OAGG;IACG,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUrD;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAgBlC;;OAEG;YACW,YAAY;IAa1B;;OAEG;YACW,IAAI;IASlB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ5B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAS5B;;OAEG;IACH,QAAQ,IAAI;QACV,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;KACxB;CAOF"}
1
+ {"version":3,"file":"JsonStore.d.ts","sourceRoot":"","sources":["../../src/storage/JsonStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAqB,MAAM,UAAU,CAAC;AAYvE;;;GAGG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,IAAI,CAAY;IACxB,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAK;gBAEhC,SAAS,CAAC,EAAE,MAAM;IAU9B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAgCjC;;OAEG;YACW,iBAAiB;IAqC/B;;OAEG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3E;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAiBhD;;OAEG;IACG,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpD;;OAEG;IACG,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IASzE;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAIlD;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIlD;;OAEG;IACG,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzE;;OAEG;IACG,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5D;;OAEG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYtD;;OAEG;IACG,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYrD;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAgBlC;;OAEG;YACW,YAAY;IAa1B;;OAEG;YACW,IAAI;IASlB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ5B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAU5B;;OAEG;IACH,QAAQ,IAAI;QACV,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;KACjB;CAOF"}