@axe-core/watcher 2.0.0 → 2.1.1-next.2b5d26da

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/Controller.js +71 -131
  2. package/dist/Controller.js.map +1 -1
  3. package/dist/cypress.d.ts +1 -1
  4. package/dist/cypress.js +8 -37
  5. package/dist/cypress.js.map +1 -1
  6. package/dist/cypressCommands.js +55 -66
  7. package/dist/cypressCommands.js.map +1 -1
  8. package/dist/git.d.ts +2 -0
  9. package/dist/git.js +31 -22
  10. package/dist/git.js.map +1 -1
  11. package/dist/index.d.ts +3 -2
  12. package/dist/index.js +8 -1
  13. package/dist/index.js.map +1 -1
  14. package/dist/playwright.d.ts +5 -3
  15. package/dist/playwright.js +15 -82
  16. package/dist/playwright.js.map +1 -1
  17. package/dist/playwrightTest.d.ts +16 -0
  18. package/dist/playwrightTest.js +74 -0
  19. package/dist/playwrightTest.js.map +1 -0
  20. package/dist/playwrightWrapping.d.ts +2 -8
  21. package/dist/playwrightWrapping.js +212 -491
  22. package/dist/playwrightWrapping.js.map +1 -1
  23. package/dist/puppeteer.d.ts +2 -2
  24. package/dist/puppeteer.js +17 -92
  25. package/dist/puppeteer.js.map +1 -1
  26. package/dist/puppeteerWrapping.d.ts +14 -0
  27. package/dist/puppeteerWrapping.js +426 -0
  28. package/dist/puppeteerWrapping.js.map +1 -0
  29. package/dist/util.d.ts +11 -0
  30. package/dist/util.js +62 -45
  31. package/dist/util.js.map +1 -1
  32. package/dist/validateApiKey.js +6 -7
  33. package/dist/validateApiKey.js.map +1 -1
  34. package/dist/wdio.d.ts +1 -1
  35. package/dist/wdio.js +44 -138
  36. package/dist/wdio.js.map +1 -1
  37. package/dist/webdriver.d.ts +2 -2
  38. package/dist/webdriver.js +24 -85
  39. package/dist/webdriver.js.map +1 -1
  40. package/dist/webdriverWrapping.d.ts +7 -0
  41. package/dist/webdriverWrapping.js +131 -0
  42. package/dist/webdriverWrapping.js.map +1 -0
  43. package/extension/background.js +1 -1
  44. package/extension/content.js +1 -1
  45. package/extension/manifest.json +2 -3
  46. package/package.json +4 -6
@@ -0,0 +1,426 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.wrapJSHandle = exports.wrapFrame = exports.wrapDialog = exports.wrapTouchscreen = exports.wrapMouse = exports.wrapKeyboard = exports.wrapElementHandle = exports.wrapTarget = exports.wrapPage = exports.wrapBrowser = exports.wrapBrowserContext = void 0;
13
+ const util_1 = require("./util");
14
+ const wrapBrowserContext = (browserContext, controller) => {
15
+ if ((0, util_1.isWrapped)(browserContext)) {
16
+ return browserContext;
17
+ }
18
+ const proxy = new Proxy(browserContext, {
19
+ get(host, prop, receiver) {
20
+ switch (prop) {
21
+ case 'newPage':
22
+ return (...args) => __awaiter(this, void 0, void 0, function* () {
23
+ const page = yield host.newPage(...args);
24
+ return (0, exports.wrapPage)(page, controller);
25
+ });
26
+ case 'pages':
27
+ return (...args) => __awaiter(this, void 0, void 0, function* () {
28
+ const pages = yield host.pages(...args);
29
+ return pages.map(p => (0, exports.wrapPage)(p, controller));
30
+ });
31
+ case 'targets':
32
+ return () => host.targets().map(t => (0, exports.wrapTarget)(t, controller));
33
+ case 'browser':
34
+ return () => (0, exports.wrapBrowser)(host.browser(), controller);
35
+ case 'waitForTarget':
36
+ return (...args) => __awaiter(this, void 0, void 0, function* () {
37
+ const target = yield host.waitForTarget(...args);
38
+ return (0, exports.wrapTarget)(target, controller);
39
+ });
40
+ case 'close':
41
+ return () => __awaiter(this, void 0, void 0, function* () {
42
+ yield controller.flush();
43
+ yield host.close();
44
+ });
45
+ default:
46
+ return Reflect.get(host, prop, receiver);
47
+ }
48
+ }
49
+ });
50
+ (0, util_1.markAsWrapped)(proxy);
51
+ return proxy;
52
+ };
53
+ exports.wrapBrowserContext = wrapBrowserContext;
54
+ const wrapBrowser = (browser, controller) => {
55
+ if ((0, util_1.isWrapped)(browser)) {
56
+ return browser;
57
+ }
58
+ const proxy = new Proxy(browser, {
59
+ get(host, prop, receiver) {
60
+ switch (prop) {
61
+ case 'newPage':
62
+ return (...args) => __awaiter(this, void 0, void 0, function* () {
63
+ const page = yield host.newPage(...args);
64
+ return (0, exports.wrapPage)(page, controller);
65
+ });
66
+ case 'createIncognitoBrowserContext':
67
+ return (...args) => __awaiter(this, void 0, void 0, function* () {
68
+ const context = yield host.createIncognitoBrowserContext(...args);
69
+ return (0, exports.wrapBrowserContext)(context, controller);
70
+ });
71
+ case 'defaultBrowserContext':
72
+ return () => (0, exports.wrapBrowserContext)(host.defaultBrowserContext(), controller);
73
+ case 'pages':
74
+ return () => __awaiter(this, void 0, void 0, function* () {
75
+ const pages = yield host.pages();
76
+ return pages.map(p => (0, exports.wrapPage)(p, controller));
77
+ });
78
+ case 'target':
79
+ return () => (0, exports.wrapTarget)(host.target(), controller);
80
+ case 'targets':
81
+ return () => host.targets().map(t => (0, exports.wrapTarget)(t, controller));
82
+ case 'waitForTarget':
83
+ return (...args) => __awaiter(this, void 0, void 0, function* () {
84
+ const target = yield host.waitForTarget(...args);
85
+ return (0, exports.wrapTarget)(target, controller);
86
+ });
87
+ case 'browserContexts':
88
+ return () => host.browserContexts().map(c => (0, exports.wrapBrowserContext)(c, controller));
89
+ case 'close':
90
+ return () => __awaiter(this, void 0, void 0, function* () {
91
+ yield controller.flush();
92
+ yield host.close();
93
+ });
94
+ default:
95
+ return Reflect.get(host, prop, receiver);
96
+ }
97
+ }
98
+ });
99
+ (0, util_1.markAsWrapped)(proxy);
100
+ return proxy;
101
+ };
102
+ exports.wrapBrowser = wrapBrowser;
103
+ const wrapPage = (page, controller) => {
104
+ if ((0, util_1.isWrapped)(page)) {
105
+ return page;
106
+ }
107
+ const proxy = new Proxy(page, {
108
+ get(host, prop, receiver) {
109
+ switch (prop) {
110
+ case 'browserContext':
111
+ return () => (0, exports.wrapBrowserContext)(host.browserContext(), controller);
112
+ case '$':
113
+ case 'addScriptTag':
114
+ case 'addStyleTag':
115
+ case 'waitForSelector':
116
+ case 'waitForXPath':
117
+ return (...args) => __awaiter(this, void 0, void 0, function* () {
118
+ // @ts-expect-error TypeScript is angry.
119
+ const el = yield host[prop](...args);
120
+ return el ? (0, exports.wrapElementHandle)(el, controller) : null;
121
+ });
122
+ case '$$':
123
+ case '$x':
124
+ return (...args) => __awaiter(this, void 0, void 0, function* () {
125
+ // @ts-expect-error TypeScript is angry.
126
+ const els = yield host[prop](...args);
127
+ return els.map(el => (0, exports.wrapElementHandle)(el, controller));
128
+ });
129
+ case 'authenticate':
130
+ case 'bringToFront':
131
+ case 'click':
132
+ case 'deleteCookie':
133
+ case 'evaluate':
134
+ case 'focus':
135
+ case 'goBack':
136
+ case 'goForward':
137
+ case 'goto':
138
+ case 'hover':
139
+ case 'reload':
140
+ case 'select':
141
+ case 'setContent':
142
+ case 'setCookie':
143
+ case 'setViewport':
144
+ case 'tap':
145
+ case 'type':
146
+ return (0, util_1.wrappedCallWithSideEffects)(host, prop, controller);
147
+ case 'browser':
148
+ return () => (0, exports.wrapBrowser)(host.browser(), controller);
149
+ case 'target':
150
+ return () => (0, exports.wrapTarget)(host.target(), controller);
151
+ case 'frames':
152
+ return () => host.frames().map(f => (0, exports.wrapFrame)(f, controller));
153
+ case 'keyboard':
154
+ return (0, exports.wrapKeyboard)(host.keyboard, controller);
155
+ case 'mouse':
156
+ return (0, exports.wrapMouse)(host.mouse, controller);
157
+ case 'touchscreen':
158
+ return (0, exports.wrapTouchscreen)(host.touchscreen, controller);
159
+ case 'mainFrame':
160
+ return () => (0, exports.wrapFrame)(host.mainFrame(), controller);
161
+ case 'close':
162
+ return (...args) => __awaiter(this, void 0, void 0, function* () {
163
+ yield controller.flush();
164
+ return host.close(...args);
165
+ });
166
+ default:
167
+ return Reflect.get(host, prop, receiver);
168
+ }
169
+ }
170
+ });
171
+ (0, util_1.markAsWrapped)(proxy);
172
+ return proxy;
173
+ };
174
+ exports.wrapPage = wrapPage;
175
+ const wrapTarget = (target, controller) => {
176
+ if ((0, util_1.isWrapped)(target)) {
177
+ return target;
178
+ }
179
+ const proxy = new Proxy(target, {
180
+ get(host, prop, receiver) {
181
+ switch (prop) {
182
+ case 'browserContext':
183
+ return () => (0, exports.wrapBrowserContext)(host.browserContext(), controller);
184
+ case 'browser':
185
+ return () => (0, exports.wrapBrowser)(host.browser(), controller);
186
+ case 'opener':
187
+ return () => {
188
+ const opener = host.opener();
189
+ return opener ? (0, exports.wrapTarget)(opener, controller) : null;
190
+ };
191
+ case 'page':
192
+ return () => __awaiter(this, void 0, void 0, function* () {
193
+ const page = yield host.page();
194
+ return page ? (0, exports.wrapPage)(page, controller) : null;
195
+ });
196
+ default:
197
+ return Reflect.get(host, prop, receiver);
198
+ }
199
+ }
200
+ });
201
+ (0, util_1.markAsWrapped)(proxy);
202
+ return proxy;
203
+ };
204
+ exports.wrapTarget = wrapTarget;
205
+ const wrapElementHandle = (
206
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
207
+ elementHandle, controller) => {
208
+ if ((0, util_1.isWrapped)(elementHandle)) {
209
+ return elementHandle;
210
+ }
211
+ const proxy = new Proxy(elementHandle, {
212
+ get(host, prop, receiver) {
213
+ switch (prop) {
214
+ case '$':
215
+ case 'waitForSelector':
216
+ case 'waitForXPath':
217
+ return (...args) => __awaiter(this, void 0, void 0, function* () {
218
+ const el = yield host.$(...args);
219
+ return el ? (0, exports.wrapElementHandle)(el, controller) : null;
220
+ });
221
+ case '$$':
222
+ case '$x':
223
+ return (...args) => __awaiter(this, void 0, void 0, function* () {
224
+ // @ts-expect-error TypeScript is angry.
225
+ const els = yield host[prop](...args);
226
+ return els.map(el => (0, exports.wrapElementHandle)(el, controller));
227
+ });
228
+ case 'asElement':
229
+ return () => (0, exports.wrapElementHandle)(host.asElement(), controller);
230
+ case 'contentFrame':
231
+ return () => __awaiter(this, void 0, void 0, function* () {
232
+ const frame = yield host.contentFrame();
233
+ return frame ? (0, exports.wrapFrame)(frame, controller) : null;
234
+ });
235
+ case 'frame':
236
+ return (0, exports.wrapFrame)(host.frame, controller);
237
+ case 'toElement':
238
+ return (...args) => __awaiter(this, void 0, void 0, function* () { return (0, exports.wrapElementHandle)(yield host.toElement(...args), controller); });
239
+ case 'click':
240
+ case 'drag':
241
+ case 'dragAndDrop':
242
+ case 'dragEnter':
243
+ case 'dragOver':
244
+ case 'drop':
245
+ case 'focus':
246
+ case 'hover':
247
+ case 'press':
248
+ case 'scrollIntoView':
249
+ case 'select':
250
+ case 'tap':
251
+ case 'touchEnd':
252
+ case 'touchMove':
253
+ case 'touchStart':
254
+ case 'type':
255
+ return (0, util_1.wrappedCallWithSideEffects)(host, prop, controller);
256
+ default:
257
+ return Reflect.get(host, prop, receiver);
258
+ }
259
+ }
260
+ });
261
+ (0, util_1.markAsWrapped)(proxy);
262
+ return proxy;
263
+ };
264
+ exports.wrapElementHandle = wrapElementHandle;
265
+ const wrapKeyboard = (keyboard, controller) => {
266
+ if ((0, util_1.isWrapped)(keyboard)) {
267
+ return keyboard;
268
+ }
269
+ const proxy = new Proxy(keyboard, {
270
+ get(host, prop, receiver) {
271
+ switch (prop) {
272
+ case 'down':
273
+ case 'press':
274
+ case 'up':
275
+ case 'sendCharacter':
276
+ case 'type':
277
+ return (0, util_1.wrappedCallWithSideEffects)(host, prop, controller);
278
+ default:
279
+ return Reflect.get(host, prop, receiver);
280
+ }
281
+ }
282
+ });
283
+ (0, util_1.markAsWrapped)(proxy);
284
+ return proxy;
285
+ };
286
+ exports.wrapKeyboard = wrapKeyboard;
287
+ const wrapMouse = (mouse, controller) => {
288
+ if ((0, util_1.isWrapped)(mouse)) {
289
+ return mouse;
290
+ }
291
+ const proxy = new Proxy(mouse, {
292
+ get(host, prop, receiver) {
293
+ switch (prop) {
294
+ case 'click':
295
+ case 'down':
296
+ case 'drag':
297
+ case 'dragAndDrop':
298
+ case 'dragEnter':
299
+ case 'dragOver':
300
+ case 'drop':
301
+ case 'move':
302
+ case 'up':
303
+ case 'wheel':
304
+ return (0, util_1.wrappedCallWithSideEffects)(host, prop, controller);
305
+ default:
306
+ return Reflect.get(host, prop, receiver);
307
+ }
308
+ }
309
+ });
310
+ (0, util_1.markAsWrapped)(proxy);
311
+ return proxy;
312
+ };
313
+ exports.wrapMouse = wrapMouse;
314
+ const wrapTouchscreen = (touchscreen, controller) => {
315
+ if ((0, util_1.isWrapped)(touchscreen)) {
316
+ return touchscreen;
317
+ }
318
+ const proxy = new Proxy(touchscreen, {
319
+ get(host, prop, receiver) {
320
+ switch (prop) {
321
+ case 'tap':
322
+ case 'touchEnd':
323
+ case 'touchMove':
324
+ case 'touchStart':
325
+ return (0, util_1.wrappedCallWithSideEffects)(host, prop, controller);
326
+ default:
327
+ return Reflect.get(host, prop, receiver);
328
+ }
329
+ }
330
+ });
331
+ (0, util_1.markAsWrapped)(proxy);
332
+ return proxy;
333
+ };
334
+ exports.wrapTouchscreen = wrapTouchscreen;
335
+ const wrapDialog = (dialog, controller) => {
336
+ if ((0, util_1.isWrapped)(dialog)) {
337
+ return dialog;
338
+ }
339
+ const proxy = new Proxy(dialog, {
340
+ get(host, prop, receiver) {
341
+ switch (prop) {
342
+ case 'accept':
343
+ case 'dismiss':
344
+ return (0, util_1.wrappedCallWithSideEffects)(host, prop, controller);
345
+ default:
346
+ return Reflect.get(host, prop, receiver);
347
+ }
348
+ }
349
+ });
350
+ (0, util_1.markAsWrapped)(proxy);
351
+ return proxy;
352
+ };
353
+ exports.wrapDialog = wrapDialog;
354
+ const wrapFrame = (frame, controller) => {
355
+ if ((0, util_1.isWrapped)(frame)) {
356
+ return frame;
357
+ }
358
+ const proxy = new Proxy(frame, {
359
+ get(host, prop, receiver) {
360
+ switch (prop) {
361
+ case '$':
362
+ case 'addScriptTag':
363
+ case 'addStyleTag':
364
+ case 'waitForSelector':
365
+ case 'waitForXPath':
366
+ return (...args) => __awaiter(this, void 0, void 0, function* () {
367
+ // @ts-expect-error TypeScript is angry.
368
+ const el = yield host[prop](...args);
369
+ return el ? (0, exports.wrapElementHandle)(el, controller) : null;
370
+ });
371
+ case '$$':
372
+ case '$x':
373
+ return (...args) => __awaiter(this, void 0, void 0, function* () {
374
+ // @ts-expect-error TypeScript is angry.
375
+ const els = yield host[prop](...args);
376
+ return els.map(el => (0, exports.wrapElementHandle)(el, controller));
377
+ });
378
+ case 'childFrames':
379
+ return () => host.childFrames().map(f => (0, exports.wrapFrame)(f, controller));
380
+ case 'page':
381
+ return () => (0, exports.wrapPage)(host.page(), controller);
382
+ case 'parentFrame':
383
+ return () => {
384
+ const f = host.parentFrame();
385
+ return f ? (0, exports.wrapFrame)(f, controller) : null;
386
+ };
387
+ case 'click':
388
+ case 'focus':
389
+ case 'goto':
390
+ case 'hover':
391
+ case 'select':
392
+ case 'setContent':
393
+ case 'tap':
394
+ case 'type':
395
+ return (0, util_1.wrappedCallWithSideEffects)(host, prop, controller);
396
+ default:
397
+ return Reflect.get(host, prop, receiver);
398
+ }
399
+ }
400
+ });
401
+ (0, util_1.markAsWrapped)(proxy);
402
+ return proxy;
403
+ };
404
+ exports.wrapFrame = wrapFrame;
405
+ const wrapJSHandle = (frame, controller) => {
406
+ if ((0, util_1.isWrapped)(frame)) {
407
+ return frame;
408
+ }
409
+ const proxy = new Proxy(frame, {
410
+ get(host, prop, receiver) {
411
+ switch (prop) {
412
+ case 'asElement':
413
+ return () => {
414
+ const el = host.asElement();
415
+ return el ? (0, exports.wrapElementHandle)(el, controller) : null;
416
+ };
417
+ default:
418
+ return Reflect.get(host, prop, receiver);
419
+ }
420
+ }
421
+ });
422
+ (0, util_1.markAsWrapped)(proxy);
423
+ return proxy;
424
+ };
425
+ exports.wrapJSHandle = wrapJSHandle;
426
+ //# sourceMappingURL=puppeteerWrapping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"puppeteerWrapping.js","sourceRoot":"","sources":["../src/puppeteerWrapping.ts"],"names":[],"mappings":"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"}
package/dist/util.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type Controller from './Controller';
1
2
  export declare const PATH_TO_EXTENSION: string;
2
3
  export declare const DEFAULT_SERVER_URL = "https://axe.deque.com/";
3
4
  export declare const PATH_TO_SESSION_FILE: string;
@@ -39,6 +40,7 @@ export interface Variables {
39
40
  cypress: boolean;
40
41
  take_screenshots?: boolean;
41
42
  git_branch?: string | null;
43
+ git_tag?: string | null;
42
44
  git_default_branch?: string | null;
43
45
  git_commit_message?: string | null;
44
46
  git_commit_sha?: string | null;
@@ -55,4 +57,13 @@ interface WriteManifestParams {
55
57
  }
56
58
  /** Update the extension manifest file. */
57
59
  export declare function writeManifest({ all_frames, exclude_globs }: WriteManifestParams): void;
60
+ declare const kWrapped: unique symbol;
61
+ export declare type PossiblyWrapped<T> = T & {
62
+ [kWrapped]?: boolean;
63
+ };
64
+ /** Is the given object wrapped? */
65
+ export declare const isWrapped: <T>(o: PossiblyWrapped<T>) => boolean;
66
+ /** Mark the given object as wrapped. */
67
+ export declare const markAsWrapped: (o: unknown) => void;
68
+ export declare const wrappedCallWithSideEffects: (target: unknown, prop: string, controller: Controller) => (...args: unknown[]) => Promise<unknown>;
58
69
  export {};
package/dist/util.js CHANGED
@@ -1,19 +1,4 @@
1
1
  "use strict";
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
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
3
  if (k2 === undefined) k2 = k;
19
4
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -37,49 +22,55 @@ var __importStar = (this && this.__importStar) || function (mod) {
37
22
  __setModuleDefault(result, mod);
38
23
  return result;
39
24
  };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
40
34
  var __importDefault = (this && this.__importDefault) || function (mod) {
41
35
  return (mod && mod.__esModule) ? mod : { "default": mod };
42
36
  };
43
37
  Object.defineProperty(exports, "__esModule", { value: true });
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;
45
- var fs_1 = __importDefault(require("fs"));
46
- var path_1 = __importDefault(require("path"));
47
- var os_1 = __importDefault(require("os"));
48
- var git = __importStar(require("./git"));
49
- var validateApiKey_1 = __importDefault(require("./validateApiKey"));
38
+ exports.wrappedCallWithSideEffects = exports.markAsWrapped = exports.isWrapped = 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;
39
+ const uuid_1 = require("uuid");
40
+ const fs_1 = __importDefault(require("fs"));
41
+ const path_1 = __importDefault(require("path"));
42
+ const os_1 = __importDefault(require("os"));
43
+ const git = __importStar(require("./git"));
44
+ const validateApiKey_1 = __importDefault(require("./validateApiKey"));
50
45
  exports.PATH_TO_EXTENSION = path_1.default.join(__dirname, '..', 'extension');
51
46
  exports.DEFAULT_SERVER_URL = 'https://axe.deque.com/';
52
47
  exports.PATH_TO_SESSION_FILE = path_1.default.join(os_1.default.tmpdir(), 'axe-watcher-session.json');
53
48
  exports.PATH_TO_EXTENSION_VARIABLES = path_1.default.join(exports.PATH_TO_EXTENSION, 'variables.json');
54
49
  exports.extensionArgs = [
55
- "--disable-extensions-except=".concat(exports.PATH_TO_EXTENSION),
56
- "--load-extension=".concat(exports.PATH_TO_EXTENSION)
50
+ `--disable-extensions-except=${exports.PATH_TO_EXTENSION}`,
51
+ `--load-extension=${exports.PATH_TO_EXTENSION}`
57
52
  ];
58
- var HeadlessNotSupportedError = /** @class */ (function (_super) {
59
- __extends(HeadlessNotSupportedError, _super);
60
- function HeadlessNotSupportedError() {
61
- var _this = _super.call(this, 'Cannot use extension while headless.') || this;
62
- _this.name = 'HeadlessNotSupportedError';
63
- return _this;
53
+ class HeadlessNotSupportedError extends Error {
54
+ constructor() {
55
+ super('Cannot use extension while headless.');
56
+ this.name = 'HeadlessNotSupportedError';
64
57
  }
65
- return HeadlessNotSupportedError;
66
- }(Error));
58
+ }
67
59
  exports.HeadlessNotSupportedError = HeadlessNotSupportedError;
68
60
  /** Write the user's settings to the disk, so the extension can load them. */
69
- function writeVariables(_a) {
70
- var apiKey = _a.apiKey, serverURL = _a.serverURL, sessionId = _a.sessionId, autoAnalyze = _a.autoAnalyze, cypress = _a.cypress, takeScreenshots = _a.takeScreenshots, _b = _a.validateApiKey, shouldValidateApiKey = _b === void 0 ? true : _b;
61
+ function writeVariables({ apiKey, serverURL, sessionId, autoAnalyze, cypress, takeScreenshots, validateApiKey: shouldValidateApiKey = true }) {
71
62
  if (!serverURL) {
72
63
  serverURL = exports.DEFAULT_SERVER_URL;
73
64
  }
74
- var urlString;
65
+ let urlString;
75
66
  try {
76
67
  urlString = new URL(serverURL).toString();
77
68
  }
78
69
  catch (err) {
79
- throw new Error("Error when converting serverURL to URL. Ensure it is formatted properly: ".concat(err));
70
+ throw new Error(`Error when converting serverURL to URL. Ensure it is formatted properly: ${err}`);
80
71
  }
81
72
  if (shouldValidateApiKey) {
82
- (0, validateApiKey_1.default)({ apiKey: apiKey, serverURL: urlString });
73
+ (0, validateApiKey_1.default)({ apiKey, serverURL: urlString });
83
74
  }
84
75
  if (typeof autoAnalyze === 'undefined') {
85
76
  autoAnalyze = true;
@@ -88,17 +79,18 @@ function writeVariables(_a) {
88
79
  // This enables multi-process/multi-browser test suites to all use the same session ID.
89
80
  if (!sessionId && fs_1.default.existsSync(exports.PATH_TO_SESSION_FILE)) {
90
81
  try {
91
- var data = JSON.parse(fs_1.default.readFileSync(exports.PATH_TO_SESSION_FILE, 'utf8'));
82
+ const data = JSON.parse(fs_1.default.readFileSync(exports.PATH_TO_SESSION_FILE, 'utf8'));
92
83
  sessionId = data.id;
93
84
  }
94
85
  catch (error) {
95
- throw new Error("Unable to read session configuration: ".concat(error));
86
+ throw new Error(`Unable to read session configuration: ${error}`);
96
87
  }
97
88
  }
98
- var variables = {
89
+ const variables = {
99
90
  api_key: apiKey,
100
91
  server_url: urlString,
101
- session_id: sessionId,
92
+ /* Ensure only one session ID is created per test run if `sessionId` is not provided */
93
+ session_id: sessionId || (0, uuid_1.v4)(),
102
94
  take_screenshots: !!takeScreenshots,
103
95
  auto_analyze: !!autoAnalyze,
104
96
  cypress: !!cypress
@@ -106,8 +98,9 @@ function writeVariables(_a) {
106
98
  // If the repository is a git repository, add git info to the variables.
107
99
  if (git.isRepository()) {
108
100
  variables.git_branch = git.getBranchName();
101
+ variables.git_tag = git.getTag();
109
102
  variables.git_default_branch = git.getDefaultBranchName();
110
- var info = git.getCommitInfo();
103
+ const info = git.getCommitInfo();
111
104
  variables.git_commit_sha = info === null || info === void 0 ? void 0 : info.hash;
112
105
  variables.git_commit_author = info === null || info === void 0 ? void 0 : info.author;
113
106
  variables.git_commit_email = info === null || info === void 0 ? void 0 : info.email;
@@ -119,13 +112,37 @@ function writeVariables(_a) {
119
112
  }
120
113
  exports.writeVariables = writeVariables;
121
114
  /** Update the extension manifest file. */
122
- function writeManifest(_a) {
123
- var all_frames = _a.all_frames, exclude_globs = _a.exclude_globs;
124
- var manifestPath = path_1.default.join(exports.PATH_TO_EXTENSION, 'manifest.json');
125
- var manifest = JSON.parse(fs_1.default.readFileSync(manifestPath, 'utf-8'));
115
+ function writeManifest({ all_frames, exclude_globs }) {
116
+ const manifestPath = path_1.default.join(exports.PATH_TO_EXTENSION, 'manifest.json');
117
+ const manifest = JSON.parse(fs_1.default.readFileSync(manifestPath, 'utf-8'));
126
118
  manifest.content_scripts[0].all_frames = all_frames;
127
119
  manifest.content_scripts[0].exclude_globs = exclude_globs;
128
120
  fs_1.default.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2));
129
121
  }
130
122
  exports.writeManifest = writeManifest;
123
+ const kWrapped = Symbol('axe watcher wrapped');
124
+ /** Is the given object wrapped? */
125
+ const isWrapped = (o) => {
126
+ if (!o) {
127
+ return false;
128
+ }
129
+ return o[kWrapped] === true;
130
+ };
131
+ exports.isWrapped = isWrapped;
132
+ /** Mark the given object as wrapped. */
133
+ const markAsWrapped = (o) => {
134
+ Object.defineProperty(o, kWrapped, {
135
+ configurable: false,
136
+ enumerable: false,
137
+ value: true
138
+ });
139
+ };
140
+ exports.markAsWrapped = markAsWrapped;
141
+ const wrappedCallWithSideEffects = (target, prop, controller) => (...args) => __awaiter(void 0, void 0, void 0, function* () {
142
+ // @ts-expect-error TypeScript is angry.
143
+ const result = yield target[prop](...args);
144
+ yield controller.analyze();
145
+ return result;
146
+ });
147
+ exports.wrappedCallWithSideEffects = wrappedCallWithSideEffects;
131
148
  //# sourceMappingURL=util.js.map