@axe-core/watcher 4.3.0-next.e80e642a → 4.3.0-next.f0210d95
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/EXTENSION-LICENSES-3RD-PARTY.md +3 -425
- package/dist/Controller.js +50 -3
- package/dist/Controller.js.map +1 -1
- package/dist/cypress/cypress.js +4 -1
- package/dist/cypress/cypress.js.map +1 -1
- package/dist/utils/saveScreenshotsLocally.js +5 -1
- package/dist/utils/saveScreenshotsLocally.js.map +1 -1
- package/dist/utils/screenshotFilename.d.ts +8 -0
- package/dist/utils/screenshotFilename.js +18 -0
- package/dist/utils/screenshotFilename.js.map +1 -0
- package/dist/utils/sync-fetch-worker.mjs +65 -1
- package/dist/utils/sync-fetch.d.ts +32 -0
- package/dist/utils/sync-fetch.js +29 -11
- package/dist/utils/sync-fetch.js.map +1 -1
- package/dist/utils/writeVariables.d.ts +4 -1
- package/dist/utils/writeVariables.js +2 -1
- package/dist/utils/writeVariables.js.map +1 -1
- package/extension/axe-versions/axe-core@4.12.0/axe.min.js +12 -0
- package/extension/axe-versions/axe-core@4.12.0/gather-internals.js +219 -0
- package/extension/axe-versions/axe-core@4.12.0/locales/README.md +9 -0
- package/extension/axe-versions/axe-core@4.12.0/locales/_template.json +1147 -0
- package/extension/axe-versions/axe-core@4.12.0/locales/da.json +799 -0
- package/extension/axe-versions/axe-core@4.12.0/locales/de.json +1127 -0
- package/extension/axe-versions/axe-core@4.12.0/locales/el.json +1069 -0
- package/extension/axe-versions/axe-core@4.12.0/locales/es.json +790 -0
- package/extension/axe-versions/axe-core@4.12.0/locales/eu.json +789 -0
- package/extension/axe-versions/axe-core@4.12.0/locales/fr.json +994 -0
- package/extension/axe-versions/axe-core@4.12.0/locales/he.json +1017 -0
- package/extension/axe-versions/axe-core@4.12.0/locales/it.json +1108 -0
- package/extension/axe-versions/axe-core@4.12.0/locales/ja.json +1128 -0
- package/extension/axe-versions/axe-core@4.12.0/locales/ko.json +1003 -0
- package/extension/axe-versions/axe-core@4.12.0/locales/nb.json +799 -0
- package/extension/axe-versions/axe-core@4.12.0/locales/nl.json +48 -0
- package/extension/axe-versions/axe-core@4.12.0/locales/pl.json +1109 -0
- package/extension/axe-versions/axe-core@4.12.0/locales/pt_BR.json +970 -0
- package/extension/axe-versions/axe-core@4.12.0/locales/pt_PT.json +1123 -0
- package/extension/axe-versions/axe-core@4.12.0/locales/ru.json +1127 -0
- package/extension/axe-versions/axe-core@4.12.0/locales/zh_CN.json +1116 -0
- package/extension/axe-versions/axe-core@4.12.0/locales/zh_TW.json +1108 -0
- package/extension/axe-versions-mapper.js +2 -0
- package/extension/axe.js +1 -1
- package/extension/background.js +1 -0
- package/extension/background.js.LICENSE.txt +1 -0
- package/extension/content.js +1 -1
- package/extension/gather-internals.js +1 -0
- package/extension/manifest.json +5 -1
- package/package.json +78 -20
|
@@ -7,6 +7,7 @@ exports.saveScreenshotsLocally = saveScreenshotsLocally;
|
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
9
|
const createDebugger_1 = __importDefault(require("../createDebugger"));
|
|
10
|
+
const screenshotFilename_1 = require("./screenshotFilename");
|
|
10
11
|
const debugLogger = (0, createDebugger_1.default)('saveScreenshotsLocally');
|
|
11
12
|
function saveScreenshotsLocally(results, screenshotDir) {
|
|
12
13
|
try {
|
|
@@ -16,6 +17,7 @@ function saveScreenshotsLocally(results, screenshotDir) {
|
|
|
16
17
|
debugLogger('Failed to create screenshot directory: %s', error instanceof Error ? error.message : String(error));
|
|
17
18
|
return;
|
|
18
19
|
}
|
|
20
|
+
let timestamp = Date.now();
|
|
19
21
|
for (const result of results) {
|
|
20
22
|
if (result.screenshot_path) {
|
|
21
23
|
debugLogger('Screenshot already saved: %s', result.screenshot_path);
|
|
@@ -24,10 +26,12 @@ function saveScreenshotsLocally(results, screenshotDir) {
|
|
|
24
26
|
if (!result.screenshot || !result.screenshot_id) {
|
|
25
27
|
continue;
|
|
26
28
|
}
|
|
27
|
-
const
|
|
29
|
+
const filename = (0, screenshotFilename_1.formatScreenshotFilename)(timestamp, result.screenshot_id);
|
|
30
|
+
const filepath = path_1.default.join(screenshotDir, filename);
|
|
28
31
|
try {
|
|
29
32
|
fs_1.default.writeFileSync(filepath, Buffer.from(result.screenshot, 'base64'));
|
|
30
33
|
result.screenshot_path = filepath;
|
|
34
|
+
timestamp++;
|
|
31
35
|
debugLogger('Screenshot saved: %s', filepath);
|
|
32
36
|
}
|
|
33
37
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"saveScreenshotsLocally.js","sourceRoot":"","sources":["../../src/utils/saveScreenshotsLocally.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"saveScreenshotsLocally.js","sourceRoot":"","sources":["../../src/utils/saveScreenshotsLocally.ts"],"names":[],"mappings":";;;;;AAQA,wDA2CC;AAnDD,4CAAmB;AACnB,gDAAuB;AAEvB,uEAA8C;AAC9C,6DAA+D;AAE/D,MAAM,WAAW,GAAG,IAAA,wBAAc,EAAC,wBAAwB,CAAC,CAAA;AAE5D,SAAgB,sBAAsB,CACpC,OAAiB,EACjB,aAAqB;IAErB,IAAI,CAAC;QACH,YAAE,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAClD,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,WAAW,CACT,2CAA2C,EAC3C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAA;QACD,OAAM;IACR,CAAC;IAED,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAE1B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;YAE3B,WAAW,CAAC,8BAA8B,EAAE,MAAM,CAAC,eAAe,CAAC,CAAA;YACnE,SAAQ;QACV,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAChD,SAAQ;QACV,CAAC;QAED,MAAM,QAAQ,GAAG,IAAA,6CAAwB,EAAC,SAAS,EAAE,MAAM,CAAC,aAAa,CAAC,CAAA;QAC1E,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAA;QAEnD,IAAI,CAAC;YACH,YAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAA;YACpE,MAAM,CAAC,eAAe,GAAG,QAAQ,CAAA;YACjC,SAAS,EAAE,CAAA;YACX,WAAW,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAA;QAC/C,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,WAAW,CACT,0CAA0C,EAC1C,MAAM,CAAC,aAAa,EACpB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAA;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Builds a timestamp-prefixed filename for a locally-saved screenshot.
|
|
3
|
+
*
|
|
4
|
+
* Format: `YYYYMMDDTHHmmssSSS-{id}.png`
|
|
5
|
+
* Compact ISO-8601-ish, no colons (file-safe on all OSes), millisecond
|
|
6
|
+
* precision, lexicographically sortable.
|
|
7
|
+
*/
|
|
8
|
+
export declare function formatScreenshotFilename(timestamp: number, id: string): string;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatScreenshotFilename = formatScreenshotFilename;
|
|
4
|
+
function formatScreenshotFilename(timestamp, id) {
|
|
5
|
+
const d = new Date(timestamp);
|
|
6
|
+
const prefix = [
|
|
7
|
+
String(d.getUTCFullYear()),
|
|
8
|
+
String(d.getUTCMonth() + 1).padStart(2, '0'),
|
|
9
|
+
String(d.getUTCDate()).padStart(2, '0'),
|
|
10
|
+
'T',
|
|
11
|
+
String(d.getUTCHours()).padStart(2, '0'),
|
|
12
|
+
String(d.getUTCMinutes()).padStart(2, '0'),
|
|
13
|
+
String(d.getUTCSeconds()).padStart(2, '0'),
|
|
14
|
+
String(d.getUTCMilliseconds()).padStart(3, '0')
|
|
15
|
+
].join('');
|
|
16
|
+
return `${prefix}-${id}.png`;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=screenshotFilename.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screenshotFilename.js","sourceRoot":"","sources":["../../src/utils/screenshotFilename.ts"],"names":[],"mappings":";;AAOA,4DAiBC;AAjBD,SAAgB,wBAAwB,CACtC,SAAiB,EACjB,EAAU;IAEV,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAA;IAC7B,MAAM,MAAM,GAAG;QACb,MAAM,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;QAC1B,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;QAC5C,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;QACvC,GAAG;QACH,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;QACxC,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;QAC1C,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;QAC1C,MAAM,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;KAChD,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAEV,OAAO,GAAG,MAAM,IAAI,EAAE,MAAM,CAAA;AAC9B,CAAC"}
|
|
@@ -101,8 +101,70 @@ export const shouldUseEnvProxy = function () {
|
|
|
101
101
|
* @property {Object} options - The fetch options.
|
|
102
102
|
* @property {number} timeout - The timeout in milliseconds.
|
|
103
103
|
* @property {MessagePort} port - The message port for communication.
|
|
104
|
+
* @property {SharedArrayBuffer} signalBuffer - Used to wake the main thread.
|
|
105
|
+
* Encoding: Int32Array of length 2.
|
|
106
|
+
* [0] wake-reason: 0 = still waiting, 1 = postMessage delivered,
|
|
107
|
+
* 2 = worker died before delivering a message.
|
|
108
|
+
* [1] exit code when [0] === 2; otherwise 0.
|
|
104
109
|
*/
|
|
105
|
-
const
|
|
110
|
+
const SIGNAL_WAITING = 0
|
|
111
|
+
const SIGNAL_POSTMESSAGE = 1
|
|
112
|
+
const SIGNAL_DIED = 2
|
|
113
|
+
|
|
114
|
+
const { url, options, timeout, port, signalBuffer } = workerData
|
|
115
|
+
const signalArray = new Int32Array(signalBuffer)
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Wake the main thread, which is blocked in Atomics.wait on signalArray[0].
|
|
119
|
+
* Call after every postMessage so the caller never spins waiting for a
|
|
120
|
+
* message that's already arrived. Idempotent — once signalArray[0] has been
|
|
121
|
+
* set, re-entry is a no-op.
|
|
122
|
+
*/
|
|
123
|
+
function notifyMainThread() {
|
|
124
|
+
if (Atomics.load(signalArray, 0) !== SIGNAL_WAITING) {
|
|
125
|
+
return
|
|
126
|
+
}
|
|
127
|
+
Atomics.store(signalArray, 0, SIGNAL_POSTMESSAGE)
|
|
128
|
+
Atomics.notify(signalArray, 0)
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// Worker-death watchdogs. These run inside the worker thread (unlike
|
|
132
|
+
// worker.on('error') / worker.on('exit') on the parent, which can't fire
|
|
133
|
+
// before syncFetch's synchronous throw because libuv events don't deliver
|
|
134
|
+
// while the main thread is in Atomics.wait or running sync code).
|
|
135
|
+
//
|
|
136
|
+
// They sit between top-level destructuring and the fetch try-block, which
|
|
137
|
+
// means any error originating before this point (bad workerData, broken
|
|
138
|
+
// imports) still falls back to the main thread's plain timeout. That trade
|
|
139
|
+
// is acceptable: catastrophic-startup is rare and unrecoverable.
|
|
140
|
+
process.on('uncaughtException', error => {
|
|
141
|
+
if (Atomics.load(signalArray, 0) !== SIGNAL_WAITING) {
|
|
142
|
+
return
|
|
143
|
+
}
|
|
144
|
+
// Forward through the normal port channel so the caller gets the full
|
|
145
|
+
// error chain. If postMessage itself throws (e.g. error wasn't cloneable),
|
|
146
|
+
// we have no remaining channel to deliver the error — force an exit so
|
|
147
|
+
// the death watchdog below fires synchronously and wakes the parent.
|
|
148
|
+
// Without this, installing an uncaughtException handler suppresses Node's
|
|
149
|
+
// default exit and the parent blocks for the full mainThreadTimeout.
|
|
150
|
+
try {
|
|
151
|
+
const wrapped = new FetchWorkerError({ url: sanitizeUrl(url) })
|
|
152
|
+
wrapped.cause = error
|
|
153
|
+
port.postMessage({ error: wrapped })
|
|
154
|
+
notifyMainThread()
|
|
155
|
+
} catch {
|
|
156
|
+
process.exit(1)
|
|
157
|
+
}
|
|
158
|
+
})
|
|
159
|
+
|
|
160
|
+
process.on('exit', code => {
|
|
161
|
+
if (Atomics.load(signalArray, 0) !== SIGNAL_WAITING) {
|
|
162
|
+
return
|
|
163
|
+
}
|
|
164
|
+
Atomics.store(signalArray, 1, code)
|
|
165
|
+
Atomics.store(signalArray, 0, SIGNAL_DIED)
|
|
166
|
+
Atomics.notify(signalArray, 0)
|
|
167
|
+
})
|
|
106
168
|
|
|
107
169
|
try {
|
|
108
170
|
let dispatcher = getGlobalDispatcher()
|
|
@@ -133,6 +195,7 @@ try {
|
|
|
133
195
|
port.postMessage({
|
|
134
196
|
data: responseData
|
|
135
197
|
})
|
|
198
|
+
notifyMainThread()
|
|
136
199
|
} catch (error) {
|
|
137
200
|
const HTTP_PROXY = process.env.http_proxy || process.env.HTTP_PROXY
|
|
138
201
|
const HTTPS_PROXY = process.env.https_proxy || process.env.HTTPS_PROXY
|
|
@@ -165,6 +228,7 @@ try {
|
|
|
165
228
|
port.postMessage({
|
|
166
229
|
error: err
|
|
167
230
|
})
|
|
231
|
+
notifyMainThread()
|
|
168
232
|
} finally {
|
|
169
233
|
port.close()
|
|
170
234
|
}
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
export interface SyncFetchCustomOptions {
|
|
2
2
|
timeout?: number;
|
|
3
|
+
/**
|
|
4
|
+
* @internal Test-only override for the worker script path. Allows tests to
|
|
5
|
+
* substitute a fixture worker that intentionally dies before notifying, so
|
|
6
|
+
* the in-worker death watchdogs (process.on('uncaughtException') /
|
|
7
|
+
* process.on('exit')) and the signalBuffer-driven timeout error can be
|
|
8
|
+
* exercised end-to-end.
|
|
9
|
+
*/
|
|
10
|
+
_workerPath?: string;
|
|
3
11
|
}
|
|
4
12
|
export interface SyncFetchResponse {
|
|
5
13
|
status: number;
|
|
@@ -9,3 +17,27 @@ export interface SyncFetchResponse {
|
|
|
9
17
|
ok: boolean;
|
|
10
18
|
}
|
|
11
19
|
export declare function syncFetch(url: string, options?: RequestInit, customOptions?: SyncFetchCustomOptions): SyncFetchResponse;
|
|
20
|
+
/**
|
|
21
|
+
* Wake-reason values written to `signalArray[0]` by sync-fetch-worker.mjs.
|
|
22
|
+
*
|
|
23
|
+
* @internal Exported for tests.
|
|
24
|
+
*/
|
|
25
|
+
export declare const SIGNAL_WAITING = 0;
|
|
26
|
+
/** @internal */
|
|
27
|
+
export declare const SIGNAL_POSTMESSAGE = 1;
|
|
28
|
+
/** @internal */
|
|
29
|
+
export declare const SIGNAL_DIED = 2;
|
|
30
|
+
/**
|
|
31
|
+
* Build the diagnostic Error thrown when the worker fails to deliver a message
|
|
32
|
+
* before the main-thread timeout. When the worker's death-watchdog fired
|
|
33
|
+
* (`wakeReason === SIGNAL_DIED`) the exit code is folded into the message so
|
|
34
|
+
* the failure is debuggable instead of opaque. Otherwise the wait simply
|
|
35
|
+
* timed out and we report the plain timeout.
|
|
36
|
+
*
|
|
37
|
+
* @internal Exported for tests.
|
|
38
|
+
*/
|
|
39
|
+
export declare function buildTimeoutError(args: {
|
|
40
|
+
mainThreadTimeout: number;
|
|
41
|
+
wakeReason: number;
|
|
42
|
+
exitCode: number;
|
|
43
|
+
}): Error;
|
package/dist/utils/sync-fetch.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SIGNAL_DIED = exports.SIGNAL_POSTMESSAGE = exports.SIGNAL_WAITING = void 0;
|
|
3
4
|
exports.syncFetch = syncFetch;
|
|
5
|
+
exports.buildTimeoutError = buildTimeoutError;
|
|
4
6
|
const node_worker_threads_1 = require("node:worker_threads");
|
|
5
7
|
const node_path_1 = require("node:path");
|
|
6
8
|
function syncFetch(url, options = {}, customOptions = {
|
|
@@ -10,28 +12,34 @@ function syncFetch(url, options = {}, customOptions = {
|
|
|
10
12
|
const processingBuffer = 3000;
|
|
11
13
|
const mainThreadTimeout = timeout + processingBuffer;
|
|
12
14
|
const { port1, port2 } = new node_worker_threads_1.MessageChannel();
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
15
|
+
const signalBuffer = new SharedArrayBuffer(8);
|
|
16
|
+
const signalArray = new Int32Array(signalBuffer);
|
|
17
|
+
const workerPath = customOptions._workerPath ?? (0, node_path_1.join)(__dirname, 'sync-fetch-worker.mjs');
|
|
18
|
+
const worker = new node_worker_threads_1.Worker(workerPath, {
|
|
16
19
|
name: 'sync-fetch',
|
|
17
20
|
eval: false,
|
|
18
21
|
workerData: {
|
|
19
22
|
url,
|
|
20
23
|
options,
|
|
21
24
|
timeout,
|
|
22
|
-
port: port2
|
|
25
|
+
port: port2,
|
|
26
|
+
signalBuffer
|
|
23
27
|
},
|
|
24
28
|
transferList: [port2]
|
|
25
29
|
});
|
|
26
|
-
|
|
30
|
+
worker.on('error', () => {
|
|
31
|
+
});
|
|
32
|
+
performance.mark('axe-watcher:sync-fetch:start');
|
|
27
33
|
let message;
|
|
28
34
|
try {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
+
Atomics.wait(signalArray, 0, 0, mainThreadTimeout);
|
|
36
|
+
message = (0, node_worker_threads_1.receiveMessageOnPort)(port1);
|
|
37
|
+
if (message === undefined) {
|
|
38
|
+
throw buildTimeoutError({
|
|
39
|
+
mainThreadTimeout,
|
|
40
|
+
wakeReason: Atomics.load(signalArray, 0),
|
|
41
|
+
exitCode: Atomics.load(signalArray, 1)
|
|
42
|
+
});
|
|
35
43
|
}
|
|
36
44
|
const { data, error } = message.message;
|
|
37
45
|
if (error) {
|
|
@@ -63,6 +71,16 @@ function syncFetch(url, options = {}, customOptions = {
|
|
|
63
71
|
});
|
|
64
72
|
}
|
|
65
73
|
}
|
|
74
|
+
exports.SIGNAL_WAITING = 0;
|
|
75
|
+
exports.SIGNAL_POSTMESSAGE = 1;
|
|
76
|
+
exports.SIGNAL_DIED = 2;
|
|
77
|
+
function buildTimeoutError(args) {
|
|
78
|
+
const { mainThreadTimeout, wakeReason, exitCode } = args;
|
|
79
|
+
const reason = wakeReason === exports.SIGNAL_DIED
|
|
80
|
+
? `worker exited with code ${exitCode} before responding`
|
|
81
|
+
: `worker thread did not respond within ${mainThreadTimeout}ms`;
|
|
82
|
+
return new Error(`Request timed out - ${reason}`);
|
|
83
|
+
}
|
|
66
84
|
function sanitizeHeaders(headers) {
|
|
67
85
|
if (!headers) {
|
|
68
86
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-fetch.js","sourceRoot":"","sources":["../../src/utils/sync-fetch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sync-fetch.js","sourceRoot":"","sources":["../../src/utils/sync-fetch.ts"],"names":[],"mappings":";;;AA2BA,8BAiHC;AAsBD,8CAWC;AA7KD,6DAI4B;AAC5B,yCAAgC;AAsBhC,SAAgB,SAAS,CACvB,GAAW,EACX,UAAuB,EAAE,EACzB,gBAAwC;IACtC,OAAO,EAAE,KAAM;CAChB;IAED,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,KAAM,CAAA;IAG/C,MAAM,gBAAgB,GAAG,IAAK,CAAA;IAC9B,MAAM,iBAAiB,GAAG,OAAO,GAAG,gBAAgB,CAAA;IAEpD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,oCAAc,EAAE,CAAA;IAc7C,MAAM,YAAY,GAAG,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAA;IAC7C,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,CAAA;IAahD,MAAM,UAAU,GACd,aAAa,CAAC,WAAW,IAAI,IAAA,gBAAI,EAAC,SAAS,EAAE,uBAAuB,CAAC,CAAA;IACvE,MAAM,MAAM,GAAG,IAAI,4BAAM,CAAC,UAAU,EAAE;QACpC,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE;YACV,GAAG;YACH,OAAO;YACP,OAAO;YACP,IAAI,EAAE,KAAK;YACX,YAAY;SACb;QACD,YAAY,EAAE,CAAC,KAAK,CAAC;KACtB,CAAC,CAAA;IAEF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;IAExB,CAAC,CAAC,CAAA;IAEF,WAAW,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAA;IAChD,IAAI,OAAgD,CAAA;IAEpD,IAAI,CAAC;QAKH,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAA;QAClD,OAAO,GAAG,IAAA,0CAAoB,EAAC,KAAK,CAAC,CAAA;QAErC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,iBAAiB,CAAC;gBACtB,iBAAiB;gBACjB,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;gBACxC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;aACvC,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,OAAO,CAAA;QAEvC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;YAC9C,OAAO,CAAC,KAAK,GAAG,KAAK,CAAA;YAErB,MAAM,OAAO,CAAA;QACf,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;YAAS,CAAC;QACT,WAAW,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;QAC9C,KAAK,CAAC,KAAK,EAAE,CAAA;QACb,MAAM,CAAC,SAAS,EAAE,CAAA;QAGlB,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;QACtC,KAAK,CAAC,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAE9C,WAAW,CAAC,OAAO,CAAC,wBAAwB,EAAE;YAC5C,KAAK,EAAE,8BAA8B;YACrC,GAAG,EAAE,4BAA4B;YACjC,MAAM,EAAE;gBACN,GAAG;gBACH,OAAO,EAAE,KAAK;gBACd,OAAO;gBACP,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,IAAI,aAAa;gBAC9C,QAAQ,EAAE;oBACR,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM;oBACrC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU;iBAC9C;aACF;SACF,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAOY,QAAA,cAAc,GAAG,CAAC,CAAA;AAElB,QAAA,kBAAkB,GAAG,CAAC,CAAA;AAEtB,QAAA,WAAW,GAAG,CAAC,CAAA;AAW5B,SAAgB,iBAAiB,CAAC,IAIjC;IACC,MAAM,EAAE,iBAAiB,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;IACxD,MAAM,MAAM,GACV,UAAU,KAAK,mBAAW;QACxB,CAAC,CAAC,2BAA2B,QAAQ,oBAAoB;QACzD,CAAC,CAAC,wCAAwC,iBAAiB,IAAI,CAAA;IACnE,OAAO,IAAI,KAAK,CAAC,uBAAuB,MAAM,EAAE,CAAC,CAAA;AACnD,CAAC;AAOD,SAAS,eAAe,CAAC,OAAqB;IAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,SAAS,GAA2B,EAAE,CAAA;IAC5C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;YACpD,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,UAAU,CAAA;YACzC,SAAQ;QACV,CAAC;QACD,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK,CAAA;IACtC,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC"}
|
|
@@ -101,6 +101,7 @@ interface AxeConfiguration {
|
|
|
101
101
|
takeScreenshots?: boolean;
|
|
102
102
|
screenshotDir?: string;
|
|
103
103
|
/** Run experimental advanced rules */
|
|
104
|
+
/** Enable ElementInternals support for custom elements */
|
|
104
105
|
/**
|
|
105
106
|
* Duration in milliseconds after which the appropriate `controller.method' will throw a timeout error if it hasn't completed
|
|
106
107
|
* @example
|
|
@@ -174,6 +175,7 @@ interface WriteVariablesParams extends AxeConfiguration {
|
|
|
174
175
|
isPlaywrightTest?: boolean;
|
|
175
176
|
isWdioTestrunner?: boolean;
|
|
176
177
|
experimentalAdvancedRules?: boolean;
|
|
178
|
+
elementInternals?: boolean;
|
|
177
179
|
}
|
|
178
180
|
/** variables.json shape. */
|
|
179
181
|
export interface Variables {
|
|
@@ -189,10 +191,11 @@ export interface Variables {
|
|
|
189
191
|
take_screenshots?: boolean;
|
|
190
192
|
screenshot_dir?: string;
|
|
191
193
|
experimental_advanced_rules?: boolean;
|
|
194
|
+
element_internals?: boolean;
|
|
192
195
|
exclude_url_patterns: string[] | null;
|
|
193
196
|
axe_core_settings?: AxeCoreSettings | null;
|
|
194
197
|
timeout: Required<Timeouts>;
|
|
195
198
|
}
|
|
196
199
|
/** Write the user's settings to the disk, so the extension can load them. */
|
|
197
|
-
declare function writeVariables({ apiKey, autoAnalyze, configurationOverrides, cypress, isPlaywrightTest, isWdioTestrunner, serverURL, sessionId, runContext, runOptions, excludeUrlPatterns, buildID, timeout, takeScreenshots, screenshotDir, experimentalAdvancedRules, projectId, git: gitConfig }: WriteVariablesParams): void;
|
|
200
|
+
declare function writeVariables({ apiKey, autoAnalyze, configurationOverrides, cypress, isPlaywrightTest, isWdioTestrunner, serverURL, sessionId, runContext, runOptions, excludeUrlPatterns, buildID, timeout, takeScreenshots, screenshotDir, experimentalAdvancedRules, elementInternals, projectId, git: gitConfig }: WriteVariablesParams): void;
|
|
198
201
|
export default writeVariables;
|
|
@@ -71,7 +71,7 @@ const DEFAULT_TIMEOUT = {
|
|
|
71
71
|
analyze: 5000,
|
|
72
72
|
flush: 5000
|
|
73
73
|
};
|
|
74
|
-
function writeVariables({ apiKey, autoAnalyze, configurationOverrides, cypress, isPlaywrightTest, isWdioTestrunner, serverURL, sessionId, runContext, runOptions, excludeUrlPatterns, buildID, timeout = {}, takeScreenshots, screenshotDir, experimentalAdvancedRules, projectId, git: gitConfig }) {
|
|
74
|
+
function writeVariables({ apiKey, autoAnalyze, configurationOverrides, cypress, isPlaywrightTest, isWdioTestrunner, serverURL, sessionId, runContext, runOptions, excludeUrlPatterns, buildID, timeout = {}, takeScreenshots, screenshotDir, experimentalAdvancedRules, elementInternals, projectId, git: gitConfig }) {
|
|
75
75
|
const screenshotsEnabled = !!takeScreenshots;
|
|
76
76
|
debugLogger('Received configuration:', {
|
|
77
77
|
apiKey: '<redacted>',
|
|
@@ -201,6 +201,7 @@ function writeVariables({ apiKey, autoAnalyze, configurationOverrides, cypress,
|
|
|
201
201
|
auto_analyze: !!autoAnalyze,
|
|
202
202
|
cypress: !!cypress,
|
|
203
203
|
experimental_advanced_rules: !!experimentalAdvancedRules,
|
|
204
|
+
element_internals: !!elementInternals,
|
|
204
205
|
run_context: runContext || null,
|
|
205
206
|
run_options: runOptions || null,
|
|
206
207
|
git_data: gitData,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writeVariables.js","sourceRoot":"","sources":["../../src/utils/writeVariables.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,4CAA6B;AAC7B,4CAAmB;AACnB,2CAAgD;AAChD,mDAGwB;AACxB,2EAAuE;AACvE,mEAAgF;AAChF,uEAA8C;AAC9C,4EAA6E;AAC7E,mEAA+D;AAC/D,oFAA2D;AAC3D,sFAAoD;AACpD,iCAA6B;AAE7B,MAAM,WAAW,GAAG,IAAA,wBAAc,EAAC,uBAAuB,CAAC,CAAA;AAI3D,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;AAmDjD,MAAM,6BAA6B,GAA4B;IAC7D,KAAK;IACL,cAAc;IACd,aAAa;IACb,YAAY;IACZ,cAAc;IACd,aAAa;IACb,YAAY;IACZ,cAAc;IACd,aAAa;IACb,YAAY;IACZ,mBAAmB;IACnB,YAAY;IACZ,QAAQ;CACT,CAAA;
|
|
1
|
+
{"version":3,"file":"writeVariables.js","sourceRoot":"","sources":["../../src/utils/writeVariables.ts"],"names":[],"mappings":"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"}
|