@socketsecurity/lib
Version:
Core utilities and infrastructure for Socket.dev security tools
177 lines (176 loc) • 6.17 kB
JavaScript
;
/* Socket Lib - Built with esbuild */
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var node_exports = {};
__export(node_exports, {
ESNEXT: () => ESNEXT,
NODE_SEA_FUSE: () => NODE_SEA_FUSE,
getExecPath: () => getExecPath,
getMaintainedNodeVersions: () => getMaintainedNodeVersions,
getNodeDisableSigusr1Flags: () => getNodeDisableSigusr1Flags,
getNodeHardenFlags: () => getNodeHardenFlags,
getNodeMajorVersion: () => getNodeMajorVersion,
getNodeNoWarningsFlags: () => getNodeNoWarningsFlags,
getNodePermissionFlags: () => getNodePermissionFlags,
getNodeVersion: () => getNodeVersion,
supportsNodeCompileCacheApi: () => supportsNodeCompileCacheApi,
supportsNodeCompileCacheEnvVar: () => supportsNodeCompileCacheEnvVar,
supportsNodeDisableSigusr1Flag: () => supportsNodeDisableSigusr1Flag,
supportsNodeDisableWarningFlag: () => supportsNodeDisableWarningFlag,
supportsNodePermissionFlag: () => supportsNodePermissionFlag,
supportsNodeRequireModule: () => supportsNodeRequireModule,
supportsNodeRun: () => supportsNodeRun,
supportsProcessSend: () => supportsProcessSend
});
module.exports = __toCommonJS(node_exports);
const NODE_VERSION = process.version;
function getNodeVersion() {
return NODE_VERSION;
}
function getNodeMajorVersion() {
return Number.parseInt(NODE_VERSION.slice(1).split(".")[0] || "0", 10);
}
let _maintainedNodeVersions;
function getMaintainedNodeVersions() {
if (_maintainedNodeVersions === void 0) {
_maintainedNodeVersions = require("../maintained-node-versions");
}
return _maintainedNodeVersions;
}
function supportsNodeCompileCacheApi() {
const major = getNodeMajorVersion();
return major >= 24;
}
function supportsNodeCompileCacheEnvVar() {
const major = getNodeMajorVersion();
return major >= 22;
}
function supportsNodeDisableWarningFlag() {
const major = getNodeMajorVersion();
return major >= 21;
}
function supportsNodePermissionFlag() {
const major = getNodeMajorVersion();
return major >= 20;
}
function supportsNodeRequireModule() {
const major = getNodeMajorVersion();
return major >= 23 || major === 22 && Number.parseInt(NODE_VERSION.split(".")[1] || "0", 10) >= 12;
}
function supportsNodeRun() {
const major = getNodeMajorVersion();
return major >= 23 || major === 22 && Number.parseInt(NODE_VERSION.split(".")[1] || "0", 10) >= 11;
}
function supportsNodeDisableSigusr1Flag() {
const major = getNodeMajorVersion();
if (major >= 24) {
const minor = Number.parseInt(NODE_VERSION.split(".")[1] || "0", 10);
return minor >= 8;
}
if (major === 23) {
const minor = Number.parseInt(NODE_VERSION.split(".")[1] || "0", 10);
return minor >= 7;
}
if (major === 22) {
const minor = Number.parseInt(NODE_VERSION.split(".")[1] || "0", 10);
return minor >= 14;
}
return false;
}
let _nodeDisableSigusr1Flags;
function getNodeDisableSigusr1Flags() {
if (_nodeDisableSigusr1Flags === void 0) {
_nodeDisableSigusr1Flags = supportsNodeDisableSigusr1Flag() ? ["--disable-sigusr1"] : ["--no-inspect"];
}
return _nodeDisableSigusr1Flags;
}
function supportsProcessSend() {
return typeof process.send === "function";
}
let _nodeHardenFlags;
function getNodeHardenFlags() {
if (_nodeHardenFlags === void 0) {
const major = getNodeMajorVersion();
const flags = [
"--disable-proto=delete",
// Node.js 24+ uses --permission instead of --experimental-permission.
// The permission model graduated from experimental to production-ready.
major >= 24 ? "--permission" : "--experimental-permission",
// Force uncaught exceptions policy for N-API addons (Node.js 22+).
"--force-node-api-uncaught-exceptions-policy"
];
if (major < 24) {
flags.push("--experimental-policy");
}
_nodeHardenFlags = flags;
}
return _nodeHardenFlags;
}
let _nodePermissionFlags;
function getNodePermissionFlags() {
if (_nodePermissionFlags === void 0) {
const major = getNodeMajorVersion();
if (major >= 24) {
_nodePermissionFlags = [
// Allow reading from the entire filesystem (npm needs to read package.json, node_modules, etc.).
"--allow-fs-read=*",
// Allow writing to the entire filesystem (npm needs to write to node_modules, cache, etc.).
"--allow-fs-write=*",
// Allow spawning child processes (npm needs to run lifecycle scripts, git, etc.).
"--allow-child-process"
];
} else {
_nodePermissionFlags = [];
}
}
return _nodePermissionFlags;
}
let _nodeNoWarningsFlags;
function getNodeNoWarningsFlags() {
if (_nodeNoWarningsFlags === void 0) {
_nodeNoWarningsFlags = ["--no-warnings", "--no-deprecation"];
}
return _nodeNoWarningsFlags;
}
function getExecPath() {
return process.execPath;
}
const NODE_SEA_FUSE = "NODE_SEA_FUSE_fce680ab2cc467b6e072b8b5df1996b2";
const ESNEXT = "esnext";
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
ESNEXT,
NODE_SEA_FUSE,
getExecPath,
getMaintainedNodeVersions,
getNodeDisableSigusr1Flags,
getNodeHardenFlags,
getNodeMajorVersion,
getNodeNoWarningsFlags,
getNodePermissionFlags,
getNodeVersion,
supportsNodeCompileCacheApi,
supportsNodeCompileCacheEnvVar,
supportsNodeDisableSigusr1Flag,
supportsNodeDisableWarningFlag,
supportsNodePermissionFlag,
supportsNodeRequireModule,
supportsNodeRun,
supportsProcessSend
});