| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454 | 
							- 'use strict';
 
- Object.defineProperty(exports, '__esModule', {
 
-   value: true
 
- });
 
- exports.default = void 0;
 
- function nativeModule() {
 
-   const data = _interopRequireWildcard(require('module'));
 
-   nativeModule = function () {
 
-     return data;
 
-   };
 
-   return data;
 
- }
 
- function path() {
 
-   const data = _interopRequireWildcard(require('path'));
 
-   path = function () {
 
-     return data;
 
-   };
 
-   return data;
 
- }
 
- function _url() {
 
-   const data = require('url');
 
-   _url = function () {
 
-     return data;
 
-   };
 
-   return data;
 
- }
 
- function _vm() {
 
-   const data = require('vm');
 
-   _vm = function () {
 
-     return data;
 
-   };
 
-   return data;
 
- }
 
- function _cjsModuleLexer() {
 
-   const data = require('cjs-module-lexer');
 
-   _cjsModuleLexer = function () {
 
-     return data;
 
-   };
 
-   return data;
 
- }
 
- function _collectV8Coverage() {
 
-   const data = require('collect-v8-coverage');
 
-   _collectV8Coverage = function () {
 
-     return data;
 
-   };
 
-   return data;
 
- }
 
- function _execa() {
 
-   const data = _interopRequireDefault(require('execa'));
 
-   _execa = 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;
 
- }
 
- function _stripBom() {
 
-   const data = _interopRequireDefault(require('strip-bom'));
 
-   _stripBom = function () {
 
-     return data;
 
-   };
 
-   return data;
 
- }
 
- function _transform() {
 
-   const data = require('@jest/transform');
 
-   _transform = function () {
 
-     return data;
 
-   };
 
-   return data;
 
- }
 
- function _jestHasteMap() {
 
-   const data = _interopRequireDefault(require('jest-haste-map'));
 
-   _jestHasteMap = function () {
 
-     return data;
 
-   };
 
-   return data;
 
- }
 
- function _jestMessageUtil() {
 
-   const data = require('jest-message-util');
 
-   _jestMessageUtil = function () {
 
-     return data;
 
-   };
 
-   return data;
 
- }
 
- function _jestRegexUtil() {
 
-   const data = require('jest-regex-util');
 
-   _jestRegexUtil = function () {
 
-     return data;
 
-   };
 
-   return data;
 
- }
 
- function _jestResolve() {
 
-   const data = _interopRequireDefault(require('jest-resolve'));
 
-   _jestResolve = function () {
 
-     return data;
 
-   };
 
-   return data;
 
- }
 
- function _jestSnapshot() {
 
-   const data = _interopRequireDefault(require('jest-snapshot'));
 
-   _jestSnapshot = function () {
 
-     return data;
 
-   };
 
-   return data;
 
- }
 
- function _jestUtil() {
 
-   const data = require('jest-util');
 
-   _jestUtil = function () {
 
-     return data;
 
-   };
 
-   return data;
 
- }
 
- var _helpers = require('./helpers');
 
- 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;
 
- }
 
- function _defineProperty(obj, key, value) {
 
-   if (key in obj) {
 
-     Object.defineProperty(obj, key, {
 
-       value: value,
 
-       enumerable: true,
 
-       configurable: true,
 
-       writable: true
 
-     });
 
-   } else {
 
-     obj[key] = value;
 
-   }
 
-   return obj;
 
- }
 
- const esmIsAvailable = typeof _vm().SourceTextModule === 'function';
 
- const defaultTransformOptions = {
 
-   isInternalModule: false,
 
-   supportsDynamicImport: esmIsAvailable,
 
-   supportsExportNamespaceFrom: false,
 
-   supportsStaticESM: false,
 
-   supportsTopLevelAwait: false
 
- };
 
- // These are modules that we know
 
- // * are safe to require from the outside (not stateful, not prone to errors passing in instances from different realms), and
 
- // * take sufficiently long to require to warrant an optimization.
 
- // When required from the outside, they use the worker's require cache and are thus
 
- // only loaded once per worker, not once per test file.
 
- // Use /benchmarks/test-file-overhead to measure the impact.
 
- // Note that this only applies when they are required in an internal context;
 
- // users who require one of these modules in their tests will still get the module from inside the VM.
 
- // Prefer listing a module here only if it is impractical to use the jest-resolve-outside-vm-option where it is required,
 
- // e.g. because there are many require sites spread across the dependency graph.
 
- const INTERNAL_MODULE_REQUIRE_OUTSIDE_OPTIMIZED_MODULES = new Set(['chalk']);
 
- const JEST_RESOLVE_OUTSIDE_VM_OPTION = Symbol.for(
 
-   'jest-resolve-outside-vm-option'
 
- );
 
- const testTimeoutSymbol = Symbol.for('TEST_TIMEOUT_SYMBOL');
 
- const retryTimesSymbol = Symbol.for('RETRY_TIMES');
 
- const NODE_MODULES = path().sep + 'node_modules' + path().sep;
 
- const getModuleNameMapper = config => {
 
-   if (
 
-     Array.isArray(config.moduleNameMapper) &&
 
-     config.moduleNameMapper.length
 
-   ) {
 
-     return config.moduleNameMapper.map(([regex, moduleName]) => ({
 
-       moduleName,
 
-       regex: new RegExp(regex)
 
-     }));
 
-   }
 
-   return null;
 
- };
 
- const unmockRegExpCache = new WeakMap();
 
- const EVAL_RESULT_VARIABLE = 'Object.<anonymous>';
 
- const runtimeSupportsVmModules = typeof _vm().SyntheticModule === 'function';
 
- const supportsTopLevelAwait =
 
-   runtimeSupportsVmModules &&
 
-   (() => {
 
-     try {
 
-       // eslint-disable-next-line no-new
 
-       new (_vm().SourceTextModule)('await Promise.resolve()');
 
-       return true;
 
-     } catch {
 
-       return false;
 
-     }
 
-   })();
 
- const supportsNodeColonModulePrefixInRequire = (() => {
 
-   try {
 
-     require('node:fs');
 
-     return true;
 
-   } catch {
 
-     return false;
 
-   }
 
- })();
 
- const supportsNodeColonModulePrefixInImport = (() => {
 
-   const {stdout} = _execa().default.sync(
 
-     'node',
 
-     [
 
-       '--eval',
 
-       'import("node:fs").then(() => console.log(true), () => console.log(false));'
 
-     ],
 
-     {
 
-       reject: false
 
-     }
 
-   );
 
-   return stdout === 'true';
 
- })();
 
- class Runtime {
 
-   constructor(
 
-     config,
 
-     environment,
 
-     resolver,
 
-     transformer,
 
-     cacheFS,
 
-     coverageOptions,
 
-     testPath
 
-   ) {
 
-     var _this$_environment$ex, _this$_environment$ex2, _this$_environment;
 
-     _defineProperty(this, '_cacheFS', void 0);
 
-     _defineProperty(this, '_config', void 0);
 
-     _defineProperty(this, '_coverageOptions', void 0);
 
-     _defineProperty(this, '_currentlyExecutingModulePath', void 0);
 
-     _defineProperty(this, '_environment', void 0);
 
-     _defineProperty(this, '_explicitShouldMock', void 0);
 
-     _defineProperty(this, '_explicitShouldMockModule', void 0);
 
-     _defineProperty(this, '_fakeTimersImplementation', void 0);
 
-     _defineProperty(this, '_internalModuleRegistry', void 0);
 
-     _defineProperty(this, '_isCurrentlyExecutingManualMock', void 0);
 
-     _defineProperty(this, '_mainModule', void 0);
 
-     _defineProperty(this, '_mockFactories', void 0);
 
-     _defineProperty(this, '_mockMetaDataCache', void 0);
 
-     _defineProperty(this, '_mockRegistry', void 0);
 
-     _defineProperty(this, '_isolatedMockRegistry', void 0);
 
-     _defineProperty(this, '_moduleMockRegistry', void 0);
 
-     _defineProperty(this, '_moduleMockFactories', void 0);
 
-     _defineProperty(this, '_moduleMocker', void 0);
 
-     _defineProperty(this, '_isolatedModuleRegistry', void 0);
 
-     _defineProperty(this, '_moduleRegistry', void 0);
 
-     _defineProperty(this, '_esmoduleRegistry', void 0);
 
-     _defineProperty(this, '_cjsNamedExports', void 0);
 
-     _defineProperty(this, '_esmModuleLinkingMap', void 0);
 
-     _defineProperty(this, '_testPath', void 0);
 
-     _defineProperty(this, '_resolver', void 0);
 
-     _defineProperty(this, '_shouldAutoMock', void 0);
 
-     _defineProperty(this, '_shouldMockModuleCache', void 0);
 
-     _defineProperty(this, '_shouldUnmockTransitiveDependenciesCache', void 0);
 
-     _defineProperty(this, '_sourceMapRegistry', void 0);
 
-     _defineProperty(this, '_scriptTransformer', void 0);
 
-     _defineProperty(this, '_fileTransforms', void 0);
 
-     _defineProperty(this, '_fileTransformsMutex', void 0);
 
-     _defineProperty(this, '_v8CoverageInstrumenter', void 0);
 
-     _defineProperty(this, '_v8CoverageResult', void 0);
 
-     _defineProperty(this, '_transitiveShouldMock', void 0);
 
-     _defineProperty(this, '_unmockList', void 0);
 
-     _defineProperty(this, '_virtualMocks', void 0);
 
-     _defineProperty(this, '_virtualModuleMocks', void 0);
 
-     _defineProperty(this, '_moduleImplementation', void 0);
 
-     _defineProperty(this, 'jestObjectCaches', void 0);
 
-     _defineProperty(this, 'jestGlobals', void 0);
 
-     _defineProperty(this, 'esmConditions', void 0);
 
-     _defineProperty(this, 'cjsConditions', void 0);
 
-     _defineProperty(this, 'isTornDown', false);
 
-     this._cacheFS = cacheFS;
 
-     this._config = config;
 
-     this._coverageOptions = coverageOptions;
 
-     this._currentlyExecutingModulePath = '';
 
-     this._environment = environment;
 
-     this._explicitShouldMock = new Map();
 
-     this._explicitShouldMockModule = new Map();
 
-     this._internalModuleRegistry = new Map();
 
-     this._isCurrentlyExecutingManualMock = null;
 
-     this._mainModule = null;
 
-     this._mockFactories = new Map();
 
-     this._mockRegistry = new Map();
 
-     this._moduleMockRegistry = new Map();
 
-     this._moduleMockFactories = new Map();
 
-     invariant(
 
-       this._environment.moduleMocker,
 
-       '`moduleMocker` must be set on an environment when created'
 
-     );
 
-     this._moduleMocker = this._environment.moduleMocker;
 
-     this._isolatedModuleRegistry = null;
 
-     this._isolatedMockRegistry = null;
 
-     this._moduleRegistry = new Map();
 
-     this._esmoduleRegistry = new Map();
 
-     this._cjsNamedExports = new Map();
 
-     this._esmModuleLinkingMap = new WeakMap();
 
-     this._testPath = testPath;
 
-     this._resolver = resolver;
 
-     this._scriptTransformer = transformer;
 
-     this._shouldAutoMock = config.automock;
 
-     this._sourceMapRegistry = new Map();
 
-     this._fileTransforms = new Map();
 
-     this._fileTransformsMutex = new Map();
 
-     this._virtualMocks = new Map();
 
-     this._virtualModuleMocks = new Map();
 
-     this.jestObjectCaches = new Map();
 
-     this._mockMetaDataCache = new Map();
 
-     this._shouldMockModuleCache = new Map();
 
-     this._shouldUnmockTransitiveDependenciesCache = new Map();
 
-     this._transitiveShouldMock = new Map();
 
-     this._fakeTimersImplementation =
 
-       config.timers === 'legacy'
 
-         ? this._environment.fakeTimers
 
-         : this._environment.fakeTimersModern;
 
-     this._unmockList = unmockRegExpCache.get(config);
 
-     if (!this._unmockList && config.unmockedModulePathPatterns) {
 
-       this._unmockList = new RegExp(
 
-         config.unmockedModulePathPatterns.join('|')
 
-       );
 
-       unmockRegExpCache.set(config, this._unmockList);
 
-     }
 
-     const envExportConditions =
 
-       (_this$_environment$ex =
 
-         (_this$_environment$ex2 = (_this$_environment = this._environment)
 
-           .exportConditions) === null || _this$_environment$ex2 === void 0
 
-           ? void 0
 
-           : _this$_environment$ex2.call(_this$_environment)) !== null &&
 
-       _this$_environment$ex !== void 0
 
-         ? _this$_environment$ex
 
-         : [];
 
-     this.esmConditions = Array.from(
 
-       new Set(['import', 'default', ...envExportConditions])
 
-     );
 
-     this.cjsConditions = Array.from(
 
-       new Set(['require', 'default', ...envExportConditions])
 
-     );
 
-     if (config.automock) {
 
-       config.setupFiles.forEach(filePath => {
 
-         if (filePath.includes(NODE_MODULES)) {
 
-           const moduleID = this._resolver.getModuleID(
 
-             this._virtualMocks,
 
-             filePath,
 
-             undefined, // shouldn't really matter, but in theory this will make sure the caching is correct
 
-             {
 
-               conditions: this.unstable_shouldLoadAsEsm(filePath)
 
-                 ? this.esmConditions
 
-                 : this.cjsConditions
 
-             }
 
-           );
 
-           this._transitiveShouldMock.set(moduleID, false);
 
-         }
 
-       });
 
-     }
 
-     this.resetModules();
 
-   }
 
-   static async createContext(config, options) {
 
-     (0, _jestUtil().createDirectory)(config.cacheDirectory);
 
-     const instance = Runtime.createHasteMap(config, {
 
-       console: options.console,
 
-       maxWorkers: options.maxWorkers,
 
-       resetCache: !config.cache,
 
-       watch: options.watch,
 
-       watchman: options.watchman
 
-     });
 
-     const hasteMap = await instance.build();
 
-     return {
 
-       config,
 
-       hasteFS: hasteMap.hasteFS,
 
-       moduleMap: hasteMap.moduleMap,
 
-       resolver: Runtime.createResolver(config, hasteMap.moduleMap)
 
-     };
 
-   }
 
-   static createHasteMap(config, options) {
 
-     const ignorePatternParts = [
 
-       ...config.modulePathIgnorePatterns,
 
-       ...(options && options.watch ? config.watchPathIgnorePatterns : []),
 
-       config.cacheDirectory.startsWith(config.rootDir + path().sep) &&
 
-         config.cacheDirectory
 
-     ].filter(Boolean);
 
-     const ignorePattern =
 
-       ignorePatternParts.length > 0
 
-         ? new RegExp(ignorePatternParts.join('|'))
 
-         : undefined;
 
-     return _jestHasteMap().default.create({
 
-       cacheDirectory: config.cacheDirectory,
 
-       computeSha1: config.haste.computeSha1,
 
-       console:
 
-         options === null || options === void 0 ? void 0 : options.console,
 
-       dependencyExtractor: config.dependencyExtractor,
 
-       enableSymlinks: config.haste.enableSymlinks,
 
-       extensions: [_jestSnapshot().default.EXTENSION].concat(
 
-         config.moduleFileExtensions
 
-       ),
 
-       forceNodeFilesystemAPI: config.haste.forceNodeFilesystemAPI,
 
-       hasteImplModulePath: config.haste.hasteImplModulePath,
 
-       hasteMapModulePath: config.haste.hasteMapModulePath,
 
-       ignorePattern,
 
-       maxWorkers:
 
-         (options === null || options === void 0
 
-           ? void 0
 
-           : options.maxWorkers) || 1,
 
-       mocksPattern: (0, _jestRegexUtil().escapePathForRegex)(
 
-         path().sep + '__mocks__' + path().sep
 
-       ),
 
-       name: config.name,
 
-       platforms: config.haste.platforms || ['ios', 'android'],
 
-       resetCache:
 
-         options === null || options === void 0 ? void 0 : options.resetCache,
 
-       retainAllFiles: false,
 
-       rootDir: config.rootDir,
 
-       roots: config.roots,
 
-       throwOnModuleCollision: config.haste.throwOnModuleCollision,
 
-       useWatchman:
 
-         options === null || options === void 0 ? void 0 : options.watchman,
 
-       watch: options === null || options === void 0 ? void 0 : options.watch
 
-     });
 
-   }
 
-   static createResolver(config, moduleMap) {
 
-     return new (_jestResolve().default)(moduleMap, {
 
-       defaultPlatform: config.haste.defaultPlatform,
 
-       extensions: config.moduleFileExtensions.map(extension => '.' + extension),
 
-       hasCoreModules: true,
 
-       moduleDirectories: config.moduleDirectories,
 
-       moduleNameMapper: getModuleNameMapper(config),
 
-       modulePaths: config.modulePaths,
 
-       platforms: config.haste.platforms,
 
-       resolver: config.resolver,
 
-       rootDir: config.rootDir
 
-     });
 
-   }
 
-   static async runCLI() {
 
-     throw new Error('The jest-runtime CLI has been moved into jest-repl');
 
-   }
 
-   static getCLIOptions() {
 
-     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(path) {
 
-     return _jestResolve().default.unstable_shouldLoadAsEsm(
 
-       path,
 
-       this._config.extensionsToTreatAsEsm
 
-     );
 
-   } // not async _now_, but transform will be
 
-   async loadEsmModule(modulePath, query = '') {
 
-     const cacheKey = modulePath + query;
 
-     if (this._fileTransformsMutex.has(cacheKey)) {
 
-       await this._fileTransformsMutex.get(cacheKey);
 
-     }
 
-     if (!this._esmoduleRegistry.has(cacheKey)) {
 
-       invariant(
 
-         typeof this._environment.getVmContext === 'function',
 
-         'ES Modules are only supported if your test environment has the `getVmContext` function'
 
-       );
 
-       const context = this._environment.getVmContext();
 
-       invariant(context, 'Test environment has been torn down');
 
-       let transformResolve;
 
-       let transformReject;
 
-       this._fileTransformsMutex.set(
 
-         cacheKey,
 
-         new Promise((resolve, reject) => {
 
-           transformResolve = resolve;
 
-           transformReject = reject;
 
-         })
 
-       );
 
-       invariant(
 
-         transformResolve && transformReject,
 
-         'Promise initialization should be sync - please report this bug to Jest!'
 
-       );
 
-       if (this._resolver.isCoreModule(modulePath)) {
 
-         const core = this._importCoreModule(modulePath, context);
 
-         this._esmoduleRegistry.set(cacheKey, core);
 
-         transformResolve();
 
-         return core;
 
-       }
 
-       const transformedCode = await this.transformFileAsync(modulePath, {
 
-         isInternalModule: false,
 
-         supportsDynamicImport: true,
 
-         supportsExportNamespaceFrom: true,
 
-         supportsStaticESM: true,
 
-         supportsTopLevelAwait
 
-       });
 
-       try {
 
-         const module = new (_vm().SourceTextModule)(transformedCode, {
 
-           context,
 
-           identifier: modulePath,
 
-           importModuleDynamically: async (specifier, referencingModule) => {
 
-             invariant(
 
-               runtimeSupportsVmModules,
 
-               'You need to run with a version of node that supports ES Modules in the VM API. See https://jestjs.io/docs/ecmascript-modules'
 
-             );
 
-             const module = await this.resolveModule(
 
-               specifier,
 
-               referencingModule.identifier,
 
-               referencingModule.context
 
-             );
 
-             return this.linkAndEvaluateModule(module);
 
-           },
 
-           initializeImportMeta(meta) {
 
-             meta.url = (0, _url().pathToFileURL)(modulePath).href;
 
-           }
 
-         });
 
-         invariant(
 
-           !this._esmoduleRegistry.has(cacheKey),
 
-           `Module cache already has entry ${cacheKey}. This is a bug in Jest, please report it!`
 
-         );
 
-         this._esmoduleRegistry.set(cacheKey, module);
 
-         transformResolve();
 
-       } catch (error) {
 
-         transformReject(error);
 
-         throw error;
 
-       }
 
-     }
 
-     const module = this._esmoduleRegistry.get(cacheKey);
 
-     invariant(
 
-       module,
 
-       'Module cache does not contain module. This is a bug in Jest, please open up an issue'
 
-     );
 
-     return module;
 
-   }
 
-   resolveModule(specifier, referencingIdentifier, context) {
 
-     if (this.isTornDown) {
 
-       this._logFormattedReferenceError(
 
-         'You are trying to `import` a file after the Jest environment has been torn down.'
 
-       );
 
-       process.exitCode = 1;
 
-       return;
 
-     }
 
-     if (specifier === '@jest/globals') {
 
-       const fromCache = this._esmoduleRegistry.get('@jest/globals');
 
-       if (fromCache) {
 
-         return fromCache;
 
-       }
 
-       const globals = this.getGlobalsForEsm(referencingIdentifier, context);
 
-       this._esmoduleRegistry.set('@jest/globals', globals);
 
-       return globals;
 
-     }
 
-     if (specifier.startsWith('file://')) {
 
-       specifier = (0, _url().fileURLToPath)(specifier);
 
-     }
 
-     const [path, query] = specifier.split('?');
 
-     if (
 
-       this._shouldMock(
 
-         referencingIdentifier,
 
-         path,
 
-         this._explicitShouldMockModule,
 
-         {
 
-           conditions: this.esmConditions
 
-         }
 
-       )
 
-     ) {
 
-       return this.importMock(referencingIdentifier, path, context);
 
-     }
 
-     const resolved = this._resolveModule(referencingIdentifier, path, {
 
-       conditions: this.esmConditions
 
-     });
 
-     if (
 
-       this._resolver.isCoreModule(resolved) ||
 
-       this.unstable_shouldLoadAsEsm(resolved)
 
-     ) {
 
-       return this.loadEsmModule(resolved, query);
 
-     }
 
-     return this.loadCjsAsEsm(referencingIdentifier, resolved, context);
 
-   }
 
-   async linkAndEvaluateModule(module) {
 
-     if (this.isTornDown) {
 
-       this._logFormattedReferenceError(
 
-         'You are trying to `import` a file after the Jest environment has been torn down.'
 
-       );
 
-       process.exitCode = 1;
 
-       return;
 
-     }
 
-     if (module.status === 'unlinked') {
 
-       // since we might attempt to link the same module in parallel, stick the promise in a weak map so every call to
 
-       // this method can await it
 
-       this._esmModuleLinkingMap.set(
 
-         module,
 
-         module.link((specifier, referencingModule) =>
 
-           this.resolveModule(
 
-             specifier,
 
-             referencingModule.identifier,
 
-             referencingModule.context
 
-           )
 
-         )
 
-       );
 
-     }
 
-     await this._esmModuleLinkingMap.get(module);
 
-     if (module.status === 'linked') {
 
-       await module.evaluate();
 
-     }
 
-     return module;
 
-   }
 
-   async unstable_importModule(from, moduleName) {
 
-     invariant(
 
-       runtimeSupportsVmModules,
 
-       'You need to run with a version of node that supports ES Modules in the VM API. See https://jestjs.io/docs/ecmascript-modules'
 
-     );
 
-     const [path, query] = (
 
-       moduleName !== null && moduleName !== void 0 ? moduleName : ''
 
-     ).split('?');
 
-     const modulePath = this._resolveModule(from, path, {
 
-       conditions: this.esmConditions
 
-     });
 
-     const module = await this.loadEsmModule(modulePath, query);
 
-     return this.linkAndEvaluateModule(module);
 
-   }
 
-   loadCjsAsEsm(from, modulePath, context) {
 
-     // CJS loaded via `import` should share cache with other CJS: https://github.com/nodejs/modules/issues/503
 
-     const cjs = this.requireModuleOrMock(from, modulePath);
 
-     const parsedExports = this.getExportsOfCjs(modulePath);
 
-     const cjsExports = [...parsedExports].filter(exportName => {
 
-       // we don't wanna respect any exports _named_ default as a named export
 
-       if (exportName === 'default') {
 
-         return false;
 
-       }
 
-       return Object.hasOwnProperty.call(cjs, exportName);
 
-     });
 
-     const module = new (_vm().SyntheticModule)(
 
-       [...cjsExports, 'default'],
 
-       function () {
 
-         cjsExports.forEach(exportName => {
 
-           // @ts-expect-error
 
-           this.setExport(exportName, cjs[exportName]);
 
-         }); // @ts-expect-error: TS doesn't know what `this` is
 
-         this.setExport('default', cjs);
 
-       },
 
-       {
 
-         context,
 
-         identifier: modulePath
 
-       }
 
-     );
 
-     return evaluateSyntheticModule(module);
 
-   }
 
-   async importMock(from, moduleName, context) {
 
-     const moduleID = this._resolver.getModuleID(
 
-       this._virtualModuleMocks,
 
-       from,
 
-       moduleName,
 
-       {
 
-         conditions: this.esmConditions
 
-       }
 
-     );
 
-     if (this._moduleMockRegistry.has(moduleID)) {
 
-       return this._moduleMockRegistry.get(moduleID);
 
-     }
 
-     if (this._moduleMockFactories.has(moduleID)) {
 
-       const invokedFactory = await this._moduleMockFactories.get(
 
-         moduleID // has check above makes this ok
 
-       )();
 
-       const module = new (_vm().SyntheticModule)(
 
-         Object.keys(invokedFactory),
 
-         function () {
 
-           Object.entries(invokedFactory).forEach(([key, value]) => {
 
-             // @ts-expect-error: TS doesn't know what `this` is
 
-             this.setExport(key, value);
 
-           });
 
-         },
 
-         {
 
-           context,
 
-           identifier: moduleName
 
-         }
 
-       );
 
-       this._moduleMockRegistry.set(moduleID, module);
 
-       return evaluateSyntheticModule(module);
 
-     }
 
-     throw new Error('Attempting to import a mock without a factory');
 
-   }
 
-   getExportsOfCjs(modulePath) {
 
-     var _this$_fileTransforms, _this$_fileTransforms2;
 
-     const cachedNamedExports = this._cjsNamedExports.get(modulePath);
 
-     if (cachedNamedExports) {
 
-       return cachedNamedExports;
 
-     }
 
-     const transformedCode =
 
-       (_this$_fileTransforms =
 
-         (_this$_fileTransforms2 = this._fileTransforms.get(modulePath)) ===
 
-           null || _this$_fileTransforms2 === void 0
 
-           ? void 0
 
-           : _this$_fileTransforms2.code) !== null &&
 
-       _this$_fileTransforms !== void 0
 
-         ? _this$_fileTransforms
 
-         : this.readFile(modulePath);
 
-     const {exports, reexports} = (0, _cjsModuleLexer().parse)(transformedCode);
 
-     const namedExports = new Set(exports);
 
-     reexports.forEach(reexport => {
 
-       const resolved = this._resolveModule(modulePath, reexport, {
 
-         conditions: this.esmConditions
 
-       });
 
-       const exports = this.getExportsOfCjs(resolved);
 
-       exports.forEach(namedExports.add, namedExports);
 
-     });
 
-     this._cjsNamedExports.set(modulePath, namedExports);
 
-     return namedExports;
 
-   }
 
-   requireModule(from, moduleName, options, isRequireActual = false) {
 
-     var _options$isInternalMo;
 
-     const isInternal =
 
-       (_options$isInternalMo =
 
-         options === null || options === void 0
 
-           ? void 0
 
-           : options.isInternalModule) !== null &&
 
-       _options$isInternalMo !== void 0
 
-         ? _options$isInternalMo
 
-         : false;
 
-     const moduleID = this._resolver.getModuleID(
 
-       this._virtualMocks,
 
-       from,
 
-       moduleName,
 
-       isInternal
 
-         ? undefined
 
-         : {
 
-             conditions: this.cjsConditions
 
-           }
 
-     );
 
-     let modulePath; // Some old tests rely on this mocking behavior. Ideally we'll change this
 
-     // to be more explicit.
 
-     const moduleResource = moduleName && this._resolver.getModule(moduleName);
 
-     const manualMock =
 
-       moduleName && this._resolver.getMockModule(from, moduleName);
 
-     if (
 
-       !(options !== null && options !== void 0 && options.isInternalModule) &&
 
-       !isRequireActual &&
 
-       !moduleResource &&
 
-       manualMock &&
 
-       manualMock !== this._isCurrentlyExecutingManualMock &&
 
-       this._explicitShouldMock.get(moduleID) !== false
 
-     ) {
 
-       modulePath = manualMock;
 
-     }
 
-     if (moduleName && this._resolver.isCoreModule(moduleName)) {
 
-       return this._requireCoreModule(
 
-         moduleName,
 
-         supportsNodeColonModulePrefixInRequire
 
-       );
 
-     }
 
-     if (!modulePath) {
 
-       modulePath = this._resolveModule(
 
-         from,
 
-         moduleName,
 
-         isInternal
 
-           ? undefined
 
-           : {
 
-               conditions: this.cjsConditions
 
-             }
 
-       );
 
-     }
 
-     if (this.unstable_shouldLoadAsEsm(modulePath)) {
 
-       // Node includes more info in the message
 
-       const error = new Error(
 
-         `Must use import to load ES Module: ${modulePath}`
 
-       ); // @ts-expect-error: `code` is not defined
 
-       error.code = 'ERR_REQUIRE_ESM';
 
-       throw error;
 
-     }
 
-     let moduleRegistry;
 
-     if (isInternal) {
 
-       moduleRegistry = this._internalModuleRegistry;
 
-     } else if (this._isolatedModuleRegistry) {
 
-       moduleRegistry = this._isolatedModuleRegistry;
 
-     } else {
 
-       moduleRegistry = this._moduleRegistry;
 
-     }
 
-     const module = moduleRegistry.get(modulePath);
 
-     if (module) {
 
-       return module.exports;
 
-     } // We must register the pre-allocated module object first so that any
 
-     // circular dependencies that may arise while evaluating the module can
 
-     // be satisfied.
 
-     const localModule = {
 
-       children: [],
 
-       exports: {},
 
-       filename: modulePath,
 
-       id: modulePath,
 
-       loaded: false,
 
-       path: path().dirname(modulePath)
 
-     };
 
-     moduleRegistry.set(modulePath, localModule);
 
-     try {
 
-       this._loadModule(
 
-         localModule,
 
-         from,
 
-         moduleName,
 
-         modulePath,
 
-         options,
 
-         moduleRegistry
 
-       );
 
-     } catch (error) {
 
-       moduleRegistry.delete(modulePath);
 
-       throw error;
 
-     }
 
-     return localModule.exports;
 
-   }
 
-   requireInternalModule(from, to) {
 
-     if (to) {
 
-       var _nativeModule$createR;
 
-       const require = (
 
-         (_nativeModule$createR = nativeModule().createRequire) !== null &&
 
-           _nativeModule$createR !== void 0
 
-           ? _nativeModule$createR
 
-           : nativeModule().createRequireFromPath
 
-       )(from);
 
-       if (INTERNAL_MODULE_REQUIRE_OUTSIDE_OPTIMIZED_MODULES.has(to)) {
 
-         return require(to);
 
-       }
 
-       const outsideJestVmPath = (0, _helpers.decodePossibleOutsideJestVmPath)(
 
-         to
 
-       );
 
-       if (outsideJestVmPath) {
 
-         return require(outsideJestVmPath);
 
-       }
 
-     }
 
-     return this.requireModule(from, to, {
 
-       isInternalModule: true,
 
-       supportsDynamicImport: esmIsAvailable,
 
-       supportsExportNamespaceFrom: false,
 
-       supportsStaticESM: false,
 
-       supportsTopLevelAwait: false
 
-     });
 
-   }
 
-   requireActual(from, moduleName) {
 
-     return this.requireModule(from, moduleName, undefined, true);
 
-   }
 
-   requireMock(from, moduleName) {
 
-     var _this$_isolatedMockRe;
 
-     const moduleID = this._resolver.getModuleID(
 
-       this._virtualMocks,
 
-       from,
 
-       moduleName,
 
-       {
 
-         conditions: this.cjsConditions
 
-       }
 
-     );
 
-     if (
 
-       (_this$_isolatedMockRe = this._isolatedMockRegistry) !== null &&
 
-       _this$_isolatedMockRe !== void 0 &&
 
-       _this$_isolatedMockRe.has(moduleID)
 
-     ) {
 
-       return this._isolatedMockRegistry.get(moduleID);
 
-     } else if (this._mockRegistry.has(moduleID)) {
 
-       return this._mockRegistry.get(moduleID);
 
-     }
 
-     const mockRegistry = this._isolatedMockRegistry || this._mockRegistry;
 
-     if (this._mockFactories.has(moduleID)) {
 
-       // has check above makes this ok
 
-       const module = this._mockFactories.get(moduleID)();
 
-       mockRegistry.set(moduleID, module);
 
-       return module;
 
-     }
 
-     const manualMockOrStub = this._resolver.getMockModule(from, moduleName);
 
-     let modulePath =
 
-       this._resolver.getMockModule(from, moduleName) ||
 
-       this._resolveModule(from, moduleName, {
 
-         conditions: this.cjsConditions
 
-       });
 
-     let isManualMock =
 
-       manualMockOrStub &&
 
-       !this._resolver.resolveStubModuleName(from, moduleName);
 
-     if (!isManualMock) {
 
-       // If the actual module file has a __mocks__ dir sitting immediately next
 
-       // to it, look to see if there is a manual mock for this file.
 
-       //
 
-       // subDir1/my_module.js
 
-       // subDir1/__mocks__/my_module.js
 
-       // subDir2/my_module.js
 
-       // subDir2/__mocks__/my_module.js
 
-       //
 
-       // Where some other module does a relative require into each of the
 
-       // respective subDir{1,2} directories and expects a manual mock
 
-       // corresponding to that particular my_module.js file.
 
-       const moduleDir = path().dirname(modulePath);
 
-       const moduleFileName = path().basename(modulePath);
 
-       const potentialManualMock = path().join(
 
-         moduleDir,
 
-         '__mocks__',
 
-         moduleFileName
 
-       );
 
-       if (fs().existsSync(potentialManualMock)) {
 
-         isManualMock = true;
 
-         modulePath = potentialManualMock;
 
-       }
 
-     }
 
-     if (isManualMock) {
 
-       const localModule = {
 
-         children: [],
 
-         exports: {},
 
-         filename: modulePath,
 
-         id: modulePath,
 
-         loaded: false,
 
-         path: path().dirname(modulePath)
 
-       };
 
-       this._loadModule(
 
-         localModule,
 
-         from,
 
-         moduleName,
 
-         modulePath,
 
-         undefined,
 
-         mockRegistry
 
-       );
 
-       mockRegistry.set(moduleID, localModule.exports);
 
-     } else {
 
-       // Look for a real module to generate an automock from
 
-       mockRegistry.set(moduleID, this._generateMock(from, moduleName));
 
-     }
 
-     return mockRegistry.get(moduleID);
 
-   }
 
-   _loadModule(
 
-     localModule,
 
-     from,
 
-     moduleName,
 
-     modulePath,
 
-     options,
 
-     moduleRegistry
 
-   ) {
 
-     if (path().extname(modulePath) === '.json') {
 
-       const text = (0, _stripBom().default)(this.readFile(modulePath));
 
-       const transformedFile = this._scriptTransformer.transformJson(
 
-         modulePath,
 
-         this._getFullTransformationOptions(options),
 
-         text
 
-       );
 
-       localModule.exports =
 
-         this._environment.global.JSON.parse(transformedFile);
 
-     } else if (path().extname(modulePath) === '.node') {
 
-       localModule.exports = require(modulePath);
 
-     } else {
 
-       // Only include the fromPath if a moduleName is given. Else treat as root.
 
-       const fromPath = moduleName ? from : null;
 
-       this._execModule(localModule, options, moduleRegistry, fromPath);
 
-     }
 
-     localModule.loaded = true;
 
-   }
 
-   _getFullTransformationOptions(options = defaultTransformOptions) {
 
-     return {...options, ...this._coverageOptions};
 
-   }
 
-   requireModuleOrMock(from, moduleName) {
 
-     // this module is unmockable
 
-     if (moduleName === '@jest/globals') {
 
-       // @ts-expect-error: we don't care that it's not assignable to T
 
-       return this.getGlobalsForCjs(from);
 
-     }
 
-     try {
 
-       if (
 
-         this._shouldMock(from, moduleName, this._explicitShouldMock, {
 
-           conditions: this.cjsConditions
 
-         })
 
-       ) {
 
-         return this.requireMock(from, moduleName);
 
-       } else {
 
-         return this.requireModule(from, moduleName);
 
-       }
 
-     } catch (e) {
 
-       const moduleNotFound =
 
-         _jestResolve().default.tryCastModuleNotFoundError(e);
 
-       if (moduleNotFound) {
 
-         if (
 
-           moduleNotFound.siblingWithSimilarExtensionFound === null ||
 
-           moduleNotFound.siblingWithSimilarExtensionFound === undefined
 
-         ) {
 
-           moduleNotFound.hint = (0, _helpers.findSiblingsWithFileExtension)(
 
-             this._config.moduleFileExtensions,
 
-             from,
 
-             moduleNotFound.moduleName || moduleName
 
-           );
 
-           moduleNotFound.siblingWithSimilarExtensionFound = Boolean(
 
-             moduleNotFound.hint
 
-           );
 
-         }
 
-         moduleNotFound.buildMessage(this._config.rootDir);
 
-         throw moduleNotFound;
 
-       }
 
-       throw e;
 
-     }
 
-   }
 
-   isolateModules(fn) {
 
-     if (this._isolatedModuleRegistry || this._isolatedMockRegistry) {
 
-       throw new Error(
 
-         'isolateModules cannot be nested inside another isolateModules.'
 
-       );
 
-     }
 
-     this._isolatedModuleRegistry = new Map();
 
-     this._isolatedMockRegistry = new Map();
 
-     try {
 
-       fn();
 
-     } finally {
 
-       var _this$_isolatedModule, _this$_isolatedMockRe2;
 
-       // might be cleared within the callback
 
-       (_this$_isolatedModule = this._isolatedModuleRegistry) === null ||
 
-       _this$_isolatedModule === void 0
 
-         ? void 0
 
-         : _this$_isolatedModule.clear();
 
-       (_this$_isolatedMockRe2 = this._isolatedMockRegistry) === null ||
 
-       _this$_isolatedMockRe2 === void 0
 
-         ? void 0
 
-         : _this$_isolatedMockRe2.clear();
 
-       this._isolatedModuleRegistry = null;
 
-       this._isolatedMockRegistry = null;
 
-     }
 
-   }
 
-   resetModules() {
 
-     var _this$_isolatedModule2, _this$_isolatedMockRe3;
 
-     (_this$_isolatedModule2 = this._isolatedModuleRegistry) === null ||
 
-     _this$_isolatedModule2 === void 0
 
-       ? void 0
 
-       : _this$_isolatedModule2.clear();
 
-     (_this$_isolatedMockRe3 = this._isolatedMockRegistry) === null ||
 
-     _this$_isolatedMockRe3 === void 0
 
-       ? void 0
 
-       : _this$_isolatedMockRe3.clear();
 
-     this._isolatedModuleRegistry = null;
 
-     this._isolatedMockRegistry = null;
 
-     this._mockRegistry.clear();
 
-     this._moduleRegistry.clear();
 
-     this._esmoduleRegistry.clear();
 
-     this._cjsNamedExports.clear();
 
-     this._moduleMockRegistry.clear();
 
-     if (this._environment) {
 
-       if (this._environment.global) {
 
-         const envGlobal = this._environment.global;
 
-         Object.keys(envGlobal).forEach(key => {
 
-           const globalMock = envGlobal[key];
 
-           if (
 
-             ((typeof globalMock === 'object' && globalMock !== null) ||
 
-               typeof globalMock === 'function') &&
 
-             globalMock._isMockFunction === true
 
-           ) {
 
-             globalMock.mockClear();
 
-           }
 
-         });
 
-       }
 
-       if (this._environment.fakeTimers) {
 
-         this._environment.fakeTimers.clearAllTimers();
 
-       }
 
-     }
 
-   }
 
-   async collectV8Coverage() {
 
-     this._v8CoverageInstrumenter =
 
-       new (_collectV8Coverage().CoverageInstrumenter)();
 
-     await this._v8CoverageInstrumenter.startInstrumenting();
 
-   }
 
-   async stopCollectingV8Coverage() {
 
-     if (!this._v8CoverageInstrumenter) {
 
-       throw new Error('You need to call `collectV8Coverage` first.');
 
-     }
 
-     this._v8CoverageResult =
 
-       await this._v8CoverageInstrumenter.stopInstrumenting();
 
-   }
 
-   getAllCoverageInfoCopy() {
 
-     return (0, _jestUtil().deepCyclicCopy)(
 
-       this._environment.global.__coverage__
 
-     );
 
-   }
 
-   getAllV8CoverageInfoCopy() {
 
-     if (!this._v8CoverageResult) {
 
-       throw new Error('You need to `stopCollectingV8Coverage` first');
 
-     }
 
-     return this._v8CoverageResult
 
-       .filter(res => res.url.startsWith('file://'))
 
-       .map(res => ({...res, url: (0, _url().fileURLToPath)(res.url)}))
 
-       .filter(
 
-         (
 
-           res // TODO: will this work on windows? It might be better if `shouldInstrument` deals with it anyways
 
-         ) =>
 
-           res.url.startsWith(this._config.rootDir) &&
 
-           this._fileTransforms.has(res.url) &&
 
-           (0, _transform().shouldInstrument)(
 
-             res.url,
 
-             this._coverageOptions,
 
-             this._config
 
-           )
 
-       )
 
-       .map(result => {
 
-         const transformedFile = this._fileTransforms.get(result.url);
 
-         return {
 
-           codeTransformResult: transformedFile,
 
-           result
 
-         };
 
-       });
 
-   }
 
-   getSourceMaps() {
 
-     return this._sourceMapRegistry;
 
-   }
 
-   setMock(from, moduleName, mockFactory, options) {
 
-     if (options !== null && options !== void 0 && options.virtual) {
 
-       const mockPath = this._resolver.getModulePath(from, moduleName);
 
-       this._virtualMocks.set(mockPath, true);
 
-     }
 
-     const moduleID = this._resolver.getModuleID(
 
-       this._virtualMocks,
 
-       from,
 
-       moduleName,
 
-       {
 
-         conditions: this.cjsConditions
 
-       }
 
-     );
 
-     this._explicitShouldMock.set(moduleID, true);
 
-     this._mockFactories.set(moduleID, mockFactory);
 
-   }
 
-   setModuleMock(from, moduleName, mockFactory, options) {
 
-     if (options !== null && options !== void 0 && options.virtual) {
 
-       const mockPath = this._resolver.getModulePath(from, moduleName);
 
-       this._virtualModuleMocks.set(mockPath, true);
 
-     }
 
-     const moduleID = this._resolver.getModuleID(
 
-       this._virtualModuleMocks,
 
-       from,
 
-       moduleName,
 
-       {
 
-         conditions: this.esmConditions
 
-       }
 
-     );
 
-     this._explicitShouldMockModule.set(moduleID, true);
 
-     this._moduleMockFactories.set(moduleID, mockFactory);
 
-   }
 
-   restoreAllMocks() {
 
-     this._moduleMocker.restoreAllMocks();
 
-   }
 
-   resetAllMocks() {
 
-     this._moduleMocker.resetAllMocks();
 
-   }
 
-   clearAllMocks() {
 
-     this._moduleMocker.clearAllMocks();
 
-   }
 
-   teardown() {
 
-     this.restoreAllMocks();
 
-     this.resetAllMocks();
 
-     this.resetModules();
 
-     this._internalModuleRegistry.clear();
 
-     this._mainModule = null;
 
-     this._mockFactories.clear();
 
-     this._moduleMockFactories.clear();
 
-     this._mockMetaDataCache.clear();
 
-     this._shouldMockModuleCache.clear();
 
-     this._shouldUnmockTransitiveDependenciesCache.clear();
 
-     this._explicitShouldMock.clear();
 
-     this._explicitShouldMockModule.clear();
 
-     this._transitiveShouldMock.clear();
 
-     this._virtualMocks.clear();
 
-     this._virtualModuleMocks.clear();
 
-     this._cacheFS.clear();
 
-     this._unmockList = undefined;
 
-     this._sourceMapRegistry.clear();
 
-     this._fileTransforms.clear();
 
-     this._fileTransformsMutex.clear();
 
-     this.jestObjectCaches.clear();
 
-     this._v8CoverageResult = [];
 
-     this._v8CoverageInstrumenter = undefined;
 
-     this._moduleImplementation = undefined;
 
-     this.isTornDown = true;
 
-   }
 
-   _resolveModule(from, to, options) {
 
-     return to ? this._resolver.resolveModule(from, to, options) : from;
 
-   }
 
-   _requireResolve(from, moduleName, options = {}) {
 
-     if (moduleName == null) {
 
-       throw new Error(
 
-         'The first argument to require.resolve must be a string. Received null or undefined.'
 
-       );
 
-     }
 
-     if (path().isAbsolute(moduleName)) {
 
-       const module = this._resolver.resolveModuleFromDirIfExists(
 
-         moduleName,
 
-         moduleName,
 
-         {
 
-           conditions: this.cjsConditions,
 
-           paths: []
 
-         }
 
-       );
 
-       if (module) {
 
-         return module;
 
-       }
 
-     } else {
 
-       const {paths} = options;
 
-       if (paths) {
 
-         for (const p of paths) {
 
-           const absolutePath = path().resolve(from, '..', p);
 
-           const module = this._resolver.resolveModuleFromDirIfExists(
 
-             absolutePath,
 
-             moduleName, // required to also resolve files without leading './' directly in the path
 
-             {
 
-               conditions: this.cjsConditions,
 
-               paths: [absolutePath]
 
-             }
 
-           );
 
-           if (module) {
 
-             return module;
 
-           }
 
-         }
 
-         throw new (_jestResolve().default.ModuleNotFoundError)(
 
-           `Cannot resolve module '${moduleName}' from paths ['${paths.join(
 
-             "', '"
 
-           )}'] from ${from}`
 
-         );
 
-       }
 
-     }
 
-     try {
 
-       return this._resolveModule(from, moduleName, {
 
-         conditions: this.cjsConditions
 
-       });
 
-     } catch (err) {
 
-       const module = this._resolver.getMockModule(from, moduleName);
 
-       if (module) {
 
-         return module;
 
-       } else {
 
-         throw err;
 
-       }
 
-     }
 
-   }
 
-   _requireResolvePaths(from, moduleName) {
 
-     if (moduleName == null) {
 
-       throw new Error(
 
-         'The first argument to require.resolve.paths must be a string. Received null or undefined.'
 
-       );
 
-     }
 
-     if (!moduleName.length) {
 
-       throw new Error(
 
-         'The first argument to require.resolve.paths must not be the empty string.'
 
-       );
 
-     }
 
-     if (moduleName[0] === '.') {
 
-       return [path().resolve(from, '..')];
 
-     }
 
-     if (this._resolver.isCoreModule(moduleName)) {
 
-       return null;
 
-     }
 
-     return this._resolver.getModulePaths(path().resolve(from, '..'));
 
-   }
 
-   _execModule(localModule, options, moduleRegistry, from) {
 
-     if (this.isTornDown) {
 
-       this._logFormattedReferenceError(
 
-         'You are trying to `import` a file after the Jest environment has been torn down.'
 
-       );
 
-       process.exitCode = 1;
 
-       return;
 
-     } // If the environment was disposed, prevent this module from being executed.
 
-     if (!this._environment.global) {
 
-       return;
 
-     }
 
-     const module = localModule;
 
-     const filename = module.filename;
 
-     const lastExecutingModulePath = this._currentlyExecutingModulePath;
 
-     this._currentlyExecutingModulePath = filename;
 
-     const origCurrExecutingManualMock = this._isCurrentlyExecutingManualMock;
 
-     this._isCurrentlyExecutingManualMock = filename;
 
-     module.children = [];
 
-     Object.defineProperty(module, 'parent', {
 
-       enumerable: true,
 
-       get() {
 
-         const key = from || '';
 
-         return moduleRegistry.get(key) || null;
 
-       }
 
-     });
 
-     module.paths = this._resolver.getModulePaths(module.path);
 
-     Object.defineProperty(module, 'require', {
 
-       value: this._createRequireImplementation(module, options)
 
-     });
 
-     const transformedCode = this.transformFile(filename, options);
 
-     let compiledFunction = null;
 
-     const script = this.createScriptFromCode(transformedCode, filename);
 
-     let runScript = null;
 
-     const vmContext = this._environment.getVmContext();
 
-     if (vmContext) {
 
-       runScript = script.runInContext(vmContext, {
 
-         filename
 
-       });
 
-     }
 
-     if (runScript !== null) {
 
-       compiledFunction = runScript[EVAL_RESULT_VARIABLE];
 
-     }
 
-     if (compiledFunction === null) {
 
-       this._logFormattedReferenceError(
 
-         'You are trying to `import` a file after the Jest environment has been torn down.'
 
-       );
 
-       process.exitCode = 1;
 
-       return;
 
-     }
 
-     const jestObject = this._createJestObjectFor(filename);
 
-     this.jestObjectCaches.set(filename, jestObject);
 
-     const lastArgs = [
 
-       this._config.injectGlobals ? jestObject : undefined, // jest object
 
-       ...this._config.extraGlobals.map(globalVariable => {
 
-         if (this._environment.global[globalVariable]) {
 
-           return this._environment.global[globalVariable];
 
-         }
 
-         throw new Error(
 
-           `You have requested '${globalVariable}' as a global variable, but it was not present. Please check your config or your global environment.`
 
-         );
 
-       })
 
-     ];
 
-     if (!this._mainModule && filename === this._testPath) {
 
-       this._mainModule = module;
 
-     }
 
-     Object.defineProperty(module, 'main', {
 
-       enumerable: true,
 
-       value: this._mainModule
 
-     });
 
-     try {
 
-       compiledFunction.call(
 
-         module.exports,
 
-         module, // module object
 
-         module.exports, // module exports
 
-         module.require, // require implementation
 
-         module.path, // __dirname
 
-         module.filename, // __filename
 
-         // @ts-expect-error
 
-         ...lastArgs.filter(notEmpty)
 
-       );
 
-     } catch (error) {
 
-       this.handleExecutionError(error, module);
 
-     }
 
-     this._isCurrentlyExecutingManualMock = origCurrExecutingManualMock;
 
-     this._currentlyExecutingModulePath = lastExecutingModulePath;
 
-   }
 
-   transformFile(filename, options) {
 
-     const source = this.readFile(filename);
 
-     if (options !== null && options !== void 0 && options.isInternalModule) {
 
-       return source;
 
-     }
 
-     let transformedFile = this._fileTransforms.get(filename);
 
-     if (transformedFile) {
 
-       return transformedFile.code;
 
-     }
 
-     transformedFile = this._scriptTransformer.transform(
 
-       filename,
 
-       this._getFullTransformationOptions(options),
 
-       source
 
-     );
 
-     this._fileTransforms.set(filename, {
 
-       ...transformedFile,
 
-       wrapperLength: this.constructModuleWrapperStart().length
 
-     });
 
-     if (transformedFile.sourceMapPath) {
 
-       this._sourceMapRegistry.set(filename, transformedFile.sourceMapPath);
 
-     }
 
-     return transformedFile.code;
 
-   }
 
-   async transformFileAsync(filename, options) {
 
-     const source = this.readFile(filename);
 
-     if (options !== null && options !== void 0 && options.isInternalModule) {
 
-       return source;
 
-     }
 
-     let transformedFile = this._fileTransforms.get(filename);
 
-     if (transformedFile) {
 
-       return transformedFile.code;
 
-     }
 
-     transformedFile = await this._scriptTransformer.transformAsync(
 
-       filename,
 
-       this._getFullTransformationOptions(options),
 
-       source
 
-     );
 
-     this._fileTransforms.set(filename, {...transformedFile, wrapperLength: 0});
 
-     if (transformedFile.sourceMapPath) {
 
-       this._sourceMapRegistry.set(filename, transformedFile.sourceMapPath);
 
-     }
 
-     return transformedFile.code;
 
-   }
 
-   createScriptFromCode(scriptSource, filename) {
 
-     try {
 
-       const scriptFilename = this._resolver.isCoreModule(filename)
 
-         ? `jest-nodejs-core-${filename}`
 
-         : filename;
 
-       return new (_vm().Script)(this.wrapCodeInModuleWrapper(scriptSource), {
 
-         displayErrors: true,
 
-         filename: scriptFilename,
 
-         // @ts-expect-error: Experimental ESM API
 
-         importModuleDynamically: async specifier => {
 
-           var _this$_environment$ge, _this$_environment2;
 
-           invariant(
 
-             runtimeSupportsVmModules,
 
-             'You need to run with a version of node that supports ES Modules in the VM API. See https://jestjs.io/docs/ecmascript-modules'
 
-           );
 
-           const context =
 
-             (_this$_environment$ge = (_this$_environment2 = this._environment)
 
-               .getVmContext) === null || _this$_environment$ge === void 0
 
-               ? void 0
 
-               : _this$_environment$ge.call(_this$_environment2);
 
-           invariant(context, 'Test environment has been torn down');
 
-           const module = await this.resolveModule(
 
-             specifier,
 
-             scriptFilename,
 
-             context
 
-           );
 
-           return this.linkAndEvaluateModule(module);
 
-         }
 
-       });
 
-     } catch (e) {
 
-       throw (0, _transform().handlePotentialSyntaxError)(e);
 
-     }
 
-   }
 
-   _requireCoreModule(moduleName, supportPrefix) {
 
-     const moduleWithoutNodePrefix =
 
-       supportPrefix && moduleName.startsWith('node:')
 
-         ? moduleName.slice('node:'.length)
 
-         : moduleName;
 
-     if (moduleWithoutNodePrefix === 'process') {
 
-       return this._environment.global.process;
 
-     }
 
-     if (moduleWithoutNodePrefix === 'module') {
 
-       return this._getMockedNativeModule();
 
-     }
 
-     return require(moduleWithoutNodePrefix);
 
-   }
 
-   _importCoreModule(moduleName, context) {
 
-     const required = this._requireCoreModule(
 
-       moduleName,
 
-       supportsNodeColonModulePrefixInImport
 
-     );
 
-     const module = new (_vm().SyntheticModule)(
 
-       ['default', ...Object.keys(required)],
 
-       function () {
 
-         // @ts-expect-error: TS doesn't know what `this` is
 
-         this.setExport('default', required);
 
-         Object.entries(required).forEach(([key, value]) => {
 
-           // @ts-expect-error: TS doesn't know what `this` is
 
-           this.setExport(key, value);
 
-         });
 
-       }, // should identifier be `node://${moduleName}`?
 
-       {
 
-         context,
 
-         identifier: moduleName
 
-       }
 
-     );
 
-     return evaluateSyntheticModule(module);
 
-   }
 
-   _getMockedNativeModule() {
 
-     if (this._moduleImplementation) {
 
-       return this._moduleImplementation;
 
-     }
 
-     const createRequire = modulePath => {
 
-       const filename =
 
-         typeof modulePath === 'string'
 
-           ? modulePath.startsWith('file:///')
 
-             ? (0, _url().fileURLToPath)(new (_url().URL)(modulePath))
 
-             : modulePath
 
-           : (0, _url().fileURLToPath)(modulePath);
 
-       if (!path().isAbsolute(filename)) {
 
-         const error = new TypeError(
 
-           `The argument 'filename' must be a file URL object, file URL string, or absolute path string. Received '${filename}'`
 
-         ); // @ts-expect-error
 
-         error.code = 'ERR_INVALID_ARG_TYPE';
 
-         throw error;
 
-       }
 
-       return this._createRequireImplementation({
 
-         children: [],
 
-         exports: {},
 
-         filename,
 
-         id: filename,
 
-         loaded: false,
 
-         path: path().dirname(filename)
 
-       });
 
-     }; // should we implement the class ourselves?
 
-     class Module extends nativeModule().Module {}
 
-     Object.entries(nativeModule().Module).forEach(([key, value]) => {
 
-       // @ts-expect-error
 
-       Module[key] = value;
 
-     });
 
-     Module.Module = Module;
 
-     if ('createRequire' in nativeModule()) {
 
-       Module.createRequire = createRequire;
 
-     }
 
-     if ('createRequireFromPath' in nativeModule()) {
 
-       Module.createRequireFromPath = function createRequireFromPath(filename) {
 
-         if (typeof filename !== 'string') {
 
-           const error = new TypeError(
 
-             `The argument 'filename' must be string. Received '${filename}'.${
 
-               filename instanceof _url().URL
 
-                 ? ' Use createRequire for URL filename.'
 
-                 : ''
 
-             }`
 
-           ); // @ts-expect-error
 
-           error.code = 'ERR_INVALID_ARG_TYPE';
 
-           throw error;
 
-         }
 
-         return createRequire(filename);
 
-       };
 
-     }
 
-     if ('syncBuiltinESMExports' in nativeModule()) {
 
-       // cast since TS seems very confused about whether it exists or not
 
-       Module.syncBuiltinESMExports = function syncBuiltinESMExports() {};
 
-     }
 
-     this._moduleImplementation = Module;
 
-     return Module;
 
-   }
 
-   _generateMock(from, moduleName) {
 
-     const modulePath =
 
-       this._resolver.resolveStubModuleName(from, moduleName) ||
 
-       this._resolveModule(from, moduleName, {
 
-         conditions: this.cjsConditions
 
-       });
 
-     if (!this._mockMetaDataCache.has(modulePath)) {
 
-       // This allows us to handle circular dependencies while generating an
 
-       // automock
 
-       this._mockMetaDataCache.set(
 
-         modulePath,
 
-         this._moduleMocker.getMetadata({}) || {}
 
-       ); // In order to avoid it being possible for automocking to potentially
 
-       // cause side-effects within the module environment, we need to execute
 
-       // the module in isolation. This could cause issues if the module being
 
-       // mocked has calls into side-effectful APIs on another module.
 
-       const origMockRegistry = this._mockRegistry;
 
-       const origModuleRegistry = this._moduleRegistry;
 
-       this._mockRegistry = new Map();
 
-       this._moduleRegistry = new Map();
 
-       const moduleExports = this.requireModule(from, moduleName); // Restore the "real" module/mock registries
 
-       this._mockRegistry = origMockRegistry;
 
-       this._moduleRegistry = origModuleRegistry;
 
-       const mockMetadata = this._moduleMocker.getMetadata(moduleExports);
 
-       if (mockMetadata == null) {
 
-         throw new Error(
 
-           `Failed to get mock metadata: ${modulePath}\n\n` +
 
-             'See: https://jestjs.io/docs/manual-mocks#content'
 
-         );
 
-       }
 
-       this._mockMetaDataCache.set(modulePath, mockMetadata);
 
-     }
 
-     return this._moduleMocker.generateFromMetadata(
 
-       // added above if missing
 
-       this._mockMetaDataCache.get(modulePath)
 
-     );
 
-   }
 
-   _shouldMock(from, moduleName, explicitShouldMock, options) {
 
-     const moduleID = this._resolver.getModuleID(
 
-       this._virtualMocks,
 
-       from,
 
-       moduleName,
 
-       options
 
-     );
 
-     const key = from + path().delimiter + moduleID;
 
-     if (explicitShouldMock.has(moduleID)) {
 
-       // guaranteed by `has` above
 
-       return explicitShouldMock.get(moduleID);
 
-     }
 
-     if (
 
-       !this._shouldAutoMock ||
 
-       this._resolver.isCoreModule(moduleName) ||
 
-       this._shouldUnmockTransitiveDependenciesCache.get(key)
 
-     ) {
 
-       return false;
 
-     }
 
-     if (this._shouldMockModuleCache.has(moduleID)) {
 
-       // guaranteed by `has` above
 
-       return this._shouldMockModuleCache.get(moduleID);
 
-     }
 
-     let modulePath;
 
-     try {
 
-       modulePath = this._resolveModule(from, moduleName, options);
 
-     } catch (e) {
 
-       const manualMock = this._resolver.getMockModule(from, moduleName);
 
-       if (manualMock) {
 
-         this._shouldMockModuleCache.set(moduleID, true);
 
-         return true;
 
-       }
 
-       throw e;
 
-     }
 
-     if (this._unmockList && this._unmockList.test(modulePath)) {
 
-       this._shouldMockModuleCache.set(moduleID, false);
 
-       return false;
 
-     } // transitive unmocking for package managers that store flat packages (npm3)
 
-     const currentModuleID = this._resolver.getModuleID(
 
-       this._virtualMocks,
 
-       from,
 
-       undefined,
 
-       options
 
-     );
 
-     if (
 
-       this._transitiveShouldMock.get(currentModuleID) === false ||
 
-       (from.includes(NODE_MODULES) &&
 
-         modulePath.includes(NODE_MODULES) &&
 
-         ((this._unmockList && this._unmockList.test(from)) ||
 
-           explicitShouldMock.get(currentModuleID) === false))
 
-     ) {
 
-       this._transitiveShouldMock.set(moduleID, false);
 
-       this._shouldUnmockTransitiveDependenciesCache.set(key, true);
 
-       return false;
 
-     }
 
-     this._shouldMockModuleCache.set(moduleID, true);
 
-     return true;
 
-   }
 
-   _createRequireImplementation(from, options) {
 
-     const resolve = (moduleName, resolveOptions) => {
 
-       const resolved = this._requireResolve(
 
-         from.filename,
 
-         moduleName,
 
-         resolveOptions
 
-       );
 
-       if (
 
-         resolveOptions !== null &&
 
-         resolveOptions !== void 0 &&
 
-         resolveOptions[JEST_RESOLVE_OUTSIDE_VM_OPTION] &&
 
-         options !== null &&
 
-         options !== void 0 &&
 
-         options.isInternalModule
 
-       ) {
 
-         return (0, _helpers.createOutsideJestVmPath)(resolved);
 
-       }
 
-       return resolved;
 
-     };
 
-     resolve.paths = moduleName =>
 
-       this._requireResolvePaths(from.filename, moduleName);
 
-     const moduleRequire =
 
-       options !== null && options !== void 0 && options.isInternalModule
 
-         ? moduleName => this.requireInternalModule(from.filename, moduleName)
 
-         : this.requireModuleOrMock.bind(this, from.filename);
 
-     moduleRequire.extensions = Object.create(null);
 
-     moduleRequire.resolve = resolve;
 
-     moduleRequire.cache = (() => {
 
-       // TODO: consider warning somehow that this does nothing. We should support deletions, anyways
 
-       const notPermittedMethod = () => true;
 
-       return new Proxy(Object.create(null), {
 
-         defineProperty: notPermittedMethod,
 
-         deleteProperty: notPermittedMethod,
 
-         get: (_target, key) =>
 
-           typeof key === 'string' ? this._moduleRegistry.get(key) : undefined,
 
-         getOwnPropertyDescriptor() {
 
-           return {
 
-             configurable: true,
 
-             enumerable: true
 
-           };
 
-         },
 
-         has: (_target, key) =>
 
-           typeof key === 'string' && this._moduleRegistry.has(key),
 
-         ownKeys: () => Array.from(this._moduleRegistry.keys()),
 
-         set: notPermittedMethod
 
-       });
 
-     })();
 
-     Object.defineProperty(moduleRequire, 'main', {
 
-       enumerable: true,
 
-       value: this._mainModule
 
-     });
 
-     return moduleRequire;
 
-   }
 
-   _createJestObjectFor(from) {
 
-     var _this$_moduleMocker$m, _this$_moduleMocker$m2;
 
-     const disableAutomock = () => {
 
-       this._shouldAutoMock = false;
 
-       return jestObject;
 
-     };
 
-     const enableAutomock = () => {
 
-       this._shouldAutoMock = true;
 
-       return jestObject;
 
-     };
 
-     const unmock = moduleName => {
 
-       const moduleID = this._resolver.getModuleID(
 
-         this._virtualMocks,
 
-         from,
 
-         moduleName,
 
-         {
 
-           conditions: this.cjsConditions
 
-         }
 
-       );
 
-       this._explicitShouldMock.set(moduleID, false);
 
-       return jestObject;
 
-     };
 
-     const deepUnmock = moduleName => {
 
-       const moduleID = this._resolver.getModuleID(
 
-         this._virtualMocks,
 
-         from,
 
-         moduleName,
 
-         {
 
-           conditions: this.cjsConditions
 
-         }
 
-       );
 
-       this._explicitShouldMock.set(moduleID, false);
 
-       this._transitiveShouldMock.set(moduleID, false);
 
-       return jestObject;
 
-     };
 
-     const mock = (moduleName, mockFactory, options) => {
 
-       if (mockFactory !== undefined) {
 
-         return setMockFactory(moduleName, mockFactory, options);
 
-       }
 
-       const moduleID = this._resolver.getModuleID(
 
-         this._virtualMocks,
 
-         from,
 
-         moduleName,
 
-         {
 
-           conditions: this.cjsConditions
 
-         }
 
-       );
 
-       this._explicitShouldMock.set(moduleID, true);
 
-       return jestObject;
 
-     };
 
-     const setMockFactory = (moduleName, mockFactory, options) => {
 
-       this.setMock(from, moduleName, mockFactory, options);
 
-       return jestObject;
 
-     };
 
-     const mockModule = (moduleName, mockFactory, options) => {
 
-       if (typeof mockFactory !== 'function') {
 
-         throw new Error('`unstable_mockModule` must be passed a mock factory');
 
-       }
 
-       this.setModuleMock(from, moduleName, mockFactory, options);
 
-       return jestObject;
 
-     };
 
-     const clearAllMocks = () => {
 
-       this.clearAllMocks();
 
-       return jestObject;
 
-     };
 
-     const resetAllMocks = () => {
 
-       this.resetAllMocks();
 
-       return jestObject;
 
-     };
 
-     const restoreAllMocks = () => {
 
-       this.restoreAllMocks();
 
-       return jestObject;
 
-     };
 
-     const _getFakeTimers = () => {
 
-       if (
 
-         this.isTornDown ||
 
-         !(this._environment.fakeTimers || this._environment.fakeTimersModern)
 
-       ) {
 
-         this._logFormattedReferenceError(
 
-           'You are trying to access a property or method of the Jest environment after it has been torn down.'
 
-         );
 
-         process.exitCode = 1;
 
-       }
 
-       return this._fakeTimersImplementation;
 
-     };
 
-     const useFakeTimers = (type = 'modern') => {
 
-       if (type === 'legacy') {
 
-         this._fakeTimersImplementation = this._environment.fakeTimers;
 
-       } else {
 
-         this._fakeTimersImplementation = this._environment.fakeTimersModern;
 
-       }
 
-       this._fakeTimersImplementation.useFakeTimers();
 
-       return jestObject;
 
-     };
 
-     const useRealTimers = () => {
 
-       _getFakeTimers().useRealTimers();
 
-       return jestObject;
 
-     };
 
-     const resetModules = () => {
 
-       this.resetModules();
 
-       return jestObject;
 
-     };
 
-     const isolateModules = fn => {
 
-       this.isolateModules(fn);
 
-       return jestObject;
 
-     };
 
-     const fn = this._moduleMocker.fn.bind(this._moduleMocker);
 
-     const spyOn = this._moduleMocker.spyOn.bind(this._moduleMocker);
 
-     const mocked =
 
-       (_this$_moduleMocker$m =
 
-         (_this$_moduleMocker$m2 = this._moduleMocker.mocked) === null ||
 
-         _this$_moduleMocker$m2 === void 0
 
-           ? void 0
 
-           : _this$_moduleMocker$m2.bind(this._moduleMocker)) !== null &&
 
-       _this$_moduleMocker$m !== void 0
 
-         ? _this$_moduleMocker$m
 
-         : () => {
 
-             throw new Error(
 
-               'Your test environment does not support `mocked`, please update it.'
 
-             );
 
-           };
 
-     const setTimeout = timeout => {
 
-       if (this._environment.global.jasmine) {
 
-         this._environment.global.jasmine._DEFAULT_TIMEOUT_INTERVAL = timeout;
 
-       } else {
 
-         // @ts-expect-error: https://github.com/Microsoft/TypeScript/issues/24587
 
-         this._environment.global[testTimeoutSymbol] = timeout;
 
-       }
 
-       return jestObject;
 
-     };
 
-     const retryTimes = numTestRetries => {
 
-       // @ts-expect-error: https://github.com/Microsoft/TypeScript/issues/24587
 
-       this._environment.global[retryTimesSymbol] = numTestRetries;
 
-       return jestObject;
 
-     };
 
-     const jestObject = {
 
-       advanceTimersByTime: msToRun =>
 
-         _getFakeTimers().advanceTimersByTime(msToRun),
 
-       advanceTimersToNextTimer: steps =>
 
-         _getFakeTimers().advanceTimersToNextTimer(steps),
 
-       autoMockOff: disableAutomock,
 
-       autoMockOn: enableAutomock,
 
-       clearAllMocks,
 
-       clearAllTimers: () => _getFakeTimers().clearAllTimers(),
 
-       createMockFromModule: moduleName => this._generateMock(from, moduleName),
 
-       deepUnmock,
 
-       disableAutomock,
 
-       doMock: mock,
 
-       dontMock: unmock,
 
-       enableAutomock,
 
-       fn,
 
-       genMockFromModule: moduleName => this._generateMock(from, moduleName),
 
-       getRealSystemTime: () => {
 
-         const fakeTimers = _getFakeTimers();
 
-         if (fakeTimers === this._environment.fakeTimersModern) {
 
-           return fakeTimers.getRealSystemTime();
 
-         } else {
 
-           throw new TypeError(
 
-             'getRealSystemTime is not available when not using modern timers'
 
-           );
 
-         }
 
-       },
 
-       getTimerCount: () => _getFakeTimers().getTimerCount(),
 
-       isMockFunction: this._moduleMocker.isMockFunction,
 
-       isolateModules,
 
-       mock,
 
-       mocked,
 
-       requireActual: this.requireActual.bind(this, from),
 
-       requireMock: this.requireMock.bind(this, from),
 
-       resetAllMocks,
 
-       resetModules,
 
-       restoreAllMocks,
 
-       retryTimes,
 
-       runAllImmediates: () => {
 
-         const fakeTimers = _getFakeTimers();
 
-         if (fakeTimers === this._environment.fakeTimers) {
 
-           fakeTimers.runAllImmediates();
 
-         } else {
 
-           throw new TypeError(
 
-             'runAllImmediates is not available when using modern timers'
 
-           );
 
-         }
 
-       },
 
-       runAllTicks: () => _getFakeTimers().runAllTicks(),
 
-       runAllTimers: () => _getFakeTimers().runAllTimers(),
 
-       runOnlyPendingTimers: () => _getFakeTimers().runOnlyPendingTimers(),
 
-       setMock: (moduleName, mock) => setMockFactory(moduleName, () => mock),
 
-       setSystemTime: now => {
 
-         const fakeTimers = _getFakeTimers();
 
-         if (fakeTimers === this._environment.fakeTimersModern) {
 
-           fakeTimers.setSystemTime(now);
 
-         } else {
 
-           throw new TypeError(
 
-             'setSystemTime is not available when not using modern timers'
 
-           );
 
-         }
 
-       },
 
-       setTimeout,
 
-       spyOn,
 
-       unmock,
 
-       unstable_mockModule: mockModule,
 
-       useFakeTimers,
 
-       useRealTimers
 
-     };
 
-     return jestObject;
 
-   }
 
-   _logFormattedReferenceError(errorMessage) {
 
-     const testPath = this._testPath
 
-       ? ` From ${(0, _slash().default)(
 
-           path().relative(this._config.rootDir, this._testPath)
 
-         )}.`
 
-       : '';
 
-     const originalStack = new ReferenceError(`${errorMessage}${testPath}`).stack
 
-       .split('\n') // Remove this file from the stack (jest-message-utils will keep one line)
 
-       .filter(line => line.indexOf(__filename) === -1)
 
-       .join('\n');
 
-     const {message, stack} = (0, _jestMessageUtil().separateMessageFromStack)(
 
-       originalStack
 
-     );
 
-     console.error(
 
-       `\n${message}\n` +
 
-         (0, _jestMessageUtil().formatStackTrace)(stack, this._config, {
 
-           noStackTrace: false
 
-         })
 
-     );
 
-   }
 
-   wrapCodeInModuleWrapper(content) {
 
-     return this.constructModuleWrapperStart() + content + '\n}});';
 
-   }
 
-   constructModuleWrapperStart() {
 
-     const args = this.constructInjectedModuleParameters();
 
-     return '({"' + EVAL_RESULT_VARIABLE + `":function(${args.join(',')}){`;
 
-   }
 
-   constructInjectedModuleParameters() {
 
-     return [
 
-       'module',
 
-       'exports',
 
-       'require',
 
-       '__dirname',
 
-       '__filename',
 
-       this._config.injectGlobals ? 'jest' : undefined,
 
-       ...this._config.extraGlobals
 
-     ].filter(notEmpty);
 
-   }
 
-   handleExecutionError(e, module) {
 
-     const moduleNotFoundError =
 
-       _jestResolve().default.tryCastModuleNotFoundError(e);
 
-     if (moduleNotFoundError) {
 
-       if (!moduleNotFoundError.requireStack) {
 
-         moduleNotFoundError.requireStack = [module.filename || module.id];
 
-         for (let cursor = module.parent; cursor; cursor = cursor.parent) {
 
-           moduleNotFoundError.requireStack.push(cursor.filename || cursor.id);
 
-         }
 
-         moduleNotFoundError.buildMessage(this._config.rootDir);
 
-       }
 
-       throw moduleNotFoundError;
 
-     }
 
-     throw e;
 
-   }
 
-   getGlobalsForCjs(from) {
 
-     const jest = this.jestObjectCaches.get(from);
 
-     invariant(jest, 'There should always be a Jest object already');
 
-     return {...this.getGlobalsFromEnvironment(), jest};
 
-   }
 
-   getGlobalsForEsm(from, context) {
 
-     let jest = this.jestObjectCaches.get(from);
 
-     if (!jest) {
 
-       jest = this._createJestObjectFor(from);
 
-       this.jestObjectCaches.set(from, jest);
 
-     }
 
-     const globals = {...this.getGlobalsFromEnvironment(), jest};
 
-     const module = new (_vm().SyntheticModule)(
 
-       Object.keys(globals),
 
-       function () {
 
-         Object.entries(globals).forEach(([key, value]) => {
 
-           // @ts-expect-error: TS doesn't know what `this` is
 
-           this.setExport(key, value);
 
-         });
 
-       },
 
-       {
 
-         context,
 
-         identifier: '@jest/globals'
 
-       }
 
-     );
 
-     return evaluateSyntheticModule(module);
 
-   }
 
-   getGlobalsFromEnvironment() {
 
-     if (this.jestGlobals) {
 
-       return {...this.jestGlobals};
 
-     }
 
-     return {
 
-       afterAll: this._environment.global.afterAll,
 
-       afterEach: this._environment.global.afterEach,
 
-       beforeAll: this._environment.global.beforeAll,
 
-       beforeEach: this._environment.global.beforeEach,
 
-       describe: this._environment.global.describe,
 
-       expect: this._environment.global.expect,
 
-       fdescribe: this._environment.global.fdescribe,
 
-       fit: this._environment.global.fit,
 
-       it: this._environment.global.it,
 
-       test: this._environment.global.test,
 
-       xdescribe: this._environment.global.xdescribe,
 
-       xit: this._environment.global.xit,
 
-       xtest: this._environment.global.xtest
 
-     };
 
-   }
 
-   readFile(filename) {
 
-     let source = this._cacheFS.get(filename);
 
-     if (!source) {
 
-       source = fs().readFileSync(filename, 'utf8');
 
-       this._cacheFS.set(filename, source);
 
-     }
 
-     return source;
 
-   }
 
-   setGlobalsForRuntime(globals) {
 
-     this.jestGlobals = globals;
 
-   }
 
- }
 
- exports.default = Runtime;
 
- _defineProperty(Runtime, 'shouldInstrument', _transform().shouldInstrument);
 
- function invariant(condition, message) {
 
-   if (!condition) {
 
-     throw new Error(message);
 
-   }
 
- }
 
- function notEmpty(value) {
 
-   return value !== null && value !== undefined;
 
- }
 
- async function evaluateSyntheticModule(module) {
 
-   await module.link(() => {
 
-     throw new Error('This should never happen');
 
-   });
 
-   await module.evaluate();
 
-   return module;
 
- }
 
 
  |