@axe-core/watcher 0.0.1-next.91ab0307 → 0.0.1-next.9c19014c

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/dist/util.js CHANGED
@@ -1,48 +1,51 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ var desc = Object.getOwnPropertyDescriptor(m, k);
20
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
21
+ desc = { enumerable: true, get: function() { return m[k]; } };
36
22
  }
23
+ Object.defineProperty(o, k2, desc);
24
+ }) : (function(o, m, k, k2) {
25
+ if (k2 === undefined) k2 = k;
26
+ o[k2] = m[k];
27
+ }));
28
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
29
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
30
+ }) : function(o, v) {
31
+ o["default"] = v;
32
+ });
33
+ var __importStar = (this && this.__importStar) || function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
37
+ __setModuleDefault(result, mod);
38
+ return result;
37
39
  };
38
40
  var __importDefault = (this && this.__importDefault) || function (mod) {
39
41
  return (mod && mod.__esModule) ? mod : { "default": mod };
40
42
  };
41
43
  Object.defineProperty(exports, "__esModule", { value: true });
42
- exports.Controller = exports.writeVariables = exports.extensionArgs = exports.PATH_TO_EXTENSION_VARIABLES = exports.PATH_TO_SESSION_FILE = exports.DEFAULT_SERVER_URL = exports.PATH_TO_EXTENSION = void 0;
44
+ exports.writeManifest = exports.writeVariables = exports.HeadlessNotSupportedError = exports.extensionArgs = exports.PATH_TO_EXTENSION_VARIABLES = exports.PATH_TO_SESSION_FILE = exports.DEFAULT_SERVER_URL = exports.PATH_TO_EXTENSION = void 0;
43
45
  var fs_1 = __importDefault(require("fs"));
44
46
  var path_1 = __importDefault(require("path"));
45
47
  var os_1 = __importDefault(require("os"));
48
+ var git = __importStar(require("./git"));
46
49
  exports.PATH_TO_EXTENSION = path_1.default.join(__dirname, '..', 'extension');
47
50
  exports.DEFAULT_SERVER_URL = 'https://axe.deque.com/';
48
51
  exports.PATH_TO_SESSION_FILE = path_1.default.join(os_1.default.tmpdir(), 'axe-watcher-session.json');
@@ -51,6 +54,16 @@ exports.extensionArgs = [
51
54
  "--disable-extensions-except=".concat(exports.PATH_TO_EXTENSION),
52
55
  "--load-extension=".concat(exports.PATH_TO_EXTENSION)
53
56
  ];
57
+ var HeadlessNotSupportedError = /** @class */ (function (_super) {
58
+ __extends(HeadlessNotSupportedError, _super);
59
+ function HeadlessNotSupportedError() {
60
+ var _this = _super.call(this, 'Cannot use extension while headless.') || this;
61
+ _this.name = 'HeadlessNotSupportedError';
62
+ return _this;
63
+ }
64
+ return HeadlessNotSupportedError;
65
+ }(Error));
66
+ exports.HeadlessNotSupportedError = HeadlessNotSupportedError;
54
67
  /** Write the user's settings to the disk, so the extension can load them. */
55
68
  function writeVariables(_a) {
56
69
  var apiKey = _a.apiKey, serverURL = _a.serverURL, sessionId = _a.sessionId, autoAnalyze = _a.autoAnalyze;
@@ -78,105 +91,35 @@ function writeVariables(_a) {
78
91
  throw new Error("Unable to read session configuration: ".concat(error));
79
92
  }
80
93
  }
81
- fs_1.default.writeFileSync(exports.PATH_TO_EXTENSION_VARIABLES, JSON.stringify({
94
+ var variables = {
82
95
  api_key: apiKey,
83
96
  server_url: urlString,
84
97
  session_id: sessionId,
85
98
  auto_analyze: !!autoAnalyze
86
- }));
99
+ };
100
+ // If the repository is a git repository, add git info to the variables.
101
+ if (git.isRepository()) {
102
+ variables.git_branch = git.getBranchName();
103
+ variables.git_default_branch = git.getDefaultBranchName();
104
+ var info = git.getCommitInfo();
105
+ variables.git_commit_sha = info === null || info === void 0 ? void 0 : info.hash;
106
+ variables.git_commit_author = info === null || info === void 0 ? void 0 : info.author;
107
+ variables.git_commit_email = info === null || info === void 0 ? void 0 : info.email;
108
+ variables.git_commit_message = info === null || info === void 0 ? void 0 : info.message;
109
+ variables.git_url = git.getRemoteURL();
110
+ variables.git_is_dirty = git.isDirty();
111
+ }
112
+ fs_1.default.writeFileSync(exports.PATH_TO_EXTENSION_VARIABLES, JSON.stringify(variables));
87
113
  }
88
114
  exports.writeVariables = writeVariables;
89
- function updateAutoAnalyze(newVal) {
90
- var fileContents = fs_1.default.readFileSync(exports.PATH_TO_EXTENSION_VARIABLES, 'utf-8');
91
- var jsonValue = JSON.parse(fileContents);
92
- jsonValue['auto_analyze'] = newVal;
93
- fs_1.default.writeFileSync(exports.PATH_TO_EXTENSION_VARIABLES, JSON.stringify(jsonValue));
115
+ /** Update the extension manifest file. */
116
+ function writeManifest(_a) {
117
+ var all_frames = _a.all_frames, exclude_globs = _a.exclude_globs;
118
+ var manifestPath = path_1.default.join(exports.PATH_TO_EXTENSION, 'manifest.json');
119
+ var manifest = JSON.parse(fs_1.default.readFileSync(manifestPath, 'utf-8'));
120
+ manifest.content_scripts[0].all_frames = all_frames;
121
+ manifest.content_scripts[0].exclude_globs = exclude_globs;
122
+ fs_1.default.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2));
94
123
  }
95
- var Controller = /** @class */ (function () {
96
- function Controller() {
97
- }
98
- Controller.prototype.start = function () {
99
- return __awaiter(this, void 0, void 0, function () {
100
- return __generator(this, function (_a) {
101
- switch (_a.label) {
102
- case 0:
103
- updateAutoAnalyze(true);
104
- return [4 /*yield*/, this.executeScript(function () {
105
- var event = new CustomEvent('axe:start-auto-mode');
106
- window.dispatchEvent(event);
107
- return Promise.resolve();
108
- })];
109
- case 1:
110
- _a.sent();
111
- return [2 /*return*/];
112
- }
113
- });
114
- });
115
- };
116
- Controller.prototype.stop = function () {
117
- return __awaiter(this, void 0, void 0, function () {
118
- return __generator(this, function (_a) {
119
- switch (_a.label) {
120
- case 0:
121
- updateAutoAnalyze(false);
122
- return [4 /*yield*/, this.executeScript(function () {
123
- var event = new CustomEvent('axe:stop-auto-mode');
124
- window.dispatchEvent(event);
125
- return Promise.resolve();
126
- })];
127
- case 1:
128
- _a.sent();
129
- return [2 /*return*/];
130
- }
131
- });
132
- });
133
- };
134
- Controller.prototype.analyze = function () {
135
- return __awaiter(this, void 0, void 0, function () {
136
- return __generator(this, function (_a) {
137
- switch (_a.label) {
138
- case 0: return [4 /*yield*/, this.executeScript(function () {
139
- return new Promise(function (resolve) {
140
- var event = new CustomEvent('axe:manual-mode-analyze');
141
- var fn = function () {
142
- window.removeEventListener('axe:manual-mode-analyze-done', fn);
143
- resolve();
144
- };
145
- window.addEventListener('axe:manual-mode-analyze-done', fn);
146
- window.dispatchEvent(event);
147
- });
148
- })];
149
- case 1:
150
- _a.sent();
151
- return [2 /*return*/];
152
- }
153
- });
154
- });
155
- };
156
- /** Flush all axe-core results by sending them to the server. */
157
- Controller.prototype.flush = function () {
158
- return __awaiter(this, void 0, void 0, function () {
159
- return __generator(this, function (_a) {
160
- switch (_a.label) {
161
- case 0: return [4 /*yield*/, this.executeScript(function () {
162
- return new Promise(function (resolve) {
163
- var fn = function () {
164
- window.removeEventListener('axe:flush-end', fn);
165
- resolve();
166
- };
167
- window.addEventListener('axe:flush-end', fn);
168
- var event = new CustomEvent('axe:flush-start');
169
- window.dispatchEvent(event);
170
- });
171
- })];
172
- case 1:
173
- _a.sent();
174
- return [2 /*return*/];
175
- }
176
- });
177
- });
178
- };
179
- return Controller;
180
- }());
181
- exports.Controller = Controller;
124
+ exports.writeManifest = writeManifest;
182
125
  //# sourceMappingURL=util.js.map
package/dist/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
package/dist/wdio.d.ts CHANGED
@@ -1,5 +1,6 @@
1
- import { Configuration, Controller } from './util';
2
1
  import type { Options } from '@wdio/types';
2
+ import { Configuration } from './util';
3
+ import Controller from './Controller';
3
4
  interface Browser {
4
5
  executeAsyncScript(script: string, args: object[]): void;
5
6
  }
package/dist/wdio.js CHANGED
@@ -61,9 +61,18 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
61
61
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
62
62
  }
63
63
  };
64
+ var __importDefault = (this && this.__importDefault) || function (mod) {
65
+ return (mod && mod.__esModule) ? mod : { "default": mod };
66
+ };
64
67
  Object.defineProperty(exports, "__esModule", { value: true });
65
68
  exports.WdioController = exports.wdioTestRunner = exports.wdioConfig = void 0;
69
+ var uuid_1 = require("uuid");
70
+ var fs_1 = __importDefault(require("fs"));
66
71
  var util_1 = require("./util");
72
+ var Controller_1 = __importDefault(require("./Controller"));
73
+ var noop = function () {
74
+ // Nothing.
75
+ };
67
76
  /**
68
77
  * Creates a WebDriverIO config that uses axe extension
69
78
  *
@@ -77,7 +86,7 @@ function wdioConfig(arg) {
77
86
  var chromeOpts = ((_b = (_a = arg.options) === null || _a === void 0 ? void 0 : _a.capabilities) === null || _b === void 0 ? void 0 : _b['goog:chromeOptions']) || {};
78
87
  var args = chromeOpts.args || [];
79
88
  if (args.includes('--headless')) {
80
- throw new Error('Cannot use extension while headless.');
89
+ throw new util_1.HeadlessNotSupportedError();
81
90
  }
82
91
  return __assign(__assign({}, arg.options), { capabilities: __assign(__assign({}, (_c = arg.options) === null || _c === void 0 ? void 0 : _c.capabilities), { browserName: 'chrome', 'goog:chromeOptions': {
83
92
  args: util_1.extensionArgs.concat(args)
@@ -102,10 +111,37 @@ function wdioTestRunner(axe, config) {
102
111
  chromeOpts.args = chromeOpts.args || [];
103
112
  var args = chromeOpts.args;
104
113
  if (args.includes('--headless')) {
105
- throw new Error('Cannot use extension while headless.');
114
+ throw new util_1.HeadlessNotSupportedError();
106
115
  }
107
116
  chromeOpts.args = util_1.extensionArgs.concat(args);
108
- return __assign(__assign({}, config), { capabilities: capabilities });
117
+ var _a = config.onPrepare, onPrepare = _a === void 0 ? noop : _a, _b = config.onComplete, onComplete = _b === void 0 ? noop : _b;
118
+ return __assign(__assign({}, config), { capabilities: capabilities,
119
+ // Write a static/persistent session to disk so that each worker uses the same session ID.
120
+ onPrepare: function () {
121
+ var params = [];
122
+ for (var _i = 0; _i < arguments.length; _i++) {
123
+ params[_i] = arguments[_i];
124
+ }
125
+ var sessionId = axe.sessionId || (0, uuid_1.v4)();
126
+ fs_1.default.writeFileSync(util_1.PATH_TO_SESSION_FILE, JSON.stringify({ id: sessionId }));
127
+ // @ts-expect-error TS is angry about calling this ¯\_(ツ)_/¯
128
+ return onPrepare.apply(void 0, params);
129
+ },
130
+ // Remove the file, preventing other sessions from reusing its ID.
131
+ onComplete: function () {
132
+ var params = [];
133
+ for (var _i = 0; _i < arguments.length; _i++) {
134
+ params[_i] = arguments[_i];
135
+ }
136
+ try {
137
+ fs_1.default.unlinkSync(util_1.PATH_TO_SESSION_FILE);
138
+ }
139
+ catch (_a) {
140
+ // Oh well.
141
+ }
142
+ // @ts-expect-error TS is angry about calling this ¯\_(ツ)_/¯
143
+ return onComplete.apply(void 0, params);
144
+ } });
109
145
  }
110
146
  exports.wdioTestRunner = wdioTestRunner;
111
147
  var WdioController = /** @class */ (function (_super) {
@@ -131,6 +167,6 @@ var WdioController = /** @class */ (function (_super) {
131
167
  });
132
168
  };
133
169
  return WdioController;
134
- }(util_1.Controller));
170
+ }(Controller_1.default));
135
171
  exports.WdioController = WdioController;
136
172
  //# sourceMappingURL=wdio.js.map
package/dist/wdio.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"wdio.js","sourceRoot":"","sources":["../src/wdio.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAKe;AAWf;;;;GAIG;AAEH,SAAgB,UAAU,CAAC,GAAY;;IACrC,IAAA,qBAAc,EAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAEvB,iFAAiF;IACjF,uDAAuD;IACvD,IAAM,UAAU,GACd,CAAA,MAAC,MAAA,GAAG,CAAC,OAAO,0CAAE,YAAoB,0CAAG,oBAAoB,CAAC,KAAI,EAAE,CAAA;IAClE,IAAM,IAAI,GAAG,UAAU,CAAC,IAAI,IAAI,EAAE,CAAA;IAElC,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;QAC/B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;KACxD;IAED,6BACK,GAAG,CAAC,OAAO,KACd,YAAY,wBACP,MAAA,GAAG,CAAC,OAAO,0CAAE,YAAY,KAC5B,WAAW,EAAE,QAAQ,EACrB,oBAAoB,EAAE;gBACpB,IAAI,EAAE,oBAAa,CAAC,MAAM,CAAC,IAAI,CAAC;aACjC,OAEJ;AACH,CAAC;AAvBD,gCAuBC;AAED,sFAAsF;AACtF,SAAgB,cAAc,CAC5B,GAAyB,EACzB,MAA0B;IAE1B,IAAA,qBAAc,EAAC,GAAG,CAAC,CAAA;IACnB,IAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI;QAC1C;YACE,oBAAoB,EAAE;gBACpB,IAAI,EAAE,EAAE;aACT;SACF;KACF,CAAA;IACD,6CAA6C;IAC7C,IAAM,eAAe,GAAI,YAAoB,CAAC,CAAC,CAAC,CAAA;IAChD,eAAe,CAAC,oBAAoB,CAAC;QACnC,eAAe,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAA;IAC7C,IAAM,UAAU,GAAG,eAAe,CAAC,oBAAoB,CAAC,CAAA;IACxD,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,IAAI,EAAE,CAAA;IACvC,IAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAA;IAE5B,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;QAC/B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;KACxD;IAED,UAAU,CAAC,IAAI,GAAG,oBAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAE5C,6BACK,MAAM,KACT,YAAY,cAAA,IACb;AACH,CAAC;AA9BD,wCA8BC;AAED;IAAoC,kCAAU;IAG5C,wBAAY,MAAe;QAA3B,YACE,iBAAO,SAER;QADC,KAAI,CAAC,MAAM,GAAG,MAAM,CAAA;;IACtB,CAAC;IAEe,sCAAa,GAA7B,UACE,EAAkC;;;;;;wBAE5B,MAAM,GAAG,4GAGH,EAAE,sCAEb,CAAA;wBACD,qBAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,EAAA;;wBAAhD,SAAgD,CAAA;;;;;KACjD;IACH,qBAAC;AAAD,CAAC,AAnBD,CAAoC,iBAAU,GAmB7C;AAnBY,wCAAc"}
1
+ {"version":3,"file":"wdio.js","sourceRoot":"","sources":["../src/wdio.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- import { Configuration, Controller } from './util';
2
1
  import type { WebDriver } from 'selenium-webdriver';
3
2
  import type { Options } from 'selenium-webdriver/chrome';
3
+ import { Configuration } from './util';
4
+ import Controller from './Controller';
4
5
  interface WebDriverArgs extends Configuration {
5
6
  options?: Options;
6
7
  }
package/dist/webdriver.js CHANGED
@@ -50,9 +50,13 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
50
50
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
51
  }
52
52
  };
53
+ var __importDefault = (this && this.__importDefault) || function (mod) {
54
+ return (mod && mod.__esModule) ? mod : { "default": mod };
55
+ };
53
56
  Object.defineProperty(exports, "__esModule", { value: true });
54
57
  exports.WebdriverController = exports.webdriverConfig = void 0;
55
58
  var util_1 = require("./util");
59
+ var Controller_1 = __importDefault(require("./Controller"));
56
60
  /**
57
61
  * Creates a Selenium config that uses axe extension
58
62
  *
@@ -70,7 +74,7 @@ function webdriverConfig(arg) {
70
74
  // Note: fragile, but selenium does not give us a real way to check this
71
75
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
72
76
  if ((_b = (_a = opts === null || opts === void 0 ? void 0 : opts.options_) === null || _a === void 0 ? void 0 : _a.args) === null || _b === void 0 ? void 0 : _b.includes('headless')) {
73
- throw new Error('Cannot use extension while headless.');
77
+ throw new util_1.HeadlessNotSupportedError();
74
78
  }
75
79
  return opts;
76
80
  }
@@ -98,6 +102,6 @@ var WebdriverController = /** @class */ (function (_super) {
98
102
  });
99
103
  };
100
104
  return WebdriverController;
101
- }(util_1.Controller));
105
+ }(Controller_1.default));
102
106
  exports.WebdriverController = WebdriverController;
103
107
  //# sourceMappingURL=webdriver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"webdriver.js","sourceRoot":"","sources":["../src/webdriver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAKe;AAQf;;;;GAIG;AAEH,SAAgB,eAAe,CAAC,GAAkB;;IAChD,gHAAgH;IAChH,8DAA8D;IAC9D,IAAM,MAAM,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAA;IAE3C,IAAA,GAAG,GAAc,GAAG,IAAjB,EAAE,OAAO,GAAK,GAAG,QAAR,CAAQ;IAC5B,IAAA,qBAAc,EAAC,GAAG,CAAC,CAAA;IAEnB,IAAM,IAAI,GAAY,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAA;IAC9D,IAAI,CAAC,YAAY,OAAjB,IAAI,EAAiB,oBAAa,EAAC;IAEnC,wEAAwE;IACxE,8DAA8D;IAC9D,IAAI,MAAA,MAAC,IAAY,aAAZ,IAAI,uBAAJ,IAAI,CAAU,QAAQ,0CAAE,IAAI,0CAAE,QAAQ,CAAC,UAAU,CAAC,EAAE;QACvD,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;KACxD;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAlBD,0CAkBC;AAED;IAAyC,uCAAU;IAGjD,6BAAY,MAAiB;QAA7B,YACE,iBAAO,SAER;QADC,KAAI,CAAC,MAAM,GAAG,MAAM,CAAA;;IACtB,CAAC;IAEe,2CAAa,GAA7B,UACE,EAAkC;;;;;;wBAE5B,MAAM,GAAG,4GAGH,EAAE,sCAEb,CAAA;wBACD,qBAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAA;;wBAA5C,SAA4C,CAAA;;;;;KAC7C;IACH,0BAAC;AAAD,CAAC,AAnBD,CAAyC,iBAAU,GAmBlD;AAnBY,kDAAmB"}
1
+ {"version":3,"file":"webdriver.js","sourceRoot":"","sources":["../src/webdriver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,+BAKe;AACf,4DAAqC;AAMrC;;;;GAIG;AAEH,SAAgB,eAAe,CAAC,GAAkB;;IAChD,gHAAgH;IAChH,8DAA8D;IAC9D,IAAM,MAAM,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAA;IAE3C,IAAA,GAAG,GAAc,GAAG,IAAjB,EAAE,OAAO,GAAK,GAAG,QAAR,CAAQ;IAC5B,IAAA,qBAAc,EAAC,GAAG,CAAC,CAAA;IAEnB,IAAM,IAAI,GAAY,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAA;IAC9D,IAAI,CAAC,YAAY,OAAjB,IAAI,EAAiB,oBAAa,EAAC;IAEnC,wEAAwE;IACxE,8DAA8D;IAC9D,IAAI,MAAA,MAAC,IAAY,aAAZ,IAAI,uBAAJ,IAAI,CAAU,QAAQ,0CAAE,IAAI,0CAAE,QAAQ,CAAC,UAAU,CAAC,EAAE;QACvD,MAAM,IAAI,gCAAyB,EAAE,CAAA;KACtC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAlBD,0CAkBC;AAED;IAAyC,uCAAU;IAGjD,6BAAY,MAAiB;QAA7B,YACE,iBAAO,SAER;QADC,KAAI,CAAC,MAAM,GAAG,MAAM,CAAA;;IACtB,CAAC;IAEe,2CAAa,GAA7B,UACE,EAAkC;;;;;;wBAE5B,MAAM,GAAG,4GAGH,EAAE,sCAEb,CAAA;wBACD,qBAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAA;;wBAA5C,SAA4C,CAAA;;;;;KAC7C;IACH,0BAAC;AAAD,CAAC,AAnBD,CAAyC,oBAAU,GAmBlD;AAnBY,kDAAmB"}