appium-android-driver 9.6.1 → 9.6.3
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 +19 -0
- package/build/lib/commands/log.d.ts.map +1 -1
- package/build/lib/commands/log.js +2 -2
- package/build/lib/commands/log.js.map +1 -1
- package/build/lib/commands/resources.d.ts +5 -0
- package/build/lib/commands/resources.d.ts.map +1 -1
- package/build/lib/commands/resources.js +48 -6
- package/build/lib/commands/resources.js.map +1 -1
- package/lib/commands/log.js +2 -4
- package/lib/commands/resources.js +51 -6
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
## [9.6.3](https://github.com/appium/appium-android-driver/compare/v9.6.2...v9.6.3) (2024-06-07)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* Add proper timestamps to server logs ([#938](https://github.com/appium/appium-android-driver/issues/938)) ([428a6b8](https://github.com/appium/appium-android-driver/commit/428a6b8cac0655b1fc5b40d65e50191b0cd3583b))
|
|
7
|
+
|
|
8
|
+
## [9.6.2](https://github.com/appium/appium-android-driver/compare/v9.6.1...v9.6.2) (2024-05-16)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* typo ([a2260ca](https://github.com/appium/appium-android-driver/commit/a2260ca96bd112176b4093b804481736d7f22741))
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Miscellaneous Chores
|
|
17
|
+
|
|
18
|
+
* Improve the error message shown if an unsupported device locale is provided ([#937](https://github.com/appium/appium-android-driver/issues/937)) ([757a14a](https://github.com/appium/appium-android-driver/commit/757a14a653e22591eb0ba4f32329a95acd401a19))
|
|
19
|
+
|
|
1
20
|
## [9.6.1](https://github.com/appium/appium-android-driver/compare/v9.6.0...v9.6.1) (2024-05-16)
|
|
2
21
|
|
|
3
22
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../../lib/commands/log.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../../lib/commands/log.js"],"names":[],"mappings":"AAmDA;;;;;;;;;;GAUG;AACH,mFAFa,QAAQ,IAAI,CAAC,CAwDzB;;IA3BK,+FAIC;;AAyBP;;;;;;GAMG;AACH,kFAFa,QAAQ,IAAI,CAAC,CAczB;AAED;;;GAGG;AACH,sEAFa,QAAQ,MAAM,EAAE,CAAC,CAc7B;AAED;;;;GAIG;AACH,yEAHW,MAAM,GACJ,QAAQ,GAAG,CAAC,CAUxB;;;;QA3JW,mEAAuD;;;;;QASvD;;;;aAIP;;;;;;QASO;;;;YAUP;;;;kBAwJQ,OAAO,YAAY,EAAE,GAAG"}
|
|
@@ -41,10 +41,10 @@ exports.supportedLogTypes = {
|
|
|
41
41
|
*/
|
|
42
42
|
getter: (self) => {
|
|
43
43
|
self.ensureFeatureEnabled(GET_SERVER_LOGS_FEATURE);
|
|
44
|
-
const timestamp = Date.now();
|
|
45
44
|
return self.log
|
|
46
45
|
.unwrap()
|
|
47
|
-
.record.map((x) => toLogRecord(
|
|
46
|
+
.record.map((x) => toLogRecord(
|
|
47
|
+
/** @type {any} */ (x).timestamp ?? Date.now(), 'ALL', lodash_1.default.isEmpty(x.prefix) ? x.message : `[${x.prefix}] ${x.message}`));
|
|
48
48
|
},
|
|
49
49
|
},
|
|
50
50
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.js","sourceRoot":"","sources":["../../../lib/commands/log.js"],"names":[],"mappings":";;;;;;AAAA,0CAAqE;AACrE,oDAAuB;AACvB,sDAAyB;AACzB,4CAA2B;AAE3B,MAAM,uBAAuB,GAAG,iBAAiB,CAAC;AAErC,QAAA,iBAAiB,GAAG;IAC/B,MAAM,EAAE;QACN,WAAW,EAAE,oEAAoE;QACjF;;;;WAIG;QACH,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE;KAChE;IACD,SAAS,EAAE;QACT,WAAW,EAAE,uDAAuD;QACpE;;;;WAIG;QACH,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACrB,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;YAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,OAAO,MAAM,CAAC,KAAK,CAAC,iBAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3E,CAAC;KACF;IACD,MAAM,EAAE;QACN,WAAW,EAAE,oBAAoB;QACjC;;;;WAIG;QACH,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACf,IAAI,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,CAAC;YACnD,
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../../../lib/commands/log.js"],"names":[],"mappings":";;;;;;AAAA,0CAAqE;AACrE,oDAAuB;AACvB,sDAAyB;AACzB,4CAA2B;AAE3B,MAAM,uBAAuB,GAAG,iBAAiB,CAAC;AAErC,QAAA,iBAAiB,GAAG;IAC/B,MAAM,EAAE;QACN,WAAW,EAAE,oEAAoE;QACjF;;;;WAIG;QACH,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE;KAChE;IACD,SAAS,EAAE;QACT,WAAW,EAAE,uDAAuD;QACpE;;;;WAIG;QACH,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACrB,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;YAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,OAAO,MAAM,CAAC,KAAK,CAAC,iBAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3E,CAAC;KACF;IACD,MAAM,EAAE;QACN,WAAW,EAAE,oBAAoB;QACjC;;;;WAIG;QACH,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACf,IAAI,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,CAAC;YACnD,OAAO,IAAI,CAAC,GAAG;iBACZ,MAAM,EAAE;iBACR,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW;YAC1B,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,EAC9C,KAAK,EACL,gBAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,EAAE,CAC/D,CACF,CAAC;QACN,CAAC;KACF;CACF,CAAC;AAEF;;;;;;;;;;GAUG;AACI,KAAK,UAAU,wBAAwB;IAC5C,MAAM,MAAM,GAAG,mDAAmD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjF,MAAM,QAAQ,GAAG,kBAAkB,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5E,IAAI,CAAC,gBAAC,CAAC,OAAO,CAAC,MAAM,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAC5D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,qEAAqE,QAAQ,EAAE,CAAC,CAAC;QAChG,OAAO;IACT,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,oDAAoD;QAClD,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,QAAQ,EAAE,CACvD,CAAC;IACF,yDAAyD;IACzD,MAAM,GAAG,GAAG,IAAI,YAAS,CAAC,MAAM,CAAC;QAC/B,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IACH,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE;QAC/B,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,QAAQ,GAAG,gBAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;gBACxD,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa;gBAC/B,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACnC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gEAAgE,QAAQ,EAAE,CAAC,CAAC;QAC7F,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC5E,CAAC;QAED,IAAI,gBAAC,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,wBAAwB,GAAG,CAAC,SAAS,EAAE,EAAE;gBAC5C,IAAI,EAAE,EAAE,UAAU,KAAK,YAAS,CAAC,IAAI,EAAE,CAAC;oBACtC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAE1D,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YAC9B,IAAI,CAAC,gBAAC,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC;gBAC9C,IAAI,CAAC;oBACH,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;gBAC/D,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC,CAAA,CAAC;gBAChB,IAAI,CAAC,wBAAwB,GAAG,SAAS,CAAC;YAC5C,CAAC;YAED,IAAI,QAAQ,GAAG,uCAAuC,CAAC;YACvD,IAAI,CAAC,gBAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,QAAQ,IAAI,UAAU,IAAI,GAAG,CAAC;YAChC,CAAC;YACD,IAAI,CAAC,gBAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvB,QAAQ,IAAI,YAAY,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC;YAC/C,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,MAAM,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,+CAA+C,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACpG,CAAC;AAtDD,4DAsDC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,uBAAuB;IAC3C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5E,MAAM,MAAM,GAAG,mDAAmD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjF,IAAI,gBAAC,CAAC,OAAO,CAAC,MAAM,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAC3D,OAAO;IACT,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,KAAK,CACZ,oDAAoD;QAClD,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,QAAQ,EAAE,CACvD,CAAC;IACF,MAAM,MAAM,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;AAChD,CAAC;AAZD,0DAYC;AAED;;;GAGG;AACI,KAAK,UAAU,WAAW;IAC/B,qCAAqC;IACrC,MAAM,cAAc,GAAG,MAAM,mBAAU,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzE,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;QACxB,MAAM,WAAW,GAAG,uBAAuB,CAAC,CAC1C,MAAM,yDAAyD,CAAC,CAC9D,IAAI,CAAC,YAAY,CAClB,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CACvC,CAAC;QACF,OAAO,CAAC,GAAG,cAAc,EAAE,GAAG,WAAW,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAZD,kCAYC;AAED;;;;GAIG;AACI,KAAK,UAAU,MAAM,CAAC,OAAO;IAClC,IAAI,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAC,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7E,OAAO,MAAM,yDAAyD,CAAC,CACrE,IAAI,CAAC,YAAY,CAClB,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC,CAAC;IACrD,CAAC;IACD,qCAAqC;IACrC,OAAO,MAAM,mBAAU,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC/D,CAAC;AARD,wBAQC;AAED,2BAA2B;AAE3B;;;GAGG;AACH,MAAM,kBAAkB,GAAG,CAAC,SAAS,EAAE,EAAE,CACvC,GAAG,mCAA0B,YAAY,SAAS,uBAAuB,CAAC;AAE5E;;;;;;GAMG;AACH,SAAS,WAAW,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO;IAC5C,OAAO;QACL,SAAS;QACT,KAAK;QACL,OAAO;KACR,CAAC;AACJ,CAAC;AAED,aAAa;AAEb;;GAEG"}
|
|
@@ -12,5 +12,10 @@ export function getStrings(this: import("../driver").AndroidDriver, language?: s
|
|
|
12
12
|
* @returns {Promise<void>}}
|
|
13
13
|
*/
|
|
14
14
|
export function ensureDeviceLocale(this: import("../driver").AndroidDriver, language: string, country: string, script?: string | undefined): Promise<void>;
|
|
15
|
+
export type Locale = {
|
|
16
|
+
language: string;
|
|
17
|
+
country: string;
|
|
18
|
+
script?: string | undefined;
|
|
19
|
+
};
|
|
15
20
|
export type ADB = import('appium-adb').ADB;
|
|
16
21
|
//# sourceMappingURL=resources.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../../lib/commands/resources.js"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,2GAFa,QAAQ,OAAO,eAAe,EAAE,YAAY,CAAC,CAqBzD;AAED;;;;;;GAMG;AACH,sFALW,MAAM,WACN,MAAM,gCAEJ,QAAQ,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../../lib/commands/resources.js"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,2GAFa,QAAQ,OAAO,eAAe,EAAE,YAAY,CAAC,CAqBzD;AAED;;;;;;GAMG;AACH,sFALW,MAAM,WACN,MAAM,gCAEJ,QAAQ,IAAI,CAAC,CAwBzB;;cA0Ca,MAAM;aACN,MAAM;;;kBAgCP,OAAO,YAAY,EAAE,GAAG"}
|
|
@@ -38,12 +38,27 @@ exports.getStrings = getStrings;
|
|
|
38
38
|
* @returns {Promise<void>}}
|
|
39
39
|
*/
|
|
40
40
|
async function ensureDeviceLocale(language, country, script) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
41
|
+
try {
|
|
42
|
+
await this.settingsApp.setDeviceLocale(language, country, script);
|
|
43
|
+
if (!(await this.adb.ensureCurrentLocale(language, country, script))) {
|
|
44
|
+
throw new Error('Locale verification has failed');
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
catch (e) {
|
|
48
|
+
this.log.debug(e.stack);
|
|
49
|
+
let errMsg = `Cannot set the device locale to '${toLocaleAbbr({ language, country, script })}'.`;
|
|
50
|
+
/** @type {string[]} */
|
|
51
|
+
let suggestions = [];
|
|
52
|
+
try {
|
|
53
|
+
suggestions = (await fetchLocaleSuggestions.bind(this)(language, country)).map(toLocaleAbbr);
|
|
54
|
+
}
|
|
55
|
+
catch (e1) {
|
|
56
|
+
this.log.debug(e1.stack);
|
|
57
|
+
}
|
|
58
|
+
if (!lodash_1.default.isEmpty(suggestions)) {
|
|
59
|
+
errMsg += ` You may want to apply one of the following locales instead: ${suggestions}`;
|
|
60
|
+
}
|
|
61
|
+
throw new Error(errMsg);
|
|
47
62
|
}
|
|
48
63
|
}
|
|
49
64
|
exports.ensureDeviceLocale = ensureDeviceLocale;
|
|
@@ -80,6 +95,33 @@ async function extractStringsFromResources(language, opts = null) {
|
|
|
80
95
|
}
|
|
81
96
|
}
|
|
82
97
|
}
|
|
98
|
+
/**
|
|
99
|
+
* @typedef {Object} Locale
|
|
100
|
+
* @property {string} language
|
|
101
|
+
* @property {string} country
|
|
102
|
+
* @property {string} [script]
|
|
103
|
+
*/
|
|
104
|
+
/**
|
|
105
|
+
* @this {import('../driver').AndroidDriver}
|
|
106
|
+
* @param {string} [language]
|
|
107
|
+
* @param {string} [country]
|
|
108
|
+
* @returns {Promise<Locale[]>}
|
|
109
|
+
*/
|
|
110
|
+
async function fetchLocaleSuggestions(language, country) {
|
|
111
|
+
const supportedLocales = await this.settingsApp.listSupportedLocales();
|
|
112
|
+
const suggestedLocales = supportedLocales
|
|
113
|
+
.filter((locale) => lodash_1.default.toLower(language) === lodash_1.default.toLower(locale.language)
|
|
114
|
+
|| lodash_1.default.toLower(country) === lodash_1.default.toLower(locale.country));
|
|
115
|
+
return lodash_1.default.isEmpty(suggestedLocales) ? supportedLocales : suggestedLocales;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
*
|
|
119
|
+
* @param {Locale} locale
|
|
120
|
+
* @returns {string}
|
|
121
|
+
*/
|
|
122
|
+
function toLocaleAbbr({ language, country, script }) {
|
|
123
|
+
return `${language}_${country}${script ? ('-' + script) : ''}`;
|
|
124
|
+
}
|
|
83
125
|
// #endregion
|
|
84
126
|
/**
|
|
85
127
|
* @typedef {import('appium-adb').ADB} ADB
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../lib/commands/resources.js"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AACvB,6CAA4C;AAE5C;;;;GAIG;AACI,KAAK,UAAU,UAAU,CAAC,QAAQ,GAAG,IAAI;IAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QAC9C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iDAAiD,QAAQ,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,0DAA0D;IAC1D,4BAA4B;IAC5B,4DAA4D;IAC5D,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,EAAE;QACvC,mDAAmD;QACnD,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,gBAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,CAAC,GAAG,gBAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,OAAO,oBAAoB,CAAC,MAAM,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtF,CAAC;AAnBD,gCAmBC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM;IAChE,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../lib/commands/resources.js"],"names":[],"mappings":"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"}
|
package/lib/commands/log.js
CHANGED
|
@@ -37,12 +37,10 @@ export const supportedLogTypes = {
|
|
|
37
37
|
*/
|
|
38
38
|
getter: (self) => {
|
|
39
39
|
self.ensureFeatureEnabled(GET_SERVER_LOGS_FEATURE);
|
|
40
|
-
const timestamp = Date.now();
|
|
41
40
|
return self.log
|
|
42
41
|
.unwrap()
|
|
43
|
-
.record.map((x) =>
|
|
44
|
-
|
|
45
|
-
timestamp,
|
|
42
|
+
.record.map((x) => toLogRecord(
|
|
43
|
+
/** @type {any} */ (x).timestamp ?? Date.now(),
|
|
46
44
|
'ALL',
|
|
47
45
|
_.isEmpty(x.prefix) ? x.message : `[${x.prefix}] ${x.message}`,
|
|
48
46
|
),
|
|
@@ -35,13 +35,26 @@ export async function getStrings(language = null) {
|
|
|
35
35
|
* @returns {Promise<void>}}
|
|
36
36
|
*/
|
|
37
37
|
export async function ensureDeviceLocale(language, country, script) {
|
|
38
|
-
|
|
38
|
+
try {
|
|
39
|
+
await this.settingsApp.setDeviceLocale(language, country, script);
|
|
39
40
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
if (!(await this.adb.ensureCurrentLocale(language, country, script))) {
|
|
42
|
+
throw new Error('Locale verification has failed');
|
|
43
|
+
}
|
|
44
|
+
} catch (e) {
|
|
45
|
+
this.log.debug(e.stack);
|
|
46
|
+
let errMsg = `Cannot set the device locale to '${toLocaleAbbr({language, country, script})}'.`;
|
|
47
|
+
/** @type {string[]} */
|
|
48
|
+
let suggestions = [];
|
|
49
|
+
try {
|
|
50
|
+
suggestions = (await fetchLocaleSuggestions.bind(this)(language, country)).map(toLocaleAbbr);
|
|
51
|
+
} catch (e1) {
|
|
52
|
+
this.log.debug(e1.stack);
|
|
53
|
+
}
|
|
54
|
+
if (!_.isEmpty(suggestions)) {
|
|
55
|
+
errMsg += ` You may want to apply one of the following locales instead: ${suggestions}`;
|
|
56
|
+
}
|
|
57
|
+
throw new Error(errMsg);
|
|
45
58
|
}
|
|
46
59
|
}
|
|
47
60
|
|
|
@@ -83,6 +96,38 @@ async function extractStringsFromResources(language, opts = null) {
|
|
|
83
96
|
}
|
|
84
97
|
}
|
|
85
98
|
|
|
99
|
+
/**
|
|
100
|
+
* @typedef {Object} Locale
|
|
101
|
+
* @property {string} language
|
|
102
|
+
* @property {string} country
|
|
103
|
+
* @property {string} [script]
|
|
104
|
+
*/
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* @this {import('../driver').AndroidDriver}
|
|
108
|
+
* @param {string} [language]
|
|
109
|
+
* @param {string} [country]
|
|
110
|
+
* @returns {Promise<Locale[]>}
|
|
111
|
+
*/
|
|
112
|
+
async function fetchLocaleSuggestions(language, country) {
|
|
113
|
+
const supportedLocales = await this.settingsApp.listSupportedLocales();
|
|
114
|
+
const suggestedLocales = supportedLocales
|
|
115
|
+
.filter((locale) =>
|
|
116
|
+
_.toLower(language) === _.toLower(locale.language)
|
|
117
|
+
|| _.toLower(country) === _.toLower(locale.country)
|
|
118
|
+
);
|
|
119
|
+
return _.isEmpty(suggestedLocales) ? supportedLocales : suggestedLocales;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
*
|
|
124
|
+
* @param {Locale} locale
|
|
125
|
+
* @returns {string}
|
|
126
|
+
*/
|
|
127
|
+
function toLocaleAbbr({language, country, script}) {
|
|
128
|
+
return `${language}_${country}${script ? ('-' + script) : ''}`;
|
|
129
|
+
}
|
|
130
|
+
|
|
86
131
|
// #endregion
|
|
87
132
|
|
|
88
133
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "appium-android-driver",
|
|
3
|
-
"version": "9.6.
|
|
3
|
+
"version": "9.6.3",
|
|
4
4
|
"description": "Android UiAutomator and Chrome support for Appium",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"appium",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"asyncbox": "^3.0.0",
|
|
56
56
|
"axios": "^1.x",
|
|
57
57
|
"bluebird": "^3.4.7",
|
|
58
|
-
"io.appium.settings": "^5.
|
|
58
|
+
"io.appium.settings": "^5.9.1",
|
|
59
59
|
"lodash": "^4.17.4",
|
|
60
60
|
"lru-cache": "^10.0.1",
|
|
61
61
|
"moment": "^2.24.0",
|