@sfdxy/anypoint-connect 0.14.0 → 0.16.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 (278) hide show
  1. package/README.md +39 -16
  2. package/dist/analysis/LogAnalyzer.d.ts +10 -4
  3. package/dist/analysis/LogAnalyzer.d.ts.map +1 -1
  4. package/dist/analysis/LogAnalyzer.js +29 -18
  5. package/dist/analysis/LogAnalyzer.js.map +1 -1
  6. package/dist/analysis/error-context.d.ts +2 -0
  7. package/dist/analysis/error-context.d.ts.map +1 -1
  8. package/dist/analysis/error-context.js +2 -1
  9. package/dist/analysis/error-context.js.map +1 -1
  10. package/dist/analysis/error-grouper.js +1 -1
  11. package/dist/analysis/error-grouper.js.map +1 -1
  12. package/dist/analysis/filter.d.ts +54 -0
  13. package/dist/analysis/filter.d.ts.map +1 -0
  14. package/dist/analysis/filter.js +100 -0
  15. package/dist/analysis/filter.js.map +1 -0
  16. package/dist/analysis/{utils.d.ts → normalize.d.ts} +1 -1
  17. package/dist/analysis/normalize.d.ts.map +1 -0
  18. package/dist/analysis/{utils.js → normalize.js} +2 -2
  19. package/dist/analysis/normalize.js.map +1 -0
  20. package/dist/analysis/parser.d.ts.map +1 -1
  21. package/dist/analysis/parser.js +45 -17
  22. package/dist/analysis/parser.js.map +1 -1
  23. package/dist/analysis/pattern-detector.js +1 -1
  24. package/dist/analysis/pattern-detector.js.map +1 -1
  25. package/dist/analysis/stats.d.ts +25 -0
  26. package/dist/analysis/stats.d.ts.map +1 -1
  27. package/dist/analysis/stats.js +35 -1
  28. package/dist/analysis/stats.js.map +1 -1
  29. package/dist/analysis/summary.d.ts +51 -0
  30. package/dist/analysis/summary.d.ts.map +1 -0
  31. package/dist/analysis/summary.js +47 -0
  32. package/dist/analysis/summary.js.map +1 -0
  33. package/dist/analysis/types.d.ts +14 -0
  34. package/dist/analysis/types.d.ts.map +1 -1
  35. package/dist/api/ApiManagerApi.d.ts +53 -0
  36. package/dist/api/ApiManagerApi.d.ts.map +1 -1
  37. package/dist/api/ApiManagerApi.js +53 -2
  38. package/dist/api/ApiManagerApi.js.map +1 -1
  39. package/dist/api/CloudHub2Api.d.ts +24 -4
  40. package/dist/api/CloudHub2Api.d.ts.map +1 -1
  41. package/dist/api/CloudHub2Api.js +10 -22
  42. package/dist/api/CloudHub2Api.js.map +1 -1
  43. package/dist/api/DesignCenterApi.d.ts +0 -20
  44. package/dist/api/DesignCenterApi.d.ts.map +1 -1
  45. package/dist/api/DesignCenterApi.js +0 -22
  46. package/dist/api/DesignCenterApi.js.map +1 -1
  47. package/dist/api/ExchangeApi.d.ts +15 -0
  48. package/dist/api/ExchangeApi.d.ts.map +1 -1
  49. package/dist/api/ExchangeApi.js +51 -0
  50. package/dist/api/ExchangeApi.js.map +1 -1
  51. package/dist/api/LogsApi.d.ts +50 -18
  52. package/dist/api/LogsApi.d.ts.map +1 -1
  53. package/dist/api/LogsApi.js +69 -98
  54. package/dist/api/LogsApi.js.map +1 -1
  55. package/dist/api/MonitoringApi.d.ts +137 -93
  56. package/dist/api/MonitoringApi.d.ts.map +1 -1
  57. package/dist/api/MonitoringApi.js +471 -204
  58. package/dist/api/MonitoringApi.js.map +1 -1
  59. package/dist/api/RuntimesApi.d.ts +56 -0
  60. package/dist/api/RuntimesApi.d.ts.map +1 -0
  61. package/dist/api/RuntimesApi.js +58 -0
  62. package/dist/api/RuntimesApi.js.map +1 -0
  63. package/dist/auth/FileStore.js +1 -1
  64. package/dist/auth/FileStore.js.map +1 -1
  65. package/dist/cli.js +4 -2
  66. package/dist/cli.js.map +1 -1
  67. package/dist/client/AnypointClient.d.ts +3 -1
  68. package/dist/client/AnypointClient.d.ts.map +1 -1
  69. package/dist/client/AnypointClient.js +5 -2
  70. package/dist/client/AnypointClient.js.map +1 -1
  71. package/dist/client/smoke-test.d.ts +111 -0
  72. package/dist/client/smoke-test.d.ts.map +1 -0
  73. package/dist/client/smoke-test.js +275 -0
  74. package/dist/client/smoke-test.js.map +1 -0
  75. package/dist/commands/api.d.ts +1 -1
  76. package/dist/commands/api.d.ts.map +1 -1
  77. package/dist/commands/api.js +175 -30
  78. package/dist/commands/api.js.map +1 -1
  79. package/dist/commands/app-change-cli.d.ts +52 -0
  80. package/dist/commands/app-change-cli.d.ts.map +1 -0
  81. package/dist/commands/app-change-cli.js +149 -0
  82. package/dist/commands/app-change-cli.js.map +1 -0
  83. package/dist/commands/apps.d.ts +1 -1
  84. package/dist/commands/apps.d.ts.map +1 -1
  85. package/dist/commands/apps.js +199 -18
  86. package/dist/commands/apps.js.map +1 -1
  87. package/dist/commands/auth.js +1 -1
  88. package/dist/commands/auth.js.map +1 -1
  89. package/dist/commands/compare.d.ts +8 -0
  90. package/dist/commands/compare.d.ts.map +1 -0
  91. package/dist/commands/compare.js +104 -0
  92. package/dist/commands/compare.js.map +1 -0
  93. package/dist/commands/config.js +1 -1
  94. package/dist/commands/config.js.map +1 -1
  95. package/dist/commands/deploy.d.ts +6 -1
  96. package/dist/commands/deploy.d.ts.map +1 -1
  97. package/dist/commands/deploy.js +89 -91
  98. package/dist/commands/deploy.js.map +1 -1
  99. package/dist/commands/design-center.d.ts +1 -1
  100. package/dist/commands/design-center.d.ts.map +1 -1
  101. package/dist/commands/design-center.js +36 -25
  102. package/dist/commands/design-center.js.map +1 -1
  103. package/dist/commands/index.d.ts +1 -0
  104. package/dist/commands/index.d.ts.map +1 -1
  105. package/dist/commands/index.js +1 -0
  106. package/dist/commands/index.js.map +1 -1
  107. package/dist/commands/logs.d.ts +3 -2
  108. package/dist/commands/logs.d.ts.map +1 -1
  109. package/dist/commands/logs.js +142 -17
  110. package/dist/commands/logs.js.map +1 -1
  111. package/dist/commands/monitor.d.ts +5 -6
  112. package/dist/commands/monitor.d.ts.map +1 -1
  113. package/dist/commands/monitor.js +210 -230
  114. package/dist/commands/monitor.js.map +1 -1
  115. package/dist/commands/runtimes.d.ts +7 -0
  116. package/dist/commands/runtimes.d.ts.map +1 -0
  117. package/dist/commands/runtimes.js +66 -0
  118. package/dist/commands/runtimes.js.map +1 -0
  119. package/dist/commands/shared.d.ts +2 -0
  120. package/dist/commands/shared.d.ts.map +1 -1
  121. package/dist/commands/shared.js +16 -1
  122. package/dist/commands/shared.js.map +1 -1
  123. package/dist/{utils/config.d.ts → config/profiles.d.ts} +9 -1
  124. package/dist/config/profiles.d.ts.map +1 -0
  125. package/dist/{utils/config.js → config/profiles.js} +1 -1
  126. package/dist/config/profiles.js.map +1 -0
  127. package/dist/index.d.ts +12 -3
  128. package/dist/index.d.ts.map +1 -1
  129. package/dist/index.js +12 -2
  130. package/dist/index.js.map +1 -1
  131. package/dist/mcp/prompts.js +7 -7
  132. package/dist/mcp/prompts.js.map +1 -1
  133. package/dist/mcp/server.d.ts +14 -0
  134. package/dist/mcp/server.d.ts.map +1 -0
  135. package/dist/mcp/server.js +61 -0
  136. package/dist/mcp/server.js.map +1 -0
  137. package/dist/mcp/tools/analysis.d.ts.map +1 -1
  138. package/dist/mcp/tools/analysis.js +74 -46
  139. package/dist/mcp/tools/analysis.js.map +1 -1
  140. package/dist/mcp/tools/anypoint-mq.d.ts.map +1 -1
  141. package/dist/mcp/tools/anypoint-mq.js +25 -54
  142. package/dist/mcp/tools/anypoint-mq.js.map +1 -1
  143. package/dist/mcp/tools/api-manager.d.ts +2 -1
  144. package/dist/mcp/tools/api-manager.d.ts.map +1 -1
  145. package/dist/mcp/tools/api-manager.js +154 -89
  146. package/dist/mcp/tools/api-manager.js.map +1 -1
  147. package/dist/mcp/tools/app-inputs.d.ts +92 -0
  148. package/dist/mcp/tools/app-inputs.d.ts.map +1 -0
  149. package/dist/mcp/tools/app-inputs.js +142 -0
  150. package/dist/mcp/tools/app-inputs.js.map +1 -0
  151. package/dist/mcp/tools/apps-deploy.d.ts +13 -0
  152. package/dist/mcp/tools/apps-deploy.d.ts.map +1 -0
  153. package/dist/mcp/tools/apps-deploy.js +358 -0
  154. package/dist/mcp/tools/apps-deploy.js.map +1 -0
  155. package/dist/mcp/tools/apps-lifecycle.d.ts +11 -0
  156. package/dist/mcp/tools/apps-lifecycle.d.ts.map +1 -0
  157. package/dist/mcp/tools/apps-lifecycle.js +244 -0
  158. package/dist/mcp/tools/apps-lifecycle.js.map +1 -0
  159. package/dist/mcp/tools/apps-read.d.ts +9 -0
  160. package/dist/mcp/tools/apps-read.d.ts.map +1 -0
  161. package/dist/mcp/tools/apps-read.js +414 -0
  162. package/dist/mcp/tools/apps-read.js.map +1 -0
  163. package/dist/mcp/tools/artifacts.d.ts +8 -0
  164. package/dist/mcp/tools/artifacts.d.ts.map +1 -0
  165. package/dist/mcp/tools/artifacts.js +81 -0
  166. package/dist/mcp/tools/artifacts.js.map +1 -0
  167. package/dist/mcp/tools/audit.d.ts.map +1 -1
  168. package/dist/mcp/tools/audit.js +9 -17
  169. package/dist/mcp/tools/audit.js.map +1 -1
  170. package/dist/mcp/tools/design-center.d.ts +2 -3
  171. package/dist/mcp/tools/design-center.d.ts.map +1 -1
  172. package/dist/mcp/tools/design-center.js +41 -185
  173. package/dist/mcp/tools/design-center.js.map +1 -1
  174. package/dist/mcp/tools/exchange.d.ts +1 -2
  175. package/dist/mcp/tools/exchange.d.ts.map +1 -1
  176. package/dist/mcp/tools/exchange.js +51 -312
  177. package/dist/mcp/tools/exchange.js.map +1 -1
  178. package/dist/mcp/tools/governance.d.ts +8 -0
  179. package/dist/mcp/tools/governance.d.ts.map +1 -0
  180. package/dist/mcp/tools/governance.js +59 -0
  181. package/dist/mcp/tools/governance.js.map +1 -0
  182. package/dist/mcp/tools/identity.d.ts.map +1 -1
  183. package/dist/mcp/tools/identity.js +15 -36
  184. package/dist/mcp/tools/identity.js.map +1 -1
  185. package/dist/mcp/tools/index.d.ts +5 -1
  186. package/dist/mcp/tools/index.d.ts.map +1 -1
  187. package/dist/mcp/tools/index.js +5 -1
  188. package/dist/mcp/tools/index.js.map +1 -1
  189. package/dist/mcp/tools/logs.d.ts +48 -2
  190. package/dist/mcp/tools/logs.d.ts.map +1 -1
  191. package/dist/mcp/tools/logs.js +204 -54
  192. package/dist/mcp/tools/logs.js.map +1 -1
  193. package/dist/mcp/tools/monitoring.d.ts +1 -2
  194. package/dist/mcp/tools/monitoring.d.ts.map +1 -1
  195. package/dist/mcp/tools/monitoring.js +78 -285
  196. package/dist/mcp/tools/monitoring.js.map +1 -1
  197. package/dist/mcp/tools/object-store.d.ts +1 -1
  198. package/dist/mcp/tools/object-store.d.ts.map +1 -1
  199. package/dist/mcp/tools/object-store.js +19 -59
  200. package/dist/mcp/tools/object-store.js.map +1 -1
  201. package/dist/mcp/tools/profile.d.ts.map +1 -1
  202. package/dist/mcp/tools/profile.js +15 -35
  203. package/dist/mcp/tools/profile.js.map +1 -1
  204. package/dist/mcp/tools/shared.d.ts +43 -0
  205. package/dist/mcp/tools/shared.d.ts.map +1 -1
  206. package/dist/mcp/tools/shared.js +54 -0
  207. package/dist/mcp/tools/shared.js.map +1 -1
  208. package/dist/mcp.d.ts +3 -11
  209. package/dist/mcp.d.ts.map +1 -1
  210. package/dist/mcp.js +4 -56
  211. package/dist/mcp.js.map +1 -1
  212. package/dist/safety/deployment.d.ts +47 -2
  213. package/dist/safety/deployment.d.ts.map +1 -1
  214. package/dist/safety/deployment.js +139 -6
  215. package/dist/safety/deployment.js.map +1 -1
  216. package/dist/safety/guards.d.ts +2 -2
  217. package/dist/safety/guards.d.ts.map +1 -1
  218. package/dist/safety/guards.js +4 -4
  219. package/dist/safety/guards.js.map +1 -1
  220. package/dist/safety/paths.d.ts +29 -0
  221. package/dist/safety/paths.d.ts.map +1 -0
  222. package/dist/safety/paths.js +76 -0
  223. package/dist/safety/paths.js.map +1 -0
  224. package/dist/safety/runtime.d.ts +24 -0
  225. package/dist/safety/runtime.d.ts.map +1 -0
  226. package/dist/safety/runtime.js +59 -0
  227. package/dist/safety/runtime.js.map +1 -0
  228. package/dist/safety/secret-sources.d.ts +51 -0
  229. package/dist/safety/secret-sources.d.ts.map +1 -0
  230. package/dist/safety/secret-sources.js +124 -0
  231. package/dist/safety/secret-sources.js.map +1 -0
  232. package/dist/safety/secrets.d.ts +32 -0
  233. package/dist/safety/secrets.d.ts.map +1 -0
  234. package/dist/safety/secrets.js +91 -0
  235. package/dist/safety/secrets.js.map +1 -0
  236. package/dist/utils/errors.d.ts +14 -1
  237. package/dist/utils/errors.d.ts.map +1 -1
  238. package/dist/utils/errors.js +31 -3
  239. package/dist/utils/errors.js.map +1 -1
  240. package/dist/workflows/app-change.d.ts +124 -0
  241. package/dist/workflows/app-change.d.ts.map +1 -0
  242. package/dist/workflows/app-change.js +305 -0
  243. package/dist/workflows/app-change.js.map +1 -0
  244. package/dist/workflows/app-state.d.ts +60 -0
  245. package/dist/workflows/app-state.d.ts.map +1 -0
  246. package/dist/workflows/app-state.js +95 -0
  247. package/dist/workflows/app-state.js.map +1 -0
  248. package/dist/workflows/artifact-compare.d.ts +134 -0
  249. package/dist/workflows/artifact-compare.d.ts.map +1 -0
  250. package/dist/workflows/artifact-compare.js +419 -0
  251. package/dist/workflows/artifact-compare.js.map +1 -0
  252. package/dist/workflows/asset-naming.d.ts +72 -0
  253. package/dist/workflows/asset-naming.d.ts.map +1 -0
  254. package/dist/workflows/asset-naming.js +116 -0
  255. package/dist/workflows/asset-naming.js.map +1 -0
  256. package/dist/{api/DesignCenterWorkflow.d.ts → workflows/design-center.d.ts} +4 -4
  257. package/dist/workflows/design-center.d.ts.map +1 -0
  258. package/dist/{api/DesignCenterWorkflow.js → workflows/design-center.js} +1 -1
  259. package/dist/workflows/design-center.js.map +1 -0
  260. package/dist/workflows/jar-deployment.d.ts +156 -0
  261. package/dist/workflows/jar-deployment.d.ts.map +1 -0
  262. package/dist/workflows/jar-deployment.js +178 -0
  263. package/dist/workflows/jar-deployment.js.map +1 -0
  264. package/package.json +12 -4
  265. package/dist/analysis/utils.d.ts.map +0 -1
  266. package/dist/analysis/utils.js.map +0 -1
  267. package/dist/api/DesignCenterWorkflow.d.ts.map +0 -1
  268. package/dist/api/DesignCenterWorkflow.js.map +0 -1
  269. package/dist/api/index.d.ts +0 -13
  270. package/dist/api/index.d.ts.map +0 -1
  271. package/dist/api/index.js +0 -13
  272. package/dist/api/index.js.map +0 -1
  273. package/dist/mcp/tools/applications.d.ts +0 -4
  274. package/dist/mcp/tools/applications.d.ts.map +0 -1
  275. package/dist/mcp/tools/applications.js +0 -815
  276. package/dist/mcp/tools/applications.js.map +0 -1
  277. package/dist/utils/config.d.ts.map +0 -1
  278. package/dist/utils/config.js.map +0 -1
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Deployed artifact comparison CLI command
3
+ * anc apps compare <app> -e <env> (--repo <path> [--ref <ref>] [--working-tree] | --jar <path>)
4
+ */
5
+ import * as fs from 'node:fs';
6
+ import * as path from 'node:path';
7
+ import { log } from '../utils/logger.js';
8
+ import { errorMessage } from '../utils/errors.js';
9
+ import { createClient } from './shared.js';
10
+ import { DEFAULT_JAR_MAX_BYTES } from '../api/ExchangeApi.js';
11
+ import { compareJarToGit, compareJarToJar, fetchDeployedJar, } from '../workflows/artifact-compare.js';
12
+ function printPaths(title, items, total) {
13
+ if (total === 0)
14
+ return;
15
+ log.bold(`${title} (${total})`);
16
+ for (const item of items) {
17
+ const sizes = [item.deployedSize, item.repoSize].filter((s) => s !== undefined).join(' -> ');
18
+ console.log(` ${item.path}${item.jarPath && item.jarPath !== item.path ? ` [${item.jarPath}]` : ''} ${sizes}`);
19
+ }
20
+ console.log();
21
+ }
22
+ function printComparison(comparison) {
23
+ log.kv('Verdict', comparison.verdict);
24
+ log.kv('Version', `deployed ${comparison.pomVersion.deployed ?? '?'}, repo ${comparison.pomVersion.repo ?? '?'}`);
25
+ if (comparison.sha256.repo)
26
+ log.kv('SHA-256 match', String(comparison.sha256.match));
27
+ log.kv('Compared entries', comparison.summary.compared);
28
+ console.log();
29
+ printPaths('Changed', comparison.changed, comparison.summary.changed);
30
+ printPaths('Missing in repo', comparison.missingInRepo, comparison.summary.missingInRepo);
31
+ printPaths('Extra in repo', comparison.extraInRepo, comparison.summary.extraInRepo);
32
+ const deps = comparison.dependencies;
33
+ if (deps.changed.length + deps.missingInRepo.length + deps.extraInRepo.length > 0) {
34
+ log.bold('Dependencies');
35
+ for (const d of deps.changed)
36
+ console.log(` ~ ${d.dependency}: ${d.deployed} -> ${d.repo}`);
37
+ for (const d of deps.missingInRepo)
38
+ console.log(` - ${d} (deployed only)`);
39
+ for (const d of deps.extraInRepo)
40
+ console.log(` + ${d} (repo only)`);
41
+ console.log();
42
+ }
43
+ if (comparison.workingTreeChanges?.length) {
44
+ log.bold(`Working tree changes (${comparison.workingTreeChanges.length})`);
45
+ for (const c of comparison.workingTreeChanges)
46
+ console.log(` ${c.status.padEnd(2)} ${c.path}`);
47
+ console.log();
48
+ }
49
+ for (const note of comparison.notes)
50
+ log.dim(` ${note}`);
51
+ }
52
+ /** Register `compare` under the `apps` command. */
53
+ export function registerCompareCommand(apps) {
54
+ return apps
55
+ .command('compare')
56
+ .description('Compare the deployed jar of an application with a git checkout or a local jar')
57
+ .argument('<app>', 'Application name')
58
+ .requiredOption('-e, --env <name>', 'Environment name or ID')
59
+ .option('--repo <path>', 'Mule project directory (git checkout)')
60
+ .option('--ref <ref>', 'Git commit, branch or tag to compare', 'HEAD')
61
+ .option('--working-tree', 'Include uncommitted and untracked changes (based on HEAD)', false)
62
+ .option('--jar <path>', 'Local application jar to compare instead of a repo')
63
+ .action(async (appName, opts) => {
64
+ try {
65
+ if (Boolean(opts.repo) === Boolean(opts.jar))
66
+ throw new Error('Pass exactly one of --repo or --jar');
67
+ let localJar;
68
+ if (opts.jar) {
69
+ const jarPath = path.resolve(opts.jar);
70
+ const stat = fs.statSync(jarPath);
71
+ if (!stat.isFile())
72
+ throw new Error(`Not a file: ${opts.jar}`);
73
+ if (stat.size > DEFAULT_JAR_MAX_BYTES)
74
+ throw new Error(`Jar exceeds ${DEFAULT_JAR_MAX_BYTES} bytes`);
75
+ localJar = fs.readFileSync(jarPath);
76
+ }
77
+ const client = createClient();
78
+ const orgId = await client.getDefaultOrgId();
79
+ const env = await client.accessManagement.resolveEnvironment(orgId, opts.env);
80
+ const deployed = await fetchDeployedJar(client, orgId, env, appName, {
81
+ maxBytes: DEFAULT_JAR_MAX_BYTES,
82
+ });
83
+ log.header(`Compare ${appName} in ${env.name}`);
84
+ log.kv('Deployed', `${deployed.ref.groupId}:${deployed.ref.artifactId}:${deployed.ref.version}`);
85
+ if (!deployed.md5Matches)
86
+ log.warn('Downloaded jar does not match the Exchange MD5');
87
+ const comparison = localJar
88
+ ? compareJarToJar(deployed.buffer, localJar, opts.jar)
89
+ : await compareJarToGit(deployed.buffer, {
90
+ repoPath: opts.repo,
91
+ gitRef: opts.ref,
92
+ includeWorkingTree: opts.workingTree,
93
+ });
94
+ printComparison(comparison);
95
+ if (comparison.verdict === 'differs')
96
+ process.exitCode = 1;
97
+ }
98
+ catch (error) {
99
+ log.error(`Compare failed: ${errorMessage(error)}`);
100
+ process.exitCode = 1;
101
+ }
102
+ });
103
+ }
104
+ //# sourceMappingURL=compare.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compare.js","sourceRoot":"","sources":["../../src/commands/compare.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ import chalk from 'chalk';
8
8
  import password from '@inquirer/password';
9
9
  import { log } from '../utils/logger.js';
10
10
  import { errorMessage } from '../utils/errors.js';
11
- import { readSavedConfig, writeSavedConfig, updateSavedConfig, hasSavedConfig, getConfigDir, getProfileDir, listProfiles, resolveProfile, writeProjectConfig, DEFAULT_CALLBACK_URL, } from '../utils/config.js';
11
+ import { readSavedConfig, writeSavedConfig, updateSavedConfig, hasSavedConfig, getConfigDir, getProfileDir, listProfiles, resolveProfile, writeProjectConfig, DEFAULT_CALLBACK_URL, } from '../config/profiles.js';
12
12
  function ask(rl, prompt, defaultValue) {
13
13
  const display = defaultValue ? `${prompt} ${chalk.dim(`(${defaultValue})`)} ` : `${prompt} `;
14
14
  return new Promise((resolve) => {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACH,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,oBAAoB,GAEvB,MAAM,uBAAuB,CAAC;AAE/B,SAAS,GAAG,CAAC,EAAsB,EAAE,MAAc,EAAE,YAAqB;IACtE,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC;IAC7F,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE;YAC5B,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,YAAY,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,cAAuB;IAC/D,MAAM,kBAAkB,GAAG,cAAc;QACrC,CAAC,CAAC,2CAA2C,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG;QACxE,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC;QACjC,OAAO,EAAE,gBAAgB,kBAAkB,GAAG;QAC9C,IAAI,EAAE,IAAI;KACb,CAAC,CAAC;IACH,OAAO,aAAa,IAAI,cAAc,IAAI,EAAE,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,mBAAmB;IAC/B,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,uCAAuC,CAAC,CAAC;IAE1F,oDAAoD;IACpD,MAAM;SACD,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,oDAAoD,CAAC;SACjE,MAAM,CAAC,sBAAsB,EAAE,2BAA2B,CAAC;SAC3D,MAAM,CAAC,KAAK,EAAE,OAA6B,EAAE,EAAE;QAC5C,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9D,MAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;QAE9C,IAAI,QAAQ,IAAI,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC;YAC1C,GAAG,CAAC,IAAI,CAAC,6CAA6C,WAAW,qCAAqC,CAAC,CAAC;YACxG,GAAG,CAAC,GAAG,CAAC,kBAAkB,aAAa,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;YACpE,OAAO,CAAC,GAAG,EAAE,CAAC;QAClB,CAAC;QAED,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;YAChC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;SACzB,CAAC,CAAC;QAEH,IAAI,CAAC;YACD,GAAG,CAAC,MAAM,CAAC,qCAAqC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC3E,GAAG,CAAC,GAAG,CAAC,wDAAwD,WAAW,cAAc,CAAC,CAAC;YAC3F,GAAG,CAAC,GAAG,CAAC,mDAAmD,WAAW,2BAA2B,CAAC,CAAC;YACnG,OAAO,CAAC,GAAG,EAAE,CAAC;YAEd,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAEnE,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,WAAW,IAAI,oBAAoB,CAAC,CAAC;YAEpG,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,IAAI,+BAA+B,CAAC,CAAC;YAEnG,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,EAAE,EAAE,mCAAmC,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;YAE5F,EAAE,CAAC,KAAK,EAAE,CAAC;YAEX,MAAM,cAAc,GAAG,MAAM,qBAAqB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YAE3E,IAAI,CAAC,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC/B,GAAG,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;gBACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;YAED,MAAM,KAAK,GAAgB;gBACvB,QAAQ;gBACR,YAAY,EAAE,cAAc;gBAC5B,WAAW;gBACX,OAAO;gBACP,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxC,CAAC;YAEF,gBAAgB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YAErC,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,OAAO,CAAC,oCAAoC,WAAW,IAAI,CAAC,CAAC;YACjE,GAAG,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,aAAa,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;YAChE,GAAG,CAAC,GAAG,CAAC,8FAA8F,CAAC,CAAC;YACxG,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,mBAAmB,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,GAAG,CAAC,KAAK,CAAC,iBAAiB,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACL,CAAC,CAAC,CAAC;IAEP,oDAAoD;IACpD,MAAM;SACD,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,gDAAgD,CAAC;SAC7D,MAAM,CAAC,sBAAsB,EAAE,iBAAiB,CAAC;SACjD,MAAM,CAAC,CAAC,OAA6B,EAAE,EAAE;QACtC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACtE,MAAM,KAAK,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;QAE3C,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,GAAG,CAAC,IAAI,CACJ,uCAAuC,WAAW,qCAAqC,WAAW,EAAE,CACvG,CAAC;YACF,OAAO;QACX,CAAC;QAED,GAAG,CAAC,MAAM,CAAC,6CAA6C,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACnF,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,WAAW,kBAAkB,MAAM,GAAG,CAAC,CAAC;QAC7D,GAAG,CAAC,EAAE,CAAC,aAAa,EAAE,GAAG,aAAa,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACpC,GAAG,CAAC,EAAE,CAAC,eAAe,EAAE,QAAQ,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1E,GAAG,CAAC,EAAE,CAAC,cAAc,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QAC1C,GAAG,CAAC,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACnB,GAAG,CAAC,EAAE,CAAC,aAAa,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QAC5C,CAAC;IACL,CAAC,CAAC,CAAC;IAEP,oDAAoD;IACpD,MAAM;SACD,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,2BAA2B,CAAC;SACxC,QAAQ,CAAC,OAAO,EAAE,sEAAsE,CAAC;SACzF,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;SACnC,MAAM,CAAC,sBAAsB,EAAE,mBAAmB,CAAC;SACnD,MAAM,CAAC,CAAC,GAAW,EAAE,KAAa,EAAE,OAA6B,EAAE,EAAE;QAClE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE9D,MAAM,SAAS,GAA0B;YACrC,UAAU;YACV,cAAc;YACd,aAAa;YACb,SAAS;YACT,YAAY;SACf,CAAC;QAEF,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAwB,CAAC,EAAE,CAAC;YAChD,GAAG,CAAC,KAAK,CAAC,gBAAgB,GAAG,kBAAkB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QAED,iBAAiB,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,WAAW,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,GAAG,KAAK,cAAc,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC5E,GAAG,CAAC,OAAO,CAAC,IAAI,WAAW,SAAS,GAAG,MAAM,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEP,oDAAoD;IACpD,MAAM;SACD,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,iCAAiC,CAAC;SAC9C,MAAM,CAAC,sBAAsB,EAAE,0BAA0B,CAAC;SAC1D,MAAM,CAAC,CAAC,OAA6B,EAAE,EAAE;QACtC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;QAChC,CAAC;IACL,CAAC,CAAC,CAAC;IAEP,oDAAoD;IACpD,MAAM;SACD,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,8BAA8B,CAAC;SAC3C,MAAM,CAAC,GAAG,EAAE;QACT,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;QAChC,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,CAAC;QAEzD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,GAAG,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;YACzD,OAAO;QACX,CAAC;QAED,GAAG,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,CAAC,KAAK,aAAa,CAAC;YACrC,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACnD,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC7D,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,cAAc,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChF,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC;QAC/C,CAAC;IACL,CAAC,CAAC,CAAC;IAEP,oDAAoD;IACpD,MAAM;SACD,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,qEAAqE,CAAC;SAClF,QAAQ,CAAC,WAAW,EAAE,uCAAuC,CAAC;SAC9D,MAAM,CAAC,CAAC,OAAe,EAAE,EAAE;QACxB,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;QAEhC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACrD,GAAG,CAAC,IAAI,CAAC,YAAY,OAAO,uBAAuB,CAAC,CAAC;YACrD,GAAG,CAAC,GAAG,CAAC,yBAAyB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxD,GAAG,CAAC,GAAG,CAAC,oCAAoC,OAAO,EAAE,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,EAAE,CAAC;QAClB,CAAC;QAED,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC7C,GAAG,CAAC,OAAO,CAAC,+BAA+B,OAAO,GAAG,CAAC,CAAC;QACvD,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACzB,GAAG,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEP,OAAO,MAAM,CAAC;AAClB,CAAC"}
@@ -1,6 +1,11 @@
1
1
  /**
2
2
  * Deploy CLI Command
3
- * anc deploy <jarPath> --app <name> --env <envName> [--runtime <version>] [--replicas <n>] [--region <target>] [--force]
3
+ * anc deploy <jarPath> --app <name> --env <envName> [--runtime <version>] [--replicas <n>] [--region <target>]
4
+ * [--vcores <size>] [--asset-id <id>] [--asset-version <v>] [--group-id <id>] [settings flags]
5
+ * [--stop-start] [--update-strategy <s>] [--no-wait] [--dry-run] [--force]
6
+ *
7
+ * Publishes the JAR to Exchange, then creates the deployment or, for an existing app, applies the
8
+ * artifact change (plus any runtime or settings change) as one update.
4
9
  */
5
10
  import { Command } from 'commander';
6
11
  export declare function createDeployCommand(): Command;
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,wBAAgB,mBAAmB,IAAI,OAAO,CAyI7C"}
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC,wBAAgB,mBAAmB,IAAI,OAAO,CAgI7C"}
@@ -1,127 +1,125 @@
1
1
  /**
2
2
  * Deploy CLI Command
3
- * anc deploy <jarPath> --app <name> --env <envName> [--runtime <version>] [--replicas <n>] [--region <target>] [--force]
3
+ * anc deploy <jarPath> --app <name> --env <envName> [--runtime <version>] [--replicas <n>] [--region <target>]
4
+ * [--vcores <size>] [--asset-id <id>] [--asset-version <v>] [--group-id <id>] [settings flags]
5
+ * [--stop-start] [--update-strategy <s>] [--no-wait] [--dry-run] [--force]
6
+ *
7
+ * Publishes the JAR to Exchange, then creates the deployment or, for an existing app, applies the
8
+ * artifact change (plus any runtime or settings change) as one update.
4
9
  */
5
10
  import { Command } from 'commander';
6
- import * as fs from 'fs';
7
- import * as path from 'path';
8
- import ora from 'ora';
9
11
  import chalk from 'chalk';
10
12
  import { log } from '../utils/logger.js';
11
13
  import { errorMessage } from '../utils/errors.js';
12
14
  import { isProductionEnv, buildDeploySummary, confirmProductionDeploy } from '../safety/guards.js';
13
- import { buildCreatePayload, mergeForArtifactUpdate } from '../safety/deployment.js';
15
+ import { DEFAULT_REGION, DEFAULT_RUNTIME, DEFAULT_VCORES, VALID_VCORES } from '../safety/deployment.js';
16
+ import { redactText } from '../safety/secrets.js';
17
+ import { describeJarDeployment, executeJarDeployment, planJarDeployment } from '../workflows/jar-deployment.js';
18
+ import { addRolloutOptions, addRuntimeOptions, addSettingsOptions, printAppChange, rolloutFromOptions, rolloutSpinner, runtimeFromOptions, settingsFromOptions, } from './app-change-cli.js';
14
19
  import { createClient } from './shared.js';
15
20
  export function createDeployCommand() {
16
- const deploy = new Command('deploy')
17
- .description('Deploy an application to CloudHub 2.0')
18
- .argument('[jarPath]', 'Path to the application JAR file')
21
+ const command = new Command('deploy')
22
+ .description('Publish a Mule application JAR to Exchange and deploy it to CloudHub 2.0')
23
+ .argument('<jarPath>', 'Path to the built application JAR')
19
24
  .requiredOption('-a, --app <name>', 'Application name')
20
25
  .requiredOption('-e, --env <name>', 'Target environment')
21
- .option('-r, --runtime <version>', 'Mule runtime version', '4.8.0')
22
- .option('--replicas <n>', 'Number of replicas', '1')
23
- .option('--group-id <id>', 'Maven group ID')
24
- .option('--artifact-id <id>', 'Maven artifact ID')
25
- .option('--version <v>', 'Application version')
26
- .option('--vcores <size>', 'vCore size (0.1, 0.2, 0.5, 1, 1.5, 2, 2.5, 3, 4)', '0.1')
27
- .option('--region <target>', 'CloudHub 2.0 target (e.g. "cloudhub-us-east-2", "cloudhub-eu-west-1")', 'cloudhub-us-east-2')
28
- .option('--force', 'Skip production confirmation prompt', false)
26
+ .option('--asset-id <id>', "Exchange asset ID (default: naming convention, else the JAR's Maven artifactId)")
27
+ .option('--asset-version <v>', "Exchange asset version (default: naming convention, else the JAR's Maven version)")
28
+ .option('--group-id <id>', 'Exchange group ID (default: the organization ID)')
29
+ .option('--replicas <n>', '[new app only] Number of replicas (default: 1)')
30
+ .option('--vcores <size>', `[new app only] vCore size: ${VALID_VCORES.join(', ')} (default: ${DEFAULT_VCORES})`)
31
+ .option('--region <target>', `[new app only] CloudHub 2.0 target (default: ${DEFAULT_REGION})`);
32
+ addRuntimeOptions(command, `(new app default: ${DEFAULT_RUNTIME}) `);
33
+ addSettingsOptions(command);
34
+ addRolloutOptions(command);
35
+ return command
36
+ .option('--dry-run', 'Show what would be published and deployed, then stop', false)
37
+ .option('--force', 'Skip the production confirmation prompt', false)
29
38
  .action(async (jarPath, opts) => {
39
+ let secretValues = [];
30
40
  try {
31
41
  const client = createClient();
32
42
  const orgId = await client.getDefaultOrgId();
33
43
  const env = await client.accessManagement.resolveEnvironment(orgId, opts.env);
34
- // Check for existing deployment
35
- const existing = await client.cloudHub2.findDetailByName(orgId, env.id, opts.app);
36
- // If no JAR provided but app exists, show status
37
- if (!jarPath && existing) {
38
- log.info('No JAR path provided. Showing current deployment status:');
39
- log.kv('App', existing.name);
40
- log.kv('Status', existing.status);
41
- log.kv('Version', existing.application?.ref?.version || '-');
42
- return;
44
+ const rollout = rolloutFromOptions(opts);
45
+ const plan = await planJarDeployment(client, {
46
+ jarPath,
47
+ appName: opts.app,
48
+ orgId,
49
+ env,
50
+ assetId: opts.assetId,
51
+ assetVersion: opts.assetVersion,
52
+ groupId: opts.groupId,
53
+ runtime: runtimeFromOptions(opts),
54
+ replicas: opts.replicas ? parseInt(opts.replicas, 10) : undefined,
55
+ region: opts.region,
56
+ vcores: opts.vcores,
57
+ settings: settingsFromOptions(opts),
58
+ mode: rollout.mode,
59
+ updateStrategy: rollout.updateStrategy,
60
+ });
61
+ secretValues = plan.secretValues;
62
+ if (plan.rejectedSettings.length > 0) {
63
+ throw new Error(`"${opts.app}" already exists in ${env.name}; region, vCores and replicas apply only to a new app. ` +
64
+ `Drop ${plan.rejectedSettings.map((s) => `--${s}`).join(', ')}.`);
43
65
  }
44
- if (!jarPath) {
45
- log.error('JAR file path is required for new deployments');
46
- process.exit(1);
66
+ const summary = describeJarDeployment(plan);
67
+ console.log(buildDeploySummary(opts.app, env.name, plan.existing, plan.ref.version, env.isProduction));
68
+ log.kv('Artifact', `${plan.ref.groupId}:${plan.ref.artifactId}:${plan.ref.version}`);
69
+ log.kv('Naming', `asset ID from ${summary.publish.naming.assetId}, version from ${summary.publish.naming.version}`);
70
+ if (plan.naming.deployedPattern) {
71
+ log.dim(` The deployed asset follows ${plan.naming.deployedPattern.assetId} @ ${plan.naming.deployedPattern.assetVersion}; set it as a project convention or pass --asset-id/--asset-version to use it.`);
47
72
  }
48
- // Validate JAR file
49
- const resolvedPath = path.resolve(jarPath);
50
- if (!fs.existsSync(resolvedPath)) {
51
- log.error(`JAR file not found: ${resolvedPath}`);
52
- process.exit(1);
73
+ log.kv('SHA-256', plan.artifact.sha256);
74
+ let ok = true;
75
+ if (plan.change) {
76
+ ok = printAppChange(plan.change);
53
77
  }
54
- if (!resolvedPath.endsWith('.jar')) {
55
- log.error('File must have .jar extension');
56
- process.exit(1);
78
+ else if (summary.deploy.action === 'create') {
79
+ log.kv('Mode', 'create deployment');
80
+ log.kv('Runtime', summary.deploy.runtime);
81
+ log.kv('Target', `${summary.deploy.region}, ${summary.deploy.vcores} vCores x ${summary.deploy.replicas}`);
57
82
  }
58
- const stat = fs.statSync(resolvedPath);
59
- if (stat.size === 0) {
60
- log.error('JAR file is empty');
61
- process.exit(1);
83
+ if (!ok) {
84
+ process.exitCode = 1;
85
+ return;
86
+ }
87
+ if (opts.dryRun) {
88
+ log.info('Dry run: nothing was published or deployed.');
89
+ return;
62
90
  }
63
- // Extract version from filename if not provided
64
- const basename = path.basename(resolvedPath);
65
- const match = basename.match(/^(.+?)-(\d+\.\d+\.\d+(?:-.+?)?)-mule-application\.jar$/);
66
- const artifactId = opts.artifactId || match?.[1] || opts.app;
67
- const version = opts.version || match?.[2] || '1.0.0';
68
- const groupId = opts.groupId || orgId;
69
- // ── Safety Check ─────────────────────────────────
70
- console.log(buildDeploySummary(opts.app, env.name, existing, version));
71
91
  if (isProductionEnv(env.name, env.isProduction) && !opts.force) {
72
- const confirmed = await confirmProductionDeploy(env.name);
73
- if (!confirmed) {
92
+ if (!(await confirmProductionDeploy(env.name, env.isProduction))) {
74
93
  log.warn('Deployment cancelled');
75
94
  return;
76
95
  }
77
96
  }
78
- // ── Deploy ───────────────────────────────────────
79
- const spinner = ora('Deploying...').start();
80
- let deployment;
81
- if (existing) {
82
- // Safe redeploy: PATCH only the artifact ref so the live runtime, target/space,
83
- // replicas, and settings are preserved (previously this clobbered them).
84
- spinner.text = 'Updating artifact reference on existing deployment...';
85
- const merged = mergeForArtifactUpdate(existing, { groupId, artifactId, version });
86
- deployment = await client.cloudHub2.updateArtifactRef(orgId, env.id, existing.id, merged.application.ref);
87
- }
88
- else {
89
- spinner.text = 'Creating new deployment...';
90
- const payload = buildCreatePayload({
91
- appName: opts.app,
92
- groupId,
93
- artifactId,
94
- version,
95
- runtime: opts.runtime,
96
- replicas: parseInt(opts.replicas) || 1,
97
- region: opts.region,
98
- vcores: opts.vcores,
99
- });
100
- deployment = await client.cloudHub2.createDeployment(orgId, env.id, payload);
101
- }
102
- // Poll for status
103
- spinner.text = 'Waiting for deployment to apply...';
104
- try {
105
- const final = await client.cloudHub2.waitForDeployment(orgId, env.id, deployment.id, (status, replicas) => {
106
- const replicaStates = replicas?.map((r) => r.state).join(', ') || 'unknown';
107
- spinner.text = `Status: ${status} (replicas: ${replicaStates})`;
108
- });
109
- spinner.succeed(`Deployed ${chalk.bold(opts.app)} v${version} → ${chalk.green(final.status)}`);
97
+ const { spinner, onStatus } = rolloutSpinner('Publishing to Exchange and deploying...');
98
+ const result = await executeJarDeployment(client, plan, {
99
+ wait: rollout.wait,
100
+ timeoutMs: rollout.timeoutMs,
101
+ onStatus,
102
+ });
103
+ if (!rollout.wait) {
104
+ spinner.succeed(`Published ${result.published.assetId} v${result.published.version}; change accepted`);
105
+ log.dim(` Follow it: anc apps status ${opts.app} --env ${opts.env} --wait`);
106
+ return;
110
107
  }
111
- catch (err) {
112
- spinner.fail(`Deployment issue: ${errorMessage(err)}`);
113
- log.dim(` Deployment ID: ${deployment.id}`);
114
- log.dim(` Check status: anc apps status ${opts.app} --env ${opts.env}`);
115
- if (existing) {
116
- log.dim(` Previous version: ${existing.application?.ref?.version || 'unknown'}`);
117
- }
108
+ if (result.snapshot?.settled) {
109
+ spinner.succeed(`Deployed ${chalk.bold(opts.app)} v${plan.ref.version}: ${chalk.green(result.snapshot.phase)}`);
110
+ return;
118
111
  }
112
+ spinner.fail(`Deployment did not settle: ${result.snapshot?.phase ?? 'unknown'}${result.timedOut ? ' (timed out)' : ''}${result.snapshot?.reason ? ` - ${result.snapshot.reason}` : ''}`);
113
+ log.dim(` Deployment ID: ${result.deployment.id}`);
114
+ log.dim(` Check status: anc apps status ${opts.app} --env ${opts.env}`);
115
+ if (plan.existing)
116
+ log.dim(` Previous version: ${plan.existing.application?.ref?.version || 'unknown'}`);
117
+ process.exitCode = 1;
119
118
  }
120
119
  catch (error) {
121
- log.error(`Deploy failed: ${errorMessage(error)}`);
120
+ log.error(`Deploy failed: ${redactText(errorMessage(error), secretValues)}`);
122
121
  process.exit(1);
123
122
  }
124
123
  });
125
- return deploy;
126
124
  }
127
125
  //# sourceMappingURL=deploy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Design Center CLI Commands
3
- * anc dc list | files | pull | push | publish
3
+ * anc design-center (alias: dc) list | files | pull | push | publish
4
4
  */
5
5
  import { Command } from 'commander';
6
6
  export declare function createDesignCenterCommand(): Command;
@@ -1 +1 @@
1
- {"version":3,"file":"design-center.d.ts","sourceRoot":"","sources":["../../src/commands/design-center.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBpC,wBAAgB,yBAAyB,IAAI,OAAO,CAsLnD"}
1
+ {"version":3,"file":"design-center.d.ts","sourceRoot":"","sources":["../../src/commands/design-center.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBpC,wBAAgB,yBAAyB,IAAI,OAAO,CA8MnD"}
@@ -1,13 +1,13 @@
1
1
  /**
2
2
  * Design Center CLI Commands
3
- * anc dc list | files | pull | push | publish
3
+ * anc design-center (alias: dc) list | files | pull | push | publish
4
4
  */
5
5
  import { Command } from 'commander';
6
6
  import * as fs from 'fs';
7
7
  import { log } from '../utils/logger.js';
8
8
  import { errorMessage } from '../utils/errors.js';
9
9
  import { printTable } from '../utils/formatter.js';
10
- import { createClient } from './shared.js';
10
+ import { confirmAction, createClient } from './shared.js';
11
11
  async function resolveProject(client, orgId, nameOrId) {
12
12
  const project = await client.designCenter.findByName(orgId, nameOrId);
13
13
  if (!project) {
@@ -22,7 +22,7 @@ async function resolveProject(client, orgId, nameOrId) {
22
22
  return project;
23
23
  }
24
24
  export function createDesignCenterCommand() {
25
- const dc = new Command('dc').description('Manage API specs in Anypoint Design Center');
25
+ const dc = new Command('design-center').alias('dc').description('Manage API specs in Anypoint Design Center');
26
26
  // ── list ────────────────────────────────────────
27
27
  dc.command('list')
28
28
  .description('List all Design Center projects')
@@ -97,37 +97,38 @@ export function createDesignCenterCommand() {
97
97
  });
98
98
  // ── push ────────────────────────────────────────
99
99
  dc.command('push')
100
- .description('Push a local file to Design Center (lock → save → unlock)')
100
+ .description('Preview, then sync a local file to Design Center (conflict-checked and verified)')
101
101
  .argument('<project>', 'Project name or ID')
102
102
  .argument('<localFile>', 'Local file to upload')
103
103
  .option('-p, --path <path>', 'Remote file path (overrides auto-detection)')
104
104
  .option('-b, --branch <branch>', 'Branch name', 'master')
105
105
  .option('-m, --message <msg>', 'Commit message')
106
+ .option('-y, --yes', 'Apply without asking for confirmation', false)
106
107
  .action(async (project, localFile, opts) => {
107
108
  try {
108
109
  const client = createClient();
109
110
  const orgId = await client.getDefaultOrgId();
110
111
  const proj = await resolveProject(client, orgId, project);
111
112
  if (!fs.existsSync(localFile)) {
112
- log.error(`File not found: ${localFile}`);
113
- process.exit(1);
113
+ throw new Error(`File not found: ${localFile}`);
114
114
  }
115
115
  const content = fs.readFileSync(localFile, 'utf-8');
116
- // Smart path resolution: verify the file exists in the project
117
- let remotePath;
118
- if (opts.path) {
119
- remotePath = opts.path;
116
+ const remotePath = opts.path ||
117
+ (await client.designCenter.resolveFilePath(orgId, proj.id, localFile.split('/').pop() || localFile, opts.branch));
118
+ const preview = await client.designCenterWorkflow.previewSync(orgId, proj.id, [{ path: remotePath, content }], opts.branch, opts.message);
119
+ log.info(`${localFile} → ${preview.project}/${remotePath} [${preview.branch}]`);
120
+ for (const entry of preview.entries)
121
+ log.kv(entry.path, entry.action);
122
+ if (preview.entries.every((entry) => entry.action === 'unchanged')) {
123
+ log.success('Design Center already matches the local file; nothing to push.');
124
+ return;
120
125
  }
121
- else {
122
- const basename = localFile.split('/').pop() || localFile;
123
- remotePath = await client.designCenter.resolveFilePath(orgId, proj.id, basename, opts.branch);
126
+ if (!opts.yes && !(await confirmAction('Push these changes to Design Center?'))) {
127
+ log.warn('Push cancelled');
128
+ return;
124
129
  }
125
- const lines = content.split('\n').length;
126
- log.info(`Pushing ${localFile} → ${proj.name}/${remotePath} [${opts.branch}]`);
127
- log.dim(` ${lines} lines, ${content.length} bytes`);
128
- log.dim(' Acquiring lock...');
129
- await client.designCenter.updateFile(orgId, proj.id, remotePath, content, opts.branch, opts.message);
130
- log.success(`Pushed to Design Center: ${remotePath}`);
130
+ const result = await client.designCenterWorkflow.sync(preview.previewToken);
131
+ log.success(`Pushed and verified ${result.changed} file(s) in ${result.project} [${result.branch}]`);
131
132
  }
132
133
  catch (error) {
133
134
  log.error(`Push failed: ${errorMessage(error)}`);
@@ -136,22 +137,22 @@ export function createDesignCenterCommand() {
136
137
  });
137
138
  // ── publish ─────────────────────────────────────
138
139
  dc.command('publish')
139
- .description('Publish a Design Center project to Exchange')
140
+ .description('Preview, then publish a Design Center project to Exchange (source-bound and verified)')
140
141
  .argument('<project>', 'Project name or ID')
141
142
  .requiredOption('--version <version>', 'Asset version (semver, e.g. 1.2.0)')
142
143
  .option('--api-version <v>', 'API version (e.g. v1)', 'v1')
143
144
  .option('--name <name>', 'Asset name in Exchange (defaults to project name)')
144
- .option('--asset-id <id>', 'Asset ID in Exchange (defaults to project name)')
145
+ .option('--asset-id <id>', 'Asset ID in Exchange (defaults to the project exchange.json, then the name)')
145
146
  .option('--classifier <c>', 'Classifier: raml, raml-fragment, oas, oas3', 'raml')
146
- .option('--main <file>', 'Main spec file name')
147
+ .option('--main <file>', 'Main spec file name (defaults to the project exchange.json)')
147
148
  .option('-b, --branch <branch>', 'Branch name', 'master')
149
+ .option('-y, --yes', 'Publish without asking for confirmation', false)
148
150
  .action(async (project, opts) => {
149
151
  try {
150
152
  const client = createClient();
151
153
  const orgId = await client.getDefaultOrgId();
152
154
  const proj = await resolveProject(client, orgId, project);
153
- log.info(`Publishing ${proj.name} to Exchange as v${opts.version}...`);
154
- const result = await client.designCenter.publishToExchange(orgId, proj.id, {
155
+ const preview = await client.designCenterWorkflow.previewPublication(orgId, proj.id, {
155
156
  name: opts.name || proj.name,
156
157
  apiVersion: opts.apiVersion,
157
158
  version: opts.version,
@@ -159,7 +160,17 @@ export function createDesignCenterCommand() {
159
160
  assetId: opts.assetId,
160
161
  main: opts.main,
161
162
  }, opts.branch);
162
- log.success(`Published to Exchange!`);
163
+ log.info(`Publish ${preview.project} [${preview.branch}] to Exchange`);
164
+ log.kv('Coordinates', `${preview.coordinates.groupId}:${preview.coordinates.assetId}:${preview.coordinates.version}`);
165
+ log.kv('Main file', preview.mainFile);
166
+ log.kv('Classifier', String(preview.classifier));
167
+ log.kv('Source SHA-256', preview.sourceHash);
168
+ if (!opts.yes && !(await confirmAction('Publish this asset version to Exchange?'))) {
169
+ log.warn('Publish cancelled');
170
+ return;
171
+ }
172
+ const result = await client.designCenterWorkflow.publish(preview.previewToken);
173
+ log.success('Published to Exchange and verified the artifact');
163
174
  log.kv('Group ID', result.groupId);
164
175
  log.kv('Asset ID', result.assetId);
165
176
  log.kv('Version', result.version);