start nginx for testing

This commit is contained in:
Dragan Filipovic committed 2022-12-30 14:29:31 +01:00
1 parent f7c067b07e
commit 692d3fee7d
6 files changed
+733 -173

No files matched your search

+22 -17
View File
@@ -38,19 +38,13 @@ jobs:
docker build \
-t ssh-host-image . \
--build-arg ssh_pub_key="$(cat $HOME/.ssh/id_rsa.pub)" \
--build-arg ssh_user="${{ env.TEST_USER }}" \
- name: Start Host Server Container
working-directory: ${{ env.TEST_HOST_DOCKER }}
run: |
docker run --name ssh-host-container -d ssh-host-image
- name: Get IP of Host Server
run: |
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ssh-host-container > ip.txt
cat ip.txt
EXAMPLE_REMOTE_HOST=$(cat ip.txt)
echo "EXAMPLE_REMOTE_HOST=$EXAMPLE_REMOTE_HOST" >> $GITHUB_ENV
--build-arg ssh_user="${{ env.TEST_USER }}"
docker run -d --name=ssh-host-container ssh-host-image
docker exec ssh-host-container sh -c "hostname --ip-address" > ip.txt
echo "EXAMPLE_REMOTE_HOST<<EOF" >> $GITHUB_ENV
cat ip.txt >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV
shell: bash
- name: Create project file
run: |
@@ -60,14 +54,25 @@ jobs:
date +"%Y-%m-%d %H:%M:%S,%3N" >> index.html
cat index.html
- name: e2e Test ssh-deploy action
# - name: e2e Test local ssh-deploy action
# run: node ./dist/index.js
# env:
# SSH_PRIVATE_KEY: $EXAMPLE_SSH_PRIVATE_KEY
# ARGS: "-rltgoDzvO"
# SOURCE: "test_project/"
# REMOTE_HOST: $EXAMPLE_REMOTE_HOST
# REMOTE_USER: $TEST_USER
# TARGET: "/var/www/html/"
# EXCLUDE: "/dist/, /node_modules/"
- name: e2e Test published ssh-deploy action
uses: easingthemes/ssh-deploy@main
env:
SSH_PRIVATE_KEY: env.EXAMPLE_SSH_PRIVATE_KEY
SSH_PRIVATE_KEY: $EXAMPLE_SSH_PRIVATE_KEY
ARGS: "-rltgoDzvO"
SOURCE: "test_project/"
REMOTE_HOST: env.EXAMPLE_REMOTE_HOST
REMOTE_USER: env.TEST_USER
REMOTE_HOST: $EXAMPLE_REMOTE_HOST
REMOTE_USER: $TEST_USER
TARGET: "/var/www/html/"
EXCLUDE: "/dist/, /node_modules/"
+524 -1
View File
@@ -1,2 +1,525 @@
#!/usr/bin/env node
(()=>{var e={569:(e,r,t)=>{e.exports=t(325)},325:(e,r,t)=>{"use strict";var n=t(81).exec;var s=t(81).execSync;var o=t(147);var c=t(17);var i=o.access;var a=o.accessSync;var u=o.constants||o;var l=process.platform=="win32";var fileNotExists=function(e,r){i(e,u.F_OK,(function(e){r(!e)}))};var fileNotExistsSync=function(e){try{a(e,u.F_OK);return false}catch(e){return true}};var localExecutable=function(e,r){i(e,u.F_OK|u.X_OK,(function(e){r(null,!e)}))};var localExecutableSync=function(e){try{a(e,u.F_OK|u.X_OK);return true}catch(e){return false}};var commandExistsUnix=function(e,r,t){fileNotExists(e,(function(s){if(!s){var o=n("command -v "+r+" 2>/dev/null"+" && { echo >&1 "+r+"; exit 0; }",(function(e,r,n){t(null,!!r)}));return}localExecutable(e,t)}))};var commandExistsWindows=function(e,r,t){if(!/^(?!(?:.*\s|.*\.|\W+)$)(?:[a-zA-Z]:)?(?:(?:[^<>:"\|\?\*\n])+(?:\/\/|\/|\\\\|\\)?)+$/m.test(e)){t(null,false);return}var s=n("where "+r,(function(e){if(e!==null){t(null,false)}else{t(null,true)}}))};var commandExistsUnixSync=function(e,r){if(fileNotExistsSync(e)){try{var t=s("command -v "+r+" 2>/dev/null"+" && { echo >&1 "+r+"; exit 0; }");return!!t}catch(e){return false}}return localExecutableSync(e)};var commandExistsWindowsSync=function(e,r,t){if(!/^(?!(?:.*\s|.*\.|\W+)$)(?:[a-zA-Z]:)?(?:(?:[^<>:"\|\?\*\n])+(?:\/\/|\/|\\\\|\\)?)+$/m.test(e)){return false}try{var n=s("where "+r,{stdio:[]});return!!n}catch(e){return false}};var cleanInput=function(e){if(/[^A-Za-z0-9_\/:=-]/.test(e)){e="'"+e.replace(/'/g,"'\\''")+"'";e=e.replace(/^(?:'')+/g,"").replace(/\\'''/g,"\\'")}return e};if(l){cleanInput=function(e){var r=/[\\]/.test(e);if(r){var t='"'+c.dirname(e)+'"';var n='"'+c.basename(e)+'"';return t+":"+n}return'"'+e+'"'}}e.exports=function commandExists(e,r){var t=cleanInput(e);if(!r&&typeof Promise!=="undefined"){return new Promise((function(r,t){commandExists(e,(function(n,s){if(s){r(e)}else{t(n)}}))}))}if(l){commandExistsWindows(e,t,r)}else{commandExistsUnix(e,t,r)}};e.exports.sync=function(e){var r=cleanInput(e);if(l){return commandExistsWindowsSync(e,r)}else{return commandExistsUnixSync(e,r)}}},748:(e,r,t)=>{const{exec:n,execSync:s}=t(81);const o={run:runCommand,runSync:runSync};function runCommand(e,r){return n(e,function(){return function(e,t,n){if(!r)return;r(e,t,n)}}(r))}function runSync(e){try{return{data:s(e).toString(),err:null,stderr:null}}catch(e){return{data:null,err:e.stderr.toString(),stderr:e.stderr.toString()}}}e.exports=o},898:(e,r,t)=>{"use strict";var n=t(81).spawn;var s=t(837);var escapeSpaces=function(e){if(typeof e==="string"){return e.replace(/\b\s/g,"\\ ")}else{return e}};var escapeSpacesInOptions=function(e){["src","dest","include","exclude","excludeFirst"].forEach((function(r){var t=e[r];if(typeof t==="string"){e[r]=escapeSpaces(t)}else if(Array.isArray(t)===true){e[r]=t.map(escapeSpaces)}}));return e};e.exports=function(e,r){e=e||{};e=s._extend({},e);e=escapeSpacesInOptions(e);var t=e.platform||process.platform;var o=t==="win32";if(typeof e.src==="undefined"){throw new Error("'src' directory is missing from options")}if(typeof e.dest==="undefined"){throw new Error("'dest' directory is missing from options")}var c=e.dest;if(typeof e.host!=="undefined"){c=e.host+":"+e.dest}if(!Array.isArray(e.src)){e.src=[e.src]}var i=[].concat(e.src);i.push(c);var a=(e.args||[]).find((function(e){return e.match(/--chmod=/)}));if(o&&!a){i.push("--chmod=ugo=rwX")}if(typeof e.host!=="undefined"||e.ssh){i.push("--rsh");var u="ssh";if(typeof e.port!=="undefined"){u+=" -p "+e.port}if(typeof e.privateKey!=="undefined"){u+=" -i "+e.privateKey}if(typeof e.sshCmdArgs!=="undefined"){u+=" "+e.sshCmdArgs.join(" ")}i.push(u)}if(e.recursive===true){i.push("--recursive")}if(e.times===true){i.push("--times")}if(e.syncDest===true||e.deleteAll===true){i.push("--delete");i.push("--delete-excluded")}if(e.syncDestIgnoreExcl===true||e.delete===true){i.push("--delete")}if(e.dryRun===true){i.push("--dry-run");i.push("--verbose")}if(typeof e.excludeFirst!=="undefined"&&s.isArray(e.excludeFirst)){e.excludeFirst.forEach((function(e,r){i.push("--exclude="+e)}))}if(typeof e.include!=="undefined"&&s.isArray(e.include)){e.include.forEach((function(e,r){i.push("--include="+e)}))}if(typeof e.exclude!=="undefined"&&s.isArray(e.exclude)){e.exclude.forEach((function(e,r){i.push("--exclude="+e)}))}switch(e.compareMode){case"sizeOnly":i.push("--size-only");break;case"checksum":i.push("--checksum");break}if(typeof e.args!=="undefined"&&s.isArray(e.args)){i=[...new Set([...i,...e.args])]}i=[...new Set(i)];var noop=function(){};var l=e.onStdout||noop;var d=e.onStderr||noop;var f="rsync ";i.forEach((function(e){if(e.substr(0,4)==="ssh "){e='"'+e+'"'}f+=e+" "}));f=f.trim();if(e.noExec){r(null,null,null,f);return}try{var p="";var y="";var v;if(o){v=n("cmd.exe",["/s","/c",'"'+f+'"'],{windowsVerbatimArguments:true,stdio:[process.stdin,"pipe","pipe"]})}else{v=n("/bin/sh",["-c",f])}v.stdout.on("data",(function(e){l(e);p+=e}));v.stderr.on("data",(function(eLine truncated
(() => {
var e = {
569: (e, r, t) => {
e.exports = t(325);
},
325: (e, r, t) => {
"use strict";
var n = t(81).exec;
var s = t(81).execSync;
var o = t(147);
var c = t(17);
var i = o.access;
var a = o.accessSync;
var u = o.constants || o;
var l = process.platform == "win32";
var fileNotExists = function (e, r) {
i(e, u.F_OK, function (e) {
r(!e);
});
};
var fileNotExistsSync = function (e) {
try {
a(e, u.F_OK);
return false;
} catch (e) {
return true;
}
};
var localExecutable = function (e, r) {
i(e, u.F_OK | u.X_OK, function (e) {
r(null, !e);
});
};
var localExecutableSync = function (e) {
try {
a(e, u.F_OK | u.X_OK);
return true;
} catch (e) {
return false;
}
};
var commandExistsUnix = function (e, r, t) {
fileNotExists(e, function (s) {
if (!s) {
var o = n("command -v " + r + " 2>/dev/null" + " && { echo >&1 " + r + "; exit 0; }", function (e, r, n) {
t(null, !!r);
});
return;
}
localExecutable(e, t);
});
};
var commandExistsWindows = function (e, r, t) {
if (!/^(?!(?:.*\s|.*\.|\W+)$)(?:[a-zA-Z]:)?(?:(?:[^<>:"\|\?\*\n])+(?:\/\/|\/|\\\\|\\)?)+$/m.test(e)) {
t(null, false);
return;
}
var s = n("where " + r, function (e) {
if (e !== null) {
t(null, false);
} else {
t(null, true);
}
});
};
var commandExistsUnixSync = function (e, r) {
if (fileNotExistsSync(e)) {
try {
var t = s("command -v " + r + " 2>/dev/null" + " && { echo >&1 " + r + "; exit 0; }");
return !!t;
} catch (e) {
return false;
}
}
return localExecutableSync(e);
};
var commandExistsWindowsSync = function (e, r, t) {
if (!/^(?!(?:.*\s|.*\.|\W+)$)(?:[a-zA-Z]:)?(?:(?:[^<>:"\|\?\*\n])+(?:\/\/|\/|\\\\|\\)?)+$/m.test(e)) {
return false;
}
try {
var n = s("where " + r, { stdio: [] });
return !!n;
} catch (e) {
return false;
}
};
var cleanInput = function (e) {
if (/[^A-Za-z0-9_\/:=-]/.test(e)) {
e = "'" + e.replace(/'/g, "'\\''") + "'";
e = e.replace(/^(?:'')+/g, "").replace(/\\'''/g, "\\'");
}
return e;
};
if (l) {
cleanInput = function (e) {
var r = /[\\]/.test(e);
if (r) {
var t = '"' + c.dirname(e) + '"';
var n = '"' + c.basename(e) + '"';
return t + ":" + n;
}
return '"' + e + '"';
};
}
e.exports = function commandExists(e, r) {
var t = cleanInput(e);
if (!r && typeof Promise !== "undefined") {
return new Promise(function (r, t) {
commandExists(e, function (n, s) {
if (s) {
r(e);
} else {
t(n);
}
});
});
}
if (l) {
commandExistsWindows(e, t, r);
} else {
commandExistsUnix(e, t, r);
}
};
e.exports.sync = function (e) {
var r = cleanInput(e);
if (l) {
return commandExistsWindowsSync(e, r);
} else {
return commandExistsUnixSync(e, r);
}
};
},
748: (e, r, t) => {
const { exec: n, execSync: s } = t(81);
const o = { run: runCommand, runSync: runSync };
function runCommand(e, r) {
return n(
e,
(function () {
return function (e, t, n) {
if (!r) return;
r(e, t, n);
};
})(r)
);
}
function runSync(e) {
try {
return { data: s(e).toString(), err: null, stderr: null };
} catch (e) {
return { data: null, err: e.stderr.toString(), stderr: e.stderr.toString() };
}
}
e.exports = o;
},
898: (e, r, t) => {
"use strict";
var n = t(81).spawn;
var s = t(837);
var escapeSpaces = function (e) {
if (typeof e === "string") {
return e.replace(/\b\s/g, "\\ ");
} else {
return e;
}
};
var escapeSpacesInOptions = function (e) {
["src", "dest", "include", "exclude", "excludeFirst"].forEach(function (r) {
var t = e[r];
if (typeof t === "string") {
e[r] = escapeSpaces(t);
} else if (Array.isArray(t) === true) {
e[r] = t.map(escapeSpaces);
}
});
return e;
};
e.exports = function (e, r) {
e = e || {};
e = s._extend({}, e);
e = escapeSpacesInOptions(e);
var t = e.platform || process.platform;
var o = t === "win32";
if (typeof e.src === "undefined") {
throw new Error("'src' directory is missing from options");
}
if (typeof e.dest === "undefined") {
throw new Error("'dest' directory is missing from options");
}
var c = e.dest;
if (typeof e.host !== "undefined") {
c = e.host + ":" + e.dest;
}
if (!Array.isArray(e.src)) {
e.src = [e.src];
}
var i = [].concat(e.src);
i.push(c);
var a = (e.args || []).find(function (e) {
return e.match(/--chmod=/);
});
if (o && !a) {
i.push("--chmod=ugo=rwX");
}
if (typeof e.host !== "undefined" || e.ssh) {
i.push("--rsh");
var u = "ssh";
if (typeof e.port !== "undefined") {
u += " -p " + e.port;
}
if (typeof e.privateKey !== "undefined") {
u += " -i " + e.privateKey;
}
if (typeof e.sshCmdArgs !== "undefined") {
u += " " + e.sshCmdArgs.join(" ");
}
i.push(u);
}
if (e.recursive === true) {
i.push("--recursive");
}
if (e.times === true) {
i.push("--times");
}
if (e.syncDest === true || e.deleteAll === true) {
i.push("--delete");
i.push("--delete-excluded");
}
if (e.syncDestIgnoreExcl === true || e.delete === true) {
i.push("--delete");
}
if (e.dryRun === true) {
i.push("--dry-run");
i.push("--verbose");
}
if (typeof e.excludeFirst !== "undefined" && s.isArray(e.excludeFirst)) {
e.excludeFirst.forEach(function (e, r) {
i.push("--exclude=" + e);
});
}
if (typeof e.include !== "undefined" && s.isArray(e.include)) {
e.include.forEach(function (e, r) {
i.push("--include=" + e);
});
}
if (typeof e.exclude !== "undefined" && s.isArray(e.exclude)) {
e.exclude.forEach(function (e, r) {
i.push("--exclude=" + e);
});
}
switch (e.compareMode) {
case "sizeOnly":
i.push("--size-only");
break;
case "checksum":
i.push("--checksum");
break;
}
if (typeof e.args !== "undefined" && s.isArray(e.args)) {
i = [...new Set([...i, ...e.args])];
}
i = [...new Set(i)];
var noop = function () {};
var l = e.onStdout || noop;
var d = e.onStderr || noop;
var f = "rsync ";
i.forEach(function (e) {
if (e.substr(0, 4) === "ssh ") {
e = '"' + e + '"';
}
f += e + " ";
});
f = f.trim();
if (e.noExec) {
r(null, null, null, f);
return;
}
try {
var p = "";
var y = "";
var v;
if (o) {
v = n("cmd.exe", ["/s", "/c", '"' + f + '"'], {
windowsVerbatimArguments: true,
stdio: [process.stdin, "pipe", "pipe"],
});
} else {
v = n("/bin/sh", ["-c", f]);
}
v.stdout.on("data", function (e) {
l(e);
p += e;
});
v.stderr.on("data", function (e) {
d(e);
y += e;
});
v.on("exit", function (e) {
var t = null;
if (e !== 0) {
t = new Error("rsync exited with code " + e);
t.code = e;
}
r(t, p, y, f);
});
} catch (e) {
r(e, null, null, f);
}
};
},
505: (e, r, t) => {
const { existsSync: n, mkdirSync: s, writeFileSync: o } = t(147);
const { GITHUB_WORKSPACE: c } = process.env;
const validateDir = (e) => {
if (!n(e)) {
console.log(`[SSH] Creating ${e} dir in `, c);
s(e);
console.log("✅ [SSH] dir created.");
} else {
console.log(`[SSH] ${e} dir exist`);
}
};
const validateFile = (e) => {
if (!n(e)) {
console.log(`[SSH] Creating ${e} file in `, c);
try {
o(e, "", { encoding: "utf8", mode: 384 });
console.log("✅ [SSH] file created.");
} catch (r) {
console.error("⚠️ [SSH] writeFileSync error", e, r.message);
process.abort();
}
} else {
console.log(`[SSH] ${e} file exist`);
}
};
e.exports = { validateDir: validateDir, validateFile: validateFile };
},
229: (e) => {
const r = [
"REMOTE_HOST",
"REMOTE_USER",
"REMOTE_PORT",
"SSH_PRIVATE_KEY",
"DEPLOY_KEY_NAME",
"SOURCE",
"TARGET",
"ARGS",
"EXCLUDE",
];
const t = { GITHUB_WORKSPACE: process.env.GITHUB_WORKSPACE };
r.forEach((e) => {
t[e] = process.env[e] || process.env[`INPUT_${e}`];
});
e.exports = t;
},
447: (e, r, t) => {
const { sync: n } = t(569);
const { get: s } = t(748);
const validateRsync = (e = () => {}) => {
const r = n("rsync");
console.log('⚠️ [CLI] Rsync doesn\'t exists. Start installation with "apt-get" \n');
console.log("nodeCmd: ", s);
if (!r) {
s("sudo apt-get --no-install-recommends install rsync", (r, t, n) => {
if (r) {
console.log("⚠️ [CLI] Rsync installation failed. Aborting ... ", r.message);
process.abort();
} else {
console.log("✅ [CLI] Rsync installed. \n", t, n);
e();
}
});
} else {
e();
}
};
const validateInputs = (e) => {
const r = Object.keys(e);
const t = r.filter((r) => {
const t = e[r];
if (!t) {
console.error(`⚠️ [INPUTS] ${r} is mandatory`);
}
return t;
});
if (t.length !== r.length) {
console.error("⚠️ [INPUTS] Inputs not valid, aborting ...");
process.abort();
}
};
e.exports = { validateRsync: validateRsync, validateInputs: validateInputs };
},
822: (e, r, t) => {
const { writeFileSync: n } = t(147);
const { join: s } = t(17);
const { validateDir: o, validateFile: c } = t(505);
const { HOME: i } = process.env;
const addSshKey = (e, r) => {
const t = s(i || __dirname, ".ssh");
const a = s(t, r);
o(t);
c(`${t}/known_hosts`);
try {
n(a, e, { encoding: "utf8", mode: 384 });
} catch (e) {
console.error("⚠️ writeFileSync error", a, e.message);
process.abort();
}
console.log("✅ Ssh key added to `.ssh` dir ", a);
return a;
};
e.exports = { addSshKey: addSshKey };
},
81: (e) => {
"use strict";
e.exports = require("child_process");
},
147: (e) => {
"use strict";
e.exports = require("fs");
},
17: (e) => {
"use strict";
e.exports = require("path");
},
837: (e) => {
"use strict";
e.exports = require("util");
},
};
var r = {};
function __nccwpck_require__(t) {
var n = r[t];
if (n !== undefined) {
return n.exports;
}
var s = (r[t] = { exports: {} });
var o = true;
try {
e[t](s, s.exports, __nccwpck_require__);
o = false;
} finally {
if (o) delete r[t];
}
return s.exports;
}
if (typeof __nccwpck_require__ !== "undefined") __nccwpck_require__.ab = __dirname + "/";
var t = {};
(() => {
const e = __nccwpck_require__(898);
const { validateRsync: r, validateInputs: t } = __nccwpck_require__(447);
const { addSshKey: n } = __nccwpck_require__(822);
const {
REMOTE_HOST: s,
REMOTE_USER: o,
REMOTE_PORT: c,
SSH_PRIVATE_KEY: i,
DEPLOY_KEY_NAME: a,
SOURCE: u,
TARGET: l,
ARGS: d,
EXCLUDE: f,
GITHUB_WORKSPACE: p,
} = __nccwpck_require__(229);
const y = { ssh: true, sshCmdArgs: ["-o StrictHostKeyChecking=no"], recursive: true };
console.log("[general] GITHUB_WORKSPACE: ", p);
const v = (() => {
const rsync = ({ privateKey: r, port: t, src: n, dest: s, args: o, exclude: c }) => {
console.log(`[Rsync] Starting Rsync Action: ${n} to ${s}`);
if (c) console.log(`[Rsync] exluding folders ${c}`);
try {
e({ src: n, dest: s, args: o, privateKey: r, port: t, excludeFirst: c, ...y }, (e, r, t, n) => {
if (e) {
console.error("⚠️ [Rsync] error: ", e.message);
console.log("⚠️ [Rsync] stderr: ", t);
console.log("⚠️ [Rsync] stdout: ", r);
console.log("⚠️ [Rsync] cmd: ", n);
process.abort();
} else {
console.log("✅ [Rsync] finished.", r);
}
});
} catch (e) {
console.error("⚠️ [Rsync] command error: ", e.message, e.stack);
process.abort();
}
};
const init = ({
src: e,
dest: t,
args: s,
host: o = "localhost",
port: c,
username: i,
privateKeyContent: u,
exclude: l = [],
}) => {
r(() => {
const r = n(u, a || "deploy_key");
const d = `${i}@${o}:${t}`;
rsync({ privateKey: r, port: c, src: e, dest: d, args: s, exclude: l });
});
};
return { init: init };
})();
const run = () => {
t({ SSH_PRIVATE_KEY: i, REMOTE_HOST: s, REMOTE_USER: o });
v.init({
src: `${p}/${u || ""}`,
dest: l || `/home/${o}/`,
args: d ? [d] : ["-rltgoDzvO"],
host: s,
port: c || "22",
username: o,
privateKeyContent: i,
exclude: (f || "").split(",").map((e) => e.trim()),
});
};
run();
})();
module.exports = t;
})();
+170 -143
View File
@@ -1,12 +1,12 @@
{
"name": "@draganfilipovic/ssh-deploy",
"version": "2.2.11",
"version": "3.0.1",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@draganfilipovic/ssh-deploy",
"version": "2.2.11",
"version": "3.0.1",
"license": "MIT",
"dependencies": {
"command-exists": "^1.2.9",
@@ -14,22 +14,22 @@
"rsyncwrapper": "^3.0.1"
},
"devDependencies": {
"@vercel/ncc": "^0.34.0",
"eslint": "^8.26.0",
"@vercel/ncc": "^0.36.0",
"eslint": "^8.30.0",
"eslint-config-airbnb-base": "^15.0.0",
"eslint-plugin-import": "^2.26.0"
}
},
"node_modules/@eslint/eslintrc": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz",
"integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==",
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.0.tgz",
"integrity": "sha512-7yfvXy6MWLgWSFsLhz5yH3iQ52St8cdUY6FoGieKkRDVxuxmrNuUetIuu6cmjNWwniUHiWXjxCr5tTXDrbYS5A==",
"dev": true,
"dependencies": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
"espree": "^9.4.0",
"globals": "^13.15.0",
"globals": "^13.19.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
"js-yaml": "^4.1.0",
@@ -44,14 +44,14 @@
}
},
"node_modules/@humanwhocodes/config-array": {
"version": "0.11.6",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.6.tgz",
"integrity": "sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg==",
"version": "0.11.8",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
"integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==",
"dev": true,
"dependencies": {
"@humanwhocodes/object-schema": "^1.2.1",
"debug": "^4.1.1",
"minimatch": "^3.0.4"
"minimatch": "^3.0.5"
},
"engines": {
"node": ">=10.10.0"
@@ -118,9 +118,9 @@
"dev": true
},
"node_modules/@vercel/ncc": {
"version": "0.34.0",
"resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.34.0.tgz",
"integrity": "sha512-G9h5ZLBJ/V57Ou9vz5hI8pda/YQX5HQszCs3AmIus3XzsmRn/0Ptic5otD3xVST8QLKk7AMk7AqpsyQGN7MZ9A==",
"version": "0.36.0",
"resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.36.0.tgz",
"integrity": "sha512-/ZTUJ/ZkRt694k7KJNimgmHjtQcRuVwsST2Z6XfYveQIuBbHR+EqkTc1jfgPkQmMyk/vtpxo3nVxe8CNuau86A==",
"dev": true,
"bin": {
"ncc": "dist/ncc/cli.js"
@@ -194,15 +194,15 @@
"dev": true
},
"node_modules/array-includes": {
"version": "3.1.5",
"resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz",
"integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==",
"version": "3.1.6",
"resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz",
"integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==",
"dev": true,
"dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.4",
"es-abstract": "^1.19.5",
"get-intrinsic": "^1.1.1",
"es-abstract": "^1.20.4",
"get-intrinsic": "^1.1.3",
"is-string": "^1.0.7"
},
"engines": {
@@ -213,14 +213,14 @@
}
},
"node_modules/array.prototype.flat": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz",
"integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==",
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz",
"integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==",
"dev": true,
"dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.3",
"es-abstract": "^1.19.2",
"define-properties": "^1.1.4",
"es-abstract": "^1.20.4",
"es-shim-unscopables": "^1.0.0"
},
"engines": {
@@ -385,9 +385,9 @@
}
},
"node_modules/es-abstract": {
"version": "1.20.4",
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz",
"integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==",
"version": "1.20.5",
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.5.tgz",
"integrity": "sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ==",
"dev": true,
"dependencies": {
"call-bind": "^1.0.2",
@@ -396,6 +396,7 @@
"function.prototype.name": "^1.1.5",
"get-intrinsic": "^1.1.3",
"get-symbol-description": "^1.0.0",
"gopd": "^1.0.1",
"has": "^1.0.3",
"has-property-descriptors": "^1.0.0",
"has-symbols": "^1.0.3",
@@ -411,8 +412,8 @@
"object.assign": "^4.1.4",
"regexp.prototype.flags": "^1.4.3",
"safe-regex-test": "^1.0.0",
"string.prototype.trimend": "^1.0.5",
"string.prototype.trimstart": "^1.0.5",
"string.prototype.trimend": "^1.0.6",
"string.prototype.trimstart": "^1.0.6",
"unbox-primitive": "^1.0.2"
},
"engines": {
@@ -461,13 +462,13 @@
}
},
"node_modules/eslint": {
"version": "8.26.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.26.0.tgz",
"integrity": "sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg==",
"version": "8.30.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.30.0.tgz",
"integrity": "sha512-MGADB39QqYuzEGov+F/qb18r4i7DohCDOfatHaxI2iGlPuC65bwG2gxgO+7DkyL38dRFaRH7RaRAgU6JKL9rMQ==",
"dev": true,
"dependencies": {
"@eslint/eslintrc": "^1.3.3",
"@humanwhocodes/config-array": "^0.11.6",
"@eslint/eslintrc": "^1.4.0",
"@humanwhocodes/config-array": "^0.11.8",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
"ajv": "^6.10.0",
@@ -486,7 +487,7 @@
"file-entry-cache": "^6.0.1",
"find-up": "^5.0.0",
"glob-parent": "^6.0.2",
"globals": "^13.15.0",
"globals": "^13.19.0",
"grapheme-splitter": "^1.0.4",
"ignore": "^5.2.0",
"import-fresh": "^3.0.0",
@@ -684,9 +685,9 @@
}
},
"node_modules/espree": {
"version": "9.4.0",
"resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz",
"integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==",
"version": "9.4.1",
"resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz",
"integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==",
"dev": true,
"dependencies": {
"acorn": "^8.8.0",
@@ -761,9 +762,9 @@
"dev": true
},
"node_modules/fastq": {
"version": "1.13.0",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz",
"integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==",
"version": "1.14.0",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz",
"integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==",
"dev": true,
"dependencies": {
"reusify": "^1.0.4"
@@ -918,9 +919,9 @@
}
},
"node_modules/globals": {
"version": "13.17.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz",
"integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==",
"version": "13.19.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz",
"integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==",
"dev": true,
"dependencies": {
"type-fest": "^0.20.2"
@@ -932,6 +933,18 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/gopd": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
"integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
"dev": true,
"dependencies": {
"get-intrinsic": "^1.1.3"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/grapheme-splitter": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
@@ -1008,9 +1021,9 @@
}
},
"node_modules/ignore": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
"integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
"version": "5.2.4",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
"integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
"dev": true,
"engines": {
"node": ">= 4"
@@ -1058,12 +1071,12 @@
"dev": true
},
"node_modules/internal-slot": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz",
"integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==",
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz",
"integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==",
"dev": true,
"dependencies": {
"get-intrinsic": "^1.1.0",
"get-intrinsic": "^1.1.3",
"has": "^1.0.3",
"side-channel": "^1.0.4"
},
@@ -1272,10 +1285,14 @@
"dev": true
},
"node_modules/js-sdsl": {
"version": "4.1.5",
"resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz",
"integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==",
"dev": true
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz",
"integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==",
"dev": true,
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/js-sdsl"
}
},
"node_modules/js-yaml": {
"version": "4.1.0",
@@ -1425,28 +1442,28 @@
}
},
"node_modules/object.entries": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz",
"integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==",
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz",
"integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==",
"dev": true,
"dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.3",
"es-abstract": "^1.19.1"
"define-properties": "^1.1.4",
"es-abstract": "^1.20.4"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/object.values": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz",
"integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==",
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz",
"integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==",
"dev": true,
"dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.3",
"es-abstract": "^1.19.1"
"define-properties": "^1.1.4",
"es-abstract": "^1.20.4"
},
"engines": {
"node": ">= 0.4"
@@ -1764,28 +1781,28 @@
}
},
"node_modules/string.prototype.trimend": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz",
"integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==",
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz",
"integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==",
"dev": true,
"dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.4",
"es-abstract": "^1.19.5"
"es-abstract": "^1.20.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/string.prototype.trimstart": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz",
"integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==",
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz",
"integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==",
"dev": true,
"dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.4",
"es-abstract": "^1.19.5"
"es-abstract": "^1.20.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -1975,15 +1992,15 @@
},
"dependencies": {
"@eslint/eslintrc": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz",
"integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==",
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.0.tgz",
"integrity": "sha512-7yfvXy6MWLgWSFsLhz5yH3iQ52St8cdUY6FoGieKkRDVxuxmrNuUetIuu6cmjNWwniUHiWXjxCr5tTXDrbYS5A==",
"dev": true,
"requires": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
"espree": "^9.4.0",
"globals": "^13.15.0",
"globals": "^13.19.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
"js-yaml": "^4.1.0",
@@ -1992,14 +2009,14 @@
}
},
"@humanwhocodes/config-array": {
"version": "0.11.6",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.6.tgz",
"integrity": "sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg==",
"version": "0.11.8",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
"integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==",
"dev": true,
"requires": {
"@humanwhocodes/object-schema": "^1.2.1",
"debug": "^4.1.1",
"minimatch": "^3.0.4"
"minimatch": "^3.0.5"
}
},
"@humanwhocodes/module-importer": {
@@ -2047,9 +2064,9 @@
"dev": true
},
"@vercel/ncc": {
"version": "0.34.0",
"resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.34.0.tgz",
"integrity": "sha512-G9h5ZLBJ/V57Ou9vz5hI8pda/YQX5HQszCs3AmIus3XzsmRn/0Ptic5otD3xVST8QLKk7AMk7AqpsyQGN7MZ9A==",
"version": "0.36.0",
"resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.36.0.tgz",
"integrity": "sha512-/ZTUJ/ZkRt694k7KJNimgmHjtQcRuVwsST2Z6XfYveQIuBbHR+EqkTc1jfgPkQmMyk/vtpxo3nVxe8CNuau86A==",
"dev": true
},
"acorn": {
@@ -2099,27 +2116,27 @@
"dev": true
},
"array-includes": {
"version": "3.1.5",
"resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz",
"integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==",
"version": "3.1.6",
"resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz",
"integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==",
"dev": true,
"requires": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.4",
"es-abstract": "^1.19.5",
"get-intrinsic": "^1.1.1",
"es-abstract": "^1.20.4",
"get-intrinsic": "^1.1.3",
"is-string": "^1.0.7"
}
},
"array.prototype.flat": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz",
"integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==",
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz",
"integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==",
"dev": true,
"requires": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.3",
"es-abstract": "^1.19.2",
"define-properties": "^1.1.4",
"es-abstract": "^1.20.4",
"es-shim-unscopables": "^1.0.0"
}
},
@@ -2243,9 +2260,9 @@
}
},
"es-abstract": {
"version": "1.20.4",
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz",
"integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==",
"version": "1.20.5",
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.5.tgz",
"integrity": "sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ==",
"dev": true,
"requires": {
"call-bind": "^1.0.2",
@@ -2254,6 +2271,7 @@
"function.prototype.name": "^1.1.5",
"get-intrinsic": "^1.1.3",
"get-symbol-description": "^1.0.0",
"gopd": "^1.0.1",
"has": "^1.0.3",
"has-property-descriptors": "^1.0.0",
"has-symbols": "^1.0.3",
@@ -2269,8 +2287,8 @@
"object.assign": "^4.1.4",
"regexp.prototype.flags": "^1.4.3",
"safe-regex-test": "^1.0.0",
"string.prototype.trimend": "^1.0.5",
"string.prototype.trimstart": "^1.0.5",
"string.prototype.trimend": "^1.0.6",
"string.prototype.trimstart": "^1.0.6",
"unbox-primitive": "^1.0.2"
}
},
@@ -2301,13 +2319,13 @@
"dev": true
},
"eslint": {
"version": "8.26.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.26.0.tgz",
"integrity": "sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg==",
"version": "8.30.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.30.0.tgz",
"integrity": "sha512-MGADB39QqYuzEGov+F/qb18r4i7DohCDOfatHaxI2iGlPuC65bwG2gxgO+7DkyL38dRFaRH7RaRAgU6JKL9rMQ==",
"dev": true,
"requires": {
"@eslint/eslintrc": "^1.3.3",
"@humanwhocodes/config-array": "^0.11.6",
"@eslint/eslintrc": "^1.4.0",
"@humanwhocodes/config-array": "^0.11.8",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
"ajv": "^6.10.0",
@@ -2326,7 +2344,7 @@
"file-entry-cache": "^6.0.1",
"find-up": "^5.0.0",
"glob-parent": "^6.0.2",
"globals": "^13.15.0",
"globals": "^13.19.0",
"grapheme-splitter": "^1.0.4",
"ignore": "^5.2.0",
"import-fresh": "^3.0.0",
@@ -2481,9 +2499,9 @@
"dev": true
},
"espree": {
"version": "9.4.0",
"resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz",
"integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==",
"version": "9.4.1",
"resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz",
"integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==",
"dev": true,
"requires": {
"acorn": "^8.8.0",
@@ -2540,9 +2558,9 @@
"dev": true
},
"fastq": {
"version": "1.13.0",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz",
"integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==",
"version": "1.14.0",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz",
"integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==",
"dev": true,
"requires": {
"reusify": "^1.0.4"
@@ -2658,14 +2676,23 @@
}
},
"globals": {
"version": "13.17.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz",
"integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==",
"version": "13.19.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz",
"integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==",
"dev": true,
"requires": {
"type-fest": "^0.20.2"
}
},
"gopd": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
"integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
"dev": true,
"requires": {
"get-intrinsic": "^1.1.3"
}
},
"grapheme-splitter": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
@@ -2718,9 +2745,9 @@
}
},
"ignore": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
"integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
"version": "5.2.4",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
"integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
"dev": true
},
"import-fresh": {
@@ -2756,12 +2783,12 @@
"dev": true
},
"internal-slot": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz",
"integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==",
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz",
"integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==",
"dev": true,
"requires": {
"get-intrinsic": "^1.1.0",
"get-intrinsic": "^1.1.3",
"has": "^1.0.3",
"side-channel": "^1.0.4"
}
@@ -2898,9 +2925,9 @@
"dev": true
},
"js-sdsl": {
"version": "4.1.5",
"resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz",
"integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==",
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz",
"integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==",
"dev": true
},
"js-yaml": {
@@ -3015,25 +3042,25 @@
}
},
"object.entries": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz",
"integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==",
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz",
"integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==",
"dev": true,
"requires": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.3",
"es-abstract": "^1.19.1"
"define-properties": "^1.1.4",
"es-abstract": "^1.20.4"
}
},
"object.values": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz",
"integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==",
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz",
"integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==",
"dev": true,
"requires": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.3",
"es-abstract": "^1.19.1"
"define-properties": "^1.1.4",
"es-abstract": "^1.20.4"
}
},
"once": {
@@ -3235,25 +3262,25 @@
}
},
"string.prototype.trimend": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz",
"integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==",
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz",
"integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==",
"dev": true,
"requires": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.4",
"es-abstract": "^1.19.5"
"es-abstract": "^1.20.4"
}
},
"string.prototype.trimstart": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz",
"integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==",
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz",
"integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==",
"dev": true,
"requires": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.4",
"es-abstract": "^1.19.5"
"es-abstract": "^1.20.4"
}
},
"strip-ansi": {
+7 -7
View File
@@ -9,11 +9,6 @@
"./README.md",
"LICENSE"
],
"dependencies": {
"command-exists": "^1.2.9",
"node-cmd": "^5.0.0",
"rsyncwrapper": "^3.0.1"
},
"scripts": {
"build": "npm run lint && ncc build ./src/index.js -o dist -m",
"lint": "eslint ./src/index.js",
@@ -34,9 +29,14 @@
"url": "https://github.com/easingthemes/ssh-deploy/issues"
},
"homepage": "https://github.com/easingthemes/ssh-deploy#readme",
"dependencies": {
"command-exists": "^1.2.9",
"node-cmd": "^5.0.0",
"rsyncwrapper": "^3.0.1"
},
"devDependencies": {
"@vercel/ncc": "^0.34.0",
"eslint": "^8.26.0",
"@vercel/ncc": "^0.36.0",
"eslint": "^8.30.0",
"eslint-config-airbnb-base": "^15.0.0",
"eslint-plugin-import": "^2.26.0"
}
+2 -1
View File
@@ -3,7 +3,8 @@ const { get: nodeCmd } = require('node-cmd');
const validateRsync = (callback = () => {}) => {
const rsyncCli = commandExists('rsync');
console.log('⚠️ [CLI] Rsync doesn\'t exists. Start installation with "apt-get" \n');
console.log('nodeCmd: ', nodeCmd);
if (!rsyncCli) {
nodeCmd(
'sudo apt-get --no-install-recommends install rsync',
+8 -4
View File
@@ -4,8 +4,12 @@ ARG ssh_pub_key
ARG ssh_user
# Add a user to the container
RUN adduser --disabled-password $ssh_user
USER $ssh_user
# USER $ssh_user
# Add the ssh public key to the container
RUN mkdir -p $HOME/.ssh
RUN echo "$ssh_pub_key" > $HOME/.ssh/authorized_keys
RUN chmod 700 $HOME/.ssh
RUN mkdir -p /home/$ssh_user/.ssh
RUN echo "$ssh_pub_key" > /home/$ssh_user/.ssh/authorized_keys
RUN chmod 700 /home/$ssh_user/.ssh
# Start server
EXPOSE 80
STOPSIGNAL SIGTERM
CMD ["nginx", "-g", "daemon off;"]