diff options
Diffstat (limited to 'node_modules/babel-jest')
-rw-r--r-- | node_modules/babel-jest/LICENSE | 21 | ||||
-rw-r--r-- | node_modules/babel-jest/README.md | 25 | ||||
-rw-r--r-- | node_modules/babel-jest/build/index.d.ts | 10 | ||||
-rw-r--r-- | node_modules/babel-jest/build/index.js | 386 | ||||
-rw-r--r-- | node_modules/babel-jest/build/loadBabelConfig.d.ts | 7 | ||||
-rw-r--r-- | node_modules/babel-jest/build/loadBabelConfig.js | 27 | ||||
-rw-r--r-- | node_modules/babel-jest/package.json | 45 |
7 files changed, 521 insertions, 0 deletions
diff --git a/node_modules/babel-jest/LICENSE b/node_modules/babel-jest/LICENSE new file mode 100644 index 0000000..b96dcb0 --- /dev/null +++ b/node_modules/babel-jest/LICENSE @@ -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. diff --git a/node_modules/babel-jest/README.md b/node_modules/babel-jest/README.md new file mode 100644 index 0000000..9505019 --- /dev/null +++ b/node_modules/babel-jest/README.md @@ -0,0 +1,25 @@ +# babel-jest + +[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin + +## Usage + +If you are already using `jest-cli`, add `babel-jest` and it will automatically compile JavaScript code using Babel. + +```bash +yarn add --dev babel-jest @babel/core +``` + +If you would like to write your own preprocessor, uninstall and delete babel-jest and set the [config.transform](https://jestjs.io/docs/configuration#transform-object-string-string) option to your preprocessor. + +## Setup + +_Note: this step is only required if you are using `babel-jest` with additional code preprocessors._ + +To explicitly define `babel-jest` as a transformer for your JavaScript code, map _.js_ files to the `babel-jest` module. Typescript files are also supported. + +```json +"transform": { + "\\.[jt]sx?$": "babel-jest" +}, +``` diff --git a/node_modules/babel-jest/build/index.d.ts b/node_modules/babel-jest/build/index.d.ts new file mode 100644 index 0000000..e670d42 --- /dev/null +++ b/node_modules/babel-jest/build/index.d.ts @@ -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 { TransformOptions } from '@babel/core'; +import type { SyncTransformer } from '@jest/transform'; +declare const transformer: SyncTransformer<TransformOptions>; +export default transformer; diff --git a/node_modules/babel-jest/build/index.js b/node_modules/babel-jest/build/index.js new file mode 100644 index 0000000..10beb1d --- /dev/null +++ b/node_modules/babel-jest/build/index.js @@ -0,0 +1,386 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { + value: true +}); +exports.default = void 0; + +function _crypto() { + const data = require('crypto'); + + _crypto = function () { + return data; + }; + + return data; +} + +function path() { + const data = _interopRequireWildcard(require('path')); + + path = function () { + return data; + }; + + return data; +} + +function _core() { + const data = require('@babel/core'); + + _core = function () { + return data; + }; + + return data; +} + +function _chalk() { + const data = _interopRequireDefault(require('chalk')); + + _chalk = function () { + return data; + }; + + return data; +} + +function fs() { + const data = _interopRequireWildcard(require('graceful-fs')); + + fs = function () { + return data; + }; + + return data; +} + +function _slash() { + const data = _interopRequireDefault(require('slash')); + + _slash = function () { + return data; + }; + + return data; +} + +var _loadBabelConfig = require('./loadBabelConfig'); + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : {default: obj}; +} + +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== 'function') return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function (nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} + +function _interopRequireWildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || (typeof obj !== 'object' && typeof obj !== 'function')) { + return {default: obj}; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = {}; + var hasPropertyDescriptor = + Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var key in obj) { + if (key !== 'default' && 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 THIS_FILE = fs().readFileSync(__filename); + +const jestPresetPath = require.resolve('babel-preset-jest'); + +const babelIstanbulPlugin = require.resolve('babel-plugin-istanbul'); + +function assertLoadedBabelConfig(babelConfig, cwd, filename) { + if (!babelConfig) { + throw new Error( + `babel-jest: Babel ignores ${_chalk().default.bold( + (0, _slash().default)(path().relative(cwd, filename)) + )} - make sure to include the file in Jest's ${_chalk().default.bold( + 'transformIgnorePatterns' + )} as well.` + ); + } +} + +function addIstanbulInstrumentation(babelOptions, transformOptions) { + if (transformOptions.instrument) { + const copiedBabelOptions = {...babelOptions}; + copiedBabelOptions.auxiliaryCommentBefore = ' istanbul ignore next '; // Copied from jest-runtime transform.js + + copiedBabelOptions.plugins = (copiedBabelOptions.plugins || []).concat([ + [ + babelIstanbulPlugin, + { + // files outside `cwd` will not be instrumented + cwd: transformOptions.config.cwd, + exclude: [] + } + ] + ]); + return copiedBabelOptions; + } + + return babelOptions; +} + +function getCacheKeyFromConfig( + sourceText, + sourcePath, + babelOptions, + transformOptions +) { + const {config, configString, instrument} = transformOptions; + const configPath = [babelOptions.config || '', babelOptions.babelrc || '']; + return (0, _crypto().createHash)('md5') + .update(THIS_FILE) + .update('\0', 'utf8') + .update(JSON.stringify(babelOptions.options)) + .update('\0', 'utf8') + .update(sourceText) + .update('\0', 'utf8') + .update(path().relative(config.rootDir, sourcePath)) + .update('\0', 'utf8') + .update(configString) + .update('\0', 'utf8') + .update(configPath.join('')) + .update('\0', 'utf8') + .update(instrument ? 'instrument' : '') + .update('\0', 'utf8') + .update(process.env.NODE_ENV || '') + .update('\0', 'utf8') + .update(process.env.BABEL_ENV || '') + .update('\0', 'utf8') + .update(process.version) + .digest('hex'); +} + +function loadBabelConfig(cwd, filename, transformOptions) { + const babelConfig = (0, _loadBabelConfig.loadPartialConfig)(transformOptions); + assertLoadedBabelConfig(babelConfig, cwd, filename); + return babelConfig; +} + +async function loadBabelConfigAsync(cwd, filename, transformOptions) { + const babelConfig = await (0, _loadBabelConfig.loadPartialConfigAsync)( + transformOptions + ); + assertLoadedBabelConfig(babelConfig, cwd, filename); + return babelConfig; +} + +function loadBabelOptions( + cwd, + filename, + transformOptions, + jestTransformOptions +) { + const {options} = loadBabelConfig(cwd, filename, transformOptions); + return addIstanbulInstrumentation(options, jestTransformOptions); +} + +async function loadBabelOptionsAsync( + cwd, + filename, + transformOptions, + jestTransformOptions +) { + const {options} = await loadBabelConfigAsync(cwd, filename, transformOptions); + return addIstanbulInstrumentation(options, jestTransformOptions); +} + +const createTransformer = userOptions => { + var _inputOptions$plugins, _inputOptions$presets; + + const inputOptions = + userOptions !== null && userOptions !== void 0 ? userOptions : {}; + const options = { + ...inputOptions, + caller: { + name: 'babel-jest', + supportsDynamicImport: false, + supportsExportNamespaceFrom: false, + supportsStaticESM: false, + supportsTopLevelAwait: false, + ...inputOptions.caller + }, + compact: false, + plugins: + (_inputOptions$plugins = inputOptions.plugins) !== null && + _inputOptions$plugins !== void 0 + ? _inputOptions$plugins + : [], + presets: ((_inputOptions$presets = inputOptions.presets) !== null && + _inputOptions$presets !== void 0 + ? _inputOptions$presets + : [] + ).concat(jestPresetPath), + sourceMaps: 'both' + }; + + function mergeBabelTransformOptions(filename, transformOptions) { + var _transformOptions$sup, + _transformOptions$sup2, + _transformOptions$sup3, + _transformOptions$sup4; + + const {cwd} = transformOptions.config; // `cwd` first to allow incoming options to override it + + return { + cwd, + ...options, + caller: { + ...options.caller, + supportsDynamicImport: + (_transformOptions$sup = transformOptions.supportsDynamicImport) !== + null && _transformOptions$sup !== void 0 + ? _transformOptions$sup + : options.caller.supportsDynamicImport, + supportsExportNamespaceFrom: + (_transformOptions$sup2 = + transformOptions.supportsExportNamespaceFrom) !== null && + _transformOptions$sup2 !== void 0 + ? _transformOptions$sup2 + : options.caller.supportsExportNamespaceFrom, + supportsStaticESM: + (_transformOptions$sup3 = transformOptions.supportsStaticESM) !== + null && _transformOptions$sup3 !== void 0 + ? _transformOptions$sup3 + : options.caller.supportsStaticESM, + supportsTopLevelAwait: + (_transformOptions$sup4 = transformOptions.supportsTopLevelAwait) !== + null && _transformOptions$sup4 !== void 0 + ? _transformOptions$sup4 + : options.caller.supportsTopLevelAwait + }, + filename + }; + } + + return { + canInstrument: true, + + getCacheKey(sourceText, sourcePath, transformOptions) { + const babelOptions = loadBabelConfig( + transformOptions.config.cwd, + sourcePath, + mergeBabelTransformOptions(sourcePath, transformOptions) + ); + return getCacheKeyFromConfig( + sourceText, + sourcePath, + babelOptions, + transformOptions + ); + }, + + async getCacheKeyAsync(sourceText, sourcePath, transformOptions) { + const babelOptions = await loadBabelConfigAsync( + transformOptions.config.cwd, + sourcePath, + mergeBabelTransformOptions(sourcePath, transformOptions) + ); + return getCacheKeyFromConfig( + sourceText, + sourcePath, + babelOptions, + transformOptions + ); + }, + + process(sourceText, sourcePath, transformOptions) { + const babelOptions = loadBabelOptions( + transformOptions.config.cwd, + sourcePath, + mergeBabelTransformOptions(sourcePath, transformOptions), + transformOptions + ); + const transformResult = (0, _core().transformSync)( + sourceText, + babelOptions + ); + + if (transformResult) { + const {code, map} = transformResult; + + if (typeof code === 'string') { + return { + code, + map + }; + } + } + + return sourceText; + }, + + async processAsync(sourceText, sourcePath, transformOptions) { + const babelOptions = await loadBabelOptionsAsync( + transformOptions.config.cwd, + sourcePath, + mergeBabelTransformOptions(sourcePath, transformOptions), + transformOptions + ); + const transformResult = await (0, _core().transformAsync)( + sourceText, + babelOptions + ); + + if (transformResult) { + const {code, map} = transformResult; + + if (typeof code === 'string') { + return { + code, + map + }; + } + } + + return sourceText; + } + }; +}; + +const transformer = { + ...createTransformer(), + // Assigned here so only the exported transformer has `createTransformer`, + // instead of all created transformers by the function + createTransformer +}; +var _default = transformer; +exports.default = _default; diff --git a/node_modules/babel-jest/build/loadBabelConfig.d.ts b/node_modules/babel-jest/build/loadBabelConfig.d.ts new file mode 100644 index 0000000..df6150f --- /dev/null +++ b/node_modules/babel-jest/build/loadBabelConfig.d.ts @@ -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 { loadPartialConfig, loadPartialConfigAsync } from '@babel/core'; diff --git a/node_modules/babel-jest/build/loadBabelConfig.js b/node_modules/babel-jest/build/loadBabelConfig.js new file mode 100644 index 0000000..6450a24 --- /dev/null +++ b/node_modules/babel-jest/build/loadBabelConfig.js @@ -0,0 +1,27 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { + value: true +}); +Object.defineProperty(exports, 'loadPartialConfig', { + enumerable: true, + get: function () { + return _core().loadPartialConfig; + } +}); +Object.defineProperty(exports, 'loadPartialConfigAsync', { + enumerable: true, + get: function () { + return _core().loadPartialConfigAsync; + } +}); + +function _core() { + const data = require('@babel/core'); + + _core = function () { + return data; + }; + + return data; +} diff --git a/node_modules/babel-jest/package.json b/node_modules/babel-jest/package.json new file mode 100644 index 0000000..875526c --- /dev/null +++ b/node_modules/babel-jest/package.json @@ -0,0 +1,45 @@ +{ + "name": "babel-jest", + "description": "Jest plugin to use babel for transformation.", + "version": "27.5.1", + "repository": { + "type": "git", + "url": "https://github.com/facebook/jest.git", + "directory": "packages/babel-jest" + }, + "license": "MIT", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": { + "types": "./build/index.d.ts", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, + "dependencies": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "devDependencies": { + "@babel/core": "^7.8.0", + "@jest/test-utils": "^27.5.1", + "@types/graceful-fs": "^4.1.3" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "publishConfig": { + "access": "public" + }, + "gitHead": "67c1aa20c5fec31366d733e901fee2b981cb1850" +} |