appium-ios-simulator 8.0.12 → 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 +12 -0
- package/build/lib/defaults-utils.d.ts +25 -24
- package/build/lib/defaults-utils.d.ts.map +1 -1
- package/build/lib/defaults-utils.js +74 -70
- package/build/lib/defaults-utils.js.map +1 -1
- package/build/lib/extensions/applications.d.ts.map +1 -1
- package/build/lib/extensions/applications.js +6 -7
- package/build/lib/extensions/applications.js.map +1 -1
- package/build/lib/extensions/biometric.d.ts.map +1 -1
- package/build/lib/extensions/biometric.js +3 -6
- package/build/lib/extensions/biometric.js.map +1 -1
- package/build/lib/extensions/keychain.d.ts.map +1 -1
- package/build/lib/extensions/keychain.js +7 -6
- package/build/lib/extensions/keychain.js.map +1 -1
- package/build/lib/extensions/permissions.d.ts.map +1 -1
- package/build/lib/extensions/permissions.js +16 -18
- package/build/lib/extensions/permissions.js.map +1 -1
- package/build/lib/extensions/safari.d.ts.map +1 -1
- package/build/lib/extensions/safari.js +2 -4
- package/build/lib/extensions/safari.js.map +1 -1
- package/build/lib/extensions/settings.d.ts +2 -2
- package/build/lib/extensions/settings.d.ts.map +1 -1
- package/build/lib/extensions/settings.js +56 -54
- package/build/lib/extensions/settings.js.map +1 -1
- package/build/lib/index.d.ts +5 -0
- package/build/lib/index.d.ts.map +1 -0
- package/build/{index.js → lib/index.js} +2 -3
- package/build/lib/index.js.map +1 -0
- package/build/lib/simulator-xcode-14.d.ts +37 -37
- package/build/lib/simulator-xcode-14.d.ts.map +1 -1
- package/build/lib/simulator-xcode-14.js +57 -59
- package/build/lib/simulator-xcode-14.js.map +1 -1
- package/build/lib/simulator-xcode-15.d.ts.map +1 -1
- package/build/lib/simulator-xcode-15.js +3 -5
- package/build/lib/simulator-xcode-15.js.map +1 -1
- package/build/lib/types.d.ts +8 -8
- package/build/lib/types.d.ts.map +1 -1
- package/build/lib/utils.d.ts +11 -3
- package/build/lib/utils.d.ts.map +1 -1
- package/build/lib/utils.js +50 -35
- package/build/lib/utils.js.map +1 -1
- package/lib/defaults-utils.ts +83 -73
- package/lib/extensions/applications.ts +6 -7
- package/lib/extensions/biometric.ts +3 -3
- package/lib/extensions/keychain.ts +11 -6
- package/lib/extensions/permissions.ts +17 -19
- package/lib/extensions/safari.ts +2 -4
- package/lib/extensions/settings.ts +75 -66
- package/lib/index.ts +6 -0
- package/lib/simulator-xcode-14.ts +70 -71
- package/lib/simulator-xcode-15.ts +3 -5
- package/lib/types.ts +9 -9
- package/lib/utils.ts +52 -37
- package/package.json +4 -10
- package/build/index.d.ts +0 -5
- package/build/index.d.ts.map +0 -1
- package/build/index.js.map +0 -1
- package/index.ts +0 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## [8.1.0](https://github.com/appium/appium-ios-simulator/compare/v8.0.13...v8.1.0) (2026-04-27)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
* Strip bluebird and lodash usage ([#477](https://github.com/appium/appium-ios-simulator/issues/477)) ([3f19625](https://github.com/appium/appium-ios-simulator/commit/3f1962542e6bcad5098c8d056218c41e0fac9c9e))
|
|
6
|
+
|
|
7
|
+
## [8.0.13](https://github.com/appium/appium-ios-simulator/compare/v8.0.12...v8.0.13) (2026-04-10)
|
|
8
|
+
|
|
9
|
+
### Miscellaneous Chores
|
|
10
|
+
|
|
11
|
+
* **deps-dev:** Bump typescript from 5.9.3 to 6.0.2 ([#476](https://github.com/appium/appium-ios-simulator/issues/476)) ([3943b85](https://github.com/appium/appium-ios-simulator/commit/3943b855d3c62c6a6c5cefd195b4a5915558ab01))
|
|
12
|
+
|
|
1
13
|
## [8.0.12](https://github.com/appium/appium-ios-simulator/compare/v8.0.11...v8.0.12) (2026-02-16)
|
|
2
14
|
|
|
3
15
|
### Bug Fixes
|
|
@@ -1,3 +1,28 @@
|
|
|
1
|
+
import { type Element } from '@xmldom/xmldom';
|
|
2
|
+
export declare class NSUserDefaults {
|
|
3
|
+
plist: string;
|
|
4
|
+
constructor(plist: string);
|
|
5
|
+
/**
|
|
6
|
+
* Reads the content of the given plist file using plutil command line tool
|
|
7
|
+
* and serializes it to a JSON representation
|
|
8
|
+
*
|
|
9
|
+
* @returns The serialized plist content
|
|
10
|
+
* @throws {Error} If there was an error during serialization
|
|
11
|
+
*/
|
|
12
|
+
asJson(): Promise<Record<string, any>>;
|
|
13
|
+
/**
|
|
14
|
+
* Updates the content of the given plist file.
|
|
15
|
+
* If the plist does not exist yet then it is going to be created.
|
|
16
|
+
*
|
|
17
|
+
* @param valuesMap Mapping of preference values to update.
|
|
18
|
+
* If any of item values are of dictionary type then only the first level dictionary gets
|
|
19
|
+
* updated. Everything below this level will be replaced. This is the known limitation
|
|
20
|
+
* of the `defaults` command line tool. A workaround for it would be to read the current
|
|
21
|
+
* preferences mapping first and merge it with this value.
|
|
22
|
+
* @throws {Error} If there was an error while updating the plist
|
|
23
|
+
*/
|
|
24
|
+
update(valuesMap: Record<string, any>): Promise<void>;
|
|
25
|
+
}
|
|
1
26
|
/**
|
|
2
27
|
* Serializes the given value to plist-compatible
|
|
3
28
|
* XML representation, which is ready for further usage
|
|
@@ -25,28 +50,4 @@ export declare function toXmlArg(value: any, serialize?: boolean): string | Elem
|
|
|
25
50
|
* is the `defaults write <plist>` command suffix
|
|
26
51
|
*/
|
|
27
52
|
export declare function generateDefaultsCommandArgs(valuesMap: Record<string, any>, replace?: boolean): string[][];
|
|
28
|
-
export declare class NSUserDefaults {
|
|
29
|
-
plist: string;
|
|
30
|
-
constructor(plist: string);
|
|
31
|
-
/**
|
|
32
|
-
* Reads the content of the given plist file using plutil command line tool
|
|
33
|
-
* and serializes it to a JSON representation
|
|
34
|
-
*
|
|
35
|
-
* @returns The serialized plist content
|
|
36
|
-
* @throws {Error} If there was an error during serialization
|
|
37
|
-
*/
|
|
38
|
-
asJson(): Promise<Record<string, any>>;
|
|
39
|
-
/**
|
|
40
|
-
* Updates the content of the given plist file.
|
|
41
|
-
* If the plist does not exist yet then it is going to be created.
|
|
42
|
-
*
|
|
43
|
-
* @param valuesMap Mapping of preference values to update.
|
|
44
|
-
* If any of item values are of dictionary type then only the first level dictionary gets
|
|
45
|
-
* updated. Everything below this level will be replaced. This is the known limitation
|
|
46
|
-
* of the `defaults` command line tool. A workaround for it would be to read the current
|
|
47
|
-
* preferences mapping first and merge it with this value.
|
|
48
|
-
* @throws {Error} If there was an error while updating the plist
|
|
49
|
-
*/
|
|
50
|
-
update(valuesMap: Record<string, any>): Promise<void>;
|
|
51
|
-
}
|
|
52
53
|
//# sourceMappingURL=defaults-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults-utils.d.ts","sourceRoot":"","sources":["../../lib/defaults-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"defaults-utils.d.ts","sourceRoot":"","sources":["../../lib/defaults-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0C,KAAK,OAAO,EAAC,MAAM,gBAAgB,CAAC;AAKrF,qBAAa,cAAc;IACzB,KAAK,EAAE,MAAM,CAAC;gBAEF,KAAK,EAAE,MAAM;IAIzB;;;;;;OAMG;IACG,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAW5C;;;;;;;;;;OAUG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAmB5D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,GAAE,OAAc,GAAG,MAAM,GAAG,OAAO,CA0ChF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9B,OAAO,GAAE,OAAe,GACvB,MAAM,EAAE,EAAE,CA4BZ"}
|
|
@@ -1,16 +1,61 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.NSUserDefaults = void 0;
|
|
7
4
|
exports.toXmlArg = toXmlArg;
|
|
8
5
|
exports.generateDefaultsCommandArgs = generateDefaultsCommandArgs;
|
|
9
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
10
6
|
const xmldom_1 = require("@xmldom/xmldom");
|
|
11
7
|
const teen_process_1 = require("teen_process");
|
|
12
|
-
const bluebird_1 = __importDefault(require("bluebird"));
|
|
13
8
|
const logger_1 = require("./logger");
|
|
9
|
+
const utils_1 = require("./utils");
|
|
10
|
+
class NSUserDefaults {
|
|
11
|
+
plist;
|
|
12
|
+
constructor(plist) {
|
|
13
|
+
this.plist = plist;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Reads the content of the given plist file using plutil command line tool
|
|
17
|
+
* and serializes it to a JSON representation
|
|
18
|
+
*
|
|
19
|
+
* @returns The serialized plist content
|
|
20
|
+
* @throws {Error} If there was an error during serialization
|
|
21
|
+
*/
|
|
22
|
+
async asJson() {
|
|
23
|
+
try {
|
|
24
|
+
const { stdout } = await (0, teen_process_1.exec)('plutil', ['-convert', 'json', '-o', '-', this.plist]);
|
|
25
|
+
return JSON.parse(stdout);
|
|
26
|
+
}
|
|
27
|
+
catch (e) {
|
|
28
|
+
throw new Error(`'${this.plist}' cannot be converted to JSON. Original error: ${e.stderr || e.message}`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Updates the content of the given plist file.
|
|
33
|
+
* If the plist does not exist yet then it is going to be created.
|
|
34
|
+
*
|
|
35
|
+
* @param valuesMap Mapping of preference values to update.
|
|
36
|
+
* If any of item values are of dictionary type then only the first level dictionary gets
|
|
37
|
+
* updated. Everything below this level will be replaced. This is the known limitation
|
|
38
|
+
* of the `defaults` command line tool. A workaround for it would be to read the current
|
|
39
|
+
* preferences mapping first and merge it with this value.
|
|
40
|
+
* @throws {Error} If there was an error while updating the plist
|
|
41
|
+
*/
|
|
42
|
+
async update(valuesMap) {
|
|
43
|
+
if (!(0, utils_1.isPlainObject)(valuesMap)) {
|
|
44
|
+
throw new TypeError(`plist values must be a map. '${valuesMap}' is given instead`);
|
|
45
|
+
}
|
|
46
|
+
if (Object.keys(valuesMap).length === 0) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
const commandArgs = generateDefaultsCommandArgs(valuesMap);
|
|
50
|
+
try {
|
|
51
|
+
await Promise.all(commandArgs.map((args) => (0, teen_process_1.exec)('defaults', ['write', this.plist, ...args])));
|
|
52
|
+
}
|
|
53
|
+
catch (e) {
|
|
54
|
+
throw new Error(`Could not write defaults into '${this.plist}'. Original error: ${e.stderr || e.message}`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.NSUserDefaults = NSUserDefaults;
|
|
14
59
|
/**
|
|
15
60
|
* Serializes the given value to plist-compatible
|
|
16
61
|
* XML representation, which is ready for further usage
|
|
@@ -25,45 +70,46 @@ const logger_1 = require("./logger");
|
|
|
25
70
|
*/
|
|
26
71
|
function toXmlArg(value, serialize = true) {
|
|
27
72
|
let xmlDoc = null;
|
|
28
|
-
if (
|
|
73
|
+
if ((0, utils_1.isPlainObject)(value)) {
|
|
29
74
|
xmlDoc = new xmldom_1.DOMParser().parseFromString('<dict></dict>', 'text/xml');
|
|
30
|
-
|
|
75
|
+
const documentElement = requireDocumentElement(xmlDoc);
|
|
76
|
+
for (const [subKey, subValue] of Object.entries(value)) {
|
|
31
77
|
const keyEl = xmlDoc.createElement('key');
|
|
32
78
|
const keyTextEl = xmlDoc.createTextNode(subKey);
|
|
33
79
|
keyEl.appendChild(keyTextEl);
|
|
34
|
-
|
|
80
|
+
documentElement.appendChild(keyEl);
|
|
35
81
|
const subValueEl = xmlDoc.importNode(toXmlArg(subValue, false), true);
|
|
36
|
-
|
|
82
|
+
documentElement.appendChild(subValueEl);
|
|
37
83
|
}
|
|
38
84
|
}
|
|
39
|
-
else if (
|
|
85
|
+
else if (Array.isArray(value)) {
|
|
40
86
|
xmlDoc = new xmldom_1.DOMParser().parseFromString('<array></array>', 'text/xml');
|
|
87
|
+
const documentElement = requireDocumentElement(xmlDoc);
|
|
41
88
|
for (const subValue of value) {
|
|
42
89
|
const subValueEl = xmlDoc.importNode(toXmlArg(subValue, false), true);
|
|
43
|
-
|
|
90
|
+
documentElement.appendChild(subValueEl);
|
|
44
91
|
}
|
|
45
92
|
}
|
|
46
|
-
else if (
|
|
93
|
+
else if (typeof value === 'boolean') {
|
|
47
94
|
xmlDoc = new xmldom_1.DOMParser().parseFromString(value ? '<true/>' : '<false/>', 'text/xml');
|
|
48
95
|
}
|
|
49
|
-
else if (
|
|
96
|
+
else if (Number.isInteger(value)) {
|
|
50
97
|
xmlDoc = new xmldom_1.DOMParser().parseFromString(`<integer>${value}</integer>`, 'text/xml');
|
|
51
98
|
}
|
|
52
|
-
else if (
|
|
99
|
+
else if (typeof value === 'number') {
|
|
53
100
|
xmlDoc = new xmldom_1.DOMParser().parseFromString(`<real>${value}</real>`, 'text/xml');
|
|
54
101
|
}
|
|
55
|
-
else if (
|
|
102
|
+
else if (typeof value === 'string') {
|
|
56
103
|
xmlDoc = new xmldom_1.DOMParser().parseFromString(`<string></string>`, 'text/xml');
|
|
57
104
|
const valueTextEl = xmlDoc.createTextNode(value);
|
|
58
|
-
xmlDoc.
|
|
105
|
+
requireDocumentElement(xmlDoc).appendChild(valueTextEl);
|
|
59
106
|
}
|
|
60
107
|
if (!xmlDoc) {
|
|
61
108
|
throw new TypeError(`The defaults value ${JSON.stringify(value)} cannot be written, ` +
|
|
62
109
|
`because it is not known how to handle its type`);
|
|
63
110
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
: xmlDoc.documentElement;
|
|
111
|
+
const documentElement = requireDocumentElement(xmlDoc);
|
|
112
|
+
return serialize ? new xmldom_1.XMLSerializer().serializeToString(documentElement) : documentElement;
|
|
67
113
|
}
|
|
68
114
|
/**
|
|
69
115
|
* Generates command line args for the `defaults`
|
|
@@ -80,16 +126,16 @@ function toXmlArg(value, serialize = true) {
|
|
|
80
126
|
*/
|
|
81
127
|
function generateDefaultsCommandArgs(valuesMap, replace = false) {
|
|
82
128
|
const resultArgs = [];
|
|
83
|
-
for (const [key, value] of
|
|
129
|
+
for (const [key, value] of Object.entries(valuesMap)) {
|
|
84
130
|
try {
|
|
85
|
-
if (!replace &&
|
|
131
|
+
if (!replace && (0, utils_1.isPlainObject)(value)) {
|
|
86
132
|
const dictArgs = [key, '-dict-add'];
|
|
87
|
-
for (const [subKey, subValue] of
|
|
133
|
+
for (const [subKey, subValue] of Object.entries(value)) {
|
|
88
134
|
dictArgs.push(subKey, toXmlArg(subValue));
|
|
89
135
|
}
|
|
90
136
|
resultArgs.push(dictArgs);
|
|
91
137
|
}
|
|
92
|
-
else if (!replace &&
|
|
138
|
+
else if (!replace && Array.isArray(value)) {
|
|
93
139
|
const arrayArgs = [key, '-array-add'];
|
|
94
140
|
for (const subValue of value) {
|
|
95
141
|
arrayArgs.push(toXmlArg(subValue));
|
|
@@ -111,53 +157,11 @@ function generateDefaultsCommandArgs(valuesMap, replace = false) {
|
|
|
111
157
|
}
|
|
112
158
|
return resultArgs;
|
|
113
159
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Reads the content of the given plist file using plutil command line tool
|
|
121
|
-
* and serializes it to a JSON representation
|
|
122
|
-
*
|
|
123
|
-
* @returns The serialized plist content
|
|
124
|
-
* @throws {Error} If there was an error during serialization
|
|
125
|
-
*/
|
|
126
|
-
async asJson() {
|
|
127
|
-
try {
|
|
128
|
-
const { stdout } = await (0, teen_process_1.exec)('plutil', ['-convert', 'json', '-o', '-', this.plist]);
|
|
129
|
-
return JSON.parse(stdout);
|
|
130
|
-
}
|
|
131
|
-
catch (e) {
|
|
132
|
-
throw new Error(`'${this.plist}' cannot be converted to JSON. Original error: ${e.stderr || e.message}`);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Updates the content of the given plist file.
|
|
137
|
-
* If the plist does not exist yet then it is going to be created.
|
|
138
|
-
*
|
|
139
|
-
* @param valuesMap Mapping of preference values to update.
|
|
140
|
-
* If any of item values are of dictionary type then only the first level dictionary gets
|
|
141
|
-
* updated. Everything below this level will be replaced. This is the known limitation
|
|
142
|
-
* of the `defaults` command line tool. A workaround for it would be to read the current
|
|
143
|
-
* preferences mapping first and merge it with this value.
|
|
144
|
-
* @throws {Error} If there was an error while updating the plist
|
|
145
|
-
*/
|
|
146
|
-
async update(valuesMap) {
|
|
147
|
-
if (!lodash_1.default.isPlainObject(valuesMap)) {
|
|
148
|
-
throw new TypeError(`plist values must be a map. '${valuesMap}' is given instead`);
|
|
149
|
-
}
|
|
150
|
-
if (lodash_1.default.isEmpty(valuesMap)) {
|
|
151
|
-
return;
|
|
152
|
-
}
|
|
153
|
-
const commandArgs = generateDefaultsCommandArgs(valuesMap);
|
|
154
|
-
try {
|
|
155
|
-
await bluebird_1.default.all(commandArgs.map((args) => (0, teen_process_1.exec)('defaults', ['write', this.plist, ...args])));
|
|
156
|
-
}
|
|
157
|
-
catch (e) {
|
|
158
|
-
throw new Error(`Could not write defaults into '${this.plist}'. Original error: ${e.stderr || e.message}`);
|
|
159
|
-
}
|
|
160
|
+
function requireDocumentElement(xmlDoc) {
|
|
161
|
+
const { documentElement } = xmlDoc;
|
|
162
|
+
if (!documentElement) {
|
|
163
|
+
throw new Error('Cannot parse XML document element');
|
|
160
164
|
}
|
|
165
|
+
return documentElement;
|
|
161
166
|
}
|
|
162
|
-
exports.NSUserDefaults = NSUserDefaults;
|
|
163
167
|
//# sourceMappingURL=defaults-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults-utils.js","sourceRoot":"","sources":["../../lib/defaults-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"defaults-utils.js","sourceRoot":"","sources":["../../lib/defaults-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applications.d.ts","sourceRoot":"","sources":["../../../lib/extensions/applications.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"applications.d.ts","sourceRoot":"","sources":["../../../lib/extensions/applications.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,aAAa,EAAE,iBAAiB,EAAE,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAEjF,KAAK,qBAAqB,GAAG,aAAa,GAAG,iBAAiB,CAAC;AAE/D;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,qBAAqB,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAExF;AAED;;;;;GAKG;AACH,wBAAsB,qCAAqC,CACzD,IAAI,EAAE,qBAAqB,EAC3B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,EAAE,CAAC,CAoCnB;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,qBAAqB,EAC3B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CAkBlB;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5F;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAC7B,IAAI,EAAE,qBAAqB,EAC3B,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,gBAAqB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAef;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/F;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,qBAAqB,EAC3B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CAElB;AAED;;;;;;GAMG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB3F"}
|
|
@@ -11,11 +11,10 @@ exports.launchApp = launchApp;
|
|
|
11
11
|
exports.terminateApp = terminateApp;
|
|
12
12
|
exports.isAppRunning = isAppRunning;
|
|
13
13
|
exports.scrubApp = scrubApp;
|
|
14
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
15
14
|
const node_path_1 = __importDefault(require("node:path"));
|
|
16
15
|
const support_1 = require("@appium/support");
|
|
17
|
-
const bluebird_1 = __importDefault(require("bluebird"));
|
|
18
16
|
const asyncbox_1 = require("asyncbox");
|
|
17
|
+
const utils_1 = require("../utils");
|
|
19
18
|
/**
|
|
20
19
|
* Install valid .app package on Simulator.
|
|
21
20
|
*
|
|
@@ -37,7 +36,7 @@ async function getUserInstalledBundleIdsByBundleName(bundleName) {
|
|
|
37
36
|
cwd: appsRoot,
|
|
38
37
|
absolute: true,
|
|
39
38
|
});
|
|
40
|
-
if (
|
|
39
|
+
if (infoPlists.length === 0) {
|
|
41
40
|
return [];
|
|
42
41
|
}
|
|
43
42
|
const bundleInfoPromises = [];
|
|
@@ -51,11 +50,11 @@ async function getUserInstalledBundleIdsByBundleName(bundleName) {
|
|
|
51
50
|
}
|
|
52
51
|
})());
|
|
53
52
|
}
|
|
54
|
-
const bundleInfos = (await
|
|
53
|
+
const bundleInfos = (await Promise.all(bundleInfoPromises)).filter(utils_1.isPlainObject);
|
|
55
54
|
const bundleIds = bundleInfos
|
|
56
55
|
.filter(({ CFBundleName }) => CFBundleName === bundleName)
|
|
57
56
|
.map(({ CFBundleIdentifier }) => CFBundleIdentifier);
|
|
58
|
-
if (
|
|
57
|
+
if (bundleIds.length === 0) {
|
|
59
58
|
return [];
|
|
60
59
|
}
|
|
61
60
|
this.log.debug(`The simulator has ${support_1.util.pluralize('bundle', bundleIds.length, true)} which ` +
|
|
@@ -150,13 +149,13 @@ async function scrubApp(bundleId) {
|
|
|
150
149
|
absolute: true,
|
|
151
150
|
});
|
|
152
151
|
this.log.info(`Found ${appFiles.length} ${bundleId} app ${support_1.util.pluralize('file', appFiles.length, false)} to scrub`);
|
|
153
|
-
if (
|
|
152
|
+
if (appFiles.length === 0) {
|
|
154
153
|
return;
|
|
155
154
|
}
|
|
156
155
|
try {
|
|
157
156
|
await this.terminateApp(bundleId);
|
|
158
157
|
}
|
|
159
158
|
catch { }
|
|
160
|
-
await
|
|
159
|
+
await Promise.all(appFiles.map((p) => support_1.fs.rimraf(p)));
|
|
161
160
|
}
|
|
162
161
|
//# sourceMappingURL=applications.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applications.js","sourceRoot":"","sources":["../../../lib/extensions/applications.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"applications.js","sourceRoot":"","sources":["../../../lib/extensions/applications.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"biometric.d.ts","sourceRoot":"","sources":["../../../lib/extensions/biometric.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"biometric.d.ts","sourceRoot":"","sources":["../../../lib/extensions/biometric.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAE,iBAAiB,EAAC,MAAM,UAAU,CAAC;AAG/D,KAAK,0BAA0B,GAAG,aAAa,GAAG,iBAAiB,CAAC;AAQpE;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,0BAA0B,GAAG,OAAO,CAAC,OAAO,CAAC,CAc5F;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,0BAA0B,EAChC,SAAS,GAAE,OAAc,GACxB,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,0BAA0B,EAChC,WAAW,GAAE,OAAc,EAC3B,aAAa,GAAE,MAAkB,GAChC,OAAO,CAAC,IAAI,CAAC,CAQf;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO/D"}
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.isBiometricEnrolled = isBiometricEnrolled;
|
|
7
4
|
exports.enrollBiometric = enrollBiometric;
|
|
8
5
|
exports.sendBiometricMatch = sendBiometricMatch;
|
|
9
6
|
exports.toBiometricDomainComponent = toBiometricDomainComponent;
|
|
10
|
-
const
|
|
7
|
+
const utils_1 = require("../utils");
|
|
11
8
|
const ENROLLMENT_NOTIFICATION_RECEIVER = 'com.apple.BiometricKit.enrollmentChanged';
|
|
12
9
|
const BIOMETRICS = {
|
|
13
10
|
touchId: 'fingerTouch',
|
|
@@ -22,7 +19,7 @@ async function isBiometricEnrolled() {
|
|
|
22
19
|
'-g',
|
|
23
20
|
ENROLLMENT_NOTIFICATION_RECEIVER,
|
|
24
21
|
]);
|
|
25
|
-
const match = new RegExp(`${
|
|
22
|
+
const match = new RegExp(`${(0, utils_1.escapeRegExp)(ENROLLMENT_NOTIFICATION_RECEIVER)}\\s+([01])`).exec(stdout);
|
|
26
23
|
if (!match) {
|
|
27
24
|
throw new Error(`Cannot parse biometric enrollment state from '${stdout}'`);
|
|
28
25
|
}
|
|
@@ -65,7 +62,7 @@ async function sendBiometricMatch(shouldMatch = true, biometricName = 'touchId')
|
|
|
65
62
|
*/
|
|
66
63
|
function toBiometricDomainComponent(name) {
|
|
67
64
|
if (!BIOMETRICS[name]) {
|
|
68
|
-
throw new Error(`'${name}' is not a valid biometric. Use one of: ${JSON.stringify(
|
|
65
|
+
throw new Error(`'${name}' is not a valid biometric. Use one of: ${JSON.stringify(Object.keys(BIOMETRICS))}`);
|
|
69
66
|
}
|
|
70
67
|
return BIOMETRICS[name];
|
|
71
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"biometric.js","sourceRoot":"","sources":["../../../lib/extensions/biometric.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"biometric.js","sourceRoot":"","sources":["../../../lib/extensions/biometric.ts"],"names":[],"mappings":";;AAcA,kDAcC;AAKD,0CAmBC;AASD,gDAYC;AAMD,gEAOC;AArFD,oCAAsC;AAItC,MAAM,gCAAgC,GAAG,0CAA0C,CAAC;AACpF,MAAM,UAAU,GAA2B;IACzC,OAAO,EAAE,aAAa;IACtB,MAAM,EAAE,OAAO;CAChB,CAAC;AAEF;;GAEG;AACI,KAAK,UAAU,mBAAmB;IACvC,MAAM,EAAC,MAAM,EAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QAC9C,YAAY;QACZ,IAAI;QACJ,gCAAgC;KACjC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,IAAA,oBAAY,EAAC,gCAAgC,CAAC,YAAY,CAAC,CAAC,IAAI,CAC1F,MAAM,CACP,CAAC;IACF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,iDAAiD,MAAM,GAAG,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,wCAAwC,IAAI,CAAC,IAAI,eAAe,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1F,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AAC1B,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,eAAe,CAEnC,YAAqB,IAAI;IAEzB,IAAI,CAAC,GAAG,CAAC,KAAK,CACZ,wCAAwC,IAAI,CAAC,IAAI,kBAAkB,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,GAAG,CACzG,CAAC;IACF,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QAC7B,YAAY;QACZ,IAAI;QACJ,gCAAgC;QAChC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;KACtB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,YAAY,EAAE,IAAI,EAAE,gCAAgC,CAAC,CAAC,CAAC;IACvF,IAAI,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CACb,2CAA2C,IAAI,CAAC,IAAI,kBAAkB,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,GAAG,CAC5G,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,kBAAkB,CAEtC,cAAuB,IAAI,EAC3B,gBAAwB,SAAS;IAEjC,MAAM,eAAe,GAAG,0BAA0B,CAAC,aAAa,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,8BAA8B,eAAe,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;IAC/F,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7D,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,qBAAqB,MAAM,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,IAAI,aAAa,aAAa;QACjG,OAAO,IAAI,CAAC,IAAI,YAAY,CAC/B,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAgB,0BAA0B,CAAC,IAAY;IACrD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,IAAI,IAAI,2CAA2C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAC7F,CAAC;IACJ,CAAC;IACD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keychain.d.ts","sourceRoot":"","sources":["../../../lib/extensions/keychain.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"keychain.d.ts","sourceRoot":"","sources":["../../../lib/extensions/keychain.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,aAAa,EAAE,qBAAqB,EAAC,MAAM,UAAU,CAAC;AAEnE,KAAK,yBAAyB,GAAG,aAAa,GAAG,qBAAqB,CAAC;AAEvE;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,OAAO,CAAC,CAmCvF;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,yBAAyB,EAC/B,eAAe,GAAE,MAAM,EAAE,GAAG,MAAW,GACtC,OAAO,CAAC,OAAO,CAAC,CAwDlB;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAcnF"}
|
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.backupKeychains = backupKeychains;
|
|
7
7
|
exports.restoreKeychains = restoreKeychains;
|
|
8
8
|
exports.clearKeychains = clearKeychains;
|
|
9
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
10
9
|
const node_path_1 = __importDefault(require("node:path"));
|
|
11
10
|
const support_1 = require("@appium/support");
|
|
12
11
|
const teen_process_1 = require("teen_process");
|
|
@@ -20,12 +19,13 @@ const teen_process_1 = require("teen_process");
|
|
|
20
19
|
*/
|
|
21
20
|
async function backupKeychains() {
|
|
22
21
|
const resetBackupPath = async (newPath) => {
|
|
23
|
-
if (
|
|
22
|
+
if (typeof this._keychainsBackupPath === 'string' &&
|
|
23
|
+
(await support_1.fs.exists(this._keychainsBackupPath))) {
|
|
24
24
|
await support_1.fs.unlink(this._keychainsBackupPath);
|
|
25
25
|
}
|
|
26
26
|
this._keychainsBackupPath = newPath;
|
|
27
27
|
};
|
|
28
|
-
if (!(await support_1.fs.exists(this.keychainPath)) ||
|
|
28
|
+
if (!(await support_1.fs.exists(this.keychainPath)) || (await support_1.fs.readdir(this.keychainPath)).length === 0) {
|
|
29
29
|
this.log.info(`There is nothing to backup from '${this.keychainPath}'`);
|
|
30
30
|
await resetBackupPath(null);
|
|
31
31
|
return false;
|
|
@@ -61,11 +61,12 @@ async function backupKeychains() {
|
|
|
61
61
|
* @throws {Error} If there is no keychains backup available for restore.
|
|
62
62
|
*/
|
|
63
63
|
async function restoreKeychains(excludePatterns = []) {
|
|
64
|
-
if (
|
|
64
|
+
if (typeof this._keychainsBackupPath !== 'string' ||
|
|
65
|
+
!(await support_1.fs.exists(this._keychainsBackupPath))) {
|
|
65
66
|
throw new Error(`The keychains backup archive does not exist. ` + `Are you sure it was created before?`);
|
|
66
67
|
}
|
|
67
68
|
let patterns = [];
|
|
68
|
-
if (
|
|
69
|
+
if (typeof excludePatterns === 'string') {
|
|
69
70
|
patterns = excludePatterns.split(',').map((x) => x.trim());
|
|
70
71
|
}
|
|
71
72
|
else {
|
|
@@ -90,7 +91,7 @@ async function restoreKeychains(excludePatterns = []) {
|
|
|
90
91
|
const unzipArgs = [
|
|
91
92
|
'-o',
|
|
92
93
|
backupPath,
|
|
93
|
-
...
|
|
94
|
+
...patterns.flatMap((x) => ['-x', x]),
|
|
94
95
|
'-d',
|
|
95
96
|
node_path_1.default.dirname(this.keychainPath),
|
|
96
97
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keychain.js","sourceRoot":"","sources":["../../../lib/extensions/keychain.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"keychain.js","sourceRoot":"","sources":["../../../lib/extensions/keychain.ts"],"names":[],"mappings":";;;;;AAeA,0CAmCC;AAcD,4CA2DC;AAQD,wCAcC;AAjJD,0DAA6B;AAC7B,6CAA0D;AAC1D,+CAAkC;AAKlC;;;;;;;GAOG;AACI,KAAK,UAAU,eAAe;IACnC,MAAM,eAAe,GAAG,KAAK,EAAE,OAAkC,EAAE,EAAE;QACnE,IACE,OAAO,IAAI,CAAC,oBAAoB,KAAK,QAAQ;YAC7C,CAAC,MAAM,YAAE,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAC5C,CAAC;YACD,MAAM,YAAE,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC;IACtC,CAAC,CAAC;IAEF,IAAI,CAAC,CAAC,MAAM,YAAE,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,MAAM,YAAE,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oCAAoC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACxE,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;QAC5B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,iBAAO,CAAC,IAAI,CAAC;QACjC,MAAM,EAAE,oBAAoB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC;aAClE,QAAQ,CAAC,EAAE,CAAC;aACZ,SAAS,CAAC,CAAC,CAAC,EAAE;QACjB,MAAM,EAAE,MAAM;KACf,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,mBAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,mBAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAClF,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,mCAAmC,cAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC;IAC9F,IAAI,CAAC;QACH,MAAM,IAAA,mBAAI,EAAC,KAAK,EAAE,OAAO,EAAE,EAAC,GAAG,EAAE,mBAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACb,wCAAwC,IAAI,CAAC,YAAY,KAAK;YAC5D,mBAAmB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAC/D,CAAC;IACJ,CAAC;IACD,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;IAC/B,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,gBAAgB,CAEpC,kBAAqC,EAAE;IAEvC,IACE,OAAO,IAAI,CAAC,oBAAoB,KAAK,QAAQ;QAC7C,CAAC,CAAC,MAAM,YAAE,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAC7C,CAAC;QACD,MAAM,IAAI,KAAK,CACb,+CAA+C,GAAG,qCAAqC,CACxF,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,GAAa,EAAE,CAAC;IAC5B,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;QACxC,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,eAAe,CAAC;IAC7B,CAAC;IACD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;IAC/C,IAAI,SAA6B,CAAC;IAClC,IAAI,eAAe,EAAE,CAAC;QACpB,SAAS,GAAG,mBAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,oBAAoB,EAAE,EAAE,2BAA2B,CAAC,CAAC;QACzF,IAAI,CAAC,CAAC,MAAM,YAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,mCAAmC,SAAS,kBAAkB,CAAC,CAAC;QAClF,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,CAAC;QACH,MAAM,YAAE,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnC,MAAM,IAAA,gBAAM,EAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAChC,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC;QAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,SAAS,GAAG;YAChB,IAAI;YACJ,UAAU;YACV,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACrC,IAAI;YACJ,mBAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;SAChC,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,6BAA6B,cAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC;QAC5F,IAAI,CAAC;YACH,MAAM,IAAA,mBAAI,EAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CACb,kCAAkC,UAAU,KAAK;gBAC/C,mBAAmB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAC/D,CAAC;QACJ,CAAC;QACD,MAAM,YAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC5B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;IACnC,CAAC;YAAS,CAAC;QACT,IAAI,eAAe,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,cAAc;IAClC,MAAM,SAAS,GAAG,mBAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,oBAAoB,EAAE,EAAE,2BAA2B,CAAC,CAAC;IAC/F,IAAI,CAAC,CAAC,MAAM,YAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,mCAAmC,SAAS,kBAAkB,CAAC,CAAC;IAClF,CAAC;IACD,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IACnE,IAAI,CAAC;QACH,IAAI,MAAM,YAAE,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YACvC,MAAM,YAAE,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACnC,MAAM,IAAA,gBAAM,EAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IACnE,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../lib/extensions/permissions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../lib/extensions/permissions.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,aAAa,EAAE,sBAAsB,EAAC,MAAM,UAAU,CAAC;AACpE,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAEhD,KAAK,+BAA+B,GAAG,aAAa,GAAG,sBAAsB,CAAC;AAkC9E;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,+BAA+B,EACrC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,+BAA+B,EACrC,QAAQ,EAAE,MAAM,EAChB,kBAAkB,EAAE,YAAY,GAC/B,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,+BAA+B,EACrC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,CAIjB"}
|