appium-remote-debugger 10.0.2 → 10.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.
Files changed (86) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/build/index.js +18 -33
  3. package/build/lib/atoms.d.ts +17 -0
  4. package/build/lib/atoms.d.ts.map +1 -0
  5. package/build/lib/atoms.js +75 -50
  6. package/build/lib/atoms.js.map +1 -1
  7. package/build/lib/logger.d.ts +3 -0
  8. package/build/lib/logger.d.ts.map +1 -0
  9. package/build/lib/logger.js +5 -11
  10. package/build/lib/logger.js.map +1 -1
  11. package/build/lib/mixins/connect.d.ts +125 -0
  12. package/build/lib/mixins/connect.d.ts.map +1 -0
  13. package/build/lib/mixins/connect.js +299 -202
  14. package/build/lib/mixins/connect.js.map +1 -1
  15. package/build/lib/mixins/events.d.ts +7 -0
  16. package/build/lib/mixins/events.d.ts.map +1 -0
  17. package/build/lib/mixins/events.js +7 -12
  18. package/build/lib/mixins/events.js.map +1 -1
  19. package/build/lib/mixins/execute.d.ts +38 -0
  20. package/build/lib/mixins/execute.d.ts.map +1 -0
  21. package/build/lib/mixins/execute.js +162 -122
  22. package/build/lib/mixins/execute.js.map +1 -1
  23. package/build/lib/mixins/index.d.ts +5 -0
  24. package/build/lib/mixins/index.d.ts.map +1 -0
  25. package/build/lib/mixins/index.js +14 -23
  26. package/build/lib/mixins/index.js.map +1 -1
  27. package/build/lib/mixins/message-handlers.d.ts +92 -0
  28. package/build/lib/mixins/message-handlers.d.ts.map +1 -0
  29. package/build/lib/mixins/message-handlers.js +160 -97
  30. package/build/lib/mixins/message-handlers.js.map +1 -1
  31. package/build/lib/mixins/navigate.d.ts +92 -0
  32. package/build/lib/mixins/navigate.d.ts.map +1 -0
  33. package/build/lib/mixins/navigate.js +199 -141
  34. package/build/lib/mixins/navigate.js.map +1 -1
  35. package/build/lib/protocol/index.d.ts +14 -0
  36. package/build/lib/protocol/index.d.ts.map +1 -0
  37. package/build/lib/protocol/index.js +192 -118
  38. package/build/lib/protocol/index.js.map +1 -1
  39. package/build/lib/remote-debugger-real-device.d.ts +6 -0
  40. package/build/lib/remote-debugger-real-device.d.ts.map +1 -0
  41. package/build/lib/remote-debugger-real-device.js +29 -32
  42. package/build/lib/remote-debugger-real-device.js.map +1 -1
  43. package/build/lib/remote-debugger.d.ts +119 -0
  44. package/build/lib/remote-debugger.d.ts.map +1 -0
  45. package/build/lib/remote-debugger.js +256 -226
  46. package/build/lib/remote-debugger.js.map +1 -1
  47. package/build/lib/rpc/index.d.ts +4 -0
  48. package/build/lib/rpc/index.d.ts.map +1 -0
  49. package/build/lib/rpc/index.js +10 -21
  50. package/build/lib/rpc/index.js.map +1 -1
  51. package/build/lib/rpc/remote-messages.d.ts +51 -0
  52. package/build/lib/rpc/remote-messages.d.ts.map +1 -0
  53. package/build/lib/rpc/remote-messages.js +203 -224
  54. package/build/lib/rpc/remote-messages.js.map +1 -1
  55. package/build/lib/rpc/rpc-client-real-device.d.ts +6 -0
  56. package/build/lib/rpc/rpc-client-real-device.d.ts.map +1 -0
  57. package/build/lib/rpc/rpc-client-real-device.js +43 -49
  58. package/build/lib/rpc/rpc-client-real-device.js.map +1 -1
  59. package/build/lib/rpc/rpc-client-simulator.d.ts +15 -0
  60. package/build/lib/rpc/rpc-client-simulator.d.ts.map +1 -0
  61. package/build/lib/rpc/rpc-client-simulator.js +138 -125
  62. package/build/lib/rpc/rpc-client-simulator.js.map +1 -1
  63. package/build/lib/rpc/rpc-client.d.ts +142 -0
  64. package/build/lib/rpc/rpc-client.d.ts.map +1 -0
  65. package/build/lib/rpc/rpc-client.js +559 -418
  66. package/build/lib/rpc/rpc-client.js.map +1 -1
  67. package/build/lib/rpc/rpc-message-handler.d.ts +13 -0
  68. package/build/lib/rpc/rpc-message-handler.d.ts.map +1 -0
  69. package/build/lib/rpc/rpc-message-handler.js +181 -166
  70. package/build/lib/rpc/rpc-message-handler.js.map +1 -1
  71. package/build/lib/utils.d.ts +61 -0
  72. package/build/lib/utils.d.ts.map +1 -0
  73. package/build/lib/utils.js +241 -155
  74. package/build/lib/utils.js.map +1 -1
  75. package/lib/atoms.js +25 -4
  76. package/lib/mixins/connect.js +102 -7
  77. package/lib/mixins/execute.js +46 -13
  78. package/lib/mixins/message-handlers.js +44 -1
  79. package/lib/mixins/navigate.js +55 -3
  80. package/lib/remote-debugger.js +112 -0
  81. package/lib/rpc/rpc-client-real-device.js +1 -6
  82. package/lib/rpc/rpc-client-simulator.js +7 -1
  83. package/lib/rpc/rpc-client.js +106 -6
  84. package/lib/rpc/rpc-message-handler.js +1 -1
  85. package/lib/utils.js +31 -1
  86. package/package.json +26 -16
@@ -0,0 +1,92 @@
1
+ export default messageHandlers;
2
+ declare namespace messageHandlers {
3
+ export { onPageChange };
4
+ export { onAppConnect };
5
+ export { onAppDisconnect };
6
+ export { onAppUpdate };
7
+ export { onConnectedDriverList };
8
+ export { onCurrentState };
9
+ export { onConnectedApplicationList };
10
+ }
11
+ /**
12
+ * @this {import('../remote-debugger').RemoteDebugger}
13
+ * @param {Error?} err
14
+ * @param {string} appIdKey
15
+ * @param {Record<string, any>} pageDict
16
+ * @returns {Promise<void>}
17
+ */
18
+ declare function onPageChange(this: import("../remote-debugger").default, err: Error | null, appIdKey: string, pageDict: Record<string, any>): Promise<void>;
19
+ /**
20
+ * @this {import('../remote-debugger').RemoteDebugger}
21
+ * @param {Error?} err
22
+ * @param {Record<string, any>} dict
23
+ * @returns {Promise<void>}
24
+ */
25
+ declare function onAppConnect(this: import("../remote-debugger").default, err: Error | null, dict: Record<string, any>): Promise<void>;
26
+ /**
27
+ * @this {import('../remote-debugger').RemoteDebugger}
28
+ * @param {Error?} err
29
+ * @param {Record<string, any>} dict
30
+ * @returns {void}
31
+ */
32
+ declare function onAppDisconnect(this: import("../remote-debugger").default, err: Error | null, dict: Record<string, any>): void;
33
+ declare class onAppDisconnect {
34
+ /**
35
+ * @this {import('../remote-debugger').RemoteDebugger}
36
+ * @param {Error?} err
37
+ * @param {Record<string, any>} dict
38
+ * @returns {void}
39
+ */
40
+ constructor(this: import("../remote-debugger").default, err: Error | null, dict: Record<string, any>);
41
+ appIdKey: string | undefined;
42
+ connected: boolean | undefined;
43
+ }
44
+ /**
45
+ * @this {import('../remote-debugger').RemoteDebugger}
46
+ * @param {Error?} err
47
+ * @param {Record<string, any>} dict
48
+ * @returns {Promise<void>}
49
+ */
50
+ declare function onAppUpdate(this: import("../remote-debugger").default, err: Error | null, dict: Record<string, any>): Promise<void>;
51
+ /**
52
+ * @this {import('../remote-debugger').RemoteDebugger}
53
+ * @param {Error?} err
54
+ * @param {Record<string, any>} drivers
55
+ * @returns {void}
56
+ */
57
+ declare function onConnectedDriverList(this: import("../remote-debugger").default, err: Error | null, drivers: Record<string, any>): void;
58
+ declare class onConnectedDriverList {
59
+ /**
60
+ * @this {import('../remote-debugger').RemoteDebugger}
61
+ * @param {Error?} err
62
+ * @param {Record<string, any>} drivers
63
+ * @returns {void}
64
+ */
65
+ constructor(this: import("../remote-debugger").default, err: Error | null, drivers: Record<string, any>);
66
+ connectedDrivers: any;
67
+ }
68
+ /**
69
+ * @this {import('../remote-debugger').RemoteDebugger}
70
+ * @param {Error?} err
71
+ * @param {Record<string, any>} state
72
+ * @returns {void}
73
+ */
74
+ declare function onCurrentState(this: import("../remote-debugger").default, err: Error | null, state: Record<string, any>): void;
75
+ declare class onCurrentState {
76
+ /**
77
+ * @this {import('../remote-debugger').RemoteDebugger}
78
+ * @param {Error?} err
79
+ * @param {Record<string, any>} state
80
+ * @returns {void}
81
+ */
82
+ constructor(this: import("../remote-debugger").default, err: Error | null, state: Record<string, any>);
83
+ currentState: any;
84
+ }
85
+ /**
86
+ * @this {import('../remote-debugger').RemoteDebugger}
87
+ * @param {Error?} err
88
+ * @param {Record<string, any>} apps
89
+ * @returns {Promise<void>}
90
+ */
91
+ declare function onConnectedApplicationList(this: import("../remote-debugger").default, err: Error | null, apps: Record<string, any>): Promise<void>;
92
+ //# sourceMappingURL=message-handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-handlers.d.ts","sourceRoot":"","sources":["../../../lib/mixins/message-handlers.js"],"names":[],"mappings":";;;;;;;;;;AAWA;;;;;;GAMG;AACH,+EALW,KAAK,mBACL,MAAM,YACN,OAAO,MAAM,EAAE,GAAG,CAAC,GACjB,QAAQ,IAAI,CAAC,CA6CzB;AAED;;;;;GAKG;AACH,+EAJW,KAAK,eACL,OAAO,MAAM,EAAE,GAAG,CAAC,GACjB,QAAQ,IAAI,CAAC,CAYzB;AAED;;;;;GAKG;AACH,kFAJW,KAAK,eACL,OAAO,MAAM,EAAE,GAAG,CAAC,GACjB,IAAI,CAuBhB;;IA3BD;;;;;OAKG;IACH,6DAJW,KAAK,eACL,OAAO,MAAM,EAAE,GAAG,CAAC,EAwB7B;IATG,6BAA8D;IAM9D,+BAAsB;;AAK1B;;;;;GAKG;AACH,8EAJW,KAAK,eACL,OAAO,MAAM,EAAE,GAAG,CAAC,GACjB,QAAQ,IAAI,CAAC,CAUzB;AAED;;;;;GAKG;AACH,wFAJW,KAAK,kBACL,OAAO,MAAM,EAAE,GAAG,CAAC,GACjB,IAAI,CAKhB;;IATD;;;;;OAKG;IACH,6DAJW,KAAK,kBACL,OAAO,MAAM,EAAE,GAAG,CAAC,EAM7B;IAFC,sBAAsD;;AAIxD;;;;;GAKG;AACH,iFAJW,KAAK,gBACL,OAAO,MAAM,EAAE,GAAG,CAAC,GACjB,IAAI,CAOhB;;IAXD;;;;;OAKG;IACH,6DAJW,KAAK,gBACL,OAAO,MAAM,EAAE,GAAG,CAAC,EAQ7B;IAJC,kBAAsD;;AAMxD;;;;;GAKG;AACH,6FAJW,KAAK,eACL,OAAO,MAAM,EAAE,GAAG,CAAC,GACjB,QAAQ,IAAI,CAAC,CAuBzB"}
@@ -1,118 +1,181 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- require("source-map-support/register");
9
- var _logger = _interopRequireDefault(require("../logger"));
10
- var _events = _interopRequireDefault(require("./events"));
11
- var _utils = require("../utils");
12
- var _lodash = _interopRequireDefault(require("lodash"));
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
+ const logger_1 = __importDefault(require("../logger"));
7
+ const events_1 = __importDefault(require("./events"));
8
+ const utils_1 = require("../utils");
9
+ const lodash_1 = __importDefault(require("lodash"));
10
+ /*
11
+ * Generic callbacks used throughout the lifecycle of the Remote Debugger.
12
+ * These will be added to the prototype.
13
+ */
14
+ /**
15
+ * @this {import('../remote-debugger').RemoteDebugger}
16
+ * @param {Error?} err
17
+ * @param {string} appIdKey
18
+ * @param {Record<string, any>} pageDict
19
+ * @returns {Promise<void>}
20
+ */
13
21
  async function onPageChange(err, appIdKey, pageDict) {
14
- if (_lodash.default.isEmpty(pageDict)) {
15
- return;
16
- }
17
- const pageArray = (0, _utils.pageArrayFromDict)(pageDict);
18
- await this.useAppDictLock(done => {
19
- try {
20
- if (this.appDict[appIdKey]) {
21
- if (this.appDict[appIdKey].pageArray) {
22
- if (this.appDict[appIdKey].pageArray.resolve) {
23
- this.appDict[appIdKey].pageArray.resolve();
24
- } else {
25
- if (_lodash.default.isEqual(this.appDict[appIdKey].pageArray, pageArray)) {
26
- _logger.default.debug(`Received page change notice for app '${appIdKey}' ` + `but the listing has not changed. Ignoring.`);
27
- return done();
22
+ if (lodash_1.default.isEmpty(pageDict)) {
23
+ return;
24
+ }
25
+ const pageArray = (0, utils_1.pageArrayFromDict)(pageDict);
26
+ await this.useAppDictLock((done) => {
27
+ try {
28
+ // save the page dict for this app
29
+ if (this.appDict[appIdKey]) {
30
+ if (this.appDict[appIdKey].pageArray) {
31
+ if (this.appDict[appIdKey].pageArray.resolve) {
32
+ // pageDict is a pending promise, so resolve
33
+ this.appDict[appIdKey].pageArray.resolve();
34
+ }
35
+ else {
36
+ // we have a pre-existing pageDict
37
+ if (lodash_1.default.isEqual(this.appDict[appIdKey].pageArray, pageArray)) {
38
+ logger_1.default.debug(`Received page change notice for app '${appIdKey}' ` +
39
+ `but the listing has not changed. Ignoring.`);
40
+ return done();
41
+ }
42
+ }
43
+ }
44
+ // keep track of the page dictionary
45
+ this.appDict[appIdKey].pageArray = pageArray;
28
46
  }
29
- }
30
47
  }
31
- this.appDict[appIdKey].pageArray = pageArray;
32
- }
33
- } finally {
34
- done();
48
+ finally {
49
+ done();
50
+ }
51
+ });
52
+ if (this._navigatingToPage) {
53
+ // in the middle of navigating, so reporting a page change will cause problems
54
+ return;
35
55
  }
36
- });
37
- if (this._navigatingToPage) {
38
- return;
39
- }
40
- _logger.default.debug(`Page changed: ${(0, _utils.simpleStringify)(pageDict, true)}`);
41
- this.emit(_events.default.EVENT_PAGE_CHANGE, {
42
- appIdKey: appIdKey.replace('PID:', ''),
43
- pageArray
44
- });
56
+ logger_1.default.debug(`Page changed: ${(0, utils_1.simpleStringify)(pageDict, true)}`);
57
+ this.emit(events_1.default.EVENT_PAGE_CHANGE, {
58
+ appIdKey: appIdKey.replace('PID:', ''),
59
+ pageArray,
60
+ });
45
61
  }
62
+ /**
63
+ * @this {import('../remote-debugger').RemoteDebugger}
64
+ * @param {Error?} err
65
+ * @param {Record<string, any>} dict
66
+ * @returns {Promise<void>}
67
+ */
46
68
  async function onAppConnect(err, dict) {
47
- const appIdKey = dict.WIRApplicationIdentifierKey;
48
- _logger.default.debug(`Notified that new application '${appIdKey}' has connected`);
49
- await this.useAppDictLock(done => {
50
- try {
51
- this.updateAppsWithDict(dict);
52
- } finally {
53
- done();
54
- }
55
- });
69
+ const appIdKey = dict.WIRApplicationIdentifierKey;
70
+ logger_1.default.debug(`Notified that new application '${appIdKey}' has connected`);
71
+ await this.useAppDictLock((/** @type {() => Void} */ done) => {
72
+ try {
73
+ this.updateAppsWithDict(dict);
74
+ }
75
+ finally {
76
+ done();
77
+ }
78
+ });
56
79
  }
80
+ /**
81
+ * @this {import('../remote-debugger').RemoteDebugger}
82
+ * @param {Error?} err
83
+ * @param {Record<string, any>} dict
84
+ * @returns {void}
85
+ */
57
86
  function onAppDisconnect(err, dict) {
58
- const appIdKey = dict.WIRApplicationIdentifierKey;
59
- _logger.default.debug(`Application '${appIdKey}' disconnected. Removing from app dictionary.`);
60
- _logger.default.debug(`Current app is '${this.appIdKey}'`);
61
- delete this.appDict[appIdKey];
62
- if (this.appIdKey === appIdKey) {
63
- _logger.default.debug(`No longer have app id. Attempting to find new one.`);
64
- this.appIdKey = (0, _utils.getDebuggerAppKey)(this.bundleId, this.appDict);
65
- }
66
- if (!this.appDict) {
67
- _logger.default.debug('Main app disconnected. Disconnecting altogether.');
68
- this.connected = false;
69
- this.emit(_events.default.EVENT_DISCONNECT, true);
70
- }
87
+ const appIdKey = dict.WIRApplicationIdentifierKey;
88
+ logger_1.default.debug(`Application '${appIdKey}' disconnected. Removing from app dictionary.`);
89
+ logger_1.default.debug(`Current app is '${this.appIdKey}'`);
90
+ // get rid of the entry in our app dictionary,
91
+ // since it is no longer available
92
+ delete this.appDict[appIdKey];
93
+ // if the disconnected app is the one we are connected to, try to find another
94
+ if (this.appIdKey === appIdKey) {
95
+ logger_1.default.debug(`No longer have app id. Attempting to find new one.`);
96
+ this.appIdKey = (0, utils_1.getDebuggerAppKey)(this.bundleId, this.appDict);
97
+ }
98
+ if (!this.appDict) {
99
+ // this means we no longer have any apps. what the what?
100
+ logger_1.default.debug('Main app disconnected. Disconnecting altogether.');
101
+ this.connected = false;
102
+ this.emit(events_1.default.EVENT_DISCONNECT, true);
103
+ }
71
104
  }
105
+ /**
106
+ * @this {import('../remote-debugger').RemoteDebugger}
107
+ * @param {Error?} err
108
+ * @param {Record<string, any>} dict
109
+ * @returns {Promise<void>}
110
+ */
72
111
  async function onAppUpdate(err, dict) {
73
- await this.useAppDictLock(done => {
74
- try {
75
- this.updateAppsWithDict(dict);
76
- } finally {
77
- done();
78
- }
79
- });
112
+ await this.useAppDictLock((done) => {
113
+ try {
114
+ this.updateAppsWithDict(dict);
115
+ }
116
+ finally {
117
+ done();
118
+ }
119
+ });
80
120
  }
121
+ /**
122
+ * @this {import('../remote-debugger').RemoteDebugger}
123
+ * @param {Error?} err
124
+ * @param {Record<string, any>} drivers
125
+ * @returns {void}
126
+ */
81
127
  function onConnectedDriverList(err, drivers) {
82
- this.connectedDrivers = drivers.WIRDriverDictionaryKey;
83
- _logger.default.debug(`Received connected driver list: ${JSON.stringify(this.connectedDrivers)}`);
128
+ this.connectedDrivers = drivers.WIRDriverDictionaryKey;
129
+ logger_1.default.debug(`Received connected driver list: ${JSON.stringify(this.connectedDrivers)}`);
84
130
  }
131
+ /**
132
+ * @this {import('../remote-debugger').RemoteDebugger}
133
+ * @param {Error?} err
134
+ * @param {Record<string, any>} state
135
+ * @returns {void}
136
+ */
85
137
  function onCurrentState(err, state) {
86
- this.currentState = state.WIRAutomationAvailabilityKey;
87
- _logger.default.debug(`Received connected automation availability state: ${JSON.stringify(this.currentState)}`);
138
+ this.currentState = state.WIRAutomationAvailabilityKey;
139
+ // This state changes when 'Remote Automation' in 'Settings app' > 'Safari' > 'Advanced' > 'Remote Automation' changes
140
+ // WIRAutomationAvailabilityAvailable or WIRAutomationAvailabilityNotAvailable
141
+ logger_1.default.debug(`Received connected automation availability state: ${JSON.stringify(this.currentState)}`);
88
142
  }
143
+ /**
144
+ * @this {import('../remote-debugger').RemoteDebugger}
145
+ * @param {Error?} err
146
+ * @param {Record<string, any>} apps
147
+ * @returns {Promise<void>}
148
+ */
89
149
  async function onConnectedApplicationList(err, apps) {
90
- _logger.default.debug(`Received connected applications list: ${_lodash.default.keys(apps).join(', ')}`);
91
- let newDict = {};
92
- for (const dict of _lodash.default.values(apps)) {
93
- const [id, entry] = (0, _utils.appInfoFromDict)(dict);
94
- if (this.skippedApps.includes(entry.name)) {
95
- continue;
96
- }
97
- newDict[id] = entry;
98
- }
99
- await this.useAppDictLock(done => {
100
- try {
101
- _lodash.default.defaults(this.appDict, newDict);
102
- } finally {
103
- done();
150
+ logger_1.default.debug(`Received connected applications list: ${lodash_1.default.keys(apps).join(', ')}`);
151
+ // translate the received information into an easier-to-manage
152
+ // hash with app id as key, and app info as value
153
+ let newDict = {};
154
+ for (const dict of lodash_1.default.values(apps)) {
155
+ const [id, entry] = (0, utils_1.appInfoFromDict)(dict);
156
+ if (this.skippedApps.includes(entry.name)) {
157
+ continue;
158
+ }
159
+ newDict[id] = entry;
104
160
  }
105
- });
161
+ // update the object's list of apps
162
+ await this.useAppDictLock((done) => {
163
+ try {
164
+ lodash_1.default.defaults(this.appDict, newDict);
165
+ }
166
+ finally {
167
+ done();
168
+ }
169
+ });
106
170
  }
107
171
  const messageHandlers = {
108
- onPageChange,
109
- onAppConnect,
110
- onAppDisconnect,
111
- onAppUpdate,
112
- onConnectedDriverList,
113
- onCurrentState,
114
- onConnectedApplicationList
172
+ onPageChange,
173
+ onAppConnect,
174
+ onAppDisconnect,
175
+ onAppUpdate,
176
+ onConnectedDriverList,
177
+ onCurrentState,
178
+ onConnectedApplicationList,
115
179
  };
116
- var _default = messageHandlers;
117
- exports.default = _default;
118
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9nZ2VyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZXZlbnRzIiwiX3V0aWxzIiwiX2xvZGFzaCIsIm9uUGFnZUNoYW5nZSIsImVyciIsImFwcElkS2V5IiwicGFnZURpY3QiLCJfIiwiaXNFbXB0eSIsInBhZ2VBcnJheSIsInBhZ2VBcnJheUZyb21EaWN0IiwidXNlQXBwRGljdExvY2siLCJkb25lIiwiYXBwRGljdCIsInJlc29sdmUiLCJpc0VxdWFsIiwibG9nIiwiZGVidWciLCJfbmF2aWdhdGluZ1RvUGFnZSIsInNpbXBsZVN0cmluZ2lmeSIsImVtaXQiLCJldmVudHMiLCJFVkVOVF9QQUdFX0NIQU5HRSIsInJlcGxhY2UiLCJvbkFwcENvbm5lY3QiLCJkaWN0IiwiV0lSQXBwbGljYXRpb25JZGVudGlmaWVyS2V5IiwidXBkYXRlQXBwc1dpdGhEaWN0Iiwib25BcHBEaXNjb25uZWN0IiwiZ2V0RGVidWdnZXJBcHBLZXkiLCJidW5kbGVJZCIsImNvbm5lY3RlZCIsIkVWRU5UX0RJU0NPTk5FQ1QiLCJvbkFwcFVwZGF0ZSIsIm9uQ29ubmVjdGVkRHJpdmVyTGlzdCIsImRyaXZlcnMiLCJjb25uZWN0ZWREcml2ZXJzIiwiV0lSRHJpdmVyRGljdGlvbmFyeUtleSIsIkpTT04iLCJzdHJpbmdpZnkiLCJvbkN1cnJlbnRTdGF0ZSIsInN0YXRlIiwiY3VycmVudFN0YXRlIiwiV0lSQXV0b21hdGlvbkF2YWlsYWJpbGl0eUtleSIsIm9uQ29ubmVjdGVkQXBwbGljYXRpb25MaXN0IiwiYXBwcyIsImtleXMiLCJqb2luIiwibmV3RGljdCIsInZhbHVlcyIsImlkIiwiZW50cnkiLCJhcHBJbmZvRnJvbURpY3QiLCJza2lwcGVkQXBwcyIsImluY2x1ZGVzIiwibmFtZSIsImRlZmF1bHRzIiwibWVzc2FnZUhhbmRsZXJzIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwiZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9taXhpbnMvbWVzc2FnZS1oYW5kbGVycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbG9nIGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgZXZlbnRzIGZyb20gJy4vZXZlbnRzJztcbmltcG9ydCB7IHBhZ2VBcnJheUZyb21EaWN0LCBnZXREZWJ1Z2dlckFwcEtleSwgc2ltcGxlU3RyaW5naWZ5LCBhcHBJbmZvRnJvbURpY3QgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5cbi8qXG4gKiBHZW5lcmljIGNhbGxiYWNrcyB1c2VkIHRocm91Z2hvdXQgdGhlIGxpZmVjeWNsZSBvZiB0aGUgUmVtb3RlIERlYnVnZ2VyLlxuICogVGhlc2Ugd2lsbCBiZSBhZGRlZCB0byB0aGUgcHJvdG90eXBlLlxuICovXG5cbmFzeW5jIGZ1bmN0aW9uIG9uUGFnZUNoYW5nZSAoZXJyLCBhcHBJZEtleSwgcGFnZURpY3QpIHtcbiAgaWYgKF8uaXNFbXB0eShwYWdlRGljdCkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBwYWdlQXJyYXkgPSBwYWdlQXJyYXlGcm9tRGljdChwYWdlRGljdCk7XG5cbiAgYXdhaXQgdGhpcy51c2VBcHBEaWN0TG9jaygoZG9uZSkgPT4ge1xuICAgIHRyeSB7XG4gICAgICAvLyBzYXZlIHRoZSBwYWdlIGRpY3QgZm9yIHRoaXMgYXBwXG4gICAgICBpZiAodGhpcy5hcHBEaWN0W2FwcElkS2V5XSkge1xuICAgICAgICBpZiAodGhpcy5hcHBEaWN0W2FwcElkS2V5XS5wYWdlQXJyYXkpIHtcbiAgICAgICAgICBpZiAodGhpcy5hcHBEaWN0W2FwcElkS2V5XS5wYWdlQXJyYXkucmVzb2x2ZSkge1xuICAgICAgICAgICAgLy8gcGFnZURpY3QgaXMgYSBwZW5kaW5nIHByb21pc2UsIHNvIHJlc29sdmVcbiAgICAgICAgICAgIHRoaXMuYXBwRGljdFthcHBJZEtleV0ucGFnZUFycmF5LnJlc29sdmUoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gd2UgaGF2ZSBhIHByZS1leGlzdGluZyBwYWdlRGljdFxuICAgICAgICAgICAgaWYgKF8uaXNFcXVhbCh0aGlzLmFwcERpY3RbYXBwSWRLZXldLnBhZ2VBcnJheSwgcGFnZUFycmF5KSkge1xuICAgICAgICAgICAgICBsb2cuZGVidWcoYFJlY2VpdmVkIHBhZ2UgY2hhbmdlIG5vdGljZSBmb3IgYXBwICcke2FwcElkS2V5fScgYCArXG4gICAgICAgICAgICAgICAgICAgICAgICBgYnV0IHRoZSBsaXN0aW5nIGhhcyBub3QgY2hhbmdlZC4gSWdub3JpbmcuYCk7XG4gICAgICAgICAgICAgIHJldHVybiBkb25lKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIGtlZXAgdHJhY2sgb2YgdGhlIHBhZ2UgZGljdGlvbmFyeVxuICAgICAgICB0aGlzLmFwcERpY3RbYXBwSWRLZXldLnBhZ2VBcnJheSA9IHBhZ2VBcnJheTtcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgZG9uZSgpO1xuICAgIH1cbiAgfSk7XG5cbiAgaWYgKHRoaXMuX25hdmlnYXRpbmdUb1BhZ2UpIHtcbiAgICAvLyBpbiB0aGUgbWlkZGxlIG9mIG5hdmlnYXRpbmcsIHNvIHJlcG9ydGluZyBhIHBhZ2UgY2hhbmdlIHdpbGwgY2F1c2UgcHJvYmxlbXNcbiAgICByZXR1cm47XG4gIH1cblxuICBsb2cuZGVidWcoYFBhZ2UgY2hhbmdlZDogJHtzaW1wbGVTdHJpbmdpZnkocGFnZURpY3QsIHRydWUpfWApO1xuXG4gIHRoaXMuZW1pdChldmVudHMuRVZFTlRfUEFHRV9DSEFOR0UsIHtcbiAgICBhcHBJZEtleTogYXBwSWRLZXkucmVwbGFjZSgnUElEOicsICcnKSxcbiAgICBwYWdlQXJyYXksXG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBvbkFwcENvbm5lY3QgKGVyciwgZGljdCkge1xuICBjb25zdCBhcHBJZEtleSA9IGRpY3QuV0lSQXBwbGljYXRpb25JZGVudGlmaWVyS2V5O1xuICBsb2cuZGVidWcoYE5vdGlmaWVkIHRoYXQgbmV3IGFwcGxpY2F0aW9uICcke2FwcElkS2V5fScgaGFzIGNvbm5lY3RlZGApO1xuICBhd2FpdCB0aGlzLnVzZUFwcERpY3RMb2NrKChkb25lKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMudXBkYXRlQXBwc1dpdGhEaWN0KGRpY3QpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBkb25lKCk7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gb25BcHBEaXNjb25uZWN0IChlcnIsIGRpY3QpIHtcbiAgY29uc3QgYXBwSWRLZXkgPSBkaWN0LldJUkFwcGxpY2F0aW9uSWRlbnRpZmllcktleTtcbiAgbG9nLmRlYnVnKGBBcHBsaWNhdGlvbiAnJHthcHBJZEtleX0nIGRpc2Nvbm5lY3RlZC4gUmVtb3ZpbmcgZnJvbSBhcHAgZGljdGlvbmFyeS5gKTtcbiAgbG9nLmRlYnVnKGBDdXJyZW50IGFwcCBpcyAnJHt0aGlzLmFwcElkS2V5fSdgKTtcblxuICAvLyBnZXQgcmlkIG9mIHRoZSBlbnRyeSBpbiBvdXIgYXBwIGRpY3Rpb25hcnksXG4gIC8vIHNpbmNlIGl0IGlzIG5vIGxvbmdlciBhdmFpbGFibGVcbiAgZGVsZXRlIHRoaXMuYXBwRGljdFthcHBJZEtleV07XG5cbiAgLy8gaWYgdGhlIGRpc2Nvbm5lY3RlZCBhcHAgaXMgdGhlIG9uZSB3ZSBhcmUgY29ubmVjdGVkIHRvLCB0cnkgdG8gZmluZCBhbm90aGVyXG4gIGlmICh0aGlzLmFwcElkS2V5ID09PSBhcHBJZEtleSkge1xuICAgIGxvZy5kZWJ1ZyhgTm8gbG9uZ2VyIGhhdmUgYXBwIGlkLiBBdHRlbXB0aW5nIHRvIGZpbmQgbmV3IG9uZS5gKTtcbiAgICB0aGlzLmFwcElkS2V5ID0gZ2V0RGVidWdnZXJBcHBLZXkodGhpcy5idW5kbGVJZCwgdGhpcy5hcHBEaWN0KTtcbiAgfVxuXG4gIGlmICghdGhpcy5hcHBEaWN0KSB7XG4gICAgLy8gdGhpcyBtZWFucyB3ZSBubyBsb25nZXIgaGF2ZSBhbnkgYXBwcy4gd2hhdCB0aGUgd2hhdD9cbiAgICBsb2cuZGVidWcoJ01haW4gYXBwIGRpc2Nvbm5lY3RlZC4gRGlzY29ubmVjdGluZyBhbHRvZ2V0aGVyLicpO1xuICAgIHRoaXMuY29ubmVjdGVkID0gZmFsc2U7XG4gICAgdGhpcy5lbWl0KGV2ZW50cy5FVkVOVF9ESVNDT05ORUNULCB0cnVlKTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBvbkFwcFVwZGF0ZSAoZXJyLCBkaWN0KSB7XG4gIGF3YWl0IHRoaXMudXNlQXBwRGljdExvY2soKGRvbmUpID0+IHtcbiAgICB0cnkge1xuICAgICAgdGhpcy51cGRhdGVBcHBzV2l0aERpY3QoZGljdCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGRvbmUoKTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBvbkNvbm5lY3RlZERyaXZlckxpc3QgKGVyciwgZHJpdmVycykge1xuICB0aGlzLmNvbm5lY3RlZERyaXZlcnMgPSBkcml2ZXJzLldJUkRyaXZlckRpY3Rpb25hcnlLZXk7XG4gIGxvZy5kZWJ1ZyhgUmVjZWl2ZWQgY29ubmVjdGVkIGRyaXZlciBsaXN0OiAke0pTT04uc3RyaW5naWZ5KHRoaXMuY29ubmVjdGVkRHJpdmVycyl9YCk7XG59XG5cbmZ1bmN0aW9uIG9uQ3VycmVudFN0YXRlIChlcnIsIHN0YXRlKSB7XG4gIHRoaXMuY3VycmVudFN0YXRlID0gc3RhdGUuV0lSQXV0b21hdGlvbkF2YWlsYWJpbGl0eUtleTtcbiAgLy8gVGhpcyBzdGF0ZSBjaGFuZ2VzIHdoZW4gJ1JlbW90ZSBBdXRvbWF0aW9uJyBpbiAnU2V0dGluZ3MgYXBwJyA+ICdTYWZhcmknID4gJ0FkdmFuY2VkJyA+ICdSZW1vdGUgQXV0b21hdGlvbicgY2hhbmdlc1xuICAvLyBXSVJBdXRvbWF0aW9uQXZhaWxhYmlsaXR5QXZhaWxhYmxlIG9yIFdJUkF1dG9tYXRpb25BdmFpbGFiaWxpdHlOb3RBdmFpbGFibGVcbiAgbG9nLmRlYnVnKGBSZWNlaXZlZCBjb25uZWN0ZWQgYXV0b21hdGlvbiBhdmFpbGFiaWxpdHkgc3RhdGU6ICR7SlNPTi5zdHJpbmdpZnkodGhpcy5jdXJyZW50U3RhdGUpfWApO1xufVxuXG5hc3luYyBmdW5jdGlvbiBvbkNvbm5lY3RlZEFwcGxpY2F0aW9uTGlzdCAoZXJyLCBhcHBzKSB7XG4gIGxvZy5kZWJ1ZyhgUmVjZWl2ZWQgY29ubmVjdGVkIGFwcGxpY2F0aW9ucyBsaXN0OiAke18ua2V5cyhhcHBzKS5qb2luKCcsICcpfWApO1xuXG4gIC8vIHRyYW5zbGF0ZSB0aGUgcmVjZWl2ZWQgaW5mb3JtYXRpb24gaW50byBhbiBlYXNpZXItdG8tbWFuYWdlXG4gIC8vIGhhc2ggd2l0aCBhcHAgaWQgYXMga2V5LCBhbmQgYXBwIGluZm8gYXMgdmFsdWVcbiAgbGV0IG5ld0RpY3QgPSB7fTtcbiAgZm9yIChjb25zdCBkaWN0IG9mIF8udmFsdWVzKGFwcHMpKSB7XG4gICAgY29uc3QgW2lkLCBlbnRyeV0gPSBhcHBJbmZvRnJvbURpY3QoZGljdCk7XG4gICAgaWYgKHRoaXMuc2tpcHBlZEFwcHMuaW5jbHVkZXMoZW50cnkubmFtZSkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBuZXdEaWN0W2lkXSA9IGVudHJ5O1xuICB9XG4gIC8vIHVwZGF0ZSB0aGUgb2JqZWN0J3MgbGlzdCBvZiBhcHBzXG4gIGF3YWl0IHRoaXMudXNlQXBwRGljdExvY2soKGRvbmUpID0+IHtcbiAgICB0cnkge1xuICAgICAgXy5kZWZhdWx0cyh0aGlzLmFwcERpY3QsIG5ld0RpY3QpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBkb25lKCk7XG4gICAgfVxuICB9KTtcbn1cblxuY29uc3QgbWVzc2FnZUhhbmRsZXJzID0ge1xuICBvblBhZ2VDaGFuZ2UsXG4gIG9uQXBwQ29ubmVjdCxcbiAgb25BcHBEaXNjb25uZWN0LFxuICBvbkFwcFVwZGF0ZSxcbiAgb25Db25uZWN0ZWREcml2ZXJMaXN0LFxuICBvbkN1cnJlbnRTdGF0ZSxcbiAgb25Db25uZWN0ZWRB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
180
+ exports.default = messageHandlers;
181
+ //# sourceMappingURL=message-handlers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"message-handlers.js","names":["_logger","_interopRequireDefault","require","_events","_utils","_lodash","onPageChange","err","appIdKey","pageDict","_","isEmpty","pageArray","pageArrayFromDict","useAppDictLock","done","appDict","resolve","isEqual","log","debug","_navigatingToPage","simpleStringify","emit","events","EVENT_PAGE_CHANGE","replace","onAppConnect","dict","WIRApplicationIdentifierKey","updateAppsWithDict","onAppDisconnect","getDebuggerAppKey","bundleId","connected","EVENT_DISCONNECT","onAppUpdate","onConnectedDriverList","drivers","connectedDrivers","WIRDriverDictionaryKey","JSON","stringify","onCurrentState","state","currentState","WIRAutomationAvailabilityKey","onConnectedApplicationList","apps","keys","join","newDict","values","id","entry","appInfoFromDict","skippedApps","includes","name","defaults","messageHandlers","_default","exports","default"],"sources":["../../../lib/mixins/message-handlers.js"],"sourcesContent":["import log from '../logger';\nimport events from './events';\nimport { pageArrayFromDict, getDebuggerAppKey, simpleStringify, appInfoFromDict } from '../utils';\nimport _ from 'lodash';\n\n\n/*\n * Generic callbacks used throughout the lifecycle of the Remote Debugger.\n * These will be added to the prototype.\n */\n\nasync function onPageChange (err, appIdKey, pageDict) {\n if (_.isEmpty(pageDict)) {\n return;\n }\n\n const pageArray = pageArrayFromDict(pageDict);\n\n await this.useAppDictLock((done) => {\n try {\n // save the page dict for this app\n if (this.appDict[appIdKey]) {\n if (this.appDict[appIdKey].pageArray) {\n if (this.appDict[appIdKey].pageArray.resolve) {\n // pageDict is a pending promise, so resolve\n this.appDict[appIdKey].pageArray.resolve();\n } else {\n // we have a pre-existing pageDict\n if (_.isEqual(this.appDict[appIdKey].pageArray, pageArray)) {\n log.debug(`Received page change notice for app '${appIdKey}' ` +\n `but the listing has not changed. Ignoring.`);\n return done();\n }\n }\n }\n // keep track of the page dictionary\n this.appDict[appIdKey].pageArray = pageArray;\n }\n } finally {\n done();\n }\n });\n\n if (this._navigatingToPage) {\n // in the middle of navigating, so reporting a page change will cause problems\n return;\n }\n\n log.debug(`Page changed: ${simpleStringify(pageDict, true)}`);\n\n this.emit(events.EVENT_PAGE_CHANGE, {\n appIdKey: appIdKey.replace('PID:', ''),\n pageArray,\n });\n}\n\nasync function onAppConnect (err, dict) {\n const appIdKey = dict.WIRApplicationIdentifierKey;\n log.debug(`Notified that new application '${appIdKey}' has connected`);\n await this.useAppDictLock((done) => {\n try {\n this.updateAppsWithDict(dict);\n } finally {\n done();\n }\n });\n}\n\nfunction onAppDisconnect (err, dict) {\n const appIdKey = dict.WIRApplicationIdentifierKey;\n log.debug(`Application '${appIdKey}' disconnected. Removing from app dictionary.`);\n log.debug(`Current app is '${this.appIdKey}'`);\n\n // get rid of the entry in our app dictionary,\n // since it is no longer available\n delete this.appDict[appIdKey];\n\n // if the disconnected app is the one we are connected to, try to find another\n if (this.appIdKey === appIdKey) {\n log.debug(`No longer have app id. Attempting to find new one.`);\n this.appIdKey = getDebuggerAppKey(this.bundleId, this.appDict);\n }\n\n if (!this.appDict) {\n // this means we no longer have any apps. what the what?\n log.debug('Main app disconnected. Disconnecting altogether.');\n this.connected = false;\n this.emit(events.EVENT_DISCONNECT, true);\n }\n}\n\nasync function onAppUpdate (err, dict) {\n await this.useAppDictLock((done) => {\n try {\n this.updateAppsWithDict(dict);\n } finally {\n done();\n }\n });\n}\n\nfunction onConnectedDriverList (err, drivers) {\n this.connectedDrivers = drivers.WIRDriverDictionaryKey;\n log.debug(`Received connected driver list: ${JSON.stringify(this.connectedDrivers)}`);\n}\n\nfunction onCurrentState (err, state) {\n this.currentState = state.WIRAutomationAvailabilityKey;\n // This state changes when 'Remote Automation' in 'Settings app' > 'Safari' > 'Advanced' > 'Remote Automation' changes\n // WIRAutomationAvailabilityAvailable or WIRAutomationAvailabilityNotAvailable\n log.debug(`Received connected automation availability state: ${JSON.stringify(this.currentState)}`);\n}\n\nasync function onConnectedApplicationList (err, apps) {\n log.debug(`Received connected applications list: ${_.keys(apps).join(', ')}`);\n\n // translate the received information into an easier-to-manage\n // hash with app id as key, and app info as value\n let newDict = {};\n for (const dict of _.values(apps)) {\n const [id, entry] = appInfoFromDict(dict);\n if (this.skippedApps.includes(entry.name)) {\n continue;\n }\n newDict[id] = entry;\n }\n // update the object's list of apps\n await this.useAppDictLock((done) => {\n try {\n _.defaults(this.appDict, newDict);\n } finally {\n done();\n }\n });\n}\n\nconst messageHandlers = {\n onPageChange,\n onAppConnect,\n onAppDisconnect,\n onAppUpdate,\n onConnectedDriverList,\n onCurrentState,\n onConnectedApplicationList,\n};\n\nexport default messageHandlers;\n"],"mappings":"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"}
1
+ {"version":3,"file":"message-handlers.js","sourceRoot":"","sources":["../../../lib/mixins/message-handlers.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ declare namespace _default {
2
+ export { frameDetached };
3
+ export { pageLoad };
4
+ export { cancelPageLoad };
5
+ export { pageUnload };
6
+ export { waitForDom };
7
+ export { checkPageIsReady };
8
+ export { navToUrl };
9
+ export { waitForFrameNavigated };
10
+ }
11
+ export default _default;
12
+ export type TPageLoadVerifyHook = (() => Promise<any> | void) | undefined;
13
+ /**
14
+ * @typedef {(() => Promise<any>|void)|undefined} TPageLoadVerifyHook
15
+ */
16
+ /**
17
+ * @this {import('../remote-debugger').RemoteDebugger}
18
+ * @returns {void}
19
+ */
20
+ declare function frameDetached(this: import("../remote-debugger").default): void;
21
+ /**
22
+ * @this {import('../remote-debugger').RemoteDebugger}
23
+ * @param {timing.Timer?} startPageLoadTimer
24
+ * @param {TPageLoadVerifyHook} [pageLoadVerifyHook]
25
+ * @returns {Promise<void>}
26
+ */
27
+ declare function pageLoad(this: import("../remote-debugger").default, startPageLoadTimer: timing.Timer | null, pageLoadVerifyHook?: TPageLoadVerifyHook): Promise<void>;
28
+ declare class pageLoad {
29
+ /**
30
+ * @this {import('../remote-debugger').RemoteDebugger}
31
+ * @param {timing.Timer?} startPageLoadTimer
32
+ * @param {TPageLoadVerifyHook} [pageLoadVerifyHook]
33
+ * @returns {Promise<void>}
34
+ */
35
+ constructor(this: import("../remote-debugger").default, startPageLoadTimer: timing.Timer | null, pageLoadVerifyHook?: TPageLoadVerifyHook);
36
+ pageLoading: boolean;
37
+ pageLoadDelay: B<any>;
38
+ }
39
+ /**
40
+ * @this {import('../remote-debugger').RemoteDebugger}
41
+ * @returns {void}
42
+ */
43
+ declare function cancelPageLoad(this: import("../remote-debugger").default): void;
44
+ declare class cancelPageLoad {
45
+ pageLoading: boolean;
46
+ }
47
+ /**
48
+ * @this {import('../remote-debugger').RemoteDebugger}
49
+ * @returns {Promise<void>}
50
+ */
51
+ declare function pageUnload(this: import("../remote-debugger").default): Promise<void>;
52
+ /**
53
+ * @this {import('../remote-debugger').RemoteDebugger}
54
+ * @param {timing.Timer|null|undefined} startPageLoadTimer
55
+ * @param {TPageLoadVerifyHook} [pageLoadVerifyHook]
56
+ * @returns {Promise<void>}
57
+ */
58
+ declare function waitForDom(this: import("../remote-debugger").default, startPageLoadTimer: timing.Timer | null | undefined, pageLoadVerifyHook?: TPageLoadVerifyHook): Promise<void>;
59
+ /**
60
+ * @this {import('../remote-debugger').RemoteDebugger}
61
+ * @returns {Promise<boolean>}
62
+ */
63
+ declare function checkPageIsReady(this: import("../remote-debugger").default): Promise<boolean>;
64
+ /**
65
+ * @this {import('../remote-debugger').RemoteDebugger}
66
+ * @param {string} url
67
+ * @param {TPageLoadVerifyHook} [pageLoadVerifyHook]
68
+ * @returns {Promise<void>}
69
+ */
70
+ declare function navToUrl(this: import("../remote-debugger").default, url: string, pageLoadVerifyHook?: TPageLoadVerifyHook): Promise<void>;
71
+ declare class navToUrl {
72
+ /**
73
+ * @this {import('../remote-debugger').RemoteDebugger}
74
+ * @param {string} url
75
+ * @param {TPageLoadVerifyHook} [pageLoadVerifyHook]
76
+ * @returns {Promise<void>}
77
+ */
78
+ constructor(this: import("../remote-debugger").default, url: string, pageLoadVerifyHook?: TPageLoadVerifyHook);
79
+ _navigatingToPage: boolean;
80
+ }
81
+ /**
82
+ * @this {import('../remote-debugger').RemoteDebugger}
83
+ * @returns {Promise<any>}
84
+ */
85
+ declare function waitForFrameNavigated(this: import("../remote-debugger").default): Promise<any>;
86
+ declare class waitForFrameNavigated {
87
+ allowNavigationWithoutReload: boolean;
88
+ navigationDelay: B<any>;
89
+ }
90
+ import { timing } from '@appium/support';
91
+ import B from 'bluebird';
92
+ //# sourceMappingURL=navigate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigate.d.ts","sourceRoot":"","sources":["../../../lib/mixins/navigate.js"],"names":[],"mappings":";;;;;;;;;;;kCASa,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAC,IAAI,CAAC,GAAC,SAAS;AADhD;;GAEG;AAEH;;;GAGG;AACH,4EAFa,IAAI,CAIhB;AAED;;;;;GAKG;AACH,0FAJW,OAAO,KAAK,8BACZ,mBAAmB,GACjB,QAAQ,IAAI,CAAC,CAoDzB;;IAxDD;;;;;OAKG;IACH,4EAJW,OAAO,KAAK,8BACZ,mBAAmB,EAqD7B;IA1CC,qBAAuB;IAGrB,sBAAqD;;AAwCzD;;;GAGG;AACH,6EAFa,IAAI,CAQhB;;IAJC,qBAAwB;;AAM1B;;;GAGG;AACH,yEAFa,QAAQ,IAAI,CAAC,CAKzB;AAED;;;;;GAKG;AACH,4FAJW,OAAO,KAAK,GAAC,IAAI,GAAC,SAAS,uBAC3B,mBAAmB,GACjB,QAAQ,IAAI,CAAC,CAKzB;AAED;;;GAGG;AACH,+EAFa,QAAQ,OAAO,CAAC,CAoB5B;AAED;;;;;GAKG;AACH,2EAJW,MAAM,uBACN,mBAAmB,GACjB,QAAQ,IAAI,CAAC,CA0CzB;;IA9CD;;;;;OAKG;IACH,6DAJW,MAAM,uBACN,mBAAmB,EA2C7B;IAjCC,2BAA6B;;AAmC/B;;;GAGG;AACH,oFAFa,QAAQ,GAAG,CAAC,CAiDxB;;IA7BO,sCAAyC;IAc3C,wBAAqD;;uBAtN9B,iBAAiB;cAEhC,UAAU"}