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":"mcp.js","sourceRoot":"","sources":["../../../src/doctor/checks/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ;IAC5B,MAAM,OAAO,GAAG,MAAM,gBAAgB,EAAE,CAAC;IACzC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAA8B,EAAE;QACvD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAsB,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC5F,uEAAuE;QACvE,wEAAwE;QACxE,0DAA0D;QAC1D,IAAI,MAAM,CAAC,GAAG,KAAK,QAAQ,IAAI,SAAS,EAAE,CAAC;YACzC,MAAM,GAAG,GAAG,MAAM,sBAAsB,EAAE,CAAC;YAC3C,MAAM,CAAC,aAAa,GAAG,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,cAAc,CAAC;QAChE,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC;AAC/C,CAAC","sourcesContent":["import { detectMcpClients, getCursorConfiguredUrl } from '../../lib/mcp-clients.js';\nimport { MCP_SERVER_URL } from '../../lib/constants.js';\nimport type { McpInfo, McpAgentMcpStatus } from '../types.js';\n\n/**\n * Report the WorkOS MCP server status across detected coding agents.\n *\n * Mirrors checkSkills: per-detected-agent loop, typed `*Info` return, null when\n * no agents are detected (so doctor renders no MCP section for users with no\n * coding agent installed). Report-only — never mutates config (`--fix` does not\n * touch MCP in this phase).\n *\n * Absent MCP is deliberately NOT an issue: the user may have declined the\n * offer. Only Cursor exposes a readable config, so URL drift (\"misconfigured\")\n * is detected for Cursor alone; issues.ts derives a warning from it. Per-agent\n * shell-outs carry the 10s timeout from the client library, keeping doctor fast.\n */\nexport async function checkMcp(): Promise<McpInfo | null> {\n const clients = await detectMcpClients();\n if (clients.length === 0) return null;\n\n const agents = await Promise.all(\n clients.map(async (client): Promise<McpAgentMcpStatus> => {\n const installed = await client.isInstalled();\n const status: McpAgentMcpStatus = { agent: client.displayName, available: true, installed };\n // Cursor is the only client whose config we can read, so it's the only\n // one we can flag for URL drift. A missing/unreadable URL (null) is not\n // \"unexpected\" — only a present-but-different URL counts.\n if (client.key === 'cursor' && installed) {\n const url = await getCursorConfiguredUrl();\n status.misconfigured = url !== null && url !== MCP_SERVER_URL;\n }\n return status;\n }),\n );\n\n return { serverUrl: MCP_SERVER_URL, agents };\n}\n"]}
@@ -1,2 +0,0 @@
1
- import type { DoctorOptions, RuntimeInfo } from '../types.js';
2
- export declare function checkRuntime(options: DoctorOptions): Promise<RuntimeInfo>;
@@ -1,20 +0,0 @@
1
- import { detectAllPackageManagers } from '../../utils/package-manager.js';
2
- import { execFileNoThrow } from '../../utils/exec-file.js';
3
- export async function checkRuntime(options) {
4
- const nodeVersion = process.version;
5
- const managers = detectAllPackageManagers(options);
6
- const primaryManager = managers[0] ?? null;
7
- let packageManagerVersion = null;
8
- if (primaryManager) {
9
- const result = await execFileNoThrow(primaryManager.name, ['--version']);
10
- if (result.status === 0) {
11
- packageManagerVersion = result.stdout.trim();
12
- }
13
- }
14
- return {
15
- nodeVersion,
16
- packageManager: primaryManager?.label ?? null,
17
- packageManagerVersion,
18
- };
19
- }
20
- //# sourceMappingURL=runtime.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../src/doctor/checks/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAG3D,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAsB;IACvD,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAEpC,MAAM,QAAQ,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAE3C,IAAI,qBAAqB,GAAkB,IAAI,CAAC;IAChD,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QACzE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,OAAO;QACL,WAAW;QACX,cAAc,EAAE,cAAc,EAAE,KAAK,IAAI,IAAI;QAC7C,qBAAqB;KACtB,CAAC;AACJ,CAAC","sourcesContent":["import { detectAllPackageManagers } from '../../utils/package-manager.js';\nimport { execFileNoThrow } from '../../utils/exec-file.js';\nimport type { DoctorOptions, RuntimeInfo } from '../types.js';\n\nexport async function checkRuntime(options: DoctorOptions): Promise<RuntimeInfo> {\n const nodeVersion = process.version;\n\n const managers = detectAllPackageManagers(options);\n const primaryManager = managers[0] ?? null;\n\n let packageManagerVersion: string | null = null;\n if (primaryManager) {\n const result = await execFileNoThrow(primaryManager.name, ['--version']);\n if (result.status === 0) {\n packageManagerVersion = result.stdout.trim();\n }\n }\n\n return {\n nodeVersion,\n packageManager: primaryManager?.label ?? null,\n packageManagerVersion,\n };\n}\n"]}
@@ -1,2 +0,0 @@
1
- import type { DoctorOptions, SdkInfo } from '../types.js';
2
- export declare function checkSdk(options: DoctorOptions): Promise<SdkInfo>;
@@ -1,192 +0,0 @@
1
- import { readFile, readdir } from 'node:fs/promises';
2
- import { join } from 'node:path';
3
- import { readPackageJson, hasPackageInstalled, getPackageVersion } from '../../utils/package-json.js';
4
- // AuthKit SDKs - check @workos/* scope first, then @workos-inc/*
5
- const SDK_PACKAGES = [
6
- // @workos/* scope
7
- '@workos/authkit-tanstack-react-start',
8
- '@workos/authkit-sveltekit',
9
- // @workos-inc/* scope
10
- '@workos-inc/authkit-nextjs',
11
- '@workos-inc/authkit-remix',
12
- '@workos-inc/authkit-react-router',
13
- '@workos-inc/authkit-react',
14
- '@workos-inc/authkit-js',
15
- '@workos-inc/node',
16
- 'workos', // very old legacy
17
- ];
18
- const AUTHKIT_PACKAGES = new Set([
19
- '@workos/authkit-tanstack-react-start',
20
- '@workos/authkit-sveltekit',
21
- '@workos-inc/authkit-nextjs',
22
- '@workos-inc/authkit-remix',
23
- '@workos-inc/authkit-react-router',
24
- '@workos-inc/authkit-react',
25
- '@workos-inc/authkit-js',
26
- ]);
27
- const NO_SDK = {
28
- name: null,
29
- version: null,
30
- latest: null,
31
- outdated: false,
32
- isAuthKit: false,
33
- language: 'javascript',
34
- };
35
- export async function checkSdk(options) {
36
- const packageJson = readPackageJson(options.installDir);
37
- if (!packageJson) {
38
- return (await checkNonJsSdk(options.installDir)) ?? NO_SDK;
39
- }
40
- const installedSdk = SDK_PACKAGES.find((pkg) => hasPackageInstalled(pkg, packageJson));
41
- if (!installedSdk) {
42
- return (await checkNonJsSdk(options.installDir)) ?? NO_SDK;
43
- }
44
- const version = getPackageVersion(installedSdk, packageJson) ?? null;
45
- const latest = await fetchLatestVersion(installedSdk);
46
- return {
47
- name: installedSdk,
48
- version,
49
- latest,
50
- outdated: version && latest ? isVersionOutdated(version, latest) : false,
51
- isAuthKit: AUTHKIT_PACKAGES.has(installedSdk),
52
- language: 'javascript',
53
- };
54
- }
55
- async function fetchLatestVersion(packageName) {
56
- try {
57
- const controller = new AbortController();
58
- const timeoutId = setTimeout(() => controller.abort(), 5000);
59
- const response = await fetch(`https://registry.npmjs.org/${packageName}/latest`, {
60
- signal: controller.signal,
61
- });
62
- clearTimeout(timeoutId);
63
- if (!response.ok)
64
- return null;
65
- const data = (await response.json());
66
- return data.version ?? null;
67
- }
68
- catch {
69
- return null;
70
- }
71
- }
72
- const NON_JS_DETECTORS = [
73
- {
74
- language: 'python',
75
- file: 'requirements.txt',
76
- pattern: /^workos(?:-python)?(?:==|>=|~=|!=)?([\d.]*)/m,
77
- nameExtract: 'workos-python',
78
- versionGroup: 1,
79
- },
80
- {
81
- language: 'python',
82
- file: 'pyproject.toml',
83
- pattern: /workos(?:-python)?/m,
84
- nameExtract: 'workos-python',
85
- },
86
- {
87
- language: 'ruby',
88
- file: 'Gemfile',
89
- pattern: /gem\s+['"]workos(?:-ruby)?['"]/m,
90
- nameExtract: 'workos-ruby',
91
- },
92
- {
93
- language: 'go',
94
- file: 'go.mod',
95
- pattern: /github\.com\/workos\/workos-go(?:\/v\d+)?\s+(v[\d.]+)/m,
96
- nameExtract: 'workos-go',
97
- versionGroup: 1,
98
- },
99
- {
100
- language: 'java',
101
- file: 'pom.xml',
102
- pattern: /<groupId>com\.workos<\/groupId>/m,
103
- nameExtract: 'workos-java',
104
- },
105
- {
106
- language: 'java',
107
- file: 'build.gradle',
108
- pattern: /com\.workos/m,
109
- nameExtract: 'workos-java',
110
- },
111
- {
112
- language: 'php',
113
- file: 'composer.json',
114
- pattern: /"workos\/workos-php"/m,
115
- nameExtract: 'workos-php',
116
- },
117
- ];
118
- async function readFileSafe(path) {
119
- try {
120
- return await readFile(path, 'utf-8');
121
- }
122
- catch {
123
- return null;
124
- }
125
- }
126
- async function checkNonJsSdk(installDir) {
127
- for (const detector of NON_JS_DETECTORS) {
128
- const content = await readFileSafe(join(installDir, detector.file));
129
- if (!content)
130
- continue;
131
- const match = content.match(detector.pattern);
132
- if (match) {
133
- const version = detector.versionGroup ? match[detector.versionGroup] || null : null;
134
- return {
135
- name: detector.nameExtract ?? null,
136
- version,
137
- latest: null, // No registry checks for non-JS in this phase
138
- outdated: false,
139
- isAuthKit: false,
140
- language: detector.language,
141
- };
142
- }
143
- }
144
- // Check .csproj files for .NET (requires directory listing)
145
- try {
146
- const entries = await readdir(installDir);
147
- for (const entry of entries) {
148
- if (entry.endsWith('.csproj')) {
149
- const content = await readFileSafe(join(installDir, entry));
150
- if (content && /PackageReference.*Include="WorkOS\.net"/i.test(content)) {
151
- const versionMatch = content.match(/Include="WorkOS\.net".*?Version="([\d.]+)"/i);
152
- return {
153
- name: 'WorkOS.net',
154
- version: versionMatch?.[1] ?? null,
155
- latest: null,
156
- outdated: false,
157
- isAuthKit: false,
158
- language: 'dotnet',
159
- };
160
- }
161
- }
162
- }
163
- }
164
- catch {
165
- // directory not readable
166
- }
167
- return null;
168
- }
169
- function isVersionOutdated(current, latest) {
170
- // Strip semver range prefixes (^, ~, etc.) and workspace protocol
171
- const cleanCurrent = current.replace(/^[\^~>=<]+/, '').replace(/^workspace:\*?/, '');
172
- const cleanLatest = latest.replace(/^[\^~>=<]+/, '');
173
- // Handle prerelease: "1.0.0-beta.1" → "1.0.0", "-beta.1"
174
- const [currBase] = cleanCurrent.split('-');
175
- const [latBase] = cleanLatest.split('-');
176
- const currParts = currBase.split('.').map(Number);
177
- const latParts = latBase.split('.').map(Number);
178
- // If we got NaN values, we can't reliably compare - assume not outdated
179
- if (currParts.some(isNaN) || latParts.some(isNaN)) {
180
- return false;
181
- }
182
- const [currMajor = 0, currMinor = 0, currPatch = 0] = currParts;
183
- const [latMajor = 0, latMinor = 0, latPatch = 0] = latParts;
184
- if (latMajor > currMajor)
185
- return true;
186
- if (latMajor === currMajor && latMinor > currMinor)
187
- return true;
188
- if (latMajor === currMajor && latMinor === currMinor && latPatch > currPatch)
189
- return true;
190
- return false;
191
- }
192
- //# sourceMappingURL=sdk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../../src/doctor/checks/sdk.ts"],"names":[],"mappings":"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","sourcesContent":["import { readFile, readdir } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport { readPackageJson, hasPackageInstalled, getPackageVersion } from '../../utils/package-json.js';\nimport type { DoctorOptions, SdkInfo } from '../types.js';\n\n// AuthKit SDKs - check @workos/* scope first, then @workos-inc/*\nconst SDK_PACKAGES = [\n // @workos/* scope\n '@workos/authkit-tanstack-react-start',\n '@workos/authkit-sveltekit',\n // @workos-inc/* scope\n '@workos-inc/authkit-nextjs',\n '@workos-inc/authkit-remix',\n '@workos-inc/authkit-react-router',\n '@workos-inc/authkit-react',\n '@workos-inc/authkit-js',\n '@workos-inc/node',\n 'workos', // very old legacy\n] as const;\n\nconst AUTHKIT_PACKAGES = new Set([\n '@workos/authkit-tanstack-react-start',\n '@workos/authkit-sveltekit',\n '@workos-inc/authkit-nextjs',\n '@workos-inc/authkit-remix',\n '@workos-inc/authkit-react-router',\n '@workos-inc/authkit-react',\n '@workos-inc/authkit-js',\n]);\n\nconst NO_SDK: SdkInfo = {\n name: null,\n version: null,\n latest: null,\n outdated: false,\n isAuthKit: false,\n language: 'javascript',\n};\n\nexport async function checkSdk(options: DoctorOptions): Promise<SdkInfo> {\n const packageJson = readPackageJson(options.installDir);\n if (!packageJson) {\n return (await checkNonJsSdk(options.installDir)) ?? NO_SDK;\n }\n\n const installedSdk = SDK_PACKAGES.find((pkg) => hasPackageInstalled(pkg, packageJson));\n if (!installedSdk) {\n return (await checkNonJsSdk(options.installDir)) ?? NO_SDK;\n }\n\n const version = getPackageVersion(installedSdk, packageJson) ?? null;\n const latest = await fetchLatestVersion(installedSdk);\n\n return {\n name: installedSdk,\n version,\n latest,\n outdated: version && latest ? isVersionOutdated(version, latest) : false,\n isAuthKit: AUTHKIT_PACKAGES.has(installedSdk),\n language: 'javascript',\n };\n}\n\nasync function fetchLatestVersion(packageName: string): Promise<string | null> {\n try {\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 5000);\n\n const response = await fetch(`https://registry.npmjs.org/${packageName}/latest`, {\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n if (!response.ok) return null;\n const data = (await response.json()) as { version?: string };\n return data.version ?? null;\n } catch {\n return null;\n }\n}\n\ninterface NonJsDetector {\n language: string;\n file: string;\n pattern: RegExp;\n nameExtract?: string; // Static SDK name when pattern matches\n versionGroup?: number; // Capture group index for version\n}\n\nconst NON_JS_DETECTORS: NonJsDetector[] = [\n {\n language: 'python',\n file: 'requirements.txt',\n pattern: /^workos(?:-python)?(?:==|>=|~=|!=)?([\\d.]*)/m,\n nameExtract: 'workos-python',\n versionGroup: 1,\n },\n {\n language: 'python',\n file: 'pyproject.toml',\n pattern: /workos(?:-python)?/m,\n nameExtract: 'workos-python',\n },\n {\n language: 'ruby',\n file: 'Gemfile',\n pattern: /gem\\s+['\"]workos(?:-ruby)?['\"]/m,\n nameExtract: 'workos-ruby',\n },\n {\n language: 'go',\n file: 'go.mod',\n pattern: /github\\.com\\/workos\\/workos-go(?:\\/v\\d+)?\\s+(v[\\d.]+)/m,\n nameExtract: 'workos-go',\n versionGroup: 1,\n },\n {\n language: 'java',\n file: 'pom.xml',\n pattern: /<groupId>com\\.workos<\\/groupId>/m,\n nameExtract: 'workos-java',\n },\n {\n language: 'java',\n file: 'build.gradle',\n pattern: /com\\.workos/m,\n nameExtract: 'workos-java',\n },\n {\n language: 'php',\n file: 'composer.json',\n pattern: /\"workos\\/workos-php\"/m,\n nameExtract: 'workos-php',\n },\n];\n\nasync function readFileSafe(path: string): Promise<string | null> {\n try {\n return await readFile(path, 'utf-8');\n } catch {\n return null;\n }\n}\n\nasync function checkNonJsSdk(installDir: string): Promise<SdkInfo | null> {\n for (const detector of NON_JS_DETECTORS) {\n const content = await readFileSafe(join(installDir, detector.file));\n if (!content) continue;\n\n const match = content.match(detector.pattern);\n if (match) {\n const version = detector.versionGroup ? match[detector.versionGroup] || null : null;\n return {\n name: detector.nameExtract ?? null,\n version,\n latest: null, // No registry checks for non-JS in this phase\n outdated: false,\n isAuthKit: false,\n language: detector.language,\n };\n }\n }\n\n // Check .csproj files for .NET (requires directory listing)\n try {\n const entries = await readdir(installDir);\n for (const entry of entries) {\n if (entry.endsWith('.csproj')) {\n const content = await readFileSafe(join(installDir, entry));\n if (content && /PackageReference.*Include=\"WorkOS\\.net\"/i.test(content)) {\n const versionMatch = content.match(/Include=\"WorkOS\\.net\".*?Version=\"([\\d.]+)\"/i);\n return {\n name: 'WorkOS.net',\n version: versionMatch?.[1] ?? null,\n latest: null,\n outdated: false,\n isAuthKit: false,\n language: 'dotnet',\n };\n }\n }\n }\n } catch {\n // directory not readable\n }\n\n return null;\n}\n\nfunction isVersionOutdated(current: string, latest: string): boolean {\n // Strip semver range prefixes (^, ~, etc.) and workspace protocol\n const cleanCurrent = current.replace(/^[\\^~>=<]+/, '').replace(/^workspace:\\*?/, '');\n const cleanLatest = latest.replace(/^[\\^~>=<]+/, '');\n\n // Handle prerelease: \"1.0.0-beta.1\" → \"1.0.0\", \"-beta.1\"\n const [currBase] = cleanCurrent.split('-');\n const [latBase] = cleanLatest.split('-');\n\n const currParts = currBase.split('.').map(Number);\n const latParts = latBase.split('.').map(Number);\n\n // If we got NaN values, we can't reliably compare - assume not outdated\n if (currParts.some(isNaN) || latParts.some(isNaN)) {\n return false;\n }\n\n const [currMajor = 0, currMinor = 0, currPatch = 0] = currParts;\n const [latMajor = 0, latMinor = 0, latPatch = 0] = latParts;\n\n if (latMajor > currMajor) return true;\n if (latMajor === currMajor && latMinor > currMinor) return true;\n if (latMajor === currMajor && latMinor === currMinor && latPatch > currPatch) return true;\n return false;\n}\n"]}
@@ -1,9 +0,0 @@
1
- import type { SkillsInfo } from '../types.js';
2
- /**
3
- * Check the freshness of auto-installed WorkOS skills across detected coding
4
- * agents. Compares each agent's version marker (written by autoInstallSkills)
5
- * against the bundled @workos/skills version the CLI ships with. Returns null
6
- * when no agents have a WorkOS skill installed at all — no noise for users who
7
- * never installed through the CLI.
8
- */
9
- export declare function checkSkills(home?: string): Promise<SkillsInfo | null>;
@@ -1,84 +0,0 @@
1
- import { homedir } from 'node:os';
2
- import { access, readFile } from 'node:fs/promises';
3
- import { join } from 'node:path';
4
- import semver from 'semver';
5
- import { createAgents, getBundledSkillsVersion, SKILL_VERSION_MARKER_FILENAME } from '../../commands/install-skill.js';
6
- async function pathExists(p) {
7
- try {
8
- await access(p);
9
- return true;
10
- }
11
- catch {
12
- return false;
13
- }
14
- }
15
- /**
16
- * Stale = installed version is strictly older than the bundled version.
17
- * String inequality would also fire when installed > bundled (user installed
18
- * via a newer CLI then downgraded), and the SKILLS_OUTDATED remediation would
19
- * silently downgrade their agent's skills. Use semver ordering so we only
20
- * recommend an update when the bundled set is actually ahead.
21
- *
22
- * Falls back to string inequality when either version can't be parsed as
23
- * semver — better to flag a possibly-stale skill than to ignore drift entirely.
24
- */
25
- function isStale(installed, bundled) {
26
- const installedValid = semver.valid(installed);
27
- const bundledValid = semver.valid(bundled);
28
- if (installedValid && bundledValid) {
29
- return semver.lt(installedValid, bundledValid);
30
- }
31
- return installed !== bundled;
32
- }
33
- /**
34
- * Check the freshness of auto-installed WorkOS skills across detected coding
35
- * agents. Compares each agent's version marker (written by autoInstallSkills)
36
- * against the bundled @workos/skills version the CLI ships with. Returns null
37
- * when no agents have a WorkOS skill installed at all — no noise for users who
38
- * never installed through the CLI.
39
- */
40
- export async function checkSkills(home = homedir()) {
41
- const bundledVersion = await getBundledSkillsVersion();
42
- const agents = createAgents(home);
43
- const statuses = [];
44
- for (const [, agent] of Object.entries(agents)) {
45
- // Only report on agents that actually have a WorkOS skill installed.
46
- // An agent's `skills/` dir existing (e.g. for unrelated user-installed
47
- // skills) doesn't mean WE installed — and `doctor --fix` would otherwise
48
- // happily write `workos/` and `workos-widgets/` onto an agent that never
49
- // opted in. The marker OR a workos/ / workos-widgets/ subdir is the signal
50
- // (either is enough — older explicit installs of just `workos-widgets`
51
- // shouldn't be invisible to doctor).
52
- const markerPath = join(agent.globalSkillsDir, SKILL_VERSION_MARKER_FILENAME);
53
- const workosSkillDir = join(agent.globalSkillsDir, 'workos');
54
- const widgetsSkillDir = join(agent.globalSkillsDir, 'workos-widgets');
55
- const [hasMarker, hasWorkos, hasWidgets] = await Promise.all([
56
- pathExists(markerPath),
57
- pathExists(workosSkillDir),
58
- pathExists(widgetsSkillDir),
59
- ]);
60
- if (!hasMarker && !hasWorkos && !hasWidgets)
61
- continue;
62
- let installedVersion = null;
63
- if (hasMarker) {
64
- try {
65
- installedVersion = (await readFile(markerPath, 'utf8')).trim() || null;
66
- }
67
- catch {
68
- installedVersion = null;
69
- }
70
- }
71
- statuses.push({
72
- agent: agent.displayName,
73
- installedVersion,
74
- stale: Boolean(bundledVersion && installedVersion && isStale(installedVersion, bundledVersion)),
75
- });
76
- }
77
- if (statuses.length === 0)
78
- return null;
79
- return {
80
- bundledVersion,
81
- agents: statuses,
82
- };
83
- }
84
- //# sourceMappingURL=skills.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../../src/doctor/checks/skills.ts"],"names":[],"mappings":"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","sourcesContent":["import { homedir } from 'node:os';\nimport { access, readFile } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport semver from 'semver';\nimport { createAgents, getBundledSkillsVersion, SKILL_VERSION_MARKER_FILENAME } from '../../commands/install-skill.js';\nimport type { SkillsInfo, SkillAgentStatus } from '../types.js';\n\nasync function pathExists(p: string): Promise<boolean> {\n try {\n await access(p);\n return true;\n } catch {\n return false;\n }\n}\n\n/**\n * Stale = installed version is strictly older than the bundled version.\n * String inequality would also fire when installed > bundled (user installed\n * via a newer CLI then downgraded), and the SKILLS_OUTDATED remediation would\n * silently downgrade their agent's skills. Use semver ordering so we only\n * recommend an update when the bundled set is actually ahead.\n *\n * Falls back to string inequality when either version can't be parsed as\n * semver — better to flag a possibly-stale skill than to ignore drift entirely.\n */\nfunction isStale(installed: string, bundled: string): boolean {\n const installedValid = semver.valid(installed);\n const bundledValid = semver.valid(bundled);\n if (installedValid && bundledValid) {\n return semver.lt(installedValid, bundledValid);\n }\n return installed !== bundled;\n}\n\n/**\n * Check the freshness of auto-installed WorkOS skills across detected coding\n * agents. Compares each agent's version marker (written by autoInstallSkills)\n * against the bundled @workos/skills version the CLI ships with. Returns null\n * when no agents have a WorkOS skill installed at all — no noise for users who\n * never installed through the CLI.\n */\nexport async function checkSkills(home: string = homedir()): Promise<SkillsInfo | null> {\n const bundledVersion = await getBundledSkillsVersion();\n const agents = createAgents(home);\n\n const statuses: SkillAgentStatus[] = [];\n\n for (const [, agent] of Object.entries(agents)) {\n // Only report on agents that actually have a WorkOS skill installed.\n // An agent's `skills/` dir existing (e.g. for unrelated user-installed\n // skills) doesn't mean WE installed — and `doctor --fix` would otherwise\n // happily write `workos/` and `workos-widgets/` onto an agent that never\n // opted in. The marker OR a workos/ / workos-widgets/ subdir is the signal\n // (either is enough — older explicit installs of just `workos-widgets`\n // shouldn't be invisible to doctor).\n const markerPath = join(agent.globalSkillsDir, SKILL_VERSION_MARKER_FILENAME);\n const workosSkillDir = join(agent.globalSkillsDir, 'workos');\n const widgetsSkillDir = join(agent.globalSkillsDir, 'workos-widgets');\n const [hasMarker, hasWorkos, hasWidgets] = await Promise.all([\n pathExists(markerPath),\n pathExists(workosSkillDir),\n pathExists(widgetsSkillDir),\n ]);\n if (!hasMarker && !hasWorkos && !hasWidgets) continue;\n\n let installedVersion: string | null = null;\n if (hasMarker) {\n try {\n installedVersion = (await readFile(markerPath, 'utf8')).trim() || null;\n } catch {\n installedVersion = null;\n }\n }\n\n statuses.push({\n agent: agent.displayName,\n installedVersion,\n stale: Boolean(bundledVersion && installedVersion && isStale(installedVersion, bundledVersion)),\n });\n }\n\n if (statuses.length === 0) return null;\n\n return {\n bundledVersion,\n agents: statuses,\n };\n}\n"]}
@@ -1 +0,0 @@
1
- export declare function copyToClipboard(text: string): Promise<boolean>;
@@ -1,43 +0,0 @@
1
- import { spawn } from 'node:child_process';
2
- import { platform } from 'node:os';
3
- /**
4
- * Execute a command with stdin input.
5
- * Returns true if the command succeeded (exit code 0).
6
- */
7
- function execWithStdin(command, args, input) {
8
- return new Promise((resolve) => {
9
- const child = spawn(command, args, {
10
- shell: false,
11
- stdio: ['pipe', 'ignore', 'ignore'],
12
- });
13
- child.on('error', () => resolve(false));
14
- child.on('close', (code) => resolve(code === 0));
15
- child.stdin?.write(input);
16
- child.stdin?.end();
17
- });
18
- }
19
- export async function copyToClipboard(text) {
20
- const os = platform();
21
- try {
22
- if (os === 'darwin') {
23
- // macOS: use pbcopy
24
- return await execWithStdin('pbcopy', [], text);
25
- }
26
- else if (os === 'linux') {
27
- // Linux: try xclip first, then xsel
28
- const xclipResult = await execWithStdin('xclip', ['-selection', 'clipboard'], text);
29
- if (xclipResult)
30
- return true;
31
- return await execWithStdin('xsel', ['--clipboard', '--input'], text);
32
- }
33
- else if (os === 'win32') {
34
- // Windows: use clip.exe
35
- return await execWithStdin('clip', [], text);
36
- }
37
- return false;
38
- }
39
- catch {
40
- return false;
41
- }
42
- }
43
- //# sourceMappingURL=clipboard.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clipboard.js","sourceRoot":"","sources":["../../src/doctor/clipboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC;;;GAGG;AACH,SAAS,aAAa,CAAC,OAAe,EAAE,IAAc,EAAE,KAAa;IACnE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;YACjC,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;SACpC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QAEjD,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAY;IAChD,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;IAEtB,IAAI,CAAC;QACH,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;YACpB,oBAAoB;YACpB,OAAO,MAAM,aAAa,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACjD,CAAC;aAAM,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;YAC1B,oCAAoC;YACpC,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;YACpF,IAAI,WAAW;gBAAE,OAAO,IAAI,CAAC;YAC7B,OAAO,MAAM,aAAa,CAAC,MAAM,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;QACvE,CAAC;aAAM,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;YAC1B,wBAAwB;YACxB,OAAO,MAAM,aAAa,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC","sourcesContent":["import { spawn } from 'node:child_process';\nimport { platform } from 'node:os';\n\n/**\n * Execute a command with stdin input.\n * Returns true if the command succeeded (exit code 0).\n */\nfunction execWithStdin(command: string, args: string[], input: string): Promise<boolean> {\n return new Promise((resolve) => {\n const child = spawn(command, args, {\n shell: false,\n stdio: ['pipe', 'ignore', 'ignore'],\n });\n\n child.on('error', () => resolve(false));\n child.on('close', (code) => resolve(code === 0));\n\n child.stdin?.write(input);\n child.stdin?.end();\n });\n}\n\nexport async function copyToClipboard(text: string): Promise<boolean> {\n const os = platform();\n\n try {\n if (os === 'darwin') {\n // macOS: use pbcopy\n return await execWithStdin('pbcopy', [], text);\n } else if (os === 'linux') {\n // Linux: try xclip first, then xsel\n const xclipResult = await execWithStdin('xclip', ['-selection', 'clipboard'], text);\n if (xclipResult) return true;\n return await execWithStdin('xsel', ['--clipboard', '--input'], text);\n } else if (os === 'win32') {\n // Windows: use clip.exe\n return await execWithStdin('clip', [], text);\n }\n return false;\n } catch {\n return false;\n }\n}\n"]}
@@ -1,26 +0,0 @@
1
- import type { DoctorOptions, DoctorReport, SkillsRefreshResult } from './types.js';
2
- /**
3
- * Skills `--fix` is allowed to refresh. Hardcoded — NOT derived from
4
- * discoverSkills — so future bundled skills require an explicit opt-in here
5
- * before doctor will write to their target directory. This is the contract's
6
- * promise that `--fix` only ever touches `workos/` and `workos-widgets/`.
7
- */
8
- export declare const FIXABLE_SKILLS: readonly ["workos", "workos-widgets"];
9
- /**
10
- * Refresh stale WorkOS skills if `--fix` is set and at least one agent is
11
- * stale or has no marker. Always re-reads `checkSkills()` after a successful
12
- * refresh so detectIssues sees the post-refresh state and we don't ship a
13
- * doctor report that simultaneously claims "fixed" and "still stale".
14
- *
15
- * Extracted from runDoctor for unit testability — runDoctor itself depends on
16
- * eight upstream checks that are expensive to mock.
17
- */
18
- export declare function maybeRefreshSkills(options: Pick<DoctorOptions, 'fix'>, skills: DoctorReport['skills']): Promise<{
19
- skillsRefresh?: SkillsRefreshResult;
20
- skills: DoctorReport['skills'];
21
- }>;
22
- export declare function runDoctor(options: DoctorOptions): Promise<DoctorReport>;
23
- export declare function outputReport(report: DoctorReport, options: DoctorOptions): Promise<void>;
24
- export { formatReport } from './output.js';
25
- export { formatReportAsJson } from './json-output.js';
26
- export type { DoctorReport, DoctorOptions } from './types.js';
@@ -1,182 +0,0 @@
1
- import { checkSdk } from './checks/sdk.js';
2
- import { checkFramework } from './checks/framework.js';
3
- import { checkRuntime } from './checks/runtime.js';
4
- import { checkLanguage } from './checks/language.js';
5
- import { checkEnvironment } from './checks/environment.js';
6
- import { checkConnectivity } from './checks/connectivity.js';
7
- import { checkHostExecution } from './checks/host-execution.js';
8
- import { checkDashboardSettings, compareRedirectUris } from './checks/dashboard.js';
9
- import { checkAuthPatterns } from './checks/auth-patterns.js';
10
- import { checkAiAnalysis } from './checks/ai-analysis.js';
11
- import { checkSkills } from './checks/skills.js';
12
- import { checkMcp } from './checks/mcp.js';
13
- import { refreshWorkOSSkills } from '../commands/install-skill.js';
14
- import { detectIssues } from './issues.js';
15
- import { formatReport } from './output.js';
16
- import { formatReportAsJson } from './json-output.js';
17
- import { copyToClipboard } from './clipboard.js';
18
- import { getInteractionMode } from '../utils/interaction-mode.js';
19
- import Chalk from 'chalk';
20
- const DOCTOR_VERSION = '1.0.0';
21
- /**
22
- * Skills `--fix` is allowed to refresh. Hardcoded — NOT derived from
23
- * discoverSkills — so future bundled skills require an explicit opt-in here
24
- * before doctor will write to their target directory. This is the contract's
25
- * promise that `--fix` only ever touches `workos/` and `workos-widgets/`.
26
- */
27
- export const FIXABLE_SKILLS = ['workos', 'workos-widgets'];
28
- /**
29
- * Refresh stale WorkOS skills if `--fix` is set and at least one agent is
30
- * stale or has no marker. Always re-reads `checkSkills()` after a successful
31
- * refresh so detectIssues sees the post-refresh state and we don't ship a
32
- * doctor report that simultaneously claims "fixed" and "still stale".
33
- *
34
- * Extracted from runDoctor for unit testability — runDoctor itself depends on
35
- * eight upstream checks that are expensive to mock.
36
- */
37
- export async function maybeRefreshSkills(options, skills) {
38
- if (!options.fix || !skills)
39
- return { skills };
40
- const stalePresent = skills.agents.some((a) => a.stale || a.installedVersion === null);
41
- if (!stalePresent)
42
- return { skills };
43
- const refresh = await refreshWorkOSSkills({
44
- // Explicit allowlist — NOT discoverSkills — so the contract's
45
- // workos/+workos-widgets-only constraint can't drift.
46
- skills: [...FIXABLE_SKILLS],
47
- });
48
- if (!refresh)
49
- return { skills };
50
- return {
51
- skillsRefresh: {
52
- before: refresh.perAgentBefore,
53
- after: refresh.perAgentAfter,
54
- skillsInstalled: refresh.skills,
55
- },
56
- skills: (await checkSkills()) ?? undefined,
57
- };
58
- }
59
- export async function runDoctor(options) {
60
- const interactionMode = getInteractionMode();
61
- // Environment check first - loads project's .env/.env.local files
62
- // Must run before connectivity so the resolved base URL is available
63
- const { info: environment, raw: envRaw } = checkEnvironment(options);
64
- // Run remaining checks concurrently
65
- const [sdk, framework, runtime, connectivity, language, hostExecution, mcpResult] = await Promise.all([
66
- checkSdk(options),
67
- checkFramework(options),
68
- checkRuntime(options),
69
- checkConnectivity(options, environment.baseUrl ?? 'https://api.workos.com'),
70
- checkLanguage(options.installDir),
71
- checkHostExecution(),
72
- checkMcp(),
73
- ]);
74
- // Normalize the check's null (no agents detected) to undefined for the report.
75
- const mcp = mcpResult ?? undefined;
76
- let skills = (await checkSkills()) ?? undefined;
77
- // `--fix`: refresh stale WorkOS skills BEFORE earlyIssues + AI analysis so
78
- // every downstream consumer (issue detection, AI prompt context) sees the
79
- // post-refresh skill state and doesn't reference a SKILLS_OUTDATED warning
80
- // that was just resolved.
81
- const refreshOutcome = await maybeRefreshSkills(options, skills);
82
- const skillsRefresh = refreshOutcome.skillsRefresh;
83
- skills = refreshOutcome.skills;
84
- // Dashboard settings + auth patterns + AI analysis (parallel, all need sdk/framework results)
85
- // AI analysis also receives early issues as context to avoid duplication
86
- const earlyIssues = detectIssues({
87
- version: DOCTOR_VERSION,
88
- timestamp: '',
89
- interactionMode,
90
- project: { path: options.installDir, packageManager: runtime.packageManager },
91
- sdk,
92
- language,
93
- runtime,
94
- framework,
95
- environment,
96
- hostExecution,
97
- connectivity,
98
- skills,
99
- mcp,
100
- });
101
- const [dashboardResult, authPatterns, aiAnalysis] = await Promise.all([
102
- checkDashboardSettings(options, environment.apiKeyType, envRaw),
103
- checkAuthPatterns(options, framework, environment, sdk),
104
- checkAiAnalysis({ installDir: options.installDir, language, framework, sdk, environment, existingIssues: earlyIssues }, { skipAi: options.skipAi }),
105
- ]);
106
- // Compute expected redirect URI from framework detection if not set in env
107
- const redirectUriSource = environment.redirectUri ? 'env' : 'inferred';
108
- const expectedRedirectUri = environment.redirectUri ??
109
- (framework.expectedCallbackPath && framework.detectedPort
110
- ? `http://localhost:${framework.detectedPort}${framework.expectedCallbackPath}`
111
- : null);
112
- // Compare redirect URIs if we have dashboard data
113
- const redirectUris = dashboardResult.settings
114
- ? compareRedirectUris(expectedRedirectUri, dashboardResult.settings.redirectUris, redirectUriSource)
115
- : undefined;
116
- // Build partial report
117
- const partialReport = {
118
- version: DOCTOR_VERSION,
119
- timestamp: new Date().toISOString(),
120
- interactionMode,
121
- project: {
122
- path: options.installDir,
123
- packageManager: runtime.packageManager,
124
- },
125
- sdk,
126
- language,
127
- runtime,
128
- framework,
129
- environment,
130
- hostExecution,
131
- connectivity,
132
- credentialValidation: dashboardResult.credentialValidation,
133
- dashboardSettings: dashboardResult.settings ?? undefined,
134
- dashboardError: dashboardResult.settings ? undefined : dashboardResult.error,
135
- redirectUris,
136
- authPatterns,
137
- aiAnalysis,
138
- skills,
139
- skillsRefresh,
140
- mcp,
141
- };
142
- // Detect issues based on (post-refresh) data.
143
- const issues = detectIssues(partialReport);
144
- // Calculate summary
145
- const errors = issues.filter((i) => i.severity === 'error').length;
146
- const warnings = issues.filter((i) => i.severity === 'warning').length;
147
- const report = {
148
- ...partialReport,
149
- issues,
150
- summary: {
151
- errors,
152
- warnings,
153
- healthy: errors === 0,
154
- },
155
- };
156
- return report;
157
- }
158
- export async function outputReport(report, options) {
159
- if (options.json) {
160
- const json = formatReportAsJson(report);
161
- console.log(json);
162
- if (options.copy) {
163
- const success = await copyToClipboard(json);
164
- if (success) {
165
- console.error('(Copied to clipboard)');
166
- }
167
- }
168
- }
169
- else {
170
- formatReport(report, { verbose: options.verbose });
171
- if (options.copy) {
172
- const json = formatReportAsJson(report);
173
- const success = await copyToClipboard(json);
174
- if (success) {
175
- console.log(Chalk.dim('Report copied to clipboard'));
176
- }
177
- }
178
- }
179
- }
180
- export { formatReport } from './output.js';
181
- export { formatReportAsJson } from './json-output.js';
182
- //# sourceMappingURL=index.js.map