@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,83 @@
1
+ /**
2
+ * Add Mattermost login to your page.
3
+ *
4
+ * ### Setup
5
+ *
6
+ * #### Callback URL
7
+ * ```
8
+ * https://example.com/api/auth/callback/mattermost
9
+ * ```
10
+ *
11
+ * #### Configuration
12
+ *```ts
13
+ * import { Auth } from "@auth/core"
14
+ * import Mattermost from "@auth/core/providers/mattermost"
15
+ *
16
+ * const request = new Request(origin)
17
+ * const response = await Auth(request, {
18
+ * providers: [
19
+ * Mattermost({
20
+ * clientId: MATTERMOST_CLIENT_ID,
21
+ * clientSecret: MATTERMOST_CLIENT_SECRET,
22
+ * issuer: MATTERMOST_ISSUER, // The base url of your Mattermost instance. e.g `https://my-cool-server.cloud.mattermost.com`
23
+ * }),
24
+ * ],
25
+ * })
26
+ * ```
27
+ *
28
+ * ### Resources
29
+ *
30
+ * - [Mattermost OAuth documentation](https://example.com)
31
+ *
32
+ * ### Notes
33
+ *
34
+ * By default, Auth.js assumes that the Mattermost provider is
35
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
36
+ *
37
+ * To create your Mattermost OAuth2 app visit `http://<your Mattermost instance url>/<your team>/integrations/oauth2-apps`
38
+ *
39
+ * :::warning
40
+ *
41
+ * The Mattermost provider requires the `issuer` option to be set. This is the base url of your Mattermost instance. e.g https://my-cool-server.cloud.mattermost.com
42
+ *
43
+ * :::
44
+ *
45
+ * :::tip
46
+ *
47
+ * The Mattermost provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/mattermost.ts).
48
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
49
+ *
50
+ * :::
51
+ *
52
+ * :::info **Disclaimer**
53
+ *
54
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
55
+ *
56
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
57
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
58
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
59
+ *
60
+ * :::
61
+ */
62
+ export default function Mattermost(config) {
63
+ const { issuer, ...rest } = config;
64
+ return {
65
+ id: "mattermost",
66
+ name: "Mattermost",
67
+ type: "oauth",
68
+ client: { token_endpoint_auth_method: "client_secret_post" },
69
+ token: `${issuer}/oauth/access_token`,
70
+ authorization: `${issuer}/oauth/authorize`,
71
+ userinfo: `${issuer}/api/v4/users/me`,
72
+ profile(profile) {
73
+ return {
74
+ id: profile.id,
75
+ name: profile.username ?? `${profile.first_name} ${profile.last_name}`,
76
+ email: profile.email,
77
+ image: null,
78
+ };
79
+ },
80
+ style: { bg: "#000", text: "#fff" },
81
+ options: rest,
82
+ };
83
+ }
@@ -0,0 +1,68 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>Medium</b> integration.</span>
4
+ * <a href="https://medium.com">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/medium.svg" height="48" width="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/medium
10
+ */
11
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js";
12
+ /**
13
+ * Add Medium login to your page.
14
+ *
15
+ * ### Setup
16
+ *
17
+ * #### Callback URL
18
+ * ```
19
+ * https://example.com/api/auth/callback/medium
20
+ * ```
21
+ *
22
+ * #### Configuration
23
+ *```ts
24
+ * import { Auth } from "@auth/core"
25
+ * import Medium from "@auth/core/providers/medium"
26
+ *
27
+ * const request = new Request(origin)
28
+ * const response = await Auth(request, {
29
+ * providers: [
30
+ * Medium({ clientId: MEDIUM_CLIENT_ID, clientSecret: MEDIUM_CLIENT_SECRET }),
31
+ * ],
32
+ * })
33
+ * ```
34
+ *
35
+ * ### Resources
36
+ *
37
+ * - [Medium OAuth documentation](https://example.com)
38
+ *
39
+ * ### Notes
40
+ *
41
+ * By default, Auth.js assumes that the Medium provider is
42
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
43
+ *
44
+ * :::warning
45
+ *
46
+ * Email address is not returned by the Medium API.
47
+ *
48
+ * :::
49
+ *
50
+ * :::tip
51
+ *
52
+ * The Medium provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/medium.ts).
53
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
54
+ *
55
+ * :::
56
+ *
57
+ * :::info **Disclaimer**
58
+ *
59
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
60
+ *
61
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
62
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
63
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
64
+ *
65
+ * :::
66
+ */
67
+ export default function Medium(config: OAuthUserConfig<Record<string, any>>): OAuthConfig<Record<string, any>>;
68
+ //# sourceMappingURL=medium.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"medium.d.ts","sourceRoot":"","sources":["../src/providers/medium.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAC5B,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAC3C,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAkBlC"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>Medium</b> integration.</span>
4
+ * <a href="https://medium.com">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/medium.svg" height="48" width="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/medium
10
+ */
11
+ /**
12
+ * Add Medium login to your page.
13
+ *
14
+ * ### Setup
15
+ *
16
+ * #### Callback URL
17
+ * ```
18
+ * https://example.com/api/auth/callback/medium
19
+ * ```
20
+ *
21
+ * #### Configuration
22
+ *```ts
23
+ * import { Auth } from "@auth/core"
24
+ * import Medium from "@auth/core/providers/medium"
25
+ *
26
+ * const request = new Request(origin)
27
+ * const response = await Auth(request, {
28
+ * providers: [
29
+ * Medium({ clientId: MEDIUM_CLIENT_ID, clientSecret: MEDIUM_CLIENT_SECRET }),
30
+ * ],
31
+ * })
32
+ * ```
33
+ *
34
+ * ### Resources
35
+ *
36
+ * - [Medium OAuth documentation](https://example.com)
37
+ *
38
+ * ### Notes
39
+ *
40
+ * By default, Auth.js assumes that the Medium provider is
41
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
42
+ *
43
+ * :::warning
44
+ *
45
+ * Email address is not returned by the Medium API.
46
+ *
47
+ * :::
48
+ *
49
+ * :::tip
50
+ *
51
+ * The Medium provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/medium.ts).
52
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
53
+ *
54
+ * :::
55
+ *
56
+ * :::info **Disclaimer**
57
+ *
58
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
59
+ *
60
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
61
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
62
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
63
+ *
64
+ * :::
65
+ */
66
+ export default function Medium(config) {
67
+ return {
68
+ id: "medium",
69
+ name: "Medium",
70
+ type: "oauth",
71
+ authorization: "https://medium.com/m/oauth/authorize?scope=basicProfile",
72
+ token: "https://api.medium.com/v1/tokens",
73
+ userinfo: "https://api.medium.com/v1/me",
74
+ profile(profile) {
75
+ return {
76
+ id: profile.data.id,
77
+ name: profile.data.name,
78
+ email: null,
79
+ image: profile.data.imageUrl,
80
+ };
81
+ },
82
+ options: config,
83
+ };
84
+ }
@@ -0,0 +1,428 @@
1
+ import type { OIDCConfig, OIDCUserConfig } from "./index.js";
2
+ /**
3
+ * @see [Microsoft Identity Platform - ID token claims reference](https://learn.microsoft.com/en-us/entra/identity-platform/id-token-claims-reference)
4
+ * @see [Microsoft Identity Platform - Optional claims reference](https://learn.microsoft.com/en-us/entra/identity-platform/optional-claims-reference)
5
+ */
6
+ export interface MicrosoftEntraIDProfile {
7
+ /**
8
+ * Identifies the intended recipient of the token. In `id_tokens`, the
9
+ * audience is your app's Application ID, assigned to your app in the Azure
10
+ * portal. This value should be validated. The token should be rejected if it
11
+ * fails to match your app's Application ID.
12
+ */
13
+ aud: string;
14
+ /**
15
+ * Identifies the issuer, or "authorization server" that constructs and
16
+ * returns the token. It also identifies the tenant for which the user was
17
+ * authenticated. If the token was issued by the v2.0 endpoint, the URI ends
18
+ * in `/v2.0`. The GUID that indicates that the user is a consumer user from
19
+ * a Microsoft account is `9188040d-6c67-4c5b-b112-36a304b66dad`. Your app
20
+ * should use the GUID portion of the claim to restrict the set of tenants
21
+ * that can sign in to the app, if applicable. */
22
+ iss: string;
23
+ /** Indicates when the authentication for the token occurred. */
24
+ iat: Date;
25
+ /**
26
+ * Records the identity provider that authenticated the subject of the token.
27
+ * This value is identical to the value of the issuer claim unless the user
28
+ * account isn't in the same tenant as the issuer - guests, for instance. If
29
+ * the claim isn't present, it means that the value of `iss` can be used
30
+ * instead. For personal accounts being used in an organizational context
31
+ * (for instance, a personal account invited to a tenant), the `idp` claim
32
+ * may be 'live.com' or an STS URI containing the Microsoft account tenant
33
+ * `9188040d-6c67-4c5b-b112-36a304b66dad`.
34
+ */
35
+ idp: string;
36
+ /**
37
+ * Identifies the time before which the JWT can't be accepted for processing.
38
+ */
39
+ nbf: Date;
40
+ /**
41
+ * Identifies the expiration time on or after which the JWT can't be accepted
42
+ * for processing. In certain circumstances, a resource may reject the token
43
+ * before this time. For example, if a change in authentication is required
44
+ * or a token revocation has been detected.
45
+ */
46
+ exp: Date;
47
+ /**
48
+ * The code hash is included in ID tokens only when the ID token is issued
49
+ * with an OAuth 2.0 authorization code. It can be used to validate the
50
+ * authenticity of an authorization code. To understand how to do this
51
+ * validation, see the
52
+ * [OpenID Connect specification](https://openid.net/specs/openid-connect-core-1_0.html#HybridIDToken).
53
+ * This claim isn't returned on ID tokens from the /token endpoint.
54
+ */
55
+ c_hash: string;
56
+ /**
57
+ * The access token hash is included in ID tokens only when the ID token is
58
+ * issued from the `/authorize` endpoint with an OAuth 2.0 access token. It
59
+ * can be used to validate the authenticity of an access token. To understand
60
+ * how to do this validation, see the
61
+ * [OpenID Connect specification](https://openid.net/specs/openid-connect-core-1_0.html#HybridIDToken).
62
+ * This claim isn't returned on ID tokens from the `/token` endpoint.
63
+ */
64
+ at_hash: string;
65
+ /**
66
+ * An internal claim that's used to record data for token reuse. Should be
67
+ * ignored.
68
+ */
69
+ aio: string;
70
+ /**
71
+ * The primary username that represents the user. It could be an email
72
+ * address, phone number, or a generic username without a specified format.
73
+ * Its value is mutable and might change over time. Since it's mutable, this
74
+ * value can't be used to make authorization decisions. It can be used for
75
+ * username hints and in human-readable UI as a username. The `profile` scope
76
+ * is required to receive this claim. Present only in v2.0 tokens.
77
+ */
78
+ preferred_username: string;
79
+ /**
80
+ * Present by default for guest accounts that have an email address. Your app
81
+ * can request the email claim for managed users (from the same tenant as the
82
+ * resource) using the `email`
83
+ * [optional claim](https://learn.microsoft.com/en-us/entra/identity-platform/optional-claims).
84
+ * This value isn't guaranteed to be correct and is mutable over time. Never
85
+ * use it for authorization or to save data for a user. If you require an
86
+ * addressable email address in your app, request this data from the user
87
+ * directly by using this claim as a suggestion or prefill in your UX. On the
88
+ * v2.0 endpoint, your app can also request the `email` OpenID Connect
89
+ * scope - you don't need to request both the optional claim and the scope to
90
+ * get the claim.
91
+ */
92
+ email: string;
93
+ /**
94
+ * The `name` claim provides a human-readable value that identifies the
95
+ * subject of the token. The value isn't guaranteed to be unique, it can be
96
+ * changed, and should be used only for display purposes. The `profile` scope
97
+ * is required to receive this claim.
98
+ */
99
+ name: string;
100
+ /**
101
+ * The nonce matches the parameter included in the original authorize request
102
+ * to the IDP. If it doesn't match, your application should reject the token.
103
+ */
104
+ nonce: string;
105
+ /**
106
+ * The immutable identifier for an object, in this case, a user account. This
107
+ * ID uniquely identifies the user across applications - two different
108
+ * applications signing in the same user receives the same value in the `oid`
109
+ * claim. Microsoft Graph returns this ID as the `id` property for a user
110
+ * account. Because the `oid` allows multiple apps to correlate users, the
111
+ * `profile` scope is required to receive this claim. If a single user exists
112
+ * in multiple tenants, the user contains a different object ID in each
113
+ * tenant - they're considered different accounts, even though the user logs
114
+ * into each account with the same credentials. The `oid` claim is a GUID and
115
+ * can't be reused.
116
+ */
117
+ oid: string;
118
+ /** The set of roles that were assigned to the user who is logging in. */
119
+ roles: string[];
120
+ /** An internal claim used to revalidate tokens. Should be ignored. */
121
+ rh: string;
122
+ /**
123
+ * The subject of the information in the token. For example, the user of an
124
+ * app. This value is immutable and can't be reassigned or reused. The
125
+ * subject is a pairwise identifier and is unique to an application ID. If a
126
+ * single user signs into two different apps using two different client IDs,
127
+ * those apps receive two different values for the subject claim. You may or
128
+ * may not want two values depending on your architecture and privacy
129
+ * requirements.
130
+ */
131
+ sub: string;
132
+ /** Represents the tenant that the user is signing in to. For work and school
133
+ * accounts, the GUID is the immutable tenant ID of the organization that the
134
+ * user is signing in to. For sign-ins to the personal Microsoft account
135
+ * tenant (services like Xbox, Teams for Life, or Outlook), the value is
136
+ * `9188040d-6c67-4c5b-b112-36a304b66dad`.
137
+ */
138
+ tid: string;
139
+ /**
140
+ * Represents an unique identifier for a session and will be generated when a
141
+ * new session is established.
142
+ */
143
+ sid: string;
144
+ /**
145
+ * Token identifier claim, equivalent to jti in the JWT specification.
146
+ * Unique, per-token identifier that is case-sensitive.
147
+ */
148
+ uti: string;
149
+ /** Indicates the version of the ID token. */
150
+ ver: "2.0";
151
+ /**
152
+ * If present, always true, denoting the user is in at least one group.
153
+ * Indicates that the client should use the Microsoft Graph API to determine
154
+ * the user's groups
155
+ * (`https://graph.microsoft.com/v1.0/users/{userID}/getMemberObjects`).
156
+ */
157
+ hasgroups: boolean;
158
+ /**
159
+ * Users account status in tenant. If the user is a member of the tenant, the
160
+ * value is `0`. If they're a guest, the value is `1`.
161
+ */
162
+ acct: 0 | 1;
163
+ /**
164
+ * Auth Context IDs. Indicates the Auth Context IDs of the operations that
165
+ * the bearer is eligible to perform. Auth Context IDs can be used to trigger
166
+ * a demand for step-up authentication from within your application and
167
+ * services. Often used along with the `xms_cc` claim.
168
+ */
169
+ acrs: string;
170
+ /** Time when the user last authenticated. */
171
+ auth_time: Date;
172
+ /**
173
+ * User's country/region. This claim is returned if it's present and the
174
+ * value of the field is a standard two-letter country/region code, such as
175
+ * FR, JP, SZ, and so on.
176
+ */
177
+ ctry: string;
178
+ /**
179
+ * IP address. Adds the original address of the requesting client
180
+ * (when inside a VNET).
181
+ */
182
+ fwd: string;
183
+ /**
184
+ * Optional formatting for group claims. The `groups` claim is used with the
185
+ * GroupMembershipClaims setting in the
186
+ * [application manifest](https://learn.microsoft.com/en-us/entra/identity-platform/reference-app-manifest),
187
+ * which must be set as well.
188
+ */
189
+ groups: string;
190
+ /**
191
+ * Login hint. An opaque, reliable login hint claim that's base 64 encoded.
192
+ * Don't modify this value. This claim is the best value to use for the
193
+ * `login_hint` OAuth parameter in all flows to get SSO. It can be passed
194
+ * between applications to help them silently SSO as well - application A can
195
+ * sign in a user, read the `login_hint` claim, and then send the claim and
196
+ * the current tenant context to application B in the query string or
197
+ * fragment when the user selects on a link that takes them to application B.
198
+ * To avoid race conditions and reliability issues, the `login_hint` claim
199
+ * doesn't include the current tenant for the user, and defaults to the
200
+ * user's home tenant when used. In a guest scenario where the user is from
201
+ * another tenant, a tenant identifier must be provided in the sign-in
202
+ * request. and pass the same to apps you partner with. This claim is
203
+ * intended for use with your SDK's existing `login_hint` functionality,
204
+ * however that it exposed.
205
+ */
206
+ login_hint: string;
207
+ /**
208
+ * Resource tenant's country/region. Same as `ctry` except set at a tenant
209
+ * level by an admin. Must also be a standard two-letter value.
210
+ */
211
+ tenant_ctry: string;
212
+ /**
213
+ * Region of the resource tenant
214
+ */
215
+ tenant_region_scope: string;
216
+ /**
217
+ * UserPrincipalName. An identifier for the user that can be used with the
218
+ * `username_hint` parameter. Not a durable identifier for the user and
219
+ * shouldn't be used for authorization or to uniquely identity user
220
+ * information (for example, as a database key). Instead, use the user object
221
+ * ID (`oid`) as a database key. For more information, see
222
+ * [Secure applications and APIs by validating claims](https://learn.microsoft.com/en-us/entra/identity-platform/claims-validation).
223
+ * Users signing in with an
224
+ * [alternate login ID](https://learn.microsoft.com/en-us/entra/identity/authentication/howto-authentication-use-email-signin)
225
+ * shouldn't be shown their User Principal Name (UPN). Instead, use the
226
+ * following ID token claims for displaying sign-in state to the user:
227
+ * `preferred_username` or `unique_name` for v1 tokens and
228
+ * `preferred_username` for v2 tokens. Although this claim is automatically
229
+ * included, you can specify it as an optional claim to attach other
230
+ * properties to modify its behavior in the guest user case. You should use
231
+ * the `login_hint` claim for `login_hint` use - human-readable identifiers
232
+ * like UPN are unreliable.
233
+ */
234
+ upn: string;
235
+ /** Sourced from the user's PrimaryAuthoritativeEmail */
236
+ verified_primary_email: string[];
237
+ /** Sourced from the user's SecondaryAuthoritativeEmail */
238
+ verified_secondary_email: string[];
239
+ /** VNET specifier information. */
240
+ vnet: string;
241
+ /**
242
+ * Client Capabilities. Indicates whether the client application that
243
+ * acquired the token is capable of handling claims challenges. It's often
244
+ * used along with claim `acrs`. This claim is commonly used in Conditional
245
+ * Access and Continuous Access Evaluation scenarios. The resource server or
246
+ * service application that the token is issued for controls the presence of
247
+ * this claim in a token. A value of `cp1` in the access token is the
248
+ * authoritative way to identify that a client application is capable of
249
+ * handling a claims challenge. For more information, see
250
+ * [Claims challenges, claims requests and client capabilities](https://learn.microsoft.com/en-us/entra/identity-platform/claims-challenge?tabs=dotnet).
251
+ */
252
+ xms_cc: string;
253
+ /**
254
+ * Boolean value indicating whether the user's email domain owner has been
255
+ * verified. An email is considered to be domain verified if it belongs to
256
+ * the tenant where the user account resides and the tenant admin has done
257
+ * verification of the domain. Also, the email must be from a Microsoft
258
+ * account (MSA), a Google account, or used for authentication using the
259
+ * one-time passcode (OTP) flow. Facebook and SAML/WS-Fed accounts do not
260
+ * have verified domains. For this claim to be returned in the token, the
261
+ * presence of the `email` claim is required.
262
+ */
263
+ xms_edov: boolean;
264
+ /**
265
+ * Preferred data location. For Multi-Geo tenants, the preferred data
266
+ * location is the three-letter code showing the geographic region the user
267
+ * is in. For more information, see the
268
+ * [Microsoft Entra Connect documentation about preferred data location](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/how-to-connect-sync-feature-preferreddatalocation).
269
+ */
270
+ xms_pdl: string;
271
+ /**
272
+ * User preferred language. The user's preferred language, if set. Sourced
273
+ * from their home tenant, in guest access scenarios. Formatted LL-CC
274
+ * ("en-us").
275
+ */
276
+ xms_pl: string;
277
+ /**
278
+ * Tenant preferred language. The resource tenant's preferred language, if
279
+ * set. Formatted LL ("en").
280
+ */
281
+ xms_tpl: string;
282
+ /**
283
+ * Zero-touch Deployment ID. The device identity used for `Windows AutoPilot`.
284
+ */
285
+ ztdid: string;
286
+ /** IP Address. The IP address the client logged in from. */
287
+ ipaddr: string;
288
+ /** On-premises Security Identifier */
289
+ onprem_sid: string;
290
+ /**
291
+ * Password Expiration Time. The number of seconds after the time in the
292
+ * `iat` claim at which the password expires. This claim is only included
293
+ * when the password is expiring soon (as defined by "notification days" in
294
+ * the password policy).
295
+ */
296
+ pwd_exp: number;
297
+ /**
298
+ * Change Password URL. A URL that the user can visit to change their
299
+ * password. This claim is only included when the password is expiring soon
300
+ * (as defined by "notification days" in the password policy).
301
+ */
302
+ pwd_url: string;
303
+ /**
304
+ * Inside Corporate Network. Signals if the client is logging in from the
305
+ * corporate network. If they're not, the claim isn't included. Based off of
306
+ * the
307
+ * [trusted IPs](https://learn.microsoft.com/en-us/entra/identity/authentication/howto-mfa-mfasettings#trusted-ips)
308
+ * settings in MFA.
309
+ */
310
+ in_corp: string;
311
+ /**
312
+ * Last Name. Provides the last name, surname, or family name of the user as
313
+ * defined in the user object. For example, `"family_name":"Miller"`.
314
+ * Supported in MSA and Microsoft Entra ID. Requires the `profile` scope.
315
+ */
316
+ family_name: string;
317
+ /**
318
+ * First name. Provides the first or "given" name of the user, as set on the
319
+ * user object. For example, `"given_name": "Frank"`. Supported in MSA and
320
+ * Microsoft Entra ID. Requires the `profile` scope.
321
+ */
322
+ given_name: string;
323
+ }
324
+ /**
325
+ * ### Setup
326
+ *
327
+ * #### Callback URL
328
+ *
329
+ * ```
330
+ * https://example.com/api/auth/callback/microsoft-entra-id
331
+ * ```
332
+ *
333
+ * #### Environment Variables
334
+ *
335
+ * ```env
336
+ * AUTH_MICROSOFT_ENTRA_ID_ID="<Application (client) ID>"
337
+ * AUTH_MICROSOFT_ENTRA_ID_SECRET="<Client secret value>"
338
+ * AUTH_MICROSOFT_ENTRA_ID_ISSUER="https://login.microsoftonline.com/<Directory (tenant) ID>/v2.0/"
339
+ * ```
340
+ *
341
+ * #### Configuration
342
+ *
343
+ * When the `issuer` parameter is omitted it will default to
344
+ * `"https://login.microsoftonline.com/common/v2.0/"`.
345
+ * This allows any Microsoft account (Personal, School or Work) to log in.
346
+ *
347
+ * ```typescript
348
+ * import MicrosoftEntraID from "@auth/core/providers/microsoft-entra-id"
349
+ * ...
350
+ * providers: [
351
+ * MicrosoftEntraID({
352
+ * clientId: process.env.AUTH_MICROSOFT_ENTRA_ID_ID,
353
+ * clientSecret: process.env.AUTH_MICROSOFT_ENTRA_ID_SECRET,
354
+ * }),
355
+ * ]
356
+ * ...
357
+ * ```
358
+ *
359
+ * To only allow your organization's users to log in you will need to configure
360
+ * the `issuer` parameter with your Directory (tenant) ID.
361
+ *
362
+ * ```env
363
+ * AUTH_MICROSOFT_ENTRA_ID_ISSUER="https://login.microsoftonline.com/<Directory (tenant) ID>/v2.0/"
364
+ * ```
365
+ *
366
+ * ```typescript
367
+ * import MicrosoftEntraID from "@auth/core/providers/microsoft-entra-id"
368
+ * ...
369
+ * providers: [
370
+ * MicrosoftEntraID({
371
+ * clientId: process.env.AUTH_MICROSOFT_ENTRA_ID_ID,
372
+ * clientSecret: process.env.AUTH_MICROSOFT_ENTRA_ID_SECRET,
373
+ * issuer: process.env.AUTH_MICROSOFT_ENTRA_ID_ISSUER,
374
+ * }),
375
+ * ]
376
+ * ...
377
+ * ```
378
+ *
379
+ * ### Resources
380
+ *
381
+ * - [Microsoft Entra OAuth documentation](https://learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-auth-code-flow)
382
+ * - [Microsoft Entra OAuth apps](https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-register-app)
383
+ *
384
+ * ### Notes
385
+ *
386
+ * Microsoft Entra ID returns the profile picture in an ArrayBuffer, instead of
387
+ * just a URL to the image, so our provider converts it to a base64 encoded
388
+ * image string and returns that instead. See:
389
+ * https://learn.microsoft.com/en-us/graph/api/profilephoto-get?view=graph-rest-1.0&tabs=http#examples.
390
+ * The default image size is 48x48 to avoid
391
+ * [running out of space](https://next-auth.js.org/faq#json-web-tokens)
392
+ * in case the session is saved as a JWT.
393
+ *
394
+ * By default, Auth.js assumes that the Microsoft Entra ID provider is based on
395
+ * the [Open ID Connect](https://openid.net/specs/openid-connect-core-1_0.html)
396
+ * specification.
397
+ *
398
+ * :::tip
399
+ *
400
+ * The Microsoft Entra ID provider comes with a
401
+ * [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/microsoft-entra-id.ts).
402
+ * To override the defaults for your use case, check out
403
+ * [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
404
+ *
405
+ * :::
406
+ *
407
+ * :::info **Disclaimer**
408
+ *
409
+ * If you think you found a bug in the default configuration, you can
410
+ * [open an issue](https://authjs.dev/new/provider-issue).
411
+ *
412
+ * Auth.js strictly adheres to the specification and it cannot take
413
+ * responsibility for any deviation from the spec by the provider. You can open
414
+ * an issue, but if the problem is non-compliance with the spec, we might not
415
+ * pursue a resolution. You can ask for more help in
416
+ * [Discussions](https://authjs.dev/new/github-discussions).
417
+ *
418
+ * :::
419
+ */
420
+ export default function MicrosoftEntraID(config: OIDCUserConfig<MicrosoftEntraIDProfile> & {
421
+ /**
422
+ * https://learn.microsoft.com/en-us/graph/api/profilephoto-get?view=graph-rest-1.0&tabs=http#examples
423
+ *
424
+ * @default 48
425
+ */
426
+ profilePhotoSize?: 48 | 64 | 96 | 120 | 240 | 360 | 432 | 504 | 648;
427
+ }): OIDCConfig<MicrosoftEntraIDProfile>;
428
+ //# sourceMappingURL=microsoft-entra-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"microsoft-entra-id.d.ts","sourceRoot":"","sources":["../src/providers/microsoft-entra-id.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE5D;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;;OAKG;IACH,GAAG,EAAE,MAAM,CAAA;IACX;;;;;;;sDAOkD;IAClD,GAAG,EAAE,MAAM,CAAA;IACX,gEAAgE;IAChE,GAAG,EAAE,IAAI,CAAA;IACT;;;;;;;;;OASG;IACH,GAAG,EAAE,MAAM,CAAA;IACX;;OAEG;IACH,GAAG,EAAE,IAAI,CAAA;IACT;;;;;OAKG;IACH,GAAG,EAAE,IAAI,CAAA;IACT;;;;;;;OAOG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;;;;;;OAOG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,GAAG,EAAE,MAAM,CAAA;IACX;;;;;;;OAOG;IACH,kBAAkB,EAAE,MAAM,CAAA;IAC1B;;;;;;;;;;;;OAYG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;;;;;;OAWG;IACH,GAAG,EAAE,MAAM,CAAA;IACX,yEAAyE;IACzE,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,sEAAsE;IACtE,EAAE,EAAE,MAAM,CAAA;IACV;;;;;;;;OAQG;IACH,GAAG,EAAE,MAAM,CAAA;IACX;;;;;OAKG;IACH,GAAG,EAAE,MAAM,CAAA;IACX;;;OAGG;IACH,GAAG,EAAE,MAAM,CAAA;IACX;;;OAGG;IACH,GAAG,EAAE,MAAM,CAAA;IACX,6CAA6C;IAC7C,GAAG,EAAE,KAAK,CAAA;IACV;;;;;OAKG;IACH,SAAS,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,IAAI,EAAE,CAAC,GAAG,CAAC,CAAA;IACX;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ,6CAA6C;IAC7C,SAAS,EAAE,IAAI,CAAA;IACf;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;;OAGG;IACH,GAAG,EAAE,MAAM,CAAA;IACX;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;;;;;;;;;;;;;;OAeG;IACH,UAAU,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAA;IAC3B;;;;;;;;;;;;;;;;;OAiBG;IACH,GAAG,EAAE,MAAM,CAAA;IACX,wDAAwD;IACxD,sBAAsB,EAAE,MAAM,EAAE,CAAA;IAChC,0DAA0D;IAC1D,wBAAwB,EAAE,MAAM,EAAE,CAAA;IAClC,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ;;;;;;;;;;OAUG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;;;;;;;;OASG;IACH,QAAQ,EAAE,OAAO,CAAA;IACjB;;;;;OAKG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAA;IACd,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAA;IAClB;;;;;OAKG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;;;;;OAMG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+FG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CACtC,MAAM,EAAE,cAAc,CAAC,uBAAuB,CAAC,GAAG;IAChD;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;CACpE,GACA,UAAU,CAAC,uBAAuB,CAAC,CAuDrC"}