mirror of
https://github.com/sern-handler/cli
synced 2026-06-06 17:36:53 +00:00
Compare commits
3 Commits
plugin-ver
...
v0.5.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dbc3154101 | ||
|
|
7252c533bc | ||
|
|
dce78c0945 |
13
CHANGELOG.md
13
CHANGELOG.md
@@ -2,6 +2,19 @@
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [0.5.1](https://github.com/sern-handler/cli/compare/v0.5.0...v0.5.1) (2023-06-16)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **init:** deprecate init and bump deps ([#102](https://github.com/sern-handler/cli/issues/102)) ([dce78c0](https://github.com/sern-handler/cli/commit/dce78c0945de6da79bf1e268f29651da0c44c1eb))
|
||||
* version injector ([#90](https://github.com/sern-handler/cli/issues/90)) ([58fa325](https://github.com/sern-handler/cli/commit/58fa3253f62da9fb66d1b2ae901b568367f065d0))
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* git not installed errors during init ([#79](https://github.com/sern-handler/cli/issues/79)) ([69287ab](https://github.com/sern-handler/cli/commit/69287ab1bd0c4960384144f90fea8ebded3b0cc5))
|
||||
|
||||
## [0.5.0](https://github.com/sern-handler/cli/compare/v0.4.2...v0.5.0) (2022-09-16)
|
||||
|
||||
|
||||
|
||||
260
package-lock.json
generated
260
package-lock.json
generated
@@ -1,32 +1,32 @@
|
||||
{
|
||||
"name": "@sern/cli",
|
||||
"version": "0.5.0",
|
||||
"version": "0.5.1",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@sern/cli",
|
||||
"version": "0.5.0",
|
||||
"version": "0.5.1",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"colorette": "^2.0.16",
|
||||
"commander": "^9.3.0",
|
||||
"execa": "^6.1.0",
|
||||
"colorette": "2.0.20",
|
||||
"commander": "11.0.0",
|
||||
"execa": "7.1.1",
|
||||
"find-up": "6.3.0",
|
||||
"ora": "^6.1.0",
|
||||
"ora": "6.3.1",
|
||||
"prompts": "2.4.2",
|
||||
"undici": "^5.6.1"
|
||||
"undici": "5.22.1"
|
||||
},
|
||||
"bin": {
|
||||
"sern": "dist/index.js"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@favware/npm-deprecate": "1.0.7",
|
||||
"@types/prompts": "2.4.3",
|
||||
"esbuild-plugin-version-injector": "^1.0.3",
|
||||
"prettier": "2.8.4",
|
||||
"tsup": "^6.6.3",
|
||||
"typescript": "4.9.5"
|
||||
"@types/prompts": "2.4.4",
|
||||
"esbuild-plugin-version-injector": "1.1.0",
|
||||
"prettier": "2.8.8",
|
||||
"tsup": "6.7.0",
|
||||
"typescript": "5.1.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 16.10.x"
|
||||
@@ -407,6 +407,15 @@
|
||||
"node": ">=16"
|
||||
}
|
||||
},
|
||||
"node_modules/@favware/npm-deprecate/node_modules/commander": {
|
||||
"version": "9.5.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
|
||||
"integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": "^12.20.0 || >=14"
|
||||
}
|
||||
},
|
||||
"node_modules/@nodelib/fs.scandir": {
|
||||
"version": "2.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
|
||||
@@ -503,9 +512,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/prompts": {
|
||||
"version": "2.4.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/prompts/-/prompts-2.4.3.tgz",
|
||||
"integrity": "sha512-qpzXlxoPv67TCtTCS+SwYmz1M+G5ARTrE5YVlrZPy/xBD36dzLqiJLDzOzsMXkcJYq6+6UkWqFwtLAOjsfec5Q==",
|
||||
"version": "2.4.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/prompts/-/prompts-2.4.4.tgz",
|
||||
"integrity": "sha512-p5N9uoTH76lLvSAaYSZtBCdEXzpOOufsRjnhjVSrZGXikVGHX9+cc9ERtHRV4hvBKHyZb1bg4K+56Bd2TqUn4A==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/node": "*",
|
||||
@@ -842,16 +851,16 @@
|
||||
}
|
||||
},
|
||||
"node_modules/colorette": {
|
||||
"version": "2.0.19",
|
||||
"resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz",
|
||||
"integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ=="
|
||||
"version": "2.0.20",
|
||||
"resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
|
||||
"integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w=="
|
||||
},
|
||||
"node_modules/commander": {
|
||||
"version": "9.5.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
|
||||
"integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==",
|
||||
"version": "11.0.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz",
|
||||
"integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==",
|
||||
"engines": {
|
||||
"node": "^12.20.0 || >=14"
|
||||
"node": ">=16"
|
||||
}
|
||||
},
|
||||
"node_modules/concat-map": {
|
||||
@@ -985,9 +994,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/esbuild-plugin-version-injector": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/esbuild-plugin-version-injector/-/esbuild-plugin-version-injector-1.0.3.tgz",
|
||||
"integrity": "sha512-g/ZSqkIoNBVmDhWoGUblJeee6dSVkAlVI+ZchPxffd+YhETnntS7FJ3r/SB3GD75+/cLMYRHaIZhkO5C96Wz/g==",
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/esbuild-plugin-version-injector/-/esbuild-plugin-version-injector-1.1.0.tgz",
|
||||
"integrity": "sha512-x7HqfleM0h0ZfbNf50LH+PdqQCd6+9v4Pt00/JN/zAAKaYHYj/MU7HPGlBTQ4xCKFsFtWqgbbFcOhBtOG+QWBg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@sapphire/result": "^2.6.0"
|
||||
@@ -998,13 +1007,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/execa": {
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz",
|
||||
"integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==",
|
||||
"version": "7.1.1",
|
||||
"resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz",
|
||||
"integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==",
|
||||
"dependencies": {
|
||||
"cross-spawn": "^7.0.3",
|
||||
"get-stream": "^6.0.1",
|
||||
"human-signals": "^3.0.1",
|
||||
"human-signals": "^4.3.0",
|
||||
"is-stream": "^3.0.0",
|
||||
"merge-stream": "^2.0.0",
|
||||
"npm-run-path": "^5.1.0",
|
||||
@@ -1013,7 +1022,7 @@
|
||||
"strip-final-newline": "^3.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
|
||||
"node": "^14.18.0 || ^16.14.0 || >=18.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sindresorhus/execa?sponsor=1"
|
||||
@@ -1072,17 +1081,26 @@
|
||||
}
|
||||
},
|
||||
"node_modules/fs-minipass": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.1.tgz",
|
||||
"integrity": "sha512-MhaJDcFRTuLidHrIttu0RDGyyXs/IYHVmlcxfLAEFIWjc1vdLAkdwT7Ace2u7DbitWC0toKMl5eJZRYNVreIMw==",
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.2.tgz",
|
||||
"integrity": "sha512-2GAfyfoaCDRrM6jaOS3UsBts8yJ55VioXdWcOL7dK9zdAuKT71+WBA4ifnNYqVjYv+4SsPxjK0JT4yIIn4cA/g==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"minipass": "^4.0.0"
|
||||
"minipass": "^5.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/fs-minipass/node_modules/minipass": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
|
||||
"integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/fs.realpath": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
||||
@@ -1211,11 +1229,11 @@
|
||||
}
|
||||
},
|
||||
"node_modules/human-signals": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz",
|
||||
"integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==",
|
||||
"version": "4.3.1",
|
||||
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz",
|
||||
"integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==",
|
||||
"engines": {
|
||||
"node": ">=12.20.0"
|
||||
"node": ">=14.18.0"
|
||||
}
|
||||
},
|
||||
"node_modules/humanize-ms": {
|
||||
@@ -1576,9 +1594,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/minipass": {
|
||||
"version": "4.2.5",
|
||||
"resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz",
|
||||
"integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==",
|
||||
"version": "4.2.8",
|
||||
"resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz",
|
||||
"integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
@@ -1902,17 +1920,17 @@
|
||||
}
|
||||
},
|
||||
"node_modules/ora": {
|
||||
"version": "6.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ora/-/ora-6.1.2.tgz",
|
||||
"integrity": "sha512-EJQ3NiP5Xo94wJXIzAyOtSb0QEIAUu7m8t6UZ9krbz0vAJqr92JpcK/lEXg91q6B9pEGqrykkd2EQplnifDSBw==",
|
||||
"version": "6.3.1",
|
||||
"resolved": "https://registry.npmjs.org/ora/-/ora-6.3.1.tgz",
|
||||
"integrity": "sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ==",
|
||||
"dependencies": {
|
||||
"bl": "^5.0.0",
|
||||
"chalk": "^5.0.0",
|
||||
"cli-cursor": "^4.0.0",
|
||||
"cli-spinners": "^2.6.1",
|
||||
"is-interactive": "^2.0.0",
|
||||
"is-unicode-supported": "^1.1.0",
|
||||
"log-symbols": "^5.1.0",
|
||||
"stdin-discarder": "^0.1.0",
|
||||
"strip-ansi": "^7.0.1",
|
||||
"wcwidth": "^1.0.1"
|
||||
},
|
||||
@@ -2051,9 +2069,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/prettier": {
|
||||
"version": "2.8.4",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.4.tgz",
|
||||
"integrity": "sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==",
|
||||
"version": "2.8.8",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
|
||||
"integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"prettier": "bin-prettier.js"
|
||||
@@ -2442,6 +2460,20 @@
|
||||
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/stdin-discarder": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.1.0.tgz",
|
||||
"integrity": "sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==",
|
||||
"dependencies": {
|
||||
"bl": "^5.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/streamsearch": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
|
||||
@@ -2651,9 +2683,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/tsup": {
|
||||
"version": "6.6.3",
|
||||
"resolved": "https://registry.npmjs.org/tsup/-/tsup-6.6.3.tgz",
|
||||
"integrity": "sha512-OLx/jFllYlVeZQ7sCHBuRVEQBBa1tFbouoc/gbYakyipjVQdWy/iQOvmExUA/ewap9iQ7tbJf9pW0PgcEFfJcQ==",
|
||||
"version": "6.7.0",
|
||||
"resolved": "https://registry.npmjs.org/tsup/-/tsup-6.7.0.tgz",
|
||||
"integrity": "sha512-L3o8hGkaHnu5TdJns+mCqFsDBo83bJ44rlK7e6VdanIvpea4ArPcU3swWGsLVbXak1PqQx/V+SSmFPujBK+zEQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"bundle-require": "^4.0.0",
|
||||
@@ -2681,7 +2713,7 @@
|
||||
"peerDependencies": {
|
||||
"@swc/core": "^1",
|
||||
"postcss": "^8.4.12",
|
||||
"typescript": "^4.1.0"
|
||||
"typescript": ">=4.1.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@swc/core": {
|
||||
@@ -2785,27 +2817,27 @@
|
||||
}
|
||||
},
|
||||
"node_modules/typescript": {
|
||||
"version": "4.9.5",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
|
||||
"integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
|
||||
"version": "5.1.3",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.3.tgz",
|
||||
"integrity": "sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"tsc": "bin/tsc",
|
||||
"tsserver": "bin/tsserver"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4.2.0"
|
||||
"node": ">=14.17"
|
||||
}
|
||||
},
|
||||
"node_modules/undici": {
|
||||
"version": "5.20.0",
|
||||
"resolved": "https://registry.npmjs.org/undici/-/undici-5.20.0.tgz",
|
||||
"integrity": "sha512-J3j60dYzuo6Eevbawwp1sdg16k5Tf768bxYK4TUJRH7cBM4kFCbf3mOnM/0E3vQYXvpxITbbWmBafaDbxLDz3g==",
|
||||
"version": "5.22.1",
|
||||
"resolved": "https://registry.npmjs.org/undici/-/undici-5.22.1.tgz",
|
||||
"integrity": "sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw==",
|
||||
"dependencies": {
|
||||
"busboy": "^1.6.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12.18"
|
||||
"node": ">=14.0"
|
||||
}
|
||||
},
|
||||
"node_modules/unique-filename": {
|
||||
@@ -3089,6 +3121,14 @@
|
||||
"micromatch": "^4.0.5",
|
||||
"npm-package-arg": "^10.0.0",
|
||||
"npm-registry-fetch": "^14.0.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"commander": {
|
||||
"version": "9.5.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
|
||||
"integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"@nodelib/fs.scandir": {
|
||||
@@ -3160,9 +3200,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"@types/prompts": {
|
||||
"version": "2.4.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/prompts/-/prompts-2.4.3.tgz",
|
||||
"integrity": "sha512-qpzXlxoPv67TCtTCS+SwYmz1M+G5ARTrE5YVlrZPy/xBD36dzLqiJLDzOzsMXkcJYq6+6UkWqFwtLAOjsfec5Q==",
|
||||
"version": "2.4.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/prompts/-/prompts-2.4.4.tgz",
|
||||
"integrity": "sha512-p5N9uoTH76lLvSAaYSZtBCdEXzpOOufsRjnhjVSrZGXikVGHX9+cc9ERtHRV4hvBKHyZb1bg4K+56Bd2TqUn4A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/node": "*",
|
||||
@@ -3391,14 +3431,14 @@
|
||||
"integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg=="
|
||||
},
|
||||
"colorette": {
|
||||
"version": "2.0.19",
|
||||
"resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz",
|
||||
"integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ=="
|
||||
"version": "2.0.20",
|
||||
"resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
|
||||
"integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w=="
|
||||
},
|
||||
"commander": {
|
||||
"version": "9.5.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
|
||||
"integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ=="
|
||||
"version": "11.0.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz",
|
||||
"integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ=="
|
||||
},
|
||||
"concat-map": {
|
||||
"version": "0.0.1",
|
||||
@@ -3504,22 +3544,22 @@
|
||||
}
|
||||
},
|
||||
"esbuild-plugin-version-injector": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/esbuild-plugin-version-injector/-/esbuild-plugin-version-injector-1.0.3.tgz",
|
||||
"integrity": "sha512-g/ZSqkIoNBVmDhWoGUblJeee6dSVkAlVI+ZchPxffd+YhETnntS7FJ3r/SB3GD75+/cLMYRHaIZhkO5C96Wz/g==",
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/esbuild-plugin-version-injector/-/esbuild-plugin-version-injector-1.1.0.tgz",
|
||||
"integrity": "sha512-x7HqfleM0h0ZfbNf50LH+PdqQCd6+9v4Pt00/JN/zAAKaYHYj/MU7HPGlBTQ4xCKFsFtWqgbbFcOhBtOG+QWBg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@sapphire/result": "^2.6.0"
|
||||
}
|
||||
},
|
||||
"execa": {
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz",
|
||||
"integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==",
|
||||
"version": "7.1.1",
|
||||
"resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz",
|
||||
"integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==",
|
||||
"requires": {
|
||||
"cross-spawn": "^7.0.3",
|
||||
"get-stream": "^6.0.1",
|
||||
"human-signals": "^3.0.1",
|
||||
"human-signals": "^4.3.0",
|
||||
"is-stream": "^3.0.0",
|
||||
"merge-stream": "^2.0.0",
|
||||
"npm-run-path": "^5.1.0",
|
||||
@@ -3569,12 +3609,20 @@
|
||||
}
|
||||
},
|
||||
"fs-minipass": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.1.tgz",
|
||||
"integrity": "sha512-MhaJDcFRTuLidHrIttu0RDGyyXs/IYHVmlcxfLAEFIWjc1vdLAkdwT7Ace2u7DbitWC0toKMl5eJZRYNVreIMw==",
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.2.tgz",
|
||||
"integrity": "sha512-2GAfyfoaCDRrM6jaOS3UsBts8yJ55VioXdWcOL7dK9zdAuKT71+WBA4ifnNYqVjYv+4SsPxjK0JT4yIIn4cA/g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"minipass": "^4.0.0"
|
||||
"minipass": "^5.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"minipass": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
|
||||
"integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"fs.realpath": {
|
||||
@@ -3668,9 +3716,9 @@
|
||||
}
|
||||
},
|
||||
"human-signals": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz",
|
||||
"integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ=="
|
||||
"version": "4.3.1",
|
||||
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz",
|
||||
"integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ=="
|
||||
},
|
||||
"humanize-ms": {
|
||||
"version": "1.2.1",
|
||||
@@ -3923,9 +3971,9 @@
|
||||
}
|
||||
},
|
||||
"minipass": {
|
||||
"version": "4.2.5",
|
||||
"resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz",
|
||||
"integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==",
|
||||
"version": "4.2.8",
|
||||
"resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz",
|
||||
"integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==",
|
||||
"dev": true
|
||||
},
|
||||
"minipass-collect": {
|
||||
@@ -4172,17 +4220,17 @@
|
||||
}
|
||||
},
|
||||
"ora": {
|
||||
"version": "6.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ora/-/ora-6.1.2.tgz",
|
||||
"integrity": "sha512-EJQ3NiP5Xo94wJXIzAyOtSb0QEIAUu7m8t6UZ9krbz0vAJqr92JpcK/lEXg91q6B9pEGqrykkd2EQplnifDSBw==",
|
||||
"version": "6.3.1",
|
||||
"resolved": "https://registry.npmjs.org/ora/-/ora-6.3.1.tgz",
|
||||
"integrity": "sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ==",
|
||||
"requires": {
|
||||
"bl": "^5.0.0",
|
||||
"chalk": "^5.0.0",
|
||||
"cli-cursor": "^4.0.0",
|
||||
"cli-spinners": "^2.6.1",
|
||||
"is-interactive": "^2.0.0",
|
||||
"is-unicode-supported": "^1.1.0",
|
||||
"log-symbols": "^5.1.0",
|
||||
"stdin-discarder": "^0.1.0",
|
||||
"strip-ansi": "^7.0.1",
|
||||
"wcwidth": "^1.0.1"
|
||||
}
|
||||
@@ -4257,9 +4305,9 @@
|
||||
}
|
||||
},
|
||||
"prettier": {
|
||||
"version": "2.8.4",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.4.tgz",
|
||||
"integrity": "sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==",
|
||||
"version": "2.8.8",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
|
||||
"integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
|
||||
"dev": true
|
||||
},
|
||||
"proc-log": {
|
||||
@@ -4518,6 +4566,14 @@
|
||||
"minipass": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"stdin-discarder": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.1.0.tgz",
|
||||
"integrity": "sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==",
|
||||
"requires": {
|
||||
"bl": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"streamsearch": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
|
||||
@@ -4681,9 +4737,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"tsup": {
|
||||
"version": "6.6.3",
|
||||
"resolved": "https://registry.npmjs.org/tsup/-/tsup-6.6.3.tgz",
|
||||
"integrity": "sha512-OLx/jFllYlVeZQ7sCHBuRVEQBBa1tFbouoc/gbYakyipjVQdWy/iQOvmExUA/ewap9iQ7tbJf9pW0PgcEFfJcQ==",
|
||||
"version": "6.7.0",
|
||||
"resolved": "https://registry.npmjs.org/tsup/-/tsup-6.7.0.tgz",
|
||||
"integrity": "sha512-L3o8hGkaHnu5TdJns+mCqFsDBo83bJ44rlK7e6VdanIvpea4ArPcU3swWGsLVbXak1PqQx/V+SSmFPujBK+zEQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"bundle-require": "^4.0.0",
|
||||
@@ -4764,15 +4820,15 @@
|
||||
}
|
||||
},
|
||||
"typescript": {
|
||||
"version": "4.9.5",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
|
||||
"integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
|
||||
"version": "5.1.3",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.3.tgz",
|
||||
"integrity": "sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==",
|
||||
"dev": true
|
||||
},
|
||||
"undici": {
|
||||
"version": "5.20.0",
|
||||
"resolved": "https://registry.npmjs.org/undici/-/undici-5.20.0.tgz",
|
||||
"integrity": "sha512-J3j60dYzuo6Eevbawwp1sdg16k5Tf768bxYK4TUJRH7cBM4kFCbf3mOnM/0E3vQYXvpxITbbWmBafaDbxLDz3g==",
|
||||
"version": "5.22.1",
|
||||
"resolved": "https://registry.npmjs.org/undici/-/undici-5.22.1.tgz",
|
||||
"integrity": "sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw==",
|
||||
"requires": {
|
||||
"busboy": "^1.6.0"
|
||||
}
|
||||
|
||||
26
package.json
26
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@sern/cli",
|
||||
"version": "0.5.0",
|
||||
"version": "0.5.1",
|
||||
"description": "Official CLI for @sern/handler",
|
||||
"exports": "./dist/index.js",
|
||||
"bin": {
|
||||
@@ -12,7 +12,7 @@
|
||||
"format": "prettier --check .",
|
||||
"fix": "prettier --write .",
|
||||
"build": "tsup",
|
||||
"watch": "tsc --watch"
|
||||
"watch": "tsup --watch"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@@ -30,23 +30,23 @@
|
||||
"bugs": {
|
||||
"url": "https://github.com/sern-handler/cli/issues"
|
||||
},
|
||||
"homepage": "https://sern.dev",
|
||||
"homepage": "https://sern-handler.js.org",
|
||||
"dependencies": {
|
||||
"colorette": "^2.0.16",
|
||||
"commander": "^9.3.0",
|
||||
"execa": "^6.1.0",
|
||||
"colorette": "2.0.20",
|
||||
"commander": "11.0.0",
|
||||
"execa": "7.1.1",
|
||||
"find-up": "6.3.0",
|
||||
"ora": "^6.1.0",
|
||||
"ora": "6.3.1",
|
||||
"prompts": "2.4.2",
|
||||
"undici": "^5.6.1"
|
||||
"undici": "5.22.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@favware/npm-deprecate": "1.0.7",
|
||||
"@types/prompts": "2.4.3",
|
||||
"esbuild-plugin-version-injector": "^1.0.3",
|
||||
"prettier": "2.8.4",
|
||||
"tsup": "^6.6.3",
|
||||
"typescript": "4.9.5"
|
||||
"@types/prompts": "2.4.4",
|
||||
"esbuild-plugin-version-injector": "1.1.0",
|
||||
"prettier": "2.8.8",
|
||||
"tsup": "6.7.0",
|
||||
"typescript": "5.1.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 16.10.x"
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { cyanBright, green, magentaBright } from 'colorette';
|
||||
|
||||
export const help = `
|
||||
export function help() {
|
||||
return `
|
||||
___ ___ _ __ _ __
|
||||
/ __|/ _ \\ '__| '_ \\
|
||||
\\__ \\ __/ | | | | |
|
||||
@@ -8,9 +9,10 @@ export const help = `
|
||||
|
||||
Welcome!
|
||||
If you're new to ${cyanBright('sern')}, run ${magentaBright(
|
||||
'sern init'
|
||||
'npm create @sern/bot'
|
||||
)} for an interactive setup to your new bot project!
|
||||
|
||||
${green(
|
||||
`If you have any ideas, suggestions, bug reports, kindly join our support server: https://sern.dev/discord`
|
||||
)}`;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { greenBright, redBright, underline } from 'colorette';
|
||||
import { greenBright, redBright, underline, yellowBright } from 'colorette';
|
||||
import { execa } from 'execa';
|
||||
import { findUp } from 'find-up';
|
||||
import ora from 'ora';
|
||||
@@ -19,7 +19,16 @@ import { cloneRepo, installDeps } from '../utilities/install.js';
|
||||
import { npm } from '../utilities/npm.js';
|
||||
import type { PackageManagerChoice } from '../utilities/types.js';
|
||||
|
||||
/** @deprecated Use npm create instead */
|
||||
export async function init(flags: Flags) {
|
||||
console.log(
|
||||
`${yellowBright(
|
||||
'[WARN]:'
|
||||
)} This command is deprecated, use ${greenBright(
|
||||
'npm create @sern/bot'
|
||||
)} instead`
|
||||
);
|
||||
|
||||
let data: PromptData;
|
||||
let git_init = true; // the default;
|
||||
let pm = flags.sync ? undefined : flags.y ? 'npm' : await npm();
|
||||
|
||||
@@ -1,53 +1,26 @@
|
||||
import { greenBright } from 'colorette';
|
||||
import fs from 'fs';
|
||||
import prompt from 'prompts';
|
||||
import { fetch, type Response } from 'undici';
|
||||
import { fetch } from 'undici';
|
||||
import { pluginsQ } from '../prompts/plugin.js';
|
||||
import { fromCwd } from '../utilities/fromCwd.js';
|
||||
|
||||
/**
|
||||
* Installs plugins to project
|
||||
*/
|
||||
export async function plugins() {
|
||||
const e: string[] = (await prompt([await pluginsQ()])).list;
|
||||
if (!e) process.exit(1);
|
||||
|
||||
function dispatchSave() {
|
||||
|
||||
}
|
||||
|
||||
function dispatchInstall() {
|
||||
|
||||
}
|
||||
|
||||
export async function plugins(options: PluginOptions) {
|
||||
if(options.save) {
|
||||
dispatchSave()
|
||||
}
|
||||
//Download instead based on names given. Must be a full filename ie: (publish)
|
||||
if(options.name) {
|
||||
|
||||
const pluginSource = await downloa();
|
||||
|
||||
}
|
||||
const e: string[] = (await prompt([await pluginsQ()])).list;
|
||||
if (!e) process.exit(1);
|
||||
|
||||
for await (const url of e) {
|
||||
await download(url);
|
||||
}
|
||||
const pluginNames = e.map((e) => e.split('/').pop());
|
||||
console.log(
|
||||
`Successfully downloaded plugin(s):\n${greenBright(
|
||||
pluginNames.join('\n')
|
||||
)}`
|
||||
);
|
||||
}
|
||||
|
||||
async function downloa(url: string | URL) {
|
||||
const formatText = (res: Response) => res.text()
|
||||
return fetch(url, { method: 'GET' })
|
||||
.then(formatText)
|
||||
.catch(() => {
|
||||
throw Error('Download failed! Kindly contact developers')
|
||||
})
|
||||
for await (const url of e) {
|
||||
await download(url);
|
||||
}
|
||||
const pluginNames = e.map((e) => e.split('/').pop());
|
||||
console.log(
|
||||
`Successfully downloaded plugin(s):\n${greenBright(
|
||||
pluginNames.join('\n')
|
||||
)}`
|
||||
);
|
||||
}
|
||||
|
||||
async function download(url: string) {
|
||||
@@ -57,7 +30,7 @@ async function download(url: string) {
|
||||
|
||||
if (!data) throw new Error('Download failed! Kindly contact developers');
|
||||
|
||||
const dir = fromCwd('/src/plugins');
|
||||
const dir = `${fromCwd('/src/plugins')}`;
|
||||
const filedir = `${process.cwd()}/src/plugins/${url.split('/').pop()}`;
|
||||
|
||||
if (!fs.existsSync(dir)) {
|
||||
@@ -65,9 +38,3 @@ async function download(url: string) {
|
||||
}
|
||||
fs.writeFileSync(filedir, data);
|
||||
}
|
||||
|
||||
interface PluginOptions {
|
||||
name?: string[];
|
||||
save: boolean
|
||||
|
||||
}
|
||||
|
||||
27
src/index.ts
27
src/index.ts
@@ -6,32 +6,33 @@ import { init } from './commands/init.js';
|
||||
|
||||
import { Command } from 'commander';
|
||||
import { plugins } from './commands/plugins.js';
|
||||
import { yellowBright } from 'colorette';
|
||||
export const program = new Command();
|
||||
|
||||
const version: string = '[VI]{{inject}}[/VI]';
|
||||
|
||||
program
|
||||
.name('sern')
|
||||
.description(help)
|
||||
.version(`sern CLI v${version}`)
|
||||
.description(help())
|
||||
.version(`sern CLI v${version}`, '-v, --version')
|
||||
.exitOverride(() => process.exit(0));
|
||||
|
||||
program
|
||||
.command(init.name)
|
||||
.description('Quickest way to scaffold a new project')
|
||||
.description(
|
||||
`Quickest way to scaffold a new project ${yellowBright('[DEPRECATED]')}`
|
||||
)
|
||||
.option('-y', 'Finishes setup as default')
|
||||
.option('-s, --sync', 'Syncs the project and generates sern.config.json')
|
||||
.action(init);
|
||||
|
||||
const pluginCommand = program.command(plugins.name)
|
||||
pluginCommand
|
||||
.description(
|
||||
'Get plugins from https://github.com/sern-handler/awesome-plugins'
|
||||
)
|
||||
.option('-n --name <string...>', 'Name(s) of plugin to install')
|
||||
.option('-S --save', 'Save and keep plugins updated')
|
||||
.action(plugins);
|
||||
|
||||
program
|
||||
.command(plugins.name)
|
||||
.description(
|
||||
'Install plugins from https://github.com/sern-handler/awesome-plugins'
|
||||
)
|
||||
.option('-n --name', 'Name of plugin')
|
||||
.action(plugins);
|
||||
|
||||
program
|
||||
.command(extra.name)
|
||||
.description('Easy way to add extra things in your sern project')
|
||||
|
||||
@@ -41,5 +41,3 @@ interface Data {
|
||||
name: string;
|
||||
download_url: string;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,10 +1 @@
|
||||
export type PackageManagerChoice = 'skip' | 'npm' | 'yarn';
|
||||
|
||||
export interface Config {
|
||||
language: string;
|
||||
paths : {
|
||||
base: string;
|
||||
commands: string;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
import { requiree } from "..";
|
||||
|
||||
export function version() {
|
||||
const { version: v } = requiree('../../package.json');
|
||||
return `@sern/cli v${v}`;
|
||||
}
|
||||
@@ -4,14 +4,14 @@
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "Node",
|
||||
"outDir": "dist",
|
||||
"rootDir": "src",
|
||||
"rootDir": ".",
|
||||
"declaration": true,
|
||||
"declarationMap": true,
|
||||
"strict": true,
|
||||
"esModuleInterop": true,
|
||||
"noImplicitAny": true,
|
||||
"strictNullChecks": true,
|
||||
"importsNotUsedAsValues": "error",
|
||||
"verbatimModuleSyntax": true,
|
||||
"skipLibCheck": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
}
|
||||
|
||||
@@ -1,19 +1,17 @@
|
||||
import { defineConfig } from 'tsup'
|
||||
import { defineConfig } from 'tsup';
|
||||
import { esbuildPluginVersionInjector } from 'esbuild-plugin-version-injector';
|
||||
const shared = {
|
||||
entry: ['src/index.ts'],
|
||||
platform: 'node',
|
||||
clean: true,
|
||||
sourcemap: true,
|
||||
entry: ['src/index.ts'],
|
||||
clean: true,
|
||||
sourcemap: true,
|
||||
};
|
||||
export default defineConfig(
|
||||
{
|
||||
format: 'esm',
|
||||
target: 'node16',
|
||||
tsconfig: './tsconfig.json',
|
||||
outDir: './dist',
|
||||
treeshake: true,
|
||||
esbuildPlugins: [esbuildPluginVersionInjector()],
|
||||
...shared,
|
||||
}
|
||||
)
|
||||
export default defineConfig({
|
||||
format: 'esm',
|
||||
target: 'node16',
|
||||
tsconfig: './tsconfig.json',
|
||||
outDir: './dist',
|
||||
treeshake: true,
|
||||
esbuildPlugins: [esbuildPluginVersionInjector()],
|
||||
platform: 'node',
|
||||
...shared,
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user