UNPKG

@socketsecurity/lib

Version:

Core utilities and infrastructure for Socket.dev security tools

193 lines (192 loc) 6.36 kB
"use strict"; /* 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 manifest_exports = {}; __export(manifest_exports, { createPackageJson: () => createPackageJson, fetchPackageManifest: () => fetchPackageManifest, fetchPackagePackument: () => fetchPackagePackument }); module.exports = __toCommonJS(manifest_exports); var import_packages = require("#constants/packages"); var import_process = require("#constants/process"); var import_socket = require("#constants/socket"); var import_arrays = require("../arrays"); var import_objects = require("../objects"); var import_exports = require("./exports"); var import_validation = require("./validation"); const abortSignal = (0, import_process.getAbortSignal)(); const packageDefaultNodeRange = (0, import_packages.getPackageDefaultNodeRange)(); const PACKAGE_DEFAULT_SOCKET_CATEGORIES = (0, import_packages.getPackageDefaultSocketCategories)(); const packumentCache = (0, import_packages.getPackumentCache)(); const pkgScopePrefixRegExp = /^@socketregistry\//; let _npmPackageArg; // @__NO_SIDE_EFFECTS__ function getNpmPackageArg() { if (_npmPackageArg === void 0) { _npmPackageArg = require("../external/npm-package-arg"); } return _npmPackageArg; } let _pacote; // @__NO_SIDE_EFFECTS__ function getPacote() { if (_pacote === void 0) { _pacote = require("../external/pacote"); } return _pacote; } let _semver; // @__NO_SIDE_EFFECTS__ function getSemver() { if (_semver === void 0) { _semver = require("../external/semver"); } return _semver; } // @__NO_SIDE_EFFECTS__ function createPackageJson(sockRegPkgName, directory, options) { const { dependencies, description, engines, exports: entryExportsRaw, files, keywords, main, overrides, resolutions, sideEffects, socket, type, version } = { __proto__: null, ...options }; const name = `@socketregistry/${sockRegPkgName.replace(pkgScopePrefixRegExp, "")}`; const entryExports = (0, import_exports.resolvePackageJsonEntryExports)(entryExportsRaw); const githubUrl = `https://github.com/${import_socket.SOCKET_GITHUB_ORG}/${import_socket.SOCKET_REGISTRY_REPO_NAME}`; return { __proto__: null, name, version, license: "MIT", description, keywords, homepage: `${githubUrl}/tree/main/${directory}`, repository: { type: "git", url: `git+${githubUrl}.git`, directory }, ...type ? { type } : {}, ...(0, import_objects.isObjectObject)(entryExports) ? { exports: { ...entryExports } } : {}, ...entryExports ? {} : { main: `${main ?? "./index.js"}` }, sideEffects: sideEffects !== void 0 && !!sideEffects, ...(0, import_objects.isObjectObject)(dependencies) ? { dependencies: { ...dependencies } } : {}, ...(0, import_objects.isObjectObject)(overrides) ? { overrides: { ...overrides } } : {}, ...(0, import_objects.isObjectObject)(resolutions) ? { resolutions: { ...resolutions } } : {}, ...(0, import_objects.isObjectObject)(engines) ? { engines: Object.fromEntries( (0, import_objects.objectEntries)(engines).map((pair) => { const strKey = String(pair[0]); const result = [strKey, pair[1]]; if (strKey === "node") { const semver = /* @__PURE__ */ getSemver(); const { 1: range } = result; if (typeof range === "string" && range && packageDefaultNodeRange) { const coercedRange = semver.coerce(range); if (!semver.satisfies( coercedRange?.version ?? "0.0.0", packageDefaultNodeRange )) { result[1] = packageDefaultNodeRange; } } } return result; }) ) } : { engines: { node: packageDefaultNodeRange } }, files: (0, import_arrays.isArray)(files) ? files.slice() : ["*.d.ts", "*.js"], ...(0, import_objects.isObjectObject)(socket) ? { socket: { ...socket } } : { socket: { // Valid categories are: cleanup, levelup, speedup, tuneup categories: PACKAGE_DEFAULT_SOCKET_CATEGORIES } } }; } // @__NO_SIDE_EFFECTS__ async function fetchPackageManifest(pkgNameOrId, options) { const pacoteOptions = { __proto__: null, signal: abortSignal, ...options, packumentCache, preferOffline: true }; const { signal } = pacoteOptions; if (signal?.aborted) { return void 0; } const pacote = /* @__PURE__ */ getPacote(); let result; try { result = await pacote.manifest(pkgNameOrId, pacoteOptions); } catch { } if (signal?.aborted) { return void 0; } if (result) { const npmPackageArg = /* @__PURE__ */ getNpmPackageArg(); const spec = npmPackageArg(pkgNameOrId, pacoteOptions.where); if ((0, import_validation.isRegistryFetcherType)(spec.type)) { return result; } } if (result) { const typedResult = result; return await /* @__PURE__ */ fetchPackageManifest( `${typedResult.name}@${typedResult.version}`, pacoteOptions ); } return null; } // @__NO_SIDE_EFFECTS__ async function fetchPackagePackument(pkgNameOrId, options) { const pacote = /* @__PURE__ */ getPacote(); try { return await pacote.packument(pkgNameOrId, { __proto__: null, signal: abortSignal, ...options, packumentCache, preferOffline: true }); } catch { } return void 0; } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { createPackageJson, fetchPackageManifest, fetchPackagePackument });