/** * 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 { JestEnvironment } from '@jest/environment'; import type * as JestGlobals from '@jest/globals'; import type { SourceMapRegistry } from '@jest/source-map'; import type { V8CoverageResult } from '@jest/test-result'; import { CallerTransformOptions, ScriptTransformer, ShouldInstrumentOptions, shouldInstrument } from '@jest/transform'; import type { Config, Global } from '@jest/types'; import type { IModuleMap } from 'jest-haste-map'; import HasteMap from 'jest-haste-map'; import Resolver from 'jest-resolve'; import type { Context } from './types'; export type { Context } from './types'; interface JestGlobals extends Global.TestFrameworkGlobals { expect: typeof JestGlobals.expect; } declare type HasteMapOptions = { console?: Console; maxWorkers: number; resetCache: boolean; watch?: boolean; watchman: boolean; }; interface InternalModuleOptions extends Required { isInternalModule: boolean; } export default class Runtime { private readonly _cacheFS; private readonly _config; private readonly _coverageOptions; private _currentlyExecutingModulePath; private readonly _environment; private readonly _explicitShouldMock; private readonly _explicitShouldMockModule; private _fakeTimersImplementation; private readonly _internalModuleRegistry; private _isCurrentlyExecutingManualMock; private _mainModule; private readonly _mockFactories; private readonly _mockMetaDataCache; private _mockRegistry; private _isolatedMockRegistry; private _moduleMockRegistry; private readonly _moduleMockFactories; private readonly _moduleMocker; private _isolatedModuleRegistry; private _moduleRegistry; private readonly _esmoduleRegistry; private readonly _cjsNamedExports; private readonly _esmModuleLinkingMap; private readonly _testPath; private readonly _resolver; private _shouldAutoMock; private readonly _shouldMockModuleCache; private readonly _shouldUnmockTransitiveDependenciesCache; private readonly _sourceMapRegistry; private readonly _scriptTransformer; private readonly _fileTransforms; private readonly _fileTransformsMutex; private _v8CoverageInstrumenter; private _v8CoverageResult; private readonly _transitiveShouldMock; private _unmockList; private readonly _virtualMocks; private readonly _virtualModuleMocks; private _moduleImplementation?; private readonly jestObjectCaches; private jestGlobals?; private readonly esmConditions; private readonly cjsConditions; private isTornDown; constructor(config: Config.ProjectConfig, environment: JestEnvironment, resolver: Resolver, transformer: ScriptTransformer, cacheFS: Map, coverageOptions: ShouldInstrumentOptions, testPath: Config.Path); static shouldInstrument: typeof shouldInstrument; static createContext(config: Config.ProjectConfig, options: { console?: Console; maxWorkers: number; watch?: boolean; watchman: boolean; }): Promise; static createHasteMap(config: Config.ProjectConfig, options?: HasteMapOptions): HasteMap; static createResolver(config: Config.ProjectConfig, moduleMap: IModuleMap): Resolver; static runCLI(): Promise; static getCLIOptions(): never; unstable_shouldLoadAsEsm(path: Config.Path): boolean; private loadEsmModule; private resolveModule; private linkAndEvaluateModule; unstable_importModule(from: Config.Path, moduleName?: string): Promise; private loadCjsAsEsm; private importMock; private getExportsOfCjs; requireModule(from: Config.Path, moduleName?: string, options?: InternalModuleOptions, isRequireActual?: boolean): T; requireInternalModule(from: Config.Path, to?: string): T; requireActual(from: Config.Path, moduleName: string): T; requireMock(from: Config.Path, moduleName: string): T; private _loadModule; private _getFullTransformationOptions; requireModuleOrMock(from: Config.Path, moduleName: string): T; isolateModules(fn: () => void): void; resetModules(): void; collectV8Coverage(): Promise; stopCollectingV8Coverage(): Promise; getAllCoverageInfoCopy(): JestEnvironment['global']['__coverage__']; getAllV8CoverageInfoCopy(): V8CoverageResult; getSourceMaps(): SourceMapRegistry; setMock(from: string, moduleName: string, mockFactory: () => unknown, options?: { virtual?: boolean; }): void; private setModuleMock; restoreAllMocks(): void; resetAllMocks(): void; clearAllMocks(): void; teardown(): void; private _resolveModule; private _requireResolve; private _requireResolvePaths; private _execModule; private transformFile; private transformFileAsync; private createScriptFromCode; private _requireCoreModule; private _importCoreModule; private _getMockedNativeModule; private _generateMock; private _shouldMock; private _createRequireImplementation; private _createJestObjectFor; private _logFormattedReferenceError; private wrapCodeInModuleWrapper; private constructModuleWrapperStart; private constructInjectedModuleParameters; private handleExecutionError; private getGlobalsForCjs; private getGlobalsForEsm; private getGlobalsFromEnvironment; private readFile; setGlobalsForRuntime(globals: JestGlobals): void; }