appium-ios-remotexpc 0.24.0 → 0.24.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.
Files changed (28) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/build/src/lib/apple-tv/discovery/device-discovery.d.ts +0 -1
  3. package/build/src/lib/apple-tv/discovery/device-discovery.d.ts.map +1 -1
  4. package/build/src/lib/apple-tv/discovery/device-discovery.js +3 -3
  5. package/build/src/lib/apple-tv/pairing/user-input-service.d.ts +0 -1
  6. package/build/src/lib/apple-tv/pairing/user-input-service.d.ts.map +1 -1
  7. package/build/src/lib/apple-tv/pairing/user-input-service.js +3 -3
  8. package/build/src/lib/apple-tv/storage/pairing-storage.d.ts +0 -1
  9. package/build/src/lib/apple-tv/storage/pairing-storage.d.ts.map +1 -1
  10. package/build/src/lib/apple-tv/storage/pairing-storage.js +8 -8
  11. package/build/src/lib/apple-tv/tunnel/tunnel-service.d.ts +0 -1
  12. package/build/src/lib/apple-tv/tunnel/tunnel-service.d.ts.map +1 -1
  13. package/build/src/lib/apple-tv/tunnel/tunnel-service.js +15 -15
  14. package/build/src/lib/lockdown/index.d.ts.map +1 -1
  15. package/build/src/lib/lockdown/index.js +13 -13
  16. package/build/src/lib/types.d.ts +3 -2
  17. package/build/src/lib/types.d.ts.map +1 -1
  18. package/build/src/services/ios/mobile-config/index.d.ts +31 -4
  19. package/build/src/services/ios/mobile-config/index.d.ts.map +1 -1
  20. package/build/src/services/ios/mobile-config/index.js +5 -5
  21. package/package.json +3 -3
  22. package/src/lib/apple-tv/discovery/device-discovery.ts +4 -4
  23. package/src/lib/apple-tv/pairing/user-input-service.ts +4 -4
  24. package/src/lib/apple-tv/storage/pairing-storage.ts +9 -8
  25. package/src/lib/apple-tv/tunnel/tunnel-service.ts +15 -25
  26. package/src/lib/lockdown/index.ts +13 -15
  27. package/src/lib/types.ts +3 -2
  28. package/src/services/ios/mobile-config/index.ts +43 -10
package/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ ## [0.24.2](https://github.com/appium/appium-ios-remotexpc/compare/v0.24.1...v0.24.2) (2026-01-06)
2
+
3
+ ### Miscellaneous Chores
4
+
5
+ * **mobile-config:** use `ProfileList` for semantics and details ([#127](https://github.com/appium/appium-ios-remotexpc/issues/127)) ([332fd31](https://github.com/appium/appium-ios-remotexpc/commit/332fd31f5fd20be40a40ed09be8a5905811b7d00))
6
+
7
+ ## [0.24.1](https://github.com/appium/appium-ios-remotexpc/compare/v0.24.0...v0.24.1) (2026-01-02)
8
+
9
+ ### Miscellaneous Chores
10
+
11
+ * **deps-dev:** bump the dev-dependencies group across 1 directory with 2 updates ([#98](https://github.com/appium/appium-ios-remotexpc/issues/98)) ([fdb6156](https://github.com/appium/appium-ios-remotexpc/commit/fdb6156d04d9039c266a89f37d885e344cc7e906))
12
+
1
13
  ## [0.24.0](https://github.com/appium/appium-ios-remotexpc/compare/v0.23.0...v0.24.0) (2026-01-02)
2
14
 
3
15
  ### Features
@@ -3,7 +3,6 @@ import type { PairingConfig } from '../types.js';
3
3
  /** Discovers Apple TV devices on the local network using Bonjour */
4
4
  export declare class DeviceDiscoveryService {
5
5
  private readonly config;
6
- private readonly log;
7
6
  constructor(config: PairingConfig);
8
7
  discoverDevices(): Promise<AppleTVDevice[]>;
9
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"device-discovery.d.ts","sourceRoot":"","sources":["../../../../../src/lib/apple-tv/discovery/device-discovery.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAEnB,MAAM,oCAAoC,CAAC;AAG5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,oEAAoE;AACpE,qBAAa,sBAAsB;IAGrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAuC;gBAE9B,MAAM,EAAE,aAAa;IAE5C,eAAe,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;CAkBlD"}
1
+ {"version":3,"file":"device-discovery.d.ts","sourceRoot":"","sources":["../../../../../src/lib/apple-tv/discovery/device-discovery.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAEnB,MAAM,oCAAoC,CAAC;AAG5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD,oEAAoE;AACpE,qBAAa,sBAAsB;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAE5C,eAAe,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;CAkBlD"}
@@ -1,21 +1,21 @@
1
1
  import { BonjourDiscovery, } from '../../bonjour/bonjour-discovery.js';
2
2
  import { getLogger } from '../../logger.js';
3
3
  import { PairingError } from '../errors.js';
4
+ const log = getLogger('DeviceDiscoveryService');
4
5
  /** Discovers Apple TV devices on the local network using Bonjour */
5
6
  export class DeviceDiscoveryService {
6
7
  config;
7
- log = getLogger('DeviceDiscoveryService');
8
8
  constructor(config) {
9
9
  this.config = config;
10
10
  }
11
11
  async discoverDevices() {
12
12
  try {
13
13
  const discovery = new BonjourDiscovery();
14
- this.log.info(`Discovering Apple TV devices (waiting ${this.config.discoveryTimeout / 1000} seconds)...`);
14
+ log.info(`Discovering Apple TV devices (waiting ${this.config.discoveryTimeout / 1000} seconds)...`);
15
15
  return await discovery.discoverAppleTVDevicesWithIP(this.config.discoveryTimeout);
16
16
  }
17
17
  catch (error) {
18
- this.log.error('Device discovery failed:', error);
18
+ log.error('Device discovery failed:', error);
19
19
  throw new PairingError('Device discovery failed', 'DISCOVERY_ERROR', error);
20
20
  }
21
21
  }
@@ -1,7 +1,6 @@
1
1
  import type { UserInputInterface } from '../pairing-protocol/types.js';
2
2
  /** Handles user interaction for PIN input during pairing */
3
3
  export declare class UserInputService implements UserInputInterface {
4
- private readonly log;
5
4
  promptForPIN(): Promise<string>;
6
5
  promptForInput(prompt: string): Promise<string>;
7
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"user-input-service.d.ts","sourceRoot":"","sources":["../../../../../src/lib/apple-tv/pairing/user-input-service.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,4DAA4D;AAC5D,qBAAa,gBAAiB,YAAW,kBAAkB;IACzD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAiC;IAE/C,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAyC/B,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAkBtD"}
1
+ {"version":3,"file":"user-input-service.d.ts","sourceRoot":"","sources":["../../../../../src/lib/apple-tv/pairing/user-input-service.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAIvE,4DAA4D;AAC5D,qBAAa,gBAAiB,YAAW,kBAAkB;IACnD,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAyC/B,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAkBtD"}
@@ -2,9 +2,9 @@ import { createInterface } from 'node:readline';
2
2
  import { getLogger } from '../../logger.js';
3
3
  import { PairingError } from '../errors.js';
4
4
  import { NETWORK_CONSTANTS } from '../network/constants.js';
5
+ const log = getLogger('UserInputService');
5
6
  /** Handles user interaction for PIN input during pairing */
6
7
  export class UserInputService {
7
- log = getLogger('UserInputService');
8
8
  async promptForPIN() {
9
9
  const rl = createInterface({
10
10
  input: process.stdin,
@@ -27,10 +27,10 @@ export class UserInputService {
27
27
  });
28
28
  const cleanPin = pin.trim();
29
29
  if (!/^\d+$/.test(cleanPin)) {
30
- this.log.error('Invalid PIN format');
30
+ log.error('Invalid PIN format');
31
31
  throw new PairingError('PIN must contain only digits', 'INVALID_PIN');
32
32
  }
33
- this.log.debug('PIN received successfully');
33
+ log.debug('PIN received successfully');
34
34
  return cleanPin;
35
35
  }
36
36
  finally {
@@ -3,7 +3,6 @@ import type { PairRecord, PairingStorageInterface } from './types.js';
3
3
  /** Manages persistent storage of pairing credentials as plist files */
4
4
  export declare class PairingStorage implements PairingStorageInterface {
5
5
  private readonly config;
6
- private readonly log;
7
6
  private readonly box;
8
7
  private strongboxDir?;
9
8
  constructor(config: PairingConfig);
@@ -1 +1 @@
1
- {"version":3,"file":"pairing-storage.d.ts","sourceRoot":"","sources":["../../../../../src/lib/apple-tv/storage/pairing-storage.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAEtE,uEAAuE;AACvE,qBAAa,cAAe,YAAW,uBAAuB;IAKhD,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA+B;IACnD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;IACrB,OAAO,CAAC,YAAY,CAAC,CAAS;gBAED,MAAM,EAAE,aAAa;IAI5C,IAAI,CACR,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,mBAAmB,SAAK,GACvB,OAAO,CAAC,MAAM,CAAC;IAyBZ,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAwClD,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAwBhD,OAAO,CAAC,kBAAkB;CAW3B"}
1
+ {"version":3,"file":"pairing-storage.d.ts","sourceRoot":"","sources":["../../../../../src/lib/apple-tv/storage/pairing-storage.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAItE,uEAAuE;AACvE,qBAAa,cAAe,YAAW,uBAAuB;IAIhD,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;IACrB,OAAO,CAAC,YAAY,CAAC,CAAS;gBAED,MAAM,EAAE,aAAa;IAI5C,IAAI,CACR,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,mBAAmB,SAAK,GACvB,OAAO,CAAC,MAAM,CAAC;IAyBZ,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAwClD,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAwBhD,OAAO,CAAC,kBAAkB;CAW3B"}
@@ -6,10 +6,10 @@ import { getLogger } from '../../logger.js';
6
6
  import { createXmlPlist, parseXmlPlist } from '../../plist/index.js';
7
7
  import { APPLETV_PAIRING_PREFIX } from '../constants.js';
8
8
  import { PairingError } from '../errors.js';
9
+ const log = getLogger('PairingStorage');
9
10
  /** Manages persistent storage of pairing credentials as plist files */
10
11
  export class PairingStorage {
11
12
  config;
12
- log = getLogger('PairingStorage');
13
13
  box;
14
14
  strongboxDir;
15
15
  constructor(config) {
@@ -22,11 +22,11 @@ export class PairingStorage {
22
22
  const plistContent = this.createPlistContent(ltpk, ltsk, remoteUnlockHostKey);
23
23
  const item = await this.box.createItemWithValue(itemName, plistContent);
24
24
  const itemPath = item.id;
25
- this.log.info(`Pairing record saved to: ${itemPath}`);
25
+ log.info(`Pairing record saved to: ${itemPath}`);
26
26
  return itemPath;
27
27
  }
28
28
  catch (error) {
29
- this.log.error('Save pairing record error:', error);
29
+ log.error('Save pairing record error:', error);
30
30
  throw new PairingError('Failed to save pairing record', 'SAVE_ERROR', error);
31
31
  }
32
32
  }
@@ -36,7 +36,7 @@ export class PairingStorage {
36
36
  const item = this.box.getItem(itemName) ?? (await this.box.createItem(itemName));
37
37
  const pairingData = await item.read();
38
38
  if (!pairingData) {
39
- this.log.debug(`No pair record found for device ${deviceId}`);
39
+ log.debug(`No pair record found for device ${deviceId}`);
40
40
  return null;
41
41
  }
42
42
  const parsed = parseXmlPlist(pairingData);
@@ -49,7 +49,7 @@ export class PairingStorage {
49
49
  const publicKey = Buffer.isBuffer(parsed.public_key)
50
50
  ? parsed.public_key
51
51
  : Buffer.from(parsed.public_key, 'base64');
52
- this.log.debug(`Loaded pair record for ${deviceId}`);
52
+ log.debug(`Loaded pair record for ${deviceId}`);
53
53
  return {
54
54
  privateKey,
55
55
  publicKey,
@@ -57,7 +57,7 @@ export class PairingStorage {
57
57
  };
58
58
  }
59
59
  catch (error) {
60
- this.log.error(`Failed to load pair record for ${deviceId}:`, error);
60
+ log.error(`Failed to load pair record for ${deviceId}:`, error);
61
61
  return null;
62
62
  }
63
63
  }
@@ -73,11 +73,11 @@ export class PairingStorage {
73
73
  const deviceIds = files
74
74
  .filter((file) => file.startsWith(APPLETV_PAIRING_PREFIX))
75
75
  .map((file) => file.replace(APPLETV_PAIRING_PREFIX, ''));
76
- this.log.debug(`Found ${deviceIds.length} pair record(s): ${deviceIds.join(', ')}`);
76
+ log.debug(`Found ${deviceIds.length} pair record(s): ${deviceIds.join(', ')}`);
77
77
  return deviceIds;
78
78
  }
79
79
  catch (error) {
80
- this.log.debug('Error getting available device IDs:', error);
80
+ log.debug('Error getting available device IDs:', error);
81
81
  return [];
82
82
  }
83
83
  }
@@ -7,7 +7,6 @@ export declare class TunnelService {
7
7
  private readonly networkClient;
8
8
  private readonly keys;
9
9
  private sequenceNumber;
10
- private static readonly log;
11
10
  private encryptedSequenceNumber;
12
11
  constructor(networkClient: NetworkClientInterface, keys: VerificationKeys, sequenceNumber: number);
13
12
  createTcpListener(): Promise<TcpListenerInfo>;
@@ -1 +1 @@
1
- {"version":3,"file":"tunnel-service.d.ts","sourceRoot":"","sources":["../../../../../src/lib/apple-tv/tunnel/tunnel-service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAEhC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAUxE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mDAAmD,CAAC;AAG1F,OAAO,KAAK,EAAE,eAAe,EAA2B,MAAM,YAAY,CAAC;AAI3E,qBAAa,aAAa;IAKtB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,cAAc;IANxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAA8B;IACzD,OAAO,CAAC,uBAAuB,CAAK;gBAGjB,aAAa,EAAE,sBAAsB,EACrC,IAAI,EAAE,gBAAgB,EAC/B,cAAc,EAAE,MAAM;IAG1B,iBAAiB,IAAI,OAAO,CAAC,eAAe,CAAC;IAoF7C,sBAAsB,CAC1B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;IAoEzB,iBAAiB,IAAI,MAAM;CAG5B;AAED;;;GAGG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,cAAc,CAAK;;IAO3B,UAAU,IAAI,IAAI;IAIZ,WAAW,CACf,QAAQ,CAAC,EAAE,MAAM,EACjB,wBAAwB,CAAC,EAAE,MAAM,GAChC,OAAO,CAAC;QAAE,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC;QAAC,MAAM,EAAE,aAAa,CAAA;KAAE,CAAC;IAiD5D;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAkB5B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAgC9B;;OAEG;YACW,yBAAyB;IAgBvC;;OAEG;YACW,uBAAuB;IA2DrC;;OAEG;IACH,OAAO,CAAC,iBAAiB;YAWX,eAAe;YAoDf,gBAAgB;YA4BhB,uBAAuB;YAmBvB,iBAAiB;YAiBjB,sBAAsB;CAYrC"}
1
+ {"version":3,"file":"tunnel-service.d.ts","sourceRoot":"","sources":["../../../../../src/lib/apple-tv/tunnel/tunnel-service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAEhC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAUxE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mDAAmD,CAAC;AAG1F,OAAO,KAAK,EAAE,eAAe,EAA2B,MAAM,YAAY,CAAC;AAK3E,qBAAa,aAAa;IAItB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,cAAc;IALxB,OAAO,CAAC,uBAAuB,CAAK;gBAGjB,aAAa,EAAE,sBAAsB,EACrC,IAAI,EAAE,gBAAgB,EAC/B,cAAc,EAAE,MAAM;IAG1B,iBAAiB,IAAI,OAAO,CAAC,eAAe,CAAC;IAkF7C,sBAAsB,CAC1B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;IA4DzB,iBAAiB,IAAI,MAAM;CAG5B;AAED;;;GAGG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,cAAc,CAAK;;IAO3B,UAAU,IAAI,IAAI;IAIZ,WAAW,CACf,QAAQ,CAAC,EAAE,MAAM,EACjB,wBAAwB,CAAC,EAAE,MAAM,GAChC,OAAO,CAAC;QAAE,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC;QAAC,MAAM,EAAE,aAAa,CAAA;KAAE,CAAC;IAiD5D;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAkB5B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAgC9B;;OAEG;YACW,yBAAyB;IAgBvC;;OAEG;YACW,uBAAuB;IA2DrC;;OAEG;IACH,OAAO,CAAC,iBAAiB;YAWX,eAAe;YAoDf,gBAAgB;YA4BhB,uBAAuB;YAmBvB,iBAAiB;YAiBjB,sBAAsB;CAYrC"}
@@ -9,12 +9,12 @@ import { PairingError } from '../errors.js';
9
9
  import { NetworkClient } from '../network/index.js';
10
10
  import { PairVerificationProtocol } from '../pairing-protocol/index.js';
11
11
  import { PairingStorage } from '../storage/pairing-storage.js';
12
+ const log = getLogger('TunnelService');
12
13
  const appleTVLog = getLogger('AppleTVTunnelService');
13
14
  export class TunnelService {
14
15
  networkClient;
15
16
  keys;
16
17
  sequenceNumber;
17
- static log = getLogger('TunnelService');
18
18
  encryptedSequenceNumber = 0;
19
19
  constructor(networkClient, keys, sequenceNumber) {
20
20
  this.networkClient = networkClient;
@@ -22,7 +22,7 @@ export class TunnelService {
22
22
  this.sequenceNumber = sequenceNumber;
23
23
  }
24
24
  async createTcpListener() {
25
- TunnelService.log.debug('Creating TCP listener (Encrypted Request)');
25
+ log.debug('Creating TCP listener (Encrypted Request)');
26
26
  const request = {
27
27
  request: {
28
28
  _0: {
@@ -73,20 +73,20 @@ export class TunnelService {
73
73
  const responseJson = JSON.parse(decrypted.toString('utf8'));
74
74
  const createListenerResponse = responseJson?.response?._1?.createListener;
75
75
  if (!createListenerResponse?.port) {
76
- TunnelService.log.error('Invalid createListener response:', responseJson);
76
+ log.error('Invalid createListener response:', responseJson);
77
77
  throw new PairingError('TCP listener creation failed: missing port in response', 'LISTENER_PORT_MISSING', { response: responseJson });
78
78
  }
79
- TunnelService.log.debug(`TCP Listener created on port: ${createListenerResponse.port}`);
79
+ log.debug(`TCP Listener created on port: ${createListenerResponse.port}`);
80
80
  return createListenerResponse;
81
81
  }
82
82
  async createTlsPskConnection(hostname, port) {
83
- TunnelService.log.debug(`Creating TLS-PSK connection to ${hostname}:${port}`);
83
+ log.debug(`Creating TLS-PSK connection to ${hostname}:${port}`);
84
84
  return new Promise((resolve, reject) => {
85
85
  const options = {
86
86
  host: hostname,
87
87
  port,
88
88
  pskCallback: (hint) => {
89
- TunnelService.log.debug(`PSK callback invoked with hint: ${hint}`);
89
+ log.debug(`PSK callback invoked with hint: ${hint}`);
90
90
  return {
91
91
  psk: this.keys.encryptionKey,
92
92
  identity: '',
@@ -105,26 +105,26 @@ export class TunnelService {
105
105
  checkServerIdentity: () => undefined,
106
106
  };
107
107
  const socket = tls.connect(options, () => {
108
- TunnelService.log.debug('TLS-PSK connection established');
108
+ log.debug('TLS-PSK connection established');
109
109
  resolve(socket);
110
110
  });
111
111
  socket.on('error', (error) => {
112
- TunnelService.log.error('TLS-PSK connection error:', error);
112
+ log.error('TLS-PSK connection error:', error);
113
113
  if (error.message?.includes('no shared cipher') ||
114
114
  error.code === 'ECONNRESET') {
115
- TunnelService.log.error('PSK ciphers may not be available in your Node.js build');
116
- TunnelService.log.error('You may need to:');
117
- TunnelService.log.error('1. Use Node.js compiled with PSK-enabled OpenSSL');
118
- TunnelService.log.error('2. Use a Python subprocess for the TLS-PSK connection');
119
- TunnelService.log.error('3. Use a native module like node-openssl');
115
+ log.error('PSK ciphers may not be available in your Node.js build');
116
+ log.error('You may need to:');
117
+ log.error('1. Use Node.js compiled with PSK-enabled OpenSSL');
118
+ log.error('2. Use a Python subprocess for the TLS-PSK connection');
119
+ log.error('3. Use a native module like node-openssl');
120
120
  }
121
121
  reject(error);
122
122
  });
123
123
  socket.on('secureConnect', () => {
124
- TunnelService.log.debug('Secure connection event fired');
124
+ log.debug('Secure connection event fired');
125
125
  });
126
126
  socket.on('tlsClientError', (error) => {
127
- TunnelService.log.error('TLS client error:', error);
127
+ log.error('TLS client error:', error);
128
128
  });
129
129
  });
130
130
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/lockdown/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAY,EAAE,KAAK,iBAAiB,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAI/D,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAgB,MAAM,oBAAoB,CAAC;AAWhE,UAAU,gBAAgB;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,MAAM;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,gBAAgB,CAAC;CAC9B;AAED,UAAU,mBAAmB;IAC3B,eAAe,EAAE,eAAe,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,WAAW;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AA0JD,qBAAa,eAAgB,SAAQ,gBAAgB;IACnD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,UAAU,CAAC,CAAe;IAClC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,iBAAiB,CAAC,CAAgB;IAC1C,OAAO,CAAC,aAAa,CAAC,CAAe;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuB;gBAEzC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,UAAO;IAY3D;;OAEG;IACG,YAAY,CAChB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,OAAO,SAAkB,GACxB,OAAO,CAAC,WAAW,CAAC;IA8BvB;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BtC;;OAEG;IACI,SAAS,IAAI,MAAM,GAAG,SAAS;IAMtC;;OAEG;IACU,cAAc,CACzB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EAC/B,OAAO,SAAkB,GACxB,OAAO,CAAC,YAAY,CAAC;IAMxB;;OAEG;IACI,KAAK,IAAI,IAAI;IAYpB;;OAEG;IACH,IAAW,YAAY,CAAC,KAAK,EAAE,YAAY,EAE1C;IAED;;OAEG;IACH,IAAW,YAAY,IAAI,YAAY,GAAG,SAAS,CAElD;IAED;;OAEG;IACU,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAM/C;;OAEG;IACI,gBAAgB,CACrB,OAAO,SAA0D,GAChE,IAAI;IAeP,OAAO,CAAC,kBAAkB;YASZ,iBAAiB;IAgB/B,OAAO,CAAC,WAAW;CAOpB;AAGD,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuB;IAErD;;OAEG;IACG,YAAY,CAChB,IAAI,EAAE,MAAM,EACZ,IAAI,SAAwB,EAC5B,UAAU,UAAO,GAChB,OAAO,CAAC,mBAAmB,CAAC;CAiChC;AAGD,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,MAAM,EACZ,IAAI,SAAwB,EAC5B,UAAU,UAAO,GAChB,OAAO,CAAC,mBAAmB,CAAC,CAG9B;AAGD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,UAAU,GAAE,OAAO,CAAC,iBAAiB,CAAM,GAC1C,OAAO,CAAC,SAAS,CAAC,CAGpB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/lockdown/index.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,8 @@ import {} from '../pair-record/index.js';
6
6
  import { PlistService } from '../plist/plist-service.js';
7
7
  import { RelayService, createUsbmux } from '../usbmux/index.js';
8
8
  const log = getLogger('Lockdown');
9
+ const tlsManagerLog = getLogger('TLSManager');
10
+ const deviceManagerLog = getLogger('DeviceManager');
9
11
  // Constants
10
12
  const LABEL = 'appium-internal';
11
13
  const DEFAULT_TIMEOUT = 5000;
@@ -32,29 +34,28 @@ class DeviceNotFoundError extends Error {
32
34
  }
33
35
  // TLS Manager for handling TLS operations
34
36
  class TLSManager {
35
- log = getLogger('TLSManager');
36
37
  /**
37
38
  * Upgrades a socket to TLS
38
39
  */
39
40
  async upgradeSocketToTLS(socket, tlsOptions = {}) {
40
41
  return new Promise((resolve, reject) => {
41
42
  socket.pause();
42
- this.log.debug('Upgrading socket to TLS...');
43
+ tlsManagerLog.debug('Upgrading socket to TLS...');
43
44
  const secure = tls.connect({
44
45
  socket,
45
46
  rejectUnauthorized: false,
46
47
  minVersion: 'TLSv1.2',
47
48
  ...tlsOptions,
48
49
  }, () => {
49
- this.log.info('TLS handshake completed');
50
+ tlsManagerLog.info('TLS handshake completed');
50
51
  resolve(secure);
51
52
  });
52
53
  secure.on('error', (err) => {
53
- this.log.error(`TLS socket error: ${err}`);
54
+ tlsManagerLog.error(`TLS socket error: ${err}`);
54
55
  reject(new TLSUpgradeError(`TLS socket error: ${err.message}`));
55
56
  });
56
57
  socket.on('error', (err) => {
57
- this.log.error(`Underlying socket error during TLS: ${err}`);
58
+ tlsManagerLog.error(`Underlying socket error during TLS: ${err}`);
58
59
  reject(new TLSUpgradeError(`Socket error during TLS: ${err.message}`));
59
60
  });
60
61
  });
@@ -62,16 +63,15 @@ class TLSManager {
62
63
  }
63
64
  // Device Manager for handling device operations
64
65
  class DeviceManager {
65
- log = getLogger('DeviceManager');
66
66
  /**
67
67
  * Lists all connected devices
68
68
  */
69
69
  async listDevices() {
70
70
  const usbmux = await createUsbmux();
71
71
  try {
72
- this.log.debug('Listing connected devices...');
72
+ deviceManagerLog.debug('Listing connected devices...');
73
73
  const devices = await usbmux.listDevices();
74
- this.log.debug(`Found ${devices.length} devices: ${devices.map((d) => d.Properties.SerialNumber).join(', ')}`);
74
+ deviceManagerLog.debug(`Found ${devices.length} devices: ${devices.map((d) => d.Properties.SerialNumber).join(', ')}`);
75
75
  return devices;
76
76
  }
77
77
  finally {
@@ -90,25 +90,25 @@ class DeviceManager {
90
90
  if (!device) {
91
91
  throw new DeviceNotFoundError(udid);
92
92
  }
93
- this.log.info(`Found device: DeviceID=${device.DeviceID}, SerialNumber=${device.Properties.SerialNumber}, ConnectionType=${device.Properties.ConnectionType}`);
93
+ deviceManagerLog.info(`Found device: DeviceID=${device.DeviceID}, SerialNumber=${device.Properties.SerialNumber}, ConnectionType=${device.Properties.ConnectionType}`);
94
94
  return device;
95
95
  }
96
96
  /**
97
97
  * Reads pair record for a device
98
98
  */
99
99
  async readPairRecord(udid) {
100
- this.log.debug(`Retrieving pair record for UDID: ${udid}`);
100
+ deviceManagerLog.debug(`Retrieving pair record for UDID: ${udid}`);
101
101
  const usbmux = await createUsbmux();
102
102
  try {
103
103
  const record = await usbmux.readPairRecord(udid);
104
104
  if (!record?.HostCertificate || !record.HostPrivateKey) {
105
105
  throw new LockdownError('Pair record missing certificate or key');
106
106
  }
107
- this.log.info('Pair record retrieved successfully');
107
+ deviceManagerLog.info('Pair record retrieved successfully');
108
108
  return record;
109
109
  }
110
110
  catch (err) {
111
- this.log.error(`Error getting pair record: ${err}`);
111
+ deviceManagerLog.error(`Error getting pair record: ${err}`);
112
112
  throw err;
113
113
  }
114
114
  finally {
@@ -120,7 +120,7 @@ class DeviceManager {
120
120
  await usbmux.close();
121
121
  }
122
122
  catch (err) {
123
- this.log.error(`Error closing usbmux: ${err}`);
123
+ deviceManagerLog.error(`Error closing usbmux: ${err}`);
124
124
  }
125
125
  }
126
126
  }
@@ -10,6 +10,7 @@ import type { iOSApplication } from '../services/ios/dvt/instruments/application
10
10
  import type { LocationCoordinates } from '../services/ios/dvt/instruments/location-simulation.js';
11
11
  import type { NotificationMessage } from '../services/ios/dvt/instruments/notifications.js';
12
12
  import { ProvisioningProfile } from '../services/ios/misagent/provisioning-profile.js';
13
+ import type { ProfileList } from '../services/ios/mobile-config/index.js';
13
14
  import type { PowerAssertionOptions } from '../services/ios/power-assertion/index.js';
14
15
  import { PowerAssertionType } from '../services/ios/power-assertion/index.js';
15
16
  import type { InterfaceOrientation } from '../services/ios/springboard-service/index.js';
@@ -215,7 +216,7 @@ export interface MobileConfigService extends BaseService {
215
216
  connectToMobileConfigService(): Promise<ServiceConnection>;
216
217
  /**
217
218
  * Get all profiles of iOS devices
218
- * @returns {Promise<PlistDictionary>}
219
+ * @returns {Promise<ProfileList>}
219
220
  * e.g.
220
221
  * {
221
222
  * OrderedIdentifiers: [ '2fac1c2b3d684843189b2981c718b0132854a847a' ],
@@ -236,7 +237,7 @@ export interface MobileConfigService extends BaseService {
236
237
  * Status: 'Acknowledged'
237
238
  * }
238
239
  */
239
- getProfileList(): Promise<PlistDictionary>;
240
+ getProfileList(): Promise<ProfileList>;
240
241
  /**
241
242
  * Install profile to iOS device
242
243
  * @param {String} path must be a certificate file .PEM .CER and more formats
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,UAAU,MAAM,8BAA8B,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wDAAwD,CAAC;AAC7F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wDAAwD,CAAC;AAClG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AACzF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,YAAY,EAAE,qBAAqB,EAAE,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAE9B;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,MAAM,GACN,SAAS,GACT,UAAU,GACV,eAAe,GACf,IAAI,CAAC;AAET;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,eAAe,CAAC;AAE3C;;GAEG;AACH,MAAM,MAAM,QAAQ,GAChB,MAAM,GACN,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,MAAM,GACN,UAAU,GACV,QAAQ,GACR,aAAa,GACb,IAAI,CAAC;AAET;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AAEpD,MAAM,WAAW,mBAAmB;IAClC,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,gBAAgB,EAAE,MAAM,CAAC;IACzB,kDAAkD;IAClD,cAAc,EAAE,MAAM,CAAC;IACvB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC7C,kCAAkC;IAClC,QAAQ,EAAE;QACR,iDAAiD;QACjD,WAAW,EAAE,MAAM,CAAC;QACpB,8CAA8C;QAC9C,YAAY,EAAE,MAAM,CAAC;QACrB,yCAAyC;QACzC,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,UAAU,EAAE;QACV,+BAA+B;QAC/B,IAAI,EAAE,MAAM,CAAC;QACb,+BAA+B;QAC/B,OAAO,EAAE,MAAM,CAAC;QAChB,0DAA0D;QAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,MAAM,EAAE;QACN,+BAA+B;QAC/B,OAAO,EAAE,MAAM,CAAC;QAChB,0DAA0D;QAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,yCAAyC;IACzC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,2DAA2D;IAC3D,OAAO,EAAE,OAAO,CAAC;IACjB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;IAEpC;;;OAGG;IACH,QAAQ,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;IAErC;;;OAGG;IACH,KAAK,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;IAElC;;;;OAIG;IACH,UAAU,CAAC,OAAO,CAAC,EAAE;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,eAAe,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;CACtD;AAED;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,WAAW;IAC3D;;;OAGG;IACH,iCAAiC,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAChE;;;;OAIG;IACH,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACxD;;;;OAIG;IACH,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACrD;;;;OAIG;IACH,mBAAmB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;IACpE;;;;OAIG;IACH,kBAAkB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CAC7D;AAED;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,WAAW;IACxD;;;;OAIG;IACH,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpE;;;OAGG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD;;;OAGG;IACH,4BAA4B,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC3D;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IACvC;;;;OAIG;IACH,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD;;;OAGG;IACH,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD;;;OAGG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;OAEG;IACH,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC;;;OAGG;IACH,KAAK,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,kBAAkB,CAAC;CACrD;AAED;;;GAGG;AACH,MAAM,WAAW,gCAAgC;IAC/C,sCAAsC;IACtC,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,wEAAwE;IACxE,SAAS,EAAE,mBAAmB,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,WAAW,sCAAsC;IACrD,4CAA4C;IAC5C,wBAAwB,EAAE,wBAAwB,CAAC;IACnD,wEAAwE;IACxE,SAAS,EAAE,mBAAmB,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,WAAW,iCAAiC;IAChD,uCAAuC;IACvC,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,wEAAwE;IACxE,SAAS,EAAE,mBAAmB,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,WAAW,mCAAmC;IAClD,yCAAyC;IACzC,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,wEAAwE;IACxE,SAAS,EAAE,mBAAmB,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,WAAW;IAC9D;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;;;;;;;;;;;OAYG;IACH,uBAAuB,IAAI,eAAe,CAAC;IAE3C;;;;OAIG;IACH,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAE9C;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;;;OAIG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhE;;;OAGG;IACH,GAAG,CAAC,WAAW,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErD;;;;OAIG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,IAAI,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAElC;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,GAAG,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C;;;;;OAKG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,IAAI,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;CACnC;AACD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,IAAI,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;CACpD;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,sCAAsC;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,CAAC,CAAC;IACR,sBAAsB;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,CAAC,CAAC;IACR,gCAAgC;IAChC,YAAY,EAAE,cAAc,CAAC;IAC7B,iCAAiC;IACjC,aAAa,EAAE,cAAc,CAAC;IAC9B,sBAAsB;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,uCAAuC;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,0BAA0B;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,0BAA0B;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,+BAA+B;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,CAAC,CAAC;IACR,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,2BAA2B;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB,uBAAuB,GACvB,wBAAwB,GACxB,qBAAqB,CAAC;AAE1B;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACH,MAAM,IAAI,cAAc,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;CACvD;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,+DAA+D;IAC/D,GAAG,EAAE,MAAM,CAAC;IAEZ,mBAAmB;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,sDAAsD;IACtD,aAAa,EAAE,OAAO,CAAC;IAEvB,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,iCAAiC;IACjC,SAAS,CAAC,EAAE;QACV,iCAAiC;QACjC,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF,4DAA4D;IAC5D,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAEpC;;;;OAIG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE7C;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,QAAQ,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAEnC;;;;OAIG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE5C;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,mBAAmB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAEpC;;;;;;;;;;;;;;OAcG;IACH,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAEnC;;;;;;;;;;;;;;;;OAgBG;IACH,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAE7B;;;;;;;;;OASG;IACH,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAElC;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,YAAY,IAAI,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;IAEpC;;;;;;;;;;;;;;;;;OAiBG;IACH,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAE9C;;;;OAIG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEzC;;;;OAIG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,QAAQ,IAAI,cAAc,CAAC,mBAAmB,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;CAClE;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,+CAA+C;IAC/C,UAAU,EAAE,2BAA2B,CAAC;IACxC,8CAA8C;IAC9C,kBAAkB,EAAE,yBAAyB,CAAC;IAC9C,4CAA4C;IAC5C,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,sCAAsC;IACtC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,+CAA+C;IAC/C,UAAU,EAAE,cAAc,CAAC;IAC3B,oCAAoC;IACpC,QAAQ,EAAE,eAAe,CAAC;IAC1B,sCAAsC;IACtC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,yCAAyC;IACzC,YAAY,EAAE,mBAAmB,CAAC;IAClC,0CAA0C;IAC1C,cAAc,EAAE,qBAAqB,CAAC;IACtC,wEAAwE;IACxE,SAAS,EAAE,mBAAmB,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD;;;;;OAKG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErE;;;OAGG;IACH,aAAa,IAAI,cAAc,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAE7D;;OAEG;IACH,aAAa,IAAI,IAAI,CAAC;IAEtB;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;;OAGG;IACH,eAAe,IAAI,MAAM,CAAC;IAE1B;;;OAGG;IACH,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1D;;OAEG;IACH,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1C;;;OAGG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhD;;;;;OAKG;IACH,+BAA+B,CAC7B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,eAAe,GAC7B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;OAMG;IACH,kBAAkB,CAChB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,kBAAkB,CAAC,EAAE,OAAO,GAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;OAMG;IACH,iBAAiB,CACf,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,GAAG,GACR,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;OAKG;IACH,sBAAsB,CACpB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,iCAAiC;IAChD,uCAAuC;IACvC,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,wEAAwE;IACxE,SAAS,EAAE,mBAAmB,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,mCAAmC;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,+CAA+C;IAC/C,iBAAiB,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;IACtD,+BAA+B;IAC/B,oBAAoB,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;CAC1D;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,mCAAmC;IACnC,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD;;;;;;OAMG;IACH,KAAK,CACH,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,YAAY,GAAG,aAAa,CAAC,UAAU,CAAC,EACtD,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;OAGG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC;;OAEG;IACH,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;IAE5D;;OAEG;IACH,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAE9C;;OAEG;IACH,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAEhE;;OAEG;IACH,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;IAExD;;OAEG;IACH,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;IAE3D;;OAEG;IACH,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;CAC7D;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,KAAK,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,aAAa,CAAC;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,WAAW;IAC5D;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAE9C;;;OAGG;IACH,0BAA0B,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAE/C;;;;;OAKG;IACH,KAAK,CACH,aAAa,EAAE,MAAM,EACrB,qBAAqB,EAAE,MAAM,EAC7B,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;OAGG;IACH,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhD;;;OAGG;IACH,wBAAwB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAE7C;;;;OAIG;IACH,UAAU,CAAC,qBAAqB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE5D;;;OAGG;IACH,+BAA+B,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;IAE5D;;;OAGG;IACH,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAE9B;;;;;OAKG;IACH,4BAA4B,CAC1B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,oCAAoC;IACnD;;OAEG;IACH,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAElC;;;OAGG;IACH,KAAK,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,yBAAyB,CAAC;CAC5D;AAED;;GAEG;AACH,MAAM,WAAW,uCAAuC;IACtD,6CAA6C;IAC7C,yBAAyB,EAAE,yBAAyB,CAAC;IACrD,sDAAsD;IACtD,SAAS,EAAE,mBAAmB,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC/C,sCAAsC;IACtC,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,sDAAsD;IACtD,SAAS,EAAE,mBAAmB,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,YAAY,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;IAEzC;;;;OAIG;IACH,YAAY,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzD;;;;OAIG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAElD;;;;;;OAMG;IACH,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAElE;;;;;;;;;;;;;;;;;OAiBG;IACH,wBAAwB,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;IAErD;;;;;;;OAOG;IACH,uBAAuB,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEzD;;;;OAIG;IACH,wBAAwB,CACtB,aAAa,EAAE,YAAY,GAAG,YAAY,GACzC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnB;;;;;;OAMG;IACH,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7D;AAED;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC/C,sCAAsC;IACtC,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,sDAAsD;IACtD,SAAS,EAAE,mBAAmB,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD;;;;;;OAMG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAErD;;;;;;;;;;OAUG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CACtD;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD;;;OAGG;IACH,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD;;;OAGG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C;;;OAGG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACH,QAAQ,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,6BAA6B;IAC5C,eAAe,EAAE,eAAe,CAAC;IACjC,SAAS,EAAE,mBAAmB,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD;;;;;;;;;;;;;;;OAeG;IACH,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAExD;;;;;OAKG;IACH,IAAI,CACF,GAAG,EAAE,MAAM,EACX,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;CACf;AAED,MAAM,WAAW,iCAAiC;IAChD,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,SAAS,EAAE,mBAAmB,CAAC;CAChC"}
@@ -1,6 +1,33 @@
1
- import { type MobileConfigService as MobileConfigServiceInterface, type PlistDictionary } from '../../../lib/types.js';
1
+ import { type MobileConfigService as MobileConfigServiceInterface } from '../../../lib/types.js';
2
2
  import { ServiceConnection } from '../../../service-connection.js';
3
3
  import { BaseService } from '../base-service.js';
4
+ /**
5
+ * Profile manifest information
6
+ */
7
+ interface ProfileManifest {
8
+ Description: string;
9
+ IsActive: boolean;
10
+ }
11
+ /**
12
+ * Profile metadata information
13
+ */
14
+ interface ProfileMetadata {
15
+ PayloadDescription: string;
16
+ PayloadDisplayName: string;
17
+ PayloadOrganization: string;
18
+ PayloadRemovalDisallowed: boolean;
19
+ PayloadUUID: string;
20
+ PayloadVersion: number;
21
+ }
22
+ /**
23
+ * Profile list
24
+ */
25
+ interface ProfileList {
26
+ OrderedIdentifiers: string[];
27
+ ProfileManifest: Record<string, ProfileManifest>;
28
+ ProfileMetadata: Record<string, ProfileMetadata>;
29
+ Status: 'Acknowledged';
30
+ }
4
31
  /**
5
32
  * MobileConfigService provides an API to:
6
33
  * - Install configuration profiles
@@ -18,7 +45,7 @@ declare class MobileConfigService extends BaseService implements MobileConfigSer
18
45
  connectToMobileConfigService(): Promise<ServiceConnection>;
19
46
  /**
20
47
  * Get all profiles of iOS devices
21
- * @returns {Promise<PlistDictionary>}
48
+ * @returns {Promise<ProfileList>}
22
49
  * e.g.
23
50
  * {
24
51
  * OrderedIdentifiers: [ '2fac1c2b3d684843189b2981c718b0132854a847a' ],
@@ -39,7 +66,7 @@ declare class MobileConfigService extends BaseService implements MobileConfigSer
39
66
  * Status: 'Acknowledged'
40
67
  * }
41
68
  */
42
- getProfileList(): Promise<PlistDictionary>;
69
+ getProfileList(): Promise<ProfileList>;
43
70
  /**
44
71
  * Install profile from path to iOS device
45
72
  * The phone must be unlocked before installing the profile
@@ -61,5 +88,5 @@ declare class MobileConfigService extends BaseService implements MobileConfigSer
61
88
  private _sendPlistAndReceive;
62
89
  private getServiceConfig;
63
90
  }
64
- export { MobileConfigService };
91
+ export { type ProfileManifest, type ProfileMetadata, type ProfileList, MobileConfigService, };
65
92
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/services/ios/mobile-config/index.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,KAAK,mBAAmB,IAAI,4BAA4B,EACxD,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAKjD;;;;;GAKG;AACH,cAAM,mBACJ,SAAQ,WACR,YAAW,4BAA4B;IAEvC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,4CAA4C;IAC5E,OAAO,CAAC,KAAK,CAAkC;gBAEnC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;IAGrC;;;OAGG;IACG,4BAA4B,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAUhE;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,cAAc,IAAI,OAAO,CAAC,eAAe,CAAC;IAQhD;;;;;OAKG;IACG,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB7D;;;;OAIG;IACG,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc9D;;;OAGG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YA0CxC,oBAAoB;IAuBlC,OAAO,CAAC,gBAAgB;CASzB;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/services/ios/mobile-config/index.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,KAAK,mBAAmB,IAAI,4BAA4B,EAEzD,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAKjD;;GAEG;AACH,UAAU,eAAe;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,UAAU,eAAe;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,wBAAwB,EAAE,OAAO,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,UAAU,WAAW;IACnB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACjD,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACjD,MAAM,EAAE,cAAc,CAAC;CACxB;AAED;;;;;GAKG;AACH,cAAM,mBACJ,SAAQ,WACR,YAAW,4BAA4B;IAEvC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,4CAA4C;IAC5E,OAAO,CAAC,KAAK,CAAkC;gBAEnC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;IAGrC;;;OAGG;IACG,4BAA4B,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAUhE;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC;IAS5C;;;;;OAKG;IACG,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB7D;;;;OAIG;IACG,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc9D;;;OAGG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAuCxC,oBAAoB;IAuBlC,OAAO,CAAC,gBAAgB;CASzB;AAED,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,mBAAmB,GACpB,CAAC"}
@@ -34,7 +34,7 @@ class MobileConfigService extends BaseService {
34
34
  }
35
35
  /**
36
36
  * Get all profiles of iOS devices
37
- * @returns {Promise<PlistDictionary>}
37
+ * @returns {Promise<ProfileList>}
38
38
  * e.g.
39
39
  * {
40
40
  * OrderedIdentifiers: [ '2fac1c2b3d684843189b2981c718b0132854a847a' ],
@@ -59,7 +59,8 @@ class MobileConfigService extends BaseService {
59
59
  const req = {
60
60
  RequestType: 'GetProfileList',
61
61
  };
62
- return this._sendPlistAndReceive(req);
62
+ const plistDict = await this._sendPlistAndReceive(req);
63
+ return plistDict;
63
64
  }
64
65
  /**
65
66
  * Install profile from path to iOS device
@@ -116,8 +117,7 @@ class MobileConfigService extends BaseService {
116
117
  if (!(identifier in profileMetadata)) {
117
118
  // Get available identifiers from OrderedIdentifiers array or ProfileMetadata keys
118
119
  let availableIdentifiers;
119
- if (profileList.OrderedIdentifiers &&
120
- Array.isArray(profileList.OrderedIdentifiers)) {
120
+ if (profileList.OrderedIdentifiers) {
121
121
  availableIdentifiers = profileList.OrderedIdentifiers;
122
122
  }
123
123
  else {
@@ -164,4 +164,4 @@ class MobileConfigService extends BaseService {
164
164
  };
165
165
  }
166
166
  }
167
- export { MobileConfigService };
167
+ export { MobileConfigService, };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "appium-ios-remotexpc",
3
- "version": "0.24.0",
3
+ "version": "0.24.2",
4
4
  "main": "build/src/index.js",
5
5
  "types": "build/src/index.d.ts",
6
6
  "type": "module",
@@ -70,7 +70,7 @@
70
70
  "@appium/tsconfig": "^1.0.0-rc.1",
71
71
  "@semantic-release/changelog": "^6.0.3",
72
72
  "@semantic-release/git": "^10.0.1",
73
- "@trivago/prettier-plugin-sort-imports": "^5.2.2",
73
+ "@trivago/prettier-plugin-sort-imports": "^6.0.0",
74
74
  "@types/chai": "^5.2.1",
75
75
  "@types/chai-as-promised": "^8.0.2",
76
76
  "@types/mocha": "^10.0.10",
@@ -78,7 +78,7 @@
78
78
  "chai": "^6.0.1",
79
79
  "chai-as-promised": "^8.0.1",
80
80
  "conventional-changelog-conventionalcommits": "^9.1.0",
81
- "eslint-plugin-unicorn": "^61.0.2",
81
+ "eslint-plugin-unicorn": "^62.0.0",
82
82
  "husky": "^9.1.7",
83
83
  "lint-staged": "^16.2.7",
84
84
  "mocha": "^11.1.0",
@@ -6,23 +6,23 @@ import { getLogger } from '../../logger.js';
6
6
  import { PairingError } from '../errors.js';
7
7
  import type { PairingConfig } from '../types.js';
8
8
 
9
+ const log = getLogger('DeviceDiscoveryService');
10
+
9
11
  /** Discovers Apple TV devices on the local network using Bonjour */
10
12
  export class DeviceDiscoveryService {
11
- private readonly log = getLogger('DeviceDiscoveryService');
12
-
13
13
  constructor(private readonly config: PairingConfig) {}
14
14
 
15
15
  async discoverDevices(): Promise<AppleTVDevice[]> {
16
16
  try {
17
17
  const discovery = new BonjourDiscovery();
18
- this.log.info(
18
+ log.info(
19
19
  `Discovering Apple TV devices (waiting ${this.config.discoveryTimeout / 1000} seconds)...`,
20
20
  );
21
21
  return await discovery.discoverAppleTVDevicesWithIP(
22
22
  this.config.discoveryTimeout,
23
23
  );
24
24
  } catch (error) {
25
- this.log.error('Device discovery failed:', error);
25
+ log.error('Device discovery failed:', error);
26
26
  throw new PairingError(
27
27
  'Device discovery failed',
28
28
  'DISCOVERY_ERROR',
@@ -5,10 +5,10 @@ import { PairingError } from '../errors.js';
5
5
  import { NETWORK_CONSTANTS } from '../network/constants.js';
6
6
  import type { UserInputInterface } from '../pairing-protocol/types.js';
7
7
 
8
+ const log = getLogger('UserInputService');
9
+
8
10
  /** Handles user interaction for PIN input during pairing */
9
11
  export class UserInputService implements UserInputInterface {
10
- private readonly log = getLogger('UserInputService');
11
-
12
12
  async promptForPIN(): Promise<string> {
13
13
  const rl = createInterface({
14
14
  input: process.stdin,
@@ -35,11 +35,11 @@ export class UserInputService implements UserInputInterface {
35
35
 
36
36
  const cleanPin = pin.trim();
37
37
  if (!/^\d+$/.test(cleanPin)) {
38
- this.log.error('Invalid PIN format');
38
+ log.error('Invalid PIN format');
39
39
  throw new PairingError('PIN must contain only digits', 'INVALID_PIN');
40
40
  }
41
41
 
42
- this.log.debug('PIN received successfully');
42
+ log.debug('PIN received successfully');
43
43
  return cleanPin;
44
44
  } finally {
45
45
  // Clean up timeout if error occurred before clearing
@@ -10,9 +10,10 @@ import { PairingError } from '../errors.js';
10
10
  import type { PairingConfig } from '../types.js';
11
11
  import type { PairRecord, PairingStorageInterface } from './types.js';
12
12
 
13
+ const log = getLogger('PairingStorage');
14
+
13
15
  /** Manages persistent storage of pairing credentials as plist files */
14
16
  export class PairingStorage implements PairingStorageInterface {
15
- private readonly log = getLogger('PairingStorage');
16
17
  private readonly box;
17
18
  private strongboxDir?: string;
18
19
 
@@ -37,11 +38,11 @@ export class PairingStorage implements PairingStorageInterface {
37
38
  const item = await this.box.createItemWithValue(itemName, plistContent);
38
39
  const itemPath = item.id;
39
40
 
40
- this.log.info(`Pairing record saved to: ${itemPath}`);
41
+ log.info(`Pairing record saved to: ${itemPath}`);
41
42
 
42
43
  return itemPath;
43
44
  } catch (error) {
44
- this.log.error('Save pairing record error:', error);
45
+ log.error('Save pairing record error:', error);
45
46
  throw new PairingError(
46
47
  'Failed to save pairing record',
47
48
  'SAVE_ERROR',
@@ -60,7 +61,7 @@ export class PairingStorage implements PairingStorageInterface {
60
61
  const pairingData = await item.read();
61
62
 
62
63
  if (!pairingData) {
63
- this.log.debug(`No pair record found for device ${deviceId}`);
64
+ log.debug(`No pair record found for device ${deviceId}`);
64
65
  return null;
65
66
  }
66
67
 
@@ -77,7 +78,7 @@ export class PairingStorage implements PairingStorageInterface {
77
78
  ? parsed.public_key
78
79
  : Buffer.from(parsed.public_key as string, 'base64');
79
80
 
80
- this.log.debug(`Loaded pair record for ${deviceId}`);
81
+ log.debug(`Loaded pair record for ${deviceId}`);
81
82
 
82
83
  return {
83
84
  privateKey,
@@ -85,7 +86,7 @@ export class PairingStorage implements PairingStorageInterface {
85
86
  remoteUnlockHostKey: (parsed.remote_unlock_host_key as string) || '',
86
87
  };
87
88
  } catch (error) {
88
- this.log.error(`Failed to load pair record for ${deviceId}:`, error);
89
+ log.error(`Failed to load pair record for ${deviceId}:`, error);
89
90
  return null;
90
91
  }
91
92
  }
@@ -104,12 +105,12 @@ export class PairingStorage implements PairingStorageInterface {
104
105
  .filter((file: string) => file.startsWith(APPLETV_PAIRING_PREFIX))
105
106
  .map((file: string) => file.replace(APPLETV_PAIRING_PREFIX, ''));
106
107
 
107
- this.log.debug(
108
+ log.debug(
108
109
  `Found ${deviceIds.length} pair record(s): ${deviceIds.join(', ')}`,
109
110
  );
110
111
  return deviceIds;
111
112
  } catch (error) {
112
- this.log.debug('Error getting available device IDs:', error);
113
+ log.debug('Error getting available device IDs:', error);
113
114
  return [];
114
115
  }
115
116
  }
@@ -19,10 +19,10 @@ import { PairingStorage } from '../storage/pairing-storage.js';
19
19
  import type { PairRecord } from '../storage/types.js';
20
20
  import type { TcpListenerInfo, TlsPskConnectionOptions } from './types.js';
21
21
 
22
+ const log = getLogger('TunnelService');
22
23
  const appleTVLog = getLogger('AppleTVTunnelService');
23
24
 
24
25
  export class TunnelService {
25
- private static readonly log = getLogger('TunnelService');
26
26
  private encryptedSequenceNumber = 0;
27
27
 
28
28
  constructor(
@@ -32,7 +32,7 @@ export class TunnelService {
32
32
  ) {}
33
33
 
34
34
  async createTcpListener(): Promise<TcpListenerInfo> {
35
- TunnelService.log.debug('Creating TCP listener (Encrypted Request)');
35
+ log.debug('Creating TCP listener (Encrypted Request)');
36
36
 
37
37
  const request = {
38
38
  request: {
@@ -100,7 +100,7 @@ export class TunnelService {
100
100
  const createListenerResponse = responseJson?.response?._1?.createListener;
101
101
 
102
102
  if (!createListenerResponse?.port) {
103
- TunnelService.log.error('Invalid createListener response:', responseJson);
103
+ log.error('Invalid createListener response:', responseJson);
104
104
  throw new PairingError(
105
105
  'TCP listener creation failed: missing port in response',
106
106
  'LISTENER_PORT_MISSING',
@@ -108,9 +108,7 @@ export class TunnelService {
108
108
  );
109
109
  }
110
110
 
111
- TunnelService.log.debug(
112
- `TCP Listener created on port: ${createListenerResponse.port}`,
113
- );
111
+ log.debug(`TCP Listener created on port: ${createListenerResponse.port}`);
114
112
 
115
113
  return createListenerResponse;
116
114
  }
@@ -119,16 +117,14 @@ export class TunnelService {
119
117
  hostname: string,
120
118
  port: number,
121
119
  ): Promise<tls.TLSSocket> {
122
- TunnelService.log.debug(
123
- `Creating TLS-PSK connection to ${hostname}:${port}`,
124
- );
120
+ log.debug(`Creating TLS-PSK connection to ${hostname}:${port}`);
125
121
 
126
122
  return new Promise((resolve, reject) => {
127
123
  const options: TlsPskConnectionOptions = {
128
124
  host: hostname,
129
125
  port,
130
126
  pskCallback: (hint: string | null) => {
131
- TunnelService.log.debug(`PSK callback invoked with hint: ${hint}`);
127
+ log.debug(`PSK callback invoked with hint: ${hint}`);
132
128
  return {
133
129
  psk: this.keys.encryptionKey,
134
130
  identity: '',
@@ -149,39 +145,33 @@ export class TunnelService {
149
145
  };
150
146
 
151
147
  const socket = tls.connect(options, () => {
152
- TunnelService.log.debug('TLS-PSK connection established');
148
+ log.debug('TLS-PSK connection established');
153
149
  resolve(socket);
154
150
  });
155
151
 
156
152
  socket.on('error', (error: Error & { code?: string }) => {
157
- TunnelService.log.error('TLS-PSK connection error:', error);
153
+ log.error('TLS-PSK connection error:', error);
158
154
 
159
155
  if (
160
156
  error.message?.includes('no shared cipher') ||
161
157
  error.code === 'ECONNRESET'
162
158
  ) {
163
- TunnelService.log.error(
164
- 'PSK ciphers may not be available in your Node.js build',
165
- );
166
- TunnelService.log.error('You may need to:');
167
- TunnelService.log.error(
168
- '1. Use Node.js compiled with PSK-enabled OpenSSL',
169
- );
170
- TunnelService.log.error(
171
- '2. Use a Python subprocess for the TLS-PSK connection',
172
- );
173
- TunnelService.log.error('3. Use a native module like node-openssl');
159
+ log.error('PSK ciphers may not be available in your Node.js build');
160
+ log.error('You may need to:');
161
+ log.error('1. Use Node.js compiled with PSK-enabled OpenSSL');
162
+ log.error('2. Use a Python subprocess for the TLS-PSK connection');
163
+ log.error('3. Use a native module like node-openssl');
174
164
  }
175
165
 
176
166
  reject(error);
177
167
  });
178
168
 
179
169
  socket.on('secureConnect', () => {
180
- TunnelService.log.debug('Secure connection event fired');
170
+ log.debug('Secure connection event fired');
181
171
  });
182
172
 
183
173
  socket.on('tlsClientError', (error) => {
184
- TunnelService.log.error('TLS client error:', error);
174
+ log.error('TLS client error:', error);
185
175
  });
186
176
  });
187
177
  }
@@ -9,6 +9,8 @@ import type { PlistMessage, PlistValue } from '../types.js';
9
9
  import { RelayService, createUsbmux } from '../usbmux/index.js';
10
10
 
11
11
  const log = getLogger('Lockdown');
12
+ const tlsManagerLog = getLogger('TLSManager');
13
+ const deviceManagerLog = getLogger('DeviceManager');
12
14
 
13
15
  // Constants
14
16
  const LABEL = 'appium-internal';
@@ -79,8 +81,6 @@ class DeviceNotFoundError extends Error {
79
81
 
80
82
  // TLS Manager for handling TLS operations
81
83
  class TLSManager {
82
- private readonly log = getLogger('TLSManager');
83
-
84
84
  /**
85
85
  * Upgrades a socket to TLS
86
86
  */
@@ -90,7 +90,7 @@ class TLSManager {
90
90
  ): Promise<TLSSocket> {
91
91
  return new Promise((resolve, reject) => {
92
92
  socket.pause();
93
- this.log.debug('Upgrading socket to TLS...');
93
+ tlsManagerLog.debug('Upgrading socket to TLS...');
94
94
 
95
95
  const secure = tls.connect(
96
96
  {
@@ -100,18 +100,18 @@ class TLSManager {
100
100
  ...tlsOptions,
101
101
  },
102
102
  () => {
103
- this.log.info('TLS handshake completed');
103
+ tlsManagerLog.info('TLS handshake completed');
104
104
  resolve(secure);
105
105
  },
106
106
  );
107
107
 
108
108
  secure.on('error', (err) => {
109
- this.log.error(`TLS socket error: ${err}`);
109
+ tlsManagerLog.error(`TLS socket error: ${err}`);
110
110
  reject(new TLSUpgradeError(`TLS socket error: ${err.message}`));
111
111
  });
112
112
 
113
113
  socket.on('error', (err) => {
114
- this.log.error(`Underlying socket error during TLS: ${err}`);
114
+ tlsManagerLog.error(`Underlying socket error during TLS: ${err}`);
115
115
  reject(new TLSUpgradeError(`Socket error during TLS: ${err.message}`));
116
116
  });
117
117
  });
@@ -120,17 +120,15 @@ class TLSManager {
120
120
 
121
121
  // Device Manager for handling device operations
122
122
  class DeviceManager {
123
- private readonly log = getLogger('DeviceManager');
124
-
125
123
  /**
126
124
  * Lists all connected devices
127
125
  */
128
126
  async listDevices(): Promise<Device[]> {
129
127
  const usbmux = await createUsbmux();
130
128
  try {
131
- this.log.debug('Listing connected devices...');
129
+ deviceManagerLog.debug('Listing connected devices...');
132
130
  const devices = await usbmux.listDevices();
133
- this.log.debug(
131
+ deviceManagerLog.debug(
134
132
  `Found ${devices.length} devices: ${devices.map((d) => d.Properties.SerialNumber).join(', ')}`,
135
133
  );
136
134
  return devices;
@@ -154,7 +152,7 @@ class DeviceManager {
154
152
  throw new DeviceNotFoundError(udid);
155
153
  }
156
154
 
157
- this.log.info(
155
+ deviceManagerLog.info(
158
156
  `Found device: DeviceID=${device.DeviceID}, SerialNumber=${device.Properties.SerialNumber}, ConnectionType=${device.Properties.ConnectionType}`,
159
157
  );
160
158
 
@@ -165,7 +163,7 @@ class DeviceManager {
165
163
  * Reads pair record for a device
166
164
  */
167
165
  async readPairRecord(udid: string): Promise<PairRecord> {
168
- this.log.debug(`Retrieving pair record for UDID: ${udid}`);
166
+ deviceManagerLog.debug(`Retrieving pair record for UDID: ${udid}`);
169
167
  const usbmux = await createUsbmux();
170
168
 
171
169
  try {
@@ -175,10 +173,10 @@ class DeviceManager {
175
173
  throw new LockdownError('Pair record missing certificate or key');
176
174
  }
177
175
 
178
- this.log.info('Pair record retrieved successfully');
176
+ deviceManagerLog.info('Pair record retrieved successfully');
179
177
  return record;
180
178
  } catch (err) {
181
- this.log.error(`Error getting pair record: ${err}`);
179
+ deviceManagerLog.error(`Error getting pair record: ${err}`);
182
180
  throw err;
183
181
  } finally {
184
182
  await this.closeUsbmux(usbmux);
@@ -189,7 +187,7 @@ class DeviceManager {
189
187
  try {
190
188
  await usbmux.close();
191
189
  } catch (err) {
192
- this.log.error(`Error closing usbmux: ${err}`);
190
+ deviceManagerLog.error(`Error closing usbmux: ${err}`);
193
191
  }
194
192
  }
195
193
  }
package/src/lib/types.ts CHANGED
@@ -11,6 +11,7 @@ import type { iOSApplication } from '../services/ios/dvt/instruments/application
11
11
  import type { LocationCoordinates } from '../services/ios/dvt/instruments/location-simulation.js';
12
12
  import type { NotificationMessage } from '../services/ios/dvt/instruments/notifications.js';
13
13
  import { ProvisioningProfile } from '../services/ios/misagent/provisioning-profile.js';
14
+ import type { ProfileList } from '../services/ios/mobile-config/index.js';
14
15
  import type { PowerAssertionOptions } from '../services/ios/power-assertion/index.js';
15
16
  import { PowerAssertionType } from '../services/ios/power-assertion/index.js';
16
17
  import type { InterfaceOrientation } from '../services/ios/springboard-service/index.js';
@@ -258,7 +259,7 @@ export interface MobileConfigService extends BaseService {
258
259
  connectToMobileConfigService(): Promise<ServiceConnection>;
259
260
  /**
260
261
  * Get all profiles of iOS devices
261
- * @returns {Promise<PlistDictionary>}
262
+ * @returns {Promise<ProfileList>}
262
263
  * e.g.
263
264
  * {
264
265
  * OrderedIdentifiers: [ '2fac1c2b3d684843189b2981c718b0132854a847a' ],
@@ -279,7 +280,7 @@ export interface MobileConfigService extends BaseService {
279
280
  * Status: 'Acknowledged'
280
281
  * }
281
282
  */
282
- getProfileList(): Promise<PlistDictionary>;
283
+ getProfileList(): Promise<ProfileList>;
283
284
  /**
284
285
  * Install profile to iOS device
285
286
  * @param {String} path must be a certificate file .PEM .CER and more formats
@@ -14,6 +14,36 @@ import { BaseService } from '../base-service.js';
14
14
  const ERROR_CLOUD_CONFIGURATION_ALREADY_PRESENT = 14002;
15
15
  const log = getLogger('MobileConfigService');
16
16
 
17
+ /**
18
+ * Profile manifest information
19
+ */
20
+ interface ProfileManifest {
21
+ Description: string;
22
+ IsActive: boolean;
23
+ }
24
+
25
+ /**
26
+ * Profile metadata information
27
+ */
28
+ interface ProfileMetadata {
29
+ PayloadDescription: string;
30
+ PayloadDisplayName: string;
31
+ PayloadOrganization: string;
32
+ PayloadRemovalDisallowed: boolean;
33
+ PayloadUUID: string;
34
+ PayloadVersion: number;
35
+ }
36
+
37
+ /**
38
+ * Profile list
39
+ */
40
+ interface ProfileList {
41
+ OrderedIdentifiers: string[];
42
+ ProfileManifest: Record<string, ProfileManifest>;
43
+ ProfileMetadata: Record<string, ProfileMetadata>;
44
+ Status: 'Acknowledged';
45
+ }
46
+
17
47
  /**
18
48
  * MobileConfigService provides an API to:
19
49
  * - Install configuration profiles
@@ -46,7 +76,7 @@ class MobileConfigService
46
76
 
47
77
  /**
48
78
  * Get all profiles of iOS devices
49
- * @returns {Promise<PlistDictionary>}
79
+ * @returns {Promise<ProfileList>}
50
80
  * e.g.
51
81
  * {
52
82
  * OrderedIdentifiers: [ '2fac1c2b3d684843189b2981c718b0132854a847a' ],
@@ -67,12 +97,13 @@ class MobileConfigService
67
97
  * Status: 'Acknowledged'
68
98
  * }
69
99
  */
70
- async getProfileList(): Promise<PlistDictionary> {
100
+ async getProfileList(): Promise<ProfileList> {
71
101
  const req = {
72
102
  RequestType: 'GetProfileList',
73
103
  };
74
104
 
75
- return this._sendPlistAndReceive(req);
105
+ const plistDict = await this._sendPlistAndReceive(req);
106
+ return plistDict as unknown as ProfileList;
76
107
  }
77
108
 
78
109
  /**
@@ -132,15 +163,12 @@ class MobileConfigService
132
163
  return;
133
164
  }
134
165
 
135
- const profileMetadata = profileList.ProfileMetadata as Record<string, any>;
166
+ const profileMetadata = profileList.ProfileMetadata;
136
167
  if (!(identifier in profileMetadata)) {
137
168
  // Get available identifiers from OrderedIdentifiers array or ProfileMetadata keys
138
169
  let availableIdentifiers: string[];
139
- if (
140
- profileList.OrderedIdentifiers &&
141
- Array.isArray(profileList.OrderedIdentifiers)
142
- ) {
143
- availableIdentifiers = profileList.OrderedIdentifiers as string[];
170
+ if (profileList.OrderedIdentifiers) {
171
+ availableIdentifiers = profileList.OrderedIdentifiers;
144
172
  } else {
145
173
  availableIdentifiers = Object.keys(profileMetadata);
146
174
  }
@@ -202,4 +230,9 @@ class MobileConfigService
202
230
  }
203
231
  }
204
232
 
205
- export { MobileConfigService };
233
+ export {
234
+ type ProfileManifest,
235
+ type ProfileMetadata,
236
+ type ProfileList,
237
+ MobileConfigService,
238
+ };