appium-ios-remotexpc 0.18.0 → 0.18.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/build/src/lib/apple-tv/encryption/ed25519.d.ts.map +1 -1
- package/build/src/lib/apple-tv/encryption/ed25519.js +1 -1
- package/build/src/lib/tunnel/packet-stream-client.js +1 -1
- package/build/src/services/ios/dvt/instruments/application-listing.d.ts +2 -9
- package/build/src/services/ios/dvt/instruments/application-listing.d.ts.map +1 -1
- package/build/src/services/ios/dvt/instruments/application-listing.js +2 -15
- package/build/src/services/ios/dvt/instruments/base-instrument.d.ts +19 -0
- package/build/src/services/ios/dvt/instruments/base-instrument.d.ts.map +1 -0
- package/build/src/services/ios/dvt/instruments/base-instrument.js +24 -0
- package/build/src/services/ios/dvt/instruments/condition-inducer.d.ts +2 -9
- package/build/src/services/ios/dvt/instruments/condition-inducer.d.ts.map +1 -1
- package/build/src/services/ios/dvt/instruments/condition-inducer.js +2 -15
- package/build/src/services/ios/dvt/instruments/device-info.d.ts +2 -9
- package/build/src/services/ios/dvt/instruments/device-info.d.ts.map +1 -1
- package/build/src/services/ios/dvt/instruments/device-info.js +2 -14
- package/build/src/services/ios/dvt/instruments/graphics.d.ts +2 -6
- package/build/src/services/ios/dvt/instruments/graphics.d.ts.map +1 -1
- package/build/src/services/ios/dvt/instruments/graphics.js +2 -11
- package/build/src/services/ios/dvt/instruments/location-simulation.d.ts +2 -9
- package/build/src/services/ios/dvt/instruments/location-simulation.d.ts.map +1 -1
- package/build/src/services/ios/dvt/instruments/location-simulation.js +2 -15
- package/build/src/services/ios/dvt/instruments/screenshot.d.ts +2 -6
- package/build/src/services/ios/dvt/instruments/screenshot.d.ts.map +1 -1
- package/build/src/services/ios/dvt/instruments/screenshot.js +2 -11
- package/package.json +2 -2
- package/src/lib/apple-tv/encryption/ed25519.ts +2 -6
- package/src/lib/tunnel/packet-stream-client.ts +1 -1
- package/src/services/ios/dvt/instruments/application-listing.ts +2 -17
- package/src/services/ios/dvt/instruments/base-instrument.ts +27 -0
- package/src/services/ios/dvt/instruments/condition-inducer.ts +2 -17
- package/src/services/ios/dvt/instruments/device-info.ts +2 -15
- package/src/services/ios/dvt/instruments/graphics.ts +2 -13
- package/src/services/ios/dvt/instruments/location-simulation.ts +2 -18
- package/src/services/ios/dvt/instruments/screenshot.ts +2 -13
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
## [0.18.1](https://github.com/appium/appium-ios-remotexpc/compare/v0.18.0...v0.18.1) (2025-12-16)
|
|
2
|
+
|
|
3
|
+
### Miscellaneous Chores
|
|
4
|
+
|
|
5
|
+
* **deps:** bump @types/node from 24.10.4 to 25.0.2 ([#114](https://github.com/appium/appium-ios-remotexpc/issues/114)) ([0435e18](https://github.com/appium/appium-ios-remotexpc/commit/0435e183cfc80aff4ed4459f313b1d481295f0d2))
|
|
6
|
+
|
|
1
7
|
## [0.18.0](https://github.com/appium/appium-ios-remotexpc/compare/v0.17.0...v0.18.0) (2025-12-05)
|
|
2
8
|
|
|
3
9
|
### Features
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ed25519.d.ts","sourceRoot":"","sources":["../../../../../src/lib/apple-tv/encryption/ed25519.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ed25519.d.ts","sourceRoot":"","sources":["../../../../../src/lib/apple-tv/encryption/ed25519.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAW/C;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,WAAW,CA4BpD;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GACjB,MAAM,CA0BR"}
|
|
@@ -34,7 +34,7 @@ export class PacketStreamClient extends EventEmitter {
|
|
|
34
34
|
resolve();
|
|
35
35
|
});
|
|
36
36
|
this.socket.on('data', (data) => {
|
|
37
|
-
this.handleData(data);
|
|
37
|
+
this.handleData(Buffer.isBuffer(data) ? data : Buffer.from(data));
|
|
38
38
|
});
|
|
39
39
|
this.socket.once('close', () => {
|
|
40
40
|
log.info('Disconnected from packet stream server');
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { BaseInstrument } from './base-instrument.js';
|
|
2
2
|
export interface iOSApplication {
|
|
3
3
|
/** Display name of the application/plugin */
|
|
4
4
|
DisplayName: string;
|
|
@@ -28,15 +28,8 @@ export interface iOSApplication {
|
|
|
28
28
|
/**
|
|
29
29
|
* Application Listing service for retrieving installed applications
|
|
30
30
|
*/
|
|
31
|
-
export declare class ApplicationListing {
|
|
32
|
-
private readonly dvt;
|
|
31
|
+
export declare class ApplicationListing extends BaseInstrument {
|
|
33
32
|
static readonly IDENTIFIER = "com.apple.instruments.server.services.device.applictionListing";
|
|
34
|
-
private channel;
|
|
35
|
-
constructor(dvt: DVTSecureSocketProxyService);
|
|
36
|
-
/**
|
|
37
|
-
* Initialize the application listing channel
|
|
38
|
-
*/
|
|
39
|
-
initialize(): Promise<void>;
|
|
40
33
|
/**
|
|
41
34
|
* Get the list of installed applications from the device
|
|
42
35
|
* @returns {Promise<iOSApplication[]>}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application-listing.d.ts","sourceRoot":"","sources":["../../../../../../src/services/ios/dvt/instruments/application-listing.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"application-listing.d.ts","sourceRoot":"","sources":["../../../../../../src/services/ios/dvt/instruments/application-listing.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItD,MAAM,WAAW,cAAc;IAC7B,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;IAEpB,mDAAmD;IACnD,kBAAkB,EAAE,MAAM,CAAC;IAE3B,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;IAEnB,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;IAEhB,uCAAuC;IACvC,cAAc,EAAE,MAAM,CAAC;IAEvB,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;IAEnB,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IAEb,oCAAoC;IACpC,gBAAgB,EAAE,MAAM,CAAC;IAEzB,mCAAmC;IACnC,UAAU,EAAE,MAAM,CAAC;IAEnB,sDAAsD;IACtD,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE1C,6DAA6D;IAC7D,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAEnC,sDAAsD;IACtD,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,cAAc;IACpD,MAAM,CAAC,QAAQ,CAAC,UAAU,oEACyC;IAEnE;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;CA0BxC"}
|
|
@@ -1,25 +1,12 @@
|
|
|
1
1
|
import { getLogger } from '../../../../lib/logger.js';
|
|
2
2
|
import { MessageAux } from '../dtx-message.js';
|
|
3
|
+
import { BaseInstrument } from './base-instrument.js';
|
|
3
4
|
const log = getLogger('ApplicationListing');
|
|
4
5
|
/**
|
|
5
6
|
* Application Listing service for retrieving installed applications
|
|
6
7
|
*/
|
|
7
|
-
export class ApplicationListing {
|
|
8
|
-
dvt;
|
|
8
|
+
export class ApplicationListing extends BaseInstrument {
|
|
9
9
|
static IDENTIFIER = 'com.apple.instruments.server.services.device.applictionListing';
|
|
10
|
-
channel = null;
|
|
11
|
-
constructor(dvt) {
|
|
12
|
-
this.dvt = dvt;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Initialize the application listing channel
|
|
16
|
-
*/
|
|
17
|
-
async initialize() {
|
|
18
|
-
if (this.channel) {
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
this.channel = await this.dvt.makeChannel(ApplicationListing.IDENTIFIER);
|
|
22
|
-
}
|
|
23
10
|
/**
|
|
24
11
|
* Get the list of installed applications from the device
|
|
25
12
|
* @returns {Promise<iOSApplication[]>}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Channel } from '../channel.js';
|
|
2
|
+
import type { DVTSecureSocketProxyService } from '../index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Base class for DVT instrument services.
|
|
5
|
+
*
|
|
6
|
+
* Subclasses must define a static `IDENTIFIER` property.
|
|
7
|
+
*/
|
|
8
|
+
export declare abstract class BaseInstrument {
|
|
9
|
+
protected readonly dvt: DVTSecureSocketProxyService;
|
|
10
|
+
static readonly IDENTIFIER: string;
|
|
11
|
+
protected channel: Channel | null;
|
|
12
|
+
constructor(dvt: DVTSecureSocketProxyService);
|
|
13
|
+
protected get identifier(): string;
|
|
14
|
+
/**
|
|
15
|
+
* Initialize the instrument channel.
|
|
16
|
+
*/
|
|
17
|
+
initialize(): Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=base-instrument.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-instrument.d.ts","sourceRoot":"","sources":["../../../../../../src/services/ios/dvt/instruments/base-instrument.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAE/D;;;;GAIG;AACH,8BAAsB,cAAc;IAItB,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,2BAA2B;IAH/D,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAEnC,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAQ;gBACV,GAAG,EAAE,2BAA2B;IAE/D,SAAS,KAAK,UAAU,IAAI,MAAM,CAEjC;IAED;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAKlC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base class for DVT instrument services.
|
|
3
|
+
*
|
|
4
|
+
* Subclasses must define a static `IDENTIFIER` property.
|
|
5
|
+
*/
|
|
6
|
+
export class BaseInstrument {
|
|
7
|
+
dvt;
|
|
8
|
+
static IDENTIFIER;
|
|
9
|
+
channel = null;
|
|
10
|
+
constructor(dvt) {
|
|
11
|
+
this.dvt = dvt;
|
|
12
|
+
}
|
|
13
|
+
get identifier() {
|
|
14
|
+
return this.constructor.IDENTIFIER;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Initialize the instrument channel.
|
|
18
|
+
*/
|
|
19
|
+
async initialize() {
|
|
20
|
+
if (!this.channel) {
|
|
21
|
+
this.channel = await this.dvt.makeChannel(this.identifier);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -1,18 +1,11 @@
|
|
|
1
1
|
import type { ConditionGroup } from '../../../../lib/types.js';
|
|
2
|
-
import
|
|
2
|
+
import { BaseInstrument } from './base-instrument.js';
|
|
3
3
|
/**
|
|
4
4
|
* Condition Inducer service for simulating various device conditions
|
|
5
5
|
* such as network conditions, thermal states, etc.
|
|
6
6
|
*/
|
|
7
|
-
export declare class ConditionInducer {
|
|
8
|
-
private readonly dvt;
|
|
7
|
+
export declare class ConditionInducer extends BaseInstrument {
|
|
9
8
|
static readonly IDENTIFIER = "com.apple.instruments.server.services.ConditionInducer";
|
|
10
|
-
private channel;
|
|
11
|
-
constructor(dvt: DVTSecureSocketProxyService);
|
|
12
|
-
/**
|
|
13
|
-
* Initialize the condition inducer channel
|
|
14
|
-
*/
|
|
15
|
-
initialize(): Promise<void>;
|
|
16
9
|
/**
|
|
17
10
|
* List all available condition inducers and their profiles
|
|
18
11
|
* @returns Array of condition groups with their available profiles
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"condition-inducer.d.ts","sourceRoot":"","sources":["../../../../../../src/services/ios/dvt/instruments/condition-inducer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"condition-inducer.d.ts","sourceRoot":"","sources":["../../../../../../src/services/ios/dvt/instruments/condition-inducer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItD;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,cAAc;IAClD,MAAM,CAAC,QAAQ,CAAC,UAAU,4DACiC;IAE3D;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAwBvC;;;;;OAKG;IACG,GAAG,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4CnD;;;;;OAKG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB9B,OAAO,CAAC,SAAS;CAKlB"}
|
|
@@ -1,26 +1,13 @@
|
|
|
1
1
|
import { getLogger } from '../../../../lib/logger.js';
|
|
2
2
|
import { MessageAux } from '../dtx-message.js';
|
|
3
|
+
import { BaseInstrument } from './base-instrument.js';
|
|
3
4
|
const log = getLogger('ConditionInducer');
|
|
4
5
|
/**
|
|
5
6
|
* Condition Inducer service for simulating various device conditions
|
|
6
7
|
* such as network conditions, thermal states, etc.
|
|
7
8
|
*/
|
|
8
|
-
export class ConditionInducer {
|
|
9
|
-
dvt;
|
|
9
|
+
export class ConditionInducer extends BaseInstrument {
|
|
10
10
|
static IDENTIFIER = 'com.apple.instruments.server.services.ConditionInducer';
|
|
11
|
-
channel = null;
|
|
12
|
-
constructor(dvt) {
|
|
13
|
-
this.dvt = dvt;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Initialize the condition inducer channel
|
|
17
|
-
*/
|
|
18
|
-
async initialize() {
|
|
19
|
-
if (this.channel) {
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
this.channel = await this.dvt.makeChannel(ConditionInducer.IDENTIFIER);
|
|
23
|
-
}
|
|
24
11
|
/**
|
|
25
12
|
* List all available condition inducers and their profiles
|
|
26
13
|
* @returns Array of condition groups with their available profiles
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ProcessInfo } from '../../../../lib/types.js';
|
|
2
|
-
import
|
|
2
|
+
import { BaseInstrument } from './base-instrument.js';
|
|
3
3
|
/**
|
|
4
4
|
* DeviceInfo service provides access to device information, file system,
|
|
5
5
|
* and process management through the DTX protocol.
|
|
@@ -18,15 +18,8 @@ import type { DVTSecureSocketProxyService } from '../index.js';
|
|
|
18
18
|
* - nameForUid(uid): Get username for UID
|
|
19
19
|
* - nameForGid(gid): Get group name for GID
|
|
20
20
|
*/
|
|
21
|
-
export declare class DeviceInfo {
|
|
22
|
-
private readonly dvt;
|
|
21
|
+
export declare class DeviceInfo extends BaseInstrument {
|
|
23
22
|
static readonly IDENTIFIER = "com.apple.instruments.server.services.deviceinfo";
|
|
24
|
-
private channel;
|
|
25
|
-
constructor(dvt: DVTSecureSocketProxyService);
|
|
26
|
-
/**
|
|
27
|
-
* Initialize the device info channel
|
|
28
|
-
*/
|
|
29
|
-
initialize(): Promise<void>;
|
|
30
23
|
/**
|
|
31
24
|
* List directory contents at the specified path.
|
|
32
25
|
* @param path - The directory path to list
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device-info.d.ts","sourceRoot":"","sources":["../../../../../../src/services/ios/dvt/instruments/device-info.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"device-info.d.ts","sourceRoot":"","sources":["../../../../../../src/services/ios/dvt/instruments/device-info.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,UAAW,SAAQ,cAAc;IAC5C,MAAM,CAAC,QAAQ,CAAC,UAAU,sDAC2B;IAErD;;;;;OAKG;IACG,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAczC;;;;OAIG;IACG,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIlD;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAaxC;;;;OAIG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIjD;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,GAAG,CAAC;IAIzC;;;OAGG;IACG,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC;IAIxC;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC;IAIlC;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAIvC;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAoBzC;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAoBnD;;;;OAIG;IACG,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI9C;;;;OAIG;IACG,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI9C;;;;;;OAMG;YACW,kBAAkB;CAajC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { getLogger } from '../../../../lib/logger.js';
|
|
2
2
|
import { parseBinaryPlist } from '../../../../lib/plist/index.js';
|
|
3
3
|
import { MessageAux } from '../dtx-message.js';
|
|
4
|
+
import { BaseInstrument } from './base-instrument.js';
|
|
4
5
|
const log = getLogger('DeviceInfo');
|
|
5
6
|
/**
|
|
6
7
|
* DeviceInfo service provides access to device information, file system,
|
|
@@ -20,21 +21,8 @@ const log = getLogger('DeviceInfo');
|
|
|
20
21
|
* - nameForUid(uid): Get username for UID
|
|
21
22
|
* - nameForGid(gid): Get group name for GID
|
|
22
23
|
*/
|
|
23
|
-
export class DeviceInfo {
|
|
24
|
-
dvt;
|
|
24
|
+
export class DeviceInfo extends BaseInstrument {
|
|
25
25
|
static IDENTIFIER = 'com.apple.instruments.server.services.deviceinfo';
|
|
26
|
-
channel = null;
|
|
27
|
-
constructor(dvt) {
|
|
28
|
-
this.dvt = dvt;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Initialize the device info channel
|
|
32
|
-
*/
|
|
33
|
-
async initialize() {
|
|
34
|
-
if (!this.channel) {
|
|
35
|
-
this.channel = await this.dvt.makeChannel(DeviceInfo.IDENTIFIER);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
26
|
/**
|
|
39
27
|
* List directory contents at the specified path.
|
|
40
28
|
* @param path - The directory path to list
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
export declare class Graphics {
|
|
3
|
-
private readonly dvt;
|
|
1
|
+
import { BaseInstrument } from './base-instrument.js';
|
|
2
|
+
export declare class Graphics extends BaseInstrument {
|
|
4
3
|
static readonly IDENTIFIER = "com.apple.instruments.server.services.graphics.opengl";
|
|
5
|
-
private channel;
|
|
6
|
-
constructor(dvt: DVTSecureSocketProxyService);
|
|
7
|
-
initialize(): Promise<void>;
|
|
8
4
|
start(): Promise<void>;
|
|
9
5
|
stop(): Promise<void>;
|
|
10
6
|
messages(): AsyncGenerator<unknown, void, unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphics.d.ts","sourceRoot":"","sources":["../../../../../../src/services/ios/dvt/instruments/graphics.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"graphics.d.ts","sourceRoot":"","sources":["../../../../../../src/services/ios/dvt/instruments/graphics.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItD,qBAAa,QAAS,SAAQ,cAAc;IAC1C,MAAM,CAAC,QAAQ,CAAC,UAAU,2DACgC;IAEpD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpB,QAAQ,IAAI,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC;CAa1D"}
|
|
@@ -1,18 +1,9 @@
|
|
|
1
1
|
import { getLogger } from '../../../../lib/logger.js';
|
|
2
2
|
import { MessageAux } from '../dtx-message.js';
|
|
3
|
+
import { BaseInstrument } from './base-instrument.js';
|
|
3
4
|
const log = getLogger('Graphics');
|
|
4
|
-
export class Graphics {
|
|
5
|
-
dvt;
|
|
5
|
+
export class Graphics extends BaseInstrument {
|
|
6
6
|
static IDENTIFIER = 'com.apple.instruments.server.services.graphics.opengl';
|
|
7
|
-
channel = null;
|
|
8
|
-
constructor(dvt) {
|
|
9
|
-
this.dvt = dvt;
|
|
10
|
-
}
|
|
11
|
-
async initialize() {
|
|
12
|
-
if (!this.channel) {
|
|
13
|
-
this.channel = await this.dvt.makeChannel(Graphics.IDENTIFIER);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
7
|
async start() {
|
|
17
8
|
await this.initialize();
|
|
18
9
|
const args = new MessageAux().appendObj(0.0);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { BaseInstrument } from './base-instrument.js';
|
|
2
2
|
/**
|
|
3
3
|
* Geographic coordinates
|
|
4
4
|
*/
|
|
@@ -9,15 +9,8 @@ export interface LocationCoordinates {
|
|
|
9
9
|
/**
|
|
10
10
|
* Location simulation service for simulating device GPS location
|
|
11
11
|
*/
|
|
12
|
-
export declare class LocationSimulation {
|
|
13
|
-
private readonly dvt;
|
|
12
|
+
export declare class LocationSimulation extends BaseInstrument {
|
|
14
13
|
static readonly IDENTIFIER = "com.apple.instruments.server.services.LocationSimulation";
|
|
15
|
-
private channel;
|
|
16
|
-
constructor(dvt: DVTSecureSocketProxyService);
|
|
17
|
-
/**
|
|
18
|
-
* Initialize the location simulation channel
|
|
19
|
-
*/
|
|
20
|
-
initialize(): Promise<void>;
|
|
21
14
|
/**
|
|
22
15
|
* Set the simulated GPS location
|
|
23
16
|
* @param coordinates The location coordinates
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"location-simulation.d.ts","sourceRoot":"","sources":["../../../../../../src/services/ios/dvt/instruments/location-simulation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"location-simulation.d.ts","sourceRoot":"","sources":["../../../../../../src/services/ios/dvt/instruments/location-simulation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,cAAc;IACpD,MAAM,CAAC,QAAQ,CAAC,UAAU,8DACmC;IAE7D;;;OAGG;IACG,GAAG,CAAC,WAAW,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAe1D;;;;OAIG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrE;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAG5B"}
|
|
@@ -1,25 +1,12 @@
|
|
|
1
1
|
import { getLogger } from '../../../../lib/logger.js';
|
|
2
2
|
import { MessageAux } from '../dtx-message.js';
|
|
3
|
+
import { BaseInstrument } from './base-instrument.js';
|
|
3
4
|
const log = getLogger('LocationSimulation');
|
|
4
5
|
/**
|
|
5
6
|
* Location simulation service for simulating device GPS location
|
|
6
7
|
*/
|
|
7
|
-
export class LocationSimulation {
|
|
8
|
-
dvt;
|
|
8
|
+
export class LocationSimulation extends BaseInstrument {
|
|
9
9
|
static IDENTIFIER = 'com.apple.instruments.server.services.LocationSimulation';
|
|
10
|
-
channel = null;
|
|
11
|
-
constructor(dvt) {
|
|
12
|
-
this.dvt = dvt;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Initialize the location simulation channel
|
|
16
|
-
*/
|
|
17
|
-
async initialize() {
|
|
18
|
-
if (this.channel) {
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
this.channel = await this.dvt.makeChannel(LocationSimulation.IDENTIFIER);
|
|
22
|
-
}
|
|
23
10
|
/**
|
|
24
11
|
* Set the simulated GPS location
|
|
25
12
|
* @param coordinates The location coordinates
|
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { BaseInstrument } from './base-instrument.js';
|
|
2
2
|
/**
|
|
3
3
|
* Screenshot service for capturing device screenshots
|
|
4
4
|
*/
|
|
5
|
-
export declare class Screenshot {
|
|
6
|
-
private readonly dvt;
|
|
5
|
+
export declare class Screenshot extends BaseInstrument {
|
|
7
6
|
static readonly IDENTIFIER = "com.apple.instruments.server.services.screenshot";
|
|
8
|
-
private channel;
|
|
9
|
-
constructor(dvt: DVTSecureSocketProxyService);
|
|
10
|
-
initialize(): Promise<void>;
|
|
11
7
|
/**
|
|
12
8
|
* Capture a screenshot from the device
|
|
13
9
|
* @returns The screenshot data as a Buffer
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screenshot.d.ts","sourceRoot":"","sources":["../../../../../../src/services/ios/dvt/instruments/screenshot.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"screenshot.d.ts","sourceRoot":"","sources":["../../../../../../src/services/ios/dvt/instruments/screenshot.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItD;;GAEG;AACH,qBAAa,UAAW,SAAQ,cAAc;IAC5C,MAAM,CAAC,QAAQ,CAAC,UAAU,sDAC2B;IAErD;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;CAmBvC"}
|
|
@@ -1,20 +1,11 @@
|
|
|
1
1
|
import { getLogger } from '../../../../lib/logger.js';
|
|
2
|
+
import { BaseInstrument } from './base-instrument.js';
|
|
2
3
|
const log = getLogger('Screenshot');
|
|
3
4
|
/**
|
|
4
5
|
* Screenshot service for capturing device screenshots
|
|
5
6
|
*/
|
|
6
|
-
export class Screenshot {
|
|
7
|
-
dvt;
|
|
7
|
+
export class Screenshot extends BaseInstrument {
|
|
8
8
|
static IDENTIFIER = 'com.apple.instruments.server.services.screenshot';
|
|
9
|
-
channel = null;
|
|
10
|
-
constructor(dvt) {
|
|
11
|
-
this.dvt = dvt;
|
|
12
|
-
}
|
|
13
|
-
async initialize() {
|
|
14
|
-
if (!this.channel) {
|
|
15
|
-
this.channel = await this.dvt.makeChannel(Screenshot.IDENTIFIER);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
9
|
/**
|
|
19
10
|
* Capture a screenshot from the device
|
|
20
11
|
* @returns The screenshot data as a Buffer
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "appium-ios-remotexpc",
|
|
3
|
-
"version": "0.18.
|
|
3
|
+
"version": "0.18.1",
|
|
4
4
|
"main": "build/src/index.js",
|
|
5
5
|
"types": "build/src/index.d.ts",
|
|
6
6
|
"type": "module",
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
"dependencies": {
|
|
85
85
|
"@appium/strongbox": "^1.0.0-rc.1",
|
|
86
86
|
"@appium/support": "^7.0.0-rc.1",
|
|
87
|
-
"@types/node": "^
|
|
87
|
+
"@types/node": "^25.0.2",
|
|
88
88
|
"@xmldom/xmldom": "^0.9.8",
|
|
89
89
|
"appium-ios-tuntap": "^0.x",
|
|
90
90
|
"axios": "^1.12.0",
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
type KeyPairKeyObjectResult,
|
|
3
|
-
generateKeyPairSync,
|
|
4
|
-
sign,
|
|
5
|
-
} from 'node:crypto';
|
|
1
|
+
import { generateKeyPairSync, sign } from 'node:crypto';
|
|
6
2
|
|
|
7
3
|
import { getLogger } from '../../logger.js';
|
|
8
4
|
import { CryptographyError } from '../errors.js';
|
|
@@ -24,7 +20,7 @@ const ED25519_PKCS8_PREFIX = Buffer.from(
|
|
|
24
20
|
*/
|
|
25
21
|
export function generateEd25519KeyPair(): PairingKeys {
|
|
26
22
|
try {
|
|
27
|
-
const keyPair
|
|
23
|
+
const keyPair = generateKeyPairSync('ed25519');
|
|
28
24
|
|
|
29
25
|
const publicKeyDer = keyPair.publicKey.export({
|
|
30
26
|
type: 'spki',
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { getLogger } from '../../../../lib/logger.js';
|
|
2
|
-
import type { Channel } from '../channel.js';
|
|
3
2
|
import { MessageAux } from '../dtx-message.js';
|
|
4
|
-
import
|
|
3
|
+
import { BaseInstrument } from './base-instrument.js';
|
|
5
4
|
|
|
6
5
|
const log = getLogger('ApplicationListing');
|
|
7
6
|
|
|
@@ -46,24 +45,10 @@ export interface iOSApplication {
|
|
|
46
45
|
/**
|
|
47
46
|
* Application Listing service for retrieving installed applications
|
|
48
47
|
*/
|
|
49
|
-
export class ApplicationListing {
|
|
48
|
+
export class ApplicationListing extends BaseInstrument {
|
|
50
49
|
static readonly IDENTIFIER =
|
|
51
50
|
'com.apple.instruments.server.services.device.applictionListing';
|
|
52
51
|
|
|
53
|
-
private channel: Channel | null = null;
|
|
54
|
-
|
|
55
|
-
constructor(private readonly dvt: DVTSecureSocketProxyService) {}
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Initialize the application listing channel
|
|
59
|
-
*/
|
|
60
|
-
async initialize(): Promise<void> {
|
|
61
|
-
if (this.channel) {
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
this.channel = await this.dvt.makeChannel(ApplicationListing.IDENTIFIER);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
52
|
/**
|
|
68
53
|
* Get the list of installed applications from the device
|
|
69
54
|
* @returns {Promise<iOSApplication[]>}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Channel } from '../channel.js';
|
|
2
|
+
import type { DVTSecureSocketProxyService } from '../index.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Base class for DVT instrument services.
|
|
6
|
+
*
|
|
7
|
+
* Subclasses must define a static `IDENTIFIER` property.
|
|
8
|
+
*/
|
|
9
|
+
export abstract class BaseInstrument {
|
|
10
|
+
static readonly IDENTIFIER: string;
|
|
11
|
+
|
|
12
|
+
protected channel: Channel | null = null;
|
|
13
|
+
constructor(protected readonly dvt: DVTSecureSocketProxyService) {}
|
|
14
|
+
|
|
15
|
+
protected get identifier(): string {
|
|
16
|
+
return (this.constructor as typeof BaseInstrument).IDENTIFIER;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Initialize the instrument channel.
|
|
21
|
+
*/
|
|
22
|
+
async initialize(): Promise<void> {
|
|
23
|
+
if (!this.channel) {
|
|
24
|
+
this.channel = await this.dvt.makeChannel(this.identifier);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { getLogger } from '../../../../lib/logger.js';
|
|
2
2
|
import type { ConditionGroup } from '../../../../lib/types.js';
|
|
3
|
-
import type { Channel } from '../channel.js';
|
|
4
3
|
import { MessageAux } from '../dtx-message.js';
|
|
5
|
-
import
|
|
4
|
+
import { BaseInstrument } from './base-instrument.js';
|
|
6
5
|
|
|
7
6
|
const log = getLogger('ConditionInducer');
|
|
8
7
|
|
|
@@ -10,24 +9,10 @@ const log = getLogger('ConditionInducer');
|
|
|
10
9
|
* Condition Inducer service for simulating various device conditions
|
|
11
10
|
* such as network conditions, thermal states, etc.
|
|
12
11
|
*/
|
|
13
|
-
export class ConditionInducer {
|
|
12
|
+
export class ConditionInducer extends BaseInstrument {
|
|
14
13
|
static readonly IDENTIFIER =
|
|
15
14
|
'com.apple.instruments.server.services.ConditionInducer';
|
|
16
15
|
|
|
17
|
-
private channel: Channel | null = null;
|
|
18
|
-
|
|
19
|
-
constructor(private readonly dvt: DVTSecureSocketProxyService) {}
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Initialize the condition inducer channel
|
|
23
|
-
*/
|
|
24
|
-
async initialize(): Promise<void> {
|
|
25
|
-
if (this.channel) {
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
this.channel = await this.dvt.makeChannel(ConditionInducer.IDENTIFIER);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
16
|
/**
|
|
32
17
|
* List all available condition inducers and their profiles
|
|
33
18
|
* @returns Array of condition groups with their available profiles
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { getLogger } from '../../../../lib/logger.js';
|
|
2
2
|
import { parseBinaryPlist } from '../../../../lib/plist/index.js';
|
|
3
3
|
import type { ProcessInfo } from '../../../../lib/types.js';
|
|
4
|
-
import type { Channel } from '../channel.js';
|
|
5
4
|
import { MessageAux } from '../dtx-message.js';
|
|
6
|
-
import
|
|
5
|
+
import { BaseInstrument } from './base-instrument.js';
|
|
7
6
|
|
|
8
7
|
const log = getLogger('DeviceInfo');
|
|
9
8
|
|
|
@@ -25,22 +24,10 @@ const log = getLogger('DeviceInfo');
|
|
|
25
24
|
* - nameForUid(uid): Get username for UID
|
|
26
25
|
* - nameForGid(gid): Get group name for GID
|
|
27
26
|
*/
|
|
28
|
-
export class DeviceInfo {
|
|
27
|
+
export class DeviceInfo extends BaseInstrument {
|
|
29
28
|
static readonly IDENTIFIER =
|
|
30
29
|
'com.apple.instruments.server.services.deviceinfo';
|
|
31
30
|
|
|
32
|
-
private channel: Channel | null = null;
|
|
33
|
-
constructor(private readonly dvt: DVTSecureSocketProxyService) {}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Initialize the device info channel
|
|
37
|
-
*/
|
|
38
|
-
async initialize(): Promise<void> {
|
|
39
|
-
if (!this.channel) {
|
|
40
|
-
this.channel = await this.dvt.makeChannel(DeviceInfo.IDENTIFIER);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
31
|
/**
|
|
45
32
|
* List directory contents at the specified path.
|
|
46
33
|
* @param path - The directory path to list
|
|
@@ -1,24 +1,13 @@
|
|
|
1
1
|
import { getLogger } from '../../../../lib/logger.js';
|
|
2
|
-
import type { Channel } from '../channel.js';
|
|
3
2
|
import { MessageAux } from '../dtx-message.js';
|
|
4
|
-
import
|
|
3
|
+
import { BaseInstrument } from './base-instrument.js';
|
|
5
4
|
|
|
6
5
|
const log = getLogger('Graphics');
|
|
7
6
|
|
|
8
|
-
export class Graphics {
|
|
7
|
+
export class Graphics extends BaseInstrument {
|
|
9
8
|
static readonly IDENTIFIER =
|
|
10
9
|
'com.apple.instruments.server.services.graphics.opengl';
|
|
11
10
|
|
|
12
|
-
private channel: Channel | null = null;
|
|
13
|
-
|
|
14
|
-
constructor(private readonly dvt: DVTSecureSocketProxyService) {}
|
|
15
|
-
|
|
16
|
-
async initialize(): Promise<void> {
|
|
17
|
-
if (!this.channel) {
|
|
18
|
-
this.channel = await this.dvt.makeChannel(Graphics.IDENTIFIER);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
11
|
async start(): Promise<void> {
|
|
23
12
|
await this.initialize();
|
|
24
13
|
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { getLogger } from '../../../../lib/logger.js';
|
|
2
|
-
import type { Channel } from '../channel.js';
|
|
3
2
|
import { MessageAux } from '../dtx-message.js';
|
|
4
|
-
import
|
|
3
|
+
import { BaseInstrument } from './base-instrument.js';
|
|
5
4
|
|
|
6
5
|
const log = getLogger('LocationSimulation');
|
|
7
6
|
|
|
@@ -16,25 +15,10 @@ export interface LocationCoordinates {
|
|
|
16
15
|
/**
|
|
17
16
|
* Location simulation service for simulating device GPS location
|
|
18
17
|
*/
|
|
19
|
-
export class LocationSimulation {
|
|
18
|
+
export class LocationSimulation extends BaseInstrument {
|
|
20
19
|
static readonly IDENTIFIER =
|
|
21
20
|
'com.apple.instruments.server.services.LocationSimulation';
|
|
22
21
|
|
|
23
|
-
private channel: Channel | null = null;
|
|
24
|
-
|
|
25
|
-
constructor(private readonly dvt: DVTSecureSocketProxyService) {}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Initialize the location simulation channel
|
|
29
|
-
*/
|
|
30
|
-
async initialize(): Promise<void> {
|
|
31
|
-
if (this.channel) {
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
this.channel = await this.dvt.makeChannel(LocationSimulation.IDENTIFIER);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
22
|
/**
|
|
39
23
|
* Set the simulated GPS location
|
|
40
24
|
* @param coordinates The location coordinates
|
|
@@ -1,26 +1,15 @@
|
|
|
1
1
|
import { getLogger } from '../../../../lib/logger.js';
|
|
2
|
-
import
|
|
3
|
-
import type { DVTSecureSocketProxyService } from '../index.js';
|
|
2
|
+
import { BaseInstrument } from './base-instrument.js';
|
|
4
3
|
|
|
5
4
|
const log = getLogger('Screenshot');
|
|
6
5
|
|
|
7
6
|
/**
|
|
8
7
|
* Screenshot service for capturing device screenshots
|
|
9
8
|
*/
|
|
10
|
-
export class Screenshot {
|
|
9
|
+
export class Screenshot extends BaseInstrument {
|
|
11
10
|
static readonly IDENTIFIER =
|
|
12
11
|
'com.apple.instruments.server.services.screenshot';
|
|
13
12
|
|
|
14
|
-
private channel: Channel | null = null;
|
|
15
|
-
|
|
16
|
-
constructor(private readonly dvt: DVTSecureSocketProxyService) {}
|
|
17
|
-
|
|
18
|
-
async initialize(): Promise<void> {
|
|
19
|
-
if (!this.channel) {
|
|
20
|
-
this.channel = await this.dvt.makeChannel(Screenshot.IDENTIFIER);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
13
|
/**
|
|
25
14
|
* Capture a screenshot from the device
|
|
26
15
|
* @returns The screenshot data as a Buffer
|