@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,124 @@
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
+ import type { OIDCConfig, OIDCUserConfig } from "./index.js"
13
+
14
+ /** @see [Claims](https://learn.microsoft.com/en-us/azure/active-directory-b2c/tokens-overview#claims) */
15
+ export interface AzureADB2CProfile {
16
+ exp: number
17
+ nbf: number
18
+ ver: string
19
+ iss: string
20
+ sub: string
21
+ aud: string
22
+ iat: number
23
+ auth_time: number
24
+ oid: string
25
+ country: string
26
+ name: string
27
+ postalCode: string
28
+ emails: string[]
29
+ tfp: string
30
+ preferred_username: string
31
+ }
32
+
33
+ /**
34
+ * Add Azure AD B2C login to your page.
35
+ *
36
+ *
37
+ * ## Configuration
38
+ *
39
+ * ### Basic
40
+ *
41
+ * 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.
42
+ *
43
+ * 1. [Azure AD B2C Tenant](https://docs.microsoft.com/en-us/azure/active-directory-b2c/tutorial-create-tenant)
44
+ * 2. [App Registration](https://docs.microsoft.com/en-us/azure/active-directory-b2c/tutorial-register-applications)
45
+ * 3. [User Flow](https://docs.microsoft.com/en-us/azure/active-directory-b2c/tutorial-create-user-flows)
46
+ *
47
+ * For the step "User attributes and token claims" set the following:
48
+ *
49
+ * - Collect attribute:
50
+ * - Email Address
51
+ * - Display Name
52
+ * - Given Name
53
+ * - Surname
54
+ * - Return claim:
55
+ * - Email Addresses
56
+ * - Display Name
57
+ * - Given Name
58
+ * - Surname
59
+ * - Identity Provider
60
+ * - Identity Provider Access Token
61
+ * - User's Object ID
62
+ *
63
+ * @example
64
+ *
65
+ * ```ts
66
+ * import { Auth } from "@auth/core"
67
+ * import AzureADB2C from "@auth/core/providers/azure-ad-b2c"
68
+ *
69
+ * const request = new Request("https://example.com")
70
+ * const response = await AuthHandler(request, {
71
+ * // optionally, you can pass `tenantId` and `primaryUserFlow` instead of `issuer`
72
+ * providers: [AzureADB2C({ clientId: "", clientSecret: "", issuer: "" })],
73
+ * })
74
+ * ```
75
+ *
76
+ * ---
77
+ *
78
+ * ### Resources
79
+ *
80
+ * - [Azure Active Directory B2C documentation](https://learn.microsoft.com/en-us/azure/active-directory-b2c)
81
+ *
82
+ * ---
83
+ *
84
+ * ### Notes
85
+ *
86
+ * By default, Auth.js assumes that the Azure AD B2C provider is
87
+ * based on the [OIDC](https://openid.net/specs/openid-connect-core-1_0.html) specification.
88
+ *
89
+ * :::tip
90
+ *
91
+ * 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).
92
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
93
+ *
94
+ * :::
95
+ *
96
+ * :::info **Disclaimer**
97
+ *
98
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
99
+ *
100
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
101
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
102
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
103
+ *
104
+ * :::
105
+ */
106
+ export default function AzureADB2C(
107
+ options: OIDCUserConfig<AzureADB2CProfile>
108
+ ): OIDCConfig<AzureADB2CProfile> {
109
+ return {
110
+ id: "azure-ad-b2c",
111
+ name: "Azure AD B2C",
112
+ type: "oidc",
113
+ profile(profile) {
114
+ return {
115
+ id: profile.sub,
116
+ name: profile.name ?? profile.preferred_username,
117
+ email: profile?.emails?.[0],
118
+ image: null,
119
+ }
120
+ },
121
+ style: { text: "#fff", bg: "#0072c6" },
122
+ options,
123
+ }
124
+ }
@@ -0,0 +1,30 @@
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, {
12
+ MicrosoftEntraIDProfile,
13
+ } from "./microsoft-entra-id.js"
14
+
15
+ export type AzureADProfile = MicrosoftEntraIDProfile
16
+
17
+ /**
18
+ * @deprecated
19
+ * Azure Active Directory has been renamed to [Microsoft Entra ID](/getting-started/providers/microsoft-entra-id).
20
+ * Import this provider from the `providers/microsoft-entra-id` submodule instead of `providers/azure-ad`.
21
+ */
22
+ export default function AzureAD(
23
+ config: Parameters<typeof MicrosoftEntraID>[0]
24
+ ): ReturnType<typeof MicrosoftEntraID> {
25
+ return {
26
+ ...MicrosoftEntraID(config),
27
+ id: "azure-ad",
28
+ name: "Azure Active Directory",
29
+ }
30
+ }
@@ -0,0 +1,184 @@
1
+ import { OAuthConfig, OAuthUserConfig } from "./index.js"
2
+
3
+ /** @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) */
4
+ export interface AzureDevOpsProfile extends Record<string, any> {
5
+ id: string
6
+ displayName: string
7
+ emailAddress: string
8
+ coreAttributes: { Avatar: { value: { value: string } } }
9
+ }
10
+
11
+ /**
12
+ *
13
+ * @deprecated
14
+ * 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.
15
+ *
16
+ * ## Documentation
17
+ *
18
+ * [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])
19
+ *
20
+ * ## Configuration
21
+ *
22
+ * ### Register application
23
+ *
24
+ * :::tip
25
+ * [`https://app.vsaex.visualstudio.com/app/register`](https://app.vsaex.visualstudio.com/app/register)
26
+ * :::
27
+ *
28
+ * Provide the required details:
29
+ *
30
+ * - Company name
31
+ * - Application name
32
+ * - Application website
33
+ * - Authorization callback URL
34
+ * - `https://example.com/api/auth/callback/azure-devops` for production
35
+ * - `https://localhost/api/auth/callback/azure-devops` for development
36
+ * - Authorized scopes
37
+ * - Required minimum is `User profile (read)`
38
+ *
39
+ * Click ‘Create Application’
40
+ *
41
+ * :::warning
42
+ * You are required to use HTTPS even for the localhost
43
+ * :::
44
+ *
45
+ * :::warning
46
+ * You will have to delete and create a new application to change the scopes later
47
+ * :::
48
+ *
49
+ * The following data is relevant for the next step:
50
+ *
51
+ * - App ID
52
+ * - Client Secret (after clicking the ‘Show’ button, ignore App Secret entry above it)
53
+ * - Authorized Scopes
54
+ *
55
+ * ### Set up the environment variables
56
+ *
57
+ * In `.env.local` create the following entries:
58
+ *
59
+ * ```
60
+ * AZURE_DEVOPS_APP_ID=<copy App ID value here>
61
+ * AZURE_DEVOPS_CLIENT_SECRET=<copy generated client secret value here>
62
+ * AZURE_DEVOPS_SCOPE=<copy space separated Authorized Scopes list here>
63
+ * ```
64
+ *
65
+ * ## Example
66
+ *
67
+ * ```ts
68
+ * import AzureDevOps from "@auth/core/providers/azure-devops"
69
+ * ...
70
+ * providers: [
71
+ * AzureDevOps({
72
+ * clientId: process.env.AZURE_DEVOPS_APP_ID,
73
+ * clientSecret: process.env.AZURE_DEVOPS_CLIENT_SECRET,
74
+ * scope: process.env.AZURE_DEVOPS_SCOPE,
75
+ * }),
76
+ * ]
77
+ * ...
78
+ * ```
79
+ *
80
+ * ### Refresh token rotation
81
+ *
82
+ * Use the [main guide](/guides/basics/refresh-token-rotation) as your starting point with the following considerations:
83
+ *
84
+ * ```ts
85
+ * async jwt({ token, user, account }) {
86
+ * ...
87
+ * // The token has an absolute expiration time
88
+ * const accessTokenExpires = account.expires_at * 1000
89
+ * ...
90
+ * }
91
+ *
92
+ * async function refreshAccessToken(token) {
93
+ * ...
94
+ * const response = await fetch(
95
+ * "https://app.vssps.visualstudio.com/oauth2/token",
96
+ * {
97
+ * headers: { "Content-Type": "application/x-www-form-urlencoded" },
98
+ * method: "POST",
99
+ * body: new URLSearchParams({
100
+ * client_assertion_type:
101
+ * "urn:ietf:params:oauth:client-assertion-type:jwt-bearer",
102
+ * client_assertion: process.env.AZURE_DEVOPS_CLIENT_SECRET,
103
+ * grant_type: "refresh_token",
104
+ * assertion: token.refreshToken,
105
+ * redirect_uri:
106
+ * process.env.NEXTAUTH_URL + "/api/auth/callback/azure-devops",
107
+ * }),
108
+ * }
109
+ * )
110
+ * ...
111
+ * // The refreshed token comes with a relative expiration time
112
+ * const accessTokenExpires = Date.now() + newToken.expires_in * 1000
113
+ * ...
114
+ * }
115
+ * ```
116
+ */
117
+ export default function AzureDevOpsProvider<P extends AzureDevOpsProfile>(
118
+ options: OAuthUserConfig<P> & {
119
+ /**
120
+ * https://docs.microsoft.com/en-us/azure/devops/integrate/get-started/authentication/oauth?view=azure-devops#scopes
121
+ * @default vso.profile
122
+ */
123
+ scope?: string
124
+ }
125
+ ): OAuthConfig<P> {
126
+ const scope = options.scope ?? "vso.profile"
127
+ const tokenEndpointUrl = "https://app.vssps.visualstudio.com/oauth2/authorize"
128
+ const userInfoEndpointUrl =
129
+ "https://app.vssps.visualstudio.com/_apis/profile/profiles/me?details=true&coreAttributes=Avatar&api-version=6.0"
130
+
131
+ return {
132
+ id: "azure-devops",
133
+ name: "Azure DevOps",
134
+ type: "oauth",
135
+
136
+ authorization: {
137
+ url: "https://app.vssps.visualstudio.com/oauth2/authorize",
138
+ params: { response_type: "Assertion", scope },
139
+ },
140
+
141
+ token: {
142
+ url: tokenEndpointUrl,
143
+ async request(context) {
144
+ const response = await fetch(tokenEndpointUrl, {
145
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
146
+ method: "POST",
147
+ body: new URLSearchParams({
148
+ client_assertion_type:
149
+ "urn:ietf:params:oauth:client-assertion-type:jwt-bearer",
150
+ client_assertion: context.provider.clientSecret as string,
151
+ grant_type: "urn:ietf:params:oauth:grant-type:jwt-bearer",
152
+ assertion: context.params.code as string,
153
+ redirect_uri: context.provider.callbackUrl,
154
+ }),
155
+ })
156
+ return { tokens: await response.json() }
157
+ },
158
+ },
159
+
160
+ userinfo: {
161
+ url: userInfoEndpointUrl,
162
+ async request(context) {
163
+ const accessToken = context.tokens.access_token as string
164
+ const response = await fetch(userInfoEndpointUrl, {
165
+ headers: {
166
+ Authorization: `Bearer ${accessToken}`,
167
+ },
168
+ })
169
+ return response.json()
170
+ },
171
+ },
172
+
173
+ profile(profile) {
174
+ return {
175
+ id: profile.id,
176
+ name: profile.displayName,
177
+ email: profile.emailAddress,
178
+ image: `data:image/jpeg;base64,${profile.coreAttributes.Avatar.value.value}`,
179
+ }
180
+ },
181
+
182
+ options,
183
+ }
184
+ }
@@ -0,0 +1,161 @@
1
+ /**
2
+ * <div class="provider" style={{display: "flex", justifyContent: "space-between", alignItems: "center"}}>
3
+ * <span style={{fontSize: "1.35rem" }}>
4
+ * Built-in sign in with <b>BankID Norway</b> integration.
5
+ * </span>
6
+ * <a href="https://bankid.no" style={{backgroundColor: "black", padding: "12px", borderRadius: "100%" }}>
7
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/bankid-no.svg" width="24"/>
8
+ * </a>
9
+ * </div>
10
+ *
11
+ * @module providers/bankid-no
12
+ */
13
+ import type { OIDCConfig, OIDCUserConfig } from "./index.js"
14
+
15
+ /**
16
+ * @see [Core conepts - ID Token](https://confluence.bankidnorge.no/confluence/pdoidcl/technical-documentation/core-concepts/id-token)
17
+ * @see [userinfo](https://confluence.bankidnorge.no/confluence/pdoidcl/technical-documentation/api/userinfo)
18
+ */
19
+ export interface BankIDNorwayProfile {
20
+ exp: number
21
+ iat: number
22
+ /** Epoc time */
23
+ auth_time: number
24
+ jti: string
25
+ iss: string
26
+ /** Always client_id */
27
+ aud: string
28
+ sub: string
29
+ typ: "ID"
30
+ /** Equals client_id */
31
+ azp: string
32
+ session_state: string
33
+ at_hash: string
34
+ name: string
35
+ given_name: string
36
+ family_name: string
37
+ birthdate: string
38
+ updated_at: number
39
+ /**
40
+ * Uniform Resource Name for [IDP option](https://confluence.bankidnorge.no/confluence/pdoidcl/technical-documentation/core-concepts/identity-providers) being used,
41
+ * including Level of Assurance (LoA).
42
+ * @example
43
+ * ```
44
+ * urn:bankid:bid;LOA=4
45
+ * ```
46
+ */
47
+ acr: string
48
+ sid: string
49
+ /**
50
+ * Name of [IDP option](https://confluence.bankidnorge.no/confluence/pdoidcl/technical-documentation/core-concepts/identity-providers) being used to authenticate the end-user.
51
+ * If the end-user is subject to authentication step-up,
52
+ * note that this value may differ from any `amr` value specified
53
+ * in the `login_hint` parameter of the [authorize](https://confluence.bankidnorge.no/confluence/pdoidcl/technical-documentation/api/authorize) endpoint.
54
+ */
55
+ amr: "BID" | "BIM" | "BIS"
56
+ /** Personal Identifier (PID) / Serial Number) from associated BankID certificate. */
57
+ bankid_altsub: string
58
+ /**
59
+ * In case of BID or BIM, the issuer of the end user certificate is returned.
60
+ * @example
61
+ * ```
62
+ * CN=BankID Bankenes ID-tjeneste Bank CA 2,
63
+ * OU=988477052,
64
+ * O=Bankenes ID-tjeneste AS,*
65
+ * C=NO;OrginatorId=9775;OriginatorName=Gjensidige Bank RA 1
66
+ * ```
67
+ */
68
+ originator: string
69
+ additionalCertInfo: {
70
+ certValidFrom: number
71
+ serialNumber: string
72
+ keyAlgorithm: string
73
+ keySize: string
74
+ policyOid: string
75
+ certQualified: boolean
76
+ certValidTo: number
77
+ versionNumber: string
78
+ subjectName: string
79
+ }
80
+ /** Currently used as an input parameter for the [securityData](https://confluence.bankidnorge.no/confluence/pdoidcl/technical-documentation/api/securitydata) endpoint of the [Fraud Data](https://confluence.bankidnorge.no/confluence/pdoidcl/technical-documentation/advanced-topics/fraud-data) service */
81
+ tid: string
82
+ /** Only returned from the `userinfo_endpoint` */
83
+ email?: string
84
+ /**
85
+ * [Norwegian National Identity Number (fødselsnummer)](https://www.skatteetaten.no/en/person/foreign/norwegian-identification-number/national-identity-number). It can be an alternative to `sub`.
86
+ * Requires `nnin_altsub` scope at the [authorize](https://confluence.bankidnorge.no/confluence/pdoidcl/technical-documentation/api/authorize) endpoint.
87
+ * @example
88
+ * ```
89
+ * 181266*****
90
+ * ```
91
+ */
92
+ nnin_altsub?: string
93
+ }
94
+
95
+ /**
96
+ * ### Setup
97
+ *
98
+ * #### Callback URL
99
+ * ```
100
+ * https://example.com/api/auth/callback/bankid-no
101
+ * ```
102
+ *
103
+ * #### Configuration
104
+ * ```ts
105
+ * import { Auth } from "@auth/core"
106
+ * import BankIDNorge from "@auth/core/providers/bankid-no"
107
+ *
108
+ * const request = new Request(origin)
109
+ * const response = await Auth(request, {
110
+ * providers: [
111
+ * Auth0({
112
+ * clientId: AUTH_BANKID_NO_ID,
113
+ * clientSecret: AUTH_BANKID_NO_SECRET,
114
+ * }),
115
+ * ],
116
+ * })
117
+ * ```
118
+ *
119
+ * ### Resources
120
+ *
121
+ * - [OpenID Connect Provider from BankID](https://confluence.bankidnorge.no/confluence/pdoidcl)
122
+ *
123
+ * ### Notes
124
+ *
125
+ * The BankID Norge provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/bankid-no.ts). To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
126
+ *
127
+ * ## Help
128
+ *
129
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
130
+ *
131
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
132
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
133
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
134
+ */
135
+ export default function BankIDNorway(
136
+ config: OIDCUserConfig<BankIDNorwayProfile>
137
+ ): OIDCConfig<BankIDNorwayProfile> {
138
+ return {
139
+ id: "bankid-no",
140
+ name: "BankID Norge",
141
+ type: "oidc",
142
+ issuer: "https://auth.bankid.no/auth/realms/prod",
143
+ client: {
144
+ token_endpoint_auth_method: "client_secret_post",
145
+ userinfo_signed_response_alg: "RS256",
146
+ },
147
+ idToken: false,
148
+ authorization: { params: { ui_locales: "no", login_hint: "BIS" } },
149
+ profile(profile) {
150
+ return {
151
+ id: profile.sub,
152
+ name: profile.name,
153
+ email: profile.email ?? null,
154
+ image: null,
155
+ }
156
+ },
157
+ checks: ["pkce", "state", "nonce"],
158
+ style: { text: "#fff", bg: "#39134c" },
159
+ options: config,
160
+ }
161
+ }
@@ -0,0 +1,107 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>Battle.net</b> integration.</span>
4
+ * <a href="https://Battle.net/">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/battlenet.svg" height="48" width="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/battlenet
10
+ */
11
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js"
12
+
13
+ export interface BattleNetProfile extends Record<string, any> {
14
+ sub: string
15
+ battle_tag: string
16
+ }
17
+
18
+ /** See the [available regions](https://develop.battle.net/documentation/guides/regionality-and-apis) */
19
+ export type BattleNetIssuer =
20
+ | "https://oauth.battle.net"
21
+ | "https://oauth.battlenet.com.cn"
22
+ | "https://www.battlenet.com.cn/oauth"
23
+ | `https://${"us" | "eu" | "kr" | "tw"}.battle.net/oauth`
24
+
25
+ /**
26
+ * Add Battle.net login to your page.
27
+ *
28
+ * ### Setup
29
+ *
30
+ * #### Callback URL
31
+ * ```
32
+ * https://example.com/api/auth/callback/battlenet
33
+ * ```
34
+ *
35
+ * #### Configuration
36
+ *```ts
37
+ * import { Auth } from "@auth/core"
38
+ * import BattleNet from "@auth/core/providers/battlenet"
39
+ *
40
+ * const request = new Request(origin)
41
+ * const response = await Auth(request, {
42
+ * providers: [
43
+ * BattleNet({
44
+ * clientId: BATTLENET_CLIENT_ID,
45
+ * clientSecret: BATTLENET_CLIENT_SECRET,
46
+ * issuer: BATTLENET_ISSUER,
47
+ * }),
48
+ * ],
49
+ * })
50
+ * ```
51
+ * issuer must be one of these values, based on the available regions:
52
+ * ```
53
+ * type BattleNetIssuer =
54
+ * | "https://oauth.battle.net"
55
+ * | "https://oauth.battlenet.com.cn"
56
+ * | "https://www.battlenet.com.cn/oauth"
57
+ * | "https://us.battle.net/oauth"
58
+ * | "https://eu.battle.net/oauth"
59
+ * | "https://kr.battle.net/oauth"
60
+ * | "https://tw.battle.net/oauth"
61
+ * ```
62
+ *
63
+ * ### Resources
64
+ *
65
+ * - [BattleNet OAuth documentation](https://develop.battle.net/documentation/guides/using-oauth)
66
+ *
67
+ * ### Notes
68
+ *
69
+ * By default, Auth.js assumes that the BattleNet provider is
70
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
71
+ *
72
+ * :::tip
73
+ *
74
+ * The BattleNet provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/battlenet.ts).
75
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
76
+ *
77
+ * :::
78
+ *
79
+ * :::info **Disclaimer**
80
+ *
81
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
82
+ *
83
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
84
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
85
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
86
+ *
87
+ * :::
88
+ */
89
+ export default function BattleNet<P extends BattleNetProfile>(
90
+ options: OAuthUserConfig<P> & { issuer: BattleNetIssuer }
91
+ ): OAuthConfig<P> {
92
+ return {
93
+ id: "battlenet",
94
+ name: "Battle.net",
95
+ type: "oidc",
96
+ profile(profile) {
97
+ return {
98
+ id: profile.sub,
99
+ name: profile.battle_tag,
100
+ email: null,
101
+ image: null,
102
+ }
103
+ },
104
+ style: { bg: "#148eff", text: "#fff" },
105
+ options,
106
+ }
107
+ }