appium-ios-simulator 5.1.4 → 5.2.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 +7 -0
- package/build/index.js +9 -26
- package/build/lib/defaults-utils.d.ts +52 -0
- package/build/lib/defaults-utils.d.ts.map +1 -0
- package/build/lib/defaults-utils.js +152 -93
- package/build/lib/defaults-utils.js.map +1 -1
- package/build/lib/extensions/applications.d.ts +76 -0
- package/build/lib/extensions/applications.d.ts.map +1 -0
- package/build/lib/extensions/applications.js +139 -92
- package/build/lib/extensions/applications.js.map +1 -1
- package/build/lib/extensions/biometric.d.ts +25 -0
- package/build/lib/extensions/biometric.d.ts.map +1 -0
- package/build/lib/extensions/biometric.js +31 -17
- package/build/lib/extensions/biometric.js.map +1 -1
- package/build/lib/extensions/geolocation.d.ts +15 -0
- package/build/lib/extensions/geolocation.d.ts.map +1 -0
- package/build/lib/extensions/geolocation.js +105 -54
- package/build/lib/extensions/geolocation.js.map +1 -1
- package/build/lib/extensions/index.d.ts +3 -0
- package/build/lib/extensions/index.d.ts.map +1 -0
- package/build/lib/extensions/index.js +26 -20
- package/build/lib/extensions/index.js.map +1 -1
- package/build/lib/extensions/keychain.d.ts +41 -0
- package/build/lib/extensions/keychain.d.ts.map +1 -0
- package/build/lib/extensions/keychain.js +114 -72
- package/build/lib/extensions/keychain.js.map +1 -1
- package/build/lib/extensions/misc.d.ts +23 -0
- package/build/lib/extensions/misc.d.ts.map +1 -0
- package/build/lib/extensions/misc.js +34 -17
- package/build/lib/extensions/misc.js.map +1 -1
- package/build/lib/extensions/permissions.d.ts +34 -0
- package/build/lib/extensions/permissions.d.ts.map +1 -0
- package/build/lib/extensions/permissions.js +145 -83
- package/build/lib/extensions/permissions.js.map +1 -1
- package/build/lib/extensions/safari.d.ts +34 -0
- package/build/lib/extensions/safari.d.ts.map +1 -0
- package/build/lib/extensions/safari.js +85 -48
- package/build/lib/extensions/safari.js.map +1 -1
- package/build/lib/extensions/settings.d.ts +41 -0
- package/build/lib/extensions/settings.d.ts.map +1 -0
- package/build/lib/extensions/settings.js +59 -29
- package/build/lib/extensions/settings.js.map +1 -1
- package/build/lib/logger.d.ts +4 -0
- package/build/lib/logger.d.ts.map +1 -0
- package/build/lib/logger.js +15 -18
- package/build/lib/logger.js.map +1 -1
- package/build/lib/simulator-xcode-10.d.ts +16 -0
- package/build/lib/simulator-xcode-10.d.ts.map +1 -0
- package/build/lib/simulator-xcode-10.js +78 -64
- package/build/lib/simulator-xcode-10.js.map +1 -1
- package/build/lib/simulator-xcode-11.4.d.ts +83 -0
- package/build/lib/simulator-xcode-11.4.d.ts.map +1 -0
- package/build/lib/simulator-xcode-11.4.js +146 -82
- package/build/lib/simulator-xcode-11.4.js.map +1 -1
- package/build/lib/simulator-xcode-11.d.ts +5 -0
- package/build/lib/simulator-xcode-11.d.ts.map +1 -0
- package/build/lib/simulator-xcode-11.js +20 -21
- package/build/lib/simulator-xcode-11.js.map +1 -1
- package/build/lib/simulator-xcode-14.d.ts +10 -0
- package/build/lib/simulator-xcode-14.d.ts.map +1 -0
- package/build/lib/simulator-xcode-14.js +15 -15
- package/build/lib/simulator-xcode-14.js.map +1 -1
- package/build/lib/simulator-xcode-15.d.ts +13 -0
- package/build/lib/simulator-xcode-15.d.ts.map +1 -0
- package/build/lib/simulator-xcode-15.js +65 -46
- package/build/lib/simulator-xcode-15.js.map +1 -1
- package/build/lib/simulator-xcode-8.d.ts +279 -0
- package/build/lib/simulator-xcode-8.d.ts.map +1 -0
- package/build/lib/simulator-xcode-8.js +466 -257
- package/build/lib/simulator-xcode-8.js.map +1 -1
- package/build/lib/simulator-xcode-9.3.d.ts +6 -0
- package/build/lib/simulator-xcode-9.3.d.ts.map +1 -0
- package/build/lib/simulator-xcode-9.3.js +41 -38
- package/build/lib/simulator-xcode-9.3.js.map +1 -1
- package/build/lib/simulator-xcode-9.d.ts +407 -0
- package/build/lib/simulator-xcode-9.d.ts.map +1 -0
- package/build/lib/simulator-xcode-9.js +514 -350
- package/build/lib/simulator-xcode-9.js.map +1 -1
- package/build/lib/simulator.d.ts +38 -0
- package/build/lib/simulator.d.ts.map +1 -0
- package/build/lib/simulator.js +86 -70
- package/build/lib/simulator.js.map +1 -1
- package/build/lib/utils.d.ts +23 -0
- package/build/lib/utils.d.ts.map +1 -0
- package/build/lib/utils.js +140 -116
- package/build/lib/utils.js.map +1 -1
- package/lib/defaults-utils.js +10 -4
- package/lib/extensions/applications.js +3 -7
- package/lib/extensions/biometric.js +1 -1
- package/lib/extensions/geolocation.js +2 -2
- package/lib/extensions/keychain.js +10 -4
- package/lib/extensions/misc.js +2 -2
- package/lib/extensions/permissions.js +2 -2
- package/lib/extensions/settings.js +1 -1
- package/lib/simulator-xcode-10.js +3 -3
- package/lib/simulator-xcode-11.4.js +2 -18
- package/lib/simulator-xcode-14.js +2 -2
- package/lib/simulator-xcode-15.js +4 -0
- package/lib/simulator-xcode-8.js +33 -29
- package/lib/simulator-xcode-9.js +35 -34
- package/lib/simulator.js +2 -2
- package/lib/utils.js +7 -0
- package/package.json +28 -17
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
## [5.2.0](https://github.com/appium/appium-ios-simulator/compare/v5.1.4...v5.2.0) (2023-08-21)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* Switch babel to typescript ([#372](https://github.com/appium/appium-ios-simulator/issues/372)) ([1d934e9](https://github.com/appium/appium-ios-simulator/commit/1d934e9b098295604bd12a704d6298c9471cc714))
|
|
7
|
+
|
|
1
8
|
## [5.1.4](https://github.com/appium/appium-ios-simulator/compare/v5.1.3...v5.1.4) (2023-08-14)
|
|
2
9
|
|
|
3
10
|
|
package/build/index.js
CHANGED
|
@@ -1,27 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
Object.defineProperty(exports, "getSimulator", {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
});
|
|
12
|
-
Object.defineProperty(exports, "killAllSimulators", {
|
|
13
|
-
enumerable: true,
|
|
14
|
-
get: function () {
|
|
15
|
-
return _utils.killAllSimulators;
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
Object.defineProperty(exports, "simExists", {
|
|
19
|
-
enumerable: true,
|
|
20
|
-
get: function () {
|
|
21
|
-
return _utils.simExists;
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
require("source-map-support/register");
|
|
25
|
-
var _simulator = require("./lib/simulator");
|
|
26
|
-
var _utils = require("./lib/utils");
|
|
27
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc2ltdWxhdG9yIiwicmVxdWlyZSIsIl91dGlscyJdLCJzb3VyY2VzIjpbIi4uL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHRyYW5zcGlsZTptYWluXG5cbmltcG9ydCB7IGdldFNpbXVsYXRvciB9IGZyb20gJy4vbGliL3NpbXVsYXRvcic7XG5pbXBvcnQgeyBraWxsQWxsU2ltdWxhdG9ycywgc2ltRXhpc3RzIH0gZnJvbSAnLi9saWIvdXRpbHMnO1xuXG5leHBvcnQge1xuICBnZXRTaW11bGF0b3IsXG4gIGtpbGxBbGxTaW11bGF0b3JzLFxuICBzaW1FeGlzdHMsXG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxJQUFBQSxVQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFELE9BQUEifQ==
|
|
2
|
+
// transpile:main
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.simExists = exports.killAllSimulators = exports.getSimulator = void 0;
|
|
5
|
+
const simulator_1 = require("./lib/simulator");
|
|
6
|
+
Object.defineProperty(exports, "getSimulator", { enumerable: true, get: function () { return simulator_1.getSimulator; } });
|
|
7
|
+
const utils_1 = require("./lib/utils");
|
|
8
|
+
Object.defineProperty(exports, "killAllSimulators", { enumerable: true, get: function () { return utils_1.killAllSimulators; } });
|
|
9
|
+
Object.defineProperty(exports, "simExists", { enumerable: true, get: function () { return utils_1.simExists; } });
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
export class NSUserDefaults {
|
|
2
|
+
constructor(plist: any);
|
|
3
|
+
plist: any;
|
|
4
|
+
/**
|
|
5
|
+
* Reads the content of the given plist file using plutil command line tool
|
|
6
|
+
* and serializes it to a JSON representation
|
|
7
|
+
*
|
|
8
|
+
* @returns {Promise<Record<string, any>>} The serialized plist content
|
|
9
|
+
* @throws {Error} If there was an error during serialization
|
|
10
|
+
*/
|
|
11
|
+
asJson(): Promise<Record<string, any>>;
|
|
12
|
+
/**
|
|
13
|
+
* Updates the content of the given plist file.
|
|
14
|
+
* If the plist does not exist yet then it is going to be created.
|
|
15
|
+
*
|
|
16
|
+
* @param {Object} valuesMap Mapping of preference values to update.
|
|
17
|
+
* If any of item values are of dictionary type then only the first level dictionary gets
|
|
18
|
+
* updated. Everything below this level will be replaced. This is the known limitation
|
|
19
|
+
* of the `defaults` command line tool. A workaround for it would be to read the current
|
|
20
|
+
* preferences mapping first and merge it with this value.
|
|
21
|
+
* @throws {Error} If there was an error while updating the plist
|
|
22
|
+
*/
|
|
23
|
+
update(valuesMap: any): Promise<void>;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Serializes the given value to plist-compatible
|
|
27
|
+
* XML representation, which is ready for further usage
|
|
28
|
+
* with `defaults` command line tool arguments
|
|
29
|
+
*
|
|
30
|
+
* @param {any} value The value to be serialized
|
|
31
|
+
* @param {boolean} serialize [true] Whether to serialize the resulting
|
|
32
|
+
* XML to string or to return raw HTMLElement instance
|
|
33
|
+
* @returns {Node|string} Either string or raw node representation of
|
|
34
|
+
* the given value
|
|
35
|
+
* @throws {TypeError} If it is not known how to serialize the given value
|
|
36
|
+
*/
|
|
37
|
+
export function toXmlArg(value: any, serialize?: boolean): Node | string;
|
|
38
|
+
/**
|
|
39
|
+
* Generates command line args for the `defaults`
|
|
40
|
+
* command line utility based on the given preference values mapping.
|
|
41
|
+
* See https://shadowfile.inode.link/blog/2018/06/advanced-defaults1-usage/
|
|
42
|
+
* for more details.
|
|
43
|
+
*
|
|
44
|
+
* @param {Object} valuesMap Preferences mapping
|
|
45
|
+
* @param {Boolean} replace [false] Whether to generate arguments that replace
|
|
46
|
+
* complex typed values like arrays or dictionaries in the current plist or
|
|
47
|
+
* update them (the default settings)
|
|
48
|
+
* @returns {string[][]} Each item in the array
|
|
49
|
+
* is the `defaults write <plist>` command suffix
|
|
50
|
+
*/
|
|
51
|
+
export function generateDefaultsCommandArgs(valuesMap: any, replace?: boolean): string[][];
|
|
52
|
+
//# sourceMappingURL=defaults-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults-utils.d.ts","sourceRoot":"","sources":["../../lib/defaults-utils.js"],"names":[],"mappings":"AA6GA;IACE,wBAEC;IADC,WAAkB;IAGpB;;;;;;OAMG;IACH,UAHa,QAAQ,OAAO,MAAM,EAAE,GAAG,CAAC,CAAC,CAUxC;IAED;;;;;;;;;;OAUG;IACH,sCAcC;CACF;AAtJD;;;;;;;;;;;GAWG;AACH,gCAPW,GAAG,cACH,OAAO,GAEL,IAAI,GAAC,MAAM,CA6CvB;AAED;;;;;;;;;;;;GAYG;AACH,gFAHa,MAAM,EAAE,EAAE,CAmCtB"}
|
|
@@ -1,109 +1,168 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
require("
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.generateDefaultsCommandArgs = exports.toXmlArg = exports.NSUserDefaults = void 0;
|
|
7
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
8
|
+
const xmldom_1 = require("@xmldom/xmldom");
|
|
9
|
+
const teen_process_1 = require("teen_process");
|
|
10
|
+
const bluebird_1 = __importDefault(require("bluebird"));
|
|
11
|
+
const logger_1 = __importDefault(require("./logger"));
|
|
12
|
+
/**
|
|
13
|
+
* Serializes the given value to plist-compatible
|
|
14
|
+
* XML representation, which is ready for further usage
|
|
15
|
+
* with `defaults` command line tool arguments
|
|
16
|
+
*
|
|
17
|
+
* @param {any} value The value to be serialized
|
|
18
|
+
* @param {boolean} serialize [true] Whether to serialize the resulting
|
|
19
|
+
* XML to string or to return raw HTMLElement instance
|
|
20
|
+
* @returns {Node|string} Either string or raw node representation of
|
|
21
|
+
* the given value
|
|
22
|
+
* @throws {TypeError} If it is not known how to serialize the given value
|
|
23
|
+
*/
|
|
16
24
|
function toXmlArg(value, serialize = true) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
let xmlDoc = null;
|
|
26
|
+
if (lodash_1.default.isPlainObject(value)) {
|
|
27
|
+
xmlDoc = new xmldom_1.DOMParser().parseFromString('<dict></dict>', 'text/xml');
|
|
28
|
+
for (const [subKey, subValue] of lodash_1.default.toPairs(value)) {
|
|
29
|
+
const keyEl = xmlDoc.createElement('key');
|
|
30
|
+
const keyTextEl = xmlDoc.createTextNode(subKey);
|
|
31
|
+
keyEl.appendChild(keyTextEl);
|
|
32
|
+
xmlDoc.documentElement.appendChild(keyEl);
|
|
33
|
+
// @ts-ignore The typecast here is fine
|
|
34
|
+
const subValueEl = xmlDoc.importNode(toXmlArg(subValue, false), true);
|
|
35
|
+
xmlDoc.documentElement.appendChild(subValueEl);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
else if (lodash_1.default.isArray(value)) {
|
|
39
|
+
xmlDoc = new xmldom_1.DOMParser().parseFromString('<array></array>', 'text/xml');
|
|
40
|
+
for (const subValue of value) {
|
|
41
|
+
// @ts-ignore The typecast here is fine
|
|
42
|
+
const subValueEl = xmlDoc.importNode(toXmlArg(subValue, false), true);
|
|
43
|
+
xmlDoc.documentElement.appendChild(subValueEl);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
else if (lodash_1.default.isBoolean(value)) {
|
|
47
|
+
xmlDoc = new xmldom_1.DOMParser().parseFromString(value ? '<true/>' : '<false/>', 'text/xml');
|
|
48
|
+
}
|
|
49
|
+
else if (lodash_1.default.isInteger(value)) {
|
|
50
|
+
xmlDoc = new xmldom_1.DOMParser().parseFromString(`<integer>${value}</integer>`, 'text/xml');
|
|
51
|
+
}
|
|
52
|
+
else if (lodash_1.default.isNumber(value)) {
|
|
53
|
+
xmlDoc = new xmldom_1.DOMParser().parseFromString(`<real>${value}</real>`, 'text/xml');
|
|
54
|
+
}
|
|
55
|
+
else if (lodash_1.default.isString(value)) {
|
|
56
|
+
xmlDoc = new xmldom_1.DOMParser().parseFromString(`<string></string>`, 'text/xml');
|
|
57
|
+
const valueTextEl = xmlDoc.createTextNode(value);
|
|
58
|
+
xmlDoc.documentElement.appendChild(valueTextEl);
|
|
27
59
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
const subValueEl = xmlDoc.importNode(toXmlArg(subValue, false), true);
|
|
32
|
-
xmlDoc.documentElement.appendChild(subValueEl);
|
|
60
|
+
if (!xmlDoc) {
|
|
61
|
+
throw new TypeError(`The defaults value ${JSON.stringify(value)} cannot be written, ` +
|
|
62
|
+
`because it is not known how to handle its type`);
|
|
33
63
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
xmlDoc = new _xmldom.DOMParser().parseFromString(`<integer>${value}</integer>`, 'text/xml');
|
|
38
|
-
} else if (_lodash.default.isNumber(value)) {
|
|
39
|
-
xmlDoc = new _xmldom.DOMParser().parseFromString(`<real>${value}</real>`, 'text/xml');
|
|
40
|
-
} else if (_lodash.default.isString(value)) {
|
|
41
|
-
xmlDoc = new _xmldom.DOMParser().parseFromString(`<string></string>`, 'text/xml');
|
|
42
|
-
const valueTextEl = xmlDoc.createTextNode(value);
|
|
43
|
-
xmlDoc.documentElement.appendChild(valueTextEl);
|
|
44
|
-
}
|
|
45
|
-
if (!xmlDoc) {
|
|
46
|
-
throw new TypeError(`The defaults value ${JSON.stringify(value)} cannot be written, ` + `because it is not known how to handle its type`);
|
|
47
|
-
}
|
|
48
|
-
return serialize ? new _xmldom.XMLSerializer().serializeToString(xmlDoc.documentElement) : xmlDoc.documentElement;
|
|
64
|
+
return serialize
|
|
65
|
+
? new xmldom_1.XMLSerializer().serializeToString(xmlDoc.documentElement)
|
|
66
|
+
: xmlDoc.documentElement;
|
|
49
67
|
}
|
|
68
|
+
exports.toXmlArg = toXmlArg;
|
|
69
|
+
/**
|
|
70
|
+
* Generates command line args for the `defaults`
|
|
71
|
+
* command line utility based on the given preference values mapping.
|
|
72
|
+
* See https://shadowfile.inode.link/blog/2018/06/advanced-defaults1-usage/
|
|
73
|
+
* for more details.
|
|
74
|
+
*
|
|
75
|
+
* @param {Object} valuesMap Preferences mapping
|
|
76
|
+
* @param {Boolean} replace [false] Whether to generate arguments that replace
|
|
77
|
+
* complex typed values like arrays or dictionaries in the current plist or
|
|
78
|
+
* update them (the default settings)
|
|
79
|
+
* @returns {string[][]} Each item in the array
|
|
80
|
+
* is the `defaults write <plist>` command suffix
|
|
81
|
+
*/
|
|
50
82
|
function generateDefaultsCommandArgs(valuesMap, replace = false) {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
83
|
+
/** @type {string[][]} */
|
|
84
|
+
const resultArgs = [];
|
|
85
|
+
for (const [key, value] of lodash_1.default.toPairs(valuesMap)) {
|
|
86
|
+
try {
|
|
87
|
+
if (!replace && lodash_1.default.isPlainObject(value)) {
|
|
88
|
+
const dictArgs = [key, '-dict-add'];
|
|
89
|
+
for (const [subKey, subValue] of lodash_1.default.toPairs(value)) {
|
|
90
|
+
// @ts-ignore The typecast here is fine
|
|
91
|
+
dictArgs.push(subKey, toXmlArg(subValue));
|
|
92
|
+
}
|
|
93
|
+
resultArgs.push(dictArgs);
|
|
94
|
+
}
|
|
95
|
+
else if (!replace && lodash_1.default.isArray(value)) {
|
|
96
|
+
const arrayArgs = [key, '-array-add'];
|
|
97
|
+
for (const subValue of value) {
|
|
98
|
+
// @ts-ignore The typecast here is fine
|
|
99
|
+
arrayArgs.push(toXmlArg(subValue));
|
|
100
|
+
}
|
|
101
|
+
resultArgs.push(arrayArgs);
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
// @ts-ignore The typecast here is fine
|
|
105
|
+
resultArgs.push([key, toXmlArg(value)]);
|
|
106
|
+
}
|
|
58
107
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
108
|
+
catch (e) {
|
|
109
|
+
if (e instanceof TypeError) {
|
|
110
|
+
logger_1.default.warn(e.message);
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
throw e;
|
|
114
|
+
}
|
|
64
115
|
}
|
|
65
|
-
resultArgs.push(arrayArgs);
|
|
66
|
-
} else {
|
|
67
|
-
resultArgs.push([key, toXmlArg(value)]);
|
|
68
|
-
}
|
|
69
|
-
} catch (e) {
|
|
70
|
-
if (e instanceof TypeError) {
|
|
71
|
-
_logger.default.warn(e.message);
|
|
72
|
-
} else {
|
|
73
|
-
throw e;
|
|
74
|
-
}
|
|
75
116
|
}
|
|
76
|
-
|
|
77
|
-
return resultArgs;
|
|
117
|
+
return resultArgs;
|
|
78
118
|
}
|
|
119
|
+
exports.generateDefaultsCommandArgs = generateDefaultsCommandArgs;
|
|
79
120
|
class NSUserDefaults {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
}
|
|
83
|
-
async asJson() {
|
|
84
|
-
try {
|
|
85
|
-
const {
|
|
86
|
-
stdout
|
|
87
|
-
} = await (0, _teen_process.exec)('plutil', ['-convert', 'json', '-o', '-', this.plist]);
|
|
88
|
-
return JSON.parse(stdout);
|
|
89
|
-
} catch (e) {
|
|
90
|
-
throw new Error(`'${this.plist}' cannot be converted to JSON. Original error: ${e.stderr || e.message}`);
|
|
121
|
+
constructor(plist) {
|
|
122
|
+
this.plist = plist;
|
|
91
123
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
124
|
+
/**
|
|
125
|
+
* Reads the content of the given plist file using plutil command line tool
|
|
126
|
+
* and serializes it to a JSON representation
|
|
127
|
+
*
|
|
128
|
+
* @returns {Promise<Record<string, any>>} The serialized plist content
|
|
129
|
+
* @throws {Error} If there was an error during serialization
|
|
130
|
+
*/
|
|
131
|
+
async asJson() {
|
|
132
|
+
try {
|
|
133
|
+
const { stdout } = await (0, teen_process_1.exec)('plutil', ['-convert', 'json', '-o', '-', this.plist]);
|
|
134
|
+
return JSON.parse(stdout);
|
|
135
|
+
}
|
|
136
|
+
catch (e) {
|
|
137
|
+
throw new Error(`'${this.plist}' cannot be converted to JSON. Original error: ${e.stderr || e.message}`);
|
|
138
|
+
}
|
|
99
139
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
140
|
+
/**
|
|
141
|
+
* Updates the content of the given plist file.
|
|
142
|
+
* If the plist does not exist yet then it is going to be created.
|
|
143
|
+
*
|
|
144
|
+
* @param {Object} valuesMap Mapping of preference values to update.
|
|
145
|
+
* If any of item values are of dictionary type then only the first level dictionary gets
|
|
146
|
+
* updated. Everything below this level will be replaced. This is the known limitation
|
|
147
|
+
* of the `defaults` command line tool. A workaround for it would be to read the current
|
|
148
|
+
* preferences mapping first and merge it with this value.
|
|
149
|
+
* @throws {Error} If there was an error while updating the plist
|
|
150
|
+
*/
|
|
151
|
+
async update(valuesMap) {
|
|
152
|
+
if (!lodash_1.default.isPlainObject(valuesMap)) {
|
|
153
|
+
throw new TypeError(`plist values must be a map. '${valuesMap}' is given instead`);
|
|
154
|
+
}
|
|
155
|
+
if (lodash_1.default.isEmpty(valuesMap)) {
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
const commandArgs = generateDefaultsCommandArgs(valuesMap);
|
|
159
|
+
try {
|
|
160
|
+
await bluebird_1.default.all(commandArgs.map((args) => (0, teen_process_1.exec)('defaults', ['write', this.plist, ...args])));
|
|
161
|
+
}
|
|
162
|
+
catch (e) {
|
|
163
|
+
throw new Error(`Could not write defaults into '${this.plist}'. Original error: ${e.stderr || e.message}`);
|
|
164
|
+
}
|
|
105
165
|
}
|
|
106
|
-
}
|
|
107
166
|
}
|
|
108
167
|
exports.NSUserDefaults = NSUserDefaults;
|
|
109
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfeG1sZG9tIiwiX3RlZW5fcHJvY2VzcyIsIl9ibHVlYmlyZCIsIl9sb2dnZXIiLCJ0b1htbEFyZyIsInZhbHVlIiwic2VyaWFsaXplIiwieG1sRG9jIiwiXyIsImlzUGxhaW5PYmplY3QiLCJET01QYXJzZXIiLCJwYXJzZUZyb21TdHJpbmciLCJzdWJLZXkiLCJzdWJWYWx1ZSIsInRvUGFpcnMiLCJrZXlFbCIsImNyZWF0ZUVsZW1lbnQiLCJrZXlUZXh0RWwiLCJjcmVhdGVUZXh0Tm9kZSIsImFwcGVuZENoaWxkIiwiZG9jdW1lbnRFbGVtZW50Iiwic3ViVmFsdWVFbCIsImltcG9ydE5vZGUiLCJpc0FycmF5IiwiaXNCb29sZWFuIiwiaXNJbnRlZ2VyIiwiaXNOdW1iZXIiLCJpc1N0cmluZyIsInZhbHVlVGV4dEVsIiwiVHlwZUVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsIlhNTFNlcmlhbGl6ZXIiLCJzZXJpYWxpemVUb1N0cmluZyIsImdlbmVyYXRlRGVmYXVsdHNDb21tYW5kQXJncyIsInZhbHVlc01hcCIsInJlcGxhY2UiLCJyZXN1bHRBcmdzIiwia2V5IiwiZGljdEFyZ3MiLCJwdXNoIiwiYXJyYXlBcmdzIiwiZSIsImxvZyIsIndhcm4iLCJtZXNzYWdlIiwiTlNVc2VyRGVmYXVsdHMiLCJjb25zdHJ1Y3RvciIsInBsaXN0IiwiYXNKc29uIiwic3Rkb3V0IiwiZXhlYyIsInBhcnNlIiwiRXJyb3IiLCJzdGRlcnIiLCJ1cGRhdGUiLCJpc0VtcHR5IiwiY29tbWFuZEFyZ3MiLCJCIiwiYWxsIiwibWFwIiwiYXJncyIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9saWIvZGVmYXVsdHMtdXRpbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IERPTVBhcnNlciwgWE1MU2VyaWFsaXplciB9IGZyb20gJ0B4bWxkb20veG1sZG9tJztcbmltcG9ydCB7IGV4ZWMgfSBmcm9tICd0ZWVuX3Byb2Nlc3MnO1xuaW1wb3J0IEIgZnJvbSAnYmx1ZWJpcmQnO1xuaW1wb3J0IGxvZyBmcm9tICcuL2xvZ2dlcic7XG5cbi8qKlxuICogU2VyaWFsaXplcyB0aGUgZ2l2ZW4gdmFsdWUgdG8gcGxpc3QtY29tcGF0aWJsZVxuICogWE1MIHJlcHJlc2VudGF0aW9uLCB3aGljaCBpcyByZWFkeSBmb3IgZnVydGhlciB1c2FnZVxuICogd2l0aCBgZGVmYXVsdHNgIGNvbW1hbmQgbGluZSB0b29sIGFyZ3VtZW50c1xuICpcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGJlIHNlcmlhbGl6ZWRcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gc2VyaWFsaXplIFt0cnVlXSBXaGV0aGVyIHRvIHNlcmlhbGl6ZSB0aGUgcmVzdWx0aW5nXG4gKiBYTUwgdG8gc3RyaW5nIG9yIHRvIHJldHVybiByYXcgSFRNTEVsZW1lbnQgaW5zdGFuY2VcbiAqIEByZXR1cm5zIHtIVE1MRWxlbWVudHxzdHJpbmd9IEVpdGhlciBzdHJpbmcgb3IgcmF3IG5vZGUgcmVwcmVzZW50YXRpb24gb2ZcbiAqIHRoZSBnaXZlbiB2YWx1ZVxuICogQHRocm93cyB7VHlwZUVycm9yfSBJZiBpdCBpcyBub3Qga25vd24gaG93IHRvIHNlcmlhbGl6ZSB0aGUgZ2l2ZW4gdmFsdWVcbiAqL1xuZnVuY3Rpb24gdG9YbWxBcmcgKHZhbHVlLCBzZXJpYWxpemUgPSB0cnVlKSB7XG4gIGxldCB4bWxEb2MgPSBudWxsO1xuXG4gIGlmIChfLmlzUGxhaW5PYmplY3QodmFsdWUpKSB7XG4gICAgeG1sRG9jID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZygnPGRpY3Q+PC9kaWN0PicsICd0ZXh0L3htbCcpO1xuICAgIGZvciAoY29uc3QgW3N1YktleSwgc3ViVmFsdWVdIG9mIF8udG9QYWlycyh2YWx1ZSkpIHtcbiAgICAgIGNvbnN0IGtleUVsID0geG1sRG9jLmNyZWF0ZUVsZW1lbnQoJ2tleScpO1xuICAgICAgY29uc3Qga2V5VGV4dEVsID0geG1sRG9jLmNyZWF0ZVRleHROb2RlKHN1YktleSk7XG4gICAgICBrZXlFbC5hcHBlbmRDaGlsZChrZXlUZXh0RWwpO1xuICAgICAgeG1sRG9jLmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChrZXlFbCk7XG4gICAgICBjb25zdCBzdWJWYWx1ZUVsID0geG1sRG9jLmltcG9ydE5vZGUodG9YbWxBcmcoc3ViVmFsdWUsIGZhbHNlKSwgdHJ1ZSk7XG4gICAgICB4bWxEb2MuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKHN1YlZhbHVlRWwpO1xuICAgIH1cbiAgfSBlbHNlIGlmIChfLmlzQXJyYXkodmFsdWUpKSB7XG4gICAgeG1sRG9jID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZygnPGFycmF5PjwvYXJyYXk+JywgJ3RleHQveG1sJyk7XG4gICAgZm9yIChjb25zdCBzdWJWYWx1ZSBvZiB2YWx1ZSkge1xuICAgICAgY29uc3Qgc3ViVmFsdWVFbCA9IHhtbERvYy5pbXBvcnROb2RlKHRvWG1sQXJnKHN1YlZhbHVlLCBmYWxzZSksIHRydWUpO1xuICAgICAgeG1sRG9jLmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChzdWJWYWx1ZUVsKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoXy5pc0Jvb2xlYW4odmFsdWUpKSB7XG4gICAgeG1sRG9jID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyh2YWx1ZSA/ICc8dHJ1ZS8+JyA6ICc8ZmFsc2UvPicsICd0ZXh0L3htbCcpO1xuICB9IGVsc2UgaWYgKF8uaXNJbnRlZ2VyKHZhbHVlKSkge1xuICAgIHhtbERvYyA9IG5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcoYDxpbnRlZ2VyPiR7dmFsdWV9PC9pbnRlZ2VyPmAsICd0ZXh0L3htbCcpO1xuICB9IGVsc2UgaWYgKF8uaXNOdW1iZXIodmFsdWUpKSB7XG4gICAgeG1sRG9jID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhgPHJlYWw+JHt2YWx1ZX08L3JlYWw+YCwgJ3RleHQveG1sJyk7XG4gIH0gZWxzZSBpZiAoXy5pc1N0cmluZyh2YWx1ZSkpIHtcbiAgICB4bWxEb2MgPSBuZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKGA8c3RyaW5nPjwvc3RyaW5nPmAsICd0ZXh0L3htbCcpO1xuICAgIGNvbnN0IHZhbHVlVGV4dEVsID0geG1sRG9jLmNyZWF0ZVRleHROb2RlKHZhbHVlKTtcbiAgICB4bWxEb2MuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKHZhbHVlVGV4dEVsKTtcbiAgfVxuXG4gIGlmICgheG1sRG9jKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgVGhlIGRlZmF1bHRzIHZhbHVlICR7SlNPTi5zdHJpbmdpZnkodmFsdWUpfSBjYW5ub3QgYmUgd3JpdHRlbiwgYCArXG4gICAgICBgYmVjYXVzZSBpdCBpcyBub3Qga25vd24gaG93IHRvIGhhbmRsZSBpdHMgdHlwZWApO1xuICB9XG5cbiAgcmV0dXJuIHNlcmlhbGl6ZVxuICAgID8gbmV3IFhNTFNlcmlhbGl6ZXIoKS5zZXJpYWxpemVUb1N0cmluZyh4bWxEb2MuZG9jdW1lbnRFbGVtZW50KVxuICAgIDogeG1sRG9jLmRvY3VtZW50RWxlbWVudDtcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZXMgY29tbWFuZCBsaW5lIGFyZ3MgZm9yIHRoZSBgZGVmYXVsdHNgXG4gKiBjb21tYW5kIGxpbmUgdXRpbGl0eSBiYXNlZCBvbiB0aGUgZ2l2ZW4gcHJlZmVyZW5jZSB2YWx1ZXMgbWFwcGluZy5cbiAqIFNlZSBodHRwczovL3NoYWRvd2ZpbGUuaW5vZGUubGluay9ibG9nLzIwMTgvMDYvYWR2YW5jZWQtZGVmYXVsdHMxLXVzYWdlL1xuICogZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gdmFsdWVzTWFwIFByZWZlcmVuY2VzIG1hcHBpbmdcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gcmVwbGFjZSBbZmFsc2VdIFdoZXRoZXIgdG8gZ2VuZXJhdGUgYXJndW1lbnRzIHRoYXQgcmVwbGFjZVxuICogY29tcGxleCB0eXBlZCB2YWx1ZXMgbGlrZSBhcnJheXMgb3IgZGljdGlvbmFyaWVzIGluIHRoZSBjdXJyZW50IHBsaXN0IG9yXG4gKiB1cGRhdGUgdGhlbSAodGhlIGRlZmF1bHQgc2V0dGluZ3MpXG4gKiBAcmV0dXJucyB7QXJyYXk8QXJyYXk8c3RyaW5nPj59IEVhY2ggaXRlbSBpbiB0aGUgYXJyYXlcbiAqIGlzIHRoZSBgZGVmYXVsdHMgd3JpdGUgPHBsaXN0PmAgY29tbWFuZCBzdWZmaXhcbiAqL1xuZnVuY3Rpb24gZ2VuZXJhdGVEZWZhdWx0c0NvbW1hbmRBcmdzICh2YWx1ZXNNYXAsIHJlcGxhY2UgPSBmYWxzZSkge1xuICBjb25zdCByZXN1bHRBcmdzID0gW107XG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIF8udG9QYWlycyh2YWx1ZXNNYXApKSB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghcmVwbGFjZSAmJiBfLmlzUGxhaW5PYmplY3QodmFsdWUpKSB7XG4gICAgICAgIGNvbnN0IGRpY3RBcmdzID0gW2tleSwgJy1kaWN0LWFkZCddO1xuICAgICAgICBmb3IgKGNvbnN0IFtzdWJLZXksIHN1YlZhbHVlXSBvZiBfLnRvUGFpcnModmFsdWUpKSB7XG4gICAgICAgICAgZGljdEFyZ3MucHVzaChzdWJLZXksIHRvWG1sQXJnKHN1YlZhbHVlKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0QXJncy5wdXNoKGRpY3RBcmdzKTtcbiAgICAgIH0gZWxzZSBpZiAoIXJlcGxhY2UgJiYgXy5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICBjb25zdCBhcnJheUFyZ3MgPSBba2V5LCAnLWFycmF5LWFkZCddO1xuICAgICAgICBmb3IgKGNvbnN0IHN1YlZhbHVlIG9mIHZhbHVlKSB7XG4gICAgICAgICAgYXJyYXlBcmdzLnB1c2godG9YbWxBcmcoc3ViVmFsdWUpKTtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHRBcmdzLnB1c2goYXJyYXlBcmdzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdEFyZ3MucHVzaChba2V5LCB0b1htbEFyZyh2YWx1ZSldKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikge1xuICAgICAgICBsb2cud2FybihlLm1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdEFyZ3M7XG59XG5cblxuY2xhc3MgTlNVc2VyRGVmYXVsdHMge1xuICBjb25zdHJ1Y3RvciAocGxpc3QpIHtcbiAgICB0aGlzLnBsaXN0ID0gcGxpc3Q7XG4gIH1cblxuICAvKipcbiAgICogUmVhZHMgdGhlIGNvbnRlbnQgb2YgdGhlIGdpdmVuIHBsaXN0IGZpbGUgdXNpbmcgcGx1dGlsIGNvbW1hbmQgbGluZSB0b29sXG4gICAqIGFuZCBzZXJpYWxpemVzIGl0IHRvIGEgSlNPTiByZXByZXNlbnRhdGlvblxuICAgKlxuICAgKiBAcmV0dXJucyB7T2JqZWN0fSBUaGUgc2VyaWFsaXplZCBwbGlzdCBjb250ZW50XG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGVyZSB3YXMgYW4gZXJyb3IgZHVyaW5nIHNlcmlhbGl6YXRpb25cbiAgICovXG4gIGFzeW5jIGFzSnNvbiAoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHtzdGRvdXR9ID0gYXdhaXQgZXhlYygncGx1dGlsJywgWyctY29udmVydCcsICdqc29uJywgJy1vJywgJy0nLCB0aGlzLnBsaXN0XSk7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZShzdGRvdXQpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJyR7dGhpcy5wbGlzdH0nIGNhbm5vdCBiZSBjb252ZXJ0ZWQgdG8gSlNPTi4gT3JpZ2luYWwgZXJyb3I6ICR7ZS5zdGRlcnIgfHwgZS5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBjb250ZW50IG9mIHRoZSBnaXZlbiBwbGlzdCBmaWxlLlxuICAgKiBJZiB0aGUgcGxpc3QgZG9lcyBub3QgZXhpc3QgeWV0IHRoZW4gaXQgaXMgZ29pbmcgdG8gYmUgY3JlYXRlZC5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IHZhbHVlc01hcCBNYXBwaW5nIG9mIHByZWZlcmVuY2UgdmFsdWVzIHRvIHVwZGF0ZS5cbiAgICogSWYgYW55IG9mIGl0ZW0gdmFsdWVzIGFyZSBvZiBkaWN0aW9uYXJ5IHR5cGUgdGhlbiBvbmx5IHRoZSBmaXJzdCBsZXZlbCBkaWN0aW9uYXJ5IGdldHNcbiAgICogdXBkYXRlZC4gRXZlcnl0aGluZyBiZWxvdyB0aGlzIGxldmVsIHdpbGwgYmUgcmVwbGFjZWQuIFRoaXMgaXMgdGhlIGtub3duIGxpbWl0YXRpb25cbiAgICogb2YgdGhlIGBkZWZhdWx0c2AgY29tbWFuZCBsaW5lIHRvb2wuIEEgd29ya2Fyb3VuZCBmb3IgaXQgd291bGQgYmUgdG8gcmVhZCB0aGUgY3VycmVudFxuICAgKiBwcmVmZXJlbmNlcyBtYXBwaW5nIGZpcnN0IGFuZCBtZXJnZSBpdCB3aXRoIHRoaXMgdmFsdWUuXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGVyZSB3YXMgYW4gZXJyb3Igd2hpbGUgdXBkYXRpbmcgdGhlIHBsaXN0XG4gICAqL1xuICBhc3luYyB1cGRhdGUgKHZhbHVlc01hcCkge1xuICAgIGlmICghXy5pc1BsYWluT2JqZWN0KHZhbHVlc01hcCkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYHBsaXN0IHZhbHVlcyBtdXN0IGJlIGEgbWFwLiAnJHt2YWx1ZXNNYXB9JyBpcyBnaXZlbiBpbnN0ZWFkYCk7XG4gICAgfVxuICAgIGlmIChfLmlzRW1wdHkodmFsdWVzTWFwKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbW1hbmRBcmdzID0gZ2VuZXJhdGVEZWZhdWx0c0NvbW1hbmRBcmdzKHZhbHVlc01hcCk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IEIuYWxsKGNvbW1hbmRBcmdzLm1hcCgoYXJncykgPT4gZXhlYygnZGVmYXVsdHMnLCBbJ3dyaXRlJywgdGhpcy5wbGlzdCwgLi4uYXJnc10pKSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3Qgd3JpdGUgZGVmYXVsdHMgaW50byAnJHt0aGlzLnBsaXN0fScuIE9yaWdpbmFsIGVycm9yOiAke2Uuc3RkZXJyIHx8IGUubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cbn1cblxuXG5leHBvcnQge1xuICBOU1VzZXJEZWZhdWx0cyxcbiAgdG9YbWxBcmcsIGdlbmVyYXRlRGVmYXVsdHNDb21tYW5kQXJncyxcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxhQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxTQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFjQSxTQUFTSyxRQUFRQSxDQUFFQyxLQUFLLEVBQUVDLFNBQVMsR0FBRyxJQUFJLEVBQUU7RUFDMUMsSUFBSUMsTUFBTSxHQUFHLElBQUk7RUFFakIsSUFBSUMsZUFBQyxDQUFDQyxhQUFhLENBQUNKLEtBQUssQ0FBQyxFQUFFO0lBQzFCRSxNQUFNLEdBQUcsSUFBSUcsaUJBQVMsQ0FBQyxDQUFDLENBQUNDLGVBQWUsQ0FBQyxlQUFlLEVBQUUsVUFBVSxDQUFDO0lBQ3JFLEtBQUssTUFBTSxDQUFDQyxNQUFNLEVBQUVDLFFBQVEsQ0FBQyxJQUFJTCxlQUFDLENBQUNNLE9BQU8sQ0FBQ1QsS0FBSyxDQUFDLEVBQUU7TUFDakQsTUFBTVUsS0FBSyxHQUFHUixNQUFNLENBQUNTLGFB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
|
|
168
|
+
//# sourceMappingURL=defaults-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults-utils.js","names":["_lodash","_interopRequireDefault","require","_xmldom","_teen_process","_bluebird","_logger","toXmlArg","value","serialize","xmlDoc","_","isPlainObject","DOMParser","parseFromString","subKey","subValue","toPairs","keyEl","createElement","keyTextEl","createTextNode","appendChild","documentElement","subValueEl","importNode","isArray","isBoolean","isInteger","isNumber","isString","valueTextEl","TypeError","JSON","stringify","XMLSerializer","serializeToString","generateDefaultsCommandArgs","valuesMap","replace","resultArgs","key","dictArgs","push","arrayArgs","e","log","warn","message","NSUserDefaults","constructor","plist","asJson","stdout","exec","parse","Error","stderr","update","isEmpty","commandArgs","B","all","map","args","exports"],"sources":["../../lib/defaults-utils.js"],"sourcesContent":["import _ from 'lodash';\nimport { DOMParser, XMLSerializer } from '@xmldom/xmldom';\nimport { exec } from 'teen_process';\nimport B from 'bluebird';\nimport log from './logger';\n\n/**\n * Serializes the given value to plist-compatible\n * XML representation, which is ready for further usage\n * with `defaults` command line tool arguments\n *\n * @param {*} value The value to be serialized\n * @param {boolean} serialize [true] Whether to serialize the resulting\n * XML to string or to return raw HTMLElement instance\n * @returns {HTMLElement|string} Either string or raw node representation of\n * the given value\n * @throws {TypeError} If it is not known how to serialize the given value\n */\nfunction toXmlArg (value, serialize = true) {\n let xmlDoc = null;\n\n if (_.isPlainObject(value)) {\n xmlDoc = new DOMParser().parseFromString('<dict></dict>', 'text/xml');\n for (const [subKey, subValue] of _.toPairs(value)) {\n const keyEl = xmlDoc.createElement('key');\n const keyTextEl = xmlDoc.createTextNode(subKey);\n keyEl.appendChild(keyTextEl);\n xmlDoc.documentElement.appendChild(keyEl);\n const subValueEl = xmlDoc.importNode(toXmlArg(subValue, false), true);\n xmlDoc.documentElement.appendChild(subValueEl);\n }\n } else if (_.isArray(value)) {\n xmlDoc = new DOMParser().parseFromString('<array></array>', 'text/xml');\n for (const subValue of value) {\n const subValueEl = xmlDoc.importNode(toXmlArg(subValue, false), true);\n xmlDoc.documentElement.appendChild(subValueEl);\n }\n } else if (_.isBoolean(value)) {\n xmlDoc = new DOMParser().parseFromString(value ? '<true/>' : '<false/>', 'text/xml');\n } else if (_.isInteger(value)) {\n xmlDoc = new DOMParser().parseFromString(`<integer>${value}</integer>`, 'text/xml');\n } else if (_.isNumber(value)) {\n xmlDoc = new DOMParser().parseFromString(`<real>${value}</real>`, 'text/xml');\n } else if (_.isString(value)) {\n xmlDoc = new DOMParser().parseFromString(`<string></string>`, 'text/xml');\n const valueTextEl = xmlDoc.createTextNode(value);\n xmlDoc.documentElement.appendChild(valueTextEl);\n }\n\n if (!xmlDoc) {\n throw new TypeError(`The defaults value ${JSON.stringify(value)} cannot be written, ` +\n `because it is not known how to handle its type`);\n }\n\n return serialize\n ? new XMLSerializer().serializeToString(xmlDoc.documentElement)\n : xmlDoc.documentElement;\n}\n\n/**\n * Generates command line args for the `defaults`\n * command line utility based on the given preference values mapping.\n * See https://shadowfile.inode.link/blog/2018/06/advanced-defaults1-usage/\n * for more details.\n *\n * @param {Object} valuesMap Preferences mapping\n * @param {Boolean} replace [false] Whether to generate arguments that replace\n * complex typed values like arrays or dictionaries in the current plist or\n * update them (the default settings)\n * @returns {Array<Array<string>>} Each item in the array\n * is the `defaults write <plist>` command suffix\n */\nfunction generateDefaultsCommandArgs (valuesMap, replace = false) {\n const resultArgs = [];\n for (const [key, value] of _.toPairs(valuesMap)) {\n try {\n if (!replace && _.isPlainObject(value)) {\n const dictArgs = [key, '-dict-add'];\n for (const [subKey, subValue] of _.toPairs(value)) {\n dictArgs.push(subKey, toXmlArg(subValue));\n }\n resultArgs.push(dictArgs);\n } else if (!replace && _.isArray(value)) {\n const arrayArgs = [key, '-array-add'];\n for (const subValue of value) {\n arrayArgs.push(toXmlArg(subValue));\n }\n resultArgs.push(arrayArgs);\n } else {\n resultArgs.push([key, toXmlArg(value)]);\n }\n } catch (e) {\n if (e instanceof TypeError) {\n log.warn(e.message);\n } else {\n throw e;\n }\n }\n }\n return resultArgs;\n}\n\n\nclass NSUserDefaults {\n constructor (plist) {\n this.plist = plist;\n }\n\n /**\n * Reads the content of the given plist file using plutil command line tool\n * and serializes it to a JSON representation\n *\n * @returns {Object} The serialized plist content\n * @throws {Error} If there was an error during serialization\n */\n async asJson () {\n try {\n const {stdout} = await exec('plutil', ['-convert', 'json', '-o', '-', this.plist]);\n return JSON.parse(stdout);\n } catch (e) {\n throw new Error(`'${this.plist}' cannot be converted to JSON. Original error: ${e.stderr || e.message}`);\n }\n }\n\n /**\n * Updates the content of the given plist file.\n * If the plist does not exist yet then it is going to be created.\n *\n * @param {Object} valuesMap Mapping of preference values to update.\n * If any of item values are of dictionary type then only the first level dictionary gets\n * updated. Everything below this level will be replaced. This is the known limitation\n * of the `defaults` command line tool. A workaround for it would be to read the current\n * preferences mapping first and merge it with this value.\n * @throws {Error} If there was an error while updating the plist\n */\n async update (valuesMap) {\n if (!_.isPlainObject(valuesMap)) {\n throw new TypeError(`plist values must be a map. '${valuesMap}' is given instead`);\n }\n if (_.isEmpty(valuesMap)) {\n return;\n }\n\n const commandArgs = generateDefaultsCommandArgs(valuesMap);\n try {\n await B.all(commandArgs.map((args) => exec('defaults', ['write', this.plist, ...args])));\n } catch (e) {\n throw new Error(`Could not write defaults into '${this.plist}'. Original error: ${e.stderr || e.message}`);\n }\n }\n}\n\n\nexport {\n NSUserDefaults,\n toXmlArg, generateDefaultsCommandArgs,\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"defaults-utils.js","sourceRoot":"","sources":["../../lib/defaults-utils.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
export default extensions;
|
|
2
|
+
export type LaunchAppOpts = {
|
|
3
|
+
/**
|
|
4
|
+
* [false] Whether to wait until the app has fully started and
|
|
5
|
+
* is present in processes list
|
|
6
|
+
*/
|
|
7
|
+
wait: boolean;
|
|
8
|
+
/**
|
|
9
|
+
* [10000] The number of milliseconds to wait until
|
|
10
|
+
* the app is fully started. Only applicatble if `wait` is true.
|
|
11
|
+
*/
|
|
12
|
+
timeoutMs: number;
|
|
13
|
+
};
|
|
14
|
+
declare namespace extensions {
|
|
15
|
+
/**
|
|
16
|
+
* Install valid .app package on Simulator.
|
|
17
|
+
*
|
|
18
|
+
* @param {string} app - The path to the .app package.
|
|
19
|
+
*/
|
|
20
|
+
function installApp(app: string): Promise<any>;
|
|
21
|
+
/**
|
|
22
|
+
* Returns user installed bundle ids which has 'bundleName' in their Info.Plist as 'CFBundleName'
|
|
23
|
+
*
|
|
24
|
+
* @param {string} bundleName - The bundle name of the application to be checked.
|
|
25
|
+
* @return {Promise<string[]>} - The list of bundle ids which have 'bundleName'
|
|
26
|
+
*/
|
|
27
|
+
function getUserInstalledBundleIdsByBundleName(bundleName: string): Promise<string[]>;
|
|
28
|
+
/**
|
|
29
|
+
* Verify whether the particular application is installed on Simulator.
|
|
30
|
+
*
|
|
31
|
+
* @param {string} bundleId - The bundle id of the application to be checked.
|
|
32
|
+
* @return {Promise<boolean>} True if the given application is installed.
|
|
33
|
+
*/
|
|
34
|
+
function isAppInstalled(bundleId: string): Promise<boolean>;
|
|
35
|
+
/**
|
|
36
|
+
* Uninstall the given application from the current Simulator.
|
|
37
|
+
*
|
|
38
|
+
* @param {string} bundleId - The buindle ID of the application to be removed.
|
|
39
|
+
*/
|
|
40
|
+
function removeApp(bundleId: string): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* @typedef {Object} LaunchAppOpts
|
|
43
|
+
* @property {boolean} wait [false] Whether to wait until the app has fully started and
|
|
44
|
+
* is present in processes list
|
|
45
|
+
* @property {number} timeoutMs [10000] The number of milliseconds to wait until
|
|
46
|
+
* the app is fully started. Only applicatble if `wait` is true.
|
|
47
|
+
*/
|
|
48
|
+
/**
|
|
49
|
+
* Starts the given application on Simulator
|
|
50
|
+
*
|
|
51
|
+
* @param {string} bundleId - The buindle ID of the application to be launched
|
|
52
|
+
* @param {Partial<LaunchAppOpts>} opts
|
|
53
|
+
*/
|
|
54
|
+
function launchApp(bundleId: string, opts?: Partial<LaunchAppOpts>): Promise<void>;
|
|
55
|
+
/**
|
|
56
|
+
* Stops the given application on Simulator.
|
|
57
|
+
*
|
|
58
|
+
* @param {string} bundleId - The buindle ID of the application to be stopped
|
|
59
|
+
*/
|
|
60
|
+
function terminateApp(bundleId: string): Promise<void>;
|
|
61
|
+
/**
|
|
62
|
+
* Check if app with the given identifier is running.
|
|
63
|
+
*
|
|
64
|
+
* @param {string} bundleId - The buindle ID of the application to be checked.
|
|
65
|
+
*/
|
|
66
|
+
function isAppRunning(bundleId: string): Promise<any>;
|
|
67
|
+
/**
|
|
68
|
+
* Scrub (delete the preferences and changed files) the particular application on Simulator.
|
|
69
|
+
* The app will be terminated automatically if it is running.
|
|
70
|
+
*
|
|
71
|
+
* @param {string} bundleId - Bundle identifier of the application.
|
|
72
|
+
* @throws {Error} if the given app is not installed.
|
|
73
|
+
*/
|
|
74
|
+
function scrubApp(bundleId: string): Promise<void>;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=applications.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applications.d.ts","sourceRoot":"","sources":["../../../lib/extensions/applications.js"],"names":[],"mappings":";;;;;;UA4Fc,OAAO;;;;;eAEP,MAAM;;;IArFpB;;;;OAIG;IACH,+CAEC;IAED;;;;;OAKG;IACH,sFAgCC;IAED;;;;;OAKG;IACH,4DAeC;IAED;;;;OAIG;IACH,oDAEC;IAED;;;;;;OAMG;IAEH;;;;;OAKG;IACH,mFAkBC;IAED;;;;OAIG;IACH,uDAEC;IAED;;;;OAIG;IACH,sDAEC;IAED;;;;;;OAMG;IACH,mDAgBC"}
|