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,2 +0,0 @@
1
- import type { DoctorOptions, ConnectivityInfo } from '../types.js';
2
- export declare function checkConnectivity(options: DoctorOptions, baseUrl: string): Promise<ConnectivityInfo>;
@@ -1,35 +0,0 @@
1
- export async function checkConnectivity(options, baseUrl) {
2
- if (options.skipApi) {
3
- return {
4
- apiReachable: false,
5
- latencyMs: null,
6
- tlsValid: false,
7
- error: 'Skipped (--skip-api)',
8
- };
9
- }
10
- const startTime = Date.now();
11
- try {
12
- const controller = new AbortController();
13
- const timeoutId = setTimeout(() => controller.abort(), 10000);
14
- const response = await fetch(`${baseUrl}/health`, {
15
- signal: controller.signal,
16
- });
17
- clearTimeout(timeoutId);
18
- const latencyMs = Date.now() - startTime;
19
- return {
20
- apiReachable: response.ok,
21
- latencyMs,
22
- tlsValid: true, // If fetch succeeded over HTTPS, TLS is valid
23
- error: response.ok ? undefined : `HTTP ${response.status}`,
24
- };
25
- }
26
- catch (error) {
27
- return {
28
- apiReachable: false,
29
- latencyMs: null,
30
- tlsValid: false,
31
- error: error instanceof Error ? error.message : 'Unknown error',
32
- };
33
- }
34
- }
35
- //# sourceMappingURL=connectivity.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"connectivity.js","sourceRoot":"","sources":["../../../src/doctor/checks/connectivity.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAsB,EAAE,OAAe;IAC7E,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO;YACL,YAAY,EAAE,KAAK;YACnB,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,sBAAsB;SAC9B,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;QAE9D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,SAAS,EAAE;YAChD,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;QAEH,YAAY,CAAC,SAAS,CAAC,CAAC;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAEzC,OAAO;YACL,YAAY,EAAE,QAAQ,CAAC,EAAE;YACzB,SAAS;YACT,QAAQ,EAAE,IAAI,EAAE,8CAA8C;YAC9D,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,QAAQ,CAAC,MAAM,EAAE;SAC3D,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,YAAY,EAAE,KAAK;YACnB,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAChE,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["import type { DoctorOptions, ConnectivityInfo } from '../types.js';\n\nexport async function checkConnectivity(options: DoctorOptions, baseUrl: string): Promise<ConnectivityInfo> {\n if (options.skipApi) {\n return {\n apiReachable: false,\n latencyMs: null,\n tlsValid: false,\n error: 'Skipped (--skip-api)',\n };\n }\n const startTime = Date.now();\n\n try {\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 10000);\n\n const response = await fetch(`${baseUrl}/health`, {\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n const latencyMs = Date.now() - startTime;\n\n return {\n apiReachable: response.ok,\n latencyMs,\n tlsValid: true, // If fetch succeeded over HTTPS, TLS is valid\n error: response.ok ? undefined : `HTTP ${response.status}`,\n };\n } catch (error) {\n return {\n apiReachable: false,\n latencyMs: null,\n tlsValid: false,\n error: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n}\n"]}
@@ -1,3 +0,0 @@
1
- import type { DashboardFetchResult, DoctorOptions, RedirectUriComparison, EnvironmentRaw } from '../types.js';
2
- export declare function checkDashboardSettings(options: DoctorOptions, apiKeyType: 'staging' | 'production' | null, raw: EnvironmentRaw): Promise<DashboardFetchResult>;
3
- export declare function compareRedirectUris(codeUri: string | null, dashboardUris: string[], source?: 'env' | 'inferred'): RedirectUriComparison;
@@ -1,123 +0,0 @@
1
- const WORKOS_API_URL = 'https://api.workos.com';
2
- export async function checkDashboardSettings(options, apiKeyType, raw) {
3
- // Never call API with production keys
4
- if (apiKeyType === 'production') {
5
- return { settings: null, error: 'Skipped (production API key)' };
6
- }
7
- if (options.skipApi) {
8
- return { settings: null, error: 'Skipped (--skip-api)' };
9
- }
10
- const apiKey = raw.apiKey;
11
- if (!apiKey) {
12
- return { settings: null, error: 'No API key configured' };
13
- }
14
- try {
15
- return await fetchDashboardSettings(apiKey, raw.baseUrl);
16
- }
17
- catch (err) {
18
- const message = err instanceof Error ? err.message : 'Unknown error';
19
- return { settings: null, error: message };
20
- }
21
- }
22
- async function fetchDashboardSettings(apiKey, baseUrlOverride) {
23
- const baseUrl = baseUrlOverride ?? WORKOS_API_URL;
24
- const controller = new AbortController();
25
- const timeoutId = setTimeout(() => controller.abort(), 10000);
26
- try {
27
- const redirectUris = [];
28
- // Single /organizations?limit=1 call — validates credentials AND gets org count
29
- const orgsResponse = await fetch(`${baseUrl}/organizations?limit=1`, {
30
- headers: { Authorization: `Bearer ${apiKey}` },
31
- signal: controller.signal,
32
- });
33
- if (orgsResponse.status === 401) {
34
- return {
35
- settings: null,
36
- credentialValidation: { valid: false, clientIdMatch: true, error: 'Invalid API key' },
37
- error: 'Invalid API key (401)',
38
- };
39
- }
40
- if (orgsResponse.status === 403) {
41
- return {
42
- settings: null,
43
- credentialValidation: { valid: false, clientIdMatch: true, error: 'API key lacks permissions' },
44
- error: 'API key lacks permissions (403)',
45
- };
46
- }
47
- if (!orgsResponse.ok) {
48
- return {
49
- settings: null,
50
- credentialValidation: { valid: false, clientIdMatch: true, error: `API error: ${orgsResponse.status}` },
51
- error: `API error: ${orgsResponse.status}`,
52
- };
53
- }
54
- // Credentials valid — extract org count from the same response
55
- const credentialValidation = { valid: true, clientIdMatch: true };
56
- let organizationCount = 0;
57
- const orgsData = (await orgsResponse.json());
58
- organizationCount = orgsData.list_metadata?.total_count ?? orgsData.data?.length ?? 0;
59
- // Fetch environment settings
60
- const envResponse = await fetch(`${baseUrl}/environments/current`, {
61
- headers: { Authorization: `Bearer ${apiKey}` },
62
- signal: controller.signal,
63
- });
64
- let authMethods = [];
65
- let sessionTimeout = null;
66
- let mfa = null;
67
- if (envResponse.ok) {
68
- const envData = (await envResponse.json());
69
- authMethods = envData.auth_methods ?? [];
70
- sessionTimeout = envData.session_timeout ?? null;
71
- mfa = envData.mfa_policy ?? null;
72
- }
73
- return {
74
- settings: { redirectUris, authMethods, sessionTimeout, mfa, organizationCount },
75
- credentialValidation,
76
- };
77
- }
78
- catch (err) {
79
- if (err instanceof Error && err.name === 'AbortError') {
80
- throw new Error('Request timeout (10s)');
81
- }
82
- throw err;
83
- }
84
- finally {
85
- clearTimeout(timeoutId);
86
- }
87
- }
88
- /**
89
- * Normalize a URI for comparison:
90
- * - Remove trailing slashes
91
- * - Normalize localhost variants (127.0.0.1 → localhost)
92
- * - Lowercase the host portion
93
- */
94
- function normalizeUri(uri) {
95
- try {
96
- const url = new URL(uri);
97
- // Normalize localhost variants
98
- if (url.hostname === '127.0.0.1' || url.hostname === '[::1]') {
99
- url.hostname = 'localhost';
100
- }
101
- // Lowercase hostname (but preserve path case for compatibility)
102
- url.hostname = url.hostname.toLowerCase();
103
- // Remove trailing slash from pathname (unless it's just "/")
104
- if (url.pathname.length > 1 && url.pathname.endsWith('/')) {
105
- url.pathname = url.pathname.slice(0, -1);
106
- }
107
- return url.toString();
108
- }
109
- catch {
110
- // If URL parsing fails, return as-is for exact match fallback
111
- return uri;
112
- }
113
- }
114
- export function compareRedirectUris(codeUri, dashboardUris, source) {
115
- if (!codeUri) {
116
- return { codeUri, dashboardUris, match: false, source };
117
- }
118
- const normalizedCode = normalizeUri(codeUri);
119
- const normalizedDashboard = dashboardUris.map(normalizeUri);
120
- const match = normalizedDashboard.includes(normalizedCode);
121
- return { codeUri, dashboardUris, match, source };
122
- }
123
- //# sourceMappingURL=dashboard.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../../src/doctor/checks/dashboard.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n CredentialValidation,\n DashboardFetchResult,\n DoctorOptions,\n RedirectUriComparison,\n EnvironmentRaw,\n} from '../types.js';\n\nconst WORKOS_API_URL = 'https://api.workos.com';\n\nexport async function checkDashboardSettings(\n options: DoctorOptions,\n apiKeyType: 'staging' | 'production' | null,\n raw: EnvironmentRaw,\n): Promise<DashboardFetchResult> {\n // Never call API with production keys\n if (apiKeyType === 'production') {\n return { settings: null, error: 'Skipped (production API key)' };\n }\n\n if (options.skipApi) {\n return { settings: null, error: 'Skipped (--skip-api)' };\n }\n\n const apiKey = raw.apiKey;\n if (!apiKey) {\n return { settings: null, error: 'No API key configured' };\n }\n\n try {\n return await fetchDashboardSettings(apiKey, raw.baseUrl);\n } catch (err) {\n const message = err instanceof Error ? err.message : 'Unknown error';\n return { settings: null, error: message };\n }\n}\n\nasync function fetchDashboardSettings(apiKey: string, baseUrlOverride: string | null): Promise<DashboardFetchResult> {\n const baseUrl = baseUrlOverride ?? WORKOS_API_URL;\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 10000);\n\n try {\n const redirectUris: string[] = [];\n\n // Single /organizations?limit=1 call — validates credentials AND gets org count\n const orgsResponse = await fetch(`${baseUrl}/organizations?limit=1`, {\n headers: { Authorization: `Bearer ${apiKey}` },\n signal: controller.signal,\n });\n\n if (orgsResponse.status === 401) {\n return {\n settings: null,\n credentialValidation: { valid: false, clientIdMatch: true, error: 'Invalid API key' },\n error: 'Invalid API key (401)',\n };\n }\n if (orgsResponse.status === 403) {\n return {\n settings: null,\n credentialValidation: { valid: false, clientIdMatch: true, error: 'API key lacks permissions' },\n error: 'API key lacks permissions (403)',\n };\n }\n if (!orgsResponse.ok) {\n return {\n settings: null,\n credentialValidation: { valid: false, clientIdMatch: true, error: `API error: ${orgsResponse.status}` },\n error: `API error: ${orgsResponse.status}`,\n };\n }\n\n // Credentials valid — extract org count from the same response\n const credentialValidation: CredentialValidation = { valid: true, clientIdMatch: true };\n\n let organizationCount = 0;\n const orgsData = (await orgsResponse.json()) as {\n list_metadata?: { total_count?: number };\n data?: unknown[];\n };\n organizationCount = orgsData.list_metadata?.total_count ?? orgsData.data?.length ?? 0;\n\n // Fetch environment settings\n const envResponse = await fetch(`${baseUrl}/environments/current`, {\n headers: { Authorization: `Bearer ${apiKey}` },\n signal: controller.signal,\n });\n\n let authMethods: string[] = [];\n let sessionTimeout: string | null = null;\n let mfa: 'optional' | 'required' | 'disabled' | null = null;\n\n if (envResponse.ok) {\n const envData = (await envResponse.json()) as {\n auth_methods?: string[];\n session_timeout?: string;\n mfa_policy?: 'optional' | 'required' | 'disabled';\n };\n authMethods = envData.auth_methods ?? [];\n sessionTimeout = envData.session_timeout ?? null;\n mfa = envData.mfa_policy ?? null;\n }\n\n return {\n settings: { redirectUris, authMethods, sessionTimeout, mfa, organizationCount },\n credentialValidation,\n };\n } catch (err) {\n if (err instanceof Error && err.name === 'AbortError') {\n throw new Error('Request timeout (10s)');\n }\n throw err;\n } finally {\n clearTimeout(timeoutId);\n }\n}\n\n/**\n * Normalize a URI for comparison:\n * - Remove trailing slashes\n * - Normalize localhost variants (127.0.0.1 → localhost)\n * - Lowercase the host portion\n */\nfunction normalizeUri(uri: string): string {\n try {\n const url = new URL(uri);\n // Normalize localhost variants\n if (url.hostname === '127.0.0.1' || url.hostname === '[::1]') {\n url.hostname = 'localhost';\n }\n // Lowercase hostname (but preserve path case for compatibility)\n url.hostname = url.hostname.toLowerCase();\n // Remove trailing slash from pathname (unless it's just \"/\")\n if (url.pathname.length > 1 && url.pathname.endsWith('/')) {\n url.pathname = url.pathname.slice(0, -1);\n }\n return url.toString();\n } catch {\n // If URL parsing fails, return as-is for exact match fallback\n return uri;\n }\n}\n\nexport function compareRedirectUris(\n codeUri: string | null,\n dashboardUris: string[],\n source?: 'env' | 'inferred',\n): RedirectUriComparison {\n if (!codeUri) {\n return { codeUri, dashboardUris, match: false, source };\n }\n\n const normalizedCode = normalizeUri(codeUri);\n const normalizedDashboard = dashboardUris.map(normalizeUri);\n const match = normalizedDashboard.includes(normalizedCode);\n\n return { codeUri, dashboardUris, match, source };\n}\n"]}
@@ -1,2 +0,0 @@
1
- import type { EnvironmentCheckResult, DoctorOptions } from '../types.js';
2
- export declare function checkEnvironment(options?: DoctorOptions): EnvironmentCheckResult;
@@ -1,86 +0,0 @@
1
- import { readFileSync, existsSync } from 'node:fs';
2
- import { join } from 'node:path';
3
- function parseEnvFile(content) {
4
- const result = {};
5
- for (const line of content.split(/\r?\n/)) {
6
- const trimmed = line.trim();
7
- if (!trimmed || trimmed.startsWith('#'))
8
- continue;
9
- // Strip optional `export ` prefix
10
- const entry = trimmed.startsWith('export ') ? trimmed.slice(7) : trimmed;
11
- const eqIndex = entry.indexOf('=');
12
- if (eqIndex === -1)
13
- continue;
14
- const key = entry.slice(0, eqIndex).trim();
15
- let value = entry.slice(eqIndex + 1).trim();
16
- // Remove surrounding quotes (single or double)
17
- if ((value.startsWith('"') && value.endsWith('"')) || (value.startsWith("'") && value.endsWith("'"))) {
18
- value = value.slice(1, -1);
19
- }
20
- result[key] = value;
21
- }
22
- return result;
23
- }
24
- /**
25
- * Load environment variables from project's .env files.
26
- * Priority: .env.local > .env (matching Next.js/Vite conventions)
27
- */
28
- function loadProjectEnv(installDir) {
29
- const env = {};
30
- // Load in order: .env first, then .env.local (later overrides earlier)
31
- const envFiles = ['.env', '.env.local'];
32
- for (const file of envFiles) {
33
- const filePath = join(installDir, file);
34
- if (existsSync(filePath)) {
35
- try {
36
- const content = readFileSync(filePath, 'utf-8');
37
- Object.assign(env, parseEnvFile(content));
38
- }
39
- catch {
40
- // Ignore read errors
41
- }
42
- }
43
- }
44
- return env;
45
- }
46
- export function checkEnvironment(options) {
47
- // Load project env files, then fall back to process.env
48
- const projectEnv = options?.installDir ? loadProjectEnv(options.installDir) : {};
49
- const apiKey = projectEnv.WORKOS_API_KEY ?? process.env.WORKOS_API_KEY ?? null;
50
- const clientId = projectEnv.WORKOS_CLIENT_ID ?? process.env.WORKOS_CLIENT_ID ?? null;
51
- const redirectUri = projectEnv.WORKOS_REDIRECT_URI ?? process.env.WORKOS_REDIRECT_URI ?? null;
52
- const cookieDomain = projectEnv.WORKOS_COOKIE_DOMAIN ?? process.env.WORKOS_COOKIE_DOMAIN ?? null;
53
- const baseUrl = projectEnv.WORKOS_BASE_URL ?? process.env.WORKOS_BASE_URL ?? null;
54
- return {
55
- info: {
56
- apiKeyConfigured: !!apiKey,
57
- apiKeyType: getApiKeyType(apiKey),
58
- clientId: truncateClientId(clientId),
59
- redirectUri: redirectUri,
60
- cookieDomain: cookieDomain,
61
- baseUrl: baseUrl ?? 'https://api.workos.com',
62
- },
63
- raw: {
64
- apiKey,
65
- clientId,
66
- baseUrl: baseUrl ?? 'https://api.workos.com',
67
- },
68
- };
69
- }
70
- function getApiKeyType(apiKey) {
71
- if (!apiKey)
72
- return null;
73
- if (apiKey.startsWith('sk_test_'))
74
- return 'staging';
75
- if (apiKey.startsWith('sk_live_'))
76
- return 'production';
77
- return null; // Unknown format
78
- }
79
- function truncateClientId(clientId) {
80
- if (!clientId)
81
- return null;
82
- if (clientId.length <= 15)
83
- return clientId;
84
- return `${clientId.slice(0, 10)}...${clientId.slice(-3)}`;
85
- }
86
- //# sourceMappingURL=environment.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../src/doctor/checks/environment.ts"],"names":[],"mappings":"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","sourcesContent":["import { readFileSync, existsSync } from 'node:fs';\nimport { join } from 'node:path';\nimport type { EnvironmentCheckResult, DoctorOptions } from '../types.js';\n\nfunction parseEnvFile(content: string): Record<string, string> {\n const result: Record<string, string> = {};\n\n for (const line of content.split(/\\r?\\n/)) {\n const trimmed = line.trim();\n if (!trimmed || trimmed.startsWith('#')) continue;\n\n // Strip optional `export ` prefix\n const entry = trimmed.startsWith('export ') ? trimmed.slice(7) : trimmed;\n const eqIndex = entry.indexOf('=');\n if (eqIndex === -1) continue;\n\n const key = entry.slice(0, eqIndex).trim();\n let value = entry.slice(eqIndex + 1).trim();\n\n // Remove surrounding quotes (single or double)\n if ((value.startsWith('\"') && value.endsWith('\"')) || (value.startsWith(\"'\") && value.endsWith(\"'\"))) {\n value = value.slice(1, -1);\n }\n\n result[key] = value;\n }\n\n return result;\n}\n\n/**\n * Load environment variables from project's .env files.\n * Priority: .env.local > .env (matching Next.js/Vite conventions)\n */\nfunction loadProjectEnv(installDir: string): Record<string, string> {\n const env: Record<string, string> = {};\n\n // Load in order: .env first, then .env.local (later overrides earlier)\n const envFiles = ['.env', '.env.local'];\n\n for (const file of envFiles) {\n const filePath = join(installDir, file);\n if (existsSync(filePath)) {\n try {\n const content = readFileSync(filePath, 'utf-8');\n Object.assign(env, parseEnvFile(content));\n } catch {\n // Ignore read errors\n }\n }\n }\n\n return env;\n}\n\nexport function checkEnvironment(options?: DoctorOptions): EnvironmentCheckResult {\n // Load project env files, then fall back to process.env\n const projectEnv = options?.installDir ? loadProjectEnv(options.installDir) : {};\n\n const apiKey = projectEnv.WORKOS_API_KEY ?? process.env.WORKOS_API_KEY ?? null;\n const clientId = projectEnv.WORKOS_CLIENT_ID ?? process.env.WORKOS_CLIENT_ID ?? null;\n const redirectUri = projectEnv.WORKOS_REDIRECT_URI ?? process.env.WORKOS_REDIRECT_URI ?? null;\n const cookieDomain = projectEnv.WORKOS_COOKIE_DOMAIN ?? process.env.WORKOS_COOKIE_DOMAIN ?? null;\n const baseUrl = projectEnv.WORKOS_BASE_URL ?? process.env.WORKOS_BASE_URL ?? null;\n\n return {\n info: {\n apiKeyConfigured: !!apiKey,\n apiKeyType: getApiKeyType(apiKey),\n clientId: truncateClientId(clientId),\n redirectUri: redirectUri,\n cookieDomain: cookieDomain,\n baseUrl: baseUrl ?? 'https://api.workos.com',\n },\n raw: {\n apiKey,\n clientId,\n baseUrl: baseUrl ?? 'https://api.workos.com',\n },\n };\n}\n\nfunction getApiKeyType(apiKey: string | undefined): 'staging' | 'production' | null {\n if (!apiKey) return null;\n if (apiKey.startsWith('sk_test_')) return 'staging';\n if (apiKey.startsWith('sk_live_')) return 'production';\n return null; // Unknown format\n}\n\nfunction truncateClientId(clientId: string | undefined): string | null {\n if (!clientId) return null;\n if (clientId.length <= 15) return clientId;\n return `${clientId.slice(0, 10)}...${clientId.slice(-3)}`;\n}\n"]}
@@ -1,2 +0,0 @@
1
- import type { DoctorOptions, FrameworkInfo } from '../types.js';
2
- export declare function checkFramework(options: DoctorOptions): Promise<FrameworkInfo>;
@@ -1,94 +0,0 @@
1
- import { existsSync } from 'node:fs';
2
- import { join } from 'node:path';
3
- import { readPackageJson, hasPackageInstalled, getPackageVersion } from '../../utils/package-json.js';
4
- import { detectPort, getCallbackPath } from '../../lib/port-detection.js';
5
- import { KNOWN_INTEGRATIONS } from '../../lib/constants.js';
6
- // Order matters - more specific frameworks should come first (array guarantees order)
7
- const FRAMEWORKS = [
8
- { package: 'next', name: 'Next.js', integration: KNOWN_INTEGRATIONS.nextjs, detectVariant: detectNextVariant },
9
- {
10
- package: '@tanstack/react-start',
11
- name: 'TanStack Start',
12
- integration: KNOWN_INTEGRATIONS.tanstackStart,
13
- detectVariant: null,
14
- },
15
- {
16
- package: '@tanstack/start',
17
- name: 'TanStack Start',
18
- integration: KNOWN_INTEGRATIONS.tanstackStart,
19
- detectVariant: null,
20
- },
21
- { package: '@tanstack/react-router', name: 'TanStack Router', integration: null, detectVariant: null },
22
- { package: '@remix-run/node', name: 'Remix', integration: null, detectVariant: null },
23
- {
24
- package: 'react-router-dom',
25
- name: 'React Router',
26
- integration: KNOWN_INTEGRATIONS.reactRouter,
27
- detectVariant: null,
28
- },
29
- { package: 'express', name: 'Express', integration: null, detectVariant: null },
30
- // Additional JS frameworks (after existing entries to avoid breaking current behavior)
31
- { package: 'expo', name: 'Expo', integration: null, detectVariant: detectExpoVariant },
32
- { package: 'react-native', name: 'React Native', integration: null, detectVariant: null },
33
- { package: '@sveltejs/kit', name: 'SvelteKit', integration: null, detectVariant: null },
34
- { package: 'nuxt', name: 'Nuxt', integration: null, detectVariant: detectNuxtVariant },
35
- { package: 'vue', name: 'Vue.js', integration: null, detectVariant: null },
36
- { package: 'astro', name: 'Astro', integration: null, detectVariant: null },
37
- { package: 'svelte', name: 'Svelte', integration: null, detectVariant: null },
38
- ];
39
- export async function checkFramework(options) {
40
- const packageJson = readPackageJson(options.installDir);
41
- if (!packageJson)
42
- return { name: null, version: null };
43
- for (const config of FRAMEWORKS) {
44
- if (hasPackageInstalled(config.package, packageJson)) {
45
- const version = getPackageVersion(config.package, packageJson) ?? null;
46
- const variant = config.detectVariant ? await config.detectVariant(options) : undefined;
47
- // Get expected callback path and port if we have an integration mapping
48
- let expectedCallbackPath;
49
- let detectedPort;
50
- if (config.integration) {
51
- expectedCallbackPath = getCallbackPath(config.integration);
52
- detectedPort = detectPort(config.integration, options.installDir);
53
- }
54
- return {
55
- name: config.name,
56
- version,
57
- variant,
58
- expectedCallbackPath,
59
- detectedPort,
60
- };
61
- }
62
- }
63
- return { name: null, version: null };
64
- }
65
- async function detectExpoVariant(options) {
66
- const iosDir = join(options.installDir, 'ios');
67
- const androidDir = join(options.installDir, 'android');
68
- const hasBare = existsSync(iosDir) || existsSync(androidDir);
69
- return hasBare ? 'bare' : 'managed';
70
- }
71
- async function detectNuxtVariant(options) {
72
- const packageJson = readPackageJson(options.installDir);
73
- if (!packageJson)
74
- return undefined;
75
- const version = getPackageVersion('nuxt', packageJson);
76
- if (!version)
77
- return undefined;
78
- const major = parseInt(version.replace(/^[\^~>=<]+/, '').split('.')[0], 10);
79
- return isNaN(major) ? undefined : major >= 3 ? 'Nuxt 3' : 'Nuxt 2';
80
- }
81
- async function detectNextVariant(options) {
82
- const appDir = join(options.installDir, 'app');
83
- const pagesDir = join(options.installDir, 'pages');
84
- const srcAppDir = join(options.installDir, 'src', 'app');
85
- const srcPagesDir = join(options.installDir, 'src', 'pages');
86
- const hasAppDir = existsSync(appDir) || existsSync(srcAppDir);
87
- const hasPagesDir = existsSync(pagesDir) || existsSync(srcPagesDir);
88
- if (hasAppDir && hasPagesDir)
89
- return 'hybrid';
90
- if (hasAppDir)
91
- return 'app-router';
92
- return 'pages-router';
93
- }
94
- //# sourceMappingURL=framework.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"framework.js","sourceRoot":"","sources":["../../../src/doctor/checks/framework.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACtG,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAW5D,sFAAsF;AACtF,MAAM,UAAU,GAAsB;IACpC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,kBAAkB,CAAC,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE;IAC9G;QACE,OAAO,EAAE,uBAAuB;QAChC,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,kBAAkB,CAAC,aAAa;QAC7C,aAAa,EAAE,IAAI;KACpB;IACD;QACE,OAAO,EAAE,iBAAiB;QAC1B,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,kBAAkB,CAAC,aAAa;QAC7C,aAAa,EAAE,IAAI;KACpB;IACD,EAAE,OAAO,EAAE,wBAAwB,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IACtG,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IACrF;QACE,OAAO,EAAE,kBAAkB;QAC3B,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,kBAAkB,CAAC,WAAW;QAC3C,aAAa,EAAE,IAAI;KACpB;IACD,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IAC/E,uFAAuF;IACvF,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,iBAAiB,EAAE;IACtF,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IACzF,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IACvF,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,iBAAiB,EAAE;IACtF,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IAC1E,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IAC3E,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;CAC9E,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAsB;IACzD,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACxD,IAAI,CAAC,WAAW;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAEvD,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;QAChC,IAAI,mBAAmB,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,CAAC;YACrD,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,IAAI,CAAC;YACvE,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAEvF,wEAAwE;YACxE,IAAI,oBAAwC,CAAC;YAC7C,IAAI,YAAgC,CAAC;YAErC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBACvB,oBAAoB,GAAG,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBAC3D,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;YACpE,CAAC;YAED,OAAO;gBACL,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,OAAO;gBACP,OAAO;gBACP,oBAAoB;gBACpB,YAAY;aACb,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACvC,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,OAAsB;IACrD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;IAC7D,OAAO,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACtC,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,OAAsB;IACrD,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACxD,IAAI,CAAC,WAAW;QAAE,OAAO,SAAS,CAAC;IACnC,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACvD,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5E,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;AACrE,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,OAAsB;IACrD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAE7D,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;IAEpE,IAAI,SAAS,IAAI,WAAW;QAAE,OAAO,QAAQ,CAAC;IAC9C,IAAI,SAAS;QAAE,OAAO,YAAY,CAAC;IACnC,OAAO,cAAc,CAAC;AACxB,CAAC","sourcesContent":["import { existsSync } from 'node:fs';\nimport { join } from 'node:path';\nimport { readPackageJson, hasPackageInstalled, getPackageVersion } from '../../utils/package-json.js';\nimport { detectPort, getCallbackPath } from '../../lib/port-detection.js';\nimport { KNOWN_INTEGRATIONS } from '../../lib/constants.js';\nimport type { Integration } from '../../lib/constants.js';\nimport type { DoctorOptions, FrameworkInfo } from '../types.js';\n\ninterface FrameworkConfig {\n package: string;\n name: string;\n integration: Integration | null; // Maps to Integration type for callback path/port\n detectVariant: ((options: DoctorOptions) => Promise<string | undefined>) | null;\n}\n\n// Order matters - more specific frameworks should come first (array guarantees order)\nconst FRAMEWORKS: FrameworkConfig[] = [\n { package: 'next', name: 'Next.js', integration: KNOWN_INTEGRATIONS.nextjs, detectVariant: detectNextVariant },\n {\n package: '@tanstack/react-start',\n name: 'TanStack Start',\n integration: KNOWN_INTEGRATIONS.tanstackStart,\n detectVariant: null,\n },\n {\n package: '@tanstack/start',\n name: 'TanStack Start',\n integration: KNOWN_INTEGRATIONS.tanstackStart,\n detectVariant: null,\n },\n { package: '@tanstack/react-router', name: 'TanStack Router', integration: null, detectVariant: null },\n { package: '@remix-run/node', name: 'Remix', integration: null, detectVariant: null },\n {\n package: 'react-router-dom',\n name: 'React Router',\n integration: KNOWN_INTEGRATIONS.reactRouter,\n detectVariant: null,\n },\n { package: 'express', name: 'Express', integration: null, detectVariant: null },\n // Additional JS frameworks (after existing entries to avoid breaking current behavior)\n { package: 'expo', name: 'Expo', integration: null, detectVariant: detectExpoVariant },\n { package: 'react-native', name: 'React Native', integration: null, detectVariant: null },\n { package: '@sveltejs/kit', name: 'SvelteKit', integration: null, detectVariant: null },\n { package: 'nuxt', name: 'Nuxt', integration: null, detectVariant: detectNuxtVariant },\n { package: 'vue', name: 'Vue.js', integration: null, detectVariant: null },\n { package: 'astro', name: 'Astro', integration: null, detectVariant: null },\n { package: 'svelte', name: 'Svelte', integration: null, detectVariant: null },\n];\n\nexport async function checkFramework(options: DoctorOptions): Promise<FrameworkInfo> {\n const packageJson = readPackageJson(options.installDir);\n if (!packageJson) return { name: null, version: null };\n\n for (const config of FRAMEWORKS) {\n if (hasPackageInstalled(config.package, packageJson)) {\n const version = getPackageVersion(config.package, packageJson) ?? null;\n const variant = config.detectVariant ? await config.detectVariant(options) : undefined;\n\n // Get expected callback path and port if we have an integration mapping\n let expectedCallbackPath: string | undefined;\n let detectedPort: number | undefined;\n\n if (config.integration) {\n expectedCallbackPath = getCallbackPath(config.integration);\n detectedPort = detectPort(config.integration, options.installDir);\n }\n\n return {\n name: config.name,\n version,\n variant,\n expectedCallbackPath,\n detectedPort,\n };\n }\n }\n\n return { name: null, version: null };\n}\n\nasync function detectExpoVariant(options: DoctorOptions): Promise<string> {\n const iosDir = join(options.installDir, 'ios');\n const androidDir = join(options.installDir, 'android');\n const hasBare = existsSync(iosDir) || existsSync(androidDir);\n return hasBare ? 'bare' : 'managed';\n}\n\nasync function detectNuxtVariant(options: DoctorOptions): Promise<string | undefined> {\n const packageJson = readPackageJson(options.installDir);\n if (!packageJson) return undefined;\n const version = getPackageVersion('nuxt', packageJson);\n if (!version) return undefined;\n const major = parseInt(version.replace(/^[\\^~>=<]+/, '').split('.')[0], 10);\n return isNaN(major) ? undefined : major >= 3 ? 'Nuxt 3' : 'Nuxt 2';\n}\n\nasync function detectNextVariant(options: DoctorOptions): Promise<string> {\n const appDir = join(options.installDir, 'app');\n const pagesDir = join(options.installDir, 'pages');\n const srcAppDir = join(options.installDir, 'src', 'app');\n const srcPagesDir = join(options.installDir, 'src', 'pages');\n\n const hasAppDir = existsSync(appDir) || existsSync(srcAppDir);\n const hasPagesDir = existsSync(pagesDir) || existsSync(srcPagesDir);\n\n if (hasAppDir && hasPagesDir) return 'hybrid';\n if (hasAppDir) return 'app-router';\n return 'pages-router';\n}\n"]}
@@ -1,2 +0,0 @@
1
- import type { HostExecutionInfo } from '../types.js';
2
- export declare function checkHostExecution(): Promise<HostExecutionInfo>;
@@ -1,21 +0,0 @@
1
- import { getInteractionMode } from '../../utils/interaction-mode.js';
2
- import { runHostProbe } from '../../lib/host-probe.js';
3
- const HOST_EXECUTION_WARNING = 'This may be a sandboxed run. Re-run the command on the host shell before trusting auth, config, or API failures.';
4
- export async function checkHostExecution() {
5
- const interactionMode = getInteractionMode();
6
- if (interactionMode.mode === 'human') {
7
- return {
8
- mode: 'interactive',
9
- ok: true,
10
- failures: [],
11
- };
12
- }
13
- const probe = await runHostProbe();
14
- return {
15
- mode: 'non-interactive',
16
- ok: probe.ok,
17
- failures: probe.failures,
18
- warning: probe.ok ? undefined : HOST_EXECUTION_WARNING,
19
- };
20
- }
21
- //# sourceMappingURL=host-execution.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"host-execution.js","sourceRoot":"","sources":["../../../src/doctor/checks/host-execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAGvD,MAAM,sBAAsB,GAC1B,kHAAkH,CAAC;AAErH,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;IAE7C,IAAI,eAAe,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACrC,OAAO;YACL,IAAI,EAAE,aAAa;YACnB,EAAE,EAAE,IAAI;YACR,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,YAAY,EAAE,CAAC;IACnC,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAsB;KACvD,CAAC;AACJ,CAAC","sourcesContent":["import { getInteractionMode } from '../../utils/interaction-mode.js';\nimport { runHostProbe } from '../../lib/host-probe.js';\nimport type { HostExecutionInfo } from '../types.js';\n\nconst HOST_EXECUTION_WARNING =\n 'This may be a sandboxed run. Re-run the command on the host shell before trusting auth, config, or API failures.';\n\nexport async function checkHostExecution(): Promise<HostExecutionInfo> {\n const interactionMode = getInteractionMode();\n\n if (interactionMode.mode === 'human') {\n return {\n mode: 'interactive',\n ok: true,\n failures: [],\n };\n }\n\n const probe = await runHostProbe();\n return {\n mode: 'non-interactive',\n ok: probe.ok,\n failures: probe.failures,\n warning: probe.ok ? undefined : HOST_EXECUTION_WARNING,\n };\n}\n"]}
@@ -1,6 +0,0 @@
1
- import type { LanguageInfo } from '../types.js';
2
- export declare function checkLanguage(installDir: string): Promise<LanguageInfo>;
3
- /** Map a LanguageInfo name to the SdkInfo.language string */
4
- export declare function languageToSdkLanguage(languageName: string): string;
5
- /** Get the SDK install command for a language */
6
- export declare function getInstallHint(language: string): string;
@@ -1,104 +0,0 @@
1
- import { access, readdir } from 'node:fs/promises';
2
- import { join } from 'node:path';
3
- const DETECTORS = [
4
- { name: 'Go', language: 'go', manifestFiles: ['go.mod'], packageManager: 'go modules' },
5
- { name: 'Ruby', language: 'ruby', manifestFiles: ['Gemfile'], packageManager: 'bundler' },
6
- {
7
- name: 'Python',
8
- language: 'python',
9
- manifestFiles: ['pyproject.toml', 'requirements.txt', 'setup.py', 'Pipfile'],
10
- packageManager: 'pip',
11
- },
12
- {
13
- name: 'Java',
14
- language: 'java',
15
- manifestFiles: ['pom.xml', 'build.gradle', 'build.gradle.kts'],
16
- packageManager: 'maven',
17
- },
18
- { name: 'PHP', language: 'php', manifestFiles: ['composer.json'], packageManager: 'composer' },
19
- { name: 'C#/.NET', language: 'dotnet', manifestFiles: [], globPatterns: ['*.csproj', '*.sln'] },
20
- // JS/TS last — most projects have a package.json even if they're primarily another language
21
- { name: 'JavaScript/TypeScript', language: 'javascript', manifestFiles: ['package.json'] },
22
- ];
23
- async function fileExists(path) {
24
- try {
25
- await access(path);
26
- return true;
27
- }
28
- catch {
29
- return false;
30
- }
31
- }
32
- async function findGlobMatch(dir, patterns) {
33
- try {
34
- const entries = await readdir(dir);
35
- for (const pattern of patterns) {
36
- const ext = pattern.replace('*', '');
37
- const match = entries.find((e) => e.endsWith(ext));
38
- if (match)
39
- return match;
40
- }
41
- }
42
- catch {
43
- return undefined;
44
- }
45
- return undefined;
46
- }
47
- function detectPythonPackageManager(manifestFile) {
48
- if (manifestFile === 'pyproject.toml')
49
- return 'poetry';
50
- if (manifestFile === 'Pipfile')
51
- return 'pipenv';
52
- return 'pip';
53
- }
54
- export async function checkLanguage(installDir) {
55
- for (const detector of DETECTORS) {
56
- for (const manifest of detector.manifestFiles) {
57
- const path = join(installDir, manifest);
58
- if (await fileExists(path)) {
59
- const pm = detector.language === 'python' ? detectPythonPackageManager(manifest) : detector.packageManager;
60
- return {
61
- name: detector.name,
62
- manifestFile: manifest,
63
- packageManager: pm,
64
- };
65
- }
66
- }
67
- if (detector.globPatterns) {
68
- const match = await findGlobMatch(installDir, detector.globPatterns);
69
- if (match) {
70
- return {
71
- name: detector.name,
72
- manifestFile: match,
73
- packageManager: detector.packageManager,
74
- };
75
- }
76
- }
77
- }
78
- return { name: 'Unknown' };
79
- }
80
- /** Map a LanguageInfo name to the SdkInfo.language string */
81
- export function languageToSdkLanguage(languageName) {
82
- const detector = DETECTORS.find((d) => d.name === languageName);
83
- return detector?.language ?? 'unknown';
84
- }
85
- /** Get the SDK install command for a language */
86
- export function getInstallHint(language) {
87
- switch (language) {
88
- case 'python':
89
- return 'pip install workos';
90
- case 'ruby':
91
- return "gem install workos (or add gem 'workos' to Gemfile)";
92
- case 'go':
93
- return 'go get github.com/workos/workos-go/v4';
94
- case 'java':
95
- return 'Add com.workos:workos-java to your pom.xml or build.gradle';
96
- case 'php':
97
- return 'composer require workos/workos-php';
98
- case 'dotnet':
99
- return 'dotnet add package WorkOS.net';
100
- default:
101
- return 'npm install @workos-inc/authkit-nextjs';
102
- }
103
- }
104
- //# sourceMappingURL=language.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"language.js","sourceRoot":"","sources":["../../../src/doctor/checks/language.ts"],"names":[],"mappings":"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","sourcesContent":["import { access, readdir } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport type { LanguageInfo } from '../types.js';\n\ninterface LanguageDetector {\n name: string;\n language: string; // matches SdkInfo.language\n manifestFiles: string[];\n /** Globs that need special handling (e.g., *.csproj) */\n globPatterns?: string[];\n packageManager?: string;\n}\n\nconst DETECTORS: LanguageDetector[] = [\n { name: 'Go', language: 'go', manifestFiles: ['go.mod'], packageManager: 'go modules' },\n { name: 'Ruby', language: 'ruby', manifestFiles: ['Gemfile'], packageManager: 'bundler' },\n {\n name: 'Python',\n language: 'python',\n manifestFiles: ['pyproject.toml', 'requirements.txt', 'setup.py', 'Pipfile'],\n packageManager: 'pip',\n },\n {\n name: 'Java',\n language: 'java',\n manifestFiles: ['pom.xml', 'build.gradle', 'build.gradle.kts'],\n packageManager: 'maven',\n },\n { name: 'PHP', language: 'php', manifestFiles: ['composer.json'], packageManager: 'composer' },\n { name: 'C#/.NET', language: 'dotnet', manifestFiles: [], globPatterns: ['*.csproj', '*.sln'] },\n // JS/TS last — most projects have a package.json even if they're primarily another language\n { name: 'JavaScript/TypeScript', language: 'javascript', manifestFiles: ['package.json'] },\n];\n\nasync function fileExists(path: string): Promise<boolean> {\n try {\n await access(path);\n return true;\n } catch {\n return false;\n }\n}\n\nasync function findGlobMatch(dir: string, patterns: string[]): Promise<string | undefined> {\n try {\n const entries = await readdir(dir);\n for (const pattern of patterns) {\n const ext = pattern.replace('*', '');\n const match = entries.find((e) => e.endsWith(ext));\n if (match) return match;\n }\n } catch {\n return undefined;\n }\n return undefined;\n}\n\nfunction detectPythonPackageManager(manifestFile: string): string {\n if (manifestFile === 'pyproject.toml') return 'poetry';\n if (manifestFile === 'Pipfile') return 'pipenv';\n return 'pip';\n}\n\nexport async function checkLanguage(installDir: string): Promise<LanguageInfo> {\n for (const detector of DETECTORS) {\n for (const manifest of detector.manifestFiles) {\n const path = join(installDir, manifest);\n if (await fileExists(path)) {\n const pm = detector.language === 'python' ? detectPythonPackageManager(manifest) : detector.packageManager;\n\n return {\n name: detector.name,\n manifestFile: manifest,\n packageManager: pm,\n };\n }\n }\n\n if (detector.globPatterns) {\n const match = await findGlobMatch(installDir, detector.globPatterns);\n if (match) {\n return {\n name: detector.name,\n manifestFile: match,\n packageManager: detector.packageManager,\n };\n }\n }\n }\n\n return { name: 'Unknown' };\n}\n\n/** Map a LanguageInfo name to the SdkInfo.language string */\nexport function languageToSdkLanguage(languageName: string): string {\n const detector = DETECTORS.find((d) => d.name === languageName);\n return detector?.language ?? 'unknown';\n}\n\n/** Get the SDK install command for a language */\nexport function getInstallHint(language: string): string {\n switch (language) {\n case 'python':\n return 'pip install workos';\n case 'ruby':\n return \"gem install workos (or add gem 'workos' to Gemfile)\";\n case 'go':\n return 'go get github.com/workos/workos-go/v4';\n case 'java':\n return 'Add com.workos:workos-java to your pom.xml or build.gradle';\n case 'php':\n return 'composer require workos/workos-php';\n case 'dotnet':\n return 'dotnet add package WorkOS.net';\n default:\n return 'npm install @workos-inc/authkit-nextjs';\n }\n}\n"]}
@@ -1,15 +0,0 @@
1
- import type { McpInfo } from '../types.js';
2
- /**
3
- * Report the WorkOS MCP server status across detected coding agents.
4
- *
5
- * Mirrors checkSkills: per-detected-agent loop, typed `*Info` return, null when
6
- * no agents are detected (so doctor renders no MCP section for users with no
7
- * coding agent installed). Report-only — never mutates config (`--fix` does not
8
- * touch MCP in this phase).
9
- *
10
- * Absent MCP is deliberately NOT an issue: the user may have declined the
11
- * offer. Only Cursor exposes a readable config, so URL drift ("misconfigured")
12
- * is detected for Cursor alone; issues.ts derives a warning from it. Per-agent
13
- * shell-outs carry the 10s timeout from the client library, keeping doctor fast.
14
- */
15
- export declare function checkMcp(): Promise<McpInfo | null>;
@@ -1,34 +0,0 @@
1
- import { detectMcpClients, getCursorConfiguredUrl } from '../../lib/mcp-clients.js';
2
- import { MCP_SERVER_URL } from '../../lib/constants.js';
3
- /**
4
- * Report the WorkOS MCP server status across detected coding agents.
5
- *
6
- * Mirrors checkSkills: per-detected-agent loop, typed `*Info` return, null when
7
- * no agents are detected (so doctor renders no MCP section for users with no
8
- * coding agent installed). Report-only — never mutates config (`--fix` does not
9
- * touch MCP in this phase).
10
- *
11
- * Absent MCP is deliberately NOT an issue: the user may have declined the
12
- * offer. Only Cursor exposes a readable config, so URL drift ("misconfigured")
13
- * is detected for Cursor alone; issues.ts derives a warning from it. Per-agent
14
- * shell-outs carry the 10s timeout from the client library, keeping doctor fast.
15
- */
16
- export async function checkMcp() {
17
- const clients = await detectMcpClients();
18
- if (clients.length === 0)
19
- return null;
20
- const agents = await Promise.all(clients.map(async (client) => {
21
- const installed = await client.isInstalled();
22
- const status = { agent: client.displayName, available: true, installed };
23
- // Cursor is the only client whose config we can read, so it's the only
24
- // one we can flag for URL drift. A missing/unreadable URL (null) is not
25
- // "unexpected" — only a present-but-different URL counts.
26
- if (client.key === 'cursor' && installed) {
27
- const url = await getCursorConfiguredUrl();
28
- status.misconfigured = url !== null && url !== MCP_SERVER_URL;
29
- }
30
- return status;
31
- }));
32
- return { serverUrl: MCP_SERVER_URL, agents };
33
- }
34
- //# sourceMappingURL=mcp.js.map