appium-remote-debugger 11.5.6 → 11.5.8
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/mixins/connect.d.ts +27 -32
- package/build/lib/mixins/connect.d.ts.map +1 -1
- package/build/lib/mixins/connect.js +64 -30
- package/build/lib/mixins/connect.js.map +1 -1
- package/build/lib/mixins/cookies.d.ts +4 -3
- package/build/lib/mixins/cookies.d.ts.map +1 -1
- package/build/lib/mixins/cookies.js +6 -3
- package/build/lib/mixins/cookies.js.map +1 -1
- package/build/lib/mixins/events.d.ts +3 -2
- package/build/lib/mixins/events.d.ts.map +1 -1
- package/build/lib/mixins/events.js +5 -2
- package/build/lib/mixins/events.js.map +1 -1
- package/build/lib/mixins/execute.d.ts +7 -4
- package/build/lib/mixins/execute.d.ts.map +1 -1
- package/build/lib/mixins/execute.js +8 -3
- package/build/lib/mixins/execute.js.map +1 -1
- package/build/lib/mixins/message-handlers.d.ts +21 -11
- package/build/lib/mixins/message-handlers.d.ts.map +1 -1
- package/build/lib/mixins/message-handlers.js +49 -10
- package/build/lib/mixins/message-handlers.js.map +1 -1
- package/build/lib/mixins/misc.d.ts +10 -9
- package/build/lib/mixins/misc.d.ts.map +1 -1
- package/build/lib/mixins/misc.js +12 -9
- package/build/lib/mixins/misc.js.map +1 -1
- package/build/lib/mixins/navigate.d.ts +10 -8
- package/build/lib/mixins/navigate.d.ts.map +1 -1
- package/build/lib/mixins/navigate.js +10 -6
- package/build/lib/mixins/navigate.js.map +1 -1
- package/build/lib/mixins/screenshot.d.ts +2 -1
- package/build/lib/mixins/screenshot.d.ts.map +1 -1
- package/build/lib/mixins/screenshot.js +4 -1
- package/build/lib/mixins/screenshot.js.map +1 -1
- package/build/lib/remote-debugger.d.ts +4 -4
- package/build/lib/remote-debugger.d.ts.map +1 -1
- package/build/lib/types.d.ts +34 -0
- package/build/lib/types.d.ts.map +1 -0
- package/build/lib/types.js +3 -0
- package/build/lib/types.js.map +1 -0
- package/build/lib/utils.d.ts +25 -52
- package/build/lib/utils.d.ts.map +1 -1
- package/build/lib/utils.js +31 -113
- package/build/lib/utils.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/lib/mixins/connect.js +71 -32
- package/lib/mixins/cookies.js +7 -3
- package/lib/mixins/events.js +6 -2
- package/lib/mixins/execute.js +9 -3
- package/lib/mixins/message-handlers.js +51 -11
- package/lib/mixins/misc.js +13 -9
- package/lib/mixins/navigate.js +11 -6
- package/lib/mixins/screenshot.js +5 -1
- package/lib/remote-debugger.js +2 -2
- package/lib/types.ts +39 -0
- package/lib/utils.js +30 -122
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../../lib/mixins/screenshot.js"],"names":[],"mappings":";;AAOA,8CAoBC;AA3BD;;;;;;GAMG;AACI,KAAK,UAAU,iBAAiB,CAAC,IAAI,GAAG,EAAE;IAC/C,MAAM,EAAC,IAAI,GAAG,IAAI,EAAE,gBAAgB,GAAG,UAAU,EAAC,GAAG,IAAI,CAAC;IAC1D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAEvC,MAAM,KAAK,GAAG,IAAI,IAAI,2CAA2C,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CACvF,gBAAgB,EAChB,CAAC,2EAA2E,EAAE,EAAE,CAAC,CAClF,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE;QACvE,GAAG,KAAK;QACR,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,gBAAgB;KACjB,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;AAClE,CAAC;AAED;;;;GAIG"}
|
|
1
|
+
{"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../../lib/mixins/screenshot.js"],"names":[],"mappings":";;AAOA,8CAoBC;AA3BD;;;;;;GAMG;AACI,KAAK,UAAU,iBAAiB,CAAC,IAAI,GAAG,EAAE;IAC/C,MAAM,EAAC,IAAI,GAAG,IAAI,EAAE,gBAAgB,GAAG,UAAU,EAAC,GAAG,IAAI,CAAC;IAC1D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAEvC,MAAM,KAAK,GAAG,IAAI,IAAI,2CAA2C,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CACvF,gBAAgB,EAChB,CAAC,2EAA2E,EAAE,EAAE,CAAC,CAClF,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE;QACvE,GAAG,KAAK;QACR,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,gBAAgB;KACjB,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;AAClE,CAAC;AAED;;;;GAIG;AAEH;;GAEG"}
|
|
@@ -13,10 +13,10 @@ export class RemoteDebugger extends EventEmitter<[never]> {
|
|
|
13
13
|
constructor(opts?: RemoteDebuggerOptions);
|
|
14
14
|
/** @type {string[]|undefined} */
|
|
15
15
|
_skippedApps: string[] | undefined;
|
|
16
|
-
/** @type {
|
|
17
|
-
_clientEventListeners:
|
|
18
|
-
/** @type {
|
|
19
|
-
appDict:
|
|
16
|
+
/** @type {import('@appium/types').StringRecord<Function[]>} */
|
|
17
|
+
_clientEventListeners: import("@appium/types").StringRecord<Function[]>;
|
|
18
|
+
/** @type {import('./types').AppDict} */
|
|
19
|
+
appDict: import("./types").AppDict;
|
|
20
20
|
/** @type {string|null|undefined} */
|
|
21
21
|
appIdKey: string | null | undefined;
|
|
22
22
|
/** @type {string|number|null|undefined} */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote-debugger.d.ts","sourceRoot":"","sources":["../../lib/remote-debugger.js"],"names":[],"mappings":"AAeA,yCAA0C;AAE1C,2CAA4C;AAK5C;IA8BE,qBAAqB;IACrB,0BADW,MAAM,CACQ;IACzB,qBAAqB;IACrB,yBADW,MAAM,CACO;IACxB,qBAAqB;IACrB,8BADW,MAAM,CACY;IA4C7B;;OAEG;IACH,mBAFW,qBAAqB,EA4D/B;IA1ID,iCAAiC;IACjC,cADW,MAAM,EAAE,GAAC,SAAS,CAChB;IACb
|
|
1
|
+
{"version":3,"file":"remote-debugger.d.ts","sourceRoot":"","sources":["../../lib/remote-debugger.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { StringRecord } from '@appium/types';
|
|
2
|
+
import type B from 'bluebird';
|
|
3
|
+
export interface DeferredPromise {
|
|
4
|
+
promise: B<any>;
|
|
5
|
+
resolve: (...args: any[]) => void;
|
|
6
|
+
reject: (err?: Error) => void;
|
|
7
|
+
}
|
|
8
|
+
export interface AppInfo {
|
|
9
|
+
id: string;
|
|
10
|
+
isProxy: boolean;
|
|
11
|
+
name: string;
|
|
12
|
+
bundleId: string;
|
|
13
|
+
hostId?: string;
|
|
14
|
+
isActive: boolean;
|
|
15
|
+
isAutomationEnabled: boolean | string;
|
|
16
|
+
pageArray?: Page[];
|
|
17
|
+
}
|
|
18
|
+
export interface AppPage {
|
|
19
|
+
appIdKey: string;
|
|
20
|
+
pageDict: Page;
|
|
21
|
+
}
|
|
22
|
+
export interface App {
|
|
23
|
+
id: string;
|
|
24
|
+
bundleId: string;
|
|
25
|
+
}
|
|
26
|
+
export interface Page {
|
|
27
|
+
url: string;
|
|
28
|
+
title: string;
|
|
29
|
+
id: number | string;
|
|
30
|
+
isKey: boolean;
|
|
31
|
+
bundleId?: string;
|
|
32
|
+
}
|
|
33
|
+
export type AppDict = StringRecord<AppInfo>;
|
|
34
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAE9B,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IAChB,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAClC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,mBAAmB,EAAE,OAAO,GAAG,MAAM,CAAC;IACtC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,IAAI,CAAC;CAChB;AAED,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,IAAI;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":""}
|
package/build/lib/utils.d.ts
CHANGED
|
@@ -1,63 +1,52 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @typedef {Object} DeferredPromise
|
|
3
|
-
* @property {B<any>} promise
|
|
4
|
-
* @property {(...args: any[]) => void} resolve
|
|
5
|
-
* @property {(err?: Error) => void} reject
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* @typedef {Object} AppInfo
|
|
9
|
-
* @property {string} id
|
|
10
|
-
* @property {boolean} isProxy
|
|
11
|
-
* @property {string} name
|
|
12
|
-
* @property {string} bundleId
|
|
13
|
-
* @property {string} [hostId]
|
|
14
|
-
* @property {boolean} isActive
|
|
15
|
-
* @property {boolean|string} isAutomationEnabled
|
|
16
|
-
* @property {import('./mixins/connect').Page[]} [pageArray]
|
|
17
|
-
*/
|
|
18
1
|
/**
|
|
19
2
|
* Takes a dictionary from the remote debugger and makes a more manageable
|
|
20
3
|
* dictionary whose keys are understandable
|
|
21
4
|
*
|
|
22
5
|
* @param {Record<string, any>} dict
|
|
23
|
-
* @returns {[string, AppInfo]}
|
|
6
|
+
* @returns {[string, import('./types').AppInfo]}
|
|
24
7
|
*/
|
|
25
|
-
export function appInfoFromDict(dict: Record<string, any>): [string, AppInfo];
|
|
8
|
+
export function appInfoFromDict(dict: Record<string, any>): [string, import("./types").AppInfo];
|
|
26
9
|
/**
|
|
27
10
|
* Take a dictionary from the remote debugger and makes a more manageable
|
|
28
11
|
* dictionary of pages available.
|
|
29
12
|
*
|
|
30
13
|
* @param {import('@appium/types').StringRecord} pageDict
|
|
31
|
-
* @returns {import('./
|
|
14
|
+
* @returns {import('./types').Page[]}
|
|
32
15
|
*/
|
|
33
|
-
export function pageArrayFromDict(pageDict: import("@appium/types").StringRecord): import("./
|
|
16
|
+
export function pageArrayFromDict(pageDict: import("@appium/types").StringRecord): import("./types").Page[];
|
|
34
17
|
/**
|
|
35
|
-
*
|
|
36
|
-
* connected.
|
|
18
|
+
*
|
|
37
19
|
* @param {string} bundleId
|
|
38
|
-
* @param {
|
|
39
|
-
* @returns {string
|
|
20
|
+
* @param {import('./types').AppDict} appDict
|
|
21
|
+
* @returns {string[]}
|
|
40
22
|
*/
|
|
41
|
-
export function
|
|
23
|
+
export function appIdsForBundle(bundleId: string, appDict: import("./types").AppDict): string[];
|
|
42
24
|
/**
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
25
|
+
* @param {import('@appium/types').StringRecord} params
|
|
26
|
+
* @returns {void}
|
|
27
|
+
*/
|
|
28
|
+
export function checkParams(params: import("@appium/types").StringRecord): void;
|
|
29
|
+
/**
|
|
30
|
+
* @param {any} value
|
|
31
|
+
* @param {boolean} [multiline=false]
|
|
32
|
+
* @returns {string}
|
|
48
33
|
*/
|
|
49
|
-
export function
|
|
50
|
-
export function checkParams(params: any): void;
|
|
51
|
-
export function simpleStringify(value: any, multiline?: boolean): string;
|
|
34
|
+
export function simpleStringify(value: any, multiline?: boolean | undefined): string;
|
|
52
35
|
/**
|
|
53
|
-
* @returns {DeferredPromise}
|
|
36
|
+
* @returns {import('./types').DeferredPromise}
|
|
37
|
+
*/
|
|
38
|
+
export function deferredPromise(): import("./types").DeferredPromise;
|
|
39
|
+
/**
|
|
40
|
+
*
|
|
41
|
+
* @param {any} res
|
|
42
|
+
* @returns {any}
|
|
54
43
|
*/
|
|
55
|
-
export function deferredPromise(): DeferredPromise;
|
|
56
44
|
export function convertResult(res: any): any;
|
|
57
45
|
/**
|
|
58
46
|
* @returns {import('@appium/types').StringRecord}
|
|
59
47
|
*/
|
|
60
48
|
export function getModuleProperties(): import("@appium/types").StringRecord;
|
|
49
|
+
export const WEB_CONTENT_BUNDLE_ID: "com.apple.WebKit.WebContent";
|
|
61
50
|
export const RESPONSE_LOG_LENGTH: 100;
|
|
62
51
|
/**
|
|
63
52
|
* Calculates the path to the current module's root folder
|
|
@@ -66,21 +55,5 @@ export const RESPONSE_LOG_LENGTH: 100;
|
|
|
66
55
|
* @throws {Error} If the current module root folder cannot be determined
|
|
67
56
|
*/
|
|
68
57
|
export const getModuleRoot: (() => string) & _.MemoizedFunction;
|
|
69
|
-
export type DeferredPromise = {
|
|
70
|
-
promise: B<any>;
|
|
71
|
-
resolve: (...args: any[]) => void;
|
|
72
|
-
reject: (err?: Error) => void;
|
|
73
|
-
};
|
|
74
|
-
export type AppInfo = {
|
|
75
|
-
id: string;
|
|
76
|
-
isProxy: boolean;
|
|
77
|
-
name: string;
|
|
78
|
-
bundleId: string;
|
|
79
|
-
hostId?: string | undefined;
|
|
80
|
-
isActive: boolean;
|
|
81
|
-
isAutomationEnabled: boolean | string;
|
|
82
|
-
pageArray?: import("./mixins/connect").Page[] | undefined;
|
|
83
|
-
};
|
|
84
58
|
import _ from 'lodash';
|
|
85
|
-
import B from 'bluebird';
|
|
86
59
|
//# sourceMappingURL=utils.d.ts.map
|
package/build/lib/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../lib/utils.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../lib/utils.js"],"names":[],"mappings":"AAkBA;;;;;;GAMG;AACH,sCAHW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACjB,CAAC,MAAM,EAAE,OAAO,SAAS,EAAE,OAAO,CAAC,CAiC/C;AAED;;;;;;GAMG;AACH,4CAHW,OAAO,eAAe,EAAE,YAAY,GAClC,OAAO,SAAS,EAAE,IAAI,EAAE,CAYpC;AAED;;;;;GAKG;AACH,0CAJW,MAAM,WACN,OAAO,SAAS,EAAE,OAAO,GACvB,MAAM,EAAE,CAiBpB;AAED;;;GAGG;AACH,oCAHW,OAAO,eAAe,EAAE,YAAY,GAClC,IAAI,CAUhB;AAED;;;;GAIG;AACH,uCAJW,GAAG,oCAED,MAAM,CAclB;AAED;;GAEG;AACH,mCAFa,OAAO,SAAS,EAAE,eAAe,CAmB7C;AAED;;;;GAIG;AACH,mCAHW,GAAG,GACD,GAAG,CAgCf;AAgBD;;GAEG;AACH,uCAFa,OAAO,eAAe,EAAE,YAAY,CAKhD;AA5MD,kEAAmE;AAQnE,sCAAuC;AAgLvC;;;;;GAKG;AACH,gEAMG;cA5MW,QAAQ"}
|
package/build/lib/utils.js
CHANGED
|
@@ -3,17 +3,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getModuleRoot = exports.RESPONSE_LOG_LENGTH = void 0;
|
|
6
|
+
exports.getModuleRoot = exports.RESPONSE_LOG_LENGTH = exports.WEB_CONTENT_BUNDLE_ID = void 0;
|
|
7
7
|
exports.appInfoFromDict = appInfoFromDict;
|
|
8
8
|
exports.pageArrayFromDict = pageArrayFromDict;
|
|
9
|
-
exports.
|
|
10
|
-
exports.getPossibleDebuggerAppKeys = getPossibleDebuggerAppKeys;
|
|
9
|
+
exports.appIdsForBundle = appIdsForBundle;
|
|
11
10
|
exports.checkParams = checkParams;
|
|
12
11
|
exports.simpleStringify = simpleStringify;
|
|
13
12
|
exports.deferredPromise = deferredPromise;
|
|
14
13
|
exports.convertResult = convertResult;
|
|
15
14
|
exports.getModuleProperties = getModuleProperties;
|
|
16
|
-
const logger_1 = __importDefault(require("./logger"));
|
|
17
15
|
const lodash_1 = __importDefault(require("lodash"));
|
|
18
16
|
const bluebird_1 = __importDefault(require("bluebird"));
|
|
19
17
|
const base_driver_1 = require("@appium/base-driver");
|
|
@@ -21,11 +19,7 @@ const support_1 = require("@appium/support");
|
|
|
21
19
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
22
20
|
const node_path_1 = __importDefault(require("node:path"));
|
|
23
21
|
const MODULE_NAME = 'appium-remote-debugger';
|
|
24
|
-
|
|
25
|
-
const WEB_CONTENT_PROCESS_BUNDLE_ID = 'process-com.apple.WebKit.WebContent';
|
|
26
|
-
const SAFARI_VIEW_PROCESS_BUNDLE_ID = 'process-SafariViewService';
|
|
27
|
-
const SAFARI_VIEW_BUNDLE_ID = 'com.apple.SafariViewService';
|
|
28
|
-
const WILDCARD_BUNDLE_ID = '*';
|
|
22
|
+
exports.WEB_CONTENT_BUNDLE_ID = 'com.apple.WebKit.WebContent';
|
|
29
23
|
const INACTIVE_APP_CODE = 0;
|
|
30
24
|
// values for the page `WIRTypeKey` entry
|
|
31
25
|
const ACCEPTED_PAGE_TYPES = [
|
|
@@ -34,29 +28,12 @@ const ACCEPTED_PAGE_TYPES = [
|
|
|
34
28
|
'WIRTypePage', // iOS 11.4 webview
|
|
35
29
|
];
|
|
36
30
|
exports.RESPONSE_LOG_LENGTH = 100;
|
|
37
|
-
/**
|
|
38
|
-
* @typedef {Object} DeferredPromise
|
|
39
|
-
* @property {B<any>} promise
|
|
40
|
-
* @property {(...args: any[]) => void} resolve
|
|
41
|
-
* @property {(err?: Error) => void} reject
|
|
42
|
-
*/
|
|
43
|
-
/**
|
|
44
|
-
* @typedef {Object} AppInfo
|
|
45
|
-
* @property {string} id
|
|
46
|
-
* @property {boolean} isProxy
|
|
47
|
-
* @property {string} name
|
|
48
|
-
* @property {string} bundleId
|
|
49
|
-
* @property {string} [hostId]
|
|
50
|
-
* @property {boolean} isActive
|
|
51
|
-
* @property {boolean|string} isAutomationEnabled
|
|
52
|
-
* @property {import('./mixins/connect').Page[]} [pageArray]
|
|
53
|
-
*/
|
|
54
31
|
/**
|
|
55
32
|
* Takes a dictionary from the remote debugger and makes a more manageable
|
|
56
33
|
* dictionary whose keys are understandable
|
|
57
34
|
*
|
|
58
35
|
* @param {Record<string, any>} dict
|
|
59
|
-
* @returns {[string, AppInfo]}
|
|
36
|
+
* @returns {[string, import('./types').AppInfo]}
|
|
60
37
|
*/
|
|
61
38
|
function appInfoFromDict(dict) {
|
|
62
39
|
const id = dict.WIRApplicationIdentifierKey;
|
|
@@ -78,6 +55,7 @@ function appInfoFromDict(dict) {
|
|
|
78
55
|
isAutomationEnabled = !!dict.WIRAutomationAvailabilityKey;
|
|
79
56
|
}
|
|
80
57
|
}
|
|
58
|
+
/** @type {import('./types').AppInfo} */
|
|
81
59
|
const entry = {
|
|
82
60
|
id,
|
|
83
61
|
isProxy,
|
|
@@ -94,7 +72,7 @@ function appInfoFromDict(dict) {
|
|
|
94
72
|
* dictionary of pages available.
|
|
95
73
|
*
|
|
96
74
|
* @param {import('@appium/types').StringRecord} pageDict
|
|
97
|
-
* @returns {import('./
|
|
75
|
+
* @returns {import('./types').Page[]}
|
|
98
76
|
*/
|
|
99
77
|
function pageArrayFromDict(pageDict) {
|
|
100
78
|
return lodash_1.default.values(pageDict)
|
|
@@ -108,79 +86,29 @@ function pageArrayFromDict(pageDict) {
|
|
|
108
86
|
}));
|
|
109
87
|
}
|
|
110
88
|
/**
|
|
111
|
-
*
|
|
112
|
-
* connected.
|
|
89
|
+
*
|
|
113
90
|
* @param {string} bundleId
|
|
114
|
-
* @param {
|
|
115
|
-
* @returns {string
|
|
91
|
+
* @param {import('./types').AppDict} appDict
|
|
92
|
+
* @returns {string[]}
|
|
116
93
|
*/
|
|
117
|
-
function
|
|
118
|
-
|
|
94
|
+
function appIdsForBundle(bundleId, appDict) {
|
|
95
|
+
/** @type {Set<string>} */
|
|
96
|
+
const appIds = new Set();
|
|
119
97
|
for (const [key, data] of lodash_1.default.toPairs(appDict)) {
|
|
120
|
-
if (data.bundleId
|
|
121
|
-
|
|
122
|
-
break;
|
|
98
|
+
if (data.bundleId.endsWith(bundleId)) {
|
|
99
|
+
appIds.add(key);
|
|
123
100
|
}
|
|
124
101
|
}
|
|
125
|
-
//
|
|
126
|
-
if (
|
|
127
|
-
|
|
128
|
-
let proxyAppId;
|
|
129
|
-
for (const [key, data] of lodash_1.default.toPairs(appDict)) {
|
|
130
|
-
if (data.isProxy && data.hostId === appId) {
|
|
131
|
-
logger_1.default.debug(`Found separate bundleId '${data.bundleId}' ` +
|
|
132
|
-
`acting as proxy for '${bundleId}', with app id '${key}'`);
|
|
133
|
-
// set the app id... the last one will be used, so just keep re-assigning
|
|
134
|
-
proxyAppId = key;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
if (proxyAppId) {
|
|
138
|
-
appId = proxyAppId;
|
|
139
|
-
logger_1.default.debug(`Using proxied app id '${appId}'`);
|
|
140
|
-
}
|
|
102
|
+
// if nothing is found, try to get the generic app
|
|
103
|
+
if (appIds.size === 0 && bundleId !== exports.WEB_CONTENT_BUNDLE_ID) {
|
|
104
|
+
return appIdsForBundle(exports.WEB_CONTENT_BUNDLE_ID, appDict);
|
|
141
105
|
}
|
|
142
|
-
return
|
|
106
|
+
return Array.from(appIds);
|
|
143
107
|
}
|
|
144
108
|
/**
|
|
145
|
-
*
|
|
146
|
-
*
|
|
147
|
-
* @param {string[]} bundleIds
|
|
148
|
-
* @param {Record<string, AppInfo>} appDict
|
|
149
|
-
* @returns {string[]}
|
|
109
|
+
* @param {import('@appium/types').StringRecord} params
|
|
110
|
+
* @returns {void}
|
|
150
111
|
*/
|
|
151
|
-
function getPossibleDebuggerAppKeys(bundleIds, appDict) {
|
|
152
|
-
if (bundleIds.includes(WILDCARD_BUNDLE_ID)) {
|
|
153
|
-
logger_1.default.debug('Skip checking bundle identifiers because the bundleIds includes a wildcard');
|
|
154
|
-
return lodash_1.default.uniq(Object.keys(appDict));
|
|
155
|
-
}
|
|
156
|
-
// go through the possible bundle identifiers
|
|
157
|
-
const possibleBundleIds = lodash_1.default.uniq([
|
|
158
|
-
WEB_CONTENT_BUNDLE_ID,
|
|
159
|
-
WEB_CONTENT_PROCESS_BUNDLE_ID,
|
|
160
|
-
SAFARI_VIEW_PROCESS_BUNDLE_ID,
|
|
161
|
-
SAFARI_VIEW_BUNDLE_ID,
|
|
162
|
-
WILDCARD_BUNDLE_ID,
|
|
163
|
-
...bundleIds,
|
|
164
|
-
]);
|
|
165
|
-
logger_1.default.debug(`Checking for bundle identifiers: ${possibleBundleIds.join(', ')}`);
|
|
166
|
-
/** @type {Set<string>} */
|
|
167
|
-
const proxiedAppIds = new Set();
|
|
168
|
-
for (const bundleId of possibleBundleIds) {
|
|
169
|
-
// now we need to determine if we should pick a proxy for this instead
|
|
170
|
-
for (const appId of appIdsForBundle(bundleId, appDict)) {
|
|
171
|
-
proxiedAppIds.add(appId);
|
|
172
|
-
logger_1.default.debug(`Found app id key '${appId}' for bundle '${bundleId}'`);
|
|
173
|
-
for (const [key, data] of lodash_1.default.toPairs(appDict)) {
|
|
174
|
-
if (data.isProxy && data.hostId === appId) {
|
|
175
|
-
logger_1.default.debug(`Found separate bundleId '${data.bundleId}' ` +
|
|
176
|
-
`acting as proxy for '${bundleId}', with app id '${key}'`);
|
|
177
|
-
proxiedAppIds.add(key);
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
return Array.from(proxiedAppIds);
|
|
183
|
-
}
|
|
184
112
|
function checkParams(params) {
|
|
185
113
|
// check if all parameters have a value
|
|
186
114
|
const errors = lodash_1.default.toPairs(params)
|
|
@@ -190,6 +118,11 @@ function checkParams(params) {
|
|
|
190
118
|
throw new Error(`Missing ${support_1.util.pluralize('parameter', errors.length)}: ${errors.join(', ')}`);
|
|
191
119
|
}
|
|
192
120
|
}
|
|
121
|
+
/**
|
|
122
|
+
* @param {any} value
|
|
123
|
+
* @param {boolean} [multiline=false]
|
|
124
|
+
* @returns {string}
|
|
125
|
+
*/
|
|
193
126
|
function simpleStringify(value, multiline = false) {
|
|
194
127
|
if (!value) {
|
|
195
128
|
return JSON.stringify(value);
|
|
@@ -203,7 +136,7 @@ function simpleStringify(value, multiline = false) {
|
|
|
203
136
|
return multiline ? JSON.stringify(cleanValue, null, 2) : JSON.stringify(cleanValue);
|
|
204
137
|
}
|
|
205
138
|
/**
|
|
206
|
-
* @returns {DeferredPromise}
|
|
139
|
+
* @returns {import('./types').DeferredPromise}
|
|
207
140
|
*/
|
|
208
141
|
function deferredPromise() {
|
|
209
142
|
// http://bluebirdjs.com/docs/api/deferred-migration.html
|
|
@@ -223,6 +156,11 @@ function deferredPromise() {
|
|
|
223
156
|
reject
|
|
224
157
|
};
|
|
225
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
*
|
|
161
|
+
* @param {any} res
|
|
162
|
+
* @returns {any}
|
|
163
|
+
*/
|
|
226
164
|
function convertResult(res) {
|
|
227
165
|
if (lodash_1.default.isUndefined(res)) {
|
|
228
166
|
throw new Error(`Did not get OK result from remote debugger. Result was: ${lodash_1.default.truncate(simpleStringify(res), { length: exports.RESPONSE_LOG_LENGTH })}`);
|
|
@@ -274,24 +212,4 @@ function getModuleProperties() {
|
|
|
274
212
|
const fullPath = node_path_1.default.resolve((0, exports.getModuleRoot)(), 'package.json');
|
|
275
213
|
return JSON.parse(node_fs_1.default.readFileSync(fullPath, 'utf8'));
|
|
276
214
|
}
|
|
277
|
-
/**
|
|
278
|
-
*
|
|
279
|
-
* @param {string} bundleId
|
|
280
|
-
* @param {Record<string, any>} appDict
|
|
281
|
-
* @returns {string[]}
|
|
282
|
-
*/
|
|
283
|
-
function appIdsForBundle(bundleId, appDict) {
|
|
284
|
-
/** @type {Set<string>} */
|
|
285
|
-
const appIds = new Set();
|
|
286
|
-
for (const [key, data] of lodash_1.default.toPairs(appDict)) {
|
|
287
|
-
if (data.bundleId.endsWith(bundleId)) {
|
|
288
|
-
appIds.add(key);
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
// if nothing is found, try to get the generic app
|
|
292
|
-
if (appIds.size === 0 && bundleId !== WEB_CONTENT_BUNDLE_ID) {
|
|
293
|
-
return appIdsForBundle(WEB_CONTENT_BUNDLE_ID, appDict);
|
|
294
|
-
}
|
|
295
|
-
return Array.from(appIds);
|
|
296
|
-
}
|
|
297
215
|
//# sourceMappingURL=utils.js.map
|
package/build/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../lib/utils.js"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../lib/utils.js"],"names":[],"mappings":"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"}
|