@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,206 @@
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>Apple</b> integration.
5
+ * </span>
6
+ * <a href="https://apple.com" style={{backgroundColor: "black", padding: "12px", borderRadius: "100%" }}>
7
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/apple.svg" width="24"/>
8
+ * </a>
9
+ * </div>
10
+ *
11
+ * @module providers/apple
12
+ */
13
+
14
+ import { conformInternal, customFetch } from "../lib/symbols.js"
15
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js"
16
+
17
+ /** The returned user profile from Apple when using the profile callback. */
18
+ export interface AppleProfile extends Record<string, any> {
19
+ /**
20
+ * The issuer registered claim identifies the principal that issued the identity token.
21
+ * Since Apple generates the token, the value is `https://appleid.apple.com`.
22
+ */
23
+ iss: "https://appleid.apple.com"
24
+ /**
25
+ * The audience registered claim identifies the recipient for which the identity token is intended.
26
+ * Since the token is meant for your application, the value is the `client_id` from your developer account.
27
+ */
28
+ aud: string
29
+ /**
30
+ * The issued at registered claim indicates the time at which Apple issued the identity token,
31
+ * in terms of the number of seconds since Epoch, in UTC.
32
+ */
33
+ iat: number
34
+
35
+ /**
36
+ * The expiration time registered identifies the time on or after which the identity token expires,
37
+ * in terms of number of seconds since Epoch, in UTC.
38
+ * The value must be greater than the current date/time when verifying the token.
39
+ */
40
+ exp: number
41
+ /**
42
+ * The subject registered claim identifies the principal that's the subject of the identity token.
43
+ * Since this token is meant for your application, the value is the unique identifier for the user.
44
+ */
45
+ sub: string
46
+ /**
47
+ * A String value used to associate a client session and the identity token.
48
+ * This value mitigates replay attacks and is present only if passed during the authorization request.
49
+ */
50
+ nonce: string
51
+
52
+ /**
53
+ * A Boolean value that indicates whether the transaction is on a nonce-supported platform.
54
+ * If you sent a nonce in the authorization request but don't see the nonce claim in the identity token,
55
+ * check this claim to determine how to proceed.
56
+ * If this claim returns true, you should treat nonce as mandatory and fail the transaction;
57
+ * otherwise, you can proceed treating the nonce as options.
58
+ */
59
+ nonce_supported: boolean
60
+
61
+ /**
62
+ * A String value representing the user's email address.
63
+ * The email address is either the user's real email address or the proxy address,
64
+ * depending on their status private email relay service.
65
+ */
66
+ email: string
67
+
68
+ /**
69
+ * A String or Boolean value that indicates whether the service has verified the email.
70
+ * The value of this claim is always true, because the servers only return verified email addresses.
71
+ * The value can either be a String (`"true"`) or a Boolean (`true`).
72
+ */
73
+ email_verified: "true" | true
74
+
75
+ /**
76
+ * A String or Boolean value that indicates whether the email shared by the user is the proxy address.
77
+ * The value can either be a String (`"true"` or `"false"`) or a Boolean (`true` or `false`).
78
+ */
79
+ is_private_email: boolean | "true" | "false"
80
+
81
+ /**
82
+ * An Integer value that indicates whether the user appears to be a real person.
83
+ * Use the value of this claim to mitigate fraud. The possible values are: 0 (or Unsupported), 1 (or Unknown), 2 (or LikelyReal).
84
+ * For more information, see [`ASUserDetectionStatus`](https://developer.apple.com/documentation/authenticationservices/asuserdetectionstatus).
85
+ * This claim is present only on iOS 14 and later, macOS 11 and later, watchOS 7 and later, tvOS 14 and later;
86
+ * the claim isn't present or supported for web-based apps.
87
+ */
88
+ real_user_status: 0 | 1 | 2
89
+
90
+ /**
91
+ * A String value representing the transfer identifier used to migrate users to your team.
92
+ * This claim is present only during the 60-day transfer period after an you transfer an app.
93
+ * For more information, see [Bringing New Apps and Users into Your Team](https://developer.apple.com/documentation/sign_in_with_apple/bringing_new_apps_and_users_into_your_team).
94
+ */
95
+ transfer_sub: string
96
+ at_hash: string
97
+ auth_time: number
98
+ user?: AppleNonConformUser
99
+ }
100
+
101
+ /**
102
+ * This is the shape of the `user` query parameter that Apple sends the first
103
+ * time the user consents to the app.
104
+ * @see https://developer.apple.com/documentation/sign_in_with_apple/request_an_authorization_to_the_sign_in_with_apple_server#4066168
105
+ */
106
+ export interface AppleNonConformUser {
107
+ name: {
108
+ firstName: string
109
+ lastName: string
110
+ }
111
+ email: string
112
+ }
113
+
114
+ /**
115
+ * ### Setup
116
+ *
117
+ * #### Callback URL
118
+ * ```
119
+ * https://example.com/auth/callback/apple
120
+ * ```
121
+ *
122
+ * #### Configuration
123
+ * ```ts
124
+ * import Apple from "@auth/core/providers/apple"
125
+ * ...
126
+ * providers: [
127
+ * Apple({
128
+ * clientId: env.AUTH_APPLE_ID,
129
+ * clientSecret: env.AUTH_APPLE_SECRET,
130
+ * })
131
+ * ]
132
+ * ...
133
+ * ```
134
+ *
135
+ * ### Resources
136
+ *
137
+ * - Sign in with Apple [Overview](https://developer.apple.com/sign-in-with-apple/get-started/)
138
+ * - Sign in with Apple [REST API](https://developer.apple.com/documentation/sign_in_with_apple/sign_in_with_apple_rest_api)
139
+ * - [How to retrieve](https://developer.apple.com/documentation/sign_in_with_apple/sign_in_with_apple_rest_api/authenticating_users_with_sign_in_with_apple#3383773) the user's information from Apple ID servers
140
+ * - [Learn more about OAuth](https://authjs.dev/concepts/oauth)
141
+ * - [Creating the Client Secret](https://developer.apple.com/documentation/accountorganizationaldatasharing/creating-a-client-secret)
142
+ *
143
+ * ### Notes
144
+ *
145
+ * - Apple does not support localhost/http URLs. You can only use a live URL with HTTPS.
146
+ * - Apple requires the client secret to be a JWT. We provide a CLI command `npx auth add apple`, to help you generate one.
147
+ * This will prompt you for the necessary information and at the end it will add the `AUTH_APPLE_ID` and `AUTH_APPLE_SECRET` to your `.env` file.
148
+ * - Apple provides minimal user information. It returns the user's email and name, but only the first time the user consents to the app.
149
+ * - The Apple provider does not support setting up the same client for multiple deployments (like [preview deployments](https://authjs.dev/getting-started/deployment#securing-a-preview-deployment)).
150
+ * - The Apple provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/apple.ts). To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
151
+ *
152
+ * ## Help
153
+ *
154
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
155
+ *
156
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
157
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
158
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
159
+ */
160
+ export default function Apple(
161
+ config: OAuthUserConfig<AppleProfile>
162
+ ): OAuthConfig<AppleProfile> {
163
+ return {
164
+ id: "apple",
165
+ name: "Apple",
166
+ type: "oidc",
167
+ issuer: "https://appleid.apple.com",
168
+ authorization: {
169
+ params: {
170
+ scope: "name email", // https://developer.apple.com/documentation/sign_in_with_apple/clientconfigi/3230955-scope
171
+ response_mode: "form_post",
172
+ },
173
+ },
174
+ // We need to parse the special `user` parameter the first time the user consents to the app.
175
+ // It adds the `name` object to the `profile`, with `firstName` and `lastName` fields.
176
+ [conformInternal]: true,
177
+ profile(profile) {
178
+ const name = profile.user
179
+ ? `${profile.user.name.firstName} ${profile.user.name.lastName}`
180
+ : profile.email
181
+ return {
182
+ id: profile.sub,
183
+ name: name,
184
+ email: profile.email,
185
+ image: null,
186
+ }
187
+ },
188
+ // Apple does not provide a userinfo endpoint.
189
+ async [customFetch](...args) {
190
+ const url = new URL(args[0] instanceof Request ? args[0].url : args[0])
191
+ if (url.pathname.endsWith(".well-known/openid-configuration")) {
192
+ const response = await fetch(...args)
193
+ const json = await response.clone().json()
194
+ return Response.json({
195
+ ...json,
196
+ userinfo_endpoint: "https://appleid.apple.com/fake_endpoint",
197
+ })
198
+ }
199
+ return fetch(...args)
200
+ },
201
+ client: { token_endpoint_auth_method: "client_secret_post" },
202
+ style: { text: "#fff", bg: "#000" },
203
+ checks: ["nonce", "state"],
204
+ options: config,
205
+ }
206
+ }
@@ -0,0 +1,118 @@
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>Asgardeo</b> integration.
5
+ * </span>
6
+ * <a href="https://wso2.com/asgardeo/" style={{backgroundColor: "#ECEFF1", padding: "12px", borderRadius: "100%" }}>
7
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/asgardeo.svg" width="24"/>
8
+ * </a>
9
+ * </div>
10
+ *
11
+ * @module providers/asgardeo
12
+ */
13
+
14
+ import type { OIDCConfig, OIDCUserConfig } from "./index.js"
15
+
16
+ /** The returned user profile from Asgardeo when using the profile callback. */
17
+ export interface AsgardeoProfile extends Record<string, any> {
18
+ /**
19
+ * The user Asgardeo account ID
20
+ */
21
+ sub: string
22
+ /**
23
+ * The user name
24
+ */
25
+ given_name: string
26
+ /**
27
+ * The user email
28
+ */
29
+ email: string
30
+ /**
31
+ * The user profile picture
32
+ */
33
+ picture: string
34
+ }
35
+
36
+ /**
37
+ *
38
+ * ### Setup
39
+ *
40
+ * #### Callback URL
41
+ * ```
42
+ * https://example.com/api/auth/callback/asgardeo
43
+ * ```
44
+ *
45
+ * #### Configuration
46
+ *```ts
47
+ * import { Auth } from "@auth/core"
48
+ * import Asgardeo from "@auth/core/providers/asgardeo";
49
+ *
50
+ * const request = new Request(origin)
51
+ * const response = await Auth(request, {
52
+ * providers: [
53
+ * Asgardeo({
54
+ * clientId: ASGARDEO_CLIENT_ID,
55
+ * clientSecret: ASGARDEO_CLIENT_SECRET,
56
+ * issuer: ASGARDEO_ISSUER,
57
+ * }),
58
+ * ],
59
+ * })
60
+ * ```
61
+ *
62
+ * ### Configuring Asgardeo
63
+ *
64
+ * Follow these steps:
65
+ *
66
+ * 1. Log into the [Asgardeo console](https://console.asgardeo.io)
67
+ * 2. Next, go to "Application" tab (more info [here](https://wso2.com/asgardeo/docs/guides/applications/register-oidc-web-app/))
68
+ * 3. Register a standard based, Open ID connect, application
69
+ * 4. Add the **callback URLs**: `http://localhost:3000/api/auth/callback/asgardeo` (development) and `https://{YOUR_DOMAIN}.com/api/auth/callback/asgardeo` (production)
70
+ * 5. After registering the application, go to "Protocol" tab.
71
+ * 6. Check `code` as the grant type.
72
+ * 7. Add "Authorized redirect URLs" & "Allowed origins fields"
73
+ * 8. Make Email, First Name, Photo URL user attributes mandatory from the console.
74
+ *
75
+ * Then, create a `.env` file in the project root add the following entries:
76
+ *
77
+ * ```
78
+ * ASGARDEO_CLIENT_ID="Copy client ID from protocol tab here"
79
+ * ASGARDEO_CLIENT_SECRET="Copy client from protocol tab here"
80
+ * ASGARDEO_ISSUER="Copy the issuer url from the info tab here"
81
+ * ```
82
+ *
83
+ * ### Resources
84
+ *
85
+ * - [Asgardeo - Authentication Guide](https://wso2.com/asgardeo/docs/guides/authentication)
86
+ * - [Learn more about OAuth](https://authjs.dev/concepts/oauth)
87
+ *
88
+ * ### Notes
89
+ *
90
+ * The Asgardeo provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/asgardeo.ts). To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
91
+ *
92
+ * :::info
93
+ * By default, Auth.js assumes that the Asgardeo provider is based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) spec
94
+ * :::
95
+ *
96
+ * ## Help
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
+ export default function Asgardeo(
105
+ config: OIDCUserConfig<AsgardeoProfile>
106
+ ): OIDCConfig<AsgardeoProfile> {
107
+ return {
108
+ id: "asgardeo",
109
+ name: "Asgardeo",
110
+ type: "oidc",
111
+ wellKnown: `${config?.issuer}/oauth2/token/.well-known/openid-configuration`,
112
+ style: {
113
+ bg: "#000",
114
+ text: "#fff",
115
+ },
116
+ options: config,
117
+ }
118
+ }
@@ -0,0 +1,120 @@
1
+ /**
2
+ * <div style={{display: "flex", justifyContent: "space-between", alignItems: "center"}}>
3
+ * <span style={{fontSize: "1.35rem" }}>
4
+ * Built-in sign in with <b>Atlassian</b> integration.
5
+ * </span>
6
+ * <a href="https://www.atlassian.com/" style={{backgroundColor: "black", padding: "12px", borderRadius: "100%" }}>
7
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/atlassian.svg" width="24" style={{ marginTop: "-3px"}} />
8
+ * </a>
9
+ * </div>
10
+ *
11
+ * @module providers/atlassian
12
+ */
13
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js"
14
+
15
+ /** The returned user profile from Atlassian when using the profile callback. */
16
+ export interface AtlassianProfile extends Record<string, any> {
17
+ /**
18
+ * The user's atlassian account ID
19
+ */
20
+ account_id: string
21
+ /**
22
+ * The user name
23
+ */
24
+ name: string
25
+ /**
26
+ * The user's email
27
+ */
28
+ email: string
29
+ /**
30
+ * The user's profile picture
31
+ */
32
+ picture: string
33
+ }
34
+
35
+ /**
36
+ * ### Setup
37
+ *
38
+ * #### Callback URL
39
+ * ```
40
+ * https://example.com/api/auth/callback/atlassian
41
+ * ```
42
+ *
43
+ * #### Configuration
44
+ *
45
+ * Import the provider and configure it in your **Auth.js** initialization file:
46
+ *
47
+ * ```ts
48
+ * import Atlassian from "@auth/core/providers/atlassian"
49
+ * ...
50
+ * providers: [
51
+ * Atlassian({
52
+ * clientId: env.AUTH_ATLASSIAN_ID,
53
+ * clientSecret: env.AUTH_ATLASSIAN_SECRET,
54
+ * }),
55
+ * ]
56
+ * ...
57
+ * ```
58
+ *
59
+ * ### Configuring Atlassian
60
+ *
61
+ * Follow these steps:
62
+ *
63
+ * 1. From any page on [developer.atlassian.com](https://developer.atlassian.com), select your profile icon in the top-right corner, and from the dropdown, select **Developer console**.
64
+ * 2. Select your app from the list (or create one if you don't already have one)
65
+ * 3. Select **Authorization** in the left menu
66
+ * 4. Next to OAuth 2.0 (3LO), select **Configure** (or **Add** for newly created app)
67
+ * 5. Enter the **Callback URL**: `https://{YOUR_DOMAIN}/api/auth/callback/atlassian`
68
+ * 6. Click Save changes
69
+ * 7. Select **Settings** in the left menu
70
+ * 8. Access and copy your app's **Client ID** and **Secret**
71
+ *
72
+ * Then, create a `.env` file in the project root add the following entries:
73
+ *
74
+ * ```
75
+ * AUTH_ATLASSIAN_ID=<Client ID copied in step 8>
76
+ * AUTH_ATLASSIAN_SECRET=<Secret copied in step 8>
77
+ * ```
78
+ *
79
+ * ### Resources
80
+ *
81
+ * - [Atlassian docs](https://developer.atlassian.com/cloud/jira/software/oauth-2-3lo-apps/)
82
+ *
83
+ * ### Notes
84
+ *
85
+ * The Atlassian provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/atlassian.ts). To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/providers/custom-provider#override-default-options).
86
+ *
87
+ * ## Help
88
+ *
89
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
90
+ *
91
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
92
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
93
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
94
+ */
95
+ export default function Atlassian(
96
+ options: OAuthUserConfig<AtlassianProfile>
97
+ ): OAuthConfig<AtlassianProfile> {
98
+ return {
99
+ id: "atlassian",
100
+ name: "Atlassian",
101
+ type: "oauth",
102
+ authorization: {
103
+ url: "https://auth.atlassian.com/authorize",
104
+ params: { audience: "api.atlassian.com", scope: "read:me" },
105
+ },
106
+ token: "https://auth.atlassian.com/oauth/token",
107
+ userinfo: "https://api.atlassian.com/me",
108
+ profile(profile) {
109
+ return {
110
+ id: profile.account_id,
111
+ name: profile.name,
112
+ email: profile.email,
113
+ image: profile.picture,
114
+ }
115
+ },
116
+ checks: ["state"],
117
+ style: { bg: "#fff", text: "#0052cc" },
118
+ options,
119
+ }
120
+ }
@@ -0,0 +1,127 @@
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>Auth0</b> integration.
5
+ * </span>
6
+ * <a href="https://auth0.com" style={{backgroundColor: "black", padding: "12px", borderRadius: "100%" }}>
7
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/auth0.svg" width="24"/>
8
+ * </a>
9
+ * </div>
10
+ *
11
+ * @module providers/auth0
12
+ */
13
+ import type { OIDCConfig, OIDCUserConfig } from "./index.js"
14
+
15
+ /** The returned user profile from Auth0 when using the profile callback. [Reference](https://auth0.com/docs/manage-users/user-accounts/user-profiles/user-profile-structure). */
16
+ export interface Auth0Profile extends Record<string, any> {
17
+ /** The user's unique identifier. */
18
+ sub: string
19
+ /** Custom fields that store info about a user that influences the user's access, such as support plan, security roles (if not using the Authorization Core feature set), or access control groups. To learn more, read Metadata Overview. */
20
+ app_metadata: object
21
+ /** Indicates whether the user has been blocked. Importing enables subscribers to ensure that users remain blocked when migrating to Auth0. */
22
+ blocked: boolean
23
+ /** Timestamp indicating when the user profile was first created. */
24
+ created_at: Date
25
+ /** (unique) The user's email address. */
26
+ email: string
27
+ /** Indicates whether the user has verified their email address. */
28
+ email_verified: boolean
29
+ /** The user's family name. */
30
+ family_name: string
31
+ /** The user's given name. */
32
+ given_name: string
33
+ /** Custom fields that store info about a user that does not impact what they can or cannot access, such as work address, home address, or user preferences. To learn more, read Metadata Overview. */
34
+ user_metadata: object
35
+ /** (unique) The user's username. */
36
+ username: string
37
+ /** Contains info retrieved from the identity provider with which the user originally authenticates. Users may also link their profile to multiple identity providers; those identities will then also appear in this array. The contents of an individual identity provider object varies by provider. In some cases, it will also include an API Access Token to be used with the provider. */
38
+ identities: Array<{
39
+ /** Name of the Auth0 connection used to authenticate the user. */
40
+ connection: string
41
+ /** Indicates whether the connection is a social one. */
42
+ isSocial: boolean
43
+ /** Name of the entity that is authenticating the user, such as Facebook, Google, SAML, or your own provider. */
44
+ provider: string
45
+ /** User's unique identifier for this connection/provider. */
46
+ user_id: string
47
+ /** User info associated with the connection. When profiles are linked, it is populated with the associated user info for secondary accounts. */
48
+ profileData: object
49
+ [key: string]: any
50
+ }>
51
+ /** IP address associated with the user's last login. */
52
+ last_ip: string
53
+ /** Timestamp indicating when the user last logged in. If a user is blocked and logs in, the blocked session updates last_login. If you are using this property from inside a Rule using the user< object, its value will be associated with the login that triggered the rule; this is because rules execute after login. */
54
+ last_login: Date
55
+ /** Timestamp indicating the last time the user's password was reset/changed. At user creation, this field does not exist. This property is only available for Database connections. */
56
+ last_password_reset: Date
57
+ /** Number of times the user has logged in. If a user is blocked and logs in, the blocked session is counted in logins_count. */
58
+ logins_count: number
59
+ /** List of multi-factor providers with which the user is enrolled. */
60
+ multifactor: string
61
+ /** The user's full name. */
62
+ name: string
63
+ /** The user's nickname. */
64
+ nickname: string
65
+ /** The user's phone number. Only valid for users with SMS connections. */
66
+ phone_number: string
67
+ /** Indicates whether the user has been verified their phone number. Only valid for users with SMS connections. */
68
+ phone_verified: boolean
69
+ /** URL pointing to the user's profile picture. */
70
+ picture: string
71
+ /** Timestamp indicating when the user's profile was last updated/modified. Changes to last_login are considered updates, so most of the time, updated_at will match last_login. */
72
+ updated_at: Date
73
+ /** (unique) The user's identifier. Importing allows user records to be synchronized across multiple systems without using mapping tables. */
74
+ user_id: string
75
+ }
76
+
77
+ /**
78
+ * ### Setup
79
+ *
80
+ * #### Callback URL
81
+ * ```
82
+ * https://example.com/api/auth/callback/auth0
83
+ * ```
84
+ *
85
+ * #### Configuration
86
+ * ```ts
87
+ * import { Auth } from "@auth/core"
88
+ * import Auth0 from "@auth/core/providers/auth0"
89
+ *
90
+ * const request = new Request(origin)
91
+ * const response = await Auth(request, {
92
+ * providers: [
93
+ * Auth0({
94
+ * clientId: AUTH0_ID,
95
+ * clientSecret: AUTH0_SECRET,
96
+ * }),
97
+ * ],
98
+ * })
99
+ * ```
100
+ *
101
+ * ### Resources
102
+ *
103
+ * - [Auth0 docs](https://auth0.com/docs/authenticate)
104
+ *
105
+ * ### Notes
106
+ *
107
+ * The Auth0 provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/auth0.ts). To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
108
+ *
109
+ * ## Help
110
+ *
111
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
112
+ *
113
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
114
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
115
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
116
+ */
117
+ export default function Auth0(
118
+ config: OIDCUserConfig<Auth0Profile>
119
+ ): OIDCConfig<Auth0Profile> {
120
+ return {
121
+ id: "auth0",
122
+ name: "Auth0",
123
+ type: "oidc",
124
+ style: { text: "#fff", bg: "#EB5424" },
125
+ options: config,
126
+ }
127
+ }
@@ -0,0 +1,100 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#fd4b2d", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>Authentik</b> integration.</span>
4
+ * <a href="https://goauthentik.io/">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/authentik.svg" height="48" width="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/authentik
10
+ */
11
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js"
12
+
13
+ export interface AuthentikProfile extends Record<string, any> {
14
+ iss: string
15
+ sub: string
16
+ aud: string
17
+ exp: number
18
+ iat: number
19
+ auth_time: number
20
+ acr: string
21
+ c_hash: string
22
+ nonce: string
23
+ at_hash: string
24
+ email: string
25
+ email_verified: boolean
26
+ name: string
27
+ given_name: string
28
+ family_name: string
29
+ preferred_username: string
30
+ nickname: string
31
+ groups: string[]
32
+ }
33
+
34
+ /**
35
+ * Add Authentik login to your page.
36
+ *
37
+ * ### Setup
38
+ *
39
+ * #### Callback URL
40
+ * ```
41
+ * https://example.com/api/auth/callback/authentik
42
+ * ```
43
+ *
44
+ * #### Configuration
45
+ *```ts
46
+ * import { Auth } from "@auth/core"
47
+ * import Authentik from "@auth/core/providers/authentik"
48
+ *
49
+ * const request = new Request(origin)
50
+ * const response = await Auth(request, {
51
+ * providers: [
52
+ * Authentik({
53
+ * clientId: AUTHENTIK_CLIENT_ID,
54
+ * clientSecret: AUTHENTIK_CLIENT_SECRET,
55
+ * issuer: AUTHENTIK_ISSUER,
56
+ * }),
57
+ * ],
58
+ * })
59
+ * ```
60
+ *
61
+ * :::note
62
+ * issuer should include the slug without a trailing slash – e.g., https://my-authentik-domain.com/application/o/My_Slug
63
+ * :::
64
+ *
65
+ * ### Resources
66
+ *
67
+ * - [Authentik OAuth documentation](https://goauthentik.io/docs/providers/oauth2)
68
+ *
69
+ * ### Notes
70
+ *
71
+ * By default, Auth.js assumes that the Authentik provider is
72
+ * based on the [Open ID Connect](https://openid.net/specs/openid-connect-core-1_0.html) specification.
73
+ *
74
+ * :::tip
75
+ *
76
+ * The Authentik provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/authentik.ts).
77
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
78
+ *
79
+ * :::
80
+ *
81
+ * :::info **Disclaimer**
82
+ *
83
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
84
+ *
85
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
86
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
87
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
88
+ *
89
+ * :::
90
+ */
91
+ export default function Authentik<P extends AuthentikProfile>(
92
+ options: OAuthUserConfig<P>
93
+ ): OAuthConfig<P> {
94
+ return {
95
+ id: "authentik",
96
+ name: "Authentik",
97
+ type: "oidc",
98
+ options,
99
+ }
100
+ }