New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

jest-resolve

Package Overview
Dependencies
Maintainers
6
Versions
275
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

jest-resolve - npm Package Compare versions

Comparing version 27.2.5 to 27.3.0

build/fileWalkers.d.ts

9

build/defaultResolver.d.ts

@@ -7,5 +7,5 @@ /**

*/
import { Opts as ResolveOpts } from 'resolve';
import type { Config } from '@jest/types';
interface ResolverOptions extends ResolveOpts {
import { PkgJson } from './fileWalkers';
interface ResolverOptions {
basedir: Config.Path;

@@ -16,3 +16,7 @@ browser?: boolean;

extensions?: Array<string>;
moduleDirectory?: Array<string>;
paths?: Array<Config.Path>;
rootDir?: Config.Path;
packageFilter?: (pkg: PkgJson, dir: string) => PkgJson;
pathFilter?: (pkg: PkgJson, path: string, relativePath: string) => string;
}

@@ -27,3 +31,2 @@ declare global {

export default function defaultResolver(path: Config.Path, options: ResolverOptions): Config.Path;
export declare function clearDefaultResolverCache(): void;
export {};

@@ -7,8 +7,7 @@ 'use strict';

exports.default = defaultResolver;
exports.clearDefaultResolverCache = clearDefaultResolverCache;
function fs() {
const data = _interopRequireWildcard(require('graceful-fs'));
function _path() {
const data = require('path');
fs = function () {
_path = function () {
return data;

@@ -40,12 +39,6 @@ };

function _jestUtil() {
const data = require('jest-util');
var _resolve2 = require('resolve.exports');
_jestUtil = function () {
return data;
};
var _fileWalkers = require('./fileWalkers');
return data;
}
function _interopRequireDefault(obj) {

@@ -55,44 +48,2 @@ 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;
}
/**

@@ -113,111 +64,64 @@ * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.

...options,
isDirectory,
isFile,
isDirectory: _fileWalkers.isDirectory,
isFile: _fileWalkers.isFile,
packageFilter: createPackageFilter(
options.conditions,
options.packageFilter
),
preserveSymlinks: false,
readPackageSync,
realpathSync
realpathSync: _fileWalkers.realpathSync
}); // Dereference symlinks to ensure we don't create a separate
// module instance depending on how it was referenced.
return realpathSync(result);
return (0, _fileWalkers.realpathSync)(result);
}
/*
* helper functions
*/
function clearDefaultResolverCache() {
checkedPaths.clear();
checkedRealpathPaths.clear();
packageContents.clear();
function readPackageSync(_, file) {
return (0, _fileWalkers.readPackageCached)(file);
}
var IPathType;
function createPackageFilter(conditions, userFilter) {
function attemptExportsFallback(pkg) {
const options = conditions
? {
conditions,
unsafe: true
} // no conditions were passed - let's assume this is Jest internal and it should be `require`
: {
browser: false,
require: true
};
(function (IPathType) {
IPathType[(IPathType['FILE'] = 1)] = 'FILE';
IPathType[(IPathType['DIRECTORY'] = 2)] = 'DIRECTORY';
IPathType[(IPathType['OTHER'] = 3)] = 'OTHER';
})(IPathType || (IPathType = {}));
const checkedPaths = new Map();
function statSyncCached(path) {
const result = checkedPaths.get(path);
if (result !== undefined) {
return result;
try {
return (0, _resolve2.resolve)(pkg, '.', options);
} catch {
return undefined;
}
}
let stat;
return function packageFilter(pkg, packageDir) {
let filteredPkg = pkg;
try {
stat = fs().statSync(path);
} catch (e) {
if (!(e && (e.code === 'ENOENT' || e.code === 'ENOTDIR'))) {
throw e;
if (userFilter) {
filteredPkg = userFilter(filteredPkg, packageDir);
}
}
if (stat) {
if (stat.isFile() || stat.isFIFO()) {
checkedPaths.set(path, IPathType.FILE);
return IPathType.FILE;
} else if (stat.isDirectory()) {
checkedPaths.set(path, IPathType.DIRECTORY);
return IPathType.DIRECTORY;
if (filteredPkg.main != null) {
return filteredPkg;
}
}
checkedPaths.set(path, IPathType.OTHER);
return IPathType.OTHER;
}
const indexInRoot = (0, _path().resolve)(packageDir, './index.js'); // if the module contains an `index.js` file in root, `resolve` will request
// that if there is no `main`. Since we don't wanna break that, add this
// check
const checkedRealpathPaths = new Map();
if ((0, _fileWalkers.isFile)(indexInRoot)) {
return filteredPkg;
}
function realpathCached(path) {
let result = checkedRealpathPaths.get(path);
if (result !== undefined) {
return result;
}
result = (0, _jestUtil().tryRealpath)(path);
checkedRealpathPaths.set(path, result);
if (path !== result) {
// also cache the result in case it's ever referenced directly - no reason to `realpath` that as well
checkedRealpathPaths.set(result, result);
}
return result;
return {...filteredPkg, main: attemptExportsFallback(filteredPkg)};
};
}
const packageContents = new Map();
function readPackageCached(path) {
let result = packageContents.get(path);
if (result !== undefined) {
return result;
}
result = JSON.parse(fs().readFileSync(path, 'utf8'));
packageContents.set(path, result);
return result;
}
/*
* helper functions
*/
function isFile(file) {
return statSyncCached(file) === IPathType.FILE;
}
function isDirectory(dir) {
return statSyncCached(dir) === IPathType.DIRECTORY;
}
function realpathSync(file) {
return realpathCached(file);
}
function readPackageSync(_, file) {
return readPackageCached(file);
}

@@ -52,4 +52,6 @@ 'use strict';

var _defaultResolver = _interopRequireWildcard(require('./defaultResolver'));
var _defaultResolver = _interopRequireDefault(require('./defaultResolver'));
var _fileWalkers = require('./fileWalkers');
var _isBuiltinModule = _interopRequireDefault(require('./isBuiltinModule'));

@@ -181,3 +183,3 @@

static clearDefaultResolverCache() {
(0, _defaultResolver.clearDefaultResolverCache)();
(0, _fileWalkers.clearFsCache)();
(0, _shouldLoadAsEsm.clearCachedLookups)();

@@ -184,0 +186,0 @@ }

@@ -29,26 +29,4 @@ 'use strict';

function _sync() {
const data = _interopRequireDefault(require('escalade/sync'));
var _fileWalkers = require('./fileWalkers');
_sync = function () {
return data;
};
return data;
}
function _gracefulFs() {
const data = require('graceful-fs');
_gracefulFs = function () {
return data;
};
return data;
}
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {default: obj};
}
/**

@@ -114,11 +92,4 @@ * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.

function cachedPkgCheck(cwd) {
const pkgPath = (0, _sync().default)(cwd, (_dir, names) => {
if (names.includes('package.json')) {
// will be resolved into absolute
return 'package.json';
}
const pkgPath = (0, _fileWalkers.findClosestPackageJson)(cwd);
return false;
});
if (!pkgPath) {

@@ -135,3 +106,3 @@ return false;

try {
const pkg = JSON.parse((0, _gracefulFs().readFileSync)(pkgPath, 'utf-8'));
const pkg = (0, _fileWalkers.readPackageCached)(pkgPath);
hasModuleField = pkg.type === 'module';

@@ -138,0 +109,0 @@ } catch {

{
"name": "jest-resolve",
"version": "27.2.5",
"version": "27.3.0",
"repository": {

@@ -19,9 +19,9 @@ "type": "git",

"chalk": "^4.0.0",
"escalade": "^3.1.1",
"graceful-fs": "^4.2.4",
"jest-haste-map": "^27.2.5",
"jest-haste-map": "^27.3.0",
"jest-pnp-resolver": "^1.2.2",
"jest-util": "^27.2.5",
"jest-validate": "^27.2.5",
"jest-util": "^27.3.0",
"jest-validate": "^27.3.0",
"resolve": "^1.20.0",
"resolve.exports": "^1.1.0",
"slash": "^3.0.0"

@@ -39,3 +39,3 @@ },

},
"gitHead": "251b8014e8e3ac8da2fca88b5a1bc401f3b92326"
"gitHead": "14b0c2c1d6f81b64adf8b827649ece80a4448cfc"
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc