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,641 +0,0 @@
1
- import { relative } from 'node:path';
2
- import ui, { PromptUnavailableError } from '../../utils/ui.js';
3
- import chalk from 'chalk';
4
- import { getConfig } from '../settings.js';
5
- import { ProgressTracker } from '../progress-tracker.js';
6
- import { renderCompletionSummary, renderBrandMark } from '../../utils/summary-box.js';
7
- import { formatWorkOSCommand } from '../../utils/command-invocation.js';
8
- /**
9
- * CLI adapter that renders wizard events via ui.
10
- *
11
- * Subscribes to InstallerEventEmitter and translates events into
12
- * UI facade operations (logs, spinners, prompts).
13
- */
14
- export class CLIAdapter {
15
- emitter;
16
- sendEvent;
17
- debug;
18
- spinner = null;
19
- isStarted = false;
20
- progress = new ProgressTracker();
21
- // Scaffold (empty-dir) state, used to print a "next steps" hint on completion.
22
- scaffolded = false;
23
- scaffoldPackageManager = 'npm';
24
- // Store bound handlers for cleanup
25
- handlers = new Map();
26
- // Queue for logs while prompt is active (parallel state issue)
27
- isPromptActive = false;
28
- pendingLogs = [];
29
- // SIGINT handler for cleanup
30
- sigIntHandler = null;
31
- // Aborts in-flight/queued prompts when the run ends (cancellation, ctrl-c).
32
- // The installer's `preparing` state can queue a second prompt behind a live
33
- // one (git-dirty + protected-branch); if the first is cancelled, this signal
34
- // stops the queued sibling from opening a now-moot question.
35
- promptAbort = null;
36
- // Last phase message shown on the agent spinner, restored after logging above it.
37
- lastAgentMessage = 'Running AI agent...';
38
- // Last file path rendered as a step line, to dedupe consecutive same-path ops.
39
- lastFileOp = null;
40
- constructor(config) {
41
- this.emitter = config.emitter;
42
- this.sendEvent = config.sendEvent;
43
- this.debug = config.debug ?? false;
44
- }
45
- /**
46
- * Queue a log call if a prompt is active, otherwise execute immediately.
47
- */
48
- queueableLog(logFn) {
49
- if (this.isPromptActive) {
50
- this.pendingLogs.push(logFn);
51
- }
52
- else {
53
- logFn();
54
- }
55
- }
56
- /**
57
- * Flush any queued logs after prompt completes.
58
- */
59
- flushPendingLogs() {
60
- const logs = this.pendingLogs.splice(0);
61
- logs.forEach((fn) => fn());
62
- }
63
- /**
64
- * Run a prompt with the log queue engaged: mark a prompt active so async log
65
- * events (detection:complete, branch:created, …) buffer instead of scribbling
66
- * over the question, then release and flush once it resolves. Wraps every
67
- * prompt handler so the active/flush lifecycle lives in one place.
68
- */
69
- async withPromptActive(run) {
70
- this.isPromptActive = true;
71
- try {
72
- return await run();
73
- }
74
- finally {
75
- this.isPromptActive = false;
76
- this.flushPendingLogs();
77
- }
78
- }
79
- async start() {
80
- if (this.isStarted)
81
- return;
82
- this.isStarted = true;
83
- this.promptAbort = new AbortController();
84
- // Show intro
85
- const config = getConfig();
86
- if (config.branding.showAsciiArt) {
87
- // Compact brand mark (the lock + wordmark) instead of the full block banner.
88
- console.log('');
89
- console.log(renderBrandMark('AuthKit installer'));
90
- console.log('');
91
- }
92
- else {
93
- ui.intro('WorkOS', 'AuthKit installer');
94
- }
95
- // Handle Ctrl+C gracefully
96
- const handleSigInt = () => {
97
- this.promptAbort?.abort();
98
- if (this.spinner) {
99
- this.spinner.stop('Cancelled');
100
- this.spinner = null;
101
- }
102
- ui.log.warn('Installer cancelled');
103
- ui.outro('Your project was not modified');
104
- process.exit(0);
105
- };
106
- process.on('SIGINT', handleSigInt);
107
- this.sigIntHandler = handleSigInt;
108
- // Subscribe to state events for progress tracking
109
- this.subscribe('state:enter', this.handleStateEnter);
110
- this.subscribe('state:exit', this.handleStateExit);
111
- // Subscribe to events that require UI rendering
112
- this.subscribe('auth:success', this.handleAuthSuccess);
113
- this.subscribe('auth:failure', this.handleAuthFailure);
114
- this.subscribe('detection:complete', this.handleDetectionComplete);
115
- this.subscribe('detection:none', this.handleDetectionNone);
116
- this.subscribe('git:dirty', this.handleGitDirty);
117
- this.subscribe('credentials:found', this.handleCredentialsFound);
118
- this.subscribe('credentials:request', this.handleCredentialsRequest);
119
- this.subscribe('credentials:env:prompt', this.handleEnvScanPrompt);
120
- this.subscribe('device:started', this.handleDeviceStarted);
121
- this.subscribe('device:success', this.handleDeviceSuccess);
122
- this.subscribe('device:error', this.handleDeviceError);
123
- this.subscribe('device:timeout', this.handleDeviceTimeout);
124
- this.subscribe('staging:fetching', this.handleStagingFetching);
125
- this.subscribe('staging:success', this.handleStagingSuccess);
126
- this.subscribe('staging:error', this.handleStagingError);
127
- this.subscribe('credentials:env:found', this.handleEnvCredentialsFound);
128
- this.subscribe('config:complete', this.handleConfigComplete);
129
- this.subscribe('agent:start', this.handleAgentStart);
130
- this.subscribe('agent:progress', this.handleAgentProgress);
131
- // Persistent, append-only log of file operations + tool calls above the spinner.
132
- this.subscribe('file:write', this.handleFileWrite);
133
- this.subscribe('file:edit', this.handleFileEdit);
134
- this.subscribe('agent:tool', this.handleAgentTool);
135
- this.subscribe('validation:start', this.handleValidationStart);
136
- this.subscribe('validation:issues', this.handleValidationIssues);
137
- this.subscribe('validation:complete', this.handleValidationComplete);
138
- this.subscribe('complete', this.handleComplete);
139
- this.subscribe('error', this.handleError);
140
- // Scaffold events (empty-directory app scaffolding)
141
- this.subscribe('scaffold:prompt', this.handleScaffoldPrompt);
142
- this.subscribe('scaffold:start', this.handleScaffoldStart);
143
- this.subscribe('scaffold:progress', this.handleScaffoldProgress);
144
- this.subscribe('scaffold:complete', this.handleScaffoldComplete);
145
- this.subscribe('scaffold:failed', this.handleScaffoldFailed);
146
- // Branch check events
147
- this.subscribe('branch:prompt', this.handleBranchPrompt);
148
- this.subscribe('branch:created', this.handleBranchCreated);
149
- // Post-install events
150
- this.subscribe('postinstall:changes', this.handlePostInstallChanges);
151
- this.subscribe('postinstall:commit:prompt', this.handleCommitPrompt);
152
- this.subscribe('postinstall:commit:generating', this.handleCommitGenerating);
153
- this.subscribe('postinstall:commit:success', this.handleCommitSuccess);
154
- this.subscribe('postinstall:commit:failed', this.handleCommitFailed);
155
- this.subscribe('postinstall:pr:prompt', this.handlePrPrompt);
156
- this.subscribe('postinstall:pr:generating', this.handlePrGenerating);
157
- this.subscribe('postinstall:pr:pushing', this.handlePrPushing);
158
- this.subscribe('postinstall:pr:success', this.handlePrSuccess);
159
- this.subscribe('postinstall:pr:failed', this.handlePrFailed);
160
- this.subscribe('postinstall:push:failed', this.handlePushFailed);
161
- this.subscribe('postinstall:manual', this.handleManualInstructions);
162
- }
163
- async stop() {
164
- if (!this.isStarted)
165
- return;
166
- // Abort any in-flight/queued prompt so a cancelled run can't leave a
167
- // now-moot sibling question open (e.g. the branch prompt after git-cancel).
168
- this.promptAbort?.abort();
169
- this.promptAbort = null;
170
- // Remove SIGINT handler
171
- if (this.sigIntHandler) {
172
- process.off('SIGINT', this.sigIntHandler);
173
- this.sigIntHandler = null;
174
- }
175
- // Unsubscribe from all events
176
- for (const [event, handler] of this.handlers) {
177
- this.emitter.off(event, handler);
178
- }
179
- this.handlers.clear();
180
- // Stop any active spinner
181
- this.spinner?.stop();
182
- this.spinner = null;
183
- this.isStarted = false;
184
- }
185
- stopSpinner(message, code = 0) {
186
- if (this.spinner) {
187
- this.spinner.stop(message, code);
188
- this.spinner = null;
189
- }
190
- }
191
- /** Debug logging - only outputs when debug mode is enabled */
192
- debugLog = (message) => {
193
- if (this.debug) {
194
- console.log(chalk.dim(`[debug] ${message}`));
195
- }
196
- };
197
- /**
198
- * Helper to subscribe and track handlers for cleanup.
199
- */
200
- subscribe(event, handler) {
201
- const boundHandler = handler.bind(this);
202
- // Handlers are invoked fire-and-forget by a plain EventEmitter, so an async
203
- // rejection would become an unhandledRejection (silent crash). Route a
204
- // PromptUnavailableError (prompt attempted where the user can't answer) to a
205
- // clean fail-fast; re-surface anything else unchanged so real bugs still crash.
206
- const safeHandler = (payload) => {
207
- try {
208
- const result = boundHandler(payload);
209
- if (result instanceof Promise)
210
- result.catch((err) => this.onHandlerError(err));
211
- }
212
- catch (err) {
213
- this.onHandlerError(err);
214
- }
215
- };
216
- this.handlers.set(event, safeHandler);
217
- this.emitter.on(event, safeHandler);
218
- }
219
- /**
220
- * Terminal handler failure. A PromptUnavailableError means we reached a prompt
221
- * in a context that can't answer it (non-TTY stdin) — the CLIAdapter only runs
222
- * in human, non-JSON output, so this is always a real human at a broken input,
223
- * never a JSON stream. Surface a clear message and exit before anything is
224
- * written, rather than hanging or crashing. Re-throw anything else.
225
- */
226
- onHandlerError = (error) => {
227
- if (error instanceof PromptUnavailableError) {
228
- this.spinner?.clear();
229
- this.spinner = null;
230
- ui.log.error(error.message);
231
- ui.log.hint('Re-run in an interactive terminal, or pass the flags that answer these prompts.');
232
- // Exit 1 (general error), matching the direct-command classification of
233
- // this same error in bin.ts. NOT 4 — that's "auth required" (gh
234
- // convention), which would send scripts into an auth-retry loop.
235
- process.exit(1);
236
- }
237
- throw error;
238
- };
239
- // ===== Event Handlers =====
240
- handleStateEnter = ({ state }) => {
241
- this.progress.enterPhase(state);
242
- };
243
- handleStateExit = ({ state }) => {
244
- this.progress.exitPhase(state);
245
- };
246
- handleAuthSuccess = () => {
247
- ui.log.success('Authenticated');
248
- };
249
- handleAuthFailure = ({ message }) => {
250
- ui.log.error(`Auth failed: ${message}`);
251
- ui.log.info('Visit https://dashboard.workos.com to verify your account');
252
- };
253
- handleDetectionComplete = ({ integration }) => {
254
- this.queueableLog(() => ui.log.success(`Detected ${chalk.bold(integration)}`));
255
- };
256
- handleDetectionNone = () => {
257
- this.queueableLog(() => ui.log.warn('Could not detect framework automatically'));
258
- };
259
- handleCredentialsFound = () => {
260
- ui.log.success('Found existing WorkOS credentials in .env.local');
261
- };
262
- handleEnvScanPrompt = async ({ files }) => {
263
- const fileList = files.length === 1 ? files[0] : files.slice(0, 2).join(', ');
264
- const confirmed = await this.withPromptActive(() => ui.confirm({
265
- message: `Found ${fileList}. Check for existing WorkOS credentials?`,
266
- initialValue: true,
267
- }));
268
- this.sendEvent({
269
- type: ui.isCancel(confirmed) || !confirmed ? 'ENV_SCAN_DECLINED' : 'ENV_SCAN_APPROVED',
270
- });
271
- };
272
- handleDeviceStarted = ({ verificationUri, userCode }) => {
273
- ui.log.info(`\nOpen this URL in your browser:\n`);
274
- console.log(` ${chalk.cyan(verificationUri)}`);
275
- console.log(`\nEnter code: ${chalk.bold(userCode)}\n`);
276
- this.spinner = ui.spinner();
277
- this.spinner.start('Waiting for authentication...');
278
- };
279
- handleDeviceSuccess = () => {
280
- // Spinner will be stopped by handleStagingFetching
281
- };
282
- handleStagingFetching = () => {
283
- if (this.spinner) {
284
- this.spinner.stop('Authenticated');
285
- }
286
- this.spinner = ui.spinner();
287
- this.spinner.start('Fetching your WorkOS credentials...');
288
- };
289
- handleStagingSuccess = ({ source }) => {
290
- if (source === 'device') {
291
- this.stopSpinner('Environment ready');
292
- ui.log.success('Set up a WorkOS environment for this install');
293
- }
294
- else if (source === 'stored') {
295
- this.stopSpinner('Using active environment');
296
- ui.log.success('Using your active WorkOS environment');
297
- }
298
- else {
299
- this.stopSpinner('Environment ready');
300
- ui.log.success('Using your WorkOS environment');
301
- }
302
- };
303
- handleEnvCredentialsFound = ({ sourcePath }) => {
304
- ui.log.success(`Found existing WorkOS credentials in ${sourcePath}`);
305
- };
306
- // Automatic auth / credential fetch can fail and fall back to manual entry.
307
- // These finalize the spinner with a failure glyph so it isn't left spinning
308
- // (orphaned) over the manual-credentials prompt that follows.
309
- handleDeviceError = ({ message }) => {
310
- this.stopSpinner('Automatic sign-in failed', 1);
311
- if (this.debug)
312
- this.debugLog(`[device:error] ${message}`);
313
- };
314
- handleDeviceTimeout = () => {
315
- this.stopSpinner('Sign-in timed out', 1);
316
- };
317
- handleStagingError = ({ message }) => {
318
- this.stopSpinner('Could not fetch WorkOS credentials', 1);
319
- if (this.debug)
320
- this.debugLog(`[staging:error] ${message}`);
321
- };
322
- handleGitDirty = async ({ files }) => {
323
- ui.log.warn('You have uncommitted or untracked files:');
324
- files.slice(0, 5).forEach((f) => ui.log.info(chalk.dim(` ${f}`)));
325
- if (files.length > 5) {
326
- ui.log.info(chalk.dim(` ... and ${files.length - 5} more`));
327
- }
328
- const confirmed = await this.withPromptActive(() => ui.confirm({
329
- message: 'Continue anyway?',
330
- initialValue: false,
331
- signal: this.promptAbort?.signal,
332
- }));
333
- this.sendEvent({
334
- type: ui.isCancel(confirmed) || !confirmed ? 'GIT_CANCELLED' : 'GIT_CONFIRMED',
335
- });
336
- };
337
- handleCredentialsRequest = async ({ requiresApiKey, }) => {
338
- // Guaranteed chokepoint: promptingManual is the fallback for any auth path,
339
- // so clear any still-running spinner before the prompt opens (defense in
340
- // depth on top of the device/staging error handlers and withPrompt's pause).
341
- this.spinner?.clear();
342
- this.spinner = null;
343
- ui.log.step(`Get your credentials from ${chalk.cyan('https://dashboard.workos.com')}`);
344
- const clientId = await ui.text({
345
- message: 'Enter your WorkOS Client ID:',
346
- placeholder: 'client_...',
347
- validate: (value) => {
348
- if (!value || value.trim().length === 0) {
349
- return 'Client ID is required';
350
- }
351
- if (!value.startsWith('client_')) {
352
- return 'Client ID should start with "client_"';
353
- }
354
- return undefined;
355
- },
356
- });
357
- if (ui.isCancel(clientId)) {
358
- this.sendEvent({ type: 'CANCEL' });
359
- return;
360
- }
361
- let apiKey = '';
362
- if (requiresApiKey) {
363
- ui.log.info(chalk.dim('ℹ️ Your API key will be hidden for security and saved to .env.local'));
364
- const apiKeyResult = await ui.password({
365
- message: 'Enter your WorkOS API Key:',
366
- validate: (value) => {
367
- if (!value || value.trim().length === 0) {
368
- return 'API Key is required';
369
- }
370
- if (!value.startsWith('sk_')) {
371
- return 'API Key should start with "sk_"';
372
- }
373
- return undefined;
374
- },
375
- });
376
- if (ui.isCancel(apiKeyResult)) {
377
- this.sendEvent({ type: 'CANCEL' });
378
- return;
379
- }
380
- apiKey = apiKeyResult;
381
- }
382
- else {
383
- ui.log.info(chalk.dim('ℹ️ Client-only SDK - API key not required'));
384
- }
385
- this.sendEvent({
386
- type: 'CREDENTIALS_SUBMITTED',
387
- apiKey,
388
- clientId: clientId,
389
- });
390
- };
391
- handleConfigComplete = () => {
392
- ui.log.success('Environment configured');
393
- };
394
- handleAgentStart = () => {
395
- this.spinner = ui.spinner();
396
- this.spinner.start(this.lastAgentMessage);
397
- // No setInterval: ui animates its own frames, and the old 2s reset
398
- // clobbered the current phase text set by handleAgentProgress.
399
- };
400
- handleAgentProgress = ({ step, detail }) => {
401
- const message = detail ? `${step}: ${detail}` : step;
402
- this.lastAgentMessage = message;
403
- this.spinner?.message(message);
404
- };
405
- /**
406
- * Render a persistent line above the running spinner: stop the spinner to
407
- * finalize its line, emit the log, then restart it on the last phase message.
408
- * Mirrors the existing stop→log and stop→start-new-spinner precedents.
409
- */
410
- logAboveSpinner(render) {
411
- const wasRunning = this.spinner !== null;
412
- this.spinner?.stop();
413
- this.spinner = null;
414
- render();
415
- if (wasRunning) {
416
- this.spinner = ui.spinner();
417
- this.spinner.start(this.lastAgentMessage);
418
- }
419
- }
420
- logFileOp(verb, path) {
421
- if (path === this.lastFileOp)
422
- return; // dedupe consecutive same-path ops
423
- this.lastFileOp = path;
424
- const rel = relative(process.cwd(), path);
425
- this.logAboveSpinner(() => ui.log.step(`${verb} ${chalk.dim(rel)}`));
426
- }
427
- handleFileWrite = ({ path }) => {
428
- this.logFileOp('Creating', path);
429
- };
430
- handleFileEdit = ({ path }) => {
431
- this.logFileOp('Editing', path);
432
- };
433
- handleAgentTool = ({ detail }) => {
434
- const cmd = detail.length > 80 ? `${detail.slice(0, 77)}…` : detail;
435
- this.logAboveSpinner(() => ui.log.step(`Running ${chalk.dim(cmd)}`));
436
- };
437
- handleValidationStart = () => {
438
- this.stopSpinner('Agent completed');
439
- };
440
- handleValidationIssues = ({ issues }) => {
441
- for (const issue of issues) {
442
- if (issue.severity === 'error') {
443
- ui.log.error(issue.message);
444
- }
445
- else {
446
- ui.log.warn(issue.message);
447
- }
448
- if (issue.hint) {
449
- ui.log.info(`Hint: ${issue.hint}`);
450
- }
451
- }
452
- };
453
- handleValidationComplete = ({ passed, issueCount }) => {
454
- if (passed) {
455
- ui.log.success('Validation passed');
456
- }
457
- else {
458
- ui.log.warn(`Validation found ${issueCount} issue(s)`);
459
- }
460
- };
461
- handleComplete = ({ success, summary, completion }) => {
462
- // Fires synchronously during the cancelled-state transition (emitCancelled),
463
- // BEFORE a queued sibling prompt's microtask runs — so aborting here makes a
464
- // cancelled run's still-queued prompt (e.g. the branch select after a
465
- // git-dirty "No") open with an already-aborted signal and resolve to CANCEL
466
- // without ever rendering a now-moot question.
467
- this.promptAbort?.abort();
468
- this.stopSpinner(success ? 'Done' : 'Failed');
469
- console.log('');
470
- console.log(renderCompletionSummary(success, summary, completion));
471
- console.log('');
472
- // When we scaffolded a fresh app, the install ran in the current dir, so
473
- // point the user straight at the dev server.
474
- if (success && this.scaffolded) {
475
- ui.log.info(`Start your app: ${chalk.cyan(`${this.scaffoldPackageManager} run dev`)}`);
476
- }
477
- };
478
- handleError = ({ message, stack }) => {
479
- this.stopSpinner('Failed', 1);
480
- // Rewrite raw API/SDK errors into user-friendly messages with a next step.
481
- // Matching is word-boundary / code-based so 'author' doesn't read as 'auth'
482
- // and 'Module not found' doesn't read as a missing-directory error.
483
- const isServiceError = /\b50[0-9]\b/.test(message) || /server_error|internal_error|overloaded|service.*unavailable/i.test(message);
484
- const isRateLimit = /\b429\b/.test(message) || /\brate.?limit/i.test(message);
485
- const isNetworkError = /ECONNREFUSED|ETIMEDOUT|ENOTFOUND|fetch failed/i.test(message);
486
- const isProcessExit = /process exited with code/i.test(message);
487
- const isAuthError = /\b(401|403|unauthorized|forbidden|authentication|authorization)\b/i.test(message);
488
- const isMissingPath = /\bENOENT\b/.test(message);
489
- if (isServiceError) {
490
- ui.log.error('The AI service is temporarily unavailable.');
491
- ui.log.info('This is usually resolved within a few minutes. Please try again shortly.');
492
- }
493
- else if (isRateLimit) {
494
- ui.log.error('The AI service is currently rate-limited.');
495
- ui.log.info('Please wait a minute and try again.');
496
- }
497
- else if (isNetworkError) {
498
- ui.log.error('Could not connect to the AI service.');
499
- ui.log.info('Check your internet connection and try again.');
500
- }
501
- else if (isProcessExit) {
502
- ui.log.error('The AI agent process exited unexpectedly.');
503
- ui.log.info('Try running again. If this persists, run with --debug for details.');
504
- }
505
- else if (isAuthError) {
506
- ui.log.error('Authentication failed.');
507
- ui.log.info(`Try running: ${formatWorkOSCommand('auth logout')} && ${formatWorkOSCommand('install')}`);
508
- }
509
- else if (isMissingPath) {
510
- ui.log.error(message);
511
- ui.log.info('Make sure you are running this in your project directory.');
512
- }
513
- else {
514
- // Unknown error: still give the user somewhere to go next.
515
- ui.log.error(message);
516
- ui.log.info(`Re-run with ${chalk.cyan('--debug')} for details, or report it at ${chalk.cyan('https://github.com/workos/cli/issues')}`);
517
- }
518
- if (stack && this.debug) {
519
- this.debugLog(stack);
520
- }
521
- };
522
- // ===== Scaffold Event Handlers =====
523
- handleScaffoldPrompt = async ({ packageManager }) => {
524
- this.scaffoldPackageManager = packageManager;
525
- const confirmed = await this.withPromptActive(() => ui.confirm({
526
- message: 'This directory is empty. Scaffold a new Next.js app with AuthKit here?',
527
- initialValue: true,
528
- }));
529
- this.sendEvent({
530
- type: ui.isCancel(confirmed) || !confirmed ? 'SCAFFOLD_CANCELLED' : 'SCAFFOLD_CONFIRMED',
531
- });
532
- };
533
- handleScaffoldStart = ({ packageManager }) => {
534
- this.scaffoldPackageManager = packageManager;
535
- this.spinner = ui.spinner();
536
- this.spinner.start(`Scaffolding a new Next.js app with ${packageManager} (this can take a minute)...`);
537
- };
538
- // create-next-app output is verbose; surface it only under --debug and keep
539
- // the spinner message stable so the CLI stays readable.
540
- handleScaffoldProgress = ({ text }) => {
541
- const line = text.trim();
542
- if (line) {
543
- this.debugLog(line);
544
- }
545
- };
546
- handleScaffoldComplete = () => {
547
- this.scaffolded = true;
548
- this.stopSpinner('Next.js app created');
549
- };
550
- handleScaffoldFailed = ({ error }) => {
551
- this.stopSpinner('Scaffold failed');
552
- ui.log.error(`Could not scaffold the app: ${error}`);
553
- };
554
- handleBranchPrompt = async ({ branch }) => {
555
- const choice = await this.withPromptActive(() => ui.select({
556
- message: `You are on ${chalk.bold(branch)}. Create a feature branch?`,
557
- options: [
558
- { value: 'create', label: 'Create feat/add-workos-authkit' },
559
- { value: 'continue', label: 'Continue on current branch' },
560
- { value: 'cancel', label: 'Cancel' },
561
- ],
562
- signal: this.promptAbort?.signal,
563
- }));
564
- if (ui.isCancel(choice) || choice === 'cancel') {
565
- this.sendEvent({ type: 'BRANCH_CANCEL' });
566
- }
567
- else if (choice === 'create') {
568
- this.sendEvent({ type: 'BRANCH_CREATE' });
569
- }
570
- else {
571
- this.sendEvent({ type: 'BRANCH_CONTINUE' });
572
- }
573
- };
574
- handleBranchCreated = ({ branch }) => {
575
- this.queueableLog(() => ui.log.success(`Created branch ${chalk.bold(branch)}`));
576
- };
577
- // ===== Post-install Event Handlers =====
578
- handlePostInstallChanges = ({ files }) => {
579
- this.debugLog(`Post-install: ${files.length} changed files detected`);
580
- };
581
- handleCommitPrompt = async () => {
582
- const confirmed = await this.withPromptActive(() => ui.confirm({
583
- message: 'Commit the changes?',
584
- initialValue: true,
585
- }));
586
- this.sendEvent({
587
- type: ui.isCancel(confirmed) || !confirmed ? 'COMMIT_DECLINED' : 'COMMIT_APPROVED',
588
- });
589
- };
590
- handleCommitGenerating = () => {
591
- this.spinner = ui.spinner();
592
- this.spinner.start('Generating commit message...');
593
- };
594
- handleCommitSuccess = ({ message }) => {
595
- this.stopSpinner('Committed');
596
- ui.log.success(`Committed: ${chalk.dim(message)}`);
597
- };
598
- handleCommitFailed = ({ error }) => {
599
- this.stopSpinner('Commit failed');
600
- ui.log.error(`Commit failed: ${error}`);
601
- };
602
- handlePrPrompt = async () => {
603
- const confirmed = await this.withPromptActive(() => ui.confirm({
604
- message: 'Create a pull request?',
605
- initialValue: true,
606
- }));
607
- this.sendEvent({
608
- type: ui.isCancel(confirmed) || !confirmed ? 'PR_DECLINED' : 'PR_APPROVED',
609
- });
610
- };
611
- handlePrGenerating = () => {
612
- this.spinner = ui.spinner();
613
- this.spinner.start('Generating PR description...');
614
- };
615
- handlePrPushing = () => {
616
- if (this.spinner) {
617
- this.spinner.message('Pushing to remote...');
618
- }
619
- else {
620
- this.spinner = ui.spinner();
621
- this.spinner.start('Pushing to remote...');
622
- }
623
- };
624
- handlePrSuccess = ({ url }) => {
625
- this.stopSpinner('PR created');
626
- ui.log.success(`Pull request created: ${chalk.cyan(url)}`);
627
- };
628
- handlePrFailed = ({ error }) => {
629
- this.stopSpinner('PR creation failed');
630
- ui.log.error(`PR creation failed: ${error}`);
631
- };
632
- handlePushFailed = ({ error }) => {
633
- this.stopSpinner('Push failed');
634
- ui.log.error(`Push failed: ${error}`);
635
- };
636
- handleManualInstructions = ({ instructions }) => {
637
- ui.log.info('GitHub CLI not found. Manual steps:');
638
- console.log(chalk.dim(instructions));
639
- };
640
- }
641
- //# sourceMappingURL=cli-adapter.js.map