@appium/base-driver 8.5.7 → 8.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/lib/basedriver/capabilities.js +2 -2
- package/build/lib/basedriver/commands/execute.d.ts +11 -0
- package/build/lib/basedriver/commands/execute.d.ts.map +1 -0
- package/build/lib/basedriver/commands/execute.js +62 -0
- package/build/lib/basedriver/commands/index.d.ts +1 -1
- package/build/lib/basedriver/commands/index.d.ts.map +1 -1
- package/build/lib/basedriver/commands/index.js +5 -2
- package/build/lib/basedriver/commands/log.js +2 -4
- package/build/lib/basedriver/core.d.ts +11 -0
- package/build/lib/basedriver/core.d.ts.map +1 -1
- package/build/lib/basedriver/core.js +6 -1
- package/build/lib/basedriver/helpers.js +2 -2
- package/build/lib/express/server.d.ts +70 -7
- package/build/lib/express/server.d.ts.map +1 -1
- package/build/lib/express/server.js +19 -16
- package/build/lib/express/websocket.d.ts +12 -30
- package/build/lib/express/websocket.d.ts.map +1 -1
- package/build/lib/express/websocket.js +6 -4
- package/build/lib/index.d.ts +12 -180
- package/build/lib/index.d.ts.map +1 -1
- package/build/lib/index.js +107 -80
- package/build/lib/jsonwp-proxy/protocol-converter.js +2 -4
- package/build/lib/jsonwp-proxy/proxy.js +3 -7
- package/build/lib/protocol/index.d.ts +3 -1
- package/build/lib/protocol/index.js +13 -1
- package/build/lib/protocol/protocol.d.ts +8 -4
- package/build/lib/protocol/protocol.d.ts.map +1 -1
- package/build/lib/protocol/protocol.js +7 -7
- package/build/lib/protocol/routes.js +2 -6
- package/build/tsconfig.tsbuildinfo +1 -1
- package/lib/basedriver/commands/execute.js +65 -0
- package/lib/basedriver/commands/index.js +3 -1
- package/lib/basedriver/core.js +15 -0
- package/lib/express/server.js +126 -36
- package/lib/express/websocket.js +13 -11
- package/lib/index.js +19 -61
- package/lib/protocol/index.js +4 -0
- package/lib/protocol/protocol.js +10 -3
- package/package.json +17 -15
- package/build/test/basedriver/README.md +0 -5
- package/build/test/basedriver/driver-e2e-tests.js +0 -413
- package/build/test/basedriver/driver-tests.js +0 -572
- package/build/test/basedriver/index.js +0 -26
- package/build/test/e2e/basedriver/driver.e2e.spec.js +0 -15
- package/build/test/e2e/basedriver/helpers.e2e.spec.js +0 -192
- package/build/test/e2e/basedriver/websockets.e2e.spec.js +0 -87
- package/build/test/e2e/express/server.e2e.spec.js +0 -159
- package/build/test/e2e/jsonwp-proxy/proxy.e2e.spec.js +0 -59
- package/build/test/e2e/protocol/fake-driver.js +0 -163
- package/build/test/e2e/protocol/helpers.js +0 -25
- package/build/test/e2e/protocol/protocol.e2e.spec.js +0 -1186
- package/build/test/helpers.js +0 -55
- package/build/test/unit/basedriver/capabilities.spec.js +0 -672
- package/build/test/unit/basedriver/capability.spec.js +0 -353
- package/build/test/unit/basedriver/commands/event.spec.js +0 -110
- package/build/test/unit/basedriver/commands/log.spec.js +0 -92
- package/build/test/unit/basedriver/device-settings.spec.js +0 -97
- package/build/test/unit/basedriver/driver.spec.js +0 -15
- package/build/test/unit/basedriver/helpers.spec.js +0 -151
- package/build/test/unit/basedriver/timeout.spec.js +0 -135
- package/build/test/unit/express/server.spec.js +0 -155
- package/build/test/unit/express/static.spec.js +0 -26
- package/build/test/unit/jsonwp-proxy/mock-request.js +0 -91
- package/build/test/unit/jsonwp-proxy/protocol-converter.spec.js +0 -171
- package/build/test/unit/jsonwp-proxy/proxy.spec.js +0 -292
- package/build/test/unit/jsonwp-proxy/url.spec.js +0 -165
- package/build/test/unit/jsonwp-status/status.spec.js +0 -34
- package/build/test/unit/protocol/errors.spec.js +0 -390
- package/build/test/unit/protocol/routes.spec.js +0 -80
- package/build/test/unit/protocol/validator.spec.js +0 -149
- package/test/basedriver/README.md +0 -5
- package/test/basedriver/driver-e2e-tests.js +0 -386
- package/test/basedriver/driver-tests.js +0 -624
- package/test/basedriver/index.js +0 -6
|
@@ -1,67 +1,49 @@
|
|
|
1
|
-
export type
|
|
2
|
-
webSocketsMapping: Record<string, import('ws').Server>;
|
|
3
|
-
};
|
|
1
|
+
export type AppiumServer = import('@appium/types').AppiumServer;
|
|
4
2
|
/**
|
|
5
3
|
* Adds websocket handler to express server instance.
|
|
6
4
|
* It is expected this function is called in Express
|
|
7
5
|
* server instance context.
|
|
8
6
|
*
|
|
9
|
-
* @this {
|
|
7
|
+
* @this {AppiumServer} - An instance of express HTTP server.
|
|
10
8
|
* @param {string} handlerPathname - Web socket endpoint path starting with
|
|
11
9
|
* a single slash character. It is recommended to always add
|
|
12
10
|
* DEFAULT_WS_PATHNAME_PREFIX to all web socket pathnames.
|
|
13
|
-
* @param {
|
|
11
|
+
* @param {import('ws').Server} handlerServer - WebSocket server instance. See
|
|
14
12
|
* https://github.com/websockets/ws/pull/885 for more details
|
|
15
13
|
* on how to configure the handler properly.
|
|
14
|
+
* @returns {Promise<void>}
|
|
16
15
|
*/
|
|
17
|
-
export function addWebSocketHandler(this:
|
|
18
|
-
export class addWebSocketHandler {
|
|
19
|
-
/**
|
|
20
|
-
* Adds websocket handler to express server instance.
|
|
21
|
-
* It is expected this function is called in Express
|
|
22
|
-
* server instance context.
|
|
23
|
-
*
|
|
24
|
-
* @this {WebSocketServer} - An instance of express HTTP server.
|
|
25
|
-
* @param {string} handlerPathname - Web socket endpoint path starting with
|
|
26
|
-
* a single slash character. It is recommended to always add
|
|
27
|
-
* DEFAULT_WS_PATHNAME_PREFIX to all web socket pathnames.
|
|
28
|
-
* @param {Object} handlerServer - WebSocket server instance. See
|
|
29
|
-
* https://github.com/websockets/ws/pull/885 for more details
|
|
30
|
-
* on how to configure the handler properly.
|
|
31
|
-
*/
|
|
32
|
-
constructor(this: WebSocketServer, handlerPathname: string, handlerServer: any);
|
|
33
|
-
webSocketsMapping: {};
|
|
34
|
-
}
|
|
16
|
+
export function addWebSocketHandler(this: import("@appium/types").AppiumServer, handlerPathname: string, handlerServer: import('ws').Server): Promise<void>;
|
|
35
17
|
/**
|
|
36
18
|
* Removes existing websocket handler from express server instance.
|
|
37
19
|
* The call is ignored if the given `handlerPathname` handler
|
|
38
20
|
* is not present in the handlers list.
|
|
39
21
|
* It is expected this function is called in Express
|
|
40
22
|
* server instance context.
|
|
41
|
-
*
|
|
23
|
+
* @this {AppiumServer}
|
|
42
24
|
* @param {string} handlerPathname - Websocket endpoint path.
|
|
43
25
|
* @returns {Promise<boolean>} true if the handlerPathname was found and deleted
|
|
44
26
|
*/
|
|
45
|
-
export function removeWebSocketHandler(handlerPathname: string): Promise<boolean>;
|
|
27
|
+
export function removeWebSocketHandler(this: import("@appium/types").AppiumServer, handlerPathname: string): Promise<boolean>;
|
|
46
28
|
/**
|
|
47
29
|
* Removes all existing websocket handler from express server instance.
|
|
48
30
|
* It is expected this function is called in Express
|
|
49
31
|
* server instance context.
|
|
50
|
-
*
|
|
32
|
+
* @this {AppiumServer}
|
|
51
33
|
* @returns {Promise<boolean>} true if at least one handler has been deleted
|
|
52
34
|
*/
|
|
53
|
-
export function removeAllWebSocketHandlers(): Promise<boolean>;
|
|
35
|
+
export function removeAllWebSocketHandlers(this: import("@appium/types").AppiumServer): Promise<boolean>;
|
|
54
36
|
/**
|
|
55
37
|
* Returns web socket handlers registered for the given server
|
|
56
38
|
* instance.
|
|
57
39
|
* It is expected this function is called in Express
|
|
58
40
|
* server instance context.
|
|
59
41
|
*
|
|
42
|
+
* @this {AppiumServer}
|
|
60
43
|
* @param {string?} [keysFilter] - Only include pathnames with given
|
|
61
44
|
* `keysFilter` value if set. All pairs will be included by default.
|
|
62
|
-
* @returns {Promise<
|
|
63
|
-
* matching the search criteria or an empty object otherwise.
|
|
45
|
+
* @returns {Promise<Record<string, import('ws').Server>>} pathnames to websocket server instances mapping matching the search criteria or an empty object otherwise.
|
|
64
46
|
*/
|
|
65
|
-
export function getWebSocketHandlers(keysFilter?: string | null | undefined): Promise<
|
|
47
|
+
export function getWebSocketHandlers(this: import("@appium/types").AppiumServer, keysFilter?: string | null | undefined): Promise<Record<string, import('ws').Server>>;
|
|
66
48
|
export const DEFAULT_WS_PATHNAME_PREFIX: "/ws";
|
|
67
49
|
//# sourceMappingURL=websocket.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../../lib/express/websocket.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../../lib/express/websocket.js"],"names":[],"mappings":"2BAoIa,OAAO,eAAe,EAAE,YAAY;AA7HjD;;;;;;;;;;;;;GAaG;AACH,iGARW,MAAM,iBAGN,OAAO,IAAI,EAAE,MAAM,GAGjB,QAAQ,IAAI,CAAC,CA2BzB;AA2BD;;;;;;;;;GASG;AAEH,oGAJW,MAAM,GACJ,QAAQ,OAAO,CAAC,CAqB5B;AAED;;;;;;GAMG;AACH,wFAFa,QAAQ,OAAO,CAAC,CAY5B;AAzED;;;;;;;;;;GAUG;AAEH,0HAHa,QAAQ,OAAO,MAAM,EAAE,OAAO,IAAI,EAAE,MAAM,CAAC,CAAC,CAcxD;AAlED,+CAAyC"}
|
|
@@ -23,9 +23,11 @@ const DEFAULT_WS_PATHNAME_PREFIX = '/ws';
|
|
|
23
23
|
exports.DEFAULT_WS_PATHNAME_PREFIX = DEFAULT_WS_PATHNAME_PREFIX;
|
|
24
24
|
|
|
25
25
|
async function addWebSocketHandler(handlerPathname, handlerServer) {
|
|
26
|
+
const server = this;
|
|
27
|
+
|
|
26
28
|
if (_lodash.default.isUndefined(this.webSocketsMapping)) {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
+
server.webSocketsMapping = {};
|
|
30
|
+
server.on('upgrade', (request, socket, head) => {
|
|
29
31
|
let currentPathname;
|
|
30
32
|
|
|
31
33
|
try {
|
|
@@ -34,7 +36,7 @@ async function addWebSocketHandler(handlerPathname, handlerServer) {
|
|
|
34
36
|
currentPathname = request.url;
|
|
35
37
|
}
|
|
36
38
|
|
|
37
|
-
for (const [pathname, wsServer] of _lodash.default.toPairs(
|
|
39
|
+
for (const [pathname, wsServer] of _lodash.default.toPairs(server.webSocketsMapping)) {
|
|
38
40
|
if (currentPathname === pathname) {
|
|
39
41
|
wsServer.handleUpgrade(request, socket, head, ws => {
|
|
40
42
|
wsServer.emit('connection', ws, request);
|
|
@@ -95,4 +97,4 @@ async function removeAllWebSocketHandlers() {
|
|
|
95
97
|
|
|
96
98
|
return _lodash.default.some(await _bluebird.default.all(_lodash.default.keys(this.webSocketsMapping).map(pathname => this.removeWebSocketHandler(pathname))));
|
|
97
99
|
}
|
|
98
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
100
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJERUZBVUxUX1dTX1BBVEhOQU1FX1BSRUZJWCIsImFkZFdlYlNvY2tldEhhbmRsZXIiLCJoYW5kbGVyUGF0aG5hbWUiLCJoYW5kbGVyU2VydmVyIiwic2VydmVyIiwiXyIsImlzVW5kZWZpbmVkIiwid2ViU29ja2V0c01hcHBpbmciLCJvbiIsInJlcXVlc3QiLCJzb2NrZXQiLCJoZWFkIiwiY3VycmVudFBhdGhuYW1lIiwiVVJMIiwidXJsIiwicGF0aG5hbWUiLCJ3c1NlcnZlciIsInRvUGFpcnMiLCJoYW5kbGVVcGdyYWRlIiwid3MiLCJlbWl0IiwiZGVzdHJveSIsImdldFdlYlNvY2tldEhhbmRsZXJzIiwia2V5c0ZpbHRlciIsImlzRW1wdHkiLCJyZWR1Y2UiLCJhY2MiLCJpc1N0cmluZyIsImluY2x1ZGVzIiwicmVtb3ZlV2ViU29ja2V0SGFuZGxlciIsImNsb3NlIiwiY2xpZW50IiwiY2xpZW50cyIsInRlcm1pbmF0ZSIsImlnbiIsInJlbW92ZUFsbFdlYlNvY2tldEhhbmRsZXJzIiwic29tZSIsIkIiLCJhbGwiLCJrZXlzIiwibWFwIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2V4cHJlc3Mvd2Vic29ja2V0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlcXVpcmUtYXdhaXQgKi9cbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge1VSTH0gZnJvbSAndXJsJztcbmltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcblxuY29uc3QgREVGQVVMVF9XU19QQVRITkFNRV9QUkVGSVggPSAnL3dzJztcblxuLyoqXG4gKiBBZGRzIHdlYnNvY2tldCBoYW5kbGVyIHRvIGV4cHJlc3Mgc2VydmVyIGluc3RhbmNlLlxuICogSXQgaXMgZXhwZWN0ZWQgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgaW4gRXhwcmVzc1xuICogc2VydmVyIGluc3RhbmNlIGNvbnRleHQuXG4gKlxuICogQHRoaXMge0FwcGl1bVNlcnZlcn0gLSBBbiBpbnN0YW5jZSBvZiBleHByZXNzIEhUVFAgc2VydmVyLlxuICogQHBhcmFtIHtzdHJpbmd9IGhhbmRsZXJQYXRobmFtZSAtIFdlYiBzb2NrZXQgZW5kcG9pbnQgcGF0aCBzdGFydGluZyB3aXRoXG4gKiBhIHNpbmdsZSBzbGFzaCBjaGFyYWN0ZXIuIEl0IGlzIHJlY29tbWVuZGVkIHRvIGFsd2F5cyBhZGRcbiAqIERFRkFVTFRfV1NfUEFUSE5BTUVfUFJFRklYIHRvIGFsbCB3ZWIgc29ja2V0IHBhdGhuYW1lcy5cbiAqIEBwYXJhbSB7aW1wb3J0KCd3cycpLlNlcnZlcn0gaGFuZGxlclNlcnZlciAtIFdlYlNvY2tldCBzZXJ2ZXIgaW5zdGFuY2UuIFNlZVxuICogaHR0cHM6Ly9naXRodWIuY29tL3dlYnNvY2tldHMvd3MvcHVsbC84ODUgZm9yIG1vcmUgZGV0YWlsc1xuICogb24gaG93IHRvIGNvbmZpZ3VyZSB0aGUgaGFuZGxlciBwcm9wZXJseS5cbiAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICovXG5hc3luYyBmdW5jdGlvbiBhZGRXZWJTb2NrZXRIYW5kbGVyKGhhbmRsZXJQYXRobmFtZSwgaGFuZGxlclNlcnZlcikge1xuICBjb25zdCBzZXJ2ZXIgPSAvKiogQHR5cGUge0FwcGl1bVNlcnZlcn0gKi8gKHRoaXMpO1xuICBpZiAoXy5pc1VuZGVmaW5lZCh0aGlzLndlYlNvY2tldHNNYXBwaW5nKSkge1xuICAgIHNlcnZlci53ZWJTb2NrZXRzTWFwcGluZyA9IHt9O1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWJzb2NrZXRzL3dzL3B1bGwvODg1XG4gICAgc2VydmVyLm9uKCd1cGdyYWRlJywgKHJlcXVlc3QsIHNvY2tldCwgaGVhZCkgPT4ge1xuICAgICAgbGV0IGN1cnJlbnRQYXRobmFtZTtcbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgICAgY3VycmVudFBhdGhuYW1lID0gbmV3IFVSTChyZXF1ZXN0LnVybCkucGF0aG5hbWU7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgY3VycmVudFBhdGhuYW1lID0gcmVxdWVzdC51cmw7XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IFtwYXRobmFtZSwgd3NTZXJ2ZXJdIG9mIF8udG9QYWlycyhzZXJ2ZXIud2ViU29ja2V0c01hcHBpbmcpKSB7XG4gICAgICAgIGlmIChjdXJyZW50UGF0aG5hbWUgPT09IHBhdGhuYW1lKSB7XG4gICAgICAgICAgd3NTZXJ2ZXIuaGFuZGxlVXBncmFkZShyZXF1ZXN0LCBzb2NrZXQsIGhlYWQsICh3cykgPT4ge1xuICAgICAgICAgICAgd3NTZXJ2ZXIuZW1pdCgnY29ubmVjdGlvbicsIHdzLCByZXF1ZXN0KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHNvY2tldC5kZXN0cm95KCk7XG4gICAgfSk7XG4gIH1cbiAgdGhpcy53ZWJTb2NrZXRzTWFwcGluZ1toYW5kbGVyUGF0aG5hbWVdID0gaGFuZGxlclNlcnZlcjtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdlYiBzb2NrZXQgaGFuZGxlcnMgcmVnaXN0ZXJlZCBmb3IgdGhlIGdpdmVuIHNlcnZlclxuICogaW5zdGFuY2UuXG4gKiBJdCBpcyBleHBlY3RlZCB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBpbiBFeHByZXNzXG4gKiBzZXJ2ZXIgaW5zdGFuY2UgY29udGV4dC5cbiAqXG4gKiBAdGhpcyB7QXBwaXVtU2VydmVyfVxuICogQHBhcmFtIHtzdHJpbmc/fSBba2V5c0ZpbHRlcl0gLSBPbmx5IGluY2x1ZGUgcGF0aG5hbWVzIHdpdGggZ2l2ZW5cbiAqIGBrZXlzRmlsdGVyYCB2YWx1ZSBpZiBzZXQuIEFsbCBwYWlycyB3aWxsIGJlIGluY2x1ZGVkIGJ5IGRlZmF1bHQuXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBpbXBvcnQoJ3dzJykuU2VydmVyPj59IHBhdGhuYW1lcyB0byB3ZWJzb2NrZXQgc2VydmVyIGluc3RhbmNlcyBtYXBwaW5nIG1hdGNoaW5nIHRoZSBzZWFyY2ggY3JpdGVyaWEgb3IgYW4gZW1wdHkgb2JqZWN0IG90aGVyd2lzZS5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlcXVpcmUtYXdhaXRcbmFzeW5jIGZ1bmN0aW9uIGdldFdlYlNvY2tldEhhbmRsZXJzKGtleXNGaWx0ZXIgPSBudWxsKSB7XG4gIGlmIChfLmlzRW1wdHkodGhpcy53ZWJTb2NrZXRzTWFwcGluZykpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICByZXR1cm4gXy50b1BhaXJzKHRoaXMud2ViU29ja2V0c01hcHBpbmcpLnJlZHVjZSgoYWNjLCBbcGF0aG5hbWUsIHdzU2VydmVyXSkgPT4ge1xuICAgIGlmICghXy5pc1N0cmluZyhrZXlzRmlsdGVyKSB8fCBwYXRobmFtZS5pbmNsdWRlcyhrZXlzRmlsdGVyKSkge1xuICAgICAgYWNjW3BhdGhuYW1lXSA9IHdzU2VydmVyO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSk7XG59XG5cbi8qKlxuICogUmVtb3ZlcyBleGlzdGluZyB3ZWJzb2NrZXQgaGFuZGxlciBmcm9tIGV4cHJlc3Mgc2VydmVyIGluc3RhbmNlLlxuICogVGhlIGNhbGwgaXMgaWdub3JlZCBpZiB0aGUgZ2l2ZW4gYGhhbmRsZXJQYXRobmFtZWAgaGFuZGxlclxuICogaXMgbm90IHByZXNlbnQgaW4gdGhlIGhhbmRsZXJzIGxpc3QuXG4gKiBJdCBpcyBleHBlY3RlZCB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBpbiBFeHByZXNzXG4gKiBzZXJ2ZXIgaW5zdGFuY2UgY29udGV4dC5cbiAqIEB0aGlzIHtBcHBpdW1TZXJ2ZXJ9XG4gKiBAcGFyYW0ge3N0cmluZ30gaGFuZGxlclBhdGhuYW1lIC0gV2Vic29ja2V0IGVuZHBvaW50IHBhdGguXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxib29sZWFuPn0gdHJ1ZSBpZiB0aGUgaGFuZGxlclBhdGhuYW1lIHdhcyBmb3VuZCBhbmQgZGVsZXRlZFxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVxdWlyZS1hd2FpdFxuYXN5bmMgZnVuY3Rpb24gcmVtb3ZlV2ViU29ja2V0SGFuZGxlcihoYW5kbGVyUGF0aG5hbWUpIHtcbiAgY29uc3Qgd3NTZXJ2ZXIgPSB0aGlzLndlYlNvY2tldHNNYXBwaW5nPy5baGFuZGxlclBhdGhuYW1lXTtcbiAgaWYgKCF3c1NlcnZlcikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgd3NTZXJ2ZXIuY2xvc2UoKTtcbiAgICBmb3IgKGNvbnN0IGNsaWVudCBvZiB3c1NlcnZlci5jbGllbnRzIHx8IFtdKSB7XG4gICAgICBjbGllbnQudGVybWluYXRlKCk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChpZ24pIHtcbiAgICAvLyBpZ25vcmVcbiAgfSBmaW5hbGx5IHtcbiAgICBkZWxldGUgdGhpcy53ZWJTb2NrZXRzTWFwcGluZ1toYW5kbGVyUGF0aG5hbWVdO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBSZW1vdmVzIGFsbCBleGlzdGluZyB3ZWJzb2NrZXQgaGFuZGxlciBmcm9tIGV4cHJlc3Mgc2VydmVyIGluc3RhbmNlLlxuICogSXQgaXMgZXhwZWN0ZWQgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgaW4gRXhwcmVzc1xuICogc2VydmVyIGluc3RhbmNlIGNvbnRleHQuXG4gKiBAdGhpcyB7QXBwaXVtU2VydmVyfVxuICogQHJldHVybnMge1Byb21pc2U8Ym9vbGVhbj59IHRydWUgaWYgYXQgbGVhc3Qgb25lIGhhbmRsZXIgaGFzIGJlZW4gZGVsZXRlZFxuICovXG5hc3luYyBmdW5jdGlvbiByZW1vdmVBbGxXZWJTb2NrZXRIYW5kbGVycygpIHtcbiAgaWYgKF8uaXNFbXB0eSh0aGlzLndlYlNvY2tldHNNYXBwaW5nKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBfLnNvbWUoXG4gICAgYXdhaXQgQi5hbGwoXG4gICAgICBfLmtleXModGhpcy53ZWJTb2NrZXRzTWFwcGluZykubWFwKChwYXRobmFtZSkgPT4gdGhpcy5yZW1vdmVXZWJTb2NrZXRIYW5kbGVyKHBhdGhuYW1lKSlcbiAgICApXG4gICk7XG59XG5cbmV4cG9ydCB7XG4gIGFkZFdlYlNvY2tldEhhbmRsZXIsXG4gIHJlbW92ZVdlYlNvY2tldEhhbmRsZXIsXG4gIHJlbW92ZUFsbFdlYlNvY2tldEhhbmRsZXJzLFxuICBnZXRXZWJTb2NrZXRIYW5kbGVycyxcbiAgREVGQVVMVF9XU19QQVRITkFNRV9QUkVGSVgsXG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5BcHBpdW1TZXJ2ZXJ9IEFwcGl1bVNlcnZlclxuICovXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUNBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLDBCQUEwQixHQUFHLEtBQW5DOzs7QUFnQkEsZUFBZUMsbUJBQWYsQ0FBbUNDLGVBQW5DLEVBQW9EQyxhQUFwRCxFQUFtRTtFQUNqRSxNQUFNQyxNQUFNLEdBQWdDLElBQTVDOztFQUNBLElBQUlDLGVBQUEsQ0FBRUMsV0FBRixDQUFjLEtBQUtDLGlCQUFuQixDQUFKLEVBQTJDO0lBQ3pDSCxNQUFNLENBQUNHLGlCQUFQLEdBQTJCLEVBQTNCO0lBRUFILE1BQU0sQ0FBQ0ksRUFBUCxDQUFVLFNBQVYsRUFBcUIsQ0FBQ0MsT0FBRCxFQUFVQyxNQUFWLEVBQWtCQyxJQUFsQixLQUEyQjtNQUM5QyxJQUFJQyxlQUFKOztNQUNBLElBQUk7UUFFRkEsZUFBZSxHQUFHLElBQUlDLFFBQUosQ0FBUUosT0FBTyxDQUFDSyxHQUFoQixFQUFxQkMsUUFBdkM7TUFDRCxDQUhELENBR0UsTUFBTTtRQUNOSCxlQUFlLEdBQUdILE9BQU8sQ0FBQ0ssR0FBMUI7TUFDRDs7TUFDRCxLQUFLLE1BQU0sQ0FBQ0MsUUFBRCxFQUFXQyxRQUFYLENBQVgsSUFBbUNYLGVBQUEsQ0FBRVksT0FBRixDQUFVYixNQUFNLENBQUNHLGlCQUFqQixDQUFuQyxFQUF3RTtRQUN0RSxJQUFJSyxlQUFlLEtBQUtHLFFBQXhCLEVBQWtDO1VBQ2hDQyxRQUFRLENBQUNFLGFBQVQsQ0FBdUJULE9BQXZCLEVBQWdDQyxNQUFoQyxFQUF3Q0MsSUFBeEMsRUFBK0NRLEVBQUQsSUFBUTtZQUNwREgsUUFBUSxDQUFDSSxJQUFULENBQWMsWUFBZCxFQUE0QkQsRUFBNUIsRUFBZ0NWLE9BQWhDO1VBQ0QsQ0FGRDtVQUdBO1FBQ0Q7TUFDRjs7TUFDREMsTUFBTSxDQUFDVyxPQUFQO0lBQ0QsQ0FqQkQ7RUFrQkQ7O0VBQ0QsS0FBS2QsaUJBQUwsQ0FBdUJMLGVBQXZCLElBQTBDQyxhQUExQztBQUNEOztBQWNELGVBQWVtQixvQkFBZixDQUFvQ0MsVUFBVSxHQUFHLElBQWpELEVBQXVEO0VBQ3JELElBQUlsQixlQUFBLENBQUVtQixPQUFGLENBQVUsS0FBS2pCLGlCQUFmLENBQUosRUFBdUM7SUFDckMsT0FBTyxFQUFQO0VBQ0Q7O0VBRUQsT0FBT0YsZUFBQSxDQUFFWSxPQUFGLENBQVUsS0FBS1YsaUJBQWYsRUFBa0NrQixNQUFsQyxDQUF5QyxDQUFDQyxHQUFELEVBQU0sQ0FBQ1gsUUFBRCxFQUFXQyxRQUFYLENBQU4sS0FBK0I7SUFDN0UsSUFBSSxDQUFDWCxlQUFBLENBQUVzQixRQUFGLENBQVdKLFVBQVgsQ0FBRCxJQUEyQlIsUUFBUSxDQUFDYSxRQUFULENBQWtCTCxVQUFsQixDQUEvQixFQUE4RDtNQUM1REcsR0FBRyxDQUFDWCxRQUFELENBQUgsR0FBZ0JDLFFBQWhCO0lBQ0Q7O0lBQ0QsT0FBT1UsR0FBUDtFQUNELENBTE0sRUFLSixFQUxJLENBQVA7QUFNRDs7QUFhRCxlQUFlRyxzQkFBZixDQUFzQzNCLGVBQXRDLEVBQXVEO0VBQUE7O0VBQ3JELE1BQU1jLFFBQVEsNEJBQUcsS0FBS1QsaUJBQVIsMERBQUcsc0JBQXlCTCxlQUF6QixDQUFqQjs7RUFDQSxJQUFJLENBQUNjLFFBQUwsRUFBZTtJQUNiLE9BQU8sS0FBUDtFQUNEOztFQUVELElBQUk7SUFDRkEsUUFBUSxDQUFDYyxLQUFUOztJQUNBLEtBQUssTUFBTUMsTUFBWCxJQUFxQmYsUUFBUSxDQUFDZ0IsT0FBVCxJQUFvQixFQUF6QyxFQUE2QztNQUMzQ0QsTUFBTSxDQUFDRSxTQUFQO0lBQ0Q7O0lBQ0QsT0FBTyxJQUFQO0VBQ0QsQ0FORCxDQU1FLE9BQU9DLEdBQVAsRUFBWSxDQUViLENBUkQsU0FRVTtJQUNSLE9BQU8sS0FBSzNCLGlCQUFMLENBQXVCTCxlQUF2QixDQUFQO0VBQ0Q7O0VBQ0QsT0FBTyxLQUFQO0FBQ0Q7O0FBU0QsZUFBZWlDLDBCQUFmLEdBQTRDO0VBQzFDLElBQUk5QixlQUFBLENBQUVtQixPQUFGLENBQVUsS0FBS2pCLGlCQUFmLENBQUosRUFBdUM7SUFDckMsT0FBTyxLQUFQO0VBQ0Q7O0VBRUQsT0FBT0YsZUFBQSxDQUFFK0IsSUFBRixDQUNMLE1BQU1DLGlCQUFBLENBQUVDLEdBQUYsQ0FDSmpDLGVBQUEsQ0FBRWtDLElBQUYsQ0FBTyxLQUFLaEMsaUJBQVosRUFBK0JpQyxHQUEvQixDQUFvQ3pCLFFBQUQsSUFBYyxLQUFLYyxzQkFBTCxDQUE0QmQsUUFBNUIsQ0FBakQsQ0FESSxDQURELENBQVA7QUFLRCJ9
|
package/build/lib/index.d.ts
CHANGED
|
@@ -1,184 +1,16 @@
|
|
|
1
1
|
export { DriverCore } from "./basedriver/core";
|
|
2
|
+
export { DeviceSettings } from "./basedriver/device-settings";
|
|
3
|
+
export { BaseDriver };
|
|
2
4
|
export default BaseDriver;
|
|
3
|
-
export
|
|
5
|
+
export * from "./protocol";
|
|
6
|
+
export { errorFromMJSONWPStatusCode as errorFromCode } from "./protocol";
|
|
7
|
+
export { STATIC_DIR } from "./express/static";
|
|
8
|
+
export { JWProxy } from "./jsonwp-proxy/proxy";
|
|
9
|
+
export { DEFAULT_WS_PATHNAME_PREFIX } from "./express/websocket";
|
|
10
|
+
export type ServerOpts = import('./express/server').ServerOpts;
|
|
4
11
|
import { BaseDriver } from "./basedriver/driver";
|
|
5
|
-
|
|
6
|
-
export
|
|
7
|
-
export
|
|
8
|
-
|
|
9
|
-
NotImplementedError: typeof import("./protocol/errors").NotImplementedError;
|
|
10
|
-
BadParametersError: typeof import("./protocol/errors").BadParametersError;
|
|
11
|
-
InvalidArgumentError: typeof import("./protocol/errors").InvalidArgumentError;
|
|
12
|
-
NoSuchDriverError: typeof import("./protocol/errors").NoSuchDriverError;
|
|
13
|
-
NoSuchElementError: typeof import("./protocol/errors").NoSuchElementError;
|
|
14
|
-
UnknownCommandError: typeof import("./protocol/errors").UnknownCommandError;
|
|
15
|
-
StaleElementReferenceError: typeof import("./protocol/errors").StaleElementReferenceError;
|
|
16
|
-
ElementNotVisibleError: typeof import("./protocol/errors").ElementNotVisibleError;
|
|
17
|
-
InvalidElementStateError: typeof import("./protocol/errors").InvalidElementStateError;
|
|
18
|
-
UnknownError: typeof import("./protocol/errors").UnknownError;
|
|
19
|
-
ElementIsNotSelectableError: typeof import("./protocol/errors").ElementIsNotSelectableError;
|
|
20
|
-
ElementClickInterceptedError: typeof import("./protocol/errors").ElementClickInterceptedError;
|
|
21
|
-
ElementNotInteractableError: typeof import("./protocol/errors").ElementNotInteractableError;
|
|
22
|
-
InsecureCertificateError: typeof import("./protocol/errors").InsecureCertificateError;
|
|
23
|
-
JavaScriptError: typeof import("./protocol/errors").JavaScriptError;
|
|
24
|
-
XPathLookupError: typeof import("./protocol/errors").XPathLookupError;
|
|
25
|
-
TimeoutError: typeof import("./protocol/errors").TimeoutError;
|
|
26
|
-
NoSuchWindowError: typeof import("./protocol/errors").NoSuchWindowError;
|
|
27
|
-
NoSuchCookieError: typeof import("./protocol/errors").NoSuchCookieError;
|
|
28
|
-
InvalidCookieDomainError: typeof import("./protocol/errors").InvalidCookieDomainError;
|
|
29
|
-
InvalidCoordinatesError: typeof import("./protocol/errors").InvalidCoordinatesError;
|
|
30
|
-
UnableToSetCookieError: typeof import("./protocol/errors").UnableToSetCookieError;
|
|
31
|
-
UnexpectedAlertOpenError: typeof import("./protocol/errors").UnexpectedAlertOpenError;
|
|
32
|
-
NoAlertOpenError: typeof import("./protocol/errors").NoAlertOpenError;
|
|
33
|
-
ScriptTimeoutError: typeof import("./protocol/errors").ScriptTimeoutError;
|
|
34
|
-
InvalidElementCoordinatesError: typeof import("./protocol/errors").InvalidElementCoordinatesError;
|
|
35
|
-
IMENotAvailableError: typeof import("./protocol/errors").IMENotAvailableError;
|
|
36
|
-
IMEEngineActivationFailedError: typeof import("./protocol/errors").IMEEngineActivationFailedError;
|
|
37
|
-
InvalidSelectorError: typeof import("./protocol/errors").InvalidSelectorError;
|
|
38
|
-
SessionNotCreatedError: typeof import("./protocol/errors").SessionNotCreatedError;
|
|
39
|
-
MoveTargetOutOfBoundsError: typeof import("./protocol/errors").MoveTargetOutOfBoundsError;
|
|
40
|
-
NoSuchAlertError: typeof import("./protocol/errors").NoSuchAlertError;
|
|
41
|
-
NoSuchContextError: typeof import("./protocol/errors").NoSuchContextError;
|
|
42
|
-
InvalidContextError: typeof import("./protocol/errors").InvalidContextError;
|
|
43
|
-
NoSuchFrameError: typeof import("./protocol/errors").NoSuchFrameError;
|
|
44
|
-
UnableToCaptureScreen: typeof import("./protocol/errors").UnableToCaptureScreen;
|
|
45
|
-
UnknownMethodError: typeof import("./protocol/errors").UnknownMethodError;
|
|
46
|
-
UnsupportedOperationError: typeof import("./protocol/errors").UnsupportedOperationError;
|
|
47
|
-
ProxyRequestError: typeof import("./protocol/errors").ProxyRequestError;
|
|
48
|
-
};
|
|
49
|
-
export const isErrorType: typeof protocol.isErrorType;
|
|
50
|
-
import { PROTOCOLS } from "./constants";
|
|
51
|
-
export const errorFromMJSONWPStatusCode: typeof protocol.errorFromMJSONWPStatusCode;
|
|
52
|
-
export const errorFromW3CJsonCode: typeof protocol.errorFromW3CJsonCode;
|
|
53
|
-
export const determineProtocol: typeof protocol.determineProtocol;
|
|
54
|
-
export const ALL_COMMANDS: any[];
|
|
55
|
-
export const METHOD_MAP: import("./protocol/routes").MethodMap;
|
|
56
|
-
export const routeToCommandName: typeof protocol.routeToCommandName;
|
|
57
|
-
export const NO_SESSION_ID_COMMANDS: string[];
|
|
58
|
-
export const isSessionCommand: typeof protocol.isSessionCommand;
|
|
59
|
-
import { DEFAULT_BASE_PATH } from "./constants";
|
|
60
|
-
export const CREATE_SESSION_COMMAND: "createSession";
|
|
61
|
-
export const DELETE_SESSION_COMMAND: "deleteSession";
|
|
62
|
-
export const GET_STATUS_COMMAND: "getStatus";
|
|
63
|
-
export const STATIC_DIR: string;
|
|
64
|
-
export const server: typeof serverIndex.server;
|
|
65
|
-
export const normalizeBasePath: typeof serverIndex.normalizeBasePath;
|
|
66
|
-
export const JWProxy: typeof proxyIndex.JWProxy;
|
|
67
|
-
export const statusCodes: {
|
|
68
|
-
Success: {
|
|
69
|
-
code: number;
|
|
70
|
-
summary: string;
|
|
71
|
-
};
|
|
72
|
-
NoSuchDriver: {
|
|
73
|
-
code: number;
|
|
74
|
-
summary: string;
|
|
75
|
-
};
|
|
76
|
-
NoSuchElement: {
|
|
77
|
-
code: number;
|
|
78
|
-
summary: string;
|
|
79
|
-
};
|
|
80
|
-
NoSuchFrame: {
|
|
81
|
-
code: number;
|
|
82
|
-
summary: string;
|
|
83
|
-
};
|
|
84
|
-
UnknownCommand: {
|
|
85
|
-
code: number;
|
|
86
|
-
summary: string;
|
|
87
|
-
};
|
|
88
|
-
StaleElementReference: {
|
|
89
|
-
code: number;
|
|
90
|
-
summary: string;
|
|
91
|
-
};
|
|
92
|
-
ElementNotVisible: {
|
|
93
|
-
code: number;
|
|
94
|
-
summary: string;
|
|
95
|
-
};
|
|
96
|
-
InvalidElementState: {
|
|
97
|
-
code: number;
|
|
98
|
-
summary: string;
|
|
99
|
-
};
|
|
100
|
-
UnknownError: {
|
|
101
|
-
code: number;
|
|
102
|
-
summary: string;
|
|
103
|
-
};
|
|
104
|
-
ElementIsNotSelectable: {
|
|
105
|
-
code: number;
|
|
106
|
-
summary: string;
|
|
107
|
-
};
|
|
108
|
-
JavaScriptError: {
|
|
109
|
-
code: number;
|
|
110
|
-
summary: string;
|
|
111
|
-
};
|
|
112
|
-
XPathLookupError: {
|
|
113
|
-
code: number;
|
|
114
|
-
summary: string;
|
|
115
|
-
};
|
|
116
|
-
Timeout: {
|
|
117
|
-
code: number;
|
|
118
|
-
summary: string;
|
|
119
|
-
};
|
|
120
|
-
NoSuchWindow: {
|
|
121
|
-
code: number;
|
|
122
|
-
summary: string;
|
|
123
|
-
};
|
|
124
|
-
InvalidCookieDomain: {
|
|
125
|
-
code: number;
|
|
126
|
-
summary: string;
|
|
127
|
-
};
|
|
128
|
-
UnableToSetCookie: {
|
|
129
|
-
code: number;
|
|
130
|
-
summary: string;
|
|
131
|
-
};
|
|
132
|
-
UnexpectedAlertOpen: {
|
|
133
|
-
code: number;
|
|
134
|
-
summary: string;
|
|
135
|
-
};
|
|
136
|
-
NoAlertOpenError: {
|
|
137
|
-
code: number;
|
|
138
|
-
summary: string;
|
|
139
|
-
};
|
|
140
|
-
ScriptTimeout: {
|
|
141
|
-
code: number;
|
|
142
|
-
summary: string;
|
|
143
|
-
};
|
|
144
|
-
InvalidElementCoordinates: {
|
|
145
|
-
code: number;
|
|
146
|
-
summary: string;
|
|
147
|
-
};
|
|
148
|
-
IMENotAvailable: {
|
|
149
|
-
code: number;
|
|
150
|
-
summary: string;
|
|
151
|
-
};
|
|
152
|
-
IMEEngineActivationFailed: {
|
|
153
|
-
code: number;
|
|
154
|
-
summary: string;
|
|
155
|
-
};
|
|
156
|
-
InvalidSelector: {
|
|
157
|
-
code: number;
|
|
158
|
-
summary: string;
|
|
159
|
-
};
|
|
160
|
-
SessionNotCreatedException: {
|
|
161
|
-
code: number;
|
|
162
|
-
summary: string;
|
|
163
|
-
};
|
|
164
|
-
MoveTargetOutOfBounds: {
|
|
165
|
-
code: number;
|
|
166
|
-
summary: string;
|
|
167
|
-
};
|
|
168
|
-
NoSuchContext: {
|
|
169
|
-
code: number;
|
|
170
|
-
summary: string;
|
|
171
|
-
};
|
|
172
|
-
};
|
|
173
|
-
export const getSummaryByCode: typeof statusIndex.getSummaryByCode;
|
|
174
|
-
export const processCapabilities: typeof caps.processCapabilities;
|
|
175
|
-
export const isStandardCap: typeof caps.isStandardCap;
|
|
176
|
-
export const validateCaps: typeof caps.validateCaps;
|
|
177
|
-
export const DEFAULT_WS_PATHNAME_PREFIX: "/ws";
|
|
178
|
-
import * as protocol from "./protocol";
|
|
179
|
-
import * as serverIndex from "./express/server";
|
|
180
|
-
import * as proxyIndex from "./jsonwp-proxy/proxy";
|
|
181
|
-
import * as statusIndex from "./jsonwp-status/status";
|
|
182
|
-
import * as caps from "./basedriver/capabilities";
|
|
183
|
-
export { BaseDriver, DeviceSettings, PROTOCOLS, errorFromMJSONWPStatusCode as errorFromCode, DEFAULT_BASE_PATH };
|
|
12
|
+
export { DEFAULT_BASE_PATH, PROTOCOLS } from "./constants";
|
|
13
|
+
export { server, normalizeBasePath } from "./express/server";
|
|
14
|
+
export { getSummaryByCode, codes as statusCodes } from "./jsonwp-status/status";
|
|
15
|
+
export { PREFIXED_APPIUM_OPTS_CAP, processCapabilities, isStandardCap, validateCaps } from "./basedriver/capabilities";
|
|
184
16
|
//# sourceMappingURL=index.d.ts.map
|
package/build/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.js"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.js"],"names":[],"mappings":";;;;;;;;;yBAyCa,OAAO,kBAAkB,EAAE,UAAU"}
|
package/build/lib/index.js
CHANGED
|
@@ -5,21 +5,43 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
|
|
8
|
+
var _exportNames = {
|
|
9
|
+
BaseDriver: true,
|
|
10
|
+
DriverCore: true,
|
|
11
|
+
DeviceSettings: true,
|
|
12
|
+
errorFromCode: true,
|
|
13
|
+
DEFAULT_BASE_PATH: true,
|
|
14
|
+
PROTOCOLS: true,
|
|
15
|
+
STATIC_DIR: true,
|
|
16
|
+
server: true,
|
|
17
|
+
normalizeBasePath: true,
|
|
18
|
+
JWProxy: true,
|
|
19
|
+
getSummaryByCode: true,
|
|
20
|
+
statusCodes: true,
|
|
21
|
+
PREFIXED_APPIUM_OPTS_CAP: true,
|
|
22
|
+
processCapabilities: true,
|
|
23
|
+
isStandardCap: true,
|
|
24
|
+
validateCaps: true,
|
|
25
|
+
DEFAULT_WS_PATHNAME_PREFIX: true
|
|
26
|
+
};
|
|
9
27
|
Object.defineProperty(exports, "BaseDriver", {
|
|
10
28
|
enumerable: true,
|
|
11
29
|
get: function () {
|
|
12
30
|
return _driver.BaseDriver;
|
|
13
31
|
}
|
|
14
32
|
});
|
|
15
|
-
exports.CREATE_SESSION_COMMAND = void 0;
|
|
16
33
|
Object.defineProperty(exports, "DEFAULT_BASE_PATH", {
|
|
17
34
|
enumerable: true,
|
|
18
35
|
get: function () {
|
|
19
36
|
return _constants.DEFAULT_BASE_PATH;
|
|
20
37
|
}
|
|
21
38
|
});
|
|
22
|
-
exports
|
|
39
|
+
Object.defineProperty(exports, "DEFAULT_WS_PATHNAME_PREFIX", {
|
|
40
|
+
enumerable: true,
|
|
41
|
+
get: function () {
|
|
42
|
+
return _websocket.DEFAULT_WS_PATHNAME_PREFIX;
|
|
43
|
+
}
|
|
44
|
+
});
|
|
23
45
|
Object.defineProperty(exports, "DeviceSettings", {
|
|
24
46
|
enumerable: true,
|
|
25
47
|
get: function () {
|
|
@@ -32,11 +54,16 @@ Object.defineProperty(exports, "DriverCore", {
|
|
|
32
54
|
return _core.DriverCore;
|
|
33
55
|
}
|
|
34
56
|
});
|
|
35
|
-
|
|
57
|
+
Object.defineProperty(exports, "JWProxy", {
|
|
58
|
+
enumerable: true,
|
|
59
|
+
get: function () {
|
|
60
|
+
return _proxy.JWProxy;
|
|
61
|
+
}
|
|
62
|
+
});
|
|
36
63
|
Object.defineProperty(exports, "PREFIXED_APPIUM_OPTS_CAP", {
|
|
37
64
|
enumerable: true,
|
|
38
65
|
get: function () {
|
|
39
|
-
return
|
|
66
|
+
return _capabilities.PREFIXED_APPIUM_OPTS_CAP;
|
|
40
67
|
}
|
|
41
68
|
});
|
|
42
69
|
Object.defineProperty(exports, "PROTOCOLS", {
|
|
@@ -45,7 +72,61 @@ Object.defineProperty(exports, "PROTOCOLS", {
|
|
|
45
72
|
return _constants.PROTOCOLS;
|
|
46
73
|
}
|
|
47
74
|
});
|
|
48
|
-
|
|
75
|
+
Object.defineProperty(exports, "STATIC_DIR", {
|
|
76
|
+
enumerable: true,
|
|
77
|
+
get: function () {
|
|
78
|
+
return _static.STATIC_DIR;
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
exports.default = void 0;
|
|
82
|
+
Object.defineProperty(exports, "errorFromCode", {
|
|
83
|
+
enumerable: true,
|
|
84
|
+
get: function () {
|
|
85
|
+
return _protocol.errorFromMJSONWPStatusCode;
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
Object.defineProperty(exports, "getSummaryByCode", {
|
|
89
|
+
enumerable: true,
|
|
90
|
+
get: function () {
|
|
91
|
+
return _status.getSummaryByCode;
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
Object.defineProperty(exports, "isStandardCap", {
|
|
95
|
+
enumerable: true,
|
|
96
|
+
get: function () {
|
|
97
|
+
return _capabilities.isStandardCap;
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
Object.defineProperty(exports, "normalizeBasePath", {
|
|
101
|
+
enumerable: true,
|
|
102
|
+
get: function () {
|
|
103
|
+
return _server.normalizeBasePath;
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
Object.defineProperty(exports, "processCapabilities", {
|
|
107
|
+
enumerable: true,
|
|
108
|
+
get: function () {
|
|
109
|
+
return _capabilities.processCapabilities;
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
Object.defineProperty(exports, "server", {
|
|
113
|
+
enumerable: true,
|
|
114
|
+
get: function () {
|
|
115
|
+
return _server.server;
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
Object.defineProperty(exports, "statusCodes", {
|
|
119
|
+
enumerable: true,
|
|
120
|
+
get: function () {
|
|
121
|
+
return _status.codes;
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
Object.defineProperty(exports, "validateCaps", {
|
|
125
|
+
enumerable: true,
|
|
126
|
+
get: function () {
|
|
127
|
+
return _capabilities.validateCaps;
|
|
128
|
+
}
|
|
129
|
+
});
|
|
49
130
|
|
|
50
131
|
require("source-map-support/register");
|
|
51
132
|
|
|
@@ -57,25 +138,33 @@ var _core = require("./basedriver/core");
|
|
|
57
138
|
|
|
58
139
|
var _deviceSettings = require("./basedriver/device-settings");
|
|
59
140
|
|
|
60
|
-
var
|
|
141
|
+
var _protocol = require("./protocol");
|
|
142
|
+
|
|
143
|
+
Object.keys(_protocol).forEach(function (key) {
|
|
144
|
+
if (key === "default" || key === "__esModule") return;
|
|
145
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
146
|
+
if (key in exports && exports[key] === _protocol[key]) return;
|
|
147
|
+
Object.defineProperty(exports, key, {
|
|
148
|
+
enumerable: true,
|
|
149
|
+
get: function () {
|
|
150
|
+
return _protocol[key];
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
});
|
|
61
154
|
|
|
62
155
|
var _constants = require("./constants");
|
|
63
156
|
|
|
64
|
-
var
|
|
65
|
-
|
|
66
|
-
var serverIndex = _interopRequireWildcard(require("./express/server"));
|
|
67
|
-
|
|
68
|
-
var proxyIndex = _interopRequireWildcard(require("./jsonwp-proxy/proxy"));
|
|
157
|
+
var _static = require("./express/static");
|
|
69
158
|
|
|
70
|
-
var
|
|
159
|
+
var _server = require("./express/server");
|
|
71
160
|
|
|
72
|
-
var
|
|
161
|
+
var _proxy = require("./jsonwp-proxy/proxy");
|
|
73
162
|
|
|
74
|
-
var
|
|
163
|
+
var _status = require("./jsonwp-status/status");
|
|
75
164
|
|
|
76
|
-
|
|
165
|
+
var _capabilities = require("./basedriver/capabilities");
|
|
77
166
|
|
|
78
|
-
|
|
167
|
+
var _websocket = require("./express/websocket");
|
|
79
168
|
|
|
80
169
|
_bluebird.default.config({
|
|
81
170
|
cancellation: true
|
|
@@ -83,66 +172,4 @@ _bluebird.default.config({
|
|
|
83
172
|
|
|
84
173
|
var _default = _driver.BaseDriver;
|
|
85
174
|
exports.default = _default;
|
|
86
|
-
|
|
87
|
-
routeConfiguringFunction,
|
|
88
|
-
errors,
|
|
89
|
-
isErrorType,
|
|
90
|
-
errorFromMJSONWPStatusCode,
|
|
91
|
-
errorFromW3CJsonCode,
|
|
92
|
-
ALL_COMMANDS,
|
|
93
|
-
METHOD_MAP,
|
|
94
|
-
routeToCommandName,
|
|
95
|
-
NO_SESSION_ID_COMMANDS,
|
|
96
|
-
isSessionCommand,
|
|
97
|
-
determineProtocol,
|
|
98
|
-
CREATE_SESSION_COMMAND,
|
|
99
|
-
DELETE_SESSION_COMMAND,
|
|
100
|
-
GET_STATUS_COMMAND
|
|
101
|
-
} = protocol;
|
|
102
|
-
exports.GET_STATUS_COMMAND = GET_STATUS_COMMAND;
|
|
103
|
-
exports.DELETE_SESSION_COMMAND = DELETE_SESSION_COMMAND;
|
|
104
|
-
exports.CREATE_SESSION_COMMAND = CREATE_SESSION_COMMAND;
|
|
105
|
-
exports.determineProtocol = determineProtocol;
|
|
106
|
-
exports.isSessionCommand = isSessionCommand;
|
|
107
|
-
exports.NO_SESSION_ID_COMMANDS = NO_SESSION_ID_COMMANDS;
|
|
108
|
-
exports.routeToCommandName = routeToCommandName;
|
|
109
|
-
exports.METHOD_MAP = METHOD_MAP;
|
|
110
|
-
exports.ALL_COMMANDS = ALL_COMMANDS;
|
|
111
|
-
exports.errorFromW3CJsonCode = errorFromW3CJsonCode;
|
|
112
|
-
exports.errorFromCode = exports.errorFromMJSONWPStatusCode = errorFromMJSONWPStatusCode;
|
|
113
|
-
exports.isErrorType = isErrorType;
|
|
114
|
-
exports.errors = errors;
|
|
115
|
-
exports.routeConfiguringFunction = routeConfiguringFunction;
|
|
116
|
-
const {
|
|
117
|
-
STATIC_DIR
|
|
118
|
-
} = staticIndex;
|
|
119
|
-
exports.STATIC_DIR = STATIC_DIR;
|
|
120
|
-
const {
|
|
121
|
-
server,
|
|
122
|
-
normalizeBasePath
|
|
123
|
-
} = serverIndex;
|
|
124
|
-
exports.normalizeBasePath = normalizeBasePath;
|
|
125
|
-
exports.server = server;
|
|
126
|
-
const {
|
|
127
|
-
JWProxy
|
|
128
|
-
} = proxyIndex;
|
|
129
|
-
exports.JWProxy = JWProxy;
|
|
130
|
-
const {
|
|
131
|
-
codes: statusCodes,
|
|
132
|
-
getSummaryByCode
|
|
133
|
-
} = statusIndex;
|
|
134
|
-
exports.getSummaryByCode = getSummaryByCode;
|
|
135
|
-
exports.statusCodes = statusCodes;
|
|
136
|
-
const {
|
|
137
|
-
processCapabilities,
|
|
138
|
-
isStandardCap,
|
|
139
|
-
validateCaps
|
|
140
|
-
} = caps;
|
|
141
|
-
exports.validateCaps = validateCaps;
|
|
142
|
-
exports.isStandardCap = isStandardCap;
|
|
143
|
-
exports.processCapabilities = processCapabilities;
|
|
144
|
-
const {
|
|
145
|
-
DEFAULT_WS_PATHNAME_PREFIX
|
|
146
|
-
} = ws;
|
|
147
|
-
exports.DEFAULT_WS_PATHNAME_PREFIX = DEFAULT_WS_PATHNAME_PREFIX;
|
|
148
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCIiwiY29uZmlnIiwiY2FuY2VsbGF0aW9uIiwiQmFzZURyaXZlciIsInJvdXRlQ29uZmlndXJpbmdGdW5jdGlvbiIsImVycm9ycyIsImlzRXJyb3JUeXBlIiwiZXJyb3JGcm9tTUpTT05XUFN0YXR1c0NvZGUiLCJlcnJvckZyb21XM0NKc29uQ29kZSIsIkFMTF9DT01NQU5EUyIsIk1FVEhPRF9NQVAiLCJyb3V0ZVRvQ29tbWFuZE5hbWUiLCJOT19TRVNTSU9OX0lEX0NPTU1BTkRTIiwiaXNTZXNzaW9uQ29tbWFuZCIsImRldGVybWluZVByb3RvY29sIiwiQ1JFQVRFX1NFU1NJT05fQ09NTUFORCIsIkRFTEVURV9TRVNTSU9OX0NPTU1BTkQiLCJHRVRfU1RBVFVTX0NPTU1BTkQiLCJwcm90b2NvbCIsIlNUQVRJQ19ESVIiLCJzdGF0aWNJbmRleCIsInNlcnZlciIsIm5vcm1hbGl6ZUJhc2VQYXRoIiwic2VydmVySW5kZXgiLCJKV1Byb3h5IiwicHJveHlJbmRleCIsImNvZGVzIiwic3RhdHVzQ29kZXMiLCJnZXRTdW1tYXJ5QnlDb2RlIiwic3RhdHVzSW5kZXgiLCJwcm9jZXNzQ2FwYWJpbGl0aWVzIiwiaXNTdGFuZGFyZENhcCIsInZhbGlkYXRlQ2FwcyIsImNhcHMiLCJERUZBVUxUX1dTX1BBVEhOQU1FX1BSRUZJWCIsIndzIl0sInNvdXJjZXMiOlsiLi4vLi4vbGliL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcblxuQi5jb25maWcoe1xuICBjYW5jZWxsYXRpb246IHRydWUsXG59KTtcblxuLy8gQmFzZURyaXZlciBleHBvcnRzXG5pbXBvcnQge0Jhc2VEcml2ZXJ9IGZyb20gJy4vYmFzZWRyaXZlci9kcml2ZXInO1xuZXhwb3J0IHtEcml2ZXJDb3JlfSBmcm9tICcuL2Jhc2Vkcml2ZXIvY29yZSc7XG5pbXBvcnQge0RldmljZVNldHRpbmdzfSBmcm9tICcuL2Jhc2Vkcml2ZXIvZGV2aWNlLXNldHRpbmdzJztcblxuZXhwb3J0IHtCYXNlRHJpdmVyLCBEZXZpY2VTZXR0aW5nc307XG5leHBvcnQgZGVmYXVsdCBCYXNlRHJpdmVyO1xuXG4vLyBNSlNPTldQIGV4cG9ydHNcbmltcG9ydCAqIGFzIHByb3RvY29sIGZyb20gJy4vcHJvdG9jb2wnO1xuaW1wb3J0IHtERUZBVUxUX0JBU0VfUEFUSCwgUFJPVE9DT0xTfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmNvbnN0IHtcbiAgcm91dGVDb25maWd1cmluZ0Z1bmN0aW9uLFxuICBlcnJvcnMsXG4gIGlzRXJyb3JUeXBlLFxuICBlcnJvckZyb21NSlNPTldQU3RhdHVzQ29kZSxcbiAgZXJyb3JGcm9tVzNDSnNvbkNvZGUsXG4gIEFMTF9DT01NQU5EUyxcbiAgTUVUSE9EX01BUCxcbiAgcm91dGVUb0NvbW1hbmROYW1lLFxuICBOT19TRVNTSU9OX0lEX0NPTU1BTkRTLFxuICBpc1Nlc3Npb25Db21tYW5kLFxuICBkZXRlcm1pbmVQcm90b2NvbCxcbiAgQ1JFQVRFX1NFU1NJT05fQ09NTUFORCxcbiAgREVMRVRFX1NFU1NJT05fQ09NTUFORCxcbiAgR0VUX1NUQVRVU19DT01NQU5ELFxufSA9IHByb3RvY29sO1xuXG5leHBvcnQge1xuICByb3V0ZUNvbmZpZ3VyaW5nRnVuY3Rpb24sXG4gIGVycm9ycyxcbiAgaXNFcnJvclR5cGUsXG4gIFBST1RPQ09MUyxcbiAgZXJyb3JGcm9tTUpTT05XUFN0YXR1c0NvZGUsXG4gIGVycm9yRnJvbVczQ0pzb25Db2RlLFxuICBkZXRlcm1pbmVQcm90b2NvbCxcbiAgZXJyb3JGcm9tTUpTT05XUFN0YXR1c0NvZGUgYXMgZXJyb3JGcm9tQ29kZSxcbiAgQUxMX0NPTU1BTkRTLFxuICBNRVRIT0RfTUFQLFxuICByb3V0ZVRvQ29tbWFuZE5hbWUsXG4gIE5PX1NFU1NJT05fSURfQ09NTUFORFMsXG4gIGlzU2Vzc2lvbkNvbW1hbmQsXG4gIERFRkFVTFRfQkFTRV9QQVRILFxuICBDUkVBVEVfU0VTU0lPTl9DT01NQU5ELFxuICBERUxFVEVfU0VTU0lPTl9DT01NQU5ELFxuICBHRVRfU1RBVFVTX0NPTU1BTkQsXG59O1xuXG4vLyBFeHByZXNzIGV4cG9ydHNcbmltcG9ydCAqIGFzIHN0YXRpY0luZGV4IGZyb20gJy4vZXhwcmVzcy9zdGF0aWMnO1xuY29uc3Qge1NUQVRJQ19ESVJ9ID0gc3RhdGljSW5kZXg7XG5leHBvcnQge1NUQVRJQ19ESVJ9O1xuXG5pbXBvcnQgKiBhcyBzZXJ2ZXJJbmRleCBmcm9tICcuL2V4cHJlc3Mvc2VydmVyJztcbmNvbnN0IHtzZXJ2ZXIsIG5vcm1hbGl6ZUJhc2VQYXRofSA9IHNlcnZlckluZGV4O1xuZXhwb3J0IHtzZXJ2ZXIsIG5vcm1hbGl6ZUJhc2VQYXRofTtcblxuLy8ganNvbndwLXByb3h5IGV4cG9ydHNcbmltcG9ydCAqIGFzIHByb3h5SW5kZXggZnJvbSAnLi9qc29ud3AtcHJveHkvcHJveHknO1xuY29uc3Qge0pXUHJveHl9ID0gcHJveHlJbmRleDtcbmV4cG9ydCB7SldQcm94eX07XG5cbi8vIGpzb253cC1zdGF0dXMgZXhwb3J0c1xuaW1wb3J0ICogYXMgc3RhdHVzSW5kZXggZnJvbSAnLi9qc29ud3Atc3RhdHVzL3N0YXR1cyc7XG5jb25zdCB7Y29kZXM6IHN0YXR1c0NvZGVzLCBnZXRTdW1tYXJ5QnlDb2RlfSA9IHN0YXR1c0luZGV4O1xuZXhwb3J0IHtzdGF0dXNDb2RlcywgZ2V0U3VtbWFyeUJ5Q29kZX07XG5cbi8vIFczQyBjYXBhYmlsaXRpZXMgcGFyc2VyXG5pbXBvcnQgKiBhcyBjYXBzIGZyb20gJy4vYmFzZWRyaXZlci9jYXBhYmlsaXRpZXMnO1xuY29uc3Qge3Byb2Nlc3NDYXBhYmlsaXRpZXMsIGlzU3RhbmRhcmRDYXAsIHZhbGlkYXRlQ2Fwc30gPSBjYXBzO1xuZXhwb3J0IHtwcm9jZXNzQ2FwYWJpbGl0aWVzLCBpc1N0YW5kYXJkQ2FwLCB2YWxpZGF0ZUNhcHN9O1xuXG4vLyBXZWIgc29ja2V0IGhlbHBlcnNcbmltcG9ydCAqIGFzIHdzIGZyb20gJy4vZXhwcmVzcy93ZWJzb2NrZXQnO1xuY29uc3Qge0RFRkFVTFRfV1NfUEFUSE5BTUVfUFJFRklYfSA9IHdzO1xuZXhwb3J0IHtERUZBVUxUX1dTX1BBVEhOQU1FX1BSRUZJWH07XG5cbmV4cG9ydCB7UFJFRklYRURfQVBQSVVNX09QVFNfQ0FQfSBmcm9tICcuL2Jhc2Vkcml2ZXIvY2FwYWJpbGl0aWVzJztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBT0E7O0FBQ0E7O0FBQ0E7O0FBTUE7O0FBQ0E7O0FBd0NBOztBQUlBOztBQUtBOztBQUtBOztBQUtBOztBQUtBOzs7Ozs7QUE5RUFBLGlCQUFBLENBQUVDLE1BQUYsQ0FBUztFQUNQQyxZQUFZLEVBQUU7QUFEUCxDQUFUOztlQVVlQyxrQjs7QUFNZixNQUFNO0VBQ0pDLHdCQURJO0VBRUpDLE1BRkk7RUFHSkMsV0FISTtFQUlKQywwQkFKSTtFQUtKQyxvQkFMSTtFQU1KQyxZQU5JO0VBT0pDLFVBUEk7RUFRSkMsa0JBUkk7RUFTSkMsc0JBVEk7RUFVSkMsZ0JBVkk7RUFXSkMsaUJBWEk7RUFZSkMsc0JBWkk7RUFhSkMsc0JBYkk7RUFjSkM7QUFkSSxJQWVGQyxRQWZKOzs7Ozs7Ozs7Ozs7Ozs7QUF1Q0EsTUFBTTtFQUFDQztBQUFELElBQWVDLFdBQXJCOztBQUlBLE1BQU07RUFBQ0MsTUFBRDtFQUFTQztBQUFULElBQThCQyxXQUFwQzs7O0FBS0EsTUFBTTtFQUFDQztBQUFELElBQVlDLFVBQWxCOztBQUtBLE1BQU07RUFBQ0MsS0FBSyxFQUFFQyxXQUFSO0VBQXFCQztBQUFyQixJQUF5Q0MsV0FBL0M7OztBQUtBLE1BQU07RUFBQ0MsbUJBQUQ7RUFBc0JDLGFBQXRCO0VBQXFDQztBQUFyQyxJQUFxREMsSUFBM0Q7Ozs7QUFLQSxNQUFNO0VBQUNDO0FBQUQsSUFBK0JDLEVBQXJDIn0=
|
|
175
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCIiwiY29uZmlnIiwiY2FuY2VsbGF0aW9uIiwiQmFzZURyaXZlciJdLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQiBmcm9tICdibHVlYmlyZCc7XG5cbkIuY29uZmlnKHtcbiAgY2FuY2VsbGF0aW9uOiB0cnVlLFxufSk7XG5cbi8vIEJhc2VEcml2ZXIgZXhwb3J0c1xuaW1wb3J0IHtCYXNlRHJpdmVyfSBmcm9tICcuL2Jhc2Vkcml2ZXIvZHJpdmVyJztcbmV4cG9ydCB7RHJpdmVyQ29yZX0gZnJvbSAnLi9iYXNlZHJpdmVyL2NvcmUnO1xuZXhwb3J0IHtEZXZpY2VTZXR0aW5nc30gZnJvbSAnLi9iYXNlZHJpdmVyL2RldmljZS1zZXR0aW5ncyc7XG5cbmV4cG9ydCB7QmFzZURyaXZlcn07XG5leHBvcnQgZGVmYXVsdCBCYXNlRHJpdmVyO1xuXG4vLyBNSlNPTldQIGV4cG9ydHNcbmV4cG9ydCAqIGZyb20gJy4vcHJvdG9jb2wnO1xuZXhwb3J0IHtlcnJvckZyb21NSlNPTldQU3RhdHVzQ29kZSBhcyBlcnJvckZyb21Db2RlfSBmcm9tICcuL3Byb3RvY29sJztcbmV4cG9ydCB7REVGQVVMVF9CQVNFX1BBVEgsIFBST1RPQ09MU30gZnJvbSAnLi9jb25zdGFudHMnO1xuXG4vLyBFeHByZXNzIGV4cG9ydHNcbmV4cG9ydCB7U1RBVElDX0RJUn0gZnJvbSAnLi9leHByZXNzL3N0YXRpYyc7XG5leHBvcnQge3NlcnZlciwgbm9ybWFsaXplQmFzZVBhdGh9IGZyb20gJy4vZXhwcmVzcy9zZXJ2ZXInO1xuXG4vLyBqc29ud3AtcHJveHkgZXhwb3J0c1xuZXhwb3J0IHtKV1Byb3h5fSBmcm9tICcuL2pzb253cC1wcm94eS9wcm94eSc7XG5cbi8vIGpzb253cC1zdGF0dXMgZXhwb3J0c1xuZXhwb3J0IHtnZXRTdW1tYXJ5QnlDb2RlLCBjb2RlcyBhcyBzdGF0dXNDb2Rlc30gZnJvbSAnLi9qc29ud3Atc3RhdHVzL3N0YXR1cyc7XG5cbi8vIFczQyBjYXBhYmlsaXRpZXMgcGFyc2VyXG5leHBvcnQge1xuICBQUkVGSVhFRF9BUFBJVU1fT1BUU19DQVAsXG4gIHByb2Nlc3NDYXBhYmlsaXRpZXMsXG4gIGlzU3RhbmRhcmRDYXAsXG4gIHZhbGlkYXRlQ2Fwcyxcbn0gZnJvbSAnLi9iYXNlZHJpdmVyL2NhcGFiaWxpdGllcyc7XG5cbi8vIFdlYiBzb2NrZXQgaGVscGVyc1xuZXhwb3J0IHtERUZBVUxUX1dTX1BBVEhOQU1FX1BSRUZJWH0gZnJvbSAnLi9leHByZXNzL3dlYnNvY2tldCc7XG5cbi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9leHByZXNzL3NlcnZlcicpLlNlcnZlck9wdHN9IFNlcnZlck9wdHNcbiAqL1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFPQTs7QUFDQTs7QUFDQTs7QUFNQTs7QUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0lBQUE7SUFBQTtNQUFBO0lBQUE7RUFBQTtBQUFBOztBQUVBOztBQUdBOztBQUNBOztBQUdBOztBQUdBOztBQUdBOztBQVFBOztBQXBDQUEsaUJBQUEsQ0FBRUMsTUFBRixDQUFTO0VBQ1BDLFlBQVksRUFBRTtBQURQLENBQVQ7O2VBVWVDLGtCIn0=
|