diff --git a/package.json b/package.json index de734b49..87ac7b99 100644 --- a/package.json +++ b/package.json @@ -95,7 +95,6 @@ "dependencies": { "@fortawesome/fontawesome-svg-core": "^6.1.2", "@fortawesome/free-solid-svg-icons": "^6.1.2", - "@snowpack/plugin-run-script": "^2.3.0", "compression": "^1.7.4", "etag": "^1.8.1", "express": "^4.17.1", @@ -122,10 +121,11 @@ "xterm": "^5.0.0", "xterm-addon-fit": "^0.6.0", "xterm-addon-image": "^0.2.0", - "xterm-addon-web-links": "^0.7.0", + "xterm-addon-web-links": "^0.8.0", "yargs": "^15.4.1" }, "devDependencies": { + "@snowpack/plugin-run-script": "^2.3.0", "@types/chai": "^4.3.1", "@types/compression": "^1.7.0", "@types/etag": "^1.8.0", @@ -138,23 +138,23 @@ "@types/lodash": "^4.14.161", "@types/mocha": "^9.1.1", "@types/morgan": "^1.7.37", - "@types/node": "^14.6.3", + "@types/node": "^20.2.6", "@types/parseurl": "^1.3.1", "@types/response-time": "^2", "@types/sinon": "^10.0.13", "@types/toastify-js": "^1.9.2", "@types/yargs": "^15.0.5", + "@typescript-eslint/eslint-plugin": "^5.59.9", + "@typescript-eslint/parser": "^5.59.9", "all-contributors-cli": "^6.17.2", "chai": "^4.3.6", "concurrently": "^5.2.0", - "eslint-import-resolver-typescript": "^3.4.0", - "eslint-plugin-mocha": "^10.1.0", - "@typescript-eslint/eslint-plugin": "^5.54.0", - "@typescript-eslint/parser": "^5.54.0", "eslint": "^8.36.0", "eslint-config-airbnb-base": "latest", "eslint-config-prettier": "^8.6.0", + "eslint-import-resolver-typescript": "^3.4.0", "eslint-plugin-import": "^2.27.5", + "eslint-plugin-mocha": "^10.1.0", "eslint-plugin-prettier": "^4.2.1", "git-authors-cli": "^1.0.42", "husky": "^4.2.5", @@ -166,7 +166,7 @@ "sinon": "^14.0.0", "snowpack": "^3.8.8", "ts-node": "^10.9.1", - "typescript": "^4.7.4" + "typescript": "^5.1.3" }, "contributors": [ "butlerx ", diff --git a/src/server/command.ts b/src/server/command.ts index df7aca92..0b630003 100644 --- a/src/server/command.ts +++ b/src/server/command.ts @@ -1,4 +1,6 @@ +import process from 'node:process'; import url from 'url'; +import _ from 'lodash'; import { address } from './command/address.js'; import { loginOptions } from './command/login.js'; import { sshOptions } from './command/ssh.js'; @@ -6,6 +8,7 @@ import type { SSH } from '../shared/interfaces'; import type { Socket } from 'socket.io'; const localhost = (host: string): boolean => + !_.isUndefined(process.getuid) && process.getuid() === 0 && (host === 'localhost' || host === '0.0.0.0' || host === '127.0.0.1'); diff --git a/yarn.lock b/yarn.lock index c4f1bf9b..86541376 100644 --- a/yarn.lock +++ b/yarn.lock @@ -657,16 +657,11 @@ dependencies: "@types/node" "*" -"@types/node@*", "@types/node@>=10.0.0": +"@types/node@*", "@types/node@>=10.0.0", "@types/node@^20.2.6": version "20.2.6" resolved "https://registry.yarnpkg.com/@types/node/-/node-20.2.6.tgz#f8f4cdcf9bc74fffcb44a9e1e3f3586d583dac24" integrity sha512-GQBWUtGoefMEOx/vu+emHEHU5aw6JdDoEtZhoBrHFPZbA/YNRFfN996XbBASEWdvmLSLyv9FKYppYGyZjCaq/g== -"@types/node@^14.6.3": - version "14.18.49" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.49.tgz#ffe71f6e78633c04e1b96d399a118fa55f4f1502" - integrity sha512-bJhkIh+GsIpLIJ/QlMYI30O1ZGDeUq+8S9uCq2fR3EYPvpnXtU0KsDJcljONyvyowjmYCQ3BxJje2CMXzCCvSg== - "@types/parse-json@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" @@ -771,7 +766,7 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^5.54.0": +"@typescript-eslint/eslint-plugin@^5.59.9": version "5.59.9" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.9.tgz#2604cfaf2b306e120044f901e20c8ed926debf15" integrity sha512-4uQIBq1ffXd2YvF7MAvehWKW3zVv/w+mSfRAu+8cKbfj3nwzyqJLNcZJpQ/WZ1HLbJDiowwmQ6NO+63nCA+fqA== @@ -787,7 +782,7 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/parser@^5.54.0": +"@typescript-eslint/parser@^5.59.9": version "5.59.9" resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.59.9.tgz#a85c47ccdd7e285697463da15200f9a8561dd5fa" integrity sha512-FsPkRvBtcLQ/eVK1ivDiNYBjn3TGJdXy2fhXX+rc7czWl4ARwnpArwbihSOHI2Peg9WbtGHrbThfBUkZZGTtvQ== @@ -6625,10 +6620,10 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typescript@^4.7.4: - version "4.9.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" - integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== +typescript@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.3.tgz#8d84219244a6b40b6fb2b33cc1c062f715b9e826" + integrity sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw== unbox-primitive@^1.0.2: version "1.0.2" @@ -7026,10 +7021,10 @@ xterm-addon-image@^0.2.0: resolved "https://registry.yarnpkg.com/xterm-addon-image/-/xterm-addon-image-0.2.0.tgz#47f58a522c7d21c7b2fc7a2d18aff324461974f1" integrity sha512-rGbwUcwnJQqN1LTdEhqUS83xtBpApUWOJISjN/Efbg8TplqdXsHOVDmEcnLvhBn5cCzAZIqD2OZaan1+cI7mWA== -xterm-addon-web-links@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/xterm-addon-web-links/-/xterm-addon-web-links-0.7.0.tgz#dceac36170605f9db10a01d716bd83ee38f65c17" - integrity sha512-6PqoqzzPwaeSq22skzbvyboDvSnYk5teUYEoKBwMYvhbkwOQkemZccjWHT5FnNA8o1aInTc4PRYAl4jjPucCKA== +xterm-addon-web-links@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/xterm-addon-web-links/-/xterm-addon-web-links-0.8.0.tgz#2cb1d57129271022569208578b0bf4774e7e6ea9" + integrity sha512-J4tKngmIu20ytX9SEJjAP3UGksah7iALqBtfTwT9ZnmFHVplCumYQsUJfKuS+JwMhjsjH61YXfndenLNvjRrEw== xterm@^5.0.0: version "5.2.0"