diff --git a/.eslintrc.cjs b/.eslintrc.cjs index dc815e3b5f8e..7756dc0efe31 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -394,7 +394,6 @@ module.exports = { 'scripts/*', 'packages/*/__benchmarks__/test.js', 'packages/create-jest/src/runCreate.ts', - 'packages/jest-repl/src/cli/runtime-cli.ts', ], rules: { 'no-console': 'off', diff --git a/CHANGELOG.md b/CHANGELOG.md index e989ae52e8dd..4fd2db2ae218 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -60,6 +60,7 @@ ### Chore & Maintenance +- `[*]` [**BREAKING**] Deprecate package `jest-repl` ([14459](https://github.com/jestjs/jest/pull/14459)) - `[*]` [**BREAKING**] Drop support for Node.js versions 14 and 19 ([#14460](https://github.com/jestjs/jest/pull/14460)) - `[*]` [**BREAKING**] Drop support for `typescript@4.3`, minimum version is now `5.0` ([#14542](https://github.com/jestjs/jest/pull/14542)) - `[*]` Depend on exact versions of monorepo dependencies instead of `^` range ([#14553](https://github.com/jestjs/jest/pull/14553)) diff --git a/jest.config.mjs b/jest.config.mjs index 2253a0dc75da..6d705be75dd1 100644 --- a/jest.config.mjs +++ b/jest.config.mjs @@ -57,7 +57,6 @@ export default { '/packages/jest-haste-map/src/__tests__/haste_impl.js', '/packages/jest-haste-map/src/__tests__/dependencyExtractor.js', '/packages/jest-haste-map/src/__tests__/test_dotfiles_root/', - '/packages/jest-repl/src/__tests__/test_root', '/packages/jest-runtime/src/__tests__/defaultResolver.js', '/packages/jest-runtime/src/__tests__/module_dir/', '/packages/jest-runtime/src/__tests__/NODE_PATH_dir', diff --git a/package.json b/package.json index 0257b8ea2892..1de12521b14e 100644 --- a/package.json +++ b/package.json @@ -110,7 +110,7 @@ "remove-examples": "node ./scripts/remove-examples.mjs", "test-ci-partial": "yarn test-ci-partial:parallel -i", "test-ci-partial:parallel": "yarn jest --color --config jest.config.ci.mjs", - "test-leak": "yarn jest -i --detectLeaks --color jest-mock jest-diff jest-repl pretty-format", + "test-leak": "yarn jest -i --detectLeaks --color jest-mock jest-diff pretty-format", "test-ts": "yarn jest --config jest.config.ts.mjs", "test-types": "yarn tstyche && yarn test-ts --selectProjects type-tests", "test": "yarn lint && yarn jest", diff --git a/packages/jest-repl/.npmignore b/packages/jest-repl/.npmignore deleted file mode 100644 index bb9fdb98bae7..000000000000 --- a/packages/jest-repl/.npmignore +++ /dev/null @@ -1,8 +0,0 @@ -**/__mocks__/** -**/__tests__/** -__typetests__ -src -tsconfig.json -tsconfig.tsbuildinfo -api-extractor.json -.eslintcache diff --git a/packages/jest-repl/bin/jest-repl.js b/packages/jest-repl/bin/jest-repl.js deleted file mode 100755 index c9a0040c9704..000000000000 --- a/packages/jest-repl/bin/jest-repl.js +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env node -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -if (process.env.NODE_ENV == null) { - process.env.NODE_ENV = 'test'; -} - -require('..').repl(); diff --git a/packages/jest-repl/bin/jest-runtime-cli.js b/packages/jest-repl/bin/jest-runtime-cli.js deleted file mode 100755 index d0dc9518f0c5..000000000000 --- a/packages/jest-repl/bin/jest-runtime-cli.js +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env node -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -if (process.env.NODE_ENV == null) { - process.env.NODE_ENV = 'test'; -} - -require('..').runtime(); diff --git a/packages/jest-repl/package.json b/packages/jest-repl/package.json deleted file mode 100644 index 46027b7bbdaa..000000000000 --- a/packages/jest-repl/package.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "name": "jest-repl", - "version": "30.0.0-alpha.3", - "repository": { - "type": "git", - "url": "https://github.com/jestjs/jest.git", - "directory": "packages/jest-repl" - }, - "license": "MIT", - "main": "./build/index.js", - "types": "./build/index.d.ts", - "exports": { - ".": { - "types": "./build/index.d.ts", - "require": "./build/index.js", - "import": "./build/index.mjs", - "default": "./build/index.js" - }, - "./package.json": "./package.json", - "./bin/jest-repl": "./bin/jest-repl.js", - "./bin/jest-runtime-cli": "./bin/jest-runtime-cli.js" - }, - "dependencies": { - "@jest/console": "workspace:*", - "@jest/environment": "workspace:*", - "@jest/transform": "workspace:*", - "@jest/types": "workspace:*", - "chalk": "^4.0.0", - "jest-config": "workspace:*", - "jest-runtime": "workspace:*", - "jest-util": "workspace:*", - "jest-validate": "workspace:*", - "repl": "^0.1.3", - "yargs": "^17.3.1" - }, - "devDependencies": { - "@types/yargs": "^17.0.8", - "execa": "^5.0.0" - }, - "bin": { - "jest-repl": "./bin/jest-repl.js", - "jest-runtime": "./bin/jest-runtime-cli.js" - }, - "engines": { - "node": "^16.10.0 || ^18.12.0 || >=20.0.0" - }, - "publishConfig": { - "access": "public" - } -} diff --git a/packages/jest-repl/src/__tests__/jest_repl.test.js b/packages/jest-repl/src/__tests__/jest_repl.test.js deleted file mode 100644 index 3190b71d4829..000000000000 --- a/packages/jest-repl/src/__tests__/jest_repl.test.js +++ /dev/null @@ -1,35 +0,0 @@ -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - */ - -import {spawnSync} from 'child_process'; -import * as path from 'path'; - -const JEST_RUNTIME = require.resolve('../../bin/jest-repl.js'); - -describe('Repl', () => { - describe('cli', () => { - it('runs without errors', () => { - let command = JEST_RUNTIME; - const args = []; - - // Windows can't handle hashbangs, so is the best we can do - if (process.platform === 'win32') { - args.push(command); - command = 'node'; - } - - const output = spawnSync(command, args, { - cwd: process.cwd(), - encoding: 'utf8', - env: process.env, - }); - expect(output.stderr.trim()).toBe(''); - expect(output.stdout.trim()).toMatch(/›/u); - }); - }); -}); diff --git a/packages/jest-repl/src/__tests__/runtime_cli.test.js b/packages/jest-repl/src/__tests__/runtime_cli.test.js deleted file mode 100644 index fbbfbe0bd2c9..000000000000 --- a/packages/jest-repl/src/__tests__/runtime_cli.test.js +++ /dev/null @@ -1,53 +0,0 @@ -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -import {sync as spawnSync} from 'execa'; - -const JEST_RUNTIME = require.resolve('../../bin/jest-runtime-cli.js'); - -const timeout = 10_000; - -const run = args => - spawnSync(JEST_RUNTIME, args, { - cwd: process.cwd(), - env: process.env, - reject: false, - timeout: timeout - 500, - }); - -describe('Runtime CLI', () => { - beforeAll(() => { - jest.retryTimes(3); - jest.setTimeout(timeout); - }); - - it('fails with no path', () => { - const expectedOutput = - 'Please provide a path to a script. (See --help for details)'; - expect(run([]).stdout).toBe(expectedOutput); - }); - - it('displays script output', () => { - const scriptPath = require.resolve('./test_root/logging.js'); - expect(run([scriptPath, '--no-cache']).stdout).toMatch('Hello, world!'); - }); - - it('always disables automocking', () => { - const scriptPath = require.resolve('./test_root/logging.js'); - const output = run([ - scriptPath, - '--no-cache', - `--config=${JSON.stringify({automock: true})}`, - ]); - expect(output.stdout).toMatch('Hello, world!'); - }); - - it('throws script errors', () => { - const scriptPath = require.resolve('./test_root/throwing.js'); - expect(run([scriptPath, '--no-cache']).stderr).toMatch('Error: throwing'); - }); -}); diff --git a/packages/jest-repl/src/__tests__/test_root/logging.js b/packages/jest-repl/src/__tests__/test_root/logging.js deleted file mode 100644 index 2964f471113f..000000000000 --- a/packages/jest-repl/src/__tests__/test_root/logging.js +++ /dev/null @@ -1,16 +0,0 @@ -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -'use strict'; - -if ( - require('jest-runtime/src/__tests__/test_root/RegularModule').getModuleStateValue() -) { - console.log('Hello, world!'); -} else { - console.log('Automocking is not properly disabled in jest-runtime.'); -} diff --git a/packages/jest-repl/src/__tests__/test_root/throwing.js b/packages/jest-repl/src/__tests__/test_root/throwing.js deleted file mode 100644 index feb4ffc0896c..000000000000 --- a/packages/jest-repl/src/__tests__/test_root/throwing.js +++ /dev/null @@ -1,10 +0,0 @@ -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -'use strict'; - -throw new Error('throwing'); diff --git a/packages/jest-repl/src/__tests__/tsconfig.json b/packages/jest-repl/src/__tests__/tsconfig.json deleted file mode 100644 index dd1bca103251..000000000000 --- a/packages/jest-repl/src/__tests__/tsconfig.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "extends": "../../../../tsconfig.test.json", - "include": ["./**/*"], - "references": [{"path": "../../"}] -} diff --git a/packages/jest-repl/src/cli/args.ts b/packages/jest-repl/src/cli/args.ts deleted file mode 100644 index c3bf582b9159..000000000000 --- a/packages/jest-repl/src/cli/args.ts +++ /dev/null @@ -1,51 +0,0 @@ -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - */ - -import type {Options} from 'yargs'; - -export const usage = 'Usage: $0 [--config=]'; - -const runtimeCLIOptions: Record< - 'cache' | 'config' | 'debug' | 'watchman', - Options -> = { - cache: { - default: true, - description: - 'Whether to use the preprocessor cache. Disable ' + - 'the cache using --no-cache.', - type: 'boolean', - }, - config: { - alias: 'c', - description: 'The path to a Jest config file.', - type: 'string', - }, - debug: { - description: 'Print debugging info about your jest config.', - type: 'boolean', - }, - watchman: { - default: true, - description: - 'Whether to use watchman for file crawling. Disable using ' + - '--no-watchman.', - type: 'boolean', - }, -}; - -export const options: Record = { - ...runtimeCLIOptions, - replname: { - alias: 'r', - description: - 'The "name" of the file given to transformers to be ' + - 'transformed. For example, "repl.ts" if using a TypeScript transformer.', - type: 'string', - }, -}; diff --git a/packages/jest-repl/src/cli/index.ts b/packages/jest-repl/src/cli/index.ts deleted file mode 100644 index 08359c2d48c5..000000000000 --- a/packages/jest-repl/src/cli/index.ts +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/env node -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - */ - -import yargs = require('yargs'); -import type {Config} from '@jest/types'; -import {deprecationEntries} from 'jest-config'; -import {validateCLIOptions} from 'jest-validate'; -import * as args from './args'; -import {run as runtimeCLI} from './runtime-cli'; -import {VERSION} from './version'; - -const REPL_SCRIPT = require.resolve('./repl'); - -export function run(): Promise { - const argv = yargs.usage(args.usage).options(args.options) - .argv as Config.Argv; - - validateCLIOptions(argv, {...args.options, deprecationEntries}); - - argv._ = [REPL_SCRIPT]; - - return runtimeCLI(argv, [`Jest REPL v${VERSION}`]); -} diff --git a/packages/jest-repl/src/cli/repl.ts b/packages/jest-repl/src/cli/repl.ts deleted file mode 100644 index 648c4acc3ac9..000000000000 --- a/packages/jest-repl/src/cli/repl.ts +++ /dev/null @@ -1,117 +0,0 @@ -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -declare const jestGlobalConfig: Config.GlobalConfig; -declare const jestProjectConfig: Config.ProjectConfig; - -import * as path from 'path'; -import * as repl from 'repl'; -import * as util from 'util'; -import {runInThisContext} from 'vm'; -import type {SyncTransformer} from '@jest/transform'; -import type {Config} from '@jest/types'; -import {interopRequireDefault} from 'jest-util'; - -// TODO: support async as well -let transformer: SyncTransformer | undefined; -let transformerConfig: unknown; - -const evalCommand: repl.REPLEval = ( - cmd: string, - _context: unknown, - _filename: string, - callback: (e: Error | null, result?: unknown) => void, -) => { - let result: unknown; - try { - if (transformer != null) { - const transformResult = transformer.process( - cmd, - jestGlobalConfig.replname ?? 'jest.js', - { - cacheFS: new Map(), - config: jestProjectConfig, - configString: JSON.stringify(jestProjectConfig), - instrument: false, - supportsDynamicImport: false, - supportsExportNamespaceFrom: false, - supportsStaticESM: false, - supportsTopLevelAwait: false, - transformerConfig, - }, - ); - cmd = - typeof transformResult === 'string' - ? transformResult - : transformResult.code; - } - result = runInThisContext(cmd) as unknown; - } catch (error: any) { - return callback( - isRecoverableError(error) ? new repl.Recoverable(error) : error, - ); - } - return callback(null, result); -}; - -const isRecoverableError = (error: unknown) => { - if (!util.types.isNativeError(error)) { - return false; - } - - if (error.name === 'SyntaxError') { - return [ - 'Unterminated template', - 'Missing } in template expression', - 'Unexpected end of input', - 'missing ) after argument list', - 'Unexpected token', - ].some(exception => error.message.includes(exception)); - } - return false; -}; - -if (jestProjectConfig.transform) { - let transformerPath = null; - for (const transform of jestProjectConfig.transform) { - if (new RegExp(transform[0]).test('foobar.js')) { - transformerPath = transform[1]; - transformerConfig = transform[2]; - break; - } - } - if (transformerPath != null) { - const transformerOrFactory = interopRequireDefault( - require(transformerPath), - ).default; - - if (typeof transformerOrFactory.createTransformer === 'function') { - transformer = transformerOrFactory.createTransformer(transformerConfig); - } else { - transformer = transformerOrFactory; - } - - if (typeof transformer?.process !== 'function') { - throw new TypeError( - 'Jest: a transformer must export a `process` function.', - ); - } - } -} - -const replInstance: repl.REPLServer = repl.start({ - eval: evalCommand, - prompt: '\u203A ', - useGlobal: true, -}); - -replInstance.context.require = (moduleName: string) => { - if (/([./\\])/.test(moduleName)) { - moduleName = path.resolve(process.cwd(), moduleName); - } - return require(moduleName) as unknown; -}; diff --git a/packages/jest-repl/src/cli/runtime-cli.ts b/packages/jest-repl/src/cli/runtime-cli.ts deleted file mode 100644 index 335af1858dc1..000000000000 --- a/packages/jest-repl/src/cli/runtime-cli.ts +++ /dev/null @@ -1,151 +0,0 @@ -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -import { - // @ts-expect-error - added in Node 19.4.0 - availableParallelism, - cpus, -} from 'os'; -import * as path from 'path'; -import * as util from 'util'; -import chalk = require('chalk'); -import yargs = require('yargs'); -import {CustomConsole} from '@jest/console'; -import type {JestEnvironment} from '@jest/environment'; -import {createScriptTransformer} from '@jest/transform'; -import type {Config} from '@jest/types'; -import {deprecationEntries, readConfig} from 'jest-config'; -import Runtime from 'jest-runtime'; -import {setGlobal, tryRealpath} from 'jest-util'; -import {validateCLIOptions} from 'jest-validate'; -import * as args from './args'; -import {VERSION} from './version'; - -export async function run( - cliArgv?: Config.Argv, - cliInfo?: Array, -): Promise { - let argv: Config.Argv; - if (cliArgv) { - argv = cliArgv; - } else { - argv = yargs - .usage(args.usage) - .help(false) - .version(false) - .options(args.options).argv as Config.Argv; - - validateCLIOptions(argv, {...args.options, deprecationEntries}); - } - - if (argv.help === true) { - yargs.showHelp(); - process.on('exit', () => (process.exitCode = 1)); - return; - } - - if (argv.version == true) { - console.log(`v${VERSION}\n`); - return; - } - - if (argv._.length === 0) { - console.log('Please provide a path to a script. (See --help for details)'); - process.on('exit', () => (process.exitCode = 1)); - return; - } - - const root = tryRealpath(process.cwd()); - const filePath = path.resolve(root, argv._[0].toString()); - - if (argv.debug === true) { - const info = cliInfo ? `, ${cliInfo.join(', ')}` : ''; - console.log(`Using Jest Runtime v${VERSION}${info}`); - } - const options = await readConfig(argv, root); - const globalConfig = options.globalConfig; - // Always disable automocking in scripts. - const projectConfig: Config.ProjectConfig = { - ...options.projectConfig, - automock: false, - }; - - try { - const numCpus: number = - typeof availableParallelism === 'function' - ? availableParallelism() - : cpus().length; - - const hasteMap = await Runtime.createContext(projectConfig, { - maxWorkers: Math.max(numCpus - 1, 1), - watchman: globalConfig.watchman, - }); - - const transformer = await createScriptTransformer(projectConfig); - const Environment: typeof JestEnvironment = - await transformer.requireAndTranspileModule( - projectConfig.testEnvironment, - ); - - const customConsole = new CustomConsole(process.stdout, process.stderr); - const environment = new Environment( - { - globalConfig, - projectConfig, - }, - {console: customConsole, docblockPragmas: {}, testPath: filePath}, - ); - setGlobal(environment.global, 'console', customConsole); - setGlobal(environment.global, 'jestProjectConfig', projectConfig); - setGlobal(environment.global, 'jestGlobalConfig', globalConfig); - - const runtime = new Runtime( - projectConfig, - environment, - hasteMap.resolver, - transformer, - new Map(), - { - changedFiles: undefined, - collectCoverage: false, - collectCoverageFrom: [], - coverageProvider: 'v8', - sourcesRelatedToTestsInChangedFiles: undefined, - }, - filePath, - globalConfig, - ); - - for (const path of projectConfig.setupFiles) { - const esm = runtime.unstable_shouldLoadAsEsm(path); - - if (esm) { - await runtime.unstable_importModule(path); - } else { - const setupFile = runtime.requireModule(path); - if (typeof setupFile === 'function') { - await setupFile(); - } - } - } - - const esm = runtime.unstable_shouldLoadAsEsm(filePath); - - if (esm) { - await runtime.unstable_importModule(filePath); - } else { - runtime.requireModule(filePath); - } - } catch (error: any) { - console.error( - chalk.red(util.types.isNativeError(error) ? error.stack : error), - ); - process.on('exit', () => { - process.exitCode = 1; - }); - } -} diff --git a/packages/jest-repl/src/cli/version.ts b/packages/jest-repl/src/cli/version.ts deleted file mode 100644 index f89abb67c48b..000000000000 --- a/packages/jest-repl/src/cli/version.ts +++ /dev/null @@ -1,11 +0,0 @@ -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -// For some reason, doing `require`ing here works, while inside `cli` fails -export const VERSION = ( - require('../../package.json') as Record -).version as string; diff --git a/packages/jest-repl/src/index.ts b/packages/jest-repl/src/index.ts deleted file mode 100644 index 3cd9c2a3b2f7..000000000000 --- a/packages/jest-repl/src/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -export {run as repl} from './cli'; -export {run as runtime} from './cli/runtime-cli'; diff --git a/packages/jest-repl/tsconfig.json b/packages/jest-repl/tsconfig.json deleted file mode 100644 index bdd24b2b9309..000000000000 --- a/packages/jest-repl/tsconfig.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "rootDir": "src", - "outDir": "build" - }, - "include": ["./src/**/*"], - "exclude": ["./**/__tests__/**/*"], - "references": [ - {"path": "../jest-config"}, - {"path": "../jest-console"}, - {"path": "../jest-environment"}, - {"path": "../jest-runtime"}, - {"path": "../jest-transform"}, - {"path": "../jest-types"}, - {"path": "../jest-util"}, - {"path": "../jest-validate"} - ] -} diff --git a/packages/jest-runtime/src/index.ts b/packages/jest-runtime/src/index.ts index 72d247e81588..d5a5f13690c6 100644 --- a/packages/jest-runtime/src/index.ts +++ b/packages/jest-runtime/src/index.ts @@ -399,14 +399,6 @@ export default class Runtime { }); } - static async runCLI(): Promise { - throw new Error('The jest-runtime CLI has been moved into jest-repl'); - } - - static getCLIOptions(): never { - throw new Error('The jest-runtime CLI has been moved into jest-repl'); - } - // unstable as it should be replaced by https://github.com/nodejs/modules/issues/393, and we don't want people to use it unstable_shouldLoadAsEsm(modulePath: string): boolean { return ( diff --git a/scripts/buildUtils.mjs b/scripts/buildUtils.mjs index 25d4adee4072..b6962332f07c 100644 --- a/scripts/buildUtils.mjs +++ b/scripts/buildUtils.mjs @@ -228,11 +228,9 @@ export function createBuildConfigs() { './src/setup_jest_globals.ts', ), } - : pkg.name === 'jest-repl' - ? {repl: path.resolve(packageDir, './src/cli/repl.ts')} - : pkg.name === 'jest-snapshot' - ? {worker: path.resolve(packageDir, './src/worker.ts')} - : {}; + : pkg.name === 'jest-snapshot' + ? {worker: path.resolve(packageDir, './src/worker.ts')} + : {}; const extraEntryPoints = // skip expect for now diff --git a/scripts/lintTs.mjs b/scripts/lintTs.mjs index 59dc3fa48028..a36c97717629 100644 --- a/scripts/lintTs.mjs +++ b/scripts/lintTs.mjs @@ -52,7 +52,6 @@ const packagesNotToTest = [ 'jest-mock', 'jest-phabricator', 'jest-regex-util', - 'jest-repl', 'jest-reporters', 'jest-resolve', 'jest-runner', diff --git a/yarn.lock b/yarn.lock index 890f2eaf8725..2020fbf66d27 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13001,29 +13001,6 @@ __metadata: languageName: unknown linkType: soft -"jest-repl@workspace:packages/jest-repl": - version: 0.0.0-use.local - resolution: "jest-repl@workspace:packages/jest-repl" - dependencies: - "@jest/console": "workspace:*" - "@jest/environment": "workspace:*" - "@jest/transform": "workspace:*" - "@jest/types": "workspace:*" - "@types/yargs": ^17.0.8 - chalk: ^4.0.0 - execa: ^5.0.0 - jest-config: "workspace:*" - jest-runtime: "workspace:*" - jest-util: "workspace:*" - jest-validate: "workspace:*" - repl: ^0.1.3 - yargs: ^17.3.1 - bin: - jest-repl: ./bin/jest-repl.js - jest-runtime: ./bin/jest-runtime-cli.js - languageName: unknown - linkType: soft - "jest-resolve-dependencies@workspace:*, jest-resolve-dependencies@workspace:packages/jest-resolve-dependencies": version: 0.0.0-use.local resolution: "jest-resolve-dependencies@workspace:packages/jest-resolve-dependencies" @@ -18287,13 +18264,6 @@ __metadata: languageName: node linkType: hard -"repl@npm:^0.1.3": - version: 0.1.3 - resolution: "repl@npm:0.1.3" - checksum: 3223b4f7ac600aba7776655339ed95cccfc7e4676769984186a314a5ba91c51696ed96183e7d63e2f58187339dc39e940b487d7e0a1e159c30844cc79d1d64e0 - languageName: node - linkType: hard - "require-directory@npm:^2.1.1": version: 2.1.1 resolution: "require-directory@npm:2.1.1"