| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 | /** * 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<CallerTransformOptions> {    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<string, string>, coverageOptions: ShouldInstrumentOptions, testPath: Config.Path);    static shouldInstrument: typeof shouldInstrument;    static createContext(config: Config.ProjectConfig, options: {        console?: Console;        maxWorkers: number;        watch?: boolean;        watchman: boolean;    }): Promise<Context>;    static createHasteMap(config: Config.ProjectConfig, options?: HasteMapOptions): HasteMap;    static createResolver(config: Config.ProjectConfig, moduleMap: IModuleMap): Resolver;    static runCLI(): Promise<never>;    static getCLIOptions(): never;    unstable_shouldLoadAsEsm(path: Config.Path): boolean;    private loadEsmModule;    private resolveModule;    private linkAndEvaluateModule;    unstable_importModule(from: Config.Path, moduleName?: string): Promise<void>;    private loadCjsAsEsm;    private importMock;    private getExportsOfCjs;    requireModule<T = unknown>(from: Config.Path, moduleName?: string, options?: InternalModuleOptions, isRequireActual?: boolean): T;    requireInternalModule<T = unknown>(from: Config.Path, to?: string): T;    requireActual<T = unknown>(from: Config.Path, moduleName: string): T;    requireMock<T = unknown>(from: Config.Path, moduleName: string): T;    private _loadModule;    private _getFullTransformationOptions;    requireModuleOrMock<T = unknown>(from: Config.Path, moduleName: string): T;    isolateModules(fn: () => void): void;    resetModules(): void;    collectV8Coverage(): Promise<void>;    stopCollectingV8Coverage(): Promise<void>;    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;}
 |