appium-remote-debugger 9.1.2 → 9.1.4
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 +1 -0
- package/README.md +1 -13
- package/build/index.js +2 -9
- package/build/lib/atoms.js +2 -25
- package/build/lib/atoms.js.map +1 -0
- package/build/lib/logger.js +2 -8
- package/build/lib/logger.js.map +1 -0
- package/build/lib/mixins/connect.js +6 -72
- package/build/lib/mixins/connect.js.map +1 -0
- package/build/lib/mixins/events.js +2 -6
- package/build/lib/mixins/events.js.map +1 -0
- package/build/lib/mixins/execute.js +4 -37
- package/build/lib/mixins/execute.js.map +1 -0
- package/build/lib/mixins/index.js +2 -12
- package/build/lib/mixins/index.js.map +1 -0
- package/build/lib/mixins/message-handlers.js +2 -36
- package/build/lib/mixins/message-handlers.js.map +1 -0
- package/build/lib/mixins/navigate.js +5 -55
- package/build/lib/mixins/navigate.js.map +1 -0
- package/build/lib/protocol/index.js +21 -10
- package/build/lib/protocol/index.js.map +1 -0
- package/build/lib/remote-debugger-real-device.js +2 -12
- package/build/lib/remote-debugger-real-device.js.map +1 -0
- package/build/lib/remote-debugger.js +3 -64
- package/build/lib/remote-debugger.js.map +1 -0
- package/build/lib/rpc/index.js +2 -8
- package/build/lib/rpc/index.js.map +1 -0
- package/build/lib/rpc/remote-messages.js +6 -31
- package/build/lib/rpc/remote-messages.js.map +1 -0
- package/build/lib/rpc/rpc-client-real-device.js +2 -19
- package/build/lib/rpc/rpc-client-real-device.js.map +1 -0
- package/build/lib/rpc/rpc-client-simulator.js +5 -33
- package/build/lib/rpc/rpc-client-simulator.js.map +1 -0
- package/build/lib/rpc/rpc-client.js +14 -112
- package/build/lib/rpc/rpc-client.js.map +1 -0
- package/build/lib/rpc/rpc-message-handler.js +2 -55
- package/build/lib/rpc/rpc-message-handler.js.map +1 -0
- package/build/lib/utils.js +10 -47
- package/build/lib/utils.js.map +1 -0
- package/package.json +49 -25
- package/scripts/build-atoms.js +6 -0
- package/scripts/build-selenium.js +3 -0
- package/scripts/common.js +194 -0
- package/scripts/import-atoms.js +3 -0
|
@@ -1,54 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = exports.RemoteDebugger = exports.RPC_RESPONSE_TIMEOUT_MS = exports.REMOTE_DEBUGGER_PORT = void 0;
|
|
9
|
-
|
|
10
8
|
require("source-map-support/register");
|
|
11
|
-
|
|
12
9
|
var _events = require("events");
|
|
13
|
-
|
|
14
10
|
var _logger = _interopRequireDefault(require("./logger"));
|
|
15
|
-
|
|
16
11
|
var _rpc = require("./rpc");
|
|
17
|
-
|
|
18
12
|
var _utils = require("./utils");
|
|
19
|
-
|
|
20
13
|
var _mixins = require("./mixins");
|
|
21
|
-
|
|
22
14
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
23
|
-
|
|
24
15
|
var _bluebird = _interopRequireDefault(require("bluebird"));
|
|
25
|
-
|
|
26
16
|
var _path = _interopRequireDefault(require("path"));
|
|
27
|
-
|
|
28
17
|
var _asyncLock = _interopRequireDefault(require("async-lock"));
|
|
29
|
-
|
|
30
18
|
let VERSION;
|
|
31
|
-
|
|
32
19
|
try {
|
|
33
20
|
VERSION = require(_path.default.resolve(__dirname, '..', '..', 'package.json')).version;
|
|
34
21
|
} catch (ign) {}
|
|
35
|
-
|
|
36
22
|
const REMOTE_DEBUGGER_PORT = 27753;
|
|
37
23
|
exports.REMOTE_DEBUGGER_PORT = REMOTE_DEBUGGER_PORT;
|
|
38
24
|
const SAFARI_BUNDLE_ID = 'com.apple.mobilesafari';
|
|
25
|
+
|
|
39
26
|
const RPC_RESPONSE_TIMEOUT_MS = 5000;
|
|
40
27
|
exports.RPC_RESPONSE_TIMEOUT_MS = RPC_RESPONSE_TIMEOUT_MS;
|
|
41
28
|
const PAGE_READY_TIMEOUT = 5000;
|
|
42
29
|
const GARBAGE_COLLECT_TIMEOUT = 5000;
|
|
43
|
-
|
|
44
30
|
class RemoteDebugger extends _events.EventEmitter {
|
|
45
31
|
constructor(opts = {}) {
|
|
46
32
|
super();
|
|
47
|
-
|
|
48
33
|
if (VERSION) {
|
|
49
34
|
_logger.default.info(`Remote Debugger version ${VERSION}`);
|
|
50
35
|
}
|
|
51
|
-
|
|
52
36
|
const {
|
|
53
37
|
bundleId,
|
|
54
38
|
additionalBundleIds = [],
|
|
@@ -77,9 +61,7 @@ class RemoteDebugger extends _events.EventEmitter {
|
|
|
77
61
|
this.includeSafari = includeSafari;
|
|
78
62
|
this.useNewSafari = useNewSafari;
|
|
79
63
|
this.pageLoadMs = pageLoadMs;
|
|
80
|
-
|
|
81
64
|
_logger.default.debug(`useNewSafari --> ${this.useNewSafari}`);
|
|
82
|
-
|
|
83
65
|
this.garbageCollectOnExecute = garbageCollectOnExecute;
|
|
84
66
|
this.host = host;
|
|
85
67
|
this.port = port;
|
|
@@ -89,15 +71,12 @@ class RemoteDebugger extends _events.EventEmitter {
|
|
|
89
71
|
this.logAllCommunication = _lodash.default.isNil(logAllCommunication) ? !!logFullResponse : !!logAllCommunication;
|
|
90
72
|
this.logAllCommunicationHexDump = logAllCommunicationHexDump;
|
|
91
73
|
this.socketChunkSize = socketChunkSize;
|
|
92
|
-
|
|
93
74
|
if (_lodash.default.isInteger(webInspectorMaxFrameLength)) {
|
|
94
75
|
this.webInspectorMaxFrameLength = webInspectorMaxFrameLength;
|
|
95
76
|
}
|
|
96
|
-
|
|
97
77
|
this.fullPageInitialization = fullPageInitialization;
|
|
98
78
|
this._lock = new _asyncLock.default();
|
|
99
79
|
}
|
|
100
|
-
|
|
101
80
|
setup() {
|
|
102
81
|
this.appDict = {};
|
|
103
82
|
this.appIdKey = null;
|
|
@@ -108,10 +87,8 @@ class RemoteDebugger extends _events.EventEmitter {
|
|
|
108
87
|
this.rpcClient = null;
|
|
109
88
|
this._clientEventListeners = {};
|
|
110
89
|
}
|
|
111
|
-
|
|
112
90
|
teardown() {
|
|
113
91
|
_logger.default.debug('Cleaning up listeners');
|
|
114
|
-
|
|
115
92
|
this.appDict = {};
|
|
116
93
|
this.appIdKey = null;
|
|
117
94
|
this.pageIdKey = null;
|
|
@@ -120,7 +97,6 @@ class RemoteDebugger extends _events.EventEmitter {
|
|
|
120
97
|
this.removeAllListeners(RemoteDebugger.EVENT_PAGE_CHANGE);
|
|
121
98
|
this.removeAllListeners(RemoteDebugger.EVENT_DISCONNECT);
|
|
122
99
|
}
|
|
123
|
-
|
|
124
100
|
initRpcClient() {
|
|
125
101
|
this.rpcClient = new _rpc.RpcClientSimulator({
|
|
126
102
|
bundleId: this.bundleId,
|
|
@@ -136,32 +112,25 @@ class RemoteDebugger extends _events.EventEmitter {
|
|
|
136
112
|
webInspectorMaxFrameLength: this.webInspectorMaxFrameLength
|
|
137
113
|
});
|
|
138
114
|
}
|
|
139
|
-
|
|
140
115
|
get isConnected() {
|
|
141
116
|
var _this$rpcClient;
|
|
142
|
-
|
|
143
117
|
return !!((_this$rpcClient = this.rpcClient) !== null && _this$rpcClient !== void 0 && _this$rpcClient.isConnected);
|
|
144
118
|
}
|
|
145
|
-
|
|
146
119
|
async launchSafari() {
|
|
147
120
|
await this.rpcClient.send('launchApplication', {
|
|
148
121
|
bundleId: SAFARI_BUNDLE_ID
|
|
149
122
|
});
|
|
150
123
|
}
|
|
151
|
-
|
|
152
124
|
async startTimeline(fn) {
|
|
153
125
|
_logger.default.debug('Starting to record the timeline');
|
|
154
|
-
|
|
155
126
|
this.rpcClient.on('Timeline.eventRecorded', fn);
|
|
156
127
|
return await this.rpcClient.send('startTimeline', {
|
|
157
128
|
appIdKey: this.appIdKey,
|
|
158
129
|
pageIdKey: this.pageIdKey
|
|
159
130
|
});
|
|
160
131
|
}
|
|
161
|
-
|
|
162
132
|
async stopTimeline() {
|
|
163
133
|
_logger.default.debug('Stopping to record the timeline');
|
|
164
|
-
|
|
165
134
|
await this.rpcClient.send('Timeline.stop', {
|
|
166
135
|
appIdKey: this.appIdKey,
|
|
167
136
|
pageIdKey: this.pageIdKey
|
|
@@ -170,65 +139,48 @@ class RemoteDebugger extends _events.EventEmitter {
|
|
|
170
139
|
|
|
171
140
|
addClientEventListener(eventName, listener) {
|
|
172
141
|
this._clientEventListeners[eventName] = this._clientEventListeners[eventName] || [];
|
|
173
|
-
|
|
174
142
|
this._clientEventListeners[eventName].push(listener);
|
|
175
|
-
|
|
176
143
|
this.rpcClient.on(eventName, listener);
|
|
177
144
|
}
|
|
178
|
-
|
|
179
145
|
removeClientEventListener(eventName) {
|
|
180
146
|
for (const listener of this._clientEventListeners[eventName] || []) {
|
|
181
147
|
this.rpcClient.off(eventName, listener);
|
|
182
148
|
}
|
|
183
149
|
}
|
|
184
|
-
|
|
185
150
|
startConsole(listener) {
|
|
186
151
|
_logger.default.debug('Starting to listen for JavaScript console');
|
|
187
|
-
|
|
188
152
|
this.addClientEventListener('Console.messageAdded', listener);
|
|
189
153
|
this.addClientEventListener('Console.messageRepeatCountUpdated', listener);
|
|
190
154
|
}
|
|
191
|
-
|
|
192
155
|
stopConsole() {
|
|
193
156
|
_logger.default.debug('Stopping to listen for JavaScript console');
|
|
194
|
-
|
|
195
157
|
this.removeClientEventListener('Console.messageAdded');
|
|
196
158
|
this.removeClientEventListener('Console.messageRepeatCountUpdated');
|
|
197
159
|
}
|
|
198
|
-
|
|
199
160
|
startNetwork(listener) {
|
|
200
161
|
_logger.default.debug('Starting to listen for network events');
|
|
201
|
-
|
|
202
162
|
this.addClientEventListener('NetworkEvent', listener);
|
|
203
163
|
}
|
|
204
|
-
|
|
205
164
|
stopNetwork() {
|
|
206
165
|
_logger.default.debug('Stopping to listen for network events');
|
|
207
|
-
|
|
208
166
|
this.removeClientEventListener('NetworkEvent');
|
|
209
167
|
}
|
|
210
|
-
|
|
211
168
|
set allowNavigationWithoutReload(allow) {
|
|
212
169
|
this._allowNavigationWithoutReload = allow;
|
|
213
170
|
}
|
|
214
|
-
|
|
215
171
|
get allowNavigationWithoutReload() {
|
|
216
172
|
return this._allowNavigationWithoutReload;
|
|
217
173
|
}
|
|
218
|
-
|
|
219
174
|
async getCookies(urls) {
|
|
220
175
|
_logger.default.debug('Getting cookies');
|
|
221
|
-
|
|
222
176
|
return await this.rpcClient.send('Page.getCookies', {
|
|
223
177
|
appIdKey: this.appIdKey,
|
|
224
178
|
pageIdKey: this.pageIdKey,
|
|
225
179
|
urls
|
|
226
180
|
});
|
|
227
181
|
}
|
|
228
|
-
|
|
229
182
|
async deleteCookie(cookieName, url) {
|
|
230
183
|
_logger.default.debug(`Deleting cookie '${cookieName}' on '${url}'`);
|
|
231
|
-
|
|
232
184
|
return await this.rpcClient.send('Page.deleteCookie', {
|
|
233
185
|
appIdKey: this.appIdKey,
|
|
234
186
|
pageIdKey: this.pageIdKey,
|
|
@@ -236,10 +188,8 @@ class RemoteDebugger extends _events.EventEmitter {
|
|
|
236
188
|
url
|
|
237
189
|
});
|
|
238
190
|
}
|
|
239
|
-
|
|
240
191
|
async garbageCollect(timeoutMs = GARBAGE_COLLECT_TIMEOUT) {
|
|
241
192
|
_logger.default.debug(`Garbage collecting with ${timeoutMs}ms timeout`);
|
|
242
|
-
|
|
243
193
|
try {
|
|
244
194
|
(0, _utils.checkParams)({
|
|
245
195
|
appIdKey: this.appIdKey,
|
|
@@ -247,10 +197,8 @@ class RemoteDebugger extends _events.EventEmitter {
|
|
|
247
197
|
});
|
|
248
198
|
} catch (err) {
|
|
249
199
|
_logger.default.debug(`Unable to collect garbage at this time`);
|
|
250
|
-
|
|
251
200
|
return;
|
|
252
201
|
}
|
|
253
|
-
|
|
254
202
|
await _bluebird.default.resolve(this.rpcClient.send('Heap.gc', {
|
|
255
203
|
appIdKey: this.appIdKey,
|
|
256
204
|
pageIdKey: this.pageIdKey
|
|
@@ -264,29 +212,20 @@ class RemoteDebugger extends _events.EventEmitter {
|
|
|
264
212
|
}
|
|
265
213
|
});
|
|
266
214
|
}
|
|
267
|
-
|
|
268
215
|
async useAppDictLock(fn) {
|
|
269
216
|
return await this._lock.acquire('appDict', fn);
|
|
270
217
|
}
|
|
271
|
-
|
|
272
218
|
get skippedApps() {
|
|
273
219
|
return this._skippedApps || [];
|
|
274
220
|
}
|
|
275
|
-
|
|
276
221
|
}
|
|
277
|
-
|
|
278
222
|
exports.RemoteDebugger = RemoteDebugger;
|
|
279
|
-
|
|
280
223
|
for (const [name, fn] of _lodash.default.toPairs(_mixins.mixins)) {
|
|
281
224
|
RemoteDebugger.prototype[name] = fn;
|
|
282
225
|
}
|
|
283
|
-
|
|
284
226
|
for (const [name, event] of _lodash.default.toPairs(_mixins.events)) {
|
|
285
227
|
RemoteDebugger[name] = event;
|
|
286
228
|
}
|
|
287
|
-
|
|
288
229
|
var _default = RemoteDebugger;
|
|
289
|
-
exports.default = _default;
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL3JlbW90ZS1kZWJ1Z2dlci5qcyIsIm5hbWVzIjpbIlZFUlNJT04iLCJyZXF1aXJlIiwicGF0aCIsInJlc29sdmUiLCJfX2Rpcm5hbWUiLCJ2ZXJzaW9uIiwiaWduIiwiUkVNT1RFX0RFQlVHR0VSX1BPUlQiLCJTQUZBUklfQlVORExFX0lEIiwiUlBDX1JFU1BPTlNFX1RJTUVPVVRfTVMiLCJQQUdFX1JFQURZX1RJTUVPVVQiLCJHQVJCQUdFX0NPTExFQ1RfVElNRU9VVCIsIlJlbW90ZURlYnVnZ2VyIiwiRXZlbnRFbWl0dGVyIiwiY29uc3RydWN0b3IiLCJvcHRzIiwibG9nIiwiaW5mbyIsImJ1bmRsZUlkIiwiYWRkaXRpb25hbEJ1bmRsZUlkcyIsInBsYXRmb3JtVmVyc2lvbiIsImlzU2FmYXJpIiwiaW5jbHVkZVNhZmFyaSIsInVzZU5ld1NhZmFyaSIsInBhZ2VMb2FkTXMiLCJob3N0IiwicG9ydCIsInNvY2tldFBhdGgiLCJwYWdlUmVhZHlUaW1lb3V0IiwicmVtb3RlRGVidWdQcm94eSIsImdhcmJhZ2VDb2xsZWN0T25FeGVjdXRlIiwibG9nRnVsbFJlc3BvbnNlIiwibG9nQWxsQ29tbXVuaWNhdGlvbiIsImxvZ0FsbENvbW11bmljYXRpb25IZXhEdW1wIiwid2ViSW5zcGVjdG9yTWF4RnJhbWVMZW5ndGgiLCJzb2NrZXRDaHVua1NpemUiLCJmdWxsUGFnZUluaXRpYWxpemF0aW9uIiwiZGVidWciLCJfIiwiaXNOaWwiLCJpc0ludGVnZXIiLCJfbG9jayIsIkFzeW5jTG9jayIsInNldHVwIiwiYXBwRGljdCIsImFwcElkS2V5IiwicGFnZUlkS2V5IiwicGFnZUxvYWRpbmciLCJfbmF2aWdhdGluZ1RvUGFnZSIsImFsbG93TmF2aWdhdGlvbldpdGhvdXRSZWxvYWQiLCJycGNDbGllbnQiLCJfY2xpZW50RXZlbnRMaXN0ZW5lcnMiLCJ0ZWFyZG93biIsInJlbW92ZUFsbExpc3RlbmVycyIsIkVWRU5UX1BBR0VfQ0hBTkdFIiwiRVZFTlRfRElTQ09OTkVDVCIsImluaXRScGNDbGllbnQiLCJScGNDbGllbnRTaW11bGF0b3IiLCJtZXNzYWdlUHJveHkiLCJpc0Nvbm5lY3RlZCIsImxhdW5jaFNhZmFyaSIsInNlbmQiLCJzdGFydFRpbWVsaW5lIiwiZm4iLCJvbiIsInN0b3BUaW1lbGluZSIsImFkZENsaWVudEV2ZW50TGlzdGVuZXIiLCJldmVudE5hbWUiLCJsaXN0ZW5lciIsInB1c2giLCJyZW1vdmVDbGllbnRFdmVudExpc3RlbmVyIiwib2ZmIiwic3RhcnRDb25zb2xlIiwic3RvcENvbnNvbGUiLCJzdGFydE5ldHdvcmsiLCJzdG9wTmV0d29yayIsImFsbG93IiwiX2FsbG93TmF2aWdhdGlvbldpdGhvdXRSZWxvYWQiLCJnZXRDb29raWVzIiwidXJscyIsImRlbGV0ZUNvb2tpZSIsImNvb2tpZU5hbWUiLCJ1cmwiLCJnYXJiYWdlQ29sbGVjdCIsInRpbWVvdXRNcyIsImNoZWNrUGFyYW1zIiwiZXJyIiwiQiIsInRpbWVvdXQiLCJ0aGVuIiwiZ2NTdWNjZXNzIiwiY2F0Y2giLCJnY0Vycm9yIiwiVGltZW91dEVycm9yIiwibWVzc2FnZSIsInVzZUFwcERpY3RMb2NrIiwiYWNxdWlyZSIsInNraXBwZWRBcHBzIiwiX3NraXBwZWRBcHBzIiwibmFtZSIsInRvUGFpcnMiLCJtaXhpbnMiLCJwcm90b3R5cGUiLCJldmVudCIsImV2ZW50cyJdLCJzb3VyY2VSb290IjoiLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9yZW1vdGUtZGVidWdnZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnZXZlbnRzJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IHsgUnBjQ2xpZW50U2ltdWxhdG9yIH0gZnJvbSAnLi9ycGMnO1xuaW1wb3J0IHsgY2hlY2tQYXJhbXMgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IG1peGlucywgZXZlbnRzIH0gZnJvbSAnLi9taXhpbnMnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IEFzeW5jTG9jayBmcm9tICdhc3luYy1sb2NrJztcblxuXG5sZXQgVkVSU0lPTjtcbnRyeSB7XG4gIFZFUlNJT04gPSByZXF1aXJlKHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLicsICcuLicsICdwYWNrYWdlLmpzb24nKSkudmVyc2lvbjtcbn0gY2F0Y2ggKGlnbikge31cblxuY29uc3QgUkVNT1RFX0RFQlVHR0VSX1BPUlQgPSAyNzc1MztcbmNvbnN0IFNBRkFSSV9CVU5ETEVfSUQgPSAnY29tLmFwcGxlLm1vYmlsZXNhZmFyaSc7XG5cbi8qIEhvdyBtYW55IG1pbGxpc2Vjb25kcyB0byB3YWl0IGZvciB3ZWJraXQgdG8gcmV0dXJuIGEgcmVzcG9uc2UgYmVmb3JlIHRpbWluZyBvdXQgKi9cbmNvbnN0IFJQQ19SRVNQT05TRV9USU1FT1VUX01TID0gNTAwMDtcblxuY29uc3QgUEFHRV9SRUFEWV9USU1FT1VUID0gNTAwMDtcblxuY29uc3QgR0FSQkFHRV9DT0xMRUNUX1RJTUVPVVQgPSA1MDAwO1xuXG5cbmNsYXNzIFJlbW90ZURlYnVnZ2VyIGV4dGVuZHMgRXZlbnRFbWl0dGVyIHtcbiAgLypcbiAgICogVGhlIGNvbnN0cnVjdG9yIHRha2VzIGFuIG9wdHMgaGFzaCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcbiAgICogICAtIGJ1bmRsZUlkIC0gaWQgb2YgdGhlIGFwcCBiZWluZyBjb25uZWN0ZWQgdG9cbiAgICogICAtIGFkZGl0aW9uYWxCdW5kbGVJZHMgLSBhcnJheSBvZiBwb3NzaWJsZSBidW5kbGUgaWRzIHRoYXQgdGhlIGluc3BlY3RvclxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdWxkIHJldHVyblxuICAgKiAgIC0gcGxhdGZvcm1WZXJzaW9uIC0gdmVyc2lvbiBvZiBpT1NcbiAgICogICAtIHVzZU5ld1NhZmFyaSAtIGZvciB3ZWIgaW5zcGVjdG9yLCB3aGV0aGVyIHRoaXMgaXMgYSBuZXcgU2FmYXJpIGluc3RhbmNlXG4gICAqICAgLSBwYWdlTG9hZE1zIC0gdGhlIHRpbWUsIGluIG1zLCB0aGF0IHNob3VsZCBiZSB3YWl0ZWQgZm9yIHBhZ2UgbG9hZGluZ1xuICAgKiAgIC0gaG9zdCAtIHRoZSByZW1vdGUgZGVidWdnZXIncyBob3N0IGFkZHJlc3NcbiAgICogICAtIHBvcnQgLSB0aGUgcmVtb3RlIGRlYnVnZ2VyIHBvcnQgdGhyb3VnaCB3aGljaCB0byBjb21tdW5pY2F0ZVxuICAgKiAgIC0gbG9nQWxsQ29tbXVuaWNhdGlvbiAtIGxvZyBwbGlzdHMgc2VudCBhbmQgcmVjZWl2ZWQgZnJvbSBXZWIgSW5zcGVjdG9yXG4gICAqICAgLSBsb2dBbGxDb21tdW5pY2F0aW9uSGV4RHVtcCAtIGxvZyBjb21tdW5pY2F0aW9uIGZyb20gV2ViIEluc3BlY3RvciBhcyBoZXggZHVtcFxuICAgKiAgIC0gc29ja2V0Q2h1bmtTaXplIC0gc2l6ZSwgaW4gYnl0ZXMsIG9mIGNodW5rcyBvZiBkYXRhIHNlbnQgdG8gV2ViIEluc3BlY3RvciAocmVhbCBkZXZpY2Ugb25seSlcbiAgICogICAtIHdlYkluc3BlY3Rvck1heEZyYW1lTGVuZ3RoIC0gVGhlIG1heGltdW0gc2l6ZSBpbiBieXRlcyBvZiBhIHNpbmdsZSBkYXRhIGZyYW1lXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBkZXZpY2UgY29tbXVuaWNhdGlvbiBwcm90b2NvbFxuICAgKi9cbiAgY29uc3RydWN0b3IgKG9wdHMgPSB7fSkge1xuICAgIHN1cGVyKCk7XG5cbiAgICBpZiAoVkVSU0lPTikge1xuICAgICAgbG9nLmluZm8oYFJlbW90ZSBEZWJ1Z2dlciB2ZXJzaW9uICR7VkVSU0lPTn1gKTtcbiAgICB9XG5cbiAgICBjb25zdCB7XG4gICAgICBidW5kbGVJZCxcbiAgICAgIGFkZGl0aW9uYWxCdW5kbGVJZHMgPSBbXSxcbiAgICAgIHBsYXRmb3JtVmVyc2lvbixcbiAgICAgIGlzU2FmYXJpID0gdHJ1ZSxcbiAgICAgIGluY2x1ZGVTYWZhcmkgPSBmYWxzZSxcbiAgICAgIHVzZU5ld1NhZmFyaSA9IGZhbHNlLFxuICAgICAgcGFnZUxvYWRNcyxcbiAgICAgIGhvc3QsXG4gICAgICBwb3J0ID0gUkVNT1RFX0RFQlVHR0VSX1BPUlQsXG4gICAgICBzb2NrZXRQYXRoLFxuICAgICAgcGFnZVJlYWR5VGltZW91dCA9IFBBR0VfUkVBRFlfVElNRU9VVCxcbiAgICAgIHJlbW90ZURlYnVnUHJveHksXG4gICAgICBnYXJiYWdlQ29sbGVjdE9uRXhlY3V0ZSA9IGZhbHNlLFxuICAgICAgbG9nRnVsbFJlc3BvbnNlID0gZmFsc2UsXG4gICAgICBsb2dBbGxDb21tdW5pY2F0aW9uID0gZmFsc2UsXG4gICAgICBsb2dBbGxDb21tdW5pY2F0aW9uSGV4RHVtcCA9IGZhbHNlLFxuICAgICAgd2ViSW5zcGVjdG9yTWF4RnJhbWVMZW5ndGgsXG4gICAgICBzb2NrZXRDaHVua1NpemUsXG4gICAgICBmdWxsUGFnZUluaXRpYWxpemF0aW9uLFxuICAgIH0gPSBvcHRzO1xuXG4gICAgdGhpcy5idW5kbGVJZCA9IGJ1bmRsZUlkO1xuICAgIHRoaXMuYWRkaXRpb25hbEJ1bmRsZUlkcyA9IGFkZGl0aW9uYWxCdW5kbGVJZHM7XG4gICAgdGhpcy5wbGF0Zm9ybVZlcnNpb24gPSBwbGF0Zm9ybVZlcnNpb247XG4gICAgdGhpcy5pc1NhZmFyaSA9IGlzU2FmYXJpO1xuICAgIHRoaXMuaW5jbHVkZVNhZmFyaSA9IGluY2x1ZGVTYWZhcmk7XG4gICAgdGhpcy51c2VOZXdTYWZhcmkgPSB1c2VOZXdTYWZhcmk7XG4gICAgdGhpcy5wYWdlTG9hZE1zID0gcGFnZUxvYWRNcztcbiAgICBsb2cuZGVidWcoYHVzZU5ld1NhZmFyaSAtLT4gJHt0aGlzLnVzZU5ld1NhZmFyaX1gKTtcblxuICAgIHRoaXMuZ2FyYmFnZUNvbGxlY3RPbkV4ZWN1dGUgPSBnYXJiYWdlQ29sbGVjdE9uRXhlY3V0ZTtcblxuICAgIHRoaXMuaG9zdCA9IGhvc3Q7XG4gICAgdGhpcy5wb3J0ID0gcG9ydDtcbiAgICB0aGlzLnNvY2tldFBhdGggPSBzb2NrZXRQYXRoO1xuICAgIHRoaXMucmVtb3RlRGVidWdQcm94eSA9IHJlbW90ZURlYnVnUHJveHk7XG4gICAgdGhpcy5wYWdlUmVhZHlUaW1lb3V0ID0gcGFnZVJlYWR5VGltZW91dDtcblxuICAgIHRoaXMubG9nQWxsQ29tbXVuaWNhdGlvbiA9IF8uaXNOaWwobG9nQWxsQ29tbXVuaWNhdGlvbikgPyAhIWxvZ0Z1bGxSZXNwb25zZSA6ICEhbG9nQWxsQ29tbXVuaWNhdGlvbjtcbiAgICB0aGlzLmxvZ0FsbENvbW11bmljYXRpb25IZXhEdW1wID0gbG9nQWxsQ29tbXVuaWNhdGlvbkhleER1bXA7XG4gICAgdGhpcy5zb2NrZXRDaHVua1NpemUgPSBzb2NrZXRDaHVua1NpemU7XG5cbiAgICBpZiAoXy5pc0ludGVnZXIod2ViSW5zcGVjdG9yTWF4RnJhbWVMZW5ndGgpKSB7XG4gICAgICB0aGlzLndlYkluc3BlY3Rvck1heEZyYW1lTGVuZ3RoID0gd2ViSW5zcGVjdG9yTWF4RnJhbWVMZW5ndGg7XG4gICAgfVxuXG4gICAgdGhpcy5mdWxsUGFnZUluaXRpYWxpemF0aW9uID0gZnVsbFBhZ2VJbml0aWFsaXphdGlvbjtcblxuICAgIHRoaXMuX2xvY2sgPSBuZXcgQXN5bmNMb2NrKCk7XG4gIH1cblxuICBzZXR1cCAoKSB7XG4gICAgLy8gYXBwIGhhbmRsaW5nIGNvbmZpZ3VyYXRpb25cbiAgICB0aGlzLmFwcERpY3QgPSB7fTtcbiAgICB0aGlzLmFwcElkS2V5ID0gbnVsbDtcbiAgICB0aGlzLnBhZ2VJZEtleSA9IG51bGw7XG4gICAgdGhpcy5wYWdlTG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuX25hdmlnYXRpbmdUb1BhZ2UgPSBmYWxzZTtcbiAgICB0aGlzLmFsbG93TmF2aWdhdGlvbldpdGhvdXRSZWxvYWQgPSBmYWxzZTtcblxuICAgIHRoaXMucnBjQ2xpZW50ID0gbnVsbDtcbiAgICB0aGlzLl9jbGllbnRFdmVudExpc3RlbmVycyA9IHt9O1xuICB9XG5cbiAgdGVhcmRvd24gKCkge1xuICAgIGxvZy5kZWJ1ZygnQ2xlYW5pbmcgdXAgbGlzdGVuZXJzJyk7XG5cbiAgICB0aGlzLmFwcERpY3QgPSB7fTtcbiAgICB0aGlzLmFwcElkS2V5ID0gbnVsbDtcbiAgICB0aGlzLnBhZ2VJZEtleSA9IG51bGw7XG4gICAgdGhpcy5wYWdlTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgdGhpcy5ycGNDbGllbnQgPSBudWxsO1xuXG4gICAgdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoUmVtb3RlRGVidWdnZXIuRVZFTlRfUEFHRV9DSEFOR0UpO1xuICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKFJlbW90ZURlYnVnZ2VyLkVWRU5UX0RJU0NPTk5FQ1QpO1xuICB9XG5cbiAgaW5pdFJwY0NsaWVudCAoKSB7XG4gICAgdGhpcy5ycGNDbGllbnQgPSBuZXcgUnBjQ2xpZW50U2ltdWxhdG9yKHtcbiAgICAgIGJ1bmRsZUlkOiB0aGlzLmJ1bmRsZUlkLFxuICAgICAgcGxhdGZvcm1WZXJzaW9uOiB0aGlzLnBsYXRmb3JtVmVyc2lvbixcbiAgICAgIGlzU2FmYXJpOiB0aGlzLmlzU2FmYXJpLFxuICAgICAgaG9zdDogdGhpcy5ob3N0LFxuICAgICAgcG9ydDogdGhpcy5wb3J0LFxuICAgICAgc29ja2V0UGF0aDogdGhpcy5zb2NrZXRQYXRoLFxuICAgICAgbWVzc2FnZVByb3h5OiB0aGlzLnJlbW90ZURlYnVnUHJveHksXG4gICAgICBsb2dBbGxDb21tdW5pY2F0aW9uOiB0aGlzLmxvZ0FsbENvbW11bmljYXRpb24sXG4gICAgICBsb2dBbGxDb21tdW5pY2F0aW9uSGV4RHVtcDogdGhpcy5sb2dBbGxDb21tdW5pY2F0aW9uSGV4RHVtcCxcbiAgICAgIGZ1bGxQYWdlSW5pdGlhbGl6YXRpb246IHRoaXMuZnVsbFBhZ2VJbml0aWFsaXphdGlvbixcbiAgICAgIHdlYkluc3BlY3Rvck1heEZyYW1lTGVuZ3RoOiB0aGlzLndlYkluc3BlY3Rvck1heEZyYW1lTGVuZ3RoLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGlzQ29ubmVjdGVkICgpIHtcbiAgICByZXR1cm4gISF0aGlzLnJwY0NsaWVudD8uaXNDb25uZWN0ZWQ7XG4gIH1cblxuICBhc3luYyBsYXVuY2hTYWZhcmkgKCkge1xuICAgIGF3YWl0IHRoaXMucnBjQ2xpZW50LnNlbmQoJ2xhdW5jaEFwcGxpY2F0aW9uJywge1xuICAgICAgYnVuZGxlSWQ6IFNBRkFSSV9CVU5ETEVfSURcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHN0YXJ0VGltZWxpbmUgKGZuKSB7XG4gICAgbG9nLmRlYnVnKCdTdGFydGluZyB0byByZWNvcmQgdGhlIHRpbWVsaW5lJyk7XG4gICAgdGhpcy5ycGNDbGllbnQub24oJ1RpbWVsaW5lLmV2ZW50UmVjb3JkZWQnLCBmbik7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucnBjQ2xpZW50LnNlbmQoJ3N0YXJ0VGltZWxpbmUnLCB7XG4gICAgICBhcHBJZEtleTogdGhpcy5hcHBJZEtleSxcbiAgICAgIHBhZ2VJZEtleTogdGhpcy5wYWdlSWRLZXksXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBzdG9wVGltZWxpbmUgKCkge1xuICAgIGxvZy5kZWJ1ZygnU3RvcHBpbmcgdG8gcmVjb3JkIHRoZSB0aW1lbGluZScpO1xuICAgIGF3YWl0IHRoaXMucnBjQ2xpZW50LnNlbmQoJ1RpbWVsaW5lLnN0b3AnLCB7XG4gICAgICBhcHBJZEtleTogdGhpcy5hcHBJZEtleSxcbiAgICAgIHBhZ2VJZEtleTogdGhpcy5wYWdlSWRLZXksXG4gICAgfSk7XG4gIH1cblxuICAvKlxuICAgKiBLZWVwIHRyYWNrIG9mIHRoZSBjbGllbnQgZXZlbnQgbGlzdGVuZXJzIHNvIHRoZXkgY2FuIGJlIHJlbW92ZWRcbiAgICovXG4gIGFkZENsaWVudEV2ZW50TGlzdGVuZXIgKGV2ZW50TmFtZSwgbGlzdGVuZXIpIHtcbiAgICB0aGlzLl9jbGllbnRFdmVudExpc3RlbmVyc1tldmVudE5hbWVdID0gdGhpcy5fY2xpZW50RXZlbnRMaXN0ZW5lcnNbZXZlbnROYW1lXSB8fCBbXTtcbiAgICB0aGlzLl9jbGllbnRFdmVudExpc3RlbmVyc1tldmVudE5hbWVdLnB1c2gobGlzdGVuZXIpO1xuICAgIHRoaXMucnBjQ2xpZW50Lm9uKGV2ZW50TmFtZSwgbGlzdGVuZXIpO1xuICB9XG5cbiAgcmVtb3ZlQ2xpZW50RXZlbnRMaXN0ZW5lciAoZXZlbnROYW1lKSB7XG4gICAgZm9yIChjb25zdCBsaXN0ZW5lciBvZiAodGhpcy5fY2xpZW50RXZlbnRMaXN0ZW5lcnNbZXZlbnROYW1lXSB8fCBbXSkpIHtcbiAgICAgIHRoaXMucnBjQ2xpZW50Lm9mZihldmVudE5hbWUsIGxpc3RlbmVyKTtcbiAgICB9XG4gIH1cblxuICBzdGFydENvbnNvbGUgKGxpc3RlbmVyKSB7XG4gICAgbG9nLmRlYnVnKCdTdGFydGluZyB0byBsaXN0ZW4gZm9yIEphdmFTY3JpcHQgY29uc29sZScpO1xuICAgIHRoaXMuYWRkQ2xpZW50RXZlbnRMaXN0ZW5lcignQ29uc29sZS5tZXNzYWdlQWRkZWQnLCBsaXN0ZW5lcik7XG4gICAgdGhpcy5hZGRDbGllbnRFdmVudExpc3RlbmVyKCdDb25zb2xlLm1lc3NhZ2VSZXBlYXRDb3VudFVwZGF0ZWQnLCBsaXN0ZW5lcik7XG4gIH1cblxuICBzdG9wQ29uc29sZSAoKSB7XG4gICAgbG9nLmRlYnVnKCdTdG9wcGluZyB0byBsaXN0ZW4gZm9yIEphdmFTY3JpcHQgY29uc29sZScpO1xuICAgIHRoaXMucmVtb3ZlQ2xpZW50RXZlbnRMaXN0ZW5lcignQ29uc29sZS5tZXNzYWdlQWRkZWQnKTtcbiAgICB0aGlzLnJlbW92ZUNsaWVudEV2ZW50TGlzdGVuZXIoJ0NvbnNvbGUubWVzc2FnZVJlcGVhdENvdW50VXBkYXRlZCcpO1xuICB9XG5cbiAgc3RhcnROZXR3b3JrIChsaXN0ZW5lcikge1xuICAgIGxvZy5kZWJ1ZygnU3RhcnRpbmcgdG8gbGlzdGVuIGZvciBuZXR3b3JrIGV2ZW50cycpO1xuICAgIHRoaXMuYWRkQ2xpZW50RXZlbnRMaXN0ZW5lcignTmV0d29ya0V2ZW50JywgbGlzdGVuZXIpO1xuICB9XG5cbiAgc3RvcE5ldHdvcmsgKCkge1xuICAgIGxvZy5kZWJ1ZygnU3RvcHBpbmcgdG8gbGlzdGVuIGZvciBuZXR3b3JrIGV2ZW50cycpO1xuICAgIHRoaXMucmVtb3ZlQ2xpZW50RXZlbnRMaXN0ZW5lcignTmV0d29ya0V2ZW50Jyk7XG4gIH1cblxuICBzZXQgYWxsb3dOYXZpZ2F0aW9uV2l0aG91dFJlbG9hZCAoYWxsb3cpIHtcbiAgICB0aGlzLl9hbGxvd05hdmlnYXRpb25XaXRob3V0UmVsb2FkID0gYWxsb3c7XG4gIH1cblxuICBnZXQgYWxsb3dOYXZpZ2F0aW9uV2l0aG91dFJlbG9hZCAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FsbG93TmF2aWdhdGlvbldpdGhvdXRSZWxvYWQ7XG4gIH1cblxuICBhc3luYyBnZXRDb29raWVzICh1cmxzKSB7XG4gICAgbG9nLmRlYnVnKCdHZXR0aW5nIGNvb2tpZXMnKTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5ycGNDbGllbnQuc2VuZCgnUGFnZS5nZXRDb29raWVzJywge1xuICAgICAgYXBwSWRLZXk6IHRoaXMuYXBwSWRLZXksXG4gICAgICBwYWdlSWRLZXk6IHRoaXMucGFnZUlkS2V5LFxuICAgICAgdXJscyxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZUNvb2tpZSAoY29va2llTmFtZSwgdXJsKSB7XG4gICAgbG9nLmRlYnVnKGBEZWxldGluZyBjb29raWUgJyR7Y29va2llTmFtZX0nIG9uICcke3VybH0nYCk7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucnBjQ2xpZW50LnNlbmQoJ1BhZ2UuZGVsZXRlQ29va2llJywge1xuICAgICAgYXBwSWRLZXk6IHRoaXMuYXBwSWRLZXksXG4gICAgICBwYWdlSWRLZXk6IHRoaXMucGFnZUlkS2V5LFxuICAgICAgY29va2llTmFtZSxcbiAgICAgIHVybCxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGdhcmJhZ2VDb2xsZWN0ICh0aW1lb3V0TXMgPSBHQVJCQUdFX0NPTExFQ1RfVElNRU9VVCkge1xuICAgIGxvZy5kZWJ1ZyhgR2FyYmFnZSBjb2xsZWN0aW5nIHdpdGggJHt0aW1lb3V0TXN9bXMgdGltZW91dGApO1xuICAgIHRyeSB7XG4gICAgICBjaGVja1BhcmFtcyh7YXBwSWRLZXk6IHRoaXMuYXBwSWRLZXksIHBhZ2VJZEtleTogdGhpcy5wYWdlSWRLZXl9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxvZy5kZWJ1ZyhgVW5hYmxlIHRvIGNvbGxlY3QgZ2FyYmFnZSBhdCB0aGlzIHRpbWVgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBhd2FpdCBCLnJlc29sdmUodGhpcy5ycGNDbGllbnQuc2VuZCgnSGVhcC5nYycsIHtcbiAgICAgIGFwcElkS2V5OiB0aGlzLmFwcElkS2V5LFxuICAgICAgcGFnZUlkS2V5OiB0aGlzLnBhZ2VJZEtleSxcbiAgICB9KSkudGltZW91dCh0aW1lb3V0TXMpXG4gICAgLnRoZW4oZnVuY3Rpb24gZ2NTdWNjZXNzICgpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBwcm9taXNlL3ByZWZlci1hd2FpdC10by10aGVuXG4gICAgICBsb2cuZGVidWcoYEdhcmJhZ2UgY29sbGVjdGlvbiBzdWNjZXNzZnVsYCk7XG4gICAgfSkuY2F0Y2goZnVuY3Rpb24gZ2NFcnJvciAoZXJyKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcHJvbWlzZS9wcmVmZXItYXdhaXQtdG8tY2FsbGJhY2tzXG4gICAgICBpZiAoZXJyIGluc3RhbmNlb2YgQi5UaW1lb3V0RXJyb3IpIHtcbiAgICAgICAgbG9nLmRlYnVnKGBHYXJiYWdlIGNvbGxlY3Rpb24gdGltZWQgb3V0IGFmdGVyICR7dGltZW91dE1zfW1zYCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsb2cuZGVidWcoYFVuYWJsZSB0byBjb2xsZWN0IGdhcmJhZ2U6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyB1c2VBcHBEaWN0TG9jayAoZm4pIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fbG9jay5hY3F1aXJlKCdhcHBEaWN0JywgZm4pO1xuICB9XG5cbiAgZ2V0IHNraXBwZWRBcHBzICgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2tpcHBlZEFwcHMgfHwgW107XG4gIH1cbn1cblxuZm9yIChjb25zdCBbbmFtZSwgZm5dIG9mIF8udG9QYWlycyhtaXhpbnMpKSB7XG4gIFJlbW90ZURlYnVnZ2VyLnByb3RvdHlwZVtuYW1lXSA9IGZuO1xufVxuXG5mb3IgKGNvbnN0IFtuYW1lLCBldmVudF0gb2YgXy50b1BhaXJzKGV2ZW50cykpIHtcbiAgUmVtb3RlRGVidWdnZXJbbmFtZV0gPSBldmVudDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgUmVtb3RlRGVidWdnZXI7XG5leHBvcnQge1xuICBSZW1vdGVEZWJ1Z2dlciwgUkVNT1RFX0RFQlVHR0VSX1BPUlQsIFJQQ19SRVNQT05TRV9USU1FT1VUX01TLFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFHQSxJQUFJQSxPQUFKOztBQUNBLElBQUk7RUFDRkEsT0FBTyxHQUFHQyxPQUFPLENBQUNDLGFBQUEsQ0FBS0MsT0FBTCxDQUFhQyxTQUFiLEVBQXdCLElBQXhCLEVBQThCLElBQTlCLEVBQW9DLGNBQXBDLENBQUQsQ0FBUCxDQUE2REMsT0FBdkU7QUFDRCxDQUZELENBRUUsT0FBT0MsR0FBUCxFQUFZLENBQUU7O0FBRWhCLE1BQU1DLG9CQUFvQixHQUFHLEtBQTdCOztBQUNBLE1BQU1DLGdCQUFnQixHQUFHLHdCQUF6QjtBQUdBLE1BQU1DLHVCQUF1QixHQUFHLElBQWhDOztBQUVBLE1BQU1DLGtCQUFrQixHQUFHLElBQTNCO0FBRUEsTUFBTUMsdUJBQXVC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
|
|
230
|
+
exports.default = _default;
|
|
231
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJWRVJTSU9OIiwicmVxdWlyZSIsInBhdGgiLCJyZXNvbHZlIiwiX19kaXJuYW1lIiwidmVyc2lvbiIsImlnbiIsIlJFTU9URV9ERUJVR0dFUl9QT1JUIiwiU0FGQVJJX0JVTkRMRV9JRCIsIlJQQ19SRVNQT05TRV9USU1FT1VUX01TIiwiUEFHRV9SRUFEWV9USU1FT1VUIiwiR0FSQkFHRV9DT0xMRUNUX1RJTUVPVVQiLCJSZW1vdGVEZWJ1Z2dlciIsIkV2ZW50RW1pdHRlciIsImNvbnN0cnVjdG9yIiwib3B0cyIsImxvZyIsImluZm8iLCJidW5kbGVJZCIsImFkZGl0aW9uYWxCdW5kbGVJZHMiLCJwbGF0Zm9ybVZlcnNpb24iLCJpc1NhZmFyaSIsImluY2x1ZGVTYWZhcmkiLCJ1c2VOZXdTYWZhcmkiLCJwYWdlTG9hZE1zIiwiaG9zdCIsInBvcnQiLCJzb2NrZXRQYXRoIiwicGFnZVJlYWR5VGltZW91dCIsInJlbW90ZURlYnVnUHJveHkiLCJnYXJiYWdlQ29sbGVjdE9uRXhlY3V0ZSIsImxvZ0Z1bGxSZXNwb25zZSIsImxvZ0FsbENvbW11bmljYXRpb24iLCJsb2dBbGxDb21tdW5pY2F0aW9uSGV4RHVtcCIsIndlYkluc3BlY3Rvck1heEZyYW1lTGVuZ3RoIiwic29ja2V0Q2h1bmtTaXplIiwiZnVsbFBhZ2VJbml0aWFsaXphdGlvbiIsImRlYnVnIiwiXyIsImlzTmlsIiwiaXNJbnRlZ2VyIiwiX2xvY2siLCJBc3luY0xvY2siLCJzZXR1cCIsImFwcERpY3QiLCJhcHBJZEtleSIsInBhZ2VJZEtleSIsInBhZ2VMb2FkaW5nIiwiX25hdmlnYXRpbmdUb1BhZ2UiLCJhbGxvd05hdmlnYXRpb25XaXRob3V0UmVsb2FkIiwicnBjQ2xpZW50IiwiX2NsaWVudEV2ZW50TGlzdGVuZXJzIiwidGVhcmRvd24iLCJyZW1vdmVBbGxMaXN0ZW5lcnMiLCJFVkVOVF9QQUdFX0NIQU5HRSIsIkVWRU5UX0RJU0NPTk5FQ1QiLCJpbml0UnBjQ2xpZW50IiwiUnBjQ2xpZW50U2ltdWxhdG9yIiwibWVzc2FnZVByb3h5IiwiaXNDb25uZWN0ZWQiLCJsYXVuY2hTYWZhcmkiLCJzZW5kIiwic3RhcnRUaW1lbGluZSIsImZuIiwib24iLCJzdG9wVGltZWxpbmUiLCJhZGRDbGllbnRFdmVudExpc3RlbmVyIiwiZXZlbnROYW1lIiwibGlzdGVuZXIiLCJwdXNoIiwicmVtb3ZlQ2xpZW50RXZlbnRMaXN0ZW5lciIsIm9mZiIsInN0YXJ0Q29uc29sZSIsInN0b3BDb25zb2xlIiwic3RhcnROZXR3b3JrIiwic3RvcE5ldHdvcmsiLCJhbGxvdyIsIl9hbGxvd05hdmlnYXRpb25XaXRob3V0UmVsb2FkIiwiZ2V0Q29va2llcyIsInVybHMiLCJkZWxldGVDb29raWUiLCJjb29raWVOYW1lIiwidXJsIiwiZ2FyYmFnZUNvbGxlY3QiLCJ0aW1lb3V0TXMiLCJjaGVja1BhcmFtcyIsImVyciIsIkIiLCJ0aW1lb3V0IiwidGhlbiIsImdjU3VjY2VzcyIsImNhdGNoIiwiZ2NFcnJvciIsIlRpbWVvdXRFcnJvciIsIm1lc3NhZ2UiLCJ1c2VBcHBEaWN0TG9jayIsImFjcXVpcmUiLCJza2lwcGVkQXBwcyIsIl9za2lwcGVkQXBwcyIsIm5hbWUiLCJ0b1BhaXJzIiwibWl4aW5zIiwicHJvdG90eXBlIiwiZXZlbnQiLCJldmVudHMiXSwic291cmNlcyI6WyIuLi8uLi9saWIvcmVtb3RlLWRlYnVnZ2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ2V2ZW50cyc7XG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCB7IFJwY0NsaWVudFNpbXVsYXRvciB9IGZyb20gJy4vcnBjJztcbmltcG9ydCB7IGNoZWNrUGFyYW1zIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBtaXhpbnMsIGV2ZW50cyB9IGZyb20gJy4vbWl4aW5zJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgQiBmcm9tICdibHVlYmlyZCc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCBBc3luY0xvY2sgZnJvbSAnYXN5bmMtbG9jayc7XG5cblxubGV0IFZFUlNJT047XG50cnkge1xuICBWRVJTSU9OID0gcmVxdWlyZShwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi4nLCAnLi4nLCAncGFja2FnZS5qc29uJykpLnZlcnNpb247XG59IGNhdGNoIChpZ24pIHt9XG5cbmNvbnN0IFJFTU9URV9ERUJVR0dFUl9QT1JUID0gMjc3NTM7XG5jb25zdCBTQUZBUklfQlVORExFX0lEID0gJ2NvbS5hcHBsZS5tb2JpbGVzYWZhcmknO1xuXG4vKiBIb3cgbWFueSBtaWxsaXNlY29uZHMgdG8gd2FpdCBmb3Igd2Via2l0IHRvIHJldHVybiBhIHJlc3BvbnNlIGJlZm9yZSB0aW1pbmcgb3V0ICovXG5jb25zdCBSUENfUkVTUE9OU0VfVElNRU9VVF9NUyA9IDUwMDA7XG5cbmNvbnN0IFBBR0VfUkVBRFlfVElNRU9VVCA9IDUwMDA7XG5cbmNvbnN0IEdBUkJBR0VfQ09MTEVDVF9USU1FT1VUID0gNTAwMDtcblxuXG5jbGFzcyBSZW1vdGVEZWJ1Z2dlciBleHRlbmRzIEV2ZW50RW1pdHRlciB7XG4gIC8qXG4gICAqIFRoZSBjb25zdHJ1Y3RvciB0YWtlcyBhbiBvcHRzIGhhc2ggd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gICAqICAgLSBidW5kbGVJZCAtIGlkIG9mIHRoZSBhcHAgYmVpbmcgY29ubmVjdGVkIHRvXG4gICAqICAgLSBhZGRpdGlvbmFsQnVuZGxlSWRzIC0gYXJyYXkgb2YgcG9zc2libGUgYnVuZGxlIGlkcyB0aGF0IHRoZSBpbnNwZWN0b3JcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VsZCByZXR1cm5cbiAgICogICAtIHBsYXRmb3JtVmVyc2lvbiAtIHZlcnNpb24gb2YgaU9TXG4gICAqICAgLSB1c2VOZXdTYWZhcmkgLSBmb3Igd2ViIGluc3BlY3Rvciwgd2hldGhlciB0aGlzIGlzIGEgbmV3IFNhZmFyaSBpbnN0YW5jZVxuICAgKiAgIC0gcGFnZUxvYWRNcyAtIHRoZSB0aW1lLCBpbiBtcywgdGhhdCBzaG91bGQgYmUgd2FpdGVkIGZvciBwYWdlIGxvYWRpbmdcbiAgICogICAtIGhvc3QgLSB0aGUgcmVtb3RlIGRlYnVnZ2VyJ3MgaG9zdCBhZGRyZXNzXG4gICAqICAgLSBwb3J0IC0gdGhlIHJlbW90ZSBkZWJ1Z2dlciBwb3J0IHRocm91Z2ggd2hpY2ggdG8gY29tbXVuaWNhdGVcbiAgICogICAtIGxvZ0FsbENvbW11bmljYXRpb24gLSBsb2cgcGxpc3RzIHNlbnQgYW5kIHJlY2VpdmVkIGZyb20gV2ViIEluc3BlY3RvclxuICAgKiAgIC0gbG9nQWxsQ29tbXVuaWNhdGlvbkhleER1bXAgLSBsb2cgY29tbXVuaWNhdGlvbiBmcm9tIFdlYiBJbnNwZWN0b3IgYXMgaGV4IGR1bXBcbiAgICogICAtIHNvY2tldENodW5rU2l6ZSAtIHNpemUsIGluIGJ5dGVzLCBvZiBjaHVua3Mgb2YgZGF0YSBzZW50IHRvIFdlYiBJbnNwZWN0b3IgKHJlYWwgZGV2aWNlIG9ubHkpXG4gICAqICAgLSB3ZWJJbnNwZWN0b3JNYXhGcmFtZUxlbmd0aCAtIFRoZSBtYXhpbXVtIHNpemUgaW4gYnl0ZXMgb2YgYSBzaW5nbGUgZGF0YSBmcmFtZVxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgZGV2aWNlIGNvbW11bmljYXRpb24gcHJvdG9jb2xcbiAgICovXG4gIGNvbnN0cnVjdG9yIChvcHRzID0ge30pIHtcbiAgICBzdXBlcigpO1xuXG4gICAgaWYgKFZFUlNJT04pIHtcbiAgICAgIGxvZy5pbmZvKGBSZW1vdGUgRGVidWdnZXIgdmVyc2lvbiAke1ZFUlNJT059YCk7XG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgYnVuZGxlSWQsXG4gICAgICBhZGRpdGlvbmFsQnVuZGxlSWRzID0gW10sXG4gICAgICBwbGF0Zm9ybVZlcnNpb24sXG4gICAgICBpc1NhZmFyaSA9IHRydWUsXG4gICAgICBpbmNsdWRlU2FmYXJpID0gZmFsc2UsXG4gICAgICB1c2VOZXdTYWZhcmkgPSBmYWxzZSxcbiAgICAgIHBhZ2VMb2FkTXMsXG4gICAgICBob3N0LFxuICAgICAgcG9ydCA9IFJFTU9URV9ERUJVR0dFUl9QT1JULFxuICAgICAgc29ja2V0UGF0aCxcbiAgICAgIHBhZ2VSZWFkeVRpbWVvdXQgPSBQQUdFX1JFQURZX1RJTUVPVVQsXG4gICAgICByZW1vdGVEZWJ1Z1Byb3h5LFxuICAgICAgZ2FyYmFnZUNvbGxlY3RPbkV4ZWN1dGUgPSBmYWxzZSxcbiAgICAgIGxvZ0Z1bGxSZXNwb25zZSA9IGZhbHNlLFxuICAgICAgbG9nQWxsQ29tbXVuaWNhdGlvbiA9IGZhbHNlLFxuICAgICAgbG9nQWxsQ29tbXVuaWNhdGlvbkhleER1bXAgPSBmYWxzZSxcbiAgICAgIHdlYkluc3BlY3Rvck1heEZyYW1lTGVuZ3RoLFxuICAgICAgc29ja2V0Q2h1bmtTaXplLFxuICAgICAgZnVsbFBhZ2VJbml0aWFsaXphdGlvbixcbiAgICB9ID0gb3B0cztcblxuICAgIHRoaXMuYnVuZGxlSWQgPSBidW5kbGVJZDtcbiAgICB0aGlzLmFkZGl0aW9uYWxCdW5kbGVJZHMgPSBhZGRpdGlvbmFsQnVuZGxlSWRzO1xuICAgIHRoaXMucGxhdGZvcm1WZXJzaW9uID0gcGxhdGZvcm1WZXJzaW9uO1xuICAgIHRoaXMuaXNTYWZhcmkgPSBpc1NhZmFyaTtcbiAgICB0aGlzLmluY2x1ZGVTYWZhcmkgPSBpbmNsdWRlU2FmYXJpO1xuICAgIHRoaXMudXNlTmV3U2FmYXJpID0gdXNlTmV3U2FmYXJpO1xuICAgIHRoaXMucGFnZUxvYWRNcyA9IHBhZ2VMb2FkTXM7XG4gICAgbG9nLmRlYnVnKGB1c2VOZXdTYWZhcmkgLS0+ICR7dGhpcy51c2VOZXdTYWZhcml9YCk7XG5cbiAgICB0aGlzLmdhcmJhZ2VDb2xsZWN0T25FeGVjdXRlID0gZ2FyYmFnZUNvbGxlY3RPbkV4ZWN1dGU7XG5cbiAgICB0aGlzLmhvc3QgPSBob3N0O1xuICAgIHRoaXMucG9ydCA9IHBvcnQ7XG4gICAgdGhpcy5zb2NrZXRQYXRoID0gc29ja2V0UGF0aDtcbiAgICB0aGlzLnJlbW90ZURlYnVnUHJveHkgPSByZW1vdGVEZWJ1Z1Byb3h5O1xuICAgIHRoaXMucGFnZVJlYWR5VGltZW91dCA9IHBhZ2VSZWFkeVRpbWVvdXQ7XG5cbiAgICB0aGlzLmxvZ0FsbENvbW11bmljYXRpb24gPSBfLmlzTmlsKGxvZ0FsbENvbW11bmljYXRpb24pID8gISFsb2dGdWxsUmVzcG9uc2UgOiAhIWxvZ0FsbENvbW11bmljYXRpb247XG4gICAgdGhpcy5sb2dBbGxDb21tdW5pY2F0aW9uSGV4RHVtcCA9IGxvZ0FsbENvbW11bmljYXRpb25IZXhEdW1wO1xuICAgIHRoaXMuc29ja2V0Q2h1bmtTaXplID0gc29ja2V0Q2h1bmtTaXplO1xuXG4gICAgaWYgKF8uaXNJbnRlZ2VyKHdlYkluc3BlY3Rvck1heEZyYW1lTGVuZ3RoKSkge1xuICAgICAgdGhpcy53ZWJJbnNwZWN0b3JNYXhGcmFtZUxlbmd0aCA9IHdlYkluc3BlY3Rvck1heEZyYW1lTGVuZ3RoO1xuICAgIH1cblxuICAgIHRoaXMuZnVsbFBhZ2VJbml0aWFsaXphdGlvbiA9IGZ1bGxQYWdlSW5pdGlhbGl6YXRpb247XG5cbiAgICB0aGlzLl9sb2NrID0gbmV3IEFzeW5jTG9jaygpO1xuICB9XG5cbiAgc2V0dXAgKCkge1xuICAgIC8vIGFwcCBoYW5kbGluZyBjb25maWd1cmF0aW9uXG4gICAgdGhpcy5hcHBEaWN0ID0ge307XG4gICAgdGhpcy5hcHBJZEtleSA9IG51bGw7XG4gICAgdGhpcy5wYWdlSWRLZXkgPSBudWxsO1xuICAgIHRoaXMucGFnZUxvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLl9uYXZpZ2F0aW5nVG9QYWdlID0gZmFsc2U7XG4gICAgdGhpcy5hbGxvd05hdmlnYXRpb25XaXRob3V0UmVsb2FkID0gZmFsc2U7XG5cbiAgICB0aGlzLnJwY0NsaWVudCA9IG51bGw7XG4gICAgdGhpcy5fY2xpZW50RXZlbnRMaXN0ZW5lcnMgPSB7fTtcbiAgfVxuXG4gIHRlYXJkb3duICgpIHtcbiAgICBsb2cuZGVidWcoJ0NsZWFuaW5nIHVwIGxpc3RlbmVycycpO1xuXG4gICAgdGhpcy5hcHBEaWN0ID0ge307XG4gICAgdGhpcy5hcHBJZEtleSA9IG51bGw7XG4gICAgdGhpcy5wYWdlSWRLZXkgPSBudWxsO1xuICAgIHRoaXMucGFnZUxvYWRpbmcgPSBmYWxzZTtcblxuICAgIHRoaXMucnBjQ2xpZW50ID0gbnVsbDtcblxuICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKFJlbW90ZURlYnVnZ2VyLkVWRU5UX1BBR0VfQ0hBTkdFKTtcbiAgICB0aGlzLnJlbW92ZUFsbExpc3RlbmVycyhSZW1vdGVEZWJ1Z2dlci5FVkVOVF9ESVNDT05ORUNUKTtcbiAgfVxuXG4gIGluaXRScGNDbGllbnQgKCkge1xuICAgIHRoaXMucnBjQ2xpZW50ID0gbmV3IFJwY0NsaWVudFNpbXVsYXRvcih7XG4gICAgICBidW5kbGVJZDogdGhpcy5idW5kbGVJZCxcbiAgICAgIHBsYXRmb3JtVmVyc2lvbjogdGhpcy5wbGF0Zm9ybVZlcnNpb24sXG4gICAgICBpc1NhZmFyaTogdGhpcy5pc1NhZmFyaSxcbiAgICAgIGhvc3Q6IHRoaXMuaG9zdCxcbiAgICAgIHBvcnQ6IHRoaXMucG9ydCxcbiAgICAgIHNvY2tldFBhdGg6IHRoaXMuc29ja2V0UGF0aCxcbiAgICAgIG1lc3NhZ2VQcm94eTogdGhpcy5yZW1vdGVEZWJ1Z1Byb3h5LFxuICAgICAgbG9nQWxsQ29tbXVuaWNhdGlvbjogdGhpcy5sb2dBbGxDb21tdW5pY2F0aW9uLFxuICAgICAgbG9nQWxsQ29tbXVuaWNhdGlvbkhleER1bXA6IHRoaXMubG9nQWxsQ29tbXVuaWNhdGlvbkhleER1bXAsXG4gICAgICBmdWxsUGFnZUluaXRpYWxpemF0aW9uOiB0aGlzLmZ1bGxQYWdlSW5pdGlhbGl6YXRpb24sXG4gICAgICB3ZWJJbnNwZWN0b3JNYXhGcmFtZUxlbmd0aDogdGhpcy53ZWJJbnNwZWN0b3JNYXhGcmFtZUxlbmd0aCxcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBpc0Nvbm5lY3RlZCAoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5ycGNDbGllbnQ/LmlzQ29ubmVjdGVkO1xuICB9XG5cbiAgYXN5bmMgbGF1bmNoU2FmYXJpICgpIHtcbiAgICBhd2FpdCB0aGlzLnJwY0NsaWVudC5zZW5kKCdsYXVuY2hBcHBsaWNhdGlvbicsIHtcbiAgICAgIGJ1bmRsZUlkOiBTQUZBUklfQlVORExFX0lEXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBzdGFydFRpbWVsaW5lIChmbikge1xuICAgIGxvZy5kZWJ1ZygnU3RhcnRpbmcgdG8gcmVjb3JkIHRoZSB0aW1lbGluZScpO1xuICAgIHRoaXMucnBjQ2xpZW50Lm9uKCdUaW1lbGluZS5ldmVudFJlY29yZGVkJywgZm4pO1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnJwY0NsaWVudC5zZW5kKCdzdGFydFRpbWVsaW5lJywge1xuICAgICAgYXBwSWRLZXk6IHRoaXMuYXBwSWRLZXksXG4gICAgICBwYWdlSWRLZXk6IHRoaXMucGFnZUlkS2V5LFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgc3RvcFRpbWVsaW5lICgpIHtcbiAgICBsb2cuZGVidWcoJ1N0b3BwaW5nIHRvIHJlY29yZCB0aGUgdGltZWxpbmUnKTtcbiAgICBhd2FpdCB0aGlzLnJwY0NsaWVudC5zZW5kKCdUaW1lbGluZS5zdG9wJywge1xuICAgICAgYXBwSWRLZXk6IHRoaXMuYXBwSWRLZXksXG4gICAgICBwYWdlSWRLZXk6IHRoaXMucGFnZUlkS2V5LFxuICAgIH0pO1xuICB9XG5cbiAgLypcbiAgICogS2VlcCB0cmFjayBvZiB0aGUgY2xpZW50IGV2ZW50IGxpc3RlbmVycyBzbyB0aGV5IGNhbiBiZSByZW1vdmVkXG4gICAqL1xuICBhZGRDbGllbnRFdmVudExpc3RlbmVyIChldmVudE5hbWUsIGxpc3RlbmVyKSB7XG4gICAgdGhpcy5fY2xpZW50RXZlbnRMaXN0ZW5lcnNbZXZlbnROYW1lXSA9IHRoaXMuX2NsaWVudEV2ZW50TGlzdGVuZXJzW2V2ZW50TmFtZV0gfHwgW107XG4gICAgdGhpcy5fY2xpZW50RXZlbnRMaXN0ZW5lcnNbZXZlbnROYW1lXS5wdXNoKGxpc3RlbmVyKTtcbiAgICB0aGlzLnJwY0NsaWVudC5vbihldmVudE5hbWUsIGxpc3RlbmVyKTtcbiAgfVxuXG4gIHJlbW92ZUNsaWVudEV2ZW50TGlzdGVuZXIgKGV2ZW50TmFtZSkge1xuICAgIGZvciAoY29uc3QgbGlzdGVuZXIgb2YgKHRoaXMuX2NsaWVudEV2ZW50TGlzdGVuZXJzW2V2ZW50TmFtZV0gfHwgW10pKSB7XG4gICAgICB0aGlzLnJwY0NsaWVudC5vZmYoZXZlbnROYW1lLCBsaXN0ZW5lcik7XG4gICAgfVxuICB9XG5cbiAgc3RhcnRDb25zb2xlIChsaXN0ZW5lcikge1xuICAgIGxvZy5kZWJ1ZygnU3RhcnRpbmcgdG8gbGlzdGVuIGZvciBKYXZhU2NyaXB0IGNvbnNvbGUnKTtcbiAgICB0aGlzLmFkZENsaWVudEV2ZW50TGlzdGVuZXIoJ0NvbnNvbGUubWVzc2FnZUFkZGVkJywgbGlzdGVuZXIpO1xuICAgIHRoaXMuYWRkQ2xpZW50RXZlbnRMaXN0ZW5lcignQ29uc29sZS5tZXNzYWdlUmVwZWF0Q291bnRVcGRhdGVkJywgbGlzdGVuZXIpO1xuICB9XG5cbiAgc3RvcENvbnNvbGUgKCkge1xuICAgIGxvZy5kZWJ1ZygnU3RvcHBpbmcgdG8gbGlzdGVuIGZvciBKYXZhU2NyaXB0IGNvbnNvbGUnKTtcbiAgICB0aGlzLnJlbW92ZUNsaWVudEV2ZW50TGlzdGVuZXIoJ0NvbnNvbGUubWVzc2FnZUFkZGVkJyk7XG4gICAgdGhpcy5yZW1vdmVDbGllbnRFdmVudExpc3RlbmVyKCdDb25zb2xlLm1lc3NhZ2VSZXBlYXRDb3VudFVwZGF0ZWQnKTtcbiAgfVxuXG4gIHN0YXJ0TmV0d29yayAobGlzdGVuZXIpIHtcbiAgICBsb2cuZGVidWcoJ1N0YXJ0aW5nIHRvIGxpc3RlbiBmb3IgbmV0d29yayBldmVudHMnKTtcbiAgICB0aGlzLmFkZENsaWVudEV2ZW50TGlzdGVuZXIoJ05ldHdvcmtFdmVudCcsIGxpc3RlbmVyKTtcbiAgfVxuXG4gIHN0b3BOZXR3b3JrICgpIHtcbiAgICBsb2cuZGVidWcoJ1N0b3BwaW5nIHRvIGxpc3RlbiBmb3IgbmV0d29yayBldmVudHMnKTtcbiAgICB0aGlzLnJlbW92ZUNsaWVudEV2ZW50TGlzdGVuZXIoJ05ldHdvcmtFdmVudCcpO1xuICB9XG5cbiAgc2V0IGFsbG93TmF2aWdhdGlvbldpdGhvdXRSZWxvYWQgKGFsbG93KSB7XG4gICAgdGhpcy5fYWxsb3dOYXZpZ2F0aW9uV2l0aG91dFJlbG9hZCA9IGFsbG93O1xuICB9XG5cbiAgZ2V0IGFsbG93TmF2aWdhdGlvbldpdGhvdXRSZWxvYWQgKCkge1xuICAgIHJldHVybiB0aGlzLl9hbGxvd05hdmlnYXRpb25XaXRob3V0UmVsb2FkO1xuICB9XG5cbiAgYXN5bmMgZ2V0Q29va2llcyAodXJscykge1xuICAgIGxvZy5kZWJ1ZygnR2V0dGluZyBjb29raWVzJyk7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucnBjQ2xpZW50LnNlbmQoJ1BhZ2UuZ2V0Q29va2llcycsIHtcbiAgICAgIGFwcElkS2V5OiB0aGlzLmFwcElkS2V5LFxuICAgICAgcGFnZUlkS2V5OiB0aGlzLnBhZ2VJZEtleSxcbiAgICAgIHVybHMsXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBkZWxldGVDb29raWUgKGNvb2tpZU5hbWUsIHVybCkge1xuICAgIGxvZy5kZWJ1ZyhgRGVsZXRpbmcgY29va2llICcke2Nvb2tpZU5hbWV9JyBvbiAnJHt1cmx9J2ApO1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnJwY0NsaWVudC5zZW5kKCdQYWdlLmRlbGV0ZUNvb2tpZScsIHtcbiAgICAgIGFwcElkS2V5OiB0aGlzLmFwcElkS2V5LFxuICAgICAgcGFnZUlkS2V5OiB0aGlzLnBhZ2VJZEtleSxcbiAgICAgIGNvb2tpZU5hbWUsXG4gICAgICB1cmwsXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBnYXJiYWdlQ29sbGVjdCAodGltZW91dE1zID0gR0FSQkFHRV9DT0xMRUNUX1RJTUVPVVQpIHtcbiAgICBsb2cuZGVidWcoYEdhcmJhZ2UgY29sbGVjdGluZyB3aXRoICR7dGltZW91dE1zfW1zIHRpbWVvdXRgKTtcbiAgICB0cnkge1xuICAgICAgY2hlY2tQYXJhbXMoe2FwcElkS2V5OiB0aGlzLmFwcElkS2V5LCBwYWdlSWRLZXk6IHRoaXMucGFnZUlkS2V5fSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBsb2cuZGVidWcoYFVuYWJsZSB0byBjb2xsZWN0IGdhcmJhZ2UgYXQgdGhpcyB0aW1lYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgYXdhaXQgQi5yZXNvbHZlKHRoaXMucnBjQ2xpZW50LnNlbmQoJ0hlYXAuZ2MnLCB7XG4gICAgICBhcHBJZEtleTogdGhpcy5hcHBJZEtleSxcbiAgICAgIHBhZ2VJZEtleTogdGhpcy5wYWdlSWRLZXksXG4gICAgfSkpLnRpbWVvdXQodGltZW91dE1zKVxuICAgIC50aGVuKGZ1bmN0aW9uIGdjU3VjY2VzcyAoKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcHJvbWlzZS9wcmVmZXItYXdhaXQtdG8tdGhlblxuICAgICAgbG9nLmRlYnVnKGBHYXJiYWdlIGNvbGxlY3Rpb24gc3VjY2Vzc2Z1bGApO1xuICAgIH0pLmNhdGNoKGZ1bmN0aW9uIGdjRXJyb3IgKGVycikgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHByb21pc2UvcHJlZmVyLWF3YWl0LXRvLWNhbGxiYWNrc1xuICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIEIuVGltZW91dEVycm9yKSB7XG4gICAgICAgIGxvZy5kZWJ1ZyhgR2FyYmFnZSBjb2xsZWN0aW9uIHRpbWVkIG91dCBhZnRlciAke3RpbWVvdXRNc31tc2ApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nLmRlYnVnKGBVbmFibGUgdG8gY29sbGVjdCBnYXJiYWdlOiAke2Vyci5tZXNzYWdlfWApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgdXNlQXBwRGljdExvY2sgKGZuKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX2xvY2suYWNxdWlyZSgnYXBwRGljdCcsIGZuKTtcbiAgfVxuXG4gIGdldCBza2lwcGVkQXBwcyAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NraXBwZWRBcHBzIHx8IFtdO1xuICB9XG59XG5cbmZvciAoY29uc3QgW25hbWUsIGZuXSBvZiBfLnRvUGFpcnMobWl4aW5zKSkge1xuICBSZW1vdGVEZWJ1Z2dlci5wcm90b3R5cGVbbmFtZV0gPSBmbjtcbn1cblxuZm9yIChjb25zdCBbbmFtZSwgZXZlbnRdIG9mIF8udG9QYWlycyhldmVudHMpKSB7XG4gIFJlbW90ZURlYnVnZ2VyW25hbWVdID0gZXZlbnQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFJlbW90ZURlYnVnZ2VyO1xuZXhwb3J0IHtcbiAgUmVtb3RlRGVidWdnZXIsIFJFTU9URV9ERUJVR0dFUl9QT1JULCBSUENfUkVTUE9OU0VfVElNRU9VVF9NUyxcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0EsSUFBSUEsT0FBTztBQUNYLElBQUk7RUFDRkEsT0FBTyxHQUFHQyxPQUFPLENBQUNDLGFBQUksQ0FBQ0MsT0FBTyxDQUFDQyxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDQyxPQUFPO0FBQ2hGLENBQUMsQ0FBQyxPQUFPQyxHQUFHLEVBQUUsQ0FBQztBQUVmLE1BQU1DLG9CQUFvQixHQUFHLEtBQUs7QUFBQztBQUNuQyxNQUFNQyxnQkFBZ0IsR0FBRyx3QkFBd0I7O0FBR2pELE1BQU1DLHVCQUF1QixHQUFHLElBQUk7QUFBQztBQUVyQyxNQUFNQyxrQkFBa0IsR0FBRyxJQUFJO0FBRS9CLE1BQU1DLHVCQUF1QixHQUFHLElBQUk7QUFHcEMsTUFBTUMsY0FBYyxTQUFTQyxvQkFBWSxDQUFDO0VBaUJ4Q0MsV0FBVyxD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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remote-debugger.js","names":["VERSION","require","path","resolve","__dirname","version","ign","REMOTE_DEBUGGER_PORT","SAFARI_BUNDLE_ID","RPC_RESPONSE_TIMEOUT_MS","PAGE_READY_TIMEOUT","GARBAGE_COLLECT_TIMEOUT","RemoteDebugger","EventEmitter","constructor","opts","log","info","bundleId","additionalBundleIds","platformVersion","isSafari","includeSafari","useNewSafari","pageLoadMs","host","port","socketPath","pageReadyTimeout","remoteDebugProxy","garbageCollectOnExecute","logFullResponse","logAllCommunication","logAllCommunicationHexDump","webInspectorMaxFrameLength","socketChunkSize","fullPageInitialization","debug","_","isNil","isInteger","_lock","AsyncLock","setup","appDict","appIdKey","pageIdKey","pageLoading","_navigatingToPage","allowNavigationWithoutReload","rpcClient","_clientEventListeners","teardown","removeAllListeners","EVENT_PAGE_CHANGE","EVENT_DISCONNECT","initRpcClient","RpcClientSimulator","messageProxy","isConnected","launchSafari","send","startTimeline","fn","on","stopTimeline","addClientEventListener","eventName","listener","push","removeClientEventListener","off","startConsole","stopConsole","startNetwork","stopNetwork","allow","_allowNavigationWithoutReload","getCookies","urls","deleteCookie","cookieName","url","garbageCollect","timeoutMs","checkParams","err","B","timeout","then","gcSuccess","catch","gcError","TimeoutError","message","useAppDictLock","acquire","skippedApps","_skippedApps","name","toPairs","mixins","prototype","event","events"],"sources":["../../lib/remote-debugger.js"],"sourcesContent":["import { EventEmitter } from 'events';\nimport log from './logger';\nimport { RpcClientSimulator } from './rpc';\nimport { checkParams } from './utils';\nimport { mixins, events } from './mixins';\nimport _ from 'lodash';\nimport B from 'bluebird';\nimport path from 'path';\nimport AsyncLock from 'async-lock';\n\n\nlet VERSION;\ntry {\n VERSION = require(path.resolve(__dirname, '..', '..', 'package.json')).version;\n} catch (ign) {}\n\nconst REMOTE_DEBUGGER_PORT = 27753;\nconst SAFARI_BUNDLE_ID = 'com.apple.mobilesafari';\n\n/* How many milliseconds to wait for webkit to return a response before timing out */\nconst RPC_RESPONSE_TIMEOUT_MS = 5000;\n\nconst PAGE_READY_TIMEOUT = 5000;\n\nconst GARBAGE_COLLECT_TIMEOUT = 5000;\n\n\nclass RemoteDebugger extends EventEmitter {\n /*\n * The constructor takes an opts hash with the following properties:\n * - bundleId - id of the app being connected to\n * - additionalBundleIds - array of possible bundle ids that the inspector\n * could return\n * - platformVersion - version of iOS\n * - useNewSafari - for web inspector, whether this is a new Safari instance\n * - pageLoadMs - the time, in ms, that should be waited for page loading\n * - host - the remote debugger's host address\n * - port - the remote debugger port through which to communicate\n * - logAllCommunication - log plists sent and received from Web Inspector\n * - logAllCommunicationHexDump - log communication from Web Inspector as hex dump\n * - socketChunkSize - size, in bytes, of chunks of data sent to Web Inspector (real device only)\n * - webInspectorMaxFrameLength - The maximum size in bytes of a single data frame\n * in the device communication protocol\n */\n constructor (opts = {}) {\n super();\n\n if (VERSION) {\n log.info(`Remote Debugger version ${VERSION}`);\n }\n\n const {\n bundleId,\n additionalBundleIds = [],\n platformVersion,\n isSafari = true,\n includeSafari = false,\n useNewSafari = false,\n pageLoadMs,\n host,\n port = REMOTE_DEBUGGER_PORT,\n socketPath,\n pageReadyTimeout = PAGE_READY_TIMEOUT,\n remoteDebugProxy,\n garbageCollectOnExecute = false,\n logFullResponse = false,\n logAllCommunication = false,\n logAllCommunicationHexDump = false,\n webInspectorMaxFrameLength,\n socketChunkSize,\n fullPageInitialization,\n } = opts;\n\n this.bundleId = bundleId;\n this.additionalBundleIds = additionalBundleIds;\n this.platformVersion = platformVersion;\n this.isSafari = isSafari;\n this.includeSafari = includeSafari;\n this.useNewSafari = useNewSafari;\n this.pageLoadMs = pageLoadMs;\n log.debug(`useNewSafari --> ${this.useNewSafari}`);\n\n this.garbageCollectOnExecute = garbageCollectOnExecute;\n\n this.host = host;\n this.port = port;\n this.socketPath = socketPath;\n this.remoteDebugProxy = remoteDebugProxy;\n this.pageReadyTimeout = pageReadyTimeout;\n\n this.logAllCommunication = _.isNil(logAllCommunication) ? !!logFullResponse : !!logAllCommunication;\n this.logAllCommunicationHexDump = logAllCommunicationHexDump;\n this.socketChunkSize = socketChunkSize;\n\n if (_.isInteger(webInspectorMaxFrameLength)) {\n this.webInspectorMaxFrameLength = webInspectorMaxFrameLength;\n }\n\n this.fullPageInitialization = fullPageInitialization;\n\n this._lock = new AsyncLock();\n }\n\n setup () {\n // app handling configuration\n this.appDict = {};\n this.appIdKey = null;\n this.pageIdKey = null;\n this.pageLoading = false;\n this._navigatingToPage = false;\n this.allowNavigationWithoutReload = false;\n\n this.rpcClient = null;\n this._clientEventListeners = {};\n }\n\n teardown () {\n log.debug('Cleaning up listeners');\n\n this.appDict = {};\n this.appIdKey = null;\n this.pageIdKey = null;\n this.pageLoading = false;\n\n this.rpcClient = null;\n\n this.removeAllListeners(RemoteDebugger.EVENT_PAGE_CHANGE);\n this.removeAllListeners(RemoteDebugger.EVENT_DISCONNECT);\n }\n\n initRpcClient () {\n this.rpcClient = new RpcClientSimulator({\n bundleId: this.bundleId,\n platformVersion: this.platformVersion,\n isSafari: this.isSafari,\n host: this.host,\n port: this.port,\n socketPath: this.socketPath,\n messageProxy: this.remoteDebugProxy,\n logAllCommunication: this.logAllCommunication,\n logAllCommunicationHexDump: this.logAllCommunicationHexDump,\n fullPageInitialization: this.fullPageInitialization,\n webInspectorMaxFrameLength: this.webInspectorMaxFrameLength,\n });\n }\n\n get isConnected () {\n return !!this.rpcClient?.isConnected;\n }\n\n async launchSafari () {\n await this.rpcClient.send('launchApplication', {\n bundleId: SAFARI_BUNDLE_ID\n });\n }\n\n async startTimeline (fn) {\n log.debug('Starting to record the timeline');\n this.rpcClient.on('Timeline.eventRecorded', fn);\n return await this.rpcClient.send('startTimeline', {\n appIdKey: this.appIdKey,\n pageIdKey: this.pageIdKey,\n });\n }\n\n async stopTimeline () {\n log.debug('Stopping to record the timeline');\n await this.rpcClient.send('Timeline.stop', {\n appIdKey: this.appIdKey,\n pageIdKey: this.pageIdKey,\n });\n }\n\n /*\n * Keep track of the client event listeners so they can be removed\n */\n addClientEventListener (eventName, listener) {\n this._clientEventListeners[eventName] = this._clientEventListeners[eventName] || [];\n this._clientEventListeners[eventName].push(listener);\n this.rpcClient.on(eventName, listener);\n }\n\n removeClientEventListener (eventName) {\n for (const listener of (this._clientEventListeners[eventName] || [])) {\n this.rpcClient.off(eventName, listener);\n }\n }\n\n startConsole (listener) {\n log.debug('Starting to listen for JavaScript console');\n this.addClientEventListener('Console.messageAdded', listener);\n this.addClientEventListener('Console.messageRepeatCountUpdated', listener);\n }\n\n stopConsole () {\n log.debug('Stopping to listen for JavaScript console');\n this.removeClientEventListener('Console.messageAdded');\n this.removeClientEventListener('Console.messageRepeatCountUpdated');\n }\n\n startNetwork (listener) {\n log.debug('Starting to listen for network events');\n this.addClientEventListener('NetworkEvent', listener);\n }\n\n stopNetwork () {\n log.debug('Stopping to listen for network events');\n this.removeClientEventListener('NetworkEvent');\n }\n\n set allowNavigationWithoutReload (allow) {\n this._allowNavigationWithoutReload = allow;\n }\n\n get allowNavigationWithoutReload () {\n return this._allowNavigationWithoutReload;\n }\n\n async getCookies (urls) {\n log.debug('Getting cookies');\n return await this.rpcClient.send('Page.getCookies', {\n appIdKey: this.appIdKey,\n pageIdKey: this.pageIdKey,\n urls,\n });\n }\n\n async deleteCookie (cookieName, url) {\n log.debug(`Deleting cookie '${cookieName}' on '${url}'`);\n return await this.rpcClient.send('Page.deleteCookie', {\n appIdKey: this.appIdKey,\n pageIdKey: this.pageIdKey,\n cookieName,\n url,\n });\n }\n\n async garbageCollect (timeoutMs = GARBAGE_COLLECT_TIMEOUT) {\n log.debug(`Garbage collecting with ${timeoutMs}ms timeout`);\n try {\n checkParams({appIdKey: this.appIdKey, pageIdKey: this.pageIdKey});\n } catch (err) {\n log.debug(`Unable to collect garbage at this time`);\n return;\n }\n\n await B.resolve(this.rpcClient.send('Heap.gc', {\n appIdKey: this.appIdKey,\n pageIdKey: this.pageIdKey,\n })).timeout(timeoutMs)\n .then(function gcSuccess () { // eslint-disable-line promise/prefer-await-to-then\n log.debug(`Garbage collection successful`);\n }).catch(function gcError (err) { // eslint-disable-line promise/prefer-await-to-callbacks\n if (err instanceof B.TimeoutError) {\n log.debug(`Garbage collection timed out after ${timeoutMs}ms`);\n } else {\n log.debug(`Unable to collect garbage: ${err.message}`);\n }\n });\n }\n\n async useAppDictLock (fn) {\n return await this._lock.acquire('appDict', fn);\n }\n\n get skippedApps () {\n return this._skippedApps || [];\n }\n}\n\nfor (const [name, fn] of _.toPairs(mixins)) {\n RemoteDebugger.prototype[name] = fn;\n}\n\nfor (const [name, event] of _.toPairs(events)) {\n RemoteDebugger[name] = event;\n}\n\nexport default RemoteDebugger;\nexport {\n RemoteDebugger, REMOTE_DEBUGGER_PORT, RPC_RESPONSE_TIMEOUT_MS,\n};\n"],"mappings":"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"}
|
package/build/lib/rpc/index.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
@@ -17,12 +16,7 @@ Object.defineProperty(exports, "RpcClientSimulator", {
|
|
|
17
16
|
return _rpcClientSimulator.default;
|
|
18
17
|
}
|
|
19
18
|
});
|
|
20
|
-
|
|
21
19
|
require("source-map-support/register");
|
|
22
|
-
|
|
23
20
|
var _rpcClientSimulator = _interopRequireDefault(require("./rpc-client-simulator"));
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL3JwYy9pbmRleC5qcyIsIm5hbWVzIjpbXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uIiwic291cmNlcyI6WyJsaWIvcnBjL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBScGNDbGllbnRTaW11bGF0b3IgZnJvbSAnLi9ycGMtY2xpZW50LXNpbXVsYXRvcic7XG5pbXBvcnQgUnBjQ2xpZW50UmVhbERldmljZSBmcm9tICcuL3JwYy1jbGllbnQtcmVhbC1kZXZpY2UnO1xuXG5cbmV4cG9ydCB7IFJwY0NsaWVudFNpbXVsYXRvciwgUnBjQ2xpZW50UmVhbERldmljZSB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0EifQ==
|
|
21
|
+
var _rpcClientRealDevice = _interopRequireDefault(require("./rpc-client-real-device"));
|
|
22
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3JwYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUnBjQ2xpZW50U2ltdWxhdG9yIGZyb20gJy4vcnBjLWNsaWVudC1zaW11bGF0b3InO1xuaW1wb3J0IFJwY0NsaWVudFJlYWxEZXZpY2UgZnJvbSAnLi9ycGMtY2xpZW50LXJlYWwtZGV2aWNlJztcblxuXG5leHBvcnQgeyBScGNDbGllbnRTaW11bGF0b3IsIFJwY0NsaWVudFJlYWxEZXZpY2UgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0EifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../lib/rpc/index.js"],"sourcesContent":["import RpcClientSimulator from './rpc-client-simulator';\nimport RpcClientRealDevice from './rpc-client-real-device';\n\n\nexport { RpcClientSimulator, RpcClientRealDevice };\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AACA"}
|