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,148 +0,0 @@
1
- /**
2
- * UI facade — flat, gutterless CLI output + interactive prompts.
3
- *
4
- * The single import seam for all CLI UI: every module imports the default `ui`
5
- * from this file. Output is hand-styled ANSI (diffdad-style: 2-space indent, one
6
- * accent color, no vertical gutter). Input (confirm/select/text/password)
7
- * delegates to `@inquirer/prompts`.
8
- *
9
- * The prompt adapters keep a stable call shape (`{ message, options,
10
- * initialValue, validate }`) and the `isCancel(answer)` pattern, so the input
11
- * engine can be swapped underneath without touching the ~30 call sites.
12
- *
13
- * Cancellation: @inquirer THROWS on ctrl-c / signal-abort (ExitPromptError /
14
- * AbortPromptError) instead of returning a symbol. Each adapted prompt catches
15
- * those and returns the `CANCEL` symbol, so `if (ui.isCancel(x))` keeps working.
16
- */
17
- export declare function setDashboardMode(enabled: boolean): void;
18
- export declare function isDashboardMode(): boolean;
19
- /**
20
- * An inverse "badge" chip (e.g. a colored INFO / WARN label). Pure string
21
- * helper so callers writing to stdout OR stderr can reuse it. chalk.level === 0
22
- * (JSON mode) strips the color to plain text automatically.
23
- */
24
- export declare function pill(label: string, kind?: 'info' | 'warn'): string;
25
- /**
26
- * Branded title line, framed by blank lines. With a subtitle it renders
27
- * `Title · subtitle` (accent-bold name, dim subtitle) — the dad-style header.
28
- */
29
- declare function intro(title: string, subtitle?: string): void;
30
- /** Closing line. */
31
- declare function outro(message?: string): void;
32
- /** A titled section header — anchors a "moment" that owns several lines. */
33
- declare function heading(title: string): void;
34
- /** Multi-line indented note (body dim, framed by blank lines). */
35
- declare function note(message: string): void;
36
- export type RowStatusKind = 'ok' | 'muted' | 'warn';
37
- export interface Row {
38
- key: string;
39
- value: string;
40
- /** Optional trailing status word (e.g. "created", "already set", "updated"). */
41
- status?: string;
42
- /** How to color the status word. Defaults to 'muted'. */
43
- statusKind?: RowStatusKind;
44
- }
45
- /**
46
- * Print a set of aligned key/value rows (leading ✓, dim key padded to the
47
- * widest key in the set, accent value, optional colored status). Alignment is a
48
- * property of the whole set, so callers pass every row at once.
49
- */
50
- declare function rows(items: Row[]): void;
51
- export interface Spinner {
52
- start: (message?: string) => void;
53
- message: (message: string) => void;
54
- stop: (message?: string, code?: number) => void;
55
- /** Halt and erase the spinner line WITHOUT printing a final status line. */
56
- clear: () => void;
57
- }
58
- /** spinner: start(msg) / message(msg) / stop(msg, code). */
59
- declare function spinner(): Spinner;
60
- /**
61
- * Returned by a prompt when the user cancels (ctrl-c) or a signal aborts it.
62
- * Typed as a plain `symbol` (not `unique symbol`) to preserve the exact
63
- * generic-inference behavior at call sites like `assertNotCancelled<T>(v: T | symbol)`.
64
- */
65
- export declare const CANCEL: symbol;
66
- /** Type guard that narrows a prompt result to a non-cancel value. */
67
- export declare function isCancel(value: unknown): value is symbol;
68
- /** Print a cancellation line. */
69
- export declare function cancel(message?: string): void;
70
- /**
71
- * Thrown when a prompt is attempted where the user cannot answer: machine
72
- * (`--json`) output, or a non-interactive stdin (piped / no TTY). Previously
73
- * these either corrupted machine output or hung forever waiting on a stdin that
74
- * never delivers a keystroke. Callers that reach this generally have an upstream
75
- * gap (they should have gated on isPromptAllowed()/isJsonMode() and offered a
76
- * flag) — surfacing it fails fast with a clear next step instead of hanging.
77
- */
78
- export declare class PromptUnavailableError extends Error {
79
- readonly reason: 'json' | 'no-tty';
80
- constructor(reason: 'json' | 'no-tty', message: string);
81
- }
82
- /**
83
- * Adapt the validate contract (return error string / Error when invalid,
84
- * undefined when valid) to @inquirer's (return true when valid, string when not).
85
- */
86
- type ValidateFn = (value: string) => string | Error | undefined | void | Promise<string | Error | undefined | void>;
87
- interface ConfirmOptions {
88
- message: string;
89
- initialValue?: boolean;
90
- signal?: AbortSignal;
91
- }
92
- declare function confirm(options: ConfirmOptions): Promise<boolean | symbol>;
93
- interface SelectOption<T> {
94
- value: T;
95
- label?: string;
96
- hint?: string;
97
- }
98
- interface SelectOptions<T> {
99
- message: string;
100
- options: ReadonlyArray<SelectOption<T>>;
101
- initialValue?: T;
102
- maxItems?: number;
103
- signal?: AbortSignal;
104
- }
105
- declare function select<T>(options: SelectOptions<T>): Promise<T | symbol>;
106
- interface TextOptions {
107
- message: string;
108
- placeholder?: string;
109
- defaultValue?: string;
110
- initialValue?: string;
111
- validate?: ValidateFn;
112
- signal?: AbortSignal;
113
- }
114
- declare function text(options: TextOptions): Promise<string | symbol>;
115
- interface PasswordOptions {
116
- message: string;
117
- validate?: ValidateFn;
118
- signal?: AbortSignal;
119
- }
120
- declare function password(options: PasswordOptions): Promise<string | symbol>;
121
- declare const ui: {
122
- intro: typeof intro;
123
- outro: typeof outro;
124
- heading: typeof heading;
125
- note: typeof note;
126
- rows: typeof rows;
127
- pill: typeof pill;
128
- log: {
129
- info: (m: string) => void;
130
- step: (m: string) => void;
131
- success: (m: string) => void;
132
- warn: (m: string) => void;
133
- warning: (m: string) => void;
134
- error: (m: string) => void;
135
- /** A muted, low-priority aside (opt-out hints, "run X later"). One dim line. */
136
- hint: (m: string) => void;
137
- /** A nested sub-step, indented one level under its parent line. */
138
- detail: (m: string) => void;
139
- };
140
- spinner: typeof spinner;
141
- confirm: typeof confirm;
142
- select: typeof select;
143
- text: typeof text;
144
- password: typeof password;
145
- isCancel: typeof isCancel;
146
- cancel: typeof cancel;
147
- };
148
- export default ui;
package/dist/utils/ui.js DELETED
@@ -1,368 +0,0 @@
1
- /**
2
- * UI facade — flat, gutterless CLI output + interactive prompts.
3
- *
4
- * The single import seam for all CLI UI: every module imports the default `ui`
5
- * from this file. Output is hand-styled ANSI (diffdad-style: 2-space indent, one
6
- * accent color, no vertical gutter). Input (confirm/select/text/password)
7
- * delegates to `@inquirer/prompts`.
8
- *
9
- * The prompt adapters keep a stable call shape (`{ message, options,
10
- * initialValue, validate }`) and the `isCancel(answer)` pattern, so the input
11
- * engine can be swapped underneath without touching the ~30 call sites.
12
- *
13
- * Cancellation: @inquirer THROWS on ctrl-c / signal-abort (ExitPromptError /
14
- * AbortPromptError) instead of returning a symbol. Each adapted prompt catches
15
- * those and returns the `CANCEL` symbol, so `if (ui.isCancel(x))` keeps working.
16
- */
17
- import chalk from 'chalk';
18
- import { isJsonMode } from './output.js';
19
- import { palette } from './cli-symbols.js';
20
- // @inquirer/prompts is loaded lazily (inside each prompt fn) so the barrel — all
21
- // ten widgets — stays off every non-interactive path (--json, --version, --help,
22
- // resource commands), which is most invocations. import() is module-cached, so
23
- // only the first prompt pays.
24
- // ── Dashboard mode ──────────────────────────────────────────────────────────
25
- // When true, suppress all human output (the Dashboard adapter drives its own UI).
26
- let dashboardMode = false;
27
- export function setDashboardMode(enabled) {
28
- dashboardMode = enabled;
29
- }
30
- export function isDashboardMode() {
31
- return dashboardMode;
32
- }
33
- // Brand palette (shared with summary-box via cli-symbols). chalk auto-disables
34
- // color when chalk.level === 0, set by setOutputMode in JSON mode.
35
- const { accent, green, red, yellow, cyan } = palette;
36
- const { dim, bold } = chalk;
37
- /**
38
- * An inverse "badge" chip (e.g. a colored INFO / WARN label). Pure string
39
- * helper so callers writing to stdout OR stderr can reuse it. chalk.level === 0
40
- * (JSON mode) strips the color to plain text automatically.
41
- */
42
- export function pill(label, kind = 'info') {
43
- const text = ` ${label} `;
44
- return kind === 'warn' ? chalk.bgHex('#fbbf24').black(text) : chalk.bgHex('#6363f1').white(text);
45
- }
46
- const INDENT = ' ';
47
- // Every stdout write routes through line()/blank(), which are the single
48
- // dashboard-mode guard — so no output surface below has to re-check the flag.
49
- /** Print one indented line to stdout (suppressed in dashboard mode). */
50
- function line(text = '') {
51
- if (dashboardMode)
52
- return;
53
- console.log(INDENT + text);
54
- }
55
- /** Print a vertical blank line (suppressed in dashboard mode). */
56
- function blank() {
57
- if (dashboardMode)
58
- return;
59
- console.log('');
60
- }
61
- // ── Output surface ───────────────────────────────────────────────────────────
62
- /**
63
- * Branded title line, framed by blank lines. With a subtitle it renders
64
- * `Title · subtitle` (accent-bold name, dim subtitle) — the dad-style header.
65
- */
66
- function intro(title, subtitle) {
67
- blank();
68
- line(subtitle ? `${accent(bold(title))} ${dim('·')} ${dim(subtitle)}` : accent(bold(title)));
69
- blank();
70
- }
71
- /** Closing line. */
72
- function outro(message = '') {
73
- blank();
74
- if (message)
75
- line(dim(message));
76
- blank();
77
- }
78
- /** A titled section header — anchors a "moment" that owns several lines. */
79
- function heading(title) {
80
- blank();
81
- line(accent(bold(title)));
82
- }
83
- /** Multi-line indented note (body dim, framed by blank lines). */
84
- function note(message) {
85
- blank();
86
- for (const l of String(message).split('\n'))
87
- line(dim(l));
88
- blank();
89
- }
90
- const log = {
91
- info: (m) => line(m),
92
- step: (m) => line(`${accent('›')} ${m}`),
93
- success: (m) => line(`${green('✓')} ${m}`),
94
- warn: (m) => line(`${yellow('!')} ${m}`),
95
- warning: (m) => line(`${yellow('!')} ${m}`),
96
- error: (m) => line(`${red('✗')} ${m}`),
97
- /** A muted, low-priority aside (opt-out hints, "run X later"). One dim line. */
98
- hint: (m) => line(dim(m)),
99
- /** A nested sub-step, indented one level under its parent line. */
100
- detail: (m) => line(` ${dim('›')} ${dim(m)}`),
101
- };
102
- /**
103
- * Print a set of aligned key/value rows (leading ✓, dim key padded to the
104
- * widest key in the set, accent value, optional colored status). Alignment is a
105
- * property of the whole set, so callers pass every row at once.
106
- */
107
- function rows(items) {
108
- if (dashboardMode || items.length === 0)
109
- return;
110
- const width = Math.max(...items.map((i) => i.key.length));
111
- const paint = { ok: green, muted: dim, warn: yellow };
112
- for (const it of items) {
113
- const status = it.status ? ` ${paint[it.statusKind ?? 'muted'](it.status)}` : '';
114
- line(`${green('✓')} ${dim(it.key.padEnd(width))} ${cyan(it.value)}${status}`);
115
- }
116
- }
117
- const SPINNER_FRAMES = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
118
- let activeSpinner = null;
119
- /** spinner: start(msg) / message(msg) / stop(msg, code). */
120
- function spinner() {
121
- let timer;
122
- let frame = 0;
123
- let text = '';
124
- const isTty = Boolean(process.stdout.isTTY) && !dashboardMode;
125
- const render = () => {
126
- process.stdout.write(`\r${INDENT}${dim(SPINNER_FRAMES[(frame = (frame + 1) % SPINNER_FRAMES.length)])} ${text}`);
127
- };
128
- const clearLine = () => {
129
- if (isTty)
130
- process.stdout.write('\r\x1b[2K');
131
- };
132
- const tick = () => {
133
- if (isTty && !timer) {
134
- render();
135
- timer = setInterval(render, 80);
136
- }
137
- };
138
- const handle = {
139
- start(message = '') {
140
- text = message;
141
- if (dashboardMode)
142
- return;
143
- if (isTty) {
144
- tick();
145
- activeSpinner = handle;
146
- }
147
- else {
148
- line(`${dim('…')} ${text}`);
149
- }
150
- },
151
- message(message) {
152
- text = message;
153
- },
154
- stop(message, code = 0) {
155
- if (timer) {
156
- clearInterval(timer);
157
- timer = undefined;
158
- }
159
- if (activeSpinner === handle)
160
- activeSpinner = null;
161
- if (dashboardMode)
162
- return;
163
- clearLine();
164
- const glyph = code === 0 ? green('✓') : red('✗');
165
- line(`${glyph} ${message ?? text}`);
166
- },
167
- // Halt + erase without printing a final line (e.g. an orphaned spinner from
168
- // a failed step being cleared before a prompt), and deregister so a prompt
169
- // doesn't resume it.
170
- clear() {
171
- if (timer) {
172
- clearInterval(timer);
173
- timer = undefined;
174
- }
175
- if (activeSpinner === handle)
176
- activeSpinner = null;
177
- if (dashboardMode)
178
- return;
179
- clearLine();
180
- },
181
- // Pause/resume let a prompt borrow the terminal: pause clears the spinner
182
- // line and halts the redraw interval; resume restarts it. stop() is NOT
183
- // called, so activeSpinner stays registered across the prompt.
184
- pause() {
185
- if (timer) {
186
- clearInterval(timer);
187
- timer = undefined;
188
- }
189
- clearLine();
190
- },
191
- resume() {
192
- // Only resume if this handle is still the active spinner — never resurrect
193
- // a spinner that was stopped or cleared while the prompt was open.
194
- if (activeSpinner === handle && !dashboardMode)
195
- tick();
196
- },
197
- };
198
- return handle;
199
- }
200
- // ── Cancellation ──────────────────────────────────────────────────────────────
201
- /**
202
- * Returned by a prompt when the user cancels (ctrl-c) or a signal aborts it.
203
- * Typed as a plain `symbol` (not `unique symbol`) to preserve the exact
204
- * generic-inference behavior at call sites like `assertNotCancelled<T>(v: T | symbol)`.
205
- */
206
- export const CANCEL = Symbol('workos.prompt.cancel');
207
- /** Type guard that narrows a prompt result to a non-cancel value. */
208
- export function isCancel(value) {
209
- return value === CANCEL;
210
- }
211
- /** Print a cancellation line. */
212
- export function cancel(message = 'Cancelled') {
213
- if (dashboardMode)
214
- return;
215
- console.error(INDENT + dim(message));
216
- }
217
- const CANCEL_ERROR_NAMES = new Set(['ExitPromptError', 'AbortPromptError', 'CancelPromptError']);
218
- function isCancelError(error) {
219
- return error instanceof Error && CANCEL_ERROR_NAMES.has(error.name);
220
- }
221
- // ── Prompt coordination ───────────────────────────────────────────────────────
222
- /**
223
- * Thrown when a prompt is attempted where the user cannot answer: machine
224
- * (`--json`) output, or a non-interactive stdin (piped / no TTY). Previously
225
- * these either corrupted machine output or hung forever waiting on a stdin that
226
- * never delivers a keystroke. Callers that reach this generally have an upstream
227
- * gap (they should have gated on isPromptAllowed()/isJsonMode() and offered a
228
- * flag) — surfacing it fails fast with a clear next step instead of hanging.
229
- */
230
- export class PromptUnavailableError extends Error {
231
- reason;
232
- constructor(reason, message) {
233
- super(message);
234
- this.reason = reason;
235
- this.name = 'PromptUnavailableError';
236
- }
237
- }
238
- /**
239
- * Serializes every prompt through a single-flight chain so two @inquirer prompts
240
- * can never share stdin at once. The installer's XState `preparing` state runs
241
- * git-dirty and protected-branch checks in PARALLEL regions, each of which can
242
- * open a prompt from a fire-and-forget event handler — without this, both prompts
243
- * render on the same stdin and steal each other's keystrokes ("it asked a
244
- * question but wasn't there to answer it"). It also pauses any live spinner so
245
- * the 80ms redraw interval can't overwrite the question.
246
- */
247
- let promptChain = Promise.resolve();
248
- async function withPrompt(run) {
249
- if (isJsonMode()) {
250
- throw new PromptUnavailableError('json', 'Cannot prompt for input in --json mode. Re-run without --json, or pass the flag that answers it (e.g. --yes / --force).');
251
- }
252
- if (!process.stdin.isTTY) {
253
- throw new PromptUnavailableError('no-tty', 'This step needs an interactive terminal. Re-run in a terminal, or pass the required flags to run non-interactively.');
254
- }
255
- const prior = promptChain.catch(() => undefined);
256
- let release;
257
- promptChain = new Promise((resolve) => {
258
- release = resolve;
259
- });
260
- await prior;
261
- const spinner = activeSpinner;
262
- spinner?.pause();
263
- try {
264
- return await run();
265
- }
266
- finally {
267
- spinner?.resume();
268
- release();
269
- }
270
- }
271
- function adaptValidate(validate) {
272
- if (!validate)
273
- return undefined;
274
- return async (value) => {
275
- const result = await validate(value);
276
- if (result == null)
277
- return true;
278
- return result instanceof Error ? result.message : String(result);
279
- };
280
- }
281
- async function confirm(options) {
282
- return withPrompt(async () => {
283
- const { confirm: inquirerConfirm } = await import('@inquirer/prompts');
284
- try {
285
- return await inquirerConfirm({ message: options.message, default: options.initialValue }, { signal: options.signal });
286
- }
287
- catch (error) {
288
- if (isCancelError(error))
289
- return CANCEL;
290
- throw error;
291
- }
292
- });
293
- }
294
- async function select(options) {
295
- return withPrompt(async () => {
296
- const { select: inquirerSelect } = await import('@inquirer/prompts');
297
- try {
298
- return await inquirerSelect({
299
- message: options.message,
300
- choices: options.options.map((o) => ({
301
- value: o.value,
302
- name: o.label ?? String(o.value),
303
- description: o.hint,
304
- })),
305
- default: options.initialValue,
306
- pageSize: options.maxItems,
307
- }, { signal: options.signal });
308
- }
309
- catch (error) {
310
- if (isCancelError(error))
311
- return CANCEL;
312
- throw error;
313
- }
314
- });
315
- }
316
- async function text(options) {
317
- return withPrompt(async () => {
318
- // @inquirer/input has no placeholder concept, and mapping it to `default`
319
- // would auto-submit the hint as the real value on an empty enter. Fold it
320
- // into the message so the hint survives (rendered as ghost text previously).
321
- const message = options.placeholder ? `${options.message} (${options.placeholder})` : options.message;
322
- const { input: inquirerInput } = await import('@inquirer/prompts');
323
- try {
324
- return await inquirerInput({
325
- message,
326
- default: options.defaultValue ?? options.initialValue,
327
- validate: adaptValidate(options.validate),
328
- }, { signal: options.signal });
329
- }
330
- catch (error) {
331
- if (isCancelError(error))
332
- return CANCEL;
333
- throw error;
334
- }
335
- });
336
- }
337
- async function password(options) {
338
- return withPrompt(async () => {
339
- const { password: inquirerPassword } = await import('@inquirer/prompts');
340
- try {
341
- return await inquirerPassword({ message: options.message, mask: true, validate: adaptValidate(options.validate) }, { signal: options.signal });
342
- }
343
- catch (error) {
344
- if (isCancelError(error))
345
- return CANCEL;
346
- throw error;
347
- }
348
- });
349
- }
350
- // ── Default export (the `ui` facade) ────────────────────────────────────────
351
- const ui = {
352
- intro,
353
- outro,
354
- heading,
355
- note,
356
- rows,
357
- pill,
358
- log,
359
- spinner,
360
- confirm,
361
- select,
362
- text,
363
- password,
364
- isCancel,
365
- cancel,
366
- };
367
- export default ui;
368
- //# sourceMappingURL=ui.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/utils/ui.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * UI facade — flat, gutterless CLI output + interactive prompts.\n *\n * The single import seam for all CLI UI: every module imports the default `ui`\n * from this file. Output is hand-styled ANSI (diffdad-style: 2-space indent, one\n * accent color, no vertical gutter). Input (confirm/select/text/password)\n * delegates to `@inquirer/prompts`.\n *\n * The prompt adapters keep a stable call shape (`{ message, options,\n * initialValue, validate }`) and the `isCancel(answer)` pattern, so the input\n * engine can be swapped underneath without touching the ~30 call sites.\n *\n * Cancellation: @inquirer THROWS on ctrl-c / signal-abort (ExitPromptError /\n * AbortPromptError) instead of returning a symbol. Each adapted prompt catches\n * those and returns the `CANCEL` symbol, so `if (ui.isCancel(x))` keeps working.\n */\n\nimport chalk from 'chalk';\nimport { isJsonMode } from './output.js';\nimport { palette } from './cli-symbols.js';\n\n// @inquirer/prompts is loaded lazily (inside each prompt fn) so the barrel — all\n// ten widgets — stays off every non-interactive path (--json, --version, --help,\n// resource commands), which is most invocations. import() is module-cached, so\n// only the first prompt pays.\n\n// ── Dashboard mode ──────────────────────────────────────────────────────────\n// When true, suppress all human output (the Dashboard adapter drives its own UI).\nlet dashboardMode = false;\nexport function setDashboardMode(enabled: boolean): void {\n dashboardMode = enabled;\n}\nexport function isDashboardMode(): boolean {\n return dashboardMode;\n}\n\n// Brand palette (shared with summary-box via cli-symbols). chalk auto-disables\n// color when chalk.level === 0, set by setOutputMode in JSON mode.\nconst { accent, green, red, yellow, cyan } = palette;\nconst { dim, bold } = chalk;\n\n/**\n * An inverse \"badge\" chip (e.g. a colored INFO / WARN label). Pure string\n * helper so callers writing to stdout OR stderr can reuse it. chalk.level === 0\n * (JSON mode) strips the color to plain text automatically.\n */\nexport function pill(label: string, kind: 'info' | 'warn' = 'info'): string {\n const text = ` ${label} `;\n return kind === 'warn' ? chalk.bgHex('#fbbf24').black(text) : chalk.bgHex('#6363f1').white(text);\n}\n\nconst INDENT = ' ';\n\n// Every stdout write routes through line()/blank(), which are the single\n// dashboard-mode guard — so no output surface below has to re-check the flag.\n/** Print one indented line to stdout (suppressed in dashboard mode). */\nfunction line(text = ''): void {\n if (dashboardMode) return;\n console.log(INDENT + text);\n}\n\n/** Print a vertical blank line (suppressed in dashboard mode). */\nfunction blank(): void {\n if (dashboardMode) return;\n console.log('');\n}\n\n// ── Output surface ───────────────────────────────────────────────────────────\n\n/**\n * Branded title line, framed by blank lines. With a subtitle it renders\n * `Title · subtitle` (accent-bold name, dim subtitle) — the dad-style header.\n */\nfunction intro(title: string, subtitle?: string): void {\n blank();\n line(subtitle ? `${accent(bold(title))} ${dim('·')} ${dim(subtitle)}` : accent(bold(title)));\n blank();\n}\n\n/** Closing line. */\nfunction outro(message = ''): void {\n blank();\n if (message) line(dim(message));\n blank();\n}\n\n/** A titled section header — anchors a \"moment\" that owns several lines. */\nfunction heading(title: string): void {\n blank();\n line(accent(bold(title)));\n}\n\n/** Multi-line indented note (body dim, framed by blank lines). */\nfunction note(message: string): void {\n blank();\n for (const l of String(message).split('\\n')) line(dim(l));\n blank();\n}\n\nconst log = {\n info: (m: string) => line(m),\n step: (m: string) => line(`${accent('›')} ${m}`),\n success: (m: string) => line(`${green('✓')} ${m}`),\n warn: (m: string) => line(`${yellow('!')} ${m}`),\n warning: (m: string) => line(`${yellow('!')} ${m}`),\n error: (m: string) => line(`${red('✗')} ${m}`),\n /** A muted, low-priority aside (opt-out hints, \"run X later\"). One dim line. */\n hint: (m: string) => line(dim(m)),\n /** A nested sub-step, indented one level under its parent line. */\n detail: (m: string) => line(` ${dim('›')} ${dim(m)}`),\n};\n\n// ── Aligned key/value rows ────────────────────────────────────────────────────\n\nexport type RowStatusKind = 'ok' | 'muted' | 'warn';\nexport interface Row {\n key: string;\n value: string;\n /** Optional trailing status word (e.g. \"created\", \"already set\", \"updated\"). */\n status?: string;\n /** How to color the status word. Defaults to 'muted'. */\n statusKind?: RowStatusKind;\n}\n\n/**\n * Print a set of aligned key/value rows (leading ✓, dim key padded to the\n * widest key in the set, accent value, optional colored status). Alignment is a\n * property of the whole set, so callers pass every row at once.\n */\nfunction rows(items: Row[]): void {\n if (dashboardMode || items.length === 0) return;\n const width = Math.max(...items.map((i) => i.key.length));\n const paint: Record<RowStatusKind, (s: string) => string> = { ok: green, muted: dim, warn: yellow };\n for (const it of items) {\n const status = it.status ? ` ${paint[it.statusKind ?? 'muted'](it.status)}` : '';\n line(`${green('✓')} ${dim(it.key.padEnd(width))} ${cyan(it.value)}${status}`);\n }\n}\n\nconst SPINNER_FRAMES = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];\n\nexport interface Spinner {\n start: (message?: string) => void;\n message: (message: string) => void;\n stop: (message?: string, code?: number) => void;\n /** Halt and erase the spinner line WITHOUT printing a final status line. */\n clear: () => void;\n}\n\n/**\n * The currently-running spinner, if any. A prompt pauses it before opening so\n * the 80ms redraw interval can't overwrite the question (see withPrompt).\n * Internal — not part of the public Spinner surface.\n */\ninterface PausableSpinner {\n pause: () => void;\n resume: () => void;\n}\nlet activeSpinner: PausableSpinner | null = null;\n\n/** spinner: start(msg) / message(msg) / stop(msg, code). */\nfunction spinner(): Spinner {\n let timer: ReturnType<typeof setInterval> | undefined;\n let frame = 0;\n let text = '';\n const isTty = Boolean(process.stdout.isTTY) && !dashboardMode;\n const render = () => {\n process.stdout.write(`\\r${INDENT}${dim(SPINNER_FRAMES[(frame = (frame + 1) % SPINNER_FRAMES.length)])} ${text}`);\n };\n const clearLine = () => {\n if (isTty) process.stdout.write('\\r\\x1b[2K');\n };\n const tick = () => {\n if (isTty && !timer) {\n render();\n timer = setInterval(render, 80);\n }\n };\n const handle: Spinner & PausableSpinner = {\n start(message = '') {\n text = message;\n if (dashboardMode) return;\n if (isTty) {\n tick();\n activeSpinner = handle;\n } else {\n line(`${dim('…')} ${text}`);\n }\n },\n message(message: string) {\n text = message;\n },\n stop(message?: string, code = 0) {\n if (timer) {\n clearInterval(timer);\n timer = undefined;\n }\n if (activeSpinner === handle) activeSpinner = null;\n if (dashboardMode) return;\n clearLine();\n const glyph = code === 0 ? green('✓') : red('✗');\n line(`${glyph} ${message ?? text}`);\n },\n // Halt + erase without printing a final line (e.g. an orphaned spinner from\n // a failed step being cleared before a prompt), and deregister so a prompt\n // doesn't resume it.\n clear() {\n if (timer) {\n clearInterval(timer);\n timer = undefined;\n }\n if (activeSpinner === handle) activeSpinner = null;\n if (dashboardMode) return;\n clearLine();\n },\n // Pause/resume let a prompt borrow the terminal: pause clears the spinner\n // line and halts the redraw interval; resume restarts it. stop() is NOT\n // called, so activeSpinner stays registered across the prompt.\n pause() {\n if (timer) {\n clearInterval(timer);\n timer = undefined;\n }\n clearLine();\n },\n resume() {\n // Only resume if this handle is still the active spinner — never resurrect\n // a spinner that was stopped or cleared while the prompt was open.\n if (activeSpinner === handle && !dashboardMode) tick();\n },\n };\n return handle;\n}\n\n// ── Cancellation ──────────────────────────────────────────────────────────────\n\n/**\n * Returned by a prompt when the user cancels (ctrl-c) or a signal aborts it.\n * Typed as a plain `symbol` (not `unique symbol`) to preserve the exact\n * generic-inference behavior at call sites like `assertNotCancelled<T>(v: T | symbol)`.\n */\nexport const CANCEL: symbol = Symbol('workos.prompt.cancel');\n\n/** Type guard that narrows a prompt result to a non-cancel value. */\nexport function isCancel(value: unknown): value is symbol {\n return value === CANCEL;\n}\n\n/** Print a cancellation line. */\nexport function cancel(message = 'Cancelled'): void {\n if (dashboardMode) return;\n console.error(INDENT + dim(message));\n}\n\nconst CANCEL_ERROR_NAMES = new Set(['ExitPromptError', 'AbortPromptError', 'CancelPromptError']);\nfunction isCancelError(error: unknown): boolean {\n return error instanceof Error && CANCEL_ERROR_NAMES.has(error.name);\n}\n\n// ── Prompt coordination ───────────────────────────────────────────────────────\n\n/**\n * Thrown when a prompt is attempted where the user cannot answer: machine\n * (`--json`) output, or a non-interactive stdin (piped / no TTY). Previously\n * these either corrupted machine output or hung forever waiting on a stdin that\n * never delivers a keystroke. Callers that reach this generally have an upstream\n * gap (they should have gated on isPromptAllowed()/isJsonMode() and offered a\n * flag) — surfacing it fails fast with a clear next step instead of hanging.\n */\nexport class PromptUnavailableError extends Error {\n constructor(\n public readonly reason: 'json' | 'no-tty',\n message: string,\n ) {\n super(message);\n this.name = 'PromptUnavailableError';\n }\n}\n\n/**\n * Serializes every prompt through a single-flight chain so two @inquirer prompts\n * can never share stdin at once. The installer's XState `preparing` state runs\n * git-dirty and protected-branch checks in PARALLEL regions, each of which can\n * open a prompt from a fire-and-forget event handler — without this, both prompts\n * render on the same stdin and steal each other's keystrokes (\"it asked a\n * question but wasn't there to answer it\"). It also pauses any live spinner so\n * the 80ms redraw interval can't overwrite the question.\n */\nlet promptChain: Promise<unknown> = Promise.resolve();\n\nasync function withPrompt<T>(run: () => Promise<T>): Promise<T> {\n if (isJsonMode()) {\n throw new PromptUnavailableError(\n 'json',\n 'Cannot prompt for input in --json mode. Re-run without --json, or pass the flag that answers it (e.g. --yes / --force).',\n );\n }\n if (!process.stdin.isTTY) {\n throw new PromptUnavailableError(\n 'no-tty',\n 'This step needs an interactive terminal. Re-run in a terminal, or pass the required flags to run non-interactively.',\n );\n }\n const prior = promptChain.catch(() => undefined);\n let release!: () => void;\n promptChain = new Promise<void>((resolve) => {\n release = resolve;\n });\n await prior;\n const spinner = activeSpinner;\n spinner?.pause();\n try {\n return await run();\n } finally {\n spinner?.resume();\n release();\n }\n}\n\n/**\n * Adapt the validate contract (return error string / Error when invalid,\n * undefined when valid) to @inquirer's (return true when valid, string when not).\n */\ntype ValidateFn = (value: string) => string | Error | undefined | void | Promise<string | Error | undefined | void>;\nfunction adaptValidate(validate?: ValidateFn) {\n if (!validate) return undefined;\n return async (value: string): Promise<boolean | string> => {\n const result = await validate(value);\n if (result == null) return true;\n return result instanceof Error ? result.message : String(result);\n };\n}\n\n// ── Input surface (@inquirer under the hood) ─────────────────────\n\ninterface ConfirmOptions {\n message: string;\n initialValue?: boolean;\n signal?: AbortSignal;\n}\nasync function confirm(options: ConfirmOptions): Promise<boolean | symbol> {\n return withPrompt(async () => {\n const { confirm: inquirerConfirm } = await import('@inquirer/prompts');\n try {\n return await inquirerConfirm(\n { message: options.message, default: options.initialValue },\n { signal: options.signal },\n );\n } catch (error) {\n if (isCancelError(error)) return CANCEL;\n throw error;\n }\n });\n}\n\ninterface SelectOption<T> {\n value: T;\n label?: string;\n hint?: string;\n}\ninterface SelectOptions<T> {\n message: string;\n options: ReadonlyArray<SelectOption<T>>;\n initialValue?: T;\n maxItems?: number;\n signal?: AbortSignal;\n}\nasync function select<T>(options: SelectOptions<T>): Promise<T | symbol> {\n return withPrompt(async () => {\n const { select: inquirerSelect } = await import('@inquirer/prompts');\n try {\n return await inquirerSelect<T>(\n {\n message: options.message,\n choices: options.options.map((o) => ({\n value: o.value,\n name: o.label ?? String(o.value),\n description: o.hint,\n })),\n default: options.initialValue,\n pageSize: options.maxItems,\n },\n { signal: options.signal },\n );\n } catch (error) {\n if (isCancelError(error)) return CANCEL;\n throw error;\n }\n });\n}\n\ninterface TextOptions {\n message: string;\n placeholder?: string;\n defaultValue?: string;\n initialValue?: string;\n validate?: ValidateFn;\n signal?: AbortSignal;\n}\nasync function text(options: TextOptions): Promise<string | symbol> {\n return withPrompt(async () => {\n // @inquirer/input has no placeholder concept, and mapping it to `default`\n // would auto-submit the hint as the real value on an empty enter. Fold it\n // into the message so the hint survives (rendered as ghost text previously).\n const message = options.placeholder ? `${options.message} (${options.placeholder})` : options.message;\n const { input: inquirerInput } = await import('@inquirer/prompts');\n try {\n return await inquirerInput(\n {\n message,\n default: options.defaultValue ?? options.initialValue,\n validate: adaptValidate(options.validate),\n },\n { signal: options.signal },\n );\n } catch (error) {\n if (isCancelError(error)) return CANCEL;\n throw error;\n }\n });\n}\n\ninterface PasswordOptions {\n message: string;\n validate?: ValidateFn;\n signal?: AbortSignal;\n}\nasync function password(options: PasswordOptions): Promise<string | symbol> {\n return withPrompt(async () => {\n const { password: inquirerPassword } = await import('@inquirer/prompts');\n try {\n return await inquirerPassword(\n { message: options.message, mask: true, validate: adaptValidate(options.validate) },\n { signal: options.signal },\n );\n } catch (error) {\n if (isCancelError(error)) return CANCEL;\n throw error;\n }\n });\n}\n\n// ── Default export (the `ui` facade) ────────────────────────────────────────\n\nconst ui = {\n intro,\n outro,\n heading,\n note,\n rows,\n pill,\n log,\n spinner,\n confirm,\n select,\n text,\n password,\n isCancel,\n cancel,\n};\n\nexport default ui;\n"]}
@@ -1,13 +0,0 @@
1
- /**
2
- * WorkOS service endpoint resolution. Env vars override defaults.
3
- *
4
- * WORKOS_API_URL is the single base host; the LLM gateway and CLI telemetry
5
- * endpoints are served under it and derived here. The trailing slash is
6
- * normalized at the source so every derived path stays clean.
7
- */
8
- export declare const getWorkOSApiUrl: () => string;
9
- export declare const getWorkOSDashboardUrl: () => string;
10
- /** LLM gateway endpoint, served under the WorkOS API host. */
11
- export declare const getLlmGatewayUrl: () => string;
12
- /** CLI telemetry endpoint, served under the WorkOS API host. */
13
- export declare const getTelemetryUrl: () => string;
@@ -1,14 +0,0 @@
1
- /**
2
- * WorkOS service endpoint resolution. Env vars override defaults.
3
- *
4
- * WORKOS_API_URL is the single base host; the LLM gateway and CLI telemetry
5
- * endpoints are served under it and derived here. The trailing slash is
6
- * normalized at the source so every derived path stays clean.
7
- */
8
- export const getWorkOSApiUrl = () => (process.env.WORKOS_API_URL || 'https://api.workos.com').replace(/\/$/, '');
9
- export const getWorkOSDashboardUrl = () => process.env.WORKOS_DASHBOARD_URL || 'https://dashboard.workos.com';
10
- /** LLM gateway endpoint, served under the WorkOS API host. */
11
- export const getLlmGatewayUrl = () => `${getWorkOSApiUrl()}/llm-gateway`;
12
- /** CLI telemetry endpoint, served under the WorkOS API host. */
13
- export const getTelemetryUrl = () => `${getWorkOSApiUrl()}/cli`;
14
- //# sourceMappingURL=urls.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"urls.js","sourceRoot":"","sources":["../../src/utils/urls.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,GAAW,EAAE,CAC1C,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,wBAAwB,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAE9E,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAW,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,8BAA8B,CAAC;AAEtH,8DAA8D;AAC9D,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAW,EAAE,CAAC,GAAG,eAAe,EAAE,cAAc,CAAC;AAEjF,gEAAgE;AAChE,MAAM,CAAC,MAAM,eAAe,GAAG,GAAW,EAAE,CAAC,GAAG,eAAe,EAAE,MAAM,CAAC","sourcesContent":["/**\n * WorkOS service endpoint resolution. Env vars override defaults.\n *\n * WORKOS_API_URL is the single base host; the LLM gateway and CLI telemetry\n * endpoints are served under it and derived here. The trailing slash is\n * normalized at the source so every derived path stays clean.\n */\n\nexport const getWorkOSApiUrl = (): string =>\n (process.env.WORKOS_API_URL || 'https://api.workos.com').replace(/\\/$/, '');\n\nexport const getWorkOSDashboardUrl = (): string => process.env.WORKOS_DASHBOARD_URL || 'https://dashboard.workos.com';\n\n/** LLM gateway endpoint, served under the WorkOS API host. */\nexport const getLlmGatewayUrl = (): string => `${getWorkOSApiUrl()}/llm-gateway`;\n\n/** CLI telemetry endpoint, served under the WorkOS API host. */\nexport const getTelemetryUrl = (): string => `${getWorkOSApiUrl()}/cli`;\n"]}
@@ -1 +0,0 @@
1
- export declare function isUnicodeSupported(): boolean;
@@ -1,21 +0,0 @@
1
- // Vendored from: https://github.com/sindresorhus/is-unicode-supported/blob/c80c691dde9e2fcfe3996810858c6672c8f35ad9/index.js#L3
2
- // MIT License
3
- // Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
4
- // Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
5
- // The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
7
- export function isUnicodeSupported() {
8
- if (process.platform !== 'win32') {
9
- return process.env.TERM !== 'linux'; // Linux console (kernel)
10
- }
11
- return (Boolean(process.env.CI) ||
12
- Boolean(process.env.WT_SESSION) || // Windows Terminal
13
- Boolean(process.env.TERMINUS_SUBLIME) || // Terminus (<0.2.27)
14
- process.env.ConEmuTask === '{cmd::Cmder}' || // ConEmu and cmder
15
- process.env.TERM_PROGRAM === 'Terminus-Sublime' ||
16
- process.env.TERM_PROGRAM === 'vscode' ||
17
- process.env.TERM === 'xterm-256color' ||
18
- process.env.TERM === 'alacritty' ||
19
- process.env.TERMINAL_EMULATOR === 'JetBrains-JediTerm');
20
- }
21
- //# sourceMappingURL=is-unicorn-supported.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"is-unicorn-supported.js","sourceRoot":"","sources":["../../../src/utils/vendor/is-unicorn-supported.ts"],"names":[],"mappings":"AAAA,gIAAgI;AAEhI,cAAc;AAEd,kFAAkF;AAElF,mbAAmb;AAEnb,iIAAiI;AAEjI,+cAA+c;AAE/c,MAAM,UAAU,kBAAkB;IAChC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,yBAAyB;IAChE,CAAC;IAED,OAAO,CACL,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,mBAAmB;QACtD,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,qBAAqB;QAC9D,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,cAAc,IAAI,mBAAmB;QAChE,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,kBAAkB;QAC/C,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,QAAQ;QACrC,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,gBAAgB;QACrC,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,WAAW;QAChC,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,oBAAoB,CACvD,CAAC;AACJ,CAAC","sourcesContent":["// Vendored from: https://github.com/sindresorhus/is-unicode-supported/blob/c80c691dde9e2fcfe3996810858c6672c8f35ad9/index.js#L3\n\n// MIT License\n\n// Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexport function isUnicodeSupported() {\n if (process.platform !== 'win32') {\n return process.env.TERM !== 'linux'; // Linux console (kernel)\n }\n\n return (\n Boolean(process.env.CI) ||\n Boolean(process.env.WT_SESSION) || // Windows Terminal\n Boolean(process.env.TERMINUS_SUBLIME) || // Terminus (<0.2.27)\n process.env.ConEmuTask === '{cmd::Cmder}' || // ConEmu and cmder\n process.env.TERM_PROGRAM === 'Terminus-Sublime' ||\n process.env.TERM_PROGRAM === 'vscode' ||\n process.env.TERM === 'xterm-256color' ||\n process.env.TERM === 'alacritty' ||\n process.env.TERMINAL_EMULATOR === 'JetBrains-JediTerm'\n );\n}\n"]}
@@ -1,4 +0,0 @@
1
- /**
2
- * @deprecated Import from 'src/integrations/vanilla-js/index.js' instead.
3
- */
4
- export { run as runVanillaJsInstallerAgent, config as VANILLA_JS_AGENT_CONFIG, } from '../integrations/vanilla-js/index.js';
@@ -1,5 +0,0 @@
1
- /**
2
- * @deprecated Import from 'src/integrations/vanilla-js/index.js' instead.
3
- */
4
- export { run as runVanillaJsInstallerAgent, config as VANILLA_JS_AGENT_CONFIG, } from '../integrations/vanilla-js/index.js';
5
- //# sourceMappingURL=vanilla-js-installer-agent.js.map