@hs-x/cli 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (302) hide show
  1. package/README.md +1001 -0
  2. package/dist/account-store.d.ts +51 -0
  3. package/dist/account-store.d.ts.map +1 -0
  4. package/dist/account-store.js +138 -0
  5. package/dist/account-store.js.map +1 -0
  6. package/dist/bin/hs-x.d.ts +3 -0
  7. package/dist/bin/hs-x.d.ts.map +1 -0
  8. package/dist/bin/hs-x.js +47 -0
  9. package/dist/bin/hs-x.js.map +1 -0
  10. package/dist/cli/index.d.ts +3 -0
  11. package/dist/cli/index.d.ts.map +1 -0
  12. package/dist/cli/index.js +595 -0
  13. package/dist/cli/index.js.map +1 -0
  14. package/dist/cli-error.d.ts +36 -0
  15. package/dist/cli-error.d.ts.map +1 -0
  16. package/dist/cli-error.js +40 -0
  17. package/dist/cli-error.js.map +1 -0
  18. package/dist/cloudflare-auth.d.ts +25 -0
  19. package/dist/cloudflare-auth.d.ts.map +1 -0
  20. package/dist/cloudflare-auth.js +251 -0
  21. package/dist/cloudflare-auth.js.map +1 -0
  22. package/dist/cloudflare-kv.d.ts +23 -0
  23. package/dist/cloudflare-kv.d.ts.map +1 -0
  24. package/dist/cloudflare-kv.js +101 -0
  25. package/dist/cloudflare-kv.js.map +1 -0
  26. package/dist/cloudflare-oauth-store.d.ts +16 -0
  27. package/dist/cloudflare-oauth-store.d.ts.map +1 -0
  28. package/dist/cloudflare-oauth-store.js +80 -0
  29. package/dist/cloudflare-oauth-store.js.map +1 -0
  30. package/dist/cloudflare-oauth.d.ts +82 -0
  31. package/dist/cloudflare-oauth.d.ts.map +1 -0
  32. package/dist/cloudflare-oauth.js +336 -0
  33. package/dist/cloudflare-oauth.js.map +1 -0
  34. package/dist/cloudflare-pointer.d.ts +13 -0
  35. package/dist/cloudflare-pointer.d.ts.map +1 -0
  36. package/dist/cloudflare-pointer.js +46 -0
  37. package/dist/cloudflare-pointer.js.map +1 -0
  38. package/dist/command-history.d.ts +7 -0
  39. package/dist/command-history.d.ts.map +1 -0
  40. package/dist/command-history.js +34 -0
  41. package/dist/command-history.js.map +1 -0
  42. package/dist/commands/account.d.ts +7 -0
  43. package/dist/commands/account.d.ts.map +1 -0
  44. package/dist/commands/account.js +315 -0
  45. package/dist/commands/account.js.map +1 -0
  46. package/dist/commands/api.d.ts +36 -0
  47. package/dist/commands/api.d.ts.map +1 -0
  48. package/dist/commands/api.js +521 -0
  49. package/dist/commands/api.js.map +1 -0
  50. package/dist/commands/completion.d.ts +7 -0
  51. package/dist/commands/completion.d.ts.map +1 -0
  52. package/dist/commands/completion.js +121 -0
  53. package/dist/commands/completion.js.map +1 -0
  54. package/dist/commands/connect.d.ts +7 -0
  55. package/dist/commands/connect.d.ts.map +1 -0
  56. package/dist/commands/connect.js +1123 -0
  57. package/dist/commands/connect.js.map +1 -0
  58. package/dist/commands/control-plane-read.d.ts +22 -0
  59. package/dist/commands/control-plane-read.d.ts.map +1 -0
  60. package/dist/commands/control-plane-read.js +350 -0
  61. package/dist/commands/control-plane-read.js.map +1 -0
  62. package/dist/commands/deploy-promote.d.ts +14 -0
  63. package/dist/commands/deploy-promote.d.ts.map +1 -0
  64. package/dist/commands/deploy-promote.js +105 -0
  65. package/dist/commands/deploy-promote.js.map +1 -0
  66. package/dist/commands/deploy.d.ts +18 -0
  67. package/dist/commands/deploy.d.ts.map +1 -0
  68. package/dist/commands/deploy.js +2764 -0
  69. package/dist/commands/deploy.js.map +1 -0
  70. package/dist/commands/dev.d.ts +7 -0
  71. package/dist/commands/dev.d.ts.map +1 -0
  72. package/dist/commands/dev.js +913 -0
  73. package/dist/commands/dev.js.map +1 -0
  74. package/dist/commands/doctor.d.ts +8 -0
  75. package/dist/commands/doctor.d.ts.map +1 -0
  76. package/dist/commands/doctor.js +258 -0
  77. package/dist/commands/doctor.js.map +1 -0
  78. package/dist/commands/flags.d.ts +22 -0
  79. package/dist/commands/flags.d.ts.map +1 -0
  80. package/dist/commands/flags.js +185 -0
  81. package/dist/commands/flags.js.map +1 -0
  82. package/dist/commands/help-command.d.ts +13 -0
  83. package/dist/commands/help-command.d.ts.map +1 -0
  84. package/dist/commands/help-command.js +482 -0
  85. package/dist/commands/help-command.js.map +1 -0
  86. package/dist/commands/history.d.ts +6 -0
  87. package/dist/commands/history.d.ts.map +1 -0
  88. package/dist/commands/history.js +42 -0
  89. package/dist/commands/history.js.map +1 -0
  90. package/dist/commands/init.d.ts +8 -0
  91. package/dist/commands/init.d.ts.map +1 -0
  92. package/dist/commands/init.js +233 -0
  93. package/dist/commands/init.js.map +1 -0
  94. package/dist/commands/link.d.ts +26 -0
  95. package/dist/commands/link.d.ts.map +1 -0
  96. package/dist/commands/link.js +441 -0
  97. package/dist/commands/link.js.map +1 -0
  98. package/dist/commands/login.d.ts +8 -0
  99. package/dist/commands/login.d.ts.map +1 -0
  100. package/dist/commands/login.js +381 -0
  101. package/dist/commands/login.js.map +1 -0
  102. package/dist/commands/migrate.d.ts +8 -0
  103. package/dist/commands/migrate.d.ts.map +1 -0
  104. package/dist/commands/migrate.js +258 -0
  105. package/dist/commands/migrate.js.map +1 -0
  106. package/dist/commands/rollback.d.ts +21 -0
  107. package/dist/commands/rollback.d.ts.map +1 -0
  108. package/dist/commands/rollback.js +301 -0
  109. package/dist/commands/rollback.js.map +1 -0
  110. package/dist/commands/secrets.d.ts +7 -0
  111. package/dist/commands/secrets.d.ts.map +1 -0
  112. package/dist/commands/secrets.js +230 -0
  113. package/dist/commands/secrets.js.map +1 -0
  114. package/dist/commands/status.d.ts +7 -0
  115. package/dist/commands/status.d.ts.map +1 -0
  116. package/dist/commands/status.js +241 -0
  117. package/dist/commands/status.js.map +1 -0
  118. package/dist/commands/unlink.d.ts +21 -0
  119. package/dist/commands/unlink.d.ts.map +1 -0
  120. package/dist/commands/unlink.js +83 -0
  121. package/dist/commands/unlink.js.map +1 -0
  122. package/dist/commands/update.d.ts +11 -0
  123. package/dist/commands/update.d.ts.map +1 -0
  124. package/dist/commands/update.js +154 -0
  125. package/dist/commands/update.js.map +1 -0
  126. package/dist/commands/validate.d.ts +9 -0
  127. package/dist/commands/validate.d.ts.map +1 -0
  128. package/dist/commands/validate.js +39 -0
  129. package/dist/commands/validate.js.map +1 -0
  130. package/dist/config.d.ts +12 -0
  131. package/dist/config.d.ts.map +1 -0
  132. package/dist/config.js +64 -0
  133. package/dist/config.js.map +1 -0
  134. package/dist/constants.d.ts +4 -0
  135. package/dist/constants.d.ts.map +1 -0
  136. package/dist/constants.js +4 -0
  137. package/dist/constants.js.map +1 -0
  138. package/dist/control-plane-fetch.d.ts +34 -0
  139. package/dist/control-plane-fetch.d.ts.map +1 -0
  140. package/dist/control-plane-fetch.js +73 -0
  141. package/dist/control-plane-fetch.js.map +1 -0
  142. package/dist/control-plane-loader.d.ts +16 -0
  143. package/dist/control-plane-loader.d.ts.map +1 -0
  144. package/dist/control-plane-loader.js +24 -0
  145. package/dist/control-plane-loader.js.map +1 -0
  146. package/dist/dev/compat-shim.d.ts +40 -0
  147. package/dist/dev/compat-shim.d.ts.map +1 -0
  148. package/dist/dev/compat-shim.js +65 -0
  149. package/dist/dev/compat-shim.js.map +1 -0
  150. package/dist/dev/event-bus.d.ts +27 -0
  151. package/dist/dev/event-bus.d.ts.map +1 -0
  152. package/dist/dev/event-bus.js +32 -0
  153. package/dist/dev/event-bus.js.map +1 -0
  154. package/dist/dev/log-server.d.ts +52 -0
  155. package/dist/dev/log-server.d.ts.map +1 -0
  156. package/dist/dev/log-server.js +216 -0
  157. package/dist/dev/log-server.js.map +1 -0
  158. package/dist/dev/session-manager.d.ts +33 -0
  159. package/dist/dev/session-manager.d.ts.map +1 -0
  160. package/dist/dev/session-manager.js +132 -0
  161. package/dist/dev/session-manager.js.map +1 -0
  162. package/dist/dev/stream-renderer.d.ts +22 -0
  163. package/dist/dev/stream-renderer.d.ts.map +1 -0
  164. package/dist/dev/stream-renderer.js +65 -0
  165. package/dist/dev/stream-renderer.js.map +1 -0
  166. package/dist/dev/tunnel.d.ts +40 -0
  167. package/dist/dev/tunnel.d.ts.map +1 -0
  168. package/dist/dev/tunnel.js +139 -0
  169. package/dist/dev/tunnel.js.map +1 -0
  170. package/dist/effect-http.d.ts +10 -0
  171. package/dist/effect-http.d.ts.map +1 -0
  172. package/dist/effect-http.js +38 -0
  173. package/dist/effect-http.js.map +1 -0
  174. package/dist/errors-registry.d.ts +11 -0
  175. package/dist/errors-registry.d.ts.map +1 -0
  176. package/dist/errors-registry.js +554 -0
  177. package/dist/errors-registry.js.map +1 -0
  178. package/dist/errors.d.ts +58 -0
  179. package/dist/errors.d.ts.map +1 -0
  180. package/dist/errors.js +30 -0
  181. package/dist/errors.js.map +1 -0
  182. package/dist/help.d.ts +6 -0
  183. package/dist/help.d.ts.map +1 -0
  184. package/dist/help.js +100 -0
  185. package/dist/help.js.map +1 -0
  186. package/dist/history.d.ts +15 -0
  187. package/dist/history.d.ts.map +1 -0
  188. package/dist/history.js +69 -0
  189. package/dist/history.js.map +1 -0
  190. package/dist/hubspot-auth.d.ts +53 -0
  191. package/dist/hubspot-auth.d.ts.map +1 -0
  192. package/dist/hubspot-auth.js +301 -0
  193. package/dist/hubspot-auth.js.map +1 -0
  194. package/dist/hubspot-developer-client.d.ts +10 -0
  195. package/dist/hubspot-developer-client.d.ts.map +1 -0
  196. package/dist/hubspot-developer-client.js +212 -0
  197. package/dist/hubspot-developer-client.js.map +1 -0
  198. package/dist/index.d.ts +5 -0
  199. package/dist/index.d.ts.map +1 -0
  200. package/dist/index.js +4 -0
  201. package/dist/index.js.map +1 -0
  202. package/dist/init/templates.d.ts +18 -0
  203. package/dist/init/templates.d.ts.map +1 -0
  204. package/dist/init/templates.js +239 -0
  205. package/dist/init/templates.js.map +1 -0
  206. package/dist/load-env.d.ts +16 -0
  207. package/dist/load-env.d.ts.map +1 -0
  208. package/dist/load-env.js +69 -0
  209. package/dist/load-env.js.map +1 -0
  210. package/dist/machine-id.d.ts +3 -0
  211. package/dist/machine-id.d.ts.map +1 -0
  212. package/dist/machine-id.js +41 -0
  213. package/dist/machine-id.js.map +1 -0
  214. package/dist/paths.d.ts +4 -0
  215. package/dist/paths.d.ts.map +1 -0
  216. package/dist/paths.js +19 -0
  217. package/dist/paths.js.map +1 -0
  218. package/dist/prompt.d.ts +43 -0
  219. package/dist/prompt.d.ts.map +1 -0
  220. package/dist/prompt.js +379 -0
  221. package/dist/prompt.js.map +1 -0
  222. package/dist/reporter/human.d.ts +28 -0
  223. package/dist/reporter/human.d.ts.map +1 -0
  224. package/dist/reporter/human.js +126 -0
  225. package/dist/reporter/human.js.map +1 -0
  226. package/dist/reporter/index.d.ts +14 -0
  227. package/dist/reporter/index.d.ts.map +1 -0
  228. package/dist/reporter/index.js +37 -0
  229. package/dist/reporter/index.js.map +1 -0
  230. package/dist/reporter/json.d.ts +43 -0
  231. package/dist/reporter/json.d.ts.map +1 -0
  232. package/dist/reporter/json.js +146 -0
  233. package/dist/reporter/json.js.map +1 -0
  234. package/dist/reporter/style.d.ts +34 -0
  235. package/dist/reporter/style.d.ts.map +1 -0
  236. package/dist/reporter/style.js +97 -0
  237. package/dist/reporter/style.js.map +1 -0
  238. package/dist/reporter/types.d.ts +41 -0
  239. package/dist/reporter/types.d.ts.map +1 -0
  240. package/dist/reporter/types.js +2 -0
  241. package/dist/reporter/types.js.map +1 -0
  242. package/dist/result.d.ts +4 -0
  243. package/dist/result.d.ts.map +1 -0
  244. package/dist/result.js +2 -0
  245. package/dist/result.js.map +1 -0
  246. package/dist/services/account-store.d.ts +31 -0
  247. package/dist/services/account-store.d.ts.map +1 -0
  248. package/dist/services/account-store.js +135 -0
  249. package/dist/services/account-store.js.map +1 -0
  250. package/dist/services/app-paths.d.ts +25 -0
  251. package/dist/services/app-paths.d.ts.map +1 -0
  252. package/dist/services/app-paths.js +34 -0
  253. package/dist/services/app-paths.js.map +1 -0
  254. package/dist/services/cloudflare-auth.d.ts +83 -0
  255. package/dist/services/cloudflare-auth.d.ts.map +1 -0
  256. package/dist/services/cloudflare-auth.js +30 -0
  257. package/dist/services/cloudflare-auth.js.map +1 -0
  258. package/dist/services/cloudflare-kv.d.ts +45 -0
  259. package/dist/services/cloudflare-kv.d.ts.map +1 -0
  260. package/dist/services/cloudflare-kv.js +151 -0
  261. package/dist/services/cloudflare-kv.js.map +1 -0
  262. package/dist/services/command-history.d.ts +29 -0
  263. package/dist/services/command-history.d.ts.map +1 -0
  264. package/dist/services/command-history.js +62 -0
  265. package/dist/services/command-history.js.map +1 -0
  266. package/dist/services/control-plane.d.ts +32 -0
  267. package/dist/services/control-plane.d.ts.map +1 -0
  268. package/dist/services/control-plane.js +57 -0
  269. package/dist/services/control-plane.js.map +1 -0
  270. package/dist/services/env-loader.d.ts +18 -0
  271. package/dist/services/env-loader.d.ts.map +1 -0
  272. package/dist/services/env-loader.js +34 -0
  273. package/dist/services/env-loader.js.map +1 -0
  274. package/dist/services/http.d.ts +19 -0
  275. package/dist/services/http.d.ts.map +1 -0
  276. package/dist/services/http.js +9 -0
  277. package/dist/services/http.js.map +1 -0
  278. package/dist/services/live.d.ts +16 -0
  279. package/dist/services/live.d.ts.map +1 -0
  280. package/dist/services/live.js +26 -0
  281. package/dist/services/live.js.map +1 -0
  282. package/dist/services/machine-id.d.ts +18 -0
  283. package/dist/services/machine-id.d.ts.map +1 -0
  284. package/dist/services/machine-id.js +39 -0
  285. package/dist/services/machine-id.js.map +1 -0
  286. package/dist/services/reporter.d.ts +55 -0
  287. package/dist/services/reporter.d.ts.map +1 -0
  288. package/dist/services/reporter.js +49 -0
  289. package/dist/services/reporter.js.map +1 -0
  290. package/dist/state-store.d.ts +39 -0
  291. package/dist/state-store.d.ts.map +1 -0
  292. package/dist/state-store.js +89 -0
  293. package/dist/state-store.js.map +1 -0
  294. package/dist/telemetry.d.ts +13 -0
  295. package/dist/telemetry.d.ts.map +1 -0
  296. package/dist/telemetry.js +129 -0
  297. package/dist/telemetry.js.map +1 -0
  298. package/dist/tenant-state.d.ts +69 -0
  299. package/dist/tenant-state.d.ts.map +1 -0
  300. package/dist/tenant-state.js +161 -0
  301. package/dist/tenant-state.js.map +1 -0
  302. package/package.json +38 -0
@@ -0,0 +1,258 @@
1
+ import { mkdir, readFile, stat, writeFile } from 'node:fs/promises';
2
+ import { basename, dirname, join, resolve } from 'node:path';
3
+ import { generateLegacyCardProject } from '@hs-x/codegen';
4
+ import { classifyMigrationInput, validateProject } from '@hs-x/validator';
5
+ import { createDeployHubSpotDeveloperClient } from '../hubspot-developer-client.js';
6
+ import { emitHelp } from '../help.js';
7
+ import { createReporter } from '../reporter/index.js';
8
+ export async function migrateCommand({ argv, cwd, json, }) {
9
+ const subcommand = argv[1] ?? 'help';
10
+ if (subcommand !== 'inspect' &&
11
+ subcommand !== 'cards' &&
12
+ subcommand !== 'report' &&
13
+ subcommand !== 'swap-cards') {
14
+ emitHelp(migrateHelpText(), json);
15
+ return { exitCode: subcommand === 'help' ? 0 : 1 };
16
+ }
17
+ if (subcommand === 'swap-cards') {
18
+ return await migrateSwapCardsCommand({ argv, json });
19
+ }
20
+ const target = argv.find((arg, index) => index > 1 && !arg.startsWith('-'));
21
+ if (!target) {
22
+ throw new Error(`Usage: hs-x migrate ${subcommand} <path> [--json]`);
23
+ }
24
+ const input = await readMigrationInput(resolve(cwd, target));
25
+ const result = classifyMigrationInput(input);
26
+ if (subcommand === 'report') {
27
+ const response = {
28
+ ok: true,
29
+ command: 'migrate report',
30
+ summary: {
31
+ detected: result.detected,
32
+ automatable: result.automatable.length,
33
+ humanReview: result.manualWork.length,
34
+ cloudflareRequired: result.cloudflareRequired,
35
+ canGenerateCards: result.manualWork.length === 0,
36
+ },
37
+ inspect: result,
38
+ nextSteps: migrationNextSteps(result),
39
+ };
40
+ if (json) {
41
+ process.stdout.write(`${JSON.stringify(response, null, 2)}\n`);
42
+ }
43
+ else {
44
+ process.stdout.write(renderMigrationReport(response));
45
+ }
46
+ return { exitCode: 0 };
47
+ }
48
+ if (subcommand === 'inspect') {
49
+ const response = { ok: true, command: 'migrate inspect', ...result };
50
+ if (json) {
51
+ process.stdout.write(`${JSON.stringify(response, null, 2)}\n`);
52
+ }
53
+ else {
54
+ process.stdout.write(renderMigrationInspect(response));
55
+ }
56
+ return { exitCode: result.manualWork.length === 0 ? 0 : 1 };
57
+ }
58
+ if (result.manualWork.length > 0 || !isLegacyCardMigrationInput(input)) {
59
+ const response = { ok: false, command: 'migrate cards', ...result };
60
+ if (json) {
61
+ process.stdout.write(`${JSON.stringify(response, null, 2)}\n`);
62
+ }
63
+ else {
64
+ process.stdout.write(renderMigrationInspect(response));
65
+ }
66
+ return { exitCode: 1 };
67
+ }
68
+ const outputRoot = resolve(cwd, resolveFlag(argv, '--project') ?? 'migrated-app');
69
+ const generated = generateLegacyCardProject(input);
70
+ await writeProjectFiles(outputRoot, generated.files);
71
+ const validation = await validateProject({ root: outputRoot });
72
+ const response = {
73
+ ok: validation.ok,
74
+ command: 'migrate cards',
75
+ outputRoot,
76
+ createdFiles: Object.keys(generated.files).sort(),
77
+ inspect: result,
78
+ validation,
79
+ };
80
+ if (json) {
81
+ process.stdout.write(`${JSON.stringify(response, null, 2)}\n`);
82
+ }
83
+ else {
84
+ const reporter = createReporter({ command: 'migrate cards', argv });
85
+ reporter.header(basename(outputRoot));
86
+ reporter
87
+ .step('Generated migrated App Card project')
88
+ .ok(`${response.createdFiles.length} files ${outputRoot}`);
89
+ for (const file of response.createdFiles)
90
+ reporter.info(file);
91
+ if (validation.ok) {
92
+ reporter.step('Validation').ok();
93
+ }
94
+ else {
95
+ reporter.step('Validation').fail(`${validation.diagnostics.length} issue(s)`);
96
+ for (const d of validation.diagnostics) {
97
+ const code = d.code ?? 'diagnostic';
98
+ const msg = d.message ?? JSON.stringify(d);
99
+ reporter.error(code, msg);
100
+ }
101
+ }
102
+ reporter.done(validation.ok ? 'Migrated' : 'Failed', validation.ok ? 0 : 1);
103
+ }
104
+ return { exitCode: validation.ok ? 0 : 1 };
105
+ }
106
+ async function migrateSwapCardsCommand({ argv, json, }) {
107
+ const appId = readRequiredNumberFlag(argv, '--app-id');
108
+ const legacyCrmCardId = resolveFlag(argv, '--legacy-card-id');
109
+ const replacementAppCardId = resolveFlag(argv, '--replacement-card-id');
110
+ if (!legacyCrmCardId) {
111
+ throw new Error('--legacy-card-id is required.');
112
+ }
113
+ if (!replacementAppCardId) {
114
+ throw new Error('--replacement-card-id is required.');
115
+ }
116
+ const local = argv.includes('--local-hubspot');
117
+ const client = await createDeployHubSpotDeveloperClient({
118
+ argv,
119
+ local,
120
+ allowedOperations: ['hubspot-migration-read', 'hubspot-card-view-swap'],
121
+ });
122
+ const apps = await client.migrations.listApps();
123
+ const helpDeskAppCardId = resolveFlag(argv, '--helpdesk-card-id');
124
+ const swapRequest = helpDeskAppCardId === undefined
125
+ ? { appId, legacyCrmCardId, replacementAppCardId }
126
+ : { appId, legacyCrmCardId, replacementAppCardId, helpDeskAppCardId };
127
+ const swap = await client.migrations.migrateCardViews(swapRequest);
128
+ const response = {
129
+ ok: true,
130
+ command: 'migrate swap-cards',
131
+ appId,
132
+ legacyCrmCardId,
133
+ replacementAppCardId,
134
+ ...(helpDeskAppCardId === undefined ? {} : { helpDeskAppCardId }),
135
+ migrationApps: apps,
136
+ swap,
137
+ };
138
+ if (json) {
139
+ process.stdout.write(`${JSON.stringify(response, null, 2)}\n`);
140
+ }
141
+ else {
142
+ const reporter = createReporter({ command: 'migrate swap-cards', argv });
143
+ reporter.header(legacyCrmCardId);
144
+ reporter.step('Migrated legacy CRM card').ok(`-> App Card ${replacementAppCardId}`);
145
+ reporter.done('Swapped');
146
+ }
147
+ return { exitCode: 0 };
148
+ }
149
+ async function readMigrationInput(path) {
150
+ const stats = await stat(path);
151
+ const file = stats.isDirectory() ? join(path, 'migration.json') : path;
152
+ const contents = await readFile(file, 'utf8');
153
+ return JSON.parse(contents);
154
+ }
155
+ async function writeProjectFiles(root, files) {
156
+ for (const [file, contents] of Object.entries(files)) {
157
+ const path = join(root, file);
158
+ await mkdir(dirname(path), { recursive: true });
159
+ await writeFile(path, contents, { flag: 'wx' });
160
+ }
161
+ }
162
+ function isLegacyCardMigrationInput(value) {
163
+ if (!isRecord(value) || !isRecord(value.legacyApp) || !isRecord(value.legacyCard)) {
164
+ return false;
165
+ }
166
+ return (typeof value.legacyApp.name === 'string' &&
167
+ typeof value.legacyCard.id === 'string' &&
168
+ typeof value.legacyCard.title === 'string' &&
169
+ Array.isArray(value.legacyCard.objectTypes) &&
170
+ value.legacyCard.objectTypes.every((objectType) => typeof objectType === 'string') &&
171
+ typeof value.legacyCard.fetchUrl === 'string');
172
+ }
173
+ function renderMigrationInspect(data) {
174
+ const lines = [
175
+ `Migration source: ${data.source}`,
176
+ `Detected: ${data.detected.length ? data.detected.join(', ') : 'none'}`,
177
+ `Automatable findings: ${data.automatable.length}`,
178
+ `Human-review findings: ${data.manualWork.length}`,
179
+ `Runtime: ${data.cloudflareRequired ? 'Cloudflare required' : 'HubSpot-only compatible'}`,
180
+ ];
181
+ for (const finding of [...data.automatable, ...data.manualWork]) {
182
+ lines.push(`- ${finding.code}: ${finding.message}`);
183
+ }
184
+ return `${lines.join('\n')}\n`;
185
+ }
186
+ function renderMigrationReport(data) {
187
+ const lines = [
188
+ `Detected: ${data.summary.detected.length ? data.summary.detected.join(', ') : 'none'}`,
189
+ `Automatable findings: ${data.summary.automatable}`,
190
+ `Human-review findings: ${data.summary.humanReview}`,
191
+ `Runtime: ${data.summary.cloudflareRequired ? 'Cloudflare required' : 'HubSpot-only compatible'}`,
192
+ `Card generation: ${data.summary.canGenerateCards ? 'ready' : 'blocked'}`,
193
+ 'Next steps:',
194
+ ...data.nextSteps.map((step) => `- ${step}`),
195
+ ];
196
+ return `${lines.join('\n')}\n`;
197
+ }
198
+ function migrationNextSteps(result) {
199
+ if (result.manualWork.length > 0) {
200
+ return [
201
+ 'Resolve human-review findings before running `hs-x migrate cards`.',
202
+ result.cloudflareRequired
203
+ ? 'Plan Cloudflare runtime requirements before deploy.'
204
+ : 'Confirm HubSpot-only replacement card targets before deploy.',
205
+ ];
206
+ }
207
+ return [
208
+ 'Run `hs-x migrate cards <path> --project <dir>` to generate the replacement App Card project.',
209
+ result.cloudflareRequired
210
+ ? 'Run `hs-x connect cloudflare` before deploy.'
211
+ : 'Use `hs-x deploy --hubspot-only` once HubSpot upload is wired.',
212
+ ];
213
+ }
214
+ function readRequiredNumberFlag(argv, flag) {
215
+ const value = resolveFlag(argv, flag);
216
+ if (!value) {
217
+ throw new Error(`${flag} is required.`);
218
+ }
219
+ return readPositiveInteger(value, flag);
220
+ }
221
+ function readPositiveInteger(value, label) {
222
+ const parsed = Number.parseInt(value, 10);
223
+ if (!Number.isInteger(parsed) || parsed <= 0) {
224
+ throw new Error(`${label} must be a positive integer.`);
225
+ }
226
+ return parsed;
227
+ }
228
+ function isFlagValue(value) {
229
+ return value !== undefined && value.length > 0 && !value.startsWith('-');
230
+ }
231
+ function resolveFlag(argv, flag) {
232
+ const index = argv.indexOf(flag);
233
+ if (index !== -1) {
234
+ const next = argv[index + 1];
235
+ if (isFlagValue(next))
236
+ return next;
237
+ }
238
+ const prefix = `${flag}=`;
239
+ const found = argv.find((arg) => arg.startsWith(prefix));
240
+ if (!found)
241
+ return undefined;
242
+ const value = found.slice(prefix.length);
243
+ return value.length > 0 ? value : undefined;
244
+ }
245
+ function isRecord(value) {
246
+ return typeof value === 'object' && value !== null;
247
+ }
248
+ export function migrateHelpText() {
249
+ return `hs-x migrate
250
+
251
+ Commands:
252
+ hs-x migrate inspect <path> [--json] Classify a legacy migration input
253
+ hs-x migrate report <path> [--json] Summarize migration readiness
254
+ hs-x migrate cards <path> [--project <dir>] [--json]
255
+ hs-x migrate swap-cards --app-id <id> --legacy-card-id <id> --replacement-card-id <id> [--helpdesk-card-id <id>] [--local-hubspot] [--json]
256
+ `;
257
+ }
258
+ //# sourceMappingURL=migrate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/commands/migrate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { CliResult } from '../result.js';
2
+ /**
3
+ * `hs-x rollback` changes the "active" deploy pointer for a project/environment
4
+ * to a prior deploy id.
5
+ *
6
+ * Linked: POSTs to /v1/projects/{id}/rollback — control-plane owns the active
7
+ * deploy state and drives revisioned routing.
8
+ *
9
+ * Unlinked: rewrites `LocalActiveDeploy` in the tenant KV. The target deploy
10
+ * must exist in `owners/{ownerId}/projects/{projectId}/deploys/`. Without
11
+ * revisioned routing (ADR-009), this is a bookkeeping update; the user still
12
+ * needs to redeploy or otherwise re-route Cloudflare traffic to the prior
13
+ * worker if they want the rollback to take effect on live requests.
14
+ */
15
+ export declare function rollbackCommand({ argv, json, root, }: {
16
+ readonly argv: readonly string[];
17
+ readonly json: boolean;
18
+ readonly root?: string;
19
+ }): Promise<CliResult>;
20
+ export declare function rollbackHelpText(): string;
21
+ //# sourceMappingURL=rollback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rollback.d.ts","sourceRoot":"","sources":["../../src/commands/rollback.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,CAAC,EACpC,IAAI,EACJ,IAAI,EACJ,IAAI,GACL,EAAE;IACD,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,OAAO,CAAC,SAAS,CAAC,CAarB;AAwUD,wBAAgB,gBAAgB,IAAI,MAAM,CAezC"}
@@ -0,0 +1,301 @@
1
+ import { HttpClientRequest, Schema, schemas } from '@hs-x/types';
2
+ import { isLinked, loadStore } from '../account-store.js';
3
+ import { controlPlaneAuthHeaders } from '../control-plane-fetch.js';
4
+ import { executeCliHttp } from '../effect-http.js';
5
+ import { emitHelp } from '../help.js';
6
+ import { getMachineId } from '../machine-id.js';
7
+ import { isInteractive, promptConfirm, promptSelect, promptText } from '../prompt.js';
8
+ import { createReporter } from '../reporter/index.js';
9
+ import { loadTenantStateStore } from '../tenant-state.js';
10
+ /**
11
+ * `hs-x rollback` changes the "active" deploy pointer for a project/environment
12
+ * to a prior deploy id.
13
+ *
14
+ * Linked: POSTs to /v1/projects/{id}/rollback — control-plane owns the active
15
+ * deploy state and drives revisioned routing.
16
+ *
17
+ * Unlinked: rewrites `LocalActiveDeploy` in the tenant KV. The target deploy
18
+ * must exist in `owners/{ownerId}/projects/{projectId}/deploys/`. Without
19
+ * revisioned routing (ADR-009), this is a bookkeeping update; the user still
20
+ * needs to redeploy or otherwise re-route Cloudflare traffic to the prior
21
+ * worker if they want the rollback to take effect on live requests.
22
+ */
23
+ export async function rollbackCommand({ argv, json, root, }) {
24
+ if (argv[1] === 'help' || argv.includes('--help')) {
25
+ emitHelp(rollbackHelpText(), json);
26
+ return { exitCode: 0 };
27
+ }
28
+ const explicitControlPlaneUrl = resolveFlag(argv, '--control-plane-url') ?? process.env.HSX_CONTROL_PLANE_URL;
29
+ const linked = await isLinked();
30
+ if (linked || explicitControlPlaneUrl) {
31
+ return rollbackLinked({ argv, json });
32
+ }
33
+ return rollbackUnlinked({ argv, json, root: root ?? process.cwd() });
34
+ }
35
+ async function rollbackLinked({ argv, json, }) {
36
+ const interactive = !json && isInteractive();
37
+ const resolvedAcct = await resolveAccountIdOrPrompt({
38
+ argv,
39
+ json,
40
+ purpose: 'this rollback',
41
+ });
42
+ let projectId = resolveFlag(argv, '--project-id') ?? process.env.HSX_PROJECT_ID;
43
+ const accountId = resolveFlag(argv, '--account-id') ?? process.env.HSX_ACCOUNT_ID ?? resolvedAcct.accountId;
44
+ const controlPlaneUrl = resolveFlag(argv, '--control-plane-url') ?? process.env.HSX_CONTROL_PLANE_URL;
45
+ let targetDeployId = resolveFlag(argv, '--deploy-id');
46
+ if (interactive) {
47
+ projectId = await promptMissingText('HS-X project id', projectId);
48
+ if (projectId === undefined)
49
+ return cancelledResult(argv, 'rollback');
50
+ targetDeployId = await promptMissingText('Deploy id to roll back to', targetDeployId, (value) => (value.length > 0 ? undefined : 'Deploy id is required.'));
51
+ if (targetDeployId === undefined)
52
+ return cancelledResult(argv, 'rollback');
53
+ if (!argv.includes('--force') && !argv.includes('-y') && !argv.includes('--yes')) {
54
+ const confirmed = await promptConfirm({
55
+ message: `Roll back ${projectId} to ${targetDeployId}?`,
56
+ default: false,
57
+ });
58
+ if (confirmed === undefined || !confirmed)
59
+ return cancelledResult(argv, 'rollback');
60
+ }
61
+ }
62
+ if (!projectId || !accountId || !controlPlaneUrl) {
63
+ throw new Error('Linked rollback requires --project-id/HSX_PROJECT_ID, --account-id/HSX_ACCOUNT_ID, and --control-plane-url/HSX_CONTROL_PLANE_URL.');
64
+ }
65
+ const rollback = await requestControlPlaneRollback({
66
+ controlPlaneUrl,
67
+ projectId,
68
+ accountId,
69
+ targetDeployId,
70
+ force: argv.includes('--force'),
71
+ userId: resolveFlag(argv, '--user-id') ?? process.env.HSX_USER_ID ?? 'local-cli-user',
72
+ });
73
+ const result = {
74
+ ok: true,
75
+ command: 'rollback',
76
+ linkState: 'linked',
77
+ mode: 'control-plane-rollback',
78
+ rollback,
79
+ };
80
+ if (json) {
81
+ process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
82
+ }
83
+ else {
84
+ const reporter = createReporter({ command: 'rollback', argv });
85
+ reporter.header(projectId);
86
+ reporter.block(renderControlPlaneRollback(rollback));
87
+ reporter.done('Rolled back');
88
+ }
89
+ return { exitCode: 0 };
90
+ }
91
+ async function rollbackUnlinked({ argv, json, root, }) {
92
+ const projectId = resolveFlag(argv, '--project-id') ?? process.env.HSX_PROJECT_ID;
93
+ const environment = resolveFlag(argv, '--environment') ?? resolveFlag(argv, '--env') ?? 'production';
94
+ const targetDeployId = resolveFlag(argv, '--deploy-id');
95
+ if (!projectId) {
96
+ throw new Error('Unlinked rollback requires --project-id (or HSX_PROJECT_ID). Linked rollback also accepts --account-id + --control-plane-url; run `hs-x link` to use it.');
97
+ }
98
+ if (!targetDeployId) {
99
+ throw new Error('Unlinked rollback requires --deploy-id (the prior deploy to make active). Use `hs-x history` or check `.hs-x/` deploy entries for valid ids.');
100
+ }
101
+ const context = await loadTenantStateStore({ argv, root });
102
+ if (!context) {
103
+ throw new Error('No `.hs-x/cloudflare.json` found in this project. Unlinked rollback can only operate on projects that have been deployed at least once.');
104
+ }
105
+ const { pointer, stateStore } = context;
106
+ const target = await stateStore.getDeploy({ projectId, deployId: targetDeployId });
107
+ if (!target) {
108
+ throw new Error(`Deploy ${targetDeployId} not found in tenant state for owner ${pointer.ownerId} (project ${projectId}).`);
109
+ }
110
+ if (target.environment !== environment) {
111
+ throw new Error(`Deploy ${targetDeployId} is for environment ${target.environment}, not ${environment}. Pass --environment ${target.environment} to roll back its environment.`);
112
+ }
113
+ const previousActive = await stateStore.getActive({ projectId, environment });
114
+ if (previousActive?.deployId === targetDeployId) {
115
+ const message = `Deploy ${targetDeployId} is already active for ${projectId}/${environment}.`;
116
+ if (json) {
117
+ process.stdout.write(`${JSON.stringify({
118
+ ok: true,
119
+ command: 'rollback',
120
+ linkState: 'unlinked',
121
+ mode: 'tenant-kv-rollback',
122
+ projectId,
123
+ environment,
124
+ active: previousActive,
125
+ noop: true,
126
+ }, null, 2)}\n`);
127
+ }
128
+ else {
129
+ const reporter = createReporter({ command: 'rollback', argv });
130
+ reporter.header(projectId);
131
+ reporter.info(message);
132
+ reporter.done('No change');
133
+ }
134
+ return { exitCode: 0 };
135
+ }
136
+ if (!json && isInteractive() && !argv.includes('--force') && !argv.includes('--yes') && !argv.includes('-y')) {
137
+ const confirmed = await promptConfirm({
138
+ message: `Roll back ${projectId}/${environment} to ${targetDeployId}${previousActive ? ` (currently ${previousActive.deployId})` : ''}?`,
139
+ default: false,
140
+ });
141
+ if (confirmed === undefined || !confirmed)
142
+ return cancelledResult(argv, 'rollback');
143
+ }
144
+ const now = new Date().toISOString();
145
+ const active = Schema.decodeUnknownSync(schemas.LocalActiveDeploy)({
146
+ ownerId: pointer.ownerId,
147
+ projectId,
148
+ deployId: targetDeployId,
149
+ environment,
150
+ updatedAt: now,
151
+ });
152
+ await stateStore.setActive(active);
153
+ const machineId = await getMachineId().catch(() => undefined);
154
+ const result = {
155
+ ok: true,
156
+ command: 'rollback',
157
+ linkState: 'unlinked',
158
+ mode: 'tenant-kv-rollback',
159
+ projectId,
160
+ environment,
161
+ active,
162
+ previousActive,
163
+ ...(machineId ? { machineId } : {}),
164
+ warning: 'Active pointer updated in tenant state. Without linked revisioned routing this does not redirect live Cloudflare traffic; redeploy or manually re-route to the rolled-back worker if needed.',
165
+ };
166
+ if (json) {
167
+ process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
168
+ }
169
+ else {
170
+ const reporter = createReporter({ command: 'rollback', argv });
171
+ reporter.header(projectId);
172
+ reporter.info(previousActive
173
+ ? `Active deploy: ${previousActive.deployId} → ${targetDeployId} (${environment})`
174
+ : `Active deploy: (none) → ${targetDeployId} (${environment})`);
175
+ reporter.info(result.warning);
176
+ reporter.done('Rolled back (unlinked)');
177
+ }
178
+ return { exitCode: 0 };
179
+ }
180
+ async function requestControlPlaneRollback({ controlPlaneUrl, projectId, accountId, targetDeployId, force, userId, }) {
181
+ const response = await hostedHttp({
182
+ url: new URL(`/v1/projects/${encodeURIComponent(projectId)}/rollback`, controlPlaneUrl),
183
+ method: 'POST',
184
+ headers: await controlPlaneAuthHeaders(userId),
185
+ body: {
186
+ accountId,
187
+ ...(targetDeployId ? { targetDeployId } : {}),
188
+ ...(force ? { force } : {}),
189
+ },
190
+ });
191
+ const body = await response.json();
192
+ if (!response.ok) {
193
+ throw new Error(isRecord(body) && typeof body.message === 'string'
194
+ ? body.message
195
+ : `Control-plane rollback failed with status ${response.status}`);
196
+ }
197
+ return Schema.decodeUnknownSync(schemas.DeployRollbackResult)(body);
198
+ }
199
+ async function hostedHttp(input) {
200
+ const headers = { ...(input.headers ?? {}) };
201
+ let request = HttpClientRequest.make(input.method ?? 'GET')(input.url).pipe(HttpClientRequest.setHeaders(headers));
202
+ if (input.body !== undefined) {
203
+ headers['content-type'] = headers['content-type'] ?? 'application/json';
204
+ request = request.pipe(HttpClientRequest.setHeaders(headers), HttpClientRequest.bodyText(typeof input.body === 'string' ? input.body : JSON.stringify(input.body), headers['content-type']));
205
+ }
206
+ return executeCliHttp(request);
207
+ }
208
+ async function resolveAccountIdOrPrompt(input) {
209
+ const fromFlag = resolveFlag(input.argv, '--account-id') ?? process.env.HSX_ACCOUNT_ID;
210
+ if (fromFlag && fromFlag.length > 0)
211
+ return { accountId: fromFlag, fromPrompt: false };
212
+ const store = await loadStore();
213
+ const ids = Object.keys(store.accounts);
214
+ if (ids.length === 0)
215
+ return { fromPrompt: false };
216
+ const defaultId = store.defaultAccountId;
217
+ const yes = input.argv.includes('--yes') || input.argv.includes('-y');
218
+ if (input.json || !isInteractive() || yes) {
219
+ if (defaultId && ids.includes(defaultId)) {
220
+ return { accountId: defaultId, fromPrompt: false };
221
+ }
222
+ return { fromPrompt: false };
223
+ }
224
+ const picked = await promptSelect({
225
+ message: `Which HS-X account for ${input.purpose}?`,
226
+ ...(defaultId && ids.includes(defaultId) ? { default: defaultId } : {}),
227
+ options: ids.map((id) => {
228
+ const a = store.accounts[id];
229
+ return {
230
+ value: id,
231
+ label: id,
232
+ description: a
233
+ ? `portal ${a.hubspotPortalId} - ${a.displayName}${id === defaultId ? ' (default)' : ''}`
234
+ : '',
235
+ };
236
+ }),
237
+ });
238
+ return picked ? { accountId: picked, fromPrompt: true } : { fromPrompt: false };
239
+ }
240
+ async function promptMissingText(message, current, validate) {
241
+ if (current && current.length > 0)
242
+ return current;
243
+ const answer = await promptText({
244
+ message,
245
+ ...(validate ? { validate } : {}),
246
+ });
247
+ return answer === undefined ? undefined : answer;
248
+ }
249
+ function cancelledResult(argv, command) {
250
+ const reporter = createReporter({ command, argv });
251
+ reporter.info('Cancelled.');
252
+ return { exitCode: 130 };
253
+ }
254
+ function renderControlPlaneRollback(rollback) {
255
+ const lines = [
256
+ `Rolled back ${rollback.projectId}`,
257
+ `Previous active: ${rollback.rolledBackFrom.deployId}`,
258
+ `New active: ${rollback.active.deployId}`,
259
+ ];
260
+ for (const warning of rollback.warnings) {
261
+ lines.push(`Warning: ${warning}`);
262
+ }
263
+ return `${lines.join('\n')}\n`;
264
+ }
265
+ export function rollbackHelpText() {
266
+ return `hs-x rollback
267
+
268
+ Linked (after \`hs-x login\`):
269
+ hs-x rollback --account-id <id> --project-id <id> --deploy-id <id> [--force] [--json]
270
+ POSTs to control-plane; rewrites the active deploy pointer and updates routing.
271
+
272
+ Unlinked (default):
273
+ hs-x rollback --project-id <id> --deploy-id <id> [--environment <env>] [--cwd <dir>]
274
+ Updates the active deploy pointer in tenant Cloudflare KV. Without revisioned
275
+ routing this is a bookkeeping change; redeploy or manually re-route Cloudflare
276
+ traffic if you want the rollback to take effect on live requests.
277
+
278
+ Interactive prompts apply when run in a TTY without --yes/--force.
279
+ \t`;
280
+ }
281
+ function isFlagValue(value) {
282
+ return value !== undefined && value.length > 0 && !value.startsWith('-');
283
+ }
284
+ function resolveFlag(argv, flag) {
285
+ const index = argv.indexOf(flag);
286
+ if (index !== -1) {
287
+ const next = argv[index + 1];
288
+ if (isFlagValue(next))
289
+ return next;
290
+ }
291
+ const prefix = `${flag}=`;
292
+ const found = argv.find((arg) => arg.startsWith(prefix));
293
+ if (!found)
294
+ return undefined;
295
+ const value = found.slice(prefix.length);
296
+ return value.length > 0 ? value : undefined;
297
+ }
298
+ function isRecord(value) {
299
+ return typeof value === 'object' && value !== null;
300
+ }
301
+ //# sourceMappingURL=rollback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rollback.js","sourceRoot":"","sources":["../../src/commands/rollback.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { CliResult } from '../result.js';
2
+ export declare function secretsCommand({ argv, json, }: {
3
+ readonly argv: readonly string[];
4
+ readonly json: boolean;
5
+ }): Promise<CliResult>;
6
+ export declare function secretsHelpText(): string;
7
+ //# sourceMappingURL=secrets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../../src/commands/secrets.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,wBAAsB,cAAc,CAAC,EACnC,IAAI,EACJ,IAAI,GACL,EAAE;IACD,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB,GAAG,OAAO,CAAC,SAAS,CAAC,CAsJrB;AAkFD,wBAAgB,eAAe,IAAI,MAAM,CAkBxC"}