workos 0.18.0 → 0.20.1

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 (835) hide show
  1. package/README.md +4 -783
  2. package/bin/workos.js +44 -0
  3. package/package.json +18 -107
  4. package/LICENSE +0 -47
  5. package/dist/bin.d.ts +0 -2
  6. package/dist/bin.js +0 -1711
  7. package/dist/bin.js.map +0 -1
  8. package/dist/check-coverage.ts +0 -237
  9. package/dist/cli.config.d.ts +0 -88
  10. package/dist/cli.config.js +0 -110
  11. package/dist/cli.config.js.map +0 -1
  12. package/dist/commands/api/catalog.d.ts +0 -23
  13. package/dist/commands/api/catalog.js +0 -97
  14. package/dist/commands/api/catalog.js.map +0 -1
  15. package/dist/commands/api/format.d.ts +0 -5
  16. package/dist/commands/api/format.js +0 -46
  17. package/dist/commands/api/format.js.map +0 -1
  18. package/dist/commands/api/index.d.ts +0 -15
  19. package/dist/commands/api/index.js +0 -205
  20. package/dist/commands/api/index.js.map +0 -1
  21. package/dist/commands/api/interactive.d.ts +0 -3
  22. package/dist/commands/api/interactive.js +0 -133
  23. package/dist/commands/api/interactive.js.map +0 -1
  24. package/dist/commands/api/request.d.ts +0 -14
  25. package/dist/commands/api/request.js +0 -38
  26. package/dist/commands/api/request.js.map +0 -1
  27. package/dist/commands/api-key-mgmt.d.ts +0 -16
  28. package/dist/commands/api-key-mgmt.js +0 -96
  29. package/dist/commands/api-key-mgmt.js.map +0 -1
  30. package/dist/commands/audit-log.d.ts +0 -26
  31. package/dist/commands/audit-log.js +0 -155
  32. package/dist/commands/audit-log.js.map +0 -1
  33. package/dist/commands/auth-status.d.ts +0 -1
  34. package/dist/commands/auth-status.js +0 -57
  35. package/dist/commands/auth-status.js.map +0 -1
  36. package/dist/commands/claim.d.ts +0 -11
  37. package/dist/commands/claim.js +0 -131
  38. package/dist/commands/claim.js.map +0 -1
  39. package/dist/commands/config.d.ts +0 -3
  40. package/dist/commands/config.js +0 -54
  41. package/dist/commands/config.js.map +0 -1
  42. package/dist/commands/connection.d.ts +0 -13
  43. package/dist/commands/connection.js +0 -96
  44. package/dist/commands/connection.js.map +0 -1
  45. package/dist/commands/debug-sso.d.ts +0 -1
  46. package/dist/commands/debug-sso.js +0 -78
  47. package/dist/commands/debug-sso.js.map +0 -1
  48. package/dist/commands/debug-sync.d.ts +0 -1
  49. package/dist/commands/debug-sync.js +0 -102
  50. package/dist/commands/debug-sync.js.map +0 -1
  51. package/dist/commands/debug.d.ts +0 -28
  52. package/dist/commands/debug.js +0 -406
  53. package/dist/commands/debug.js.map +0 -1
  54. package/dist/commands/dev.d.ts +0 -23
  55. package/dist/commands/dev.js +0 -145
  56. package/dist/commands/dev.js.map +0 -1
  57. package/dist/commands/directory.d.ts +0 -27
  58. package/dist/commands/directory.js +0 -176
  59. package/dist/commands/directory.js.map +0 -1
  60. package/dist/commands/doctor.d.ts +0 -12
  61. package/dist/commands/doctor.js +0 -41
  62. package/dist/commands/doctor.js.map +0 -1
  63. package/dist/commands/emulate.d.ts +0 -6
  64. package/dist/commands/emulate.js +0 -68
  65. package/dist/commands/emulate.js.map +0 -1
  66. package/dist/commands/env.d.ts +0 -9
  67. package/dist/commands/env.js +0 -227
  68. package/dist/commands/env.js.map +0 -1
  69. package/dist/commands/event.d.ts +0 -9
  70. package/dist/commands/event.js +0 -43
  71. package/dist/commands/event.js.map +0 -1
  72. package/dist/commands/feature-flag.d.ts +0 -12
  73. package/dist/commands/feature-flag.js +0 -96
  74. package/dist/commands/feature-flag.js.map +0 -1
  75. package/dist/commands/install-skill.d.ts +0 -85
  76. package/dist/commands/install-skill.js +0 -332
  77. package/dist/commands/install-skill.js.map +0 -1
  78. package/dist/commands/install.d.ts +0 -6
  79. package/dist/commands/install.js +0 -56
  80. package/dist/commands/install.js.map +0 -1
  81. package/dist/commands/invitation.d.ts +0 -19
  82. package/dist/commands/invitation.js +0 -94
  83. package/dist/commands/invitation.js.map +0 -1
  84. package/dist/commands/list-skills.d.ts +0 -4
  85. package/dist/commands/list-skills.js +0 -52
  86. package/dist/commands/list-skills.js.map +0 -1
  87. package/dist/commands/login.d.ts +0 -22
  88. package/dist/commands/login.js +0 -184
  89. package/dist/commands/login.js.map +0 -1
  90. package/dist/commands/logout.d.ts +0 -1
  91. package/dist/commands/logout.js +0 -17
  92. package/dist/commands/logout.js.map +0 -1
  93. package/dist/commands/mcp.d.ts +0 -14
  94. package/dist/commands/mcp.js +0 -108
  95. package/dist/commands/mcp.js.map +0 -1
  96. package/dist/commands/membership.d.ts +0 -20
  97. package/dist/commands/membership.js +0 -129
  98. package/dist/commands/membership.js.map +0 -1
  99. package/dist/commands/migrations.d.ts +0 -2
  100. package/dist/commands/migrations.js +0 -49
  101. package/dist/commands/migrations.js.map +0 -1
  102. package/dist/commands/onboard-user.d.ts +0 -7
  103. package/dist/commands/onboard-user.js +0 -61
  104. package/dist/commands/onboard-user.js.map +0 -1
  105. package/dist/commands/org-domain.d.ts +0 -4
  106. package/dist/commands/org-domain.js +0 -45
  107. package/dist/commands/org-domain.js.map +0 -1
  108. package/dist/commands/organization.d.ts +0 -14
  109. package/dist/commands/organization.js +0 -103
  110. package/dist/commands/organization.js.map +0 -1
  111. package/dist/commands/permission.d.ts +0 -20
  112. package/dist/commands/permission.js +0 -93
  113. package/dist/commands/permission.js.map +0 -1
  114. package/dist/commands/portal.d.ts +0 -7
  115. package/dist/commands/portal.js +0 -26
  116. package/dist/commands/portal.js.map +0 -1
  117. package/dist/commands/role.d.ts +0 -17
  118. package/dist/commands/role.js +0 -122
  119. package/dist/commands/role.js.map +0 -1
  120. package/dist/commands/seed.d.ts +0 -6
  121. package/dist/commands/seed.js +0 -297
  122. package/dist/commands/seed.js.map +0 -1
  123. package/dist/commands/session.d.ts +0 -8
  124. package/dist/commands/session.js +0 -63
  125. package/dist/commands/session.js.map +0 -1
  126. package/dist/commands/setup-org.d.ts +0 -6
  127. package/dist/commands/setup-org.js +0 -99
  128. package/dist/commands/setup-org.js.map +0 -1
  129. package/dist/commands/telemetry.d.ts +0 -3
  130. package/dist/commands/telemetry.js +0 -88
  131. package/dist/commands/telemetry.js.map +0 -1
  132. package/dist/commands/uninstall-skill.d.ts +0 -11
  133. package/dist/commands/uninstall-skill.js +0 -117
  134. package/dist/commands/uninstall-skill.js.map +0 -1
  135. package/dist/commands/user.d.ts +0 -19
  136. package/dist/commands/user.js +0 -92
  137. package/dist/commands/user.js.map +0 -1
  138. package/dist/commands/vault-run.d.ts +0 -13
  139. package/dist/commands/vault-run.js +0 -194
  140. package/dist/commands/vault-run.js.map +0 -1
  141. package/dist/commands/vault.d.ts +0 -25
  142. package/dist/commands/vault.js +0 -153
  143. package/dist/commands/vault.js.map +0 -1
  144. package/dist/commands/webhook.d.ts +0 -3
  145. package/dist/commands/webhook.js +0 -92
  146. package/dist/commands/webhook.js.map +0 -1
  147. package/dist/craft-pre-release.sh +0 -10
  148. package/dist/dashboard/components/AnimatedLogo.d.ts +0 -8
  149. package/dist/dashboard/components/AnimatedLogo.js +0 -16
  150. package/dist/dashboard/components/AnimatedLogo.js.map +0 -1
  151. package/dist/dashboard/components/CompletionView.d.ts +0 -13
  152. package/dist/dashboard/components/CompletionView.js +0 -25
  153. package/dist/dashboard/components/CompletionView.js.map +0 -1
  154. package/dist/dashboard/components/ConfirmPrompt.d.ts +0 -9
  155. package/dist/dashboard/components/ConfirmPrompt.js +0 -25
  156. package/dist/dashboard/components/ConfirmPrompt.js.map +0 -1
  157. package/dist/dashboard/components/CredentialsForm.d.ts +0 -10
  158. package/dist/dashboard/components/CredentialsForm.js +0 -47
  159. package/dist/dashboard/components/CredentialsForm.js.map +0 -1
  160. package/dist/dashboard/components/Dashboard.d.ts +0 -3
  161. package/dist/dashboard/components/Dashboard.js +0 -100
  162. package/dist/dashboard/components/Dashboard.js.map +0 -1
  163. package/dist/dashboard/components/DashboardLayout.d.ts +0 -24
  164. package/dist/dashboard/components/DashboardLayout.js +0 -25
  165. package/dist/dashboard/components/DashboardLayout.js.map +0 -1
  166. package/dist/dashboard/components/DiffPanel.d.ts +0 -9
  167. package/dist/dashboard/components/DiffPanel.js +0 -136
  168. package/dist/dashboard/components/DiffPanel.js.map +0 -1
  169. package/dist/dashboard/components/InlinePrompt.d.ts +0 -8
  170. package/dist/dashboard/components/InlinePrompt.js +0 -19
  171. package/dist/dashboard/components/InlinePrompt.js.map +0 -1
  172. package/dist/dashboard/components/OutputPanel.d.ts +0 -10
  173. package/dist/dashboard/components/OutputPanel.js +0 -100
  174. package/dist/dashboard/components/OutputPanel.js.map +0 -1
  175. package/dist/dashboard/components/Panel.d.ts +0 -12
  176. package/dist/dashboard/components/Panel.js +0 -6
  177. package/dist/dashboard/components/Panel.js.map +0 -1
  178. package/dist/dashboard/components/TextInput.d.ts +0 -13
  179. package/dist/dashboard/components/TextInput.js +0 -57
  180. package/dist/dashboard/components/TextInput.js.map +0 -1
  181. package/dist/dashboard/components/WelcomeArt.d.ts +0 -2
  182. package/dist/dashboard/components/WelcomeArt.js +0 -9
  183. package/dist/dashboard/components/WelcomeArt.js.map +0 -1
  184. package/dist/dashboard/hooks/useAnimation.d.ts +0 -7
  185. package/dist/dashboard/hooks/useAnimation.js +0 -24
  186. package/dist/dashboard/hooks/useAnimation.js.map +0 -1
  187. package/dist/dashboard/hooks/useKeyboard.d.ts +0 -8
  188. package/dist/dashboard/hooks/useKeyboard.js +0 -18
  189. package/dist/dashboard/hooks/useKeyboard.js.map +0 -1
  190. package/dist/dashboard/hooks/useTerminalSize.d.ts +0 -8
  191. package/dist/dashboard/hooks/useTerminalSize.js +0 -23
  192. package/dist/dashboard/hooks/useTerminalSize.js.map +0 -1
  193. package/dist/dashboard/index.d.ts +0 -6
  194. package/dist/dashboard/index.js +0 -36
  195. package/dist/dashboard/index.js.map +0 -1
  196. package/dist/dashboard/lib/diff-utils.d.ts +0 -21
  197. package/dist/dashboard/lib/diff-utils.js +0 -271
  198. package/dist/dashboard/lib/diff-utils.js.map +0 -1
  199. package/dist/dashboard/lib/logo-frames.d.ts +0 -20
  200. package/dist/dashboard/lib/logo-frames.js +0 -109
  201. package/dist/dashboard/lib/logo-frames.js.map +0 -1
  202. package/dist/dashboard/lib/welcome-art.d.ts +0 -1
  203. package/dist/dashboard/lib/welcome-art.js +0 -5
  204. package/dist/dashboard/lib/welcome-art.js.map +0 -1
  205. package/dist/dashboard/types.d.ts +0 -5
  206. package/dist/dashboard/types.js +0 -2
  207. package/dist/dashboard/types.js.map +0 -1
  208. package/dist/doctor/agent-prompt.d.ts +0 -10
  209. package/dist/doctor/agent-prompt.js +0 -190
  210. package/dist/doctor/agent-prompt.js.map +0 -1
  211. package/dist/doctor/checks/ai-analysis.d.ts +0 -9
  212. package/dist/doctor/checks/ai-analysis.js +0 -124
  213. package/dist/doctor/checks/ai-analysis.js.map +0 -1
  214. package/dist/doctor/checks/auth-patterns.d.ts +0 -2
  215. package/dist/doctor/checks/auth-patterns.js +0 -569
  216. package/dist/doctor/checks/auth-patterns.js.map +0 -1
  217. package/dist/doctor/checks/connectivity.d.ts +0 -2
  218. package/dist/doctor/checks/connectivity.js +0 -35
  219. package/dist/doctor/checks/connectivity.js.map +0 -1
  220. package/dist/doctor/checks/dashboard.d.ts +0 -3
  221. package/dist/doctor/checks/dashboard.js +0 -123
  222. package/dist/doctor/checks/dashboard.js.map +0 -1
  223. package/dist/doctor/checks/environment.d.ts +0 -2
  224. package/dist/doctor/checks/environment.js +0 -86
  225. package/dist/doctor/checks/environment.js.map +0 -1
  226. package/dist/doctor/checks/framework.d.ts +0 -2
  227. package/dist/doctor/checks/framework.js +0 -94
  228. package/dist/doctor/checks/framework.js.map +0 -1
  229. package/dist/doctor/checks/host-execution.d.ts +0 -2
  230. package/dist/doctor/checks/host-execution.js +0 -21
  231. package/dist/doctor/checks/host-execution.js.map +0 -1
  232. package/dist/doctor/checks/language.d.ts +0 -6
  233. package/dist/doctor/checks/language.js +0 -104
  234. package/dist/doctor/checks/language.js.map +0 -1
  235. package/dist/doctor/checks/mcp.d.ts +0 -15
  236. package/dist/doctor/checks/mcp.js +0 -34
  237. package/dist/doctor/checks/mcp.js.map +0 -1
  238. package/dist/doctor/checks/runtime.d.ts +0 -2
  239. package/dist/doctor/checks/runtime.js +0 -20
  240. package/dist/doctor/checks/runtime.js.map +0 -1
  241. package/dist/doctor/checks/sdk.d.ts +0 -2
  242. package/dist/doctor/checks/sdk.js +0 -192
  243. package/dist/doctor/checks/sdk.js.map +0 -1
  244. package/dist/doctor/checks/skills.d.ts +0 -9
  245. package/dist/doctor/checks/skills.js +0 -84
  246. package/dist/doctor/checks/skills.js.map +0 -1
  247. package/dist/doctor/clipboard.d.ts +0 -1
  248. package/dist/doctor/clipboard.js +0 -43
  249. package/dist/doctor/clipboard.js.map +0 -1
  250. package/dist/doctor/index.d.ts +0 -26
  251. package/dist/doctor/index.js +0 -182
  252. package/dist/doctor/index.js.map +0 -1
  253. package/dist/doctor/issues.d.ts +0 -63
  254. package/dist/doctor/issues.js +0 -198
  255. package/dist/doctor/issues.js.map +0 -1
  256. package/dist/doctor/json-output.d.ts +0 -2
  257. package/dist/doctor/json-output.js +0 -4
  258. package/dist/doctor/json-output.js.map +0 -1
  259. package/dist/doctor/output.d.ts +0 -7
  260. package/dist/doctor/output.js +0 -288
  261. package/dist/doctor/output.js.map +0 -1
  262. package/dist/doctor/types.d.ts +0 -203
  263. package/dist/doctor/types.js +0 -2
  264. package/dist/doctor/types.js.map +0 -1
  265. package/dist/emulate/core/id.d.ts +0 -48
  266. package/dist/emulate/core/id.js +0 -73
  267. package/dist/emulate/core/id.js.map +0 -1
  268. package/dist/emulate/core/index.d.ts +0 -8
  269. package/dist/emulate/core/index.js +0 -8
  270. package/dist/emulate/core/index.js.map +0 -1
  271. package/dist/emulate/core/jwt.d.ts +0 -28
  272. package/dist/emulate/core/jwt.js +0 -78
  273. package/dist/emulate/core/jwt.js.map +0 -1
  274. package/dist/emulate/core/middleware/auth.d.ts +0 -15
  275. package/dist/emulate/core/middleware/auth.js +0 -17
  276. package/dist/emulate/core/middleware/auth.js.map +0 -1
  277. package/dist/emulate/core/middleware/error-handler.d.ts +0 -22
  278. package/dist/emulate/core/middleware/error-handler.js +0 -72
  279. package/dist/emulate/core/middleware/error-handler.js.map +0 -1
  280. package/dist/emulate/core/pagination.d.ts +0 -27
  281. package/dist/emulate/core/pagination.js +0 -43
  282. package/dist/emulate/core/pagination.js.map +0 -1
  283. package/dist/emulate/core/plugin.d.ts +0 -15
  284. package/dist/emulate/core/plugin.js +0 -2
  285. package/dist/emulate/core/plugin.js.map +0 -1
  286. package/dist/emulate/core/server.d.ts +0 -17
  287. package/dist/emulate/core/server.js +0 -90
  288. package/dist/emulate/core/server.js.map +0 -1
  289. package/dist/emulate/core/store.d.ts +0 -44
  290. package/dist/emulate/core/store.js +0 -169
  291. package/dist/emulate/core/store.js.map +0 -1
  292. package/dist/emulate/index.d.ts +0 -25
  293. package/dist/emulate/index.js +0 -47
  294. package/dist/emulate/index.js.map +0 -1
  295. package/dist/emulate/workos/constants.d.ts +0 -56
  296. package/dist/emulate/workos/constants.js +0 -56
  297. package/dist/emulate/workos/constants.js.map +0 -1
  298. package/dist/emulate/workos/entities.d.ts +0 -360
  299. package/dist/emulate/workos/entities.js +0 -2
  300. package/dist/emulate/workos/entities.js.map +0 -1
  301. package/dist/emulate/workos/event-bus.d.ts +0 -17
  302. package/dist/emulate/workos/event-bus.js +0 -70
  303. package/dist/emulate/workos/event-bus.js.map +0 -1
  304. package/dist/emulate/workos/helpers.d.ts +0 -72
  305. package/dist/emulate/workos/helpers.js +0 -211
  306. package/dist/emulate/workos/helpers.js.map +0 -1
  307. package/dist/emulate/workos/index.d.ts +0 -93
  308. package/dist/emulate/workos/index.js +0 -326
  309. package/dist/emulate/workos/index.js.map +0 -1
  310. package/dist/emulate/workos/role-helpers.d.ts +0 -21
  311. package/dist/emulate/workos/role-helpers.js +0 -130
  312. package/dist/emulate/workos/role-helpers.js.map +0 -1
  313. package/dist/emulate/workos/routes/api-keys.d.ts +0 -2
  314. package/dist/emulate/workos/routes/api-keys.js +0 -32
  315. package/dist/emulate/workos/routes/api-keys.js.map +0 -1
  316. package/dist/emulate/workos/routes/audit-logs.d.ts +0 -2
  317. package/dist/emulate/workos/routes/audit-logs.js +0 -104
  318. package/dist/emulate/workos/routes/audit-logs.js.map +0 -1
  319. package/dist/emulate/workos/routes/auth-challenges.d.ts +0 -2
  320. package/dist/emulate/workos/routes/auth-challenges.js +0 -51
  321. package/dist/emulate/workos/routes/auth-challenges.js.map +0 -1
  322. package/dist/emulate/workos/routes/auth-factors.d.ts +0 -2
  323. package/dist/emulate/workos/routes/auth-factors.js +0 -51
  324. package/dist/emulate/workos/routes/auth-factors.js.map +0 -1
  325. package/dist/emulate/workos/routes/auth.d.ts +0 -2
  326. package/dist/emulate/workos/routes/auth.js +0 -350
  327. package/dist/emulate/workos/routes/auth.js.map +0 -1
  328. package/dist/emulate/workos/routes/authorization-checks.d.ts +0 -10
  329. package/dist/emulate/workos/routes/authorization-checks.js +0 -123
  330. package/dist/emulate/workos/routes/authorization-checks.js.map +0 -1
  331. package/dist/emulate/workos/routes/authorization-org-roles.d.ts +0 -2
  332. package/dist/emulate/workos/routes/authorization-org-roles.js +0 -64
  333. package/dist/emulate/workos/routes/authorization-org-roles.js.map +0 -1
  334. package/dist/emulate/workos/routes/authorization-permissions.d.ts +0 -2
  335. package/dist/emulate/workos/routes/authorization-permissions.js +0 -67
  336. package/dist/emulate/workos/routes/authorization-permissions.js.map +0 -1
  337. package/dist/emulate/workos/routes/authorization-resources.d.ts +0 -2
  338. package/dist/emulate/workos/routes/authorization-resources.js +0 -117
  339. package/dist/emulate/workos/routes/authorization-resources.js.map +0 -1
  340. package/dist/emulate/workos/routes/authorization-roles.d.ts +0 -2
  341. package/dist/emulate/workos/routes/authorization-roles.js +0 -13
  342. package/dist/emulate/workos/routes/authorization-roles.js.map +0 -1
  343. package/dist/emulate/workos/routes/config.d.ts +0 -2
  344. package/dist/emulate/workos/routes/config.js +0 -57
  345. package/dist/emulate/workos/routes/config.js.map +0 -1
  346. package/dist/emulate/workos/routes/connect.d.ts +0 -2
  347. package/dist/emulate/workos/routes/connect.js +0 -65
  348. package/dist/emulate/workos/routes/connect.js.map +0 -1
  349. package/dist/emulate/workos/routes/connections.d.ts +0 -2
  350. package/dist/emulate/workos/routes/connections.js +0 -73
  351. package/dist/emulate/workos/routes/connections.js.map +0 -1
  352. package/dist/emulate/workos/routes/data-integrations.d.ts +0 -2
  353. package/dist/emulate/workos/routes/data-integrations.js +0 -55
  354. package/dist/emulate/workos/routes/data-integrations.js.map +0 -1
  355. package/dist/emulate/workos/routes/directories.d.ts +0 -2
  356. package/dist/emulate/workos/routes/directories.js +0 -90
  357. package/dist/emulate/workos/routes/directories.js.map +0 -1
  358. package/dist/emulate/workos/routes/email-verification.d.ts +0 -2
  359. package/dist/emulate/workos/routes/email-verification.js +0 -49
  360. package/dist/emulate/workos/routes/email-verification.js.map +0 -1
  361. package/dist/emulate/workos/routes/events.d.ts +0 -2
  362. package/dist/emulate/workos/routes/events.js +0 -18
  363. package/dist/emulate/workos/routes/events.js.map +0 -1
  364. package/dist/emulate/workos/routes/feature-flags.d.ts +0 -2
  365. package/dist/emulate/workos/routes/feature-flags.js +0 -103
  366. package/dist/emulate/workos/routes/feature-flags.js.map +0 -1
  367. package/dist/emulate/workos/routes/invitations.d.ts +0 -2
  368. package/dist/emulate/workos/routes/invitations.js +0 -122
  369. package/dist/emulate/workos/routes/invitations.js.map +0 -1
  370. package/dist/emulate/workos/routes/legacy-mfa.d.ts +0 -2
  371. package/dist/emulate/workos/routes/legacy-mfa.js +0 -75
  372. package/dist/emulate/workos/routes/legacy-mfa.js.map +0 -1
  373. package/dist/emulate/workos/routes/magic-auth.d.ts +0 -2
  374. package/dist/emulate/workos/routes/magic-auth.js +0 -32
  375. package/dist/emulate/workos/routes/magic-auth.js.map +0 -1
  376. package/dist/emulate/workos/routes/memberships.d.ts +0 -2
  377. package/dist/emulate/workos/routes/memberships.js +0 -114
  378. package/dist/emulate/workos/routes/memberships.js.map +0 -1
  379. package/dist/emulate/workos/routes/organization-domains.d.ts +0 -2
  380. package/dist/emulate/workos/routes/organization-domains.js +0 -58
  381. package/dist/emulate/workos/routes/organization-domains.js.map +0 -1
  382. package/dist/emulate/workos/routes/organizations.d.ts +0 -2
  383. package/dist/emulate/workos/routes/organizations.js +0 -131
  384. package/dist/emulate/workos/routes/organizations.js.map +0 -1
  385. package/dist/emulate/workos/routes/password-reset.d.ts +0 -2
  386. package/dist/emulate/workos/routes/password-reset.js +0 -61
  387. package/dist/emulate/workos/routes/password-reset.js.map +0 -1
  388. package/dist/emulate/workos/routes/pipes.d.ts +0 -2
  389. package/dist/emulate/workos/routes/pipes.js +0 -82
  390. package/dist/emulate/workos/routes/pipes.js.map +0 -1
  391. package/dist/emulate/workos/routes/portal.d.ts +0 -2
  392. package/dist/emulate/workos/routes/portal.js +0 -18
  393. package/dist/emulate/workos/routes/portal.js.map +0 -1
  394. package/dist/emulate/workos/routes/radar.d.ts +0 -2
  395. package/dist/emulate/workos/routes/radar.js +0 -41
  396. package/dist/emulate/workos/routes/radar.js.map +0 -1
  397. package/dist/emulate/workos/routes/sessions.d.ts +0 -2
  398. package/dist/emulate/workos/routes/sessions.js +0 -51
  399. package/dist/emulate/workos/routes/sessions.js.map +0 -1
  400. package/dist/emulate/workos/routes/sso.d.ts +0 -2
  401. package/dist/emulate/workos/routes/sso.js +0 -161
  402. package/dist/emulate/workos/routes/sso.js.map +0 -1
  403. package/dist/emulate/workos/routes/user-features.d.ts +0 -2
  404. package/dist/emulate/workos/routes/user-features.js +0 -50
  405. package/dist/emulate/workos/routes/user-features.js.map +0 -1
  406. package/dist/emulate/workos/routes/users.d.ts +0 -2
  407. package/dist/emulate/workos/routes/users.js +0 -129
  408. package/dist/emulate/workos/routes/users.js.map +0 -1
  409. package/dist/emulate/workos/routes/webhook-endpoints.d.ts +0 -2
  410. package/dist/emulate/workos/routes/webhook-endpoints.js +0 -67
  411. package/dist/emulate/workos/routes/webhook-endpoints.js.map +0 -1
  412. package/dist/emulate/workos/routes/widgets.d.ts +0 -2
  413. package/dist/emulate/workos/routes/widgets.js +0 -27
  414. package/dist/emulate/workos/routes/widgets.js.map +0 -1
  415. package/dist/emulate/workos/store.d.ts +0 -48
  416. package/dist/emulate/workos/store.js +0 -102
  417. package/dist/emulate/workos/store.js.map +0 -1
  418. package/dist/emulate/workos/webhook-signer.d.ts +0 -1
  419. package/dist/emulate/workos/webhook-signer.js +0 -8
  420. package/dist/emulate/workos/webhook-signer.js.map +0 -1
  421. package/dist/gen-routes-lib.spec.ts +0 -659
  422. package/dist/gen-routes-lib.ts +0 -647
  423. package/dist/gen-routes.ts +0 -96
  424. package/dist/integrations/dotnet/index.d.ts +0 -8
  425. package/dist/integrations/dotnet/index.js +0 -170
  426. package/dist/integrations/dotnet/index.js.map +0 -1
  427. package/dist/integrations/elixir/index.d.ts +0 -8
  428. package/dist/integrations/elixir/index.js +0 -146
  429. package/dist/integrations/elixir/index.js.map +0 -1
  430. package/dist/integrations/go/index.d.ts +0 -11
  431. package/dist/integrations/go/index.js +0 -212
  432. package/dist/integrations/go/index.js.map +0 -1
  433. package/dist/integrations/kotlin/index.d.ts +0 -4
  434. package/dist/integrations/kotlin/index.js +0 -78
  435. package/dist/integrations/kotlin/index.js.map +0 -1
  436. package/dist/integrations/nextjs/index.d.ts +0 -4
  437. package/dist/integrations/nextjs/index.js +0 -90
  438. package/dist/integrations/nextjs/index.js.map +0 -1
  439. package/dist/integrations/nextjs/utils.d.ts +0 -8
  440. package/dist/integrations/nextjs/utils.js +0 -53
  441. package/dist/integrations/nextjs/utils.js.map +0 -1
  442. package/dist/integrations/node/index.d.ts +0 -4
  443. package/dist/integrations/node/index.js +0 -52
  444. package/dist/integrations/node/index.js.map +0 -1
  445. package/dist/integrations/php/index.d.ts +0 -4
  446. package/dist/integrations/php/index.js +0 -51
  447. package/dist/integrations/php/index.js.map +0 -1
  448. package/dist/integrations/php-laravel/index.d.ts +0 -4
  449. package/dist/integrations/php-laravel/index.js +0 -51
  450. package/dist/integrations/php-laravel/index.js.map +0 -1
  451. package/dist/integrations/python/index.d.ts +0 -9
  452. package/dist/integrations/python/index.js +0 -249
  453. package/dist/integrations/python/index.js.map +0 -1
  454. package/dist/integrations/react/index.d.ts +0 -4
  455. package/dist/integrations/react/index.js +0 -49
  456. package/dist/integrations/react/index.js.map +0 -1
  457. package/dist/integrations/react-router/index.d.ts +0 -4
  458. package/dist/integrations/react-router/index.js +0 -94
  459. package/dist/integrations/react-router/index.js.map +0 -1
  460. package/dist/integrations/react-router/utils.d.ts +0 -10
  461. package/dist/integrations/react-router/utils.js +0 -146
  462. package/dist/integrations/react-router/utils.js.map +0 -1
  463. package/dist/integrations/ruby/index.d.ts +0 -8
  464. package/dist/integrations/ruby/index.js +0 -137
  465. package/dist/integrations/ruby/index.js.map +0 -1
  466. package/dist/integrations/sveltekit/index.d.ts +0 -4
  467. package/dist/integrations/sveltekit/index.js +0 -50
  468. package/dist/integrations/sveltekit/index.js.map +0 -1
  469. package/dist/integrations/tanstack-start/index.d.ts +0 -4
  470. package/dist/integrations/tanstack-start/index.js +0 -51
  471. package/dist/integrations/tanstack-start/index.js.map +0 -1
  472. package/dist/integrations/vanilla-js/index.d.ts +0 -4
  473. package/dist/integrations/vanilla-js/index.js +0 -49
  474. package/dist/integrations/vanilla-js/index.js.map +0 -1
  475. package/dist/lib/__test-helpers__/mock-unclaimed-env-api-error.d.ts +0 -7
  476. package/dist/lib/__test-helpers__/mock-unclaimed-env-api-error.js +0 -12
  477. package/dist/lib/__test-helpers__/mock-unclaimed-env-api-error.js.map +0 -1
  478. package/dist/lib/adapters/cli-adapter.d.ts +0 -84
  479. package/dist/lib/adapters/cli-adapter.js +0 -525
  480. package/dist/lib/adapters/cli-adapter.js.map +0 -1
  481. package/dist/lib/adapters/dashboard-adapter.d.ts +0 -34
  482. package/dist/lib/adapters/dashboard-adapter.js +0 -121
  483. package/dist/lib/adapters/dashboard-adapter.js.map +0 -1
  484. package/dist/lib/adapters/headless-adapter.d.ts +0 -73
  485. package/dist/lib/adapters/headless-adapter.js +0 -310
  486. package/dist/lib/adapters/headless-adapter.js.map +0 -1
  487. package/dist/lib/adapters/index.d.ts +0 -4
  488. package/dist/lib/adapters/index.js +0 -4
  489. package/dist/lib/adapters/index.js.map +0 -1
  490. package/dist/lib/adapters/types.d.ts +0 -41
  491. package/dist/lib/adapters/types.js +0 -2
  492. package/dist/lib/adapters/types.js.map +0 -1
  493. package/dist/lib/agent-interface.d.ts +0 -84
  494. package/dist/lib/agent-interface.js +0 -826
  495. package/dist/lib/agent-interface.js.map +0 -1
  496. package/dist/lib/agent-runner.d.ts +0 -9
  497. package/dist/lib/agent-runner.js +0 -261
  498. package/dist/lib/agent-runner.js.map +0 -1
  499. package/dist/lib/ai-content.d.ts +0 -14
  500. package/dist/lib/ai-content.js +0 -131
  501. package/dist/lib/ai-content.js.map +0 -1
  502. package/dist/lib/api-error-handler.d.ts +0 -18
  503. package/dist/lib/api-error-handler.js +0 -76
  504. package/dist/lib/api-error-handler.js.map +0 -1
  505. package/dist/lib/api-key.d.ts +0 -14
  506. package/dist/lib/api-key.js +0 -36
  507. package/dist/lib/api-key.js.map +0 -1
  508. package/dist/lib/api.d.ts +0 -25
  509. package/dist/lib/api.js +0 -120
  510. package/dist/lib/api.js.map +0 -1
  511. package/dist/lib/background-refresh.d.ts +0 -29
  512. package/dist/lib/background-refresh.js +0 -95
  513. package/dist/lib/background-refresh.js.map +0 -1
  514. package/dist/lib/command-aliases.d.ts +0 -8
  515. package/dist/lib/command-aliases.js +0 -12
  516. package/dist/lib/command-aliases.js.map +0 -1
  517. package/dist/lib/config-store.d.ts +0 -50
  518. package/dist/lib/config-store.js +0 -269
  519. package/dist/lib/config-store.js.map +0 -1
  520. package/dist/lib/config.d.ts +0 -34
  521. package/dist/lib/config.js +0 -37
  522. package/dist/lib/config.js.map +0 -1
  523. package/dist/lib/constants.d.ts +0 -43
  524. package/dist/lib/constants.js +0 -42
  525. package/dist/lib/constants.js.map +0 -1
  526. package/dist/lib/credential-discovery.d.ts +0 -42
  527. package/dist/lib/credential-discovery.js +0 -100
  528. package/dist/lib/credential-discovery.js.map +0 -1
  529. package/dist/lib/credential-proxy.d.ts +0 -45
  530. package/dist/lib/credential-proxy.js +0 -364
  531. package/dist/lib/credential-proxy.js.map +0 -1
  532. package/dist/lib/credential-store.d.ts +0 -32
  533. package/dist/lib/credential-store.js +0 -236
  534. package/dist/lib/credential-store.js.map +0 -1
  535. package/dist/lib/credentials.d.ts +0 -13
  536. package/dist/lib/credentials.js +0 -34
  537. package/dist/lib/credentials.js.map +0 -1
  538. package/dist/lib/dev-command.d.ts +0 -26
  539. package/dist/lib/dev-command.js +0 -129
  540. package/dist/lib/dev-command.js.map +0 -1
  541. package/dist/lib/device-auth.d.ts +0 -48
  542. package/dist/lib/device-auth.js +0 -176
  543. package/dist/lib/device-auth.js.map +0 -1
  544. package/dist/lib/device-id.d.ts +0 -25
  545. package/dist/lib/device-id.js +0 -102
  546. package/dist/lib/device-id.js.map +0 -1
  547. package/dist/lib/ensure-auth.d.ts +0 -12
  548. package/dist/lib/ensure-auth.js +0 -111
  549. package/dist/lib/ensure-auth.js.map +0 -1
  550. package/dist/lib/env-writer.d.ts +0 -25
  551. package/dist/lib/env-writer.js +0 -90
  552. package/dist/lib/env-writer.js.map +0 -1
  553. package/dist/lib/events.d.ts +0 -215
  554. package/dist/lib/events.js +0 -19
  555. package/dist/lib/events.js.map +0 -1
  556. package/dist/lib/framework-config.d.ts +0 -127
  557. package/dist/lib/framework-config.js +0 -11
  558. package/dist/lib/framework-config.js.map +0 -1
  559. package/dist/lib/helper-functions.d.ts +0 -1
  560. package/dist/lib/helper-functions.js +0 -2
  561. package/dist/lib/helper-functions.js.map +0 -1
  562. package/dist/lib/host-probe.d.ts +0 -28
  563. package/dist/lib/host-probe.js +0 -154
  564. package/dist/lib/host-probe.js.map +0 -1
  565. package/dist/lib/installer-core.d.ts +0 -556
  566. package/dist/lib/installer-core.js +0 -1115
  567. package/dist/lib/installer-core.js.map +0 -1
  568. package/dist/lib/installer-core.types.d.ts +0 -160
  569. package/dist/lib/installer-core.types.js +0 -2
  570. package/dist/lib/installer-core.types.js.map +0 -1
  571. package/dist/lib/mcp-clients.d.ts +0 -39
  572. package/dist/lib/mcp-clients.js +0 -284
  573. package/dist/lib/mcp-clients.js.map +0 -1
  574. package/dist/lib/mcp-notice.d.ts +0 -72
  575. package/dist/lib/mcp-notice.js +0 -275
  576. package/dist/lib/mcp-notice.js.map +0 -1
  577. package/dist/lib/port-detection.d.ts +0 -7
  578. package/dist/lib/port-detection.js +0 -238
  579. package/dist/lib/port-detection.js.map +0 -1
  580. package/dist/lib/post-install.d.ts +0 -8
  581. package/dist/lib/post-install.js +0 -51
  582. package/dist/lib/post-install.js.map +0 -1
  583. package/dist/lib/preferences.d.ts +0 -115
  584. package/dist/lib/preferences.js +0 -201
  585. package/dist/lib/preferences.js.map +0 -1
  586. package/dist/lib/progress-tracker.d.ts +0 -22
  587. package/dist/lib/progress-tracker.js +0 -47
  588. package/dist/lib/progress-tracker.js.map +0 -1
  589. package/dist/lib/registry.d.ts +0 -42
  590. package/dist/lib/registry.js +0 -96
  591. package/dist/lib/registry.js.map +0 -1
  592. package/dist/lib/resolve-install-credentials.d.ts +0 -11
  593. package/dist/lib/resolve-install-credentials.js +0 -53
  594. package/dist/lib/resolve-install-credentials.js.map +0 -1
  595. package/dist/lib/run-with-core.d.ts +0 -7
  596. package/dist/lib/run-with-core.js +0 -522
  597. package/dist/lib/run-with-core.js.map +0 -1
  598. package/dist/lib/safe-tools.d.ts +0 -2
  599. package/dist/lib/safe-tools.js +0 -212
  600. package/dist/lib/safe-tools.js.map +0 -1
  601. package/dist/lib/scaffold/index.d.ts +0 -1
  602. package/dist/lib/scaffold/index.js +0 -2
  603. package/dist/lib/scaffold/index.js.map +0 -1
  604. package/dist/lib/scaffold/scaffold.d.ts +0 -66
  605. package/dist/lib/scaffold/scaffold.js +0 -156
  606. package/dist/lib/scaffold/scaffold.js.map +0 -1
  607. package/dist/lib/settings.d.ts +0 -60
  608. package/dist/lib/settings.js +0 -31
  609. package/dist/lib/settings.js.map +0 -1
  610. package/dist/lib/staging-api.d.ts +0 -22
  611. package/dist/lib/staging-api.js +0 -74
  612. package/dist/lib/staging-api.js.map +0 -1
  613. package/dist/lib/startup-notice-gate.d.ts +0 -21
  614. package/dist/lib/startup-notice-gate.js +0 -29
  615. package/dist/lib/startup-notice-gate.js.map +0 -1
  616. package/dist/lib/telemetry-notice.d.ts +0 -25
  617. package/dist/lib/telemetry-notice.js +0 -59
  618. package/dist/lib/telemetry-notice.js.map +0 -1
  619. package/dist/lib/token-refresh-client.d.ts +0 -23
  620. package/dist/lib/token-refresh-client.js +0 -89
  621. package/dist/lib/token-refresh-client.js.map +0 -1
  622. package/dist/lib/token-refresh.d.ts +0 -12
  623. package/dist/lib/token-refresh.js +0 -27
  624. package/dist/lib/token-refresh.js.map +0 -1
  625. package/dist/lib/unclaimed-env-api.d.ts +0 -42
  626. package/dist/lib/unclaimed-env-api.js +0 -139
  627. package/dist/lib/unclaimed-env-api.js.map +0 -1
  628. package/dist/lib/unclaimed-env-provision.d.ts +0 -24
  629. package/dist/lib/unclaimed-env-provision.js +0 -77
  630. package/dist/lib/unclaimed-env-provision.js.map +0 -1
  631. package/dist/lib/unclaimed-warning.d.ts +0 -15
  632. package/dist/lib/unclaimed-warning.js +0 -77
  633. package/dist/lib/unclaimed-warning.js.map +0 -1
  634. package/dist/lib/validation/build-validator.d.ts +0 -21
  635. package/dist/lib/validation/build-validator.js +0 -153
  636. package/dist/lib/validation/build-validator.js.map +0 -1
  637. package/dist/lib/validation/index.d.ts +0 -4
  638. package/dist/lib/validation/index.js +0 -4
  639. package/dist/lib/validation/index.js.map +0 -1
  640. package/dist/lib/validation/quick-checks.d.ts +0 -19
  641. package/dist/lib/validation/quick-checks.js +0 -192
  642. package/dist/lib/validation/quick-checks.js.map +0 -1
  643. package/dist/lib/validation/security-checks.d.ts +0 -35
  644. package/dist/lib/validation/security-checks.js +0 -105
  645. package/dist/lib/validation/security-checks.js.map +0 -1
  646. package/dist/lib/validation/types.d.ts +0 -56
  647. package/dist/lib/validation/types.js +0 -2
  648. package/dist/lib/validation/types.js.map +0 -1
  649. package/dist/lib/validation/validator.d.ts +0 -13
  650. package/dist/lib/validation/validator.js +0 -684
  651. package/dist/lib/validation/validator.js.map +0 -1
  652. package/dist/lib/version-check.d.ts +0 -6
  653. package/dist/lib/version-check.js +0 -46
  654. package/dist/lib/version-check.js.map +0 -1
  655. package/dist/lib/workos-api.d.ts +0 -30
  656. package/dist/lib/workos-api.js +0 -69
  657. package/dist/lib/workos-api.js.map +0 -1
  658. package/dist/lib/workos-client.d.ts +0 -58
  659. package/dist/lib/workos-client.js +0 -140
  660. package/dist/lib/workos-client.js.map +0 -1
  661. package/dist/lib/workos-management.d.ts +0 -32
  662. package/dist/lib/workos-management.js +0 -142
  663. package/dist/lib/workos-management.js.map +0 -1
  664. package/dist/nextjs/nextjs-installer-agent.d.ts +0 -5
  665. package/dist/nextjs/nextjs-installer-agent.js +0 -6
  666. package/dist/nextjs/nextjs-installer-agent.js.map +0 -1
  667. package/dist/nextjs/utils.d.ts +0 -4
  668. package/dist/nextjs/utils.js +0 -5
  669. package/dist/nextjs/utils.js.map +0 -1
  670. package/dist/react/react-installer-agent.d.ts +0 -4
  671. package/dist/react/react-installer-agent.js +0 -5
  672. package/dist/react/react-installer-agent.js.map +0 -1
  673. package/dist/react-router/react-router-installer-agent.d.ts +0 -4
  674. package/dist/react-router/react-router-installer-agent.js +0 -5
  675. package/dist/react-router/react-router-installer-agent.js.map +0 -1
  676. package/dist/react-router/utils.d.ts +0 -4
  677. package/dist/react-router/utils.js +0 -5
  678. package/dist/react-router/utils.js.map +0 -1
  679. package/dist/run.d.ts +0 -32
  680. package/dist/run.js +0 -54
  681. package/dist/run.js.map +0 -1
  682. package/dist/smoke-test.ts +0 -881
  683. package/dist/steps/add-or-update-environment-variables.d.ts +0 -10
  684. package/dist/steps/add-or-update-environment-variables.js +0 -155
  685. package/dist/steps/add-or-update-environment-variables.js.map +0 -1
  686. package/dist/steps/index.d.ts +0 -3
  687. package/dist/steps/index.js +0 -4
  688. package/dist/steps/index.js.map +0 -1
  689. package/dist/steps/run-prettier.d.ts +0 -5
  690. package/dist/steps/run-prettier.js +0 -50
  691. package/dist/steps/run-prettier.js.map +0 -1
  692. package/dist/steps/upload-environment-variables/EnvironmentProvider.d.ts +0 -8
  693. package/dist/steps/upload-environment-variables/EnvironmentProvider.js +0 -7
  694. package/dist/steps/upload-environment-variables/EnvironmentProvider.js.map +0 -1
  695. package/dist/steps/upload-environment-variables/index.d.ts +0 -6
  696. package/dist/steps/upload-environment-variables/index.js +0 -57
  697. package/dist/steps/upload-environment-variables/index.js.map +0 -1
  698. package/dist/steps/upload-environment-variables/providers/vercel.d.ts +0 -14
  699. package/dist/steps/upload-environment-variables/providers/vercel.js +0 -107
  700. package/dist/steps/upload-environment-variables/providers/vercel.js.map +0 -1
  701. package/dist/tanstack-start/tanstack-start-installer-agent.d.ts +0 -4
  702. package/dist/tanstack-start/tanstack-start-installer-agent.js +0 -5
  703. package/dist/tanstack-start/tanstack-start-installer-agent.js.map +0 -1
  704. package/dist/telemetry.d.ts +0 -2
  705. package/dist/telemetry.js +0 -29
  706. package/dist/telemetry.js.map +0 -1
  707. package/dist/test/force-insecure-storage.d.ts +0 -1
  708. package/dist/test/force-insecure-storage.js +0 -9
  709. package/dist/test/force-insecure-storage.js.map +0 -1
  710. package/dist/test/setup.d.ts +0 -1
  711. package/dist/test/setup.js +0 -38
  712. package/dist/test/setup.js.map +0 -1
  713. package/dist/utils/analytics.d.ts +0 -66
  714. package/dist/utils/analytics.js +0 -330
  715. package/dist/utils/analytics.js.map +0 -1
  716. package/dist/utils/bash.d.ts +0 -2
  717. package/dist/utils/bash.js +0 -17
  718. package/dist/utils/bash.js.map +0 -1
  719. package/dist/utils/box.d.ts +0 -33
  720. package/dist/utils/box.js +0 -102
  721. package/dist/utils/box.js.map +0 -1
  722. package/dist/utils/clack-utils.d.ts +0 -97
  723. package/dist/utils/clack-utils.js +0 -422
  724. package/dist/utils/clack-utils.js.map +0 -1
  725. package/dist/utils/clack.d.ts +0 -5
  726. package/dist/utils/clack.js +0 -34
  727. package/dist/utils/clack.js.map +0 -1
  728. package/dist/utils/cli-exit.d.ts +0 -15
  729. package/dist/utils/cli-exit.js +0 -11
  730. package/dist/utils/cli-exit.js.map +0 -1
  731. package/dist/utils/cli-symbols.d.ts +0 -32
  732. package/dist/utils/cli-symbols.js +0 -46
  733. package/dist/utils/cli-symbols.js.map +0 -1
  734. package/dist/utils/command-invocation.d.ts +0 -10
  735. package/dist/utils/command-invocation.js +0 -26
  736. package/dist/utils/command-invocation.js.map +0 -1
  737. package/dist/utils/command-telemetry.d.ts +0 -17
  738. package/dist/utils/command-telemetry.js +0 -67
  739. package/dist/utils/command-telemetry.js.map +0 -1
  740. package/dist/utils/crash-reporter.d.ts +0 -13
  741. package/dist/utils/crash-reporter.js +0 -91
  742. package/dist/utils/crash-reporter.js.map +0 -1
  743. package/dist/utils/debug.d.ts +0 -9
  744. package/dist/utils/debug.js +0 -105
  745. package/dist/utils/debug.js.map +0 -1
  746. package/dist/utils/env-parser.d.ts +0 -5
  747. package/dist/utils/env-parser.js +0 -18
  748. package/dist/utils/env-parser.js.map +0 -1
  749. package/dist/utils/environment.d.ts +0 -10
  750. package/dist/utils/environment.js +0 -69
  751. package/dist/utils/environment.js.map +0 -1
  752. package/dist/utils/errors.d.ts +0 -3
  753. package/dist/utils/errors.js +0 -7
  754. package/dist/utils/errors.js.map +0 -1
  755. package/dist/utils/exec-file.d.ts +0 -15
  756. package/dist/utils/exec-file.js +0 -39
  757. package/dist/utils/exec-file.js.map +0 -1
  758. package/dist/utils/exit-codes.d.ts +0 -31
  759. package/dist/utils/exit-codes.js +0 -69
  760. package/dist/utils/exit-codes.js.map +0 -1
  761. package/dist/utils/git-utils.d.ts +0 -23
  762. package/dist/utils/git-utils.js +0 -86
  763. package/dist/utils/git-utils.js.map +0 -1
  764. package/dist/utils/help-json.d.ts +0 -58
  765. package/dist/utils/help-json.js +0 -1466
  766. package/dist/utils/help-json.js.map +0 -1
  767. package/dist/utils/interaction-mode.d.ts +0 -25
  768. package/dist/utils/interaction-mode.js +0 -99
  769. package/dist/utils/interaction-mode.js.map +0 -1
  770. package/dist/utils/lock-art.d.ts +0 -4
  771. package/dist/utils/lock-art.js +0 -73
  772. package/dist/utils/lock-art.js.map +0 -1
  773. package/dist/utils/logging.d.ts +0 -9
  774. package/dist/utils/logging.js +0 -36
  775. package/dist/utils/logging.js.map +0 -1
  776. package/dist/utils/ndjson.d.ts +0 -16
  777. package/dist/utils/ndjson.js +0 -18
  778. package/dist/utils/ndjson.js.map +0 -1
  779. package/dist/utils/output.d.ts +0 -60
  780. package/dist/utils/output.js +0 -124
  781. package/dist/utils/output.js.map +0 -1
  782. package/dist/utils/package-json.d.ts +0 -26
  783. package/dist/utils/package-json.js +0 -32
  784. package/dist/utils/package-json.js.map +0 -1
  785. package/dist/utils/package-manager.d.ts +0 -21
  786. package/dist/utils/package-manager.js +0 -166
  787. package/dist/utils/package-manager.js.map +0 -1
  788. package/dist/utils/paths.d.ts +0 -5
  789. package/dist/utils/paths.js +0 -18
  790. package/dist/utils/paths.js.map +0 -1
  791. package/dist/utils/platform.d.ts +0 -8
  792. package/dist/utils/platform.js +0 -7
  793. package/dist/utils/platform.js.map +0 -1
  794. package/dist/utils/recovery-hints.d.ts +0 -37
  795. package/dist/utils/recovery-hints.js +0 -80
  796. package/dist/utils/recovery-hints.js.map +0 -1
  797. package/dist/utils/redact.d.ts +0 -5
  798. package/dist/utils/redact.js +0 -29
  799. package/dist/utils/redact.js.map +0 -1
  800. package/dist/utils/register-subcommand.d.ts +0 -10
  801. package/dist/utils/register-subcommand.js +0 -33
  802. package/dist/utils/register-subcommand.js.map +0 -1
  803. package/dist/utils/semver.d.ts +0 -10
  804. package/dist/utils/semver.js +0 -43
  805. package/dist/utils/semver.js.map +0 -1
  806. package/dist/utils/string.d.ts +0 -1
  807. package/dist/utils/string.js +0 -6
  808. package/dist/utils/string.js.map +0 -1
  809. package/dist/utils/summary-box.d.ts +0 -18
  810. package/dist/utils/summary-box.js +0 -148
  811. package/dist/utils/summary-box.js.map +0 -1
  812. package/dist/utils/table.d.ts +0 -5
  813. package/dist/utils/table.js +0 -18
  814. package/dist/utils/table.js.map +0 -1
  815. package/dist/utils/telemetry-client.d.ts +0 -43
  816. package/dist/utils/telemetry-client.js +0 -171
  817. package/dist/utils/telemetry-client.js.map +0 -1
  818. package/dist/utils/telemetry-store-forward.d.ts +0 -11
  819. package/dist/utils/telemetry-store-forward.js +0 -94
  820. package/dist/utils/telemetry-store-forward.js.map +0 -1
  821. package/dist/utils/telemetry-types.d.ts +0 -100
  822. package/dist/utils/telemetry-types.js +0 -6
  823. package/dist/utils/telemetry-types.js.map +0 -1
  824. package/dist/utils/types.d.ts +0 -113
  825. package/dist/utils/types.js +0 -2
  826. package/dist/utils/types.js.map +0 -1
  827. package/dist/utils/urls.d.ts +0 -13
  828. package/dist/utils/urls.js +0 -14
  829. package/dist/utils/urls.js.map +0 -1
  830. package/dist/utils/vendor/is-unicorn-supported.d.ts +0 -1
  831. package/dist/utils/vendor/is-unicorn-supported.js +0 -21
  832. package/dist/utils/vendor/is-unicorn-supported.js.map +0 -1
  833. package/dist/vanilla-js/vanilla-js-installer-agent.d.ts +0 -4
  834. package/dist/vanilla-js/vanilla-js-installer-agent.js +0 -5
  835. package/dist/vanilla-js/vanilla-js-installer-agent.js.map +0 -1
@@ -1,74 +0,0 @@
1
- /**
2
- * Staging Environment Credentials API Client
3
- *
4
- * Fetches WorkOS staging credentials (client_id, api_key) from the staging API.
5
- * Requires an access token with 'staging-environment:credentials:read' scope.
6
- */
7
- import { logInfo, logError } from '../utils/debug.js';
8
- export class StagingApiError extends Error {
9
- statusCode;
10
- constructor(message, statusCode) {
11
- super(message);
12
- this.statusCode = statusCode;
13
- this.name = 'StagingApiError';
14
- }
15
- }
16
- const STAGING_API_URL = 'https://api.workos.com/x/installer/staging-environment/credentials';
17
- const REQUEST_TIMEOUT_MS = 30_000;
18
- /**
19
- * Fetch staging environment credentials from the WorkOS API.
20
- *
21
- * @param accessToken - Bearer token with staging-environment:credentials:read scope
22
- * @returns StagingCredentials containing clientId and apiKey
23
- * @throws StagingApiError on auth failure, permission denied, or other HTTP errors
24
- */
25
- export async function fetchStagingCredentials(accessToken) {
26
- const controller = new AbortController();
27
- const timeoutId = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS);
28
- logInfo('[staging-api] Fetching credentials from:', STAGING_API_URL);
29
- try {
30
- const res = await fetch(STAGING_API_URL, {
31
- headers: { Authorization: `Bearer ${accessToken}` },
32
- signal: controller.signal,
33
- });
34
- logInfo('[staging-api] Response status:', res.status);
35
- if (!res.ok) {
36
- const text = await res.text().catch(() => '');
37
- logError('[staging-api] Error response:', res.status, text);
38
- if (res.status === 401) {
39
- throw new StagingApiError('Authentication expired. Please log in again.', 401);
40
- }
41
- if (res.status === 403) {
42
- throw new StagingApiError('Access denied. Ensure you have the required permissions.', 403);
43
- }
44
- if (res.status === 404) {
45
- throw new StagingApiError('No staging environment found. Create one in the WorkOS dashboard.', 404);
46
- }
47
- throw new StagingApiError(`Failed to fetch credentials: ${res.status} ${text}`, res.status);
48
- }
49
- const data = (await res.json());
50
- // Handle both camelCase and snake_case responses
51
- const clientId = data.clientId || data.client_id;
52
- const apiKey = data.apiKey || data.api_key;
53
- if (!clientId || !apiKey) {
54
- logError('[staging-api] Invalid response: missing credentials');
55
- throw new StagingApiError('Invalid response: missing clientId or apiKey');
56
- }
57
- logInfo('[staging-api] Credentials fetched successfully');
58
- return { clientId, apiKey };
59
- }
60
- catch (error) {
61
- if (error instanceof StagingApiError)
62
- throw error;
63
- if (error instanceof Error && error.name === 'AbortError') {
64
- logError('[staging-api] Request timed out');
65
- throw new StagingApiError('Request timed out. Check your network connection.');
66
- }
67
- logError('[staging-api] Network error:', error instanceof Error ? error.message : 'Unknown');
68
- throw new StagingApiError(`Network error: ${error instanceof Error ? error.message : 'Unknown error'}`);
69
- }
70
- finally {
71
- clearTimeout(timeoutId);
72
- }
73
- }
74
- //# sourceMappingURL=staging-api.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"staging-api.js","sourceRoot":"","sources":["../../src/lib/staging-api.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Staging Environment Credentials API Client\n *\n * Fetches WorkOS staging credentials (client_id, api_key) from the staging API.\n * Requires an access token with 'staging-environment:credentials:read' scope.\n */\n\nimport { logInfo, logError } from '../utils/debug.js';\n\nexport interface StagingCredentials {\n clientId: string;\n apiKey: string;\n}\n\nexport class StagingApiError extends Error {\n constructor(\n message: string,\n public readonly statusCode?: number,\n ) {\n super(message);\n this.name = 'StagingApiError';\n }\n}\n\nconst STAGING_API_URL = 'https://api.workos.com/x/installer/staging-environment/credentials';\nconst REQUEST_TIMEOUT_MS = 30_000;\n\n/**\n * Fetch staging environment credentials from the WorkOS API.\n *\n * @param accessToken - Bearer token with staging-environment:credentials:read scope\n * @returns StagingCredentials containing clientId and apiKey\n * @throws StagingApiError on auth failure, permission denied, or other HTTP errors\n */\nexport async function fetchStagingCredentials(accessToken: string): Promise<StagingCredentials> {\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS);\n\n logInfo('[staging-api] Fetching credentials from:', STAGING_API_URL);\n try {\n const res = await fetch(STAGING_API_URL, {\n headers: { Authorization: `Bearer ${accessToken}` },\n signal: controller.signal,\n });\n\n logInfo('[staging-api] Response status:', res.status);\n if (!res.ok) {\n const text = await res.text().catch(() => '');\n logError('[staging-api] Error response:', res.status, text);\n\n if (res.status === 401) {\n throw new StagingApiError('Authentication expired. Please log in again.', 401);\n }\n if (res.status === 403) {\n throw new StagingApiError('Access denied. Ensure you have the required permissions.', 403);\n }\n if (res.status === 404) {\n throw new StagingApiError('No staging environment found. Create one in the WorkOS dashboard.', 404);\n }\n\n throw new StagingApiError(`Failed to fetch credentials: ${res.status} ${text}`, res.status);\n }\n\n const data = (await res.json()) as { clientId?: string; apiKey?: string; client_id?: string; api_key?: string };\n\n // Handle both camelCase and snake_case responses\n const clientId = data.clientId || data.client_id;\n const apiKey = data.apiKey || data.api_key;\n\n if (!clientId || !apiKey) {\n logError('[staging-api] Invalid response: missing credentials');\n throw new StagingApiError('Invalid response: missing clientId or apiKey');\n }\n\n logInfo('[staging-api] Credentials fetched successfully');\n return { clientId, apiKey };\n } catch (error) {\n if (error instanceof StagingApiError) throw error;\n if (error instanceof Error && error.name === 'AbortError') {\n logError('[staging-api] Request timed out');\n throw new StagingApiError('Request timed out. Check your network connection.');\n }\n logError('[staging-api] Network error:', error instanceof Error ? error.message : 'Unknown');\n throw new StagingApiError(`Network error: ${error instanceof Error ? error.message : 'Unknown error'}`);\n } finally {\n clearTimeout(timeoutId);\n }\n}\n"]}
@@ -1,21 +0,0 @@
1
- /**
2
- * One-notice-per-run coordinator for the startup stderr notices.
3
- *
4
- * Three middlewares can each want to print a one-line stderr notice at startup:
5
- * the first-run telemetry notice, the unclaimed-environment warning, and the
6
- * MCP banner. Stacking two or three boxes on a single command is noise, so this
7
- * module is the shared latch — whichever fires first calls
8
- * markStartupNoticeShown(), and the lower-priority MCP banner checks
9
- * hasStartupNoticeShown() and defers.
10
- *
11
- * Ordering IS priority: bin.ts runs the telemetry + unclaimed middlewares before
12
- * the MCP banner middleware, so those two always win a contested run. In-memory
13
- * only (a run is a single CLI process); the per-machine "already shown" state is
14
- * persisted separately by each notice.
15
- */
16
- /** Record that a startup notice has displayed this run. */
17
- export declare function markStartupNoticeShown(): void;
18
- /** Whether any startup notice has already displayed this run. */
19
- export declare function hasStartupNoticeShown(): boolean;
20
- /** Reset the latch (for testing). */
21
- export declare function resetStartupNoticeGate(): void;
@@ -1,29 +0,0 @@
1
- /**
2
- * One-notice-per-run coordinator for the startup stderr notices.
3
- *
4
- * Three middlewares can each want to print a one-line stderr notice at startup:
5
- * the first-run telemetry notice, the unclaimed-environment warning, and the
6
- * MCP banner. Stacking two or three boxes on a single command is noise, so this
7
- * module is the shared latch — whichever fires first calls
8
- * markStartupNoticeShown(), and the lower-priority MCP banner checks
9
- * hasStartupNoticeShown() and defers.
10
- *
11
- * Ordering IS priority: bin.ts runs the telemetry + unclaimed middlewares before
12
- * the MCP banner middleware, so those two always win a contested run. In-memory
13
- * only (a run is a single CLI process); the per-machine "already shown" state is
14
- * persisted separately by each notice.
15
- */
16
- let shown = false;
17
- /** Record that a startup notice has displayed this run. */
18
- export function markStartupNoticeShown() {
19
- shown = true;
20
- }
21
- /** Whether any startup notice has already displayed this run. */
22
- export function hasStartupNoticeShown() {
23
- return shown;
24
- }
25
- /** Reset the latch (for testing). */
26
- export function resetStartupNoticeGate() {
27
- shown = false;
28
- }
29
- //# sourceMappingURL=startup-notice-gate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"startup-notice-gate.js","sourceRoot":"","sources":["../../src/lib/startup-notice-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,IAAI,KAAK,GAAG,KAAK,CAAC;AAElB,2DAA2D;AAC3D,MAAM,UAAU,sBAAsB;IACpC,KAAK,GAAG,IAAI,CAAC;AACf,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,qBAAqB;IACnC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,sBAAsB;IACpC,KAAK,GAAG,KAAK,CAAC;AAChB,CAAC","sourcesContent":["/**\n * One-notice-per-run coordinator for the startup stderr notices.\n *\n * Three middlewares can each want to print a one-line stderr notice at startup:\n * the first-run telemetry notice, the unclaimed-environment warning, and the\n * MCP banner. Stacking two or three boxes on a single command is noise, so this\n * module is the shared latch — whichever fires first calls\n * markStartupNoticeShown(), and the lower-priority MCP banner checks\n * hasStartupNoticeShown() and defers.\n *\n * Ordering IS priority: bin.ts runs the telemetry + unclaimed middlewares before\n * the MCP banner middleware, so those two always win a contested run. In-memory\n * only (a run is a single CLI process); the per-machine \"already shown\" state is\n * persisted separately by each notice.\n */\n\nlet shown = false;\n\n/** Record that a startup notice has displayed this run. */\nexport function markStartupNoticeShown(): void {\n shown = true;\n}\n\n/** Whether any startup notice has already displayed this run. */\nexport function hasStartupNoticeShown(): boolean {\n return shown;\n}\n\n/** Reset the latch (for testing). */\nexport function resetStartupNoticeGate(): void {\n shown = false;\n}\n"]}
@@ -1,25 +0,0 @@
1
- /**
2
- * First-run telemetry notice.
3
- *
4
- * Prints a one-time, stderr-only box telling the user that anonymous CLI usage
5
- * telemetry is being collected and how to turn it off. Shown at most once ever
6
- * (backed by the persisted `noticeShownAt` timestamp in preferences.json), only
7
- * in interactive human mode, and never on the machine-readable path.
8
- *
9
- * Mirrors the structural pattern of unclaimed-warning.ts: a per-session guard,
10
- * a `!isJsonMode()` gate, the shared renderStderrBox helper, and a never-throws
11
- * contract so it can never block command execution. The one structural
12
- * difference is persistence — this notice writes `noticeShownAt` the first time
13
- * it actually displays so it never re-shows across runs.
14
- */
15
- /**
16
- * Show the first-run telemetry notice if it has never been displayed.
17
- *
18
- * Gate order is load-bearing: every suppression check runs BEFORE
19
- * markNoticeShown(), so a non-human first run (--json / piped / CI) never
20
- * consumes the one-time display. The flag is set only when the box is actually
21
- * rendered, so a real human eventually sees it. Never throws.
22
- */
23
- export declare function maybeShowTelemetryNotice(): void;
24
- /** Reset session state (for testing). */
25
- export declare function resetTelemetryNoticeState(): void;
@@ -1,59 +0,0 @@
1
- /**
2
- * First-run telemetry notice.
3
- *
4
- * Prints a one-time, stderr-only box telling the user that anonymous CLI usage
5
- * telemetry is being collected and how to turn it off. Shown at most once ever
6
- * (backed by the persisted `noticeShownAt` timestamp in preferences.json), only
7
- * in interactive human mode, and never on the machine-readable path.
8
- *
9
- * Mirrors the structural pattern of unclaimed-warning.ts: a per-session guard,
10
- * a `!isJsonMode()` gate, the shared renderStderrBox helper, and a never-throws
11
- * contract so it can never block command execution. The one structural
12
- * difference is persistence — this notice writes `noticeShownAt` the first time
13
- * it actually displays so it never re-shows across runs.
14
- */
15
- import chalk from 'chalk';
16
- import { isJsonMode } from '../utils/output.js';
17
- import { renderStderrBox } from '../utils/box.js';
18
- import { formatWorkOSCommand } from '../utils/command-invocation.js';
19
- import { isNoticeShown, markNoticeShown, isTelemetryOptedOut } from './preferences.js';
20
- import { markStartupNoticeShown } from './startup-notice-gate.js';
21
- let shownThisSession = false;
22
- /**
23
- * Show the first-run telemetry notice if it has never been displayed.
24
- *
25
- * Gate order is load-bearing: every suppression check runs BEFORE
26
- * markNoticeShown(), so a non-human first run (--json / piped / CI) never
27
- * consumes the one-time display. The flag is set only when the box is actually
28
- * rendered, so a real human eventually sees it. Never throws.
29
- */
30
- export function maybeShowTelemetryNotice() {
31
- try {
32
- if (shownThisSession)
33
- return;
34
- if (isJsonMode())
35
- return; // suppress in --json / non-TTY / CI (output auto-switches to json)
36
- if (isTelemetryOptedOut())
37
- return; // already opted out — nothing to inform
38
- if (isNoticeShown())
39
- return; // already shown once, ever
40
- const optOut = chalk.cyan(formatWorkOSCommand('telemetry opt-out'));
41
- const inner = ` ${chalk.cyan('ℹ')} WorkOS collects anonymous CLI usage telemetry. Run ${optOut} to disable it. `;
42
- renderStderrBox(inner, chalk.cyan);
43
- // Set the per-session guard and persist ONLY after a successful render, so a
44
- // render failure (caught below) lets a later command in this process retry
45
- // rather than silently suppressing the notice for the rest of the session.
46
- shownThisSession = true;
47
- markNoticeShown();
48
- // Claim the one-notice-per-run slot so the lower-priority MCP banner defers.
49
- markStartupNoticeShown();
50
- }
51
- catch {
52
- // Never block command execution.
53
- }
54
- }
55
- /** Reset session state (for testing). */
56
- export function resetTelemetryNoticeState() {
57
- shownThisSession = false;
58
- }
59
- //# sourceMappingURL=telemetry-notice.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"telemetry-notice.js","sourceRoot":"","sources":["../../src/lib/telemetry-notice.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAE7B;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB;IACtC,IAAI,CAAC;QACH,IAAI,gBAAgB;YAAE,OAAO;QAC7B,IAAI,UAAU,EAAE;YAAE,OAAO,CAAC,mEAAmE;QAC7F,IAAI,mBAAmB,EAAE;YAAE,OAAO,CAAC,wCAAwC;QAC3E,IAAI,aAAa,EAAE;YAAE,OAAO,CAAC,2BAA2B;QAExD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,uDAAuD,MAAM,kBAAkB,CAAC;QACjH,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACnC,6EAA6E;QAC7E,2EAA2E;QAC3E,2EAA2E;QAC3E,gBAAgB,GAAG,IAAI,CAAC;QACxB,eAAe,EAAE,CAAC;QAClB,6EAA6E;QAC7E,sBAAsB,EAAE,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,iCAAiC;IACnC,CAAC;AACH,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,yBAAyB;IACvC,gBAAgB,GAAG,KAAK,CAAC;AAC3B,CAAC","sourcesContent":["/**\n * First-run telemetry notice.\n *\n * Prints a one-time, stderr-only box telling the user that anonymous CLI usage\n * telemetry is being collected and how to turn it off. Shown at most once ever\n * (backed by the persisted `noticeShownAt` timestamp in preferences.json), only\n * in interactive human mode, and never on the machine-readable path.\n *\n * Mirrors the structural pattern of unclaimed-warning.ts: a per-session guard,\n * a `!isJsonMode()` gate, the shared renderStderrBox helper, and a never-throws\n * contract so it can never block command execution. The one structural\n * difference is persistence — this notice writes `noticeShownAt` the first time\n * it actually displays so it never re-shows across runs.\n */\n\nimport chalk from 'chalk';\nimport { isJsonMode } from '../utils/output.js';\nimport { renderStderrBox } from '../utils/box.js';\nimport { formatWorkOSCommand } from '../utils/command-invocation.js';\nimport { isNoticeShown, markNoticeShown, isTelemetryOptedOut } from './preferences.js';\nimport { markStartupNoticeShown } from './startup-notice-gate.js';\n\nlet shownThisSession = false;\n\n/**\n * Show the first-run telemetry notice if it has never been displayed.\n *\n * Gate order is load-bearing: every suppression check runs BEFORE\n * markNoticeShown(), so a non-human first run (--json / piped / CI) never\n * consumes the one-time display. The flag is set only when the box is actually\n * rendered, so a real human eventually sees it. Never throws.\n */\nexport function maybeShowTelemetryNotice(): void {\n try {\n if (shownThisSession) return;\n if (isJsonMode()) return; // suppress in --json / non-TTY / CI (output auto-switches to json)\n if (isTelemetryOptedOut()) return; // already opted out — nothing to inform\n if (isNoticeShown()) return; // already shown once, ever\n\n const optOut = chalk.cyan(formatWorkOSCommand('telemetry opt-out'));\n const inner = ` ${chalk.cyan('ℹ')} WorkOS collects anonymous CLI usage telemetry. Run ${optOut} to disable it. `;\n renderStderrBox(inner, chalk.cyan);\n // Set the per-session guard and persist ONLY after a successful render, so a\n // render failure (caught below) lets a later command in this process retry\n // rather than silently suppressing the notice for the rest of the session.\n shownThisSession = true;\n markNoticeShown();\n // Claim the one-notice-per-run slot so the lower-priority MCP banner defers.\n markStartupNoticeShown();\n } catch {\n // Never block command execution.\n }\n}\n\n/** Reset session state (for testing). */\nexport function resetTelemetryNoticeState(): void {\n shownThisSession = false;\n}\n"]}
@@ -1,23 +0,0 @@
1
- /**
2
- * Token refresh client for WorkOS OAuth
3
- */
4
- export interface RefreshResult {
5
- success: boolean;
6
- accessToken?: string;
7
- refreshToken?: string;
8
- expiresAt?: number;
9
- error?: string;
10
- errorType?: 'invalid_grant' | 'network' | 'server' | 'unknown';
11
- }
12
- /**
13
- * Refresh access token using stored refresh token.
14
- *
15
- * @param authkitDomain - The AuthKit domain (e.g., https://auth.workos.com)
16
- * @param clientId - OAuth client ID
17
- * @returns RefreshResult with new tokens or error details
18
- */
19
- export declare function refreshAccessToken(authkitDomain: string, clientId: string): Promise<RefreshResult>;
20
- /**
21
- * Check if token needs refresh (expires within threshold).
22
- */
23
- export declare function tokenNeedsRefresh(expiresAt: number, thresholdMs?: number): boolean;
@@ -1,89 +0,0 @@
1
- /**
2
- * Token refresh client for WorkOS OAuth
3
- */
4
- import { logInfo, logError } from '../utils/debug.js';
5
- import { getCredentials } from './credentials.js';
6
- import { formatWorkOSCommand } from '../utils/command-invocation.js';
7
- const REFRESH_TIMEOUT_MS = 30_000;
8
- /**
9
- * Refresh access token using stored refresh token.
10
- *
11
- * @param authkitDomain - The AuthKit domain (e.g., https://auth.workos.com)
12
- * @param clientId - OAuth client ID
13
- * @returns RefreshResult with new tokens or error details
14
- */
15
- export async function refreshAccessToken(authkitDomain, clientId) {
16
- const creds = getCredentials();
17
- if (!creds?.refreshToken) {
18
- return {
19
- success: false,
20
- error: 'No refresh token available',
21
- errorType: 'invalid_grant',
22
- };
23
- }
24
- const tokenUrl = `${authkitDomain}/oauth2/token`;
25
- logInfo('[token-refresh] Attempting token refresh');
26
- try {
27
- const controller = new AbortController();
28
- const timeout = setTimeout(() => controller.abort(), REFRESH_TIMEOUT_MS);
29
- const response = await fetch(tokenUrl, {
30
- method: 'POST',
31
- headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
32
- body: new URLSearchParams({
33
- grant_type: 'refresh_token',
34
- refresh_token: creds.refreshToken,
35
- client_id: clientId,
36
- }),
37
- signal: controller.signal,
38
- });
39
- clearTimeout(timeout);
40
- if (!response.ok) {
41
- const errorData = (await response.json());
42
- logError('[token-refresh] Refresh failed:', errorData.error);
43
- if (errorData.error === 'invalid_grant') {
44
- return {
45
- success: false,
46
- error: `Session expired. Run \`${formatWorkOSCommand('auth login')}\` to re-authenticate.`,
47
- errorType: 'invalid_grant',
48
- };
49
- }
50
- return {
51
- success: false,
52
- error: errorData.error_description || errorData.error,
53
- errorType: 'server',
54
- };
55
- }
56
- const data = (await response.json());
57
- const expiresAt = Date.now() + data.expires_in * 1000;
58
- logInfo('[token-refresh] Token refreshed successfully, expires:', new Date(expiresAt).toISOString());
59
- return {
60
- success: true,
61
- accessToken: data.access_token,
62
- refreshToken: data.refresh_token, // May be rotated
63
- expiresAt,
64
- };
65
- }
66
- catch (error) {
67
- if (error instanceof Error && error.name === 'AbortError') {
68
- logError('[token-refresh] Refresh timed out');
69
- return {
70
- success: false,
71
- error: 'Token refresh timed out',
72
- errorType: 'network',
73
- };
74
- }
75
- logError('[token-refresh] Network error:', error);
76
- return {
77
- success: false,
78
- error: `Network error: ${error.message}`,
79
- errorType: 'network',
80
- };
81
- }
82
- }
83
- /**
84
- * Check if token needs refresh (expires within threshold).
85
- */
86
- export function tokenNeedsRefresh(expiresAt, thresholdMs = 2 * 60 * 1000) {
87
- return Date.now() + thresholdMs >= expiresAt;
88
- }
89
- //# sourceMappingURL=token-refresh-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"token-refresh-client.js","sourceRoot":"","sources":["../../src/lib/token-refresh-client.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Token refresh client for WorkOS OAuth\n */\n\nimport { logInfo, logError } from '../utils/debug.js';\nimport { getCredentials } from './credentials.js';\nimport { formatWorkOSCommand } from '../utils/command-invocation.js';\n\nexport interface RefreshResult {\n success: boolean;\n accessToken?: string;\n refreshToken?: string;\n expiresAt?: number;\n error?: string;\n errorType?: 'invalid_grant' | 'network' | 'server' | 'unknown';\n}\n\ninterface TokenRefreshResponse {\n access_token: string;\n refresh_token?: string;\n token_type: string;\n expires_in: number;\n}\n\ninterface TokenErrorResponse {\n error: string;\n error_description?: string;\n}\n\nconst REFRESH_TIMEOUT_MS = 30_000;\n\n/**\n * Refresh access token using stored refresh token.\n *\n * @param authkitDomain - The AuthKit domain (e.g., https://auth.workos.com)\n * @param clientId - OAuth client ID\n * @returns RefreshResult with new tokens or error details\n */\nexport async function refreshAccessToken(authkitDomain: string, clientId: string): Promise<RefreshResult> {\n const creds = getCredentials();\n\n if (!creds?.refreshToken) {\n return {\n success: false,\n error: 'No refresh token available',\n errorType: 'invalid_grant',\n };\n }\n\n const tokenUrl = `${authkitDomain}/oauth2/token`;\n logInfo('[token-refresh] Attempting token refresh');\n\n try {\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), REFRESH_TIMEOUT_MS);\n\n const response = await fetch(tokenUrl, {\n method: 'POST',\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\n body: new URLSearchParams({\n grant_type: 'refresh_token',\n refresh_token: creds.refreshToken,\n client_id: clientId,\n }),\n signal: controller.signal,\n });\n\n clearTimeout(timeout);\n\n if (!response.ok) {\n const errorData = (await response.json()) as TokenErrorResponse;\n logError('[token-refresh] Refresh failed:', errorData.error);\n\n if (errorData.error === 'invalid_grant') {\n return {\n success: false,\n error: `Session expired. Run \\`${formatWorkOSCommand('auth login')}\\` to re-authenticate.`,\n errorType: 'invalid_grant',\n };\n }\n\n return {\n success: false,\n error: errorData.error_description || errorData.error,\n errorType: 'server',\n };\n }\n\n const data = (await response.json()) as TokenRefreshResponse;\n const expiresAt = Date.now() + data.expires_in * 1000;\n\n logInfo('[token-refresh] Token refreshed successfully, expires:', new Date(expiresAt).toISOString());\n\n return {\n success: true,\n accessToken: data.access_token,\n refreshToken: data.refresh_token, // May be rotated\n expiresAt,\n };\n } catch (error) {\n if (error instanceof Error && error.name === 'AbortError') {\n logError('[token-refresh] Refresh timed out');\n return {\n success: false,\n error: 'Token refresh timed out',\n errorType: 'network',\n };\n }\n\n logError('[token-refresh] Network error:', error);\n return {\n success: false,\n error: `Network error: ${(error as Error).message}`,\n errorType: 'network',\n };\n }\n}\n\n/**\n * Check if token needs refresh (expires within threshold).\n */\nexport function tokenNeedsRefresh(expiresAt: number, thresholdMs: number = 2 * 60 * 1000): boolean {\n return Date.now() + thresholdMs >= expiresAt;\n}\n"]}
@@ -1,12 +0,0 @@
1
- import { Credentials } from './credentials.js';
2
- export interface TokenValidationResult {
3
- success: boolean;
4
- credentials?: Credentials;
5
- error?: string;
6
- }
7
- /**
8
- * Check if the current token is valid.
9
- * If expired, returns an error prompting re-authentication.
10
- * No refresh is attempted here; callers decide whether to refresh or re-authenticate.
11
- */
12
- export declare function ensureValidToken(): Promise<TokenValidationResult>;
@@ -1,27 +0,0 @@
1
- import { getCredentials, isTokenExpired } from './credentials.js';
2
- import { logInfo } from '../utils/debug.js';
3
- import { formatWorkOSCommand } from '../utils/command-invocation.js';
4
- /**
5
- * Check if the current token is valid.
6
- * If expired, returns an error prompting re-authentication.
7
- * No refresh is attempted here; callers decide whether to refresh or re-authenticate.
8
- */
9
- export async function ensureValidToken() {
10
- const creds = getCredentials();
11
- if (!creds) {
12
- logInfo('[ensureValidToken] No credentials found');
13
- return { success: false, error: 'Not authenticated' };
14
- }
15
- logInfo(`[ensureValidToken] Token expiresAt: ${new Date(creds.expiresAt).toISOString()}`);
16
- logInfo(`[ensureValidToken] Current time: ${new Date().toISOString()}`);
17
- if (isTokenExpired(creds)) {
18
- logInfo('[ensureValidToken] Token expired, re-authentication required');
19
- return {
20
- success: false,
21
- error: `Session expired. Run \`${formatWorkOSCommand('auth login')}\` to re-authenticate.`,
22
- };
23
- }
24
- logInfo('[ensureValidToken] Token valid');
25
- return { success: true, credentials: creds };
26
- }
27
- //# sourceMappingURL=token-refresh.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"token-refresh.js","sourceRoot":"","sources":["../../src/lib/token-refresh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAe,MAAM,kBAAkB,CAAC;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAQrE;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAE/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,yCAAyC,CAAC,CAAC;QACnD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC;IACxD,CAAC;IAED,OAAO,CAAC,uCAAuC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC1F,OAAO,CAAC,oCAAoC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAExE,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,8DAA8D,CAAC,CAAC;QACxE,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,0BAA0B,mBAAmB,CAAC,YAAY,CAAC,wBAAwB;SAC3F,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,gCAAgC,CAAC,CAAC;IAC1C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AAC/C,CAAC","sourcesContent":["import { getCredentials, isTokenExpired, Credentials } from './credentials.js';\nimport { logInfo } from '../utils/debug.js';\nimport { formatWorkOSCommand } from '../utils/command-invocation.js';\n\nexport interface TokenValidationResult {\n success: boolean;\n credentials?: Credentials;\n error?: string;\n}\n\n/**\n * Check if the current token is valid.\n * If expired, returns an error prompting re-authentication.\n * No refresh is attempted here; callers decide whether to refresh or re-authenticate.\n */\nexport async function ensureValidToken(): Promise<TokenValidationResult> {\n const creds = getCredentials();\n\n if (!creds) {\n logInfo('[ensureValidToken] No credentials found');\n return { success: false, error: 'Not authenticated' };\n }\n\n logInfo(`[ensureValidToken] Token expiresAt: ${new Date(creds.expiresAt).toISOString()}`);\n logInfo(`[ensureValidToken] Current time: ${new Date().toISOString()}`);\n\n if (isTokenExpired(creds)) {\n logInfo('[ensureValidToken] Token expired, re-authentication required');\n return {\n success: false,\n error: `Session expired. Run \\`${formatWorkOSCommand('auth login')}\\` to re-authenticate.`,\n };\n }\n\n logInfo('[ensureValidToken] Token valid');\n return { success: true, credentials: creds };\n}\n"]}
@@ -1,42 +0,0 @@
1
- /**
2
- * Unclaimed Environment Provisioning API Client
3
- *
4
- * Provisions unauthenticated unclaimed environments and generates claim nonces.
5
- * No authentication required for provisioning — claim tokens are used for
6
- * subsequent claim operations.
7
- */
8
- export interface UnclaimedEnvProvisionResult {
9
- clientId: string;
10
- apiKey: string;
11
- claimToken: string;
12
- authkitDomain: string;
13
- }
14
- export interface ClaimNonceResult {
15
- nonce: string;
16
- alreadyClaimed: false;
17
- }
18
- export interface AlreadyClaimedResult {
19
- alreadyClaimed: true;
20
- }
21
- export type ClaimNonceResponse = ClaimNonceResult | AlreadyClaimedResult;
22
- export declare class UnclaimedEnvApiError extends Error {
23
- readonly statusCode?: number | undefined;
24
- constructor(message: string, statusCode?: number | undefined);
25
- }
26
- /**
27
- * Provision a new unclaimed environment. No authentication required.
28
- *
29
- * @returns UnclaimedEnvProvisionResult containing clientId, apiKey, claimToken, and authkitDomain
30
- * @throws UnclaimedEnvApiError on rate limit, network failure, timeout, or server error
31
- */
32
- export declare function provisionUnclaimedEnvironment(): Promise<UnclaimedEnvProvisionResult>;
33
- /**
34
- * Generate a claim nonce from a claim token + client ID.
35
- * Returns { alreadyClaimed: true } if environment was already claimed.
36
- *
37
- * @param clientId - The client ID of the unclaimed environment
38
- * @param claimToken - The claim token from provisioning
39
- * @returns ClaimNonceResponse — either a nonce or already-claimed indicator
40
- * @throws UnclaimedEnvApiError on invalid token, not found, or server error
41
- */
42
- export declare function createClaimNonce(clientId: string, claimToken: string): Promise<ClaimNonceResponse>;
@@ -1,139 +0,0 @@
1
- /**
2
- * Unclaimed Environment Provisioning API Client
3
- *
4
- * Provisions unauthenticated unclaimed environments and generates claim nonces.
5
- * No authentication required for provisioning — claim tokens are used for
6
- * subsequent claim operations.
7
- */
8
- import { logInfo, logError } from '../utils/debug.js';
9
- import { resolveApiBaseUrl } from './api-key.js';
10
- export class UnclaimedEnvApiError extends Error {
11
- statusCode;
12
- constructor(message, statusCode) {
13
- super(message);
14
- this.statusCode = statusCode;
15
- this.name = 'UnclaimedEnvApiError';
16
- }
17
- }
18
- const REQUEST_TIMEOUT_MS = 30_000;
19
- /**
20
- * Provision a new unclaimed environment. No authentication required.
21
- *
22
- * @returns UnclaimedEnvProvisionResult containing clientId, apiKey, claimToken, and authkitDomain
23
- * @throws UnclaimedEnvApiError on rate limit, network failure, timeout, or server error
24
- */
25
- export async function provisionUnclaimedEnvironment() {
26
- const url = `${resolveApiBaseUrl()}/x/one-shot-environments`;
27
- const controller = new AbortController();
28
- const timeoutId = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS);
29
- logInfo('[unclaimed-env-api] Provisioning unclaimed environment:', url);
30
- try {
31
- const res = await fetch(url, {
32
- method: 'POST',
33
- headers: { 'Content-Type': 'application/json' },
34
- signal: controller.signal,
35
- });
36
- logInfo('[unclaimed-env-api] Response status:', res.status);
37
- if (!res.ok) {
38
- const text = await res.text().catch(() => '');
39
- logError('[unclaimed-env-api] Error response:', res.status, text);
40
- if (res.status === 429) {
41
- throw new UnclaimedEnvApiError('Rate limited. Please wait a moment and try again.', 429);
42
- }
43
- throw new UnclaimedEnvApiError(`Server error: ${res.status}`, res.status);
44
- }
45
- const data = (await res.json());
46
- // Handle both camelCase and snake_case responses (API may respond in either format)
47
- const clientId = data.clientId ?? data.client_id;
48
- const apiKey = data.apiKey ?? data.api_key;
49
- const claimToken = data.claimToken ?? data.claim_token;
50
- const authkitDomain = data.authkitDomain ?? data.authkit_domain;
51
- if (!clientId || !apiKey || !claimToken || !authkitDomain) {
52
- logError('[unclaimed-env-api] Invalid response: missing required fields');
53
- throw new UnclaimedEnvApiError('Invalid response: missing required fields');
54
- }
55
- logInfo('[unclaimed-env-api] Unclaimed environment provisioned successfully');
56
- return { clientId, apiKey, claimToken, authkitDomain };
57
- }
58
- catch (error) {
59
- if (error instanceof UnclaimedEnvApiError)
60
- throw error;
61
- if (error instanceof Error && error.name === 'AbortError') {
62
- logError('[unclaimed-env-api] Request timed out');
63
- throw new UnclaimedEnvApiError('Request timed out.');
64
- }
65
- logError('[unclaimed-env-api] Network error:', error instanceof Error ? error.message : 'Unknown');
66
- throw new UnclaimedEnvApiError(`Network error: ${error instanceof Error ? error.message : 'Unknown error'}`);
67
- }
68
- finally {
69
- clearTimeout(timeoutId);
70
- }
71
- }
72
- /**
73
- * Generate a claim nonce from a claim token + client ID.
74
- * Returns { alreadyClaimed: true } if environment was already claimed.
75
- *
76
- * @param clientId - The client ID of the unclaimed environment
77
- * @param claimToken - The claim token from provisioning
78
- * @returns ClaimNonceResponse — either a nonce or already-claimed indicator
79
- * @throws UnclaimedEnvApiError on invalid token, not found, or server error
80
- */
81
- export async function createClaimNonce(clientId, claimToken) {
82
- const url = `${resolveApiBaseUrl()}/x/one-shot-environments/claim-nonces`;
83
- const controller = new AbortController();
84
- const timeoutId = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS);
85
- logInfo('[unclaimed-env-api] Creating claim nonce:', url);
86
- try {
87
- const res = await fetch(url, {
88
- method: 'POST',
89
- headers: { 'Content-Type': 'application/json' },
90
- body: JSON.stringify({ client_id: clientId, claim_token: claimToken }),
91
- signal: controller.signal,
92
- });
93
- logInfo('[unclaimed-env-api] Response status:', res.status);
94
- if (!res.ok) {
95
- const text = await res.text().catch(() => '');
96
- logError('[unclaimed-env-api] Error response:', res.status, text);
97
- if (res.status === 401) {
98
- throw new UnclaimedEnvApiError('Invalid claim token.', 401);
99
- }
100
- if (res.status === 404) {
101
- throw new UnclaimedEnvApiError('Environment not found.', 404);
102
- }
103
- if (res.status === 409) {
104
- logInfo('[unclaimed-env-api] Environment already claimed (409)');
105
- return { alreadyClaimed: true };
106
- }
107
- if (res.status === 429) {
108
- throw new UnclaimedEnvApiError('Rate limited. Please wait a moment and try again.', 429);
109
- }
110
- throw new UnclaimedEnvApiError(`Server error: ${res.status}`, res.status);
111
- }
112
- const data = (await res.json());
113
- const alreadyClaimed = data.alreadyClaimed ?? data.already_claimed;
114
- if (alreadyClaimed) {
115
- logInfo('[unclaimed-env-api] Environment already claimed');
116
- return { alreadyClaimed: true };
117
- }
118
- if (!data.nonce) {
119
- logError('[unclaimed-env-api] Invalid response: missing nonce');
120
- throw new UnclaimedEnvApiError('Invalid response: missing nonce');
121
- }
122
- logInfo('[unclaimed-env-api] Claim nonce created successfully');
123
- return { nonce: data.nonce, alreadyClaimed: false };
124
- }
125
- catch (error) {
126
- if (error instanceof UnclaimedEnvApiError)
127
- throw error;
128
- if (error instanceof Error && error.name === 'AbortError') {
129
- logError('[unclaimed-env-api] Request timed out');
130
- throw new UnclaimedEnvApiError('Request timed out.');
131
- }
132
- logError('[unclaimed-env-api] Network error:', error instanceof Error ? error.message : 'Unknown');
133
- throw new UnclaimedEnvApiError(`Network error: ${error instanceof Error ? error.message : 'Unknown error'}`);
134
- }
135
- finally {
136
- clearTimeout(timeoutId);
137
- }
138
- }
139
- //# sourceMappingURL=unclaimed-env-api.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"unclaimed-env-api.js","sourceRoot":"","sources":["../../src/lib/unclaimed-env-api.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Unclaimed Environment Provisioning API Client\n *\n * Provisions unauthenticated unclaimed environments and generates claim nonces.\n * No authentication required for provisioning — claim tokens are used for\n * subsequent claim operations.\n */\n\nimport { logInfo, logError } from '../utils/debug.js';\nimport { resolveApiBaseUrl } from './api-key.js';\n\nexport interface UnclaimedEnvProvisionResult {\n clientId: string;\n apiKey: string;\n claimToken: string;\n authkitDomain: string;\n}\n\nexport interface ClaimNonceResult {\n nonce: string;\n alreadyClaimed: false;\n}\n\nexport interface AlreadyClaimedResult {\n alreadyClaimed: true;\n}\n\nexport type ClaimNonceResponse = ClaimNonceResult | AlreadyClaimedResult;\n\nexport class UnclaimedEnvApiError extends Error {\n constructor(\n message: string,\n public readonly statusCode?: number,\n ) {\n super(message);\n this.name = 'UnclaimedEnvApiError';\n }\n}\n\nconst REQUEST_TIMEOUT_MS = 30_000;\n\n/**\n * Provision a new unclaimed environment. No authentication required.\n *\n * @returns UnclaimedEnvProvisionResult containing clientId, apiKey, claimToken, and authkitDomain\n * @throws UnclaimedEnvApiError on rate limit, network failure, timeout, or server error\n */\nexport async function provisionUnclaimedEnvironment(): Promise<UnclaimedEnvProvisionResult> {\n const url = `${resolveApiBaseUrl()}/x/one-shot-environments`;\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS);\n\n logInfo('[unclaimed-env-api] Provisioning unclaimed environment:', url);\n try {\n const res = await fetch(url, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n signal: controller.signal,\n });\n\n logInfo('[unclaimed-env-api] Response status:', res.status);\n if (!res.ok) {\n const text = await res.text().catch(() => '');\n logError('[unclaimed-env-api] Error response:', res.status, text);\n\n if (res.status === 429) {\n throw new UnclaimedEnvApiError('Rate limited. Please wait a moment and try again.', 429);\n }\n\n throw new UnclaimedEnvApiError(`Server error: ${res.status}`, res.status);\n }\n\n const data = (await res.json()) as {\n clientId?: string;\n apiKey?: string;\n claimToken?: string;\n authkitDomain?: string;\n client_id?: string;\n api_key?: string;\n claim_token?: string;\n authkit_domain?: string;\n };\n\n // Handle both camelCase and snake_case responses (API may respond in either format)\n const clientId = data.clientId ?? data.client_id;\n const apiKey = data.apiKey ?? data.api_key;\n const claimToken = data.claimToken ?? data.claim_token;\n const authkitDomain = data.authkitDomain ?? data.authkit_domain;\n\n if (!clientId || !apiKey || !claimToken || !authkitDomain) {\n logError('[unclaimed-env-api] Invalid response: missing required fields');\n throw new UnclaimedEnvApiError('Invalid response: missing required fields');\n }\n\n logInfo('[unclaimed-env-api] Unclaimed environment provisioned successfully');\n return { clientId, apiKey, claimToken, authkitDomain };\n } catch (error) {\n if (error instanceof UnclaimedEnvApiError) throw error;\n if (error instanceof Error && error.name === 'AbortError') {\n logError('[unclaimed-env-api] Request timed out');\n throw new UnclaimedEnvApiError('Request timed out.');\n }\n logError('[unclaimed-env-api] Network error:', error instanceof Error ? error.message : 'Unknown');\n throw new UnclaimedEnvApiError(`Network error: ${error instanceof Error ? error.message : 'Unknown error'}`);\n } finally {\n clearTimeout(timeoutId);\n }\n}\n\n/**\n * Generate a claim nonce from a claim token + client ID.\n * Returns { alreadyClaimed: true } if environment was already claimed.\n *\n * @param clientId - The client ID of the unclaimed environment\n * @param claimToken - The claim token from provisioning\n * @returns ClaimNonceResponse — either a nonce or already-claimed indicator\n * @throws UnclaimedEnvApiError on invalid token, not found, or server error\n */\nexport async function createClaimNonce(clientId: string, claimToken: string): Promise<ClaimNonceResponse> {\n const url = `${resolveApiBaseUrl()}/x/one-shot-environments/claim-nonces`;\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS);\n\n logInfo('[unclaimed-env-api] Creating claim nonce:', url);\n try {\n const res = await fetch(url, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ client_id: clientId, claim_token: claimToken }),\n signal: controller.signal,\n });\n\n logInfo('[unclaimed-env-api] Response status:', res.status);\n if (!res.ok) {\n const text = await res.text().catch(() => '');\n logError('[unclaimed-env-api] Error response:', res.status, text);\n\n if (res.status === 401) {\n throw new UnclaimedEnvApiError('Invalid claim token.', 401);\n }\n if (res.status === 404) {\n throw new UnclaimedEnvApiError('Environment not found.', 404);\n }\n if (res.status === 409) {\n logInfo('[unclaimed-env-api] Environment already claimed (409)');\n return { alreadyClaimed: true };\n }\n if (res.status === 429) {\n throw new UnclaimedEnvApiError('Rate limited. Please wait a moment and try again.', 429);\n }\n\n throw new UnclaimedEnvApiError(`Server error: ${res.status}`, res.status);\n }\n\n const data = (await res.json()) as {\n nonce?: string;\n alreadyClaimed?: boolean;\n already_claimed?: boolean;\n };\n\n const alreadyClaimed = data.alreadyClaimed ?? data.already_claimed;\n if (alreadyClaimed) {\n logInfo('[unclaimed-env-api] Environment already claimed');\n return { alreadyClaimed: true };\n }\n\n if (!data.nonce) {\n logError('[unclaimed-env-api] Invalid response: missing nonce');\n throw new UnclaimedEnvApiError('Invalid response: missing nonce');\n }\n\n logInfo('[unclaimed-env-api] Claim nonce created successfully');\n return { nonce: data.nonce, alreadyClaimed: false };\n } catch (error) {\n if (error instanceof UnclaimedEnvApiError) throw error;\n if (error instanceof Error && error.name === 'AbortError') {\n logError('[unclaimed-env-api] Request timed out');\n throw new UnclaimedEnvApiError('Request timed out.');\n }\n logError('[unclaimed-env-api] Network error:', error instanceof Error ? error.message : 'Unknown');\n throw new UnclaimedEnvApiError(`Network error: ${error instanceof Error ? error.message : 'Unknown error'}`);\n } finally {\n clearTimeout(timeoutId);\n }\n}\n"]}