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"