@socketsecurity/lib
Version:
Core utilities and infrastructure for Socket.dev security tools
86 lines (85 loc) • 3.06 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 specs_exports = {};
__export(specs_exports, {
getRepoUrlDetails: () => getRepoUrlDetails,
gitHubTagRefUrl: () => gitHubTagRefUrl,
gitHubTgzUrl: () => gitHubTgzUrl,
isGitHubTgzSpec: () => isGitHubTgzSpec,
isGitHubUrlSpec: () => isGitHubUrlSpec
});
module.exports = __toCommonJS(specs_exports);
var import_objects = require("../objects");
var import_strings = require("../strings");
let _npmPackageArg;
// @__NO_SIDE_EFFECTS__
function getNpmPackageArg() {
if (_npmPackageArg === void 0) {
_npmPackageArg = require("../external/npm-package-arg");
}
return _npmPackageArg;
}
// @__NO_SIDE_EFFECTS__
function getRepoUrlDetails(repoUrl = "") {
const userAndRepo = repoUrl.replace(/^.+github.com\//, "").split("/");
const user = userAndRepo[0] || "";
const project = userAndRepo.length > 1 ? userAndRepo[1]?.slice(0, -".git".length) || "" : "";
return { user, project };
}
// @__NO_SIDE_EFFECTS__
function gitHubTagRefUrl(user, project, tag) {
return `https://api.github.com/repos/${user}/${project}/git/ref/tags/${tag}`;
}
// @__NO_SIDE_EFFECTS__
function gitHubTgzUrl(user, project, sha) {
return `https://github.com/${user}/${project}/archive/${sha}.tar.gz`;
}
// @__NO_SIDE_EFFECTS__
function isGitHubTgzSpec(spec, where) {
let parsedSpec;
if ((0, import_objects.isObjectObject)(spec)) {
parsedSpec = spec;
} else {
const npmPackageArg = /* @__PURE__ */ getNpmPackageArg();
parsedSpec = npmPackageArg(spec, where);
}
const typedSpec = parsedSpec;
return typedSpec.type === "remote" && !!typedSpec.saveSpec?.endsWith(".tar.gz");
}
// @__NO_SIDE_EFFECTS__
function isGitHubUrlSpec(spec, where) {
let parsedSpec;
if ((0, import_objects.isObjectObject)(spec)) {
parsedSpec = spec;
} else {
const npmPackageArg = /* @__PURE__ */ getNpmPackageArg();
parsedSpec = npmPackageArg(spec, where);
}
const typedSpec = parsedSpec;
return typedSpec.type === "git" && typedSpec.hosted?.domain === "github.com" && (0, import_strings.isNonEmptyString)(typedSpec.gitCommittish);
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
getRepoUrlDetails,
gitHubTagRefUrl,
gitHubTgzUrl,
isGitHubTgzSpec,
isGitHubUrlSpec
});