@workos/mcp-docs-server 0.1.0

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 (455) hide show
  1. package/.docs/organized/changelogs/workos-platform.json +277 -0
  2. package/.docs/organized/docs/admin-portal/_navigation.mdx +16 -0
  3. package/.docs/organized/docs/admin-portal/custom-branding.mdx +111 -0
  4. package/.docs/organized/docs/admin-portal/example-apps.mdx +46 -0
  5. package/.docs/organized/docs/admin-portal/index.mdx +240 -0
  6. package/.docs/organized/docs/audit-logs/_navigation.mdx +22 -0
  7. package/.docs/organized/docs/audit-logs/admin-portal.mdx +20 -0
  8. package/.docs/organized/docs/audit-logs/editing-events.mdx +27 -0
  9. package/.docs/organized/docs/audit-logs/exporting-events.mdx +29 -0
  10. package/.docs/organized/docs/audit-logs/index.mdx +110 -0
  11. package/.docs/organized/docs/audit-logs/log-streams.mdx +56 -0
  12. package/.docs/organized/docs/audit-logs/metadata-schema.mdx +21 -0
  13. package/.docs/organized/docs/custom-domains/_navigation.mdx +16 -0
  14. package/.docs/organized/docs/custom-domains/admin-portal.mdx +38 -0
  15. package/.docs/organized/docs/custom-domains/auth-api.mdx +59 -0
  16. package/.docs/organized/docs/custom-domains/authkit.mdx +36 -0
  17. package/.docs/organized/docs/custom-domains/email.mdx +41 -0
  18. package/.docs/organized/docs/custom-domains/index.mdx +19 -0
  19. package/.docs/organized/docs/dashboard.mdx +244 -0
  20. package/.docs/organized/docs/demo/_navigation.mdx +26 -0
  21. package/.docs/organized/docs/demo/accordion.mdx +34 -0
  22. package/.docs/organized/docs/demo/checklist.mdx +33 -0
  23. package/.docs/organized/docs/demo/code-block.mdx +185 -0
  24. package/.docs/organized/docs/demo/definition-list.mdx +35 -0
  25. package/.docs/organized/docs/demo/index.mdx +7 -0
  26. package/.docs/organized/docs/demo/punctuation.mdx +37 -0
  27. package/.docs/organized/docs/demo/replacements.mdx +26 -0
  28. package/.docs/organized/docs/demo/table.mdx +26 -0
  29. package/.docs/organized/docs/demo/tabs.mdx +17 -0
  30. package/.docs/organized/docs/directory-sync/_navigation.mdx +28 -0
  31. package/.docs/organized/docs/directory-sync/attributes.mdx +209 -0
  32. package/.docs/organized/docs/directory-sync/example-apps.mdx +46 -0
  33. package/.docs/organized/docs/directory-sync/handle-inactive-users.mdx +52 -0
  34. package/.docs/organized/docs/directory-sync/identity-provider-role-assignment.mdx +134 -0
  35. package/.docs/organized/docs/directory-sync/index.mdx +107 -0
  36. package/.docs/organized/docs/directory-sync/quick-start.mdx +129 -0
  37. package/.docs/organized/docs/directory-sync/understanding-events.mdx +209 -0
  38. package/.docs/organized/docs/domain-verification/_navigation.mdx +10 -0
  39. package/.docs/organized/docs/domain-verification/api.mdx +60 -0
  40. package/.docs/organized/docs/domain-verification/index.mdx +67 -0
  41. package/.docs/organized/docs/email.mdx +109 -0
  42. package/.docs/organized/docs/events/_navigation.mdx +22 -0
  43. package/.docs/organized/docs/events/data-syncing/data-reconciliation.mdx +56 -0
  44. package/.docs/organized/docs/events/data-syncing/events-api.mdx +114 -0
  45. package/.docs/organized/docs/events/data-syncing/index.mdx +66 -0
  46. package/.docs/organized/docs/events/data-syncing/webhooks.mdx +173 -0
  47. package/.docs/organized/docs/events/index.mdx +783 -0
  48. package/.docs/organized/docs/events/observability/datadog.mdx +76 -0
  49. package/.docs/organized/docs/fga/_navigation.mdx +64 -0
  50. package/.docs/organized/docs/fga/identity-provider-sessions.mdx +68 -0
  51. package/.docs/organized/docs/fga/index.mdx +60 -0
  52. package/.docs/organized/docs/fga/local-development.mdx +155 -0
  53. package/.docs/organized/docs/fga/modeling/abac.mdx +107 -0
  54. package/.docs/organized/docs/fga/modeling/blocklist.mdx +84 -0
  55. package/.docs/organized/docs/fga/modeling/conditional-roles.mdx +99 -0
  56. package/.docs/organized/docs/fga/modeling/custom-roles.mdx +90 -0
  57. package/.docs/organized/docs/fga/modeling/entitlements.mdx +127 -0
  58. package/.docs/organized/docs/fga/modeling/managed-service-provider.mdx +131 -0
  59. package/.docs/organized/docs/fga/modeling/org-roles-and-permissions.mdx +95 -0
  60. package/.docs/organized/docs/fga/modeling/policy-context.mdx +231 -0
  61. package/.docs/organized/docs/fga/modeling/public-access.mdx +61 -0
  62. package/.docs/organized/docs/fga/modeling/shareable-content.mdx +106 -0
  63. package/.docs/organized/docs/fga/modeling/superusers.mdx +74 -0
  64. package/.docs/organized/docs/fga/modeling/user-groups.mdx +92 -0
  65. package/.docs/organized/docs/fga/operations-usage.mdx +104 -0
  66. package/.docs/organized/docs/fga/playground.mdx +12 -0
  67. package/.docs/organized/docs/fga/policies.mdx +462 -0
  68. package/.docs/organized/docs/fga/query-language.mdx +112 -0
  69. package/.docs/organized/docs/fga/quick-start.mdx +174 -0
  70. package/.docs/organized/docs/fga/resources.mdx +92 -0
  71. package/.docs/organized/docs/fga/schema-management.mdx +224 -0
  72. package/.docs/organized/docs/fga/schema.mdx +388 -0
  73. package/.docs/organized/docs/fga/warrant-tokens.mdx +44 -0
  74. package/.docs/organized/docs/fga/warrants.mdx +92 -0
  75. package/.docs/organized/docs/glossary.mdx +184 -0
  76. package/.docs/organized/docs/integrations/_navigation.mdx +6 -0
  77. package/.docs/organized/docs/integrations/access-people-hr.mdx +87 -0
  78. package/.docs/organized/docs/integrations/adp-oidc.mdx +103 -0
  79. package/.docs/organized/docs/integrations/apple.mdx +169 -0
  80. package/.docs/organized/docs/integrations/auth0-directory-sync.mdx +78 -0
  81. package/.docs/organized/docs/integrations/auth0-enterprise-connection.mdx +92 -0
  82. package/.docs/organized/docs/integrations/auth0-saml.mdx +81 -0
  83. package/.docs/organized/docs/integrations/aws-cognito.mdx +81 -0
  84. package/.docs/organized/docs/integrations/bamboohr.mdx +90 -0
  85. package/.docs/organized/docs/integrations/breathe-hr.mdx +89 -0
  86. package/.docs/organized/docs/integrations/bubble.mdx +129 -0
  87. package/.docs/organized/docs/integrations/cas-saml.mdx +65 -0
  88. package/.docs/organized/docs/integrations/cezanne.mdx +74 -0
  89. package/.docs/organized/docs/integrations/classlink-saml.mdx +100 -0
  90. package/.docs/organized/docs/integrations/cloudflare-saml.mdx +164 -0
  91. package/.docs/organized/docs/integrations/cyberark-saml.mdx +138 -0
  92. package/.docs/organized/docs/integrations/cyberark-scim.mdx +100 -0
  93. package/.docs/organized/docs/integrations/duo-saml.mdx +127 -0
  94. package/.docs/organized/docs/integrations/entra-id-saml.mdx +156 -0
  95. package/.docs/organized/docs/integrations/entra-id-scim.mdx +218 -0
  96. package/.docs/organized/docs/integrations/firebase.mdx +98 -0
  97. package/.docs/organized/docs/integrations/fourth.mdx +66 -0
  98. package/.docs/organized/docs/integrations/github-oauth.mdx +85 -0
  99. package/.docs/organized/docs/integrations/gitlab-oauth.mdx +81 -0
  100. package/.docs/organized/docs/integrations/google-directory-sync.mdx +86 -0
  101. package/.docs/organized/docs/integrations/google-oauth.mdx +173 -0
  102. package/.docs/organized/docs/integrations/google-saml.mdx +135 -0
  103. package/.docs/organized/docs/integrations/hibob.mdx +98 -0
  104. package/.docs/organized/docs/integrations/jumpcloud-saml.mdx +96 -0
  105. package/.docs/organized/docs/integrations/jumpcloud-scim.mdx +106 -0
  106. package/.docs/organized/docs/integrations/keycloak-saml.mdx +128 -0
  107. package/.docs/organized/docs/integrations/lastpass-saml.mdx +134 -0
  108. package/.docs/organized/docs/integrations/linkedin-oauth.mdx +77 -0
  109. package/.docs/organized/docs/integrations/login-gov-oidc.mdx +103 -0
  110. package/.docs/organized/docs/integrations/microsoft-ad-fs-saml.mdx +96 -0
  111. package/.docs/organized/docs/integrations/microsoft-oauth.mdx +101 -0
  112. package/.docs/organized/docs/integrations/miniorange-saml.mdx +124 -0
  113. package/.docs/organized/docs/integrations/net-iq-saml.mdx +75 -0
  114. package/.docs/organized/docs/integrations/next-auth.mdx +257 -0
  115. package/.docs/organized/docs/integrations/oidc.mdx +64 -0
  116. package/.docs/organized/docs/integrations/okta-saml.mdx +144 -0
  117. package/.docs/organized/docs/integrations/okta-scim.mdx +210 -0
  118. package/.docs/organized/docs/integrations/onelogin-saml.mdx +131 -0
  119. package/.docs/organized/docs/integrations/onelogin-scim.mdx +150 -0
  120. package/.docs/organized/docs/integrations/oracle-saml.mdx +76 -0
  121. package/.docs/organized/docs/integrations/pingfederate-saml.mdx +103 -0
  122. package/.docs/organized/docs/integrations/pingfederate-scim.mdx +150 -0
  123. package/.docs/organized/docs/integrations/pingone-saml.mdx +86 -0
  124. package/.docs/organized/docs/integrations/react-native-expo.mdx +93 -0
  125. package/.docs/organized/docs/integrations/rippling-saml.mdx +174 -0
  126. package/.docs/organized/docs/integrations/rippling-scim.mdx +148 -0
  127. package/.docs/organized/docs/integrations/salesforce-saml.mdx +143 -0
  128. package/.docs/organized/docs/integrations/saml.mdx +64 -0
  129. package/.docs/organized/docs/integrations/scim.mdx +64 -0
  130. package/.docs/organized/docs/integrations/sftp.mdx +150 -0
  131. package/.docs/organized/docs/integrations/shibboleth-generic-saml.mdx +84 -0
  132. package/.docs/organized/docs/integrations/shibboleth-unsolicited-saml.mdx +84 -0
  133. package/.docs/organized/docs/integrations/simple-saml-php.mdx +78 -0
  134. package/.docs/organized/docs/integrations/slack-oauth.mdx +102 -0
  135. package/.docs/organized/docs/integrations/supabase.mdx +68 -0
  136. package/.docs/organized/docs/integrations/vmware-saml.mdx +100 -0
  137. package/.docs/organized/docs/integrations/workday.mdx +156 -0
  138. package/.docs/organized/docs/integrations/xero-oauth.mdx +83 -0
  139. package/.docs/organized/docs/magic-link/_navigation.mdx +16 -0
  140. package/.docs/organized/docs/magic-link/example-apps.mdx +46 -0
  141. package/.docs/organized/docs/magic-link/index.mdx +199 -0
  142. package/.docs/organized/docs/magic-link/launch-checklist.mdx +27 -0
  143. package/.docs/organized/docs/mfa/_navigation.mdx +18 -0
  144. package/.docs/organized/docs/mfa/example-apps.mdx +46 -0
  145. package/.docs/organized/docs/mfa/index.mdx +140 -0
  146. package/.docs/organized/docs/mfa/ux/enrollment.mdx +74 -0
  147. package/.docs/organized/docs/mfa/ux/sign-in.mdx +30 -0
  148. package/.docs/organized/docs/migrate/_navigation.mdx +6 -0
  149. package/.docs/organized/docs/migrate/auth0.mdx +98 -0
  150. package/.docs/organized/docs/migrate/aws-cognito.mdx +115 -0
  151. package/.docs/organized/docs/migrate/clerk.mdx +106 -0
  152. package/.docs/organized/docs/migrate/firebase.mdx +80 -0
  153. package/.docs/organized/docs/migrate/other-services.mdx +179 -0
  154. package/.docs/organized/docs/migrate/standalone-sso.mdx +105 -0
  155. package/.docs/organized/docs/on-prem-deployment.mdx +119 -0
  156. package/.docs/organized/docs/postman.mdx +90 -0
  157. package/.docs/organized/docs/reference/_navigation.mdx +527 -0
  158. package/.docs/organized/docs/reference/admin-portal/index.mdx +6 -0
  159. package/.docs/organized/docs/reference/admin-portal/portal-link/generate.mdx +268 -0
  160. package/.docs/organized/docs/reference/admin-portal/portal-link/index.mdx +15 -0
  161. package/.docs/organized/docs/reference/admin-portal/provider-icons/index.mdx +52 -0
  162. package/.docs/organized/docs/reference/api-keys.mdx +22 -0
  163. package/.docs/organized/docs/reference/audit-logs/audit-log-export.mdx +239 -0
  164. package/.docs/organized/docs/reference/audit-logs/audit-log-schema.mdx +69 -0
  165. package/.docs/organized/docs/reference/audit-logs/create-event.mdx +673 -0
  166. package/.docs/organized/docs/reference/audit-logs/create-export.mdx +308 -0
  167. package/.docs/organized/docs/reference/audit-logs/create-schema.mdx +95 -0
  168. package/.docs/organized/docs/reference/audit-logs/get-export.mdx +117 -0
  169. package/.docs/organized/docs/reference/audit-logs/get-retention.mdx +34 -0
  170. package/.docs/organized/docs/reference/audit-logs/index.mdx +6 -0
  171. package/.docs/organized/docs/reference/audit-logs/list-actions.mdx +40 -0
  172. package/.docs/organized/docs/reference/audit-logs/list-schemas.mdx +40 -0
  173. package/.docs/organized/docs/reference/audit-logs/set-retention.mdx +39 -0
  174. package/.docs/organized/docs/reference/client-libraries.mdx +19 -0
  175. package/.docs/organized/docs/reference/directory-sync/directory/delete.mdx +90 -0
  176. package/.docs/organized/docs/reference/directory-sync/directory/get.mdx +105 -0
  177. package/.docs/organized/docs/reference/directory-sync/directory/index.mdx +385 -0
  178. package/.docs/organized/docs/reference/directory-sync/directory/list.mdx +281 -0
  179. package/.docs/organized/docs/reference/directory-sync/directory-group/get.mdx +105 -0
  180. package/.docs/organized/docs/reference/directory-sync/directory-group/index.mdx +277 -0
  181. package/.docs/organized/docs/reference/directory-sync/directory-group/list.mdx +295 -0
  182. package/.docs/organized/docs/reference/directory-sync/directory-user/get.mdx +112 -0
  183. package/.docs/organized/docs/reference/directory-sync/directory-user/index.mdx +470 -0
  184. package/.docs/organized/docs/reference/directory-sync/directory-user/list.mdx +304 -0
  185. package/.docs/organized/docs/reference/directory-sync/index.mdx +10 -0
  186. package/.docs/organized/docs/reference/domain-verification/create.mdx +38 -0
  187. package/.docs/organized/docs/reference/domain-verification/get.mdx +32 -0
  188. package/.docs/organized/docs/reference/domain-verification/index.mdx +84 -0
  189. package/.docs/organized/docs/reference/domain-verification/verify.mdx +36 -0
  190. package/.docs/organized/docs/reference/errors.mdx +30 -0
  191. package/.docs/organized/docs/reference/events/index.mdx +9 -0
  192. package/.docs/organized/docs/reference/events/list.mdx +246 -0
  193. package/.docs/organized/docs/reference/fga/batch-check.mdx +277 -0
  194. package/.docs/organized/docs/reference/fga/check.mdx +563 -0
  195. package/.docs/organized/docs/reference/fga/index.mdx +6 -0
  196. package/.docs/organized/docs/reference/fga/policy/create.mdx +27 -0
  197. package/.docs/organized/docs/reference/fga/policy/delete.mdx +18 -0
  198. package/.docs/organized/docs/reference/fga/policy/get.mdx +23 -0
  199. package/.docs/organized/docs/reference/fga/policy/index.mdx +52 -0
  200. package/.docs/organized/docs/reference/fga/policy/list.mdx +41 -0
  201. package/.docs/organized/docs/reference/fga/policy/update.mdx +26 -0
  202. package/.docs/organized/docs/reference/fga/query.mdx +375 -0
  203. package/.docs/organized/docs/reference/fga/resource/batch-write.mdx +175 -0
  204. package/.docs/organized/docs/reference/fga/resource/create.mdx +130 -0
  205. package/.docs/organized/docs/reference/fga/resource/delete.mdx +86 -0
  206. package/.docs/organized/docs/reference/fga/resource/get.mdx +88 -0
  207. package/.docs/organized/docs/reference/fga/resource/index.mdx +98 -0
  208. package/.docs/organized/docs/reference/fga/resource/list.mdx +188 -0
  209. package/.docs/organized/docs/reference/fga/resource/update.mdx +115 -0
  210. package/.docs/organized/docs/reference/fga/resource-type/apply.mdx +35 -0
  211. package/.docs/organized/docs/reference/fga/resource-type/create.mdx +24 -0
  212. package/.docs/organized/docs/reference/fga/resource-type/delete.mdx +22 -0
  213. package/.docs/organized/docs/reference/fga/resource-type/get.mdx +23 -0
  214. package/.docs/organized/docs/reference/fga/resource-type/index.mdx +68 -0
  215. package/.docs/organized/docs/reference/fga/resource-type/list.mdx +36 -0
  216. package/.docs/organized/docs/reference/fga/resource-type/update.mdx +23 -0
  217. package/.docs/organized/docs/reference/fga/schema/apply.mdx +42 -0
  218. package/.docs/organized/docs/reference/fga/schema/get.mdx +24 -0
  219. package/.docs/organized/docs/reference/fga/schema/index.mdx +39 -0
  220. package/.docs/organized/docs/reference/fga/warrant/batch-write.mdx +226 -0
  221. package/.docs/organized/docs/reference/fga/warrant/create.mdx +215 -0
  222. package/.docs/organized/docs/reference/fga/warrant/delete.mdx +212 -0
  223. package/.docs/organized/docs/reference/fga/warrant/index.mdx +186 -0
  224. package/.docs/organized/docs/reference/fga/warrant/list.mdx +282 -0
  225. package/.docs/organized/docs/reference/idempotency.mdx +21 -0
  226. package/.docs/organized/docs/reference/index.mdx +194 -0
  227. package/.docs/organized/docs/reference/magic-link/index.mdx +8 -0
  228. package/.docs/organized/docs/reference/magic-link/passwordless-session/create.mdx +268 -0
  229. package/.docs/organized/docs/reference/magic-link/passwordless-session/index.mdx +203 -0
  230. package/.docs/organized/docs/reference/magic-link/passwordless-session/send-email.mdx +158 -0
  231. package/.docs/organized/docs/reference/mfa/authentication-challenge.mdx +217 -0
  232. package/.docs/organized/docs/reference/mfa/authentication-factor.mdx +381 -0
  233. package/.docs/organized/docs/reference/mfa/challenge-factor.mdx +170 -0
  234. package/.docs/organized/docs/reference/mfa/delete-factor.mdx +93 -0
  235. package/.docs/organized/docs/reference/mfa/enroll-factor.mdx +241 -0
  236. package/.docs/organized/docs/reference/mfa/get-factor.mdx +108 -0
  237. package/.docs/organized/docs/reference/mfa/index.mdx +8 -0
  238. package/.docs/organized/docs/reference/mfa/verify-challenge.mdx +228 -0
  239. package/.docs/organized/docs/reference/organization/create.mdx +216 -0
  240. package/.docs/organized/docs/reference/organization/delete.mdx +89 -0
  241. package/.docs/organized/docs/reference/organization/get-by-external-id.mdx +40 -0
  242. package/.docs/organized/docs/reference/organization/get.mdx +104 -0
  243. package/.docs/organized/docs/reference/organization/index.mdx +274 -0
  244. package/.docs/organized/docs/reference/organization/list.mdx +258 -0
  245. package/.docs/organized/docs/reference/organization/update.mdx +236 -0
  246. package/.docs/organized/docs/reference/organization-domain.mdx +189 -0
  247. package/.docs/organized/docs/reference/pagination.mdx +244 -0
  248. package/.docs/organized/docs/reference/radar/attempts/create.mdx +115 -0
  249. package/.docs/organized/docs/reference/radar/attempts/index.mdx +7 -0
  250. package/.docs/organized/docs/reference/radar/attempts/update.mdx +34 -0
  251. package/.docs/organized/docs/reference/radar/index.mdx +8 -0
  252. package/.docs/organized/docs/reference/radar/lists/delete.mdx +36 -0
  253. package/.docs/organized/docs/reference/radar/lists/index.mdx +7 -0
  254. package/.docs/organized/docs/reference/radar/lists/update.mdx +36 -0
  255. package/.docs/organized/docs/reference/rate-limits.mdx +50 -0
  256. package/.docs/organized/docs/reference/roles/index.mdx +268 -0
  257. package/.docs/organized/docs/reference/roles/list-for-organization.mdx +152 -0
  258. package/.docs/organized/docs/reference/sso/connection/delete.mdx +89 -0
  259. package/.docs/organized/docs/reference/sso/connection/get.mdx +104 -0
  260. package/.docs/organized/docs/reference/sso/connection/index.mdx +388 -0
  261. package/.docs/organized/docs/reference/sso/connection/list.mdx +320 -0
  262. package/.docs/organized/docs/reference/sso/get-authorization-url/error-codes.mdx +28 -0
  263. package/.docs/organized/docs/reference/sso/get-authorization-url/index.mdx +434 -0
  264. package/.docs/organized/docs/reference/sso/get-authorization-url/redirect-uri.mdx +21 -0
  265. package/.docs/organized/docs/reference/sso/index.mdx +8 -0
  266. package/.docs/organized/docs/reference/sso/logout/authorize.mdx +47 -0
  267. package/.docs/organized/docs/reference/sso/logout/index.mdx +14 -0
  268. package/.docs/organized/docs/reference/sso/logout/redirect.mdx +32 -0
  269. package/.docs/organized/docs/reference/sso/profile/get-profile-and-token.mdx +229 -0
  270. package/.docs/organized/docs/reference/sso/profile/get-user-profile.mdx +127 -0
  271. package/.docs/organized/docs/reference/sso/profile/index.mdx +364 -0
  272. package/.docs/organized/docs/reference/testing.mdx +8 -0
  273. package/.docs/organized/docs/reference/user-management/access-token/index.mdx +13 -0
  274. package/.docs/organized/docs/reference/user-management/authentication/code.mdx +448 -0
  275. package/.docs/organized/docs/reference/user-management/authentication/email-verification.mdx +359 -0
  276. package/.docs/organized/docs/reference/user-management/authentication/get-authorization-url/error-codes.mdx +25 -0
  277. package/.docs/organized/docs/reference/user-management/authentication/get-authorization-url/index.mdx +425 -0
  278. package/.docs/organized/docs/reference/user-management/authentication/get-authorization-url/pkce.mdx +9 -0
  279. package/.docs/organized/docs/reference/user-management/authentication/get-authorization-url/redirect-uri.mdx +23 -0
  280. package/.docs/organized/docs/reference/user-management/authentication/index.mdx +66 -0
  281. package/.docs/organized/docs/reference/user-management/authentication/magic-auth.mdx +353 -0
  282. package/.docs/organized/docs/reference/user-management/authentication/organization-selection.mdx +349 -0
  283. package/.docs/organized/docs/reference/user-management/authentication/password.mdx +350 -0
  284. package/.docs/organized/docs/reference/user-management/authentication/refresh-and-seal-session-data.mdx +57 -0
  285. package/.docs/organized/docs/reference/user-management/authentication/refresh-token.mdx +381 -0
  286. package/.docs/organized/docs/reference/user-management/authentication/session-cookie.mdx +79 -0
  287. package/.docs/organized/docs/reference/user-management/authentication/totp.mdx +369 -0
  288. package/.docs/organized/docs/reference/user-management/authentication-errors/email-verification-required-error.mdx +42 -0
  289. package/.docs/organized/docs/reference/user-management/authentication-errors/index.mdx +20 -0
  290. package/.docs/organized/docs/reference/user-management/authentication-errors/mfa-challenge-error.mdx +44 -0
  291. package/.docs/organized/docs/reference/user-management/authentication-errors/mfa-enrollment-error.mdx +37 -0
  292. package/.docs/organized/docs/reference/user-management/authentication-errors/organization-authentication-required-error.mdx +68 -0
  293. package/.docs/organized/docs/reference/user-management/authentication-errors/organization-selection-error.mdx +44 -0
  294. package/.docs/organized/docs/reference/user-management/authentication-errors/sso-required-error.mdx +51 -0
  295. package/.docs/organized/docs/reference/user-management/email-verification/get.mdx +88 -0
  296. package/.docs/organized/docs/reference/user-management/email-verification/index.mdx +227 -0
  297. package/.docs/organized/docs/reference/user-management/identity/index.mdx +74 -0
  298. package/.docs/organized/docs/reference/user-management/identity/list.mdx +52 -0
  299. package/.docs/organized/docs/reference/user-management/index.mdx +13 -0
  300. package/.docs/organized/docs/reference/user-management/invitation/accept.mdx +39 -0
  301. package/.docs/organized/docs/reference/user-management/invitation/find-by-token.mdx +87 -0
  302. package/.docs/organized/docs/reference/user-management/invitation/get.mdx +87 -0
  303. package/.docs/organized/docs/reference/user-management/invitation/index.mdx +374 -0
  304. package/.docs/organized/docs/reference/user-management/invitation/list.mdx +247 -0
  305. package/.docs/organized/docs/reference/user-management/invitation/revoke.mdx +90 -0
  306. package/.docs/organized/docs/reference/user-management/invitation/send.mdx +230 -0
  307. package/.docs/organized/docs/reference/user-management/logout/get-logout-url-from-session-cookie.mdx +52 -0
  308. package/.docs/organized/docs/reference/user-management/logout/get-logout-url.mdx +147 -0
  309. package/.docs/organized/docs/reference/user-management/logout/index.mdx +26 -0
  310. package/.docs/organized/docs/reference/user-management/magic-auth/create.mdx +148 -0
  311. package/.docs/organized/docs/reference/user-management/magic-auth/get.mdx +88 -0
  312. package/.docs/organized/docs/reference/user-management/magic-auth/index.mdx +225 -0
  313. package/.docs/organized/docs/reference/user-management/mfa/authentication-challenge.mdx +194 -0
  314. package/.docs/organized/docs/reference/user-management/mfa/authentication-factor.mdx +324 -0
  315. package/.docs/organized/docs/reference/user-management/mfa/enroll-auth-factor.mdx +296 -0
  316. package/.docs/organized/docs/reference/user-management/mfa/index.mdx +5 -0
  317. package/.docs/organized/docs/reference/user-management/mfa/list-auth-factors.mdx +194 -0
  318. package/.docs/organized/docs/reference/user-management/organization-membership/create.mdx +155 -0
  319. package/.docs/organized/docs/reference/user-management/organization-membership/deactivate.mdx +106 -0
  320. package/.docs/organized/docs/reference/user-management/organization-membership/delete.mdx +76 -0
  321. package/.docs/organized/docs/reference/user-management/organization-membership/get.mdx +95 -0
  322. package/.docs/organized/docs/reference/user-management/organization-membership/index.mdx +265 -0
  323. package/.docs/organized/docs/reference/user-management/organization-membership/list.mdx +291 -0
  324. package/.docs/organized/docs/reference/user-management/organization-membership/reactivate.mdx +106 -0
  325. package/.docs/organized/docs/reference/user-management/organization-membership/update.mdx +119 -0
  326. package/.docs/organized/docs/reference/user-management/password-reset/create.mdx +108 -0
  327. package/.docs/organized/docs/reference/user-management/password-reset/get.mdx +88 -0
  328. package/.docs/organized/docs/reference/user-management/password-reset/index.mdx +227 -0
  329. package/.docs/organized/docs/reference/user-management/password-reset/reset-password.mdx +144 -0
  330. package/.docs/organized/docs/reference/user-management/session-helpers/authenticate.mdx +176 -0
  331. package/.docs/organized/docs/reference/user-management/session-helpers/get-logout-url.mdx +42 -0
  332. package/.docs/organized/docs/reference/user-management/session-helpers/index.mdx +14 -0
  333. package/.docs/organized/docs/reference/user-management/session-helpers/load-sealed-session.mdx +105 -0
  334. package/.docs/organized/docs/reference/user-management/session-helpers/refresh.mdx +213 -0
  335. package/.docs/organized/docs/reference/user-management/session-tokens/access-token.mdx +90 -0
  336. package/.docs/organized/docs/reference/user-management/session-tokens/index.mdx +5 -0
  337. package/.docs/organized/docs/reference/user-management/session-tokens/jwks.mdx +110 -0
  338. package/.docs/organized/docs/reference/user-management/session-tokens/refresh-token.mdx +8 -0
  339. package/.docs/organized/docs/reference/user-management/user/create.mdx +327 -0
  340. package/.docs/organized/docs/reference/user-management/user/delete.mdx +76 -0
  341. package/.docs/organized/docs/reference/user-management/user/get-by-external-id.mdx +39 -0
  342. package/.docs/organized/docs/reference/user-management/user/get.mdx +103 -0
  343. package/.docs/organized/docs/reference/user-management/user/index.mdx +322 -0
  344. package/.docs/organized/docs/reference/user-management/user/list.mdx +260 -0
  345. package/.docs/organized/docs/reference/user-management/user/update.mdx +344 -0
  346. package/.docs/organized/docs/reference/vault/index.mdx +6 -0
  347. package/.docs/organized/docs/reference/vault/key/create-data-key.mdx +106 -0
  348. package/.docs/organized/docs/reference/vault/key/decrypt-data-key.mdx +84 -0
  349. package/.docs/organized/docs/reference/vault/key/decrypt-data.mdx +52 -0
  350. package/.docs/organized/docs/reference/vault/key/encrypt-data.mdx +58 -0
  351. package/.docs/organized/docs/reference/vault/key/index.mdx +25 -0
  352. package/.docs/organized/docs/reference/vault/object/create.mdx +62 -0
  353. package/.docs/organized/docs/reference/vault/object/delete.mdx +75 -0
  354. package/.docs/organized/docs/reference/vault/object/get.mdx +50 -0
  355. package/.docs/organized/docs/reference/vault/object/index.mdx +174 -0
  356. package/.docs/organized/docs/reference/vault/object/list.mdx +105 -0
  357. package/.docs/organized/docs/reference/vault/object/metadata.mdx +52 -0
  358. package/.docs/organized/docs/reference/vault/object/update.mdx +67 -0
  359. package/.docs/organized/docs/reference/vault/object/version.mdx +87 -0
  360. package/.docs/organized/docs/reference/vault/object/versions.mdx +83 -0
  361. package/.docs/organized/docs/reference/widgets/get-token.mdx +185 -0
  362. package/.docs/organized/docs/reference/widgets/index.mdx +6 -0
  363. package/.docs/organized/docs/reference/workos-connect/authorize/index.mdx +75 -0
  364. package/.docs/organized/docs/reference/workos-connect/index.mdx +33 -0
  365. package/.docs/organized/docs/reference/workos-connect/introspection/index.mdx +122 -0
  366. package/.docs/organized/docs/reference/workos-connect/metadata/index.mdx +25 -0
  367. package/.docs/organized/docs/reference/workos-connect/metadata/oauth-authorization-server/index.mdx +99 -0
  368. package/.docs/organized/docs/reference/workos-connect/metadata/openid-configuration/index.mdx +70 -0
  369. package/.docs/organized/docs/reference/workos-connect/token/authorization-code-grant/access-token.mdx +53 -0
  370. package/.docs/organized/docs/reference/workos-connect/token/authorization-code-grant/id-token.mdx +60 -0
  371. package/.docs/organized/docs/reference/workos-connect/token/authorization-code-grant/index.mdx +69 -0
  372. package/.docs/organized/docs/reference/workos-connect/token/client-credentials-grant/access-token.mdx +46 -0
  373. package/.docs/organized/docs/reference/workos-connect/token/client-credentials-grant/index.mdx +56 -0
  374. package/.docs/organized/docs/reference/workos-connect/token/index.mdx +39 -0
  375. package/.docs/organized/docs/reference/workos-connect/token/refresh-token-grant.mdx +69 -0
  376. package/.docs/organized/docs/reference/workos-connect/userinfo/index.mdx +46 -0
  377. package/.docs/organized/docs/sdks/dotnet.mdx +6 -0
  378. package/.docs/organized/docs/sdks/elixir.mdx +6 -0
  379. package/.docs/organized/docs/sdks/go.mdx +6 -0
  380. package/.docs/organized/docs/sdks/java.mdx +9 -0
  381. package/.docs/organized/docs/sdks/laravel.mdx +6 -0
  382. package/.docs/organized/docs/sdks/node.mdx +9 -0
  383. package/.docs/organized/docs/sdks/php.mdx +6 -0
  384. package/.docs/organized/docs/sdks/python.mdx +6 -0
  385. package/.docs/organized/docs/sdks/ruby.mdx +9 -0
  386. package/.docs/organized/docs/sso/_navigation.mdx +44 -0
  387. package/.docs/organized/docs/sso/_sequence-diagrams/saml-protocol-security-considerations.md +59 -0
  388. package/.docs/organized/docs/sso/attributes.mdx +110 -0
  389. package/.docs/organized/docs/sso/domains.mdx +111 -0
  390. package/.docs/organized/docs/sso/example-apps.mdx +46 -0
  391. package/.docs/organized/docs/sso/identity-provider-role-assignment.mdx +113 -0
  392. package/.docs/organized/docs/sso/index.mdx +295 -0
  393. package/.docs/organized/docs/sso/it-team-faq.mdx +35 -0
  394. package/.docs/organized/docs/sso/jit-provisioning.mdx +101 -0
  395. package/.docs/organized/docs/sso/launch-checklist.mdx +71 -0
  396. package/.docs/organized/docs/sso/login-flows.mdx +101 -0
  397. package/.docs/organized/docs/sso/redirect-uris.mdx +44 -0
  398. package/.docs/organized/docs/sso/saml-security.mdx +122 -0
  399. package/.docs/organized/docs/sso/signing-certificates.mdx +121 -0
  400. package/.docs/organized/docs/sso/single-logout.mdx +45 -0
  401. package/.docs/organized/docs/sso/test-sso.mdx +73 -0
  402. package/.docs/organized/docs/sso/ux/sign-in.mdx +44 -0
  403. package/.docs/organized/docs/user-management/_navigation.mdx +87 -0
  404. package/.docs/organized/docs/user-management/actions.mdx +169 -0
  405. package/.docs/organized/docs/user-management/authkit.mdx +69 -0
  406. package/.docs/organized/docs/user-management/branding.mdx +143 -0
  407. package/.docs/organized/docs/user-management/connect.mdx +110 -0
  408. package/.docs/organized/docs/user-management/custom-emails.mdx +164 -0
  409. package/.docs/organized/docs/user-management/directory-provisioning.mdx +78 -0
  410. package/.docs/organized/docs/user-management/domain-verification.mdx +28 -0
  411. package/.docs/organized/docs/user-management/email-password.mdx +42 -0
  412. package/.docs/organized/docs/user-management/email-verification.mdx +29 -0
  413. package/.docs/organized/docs/user-management/entitlements.mdx +46 -0
  414. package/.docs/organized/docs/user-management/example-apps.mdx +39 -0
  415. package/.docs/organized/docs/user-management/identity-linking.mdx +52 -0
  416. package/.docs/organized/docs/user-management/impersonation.mdx +82 -0
  417. package/.docs/organized/docs/user-management/index.mdx +525 -0
  418. package/.docs/organized/docs/user-management/invitations.mdx +60 -0
  419. package/.docs/organized/docs/user-management/invite-only-signup.mdx +72 -0
  420. package/.docs/organized/docs/user-management/jit-provisioning.mdx +36 -0
  421. package/.docs/organized/docs/user-management/jwt-templates.mdx +278 -0
  422. package/.docs/organized/docs/user-management/magic-auth.mdx +36 -0
  423. package/.docs/organized/docs/user-management/mcp.mdx +146 -0
  424. package/.docs/organized/docs/user-management/metadata.mdx +119 -0
  425. package/.docs/organized/docs/user-management/mfa.mdx +32 -0
  426. package/.docs/organized/docs/user-management/migrations.mdx +20 -0
  427. package/.docs/organized/docs/user-management/modeling-your-app.mdx +149 -0
  428. package/.docs/organized/docs/user-management/organization-policies.mdx +33 -0
  429. package/.docs/organized/docs/user-management/overview.mdx +46 -0
  430. package/.docs/organized/docs/user-management/passkeys.mdx +42 -0
  431. package/.docs/organized/docs/user-management/radar.mdx +127 -0
  432. package/.docs/organized/docs/user-management/roles-and-permissions.mdx +155 -0
  433. package/.docs/organized/docs/user-management/sessions.mdx +101 -0
  434. package/.docs/organized/docs/user-management/social-login.mdx +34 -0
  435. package/.docs/organized/docs/user-management/sso-with-contractors.mdx +85 -0
  436. package/.docs/organized/docs/user-management/sso.mdx +96 -0
  437. package/.docs/organized/docs/user-management/users-organizations.mdx +91 -0
  438. package/.docs/organized/docs/user-management/widgets.mdx +190 -0
  439. package/.docs/organized/docs/vault/_navigation.mdx +14 -0
  440. package/.docs/organized/docs/vault/index.mdx +38 -0
  441. package/.docs/organized/docs/vault/key-context.mdx +32 -0
  442. package/.docs/organized/docs/vault/quick-start.mdx +82 -0
  443. package/README.md +252 -0
  444. package/dist/chunk-64GKEK6G.js +48 -0
  445. package/dist/chunk-64GKEK6G.js.map +1 -0
  446. package/dist/get-tools.d.ts +23 -0
  447. package/dist/get-tools.js +8 -0
  448. package/dist/get-tools.js.map +1 -0
  449. package/dist/index.d.ts +1 -0
  450. package/dist/index.js +552 -0
  451. package/dist/index.js.map +1 -0
  452. package/dist/prepare.d.ts +2 -0
  453. package/dist/prepare.js +269 -0
  454. package/dist/prepare.js.map +1 -0
  455. package/package.json +49 -0
@@ -0,0 +1,269 @@
1
+ #!/usr/bin/env node
2
+
3
+ // src/prepare.ts
4
+ import { promises as fs } from "fs";
5
+ import path from "path";
6
+ import glob from "fast-glob";
7
+ import matter from "gray-matter";
8
+ import { execSync } from "child_process";
9
+ import Parser from "rss-parser";
10
+ var DOCS_OUTPUT_DIR = ".docs/organized";
11
+ var DOCS_DIR = path.join(DOCS_OUTPUT_DIR, "docs");
12
+ var EXAMPLES_DIR = path.join(DOCS_OUTPUT_DIR, "examples");
13
+ var CHANGELOGS_DIR = path.join(DOCS_OUTPUT_DIR, "changelogs");
14
+ var WORKOS_REPO_URL = "git@github.com:workos/workos.git";
15
+ var TEMP_CLONE_DIR = ".tmp-workos-clone";
16
+ async function ensureDir(dir) {
17
+ try {
18
+ await fs.mkdir(dir, { recursive: true });
19
+ } catch (error) {
20
+ if (error.code !== "EEXIST") {
21
+ throw error;
22
+ }
23
+ }
24
+ }
25
+ async function cloneWorkOSRepo() {
26
+ console.log("\u{1F504} Cloning WorkOS monorepo for latest docs...");
27
+ try {
28
+ await fs.rm(TEMP_CLONE_DIR, { recursive: true, force: true });
29
+ } catch {
30
+ }
31
+ try {
32
+ execSync(`git clone --depth 1 ${WORKOS_REPO_URL} ${TEMP_CLONE_DIR}`, {
33
+ stdio: "inherit"
34
+ });
35
+ console.log("\u2705 Successfully cloned WorkOS monorepo");
36
+ return TEMP_CLONE_DIR;
37
+ } catch (error) {
38
+ console.error("\u274C Failed to clone WorkOS repo. Make sure you have access to the repository.");
39
+ throw error;
40
+ }
41
+ }
42
+ async function cleanupTempDir() {
43
+ try {
44
+ await fs.rm(TEMP_CLONE_DIR, { recursive: true, force: true });
45
+ console.log("\u{1F9F9} Cleaned up temporary clone directory");
46
+ } catch (error) {
47
+ console.warn("\u26A0\uFE0F Could not clean up temporary directory:", error);
48
+ }
49
+ }
50
+ async function copyDocs(sourceRoot = ".") {
51
+ console.log("\u{1F4DA} Organizing documentation...");
52
+ await ensureDir(DOCS_DIR);
53
+ const useLocal = process.env.USE_LOCAL_DOCS === "true";
54
+ let docsPaths;
55
+ if (useLocal) {
56
+ docsPaths = await glob(["docs/**/*.{md,mdx}", "../docs/**/*.{md,mdx}"], {
57
+ ignore: ["**/node_modules/**"]
58
+ });
59
+ } else {
60
+ docsPaths = await glob([`${sourceRoot}/packages/docs/content/**/*.{md,mdx}`], {
61
+ ignore: ["**/node_modules/**"]
62
+ });
63
+ }
64
+ for (const docPath of docsPaths) {
65
+ const content = await fs.readFile(docPath, "utf-8");
66
+ const parsed = matter(content);
67
+ let relativePath;
68
+ if (useLocal) {
69
+ relativePath = docPath.replace(/^\.\.\//, "").replace(/^docs\//, "");
70
+ } else {
71
+ relativePath = docPath.replace(`${sourceRoot}/packages/docs/content/`, "").replace(/^\.\.\//, "");
72
+ }
73
+ const outputPath = path.join(DOCS_DIR, relativePath);
74
+ await ensureDir(path.dirname(outputPath));
75
+ if (typeof parsed.data !== "object" || parsed.data === null) {
76
+ parsed.data = {};
77
+ }
78
+ if (!parsed.data.originalPath) {
79
+ parsed.data.originalPath = docPath;
80
+ }
81
+ const updatedContent = matter.stringify(parsed.content, parsed.data);
82
+ await fs.writeFile(outputPath, updatedContent);
83
+ }
84
+ console.log(`\u2705 Copied ${docsPaths.length} documentation files`);
85
+ }
86
+ async function organizeExamples(sourceRoot = ".") {
87
+ console.log("\u{1F4BB} Organizing code examples...");
88
+ await ensureDir(EXAMPLES_DIR);
89
+ const useLocal = process.env.USE_LOCAL_DOCS === "true";
90
+ let examplePaths;
91
+ if (useLocal) {
92
+ examplePaths = await glob(["examples/**/*.{ts,js,tsx,jsx}", "../examples/**/*.{ts,js,tsx,jsx}"], {
93
+ ignore: ["**/node_modules/**", "**/dist/**"]
94
+ });
95
+ } else {
96
+ examplePaths = await glob([`${sourceRoot}/examples/**/*.{ts,js,tsx,jsx}`], {
97
+ ignore: ["**/node_modules/**", "**/dist/**"]
98
+ });
99
+ }
100
+ const exampleGroups = /* @__PURE__ */ new Map();
101
+ for (const examplePath of examplePaths) {
102
+ const content = await fs.readFile(examplePath, "utf-8");
103
+ let pathParts;
104
+ if (useLocal) {
105
+ pathParts = examplePath.replace(/^\.\.\//, "").replace(/^examples\//, "").split("/");
106
+ } else {
107
+ pathParts = examplePath.replace(`${sourceRoot}/examples/`, "").split("/");
108
+ }
109
+ const groupName = pathParts[0] || "misc";
110
+ if (!exampleGroups.has(groupName)) {
111
+ exampleGroups.set(groupName, []);
112
+ }
113
+ const relativePath = pathParts.join("/");
114
+ const outputPath = path.join(EXAMPLES_DIR, relativePath);
115
+ await ensureDir(path.dirname(outputPath));
116
+ await fs.writeFile(outputPath, content);
117
+ exampleGroups.get(groupName).push(relativePath);
118
+ }
119
+ for (const [groupName, files] of exampleGroups) {
120
+ const indexPath = path.join(EXAMPLES_DIR, groupName, "index.json");
121
+ const groupData = {
122
+ name: groupName,
123
+ path: groupName,
124
+ files
125
+ };
126
+ await fs.writeFile(indexPath, JSON.stringify(groupData, null, 2));
127
+ }
128
+ console.log(`\u2705 Organized ${examplePaths.length} examples into ${exampleGroups.size} groups`);
129
+ }
130
+ async function parseChangelogs(sourceRoot = ".") {
131
+ console.log("\u{1F4DD} Parsing changelogs...");
132
+ await ensureDir(CHANGELOGS_DIR);
133
+ if (process.env.USE_LOCAL_DOCS !== "true") {
134
+ const rssEntries = await parseRSSChangelog();
135
+ if (rssEntries.length > 0) {
136
+ const truncatedRSSEntries = truncateChangelog(rssEntries, 25);
137
+ const rssOutputPath = path.join(CHANGELOGS_DIR, "workos-platform.json");
138
+ await fs.writeFile(rssOutputPath, JSON.stringify(truncatedRSSEntries, null, 2));
139
+ }
140
+ }
141
+ const useLocal = process.env.USE_LOCAL_DOCS === "true";
142
+ let changelogPaths;
143
+ if (useLocal) {
144
+ changelogPaths = await glob(["packages/*/CHANGELOG.md", "../packages/*/CHANGELOG.md"], {
145
+ ignore: ["**/node_modules/**"]
146
+ });
147
+ } else {
148
+ changelogPaths = await glob([`${sourceRoot}/packages/*/CHANGELOG.md`], {
149
+ ignore: ["**/node_modules/**"]
150
+ });
151
+ }
152
+ for (const changelogPath of changelogPaths) {
153
+ const content = await fs.readFile(changelogPath, "utf-8");
154
+ const packageName = path.basename(path.dirname(changelogPath));
155
+ const parsedChangelog = parseChangelogContent(content, packageName);
156
+ parsedChangelog.forEach((entry) => {
157
+ entry.source = "markdown";
158
+ });
159
+ const truncatedChangelog = truncateChangelog(parsedChangelog, 10);
160
+ const outputPath = path.join(CHANGELOGS_DIR, `${packageName}.json`);
161
+ await fs.writeFile(outputPath, JSON.stringify(truncatedChangelog, null, 2));
162
+ }
163
+ console.log(`\u2705 Parsed ${changelogPaths.length} markdown changelogs and fetched RSS changelog`);
164
+ }
165
+ function parseChangelogContent(content, packageName) {
166
+ const entries = [];
167
+ const lines = content.split("\n");
168
+ let currentEntry = null;
169
+ for (const line of lines) {
170
+ const versionMatch = line.match(/^##\s*\[?([^\]]+)\]?\s*-\s*(.+)/);
171
+ if (versionMatch) {
172
+ if (currentEntry) {
173
+ entries.push(currentEntry);
174
+ }
175
+ currentEntry = {
176
+ package: packageName,
177
+ version: versionMatch[1],
178
+ date: versionMatch[2],
179
+ changes: []
180
+ };
181
+ continue;
182
+ }
183
+ const changeMatch = line.match(/^[-*]\s*(.+)/);
184
+ if (changeMatch && currentEntry) {
185
+ currentEntry.changes = currentEntry.changes || [];
186
+ currentEntry.changes.push(changeMatch[1]);
187
+ }
188
+ }
189
+ if (currentEntry) {
190
+ entries.push(currentEntry);
191
+ }
192
+ return entries;
193
+ }
194
+ function truncateChangelog(entries, maxEntries) {
195
+ return entries.slice(0, maxEntries);
196
+ }
197
+ async function parseRSSChangelog() {
198
+ console.log("\u{1F310} Fetching WorkOS changelog from RSS feed...");
199
+ const parser = new Parser({
200
+ customFields: {
201
+ item: [
202
+ ["guid", "guid"],
203
+ ["description", "description"]
204
+ ]
205
+ }
206
+ });
207
+ try {
208
+ const feed = await parser.parseURL("https://workos.com/changelog/rss.xml");
209
+ const entries = [];
210
+ for (const item of feed.items) {
211
+ const title = item.title || "Untitled";
212
+ const pubDate = item.pubDate || "";
213
+ const link = item.link || "";
214
+ const guid = item.guid || "";
215
+ const description = item.description || "";
216
+ let formattedDate = pubDate;
217
+ if (pubDate) {
218
+ try {
219
+ const date = new Date(pubDate);
220
+ formattedDate = date.toISOString().split("T")[0];
221
+ } catch {
222
+ }
223
+ }
224
+ const cleanDescription = description.replace(/<[^>]*>/g, "").replace(/\s+/g, " ").trim();
225
+ const entry = {
226
+ package: "workos-platform",
227
+ version: title,
228
+ date: formattedDate,
229
+ changes: cleanDescription ? [cleanDescription] : [title],
230
+ source: "rss",
231
+ url: link,
232
+ guid
233
+ };
234
+ entries.push(entry);
235
+ }
236
+ console.log(`\u2705 Fetched ${entries.length} changelog entries from RSS feed`);
237
+ return entries;
238
+ } catch (error) {
239
+ console.error("\u274C Failed to fetch RSS changelog:", error);
240
+ return [];
241
+ }
242
+ }
243
+ async function main() {
244
+ let sourceRoot = ".";
245
+ try {
246
+ console.log("\u{1F680} Starting WorkOS docs preparation...");
247
+ try {
248
+ await fs.rm(DOCS_OUTPUT_DIR, { recursive: true, force: true });
249
+ } catch {
250
+ }
251
+ await ensureDir(DOCS_OUTPUT_DIR);
252
+ if (process.env.USE_LOCAL_DOCS !== "true") {
253
+ sourceRoot = await cloneWorkOSRepo();
254
+ }
255
+ await Promise.all([copyDocs(sourceRoot), organizeExamples(sourceRoot), parseChangelogs(sourceRoot)]);
256
+ console.log("\u2728 WorkOS docs preparation complete!");
257
+ } catch (error) {
258
+ console.error("\u274C Error preparing docs:", error);
259
+ process.exit(1);
260
+ } finally {
261
+ if (process.env.USE_LOCAL_DOCS !== "true") {
262
+ await cleanupTempDir();
263
+ }
264
+ }
265
+ }
266
+ if (process.env.PREPARE === "true") {
267
+ main();
268
+ }
269
+ //# sourceMappingURL=prepare.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/prepare.ts"],"sourcesContent":["import { promises as fs } from 'fs';\nimport path from 'path';\nimport glob from 'fast-glob';\nimport matter from 'gray-matter';\nimport { execSync } from 'child_process';\nimport Parser from 'rss-parser';\nimport type { ParsedChangelog, ExampleGroup, WebflowChangelogEntry } from './types.js';\n\nconst DOCS_OUTPUT_DIR = '.docs/organized';\nconst DOCS_DIR = path.join(DOCS_OUTPUT_DIR, 'docs');\nconst EXAMPLES_DIR = path.join(DOCS_OUTPUT_DIR, 'examples');\nconst CHANGELOGS_DIR = path.join(DOCS_OUTPUT_DIR, 'changelogs');\n\n// WorkOS monorepo configuration\n// const WORKOS_REPO_URL = 'https://github.com/workos/workos.git';\nconst WORKOS_REPO_URL = 'git@github.com:workos/workos.git';\nconst TEMP_CLONE_DIR = '.tmp-workos-clone';\n\nasync function ensureDir(dir: string): Promise<void> {\n try {\n await fs.mkdir(dir, { recursive: true });\n } catch (error) {\n if ((error as NodeJS.ErrnoException).code !== 'EEXIST') {\n throw error;\n }\n }\n}\n\nasync function cloneWorkOSRepo(): Promise<string> {\n console.log('๐Ÿ”„ Cloning WorkOS monorepo for latest docs...');\n\n // Clean up any existing temp directory\n try {\n await fs.rm(TEMP_CLONE_DIR, { recursive: true, force: true });\n } catch {\n // Directory might not exist, which is fine\n }\n\n try {\n // Shallow clone to get just the latest content\n execSync(`git clone --depth 1 ${WORKOS_REPO_URL} ${TEMP_CLONE_DIR}`, {\n stdio: 'inherit',\n });\n\n console.log('โœ… Successfully cloned WorkOS monorepo');\n return TEMP_CLONE_DIR;\n } catch (error) {\n console.error('โŒ Failed to clone WorkOS repo. Make sure you have access to the repository.');\n throw error;\n }\n}\n\nasync function cleanupTempDir(): Promise<void> {\n try {\n await fs.rm(TEMP_CLONE_DIR, { recursive: true, force: true });\n console.log('๐Ÿงน Cleaned up temporary clone directory');\n } catch (error) {\n console.warn('โš ๏ธ Could not clean up temporary directory:', error);\n }\n}\n\nasync function copyDocs(sourceRoot: string = '.'): Promise<void> {\n console.log('๐Ÿ“š Organizing documentation...');\n\n await ensureDir(DOCS_DIR);\n\n // Look for docs in the appropriate location\n const useLocal = process.env.USE_LOCAL_DOCS === 'true';\n let docsPaths: string[];\n\n if (useLocal) {\n // Look for docs/ directory in the current workspace or parent directories (development)\n docsPaths = await glob(['docs/**/*.{md,mdx}', '../docs/**/*.{md,mdx}'], {\n ignore: ['**/node_modules/**'],\n });\n } else {\n // Look for docs in the cloned repo's packages/docs/content directory (default)\n docsPaths = await glob([`${sourceRoot}/packages/docs/content/**/*.{md,mdx}`], {\n ignore: ['**/node_modules/**'],\n });\n }\n\n for (const docPath of docsPaths) {\n const content = await fs.readFile(docPath, 'utf-8');\n const parsed = matter(content);\n\n // Normalize the path\n let relativePath: string;\n if (useLocal) {\n relativePath = docPath.replace(/^\\.\\.\\//, '').replace(/^docs\\//, '');\n } else {\n // Remove the temp clone path and packages/docs/content prefix\n relativePath = docPath.replace(`${sourceRoot}/packages/docs/content/`, '').replace(/^\\.\\.\\//, '');\n }\n\n const outputPath = path.join(DOCS_DIR, relativePath);\n\n await ensureDir(path.dirname(outputPath));\n\n // Ensure parsed.data is an object and add frontmatter with original path if not present\n if (typeof parsed.data !== 'object' || parsed.data === null) {\n parsed.data = {};\n }\n if (!parsed.data.originalPath) {\n parsed.data.originalPath = docPath;\n }\n\n const updatedContent = matter.stringify(parsed.content, parsed.data);\n await fs.writeFile(outputPath, updatedContent);\n }\n\n console.log(`โœ… Copied ${docsPaths.length} documentation files`);\n}\n\nasync function organizeExamples(sourceRoot: string = '.'): Promise<void> {\n console.log('๐Ÿ’ป Organizing code examples...');\n\n await ensureDir(EXAMPLES_DIR);\n\n // Look for examples in the appropriate location\n const useLocal = process.env.USE_LOCAL_DOCS === 'true';\n let examplePaths: string[];\n\n if (useLocal) {\n // Look for examples/ directory (development)\n examplePaths = await glob(['examples/**/*.{ts,js,tsx,jsx}', '../examples/**/*.{ts,js,tsx,jsx}'], {\n ignore: ['**/node_modules/**', '**/dist/**'],\n });\n } else {\n // Look for examples in the cloned repo (default)\n examplePaths = await glob([`${sourceRoot}/examples/**/*.{ts,js,tsx,jsx}`], {\n ignore: ['**/node_modules/**', '**/dist/**'],\n });\n }\n\n const exampleGroups: Map<string, string[]> = new Map();\n\n for (const examplePath of examplePaths) {\n const content = await fs.readFile(examplePath, 'utf-8');\n\n // Group examples by their directory\n let pathParts: string[];\n if (useLocal) {\n pathParts = examplePath\n .replace(/^\\.\\.\\//, '')\n .replace(/^examples\\//, '')\n .split('/');\n } else {\n pathParts = examplePath.replace(`${sourceRoot}/examples/`, '').split('/');\n }\n\n const groupName = pathParts[0] || 'misc';\n\n if (!exampleGroups.has(groupName)) {\n exampleGroups.set(groupName, []);\n }\n\n const relativePath = pathParts.join('/');\n const outputPath = path.join(EXAMPLES_DIR, relativePath);\n\n await ensureDir(path.dirname(outputPath));\n await fs.writeFile(outputPath, content);\n\n exampleGroups.get(groupName)!.push(relativePath);\n }\n\n // Create an index file for each group\n for (const [groupName, files] of exampleGroups) {\n const indexPath = path.join(EXAMPLES_DIR, groupName, 'index.json');\n const groupData: ExampleGroup = {\n name: groupName,\n path: groupName,\n files,\n };\n await fs.writeFile(indexPath, JSON.stringify(groupData, null, 2));\n }\n\n console.log(`โœ… Organized ${examplePaths.length} examples into ${exampleGroups.size} groups`);\n}\n\nasync function parseChangelogs(sourceRoot: string = '.'): Promise<void> {\n console.log('๐Ÿ“ Parsing changelogs...');\n\n await ensureDir(CHANGELOGS_DIR);\n\n // First, fetch the RSS changelog from WorkOS (unless using local docs)\n if (process.env.USE_LOCAL_DOCS !== 'true') {\n const rssEntries = await parseRSSChangelog();\n if (rssEntries.length > 0) {\n const truncatedRSSEntries = truncateChangelog(rssEntries, 25); // Keep more RSS entries since they're the main changelog\n const rssOutputPath = path.join(CHANGELOGS_DIR, 'workos-platform.json');\n await fs.writeFile(rssOutputPath, JSON.stringify(truncatedRSSEntries, null, 2));\n }\n }\n\n // Look for CHANGELOG.md files in packages\n const useLocal = process.env.USE_LOCAL_DOCS === 'true';\n let changelogPaths: string[];\n\n if (useLocal) {\n changelogPaths = await glob(['packages/*/CHANGELOG.md', '../packages/*/CHANGELOG.md'], {\n ignore: ['**/node_modules/**'],\n });\n } else {\n changelogPaths = await glob([`${sourceRoot}/packages/*/CHANGELOG.md`], {\n ignore: ['**/node_modules/**'],\n });\n }\n\n for (const changelogPath of changelogPaths) {\n const content = await fs.readFile(changelogPath, 'utf-8');\n const packageName = path.basename(path.dirname(changelogPath));\n\n // Parse changelog and truncate to recent entries\n const parsedChangelog = parseChangelogContent(content, packageName);\n // Mark as markdown source\n parsedChangelog.forEach((entry) => {\n entry.source = 'markdown';\n });\n const truncatedChangelog = truncateChangelog(parsedChangelog, 10); // Keep last 10 entries\n\n const outputPath = path.join(CHANGELOGS_DIR, `${packageName}.json`);\n await fs.writeFile(outputPath, JSON.stringify(truncatedChangelog, null, 2));\n }\n\n console.log(`โœ… Parsed ${changelogPaths.length} markdown changelogs and fetched RSS changelog`);\n}\n\nfunction parseChangelogContent(content: string, packageName: string): ParsedChangelog[] {\n const entries: ParsedChangelog[] = [];\n const lines = content.split('\\n');\n\n let currentEntry: Partial<ParsedChangelog> | null = null;\n\n for (const line of lines) {\n // Match version headers like ## [1.0.0] - 2023-01-01\n const versionMatch = line.match(/^##\\s*\\[?([^\\]]+)\\]?\\s*-\\s*(.+)/);\n if (versionMatch) {\n if (currentEntry) {\n entries.push(currentEntry as ParsedChangelog);\n }\n currentEntry = {\n package: packageName,\n version: versionMatch[1],\n date: versionMatch[2],\n changes: [],\n };\n continue;\n }\n\n // Match change items like - Added new feature\n const changeMatch = line.match(/^[-*]\\s*(.+)/);\n if (changeMatch && currentEntry) {\n currentEntry.changes = currentEntry.changes || [];\n currentEntry.changes.push(changeMatch[1]);\n }\n }\n\n if (currentEntry) {\n entries.push(currentEntry as ParsedChangelog);\n }\n\n return entries;\n}\n\nfunction truncateChangelog(entries: ParsedChangelog[], maxEntries: number): ParsedChangelog[] {\n return entries.slice(0, maxEntries);\n}\n\nasync function parseRSSChangelog(): Promise<ParsedChangelog[]> {\n console.log('๐ŸŒ Fetching WorkOS changelog from RSS feed...');\n\n const parser = new Parser({\n customFields: {\n item: [\n ['guid', 'guid'],\n ['description', 'description'],\n ],\n },\n });\n\n try {\n const feed = await parser.parseURL('https://workos.com/changelog/rss.xml');\n const entries: ParsedChangelog[] = [];\n\n for (const item of feed.items) {\n // Extract title and date\n const title = item.title || 'Untitled';\n const pubDate = item.pubDate || '';\n const link = item.link || '';\n const guid = item.guid || '';\n const description = item.description || '';\n\n // Parse the date\n let formattedDate = pubDate;\n if (pubDate) {\n try {\n const date = new Date(pubDate);\n formattedDate = date.toISOString().split('T')[0]; // YYYY-MM-DD format\n } catch {\n // Keep original date string if parsing fails\n }\n }\n\n // Clean up description to extract meaningful content\n const cleanDescription = description\n .replace(/<[^>]*>/g, '') // Remove HTML tags\n .replace(/\\s+/g, ' ') // Normalize whitespace\n .trim();\n\n const entry: ParsedChangelog = {\n package: 'workos-platform',\n version: title,\n date: formattedDate,\n changes: cleanDescription ? [cleanDescription] : [title],\n source: 'rss',\n url: link,\n guid: guid,\n };\n\n entries.push(entry);\n }\n\n console.log(`โœ… Fetched ${entries.length} changelog entries from RSS feed`);\n return entries;\n } catch (error) {\n console.error('โŒ Failed to fetch RSS changelog:', error);\n // Return empty array instead of throwing to allow fallback to local changelogs\n return [];\n }\n}\n\nasync function main(): Promise<void> {\n let sourceRoot = '.';\n\n try {\n console.log('๐Ÿš€ Starting WorkOS docs preparation...');\n\n // Clean existing organized docs\n try {\n await fs.rm(DOCS_OUTPUT_DIR, { recursive: true, force: true });\n } catch {\n // Directory might not exist, which is fine\n }\n\n await ensureDir(DOCS_OUTPUT_DIR);\n\n // Clone WorkOS repo unless using local docs\n if (process.env.USE_LOCAL_DOCS !== 'true') {\n sourceRoot = await cloneWorkOSRepo();\n }\n\n // Run all preparation steps\n await Promise.all([copyDocs(sourceRoot), organizeExamples(sourceRoot), parseChangelogs(sourceRoot)]);\n\n console.log('โœจ WorkOS docs preparation complete!');\n } catch (error) {\n console.error('โŒ Error preparing docs:', error);\n process.exit(1);\n } finally {\n // Clean up temp directory if we cloned the repo\n if (process.env.USE_LOCAL_DOCS !== 'true') {\n await cleanupTempDir();\n }\n }\n}\n\n// Run the script if called directly\nif (process.env.PREPARE === 'true') {\n main();\n}\n"],"mappings":";;;AAAA,SAAS,YAAY,UAAU;AAC/B,OAAO,UAAU;AACjB,OAAO,UAAU;AACjB,OAAO,YAAY;AACnB,SAAS,gBAAgB;AACzB,OAAO,YAAY;AAGnB,IAAM,kBAAkB;AACxB,IAAM,WAAW,KAAK,KAAK,iBAAiB,MAAM;AAClD,IAAM,eAAe,KAAK,KAAK,iBAAiB,UAAU;AAC1D,IAAM,iBAAiB,KAAK,KAAK,iBAAiB,YAAY;AAI9D,IAAM,kBAAkB;AACxB,IAAM,iBAAiB;AAEvB,eAAe,UAAU,KAA4B;AACnD,MAAI;AACF,UAAM,GAAG,MAAM,KAAK,EAAE,WAAW,KAAK,CAAC;AAAA,EACzC,SAAS,OAAO;AACd,QAAK,MAAgC,SAAS,UAAU;AACtD,YAAM;AAAA,IACR;AAAA,EACF;AACF;AAEA,eAAe,kBAAmC;AAChD,UAAQ,IAAI,sDAA+C;AAG3D,MAAI;AACF,UAAM,GAAG,GAAG,gBAAgB,EAAE,WAAW,MAAM,OAAO,KAAK,CAAC;AAAA,EAC9D,QAAQ;AAAA,EAER;AAEA,MAAI;AAEF,aAAS,uBAAuB,eAAe,IAAI,cAAc,IAAI;AAAA,MACnE,OAAO;AAAA,IACT,CAAC;AAED,YAAQ,IAAI,4CAAuC;AACnD,WAAO;AAAA,EACT,SAAS,OAAO;AACd,YAAQ,MAAM,kFAA6E;AAC3F,UAAM;AAAA,EACR;AACF;AAEA,eAAe,iBAAgC;AAC7C,MAAI;AACF,UAAM,GAAG,GAAG,gBAAgB,EAAE,WAAW,MAAM,OAAO,KAAK,CAAC;AAC5D,YAAQ,IAAI,gDAAyC;AAAA,EACvD,SAAS,OAAO;AACd,YAAQ,KAAK,wDAA8C,KAAK;AAAA,EAClE;AACF;AAEA,eAAe,SAAS,aAAqB,KAAoB;AAC/D,UAAQ,IAAI,uCAAgC;AAE5C,QAAM,UAAU,QAAQ;AAGxB,QAAM,WAAW,QAAQ,IAAI,mBAAmB;AAChD,MAAI;AAEJ,MAAI,UAAU;AAEZ,gBAAY,MAAM,KAAK,CAAC,sBAAsB,uBAAuB,GAAG;AAAA,MACtE,QAAQ,CAAC,oBAAoB;AAAA,IAC/B,CAAC;AAAA,EACH,OAAO;AAEL,gBAAY,MAAM,KAAK,CAAC,GAAG,UAAU,sCAAsC,GAAG;AAAA,MAC5E,QAAQ,CAAC,oBAAoB;AAAA,IAC/B,CAAC;AAAA,EACH;AAEA,aAAW,WAAW,WAAW;AAC/B,UAAM,UAAU,MAAM,GAAG,SAAS,SAAS,OAAO;AAClD,UAAM,SAAS,OAAO,OAAO;AAG7B,QAAI;AACJ,QAAI,UAAU;AACZ,qBAAe,QAAQ,QAAQ,WAAW,EAAE,EAAE,QAAQ,WAAW,EAAE;AAAA,IACrE,OAAO;AAEL,qBAAe,QAAQ,QAAQ,GAAG,UAAU,2BAA2B,EAAE,EAAE,QAAQ,WAAW,EAAE;AAAA,IAClG;AAEA,UAAM,aAAa,KAAK,KAAK,UAAU,YAAY;AAEnD,UAAM,UAAU,KAAK,QAAQ,UAAU,CAAC;AAGxC,QAAI,OAAO,OAAO,SAAS,YAAY,OAAO,SAAS,MAAM;AAC3D,aAAO,OAAO,CAAC;AAAA,IACjB;AACA,QAAI,CAAC,OAAO,KAAK,cAAc;AAC7B,aAAO,KAAK,eAAe;AAAA,IAC7B;AAEA,UAAM,iBAAiB,OAAO,UAAU,OAAO,SAAS,OAAO,IAAI;AACnE,UAAM,GAAG,UAAU,YAAY,cAAc;AAAA,EAC/C;AAEA,UAAQ,IAAI,iBAAY,UAAU,MAAM,sBAAsB;AAChE;AAEA,eAAe,iBAAiB,aAAqB,KAAoB;AACvE,UAAQ,IAAI,uCAAgC;AAE5C,QAAM,UAAU,YAAY;AAG5B,QAAM,WAAW,QAAQ,IAAI,mBAAmB;AAChD,MAAI;AAEJ,MAAI,UAAU;AAEZ,mBAAe,MAAM,KAAK,CAAC,iCAAiC,kCAAkC,GAAG;AAAA,MAC/F,QAAQ,CAAC,sBAAsB,YAAY;AAAA,IAC7C,CAAC;AAAA,EACH,OAAO;AAEL,mBAAe,MAAM,KAAK,CAAC,GAAG,UAAU,gCAAgC,GAAG;AAAA,MACzE,QAAQ,CAAC,sBAAsB,YAAY;AAAA,IAC7C,CAAC;AAAA,EACH;AAEA,QAAM,gBAAuC,oBAAI,IAAI;AAErD,aAAW,eAAe,cAAc;AACtC,UAAM,UAAU,MAAM,GAAG,SAAS,aAAa,OAAO;AAGtD,QAAI;AACJ,QAAI,UAAU;AACZ,kBAAY,YACT,QAAQ,WAAW,EAAE,EACrB,QAAQ,eAAe,EAAE,EACzB,MAAM,GAAG;AAAA,IACd,OAAO;AACL,kBAAY,YAAY,QAAQ,GAAG,UAAU,cAAc,EAAE,EAAE,MAAM,GAAG;AAAA,IAC1E;AAEA,UAAM,YAAY,UAAU,CAAC,KAAK;AAElC,QAAI,CAAC,cAAc,IAAI,SAAS,GAAG;AACjC,oBAAc,IAAI,WAAW,CAAC,CAAC;AAAA,IACjC;AAEA,UAAM,eAAe,UAAU,KAAK,GAAG;AACvC,UAAM,aAAa,KAAK,KAAK,cAAc,YAAY;AAEvD,UAAM,UAAU,KAAK,QAAQ,UAAU,CAAC;AACxC,UAAM,GAAG,UAAU,YAAY,OAAO;AAEtC,kBAAc,IAAI,SAAS,EAAG,KAAK,YAAY;AAAA,EACjD;AAGA,aAAW,CAAC,WAAW,KAAK,KAAK,eAAe;AAC9C,UAAM,YAAY,KAAK,KAAK,cAAc,WAAW,YAAY;AACjE,UAAM,YAA0B;AAAA,MAC9B,MAAM;AAAA,MACN,MAAM;AAAA,MACN;AAAA,IACF;AACA,UAAM,GAAG,UAAU,WAAW,KAAK,UAAU,WAAW,MAAM,CAAC,CAAC;AAAA,EAClE;AAEA,UAAQ,IAAI,oBAAe,aAAa,MAAM,kBAAkB,cAAc,IAAI,SAAS;AAC7F;AAEA,eAAe,gBAAgB,aAAqB,KAAoB;AACtE,UAAQ,IAAI,iCAA0B;AAEtC,QAAM,UAAU,cAAc;AAG9B,MAAI,QAAQ,IAAI,mBAAmB,QAAQ;AACzC,UAAM,aAAa,MAAM,kBAAkB;AAC3C,QAAI,WAAW,SAAS,GAAG;AACzB,YAAM,sBAAsB,kBAAkB,YAAY,EAAE;AAC5D,YAAM,gBAAgB,KAAK,KAAK,gBAAgB,sBAAsB;AACtE,YAAM,GAAG,UAAU,eAAe,KAAK,UAAU,qBAAqB,MAAM,CAAC,CAAC;AAAA,IAChF;AAAA,EACF;AAGA,QAAM,WAAW,QAAQ,IAAI,mBAAmB;AAChD,MAAI;AAEJ,MAAI,UAAU;AACZ,qBAAiB,MAAM,KAAK,CAAC,2BAA2B,4BAA4B,GAAG;AAAA,MACrF,QAAQ,CAAC,oBAAoB;AAAA,IAC/B,CAAC;AAAA,EACH,OAAO;AACL,qBAAiB,MAAM,KAAK,CAAC,GAAG,UAAU,0BAA0B,GAAG;AAAA,MACrE,QAAQ,CAAC,oBAAoB;AAAA,IAC/B,CAAC;AAAA,EACH;AAEA,aAAW,iBAAiB,gBAAgB;AAC1C,UAAM,UAAU,MAAM,GAAG,SAAS,eAAe,OAAO;AACxD,UAAM,cAAc,KAAK,SAAS,KAAK,QAAQ,aAAa,CAAC;AAG7D,UAAM,kBAAkB,sBAAsB,SAAS,WAAW;AAElE,oBAAgB,QAAQ,CAAC,UAAU;AACjC,YAAM,SAAS;AAAA,IACjB,CAAC;AACD,UAAM,qBAAqB,kBAAkB,iBAAiB,EAAE;AAEhE,UAAM,aAAa,KAAK,KAAK,gBAAgB,GAAG,WAAW,OAAO;AAClE,UAAM,GAAG,UAAU,YAAY,KAAK,UAAU,oBAAoB,MAAM,CAAC,CAAC;AAAA,EAC5E;AAEA,UAAQ,IAAI,iBAAY,eAAe,MAAM,gDAAgD;AAC/F;AAEA,SAAS,sBAAsB,SAAiB,aAAwC;AACtF,QAAM,UAA6B,CAAC;AACpC,QAAM,QAAQ,QAAQ,MAAM,IAAI;AAEhC,MAAI,eAAgD;AAEpD,aAAW,QAAQ,OAAO;AAExB,UAAM,eAAe,KAAK,MAAM,iCAAiC;AACjE,QAAI,cAAc;AAChB,UAAI,cAAc;AAChB,gBAAQ,KAAK,YAA+B;AAAA,MAC9C;AACA,qBAAe;AAAA,QACb,SAAS;AAAA,QACT,SAAS,aAAa,CAAC;AAAA,QACvB,MAAM,aAAa,CAAC;AAAA,QACpB,SAAS,CAAC;AAAA,MACZ;AACA;AAAA,IACF;AAGA,UAAM,cAAc,KAAK,MAAM,cAAc;AAC7C,QAAI,eAAe,cAAc;AAC/B,mBAAa,UAAU,aAAa,WAAW,CAAC;AAChD,mBAAa,QAAQ,KAAK,YAAY,CAAC,CAAC;AAAA,IAC1C;AAAA,EACF;AAEA,MAAI,cAAc;AAChB,YAAQ,KAAK,YAA+B;AAAA,EAC9C;AAEA,SAAO;AACT;AAEA,SAAS,kBAAkB,SAA4B,YAAuC;AAC5F,SAAO,QAAQ,MAAM,GAAG,UAAU;AACpC;AAEA,eAAe,oBAAgD;AAC7D,UAAQ,IAAI,sDAA+C;AAE3D,QAAM,SAAS,IAAI,OAAO;AAAA,IACxB,cAAc;AAAA,MACZ,MAAM;AAAA,QACJ,CAAC,QAAQ,MAAM;AAAA,QACf,CAAC,eAAe,aAAa;AAAA,MAC/B;AAAA,IACF;AAAA,EACF,CAAC;AAED,MAAI;AACF,UAAM,OAAO,MAAM,OAAO,SAAS,sCAAsC;AACzE,UAAM,UAA6B,CAAC;AAEpC,eAAW,QAAQ,KAAK,OAAO;AAE7B,YAAM,QAAQ,KAAK,SAAS;AAC5B,YAAM,UAAU,KAAK,WAAW;AAChC,YAAM,OAAO,KAAK,QAAQ;AAC1B,YAAM,OAAO,KAAK,QAAQ;AAC1B,YAAM,cAAc,KAAK,eAAe;AAGxC,UAAI,gBAAgB;AACpB,UAAI,SAAS;AACX,YAAI;AACF,gBAAM,OAAO,IAAI,KAAK,OAAO;AAC7B,0BAAgB,KAAK,YAAY,EAAE,MAAM,GAAG,EAAE,CAAC;AAAA,QACjD,QAAQ;AAAA,QAER;AAAA,MACF;AAGA,YAAM,mBAAmB,YACtB,QAAQ,YAAY,EAAE,EACtB,QAAQ,QAAQ,GAAG,EACnB,KAAK;AAER,YAAM,QAAyB;AAAA,QAC7B,SAAS;AAAA,QACT,SAAS;AAAA,QACT,MAAM;AAAA,QACN,SAAS,mBAAmB,CAAC,gBAAgB,IAAI,CAAC,KAAK;AAAA,QACvD,QAAQ;AAAA,QACR,KAAK;AAAA,QACL;AAAA,MACF;AAEA,cAAQ,KAAK,KAAK;AAAA,IACpB;AAEA,YAAQ,IAAI,kBAAa,QAAQ,MAAM,kCAAkC;AACzE,WAAO;AAAA,EACT,SAAS,OAAO;AACd,YAAQ,MAAM,yCAAoC,KAAK;AAEvD,WAAO,CAAC;AAAA,EACV;AACF;AAEA,eAAe,OAAsB;AACnC,MAAI,aAAa;AAEjB,MAAI;AACF,YAAQ,IAAI,+CAAwC;AAGpD,QAAI;AACF,YAAM,GAAG,GAAG,iBAAiB,EAAE,WAAW,MAAM,OAAO,KAAK,CAAC;AAAA,IAC/D,QAAQ;AAAA,IAER;AAEA,UAAM,UAAU,eAAe;AAG/B,QAAI,QAAQ,IAAI,mBAAmB,QAAQ;AACzC,mBAAa,MAAM,gBAAgB;AAAA,IACrC;AAGA,UAAM,QAAQ,IAAI,CAAC,SAAS,UAAU,GAAG,iBAAiB,UAAU,GAAG,gBAAgB,UAAU,CAAC,CAAC;AAEnG,YAAQ,IAAI,0CAAqC;AAAA,EACnD,SAAS,OAAO;AACd,YAAQ,MAAM,gCAA2B,KAAK;AAC9C,YAAQ,KAAK,CAAC;AAAA,EAChB,UAAE;AAEA,QAAI,QAAQ,IAAI,mBAAmB,QAAQ;AACzC,YAAM,eAAe;AAAA,IACvB;AAAA,EACF;AACF;AAGA,IAAI,QAAQ,IAAI,YAAY,QAAQ;AAClC,OAAK;AACP;","names":[]}
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "@workos/mcp-docs-server",
3
+ "version": "0.1.0",
4
+ "description": "An MCP server that provides documentation, code examples, and changelogs for WorkOS SDKs and developer tooling",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "bin": "dist/index.js",
8
+ "exports": {
9
+ ".": {
10
+ "default": "./dist/index.js"
11
+ }
12
+ },
13
+ "files": [
14
+ "dist",
15
+ ".docs"
16
+ ],
17
+ "scripts": {
18
+ "build": "tsup && npm run prepare-content",
19
+ "build:dev": "tsup && npm run prepare-content:local",
20
+ "prepare-content": "PREPARE=true node dist/prepare.js",
21
+ "prepare-content:local": "USE_LOCAL_DOCS=true PREPARE=true node dist/prepare.js",
22
+ "dev": "tsup --watch",
23
+ "type-check": "tsc --noEmit",
24
+ "format": "prettier --write ."
25
+ },
26
+ "dependencies": {
27
+ "@modelcontextprotocol/sdk": "^0.5.0",
28
+ "fast-glob": "^3.3.2",
29
+ "gray-matter": "^4.0.3",
30
+ "rss-parser": "^3.13.0"
31
+ },
32
+ "devDependencies": {
33
+ "@types/node": "^20.0.0",
34
+ "prettier": "^3.5.3",
35
+ "tsup": "^8.0.0",
36
+ "typescript": "^5.3.0"
37
+ },
38
+ "engines": {
39
+ "node": ">=18"
40
+ },
41
+ "keywords": [
42
+ "mcp",
43
+ "workos",
44
+ "documentation",
45
+ "sdk"
46
+ ],
47
+ "author": "WorkOS",
48
+ "license": "MIT"
49
+ }