@xubill/xx-cli 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of @xubill/xx-cli might be problematic. Click here for more details.

@@ -0,0 +1,96 @@
1
+ /**
2
+ * 输入验证工具
3
+ * 用于验证用户输入,防止注入攻击
4
+ */
5
+
6
+ /**
7
+ * 验证文件路径
8
+ * @param {string} path - 文件路径
9
+ * @returns {boolean} 是否为有效路径
10
+ */
11
+ exports.validatePath = (path) => {
12
+ // 检查是否为字符串
13
+ if (typeof path !== 'string') {
14
+ return false;
15
+ }
16
+
17
+ // 检查是否包含危险字符
18
+ const dangerousChars = [
19
+ '..', // 目录遍历
20
+ ';', // 命令注入
21
+ '&', // 命令注入
22
+ '|', // 命令注入
23
+ '>', // 重定向
24
+ '<', // 重定向
25
+ '`', // 命令替换
26
+ '\\', // 转义字符
27
+ ];
28
+
29
+ return !dangerousChars.some(char => path.includes(char));
30
+ };
31
+
32
+ /**
33
+ * 验证命令参数
34
+ * @param {string} param - 命令参数
35
+ * @returns {boolean} 是否为有效参数
36
+ */
37
+ exports.validateCommandParam = (param) => {
38
+ // 检查是否为字符串
39
+ if (typeof param !== 'string') {
40
+ return false;
41
+ }
42
+
43
+ // 检查是否包含危险字符
44
+ const dangerousChars = [
45
+ ';', // 命令注入
46
+ '&', // 命令注入
47
+ '|', // 命令注入
48
+ '>', // 重定向
49
+ '<', // 重定向
50
+ '`', // 命令替换
51
+ '\\', // 转义字符
52
+ '\'', // 单引号
53
+ '"', // 双引号
54
+ ];
55
+
56
+ return !dangerousChars.some(char => param.includes(char));
57
+ };
58
+
59
+ /**
60
+ * 验证URL
61
+ * @param {string} url - URL
62
+ * @returns {boolean} 是否为有效URL
63
+ */
64
+ exports.validateUrl = (url) => {
65
+ // 检查是否为字符串
66
+ if (typeof url !== 'string') {
67
+ return false;
68
+ }
69
+
70
+ // 简单的URL格式验证
71
+ const urlPattern = /^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([/\w .-]*)*\/?$/;
72
+ return urlPattern.test(url);
73
+ };
74
+
75
+ /**
76
+ * 验证数字
77
+ * @param {string|number} value - 要验证的值
78
+ * @returns {boolean} 是否为有效数字
79
+ */
80
+ exports.validateNumber = (value) => {
81
+ return !isNaN(Number(value));
82
+ };
83
+
84
+ /**
85
+ * 验证字符串长度
86
+ * @param {string} str - 字符串
87
+ * @param {number} min - 最小长度
88
+ * @param {number} max - 最大长度
89
+ * @returns {boolean} 是否为有效长度
90
+ */
91
+ exports.validateStringLength = (str, min, max) => {
92
+ if (typeof str !== 'string') {
93
+ return false;
94
+ }
95
+ return str.length >= min && str.length <= max;
96
+ };
package/package.json ADDED
@@ -0,0 +1,62 @@
1
+ {
2
+ "name": "@xubill/xx-cli",
3
+ "version": "1.0.0",
4
+ "description": "个人工具集",
5
+ "main": "lib/core/index.js",
6
+ "bin": {
7
+ "xx": "bin/cli.js"
8
+ },
9
+ "scripts": {
10
+ "test": "echo \"Error: no test specified\" && exit 1",
11
+ "build": "echo \"Build completed\"",
12
+ "doc": "vitepress dev doc",
13
+ "doc:build": "vitepress build doc",
14
+ "doc:preview": "vitepress preview doc",
15
+ "release": "standard-version",
16
+ "release:patch": "standard-version --release-as patch",
17
+ "release:minor": "standard-version --release-as minor",
18
+ "release:major": "standard-version --release-as major",
19
+ "release:beta": "standard-version --prerelease beta",
20
+ "release:alpha": "standard-version --prerelease alpha"
21
+ },
22
+ "keywords": [
23
+ "cli",
24
+ "xx",
25
+ "utilities"
26
+ ],
27
+ "author": "",
28
+ "license": "ISC",
29
+ "dependencies": {
30
+ "axios": "^1.13.2",
31
+ "browser-sync": "^3.0.4",
32
+ "chalk": "^5.3.0",
33
+ "clipboardy": "^5.0.2",
34
+ "commander": "^12.0.0",
35
+ "diff": "^8.0.2",
36
+ "docx": "^9.5.1",
37
+ "dotenv": "^17.2.3",
38
+ "ejs": "^3.1.10",
39
+ "envinfo": "^7.21.0",
40
+ "exceljs": "^4.4.0",
41
+ "figlet": "^1.9.4",
42
+ "form-data": "^4.0.5",
43
+ "fs-extra": "^11.3.3",
44
+ "globby": "^16.1.0",
45
+ "inquirer": "8.2.4",
46
+ "ip": "^2.0.1",
47
+ "node-ssh": "^13.2.1",
48
+ "open": "^11.0.0",
49
+ "ora": "^9.0.0",
50
+ "prettier": "^3.7.4",
51
+ "qrcode": "^1.5.4",
52
+ "rimraf": "^6.1.2",
53
+ "update-notifier": "^7.3.1",
54
+ "winston": "^3.10.0",
55
+ "zx": "^8.8.5"
56
+ },
57
+ "devDependencies": {
58
+ "standard-version": "^9.5.0",
59
+ "vitepress": "^1.6.4",
60
+ "vue": "^3.5.26"
61
+ }
62
+ }
package/readme.md ADDED
@@ -0,0 +1,5 @@
1
+ # xx-cli
2
+
3
+ 个人开发工具集,支持插件系统,提供常用开发工具功能。
4
+
5
+ npm i -g xx-cli