Socket
Socket
Sign inDemoInstall

packherd

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

packherd - npm Package Compare versions

Comparing version 0.7.0 to 0.8.0

13

dist/src/loader.d.ts
/// <reference types="node" />
import Module from 'module';
import { ModuleBuildin as ModuleBuiltin, ModuleDefinition, ModuleLoadResult, ModuleMapper } from './types';
import { ModuleBuildin as ModuleBuiltin, ModuleDefinition, ModuleLoadResult, ModuleResolveResult, ModuleMapper } from './types';
import { Benchmark } from './benchmark';
export declare type GetModuleKeyOpts = {
filename: string;
path: string;
relFilename?: string;
relPath?: string;
fromSnapshot?: boolean;
};
export declare type GetModuleKey = (opts: {
moduleUri: string;
baseDir: string;
parent?: NodeModule;
opts?: GetModuleKeyOpts;
}) => {

@@ -37,2 +44,3 @@ moduleKey: string | undefined;

private _loadCacheDirect;
tryResolve(moduleUri: string, opts?: GetModuleKeyOpts): ModuleResolveResult;
tryLoad(moduleUri: string, parent: NodeModule, isMain: boolean): ModuleLoadResult;

@@ -45,2 +53,3 @@ private _dumpInfo;

private _initModuleFromDefinition;
private _createRequire;
private _interceptedRequire;

@@ -47,0 +56,0 @@ private _tryResolveFilename;

@@ -8,2 +8,3 @@ "use strict";

const debug_1 = __importDefault(require("debug"));
const module_1 = __importDefault(require("module"));
const path_1 = __importDefault(require("path"));

@@ -107,2 +108,28 @@ const assert_1 = require("assert");

}
tryResolve(moduleUri, opts) {
// 1. If is full path we are done
if (path_1.default.isAbsolute(moduleUri)) {
return { fullPath: moduleUri, resolved: 'path' };
}
// 2. Resolve via module key
let { moduleKey, moduleRelativePath } = this.getModuleKey({
moduleUri,
baseDir: this.projectBaseDir,
opts,
});
if (moduleKey != null && path_1.default.isAbsolute(moduleKey)) {
return { fullPath: moduleKey, resolved: 'module-key:node' };
}
// 3. Try to obtain a full path via the resolved relative path
let fullPath = this._tryResolveFullPath(moduleUri, moduleRelativePath, opts);
if (fullPath != null) {
return { fullPath, resolved: 'module-fullpath:node' };
}
// 4. Lastly try to resolve the module via Node.js resolution
assert_1.strict(opts != null && opts.id != null, 'Need a parent to resolve via Node.js');
const directFullPath = fullPath;
let resolved;
({ resolved, fullPath } = this._resolvePaths(moduleUri, opts, false, directFullPath));
return { fullPath, resolved };
}
tryLoad(moduleUri, parent, isMain) {

@@ -127,3 +154,3 @@ // 1. Try to find moduleUri directly in Node.js module cache

baseDir: this.projectBaseDir,
parent,
opts: parent,
});

@@ -225,4 +252,4 @@ // 3. Try to see if the moduleKey was correct and can be loaded from the Node.js cache

const require = this.diagnostics
? this._interceptedRequire(fullPath, moduleUri)
: this.Module.createRequire(fullPath);
? this._interceptedRequire(fullPath, moduleUri, parent)
: this._createRequire(fullPath, moduleUri, parent);
return {

@@ -271,4 +298,20 @@ children: [],

}
_interceptedRequire(fullPath, moduleUri) {
_createRequire(fullPath, moduleUri, parent) {
const require = this.Module.createRequire(fullPath);
if (parent == null) {
parent = this._createModule(fullPath, parent, moduleUri);
}
require.resolve = Object.assign((moduleUri, _options) => {
return this.tryResolve(moduleUri, parent).fullPath;
}, {
paths(request) {
if (module_1.default.builtinModules.includes(request))
return null;
return (parent === null || parent === void 0 ? void 0 : parent.paths) || null;
},
});
return require;
}
_interceptedRequire(fullPath, moduleUri, parent) {
const require = this._createRequire(fullPath, moduleUri, parent);
const override = (id) => {

@@ -308,3 +351,3 @@ logTrace('Module "%s" is requiring "%s"', moduleUri, id);

}
_tryResolveFullPath(moduleUri, moduleRelativePath, parent) {
_tryResolveFullPath(moduleUri, moduleRelativePath, opts) {
if (path_1.default.isAbsolute(moduleUri))

@@ -315,4 +358,4 @@ return moduleUri;

}
if (parent != null && moduleUri.startsWith('.')) {
return path_1.default.resolve(parent.path, moduleUri);
if (opts != null && moduleUri.startsWith('.')) {
return path_1.default.resolve(opts.path, moduleUri);
}

@@ -319,0 +362,0 @@ }

@@ -0,1 +1,2 @@

/// <reference types="node" />
import { ModuleLoaderOpts } from './loader';

@@ -9,2 +10,6 @@ import type { PackherdTranspileOpts, SourceMapLookup } from './types';

};
export declare function packherdRequire(projectBaseDir: string, opts: PackherdRequireOpts): void;
export declare function packherdRequire(projectBaseDir: string, opts: PackherdRequireOpts): {
resolve: NodeJS.RequireResolve;
} | {
resolve: (moduleUri: string, opts?: import("./loader").GetModuleKeyOpts | undefined) => import("./types").ModuleResolveResult;
};

3

dist/src/require.js

@@ -62,3 +62,3 @@ "use strict";

logInfo('No moduleExports nor moduleDefinitions provided, not hooking Module._load');
return;
return { resolve: require.resolve.bind(require) };
}

@@ -114,4 +114,5 @@ const benchmark = benchmark_1.setupBenchmark(projectBaseDir, opts.requireStatsFile);

};
return { resolve: moduleLoader.tryResolve.bind(moduleLoader) };
}
exports.packherdRequire = packherdRequire;
//# sourceMappingURL=require.js.map
{
"name": "packherd",
"version": "0.7.0",
"version": "0.8.0",
"description": "Herds all dependencies reachable from an entry and packs them.",

@@ -5,0 +5,0 @@ "main": "dist/src/packherd.js",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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