@samitouri / QOS-React-2 / commits / 15abd38911

Cleanup unused eslint-browser and js-fuzzer packages

These were never used, so let's clean them up

Lauren Tan committed Mar 25, 2024 at 15:00 UTC 15abd38911585ce82a3eb4f55530b3aacf2ac754
154 files changed +78 -11306
compiler/packages/eslint-browser/README.md deleted
-5
@@ -1,5 +0,0 @@
1 -# eslint-browser
2 -
3 -This package exports a webpack-bundled version of `eslint.Linter` in a way that can be consumed by other
4 -webpack-ified code (ie, by playground). Note that the normal `eslint` package does not support being
5 -built by WebPack. The approach used in this package is modeled closely on how ESLint's playground works.
compiler/packages/eslint-browser/package.json deleted
-19
@@ -1,19 +0,0 @@
1 -{
2 - "name": "eslint-browser",
3 - "version": "0.0.1",
4 - "private": true,
5 - "main": "dist/main.js",
6 - "scripts": {
7 - "build": "webpack --mode=development",
8 - "test": "echo 'no tests'"
9 - },
10 - "dependencies": {
11 - "eslint": "8.27.0",
12 - "hermes-eslint": "^0.14.0"
13 - },
14 - "devDependencies": {
15 - "node-polyfill-webpack-plugin": "^2.0.1",
16 - "webpack": "^5.74.0",
17 - "webpack-cli": "^4.10.0"
18 - }
19 -}
compiler/packages/eslint-browser/src/index.js deleted
-13
@@ -1,13 +0,0 @@
1 -/**
2 - * Copyright (c) Meta Platforms, Inc. and affiliates.
3 - *
4 - * This source code is licensed under the MIT license found in the
5 - * LICENSE file in the root directory of this source tree.
6 - */
7 -
8 -// We have to require this specific file because much of the ESLint codebase
9 -// uses modules like `fs` or `path` that won't work in a browser. This also
10 -// helps to keep the codebase size small.
11 -// This approach is inspired by ESLint's playground:
12 -// https://github.com/eslint/playground/blob/f3b1f78cc1c06dadfe7bb50c6c0f913c0d23670d/src/playground/components/CodeEditor.js#L8
13 -export { Linter } from "../../../node_modules/eslint/lib/linter";
compiler/packages/eslint-browser/webpack.config.js deleted
-29
@@ -1,29 +0,0 @@
1 -/**
2 - * Copyright (c) Meta Platforms, Inc. and affiliates.
3 - *
4 - * This source code is licensed under the MIT license found in the
5 - * LICENSE file in the root directory of this source tree.
6 - */
7 -
8 -"use strict";
9 -
10 -const path = require("path");
11 -const NodePolyfillWebpackPlugin = require("node-polyfill-webpack-plugin");
12 -
13 -// This configuration is adapted from ESLint playground:
14 -// https://github.com/eslint/playground/blob/f3b1f78cc1c06dadfe7bb50c6c0f913c0d23670d/webpack.config.js
15 -/** @type {import("webpack").Configuration} */
16 -module.exports = {
17 - entry: "./src/index.js",
18 - plugins: [new NodePolyfillWebpackPlugin()],
19 - output: {
20 - library: {
21 - name: "index",
22 - type: "commonjs2",
23 - },
24 - },
25 - resolve: {
26 - extensions: [".js"],
27 - mainFields: ["browser", "main", "module"],
28 - },
29 -};
compiler/packages/eslint-plugin-react-compiler/package.json
+1
@@ -21,6 +21,7 @@
21 "@rollup/plugin-json": "^6.0.0",
22 "@rollup/plugin-node-resolve": "^15.2.1",
23 "@rollup/plugin-typescript": "^11.1.3",
24 + "@types/eslint": "^8.56.6",
25 "@types/node": "^20.2.5",
26 "babel-jest": "^29.0.3",
27 "eslint": "8.27.0",
compiler/packages/js-fuzzer/.eslintrc.js deleted
-22
@@ -1,22 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -module.exports = {
6 - "env": {
7 - "node": true,
8 - "commonjs": true,
9 - "es6": true,
10 - "mocha": true
11 - },
12 - "extends": "eslint:recommended",
13 - "globals": {
14 - "Atomics": "readonly",
15 - "SharedArrayBuffer": "readonly"
16 - },
17 - "parserOptions": {
18 - "ecmaVersion": 2018
19 - },
20 - "rules": {
21 - }
22 -};
compiler/packages/js-fuzzer/.gitignore deleted
-7
@@ -1,7 +0,0 @@
1 -/node_modules
2 -/ochang_js_fuzzer*
3 -/db/
4 -/output.zip
5 -/output/
6 -/workdir/
7 -web-tests/
\ No newline at end of file
compiler/packages/js-fuzzer/DIR_METADATA deleted
-11
@@ -1,11 +0,0 @@
1 -# Metadata information for this directory.
2 -#
3 -# For more information on DIR_METADATA files, see:
4 -# https://source.chromium.org/chromium/infra/infra/+/master:go/src/infra/tools/dirmd/README.md
5 -#
6 -# For the schema of this file, see Metadata message:
7 -# https://source.chromium.org/chromium/infra/infra/+/master:go/src/infra/tools/dirmd/proto/dir_metadata.proto
8 -
9 -monorail {
10 - component: "Infra>Client>V8"
11 -}
\ No newline at end of file
compiler/packages/js-fuzzer/OWNERS deleted
-7
@@ -1,7 +0,0 @@
1 -set noparent
2 -
3 -file:../../../INFRA_OWNERS
4 -
5 -msarms@chromium.org
6 -mslekova@chromium.org
7 -ochang@chromium.org
compiler/packages/js-fuzzer/README.md deleted
-122
@@ -1,122 +0,0 @@
1 -# JS-Fuzzer
2 -
3 -Javascript fuzzer for stand-alone shells like D8, Chakra, JSC or Spidermonkey.
4 -
5 -Original author: Oliver Chang
6 -
7 -# Building
8 -
9 -This fuzzer may require versions of node that are newer than available on
10 -ClusterFuzz, so we use [pkg](https://github.com/zeit/pkg) to create a self
11 -contained binary) out of this.
12 -
13 -## Prereqs
14 -You need to intall nodejs and npm. Run `npm install` in this directory.
15 -
16 -## Fuzzing DB
17 -This fuzzer requires a fuzzing DB. To build one, get the latest `web_tests.zip`
18 -from [gs://clusterfuzz-data/web_tests.zip](
19 -https://storage.cloud.google.com/clusterfuzz-data/web_tests.zip) and unzip it
20 -(note https://crbug.com/v8/10891 for making this data publicly available).
21 -Then run:
22 -
23 -```bash
24 -$ mkdir db
25 -$ node build_db.js -i /path/to/web_tests -o db chakra v8 spidermonkey WebKit/JSTests
26 -```
27 -
28 -This may take a while. Optionally test the fuzzing DB with:
29 -
30 -```bash
31 -$ node test_db.js -i db
32 -```
33 -
34 -## Building fuzzer
35 -Then, to build the fuzzer,
36 -```bash
37 -$ ./node_modules/.bin/pkg -t node10-linux-x64 .
38 -```
39 -
40 -Replace "linux" with either "win" or "macos" for those platforms.
41 -
42 -This builds a binary named `ochang_js_fuzzer` for Linux / macOS OR
43 -`ochang_js_fuzzer.exe` for Windows.
44 -
45 -## Packaging
46 -Use `./package.sh`, `./package.sh win` or `./package.sh macos` to build and
47 -create the `output.zip` archive or use these raw commands:
48 -```bash
49 -$ mkdir output
50 -$ cd output
51 -$ ln -s ../db db
52 -$ ln -s ../ochang_js_fuzzer run
53 -$ zip -r /path/output.zip *
54 -```
55 -
56 -**NOTE**: Add `.exe` to `ochang_js_fuzzer` and `run` filename above if archiving
57 -for Windows platform.
58 -
59 -# Development
60 -
61 -Run the tests with:
62 -
63 -```bash
64 -$ npm test
65 -```
66 -
67 -When test expectations change, generate them with:
68 -
69 -```bash
70 -$ GENERATE=1 npm test
71 -```
72 -
73 -# Generating exceptional configurations
74 -
75 -Tests that fail to parse or show very bad performance can be automatically
76 -skipped or soft-skipped with the following script (takes >1h):
77 -
78 -```bash
79 -$ WEB_TESTS=/path/to/web_tests OUTPUT=/path/to/output/folder ./gen_exceptions.sh
80 -```
81 -
82 -# Experimenting (limited to differential fuzzing)
83 -
84 -To locally evaluate the fuzzer, setup a work directory as follows:
85 -
86 -```bash
87 -$ workdir/
88 -$ workdir/app_dir
89 -$ workdir/fuzzer
90 -$ workdir/input
91 -$ workdir/output
92 -```
93 -
94 -The `app_dir` folder can be a symlink or should contain the bundled
95 -version of `d8` with all files required for execution.
96 -Copy the packaged `ochang_js_fuzzer` executable and the `db` folder
97 -to the `fuzzer` directory or use a symlink.
98 -The `input` directory is the root folder of the corpus, i.e. pointing
99 -to the unzipped data of `gs://clusterfuzz-data/web_tests.zip`.
100 -The `output` directory is expected to be empty. It'll contain all
101 -output of the fuzzing session. Start the experiments with:
102 -
103 -```bash
104 -$ # Around ~40000 corresponds to 24h of fuzzing on a workstation.
105 -$ NUM_RUNS = 40000
106 -$ python tools/workbench.py $NUM_RUNS
107 -```
108 -
109 -You can check current stats with:
110 -
111 -```bash
112 -$ cat workdir/output/stats.json | python -m json.tool
113 -```
114 -
115 -When failures are found, you can forge minimization command lines with:
116 -
117 -```bash
118 -$ MINIMIZER_PATH = path/to/minimizer
119 -$ python tools/minimize.py $MINIMIZER_PATH
120 -```
121 -
122 -The path should point to a local checkout of the [minimizer](https://chrome-internal.googlesource.com/chrome/tools/clusterfuzz/+/refs/heads/master/src/python/bot/minimizer/).
compiler/packages/js-fuzzer/build_db.js deleted
-65
@@ -1,65 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Collect JS nodes.
7 - */
8 -
9 -const program = require('commander');
10 -
11 -const corpus = require('./corpus.js');
12 -const db = require('./db.js');
13 -const path = require('path');
14 -
15 -const sourceHelpers = require('./source_helpers.js');
16 -
17 -function main() {
18 - Error.stackTraceLimit = Infinity;
19 -
20 - program
21 - .version('0.0.1')
22 - .option('-i, --input_dir <path>', 'Input directory.')
23 - .option('-o, --output_dir <path>', 'Output directory.')
24 - .parse(process.argv);
25 -
26 - if (!program.args.length) {
27 - console.log('Need to specify corpora.');
28 - return;
29 - }
30 -
31 - if (!program.output_dir) {
32 - console.log('Need to specify output dir.');
33 - return;
34 - }
35 -
36 - const mutateDb = new db.MutateDbWriter(program.output_dir);
37 -
38 - const inputDir = path.resolve(program.input_dir);
39 - for (const corpusName of program.args) {
40 - const curCorpus = new corpus.Corpus(inputDir, corpusName);
41 - for (const relPath of curCorpus.relFiles()) {
42 - let source;
43 - try {
44 - source = sourceHelpers.loadSource(inputDir, relPath);
45 - } catch (e) {
46 - console.log(e);
47 - continue;
48 - }
49 -
50 - if (!source) {
51 - continue;
52 - }
53 -
54 - try{
55 - mutateDb.process(source);
56 - } catch (e) {
57 - console.log(e);
58 - }
59 - }
60 - }
61 -
62 - mutateDb.writeIndex();
63 -}
64 -
65 -main();
compiler/packages/js-fuzzer/corpus.js deleted
-141
@@ -1,141 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Corpus
7 - */
8 -
9 -const program = require('commander');
10 -const fs = require('fs');
11 -const path = require('path');
12 -
13 -const exceptions = require('./exceptions.js');
14 -const random = require('./random.js');
15 -const sourceHelpers = require('./source_helpers.js');
16 -
17 -function* walkDirectory(directory, filter) {
18 - // Generator for recursively walk a directory.
19 - for (const filePath of fs.readdirSync(directory)) {
20 - const currentPath = path.join(directory, filePath);
21 - const stat = fs.lstatSync(currentPath);
22 - if (stat.isFile()) {
23 - if (!filter || filter(currentPath)) {
24 - yield currentPath;
25 - }
26 - continue;
27 - }
28 -
29 - if (stat.isDirectory()) {
30 - for (let childFilePath of walkDirectory(currentPath, filter)) {
31 - yield childFilePath;
32 - }
33 - }
34 - }
35 -}
36 -
37 -class Corpus {
38 - // Input corpus.
39 - constructor(inputDir, corpusName, extraStrict=false) {
40 - this.inputDir = inputDir;
41 - this.extraStrict = extraStrict;
42 -
43 - // Filter for permitted JS files.
44 - function isPermittedJSFile(absPath) {
45 - return (absPath.endsWith('.js') &&
46 - !exceptions.isTestSkippedAbs(absPath));
47 - }
48 -
49 - // Cache relative paths of all files in corpus.
50 - this.skippedFiles = [];
51 - this.softSkippedFiles = [];
52 - this.permittedFiles = [];
53 - const directory = path.join(inputDir, corpusName);
54 - for (const absPath of walkDirectory(directory, isPermittedJSFile)) {
55 - const relPath = path.relative(this.inputDir, absPath);
56 - if (exceptions.isTestSkippedRel(relPath)) {
57 - this.skippedFiles.push(relPath);
58 - } else if (exceptions.isTestSoftSkippedAbs(absPath) ||
59 - exceptions.isTestSoftSkippedRel(relPath)) {
60 - this.softSkippedFiles.push(relPath);
61 - } else {
62 - this.permittedFiles.push(relPath);
63 - }
64 - }
65 - random.shuffle(this.softSkippedFiles);
66 - random.shuffle(this.permittedFiles);
67 - }
68 -
69 - // Relative paths of all files in corpus.
70 - *relFiles() {
71 - for (const relPath of this.permittedFiles) {
72 - yield relPath;
73 - }
74 - for (const relPath of this.softSkippedFiles) {
75 - yield relPath;
76 - }
77 - }
78 -
79 - // Relative paths of all files in corpus including generated skipped.
80 - *relFilesForGenSkipped() {
81 - for (const relPath of this.relFiles()) {
82 - yield relPath;
83 - }
84 - for (const relPath of this.skippedFiles) {
85 - yield relPath;
86 - }
87 - }
88 -
89 - /**
90 - * Returns "count" relative test paths, randomly selected from soft-skipped
91 - * and permitted files. Permitted files have a 4 times higher chance to
92 - * be chosen.
93 - */
94 - getRandomTestcasePaths(count) {
95 - return random.twoBucketSample(
96 - this.softSkippedFiles, this.permittedFiles, 4, count);
97 - }
98 -
99 - loadTestcase(relPath, strict, label) {
100 - const start = Date.now();
101 - try {
102 - const source = sourceHelpers.loadSource(this.inputDir, relPath, strict);
103 - if (program.verbose) {
104 - const duration = Date.now() - start;
105 - console.log(`Parsing ${relPath} ${label} took ${duration} ms.`);
106 - }
107 - return source;
108 - } catch (e) {
109 - console.log(`WARNING: failed to ${label} parse ${relPath}`);
110 - console.log(e);
111 - }
112 - return undefined;
113 - }
114 -
115 - *loadTestcases(relPaths) {
116 - for (const relPath of relPaths) {
117 - if (this.extraStrict) {
118 - // When re-generating the files marked sloppy, we additionally test if
119 - // the file parses in strict mode.
120 - this.loadTestcase(relPath, true, 'strict');
121 - }
122 - const source = this.loadTestcase(relPath, false, 'sloppy');
123 - if (source) {
124 - yield source;
125 - }
126 - }
127 - }
128 -
129 - getRandomTestcases(count) {
130 - return Array.from(this.loadTestcases(this.getRandomTestcasePaths(count)));
131 - }
132 -
133 - getAllTestcases() {
134 - return this.loadTestcases(this.relFilesForGenSkipped());
135 - }
136 -}
137 -
138 -module.exports = {
139 - Corpus: Corpus,
140 - walkDirectory: walkDirectory,
141 -}
compiler/packages/js-fuzzer/db.js deleted
-485
@@ -1,485 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Mutation Db.
7 - */
8 -
9 -const crypto = require('crypto');
10 -const fs = require('fs');
11 -const fsPath = require('path');
12 -
13 -const babelGenerator = require('@babel/generator').default;
14 -const babelTemplate = require('@babel/template').default;
15 -const babelTraverse = require('@babel/traverse').default;
16 -const babelTypes = require('@babel/types');
17 -const globals = require('globals');
18 -
19 -const random = require('./random.js');
20 -const sourceHelpers = require('./source_helpers.js');
21 -
22 -const globalIdentifiers = new Set(Object.keys(globals.builtin));
23 -const propertyNames = new Set([
24 - // Parsed from https://github.com/tc39/ecma262/blob/master/spec.html
25 - 'add',
26 - 'anchor',
27 - 'apply',
28 - 'big',
29 - 'bind',
30 - 'blink',
31 - 'bold',
32 - 'buffer',
33 - 'byteLength',
34 - 'byteOffset',
35 - 'BYTES_PER_ELEMENT',
36 - 'call',
37 - 'catch',
38 - 'charAt',
39 - 'charCodeAt',
40 - 'clear',
41 - 'codePointAt',
42 - 'compile',
43 - 'concat',
44 - 'constructor',
45 - 'copyWithin',
46 - '__defineGetter__',
47 - '__defineSetter__',
48 - 'delete',
49 - 'endsWith',
50 - 'entries',
51 - 'every',
52 - 'exec',
53 - 'fill',
54 - 'filter',
55 - 'find',
56 - 'findIndex',
57 - 'fixed',
58 - 'flags',
59 - 'fontcolor',
60 - 'fontsize',
61 - 'forEach',
62 - 'get',
63 - 'getDate',
64 - 'getDay',
65 - 'getFloat32',
66 - 'getFloat64',
67 - 'getFullYear',
68 - 'getHours',
69 - 'getInt16',
70 - 'getInt32',
71 - 'getInt8',
72 - 'getMilliseconds',
73 - 'getMinutes',
74 - 'getMonth',
75 - 'getSeconds',
76 - 'getTime',
77 - 'getTimezoneOffset',
78 - 'getUint16',
79 - 'getUint32',
80 - 'getUint8',
81 - 'getUTCDate',
82 - 'getUTCDay',
83 - 'getUTCFullYear',
84 - 'getUTCHours',
85 - 'getUTCMilliseconds',
86 - 'getUTCMinutes',
87 - 'getUTCMonth',
88 - 'getUTCSeconds',
89 - 'getYear',
90 - 'global',
91 - 'has',
92 - 'hasInstance',
93 - 'hasOwnProperty',
94 - 'ignoreCase',
95 - 'includes',
96 - 'indexOf',
97 - 'isConcatSpreadable',
98 - 'isPrototypeOf',
99 - 'italics',
100 - 'iterator',
101 - 'join',
102 - 'keys',
103 - 'lastIndexOf',
104 - 'length',
105 - 'link',
106 - 'localeCompare',
107 - '__lookupGetter__',
108 - '__lookupSetter__',
109 - 'map',
110 - 'match',
111 - 'match',
112 - 'message',
113 - 'multiline',
114 - 'name',
115 - 'next',
116 - 'normalize',
117 - 'padEnd',
118 - 'padStart',
119 - 'pop',
120 - 'propertyIsEnumerable',
121 - '__proto__',
122 - 'prototype',
123 - 'push',
124 - 'reduce',
125 - 'reduceRight',
126 - 'repeat',
127 - 'replace',
128 - 'replace',
129 - 'return',
130 - 'reverse',
131 - 'search',
132 - 'search',
133 - 'set',
134 - 'set',
135 - 'setDate',
136 - 'setFloat32',
137 - 'setFloat64',
138 - 'setFullYear',
139 - 'setHours',
140 - 'setInt16',
141 - 'setInt32',
142 - 'setInt8',
143 - 'setMilliseconds',
144 - 'setMinutes',
145 - 'setMonth',
146 - 'setSeconds',
147 - 'setTime',
148 - 'setUint16',
149 - 'setUint32',
150 - 'setUint8',
151 - 'setUTCDate',
152 - 'setUTCFullYear',
153 - 'setUTCHours',
154 - 'setUTCMilliseconds',
155 - 'setUTCMinutes',
156 - 'setUTCMonth',
157 - 'setUTCSeconds',
158 - 'setYear',
159 - 'shift',
160 - 'size',
161 - 'slice',
162 - 'slice',
163 - 'small',
164 - 'some',
165 - 'sort',
166 - 'source',
167 - 'species',
168 - 'splice',
169 - 'split',
170 - 'split',
171 - 'startsWith',
172 - 'sticky',
173 - 'strike',
174 - 'sub',
175 - 'subarray',
176 - 'substr',
177 - 'substring',
178 - 'sup',
179 - 'test',
180 - 'then',
181 - 'throw',
182 - 'toDateString',
183 - 'toExponential',
184 - 'toFixed',
185 - 'toGMTString',
186 - 'toISOString',
187 - 'toJSON',
188 - 'toLocaleDateString',
189 - 'toLocaleLowerCase',
190 - 'toLocaleString',
191 - 'toLocaleTimeString',
192 - 'toLocaleUpperCase',
193 - 'toLowerCase',
194 - 'toPrecision',
195 - 'toPrimitive',
196 - 'toString',
197 - 'toStringTag',
198 - 'toTimeString',
199 - 'toUpperCase',
200 - 'toUTCString',
201 - 'trim',
202 - 'unicode',
203 - 'unscopables',
204 - 'unshift',
205 - 'valueOf',
206 - 'values',
207 -]);
208 -
209 -const MAX_DEPENDENCIES = 2;
210 -
211 -class Expression {
212 - constructor(type, source, isStatement, originalPath,
213 - dependencies, needsSuper) {
214 - this.type = type;
215 - this.source = source;
216 - this.isStatement = isStatement;
217 - this.originalPath = originalPath;
218 - this.dependencies = dependencies;
219 - this.needsSuper = needsSuper;
220 - }
221 -}
222 -
223 -function dedupKey(expression) {
224 - if (!expression.dependencies) {
225 - return expression.source;
226 - }
227 -
228 - let result = expression.source;
229 - for (let dependency of expression.dependencies) {
230 - result = result.replace(new RegExp(dependency, 'g'), 'ID');
231 - }
232 -
233 - return result;
234 -}
235 -
236 -function _markSkipped(path) {
237 - while (path) {
238 - path.node.__skipped = true;
239 - path = path.parentPath;
240 - }
241 -}
242 -
243 -/**
244 - * Returns true if an expression can be applied or false otherwise.
245 - */
246 -function isValid(expression) {
247 - const expressionTemplate = babelTemplate(
248 - expression.source,
249 - sourceHelpers.BABYLON_REPLACE_VAR_OPTIONS);
250 -
251 - const dependencies = {};
252 - if (expression.dependencies) {
253 - for (const dependency of expression.dependencies) {
254 - dependencies[dependency] = babelTypes.identifier('__v_0');
255 - }
256 - }
257 -
258 - try {
259 - expressionTemplate(dependencies);
260 - } catch (e) {
261 - return false;
262 - }
263 - return true;
264 -}
265 -
266 -class MutateDbWriter {
267 - constructor(outputDir) {
268 - this.seen = new Set();
269 - this.outputDir = fsPath.resolve(outputDir);
270 - this.index = {
271 - statements: [],
272 - superStatements: [],
273 - all: [],
274 - };
275 - }
276 -
277 - process(source) {
278 - let self = this;
279 -
280 - let varIndex = 0;
281 -
282 - // First pass to collect dependency information.
283 - babelTraverse(source.ast, {
284 - Super(path) {
285 - while (path) {
286 - path.node.__needsSuper = true;
287 - path = path.parentPath;
288 - }
289 - },
290 -
291 - YieldExpression(path) {
292 - // Don't include yield expressions in DB.
293 - _markSkipped(path);
294 - },
295 -
296 - Identifier(path) {
297 - if (globalIdentifiers.has(path.node.name) &&
298 - path.node.name != 'eval') {
299 - // Global name.
300 - return;
301 - }
302 -
303 - if (propertyNames.has(path.node.name) &&
304 - path.parentPath.isMemberExpression() &&
305 - path.parentKey !== 'object') {
306 - // Builtin property name.
307 - return;
308 - }
309 -
310 - let binding = path.scope.getBinding(path.node.name);
311 - if (!binding) {
312 - // Unknown dependency. Don't handle this.
313 - _markSkipped(path);
314 - return;
315 - }
316 -
317 - let newName;
318 - if (path.node.name.startsWith('VAR_')) {
319 - newName = path.node.name;
320 - } else if (babelTypes.isFunctionDeclaration(binding.path.node) ||
321 - babelTypes.isFunctionExpression(binding.path.node) ||
322 - babelTypes.isDeclaration(binding.path.node) ||
323 - babelTypes.isFunctionExpression(binding.path.node)) {
324 - // Unknown dependency. Don't handle this.
325 - _markSkipped(path);
326 - return;
327 - } else {
328 - newName = 'VAR_' + varIndex++;
329 - path.scope.rename(path.node.name, newName);
330 - }
331 -
332 - // Mark all parents as having a dependency.
333 - while (path) {
334 - path.node.__idDependencies = path.node.__idDependencies || [];
335 - if (path.node.__idDependencies.length <= MAX_DEPENDENCIES) {
336 - path.node.__idDependencies.push(newName);
337 - }
338 - path = path.parentPath;
339 - }
340 - }
341 - });
342 -
343 - babelTraverse(source.ast, {
344 - Expression(path) {
345 - if (!path.parentPath.isExpressionStatement()) {
346 - return;
347 - }
348 -
349 - if (path.node.__skipped ||
350 - (path.node.__idDependencies &&
351 - path.node.__idDependencies.length > MAX_DEPENDENCIES)) {
352 - return;
353 - }
354 -
355 - if (path.isIdentifier() || path.isMemberExpression() ||
356 - path.isConditionalExpression() ||
357 - path.isBinaryExpression() || path.isDoExpression() ||
358 - path.isLiteral() ||
359 - path.isObjectExpression() || path.isArrayExpression()) {
360 - // Skip:
361 - // - Identifiers.
362 - // - Member expressions (too many and too context dependent).
363 - // - Conditional expressions (too many and too context dependent).
364 - // - Binary expressions (too many).
365 - // - Literals (too many).
366 - // - Object/array expressions (too many).
367 - return;
368 - }
369 -
370 - if (path.isAssignmentExpression()) {
371 - if (!babelTypes.isMemberExpression(path.node.left)) {
372 - // Skip assignments that aren't to properties.
373 - return;
374 - }
375 -
376 - if (babelTypes.isIdentifier(path.node.left.object)) {
377 - if (babelTypes.isNumericLiteral(path.node.left.property)) {
378 - // Skip VAR[\d+] = ...;
379 - // There are too many and they generally aren't very useful.
380 - return;
381 - }
382 -
383 - if (babelTypes.isStringLiteral(path.node.left.property) &&
384 - !propertyNames.has(path.node.left.property.value)) {
385 - // Skip custom properties. e.g.
386 - // VAR["abc"] = ...;
387 - // There are too many and they generally aren't very useful.
388 - return;
389 - }
390 - }
391 - }
392 -
393 - if (path.isCallExpression() &&
394 - babelTypes.isIdentifier(path.node.callee) &&
395 - !globalIdentifiers.has(path.node.callee.name)) {
396 - // Skip VAR(...) calls since there's too much context we're missing.
397 - return;
398 - }
399 -
400 - if (path.isUnaryExpression() && path.node.operator == '-') {
401 - // Skip -... since there are too many.
402 - return;
403 - }
404 -
405 - // Make the template.
406 - let generated = babelGenerator(path.node, { concise: true }).code;
407 - let expression = new Expression(
408 - path.node.type,
409 - generated,
410 - path.parentPath.isExpressionStatement(),
411 - source.relPath,
412 - path.node.__idDependencies,
413 - Boolean(path.node.__needsSuper));
414 -
415 - // Try to de-dupe similar expressions.
416 - let key = dedupKey(expression);
417 - if (self.seen.has(key)) {
418 - return;
419 - }
420 -
421 - // Test results.
422 - if (!isValid(expression)) {
423 - return;
424 - }
425 -
426 - // Write results.
427 - let dirPath = fsPath.join(self.outputDir, expression.type);
428 - if (!fs.existsSync(dirPath)) {
429 - fs.mkdirSync(dirPath);
430 - }
431 -
432 - let sha1sum = crypto.createHash('sha1');
433 - sha1sum.update(key);
434 -
435 - let filePath = fsPath.join(dirPath, sha1sum.digest('hex') + '.json');
436 - fs.writeFileSync(filePath, JSON.stringify(expression));
437 -
438 - let relPath = fsPath.relative(self.outputDir, filePath);
439 -
440 - // Update index.
441 - self.seen.add(key);
442 - self.index.all.push(relPath);
443 -
444 - if (expression.needsSuper) {
445 - self.index.superStatements.push(relPath);
446 - } else {
447 - self.index.statements.push(relPath);
448 - }
449 - }
450 - });
451 - }
452 -
453 - writeIndex() {
454 - fs.writeFileSync(
455 - fsPath.join(this.outputDir, 'index.json'),
456 - JSON.stringify(this.index));
457 - }
458 -}
459 -
460 -class MutateDb {
461 - constructor(outputDir) {
462 - this.outputDir = fsPath.resolve(outputDir);
463 - this.index = JSON.parse(
464 - fs.readFileSync(fsPath.join(outputDir, 'index.json'), 'utf-8'));
465 - }
466 -
467 - getRandomStatement({canHaveSuper=false} = {}) {
468 - let choices;
469 - if (canHaveSuper) {
470 - choices = random.randInt(0, 1) ?
471 - this.index.all : this.index.superStatements;
472 - } else {
473 - choices = this.index.statements;
474 - }
475 -
476 - let path = fsPath.join(
477 - this.outputDir, choices[random.randInt(0, choices.length - 1)]);
478 - return JSON.parse(fs.readFileSync(path), 'utf-8');
479 - }
480 -}
481 -
482 -module.exports = {
483 - MutateDb: MutateDb,
484 - MutateDbWriter: MutateDbWriter,
485 -}
compiler/packages/js-fuzzer/differential_script_mutator.js deleted
-168
@@ -1,168 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Script mutator for differential fuzzing.
7 - */
8 -
9 -'use strict';
10 -
11 -const assert = require('assert');
12 -const fs = require('fs');
13 -const path = require('path');
14 -
15 -const common = require('./mutators/common.js');
16 -const random = require('./random.js');
17 -const sourceHelpers = require('./source_helpers.js');
18 -
19 -const { filterDifferentialFuzzFlags } = require('./exceptions.js');
20 -const { DifferentialFuzzMutator, DifferentialFuzzSuppressions } = require(
21 - './mutators/differential_fuzz_mutator.js');
22 -const { ScriptMutator } = require('./script_mutator.js');
23 -
24 -
25 -const USE_ORIGINAL_FLAGS_PROB = 0.2;
26 -
27 -/**
28 - * Randomly chooses a configuration from experiments. The configuration
29 - * parameters are expected to be passed from a bundled V8 build. Constraints
30 - * mentioned below are enforced by PRESUBMIT checks on the V8 side.
31 - *
32 - * @param {Object[]} experiments List of tuples (probability, first config name,
33 - * second config name, second d8 name). The probabilities are integers in
34 - * [0,100]. We assume the sum of all probabilities is 100.
35 - * @param {Object[]} additionalFlags List of tuples (probability, flag strings).
36 - * Probability is in [0,1).
37 - * @return {string[]} List of flags for v8_foozzie.py.
38 - */
39 -function chooseRandomFlags(experiments, additionalFlags) {
40 - // Add additional flags to second config based on experiment percentages.
41 - const extra_flags = [];
42 - for (const [p, flags] of additionalFlags) {
43 - if (random.choose(p)) {
44 - for (const flag of flags.split(' ')) {
45 - extra_flags.push('--second-config-extra-flags=' + flag);
46 - }
47 - }
48 - }
49 -
50 - // Calculate flags determining the experiment.
51 - let acc = 0;
52 - const threshold = random.random() * 100;
53 - for (let [prob, first_config, second_config, second_d8] of experiments) {
54 - acc += prob;
55 - if (acc > threshold) {
56 - return [
57 - '--first-config=' + first_config,
58 - '--second-config=' + second_config,
59 - '--second-d8=' + second_d8,
60 - ].concat(extra_flags);
61 - }
62 - }
63 - // Unreachable.
64 - assert(false);
65 -}
66 -
67 -function loadJSONFromBuild(name) {
68 - assert(process.env.APP_DIR);
69 - const fullPath = path.join(path.resolve(process.env.APP_DIR), name);
70 - return JSON.parse(fs.readFileSync(fullPath, 'utf-8'));
71 -}
72 -
73 -function hasMjsunit(dependencies) {
74 - return dependencies.some(dep => dep.relPath.endsWith('mjsunit.js'));
75 -}
76 -
77 -function hasJSTests(dependencies) {
78 - return dependencies.some(dep => dep.relPath.endsWith('jstest_stubs.js'));
79 -}
80 -
81 -class DifferentialScriptMutator extends ScriptMutator {
82 - constructor(settings, db_path) {
83 - super(settings, db_path);
84 -
85 - // Mutators for differential fuzzing.
86 - this.differential = [
87 - new DifferentialFuzzSuppressions(settings),
88 - new DifferentialFuzzMutator(settings),
89 - ];
90 -
91 - // Flag configurations from the V8 build directory.
92 - this.experiments = loadJSONFromBuild('v8_fuzz_experiments.json');
93 - this.additionalFlags = loadJSONFromBuild('v8_fuzz_flags.json');
94 - }
95 -
96 - /**
97 - * Performes the high-level mutation and afterwards adds flags for the
98 - * v8_foozzie.py harness.
99 - */
100 - mutateMultiple(inputs) {
101 - const result = super.mutateMultiple(inputs);
102 - const originalFlags = [];
103 -
104 - // Keep original JS flags in some cases. Let the harness pass them to
105 - // baseline _and_ comparison run.
106 - if (random.choose(USE_ORIGINAL_FLAGS_PROB)) {
107 - for (const flag of filterDifferentialFuzzFlags(result.flags)) {
108 - originalFlags.push('--first-config-extra-flags=' + flag);
109 - originalFlags.push('--second-config-extra-flags=' + flag);
110 - }
111 - }
112 -
113 - // Add flags for the differnetial-fuzzing settings.
114 - const fuzzFlags = chooseRandomFlags(this.experiments, this.additionalFlags);
115 - result.flags = fuzzFlags.concat(originalFlags);
116 - return result;
117 - }
118 -
119 - /**
120 - * Mutatates a set of inputs.
121 - *
122 - * Additionally we prepare inputs by tagging each with the original source
123 - * path for later printing. The mutated sources are post-processed by the
124 - * differential-fuzz mutators, adding extra printing and other substitutions.
125 - */
126 - mutateInputs(inputs) {
127 - inputs.forEach(input => common.setOriginalPath(input, input.relPath));
128 -
129 - const result = super.mutateInputs(inputs);
130 - this.differential.forEach(mutator => mutator.mutate(result));
131 - return result;
132 - }
133 -
134 - /**
135 - * Adds extra dependencies for differential fuzzing.
136 - */
137 - resolveDependencies(inputs) {
138 - const dependencies = super.resolveDependencies(inputs);
139 - // The suppression file neuters functions not working with differential
140 - // fuzzing. It can also be used to temporarily silence some functionality
141 - // leading to dupes of an active bug.
142 - dependencies.push(
143 - sourceHelpers.loadResource('differential_fuzz_suppressions.js'));
144 - // Extra printing and tracking functionality.
145 - dependencies.push(
146 - sourceHelpers.loadResource('differential_fuzz_library.js'));
147 - // Make Chakra tests print more.
148 - dependencies.push(
149 - sourceHelpers.loadResource('differential_fuzz_chakra.js'));
150 -
151 - if (hasMjsunit(dependencies)) {
152 - // Make V8 tests print more. We guard this as the functionality
153 - // relies on mjsunit.js.
154 - dependencies.push(sourceHelpers.loadResource('differential_fuzz_v8.js'));
155 - }
156 -
157 - if (hasJSTests(dependencies)) {
158 - dependencies.push(
159 - sourceHelpers.loadResource('differential_fuzz_jstest.js'));
160 - }
161 -
162 - return dependencies;
163 - }
164 -}
165 -
166 -module.exports = {
167 - DifferentialScriptMutator: DifferentialScriptMutator,
168 -};
compiler/packages/js-fuzzer/exceptions.js deleted
-253
@@ -1,253 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Blacklists for fuzzer.
7 - */
8 -
9 -'use strict';
10 -
11 -const fs = require('fs');
12 -const path = require('path');
13 -
14 -const random = require('./random.js');
15 -
16 -const {generatedSloppy, generatedSoftSkipped, generatedSkipped} = require(
17 - './generated/exceptions.js');
18 -
19 -const SKIPPED_FILES = [
20 - // Disabled for unexpected test behavior, specific to d8 shell.
21 - 'd8-os.js',
22 - 'd8-readbuffer.js',
23 -
24 - // Passes JS flags.
25 - 'd8-arguments.js',
26 -
27 - // Slow tests or tests that are too large to be used as input.
28 - /numops-fuzz-part.*.js/,
29 - 'regexp-pcre.js',
30 - 'unicode-test.js',
31 - 'unicodelctest.js',
32 - 'unicodelctest-no-optimization.js',
33 -
34 - // Unsupported modules.
35 - /^modules.*\.js/,
36 -
37 - // Unsupported property escapes.
38 - /^regexp-property-.*\.js/,
39 -
40 - // Bad testcases that just loads a script that always throws errors.
41 - 'regress-444805.js',
42 - 'regress-crbug-489597.js',
43 - 'regress-crbug-620253.js',
44 -
45 - // Just recursively loads itself.
46 - 'regress-8510.js',
47 -];
48 -
49 -const SKIPPED_DIRECTORIES = [
50 - // Slow tests or tests that are too large to be used as input.
51 - 'embenchen',
52 - 'poppler',
53 - 'sqlite',
54 -
55 - // Unavailable debug.Debug.
56 - 'v8/test/debugger',
57 - 'v8/test/inspector',
58 -
59 - // Unsupported modules.
60 - 'v8/test/js-perf-test/Modules',
61 -
62 - // Contains tests expected to error out on parsing.
63 - 'v8/test/message',
64 -
65 - // Needs specific dependencies for load of various tests.
66 - 'v8/test/mjsunit/tools',
67 -
68 - // Unsupported e4x standard.
69 - 'mozilla/data/e4x',
70 -
71 - // Bails out fast without ReadableStream support.
72 - 'spidermonkey/non262/ReadableStream',
73 -];
74 -
75 -// Files used with a lower probability.
76 -const SOFT_SKIPPED_FILES = [
77 - // Tests with large binary content.
78 - /^binaryen.*\.js/,
79 -
80 - // Tests slow to parse.
81 - // CrashTests:
82 - /^jquery.*\.js/,
83 - // Spidermonkey:
84 - 'regress-308085.js',
85 - 'regress-74474-002.js',
86 - 'regress-74474-003.js',
87 - // V8:
88 - 'object-literal.js',
89 -];
90 -
91 -// Flags that lead to false positives or that are already passed by default.
92 -const DISALLOWED_FLAGS = [
93 - // Disallowed because features prefixed with "experimental" are not
94 - // stabilized yet and would cause too much noise when enabled.
95 - /^--experimental-.*/,
96 -
97 - // Disallowed due to noise. We explicitly add --harmony to job
98 - // definitions, and all of these features are staged before launch.
99 - /^--harmony-.*/,
100 -
101 - // Disallowed because they are passed explicitly on the command line.
102 - '--allow-natives-syntax',
103 - '--debug-code',
104 - '--harmony',
105 - '--wasm-staging',
106 - '--expose-gc',
107 - '--expose_gc',
108 - '--icu-data-file',
109 - '--random-seed',
110 -
111 - // Disallowed due to false positives.
112 - '--check-handle-count',
113 - '--correctness-fuzzer-suppressions',
114 - '--expose-debug-as',
115 - '--expose-natives-as',
116 - '--expose-trigger-failure',
117 - '--mock-arraybuffer-allocator',
118 - 'natives', // Used in conjuction with --expose-natives-as.
119 - /^--trace-path.*/,
120 -];
121 -
122 -// Flags only used with 25% probability.
123 -const LOW_PROB_FLAGS_PROB = 0.25;
124 -const LOW_PROB_FLAGS = [
125 - // Flags that lead to slow test performance.
126 - /^--gc-interval.*/,
127 - /^--deopt-every-n-times.*/,
128 -];
129 -
130 -
131 -// Flags printing data, leading to false positives in differential fuzzing.
132 -const DISALLOWED_DIFFERENTIAL_FUZZ_FLAGS = [
133 - /^--gc-interval.*/,
134 - /^--perf.*/,
135 - /^--print.*/,
136 - /^--stress-runs.*/,
137 - /^--trace.*/,
138 - '--expose-externalize-string',
139 - '--interpreted-frames-native-stack',
140 - '--validate-asm',
141 -];
142 -
143 -const MAX_FILE_SIZE_BYTES = 128 * 1024; // 128KB
144 -const MEDIUM_FILE_SIZE_BYTES = 32 * 1024; // 32KB
145 -
146 -function _findMatch(iterable, candidate) {
147 - for (const entry of iterable) {
148 - if (typeof entry === 'string') {
149 - if (entry === candidate) {
150 - return true;
151 - }
152 - } else {
153 - if (entry.test(candidate)) {
154 - return true;
155 - }
156 - }
157 - }
158 -
159 - return false;
160 -}
161 -
162 -function _doesntMatch(iterable, candidate) {
163 - return !_findMatch(iterable, candidate);
164 -}
165 -
166 -// Convert Windows path separators.
167 -function normalize(testPath) {
168 - return path.normalize(testPath).replace(/\\/g, '/');
169 -}
170 -
171 -function isTestSkippedAbs(absPath) {
172 - const basename = path.basename(absPath);
173 - if (_findMatch(SKIPPED_FILES, basename)) {
174 - return true;
175 - }
176 -
177 - const normalizedTestPath = normalize(absPath);
178 - for (const entry of SKIPPED_DIRECTORIES) {
179 - if (normalizedTestPath.includes(entry)) {
180 - return true;
181 - }
182 - }
183 -
184 - // Avoid OOM/hangs through huge inputs.
185 - const stat = fs.statSync(absPath);
186 - return (stat && stat.size >= MAX_FILE_SIZE_BYTES);
187 -}
188 -
189 -function isTestSkippedRel(relPath) {
190 - return generatedSkipped.has(normalize(relPath));
191 -}
192 -
193 -// For testing.
194 -function getSoftSkipped() {
195 - return SOFT_SKIPPED_FILES;
196 -}
197 -
198 -// For testing.
199 -function getGeneratedSoftSkipped() {
200 - return generatedSoftSkipped;
201 -}
202 -
203 -// For testing.
204 -function getGeneratedSloppy() {
205 - return generatedSloppy;
206 -}
207 -
208 -function isTestSoftSkippedAbs(absPath) {
209 - const basename = path.basename(absPath);
210 - if (_findMatch(this.getSoftSkipped(), basename)) {
211 - return true;
212 - }
213 -
214 - // Graylist medium size files.
215 - const stat = fs.statSync(absPath);
216 - return (stat && stat.size >= MEDIUM_FILE_SIZE_BYTES);
217 -}
218 -
219 -function isTestSoftSkippedRel(relPath) {
220 - return this.getGeneratedSoftSkipped().has(normalize(relPath));
221 -}
222 -
223 -function isTestSloppyRel(relPath) {
224 - return this.getGeneratedSloppy().has(normalize(relPath));
225 -}
226 -
227 -function filterFlags(flags) {
228 - return flags.filter(flag => {
229 - return (
230 - _doesntMatch(DISALLOWED_FLAGS, flag) &&
231 - (_doesntMatch(LOW_PROB_FLAGS, flag) ||
232 - random.choose(LOW_PROB_FLAGS_PROB)));
233 - });
234 -}
235 -
236 -function filterDifferentialFuzzFlags(flags) {
237 - return flags.filter(
238 - flag => _doesntMatch(DISALLOWED_DIFFERENTIAL_FUZZ_FLAGS, flag));
239 -}
240 -
241 -
242 -module.exports = {
243 - filterDifferentialFuzzFlags: filterDifferentialFuzzFlags,
244 - filterFlags: filterFlags,
245 - getGeneratedSoftSkipped: getGeneratedSoftSkipped,
246 - getGeneratedSloppy: getGeneratedSloppy,
247 - getSoftSkipped: getSoftSkipped,
248 - isTestSkippedAbs: isTestSkippedAbs,
249 - isTestSkippedRel: isTestSkippedRel,
250 - isTestSoftSkippedAbs: isTestSoftSkippedAbs,
251 - isTestSoftSkippedRel: isTestSoftSkippedRel,
252 - isTestSloppyRel: isTestSloppyRel,
253 -}
compiler/packages/js-fuzzer/foozzie_launcher.py deleted
-49
@@ -1,49 +0,0 @@
1 -#!/usr/bin/env python3
2 -# Copyright 2020 the V8 project authors. All rights reserved.
3 -# Use of this source code is governed by a BSD-style license that can be
4 -# found in the LICENSE file.
5 -
6 -
7 -"""
8 -Launcher for the foozzie differential-fuzzing harness. Wraps foozzie
9 -with Python2 for backwards-compatibility when bisecting.
10 -
11 -Obsolete now after switching to Python3 entirely. We keep the launcher
12 -for a transition period.
13 -"""
14 -
15 -import os
16 -import re
17 -import shutil
18 -import subprocess
19 -import sys
20 -
21 -def find_harness_code(args):
22 - for arg in args:
23 - if arg.endswith('v8_foozzie.py'):
24 - with open(arg) as f:
25 - return f.read()
26 - assert False, 'Foozzie harness not found'
27 -
28 -if __name__ == '__main__':
29 - # In some cases or older versions, the python executable is passed as
30 - # first argument. Let's be robust either way, with or without full
31 - # path or version.
32 - if re.match(r'.*python.*', sys.argv[1]):
33 - args = sys.argv[2:]
34 - else:
35 - args = sys.argv[1:]
36 -
37 - python_exe = 'python3'
38 -
39 - # To ease bisection of really old bugs, attempt to use Python2 as long
40 - # as it is supported. This enables bisection before the point where the
41 - # harness switched to Python3.
42 - script = find_harness_code(args)
43 - use_python3 = script.startswith('#!/usr/bin/env python3')
44 - if not use_python3 and shutil.which('python2'):
45 - python_exe = 'python2'
46 -
47 - process = subprocess.Popen([python_exe] + args)
48 - process.communicate()
49 - sys.exit(process.returncode)
compiler/packages/js-fuzzer/gen_exceptions.js deleted
-196
@@ -1,196 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Generate exceptions from full corpus test report.
7 - */
8 -
9 -const program = require('commander');
10 -
11 -const assert = require('assert');
12 -const babelGenerator = require('@babel/generator').default;
13 -const babelTemplate = require('@babel/template').default;
14 -const babelTypes = require('@babel/types');
15 -const fs = require('fs');
16 -const p = require('path');
17 -const prettier = require("prettier");
18 -
19 -const SPLIT_LINES_RE = /^.*([\n\r]+|$)/gm;
20 -const PARSE_RE = /^Parsing (.*) sloppy took (\d+) ms\.\n$/;
21 -const MUTATE_RE = /^Mutating (.*) took (\d+) ms\.\n$/;
22 -const PARSE_FAILED_RE = /^WARNING: failed to sloppy parse (.*)\n$/;
23 -const PARSE_STRICT_FAILED_RE = /^WARNING: failed to strict parse (.*)\n$/;
24 -const MUTATE_FAILED_RE = /^ERROR: Exception during mutate: (.*)\n$/;
25 -
26 -// Add tests matching error regexp to result array.
27 -function matchError(regexp, line, resultArray){
28 - const match = line.match(regexp);
29 - if (!match) return false;
30 - const relPath = match[1];
31 - assert(relPath);
32 - resultArray.push(relPath);
33 - return true;
34 -}
35 -
36 -// Sum up total duration of tests matching the duration regexp and
37 -// map test -> duration in result map.
38 -function matchDuration(regexp, line, resultMap){
39 - const match = line.match(regexp);
40 - if (!match) return false;
41 - const relPath = match[1];
42 - assert(relPath);
43 - resultMap[relPath] = (resultMap[relPath] || 0) + parseInt(match[2]);
44 - return true;
45 -}
46 -
47 -// Create lists of failed and slow tests from stdout of a fuzzer run.
48 -function processFuzzOutput(outputFile){
49 - const text = fs.readFileSync(outputFile, 'utf-8');
50 - const lines = text.match(SPLIT_LINES_RE);
51 -
52 - const failedParse = [];
53 - const failedParseStrict = [];
54 - const failedMutate = [];
55 - const durationsMap = {};
56 -
57 - for (const line of lines) {
58 - if (matchError(PARSE_FAILED_RE, line, failedParse))
59 - continue;
60 - if (matchError(PARSE_STRICT_FAILED_RE, line, failedParseStrict))
61 - continue;
62 - if (matchError(MUTATE_FAILED_RE, line, failedMutate))
63 - continue;
64 - if (matchDuration(PARSE_RE, line, durationsMap))
65 - continue;
66 - if (matchDuration(MUTATE_RE, line, durationsMap))
67 - continue;
68 - }
69 -
70 - // Tuples (absPath, duration).
71 - const total = Object.entries(durationsMap);
72 - // Tuples (absPath, duration) with 2s < duration <= 10s.
73 - const slow = total.filter(t => t[1] > 2000 && t[1] <= 10000);
74 - // Tuples (absPath, duration) with 10s < duration.
75 - const verySlow = total.filter(t => t[1] > 10000);
76 -
77 - // Assert there's nothing horribly wrong with the results.
78 - // We have at least 2500 tests in the output.
79 - assert(total.length > 2500);
80 - // No more than 5% parse/mutation errors.
81 - assert(failedParse.length + failedMutate.length < total.length / 20);
82 - // No more than 10% slow tests
83 - assert(slow.length < total.length / 10);
84 - // No more than 2% very slow tests.
85 - assert(verySlow.length < total.length / 50);
86 -
87 - // Sort everything.
88 - failedParse.sort();
89 - failedParseStrict.sort();
90 - failedMutate.sort();
91 -
92 - function slowestFirst(a, b) {
93 - return b[1] - a[1];
94 - }
95 -
96 - slow.sort(slowestFirst);
97 - verySlow.sort(slowestFirst);
98 -
99 - return [failedParse, failedParseStrict, failedMutate, slow, verySlow];
100 -}
101 -
102 -// List of string literals of failed tests.
103 -function getLiteralsForFailed(leadingComment, failedList) {
104 - const result = failedList.map(path => babelTypes.stringLiteral(path));
105 - if (result.length) {
106 - babelTypes.addComment(result[0], 'leading', leadingComment);
107 - }
108 - return result;
109 -}
110 -
111 -// List of string literals of slow tests with duration comments.
112 -function getLiteralsForSlow(leadingComment, slowList) {
113 - const result = slowList.map(([path, duration]) => {
114 - const literal = babelTypes.stringLiteral(path);
115 - babelTypes.addComment(
116 - literal, 'trailing', ` ${duration / 1000}s`, true);
117 - return literal;
118 - });
119 - if (result.length) {
120 - babelTypes.addComment(result[0], 'leading', leadingComment);
121 - }
122 - return result;
123 -}
124 -
125 -function main() {
126 - program
127 - .version('0.0.1')
128 - .parse(process.argv);
129 -
130 - if (!program.args.length) {
131 - console.log('Need to specify stdout reports of fuzz runs.');
132 - return;
133 - }
134 -
135 - let skipped = [];
136 - let softSkipped = [];
137 - let sloppy = [];
138 - for (const outputFile of program.args) {
139 - const [failedParse, failedParseStrict, failedMutate, slow, verySlow] = (
140 - processFuzzOutput(outputFile));
141 - const name = p.basename(outputFile, p.extname(outputFile));
142 -
143 - // Skip tests that fail to parse/mutate or are very slow.
144 - skipped = skipped.concat(getLiteralsForFailed(
145 - ` Tests with parse errors from ${name} `, failedParse));
146 - skipped = skipped.concat(getLiteralsForFailed(
147 - ` Tests with mutation errors from ${name} `, failedMutate));
148 - skipped = skipped.concat(getLiteralsForSlow(
149 - ` Very slow tests from ${name} `, verySlow));
150 -
151 - // Soft-skip slow but not very slow tests.
152 - softSkipped = softSkipped.concat(getLiteralsForSlow(
153 - ` Slow tests from ${name} `, slow));
154 -
155 - // Mark sloppy tests.
156 - sloppy = sloppy.concat(getLiteralsForFailed(
157 - ` Tests requiring sloppy mode from ${name} `, failedParseStrict));
158 - }
159 -
160 - const fileTemplate = babelTemplate(`
161 - /**
162 - * @fileoverview Autogenerated exceptions. Created with gen_exceptions.js.
163 - */
164 -
165 - 'use strict';
166 -
167 - const skipped = SKIPPED;
168 -
169 - const softSkipped = SOFTSKIPPED;
170 -
171 - const sloppy = SLOPPY;
172 -
173 - module.exports = {
174 - generatedSkipped: new Set(skipped),
175 - generatedSoftSkipped: new Set(softSkipped),
176 - generatedSloppy: new Set(sloppy),
177 - }
178 - `, {preserveComments: true});
179 -
180 - const skippedArray = babelTypes.arrayExpression(skipped);
181 - const softSkippedArray = babelTypes.arrayExpression(softSkipped);
182 - const sloppyArray = babelTypes.arrayExpression(sloppy);
183 -
184 - const statements = fileTemplate({
185 - SKIPPED: skippedArray,
186 - SOFTSKIPPED: softSkippedArray,
187 - SLOPPY: sloppyArray,
188 - });
189 -
190 - const resultProgram = babelTypes.program(statements);
191 - const code = babelGenerator(resultProgram, { comments: true }).code;
192 - const prettyCode = prettier.format(code, { parser: "babel" });
193 - fs.writeFileSync('generated/exceptions.js', prettyCode);
194 -}
195 -
196 -main();
compiler/packages/js-fuzzer/gen_exceptions.sh deleted
-12
@@ -1,12 +0,0 @@
1 -#!/bin/bash
2 -# Copyright 2020 the V8 project authors. All rights reserved.
3 -# Use of this source code is governed by a BSD-style license that can be
4 -# found in the LICENSE file.
5 -
6 -APP_NAME=d8 node run.js -i $WEB_TESTS -o $OUTPUT -z -v -e -c chakra > chakra.log
7 -APP_NAME=d8 node run.js -i $WEB_TESTS -o $OUTPUT -z -v -e -c v8 > v8.log
8 -APP_NAME=d8 node run.js -i $WEB_TESTS -o $OUTPUT -z -v -e -c spidermonkey > spidermonkey.log
9 -APP_NAME=d8 node run.js -i $WEB_TESTS -o $OUTPUT -z -v -e -c WebKit/JSTests > jstests.log
10 -APP_NAME=d8 node run.js -i $WEB_TESTS -o $OUTPUT -z -v -e -c CrashTests > crashtests.log
11 -
12 -node gen_exceptions.js v8.log spidermonkey.log chakra.log jstests.log crashtests.log
compiler/packages/js-fuzzer/mutators/array_mutator.js deleted
-115
@@ -1,115 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Mutator for array expressions.
7 - */
8 -
9 -'use strict';
10 -
11 -const babelTypes = require('@babel/types');
12 -
13 -const common = require('./common.js');
14 -const mutator = require('./mutator.js');
15 -const random = require('../random.js');
16 -
17 -// Blueprint for choosing the maximum number of mutations. Bias towards
18 -// performing only one mutation.
19 -const MUTATION_CHOICES = [1, 1, 1, 1, 1, 2, 2, 2, 3];
20 -
21 -const MAX_ARRAY_LENGTH = 50;
22 -
23 -class ArrayMutator extends mutator.Mutator {
24 - constructor(settings) {
25 - super();
26 - this.settings = settings;
27 - }
28 -
29 - get visitor() {
30 - const thisMutator = this;
31 -
32 - return {
33 - ArrayExpression(path) {
34 - const elements = path.node.elements;
35 - if (!random.choose(thisMutator.settings.MUTATE_ARRAYS) ||
36 - elements.length > MAX_ARRAY_LENGTH) {
37 - return;
38 - }
39 -
40 - // Annotate array expression with the action taken, indicating
41 - // if we also replaced elements.
42 - function annotate(message, replace) {
43 - if (replace) message += ' (replaced)';
44 - thisMutator.annotate(path.node, message);
45 - }
46 -
47 - // Add or replace elements at a random index.
48 - function randomSplice(replace, ...args) {
49 - // Choose an index that's small enough to replace all desired items.
50 - const index = random.randInt(0, elements.length - replace);
51 - elements.splice(index, replace, ...args);
52 - }
53 -
54 - function duplicateElement(replace) {
55 - const element = random.single(elements);
56 - if (!element || common.isLargeNode(element)) {
57 - return;
58 - }
59 - annotate('Duplicate an element', replace);
60 - randomSplice(replace, babelTypes.cloneDeep(element));
61 - }
62 -
63 - function insertRandomValue(replace) {
64 - annotate('Insert a random value', replace);
65 - randomSplice(replace, common.randomValue(path));
66 - }
67 -
68 - function insertHole(replace) {
69 - annotate('Insert a hole', replace);
70 - randomSplice(replace, null);
71 - }
72 -
73 - function removeElements(count) {
74 - annotate('Remove elements');
75 - randomSplice(random.randInt(1, count));
76 - }
77 -
78 - function shuffle() {
79 - annotate('Shuffle array');
80 - random.shuffle(elements);
81 - }
82 -
83 - // Mutation options. Repeated mutations have a higher probability.
84 - const mutations = [
85 - () => duplicateElement(1),
86 - () => duplicateElement(1),
87 - () => duplicateElement(1),
88 - () => duplicateElement(0),
89 - () => duplicateElement(0),
90 - () => insertRandomValue(1),
91 - () => insertRandomValue(1),
92 - () => insertRandomValue(0),
93 - () => insertHole(1),
94 - () => insertHole(0),
95 - () => removeElements(1),
96 - () => removeElements(elements.length),
97 - shuffle,
98 - ];
99 -
100 - // Perform several mutations.
101 - const count = random.single(MUTATION_CHOICES);
102 - for (let i = 0; i < count; i++) {
103 - random.single(mutations)();
104 - }
105 -
106 - // Don't recurse on nested arrays.
107 - path.skip();
108 - },
109 - }
110 - }
111 -}
112 -
113 -module.exports = {
114 - ArrayMutator: ArrayMutator,
115 -};
compiler/packages/js-fuzzer/mutators/common.js deleted
-376
@@ -1,376 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Common mutator utilities.
7 - */
8 -
9 -const babelTemplate = require('@babel/template').default;
10 -const babelTypes = require('@babel/types');
11 -const babylon = require('@babel/parser');
12 -
13 -const sourceHelpers = require('../source_helpers.js');
14 -const random = require('../random.js');
15 -
16 -const INTERESTING_NUMBER_VALUES = [
17 - -1, -0.0, 0, 1,
18 -
19 - // Float values.
20 - -0.000000000000001, 0.000000000000001,
21 -
22 - // Special values.
23 - NaN, +Infinity, -Infinity,
24 -
25 - // Boundaries of int, signed, unsigned, SMI (near +/- 2^(30, 31, 32).
26 - 0x03fffffff, 0x040000000, 0x040000001,
27 - -0x03fffffff, -0x040000000, -0x040000001,
28 - 0x07fffffff, 0x080000000, 0x080000001,
29 - -0x07fffffff, -0x080000000, -0x080000001,
30 - 0x0ffffffff, 0x100000000, 0x100000001,
31 - -0x0ffffffff, -0x100000000, -0x100000001,
32 -
33 - // Boundaries of maximum safe integer (near +/- 2^53).
34 - 9007199254740990, 9007199254740991, 9007199254740992,
35 - -9007199254740990, -9007199254740991, -9007199254740992,
36 -
37 - // Boundaries of double.
38 - 5e-324, 1.7976931348623157e+308,
39 - -5e-324,-1.7976931348623157e+308,
40 -]
41 -
42 -const INTERESTING_NON_NUMBER_VALUES = [
43 - // Simple arrays.
44 - '[]',
45 - 'Array(0x8000).fill("a")',
46 -
47 - // Simple object.
48 - '{}',
49 - '{a: "foo", b: 10, c: {}}',
50 -
51 - // Simple strings.
52 - '"foo"',
53 - '""',
54 -
55 - // Simple regex.
56 - '/0/',
57 - '"/0/"',
58 -
59 - // Simple symbol.
60 - 'Symbol("foo")',
61 -
62 - // Long string.
63 - 'Array(0x8000).join("a")',
64 -
65 - // Math.PI
66 - 'Math.PI',
67 -
68 - // Others.
69 - 'false',
70 - 'true',
71 - 'undefined',
72 - 'null',
73 - 'this',
74 - 'this[0]',
75 - 'this[1]',
76 -
77 - // Empty function.
78 - '(function() {return 0;})',
79 -
80 - // Objects with functions.
81 - '({toString:function(){return "0";}})',
82 - '({valueOf:function(){return 0;}})',
83 - '({valueOf:function(){return "0";}})',
84 -
85 - // Objects for primitive types created using new.
86 - '(new Boolean(false))',
87 - '(new Boolean(true))',
88 - '(new String(""))',
89 - '(new Number(0))',
90 - '(new Number(-0))',
91 -]
92 -
93 -const LARGE_NODE_SIZE = 100;
94 -const MAX_ARGUMENT_COUNT = 10;
95 -
96 -function _identifier(identifier) {
97 - return babelTypes.identifier(identifier);
98 -}
99 -
100 -function _numericLiteral(number) {
101 - return babelTypes.numericLiteral(number);
102 -}
103 -
104 -function _unwrapExpressionStatement(value) {
105 - if (babelTypes.isExpressionStatement(value)) {
106 - return value.expression;
107 - }
108 -
109 - return value;
110 -}
111 -
112 -function isVariableIdentifier(name) {
113 - return /__v_[0-9]+/.test(name);
114 -}
115 -
116 -function isFunctionIdentifier(name) {
117 - return /__f_[0-9]+/.test(name);
118 -}
119 -
120 -function isInForLoopCondition(path) {
121 - // Return whether if we're in the init/test/update parts of a for loop (but
122 - // not the body). Mutating variables in the init/test/update will likely
123 - // modify loop variables and cause infinite loops.
124 - const forStatementChild = path.find(
125 - p => p.parent && babelTypes.isForStatement(p.parent));
126 -
127 - return (forStatementChild && forStatementChild.parentKey !== 'body');
128 -}
129 -
130 -function isInWhileLoop(path) {
131 - // Return whether if we're in a while loop.
132 - const whileStatement = path.find(p => babelTypes.isWhileStatement(p));
133 - return Boolean(whileStatement);
134 -}
135 -
136 -function _availableIdentifiers(path, filter) {
137 - // TODO(ochang): Consider globals that aren't declared with let/var etc.
138 - const available = new Array();
139 - const allBindings = path.scope.getAllBindings();
140 - for (const key of Object.keys(allBindings)) {
141 - if (!filter(key)) {
142 - continue;
143 - }
144 -
145 - if (filter === isVariableIdentifier &&
146 - path.willIMaybeExecuteBefore(allBindings[key].path)) {
147 - continue;
148 - }
149 -
150 - available.push(_identifier(key));
151 - }
152 -
153 - return available;
154 -}
155 -
156 -function availableVariables(path) {
157 - return _availableIdentifiers(path, isVariableIdentifier);
158 -}
159 -
160 -function availableFunctions(path) {
161 - return _availableIdentifiers(path, isFunctionIdentifier);
162 -}
163 -
164 -function randomVariable(path) {
165 - return random.single(availableVariables(path));
166 -}
167 -
168 -function randomFunction(path) {
169 - return random.single(availableFunctions(path));
170 -}
171 -
172 -function randomSeed() {
173 - return random.randInt(0, 2**20);
174 -}
175 -
176 -function randomObject(seed) {
177 - if (seed === undefined) {
178 - seed = randomSeed();
179 - }
180 -
181 - const template = babelTemplate('__getRandomObject(SEED)');
182 - return template({
183 - SEED: _numericLiteral(seed),
184 - }).expression;
185 -}
186 -
187 -function randomProperty(identifier, seed) {
188 - if (seed === undefined) {
189 - seed = randomSeed();
190 - }
191 -
192 - const template = babelTemplate('__getRandomProperty(IDENTIFIER, SEED)');
193 - return template({
194 - IDENTIFIER: identifier,
195 - SEED: _numericLiteral(seed),
196 - }).expression;
197 -}
198 -
199 -function randomArguments(path) {
200 - const numArgs = random.randInt(0, MAX_ARGUMENT_COUNT);
201 - const args = [];
202 -
203 - for (let i = 0; i < numArgs; i++) {
204 - args.push(randomValue(path));
205 - }
206 -
207 - return args.map(_unwrapExpressionStatement);
208 -}
209 -
210 -function randomValue(path) {
211 - const probability = random.random();
212 -
213 - if (probability < 0.01) {
214 - const randomFunc = randomFunction(path);
215 - if (randomFunc) {
216 - return randomFunc;
217 - }
218 - }
219 -
220 - if (probability < 0.25) {
221 - const randomVar = randomVariable(path);
222 - if (randomVar) {
223 - return randomVar;
224 - }
225 - }
226 -
227 - if (probability < 0.5) {
228 - return randomInterestingNumber();
229 - }
230 -
231 - if (probability < 0.75) {
232 - return randomInterestingNonNumber();
233 - }
234 -
235 - return randomObject();
236 -}
237 -
238 -function callRandomFunction(path, identifier, seed) {
239 - if (seed === undefined) {
240 - seed = randomSeed();
241 - }
242 -
243 - let args = [
244 - identifier,
245 - _numericLiteral(seed)
246 - ];
247 -
248 - args = args.map(_unwrapExpressionStatement);
249 - args = args.concat(randomArguments(path));
250 -
251 - return babelTypes.callExpression(
252 - babelTypes.identifier('__callRandomFunction'),
253 - args);
254 -}
255 -
256 -function nearbyRandomNumber(value) {
257 - const probability = random.random();
258 -
259 - if (probability < 0.9) {
260 - return _numericLiteral(value + random.randInt(-0x10, 0x10));
261 - } else if (probability < 0.95) {
262 - return _numericLiteral(value + random.randInt(-0x100, 0x100));
263 - } else if (probability < 0.99) {
264 - return _numericLiteral(value + random.randInt(-0x1000, 0x1000));
265 - }
266 -
267 - return _numericLiteral(value + random.randInt(-0x10000, 0x10000));
268 -}
269 -
270 -function randomInterestingNumber() {
271 - const value = random.single(INTERESTING_NUMBER_VALUES);
272 - if (random.choose(0.05)) {
273 - return nearbyRandomNumber(value);
274 - }
275 - return _numericLiteral(value);
276 -}
277 -
278 -function randomInterestingNonNumber() {
279 - return babylon.parseExpression(random.single(INTERESTING_NON_NUMBER_VALUES));
280 -}
281 -
282 -function concatFlags(inputs) {
283 - const flags = new Set();
284 - for (const input of inputs) {
285 - for (const flag of input.flags || []) {
286 - flags.add(flag);
287 - }
288 - }
289 - return Array.from(flags.values());
290 -}
291 -
292 -function concatPrograms(inputs) {
293 - // Concatentate programs.
294 - const resultProgram = babelTypes.program([]);
295 - const result = babelTypes.file(resultProgram, [], null);
296 -
297 - for (const input of inputs) {
298 - const ast = input.ast.program;
299 - resultProgram.body = resultProgram.body.concat(ast.body);
300 - resultProgram.directives = resultProgram.directives.concat(ast.directives);
301 - }
302 -
303 - // TODO(machenbach): Concat dependencies here as soon as they are cached.
304 - const combined = new sourceHelpers.ParsedSource(
305 - result, '', '', concatFlags(inputs));
306 - // If any input file is sloppy, the combined result is sloppy.
307 - combined.sloppy = inputs.some(input => input.isSloppy());
308 - return combined;
309 -}
310 -
311 -function setSourceLoc(source, index, total) {
312 - const noop = babelTypes.noop();
313 - noop.__loc = index / total;
314 - noop.__self = noop;
315 - source.ast.program.body.unshift(noop);
316 -}
317 -
318 -function getSourceLoc(node) {
319 - // Source location is invalid in cloned nodes.
320 - if (node !== node.__self) {
321 - return undefined;
322 - }
323 - return node.__loc;
324 -}
325 -
326 -function setOriginalPath(source, originalPath) {
327 - const noop = babelTypes.noop();
328 - noop.__path = originalPath;
329 - noop.__self = noop;
330 - source.ast.program.body.unshift(noop);
331 -}
332 -
333 -function getOriginalPath(node) {
334 - // Original path is invalid in cloned nodes.
335 - if (node !== node.__self) {
336 - return undefined;
337 - }
338 - return node.__path;
339 -}
340 -
341 -// Estimate the size of a node in raw source characters.
342 -function isLargeNode(node) {
343 - // Ignore array holes inserted by us (null) or previously cloned nodes
344 - // (they have no start/end).
345 - if (!node || node.start === undefined || node.end === undefined ) {
346 - return false;
347 - }
348 - return node.end - node.start > LARGE_NODE_SIZE;
349 -}
350 -
351 -module.exports = {
352 - callRandomFunction: callRandomFunction,
353 - concatFlags: concatFlags,
354 - concatPrograms: concatPrograms,
355 - availableVariables: availableVariables,
356 - availableFunctions: availableFunctions,
357 - randomFunction: randomFunction,
358 - randomVariable: randomVariable,
359 - isInForLoopCondition: isInForLoopCondition,
360 - isInWhileLoop: isInWhileLoop,
361 - isLargeNode: isLargeNode,
362 - isVariableIdentifier: isVariableIdentifier,
363 - isFunctionIdentifier: isFunctionIdentifier,
364 - nearbyRandomNumber: nearbyRandomNumber,
365 - randomArguments: randomArguments,
366 - randomInterestingNonNumber: randomInterestingNonNumber,
367 - randomInterestingNumber: randomInterestingNumber,
368 - randomObject: randomObject,
369 - randomProperty: randomProperty,
370 - randomSeed: randomSeed,
371 - randomValue: randomValue,
372 - getOriginalPath: getOriginalPath,
373 - setOriginalPath: setOriginalPath,
374 - getSourceLoc: getSourceLoc,
375 - setSourceLoc: setSourceLoc,
376 -}
compiler/packages/js-fuzzer/mutators/crossover_mutator.js deleted
-85
@@ -1,85 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Expression mutator.
7 - */
8 -
9 -'use strict';
10 -
11 -const babelTemplate = require('@babel/template').default;
12 -
13 -const common = require('./common.js');
14 -const random = require('../random.js');
15 -const mutator = require('./mutator.js');
16 -const sourceHelpers = require('../source_helpers.js');
17 -
18 -class CrossOverMutator extends mutator.Mutator {
19 - constructor(settings, db) {
20 - super();
21 - this.settings = settings;
22 - this.db = db;
23 - }
24 -
25 - get visitor() {
26 - const thisMutator = this;
27 -
28 - return [{
29 - ExpressionStatement(path) {
30 - if (!random.choose(thisMutator.settings.MUTATE_CROSSOVER_INSERT)) {
31 - return;
32 - }
33 -
34 - const canHaveSuper = Boolean(path.findParent(x => x.isClassMethod()));
35 - const randomExpression = thisMutator.db.getRandomStatement(
36 - {canHaveSuper: canHaveSuper});
37 -
38 - // Insert the statement.
39 - let toInsert = babelTemplate(
40 - randomExpression.source,
41 - sourceHelpers.BABYLON_REPLACE_VAR_OPTIONS);
42 - const dependencies = {};
43 -
44 - if (randomExpression.dependencies) {
45 - const variables = common.availableVariables(path);
46 - if (!variables.length) {
47 - return;
48 - }
49 - for (const dependency of randomExpression.dependencies) {
50 - dependencies[dependency] = random.single(variables);
51 - }
52 - }
53 -
54 - try {
55 - toInsert = toInsert(dependencies);
56 - } catch (e) {
57 - if (thisMutator.settings.testing) {
58 - // Fail early in tests.
59 - throw e;
60 - }
61 - console.log('ERROR: Failed to parse:', randomExpression.source);
62 - console.log(e);
63 - return;
64 - }
65 -
66 - thisMutator.annotate(
67 - toInsert,
68 - 'Crossover from ' + randomExpression.originalPath);
69 -
70 - if (random.choose(0.5)) {
71 - thisMutator.insertBeforeSkip(path, toInsert);
72 - } else {
73 - thisMutator.insertAfterSkip(path, toInsert);
74 - }
75 -
76 - path.skip();
77 - },
78 - }, {
79 - }];
80 - }
81 -}
82 -
83 -module.exports = {
84 - CrossOverMutator: CrossOverMutator,
85 -};
compiler/packages/js-fuzzer/mutators/differential_fuzz_mutator.js deleted
-225
@@ -1,225 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Mutator for differential fuzzing.
7 - */
8 -
9 -'use strict';
10 -
11 -const babelTemplate = require('@babel/template').default;
12 -const babelTypes = require('@babel/types');
13 -
14 -const common = require('./common.js');
15 -const mutator = require('./mutator.js');
16 -const random = require('../random.js');
17 -
18 -// Templates for various statements.
19 -const incCaught = babelTemplate('__caught++;');
20 -const printValue = babelTemplate('print(VALUE);');
21 -const printCaught = babelTemplate('print("Caught: " + __caught);');
22 -const printHash = babelTemplate('print("Hash: " + __hash);');
23 -const prettyPrint = babelTemplate('__prettyPrint(ID);');
24 -const prettyPrintExtra = babelTemplate('__prettyPrintExtra(ID);');
25 -
26 -// This section prefix is expected by v8_foozzie.py. Existing prefixes
27 -// (e.g. from CrashTests) are cleaned up with CLEANED_PREFIX.
28 -const SECTION_PREFIX = 'v8-foozzie source: ';
29 -const CLEANED_PREFIX = 'v***************e: ';
30 -
31 -/**
32 - * Babel statement for calling deep printing from the fuzz library.
33 - */
34 -function prettyPrintStatement(variable) {
35 - return prettyPrint({ ID: babelTypes.cloneDeep(variable) });
36 -}
37 -
38 -/**
39 - * As above, but using the "extra" variant, which will reduce printing
40 - * after too many calls to prevent I/O flooding.
41 - */
42 -function prettyPrintExtraStatement(variable) {
43 - return prettyPrintExtra({ ID: babelTypes.cloneDeep(variable) });
44 -}
45 -
46 -/**
47 - * Mutator for suppressing known and/or unfixable issues.
48 - */
49 -class DifferentialFuzzSuppressions extends mutator.Mutator {
50 - get visitor() {
51 - let thisMutator = this;
52 -
53 - return {
54 - // Clean up strings containing the magic section prefix. Those can come
55 - // e.g. from CrashTests and would confuse the deduplication in
56 - // v8_foozzie.py.
57 - StringLiteral(path) {
58 - if (path.node.value.startsWith(SECTION_PREFIX)) {
59 - const postfix = path.node.value.substring(SECTION_PREFIX.length);
60 - path.node.value = CLEANED_PREFIX + postfix;
61 - thisMutator.annotate(path.node, 'Replaced magic string');
62 - }
63 - },
64 - // Known precision differences: https://crbug.com/1063568
65 - BinaryExpression(path) {
66 - if (path.node.operator == '**') {
67 - path.node.operator = '+';
68 - thisMutator.annotate(path.node, 'Replaced **');
69 - }
70 - },
71 - // Unsupported language feature: https://crbug.com/1020573
72 - MemberExpression(path) {
73 - if (path.node.property.name == "arguments") {
74 - let replacement = common.randomVariable(path);
75 - if (!replacement) {
76 - replacement = babelTypes.thisExpression();
77 - }
78 - thisMutator.annotate(replacement, 'Replaced .arguments');
79 - thisMutator.replaceWithSkip(path, replacement);
80 - }
81 - },
82 - };
83 - }
84 -}
85 -
86 -/**
87 - * Mutator for tracking original input files and for extra printing.
88 - */
89 -class DifferentialFuzzMutator extends mutator.Mutator {
90 - constructor(settings) {
91 - super();
92 - this.settings = settings;
93 - }
94 -
95 - /**
96 - * Looks for the dummy node that marks the beginning of an input file
97 - * from the corpus.
98 - */
99 - isSectionStart(path) {
100 - return !!common.getOriginalPath(path.node);
101 - }
102 -
103 - /**
104 - * Create print statements for printing the magic section prefix that's
105 - * expected by v8_foozzie.py to differentiate different source files.
106 - */
107 - getSectionHeader(path) {
108 - const orig = common.getOriginalPath(path.node);
109 - return printValue({
110 - VALUE: babelTypes.stringLiteral(SECTION_PREFIX + orig),
111 - });
112 - }
113 -
114 - /**
115 - * Create statements for extra printing at the end of a section. We print
116 - * the number of caught exceptions, a generic hash of all observed values
117 - * and the contents of all variables in scope.
118 - */
119 - getSectionFooter(path) {
120 - const variables = common.availableVariables(path);
121 - const statements = variables.map(prettyPrintStatement);
122 - statements.unshift(printCaught());
123 - statements.unshift(printHash());
124 - const statement = babelTypes.tryStatement(
125 - babelTypes.blockStatement(statements),
126 - babelTypes.catchClause(
127 - babelTypes.identifier('e'),
128 - babelTypes.blockStatement([])));
129 - this.annotate(statement, 'Print variables and exceptions from section');
130 - return statement;
131 - }
132 -
133 - /**
134 - * Helper for printing the contents of several variables.
135 - */
136 - printVariables(path, nodes) {
137 - const statements = [];
138 - for (const node of nodes) {
139 - if (!babelTypes.isIdentifier(node) ||
140 - !common.isVariableIdentifier(node.name))
141 - continue;
142 - statements.push(prettyPrintExtraStatement(node));
143 - }
144 - if (statements.length) {
145 - this.annotate(statements[0], 'Extra variable printing');
146 - this.insertAfterSkip(path, statements);
147 - }
148 - }
149 -
150 - get visitor() {
151 - const thisMutator = this;
152 - const settings = this.settings;
153 -
154 - return {
155 - // Replace existing normal print statements with deep printing.
156 - CallExpression(path) {
157 - if (babelTypes.isIdentifier(path.node.callee) &&
158 - path.node.callee.name == 'print') {
159 - path.node.callee = babelTypes.identifier('__prettyPrintExtra');
160 - thisMutator.annotate(path.node, 'Pretty printing');
161 - }
162 - },
163 - // Either print or track caught exceptions, guarded by a probability.
164 - CatchClause(path) {
165 - const probability = random.random();
166 - if (probability < settings.DIFF_FUZZ_EXTRA_PRINT &&
167 - path.node.param &&
168 - babelTypes.isIdentifier(path.node.param)) {
169 - const statement = prettyPrintExtraStatement(path.node.param);
170 - path.node.body.body.unshift(statement);
171 - } else if (probability < settings.DIFF_FUZZ_TRACK_CAUGHT) {
172 - path.node.body.body.unshift(incCaught());
173 - }
174 - },
175 - // Insert section headers and footers between the contents of two
176 - // original source files. We detect the dummy no-op nodes that were
177 - // previously tagged with the original path of the file.
178 - Noop(path) {
179 - if (!thisMutator.isSectionStart(path)) {
180 - return;
181 - }
182 - const header = thisMutator.getSectionHeader(path);
183 - const footer = thisMutator.getSectionFooter(path);
184 - thisMutator.insertBeforeSkip(path, footer);
185 - thisMutator.insertBeforeSkip(path, header);
186 - },
187 - // Additionally we print one footer in the end.
188 - Program: {
189 - exit(path) {
190 - const footer = thisMutator.getSectionFooter(path);
191 - path.node.body.push(footer);
192 - },
193 - },
194 - // Print contents of variables after assignments, guarded by a
195 - // probability.
196 - ExpressionStatement(path) {
197 - if (!babelTypes.isAssignmentExpression(path.node.expression) ||
198 - !random.choose(settings.DIFF_FUZZ_EXTRA_PRINT)) {
199 - return;
200 - }
201 - const left = path.node.expression.left;
202 - if (babelTypes.isMemberExpression(left)) {
203 - thisMutator.printVariables(path, [left.object]);
204 - } else {
205 - thisMutator.printVariables(path, [left]);
206 - }
207 - },
208 - // Print contents of variables after declaration, guarded by a
209 - // probability.
210 - VariableDeclaration(path) {
211 - if (babelTypes.isLoop(path.parent) ||
212 - !random.choose(settings.DIFF_FUZZ_EXTRA_PRINT)) {
213 - return;
214 - }
215 - const identifiers = path.node.declarations.map(decl => decl.id);
216 - thisMutator.printVariables(path, identifiers);
217 - },
218 - };
219 - }
220 -}
221 -
222 -module.exports = {
223 - DifferentialFuzzMutator: DifferentialFuzzMutator,
224 - DifferentialFuzzSuppressions: DifferentialFuzzSuppressions,
225 -};
compiler/packages/js-fuzzer/mutators/expression_mutator.js deleted
-63
@@ -1,63 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Expression mutator.
7 - */
8 -
9 -'use strict';
10 -
11 -const babelTypes = require('@babel/types');
12 -
13 -const random = require('../random.js');
14 -const mutator = require('./mutator.js');
15 -
16 -class ExpressionMutator extends mutator.Mutator {
17 - constructor(settings) {
18 - super();
19 - this.settings = settings;
20 - }
21 -
22 - get visitor() {
23 - const thisMutator = this;
24 -
25 - return {
26 - ExpressionStatement(path) {
27 - if (!random.choose(thisMutator.settings.MUTATE_EXPRESSIONS)) {
28 - return;
29 - }
30 -
31 - const probability = random.random();
32 -
33 - if (probability < 0.7) {
34 - const repeated = babelTypes.cloneDeep(path.node);
35 - thisMutator.annotate(repeated, 'Repeated');
36 - thisMutator.insertBeforeSkip(path, repeated);
37 - } else if (path.key > 0) {
38 - // Get a random previous sibling.
39 - const prev = path.getSibling(random.randInt(0, path.key - 1));
40 - if (!prev || !prev.node) {
41 - return;
42 - }
43 - // Either select a previous or the current node to clone.
44 - const [selected, destination] = random.shuffle([prev, path]);
45 - if (selected.isDeclaration()) {
46 - return;
47 - }
48 - const cloned = babelTypes.cloneDeep(selected.node);
49 - thisMutator.annotate(cloned, 'Cloned sibling');
50 - if (random.choose(0.5)) {
51 - thisMutator.insertBeforeSkip(destination, cloned);
52 - } else {
53 - thisMutator.insertAfterSkip(destination, cloned);
54 - }
55 - }
56 - },
57 - };
58 - }
59 -}
60 -
61 -module.exports = {
62 - ExpressionMutator: ExpressionMutator,
63 -};
compiler/packages/js-fuzzer/mutators/function_call_mutator.js deleted
-149
@@ -1,149 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Function calls mutator.
7 - */
8 -
9 -'use strict';
10 -
11 -const babelTemplate = require('@babel/template').default;
12 -const babelTypes = require('@babel/types');
13 -
14 -const common = require('./common.js');
15 -const random = require('../random.js');
16 -const mutator = require('./mutator.js');
17 -
18 -function _liftExpressionsToStatements(path, nodes) {
19 - // If the node we're replacing is an expression in an expression statement,
20 - // lift the replacement nodes into statements too.
21 - if (!babelTypes.isExpressionStatement(path.parent)) {
22 - return nodes;
23 - }
24 -
25 - return nodes.map(n => babelTypes.expressionStatement(n));
26 -}
27 -
28 -class FunctionCallMutator extends mutator.Mutator {
29 - constructor(settings) {
30 - super();
31 - this.settings = settings;
32 - }
33 -
34 - get visitor() {
35 - const thisMutator = this;
36 -
37 - return {
38 - CallExpression(path) {
39 - if (!babelTypes.isIdentifier(path.node.callee)) {
40 - return;
41 - }
42 -
43 - if (!common.isFunctionIdentifier(path.node.callee.name)) {
44 - return;
45 - }
46 -
47 - if (!random.choose(thisMutator.settings.MUTATE_FUNCTION_CALLS)) {
48 - return;
49 - }
50 -
51 - const probability = random.random();
52 - if (probability < 0.3) {
53 - const randFunc = common.randomFunction(path);
54 - if (randFunc) {
55 - thisMutator.annotate(
56 - path.node,
57 - `Replaced ${path.node.callee.name} with ${randFunc.name}`);
58 -
59 - path.node.callee = randFunc;
60 - }
61 - } else if (probability < 0.7 && thisMutator.settings.engine == 'V8') {
62 - const prepareTemplate = babelTemplate(
63 - '__V8BuiltinPrepareFunctionForOptimization(ID)');
64 - const optimizationMode = random.choose(0.7) ? 'Function' : 'Maglev';
65 - const optimizeTemplate = babelTemplate(
66 - `__V8BuiltinOptimize${optimizationMode}OnNextCall(ID)`);
67 -
68 - const nodes = [
69 - prepareTemplate({
70 - ID: babelTypes.cloneDeep(path.node.callee),
71 - }).expression,
72 - babelTypes.cloneDeep(path.node),
73 - babelTypes.cloneDeep(path.node),
74 - optimizeTemplate({
75 - ID: babelTypes.cloneDeep(path.node.callee),
76 - }).expression,
77 - ];
78 -
79 - thisMutator.annotate(
80 - path.node,
81 - `Optimizing ${path.node.callee.name}`);
82 - if (!babelTypes.isExpressionStatement(path.parent)) {
83 - nodes.push(path.node);
84 - thisMutator.replaceWithSkip(
85 - path, babelTypes.sequenceExpression(nodes));
86 - } else {
87 - thisMutator.insertBeforeSkip(
88 - path, _liftExpressionsToStatements(path, nodes));
89 - }
90 - } else if (probability < 0.8 && thisMutator.settings.engine == 'V8') {
91 - const template = babelTemplate(
92 - '__V8BuiltinCompileBaseline(ID)');
93 -
94 - const nodes = [
95 - template({
96 - ID: babelTypes.cloneDeep(path.node.callee),
97 - }).expression,
98 - ];
99 -
100 - thisMutator.annotate(
101 - nodes[0],
102 - `Compiling baseline ${path.node.callee.name}`);
103 -
104 - if (!babelTypes.isExpressionStatement(path.parent)) {
105 - nodes.push(path.node);
106 - thisMutator.replaceWithSkip(
107 - path, babelTypes.sequenceExpression(nodes));
108 - } else {
109 - thisMutator.insertBeforeSkip(
110 - path, _liftExpressionsToStatements(path, nodes));
111 - }
112 - } else if (probability < 0.9 &&
113 - thisMutator.settings.engine == 'V8') {
114 - const template = babelTemplate(
115 - '__V8BuiltinDeoptimizeFunction(ID)');
116 - const insert = _liftExpressionsToStatements(path, [
117 - template({
118 - ID: babelTypes.cloneDeep(path.node.callee),
119 - }).expression,
120 - ]);
121 -
122 - thisMutator.annotate(
123 - path.node,
124 - `Deoptimizing ${path.node.callee.name}`);
125 -
126 - thisMutator.insertAfterSkip(path, insert);
127 - } else {
128 - const template = babelTemplate(
129 - 'runNearStackLimit(() => { return CALL });');
130 - thisMutator.annotate(
131 - path.node,
132 - `Run to stack limit ${path.node.callee.name}`);
133 -
134 - thisMutator.replaceWithSkip(
135 - path,
136 - template({
137 - CALL: path.node,
138 - }).expression);
139 - }
140 -
141 - path.skip();
142 - },
143 - }
144 - }
145 -}
146 -
147 -module.exports = {
148 - FunctionCallMutator: FunctionCallMutator,
149 -};
compiler/packages/js-fuzzer/mutators/mutator.js deleted
-98
@@ -1,98 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Mutator
7 - */
8 -'use strict';
9 -
10 -const babelTraverse = require('@babel/traverse').default;
11 -const babelTypes = require('@babel/types');
12 -
13 -class Mutator {
14 - get visitor() {
15 - return null;
16 - }
17 -
18 - _traverse(ast, visitor) {
19 - let oldEnter = null;
20 - if (Object.prototype.hasOwnProperty.call(visitor, 'enter')) {
21 - oldEnter = visitor['enter'];
22 - }
23 -
24 - // Transparently skip nodes that are marked.
25 - visitor['enter'] = (path) => {
26 - if (this.shouldSkip(path.node)) {
27 - path.skip();
28 - return;
29 - }
30 -
31 - if (oldEnter) {
32 - oldEnter(path);
33 - }
34 - }
35 -
36 - babelTraverse(ast, visitor);
37 - }
38 -
39 - mutate(source) {
40 - if (Array.isArray(this.visitor)) {
41 - for (const visitor of this.visitor) {
42 - this._traverse(source.ast, visitor);
43 - }
44 - } else {
45 - this._traverse(source.ast, this.visitor);
46 - }
47 - }
48 -
49 - get _skipPropertyName() {
50 - return '__skip' + this.constructor.name;
51 - }
52 -
53 - shouldSkip(node) {
54 - return Boolean(node[this._skipPropertyName]);
55 - }
56 -
57 - skipMutations(node) {
58 - // Mark a node to skip further mutations of the same kind.
59 - if (Array.isArray(node)) {
60 - for (const item of node) {
61 - item[this._skipPropertyName] = true;
62 - }
63 - } else {
64 - node[this._skipPropertyName] = true;
65 - }
66 -
67 - return node;
68 - }
69 -
70 - insertBeforeSkip(path, node) {
71 - this.skipMutations(node);
72 - path.insertBefore(node);
73 - }
74 -
75 - insertAfterSkip(path, node) {
76 - this.skipMutations(node);
77 - path.insertAfter(node);
78 - }
79 -
80 - replaceWithSkip(path, node) {
81 - this.skipMutations(node);
82 - path.replaceWith(node);
83 - }
84 -
85 - replaceWithMultipleSkip(path, node) {
86 - this.skipMutations(node);
87 - path.replaceWithMultiple(node);
88 - }
89 -
90 - annotate(node, message) {
91 - babelTypes.addComment(
92 - node, 'leading', ` ${this.constructor.name}: ${message} `);
93 - }
94 -}
95 -
96 -module.exports = {
97 - Mutator: Mutator,
98 -}
compiler/packages/js-fuzzer/mutators/normalizer.js deleted
-89
@@ -1,89 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Normalizer.
7 - * This renames variables so that we don't have collisions when combining
8 - * different files. It also simplifies other logic when e.g. determining the
9 - * type of an identifier.
10 - */
11 -'use strict';
12 -
13 -const babelTypes = require('@babel/types');
14 -
15 -const mutator = require('./mutator.js');
16 -
17 -class NormalizerContext {
18 - constructor() {
19 - this.funcIndex = 0;
20 - this.varIndex = 0;
21 - this.classIndex = 0;
22 - }
23 -}
24 -
25 -class IdentifierNormalizer extends mutator.Mutator {
26 - constructor() {
27 - super();
28 - this.context = new NormalizerContext();
29 - }
30 -
31 - get visitor() {
32 - const context = this.context;
33 - const renamed = new WeakSet();
34 - const globalMappings = new Map();
35 -
36 - return [{
37 - Scope(path) {
38 - for (const [name, binding] of Object.entries(path.scope.bindings)) {
39 - if (renamed.has(binding.identifier)) {
40 - continue;
41 - }
42 -
43 - renamed.add(binding.identifier);
44 -
45 - if (babelTypes.isClassDeclaration(binding.path.node) ||
46 - babelTypes.isClassExpression(binding.path.node)) {
47 - path.scope.rename(name, '__c_' + context.classIndex++);
48 - } else if (babelTypes.isFunctionDeclaration(binding.path.node) ||
49 - babelTypes.isFunctionExpression(binding.path.node)) {
50 - path.scope.rename(name, '__f_' + context.funcIndex++);
51 - } else {
52 - path.scope.rename(name, '__v_' + context.varIndex++);
53 - }
54 - }
55 - },
56 -
57 - AssignmentExpression(path) {
58 - // Find assignments for which we have no binding in the scope. We assume
59 - // that these are globals which are local to our script (which weren't
60 - // declared with var/let/const etc).
61 - const ids = path.getBindingIdentifiers();
62 - for (const name in ids) {
63 - if (!path.scope.getBinding(name)) {
64 - globalMappings.set(name, '__v_' + context.varIndex++);
65 - }
66 - }
67 - }
68 - }, {
69 - // Second pass to rename globals that weren't declared with
70 - // var/let/const etc.
71 - Identifier(path) {
72 - if (!globalMappings.has(path.node.name)) {
73 - return;
74 - }
75 -
76 - if (path.scope.getBinding(path.node.name)) {
77 - // Don't rename if there is a binding that hides the global.
78 - return;
79 - }
80 -
81 - path.node.name = globalMappings.get(path.node.name);
82 - }
83 - }];
84 - }
85 -}
86 -
87 -module.exports = {
88 - IdentifierNormalizer: IdentifierNormalizer,
89 -};
compiler/packages/js-fuzzer/mutators/number_mutator.js deleted
-105
@@ -1,105 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Numbers mutator.
7 - */
8 -
9 -'use strict';
10 -
11 -const babelTypes = require('@babel/types');
12 -
13 -const common = require('./common.js');
14 -const random = require('../random.js');
15 -const mutator = require('./mutator.js');
16 -
17 -const MIN_SAFE_INTEGER = -9007199254740991;
18 -const MAX_SAFE_INTEGER = 9007199254740991;
19 -
20 -
21 -function isObjectKey(path) {
22 - return (path.parent &&
23 - babelTypes.isObjectMember(path.parent) &&
24 - path.parent.key === path.node);
25 -}
26 -
27 -function createRandomNumber(value) {
28 - // TODO(ochang): Maybe replace with variable.
29 - const probability = random.random();
30 - if (probability < 0.01) {
31 - return babelTypes.numericLiteral(
32 - random.randInt(MIN_SAFE_INTEGER, MAX_SAFE_INTEGER));
33 - } else if (probability < 0.06) {
34 - return common.randomInterestingNumber();
35 - } else {
36 - return common.nearbyRandomNumber(value);
37 - }
38 -}
39 -
40 -class NumberMutator extends mutator.Mutator {
41 - constructor(settings) {
42 - super();
43 - this.settings = settings;
44 - }
45 -
46 - ignore(path) {
47 - return !random.choose(this.settings.MUTATE_NUMBERS) ||
48 - common.isInForLoopCondition(path) ||
49 - common.isInWhileLoop(path);
50 - }
51 -
52 - randomReplace(path, value, forcePositive=false) {
53 - const randomNumber = createRandomNumber(value);
54 -
55 - if (forcePositive) {
56 - randomNumber.value = Math.abs(randomNumber.value);
57 - }
58 -
59 - this.annotate(
60 - path.node,
61 - `Replaced ${value} with ${randomNumber.value}`);
62 -
63 - this.replaceWithSkip(path, randomNumber);
64 - }
65 -
66 - get visitor() {
67 - const thisMutator = this;
68 -
69 - return {
70 - NumericLiteral(path) {
71 - if (thisMutator.ignore(path)) {
72 - return;
73 - }
74 -
75 - // We handle negative unary expressions separately to replace the whole
76 - // expression below. E.g. -5 is UnaryExpression(-, NumericLiteral(5)).
77 - if (path.parent && babelTypes.isUnaryExpression(path.parent) &&
78 - path.parent.operator === '-') {
79 - return;
80 - }
81 -
82 - // Enfore positive numbers if the literal is the key of an object
83 - // property or method. Negative keys cause syntax errors.
84 - const forcePositive = isObjectKey(path);
85 -
86 - thisMutator.randomReplace(path, path.node.value, forcePositive);
87 - },
88 - UnaryExpression(path) {
89 - if (thisMutator.ignore(path)) {
90 - return;
91 - }
92 -
93 - // Handle the case we ignore above.
94 - if (path.node.operator === '-' &&
95 - babelTypes.isNumericLiteral(path.node.argument)) {
96 - thisMutator.randomReplace(path, -path.node.argument.value);
97 - }
98 - }
99 - };
100 - }
101 -}
102 -
103 -module.exports = {
104 - NumberMutator: NumberMutator,
105 -};
compiler/packages/js-fuzzer/mutators/object_mutator.js deleted
-135
@@ -1,135 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Mutator for object expressions.
7 - */
8 -
9 -'use strict';
10 -
11 -const babelTypes = require('@babel/types');
12 -
13 -const common = require('./common.js');
14 -const mutator = require('./mutator.js');
15 -const random = require('../random.js');
16 -
17 -const MAX_PROPERTIES = 50;
18 -
19 -/**
20 - * Turn the key of an object property into a string literal.
21 - */
22 -function keyToString(key) {
23 - if (babelTypes.isNumericLiteral(key)) {
24 - return babelTypes.stringLiteral(key.value.toString());
25 - }
26 - if (babelTypes.isIdentifier(key)) {
27 - return babelTypes.stringLiteral(key.name);
28 - }
29 - // Already a string literal.
30 - return key;
31 -}
32 -
33 -class ObjectMutator extends mutator.Mutator {
34 - constructor(settings) {
35 - super();
36 - this.settings = settings;
37 - }
38 -
39 - get visitor() {
40 - const thisMutator = this;
41 -
42 - return {
43 - ObjectExpression(path) {
44 - const properties = path.node.properties;
45 - if (!random.choose(thisMutator.settings.MUTATE_OBJECTS) ||
46 - properties.length > MAX_PROPERTIES) {
47 - return;
48 - }
49 -
50 - // Use the indices of object properties for mutations. We ignore
51 - // getters and setters.
52 - const propertyIndicies = [];
53 - for (const [index, property] of properties.entries()) {
54 - if (babelTypes.isObjectProperty(property)) {
55 - propertyIndicies.push(index);
56 - }
57 - }
58 -
59 - // The mutations below require at least one property.
60 - if (!propertyIndicies.length) {
61 - return;
62 - }
63 -
64 - // Annotate object expression with the action taken.
65 - function annotate(message) {
66 - thisMutator.annotate(path.node, message);
67 - }
68 -
69 - function getOneRandomProperty() {
70 - return properties[random.single(propertyIndicies)];
71 - }
72 -
73 - function getTwoRandomProperties() {
74 - const [a, b] = random.sample(propertyIndicies, 2);
75 - return [properties[a], properties[b]];
76 - }
77 -
78 - function swapPropertyValues() {
79 - if (propertyIndicies.length > 1) {
80 - annotate('Swap properties');
81 - const [a, b] = getTwoRandomProperties();
82 - [a.value, b.value] = [b.value, a.value];
83 - }
84 - }
85 -
86 - function duplicatePropertyValue() {
87 - if (propertyIndicies.length > 1) {
88 - const [a, b] = random.shuffle(getTwoRandomProperties());
89 - if (common.isLargeNode(b.value)) {
90 - return;
91 - }
92 - annotate('Duplicate a property value');
93 - a.value = babelTypes.cloneDeep(b.value);
94 - }
95 - }
96 -
97 - function insertRandomValue() {
98 - annotate('Insert a random value');
99 - const property = getOneRandomProperty();
100 - property.value = common.randomValue(path);
101 - }
102 -
103 - function stringifyKey() {
104 - annotate('Stringify a property key');
105 - const property = getOneRandomProperty();
106 - property.key = keyToString(property.key);
107 - }
108 -
109 - function removeProperty() {
110 - annotate('Remove a property');
111 - properties.splice(random.single(propertyIndicies), 1);
112 - }
113 -
114 - // Mutation options. Repeated mutations have a higher probability.
115 - const mutations = [
116 - swapPropertyValues,
117 - swapPropertyValues,
118 - duplicatePropertyValue,
119 - duplicatePropertyValue,
120 - insertRandomValue,
121 - insertRandomValue,
122 - removeProperty,
123 - stringifyKey,
124 - ];
125 -
126 - // Perform mutation.
127 - random.single(mutations)();
128 - },
129 - }
130 - }
131 -}
132 -
133 -module.exports = {
134 - ObjectMutator: ObjectMutator,
135 -};
compiler/packages/js-fuzzer/mutators/try_catch.js deleted
-175
@@ -1,175 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Try catch wrapper.
7 - */
8 -
9 -const babelTypes = require('@babel/types');
10 -
11 -const common = require('./common.js');
12 -const mutator = require('./mutator.js');
13 -const random = require('../random.js');
14 -
15 -// Default target probability for skipping try-catch completely.
16 -const DEFAULT_SKIP_PROB = 0.2;
17 -
18 -// Default target probability to wrap only on toplevel, i.e. to not nest
19 -// try-catch.
20 -const DEFAULT_TOPLEVEL_PROB = 0.3;
21 -
22 -// Probability to deviate from defaults and use extreme cases.
23 -const IGNORE_DEFAULT_PROB = 0.05;
24 -
25 -// Member expressions to be wrapped. List of (object, property) identifier
26 -// tuples.
27 -const WRAPPED_MEMBER_EXPRESSIONS = [
28 - ['WebAssembly', 'Module'],
29 - ['WebAssembly', 'Instantiate'],
30 -];
31 -
32 -function wrapTryCatch(node) {
33 - return babelTypes.tryStatement(
34 - babelTypes.blockStatement([node]),
35 - babelTypes.catchClause(
36 - babelTypes.identifier('e'),
37 - babelTypes.blockStatement([])));
38 -}
39 -
40 -function wrapTryCatchInFunction(node) {
41 - const ret = wrapTryCatch(babelTypes.returnStatement(node));
42 - const anonymousFun = babelTypes.functionExpression(
43 - null, [], babelTypes.blockStatement([ret]));
44 - return babelTypes.callExpression(anonymousFun, []);
45 -}
46 -
47 -// Wrap particular member expressions after `new` that are known to appear
48 -// in initializer lists of `let` and `const`.
49 -function replaceNewExpression(path) {
50 - const callee = path.node.callee;
51 - if (!babelTypes.isMemberExpression(callee) ||
52 - !babelTypes.isIdentifier(callee.object) ||
53 - !babelTypes.isIdentifier(callee.property)) {
54 - return;
55 - }
56 - if (WRAPPED_MEMBER_EXPRESSIONS.some(
57 - ([object, property]) => callee.object.name === object &&
58 - callee.property.name === property)) {
59 - path.replaceWith(wrapTryCatchInFunction(path.node));
60 - path.skip();
61 - }
62 -}
63 -
64 -function replaceAndSkip(path) {
65 - if (!babelTypes.isLabeledStatement(path.parent) ||
66 - !babelTypes.isLoop(path.node)) {
67 - // Don't wrap loops with labels as it makes continue
68 - // statements syntactically invalid. We wrap the label
69 - // instead below.
70 - path.replaceWith(wrapTryCatch(path.node));
71 - }
72 - // Prevent infinite looping.
73 - path.skip();
74 -}
75 -
76 -class AddTryCatchMutator extends mutator.Mutator {
77 - callWithProb(path, fun) {
78 - const probability = random.random();
79 - if (probability < this.skipProb * this.loc) {
80 - // Entirely skip try-catch wrapper.
81 - path.skip();
82 - } else if (probability < (this.skipProb + this.toplevelProb) * this.loc) {
83 - // Only wrap on top-level.
84 - fun(path);
85 - }
86 - }
87 -
88 - get visitor() {
89 - const thisMutator = this;
90 - const accessStatement = {
91 - enter(path) {
92 - thisMutator.callWithProb(path, replaceAndSkip);
93 - },
94 - exit(path) {
95 - // Apply nested wrapping (is only executed if not skipped above).
96 - replaceAndSkip(path);
97 - }
98 - };
99 - return {
100 - Program: {
101 - enter(path) {
102 - // Track original source location fraction in [0, 1).
103 - thisMutator.loc = 0;
104 - // Target probability for skipping try-catch.
105 - thisMutator.skipProb = DEFAULT_SKIP_PROB;
106 - // Target probability for not nesting try-catch.
107 - thisMutator.toplevelProb = DEFAULT_TOPLEVEL_PROB;
108 - // Maybe deviate from target probability for the entire test.
109 - if (random.choose(IGNORE_DEFAULT_PROB)) {
110 - thisMutator.skipProb = random.uniform(0, 1);
111 - thisMutator.toplevelProb = random.uniform(0, 1);
112 - thisMutator.annotate(
113 - path.node,
114 - 'Target skip probability ' + thisMutator.skipProb +
115 - ' and toplevel probability ' + thisMutator.toplevelProb);
116 - }
117 - }
118 - },
119 - Noop: {
120 - enter(path) {
121 - if (common.getSourceLoc(path.node)) {
122 - thisMutator.loc = common.getSourceLoc(path.node);
123 - }
124 - },
125 - },
126 - ExpressionStatement: accessStatement,
127 - IfStatement: accessStatement,
128 - LabeledStatement: {
129 - enter(path) {
130 - // Apply an extra try-catch around the label of a loop, since we
131 - // ignore the loop itself if it has a label.
132 - if (babelTypes.isLoop(path.node.body)) {
133 - thisMutator.callWithProb(path, replaceAndSkip);
134 - }
135 - },
136 - exit(path) {
137 - // Apply nested wrapping (is only executed if not skipped above).
138 - if (babelTypes.isLoop(path.node.body)) {
139 - replaceAndSkip(path);
140 - }
141 - },
142 - },
143 - // This covers {While|DoWhile|ForIn|ForOf|For}Statement.
144 - Loop: accessStatement,
145 - NewExpression: {
146 - enter(path) {
147 - thisMutator.callWithProb(path, replaceNewExpression);
148 - },
149 - exit(path) {
150 - // Apply nested wrapping (is only executed if not skipped above).
151 - replaceNewExpression(path);
152 - }
153 - },
154 - SwitchStatement: accessStatement,
155 - VariableDeclaration: {
156 - enter(path) {
157 - if (path.node.kind !== 'var' || babelTypes.isLoop(path.parent))
158 - return;
159 - thisMutator.callWithProb(path, replaceAndSkip);
160 - },
161 - exit(path) {
162 - if (path.node.kind !== 'var' || babelTypes.isLoop(path.parent))
163 - return;
164 - // Apply nested wrapping (is only executed if not skipped above).
165 - replaceAndSkip(path);
166 - }
167 - },
168 - WithStatement: accessStatement,
169 - };
170 - }
171 -}
172 -
173 -module.exports = {
174 - AddTryCatchMutator: AddTryCatchMutator,
175 -}
compiler/packages/js-fuzzer/mutators/variable_mutator.js deleted
-73
@@ -1,73 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Variables mutator.
7 - */
8 -
9 -'use strict';
10 -
11 -const babelTypes = require('@babel/types');
12 -
13 -const common = require('./common.js');
14 -const random = require('../random.js');
15 -const mutator = require('./mutator.js');
16 -
17 -function _isInFunctionParam(path) {
18 - const child = path.find(p => p.parent && babelTypes.isFunction(p.parent));
19 - return child && child.parentKey === 'params';
20 -}
21 -
22 -class VariableMutator extends mutator.Mutator {
23 - constructor(settings) {
24 - super();
25 - this.settings = settings;
26 - }
27 -
28 - get visitor() {
29 - const thisMutator = this;
30 -
31 - return {
32 - Identifier(path) {
33 - if (!random.choose(thisMutator.settings.MUTATE_VARIABLES)) {
34 - return;
35 - }
36 -
37 - if (!common.isVariableIdentifier(path.node.name)) {
38 - return;
39 - }
40 -
41 - // Don't mutate variables that are being declared.
42 - if (babelTypes.isVariableDeclarator(path.parent)) {
43 - return;
44 - }
45 -
46 - // Don't mutate function params.
47 - if (_isInFunctionParam(path)) {
48 - return;
49 - }
50 -
51 - if (common.isInForLoopCondition(path) ||
52 - common.isInWhileLoop(path)) {
53 - return;
54 - }
55 -
56 - const randVar = common.randomVariable(path);
57 - if (!randVar) {
58 - return;
59 - }
60 -
61 - const newName = randVar.name;
62 - thisMutator.annotate(
63 - path.node,
64 - `Replaced ${path.node.name} with ${newName}`);
65 - path.node.name = newName;
66 - }
67 - };
68 - }
69 -}
70 -
71 -module.exports = {
72 - VariableMutator: VariableMutator,
73 -};
compiler/packages/js-fuzzer/mutators/variable_or_object_mutation.js deleted
-154
@@ -1,154 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Variables mutator.
7 - */
8 -
9 -'use strict';
10 -
11 -const babelTemplate = require('@babel/template').default;
12 -const babelTypes = require('@babel/types');
13 -
14 -const common = require('./common.js');
15 -const random = require('../random.js');
16 -const mutator = require('./mutator.js');
17 -
18 -const MAX_MUTATION_RECURSION_DEPTH = 5;
19 -
20 -class VariableOrObjectMutator extends mutator.Mutator {
21 - constructor(settings) {
22 - super();
23 - this.settings = settings;
24 - }
25 -
26 - _randomVariableOrObject(path) {
27 - const randomVar = common.randomVariable(path);
28 - if (random.choose(0.05) || !randomVar) {
29 - return common.randomObject();
30 - }
31 -
32 - return randomVar;
33 - }
34 -
35 - _randomVariableOrObjectMutations(path, recurseDepth=0) {
36 - if (recurseDepth >= MAX_MUTATION_RECURSION_DEPTH) {
37 - return new Array();
38 - }
39 -
40 - const probability = random.random();
41 -
42 - if (probability < 0.3) {
43 - const first = this._randomVariableOrObjectMutations(path, recurseDepth + 1);
44 - const second = this._randomVariableOrObjectMutations(
45 - path, recurseDepth + 1);
46 - return first.concat(second);
47 - }
48 -
49 - const randVarOrObject = this._randomVariableOrObject(path);
50 - const randProperty = common.randomProperty(randVarOrObject);
51 - let newRandVarOrObject = randVarOrObject;
52 - if (random.choose(0.2)) {
53 - newRandVarOrObject = this._randomVariableOrObject(path);
54 - }
55 -
56 - const mutations = new Array();
57 -
58 - if (probability < 0.4) {
59 - const template = babelTemplate(
60 - 'delete IDENTIFIER[PROPERTY], __callGC()')
61 - mutations.push(template({
62 - IDENTIFIER: randVarOrObject,
63 - PROPERTY: randProperty
64 - }));
65 - } else if (probability < 0.5) {
66 - const template = babelTemplate(
67 - 'IDENTIFIER[PROPERTY], __callGC()')
68 - mutations.push(template({
69 - IDENTIFIER: randVarOrObject,
70 - PROPERTY: randProperty
71 - }));
72 - } else if (probability < 0.6) {
73 - const template = babelTemplate(
74 - 'IDENTIFIER[PROPERTY] = RANDOM, __callGC()')
75 - mutations.push(template({
76 - IDENTIFIER: randVarOrObject,
77 - PROPERTY: randProperty,
78 - RANDOM: common.randomValue(path),
79 - }));
80 - } else if (probability < 0.7) {
81 - mutations.push(
82 - babelTypes.expressionStatement(
83 - common.callRandomFunction(path, randVarOrObject)));
84 - } else if (probability < 0.8) {
85 - const template = babelTemplate(
86 - 'VAR = IDENTIFIER, __callGC()')
87 - var randomVar = common.randomVariable(path);
88 - if (!randomVar) {
89 - return mutations;
90 - }
91 -
92 - mutations.push(template({
93 - VAR: randomVar,
94 - IDENTIFIER: randVarOrObject,
95 - }));
96 - } else if (probability < 0.9) {
97 - const template = babelTemplate(
98 - 'if (IDENTIFIER != null && typeof(IDENTIFIER) == "object") ' +
99 - 'Object.defineProperty(IDENTIFIER, PROPERTY, {value: VALUE})')
100 - mutations.push(template({
101 - IDENTIFIER: newRandVarOrObject,
102 - PROPERTY: randProperty,
103 - VALUE: common.randomValue(path),
104 - }));
105 - } else {
106 - const template = babelTemplate(
107 - 'if (IDENTIFIER != null && typeof(IDENTIFIER) == "object") ' +
108 - 'Object.defineProperty(IDENTIFIER, PROPERTY, {' +
109 - 'get: function() { GETTER_MUTATION ; return VALUE; },' +
110 - 'set: function(value) { SETTER_MUTATION; }' +
111 - '})');
112 - mutations.push(template({
113 - IDENTIFIER: newRandVarOrObject,
114 - PROPERTY: randProperty,
115 - GETTER_MUTATION: this._randomVariableOrObjectMutations(
116 - path, recurseDepth + 1),
117 - SETTER_MUTATION: this._randomVariableOrObjectMutations(
118 - path, recurseDepth + 1),
119 - VALUE: common.randomValue(path),
120 - }));
121 - }
122 -
123 - return mutations;
124 - }
125 -
126 -
127 - get visitor() {
128 - const settings = this.settings;
129 - const thisMutator = this;
130 -
131 - return {
132 - ExpressionStatement(path) {
133 - if (!random.choose(settings.ADD_VAR_OR_OBJ_MUTATIONS)) {
134 - return;
135 - }
136 -
137 - const mutations = thisMutator._randomVariableOrObjectMutations(path);
138 - thisMutator.annotate(mutations[0], 'Random mutation');
139 -
140 - if (random.choose(0.5)) {
141 - thisMutator.insertBeforeSkip(path, mutations);
142 - } else {
143 - thisMutator.insertAfterSkip(path, mutations);
144 - }
145 -
146 - path.skip();
147 - }
148 - };
149 - }
150 -}
151 -
152 -module.exports = {
153 - VariableOrObjectMutator: VariableOrObjectMutator,
154 -};
compiler/packages/js-fuzzer/package.json deleted
-34
@@ -1,34 +0,0 @@
1 -{
2 - "name": "js-fuzzer",
3 - "version": "1.0.0",
4 - "description": "",
5 - "main": "run.js",
6 - "scripts": {
7 - "test": "echo 'no test'",
8 - "build": "echo 'no build'"
9 - },
10 - "bin": "run.js",
11 - "author": "ochang@google.com",
12 - "license": "ISC",
13 - "dependencies": {
14 - "@babel/generator": "^7.1.3",
15 - "@babel/template": "^7.1.2",
16 - "@babel/traverse": "^7.1.4",
17 - "@babel/types": "^7.1.3",
18 - "@babel/parser": "^7.1.3",
19 - "commander": "^2.11.0",
20 - "globals": "^10.1.0",
21 - "tempfile": "^3.0.0",
22 - "tempy": "^0.5.0"
23 - },
24 - "devDependencies": {
25 - "eslint": "^6.8.0",
26 - "mocha": "^3.5.3",
27 - "pkg": "^4.3.4",
28 - "prettier": "2.8.8",
29 - "sinon": "^4.0.0"
30 - },
31 - "pkg": {
32 - "assets": "resources/**/*"
33 - }
34 -}
compiler/packages/js-fuzzer/package.sh deleted
-32
@@ -1,32 +0,0 @@
1 -#!/bin/bash
2 -# Copyright 2020 the V8 project authors. All rights reserved.
3 -# Use of this source code is governed by a BSD-style license that can be
4 -# found in the LICENSE file.
5 -
6 -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
7 -
8 -OS="linux"
9 -OS_LABEL="Linux"
10 -SUFFIX=""
11 -if [[ -n "$1" && $1 == "win" ]]; then
12 - OS="win"
13 - OS_LABEL="Windows"
14 - SUFFIX=".exe"
15 -elif [[ -n "$1" && $1 == "macos" ]]; then
16 - OS="macos"
17 - OS_LABEL="MacOS"
18 -fi
19 -
20 -echo "Building and packaging for $OS_LABEL..."
21 -(set -x; $DIR/node_modules/.bin/pkg -t node10-$OS-x64 $DIR)
22 -
23 -rm -rf $DIR/output > /dev/null 2>&1 || true
24 -rm $DIR/output.zip > /dev/null 2>&1 || true
25 -
26 -mkdir $DIR/output
27 -cd $DIR/output
28 -ln -s ../db db
29 -ln -s ../ochang_js_fuzzer$SUFFIX run$SUFFIX
30 -ln -s ../foozzie_launcher.py foozzie_launcher.py
31 -echo "Creating $DIR/output.zip"
32 -(set -x; zip -r $DIR/output.zip * > /dev/null)
compiler/packages/js-fuzzer/random.js deleted
-113
@@ -1,113 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Random helpers.
7 - */
8 -
9 -'use strict';
10 -
11 -const assert = require('assert');
12 -
13 -function randInt(min, max) {
14 - return Math.floor(Math.random() * (max - min + 1)) + min;
15 -}
16 -
17 -function choose(probability) {
18 - return Math.random() < probability;
19 -}
20 -
21 -function random() {
22 - return Math.random();
23 -}
24 -
25 -function uniform(min, max) {
26 - return Math.random() * (max - min) + min;
27 -}
28 -
29 -function sample(iterable, count) {
30 - const result = new Array(count);
31 - let index = 0;
32 -
33 - for (const item of iterable) {
34 - if (index < count) {
35 - result[index] = item;
36 - } else {
37 - const randIndex = randInt(0, index);
38 - if (randIndex < count) {
39 - result[randIndex] = item;
40 - }
41 - }
42 -
43 - index++;
44 - }
45 -
46 - if (index < count) {
47 - // Not enough items.
48 - result.length = index;
49 - }
50 -
51 - return result;
52 -}
53 -
54 -function swap(array, p1, p2) {
55 - [array[p1], array[p2]] = [array[p2], array[p1]];
56 -}
57 -
58 -/**
59 - * Returns "count" elements, randomly selected from "highProbArray" and
60 - * "lowProbArray". Elements from highProbArray have a "factor" times
61 - * higher chance to be chosen. As a side effect, this swaps the chosen
62 - * elements to the end of the respective input arrays. The complexity is
63 - * O(count).
64 - */
65 -function twoBucketSample(lowProbArray, highProbArray, factor, count) {
66 - // Track number of available elements for choosing.
67 - let low = lowProbArray.length;
68 - let high = highProbArray.length;
69 - assert(low + high >= count);
70 - const result = [];
71 - for (let i = 0; i < count; i++) {
72 - // Map a random number to the summarized indices of both arrays. Give
73 - // highProbArray elements a "factor" times higher probability.
74 - const p = random();
75 - const index = Math.floor(p * (high * factor + low));
76 - if (index < low) {
77 - // If the index is in the low part, draw the element and discard it.
78 - result.push(lowProbArray[index]);
79 - swap(lowProbArray, index, --low);
80 - } else {
81 - // Same as above but for a highProbArray element. The index is first
82 - // mapped back to the array's range.
83 - const highIndex = Math.floor((index - low) / factor);
84 - result.push(highProbArray[highIndex]);
85 - swap(highProbArray, highIndex, --high);
86 - }
87 - }
88 - return result;
89 -}
90 -
91 -function single(array) {
92 - return array[randInt(0, array.length - 1)];
93 -}
94 -
95 -function shuffle(array) {
96 - for (let i = 0; i < array.length - 1; i++) {
97 - const j = randInt(i, array.length - 1);
98 - swap(array, i, j);
99 - }
100 -
101 - return array;
102 -}
103 -
104 -module.exports = {
105 - choose: choose,
106 - randInt: randInt,
107 - random: random,
108 - sample: sample,
109 - shuffle: shuffle,
110 - single: single,
111 - twoBucketSample: twoBucketSample,
112 - uniform: uniform,
113 -}
compiler/packages/js-fuzzer/resources/differential_fuzz_chakra.js deleted
-17
@@ -1,17 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -
6 -// Adjust chakra behavior for differential fuzzing.
7 -
8 -this.WScript = new Proxy({}, {
9 - get(target, name) {
10 - switch (name) {
11 - case 'Echo':
12 - return __prettyPrintExtra;
13 - default:
14 - return {};
15 - }
16 - }
17 -});
compiler/packages/js-fuzzer/resources/differential_fuzz_jstest.js deleted
-11
@@ -1,11 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -function debug(msg) {
6 - __prettyPrintExtra(msg);
7 -}
8 -
9 -function shouldBe(_a) {
10 - __prettyPrintExtra((typeof _a == "function" ? _a() : eval(_a)));
11 -}
compiler/packages/js-fuzzer/resources/differential_fuzz_library.js deleted
-122
@@ -1,122 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -
6 -// Helpers for printing in correctness fuzzing.
7 -
8 -// Global helper functions for printing.
9 -var __prettyPrint;
10 -var __prettyPrintExtra;
11 -
12 -// Track caught exceptions.
13 -var __caught = 0;
14 -
15 -// Track a hash of all printed values - printing is cut off after a
16 -// certain size.
17 -var __hash = 0;
18 -
19 -(function() {
20 - const charCodeAt = String.prototype.charCodeAt;
21 - const join = Array.prototype.join;
22 - const map = Array.prototype.map;
23 - const substring = String.prototype.substring;
24 - const toString = Object.prototype.toString;
25 -
26 - // Same as in mjsunit.js.
27 - const classOf = function(object) {
28 - // Argument must not be null or undefined.
29 - const string = toString.call(object);
30 - // String has format [object <ClassName>].
31 - return substring.call(string, 8, string.length - 1);
32 - };
33 -
34 - // For standard cases use original prettyPrinted from mjsunit.
35 - const origPrettyPrinted = prettyPrinted;
36 -
37 - // Override prettyPrinted with a version that also recusively prints objects
38 - // and arrays with a depth of 4. We don't track circles, but we'd cut off
39 - // after a depth of 4 if there are any.
40 - prettyPrinted = function prettyPrinted(value, depth=4) {
41 - if (depth <= 0) {
42 - return "...";
43 - }
44 - switch (typeof value) {
45 - case "object":
46 - if (value === null) return "null";
47 - switch (classOf(value)) {
48 - case "Array":
49 - return prettyPrintedArray(value, depth);
50 - case "Object":
51 - return prettyPrintedObject(value, depth);
52 - }
53 - }
54 - // Fall through to original version for all other types.
55 - return origPrettyPrinted(value);
56 - }
57 -
58 - // Helper for pretty array with depth.
59 - function prettyPrintedArray(array, depth) {
60 - const result = map.call(array, (value, index, array) => {
61 - if (value === undefined && !(index in array)) return "";
62 - return prettyPrinted(value, depth - 1);
63 - });
64 - return `[${join.call(result, ", ")}]`;
65 - }
66 -
67 - // Helper for pretty objects with depth.
68 - function prettyPrintedObject(object, depth) {
69 - const keys = Object.keys(object);
70 - const prettyValues = map.call(keys, (key) => {
71 - return `${key}: ${prettyPrinted(object[key], depth - 1)}`;
72 - });
73 - const content = join.call(prettyValues, ", ");
74 - return `${object.constructor.name || "Object"}{${content}}`;
75 - }
76 -
77 - // Helper for calculating a hash code of a string.
78 - function hashCode(str) {
79 - let hash = 0;
80 - if (str.length == 0) {
81 - return hash;
82 - }
83 - for (let i = 0; i < str.length; i++) {
84 - const char = charCodeAt.call(str, i);
85 - hash = ((hash << 5) - hash) + char;
86 - hash = hash & hash;
87 - }
88 - return hash;
89 - }
90 -
91 - // Upper limit for calling extra printing. When reached, hashes of
92 - // strings are tracked and printed instead.
93 - let maxExtraPrinting = 100;
94 -
95 - // Helper for pretty printing.
96 - __prettyPrint = function(value, extra=false) {
97 - let str = prettyPrinted(value);
98 -
99 - // Change __hash with the contents of the full string to
100 - // keep track of differences also when we don't print.
101 - const hash = hashCode(str);
102 - __hash = hashCode(hash + __hash.toString());
103 -
104 - if (extra && maxExtraPrinting-- <= 0) {
105 - return;
106 - }
107 -
108 - // Cut off long strings to prevent overloading I/O. We still track
109 - // the hash of the full string.
110 - if (str.length > 64) {
111 - const head = substring.call(str, 0, 54);
112 - const tail = substring.call(str, str.length - 10, str.length - 1);
113 - str = `${head}[...]${tail}`;
114 - }
115 -
116 - print(str);
117 - };
118 -
119 - __prettyPrintExtra = function (value) {
120 - __prettyPrint(value, true);
121 - }
122 -})();
compiler/packages/js-fuzzer/resources/differential_fuzz_mjsunit.js deleted
-8
@@ -1,8 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -
6 -// Substitute for mjsunit. We reuse prettyPrinted from mjsunit, but only if
7 -// it is loaded. If not, we use this substitute instead.
8 -let prettyPrinted = value => value;
compiler/packages/js-fuzzer/resources/differential_fuzz_suppressions.js deleted
-12
@@ -1,12 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -
6 -// Don't breach stack limit in differential fuzzing as it leads to
7 -// early bailout.
8 -runNearStackLimit = function(f) {
9 - try {
10 - f();
11 - } catch (e) {}
12 -};
compiler/packages/js-fuzzer/resources/differential_fuzz_v8.js deleted
-29
@@ -1,29 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -
6 -// Adjust mjsunit behavior for differential fuzzing.
7 -
8 -// We're not interested in stack traces.
9 -MjsUnitAssertionError = () => {};
10 -
11 -// Do more printing in assertions for more correctness coverage.
12 -failWithMessage = message => { __prettyPrint(message); };
13 -assertSame = (expected, found, name_opt) => { __prettyPrint(found); };
14 -assertNotSame = (expected, found, name_opt) => { __prettyPrint(found); };
15 -assertEquals = (expected, found, name_opt) => { __prettyPrint(found); };
16 -assertNotEquals = (expected, found, name_opt) => { __prettyPrint(found); };
17 -assertNull = (value, name_opt) => { __prettyPrint(value); };
18 -assertNotNull = (value, name_opt) => { __prettyPrint(value); };
19 -
20 -// Suppress optimization status as it leads to false positives.
21 -assertUnoptimized = () => {};
22 -assertOptimized = () => {};
23 -isNeverOptimize = () => {};
24 -isAlwaysOptimize = () => {};
25 -isInterpreted = () => {};
26 -isBaseline = () => {};
27 -isUnoptimized = () => {};
28 -isOptimized = () => {};
29 -isTurboFanned = () => {};
compiler/packages/js-fuzzer/resources/fuzz_library.js deleted
-116
@@ -1,116 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -// Slightly modified variants from http://code.fitness/post/2016/01/javascript-enumerate-methods.html.
6 -function __isPropertyOfType(obj, name, type) {
7 - let desc;
8 - try {
9 - desc = Object.getOwnPropertyDescriptor(obj, name);
10 - } catch(e) {
11 - return false;
12 - }
13 -
14 - if (!desc)
15 - return false;
16 -
17 - return typeof type === 'undefined' || typeof desc.value === type;
18 -}
19 -
20 -function __getProperties(obj, type) {
21 - if (typeof obj === "undefined" || obj === null)
22 - return [];
23 -
24 - let properties = [];
25 - for (let name of Object.getOwnPropertyNames(obj)) {
26 - if (__isPropertyOfType(obj, name, type))
27 - properties.push(name);
28 - }
29 -
30 - let proto = Object.getPrototypeOf(obj);
31 - while (proto && proto != Object.prototype) {
32 - Object.getOwnPropertyNames(proto)
33 - .forEach (name => {
34 - if (name !== 'constructor') {
35 - if (__isPropertyOfType(proto, name, type))
36 - properties.push(name);
37 - }
38 - });
39 - proto = Object.getPrototypeOf(proto);
40 - }
41 - return properties;
42 -}
43 -
44 -function* __getObjects(root = this, level = 0) {
45 - if (level > 4)
46 - return;
47 -
48 - let obj_names = __getProperties(root, 'object');
49 - for (let obj_name of obj_names) {
50 - let obj = root[obj_name];
51 - if (obj === root)
52 - continue;
53 -
54 - yield obj;
55 - yield* __getObjects(obj, level + 1);
56 - }
57 -}
58 -
59 -function __getRandomObject(seed) {
60 - let objects = [];
61 - for (let obj of __getObjects()) {
62 - objects.push(obj);
63 - }
64 -
65 - return objects[seed % objects.length];
66 -}
67 -
68 -function __getRandomProperty(obj, seed) {
69 - let properties = __getProperties(obj);
70 - if (!properties.length)
71 - return undefined;
72 -
73 - return properties[seed % properties.length];
74 -}
75 -
76 -function __callRandomFunction(obj, seed, ...args)
77 -{
78 - let functions = __getProperties(obj, 'function');
79 - if (!functions.length)
80 - return;
81 -
82 - let random_function = functions[seed % functions.length];
83 - try {
84 - obj[random_function](...args);
85 - } catch(e) { }
86 -}
87 -
88 -function runNearStackLimit(f) {
89 - function t() {
90 - try {
91 - return t();
92 - } catch (e) {
93 - return f();
94 - }
95 - };
96 - try {
97 - return t();
98 - } catch (e) {}
99 -}
100 -
101 -// Limit number of times we cause major GCs in tests to reduce hangs
102 -// when called within larger loops.
103 -let __callGC;
104 -(function() {
105 - let countGC = 0;
106 - __callGC = function() {
107 - if (countGC++ < 50) {
108 - gc();
109 - }
110 - };
111 -})();
112 -
113 -// Neuter common test functions.
114 -try { this.failWithMessage = nop; } catch(e) { }
115 -try { this.triggerAssertFalse = nop; } catch(e) { }
116 -try { this.quit = nop; } catch(e) { }
compiler/packages/js-fuzzer/resources/jstest_stubs.js deleted
-41
@@ -1,41 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -// Minimally stub out methods from JSTest's standalone-pre.js.
6 -function description(msg) {}
7 -function debug(msg) {}
8 -
9 -function shouldBe(_a) {
10 - print((typeof _a == "function" ? _a() : eval(_a)));
11 -}
12 -
13 -function shouldBeTrue(_a) { shouldBe(_a); }
14 -function shouldBeFalse(_a) { shouldBe(_a); }
15 -function shouldBeNaN(_a) { shouldBe(_a); }
16 -function shouldBeNull(_a) { shouldBe(_a); }
17 -function shouldNotThrow(_a) { shouldBe(_a); }
18 -function shouldThrow(_a) { shouldBe(_a); }
19 -
20 -function noInline() {}
21 -function finishJSTest() {}
22 -
23 -// Stub out $vm.
24 -try {
25 - $vm;
26 -} catch(e) {
27 - const handler = {
28 - get: function(x, prop) {
29 - if (prop == Symbol.toPrimitive) {
30 - return function() { return undefined; };
31 - }
32 - return dummy;
33 - },
34 - };
35 - const dummy = new Proxy(function() { return dummy; }, handler);
36 - this.$vm = dummy;
37 -}
38 -
39 -// Other functions.
40 -function ensureArrayStorage() {}
41 -function transferArrayBuffer() {}
compiler/packages/js-fuzzer/resources/stubs.js deleted
-36
@@ -1,36 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -// Helper neuter function.
6 -function nop() { return false; }
7 -
8 -// Stubs for non-standard functions.
9 -try { gc; } catch(e) {
10 - this.gc = function () {
11 - for (let i = 0; i < 10000; i++) {
12 - let s = new String("AAAA" + Math.random());
13 - }
14 - }
15 -}
16 -try { uneval; } catch(e) { this.uneval = this.nop; }
17 -
18 -try {
19 - // For Chakra tests.
20 - WScript;
21 -} catch(e) {
22 - this.WScript = new Proxy({}, {
23 - get(target, name) {
24 - switch (name) {
25 - case 'Echo':
26 - return print;
27 - default:
28 - return {};
29 - }
30 -
31 - }
32 - });
33 -}
34 -
35 -try { this.alert = console.log; } catch(e) { }
36 -try { this.print = console.log; } catch(e) { }
compiler/packages/js-fuzzer/run.js deleted
-188
@@ -1,188 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Description of this file.
7 - */
8 -
9 -'use strict';
10 -
11 -const assert = require('assert');
12 -const fs = require('fs');
13 -const path = require('path');
14 -
15 -const program = require('commander');
16 -
17 -const corpus = require('./corpus.js');
18 -const differentialScriptMutator = require('./differential_script_mutator.js');
19 -const random = require('./random.js');
20 -const scriptMutator = require('./script_mutator.js');
21 -const sourceHelpers = require('./source_helpers.js');
22 -
23 -// Maximum number of test inputs to use for one fuzz test.
24 -const MAX_TEST_INPUTS_PER_TEST = 10;
25 -
26 -// Base implementations for default or differential fuzzing.
27 -const SCRIPT_MUTATORS = {
28 - default: scriptMutator.ScriptMutator,
29 - foozzie: differentialScriptMutator.DifferentialScriptMutator,
30 -};
31 -
32 -function getRandomInputs(primaryCorpus, secondaryCorpora, count) {
33 - count = random.randInt(2, count);
34 -
35 - // Choose 40%-80% of inputs from primary corpus.
36 - const primaryCount = Math.floor(random.uniform(0.4, 0.8) * count);
37 - count -= primaryCount;
38 -
39 - let inputs = primaryCorpus.getRandomTestcases(primaryCount);
40 -
41 - // TODO(gsn): Uncomment this once we have more tests to build a
42 - // secondary corpora.
43 - //
44 - // Split remainder equally between the secondary corpora.
45 - // const secondaryCount = Math.floor(count / secondaryCorpora.length);
46 -
47 - // for (let i = 0; i < secondaryCorpora.length; i++) {
48 - // let currentCount = secondaryCount;
49 - // if (i == secondaryCorpora.length - 1) {
50 - // // Last one takes the remainder.
51 - // currentCount = count;
52 - // }
53 -
54 - // count -= currentCount;
55 - // if (currentCount) {
56 - // inputs = inputs.concat(
57 - // secondaryCorpora[i].getRandomTestcases(currentCount)
58 - // );
59 - // }
60 - // }
61 -
62 - return random.shuffle(inputs);
63 -}
64 -
65 -function collect(value, total) {
66 - total.push(value);
67 - return total;
68 -}
69 -
70 -function overrideSettings(settings, settingOverrides) {
71 - for (const setting of settingOverrides) {
72 - const parts = setting.split("=");
73 - settings[parts[0]] = parseFloat(parts[1]);
74 - }
75 -}
76 -
77 -function* randomInputGen() {
78 - const inputDir = path.resolve(program.input_dir);
79 -
80 - const reactCorpus = new corpus.Corpus(inputDir, "react");
81 -
82 - for (let i = 0; i < program.no_of_files; i++) {
83 - let inputs = getRandomInputs(reactCorpus, [], MAX_TEST_INPUTS_PER_TEST);
84 -
85 - if (inputs.length > 0) {
86 - yield inputs;
87 - }
88 - }
89 -}
90 -
91 -function* corpusInputGen() {
92 - const inputCorpus = new corpus.Corpus(
93 - path.resolve(program.input_dir),
94 - program.mutate_corpus,
95 - program.extra_strict);
96 - for (const input of inputCorpus.getAllTestcases()) {
97 - yield [input];
98 - }
99 -}
100 -
101 -function* enumerate(iterable) {
102 - let i = 0;
103 - for (const value of iterable) {
104 - yield [i, value];
105 - i++;
106 - }
107 -}
108 -
109 -function main() {
110 - Error.stackTraceLimit = Infinity;
111 -
112 - program
113 - .version('0.0.1')
114 - .option('-i, --input_dir <path>', 'Input directory.')
115 - .option('-o, --output_dir <path>', 'Output directory.')
116 - .option('-n, --no_of_files <n>', 'Output directory.', parseInt)
117 - .option('-c, --mutate_corpus <name>', 'Mutate single files in a corpus.')
118 - .option('-e, --extra_strict', 'Additionally parse files in strict mode.')
119 - .option('-m, --mutate <path>', 'Mutate a file and output results.')
120 - .option('-s, --setting [setting]', 'Settings overrides.', collect, [])
121 - .option('-v, --verbose', 'More verbose printing.')
122 - .option('-z, --zero_settings', 'Zero all settings.')
123 - .parse(process.argv);
124 -
125 - const settings = scriptMutator.defaultSettings();
126 - if (program.zero_settings) {
127 - for (const key of Object.keys(settings)) {
128 - settings[key] = 0.0;
129 - }
130 - }
131 -
132 - if (program.setting.length > 0) {
133 - overrideSettings(settings, program.setting);
134 - }
135 -
136 - settings.engine = "node";
137 - const mutator = new SCRIPT_MUTATORS["default"](settings);
138 -
139 - if (program.mutate) {
140 - const absPath = path.resolve(program.mutate);
141 - const baseDir = path.dirname(absPath);
142 - const fileName = path.basename(absPath);
143 - const input = sourceHelpers.loadSource(
144 - baseDir, fileName, program.extra_strict);
145 - const mutated = mutator.mutateMultiple([input]);
146 - console.log(mutated.code);
147 - return;
148 - }
149 -
150 - let inputGen;
151 -
152 - if (program.mutate_corpus) {
153 - inputGen = corpusInputGen();
154 - } else {
155 - inputGen = randomInputGen();
156 - }
157 -
158 - for (const [i, inputs] of enumerate(inputGen)) {
159 - const outputPath = path.join(program.output_dir, "fuzz-" + i + ".js");
160 -
161 - const start = Date.now();
162 - const paths = inputs.map((input) => input.relPath);
163 -
164 - try {
165 - const mutated = mutator.mutateMultiple(inputs);
166 - fs.writeFileSync(outputPath, mutated.code);
167 - } catch (e) {
168 - if (e.message.startsWith('ENOSPC')) {
169 - console.log('ERROR: No space left. Bailing out...');
170 - console.log(e);
171 - return;
172 - }
173 - console.log(`ERROR: Exception during mutate: ${paths}`);
174 - console.log(e);
175 - continue;
176 - } finally {
177 - if (program.verbose) {
178 - const duration = Date.now() - start;
179 - console.log(`Mutating ${paths} took ${duration} ms.`);
180 - }
181 - }
182 - if ((i + 1) % 10 == 0) {
183 - console.log('Up to ', i + 1);
184 - }
185 - }
186 -}
187 -
188 -main();
compiler/packages/js-fuzzer/script_mutator.js deleted
-248
@@ -1,248 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Script mutator.
7 - */
8 -
9 -'use strict';
10 -
11 -const fs = require('fs');
12 -const path = require('path');
13 -
14 -const common = require('./mutators/common.js');
15 -const db = require('./db.js');
16 -const random = require('./random.js');
17 -const sourceHelpers = require('./source_helpers.js');
18 -
19 -const { ArrayMutator } = require('./mutators/array_mutator.js');
20 -const { CrossOverMutator } = require('./mutators/crossover_mutator.js');
21 -const { ExpressionMutator } = require('./mutators/expression_mutator.js');
22 -const { FunctionCallMutator } = require('./mutators/function_call_mutator.js');
23 -const { IdentifierNormalizer } = require('./mutators/normalizer.js');
24 -const { NumberMutator } = require('./mutators/number_mutator.js');
25 -const { ObjectMutator } = require('./mutators/object_mutator.js');
26 -const { VariableMutator } = require('./mutators/variable_mutator.js');
27 -const { VariableOrObjectMutator } = require('./mutators/variable_or_object_mutation.js');
28 -
29 -const MAX_EXTRA_MUTATIONS = 5;
30 -
31 -function defaultSettings() {
32 - return {
33 - ADD_VAR_OR_OBJ_MUTATIONS: 0.1,
34 - DIFF_FUZZ_EXTRA_PRINT: 0.1,
35 - DIFF_FUZZ_TRACK_CAUGHT: 0.4,
36 - MUTATE_ARRAYS: 0.1,
37 - MUTATE_CROSSOVER_INSERT: 0.05,
38 - MUTATE_EXPRESSIONS: 0.1,
39 - MUTATE_FUNCTION_CALLS: 0.1,
40 - MUTATE_NUMBERS: 0.05,
41 - MUTATE_OBJECTS: 0.1,
42 - MUTATE_VARIABLES: 0.075,
43 - SCRIPT_MUTATOR_EXTRA_MUTATIONS: 0.2,
44 - SCRIPT_MUTATOR_SHUFFLE: 0.2,
45 - };
46 -}
47 -
48 -class Result {
49 - constructor(code, flags) {
50 - this.code = code;
51 - this.flags = flags;
52 - }
53 -}
54 -
55 -class ScriptMutator {
56 - constructor(settings, db_path=undefined) {
57 - // Use process.cwd() to bypass pkg's snapshot filesystem.
58 - this.mutateDb = new db.MutateDb(db_path || path.join(process.cwd(), 'db'));
59 - this.mutators = [
60 - new ArrayMutator(settings),
61 - new ObjectMutator(settings),
62 - new VariableMutator(settings),
63 - new NumberMutator(settings),
64 - new CrossOverMutator(settings, this.mutateDb),
65 - new ExpressionMutator(settings),
66 - new FunctionCallMutator(settings),
67 - new VariableOrObjectMutator(settings),
68 - ];
69 - this.settings = settings;
70 - }
71 -
72 - _addMjsunitIfNeeded(dependencies, input) {
73 - if (dependencies.has('mjsunit')) {
74 - return;
75 - }
76 -
77 - if (!input.absPath.includes('mjsunit')) {
78 - return;
79 - }
80 -
81 - // Find mjsunit.js
82 - let mjsunitPath = input.absPath;
83 - while (path.dirname(mjsunitPath) != mjsunitPath &&
84 - path.basename(mjsunitPath) != 'mjsunit') {
85 - mjsunitPath = path.dirname(mjsunitPath);
86 - }
87 -
88 - if (path.basename(mjsunitPath) == 'mjsunit') {
89 - mjsunitPath = path.join(mjsunitPath, 'mjsunit.js');
90 - dependencies.set('mjsunit', sourceHelpers.loadDependencyAbs(
91 - input.baseDir, mjsunitPath));
92 - return;
93 - }
94 -
95 - console.log('ERROR: Failed to find mjsunit.js');
96 - }
97 -
98 - _addSpiderMonkeyShellIfNeeded(dependencies, input) {
99 - // Find shell.js files
100 - const shellJsPaths = new Array();
101 - let currentDir = path.dirname(input.absPath);
102 -
103 - while (path.dirname(currentDir) != currentDir) {
104 - const shellJsPath = path.join(currentDir, 'shell.js');
105 - if (fs.existsSync(shellJsPath)) {
106 - shellJsPaths.push(shellJsPath);
107 - }
108 -
109 - if (currentDir == 'spidermonkey') {
110 - break;
111 - }
112 - currentDir = path.dirname(currentDir);
113 - }
114 -
115 - // Add shell.js dependencies in reverse to add ones that are higher up in
116 - // the directory tree first.
117 - for (let i = shellJsPaths.length - 1; i >= 0; i--) {
118 - if (!dependencies.has(shellJsPaths[i])) {
119 - const dependency = sourceHelpers.loadDependencyAbs(
120 - input.baseDir, shellJsPaths[i]);
121 - dependencies.set(shellJsPaths[i], dependency);
122 - }
123 - }
124 - }
125 -
126 - _addJSTestStubsIfNeeded(dependencies, input) {
127 - if (dependencies.has('jstest_stubs') ||
128 - !input.absPath.includes('JSTests')) {
129 - return;
130 - }
131 - dependencies.set(
132 - 'jstest_stubs', sourceHelpers.loadResource('jstest_stubs.js'));
133 - }
134 -
135 - mutate(source) {
136 - let mutators = this.mutators.slice();
137 - let annotations = [];
138 - if (random.choose(this.settings.SCRIPT_MUTATOR_SHUFFLE)){
139 - annotations.push(' Script mutator: using shuffled mutators');
140 - random.shuffle(mutators);
141 - }
142 -
143 - if (random.choose(this.settings.SCRIPT_MUTATOR_EXTRA_MUTATIONS)){
144 - for (let i = random.randInt(1, MAX_EXTRA_MUTATIONS); i > 0; i--) {
145 - let mutator = random.single(this.mutators);
146 - mutators.push(mutator);
147 - annotations.push(` Script mutator: extra ${mutator.constructor.name}`);
148 - }
149 - }
150 -
151 - for (const mutator of mutators) {
152 - mutator.mutate(source);
153 - }
154 -
155 - for (const annotation of annotations.reverse()) {
156 - sourceHelpers.annotateWithComment(source.ast, annotation);
157 - }
158 - }
159 -
160 - // Returns parsed dependencies for inputs.
161 - resolveInputDependencies(inputs) {
162 - const dependencies = new Map();
163 -
164 - // Resolve test harness files.
165 - inputs.forEach(input => {
166 - try {
167 - // TODO(machenbach): Some harness files contain load expressions
168 - // that are not recursively resolved. We already remove them, but we
169 - // also need to load the dependencies they point to.
170 - this._addJSTestStubsIfNeeded(dependencies, input);
171 - this._addMjsunitIfNeeded(dependencies, input)
172 - this._addSpiderMonkeyShellIfNeeded(dependencies, input);
173 - } catch (e) {
174 - console.log(
175 - 'ERROR: Failed to resolve test harness for', input.relPath);
176 - throw e;
177 - }
178 - });
179 -
180 - // Resolve dependencies loaded within the input files.
181 - inputs.forEach(input => {
182 - try {
183 - input.loadDependencies(dependencies);
184 - } catch (e) {
185 - console.log(
186 - 'ERROR: Failed to resolve dependencies for', input.relPath);
187 - throw e;
188 - }
189 - });
190 -
191 - // Map.values() returns values in insertion order.
192 - return Array.from(dependencies.values());
193 - }
194 -
195 - // Combines input dependencies with fuzzer resources.
196 - resolveDependencies(inputs) {
197 - const dependencies = this.resolveInputDependencies(inputs);
198 -
199 - // Add stubs for non-standard functions in the beginning.
200 - dependencies.unshift(sourceHelpers.loadResource('stubs.js'));
201 -
202 - // Add our fuzzing support helpers. This also overrides some common test
203 - // functions from earlier dependencies that cause early bailouts.
204 - dependencies.push(sourceHelpers.loadResource('fuzz_library.js'));
205 -
206 - return dependencies;
207 - }
208 -
209 - // Normalizes, combines and mutates multiple inputs.
210 - mutateInputs(inputs) {
211 - const normalizerMutator = new IdentifierNormalizer();
212 -
213 - for (const [index, input] of inputs.entries()) {
214 - try {
215 - normalizerMutator.mutate(input);
216 - } catch (e) {
217 - console.log('ERROR: Failed to normalize ', input.relPath);
218 - throw e;
219 - }
220 -
221 - common.setSourceLoc(input, index, inputs.length);
222 - }
223 -
224 - // Combine ASTs into one. This is so that mutations have more context to
225 - // cross over content between ASTs (e.g. variables).
226 - const combinedSource = common.concatPrograms(inputs);
227 - this.mutate(combinedSource);
228 -
229 - return combinedSource;
230 - }
231 -
232 - mutateMultiple(inputs) {
233 - // High level operation:
234 - // 1) Compute dependencies from inputs.
235 - // 2) Normalize, combine and mutate inputs.
236 - // 3) Generate code with dependency code prepended.
237 - const dependencies = this.resolveDependencies(inputs);
238 - const combinedSource = this.mutateInputs(inputs);
239 - const code = sourceHelpers.generateCode(combinedSource, dependencies);
240 - const flags = common.concatFlags(dependencies.concat([combinedSource]));
241 - return new Result(code, flags);
242 - }
243 -}
244 -
245 -module.exports = {
246 - defaultSettings: defaultSettings,
247 - ScriptMutator: ScriptMutator,
248 -};
compiler/packages/js-fuzzer/source_helpers.js deleted
-466
@@ -1,466 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Source loader.
7 - */
8 -
9 -const fs = require('fs');
10 -const fsPath = require('path');
11 -
12 -const { EOL } = require('os');
13 -
14 -const babelGenerator = require('@babel/generator').default;
15 -const babelTraverse = require('@babel/traverse').default;
16 -const babelTypes = require('@babel/types');
17 -const babylon = require('@babel/parser');
18 -
19 -const exceptions = require('./exceptions.js');
20 -
21 -const SCRIPT = Symbol('SCRIPT');
22 -const MODULE = Symbol('MODULE');
23 -
24 -const V8_BUILTIN_PREFIX = '__V8Builtin';
25 -const V8_REPLACE_BUILTIN_REGEXP = new RegExp(
26 - V8_BUILTIN_PREFIX + '(\\w+)\\(', 'g');
27 -
28 -const BABYLON_OPTIONS = {
29 - sourceType: 'module',
30 - allowReturnOutsideFunction: true,
31 - tokens: false,
32 - ranges: false,
33 - plugins: [
34 - 'asyncGenerators',
35 - 'bigInt',
36 - 'classPrivateMethods',
37 - 'classPrivateProperties',
38 - 'classProperties',
39 - 'doExpressions',
40 - 'exportDefaultFrom',
41 - 'nullishCoalescingOperator',
42 - 'numericSeparator',
43 - 'objectRestSpread',
44 - 'optionalCatchBinding',
45 - 'optionalChaining',
46 - ],
47 -}
48 -
49 -const BABYLON_REPLACE_VAR_OPTIONS = Object.assign({}, BABYLON_OPTIONS);
50 -BABYLON_REPLACE_VAR_OPTIONS['placeholderPattern'] = /^VAR_[0-9]+$/;
51 -
52 -function _isV8OrSpiderMonkeyLoad(path) {
53 - // 'load' and 'loadRelativeToScript' used by V8 and SpiderMonkey.
54 - return (babelTypes.isIdentifier(path.node.callee) &&
55 - (path.node.callee.name == 'load' ||
56 - path.node.callee.name == 'loadRelativeToScript') &&
57 - path.node.arguments.length == 1 &&
58 - babelTypes.isStringLiteral(path.node.arguments[0]));
59 -}
60 -
61 -function _isChakraLoad(path) {
62 - // 'WScript.LoadScriptFile' used by Chakra.
63 - // TODO(ochang): The optional second argument can change semantics ("self",
64 - // "samethread", "crossthread" etc).
65 - // Investigate whether if it still makes sense to include them.
66 - return (babelTypes.isMemberExpression(path.node.callee) &&
67 - babelTypes.isIdentifier(path.node.callee.property) &&
68 - path.node.callee.property.name == 'LoadScriptFile' &&
69 - path.node.arguments.length >= 1 &&
70 - babelTypes.isStringLiteral(path.node.arguments[0]));
71 -}
72 -
73 -function _findPath(path, caseSensitive=true) {
74 - // If the path exists, return the path. Otherwise return null. Used to handle
75 - // case insensitive matches for Chakra tests.
76 - if (caseSensitive) {
77 - return fs.existsSync(path) ? path : null;
78 - }
79 -
80 - path = fsPath.normalize(fsPath.resolve(path));
81 - const pathComponents = path.split(fsPath.sep);
82 - let realPath = fsPath.resolve(fsPath.sep);
83 -
84 - for (let i = 1; i < pathComponents.length; i++) {
85 - // For each path component, do a directory listing to see if there is a case
86 - // insensitive match.
87 - const curListing = fs.readdirSync(realPath);
88 - let realComponent = null;
89 - for (const component of curListing) {
90 - if (i < pathComponents.length - 1 &&
91 - !fs.statSync(fsPath.join(realPath, component)).isDirectory()) {
92 - continue;
93 - }
94 -
95 - if (component.toLowerCase() == pathComponents[i].toLowerCase()) {
96 - realComponent = component;
97 - break;
98 - }
99 - }
100 -
101 - if (!realComponent) {
102 - return null;
103 - }
104 -
105 - realPath = fsPath.join(realPath, realComponent);
106 - }
107 -
108 - return realPath;
109 -}
110 -
111 -function _findDependentCodePath(filePath, baseDirectory, caseSensitive=true) {
112 - const fullPath = fsPath.join(baseDirectory, filePath);
113 -
114 - const realPath = _findPath(fullPath, caseSensitive)
115 - if (realPath) {
116 - // Check base directory of current file.
117 - return realPath;
118 - }
119 -
120 - while (fsPath.dirname(baseDirectory) != baseDirectory) {
121 - // Walk up the directory tree.
122 - const testPath = fsPath.join(baseDirectory, filePath);
123 - const realPath = _findPath(testPath, caseSensitive)
124 - if (realPath) {
125 - return realPath;
126 - }
127 -
128 - baseDirectory = fsPath.dirname(baseDirectory);
129 - }
130 -
131 - return null;
132 -}
133 -
134 -/**
135 - * Removes V8/Spidermonkey/Chakra load expressions in a source AST and returns
136 - * their string values in an array.
137 - *
138 - * @param {string} originalFilePath Absolute path to file.
139 - * @param {AST} ast Babel AST of the sources.
140 - */
141 -function resolveLoads(originalFilePath, ast) {
142 - const dependencies = [];
143 -
144 - babelTraverse(ast, {
145 - CallExpression(path) {
146 - const isV8OrSpiderMonkeyLoad = _isV8OrSpiderMonkeyLoad(path);
147 - const isChakraLoad = _isChakraLoad(path);
148 - if (!isV8OrSpiderMonkeyLoad && !isChakraLoad) {
149 - return;
150 - }
151 -
152 - let loadValue = path.node.arguments[0].extra.rawValue;
153 - // Normalize Windows path separators.
154 - loadValue = loadValue.replace(/\\/g, fsPath.sep);
155 -
156 - // Remove load call.
157 - path.remove();
158 -
159 - const resolvedPath = _findDependentCodePath(
160 - loadValue, fsPath.dirname(originalFilePath), !isChakraLoad);
161 - if (!resolvedPath) {
162 - console.log('ERROR: Could not find dependent path for', loadValue);
163 - return;
164 - }
165 -
166 - if (exceptions.isTestSkippedAbs(resolvedPath)) {
167 - // Dependency is skipped.
168 - return;
169 - }
170 -
171 - // Add the dependency path.
172 - dependencies.push(resolvedPath);
173 - }
174 - });
175 - return dependencies;
176 -}
177 -
178 -function isStrictDirective(directive) {
179 - return (directive.value &&
180 - babelTypes.isDirectiveLiteral(directive.value) &&
181 - directive.value.value === 'use strict');
182 -}
183 -
184 -function replaceV8Builtins(code) {
185 - return code.replace(/%(\w+)\(/g, V8_BUILTIN_PREFIX + '$1(');
186 -}
187 -
188 -function restoreV8Builtins(code) {
189 - return code.replace(V8_REPLACE_BUILTIN_REGEXP, '%$1(');
190 -}
191 -
192 -function maybeUseStict(code, useStrict) {
193 - if (useStrict) {
194 - return `'use strict';${EOL}${EOL}${code}`;
195 - }
196 - return code;
197 -}
198 -
199 -class Source {
200 - constructor(baseDir, relPath, flags, dependentPaths) {
201 - this.baseDir = baseDir;
202 - this.relPath = relPath;
203 - this.flags = flags;
204 - this.dependentPaths = dependentPaths;
205 - this.sloppy = exceptions.isTestSloppyRel(relPath);
206 - }
207 -
208 - get absPath() {
209 - return fsPath.join(this.baseDir, this.relPath);
210 - }
211 -
212 - /**
213 - * Specifies if the source isn't compatible with strict mode.
214 - */
215 - isSloppy() {
216 - return this.sloppy;
217 - }
218 -
219 - /**
220 - * Specifies if the source has a top-level 'use strict' directive.
221 - */
222 - isStrict() {
223 - throw Error('Not implemented');
224 - }
225 -
226 - /**
227 - * Generates the code as a string without any top-level 'use strict'
228 - * directives. V8 natives that were replaced before parsing are restored.
229 - */
230 - generateNoStrict() {
231 - throw Error('Not implemented');
232 - }
233 -
234 - /**
235 - * Recursively adds dependencies of a this source file.
236 - *
237 - * @param {Map} dependencies Dependency map to which to add new, parsed
238 - * dependencies unless they are already in the map.
239 - * @param {Map} visitedDependencies A set for avoiding loops.
240 - */
241 - loadDependencies(dependencies, visitedDependencies) {
242 - visitedDependencies = visitedDependencies || new Set();
243 -
244 - for (const absPath of this.dependentPaths) {
245 - if (dependencies.has(absPath) ||
246 - visitedDependencies.has(absPath)) {
247 - // Already added.
248 - continue;
249 - }
250 -
251 - // Prevent infinite loops.
252 - visitedDependencies.add(absPath);
253 -
254 - // Recursively load dependencies.
255 - const dependency = loadDependencyAbs(this.baseDir, absPath);
256 - dependency.loadDependencies(dependencies, visitedDependencies);
257 -
258 - // Add the dependency.
259 - dependencies.set(absPath, dependency);
260 - }
261 - }
262 -}
263 -
264 -/**
265 - * Represents sources whose AST can be manipulated.
266 - */
267 -class ParsedSource extends Source {
268 - constructor(ast, baseDir, relPath, flags, dependentPaths) {
269 - super(baseDir, relPath, flags, dependentPaths);
270 - this.ast = ast;
271 - }
272 -
273 - isStrict() {
274 - return !!this.ast.program.directives.filter(isStrictDirective).length;
275 - }
276 -
277 - generateNoStrict() {
278 - const allDirectives = this.ast.program.directives;
279 - this.ast.program.directives = this.ast.program.directives.filter(
280 - directive => !isStrictDirective(directive));
281 - try {
282 - const code = babelGenerator(this.ast.program, {comments: true}).code;
283 - return restoreV8Builtins(code);
284 - } finally {
285 - this.ast.program.directives = allDirectives;
286 - }
287 - }
288 -}
289 -
290 -/**
291 - * Represents sources with cached code.
292 - */
293 -class CachedSource extends Source {
294 - constructor(source) {
295 - super(source.baseDir, source.relPath, source.flags, source.dependentPaths);
296 - this.use_strict = source.isStrict();
297 - this.code = source.generateNoStrict();
298 - }
299 -
300 - isStrict() {
301 - return this.use_strict;
302 - }
303 -
304 - generateNoStrict() {
305 - return this.code;
306 - }
307 -}
308 -
309 -/**
310 - * Read file path into an AST.
311 - *
312 - * Post-processes the AST by replacing V8 natives and removing disallowed
313 - * natives, as well as removing load expressions and adding the paths-to-load
314 - * as meta data.
315 - */
316 -function loadSource(baseDir, relPath, parseStrict=false) {
317 - const absPath = fsPath.resolve(fsPath.join(baseDir, relPath));
318 - const data = fs.readFileSync(absPath, 'utf-8');
319 -
320 - if (guessType(data) !== SCRIPT) {
321 - return null;
322 - }
323 -
324 - const preprocessed = maybeUseStict(replaceV8Builtins(data), parseStrict);
325 - const ast = babylon.parse(preprocessed, BABYLON_OPTIONS);
326 -
327 - removeComments(ast);
328 - cleanAsserts(ast);
329 - annotateWithOriginalPath(ast, relPath);
330 -
331 - const flags = loadFlags(data);
332 - const dependentPaths = resolveLoads(absPath, ast);
333 -
334 - return new ParsedSource(ast, baseDir, relPath, flags, dependentPaths);
335 -}
336 -
337 -function guessType(data) {
338 - if (data.includes('// MODULE')) {
339 - return MODULE;
340 - }
341 -
342 - return SCRIPT;
343 -}
344 -
345 -/**
346 - * Remove existing comments.
347 - */
348 -function removeComments(ast) {
349 - babelTraverse(ast, {
350 - enter(path) {
351 - babelTypes.removeComments(path.node);
352 - }
353 - });
354 -}
355 -
356 -/**
357 - * Removes "Assert" from strings in spidermonkey shells or from older
358 - * crash tests: https://crbug.com/1068268
359 - */
360 -function cleanAsserts(ast) {
361 - function replace(string) {
362 - return string == null ? null : string.replace(/[Aa]ssert/g, '*****t');
363 - }
364 - babelTraverse(ast, {
365 - StringLiteral(path) {
366 - path.node.value = replace(path.node.value);
367 - path.node.extra.raw = replace(path.node.extra.raw);
368 - path.node.extra.rawValue = replace(path.node.extra.rawValue);
369 - },
370 - TemplateElement(path) {
371 - path.node.value.cooked = replace(path.node.value.cooked);
372 - path.node.value.raw = replace(path.node.value.raw);
373 - },
374 - });
375 -}
376 -
377 -/**
378 - * Annotate code with top-level comment.
379 - */
380 -function annotateWithComment(ast, comment) {
381 - if (ast.program && ast.program.body && ast.program.body.length > 0) {
382 - babelTypes.addComment(
383 - ast.program.body[0], 'leading', comment, true);
384 - }
385 -}
386 -
387 -/**
388 - * Annotate code with original file path.
389 - */
390 -function annotateWithOriginalPath(ast, relPath) {
391 - annotateWithComment(ast, ' Original: ' + relPath);
392 -}
393 -
394 -// TODO(machenbach): Move this into the V8 corpus. Other test suites don't
395 -// use this flag logic.
396 -function loadFlags(data) {
397 - const result = [];
398 - let count = 0;
399 - for (const line of data.split('\n')) {
400 - if (count++ > 40) {
401 - // No need to process the whole file. Flags are always added after the
402 - // copyright header.
403 - break;
404 - }
405 - const match = line.match(/\/\/ Flags:\s*(.*)\s*/);
406 - if (!match) {
407 - continue;
408 - }
409 - for (const flag of exceptions.filterFlags(match[1].split(/\s+/))) {
410 - result.push(flag);
411 - }
412 - }
413 - return result;
414 -}
415 -
416 -// Convenience helper to load sources with absolute paths.
417 -function loadSourceAbs(baseDir, absPath) {
418 - return loadSource(baseDir, fsPath.relative(baseDir, absPath));
419 -}
420 -
421 -const dependencyCache = new Map();
422 -
423 -function loadDependency(baseDir, relPath) {
424 - const absPath = fsPath.join(baseDir, relPath);
425 - let dependency = dependencyCache.get(absPath);
426 - if (!dependency) {
427 - const source = loadSource(baseDir, relPath);
428 - dependency = new CachedSource(source);
429 - dependencyCache.set(absPath, dependency);
430 - }
431 - return dependency;
432 -}
433 -
434 -function loadDependencyAbs(baseDir, absPath) {
435 - return loadDependency(baseDir, fsPath.relative(baseDir, absPath));
436 -}
437 -
438 -// Convenience helper to load a file from the resources directory.
439 -function loadResource(fileName) {
440 - return loadDependency(__dirname, fsPath.join('resources', fileName));
441 -}
442 -
443 -function generateCode(source, dependencies=[]) {
444 - const allSources = dependencies.concat([source]);
445 - const codePieces = allSources.map(
446 - source => source.generateNoStrict());
447 -
448 - if (allSources.some(source => source.isStrict()) &&
449 - !allSources.some(source => source.isSloppy())) {
450 - codePieces.unshift('\'use strict\';');
451 - }
452 -
453 - return codePieces.join(EOL + EOL);
454 -}
455 -
456 -module.exports = {
457 - BABYLON_OPTIONS: BABYLON_OPTIONS,
458 - BABYLON_REPLACE_VAR_OPTIONS: BABYLON_REPLACE_VAR_OPTIONS,
459 - annotateWithComment: annotateWithComment,
460 - generateCode: generateCode,
461 - loadDependencyAbs: loadDependencyAbs,
462 - loadResource: loadResource,
463 - loadSource: loadSource,
464 - loadSourceAbs: loadSourceAbs,
465 - ParsedSource: ParsedSource,
466 -}
compiler/packages/js-fuzzer/test/helpers.js deleted
-75
@@ -1,75 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Test helpers.
7 - */
8 -
9 -'use strict';
10 -
11 -const assert = require('assert');
12 -const path = require('path');
13 -const fs = require('fs');
14 -
15 -const sourceHelpers = require('../source_helpers.js');
16 -
17 -const BASE_DIR = path.join(path.dirname(__dirname), 'test_data');
18 -const DB_DIR = path.join(BASE_DIR, 'fake_db');
19 -
20 -const HEADER = `// Copyright 2020 the V8 project authors. All rights reserved.
21 -// Use of this source code is governed by a BSD-style license that can be
22 -// found in the LICENSE file.
23 -
24 -`;
25 -
26 -/**
27 - * Create a function that returns one of `probs` when called. It rotates
28 - * through the values. Useful to replace `random.random()` in tests using
29 - * the probabilities that trigger different interesting cases.
30 - */
31 -function cycleProbabilitiesFun(probs) {
32 - let index = 0;
33 - return () => {
34 - index = index % probs.length;
35 - return probs[index++];
36 - };
37 -}
38 -
39 -/**
40 - * Replace Math.random with a deterministic pseudo-random function.
41 - */
42 -function deterministicRandom(sandbox) {
43 - let seed = 1;
44 - function random() {
45 - const x = Math.sin(seed++) * 10000;
46 - return x - Math.floor(x);
47 - }
48 - sandbox.stub(Math, 'random').callsFake(() => { return random(); });
49 -}
50 -
51 -function loadTestData(relPath) {
52 - return sourceHelpers.loadSource(BASE_DIR, relPath);
53 -}
54 -
55 -function assertExpectedResult(expectedPath, result) {
56 - const absPath = path.join(BASE_DIR, expectedPath);
57 - if (process.env.GENERATE) {
58 - fs.writeFileSync(absPath, HEADER + result.trim() + '\n');
59 - return;
60 - }
61 -
62 - // Omit copyright header when comparing files.
63 - const expected = fs.readFileSync(absPath, 'utf-8').trim().split('\n');
64 - expected.splice(0, 4);
65 - assert.strictEqual(expected.join('\n'), result.trim());
66 -}
67 -
68 -module.exports = {
69 - BASE_DIR: BASE_DIR,
70 - DB_DIR: DB_DIR,
71 - assertExpectedResult: assertExpectedResult,
72 - cycleProbabilitiesFun: cycleProbabilitiesFun,
73 - deterministicRandom: deterministicRandom,
74 - loadTestData: loadTestData,
75 -}
compiler/packages/js-fuzzer/test/test_available_variables.js deleted
-34
@@ -1,34 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Tests for mutating variables
7 - */
8 -
9 -'use strict';
10 -
11 -const babelTraverse = require('@babel/traverse').default;
12 -
13 -const common = require('../mutators/common.js');
14 -const helpers = require('./helpers.js');
15 -
16 -describe('Available variables and functions', () => {
17 - it('test', () => {
18 - const source = helpers.loadTestData('available_variables.js');
19 - const result = new Array();
20 -
21 - babelTraverse(source.ast, {
22 - CallExpression(path) {
23 - result.push({
24 - variables: common.availableVariables(path),
25 - functions: common.availableFunctions(path),
26 - });
27 - }
28 - });
29 -
30 - helpers.assertExpectedResult(
31 - 'available_variables_expected.js',
32 - JSON.stringify(result, null, 2));
33 - });
34 -});
compiler/packages/js-fuzzer/test/test_corpus.js deleted
-113
@@ -1,113 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Corpus loading.
7 - */
8 -
9 -'use strict';
10 -
11 -const assert = require('assert');
12 -const sinon = require('sinon');
13 -
14 -const exceptions = require('../exceptions.js');
15 -const corpus = require('../corpus.js');
16 -
17 -const sandbox = sinon.createSandbox();
18 -
19 -function testSoftSkipped(count, softSkipped, paths) {
20 - sandbox.stub(exceptions, 'getSoftSkipped').callsFake(() => {
21 - return softSkipped;
22 - });
23 - const mjsunit = new corpus.Corpus('test_data', 'mjsunit_softskipped');
24 - const cases = mjsunit.getRandomTestcasePaths(count);
25 - assert.deepEqual(paths, cases);
26 -}
27 -
28 -describe('Loading corpus', () => {
29 - afterEach(() => {
30 - sandbox.restore();
31 - });
32 -
33 - it('keeps all tests with no soft-skipped tests', () => {
34 - sandbox.stub(Math, 'random').callsFake(() => 0.9);
35 - testSoftSkipped(
36 - 3,
37 - [],
38 - ['mjsunit_softskipped/permitted.js',
39 - 'mjsunit_softskipped/object-literal.js',
40 - 'mjsunit_softskipped/regress/binaryen-123.js']);
41 - });
42 -
43 - it('choose one test with no soft-skipped tests', () => {
44 - sandbox.stub(Math, 'random').callsFake(() => 0.9);
45 - testSoftSkipped(
46 - 1,
47 - [],
48 - ['mjsunit_softskipped/permitted.js']);
49 - });
50 -
51 - it('keeps soft-skipped tests', () => {
52 - sandbox.stub(Math, 'random').callsFake(() => 0.9);
53 - testSoftSkipped(
54 - 1,
55 - [/^binaryen.*\.js/, 'object-literal.js'],
56 - ['mjsunit_softskipped/permitted.js']);
57 - });
58 -
59 - it('keeps no generated soft-skipped tests', () => {
60 - sandbox.stub(Math, 'random').callsFake(() => 0.9);
61 - const softSkipped = [
62 - // Correctly listed full relative path of test case.
63 - 'mjsunit_softskipped/regress/binaryen-123.js',
64 - // Only basename doesn't match.
65 - 'object-literal.js',
66 - // Only pieces of the path don't match.
67 - 'mjsunit_softskipped',
68 - ];
69 - sandbox.stub(exceptions, 'getGeneratedSoftSkipped').callsFake(
70 - () => { return new Set(softSkipped); });
71 - testSoftSkipped(
72 - 2,
73 - // None soft-skipped for basenames and regexps.
74 - [],
75 - // Only binaryen-123.js gets filtered out.
76 - ['mjsunit_softskipped/object-literal.js',
77 - 'mjsunit_softskipped/permitted.js']);
78 - });
79 -
80 - it('keeps soft-skipped tests by chance', () => {
81 - sandbox.stub(Math, 'random').callsFake(() => 0);
82 - testSoftSkipped(
83 - 3,
84 - [/^binaryen.*\.js/, 'object-literal.js'],
85 - ['mjsunit_softskipped/object-literal.js',
86 - 'mjsunit_softskipped/regress/binaryen-123.js',
87 - 'mjsunit_softskipped/permitted.js']);
88 - });
89 -
90 - it('caches relative paths', () => {
91 - sandbox.stub(Math, 'random').callsFake(() => 0);
92 - sandbox.stub(exceptions, 'getSoftSkipped').callsFake(
93 - () => { return ['object-literal.js']; });
94 - const generatedSoftSkipped = [
95 - 'mjsunit_softskipped/regress/binaryen-123.js',
96 - ];
97 - sandbox.stub(exceptions, 'getGeneratedSoftSkipped').callsFake(
98 - () => { return new Set(generatedSoftSkipped); });
99 - const mjsunit = new corpus.Corpus('test_data' , 'mjsunit_softskipped');
100 - assert.deepEqual(
101 - ['mjsunit_softskipped/object-literal.js',
102 - 'mjsunit_softskipped/regress/binaryen-123.js'],
103 - mjsunit.softSkippedFiles);
104 - assert.deepEqual(
105 - ['mjsunit_softskipped/permitted.js'],
106 - mjsunit.permittedFiles);
107 - assert.deepEqual(
108 - ['mjsunit_softskipped/permitted.js',
109 - 'mjsunit_softskipped/object-literal.js',
110 - 'mjsunit_softskipped/regress/binaryen-123.js'],
111 - Array.from(mjsunit.relFiles()));
112 - });
113 -});
compiler/packages/js-fuzzer/test/test_db.js deleted
-33
@@ -1,33 +0,0 @@
1 -// Copyright 2021 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Test the script building the DB.
7 - */
8 -
9 -'use strict';
10 -
11 -const assert = require('assert');
12 -const { execSync } = require("child_process");
13 -const fs = require('fs');
14 -const path = require('path');
15 -const tempy = require('tempy');
16 -
17 -function buildDb(inputDir, corpusName, outputDir) {
18 - execSync(
19 - `node build_db.js -i ${inputDir} -o ${outputDir} ${corpusName}`,
20 - {stdio: ['pipe']});
21 -}
22 -
23 -describe('DB tests', () => {
24 - // Test feeds an expression that does not apply.
25 - it('omits erroneous expressions', () => {
26 - const outPath = tempy.directory();
27 - buildDb('test_data/db', 'this', outPath);
28 - const indexFile = path.join(outPath, 'index.json');
29 - const indexJSON = JSON.parse(fs.readFileSync(indexFile), 'utf-8');
30 - assert.deepEqual(
31 - indexJSON, {"statements": [], "superStatements": [], "all": []});
32 - });
33 -});
compiler/packages/js-fuzzer/test/test_differential_fuzz.js deleted
-141
@@ -1,141 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Tests for differential fuzzing.
7 - */
8 -
9 -'use strict';
10 -
11 -const assert = require('assert');
12 -const program = require('commander');
13 -const sinon = require('sinon');
14 -
15 -const helpers = require('./helpers.js');
16 -const scriptMutator = require('../script_mutator.js');
17 -const sourceHelpers = require('../source_helpers.js');
18 -const random = require('../random.js');
19 -
20 -const { DifferentialFuzzMutator, DifferentialFuzzSuppressions } = require(
21 - '../mutators/differential_fuzz_mutator.js');
22 -const { DifferentialScriptMutator } = require(
23 - '../differential_script_mutator.js');
24 -
25 -const sandbox = sinon.createSandbox();
26 -
27 -function testMutators(settings, mutatorClass, inputFile, expectedFile) {
28 - const source = helpers.loadTestData('differential_fuzz/' + inputFile);
29 -
30 - const mutator = new mutatorClass(settings);
31 - mutator.mutate(source);
32 -
33 - const mutated = sourceHelpers.generateCode(source);
34 - helpers.assertExpectedResult(
35 - 'differential_fuzz/' + expectedFile, mutated);
36 -}
37 -
38 -describe('Differential fuzzing', () => {
39 - beforeEach(() => {
40 - // Zero settings for all mutators.
41 - this.settings = scriptMutator.defaultSettings();
42 - for (const key of Object.keys(this.settings)) {
43 - this.settings[key] = 0.0;
44 - }
45 - // By default, deterministically use all mutations of differential
46 - // fuzzing.
47 - this.settings['DIFF_FUZZ_EXTRA_PRINT'] = 1.0;
48 - this.settings['DIFF_FUZZ_TRACK_CAUGHT'] = 1.0;
49 -
50 - // Fake fuzzer being called with --input_dir flag.
51 - this.oldInputDir = program.input_dir;
52 - program.input_dir = helpers.BASE_DIR;
53 - });
54 -
55 - afterEach(() => {
56 - sandbox.restore();
57 - program.input_dir = this.oldInputDir;
58 - });
59 -
60 - it('applies suppressions', () => {
61 - // This selects the first random variable when replacing .arguments.
62 - sandbox.stub(random, 'single').callsFake(a => a[0]);
63 - testMutators(
64 - this.settings,
65 - DifferentialFuzzSuppressions,
66 - 'suppressions.js',
67 - 'suppressions_expected.js');
68 - });
69 -
70 - it('adds extra printing', () => {
71 - testMutators(
72 - this.settings,
73 - DifferentialFuzzMutator,
74 - 'mutations.js',
75 - 'mutations_expected.js');
76 - });
77 -
78 - it('does no extra printing', () => {
79 - this.settings['DIFF_FUZZ_EXTRA_PRINT'] = 0.0;
80 - testMutators(
81 - this.settings,
82 - DifferentialFuzzMutator,
83 - 'exceptions.js',
84 - 'exceptions_expected.js');
85 - });
86 -
87 - it('runs end to end', () => {
88 - // Don't choose any zeroed settings or IGNORE_DEFAULT_PROB in try-catch
89 - // mutator. Choose using original flags with >= 2%.
90 - const chooseOrigFlagsProb = 0.2;
91 - sandbox.stub(random, 'choose').callsFake((p) => p >= chooseOrigFlagsProb);
92 -
93 - // Fake build directory from which two json configurations for flags are
94 - // loaded.
95 - const env = {
96 - APP_DIR: 'test_data/differential_fuzz',
97 - GENERATE: process.env.GENERATE,
98 - };
99 - sandbox.stub(process, 'env').value(env);
100 -
101 - // Fake loading resources and instead load one fixed fake file for each.
102 - sandbox.stub(sourceHelpers, 'loadResource').callsFake(() => {
103 - return helpers.loadTestData('differential_fuzz/fake_resource.js');
104 - });
105 -
106 - // Load input files.
107 - const files = [
108 - 'differential_fuzz/input1.js',
109 - 'differential_fuzz/input2.js',
110 - ];
111 - const sources = files.map(helpers.loadTestData);
112 -
113 - // Apply top-level fuzzing, with all probabilistic configs switched off.
114 - this.settings['DIFF_FUZZ_EXTRA_PRINT'] = 0.0;
115 - this.settings['DIFF_FUZZ_TRACK_CAUGHT'] = 0.0;
116 - const mutator = new DifferentialScriptMutator(
117 - this.settings, helpers.DB_DIR);
118 - const mutated = mutator.mutateMultiple(sources);
119 - helpers.assertExpectedResult(
120 - 'differential_fuzz/combined_expected.js', mutated.code);
121 -
122 - // Flags for v8_foozzie.py are calculated from v8_fuzz_experiments.json and
123 - // v8_fuzz_flags.json in test_data/differential_fuzz.
124 - const expectedFlags = [
125 - '--first-config=ignition',
126 - '--second-config=ignition_turbo',
127 - '--second-d8=d8',
128 - '--second-config-extra-flags=--foo1',
129 - '--second-config-extra-flags=--foo2',
130 - '--first-config-extra-flags=--flag1',
131 - '--second-config-extra-flags=--flag1',
132 - '--first-config-extra-flags=--flag2',
133 - '--second-config-extra-flags=--flag2',
134 - '--first-config-extra-flags=--flag3',
135 - '--second-config-extra-flags=--flag3',
136 - '--first-config-extra-flags=--flag4',
137 - '--second-config-extra-flags=--flag4'
138 - ];
139 - assert.deepEqual(expectedFlags, mutated.flags);
140 - });
141 -});
compiler/packages/js-fuzzer/test/test_differential_fuzz_library.js deleted
-113
@@ -1,113 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Tests for the differential-fuzzing library files.
7 - */
8 -
9 -'use strict';
10 -
11 -const assert = require('assert');
12 -const fs = require('fs');
13 -const path = require('path');
14 -
15 -const libPath = path.resolve(
16 - path.join(__dirname, '..', 'resources', 'differential_fuzz_library.js'));
17 -const code = fs.readFileSync(libPath, 'utf-8');
18 -
19 -// We wire the print function to write to this result variable.
20 -const resultDummy = 'let result; const print = text => { result = text; };';
21 -
22 -// The prettyPrinted function from mjsunit is reused in the library.
23 -const prettyPrint = 'let prettyPrinted = value => value;';
24 -
25 -const hookedUpCode = resultDummy + prettyPrint + code;
26 -
27 -// Runs the library, adds test code and verifies the result.
28 -function testLibrary(testCode, expected) {
29 - // The code isn't structured as a module. The test code is expected to
30 - // evaluate to a result which we store in actual.
31 - const actual = eval(hookedUpCode + testCode);
32 - assert.deepEqual(expected, actual);
33 -}
34 -
35 -describe('Differential fuzzing library', () => {
36 - it('prints objects', () => {
37 - testLibrary(
38 - '__prettyPrint([0, 1, 2, 3]); result;',
39 - '[0, 1, 2, 3]');
40 - testLibrary(
41 - '__prettyPrint({0: 1, 2: 3}); result;',
42 - 'Object{0: 1, 2: 3}');
43 - testLibrary(
44 - 'const o = {}; o.k = 42;__prettyPrint(o); result;',
45 - 'Object{k: 42}');
46 - });
47 -
48 - it('cuts off deep nesting', () => {
49 - // We print only until a nesting depth of 4.
50 - testLibrary(
51 - '__prettyPrint({0: [1, 2, [3, {4: []}]]}); result;',
52 - 'Object{0: [1, 2, [3, Object{4: ...}]]}');
53 - });
54 -
55 - it('cuts off long strings', () => {
56 - const long = new Array(66).join('a');
57 - const head = new Array(55).join('a');
58 - const tail = new Array(10).join('a');
59 - testLibrary(
60 - `__prettyPrint("${long}"); result;`,
61 - `${head}[...]${tail}`);
62 - // If the string gets longer, the cut-off version is still the same.
63 - const veryLong = new Array(100).join('a');
64 - testLibrary(
65 - `__prettyPrint("${veryLong}"); result;`,
66 - `${head}[...]${tail}`);
67 - });
68 -
69 - it('tracks hash difference', () => {
70 - // Test that we track a hash value for each string we print.
71 - const long = new Array(66).join('a');
72 - testLibrary(
73 - `__prettyPrint("${long}"); __hash;`,
74 - 2097980794);
75 - // Test that the hash value differs, also when the cut-off result doesn't.
76 - const veryLong = new Array(100).join('a');
77 - testLibrary(
78 - `__prettyPrint("${veryLong}"); __hash;`,
79 - -428472866);
80 - // Test that repeated calls update the hash.
81 - testLibrary(
82 - `__prettyPrint("${long}");__prettyPrint("${long}"); __hash;`,
83 - -909224493);
84 - });
85 -
86 - it('limits extra printing', () => {
87 - // Test that after exceeding the limit for calling extra printing, there
88 - // is no new string printed (in the test case no new result added).
89 - testLibrary(
90 - 'for (let i = 0; i < 20; i++) __prettyPrintExtra(i); result;',
91 - '19');
92 - testLibrary(
93 - 'for (let i = 0; i < 101; i++) __prettyPrintExtra(i); result;',
94 - '99');
95 - testLibrary(
96 - 'for (let i = 0; i < 102; i++) __prettyPrintExtra(i); result;',
97 - '99');
98 - });
99 -
100 - it('tracks hash after limit', () => {
101 - // Test that after exceeding the limit for calling extra printing, the
102 - // hash is still updated.
103 - testLibrary(
104 - 'for (let i = 0; i < 20; i++) __prettyPrintExtra(i); __hash;',
105 - -945753644);
106 - testLibrary(
107 - 'for (let i = 0; i < 101; i++) __prettyPrintExtra(i); __hash;',
108 - 1907055979);
109 - testLibrary(
110 - 'for (let i = 0; i < 102; i++) __prettyPrintExtra(i); __hash;',
111 - -590842070);
112 - });
113 -});
compiler/packages/js-fuzzer/test/test_load.js deleted
-69
@@ -1,69 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Test normalization.
7 - */
8 -
9 -'use strict';
10 -
11 -const sinon = require('sinon');
12 -
13 -const helpers = require('./helpers.js');
14 -const sourceHelpers = require('../source_helpers.js');
15 -
16 -const { ScriptMutator } = require('../script_mutator.js');
17 -
18 -const sandbox = sinon.createSandbox();
19 -
20 -function testLoad(testPath, expectedPath) {
21 - const mutator = new ScriptMutator({}, helpers.DB_DIR);
22 - const source = helpers.loadTestData(testPath);
23 - const dependencies = mutator.resolveInputDependencies([source]);
24 - const code = sourceHelpers.generateCode(source, dependencies);
25 - helpers.assertExpectedResult(expectedPath, code);
26 -}
27 -
28 -describe('V8 dependencies', () => {
29 - it('test', () => {
30 - testLoad(
31 - 'mjsunit/test_load.js',
32 - 'mjsunit/test_load_expected.js');
33 -
34 - });
35 - it('does not loop indefinitely', () => {
36 - testLoad(
37 - 'mjsunit/test_load_self.js',
38 - 'mjsunit/test_load_self_expected.js');
39 - });
40 -});
41 -
42 -describe('Chakra dependencies', () => {
43 - it('test', () => {
44 - testLoad(
45 - 'chakra/load.js',
46 - 'chakra/load_expected.js');
47 - });
48 -});
49 -
50 -describe('JSTest dependencies', () => {
51 - afterEach(() => {
52 - sandbox.restore();
53 - });
54 -
55 - it('test', () => {
56 - const fakeStubs = sourceHelpers.loadSource(
57 - helpers.BASE_DIR, 'JSTests/fake_stub.js');
58 - sandbox.stub(sourceHelpers, 'loadResource').callsFake(() => fakeStubs);
59 - testLoad('JSTests/load.js', 'JSTests/load_expected.js');
60 - });
61 -});
62 -
63 -describe('SpiderMonkey dependencies', () => {
64 - it('test', () => {
65 - testLoad(
66 - 'spidermonkey/test/load.js',
67 - 'spidermonkey/test/load_expected.js');
68 - });
69 -});
compiler/packages/js-fuzzer/test/test_mutate_arrays.js deleted
-47
@@ -1,47 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Tests for mutating arrays
7 - */
8 -
9 -'use strict';
10 -
11 -const sinon = require('sinon');
12 -
13 -const babylon = require('@babel/parser');
14 -
15 -const common = require('../mutators/common.js');
16 -const helpers = require('./helpers.js');
17 -const scriptMutator = require('../script_mutator.js');
18 -const sourceHelpers = require('../source_helpers.js');
19 -
20 -const {ArrayMutator} = require('../mutators/array_mutator.js');
21 -
22 -const sandbox = sinon.createSandbox();
23 -
24 -describe('Mutate arrays', () => {
25 - afterEach(() => {
26 - sandbox.restore();
27 - });
28 -
29 - it('performs all mutations', () => {
30 - // Make random operations deterministic.
31 - sandbox.stub(common, 'randomValue').callsFake(
32 - () => babylon.parseExpression('""'));
33 - helpers.deterministicRandom(sandbox);
34 -
35 - const source = helpers.loadTestData('mutate_arrays.js');
36 -
37 - const settings = scriptMutator.defaultSettings();
38 - settings['MUTATE_ARRAYS'] = 1.0;
39 -
40 - const mutator = new ArrayMutator(settings);
41 - mutator.mutate(source);
42 -
43 - const mutated = sourceHelpers.generateCode(source);
44 - helpers.assertExpectedResult(
45 - 'mutate_arrays_expected.js', mutated);
46 - });
47 -});
compiler/packages/js-fuzzer/test/test_mutate_expressions.js deleted
-79
@@ -1,79 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Tests for mutating expressions
7 - */
8 -
9 -'use strict';
10 -
11 -const assert = require('assert');
12 -
13 -const babelTypes = require('@babel/types');
14 -const sinon = require('sinon');
15 -
16 -const common = require('../mutators/common.js');
17 -const expressionMutator = require('../mutators/expression_mutator.js');
18 -const helpers = require('./helpers.js');
19 -const scriptMutator = require('../script_mutator.js');
20 -const sourceHelpers = require('../source_helpers.js');
21 -const random = require('../random.js');
22 -
23 -const sandbox = sinon.createSandbox();
24 -
25 -function testCloneSiblings(expected_file) {
26 - const source = helpers.loadTestData('mutate_expressions.js');
27 -
28 - const settings = scriptMutator.defaultSettings();
29 - settings['MUTATE_EXPRESSIONS'] = 1.0;
30 -
31 - const mutator = new expressionMutator.ExpressionMutator(settings);
32 - mutator.mutate(source);
33 -
34 - const mutated = sourceHelpers.generateCode(source);
35 - helpers.assertExpectedResult(expected_file, mutated);
36 -}
37 -
38 -describe('Mutate expressions', () => {
39 - beforeEach(() => {
40 - // Select the previous sibling.
41 - sandbox.stub(random, 'randInt').callsFake((a, b) => b);
42 - // This chooses cloning siblings.
43 - sandbox.stub(random, 'random').callsFake(() => 0.8);
44 - });
45 -
46 - afterEach(() => {
47 - sandbox.restore();
48 - });
49 -
50 - it('clones previous to current', () => {
51 - // Keep the order of [previous, current], select previous.
52 - sandbox.stub(random, 'shuffle').callsFake(a => a);
53 - // Insert after. Keep returning true for the MUTATE_EXPRESSIONS check.
54 - sandbox.stub(random, 'choose').callsFake(a => a === 1);
55 -
56 - testCloneSiblings('mutate_expressions_previous_expected.js');
57 - });
58 -
59 - it('clones current to previous', () => {
60 - // Switch the order of [previous, current], select current.
61 - sandbox.stub(random, 'shuffle').callsFake(a => [a[1], a[0]]);
62 - // Insert before.
63 - sandbox.stub(random, 'choose').callsFake(() => true);
64 -
65 - testCloneSiblings('mutate_expressions_current_expected.js');
66 - });
67 -});
68 -
69 -describe('Cloning', () => {
70 - // Ensure that the source location we add are not cloned.
71 - it('is not copying added state', () => {
72 - const source = helpers.loadTestData('mutate_expressions.js');
73 - common.setSourceLoc(source, 5, 10);
74 - const noopNode = source.ast.program.body[0];
75 - assert.equal(0.5, common.getSourceLoc(noopNode));
76 - const cloned = babelTypes.cloneDeep(noopNode);
77 - assert.equal(undefined, common.getSourceLoc(cloned));
78 - });
79 -});
compiler/packages/js-fuzzer/test/test_mutate_function_calls.js deleted
-84
@@ -1,84 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Tests for mutating funciton calls.
7 - */
8 -
9 -'use strict';
10 -
11 -const sinon = require('sinon');
12 -
13 -const helpers = require('./helpers.js');
14 -const random = require('../random.js');
15 -const scriptMutator = require('../script_mutator.js');
16 -const sourceHelpers = require('../source_helpers.js');
17 -const functionCallMutator = require('../mutators/function_call_mutator.js');
18 -
19 -const sandbox = sinon.createSandbox();
20 -
21 -function loadAndMutate(input_file) {
22 - const source = helpers.loadTestData(input_file);
23 -
24 - const settings = scriptMutator.defaultSettings();
25 - settings['engine'] = 'V8';
26 - settings['MUTATE_FUNCTION_CALLS'] = 1.0;
27 -
28 - const mutator = new functionCallMutator.FunctionCallMutator(settings);
29 - mutator.mutate(source);
30 - return source;
31 -}
32 -
33 -describe('Mutate functions', () => {
34 - afterEach(() => {
35 - sandbox.restore();
36 - });
37 -
38 - it('is robust without available functions', () => {
39 - sandbox.stub(random, 'random').callsFake(() => { return 0.2; });
40 -
41 - // We just ensure here that mutating this file doesn't throw.
42 - loadAndMutate('mutate_function_call.js');
43 - });
44 -
45 - it('optimizes functions with turbofan in V8', () => {
46 - sandbox.stub(random, 'random').callsFake(() => { return 0.5; });
47 - sandbox.stub(random, 'choose').callsFake(p => true);
48 -
49 - const source = loadAndMutate('mutate_function_call.js');
50 - const mutated = sourceHelpers.generateCode(source);
51 - helpers.assertExpectedResult(
52 - 'mutate_function_call_expected.js', mutated);
53 - });
54 -
55 - it('optimizes functions with maglev in V8', () => {
56 - sandbox.stub(random, 'random').callsFake(() => { return 0.5; });
57 - // False-path takes 'Maglev'. Other calls to choose should return
58 - // true. It's also used to determine if a mutator should be chosen.
59 - sandbox.stub(random, 'choose').callsFake(p => p == 0.7 ? false : true);
60 -
61 - const source = loadAndMutate('mutate_function_call.js');
62 - const mutated = sourceHelpers.generateCode(source);
63 - helpers.assertExpectedResult(
64 - 'mutate_function_call_maglev_expected.js', mutated);
65 - });
66 -
67 - it('compiles functions in V8 to baseline', () => {
68 - sandbox.stub(random, 'random').callsFake(() => { return 0.7; });
69 -
70 - const source = loadAndMutate('mutate_function_call.js');
71 - const mutated = sourceHelpers.generateCode(source);
72 - helpers.assertExpectedResult(
73 - 'mutate_function_call_baseline_expected.js', mutated);
74 - });
75 -
76 - it('deoptimizes functions in V8', () => {
77 - sandbox.stub(random, 'random').callsFake(() => { return 0.8; });
78 -
79 - const source = loadAndMutate('mutate_function_call.js');
80 - const mutated = sourceHelpers.generateCode(source);
81 - helpers.assertExpectedResult(
82 - 'mutate_function_call_deopt_expected.js', mutated);
83 - });
84 -});
compiler/packages/js-fuzzer/test/test_mutate_numbers.js deleted
-54
@@ -1,54 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Tests for mutating variables
7 - */
8 -
9 -'use strict';
10 -
11 -const babelTypes = require('@babel/types');
12 -const sinon = require('sinon');
13 -
14 -const common = require('../mutators/common.js');
15 -const helpers = require('./helpers.js');
16 -const scriptMutator = require('../script_mutator.js');
17 -const sourceHelpers = require('../source_helpers.js');
18 -const numberMutator = require('../mutators/number_mutator.js');
19 -const random = require('../random.js');
20 -
21 -const sandbox = sinon.createSandbox();
22 -
23 -describe('Mutate numbers', () => {
24 - beforeEach(() => {
25 - sandbox.stub(common, 'nearbyRandomNumber').callsFake(
26 - () => { return babelTypes.numericLiteral(-3) });
27 - sandbox.stub(common, 'randomInterestingNumber').callsFake(
28 - () => { return babelTypes.numericLiteral(-4) });
29 - sandbox.stub(random, 'randInt').callsFake(() => { return -5 });
30 -
31 - // Interesting cases from number mutator.
32 - const interestingProbs = [0.009, 0.05, 0.5];
33 - sandbox.stub(random, 'random').callsFake(
34 - helpers.cycleProbabilitiesFun(interestingProbs));
35 - });
36 -
37 - afterEach(() => {
38 - sandbox.restore();
39 - });
40 -
41 - it('test', () => {
42 - const source = helpers.loadTestData('mutate_numbers.js');
43 -
44 - const settings = scriptMutator.defaultSettings();
45 - settings['MUTATE_NUMBERS'] = 1.0;
46 -
47 - const mutator = new numberMutator.NumberMutator(settings);
48 - mutator.mutate(source);
49 -
50 - const mutated = sourceHelpers.generateCode(source);
51 - helpers.assertExpectedResult(
52 - 'mutate_numbers_expected.js', mutated);
53 - });
54 -});
compiler/packages/js-fuzzer/test/test_mutate_objects.js deleted
-47
@@ -1,47 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Tests for mutating object expressions
7 - */
8 -
9 -'use strict';
10 -
11 -const sinon = require('sinon');
12 -
13 -const babylon = require('@babel/parser');
14 -
15 -const common = require('../mutators/common.js');
16 -const helpers = require('./helpers.js');
17 -const scriptMutator = require('../script_mutator.js');
18 -const sourceHelpers = require('../source_helpers.js');
19 -
20 -const {ObjectMutator} = require('../mutators/object_mutator.js');
21 -
22 -const sandbox = sinon.createSandbox();
23 -
24 -describe('Mutate objects', () => {
25 - afterEach(() => {
26 - sandbox.restore();
27 - });
28 -
29 - it('performs all mutations', () => {
30 - // Make random operations deterministic.
31 - sandbox.stub(common, 'randomValue').callsFake(
32 - () => babylon.parseExpression('""'));
33 - helpers.deterministicRandom(sandbox);
34 -
35 - const source = helpers.loadTestData('mutate_objects.js');
36 -
37 - const settings = scriptMutator.defaultSettings();
38 - settings['MUTATE_OBJECTS'] = 1.0;
39 -
40 - const mutator = new ObjectMutator(settings);
41 - mutator.mutate(source);
42 -
43 - const mutated = sourceHelpers.generateCode(source);
44 - helpers.assertExpectedResult(
45 - 'mutate_objects_expected.js', mutated);
46 - });
47 -});
compiler/packages/js-fuzzer/test/test_mutate_variable_or_object.js deleted
-72
@@ -1,72 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Test variable-or-object mutator.
7 - */
8 -
9 -'use strict';
10 -
11 -const babylon = require('@babel/parser');
12 -const sinon = require('sinon');
13 -
14 -const common = require('../mutators/common.js');
15 -const helpers = require('./helpers.js');
16 -const variableOrObject = require('../mutators/variable_or_object_mutation.js');
17 -const random = require('../random.js');
18 -const sourceHelpers = require('../source_helpers.js');
19 -
20 -const sandbox = sinon.createSandbox();
21 -
22 -function testMutations(testPath, expectedPath) {
23 - const source = helpers.loadTestData(testPath);
24 -
25 - const mutator = new variableOrObject.VariableOrObjectMutator(
26 - { ADD_VAR_OR_OBJ_MUTATIONS: 1.0 });
27 -
28 - mutator.mutate(source);
29 -
30 - const mutated = sourceHelpers.generateCode(source);
31 - helpers.assertExpectedResult(expectedPath, mutated);
32 -}
33 -
34 -describe('Variable or object mutator', () => {
35 - beforeEach(() => {
36 - // Make before/after insertion deterministic. This also chooses
37 - // random objects.
38 - sandbox.stub(random, 'choose').callsFake(() => { return true; });
39 - // This stubs out the random seed.
40 - sandbox.stub(random, 'randInt').callsFake(() => { return 123; });
41 - // Random value is itself dependent on too much randomization.
42 - sandbox.stub(common, 'randomValue').callsFake(
43 - () => { return babylon.parseExpression('0'); });
44 - });
45 -
46 - afterEach(() => {
47 - sandbox.restore();
48 - });
49 -
50 - it('test', () => {
51 - let index = 0;
52 - // Test different cases of _randomVariableOrObjectMutations in
53 - // variable_or_object_mutation.js.
54 - const choices = [
55 - 0.2, // Trigger recursive case.
56 - 0.3, // Recursion 1: Delete.
57 - 0.4, // Recursion 2: Property access.
58 - 0.5, // Random assignment.
59 - // 0.6 case for randomFunction omitted as it has too much randomization.
60 - 0.7, // Variable assignment.
61 - 0.8, // Object.defineProperty.
62 - 0.9, // Object.defineProperty recursive.
63 - 0.3, // Recursion 1: Delete.
64 - 0.4, // Recursion 2: Property access.
65 - ];
66 - sandbox.stub(random, 'random').callsFake(
67 - () => { return choices[index++]; });
68 - testMutations(
69 - 'mutate_var_or_obj.js',
70 - 'mutate_var_or_obj_expected.js');
71 - });
72 -});
compiler/packages/js-fuzzer/test/test_mutate_variables.js deleted
-47
@@ -1,47 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Tests for mutating variables
7 - */
8 -
9 -'use strict';
10 -
11 -const babelTypes = require('@babel/types');
12 -const sinon = require('sinon');
13 -
14 -const common = require('../mutators/common.js');
15 -const helpers = require('./helpers.js');
16 -const scriptMutator = require('../script_mutator.js');
17 -const sourceHelpers = require('../source_helpers.js');
18 -const variableMutator = require('../mutators/variable_mutator.js');
19 -
20 -const sandbox = sinon.createSandbox();
21 -
22 -describe('Mutate variables', () => {
23 - beforeEach(() => {
24 - sandbox.stub(
25 - common, 'randomVariable').callsFake(
26 - () => { return babelTypes.identifier('REPLACED') });
27 - });
28 -
29 - afterEach(() => {
30 - sandbox.restore();
31 - });
32 -
33 - it('test', () => {
34 -
35 - const source = helpers.loadTestData('mutate_variables.js');
36 -
37 - const settings = scriptMutator.defaultSettings();
38 - settings['MUTATE_VARIABLES'] = 1.0;
39 -
40 - const mutator = new variableMutator.VariableMutator(settings);
41 - mutator.mutate(source);
42 -
43 - const mutated = sourceHelpers.generateCode(source);
44 - helpers.assertExpectedResult(
45 - 'mutate_variables_expected.js', mutated);
46 - });
47 -});
compiler/packages/js-fuzzer/test/test_mutation_order.js deleted
-56
@@ -1,56 +0,0 @@
1 -// Copyright 2022 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Test shuffling mutators and extra mutations.
7 - *
8 - * Use minimal probability settings to demonstrate order changes of top-level
9 - * mutators. Which mutations are used exactly is not relevant to the test and
10 - * handled pseudo-randomly.
11 - */
12 -
13 -'use strict';
14 -
15 -const sinon = require('sinon');
16 -
17 -const helpers = require('./helpers.js');
18 -const scriptMutator = require('../script_mutator.js');
19 -const sourceHelpers = require('../source_helpers.js');
20 -const random = require('../random.js');
21 -
22 -const sandbox = sinon.createSandbox();
23 -
24 -describe('Toplevel mutations', () => {
25 - afterEach(() => {
26 - sandbox.restore();
27 - });
28 -
29 - it('shuffle their order', () => {
30 - // Make random operations deterministic.
31 - helpers.deterministicRandom(sandbox);
32 -
33 - this.settings = {
34 - ADD_VAR_OR_OBJ_MUTATIONS: 0.0,
35 - MUTATE_CROSSOVER_INSERT: 0.0,
36 - MUTATE_EXPRESSIONS: 0.0,
37 - MUTATE_FUNCTION_CALLS: 1.0,
38 - MUTATE_NUMBERS: 1.0,
39 - MUTATE_VARIABLES: 0.0,
40 - SCRIPT_MUTATOR_SHUFFLE: 1.0,
41 - SCRIPT_MUTATOR_EXTRA_MUTATIONS: 1.0,
42 - engine: 'V8',
43 - testing: true,
44 - };
45 -
46 - const source = helpers.loadTestData('mutation_order/input.js');
47 - const mutator = new scriptMutator.ScriptMutator(this.settings, helpers.DB_DIR);
48 - const mutated = mutator.mutateInputs([source]);
49 - const code = sourceHelpers.generateCode(mutated);
50 -
51 - // The test data should be rich enough to produce a pattern from the
52 - // FunctionCallMutator that afterwards gets mutated by the NumberMutator.
53 - helpers.assertExpectedResult(
54 - 'mutation_order/output_expected.js', code);
55 - });
56 -});
compiler/packages/js-fuzzer/test/test_normalize.js deleted
-42
@@ -1,42 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Test normalization.
7 - */
8 -
9 -'use strict';
10 -
11 -const helpers = require('./helpers.js');
12 -const normalizer = require('../mutators/normalizer.js');
13 -const sourceHelpers = require('../source_helpers.js');
14 -
15 -describe('Normalize', () => {
16 - it('test basic', () => {
17 - const source = helpers.loadTestData('normalize.js');
18 -
19 - const mutator = new normalizer.IdentifierNormalizer();
20 - mutator.mutate(source);
21 -
22 - const normalized_0 = sourceHelpers.generateCode(source);
23 - helpers.assertExpectedResult(
24 - 'normalize_expected_0.js', normalized_0);
25 -
26 - mutator.mutate(source);
27 - const normalized_1 = sourceHelpers.generateCode(source);
28 - helpers.assertExpectedResult(
29 - 'normalize_expected_1.js', normalized_1);
30 - });
31 -
32 - it('test simple_test.js', () => {
33 - const source = helpers.loadTestData('simple_test.js');
34 -
35 - const mutator = new normalizer.IdentifierNormalizer();
36 - mutator.mutate(source);
37 -
38 - const normalized = sourceHelpers.generateCode(source);
39 - helpers.assertExpectedResult(
40 - 'simple_test_expected.js', normalized);
41 - });
42 -});
compiler/packages/js-fuzzer/test/test_random.js deleted
-51
@@ -1,51 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Test random utilities.
7 - */
8 -
9 -'use strict';
10 -
11 -const assert = require('assert');
12 -const sinon = require('sinon');
13 -
14 -const { twoBucketSample } = require('../random.js');
15 -
16 -const sandbox = sinon.createSandbox();
17 -
18 -
19 -describe('Two-bucket choosing', () => {
20 - afterEach(() => {
21 - sandbox.restore();
22 - });
23 -
24 - it('with one empty', () => {
25 - sandbox.stub(Math, 'random').callsFake(() => 0.5);
26 - assert.deepEqual([1, 2], twoBucketSample([0, 1, 2], [], 1, 2));
27 - assert.deepEqual([1, 2], twoBucketSample([], [0, 1, 2], 1, 2));
28 - assert.deepEqual([0], twoBucketSample([0], [], 1, 1));
29 - assert.deepEqual([0], twoBucketSample([], [0], 1, 1));
30 - });
31 -
32 - it('chooses with 0.3', () => {
33 - sandbox.stub(Math, 'random').callsFake(() => 0.3);
34 - assert.deepEqual([1, 2], twoBucketSample([0, 1, 2], [3, 4, 5], 1, 2));
35 - // Higher factor.
36 - assert.deepEqual([3, 5], twoBucketSample([0, 1, 2], [3, 4, 5], 4, 2));
37 - });
38 -
39 - it('chooses with 0.7', () => {
40 - sandbox.stub(Math, 'random').callsFake(() => 0.7);
41 - assert.deepEqual([4, 3], twoBucketSample([0, 1, 2], [3, 4, 5], 1, 2));
42 - });
43 -
44 - it('chooses with 0.5', () => {
45 - sandbox.stub(Math, 'random').callsFake(() => 0.5);
46 - assert.deepEqual([3], twoBucketSample([0, 1], [2, 3, 4, 5], 1, 1));
47 - assert.deepEqual([3], twoBucketSample([0, 1, 2, 3], [4, 5], 1, 1));
48 - // Higher factor.
49 - assert.deepEqual([4], twoBucketSample([0, 1, 2, 3], [4, 5], 2, 1));
50 - });
51 -});
compiler/packages/js-fuzzer/test/test_regressions.js deleted
-113
@@ -1,113 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Regression tests.
7 - */
8 -
9 -'use strict';
10 -
11 -const assert = require('assert');
12 -const { execSync } = require("child_process");
13 -const fs = require('fs');
14 -const sinon = require('sinon');
15 -const tempfile = require('tempfile');
16 -const tempy = require('tempy');
17 -
18 -const exceptions = require('../exceptions.js');
19 -const helpers = require('./helpers.js');
20 -const scriptMutator = require('../script_mutator.js');
21 -
22 -const sandbox = sinon.createSandbox();
23 -
24 -const SYNTAX_ERROR_RE = /.*SyntaxError.*/
25 -
26 -function createFuzzTest(fake_db, settings, inputFiles) {
27 - const sources = inputFiles.map(input => helpers.loadTestData(input));
28 -
29 - const mutator = new scriptMutator.ScriptMutator(settings, fake_db);
30 - const result = mutator.mutateMultiple(sources);
31 -
32 - const output_file = tempfile('.js');
33 - fs.writeFileSync(output_file, result.code);
34 - return output_file;
35 -}
36 -
37 -function execFile(jsFile) {
38 - execSync("node " + jsFile, {stdio: ['pipe']});
39 -}
40 -
41 -describe('Regression tests', () => {
42 - beforeEach(() => {
43 - helpers.deterministicRandom(sandbox);
44 -
45 - this.settings = {
46 - ADD_VAR_OR_OBJ_MUTATIONS: 0.0,
47 - MUTATE_CROSSOVER_INSERT: 0.0,
48 - MUTATE_EXPRESSIONS: 0.0,
49 - MUTATE_FUNCTION_CALLS: 0.0,
50 - MUTATE_NUMBERS: 0.0,
51 - MUTATE_VARIABLES: 0.0,
52 - engine: 'V8',
53 - testing: true,
54 - }
55 - });
56 -
57 - afterEach(() => {
58 - sandbox.restore();
59 - });
60 -
61 - it('combine strict and with', () => {
62 - // Test that when a file with "use strict" is used in the inputs,
63 - // the result is only strict if no other file contains anything
64 - // prohibited in strict mode (here a with statement).
65 - // It is assumed that such input files are marked as sloppy in the
66 - // auto generated exceptions.
67 - sandbox.stub(exceptions, 'getGeneratedSloppy').callsFake(
68 - () => { return new Set(['regress/strict/input_with.js']); });
69 - const file = createFuzzTest(
70 - 'test_data/regress/strict/db',
71 - this.settings,
72 - ['regress/strict/input_strict.js', 'regress/strict/input_with.js']);
73 - execFile(file);
74 - });
75 -
76 - it('combine strict and delete', () => {
77 - // As above with unqualified delete.
78 - sandbox.stub(exceptions, 'getGeneratedSloppy').callsFake(
79 - () => { return new Set(['regress/strict/input_delete.js']); });
80 - const file = createFuzzTest(
81 - 'test_data/regress/strict/db',
82 - this.settings,
83 - ['regress/strict/input_strict.js', 'regress/strict/input_delete.js']);
84 - execFile(file);
85 - });
86 -
87 - it('mutates negative value', () => {
88 - // This tests that the combination of number, function call and expression
89 - // mutator does't produce an update expression.
90 - // Previously the 1 in -1 was replaced with another negative number leading
91 - // to e.g. -/*comment/*-2. Then cloning the expression removed the
92 - // comment and produced --2 in the end.
93 - this.settings['MUTATE_NUMBERS'] = 1.0;
94 - this.settings['MUTATE_FUNCTION_CALLS'] = 1.0;
95 - this.settings['MUTATE_EXPRESSIONS'] = 1.0;
96 - const file = createFuzzTest(
97 - 'test_data/regress/numbers/db',
98 - this.settings,
99 - ['regress/numbers/input_negative.js']);
100 - execFile(file);
101 - });
102 -
103 - it('mutates indices', () => {
104 - // Test that indices are not replaced with a negative number causing a
105 - // syntax error (e.g. {-1: ""}).
106 - this.settings['MUTATE_NUMBERS'] = 1.0;
107 - const file = createFuzzTest(
108 - 'test_data/regress/numbers/db',
109 - this.settings,
110 - ['regress/numbers/input_indices.js']);
111 - execFile(file);
112 - });
113 -});
compiler/packages/js-fuzzer/test/test_try_catch.js deleted
-85
@@ -1,85 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Test normalization.
7 - */
8 -
9 -'use strict';
10 -
11 -const sinon = require('sinon');
12 -
13 -const common = require('../mutators/common.js');
14 -const helpers = require('./helpers.js');
15 -const random = require('../random.js');
16 -const sourceHelpers = require('../source_helpers.js');
17 -const tryCatch = require('../mutators/try_catch.js');
18 -
19 -const sandbox = sinon.createSandbox();
20 -
21 -function loadSource() {
22 - return helpers.loadTestData('try_catch.js');
23 -}
24 -
25 -function testTryCatch(source, expected) {
26 - const mutator = new tryCatch.AddTryCatchMutator();
27 - mutator.mutate(source);
28 -
29 - const mutated = sourceHelpers.generateCode(source);
30 - helpers.assertExpectedResult(expected, mutated);
31 -}
32 -
33 -describe('Try catch', () => {
34 - afterEach(() => {
35 - sandbox.restore();
36 - });
37 -
38 - // Wrap on exit, hence wrap everything nested.
39 - it('wraps all', () => {
40 - sandbox.stub(random, 'choose').callsFake(() => { return false; });
41 - sandbox.stub(random, 'random').callsFake(() => { return 0.7; });
42 - testTryCatch(loadSource(), 'try_catch_expected.js');
43 - });
44 -
45 - // Wrap on enter and skip.
46 - it('wraps toplevel', () => {
47 - sandbox.stub(random, 'choose').callsFake(() => { return false; });
48 - sandbox.stub(random, 'random').callsFake(() => { return 0.04; });
49 - const source = loadSource();
50 -
51 - // Fake source fraction 0.1 (i.e. the second of 10 files).
52 - // Probability for toplevel try-catch is 0.05.
53 - common.setSourceLoc(source, 1, 10);
54 -
55 - testTryCatch(source, 'try_catch_toplevel_expected.js');
56 - });
57 -
58 - // Choose the rare case of skipping try-catch.
59 - it('wraps nothing', () => {
60 - sandbox.stub(random, 'choose').callsFake(() => { return false; });
61 - sandbox.stub(random, 'random').callsFake(() => { return 0.01; });
62 - const source = loadSource();
63 -
64 - // Fake source fraction 0.1 (i.e. the second of 10 files).
65 - // Probability for skipping is 0.02.
66 - common.setSourceLoc(source, 1, 10);
67 -
68 - testTryCatch(source, 'try_catch_nothing_expected.js');
69 - });
70 -
71 - // Choose to alter the target probability to 0.9 resulting in skipping
72 - // all try-catch.
73 - it('wraps nothing with high target probability', () => {
74 - sandbox.stub(random, 'choose').callsFake(() => { return true; });
75 - sandbox.stub(random, 'uniform').callsFake(() => { return 0.9; });
76 - sandbox.stub(random, 'random').callsFake(() => { return 0.8; });
77 - const source = loadSource();
78 -
79 - // Fake source fraction 0.9 (i.e. the last of 10 files).
80 - // Probability for skipping is 0.81 (0.9 * 0.9).
81 - common.setSourceLoc(source, 9, 10);
82 -
83 - testTryCatch(source, 'try_catch_alternate_expected.js');
84 - });
85 -});
compiler/packages/js-fuzzer/test_data/JSTests/fake_stub.js deleted
-5
@@ -1,5 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -print("Fake stub");
compiler/packages/js-fuzzer/test_data/JSTests/load.js deleted
-5
@@ -1,5 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -print("JSTest");
compiler/packages/js-fuzzer/test_data/JSTests/load_expected.js deleted
-9
@@ -1,9 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -// Original: JSTests/fake_stub.js
6 -print("Fake stub");
7 -
8 -// Original: JSTests/load.js
9 -print("JSTest");
compiler/packages/js-fuzzer/test_data/available_variables.js deleted
-33
@@ -1,33 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -let __v_0 = 0;
6 -let __v_1 = 0;
7 -
8 -console.log(__v_0, __v_1, __f_0, __f_1);
9 -
10 -function __f_0() {
11 - let __v_2 = 0;
12 - console.log(__v_0, __v_1, __v_2, __f_0, __f_1);
13 -}
14 -
15 -let __v_3 = 0;
16 -
17 -console.log(__v_0, __v_1, __v_3, __f_0, __f_1);
18 -
19 -function __f_1(__v_7) {
20 - let __v_4 = 0;
21 -
22 - console.log(__v_0, __v_1, __v_3, __v_4, __v_7, __f_0, __f_1);
23 - {
24 - let __v_5 = 0;
25 - var __v_6 = 0;
26 - console.log(__v_0, __v_1, __v_3, __v_4, __v_5, __v_6, __v_7, __f_0, __f_1, __f_2);
27 - function __f_2 () {};
28 - console.log(__v_0, __v_1, __v_3, __v_4, __v_5, __v_6, __v_7, __f_0, __f_1, __f_2);
29 - }
30 - // TODO(machenbach): __f_2 is missing as available identifier.
31 - console.log(__v_0, __v_1, __v_3, __v_4, __v_6, __v_7, __f_0, __f_1, __f_2);
32 -}
33 -console.log(__v_0, __v_1, __v_3, __f_0, __f_1);
compiler/packages/js-fuzzer/test_data/available_variables_expected.js deleted
-270
@@ -1,270 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -[
6 - {
7 - "variables": [
8 - {
9 - "type": "Identifier",
10 - "name": "__v_0"
11 - },
12 - {
13 - "type": "Identifier",
14 - "name": "__v_1"
15 - }
16 - ],
17 - "functions": [
18 - {
19 - "type": "Identifier",
20 - "name": "__f_0"
21 - },
22 - {
23 - "type": "Identifier",
24 - "name": "__f_1"
25 - }
26 - ]
27 - },
28 - {
29 - "variables": [
30 - {
31 - "type": "Identifier",
32 - "name": "__v_2"
33 - },
34 - {
35 - "type": "Identifier",
36 - "name": "__v_0"
37 - },
38 - {
39 - "type": "Identifier",
40 - "name": "__v_1"
41 - }
42 - ],
43 - "functions": [
44 - {
45 - "type": "Identifier",
46 - "name": "__f_0"
47 - },
48 - {
49 - "type": "Identifier",
50 - "name": "__f_1"
51 - }
52 - ]
53 - },
54 - {
55 - "variables": [
56 - {
57 - "type": "Identifier",
58 - "name": "__v_0"
59 - },
60 - {
61 - "type": "Identifier",
62 - "name": "__v_1"
63 - },
64 - {
65 - "type": "Identifier",
66 - "name": "__v_3"
67 - }
68 - ],
69 - "functions": [
70 - {
71 - "type": "Identifier",
72 - "name": "__f_0"
73 - },
74 - {
75 - "type": "Identifier",
76 - "name": "__f_1"
77 - }
78 - ]
79 - },
80 - {
81 - "variables": [
82 - {
83 - "type": "Identifier",
84 - "name": "__v_7"
85 - },
86 - {
87 - "type": "Identifier",
88 - "name": "__v_4"
89 - },
90 - {
91 - "type": "Identifier",
92 - "name": "__v_0"
93 - },
94 - {
95 - "type": "Identifier",
96 - "name": "__v_1"
97 - },
98 - {
99 - "type": "Identifier",
100 - "name": "__v_3"
101 - }
102 - ],
103 - "functions": [
104 - {
105 - "type": "Identifier",
106 - "name": "__f_0"
107 - },
108 - {
109 - "type": "Identifier",
110 - "name": "__f_1"
111 - }
112 - ]
113 - },
114 - {
115 - "variables": [
116 - {
117 - "type": "Identifier",
118 - "name": "__v_5"
119 - },
120 - {
121 - "type": "Identifier",
122 - "name": "__v_7"
123 - },
124 - {
125 - "type": "Identifier",
126 - "name": "__v_4"
127 - },
128 - {
129 - "type": "Identifier",
130 - "name": "__v_6"
131 - },
132 - {
133 - "type": "Identifier",
134 - "name": "__v_0"
135 - },
136 - {
137 - "type": "Identifier",
138 - "name": "__v_1"
139 - },
140 - {
141 - "type": "Identifier",
142 - "name": "__v_3"
143 - }
144 - ],
145 - "functions": [
146 - {
147 - "type": "Identifier",
148 - "name": "__f_2"
149 - },
150 - {
151 - "type": "Identifier",
152 - "name": "__f_0"
153 - },
154 - {
155 - "type": "Identifier",
156 - "name": "__f_1"
157 - }
158 - ]
159 - },
160 - {
161 - "variables": [
162 - {
163 - "type": "Identifier",
164 - "name": "__v_5"
165 - },
166 - {
167 - "type": "Identifier",
168 - "name": "__v_7"
169 - },
170 - {
171 - "type": "Identifier",
172 - "name": "__v_4"
173 - },
174 - {
175 - "type": "Identifier",
176 - "name": "__v_6"
177 - },
178 - {
179 - "type": "Identifier",
180 - "name": "__v_0"
181 - },
182 - {
183 - "type": "Identifier",
184 - "name": "__v_1"
185 - },
186 - {
187 - "type": "Identifier",
188 - "name": "__v_3"
189 - }
190 - ],
191 - "functions": [
192 - {
193 - "type": "Identifier",
194 - "name": "__f_2"
195 - },
196 - {
197 - "type": "Identifier",
198 - "name": "__f_0"
199 - },
200 - {
201 - "type": "Identifier",
202 - "name": "__f_1"
203 - }
204 - ]
205 - },
206 - {
207 - "variables": [
208 - {
209 - "type": "Identifier",
210 - "name": "__v_7"
211 - },
212 - {
213 - "type": "Identifier",
214 - "name": "__v_4"
215 - },
216 - {
217 - "type": "Identifier",
218 - "name": "__v_6"
219 - },
220 - {
221 - "type": "Identifier",
222 - "name": "__v_0"
223 - },
224 - {
225 - "type": "Identifier",
226 - "name": "__v_1"
227 - },
228 - {
229 - "type": "Identifier",
230 - "name": "__v_3"
231 - }
232 - ],
233 - "functions": [
234 - {
235 - "type": "Identifier",
236 - "name": "__f_0"
237 - },
238 - {
239 - "type": "Identifier",
240 - "name": "__f_1"
241 - }
242 - ]
243 - },
244 - {
245 - "variables": [
246 - {
247 - "type": "Identifier",
248 - "name": "__v_0"
249 - },
250 - {
251 - "type": "Identifier",
252 - "name": "__v_1"
253 - },
254 - {
255 - "type": "Identifier",
256 - "name": "__v_3"
257 - }
258 - ],
259 - "functions": [
260 - {
261 - "type": "Identifier",
262 - "name": "__f_0"
263 - },
264 - {
265 - "type": "Identifier",
266 - "name": "__f_1"
267 - }
268 - ]
269 - }
270 -]
compiler/packages/js-fuzzer/test_data/chakra/dir/load3.js deleted
-6
@@ -1,6 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -WScript.LoadScriptFile("..\\load2.js", "self");
6 -console.log('load3');
compiler/packages/js-fuzzer/test_data/chakra/load.js deleted
-9
@@ -1,9 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -if (this.WScript && this.WScript.LoadScriptFile) {
6 - WScript.LoadScriptFile("load1.js");
7 -}
8 -
9 -console.log('load.js');
compiler/packages/js-fuzzer/test_data/chakra/load1.js deleted
-8
@@ -1,8 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -// Test case insensitivity.
6 -WScript.LoadScriptFile("DIR\\LoAd3.js");
7 -
8 -console.log('load1.js');
compiler/packages/js-fuzzer/test_data/chakra/load2.js deleted
-5
@@ -1,5 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -console.log('load2.js');
compiler/packages/js-fuzzer/test_data/chakra/load_expected.js deleted
-17
@@ -1,17 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -// Original: chakra/load2.js
6 -console.log('load2.js');
7 -
8 -// Original: chakra/dir/load3.js
9 -console.log('load3');
10 -
11 -// Original: chakra/load1.js
12 -console.log('load1.js');
13 -
14 -// Original: chakra/load.js
15 -if (this.WScript && this.WScript.LoadScriptFile) {}
16 -
17 -console.log('load.js');
compiler/packages/js-fuzzer/test_data/cross_over_mutator_class_input.js deleted
-11
@@ -1,11 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -class __C {
6 - foo() {
7 - let __v_0 = 2;
8 - let __v_1 = 2;
9 - Math.pow(__v_0, __v_1);
10 - }
11 -}
compiler/packages/js-fuzzer/test_data/db/this/file.js deleted
-9
@@ -1,9 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -function C() {
6 - this.c = "c";
7 -}
8 -
9 -var c = new C();
compiler/packages/js-fuzzer/test_data/differential_fuzz/combined_expected.js deleted
-59
@@ -1,59 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -// Original: differential_fuzz/fake_resource.js
6 -print("I'm a resource.");
7 -
8 -// Original: differential_fuzz/fake_resource.js
9 -print("I'm a resource.");
10 -
11 -// Original: differential_fuzz/fake_resource.js
12 -print("I'm a resource.");
13 -
14 -// Original: differential_fuzz/fake_resource.js
15 -print("I'm a resource.");
16 -
17 -// Original: differential_fuzz/fake_resource.js
18 -print("I'm a resource.");
19 -
20 -/* DifferentialFuzzMutator: Print variables and exceptions from section */
21 -try {
22 - print("Hash: " + __hash);
23 - print("Caught: " + __caught);
24 -} catch (e) {}
25 -
26 -print("v8-foozzie source: differential_fuzz/input1.js");
27 -
28 -// Original: differential_fuzz/input1.js
29 -try {
30 - var __v_0 = 0;
31 -} catch (e) {}
32 -
33 -try {
34 - /* DifferentialFuzzMutator: Pretty printing */
35 - __prettyPrintExtra(__v_0);
36 -} catch (e) {}
37 -
38 -/* DifferentialFuzzMutator: Print variables and exceptions from section */
39 -try {
40 - print("Hash: " + __hash);
41 - print("Caught: " + __caught);
42 -
43 - __prettyPrint(__v_0);
44 -} catch (e) {}
45 -
46 -print("v8-foozzie source: differential_fuzz/input2.js");
47 -
48 -// Original: differential_fuzz/input2.js
49 -let __v_1 = 1;
50 -
51 -/* DifferentialFuzzMutator: Print variables and exceptions from section */
52 -try {
53 - print("Hash: " + __hash);
54 - print("Caught: " + __caught);
55 -
56 - __prettyPrint(__v_0);
57 -
58 - __prettyPrint(__v_1);
59 -} catch (e) {}
compiler/packages/js-fuzzer/test_data/differential_fuzz/exceptions.js deleted
-8
@@ -1,8 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -
6 -try {
7 - let __v_0 = boom;
8 -} catch (e) {}
compiler/packages/js-fuzzer/test_data/differential_fuzz/exceptions_expected.js deleted
-16
@@ -1,16 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -// Original: differential_fuzz/exceptions.js
6 -try {
7 - let __v_0 = boom;
8 -} catch (e) {
9 - __caught++;
10 -}
11 -
12 -/* DifferentialFuzzMutator: Print variables and exceptions from section */
13 -try {
14 - print("Hash: " + __hash);
15 - print("Caught: " + __caught);
16 -} catch (e) {}
compiler/packages/js-fuzzer/test_data/differential_fuzz/fake_resource.js deleted
-7
@@ -1,7 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -
6 -// This file represents anything loaded from the resources directory.
7 -print("I'm a resource.");
compiler/packages/js-fuzzer/test_data/differential_fuzz/input1.js deleted
-9
@@ -1,9 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -// Flags: --flag1 --flag2
6 -// Flags: --flag3
7 -
8 -var a = 0;
9 -print(a);
compiler/packages/js-fuzzer/test_data/differential_fuzz/input2.js deleted
-7
@@ -1,7 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -// Flags: --flag4
6 -
7 -let b = 1;
compiler/packages/js-fuzzer/test_data/differential_fuzz/mutations.js deleted
-26
@@ -1,26 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -
6 -// Print after declaration.
7 -var __v_0 = [1, 2, 3];
8 -
9 -// Don't print after declarations or assigments in loops.
10 -for (let __v_1 = 0; __v_1 < 3; __v_1 += 1) {
11 -
12 - // Print after multiple declarations.
13 - let __v_2, __v_3 = 0;
14 -
15 - // Print after assigning to member.
16 - __v_0.foo = undefined;
17 -
18 - // Replace with deep printing.
19 - print(0);
20 -
21 - // Print exception.
22 - try {
23 - // Print after assignment.
24 - __v_1 += 1;
25 - } catch(e) {}
26 -}
compiler/packages/js-fuzzer/test_data/differential_fuzz/mutations_expected.js deleted
-44
@@ -1,44 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -// Original: differential_fuzz/mutations.js
6 -var __v_0 = [1, 2, 3];
7 -
8 -/* DifferentialFuzzMutator: Extra variable printing */
9 -__prettyPrintExtra(__v_0);
10 -
11 -for (let __v_1 = 0; __v_1 < 3; __v_1 += 1) {
12 - let __v_2,
13 - __v_3 = 0;
14 -
15 - /* DifferentialFuzzMutator: Extra variable printing */
16 - __prettyPrintExtra(__v_2);
17 -
18 - __prettyPrintExtra(__v_3);
19 -
20 - __v_0.foo = undefined;
21 -
22 - /* DifferentialFuzzMutator: Extra variable printing */
23 - __prettyPrintExtra(__v_0);
24 -
25 - /* DifferentialFuzzMutator: Pretty printing */
26 - __prettyPrintExtra(0);
27 -
28 - try {
29 - __v_1 += 1;
30 -
31 - /* DifferentialFuzzMutator: Extra variable printing */
32 - __prettyPrintExtra(__v_1);
33 - } catch (e) {
34 - __prettyPrintExtra(e);
35 - }
36 -}
37 -
38 -/* DifferentialFuzzMutator: Print variables and exceptions from section */
39 -try {
40 - print("Hash: " + __hash);
41 - print("Caught: " + __caught);
42 -
43 - __prettyPrint(__v_0);
44 -} catch (e) {}
compiler/packages/js-fuzzer/test_data/differential_fuzz/suppressions.js deleted
-15
@@ -1,15 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -// These statements might come from a CrashTest.
6 -print("v8-foozzie source: some/file/name");
7 -print('v8-foozzie source: some/file/name');
8 -
9 -function foo(__v_0) {
10 - // This is an unsupported language feature.
11 - return 1 in foo.arguments;
12 -}
13 -
14 -// This leads to precision differences in optimized code.
15 -print(192 ** -0.5);
compiler/packages/js-fuzzer/test_data/differential_fuzz/suppressions_expected.js deleted
-21
@@ -1,21 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -// Original: differential_fuzz/suppressions.js
6 -print(
7 -/* DifferentialFuzzSuppressions: Replaced magic string */
8 -"v***************e: some/file/name");
9 -print(
10 -/* DifferentialFuzzSuppressions: Replaced magic string */
11 -"v***************e: some/file/name");
12 -
13 -function foo(__v_0) {
14 - return 1 in
15 - /* DifferentialFuzzSuppressions: Replaced .arguments */
16 - __v_0;
17 -}
18 -
19 -print(
20 -/* DifferentialFuzzSuppressions: Replaced ** */
21 -192 + -0.5);
compiler/packages/js-fuzzer/test_data/differential_fuzz/v8_fuzz_experiments.json deleted
-3
@@ -1,3 +0,0 @@
1 -[
2 - [100, "ignition", "ignition_turbo", "d8"]
3 -]
compiler/packages/js-fuzzer/test_data/differential_fuzz/v8_fuzz_flags.json deleted
-3
@@ -1,3 +0,0 @@
1 -[
2 - [1.0, "--foo1 --foo2"]
3 -]
compiler/packages/js-fuzzer/test_data/fake_db/index.json deleted
-1
@@ -1 +0,0 @@
1 -{}
compiler/packages/js-fuzzer/test_data/mjsunit/mjsunit.js deleted
-5
@@ -1,5 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -var fakeMjsunit = 'fake';
compiler/packages/js-fuzzer/test_data/mjsunit/test_load.js deleted
-7
@@ -1,7 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -var testLoad = 'test_load';
6 -load('test_data/mjsunit/test_load_1.js');
7 -load('test_load_0.js');
compiler/packages/js-fuzzer/test_data/mjsunit/test_load_0.js deleted
-8
@@ -1,8 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -load('test_data/mjsunit/test_load_1.js');
6 -load('test_load_2.js');
7 -load('test_load_3.js');
8 -var testLoad0 = 'test_load_0';
compiler/packages/js-fuzzer/test_data/mjsunit/test_load_1.js deleted
-6
@@ -1,6 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -load('test_load_2.js');
6 -var testLoad1 = 'test_load_1';
compiler/packages/js-fuzzer/test_data/mjsunit/test_load_2.js deleted
-5
@@ -1,5 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -var testLoad2 = 'test_load_2';
compiler/packages/js-fuzzer/test_data/mjsunit/test_load_3.js deleted
-5
@@ -1,5 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -var testLoad3 = 'test_load_3';
compiler/packages/js-fuzzer/test_data/mjsunit/test_load_expected.js deleted
-21
@@ -1,21 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -// Original: mjsunit/mjsunit.js
6 -var fakeMjsunit = 'fake';
7 -
8 -// Original: mjsunit/test_load_2.js
9 -var testLoad2 = 'test_load_2';
10 -
11 -// Original: mjsunit/test_load_1.js
12 -var testLoad1 = 'test_load_1';
13 -
14 -// Original: mjsunit/test_load_3.js
15 -var testLoad3 = 'test_load_3';
16 -
17 -// Original: mjsunit/test_load_0.js
18 -var testLoad0 = 'test_load_0';
19 -
20 -// Original: mjsunit/test_load.js
21 -var testLoad = 'test_load';
compiler/packages/js-fuzzer/test_data/mjsunit/test_load_self.js deleted
-5
@@ -1,5 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -load("test_load_self.js");
compiler/packages/js-fuzzer/test_data/mjsunit/test_load_self_expected.js deleted
-6
@@ -1,6 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -// Original: mjsunit/mjsunit.js
6 -var fakeMjsunit = 'fake';
compiler/packages/js-fuzzer/test_data/mjsunit_softskipped/object-literal.js deleted
-5
@@ -1,5 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -// Fake file
compiler/packages/js-fuzzer/test_data/mjsunit_softskipped/permitted.js deleted
-5
@@ -1,5 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -// Fake file
compiler/packages/js-fuzzer/test_data/mjsunit_softskipped/regress/binaryen-123.js deleted
-5
@@ -1,5 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -// Fake file
compiler/packages/js-fuzzer/test_data/mutate_arrays.js deleted
-34
@@ -1,34 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -[];
6 -[];
7 -[];
8 -[];
9 -[];
10 -[];
11 -[];
12 -[];
13 -[];
14 -[];
15 -[1, 2, 3];
16 -[1, 2, 3];
17 -[1, 2, 3];
18 -[1, 2, 3];
19 -[1, 2, 3];
20 -[1, 2, 3];
21 -[1, 2, 3];
22 -[1, 2, 3];
23 -[1, 2, 3];
24 -[1, 2, 3];
25 -[1, 2, 3];
26 -[1, 2, 3];
27 -[1, 2, 3];
28 -[1, 2, 3];
29 -[1, 2, 3];
30 -[1, 2, 3];
31 -[1, 2, 3];
32 -[1, 2, 3];
33 -[1, 2, 3];
34 -[1, 2, 3];
compiler/packages/js-fuzzer/test_data/mutate_arrays_expected.js deleted
-109
@@ -1,109 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -// Original: mutate_arrays.js
6 -
7 -/* ArrayMutator: Remove elements */
8 -
9 -/* ArrayMutator: Insert a hole */
10 -[];
11 -[];
12 -
13 -/* ArrayMutator: Shuffle array */
14 -[];
15 -
16 -/* ArrayMutator: Insert a random value */
17 -[""];
18 -
19 -/* ArrayMutator: Insert a random value (replaced) */
20 -[""];
21 -
22 -/* ArrayMutator: Insert a hole (replaced) */
23 -[,];
24 -[];
25 -
26 -/* ArrayMutator: Insert a hole (replaced) */
27 -[,];
28 -
29 -/* ArrayMutator: Remove elements */
30 -[];
31 -
32 -/* ArrayMutator: Remove elements */
33 -[];
34 -
35 -/* ArrayMutator: Duplicate an element */
36 -[1, 1, 2, 3];
37 -
38 -/* ArrayMutator: Insert a random value (replaced) */
39 -[1, "", 3];
40 -
41 -/* ArrayMutator: Remove elements */
42 -[];
43 -
44 -/* ArrayMutator: Duplicate an element */
45 -[1, 2, 3, 2];
46 -
47 -/* ArrayMutator: Remove elements */
48 -[3];
49 -
50 -/* ArrayMutator: Duplicate an element (replaced) */
51 -[1, 2, 3];
52 -
53 -/* ArrayMutator: Insert a hole (replaced) */
54 -
55 -/* ArrayMutator: Duplicate an element (replaced) */
56 -[1, 2,,];
57 -
58 -/* ArrayMutator: Remove elements */
59 -[1, 2];
60 -
61 -/* ArrayMutator: Insert a hole (replaced) */
62 -
63 -/* ArrayMutator: Duplicate an element */
64 -[1, 1, 2,,];
65 -
66 -/* ArrayMutator: Shuffle array */
67 -[2, 1, 3];
68 -
69 -/* ArrayMutator: Remove elements */
70 -
71 -/* ArrayMutator: Remove elements */
72 -[3];
73 -
74 -/* ArrayMutator: Duplicate an element (replaced) */
75 -[1, 2, 1];
76 -
77 -/* ArrayMutator: Duplicate an element (replaced) */
78 -
79 -/* ArrayMutator: Duplicate an element (replaced) */
80 -[1, 2, 2];
81 -
82 -/* ArrayMutator: Insert a random value */
83 -[1, 2, 3, ""];
84 -
85 -/* ArrayMutator: Duplicate an element */
86 -[1, 2, 3, 3];
87 -
88 -/* ArrayMutator: Remove elements */
89 -
90 -/* ArrayMutator: Duplicate an element */
91 -[1, 2];
92 -
93 -/* ArrayMutator: Insert a random value (replaced) */
94 -
95 -/* ArrayMutator: Duplicate an element (replaced) */
96 -[1, 2, ""];
97 -
98 -/* ArrayMutator: Insert a random value (replaced) */
99 -
100 -/* ArrayMutator: Insert a random value (replaced) */
101 -["", 2, 3];
102 -
103 -/* ArrayMutator: Duplicate an element */
104 -
105 -/* ArrayMutator: Remove elements */
106 -[1, 1, 3];
107 -
108 -/* ArrayMutator: Remove elements */
109 -[1, 2];
compiler/packages/js-fuzzer/test_data/mutate_expressions.js deleted
-8
@@ -1,8 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -1;
6 -let foo = undefined;
7 -2;
8 -3;
compiler/packages/js-fuzzer/test_data/mutate_expressions_current_expected.js deleted
-15
@@ -1,15 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -// Original: mutate_expressions.js
6 -1;
7 -
8 -/* ExpressionMutator: Cloned sibling */
9 -2;
10 -let foo = undefined;
11 -
12 -/* ExpressionMutator: Cloned sibling */
13 -3;
14 -2;
15 -3;
compiler/packages/js-fuzzer/test_data/mutate_expressions_previous_expected.js deleted
-12
@@ -1,12 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -// Original: mutate_expressions.js
6 -1;
7 -let foo = undefined;
8 -2;
9 -3;
10 -
11 -/* ExpressionMutator: Cloned sibling */
12 -2;
compiler/packages/js-fuzzer/test_data/mutate_function_call.js deleted
-7
@@ -1,7 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -__f_0(1);
6 -a = __f_0(1);
7 -foo(1, __f_0());
compiler/packages/js-fuzzer/test_data/mutate_function_call_baseline_expected.js deleted
-16
@@ -1,16 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/* FunctionCallMutator: Compiling baseline __f_0 */
6 -%CompileBaseline(__f_0);
7 -
8 -// Original: mutate_function_call.js
9 -__f_0(1);
10 -
11 -a = (
12 -/* FunctionCallMutator: Compiling baseline __f_0 */
13 -%CompileBaseline(__f_0), __f_0(1));
14 -foo(1, (
15 -/* FunctionCallMutator: Compiling baseline __f_0 */
16 -%CompileBaseline(__f_0), __f_0()));
compiler/packages/js-fuzzer/test_data/mutate_function_call_deopt_expected.js deleted
-19
@@ -1,19 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -var _temp, _temp2;
6 -
7 -// Original: mutate_function_call.js
8 -
9 -/* FunctionCallMutator: Deoptimizing __f_0 */
10 -__f_0(1);
11 -
12 -%DeoptimizeFunction(__f_0);
13 -
14 -a = (
15 -/* FunctionCallMutator: Deoptimizing __f_0 */
16 -_temp = __f_0(1), %DeoptimizeFunction(__f_0), _temp);
17 -foo(1, (
18 -/* FunctionCallMutator: Deoptimizing __f_0 */
19 -_temp2 = __f_0(), %DeoptimizeFunction(__f_0), _temp2));
compiler/packages/js-fuzzer/test_data/mutate_function_call_expected.js deleted
-23
@@ -1,23 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -%PrepareFunctionForOptimization(__f_0);
6 -
7 -__f_0(1);
8 -
9 -__f_0(1);
10 -
11 -%OptimizeFunctionOnNextCall(__f_0);
12 -
13 -// Original: mutate_function_call.js
14 -
15 -/* FunctionCallMutator: Optimizing __f_0 */
16 -__f_0(1);
17 -
18 -a = (
19 -/* FunctionCallMutator: Optimizing __f_0 */
20 -%PrepareFunctionForOptimization(__f_0), __f_0(1), __f_0(1), %OptimizeFunctionOnNextCall(__f_0), __f_0(1));
21 -foo(1, (
22 -/* FunctionCallMutator: Optimizing __f_0 */
23 -%PrepareFunctionForOptimization(__f_0), __f_0(), __f_0(), %OptimizeFunctionOnNextCall(__f_0), __f_0()));
compiler/packages/js-fuzzer/test_data/mutate_function_call_maglev_expected.js deleted
-23
@@ -1,23 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -%PrepareFunctionForOptimization(__f_0);
6 -
7 -__f_0(1);
8 -
9 -__f_0(1);
10 -
11 -%OptimizeMaglevOnNextCall(__f_0);
12 -
13 -// Original: mutate_function_call.js
14 -
15 -/* FunctionCallMutator: Optimizing __f_0 */
16 -__f_0(1);
17 -
18 -a = (
19 -/* FunctionCallMutator: Optimizing __f_0 */
20 -%PrepareFunctionForOptimization(__f_0), __f_0(1), __f_0(1), %OptimizeMaglevOnNextCall(__f_0), __f_0(1));
21 -foo(1, (
22 -/* FunctionCallMutator: Optimizing __f_0 */
23 -%PrepareFunctionForOptimization(__f_0), __f_0(), __f_0(), %OptimizeMaglevOnNextCall(__f_0), __f_0()));
compiler/packages/js-fuzzer/test_data/mutate_numbers.js deleted
-22
@@ -1,22 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -'use strict';
6 -
7 -function foo() {
8 - let a = 123;
9 - for (let i = 0; i < 456; i++) {
10 - a += 1;
11 - }
12 -
13 - let b = 0;
14 - while (b < 10) {
15 - b += 2;
16 - }
17 -
18 - a += 1;
19 -}
20 -
21 -var a = {0: "", 1: "", get 1(){}};
22 -var b = -10;
compiler/packages/js-fuzzer/test_data/mutate_numbers_expected.js deleted
-46
@@ -1,46 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -'use strict';
6 -
7 -// Original: mutate_numbers.js
8 -function foo() {
9 - let a =
10 - /* NumberMutator: Replaced 123 with -5 */
11 - -5;
12 -
13 - for (let i = 0; i < 456; i++) {
14 - a +=
15 - /* NumberMutator: Replaced 1 with -4 */
16 - -4;
17 - }
18 -
19 - let b =
20 - /* NumberMutator: Replaced 0 with -3 */
21 - -3;
22 -
23 - while (b < 10) {
24 - b += 2;
25 - }
26 -
27 - a +=
28 - /* NumberMutator: Replaced 1 with -5 */
29 - -5;
30 -}
31 -
32 -var a = {
33 - /* NumberMutator: Replaced 0 with 4 */
34 - 4: "",
35 -
36 - /* NumberMutator: Replaced 1 with 3 */
37 - 3: "",
38 -
39 - get
40 - /* NumberMutator: Replaced 1 with 5 */
41 - 5() {}
42 -
43 -};
44 -var b =
45 -/* NumberMutator: Replaced -10 with -4 */
46 --4;
compiler/packages/js-fuzzer/test_data/mutate_objects.js deleted
-41
@@ -1,41 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -// Empty objects are not manipulated.
6 -a = {};
7 -a = {};
8 -a = {};
9 -a = {};
10 -a = {};
11 -a = {};
12 -
13 -// Small objects only get some mutations.
14 -a = {1: 0};
15 -a = {a: 0};
16 -a = {"s": 0};
17 -a = {1: 0};
18 -a = {a: 0};
19 -a = {"s": 0};
20 -
21 -// Larger objects get all mutations.
22 -a = {1: "a", 2: "b", 3: "c"};
23 -a = {1: "a", 2: "b", 3: "c"};
24 -a = {1: "a", 2: "b", 3: "c"};
25 -a = {1: "a", 2: "b", 3: "c"};
26 -a = {1: "a", 2: "b", 3: "c"};
27 -a = {1: "a", 2: "b", 3: "c"};
28 -a = {1: "a", 2: "b", 3: "c"};
29 -a = {1: "a", 2: "b", 3: "c"};
30 -a = {1: "a", 2: "b", 3: "c"};
31 -a = {1: "a", 2: "b", 3: "c"};
32 -
33 -// Getters and setters are ignored.
34 -a = {get bar() { return 0 }, 1: 0, set bar(t) {}};
35 -a = {get bar() { return 0 }, 1: 0, set bar(t) {}};
36 -a = {get bar() { return 0 }, 1: 0, set bar(t) {}};
37 -
38 -// Recursive.
39 -a = {1: {4: "4", 5: "5", 6: "6"}, 2: {3: "3"}};
40 -a = {1: {4: "4", 5: "5", 6: "6"}, 2: {3: "3"}};
41 -a = {1: {4: "4", 5: "5", 6: "6"}, 2: {3: "3"}};
compiler/packages/js-fuzzer/test_data/mutate_objects_expected.js deleted
-182
@@ -1,182 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -// Original: mutate_objects.js
6 -a = {};
7 -a = {};
8 -a = {};
9 -a = {};
10 -a = {};
11 -a = {};
12 -a =
13 -/* ObjectMutator: Insert a random value */
14 -{
15 - 1: ""
16 -};
17 -a = {
18 - a: 0
19 -};
20 -a =
21 -/* ObjectMutator: Insert a random value */
22 -{
23 - "s": ""
24 -};
25 -a =
26 -/* ObjectMutator: Stringify a property key */
27 -{
28 - "1": 0
29 -};
30 -a =
31 -/* ObjectMutator: Remove a property */
32 -{};
33 -a = {
34 - "s": 0
35 -};
36 -a =
37 -/* ObjectMutator: Swap properties */
38 -{
39 - 1: "c",
40 - 2: "b",
41 - 3: "a"
42 -};
43 -a =
44 -/* ObjectMutator: Remove a property */
45 -{
46 - 2: "b",
47 - 3: "c"
48 -};
49 -a =
50 -/* ObjectMutator: Insert a random value */
51 -{
52 - 1: "a",
53 - 2: "",
54 - 3: "c"
55 -};
56 -a =
57 -/* ObjectMutator: Swap properties */
58 -{
59 - 1: "b",
60 - 2: "a",
61 - 3: "c"
62 -};
63 -a =
64 -/* ObjectMutator: Swap properties */
65 -{
66 - 1: "c",
67 - 2: "b",
68 - 3: "a"
69 -};
70 -a =
71 -/* ObjectMutator: Stringify a property key */
72 -{
73 - "1": "a",
74 - 2: "b",
75 - 3: "c"
76 -};
77 -a =
78 -/* ObjectMutator: Remove a property */
79 -{
80 - 2: "b",
81 - 3: "c"
82 -};
83 -a =
84 -/* ObjectMutator: Swap properties */
85 -{
86 - 1: "b",
87 - 2: "a",
88 - 3: "c"
89 -};
90 -a =
91 -/* ObjectMutator: Duplicate a property value */
92 -{
93 - 1: "c",
94 - 2: "b",
95 - 3: "c"
96 -};
97 -a =
98 -/* ObjectMutator: Duplicate a property value */
99 -{
100 - 1: "a",
101 - 2: "b",
102 - 3: "b"
103 -};
104 -a = {
105 - get bar() {
106 - return 0;
107 - },
108 -
109 - 1: 0,
110 -
111 - set bar(t) {}
112 -
113 -};
114 -a =
115 -/* ObjectMutator: Insert a random value */
116 -{
117 - get bar() {
118 - return 0;
119 - },
120 -
121 - 1: "",
122 -
123 - set bar(t) {}
124 -
125 -};
126 -a =
127 -/* ObjectMutator: Remove a property */
128 -{
129 - get bar() {
130 - return 0;
131 - },
132 -
133 - set bar(t) {}
134 -
135 -};
136 -a =
137 -/* ObjectMutator: Duplicate a property value */
138 -{
139 - 1:
140 - /* ObjectMutator: Remove a property */
141 - {},
142 - 2:
143 - /* ObjectMutator: Stringify a property key */
144 - {
145 - "3": "3"
146 - }
147 -};
148 -a =
149 -/* ObjectMutator: Duplicate a property value */
150 -{
151 - 1:
152 - /* ObjectMutator: Swap properties */
153 - {
154 - 4: "4",
155 - 5: "6",
156 - 6: "5"
157 - },
158 - 2:
159 - /* ObjectMutator: Remove a property */
160 - {
161 - 5: "5",
162 - 6: "6"
163 - }
164 -};
165 -a =
166 -/* ObjectMutator: Duplicate a property value */
167 -{
168 - 1:
169 - /* ObjectMutator: Swap properties */
170 - {
171 - 4: "6",
172 - 5: "5",
173 - 6: "4"
174 - },
175 - 2:
176 - /* ObjectMutator: Stringify a property key */
177 - {
178 - 4: "4",
179 - 5: "5",
180 - "6": "6"
181 - }
182 -};
compiler/packages/js-fuzzer/test_data/mutate_var_or_obj.js deleted
-10
@@ -1,10 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -let __v_0 = {};
6 -Math.pow(1, 2);
7 -Math.pow(1, 2);
8 -Math.pow(1, 2);
9 -Math.pow(1, 2);
10 -Math.pow(1, 2);
compiler/packages/js-fuzzer/test_data/mutate_var_or_obj_expected.js deleted
-37
@@ -1,37 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -// Original: mutate_var_or_obj.js
6 -let __v_0 = {};
7 -
8 -/* VariableOrObjectMutator: Random mutation */
9 -delete __getRandomObject(123)[__getRandomProperty(__getRandomObject(123), 123)], __callGC();
10 -__getRandomObject(123)[__getRandomProperty(__getRandomObject(123), 123)], __callGC();
11 -Math.pow(1, 2);
12 -
13 -/* VariableOrObjectMutator: Random mutation */
14 -__getRandomObject(123)[__getRandomProperty(__getRandomObject(123), 123)] = 0, __callGC();
15 -Math.pow(1, 2);
16 -
17 -/* VariableOrObjectMutator: Random mutation */
18 -__v_0 = __getRandomObject(123), __callGC();
19 -Math.pow(1, 2);
20 -
21 -/* VariableOrObjectMutator: Random mutation */
22 -if (__getRandomObject(123) != null && typeof __getRandomObject(123) == "object") Object.defineProperty(__getRandomObject(123), __getRandomProperty(__getRandomObject(123), 123), {
23 - value: 0
24 -});
25 -Math.pow(1, 2);
26 -
27 -/* VariableOrObjectMutator: Random mutation */
28 -if (__getRandomObject(123) != null && typeof __getRandomObject(123) == "object") Object.defineProperty(__getRandomObject(123), __getRandomProperty(__getRandomObject(123), 123), {
29 - get: function () {
30 - delete __getRandomObject(123)[__getRandomProperty(__getRandomObject(123), 123)], __callGC();
31 - return 0;
32 - },
33 - set: function (value) {
34 - __getRandomObject(123)[__getRandomProperty(__getRandomObject(123), 123)], __callGC();
35 - }
36 -});
37 -Math.pow(1, 2);
compiler/packages/js-fuzzer/test_data/mutate_variables.js deleted
-30
@@ -1,30 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -function __f_0(__v_10, __v_11) {
6 - let __v_4 = 4;
7 - let __v_5 = 5;
8 - let __v_6 = 6;
9 - let __v_7 = 7;
10 - console.log(__v_4);
11 - console.log(__v_5);
12 - console.log(__v_6);
13 - console.log(__v_7);
14 - for (let __v_9 = 0; __v_9 < 10; __v_9++) {
15 - console.log(__v_4);
16 - }
17 - let __v_8 = 0;
18 - while (__v_8 < 10) {
19 - __v_8++;
20 - }
21 -}
22 -let __v_0 = 1;
23 -let __v_1 = 2;
24 -let __v_2 = 3;
25 -let __v_3 = 4;
26 -console.log(__v_0);
27 -console.log(__v_1);
28 -console.log(__v_2);
29 -console.log(__v_3);
30 -__f_0();
compiler/packages/js-fuzzer/test_data/mutate_variables_expected.js deleted
-54
@@ -1,54 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -// Original: mutate_variables.js
6 -function __f_0(__v_10, __v_11) {
7 - let __v_4 = 4;
8 - let __v_5 = 5;
9 - let __v_6 = 6;
10 - let __v_7 = 7;
11 - console.log(
12 - /* VariableMutator: Replaced __v_4 with REPLACED */
13 - REPLACED);
14 - console.log(
15 - /* VariableMutator: Replaced __v_5 with REPLACED */
16 - REPLACED);
17 - console.log(
18 - /* VariableMutator: Replaced __v_6 with REPLACED */
19 - REPLACED);
20 - console.log(
21 - /* VariableMutator: Replaced __v_7 with REPLACED */
22 - REPLACED);
23 -
24 - for (let __v_9 = 0; __v_9 < 10; __v_9++) {
25 - console.log(
26 - /* VariableMutator: Replaced __v_4 with REPLACED */
27 - REPLACED);
28 - }
29 -
30 - let __v_8 = 0;
31 -
32 - while (__v_8 < 10) {
33 - __v_8++;
34 - }
35 -}
36 -
37 -let __v_0 = 1;
38 -let __v_1 = 2;
39 -let __v_2 = 3;
40 -let __v_3 = 4;
41 -console.log(
42 -/* VariableMutator: Replaced __v_0 with REPLACED */
43 -REPLACED);
44 -console.log(
45 -/* VariableMutator: Replaced __v_1 with REPLACED */
46 -REPLACED);
47 -console.log(
48 -/* VariableMutator: Replaced __v_2 with REPLACED */
49 -REPLACED);
50 -console.log(
51 -/* VariableMutator: Replaced __v_3 with REPLACED */
52 -REPLACED);
53 -
54 -__f_0();
compiler/packages/js-fuzzer/test_data/mutation_order/input.js deleted
-23
@@ -1,23 +0,0 @@
1 -// Copyright 2022 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -var i = 1;
6 -var j = 'str';
7 -var k = undefined;
8 -var l = {0: 1};
9 -
10 -function foo(a, b) {
11 - return a + b;
12 -}
13 -
14 -foo(i, 3);
15 -
16 -function bar(a) {
17 - return foo(a, a);
18 -}
19 -
20 -foo('foo', j);
21 -bar(2, foo(i, j));
22 -foo(i, j);
23 -bar(j, 3);
compiler/packages/js-fuzzer/test_data/mutation_order/output_expected.js deleted
-119
@@ -1,119 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -// Script mutator: using shuffled mutators
6 -// Script mutator: extra ArrayMutator
7 -// Script mutator: extra VariableMutator
8 -// Script mutator: extra ExpressionMutator
9 -// Script mutator: extra ArrayMutator
10 -
11 -// Original: mutation_order/input.js
12 -try {
13 - var __v_0 =
14 - /* NumberMutator: Replaced 1 with -10 */
15 - -10;
16 -} catch (e) {}
17 -
18 -try {
19 - var __v_1 = 'str';
20 -} catch (e) {}
21 -
22 -try {
23 - var __v_2 = undefined;
24 -} catch (e) {}
25 -
26 -try {
27 - var __v_3 = {
28 - /* NumberMutator: Replaced 0 with 8 */
29 - 8:
30 - /* NumberMutator: Replaced 1 with 3 */
31 - 3
32 - };
33 -} catch (e) {}
34 -
35 -function __f_0(__v_4, __v_5) {
36 - return __v_4 + __v_5;
37 -}
38 -
39 -try {
40 - %PrepareFunctionForOptimization(__f_0);
41 -} catch (e) {}
42 -
43 -try {
44 - __f_0(__v_0,
45 - /* NumberMutator: Replaced 3 with 5 */
46 - 5);
47 -} catch (e) {}
48 -
49 -try {
50 - __f_0(__v_0,
51 - /* NumberMutator: Replaced 3 with NaN */
52 - NaN);
53 -} catch (e) {}
54 -
55 -try {
56 - %OptimizeFunctionOnNextCall(__f_0);
57 -} catch (e) {}
58 -
59 -try {
60 - /* FunctionCallMutator: Optimizing __f_0 */
61 - __f_0(__v_0,
62 - /* NumberMutator: Replaced 3 with 2 */
63 - 2);
64 -} catch (e) {}
65 -
66 -function __f_1(__v_6) {
67 - return (
68 - /* FunctionCallMutator: Replaced __f_0 with __f_0 */
69 - __f_0(__v_6, __v_6)
70 - );
71 -}
72 -
73 -try {
74 - %PrepareFunctionForOptimization(__f_0);
75 -} catch (e) {}
76 -
77 -try {
78 - __f_0('foo', __v_1);
79 -} catch (e) {}
80 -
81 -try {
82 - __f_0('foo', __v_1);
83 -} catch (e) {}
84 -
85 -try {
86 - %OptimizeFunctionOnNextCall(__f_0);
87 -} catch (e) {}
88 -
89 -try {
90 - /* FunctionCallMutator: Optimizing __f_0 */
91 - __f_0('foo', __v_1);
92 -} catch (e) {}
93 -
94 -try {
95 - /* FunctionCallMutator: Compiling baseline __f_1 */
96 - %CompileBaseline(__f_1);
97 -} catch (e) {}
98 -
99 -try {
100 - __f_1(
101 - /* NumberMutator: Replaced 2 with -10 */
102 - -10, __f_0(__v_0, __v_1));
103 -} catch (e) {}
104 -
105 -try {
106 - /* FunctionCallMutator: Deoptimizing __f_0 */
107 - __f_0(__v_0, __v_1);
108 -} catch (e) {}
109 -
110 -try {
111 - %DeoptimizeFunction(__f_0);
112 -} catch (e) {}
113 -
114 -try {
115 - /* FunctionCallMutator: Replaced __f_1 with __f_1 */
116 - __f_1(__v_1,
117 - /* NumberMutator: Replaced 3 with 16 */
118 - 16);
119 -} catch (e) {}
compiler/packages/js-fuzzer/test_data/normalize.js deleted
-23
@@ -1,23 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -'use strict';
6 -
7 -class Class {
8 - constructor() {
9 - this.abc = 789;
10 - this.selfRef = Class;
11 - }
12 -}
13 -
14 -function foo() {
15 - let a = 123;
16 - console.log(a);
17 -}
18 -
19 -foo();
20 -let a = 456;
21 -console.log(a);
22 -let b = new Class();
23 -console.log(b.abc);
compiler/packages/js-fuzzer/test_data/normalize_expected_0.js deleted
-28
@@ -1,28 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -'use strict';
6 -
7 -// Original: normalize.js
8 -class __c_0 {
9 - constructor() {
10 - this.abc = 789;
11 - this.selfRef = __c_0;
12 - }
13 -
14 -}
15 -
16 -function __f_0() {
17 - let __v_2 = 123;
18 - console.log(__v_2);
19 -}
20 -
21 -__f_0();
22 -
23 -let __v_0 = 456;
24 -console.log(__v_0);
25 -
26 -let __v_1 = new __c_0();
27 -
28 -console.log(__v_1.abc);
compiler/packages/js-fuzzer/test_data/normalize_expected_1.js deleted
-28
@@ -1,28 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -'use strict';
6 -
7 -// Original: normalize.js
8 -class __c_1 {
9 - constructor() {
10 - this.abc = 789;
11 - this.selfRef = __c_1;
12 - }
13 -
14 -}
15 -
16 -function __f_1() {
17 - let __v_5 = 123;
18 - console.log(__v_5);
19 -}
20 -
21 -__f_1();
22 -
23 -let __v_3 = 456;
24 -console.log(__v_3);
25 -
26 -let __v_4 = new __c_1();
27 -
28 -console.log(__v_4.abc);
compiler/packages/js-fuzzer/test_data/regress/numbers/db/index.json deleted
-1
@@ -1 +0,0 @@
1 -{}
compiler/packages/js-fuzzer/test_data/regress/numbers/input_indices.js deleted
-11
@@ -1,11 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -let a = {
6 - 0: "",
7 - 1: "",
8 - 2: "",
9 - 3: "",
10 - 4: "",
11 -};
compiler/packages/js-fuzzer/test_data/regress/numbers/input_negative.js deleted
-8
@@ -1,8 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -foo(-1);
6 -foo(-1);
7 -foo(-1);
8 -foo(-1);
compiler/packages/js-fuzzer/test_data/regress/spidermonkey/db/index.json deleted
-1
@@ -1 +0,0 @@
1 -{}
compiler/packages/js-fuzzer/test_data/regress/spidermonkey/input.js deleted
-5
@@ -1,5 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -print("Won't see this.");
compiler/packages/js-fuzzer/test_data/regress/spidermonkey/shell.js deleted
-5
@@ -1,5 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -loadRelativeToScript('PatternAsserts.js');
compiler/packages/js-fuzzer/test_data/regress/strict/db/index.json deleted
-1
@@ -1 +0,0 @@
1 -{}
compiler/packages/js-fuzzer/test_data/regress/strict/input_delete.js deleted
-6
@@ -1,6 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -var x;
6 -delete x;
compiler/packages/js-fuzzer/test_data/regress/strict/input_strict.js deleted
-7
@@ -1,7 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -"use strict";
6 -
7 -print("Hello");
compiler/packages/js-fuzzer/test_data/regress/strict/input_with.js deleted
-7
@@ -1,7 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -with (Math) {
6 - print(PI);
7 -}
compiler/packages/js-fuzzer/test_data/simple_test.js deleted
-87
@@ -1,87 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -// Test comment.
6 -// Flags: --gc-interval = 1
7 -var abs = Math.abs;
8 -var v1 = 5, v2; var v3;
9 -if (v1) {
10 - var v4 = 3;
11 - for (var v5 = 0; v5 < 4; v5++) {
12 - console.log('Value of v5: ' +
13 - v5);
14 - }
15 -}
16 -let v6 = 3;
17 -const v7 = 5 + \u{0076}6;
18 -v1 = {['p' + v6]: ''};
19 -v1 = `test\`
20 -value is ${ v6 + v7 }` + '\0\400\377'
21 -v1 = (v8=2, {v9 = eval('v8')},) => { return v8 + v9 + 4; };
22 -v1 = () => 4 + 5;
23 -v1 = v10 => { return v10 + 4; }
24 -v1 = async v11 => v11 + 4;
25 -v12 = [0, 1, 2,];
26 -v13 = [3, 4, 5];
27 -v14 = [...v12, ...v13];
28 -v15 = ([v16, v17] = [1, 2], {v31: v18} = {v31: v16 + v17}) => v16 + v17 + v18;
29 -v16 = 170%16/16 + 2**32;
30 -v17 = 0o1 + 0O1 + 01 + 0b011 + 0B011;
31 -for (var v18 of [1, 2, 3]) console.log(v18);
32 -function f1(v19,) {}
33 -f1();
34 -%OptimizeFunctionOnNextCall(f1);
35 -function f2() {
36 - var v20 = 5;
37 - return v20 + 6;
38 -}
39 -(async function f3() {
40 - var v21 = await 1;
41 - console.log(v21);
42 -})();
43 -function* f4(v22=2, ...v23) {
44 - yield* [1, 2, 3];
45 -}
46 -function* f5() { (yield 3) + (yield); }
47 -{ function f6() { } }
48 -v23 = { v6, [v6]: 3, f7() { }, get f8 () { }, *f9 () { }, async f10 () { } }
49 -var [v24, v25, ...v26] = [10, 20], {v27, v28} = {v27: 10, v28: 20};
50 -class c1 {
51 - f11(v29) {
52 - return v29 + 1;
53 - }
54 - static* f12() {
55 - yield 'a' + super.f12();
56 - }
57 - constructor(v30) {
58 - console.log(new.target.name);
59 - }
60 - [0]() { }
61 -}
62 -class c2 extends c1 { }
63 -do ; while(0);
64 -v16 **= 4;
65 -for (const v32 = 1; v32 < 1;);
66 -for (let v33 = 1; v33 < 5; v33++);
67 -for (var v34 = 1; v34 < 5; v34++);
68 -for (const {v35 = 0, v36 = 3} = {}; v36 < 1;);
69 -for (let {v37 = 0, v38 = 3} = {}; v38 != 0; v38--);
70 -for (var {v39 = 0, v40 = 3} = {}; v40 != 0; v40--);
71 -for (const v41 of [1, 2, 3]);
72 -for (let v42 of [1, 2, 3]);
73 -for (var v43 of [1, 2, 3]);
74 -for (const v44 in [1, 2, 3]);
75 -for (let v45 in [1, 2, 3]);
76 -for (var v46 in [1, 2, 3]);
77 -label: function f13() { }
78 -
79 -var a = function b() {
80 - b();
81 -};
82 -
83 -var c = class C {
84 - constructor() {
85 - console.log(C.name);
86 - }
87 -};
compiler/packages/js-fuzzer/test_data/simple_test_expected.js deleted
-177
@@ -1,177 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -// Original: simple_test.js
6 -var __v_0 = Math.abs;
7 -
8 -var __v_1 = 5,
9 - __v_2;
10 -
11 -var __v_3;
12 -
13 -if (__v_1) {
14 - var __v_4 = 3;
15 -
16 - for (var __v_5 = 0; __v_5 < 4; __v_5++) {
17 - console.log('Value of v5: ' + __v_5);
18 - }
19 -}
20 -
21 -let __v_6 = 3;
22 -
23 -const __v_7 = 5 + __v_6;
24 -
25 -__v_1 = {
26 - ['p' + __v_6]: ''
27 -};
28 -__v_1 = `test\`
29 -value is ${__v_6 + __v_7}` + '\0\400\377';
30 -
31 -__v_1 = (__v_21 = 2, {
32 - v9: __v_22 = eval('v8')
33 -}) => {
34 - return __v_21 + __v_22 + 4;
35 -};
36 -
37 -__v_1 = () => 4 + 5;
38 -
39 -__v_1 = __v_23 => {
40 - return __v_23 + 4;
41 -};
42 -
43 -__v_1 = async __v_24 => __v_24 + 4;
44 -
45 -__v_25 = [0, 1, 2];
46 -__v_26 = [3, 4, 5];
47 -__v_27 = [...__v_25, ...__v_26];
48 -
49 -__v_28 = ([__v_29, __v_30] = [1, 2], {
50 - v31: __v_31
51 -} = {
52 - v31: __v_29 + __v_30
53 -}) => __v_29 + __v_30 + __v_31;
54 -
55 -__v_42 = 170 % 16 / 16 + 2 ** 32;
56 -__v_33 = 0o1 + 0O1 + 01 + 0b011 + 0B011;
57 -
58 -for (var __v_8 of [1, 2, 3]) console.log(__v_8);
59 -
60 -function __f_0(__v_34) {}
61 -
62 -__f_0();
63 -
64 -%OptimizeFunctionOnNextCall(__f_0);
65 -
66 -function __f_1() {
67 - var __v_35 = 5;
68 - return __v_35 + 6;
69 -}
70 -
71 -(async function __f_5() {
72 - var __v_36 = await 1;
73 -
74 - console.log(__v_36);
75 -})();
76 -
77 -function* __f_2(__v_37 = 2, ...__v_38) {
78 - yield* [1, 2, 3];
79 -}
80 -
81 -function* __f_3() {
82 - (yield 3) + (yield);
83 -}
84 -
85 -{
86 - function __f_6() {}
87 -}
88 -__v_39 = {
89 - v6: __v_6,
90 - [__v_6]: 3,
91 -
92 - f7() {},
93 -
94 - get f8() {},
95 -
96 - *f9() {},
97 -
98 - async f10() {}
99 -
100 -};
101 -var [__v_9, __v_10, ...__v_11] = [10, 20],
102 - {
103 - v27: __v_12,
104 - v28: __v_13
105 -} = {
106 - v27: 10,
107 - v28: 20
108 -};
109 -
110 -class __c_0 {
111 - f11(__v_40) {
112 - return __v_40 + 1;
113 - }
114 -
115 - static *f12() {
116 - yield 'a' + super.f12();
117 - }
118 -
119 - constructor(__v_41) {
120 - console.log(new.target.name);
121 - }
122 -
123 - [0]() {}
124 -
125 -}
126 -
127 -class __c_1 extends __c_0 {}
128 -
129 -do ; while (0);
130 -
131 -__v_42 **= 4;
132 -
133 -for (const __v_43 = 1; __v_43 < 1;);
134 -
135 -for (let __v_44 = 1; __v_44 < 5; __v_44++);
136 -
137 -for (var __v_14 = 1; __v_14 < 5; __v_14++);
138 -
139 -for (const {
140 - v35: __v_45 = 0,
141 - v36: __v_46 = 3
142 -} = {}; __v_46 < 1;);
143 -
144 -for (let {
145 - v37: __v_47 = 0,
146 - v38: __v_48 = 3
147 -} = {}; __v_48 != 0; __v_48--);
148 -
149 -for (var {
150 - v39: __v_15 = 0,
151 - v40: __v_16 = 3
152 -} = {}; __v_16 != 0; __v_16--);
153 -
154 -for (const __v_49 of [1, 2, 3]);
155 -
156 -for (let __v_50 of [1, 2, 3]);
157 -
158 -for (var __v_17 of [1, 2, 3]);
159 -
160 -for (const __v_51 in [1, 2, 3]);
161 -
162 -for (let __v_52 in [1, 2, 3]);
163 -
164 -for (var __v_18 in [1, 2, 3]);
165 -
166 -label: function __f_4() {}
167 -
168 -var __v_19 = function __f_7() {
169 - __f_7();
170 -};
171 -
172 -var __v_20 = class __c_2 {
173 - constructor() {
174 - console.log(__c_2.name);
175 - }
176 -
177 -};
compiler/packages/js-fuzzer/test_data/spidermonkey/load1.js deleted
-5
@@ -1,5 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -console.log('load1.js');
compiler/packages/js-fuzzer/test_data/spidermonkey/shell.js deleted
-7
@@ -1,7 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -console.log('/shell.js');
6 -if (!ok)
7 - throw new Error(`assertion failed: ${f} did not throw as expected`);
compiler/packages/js-fuzzer/test_data/spidermonkey/test/load.js deleted
-15
@@ -1,15 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -load('load1.js');
6 -loadRelativeToScript('load2.js');
7 -console.log('load.js');
8 -
9 -if (!ok)
10 - throw new Error(`Assertion failed: Some text`);
11 -
12 -print("Assertion failed: Some text");
13 -
14 -// Check that we can load template literals with null cooked value.
15 -check()`\01`;
compiler/packages/js-fuzzer/test_data/spidermonkey/test/load2.js deleted
-5
@@ -1,5 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -console.log('load2.js');
compiler/packages/js-fuzzer/test_data/spidermonkey/test/load_expected.js deleted
-22
@@ -1,22 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -// Original: spidermonkey/shell.js
6 -console.log('/shell.js');
7 -if (!ok) throw new Error(`*****tion failed: ${f} did not throw as expected`);
8 -
9 -// Original: spidermonkey/test/shell.js
10 -console.log('/test/shell.js');
11 -
12 -// Original: spidermonkey/load1.js
13 -console.log('load1.js');
14 -
15 -// Original: spidermonkey/test/load2.js
16 -console.log('load2.js');
17 -
18 -// Original: spidermonkey/test/load.js
19 -console.log('load.js');
20 -if (!ok) throw new Error(`*****tion failed: Some text`);
21 -print("*****tion failed: Some text");
22 -check()`\01`;
compiler/packages/js-fuzzer/test_data/spidermonkey/test/shell.js deleted
-5
@@ -1,5 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -console.log('/test/shell.js');
compiler/packages/js-fuzzer/test_data/try_catch.js deleted
-41
@@ -1,41 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -function blah() {
6 - try {
7 - var a = 10;
8 - console.log(a);
9 - } catch (e) {}
10 -
11 - label: for (var i = 0; i < 100; i++) {
12 - var b = 0;
13 - while (b < 10) {
14 - console.log(b);
15 - b += 2;
16 - continue label;
17 - }
18 - }
19 -}
20 -
21 -blah();
22 -blah();
23 -
24 -(function () {1;1;})();
25 -
26 -if (true) {
27 - 2;2;
28 -} else {
29 - 3;3;
30 -}
31 -
32 -let a = 0;
33 -switch (a) {
34 - case 1: 1;
35 -}
36 -
37 -with (Math) {
38 - cos(PI);
39 -}
40 -
41 -let module = new WebAssembly.Module(builder.toBuffer());
compiler/packages/js-fuzzer/test_data/try_catch_alternate_expected.js deleted
-51
@@ -1,51 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/* AddTryCatchMutator: Target skip probability 0.9 and toplevel probability 0.9 */
6 -
7 -// Original: try_catch.js
8 -function blah() {
9 - try {
10 - var a = 10;
11 - console.log(a);
12 - } catch (e) {}
13 -
14 - label: for (var i = 0; i < 100; i++) {
15 - var b = 0;
16 -
17 - while (b < 10) {
18 - console.log(b);
19 - b += 2;
20 - continue label;
21 - }
22 - }
23 -}
24 -
25 -blah();
26 -blah();
27 -
28 -(function () {
29 - 1;
30 - 1;
31 -})();
32 -
33 -if (true) {
34 - 2;
35 - 2;
36 -} else {
37 - 3;
38 - 3;
39 -}
40 -
41 -let a = 0;
42 -
43 -switch (a) {
44 - case 1:
45 - 1;
46 -}
47 -
48 -with (Math) {
49 - cos(PI);
50 -}
51 -let module = new WebAssembly.Module(builder.toBuffer());
compiler/packages/js-fuzzer/test_data/try_catch_expected.js deleted
-104
@@ -1,104 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -// Original: try_catch.js
6 -function blah() {
7 - try {
8 - try {
9 - var a = 10;
10 - } catch (e) {}
11 -
12 - try {
13 - console.log(a);
14 - } catch (e) {}
15 - } catch (e) {}
16 -
17 - try {
18 - label: for (var i = 0; i < 100; i++) {
19 - try {
20 - var b = 0;
21 - } catch (e) {}
22 -
23 - try {
24 - while (b < 10) {
25 - try {
26 - console.log(b);
27 - } catch (e) {}
28 -
29 - try {
30 - b += 2;
31 - } catch (e) {}
32 -
33 - continue label;
34 - }
35 - } catch (e) {}
36 - }
37 - } catch (e) {}
38 -}
39 -
40 -try {
41 - blah();
42 -} catch (e) {}
43 -
44 -try {
45 - blah();
46 -} catch (e) {}
47 -
48 -try {
49 - (function () {
50 - try {
51 - 1;
52 - } catch (e) {}
53 -
54 - try {
55 - 1;
56 - } catch (e) {}
57 - })();
58 -} catch (e) {}
59 -
60 -try {
61 - if (true) {
62 - try {
63 - 2;
64 - } catch (e) {}
65 -
66 - try {
67 - 2;
68 - } catch (e) {}
69 - } else {
70 - try {
71 - 3;
72 - } catch (e) {}
73 -
74 - try {
75 - 3;
76 - } catch (e) {}
77 - }
78 -} catch (e) {}
79 -
80 -let a = 0;
81 -
82 -try {
83 - switch (a) {
84 - case 1:
85 - try {
86 - 1;
87 - } catch (e) {}
88 -
89 - }
90 -} catch (e) {}
91 -
92 -try {
93 - with (Math) {
94 - try {
95 - cos(PI);
96 - } catch (e) {}
97 - }
98 -} catch (e) {}
99 -
100 -let module = function () {
101 - try {
102 - return new WebAssembly.Module(builder.toBuffer());
103 - } catch (e) {}
104 -}();
compiler/packages/js-fuzzer/test_data/try_catch_nothing_expected.js deleted
-49
@@ -1,49 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -// Original: try_catch.js
6 -function blah() {
7 - try {
8 - var a = 10;
9 - console.log(a);
10 - } catch (e) {}
11 -
12 - label: for (var i = 0; i < 100; i++) {
13 - var b = 0;
14 -
15 - while (b < 10) {
16 - console.log(b);
17 - b += 2;
18 - continue label;
19 - }
20 - }
21 -}
22 -
23 -blah();
24 -blah();
25 -
26 -(function () {
27 - 1;
28 - 1;
29 -})();
30 -
31 -if (true) {
32 - 2;
33 - 2;
34 -} else {
35 - 3;
36 - 3;
37 -}
38 -
39 -let a = 0;
40 -
41 -switch (a) {
42 - case 1:
43 - 1;
44 -}
45 -
46 -with (Math) {
47 - cos(PI);
48 -}
49 -let module = new WebAssembly.Module(builder.toBuffer());
compiler/packages/js-fuzzer/test_data/try_catch_toplevel_expected.js deleted
-74
@@ -1,74 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -// Original: try_catch.js
6 -function blah() {
7 - try {
8 - try {
9 - var a = 10;
10 - } catch (e) {}
11 -
12 - try {
13 - console.log(a);
14 - } catch (e) {}
15 - } catch (e) {}
16 -
17 - try {
18 - label: for (var i = 0; i < 100; i++) {
19 - var b = 0;
20 -
21 - while (b < 10) {
22 - console.log(b);
23 - b += 2;
24 - continue label;
25 - }
26 - }
27 - } catch (e) {}
28 -}
29 -
30 -try {
31 - blah();
32 -} catch (e) {}
33 -
34 -try {
35 - blah();
36 -} catch (e) {}
37 -
38 -try {
39 - (function () {
40 - 1;
41 - 1;
42 - })();
43 -} catch (e) {}
44 -
45 -try {
46 - if (true) {
47 - 2;
48 - 2;
49 - } else {
50 - 3;
51 - 3;
52 - }
53 -} catch (e) {}
54 -
55 -let a = 0;
56 -
57 -try {
58 - switch (a) {
59 - case 1:
60 - 1;
61 - }
62 -} catch (e) {}
63 -
64 -try {
65 - with (Math) {
66 - cos(PI);
67 - }
68 -} catch (e) {}
69 -
70 -let module = function () {
71 - try {
72 - return new WebAssembly.Module(builder.toBuffer());
73 - } catch (e) {}
74 -}();
compiler/packages/js-fuzzer/test_db.js deleted
-66
@@ -1,66 +0,0 @@
1 -// Copyright 2020 the V8 project authors. All rights reserved.
2 -// Use of this source code is governed by a BSD-style license that can be
3 -// found in the LICENSE file.
4 -
5 -/**
6 - * @fileoverview Test all expressions in DB.
7 - */
8 -
9 -const fs = require('fs');
10 -const fsPath = require('path');
11 -const program = require('commander');
12 -const sinon = require('sinon');
13 -
14 -const crossOverMutator = require('./mutators/crossover_mutator.js');
15 -const db = require('./db.js');
16 -const random = require('./random.js');
17 -const sourceHelpers = require('./source_helpers.js');
18 -
19 -const sandbox = sinon.createSandbox();
20 -
21 -function main() {
22 - program
23 - .version('0.0.1')
24 - .option('-i, --input_dir <path>', 'DB directory.')
25 - .parse(process.argv);
26 -
27 - if (!program.input_dir) {
28 - console.log('Need to specify DB dir.');
29 - return;
30 - }
31 -
32 - const mutateDb = new db.MutateDb(program.input_dir);
33 - const mutator = new crossOverMutator.CrossOverMutator(
34 - { MUTATE_CROSSOVER_INSERT: 1.0, testing: true }, mutateDb);
35 -
36 - let nPass = 0;
37 - let nFail = 0;
38 - // Iterate over all statements saved in the DB.
39 - for (const statementPath of mutateDb.index.all) {
40 - const expression = JSON.parse(fs.readFileSync(
41 - fsPath.join(program.input_dir, statementPath)), 'utf-8');
42 - // Stub out choosing random variables in cross-over mutator.
43 - sandbox.stub(random, 'single').callsFake((a) => { return a[0]; });
44 - // Ensure we are selecting the statement of the current iteration.
45 - sandbox.stub(mutateDb, 'getRandomStatement').callsFake(
46 - () => { return expression; });
47 - // Use a source that will try to insert one statement, allowing
48 - // super.
49 - const source = sourceHelpers.loadSource(
50 - __dirname,
51 - 'test_data/cross_over_mutator_class_input.js');
52 - try {
53 - mutator.mutate(source);
54 - nPass++;
55 - } catch (e) {
56 - console.log('******************************************************')
57 - console.log(expression);
58 - console.log(e.message);
59 - nFail++;
60 - }
61 - sandbox.restore();
62 - }
63 - console.log(`Result: ${nPass} passed, ${nFail} failed.`)
64 -}
65 -
66 -main();
compiler/packages/js-fuzzer/tools/fuzz_one.py deleted
-43
@@ -1,43 +0,0 @@
1 -#!/usr/bin/env python3
2 -# Copyright 2020 the V8 project authors. All rights reserved.
3 -# Use of this source code is governed by a BSD-style license that can be
4 -# found in the LICENSE file.
5 -
6 -
7 -"""
8 -Helper script to execute a single-processed fuzzing session.
9 -
10 -Creates fuzz tests in workdir/output/dir-<dir number>/fuzz-XXX.js.
11 -Expects the <dir number> as single parameter.
12 -"""
13 -
14 -import os
15 -import subprocess
16 -import sys
17 -import time
18 -
19 -BASE_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
20 -APP_DIR = os.path.join(BASE_PATH, 'workdir', 'app_dir')
21 -FUZZ_EXE = os.path.join(BASE_PATH, 'workdir', 'fuzzer', 'ochang_js_fuzzer')
22 -INPUT_DIR = os.path.join(BASE_PATH, 'workdir', 'input')
23 -TEST_CASES = os.path.join(BASE_PATH, 'workdir', 'output')
24 -
25 -COUNT = 64
26 -FUZZ = ('FUZZ_MODE=foozzie APP_NAME=d8 APP_DIR=%s %s -o %%s -n %s -i %s > %%s'
27 - % (APP_DIR, FUZZ_EXE, COUNT, INPUT_DIR))
28 -
29 -assert(len(sys.argv) > 1)
30 -dir_number = int(sys.argv[1])
31 -assert(dir_number >= 0)
32 -
33 -path = os.path.join(TEST_CASES, 'dir-%d' % dir_number)
34 -assert not os.path.exists(path), 'Need fresh workdir for fuzzing'
35 -os.makedirs(path)
36 -
37 -start = time.time()
38 -subprocess.check_call(
39 - FUZZ % (path, os.path.join(path, 'out.log')), shell=True)
40 -duration = int(time.time() - start)
41 -
42 -with open(os.path.join(path, 'duration.log'), 'w') as f:
43 - f.write(str(duration))
compiler/packages/js-fuzzer/tools/minimize.py deleted
-44
@@ -1,44 +0,0 @@
1 -#!/usr/bin/env python3
2 -# Copyright 2020 the V8 project authors. All rights reserved.
3 -# Use of this source code is governed by a BSD-style license that can be
4 -# found in the LICENSE file.
5 -
6 -
7 -"""
8 -Helper script to forge a command line for clusterfuzz' minimizer for
9 -each failure found during a fuzzing session with workbench.py.
10 -
11 -Expects the path to the minimizer tools, e.g. something like:
12 -path/to/src/python/bot/minimizer
13 -"""
14 -
15 -import json
16 -from multiprocessing import cpu_count
17 -import os
18 -import sys
19 -
20 -PROCESSES = cpu_count()
21 -BASE_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
22 -OUT_PATH = os.path.join(BASE_PATH, 'out.js')
23 -FAILURES_JSON_PATH = os.path.join(
24 - BASE_PATH, 'workdir', 'output', 'failures.json')
25 -
26 -assert len(sys.argv) > 1, 'Need to specify minimizer path.'
27 -minimizer_path = sys.argv[1]
28 -
29 -def getcmd(command):
30 - parts = command.split(' ')
31 - prefix = command[:-(len(parts[-1]) + 1)]
32 - return ('python %s/run.py -t%d -mjs -o %s "%s" %s' %
33 - (minimizer_path, PROCESSES, OUT_PATH, prefix, parts[-1]))
34 -
35 -with open(FAILURES_JSON_PATH) as f:
36 - failures = json.load(f)
37 -
38 -for failure in failures:
39 - print('*********************************************************')
40 - print('Source: ' + failure['source'])
41 - print('Command:')
42 - print(failure['command'])
43 - print('Minimize:')
44 - print(getcmd(failure['command']))
compiler/packages/js-fuzzer/tools/run_one.py deleted
-106
@@ -1,106 +0,0 @@
1 -#!/usr/bin/env python3
2 -# Copyright 2020 the V8 project authors. All rights reserved.
3 -# Use of this source code is governed by a BSD-style license that can be
4 -# found in the LICENSE file.
5 -
6 -
7 -"""
8 -Helper script to execute fuzz tests in a single process.
9 -
10 -Expects fuzz tests in workdir/output/dir-<dir number>/fuzz-XXX.js.
11 -Expects the <dir number> as single parameter.
12 -"""
13 -
14 -import json
15 -import os
16 -import random
17 -import re
18 -import subprocess
19 -import sys
20 -
21 -BASE_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
22 -FOOZZIE = os.path.join(BASE_PATH, 'workdir', 'app_dir', 'v8_foozzie.py')
23 -TEST_CASES = os.path.join(BASE_PATH, 'workdir', 'output')
24 -
25 -assert os.path.exists(FOOZZIE)
26 -
27 -# Output pattern from foozzie.py when it finds a failure.
28 -FAILURE_RE = re.compile(
29 - r'# V8 correctness failure.'
30 - r'# V8 correctness configs: (?P<configs>.*).'
31 - r'# V8 correctness sources: (?P<source>.*).'
32 - r'# V8 correctness suppression:.*', re.S)
33 -
34 -assert(len(sys.argv) > 1)
35 -dir_number = int(sys.argv[1])
36 -assert(dir_number >= 0)
37 -
38 -test_dir = os.path.join(TEST_CASES, 'dir-%d' % dir_number)
39 -assert os.path.exists(test_dir)
40 -
41 -def failure_state(command, stdout):
42 - return dict(FAILURE_RE.search(stdout).groupdict(), command=command)
43 -
44 -def random_seed():
45 - """Returns random, non-zero seed."""
46 - seed = 0
47 - while not seed:
48 - seed = random.SystemRandom().randint(-2147483648, 2147483647)
49 - return seed
50 -
51 -def run(fuzz_file, flag_file):
52 - """Executes the differential-fuzzing harness foozzie with one fuzz test."""
53 - with open(flag_file) as f:
54 - flags = f.read().split(' ')
55 - args = [FOOZZIE, '--random-seed=%d' % random_seed()] + flags + [fuzz_file]
56 - cmd = ' '.join(args)
57 - try:
58 - output = subprocess.check_output(cmd, stderr=subprocess.PIPE, shell=True)
59 - return (cmd, output.decode('utf-8'))
60 - except Exception as e:
61 - return (cmd, e.output.decode('utf-8'))
62 -
63 -
64 -def list_tests():
65 - """Iterates all fuzz tests and corresponding flags in the given base dir."""
66 - for f in os.listdir(test_dir):
67 - if f.startswith('fuzz'):
68 - n = int(re.match(r'fuzz-(\d+)\.js', f).group(1))
69 - ff = 'flags-%d.js' % n
70 - yield (os.path.join(test_dir, f), os.path.join(test_dir, ff))
71 -
72 -# Some counters for the statistics.
73 -count = 0
74 -count_timeout = 0
75 -count_crash = 0
76 -count_failure = 0
77 -failures = []
78 -
79 -# Execute all tests in the given directory. Interpret foozzie's output and add
80 -# it to the statistics.
81 -for fuzz_file, flag_file in list_tests():
82 - cmd, output = run(fuzz_file, flag_file)
83 - count += 1
84 - if '# V8 correctness - pass' in output:
85 - continue
86 - if '# V8 correctness - T-I-M-E-O-U-T' in output:
87 - count_timeout += 1
88 - continue
89 - if '# V8 correctness - C-R-A-S-H' in output:
90 - count_crash += 1
91 - continue
92 - count_failure += 1
93 - failures.append(failure_state(cmd, output))
94 -
95 -with open(os.path.join(test_dir, 'failures.json'), 'w') as f:
96 - json.dump(failures, f)
97 -
98 -stats = {
99 - 'total': count,
100 - 'timeout': count_timeout,
101 - 'crash': count_crash,
102 - 'failure': count_failure,
103 -}
104 -
105 -with open(os.path.join(test_dir, 'stats.json'), 'w') as f:
106 - json.dump(stats, f)
compiler/packages/js-fuzzer/tools/workbench.py deleted
-127
@@ -1,127 +0,0 @@
1 -#!/usr/bin/env python3
2 -# Copyright 2020 the V8 project authors. All rights reserved.
3 -# Use of this source code is governed by a BSD-style license that can be
4 -# found in the LICENSE file.
5 -
6 -
7 -"""
8 -Tool to execute multiprocessed fuzzing and testing sessions.
9 -
10 -Expects a single parameter with the number of sessions.
11 -
12 -Regularly updates a stats.json and failures.json during executions. E.g.
13 -stay up-to-date with:
14 -cat workdir/output/stats.json | python -m json.tool
15 -"""
16 -
17 -# TODO(machenbach): This is currently tailored for differential fuzzing
18 -# with foozzie. It could be generalized, but that'd require duplicating
19 -# clusterfuzz' stack analysis to some degree. E.g. understanding asan
20 -# or DCHECK failures.
21 -
22 -from __future__ import print_function
23 -
24 -import json
25 -import math
26 -from multiprocessing import Pool, cpu_count
27 -import os
28 -import random
29 -import subprocess
30 -import sys
31 -
32 -PROCESSES = cpu_count()
33 -BASE_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
34 -TEST_CASES = os.path.join(BASE_PATH, 'workdir', 'output')
35 -FUZZ_ONE = os.path.join(BASE_PATH, 'tools', 'fuzz_one.py')
36 -RUN_ONE = os.path.join(BASE_PATH, 'tools', 'run_one.py')
37 -
38 -os.chdir(BASE_PATH)
39 -
40 -if os.path.exists(TEST_CASES):
41 - if not os.path.isdir(TEST_CASES) or os.listdir(TEST_CASES):
42 - sys.exit("'output' must be an empty directory")
43 -else:
44 - os.mkdir(TEST_CASES)
45 -
46 -# Use ~40000 for 24 hours of fuzzing on a modern work station.
47 -RUNS = 8
48 -if len(sys.argv) > 1:
49 - RUNS = int(sys.argv[1])
50 -
51 -def run(n):
52 - """Multiprocessed function that executes a single fuzz session and
53 - afterwards executes all fuzz tests and collects the statistics.
54 -
55 - Args:
56 - n: Subdirectory index of this run.
57 - """
58 - subprocess.check_call([sys.executable, FUZZ_ONE, str(n)])
59 - subprocess.check_call([sys.executable, RUN_ONE, str(n)])
60 - test_dir = os.path.join(TEST_CASES, 'dir-%d' % n)
61 - with open(os.path.join(test_dir, 'stats.json')) as f:
62 - stats = json.load(f)
63 - with open(os.path.join(test_dir, 'failures.json')) as f:
64 - failures = json.load(f)
65 - return (stats, failures)
66 -
67 -
68 -class Stats(object):
69 - def __init__(self):
70 - self.total = 0
71 - self.crash = 0
72 - self.timeout = 0
73 - self.failure = 0
74 - self.dupe = 0
75 - self.failures = []
76 - self.known_states = set()
77 -
78 - def add(self, stats, failures):
79 - # Aggregate common stats.
80 - self.total += stats['total']
81 - self.crash += stats['crash']
82 - self.timeout += stats['timeout']
83 -
84 - # Dedupe failures.
85 - for failure in failures:
86 - if failure['source'] in self.known_states:
87 - self.dupe += 1
88 - continue
89 -
90 - self.known_states.add(failure['source'])
91 - self.failure += 1
92 - self.failures.append(failure)
93 -
94 - @property
95 - def stats(self):
96 - return {
97 - 'total': self.total,
98 - 'crash': self.crash,
99 - 'failure': self.failure,
100 - 'dupe': self.dupe,
101 - 'timeout': self.timeout,
102 - }
103 -
104 -all_stats = Stats()
105 -count = 0
106 -pool = Pool(processes=PROCESSES)
107 -
108 -# Iterate over all runs multiprocessed and merge the statistics and
109 -# failure data of the single runs.
110 -for stats, failures in pool.imap_unordered(run, range(RUNS)):
111 - all_stats.add(stats, failures)
112 - count += 1
113 - if count % max(1, int(RUNS / 20)) == 0:
114 - print('Progress: %d runs (%d%%)' % (count, count * 100 / RUNS))
115 -
116 - # Update overall stats.
117 - with open(os.path.join(TEST_CASES, 'stats.json'), 'w') as f:
118 - json.dump(all_stats.stats, f)
119 - with open(os.path.join(TEST_CASES, 'failures.json'), 'w') as f:
120 - json.dump(all_stats.failures, f)
121 -
122 -print('Ran %(total)d test cases (%(timeout)d timeouts, '
123 - '%(crash)d crashes, %(failure)d failures, %(dupe)d dupes)'
124 - % all_stats.stats)
125 -
126 -for failure in all_stats.failures:
127 - print(failure)
compiler/yarn.lock
+77 -2354
@@ -106,16 +106,6 @@
106 source-map "^0.5.0"
107 trim-right "^1.0.1"
108
109 -"@babel/generator@^7.1.3":
110 - version "7.22.9"
111 - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.9.tgz#572ecfa7a31002fa1de2a9d91621fd895da8493d"
112 - integrity sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==
113 - dependencies:
114 - "@babel/types" "^7.22.5"
115 - "@jridgewell/gen-mapping" "^0.3.2"
116 - "@jridgewell/trace-mapping" "^0.3.17"
117 - jsesc "^2.5.1"
118 -
109 "@babel/generator@^7.22.10":
110 version "7.22.10"
111 resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.10.tgz#c92254361f398e160645ac58831069707382b722"
@@ -623,21 +613,11 @@
613 chalk "^2.0.0"
614 js-tokens "^4.0.0"
615
626 -"@babel/parser@7.13.12":
627 - version "7.13.12"
628 - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.12.tgz#ba320059420774394d3b0c0233ba40e4250b81d1"
629 - integrity sha512-4T7Pb244rxH24yR116LAuJ+adxXXnHhZaLJjegJVKSdoNCe4x1eDBaud5YIcQFcqzsaD5BHvJw5BQ0AZapdCRw==
630 -
616 "@babel/parser@^7.1.0", "@babel/parser@^7.1.6", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.19.1", "@babel/parser@^7.2.0":
617 version "7.19.1"
618 resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.1.tgz#6f6d6c2e621aad19a92544cc217ed13f1aac5b4c"
619 integrity sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A==
620
636 -"@babel/parser@^7.1.3", "@babel/parser@^7.22.5":
637 - version "7.22.7"
638 - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae"
639 - integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==
640 -
621 "@babel/parser@^7.18.6":
622 version "7.19.3"
623 resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.3.tgz#8dd36d17c53ff347f9e55c328710321b49479a9a"
@@ -658,6 +638,11 @@
638 resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.10.tgz#e37634f9a12a1716136c44624ef54283cabd3f55"
639 integrity sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ==
640
641 +"@babel/parser@^7.22.5":
642 + version "7.22.7"
643 + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae"
644 + integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==
645 +
646 "@babel/parser@^7.7.4":
647 version "7.21.4"
648 resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.4.tgz#94003fdfc520bbe2875d4ae557b43ddb6d880f17"
@@ -1489,13 +1474,6 @@
1474 resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310"
1475 integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==
1476
1492 -"@babel/runtime@7.13.10":
1493 - version "7.13.10"
1494 - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.10.tgz#47d42a57b6095f4468da440388fdbad8bebf0d7d"
1495 - integrity sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==
1496 - dependencies:
1497 - regenerator-runtime "^0.13.4"
1498 -
1477 "@babel/runtime@^7.12.5":
1478 version "7.19.0"
1479 resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.19.0.tgz#22b11c037b094d27a8a2504ea4dcff00f50e2259"
@@ -1510,13 +1488,6 @@
1488 dependencies:
1489 regenerator-runtime "^0.13.11"
1490
1513 -"@babel/runtime@^7.9.2":
1514 - version "7.22.6"
1515 - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.6.tgz#57d64b9ae3cff1d67eb067ae117dac087f5bd438"
1516 - integrity sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==
1517 - dependencies:
1518 - regenerator-runtime "^0.13.11"
1519 -
1491 "@babel/template@^7.1.2", "@babel/template@^7.18.10":
1492 version "7.18.10"
1493 resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71"
@@ -1562,7 +1533,7 @@
1533 "@babel/parser" "^7.18.6"
1534 "@babel/types" "^7.18.6"
1535
1565 -"@babel/traverse@^7.1.4", "@babel/traverse@^7.1.6":
1536 +"@babel/traverse@^7.1.6":
1537 version "7.1.6"
1538 resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.1.6.tgz#c8db9963ab4ce5b894222435482bd8ea854b7b5c"
1539 integrity sha512-CXedit6GpISz3sC2k2FsGCUpOhUqKdyL0lqNrImQojagnUMXf8hex4AxYFRuMkNGcvJX5QAFGzB5WJQmSv8SiQ==
@@ -1601,15 +1572,6 @@
1572 "@babel/helper-validator-identifier" "^7.18.6"
1573 to-fast-properties "^2.0.0"
1574
1604 -"@babel/types@^7.1.3", "@babel/types@^7.22.5":
1605 - version "7.22.5"
1606 - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe"
1607 - integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==
1608 - dependencies:
1609 - "@babel/helper-string-parser" "^7.22.5"
1610 - "@babel/helper-validator-identifier" "^7.22.5"
1611 - to-fast-properties "^2.0.0"
1612 -
1575 "@babel/types@^7.1.6", "@babel/types@^7.18.10", "@babel/types@^7.19.0", "@babel/types@^7.2.0":
1576 version "7.19.0"
1577 resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.0.tgz#75f21d73d73dc0351f3368d28db73465f4814600"
@@ -1655,6 +1617,15 @@
1617 "@babel/helper-validator-identifier" "^7.22.5"
1618 to-fast-properties "^2.0.0"
1619
1620 +"@babel/types@^7.22.5":
1621 + version "7.22.5"
1622 + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe"
1623 + integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==
1624 + dependencies:
1625 + "@babel/helper-string-parser" "^7.22.5"
1626 + "@babel/helper-validator-identifier" "^7.22.5"
1627 + to-fast-properties "^2.0.0"
1628 +
1629 "@bcoe/v8-coverage@^0.2.3":
1630 version "0.2.3"
1631 resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
@@ -1667,11 +1638,6 @@
1638 dependencies:
1639 "@jridgewell/trace-mapping" "0.3.9"
1640
1670 -"@discoveryjs/json-ext@^0.5.0":
1671 - version "0.5.7"
1672 - resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70"
1673 - integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==
1674 -
1641 "@eslint-community/eslint-utils@^4.2.0":
1642 version "4.4.0"
1643 resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59"
@@ -2400,14 +2366,6 @@
2366 resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
2367 integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
2368
2403 -"@jridgewell/source-map@^0.3.3":
2404 - version "0.3.3"
2405 - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.3.tgz#8108265659d4c33e72ffe14e33d6cc5eb59f2fda"
2406 - integrity sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==
2407 - dependencies:
2408 - "@jridgewell/gen-mapping" "^0.3.0"
2409 - "@jridgewell/trace-mapping" "^0.3.9"
2410 -
2369 "@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10":
2370 version "1.4.14"
2371 resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
@@ -2632,13 +2590,6 @@
2590 resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.24.tgz#8c7688559979f7079aacaf31aa881c3aa410b718"
2591 integrity sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==
2592
2635 -"@sinonjs/commons@^1", "@sinonjs/commons@^1.3.0":
2636 - version "1.8.6"
2637 - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9"
2638 - integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==
2639 - dependencies:
2640 - type-detect "4.0.8"
2641 -
2593 "@sinonjs/commons@^1.7.0":
2594 version "1.8.3"
2595 resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d"
@@ -2667,35 +2618,6 @@
2618 dependencies:
2619 "@sinonjs/commons" "^1.7.0"
2620
2670 -"@sinonjs/formatio@^2.0.0":
2671 - version "2.0.0"
2672 - resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-2.0.0.tgz#84db7e9eb5531df18a8c5e0bfb6e449e55e654b2"
2673 - integrity sha512-ls6CAMA6/5gG+O/IdsBcblvnd8qcO/l1TYoNeAzp3wcISOxlPXQEus0mLcdwazEkWjaBdaJ3TaxmNgCLWwvWzg==
2674 - dependencies:
2675 - samsam "1.3.0"
2676 -
2677 -"@sinonjs/formatio@^3.2.1":
2678 - version "3.2.2"
2679 - resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-3.2.2.tgz#771c60dfa75ea7f2d68e3b94c7e888a78781372c"
2680 - integrity sha512-B8SEsgd8gArBLMD6zpRw3juQ2FVSsmdd7qlevyDqzS9WTCtvF55/gAL+h6gue8ZvPYcdiPdvueM/qm//9XzyTQ==
2681 - dependencies:
2682 - "@sinonjs/commons" "^1"
2683 - "@sinonjs/samsam" "^3.1.0"
2684 -
2685 -"@sinonjs/samsam@^3.1.0":
2686 - version "3.3.3"
2687 - resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-3.3.3.tgz#46682efd9967b259b81136b9f120fd54585feb4a"
2688 - integrity sha512-bKCMKZvWIjYD0BLGnNrxVuw4dkWCYsLqFOUWw8VgKF/+5Y+mE7LfHWPIYoDXowH+3a9LsWDMo0uAP8YDosPvHQ==
2689 - dependencies:
2690 - "@sinonjs/commons" "^1.3.0"
2691 - array-from "^2.1.1"
2692 - lodash "^4.17.15"
2693 -
2694 -"@sinonjs/text-encoding@^0.7.1":
2695 - version "0.7.2"
2696 - resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz#5981a8db18b56ba38ef0efb7d995b12aa7b51918"
2697 - integrity sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==
2698 -
2621 "@swc/helpers@0.5.2":
2622 version "0.5.2"
2623 resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.2.tgz#85ea0c76450b61ad7d10a37050289eded783c27d"
@@ -2799,18 +2721,10 @@
2721 dependencies:
2722 "@babel/types" "^7.3.0"
2723
2802 -"@types/eslint-scope@^3.7.3":
2803 - version "3.7.4"
2804 - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16"
2805 - integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==
2806 - dependencies:
2807 - "@types/eslint" "*"
2808 - "@types/estree" "*"
2809 -
2810 -"@types/eslint@*":
2811 - version "8.40.0"
2812 - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.40.0.tgz#ae73dc9ec5237f2794c4f79efd6a4c73b13daf23"
2813 - integrity sha512-nbq2mvc/tBrK9zQQuItvjJl++GTN5j06DaPtp3hZCpngmG6Q3xoyEmd0TwZI0gAy/G1X0zhGBbr2imsGFdFV0g==
2724 +"@types/eslint@^8.56.6":
2725 + version "8.56.6"
2726 + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.56.6.tgz#d5dc16cac025d313ee101108ba5714ea10eb3ed0"
2727 + integrity sha512-ymwc+qb1XkjT/gfoQwxIeHZ6ixH23A+tCT2ADSA/DPVKzAjwYkTXBMCQ/f6fe4wEa85Lhp26VPeUxI7wMhAi7A==
2728 dependencies:
2729 "@types/estree" "*"
2730 "@types/json-schema" "*"
@@ -2899,10 +2813,10 @@
2813 "@types/tough-cookie" "*"
2814 parse5 "^7.0.0"
2815
2902 -"@types/json-schema@*", "@types/json-schema@^7.0.8":
2903 - version "7.0.12"
2904 - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb"
2905 - integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==
2816 +"@types/json-schema@*":
2817 + version "7.0.15"
2818 + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
2819 + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
2820
2821 "@types/json-schema@^7.0.9":
2822 version "7.0.11"
@@ -3166,166 +3080,11 @@
3080 dependencies:
3081 "@use-gesture/core" "10.2.27"
3082
3169 -"@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5":
3170 - version "1.11.6"
3171 - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24"
3172 - integrity sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==
3173 - dependencies:
3174 - "@webassemblyjs/helper-numbers" "1.11.6"
3175 - "@webassemblyjs/helper-wasm-bytecode" "1.11.6"
3176 -
3177 -"@webassemblyjs/floating-point-hex-parser@1.11.6":
3178 - version "1.11.6"
3179 - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431"
3180 - integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==
3181 -
3182 -"@webassemblyjs/helper-api-error@1.11.6":
3183 - version "1.11.6"
3184 - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768"
3185 - integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==
3186 -
3187 -"@webassemblyjs/helper-buffer@1.11.6":
3188 - version "1.11.6"
3189 - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz#b66d73c43e296fd5e88006f18524feb0f2c7c093"
3190 - integrity sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==
3191 -
3192 -"@webassemblyjs/helper-numbers@1.11.6":
3193 - version "1.11.6"
3194 - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5"
3195 - integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==
3196 - dependencies:
3197 - "@webassemblyjs/floating-point-hex-parser" "1.11.6"
3198 - "@webassemblyjs/helper-api-error" "1.11.6"
3199 - "@xtuc/long" "4.2.2"
3200 -
3201 -"@webassemblyjs/helper-wasm-bytecode@1.11.6":
3202 - version "1.11.6"
3203 - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9"
3204 - integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==
3205 -
3206 -"@webassemblyjs/helper-wasm-section@1.11.6":
3207 - version "1.11.6"
3208 - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz#ff97f3863c55ee7f580fd5c41a381e9def4aa577"
3209 - integrity sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==
3210 - dependencies:
3211 - "@webassemblyjs/ast" "1.11.6"
3212 - "@webassemblyjs/helper-buffer" "1.11.6"
3213 - "@webassemblyjs/helper-wasm-bytecode" "1.11.6"
3214 - "@webassemblyjs/wasm-gen" "1.11.6"
3215 -
3216 -"@webassemblyjs/ieee754@1.11.6":
3217 - version "1.11.6"
3218 - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a"
3219 - integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==
3220 - dependencies:
3221 - "@xtuc/ieee754" "^1.2.0"
3222 -
3223 -"@webassemblyjs/leb128@1.11.6":
3224 - version "1.11.6"
3225 - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7"
3226 - integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==
3227 - dependencies:
3228 - "@xtuc/long" "4.2.2"
3229 -
3230 -"@webassemblyjs/utf8@1.11.6":
3231 - version "1.11.6"
3232 - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a"
3233 - integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==
3234 -
3235 -"@webassemblyjs/wasm-edit@^1.11.5":
3236 - version "1.11.6"
3237 - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz#c72fa8220524c9b416249f3d94c2958dfe70ceab"
3238 - integrity sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==
3239 - dependencies:
3240 - "@webassemblyjs/ast" "1.11.6"
3241 - "@webassemblyjs/helper-buffer" "1.11.6"
3242 - "@webassemblyjs/helper-wasm-bytecode" "1.11.6"
3243 - "@webassemblyjs/helper-wasm-section" "1.11.6"
3244 - "@webassemblyjs/wasm-gen" "1.11.6"
3245 - "@webassemblyjs/wasm-opt" "1.11.6"
3246 - "@webassemblyjs/wasm-parser" "1.11.6"
3247 - "@webassemblyjs/wast-printer" "1.11.6"
3248 -
3249 -"@webassemblyjs/wasm-gen@1.11.6":
3250 - version "1.11.6"
3251 - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz#fb5283e0e8b4551cc4e9c3c0d7184a65faf7c268"
3252 - integrity sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==
3253 - dependencies:
3254 - "@webassemblyjs/ast" "1.11.6"
3255 - "@webassemblyjs/helper-wasm-bytecode" "1.11.6"
3256 - "@webassemblyjs/ieee754" "1.11.6"
3257 - "@webassemblyjs/leb128" "1.11.6"
3258 - "@webassemblyjs/utf8" "1.11.6"
3259 -
3260 -"@webassemblyjs/wasm-opt@1.11.6":
3261 - version "1.11.6"
3262 - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz#d9a22d651248422ca498b09aa3232a81041487c2"
3263 - integrity sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==
3264 - dependencies:
3265 - "@webassemblyjs/ast" "1.11.6"
3266 - "@webassemblyjs/helper-buffer" "1.11.6"
3267 - "@webassemblyjs/wasm-gen" "1.11.6"
3268 - "@webassemblyjs/wasm-parser" "1.11.6"
3269 -
3270 -"@webassemblyjs/wasm-parser@1.11.6", "@webassemblyjs/wasm-parser@^1.11.5":
3271 - version "1.11.6"
3272 - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz#bb85378c527df824004812bbdb784eea539174a1"
3273 - integrity sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==
3274 - dependencies:
3275 - "@webassemblyjs/ast" "1.11.6"
3276 - "@webassemblyjs/helper-api-error" "1.11.6"
3277 - "@webassemblyjs/helper-wasm-bytecode" "1.11.6"
3278 - "@webassemblyjs/ieee754" "1.11.6"
3279 - "@webassemblyjs/leb128" "1.11.6"
3280 - "@webassemblyjs/utf8" "1.11.6"
3281 -
3282 -"@webassemblyjs/wast-printer@1.11.6":
3283 - version "1.11.6"
3284 - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz#a7bf8dd7e362aeb1668ff43f35cb849f188eff20"
3285 - integrity sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==
3286 - dependencies:
3287 - "@webassemblyjs/ast" "1.11.6"
3288 - "@xtuc/long" "4.2.2"
3289 -
3290 -"@webpack-cli/configtest@^1.2.0":
3291 - version "1.2.0"
3292 - resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.2.0.tgz#7b20ce1c12533912c3b217ea68262365fa29a6f5"
3293 - integrity sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==
3294 -
3295 -"@webpack-cli/info@^1.5.0":
3296 - version "1.5.0"
3297 - resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.5.0.tgz#6c78c13c5874852d6e2dd17f08a41f3fe4c261b1"
3298 - integrity sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==
3299 - dependencies:
3300 - envinfo "^7.7.3"
3301 -
3302 -"@webpack-cli/serve@^1.7.0":
3303 - version "1.7.0"
3304 - resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.7.0.tgz#e1993689ac42d2b16e9194376cfb6753f6254db1"
3305 - integrity sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==
3306 -
3307 -"@xtuc/ieee754@^1.2.0":
3308 - version "1.2.0"
3309 - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790"
3310 - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==
3311 -
3312 -"@xtuc/long@4.2.2":
3313 - version "4.2.2"
3314 - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
3315 - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
3316 -
3083 abab@^2.0.6:
3084 version "2.0.6"
3085 resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291"
3086 integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==
3087
3322 -abort-controller@^3.0.0:
3323 - version "3.0.0"
3324 - resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392"
3325 - integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==
3326 - dependencies:
3327 - event-target-shim "^5.0.0"
3328 -
3088 acorn-globals@^6.0.0:
3089 version "6.0.0"
3090 resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45"
@@ -3334,12 +3093,7 @@ acorn-globals@^6.0.0:
3093 acorn "^7.1.1"
3094 acorn-walk "^7.1.1"
3095
3337 -acorn-import-assertions@^1.9.0:
3338 - version "1.9.0"
3339 - resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac"
3340 - integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==
3341 -
3342 -acorn-jsx@^5.2.0, acorn-jsx@^5.3.2:
3096 +acorn-jsx@^5.3.2:
3097 version "5.3.2"
3098 resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
3099 integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
@@ -3364,11 +3118,6 @@ acorn@^8.4.1, acorn@^8.7.1, acorn@^8.8.0:
3118 resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8"
3119 integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==
3120
3367 -acorn@^8.8.2:
3368 - version "8.8.2"
3369 - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a"
3370 - integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==
3371 -
3121 acorn@^8.9.0:
3122 version "8.11.2"
3123 resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b"
@@ -3381,12 +3130,7 @@ agent-base@6:
3130 dependencies:
3131 debug "4"
3132
3384 -ajv-keywords@^3.5.2:
3385 - version "3.5.2"
3386 - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
3387 - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
3388 -
3389 -ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5:
3133 +ajv@^6.10.0, ajv@^6.12.4:
3134 version "6.12.6"
3135 resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
3136 integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
@@ -3403,12 +3147,7 @@ ansi-escapes@^4.2.1:
3147 dependencies:
3148 type-fest "^0.21.3"
3149
3406 -ansi-regex@^2.0.0:
3407 - version "2.1.1"
3408 - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
3409 - integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==
3410 -
3411 -ansi-regex@^4.0.0, ansi-regex@^4.1.0:
3150 +ansi-regex@^4.0.0:
3151 version "4.1.1"
3152 resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed"
3153 integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==
@@ -3468,19 +3207,6 @@ anymatch@~3.1.2:
3207 normalize-path "^3.0.0"
3208 picomatch "^2.0.4"
3209
3471 -aproba@^1.0.3:
3472 - version "1.2.0"
3473 - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
3474 - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
3475 -
3476 -are-we-there-yet@~1.1.2:
3477 - version "1.1.7"
3478 - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146"
3479 - integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==
3480 - dependencies:
3481 - delegates "^1.0.0"
3482 - readable-stream "^2.0.6"
3483 -
3210 arg@^4.1.0:
3211 version "4.1.3"
3212 resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
@@ -3528,11 +3254,6 @@ array-find-index@^1.0.2:
3254 resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1"
3255 integrity sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==
3256
3531 -array-from@^2.1.1:
3532 - version "2.1.1"
3533 - resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195"
3534 - integrity sha512-GQTc6Uupx1FCavi5mPzBvVT7nEOeWMmUA9P95wpfpW1XwMSKs+KaymD5C2Up7KAUKg/mYwbsUYzdZWcoajlNZg==
3535 -
3257 array-includes@^3.1.5, array-includes@^3.1.6:
3258 version "3.1.6"
3259 resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f"
@@ -3625,48 +3346,11 @@ arraybuffer.prototype.slice@^1.0.2:
3346 is-array-buffer "^3.0.2"
3347 is-shared-array-buffer "^1.0.2"
3348
3628 -asn1.js@^5.2.0:
3629 - version "5.4.1"
3630 - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07"
3631 - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==
3632 - dependencies:
3633 - bn.js "^4.0.0"
3634 - inherits "^2.0.1"
3635 - minimalistic-assert "^1.0.0"
3636 - safer-buffer "^2.1.0"
3637 -
3638 -asn1@~0.2.3:
3639 - version "0.2.6"
3640 - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d"
3641 - integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==
3642 - dependencies:
3643 - safer-buffer "~2.1.0"
3644 -
3645 -assert-plus@1.0.0, assert-plus@^1.0.0:
3646 - version "1.0.0"
3647 - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
3648 - integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==
3649 -
3650 -assert@^2.0.0:
3651 - version "2.0.0"
3652 - resolved "https://registry.yarnpkg.com/assert/-/assert-2.0.0.tgz#95fc1c616d48713510680f2eaf2d10dd22e02d32"
3653 - integrity sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==
3654 - dependencies:
3655 - es6-object-assign "^1.1.0"
3656 - is-nan "^1.2.1"
3657 - object-is "^1.0.1"
3658 - util "^0.12.0"
3659 -
3349 ast-types-flow@^0.0.7:
3350 version "0.0.7"
3351 resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad"
3352 integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==
3353
3665 -astral-regex@^1.0.0:
3666 - version "1.0.0"
3667 - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
3668 - integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==
3669 -
3354 asynciterator.prototype@^1.0.0:
3355 version "1.0.0"
3356 resolved "https://registry.yarnpkg.com/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz#8c5df0514936cdd133604dfcc9d3fb93f09b2b62"
@@ -3696,16 +3380,6 @@ available-typed-arrays@^1.0.5:
3380 resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7"
3381 integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==
3382
3699 -aws-sign2@~0.7.0:
3700 - version "0.7.0"
3701 - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
3702 - integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==
3703 -
3704 -aws4@^1.8.0:
3705 - version "1.12.0"
3706 - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3"
3707 - integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==
3708 -
3383 axe-core@^4.6.2:
3384 version "4.7.2"
3385 resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.7.2.tgz#040a7342b20765cb18bb50b628394c21bccc17a0"
@@ -3911,18 +3585,6 @@ balanced-match@^1.0.0:
3585 resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
3586 integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
3587
3914 -base64-js@^1.3.1:
3915 - version "1.5.1"
3916 - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
3917 - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
3918 -
3919 -bcrypt-pbkdf@^1.0.0:
3920 - version "1.0.2"
3921 - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
3922 - integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==
3923 - dependencies:
3924 - tweetnacl "^0.14.3"
3925 -
3588 big-integer@^1.6.44:
3589 version "1.6.51"
3590 resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686"
@@ -3938,25 +3600,6 @@ binary-extensions@^2.0.0:
3600 resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
3601 integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
3602
3941 -bl@^4.0.3:
3942 - version "4.1.0"
3943 - resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a"
3944 - integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==
3945 - dependencies:
3946 - buffer "^5.5.0"
3947 - inherits "^2.0.4"
3948 - readable-stream "^3.4.0"
3949 -
3950 -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9:
3951 - version "4.12.0"
3952 - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
3953 - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
3954 -
3955 -bn.js@^5.0.0, bn.js@^5.1.1:
3956 - version "5.2.1"
3957 - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70"
3958 - integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==
3959 -
3603 bplist-parser@^0.2.0:
3604 version "0.2.0"
3605 resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e"
@@ -3986,83 +3629,12 @@ braces@^3.0.2, braces@~3.0.2:
3629 dependencies:
3630 fill-range "^7.0.1"
3631
3989 -brorand@^1.0.1, brorand@^1.1.0:
3990 - version "1.1.0"
3991 - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
3992 - integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==
3993 -
3632 browser-process-hrtime@^1.0.0:
3633 version "1.0.0"
3634 resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626"
3635 integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==
3636
3999 -browser-stdout@1.3.0:
4000 - version "1.3.0"
4001 - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f"
4002 - integrity sha512-7Rfk377tpSM9TWBEeHs0FlDZGoAIei2V/4MdZJoFMBFAK6BqLpxAIUepGRHGdPFgGsLb02PXovC4qddyHvQqTg==
4003 -
4004 -browserify-aes@^1.0.0, browserify-aes@^1.0.4:
4005 - version "1.2.0"
4006 - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48"
4007 - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==
4008 - dependencies:
4009 - buffer-xor "^1.0.3"
4010 - cipher-base "^1.0.0"
4011 - create-hash "^1.1.0"
4012 - evp_bytestokey "^1.0.3"
4013 - inherits "^2.0.1"
4014 - safe-buffer "^5.0.1"
4015 -
4016 -browserify-cipher@^1.0.0:
4017 - version "1.0.1"
4018 - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0"
4019 - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==
4020 - dependencies:
4021 - browserify-aes "^1.0.4"
4022 - browserify-des "^1.0.0"
4023 - evp_bytestokey "^1.0.0"
4024 -
4025 -browserify-des@^1.0.0:
4026 - version "1.0.2"
4027 - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c"
4028 - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==
4029 - dependencies:
4030 - cipher-base "^1.0.1"
4031 - des.js "^1.0.0"
4032 - inherits "^2.0.1"
4033 - safe-buffer "^5.1.2"
4034 -
4035 -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1:
4036 - version "4.1.0"
4037 - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d"
4038 - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==
4039 - dependencies:
4040 - bn.js "^5.0.0"
4041 - randombytes "^2.0.1"
4042 -
4043 -browserify-sign@^4.0.0:
4044 - version "4.2.1"
4045 - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3"
4046 - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==
4047 - dependencies:
4048 - bn.js "^5.1.1"
4049 - browserify-rsa "^4.0.1"
4050 - create-hash "^1.2.0"
4051 - create-hmac "^1.1.7"
4052 - elliptic "^6.5.3"
4053 - inherits "^2.0.4"
4054 - parse-asn1 "^5.1.5"
4055 - readable-stream "^3.6.0"
4056 - safe-buffer "^5.2.0"
4057 -
4058 -browserify-zlib@^0.2.0:
4059 - version "0.2.0"
4060 - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f"
4061 - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==
4062 - dependencies:
4063 - pako "~1.0.5"
4064 -
4065 -browserslist@^4.14.5, browserslist@^4.21.3, browserslist@^4.21.5:
3637 +browserslist@^4.21.3, browserslist@^4.21.5:
3638 version "4.21.7"
3639 resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.7.tgz#e2b420947e5fb0a58e8f4668ae6e23488127e551"
3640 integrity sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA==
@@ -4101,37 +3673,11 @@ buffer-from@^1.0.0:
3673 resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
3674 integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
3675
4104 -buffer-xor@^1.0.3:
4105 - version "1.0.3"
4106 - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
4107 - integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==
4108 -
4109 -buffer@^5.5.0:
4110 - version "5.7.1"
4111 - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
4112 - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
4113 - dependencies:
4114 - base64-js "^1.3.1"
4115 - ieee754 "^1.1.13"
4116 -
4117 -buffer@^6.0.3:
4118 - version "6.0.3"
4119 - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6"
4120 - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==
4121 - dependencies:
4122 - base64-js "^1.3.1"
4123 - ieee754 "^1.2.1"
4124 -
3676 builtin-modules@^3.3.0:
3677 version "3.3.0"
3678 resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6"
3679 integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==
3680
4130 -builtin-status-codes@^3.0.0:
4131 - version "3.0.0"
4132 - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
4133 - integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==
4134 -
3681 bundle-name@^3.0.0:
3682 version "3.0.0"
3683 resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-3.0.0.tgz#ba59bcc9ac785fb67ccdbf104a2bf60c099f0e1a"
@@ -4146,11 +3692,6 @@ busboy@1.6.0:
3692 dependencies:
3693 streamsearch "^1.1.0"
3694
4149 -byline@^5.0.0:
4150 - version "5.0.0"
4151 - resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1"
4152 - integrity sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==
4153 -
3695 call-bind@^1.0.0, call-bind@^1.0.2:
3696 version "1.0.2"
3697 resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
@@ -4193,11 +3734,6 @@ caniuse-lite@^1.0.30001406, caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.300014
3734 resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001581.tgz"
3735 integrity sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ==
3736
4196 -caseless@~0.12.0:
4197 - version "0.12.0"
4198 - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
4199 - integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==
4200 -
3737 chalk@4, chalk@^4.0.0, chalk@^4.1.0:
3738 version "4.1.2"
3739 resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
@@ -4206,7 +3742,7 @@ chalk@4, chalk@^4.0.0, chalk@^4.1.0:
3742 ansi-styles "^4.1.0"
3743 supports-color "^7.1.0"
3744
4209 -chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.2:
3745 +chalk@^2.0.0, chalk@^2.4.2:
3746 version "2.4.2"
3747 resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
3748 integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -4215,24 +3751,11 @@ chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.2:
3751 escape-string-regexp "^1.0.5"
3752 supports-color "^5.3.0"
3753
4218 -chalk@^3.0.0:
4219 - version "3.0.0"
4220 - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4"
4221 - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==
4222 - dependencies:
4223 - ansi-styles "^4.1.0"
4224 - supports-color "^7.1.0"
4225 -
3754 char-regex@^1.0.2:
3755 version "1.0.2"
3756 resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf"
3757 integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==
3758
4231 -chardet@^0.7.0:
4232 - version "0.7.0"
4233 - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
4234 - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
4235 -
3759 chokidar@^3.5.3:
3760 version "3.5.3"
3761 resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
@@ -4248,29 +3771,11 @@ chokidar@^3.5.3:
3771 optionalDependencies:
3772 fsevents "~2.3.2"
3773
4251 -chownr@^1.1.1:
4252 - version "1.1.4"
4253 - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
4254 - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
4255 -
4256 -chrome-trace-event@^1.0.2:
4257 - version "1.0.3"
4258 - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac"
4259 - integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==
4260 -
3774 ci-info@^3.2.0:
3775 version "3.4.0"
3776 resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.4.0.tgz#b28484fd436cbc267900364f096c9dc185efb251"
3777 integrity sha512-t5QdPT5jq3o262DOQ8zA6E1tlH2upmUc4Hlvrbx1pGYJuiiHl7O7rvVNI+l8HTVhd/q3Qc9vqimkNk5yiXsAug==
3778
4266 -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
4267 - version "1.0.4"
4268 - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de"
4269 - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==
4270 - dependencies:
4271 - inherits "^2.0.1"
4272 - safe-buffer "^5.0.1"
4273 -
3779 cjs-module-lexer@^1.0.0:
3780 version "1.2.2"
3781 resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40"
@@ -4283,18 +3788,6 @@ cli-color@~0.1.6:
3788 dependencies:
3789 es5-ext "0.8.x"
3790
4286 -cli-cursor@^3.1.0:
4287 - version "3.1.0"
4288 - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307"
4289 - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==
4290 - dependencies:
4291 - restore-cursor "^3.1.0"
4292 -
4293 -cli-width@^3.0.0:
4294 - version "3.0.0"
4295 - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6"
4296 - integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==
4297 -
3791 client-only@0.0.1:
3792 version "0.0.1"
3793 resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1"
@@ -4346,11 +3839,6 @@ co@^4.6.0:
3839 resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
3840 integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==
3841
4349 -code-point-at@^1.0.0:
4350 - version "1.1.0"
4351 - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
4352 - integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==
4353 -
3842 collect-v8-coverage@^1.0.0:
3843 version "1.0.1"
3844 resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59"
@@ -4380,40 +3868,18 @@ color-name@~1.1.4:
3868 resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
3869 integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
3870
4383 -colorette@^2.0.14:
4384 - version "2.0.20"
4385 - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a"
4386 - integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==
4387 -
4388 -combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6:
3871 +combined-stream@^1.0.8:
3872 version "1.0.8"
3873 resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
3874 integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
3875 dependencies:
3876 delayed-stream "~1.0.0"
3877
4395 -commander@2.9.0:
4396 - version "2.9.0"
4397 - resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
4398 - integrity sha512-bmkUukX8wAOjHdN26xj5c4ctEV22TQ7dQYhSmuckKhToXrkUn0iIaolHdIxYYqD55nhpSPA9zPQ1yP57GdXP2A==
4399 - dependencies:
4400 - graceful-readlink ">= 1.0.0"
4401 -
4402 -commander@^2.11.0, commander@^2.20.0:
4403 - version "2.20.3"
4404 - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
4405 - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
4406 -
3878 commander@^4.0.0:
3879 version "4.1.1"
3880 resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
3881 integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
3882
4412 -commander@^7.0.0:
4413 - version "7.2.0"
4414 - resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
4415 - integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
4416 -
3883 commenting@~1.1.0:
3884 version "1.1.0"
3885 resolved "https://registry.yarnpkg.com/commenting/-/commenting-1.1.0.tgz#fae14345c6437b8554f30bc6aa6c1e1633033590"
@@ -4444,21 +3910,6 @@ concurrently@^7.4.0:
3910 tree-kill "^1.2.2"
3911 yargs "^17.3.1"
3912
4447 -console-browserify@^1.2.0:
4448 - version "1.2.0"
4449 - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336"
4450 - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==
4451 -
4452 -console-control-strings@^1.0.0, console-control-strings@~1.1.0:
4453 - version "1.1.0"
4454 - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
4455 - integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==
4456 -
4457 -constants-browserify@^1.0.0:
4458 - version "1.0.0"
4459 - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
4460 - integrity sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==
4461 -
3913 convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.6.0:
3914 version "1.8.0"
3915 resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369"
@@ -4483,63 +3934,11 @@ core-js-compat@^3.30.1, core-js-compat@^3.30.2:
3934 dependencies:
3935 browserslist "^4.21.5"
3936
4486 -core-util-is@1.0.2:
4487 - version "1.0.2"
4488 - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
4489 - integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==
4490 -
4491 -core-util-is@~1.0.0:
4492 - version "1.0.3"
4493 - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
4494 - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
4495 -
4496 -create-ecdh@^4.0.0:
4497 - version "4.0.4"
4498 - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e"
4499 - integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==
4500 - dependencies:
4501 - bn.js "^4.1.0"
4502 - elliptic "^6.5.3"
4503 -
4504 -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0:
4505 - version "1.2.0"
4506 - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196"
4507 - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==
4508 - dependencies:
4509 - cipher-base "^1.0.1"
4510 - inherits "^2.0.1"
4511 - md5.js "^1.3.4"
4512 - ripemd160 "^2.0.1"
4513 - sha.js "^2.4.0"
4514 -
4515 -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7:
4516 - version "1.1.7"
4517 - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff"
4518 - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==
4519 - dependencies:
4520 - cipher-base "^1.0.3"
4521 - create-hash "^1.1.0"
4522 - inherits "^2.0.1"
4523 - ripemd160 "^2.0.0"
4524 - safe-buffer "^5.0.1"
4525 - sha.js "^2.4.8"
4526 -
3937 create-require@^1.1.0:
3938 version "1.1.1"
3939 resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
3940 integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
3941
4532 -cross-spawn@^6.0.5:
4533 - version "6.0.5"
4534 - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
4535 - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
4536 - dependencies:
4537 - nice-try "^1.0.4"
4538 - path-key "^2.0.1"
4539 - semver "^5.5.0"
4540 - shebang-command "^1.2.0"
4541 - which "^1.2.9"
4542 -
3942 cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3:
3943 version "7.0.3"
3944 resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
@@ -4549,28 +3948,6 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3:
3948 shebang-command "^2.0.0"
3949 which "^2.0.1"
3950
4552 -crypto-browserify@^3.12.0:
4553 - version "3.12.0"
4554 - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"
4555 - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==
4556 - dependencies:
4557 - browserify-cipher "^1.0.0"
4558 - browserify-sign "^4.0.0"
4559 - create-ecdh "^4.0.0"
4560 - create-hash "^1.1.0"
4561 - create-hmac "^1.1.0"
4562 - diffie-hellman "^5.0.0"
4563 - inherits "^2.0.1"
4564 - pbkdf2 "^3.0.3"
4565 - public-encrypt "^4.0.0"
4566 - randombytes "^2.0.0"
4567 - randomfill "^1.0.3"
4568 -
4569 -crypto-random-string@^2.0.0:
4570 - version "2.0.0"
4571 - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5"
4572 - integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==
4573 -
3951 cssesc@^3.0.0:
3952 version "3.0.0"
3953 resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
@@ -4610,13 +3987,6 @@ damerau-levenshtein@^1.0.8:
3987 resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7"
3988 integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==
3989
4613 -dashdash@^1.12.0:
4614 - version "1.14.1"
4615 - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
4616 - integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==
4617 - dependencies:
4618 - assert-plus "^1.0.0"
4619 -
3990 data-urls@^3.0.2:
3991 version "3.0.2"
3992 resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.2.tgz#9cf24a477ae22bcef5cd5f6f0bfbc1d2d3be9143"
@@ -4642,14 +4012,7 @@ date-fns@^2.29.1:
4012 dependencies:
4013 "@babel/runtime" "^7.21.0"
4014
4645 -debug@2.6.8:
4646 - version "2.6.8"
4647 - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc"
4648 - integrity sha512-E22fsyWPt/lr4/UgQLt/pXqerGMDsanhbnmqIS3VAXuDi1v3IpiwXe2oncEIondHSBuPDWRoK/pMjlvi8FuOXQ==
4649 - dependencies:
4650 - ms "2.0.0"
4651 -
4652 -debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4:
4015 +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4:
4016 version "4.3.4"
4017 resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
4018 integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
@@ -4678,13 +4041,6 @@ decimal.js@^10.4.3:
4041 resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23"
4042 integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==
4043
4681 -decompress-response@^4.2.0:
4682 - version "4.2.1"
4683 - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986"
4684 - integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==
4685 - dependencies:
4686 - mimic-response "^2.0.0"
4687 -
4044 dedent@^0.7.0:
4045 version "0.7.0"
4046 resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
@@ -4714,11 +4070,6 @@ deep-equal@^2.0.5:
4070 which-collection "^1.0.1"
4071 which-typed-array "^1.1.9"
4072
4717 -deep-extend@^0.6.0:
4718 - version "0.6.0"
4719 - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
4720 - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
4721 -
4073 deep-is@^0.1.3, deep-is@~0.1.3:
4074 version "0.1.4"
4075 resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
@@ -4791,24 +4142,6 @@ delayed-stream@~1.0.0:
4142 resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
4143 integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
4144
4794 -delegates@^1.0.0:
4795 - version "1.0.0"
4796 - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
4797 - integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==
4798 -
4799 -des.js@^1.0.0:
4800 - version "1.1.0"
4801 - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.1.0.tgz#1d37f5766f3bbff4ee9638e871a8768c173b81da"
4802 - integrity sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==
4803 - dependencies:
4804 - inherits "^2.0.1"
4805 - minimalistic-assert "^1.0.0"
4806 -
4807 -detect-libc@^1.0.3:
4808 - version "1.0.3"
4809 - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
4810 - integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==
4811 -
4145 detect-newline@^3.0.0:
4146 version "3.1.0"
4147 resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651"
@@ -4834,30 +4167,11 @@ diff-sequences@^29.4.3:
4167 resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.3.tgz#9314bc1fabe09267ffeca9cbafc457d8499a13f2"
4168 integrity sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==
4169
4837 -diff@3.2.0:
4838 - version "3.2.0"
4839 - resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9"
4840 - integrity sha512-597ykPFhtJYaXqPq6fF7Vl1fXTKgPdLOntyxpmdzUOKiYGqK7zcnbplj5088+8qJnWdzXhyeau5iVr8HVo9dgg==
4841 -
4842 -diff@^3.1.0:
4843 - version "3.5.0"
4844 - resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
4845 - integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==
4846 -
4170 diff@^4.0.1:
4171 version "4.0.2"
4172 resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
4173 integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
4174
4852 -diffie-hellman@^5.0.0:
4853 - version "5.0.3"
4854 - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
4855 - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==
4856 - dependencies:
4857 - bn.js "^4.1.0"
4858 - miller-rabin "^4.0.0"
4859 - randombytes "^2.0.0"
4860 -
4175 difflib@~0.2.1:
4176 version "0.2.4"
4177 resolved "https://registry.yarnpkg.com/difflib/-/difflib-0.2.4.tgz#b5e30361a6db023176d562892db85940a718f47e"
@@ -4896,11 +4210,6 @@ dom-accessibility-api@^0.5.9:
4210 resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.14.tgz#56082f71b1dc7aac69d83c4285eef39c15d93f56"
4211 integrity sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==
4212
4899 -domain-browser@^4.22.0:
4900 - version "4.22.0"
4901 - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-4.22.0.tgz#6ddd34220ec281f9a65d3386d267ddd35c491f9f"
4902 - integrity sha512-IGBwjF7tNk3cwypFNH/7bfzBcgSCbaMOD3GsaY1AU/JRrnHnYgEM0+9kQt52iZxjNsjBtJYtao146V+f8jFZNw==
4903 -
4213 domexception@^4.0.0:
4214 version "4.0.0"
4215 resolved "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673"
@@ -4920,14 +4229,6 @@ eastasianwidth@^0.2.0:
4229 resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
4230 integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
4231
4923 -ecc-jsbn@~0.1.1:
4924 - version "0.1.2"
4925 - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
4926 - integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==
4927 - dependencies:
4928 - jsbn "~0.1.0"
4929 - safer-buffer "^2.1.0"
4930 -
4232 electron-to-chromium@^1.4.411:
4233 version "1.4.418"
4234 resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.418.tgz#9092aca12db25acf02a2ddf9de59f0e4363c9928"
@@ -4938,19 +4239,6 @@ electron-to-chromium@^1.4.477:
4239 resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.490.tgz#d99286f6e915667fa18ea4554def1aa60eb4d5f1"
4240 integrity sha512-6s7NVJz+sATdYnIwhdshx/N/9O6rvMxmhVoDSDFdj6iA45gHR8EQje70+RYsF4GeB+k0IeNSBnP7yG9ZXJFr7A==
4241
4941 -elliptic@^6.5.3:
4942 - version "6.5.4"
4943 - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
4944 - integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==
4945 - dependencies:
4946 - bn.js "^4.11.9"
4947 - brorand "^1.1.0"
4948 - hash.js "^1.0.0"
4949 - hmac-drbg "^1.0.1"
4950 - inherits "^2.0.4"
4951 - minimalistic-assert "^1.0.1"
4952 - minimalistic-crypto-utils "^1.0.1"
4953 -
4242 emittery@^0.10.2:
4243 version "0.10.2"
4244 resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.2.tgz#902eec8aedb8c41938c46e9385e9db7e03182933"
@@ -4961,11 +4249,6 @@ emittery@^0.13.1:
4249 resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad"
4250 integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==
4251
4964 -emoji-regex@^7.0.1:
4965 - version "7.0.3"
4966 - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
4967 - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
4968 -
4252 emoji-regex@^8.0.0:
4253 version "8.0.0"
4254 resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
@@ -4981,14 +4264,7 @@ emojis-list@^3.0.0:
4264 resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
4265 integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
4266
4984 -end-of-stream@^1.1.0, end-of-stream@^1.4.1:
4985 - version "1.4.4"
4986 - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
4987 - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
4988 - dependencies:
4989 - once "^1.4.0"
4990 -
4991 -enhanced-resolve@^5.12.0, enhanced-resolve@^5.14.1:
4267 +enhanced-resolve@^5.12.0:
4268 version "5.14.1"
4269 resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.14.1.tgz#de684b6803724477a4af5d74ccae5de52c25f6b3"
4270 integrity sha512-Vklwq2vDKtl0y/vtwjSesgJ5MYS7Etuk5txS8VdKL4AOS1aUlD96zqIfsOSLQsdv3xgMRbtkWM8eG9XDfKUPow==
@@ -5001,11 +4277,6 @@ entities@^4.4.0:
4277 resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174"
4278 integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==
4279
5004 -envinfo@^7.7.3:
5005 - version "7.8.1"
5006 - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475"
5007 - integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==
5008 -
4280 error-ex@^1.3.1:
4281 version "1.3.2"
4282 resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
@@ -5133,11 +4404,6 @@ es-iterator-helpers@^1.0.12:
4404 iterator.prototype "^1.1.2"
4405 safe-array-concat "^1.0.1"
4406
5136 -es-module-lexer@^1.2.1:
5137 - version "1.2.1"
5138 - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.2.1.tgz#ba303831f63e6a394983fde2f97ad77b22324527"
5139 - integrity sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==
5140 -
4407 es-set-tostringtag@^2.0.1:
4408 version "2.0.1"
4409 resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8"
@@ -5168,17 +4434,12 @@ es5-ext@0.8.x:
4434 resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.8.2.tgz#aba8d9e1943a895ac96837a62a39b3f55ecd94ab"
4435 integrity sha512-H19ompyhnKiBdjHR1DPHvf5RHgHPmJaY9JNzFGbMbPgdsUkvnUCN1Ke8J4Y0IMyTwFM2M9l4h2GoHwzwpSmXbA==
4436
5171 -es6-object-assign@^1.1.0:
5172 - version "1.1.0"
5173 - resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c"
5174 - integrity sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==
5175 -
4437 escalade@^3.1.1:
4438 version "3.1.1"
4439 resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
4440 integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
4441
5181 -escape-string-regexp@1.0.5, escape-string-regexp@^1.0.5:
4442 +escape-string-regexp@^1.0.5:
4443 version "1.0.5"
4444 resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
4445 integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
@@ -5193,18 +4454,6 @@ escape-string-regexp@^4.0.0:
4454 resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
4455 integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
4456
5196 -escodegen@^1.14.1:
5197 - version "1.14.3"
5198 - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503"
5199 - integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==
5200 - dependencies:
5201 - esprima "^4.0.1"
5202 - estraverse "^4.2.0"
5203 - esutils "^2.0.2"
5204 - optionator "^0.8.1"
5205 - optionalDependencies:
5206 - source-map "~0.6.1"
5207 -
4457 escodegen@^2.0.0:
4458 version "2.0.0"
4459 resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd"
@@ -5343,7 +4592,7 @@ eslint-plugin-react@^7.33.2:
4592 semver "^6.3.1"
4593 string.prototype.matchall "^4.0.8"
4594
5346 -eslint-scope@5.1.1, eslint-scope@^5.0.0, eslint-scope@^5.1.1:
4595 +eslint-scope@^5.1.1:
4596 version "5.1.1"
4597 resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
4598 integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
@@ -5367,13 +4616,6 @@ eslint-scope@^7.2.0:
4616 esrecurse "^4.3.0"
4617 estraverse "^5.2.0"
4618
5370 -eslint-utils@^1.4.3:
5371 - version "1.4.3"
5372 - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f"
5373 - integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==
5374 - dependencies:
5375 - eslint-visitor-keys "^1.1.0"
5376 -
4619 eslint-utils@^3.0.0:
4620 version "3.0.0"
4621 resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672"
@@ -5381,11 +4623,6 @@ eslint-utils@^3.0.0:
4623 dependencies:
4624 eslint-visitor-keys "^2.0.0"
4625
5384 -eslint-visitor-keys@^1.1.0:
5385 - version "1.3.0"
5386 - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
5387 - integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
5388 -
4626 eslint-visitor-keys@^2.0.0:
4627 version "2.1.0"
4628 resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
@@ -5446,49 +4683,6 @@ eslint@8.27.0:
4683 strip-json-comments "^3.1.0"
4684 text-table "^0.2.0"
4685
5449 -eslint@^6.8.0:
5450 - version "6.8.0"
5451 - resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb"
5452 - integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==
5453 - dependencies:
5454 - "@babel/code-frame" "^7.0.0"
5455 - ajv "^6.10.0"
5456 - chalk "^2.1.0"
5457 - cross-spawn "^6.0.5"
5458 - debug "^4.0.1"
5459 - doctrine "^3.0.0"
5460 - eslint-scope "^5.0.0"
5461 - eslint-utils "^1.4.3"
5462 - eslint-visitor-keys "^1.1.0"
5463 - espree "^6.1.2"
5464 - esquery "^1.0.1"
5465 - esutils "^2.0.2"
5466 - file-entry-cache "^5.0.1"
5467 - functional-red-black-tree "^1.0.1"
5468 - glob-parent "^5.0.0"
5469 - globals "^12.1.0"
5470 - ignore "^4.0.6"
5471 - import-fresh "^3.0.0"
5472 - imurmurhash "^0.1.4"
5473 - inquirer "^7.0.0"
5474 - is-glob "^4.0.0"
5475 - js-yaml "^3.13.1"
5476 - json-stable-stringify-without-jsonify "^1.0.1"
5477 - levn "^0.3.0"
5478 - lodash "^4.17.14"
5479 - minimatch "^3.0.4"
5480 - mkdirp "^0.5.1"
5481 - natural-compare "^1.4.0"
5482 - optionator "^0.8.3"
5483 - progress "^2.0.0"
5484 - regexpp "^2.0.1"
5485 - semver "^6.1.2"
5486 - strip-ansi "^5.2.0"
5487 - strip-json-comments "^3.0.1"
5488 - table "^5.2.3"
5489 - text-table "^0.2.0"
5490 - v8-compile-cache "^2.0.3"
5491 -
4686 eslint@^8.28.0:
4687 version "8.41.0"
4688 resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.41.0.tgz#3062ca73363b4714b16dbc1e60f035e6134b6f1c"
@@ -5534,15 +4728,6 @@ eslint@^8.28.0:
4728 strip-json-comments "^3.1.0"
4729 text-table "^0.2.0"
4730
5537 -espree@^6.1.2:
5538 - version "6.2.1"
5539 - resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a"
5540 - integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==
5541 - dependencies:
5542 - acorn "^7.1.1"
5543 - acorn-jsx "^5.2.0"
5544 - eslint-visitor-keys "^1.1.0"
5545 -
4731 espree@^9.4.0:
4732 version "9.6.1"
4733 resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f"
@@ -5566,7 +4751,7 @@ esprima@^4.0.0, esprima@^4.0.1:
4751 resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
4752 integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
4753
5569 -esquery@^1.0.1, esquery@^1.4.0, esquery@^1.4.2:
4754 +esquery@^1.4.0, esquery@^1.4.2:
4755 version "1.5.0"
4756 resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b"
4757 integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==
@@ -5580,7 +4765,7 @@ esrecurse@^4.3.0:
4765 dependencies:
4766 estraverse "^5.2.0"
4767
5583 -estraverse@^4.1.1, estraverse@^4.2.0:
4768 +estraverse@^4.1.1:
4769 version "4.3.0"
4770 resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
4771 integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
@@ -5600,24 +4785,6 @@ esutils@^2.0.2:
4785 resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
4786 integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
4787
5603 -event-target-shim@^5.0.0:
5604 - version "5.0.1"
5605 - resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789"
5606 - integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==
5607 -
5608 -events@^3.2.0, events@^3.3.0:
5609 - version "3.3.0"
5610 - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
5611 - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
5612 -
5613 -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
5614 - version "1.0.3"
5615 - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02"
5616 - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==
5617 - dependencies:
5618 - md5.js "^1.3.4"
5619 - safe-buffer "^5.1.1"
5620 -
4788 execa@^5.0.0:
4789 version "5.1.1"
4790 resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
@@ -5653,11 +4820,6 @@ exit@^0.1.2:
4820 resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
4821 integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==
4822
5656 -expand-template@^2.0.3:
5657 - version "2.0.3"
5658 - resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c"
5659 - integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==
5660 -
4823 expect@^28.0.0, expect@^28.1.3:
4824 version "28.1.3"
4825 resolved "https://registry.yarnpkg.com/expect/-/expect-28.1.3.tgz#90a7c1a124f1824133dd4533cce2d2bdcb6603ec"
@@ -5691,30 +4853,6 @@ expect@^29.5.0:
4853 jest-message-util "^29.5.0"
4854 jest-util "^29.5.0"
4855
5694 -extend@~3.0.2:
5695 - version "3.0.2"
5696 - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
5697 - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
5698 -
5699 -external-editor@^3.0.3:
5700 - version "3.1.0"
5701 - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495"
5702 - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==
5703 - dependencies:
5704 - chardet "^0.7.0"
5705 - iconv-lite "^0.4.24"
5706 - tmp "^0.0.33"
5707 -
5708 -extsprintf@1.3.0:
5709 - version "1.3.0"
5710 - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
5711 - integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==
5712 -
5713 -extsprintf@^1.2.0:
5714 - version "1.4.1"
5715 - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07"
5716 - integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==
5717 -
4856 fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
4857 version "3.1.3"
4858 resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
@@ -5741,11 +4879,6 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6:
4879 resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
4880 integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
4881
5744 -fastest-levenshtein@^1.0.12:
5745 - version "1.0.16"
5746 - resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5"
5747 - integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==
5748 -
4882 fastq@^1.6.0:
4883 version "1.13.0"
4884 resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c"
@@ -5785,20 +4918,6 @@ fbt@^1.0.0:
4918 dependencies:
4919 invariant "^2.2.4"
4920
5788 -figures@^3.0.0:
5789 - version "3.2.0"
5790 - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af"
5791 - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==
5792 - dependencies:
5793 - escape-string-regexp "^1.0.5"
5794 -
5795 -file-entry-cache@^5.0.1:
5796 - version "5.0.1"
5797 - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c"
5798 - integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==
5799 - dependencies:
5800 - flat-cache "^2.0.1"
5801 -
4921 file-entry-cache@^6.0.1:
4922 version "6.0.1"
4923 resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
@@ -5813,11 +4932,6 @@ fill-range@^7.0.1:
4932 dependencies:
4933 to-regex-range "^5.0.1"
4934
5816 -filter-obj@^2.0.2:
5817 - version "2.0.2"
5818 - resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-2.0.2.tgz#fff662368e505d69826abb113f0f6a98f56e9d5f"
5819 - integrity sha512-lO3ttPjHZRfjMcxWKb1j1eDhTFsu4meeR3lnMcnBFhk6RuLhvEiuALu2TlfL310ph4lCYYwgF/ElIjdP739tdg==
5820 -
4935 find-cache-dir@^2.0.0:
4936 version "2.1.0"
4937 resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7"
@@ -5850,15 +4964,6 @@ find-up@^5.0.0:
4964 locate-path "^6.0.0"
4965 path-exists "^4.0.0"
4966
5853 -flat-cache@^2.0.1:
5854 - version "2.0.1"
5855 - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0"
5856 - integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==
5857 - dependencies:
5858 - flatted "^2.0.0"
5859 - rimraf "2.6.3"
5860 - write "1.0.3"
5861 -
4967 flat-cache@^3.0.4:
4968 version "3.0.4"
4969 resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11"
@@ -5867,11 +4972,6 @@ flat-cache@^3.0.4:
4972 flatted "^3.1.0"
4973 rimraf "^3.0.2"
4974
5870 -flatted@^2.0.0:
5871 - version "2.0.2"
5872 - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138"
5873 - integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==
5874 -
4975 flatted@^3.1.0:
4976 version "3.2.7"
4977 resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787"
@@ -5897,11 +4997,6 @@ foreground-child@^3.1.0:
4997 cross-spawn "^7.0.0"
4998 signal-exit "^4.0.1"
4999
5900 -forever-agent@~0.6.1:
5901 - version "0.6.1"
5902 - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
5903 - integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==
5904 -
5000 form-data@^4.0.0:
5001 version "4.0.0"
5002 resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
@@ -5911,42 +5006,11 @@ form-data@^4.0.0:
5006 combined-stream "^1.0.8"
5007 mime-types "^2.1.12"
5008
5914 -form-data@~2.3.2:
5915 - version "2.3.3"
5916 - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
5917 - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
5918 - dependencies:
5919 - asynckit "^0.4.0"
5920 - combined-stream "^1.0.6"
5921 - mime-types "^2.1.12"
5922 -
5009 fraction.js@^4.2.0:
5010 version "4.2.0"
5011 resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950"
5012 integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==
5013
5928 -from2@^2.3.0:
5929 - version "2.3.0"
5930 - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af"
5931 - integrity sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==
5932 - dependencies:
5933 - inherits "^2.0.1"
5934 - readable-stream "^2.0.0"
5935 -
5936 -fs-constants@^1.0.0:
5937 - version "1.0.0"
5938 - resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
5939 - integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==
5940 -
5941 -fs-extra@^8.1.0:
5942 - version "8.1.0"
5943 - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
5944 - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
5945 - dependencies:
5946 - graceful-fs "^4.2.0"
5947 - jsonfile "^4.0.0"
5948 - universalify "^0.1.0"
5949 -
5014 fs.realpath@^1.0.0:
5015 version "1.0.0"
5016 resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
@@ -5987,30 +5051,11 @@ function.prototype.name@^1.1.6:
5051 es-abstract "^1.22.1"
5052 functions-have-names "^1.2.3"
5053
5990 -functional-red-black-tree@^1.0.1:
5991 - version "1.0.1"
5992 - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
5993 - integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==
5994 -
5054 functions-have-names@^1.2.2, functions-have-names@^1.2.3:
5055 version "1.2.3"
5056 resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834"
5057 integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==
5058
6000 -gauge@~2.7.3:
6001 - version "2.7.4"
6002 - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
6003 - integrity sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==
6004 - dependencies:
6005 - aproba "^1.0.3"
6006 - console-control-strings "^1.0.0"
6007 - has-unicode "^2.0.0"
6008 - object-assign "^4.1.0"
6009 - signal-exit "^3.0.0"
6010 - string-width "^1.0.1"
6011 - strip-ansi "^3.0.1"
6012 - wide-align "^1.1.0"
6013 -
5059 gensync@^1.0.0-beta.2:
5060 version "1.0.0-beta.2"
5061 resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
@@ -6075,19 +5120,7 @@ get-tsconfig@^4.5.0:
5120 dependencies:
5121 resolve-pkg-maps "^1.0.0"
5122
6078 -getpass@^0.1.1:
6079 - version "0.1.7"
6080 - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
6081 - integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==
6082 - dependencies:
6083 - assert-plus "^1.0.0"
6084 -
6085 -github-from-package@0.0.0:
6086 - version "0.0.0"
6087 - resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce"
6088 - integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==
6089 -
6090 -glob-parent@^5.0.0, glob-parent@^5.1.2, glob-parent@~5.1.2:
5123 +glob-parent@^5.1.2, glob-parent@~5.1.2:
5124 version "5.1.2"
5125 resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
5126 integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
@@ -6106,18 +5139,6 @@ glob-to-regexp@^0.4.1:
5139 resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
5140 integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
5141
6109 -glob@7.1.1:
6110 - version "7.1.1"
6111 - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8"
6112 - integrity sha512-mRyN/EsN2SyNhKWykF3eEGhDpeNplMWaW18Bmh76tnOqk5TbELAVwFAYOCmKVssOYFrYvvLMguiA+NXO3ZTuVA==
6113 - dependencies:
6114 - fs.realpath "^1.0.0"
6115 - inflight "^1.0.4"
6116 - inherits "2"
6117 - minimatch "^3.0.2"
6118 - once "^1.3.0"
6119 - path-is-absolute "^1.0.0"
6120 -
5142 glob@7.1.6:
5143 version "7.1.6"
5144 resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
@@ -6176,23 +5197,11 @@ glob@^8.0.3:
5197 minimatch "^5.0.1"
5198 once "^1.3.0"
5199
6179 -globals@^10.1.0:
6180 - version "10.4.0"
6181 - resolved "https://registry.yarnpkg.com/globals/-/globals-10.4.0.tgz#5c477388b128a9e4c5c5d01c7a2aca68c68b2da7"
6182 - integrity sha512-uNUtxIZpGyuaq+5BqGGQHsL4wUlJAXRqOm6g3Y48/CWNGTLONgBibI0lh6lGxjR2HljFYUfszb+mk4WkgMntsA==
6183 -
5200 globals@^11.1.0:
5201 version "11.12.0"
5202 resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
5203 integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
5204
6189 -globals@^12.1.0:
6190 - version "12.4.0"
6191 - resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8"
6192 - integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==
6193 - dependencies:
6194 - type-fest "^0.8.1"
6195 -
5205 globals@^13.15.0:
5206 version "13.23.0"
5207 resolved "https://registry.yarnpkg.com/globals/-/globals-13.23.0.tgz#ef31673c926a0976e1f61dab4dca57e0c0a8af02"
@@ -6214,7 +5223,7 @@ globalthis@^1.0.3:
5223 dependencies:
5224 define-properties "^1.1.3"
5225
6217 -globby@^11.0.0, globby@^11.1.0:
5226 +globby@^11.1.0:
5227 version "11.1.0"
5228 resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"
5229 integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
@@ -6249,7 +5258,7 @@ gopd@^1.0.1:
5258 dependencies:
5259 get-intrinsic "^1.1.3"
5260
6252 -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4:
5261 +graceful-fs@^4.1.2, graceful-fs@^4.2.4:
5262 version "4.2.11"
5263 resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
5264 integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
@@ -6259,11 +5268,6 @@ graceful-fs@^4.2.9:
5268 resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c"
5269 integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==
5270
6262 -"graceful-readlink@>= 1.0.0":
6263 - version "1.0.1"
6264 - resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
6265 - integrity sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w==
6266 -
5271 grapheme-splitter@^1.0.4:
5272 version "1.0.4"
5273 resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e"
@@ -6274,34 +5278,11 @@ graphemer@^1.4.0:
5278 resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6"
5279 integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
5280
6277 -growl@1.9.2:
6278 - version "1.9.2"
6279 - resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f"
6280 - integrity sha512-RTBwDHhNuOx4F0hqzItc/siXCasGfC4DeWcBamclWd+6jWtBaeB/SGbMkGf0eiQoW7ib8JpvOgnUsmgMHI3Mfw==
6281 -
6282 -har-schema@^2.0.0:
6283 - version "2.0.0"
6284 - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
6285 - integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==
6286 -
6287 -har-validator@~5.1.3:
6288 - version "5.1.5"
6289 - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd"
6290 - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==
6291 - dependencies:
6292 - ajv "^6.12.3"
6293 - har-schema "^2.0.0"
6294 -
5281 has-bigints@^1.0.1, has-bigints@^1.0.2:
5282 version "1.0.2"
5283 resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa"
5284 integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==
5285
6300 -has-flag@^1.0.0:
6301 - version "1.0.0"
6302 - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
6303 - integrity sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==
6304 -
5286 has-flag@^3.0.0:
5287 version "3.0.0"
5288 resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
@@ -6336,11 +5317,6 @@ has-tostringtag@^1.0.0:
5317 dependencies:
5318 has-symbols "^1.0.2"
5319
6339 -has-unicode@^2.0.0:
6340 - version "2.0.1"
6341 - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
6342 - integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==
6343 -
5320 has@^1.0.3:
5321 version "1.0.3"
5322 resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
@@ -6348,23 +5324,6 @@ has@^1.0.3:
5324 dependencies:
5325 function-bind "^1.1.1"
5326
6351 -hash-base@^3.0.0:
6352 - version "3.1.0"
6353 - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33"
6354 - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==
6355 - dependencies:
6356 - inherits "^2.0.4"
6357 - readable-stream "^3.6.0"
6358 - safe-buffer "^5.2.0"
6359 -
6360 -hash.js@^1.0.0, hash.js@^1.0.3:
6361 - version "1.1.7"
6362 - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"
6363 - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==
6364 - dependencies:
6365 - inherits "^2.0.3"
6366 - minimalistic-assert "^1.0.1"
6367 -
5327 hasown@^2.0.0:
5328 version "2.0.0"
5329 resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c"
@@ -6372,11 +5331,6 @@ hasown@^2.0.0:
5331 dependencies:
5332 function-bind "^1.1.2"
5333
6375 -he@1.1.1:
6376 - version "1.1.1"
6377 - resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd"
6378 - integrity sha512-z/GDPjlRMNOa2XJiB4em8wJpuuBfrFOlYKTZxtpkdr1uPdibHI8rYA3MY0KDObpVyaes0e/aunid/t88ZI2EKA==
6379 -
5334 "heap@>= 0.2.0":
5335 version "0.2.7"
5336 resolved "https://registry.yarnpkg.com/heap/-/heap-0.2.7.tgz#1e6adf711d3f27ce35a81fe3b7bd576c2260a8fc"
@@ -6460,15 +5414,6 @@ hermes-parser@^0.20.1:
5414 dependencies:
5415 hermes-estree "0.20.1"
5416
6463 -hmac-drbg@^1.0.1:
6464 - version "1.0.1"
6465 - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
6466 - integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==
6467 - dependencies:
6468 - hash.js "^1.0.3"
6469 - minimalistic-assert "^1.0.0"
6470 - minimalistic-crypto-utils "^1.0.1"
6471 -
5417 html-encoding-sniffer@^3.0.0:
5418 version "3.0.0"
5419 resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9"
@@ -6490,20 +5435,6 @@ http-proxy-agent@^5.0.0:
5435 agent-base "6"
5436 debug "4"
5437
6493 -http-signature@~1.2.0:
6494 - version "1.2.0"
6495 - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
6496 - integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==
6497 - dependencies:
6498 - assert-plus "^1.0.0"
6499 - jsprim "^1.2.2"
6500 - sshpk "^1.7.0"
6501 -
6502 -https-browserify@^1.0.0:
6503 - version "1.0.0"
6504 - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
6505 - integrity sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==
6506 -
5438 https-proxy-agent@^5.0.1:
5439 version "5.0.1"
5440 resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6"
@@ -6529,23 +5460,6 @@ iconv-lite@0.6.3:
5460 dependencies:
5461 safer-buffer ">= 2.1.2 < 3.0.0"
5462
6532 -iconv-lite@^0.4.24:
6533 - version "0.4.24"
6534 - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
6535 - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
6536 - dependencies:
6537 - safer-buffer ">= 2.1.2 < 3"
6538 -
6539 -ieee754@^1.1.13, ieee754@^1.2.1:
6540 - version "1.2.1"
6541 - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
6542 - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
6543 -
6544 -ignore@^4.0.6:
6545 - version "4.0.6"
6546 - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
6547 - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
6548 -
5463 ignore@^5.2.0:
5464 version "5.2.0"
5465 resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a"
@@ -6580,35 +5494,11 @@ inflight@^1.0.4:
5494 once "^1.3.0"
5495 wrappy "1"
5496
6583 -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@~2.0.4:
5497 +inherits@2:
5498 version "2.0.4"
5499 resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
5500 integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
5501
6588 -ini@~1.3.0:
6589 - version "1.3.8"
6590 - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
6591 - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
6592 -
6593 -inquirer@^7.0.0:
6594 - version "7.3.3"
6595 - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003"
6596 - integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==
6597 - dependencies:
6598 - ansi-escapes "^4.2.1"
6599 - chalk "^4.1.0"
6600 - cli-cursor "^3.1.0"
6601 - cli-width "^3.0.0"
6602 - external-editor "^3.0.3"
6603 - figures "^3.0.0"
6604 - lodash "^4.17.19"
6605 - mute-stream "0.0.8"
6606 - run-async "^2.4.0"
6607 - rxjs "^6.6.0"
6608 - string-width "^4.1.0"
6609 - strip-ansi "^6.0.0"
6610 - through "^2.3.6"
6611 -
5502 internal-slot@^1.0.3, internal-slot@^1.0.4, internal-slot@^1.0.5:
5503 version "1.0.5"
5504 resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986"
@@ -6618,19 +5508,6 @@ internal-slot@^1.0.3, internal-slot@^1.0.4, internal-slot@^1.0.5:
5508 has "^1.0.3"
5509 side-channel "^1.0.4"
5510
6621 -interpret@^2.2.0:
6622 - version "2.2.0"
6623 - resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9"
6624 - integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==
6625 -
6626 -into-stream@^5.1.1:
6627 - version "5.1.1"
6628 - resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-5.1.1.tgz#f9a20a348a11f3c13face22763f2d02e127f4db8"
6629 - integrity sha512-krrAJ7McQxGGmvaYbB7Q1mcA+cRwg9Ij2RfWIeVesNBgVDZmzY/Fa4IpZUT3bmdRzMzdf/mzltCG2Dq99IZGBA==
6630 - dependencies:
6631 - from2 "^2.3.0"
6632 - p-is-promise "^3.0.0"
6633 -
5511 invariant@^2.2.4:
5512 version "2.2.4"
5513 resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
@@ -6638,7 +5515,7 @@ invariant@^2.2.4:
5515 dependencies:
5516 loose-envify "^1.0.0"
5517
6641 -is-arguments@^1.0.4, is-arguments@^1.1.1:
5518 +is-arguments@^1.1.1:
5519 version "1.1.1"
5520 resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b"
5521 integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==
@@ -6751,18 +5628,6 @@ is-finalizationregistry@^1.0.2:
5628 dependencies:
5629 call-bind "^1.0.2"
5630
6754 -is-fullwidth-code-point@^1.0.0:
6755 - version "1.0.0"
6756 - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
6757 - integrity sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==
6758 - dependencies:
6759 - number-is-nan "^1.0.0"
6760 -
6761 -is-fullwidth-code-point@^2.0.0:
6762 - version "2.0.0"
6763 - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
6764 - integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==
6765 -
5631 is-fullwidth-code-point@^3.0.0:
5632 version "3.0.0"
5633 resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
@@ -6773,7 +5638,7 @@ is-generator-fn@^2.0.0:
5638 resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118"
5639 integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==
5640
6776 -is-generator-function@^1.0.10, is-generator-function@^1.0.7:
5641 +is-generator-function@^1.0.10:
5642 version "1.0.10"
5643 resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72"
5644 integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==
@@ -6804,14 +5669,6 @@ is-module@^1.0.0:
5669 resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591"
5670 integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==
5671
6807 -is-nan@^1.2.1:
6808 - version "1.3.2"
6809 - resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d"
6810 - integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==
6811 - dependencies:
6812 - call-bind "^1.0.0"
6813 - define-properties "^1.1.3"
6814 -
5672 is-negative-zero@^2.0.2:
5673 version "2.0.2"
5674 resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150"
@@ -6897,7 +5754,7 @@ is-symbol@^1.0.2, is-symbol@^1.0.3:
5754 dependencies:
5755 has-symbols "^1.0.2"
5756
6900 -is-typed-array@^1.1.10, is-typed-array@^1.1.3, is-typed-array@^1.1.9:
5757 +is-typed-array@^1.1.10, is-typed-array@^1.1.9:
5758 version "1.1.10"
5759 resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f"
5760 integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==
@@ -6915,11 +5772,6 @@ is-typed-array@^1.1.12:
5772 dependencies:
5773 which-typed-array "^1.1.11"
5774
6918 -is-typedarray@~1.0.0:
6919 - version "1.0.0"
6920 - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
6921 - integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==
6922 -
5775 is-weakmap@^2.0.1:
5776 version "2.0.1"
5777 resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2"
@@ -6947,21 +5799,11 @@ is-wsl@^2.2.0:
5799 dependencies:
5800 is-docker "^2.0.0"
5801
6950 -isarray@0.0.1:
6951 - version "0.0.1"
6952 - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
6953 - integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==
6954 -
5802 isarray@^2.0.5:
5803 version "2.0.5"
5804 resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723"
5805 integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==
5806
6960 -isarray@~1.0.0:
6961 - version "1.0.0"
6962 - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
6963 - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==
6964 -
5807 isexe@^2.0.0:
5808 version "2.0.0"
5809 resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
@@ -6972,11 +5814,6 @@ isobject@^3.0.1:
5814 resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
5815 integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==
5816
6975 -isstream@~0.1.2:
6976 - version "0.1.2"
6977 - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
6978 - integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==
6979 -
5817 istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0:
5818 version "3.2.0"
5819 resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3"
@@ -8070,15 +6907,6 @@ jest-watcher@^29.5.0:
6907 jest-util "^29.5.0"
6908 string-length "^4.0.1"
6909
8073 -jest-worker@^27.4.5:
8074 - version "27.5.1"
8075 - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0"
8076 - integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==
8077 - dependencies:
8078 - "@types/node" "*"
8079 - merge-stream "^2.0.0"
8080 - supports-color "^8.0.0"
8081 -
6910 jest-worker@^28.1.3:
6911 version "28.1.3"
6912 resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.1.3.tgz#7e3c4ce3fa23d1bb6accb169e7f396f98ed4bb98"
@@ -8167,11 +6995,6 @@ js-yaml@^4.1.0:
6995 dependencies:
6996 argparse "^2.0.1"
6997
8170 -jsbn@~0.1.0:
8171 - version "0.1.1"
8172 - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
8173 - integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==
8174 -
6998 jsdom@^20.0.0:
6999 version "20.0.0"
7000 resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.0.tgz#882825ac9cc5e5bbee704ba16143e1fa78361ebf"
@@ -8253,7 +7076,7 @@ json-diff@^0.5.4:
7076 difflib "~0.2.1"
7077 dreamopt "~0.6.0"
7078
8256 -json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1:
7079 +json-parse-even-better-errors@^2.3.0:
7080 version "2.3.1"
7081 resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
7082 integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
@@ -8263,26 +7086,11 @@ json-schema-traverse@^0.4.1:
7086 resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
7087 integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
7088
8266 -json-schema@0.4.0:
8267 - version "0.4.0"
8268 - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5"
8269 - integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==
8270 -
7089 json-stable-stringify-without-jsonify@^1.0.1:
7090 version "1.0.1"
7091 resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
7092 integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
7093
8276 -json-stringify-safe@~5.0.1:
8277 - version "5.0.1"
8278 - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
8279 - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==
8280 -
8281 -json3@3.3.2:
8282 - version "3.3.2"
8283 - resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1"
8284 - integrity sha512-I5YLeauH3rIaE99EE++UeH2M2gSYo8/2TqDac7oZEH6D/DSQ4Woa628Qrfj1X9/OY5Mk5VvIDQaKCDchXaKrmA==
8285 -
7094 json5@^1.0.2:
7095 version "1.0.2"
7096 resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593"
@@ -8300,23 +7108,6 @@ json5@^2.1.2, json5@^2.2.2, json5@^2.2.3:
7108 resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
7109 integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
7110
8303 -jsonfile@^4.0.0:
8304 - version "4.0.0"
8305 - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
8306 - integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==
8307 - optionalDependencies:
8308 - graceful-fs "^4.1.6"
8309 -
8310 -jsprim@^1.2.2:
8311 - version "1.4.2"
8312 - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb"
8313 - integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==
8314 - dependencies:
8315 - assert-plus "1.0.0"
8316 - extsprintf "1.3.0"
8317 - json-schema "0.4.0"
8318 - verror "1.10.0"
8319 -
7111 "jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.3:
7112 version "3.3.3"
7113 resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz#76b3e6e6cece5c69d49a5792c3d01bd1a0cdc7ea"
@@ -8325,11 +7116,6 @@ jsprim@^1.2.2:
7116 array-includes "^3.1.5"
7117 object.assign "^4.1.3"
7118
8328 -just-extend@^4.0.2:
8329 - version "4.2.1"
8330 - resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.2.1.tgz#ef5e589afb61e5d66b24eca749409a8939a8c744"
8331 - integrity sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==
8332 -
7119 kind-of@^6.0.2:
7120 version "6.0.3"
7121 resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
@@ -8357,14 +7143,6 @@ leven@^3.1.0:
7143 resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
7144 integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==
7145
8360 -levn@^0.3.0, levn@~0.3.0:
8361 - version "0.3.0"
8362 - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
8363 - integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==
8364 - dependencies:
8365 - prelude-ls "~1.1.2"
8366 - type-check "~0.3.2"
8367 -
7146 levn@^0.4.1:
7147 version "0.4.1"
7148 resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
@@ -8373,6 +7151,14 @@ levn@^0.4.1:
7151 prelude-ls "^1.2.1"
7152 type-check "~0.4.0"
7153
7154 +levn@~0.3.0:
7155 + version "0.3.0"
7156 + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
7157 + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==
7158 + dependencies:
7159 + prelude-ls "~1.1.2"
7160 + type-check "~0.3.2"
7161 +
7162 lilconfig@^2.0.5, lilconfig@^2.1.0:
7163 version "2.1.0"
7164 resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52"
@@ -8383,11 +7169,6 @@ lines-and-columns@^1.1.6:
7169 resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
7170 integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
7171
8386 -loader-runner@^4.2.0:
8387 - version "4.3.0"
8388 - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1"
8389 - integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==
8390 -
7172 loader-utils@^2.0.2:
7173 version "2.0.4"
7174 resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c"
@@ -8419,72 +7200,11 @@ locate-path@^6.0.0:
7200 dependencies:
7201 p-locate "^5.0.0"
7202
8422 -lodash._baseassign@^3.0.0:
8423 - version "3.2.0"
8424 - resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e"
8425 - integrity sha512-t3N26QR2IdSN+gqSy9Ds9pBu/J1EAFEshKlUHpJG3rvyJOYgcELIxcIeKKfZk7sjOz11cFfzJRsyFry/JyabJQ==
8426 - dependencies:
8427 - lodash._basecopy "^3.0.0"
8428 - lodash.keys "^3.0.0"
8429 -
8430 -lodash._basecopy@^3.0.0:
8431 - version "3.0.1"
8432 - resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36"
8433 - integrity sha512-rFR6Vpm4HeCK1WPGvjZSJ+7yik8d8PVUdCJx5rT2pogG4Ve/2ZS7kfmO5l5T2o5V2mqlNIfSF5MZlr1+xOoYQQ==
8434 -
8435 -lodash._basecreate@^3.0.0:
8436 - version "3.0.3"
8437 - resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821"
8438 - integrity sha512-EDem6C9iQpn7fxnGdmhXmqYGjCkStmDXT4AeyB2Ph8WKbglg4aJZczNkQglj+zWXcOEEkViK8THuV2JvugW47g==
8439 -
8440 -lodash._getnative@^3.0.0:
8441 - version "3.9.1"
8442 - resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
8443 - integrity sha512-RrL9VxMEPyDMHOd9uFbvMe8X55X16/cGM5IgOKgRElQZutpX89iS6vwl64duTV1/16w5JY7tuFNXqoekmh1EmA==
8444 -
8445 -lodash._isiterateecall@^3.0.0:
8446 - version "3.0.9"
8447 - resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c"
8448 - integrity sha512-De+ZbrMu6eThFti/CSzhRvTKMgQToLxbij58LMfM8JnYDNSOjkjTCIaa8ixglOeGh2nyPlakbt5bJWJ7gvpYlQ==
8449 -
8450 -lodash.create@3.1.1:
8451 - version "3.1.1"
8452 - resolved "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7"
8453 - integrity sha512-IUfOYwDEbI8JbhW6psW+Ig01BOVK67dTSCUAbS58M0HBkPcAv/jHuxD+oJVP2tUCo3H9L6f/8GM6rxwY+oc7/w==
8454 - dependencies:
8455 - lodash._baseassign "^3.0.0"
8456 - lodash._basecreate "^3.0.0"
8457 - lodash._isiterateecall "^3.0.0"
8458 -
7203 lodash.debounce@^4.0.8:
7204 version "4.0.8"
7205 resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
7206 integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==
7207
8464 -lodash.get@^4.4.2:
8465 - version "4.4.2"
8466 - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
8467 - integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==
8468 -
8469 -lodash.isarguments@^3.0.0:
8470 - version "3.1.0"
8471 - resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
8472 - integrity sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==
8473 -
8474 -lodash.isarray@^3.0.0:
8475 - version "3.0.4"
8476 - resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55"
8477 - integrity sha512-JwObCrNJuT0Nnbuecmqr5DgtuBppuCvGD9lxjFpAzwnVtdGoDQ1zig+5W8k5/6Gcn0gZ3936HDAlGd28i7sOGQ==
8478 -
8479 -lodash.keys@^3.0.0:
8480 - version "3.1.2"
8481 - resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a"
8482 - integrity sha512-CuBsapFjcubOGMn3VD+24HOAPxM79tH+V6ivJL3CHYjtrawauDJHUk//Yew9Hvc6e9rbCrURGk8z6PC+8WJBfQ==
8483 - dependencies:
8484 - lodash._getnative "^3.0.0"
8485 - lodash.isarguments "^3.0.0"
8486 - lodash.isarray "^3.0.0"
8487 -
7208 lodash.memoize@4.x:
7209 version "4.1.2"
7210 resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
@@ -8495,23 +7215,11 @@ lodash.merge@^4.6.2:
7215 resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
7216 integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
7217
8498 -lodash@^4.17.10, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@~4.17.21:
7218 +lodash@^4.17.10, lodash@^4.17.21, lodash@~4.17.21:
7219 version "4.17.21"
7220 resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
7221 integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
7222
8503 -lolex@^2.2.0:
8504 - version "2.7.5"
8505 - resolved "https://registry.yarnpkg.com/lolex/-/lolex-2.7.5.tgz#113001d56bfc7e02d56e36291cc5c413d1aa0733"
8506 - integrity sha512-l9x0+1offnKKIzYVjyXU2SiwhXDLekRzKyhnbyldPHvC7BvLPVpdNUNR2KeMAiCN2D/kLNttZgQD5WjSxuBx3Q==
8507 -
8508 -lolex@^5.0.1:
8509 - version "5.1.2"
8510 - resolved "https://registry.yarnpkg.com/lolex/-/lolex-5.1.2.tgz#953694d098ce7c07bc5ed6d0e42bc6c0c6d5a367"
8511 - integrity sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A==
8512 - dependencies:
8513 - "@sinonjs/commons" "^1.7.0"
8514 -
7223 loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0:
7224 version "1.4.0"
7225 resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
@@ -8584,15 +7292,6 @@ makeerror@1.0.12:
7292 dependencies:
7293 tmpl "1.0.5"
7294
8587 -md5.js@^1.3.4:
8588 - version "1.3.5"
8589 - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f"
8590 - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==
8591 - dependencies:
8592 - hash-base "^3.0.0"
8593 - inherits "^2.0.1"
8594 - safe-buffer "^5.1.2"
8595 -
7295 merge-stream@^2.0.0:
7296 version "2.0.0"
7297 resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
@@ -8611,20 +7310,12 @@ micromatch@^4.0.4, micromatch@^4.0.5:
7310 braces "^3.0.2"
7311 picomatch "^2.3.1"
7312
8614 -miller-rabin@^4.0.0:
8615 - version "4.0.1"
8616 - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d"
8617 - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==
8618 - dependencies:
8619 - bn.js "^4.0.0"
8620 - brorand "^1.0.1"
8621 -
7313 mime-db@1.52.0:
7314 version "1.52.0"
7315 resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
7316 integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
7317
8627 -mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.19:
7318 +mime-types@^2.1.12:
7319 version "2.1.35"
7320 resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
7321 integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
@@ -8641,22 +7332,7 @@ mimic-fn@^4.0.0:
7332 resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc"
7333 integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==
7334
8644 -mimic-response@^2.0.0:
8645 - version "2.1.0"
8646 - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43"
8647 - integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==
8648 -
8649 -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
8650 - version "1.0.1"
8651 - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
8652 - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
8653 -
8654 -minimalistic-crypto-utils@^1.0.1:
8655 - version "1.0.1"
8656 - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
8657 - integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==
8658 -
8659 -minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
7335 +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
7336 version "3.1.2"
7337 resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
7338 integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
@@ -8677,12 +7353,7 @@ minimatch@^9.0.1:
7353 dependencies:
7354 brace-expansion "^2.0.1"
7355
8680 -minimist@0.0.8:
8681 - version "0.0.8"
8682 - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
8683 - integrity sha512-miQKw5Hv4NS1Psg2517mV4e4dYNaO3++hjAvLOAzKqZ61rH8NS1SK+vbfBWZ5PY/Me/bEWhUwqMghEW5Fb9T7Q==
8684 -
8685 -minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5:
7356 +minimist@^1.2.0:
7357 version "1.2.8"
7358 resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
7359 integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
@@ -8697,48 +7368,11 @@ minimist@^1.2.6:
7368 resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c"
7369 integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==
7370
8700 -mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3:
8701 - version "0.5.3"
8702 - resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113"
8703 - integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==
8704 -
8705 -mkdirp@0.5.1:
8706 - version "0.5.1"
8707 - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
8708 - integrity sha512-SknJC52obPfGQPnjIkXbmA6+5H15E+fR+E4iR2oQ3zzCLbd7/ONua69R/Gw7AgkTLsRG+r5fzksYwWe1AgTyWA==
8709 - dependencies:
8710 - minimist "0.0.8"
8711 -
8712 -mkdirp@^0.5.1:
8713 - version "0.5.6"
8714 - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6"
8715 - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==
8716 - dependencies:
8717 - minimist "^1.2.6"
8718 -
7371 mkdirp@~3.0.0:
7372 version "3.0.1"
7373 resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-3.0.1.tgz#e44e4c5607fb279c168241713cc6e0fea9adcb50"
7374 integrity sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==
7375
8724 -mocha@^3.5.3:
8725 - version "3.5.3"
8726 - resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.5.3.tgz#1e0480fe36d2da5858d1eb6acc38418b26eaa20d"
8727 - integrity sha512-/6na001MJWEtYxHOV1WLfsmR4YIynkUEhBwzsb+fk2qmQ3iqsi258l/Q2MWHJMImAcNpZ8DEdYAK72NHoIQ9Eg==
8728 - dependencies:
8729 - browser-stdout "1.3.0"
8730 - commander "2.9.0"
8731 - debug "2.6.8"
8732 - diff "3.2.0"
8733 - escape-string-regexp "1.0.5"
8734 - glob "7.1.1"
8735 - growl "1.9.2"
8736 - he "1.1.1"
8737 - json3 "3.3.2"
8738 - lodash.create "3.1.1"
8739 - mkdirp "0.5.1"
8740 - supports-color "3.1.2"
8741 -
7376 moment@~2.29.3:
7377 version "2.29.4"
7378 resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108"
@@ -8756,11 +7390,6 @@ monaco-editor@^0.34.1:
7390 resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.34.1.tgz#1b75c4ad6bc4c1f9da656d740d98e0b850a22f87"
7391 integrity sha512-FKc80TyiMaruhJKKPz5SpJPIjL+dflGvz4CpuThaPMc94AyN7SeC9HQ8hrvaxX7EyHdJcUY5i4D0gNyJj1vSZQ==
7392
8759 -ms@2.0.0:
8760 - version "2.0.0"
8761 - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
8762 - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==
8763 -
7393 ms@2.1.2:
7394 version "2.1.2"
7395 resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
@@ -8771,19 +7400,6 @@ ms@^2.1.1:
7400 resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
7401 integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
7402
8774 -multistream@^2.1.1:
8775 - version "2.1.1"
8776 - resolved "https://registry.yarnpkg.com/multistream/-/multistream-2.1.1.tgz#629d3a29bd76623489980d04519a2c365948148c"
8777 - integrity sha512-xasv76hl6nr1dEy3lPvy7Ej7K/Lx3O/FCvwge8PeVJpciPPoNCbaANcNiBug3IpdvTveZUcAV0DJzdnUDMesNQ==
8778 - dependencies:
8779 - inherits "^2.0.1"
8780 - readable-stream "^2.0.5"
8781 -
8782 -mute-stream@0.0.8:
8783 - version "0.0.8"
8784 - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
8785 - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
8786 -
7403 mz@^2.7.0:
7404 version "2.7.0"
7405 resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
@@ -8798,11 +7414,6 @@ nanoid@^3.3.6:
7414 resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c"
7415 integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==
7416
8801 -napi-build-utils@^1.0.1:
8802 - version "1.0.2"
8803 - resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806"
8804 - integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==
8805 -
7417 natural-compare-lite@^1.4.0:
7418 version "1.4.0"
7419 resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4"
@@ -8813,11 +7424,6 @@ natural-compare@^1.4.0:
7424 resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
7425 integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
7426
8816 -neo-async@^2.6.2:
8817 - version "2.6.2"
8818 - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
8819 - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
8820 -
7427 next@^13.5.6:
7428 version "13.5.6"
7429 resolved "https://registry.yarnpkg.com/next/-/next-13.5.6.tgz#e964b5853272236c37ce0dd2c68302973cf010b1"
@@ -8841,29 +7447,6 @@ next@^13.5.6:
7447 "@next/swc-win32-ia32-msvc" "13.5.6"
7448 "@next/swc-win32-x64-msvc" "13.5.6"
7449
8844 -nice-try@^1.0.4:
8845 - version "1.0.5"
8846 - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
8847 - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
8848 -
8849 -nise@^1.2.0:
8850 - version "1.5.3"
8851 - resolved "https://registry.yarnpkg.com/nise/-/nise-1.5.3.tgz#9d2cfe37d44f57317766c6e9408a359c5d3ac1f7"
8852 - integrity sha512-Ymbac/94xeIrMf59REBPOv0thr+CJVFMhrlAkW/gjCIE58BGQdCj0x7KRCb3yz+Ga2Rz3E9XXSvUyyxqqhjQAQ==
8853 - dependencies:
8854 - "@sinonjs/formatio" "^3.2.1"
8855 - "@sinonjs/text-encoding" "^0.7.1"
8856 - just-extend "^4.0.2"
8857 - lolex "^5.0.1"
8858 - path-to-regexp "^1.7.0"
8859 -
8860 -node-abi@^2.7.0:
8861 - version "2.30.1"
8862 - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.30.1.tgz#c437d4b1fe0e285aaf290d45b45d4d7afedac4cf"
8863 - integrity sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==
8864 - dependencies:
8865 - semver "^5.4.1"
8866 -
7450 node-addon-api@^3.2.1:
7451 version "3.2.1"
7452 resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161"
@@ -8879,37 +7462,6 @@ node-int64@^0.4.0:
7462 resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
7463 integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==
7464
8882 -node-polyfill-webpack-plugin@^2.0.1:
8883 - version "2.0.1"
8884 - resolved "https://registry.yarnpkg.com/node-polyfill-webpack-plugin/-/node-polyfill-webpack-plugin-2.0.1.tgz#141d86f177103a8517c71d99b7c6a46edbb1bb58"
8885 - integrity sha512-ZUMiCnZkP1LF0Th2caY6J/eKKoA0TefpoVa68m/LQU1I/mE8rGt4fNYGgNuCcK+aG8P8P43nbeJ2RqJMOL/Y1A==
8886 - dependencies:
8887 - assert "^2.0.0"
8888 - browserify-zlib "^0.2.0"
8889 - buffer "^6.0.3"
8890 - console-browserify "^1.2.0"
8891 - constants-browserify "^1.0.0"
8892 - crypto-browserify "^3.12.0"
8893 - domain-browser "^4.22.0"
8894 - events "^3.3.0"
8895 - filter-obj "^2.0.2"
8896 - https-browserify "^1.0.0"
8897 - os-browserify "^0.3.0"
8898 - path-browserify "^1.0.1"
8899 - process "^0.11.10"
8900 - punycode "^2.1.1"
8901 - querystring-es3 "^0.2.1"
8902 - readable-stream "^4.0.0"
8903 - stream-browserify "^3.0.0"
8904 - stream-http "^3.2.0"
8905 - string_decoder "^1.3.0"
8906 - timers-browserify "^2.0.12"
8907 - tty-browserify "^0.0.1"
8908 - type-fest "^2.14.0"
8909 - url "^0.11.0"
8910 - util "^0.12.4"
8911 - vm-browserify "^1.1.2"
8912 -
7465 node-releases@^2.0.12:
7466 version "2.0.12"
7467 resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.12.tgz#35627cc224a23bfb06fb3380f2b3afaaa7eb1039"
@@ -8920,11 +7472,6 @@ node-releases@^2.0.13:
7472 resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d"
7473 integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==
7474
8923 -noop-logger@^0.1.1:
8924 - version "0.1.1"
8925 - resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2"
8926 - integrity sha512-6kM8CLXvuW5crTxsAtva2YLrRrDaiTIkIePWs9moLHqbFWT94WpNFjwS/5dfLfECg5i/lkmw3aoqVidxt23TEQ==
8927 -
7475 normalize-path@^3.0.0, normalize-path@~3.0.0:
7476 version "3.0.0"
7477 resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
@@ -8957,26 +7504,11 @@ npm-run-path@^5.1.0:
7504 dependencies:
7505 path-key "^4.0.0"
7506
8960 -npmlog@^4.0.1:
8961 - version "4.1.2"
8962 - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
8963 - integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
8964 - dependencies:
8965 - are-we-there-yet "~1.1.2"
8966 - console-control-strings "~1.1.0"
8967 - gauge "~2.7.3"
8968 - set-blocking "~2.0.0"
8969 -
7507 nullthrows@^1.1.1:
7508 version "1.1.1"
7509 resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1"
7510 integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==
7511
8975 -number-is-nan@^1.0.0:
8976 - version "1.0.1"
8977 - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
8978 - integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==
8979 -
7512 nwsapi@^2.2.0:
7513 version "2.2.2"
7514 resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.2.tgz#e5418863e7905df67d51ec95938d67bf801f0bb0"
@@ -8987,12 +7519,7 @@ nwsapi@^2.2.4:
7519 resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30"
7520 integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==
7521
8990 -oauth-sign@~0.9.0:
8991 - version "0.9.0"
8992 - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
8993 - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
8994 -
8995 -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
7522 +object-assign@^4.0.1, object-assign@^4.1.1:
7523 version "4.1.1"
7524 resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
7525 integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
@@ -9012,7 +7539,7 @@ object-inspect@^1.13.1:
7539 resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2"
7540 integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==
7541
9015 -object-is@^1.0.1, object-is@^1.1.5:
7542 +object-is@^1.1.5:
7543 version "1.1.5"
7544 resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac"
7545 integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==
@@ -9098,14 +7625,14 @@ object.values@^1.1.7:
7625 define-properties "^1.2.0"
7626 es-abstract "^1.22.1"
7627
9101 -once@^1.3.0, once@^1.3.1, once@^1.4.0:
7628 +once@^1.3.0:
7629 version "1.4.0"
7630 resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
7631 integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
7632 dependencies:
7633 wrappy "1"
7634
9108 -onetime@^5.1.0, onetime@^5.1.2:
7635 +onetime@^5.1.2:
7636 version "5.1.2"
7637 resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
7638 integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
@@ -9129,7 +7656,7 @@ open@^9.1.0:
7656 is-inside-container "^1.0.0"
7657 is-wsl "^2.2.0"
7658
9132 -optionator@^0.8.1, optionator@^0.8.3:
7659 +optionator@^0.8.1:
7660 version "0.8.3"
7661 resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
7662 integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==
@@ -9153,21 +7680,6 @@ optionator@^0.9.1:
7680 type-check "^0.4.0"
7681 word-wrap "^1.2.3"
7682
9156 -os-browserify@^0.3.0:
9157 - version "0.3.0"
9158 - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
9159 - integrity sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==
9160 -
9161 -os-tmpdir@^1.0.1, os-tmpdir@~1.0.2:
9162 - version "1.0.2"
9163 - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
9164 - integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==
9165 -
9166 -p-is-promise@^3.0.0:
9167 - version "3.0.0"
9168 - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-3.0.0.tgz#58e78c7dfe2e163cf2a04ff869e7c1dba64a5971"
9169 - integrity sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==
9170 -
7683 p-limit@^2.0.0, p-limit@^2.2.0:
7684 version "2.3.0"
7685 resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
@@ -9213,11 +7725,6 @@ package-name-regex@~2.0.6:
7725 resolved "https://registry.yarnpkg.com/package-name-regex/-/package-name-regex-2.0.6.tgz#b54bcb04d950e38082b7bb38fa558e01c1679334"
7726 integrity sha512-gFL35q7kbE/zBaPA3UKhp2vSzcPYx2ecbYuwv1ucE9Il6IIgBDweBlH8D68UFGZic2MkllKa2KHCfC1IQBQUYA==
7727
9216 -pako@~1.0.5:
9217 - version "1.0.11"
9218 - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
9219 - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
9220 -
7728 parent-module@^1.0.0:
7729 version "1.0.1"
7730 resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
@@ -9225,17 +7732,6 @@ parent-module@^1.0.0:
7732 dependencies:
7733 callsites "^3.0.0"
7734
9228 -parse-asn1@^5.0.0, parse-asn1@^5.1.5:
9229 - version "5.1.6"
9230 - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4"
9231 - integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==
9232 - dependencies:
9233 - asn1.js "^5.2.0"
9234 - browserify-aes "^1.0.0"
9235 - evp_bytestokey "^1.0.0"
9236 - pbkdf2 "^3.0.3"
9237 - safe-buffer "^5.1.1"
9238 -
7735 parse-json@^5.2.0:
7736 version "5.2.0"
7737 resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
@@ -9260,11 +7756,6 @@ parse5@^7.1.2:
7756 dependencies:
7757 entities "^4.4.0"
7758
9263 -path-browserify@^1.0.1:
9264 - version "1.0.1"
9265 - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd"
9266 - integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==
9267 -
7759 path-exists@^3.0.0:
7760 version "3.0.0"
7761 resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
@@ -9280,11 +7771,6 @@ path-is-absolute@^1.0.0:
7771 resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
7772 integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
7773
9283 -path-key@^2.0.1:
9284 - version "2.0.1"
9285 - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
9286 - integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==
9287 -
7774 path-key@^3.0.0, path-key@^3.1.0:
7775 version "3.1.1"
7776 resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
@@ -9308,34 +7794,11 @@ path-scurry@^1.10.1:
7794 lru-cache "^9.1.1 || ^10.0.0"
7795 minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
7796
9311 -path-to-regexp@^1.7.0:
9312 - version "1.8.0"
9313 - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a"
9314 - integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==
9315 - dependencies:
9316 - isarray "0.0.1"
9317 -
7797 path-type@^4.0.0:
7798 version "4.0.0"
7799 resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
7800 integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
7801
9323 -pbkdf2@^3.0.3:
9324 - version "3.1.2"
9325 - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075"
9326 - integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==
9327 - dependencies:
9328 - create-hash "^1.1.2"
9329 - create-hmac "^1.1.4"
9330 - ripemd160 "^2.0.1"
9331 - safe-buffer "^5.0.1"
9332 - sha.js "^2.4.8"
9333 -
9334 -performance-now@^2.1.0:
9335 - version "2.1.0"
9336 - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
9337 - integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==
9338 -
7802 picocolors@^1.0.0:
7803 version "1.0.0"
7804 resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
@@ -9375,43 +7838,6 @@ pkg-dir@^4.2.0:
7838 dependencies:
7839 find-up "^4.0.0"
7840
9378 -pkg-fetch@2.6.9:
9379 - version "2.6.9"
9380 - resolved "https://registry.yarnpkg.com/pkg-fetch/-/pkg-fetch-2.6.9.tgz#c18c5fa9604c57a3df3d9630afb64e176bc8732d"
9381 - integrity sha512-EnVR8LRILXBvaNP+wJOSY02c3+qDDfyEyR+aqAHLhcc9PBnbxFT9UZ1+If49goPQzQPn26TzF//fc6KXZ0aXEg==
9382 - dependencies:
9383 - "@babel/runtime" "^7.9.2"
9384 - byline "^5.0.0"
9385 - chalk "^3.0.0"
9386 - expand-template "^2.0.3"
9387 - fs-extra "^8.1.0"
9388 - minimist "^1.2.5"
9389 - progress "^2.0.3"
9390 - request "^2.88.0"
9391 - request-progress "^3.0.0"
9392 - semver "^6.3.0"
9393 - unique-temp-dir "^1.0.0"
9394 -
9395 -pkg@^4.3.4:
9396 - version "4.5.1"
9397 - resolved "https://registry.yarnpkg.com/pkg/-/pkg-4.5.1.tgz#0f915110d726b17a7e66a76e5406ff9d393bccc8"
9398 - integrity sha512-UXKL88jGQ+FD4//PyrFeRcqurVQ3BVIfUNaEU9cXY24EJz08JyBj85qrGh0CFGvyzNb1jpwHOnns5Sw0M5H92Q==
9399 - dependencies:
9400 - "@babel/parser" "7.13.12"
9401 - "@babel/runtime" "7.13.10"
9402 - chalk "^3.0.0"
9403 - escodegen "^1.14.1"
9404 - fs-extra "^8.1.0"
9405 - globby "^11.0.0"
9406 - into-stream "^5.1.1"
9407 - minimist "^1.2.5"
9408 - multistream "^2.1.1"
9409 - pkg-fetch "2.6.9"
9410 - prebuild-install "6.0.1"
9411 - progress "^2.0.3"
9412 - resolve "^1.15.1"
9413 - stream-meter "^1.0.4"
9414 -
7841 postcss-import@^15.1.0:
7842 version "15.1.0"
7843 resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70"
@@ -9474,27 +7900,6 @@ postcss@^8.4.19, postcss@^8.4.23:
7900 picocolors "^1.0.0"
7901 source-map-js "^1.0.2"
7902
9477 -prebuild-install@6.0.1:
9478 - version "6.0.1"
9479 - resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.0.1.tgz#5902172f7a40eb67305b96c2a695db32636ee26d"
9480 - integrity sha512-7GOJrLuow8yeiyv75rmvZyeMGzl8mdEX5gY69d6a6bHWmiPevwqFw+tQavhK0EYMaSg3/KD24cWqeQv1EWsqDQ==
9481 - dependencies:
9482 - detect-libc "^1.0.3"
9483 - expand-template "^2.0.3"
9484 - github-from-package "0.0.0"
9485 - minimist "^1.2.3"
9486 - mkdirp-classic "^0.5.3"
9487 - napi-build-utils "^1.0.1"
9488 - node-abi "^2.7.0"
9489 - noop-logger "^0.1.1"
9490 - npmlog "^4.0.1"
9491 - pump "^3.0.0"
9492 - rc "^1.2.7"
9493 - simple-get "^3.0.3"
9494 - tar-fs "^2.0.0"
9495 - tunnel-agent "^0.6.0"
9496 - which-pm-runs "^1.0.0"
9497 -
7903 prelude-ls@^1.2.1:
7904 version "1.2.1"
7905 resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
@@ -9562,21 +7967,6 @@ pretty-format@^29.3.1, pretty-format@^29.5.0:
7967 ansi-styles "^5.0.0"
7968 react-is "^18.0.0"
7969
9565 -process-nextick-args@~2.0.0:
9566 - version "2.0.1"
9567 - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
9568 - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
9569 -
9570 -process@^0.11.10:
9571 - version "0.11.10"
9572 - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
9573 - integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==
9574 -
9575 -progress@^2.0.0, progress@^2.0.3:
9576 - version "2.0.3"
9577 - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
9578 - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
9579 -
7970 prompts@^2.0.1:
7971 version "2.4.2"
7972 resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069"
@@ -9594,36 +7984,11 @@ prop-types@^15.8.1:
7984 object-assign "^4.1.1"
7985 react-is "^16.13.1"
7986
9597 -psl@^1.1.28, psl@^1.1.33:
7987 +psl@^1.1.33:
7988 version "1.9.0"
7989 resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7"
7990 integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==
7991
9602 -public-encrypt@^4.0.0:
9603 - version "4.0.3"
9604 - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0"
9605 - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==
9606 - dependencies:
9607 - bn.js "^4.1.0"
9608 - browserify-rsa "^4.0.0"
9609 - create-hash "^1.1.0"
9610 - parse-asn1 "^5.0.0"
9611 - randombytes "^2.0.1"
9612 - safe-buffer "^5.1.2"
9613 -
9614 -pump@^3.0.0:
9615 - version "3.0.0"
9616 - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
9617 - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
9618 - dependencies:
9619 - end-of-stream "^1.1.0"
9620 - once "^1.3.1"
9621 -
9622 -punycode@1.3.2:
9623 - version "1.3.2"
9624 - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
9625 - integrity sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==
9626 -
7992 punycode@^2.1.0, punycode@^2.1.1:
7993 version "2.1.1"
7994 resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
@@ -9639,21 +8004,6 @@ pure-rand@^6.0.0:
8004 resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.2.tgz#a9c2ddcae9b68d736a8163036f088a2781c8b306"
8005 integrity sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ==
8006
9642 -qs@~6.5.2:
9643 - version "6.5.3"
9644 - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad"
9645 - integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==
9646 -
9647 -querystring-es3@^0.2.1:
9648 - version "0.2.1"
9649 - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
9650 - integrity sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==
9651 -
9652 -querystring@0.2.0:
9653 - version "0.2.0"
9654 - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
9655 - integrity sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==
9656 -
8007 querystringify@^2.1.1:
8008 version "2.2.0"
8009 resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6"
@@ -9664,31 +8014,6 @@ queue-microtask@^1.2.2:
8014 resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
8015 integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
8016
9667 -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0:
9668 - version "2.1.0"
9669 - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
9670 - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
9671 - dependencies:
9672 - safe-buffer "^5.1.0"
9673 -
9674 -randomfill@^1.0.3:
9675 - version "1.0.4"
9676 - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458"
9677 - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==
9678 - dependencies:
9679 - randombytes "^2.0.5"
9680 - safe-buffer "^5.1.0"
9681 -
9682 -rc@^1.2.7:
9683 - version "1.2.8"
9684 - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
9685 - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
9686 - dependencies:
9687 - deep-extend "^0.6.0"
9688 - ini "~1.3.0"
9689 - minimist "^1.2.0"
9690 - strip-json-comments "~2.0.1"
9691 -
8017 react-dom@18.2.0:
8018 version "18.2.0"
8019 resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d"
@@ -9741,38 +8066,6 @@ read-cache@^1.0.0:
8066 dependencies:
8067 pify "^2.3.0"
8068
9744 -readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4:
9745 - version "2.3.8"
9746 - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b"
9747 - integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==
9748 - dependencies:
9749 - core-util-is "~1.0.0"
9750 - inherits "~2.0.3"
9751 - isarray "~1.0.0"
9752 - process-nextick-args "~2.0.0"
9753 - safe-buffer "~5.1.1"
9754 - string_decoder "~1.1.1"
9755 - util-deprecate "~1.0.1"
9756 -
9757 -readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0:
9758 - version "3.6.2"
9759 - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967"
9760 - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
9761 - dependencies:
9762 - inherits "^2.0.3"
9763 - string_decoder "^1.1.1"
9764 - util-deprecate "^1.0.1"
9765 -
9766 -readable-stream@^4.0.0:
9767 - version "4.4.0"
9768 - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.4.0.tgz#55ce132d60a988c460d75c631e9ccf6a7229b468"
9769 - integrity sha512-kDMOq0qLtxV9f/SQv522h8cxZBqNZXuXNyjyezmfAAuribMyVXziljpQ/uQhfE1XLg2/TLTW2DsnoE4VAi/krg==
9770 - dependencies:
9771 - abort-controller "^3.0.0"
9772 - buffer "^6.0.3"
9773 - events "^3.3.0"
9774 - process "^0.11.10"
9775 -
8069 readdirp@~3.6.0:
8070 version "3.6.0"
8071 resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
@@ -9785,13 +8078,6 @@ readline@^1.3.0:
8078 resolved "https://registry.yarnpkg.com/readline/-/readline-1.3.0.tgz#c580d77ef2cfc8752b132498060dc9793a7ac01c"
8079 integrity sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg==
8080
9788 -rechoir@^0.7.0:
9789 - version "0.7.1"
9790 - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.1.tgz#9478a96a1ca135b5e88fc027f03ee92d6c645686"
9791 - integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==
9792 - dependencies:
9793 - resolve "^1.9.0"
9794 -
8081 reflect.getprototypeof@^1.0.4:
8082 version "1.0.4"
8083 resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz#aaccbf41aca3821b87bb71d9dcbc7ad0ba50a3f3"
@@ -9851,11 +8137,6 @@ regexp.prototype.flags@^1.5.1:
8137 define-properties "^1.2.0"
8138 set-function-name "^2.0.0"
8139
9854 -regexpp@^2.0.1:
9855 - version "2.0.1"
9856 - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f"
9857 - integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==
9858 -
8140 regexpp@^3.2.0:
8141 version "3.2.0"
8142 resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"
@@ -9880,39 +8161,6 @@ regjsparser@^0.9.1:
8161 dependencies:
8162 jsesc "~0.5.0"
8163
9883 -request-progress@^3.0.0:
9884 - version "3.0.0"
9885 - resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe"
9886 - integrity sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==
9887 - dependencies:
9888 - throttleit "^1.0.0"
9889 -
9890 -request@^2.88.0:
9891 - version "2.88.2"
9892 - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
9893 - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
9894 - dependencies:
9895 - aws-sign2 "~0.7.0"
9896 - aws4 "^1.8.0"
9897 - caseless "~0.12.0"
9898 - combined-stream "~1.0.6"
9899 - extend "~3.0.2"
9900 - forever-agent "~0.6.1"
9901 - form-data "~2.3.2"
9902 - har-validator "~5.1.3"
9903 - http-signature "~1.2.0"
9904 - is-typedarray "~1.0.0"
9905 - isstream "~0.1.2"
9906 - json-stringify-safe "~5.0.1"
9907 - mime-types "~2.1.19"
9908 - oauth-sign "~0.9.0"
9909 - performance-now "^2.1.0"
9910 - qs "~6.5.2"
9911 - safe-buffer "^5.1.2"
9912 - tough-cookie "~2.5.0"
9913 - tunnel-agent "^0.6.0"
9914 - uuid "^3.3.2"
9915 -
8164 require-directory@^2.1.1:
8165 version "2.1.1"
8166 resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
@@ -9960,7 +8208,7 @@ resolve.exports@^2.0.0:
8208 resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800"
8209 integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==
8210
9963 -resolve@^1.1.7, resolve@^1.14.2, resolve@^1.15.1, resolve@^1.22.1, resolve@^1.22.2, resolve@^1.9.0:
8211 +resolve@^1.1.7, resolve@^1.14.2, resolve@^1.22.1, resolve@^1.22.2:
8212 version "1.22.2"
8213 resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f"
8214 integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==
@@ -9996,26 +8244,11 @@ resolve@^2.0.0-next.4:
8244 path-parse "^1.0.7"
8245 supports-preserve-symlinks-flag "^1.0.0"
8246
9999 -restore-cursor@^3.1.0:
10000 - version "3.1.0"
10001 - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
10002 - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==
10003 - dependencies:
10004 - onetime "^5.1.0"
10005 - signal-exit "^3.0.2"
10006 -
8247 reusify@^1.0.4:
8248 version "1.0.4"
8249 resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
8250 integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
8251
10012 -rimraf@2.6.3:
10013 - version "2.6.3"
10014 - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
10015 - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
10016 - dependencies:
10017 - glob "^7.1.3"
10018 -
8252 rimraf@^3.0.0, rimraf@^3.0.2:
8253 version "3.0.2"
8254 resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
@@ -10023,14 +8256,6 @@ rimraf@^3.0.0, rimraf@^3.0.2:
8256 dependencies:
8257 glob "^7.1.3"
8258
10026 -ripemd160@^2.0.0, ripemd160@^2.0.1:
10027 - version "2.0.2"
10028 - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c"
10029 - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==
10030 - dependencies:
10031 - hash-base "^3.0.0"
10032 - inherits "^2.0.1"
10033 -
8259 rollup-plugin-license@^3.2.0:
8260 version "3.2.0"
8261 resolved "https://registry.yarnpkg.com/rollup-plugin-license/-/rollup-plugin-license-3.2.0.tgz#99958a5ed2ce4796a3a59bdcc6836dfd1c4df0e1"
@@ -10065,11 +8290,6 @@ run-applescript@^5.0.0:
8290 dependencies:
8291 execa "^5.0.0"
8292
10068 -run-async@^2.4.0:
10069 - version "2.4.1"
10070 - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455"
10071 - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==
10072 -
8293 run-parallel@^1.1.9:
8294 version "1.2.0"
8295 resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
@@ -10077,13 +8297,6 @@ run-parallel@^1.1.9:
8297 dependencies:
8298 queue-microtask "^1.2.2"
8299
10080 -rxjs@^6.6.0:
10081 - version "6.6.7"
10082 - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9"
10083 - integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==
10084 - dependencies:
10085 - tslib "^1.9.0"
10086 -
8300 rxjs@^7.0.0:
8301 version "7.8.1"
8302 resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543"
@@ -10101,12 +8314,7 @@ safe-array-concat@^1.0.1:
8314 has-symbols "^1.0.3"
8315 isarray "^2.0.5"
8316
10104 -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0:
10105 - version "5.2.1"
10106 - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
10107 - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
10108 -
10109 -safe-buffer@~5.1.0, safe-buffer@~5.1.1:
8317 +safe-buffer@~5.1.1:
8318 version "5.1.2"
8319 resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
8320 integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
@@ -10120,16 +8328,11 @@ safe-regex-test@^1.0.0:
8328 get-intrinsic "^1.1.3"
8329 is-regex "^1.1.4"
8330
10123 -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
8331 +"safer-buffer@>= 2.1.2 < 3.0.0":
8332 version "2.1.2"
8333 resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
8334 integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
8335
10128 -samsam@1.3.0:
10129 - version "1.3.0"
10130 - resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.3.0.tgz#8d1d9350e25622da30de3e44ba692b5221ab7c50"
10131 - integrity sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg==
10132 -
8336 saxes@^6.0.0:
8337 version "6.0.0"
8338 resolved "https://registry.yarnpkg.com/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5"
@@ -10151,15 +8354,6 @@ scheduler@^0.23.0:
8354 dependencies:
8355 loose-envify "^1.1.0"
8356
10154 -schema-utils@^3.1.1, schema-utils@^3.1.2:
10155 - version "3.1.2"
10156 - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.2.tgz#36c10abca6f7577aeae136c804b0c741edeadc99"
10157 - integrity sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==
10158 - dependencies:
10159 - "@types/json-schema" "^7.0.8"
10160 - ajv "^6.12.5"
10161 - ajv-keywords "^3.5.2"
10162 -
8357 semver@7.x, semver@^7.3.5:
8358 version "7.3.7"
8359 resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f"
@@ -10167,7 +8361,7 @@ semver@7.x, semver@^7.3.5:
8361 dependencies:
8362 lru-cache "^6.0.0"
8363
10170 -semver@^5.4.1, semver@^5.5.0, semver@^5.6.0:
8364 +semver@^5.4.1, semver@^5.6.0:
8365 version "5.7.1"
8366 resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
8367 integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
@@ -10196,14 +8390,7 @@ semver@^7.5.3, semver@^7.5.4:
8390 dependencies:
8391 lru-cache "^6.0.0"
8392
10199 -serialize-javascript@^6.0.1:
10200 - version "6.0.1"
10201 - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c"
10202 - integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==
10203 - dependencies:
10204 - randombytes "^2.1.0"
10205 -
10206 -set-blocking@^2.0.0, set-blocking@~2.0.0:
8393 +set-blocking@^2.0.0:
8394 version "2.0.0"
8395 resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
8396 integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==
@@ -10227,19 +8414,6 @@ set-function-name@^2.0.0, set-function-name@^2.0.1:
8414 functions-have-names "^1.2.3"
8415 has-property-descriptors "^1.0.0"
8416
10230 -setimmediate@^1.0.4:
10231 - version "1.0.5"
10232 - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
10233 - integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==
10234 -
10235 -sha.js@^2.4.0, sha.js@^2.4.8:
10236 - version "2.4.11"
10237 - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7"
10238 - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==
10239 - dependencies:
10240 - inherits "^2.0.1"
10241 - safe-buffer "^5.0.1"
10242 -
8417 shallow-clone@^3.0.0:
8418 version "3.0.1"
8419 resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3"
@@ -10247,13 +8421,6 @@ shallow-clone@^3.0.0:
8421 dependencies:
8422 kind-of "^6.0.2"
8423
10250 -shebang-command@^1.2.0:
10251 - version "1.2.0"
10252 - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
10253 - integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==
10254 - dependencies:
10255 - shebang-regex "^1.0.0"
10256 -
8424 shebang-command@^2.0.0:
8425 version "2.0.0"
8426 resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
@@ -10261,11 +8428,6 @@ shebang-command@^2.0.0:
8428 dependencies:
8429 shebang-regex "^3.0.0"
8430
10264 -shebang-regex@^1.0.0:
10265 - version "1.0.0"
10266 - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
10267 - integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==
10268 -
8431 shebang-regex@^3.0.0:
8432 version "3.0.0"
8433 resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
@@ -10285,7 +8447,7 @@ side-channel@^1.0.4:
8447 get-intrinsic "^1.0.2"
8448 object-inspect "^1.9.0"
8449
10288 -signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7:
8450 +signal-exit@^3.0.3, signal-exit@^3.0.7:
8451 version "3.0.7"
8452 resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
8453 integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
@@ -10295,33 +8457,6 @@ signal-exit@^4.0.1:
8457 resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
8458 integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
8459
10298 -simple-concat@^1.0.0:
10299 - version "1.0.1"
10300 - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f"
10301 - integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==
10302 -
10303 -simple-get@^3.0.3:
10304 - version "3.1.1"
10305 - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.1.tgz#cc7ba77cfbe761036fbfce3d021af25fc5584d55"
10306 - integrity sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==
10307 - dependencies:
10308 - decompress-response "^4.2.0"
10309 - once "^1.3.1"
10310 - simple-concat "^1.0.0"
10311 -
10312 -sinon@^4.0.0:
10313 - version "4.5.0"
10314 - resolved "https://registry.yarnpkg.com/sinon/-/sinon-4.5.0.tgz#427ae312a337d3c516804ce2754e8c0d5028cb04"
10315 - integrity sha512-trdx+mB0VBBgoYucy6a9L7/jfQOmvGeaKZT4OOJ+lPAtI8623xyGr8wLiE4eojzBS8G9yXbhx42GHUOVLr4X2w==
10316 - dependencies:
10317 - "@sinonjs/formatio" "^2.0.0"
10318 - diff "^3.1.0"
10319 - lodash.get "^4.4.2"
10320 - lolex "^2.2.0"
10321 - nise "^1.2.0"
10322 - supports-color "^5.1.0"
10323 - type-detect "^4.0.5"
10324 -
8460 sisteransi@^1.0.5:
8461 version "1.0.5"
8462 resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
@@ -10337,15 +8472,6 @@ slash@^4.0.0:
8472 resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7"
8473 integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==
8474
10340 -slice-ansi@^2.1.0:
10341 - version "2.1.0"
10342 - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636"
10343 - integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==
10344 - dependencies:
10345 - ansi-styles "^3.2.0"
10346 - astral-regex "^1.0.0"
10347 - is-fullwidth-code-point "^2.0.0"
10348 -
8475 source-map-js@^1.0.2:
8476 version "1.0.2"
8477 resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
@@ -10359,7 +8485,7 @@ source-map-support@0.5.13:
8485 buffer-from "^1.0.0"
8486 source-map "^0.6.0"
8487
10362 -source-map-support@^0.5.16, source-map-support@~0.5.20:
8488 +source-map-support@^0.5.16:
8489 version "0.5.21"
8490 resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
8491 integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
@@ -10435,21 +8561,6 @@ sprintf-js@~1.0.2:
8561 resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
8562 integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==
8563
10438 -sshpk@^1.7.0:
10439 - version "1.17.0"
10440 - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5"
10441 - integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==
10442 - dependencies:
10443 - asn1 "~0.2.3"
10444 - assert-plus "^1.0.0"
10445 - bcrypt-pbkdf "^1.0.0"
10446 - dashdash "^1.12.0"
10447 - ecc-jsbn "~0.1.1"
10448 - getpass "^0.1.1"
10449 - jsbn "~0.1.0"
10450 - safer-buffer "^2.0.2"
10451 - tweetnacl "~0.14.0"
10452 -
8564 stack-utils@^2.0.3:
8565 version "2.0.5"
8566 resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5"
@@ -10469,31 +8580,6 @@ stop-iteration-iterator@^1.0.0:
8580 dependencies:
8581 internal-slot "^1.0.4"
8582
10472 -stream-browserify@^3.0.0:
10473 - version "3.0.0"
10474 - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f"
10475 - integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==
10476 - dependencies:
10477 - inherits "~2.0.4"
10478 - readable-stream "^3.5.0"
10479 -
10480 -stream-http@^3.2.0:
10481 - version "3.2.0"
10482 - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-3.2.0.tgz#1872dfcf24cb15752677e40e5c3f9cc1926028b5"
10483 - integrity sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==
10484 - dependencies:
10485 - builtin-status-codes "^3.0.0"
10486 - inherits "^2.0.4"
10487 - readable-stream "^3.6.0"
10488 - xtend "^4.0.2"
10489 -
10490 -stream-meter@^1.0.4:
10491 - version "1.0.4"
10492 - resolved "https://registry.yarnpkg.com/stream-meter/-/stream-meter-1.0.4.tgz#52af95aa5ea760a2491716704dbff90f73afdd1d"
10493 - integrity sha512-4sOEtrbgFotXwnEuzzsQBYEV1elAeFSO8rSGeTwabuX1RRn/kEq9JVH7I0MRBhKVRR0sJkr0M0QCH7yOLf9fhQ==
10494 - dependencies:
10495 - readable-stream "^2.1.4"
10496 -
8583 streamsearch@^1.1.0:
8584 version "1.1.0"
8585 resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764"
@@ -10507,7 +8593,7 @@ string-length@^4.0.1:
8593 char-regex "^1.0.2"
8594 strip-ansi "^6.0.0"
8595
10510 -"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
8596 +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
8597 version "4.2.3"
8598 resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
8599 integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
@@ -10516,24 +8602,6 @@ string-length@^4.0.1:
8602 is-fullwidth-code-point "^3.0.0"
8603 strip-ansi "^6.0.1"
8604
10519 -string-width@^1.0.1:
10520 - version "1.0.2"
10521 - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
10522 - integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==
10523 - dependencies:
10524 - code-point-at "^1.0.0"
10525 - is-fullwidth-code-point "^1.0.0"
10526 - strip-ansi "^3.0.0"
10527 -
10528 -string-width@^3.0.0:
10529 - version "3.1.0"
10530 - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
10531 - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==
10532 - dependencies:
10533 - emoji-regex "^7.0.1"
10534 - is-fullwidth-code-point "^2.0.0"
10535 - strip-ansi "^5.1.0"
10536 -
8605 string-width@^5.0.1, string-width@^5.1.2:
8606 version "5.1.2"
8607 resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794"
@@ -10611,20 +8679,6 @@ string.prototype.trimstart@^1.0.7:
8679 define-properties "^1.2.0"
8680 es-abstract "^1.22.1"
8681
10614 -string_decoder@^1.1.1, string_decoder@^1.3.0:
10615 - version "1.3.0"
10616 - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
10617 - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
10618 - dependencies:
10619 - safe-buffer "~5.2.0"
10620 -
10621 -string_decoder@~1.1.1:
10622 - version "1.1.1"
10623 - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
10624 - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
10625 - dependencies:
10626 - safe-buffer "~5.1.0"
10627 -
8682 "strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1:
8683 version "6.0.1"
8684 resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
@@ -10632,20 +8686,6 @@ string_decoder@~1.1.1:
8686 dependencies:
8687 ansi-regex "^5.0.1"
8688
10635 -strip-ansi@^3.0.0, strip-ansi@^3.0.1:
10636 - version "3.0.1"
10637 - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
10638 - integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==
10639 - dependencies:
10640 - ansi-regex "^2.0.0"
10641 -
10642 -strip-ansi@^5.1.0, strip-ansi@^5.2.0:
10643 - version "5.2.0"
10644 - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
10645 - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
10646 - dependencies:
10647 - ansi-regex "^4.1.0"
10648 -
8689 strip-ansi@^7.0.1:
8690 version "7.1.0"
8691 resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45"
@@ -10673,16 +8713,11 @@ strip-final-newline@^3.0.0:
8713 resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd"
8714 integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==
8715
10676 -strip-json-comments@^3.0.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
8716 +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
8717 version "3.1.1"
8718 resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
8719 integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
8720
10681 -strip-json-comments@~2.0.1:
10682 - version "2.0.1"
10683 - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
10684 - integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==
10685 -
8721 styled-jsx@5.1.1:
8722 version "5.1.1"
8723 resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.1.tgz#839a1c3aaacc4e735fed0781b8619ea5d0009d1f"
@@ -10703,14 +8738,7 @@ sucrase@^3.32.0:
8738 pirates "^4.0.1"
8739 ts-interface-checker "^0.1.9"
8740
10706 -supports-color@3.1.2:
10707 - version "3.1.2"
10708 - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5"
10709 - integrity sha512-F8dvPrZJtNzvDRX26eNXT4a7AecAvTGljmmnI39xEgSpbHKhQ7N0dO/NTxUExd0wuLHp4zbwYY7lvHq0aKpwrA==
10710 - dependencies:
10711 - has-flag "^1.0.0"
10712 -
10713 -supports-color@^5.1.0, supports-color@^5.3.0:
8741 +supports-color@^5.3.0:
8742 version "5.5.0"
8743 resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
8744 integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
@@ -10757,16 +8785,6 @@ synckit@^0.8.5:
8785 "@pkgr/utils" "^2.3.1"
8786 tslib "^2.5.0"
8787
10760 -table@^5.2.3:
10761 - version "5.4.6"
10762 - resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e"
10763 - integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==
10764 - dependencies:
10765 - ajv "^6.10.2"
10766 - lodash "^4.17.14"
10767 - slice-ansi "^2.1.0"
10768 - string-width "^3.0.0"
10769 -
8788 tailwindcss@^3.2.4:
8789 version "3.3.2"
8790 resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.3.2.tgz#2f9e35d715fdf0bbf674d90147a0684d7054a2d3"
@@ -10796,55 +8814,11 @@ tailwindcss@^3.2.4:
8814 resolve "^1.22.2"
8815 sucrase "^3.32.0"
8816
10799 -tapable@^2.1.1, tapable@^2.2.0:
8817 +tapable@^2.2.0:
8818 version "2.2.1"
8819 resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0"
8820 integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==
8821
10804 -tar-fs@^2.0.0:
10805 - version "2.1.1"
10806 - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784"
10807 - integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==
10808 - dependencies:
10809 - chownr "^1.1.1"
10810 - mkdirp-classic "^0.5.2"
10811 - pump "^3.0.0"
10812 - tar-stream "^2.1.4"
10813 -
10814 -tar-stream@^2.1.4:
10815 - version "2.2.0"
10816 - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287"
10817 - integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==
10818 - dependencies:
10819 - bl "^4.0.3"
10820 - end-of-stream "^1.4.1"
10821 - fs-constants "^1.0.0"
10822 - inherits "^2.0.3"
10823 - readable-stream "^3.1.1"
10824 -
10825 -temp-dir@^2.0.0:
10826 - version "2.0.0"
10827 - resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e"
10828 - integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==
10829 -
10830 -tempfile@^3.0.0:
10831 - version "3.0.0"
10832 - resolved "https://registry.yarnpkg.com/tempfile/-/tempfile-3.0.0.tgz#5376a3492de7c54150d0cc0612c3f00e2cdaf76c"
10833 - integrity sha512-uNFCg478XovRi85iD42egu+eSFUmmka750Jy7L5tfHI5hQKKtbPnxaSaXAbBqCDYrw3wx4tXjKwci4/QmsZJxw==
10834 - dependencies:
10835 - temp-dir "^2.0.0"
10836 - uuid "^3.3.2"
10837 -
10838 -tempy@^0.5.0:
10839 - version "0.5.0"
10840 - resolved "https://registry.yarnpkg.com/tempy/-/tempy-0.5.0.tgz#2785c89df39fcc4d1714fc554813225e1581d70b"
10841 - integrity sha512-VEY96x7gbIRfsxqsafy2l5yVxxp3PhwAGoWMyC2D2Zt5DmEv+2tGiPOrquNRpf21hhGnKLVEsuqleqiZmKG/qw==
10842 - dependencies:
10843 - is-stream "^2.0.0"
10844 - temp-dir "^2.0.0"
10845 - type-fest "^0.12.0"
10846 - unique-string "^2.0.0"
10847 -
8822 terminal-link@^2.0.0:
8823 version "2.1.1"
8824 resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994"
@@ -10853,27 +8827,6 @@ terminal-link@^2.0.0:
8827 ansi-escapes "^4.2.1"
8828 supports-hyperlinks "^2.0.0"
8829
10856 -terser-webpack-plugin@^5.3.7:
10857 - version "5.3.9"
10858 - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz#832536999c51b46d468067f9e37662a3b96adfe1"
10859 - integrity sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==
10860 - dependencies:
10861 - "@jridgewell/trace-mapping" "^0.3.17"
10862 - jest-worker "^27.4.5"
10863 - schema-utils "^3.1.1"
10864 - serialize-javascript "^6.0.1"
10865 - terser "^5.16.8"
10866 -
10867 -terser@^5.16.8:
10868 - version "5.17.7"
10869 - resolved "https://registry.yarnpkg.com/terser/-/terser-5.17.7.tgz#2a8b134826fe179b711969fd9d9a0c2479b2a8c3"
10870 - integrity sha512-/bi0Zm2C6VAexlGgLlVxA0P2lru/sdLyfCVaRMfKVo9nWxbmz7f/sD8VPybPeSUJaJcwmCJis9pBIhcVcG1QcQ==
10871 - dependencies:
10872 - "@jridgewell/source-map" "^0.3.3"
10873 - acorn "^8.8.2"
10874 - commander "^2.20.0"
10875 - source-map-support "~0.5.20"
10876 -
8830 test-exclude@^6.0.0:
8831 version "6.0.0"
8832 resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e"
@@ -10902,35 +8855,11 @@ thenify-all@^1.0.0:
8855 dependencies:
8856 any-promise "^1.0.0"
8857
10905 -throttleit@^1.0.0:
10906 - version "1.0.0"
10907 - resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c"
10908 - integrity sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g==
10909 -
10910 -through@^2.3.6:
10911 - version "2.3.8"
10912 - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
10913 - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==
10914 -
10915 -timers-browserify@^2.0.12:
10916 - version "2.0.12"
10917 - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee"
10918 - integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==
10919 - dependencies:
10920 - setimmediate "^1.0.4"
10921 -
8858 titleize@^3.0.0:
8859 version "3.0.0"
8860 resolved "https://registry.yarnpkg.com/titleize/-/titleize-3.0.0.tgz#71c12eb7fdd2558aa8a44b0be83b8a76694acd53"
8861 integrity sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==
8862
10927 -tmp@^0.0.33:
10928 - version "0.0.33"
10929 - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
10930 - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==
10931 - dependencies:
10932 - os-tmpdir "~1.0.2"
10933 -
8863 tmpl@1.0.5:
8864 version "1.0.5"
8865 resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc"
@@ -10968,14 +8897,6 @@ tough-cookie@^4.1.2:
8897 universalify "^0.2.0"
8898 url-parse "^1.5.3"
8899
10971 -tough-cookie@~2.5.0:
10972 - version "2.5.0"
10973 - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
10974 - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
10975 - dependencies:
10976 - psl "^1.1.28"
10977 - punycode "^2.1.1"
10978 -
8900 tr46@^3.0.0:
8901 version "3.0.0"
8902 resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9"
@@ -11067,7 +8988,7 @@ tsconfig-paths@^3.14.2:
8988 minimist "^1.2.6"
8989 strip-bom "^3.0.0"
8990
11070 -tslib@^1.8.1, tslib@^1.9.0:
8991 +tslib@^1.8.1:
8992 version "1.14.1"
8993 resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
8994 integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
@@ -11084,23 +9005,6 @@ tsutils@^3.21.0:
9005 dependencies:
9006 tslib "^1.8.1"
9007
11087 -tty-browserify@^0.0.1:
11088 - version "0.0.1"
11089 - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811"
11090 - integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==
11091 -
11092 -tunnel-agent@^0.6.0:
11093 - version "0.6.0"
11094 - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
11095 - integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==
11096 - dependencies:
11097 - safe-buffer "^5.0.1"
11098 -
11099 -tweetnacl@^0.14.3, tweetnacl@~0.14.0:
11100 - version "0.14.5"
11101 - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
11102 - integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==
11103 -
9008 type-check@^0.4.0, type-check@~0.4.0:
9009 version "0.4.0"
9010 resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
@@ -11115,16 +9019,11 @@ type-check@~0.3.2:
9019 dependencies:
9020 prelude-ls "~1.1.2"
9021
11118 -type-detect@4.0.8, type-detect@^4.0.5:
9022 +type-detect@4.0.8:
9023 version "4.0.8"
9024 resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
9025 integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
9026
11123 -type-fest@^0.12.0:
11124 - version "0.12.0"
11125 - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.12.0.tgz#f57a27ab81c68d136a51fd71467eff94157fa1ee"
11126 - integrity sha512-53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg==
11127 -
9027 type-fest@^0.20.2:
9028 version "0.20.2"
9029 resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
@@ -11135,16 +9034,6 @@ type-fest@^0.21.3:
9034 resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
9035 integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
9036
11138 -type-fest@^0.8.1:
11139 - version "0.8.1"
11140 - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
11141 - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
11142 -
11143 -type-fest@^2.14.0:
11144 - version "2.19.0"
11145 - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b"
11146 - integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==
11147 -
9037 typed-array-buffer@^1.0.0:
9038 version "1.0.0"
9039 resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60"
@@ -11189,11 +9078,6 @@ typescript@^5.1.0:
9078 resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.3.tgz#8d84219244a6b40b6fb2b33cc1c062f715b9e826"
9079 integrity sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==
9080
11192 -uid2@0.0.3:
11193 - version "0.0.3"
11194 - resolved "https://registry.yarnpkg.com/uid2/-/uid2-0.0.3.tgz#483126e11774df2f71b8b639dcd799c376162b82"
11195 - integrity sha512-5gSP1liv10Gjp8cMEnFd6shzkL/D6W1uhXSFNCxDC+YI8+L8wkCYCbJ7n77Ezb4wE/xzMogecE+DtamEe9PZjg==
11196 -
9081 unbox-primitive@^1.0.2:
9082 version "1.0.2"
9083 resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e"
@@ -11227,27 +9111,6 @@ unicode-property-aliases-ecmascript@^2.0.0:
9111 resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd"
9112 integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==
9113
11230 -unique-string@^2.0.0:
11231 - version "2.0.0"
11232 - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d"
11233 - integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==
11234 - dependencies:
11235 - crypto-random-string "^2.0.0"
11236 -
11237 -unique-temp-dir@^1.0.0:
11238 - version "1.0.0"
11239 - resolved "https://registry.yarnpkg.com/unique-temp-dir/-/unique-temp-dir-1.0.0.tgz#6dce95b2681ca003eebfb304a415f9cbabcc5385"
11240 - integrity sha512-tE68ki2FndoVdPioyiz8mYaJeX3xU/9lk4dml7KlLKEkWLtDGAYeg5LGjE2dMkzB8d6R3HbcKTn/I14nukP2dw==
11241 - dependencies:
11242 - mkdirp "^0.5.1"
11243 - os-tmpdir "^1.0.1"
11244 - uid2 "0.0.3"
11245 -
11246 -universalify@^0.1.0:
11247 - version "0.1.2"
11248 - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
11249 - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
11250 -
9114 universalify@^0.2.0:
9115 version "0.2.0"
9116 resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0"
@@ -11281,45 +9144,16 @@ url-parse@^1.5.3:
9144 querystringify "^2.1.1"
9145 requires-port "^1.0.0"
9146
11284 -url@^0.11.0:
11285 - version "0.11.0"
11286 - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
11287 - integrity sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==
11288 - dependencies:
11289 - punycode "1.3.2"
11290 - querystring "0.2.0"
11291 -
11292 -util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1:
9147 +util-deprecate@^1.0.2:
9148 version "1.0.2"
9149 resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
9150 integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
9151
11297 -util@^0.12.0, util@^0.12.4:
11298 - version "0.12.5"
11299 - resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc"
11300 - integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==
11301 - dependencies:
11302 - inherits "^2.0.3"
11303 - is-arguments "^1.0.4"
11304 - is-generator-function "^1.0.7"
11305 - is-typed-array "^1.1.3"
11306 - which-typed-array "^1.1.2"
11307 -
11308 -uuid@^3.3.2:
11309 - version "3.4.0"
11310 - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
11311 - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
11312 -
9152 v8-compile-cache-lib@^3.0.1:
9153 version "3.0.1"
9154 resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf"
9155 integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==
9156
11318 -v8-compile-cache@^2.0.3:
11319 - version "2.3.0"
11320 - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
11321 - integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
11322 -
9157 v8-to-istanbul@^9.0.1:
9158 version "9.0.1"
9159 resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz#b6f994b0b5d4ef255e17a0d17dc444a9f5132fa4"
@@ -11329,20 +9163,6 @@ v8-to-istanbul@^9.0.1:
9163 "@types/istanbul-lib-coverage" "^2.0.1"
9164 convert-source-map "^1.6.0"
9165
11332 -verror@1.10.0:
11333 - version "1.10.0"
11334 - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
11335 - integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==
11336 - dependencies:
11337 - assert-plus "^1.0.0"
11338 - core-util-is "1.0.2"
11339 - extsprintf "^1.2.0"
11340 -
11341 -vm-browserify@^1.1.2:
11342 - version "1.1.2"
11343 - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"
11344 - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==
11345 -
9166 w3c-hr-time@^1.0.2:
9167 version "1.0.2"
9168 resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd"
@@ -11371,7 +9191,7 @@ walker@^1.0.8:
9191 dependencies:
9192 makeerror "1.0.12"
9193
11374 -watchpack@2.4.0, watchpack@^2.4.0:
9194 +watchpack@2.4.0:
9195 version "2.4.0"
9196 resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d"
9197 integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==
@@ -11384,67 +9204,6 @@ webidl-conversions@^7.0.0:
9204 resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a"
9205 integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==
9206
11387 -webpack-cli@^4.10.0:
11388 - version "4.10.0"
11389 - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.10.0.tgz#37c1d69c8d85214c5a65e589378f53aec64dab31"
11390 - integrity sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==
11391 - dependencies:
11392 - "@discoveryjs/json-ext" "^0.5.0"
11393 - "@webpack-cli/configtest" "^1.2.0"
11394 - "@webpack-cli/info" "^1.5.0"
11395 - "@webpack-cli/serve" "^1.7.0"
11396 - colorette "^2.0.14"
11397 - commander "^7.0.0"
11398 - cross-spawn "^7.0.3"
11399 - fastest-levenshtein "^1.0.12"
11400 - import-local "^3.0.2"
11401 - interpret "^2.2.0"
11402 - rechoir "^0.7.0"
11403 - webpack-merge "^5.7.3"
11404 -
11405 -webpack-merge@^5.7.3:
11406 - version "5.9.0"
11407 - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.9.0.tgz#dc160a1c4cf512ceca515cc231669e9ddb133826"
11408 - integrity sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg==
11409 - dependencies:
11410 - clone-deep "^4.0.1"
11411 - wildcard "^2.0.0"
11412 -
11413 -webpack-sources@^3.2.3:
11414 - version "3.2.3"
11415 - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde"
11416 - integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==
11417 -
11418 -webpack@^5.74.0:
11419 - version "5.85.0"
11420 - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.85.0.tgz#c14a6a3a91f84d67c450225661fda8da36bc7f49"
11421 - integrity sha512-7gazTiYqwo5OSqwH1tigLDL2r3qDeP2dOKYgd+LlXpsUMqDTklg6tOghexqky0/+6QY38kb/R/uRPUleuL43zg==
11422 - dependencies:
11423 - "@types/eslint-scope" "^3.7.3"
11424 - "@types/estree" "^1.0.0"
11425 - "@webassemblyjs/ast" "^1.11.5"
11426 - "@webassemblyjs/wasm-edit" "^1.11.5"
11427 - "@webassemblyjs/wasm-parser" "^1.11.5"
11428 - acorn "^8.7.1"
11429 - acorn-import-assertions "^1.9.0"
11430 - browserslist "^4.14.5"
11431 - chrome-trace-event "^1.0.2"
11432 - enhanced-resolve "^5.14.1"
11433 - es-module-lexer "^1.2.1"
11434 - eslint-scope "5.1.1"
11435 - events "^3.2.0"
11436 - glob-to-regexp "^0.4.1"
11437 - graceful-fs "^4.2.9"
11438 - json-parse-even-better-errors "^2.3.1"
11439 - loader-runner "^4.2.0"
11440 - mime-types "^2.1.27"
11441 - neo-async "^2.6.2"
11442 - schema-utils "^3.1.2"
11443 - tapable "^2.1.1"
11444 - terser-webpack-plugin "^5.3.7"
11445 - watchpack "^2.4.0"
11446 - webpack-sources "^3.2.3"
11447 -
9207 whatwg-encoding@^2.0.0:
9208 version "2.0.0"
9209 resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53"
@@ -11517,11 +9276,6 @@ which-module@^2.0.0:
9276 resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
9277 integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==
9278
11520 -which-pm-runs@^1.0.0:
11521 - version "1.1.0"
11522 - resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.1.0.tgz#35ccf7b1a0fce87bd8b92a478c9d045785d3bf35"
11523 - integrity sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==
11524 -
9279 which-typed-array@^1.1.11, which-typed-array@^1.1.13:
9280 version "1.1.13"
9281 resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36"
@@ -11533,7 +9287,7 @@ which-typed-array@^1.1.11, which-typed-array@^1.1.13:
9287 gopd "^1.0.1"
9288 has-tostringtag "^1.0.0"
9289
11536 -which-typed-array@^1.1.2, which-typed-array@^1.1.9:
9290 +which-typed-array@^1.1.9:
9291 version "1.1.9"
9292 resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6"
9293 integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==
@@ -11545,13 +9299,6 @@ which-typed-array@^1.1.2, which-typed-array@^1.1.9:
9299 has-tostringtag "^1.0.0"
9300 is-typed-array "^1.1.10"
9301
11548 -which@^1.2.9:
11549 - version "1.3.1"
11550 - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
11551 - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
11552 - dependencies:
11553 - isexe "^2.0.0"
11554 -
9302 which@^2.0.1:
9303 version "2.0.2"
9304 resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
@@ -11559,18 +9306,6 @@ which@^2.0.1:
9306 dependencies:
9307 isexe "^2.0.0"
9308
11562 -wide-align@^1.1.0:
11563 - version "1.1.5"
11564 - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3"
11565 - integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==
11566 - dependencies:
11567 - string-width "^1.0.2 || 2 || 3 || 4"
11568 -
11569 -wildcard@^2.0.0:
11570 - version "2.0.1"
11571 - resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67"
11572 - integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==
11573 -
9309 word-wrap@^1.2.3, word-wrap@~1.2.3:
9310 version "1.2.3"
9311 resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
@@ -11621,13 +9356,6 @@ write-file-atomic@^4.0.1, write-file-atomic@^4.0.2:
9356 imurmurhash "^0.1.4"
9357 signal-exit "^3.0.7"
9358
11624 -write@1.0.3:
11625 - version "1.0.3"
11626 - resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3"
11627 - integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==
11628 - dependencies:
11629 - mkdirp "^0.5.1"
11630 -
9359 ws@^8.13.0:
9360 version "8.13.0"
9361 resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0"
@@ -11648,11 +9376,6 @@ xmlchars@^2.2.0:
9376 resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb"
9377 integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==
9378
11651 -xtend@^4.0.2:
11652 - version "4.0.2"
11653 - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
11654 - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
11655 -
9379 y18n@^4.0.0:
9380 version "4.0.3"
9381 resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf"