long-git-cli 1.0.12 → 1.0.13

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.
Files changed (71) hide show
  1. package/README.md +148 -0
  2. package/dist/commands/config.d.ts +9 -0
  3. package/dist/commands/config.d.ts.map +1 -0
  4. package/dist/commands/config.js +33 -0
  5. package/dist/commands/config.js.map +1 -0
  6. package/dist/commands/deploy.d.ts +14 -0
  7. package/dist/commands/deploy.d.ts.map +1 -0
  8. package/dist/commands/deploy.js +342 -0
  9. package/dist/commands/deploy.js.map +1 -0
  10. package/dist/commands/tag.d.ts.map +1 -1
  11. package/dist/commands/tag.js +9 -7
  12. package/dist/commands/tag.js.map +1 -1
  13. package/dist/devops/api/bitbucket-client.d.ts +101 -0
  14. package/dist/devops/api/bitbucket-client.d.ts.map +1 -0
  15. package/dist/devops/api/bitbucket-client.js +335 -0
  16. package/dist/devops/api/bitbucket-client.js.map +1 -0
  17. package/dist/devops/api/jenkins-client.d.ts +96 -0
  18. package/dist/devops/api/jenkins-client.d.ts.map +1 -0
  19. package/dist/devops/api/jenkins-client.js +240 -0
  20. package/dist/devops/api/jenkins-client.js.map +1 -0
  21. package/dist/devops/config/config-manager.d.ts +96 -0
  22. package/dist/devops/config/config-manager.d.ts.map +1 -0
  23. package/dist/devops/config/config-manager.js +331 -0
  24. package/dist/devops/config/config-manager.js.map +1 -0
  25. package/dist/devops/config/encryption.d.ts +39 -0
  26. package/dist/devops/config/encryption.d.ts.map +1 -0
  27. package/dist/devops/config/encryption.js +133 -0
  28. package/dist/devops/config/encryption.js.map +1 -0
  29. package/dist/devops/config/storage.d.ts +37 -0
  30. package/dist/devops/config/storage.d.ts.map +1 -0
  31. package/dist/devops/config/storage.js +132 -0
  32. package/dist/devops/config/storage.js.map +1 -0
  33. package/dist/devops/constants.d.ts +51 -0
  34. package/dist/devops/constants.d.ts.map +1 -0
  35. package/dist/devops/constants.js +95 -0
  36. package/dist/devops/constants.js.map +1 -0
  37. package/dist/devops/deployer/full-deployer.d.ts +77 -0
  38. package/dist/devops/deployer/full-deployer.d.ts.map +1 -0
  39. package/dist/devops/deployer/full-deployer.js +221 -0
  40. package/dist/devops/deployer/full-deployer.js.map +1 -0
  41. package/dist/devops/deployer/jenkins-deployer.d.ts +55 -0
  42. package/dist/devops/deployer/jenkins-deployer.d.ts.map +1 -0
  43. package/dist/devops/deployer/jenkins-deployer.js +110 -0
  44. package/dist/devops/deployer/jenkins-deployer.js.map +1 -0
  45. package/dist/devops/monitor/pipeline-monitor.d.ts +48 -0
  46. package/dist/devops/monitor/pipeline-monitor.d.ts.map +1 -0
  47. package/dist/devops/monitor/pipeline-monitor.js +170 -0
  48. package/dist/devops/monitor/pipeline-monitor.js.map +1 -0
  49. package/dist/devops/test-ui.d.ts +6 -0
  50. package/dist/devops/test-ui.d.ts.map +1 -0
  51. package/dist/devops/test-ui.js +31 -0
  52. package/dist/devops/test-ui.js.map +1 -0
  53. package/dist/devops/types.d.ts +138 -0
  54. package/dist/devops/types.d.ts.map +1 -0
  55. package/dist/devops/types.js +20 -0
  56. package/dist/devops/types.js.map +1 -0
  57. package/dist/devops/ui/server.d.ts +53 -0
  58. package/dist/devops/ui/server.d.ts.map +1 -0
  59. package/dist/devops/ui/server.js +1310 -0
  60. package/dist/devops/ui/server.js.map +1 -0
  61. package/dist/index.js +31 -1
  62. package/dist/index.js.map +1 -1
  63. package/dist/utils/message.d.ts +0 -2
  64. package/dist/utils/message.d.ts.map +1 -1
  65. package/dist/utils/message.js +7 -15
  66. package/dist/utils/message.js.map +1 -1
  67. package/dist/utils/tag.d.ts +65 -6
  68. package/dist/utils/tag.d.ts.map +1 -1
  69. package/dist/utils/tag.js +148 -14
  70. package/dist/utils/tag.js.map +1 -1
  71. package/package.json +19 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-manager.js","sourceRoot":"","sources":["../../../src/devops/config/config-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * 加密模块
3
+ * 使用 AES-256-GCM 进行可逆加密
4
+ */
5
+ /**
6
+ * 加密类
7
+ */
8
+ export declare class Encryption {
9
+ private static readonly ENCRYPTION_KEY;
10
+ /**
11
+ * 加密文本
12
+ * @param text 明文
13
+ * @returns 加密后的文本(格式:iv:encryptedData:authTag)
14
+ */
15
+ static encrypt(text: string): string;
16
+ /**
17
+ * 解密文本
18
+ * @param encryptedText 加密的文本(格式:iv:encryptedData:authTag)
19
+ * @returns 明文
20
+ */
21
+ static decrypt(encryptedText: string): string;
22
+ /**
23
+ * 验证加密文本是否有效
24
+ * @param encryptedText 加密的文本
25
+ * @returns 是否有效
26
+ */
27
+ static isValid(encryptedText: string): boolean;
28
+ /**
29
+ * 兼容旧版本:hash 方法(现在直接调用 encrypt)
30
+ * @deprecated 使用 encrypt 代替
31
+ */
32
+ static hash(text: string): Promise<string>;
33
+ /**
34
+ * 兼容旧版本:verify 方法(现在通过解密比较)
35
+ * @deprecated 不再需要验证,直接解密使用
36
+ */
37
+ static verify(text: string, hash: string): Promise<boolean>;
38
+ }
39
+ //# sourceMappingURL=encryption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encryption.d.ts","sourceRoot":"","sources":["../../../src/devops/config/encryption.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;GAEG;AACH,qBAAa,UAAU;IAGrB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAG1B;IAEZ;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAsBpC;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;IA8B7C;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAS9C;;;OAGG;WACU,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIhD;;;OAGG;WACU,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAQlE"}
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ /**
3
+ * 加密模块
4
+ * 使用 AES-256-GCM 进行可逆加密
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.Encryption = void 0;
41
+ const crypto = __importStar(require("crypto"));
42
+ /**
43
+ * 加密类
44
+ */
45
+ class Encryption {
46
+ /**
47
+ * 加密文本
48
+ * @param text 明文
49
+ * @returns 加密后的文本(格式:iv:encryptedData:authTag)
50
+ */
51
+ static encrypt(text) {
52
+ // 生成随机 IV
53
+ const iv = crypto.randomBytes(16);
54
+ // 创建加密器
55
+ const cipher = crypto.createCipheriv("aes-256-gcm", this.ENCRYPTION_KEY, iv);
56
+ // 加密数据
57
+ let encrypted = cipher.update(text, "utf8", "hex");
58
+ encrypted += cipher.final("hex");
59
+ // 获取认证标签
60
+ const authTag = cipher.getAuthTag();
61
+ // 返回格式:iv:encryptedData:authTag
62
+ return `${iv.toString("hex")}:${encrypted}:${authTag.toString("hex")}`;
63
+ }
64
+ /**
65
+ * 解密文本
66
+ * @param encryptedText 加密的文本(格式:iv:encryptedData:authTag)
67
+ * @returns 明文
68
+ */
69
+ static decrypt(encryptedText) {
70
+ try {
71
+ // 分割加密数据
72
+ const parts = encryptedText.split(":");
73
+ if (parts.length !== 3) {
74
+ throw new Error("Invalid encrypted text format");
75
+ }
76
+ const iv = Buffer.from(parts[0], "hex");
77
+ const encrypted = parts[1];
78
+ const authTag = Buffer.from(parts[2], "hex");
79
+ // 创建解密器
80
+ const decipher = crypto.createDecipheriv("aes-256-gcm", this.ENCRYPTION_KEY, iv);
81
+ decipher.setAuthTag(authTag);
82
+ // 解密数据
83
+ let decrypted = decipher.update(encrypted, "hex", "utf8");
84
+ decrypted += decipher.final("utf8");
85
+ return decrypted;
86
+ }
87
+ catch (error) {
88
+ throw new Error(`Decryption failed: ${error instanceof Error ? error.message : String(error)}`);
89
+ }
90
+ }
91
+ /**
92
+ * 验证加密文本是否有效
93
+ * @param encryptedText 加密的文本
94
+ * @returns 是否有效
95
+ */
96
+ static isValid(encryptedText) {
97
+ try {
98
+ this.decrypt(encryptedText);
99
+ return true;
100
+ }
101
+ catch {
102
+ return false;
103
+ }
104
+ }
105
+ /**
106
+ * 兼容旧版本:hash 方法(现在直接调用 encrypt)
107
+ * @deprecated 使用 encrypt 代替
108
+ */
109
+ static async hash(text) {
110
+ return this.encrypt(text);
111
+ }
112
+ /**
113
+ * 兼容旧版本:verify 方法(现在通过解密比较)
114
+ * @deprecated 不再需要验证,直接解密使用
115
+ */
116
+ static async verify(text, hash) {
117
+ try {
118
+ const decrypted = this.decrypt(hash);
119
+ return decrypted === text;
120
+ }
121
+ catch {
122
+ return false;
123
+ }
124
+ }
125
+ }
126
+ exports.Encryption = Encryption;
127
+ // 加密密钥(实际应用中应该从环境变量或用户输入获取)
128
+ // 这里使用固定密钥,因为是本地存储
129
+ Encryption.ENCRYPTION_KEY = crypto
130
+ .createHash("sha256")
131
+ .update("long-cli-encryption-key-v1")
132
+ .digest();
133
+ //# sourceMappingURL=encryption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encryption.js","sourceRoot":"","sources":["../../../src/devops/config/encryption.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,+CAAiC;AAEjC;;GAEG;AACH,MAAa,UAAU;IAQrB;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,IAAY;QACzB,UAAU;QACV,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAElC,QAAQ;QACR,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAClC,aAAa,EACb,IAAI,CAAC,cAAc,EACnB,EAAE,CACH,CAAC;QAEF,OAAO;QACP,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACnD,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEjC,SAAS;QACT,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAEpC,gCAAgC;QAChC,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,SAAS,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IACzE,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,aAAqB;QAClC,IAAI,CAAC;YACH,SAAS;YACT,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACnD,CAAC;YAED,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YACxC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YAE7C,QAAQ;YACR,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CACtC,aAAa,EACb,IAAI,CAAC,cAAc,EACnB,EAAE,CACH,CAAC;YACF,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAE7B,OAAO;YACP,IAAI,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAC1D,SAAS,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAEpC,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClG,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,aAAqB;QAClC,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAY;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,IAAY;QAC5C,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACrC,OAAO,SAAS,KAAK,IAAI,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;;AAvGH,gCAwGC;AAvGC,4BAA4B;AAC5B,mBAAmB;AACK,yBAAc,GAAG,MAAM;KAC5C,UAAU,CAAC,QAAQ,CAAC;KACpB,MAAM,CAAC,4BAA4B,CAAC;KACpC,MAAM,EAAE,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * 本地存储模块
3
+ * 处理本地 JSON 文件的读写操作
4
+ */
5
+ /**
6
+ * Storage 类
7
+ * 负责本地文件的读写操作
8
+ */
9
+ export declare class Storage {
10
+ private storagePath;
11
+ constructor(storagePath?: string);
12
+ /**
13
+ * 读取文件
14
+ */
15
+ read<T>(filename: string): Promise<T | null>;
16
+ /**
17
+ * 写入文件
18
+ */
19
+ write<T>(filename: string, data: T): Promise<void>;
20
+ /**
21
+ * 检查文件是否存在
22
+ */
23
+ exists(filename: string): Promise<boolean>;
24
+ /**
25
+ * 删除文件
26
+ */
27
+ delete(filename: string): Promise<void>;
28
+ /**
29
+ * 获取存储路径
30
+ */
31
+ getStoragePath(): string;
32
+ /**
33
+ * 确保目录存在
34
+ */
35
+ private ensureDir;
36
+ }
37
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/devops/config/storage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH;;;GAGG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,WAAW,CAAS;gBAEhB,WAAW,GAAE,MAAmB;IAI5C;;OAEG;IACG,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAclD;;OAEG;IACG,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBxD;;OAEG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUhD;;OAEG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW7C;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;YACW,SAAS;CAOxB"}
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ /**
3
+ * 本地存储模块
4
+ * 处理本地 JSON 文件的读写操作
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.Storage = void 0;
41
+ const fs = __importStar(require("fs/promises"));
42
+ const path = __importStar(require("path"));
43
+ const constants_1 = require("../constants");
44
+ /**
45
+ * Storage 类
46
+ * 负责本地文件的读写操作
47
+ */
48
+ class Storage {
49
+ constructor(storagePath = constants_1.CONFIG_DIR) {
50
+ this.storagePath = storagePath;
51
+ }
52
+ /**
53
+ * 读取文件
54
+ */
55
+ async read(filename) {
56
+ try {
57
+ const filePath = path.join(this.storagePath, filename);
58
+ const data = await fs.readFile(filePath, "utf-8");
59
+ return JSON.parse(data);
60
+ }
61
+ catch (error) {
62
+ if (error.code === "ENOENT") {
63
+ /** 文件不存在 */
64
+ return null;
65
+ }
66
+ throw new Error(`读取文件失败: ${error.message}`);
67
+ }
68
+ }
69
+ /**
70
+ * 写入文件
71
+ */
72
+ async write(filename, data) {
73
+ try {
74
+ /** 确保目录存在 */
75
+ await this.ensureDir();
76
+ const filePath = path.join(this.storagePath, filename);
77
+ const jsonData = JSON.stringify(data, null, 2);
78
+ await fs.writeFile(filePath, jsonData, "utf-8");
79
+ /** 设置文件权限为仅当前用户可读写 (600) */
80
+ await fs.chmod(filePath, 0o600);
81
+ }
82
+ catch (error) {
83
+ throw new Error(`写入文件失败: ${error.message}`);
84
+ }
85
+ }
86
+ /**
87
+ * 检查文件是否存在
88
+ */
89
+ async exists(filename) {
90
+ try {
91
+ const filePath = path.join(this.storagePath, filename);
92
+ await fs.access(filePath);
93
+ return true;
94
+ }
95
+ catch {
96
+ return false;
97
+ }
98
+ }
99
+ /**
100
+ * 删除文件
101
+ */
102
+ async delete(filename) {
103
+ try {
104
+ const filePath = path.join(this.storagePath, filename);
105
+ await fs.unlink(filePath);
106
+ }
107
+ catch (error) {
108
+ if (error.code !== "ENOENT") {
109
+ throw new Error(`删除文件失败: ${error.message}`);
110
+ }
111
+ }
112
+ }
113
+ /**
114
+ * 获取存储路径
115
+ */
116
+ getStoragePath() {
117
+ return this.storagePath;
118
+ }
119
+ /**
120
+ * 确保目录存在
121
+ */
122
+ async ensureDir() {
123
+ try {
124
+ await fs.mkdir(this.storagePath, { recursive: true });
125
+ }
126
+ catch (error) {
127
+ throw new Error(`创建目录失败: ${error.message}`);
128
+ }
129
+ }
130
+ }
131
+ exports.Storage = Storage;
132
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/devops/config/storage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * 自动化部署功能的常量定义
3
+ */
4
+ /**
5
+ * 配置文件存储路径
6
+ */
7
+ export declare const CONFIG_DIR: string;
8
+ export declare const CONFIG_FILE: string;
9
+ /**
10
+ * 配置版本
11
+ */
12
+ export declare const CONFIG_VERSION = "1.0.0";
13
+ /**
14
+ * Web UI 服务器配置
15
+ */
16
+ export declare const WEB_UI_PORT = 3456;
17
+ export declare const WEB_UI_HOST = "localhost";
18
+ /**
19
+ * Bitbucket API 配置
20
+ */
21
+ export declare const BITBUCKET_API_BASE_URL = "https://api.bitbucket.org/2.0";
22
+ export declare const BITBUCKET_POLL_INTERVAL = 15000;
23
+ export declare const BITBUCKET_TIMEOUT: number;
24
+ /**
25
+ * Jenkins API 配置
26
+ */
27
+ export declare const JENKINS_POLL_INTERVAL = 10000;
28
+ export declare const JENKINS_TIMEOUT: number;
29
+ /**
30
+ * 支持的环境列表
31
+ */
32
+ export declare const SUPPORTED_ENVIRONMENTS: readonly ["test-01", "test-02", "test-03", "test-04", "uat"];
33
+ /**
34
+ * 支持的 Jenkins 实例类型
35
+ */
36
+ export declare const JENKINS_INSTANCE_TYPES: readonly ["app", "pcalpha"];
37
+ /**
38
+ * 默认 Tag 格式
39
+ */
40
+ export declare const DEFAULT_TAG_FORMATS: {
41
+ readonly "test-01": "test-v00.00.0000";
42
+ readonly "test-02": "test-v00.00.0000";
43
+ readonly "test-03": "test-v00.00.0000";
44
+ readonly "test-04": "test-v00.00.0000";
45
+ readonly uat: "uat-v00.00.0000";
46
+ };
47
+ /**
48
+ * bcrypt 加密轮数
49
+ */
50
+ export declare const BCRYPT_ROUNDS = 10;
51
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/devops/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;GAEG;AACH,eAAO,MAAM,UAAU,QAAuC,CAAC;AAC/D,eAAO,MAAM,WAAW,QAAuC,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,cAAc,UAAU,CAAC;AAEtC;;GAEG;AACH,eAAO,MAAM,WAAW,OAAO,CAAC;AAChC,eAAO,MAAM,WAAW,cAAc,CAAC;AAEvC;;GAEG;AACH,eAAO,MAAM,sBAAsB,kCAAkC,CAAC;AACtE,eAAO,MAAM,uBAAuB,QAAQ,CAAC;AAC7C,eAAO,MAAM,iBAAiB,QAAiB,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAC3C,eAAO,MAAM,eAAe,QAAiB,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,sBAAsB,8DAMzB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,sBAAsB,6BAA8B,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;CAMtB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,aAAa,KAAK,CAAC"}
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ /**
3
+ * 自动化部署功能的常量定义
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.BCRYPT_ROUNDS = exports.DEFAULT_TAG_FORMATS = exports.JENKINS_INSTANCE_TYPES = exports.SUPPORTED_ENVIRONMENTS = exports.JENKINS_TIMEOUT = exports.JENKINS_POLL_INTERVAL = exports.BITBUCKET_TIMEOUT = exports.BITBUCKET_POLL_INTERVAL = exports.BITBUCKET_API_BASE_URL = exports.WEB_UI_HOST = exports.WEB_UI_PORT = exports.CONFIG_VERSION = exports.CONFIG_FILE = exports.CONFIG_DIR = void 0;
40
+ const os = __importStar(require("os"));
41
+ const path = __importStar(require("path"));
42
+ /**
43
+ * 配置文件存储路径
44
+ */
45
+ exports.CONFIG_DIR = path.join(os.homedir(), ".long-cli");
46
+ exports.CONFIG_FILE = path.join(exports.CONFIG_DIR, "config.json");
47
+ /**
48
+ * 配置版本
49
+ */
50
+ exports.CONFIG_VERSION = "1.0.0";
51
+ /**
52
+ * Web UI 服务器配置
53
+ */
54
+ exports.WEB_UI_PORT = 3456;
55
+ exports.WEB_UI_HOST = "localhost";
56
+ /**
57
+ * Bitbucket API 配置
58
+ */
59
+ exports.BITBUCKET_API_BASE_URL = "https://api.bitbucket.org/2.0";
60
+ exports.BITBUCKET_POLL_INTERVAL = 15000; // 15 秒
61
+ exports.BITBUCKET_TIMEOUT = 30 * 60 * 1000; // 30 分钟
62
+ /**
63
+ * Jenkins API 配置
64
+ */
65
+ exports.JENKINS_POLL_INTERVAL = 10000; // 10 秒
66
+ exports.JENKINS_TIMEOUT = 60 * 60 * 1000; // 60 分钟
67
+ /**
68
+ * 支持的环境列表
69
+ */
70
+ exports.SUPPORTED_ENVIRONMENTS = [
71
+ "test-01",
72
+ "test-02",
73
+ "test-03",
74
+ "test-04",
75
+ "uat",
76
+ ];
77
+ /**
78
+ * 支持的 Jenkins 实例类型
79
+ */
80
+ exports.JENKINS_INSTANCE_TYPES = ["app", "pcalpha"];
81
+ /**
82
+ * 默认 Tag 格式
83
+ */
84
+ exports.DEFAULT_TAG_FORMATS = {
85
+ "test-01": "test-v00.00.0000",
86
+ "test-02": "test-v00.00.0000",
87
+ "test-03": "test-v00.00.0000",
88
+ "test-04": "test-v00.00.0000",
89
+ uat: "uat-v00.00.0000",
90
+ };
91
+ /**
92
+ * bcrypt 加密轮数
93
+ */
94
+ exports.BCRYPT_ROUNDS = 10;
95
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/devops/constants.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAE7B;;GAEG;AACU,QAAA,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;AAClD,QAAA,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAU,EAAE,aAAa,CAAC,CAAC;AAEhE;;GAEG;AACU,QAAA,cAAc,GAAG,OAAO,CAAC;AAEtC;;GAEG;AACU,QAAA,WAAW,GAAG,IAAI,CAAC;AACnB,QAAA,WAAW,GAAG,WAAW,CAAC;AAEvC;;GAEG;AACU,QAAA,sBAAsB,GAAG,+BAA+B,CAAC;AACzD,QAAA,uBAAuB,GAAG,KAAK,CAAC,CAAC,OAAO;AACxC,QAAA,iBAAiB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,QAAQ;AAEzD;;GAEG;AACU,QAAA,qBAAqB,GAAG,KAAK,CAAC,CAAC,OAAO;AACtC,QAAA,eAAe,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,QAAQ;AAEvD;;GAEG;AACU,QAAA,sBAAsB,GAAG;IACpC,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,KAAK;CACG,CAAC;AAEX;;GAEG;AACU,QAAA,sBAAsB,GAAG,CAAC,KAAK,EAAE,SAAS,CAAU,CAAC;AAElE;;GAEG;AACU,QAAA,mBAAmB,GAAG;IACjC,SAAS,EAAE,kBAAkB;IAC7B,SAAS,EAAE,kBAAkB;IAC7B,SAAS,EAAE,kBAAkB;IAC7B,SAAS,EAAE,kBAAkB;IAC7B,GAAG,EAAE,iBAAiB;CACd,CAAC;AAEX;;GAEG;AACU,QAAA,aAAa,GAAG,EAAE,CAAC"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * 完整部署流程编排器
3
+ * 整合 Git Tag 创建、Pipeline 监听、Jenkins 部署等功能
4
+ */
5
+ import { BitbucketClient } from "../api/bitbucket-client";
6
+ import { JenkinsClient } from "../api/jenkins-client";
7
+ import { ProjectConfig, EnvironmentConfig } from "../types";
8
+ /**
9
+ * 部署步骤枚举
10
+ */
11
+ export declare enum DeployStep {
12
+ CREATING_TAG = "CREATING_TAG",
13
+ PUSHING_TAG = "PUSHING_TAG",
14
+ MONITORING_PIPELINE = "MONITORING_PIPELINE",
15
+ DEPLOYING_JENKINS = "DEPLOYING_JENKINS",
16
+ COMPLETED = "COMPLETED",
17
+ FAILED = "FAILED"
18
+ }
19
+ /**
20
+ * 部署进度信息
21
+ */
22
+ export interface DeployProgress {
23
+ step: DeployStep;
24
+ message: string;
25
+ timestamp: Date;
26
+ data?: any;
27
+ }
28
+ /**
29
+ * 完整部署选项
30
+ */
31
+ export interface FullDeployOptions {
32
+ /** 是否创建新 tag(如果为 false,则使用现有 tag) */
33
+ createNewTag?: boolean;
34
+ /** Tag 名称(如果 createNewTag 为 false,则必须提供) */
35
+ tagName?: string;
36
+ /** 进度回调 */
37
+ onProgress?: (progress: DeployProgress) => void;
38
+ }
39
+ /**
40
+ * 完整部署结果
41
+ */
42
+ export interface FullDeployResult {
43
+ success: boolean;
44
+ tagName: string;
45
+ pipelineStatus?: string;
46
+ jenkinsResult?: string;
47
+ jenkinsBuildNumber?: number;
48
+ jenkinsBuildUrl?: string;
49
+ error?: string;
50
+ }
51
+ /**
52
+ * 完整部署流程编排器类
53
+ */
54
+ export declare class FullDeployer {
55
+ private bitbucketClient;
56
+ private jenkinsClient;
57
+ private projectConfig;
58
+ private environmentConfig;
59
+ constructor(bitbucketClient: BitbucketClient, jenkinsClient: JenkinsClient, projectConfig: ProjectConfig, environmentConfig: EnvironmentConfig);
60
+ /**
61
+ * 执行完整部署流程
62
+ */
63
+ deploy(options?: FullDeployOptions): Promise<FullDeployResult>;
64
+ /**
65
+ * 创建 Git Tag
66
+ */
67
+ private createTag;
68
+ /**
69
+ * 推送 Tag 到远程仓库
70
+ */
71
+ private pushTag;
72
+ /**
73
+ * 报告进度
74
+ */
75
+ private reportProgress;
76
+ }
77
+ //# sourceMappingURL=full-deployer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"full-deployer.d.ts","sourceRoot":"","sources":["../../../src/devops/deployer/full-deployer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAI5D;;GAEG;AACH,oBAAY,UAAU;IACpB,YAAY,iBAAiB;IAC7B,WAAW,gBAAgB;IAC3B,mBAAmB,wBAAwB;IAC3C,iBAAiB,sBAAsB;IACvC,SAAS,cAAc;IACvB,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,qCAAqC;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW;IACX,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;CACjD;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,iBAAiB,CAAoB;gBAG3C,eAAe,EAAE,eAAe,EAChC,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,iBAAiB;IAQtC;;OAEG;IACG,MAAM,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA+IxE;;OAEG;YACW,SAAS;IAkBvB;;OAEG;YACW,OAAO;IAKrB;;OAEG;IACH,OAAO,CAAC,cAAc;CASvB"}