get


Logs | Files | README | README | LICENSE | LICENSE | GitLab


1
commit e2e79703694ff90e5630d8717eab87bd45e3fe9c
2
Author: Connor Etherington <[email protected]>
3
Date:   Fri Sep 13 20:01:29 2024 +0200
4
5
    Auto-Commit Update 13.09.2024 - 20:01:29
6
---
7
 .gitignore     |    6 +
8
 app.js         |  226 +++++++++
9
 package.json   |   25 +
10
 pnpm-lock.yaml |  218 +++++++++
11
 yarn.lock      | 1426 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
12
 5 files changed, 1901 insertions(+)
13
14
diff --git a/.gitignore b/.gitignore
15
new file mode 100644
16
index 0000000..163aac5
17
--- /dev/null
18
+++ b/.gitignore
19
@@ -0,0 +1,6 @@
20
+node_modules
21
+server/node_modules
22
+client/node_modules
23
+frontend/node_modules
24
+backend/node_modules
25
+
26
diff --git a/app.js b/app.js
27
new file mode 100755
28
index 0000000..e16ac9a
29
--- /dev/null
30
+++ b/app.js
31
@@ -0,0 +1,226 @@
32
+#!/usr/bin/env node
33
+
34
+const axios = require('axios');
35
+const fs = require('fs');
36
+const yargs = require('yargs');
37
+const cheerio = require('cheerio');
38
+let puppeteer;
39
+
40
+const { JSDOM } = require('jsdom');
41
+
42
+class Page {
43
+  constructor(url, html) {
44
+    this.url = url;
45
+    this.html = html;
46
+    this.getDoc();
47
+  }
48
+
49
+  async getDoc() {
50
+    if (!this.html) {
51
+      const response = await fetch(this.url);
52
+      this.html = await response.text();
53
+    }
54
+    const dom = new JSDOM(this.html);
55
+    this.document = dom.window.document;
56
+    this.window = dom.window;
57
+    return { document: this.document, window: this.window };
58
+  }
59
+
60
+  static async getDoc(url) {
61
+    const response = await fetch(url);
62
+    const html = await response.text();
63
+    const dom = new JSDOM(html);
64
+    return { document: dom.window.document, window: dom.window };
65
+  }
66
+}
67
+
68
+class Scraper {
69
+  constructor(html, options) {
70
+    this.initialized = false;
71
+    this.initPromise = this.init(html, options);
72
+  }
73
+
74
+  async init(html, options) {
75
+    if (html.toString().startsWith('http')) {
76
+      try {
77
+        const response = await axios.get(html, options);
78
+        this.$ = cheerio.load(response.data);
79
+        this.response = response;
80
+      } catch (error) {
81
+        console.error('Error making request:', error.message);
82
+        throw error;
83
+      }
84
+    } else {
85
+      this.$ = cheerio.load(html);
86
+    }
87
+    this.initialized = true;
88
+  }
89
+
90
+  async ensureInitialized() {
91
+    if (!this.initialized) {
92
+      await this.initPromise;
93
+    }
94
+  }
95
+
96
+  async scrape(selector) {
97
+    await this.ensureInitialized();
98
+    return this.$(selector).text();
99
+  }
100
+
101
+  async pageText() {
102
+    await this.ensureInitialized();
103
+    const allText = this.$('body').html();
104
+    const removeCSSAndJS = (text) => {
105
+      text = text.replace(/<style[^>]*>[\s\S]*?<\/style>/gi, '');
106
+      text = text.replace(/<script[^>]*>[\s\S]*?<\/script>/gi, '');
107
+      text = text.replace(/\s*style=["'][^"']*["']/gi, '');
108
+      return text;
109
+    };
110
+
111
+    const cleanedHTML = removeCSSAndJS(allText);
112
+    let textContent = this.$('<div>').html(cleanedHTML).text();
113
+    textContent = textContent.replace(/(\n\s*){3,}/g, '\n\n');
114
+    return textContent;
115
+  }
116
+
117
+  async evaluate(script) {
118
+    await this.ensureInitialized();
119
+    if (!puppeteer) {
120
+      puppeteer = require('puppeteer-extra');
121
+      const pluginStealth = require('puppeteer-extra-plugin-stealth');
122
+      puppeteer.use(pluginStealth());
123
+    }
124
+
125
+    const browser = await puppeteer.launch();
126
+    const page = await browser.pages().then(pages => pages[0]);
127
+
128
+    await page.goto(this.response.config.url, { waitUntil: 'networkidle0' });
129
+
130
+    const result = await page.evaluate(script);
131
+    await browser.close();
132
+
133
+    this.evalResult = result;
134
+
135
+    return result;
136
+  }
137
+
138
+  async links() {
139
+    await this.ensureInitialized();
140
+    return this.$('a').map((i, el) => this.$(el).attr('href')).get();
141
+  }
142
+
143
+  async images() {
144
+    await this.ensureInitialized();
145
+    return this.$('img').map((i, el) => this.$(el).attr('src')).get();
146
+  }
147
+
148
+  async getHtml() {
149
+    await this.ensureInitialized();
150
+    return this.$.html();
151
+  }
152
+
153
+  async getResponse() {
154
+    await this.ensureInitialized();
155
+    return this.response;
156
+  }
157
+}
158
+
159
+const argv = yargs
160
+  .option('g', {
161
+    alias: 'get',
162
+    type: 'boolean',
163
+    description: 'GET request (default)',
164
+    default: true
165
+  }).option('p', {
166
+    alias: 'post',
167
+    type: 'boolean',
168
+    description: 'POST request',
169
+    default: false
170
+  }).option('e', {
171
+    alias: 'eval',
172
+    type: 'string',
173
+    description: 'Evaluate JavaScript on the page',
174
+  }).option('u', {
175
+    alias: 'url',
176
+    type: 'string',
177
+    description: 'URL to request',
178
+    demandOption: true
179
+  }).option('s', {
180
+    alias: 'save',
181
+    type: 'boolean',
182
+    description: 'Save response and cookies to files',
183
+    default: false,
184
+  }).option('S', {
185
+    alias: 'selector',
186
+    type: 'string',
187
+    description: 'Selector to scrape',
188
+  }).option('l', {
189
+    alias: 'links',
190
+    type: 'boolean',
191
+    description: 'Return page links',
192
+    default: false
193
+  }).option('t', {
194
+    alias: 'text',
195
+    type: 'boolean',
196
+    description: 'Return page text',
197
+    default: false
198
+  }).option('H', {
199
+    alias: 'html',
200
+    type: 'boolean',
201
+    description: 'Return page HTML',
202
+    default: false
203
+  }).option('c', {
204
+    alias: 'cookies',
205
+    type: 'boolean',
206
+    description: 'Return cookies',
207
+    default: false
208
+  }).option('h', {
209
+    alias: 'header',
210
+    type: 'array',
211
+    description: 'Headers for the request (can be used multiple times)',
212
+  }).argv;
213
+
214
+const method = argv.p ? 'POST' : 'GET';
215
+const url = argv.u;
216
+const headers = argv.h
217
+  ? argv.h.reduce((acc, header) => {
218
+      const [key, value] = header.split(':');
219
+      acc[key.trim()] = value.trim();
220
+      return acc;
221
+    }, {})
222
+  : {};
223
+
224
+const config = { method, headers, url, withCredentials: true };
225
+
226
+const saveFiles = (response) => {
227
+  fs.writeFileSync('response.json', JSON.stringify({
228
+    data: response.data,
229
+    headers: response.headers,
230
+    cookies: response.headers['set-cookie'] || [],
231
+  }, null, 2));
232
+
233
+  fs.writeFileSync('cookies.json', JSON.stringify({
234
+    cookies: response.headers['set-cookie'] || [],
235
+  }, null, 2));
236
+
237
+  console.log('Response and cookies saved.');
238
+};
239
+
240
+const scraper = new Scraper(url, config);
241
+
242
+(async () => {
243
+  try {
244
+    if ((!argv.H && !argv.e && !argv.c) || argv.t) console.log(await scraper.pageText());
245
+    if (argv.l) console.log(await scraper.links());
246
+    if (argv.H) console.log(await scraper.getHtml());
247
+    if (argv.S) console.log(await scraper.scrape(argv.S));
248
+    if (argv.e) console.log(await scraper.evaluate(argv.e));
249
+    if (argv.save) {
250
+      const response = await scraper.getResponse();
251
+      saveFiles(response);
252
+    }
253
+  } catch (error) {
254
+    console.error('An error occurred:', error);
255
+  }
256
+})();
257
+
258
diff --git a/package.json b/package.json
259
new file mode 100644
260
index 0000000..a7823aa
261
--- /dev/null
262
+++ b/package.json
263
@@ -0,0 +1,25 @@
264
+{
265
+  "name": "get",
266
+  "version": "0.1.0",
267
+  "main": "app.js",
268
+  "scripts": {
269
+    "start": "node ${npm_package_main}",
270
+    "dev": "nodemon ${npm_package_main}"
271
+  },
272
+  "bin": {
273
+    "get": "./app.js"
274
+  },
275
+  "author": "Connor Etherington <[email protected]>",
276
+  "license": "MIT",
277
+  "dependencies": {
278
+    "axios": "^1.7.7",
279
+    "cheerio": "^1.0.0",
280
+    "fs": "0.0.1-security",
281
+    "jsdom": "^25.0.0",
282
+    "puppeteer": "^23.3.0",
283
+    "puppeteer-evals": "^0.1.7",
284
+    "puppeteer-extra": "^3.3.6",
285
+    "puppeteer-extra-plugin-stealth": "^2.11.2",
286
+    "yargs": "^17.7.2"
287
+  }
288
+}
289
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
290
new file mode 100644
291
index 0000000..6d9d2b3
292
--- /dev/null
293
+++ b/pnpm-lock.yaml
294
@@ -0,0 +1,218 @@
295
+lockfileVersion: '9.0'
296
+
297
+settings:
298
+  autoInstallPeers: true
299
+  excludeLinksFromLockfile: false
300
+
301
+importers:
302
+
303
+  .:
304
+    dependencies:
305
+      axios:
306
+        specifier: ^1.7.7
307
+        version: 1.7.7
308
+      fs:
309
+        specifier: 0.0.1-security
310
+        version: 0.0.1-security
311
+      yargs:
312
+        specifier: ^17.7.2
313
+        version: 17.7.2
314
+
315
+packages:
316
+
317
+  [email protected]:
318
+    resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
319
+    engines: {node: '>=8'}
320
+
321
+  [email protected]:
322
+    resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
323
+    engines: {node: '>=8'}
324
+
325
+  [email protected]:
326
+    resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
327
+
328
+  [email protected]:
329
+    resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==}
330
+
331
+  [email protected]:
332
+    resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
333
+    engines: {node: '>=12'}
334
+
335
+  [email protected]:
336
+    resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
337
+    engines: {node: '>=7.0.0'}
338
+
339
+  [email protected]:
340
+    resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
341
+
342
+  [email protected]:
343
+    resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
344
+    engines: {node: '>= 0.8'}
345
+
346
+  [email protected]:
347
+    resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
348
+    engines: {node: '>=0.4.0'}
349
+
350
+  [email protected]:
351
+    resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
352
+
353
+  [email protected]:
354
+    resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
355
+    engines: {node: '>=6'}
356
+
357
+  [email protected]:
358
+    resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==}
359
+    engines: {node: '>=4.0'}
360
+    peerDependencies:
361
+      debug: '*'
362
+    peerDependenciesMeta:
363
+      debug:
364
+        optional: true
365
+
366
+  [email protected]:
367
+    resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
368
+    engines: {node: '>= 6'}
369
+
370
+  [email protected]:
371
+    resolution: {integrity: sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==}
372
+
373
+  [email protected]:
374
+    resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
375
+    engines: {node: 6.* || 8.* || >= 10.*}
376
+
377
+  [email protected]:
378
+    resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
379
+    engines: {node: '>=8'}
380
+
381
+  [email protected]:
382
+    resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
383
+    engines: {node: '>= 0.6'}
384
+
385
+  [email protected]:
386
+    resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
387
+    engines: {node: '>= 0.6'}
388
+
389
+  [email protected]:
390
+    resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
391
+
392
+  [email protected]:
393
+    resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
394
+    engines: {node: '>=0.10.0'}
395
+
396
+  [email protected]:
397
+    resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
398
+    engines: {node: '>=8'}
399
+
400
+  [email protected]:
401
+    resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
402
+    engines: {node: '>=8'}
403
+
404
+  [email protected]:
405
+    resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
406
+    engines: {node: '>=10'}
407
+
408
+  [email protected]:
409
+    resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
410
+    engines: {node: '>=10'}
411
+
412
+  [email protected]:
413
+    resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
414
+    engines: {node: '>=12'}
415
+
416
+  [email protected]:
417
+    resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
418
+    engines: {node: '>=12'}
419
+
420
+snapshots:
421
+
422
+  [email protected]: {}
423
+
424
+  [email protected]:
425
+    dependencies:
426
+      color-convert: 2.0.1
427
+
428
+  [email protected]: {}
429
+
430
+  [email protected]:
431
+    dependencies:
432
+      follow-redirects: 1.15.9
433
+      form-data: 4.0.0
434
+      proxy-from-env: 1.1.0
435
+    transitivePeerDependencies:
436
+      - debug
437
+
438
+  [email protected]:
439
+    dependencies:
440
+      string-width: 4.2.3
441
+      strip-ansi: 6.0.1
442
+      wrap-ansi: 7.0.0
443
+
444
+  [email protected]:
445
+    dependencies:
446
+      color-name: 1.1.4
447
+
448
+  [email protected]: {}
449
+
450
+  [email protected]:
451
+    dependencies:
452
+      delayed-stream: 1.0.0
453
+
454
+  [email protected]: {}
455
+
456
+  [email protected]: {}
457
+
458
+  [email protected]: {}
459
+
460
+  [email protected]: {}
461
+
462
+  [email protected]:
463
+    dependencies:
464
+      asynckit: 0.4.0
465
+      combined-stream: 1.0.8
466
+      mime-types: 2.1.35
467
+
468
+  [email protected]: {}
469
+
470
+  [email protected]: {}
471
+
472
+  [email protected]: {}
473
+
474
+  [email protected]: {}
475
+
476
+  [email protected]:
477
+    dependencies:
478
+      mime-db: 1.52.0
479
+
480
+  [email protected]: {}
481
+
482
+  [email protected]: {}
483
+
484
+  [email protected]:
485
+    dependencies:
486
+      emoji-regex: 8.0.0
487
+      is-fullwidth-code-point: 3.0.0
488
+      strip-ansi: 6.0.1
489
+
490
+  [email protected]:
491
+    dependencies:
492
+      ansi-regex: 5.0.1
493
+
494
+  [email protected]:
495
+    dependencies:
496
+      ansi-styles: 4.3.0
497
+      string-width: 4.2.3
498
+      strip-ansi: 6.0.1
499
+
500
+  [email protected]: {}
501
+
502
+  [email protected]: {}
503
+
504
+  [email protected]:
505
+    dependencies:
506
+      cliui: 8.0.1
507
+      escalade: 3.2.0
508
+      get-caller-file: 2.0.5
509
+      require-directory: 2.1.1
510
+      string-width: 4.2.3
511
+      y18n: 5.0.8
512
+      yargs-parser: 21.1.1
513
diff --git a/yarn.lock b/yarn.lock
514
new file mode 100644
515
index 0000000..0c0ea7e
516
--- /dev/null
517
+++ b/yarn.lock
518
@@ -0,0 +1,1426 @@
519
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
520
+# yarn lockfile v1
521
+
522
+
523
+"@babel/code-frame@^7.0.0":
524
+  version "7.24.7"
525
+  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465"
526
+  integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==
527
+  dependencies:
528
+    "@babel/highlight" "^7.24.7"
529
+    picocolors "^1.0.0"
530
+
531
+"@babel/helper-validator-identifier@^7.24.7":
532
+  version "7.24.7"
533
+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db"
534
+  integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==
535
+
536
+"@babel/highlight@^7.24.7":
537
+  version "7.24.7"
538
+  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.7.tgz#a05ab1df134b286558aae0ed41e6c5f731bf409d"
539
+  integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==
540
+  dependencies:
541
+    "@babel/helper-validator-identifier" "^7.24.7"
542
+    chalk "^2.4.2"
543
+    js-tokens "^4.0.0"
544
+    picocolors "^1.0.0"
545
+
546
+"@puppeteer/[email protected]":
547
+  version "2.4.0"
548
+  resolved "https://registry.yarnpkg.com/@puppeteer/browsers/-/browsers-2.4.0.tgz#a0dd0f4e381e53f509109ae83b891db5972750f5"
549
+  integrity sha512-x8J1csfIygOwf6D6qUAZ0ASk3z63zPb7wkNeHRerCMh82qWKUrOgkuP005AJC8lDL6/evtXETGEJVcwykKT4/g==
550
+  dependencies:
551
+    debug "^4.3.6"
552
+    extract-zip "^2.0.1"
553
+    progress "^2.0.3"
554
+    proxy-agent "^6.4.0"
555
+    semver "^7.6.3"
556
+    tar-fs "^3.0.6"
557
+    unbzip2-stream "^1.4.3"
558
+    yargs "^17.7.2"
559
+
560
+"@tootallnate/quickjs-emscripten@^0.23.0":
561
+  version "0.23.0"
562
+  resolved "https://registry.yarnpkg.com/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz#db4ecfd499a9765ab24002c3b696d02e6d32a12c"
563
+  integrity sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==
564
+
565
+"@types/debug@^4.1.0":
566
+  version "4.1.12"
567
+  resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917"
568
+  integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==
569
+  dependencies:
570
+    "@types/ms" "*"
571
+
572
+"@types/ms@*":
573
+  version "0.7.34"
574
+  resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.34.tgz#10964ba0dee6ac4cd462e2795b6bebd407303433"
575
+  integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==
576
+
577
+"@types/node@*":
578
+  version "22.5.4"
579
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-22.5.4.tgz#83f7d1f65bc2ed223bdbf57c7884f1d5a4fa84e8"
580
+  integrity sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==
581
+  dependencies:
582
+    undici-types "~6.19.2"
583
+
584
+"@types/yauzl@^2.9.1":
585
+  version "2.10.3"
586
+  resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.3.tgz#e9b2808b4f109504a03cda958259876f61017999"
587
+  integrity sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==
588
+  dependencies:
589
+    "@types/node" "*"
590
+
591
+agent-base@^7.0.2, agent-base@^7.1.0, agent-base@^7.1.1:
592
+  version "7.1.1"
593
+  resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.1.tgz#bdbded7dfb096b751a2a087eeeb9664725b2e317"
594
+  integrity sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==
595
+  dependencies:
596
+    debug "^4.3.4"
597
+
598
+ansi-regex@^5.0.1:
599
+  version "5.0.1"
600
+  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
601
+  integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
602
+
603
+ansi-styles@^3.2.1:
604
+  version "3.2.1"
605
+  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
606
+  integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
607
+  dependencies:
608
+    color-convert "^1.9.0"
609
+
610
+ansi-styles@^4.0.0:
611
+  version "4.3.0"
612
+  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
613
+  integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
614
+  dependencies:
615
+    color-convert "^2.0.1"
616
+
617
+argparse@^2.0.1:
618
+  version "2.0.1"
619
+  resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
620
+  integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
621
+
622
+arr-union@^3.1.0:
623
+  version "3.1.0"
624
+  resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
625
+  integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==
626
+
627
+ast-types@^0.13.4:
628
+  version "0.13.4"
629
+  resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.4.tgz#ee0d77b343263965ecc3fb62da16e7222b2b6782"
630
+  integrity sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==
631
+  dependencies:
632
+    tslib "^2.0.1"
633
+
634
+asynckit@^0.4.0:
635
+  version "0.4.0"
636
+  resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
637
+  integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
638
+
639
+axios@^1.7.7:
640
+  version "1.7.7"
641
+  resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.7.tgz#2f554296f9892a72ac8d8e4c5b79c14a91d0a47f"
642
+  integrity sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==
643
+  dependencies:
644
+    follow-redirects "^1.15.6"
645
+    form-data "^4.0.0"
646
+    proxy-from-env "^1.1.0"
647
+
648
+b4a@^1.6.4, b4a@^1.6.6:
649
+  version "1.6.6"
650
+  resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.6.6.tgz#a4cc349a3851987c3c4ac2d7785c18744f6da9ba"
651
+  integrity sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==
652
+
653
+balanced-match@^1.0.0:
654
+  version "1.0.2"
655
+  resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
656
+  integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
657
+
658
+bare-events@^2.0.0, bare-events@^2.2.0:
659
+  version "2.4.2"
660
+  resolved "https://registry.yarnpkg.com/bare-events/-/bare-events-2.4.2.tgz#3140cca7a0e11d49b3edc5041ab560659fd8e1f8"
661
+  integrity sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==
662
+
663
+bare-fs@^2.1.1:
664
+  version "2.3.5"
665
+  resolved "https://registry.yarnpkg.com/bare-fs/-/bare-fs-2.3.5.tgz#05daa8e8206aeb46d13c2fe25a2cd3797b0d284a"
666
+  integrity sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw==
667
+  dependencies:
668
+    bare-events "^2.0.0"
669
+    bare-path "^2.0.0"
670
+    bare-stream "^2.0.0"
671
+
672
+bare-os@^2.1.0:
673
+  version "2.4.4"
674
+  resolved "https://registry.yarnpkg.com/bare-os/-/bare-os-2.4.4.tgz#01243392eb0a6e947177bb7c8a45123d45c9b1a9"
675
+  integrity sha512-z3UiI2yi1mK0sXeRdc4O1Kk8aOa/e+FNWZcTiPB/dfTWyLypuE99LibgRaQki914Jq//yAWylcAt+mknKdixRQ==
676
+
677
+bare-path@^2.0.0, bare-path@^2.1.0:
678
+  version "2.1.3"
679
+  resolved "https://registry.yarnpkg.com/bare-path/-/bare-path-2.1.3.tgz#594104c829ef660e43b5589ec8daef7df6cedb3e"
680
+  integrity sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==
681
+  dependencies:
682
+    bare-os "^2.1.0"
683
+
684
+bare-stream@^2.0.0:
685
+  version "2.3.0"
686
+  resolved "https://registry.yarnpkg.com/bare-stream/-/bare-stream-2.3.0.tgz#5bef1cab8222517315fca1385bd7f08dff57f435"
687
+  integrity sha512-pVRWciewGUeCyKEuRxwv06M079r+fRjAQjBEK2P6OYGrO43O+Z0LrPZZEjlc4mB6C2RpZ9AxJ1s7NLEtOHO6eA==
688
+  dependencies:
689
+    b4a "^1.6.6"
690
+    streamx "^2.20.0"
691
+
692
+base64-js@^1.3.1:
693
+  version "1.5.1"
694
+  resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
695
+  integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
696
+
697
+basic-ftp@^5.0.2:
698
+  version "5.0.5"
699
+  resolved "https://registry.yarnpkg.com/basic-ftp/-/basic-ftp-5.0.5.tgz#14a474f5fffecca1f4f406f1c26b18f800225ac0"
700
+  integrity sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==
701
+
702
+boolbase@^1.0.0:
703
+  version "1.0.0"
704
+  resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
705
+  integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==
706
+
707
+brace-expansion@^1.1.7:
708
+  version "1.1.11"
709
+  resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
710
+  integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
711
+  dependencies:
712
+    balanced-match "^1.0.0"
713
+    concat-map "0.0.1"
714
+
715
+buffer-crc32@~0.2.3:
716
+  version "0.2.13"
717
+  resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
718
+  integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==
719
+
720
+buffer@^5.2.1:
721
+  version "5.7.1"
722
+  resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
723
+  integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
724
+  dependencies:
725
+    base64-js "^1.3.1"
726
+    ieee754 "^1.1.13"
727
+
728
+callsites@^3.0.0:
729
+  version "3.1.0"
730
+  resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
731
+  integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
732
+
733
+chalk@^2.4.2:
734
+  version "2.4.2"
735
+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
736
+  integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
737
+  dependencies:
738
+    ansi-styles "^3.2.1"
739
+    escape-string-regexp "^1.0.5"
740
+    supports-color "^5.3.0"
741
+
742
+cheerio-select@^2.1.0:
743
+  version "2.1.0"
744
+  resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4"
745
+  integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==
746
+  dependencies:
747
+    boolbase "^1.0.0"
748
+    css-select "^5.1.0"
749
+    css-what "^6.1.0"
750
+    domelementtype "^2.3.0"
751
+    domhandler "^5.0.3"
752
+    domutils "^3.0.1"
753
+
754
+cheerio@^1.0.0:
755
+  version "1.0.0"
756
+  resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0.tgz#1ede4895a82f26e8af71009f961a9b8cb60d6a81"
757
+  integrity sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==
758
+  dependencies:
759
+    cheerio-select "^2.1.0"
760
+    dom-serializer "^2.0.0"
761
+    domhandler "^5.0.3"
762
+    domutils "^3.1.0"
763
+    encoding-sniffer "^0.2.0"
764
+    htmlparser2 "^9.1.0"
765
+    parse5 "^7.1.2"
766
+    parse5-htmlparser2-tree-adapter "^7.0.0"
767
+    parse5-parser-stream "^7.1.2"
768
+    undici "^6.19.5"
769
+    whatwg-mimetype "^4.0.0"
770
+
771
+[email protected]:
772
+  version "0.6.5"
773
+  resolved "https://registry.yarnpkg.com/chromium-bidi/-/chromium-bidi-0.6.5.tgz#31be98f9ee5c93fa99d240c680518c9293d8c6bb"
774
+  integrity sha512-RuLrmzYrxSb0s9SgpB+QN5jJucPduZQ/9SIe76MDxYJuecPW5mxMdacJ1f4EtgiV+R0p3sCkznTMvH0MPGFqjA==
775
+  dependencies:
776
+    mitt "3.0.1"
777
+    urlpattern-polyfill "10.0.0"
778
+    zod "3.23.8"
779
+
780
+cliui@^8.0.1:
781
+  version "8.0.1"
782
+  resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa"
783
+  integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==
784
+  dependencies:
785
+    string-width "^4.2.0"
786
+    strip-ansi "^6.0.1"
787
+    wrap-ansi "^7.0.0"
788
+
789
+clone-deep@^0.2.4:
790
+  version "0.2.4"
791
+  resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-0.2.4.tgz#4e73dd09e9fb971cc38670c5dced9c1896481cc6"
792
+  integrity sha512-we+NuQo2DHhSl+DP6jlUiAhyAjBQrYnpOk15rN6c6JSPScjiCLh8IbSU+VTcph6YS3o7mASE8a0+gbZ7ChLpgg==
793
+  dependencies:
794
+    for-own "^0.1.3"
795
+    is-plain-object "^2.0.1"
796
+    kind-of "^3.0.2"
797
+    lazy-cache "^1.0.3"
798
+    shallow-clone "^0.1.2"
799
+
800
+color-convert@^1.9.0:
801
+  version "1.9.3"
802
+  resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
803
+  integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
804
+  dependencies:
805
+    color-name "1.1.3"
806
+
807
+color-convert@^2.0.1:
808
+  version "2.0.1"
809
+  resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
810
+  integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
811
+  dependencies:
812
+    color-name "~1.1.4"
813
+
814
+[email protected]:
815
+  version "1.1.3"
816
+  resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
817
+  integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
818
+
819
+color-name@~1.1.4:
820
+  version "1.1.4"
821
+  resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
822
+  integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
823
+
824
+combined-stream@^1.0.8:
825
+  version "1.0.8"
826
+  resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
827
+  integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
828
+  dependencies:
829
+    delayed-stream "~1.0.0"
830
+
831
+[email protected]:
832
+  version "0.0.1"
833
+  resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
834
+  integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
835
+
836
+cosmiconfig@^9.0.0:
837
+  version "9.0.0"
838
+  resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-9.0.0.tgz#34c3fc58287b915f3ae905ab6dc3de258b55ad9d"
839
+  integrity sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==
840
+  dependencies:
841
+    env-paths "^2.2.1"
842
+    import-fresh "^3.3.0"
843
+    js-yaml "^4.1.0"
844
+    parse-json "^5.2.0"
845
+
846
+css-select@^5.1.0:
847
+  version "5.1.0"
848
+  resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6"
849
+  integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==
850
+  dependencies:
851
+    boolbase "^1.0.0"
852
+    css-what "^6.1.0"
853
+    domhandler "^5.0.2"
854
+    domutils "^3.0.1"
855
+    nth-check "^2.0.1"
856
+
857
+css-what@^6.1.0:
858
+  version "6.1.0"
859
+  resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4"
860
+  integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==
861
+
862
+cssstyle@^4.0.1:
863
+  version "4.1.0"
864
+  resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-4.1.0.tgz#161faee382af1bafadb6d3867a92a19bcb4aea70"
865
+  integrity sha512-h66W1URKpBS5YMI/V8PyXvTMFT8SupJ1IzoIV8IeBC/ji8WVmrO8dGlTi+2dh6whmdk6BiKJLD/ZBkhWbcg6nA==
866
+  dependencies:
867
+    rrweb-cssom "^0.7.1"
868
+
869
+data-uri-to-buffer@^6.0.2:
870
+  version "6.0.2"
871
+  resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz#8a58bb67384b261a38ef18bea1810cb01badd28b"
872
+  integrity sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==
873
+
874
+data-urls@^5.0.0:
875
+  version "5.0.0"
876
+  resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-5.0.0.tgz#2f76906bce1824429ffecb6920f45a0b30f00dde"
877
+  integrity sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==
878
+  dependencies:
879
+    whatwg-mimetype "^4.0.0"
880
+    whatwg-url "^14.0.0"
881
+
882
+debug@4, debug@^4.1.1, debug@^4.3.4, debug@^4.3.6:
883
+  version "4.3.7"
884
+  resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52"
885
+  integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==
886
+  dependencies:
887
+    ms "^2.1.3"
888
+
889
+decimal.js@^10.4.3:
890
+  version "10.4.3"
891
+  resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23"
892
+  integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==
893
+
894
+deepmerge@^4.2.2:
895
+  version "4.3.1"
896
+  resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a"
897
+  integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==
898
+
899
+degenerator@^5.0.0:
900
+  version "5.0.1"
901
+  resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-5.0.1.tgz#9403bf297c6dad9a1ece409b37db27954f91f2f5"
902
+  integrity sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==
903
+  dependencies:
904
+    ast-types "^0.13.4"
905
+    escodegen "^2.1.0"
906
+    esprima "^4.0.1"
907
+
908
+delayed-stream@~1.0.0:
909
+  version "1.0.0"
910
+  resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
911
+  integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
912
+
913
+[email protected]:
914
+  version "0.0.1330662"
915
+  resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.1330662.tgz#400fe703c2820d6b2d9ebdd1785934310152373e"
916
+  integrity sha512-pzh6YQ8zZfz3iKlCvgzVCu22NdpZ8hNmwU6WnQjNVquh0A9iVosPtNLWDwaWVGyrntQlltPFztTMK5Cg6lfCuw==
917
+
918
+dom-serializer@^2.0.0:
919
+  version "2.0.0"
920
+  resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53"
921
+  integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==
922
+  dependencies:
923
+    domelementtype "^2.3.0"
924
+    domhandler "^5.0.2"
925
+    entities "^4.2.0"
926
+
927
+domelementtype@^2.3.0:
928
+  version "2.3.0"
929
+  resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d"
930
+  integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==
931
+
932
+domhandler@^5.0.2, domhandler@^5.0.3:
933
+  version "5.0.3"
934
+  resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31"
935
+  integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==
936
+  dependencies:
937
+    domelementtype "^2.3.0"
938
+
939
+domutils@^3.0.1, domutils@^3.1.0:
940
+  version "3.1.0"
941
+  resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e"
942
+  integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==
943
+  dependencies:
944
+    dom-serializer "^2.0.0"
945
+    domelementtype "^2.3.0"
946
+    domhandler "^5.0.3"
947
+
948
+emoji-regex@^8.0.0:
949
+  version "8.0.0"
950
+  resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
951
+  integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
952
+
953
+encoding-sniffer@^0.2.0:
954
+  version "0.2.0"
955
+  resolved "https://registry.yarnpkg.com/encoding-sniffer/-/encoding-sniffer-0.2.0.tgz#799569d66d443babe82af18c9f403498365ef1d5"
956
+  integrity sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==
957
+  dependencies:
958
+    iconv-lite "^0.6.3"
959
+    whatwg-encoding "^3.1.1"
960
+
961
+end-of-stream@^1.1.0:
962
+  version "1.4.4"
963
+  resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
964
+  integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
965
+  dependencies:
966
+    once "^1.4.0"
967
+
968
+entities@^4.2.0, entities@^4.4.0, entities@^4.5.0:
969
+  version "4.5.0"
970
+  resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48"
971
+  integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
972
+
973
+env-paths@^2.2.1:
974
+  version "2.2.1"
975
+  resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2"
976
+  integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==
977
+
978
+error-ex@^1.3.1:
979
+  version "1.3.2"
980
+  resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
981
+  integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
982
+  dependencies:
983
+    is-arrayish "^0.2.1"
984
+
985
+escalade@^3.1.1:
986
+  version "3.2.0"
987
+  resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5"
988
+  integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==
989
+
990
+escape-string-regexp@^1.0.5:
991
+  version "1.0.5"
992
+  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
993
+  integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
994
+
995
+escodegen@^2.1.0:
996
+  version "2.1.0"
997
+  resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17"
998
+  integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==
999
+  dependencies: