node-simctl 8.0.9 → 8.1.0
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/index.d.ts +2 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js.map +1 -1
- package/build/lib/helpers.d.ts +17 -9
- package/build/lib/helpers.d.ts.map +1 -1
- package/build/lib/helpers.js +50 -4
- package/build/lib/helpers.js.map +1 -1
- package/build/lib/logger.d.ts +2 -3
- package/build/lib/logger.d.ts.map +1 -1
- package/build/lib/logger.js +3 -5
- package/build/lib/logger.js.map +1 -1
- package/build/lib/simctl.d.ts +82 -188
- package/build/lib/simctl.d.ts.map +1 -1
- package/build/lib/simctl.js +98 -150
- package/build/lib/simctl.js.map +1 -1
- package/build/lib/subcommands/addmedia.d.ts +14 -16
- package/build/lib/subcommands/addmedia.d.ts.map +1 -1
- package/build/lib/subcommands/addmedia.js +5 -7
- package/build/lib/subcommands/addmedia.js.map +1 -1
- package/build/lib/subcommands/appinfo.d.ts +13 -45
- package/build/lib/subcommands/appinfo.d.ts.map +1 -1
- package/build/lib/subcommands/appinfo.js +31 -42
- package/build/lib/subcommands/appinfo.js.map +1 -1
- package/build/lib/subcommands/boot.d.ts +9 -12
- package/build/lib/subcommands/boot.d.ts.map +1 -1
- package/build/lib/subcommands/boot.js +5 -40
- package/build/lib/subcommands/boot.js.map +1 -1
- package/build/lib/subcommands/bootstatus.d.ts +16 -56
- package/build/lib/subcommands/bootstatus.d.ts.map +1 -1
- package/build/lib/subcommands/bootstatus.js +8 -22
- package/build/lib/subcommands/bootstatus.js.map +1 -1
- package/build/lib/subcommands/create.d.ts +15 -34
- package/build/lib/subcommands/create.d.ts.map +1 -1
- package/build/lib/subcommands/create.js +23 -66
- package/build/lib/subcommands/create.js.map +1 -1
- package/build/lib/subcommands/delete.d.ts +9 -12
- package/build/lib/subcommands/delete.d.ts.map +1 -1
- package/build/lib/subcommands/delete.js +3 -5
- package/build/lib/subcommands/delete.js.map +1 -1
- package/build/lib/subcommands/erase.d.ts +12 -15
- package/build/lib/subcommands/erase.d.ts.map +1 -1
- package/build/lib/subcommands/erase.js +4 -6
- package/build/lib/subcommands/erase.js.map +1 -1
- package/build/lib/subcommands/get_app_container.d.ts +19 -22
- package/build/lib/subcommands/get_app_container.d.ts.map +1 -1
- package/build/lib/subcommands/get_app_container.js +6 -8
- package/build/lib/subcommands/get_app_container.js.map +1 -1
- package/build/lib/subcommands/getenv.d.ts +11 -14
- package/build/lib/subcommands/getenv.d.ts.map +1 -1
- package/build/lib/subcommands/getenv.js +5 -7
- package/build/lib/subcommands/getenv.js.map +1 -1
- package/build/lib/subcommands/install.d.ts +12 -15
- package/build/lib/subcommands/install.d.ts.map +1 -1
- package/build/lib/subcommands/install.js +4 -6
- package/build/lib/subcommands/install.js.map +1 -1
- package/build/lib/subcommands/io.d.ts +12 -15
- package/build/lib/subcommands/io.d.ts.map +1 -1
- package/build/lib/subcommands/io.js +4 -6
- package/build/lib/subcommands/io.js.map +1 -1
- package/build/lib/subcommands/keychain.d.ts +37 -55
- package/build/lib/subcommands/keychain.d.ts.map +1 -1
- package/build/lib/subcommands/keychain.js +16 -25
- package/build/lib/subcommands/keychain.js.map +1 -1
- package/build/lib/subcommands/launch.d.ts +16 -19
- package/build/lib/subcommands/launch.d.ts.map +1 -1
- package/build/lib/subcommands/launch.js +9 -11
- package/build/lib/subcommands/launch.js.map +1 -1
- package/build/lib/subcommands/list.d.ts +94 -125
- package/build/lib/subcommands/list.d.ts.map +1 -1
- package/build/lib/subcommands/list.js +34 -92
- package/build/lib/subcommands/list.js.map +1 -1
- package/build/lib/subcommands/location.d.ts +18 -22
- package/build/lib/subcommands/location.d.ts.map +1 -1
- package/build/lib/subcommands/location.js +11 -13
- package/build/lib/subcommands/location.js.map +1 -1
- package/build/lib/subcommands/openurl.d.ts +15 -17
- package/build/lib/subcommands/openurl.d.ts.map +1 -1
- package/build/lib/subcommands/openurl.js +5 -7
- package/build/lib/subcommands/openurl.js.map +1 -1
- package/build/lib/subcommands/pbcopy.d.ts +14 -17
- package/build/lib/subcommands/pbcopy.d.ts.map +1 -1
- package/build/lib/subcommands/pbcopy.js +5 -7
- package/build/lib/subcommands/pbcopy.js.map +1 -1
- package/build/lib/subcommands/pbpaste.d.ts +14 -17
- package/build/lib/subcommands/pbpaste.d.ts.map +1 -1
- package/build/lib/subcommands/pbpaste.js +5 -7
- package/build/lib/subcommands/pbpaste.js.map +1 -1
- package/build/lib/subcommands/privacy.d.ts +52 -57
- package/build/lib/subcommands/privacy.d.ts.map +1 -1
- package/build/lib/subcommands/privacy.js +15 -17
- package/build/lib/subcommands/privacy.js.map +1 -1
- package/build/lib/subcommands/push.d.ts +22 -25
- package/build/lib/subcommands/push.d.ts.map +1 -1
- package/build/lib/subcommands/push.js +5 -7
- package/build/lib/subcommands/push.js.map +1 -1
- package/build/lib/subcommands/shutdown.d.ts +9 -12
- package/build/lib/subcommands/shutdown.d.ts.map +1 -1
- package/build/lib/subcommands/shutdown.js +5 -40
- package/build/lib/subcommands/shutdown.js.map +1 -1
- package/build/lib/subcommands/spawn.d.ts +24 -27
- package/build/lib/subcommands/spawn.d.ts.map +1 -1
- package/build/lib/subcommands/spawn.js +12 -14
- package/build/lib/subcommands/spawn.js.map +1 -1
- package/build/lib/subcommands/terminate.d.ts +12 -15
- package/build/lib/subcommands/terminate.d.ts.map +1 -1
- package/build/lib/subcommands/terminate.js +4 -6
- package/build/lib/subcommands/terminate.js.map +1 -1
- package/build/lib/subcommands/ui.d.ts +97 -105
- package/build/lib/subcommands/ui.d.ts.map +1 -1
- package/build/lib/subcommands/ui.js +24 -26
- package/build/lib/subcommands/ui.js.map +1 -1
- package/build/lib/subcommands/uninstall.d.ts +13 -16
- package/build/lib/subcommands/uninstall.d.ts.map +1 -1
- package/build/lib/subcommands/uninstall.js +4 -6
- package/build/lib/subcommands/uninstall.js.map +1 -1
- package/build/lib/types.d.ts +231 -0
- package/build/lib/types.d.ts.map +1 -0
- package/build/lib/types.js +3 -0
- package/build/lib/types.js.map +1 -0
- package/index.ts +13 -0
- package/lib/helpers.ts +81 -0
- package/lib/{logger.js → logger.ts} +2 -5
- package/lib/simctl.ts +221 -0
- package/lib/subcommands/{addmedia.js → addmedia.ts} +6 -8
- package/lib/subcommands/appinfo.ts +39 -0
- package/lib/subcommands/{boot.js → boot.ts} +5 -10
- package/lib/subcommands/bootstatus.ts +108 -0
- package/lib/subcommands/{create.js → create.ts} +29 -35
- package/lib/subcommands/{delete.js → delete.ts} +3 -5
- package/lib/subcommands/{erase.js → erase.ts} +4 -7
- package/lib/subcommands/{get_app_container.js → get_app_container.ts} +10 -8
- package/lib/subcommands/{getenv.js → getenv.ts} +5 -7
- package/lib/subcommands/{install.js → install.ts} +4 -6
- package/lib/subcommands/{io.js → io.ts} +4 -7
- package/lib/subcommands/{keychain.js → keychain.ts} +30 -32
- package/lib/subcommands/{launch.js → launch.ts} +9 -12
- package/lib/subcommands/{list.js → list.ts} +67 -60
- package/lib/subcommands/{location.js → location.ts} +15 -14
- package/lib/subcommands/{openurl.js → openurl.ts} +6 -7
- package/lib/subcommands/{pbcopy.js → pbcopy.ts} +11 -8
- package/lib/subcommands/{pbpaste.js → pbpaste.ts} +5 -7
- package/lib/subcommands/{privacy.js → privacy.ts} +13 -17
- package/lib/subcommands/{push.js → push.ts} +5 -8
- package/lib/subcommands/{shutdown.js → shutdown.ts} +5 -8
- package/lib/subcommands/{spawn.js → spawn.ts} +21 -17
- package/lib/subcommands/{terminate.js → terminate.ts} +4 -6
- package/lib/subcommands/{ui.js → ui.ts} +19 -28
- package/lib/subcommands/{uninstall.js → uninstall.ts} +4 -6
- package/lib/types.ts +243 -0
- package/package.json +2 -2
- package/index.js +0 -4
- package/lib/helpers.js +0 -37
- package/lib/simctl.js +0 -299
- package/lib/subcommands/appinfo.js +0 -51
- package/lib/subcommands/bootstatus.js +0 -119
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
## [8.1.0](https://github.com/appium/node-simctl/compare/v8.0.9...v8.1.0) (2025-12-12)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
* Migrate the module to typescript ([#282](https://github.com/appium/node-simctl/issues/282)) ([6d3c887](https://github.com/appium/node-simctl/commit/6d3c8878cdea433e853be77fef34417e6eb3785a))
|
|
6
|
+
|
|
1
7
|
## [8.0.9](https://github.com/appium/node-simctl/compare/v8.0.8...v8.0.9) (2025-12-11)
|
|
2
8
|
|
|
3
9
|
### Miscellaneous Chores
|
package/build/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
+
import { Simctl } from './lib/simctl';
|
|
2
|
+
export type { SimctlOpts, DeviceInfo, SimCreationOpts, BootMonitorOptions, CertOptions, XCRun, AppInfo, } from './lib/types';
|
|
1
3
|
export { Simctl };
|
|
2
4
|
export default Simctl;
|
|
3
|
-
import { Simctl } from './lib/simctl';
|
|
4
5
|
//# sourceMappingURL=index.d.ts.map
|
package/build/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,YAAY,EACV,UAAU,EACV,UAAU,EACV,eAAe,EACf,kBAAkB,EAClB,WAAW,EACX,KAAK,EACL,OAAO,GACR,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,eAAe,MAAM,CAAC"}
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,yCAAsC;AAW7B,uFAXA,eAAM,OAWA;AACf,kBAAe,eAAM,CAAC"}
|
package/build/lib/helpers.d.ts
CHANGED
|
@@ -1,22 +1,30 @@
|
|
|
1
|
+
export declare const DEFAULT_EXEC_TIMEOUT: number;
|
|
2
|
+
export declare const SIM_RUNTIME_NAME = "com.apple.CoreSimulator.SimRuntime.";
|
|
1
3
|
/**
|
|
2
4
|
* "Normalize" the version, since iOS uses 'major.minor' but the runtimes can
|
|
3
5
|
* be 'major.minor.patch'
|
|
4
6
|
*
|
|
5
|
-
* @param
|
|
6
|
-
* @return
|
|
7
|
+
* @param version - the string version
|
|
8
|
+
* @return The version in 'major.minor' form
|
|
7
9
|
* @throws {Error} If the version not parseable by the `semver` package
|
|
8
10
|
*/
|
|
9
|
-
export function normalizeVersion(version: string): string;
|
|
11
|
+
export declare function normalizeVersion(version: string): string;
|
|
10
12
|
/**
|
|
11
|
-
* @returns
|
|
13
|
+
* @returns The xcrun binary name
|
|
12
14
|
*/
|
|
13
|
-
export function getXcrunBinary(): string;
|
|
15
|
+
export declare function getXcrunBinary(): string;
|
|
14
16
|
/**
|
|
15
17
|
* Generate a UUID v4
|
|
16
18
|
*
|
|
17
|
-
* @returns
|
|
19
|
+
* @returns Promise resolving to UUID string
|
|
18
20
|
*/
|
|
19
|
-
export function uuidV4(): Promise<string>;
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
export declare function uuidV4(): Promise<string>;
|
|
22
|
+
/**
|
|
23
|
+
* Convert plist-style output to JSON using plutil
|
|
24
|
+
*
|
|
25
|
+
* @param plistInput - The plist-style string to convert
|
|
26
|
+
* @return Promise resolving to parsed JSON object
|
|
27
|
+
* @throws {Error} If plutil fails to convert the input
|
|
28
|
+
*/
|
|
29
|
+
export declare function convertPlistToJson(plistInput: string): Promise<any>;
|
|
22
30
|
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../lib/helpers.
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../lib/helpers.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,oBAAoB,QAAiB,CAAC;AACnD,eAAO,MAAM,gBAAgB,wCAAwC,CAAC;AAEtE;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAMzD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAK,MAAM,CAExC;AAED;;;;GAIG;AACH,wBAAsB,MAAM,IAAK,OAAO,CAAC,MAAM,CAAC,CAG/C;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAgC1E"}
|
package/build/lib/helpers.js
CHANGED
|
@@ -37,15 +37,18 @@ exports.SIM_RUNTIME_NAME = exports.DEFAULT_EXEC_TIMEOUT = void 0;
|
|
|
37
37
|
exports.normalizeVersion = normalizeVersion;
|
|
38
38
|
exports.getXcrunBinary = getXcrunBinary;
|
|
39
39
|
exports.uuidV4 = uuidV4;
|
|
40
|
+
exports.convertPlistToJson = convertPlistToJson;
|
|
40
41
|
const semver = __importStar(require("semver"));
|
|
42
|
+
const node_child_process_1 = require("node:child_process");
|
|
43
|
+
const node_stream_1 = require("node:stream");
|
|
41
44
|
exports.DEFAULT_EXEC_TIMEOUT = 10 * 60 * 1000; // ms
|
|
42
45
|
exports.SIM_RUNTIME_NAME = 'com.apple.CoreSimulator.SimRuntime.';
|
|
43
46
|
/**
|
|
44
47
|
* "Normalize" the version, since iOS uses 'major.minor' but the runtimes can
|
|
45
48
|
* be 'major.minor.patch'
|
|
46
49
|
*
|
|
47
|
-
* @param
|
|
48
|
-
* @return
|
|
50
|
+
* @param version - the string version
|
|
51
|
+
* @return The version in 'major.minor' form
|
|
49
52
|
* @throws {Error} If the version not parseable by the `semver` package
|
|
50
53
|
*/
|
|
51
54
|
function normalizeVersion(version) {
|
|
@@ -56,7 +59,7 @@ function normalizeVersion(version) {
|
|
|
56
59
|
return `${semverVersion.major}.${semverVersion.minor}`;
|
|
57
60
|
}
|
|
58
61
|
/**
|
|
59
|
-
* @returns
|
|
62
|
+
* @returns The xcrun binary name
|
|
60
63
|
*/
|
|
61
64
|
function getXcrunBinary() {
|
|
62
65
|
return process.env.XCRUN_BINARY || 'xcrun';
|
|
@@ -64,10 +67,53 @@ function getXcrunBinary() {
|
|
|
64
67
|
/**
|
|
65
68
|
* Generate a UUID v4
|
|
66
69
|
*
|
|
67
|
-
* @returns
|
|
70
|
+
* @returns Promise resolving to UUID string
|
|
68
71
|
*/
|
|
69
72
|
async function uuidV4() {
|
|
70
73
|
const uuidLib = await import('uuid');
|
|
71
74
|
return uuidLib.v4();
|
|
72
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* Convert plist-style output to JSON using plutil
|
|
78
|
+
*
|
|
79
|
+
* @param plistInput - The plist-style string to convert
|
|
80
|
+
* @return Promise resolving to parsed JSON object
|
|
81
|
+
* @throws {Error} If plutil fails to convert the input
|
|
82
|
+
*/
|
|
83
|
+
async function convertPlistToJson(plistInput) {
|
|
84
|
+
const plutilProcess = (0, node_child_process_1.spawn)('plutil', ['-convert', 'json', '-o', '-', '-']);
|
|
85
|
+
let jsonOutput = '';
|
|
86
|
+
plutilProcess.stdout.on('data', (chunk) => {
|
|
87
|
+
jsonOutput += chunk.toString();
|
|
88
|
+
});
|
|
89
|
+
const inputStream = node_stream_1.Readable.from([plistInput]);
|
|
90
|
+
inputStream.pipe(plutilProcess.stdin);
|
|
91
|
+
try {
|
|
92
|
+
await new Promise((resolve, reject) => {
|
|
93
|
+
inputStream.once('error', reject);
|
|
94
|
+
plutilProcess.once('exit', (code, signal) => {
|
|
95
|
+
inputStream.unpipe(plutilProcess.stdin);
|
|
96
|
+
if (code === 0) {
|
|
97
|
+
resolve();
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
reject(new Error(`plutil exited with code ${code}, signal ${signal}`));
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
plutilProcess.once('error', (e) => {
|
|
104
|
+
inputStream.unpipe(plutilProcess.stdin);
|
|
105
|
+
reject(e);
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
catch (err) {
|
|
110
|
+
plutilProcess.kill(9);
|
|
111
|
+
throw new Error(`Failed to convert plist to JSON: ${err instanceof Error ? err.message : String(err)}`);
|
|
112
|
+
}
|
|
113
|
+
finally {
|
|
114
|
+
plutilProcess.removeAllListeners();
|
|
115
|
+
inputStream.removeAllListeners();
|
|
116
|
+
}
|
|
117
|
+
return JSON.parse(jsonOutput);
|
|
118
|
+
}
|
|
73
119
|
//# sourceMappingURL=helpers.js.map
|
package/build/lib/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../lib/helpers.
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../lib/helpers.ts"],"names":[],"mappings":"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"}
|
package/build/lib/logger.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../lib/logger.
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../lib/logger.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,WAAW,CAAC;AAUnC,eAAO,MAAM,GAAG,KAAc,CAAC"}
|
package/build/lib/logger.js
CHANGED
|
@@ -3,10 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.LOG_PREFIX = void 0;
|
|
6
|
+
exports.log = exports.LOG_PREFIX = void 0;
|
|
7
7
|
const logger_1 = __importDefault(require("@appium/logger"));
|
|
8
|
-
|
|
9
|
-
exports.LOG_PREFIX = LOG_PREFIX;
|
|
8
|
+
exports.LOG_PREFIX = 'simctl';
|
|
10
9
|
function getLogger() {
|
|
11
10
|
const logger = global._global_npmlog || logger_1.default;
|
|
12
11
|
if (!logger.debug) {
|
|
@@ -14,6 +13,5 @@ function getLogger() {
|
|
|
14
13
|
}
|
|
15
14
|
return logger;
|
|
16
15
|
}
|
|
17
|
-
|
|
18
|
-
exports.default = log;
|
|
16
|
+
exports.log = getLogger();
|
|
19
17
|
//# sourceMappingURL=logger.js.map
|
package/build/lib/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../lib/logger.
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../lib/logger.ts"],"names":[],"mappings":";;;;;;AAAA,4DAA0C;AAE7B,QAAA,UAAU,GAAG,QAAQ,CAAC;AAEnC,SAAS,SAAS;IAChB,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,IAAI,gBAAY,CAAC;IACrD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAEY,QAAA,GAAG,GAAG,SAAS,EAAE,CAAC"}
|
package/build/lib/simctl.d.ts
CHANGED
|
@@ -1,208 +1,102 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
* - Explicitly sets streams encoding for the executed
|
|
34
|
-
* command input and outputs.
|
|
35
|
-
*/
|
|
36
|
-
encoding?: string | undefined;
|
|
37
|
-
/**
|
|
38
|
-
* - One or more architecture names to be enforced while
|
|
39
|
-
* executing xcrun. See https://github.com/appium/appium/issues/18966 for more details.
|
|
40
|
-
*/
|
|
41
|
-
architectures?: string | string[] | undefined;
|
|
42
|
-
/**
|
|
43
|
-
* - The maximum number of milliseconds
|
|
44
|
-
* to wait for single synchronous xcrun command. If not provided explicitly, then
|
|
45
|
-
* the value of execTimeout property is used by default.
|
|
46
|
-
*/
|
|
47
|
-
timeout?: number | undefined;
|
|
48
|
-
};
|
|
49
|
-
export type SimctlOpts = {
|
|
50
|
-
/**
|
|
51
|
-
* - The xcrun properties. Currently only one property
|
|
52
|
-
* is supported, which is `path` and it by default contains `null`, which enforces
|
|
53
|
-
* the instance to automatically detect the full path to `xcrun` tool and to throw
|
|
54
|
-
* an exception if it cannot be detected. If the path is set upon instance creation
|
|
55
|
-
* then it is going to be used by `exec` and no autodetection will happen.
|
|
56
|
-
*/
|
|
57
|
-
xcrun?: XCRun | undefined;
|
|
58
|
-
/**
|
|
59
|
-
* - The default maximum number of milliseconds
|
|
60
|
-
* to wait for single synchronous xcrun command.
|
|
61
|
-
*/
|
|
62
|
-
execTimeout?: number | undefined;
|
|
63
|
-
/**
|
|
64
|
-
* - Whether to wire xcrun error messages
|
|
65
|
-
* into debug log before throwing them.
|
|
66
|
-
*/
|
|
67
|
-
logErrors?: boolean | undefined;
|
|
68
|
-
/**
|
|
69
|
-
* - The unique identifier of the current device, which is
|
|
70
|
-
* going to be implicitly passed to all methods, which require it. It can either be set
|
|
71
|
-
* upon instance creation if it is already known in advance or later when/if needed via the
|
|
72
|
-
* corresponding instance setter.
|
|
73
|
-
*/
|
|
74
|
-
udid?: string | null | undefined;
|
|
75
|
-
/**
|
|
76
|
-
* - Full path to the set of devices that you want to manage.
|
|
77
|
-
* By default this path usually equals to ~/Library/Developer/CoreSimulator/Devices
|
|
78
|
-
*/
|
|
79
|
-
devicesSetPath?: string | null | undefined;
|
|
80
|
-
};
|
|
81
|
-
/**
|
|
82
|
-
* @typedef {Object} XCRun
|
|
83
|
-
* @property {string?} path Full path to the xcrun script
|
|
84
|
-
*/
|
|
85
|
-
/**
|
|
86
|
-
* @typedef {{asynchronous: true}} TAsyncOpts
|
|
87
|
-
*/
|
|
88
|
-
/**
|
|
89
|
-
* @typedef {Object} ExecOpts
|
|
90
|
-
* @property {string[]} [args=[]] - The list of additional subcommand arguments.
|
|
91
|
-
* It's empty by default.
|
|
92
|
-
* @property {Record<string, any>} [env={}] - Environment variables mapping. All these variables
|
|
93
|
-
* will be passed Simulator and used in the executing function.
|
|
94
|
-
* @property {boolean} [logErrors=true] - Set it to _false_ to throw execution errors
|
|
95
|
-
* immediately without logging any additional information.
|
|
96
|
-
* @property {boolean} [asynchronous=false] - Whether to execute the given command
|
|
97
|
-
* 'synchronously' or 'asynchronously'. Affects the returned result of the function.
|
|
98
|
-
* @property {string} [encoding] - Explicitly sets streams encoding for the executed
|
|
99
|
-
* command input and outputs.
|
|
100
|
-
* @property {string|string[]} [architectures] - One or more architecture names to be enforced while
|
|
101
|
-
* executing xcrun. See https://github.com/appium/appium/issues/18966 for more details.
|
|
102
|
-
* @property {number} [timeout] - The maximum number of milliseconds
|
|
103
|
-
* to wait for single synchronous xcrun command. If not provided explicitly, then
|
|
104
|
-
* the value of execTimeout property is used by default.
|
|
105
|
-
*/
|
|
106
|
-
/**
|
|
107
|
-
* @typedef {Object} SimctlOpts
|
|
108
|
-
* @property {XCRun} [xcrun] - The xcrun properties. Currently only one property
|
|
109
|
-
* is supported, which is `path` and it by default contains `null`, which enforces
|
|
110
|
-
* the instance to automatically detect the full path to `xcrun` tool and to throw
|
|
111
|
-
* an exception if it cannot be detected. If the path is set upon instance creation
|
|
112
|
-
* then it is going to be used by `exec` and no autodetection will happen.
|
|
113
|
-
* @property {number} [execTimeout=600000] - The default maximum number of milliseconds
|
|
114
|
-
* to wait for single synchronous xcrun command.
|
|
115
|
-
* @property {boolean} [logErrors=true] - Whether to wire xcrun error messages
|
|
116
|
-
* into debug log before throwing them.
|
|
117
|
-
* @property {string?} [udid] - The unique identifier of the current device, which is
|
|
118
|
-
* going to be implicitly passed to all methods, which require it. It can either be set
|
|
119
|
-
* upon instance creation if it is already known in advance or later when/if needed via the
|
|
120
|
-
* corresponding instance setter.
|
|
121
|
-
* @property {string?} [devicesSetPath] - Full path to the set of devices that you want to manage.
|
|
122
|
-
* By default this path usually equals to ~/Library/Developer/CoreSimulator/Devices
|
|
123
|
-
*/
|
|
124
|
-
export class Simctl {
|
|
125
|
-
/**
|
|
126
|
-
* @param {SimctlOpts} [opts={}]
|
|
127
|
-
*/
|
|
1
|
+
import * as addmediaCommands from './subcommands/addmedia';
|
|
2
|
+
import * as appinfoCommands from './subcommands/appinfo';
|
|
3
|
+
import * as bootCommands from './subcommands/boot';
|
|
4
|
+
import * as bootstatusCommands from './subcommands/bootstatus';
|
|
5
|
+
import * as createCommands from './subcommands/create';
|
|
6
|
+
import * as deleteCommands from './subcommands/delete';
|
|
7
|
+
import * as eraseCommands from './subcommands/erase';
|
|
8
|
+
import * as getappcontainerCommands from './subcommands/get_app_container';
|
|
9
|
+
import * as installCommands from './subcommands/install';
|
|
10
|
+
import * as ioCommands from './subcommands/io';
|
|
11
|
+
import * as keychainCommands from './subcommands/keychain';
|
|
12
|
+
import * as launchCommands from './subcommands/launch';
|
|
13
|
+
import * as listCommands from './subcommands/list';
|
|
14
|
+
import * as openurlCommands from './subcommands/openurl';
|
|
15
|
+
import * as pbcopyCommands from './subcommands/pbcopy';
|
|
16
|
+
import * as pbpasteCommands from './subcommands/pbpaste';
|
|
17
|
+
import * as privacyCommands from './subcommands/privacy';
|
|
18
|
+
import * as pushCommands from './subcommands/push';
|
|
19
|
+
import * as envCommands from './subcommands/getenv';
|
|
20
|
+
import * as shutdownCommands from './subcommands/shutdown';
|
|
21
|
+
import * as spawnCommands from './subcommands/spawn';
|
|
22
|
+
import * as terminateCommands from './subcommands/terminate';
|
|
23
|
+
import * as uiCommands from './subcommands/ui';
|
|
24
|
+
import * as uninstallCommands from './subcommands/uninstall';
|
|
25
|
+
import * as locationCommands from './subcommands/location';
|
|
26
|
+
import type { ExecOpts, SimctlOpts, ExecResult } from './types';
|
|
27
|
+
export declare class Simctl {
|
|
28
|
+
private xcrun;
|
|
29
|
+
private execTimeout;
|
|
30
|
+
private logErrors;
|
|
31
|
+
private _udid;
|
|
32
|
+
private _devicesSetPath;
|
|
128
33
|
constructor(opts?: SimctlOpts);
|
|
129
|
-
/** @type {XCRun} */
|
|
130
|
-
xcrun: XCRun;
|
|
131
|
-
/** @type {number} */
|
|
132
|
-
execTimeout: number;
|
|
133
|
-
/** @type {boolean} */
|
|
134
|
-
logErrors: boolean;
|
|
135
|
-
/** @type {string?} */
|
|
136
|
-
_udid: string | null;
|
|
137
|
-
/** @type {string?} */
|
|
138
|
-
_devicesSetPath: string | null;
|
|
139
34
|
set udid(value: string | null);
|
|
140
35
|
get udid(): string | null;
|
|
141
36
|
set devicesSetPath(value: string | null);
|
|
142
37
|
get devicesSetPath(): string | null;
|
|
143
38
|
/**
|
|
144
|
-
* @param
|
|
145
|
-
* @returns
|
|
39
|
+
* @param commandName - Optional command name for error message
|
|
40
|
+
* @returns The UDID string
|
|
41
|
+
* @throws {Error} If UDID is not set
|
|
146
42
|
*/
|
|
147
43
|
requireUdid(commandName?: string | null): string;
|
|
148
44
|
/**
|
|
149
|
-
* @returns
|
|
45
|
+
* @returns Promise resolving to the xcrun binary path
|
|
150
46
|
*/
|
|
151
47
|
requireXcrun(): Promise<string>;
|
|
152
48
|
/**
|
|
153
49
|
* Execute the particular simctl command.
|
|
154
50
|
*
|
|
155
|
-
* @
|
|
156
|
-
* @param {string} subcommand - One of available simctl subcommands.
|
|
51
|
+
* @param subcommand - One of available simctl subcommands.
|
|
157
52
|
* Execute `xcrun simctl` in Terminal to see the full list of available subcommands.
|
|
158
|
-
* @param
|
|
159
|
-
* @return
|
|
160
|
-
* Either the result of teen process's `exec` or
|
|
53
|
+
* @param opts - Execution options
|
|
54
|
+
* @return Either the result of teen process's `exec` or
|
|
161
55
|
* `SubProcess` instance depending of `opts.asynchronous` value.
|
|
162
56
|
* @throws {Error} If the simctl subcommand command returns non-zero return code.
|
|
163
57
|
*/
|
|
164
|
-
exec<
|
|
165
|
-
addMedia:
|
|
166
|
-
appInfo:
|
|
167
|
-
bootDevice:
|
|
168
|
-
startBootMonitor:
|
|
169
|
-
createDevice:
|
|
170
|
-
deleteDevice:
|
|
171
|
-
eraseDevice:
|
|
172
|
-
getAppContainer:
|
|
173
|
-
getEnv:
|
|
174
|
-
installApp:
|
|
175
|
-
getScreenshot:
|
|
176
|
-
addRootCertificate:
|
|
177
|
-
addCertificate:
|
|
178
|
-
resetKeychain:
|
|
179
|
-
launchApp:
|
|
180
|
-
getDevicesByParsing:
|
|
181
|
-
getDevices:
|
|
182
|
-
getRuntimeForPlatformVersionViaJson:
|
|
183
|
-
getRuntimeForPlatformVersion:
|
|
184
|
-
getDeviceTypes:
|
|
185
|
-
list:
|
|
186
|
-
setLocation:
|
|
187
|
-
clearLocation:
|
|
188
|
-
openUrl:
|
|
189
|
-
setPasteboard:
|
|
190
|
-
getPasteboard:
|
|
191
|
-
grantPermission:
|
|
192
|
-
revokePermission:
|
|
193
|
-
resetPermission:
|
|
194
|
-
pushNotification:
|
|
195
|
-
shutdownDevice:
|
|
196
|
-
spawnProcess:
|
|
197
|
-
spawnSubProcess:
|
|
198
|
-
terminateApp:
|
|
199
|
-
getAppearance:
|
|
200
|
-
setAppearance:
|
|
201
|
-
getIncreaseContrast:
|
|
202
|
-
setIncreaseContrast:
|
|
203
|
-
getContentSize:
|
|
204
|
-
setContentSize:
|
|
205
|
-
removeApp:
|
|
58
|
+
exec<T extends ExecOpts>(subcommand: string, opts?: T): Promise<ExecResult<T>>;
|
|
59
|
+
addMedia: typeof addmediaCommands.addMedia;
|
|
60
|
+
appInfo: typeof appinfoCommands.appInfo;
|
|
61
|
+
bootDevice: typeof bootCommands.bootDevice;
|
|
62
|
+
startBootMonitor: typeof bootstatusCommands.startBootMonitor;
|
|
63
|
+
createDevice: typeof createCommands.createDevice;
|
|
64
|
+
deleteDevice: typeof deleteCommands.deleteDevice;
|
|
65
|
+
eraseDevice: typeof eraseCommands.eraseDevice;
|
|
66
|
+
getAppContainer: typeof getappcontainerCommands.getAppContainer;
|
|
67
|
+
getEnv: typeof envCommands.getEnv;
|
|
68
|
+
installApp: typeof installCommands.installApp;
|
|
69
|
+
getScreenshot: typeof ioCommands.getScreenshot;
|
|
70
|
+
addRootCertificate: typeof keychainCommands.addRootCertificate;
|
|
71
|
+
addCertificate: typeof keychainCommands.addCertificate;
|
|
72
|
+
resetKeychain: typeof keychainCommands.resetKeychain;
|
|
73
|
+
launchApp: typeof launchCommands.launchApp;
|
|
74
|
+
getDevicesByParsing: typeof listCommands.getDevicesByParsing;
|
|
75
|
+
getDevices: typeof listCommands.getDevices;
|
|
76
|
+
getRuntimeForPlatformVersionViaJson: typeof listCommands.getRuntimeForPlatformVersionViaJson;
|
|
77
|
+
getRuntimeForPlatformVersion: typeof listCommands.getRuntimeForPlatformVersion;
|
|
78
|
+
getDeviceTypes: typeof listCommands.getDeviceTypes;
|
|
79
|
+
list: typeof listCommands.list;
|
|
80
|
+
setLocation: typeof locationCommands.setLocation;
|
|
81
|
+
clearLocation: typeof locationCommands.clearLocation;
|
|
82
|
+
openUrl: typeof openurlCommands.openUrl;
|
|
83
|
+
setPasteboard: typeof pbcopyCommands.setPasteboard;
|
|
84
|
+
getPasteboard: typeof pbpasteCommands.getPasteboard;
|
|
85
|
+
grantPermission: typeof privacyCommands.grantPermission;
|
|
86
|
+
revokePermission: typeof privacyCommands.revokePermission;
|
|
87
|
+
resetPermission: typeof privacyCommands.resetPermission;
|
|
88
|
+
pushNotification: typeof pushCommands.pushNotification;
|
|
89
|
+
shutdownDevice: typeof shutdownCommands.shutdownDevice;
|
|
90
|
+
spawnProcess: typeof spawnCommands.spawnProcess;
|
|
91
|
+
spawnSubProcess: typeof spawnCommands.spawnSubProcess;
|
|
92
|
+
terminateApp: typeof terminateCommands.terminateApp;
|
|
93
|
+
getAppearance: typeof uiCommands.getAppearance;
|
|
94
|
+
setAppearance: typeof uiCommands.setAppearance;
|
|
95
|
+
getIncreaseContrast: typeof uiCommands.getIncreaseContrast;
|
|
96
|
+
setIncreaseContrast: typeof uiCommands.setIncreaseContrast;
|
|
97
|
+
getContentSize: typeof uiCommands.getContentSize;
|
|
98
|
+
setContentSize: typeof uiCommands.setContentSize;
|
|
99
|
+
removeApp: typeof uninstallCommands.removeApp;
|
|
206
100
|
}
|
|
207
|
-
|
|
101
|
+
export default Simctl;
|
|
208
102
|
//# sourceMappingURL=simctl.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simctl.d.ts","sourceRoot":"","sources":["../../lib/simctl.
|
|
1
|
+
{"version":3,"file":"simctl.d.ts","sourceRoot":"","sources":["../../lib/simctl.ts"],"names":[],"mappings":"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"}
|