diff --git a/CHANGELOG.md b/CHANGELOG.md index 2956eb7..8e771cd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,20 @@ +## [1.2.0](https://github.com/chaos-zhu/easynode/releases) (2022-09-12) + +### Features + +* 新增邮件通知: 包括登录面板、密码修改、服务器到期、服务器离线等 ✔ +* 支持服务器分组(为新版UI作准备的) ✔ +* 面板功能调整,支持http延迟显示、支持服务器控制台直达与到期时间字段 ✔ +* 优化终端输入、支持状态面板收缩 ✔ +* **全新SFTP功能支持,上传下载进度条展示** ✔ +* **支持在线文件编辑与保存** ✔ + +### Bug Fixes + +* v1.1的若干bug... + +--- + ## [1.1.0](https://github.com/chaos-zhu/easynode/releases) (2022-06-27) ### Features diff --git a/README.md b/README.md index 0831f92..d8d92c2 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# EasyNode +# EasyNode v1.2 > 一个简易的个人Linux服务器管理面板(基于Node.js) @@ -25,11 +25,16 @@ > 多服务器管理; 通过`websocker实时更新`服务器基本信息: **系统、公网IP、CPU、内存、硬盘、网卡**等 -![服务器列表](./images/v1.1-panel.png) +![服务器面板](./images/v1.2-1.png) -> 基于浏览器解决`SSH跨端同步`问题——**Web SSH** +> 基于浏览器解决`SSH&SFTP跨端`烦恼——**Web SSH**&**Web SFTP** -![webssh功能](./images/v1.1-webssh.png) + +![websftp功能](./images/v1.2-2.png) + +> 在线编辑文件 + +![edit](./images/v1.2-3.png) ## 安装指南 @@ -48,7 +53,7 @@ > 注意:网速统计功能可能受限,docker网络将使用host模式(与宿主机共享端口,占用: 8082、22022) ```shell -docker run -d --net=host -v /easynode-server:/easynode-server/server/app/config/storage chaoszhu/easynode:v1.1 +docker run -d --net=host -v /easynode-server:/easynode-server/server/app/config/storage chaoszhu/easynode:v1.2 ``` 访问:http://yourip:8082 @@ -57,12 +62,12 @@ docker run -d --net=host -v /easynode-server:/easynode-server/server/app/config/ - 依赖Linux基础命令:curl wget git zip tar;如未安装请先安装: -> ubuntu/debian: apt install curl wget git zip tar -y -> -> centos: yum install curl wget git zip tar -y +> ubuntu/debian: `apt install curl wget git zip tar -y` +> +> centos: `yum install curl wget git zip tar -y` ```shell -wget -qO- --no-check-certificate https://ghproxy.com/https://raw.githubusercontent.com/chaos-zhu/easynode/v1.1/easynode-server-install.sh | bash +wget -qO- --no-check-certificate https://ghproxy.com/https://raw.githubusercontent.com/chaos-zhu/easynode/v1.2/easynode-server-install.sh | bash ``` 访问:http://yourip:8082 @@ -77,10 +82,9 @@ wget -qO- --no-check-certificate https://ghproxy.com/https://raw.githubuserconte 1. 安装Node.js 2. 安装pm2、安装yarn 3. 拉取代码:git clone https://github.com/chaos-zhu/easynode.git -4. cd server目录 -5. 安装依赖:yarn -6. 启动服务:pm2 start server/app/main.js --name easynode-server -7. 访问:http://yourip:8082 +4. 安装依赖:yarn +5. 启动服务:pm2 start server/app/main.js --name easynode-server +6. 访问:http://yourip:8082 - 默认登录密码:admin(首次部署完成后请及时修改). @@ -99,7 +103,7 @@ wget -qO- --no-check-certificate https://ghproxy.com/https://raw.githubuserconte #### X86架构 ```shell -wget -qO- --no-check-certificate https://ghproxy.com/https://raw.githubusercontent.com/chaos-zhu/easynode/v1.1/easynode-client-install-x86.sh | bash +wget -qO- --no-check-certificate https://ghproxy.com/https://raw.githubusercontent.com/chaos-zhu/easynode/v1.2/easynode-client-install-x86.sh | bash ``` #### ARM架构 @@ -111,32 +115,32 @@ wget -qO- --no-check-certificate https://ghproxy.com/https://raw.githubuserconte > 卸载 ```shell -wget -qO- --no-check-certificate https://ghproxy.com/https://raw.githubusercontent.com/chaos-zhu/easynode/v1.1/easynode-client-uninstall.sh | bash +wget -qO- --no-check-certificate https://ghproxy.com/https://raw.githubusercontent.com/chaos-zhu/easynode/v1.2/easynode-client-uninstall.sh | bash ``` > 查看客户端状态:`systemctl status easynode-client` -> +> > 查看客户端日志: `journalctl --follow -u easynode-client` -> +> > 查看详细日志:journalctl -xe --- ## 升级指南 -- **v1.0 to v1.1** +- **v1.1 to v1.2** ### 服务端 > v1.1对所有的敏感信息全部加密,所有的v1.0为加密的信息全部失效. 主要影响已存储的ssh密钥. -> -> **还原客户端列表:** 先备份`app\config\storage\host-list.json`, 使用一键脚本或者手动部署的同志安装好使用备份文件覆盖此文件即可。 -> -> 使用docker镜像的v1.0一键脚本**未做**文件夹映射,有能力的自己从镜像里把备份抠出来再重新构建镜像. +> +> **还原客户端列表:** 先备份`app\config\storage\host-list.json`, 使用一键脚本或者手动部署的同志安装好使用备份文件覆盖`\app\storage`下的同名文件即可。 +> +> 由于加密文件调整,使用docker镜像的v1.1一键脚本自己从镜像里把备份抠出来再重新构建镜像. ### 客户端 -> v1.1未对客户端包进行改动,客户端无需重复安装. 不会备份的在面板重新添加客户端机器即可. +> v1.2未对客户端包进行改动,客户端无需重复安装. 不会备份的在面板重新添加客户端机器即可. ### 版本日志 @@ -144,28 +148,11 @@ wget -qO- --no-check-certificate https://ghproxy.com/https://raw.githubuserconte ## 安全与说明 -> 本人非专业后端,此服务全凭兴趣开发. 由于知识受限,并不能保证没有漏洞的存在,生产服务器请慎重使用此服务. +> 本人非专业后端,此服务全凭兴趣开发. 由于知识受限,并不能保证没有漏洞的存在,重要生产服务器最好不要使用此服务!!! > 所有服务器信息相关接口已做`jwt鉴权`, 安全信息均使用加密传输与储存! -> webssh功能需要的密钥信息全部保存在服务端服务器的`app\config\storage\ssh-record.json`中. 在保存ssh密钥信息到服务器储存与传输过程皆已加密,`不放心最好套https使用` - - - - +> webssh功能需要的密钥信息全部保存在服务端服务器的`app\storage\ssh-record.json`中. 在保存ssh密钥信息到服务器储存与传输过程皆已加密,`不过最好还是套https使用` ## Q&A @@ -173,9 +160,7 @@ wget -qO- --no-check-certificate https://ghproxy.com/https://raw.githubuserconte ## 感谢Star -[![Stargazers repo roster for @chaos-zhu/easynode](https://reporoster.com/stars/chaos-zhu/easynode)](https://github.com/chaos-zhu/easynode/stargazers) - - +- 你的Star是我更新的动力,感谢~ ## License diff --git a/easynode-server-install.sh b/easynode-server-install.sh index 0ca3faa..b8b6d7d 100644 --- a/easynode-server-install.sh +++ b/easynode-server-install.sh @@ -1,69 +1,69 @@ -#!/bin/bash - -if [ "$(id -u)" != "0" ] ; then - echo "***********************请切换到root再尝试执行***********************" - exit 1 -fi - -# 编写中... -echo '开始安装nvm' - -rm -rf /root/.nvm - -# 国内 -bash -c "$(curl -fsSL https://gitee.com/chaoszhu_0/nvm-cn/raw/master/install.sh)" -# 国外 -# bash -c "$(curl -fsSL https://raw.githubusercontent.com/chaos-zhu/nvm-cn/master/install.sh)" - -if [ $? != "0" ] ; then - echo '安装失败' - exit 1 -fi - -. /root/.nvm/nvm.sh - -echo "nvm version: $(nvm -v)" - -export VM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node - -echo '开始安装node&npm' - -nvm install --lts - -echo "node version: $(node -v) 安装成功" -echo "npm version: $(npm -v) 安装成功" - -echo '开始安装pm2' -npm config set registry https://registry.npm.taobao.org -npm i -g pm2 - -echo "pm2 version: $(pm2 -v) 安装成功" - -echo '开始下载EasyNode' - -DOWNLOAD_FILE_URL="https://ghproxy.com/https://github.com/chaos-zhu/easynode/releases/download/v1.1/easynode-server.zip" -SERVER_NAME=easynode-server -SERVER_ZIP=easynode-server.zip -FILE_PATH=/root -wget -O ${FILE_PATH}/${SERVER_ZIP} --no-check-certificate --no-cache ${DOWNLOAD_FILE_URL} - -if [ $? != 0 ] -then - echo "***********************下载EasyNode.zip失败***********************" - exit 1 -fi - -echo '开始解压' - -unzip -o -d ${FILE_PATH}/${SERVER_NAME} ${SERVER_ZIP} - -cd ${FILE_PATH}/${SERVER_NAME} || exit - -echo '安装依赖' - -npm i -g yarn -yarn - -echo '启动服务' - -pm2 start ${FILE_PATH}/${SERVER_NAME}/app/main.js --name easynode-server +#!/bin/bash + +if [ "$(id -u)" != "0" ] ; then + echo "***********************请切换到root再尝试执行***********************" + exit 1 +fi + +# 编写中... +echo '开始安装nvm' + +rm -rf /root/.nvm + +# 国内 +bash -c "$(curl -fsSL https://gitee.com/chaoszhu_0/nvm-cn/raw/master/install.sh)" +# 国外 +# bash -c "$(curl -fsSL https://raw.githubusercontent.com/chaos-zhu/nvm-cn/master/install.sh)" + +if [ $? != "0" ] ; then + echo '安装失败' + exit 1 +fi + +. /root/.nvm/nvm.sh + +echo "nvm version: $(nvm -v)" + +export VM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node + +echo '开始安装node&npm' + +nvm install --lts + +echo "node version: $(node -v) 安装成功" +echo "npm version: $(npm -v) 安装成功" + +echo '开始安装pm2' +npm config set registry https://registry.npm.taobao.org +npm i -g pm2 + +echo "pm2 version: $(pm2 -v) 安装成功" + +echo '开始下载EasyNode' + +DOWNLOAD_FILE_URL="https://ghproxy.com/https://github.com/chaos-zhu/easynode/releases/download/v1.2/easynode-server.zip" +SERVER_NAME=easynode-server +SERVER_ZIP=easynode-server.zip +FILE_PATH=/root +wget -O ${FILE_PATH}/${SERVER_ZIP} --no-check-certificate --no-cache ${DOWNLOAD_FILE_URL} + +if [ $? != 0 ] +then + echo "***********************下载EasyNode.zip失败***********************" + exit 1 +fi + +echo '开始解压' + +unzip -o -d ${FILE_PATH}/${SERVER_NAME} ${SERVER_ZIP} + +cd ${FILE_PATH}/${SERVER_NAME} || exit + +echo '安装依赖' + +npm i -g yarn +yarn + +echo '启动服务' + +pm2 start ${FILE_PATH}/${SERVER_NAME}/app/main.js --name easynode-server diff --git a/images/list.png b/images/list.png deleted file mode 100644 index c3b5965..0000000 Binary files a/images/list.png and /dev/null differ diff --git a/images/v1.1-panel.png b/images/v1.1-panel.png deleted file mode 100644 index 4cd3af7..0000000 Binary files a/images/v1.1-panel.png and /dev/null differ diff --git a/images/v1.1-webssh.png b/images/v1.1-webssh.png deleted file mode 100644 index 14d2da8..0000000 Binary files a/images/v1.1-webssh.png and /dev/null differ diff --git a/images/v1.2-1.png b/images/v1.2-1.png new file mode 100644 index 0000000..10683b2 Binary files /dev/null and b/images/v1.2-1.png differ diff --git a/images/v1.2-2.png b/images/v1.2-2.png new file mode 100644 index 0000000..75b3068 Binary files /dev/null and b/images/v1.2-2.png differ diff --git a/images/v1.2-3.png b/images/v1.2-3.png new file mode 100644 index 0000000..69ce061 Binary files /dev/null and b/images/v1.2-3.png differ diff --git a/images/webssh.png b/images/webssh.png deleted file mode 100644 index e3c5fad..0000000 Binary files a/images/webssh.png and /dev/null differ diff --git a/yarn.lock b/yarn.lock index 1ba95de..e28defa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -358,6 +358,11 @@ buffer-equal-constant-time@1.0.1: resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + buffer@^5.5.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" @@ -544,6 +549,16 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= +concat-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" + integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.0.2" + typedarray "^0.0.6" + configstore@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" @@ -556,6 +571,11 @@ configstore@^5.0.1: write-file-atomic "^3.0.0" xdg-basedir "^4.0.0" +consola@^2.15.3: + version "2.15.3" + resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.3.tgz#2e11f98d6a4be71ff72e0bdf07bd23e12cb61550" + integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw== + console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" @@ -826,6 +846,11 @@ enquirer@^2.3.5: dependencies: ansi-colors "^4.1.1" +err-code@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" + integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== + escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" @@ -1421,11 +1446,6 @@ into-stream@^6.0.0: from2 "^2.3.0" p-is-promise "^3.0.0" -ip-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-5.0.0.tgz#cd313b2ae9c80c07bd3851e12bf4fa4dc5480632" - integrity sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw== - is-binary-path@~2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" @@ -1486,13 +1506,6 @@ is-installed-globally@^0.4.0: global-dirs "^3.0.0" is-path-inside "^3.0.2" -is-ip@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-ip/-/is-ip-4.0.0.tgz#8e9eae12056bf46edafad19054dcc3666a324b3a" - integrity sha512-4B4XA2HEIm/PY+OSpeMBXr8pGWBYbXuHgjMAqrwbLO3CPTCAd9ArEJzBUKGZtk9viY6+aSfadGnWyjY3ydYZkw== - dependencies: - ip-regex "^5.0.0" - is-nan@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" @@ -1954,6 +1967,11 @@ nan@^2.15.0: resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== +nan@^2.16.0: + version "2.16.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.16.0.tgz#664f43e45460fb98faf00edca0bb0d7b8dce7916" + integrity sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA== + napi-build-utils@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" @@ -2004,6 +2022,11 @@ node-schedule@^2.1.0: long-timeout "0.1.1" sorted-array-functions "^1.3.0" +nodemailer@^6.7.5: + version "6.7.8" + resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.7.8.tgz#9f1af9911314960c0b889079e1754e8d9e3f740a" + integrity sha512-2zaTFGqZixVmTxpJRCFC+Vk5eGRd/fYtvIR+dl5u9QXLTQWGIf48x/JXvo58g9sa0bU6To04XUv554Paykum3g== + nodemon@^2.0.15: version "2.0.16" resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.16.tgz#d71b31bfdb226c25de34afea53486c8ef225fdef" @@ -2278,6 +2301,14 @@ progress@^2.0.0, progress@^2.0.3: resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== +promise-retry@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" + integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== + dependencies: + err-code "^2.0.2" + retry "^0.12.0" + pstree.remy@^1.1.8: version "1.1.8" resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" @@ -2348,7 +2379,7 @@ readable-stream@^2.0.0, readable-stream@^2.0.6, readable-stream@^2.1.4: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: +readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -2422,6 +2453,11 @@ responselike@^1.0.2: dependencies: lowercase-keys "^1.0.0" +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + reusify@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" @@ -2613,6 +2649,15 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= +ssh2-sftp-client@^9.0.1: + version "9.0.4" + resolved "https://registry.yarnpkg.com/ssh2-sftp-client/-/ssh2-sftp-client-9.0.4.tgz#4a147471b7e9025a63594f1a58ae61caf2b55d11" + integrity sha512-fHAXUgmtmqUq/IdMlN9DBhkzrRFQRfORsQYglZMdnvosr4oo/6js+jxrJgGU+alNLW8ZN1IZFfRSoAejyvr8zg== + dependencies: + concat-stream "^2.0.0" + promise-retry "^2.0.1" + ssh2 "^1.11.0" + ssh2@^1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/ssh2/-/ssh2-1.10.0.tgz#e05d870dfc8e83bc918a2ffb3dcbd4d523472dee" @@ -2624,6 +2669,17 @@ ssh2@^1.10.0: cpu-features "~0.0.4" nan "^2.15.0" +ssh2@^1.11.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/ssh2/-/ssh2-1.11.0.tgz#ce60186216971e12f6deb553dcf82322498fe2e4" + integrity sha512-nfg0wZWGSsfUe/IBJkXVll3PEZ//YH2guww+mP88gTpuSU4FtZN7zu9JoeTGOyCNx2dTDtT9fOpWwlzyj4uOOw== + dependencies: + asn1 "^0.2.4" + bcrypt-pbkdf "^1.0.2" + optionalDependencies: + cpu-features "~0.0.4" + nan "^2.16.0" + statuses@2.0.1, statuses@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" @@ -2857,6 +2913,11 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== + undefsafe@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c"