@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,176 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>Discord</b> integration.</span>
4
+ * <a href="https://discord.com/">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/discord.svg" height="48" width="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/discord
10
+ */
11
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js"
12
+
13
+ /**
14
+ * Corresponds to the user structure documented here:
15
+ * https://discord.com/developers/docs/resources/user#user-object-user-structure
16
+ */
17
+ export interface DiscordProfile extends Record<string, any> {
18
+ /** the user's id (i.e. the numerical snowflake) */
19
+ id: string
20
+ /** the user's username, not unique across the platform */
21
+ username: string
22
+ /** the user's Discord-tag */
23
+ discriminator: string
24
+ /** the user's display name, if it is set */
25
+ global_name: string | null
26
+ /**
27
+ * the user's avatar hash:
28
+ * https://discord.com/developers/docs/reference#image-formatting
29
+ */
30
+ avatar: string | null
31
+ /** whether the user belongs to an OAuth2 application */
32
+ bot?: boolean
33
+ /**
34
+ * whether the user is an Official Discord System user (part of the urgent
35
+ * message system)
36
+ */
37
+ system?: boolean
38
+ /** whether the user has two factor enabled on their account */
39
+ mfa_enabled: boolean
40
+ /**
41
+ * the user's banner hash:
42
+ * https://discord.com/developers/docs/reference#image-formatting
43
+ */
44
+ banner: string | null
45
+
46
+ /** the user's banner color encoded as an integer representation of hexadecimal color code */
47
+ accent_color: number | null
48
+
49
+ /**
50
+ * the user's chosen language option:
51
+ * https://discord.com/developers/docs/reference#locales
52
+ */
53
+ locale: string
54
+ /** whether the email on this account has been verified */
55
+ verified: boolean
56
+ /** the user's email */
57
+ email: string | null
58
+ /**
59
+ * the flags on a user's account:
60
+ * https://discord.com/developers/docs/resources/user#user-object-user-flags
61
+ */
62
+ flags: number
63
+ /**
64
+ * the type of Nitro subscription on a user's account:
65
+ * https://discord.com/developers/docs/resources/user#user-object-premium-types
66
+ */
67
+ premium_type: number
68
+ /**
69
+ * the public flags on a user's account:
70
+ * https://discord.com/developers/docs/resources/user#user-object-user-flags
71
+ */
72
+ public_flags: number
73
+ /** undocumented field; corresponds to the user's custom nickname */
74
+ display_name: string | null
75
+ /**
76
+ * undocumented field; corresponds to the Discord feature where you can e.g.
77
+ * put your avatar inside of an ice cube
78
+ */
79
+ avatar_decoration: string | null
80
+ /**
81
+ * undocumented field; corresponds to the premium feature where you can
82
+ * select a custom banner color
83
+ */
84
+ banner_color: string | null
85
+ /** undocumented field; the CDN URL of their profile picture */
86
+ image_url: string
87
+ }
88
+
89
+ /**
90
+ * Add Discord login to your page.
91
+ *
92
+ * ### Setup
93
+ *
94
+ * #### Callback URL
95
+ * ```
96
+ * https://example.com/api/auth/callback/discord
97
+ * ```
98
+ *
99
+ * #### Configuration
100
+ *```ts
101
+ * import { Auth } from "@auth/core"
102
+ * import Discord from "@auth/core/providers/discord"
103
+ *
104
+ * const request = new Request(origin)
105
+ * const response = await Auth(request, {
106
+ * providers: [
107
+ * Discord({
108
+ * clientId: DISCORD_CLIENT_ID,
109
+ * clientSecret: DISCORD_CLIENT_SECRET,
110
+ * }),
111
+ * ],
112
+ * })
113
+ * ```
114
+ *
115
+ * ### Resources
116
+ *
117
+ * - [Discord OAuth documentation](https://discord.com/developers/docs/topics/oauth2)
118
+ * - [Discord OAuth apps](https://discord.com/developers/applications)
119
+ *
120
+ * ### Notes
121
+ *
122
+ * By default, Auth.js assumes that the Discord provider is
123
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
124
+ *
125
+ * :::tip
126
+ *
127
+ * The Discord provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/discord.ts).
128
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
129
+ *
130
+ * :::
131
+ *
132
+ * :::info **Disclaimer**
133
+ *
134
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
135
+ *
136
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
137
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
138
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
139
+ *
140
+ * :::
141
+ */
142
+ export default function Discord<P extends DiscordProfile>(
143
+ options: OAuthUserConfig<P>
144
+ ): OAuthConfig<P> {
145
+ return {
146
+ id: "discord",
147
+ name: "Discord",
148
+ type: "oauth",
149
+ authorization: {
150
+ url: "https://discord.com/api/oauth2/authorize",
151
+ params: { scope: "identify email" },
152
+ },
153
+ token: "https://discord.com/api/oauth2/token",
154
+ userinfo: "https://discord.com/api/users/@me",
155
+ profile(profile) {
156
+ if (profile.avatar === null) {
157
+ const defaultAvatarNumber =
158
+ profile.discriminator === "0"
159
+ ? Number(BigInt(profile.id) >> BigInt(22)) % 6
160
+ : parseInt(profile.discriminator) % 5
161
+ profile.image_url = `https://cdn.discordapp.com/embed/avatars/${defaultAvatarNumber}.png`
162
+ } else {
163
+ const format = profile.avatar.startsWith("a_") ? "gif" : "png"
164
+ profile.image_url = `https://cdn.discordapp.com/avatars/${profile.id}/${profile.avatar}.${format}`
165
+ }
166
+ return {
167
+ id: profile.id,
168
+ name: profile.global_name ?? profile.username,
169
+ email: profile.email,
170
+ image: profile.image_url,
171
+ }
172
+ },
173
+ style: { bg: "#5865F2", text: "#fff" },
174
+ options,
175
+ }
176
+ }
@@ -0,0 +1,122 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>Dribbble</b> integration.</span>
4
+ * <a href="https://dribbble.com">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/dribbble.svg" height="48" width="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/dribbble
10
+ */
11
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js"
12
+
13
+ export interface DribbbleProfile extends Record<string, any> {
14
+ id: number
15
+ name: string
16
+ email: string
17
+ avatar_url: string
18
+ }
19
+
20
+ /**
21
+ *
22
+ * Add Dribbble login to your page.
23
+ *
24
+ * ### Setup
25
+ *
26
+ * #### Callback URL
27
+ * ```
28
+ * https://example.com/api/auth/callback/dribbble
29
+ * ```
30
+ *
31
+ * #### Configuration
32
+ *```ts
33
+ * import { Auth } from "@auth/core"
34
+ * import Dribbble from "@auth/core/providers/dribbble"
35
+ *
36
+ * const request = new Request(origin)
37
+ * const response = await Auth(request, {
38
+ * providers: [
39
+ * Dribbble({
40
+ * clientId: DRIBBBLE_CLIENT_ID,
41
+ * clientSecret: DRIBBBLE_CLIENT_SECRET,
42
+ * }),
43
+ * ],
44
+ * })
45
+ * ```
46
+ *
47
+ * ### Resources
48
+ *
49
+ * - [Dribbble API](https://developer.dribbble.com)
50
+ * - [Dribbble OAuth](https://developer.dribbble.com/v2/oauth/)
51
+ * - [Dribbble Applications](https://dribbble.com/account/applications/new)
52
+ *
53
+ * ### Notes
54
+ *
55
+ * By default, Auth.js assumes that the GitHub provider is
56
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
57
+ *
58
+ * :::tip
59
+ *
60
+ * The Dribbble provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/dribbble.ts).
61
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
62
+ *
63
+ * :::
64
+ *
65
+ * :::info **Disclaimer**
66
+ *
67
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
68
+ *
69
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
70
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
71
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
72
+ *
73
+ * :::
74
+ *
75
+ * :::tip
76
+ * You can optionally set the scope to `public upload` for more advanced scenarios. If omitted, the default `public` scope will be used for authentication purposes.
77
+ * :::
78
+ */
79
+
80
+ export default function Dribbble<P extends DribbbleProfile>(
81
+ options: OAuthUserConfig<P> & {
82
+ /**
83
+ * Reference: https://developer.dribbble.com/v2/oauth/#scopes
84
+ *
85
+ * For the purposes of NextAuth.js `upload`-only scope makes no sense,
86
+ * therefore it is excluded from suggested values. Treated by Dribbble as `public` when omitted.
87
+ *
88
+ * @default public
89
+ */
90
+ scope?: "public" | "public upload"
91
+ }
92
+ ): OAuthConfig<P> {
93
+ return {
94
+ id: "dribbble",
95
+ name: "Dribbble",
96
+ type: "oauth",
97
+
98
+ authorization: {
99
+ url: "https://dribbble.com/oauth/authorize",
100
+ params: { scope: options.scope },
101
+ },
102
+
103
+ token: "https://dribbble.com/oauth/token",
104
+ userinfo: "https://api.dribbble.com/v2/user",
105
+
106
+ profile(profile) {
107
+ return {
108
+ id: profile.id.toString(),
109
+ name: profile.name,
110
+ email: profile.email,
111
+ image: profile.avatar_url,
112
+ }
113
+ },
114
+
115
+ style: {
116
+ text: "#fff",
117
+ bg: "#000",
118
+ },
119
+
120
+ options,
121
+ }
122
+ }
@@ -0,0 +1,102 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>Dropbox</b> integration.</span>
4
+ * <a href="https://dropbox.com/">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/dropbox.svg" height="48" width="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/dropbox
10
+ */
11
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js"
12
+
13
+ /**
14
+ * Add Dropbox login to your page.
15
+ *
16
+ * ### Setup
17
+ *
18
+ * #### Callback URL
19
+ * ```
20
+ * https://example.com/api/auth/callback/dropbox
21
+ * ```
22
+ *
23
+ * #### Configuration
24
+ *```ts
25
+ * import { Auth } from "@auth/core"
26
+ * import Dropbox from "@auth/core/providers/dropbox"
27
+ *
28
+ * const request = new Request(origin)
29
+ * const response = await Auth(request, {
30
+ * providers: [
31
+ * Dropbox({
32
+ * clientId: DROPBOX_CLIENT_ID,
33
+ * clientSecret: DROPBOX_CLIENT_SECRET,
34
+ * }),
35
+ * ],
36
+ * })
37
+ * ```
38
+ *
39
+ * ### Resources
40
+ *
41
+ * - [Dropbox OAuth documentation](https://developers.dropbox.com/oauth-guide)
42
+ *
43
+ * ### Notes
44
+ *
45
+ * By default, Auth.js assumes that the Dropbox provider is
46
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
47
+ *
48
+ * :::tip
49
+ *
50
+ * The Dropbox provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/dropbox.ts).
51
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
52
+ *
53
+ * :::
54
+ *
55
+ * :::info **Disclaimer**
56
+ *
57
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
58
+ *
59
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
60
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
61
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
62
+ *
63
+ * :::
64
+ */
65
+ export default function Dropbox(
66
+ options: OAuthUserConfig<Record<string, any>>
67
+ ): OAuthConfig<Record<string, any>> {
68
+ return {
69
+ id: "dropbox",
70
+ name: "Dropbox",
71
+ type: "oauth",
72
+ authorization: {
73
+ url: "https://www.dropbox.com/oauth2/authorize",
74
+ params: {
75
+ token_access_type: "offline",
76
+ scope: "account_info.read",
77
+ },
78
+ },
79
+ token: "https://api.dropboxapi.com/oauth2/token",
80
+ userinfo: {
81
+ url: "https://api.dropboxapi.com/2/users/get_current_account",
82
+ async request({ tokens, provider }) {
83
+ return await fetch(provider.userinfo?.url as URL, {
84
+ method: "POST",
85
+ headers: {
86
+ Authorization: `Bearer ${tokens.access_token}`,
87
+ },
88
+ }).then(async (res) => await res.json())
89
+ },
90
+ },
91
+ profile(profile) {
92
+ return {
93
+ id: profile.account_id,
94
+ name: profile.name.display_name,
95
+ email: profile.email,
96
+ image: profile.profile_photo_url,
97
+ }
98
+ },
99
+ style: { brandColor: "#0061fe" },
100
+ options,
101
+ }
102
+ }
@@ -0,0 +1,101 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>DuendeIdentityServer6</b> integration.</span>
4
+ * <a href="https://docs.duendesoftware.com/identityserver/v6">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/duende-identity-server6.svg" height="48" width="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/duende-identity-server6
10
+ */
11
+ import type { OAuthConfig, OAuthUserConfig } from "./oauth.js"
12
+
13
+ export interface DuendeISUser extends Record<string, any> {
14
+ email: string
15
+ id: string
16
+ name: string
17
+ verified: boolean
18
+ }
19
+
20
+ /**
21
+ * Add DuendeIdentityServer6 login to your page.
22
+ *
23
+ * ### Setup
24
+ *
25
+ * #### Callback URL
26
+ * ```
27
+ * https://example.com/api/auth/callback/duende-identity-server6
28
+ * ```
29
+ *
30
+ * #### Configuration
31
+ *```ts
32
+ * import { Auth } from "@auth/core"
33
+ * import DuendeIdentityServer6 from "@auth/core/providers/duende-identity-server6"
34
+ *
35
+ * const request = new Request(origin)
36
+ * const response = await Auth(request, {
37
+ * providers: [
38
+ * DuendeIdentityServer6({
39
+ * clientId: DIS6_CLIENT_ID,
40
+ * clientSecret: DIS6_CLIENT_SECRET,
41
+ * issuer: DIS6_ISSUER,
42
+ * }),
43
+ * ],
44
+ * })
45
+ * ```
46
+ *
47
+ * ### Resources
48
+ *
49
+ * - [DuendeIdentityServer6 documentation](https://docs.duendesoftware.com/identityserver/v6)
50
+ *
51
+ * ### Notes
52
+ *
53
+ *
54
+ * ## Demo IdentityServer
55
+ *
56
+ * The configuration below is for the demo server at https://demo.duendesoftware.com/
57
+ *
58
+ * If you want to try it out, you can copy and paste the configuration below.
59
+ *
60
+ * You can sign in to the demo service with either <b>bob/bob</b> or <b>alice/alice</b>.
61
+ *
62
+ * ```ts
63
+ * import DuendeIdentityServer6 from "@auth/core/providers/duende-identity-server6"
64
+ * providers: [
65
+ * DuendeIdentityServer6({
66
+ * clientId: "interactive.confidential",
67
+ * clientSecret: "secret",
68
+ * issuer: "https://demo.duendesoftware.com",
69
+ * })
70
+ * ]
71
+ * ```
72
+ * By default, Auth.js assumes that the DuendeIdentityServer6 provider is
73
+ * based on the [Open ID Connect](https://openid.net/specs/openid-connect-core-1_0.html) specification.
74
+ *
75
+ * :::tip
76
+ *
77
+ * The DuendeIdentityServer6 provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/duende-identity-server6.ts).
78
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
79
+ *
80
+ * :::
81
+ *
82
+ * :::info **Disclaimer**
83
+ *
84
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
85
+ *
86
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
87
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
88
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
89
+ *
90
+ * :::
91
+ */
92
+ export default function DuendeIdentityServer6<P extends DuendeISUser>(
93
+ options: OAuthUserConfig<P>
94
+ ): OAuthConfig<P> {
95
+ return {
96
+ id: "duende-identity-server6",
97
+ name: "DuendeIdentityServer6",
98
+ type: "oidc",
99
+ options,
100
+ }
101
+ }
@@ -0,0 +1,60 @@
1
+ import type { CommonProviderOptions } from "./index.js"
2
+ import type { Awaitable, Theme } from "../types.js"
3
+ export type { EmailProviderId } from "./provider-types.js"
4
+
5
+ // TODO: Kepts for backwards compatibility
6
+ // Remove this import and encourage users
7
+ // to import it from @auth/core/providers/nodemailer directly
8
+ import Nodemailer from "./nodemailer.js"
9
+ import type { NodemailerConfig, NodemailerUserConfig } from "./nodemailer.js"
10
+
11
+ /**
12
+ * @deprecated
13
+ *
14
+ * Import this provider from the `providers/nodemailer` submodule instead of `providers/email`.
15
+ *
16
+ * To log in with nodemailer, change `signIn("email")` to `signIn("nodemailer")`
17
+ */
18
+ export default function Email(config: NodemailerUserConfig): NodemailerConfig {
19
+ return {
20
+ ...Nodemailer(config),
21
+ id: "email",
22
+ name: "Email",
23
+ }
24
+ }
25
+
26
+ // TODO: Rename to Token provider
27
+ // when started working on https://github.com/nextauthjs/next-auth/discussions/1465
28
+ export type EmailProviderType = "email"
29
+
30
+ export type EmailProviderSendVerificationRequestParams = {
31
+ identifier: string
32
+ url: string
33
+ expires: Date
34
+ provider: EmailConfig
35
+ token: string
36
+ theme: Theme
37
+ request: Request
38
+ }
39
+
40
+ export interface EmailConfig extends CommonProviderOptions {
41
+ id: string
42
+ type: "email"
43
+ name: string
44
+ from?: string
45
+ maxAge?: number
46
+ sendVerificationRequest: (
47
+ params: EmailProviderSendVerificationRequestParams
48
+ ) => Awaitable<void>
49
+ /** Used to hash the verification token. */
50
+ secret?: string
51
+ /** Used with HTTP-based email providers. */
52
+ apiKey?: string
53
+ /** Used with SMTP-based email providers. */
54
+ server?: NodemailerConfig["server"]
55
+ generateVerificationToken?: () => Awaitable<string>
56
+ normalizeIdentifier?: (identifier: string) => string
57
+ options?: EmailUserConfig
58
+ }
59
+
60
+ export type EmailUserConfig = Omit<Partial<EmailConfig>, "options" | "type">
@@ -0,0 +1,105 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#f05537", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>Eventbrite</b> integration.</span>
4
+ * <a href="https://www.eventbrite.com">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/eventbrite.svg" height="48" width="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/eventbrite
10
+ */
11
+
12
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js"
13
+
14
+ /**
15
+ * @see https://www.eventbrite.com/platform/api#/reference/user/retrieve-your-user/retrieve-your-user
16
+ */
17
+ export interface EventbriteProfile extends Record<string, any> {
18
+ id: string
19
+ name: string
20
+ first_name: string
21
+ last_name: string
22
+ emails: { email: string; verified: boolean; primary: boolean }[]
23
+ image_id: string
24
+ }
25
+
26
+ /**
27
+ * Add Eventbrite login to your page and make requests to [Eventbrite APIs](https://www.eventbrite.com/platform/api).
28
+ *
29
+ * ### Setup
30
+ *
31
+ * #### Callback URL
32
+ * ```
33
+ * https://example.com/api/auth/callback/eventbrite
34
+ * ```
35
+ *
36
+ * #### Configuration
37
+ * ```ts
38
+ * import { Auth } from "@auth/core"
39
+ * import Eventbrite from "@auth/core/providers/eventbrite"
40
+ *
41
+ * const request = new Request(origin)
42
+ * const response = await Auth(request, {
43
+ * providers: [Eventbrite({ clientId: EVENTBRITE_CLIENT_ID, clientSecret: EVENTBRITE_CLIENT_SECRET })],
44
+ * })
45
+ * ```
46
+ *
47
+ * ### Resources
48
+ *
49
+ * - [Eventbrite OAuth documentation](https://www.eventbrite.com/platform/api#/introduction/authentication)
50
+ * - [Eventbrite App Management](https://www.eventbrite.com/account-settings/apps)
51
+ * - [Learn more about OAuth](https://authjs.dev/concepts/oauth)
52
+ * - [Source code](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/eventbrite.ts)
53
+ *
54
+ * ### Notes
55
+ *
56
+ * By default, Auth.js assumes that the Eventbrite provider is
57
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
58
+ *
59
+ * :::tip
60
+ *
61
+ * The Eventbrite provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/eventbrite.ts).
62
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
63
+ *
64
+ * :::
65
+ *
66
+ * :::info **Disclaimer**
67
+ *
68
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
69
+ *
70
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
71
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
72
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
73
+ *
74
+ * :::
75
+ */
76
+ export default function Eventbrite<P extends EventbriteProfile>(
77
+ config: OAuthUserConfig<P>
78
+ ): OAuthConfig<P> {
79
+ return {
80
+ id: "eventbrite",
81
+ name: "Eventbrite",
82
+ type: "oauth",
83
+ authorization: {
84
+ url: "https://www.eventbrite.com/oauth/authorize",
85
+ params: { scope: "user.profile" },
86
+ },
87
+ token: "https://www.eventbrite.com/oauth/token",
88
+ userinfo: "https://www.eventbriteapi.com/v3/users/me/",
89
+ profile(profile) {
90
+ return {
91
+ id: profile.id,
92
+ name: profile.name,
93
+ email: profile.emails.find((e) => e.primary)?.email,
94
+ image: profile.image_id
95
+ ? `https://img.evbuc.com/https%3A%2F%2Fcdn.evbuc.com%2Fimages%2F${profile.image_id}%2F1%2Foriginal.jpg`
96
+ : null,
97
+ }
98
+ },
99
+ client: {
100
+ token_endpoint_auth_method: "client_secret_post",
101
+ },
102
+ style: { bg: "#f05537", text: "#fff" },
103
+ options: config,
104
+ }
105
+ }