ai-project-manage-cli 2.0.26 → 3.0.2

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 (293) hide show
  1. package/dist/index.js +500 -20
  2. package/package.json +27 -25
  3. package/template/apm.config.json +5 -0
  4. package/template/deploy/README.md +3 -0
  5. package/template/skills/apm-review/SKILL.md +38 -0
  6. package/template/skills/apm-review/apm-review-reference.md +89 -0
  7. package/template/workitems/README.md +19 -0
  8. package/README.md +0 -171
  9. package/dist/api/cli.d.ts +0 -228
  10. package/dist/api/cli.d.ts.map +0 -1
  11. package/dist/api/cli.js +0 -3
  12. package/dist/api/cli.js.map +0 -1
  13. package/dist/api/client.d.ts +0 -5
  14. package/dist/api/client.d.ts.map +0 -1
  15. package/dist/api/client.js +0 -30
  16. package/dist/api/client.js.map +0 -1
  17. package/dist/api/http.d.ts +0 -21
  18. package/dist/api/http.d.ts.map +0 -1
  19. package/dist/api/http.js +0 -108
  20. package/dist/api/http.js.map +0 -1
  21. package/dist/api/index.d.ts +0 -6
  22. package/dist/api/index.d.ts.map +0 -1
  23. package/dist/api/index.js +0 -13
  24. package/dist/api/index.js.map +0 -1
  25. package/dist/api/request-config.d.ts +0 -25
  26. package/dist/api/request-config.d.ts.map +0 -1
  27. package/dist/api/request-config.js +0 -73
  28. package/dist/api/request-config.js.map +0 -1
  29. package/dist/api/requirement.d.ts +0 -1
  30. package/dist/api/requirement.d.ts.map +0 -1
  31. package/dist/api/requirement.js +0 -2
  32. package/dist/api/requirement.js.map +0 -1
  33. package/dist/apm-dotenv.d.ts +0 -8
  34. package/dist/apm-dotenv.d.ts.map +0 -1
  35. package/dist/apm-dotenv.js +0 -73
  36. package/dist/apm-dotenv.js.map +0 -1
  37. package/dist/cli/agent-stream-log.d.ts +0 -41
  38. package/dist/cli/agent-stream-log.d.ts.map +0 -1
  39. package/dist/cli/agent-stream-log.js +0 -364
  40. package/dist/cli/agent-stream-log.js.map +0 -1
  41. package/dist/cli/commands/auth.d.ts +0 -3
  42. package/dist/cli/commands/auth.d.ts.map +0 -1
  43. package/dist/cli/commands/auth.js +0 -51
  44. package/dist/cli/commands/auth.js.map +0 -1
  45. package/dist/cli/commands/chat.d.ts +0 -3
  46. package/dist/cli/commands/chat.d.ts.map +0 -1
  47. package/dist/cli/commands/chat.js +0 -32
  48. package/dist/cli/commands/chat.js.map +0 -1
  49. package/dist/cli/commands/comment.d.ts +0 -3
  50. package/dist/cli/commands/comment.d.ts.map +0 -1
  51. package/dist/cli/commands/comment.js +0 -66
  52. package/dist/cli/commands/comment.js.map +0 -1
  53. package/dist/cli/commands/config.d.ts +0 -3
  54. package/dist/cli/commands/config.d.ts.map +0 -1
  55. package/dist/cli/commands/config.js +0 -39
  56. package/dist/cli/commands/config.js.map +0 -1
  57. package/dist/cli/commands/deploy-backend.d.ts +0 -7
  58. package/dist/cli/commands/deploy-backend.d.ts.map +0 -1
  59. package/dist/cli/commands/deploy-backend.js +0 -77
  60. package/dist/cli/commands/deploy-backend.js.map +0 -1
  61. package/dist/cli/commands/deploy-frontend.d.ts +0 -3
  62. package/dist/cli/commands/deploy-frontend.d.ts.map +0 -1
  63. package/dist/cli/commands/deploy-frontend.js +0 -167
  64. package/dist/cli/commands/deploy-frontend.js.map +0 -1
  65. package/dist/cli/commands/get.d.ts +0 -3
  66. package/dist/cli/commands/get.d.ts.map +0 -1
  67. package/dist/cli/commands/get.js +0 -145
  68. package/dist/cli/commands/get.js.map +0 -1
  69. package/dist/cli/commands/init.d.ts +0 -3
  70. package/dist/cli/commands/init.d.ts.map +0 -1
  71. package/dist/cli/commands/init.js +0 -179
  72. package/dist/cli/commands/init.js.map +0 -1
  73. package/dist/cli/commands/minio.d.ts +0 -3
  74. package/dist/cli/commands/minio.d.ts.map +0 -1
  75. package/dist/cli/commands/minio.js +0 -65
  76. package/dist/cli/commands/minio.js.map +0 -1
  77. package/dist/cli/commands/publish.d.ts +0 -3
  78. package/dist/cli/commands/publish.d.ts.map +0 -1
  79. package/dist/cli/commands/publish.js +0 -130
  80. package/dist/cli/commands/publish.js.map +0 -1
  81. package/dist/cli/commands/release.d.ts +0 -3
  82. package/dist/cli/commands/release.d.ts.map +0 -1
  83. package/dist/cli/commands/release.js +0 -37
  84. package/dist/cli/commands/release.js.map +0 -1
  85. package/dist/cli/commands/requirement.d.ts +0 -3
  86. package/dist/cli/commands/requirement.d.ts.map +0 -1
  87. package/dist/cli/commands/requirement.js +0 -169
  88. package/dist/cli/commands/requirement.js.map +0 -1
  89. package/dist/cli/commands/set.d.ts +0 -3
  90. package/dist/cli/commands/set.d.ts.map +0 -1
  91. package/dist/cli/commands/set.js +0 -103
  92. package/dist/cli/commands/set.js.map +0 -1
  93. package/dist/cli/commands/status.d.ts +0 -3
  94. package/dist/cli/commands/status.d.ts.map +0 -1
  95. package/dist/cli/commands/status.js +0 -42
  96. package/dist/cli/commands/status.js.map +0 -1
  97. package/dist/cli/commands/update.d.ts +0 -3
  98. package/dist/cli/commands/update.d.ts.map +0 -1
  99. package/dist/cli/commands/update.js +0 -36
  100. package/dist/cli/commands/update.js.map +0 -1
  101. package/dist/cli/commands/ws.d.ts +0 -3
  102. package/dist/cli/commands/ws.d.ts.map +0 -1
  103. package/dist/cli/commands/ws.js +0 -25
  104. package/dist/cli/commands/ws.js.map +0 -1
  105. package/dist/cli/credentials.d.ts +0 -30
  106. package/dist/cli/credentials.d.ts.map +0 -1
  107. package/dist/cli/credentials.js +0 -52
  108. package/dist/cli/credentials.js.map +0 -1
  109. package/dist/cli/exit-api-error.d.ts +0 -2
  110. package/dist/cli/exit-api-error.d.ts.map +0 -1
  111. package/dist/cli/exit-api-error.js +0 -18
  112. package/dist/cli/exit-api-error.js.map +0 -1
  113. package/dist/cli/instruction-log-stream-sink.d.ts +0 -31
  114. package/dist/cli/instruction-log-stream-sink.d.ts.map +0 -1
  115. package/dist/cli/instruction-log-stream-sink.js +0 -59
  116. package/dist/cli/instruction-log-stream-sink.js.map +0 -1
  117. package/dist/cli/session.d.ts +0 -26
  118. package/dist/cli/session.d.ts.map +0 -1
  119. package/dist/cli/session.js +0 -41
  120. package/dist/cli/session.js.map +0 -1
  121. package/dist/cli/utils/parse.d.ts +0 -2
  122. package/dist/cli/utils/parse.d.ts.map +0 -1
  123. package/dist/cli/utils/parse.js +0 -12
  124. package/dist/cli/utils/parse.js.map +0 -1
  125. package/dist/cli/ws-run-command.d.ts +0 -13
  126. package/dist/cli/ws-run-command.d.ts.map +0 -1
  127. package/dist/cli/ws-run-command.js +0 -330
  128. package/dist/cli/ws-run-command.js.map +0 -1
  129. package/dist/cli-version.d.ts +0 -9
  130. package/dist/cli-version.d.ts.map +0 -1
  131. package/dist/cli-version.js +0 -61
  132. package/dist/cli-version.js.map +0 -1
  133. package/dist/cli.d.ts +0 -3
  134. package/dist/cli.d.ts.map +0 -1
  135. package/dist/cli.js +0 -36
  136. package/dist/cli.js.map +0 -1
  137. package/dist/config-store.d.ts +0 -38
  138. package/dist/config-store.d.ts.map +0 -1
  139. package/dist/config-store.js +0 -131
  140. package/dist/config-store.js.map +0 -1
  141. package/dist/core/apm-config.d.ts +0 -81
  142. package/dist/core/apm-config.d.ts.map +0 -1
  143. package/dist/core/apm-config.js +0 -147
  144. package/dist/core/apm-config.js.map +0 -1
  145. package/dist/core/backend-deploy/backend-deploy-workflow.d.ts +0 -20
  146. package/dist/core/backend-deploy/backend-deploy-workflow.d.ts.map +0 -1
  147. package/dist/core/backend-deploy/backend-deploy-workflow.js +0 -86
  148. package/dist/core/backend-deploy/backend-deploy-workflow.js.map +0 -1
  149. package/dist/core/backend-deploy/command-runner.d.ts +0 -11
  150. package/dist/core/backend-deploy/command-runner.d.ts.map +0 -1
  151. package/dist/core/backend-deploy/command-runner.js +0 -47
  152. package/dist/core/backend-deploy/command-runner.js.map +0 -1
  153. package/dist/core/backend-deploy/dockerode-client/client.d.ts +0 -18
  154. package/dist/core/backend-deploy/dockerode-client/client.d.ts.map +0 -1
  155. package/dist/core/backend-deploy/dockerode-client/client.js +0 -114
  156. package/dist/core/backend-deploy/dockerode-client/client.js.map +0 -1
  157. package/dist/core/backend-deploy/dockerode-client/connection-options.d.ts +0 -6
  158. package/dist/core/backend-deploy/dockerode-client/connection-options.d.ts.map +0 -1
  159. package/dist/core/backend-deploy/dockerode-client/connection-options.js +0 -62
  160. package/dist/core/backend-deploy/dockerode-client/connection-options.js.map +0 -1
  161. package/dist/core/backend-deploy/dockerode-client/container-inspect-format.d.ts +0 -3
  162. package/dist/core/backend-deploy/dockerode-client/container-inspect-format.d.ts.map +0 -1
  163. package/dist/core/backend-deploy/dockerode-client/container-inspect-format.js +0 -23
  164. package/dist/core/backend-deploy/dockerode-client/container-inspect-format.js.map +0 -1
  165. package/dist/core/backend-deploy/dockerode-client/container-options.d.ts +0 -4
  166. package/dist/core/backend-deploy/dockerode-client/container-options.d.ts.map +0 -1
  167. package/dist/core/backend-deploy/dockerode-client/container-options.js +0 -44
  168. package/dist/core/backend-deploy/dockerode-client/container-options.js.map +0 -1
  169. package/dist/core/backend-deploy/dockerode-client/env.d.ts +0 -3
  170. package/dist/core/backend-deploy/dockerode-client/env.d.ts.map +0 -1
  171. package/dist/core/backend-deploy/dockerode-client/env.js +0 -40
  172. package/dist/core/backend-deploy/dockerode-client/env.js.map +0 -1
  173. package/dist/core/backend-deploy/dockerode-client/index.d.ts +0 -8
  174. package/dist/core/backend-deploy/dockerode-client/index.d.ts.map +0 -1
  175. package/dist/core/backend-deploy/dockerode-client/index.js +0 -17
  176. package/dist/core/backend-deploy/dockerode-client/index.js.map +0 -1
  177. package/dist/core/backend-deploy/dockerode-client/ports.d.ts +0 -9
  178. package/dist/core/backend-deploy/dockerode-client/ports.d.ts.map +0 -1
  179. package/dist/core/backend-deploy/dockerode-client/ports.js +0 -35
  180. package/dist/core/backend-deploy/dockerode-client/ports.js.map +0 -1
  181. package/dist/core/backend-deploy/dockerode-client/runtime.d.ts +0 -7
  182. package/dist/core/backend-deploy/dockerode-client/runtime.d.ts.map +0 -1
  183. package/dist/core/backend-deploy/dockerode-client/runtime.js +0 -26
  184. package/dist/core/backend-deploy/dockerode-client/runtime.js.map +0 -1
  185. package/dist/core/backend-deploy/dockerode-client/types.d.ts +0 -64
  186. package/dist/core/backend-deploy/dockerode-client/types.d.ts.map +0 -1
  187. package/dist/core/backend-deploy/dockerode-client/types.js +0 -3
  188. package/dist/core/backend-deploy/dockerode-client/types.js.map +0 -1
  189. package/dist/core/backend-deploy/image-tag.d.ts +0 -2
  190. package/dist/core/backend-deploy/image-tag.d.ts.map +0 -1
  191. package/dist/core/backend-deploy/image-tag.js +0 -15
  192. package/dist/core/backend-deploy/image-tag.js.map +0 -1
  193. package/dist/core/backend-deploy/index.d.ts +0 -3
  194. package/dist/core/backend-deploy/index.d.ts.map +0 -1
  195. package/dist/core/backend-deploy/index.js +0 -6
  196. package/dist/core/backend-deploy/index.js.map +0 -1
  197. package/dist/core/backend-deploy/local-docker-build.d.ts +0 -8
  198. package/dist/core/backend-deploy/local-docker-build.d.ts.map +0 -1
  199. package/dist/core/backend-deploy/local-docker-build.js +0 -25
  200. package/dist/core/backend-deploy/local-docker-build.js.map +0 -1
  201. package/dist/core/backend-deploy/logger.d.ts +0 -10
  202. package/dist/core/backend-deploy/logger.d.ts.map +0 -1
  203. package/dist/core/backend-deploy/logger.js +0 -22
  204. package/dist/core/backend-deploy/logger.js.map +0 -1
  205. package/dist/core/backend-deploy/registry-login-push.d.ts +0 -24
  206. package/dist/core/backend-deploy/registry-login-push.d.ts.map +0 -1
  207. package/dist/core/backend-deploy/registry-login-push.js +0 -37
  208. package/dist/core/backend-deploy/registry-login-push.js.map +0 -1
  209. package/dist/core/backend-deploy/remote-docker-client.d.ts +0 -11
  210. package/dist/core/backend-deploy/remote-docker-client.d.ts.map +0 -1
  211. package/dist/core/backend-deploy/remote-docker-client.js +0 -34
  212. package/dist/core/backend-deploy/remote-docker-client.js.map +0 -1
  213. package/dist/core/backend-deploy/remote-pull-image.d.ts +0 -9
  214. package/dist/core/backend-deploy/remote-pull-image.d.ts.map +0 -1
  215. package/dist/core/backend-deploy/remote-pull-image.js +0 -39
  216. package/dist/core/backend-deploy/remote-pull-image.js.map +0 -1
  217. package/dist/core/backend-deploy/resolve-dockerfile.d.ts +0 -7
  218. package/dist/core/backend-deploy/resolve-dockerfile.d.ts.map +0 -1
  219. package/dist/core/backend-deploy/resolve-dockerfile.js +0 -24
  220. package/dist/core/backend-deploy/resolve-dockerfile.js.map +0 -1
  221. package/dist/core/backend-deploy/run-docker-cli.d.ts +0 -9
  222. package/dist/core/backend-deploy/run-docker-cli.d.ts.map +0 -1
  223. package/dist/core/backend-deploy/run-docker-cli.js +0 -14
  224. package/dist/core/backend-deploy/run-docker-cli.js.map +0 -1
  225. package/dist/core/backend-deploy/types.d.ts +0 -23
  226. package/dist/core/backend-deploy/types.d.ts.map +0 -1
  227. package/dist/core/backend-deploy/types.js +0 -3
  228. package/dist/core/backend-deploy/types.js.map +0 -1
  229. package/dist/core/branch-name.d.ts +0 -8
  230. package/dist/core/branch-name.d.ts.map +0 -1
  231. package/dist/core/branch-name.js +0 -37
  232. package/dist/core/branch-name.js.map +0 -1
  233. package/dist/core/constants.d.ts +0 -4
  234. package/dist/core/constants.d.ts.map +0 -1
  235. package/dist/core/constants.js +0 -16
  236. package/dist/core/constants.js.map +0 -1
  237. package/dist/core/cursor-cmd.d.ts +0 -30
  238. package/dist/core/cursor-cmd.d.ts.map +0 -1
  239. package/dist/core/cursor-cmd.js +0 -193
  240. package/dist/core/cursor-cmd.js.map +0 -1
  241. package/dist/core/minio.d.ts +0 -37
  242. package/dist/core/minio.d.ts.map +0 -1
  243. package/dist/core/minio.js +0 -159
  244. package/dist/core/minio.js.map +0 -1
  245. package/dist/core/parse-testcase-md.d.ts +0 -17
  246. package/dist/core/parse-testcase-md.d.ts.map +0 -1
  247. package/dist/core/parse-testcase-md.js +0 -79
  248. package/dist/core/parse-testcase-md.js.map +0 -1
  249. package/dist/core/std-event-handler.d.ts +0 -25
  250. package/dist/core/std-event-handler.d.ts.map +0 -1
  251. package/dist/core/std-event-handler.js +0 -90
  252. package/dist/core/std-event-handler.js.map +0 -1
  253. package/dist/core/utils.d.ts +0 -19
  254. package/dist/core/utils.d.ts.map +0 -1
  255. package/dist/core/utils.js +0 -71
  256. package/dist/core/utils.js.map +0 -1
  257. package/dist/core/ws-client.d.ts +0 -29
  258. package/dist/core/ws-client.d.ts.map +0 -1
  259. package/dist/core/ws-client.js +0 -81
  260. package/dist/core/ws-client.js.map +0 -1
  261. package/dist/employee-ws-client.d.ts +0 -42
  262. package/dist/employee-ws-client.d.ts.map +0 -1
  263. package/dist/employee-ws-client.js +0 -99
  264. package/dist/employee-ws-client.js.map +0 -1
  265. package/dist/index.d.ts +0 -6
  266. package/dist/index.d.ts.map +0 -1
  267. package/dist/index.js.map +0 -1
  268. package/templates/commands/apm-auto-dev.md +0 -6
  269. package/templates/commands/apm-fixbug.md +0 -6
  270. package/templates/commands/apm-prd-review.md +0 -6
  271. package/templates/commands/apm-prd-sync.md +0 -6
  272. package/templates/skills/apm-apply-change/SKILL.md +0 -191
  273. package/templates/skills/apm-auto-dev/SKILL.md +0 -170
  274. package/templates/skills/apm-fixbug/SKILL.md +0 -97
  275. package/templates/skills/apm-propose/SKILL.md +0 -123
  276. package/templates/skills/apm-propose/design-instruction.md +0 -94
  277. package/templates/skills/apm-propose/propose-instruction.md +0 -81
  278. package/templates/skills/apm-propose/specs-instruction.md +0 -114
  279. package/templates/skills/apm-propose/tasks-instruction.md +0 -90
  280. package/templates/skills/apm-release/SKILL.md +0 -87
  281. package/templates/skills/code-change-summary/SKILL.md +0 -84
  282. package/templates/skills/code-change-summary/summary-template.md +0 -55
  283. package/templates/skills/code-deploy/SKILL.md +0 -39
  284. package/templates/skills/prd-review/SKILL.md +0 -48
  285. package/templates/skills/prd-review/output-template.md +0 -47
  286. package/templates/skills/prd-sync/SKILL.md +0 -74
  287. package/templates/skills/prd-sync/updated-requirement-template.md +0 -39
  288. package/templates/skills/prd-testcase/SKILL.md +0 -82
  289. package/templates/skills/prd-testcase/reference.md +0 -44
  290. package/templates/skills/product-capability-inventory/SKILL.md +0 -131
  291. package/templates/skills/product-capability-inventory/template.md +0 -80
  292. package/templates/skills/product-capability-inventory//344/275/277/347/224/250/350/257/264/346/230/216/344/271/246.md +0 -36
  293. package/templates/skills/product-capability-inventory//347/233/256/345/275/225/350/247/204/350/214/203.md +0 -58
@@ -1,81 +0,0 @@
1
- export type ApmRuntimeConfig = {
2
- auth: {
3
- id: number;
4
- token: string;
5
- };
6
- server: {
7
- url: string;
8
- wsPort: number;
9
- };
10
- };
11
- /** 后端镜像部署(`apm deploy-backend`),连接信息放在此节,由你在 `.apm/apm.config.json` 中填写 */
12
- export type ApmBackendDeploy = {
13
- registryHost: string;
14
- registryUser: string;
15
- registryPassword: string;
16
- registryNamespace: string;
17
- remoteHost: string;
18
- remotePort: number;
19
- remoteProtocol?: "https" | "http";
20
- /** 可选;空字符串表示未配置 */
21
- caPath?: string;
22
- certPath?: string;
23
- keyPath?: string;
24
- containerPortsMappings?: string[];
25
- envFilePath?: string;
26
- /**
27
- * 远程 Docker 上已存在的**用户自定义网络**名称;非空时新容器会加入该网络,便于与 Nginx 网关在
28
- * 同一网络内用容器名互访。需事先在宿主机执行 `docker network create <name>`,且网关容器也要
29
- * `docker network connect` 到同一张网。
30
- */
31
- dockerNetwork?: string;
32
- };
33
- export type ApmConfig = {
34
- /**
35
- * 项目/镜像短名(**不含 tag**),供 `apm deploy-backend` 拼成
36
- * `registryHost/registryNamespace/name:tag`。
37
- */
38
- name?: string;
39
- /** 前端发布(MinIO 等),与 `apm deploy-frontend` 一致;服务端 `/cli/variables/get` 同步此节 */
40
- frontendDeploy: {
41
- endpoint: string;
42
- port: number;
43
- useSsl: boolean;
44
- bucket: string;
45
- accessKey: string;
46
- secretKey: string;
47
- };
48
- /** 缺省时在解析时与默认合并 */
49
- backendDeploy?: ApmBackendDeploy;
50
- } & ApmRuntimeConfig;
51
- /**
52
- * 读取并校验 `apm.config.json` 中的 `backendDeploy` 与顶层 `name`,供 `deploy-backend` 使用。
53
- * 必填项缺失或非法时抛出带说明的 Error。
54
- */
55
- export declare function resolveBackendDeployFromApmConfig(cfg: ApmConfig): {
56
- registryHost: string;
57
- registryNamespace: string;
58
- registryUser: string;
59
- registryPassword: string;
60
- remoteHost: string;
61
- remotePort: number;
62
- remoteProtocol: "https" | "http";
63
- caPath?: string;
64
- certPath?: string;
65
- keyPath?: string;
66
- /** 不含 registry 与 namespace 的镜像短名,来自配置顶层 {@link ApmConfig.name} */
67
- name: string;
68
- containerPortsMappings?: string[];
69
- envFilePath?: string;
70
- dockerNetwork?: string;
71
- };
72
- export type LoadApmConfigOptions = {
73
- /** 自定义 `apm.config.json` 路径(相对当前工作目录或绝对路径);缺省为 `<cwd>/.apm/apm.config.json` */
74
- configPath?: string;
75
- };
76
- export declare function loadApmConfig(options?: LoadApmConfigOptions): ApmConfig;
77
- export declare function saveApmToken(token: string): void;
78
- export declare function createApmRuntimeConfig(options: ApmRuntimeConfig): void;
79
- export declare function getApmRuntimeConfig(): ApmRuntimeConfig;
80
- export declare function isApmRuntimeConfigExists(): boolean;
81
- //# sourceMappingURL=apm-config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"apm-config.d.ts","sourceRoot":"","sources":["../../src/core/apm-config.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,CAAC;AAEF,2EAA2E;AAC3E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAClC,mBAAmB;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,cAAc,EAAE;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,OAAO,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,mBAAmB;IACnB,aAAa,CAAC,EAAE,gBAAgB,CAAC;CAClC,GAAG,gBAAgB,CAAC;AAkBrB;;;GAGG;AACH,wBAAgB,iCAAiC,CAAC,GAAG,EAAE,SAAS,GAAG;IACjE,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CA6EA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAOF,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAcvE;AASD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,QAWzC;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,gBAAgB,QAG/D;AAED,wBAAgB,mBAAmB,qBAQlC;AAED,wBAAgB,wBAAwB,YAMvC"}
@@ -1,147 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.resolveBackendDeployFromApmConfig = resolveBackendDeployFromApmConfig;
7
- exports.loadApmConfig = loadApmConfig;
8
- exports.saveApmToken = saveApmToken;
9
- exports.createApmRuntimeConfig = createApmRuntimeConfig;
10
- exports.getApmRuntimeConfig = getApmRuntimeConfig;
11
- exports.isApmRuntimeConfigExists = isApmRuntimeConfigExists;
12
- const node_path_1 = __importDefault(require("node:path"));
13
- const node_fs_1 = require("node:fs");
14
- const node_process_1 = require("node:process");
15
- const constants_1 = require("./constants");
16
- const DEFAULT_BACKEND_DEPLOY = {
17
- registryHost: "",
18
- registryUser: "",
19
- registryNamespace: "",
20
- registryPassword: "",
21
- remoteHost: "",
22
- remotePort: 2376,
23
- remoteProtocol: "https",
24
- caPath: "",
25
- certPath: "",
26
- keyPath: "",
27
- containerPortsMappings: [],
28
- envFilePath: "",
29
- dockerNetwork: "",
30
- };
31
- /**
32
- * 读取并校验 `apm.config.json` 中的 `backendDeploy` 与顶层 `name`,供 `deploy-backend` 使用。
33
- * 必填项缺失或非法时抛出带说明的 Error。
34
- */
35
- function resolveBackendDeployFromApmConfig(cfg) {
36
- const b = { ...DEFAULT_BACKEND_DEPLOY, ...cfg.backendDeploy };
37
- const registryHost = b.registryHost.trim();
38
- const registryUser = b.registryUser.trim();
39
- const registryPassword = b.registryPassword.trim();
40
- const remoteHost = b.remoteHost.trim();
41
- const registryNamespace = b.registryNamespace.trim();
42
- if (!registryHost) {
43
- throw new Error("请在 .apm/apm.config.json 的 backendDeploy.registryHost 中配置镜像仓库主机名");
44
- }
45
- if (!registryUser) {
46
- throw new Error("请在 .apm/apm.config.json 的 backendDeploy.registryUser 中配置 Registry 用户名");
47
- }
48
- if (!registryPassword) {
49
- throw new Error("请在 .apm/apm.config.json 的 backendDeploy.registryPassword 中配置 Registry 密码");
50
- }
51
- if (!remoteHost) {
52
- throw new Error("请在 .apm/apm.config.json 的 backendDeploy.remoteHost 中配置远程 Docker 地址");
53
- }
54
- const remotePort = Number(b.remotePort);
55
- if (!Number.isFinite(remotePort) || remotePort < 1 || remotePort > 65535) {
56
- throw new Error("请在 .apm/apm.config.json 的 backendDeploy.remotePort 中配置合法端口(1–65535)");
57
- }
58
- const protocol = b.remoteProtocol === "http"
59
- ? "http"
60
- : b.remoteProtocol === "https"
61
- ? "https"
62
- : (() => {
63
- throw new Error("backendDeploy.remoteProtocol 仅支持 https 或 http");
64
- })();
65
- const trimOrUndef = (s) => {
66
- const t = (s ?? "").trim();
67
- return t.length > 0 ? t : undefined;
68
- };
69
- const name = (cfg.name ?? "").trim();
70
- if (!name) {
71
- throw new Error("请在 .apm/apm.config.json 顶层配置 name(镜像短名,不含 tag;将与 registryHost、registryNamespace 拼接)");
72
- }
73
- if (name.includes(":")) {
74
- throw new Error("apm.config.json 的 name 不应包含 tag(不能出现 ':'),tag 由 `apm deploy-backend` 的位置参数 `<name>` 指定");
75
- }
76
- return {
77
- registryHost,
78
- registryNamespace,
79
- registryUser,
80
- registryPassword,
81
- remoteHost,
82
- remotePort,
83
- remoteProtocol: protocol,
84
- caPath: trimOrUndef(b.caPath),
85
- certPath: trimOrUndef(b.certPath),
86
- keyPath: trimOrUndef(b.keyPath),
87
- containerPortsMappings: b.containerPortsMappings,
88
- envFilePath: b.envFilePath,
89
- dockerNetwork: trimOrUndef(b.dockerNetwork),
90
- name,
91
- };
92
- }
93
- function resolveApmConfigLoadPath(configPath = ".apm") {
94
- const t = configPath?.trim();
95
- return node_path_1.default.join((0, node_process_1.cwd)(), t, "/apm.config.json");
96
- }
97
- function loadApmConfig(options) {
98
- try {
99
- const p = resolveApmConfigLoadPath(options?.configPath);
100
- if (!(0, node_fs_1.existsSync)(p)) {
101
- console.error(`配置文件不存在:${p}`);
102
- process.exit(1);
103
- }
104
- const runtimeConfig = getApmRuntimeConfig();
105
- const raw = JSON.parse((0, node_fs_1.readFileSync)(p, "utf8"));
106
- return { ...runtimeConfig, ...raw };
107
- }
108
- catch (e) {
109
- console.error(e);
110
- process.exit(1);
111
- }
112
- }
113
- function ensureParentDirForFile(filePath) {
114
- const dir = node_path_1.default.dirname(filePath);
115
- if (!(0, node_fs_1.existsSync)(dir)) {
116
- (0, node_fs_1.mkdirSync)(dir, { recursive: true });
117
- }
118
- }
119
- function saveApmToken(token) {
120
- const currentConfig = getApmRuntimeConfig();
121
- if (Object.keys(currentConfig).length === 0) {
122
- throw new Error("APM 配置不存在");
123
- }
124
- currentConfig.auth.token = token;
125
- ensureParentDirForFile(constants_1.APM_RUNTIME_CONFIG_PATH);
126
- (0, node_fs_1.writeFileSync)(constants_1.APM_RUNTIME_CONFIG_PATH, JSON.stringify(currentConfig, null, 2));
127
- }
128
- function createApmRuntimeConfig(options) {
129
- ensureParentDirForFile(constants_1.APM_RUNTIME_CONFIG_PATH);
130
- (0, node_fs_1.writeFileSync)(constants_1.APM_RUNTIME_CONFIG_PATH, JSON.stringify(options, null, 2));
131
- }
132
- function getApmRuntimeConfig() {
133
- if (!isApmRuntimeConfigExists()) {
134
- throw new Error("APM 配置不存在");
135
- }
136
- const raw = JSON.parse((0, node_fs_1.readFileSync)(constants_1.APM_RUNTIME_CONFIG_PATH, "utf8"));
137
- return raw;
138
- }
139
- function isApmRuntimeConfigExists() {
140
- try {
141
- return (0, node_fs_1.statSync)(constants_1.APM_RUNTIME_CONFIG_PATH).isFile();
142
- }
143
- catch {
144
- return false;
145
- }
146
- }
147
- //# sourceMappingURL=apm-config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"apm-config.js","sourceRoot":"","sources":["../../src/core/apm-config.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- import type { BackendDeployParams } from "./types";
2
- /**
3
- * 后端镜像部署编排:本地构建 → 推送私有 Registry → 远程 Docker 拉取镜像。
4
- *
5
- * 与常见「Deployer」脚本对应关系:本地 `docker build` + `docker login` + `docker push`
6
- * 在这里拆成独立步骤;镜像名在 CLI 侧已拼成完整 `imageRef`(等价于先 build -t 再 tag 成仓库地址)。
7
- * 远程 `docker pull` 用 dockerode 调用远程引擎 API(参考代码若只操作本机则不会包含这一步)。
8
- *
9
- * 配置由 {@link BackendDeployParams} 传入(例如从 `.apm/apm.config.json` 映射)。
10
- */
11
- export declare class BackendDeployWorkflow {
12
- private readonly params;
13
- constructor(params: BackendDeployParams);
14
- /**
15
- * @param cwd - 解析相对路径时的基准目录(Dockerfile)
16
- */
17
- run(cwd: string): Promise<void>;
18
- deployRemoteContainer(cwd: string): Promise<void>;
19
- }
20
- //# sourceMappingURL=backend-deploy-workflow.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"backend-deploy-workflow.d.ts","sourceRoot":"","sources":["../../../src/core/backend-deploy/backend-deploy-workflow.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAGnD;;;;;;;;GAQG;AACH,qBAAa,qBAAqB;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,mBAAmB;IAExD;;OAEG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM;IAUf,qBAAqB,CAAC,GAAG,EAAE,MAAM;CAiDxC"}
@@ -1,86 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.BackendDeployWorkflow = void 0;
7
- const node_path_1 = __importDefault(require("node:path"));
8
- const dockerode_client_1 = require("./dockerode-client");
9
- const image_tag_1 = require("./image-tag");
10
- const local_docker_build_1 = require("./local-docker-build");
11
- const logger_1 = require("./logger");
12
- const registry_login_push_1 = require("./registry-login-push");
13
- const resolve_dockerfile_1 = require("./resolve-dockerfile");
14
- const env_1 = require("./dockerode-client/env");
15
- /**
16
- * 后端镜像部署编排:本地构建 → 推送私有 Registry → 远程 Docker 拉取镜像。
17
- *
18
- * 与常见「Deployer」脚本对应关系:本地 `docker build` + `docker login` + `docker push`
19
- * 在这里拆成独立步骤;镜像名在 CLI 侧已拼成完整 `imageRef`(等价于先 build -t 再 tag 成仓库地址)。
20
- * 远程 `docker pull` 用 dockerode 调用远程引擎 API(参考代码若只操作本机则不会包含这一步)。
21
- *
22
- * 配置由 {@link BackendDeployParams} 传入(例如从 `.apm/apm.config.json` 映射)。
23
- */
24
- class BackendDeployWorkflow {
25
- params;
26
- constructor(params) {
27
- this.params = params;
28
- }
29
- /**
30
- * @param cwd - 解析相对路径时的基准目录(Dockerfile)
31
- */
32
- async run(cwd) {
33
- (0, resolve_dockerfile_1.resolveDockerBuildPaths)(cwd);
34
- (0, image_tag_1.assertDeployImageTag)(this.params.tag);
35
- (0, local_docker_build_1.buildDockerImageLocally)(this.params, cwd);
36
- (0, registry_login_push_1.dockerLoginPrivateRegistry)(this.params, cwd);
37
- (0, registry_login_push_1.dockerTagImage)(this.params, cwd);
38
- (0, registry_login_push_1.dockerPushImage)(this.params, cwd);
39
- await this.deployRemoteContainer(cwd);
40
- }
41
- async deployRemoteContainer(cwd) {
42
- const remoteClient = (0, dockerode_client_1.createDockerodeClient)({
43
- host: this.params.remoteHost,
44
- port: this.params.remotePort,
45
- protocol: this.params.remoteProtocol,
46
- ca: this.params.remoteCaPath,
47
- cert: this.params.remoteCertPath,
48
- key: this.params.remoteKeyPath,
49
- });
50
- const serveraddress = `https://${this.params.registryHost}`;
51
- const image = `${this.params.registryHost}/${this.params.registryNamespace}/${this.params.image}:${this.params.tag}`;
52
- const containerName = `${this.params.image}.${this.params.tag}`;
53
- const existingContainerId = await remoteClient.findContainerIdByName(containerName);
54
- if (existingContainerId) {
55
- logger_1.Logger.info(`远程容器「${containerName}」已存在,正在停止并删除容器...`);
56
- await remoteClient.stopContainer(existingContainerId);
57
- await remoteClient.removeContainer(existingContainerId);
58
- }
59
- if (await remoteClient.imageExists(image)) {
60
- logger_1.Logger.info("远程已存在同名镜像,正在删除以便重新拉取...");
61
- await remoteClient.removeImage(image);
62
- }
63
- await remoteClient.pullImage(image, {
64
- username: this.params.registryUser,
65
- password: this.params.registryPassword,
66
- serveraddress,
67
- });
68
- logger_1.Logger.success("远程拉取镜像完成");
69
- const envFilePath = node_path_1.default.resolve(cwd, this.params.envFilePath || ".env");
70
- const envObj = (0, dockerode_client_1.loadEnvFromFile)(envFilePath);
71
- if (this.params.dockerNetwork?.trim()) {
72
- logger_1.Logger.info(`远程容器将加入 Docker 网络:${this.params.dockerNetwork.trim()}`);
73
- }
74
- const containerId = await remoteClient.createContainer({
75
- name: containerName,
76
- image,
77
- env: (0, env_1.toEnvArray)(envObj),
78
- ...(0, dockerode_client_1.parsePorts)(this.params.containerPortsMappings),
79
- dockerNetwork: this.params.dockerNetwork,
80
- });
81
- await remoteClient.startContainer(containerId);
82
- logger_1.Logger.success("远程容器创建并启动完成");
83
- }
84
- }
85
- exports.BackendDeployWorkflow = BackendDeployWorkflow;
86
- //# sourceMappingURL=backend-deploy-workflow.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"backend-deploy-workflow.js","sourceRoot":"","sources":["../../../src/core/backend-deploy/backend-deploy-workflow.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- export declare class CommandRunner {
2
- /**
3
- * 执行命令
4
- */
5
- static exec(command: string, cwd?: string): string;
6
- /**
7
- * 执行命令并显示输出
8
- */
9
- static execWithOutput(command: string, cwd?: string): void;
10
- }
11
- //# sourceMappingURL=command-runner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"command-runner.d.ts","sourceRoot":"","sources":["../../../src/core/backend-deploy/command-runner.ts"],"names":[],"mappings":"AAMA,qBAAa,aAAa;IACxB;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM;IAgBlD;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;CAY3D"}
@@ -1,47 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CommandRunner = void 0;
4
- /**
5
- * 命令执行工具类
6
- */
7
- const child_process_1 = require("child_process");
8
- const logger_1 = require("./logger");
9
- class CommandRunner {
10
- /**
11
- * 执行命令
12
- */
13
- static exec(command, cwd) {
14
- try {
15
- logger_1.Logger.info(`执行命令: ${command}`);
16
- const result = (0, child_process_1.execSync)(command, {
17
- cwd,
18
- encoding: "utf8",
19
- stdio: "pipe",
20
- });
21
- return result.toString().trim();
22
- }
23
- catch (error) {
24
- logger_1.Logger.error(`命令执行失败: ${command}`);
25
- logger_1.Logger.error(error.message);
26
- throw error;
27
- }
28
- }
29
- /**
30
- * 执行命令并显示输出
31
- */
32
- static execWithOutput(command, cwd) {
33
- try {
34
- logger_1.Logger.info(`执行命令: ${command}`);
35
- (0, child_process_1.execSync)(command, {
36
- cwd,
37
- stdio: "inherit",
38
- });
39
- }
40
- catch (error) {
41
- logger_1.Logger.error(`命令执行失败: ${command}`);
42
- throw error;
43
- }
44
- }
45
- }
46
- exports.CommandRunner = CommandRunner;
47
- //# sourceMappingURL=command-runner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"command-runner.js","sourceRoot":"","sources":["../../../src/core/backend-deploy/command-runner.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,iDAAyC;AACzC,qCAAkC;AAElC,MAAa,aAAa;IACxB;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,OAAe,EAAE,GAAY;QACvC,IAAI,CAAC;YACH,eAAM,CAAC,IAAI,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC;YAChC,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,OAAO,EAAE;gBAC/B,GAAG;gBACH,QAAQ,EAAE,MAAM;gBAChB,KAAK,EAAE,MAAM;aACd,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QAClC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,eAAM,CAAC,KAAK,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC;YACnC,eAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5B,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,OAAe,EAAE,GAAY;QACjD,IAAI,CAAC;YACH,eAAM,CAAC,IAAI,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC;YAChC,IAAA,wBAAQ,EAAC,OAAO,EAAE;gBAChB,GAAG;gBACH,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,eAAM,CAAC,KAAK,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC;YACnC,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF;AAnCD,sCAmCC"}
@@ -1,18 +0,0 @@
1
- import type { DockerContainerStateSummary, DockerCreateContainerInput, DockerodeClientFactory, DockerodeClientPort, DockerDeployConnectionConfig, DockerPullAuth } from "./types";
2
- export declare class DockerodeClient implements DockerodeClientPort {
3
- private readonly client;
4
- constructor(config: DockerDeployConnectionConfig);
5
- ping(): Promise<void>;
6
- imageExists(image: string): Promise<boolean>;
7
- removeImage(image: string): Promise<void>;
8
- pullImage(image: string, auth?: DockerPullAuth): Promise<void>;
9
- findContainerIdByName(name: string): Promise<string | undefined>;
10
- stopContainer(id: string): Promise<void>;
11
- removeContainer(id: string): Promise<void>;
12
- createContainer(input: DockerCreateContainerInput): Promise<string>;
13
- startContainer(id: string): Promise<void>;
14
- inspectContainer(id: string): Promise<DockerContainerStateSummary>;
15
- getContainerLogs(id: string, tail?: number): Promise<string>;
16
- }
17
- export declare const createDockerodeClient: DockerodeClientFactory;
18
- //# sourceMappingURL=client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/core/backend-deploy/dockerode-client/client.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,2BAA2B,EAC3B,0BAA0B,EAC1B,sBAAsB,EACtB,mBAAmB,EACnB,4BAA4B,EAC5B,cAAc,EACf,MAAM,SAAS,CAAC;AAEjB,qBAAa,eAAgB,YAAW,mBAAmB;IACzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,MAAM,EAAE,4BAA4B;IAK1C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS5C,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B9D,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAQhE,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASxC,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK1C,eAAe,CAAC,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC,MAAM,CAAC;IAMnE,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzC,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAiBlE,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,SAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAchE;AAED,eAAO,MAAM,qBAAqB,EAAE,sBACP,CAAC"}
@@ -1,114 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createDockerodeClient = exports.DockerodeClient = void 0;
7
- const dockerode_1 = __importDefault(require("dockerode"));
8
- const connection_options_1 = require("./connection-options");
9
- const container_inspect_format_1 = require("./container-inspect-format");
10
- const container_options_1 = require("./container-options");
11
- class DockerodeClient {
12
- client;
13
- constructor(config) {
14
- const options = (0, connection_options_1.toDockerConnectionOptions)(config);
15
- this.client = new dockerode_1.default(options);
16
- }
17
- async ping() {
18
- await this.client.ping();
19
- }
20
- async imageExists(image) {
21
- try {
22
- await this.client.getImage(image).inspect();
23
- return true;
24
- }
25
- catch {
26
- return false;
27
- }
28
- }
29
- async removeImage(image) {
30
- await this.client.getImage(image).remove({ force: true });
31
- }
32
- async pullImage(image, auth) {
33
- const stream = await new Promise((resolve, reject) => {
34
- const pullOptions = auth ? { authconfig: auth } : undefined;
35
- this.client.pull(image, pullOptions, (err, output) => {
36
- if (err || !output) {
37
- reject(err ?? new Error("docker pull 返回空输出"));
38
- return;
39
- }
40
- resolve(output);
41
- });
42
- });
43
- await new Promise((resolve, reject) => {
44
- this.client.modem.followProgress(stream, (err) => {
45
- if (err) {
46
- reject(err);
47
- return;
48
- }
49
- resolve();
50
- }, () => undefined);
51
- });
52
- }
53
- async findContainerIdByName(name) {
54
- const containers = await this.client.listContainers({ all: true });
55
- const matched = containers.find((item) => (item.Names ?? []).some((n) => n === `/${name}`));
56
- return matched?.Id;
57
- }
58
- async stopContainer(id) {
59
- const container = this.client.getContainer(id);
60
- try {
61
- await container.stop();
62
- }
63
- catch {
64
- // Container may already be stopped.
65
- }
66
- }
67
- async removeContainer(id) {
68
- const container = this.client.getContainer(id);
69
- await container.remove({ force: true });
70
- }
71
- async createContainer(input) {
72
- const payload = (0, container_options_1.toContainerCreateOptions)(input);
73
- const container = await this.client.createContainer(payload);
74
- return container.id;
75
- }
76
- async startContainer(id) {
77
- const container = this.client.getContainer(id);
78
- await container.start();
79
- }
80
- async inspectContainer(id) {
81
- const container = this.client.getContainer(id);
82
- const inspectInfo = await container.inspect();
83
- const state = inspectInfo?.State;
84
- const portMappings = (0, container_inspect_format_1.formatPortMappings)(inspectInfo);
85
- return {
86
- running: state?.Running,
87
- status: state?.Status,
88
- exitCode: state?.ExitCode,
89
- error: state?.Error,
90
- startedAt: state?.StartedAt,
91
- finishedAt: state?.FinishedAt,
92
- health: state?.Health?.Status,
93
- portMappings,
94
- };
95
- }
96
- async getContainerLogs(id, tail = 100) {
97
- const container = this.client.getContainer(id);
98
- const logs = await container.logs({
99
- stdout: true,
100
- stderr: true,
101
- timestamps: true,
102
- follow: false,
103
- tail,
104
- });
105
- if (typeof logs === "string") {
106
- return logs;
107
- }
108
- return logs.toString("utf8");
109
- }
110
- }
111
- exports.DockerodeClient = DockerodeClient;
112
- const createDockerodeClient = (config) => new DockerodeClient(config);
113
- exports.createDockerodeClient = createDockerodeClient;
114
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/core/backend-deploy/dockerode-client/client.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import type { DockerDeployConnectionConfig } from "./types";
2
- /**
3
- * 将通用连接配置转为 dockerode 可用的 modem 选项(含可选 TLS)。
4
- */
5
- export declare function toDockerConnectionOptions(config: DockerDeployConnectionConfig): Record<string, unknown>;
6
- //# sourceMappingURL=connection-options.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"connection-options.d.ts","sourceRoot":"","sources":["../../../../src/core/backend-deploy/dockerode-client/connection-options.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAC;AAuB5D;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,4BAA4B,GACnC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA+BzB"}
@@ -1,62 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.toDockerConnectionOptions = toDockerConnectionOptions;
7
- const node_fs_1 = require("node:fs");
8
- const node_path_1 = __importDefault(require("node:path"));
9
- function asOptionalTlsBuffer(value) {
10
- if (typeof value !== "string") {
11
- console.log("tls filepath not exist");
12
- return undefined;
13
- }
14
- console.log("tls filepath", node_path_1.default.join(process.cwd(), value));
15
- const normalized = value.trim();
16
- if (normalized === "") {
17
- return undefined;
18
- }
19
- if ((0, node_fs_1.existsSync)(normalized)) {
20
- return (0, node_fs_1.readFileSync)(normalized);
21
- }
22
- const looksLikePath = /[\\/]/.test(normalized) || normalized.endsWith(".pem");
23
- if (looksLikePath) {
24
- throw new Error(`TLS 证书文件不存在:${normalized}`);
25
- }
26
- return Buffer.from(normalized);
27
- }
28
- /**
29
- * 将通用连接配置转为 dockerode 可用的 modem 选项(含可选 TLS)。
30
- */
31
- function toDockerConnectionOptions(config) {
32
- const protocol = (config.protocol ?? "https").toLowerCase();
33
- const isHttps = protocol === "https";
34
- const options = {
35
- host: config.host ?? "127.0.0.1",
36
- port: config.port ?? 2376,
37
- protocol,
38
- };
39
- const socketPath = (config.socketPath ?? "").trim();
40
- if (socketPath !== "") {
41
- options.socketPath = socketPath;
42
- }
43
- if (isHttps) {
44
- const tlsOptions = {
45
- ca: asOptionalTlsBuffer(config.ca),
46
- cert: asOptionalTlsBuffer(config.cert),
47
- key: asOptionalTlsBuffer(config.key),
48
- };
49
- if (tlsOptions.ca) {
50
- options.ca = tlsOptions.ca;
51
- }
52
- if (tlsOptions.cert) {
53
- options.cert = tlsOptions.cert;
54
- }
55
- if (tlsOptions.key) {
56
- options.key = tlsOptions.key;
57
- }
58
- options.checkServerIdentity = () => undefined;
59
- }
60
- return options;
61
- }
62
- //# sourceMappingURL=connection-options.js.map