Add node modules and compiled JavaScript from main (#57)

Co-authored-by: Oliver King <oking3@uncc.edu>
This commit is contained in:
github-actions[bot] 2022-06-21 12:18:30 -04:00 committed by GitHub
parent d893f27da9
commit 7f7e5ba5ea
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6750 changed files with 1745644 additions and 10860 deletions

21
node_modules/jest/LICENSE generated vendored Normal file
View file

@ -0,0 +1,21 @@
MIT License
Copyright (c) Facebook, Inc. and its affiliates.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

11
node_modules/jest/README.md generated vendored Normal file
View file

@ -0,0 +1,11 @@
# Jest
🃏 Delightful JavaScript Testing
- **👩🏻‍💻 Developer Ready**: Complete and ready to set-up JavaScript testing solution. Works out of the box for any React project.
- **🏃🏽 Instant Feedback**: Failed tests run first. Fast interactive mode can switch between running all tests or only test files related to changed files.
- **📸 Snapshot Testing**: Jest can [capture snapshots](https://jestjs.io/docs/snapshot-testing.html) of React trees or other serializable values to simplify UI testing.
Read More: https://jestjs.io/

8
node_modules/jest/build/jest.d.ts generated vendored Normal file
View file

@ -0,0 +1,8 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
export { SearchSource, TestScheduler, TestWatcher, getVersion, runCLI, } from '@jest/core';
export { run } from 'jest-cli';

61
node_modules/jest/build/jest.js generated vendored Normal file
View file

@ -0,0 +1,61 @@
'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
Object.defineProperty(exports, 'SearchSource', {
enumerable: true,
get: function () {
return _core().SearchSource;
}
});
Object.defineProperty(exports, 'TestScheduler', {
enumerable: true,
get: function () {
return _core().TestScheduler;
}
});
Object.defineProperty(exports, 'TestWatcher', {
enumerable: true,
get: function () {
return _core().TestWatcher;
}
});
Object.defineProperty(exports, 'getVersion', {
enumerable: true,
get: function () {
return _core().getVersion;
}
});
Object.defineProperty(exports, 'runCLI', {
enumerable: true,
get: function () {
return _core().runCLI;
}
});
Object.defineProperty(exports, 'run', {
enumerable: true,
get: function () {
return _jestCli().run;
}
});
function _core() {
const data = require('@jest/core');
_core = function () {
return data;
};
return data;
}
function _jestCli() {
const data = require('jest-cli');
_jestCli = function () {
return data;
};
return data;
}

21
node_modules/jest/node_modules/jest-cli/LICENSE generated vendored Normal file
View file

@ -0,0 +1,21 @@
MIT License
Copyright (c) Facebook, Inc. and its affiliates.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

11
node_modules/jest/node_modules/jest-cli/README.md generated vendored Normal file
View file

@ -0,0 +1,11 @@
# Jest
🃏 Delightful JavaScript Testing
- **👩🏻‍💻 Developer Ready**: Complete and ready to set-up JavaScript testing solution. Works out of the box for any React project.
- **🏃🏽 Instant Feedback**: Failed tests run first. Fast interactive mode can switch between running all tests or only test files related to changed files.
- **📸 Snapshot Testing**: Jest can [capture snapshots](https://jestjs.io/docs/snapshot-testing.html) of React trees or other serializable values to simplify UI testing.
Read More: https://jestjs.io/

View file

@ -0,0 +1,502 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
import type { Config } from '@jest/types';
export declare function check(argv: Config.Argv): true;
export declare const usage = "Usage: $0 [--config=<pathToConfigFile>] [TestPathPattern]";
export declare const docs = "Documentation: https://jestjs.io/";
export declare const options: {
readonly all: {
readonly default: undefined;
readonly description: string;
readonly type: "boolean";
};
readonly automock: {
readonly default: undefined;
readonly description: "Automock all files by default.";
readonly type: "boolean";
};
readonly bail: {
readonly alias: "b";
readonly default: undefined;
readonly description: "Exit the test suite immediately after `n` number of failing tests.";
readonly type: "boolean";
};
readonly browser: {
readonly default: undefined;
readonly description: string;
readonly type: "boolean";
};
readonly cache: {
readonly default: undefined;
readonly description: string;
readonly type: "boolean";
};
readonly cacheDirectory: {
readonly description: string;
readonly type: "string";
};
readonly changedFilesWithAncestor: {
readonly default: undefined;
readonly description: string;
readonly type: "boolean";
};
readonly changedSince: {
readonly description: string;
readonly nargs: 1;
readonly type: "string";
};
readonly ci: {
readonly default: boolean;
readonly description: string;
readonly type: "boolean";
};
readonly clearCache: {
readonly default: undefined;
readonly description: string;
readonly type: "boolean";
};
readonly clearMocks: {
readonly default: undefined;
readonly description: string;
readonly type: "boolean";
};
readonly collectCoverage: {
readonly default: undefined;
readonly description: "Alias for --coverage.";
readonly type: "boolean";
};
readonly collectCoverageFrom: {
readonly description: string;
readonly type: "string";
};
readonly collectCoverageOnlyFrom: {
readonly description: "Explicit list of paths coverage will be restricted to.";
readonly string: true;
readonly type: "array";
};
readonly color: {
readonly default: undefined;
readonly description: string;
readonly type: "boolean";
};
readonly colors: {
readonly default: undefined;
readonly description: "Alias for `--color`.";
readonly type: "boolean";
};
readonly config: {
readonly alias: "c";
readonly description: string;
readonly type: "string";
};
readonly coverage: {
readonly default: undefined;
readonly description: string;
readonly type: "boolean";
};
readonly coverageDirectory: {
readonly description: "The directory where Jest should output its coverage files.";
readonly type: "string";
};
readonly coveragePathIgnorePatterns: {
readonly description: string;
readonly string: true;
readonly type: "array";
};
readonly coverageProvider: {
readonly choices: readonly ["babel", "v8"];
readonly description: "Select between Babel and V8 to collect coverage";
};
readonly coverageReporters: {
readonly description: string;
readonly string: true;
readonly type: "array";
};
readonly coverageThreshold: {
readonly description: string;
readonly type: "string";
};
readonly debug: {
readonly default: undefined;
readonly description: "Print debugging info about your jest config.";
readonly type: "boolean";
};
readonly detectLeaks: {
readonly default: false;
readonly description: string;
readonly type: "boolean";
};
readonly detectOpenHandles: {
readonly default: false;
readonly description: string;
readonly type: "boolean";
};
readonly env: {
readonly description: string;
readonly type: "string";
};
readonly errorOnDeprecated: {
readonly default: false;
readonly description: "Make calling deprecated APIs throw helpful error messages.";
readonly type: "boolean";
};
readonly expand: {
readonly alias: "e";
readonly default: undefined;
readonly description: "Use this flag to show full diffs instead of a patch.";
readonly type: "boolean";
};
readonly filter: {
readonly default: undefined;
readonly description: string;
readonly type: "string";
};
readonly findRelatedTests: {
readonly default: undefined;
readonly description: string;
readonly type: "boolean";
};
readonly forceExit: {
readonly default: undefined;
readonly description: string;
readonly type: "boolean";
};
readonly globalSetup: {
readonly description: "The path to a module that runs before All Tests.";
readonly type: "string";
};
readonly globalTeardown: {
readonly description: "The path to a module that runs after All Tests.";
readonly type: "string";
};
readonly globals: {
readonly description: string;
readonly type: "string";
};
readonly haste: {
readonly description: "A JSON string with map of variables for the haste module system";
readonly type: "string";
};
readonly init: {
readonly description: "Generate a basic configuration file";
readonly type: "boolean";
};
readonly json: {
readonly default: undefined;
readonly description: string;
readonly type: "boolean";
};
readonly lastCommit: {
readonly default: undefined;
readonly description: string;
readonly type: "boolean";
};
readonly listTests: {
readonly default: false;
readonly description: string;
readonly type: "boolean";
};
readonly logHeapUsage: {
readonly default: undefined;
readonly description: string;
readonly type: "boolean";
};
readonly mapCoverage: {
readonly default: undefined;
readonly description: string;
readonly type: "boolean";
};
readonly maxConcurrency: {
readonly default: 5;
readonly description: string;
readonly type: "number";
};
readonly maxWorkers: {
readonly alias: "w";
readonly description: string;
readonly type: "string";
};
readonly moduleDirectories: {
readonly description: string;
readonly string: true;
readonly type: "array";
};
readonly moduleFileExtensions: {
readonly description: string;
readonly string: true;
readonly type: "array";
};
readonly moduleNameMapper: {
readonly description: string;
readonly type: "string";
};
readonly modulePathIgnorePatterns: {
readonly description: string;
readonly string: true;
readonly type: "array";
};
readonly modulePaths: {
readonly description: string;
readonly string: true;
readonly type: "array";
};
readonly noStackTrace: {
readonly default: undefined;
readonly description: "Disables stack trace in test results output";
readonly type: "boolean";
};
readonly notify: {
readonly default: undefined;
readonly description: "Activates notifications for test results.";
readonly type: "boolean";
};
readonly notifyMode: {
readonly default: "failure-change";
readonly description: "Specifies when notifications will appear for test results.";
readonly type: "string";
};
readonly onlyChanged: {
readonly alias: "o";
readonly default: undefined;
readonly description: string;
readonly type: "boolean";
};
readonly onlyFailures: {
readonly alias: "f";
readonly default: undefined;
readonly description: "Run tests that failed in the previous execution.";
readonly type: "boolean";
};
readonly outputFile: {
readonly description: string;
readonly type: "string";
};
readonly passWithNoTests: {
readonly default: false;
readonly description: "Will not fail if no tests are found (for example while using `--testPathPattern`.)";
readonly type: "boolean";
};
readonly preset: {
readonly description: "A preset that is used as a base for Jest's configuration.";
readonly type: "string";
};
readonly prettierPath: {
readonly default: undefined;
readonly description: "The path to the \"prettier\" module used for inline snapshots.";
readonly type: "string";
};
readonly projects: {
readonly description: string;
readonly string: true;
readonly type: "array";
};
readonly reporters: {
readonly description: "A list of custom reporters for the test suite.";
readonly string: true;
readonly type: "array";
};
readonly resetMocks: {
readonly default: undefined;
readonly description: string;
readonly type: "boolean";
};
readonly resetModules: {
readonly default: undefined;
readonly description: string;
readonly type: "boolean";
};
readonly resolver: {
readonly description: "A JSON string which allows the use of a custom resolver.";
readonly type: "string";
};
readonly restoreMocks: {
readonly default: undefined;
readonly description: string;
readonly type: "boolean";
};
readonly rootDir: {
readonly description: string;
readonly type: "string";
};
readonly roots: {
readonly description: string;
readonly string: true;
readonly type: "array";
};
readonly runInBand: {
readonly alias: "i";
readonly default: undefined;
readonly description: string;
readonly type: "boolean";
};
readonly runTestsByPath: {
readonly default: false;
readonly description: string;
readonly type: "boolean";
};
readonly runner: {
readonly description: "Allows to use a custom runner instead of Jest's default test runner.";
readonly type: "string";
};
readonly selectProjects: {
readonly description: string;
readonly string: true;
readonly type: "array";
};
readonly setupFiles: {
readonly description: string;
readonly string: true;
readonly type: "array";
};
readonly setupFilesAfterEnv: {
readonly description: string;
readonly string: true;
readonly type: "array";
};
readonly showConfig: {
readonly default: undefined;
readonly description: "Print your jest config and then exits.";
readonly type: "boolean";
};
readonly silent: {
readonly default: undefined;
readonly description: "Prevent tests from printing messages through the console.";
readonly type: "boolean";
};
readonly skipFilter: {
readonly default: undefined;
readonly description: string;
readonly type: "boolean";
};
readonly snapshotSerializers: {
readonly description: string;
readonly string: true;
readonly type: "array";
};
readonly testEnvironment: {
readonly description: "Alias for --env";
readonly type: "string";
};
readonly testEnvironmentOptions: {
readonly description: string;
readonly type: "string";
};
readonly testFailureExitCode: {
readonly description: "Exit code of `jest` command if the test run failed";
readonly type: "string";
};
readonly testLocationInResults: {
readonly default: false;
readonly description: "Add `location` information to the test results";
readonly type: "boolean";
};
readonly testMatch: {
readonly description: "The glob patterns Jest uses to detect test files.";
readonly string: true;
readonly type: "array";
};
readonly testNamePattern: {
readonly alias: "t";
readonly description: "Run only tests with a name that matches the regex pattern.";
readonly type: "string";
};
readonly testPathIgnorePatterns: {
readonly description: string;
readonly string: true;
readonly type: "array";
};
readonly testPathPattern: {
readonly description: string;
readonly string: true;
readonly type: "array";
};
readonly testRegex: {
readonly description: "A string or array of string regexp patterns that Jest uses to detect test files.";
readonly string: true;
readonly type: "array";
};
readonly testResultsProcessor: {
readonly description: string;
readonly type: "string";
};
readonly testRunner: {
readonly description: string;
readonly type: "string";
};
readonly testSequencer: {
readonly description: string;
readonly type: "string";
};
readonly testTimeout: {
readonly description: "This option sets the default timeouts of test cases.";
readonly type: "number";
};
readonly testURL: {
readonly description: "This option sets the URL for the jsdom environment.";
readonly type: "string";
};
readonly timers: {
readonly description: string;
readonly type: "string";
};
readonly transform: {
readonly description: string;
readonly type: "string";
};
readonly transformIgnorePatterns: {
readonly description: string;
readonly string: true;
readonly type: "array";
};
readonly unmockedModulePathPatterns: {
readonly description: string;
readonly string: true;
readonly type: "array";
};
readonly updateSnapshot: {
readonly alias: "u";
readonly default: undefined;
readonly description: string;
readonly type: "boolean";
};
readonly useStderr: {
readonly default: undefined;
readonly description: "Divert all output to stderr.";
readonly type: "boolean";
};
readonly verbose: {
readonly default: undefined;
readonly description: "Display individual test results with the test suite hierarchy.";
readonly type: "boolean";
};
readonly version: {
readonly alias: "v";
readonly default: undefined;
readonly description: "Print the version and exit";
readonly type: "boolean";
};
readonly watch: {
readonly default: undefined;
readonly description: string;
readonly type: "boolean";
};
readonly watchAll: {
readonly default: undefined;
readonly description: string;
readonly type: "boolean";
};
readonly watchPathIgnorePatterns: {
readonly description: string;
readonly string: true;
readonly type: "array";
};
readonly watchman: {
readonly default: undefined;
readonly description: string;
readonly type: "boolean";
};
};

View file

@ -0,0 +1,775 @@
'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
exports.check = check;
exports.options = exports.docs = exports.usage = void 0;
function _jestConfig() {
const data = require('jest-config');
_jestConfig = function () {
return data;
};
return data;
}
function _isCi() {
const data = _interopRequireDefault(require('is-ci'));
_isCi = function () {
return data;
};
return data;
}
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {default: obj};
}
/**
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
function check(argv) {
if (argv.runInBand && argv.hasOwnProperty('maxWorkers')) {
throw new Error(
'Both --runInBand and --maxWorkers were specified, but these two ' +
'options do not make sense together. Which is it?'
);
}
for (const key of [
'onlyChanged',
'lastCommit',
'changedFilesWithAncestor',
'changedSince'
]) {
if (argv[key] && argv.watchAll) {
throw new Error(
`Both --${key} and --watchAll were specified, but these two ` +
'options do not make sense together. Try the --watch option which ' +
'reruns only tests related to changed files.'
);
}
}
if (argv.findRelatedTests && argv._.length === 0) {
throw new Error(
'The --findRelatedTests option requires file paths to be specified.\n' +
'Example usage: jest --findRelatedTests ./src/source.js ' +
'./src/index.js.'
);
}
if (argv.hasOwnProperty('maxWorkers') && argv.maxWorkers === undefined) {
throw new Error(
'The --maxWorkers (-w) option requires a number or string to be specified.\n' +
'Example usage: jest --maxWorkers 2\n' +
'Example usage: jest --maxWorkers 50%\n' +
'Or did you mean --watch?'
);
}
if (argv.selectProjects && argv.selectProjects.length === 0) {
throw new Error(
'The --selectProjects option requires the name of at least one project to be specified.\n' +
'Example usage: jest --selectProjects my-first-project my-second-project'
);
}
if (
argv.config &&
!(0, _jestConfig().isJSONString)(argv.config) &&
!argv.config.match(
new RegExp(
`\\.(${_jestConfig()
.constants.JEST_CONFIG_EXT_ORDER.map(e => e.substring(1))
.join('|')})$`,
'i'
)
)
) {
throw new Error(
`The --config option requires a JSON string literal, or a file path with one of these extensions: ${_jestConfig().constants.JEST_CONFIG_EXT_ORDER.join(
', '
)}.\nExample usage: jest --config ./jest.config.js`
);
}
return true;
}
const usage = 'Usage: $0 [--config=<pathToConfigFile>] [TestPathPattern]';
exports.usage = usage;
const docs = 'Documentation: https://jestjs.io/';
exports.docs = docs;
const options = {
all: {
default: undefined,
description:
'The opposite of `onlyChanged`. If `onlyChanged` is set by ' +
'default, running jest with `--all` will force Jest to run all tests ' +
'instead of running only tests related to changed files.',
type: 'boolean'
},
automock: {
default: undefined,
description: 'Automock all files by default.',
type: 'boolean'
},
bail: {
alias: 'b',
default: undefined,
description:
'Exit the test suite immediately after `n` number of failing tests.',
type: 'boolean'
},
browser: {
default: undefined,
description:
'Respect the "browser" field in package.json ' +
'when resolving modules. Some packages export different versions ' +
'based on whether they are operating in node.js or a browser.',
type: 'boolean'
},
cache: {
default: undefined,
description:
'Whether to use the transform cache. Disable the cache ' +
'using --no-cache.',
type: 'boolean'
},
cacheDirectory: {
description:
'The directory where Jest should store its cached ' +
' dependency information.',
type: 'string'
},
changedFilesWithAncestor: {
default: undefined,
description:
'Runs tests related to the current changes and the changes made in the ' +
'last commit. Behaves similarly to `--onlyChanged`.',
type: 'boolean'
},
changedSince: {
description:
'Runs tests related to the changes since the provided branch. If the ' +
'current branch has diverged from the given branch, then only changes ' +
'made locally will be tested. Behaves similarly to `--onlyChanged`.',
nargs: 1,
type: 'string'
},
ci: {
default: _isCi().default,
description:
'Whether to run Jest in continuous integration (CI) mode. ' +
'This option is on by default in most popular CI environments. It will ' +
'prevent snapshots from being written unless explicitly requested.',
type: 'boolean'
},
clearCache: {
default: undefined,
description:
'Clears the configured Jest cache directory and then exits. ' +
'Default directory can be found by calling jest --showConfig',
type: 'boolean'
},
clearMocks: {
default: undefined,
description:
'Automatically clear mock calls and instances between every ' +
'test. Equivalent to calling jest.clearAllMocks() between each test.',
type: 'boolean'
},
collectCoverage: {
default: undefined,
description: 'Alias for --coverage.',
type: 'boolean'
},
collectCoverageFrom: {
description:
'A glob pattern relative to <rootDir> matching the files that coverage ' +
'info needs to be collected from.',
type: 'string'
},
collectCoverageOnlyFrom: {
description: 'Explicit list of paths coverage will be restricted to.',
string: true,
type: 'array'
},
color: {
default: undefined,
description:
'Forces test results output color highlighting (even if ' +
'stdout is not a TTY). Set to false if you would like to have no colors.',
type: 'boolean'
},
colors: {
default: undefined,
description: 'Alias for `--color`.',
type: 'boolean'
},
config: {
alias: 'c',
description:
'The path to a jest config file specifying how to find ' +
'and execute tests. If no rootDir is set in the config, the directory ' +
'containing the config file is assumed to be the rootDir for the project.' +
'This can also be a JSON encoded value which Jest will use as configuration.',
type: 'string'
},
coverage: {
default: undefined,
description:
'Indicates that test coverage information should be ' +
'collected and reported in the output.',
type: 'boolean'
},
coverageDirectory: {
description: 'The directory where Jest should output its coverage files.',
type: 'string'
},
coveragePathIgnorePatterns: {
description:
'An array of regexp pattern strings that are matched ' +
'against all file paths before executing the test. If the file path' +
'matches any of the patterns, coverage information will be skipped.',
string: true,
type: 'array'
},
coverageProvider: {
choices: ['babel', 'v8'],
description: 'Select between Babel and V8 to collect coverage'
},
coverageReporters: {
description:
'A list of reporter names that Jest uses when writing ' +
'coverage reports. Any istanbul reporter can be used.',
string: true,
type: 'array'
},
coverageThreshold: {
description:
'A JSON string with which will be used to configure ' +
'minimum threshold enforcement for coverage results',
type: 'string'
},
debug: {
default: undefined,
description: 'Print debugging info about your jest config.',
type: 'boolean'
},
detectLeaks: {
default: false,
description:
'**EXPERIMENTAL**: Detect memory leaks in tests. After executing a ' +
'test, it will try to garbage collect the global object used, and fail ' +
'if it was leaked',
type: 'boolean'
},
detectOpenHandles: {
default: false,
description:
'Print out remaining open handles preventing Jest from exiting at the ' +
'end of a test run. Implies `runInBand`.',
type: 'boolean'
},
env: {
description:
'The test environment used for all tests. This can point to ' +
'any file or node module. Examples: `jsdom`, `node` or ' +
'`path/to/my-environment.js`',
type: 'string'
},
errorOnDeprecated: {
default: false,
description: 'Make calling deprecated APIs throw helpful error messages.',
type: 'boolean'
},
expand: {
alias: 'e',
default: undefined,
description: 'Use this flag to show full diffs instead of a patch.',
type: 'boolean'
},
filter: {
default: undefined,
description:
'Path to a module exporting a filtering function. This method receives ' +
'a list of tests which can be manipulated to exclude tests from ' +
'running. Especially useful when used in conjunction with a testing ' +
'infrastructure to filter known broken tests.',
type: 'string'
},
findRelatedTests: {
default: undefined,
description:
'Find related tests for a list of source files that were ' +
'passed in as arguments. Useful for pre-commit hook integration to run ' +
'the minimal amount of tests necessary.',
type: 'boolean'
},
forceExit: {
default: undefined,
description:
'Force Jest to exit after all tests have completed running. ' +
'This is useful when resources set up by test code cannot be ' +
'adequately cleaned up.',
type: 'boolean'
},
globalSetup: {
description: 'The path to a module that runs before All Tests.',
type: 'string'
},
globalTeardown: {
description: 'The path to a module that runs after All Tests.',
type: 'string'
},
globals: {
description:
'A JSON string with map of global variables that need ' +
'to be available in all test environments.',
type: 'string'
},
haste: {
description:
'A JSON string with map of variables for the haste module system',
type: 'string'
},
init: {
description: 'Generate a basic configuration file',
type: 'boolean'
},
json: {
default: undefined,
description:
'Prints the test results in JSON. This mode will send all ' +
'other test output and user messages to stderr.',
type: 'boolean'
},
lastCommit: {
default: undefined,
description:
'Run all tests affected by file changes in the last commit made. ' +
'Behaves similarly to `--onlyChanged`.',
type: 'boolean'
},
listTests: {
default: false,
description:
'Lists all tests Jest will run given the arguments and ' +
'exits. Most useful in a CI system together with `--findRelatedTests` ' +
'to determine the tests Jest will run based on specific files',
type: 'boolean'
},
logHeapUsage: {
default: undefined,
description:
'Logs the heap usage after every test. Useful to debug ' +
'memory leaks. Use together with `--runInBand` and `--expose-gc` in ' +
'node.',
type: 'boolean'
},
mapCoverage: {
default: undefined,
description:
'Maps code coverage reports against original source code ' +
'when transformers supply source maps.\n\nDEPRECATED',
type: 'boolean'
},
maxConcurrency: {
default: 5,
description:
'Specifies the maximum number of tests that are allowed to run' +
'concurrently. This only affects tests using `test.concurrent`.',
type: 'number'
},
maxWorkers: {
alias: 'w',
description:
'Specifies the maximum number of workers the worker-pool ' +
'will spawn for running tests. This defaults to the number of the ' +
'cores available on your machine. (its usually best not to override ' +
'this default)',
type: 'string'
},
moduleDirectories: {
description:
'An array of directory names to be searched recursively ' +
"up from the requiring module's location.",
string: true,
type: 'array'
},
moduleFileExtensions: {
description:
'An array of file extensions your modules use. If you ' +
'require modules without specifying a file extension, these are the ' +
'extensions Jest will look for. ',
string: true,
type: 'array'
},
moduleNameMapper: {
description:
'A JSON string with a map from regular expressions to ' +
'module names or to arrays of module names that allow to stub ' +
'out resources, like images or styles with a single module',
type: 'string'
},
modulePathIgnorePatterns: {
description:
'An array of regexp pattern strings that are matched ' +
'against all module paths before those paths are to be considered ' +
'"visible" to the module loader.',
string: true,
type: 'array'
},
modulePaths: {
description:
'An alternative API to setting the NODE_PATH env variable, ' +
'modulePaths is an array of absolute paths to additional locations to ' +
'search when resolving modules.',
string: true,
type: 'array'
},
noStackTrace: {
default: undefined,
description: 'Disables stack trace in test results output',
type: 'boolean'
},
notify: {
default: undefined,
description: 'Activates notifications for test results.',
type: 'boolean'
},
notifyMode: {
default: 'failure-change',
description: 'Specifies when notifications will appear for test results.',
type: 'string'
},
onlyChanged: {
alias: 'o',
default: undefined,
description:
'Attempts to identify which tests to run based on which ' +
"files have changed in the current repository. Only works if you're " +
'running tests in a git or hg repository at the moment.',
type: 'boolean'
},
onlyFailures: {
alias: 'f',
default: undefined,
description: 'Run tests that failed in the previous execution.',
type: 'boolean'
},
outputFile: {
description:
'Write test results to a file when the --json option is ' +
'also specified.',
type: 'string'
},
passWithNoTests: {
default: false,
description:
'Will not fail if no tests are found (for example while using `--testPathPattern`.)',
type: 'boolean'
},
preset: {
description: "A preset that is used as a base for Jest's configuration.",
type: 'string'
},
prettierPath: {
default: undefined,
description: 'The path to the "prettier" module used for inline snapshots.',
type: 'string'
},
projects: {
description:
'A list of projects that use Jest to run all tests of all ' +
'projects in a single instance of Jest.',
string: true,
type: 'array'
},
reporters: {
description: 'A list of custom reporters for the test suite.',
string: true,
type: 'array'
},
resetMocks: {
default: undefined,
description:
'Automatically reset mock state between every test. ' +
'Equivalent to calling jest.resetAllMocks() between each test.',
type: 'boolean'
},
resetModules: {
default: undefined,
description:
'If enabled, the module registry for every test file will ' +
'be reset before running each individual test.',
type: 'boolean'
},
resolver: {
description: 'A JSON string which allows the use of a custom resolver.',
type: 'string'
},
restoreMocks: {
default: undefined,
description:
'Automatically restore mock state and implementation between every test. ' +
'Equivalent to calling jest.restoreAllMocks() between each test.',
type: 'boolean'
},
rootDir: {
description:
'The root directory that Jest should scan for tests and ' +
'modules within.',
type: 'string'
},
roots: {
description:
'A list of paths to directories that Jest should use to ' +
'search for files in.',
string: true,
type: 'array'
},
runInBand: {
alias: 'i',
default: undefined,
description:
'Run all tests serially in the current process (rather than ' +
'creating a worker pool of child processes that run tests). This ' +
'is sometimes useful for debugging, but such use cases are pretty ' +
'rare.',
type: 'boolean'
},
runTestsByPath: {
default: false,
description:
'Used when provided patterns are exact file paths. This avoids ' +
'converting them into a regular expression and matching it against ' +
'every single file.',
type: 'boolean'
},
runner: {
description:
"Allows to use a custom runner instead of Jest's default test runner.",
type: 'string'
},
selectProjects: {
description:
'Run only the tests of the specified projects.' +
'Jest uses the attribute `displayName` in the configuration to identify each project.',
string: true,
type: 'array'
},
setupFiles: {
description:
'A list of paths to modules that run some code to configure or ' +
'set up the testing environment before each test. ',
string: true,
type: 'array'
},
setupFilesAfterEnv: {
description:
'A list of paths to modules that run some code to configure or ' +
'set up the testing framework before each test ',
string: true,
type: 'array'
},
showConfig: {
default: undefined,
description: 'Print your jest config and then exits.',
type: 'boolean'
},
silent: {
default: undefined,
description: 'Prevent tests from printing messages through the console.',
type: 'boolean'
},
skipFilter: {
default: undefined,
description:
'Disables the filter provided by --filter. Useful for CI jobs, or ' +
'local enforcement when fixing tests.',
type: 'boolean'
},
snapshotSerializers: {
description:
'A list of paths to snapshot serializer modules Jest should ' +
'use for snapshot testing.',
string: true,
type: 'array'
},
testEnvironment: {
description: 'Alias for --env',
type: 'string'
},
testEnvironmentOptions: {
description:
'Test environment options that will be passed to the testEnvironment. ' +
'The relevant options depend on the environment.',
type: 'string' // Object
},
testFailureExitCode: {
description: 'Exit code of `jest` command if the test run failed',
type: 'string' // number
},
testLocationInResults: {
default: false,
description: 'Add `location` information to the test results',
type: 'boolean'
},
testMatch: {
description: 'The glob patterns Jest uses to detect test files.',
string: true,
type: 'array'
},
testNamePattern: {
alias: 't',
description: 'Run only tests with a name that matches the regex pattern.',
type: 'string'
},
testPathIgnorePatterns: {
description:
'An array of regexp pattern strings that are matched ' +
'against all test paths before executing the test. If the test path ' +
'matches any of the patterns, it will be skipped.',
string: true,
type: 'array'
},
testPathPattern: {
description:
'A regexp pattern string that is matched against all tests ' +
'paths before executing the test.',
string: true,
type: 'array'
},
testRegex: {
description:
'A string or array of string regexp patterns that Jest uses to detect test files.',
string: true,
type: 'array'
},
testResultsProcessor: {
description:
'Allows the use of a custom results processor. ' +
'This processor must be a node module that exports ' +
'a function expecting as the first argument the result object.',
type: 'string'
},
testRunner: {
description:
'Allows to specify a custom test runner. The default is ' +
' `jasmine2`. A path to a custom test runner can be provided: ' +
'`<rootDir>/path/to/testRunner.js`.',
type: 'string'
},
testSequencer: {
description:
'Allows to specify a custom test sequencer. The default is ' +
'`@jest/test-sequencer`. A path to a custom test sequencer can be ' +
'provided: `<rootDir>/path/to/testSequencer.js`',
type: 'string'
},
testTimeout: {
description: 'This option sets the default timeouts of test cases.',
type: 'number'
},
testURL: {
description: 'This option sets the URL for the jsdom environment.',
type: 'string'
},
timers: {
description:
'Setting this value to fake allows the use of fake timers ' +
'for functions such as setTimeout.',
type: 'string'
},
transform: {
description:
'A JSON string which maps from regular expressions to paths ' +
'to transformers.',
type: 'string'
},
transformIgnorePatterns: {
description:
'An array of regexp pattern strings that are matched ' +
'against all source file paths before transformation.',
string: true,
type: 'array'
},
unmockedModulePathPatterns: {
description:
'An array of regexp pattern strings that are matched ' +
'against all modules before the module loader will automatically ' +
'return a mock for them.',
string: true,
type: 'array'
},
updateSnapshot: {
alias: 'u',
default: undefined,
description:
'Use this flag to re-record snapshots. ' +
'Can be used together with a test suite pattern or with ' +
'`--testNamePattern` to re-record snapshot for test matching ' +
'the pattern',
type: 'boolean'
},
useStderr: {
default: undefined,
description: 'Divert all output to stderr.',
type: 'boolean'
},
verbose: {
default: undefined,
description:
'Display individual test results with the test suite hierarchy.',
type: 'boolean'
},
version: {
alias: 'v',
default: undefined,
description: 'Print the version and exit',
type: 'boolean'
},
watch: {
default: undefined,
description:
'Watch files for changes and rerun tests related to ' +
'changed files. If you want to re-run all tests when a file has ' +
'changed, use the `--watchAll` option.',
type: 'boolean'
},
watchAll: {
default: undefined,
description:
'Watch files for changes and rerun all tests. If you want ' +
'to re-run only the tests related to the changed files, use the ' +
'`--watch` option.',
type: 'boolean'
},
watchPathIgnorePatterns: {
description:
'An array of regexp pattern strings that are matched ' +
'against all paths before trigger test re-run in watch mode. ' +
'If the test path matches any of the patterns, it will be skipped.',
string: true,
type: 'array'
},
watchman: {
default: undefined,
description:
'Whether to use watchman for file crawling. Disable using ' +
'--no-watchman.',
type: 'boolean'
}
};
exports.options = options;

View file

@ -0,0 +1,9 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
import type { Config } from '@jest/types';
export declare function run(maybeArgv?: Array<string>, project?: Config.Path): Promise<void>;
export declare const buildArgv: (maybeArgv?: string[] | undefined) => Config.Argv;

View file

@ -0,0 +1,273 @@
'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
exports.run = run;
exports.buildArgv = void 0;
function path() {
const data = _interopRequireWildcard(require('path'));
path = function () {
return data;
};
return data;
}
function _jestUtil() {
const data = require('jest-util');
_jestUtil = function () {
return data;
};
return data;
}
function _jestValidate() {
const data = require('jest-validate');
_jestValidate = function () {
return data;
};
return data;
}
function _jestConfig() {
const data = require('jest-config');
_jestConfig = function () {
return data;
};
return data;
}
function _core() {
const data = require('@jest/core');
_core = function () {
return data;
};
return data;
}
function _chalk() {
const data = _interopRequireDefault(require('chalk'));
_chalk = function () {
return data;
};
return data;
}
function _exit() {
const data = _interopRequireDefault(require('exit'));
_exit = function () {
return data;
};
return data;
}
function _yargs() {
const data = _interopRequireDefault(require('yargs'));
_yargs = function () {
return data;
};
return data;
}
function _init() {
const data = _interopRequireDefault(require('../init'));
_init = function () {
return data;
};
return data;
}
var args = _interopRequireWildcard(require('./args'));
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {default: obj};
}
function _getRequireWildcardCache() {
if (typeof WeakMap !== 'function') return null;
var cache = new WeakMap();
_getRequireWildcardCache = function () {
return cache;
};
return cache;
}
function _interopRequireWildcard(obj) {
if (obj && obj.__esModule) {
return obj;
}
if (obj === null || (typeof obj !== 'object' && typeof obj !== 'function')) {
return {default: obj};
}
var cache = _getRequireWildcardCache();
if (cache && cache.has(obj)) {
return cache.get(obj);
}
var newObj = {};
var hasPropertyDescriptor =
Object.defineProperty && Object.getOwnPropertyDescriptor;
for (var key in obj) {
if (Object.prototype.hasOwnProperty.call(obj, key)) {
var desc = hasPropertyDescriptor
? Object.getOwnPropertyDescriptor(obj, key)
: null;
if (desc && (desc.get || desc.set)) {
Object.defineProperty(newObj, key, desc);
} else {
newObj[key] = obj[key];
}
}
}
newObj.default = obj;
if (cache) {
cache.set(obj, newObj);
}
return newObj;
}
/**
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
async function run(maybeArgv, project) {
try {
const argv = buildArgv(maybeArgv);
if (argv.init) {
await (0, _init().default)();
return;
}
const projects = getProjectListFromCLIArgs(argv, project);
const {results, globalConfig} = await (0, _core().runCLI)(argv, projects);
readResultsAndExit(results, globalConfig);
} catch (error) {
(0, _jestUtil().clearLine)(process.stderr);
(0, _jestUtil().clearLine)(process.stdout);
if (error.stack) {
console.error(_chalk().default.red(error.stack));
} else {
console.error(_chalk().default.red(error));
}
(0, _exit().default)(1);
throw error;
}
}
const buildArgv = maybeArgv => {
const version =
(0, _core().getVersion)() +
(__dirname.includes(`packages${path().sep}jest-cli`) ? '-dev' : '');
const rawArgv = maybeArgv || process.argv.slice(2);
const argv = (0, _yargs().default)(rawArgv)
.usage(args.usage)
.version(version)
.alias('help', 'h')
.options(args.options)
.epilogue(args.docs)
.check(args.check).argv;
(0, _jestValidate().validateCLIOptions)(
argv,
{...args.options, deprecationEntries: _jestConfig().deprecationEntries}, // strip leading dashes
Array.isArray(rawArgv)
? rawArgv.map(rawArgv => rawArgv.replace(/^--?/, ''))
: Object.keys(rawArgv)
); // strip dashed args
return Object.keys(argv).reduce(
(result, key) => {
if (!key.includes('-')) {
result[key] = argv[key];
}
return result;
},
{
$0: argv.$0,
_: argv._
}
);
};
exports.buildArgv = buildArgv;
const getProjectListFromCLIArgs = (argv, project) => {
const projects = argv.projects ? argv.projects : [];
if (project) {
projects.push(project);
}
if (!projects.length && process.platform === 'win32') {
try {
projects.push((0, _jestUtil().tryRealpath)(process.cwd()));
} catch {
// do nothing, just catch error
// process.binding('fs').realpath can throw, e.g. on mapped drives
}
}
if (!projects.length) {
projects.push(process.cwd());
}
return projects;
};
const readResultsAndExit = (result, globalConfig) => {
const code = !result || result.success ? 0 : globalConfig.testFailureExitCode; // Only exit if needed
process.on('exit', () => {
if (typeof code === 'number' && code !== 0) {
process.exitCode = code;
}
});
if (globalConfig.forceExit) {
if (!globalConfig.detectOpenHandles) {
console.warn(
_chalk().default.bold('Force exiting Jest: ') +
'Have you considered using `--detectOpenHandles` to detect ' +
'async operations that kept running after all tests finished?'
);
}
(0, _exit().default)(code);
} else if (!globalConfig.detectOpenHandles) {
setTimeout(() => {
console.warn(
_chalk().default.yellow.bold(
'Jest did not exit one second after the test run has completed.\n\n'
) +
_chalk().default.yellow(
'This usually means that there are asynchronous operations that ' +
"weren't stopped in your tests. Consider running Jest with " +
'`--detectOpenHandles` to troubleshoot this issue.'
)
);
}, 1000).unref();
}
};

View file

@ -0,0 +1,7 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
export { run } from './cli';

13
node_modules/jest/node_modules/jest-cli/build/index.js generated vendored Normal file
View file

@ -0,0 +1,13 @@
'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
Object.defineProperty(exports, 'run', {
enumerable: true,
get: function () {
return _cli.run;
}
});
var _cli = require('./cli');

View file

@ -0,0 +1,12 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
export declare class NotFoundPackageJsonError extends Error {
constructor(rootDir: string);
}
export declare class MalformedPackageJsonError extends Error {
constructor(packageJsonPath: string);
}

View file

@ -0,0 +1,35 @@
'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
exports.MalformedPackageJsonError = exports.NotFoundPackageJsonError = void 0;
/**
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
class NotFoundPackageJsonError extends Error {
constructor(rootDir) {
super(`Could not find a "package.json" file in ${rootDir}`);
this.name = '';
Error.captureStackTrace(this, () => {});
}
}
exports.NotFoundPackageJsonError = NotFoundPackageJsonError;
class MalformedPackageJsonError extends Error {
constructor(packageJsonPath) {
super(
`There is malformed json in ${packageJsonPath}\n` +
'Fix it, and then run "jest --init"'
);
this.name = '';
Error.captureStackTrace(this, () => {});
}
}
exports.MalformedPackageJsonError = MalformedPackageJsonError;

View file

@ -0,0 +1,8 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
declare const generateConfigFile: (results: Record<string, unknown>, generateEsm?: boolean) => string;
export default generateConfigFile;

View file

@ -0,0 +1,93 @@
'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
exports.default = void 0;
function _jestConfig() {
const data = require('jest-config');
_jestConfig = function () {
return data;
};
return data;
}
/**
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
const stringifyOption = (option, map, linePrefix = '') => {
const optionDescription = ` // ${_jestConfig().descriptions[option]}`;
const stringifiedObject = `${option}: ${JSON.stringify(
map[option],
null,
2
)}`;
return (
optionDescription +
'\n' +
stringifiedObject
.split('\n')
.map(line => ' ' + linePrefix + line)
.join('\n') +
',\n'
);
};
const generateConfigFile = (results, generateEsm = false) => {
const {coverage, coverageProvider, clearMocks, environment} = results;
const overrides = {};
if (coverage) {
Object.assign(overrides, {
coverageDirectory: 'coverage'
});
}
if (coverageProvider === 'v8') {
Object.assign(overrides, {
coverageProvider: 'v8'
});
}
if (environment === 'node') {
Object.assign(overrides, {
testEnvironment: 'node'
});
}
if (clearMocks) {
Object.assign(overrides, {
clearMocks: true
});
}
const overrideKeys = Object.keys(overrides);
const properties = [];
for (const option in _jestConfig().descriptions) {
const opt = option;
if (overrideKeys.includes(opt)) {
properties.push(stringifyOption(opt, overrides));
} else {
properties.push(stringifyOption(opt, _jestConfig().defaults, '// '));
}
}
return (
'// For a detailed explanation regarding each configuration property, visit:\n' +
'// https://jestjs.io/docs/en/configuration.html\n\n' +
(generateEsm ? 'export default {\n' : 'module.exports = {\n') +
properties.join('\n') +
'};\n'
);
};
var _default = generateConfigFile;
exports.default = _default;

View file

@ -0,0 +1,8 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
declare const _default: (rootDir?: string) => Promise<void>;
export default _default;

View file

@ -0,0 +1,252 @@
'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
exports.default = void 0;
function path() {
const data = _interopRequireWildcard(require('path'));
path = function () {
return data;
};
return data;
}
function fs() {
const data = _interopRequireWildcard(require('graceful-fs'));
fs = function () {
return data;
};
return data;
}
function _chalk() {
const data = _interopRequireDefault(require('chalk'));
_chalk = function () {
return data;
};
return data;
}
function _prompts() {
const data = _interopRequireDefault(require('prompts'));
_prompts = function () {
return data;
};
return data;
}
function _jestConfig() {
const data = require('jest-config');
_jestConfig = function () {
return data;
};
return data;
}
function _jestUtil() {
const data = require('jest-util');
_jestUtil = function () {
return data;
};
return data;
}
var _questions = _interopRequireWildcard(require('./questions'));
var _errors = require('./errors');
var _generate_config_file = _interopRequireDefault(
require('./generate_config_file')
);
var _modify_package_json = _interopRequireDefault(
require('./modify_package_json')
);
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {default: obj};
}
function _getRequireWildcardCache() {
if (typeof WeakMap !== 'function') return null;
var cache = new WeakMap();
_getRequireWildcardCache = function () {
return cache;
};
return cache;
}
function _interopRequireWildcard(obj) {
if (obj && obj.__esModule) {
return obj;
}
if (obj === null || (typeof obj !== 'object' && typeof obj !== 'function')) {
return {default: obj};
}
var cache = _getRequireWildcardCache();
if (cache && cache.has(obj)) {
return cache.get(obj);
}
var newObj = {};
var hasPropertyDescriptor =
Object.defineProperty && Object.getOwnPropertyDescriptor;
for (var key in obj) {
if (Object.prototype.hasOwnProperty.call(obj, key)) {
var desc = hasPropertyDescriptor
? Object.getOwnPropertyDescriptor(obj, key)
: null;
if (desc && (desc.get || desc.set)) {
Object.defineProperty(newObj, key, desc);
} else {
newObj[key] = obj[key];
}
}
}
newObj.default = obj;
if (cache) {
cache.set(obj, newObj);
}
return newObj;
}
/**
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
const {
JEST_CONFIG_BASE_NAME,
JEST_CONFIG_EXT_MJS,
JEST_CONFIG_EXT_JS,
JEST_CONFIG_EXT_ORDER,
PACKAGE_JSON
} = _jestConfig().constants;
const getConfigFilename = ext => JEST_CONFIG_BASE_NAME + ext;
var _default = async (
rootDir = (0, _jestUtil().tryRealpath)(process.cwd())
) => {
// prerequisite checks
const projectPackageJsonPath = path().join(rootDir, PACKAGE_JSON);
if (!fs().existsSync(projectPackageJsonPath)) {
throw new _errors.NotFoundPackageJsonError(rootDir);
}
const questions = _questions.default.slice(0);
let hasJestProperty = false;
let projectPackageJson;
try {
projectPackageJson = JSON.parse(
fs().readFileSync(projectPackageJsonPath, 'utf-8')
);
} catch {
throw new _errors.MalformedPackageJsonError(projectPackageJsonPath);
}
if (projectPackageJson.jest) {
hasJestProperty = true;
}
const existingJestConfigExt = JEST_CONFIG_EXT_ORDER.find(ext =>
fs().existsSync(path().join(rootDir, getConfigFilename(ext)))
);
const jestConfigPath = existingJestConfigExt
? getConfigFilename(existingJestConfigExt)
: path().join(
rootDir,
getConfigFilename(
projectPackageJson.type === 'module'
? JEST_CONFIG_EXT_MJS
: JEST_CONFIG_EXT_JS
)
);
if (hasJestProperty || existingJestConfigExt) {
const result = await (0, _prompts().default)({
initial: true,
message:
'It seems that you already have a jest configuration, do you want to override it?',
name: 'continue',
type: 'confirm'
});
if (!result.continue) {
console.log();
console.log('Aborting...');
return;
}
} // Add test script installation only if needed
if (
!projectPackageJson.scripts ||
projectPackageJson.scripts.test !== 'jest'
) {
questions.unshift(_questions.testScriptQuestion);
} // Start the init process
console.log();
console.log(
_chalk().default.underline(
`The following questions will help Jest to create a suitable configuration for your project\n`
)
);
let promptAborted = false; // @ts-expect-error: Return type cannot be object - faulty typings
const results = await (0, _prompts().default)(questions, {
onCancel: () => {
promptAborted = true;
}
});
if (promptAborted) {
console.log();
console.log('Aborting...');
return;
}
const shouldModifyScripts = results.scripts;
if (shouldModifyScripts || hasJestProperty) {
const modifiedPackageJson = (0, _modify_package_json.default)({
projectPackageJson,
shouldModifyScripts
});
fs().writeFileSync(projectPackageJsonPath, modifiedPackageJson);
console.log('');
console.log(
`✏️ Modified ${_chalk().default.cyan(projectPackageJsonPath)}`
);
}
const generatedConfig = (0, _generate_config_file.default)(
results,
projectPackageJson.type === 'module' ||
jestConfigPath.endsWith(JEST_CONFIG_EXT_MJS)
);
fs().writeFileSync(jestConfigPath, generatedConfig);
console.log('');
console.log(
`📝 Configuration file created at ${_chalk().default.cyan(jestConfigPath)}`
);
};
exports.default = _default;

View file

@ -0,0 +1,12 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
import type { ProjectPackageJson } from './types';
declare const modifyPackageJson: ({ projectPackageJson, shouldModifyScripts, }: {
projectPackageJson: ProjectPackageJson;
shouldModifyScripts: boolean;
}) => string;
export default modifyPackageJson;

View file

@ -0,0 +1,28 @@
'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
exports.default = void 0;
/**
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
const modifyPackageJson = ({projectPackageJson, shouldModifyScripts}) => {
if (shouldModifyScripts) {
projectPackageJson.scripts
? (projectPackageJson.scripts.test = 'jest')
: (projectPackageJson.scripts = {
test: 'jest'
});
}
delete projectPackageJson.jest;
return JSON.stringify(projectPackageJson, null, 2) + '\n';
};
var _default = modifyPackageJson;
exports.default = _default;

View file

@ -0,0 +1,10 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
import type { PromptObject } from 'prompts';
declare const defaultQuestions: Array<PromptObject>;
export default defaultQuestions;
export declare const testScriptQuestion: PromptObject;

View file

@ -0,0 +1,69 @@
'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
exports.testScriptQuestion = exports.default = void 0;
/**
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
const defaultQuestions = [
{
choices: [
{
title: 'node',
value: 'node'
},
{
title: 'jsdom (browser-like)',
value: 'jsdom'
}
],
initial: 0,
message: 'Choose the test environment that will be used for testing',
name: 'environment',
type: 'select'
},
{
initial: false,
message: 'Do you want Jest to add coverage reports?',
name: 'coverage',
type: 'confirm'
},
{
choices: [
{
title: 'v8',
value: 'v8'
},
{
title: 'babel',
value: 'babel'
}
],
initial: 0,
message: 'Which provider should be used to instrument code for coverage?',
name: 'coverageProvider',
type: 'select'
},
{
initial: false,
message: 'Automatically clear mock calls and instances between every test?',
name: 'clearMocks',
type: 'confirm'
}
];
var _default = defaultQuestions;
exports.default = _default;
const testScriptQuestion = {
initial: true,
message:
'Would you like to use Jest when running "test" script in "package.json"?',
name: 'scripts',
type: 'confirm'
};
exports.testScriptQuestion = testScriptQuestion;

View file

@ -0,0 +1,12 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
import type { Config } from '@jest/types';
export declare type ProjectPackageJson = {
jest?: Partial<Config.InitialOptions>;
scripts?: Record<string, string>;
type?: 'commonjs' | 'module';
};

View file

@ -0,0 +1 @@
'use strict';

76
node_modules/jest/node_modules/jest-cli/package.json generated vendored Normal file
View file

@ -0,0 +1,76 @@
{
"name": "jest-cli",
"description": "Delightful JavaScript Testing.",
"version": "26.4.2",
"main": "build/index.js",
"types": "build/index.d.ts",
"dependencies": {
"@jest/core": "^26.4.2",
"@jest/test-result": "^26.3.0",
"@jest/types": "^26.3.0",
"chalk": "^4.0.0",
"exit": "^0.1.2",
"graceful-fs": "^4.2.4",
"import-local": "^3.0.2",
"is-ci": "^2.0.0",
"jest-config": "^26.4.2",
"jest-util": "^26.3.0",
"jest-validate": "^26.4.2",
"prompts": "^2.0.1",
"yargs": "^15.3.1"
},
"devDependencies": {
"@jest/test-utils": "^26.3.0",
"@types/exit": "^0.1.30",
"@types/graceful-fs": "^4.1.3",
"@types/is-ci": "^2.0.0",
"@types/prompts": "^2.0.1",
"@types/yargs": "^15.0.0"
},
"bin": {
"jest": "./bin/jest.js"
},
"engines": {
"node": ">= 10.14.2"
},
"repository": {
"type": "git",
"url": "https://github.com/facebook/jest",
"directory": "packages/jest-cli"
},
"bugs": {
"url": "https://github.com/facebook/jest/issues"
},
"homepage": "https://jestjs.io/",
"license": "MIT",
"keywords": [
"ava",
"babel",
"coverage",
"easy",
"expect",
"facebook",
"immersive",
"instant",
"jasmine",
"jest",
"jsdom",
"mocha",
"mocking",
"painless",
"qunit",
"runner",
"sandboxed",
"snapshot",
"tap",
"tape",
"test",
"testing",
"typescript",
"watch"
],
"publishConfig": {
"access": "public"
},
"gitHead": "2586a798260886c28b6d28256cdfe354e039d5d1"
}

52
node_modules/jest/package.json generated vendored Normal file
View file

@ -0,0 +1,52 @@
{
"name": "jest",
"description": "Delightful JavaScript Testing.",
"version": "26.4.2",
"main": "build/jest.js",
"types": "build/jest.d.ts",
"dependencies": {
"@jest/core": "^26.4.2",
"import-local": "^3.0.2",
"jest-cli": "^26.4.2"
},
"bin": "./bin/jest.js",
"engines": {
"node": ">= 10.14.2"
},
"repository": {
"type": "git",
"url": "https://github.com/facebook/jest"
},
"homepage": "https://jestjs.io/",
"license": "MIT",
"keywords": [
"ava",
"babel",
"coverage",
"easy",
"expect",
"facebook",
"immersive",
"instant",
"jasmine",
"jest",
"jsdom",
"mocha",
"mocking",
"painless",
"qunit",
"runner",
"sandboxed",
"snapshot",
"tap",
"tape",
"test",
"testing",
"typescript",
"watch"
],
"publishConfig": {
"access": "public"
},
"gitHead": "2586a798260886c28b6d28256cdfe354e039d5d1"
}