@phystack/hub-device 4.5.4-dev → 4.5.6-dev

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.
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/sysinfo/node.ts"],"names":[],"mappings":"AAsXA,wBAAgB,wBAAwB,IAAI,MAAM,GAAG,SAAS,CA0B7D;AAOD,wBAAgB,gBAAgB,IAAI,MAAM,CAAC,UAAU,CAcpD;AAwgBD,wBAAsB,oBAAoB,iBAmEzC;AAaD,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/sysinfo/node.ts"],"names":[],"mappings":"AAmWA,wBAAgB,wBAAwB,IAAI,MAAM,GAAG,SAAS,CA0B7D;AAOD,wBAAgB,gBAAgB,IAAI,MAAM,CAAC,UAAU,CAcpD;AAoaD,wBAAsB,oBAAoB,iBAmEzC;AAaD,eAAe,oBAAoB,CAAC"}
@@ -30,20 +30,6 @@ const PULSEAUDIO_TIMEOUTS = {
30
30
  LIST_DEVICES: 5000,
31
31
  };
32
32
  let pulseAudioServerPath;
33
- function buildAudioDescription(name, formFactor, bus, vendor, isInput) {
34
- const parts = [name];
35
- if (formFactor === 'internal') {
36
- parts.push(`(Built-in ${isInput ? 'Microphone' : 'Speaker'})`);
37
- }
38
- else if (formFactor) {
39
- parts.push(`(${formFactor})`);
40
- }
41
- if (bus)
42
- parts.push(`via ${bus.toUpperCase()}`);
43
- if (vendor && !name.includes(vendor))
44
- parts.push(`- ${vendor}`);
45
- return parts.join(' ');
46
- }
47
33
  function parseAudioDevice(block, isInput) {
48
34
  const lines = block.split('\n');
49
35
  const device = {};
@@ -127,6 +113,12 @@ function parseAudioDevice(block, isInput) {
127
113
  }
128
114
  }
129
115
  }
116
+ else if (trimmed.includes('device.product.name =')) {
117
+ const match = trimmed.match(/"([^"]+)"/);
118
+ if (match) {
119
+ device.productName = match[1];
120
+ }
121
+ }
130
122
  else if (trimmed.includes('device.form_factor =')) {
131
123
  const match = trimmed.match(/"([^"]+)"/);
132
124
  if (match)
@@ -137,17 +129,6 @@ function parseAudioDevice(block, isInput) {
137
129
  if (match)
138
130
  device.bus = match[1];
139
131
  }
140
- else if (trimmed.includes('device.vendor.name =')) {
141
- const match = trimmed.match(/"([^"]+)"/);
142
- if (match && !device.description)
143
- device.description = match[1];
144
- }
145
- else if (trimmed.includes('device.product.name =')) {
146
- const match = trimmed.match(/"([^"]+)"/);
147
- if (match) {
148
- device.productName = match[1];
149
- }
150
- }
151
132
  }
152
133
  if (isInput && device.identifier?.includes('.monitor')) {
153
134
  return null;
@@ -157,22 +138,17 @@ function parseAudioDevice(block, isInput) {
157
138
  if (ports.length > 0) {
158
139
  device.availablePorts = ports;
159
140
  console.log(`[Audio] Device ${device.identifier} has ${ports.length} ports, active: ${device.activePort}`);
160
- const availablePorts = ports.filter(p => p.available === true);
161
- device.available = availablePorts.length > 0;
162
141
  }
163
142
  else {
164
143
  console.log(`[Audio] Device ${device.identifier} has NO ports detected`);
165
- device.available = false;
166
144
  }
145
+ const availablePorts = ports.filter(p => p.available === true);
146
+ const deviceAvailable = availablePorts.length > 0;
167
147
  let cardMatch = device.identifier?.match(/^([^_]+)_(output|input|sink|source)\.([^.]+(?:\.[^.]+)*)\.(.+)$/);
168
148
  if (cardMatch) {
169
149
  const prefix = cardMatch[1];
170
150
  const cardId = cardMatch[3];
171
- const profile = cardMatch[4];
172
- const deviceType = cardMatch[2];
173
- const profileType = deviceType === 'input' || deviceType === 'source' ? 'input' : 'output';
174
151
  device.cardName = `${prefix}_card.${cardId}`;
175
- device.cardProfile = `${profileType}:${profile}`;
176
152
  }
177
153
  else {
178
154
  cardMatch = device.identifier?.match(/^([^_]+)_(output|input|sink|source)\.(.+)$/);
@@ -231,60 +207,62 @@ function parseAudioDevice(block, isInput) {
231
207
  }
232
208
  }
233
209
  }
234
- if (device.available === undefined) {
235
- device.available = true;
236
- }
237
- if (device.displayName) {
238
- device.description = buildAudioDescription(device.displayName, device.formFactor || '', device.bus || '', device.description || '', isInput);
239
- }
240
- device.label = createDeviceLabel(device, ports, isInput);
210
+ device.label = createDeviceLabel(device, ports, isInput, device.formFactor, device.bus, false, deviceAvailable, device.activePort);
241
211
  return device;
242
212
  }
243
- function createDeviceLabel(device, ports, isInput) {
213
+ function createDeviceLabel(device, ports, isInput, formFactor, bus, isDefault, available, activePort) {
244
214
  const productName = device.productName;
245
- const activePort = device.activePort;
246
- const activePortInfo = ports.find(p => p.name === activePort);
215
+ let baseLabel = '';
216
+ const activePortInfo = activePort ? ports.find(p => p.name === activePort) : undefined;
247
217
  if (productName) {
248
- return `${productName} (${isInput ? 'Microphone' : 'Speaker'})`;
218
+ baseLabel = `${productName} (${isInput ? 'Microphone' : 'Speaker'})`;
249
219
  }
250
- if (activePortInfo && activePortInfo.description) {
220
+ else if (activePortInfo && activePortInfo.description) {
251
221
  const portDesc = activePortInfo.description;
252
222
  if (portDesc.toLowerCase().includes('headphones')) {
253
- return 'Headphones';
223
+ baseLabel = 'Headphones';
254
224
  }
255
225
  else if (portDesc.toLowerCase().includes('hdmi') ||
256
226
  portDesc.toLowerCase().includes('displayport')) {
257
- return `HDMI Display (${portDesc})`;
227
+ baseLabel = `HDMI Display`;
258
228
  }
259
229
  else if (portDesc.toLowerCase().includes('microphone') ||
260
230
  portDesc.toLowerCase().includes('mic')) {
261
- return 'Microphone';
231
+ baseLabel = 'Microphone';
262
232
  }
263
233
  else if (portDesc.toLowerCase().includes('line')) {
264
- return `Line ${isInput ? 'In' : 'Out'}`;
234
+ baseLabel = `Line ${isInput ? 'In' : 'Out'}`;
265
235
  }
266
236
  else if (portDesc.toLowerCase().includes('speaker')) {
267
- return 'Speakers';
237
+ baseLabel = 'Speakers';
268
238
  }
269
239
  else {
270
- return `${portDesc} (${isInput ? 'Input' : 'Output'})`;
240
+ baseLabel = `${portDesc} (${isInput ? 'Input' : 'Output'})`;
271
241
  }
272
242
  }
273
- if (device.cardProfile) {
274
- if (device.cardProfile.includes('analog-stereo')) {
275
- return isInput ? 'Analog Microphone' : 'Analog Speakers';
276
- }
277
- else if (device.cardProfile.includes('hdmi-stereo')) {
278
- return 'HDMI Audio';
279
- }
280
- else if (device.cardProfile.includes('hdmi-surround')) {
281
- return 'HDMI Surround Audio';
282
- }
243
+ else if (device.displayName) {
244
+ baseLabel = `${device.displayName} (${isInput ? 'Input' : 'Output'})`;
245
+ }
246
+ else {
247
+ baseLabel = device.identifier || 'Unknown Audio Device';
248
+ }
249
+ const statusParts = [];
250
+ if (isDefault) {
251
+ statusParts.push('Default');
252
+ }
253
+ if (available !== undefined) {
254
+ statusParts.push(available ? 'Available' : 'Unavailable');
255
+ }
256
+ if (formFactor && formFactor !== 'internal') {
257
+ statusParts.push(formFactor.charAt(0).toUpperCase() + formFactor.slice(1));
283
258
  }
284
- if (device.displayName) {
285
- return `${device.displayName} (${isInput ? 'Input' : 'Output'})`;
259
+ if (bus && bus.toLowerCase() !== 'pci') {
260
+ statusParts.push(bus.toUpperCase());
286
261
  }
287
- return device.identifier || 'Unknown Audio Device';
262
+ if (statusParts.length > 0) {
263
+ return `${baseLabel} (${statusParts.join(', ')})`;
264
+ }
265
+ return baseLabel;
288
266
  }
289
267
  function discoverPulseAudioSocket() {
290
268
  try {
@@ -541,85 +519,6 @@ function getDefaultDevices() {
541
519
  return {};
542
520
  }
543
521
  }
544
- function parseCardProfiles(cardBlock) {
545
- const profiles = [];
546
- const lines = cardBlock.split('\n');
547
- let inProfilesSection = false;
548
- const portProfileMap = new Map();
549
- let inPortsSection = false;
550
- let currentPortName = '';
551
- for (const line of lines) {
552
- const trimmed = line.trim();
553
- if (trimmed.startsWith('Ports:')) {
554
- inPortsSection = true;
555
- continue;
556
- }
557
- if (inPortsSection && trimmed.startsWith('Part of profile(s):')) {
558
- const profileList = trimmed.replace('Part of profile(s):', '').trim();
559
- if (currentPortName) {
560
- portProfileMap.set(currentPortName, profileList.split(',').map(p => p.trim()));
561
- }
562
- continue;
563
- }
564
- if (inPortsSection) {
565
- if (trimmed.match(/^[a-z]+-[a-z]+-[^:]+:/)) {
566
- currentPortName = trimmed.split(':')[0].trim();
567
- }
568
- else if (trimmed.startsWith('Active Profile:') || trimmed.match(/^[A-Z]/)) {
569
- inPortsSection = false;
570
- }
571
- }
572
- if (trimmed.startsWith('Profiles:')) {
573
- inProfilesSection = true;
574
- continue;
575
- }
576
- if (inProfilesSection) {
577
- if (trimmed.startsWith('Active Profile:') || trimmed.startsWith('Ports:')) {
578
- inProfilesSection = false;
579
- continue;
580
- }
581
- const profileMatch = trimmed.match(/^([^:]+):\s*(.+?)\s*\([^)]+available:\s*(yes|no)\)/);
582
- if (profileMatch) {
583
- const profileName = profileMatch[1].trim();
584
- const description = profileMatch[2].trim();
585
- const available = profileMatch[3].trim() === 'yes';
586
- const ports = [];
587
- for (const [portName, profileList] of portProfileMap.entries()) {
588
- if (profileList.includes(profileName)) {
589
- ports.push(portName);
590
- }
591
- }
592
- profiles.push({
593
- profile: profileName,
594
- available,
595
- description,
596
- ports,
597
- });
598
- }
599
- }
600
- }
601
- return profiles;
602
- }
603
- function getCardProfiles(cardName) {
604
- try {
605
- const env = getPulseAudioEnv();
606
- const cardsOutput = (0, child_process_1.execSync)(PULSEAUDIO_COMMANDS.LIST_CARDS, {
607
- encoding: 'utf-8',
608
- timeout: PULSEAUDIO_TIMEOUTS.LIST_DEVICES,
609
- env,
610
- });
611
- const cardBlocks = cardsOutput.split(/^Card #/m);
612
- for (const block of cardBlocks.slice(1)) {
613
- if (block.includes(`Name: ${cardName}`)) {
614
- return parseCardProfiles(block);
615
- }
616
- }
617
- }
618
- catch (error) {
619
- console.log(`Failed to get profiles for card ${cardName}:`, error);
620
- }
621
- return [];
622
- }
623
522
  function getAudioDevices() {
624
523
  if (!startPulseAudio()) {
625
524
  console.error('Audio detection failed: PulseAudio unavailable');
@@ -629,7 +528,6 @@ function getAudioDevices() {
629
528
  console.log(`Default sink: ${defaultSink}, Default source: ${defaultSource}`);
630
529
  const outputs = [];
631
530
  const inputs = [];
632
- const cardProfilesCache = new Map();
633
531
  try {
634
532
  const env = getPulseAudioEnv();
635
533
  const sinksOutput = (0, child_process_1.execSync)(PULSEAUDIO_COMMANDS.LIST_SINKS, {
@@ -643,12 +541,16 @@ function getAudioDevices() {
643
541
  .forEach(block => {
644
542
  const device = parseAudioDevice(block, false);
645
543
  if (device) {
646
- device.isDefault = device.identifier === defaultSink;
647
- if (device.cardName && !cardProfilesCache.has(device.cardName)) {
648
- cardProfilesCache.set(device.cardName, getCardProfiles(device.cardName));
649
- }
650
- if (device.cardName) {
651
- device.availableProfiles = cardProfilesCache.get(device.cardName) || [];
544
+ const isDefault = device.identifier === defaultSink;
545
+ if (isDefault && device.label) {
546
+ if (!device.label.includes('Default')) {
547
+ if (device.label.includes('(')) {
548
+ device.label = device.label.replace(')', ', Default)');
549
+ }
550
+ else {
551
+ device.label = `${device.label} (Default)`;
552
+ }
553
+ }
652
554
  }
653
555
  outputs.push(device);
654
556
  }
@@ -671,12 +573,16 @@ function getAudioDevices() {
671
573
  .forEach(block => {
672
574
  const device = parseAudioDevice(block, true);
673
575
  if (device) {
674
- device.isDefault = device.identifier === defaultSource;
675
- if (device.cardName && !cardProfilesCache.has(device.cardName)) {
676
- cardProfilesCache.set(device.cardName, getCardProfiles(device.cardName));
677
- }
678
- if (device.cardName) {
679
- device.availableProfiles = cardProfilesCache.get(device.cardName) || [];
576
+ const isDefault = device.identifier === defaultSource;
577
+ if (isDefault && device.label) {
578
+ if (!device.label.includes('Default')) {
579
+ if (device.label.includes('(')) {
580
+ device.label = device.label.replace(')', ', Default)');
581
+ }
582
+ else {
583
+ device.label = `${device.label} (Default)`;
584
+ }
585
+ }
680
586
  }
681
587
  inputs.push(device);
682
588
  }
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/sysinfo/node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/sysinfo/node.ts"],"names":[],"mappings":";;;;;AAmWA,4DA0BC;AAOD,4CAcC;AAoaD,oDAmEC;AAz3BD,0EAAmC;AACnC,iDAAyC;AAMzC,MAAM,mBAAmB,GAAG;IAC1B,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,mCAAmC;IACzC,YAAY,EAAE,2DAA2D;IACzE,IAAI,EAAE,SAAS;IACf,YAAY,EAAE,0BAA0B;IACxC,gBAAgB,EAAE,oCAAoC;IACtD,UAAU,EAAE,kBAAkB;IAC9B,YAAY,EAAE,oBAAoB;IAClC,UAAU,EAAE,kBAAkB;IAC9B,cAAc,EAAE,CAAC,QAAgB,EAAE,QAAgB,EAAE,WAAmB,EAAE,EAAE,CAC1E,6CAA6C,QAAQ,cAAc,QAAQ,wCAAwC,WAAW,GAAG;IACnI,gBAAgB,EAAE,CAAC,QAAgB,EAAE,UAAkB,EAAE,WAAmB,EAAE,EAAE,CAC9E,+CAA+C,QAAQ,gBAAgB,UAAU,0CAA0C,WAAW,GAAG;CACnI,CAAC;AAEX,MAAM,mBAAmB,GAAG;IAC1B,UAAU,EAAE,IAAI;IAChB,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,IAAI;IACX,YAAY,EAAE,IAAI;IAClB,WAAW,EAAE,IAAI;IACjB,YAAY,EAAE,IAAI;CACV,CAAC;AAGX,IAAI,oBAAwC,CAAC;AAK7C,SAAS,gBAAgB,CAAC,KAAa,EAAE,OAAgB;IACvD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,MAAM,GAAyB,EAAE,CAAC;IACxC,MAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,IAAI,cAAc,GAAG,KAAK,CAAC;IAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAE5B,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACvD,CAAC;aAAM,IAAI,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/D,CAAC;aAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YAE3C,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAC5D,IAAI,SAAS,EAAE,CAAC;gBACb,MAAc,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAEhD,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACvE,IAAI,aAAa,EAAE,CAAC;gBACjB,MAAc,CAAC,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,KAAK;gBAAE,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACpD,CAAC;aAAM,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACvC,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACvD,CAAC;aAAM,IAAI,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YAC7C,MAAc,CAAC,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,8BAA+B,MAAc,CAAC,UAAU,EAAE,CAAC,CAAC;QAC1E,CAAC;aAAM,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,cAAc,GAAG,IAAI,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QAC3D,CAAC;aAAM,IAAI,cAAc,EAAE,CAAC;YAE1B,IAAI,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzD,cAAc,GAAG,KAAK,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,wCAAwC,KAAK,CAAC,MAAM,QAAQ,CAAC,CAAC;YAC5E,CAAC;iBAAM,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAGtD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;gBACtE,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBACrC,MAAM,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBAC5C,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;oBAEjC,MAAM,IAAI,GAAc;wBACtB,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,eAAe;qBAC7B,CAAC;oBAGF,IAAI,WAAW,EAAE,CAAC;wBAChB,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;wBACvD,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;wBAE7D,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,CACtC,gEAAgE,CACjE,CAAC;wBAEF,IAAI,SAAS;4BAAE,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;wBAC/C,IAAI,aAAa;4BAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAGlE,IAAI,cAAc,EAAE,CAAC;4BACnB,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;4BACjD,IAAI,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;gCACpF,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;4BACzB,CAAC;iCAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;gCAC9C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;4BACzB,CAAC;iCAAM,CAAC;gCACN,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;4BACxB,CAAC;wBACH,CAAC;oBACH,CAAC;oBAED,OAAO,CAAC,GAAG,CAAC,wBAAwB,QAAQ,MAAM,eAAe,EAAE,CAAC,CAAC;oBACrE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;YAErD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACzC,IAAI,KAAK,EAAE,CAAC;gBACT,MAAc,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;YACpD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACzC,IAAI,KAAK;gBAAG,MAAc,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC;aAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACzC,IAAI,KAAK;gBAAG,MAAc,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAGD,IAAI,OAAO,IAAI,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAGpC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC;QAC9B,OAAO,CAAC,GAAG,CACT,kBAAkB,MAAM,CAAC,UAAU,QAAQ,KAAK,CAAC,MAAM,mBAAoB,MAAc,CAAC,UAAU,EAAE,CACvG,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,UAAU,wBAAwB,CAAC,CAAC;IAC3E,CAAC;IAGD,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC;IAC/D,MAAM,eAAe,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;IAalD,IAAI,SAAS,GAAG,MAAM,CAAC,UAAU,EAAE,KAAK,CACtC,iEAAiE,CAClE,CAAC;IACF,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAE3B,MAAc,CAAC,QAAQ,GAAG,GAAG,MAAM,SAAS,MAAM,EAAE,CAAC;IACxD,CAAC;SAAM,CAAC;QAEN,SAAS,GAAG,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,4CAA4C,CAAC,CAAC;QACnF,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAE3B,MAAc,CAAC,QAAQ,GAAG,GAAG,MAAM,SAAS,MAAM,EAAE,CAAC;QACxD,CAAC;aAAM,CAAC;YAEN,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,kDAAkD,CAAC,CAAC;YAC9F,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAE/B,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;oBAC/B,MAAM,WAAW,GAAG,IAAA,wBAAQ,EAAC,wBAAwB,EAAE;wBACrD,QAAQ,EAAE,OAAO;wBACjB,OAAO,EAAE,IAAI;wBACb,KAAK,EAAE,MAAM;wBACb,GAAG;qBACJ,CAAC,CAAC;oBACH,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,UAAU,EAAE,CAAC,CAAC,CAAC;oBAC1F,IAAI,QAAQ,EAAE,CAAC;wBAGb,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;wBAC/D,IAAI,aAAa,EAAE,CAAC;4BAEjB,MAAc,CAAC,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;wBAC9C,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;gBAEjB,CAAC;YACH,CAAC;iBAAM,CAAC;gBAEN,MAAM,UAAU,GAAI,MAAc,CAAC,UAAU,CAAC;gBAC9C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;oBAC7B,IAAI,CAAC;wBACH,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;wBAC/B,MAAM,WAAW,GAAG,IAAA,wBAAQ,EAAC,wBAAwB,EAAE;4BACrD,QAAQ,EAAE,OAAO;4BACjB,OAAO,EAAE,IAAI;4BACb,KAAK,EAAE,MAAM;4BACb,GAAG;yBACJ,CAAC,CAAC;wBACH,MAAM,QAAQ,GAAG,WAAW;6BACzB,KAAK,CAAC,IAAI,CAAC;6BACX,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,UAAU,EAAE,CAAC,CAAC,CAAC;wBACpD,IAAI,QAAQ,EAAE,CAAC;4BAEb,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;4BAC/D,IAAI,aAAa,EAAE,CAAC;gCAEjB,MAAc,CAAC,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;4BAC9C,CAAC;wBACH,CAAC;oBACH,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;oBAEjB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAID,MAAM,CAAC,KAAK,GAAG,iBAAiB,CAC9B,MAAM,EACN,KAAK,EACL,OAAO,EACN,MAAc,CAAC,UAAU,EACzB,MAAc,CAAC,GAAG,EACnB,KAAK,EACL,eAAe,EACd,MAAc,CAAC,UAAU,CAC3B,CAAC;IAEF,OAAO,MAAqB,CAAC;AAC/B,CAAC;AAMD,SAAS,iBAAiB,CACxB,MAA4B,EAC5B,KAAkB,EAClB,OAAgB,EAChB,UAAmB,EACnB,GAAY,EACZ,SAAmB,EACnB,SAAmB,EACnB,UAAmB;IAEnB,MAAM,WAAW,GAAI,MAAc,CAAC,WAAW,CAAC;IAChD,IAAI,SAAS,GAAG,EAAE,CAAC;IAGnB,MAAM,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAGvF,IAAI,WAAW,EAAE,CAAC;QAChB,SAAS,GAAG,GAAG,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC;IACvE,CAAC;SAEI,IAAI,cAAc,IAAI,cAAc,CAAC,WAAW,EAAE,CAAC;QACtD,MAAM,QAAQ,GAAG,cAAc,CAAC,WAAW,CAAC;QAG5C,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAClD,SAAS,GAAG,YAAY,CAAC;QAC3B,CAAC;aAAM,IACL,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;YACvC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAC9C,CAAC;YACD,SAAS,GAAG,cAAc,CAAC;QAC7B,CAAC;aAAM,IACL,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC7C,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EACtC,CAAC;YACD,SAAS,GAAG,YAAY,CAAC;QAC3B,CAAC;aAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACnD,SAAS,GAAG,QAAQ,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC/C,CAAC;aAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACtD,SAAS,GAAG,UAAU,CAAC;QACzB,CAAC;aAAM,CAAC;YAEN,SAAS,GAAG,GAAG,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC;QAC9D,CAAC;IACH,CAAC;SAEI,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QAC5B,SAAS,GAAG,GAAG,MAAM,CAAC,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC;IACxE,CAAC;SAEI,CAAC;QACJ,SAAS,GAAG,MAAM,CAAC,UAAU,IAAI,sBAAsB,CAAC;IAC1D,CAAC;IAGD,MAAM,WAAW,GAAa,EAAE,CAAC;IAGjC,IAAI,SAAS,EAAE,CAAC;QACd,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC;IAGD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IAC5D,CAAC;IAGD,IAAI,UAAU,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QAC5C,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,CAAC;IAGD,IAAI,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE,CAAC;QACvC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IACtC,CAAC;IAGD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,GAAG,SAAS,KAAK,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACpD,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAOD,SAAgB,wBAAwB;IACtC,IAAI,CAAC;QAEH,MAAM,UAAU,GAAG,IAAA,wBAAQ,EACzB,qEAAqE,EACrE;YACE,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,MAAM;SACd,CACF,CAAC,IAAI,EAAE,CAAC;QAET,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,UAAU,GAAG,GAAG,UAAU,SAAS,CAAC;YAE1C,IAAI,CAAC;gBACH,IAAA,wBAAQ,EAAC,YAAY,UAAU,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;gBACvD,OAAO,UAAU,CAAC;YACpB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;IAEjB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAOD,SAAgB,gBAAgB;IAE9B,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC1B,oBAAoB,GAAG,wBAAwB,EAAE,CAAC;QAClD,IAAI,oBAAoB,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,iCAAiC,oBAAoB,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/B,IAAI,oBAAoB,EAAE,CAAC;QACzB,GAAG,CAAC,YAAY,GAAG,QAAQ,oBAAoB,EAAE,CAAC;IACpD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAMD,SAAS,eAAe;IAEtB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC1B,oBAAoB,GAAG,wBAAwB,EAAE,CAAC;QAClD,IAAI,oBAAoB,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,0CAA0C,oBAAoB,EAAE,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAGD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;QAC/B,IAAA,wBAAQ,EAAC,mBAAmB,CAAC,IAAI,EAAE;YACjC,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,mBAAmB,CAAC,UAAU;YACvC,KAAK,EAAE,MAAM;YACb,GAAG;SACJ,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QAGpD,6BAA6B,EAAE,CAAC;QAEhC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,QAAQ,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACnD,CAAC;IAGD,IAAI,CAAC;QAEH,IAAA,wBAAQ,EAAC,mBAAmB,CAAC,IAAI,EAAE;YACjC,OAAO,EAAE,mBAAmB,CAAC,IAAI;YACjC,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;QAGH,IAAA,wBAAQ,EAAC,mBAAmB,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAGtD,IAAA,wBAAQ,EAAC,mBAAmB,CAAC,YAAY,EAAE;YACzC,OAAO,EAAE,mBAAmB,CAAC,KAAK;YAClC,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;QAGH,IAAA,wBAAQ,EAAC,mBAAmB,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAGtD,oBAAoB,GAAG,wBAAwB,EAAE,CAAC;QAClD,IAAI,oBAAoB,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,iCAAiC,oBAAoB,EAAE,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QACpE,CAAC;QAGD,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;QAC/B,IAAA,wBAAQ,EAAC,mBAAmB,CAAC,IAAI,EAAE;YACjC,OAAO,EAAE,mBAAmB,CAAC,UAAU;YACvC,KAAK,EAAE,MAAM;YACb,GAAG;SACJ,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QAGjD,6BAA6B,EAAE,CAAC;QAEhC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,+BAA+B,EAC/B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;QACF,OAAO,CAAC,KAAK,CAAC,gFAAgF,CAAC,CAAC;QAChG,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAYD,SAAS,gBAAgB,CAAC,WAAmB;IAC3C,MAAM,OAAO,GAAiB,EAAE,CAAC;IAGjC,MAAM,KAAK,GAAG,0DAA0D,CAAC;IACzE,IAAI,KAAK,CAAC;IAEV,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAE7B,OAAO,CAAC,IAAI,CAAC;YACX,IAAI;YACJ,MAAM;YACN,IAAI;YACJ,QAAQ,EAAE,MAAM,IAAI,IAAI,MAAM,EAAE;SACjC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAKD,SAAS,iBAAiB,CAAC,QAAgB,EAAE,OAAgB;IAC3D,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,mBAAmB,CAAC,UAAU,CAAC;QAC5F,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,OAAO,EAAE;YAC/B,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,IAAI;YACb,GAAG;SACJ,CAAC,CAAC;QAIH,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAG9D,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC,0BAA0B,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC;QAC3E,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,wBAAwB,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC;QAGrE,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACjD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzD,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAKD,SAAS,oBAAoB,CAAC,UAAsB,EAAE,OAAgB;IACpE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,OAAO;YACtB,CAAC,CAAC,cAAc,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,MAAM,EAAE;YACtD,CAAC,CAAC,eAAe,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QAI1D,MAAM,eAAe,GAAG,GAAG,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,CACzE,iBAAiB,EACjB,GAAG,CACJ,CAAC;QAEF,MAAM,OAAO,GAAG,OAAO;YACrB,CAAC,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC;YACtF,CAAC,CAAC,mBAAmB,CAAC,cAAc,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;QAEvF,OAAO,CAAC,GAAG,CACT,cAAc,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,QAAQ,UAAU,CAAC,QAAQ,KAAK,UAAU,CAAC,IAAI,EAAE,CAC3F,CAAC;QAEF,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;QAC/B,IAAA,wBAAQ,EAAC,OAAO,EAAE;YAChB,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,MAAM;YACb,GAAG;SACJ,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CACT,sBAAsB,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,QAAQ,UAAU,CAAC,QAAQ,GAAG,EAC/E,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAUD,SAAS,6BAA6B;IACpC,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;QAG3E,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,IAAA,wBAAQ,EAAC,mBAAmB,CAAC,YAAY,EAAE;gBACzD,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,mBAAmB,CAAC,YAAY;gBACzC,GAAG;aACJ,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAC1C,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;gBAChE,IAAA,wBAAQ,EAAC,mBAAmB,CAAC,gBAAgB,EAAE;oBAC7C,OAAO,EAAE,mBAAmB,CAAC,WAAW;oBACxC,KAAK,EAAE,MAAM;oBACb,GAAG;iBACJ,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;QACnF,CAAC;QAGD,IAAI,aAAa,GAAiB,EAAE,CAAC;QACrC,IAAI,YAAY,GAAiB,EAAE,CAAC;QAEpC,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAA,wBAAQ,EAAC,sBAAsB,EAAE;gBACnD,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;YACH,aAAa,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,WAAW,aAAa,CAAC,MAAM,wBAAwB,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,IAAA,wBAAQ,EAAC,wBAAwB,EAAE;gBACvD,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;YACH,YAAY,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,WAAW,YAAY,CAAC,MAAM,uBAAuB,CAAC,CAAC;QACrE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QACjE,CAAC;QAGD,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;YACnC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;gBAC/C,IAAI,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;oBACxC,YAAY,EAAE,CAAC;gBACjB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,+BAA+B,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;YAClC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;gBAC9C,IAAI,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;oBACvC,YAAY,EAAE,CAAC;gBACjB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,iCAAiC,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAClF,CAAC;QACH,CAAC;QAED,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,aAAa,YAAY,oDAAoD,CAAC,CAAC;QAC7F,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CACT,+CAA+C,EAC/C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;IACJ,CAAC;AACH,CAAC;AAKD,SAAS,iBAAiB;IACxB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,IAAA,wBAAQ,EAAC,mBAAmB,CAAC,IAAI,EAAE;YACpD,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,mBAAmB,CAAC,UAAU;YACvC,GAAG;SACJ,CAAC,CAAC;QAEH,MAAM,gBAAgB,GAAG,UAAU,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAChE,MAAM,kBAAkB,GAAG,UAAU,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAEpE,OAAO;YACL,WAAW,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE;YAC1C,aAAa,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE;SAC/C,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;QACvD,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAKD,SAAS,eAAe;IACtB,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;QAChE,OAAO,SAAS,CAAC;IACnB,CAAC;IAGD,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,iBAAiB,WAAW,qBAAqB,aAAa,EAAE,CAAC,CAAC;IAE9E,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,MAAM,MAAM,GAAkB,EAAE,CAAC;IAGjC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,IAAA,wBAAQ,EAAC,mBAAmB,CAAC,UAAU,EAAE;YAC3D,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,mBAAmB,CAAC,YAAY;YACzC,GAAG;SACJ,CAAC,CAAC;QACH,WAAW;aACR,KAAK,CAAC,UAAU,CAAC;aACjB,KAAK,CAAC,CAAC,CAAC;aACR,OAAO,CAAC,KAAK,CAAC,EAAE;YACf,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC9C,IAAI,MAAM,EAAE,CAAC;gBAEX,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,KAAK,WAAW,CAAC;gBAEpD,IAAI,SAAS,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBAE9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;wBACtC,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;4BAC/B,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;wBACzD,CAAC;6BAAM,CAAC;4BACN,MAAM,CAAC,KAAK,GAAG,GAAG,MAAM,CAAC,KAAK,YAAY,CAAC;wBAC7C,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC;QACH,CAAC,CAAC,CAAC;QACL,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,CAAC,MAAM,wCAAwC,CAAC,CAAC;IAClF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,iCAAiC,EACjC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;IACJ,CAAC;IAGD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;QAC/B,MAAM,aAAa,GAAG,IAAA,wBAAQ,EAAC,mBAAmB,CAAC,YAAY,EAAE;YAC/D,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,mBAAmB,CAAC,YAAY;YACzC,GAAG;SACJ,CAAC,CAAC;QACH,aAAa;aACV,KAAK,CAAC,YAAY,CAAC;aACnB,KAAK,CAAC,CAAC,CAAC;aACR,OAAO,CAAC,KAAK,CAAC,EAAE;YACf,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC7C,IAAI,MAAM,EAAE,CAAC;gBAEX,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,KAAK,aAAa,CAAC;gBAEtD,IAAI,SAAS,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBAE9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;wBACtC,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;4BAC/B,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;wBACzD,CAAC;6BAAM,CAAC;4BACN,MAAM,CAAC,KAAK,GAAG,GAAG,MAAM,CAAC,KAAK,YAAY,CAAC;wBAC7C,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtB,CAAC;QACH,CAAC,CAAC,CAAC;QACL,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,MAAM,uCAAuC,CAAC,CAAC;IAChF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,gCAAgC,EAChC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;IACJ,CAAC;IAGD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACzC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC7B,CAAC;AAEM,KAAK,UAAU,oBAAoB;IAMxC,MAAM,WAAW,GAAG;QAClB,SAAS,EAAE,GAAG;QACd,OAAO,EAAE,GAAG;QACZ,QAAQ,EAAE,GAAG;QACb,OAAO,EAAE,GAAG;QACZ,IAAI,EAAE,GAAG;QACT,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;QACR,WAAW,EAAE,GAAG;QAChB,eAAe,EAAE,GAAG;QACpB,WAAW,EAAE,GAAG;QAChB,cAAc,EAAE,GAAG;QACnB,YAAY,EAAE,GAAG;QACjB,SAAS,EAAE,GAAG;QACd,MAAM,EAAE,GAAG;QACX,OAAO,EAAE,GAAG;QACZ,EAAE,EAAE,GAAG;QACP,IAAI,EAAE,GAAG;QACT,YAAY,EAAE,GAAG;QACjB,eAAe,EAAE,GAAG;QACpB,IAAI,EAAE,GAAG;QACT,IAAI,EAAE,GAAG;QACT,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,GAAG;KACZ,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,2BAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAIvC,IAAI,SAAS,GAAG,MAAM,2BAAE,CAAC,iBAAiB,EAAE,CAAC;IAG7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,SAAS,GAAG,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC;IAGD,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,CAAC;QACzC,GAAG,KAAK;QACR,IAAI,EACF,KAAK,CAAC,IAAI;YACV,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACzF,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,SAAS,CAAC;KACjB,CAAC,CAAC,CAAC;IAGJ,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAGnC,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAGD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAEpD,OAAO,UAAU,CAAC;AACpB,CAAC;AAaD,kBAAe,oBAAoB,CAAC"}
@@ -309,28 +309,13 @@ export interface AudioPort {
309
309
  priority?: number;
310
310
  available?: boolean;
311
311
  }
312
- export interface AudioProfile {
313
- profile: string;
314
- available: boolean;
315
- description: string;
316
- ports: string[];
317
- }
318
312
  export interface AudioDevice {
319
313
  identifier: string;
320
314
  displayName: string;
321
- description?: string;
322
- formFactor?: string;
323
- bus?: string;
324
315
  volume?: number;
325
316
  muted?: boolean;
326
- isDefault?: boolean;
327
- activePort?: string;
328
317
  availablePorts?: AudioPort[];
329
- cardName?: string;
330
- cardProfile?: string;
331
318
  label?: string;
332
- available?: boolean;
333
- availableProfiles?: AudioProfile[];
334
319
  }
335
320
  export interface AudioDevices {
336
321
  outputs: AudioDevice[];
@@ -1 +1 @@
1
- {"version":3,"file":"twin.types.d.ts","sourceRoot":"","sources":["../../src/types/twin.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"twin.types.d.ts","sourceRoot":"","sources":["../../src/types/twin.types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@phystack/hub-device",
3
- "version": "4.5.4-dev",
3
+ "version": "4.5.6-dev",
4
4
  "main": "dist/index.js",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -12,8 +12,8 @@
12
12
  "format:check": "prettier --check \"src/**/*.{ts,js,json,md}\""
13
13
  },
14
14
  "dependencies": {
15
- "@phystack/axios-proxy": "4.5.4-dev",
16
- "@phystack/socket.io-proxy": "4.5.4-dev",
15
+ "@phystack/axios-proxy": "4.5.6-dev",
16
+ "@phystack/socket.io-proxy": "4.5.6-dev",
17
17
  "async-mutex": "^0.5.0",
18
18
  "axios-retry": "^4.4.1",
19
19
  "bufferutil": "^4.0.8",
@@ -35,5 +35,5 @@
35
35
  },
36
36
  "test": "react-scripts test",
37
37
  "test:coverage": "npm run test -- --coverage --watchAll=false",
38
- "gitHead": "8274a40de8b857b2f1cfe81f94c50dafbcc551ad"
38
+ "gitHead": "c3bbca2b82bd924ff3636c860628a7a1269c2a24"
39
39
  }
@@ -1,6 +1,6 @@
1
1
  import si from 'systeminformation';
2
2
  import { execSync } from 'child_process';
3
- import { AudioDevice, AudioDevices, AudioPort, AudioProfile } from '../types/twin.types';
3
+ import { AudioDevice, AudioDevices, AudioPort } from '../types/twin.types';
4
4
 
5
5
  // ============================================================================
6
6
  // PULSEAUDIO COMMANDS
@@ -33,30 +33,6 @@ const PULSEAUDIO_TIMEOUTS = {
33
33
  // Store discovered PulseAudio server socket path
34
34
  let pulseAudioServerPath: string | undefined;
35
35
 
36
- /**
37
- * Build audio device description
38
- */
39
- function buildAudioDescription(
40
- name: string,
41
- formFactor: string,
42
- bus: string,
43
- vendor: string,
44
- isInput: boolean
45
- ): string {
46
- const parts: string[] = [name];
47
-
48
- if (formFactor === 'internal') {
49
- parts.push(`(Built-in ${isInput ? 'Microphone' : 'Speaker'})`);
50
- } else if (formFactor) {
51
- parts.push(`(${formFactor})`);
52
- }
53
-
54
- if (bus) parts.push(`via ${bus.toUpperCase()}`);
55
- if (vendor && !name.includes(vendor)) parts.push(`- ${vendor}`);
56
-
57
- return parts.join(' ');
58
- }
59
-
60
36
  /**
61
37
  * Parse PulseAudio device block and extract metadata
62
38
  */
@@ -92,8 +68,8 @@ function parseAudioDevice(block: string, isInput: boolean): AudioDevice | null {
92
68
  } else if (trimmed.startsWith('Mute:')) {
93
69
  device.muted = trimmed.toLowerCase().includes('yes');
94
70
  } else if (trimmed.startsWith('Active Port:')) {
95
- device.activePort = trimmed.split('Active Port:')[1].trim();
96
- console.log(`[Audio] Found active port: ${device.activePort}`);
71
+ (device as any).activePort = trimmed.split('Active Port:')[1].trim();
72
+ console.log(`[Audio] Found active port: ${(device as any).activePort}`);
97
73
  } else if (trimmed.startsWith('Ports:')) {
98
74
  inPortsSection = true;
99
75
  console.log(`[Audio] Entering ports section for device`);
@@ -145,21 +121,18 @@ function parseAudioDevice(block: string, isInput: boolean): AudioDevice | null {
145
121
  ports.push(port);
146
122
  }
147
123
  }
148
- } else if (trimmed.includes('device.form_factor =')) {
149
- const match = trimmed.match(/"([^"]+)"/);
150
- if (match) device.formFactor = match[1];
151
- } else if (trimmed.includes('device.bus =')) {
152
- const match = trimmed.match(/"([^"]+)"/);
153
- if (match) device.bus = match[1];
154
- } else if (trimmed.includes('device.vendor.name =')) {
155
- const match = trimmed.match(/"([^"]+)"/);
156
- if (match && !device.description) device.description = match[1];
157
124
  } else if (trimmed.includes('device.product.name =')) {
158
125
  // Extract product name (e.g., "LG ULTRAFINE" for HDMI displays)
159
126
  const match = trimmed.match(/"([^"]+)"/);
160
127
  if (match) {
161
128
  (device as any).productName = match[1];
162
129
  }
130
+ } else if (trimmed.includes('device.form_factor =')) {
131
+ const match = trimmed.match(/"([^"]+)"/);
132
+ if (match) (device as any).formFactor = match[1];
133
+ } else if (trimmed.includes('device.bus =')) {
134
+ const match = trimmed.match(/"([^"]+)"/);
135
+ if (match) (device as any).bus = match[1];
163
136
  }
164
137
  }
165
138
 
@@ -174,17 +147,16 @@ function parseAudioDevice(block: string, isInput: boolean): AudioDevice | null {
174
147
  if (ports.length > 0) {
175
148
  device.availablePorts = ports;
176
149
  console.log(
177
- `[Audio] Device ${device.identifier} has ${ports.length} ports, active: ${device.activePort}`
150
+ `[Audio] Device ${device.identifier} has ${ports.length} ports, active: ${(device as any).activePort}`
178
151
  );
179
-
180
- // Determine overall device availability (true if at least one port is available)
181
- const availablePorts = ports.filter(p => p.available === true);
182
- device.available = availablePorts.length > 0;
183
152
  } else {
184
153
  console.log(`[Audio] Device ${device.identifier} has NO ports detected`);
185
- device.available = false;
186
154
  }
187
155
 
156
+ // Determine overall device availability (true if at least one port is available)
157
+ const availablePorts = ports.filter(p => p.available === true);
158
+ const deviceAvailable = availablePorts.length > 0;
159
+
188
160
  // Extract card information from device identifier
189
161
  // Format 1: "alsa_output.pci-0000_00_1f.3.analog-stereo" (standard PulseAudio ALSA format)
190
162
  // Format 2: "bluez_sink.XX_XX_XX_XX_XX_XX" (Bluetooth - no profile suffix)
@@ -202,27 +174,16 @@ function parseAudioDevice(block: string, isInput: boolean): AudioDevice | null {
202
174
  if (cardMatch) {
203
175
  const prefix = cardMatch[1]; // e.g., "alsa", "bluez"
204
176
  const cardId = cardMatch[3]; // e.g., "pci-0000_00_1f.3", "usb-046d_08d9-01", "XX_XX_XX_XX_XX_XX"
205
- const profile = cardMatch[4]; // e.g., "analog-stereo"
206
-
207
- // Map device type to profile type
208
- const deviceType = cardMatch[2]; // "output", "input", "sink", "source"
209
- const profileType = deviceType === 'input' || deviceType === 'source' ? 'input' : 'output';
210
-
211
- // Construct card name: prefix + "_card." + card_id
212
- // e.g., "alsa_card.pci-0000_00_1f.3", "bluez_card.XX_XX_XX_XX_XX_XX"
213
- device.cardName = `${prefix}_card.${cardId}`;
214
- device.cardProfile = `${profileType}:${profile}`;
177
+ // Card name is extracted but not stored (used internally for label generation)
178
+ (device as any).cardName = `${prefix}_card.${cardId}`;
215
179
  } else {
216
180
  // Try format without profile: {prefix}_{type}.{card_id} (e.g., Bluetooth)
217
181
  cardMatch = device.identifier?.match(/^([^_]+)_(output|input|sink|source)\.(.+)$/);
218
182
  if (cardMatch) {
219
183
  const prefix = cardMatch[1]; // e.g., "bluez"
220
184
  const cardId = cardMatch[3]; // e.g., "XX_XX_XX_XX_XX_XX"
221
-
222
- // Construct card name: prefix + "_card." + card_id
223
- device.cardName = `${prefix}_card.${cardId}`;
224
- // No profile for these devices (Bluetooth devices don't have profiles in the identifier)
225
- // Profile will be determined from card information if available
185
+ // Card name is extracted but not stored (used internally for label generation)
186
+ (device as any).cardName = `${prefix}_card.${cardId}`;
226
187
  } else {
227
188
  // Fallback: Try to extract card number from identifier format "alsa_output_0_3"
228
189
  const altMatch = device.identifier?.match(/^([^_]+)_(output|input|sink|source)_(\d+)_(\d+)$/);
@@ -243,7 +204,8 @@ function parseAudioDevice(block: string, isInput: boolean): AudioDevice | null {
243
204
  // e.g., "alsa_card.pci-0000_00_1f.3", "bluez_card.XX_XX_XX_XX_XX_XX"
244
205
  const cardNameMatch = cardLine.match(/([^_\s]+_card\.[^\s]+)/);
245
206
  if (cardNameMatch) {
246
- device.cardName = cardNameMatch[1];
207
+ // Card name is extracted but not stored (used internally for label generation)
208
+ (device as any).cardName = cardNameMatch[1];
247
209
  }
248
210
  }
249
211
  } catch (error) {
@@ -268,7 +230,8 @@ function parseAudioDevice(block: string, isInput: boolean): AudioDevice | null {
268
230
  // Match any card name format: {prefix}_card.{identifier}
269
231
  const cardNameMatch = cardLine.match(/([^_\s]+_card\.[^\s]+)/);
270
232
  if (cardNameMatch) {
271
- device.cardName = cardNameMatch[1];
233
+ // Card name is extracted but not stored (used internally for label generation)
234
+ (device as any).cardName = cardNameMatch[1];
272
235
  }
273
236
  }
274
237
  } catch (error) {
@@ -279,92 +242,110 @@ function parseAudioDevice(block: string, isInput: boolean): AudioDevice | null {
279
242
  }
280
243
  }
281
244
 
282
- // Always set available flag - if no ports, device is still available if it exists
283
- if (device.available === undefined) {
284
- device.available = true; // Default to available if we can't determine
285
- }
286
-
287
- // Build rich description
288
- if (device.displayName) {
289
- device.description = buildAudioDescription(
290
- device.displayName,
291
- device.formFactor || '',
292
- device.bus || '',
293
- device.description || '',
294
- isInput
295
- );
296
- }
297
-
298
- // Create human-readable label based on active port and product name
299
- device.label = createDeviceLabel(device, ports, isInput);
245
+ // Create human-readable label with device info (formFactor, bus, available, activePort)
246
+ // Note: isDefault will be set later when we know the default device
247
+ device.label = createDeviceLabel(
248
+ device,
249
+ ports,
250
+ isInput,
251
+ (device as any).formFactor,
252
+ (device as any).bus,
253
+ false, // isDefault will be updated later
254
+ deviceAvailable,
255
+ (device as any).activePort
256
+ );
300
257
 
301
258
  return device as AudioDevice;
302
259
  }
303
260
 
304
261
  /**
305
- * Create a human-readable label for an audio device based on ports and product info
262
+ * Create a human-readable label for an audio device with device info
263
+ * Incorporates: formFactor, bus, isDefault, available, activePort information
306
264
  */
307
265
  function createDeviceLabel(
308
266
  device: Partial<AudioDevice>,
309
267
  ports: AudioPort[],
310
- isInput: boolean
268
+ isInput: boolean,
269
+ formFactor?: string,
270
+ bus?: string,
271
+ isDefault?: boolean,
272
+ available?: boolean,
273
+ activePort?: string
311
274
  ): string {
312
275
  const productName = (device as any).productName;
313
- const activePort = device.activePort;
276
+ let baseLabel = '';
314
277
 
315
278
  // Find the active port in the ports list
316
- const activePortInfo = ports.find(p => p.name === activePort);
279
+ const activePortInfo = activePort ? ports.find(p => p.name === activePort) : undefined;
317
280
 
318
281
  // Priority 1: Use product name if available (e.g., "LG ULTRAFINE")
319
282
  if (productName) {
320
- return `${productName} (${isInput ? 'Microphone' : 'Speaker'})`;
283
+ baseLabel = `${productName} (${isInput ? 'Microphone' : 'Speaker'})`;
321
284
  }
322
-
323
285
  // Priority 2: Use active port description if available
324
- if (activePortInfo && activePortInfo.description) {
286
+ else if (activePortInfo && activePortInfo.description) {
325
287
  const portDesc = activePortInfo.description;
326
288
 
327
289
  // Map common port descriptions to user-friendly names
328
290
  if (portDesc.toLowerCase().includes('headphones')) {
329
- return 'Headphones';
291
+ baseLabel = 'Headphones';
330
292
  } else if (
331
293
  portDesc.toLowerCase().includes('hdmi') ||
332
294
  portDesc.toLowerCase().includes('displayport')
333
295
  ) {
334
- return `HDMI Display (${portDesc})`;
296
+ baseLabel = `HDMI Display`;
335
297
  } else if (
336
298
  portDesc.toLowerCase().includes('microphone') ||
337
299
  portDesc.toLowerCase().includes('mic')
338
300
  ) {
339
- return 'Microphone';
301
+ baseLabel = 'Microphone';
340
302
  } else if (portDesc.toLowerCase().includes('line')) {
341
- return `Line ${isInput ? 'In' : 'Out'}`;
303
+ baseLabel = `Line ${isInput ? 'In' : 'Out'}`;
342
304
  } else if (portDesc.toLowerCase().includes('speaker')) {
343
- return 'Speakers';
305
+ baseLabel = 'Speakers';
344
306
  } else {
345
307
  // Use port description with device type
346
- return `${portDesc} (${isInput ? 'Input' : 'Output'})`;
308
+ baseLabel = `${portDesc} (${isInput ? 'Input' : 'Output'})`;
347
309
  }
348
310
  }
311
+ // Priority 3: Use display name with device type
312
+ else if (device.displayName) {
313
+ baseLabel = `${device.displayName} (${isInput ? 'Input' : 'Output'})`;
314
+ }
315
+ // Fallback: Use identifier
316
+ else {
317
+ baseLabel = device.identifier || 'Unknown Audio Device';
318
+ }
349
319
 
350
- // Priority 3: Use card profile information
351
- if (device.cardProfile) {
352
- if (device.cardProfile.includes('analog-stereo')) {
353
- return isInput ? 'Analog Microphone' : 'Analog Speakers';
354
- } else if (device.cardProfile.includes('hdmi-stereo')) {
355
- return 'HDMI Audio';
356
- } else if (device.cardProfile.includes('hdmi-surround')) {
357
- return 'HDMI Surround Audio';
358
- }
320
+ // Add status indicators
321
+ const statusParts: string[] = [];
322
+
323
+ // Add default status
324
+ if (isDefault) {
325
+ statusParts.push('Default');
359
326
  }
360
327
 
361
- // Priority 4: Use display name with device type
362
- if (device.displayName) {
363
- return `${device.displayName} (${isInput ? 'Input' : 'Output'})`;
328
+ // Add availability status
329
+ if (available !== undefined) {
330
+ statusParts.push(available ? 'Available' : 'Unavailable');
364
331
  }
365
332
 
366
- // Fallback: Use identifier
367
- return device.identifier || 'Unknown Audio Device';
333
+ // Add form factor info if external
334
+ if (formFactor && formFactor !== 'internal') {
335
+ statusParts.push(formFactor.charAt(0).toUpperCase() + formFactor.slice(1));
336
+ }
337
+
338
+ // Add bus info if not PCI (PCI is most common, so only show others)
339
+ if (bus && bus.toLowerCase() !== 'pci') {
340
+ statusParts.push(bus.toUpperCase());
341
+ }
342
+
343
+ // Combine base label with status
344
+ if (statusParts.length > 0) {
345
+ return `${baseLabel} (${statusParts.join(', ')})`;
346
+ }
347
+
348
+ return baseLabel;
368
349
  }
369
350
 
370
351
  /**
@@ -736,111 +717,6 @@ function getDefaultDevices(): { defaultSink?: string; defaultSource?: string } {
736
717
  }
737
718
  }
738
719
 
739
- /**
740
- * Parse card profiles from pactl list cards output
741
- */
742
- function parseCardProfiles(cardBlock: string): AudioProfile[] {
743
- const profiles: AudioProfile[] = [];
744
- const lines = cardBlock.split('\n');
745
- let inProfilesSection = false;
746
-
747
- // Extract port mappings from Ports section
748
- const portProfileMap: Map<string, string[]> = new Map();
749
- let inPortsSection = false;
750
- let currentPortName = '';
751
-
752
- for (const line of lines) {
753
- const trimmed = line.trim();
754
-
755
- // Parse Ports section to map ports to profiles
756
- if (trimmed.startsWith('Ports:')) {
757
- inPortsSection = true;
758
- continue;
759
- }
760
-
761
- if (inPortsSection && trimmed.startsWith('Part of profile(s):')) {
762
- const profileList = trimmed.replace('Part of profile(s):', '').trim();
763
- if (currentPortName) {
764
- portProfileMap.set(
765
- currentPortName,
766
- profileList.split(',').map(p => p.trim())
767
- );
768
- }
769
- continue;
770
- }
771
-
772
- if (inPortsSection) {
773
- if (trimmed.match(/^[a-z]+-[a-z]+-[^:]+:/)) {
774
- currentPortName = trimmed.split(':')[0].trim();
775
- } else if (trimmed.startsWith('Active Profile:') || trimmed.match(/^[A-Z]/)) {
776
- inPortsSection = false;
777
- }
778
- }
779
-
780
- // Parse Profiles section
781
- if (trimmed.startsWith('Profiles:')) {
782
- inProfilesSection = true;
783
- continue;
784
- }
785
-
786
- if (inProfilesSection) {
787
- if (trimmed.startsWith('Active Profile:') || trimmed.startsWith('Ports:')) {
788
- inProfilesSection = false;
789
- continue;
790
- }
791
-
792
- // Parse profile line: "output:analog-stereo: Analog Stereo Output (sinks: 1, sources: 0, priority: 39268, available: yes)"
793
- const profileMatch = trimmed.match(/^([^:]+):\s*(.+?)\s*\([^)]+available:\s*(yes|no)\)/);
794
- if (profileMatch) {
795
- const profileName = profileMatch[1].trim();
796
- const description = profileMatch[2].trim();
797
- const available = profileMatch[3].trim() === 'yes';
798
-
799
- // Find ports that belong to this profile
800
- const ports: string[] = [];
801
- for (const [portName, profileList] of portProfileMap.entries()) {
802
- if (profileList.includes(profileName)) {
803
- ports.push(portName);
804
- }
805
- }
806
-
807
- profiles.push({
808
- profile: profileName,
809
- available,
810
- description,
811
- ports,
812
- });
813
- }
814
- }
815
- }
816
-
817
- return profiles;
818
- }
819
-
820
- /**
821
- * Get card profiles for a specific card
822
- */
823
- function getCardProfiles(cardName: string): AudioProfile[] {
824
- try {
825
- const env = getPulseAudioEnv();
826
- const cardsOutput = execSync(PULSEAUDIO_COMMANDS.LIST_CARDS, {
827
- encoding: 'utf-8',
828
- timeout: PULSEAUDIO_TIMEOUTS.LIST_DEVICES,
829
- env,
830
- });
831
-
832
- const cardBlocks = cardsOutput.split(/^Card #/m);
833
- for (const block of cardBlocks.slice(1)) {
834
- if (block.includes(`Name: ${cardName}`)) {
835
- return parseCardProfiles(block);
836
- }
837
- }
838
- } catch (error) {
839
- console.log(`Failed to get profiles for card ${cardName}:`, error);
840
- }
841
- return [];
842
- }
843
-
844
720
  /**
845
721
  * Get available audio input/output devices using PulseAudio
846
722
  */
@@ -856,7 +732,6 @@ function getAudioDevices(): AudioDevices | undefined {
856
732
 
857
733
  const outputs: AudioDevice[] = [];
858
734
  const inputs: AudioDevice[] = [];
859
- const cardProfilesCache: Map<string, AudioProfile[]> = new Map();
860
735
 
861
736
  // Detect output devices (sinks)
862
737
  try {
@@ -872,15 +747,18 @@ function getAudioDevices(): AudioDevices | undefined {
872
747
  .forEach(block => {
873
748
  const device = parseAudioDevice(block, false);
874
749
  if (device) {
875
- // Mark as default if it matches the default sink
876
- device.isDefault = device.identifier === defaultSink;
877
-
878
- // Add available profiles if cardName is available
879
- if (device.cardName && !cardProfilesCache.has(device.cardName)) {
880
- cardProfilesCache.set(device.cardName, getCardProfiles(device.cardName));
881
- }
882
- if (device.cardName) {
883
- device.availableProfiles = cardProfilesCache.get(device.cardName) || [];
750
+ // Check if this is the default sink and update label
751
+ const isDefault = device.identifier === defaultSink;
752
+
753
+ if (isDefault && device.label) {
754
+ // Update label to include Default status
755
+ if (!device.label.includes('Default')) {
756
+ if (device.label.includes('(')) {
757
+ device.label = device.label.replace(')', ', Default)');
758
+ } else {
759
+ device.label = `${device.label} (Default)`;
760
+ }
761
+ }
884
762
  }
885
763
 
886
764
  outputs.push(device);
@@ -908,15 +786,18 @@ function getAudioDevices(): AudioDevices | undefined {
908
786
  .forEach(block => {
909
787
  const device = parseAudioDevice(block, true);
910
788
  if (device) {
911
- // Mark as default if it matches the default source
912
- device.isDefault = device.identifier === defaultSource;
913
-
914
- // Add available profiles if cardName is available
915
- if (device.cardName && !cardProfilesCache.has(device.cardName)) {
916
- cardProfilesCache.set(device.cardName, getCardProfiles(device.cardName));
917
- }
918
- if (device.cardName) {
919
- device.availableProfiles = cardProfilesCache.get(device.cardName) || [];
789
+ // Check if this is the default source and update label
790
+ const isDefault = device.identifier === defaultSource;
791
+
792
+ if (isDefault && device.label) {
793
+ // Update label to include Default status
794
+ if (!device.label.includes('Default')) {
795
+ if (device.label.includes('(')) {
796
+ device.label = device.label.replace(')', ', Default)');
797
+ } else {
798
+ device.label = `${device.label} (Default)`;
799
+ }
800
+ }
920
801
  }
921
802
 
922
803
  inputs.push(device);
@@ -337,29 +337,13 @@ export interface AudioPort {
337
337
  available?: boolean; // Whether port is available
338
338
  }
339
339
 
340
- export interface AudioProfile {
341
- profile: string; // Profile name (e.g., "output:hdmi-stereo")
342
- available: boolean; // Whether profile is available
343
- description: string; // Profile description (e.g., "Digital Stereo (HDMI) Output")
344
- ports: string[]; // Ports available in this profile (e.g., ["hdmi-output-0"])
345
- }
346
-
347
340
  export interface AudioDevice {
348
341
  identifier: string;
349
342
  displayName: string;
350
- description?: string;
351
- formFactor?: string;
352
- bus?: string;
353
343
  volume?: number; // Volume level (0-100%)
354
344
  muted?: boolean; // Mute status
355
- isDefault?: boolean; // Whether this is the system default device
356
- activePort?: string; // Currently active port (e.g., "analog-output-headphones")
357
345
  availablePorts?: AudioPort[]; // Available ports for this device
358
- cardName?: string; // Card name (e.g., "alsa_card.pci-0000_00_1f.3")
359
- cardProfile?: string; // Card profile (e.g., "output:analog-stereo")
360
- label?: string; // Human-readable label for the device (e.g., "Headphones", "HDMI Display")
361
- available?: boolean; // Overall device availability (true if at least one port is available)
362
- availableProfiles?: AudioProfile[]; // All available profiles for this card
346
+ label?: string; // Human-readable label with device info (e.g., "Headphones (Default, Available)", "HDMI Display (Available)")
363
347
  }
364
348
 
365
349
  export interface AudioDevices {