workos 0.19.0 → 0.20.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 (681) hide show
  1. package/README.md +4 -646
  2. package/bin/workos.js +44 -0
  3. package/package.json +18 -99
  4. package/LICENSE +0 -47
  5. package/dist/bin.d.ts +0 -2
  6. package/dist/bin.js +0 -1790
  7. package/dist/bin.js.map +0 -1
  8. package/dist/cli.config.d.ts +0 -88
  9. package/dist/cli.config.js +0 -110
  10. package/dist/cli.config.js.map +0 -1
  11. package/dist/commands/api/catalog.d.ts +0 -23
  12. package/dist/commands/api/catalog.js +0 -97
  13. package/dist/commands/api/catalog.js.map +0 -1
  14. package/dist/commands/api/format.d.ts +0 -5
  15. package/dist/commands/api/format.js +0 -46
  16. package/dist/commands/api/format.js.map +0 -1
  17. package/dist/commands/api/index.d.ts +0 -15
  18. package/dist/commands/api/index.js +0 -213
  19. package/dist/commands/api/index.js.map +0 -1
  20. package/dist/commands/api/interactive.d.ts +0 -3
  21. package/dist/commands/api/interactive.js +0 -133
  22. package/dist/commands/api/interactive.js.map +0 -1
  23. package/dist/commands/api/request.d.ts +0 -14
  24. package/dist/commands/api/request.js +0 -38
  25. package/dist/commands/api/request.js.map +0 -1
  26. package/dist/commands/api-key-mgmt.d.ts +0 -16
  27. package/dist/commands/api-key-mgmt.js +0 -96
  28. package/dist/commands/api-key-mgmt.js.map +0 -1
  29. package/dist/commands/audit-log.d.ts +0 -26
  30. package/dist/commands/audit-log.js +0 -155
  31. package/dist/commands/audit-log.js.map +0 -1
  32. package/dist/commands/auth-status.d.ts +0 -1
  33. package/dist/commands/auth-status.js +0 -57
  34. package/dist/commands/auth-status.js.map +0 -1
  35. package/dist/commands/claim.d.ts +0 -11
  36. package/dist/commands/claim.js +0 -143
  37. package/dist/commands/claim.js.map +0 -1
  38. package/dist/commands/config.d.ts +0 -3
  39. package/dist/commands/config.js +0 -54
  40. package/dist/commands/config.js.map +0 -1
  41. package/dist/commands/connection.d.ts +0 -13
  42. package/dist/commands/connection.js +0 -96
  43. package/dist/commands/connection.js.map +0 -1
  44. package/dist/commands/debug-sso.d.ts +0 -1
  45. package/dist/commands/debug-sso.js +0 -78
  46. package/dist/commands/debug-sso.js.map +0 -1
  47. package/dist/commands/debug-sync.d.ts +0 -1
  48. package/dist/commands/debug-sync.js +0 -102
  49. package/dist/commands/debug-sync.js.map +0 -1
  50. package/dist/commands/debug.d.ts +0 -28
  51. package/dist/commands/debug.js +0 -406
  52. package/dist/commands/debug.js.map +0 -1
  53. package/dist/commands/dev.d.ts +0 -22
  54. package/dist/commands/dev.js +0 -145
  55. package/dist/commands/dev.js.map +0 -1
  56. package/dist/commands/directory.d.ts +0 -27
  57. package/dist/commands/directory.js +0 -176
  58. package/dist/commands/directory.js.map +0 -1
  59. package/dist/commands/doctor.d.ts +0 -12
  60. package/dist/commands/doctor.js +0 -41
  61. package/dist/commands/doctor.js.map +0 -1
  62. package/dist/commands/emulate.d.ts +0 -7
  63. package/dist/commands/emulate.js +0 -69
  64. package/dist/commands/emulate.js.map +0 -1
  65. package/dist/commands/env.d.ts +0 -19
  66. package/dist/commands/env.js +0 -303
  67. package/dist/commands/env.js.map +0 -1
  68. package/dist/commands/event.d.ts +0 -9
  69. package/dist/commands/event.js +0 -43
  70. package/dist/commands/event.js.map +0 -1
  71. package/dist/commands/feature-flag.d.ts +0 -12
  72. package/dist/commands/feature-flag.js +0 -96
  73. package/dist/commands/feature-flag.js.map +0 -1
  74. package/dist/commands/install-skill.d.ts +0 -85
  75. package/dist/commands/install-skill.js +0 -332
  76. package/dist/commands/install-skill.js.map +0 -1
  77. package/dist/commands/install.d.ts +0 -6
  78. package/dist/commands/install.js +0 -51
  79. package/dist/commands/install.js.map +0 -1
  80. package/dist/commands/invitation.d.ts +0 -19
  81. package/dist/commands/invitation.js +0 -94
  82. package/dist/commands/invitation.js.map +0 -1
  83. package/dist/commands/list-skills.d.ts +0 -4
  84. package/dist/commands/list-skills.js +0 -52
  85. package/dist/commands/list-skills.js.map +0 -1
  86. package/dist/commands/login.d.ts +0 -32
  87. package/dist/commands/login.js +0 -239
  88. package/dist/commands/login.js.map +0 -1
  89. package/dist/commands/logout.d.ts +0 -1
  90. package/dist/commands/logout.js +0 -17
  91. package/dist/commands/logout.js.map +0 -1
  92. package/dist/commands/mcp.d.ts +0 -14
  93. package/dist/commands/mcp.js +0 -99
  94. package/dist/commands/mcp.js.map +0 -1
  95. package/dist/commands/membership.d.ts +0 -20
  96. package/dist/commands/membership.js +0 -129
  97. package/dist/commands/membership.js.map +0 -1
  98. package/dist/commands/migrations.d.ts +0 -2
  99. package/dist/commands/migrations.js +0 -50
  100. package/dist/commands/migrations.js.map +0 -1
  101. package/dist/commands/onboard-user.d.ts +0 -7
  102. package/dist/commands/onboard-user.js +0 -61
  103. package/dist/commands/onboard-user.js.map +0 -1
  104. package/dist/commands/org-domain.d.ts +0 -4
  105. package/dist/commands/org-domain.js +0 -45
  106. package/dist/commands/org-domain.js.map +0 -1
  107. package/dist/commands/organization.d.ts +0 -14
  108. package/dist/commands/organization.js +0 -103
  109. package/dist/commands/organization.js.map +0 -1
  110. package/dist/commands/permission.d.ts +0 -20
  111. package/dist/commands/permission.js +0 -93
  112. package/dist/commands/permission.js.map +0 -1
  113. package/dist/commands/portal.d.ts +0 -7
  114. package/dist/commands/portal.js +0 -26
  115. package/dist/commands/portal.js.map +0 -1
  116. package/dist/commands/role.d.ts +0 -17
  117. package/dist/commands/role.js +0 -122
  118. package/dist/commands/role.js.map +0 -1
  119. package/dist/commands/seed.d.ts +0 -6
  120. package/dist/commands/seed.js +0 -298
  121. package/dist/commands/seed.js.map +0 -1
  122. package/dist/commands/session.d.ts +0 -8
  123. package/dist/commands/session.js +0 -63
  124. package/dist/commands/session.js.map +0 -1
  125. package/dist/commands/setup-org.d.ts +0 -6
  126. package/dist/commands/setup-org.js +0 -99
  127. package/dist/commands/setup-org.js.map +0 -1
  128. package/dist/commands/setup.d.ts +0 -50
  129. package/dist/commands/setup.js +0 -237
  130. package/dist/commands/setup.js.map +0 -1
  131. package/dist/commands/telemetry.d.ts +0 -3
  132. package/dist/commands/telemetry.js +0 -88
  133. package/dist/commands/telemetry.js.map +0 -1
  134. package/dist/commands/uninstall-skill.d.ts +0 -11
  135. package/dist/commands/uninstall-skill.js +0 -117
  136. package/dist/commands/uninstall-skill.js.map +0 -1
  137. package/dist/commands/user.d.ts +0 -19
  138. package/dist/commands/user.js +0 -92
  139. package/dist/commands/user.js.map +0 -1
  140. package/dist/commands/vault-run.d.ts +0 -13
  141. package/dist/commands/vault-run.js +0 -195
  142. package/dist/commands/vault-run.js.map +0 -1
  143. package/dist/commands/vault.d.ts +0 -25
  144. package/dist/commands/vault.js +0 -153
  145. package/dist/commands/vault.js.map +0 -1
  146. package/dist/commands/verify-login.d.ts +0 -25
  147. package/dist/commands/verify-login.js +0 -158
  148. package/dist/commands/verify-login.js.map +0 -1
  149. package/dist/commands/webhook.d.ts +0 -3
  150. package/dist/commands/webhook.js +0 -92
  151. package/dist/commands/webhook.js.map +0 -1
  152. package/dist/craft-pre-release.sh +0 -10
  153. package/dist/dashboard/components/AnimatedLogo.d.ts +0 -8
  154. package/dist/dashboard/components/AnimatedLogo.js +0 -16
  155. package/dist/dashboard/components/AnimatedLogo.js.map +0 -1
  156. package/dist/dashboard/components/CompletionView.d.ts +0 -13
  157. package/dist/dashboard/components/CompletionView.js +0 -25
  158. package/dist/dashboard/components/CompletionView.js.map +0 -1
  159. package/dist/dashboard/components/ConfirmPrompt.d.ts +0 -9
  160. package/dist/dashboard/components/ConfirmPrompt.js +0 -25
  161. package/dist/dashboard/components/ConfirmPrompt.js.map +0 -1
  162. package/dist/dashboard/components/CredentialsForm.d.ts +0 -10
  163. package/dist/dashboard/components/CredentialsForm.js +0 -47
  164. package/dist/dashboard/components/CredentialsForm.js.map +0 -1
  165. package/dist/dashboard/components/Dashboard.d.ts +0 -3
  166. package/dist/dashboard/components/Dashboard.js +0 -100
  167. package/dist/dashboard/components/Dashboard.js.map +0 -1
  168. package/dist/dashboard/components/DashboardLayout.d.ts +0 -24
  169. package/dist/dashboard/components/DashboardLayout.js +0 -25
  170. package/dist/dashboard/components/DashboardLayout.js.map +0 -1
  171. package/dist/dashboard/components/DiffPanel.d.ts +0 -9
  172. package/dist/dashboard/components/DiffPanel.js +0 -136
  173. package/dist/dashboard/components/DiffPanel.js.map +0 -1
  174. package/dist/dashboard/components/InlinePrompt.d.ts +0 -8
  175. package/dist/dashboard/components/InlinePrompt.js +0 -19
  176. package/dist/dashboard/components/InlinePrompt.js.map +0 -1
  177. package/dist/dashboard/components/OutputPanel.d.ts +0 -10
  178. package/dist/dashboard/components/OutputPanel.js +0 -100
  179. package/dist/dashboard/components/OutputPanel.js.map +0 -1
  180. package/dist/dashboard/components/Panel.d.ts +0 -12
  181. package/dist/dashboard/components/Panel.js +0 -6
  182. package/dist/dashboard/components/Panel.js.map +0 -1
  183. package/dist/dashboard/components/TextInput.d.ts +0 -13
  184. package/dist/dashboard/components/TextInput.js +0 -57
  185. package/dist/dashboard/components/TextInput.js.map +0 -1
  186. package/dist/dashboard/components/WelcomeArt.d.ts +0 -2
  187. package/dist/dashboard/components/WelcomeArt.js +0 -9
  188. package/dist/dashboard/components/WelcomeArt.js.map +0 -1
  189. package/dist/dashboard/hooks/useAnimation.d.ts +0 -7
  190. package/dist/dashboard/hooks/useAnimation.js +0 -24
  191. package/dist/dashboard/hooks/useAnimation.js.map +0 -1
  192. package/dist/dashboard/hooks/useKeyboard.d.ts +0 -8
  193. package/dist/dashboard/hooks/useKeyboard.js +0 -18
  194. package/dist/dashboard/hooks/useKeyboard.js.map +0 -1
  195. package/dist/dashboard/hooks/useTerminalSize.d.ts +0 -8
  196. package/dist/dashboard/hooks/useTerminalSize.js +0 -23
  197. package/dist/dashboard/hooks/useTerminalSize.js.map +0 -1
  198. package/dist/dashboard/index.d.ts +0 -6
  199. package/dist/dashboard/index.js +0 -36
  200. package/dist/dashboard/index.js.map +0 -1
  201. package/dist/dashboard/lib/diff-utils.d.ts +0 -21
  202. package/dist/dashboard/lib/diff-utils.js +0 -271
  203. package/dist/dashboard/lib/diff-utils.js.map +0 -1
  204. package/dist/dashboard/lib/logo-frames.d.ts +0 -20
  205. package/dist/dashboard/lib/logo-frames.js +0 -109
  206. package/dist/dashboard/lib/logo-frames.js.map +0 -1
  207. package/dist/dashboard/lib/welcome-art.d.ts +0 -1
  208. package/dist/dashboard/lib/welcome-art.js +0 -5
  209. package/dist/dashboard/lib/welcome-art.js.map +0 -1
  210. package/dist/dashboard/types.d.ts +0 -5
  211. package/dist/dashboard/types.js +0 -2
  212. package/dist/dashboard/types.js.map +0 -1
  213. package/dist/doctor/agent-prompt.d.ts +0 -10
  214. package/dist/doctor/agent-prompt.js +0 -190
  215. package/dist/doctor/agent-prompt.js.map +0 -1
  216. package/dist/doctor/checks/ai-analysis.d.ts +0 -9
  217. package/dist/doctor/checks/ai-analysis.js +0 -124
  218. package/dist/doctor/checks/ai-analysis.js.map +0 -1
  219. package/dist/doctor/checks/auth-patterns.d.ts +0 -2
  220. package/dist/doctor/checks/auth-patterns.js +0 -569
  221. package/dist/doctor/checks/auth-patterns.js.map +0 -1
  222. package/dist/doctor/checks/connectivity.d.ts +0 -2
  223. package/dist/doctor/checks/connectivity.js +0 -35
  224. package/dist/doctor/checks/connectivity.js.map +0 -1
  225. package/dist/doctor/checks/dashboard.d.ts +0 -3
  226. package/dist/doctor/checks/dashboard.js +0 -123
  227. package/dist/doctor/checks/dashboard.js.map +0 -1
  228. package/dist/doctor/checks/environment.d.ts +0 -2
  229. package/dist/doctor/checks/environment.js +0 -86
  230. package/dist/doctor/checks/environment.js.map +0 -1
  231. package/dist/doctor/checks/framework.d.ts +0 -2
  232. package/dist/doctor/checks/framework.js +0 -94
  233. package/dist/doctor/checks/framework.js.map +0 -1
  234. package/dist/doctor/checks/host-execution.d.ts +0 -2
  235. package/dist/doctor/checks/host-execution.js +0 -21
  236. package/dist/doctor/checks/host-execution.js.map +0 -1
  237. package/dist/doctor/checks/language.d.ts +0 -6
  238. package/dist/doctor/checks/language.js +0 -104
  239. package/dist/doctor/checks/language.js.map +0 -1
  240. package/dist/doctor/checks/mcp.d.ts +0 -15
  241. package/dist/doctor/checks/mcp.js +0 -34
  242. package/dist/doctor/checks/mcp.js.map +0 -1
  243. package/dist/doctor/checks/runtime.d.ts +0 -2
  244. package/dist/doctor/checks/runtime.js +0 -20
  245. package/dist/doctor/checks/runtime.js.map +0 -1
  246. package/dist/doctor/checks/sdk.d.ts +0 -2
  247. package/dist/doctor/checks/sdk.js +0 -192
  248. package/dist/doctor/checks/sdk.js.map +0 -1
  249. package/dist/doctor/checks/skills.d.ts +0 -9
  250. package/dist/doctor/checks/skills.js +0 -84
  251. package/dist/doctor/checks/skills.js.map +0 -1
  252. package/dist/doctor/clipboard.d.ts +0 -1
  253. package/dist/doctor/clipboard.js +0 -43
  254. package/dist/doctor/clipboard.js.map +0 -1
  255. package/dist/doctor/index.d.ts +0 -26
  256. package/dist/doctor/index.js +0 -182
  257. package/dist/doctor/index.js.map +0 -1
  258. package/dist/doctor/issues.d.ts +0 -63
  259. package/dist/doctor/issues.js +0 -199
  260. package/dist/doctor/issues.js.map +0 -1
  261. package/dist/doctor/json-output.d.ts +0 -2
  262. package/dist/doctor/json-output.js +0 -4
  263. package/dist/doctor/json-output.js.map +0 -1
  264. package/dist/doctor/output.d.ts +0 -7
  265. package/dist/doctor/output.js +0 -289
  266. package/dist/doctor/output.js.map +0 -1
  267. package/dist/doctor/types.d.ts +0 -203
  268. package/dist/doctor/types.js +0 -2
  269. package/dist/doctor/types.js.map +0 -1
  270. package/dist/integrations/dotnet/index.d.ts +0 -8
  271. package/dist/integrations/dotnet/index.js +0 -170
  272. package/dist/integrations/dotnet/index.js.map +0 -1
  273. package/dist/integrations/elixir/index.d.ts +0 -8
  274. package/dist/integrations/elixir/index.js +0 -146
  275. package/dist/integrations/elixir/index.js.map +0 -1
  276. package/dist/integrations/go/index.d.ts +0 -11
  277. package/dist/integrations/go/index.js +0 -212
  278. package/dist/integrations/go/index.js.map +0 -1
  279. package/dist/integrations/kotlin/index.d.ts +0 -4
  280. package/dist/integrations/kotlin/index.js +0 -78
  281. package/dist/integrations/kotlin/index.js.map +0 -1
  282. package/dist/integrations/nextjs/index.d.ts +0 -4
  283. package/dist/integrations/nextjs/index.js +0 -93
  284. package/dist/integrations/nextjs/index.js.map +0 -1
  285. package/dist/integrations/nextjs/utils.d.ts +0 -8
  286. package/dist/integrations/nextjs/utils.js +0 -68
  287. package/dist/integrations/nextjs/utils.js.map +0 -1
  288. package/dist/integrations/node/index.d.ts +0 -4
  289. package/dist/integrations/node/index.js +0 -52
  290. package/dist/integrations/node/index.js.map +0 -1
  291. package/dist/integrations/php/index.d.ts +0 -4
  292. package/dist/integrations/php/index.js +0 -51
  293. package/dist/integrations/php/index.js.map +0 -1
  294. package/dist/integrations/php-laravel/index.d.ts +0 -4
  295. package/dist/integrations/php-laravel/index.js +0 -51
  296. package/dist/integrations/php-laravel/index.js.map +0 -1
  297. package/dist/integrations/python/index.d.ts +0 -9
  298. package/dist/integrations/python/index.js +0 -249
  299. package/dist/integrations/python/index.js.map +0 -1
  300. package/dist/integrations/react/index.d.ts +0 -4
  301. package/dist/integrations/react/index.js +0 -49
  302. package/dist/integrations/react/index.js.map +0 -1
  303. package/dist/integrations/react-router/index.d.ts +0 -4
  304. package/dist/integrations/react-router/index.js +0 -94
  305. package/dist/integrations/react-router/index.js.map +0 -1
  306. package/dist/integrations/react-router/utils.d.ts +0 -10
  307. package/dist/integrations/react-router/utils.js +0 -162
  308. package/dist/integrations/react-router/utils.js.map +0 -1
  309. package/dist/integrations/ruby/index.d.ts +0 -8
  310. package/dist/integrations/ruby/index.js +0 -137
  311. package/dist/integrations/ruby/index.js.map +0 -1
  312. package/dist/integrations/sveltekit/index.d.ts +0 -4
  313. package/dist/integrations/sveltekit/index.js +0 -50
  314. package/dist/integrations/sveltekit/index.js.map +0 -1
  315. package/dist/integrations/tanstack-start/index.d.ts +0 -4
  316. package/dist/integrations/tanstack-start/index.js +0 -51
  317. package/dist/integrations/tanstack-start/index.js.map +0 -1
  318. package/dist/integrations/vanilla-js/index.d.ts +0 -4
  319. package/dist/integrations/vanilla-js/index.js +0 -49
  320. package/dist/integrations/vanilla-js/index.js.map +0 -1
  321. package/dist/lib/__test-helpers__/mock-unclaimed-env-api-error.d.ts +0 -7
  322. package/dist/lib/__test-helpers__/mock-unclaimed-env-api-error.js +0 -12
  323. package/dist/lib/__test-helpers__/mock-unclaimed-env-api-error.js.map +0 -1
  324. package/dist/lib/adapters/cli-adapter.d.ts +0 -113
  325. package/dist/lib/adapters/cli-adapter.js +0 -641
  326. package/dist/lib/adapters/cli-adapter.js.map +0 -1
  327. package/dist/lib/adapters/dashboard-adapter.d.ts +0 -34
  328. package/dist/lib/adapters/dashboard-adapter.js +0 -121
  329. package/dist/lib/adapters/dashboard-adapter.js.map +0 -1
  330. package/dist/lib/adapters/headless-adapter.d.ts +0 -80
  331. package/dist/lib/adapters/headless-adapter.js +0 -347
  332. package/dist/lib/adapters/headless-adapter.js.map +0 -1
  333. package/dist/lib/adapters/index.d.ts +0 -4
  334. package/dist/lib/adapters/index.js +0 -4
  335. package/dist/lib/adapters/index.js.map +0 -1
  336. package/dist/lib/adapters/types.d.ts +0 -41
  337. package/dist/lib/adapters/types.js +0 -2
  338. package/dist/lib/adapters/types.js.map +0 -1
  339. package/dist/lib/agent-interface.d.ts +0 -84
  340. package/dist/lib/agent-interface.js +0 -840
  341. package/dist/lib/agent-interface.js.map +0 -1
  342. package/dist/lib/agent-runner.d.ts +0 -9
  343. package/dist/lib/agent-runner.js +0 -261
  344. package/dist/lib/agent-runner.js.map +0 -1
  345. package/dist/lib/ai-content.d.ts +0 -14
  346. package/dist/lib/ai-content.js +0 -131
  347. package/dist/lib/ai-content.js.map +0 -1
  348. package/dist/lib/api-error-handler.d.ts +0 -18
  349. package/dist/lib/api-error-handler.js +0 -76
  350. package/dist/lib/api-error-handler.js.map +0 -1
  351. package/dist/lib/api-key.d.ts +0 -14
  352. package/dist/lib/api-key.js +0 -37
  353. package/dist/lib/api-key.js.map +0 -1
  354. package/dist/lib/api.d.ts +0 -25
  355. package/dist/lib/api.js +0 -120
  356. package/dist/lib/api.js.map +0 -1
  357. package/dist/lib/background-refresh.d.ts +0 -29
  358. package/dist/lib/background-refresh.js +0 -95
  359. package/dist/lib/background-refresh.js.map +0 -1
  360. package/dist/lib/command-aliases.d.ts +0 -8
  361. package/dist/lib/command-aliases.js +0 -12
  362. package/dist/lib/command-aliases.js.map +0 -1
  363. package/dist/lib/completion-data.d.ts +0 -33
  364. package/dist/lib/completion-data.js +0 -33
  365. package/dist/lib/completion-data.js.map +0 -1
  366. package/dist/lib/config-store.d.ts +0 -63
  367. package/dist/lib/config-store.js +0 -293
  368. package/dist/lib/config-store.js.map +0 -1
  369. package/dist/lib/config.d.ts +0 -34
  370. package/dist/lib/config.js +0 -37
  371. package/dist/lib/config.js.map +0 -1
  372. package/dist/lib/constants.d.ts +0 -51
  373. package/dist/lib/constants.js +0 -50
  374. package/dist/lib/constants.js.map +0 -1
  375. package/dist/lib/credential-discovery.d.ts +0 -42
  376. package/dist/lib/credential-discovery.js +0 -100
  377. package/dist/lib/credential-discovery.js.map +0 -1
  378. package/dist/lib/credential-proxy.d.ts +0 -45
  379. package/dist/lib/credential-proxy.js +0 -364
  380. package/dist/lib/credential-proxy.js.map +0 -1
  381. package/dist/lib/credential-store.d.ts +0 -32
  382. package/dist/lib/credential-store.js +0 -236
  383. package/dist/lib/credential-store.js.map +0 -1
  384. package/dist/lib/credentials.d.ts +0 -13
  385. package/dist/lib/credentials.js +0 -34
  386. package/dist/lib/credentials.js.map +0 -1
  387. package/dist/lib/dev-command.d.ts +0 -26
  388. package/dist/lib/dev-command.js +0 -129
  389. package/dist/lib/dev-command.js.map +0 -1
  390. package/dist/lib/device-auth.d.ts +0 -48
  391. package/dist/lib/device-auth.js +0 -176
  392. package/dist/lib/device-auth.js.map +0 -1
  393. package/dist/lib/device-id.d.ts +0 -25
  394. package/dist/lib/device-id.js +0 -102
  395. package/dist/lib/device-id.js.map +0 -1
  396. package/dist/lib/ensure-auth.d.ts +0 -12
  397. package/dist/lib/ensure-auth.js +0 -111
  398. package/dist/lib/ensure-auth.js.map +0 -1
  399. package/dist/lib/env-writer.d.ts +0 -25
  400. package/dist/lib/env-writer.js +0 -90
  401. package/dist/lib/env-writer.js.map +0 -1
  402. package/dist/lib/events.d.ts +0 -248
  403. package/dist/lib/events.js +0 -19
  404. package/dist/lib/events.js.map +0 -1
  405. package/dist/lib/framework-config.d.ts +0 -133
  406. package/dist/lib/framework-config.js +0 -11
  407. package/dist/lib/framework-config.js.map +0 -1
  408. package/dist/lib/helper-functions.d.ts +0 -1
  409. package/dist/lib/helper-functions.js +0 -2
  410. package/dist/lib/helper-functions.js.map +0 -1
  411. package/dist/lib/host-probe.d.ts +0 -28
  412. package/dist/lib/host-probe.js +0 -154
  413. package/dist/lib/host-probe.js.map +0 -1
  414. package/dist/lib/installer-core.d.ts +0 -569
  415. package/dist/lib/installer-core.js +0 -1134
  416. package/dist/lib/installer-core.js.map +0 -1
  417. package/dist/lib/installer-core.types.d.ts +0 -162
  418. package/dist/lib/installer-core.types.js +0 -2
  419. package/dist/lib/installer-core.types.js.map +0 -1
  420. package/dist/lib/mcp-clients.d.ts +0 -45
  421. package/dist/lib/mcp-clients.js +0 -297
  422. package/dist/lib/mcp-clients.js.map +0 -1
  423. package/dist/lib/port-detection.d.ts +0 -7
  424. package/dist/lib/port-detection.js +0 -244
  425. package/dist/lib/port-detection.js.map +0 -1
  426. package/dist/lib/post-install.d.ts +0 -8
  427. package/dist/lib/post-install.js +0 -51
  428. package/dist/lib/post-install.js.map +0 -1
  429. package/dist/lib/preferences.d.ts +0 -143
  430. package/dist/lib/preferences.js +0 -227
  431. package/dist/lib/preferences.js.map +0 -1
  432. package/dist/lib/progress-tracker.d.ts +0 -22
  433. package/dist/lib/progress-tracker.js +0 -47
  434. package/dist/lib/progress-tracker.js.map +0 -1
  435. package/dist/lib/registry.d.ts +0 -42
  436. package/dist/lib/registry.js +0 -96
  437. package/dist/lib/registry.js.map +0 -1
  438. package/dist/lib/resolve-install-credentials.d.ts +0 -11
  439. package/dist/lib/resolve-install-credentials.js +0 -53
  440. package/dist/lib/resolve-install-credentials.js.map +0 -1
  441. package/dist/lib/run-with-core.d.ts +0 -7
  442. package/dist/lib/run-with-core.js +0 -559
  443. package/dist/lib/run-with-core.js.map +0 -1
  444. package/dist/lib/safe-tools.d.ts +0 -2
  445. package/dist/lib/safe-tools.js +0 -212
  446. package/dist/lib/safe-tools.js.map +0 -1
  447. package/dist/lib/scaffold/index.d.ts +0 -1
  448. package/dist/lib/scaffold/index.js +0 -2
  449. package/dist/lib/scaffold/index.js.map +0 -1
  450. package/dist/lib/scaffold/scaffold.d.ts +0 -66
  451. package/dist/lib/scaffold/scaffold.js +0 -156
  452. package/dist/lib/scaffold/scaffold.js.map +0 -1
  453. package/dist/lib/settings.d.ts +0 -60
  454. package/dist/lib/settings.js +0 -31
  455. package/dist/lib/settings.js.map +0 -1
  456. package/dist/lib/staging-api.d.ts +0 -22
  457. package/dist/lib/staging-api.js +0 -74
  458. package/dist/lib/staging-api.js.map +0 -1
  459. package/dist/lib/startup-notice-gate.d.ts +0 -21
  460. package/dist/lib/startup-notice-gate.js +0 -29
  461. package/dist/lib/startup-notice-gate.js.map +0 -1
  462. package/dist/lib/telemetry-notice.d.ts +0 -25
  463. package/dist/lib/telemetry-notice.js +0 -58
  464. package/dist/lib/telemetry-notice.js.map +0 -1
  465. package/dist/lib/token-refresh-client.d.ts +0 -23
  466. package/dist/lib/token-refresh-client.js +0 -89
  467. package/dist/lib/token-refresh-client.js.map +0 -1
  468. package/dist/lib/token-refresh.d.ts +0 -12
  469. package/dist/lib/token-refresh.js +0 -27
  470. package/dist/lib/token-refresh.js.map +0 -1
  471. package/dist/lib/unclaimed-env-api.d.ts +0 -42
  472. package/dist/lib/unclaimed-env-api.js +0 -139
  473. package/dist/lib/unclaimed-env-api.js.map +0 -1
  474. package/dist/lib/unclaimed-env-provision.d.ts +0 -24
  475. package/dist/lib/unclaimed-env-provision.js +0 -80
  476. package/dist/lib/unclaimed-env-provision.js.map +0 -1
  477. package/dist/lib/unclaimed-warning.d.ts +0 -15
  478. package/dist/lib/unclaimed-warning.js +0 -78
  479. package/dist/lib/unclaimed-warning.js.map +0 -1
  480. package/dist/lib/validation/build-validator.d.ts +0 -21
  481. package/dist/lib/validation/build-validator.js +0 -153
  482. package/dist/lib/validation/build-validator.js.map +0 -1
  483. package/dist/lib/validation/index.d.ts +0 -4
  484. package/dist/lib/validation/index.js +0 -4
  485. package/dist/lib/validation/index.js.map +0 -1
  486. package/dist/lib/validation/quick-checks.d.ts +0 -19
  487. package/dist/lib/validation/quick-checks.js +0 -192
  488. package/dist/lib/validation/quick-checks.js.map +0 -1
  489. package/dist/lib/validation/security-checks.d.ts +0 -35
  490. package/dist/lib/validation/security-checks.js +0 -106
  491. package/dist/lib/validation/security-checks.js.map +0 -1
  492. package/dist/lib/validation/types.d.ts +0 -56
  493. package/dist/lib/validation/types.js +0 -2
  494. package/dist/lib/validation/types.js.map +0 -1
  495. package/dist/lib/validation/validator.d.ts +0 -13
  496. package/dist/lib/validation/validator.js +0 -711
  497. package/dist/lib/validation/validator.js.map +0 -1
  498. package/dist/lib/version-check.d.ts +0 -6
  499. package/dist/lib/version-check.js +0 -46
  500. package/dist/lib/version-check.js.map +0 -1
  501. package/dist/lib/workos-api.d.ts +0 -30
  502. package/dist/lib/workos-api.js +0 -69
  503. package/dist/lib/workos-api.js.map +0 -1
  504. package/dist/lib/workos-client.d.ts +0 -58
  505. package/dist/lib/workos-client.js +0 -140
  506. package/dist/lib/workos-client.js.map +0 -1
  507. package/dist/lib/workos-management.d.ts +0 -32
  508. package/dist/lib/workos-management.js +0 -149
  509. package/dist/lib/workos-management.js.map +0 -1
  510. package/dist/nextjs/nextjs-installer-agent.d.ts +0 -5
  511. package/dist/nextjs/nextjs-installer-agent.js +0 -6
  512. package/dist/nextjs/nextjs-installer-agent.js.map +0 -1
  513. package/dist/nextjs/utils.d.ts +0 -4
  514. package/dist/nextjs/utils.js +0 -5
  515. package/dist/nextjs/utils.js.map +0 -1
  516. package/dist/react/react-installer-agent.d.ts +0 -4
  517. package/dist/react/react-installer-agent.js +0 -5
  518. package/dist/react/react-installer-agent.js.map +0 -1
  519. package/dist/react-router/react-router-installer-agent.d.ts +0 -4
  520. package/dist/react-router/react-router-installer-agent.js +0 -5
  521. package/dist/react-router/react-router-installer-agent.js.map +0 -1
  522. package/dist/react-router/utils.d.ts +0 -4
  523. package/dist/react-router/utils.js +0 -5
  524. package/dist/react-router/utils.js.map +0 -1
  525. package/dist/run.d.ts +0 -33
  526. package/dist/run.js +0 -58
  527. package/dist/run.js.map +0 -1
  528. package/dist/smoke-test.ts +0 -881
  529. package/dist/steps/add-or-update-environment-variables.d.ts +0 -10
  530. package/dist/steps/add-or-update-environment-variables.js +0 -155
  531. package/dist/steps/add-or-update-environment-variables.js.map +0 -1
  532. package/dist/steps/index.d.ts +0 -3
  533. package/dist/steps/index.js +0 -4
  534. package/dist/steps/index.js.map +0 -1
  535. package/dist/steps/run-prettier.d.ts +0 -5
  536. package/dist/steps/run-prettier.js +0 -50
  537. package/dist/steps/run-prettier.js.map +0 -1
  538. package/dist/steps/upload-environment-variables/EnvironmentProvider.d.ts +0 -8
  539. package/dist/steps/upload-environment-variables/EnvironmentProvider.js +0 -7
  540. package/dist/steps/upload-environment-variables/EnvironmentProvider.js.map +0 -1
  541. package/dist/steps/upload-environment-variables/index.d.ts +0 -6
  542. package/dist/steps/upload-environment-variables/index.js +0 -69
  543. package/dist/steps/upload-environment-variables/index.js.map +0 -1
  544. package/dist/steps/upload-environment-variables/providers/vercel.d.ts +0 -14
  545. package/dist/steps/upload-environment-variables/providers/vercel.js +0 -107
  546. package/dist/steps/upload-environment-variables/providers/vercel.js.map +0 -1
  547. package/dist/tanstack-start/tanstack-start-installer-agent.d.ts +0 -4
  548. package/dist/tanstack-start/tanstack-start-installer-agent.js +0 -5
  549. package/dist/tanstack-start/tanstack-start-installer-agent.js.map +0 -1
  550. package/dist/telemetry.d.ts +0 -2
  551. package/dist/telemetry.js +0 -29
  552. package/dist/telemetry.js.map +0 -1
  553. package/dist/test/force-insecure-storage.d.ts +0 -1
  554. package/dist/test/force-insecure-storage.js +0 -9
  555. package/dist/test/force-insecure-storage.js.map +0 -1
  556. package/dist/test/setup.d.ts +0 -1
  557. package/dist/test/setup.js +0 -38
  558. package/dist/test/setup.js.map +0 -1
  559. package/dist/utils/analytics.d.ts +0 -66
  560. package/dist/utils/analytics.js +0 -330
  561. package/dist/utils/analytics.js.map +0 -1
  562. package/dist/utils/bash.d.ts +0 -2
  563. package/dist/utils/bash.js +0 -17
  564. package/dist/utils/bash.js.map +0 -1
  565. package/dist/utils/box.d.ts +0 -9
  566. package/dist/utils/box.js +0 -15
  567. package/dist/utils/box.js.map +0 -1
  568. package/dist/utils/cli-exit.d.ts +0 -15
  569. package/dist/utils/cli-exit.js +0 -11
  570. package/dist/utils/cli-exit.js.map +0 -1
  571. package/dist/utils/cli-symbols.d.ts +0 -44
  572. package/dist/utils/cli-symbols.js +0 -58
  573. package/dist/utils/cli-symbols.js.map +0 -1
  574. package/dist/utils/command-invocation.d.ts +0 -10
  575. package/dist/utils/command-invocation.js +0 -26
  576. package/dist/utils/command-invocation.js.map +0 -1
  577. package/dist/utils/command-telemetry.d.ts +0 -17
  578. package/dist/utils/command-telemetry.js +0 -67
  579. package/dist/utils/command-telemetry.js.map +0 -1
  580. package/dist/utils/crash-reporter.d.ts +0 -13
  581. package/dist/utils/crash-reporter.js +0 -91
  582. package/dist/utils/crash-reporter.js.map +0 -1
  583. package/dist/utils/debug.d.ts +0 -9
  584. package/dist/utils/debug.js +0 -105
  585. package/dist/utils/debug.js.map +0 -1
  586. package/dist/utils/env-parser.d.ts +0 -5
  587. package/dist/utils/env-parser.js +0 -18
  588. package/dist/utils/env-parser.js.map +0 -1
  589. package/dist/utils/environment.d.ts +0 -10
  590. package/dist/utils/environment.js +0 -69
  591. package/dist/utils/environment.js.map +0 -1
  592. package/dist/utils/errors.d.ts +0 -3
  593. package/dist/utils/errors.js +0 -7
  594. package/dist/utils/errors.js.map +0 -1
  595. package/dist/utils/exec-file.d.ts +0 -15
  596. package/dist/utils/exec-file.js +0 -39
  597. package/dist/utils/exec-file.js.map +0 -1
  598. package/dist/utils/exit-codes.d.ts +0 -31
  599. package/dist/utils/exit-codes.js +0 -69
  600. package/dist/utils/exit-codes.js.map +0 -1
  601. package/dist/utils/git-utils.d.ts +0 -23
  602. package/dist/utils/git-utils.js +0 -86
  603. package/dist/utils/git-utils.js.map +0 -1
  604. package/dist/utils/help-json.d.ts +0 -58
  605. package/dist/utils/help-json.js +0 -1577
  606. package/dist/utils/help-json.js.map +0 -1
  607. package/dist/utils/interaction-mode.d.ts +0 -25
  608. package/dist/utils/interaction-mode.js +0 -99
  609. package/dist/utils/interaction-mode.js.map +0 -1
  610. package/dist/utils/lock-art.d.ts +0 -4
  611. package/dist/utils/lock-art.js +0 -73
  612. package/dist/utils/lock-art.js.map +0 -1
  613. package/dist/utils/logging.d.ts +0 -9
  614. package/dist/utils/logging.js +0 -36
  615. package/dist/utils/logging.js.map +0 -1
  616. package/dist/utils/ndjson.d.ts +0 -16
  617. package/dist/utils/ndjson.js +0 -18
  618. package/dist/utils/ndjson.js.map +0 -1
  619. package/dist/utils/output.d.ts +0 -60
  620. package/dist/utils/output.js +0 -124
  621. package/dist/utils/output.js.map +0 -1
  622. package/dist/utils/package-json.d.ts +0 -26
  623. package/dist/utils/package-json.js +0 -32
  624. package/dist/utils/package-json.js.map +0 -1
  625. package/dist/utils/package-manager.d.ts +0 -21
  626. package/dist/utils/package-manager.js +0 -166
  627. package/dist/utils/package-manager.js.map +0 -1
  628. package/dist/utils/paths.d.ts +0 -5
  629. package/dist/utils/paths.js +0 -18
  630. package/dist/utils/paths.js.map +0 -1
  631. package/dist/utils/platform.d.ts +0 -8
  632. package/dist/utils/platform.js +0 -7
  633. package/dist/utils/platform.js.map +0 -1
  634. package/dist/utils/recovery-hints.d.ts +0 -42
  635. package/dist/utils/recovery-hints.js +0 -92
  636. package/dist/utils/recovery-hints.js.map +0 -1
  637. package/dist/utils/redact.d.ts +0 -5
  638. package/dist/utils/redact.js +0 -29
  639. package/dist/utils/redact.js.map +0 -1
  640. package/dist/utils/register-subcommand.d.ts +0 -10
  641. package/dist/utils/register-subcommand.js +0 -33
  642. package/dist/utils/register-subcommand.js.map +0 -1
  643. package/dist/utils/semver.d.ts +0 -10
  644. package/dist/utils/semver.js +0 -43
  645. package/dist/utils/semver.js.map +0 -1
  646. package/dist/utils/string.d.ts +0 -1
  647. package/dist/utils/string.js +0 -6
  648. package/dist/utils/string.js.map +0 -1
  649. package/dist/utils/summary-box.d.ts +0 -25
  650. package/dist/utils/summary-box.js +0 -211
  651. package/dist/utils/summary-box.js.map +0 -1
  652. package/dist/utils/table.d.ts +0 -5
  653. package/dist/utils/table.js +0 -18
  654. package/dist/utils/table.js.map +0 -1
  655. package/dist/utils/telemetry-client.d.ts +0 -43
  656. package/dist/utils/telemetry-client.js +0 -171
  657. package/dist/utils/telemetry-client.js.map +0 -1
  658. package/dist/utils/telemetry-store-forward.d.ts +0 -11
  659. package/dist/utils/telemetry-store-forward.js +0 -94
  660. package/dist/utils/telemetry-store-forward.js.map +0 -1
  661. package/dist/utils/telemetry-types.d.ts +0 -100
  662. package/dist/utils/telemetry-types.js +0 -6
  663. package/dist/utils/telemetry-types.js.map +0 -1
  664. package/dist/utils/types.d.ts +0 -123
  665. package/dist/utils/types.js +0 -2
  666. package/dist/utils/types.js.map +0 -1
  667. package/dist/utils/ui-utils.d.ts +0 -97
  668. package/dist/utils/ui-utils.js +0 -449
  669. package/dist/utils/ui-utils.js.map +0 -1
  670. package/dist/utils/ui.d.ts +0 -148
  671. package/dist/utils/ui.js +0 -368
  672. package/dist/utils/ui.js.map +0 -1
  673. package/dist/utils/urls.d.ts +0 -13
  674. package/dist/utils/urls.js +0 -14
  675. package/dist/utils/urls.js.map +0 -1
  676. package/dist/utils/vendor/is-unicorn-supported.d.ts +0 -1
  677. package/dist/utils/vendor/is-unicorn-supported.js +0 -21
  678. package/dist/utils/vendor/is-unicorn-supported.js.map +0 -1
  679. package/dist/vanilla-js/vanilla-js-installer-agent.d.ts +0 -4
  680. package/dist/vanilla-js/vanilla-js-installer-agent.js +0 -5
  681. package/dist/vanilla-js/vanilla-js-installer-agent.js.map +0 -1
@@ -1,29 +0,0 @@
1
- /**
2
- * Redact sensitive values from logs
3
- */
4
- export function redactApiKey(apiKey) {
5
- if (!apiKey || apiKey.length < 12)
6
- return '[REDACTED]';
7
- // Show format: sk_test_xxx...xxx (first 8 chars + last 3 chars)
8
- const prefix = apiKey.substring(0, 8);
9
- const suffix = apiKey.substring(apiKey.length - 3);
10
- return `${prefix}...${suffix}`;
11
- }
12
- export function redactCredentials(obj) {
13
- if (typeof obj !== 'object' || obj === null)
14
- return obj;
15
- const redacted = Array.isArray(obj) ? [...obj] : { ...obj };
16
- for (const key in redacted) {
17
- const value = redacted[key];
18
- // Redact API keys
19
- if (typeof value === 'string' && value.startsWith('sk_')) {
20
- redacted[key] = redactApiKey(value);
21
- }
22
- // Recursively redact nested objects
23
- else if (typeof value === 'object' && value !== null) {
24
- redacted[key] = redactCredentials(value);
25
- }
26
- }
27
- return redacted;
28
- }
29
- //# sourceMappingURL=redact.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"redact.js","sourceRoot":"","sources":["../../src/utils/redact.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,YAAY,CAAC;IAEvD,gEAAgE;IAChE,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEnD,OAAO,GAAG,MAAM,MAAM,MAAM,EAAE,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAQ;IACxC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,GAAG,CAAC;IAExD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC;IAE5D,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAE5B,kBAAkB;QAClB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACzD,QAAQ,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;QACD,oCAAoC;aAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACrD,QAAQ,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC","sourcesContent":["/**\n * Redact sensitive values from logs\n */\n\nexport function redactApiKey(apiKey: string): string {\n if (!apiKey || apiKey.length < 12) return '[REDACTED]';\n\n // Show format: sk_test_xxx...xxx (first 8 chars + last 3 chars)\n const prefix = apiKey.substring(0, 8);\n const suffix = apiKey.substring(apiKey.length - 3);\n\n return `${prefix}...${suffix}`;\n}\n\nexport function redactCredentials(obj: any): any {\n if (typeof obj !== 'object' || obj === null) return obj;\n\n const redacted = Array.isArray(obj) ? [...obj] : { ...obj };\n\n for (const key in redacted) {\n const value = redacted[key];\n\n // Redact API keys\n if (typeof value === 'string' && value.startsWith('sk_')) {\n redacted[key] = redactApiKey(value);\n }\n // Recursively redact nested objects\n else if (typeof value === 'object' && value !== null) {\n redacted[key] = redactCredentials(value);\n }\n }\n\n return redacted;\n}\n"]}
@@ -1,10 +0,0 @@
1
- import type { Argv } from 'yargs';
2
- /**
3
- * Register a subcommand with auto-enriched description.
4
- * Replays the builder on a probe yargs instance to discover demandOption fields,
5
- * then appends required flag names to the description so parent help shows them.
6
- *
7
- * Note: enrichment targets the description, not the command string, because yargs
8
- * interprets `<...>` in command strings as required positional arguments.
9
- */
10
- export declare function registerSubcommand<T>(parentYargs: Argv<T>, usage: string, description: string, builder: (y: Argv) => Argv, handler: (argv: any) => Promise<void>): Argv<T>;
@@ -1,33 +0,0 @@
1
- import yargs from 'yargs';
2
- /**
3
- * Register a subcommand with auto-enriched description.
4
- * Replays the builder on a probe yargs instance to discover demandOption fields,
5
- * then appends required flag names to the description so parent help shows them.
6
- *
7
- * Note: enrichment targets the description, not the command string, because yargs
8
- * interprets `<...>` in command strings as required positional arguments.
9
- */
10
- export function registerSubcommand(parentYargs, usage, description, builder, handler) {
11
- let enrichedDescription = description;
12
- try {
13
- const probe = yargs([]);
14
- builder(probe);
15
- // getOptions() exists at runtime but is not in yargs' public type definitions
16
- const opts = probe.getOptions();
17
- const demanded = Object.keys(opts.demandedOptions || {}).filter((k) => !['help', 'version'].includes(k));
18
- // Exclude flags that correspond to positionals already visible in the usage string
19
- const positionalNames = new Set([...usage.matchAll(/<([^>]+?)(?:\.\.\.)?>/g)].map((m) => m[1]));
20
- const namedOnly = demanded.filter((k) => !positionalNames.has(k));
21
- // Skip enrichment when the description already mentions every flag
22
- const newFlags = namedOnly.filter((k) => !description.includes(`--${k}`));
23
- if (newFlags.length > 0) {
24
- const flagList = newFlags.map((k) => `--${k}`).join(', ');
25
- enrichedDescription = `${description} (requires ${flagList})`;
26
- }
27
- }
28
- catch {
29
- // Builder threw during probe — fall back to unenriched description
30
- }
31
- return parentYargs.command(usage, enrichedDescription, builder, handler);
32
- }
33
- //# sourceMappingURL=register-subcommand.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"register-subcommand.js","sourceRoot":"","sources":["../../src/utils/register-subcommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,WAAoB,EACpB,KAAa,EACb,WAAmB,EACnB,OAA0B,EAC1B,OAAqC;IAErC,IAAI,mBAAmB,GAAG,WAAW,CAAC;IAEtC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,CAAC;QACf,8EAA8E;QAC9E,MAAM,IAAI,GAAI,KAAmD,CAAC,UAAU,EAAE,CAAC;QAC/E,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzG,mFAAmF;QACnF,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChG,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAElE,mEAAmE;QACnE,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1E,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1D,mBAAmB,GAAG,GAAG,WAAW,cAAc,QAAQ,GAAG,CAAC;QAChE,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,mEAAmE;IACrE,CAAC;IAED,OAAO,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC3E,CAAC","sourcesContent":["import yargs from 'yargs';\nimport type { Argv } from 'yargs';\n\ninterface YargsOptions {\n demandedOptions: Record<string, unknown>;\n}\n\n/**\n * Register a subcommand with auto-enriched description.\n * Replays the builder on a probe yargs instance to discover demandOption fields,\n * then appends required flag names to the description so parent help shows them.\n *\n * Note: enrichment targets the description, not the command string, because yargs\n * interprets `<...>` in command strings as required positional arguments.\n */\nexport function registerSubcommand<T>(\n parentYargs: Argv<T>,\n usage: string,\n description: string,\n builder: (y: Argv) => Argv,\n handler: (argv: any) => Promise<void>,\n): Argv<T> {\n let enrichedDescription = description;\n\n try {\n const probe = yargs([]);\n builder(probe);\n // getOptions() exists at runtime but is not in yargs' public type definitions\n const opts = (probe as unknown as { getOptions(): YargsOptions }).getOptions();\n const demanded = Object.keys(opts.demandedOptions || {}).filter((k) => !['help', 'version'].includes(k));\n\n // Exclude flags that correspond to positionals already visible in the usage string\n const positionalNames = new Set([...usage.matchAll(/<([^>]+?)(?:\\.\\.\\.)?>/g)].map((m) => m[1]));\n const namedOnly = demanded.filter((k) => !positionalNames.has(k));\n\n // Skip enrichment when the description already mentions every flag\n const newFlags = namedOnly.filter((k) => !description.includes(`--${k}`));\n if (newFlags.length > 0) {\n const flagList = newFlags.map((k) => `--${k}`).join(', ');\n enrichedDescription = `${description} (requires ${flagList})`;\n }\n } catch {\n // Builder threw during probe — fall back to unenriched description\n }\n\n return parentYargs.command(usage, enrichedDescription, builder, handler);\n}\n"]}
@@ -1,10 +0,0 @@
1
- export declare function fulfillsVersionRange({ version, acceptableVersions, canBeLatest, }: {
2
- version: string;
3
- acceptableVersions: string;
4
- canBeLatest: boolean;
5
- }): boolean;
6
- /**
7
- * Get a version bucket string for analytics.
8
- * Returns format like "15.x" for versions >= minimumMajor, or "<{minimumMajor}.0.0" otherwise.
9
- */
10
- export declare function getVersionBucket(version: string | undefined, minimumMajor: number): string;
@@ -1,43 +0,0 @@
1
- import { major, minVersion, satisfies, subset, valid, validRange } from 'semver';
2
- export function fulfillsVersionRange({ version, acceptableVersions, canBeLatest, }) {
3
- if (version === 'latest') {
4
- return canBeLatest;
5
- }
6
- let cleanedUserVersion, isRange;
7
- if (valid(version)) {
8
- cleanedUserVersion = valid(version);
9
- isRange = false;
10
- }
11
- else if (validRange(version)) {
12
- cleanedUserVersion = validRange(version);
13
- isRange = true;
14
- }
15
- return (
16
- // If the given version is a bogus format, this will still be undefined and we'll automatically reject it
17
- !!cleanedUserVersion &&
18
- (isRange ? subset(cleanedUserVersion, acceptableVersions) : satisfies(cleanedUserVersion, acceptableVersions)));
19
- }
20
- /**
21
- * Get a version bucket string for analytics.
22
- * Returns format like "15.x" for versions >= minimumMajor, or "<{minimumMajor}.0.0" otherwise.
23
- */
24
- export function getVersionBucket(version, minimumMajor) {
25
- if (!version) {
26
- return 'none';
27
- }
28
- try {
29
- const minVer = minVersion(version);
30
- if (!minVer) {
31
- return 'invalid';
32
- }
33
- const majorVersion = major(minVer);
34
- if (majorVersion >= minimumMajor) {
35
- return `${majorVersion}.x`;
36
- }
37
- return `<${minimumMajor}.0.0`;
38
- }
39
- catch {
40
- return 'unknown';
41
- }
42
- }
43
- //# sourceMappingURL=semver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"semver.js","sourceRoot":"","sources":["../../src/utils/semver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEjF,MAAM,UAAU,oBAAoB,CAAC,EACnC,OAAO,EACP,kBAAkB,EAClB,WAAW,GAKZ;IACC,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,IAAI,kBAAkB,EAAE,OAAO,CAAC;IAEhC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACnB,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;QACpC,OAAO,GAAG,KAAK,CAAC;IAClB,CAAC;SAAM,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,kBAAkB,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAED,OAAO;IACL,yGAAyG;IACzG,CAAC,CAAC,kBAAkB;QACpB,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CAC/G,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAA2B,EAAE,YAAoB;IAChF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,YAAY,IAAI,YAAY,EAAE,CAAC;YACjC,OAAO,GAAG,YAAY,IAAI,CAAC;QAC7B,CAAC;QACD,OAAO,IAAI,YAAY,MAAM,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC","sourcesContent":["import { major, minVersion, satisfies, subset, valid, validRange } from 'semver';\n\nexport function fulfillsVersionRange({\n version,\n acceptableVersions,\n canBeLatest,\n}: {\n version: string;\n acceptableVersions: string;\n canBeLatest: boolean;\n}): boolean {\n if (version === 'latest') {\n return canBeLatest;\n }\n\n let cleanedUserVersion, isRange;\n\n if (valid(version)) {\n cleanedUserVersion = valid(version);\n isRange = false;\n } else if (validRange(version)) {\n cleanedUserVersion = validRange(version);\n isRange = true;\n }\n\n return (\n // If the given version is a bogus format, this will still be undefined and we'll automatically reject it\n !!cleanedUserVersion &&\n (isRange ? subset(cleanedUserVersion, acceptableVersions) : satisfies(cleanedUserVersion, acceptableVersions))\n );\n}\n\n/**\n * Get a version bucket string for analytics.\n * Returns format like \"15.x\" for versions >= minimumMajor, or \"<{minimumMajor}.0.0\" otherwise.\n */\nexport function getVersionBucket(version: string | undefined, minimumMajor: number): string {\n if (!version) {\n return 'none';\n }\n\n try {\n const minVer = minVersion(version);\n if (!minVer) {\n return 'invalid';\n }\n const majorVersion = major(minVer);\n if (majorVersion >= minimumMajor) {\n return `${majorVersion}.x`;\n }\n return `<${minimumMajor}.0.0`;\n } catch {\n return 'unknown';\n }\n}\n"]}
@@ -1 +0,0 @@
1
- export declare function stripAnsii(str: string): string;
@@ -1,6 +0,0 @@
1
- export function stripAnsii(str) {
2
- return str.replace(
3
- // eslint-disable-next-line no-control-regex
4
- /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, '');
5
- }
6
- //# sourceMappingURL=string.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"string.js","sourceRoot":"","sources":["../../src/utils/string.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,OAAO,GAAG,CAAC,OAAO;IAChB,4CAA4C;IAC5C,6EAA6E,EAC7E,EAAE,CACH,CAAC;AACJ,CAAC","sourcesContent":["export function stripAnsii(str: string): string {\n return str.replace(\n // eslint-disable-next-line no-control-regex\n /[\\u001b\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,\n '',\n );\n}\n"]}
@@ -1,25 +0,0 @@
1
- import { type LockExpression } from './lock-art.js';
2
- import type { CompletionData } from '../lib/events.js';
3
- /** Pre-built completion summaries shared by CLI and Dashboard adapters. */
4
- export declare function renderCompletionSummary(success: boolean, summary?: string, completion?: CompletionData): string;
5
- export interface SummaryBoxItem {
6
- type: 'done' | 'pending' | 'error';
7
- text: string;
8
- }
9
- export interface SummaryBoxOptions {
10
- expression: LockExpression;
11
- title: string;
12
- items?: SummaryBoxItem[];
13
- footer?: string;
14
- }
15
- /**
16
- * The install opener: the WorkOS lock (in brand indigo) beside the wordmark.
17
- * A compact, de-boxed replacement for the full block-letter banner — the same
18
- * lock that closes the install, so the two ends bookend each other.
19
- */
20
- export declare function renderBrandMark(subtitle?: string): string;
21
- /**
22
- * Render a branded summary box with the WorkOS lock character,
23
- * a title, optional checklist items, and an optional footer.
24
- */
25
- export declare function renderSummaryBox(options: SummaryBoxOptions): string;
@@ -1,211 +0,0 @@
1
- import chalk from 'chalk';
2
- import { isUnicodeSupported } from './vendor/is-unicorn-supported.js';
3
- import { getLockArt, LOCK_WIDTH } from './lock-art.js';
4
- import { symbols, palette } from './cli-symbols.js';
5
- /** Max number of changed files listed in the success box before collapsing. */
6
- const MAX_SUMMARY_FILES = 5;
7
- /** Pre-built completion summaries shared by CLI and Dashboard adapters. */
8
- export function renderCompletionSummary(success, summary, completion) {
9
- if (success) {
10
- if (completion) {
11
- const files = completion.files;
12
- const shown = files.slice(0, MAX_SUMMARY_FILES).map((f) => ({ type: 'done', text: f }));
13
- if (files.length > MAX_SUMMARY_FILES) {
14
- shown.push({ type: 'done', text: `…and ${files.length - MAX_SUMMARY_FILES} more` });
15
- }
16
- const steps = completion.nextSteps.map((s) => ({ type: 'pending', text: s }));
17
- return renderFlatSummary({
18
- expression: 'success',
19
- title: 'WorkOS AuthKit Installed',
20
- items: [...shown, ...steps],
21
- footer: completion.docsUrl,
22
- });
23
- }
24
- // Fallback: preserve the original static next-steps when no structured data is present.
25
- return renderFlatSummary({
26
- expression: 'success',
27
- title: 'WorkOS AuthKit Installed',
28
- items: [
29
- { type: 'pending', text: 'Start dev server to test authentication' },
30
- { type: 'pending', text: 'Visit WorkOS Dashboard to manage users' },
31
- ],
32
- footer: 'https://workos.com/docs/authkit',
33
- });
34
- }
35
- return renderFlatSummary({
36
- expression: 'error',
37
- title: 'Installation Failed',
38
- items: summary ? [{ type: 'error', text: summary }] : [],
39
- footer: 'https://github.com/workos/cli/issues',
40
- });
41
- }
42
- const unicode = isUnicodeSupported();
43
- const BOX = unicode
44
- ? { tl: '┌', tr: '┐', bl: '└', br: '┘', h: '─', v: '│', ml: '├', mr: '┤' }
45
- : { tl: '+', tr: '+', bl: '+', br: '+', h: '-', v: '|', ml: '+', mr: '+' };
46
- const ITEM_ICONS = {
47
- done: chalk.green(symbols.success),
48
- pending: chalk.cyan(symbols.arrow),
49
- error: chalk.red(symbols.error),
50
- };
51
- // ── Flat (de-boxed) rendering — the install opener + closer ───────────────────
52
- const { accent, cyan: flatCyan } = palette;
53
- /** Flat glyphs matching the ui facade (green ✓ / accent › / red ✗). */
54
- const FLAT_ICONS = {
55
- done: chalk.green('✓'),
56
- pending: accent('›'),
57
- error: chalk.red('✗'),
58
- };
59
- /**
60
- * The install opener: the WorkOS lock (in brand indigo) beside the wordmark.
61
- * A compact, de-boxed replacement for the full block-letter banner — the same
62
- * lock that closes the install, so the two ends bookend each other.
63
- */
64
- export function renderBrandMark(subtitle) {
65
- const lock = getLockArt('success', false); // raw lines; recolor to brand indigo
66
- const titleLine = 2; // "WorkOS" sits beside the top of the lock body
67
- const subtitleLine = 3;
68
- return lock
69
- .map((l, i) => {
70
- const left = ` ${accent(l)}`;
71
- if (i === titleLine)
72
- return `${left} ${accent.bold('WorkOS')}`;
73
- if (i === subtitleLine && subtitle)
74
- return `${left} ${chalk.dim(subtitle)}`;
75
- return left;
76
- })
77
- .join('\n');
78
- }
79
- /**
80
- * The install closer: the WorkOS lock (colored by outcome) above a flat title,
81
- * checklist, and footer — no border. Shared by the CLI and Dashboard adapters.
82
- * The lock is the same mark that opens the install (see renderBrandMark).
83
- */
84
- function renderFlatSummary(options) {
85
- const { expression, title, items = [], footer } = options;
86
- const out = getLockArt(expression, true).map((l) => ` ${l}`);
87
- out.push('', ` ${chalk.bold(title)}`);
88
- for (const item of items) {
89
- // File paths (done) read better in cyan; next-step prose stays default weight.
90
- const text = item.type === 'done' ? flatCyan(item.text) : item.text;
91
- out.push(` ${FLAT_ICONS[item.type]} ${text}`);
92
- }
93
- if (footer)
94
- out.push('', ` ${chalk.dim(footer)}`);
95
- return out.join('\n');
96
- }
97
- const MIN_WIDTH = 42;
98
- // Item prefix " X " = 4 visible chars before text
99
- const ITEM_PREFIX_LEN = 4;
100
- // Footer prefix " " = 2 visible chars before text
101
- const FOOTER_PREFIX_LEN = 2;
102
- function hLine(left, right, width) {
103
- return `${left}${BOX.h.repeat(width - 2)}${right}`;
104
- }
105
- function padRight(text, visibleLen, targetLen) {
106
- const padding = Math.max(0, targetLen - visibleLen);
107
- return text + ' '.repeat(padding);
108
- }
109
- /** Word-wrap text to fit within maxLen, returning multiple lines. */
110
- function wrapText(text, maxLen) {
111
- if (text.length <= maxLen)
112
- return [text];
113
- const words = text.split(' ');
114
- const wrapped = [];
115
- let current = '';
116
- for (const word of words) {
117
- const candidate = current ? `${current} ${word}` : word;
118
- if (candidate.length > maxLen && current) {
119
- wrapped.push(current);
120
- current = word;
121
- }
122
- else {
123
- current = candidate;
124
- }
125
- }
126
- if (current)
127
- wrapped.push(current);
128
- return wrapped;
129
- }
130
- function getTerminalWidth() {
131
- return process.stdout.columns || 80;
132
- }
133
- /**
134
- * Render a branded summary box with the WorkOS lock character,
135
- * a title, optional checklist items, and an optional footer.
136
- */
137
- export function renderSummaryBox(options) {
138
- const { expression, title, items = [], footer } = options;
139
- const lockColored = getLockArt(expression, true);
140
- const lockRaw = getLockArt(expression, false);
141
- const lockLines = lockColored.length;
142
- // " " + lock + " " = lock column width
143
- const lockColWidth = LOCK_WIDTH + 3;
144
- // Cap box width to terminal width
145
- const termWidth = getTerminalWidth();
146
- // innerWidth must fit: lock+title, items, footer — but capped to terminal
147
- const maxInner = Math.max(MIN_WIDTH - 2, termWidth - 2);
148
- // Compute ideal inner width from content
149
- const titleRowWidth = lockColWidth + title.length;
150
- const itemWidths = items.map((item) => ITEM_PREFIX_LEN + item.text.length);
151
- const footerWidth = footer ? FOOTER_PREFIX_LEN + footer.length : 0;
152
- const idealInner = Math.max(titleRowWidth, ...itemWidths, footerWidth) + 1;
153
- const innerWidth = Math.min(Math.max(MIN_WIDTH - 2, idealInner), maxInner);
154
- const boxWidth = innerWidth + 2;
155
- // Available text width for items and footer (after prefix, before right padding + border)
156
- const itemTextMax = innerWidth - ITEM_PREFIX_LEN - 1;
157
- const footerTextMax = innerWidth - FOOTER_PREFIX_LEN - 1;
158
- const lines = [];
159
- // Top border
160
- lines.push(hLine(BOX.tl, BOX.tr, boxWidth));
161
- // Lock + title rows
162
- const titleLineIndex = 3;
163
- for (let i = 0; i < lockLines; i++) {
164
- const lockPart = ` ${lockColored[i]} `;
165
- const lockPartRaw = ` ${lockRaw[i]} `;
166
- let rightPart;
167
- let rightPartLen;
168
- if (i === titleLineIndex) {
169
- rightPart = chalk.bold(title);
170
- rightPartLen = title.length;
171
- }
172
- else {
173
- rightPart = '';
174
- rightPartLen = 0;
175
- }
176
- const row = BOX.v + padRight(lockPart + rightPart, lockPartRaw.length + rightPartLen, innerWidth) + BOX.v;
177
- lines.push(row);
178
- }
179
- // Items
180
- if (items.length > 0) {
181
- lines.push(`${BOX.v}${' '.repeat(innerWidth)}${BOX.v}`);
182
- for (const item of items) {
183
- const icon = ITEM_ICONS[item.type];
184
- const wrappedLines = wrapText(item.text, itemTextMax);
185
- // First line gets the icon
186
- const first = ` ${icon} ${wrappedLines[0]}`;
187
- const firstLen = ITEM_PREFIX_LEN + wrappedLines[0].length;
188
- lines.push(`${BOX.v}${padRight(first, firstLen, innerWidth)}${BOX.v}`);
189
- // Continuation lines are indented to align with text after icon
190
- for (let j = 1; j < wrappedLines.length; j++) {
191
- const cont = ` ${wrappedLines[j]}`;
192
- const contLen = 4 + wrappedLines[j].length;
193
- lines.push(`${BOX.v}${padRight(cont, contLen, innerWidth)}${BOX.v}`);
194
- }
195
- }
196
- }
197
- // Footer
198
- if (footer) {
199
- lines.push(hLine(BOX.ml, BOX.mr, boxWidth));
200
- const wrappedFooter = wrapText(footer, footerTextMax);
201
- for (const fLine of wrappedFooter) {
202
- const content = ` ${chalk.dim(fLine)}`;
203
- const visibleLen = FOOTER_PREFIX_LEN + fLine.length;
204
- lines.push(`${BOX.v}${padRight(content, visibleLen, innerWidth)}${BOX.v}`);
205
- }
206
- }
207
- // Bottom border
208
- lines.push(hLine(BOX.bl, BOX.br, boxWidth));
209
- return lines.join('\n');
210
- }
211
- //# sourceMappingURL=summary-box.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"summary-box.js","sourceRoot":"","sources":["../../src/utils/summary-box.ts"],"names":[],"mappings":"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","sourcesContent":["import chalk from 'chalk';\nimport { isUnicodeSupported } from './vendor/is-unicorn-supported.js';\nimport { type LockExpression, getLockArt, LOCK_WIDTH } from './lock-art.js';\nimport { symbols, palette } from './cli-symbols.js';\nimport type { CompletionData } from '../lib/events.js';\n\n/** Max number of changed files listed in the success box before collapsing. */\nconst MAX_SUMMARY_FILES = 5;\n\n/** Pre-built completion summaries shared by CLI and Dashboard adapters. */\nexport function renderCompletionSummary(success: boolean, summary?: string, completion?: CompletionData): string {\n if (success) {\n if (completion) {\n const files = completion.files;\n const shown: SummaryBoxItem[] = files.slice(0, MAX_SUMMARY_FILES).map((f) => ({ type: 'done', text: f }));\n if (files.length > MAX_SUMMARY_FILES) {\n shown.push({ type: 'done', text: `…and ${files.length - MAX_SUMMARY_FILES} more` });\n }\n const steps: SummaryBoxItem[] = completion.nextSteps.map((s) => ({ type: 'pending', text: s }));\n return renderFlatSummary({\n expression: 'success',\n title: 'WorkOS AuthKit Installed',\n items: [...shown, ...steps],\n footer: completion.docsUrl,\n });\n }\n // Fallback: preserve the original static next-steps when no structured data is present.\n return renderFlatSummary({\n expression: 'success',\n title: 'WorkOS AuthKit Installed',\n items: [\n { type: 'pending', text: 'Start dev server to test authentication' },\n { type: 'pending', text: 'Visit WorkOS Dashboard to manage users' },\n ],\n footer: 'https://workos.com/docs/authkit',\n });\n }\n return renderFlatSummary({\n expression: 'error',\n title: 'Installation Failed',\n items: summary ? [{ type: 'error', text: summary }] : [],\n footer: 'https://github.com/workos/cli/issues',\n });\n}\n\nexport interface SummaryBoxItem {\n type: 'done' | 'pending' | 'error';\n text: string;\n}\n\nexport interface SummaryBoxOptions {\n expression: LockExpression;\n title: string;\n items?: SummaryBoxItem[];\n footer?: string;\n}\n\nconst unicode = isUnicodeSupported();\n\nconst BOX = unicode\n ? { tl: '┌', tr: '┐', bl: '└', br: '┘', h: '─', v: '│', ml: '├', mr: '┤' }\n : { tl: '+', tr: '+', bl: '+', br: '+', h: '-', v: '|', ml: '+', mr: '+' };\n\nconst ITEM_ICONS: Record<SummaryBoxItem['type'], string> = {\n done: chalk.green(symbols.success),\n pending: chalk.cyan(symbols.arrow),\n error: chalk.red(symbols.error),\n};\n\n// ── Flat (de-boxed) rendering — the install opener + closer ───────────────────\n\nconst { accent, cyan: flatCyan } = palette;\n\n/** Flat glyphs matching the ui facade (green ✓ / accent › / red ✗). */\nconst FLAT_ICONS: Record<SummaryBoxItem['type'], string> = {\n done: chalk.green('✓'),\n pending: accent('›'),\n error: chalk.red('✗'),\n};\n\n/**\n * The install opener: the WorkOS lock (in brand indigo) beside the wordmark.\n * A compact, de-boxed replacement for the full block-letter banner — the same\n * lock that closes the install, so the two ends bookend each other.\n */\nexport function renderBrandMark(subtitle?: string): string {\n const lock = getLockArt('success', false); // raw lines; recolor to brand indigo\n const titleLine = 2; // \"WorkOS\" sits beside the top of the lock body\n const subtitleLine = 3;\n return lock\n .map((l, i) => {\n const left = ` ${accent(l)}`;\n if (i === titleLine) return `${left} ${accent.bold('WorkOS')}`;\n if (i === subtitleLine && subtitle) return `${left} ${chalk.dim(subtitle)}`;\n return left;\n })\n .join('\\n');\n}\n\n/**\n * The install closer: the WorkOS lock (colored by outcome) above a flat title,\n * checklist, and footer — no border. Shared by the CLI and Dashboard adapters.\n * The lock is the same mark that opens the install (see renderBrandMark).\n */\nfunction renderFlatSummary(options: SummaryBoxOptions): string {\n const { expression, title, items = [], footer } = options;\n const out: string[] = getLockArt(expression, true).map((l) => ` ${l}`);\n out.push('', ` ${chalk.bold(title)}`);\n for (const item of items) {\n // File paths (done) read better in cyan; next-step prose stays default weight.\n const text = item.type === 'done' ? flatCyan(item.text) : item.text;\n out.push(` ${FLAT_ICONS[item.type]} ${text}`);\n }\n if (footer) out.push('', ` ${chalk.dim(footer)}`);\n return out.join('\\n');\n}\n\nconst MIN_WIDTH = 42;\n// Item prefix \" X \" = 4 visible chars before text\nconst ITEM_PREFIX_LEN = 4;\n// Footer prefix \" \" = 2 visible chars before text\nconst FOOTER_PREFIX_LEN = 2;\n\nfunction hLine(left: string, right: string, width: number): string {\n return `${left}${BOX.h.repeat(width - 2)}${right}`;\n}\n\nfunction padRight(text: string, visibleLen: number, targetLen: number): string {\n const padding = Math.max(0, targetLen - visibleLen);\n return text + ' '.repeat(padding);\n}\n\n/** Word-wrap text to fit within maxLen, returning multiple lines. */\nfunction wrapText(text: string, maxLen: number): string[] {\n if (text.length <= maxLen) return [text];\n const words = text.split(' ');\n const wrapped: string[] = [];\n let current = '';\n for (const word of words) {\n const candidate = current ? `${current} ${word}` : word;\n if (candidate.length > maxLen && current) {\n wrapped.push(current);\n current = word;\n } else {\n current = candidate;\n }\n }\n if (current) wrapped.push(current);\n return wrapped;\n}\n\nfunction getTerminalWidth(): number {\n return process.stdout.columns || 80;\n}\n\n/**\n * Render a branded summary box with the WorkOS lock character,\n * a title, optional checklist items, and an optional footer.\n */\nexport function renderSummaryBox(options: SummaryBoxOptions): string {\n const { expression, title, items = [], footer } = options;\n\n const lockColored = getLockArt(expression, true);\n const lockRaw = getLockArt(expression, false);\n const lockLines = lockColored.length;\n\n // \" \" + lock + \" \" = lock column width\n const lockColWidth = LOCK_WIDTH + 3;\n\n // Cap box width to terminal width\n const termWidth = getTerminalWidth();\n // innerWidth must fit: lock+title, items, footer — but capped to terminal\n const maxInner = Math.max(MIN_WIDTH - 2, termWidth - 2);\n\n // Compute ideal inner width from content\n const titleRowWidth = lockColWidth + title.length;\n const itemWidths = items.map((item) => ITEM_PREFIX_LEN + item.text.length);\n const footerWidth = footer ? FOOTER_PREFIX_LEN + footer.length : 0;\n const idealInner = Math.max(titleRowWidth, ...itemWidths, footerWidth) + 1;\n\n const innerWidth = Math.min(Math.max(MIN_WIDTH - 2, idealInner), maxInner);\n const boxWidth = innerWidth + 2;\n\n // Available text width for items and footer (after prefix, before right padding + border)\n const itemTextMax = innerWidth - ITEM_PREFIX_LEN - 1;\n const footerTextMax = innerWidth - FOOTER_PREFIX_LEN - 1;\n\n const lines: string[] = [];\n\n // Top border\n lines.push(hLine(BOX.tl, BOX.tr, boxWidth));\n\n // Lock + title rows\n const titleLineIndex = 3;\n for (let i = 0; i < lockLines; i++) {\n const lockPart = ` ${lockColored[i]} `;\n const lockPartRaw = ` ${lockRaw[i]} `;\n let rightPart: string;\n let rightPartLen: number;\n if (i === titleLineIndex) {\n rightPart = chalk.bold(title);\n rightPartLen = title.length;\n } else {\n rightPart = '';\n rightPartLen = 0;\n }\n const row = BOX.v + padRight(lockPart + rightPart, lockPartRaw.length + rightPartLen, innerWidth) + BOX.v;\n lines.push(row);\n }\n\n // Items\n if (items.length > 0) {\n lines.push(`${BOX.v}${' '.repeat(innerWidth)}${BOX.v}`);\n\n for (const item of items) {\n const icon = ITEM_ICONS[item.type];\n const wrappedLines = wrapText(item.text, itemTextMax);\n // First line gets the icon\n const first = ` ${icon} ${wrappedLines[0]}`;\n const firstLen = ITEM_PREFIX_LEN + wrappedLines[0].length;\n lines.push(`${BOX.v}${padRight(first, firstLen, innerWidth)}${BOX.v}`);\n // Continuation lines are indented to align with text after icon\n for (let j = 1; j < wrappedLines.length; j++) {\n const cont = ` ${wrappedLines[j]}`;\n const contLen = 4 + wrappedLines[j].length;\n lines.push(`${BOX.v}${padRight(cont, contLen, innerWidth)}${BOX.v}`);\n }\n }\n }\n\n // Footer\n if (footer) {\n lines.push(hLine(BOX.ml, BOX.mr, boxWidth));\n const wrappedFooter = wrapText(footer, footerTextMax);\n for (const fLine of wrappedFooter) {\n const content = ` ${chalk.dim(fLine)}`;\n const visibleLen = FOOTER_PREFIX_LEN + fLine.length;\n lines.push(`${BOX.v}${padRight(content, visibleLen, innerWidth)}${BOX.v}`);\n }\n }\n\n // Bottom border\n lines.push(hLine(BOX.bl, BOX.br, boxWidth));\n\n return lines.join('\\n');\n}\n"]}
@@ -1,5 +0,0 @@
1
- export interface TableColumn {
2
- header: string;
3
- width?: number;
4
- }
5
- export declare function formatTable(columns: TableColumn[], rows: string[][]): string;
@@ -1,18 +0,0 @@
1
- import chalk from 'chalk';
2
- export function formatTable(columns, rows) {
3
- const widths = columns.map((col, i) => {
4
- const contentMax = rows.reduce((max, row) => Math.max(max, (row[i] || '').length), 0);
5
- return col.width ?? Math.max(col.header.length, contentMax);
6
- });
7
- const lines = [];
8
- const header = columns.map((col, i) => chalk.yellow(col.header.padEnd(widths[i]))).join(' ');
9
- lines.push(header);
10
- const totalWidth = widths.reduce((sum, w) => sum + w, 0) + (widths.length - 1) * 2;
11
- lines.push(chalk.dim('─'.repeat(totalWidth)));
12
- for (const row of rows) {
13
- const line = row.map((cell, i) => (cell || '').padEnd(widths[i])).join(' ');
14
- lines.push(line);
15
- }
16
- return lines.join('\n');
17
- }
18
- //# sourceMappingURL=table.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/utils/table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,MAAM,UAAU,WAAW,CAAC,OAAsB,EAAE,IAAgB;IAClE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACtF,OAAO,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9F,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEnB,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACnF,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAE9C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7E,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC","sourcesContent":["import chalk from 'chalk';\n\nexport interface TableColumn {\n header: string;\n width?: number;\n}\n\nexport function formatTable(columns: TableColumn[], rows: string[][]): string {\n const widths = columns.map((col, i) => {\n const contentMax = rows.reduce((max, row) => Math.max(max, (row[i] || '').length), 0);\n return col.width ?? Math.max(col.header.length, contentMax);\n });\n\n const lines: string[] = [];\n\n const header = columns.map((col, i) => chalk.yellow(col.header.padEnd(widths[i]))).join(' ');\n lines.push(header);\n\n const totalWidth = widths.reduce((sum, w) => sum + w, 0) + (widths.length - 1) * 2;\n lines.push(chalk.dim('─'.repeat(totalWidth)));\n\n for (const row of rows) {\n const line = row.map((cell, i) => (cell || '').padEnd(widths[i])).join(' ');\n lines.push(line);\n }\n\n return lines.join('\\n');\n}\n"]}
@@ -1,43 +0,0 @@
1
- import type { TelemetryEvent } from './telemetry-types.js';
2
- /**
3
- * HTTP client that queues telemetry events and flushes them to the API.
4
- * Failures are silent—telemetry should never crash the wizard.
5
- */
6
- export declare class TelemetryClient {
7
- private events;
8
- private flushInFlight;
9
- private accessToken;
10
- private claimToken;
11
- private clientId;
12
- private apiKey;
13
- private gatewayUrl;
14
- setGatewayUrl(url: string): void;
15
- setAccessToken(token: string): void;
16
- setApiKeyAuth(apiKey: string): void;
17
- /**
18
- * Set claim-token auth for unclaimed environments.
19
- * The API accepts either a JWT (Bearer), claim token
20
- * (x-workos-claim-token + x-workos-client-id), or API key
21
- * (x-workos-api-key).
22
- */
23
- setClaimTokenAuth(clientId: string, claimToken: string): void;
24
- queueEvent(event: TelemetryEvent): void;
25
- /**
26
- * Queue multiple pre-formed events (used by store-forward recovery).
27
- */
28
- queueEvents(events: TelemetryEvent[]): void;
29
- /**
30
- * Flush queued events. Returns true if events were sent or intentionally
31
- * dropped (4xx), false if they should be retried (5xx/network error).
32
- * Uses splice to only remove the events that were in the snapshot,
33
- * protecting any events queued concurrently during the fetch.
34
- */
35
- flush(): Promise<boolean>;
36
- private flushInternal;
37
- /**
38
- * Synchronously write pending events to a file.
39
- * Used as last resort in process.on('exit') handler.
40
- */
41
- persistToFile(filePath: string): void;
42
- }
43
- export declare const telemetryClient: TelemetryClient;