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 +0,0 @@
1
- {"version":3,"file":"redact.js","sourceRoot":"","sources":["../../src/utils/redact.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,YAAY,CAAC;IAEvD,gEAAgE;IAChE,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEnD,OAAO,GAAG,MAAM,MAAM,MAAM,EAAE,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAQ;IACxC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,GAAG,CAAC;IAExD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC;IAE5D,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAE5B,kBAAkB;QAClB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACzD,QAAQ,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;QACD,oCAAoC;aAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACrD,QAAQ,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC","sourcesContent":["/**\n * Redact sensitive values from logs\n */\n\nexport function redactApiKey(apiKey: string): string {\n if (!apiKey || apiKey.length < 12) return '[REDACTED]';\n\n // Show format: sk_test_xxx...xxx (first 8 chars + last 3 chars)\n const prefix = apiKey.substring(0, 8);\n const suffix = apiKey.substring(apiKey.length - 3);\n\n return `${prefix}...${suffix}`;\n}\n\nexport function redactCredentials(obj: any): any {\n if (typeof obj !== 'object' || obj === null) return obj;\n\n const redacted = Array.isArray(obj) ? [...obj] : { ...obj };\n\n for (const key in redacted) {\n const value = redacted[key];\n\n // Redact API keys\n if (typeof value === 'string' && value.startsWith('sk_')) {\n redacted[key] = redactApiKey(value);\n }\n // Recursively redact nested objects\n else if (typeof value === 'object' && value !== null) {\n redacted[key] = redactCredentials(value);\n }\n }\n\n return redacted;\n}\n"]}
@@ -1,10 +0,0 @@
1
- import type { Argv } from 'yargs';
2
- /**
3
- * Register a subcommand with auto-enriched description.
4
- * Replays the builder on a probe yargs instance to discover demandOption fields,
5
- * then appends required flag names to the description so parent help shows them.
6
- *
7
- * Note: enrichment targets the description, not the command string, because yargs
8
- * interprets `<...>` in command strings as required positional arguments.
9
- */
10
- export declare function registerSubcommand<T>(parentYargs: Argv<T>, usage: string, description: string, builder: (y: Argv) => Argv, handler: (argv: any) => Promise<void>): Argv<T>;
@@ -1,33 +0,0 @@
1
- import yargs from 'yargs';
2
- /**
3
- * Register a subcommand with auto-enriched description.
4
- * Replays the builder on a probe yargs instance to discover demandOption fields,
5
- * then appends required flag names to the description so parent help shows them.
6
- *
7
- * Note: enrichment targets the description, not the command string, because yargs
8
- * interprets `<...>` in command strings as required positional arguments.
9
- */
10
- export function registerSubcommand(parentYargs, usage, description, builder, handler) {
11
- let enrichedDescription = description;
12
- try {
13
- const probe = yargs([]);
14
- builder(probe);
15
- // getOptions() exists at runtime but is not in yargs' public type definitions
16
- const opts = probe.getOptions();
17
- const demanded = Object.keys(opts.demandedOptions || {}).filter((k) => !['help', 'version'].includes(k));
18
- // Exclude flags that correspond to positionals already visible in the usage string
19
- const positionalNames = new Set([...usage.matchAll(/<([^>]+?)(?:\.\.\.)?>/g)].map((m) => m[1]));
20
- const namedOnly = demanded.filter((k) => !positionalNames.has(k));
21
- // Skip enrichment when the description already mentions every flag
22
- const newFlags = namedOnly.filter((k) => !description.includes(`--${k}`));
23
- if (newFlags.length > 0) {
24
- const flagList = newFlags.map((k) => `--${k}`).join(', ');
25
- enrichedDescription = `${description} (requires ${flagList})`;
26
- }
27
- }
28
- catch {
29
- // Builder threw during probe — fall back to unenriched description
30
- }
31
- return parentYargs.command(usage, enrichedDescription, builder, handler);
32
- }
33
- //# sourceMappingURL=register-subcommand.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"register-subcommand.js","sourceRoot":"","sources":["../../src/utils/register-subcommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,WAAoB,EACpB,KAAa,EACb,WAAmB,EACnB,OAA0B,EAC1B,OAAqC;IAErC,IAAI,mBAAmB,GAAG,WAAW,CAAC;IAEtC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,CAAC;QACf,8EAA8E;QAC9E,MAAM,IAAI,GAAI,KAAmD,CAAC,UAAU,EAAE,CAAC;QAC/E,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzG,mFAAmF;QACnF,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChG,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAElE,mEAAmE;QACnE,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1E,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1D,mBAAmB,GAAG,GAAG,WAAW,cAAc,QAAQ,GAAG,CAAC;QAChE,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,mEAAmE;IACrE,CAAC;IAED,OAAO,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC3E,CAAC","sourcesContent":["import yargs from 'yargs';\nimport type { Argv } from 'yargs';\n\ninterface YargsOptions {\n demandedOptions: Record<string, unknown>;\n}\n\n/**\n * Register a subcommand with auto-enriched description.\n * Replays the builder on a probe yargs instance to discover demandOption fields,\n * then appends required flag names to the description so parent help shows them.\n *\n * Note: enrichment targets the description, not the command string, because yargs\n * interprets `<...>` in command strings as required positional arguments.\n */\nexport function registerSubcommand<T>(\n parentYargs: Argv<T>,\n usage: string,\n description: string,\n builder: (y: Argv) => Argv,\n handler: (argv: any) => Promise<void>,\n): Argv<T> {\n let enrichedDescription = description;\n\n try {\n const probe = yargs([]);\n builder(probe);\n // getOptions() exists at runtime but is not in yargs' public type definitions\n const opts = (probe as unknown as { getOptions(): YargsOptions }).getOptions();\n const demanded = Object.keys(opts.demandedOptions || {}).filter((k) => !['help', 'version'].includes(k));\n\n // Exclude flags that correspond to positionals already visible in the usage string\n const positionalNames = new Set([...usage.matchAll(/<([^>]+?)(?:\\.\\.\\.)?>/g)].map((m) => m[1]));\n const namedOnly = demanded.filter((k) => !positionalNames.has(k));\n\n // Skip enrichment when the description already mentions every flag\n const newFlags = namedOnly.filter((k) => !description.includes(`--${k}`));\n if (newFlags.length > 0) {\n const flagList = newFlags.map((k) => `--${k}`).join(', ');\n enrichedDescription = `${description} (requires ${flagList})`;\n }\n } catch {\n // Builder threw during probe — fall back to unenriched description\n }\n\n return parentYargs.command(usage, enrichedDescription, builder, handler);\n}\n"]}
@@ -1,10 +0,0 @@
1
- export declare function fulfillsVersionRange({ version, acceptableVersions, canBeLatest, }: {
2
- version: string;
3
- acceptableVersions: string;
4
- canBeLatest: boolean;
5
- }): boolean;
6
- /**
7
- * Get a version bucket string for analytics.
8
- * Returns format like "15.x" for versions >= minimumMajor, or "<{minimumMajor}.0.0" otherwise.
9
- */
10
- export declare function getVersionBucket(version: string | undefined, minimumMajor: number): string;
@@ -1,43 +0,0 @@
1
- import { major, minVersion, satisfies, subset, valid, validRange } from 'semver';
2
- export function fulfillsVersionRange({ version, acceptableVersions, canBeLatest, }) {
3
- if (version === 'latest') {
4
- return canBeLatest;
5
- }
6
- let cleanedUserVersion, isRange;
7
- if (valid(version)) {
8
- cleanedUserVersion = valid(version);
9
- isRange = false;
10
- }
11
- else if (validRange(version)) {
12
- cleanedUserVersion = validRange(version);
13
- isRange = true;
14
- }
15
- return (
16
- // If the given version is a bogus format, this will still be undefined and we'll automatically reject it
17
- !!cleanedUserVersion &&
18
- (isRange ? subset(cleanedUserVersion, acceptableVersions) : satisfies(cleanedUserVersion, acceptableVersions)));
19
- }
20
- /**
21
- * Get a version bucket string for analytics.
22
- * Returns format like "15.x" for versions >= minimumMajor, or "<{minimumMajor}.0.0" otherwise.
23
- */
24
- export function getVersionBucket(version, minimumMajor) {
25
- if (!version) {
26
- return 'none';
27
- }
28
- try {
29
- const minVer = minVersion(version);
30
- if (!minVer) {
31
- return 'invalid';
32
- }
33
- const majorVersion = major(minVer);
34
- if (majorVersion >= minimumMajor) {
35
- return `${majorVersion}.x`;
36
- }
37
- return `<${minimumMajor}.0.0`;
38
- }
39
- catch {
40
- return 'unknown';
41
- }
42
- }
43
- //# sourceMappingURL=semver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"semver.js","sourceRoot":"","sources":["../../src/utils/semver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEjF,MAAM,UAAU,oBAAoB,CAAC,EACnC,OAAO,EACP,kBAAkB,EAClB,WAAW,GAKZ;IACC,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,IAAI,kBAAkB,EAAE,OAAO,CAAC;IAEhC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACnB,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;QACpC,OAAO,GAAG,KAAK,CAAC;IAClB,CAAC;SAAM,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,kBAAkB,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAED,OAAO;IACL,yGAAyG;IACzG,CAAC,CAAC,kBAAkB;QACpB,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CAC/G,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAA2B,EAAE,YAAoB;IAChF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,YAAY,IAAI,YAAY,EAAE,CAAC;YACjC,OAAO,GAAG,YAAY,IAAI,CAAC;QAC7B,CAAC;QACD,OAAO,IAAI,YAAY,MAAM,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC","sourcesContent":["import { major, minVersion, satisfies, subset, valid, validRange } from 'semver';\n\nexport function fulfillsVersionRange({\n version,\n acceptableVersions,\n canBeLatest,\n}: {\n version: string;\n acceptableVersions: string;\n canBeLatest: boolean;\n}): boolean {\n if (version === 'latest') {\n return canBeLatest;\n }\n\n let cleanedUserVersion, isRange;\n\n if (valid(version)) {\n cleanedUserVersion = valid(version);\n isRange = false;\n } else if (validRange(version)) {\n cleanedUserVersion = validRange(version);\n isRange = true;\n }\n\n return (\n // If the given version is a bogus format, this will still be undefined and we'll automatically reject it\n !!cleanedUserVersion &&\n (isRange ? subset(cleanedUserVersion, acceptableVersions) : satisfies(cleanedUserVersion, acceptableVersions))\n );\n}\n\n/**\n * Get a version bucket string for analytics.\n * Returns format like \"15.x\" for versions >= minimumMajor, or \"<{minimumMajor}.0.0\" otherwise.\n */\nexport function getVersionBucket(version: string | undefined, minimumMajor: number): string {\n if (!version) {\n return 'none';\n }\n\n try {\n const minVer = minVersion(version);\n if (!minVer) {\n return 'invalid';\n }\n const majorVersion = major(minVer);\n if (majorVersion >= minimumMajor) {\n return `${majorVersion}.x`;\n }\n return `<${minimumMajor}.0.0`;\n } catch {\n return 'unknown';\n }\n}\n"]}
@@ -1 +0,0 @@
1
- export declare function stripAnsii(str: string): string;
@@ -1,6 +0,0 @@
1
- export function stripAnsii(str) {
2
- return str.replace(
3
- // eslint-disable-next-line no-control-regex
4
- /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, '');
5
- }
6
- //# sourceMappingURL=string.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"string.js","sourceRoot":"","sources":["../../src/utils/string.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,OAAO,GAAG,CAAC,OAAO;IAChB,4CAA4C;IAC5C,6EAA6E,EAC7E,EAAE,CACH,CAAC;AACJ,CAAC","sourcesContent":["export function stripAnsii(str: string): string {\n return str.replace(\n // eslint-disable-next-line no-control-regex\n /[\\u001b\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,\n '',\n );\n}\n"]}
@@ -1,18 +0,0 @@
1
- import { type LockExpression } from './lock-art.js';
2
- /** Pre-built completion summaries shared by CLI and Dashboard adapters. */
3
- export declare function renderCompletionSummary(success: boolean, summary?: string): string;
4
- export interface SummaryBoxItem {
5
- type: 'done' | 'pending' | 'error';
6
- text: string;
7
- }
8
- export interface SummaryBoxOptions {
9
- expression: LockExpression;
10
- title: string;
11
- items?: SummaryBoxItem[];
12
- footer?: string;
13
- }
14
- /**
15
- * Render a branded summary box with the WorkOS lock character,
16
- * a title, optional checklist items, and an optional footer.
17
- */
18
- export declare function renderSummaryBox(options: SummaryBoxOptions): string;
@@ -1,148 +0,0 @@
1
- import chalk from 'chalk';
2
- import { isUnicodeSupported } from './vendor/is-unicorn-supported.js';
3
- import { getLockArt, LOCK_WIDTH } from './lock-art.js';
4
- import { symbols } from './cli-symbols.js';
5
- /** Pre-built completion summaries shared by CLI and Dashboard adapters. */
6
- export function renderCompletionSummary(success, summary) {
7
- if (success) {
8
- return renderSummaryBox({
9
- expression: 'success',
10
- title: 'WorkOS AuthKit Installed',
11
- items: [
12
- { type: 'pending', text: 'Start dev server to test authentication' },
13
- { type: 'pending', text: 'Visit WorkOS Dashboard to manage users' },
14
- ],
15
- footer: 'https://workos.com/docs/authkit',
16
- });
17
- }
18
- return renderSummaryBox({
19
- expression: 'error',
20
- title: 'Installation Failed',
21
- items: summary ? [{ type: 'error', text: summary }] : [],
22
- footer: 'https://github.com/workos/cli/issues',
23
- });
24
- }
25
- const unicode = isUnicodeSupported();
26
- const BOX = unicode
27
- ? { tl: '┌', tr: '┐', bl: '└', br: '┘', h: '─', v: '│', ml: '├', mr: '┤' }
28
- : { tl: '+', tr: '+', bl: '+', br: '+', h: '-', v: '|', ml: '+', mr: '+' };
29
- const ITEM_ICONS = {
30
- done: chalk.green(symbols.success),
31
- pending: chalk.cyan(symbols.arrow),
32
- error: chalk.red(symbols.error),
33
- };
34
- const MIN_WIDTH = 42;
35
- // Item prefix " X " = 4 visible chars before text
36
- const ITEM_PREFIX_LEN = 4;
37
- // Footer prefix " " = 2 visible chars before text
38
- const FOOTER_PREFIX_LEN = 2;
39
- function hLine(left, right, width) {
40
- return `${left}${BOX.h.repeat(width - 2)}${right}`;
41
- }
42
- function padRight(text, visibleLen, targetLen) {
43
- const padding = Math.max(0, targetLen - visibleLen);
44
- return text + ' '.repeat(padding);
45
- }
46
- /** Word-wrap text to fit within maxLen, returning multiple lines. */
47
- function wrapText(text, maxLen) {
48
- if (text.length <= maxLen)
49
- return [text];
50
- const words = text.split(' ');
51
- const wrapped = [];
52
- let current = '';
53
- for (const word of words) {
54
- const candidate = current ? `${current} ${word}` : word;
55
- if (candidate.length > maxLen && current) {
56
- wrapped.push(current);
57
- current = word;
58
- }
59
- else {
60
- current = candidate;
61
- }
62
- }
63
- if (current)
64
- wrapped.push(current);
65
- return wrapped;
66
- }
67
- function getTerminalWidth() {
68
- return process.stdout.columns || 80;
69
- }
70
- /**
71
- * Render a branded summary box with the WorkOS lock character,
72
- * a title, optional checklist items, and an optional footer.
73
- */
74
- export function renderSummaryBox(options) {
75
- const { expression, title, items = [], footer } = options;
76
- const lockColored = getLockArt(expression, true);
77
- const lockRaw = getLockArt(expression, false);
78
- const lockLines = lockColored.length;
79
- // " " + lock + " " = lock column width
80
- const lockColWidth = LOCK_WIDTH + 3;
81
- // Cap box width to terminal width
82
- const termWidth = getTerminalWidth();
83
- // innerWidth must fit: lock+title, items, footer — but capped to terminal
84
- const maxInner = Math.max(MIN_WIDTH - 2, termWidth - 2);
85
- // Compute ideal inner width from content
86
- const titleRowWidth = lockColWidth + title.length;
87
- const itemWidths = items.map((item) => ITEM_PREFIX_LEN + item.text.length);
88
- const footerWidth = footer ? FOOTER_PREFIX_LEN + footer.length : 0;
89
- const idealInner = Math.max(titleRowWidth, ...itemWidths, footerWidth) + 1;
90
- const innerWidth = Math.min(Math.max(MIN_WIDTH - 2, idealInner), maxInner);
91
- const boxWidth = innerWidth + 2;
92
- // Available text width for items and footer (after prefix, before right padding + border)
93
- const itemTextMax = innerWidth - ITEM_PREFIX_LEN - 1;
94
- const footerTextMax = innerWidth - FOOTER_PREFIX_LEN - 1;
95
- const lines = [];
96
- // Top border
97
- lines.push(hLine(BOX.tl, BOX.tr, boxWidth));
98
- // Lock + title rows
99
- const titleLineIndex = 3;
100
- for (let i = 0; i < lockLines; i++) {
101
- const lockPart = ` ${lockColored[i]} `;
102
- const lockPartRaw = ` ${lockRaw[i]} `;
103
- let rightPart;
104
- let rightPartLen;
105
- if (i === titleLineIndex) {
106
- rightPart = chalk.bold(title);
107
- rightPartLen = title.length;
108
- }
109
- else {
110
- rightPart = '';
111
- rightPartLen = 0;
112
- }
113
- const row = BOX.v + padRight(lockPart + rightPart, lockPartRaw.length + rightPartLen, innerWidth) + BOX.v;
114
- lines.push(row);
115
- }
116
- // Items
117
- if (items.length > 0) {
118
- lines.push(`${BOX.v}${' '.repeat(innerWidth)}${BOX.v}`);
119
- for (const item of items) {
120
- const icon = ITEM_ICONS[item.type];
121
- const wrappedLines = wrapText(item.text, itemTextMax);
122
- // First line gets the icon
123
- const first = ` ${icon} ${wrappedLines[0]}`;
124
- const firstLen = ITEM_PREFIX_LEN + wrappedLines[0].length;
125
- lines.push(`${BOX.v}${padRight(first, firstLen, innerWidth)}${BOX.v}`);
126
- // Continuation lines are indented to align with text after icon
127
- for (let j = 1; j < wrappedLines.length; j++) {
128
- const cont = ` ${wrappedLines[j]}`;
129
- const contLen = 4 + wrappedLines[j].length;
130
- lines.push(`${BOX.v}${padRight(cont, contLen, innerWidth)}${BOX.v}`);
131
- }
132
- }
133
- }
134
- // Footer
135
- if (footer) {
136
- lines.push(hLine(BOX.ml, BOX.mr, boxWidth));
137
- const wrappedFooter = wrapText(footer, footerTextMax);
138
- for (const fLine of wrappedFooter) {
139
- const content = ` ${chalk.dim(fLine)}`;
140
- const visibleLen = FOOTER_PREFIX_LEN + fLine.length;
141
- lines.push(`${BOX.v}${padRight(content, visibleLen, innerWidth)}${BOX.v}`);
142
- }
143
- }
144
- // Bottom border
145
- lines.push(hLine(BOX.bl, BOX.br, boxWidth));
146
- return lines.join('\n');
147
- }
148
- //# sourceMappingURL=summary-box.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"summary-box.js","sourceRoot":"","sources":["../../src/utils/summary-box.ts"],"names":[],"mappings":"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","sourcesContent":["import chalk from 'chalk';\nimport { isUnicodeSupported } from './vendor/is-unicorn-supported.js';\nimport { type LockExpression, getLockArt, LOCK_WIDTH } from './lock-art.js';\nimport { symbols } from './cli-symbols.js';\n\n/** Pre-built completion summaries shared by CLI and Dashboard adapters. */\nexport function renderCompletionSummary(success: boolean, summary?: string): string {\n if (success) {\n return renderSummaryBox({\n expression: 'success',\n title: 'WorkOS AuthKit Installed',\n items: [\n { type: 'pending', text: 'Start dev server to test authentication' },\n { type: 'pending', text: 'Visit WorkOS Dashboard to manage users' },\n ],\n footer: 'https://workos.com/docs/authkit',\n });\n }\n return renderSummaryBox({\n expression: 'error',\n title: 'Installation Failed',\n items: summary ? [{ type: 'error', text: summary }] : [],\n footer: 'https://github.com/workos/cli/issues',\n });\n}\n\nexport interface SummaryBoxItem {\n type: 'done' | 'pending' | 'error';\n text: string;\n}\n\nexport interface SummaryBoxOptions {\n expression: LockExpression;\n title: string;\n items?: SummaryBoxItem[];\n footer?: string;\n}\n\nconst unicode = isUnicodeSupported();\n\nconst BOX = unicode\n ? { tl: '┌', tr: '┐', bl: '└', br: '┘', h: '─', v: '│', ml: '├', mr: '┤' }\n : { tl: '+', tr: '+', bl: '+', br: '+', h: '-', v: '|', ml: '+', mr: '+' };\n\nconst ITEM_ICONS: Record<SummaryBoxItem['type'], string> = {\n done: chalk.green(symbols.success),\n pending: chalk.cyan(symbols.arrow),\n error: chalk.red(symbols.error),\n};\n\nconst MIN_WIDTH = 42;\n// Item prefix \" X \" = 4 visible chars before text\nconst ITEM_PREFIX_LEN = 4;\n// Footer prefix \" \" = 2 visible chars before text\nconst FOOTER_PREFIX_LEN = 2;\n\nfunction hLine(left: string, right: string, width: number): string {\n return `${left}${BOX.h.repeat(width - 2)}${right}`;\n}\n\nfunction padRight(text: string, visibleLen: number, targetLen: number): string {\n const padding = Math.max(0, targetLen - visibleLen);\n return text + ' '.repeat(padding);\n}\n\n/** Word-wrap text to fit within maxLen, returning multiple lines. */\nfunction wrapText(text: string, maxLen: number): string[] {\n if (text.length <= maxLen) return [text];\n const words = text.split(' ');\n const wrapped: string[] = [];\n let current = '';\n for (const word of words) {\n const candidate = current ? `${current} ${word}` : word;\n if (candidate.length > maxLen && current) {\n wrapped.push(current);\n current = word;\n } else {\n current = candidate;\n }\n }\n if (current) wrapped.push(current);\n return wrapped;\n}\n\nfunction getTerminalWidth(): number {\n return process.stdout.columns || 80;\n}\n\n/**\n * Render a branded summary box with the WorkOS lock character,\n * a title, optional checklist items, and an optional footer.\n */\nexport function renderSummaryBox(options: SummaryBoxOptions): string {\n const { expression, title, items = [], footer } = options;\n\n const lockColored = getLockArt(expression, true);\n const lockRaw = getLockArt(expression, false);\n const lockLines = lockColored.length;\n\n // \" \" + lock + \" \" = lock column width\n const lockColWidth = LOCK_WIDTH + 3;\n\n // Cap box width to terminal width\n const termWidth = getTerminalWidth();\n // innerWidth must fit: lock+title, items, footer — but capped to terminal\n const maxInner = Math.max(MIN_WIDTH - 2, termWidth - 2);\n\n // Compute ideal inner width from content\n const titleRowWidth = lockColWidth + title.length;\n const itemWidths = items.map((item) => ITEM_PREFIX_LEN + item.text.length);\n const footerWidth = footer ? FOOTER_PREFIX_LEN + footer.length : 0;\n const idealInner = Math.max(titleRowWidth, ...itemWidths, footerWidth) + 1;\n\n const innerWidth = Math.min(Math.max(MIN_WIDTH - 2, idealInner), maxInner);\n const boxWidth = innerWidth + 2;\n\n // Available text width for items and footer (after prefix, before right padding + border)\n const itemTextMax = innerWidth - ITEM_PREFIX_LEN - 1;\n const footerTextMax = innerWidth - FOOTER_PREFIX_LEN - 1;\n\n const lines: string[] = [];\n\n // Top border\n lines.push(hLine(BOX.tl, BOX.tr, boxWidth));\n\n // Lock + title rows\n const titleLineIndex = 3;\n for (let i = 0; i < lockLines; i++) {\n const lockPart = ` ${lockColored[i]} `;\n const lockPartRaw = ` ${lockRaw[i]} `;\n let rightPart: string;\n let rightPartLen: number;\n if (i === titleLineIndex) {\n rightPart = chalk.bold(title);\n rightPartLen = title.length;\n } else {\n rightPart = '';\n rightPartLen = 0;\n }\n const row = BOX.v + padRight(lockPart + rightPart, lockPartRaw.length + rightPartLen, innerWidth) + BOX.v;\n lines.push(row);\n }\n\n // Items\n if (items.length > 0) {\n lines.push(`${BOX.v}${' '.repeat(innerWidth)}${BOX.v}`);\n\n for (const item of items) {\n const icon = ITEM_ICONS[item.type];\n const wrappedLines = wrapText(item.text, itemTextMax);\n // First line gets the icon\n const first = ` ${icon} ${wrappedLines[0]}`;\n const firstLen = ITEM_PREFIX_LEN + wrappedLines[0].length;\n lines.push(`${BOX.v}${padRight(first, firstLen, innerWidth)}${BOX.v}`);\n // Continuation lines are indented to align with text after icon\n for (let j = 1; j < wrappedLines.length; j++) {\n const cont = ` ${wrappedLines[j]}`;\n const contLen = 4 + wrappedLines[j].length;\n lines.push(`${BOX.v}${padRight(cont, contLen, innerWidth)}${BOX.v}`);\n }\n }\n }\n\n // Footer\n if (footer) {\n lines.push(hLine(BOX.ml, BOX.mr, boxWidth));\n const wrappedFooter = wrapText(footer, footerTextMax);\n for (const fLine of wrappedFooter) {\n const content = ` ${chalk.dim(fLine)}`;\n const visibleLen = FOOTER_PREFIX_LEN + fLine.length;\n lines.push(`${BOX.v}${padRight(content, visibleLen, innerWidth)}${BOX.v}`);\n }\n }\n\n // Bottom border\n lines.push(hLine(BOX.bl, BOX.br, boxWidth));\n\n return lines.join('\\n');\n}\n"]}
@@ -1,5 +0,0 @@
1
- export interface TableColumn {
2
- header: string;
3
- width?: number;
4
- }
5
- export declare function formatTable(columns: TableColumn[], rows: string[][]): string;
@@ -1,18 +0,0 @@
1
- import chalk from 'chalk';
2
- export function formatTable(columns, rows) {
3
- const widths = columns.map((col, i) => {
4
- const contentMax = rows.reduce((max, row) => Math.max(max, (row[i] || '').length), 0);
5
- return col.width ?? Math.max(col.header.length, contentMax);
6
- });
7
- const lines = [];
8
- const header = columns.map((col, i) => chalk.yellow(col.header.padEnd(widths[i]))).join(' ');
9
- lines.push(header);
10
- const totalWidth = widths.reduce((sum, w) => sum + w, 0) + (widths.length - 1) * 2;
11
- lines.push(chalk.dim('─'.repeat(totalWidth)));
12
- for (const row of rows) {
13
- const line = row.map((cell, i) => (cell || '').padEnd(widths[i])).join(' ');
14
- lines.push(line);
15
- }
16
- return lines.join('\n');
17
- }
18
- //# sourceMappingURL=table.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/utils/table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,MAAM,UAAU,WAAW,CAAC,OAAsB,EAAE,IAAgB;IAClE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACtF,OAAO,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9F,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEnB,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACnF,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAE9C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7E,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC","sourcesContent":["import chalk from 'chalk';\n\nexport interface TableColumn {\n header: string;\n width?: number;\n}\n\nexport function formatTable(columns: TableColumn[], rows: string[][]): string {\n const widths = columns.map((col, i) => {\n const contentMax = rows.reduce((max, row) => Math.max(max, (row[i] || '').length), 0);\n return col.width ?? Math.max(col.header.length, contentMax);\n });\n\n const lines: string[] = [];\n\n const header = columns.map((col, i) => chalk.yellow(col.header.padEnd(widths[i]))).join(' ');\n lines.push(header);\n\n const totalWidth = widths.reduce((sum, w) => sum + w, 0) + (widths.length - 1) * 2;\n lines.push(chalk.dim('─'.repeat(totalWidth)));\n\n for (const row of rows) {\n const line = row.map((cell, i) => (cell || '').padEnd(widths[i])).join(' ');\n lines.push(line);\n }\n\n return lines.join('\\n');\n}\n"]}
@@ -1,43 +0,0 @@
1
- import type { TelemetryEvent } from './telemetry-types.js';
2
- /**
3
- * HTTP client that queues telemetry events and flushes them to the API.
4
- * Failures are silent—telemetry should never crash the wizard.
5
- */
6
- export declare class TelemetryClient {
7
- private events;
8
- private flushInFlight;
9
- private accessToken;
10
- private claimToken;
11
- private clientId;
12
- private apiKey;
13
- private gatewayUrl;
14
- setGatewayUrl(url: string): void;
15
- setAccessToken(token: string): void;
16
- setApiKeyAuth(apiKey: string): void;
17
- /**
18
- * Set claim-token auth for unclaimed environments.
19
- * The API accepts either a JWT (Bearer), claim token
20
- * (x-workos-claim-token + x-workos-client-id), or API key
21
- * (x-workos-api-key).
22
- */
23
- setClaimTokenAuth(clientId: string, claimToken: string): void;
24
- queueEvent(event: TelemetryEvent): void;
25
- /**
26
- * Queue multiple pre-formed events (used by store-forward recovery).
27
- */
28
- queueEvents(events: TelemetryEvent[]): void;
29
- /**
30
- * Flush queued events. Returns true if events were sent or intentionally
31
- * dropped (4xx), false if they should be retried (5xx/network error).
32
- * Uses splice to only remove the events that were in the snapshot,
33
- * protecting any events queued concurrently during the fetch.
34
- */
35
- flush(): Promise<boolean>;
36
- private flushInternal;
37
- /**
38
- * Synchronously write pending events to a file.
39
- * Used as last resort in process.on('exit') handler.
40
- */
41
- persistToFile(filePath: string): void;
42
- }
43
- export declare const telemetryClient: TelemetryClient;
@@ -1,171 +0,0 @@
1
- import { mkdirSync, writeFileSync } from 'node:fs';
2
- import { dirname } from 'node:path';
3
- import { debug, isDebugEnabled } from './debug.js';
4
- import { getCredentials, isTokenExpired } from '../lib/credentials.js';
5
- function summarizeEvent(event) {
6
- switch (event.type) {
7
- case 'session.start':
8
- return `session.start(mode=${event.attributes['installer.mode']}, os=${event.attributes['env.os']})`;
9
- case 'session.end':
10
- return `session.end(outcome=${event.attributes['installer.outcome']}, duration=${event.attributes['installer.duration_ms']}ms)`;
11
- case 'step':
12
- return `step(${event.name}, ${event.durationMs}ms, success=${event.success})`;
13
- case 'agent.tool':
14
- return `agent.tool(${event.toolName}, ${event.durationMs}ms)`;
15
- case 'agent.llm':
16
- return `agent.llm(${event.model}, in=${event.inputTokens}, out=${event.outputTokens})`;
17
- case 'command':
18
- return `command(${event.attributes['command.name']}, ${event.attributes['command.duration_ms']}ms, success=${event.attributes['command.success']})`;
19
- case 'crash':
20
- return `crash(${event.attributes['crash.error_type']}: ${event.attributes['crash.error_message']})`;
21
- }
22
- }
23
- /**
24
- * HTTP client that queues telemetry events and flushes them to the API.
25
- * Failures are silent—telemetry should never crash the wizard.
26
- */
27
- export class TelemetryClient {
28
- events = [];
29
- flushInFlight = null;
30
- accessToken = null;
31
- claimToken = null;
32
- clientId = null;
33
- apiKey = null;
34
- gatewayUrl = null;
35
- setGatewayUrl(url) {
36
- this.gatewayUrl = url;
37
- }
38
- setAccessToken(token) {
39
- this.accessToken = token;
40
- }
41
- setApiKeyAuth(apiKey) {
42
- this.apiKey = apiKey;
43
- }
44
- /**
45
- * Set claim-token auth for unclaimed environments.
46
- * The API accepts either a JWT (Bearer), claim token
47
- * (x-workos-claim-token + x-workos-client-id), or API key
48
- * (x-workos-api-key).
49
- */
50
- setClaimTokenAuth(clientId, claimToken) {
51
- this.clientId = clientId;
52
- this.claimToken = claimToken;
53
- }
54
- queueEvent(event) {
55
- this.events.push(event);
56
- }
57
- /**
58
- * Queue multiple pre-formed events (used by store-forward recovery).
59
- */
60
- queueEvents(events) {
61
- this.events.push(...events);
62
- }
63
- /**
64
- * Flush queued events. Returns true if events were sent or intentionally
65
- * dropped (4xx), false if they should be retried (5xx/network error).
66
- * Uses splice to only remove the events that were in the snapshot,
67
- * protecting any events queued concurrently during the fetch.
68
- */
69
- async flush() {
70
- // Coalesce overlapping flushes: a second caller during an in-flight flush
71
- // would otherwise snapshot and POST the same events again (duplicate send),
72
- // and its splice() could drop events queued after the first flush started.
73
- if (this.flushInFlight)
74
- return this.flushInFlight;
75
- this.flushInFlight = this.flushInternal();
76
- try {
77
- return await this.flushInFlight;
78
- }
79
- finally {
80
- this.flushInFlight = null;
81
- }
82
- }
83
- async flushInternal() {
84
- if (this.events.length === 0)
85
- return true;
86
- if (!this.gatewayUrl) {
87
- debug('[Telemetry] No telemetry URL configured, skipping flush');
88
- return false;
89
- }
90
- const count = this.events.length;
91
- const payload = { events: this.events.slice(0, count) };
92
- const headers = {
93
- 'Content-Type': 'application/json',
94
- };
95
- // Read fresh credentials to handle token refresh mid-session. Skip an
96
- // expired stored token — sending a dead Bearer 401s and the event is
97
- // dropped, so fall through to claim-token / api-key auth instead.
98
- const freshCreds = getCredentials();
99
- const token = freshCreds?.accessToken
100
- ? isTokenExpired(freshCreds)
101
- ? null
102
- : freshCreds.accessToken
103
- : this.accessToken;
104
- if (token) {
105
- headers['Authorization'] = `Bearer ${token}`;
106
- }
107
- else if (this.claimToken && this.clientId) {
108
- // Unclaimed environment auth path — guard accepts this instead of JWT
109
- headers['x-workos-claim-token'] = this.claimToken;
110
- headers['x-workos-client-id'] = this.clientId;
111
- }
112
- else if (this.apiKey) {
113
- headers['x-workos-api-key'] = this.apiKey;
114
- }
115
- const controller = new AbortController();
116
- const timeout = setTimeout(() => controller.abort(), 3000);
117
- try {
118
- if (isDebugEnabled()) {
119
- const eventSummary = payload.events.map(summarizeEvent).join('\n ');
120
- debug(`[Telemetry] Sending ${payload.events.length} events to ${this.gatewayUrl}/telemetry:\n ${eventSummary}`);
121
- }
122
- const response = await fetch(`${this.gatewayUrl}/telemetry`, {
123
- method: 'POST',
124
- headers,
125
- body: JSON.stringify(payload),
126
- signal: controller.signal,
127
- });
128
- if (response.ok) {
129
- this.events.splice(0, count);
130
- return true;
131
- }
132
- else {
133
- debug(`[Telemetry] Failed to send: ${response.status}`);
134
- // Drop on 4xx (permanent failures like 401/403 won't succeed on retry).
135
- // Retain on 5xx (transient server errors) for store-forward.
136
- if (response.status >= 400 && response.status < 500) {
137
- this.events.splice(0, count);
138
- return true; // intentionally dropped
139
- }
140
- return false;
141
- }
142
- }
143
- catch (error) {
144
- debug(`[Telemetry] Error sending events: ${error}`);
145
- // Events remain in queue for store-forward to persist
146
- return false;
147
- }
148
- finally {
149
- clearTimeout(timeout);
150
- }
151
- }
152
- /**
153
- * Synchronously write pending events to a file.
154
- * Used as last resort in process.on('exit') handler.
155
- */
156
- persistToFile(filePath) {
157
- if (this.events.length === 0)
158
- return;
159
- try {
160
- // Restrictive modes — the payload carries device/user identifiers.
161
- mkdirSync(dirname(filePath), { recursive: true, mode: 0o700 });
162
- writeFileSync(filePath, JSON.stringify(this.events), { encoding: 'utf-8', mode: 0o600 });
163
- this.events = [];
164
- }
165
- catch {
166
- // Silent failure — telemetry must never block exit
167
- }
168
- }
169
- }
170
- export const telemetryClient = new TelemetryClient();
171
- //# sourceMappingURL=telemetry-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"telemetry-client.js","sourceRoot":"","sources":["../../src/utils/telemetry-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvE,SAAS,cAAc,CAAC,KAAqB;IAC3C,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,eAAe;YAClB,OAAO,sBAAsB,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,QAAQ,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;QACvG,KAAK,aAAa;YAChB,OAAO,uBAAuB,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,cAAc,KAAK,CAAC,UAAU,CAAC,uBAAuB,CAAC,KAAK,CAAC;QAClI,KAAK,MAAM;YACT,OAAO,QAAQ,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,UAAU,eAAe,KAAK,CAAC,OAAO,GAAG,CAAC;QAChF,KAAK,YAAY;YACf,OAAO,cAAc,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,UAAU,KAAK,CAAC;QAChE,KAAK,WAAW;YACd,OAAO,aAAa,KAAK,CAAC,KAAK,QAAQ,KAAK,CAAC,WAAW,SAAS,KAAK,CAAC,YAAY,GAAG,CAAC;QACzF,KAAK,SAAS;YACZ,OAAO,WAAW,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,KAAK,CAAC,UAAU,CAAC,qBAAqB,CAAC,eAAe,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC;QACtJ,KAAK,OAAO;YACV,OAAO,SAAS,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,KAAK,KAAK,CAAC,UAAU,CAAC,qBAAqB,CAAC,GAAG,CAAC;IACxG,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,eAAe;IAClB,MAAM,GAAqB,EAAE,CAAC;IAC9B,aAAa,GAA4B,IAAI,CAAC;IAC9C,WAAW,GAAkB,IAAI,CAAC;IAClC,UAAU,GAAkB,IAAI,CAAC;IACjC,QAAQ,GAAkB,IAAI,CAAC;IAC/B,MAAM,GAAkB,IAAI,CAAC;IAC7B,UAAU,GAAkB,IAAI,CAAC;IAEzC,aAAa,CAAC,GAAW;QACvB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;IACxB,CAAC;IAED,cAAc,CAAC,KAAa;QAC1B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,aAAa,CAAC,MAAc;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACH,iBAAiB,CAAC,QAAgB,EAAE,UAAkB;QACpD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,UAAU,CAAC,KAAqB;QAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,MAAwB;QAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,KAAK;QACT,0EAA0E;QAC1E,4EAA4E;QAC5E,2EAA2E;QAC3E,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO,IAAI,CAAC,aAAa,CAAC;QAClD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAC1C,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC;QAClC,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC5B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa;QACzB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,KAAK,CAAC,yDAAyD,CAAC,CAAC;YACjE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QACjC,MAAM,OAAO,GAAqB,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QAE1E,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;SACnC,CAAC;QACF,sEAAsE;QACtE,qEAAqE;QACrE,kEAAkE;QAClE,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,UAAU,EAAE,WAAW;YACnC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC;gBAC1B,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,UAAU,CAAC,WAAW;YAC1B,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;QACrB,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,KAAK,EAAE,CAAC;QAC/C,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5C,sEAAsE;YACtE,OAAO,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;YAClD,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QAChD,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACvB,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5C,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;QAE3D,IAAI,CAAC;YACH,IAAI,cAAc,EAAE,EAAE,CAAC;gBACrB,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACrE,KAAK,CACH,uBAAuB,OAAO,CAAC,MAAM,CAAC,MAAM,cAAc,IAAI,CAAC,UAAU,kBAAkB,YAAY,EAAE,CAC1G,CAAC;YACJ,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,YAAY,EAAE;gBAC3D,MAAM,EAAE,MAAM;gBACd,OAAO;gBACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;gBAC7B,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAChB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBAC7B,OAAO,IAAI,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,+BAA+B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;gBACxD,wEAAwE;gBACxE,6DAA6D;gBAC7D,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;oBACpD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;oBAC7B,OAAO,IAAI,CAAC,CAAC,wBAAwB;gBACvC,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,KAAK,CAAC,qCAAqC,KAAK,EAAE,CAAC,CAAC;YACpD,sDAAsD;YACtD,OAAO,KAAK,CAAC;QACf,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,QAAgB;QAC5B,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACrC,IAAI,CAAC;YACH,mEAAmE;YACnE,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/D,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACzF,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,mDAAmD;QACrD,CAAC;IACH,CAAC;CACF;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC","sourcesContent":["import { mkdirSync, writeFileSync } from 'node:fs';\nimport { dirname } from 'node:path';\nimport { debug, isDebugEnabled } from './debug.js';\nimport type { TelemetryEvent, TelemetryRequest } from './telemetry-types.js';\nimport { getCredentials, isTokenExpired } from '../lib/credentials.js';\n\nfunction summarizeEvent(event: TelemetryEvent): string {\n switch (event.type) {\n case 'session.start':\n return `session.start(mode=${event.attributes['installer.mode']}, os=${event.attributes['env.os']})`;\n case 'session.end':\n return `session.end(outcome=${event.attributes['installer.outcome']}, duration=${event.attributes['installer.duration_ms']}ms)`;\n case 'step':\n return `step(${event.name}, ${event.durationMs}ms, success=${event.success})`;\n case 'agent.tool':\n return `agent.tool(${event.toolName}, ${event.durationMs}ms)`;\n case 'agent.llm':\n return `agent.llm(${event.model}, in=${event.inputTokens}, out=${event.outputTokens})`;\n case 'command':\n return `command(${event.attributes['command.name']}, ${event.attributes['command.duration_ms']}ms, success=${event.attributes['command.success']})`;\n case 'crash':\n return `crash(${event.attributes['crash.error_type']}: ${event.attributes['crash.error_message']})`;\n }\n}\n\n/**\n * HTTP client that queues telemetry events and flushes them to the API.\n * Failures are silent—telemetry should never crash the wizard.\n */\nexport class TelemetryClient {\n private events: TelemetryEvent[] = [];\n private flushInFlight: Promise<boolean> | null = null;\n private accessToken: string | null = null;\n private claimToken: string | null = null;\n private clientId: string | null = null;\n private apiKey: string | null = null;\n private gatewayUrl: string | null = null;\n\n setGatewayUrl(url: string) {\n this.gatewayUrl = url;\n }\n\n setAccessToken(token: string) {\n this.accessToken = token;\n }\n\n setApiKeyAuth(apiKey: string) {\n this.apiKey = apiKey;\n }\n\n /**\n * Set claim-token auth for unclaimed environments.\n * The API accepts either a JWT (Bearer), claim token\n * (x-workos-claim-token + x-workos-client-id), or API key\n * (x-workos-api-key).\n */\n setClaimTokenAuth(clientId: string, claimToken: string) {\n this.clientId = clientId;\n this.claimToken = claimToken;\n }\n\n queueEvent(event: TelemetryEvent) {\n this.events.push(event);\n }\n\n /**\n * Queue multiple pre-formed events (used by store-forward recovery).\n */\n queueEvents(events: TelemetryEvent[]): void {\n this.events.push(...events);\n }\n\n /**\n * Flush queued events. Returns true if events were sent or intentionally\n * dropped (4xx), false if they should be retried (5xx/network error).\n * Uses splice to only remove the events that were in the snapshot,\n * protecting any events queued concurrently during the fetch.\n */\n async flush(): Promise<boolean> {\n // Coalesce overlapping flushes: a second caller during an in-flight flush\n // would otherwise snapshot and POST the same events again (duplicate send),\n // and its splice() could drop events queued after the first flush started.\n if (this.flushInFlight) return this.flushInFlight;\n this.flushInFlight = this.flushInternal();\n try {\n return await this.flushInFlight;\n } finally {\n this.flushInFlight = null;\n }\n }\n\n private async flushInternal(): Promise<boolean> {\n if (this.events.length === 0) return true;\n if (!this.gatewayUrl) {\n debug('[Telemetry] No telemetry URL configured, skipping flush');\n return false;\n }\n\n const count = this.events.length;\n const payload: TelemetryRequest = { events: this.events.slice(0, count) };\n\n const headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n };\n // Read fresh credentials to handle token refresh mid-session. Skip an\n // expired stored token — sending a dead Bearer 401s and the event is\n // dropped, so fall through to claim-token / api-key auth instead.\n const freshCreds = getCredentials();\n const token = freshCreds?.accessToken\n ? isTokenExpired(freshCreds)\n ? null\n : freshCreds.accessToken\n : this.accessToken;\n if (token) {\n headers['Authorization'] = `Bearer ${token}`;\n } else if (this.claimToken && this.clientId) {\n // Unclaimed environment auth path — guard accepts this instead of JWT\n headers['x-workos-claim-token'] = this.claimToken;\n headers['x-workos-client-id'] = this.clientId;\n } else if (this.apiKey) {\n headers['x-workos-api-key'] = this.apiKey;\n }\n\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), 3000);\n\n try {\n if (isDebugEnabled()) {\n const eventSummary = payload.events.map(summarizeEvent).join('\\n ');\n debug(\n `[Telemetry] Sending ${payload.events.length} events to ${this.gatewayUrl}/telemetry:\\n ${eventSummary}`,\n );\n }\n\n const response = await fetch(`${this.gatewayUrl}/telemetry`, {\n method: 'POST',\n headers,\n body: JSON.stringify(payload),\n signal: controller.signal,\n });\n\n if (response.ok) {\n this.events.splice(0, count);\n return true;\n } else {\n debug(`[Telemetry] Failed to send: ${response.status}`);\n // Drop on 4xx (permanent failures like 401/403 won't succeed on retry).\n // Retain on 5xx (transient server errors) for store-forward.\n if (response.status >= 400 && response.status < 500) {\n this.events.splice(0, count);\n return true; // intentionally dropped\n }\n return false;\n }\n } catch (error) {\n debug(`[Telemetry] Error sending events: ${error}`);\n // Events remain in queue for store-forward to persist\n return false;\n } finally {\n clearTimeout(timeout);\n }\n }\n\n /**\n * Synchronously write pending events to a file.\n * Used as last resort in process.on('exit') handler.\n */\n persistToFile(filePath: string): void {\n if (this.events.length === 0) return;\n try {\n // Restrictive modes — the payload carries device/user identifiers.\n mkdirSync(dirname(filePath), { recursive: true, mode: 0o700 });\n writeFileSync(filePath, JSON.stringify(this.events), { encoding: 'utf-8', mode: 0o600 });\n this.events = [];\n } catch {\n // Silent failure — telemetry must never block exit\n }\n }\n}\n\nexport const telemetryClient = new TelemetryClient();\n"]}
@@ -1,11 +0,0 @@
1
- /**
2
- * Register a sync exit handler that persists unsent events to disk.
3
- * Called once at startup. Uses PID in filename to prevent concurrent
4
- * CLI invocations from colliding.
5
- */
6
- export declare function installStoreForward(): void;
7
- /**
8
- * On startup, check for ANY pending files from previous invocations
9
- * (could be from different PIDs) and send them. Non-blocking, fire-and-forget.
10
- */
11
- export declare function recoverPendingEvents(): Promise<void>;