@axe-core/watcher 4.3.0-next.0eb13105 → 4.3.0-next.1a82d22a

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.
@@ -35,7 +35,7 @@ SOFTWARE.
35
35
 
36
36
  ## brace-expansion
37
37
 
38
- **Version**: 5.0.5
38
+ **Version**: 5.0.6
39
39
 
40
40
  **License**: MIT
41
41
 
@@ -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 { url, options, timeout, port } = workerData
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;
@@ -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 sleepBuffer = new SharedArrayBuffer(4);
14
- const sleepArray = new Int32Array(sleepBuffer);
15
- const worker = new node_worker_threads_1.Worker((0, node_path_1.join)(__dirname, 'sync-fetch-worker.mjs'), {
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
- const { startTime } = performance.mark('axe-watcher:sync-fetch:start');
30
+ worker.on('error', () => {
31
+ });
32
+ performance.mark('axe-watcher:sync-fetch:start');
27
33
  let message;
28
34
  try {
29
- while (message === undefined) {
30
- if (performance.now() - startTime > mainThreadTimeout) {
31
- throw new Error(`Request timed out - worker thread did not respond within ${mainThreadTimeout}ms`);
32
- }
33
- Atomics.wait(sleepArray, 0, 0, 5);
34
- message = (0, node_worker_threads_1.receiveMessageOnPort)(port1);
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":"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"}
1
+ {"version":3,"file":"sync-fetch.js","sourceRoot":"","sources":["../../src/utils/sync-fetch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ function a1_0x3f3e(){const _0x3b47a7=['9TKfxph','Missing\x20ta','Service\x20wo','essage','addListene','30312MtKKEG','message','action','IZsCU','lxXqQ','XjLtz','urned\x20unde','LDnah','onMessage','length','ZFJwZ','catch','Invalid\x20ax','EJQKP','OXtDh','XQKaV','ernals\x20fai','agGSF','result','axeVersion','Received\x20m','GPavy','yhqBe','exports','unphT','now','fault','EuwOt','3342Hfjmbi','HkHYU','gukLK','dxNVw','MAIN','scripting','__esModule','default','hKNHK','1704413zkqsJH','eVersionPa','cFivp','sDJuI','zLdZC','hwSOw','ernals.js','ZuAHf','ZWNdN','runtime','HYaiP','jnTjv','Unknown\x20ac','8605gIvFMJ','2713904HETjeu','dvGVa','ITqDo','Path','RZILu','gather-int','UyEEU','Qsrgp','krttw','wqopj','esult','NBnxN','number','MOeqK','SwSRd','axe-watche','ternals.js','uuacX','PKqsh','gHEDD','b\x20or\x20frame','rker\x20initi','SNSvL','led','CrgGp','mrCfY','mMcUf','84KRgazF','string','test','\x20context','isArray','UgoEb','call','tab','csZTO','109732lANkmo','iXSxm','executeScr','gMfVM','r:backgrou','fqIlM','tion','erty','then','/gather-in','iMIVH','object','DgpDA','defineProp','TscfQ','mxUei','siAaX','pTZyr','bPaeO','zGpdQ','SuXIR','YdhKI','__importDe','ipt','ernals\x20ret','clkcu','wZmmM','6149904uzaOat','alized','urned\x20no\x20r','fined\x20resu','EQFjw','21678160gFbmJf','ernals','tfJNG','frameId'];a1_0x3f3e=function(){return _0x3b47a7;};return a1_0x3f3e();}function a1_0x1da0(_0x55e177,_0x41dafa){_0x55e177=_0x55e177-(-0x7*0x287+0x1eb+0x26*0x73);const _0x469ed3=a1_0x3f3e();let _0x16c509=_0x469ed3[_0x55e177];return _0x16c509;}(function(_0x322d27,_0x54f2ae){const _0x1165e1=a1_0x1da0,_0x4995e4=_0x322d27();while(!![]){try{const _0x1dc6a2=parseInt(_0x1165e1(0x16a))/(0x17b7+0x1d73+-0x3529)+-parseInt(_0x1165e1(0x193))/(-0x1f60+0x17e4+0x3bf*0x2)*(-parseInt(_0x1165e1(0x1c5))/(-0x240f+-0x264c+0x252f*0x2))+parseInt(_0x1165e1(0x1b7))/(0x1b1c+-0xbb3*-0x2+0x2e*-0x119)+parseInt(_0x1165e1(0x177))/(0x412*-0x7+0x8ba+-0x5*-0x3f5)*(-parseInt(_0x1165e1(0x161))/(0x12fb+-0xddb*-0x2+0x397*-0xd))+parseInt(_0x1165e1(0x19c))/(0x2444+0x15df+-0x3a1c)+parseInt(_0x1165e1(0x178))/(0x8d*-0x35+-0x9*0x1d3+-0xb69*-0x4)+parseInt(_0x1165e1(0x1c0))/(0x3b*0x57+0x136+-0x153a)*(-parseInt(_0x1165e1(0x1bc))/(-0x35*-0x17+0x10c9*-0x2+0x41f*0x7));if(_0x1dc6a2===_0x54f2ae)break;else _0x4995e4['push'](_0x4995e4['shift']());}catch(_0x49a618){_0x4995e4['push'](_0x4995e4['shift']());}}}(a1_0x3f3e,0x16b*-0xf39+-0x4*-0x8858+0x211b99),((()=>{const _0x386dbe=a1_0x1da0,_0x2c5360={'sDJuI':function(_0x2a5929,_0x43f12d){return _0x2a5929===_0x43f12d;},'siAaX':function(_0x19de09,_0x50b89a){return _0x19de09(_0x50b89a);},'EJQKP':_0x386dbe(0x17d)+_0x386dbe(0x1b4)+_0x386dbe(0x1b9)+_0x386dbe(0x182),'IZsCU':function(_0xa1035a,_0x566e5e){return _0xa1035a!==_0x566e5e;},'DgpDA':_0x386dbe(0x17d)+_0x386dbe(0x1b4)+_0x386dbe(0x1cb)+_0x386dbe(0x1ba)+'lt','UyEEU':function(_0x2fa091,_0x2066f9){return _0x2fa091 instanceof _0x2066f9;},'YdhKI':_0x386dbe(0x17d)+_0x386dbe(0x155)+_0x386dbe(0x18f),'krttw':function(_0x23e35f,_0x4b733e){return _0x23e35f!=_0x4b733e;},'gMfVM':_0x386dbe(0x1a7),'clkcu':function(_0x43f657,_0x716b5e){return _0x43f657 in _0x716b5e;},'CrgGp':_0x386dbe(0x1c7),'wZmmM':function(_0x45152c,_0x50b272,_0x1b27cb){return _0x45152c(_0x50b272,_0x1b27cb);},'Qsrgp':_0x386dbe(0x159)+_0x386dbe(0x1c3),'RZILu':function(_0x506068,_0x2f8519){return _0x506068===_0x2f8519;},'mxUei':_0x386dbe(0x17d)+_0x386dbe(0x1bd),'SuXIR':_0x386dbe(0x184),'GPavy':_0x386dbe(0x1c1)+_0x386dbe(0x18c)+_0x386dbe(0x196),'csZTO':function(_0x3b4af5,_0x2ddd2f){return _0x3b4af5==_0x2ddd2f;},'pTZyr':_0x386dbe(0x194),'EQFjw':_0x386dbe(0x151)+_0x386dbe(0x16b)+'th','LDnah':function(_0x21635c,_0x18720d){return _0x21635c||_0x18720d;},'XjLtz':_0x386dbe(0x17d)+_0x386dbe(0x170),'XQKaV':_0x386dbe(0x165),'ZWNdN':_0x386dbe(0x176)+_0x386dbe(0x1a2),'iXSxm':_0x386dbe(0x167),'PKqsh':function(_0x5022c6,_0x147af3){return _0x5022c6(_0x147af3);},'HYaiP':function(_0x3d300c,_0x22945c){return _0x3d300c(_0x22945c);},'zGpdQ':_0x386dbe(0x187)+_0x386dbe(0x1a0)+'nd','hwSOw':_0x386dbe(0x1c2)+_0x386dbe(0x18d)+_0x386dbe(0x1b8)};var _0x557879={0x8a5(_0x2d1178,_0x2de1fe,_0xe9604f){'use strict';const _0x26d246=_0x386dbe,_0x50f630={'yhqBe':function(_0x43286b,_0x23c769){const _0x1f81e2=a1_0x1da0;return _0x2c5360[_0x1f81e2(0x16d)](_0x43286b,_0x23c769);},'HkHYU':function(_0x19f4a0,_0x362114){const _0x26ba98=a1_0x1da0;return _0x2c5360[_0x26ba98(0x1ac)](_0x19f4a0,_0x362114);},'unphT':_0x2c5360[_0x26d246(0x152)],'ZuAHf':function(_0x4473c5,_0x3ca788){const _0x432f3d=_0x26d246;return _0x2c5360[_0x432f3d(0x1c8)](_0x4473c5,_0x3ca788);},'fqIlM':_0x2c5360[_0x26d246(0x1a8)],'SwSRd':function(_0x133db7,_0x56286a){const _0x427460=_0x26d246;return _0x2c5360[_0x427460(0x17e)](_0x133db7,_0x56286a);},'MOeqK':_0x2c5360[_0x26d246(0x1b1)],'ITqDo':function(_0x1437ac,_0x27d182){const _0x23c2c7=_0x26d246;return _0x2c5360[_0x23c2c7(0x180)](_0x1437ac,_0x27d182);},'bPaeO':_0x2c5360[_0x26d246(0x19f)],'OXtDh':function(_0x3dc3c9,_0x47d6af){const _0x4282ac=_0x26d246;return _0x2c5360[_0x4282ac(0x1b5)](_0x3dc3c9,_0x47d6af);},'ZFJwZ':_0x2c5360[_0x26d246(0x190)],'mrCfY':function(_0x22087a,_0x1d60f7,_0x1760ae){const _0x16228f=_0x26d246;return _0x2c5360[_0x16228f(0x1b6)](_0x22087a,_0x1d60f7,_0x1760ae);},'dxNVw':_0x2c5360[_0x26d246(0x17f)],'gHEDD':function(_0x1611b2,_0x8e3c01){const _0x462d4c=_0x26d246;return _0x2c5360[_0x462d4c(0x17c)](_0x1611b2,_0x8e3c01);},'mMcUf':_0x2c5360[_0x26d246(0x1ab)],'jnTjv':function(_0x47c961,_0x5892fb){const _0x176a77=_0x26d246;return _0x2c5360[_0x176a77(0x180)](_0x47c961,_0x5892fb);},'hKNHK':_0x2c5360[_0x26d246(0x1b0)],'lxXqQ':function(_0x1d3366,_0x4ed868){const _0x4936a6=_0x26d246;return _0x2c5360[_0x4936a6(0x180)](_0x1d3366,_0x4ed868);},'NBnxN':_0x2c5360[_0x26d246(0x15a)],'iMIVH':function(_0x2186ef,_0x480dbb){const _0x24090f=_0x26d246;return _0x2c5360[_0x24090f(0x16d)](_0x2186ef,_0x480dbb);},'agGSF':function(_0x39d696,_0x329d30){const _0x4fd8c0=_0x26d246;return _0x2c5360[_0x4fd8c0(0x17c)](_0x39d696,_0x329d30);},'TscfQ':function(_0x14654a,_0x6358fe){const _0x411781=_0x26d246;return _0x2c5360[_0x411781(0x19b)](_0x14654a,_0x6358fe);},'EuwOt':_0x2c5360[_0x26d246(0x1ad)],'wqopj':function(_0x222869,_0x14bd6c){const _0x3f3f01=_0x26d246;return _0x2c5360[_0x3f3f01(0x1ac)](_0x222869,_0x14bd6c);},'uuacX':_0x2c5360[_0x26d246(0x1bb)],'UgoEb':function(_0x56e427,_0x309738){const _0x1521d5=_0x26d246;return _0x2c5360[_0x1521d5(0x14c)](_0x56e427,_0x309738);},'SNSvL':_0x2c5360[_0x26d246(0x1ca)],'gukLK':_0x2c5360[_0x26d246(0x154)],'tfJNG':_0x2c5360[_0x26d246(0x172)]};var _0x3af599=this&&this[_0x26d246(0x1b2)+_0x26d246(0x15f)]||function(_0x489f69){const _0x5d86e4=_0x26d246;return _0x489f69&&_0x489f69[_0x5d86e4(0x167)]?_0x489f69:{'default':_0x489f69};};Object[_0x26d246(0x1a9)+_0x26d246(0x1a3)](_0x2de1fe,_0x2c5360[_0x26d246(0x19d)],{'value':!(0x1ff0+0x1*0x1569+0x3559*-0x1)}),_0x2c5360[_0x26d246(0x18a)](_0xe9604f,-0x1*-0x22b5+0x46e+-0x1f7a);const _0xe9a6b2=(0x1e3a+-0x2624+-0x3f5*-0x2,_0x2c5360[_0x26d246(0x1ac)](_0x3af599,_0x2c5360[_0x26d246(0x174)](_0xe9604f,0x3d*-0x79+-0x36*-0x55+0x2095))[_0x26d246(0x168)])(_0x2c5360[_0x26d246(0x1af)]);chrome[_0x26d246(0x173)][_0x26d246(0x14d)][_0x26d246(0x1c4)+'r']((_0x2b2199,_0x3e3bdc,_0x20aff8)=>{const _0x24203c=_0x26d246,_0x125318={'dvGVa':function(_0x581aa9,_0x1b2c99){const _0x40a00b=a1_0x1da0;return _0x50f630[_0x40a00b(0x186)](_0x581aa9,_0x1b2c99);},'zLdZC':_0x50f630[_0x24203c(0x185)],'cFivp':function(_0x56caa3,_0x5771fa){const _0x1bc670=_0x24203c;return _0x50f630[_0x1bc670(0x162)](_0x56caa3,_0x5771fa);}};if(!_0x2b2199||_0x50f630[_0x24203c(0x17a)](_0x50f630[_0x24203c(0x1ae)],typeof _0x2b2199)||!_0x50f630[_0x24203c(0x153)](_0x50f630[_0x24203c(0x14f)],_0x2b2199))return!(0x1*-0x2113+-0xf17+0x302b);if(_0x50f630[_0x24203c(0x191)](_0xe9a6b2,_0x50f630[_0x24203c(0x164)],{'action':_0x2b2199[_0x24203c(0x1c7)],'tabId':_0x3e3bdc[_0x24203c(0x19a)]?.['id']}),_0x50f630[_0x24203c(0x18b)](_0x50f630[_0x24203c(0x192)],_0x2b2199[_0x24203c(0x1c7)])){const _0x4e21f3=_0x3e3bdc[_0x24203c(0x19a)]?.['id'],_0x4b6aaa=_0x3e3bdc[_0x24203c(0x1bf)];if(_0x50f630[_0x24203c(0x175)](_0x50f630[_0x24203c(0x169)],typeof _0x4e21f3)||_0x50f630[_0x24203c(0x1c9)](_0x50f630[_0x24203c(0x169)],typeof _0x4b6aaa))return _0x50f630[_0x24203c(0x162)](_0x20aff8,{'ok':!(0x1*-0xc89+-0xfbc+0x2f*0x9a),'error':_0x50f630[_0x24203c(0x183)]}),!(0x151*0x7+-0x17a6+-0x9a*-0x18);const _0x50e168=_0x2b2199[_0x24203c(0x158)+_0x24203c(0x17b)];if(!(_0x50f630[_0x24203c(0x1a6)](void(-0x63+-0x25be+0x2621),_0x50e168)||_0x50f630[_0x24203c(0x156)]('',_0x50e168)||_0x50f630[_0x24203c(0x1aa)](_0x50f630[_0x24203c(0x160)],typeof _0x50e168)&&/^axe-versions\/axe-core@[\w.-]+$/[_0x24203c(0x195)](_0x50e168)))return _0x50f630[_0x24203c(0x181)](_0x20aff8,{'ok':!(-0x11d4+-0x2282+0x3457),'error':_0x50f630[_0x24203c(0x189)]}),!(0x1c97+-0x107*-0x2+-0x1ea4);const _0x4042b0=_0x50f630[_0x24203c(0x198)](_0x50e168,''),_0x3ea8fd=_0x4042b0?_0x4042b0+(_0x24203c(0x1a5)+_0x24203c(0x188)):_0x50f630[_0x24203c(0x18e)];return chrome[_0x24203c(0x166)][_0x24203c(0x19e)+_0x24203c(0x1b3)]({'target':{'tabId':_0x4e21f3,'frameIds':[_0x4b6aaa]},'files':[_0x3ea8fd],'world':_0x50f630[_0x24203c(0x163)]})[_0x24203c(0x1a4)](_0x183b7c=>{const _0x47b543=_0x24203c;if(!Array[_0x47b543(0x197)](_0x183b7c)||_0x50f630[_0x47b543(0x15b)](0x24e7+-0x49*-0x71+0x4f0*-0xe,_0x183b7c[_0x47b543(0x14e)]))return void _0x50f630[_0x47b543(0x162)](_0x20aff8,{'ok':!(0x565+-0x1e10+-0x62b*-0x4),'error':_0x50f630[_0x47b543(0x15d)]});const _0x5d053a=_0x183b7c[0x23f2+-0x2*-0xa5d+-0x38ac]?.[_0x47b543(0x157)];_0x50f630[_0x47b543(0x162)](_0x20aff8,_0x50f630[_0x47b543(0x171)](void(-0x7eb*0x1+-0x1aec+0x22d7),_0x5d053a)?{'ok':!(-0x658+0x29*0x4d+-0x5fd),'data':_0x5d053a}:{'ok':!(0x4*-0x522+-0x665*-0x5+0x5b8*-0x2),'error':_0x50f630[_0x47b543(0x1a1)]});})[_0x24203c(0x150)](_0x2dbc3b=>{const _0x5c528a=_0x24203c,_0x1ae448=_0x125318[_0x5c528a(0x179)](_0x2dbc3b,Error)?_0x2dbc3b[_0x5c528a(0x1c6)]:_0x125318[_0x5c528a(0x16e)];_0x125318[_0x5c528a(0x16c)](_0x20aff8,{'ok':!(0x1786+-0x16f1+-0x94),'error':_0x1ae448});}),!(0x186e+0x17f7+-0x3065);}return _0x50f630[_0x24203c(0x191)](_0xe9a6b2,_0x50f630[_0x24203c(0x1be)],_0x2b2199[_0x24203c(0x1c7)]),!(-0x1148+-0x1e01+0x2f4a);}),_0x2c5360[_0x26d246(0x18a)](_0xe9a6b2,_0x2c5360[_0x26d246(0x16f)]);},0x15ae(_0x2b7284,_0x5a2b74){'use strict';const _0x1a146b=_0x386dbe;Object[_0x1a146b(0x1a9)+_0x1a146b(0x1a3)](_0x5a2b74,_0x2c5360[_0x1a146b(0x19d)],{'value':!(0x1f3a+-0xd07+-0x3*0x611)}),_0x5a2b74[_0x1a146b(0x168)]=_0x2953ee=>(Date[_0x1a146b(0x15e)](),(_0x4da753,_0x23c543)=>{});},0x7a9(){}},_0x4ed169={};!function _0x2fea78(_0x1d6857){const _0x5ebe32=_0x386dbe;var _0x28682a=_0x4ed169[_0x1d6857];if(_0x2c5360[_0x5ebe32(0x1c8)](void(-0xf*0x77+-0x1*0x1f97+0x10*0x269),_0x28682a))return _0x28682a[_0x5ebe32(0x15c)];var _0x459dff=_0x4ed169[_0x1d6857]={'exports':{}};return _0x557879[_0x1d6857][_0x5ebe32(0x199)](_0x459dff[_0x5ebe32(0x15c)],_0x459dff,_0x459dff[_0x5ebe32(0x15c)],_0x2fea78),_0x459dff[_0x5ebe32(0x15c)];}(0x10c1+-0x12bb+0xa9f);})()));
@@ -0,0 +1 @@
1
+ /*! Copyright Deque 2021-2026 All Rights Reserved */