@mulverse/mulguard-core 1.0.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 (600) hide show
  1. package/README.md +24 -0
  2. package/adapters.d.ts +522 -0
  3. package/adapters.d.ts.map +1 -0
  4. package/adapters.js +170 -0
  5. package/errors.d.ts +429 -0
  6. package/errors.d.ts.map +1 -0
  7. package/errors.js +473 -0
  8. package/index.d.ts +547 -0
  9. package/index.d.ts.map +1 -0
  10. package/index.js +142 -0
  11. package/jwt.d.ts +132 -0
  12. package/jwt.d.ts.map +1 -0
  13. package/jwt.js +123 -0
  14. package/lib/actions/callback/handle-login.d.ts +35 -0
  15. package/lib/actions/callback/handle-login.d.ts.map +1 -0
  16. package/lib/actions/callback/handle-login.js +275 -0
  17. package/lib/actions/callback/index.d.ts +5 -0
  18. package/lib/actions/callback/index.d.ts.map +1 -0
  19. package/lib/actions/callback/index.js +409 -0
  20. package/lib/actions/callback/oauth/callback.d.ts +36 -0
  21. package/lib/actions/callback/oauth/callback.d.ts.map +1 -0
  22. package/lib/actions/callback/oauth/callback.js +248 -0
  23. package/lib/actions/callback/oauth/checks.d.ts +70 -0
  24. package/lib/actions/callback/oauth/checks.d.ts.map +1 -0
  25. package/lib/actions/callback/oauth/checks.js +188 -0
  26. package/lib/actions/callback/oauth/csrf-token.d.ts +33 -0
  27. package/lib/actions/callback/oauth/csrf-token.d.ts.map +1 -0
  28. package/lib/actions/callback/oauth/csrf-token.js +39 -0
  29. package/lib/actions/index.d.ts +6 -0
  30. package/lib/actions/index.d.ts.map +1 -0
  31. package/lib/actions/index.js +5 -0
  32. package/lib/actions/session.d.ts +5 -0
  33. package/lib/actions/session.d.ts.map +1 -0
  34. package/lib/actions/session.js +127 -0
  35. package/lib/actions/signin/authorization-url.d.ts +12 -0
  36. package/lib/actions/signin/authorization-url.d.ts.map +1 -0
  37. package/lib/actions/signin/authorization-url.js +94 -0
  38. package/lib/actions/signin/index.d.ts +4 -0
  39. package/lib/actions/signin/index.d.ts.map +1 -0
  40. package/lib/actions/signin/index.js +22 -0
  41. package/lib/actions/signin/send-token.d.ts +10 -0
  42. package/lib/actions/signin/send-token.d.ts.map +1 -0
  43. package/lib/actions/signin/send-token.js +98 -0
  44. package/lib/actions/signout.d.ts +11 -0
  45. package/lib/actions/signout.d.ts.map +1 -0
  46. package/lib/actions/signout.js +30 -0
  47. package/lib/actions/webauthn-options.d.ts +8 -0
  48. package/lib/actions/webauthn-options.d.ts.map +1 -0
  49. package/lib/actions/webauthn-options.js +60 -0
  50. package/lib/index.d.ts +2 -0
  51. package/lib/index.d.ts.map +1 -0
  52. package/lib/index.js +70 -0
  53. package/lib/init.d.ts +25 -0
  54. package/lib/init.d.ts.map +1 -0
  55. package/lib/init.js +172 -0
  56. package/lib/pages/error.d.ts +17 -0
  57. package/lib/pages/error.d.ts.map +1 -0
  58. package/lib/pages/error.js +40 -0
  59. package/lib/pages/index.d.ts +42 -0
  60. package/lib/pages/index.d.ts.map +1 -0
  61. package/lib/pages/index.js +136 -0
  62. package/lib/pages/signin.d.ts +10 -0
  63. package/lib/pages/signin.d.ts.map +1 -0
  64. package/lib/pages/signin.js +75 -0
  65. package/lib/pages/signout.d.ts +8 -0
  66. package/lib/pages/signout.d.ts.map +1 -0
  67. package/lib/pages/signout.js +17 -0
  68. package/lib/pages/styles.d.ts +3 -0
  69. package/lib/pages/styles.d.ts.map +1 -0
  70. package/lib/pages/styles.js +381 -0
  71. package/lib/pages/verify-request.d.ts +8 -0
  72. package/lib/pages/verify-request.d.ts.map +1 -0
  73. package/lib/pages/verify-request.js +11 -0
  74. package/lib/symbols.d.ts +50 -0
  75. package/lib/symbols.d.ts.map +1 -0
  76. package/lib/symbols.js +57 -0
  77. package/lib/utils/actions.d.ts +3 -0
  78. package/lib/utils/actions.d.ts.map +1 -0
  79. package/lib/utils/actions.js +14 -0
  80. package/lib/utils/assert.d.ts +14 -0
  81. package/lib/utils/assert.d.ts.map +1 -0
  82. package/lib/utils/assert.js +168 -0
  83. package/lib/utils/callback-url.d.ts +17 -0
  84. package/lib/utils/callback-url.d.ts.map +1 -0
  85. package/lib/utils/callback-url.js +27 -0
  86. package/lib/utils/cookie.d.ts +111 -0
  87. package/lib/utils/cookie.d.ts.map +1 -0
  88. package/lib/utils/cookie.js +205 -0
  89. package/lib/utils/date.d.ts +7 -0
  90. package/lib/utils/date.d.ts.map +1 -0
  91. package/lib/utils/date.js +8 -0
  92. package/lib/utils/email.d.ts +20 -0
  93. package/lib/utils/email.d.ts.map +1 -0
  94. package/lib/utils/email.js +57 -0
  95. package/lib/utils/env.d.ts +9 -0
  96. package/lib/utils/env.d.ts.map +1 -0
  97. package/lib/utils/env.js +96 -0
  98. package/lib/utils/logger.d.ts +18 -0
  99. package/lib/utils/logger.d.ts.map +1 -0
  100. package/lib/utils/logger.js +50 -0
  101. package/lib/utils/merge.d.ts +3 -0
  102. package/lib/utils/merge.d.ts.map +1 -0
  103. package/lib/utils/merge.js +23 -0
  104. package/lib/utils/providers.d.ts +19 -0
  105. package/lib/utils/providers.d.ts.map +1 -0
  106. package/lib/utils/providers.js +149 -0
  107. package/lib/utils/session.d.ts +7 -0
  108. package/lib/utils/session.d.ts.map +1 -0
  109. package/lib/utils/session.js +29 -0
  110. package/lib/utils/web.d.ts +10 -0
  111. package/lib/utils/web.d.ts.map +1 -0
  112. package/lib/utils/web.js +109 -0
  113. package/lib/utils/webauthn-client.d.ts +30 -0
  114. package/lib/utils/webauthn-client.d.ts.map +1 -0
  115. package/lib/utils/webauthn-client.js +197 -0
  116. package/lib/utils/webauthn-utils.d.ts +81 -0
  117. package/lib/utils/webauthn-utils.d.ts.map +1 -0
  118. package/lib/utils/webauthn-utils.js +343 -0
  119. package/lib/vendored/cookie.d.ts +120 -0
  120. package/lib/vendored/cookie.d.ts.map +1 -0
  121. package/lib/vendored/cookie.js +237 -0
  122. package/package.json +118 -0
  123. package/providers/42-school.d.ts +240 -0
  124. package/providers/42-school.d.ts.map +1 -0
  125. package/providers/42-school.js +78 -0
  126. package/providers/apple.d.ts +149 -0
  127. package/providers/apple.d.ts.map +1 -0
  128. package/providers/apple.js +104 -0
  129. package/providers/asgardeo.d.ts +102 -0
  130. package/providers/asgardeo.d.ts.map +1 -0
  131. package/providers/asgardeo.js +93 -0
  132. package/providers/atlassian.d.ts +94 -0
  133. package/providers/atlassian.d.ts.map +1 -0
  134. package/providers/atlassian.js +84 -0
  135. package/providers/auth0.d.ts +116 -0
  136. package/providers/auth0.d.ts.map +1 -0
  137. package/providers/auth0.js +49 -0
  138. package/providers/authentik.d.ts +90 -0
  139. package/providers/authentik.d.ts.map +1 -0
  140. package/providers/authentik.js +65 -0
  141. package/providers/azure-ad-b2c.d.ts +104 -0
  142. package/providers/azure-ad-b2c.d.ts.map +1 -0
  143. package/providers/azure-ad-b2c.js +100 -0
  144. package/providers/azure-ad.d.ts +19 -0
  145. package/providers/azure-ad.d.ts.map +1 -0
  146. package/providers/azure-ad.js +23 -0
  147. package/providers/azure-devops.d.ts +128 -0
  148. package/providers/azure-devops.d.ts.map +1 -0
  149. package/providers/azure-devops.js +158 -0
  150. package/providers/bankid-no.d.ts +134 -0
  151. package/providers/bankid-no.d.ts.map +1 -0
  152. package/providers/bankid-no.js +65 -0
  153. package/providers/battlenet.d.ts +85 -0
  154. package/providers/battlenet.d.ts.map +1 -0
  155. package/providers/battlenet.js +81 -0
  156. package/providers/beyondidentity.d.ts +77 -0
  157. package/providers/beyondidentity.d.ts.map +1 -0
  158. package/providers/beyondidentity.js +84 -0
  159. package/providers/bitbucket.d.ts +89 -0
  160. package/providers/bitbucket.d.ts.map +1 -0
  161. package/providers/bitbucket.js +92 -0
  162. package/providers/box.d.ts +63 -0
  163. package/providers/box.d.ts.map +1 -0
  164. package/providers/box.js +73 -0
  165. package/providers/boxyhq-saml.d.ts +121 -0
  166. package/providers/boxyhq-saml.d.ts.map +1 -0
  167. package/providers/boxyhq-saml.js +127 -0
  168. package/providers/bungie.d.ts +167 -0
  169. package/providers/bungie.d.ts.map +1 -0
  170. package/providers/bungie.js +174 -0
  171. package/providers/click-up.d.ts +75 -0
  172. package/providers/click-up.d.ts.map +1 -0
  173. package/providers/click-up.js +89 -0
  174. package/providers/cognito.d.ts +81 -0
  175. package/providers/cognito.d.ts.map +1 -0
  176. package/providers/cognito.js +73 -0
  177. package/providers/coinbase.d.ts +69 -0
  178. package/providers/coinbase.d.ts.map +1 -0
  179. package/providers/coinbase.js +78 -0
  180. package/providers/concept2.d.ts +81 -0
  181. package/providers/concept2.d.ts.map +1 -0
  182. package/providers/concept2.js +86 -0
  183. package/providers/credentials.d.ts +132 -0
  184. package/providers/credentials.d.ts.map +1 -0
  185. package/providers/credentials.js +74 -0
  186. package/providers/descope.d.ts +91 -0
  187. package/providers/descope.d.ts.map +1 -0
  188. package/providers/descope.js +78 -0
  189. package/providers/discord.d.ts +139 -0
  190. package/providers/discord.d.ts.map +1 -0
  191. package/providers/discord.js +86 -0
  192. package/providers/dribbble.d.ts +88 -0
  193. package/providers/dribbble.d.ts.map +1 -0
  194. package/providers/dribbble.js +85 -0
  195. package/providers/dropbox.d.ts +65 -0
  196. package/providers/dropbox.d.ts.map +1 -0
  197. package/providers/dropbox.js +88 -0
  198. package/providers/duende-identity-server6.d.ts +91 -0
  199. package/providers/duende-identity-server6.d.ts.map +1 -0
  200. package/providers/duende-identity-server6.js +80 -0
  201. package/providers/email.d.ts +41 -0
  202. package/providers/email.d.ts.map +1 -0
  203. package/providers/email.js +18 -0
  204. package/providers/eventbrite.d.ts +78 -0
  205. package/providers/eventbrite.d.ts.map +1 -0
  206. package/providers/eventbrite.js +88 -0
  207. package/providers/eveonline.d.ts +94 -0
  208. package/providers/eveonline.d.ts.map +1 -0
  209. package/providers/eveonline.js +92 -0
  210. package/providers/facebook.d.ts +84 -0
  211. package/providers/facebook.d.ts.map +1 -0
  212. package/providers/facebook.js +93 -0
  213. package/providers/faceit.d.ts +64 -0
  214. package/providers/faceit.d.ts.map +1 -0
  215. package/providers/faceit.js +74 -0
  216. package/providers/figma.d.ts +75 -0
  217. package/providers/figma.d.ts.map +1 -0
  218. package/providers/figma.js +81 -0
  219. package/providers/forwardemail.d.ts +4 -0
  220. package/providers/forwardemail.d.ts.map +1 -0
  221. package/providers/forwardemail.js +32 -0
  222. package/providers/foursquare.d.ts +71 -0
  223. package/providers/foursquare.d.ts.map +1 -0
  224. package/providers/foursquare.js +91 -0
  225. package/providers/freshbooks.d.ts +66 -0
  226. package/providers/freshbooks.d.ts.map +1 -0
  227. package/providers/freshbooks.js +76 -0
  228. package/providers/frontegg.d.ts +95 -0
  229. package/providers/frontegg.d.ts.map +1 -0
  230. package/providers/frontegg.js +88 -0
  231. package/providers/fusionauth.d.ts +279 -0
  232. package/providers/fusionauth.d.ts.map +1 -0
  233. package/providers/fusionauth.js +292 -0
  234. package/providers/github.d.ts +127 -0
  235. package/providers/github.d.ts.map +1 -0
  236. package/providers/github.js +115 -0
  237. package/providers/gitlab.d.ts +115 -0
  238. package/providers/gitlab.d.ts.map +1 -0
  239. package/providers/gitlab.js +75 -0
  240. package/providers/google.d.ts +138 -0
  241. package/providers/google.d.ts.map +1 -0
  242. package/providers/google.js +119 -0
  243. package/providers/hubspot.d.ts +76 -0
  244. package/providers/hubspot.d.ts.map +1 -0
  245. package/providers/hubspot.js +93 -0
  246. package/providers/huggingface.d.ts +216 -0
  247. package/providers/huggingface.d.ts.map +1 -0
  248. package/providers/huggingface.js +101 -0
  249. package/providers/identity-server4.d.ts +69 -0
  250. package/providers/identity-server4.d.ts.map +1 -0
  251. package/providers/identity-server4.js +64 -0
  252. package/providers/index.d.ts +61 -0
  253. package/providers/index.d.ts.map +1 -0
  254. package/providers/index.js +3 -0
  255. package/providers/instagram.d.ts +74 -0
  256. package/providers/instagram.d.ts.map +1 -0
  257. package/providers/instagram.js +87 -0
  258. package/providers/kakao.d.ts +148 -0
  259. package/providers/kakao.d.ts.map +1 -0
  260. package/providers/kakao.js +103 -0
  261. package/providers/keycloak.d.ts +100 -0
  262. package/providers/keycloak.d.ts.map +1 -0
  263. package/providers/keycloak.js +73 -0
  264. package/providers/kinde.d.ts +73 -0
  265. package/providers/kinde.d.ts.map +1 -0
  266. package/providers/kinde.js +51 -0
  267. package/providers/line.d.ts +83 -0
  268. package/providers/line.d.ts.map +1 -0
  269. package/providers/line.js +73 -0
  270. package/providers/linkedin.d.ts +77 -0
  271. package/providers/linkedin.d.ts.map +1 -0
  272. package/providers/linkedin.js +65 -0
  273. package/providers/logto.d.ts +98 -0
  274. package/providers/logto.d.ts.map +1 -0
  275. package/providers/logto.js +81 -0
  276. package/providers/loops.d.ts +40 -0
  277. package/providers/loops.d.ts.map +1 -0
  278. package/providers/loops.js +59 -0
  279. package/providers/mailchimp.d.ts +66 -0
  280. package/providers/mailchimp.d.ts.map +1 -0
  281. package/providers/mailchimp.js +76 -0
  282. package/providers/mailgun.d.ts +55 -0
  283. package/providers/mailgun.d.ts.map +1 -0
  284. package/providers/mailgun.js +74 -0
  285. package/providers/mailru.d.ts +63 -0
  286. package/providers/mailru.d.ts.map +1 -0
  287. package/providers/mailru.js +61 -0
  288. package/providers/mastodon.d.ts +90 -0
  289. package/providers/mastodon.d.ts.map +1 -0
  290. package/providers/mastodon.js +75 -0
  291. package/providers/mattermost.d.ts +132 -0
  292. package/providers/mattermost.d.ts.map +1 -0
  293. package/providers/mattermost.js +83 -0
  294. package/providers/medium.d.ts +68 -0
  295. package/providers/medium.d.ts.map +1 -0
  296. package/providers/medium.js +84 -0
  297. package/providers/microsoft-entra-id.d.ts +428 -0
  298. package/providers/microsoft-entra-id.d.ts.map +1 -0
  299. package/providers/microsoft-entra-id.js +156 -0
  300. package/providers/naver.d.ts +80 -0
  301. package/providers/naver.d.ts.map +1 -0
  302. package/providers/naver.js +79 -0
  303. package/providers/netlify.d.ts +66 -0
  304. package/providers/netlify.d.ts.map +1 -0
  305. package/providers/netlify.js +85 -0
  306. package/providers/netsuite.d.ts +189 -0
  307. package/providers/netsuite.d.ts.map +1 -0
  308. package/providers/netsuite.js +170 -0
  309. package/providers/nextcloud.d.ts +150 -0
  310. package/providers/nextcloud.d.ts.map +1 -0
  311. package/providers/nextcloud.js +99 -0
  312. package/providers/nodemailer.d.ts +27 -0
  313. package/providers/nodemailer.d.ts.map +1 -0
  314. package/providers/nodemailer.js +34 -0
  315. package/providers/notion.d.ts +99 -0
  316. package/providers/notion.d.ts.map +1 -0
  317. package/providers/notion.js +110 -0
  318. package/providers/oauth.d.ts +188 -0
  319. package/providers/oauth.d.ts.map +1 -0
  320. package/providers/oauth.js +1 -0
  321. package/providers/okta.d.ts +99 -0
  322. package/providers/okta.d.ts.map +1 -0
  323. package/providers/okta.js +63 -0
  324. package/providers/onelogin.d.ts +65 -0
  325. package/providers/onelogin.d.ts.map +1 -0
  326. package/providers/onelogin.js +61 -0
  327. package/providers/ory-hydra.d.ts +79 -0
  328. package/providers/ory-hydra.d.ts.map +1 -0
  329. package/providers/ory-hydra.js +67 -0
  330. package/providers/osso.d.ts +79 -0
  331. package/providers/osso.d.ts.map +1 -0
  332. package/providers/osso.js +77 -0
  333. package/providers/osu.d.ts +116 -0
  334. package/providers/osu.d.ts.map +1 -0
  335. package/providers/osu.js +75 -0
  336. package/providers/passage.d.ts +88 -0
  337. package/providers/passage.d.ts.map +1 -0
  338. package/providers/passage.js +75 -0
  339. package/providers/passkey.d.ts +65 -0
  340. package/providers/passkey.d.ts.map +1 -0
  341. package/providers/passkey.js +87 -0
  342. package/providers/patreon.d.ts +73 -0
  343. package/providers/patreon.d.ts.map +1 -0
  344. package/providers/patreon.js +77 -0
  345. package/providers/ping-id.d.ts +57 -0
  346. package/providers/ping-id.d.ts.map +1 -0
  347. package/providers/ping-id.js +40 -0
  348. package/providers/pinterest.d.ts +79 -0
  349. package/providers/pinterest.d.ts.map +1 -0
  350. package/providers/pinterest.js +85 -0
  351. package/providers/pipedrive.d.ts +99 -0
  352. package/providers/pipedrive.d.ts.map +1 -0
  353. package/providers/pipedrive.js +71 -0
  354. package/providers/postmark.d.ts +4 -0
  355. package/providers/postmark.d.ts.map +1 -0
  356. package/providers/postmark.js +36 -0
  357. package/providers/provider-types.d.ts +3 -0
  358. package/providers/provider-types.d.ts.map +1 -0
  359. package/providers/provider-types.js +1 -0
  360. package/providers/reddit.d.ts +88 -0
  361. package/providers/reddit.d.ts.map +1 -0
  362. package/providers/reddit.js +90 -0
  363. package/providers/resend.d.ts +4 -0
  364. package/providers/resend.d.ts.map +1 -0
  365. package/providers/resend.js +32 -0
  366. package/providers/roblox.d.ts +67 -0
  367. package/providers/roblox.d.ts.map +1 -0
  368. package/providers/roblox.js +53 -0
  369. package/providers/salesforce.d.ts +59 -0
  370. package/providers/salesforce.d.ts.map +1 -0
  371. package/providers/salesforce.js +52 -0
  372. package/providers/sendgrid.d.ts +4 -0
  373. package/providers/sendgrid.d.ts.map +1 -0
  374. package/providers/sendgrid.js +35 -0
  375. package/providers/simplelogin.d.ts +87 -0
  376. package/providers/simplelogin.d.ts.map +1 -0
  377. package/providers/simplelogin.js +83 -0
  378. package/providers/slack.d.ts +102 -0
  379. package/providers/slack.d.ts.map +1 -0
  380. package/providers/slack.js +69 -0
  381. package/providers/spotify.d.ts +75 -0
  382. package/providers/spotify.d.ts.map +1 -0
  383. package/providers/spotify.js +73 -0
  384. package/providers/strava.d.ts +68 -0
  385. package/providers/strava.d.ts.map +1 -0
  386. package/providers/strava.js +80 -0
  387. package/providers/threads.d.ts +108 -0
  388. package/providers/threads.d.ts.map +1 -0
  389. package/providers/threads.js +89 -0
  390. package/providers/tiktok.d.ts +248 -0
  391. package/providers/tiktok.d.ts.map +1 -0
  392. package/providers/tiktok.js +195 -0
  393. package/providers/todoist.d.ts +76 -0
  394. package/providers/todoist.d.ts.map +1 -0
  395. package/providers/todoist.js +97 -0
  396. package/providers/trakt.d.ts +93 -0
  397. package/providers/trakt.d.ts.map +1 -0
  398. package/providers/trakt.js +91 -0
  399. package/providers/twitch.d.ts +71 -0
  400. package/providers/twitch.d.ts.map +1 -0
  401. package/providers/twitch.js +96 -0
  402. package/providers/twitter.d.ts +183 -0
  403. package/providers/twitter.d.ts.map +1 -0
  404. package/providers/twitter.js +100 -0
  405. package/providers/united-effects.d.ts +80 -0
  406. package/providers/united-effects.d.ts.map +1 -0
  407. package/providers/united-effects.js +72 -0
  408. package/providers/vipps.d.ts +71 -0
  409. package/providers/vipps.d.ts.map +1 -0
  410. package/providers/vipps.js +33 -0
  411. package/providers/vk.d.ts +334 -0
  412. package/providers/vk.d.ts.map +1 -0
  413. package/providers/vk.js +103 -0
  414. package/providers/webauthn.d.ts +148 -0
  415. package/providers/webauthn.d.ts.map +1 -0
  416. package/providers/webauthn.js +128 -0
  417. package/providers/webex.d.ts +78 -0
  418. package/providers/webex.d.ts.map +1 -0
  419. package/providers/webex.js +73 -0
  420. package/providers/wechat.d.ts +78 -0
  421. package/providers/wechat.d.ts.map +1 -0
  422. package/providers/wechat.js +105 -0
  423. package/providers/wikimedia.d.ts +99 -0
  424. package/providers/wikimedia.d.ts.map +1 -0
  425. package/providers/wikimedia.js +90 -0
  426. package/providers/wordpress.d.ts +65 -0
  427. package/providers/wordpress.d.ts.map +1 -0
  428. package/providers/wordpress.js +71 -0
  429. package/providers/workos.d.ts +154 -0
  430. package/providers/workos.d.ts.map +1 -0
  431. package/providers/workos.js +143 -0
  432. package/providers/yandex.d.ts +131 -0
  433. package/providers/yandex.d.ts.map +1 -0
  434. package/providers/yandex.js +80 -0
  435. package/providers/zitadel.d.ts +117 -0
  436. package/providers/zitadel.d.ts.map +1 -0
  437. package/providers/zitadel.js +95 -0
  438. package/providers/zoho.d.ts +63 -0
  439. package/providers/zoho.d.ts.map +1 -0
  440. package/providers/zoho.js +79 -0
  441. package/providers/zoom.d.ts +93 -0
  442. package/providers/zoom.d.ts.map +1 -0
  443. package/providers/zoom.js +82 -0
  444. package/src/adapters/server-actions-helpers.ts +126 -0
  445. package/src/adapters.ts +603 -0
  446. package/src/errors.ts +551 -0
  447. package/src/index.ts +689 -0
  448. package/src/jwt.ts +283 -0
  449. package/src/lib/actions/callback/handle-login.ts +334 -0
  450. package/src/lib/actions/callback/index.ts +554 -0
  451. package/src/lib/actions/callback/oauth/callback.ts +347 -0
  452. package/src/lib/actions/callback/oauth/checks.ts +258 -0
  453. package/src/lib/actions/callback/oauth/csrf-token.ts +60 -0
  454. package/src/lib/actions/index.ts +5 -0
  455. package/src/lib/actions/session.ts +167 -0
  456. package/src/lib/actions/signin/authorization-url.ts +123 -0
  457. package/src/lib/actions/signin/index.ts +37 -0
  458. package/src/lib/actions/signin/send-token.ts +124 -0
  459. package/src/lib/actions/signout.ts +38 -0
  460. package/src/lib/actions/webauthn-options.ts +100 -0
  461. package/src/lib/index.ts +97 -0
  462. package/src/lib/init.ts +236 -0
  463. package/src/lib/pages/error.tsx +106 -0
  464. package/src/lib/pages/index.ts +181 -0
  465. package/src/lib/pages/signin.tsx +255 -0
  466. package/src/lib/pages/signout.tsx +49 -0
  467. package/src/lib/pages/styles.css +377 -0
  468. package/src/lib/pages/styles.ts +381 -0
  469. package/src/lib/pages/verify-request.tsx +36 -0
  470. package/src/lib/symbols.ts +60 -0
  471. package/src/lib/utils/actions.ts +17 -0
  472. package/src/lib/utils/assert.ts +259 -0
  473. package/src/lib/utils/callback-url.ts +42 -0
  474. package/src/lib/utils/cookie.ts +248 -0
  475. package/src/lib/utils/date.ts +8 -0
  476. package/src/lib/utils/email.ts +65 -0
  477. package/src/lib/utils/env.ts +113 -0
  478. package/src/lib/utils/logger.ts +75 -0
  479. package/src/lib/utils/merge.ts +30 -0
  480. package/src/lib/utils/providers.ts +203 -0
  481. package/src/lib/utils/session.ts +41 -0
  482. package/src/lib/utils/web.ts +151 -0
  483. package/src/lib/utils/webauthn-client.js +229 -0
  484. package/src/lib/utils/webauthn-utils.ts +531 -0
  485. package/src/lib/vendored/cookie.ts +383 -0
  486. package/src/providers/42-school.ts +256 -0
  487. package/src/providers/apple.ts +206 -0
  488. package/src/providers/asgardeo.ts +118 -0
  489. package/src/providers/atlassian.ts +120 -0
  490. package/src/providers/auth0.ts +127 -0
  491. package/src/providers/authentik.ts +100 -0
  492. package/src/providers/azure-ad-b2c.ts +124 -0
  493. package/src/providers/azure-ad.ts +30 -0
  494. package/src/providers/azure-devops.ts +184 -0
  495. package/src/providers/bankid-no.ts +161 -0
  496. package/src/providers/battlenet.ts +107 -0
  497. package/src/providers/beyondidentity.ts +102 -0
  498. package/src/providers/bitbucket.ts +122 -0
  499. package/src/providers/box.ts +87 -0
  500. package/src/providers/boxyhq-saml.ts +148 -0
  501. package/src/providers/bungie.ts +192 -0
  502. package/src/providers/click-up.ts +104 -0
  503. package/src/providers/cognito.ts +94 -0
  504. package/src/providers/coinbase.ts +93 -0
  505. package/src/providers/concept2.ts +108 -0
  506. package/src/providers/credentials.ts +157 -0
  507. package/src/providers/descope.ts +105 -0
  508. package/src/providers/discord.ts +176 -0
  509. package/src/providers/dribbble.ts +122 -0
  510. package/src/providers/dropbox.ts +102 -0
  511. package/src/providers/duende-identity-server6.ts +101 -0
  512. package/src/providers/email.ts +60 -0
  513. package/src/providers/eventbrite.ts +105 -0
  514. package/src/providers/eveonline.ts +117 -0
  515. package/src/providers/facebook.ts +119 -0
  516. package/src/providers/faceit.ts +90 -0
  517. package/src/providers/figma.ts +105 -0
  518. package/src/providers/forwardemail.ts +37 -0
  519. package/src/providers/foursquare.ts +105 -0
  520. package/src/providers/freshbooks.ts +90 -0
  521. package/src/providers/frontegg.ts +111 -0
  522. package/src/providers/fusionauth.ts +336 -0
  523. package/src/providers/github.ts +187 -0
  524. package/src/providers/gitlab.ts +140 -0
  525. package/src/providers/google.ts +152 -0
  526. package/src/providers/hubspot.ts +117 -0
  527. package/src/providers/huggingface.ts +234 -0
  528. package/src/providers/identity-server4.ts +78 -0
  529. package/src/providers/index.ts +115 -0
  530. package/src/providers/instagram.ts +103 -0
  531. package/src/providers/kakao.ts +184 -0
  532. package/src/providers/keycloak.ts +111 -0
  533. package/src/providers/kinde.ts +85 -0
  534. package/src/providers/line.ts +99 -0
  535. package/src/providers/linkedin.ts +91 -0
  536. package/src/providers/logto.ts +122 -0
  537. package/src/providers/loops.ts +79 -0
  538. package/src/providers/mailchimp.ts +90 -0
  539. package/src/providers/mailgun.ts +98 -0
  540. package/src/providers/mailru.ts +75 -0
  541. package/src/providers/mastodon.ts +112 -0
  542. package/src/providers/mattermost.ts +154 -0
  543. package/src/providers/medium.ts +89 -0
  544. package/src/providers/microsoft-entra-id.ts +497 -0
  545. package/src/providers/naver.ts +102 -0
  546. package/src/providers/netlify.ts +90 -0
  547. package/src/providers/netsuite.ts +225 -0
  548. package/src/providers/nextcloud.ts +207 -0
  549. package/src/providers/nodemailer.ts +84 -0
  550. package/src/providers/notion.ts +166 -0
  551. package/src/providers/oauth.ts +310 -0
  552. package/src/providers/okta.ts +111 -0
  553. package/src/providers/onelogin.ts +75 -0
  554. package/src/providers/ory-hydra.ts +93 -0
  555. package/src/providers/osso.ts +91 -0
  556. package/src/providers/osu.ts +138 -0
  557. package/src/providers/passage.ts +103 -0
  558. package/src/providers/passkey.ts +94 -0
  559. package/src/providers/patreon.ts +98 -0
  560. package/src/providers/ping-id.ts +68 -0
  561. package/src/providers/pinterest.ts +106 -0
  562. package/src/providers/pipedrive.ts +120 -0
  563. package/src/providers/postmark.ts +38 -0
  564. package/src/providers/provider-types.ts +107 -0
  565. package/src/providers/reddit.ts +104 -0
  566. package/src/providers/resend.ts +35 -0
  567. package/src/providers/roblox.ts +94 -0
  568. package/src/providers/salesforce.ts +73 -0
  569. package/src/providers/sendgrid.ts +36 -0
  570. package/src/providers/simplelogin.ts +107 -0
  571. package/src/providers/slack.ts +115 -0
  572. package/src/providers/spotify.ts +99 -0
  573. package/src/providers/strava.ts +101 -0
  574. package/src/providers/threads.ts +135 -0
  575. package/src/providers/tiktok.ts +319 -0
  576. package/src/providers/todoist.ts +122 -0
  577. package/src/providers/trakt.ts +120 -0
  578. package/src/providers/twitch.ts +121 -0
  579. package/src/providers/twitter.ts +207 -0
  580. package/src/providers/united-effects.ts +89 -0
  581. package/src/providers/vipps.ts +86 -0
  582. package/src/providers/vk.ts +401 -0
  583. package/src/providers/webauthn.ts +296 -0
  584. package/src/providers/webex.ts +102 -0
  585. package/src/providers/wechat.ts +141 -0
  586. package/src/providers/wikimedia.ts +258 -0
  587. package/src/providers/wordpress.ts +86 -0
  588. package/src/providers/workos.ts +180 -0
  589. package/src/providers/yandex.ts +159 -0
  590. package/src/providers/zitadel.ts +128 -0
  591. package/src/providers/zoho.ts +84 -0
  592. package/src/providers/zoom.ts +119 -0
  593. package/src/types.ts +430 -0
  594. package/src/warnings.ts +21 -0
  595. package/types.d.ts +309 -0
  596. package/types.d.ts.map +1 -0
  597. package/types.js +53 -0
  598. package/warnings.d.ts +17 -0
  599. package/warnings.d.ts.map +1 -0
  600. package/warnings.js +1 -0
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Add Authentik login to your page.
3
+ *
4
+ * ### Setup
5
+ *
6
+ * #### Callback URL
7
+ * ```
8
+ * https://example.com/api/auth/callback/authentik
9
+ * ```
10
+ *
11
+ * #### Configuration
12
+ *```ts
13
+ * import { Auth } from "@auth/core"
14
+ * import Authentik from "@auth/core/providers/authentik"
15
+ *
16
+ * const request = new Request(origin)
17
+ * const response = await Auth(request, {
18
+ * providers: [
19
+ * Authentik({
20
+ * clientId: AUTHENTIK_CLIENT_ID,
21
+ * clientSecret: AUTHENTIK_CLIENT_SECRET,
22
+ * issuer: AUTHENTIK_ISSUER,
23
+ * }),
24
+ * ],
25
+ * })
26
+ * ```
27
+ *
28
+ * :::note
29
+ * issuer should include the slug without a trailing slash – e.g., https://my-authentik-domain.com/application/o/My_Slug
30
+ * :::
31
+ *
32
+ * ### Resources
33
+ *
34
+ * - [Authentik OAuth documentation](https://goauthentik.io/docs/providers/oauth2)
35
+ *
36
+ * ### Notes
37
+ *
38
+ * By default, Auth.js assumes that the Authentik provider is
39
+ * based on the [Open ID Connect](https://openid.net/specs/openid-connect-core-1_0.html) specification.
40
+ *
41
+ * :::tip
42
+ *
43
+ * The Authentik provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/authentik.ts).
44
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
45
+ *
46
+ * :::
47
+ *
48
+ * :::info **Disclaimer**
49
+ *
50
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
51
+ *
52
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
53
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
54
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
55
+ *
56
+ * :::
57
+ */
58
+ export default function Authentik(options) {
59
+ return {
60
+ id: "authentik",
61
+ name: "Authentik",
62
+ type: "oidc",
63
+ options,
64
+ };
65
+ }
@@ -0,0 +1,104 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#0072c6", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>Azure AD B2C</b> integration.</span>
4
+ * <a href="https://learn.microsoft.com/en-us/azure/active-directory-b2c/tutorial-create-tenant">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/azure.svg" height="48" width="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/azure-ad-b2c
10
+ */
11
+ import type { OIDCConfig, OIDCUserConfig } from "./index.js";
12
+ /** @see [Claims](https://learn.microsoft.com/en-us/azure/active-directory-b2c/tokens-overview#claims) */
13
+ export interface AzureADB2CProfile {
14
+ exp: number;
15
+ nbf: number;
16
+ ver: string;
17
+ iss: string;
18
+ sub: string;
19
+ aud: string;
20
+ iat: number;
21
+ auth_time: number;
22
+ oid: string;
23
+ country: string;
24
+ name: string;
25
+ postalCode: string;
26
+ emails: string[];
27
+ tfp: string;
28
+ preferred_username: string;
29
+ }
30
+ /**
31
+ * Add Azure AD B2C login to your page.
32
+ *
33
+ *
34
+ * ## Configuration
35
+ *
36
+ * ### Basic
37
+ *
38
+ * Basic configuration sets up Azure AD B2C to return an ID Token. This should be done as a prerequisite prior to running through the Advanced configuration.
39
+ *
40
+ * 1. [Azure AD B2C Tenant](https://docs.microsoft.com/en-us/azure/active-directory-b2c/tutorial-create-tenant)
41
+ * 2. [App Registration](https://docs.microsoft.com/en-us/azure/active-directory-b2c/tutorial-register-applications)
42
+ * 3. [User Flow](https://docs.microsoft.com/en-us/azure/active-directory-b2c/tutorial-create-user-flows)
43
+ *
44
+ * For the step "User attributes and token claims" set the following:
45
+ *
46
+ * - Collect attribute:
47
+ * - Email Address
48
+ * - Display Name
49
+ * - Given Name
50
+ * - Surname
51
+ * - Return claim:
52
+ * - Email Addresses
53
+ * - Display Name
54
+ * - Given Name
55
+ * - Surname
56
+ * - Identity Provider
57
+ * - Identity Provider Access Token
58
+ * - User's Object ID
59
+ *
60
+ * @example
61
+ *
62
+ * ```ts
63
+ * import { Auth } from "@auth/core"
64
+ * import AzureADB2C from "@auth/core/providers/azure-ad-b2c"
65
+ *
66
+ * const request = new Request("https://example.com")
67
+ * const response = await AuthHandler(request, {
68
+ * // optionally, you can pass `tenantId` and `primaryUserFlow` instead of `issuer`
69
+ * providers: [AzureADB2C({ clientId: "", clientSecret: "", issuer: "" })],
70
+ * })
71
+ * ```
72
+ *
73
+ * ---
74
+ *
75
+ * ### Resources
76
+ *
77
+ * - [Azure Active Directory B2C documentation](https://learn.microsoft.com/en-us/azure/active-directory-b2c)
78
+ *
79
+ * ---
80
+ *
81
+ * ### Notes
82
+ *
83
+ * By default, Auth.js assumes that the Azure AD B2C provider is
84
+ * based on the [OIDC](https://openid.net/specs/openid-connect-core-1_0.html) specification.
85
+ *
86
+ * :::tip
87
+ *
88
+ * The Azure AD B2C provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/azure-ad-b2c.ts).
89
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
90
+ *
91
+ * :::
92
+ *
93
+ * :::info **Disclaimer**
94
+ *
95
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
96
+ *
97
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
98
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
99
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
100
+ *
101
+ * :::
102
+ */
103
+ export default function AzureADB2C(options: OIDCUserConfig<AzureADB2CProfile>): OIDCConfig<AzureADB2CProfile>;
104
+ //# sourceMappingURL=azure-ad-b2c.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azure-ad-b2c.d.ts","sourceRoot":"","sources":["../src/providers/azure-ad-b2c.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE5D,yGAAyG;AACzG,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,kBAAkB,EAAE,MAAM,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwEG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAChC,OAAO,EAAE,cAAc,CAAC,iBAAiB,CAAC,GACzC,UAAU,CAAC,iBAAiB,CAAC,CAgB/B"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#0072c6", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>Azure AD B2C</b> integration.</span>
4
+ * <a href="https://learn.microsoft.com/en-us/azure/active-directory-b2c/tutorial-create-tenant">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/azure.svg" height="48" width="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/azure-ad-b2c
10
+ */
11
+ /**
12
+ * Add Azure AD B2C login to your page.
13
+ *
14
+ *
15
+ * ## Configuration
16
+ *
17
+ * ### Basic
18
+ *
19
+ * Basic configuration sets up Azure AD B2C to return an ID Token. This should be done as a prerequisite prior to running through the Advanced configuration.
20
+ *
21
+ * 1. [Azure AD B2C Tenant](https://docs.microsoft.com/en-us/azure/active-directory-b2c/tutorial-create-tenant)
22
+ * 2. [App Registration](https://docs.microsoft.com/en-us/azure/active-directory-b2c/tutorial-register-applications)
23
+ * 3. [User Flow](https://docs.microsoft.com/en-us/azure/active-directory-b2c/tutorial-create-user-flows)
24
+ *
25
+ * For the step "User attributes and token claims" set the following:
26
+ *
27
+ * - Collect attribute:
28
+ * - Email Address
29
+ * - Display Name
30
+ * - Given Name
31
+ * - Surname
32
+ * - Return claim:
33
+ * - Email Addresses
34
+ * - Display Name
35
+ * - Given Name
36
+ * - Surname
37
+ * - Identity Provider
38
+ * - Identity Provider Access Token
39
+ * - User's Object ID
40
+ *
41
+ * @example
42
+ *
43
+ * ```ts
44
+ * import { Auth } from "@auth/core"
45
+ * import AzureADB2C from "@auth/core/providers/azure-ad-b2c"
46
+ *
47
+ * const request = new Request("https://example.com")
48
+ * const response = await AuthHandler(request, {
49
+ * // optionally, you can pass `tenantId` and `primaryUserFlow` instead of `issuer`
50
+ * providers: [AzureADB2C({ clientId: "", clientSecret: "", issuer: "" })],
51
+ * })
52
+ * ```
53
+ *
54
+ * ---
55
+ *
56
+ * ### Resources
57
+ *
58
+ * - [Azure Active Directory B2C documentation](https://learn.microsoft.com/en-us/azure/active-directory-b2c)
59
+ *
60
+ * ---
61
+ *
62
+ * ### Notes
63
+ *
64
+ * By default, Auth.js assumes that the Azure AD B2C provider is
65
+ * based on the [OIDC](https://openid.net/specs/openid-connect-core-1_0.html) specification.
66
+ *
67
+ * :::tip
68
+ *
69
+ * The Azure AD B2C provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/azure-ad-b2c.ts).
70
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
71
+ *
72
+ * :::
73
+ *
74
+ * :::info **Disclaimer**
75
+ *
76
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
77
+ *
78
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
79
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
80
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
81
+ *
82
+ * :::
83
+ */
84
+ export default function AzureADB2C(options) {
85
+ return {
86
+ id: "azure-ad-b2c",
87
+ name: "Azure AD B2C",
88
+ type: "oidc",
89
+ profile(profile) {
90
+ return {
91
+ id: profile.sub,
92
+ name: profile.name ?? profile.preferred_username,
93
+ email: profile?.emails?.[0],
94
+ image: null,
95
+ };
96
+ },
97
+ style: { text: "#fff", bg: "#0072c6" },
98
+ options,
99
+ };
100
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#0072c6", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>Azure AD</b> integration.</span>
4
+ * <a href="https://learn.microsoft.com/en-us/azure/active-directory">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/azure-ad.svg" height="48" width="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/azure-ad
10
+ */
11
+ import MicrosoftEntraID, { MicrosoftEntraIDProfile } from "./microsoft-entra-id.js";
12
+ export type AzureADProfile = MicrosoftEntraIDProfile;
13
+ /**
14
+ * @deprecated
15
+ * Azure Active Directory has been renamed to [Microsoft Entra ID](/getting-started/providers/microsoft-entra-id).
16
+ * Import this provider from the `providers/microsoft-entra-id` submodule instead of `providers/azure-ad`.
17
+ */
18
+ export default function AzureAD(config: Parameters<typeof MicrosoftEntraID>[0]): ReturnType<typeof MicrosoftEntraID>;
19
+ //# sourceMappingURL=azure-ad.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azure-ad.d.ts","sourceRoot":"","sources":["../src/providers/azure-ad.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,gBAAgB,EAAE,EACvB,uBAAuB,EACxB,MAAM,yBAAyB,CAAA;AAEhC,MAAM,MAAM,cAAc,GAAG,uBAAuB,CAAA;AAEpD;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAC7B,MAAM,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAC7C,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAMrC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#0072c6", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>Azure AD</b> integration.</span>
4
+ * <a href="https://learn.microsoft.com/en-us/azure/active-directory">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/azure-ad.svg" height="48" width="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/azure-ad
10
+ */
11
+ import MicrosoftEntraID from "./microsoft-entra-id.js";
12
+ /**
13
+ * @deprecated
14
+ * Azure Active Directory has been renamed to [Microsoft Entra ID](/getting-started/providers/microsoft-entra-id).
15
+ * Import this provider from the `providers/microsoft-entra-id` submodule instead of `providers/azure-ad`.
16
+ */
17
+ export default function AzureAD(config) {
18
+ return {
19
+ ...MicrosoftEntraID(config),
20
+ id: "azure-ad",
21
+ name: "Azure Active Directory",
22
+ };
23
+ }
@@ -0,0 +1,128 @@
1
+ import { OAuthConfig, OAuthUserConfig } from "./index.js";
2
+ /** @see [Azure DevOps Services REST API 7.0 · Profiles · Get](https://learn.microsoft.com/en-us/rest/api/azure/devops/profile/profiles/get?view=azure-devops-rest-7.0&tabs=HTTP#examples) */
3
+ export interface AzureDevOpsProfile extends Record<string, any> {
4
+ id: string;
5
+ displayName: string;
6
+ emailAddress: string;
7
+ coreAttributes: {
8
+ Avatar: {
9
+ value: {
10
+ value: string;
11
+ };
12
+ };
13
+ };
14
+ }
15
+ /**
16
+ *
17
+ * @deprecated
18
+ * While still available, Microsoft is [no longer supporting](https://learn.microsoft.com/en-us/azure/devops/integrate/get-started/authentication/oauth?view=azure-devops#available-oauth-models) Azure DevOps OAuth and recommends using [Microsoft Entra ID](/getting-started/providers/microsoft-entra-id) instead.
19
+ *
20
+ * ## Documentation
21
+ *
22
+ * [Microsoft Docs](https://docs.microsoft.com/en-us) · [Azure DevOps](https://docs.microsoft.com/en-us/azure/devops/) · [Authorize access to REST APIs with OAuth 2.0](https://docs.microsoft.com/en-us/azure/devops/integrate/get-started/authentication/oauth?view=azure-devops])
23
+ *
24
+ * ## Configuration
25
+ *
26
+ * ### Register application
27
+ *
28
+ * :::tip
29
+ * [`https://app.vsaex.visualstudio.com/app/register`](https://app.vsaex.visualstudio.com/app/register)
30
+ * :::
31
+ *
32
+ * Provide the required details:
33
+ *
34
+ * - Company name
35
+ * - Application name
36
+ * - Application website
37
+ * - Authorization callback URL
38
+ * - `https://example.com/api/auth/callback/azure-devops` for production
39
+ * - `https://localhost/api/auth/callback/azure-devops` for development
40
+ * - Authorized scopes
41
+ * - Required minimum is `User profile (read)`
42
+ *
43
+ * Click ‘Create Application’
44
+ *
45
+ * :::warning
46
+ * You are required to use HTTPS even for the localhost
47
+ * :::
48
+ *
49
+ * :::warning
50
+ * You will have to delete and create a new application to change the scopes later
51
+ * :::
52
+ *
53
+ * The following data is relevant for the next step:
54
+ *
55
+ * - App ID
56
+ * - Client Secret (after clicking the ‘Show’ button, ignore App Secret entry above it)
57
+ * - Authorized Scopes
58
+ *
59
+ * ### Set up the environment variables
60
+ *
61
+ * In `.env.local` create the following entries:
62
+ *
63
+ * ```
64
+ * AZURE_DEVOPS_APP_ID=<copy App ID value here>
65
+ * AZURE_DEVOPS_CLIENT_SECRET=<copy generated client secret value here>
66
+ * AZURE_DEVOPS_SCOPE=<copy space separated Authorized Scopes list here>
67
+ * ```
68
+ *
69
+ * ## Example
70
+ *
71
+ * ```ts
72
+ * import AzureDevOps from "@auth/core/providers/azure-devops"
73
+ * ...
74
+ * providers: [
75
+ * AzureDevOps({
76
+ * clientId: process.env.AZURE_DEVOPS_APP_ID,
77
+ * clientSecret: process.env.AZURE_DEVOPS_CLIENT_SECRET,
78
+ * scope: process.env.AZURE_DEVOPS_SCOPE,
79
+ * }),
80
+ * ]
81
+ * ...
82
+ * ```
83
+ *
84
+ * ### Refresh token rotation
85
+ *
86
+ * Use the [main guide](/guides/basics/refresh-token-rotation) as your starting point with the following considerations:
87
+ *
88
+ * ```ts
89
+ * async jwt({ token, user, account }) {
90
+ * ...
91
+ * // The token has an absolute expiration time
92
+ * const accessTokenExpires = account.expires_at * 1000
93
+ * ...
94
+ * }
95
+ *
96
+ * async function refreshAccessToken(token) {
97
+ * ...
98
+ * const response = await fetch(
99
+ * "https://app.vssps.visualstudio.com/oauth2/token",
100
+ * {
101
+ * headers: { "Content-Type": "application/x-www-form-urlencoded" },
102
+ * method: "POST",
103
+ * body: new URLSearchParams({
104
+ * client_assertion_type:
105
+ * "urn:ietf:params:oauth:client-assertion-type:jwt-bearer",
106
+ * client_assertion: process.env.AZURE_DEVOPS_CLIENT_SECRET,
107
+ * grant_type: "refresh_token",
108
+ * assertion: token.refreshToken,
109
+ * redirect_uri:
110
+ * process.env.NEXTAUTH_URL + "/api/auth/callback/azure-devops",
111
+ * }),
112
+ * }
113
+ * )
114
+ * ...
115
+ * // The refreshed token comes with a relative expiration time
116
+ * const accessTokenExpires = Date.now() + newToken.expires_in * 1000
117
+ * ...
118
+ * }
119
+ * ```
120
+ */
121
+ export default function AzureDevOpsProvider<P extends AzureDevOpsProfile>(options: OAuthUserConfig<P> & {
122
+ /**
123
+ * https://docs.microsoft.com/en-us/azure/devops/integrate/get-started/authentication/oauth?view=azure-devops#scopes
124
+ * @default vso.profile
125
+ */
126
+ scope?: string;
127
+ }): OAuthConfig<P>;
128
+ //# sourceMappingURL=azure-devops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azure-devops.d.ts","sourceRoot":"","sources":["../src/providers/azure-devops.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEzD,6LAA6L;AAC7L,MAAM,WAAW,kBAAmB,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC7D,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE;QAAE,MAAM,EAAE;YAAE,KAAK,EAAE;gBAAE,KAAK,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,CAAA;KAAE,CAAA;CACzD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyGG;AACH,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,CAAC,SAAS,kBAAkB,EACtE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG;IAC5B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,GACA,WAAW,CAAC,CAAC,CAAC,CA2DhB"}
@@ -0,0 +1,158 @@
1
+ /**
2
+ *
3
+ * @deprecated
4
+ * While still available, Microsoft is [no longer supporting](https://learn.microsoft.com/en-us/azure/devops/integrate/get-started/authentication/oauth?view=azure-devops#available-oauth-models) Azure DevOps OAuth and recommends using [Microsoft Entra ID](/getting-started/providers/microsoft-entra-id) instead.
5
+ *
6
+ * ## Documentation
7
+ *
8
+ * [Microsoft Docs](https://docs.microsoft.com/en-us) · [Azure DevOps](https://docs.microsoft.com/en-us/azure/devops/) · [Authorize access to REST APIs with OAuth 2.0](https://docs.microsoft.com/en-us/azure/devops/integrate/get-started/authentication/oauth?view=azure-devops])
9
+ *
10
+ * ## Configuration
11
+ *
12
+ * ### Register application
13
+ *
14
+ * :::tip
15
+ * [`https://app.vsaex.visualstudio.com/app/register`](https://app.vsaex.visualstudio.com/app/register)
16
+ * :::
17
+ *
18
+ * Provide the required details:
19
+ *
20
+ * - Company name
21
+ * - Application name
22
+ * - Application website
23
+ * - Authorization callback URL
24
+ * - `https://example.com/api/auth/callback/azure-devops` for production
25
+ * - `https://localhost/api/auth/callback/azure-devops` for development
26
+ * - Authorized scopes
27
+ * - Required minimum is `User profile (read)`
28
+ *
29
+ * Click ‘Create Application’
30
+ *
31
+ * :::warning
32
+ * You are required to use HTTPS even for the localhost
33
+ * :::
34
+ *
35
+ * :::warning
36
+ * You will have to delete and create a new application to change the scopes later
37
+ * :::
38
+ *
39
+ * The following data is relevant for the next step:
40
+ *
41
+ * - App ID
42
+ * - Client Secret (after clicking the ‘Show’ button, ignore App Secret entry above it)
43
+ * - Authorized Scopes
44
+ *
45
+ * ### Set up the environment variables
46
+ *
47
+ * In `.env.local` create the following entries:
48
+ *
49
+ * ```
50
+ * AZURE_DEVOPS_APP_ID=<copy App ID value here>
51
+ * AZURE_DEVOPS_CLIENT_SECRET=<copy generated client secret value here>
52
+ * AZURE_DEVOPS_SCOPE=<copy space separated Authorized Scopes list here>
53
+ * ```
54
+ *
55
+ * ## Example
56
+ *
57
+ * ```ts
58
+ * import AzureDevOps from "@auth/core/providers/azure-devops"
59
+ * ...
60
+ * providers: [
61
+ * AzureDevOps({
62
+ * clientId: process.env.AZURE_DEVOPS_APP_ID,
63
+ * clientSecret: process.env.AZURE_DEVOPS_CLIENT_SECRET,
64
+ * scope: process.env.AZURE_DEVOPS_SCOPE,
65
+ * }),
66
+ * ]
67
+ * ...
68
+ * ```
69
+ *
70
+ * ### Refresh token rotation
71
+ *
72
+ * Use the [main guide](/guides/basics/refresh-token-rotation) as your starting point with the following considerations:
73
+ *
74
+ * ```ts
75
+ * async jwt({ token, user, account }) {
76
+ * ...
77
+ * // The token has an absolute expiration time
78
+ * const accessTokenExpires = account.expires_at * 1000
79
+ * ...
80
+ * }
81
+ *
82
+ * async function refreshAccessToken(token) {
83
+ * ...
84
+ * const response = await fetch(
85
+ * "https://app.vssps.visualstudio.com/oauth2/token",
86
+ * {
87
+ * headers: { "Content-Type": "application/x-www-form-urlencoded" },
88
+ * method: "POST",
89
+ * body: new URLSearchParams({
90
+ * client_assertion_type:
91
+ * "urn:ietf:params:oauth:client-assertion-type:jwt-bearer",
92
+ * client_assertion: process.env.AZURE_DEVOPS_CLIENT_SECRET,
93
+ * grant_type: "refresh_token",
94
+ * assertion: token.refreshToken,
95
+ * redirect_uri:
96
+ * process.env.NEXTAUTH_URL + "/api/auth/callback/azure-devops",
97
+ * }),
98
+ * }
99
+ * )
100
+ * ...
101
+ * // The refreshed token comes with a relative expiration time
102
+ * const accessTokenExpires = Date.now() + newToken.expires_in * 1000
103
+ * ...
104
+ * }
105
+ * ```
106
+ */
107
+ export default function AzureDevOpsProvider(options) {
108
+ const scope = options.scope ?? "vso.profile";
109
+ const tokenEndpointUrl = "https://app.vssps.visualstudio.com/oauth2/authorize";
110
+ const userInfoEndpointUrl = "https://app.vssps.visualstudio.com/_apis/profile/profiles/me?details=true&coreAttributes=Avatar&api-version=6.0";
111
+ return {
112
+ id: "azure-devops",
113
+ name: "Azure DevOps",
114
+ type: "oauth",
115
+ authorization: {
116
+ url: "https://app.vssps.visualstudio.com/oauth2/authorize",
117
+ params: { response_type: "Assertion", scope },
118
+ },
119
+ token: {
120
+ url: tokenEndpointUrl,
121
+ async request(context) {
122
+ const response = await fetch(tokenEndpointUrl, {
123
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
124
+ method: "POST",
125
+ body: new URLSearchParams({
126
+ client_assertion_type: "urn:ietf:params:oauth:client-assertion-type:jwt-bearer",
127
+ client_assertion: context.provider.clientSecret,
128
+ grant_type: "urn:ietf:params:oauth:grant-type:jwt-bearer",
129
+ assertion: context.params.code,
130
+ redirect_uri: context.provider.callbackUrl,
131
+ }),
132
+ });
133
+ return { tokens: await response.json() };
134
+ },
135
+ },
136
+ userinfo: {
137
+ url: userInfoEndpointUrl,
138
+ async request(context) {
139
+ const accessToken = context.tokens.access_token;
140
+ const response = await fetch(userInfoEndpointUrl, {
141
+ headers: {
142
+ Authorization: `Bearer ${accessToken}`,
143
+ },
144
+ });
145
+ return response.json();
146
+ },
147
+ },
148
+ profile(profile) {
149
+ return {
150
+ id: profile.id,
151
+ name: profile.displayName,
152
+ email: profile.emailAddress,
153
+ image: `data:image/jpeg;base64,${profile.coreAttributes.Avatar.value.value}`,
154
+ };
155
+ },
156
+ options,
157
+ };
158
+ }