mirror of
https://github.com/AikidoSec/safe-chain.git
synced 2026-05-26 12:10:49 +00:00
Initial commit
This commit is contained in:
parent
dd51a48435
commit
5eaf6ac3b3
51 changed files with 10087 additions and 1 deletions
171
src/packagemanager/npm/utils/cmd-list.js
Normal file
171
src/packagemanager/npm/utils/cmd-list.js
Normal file
|
|
@ -0,0 +1,171 @@
|
|||
// Based on https://github.com/npm/cli/blob/latest/lib/utils/cmd-list.js
|
||||
|
||||
import abbrev from "abbrev";
|
||||
|
||||
const commands = [
|
||||
"access",
|
||||
"adduser",
|
||||
"audit",
|
||||
"bugs",
|
||||
"cache",
|
||||
"ci",
|
||||
"completion",
|
||||
"config",
|
||||
"dedupe",
|
||||
"deprecate",
|
||||
"diff",
|
||||
"dist-tag",
|
||||
"docs",
|
||||
"doctor",
|
||||
"edit",
|
||||
"exec",
|
||||
"explain",
|
||||
"explore",
|
||||
"find-dupes",
|
||||
"fund",
|
||||
"get",
|
||||
"help",
|
||||
"help-search",
|
||||
"init",
|
||||
"install",
|
||||
"install-ci-test",
|
||||
"install-test",
|
||||
"link",
|
||||
"ll",
|
||||
"login",
|
||||
"logout",
|
||||
"ls",
|
||||
"org",
|
||||
"outdated",
|
||||
"owner",
|
||||
"pack",
|
||||
"ping",
|
||||
"pkg",
|
||||
"prefix",
|
||||
"profile",
|
||||
"prune",
|
||||
"publish",
|
||||
"query",
|
||||
"rebuild",
|
||||
"repo",
|
||||
"restart",
|
||||
"root",
|
||||
"run",
|
||||
"sbom",
|
||||
"search",
|
||||
"set",
|
||||
"shrinkwrap",
|
||||
"star",
|
||||
"stars",
|
||||
"start",
|
||||
"stop",
|
||||
"team",
|
||||
"test",
|
||||
"token",
|
||||
"undeprecate",
|
||||
"uninstall",
|
||||
"unpublish",
|
||||
"unstar",
|
||||
"update",
|
||||
"version",
|
||||
"view",
|
||||
"whoami",
|
||||
];
|
||||
|
||||
// These must resolve to an entry in commands
|
||||
const aliases = {
|
||||
// aliases
|
||||
author: "owner",
|
||||
home: "docs",
|
||||
issues: "bugs",
|
||||
info: "view",
|
||||
show: "view",
|
||||
find: "search",
|
||||
add: "install",
|
||||
unlink: "uninstall",
|
||||
remove: "uninstall",
|
||||
rm: "uninstall",
|
||||
r: "uninstall",
|
||||
|
||||
// short names for common things
|
||||
un: "uninstall",
|
||||
rb: "rebuild",
|
||||
list: "ls",
|
||||
ln: "link",
|
||||
create: "init",
|
||||
i: "install",
|
||||
it: "install-test",
|
||||
cit: "install-ci-test",
|
||||
up: "update",
|
||||
c: "config",
|
||||
s: "search",
|
||||
se: "search",
|
||||
tst: "test",
|
||||
t: "test",
|
||||
ddp: "dedupe",
|
||||
v: "view",
|
||||
"run-script": "run",
|
||||
"clean-install": "ci",
|
||||
"clean-install-test": "install-ci-test",
|
||||
x: "exec",
|
||||
why: "explain",
|
||||
la: "ll",
|
||||
verison: "version",
|
||||
ic: "ci",
|
||||
|
||||
// typos
|
||||
innit: "init",
|
||||
// manually abbrev so that install-test doesn't make insta stop working
|
||||
in: "install",
|
||||
ins: "install",
|
||||
inst: "install",
|
||||
insta: "install",
|
||||
instal: "install",
|
||||
isnt: "install",
|
||||
isnta: "install",
|
||||
isntal: "install",
|
||||
isntall: "install",
|
||||
"install-clean": "ci",
|
||||
"isntall-clean": "ci",
|
||||
hlep: "help",
|
||||
"dist-tags": "dist-tag",
|
||||
upgrade: "update",
|
||||
udpate: "update",
|
||||
rum: "run",
|
||||
sit: "install-ci-test",
|
||||
urn: "run",
|
||||
ogr: "org",
|
||||
"add-user": "adduser",
|
||||
};
|
||||
|
||||
export function deref(c) {
|
||||
if (!c) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Translate camelCase to snake-case (i.e. installTest to install-test)
|
||||
if (c.match(/[A-Z]/)) {
|
||||
c = c.replace(/([A-Z])/g, (m) => "-" + m.toLowerCase());
|
||||
}
|
||||
|
||||
// if they asked for something exactly we are done
|
||||
if (commands.includes(c)) {
|
||||
return c;
|
||||
}
|
||||
|
||||
// if they asked for a direct alias
|
||||
if (aliases[c]) {
|
||||
return aliases[c];
|
||||
}
|
||||
|
||||
const abbrevs = abbrev(commands.concat(Object.keys(aliases)));
|
||||
|
||||
// first deref the abbrev, if there is one
|
||||
// then resolve any aliases
|
||||
// so `npm install-cl` will resolve to `install-clean` then to `ci`
|
||||
let a = abbrevs[c];
|
||||
while (aliases[a]) {
|
||||
a = aliases[a];
|
||||
}
|
||||
return a;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue