@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,120 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>Pipedrive</b> integration.</span>
4
+ * <a href="https://www.pipedrive.com/">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/pipedrive.svg" height="48" />
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/pipedrive
10
+ */
11
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js"
12
+
13
+ export interface PipedriveProfile extends Record<string, any> {
14
+ success: boolean
15
+ data: {
16
+ id: number
17
+ name: string
18
+ default_currency?: string
19
+ locale?: string
20
+ lang?: number
21
+ email: string
22
+ phone?: string
23
+ activated?: boolean
24
+ last_login?: Date
25
+ created?: Date
26
+ modified?: Date
27
+ signup_flow_variation?: string
28
+ has_created_company?: boolean
29
+ is_admin?: number
30
+ active_flag?: boolean
31
+ timezone_name?: string
32
+ timezone_offset?: string
33
+ role_id?: number
34
+ icon_url?: string
35
+ is_you?: boolean
36
+ company_id?: number
37
+ company_name?: string
38
+ company_domain?: string
39
+ company_country?: string
40
+ company_industry?: string
41
+ language?: {
42
+ language_code?: string
43
+ country_code?: string
44
+ }
45
+ }
46
+ }
47
+
48
+ /**
49
+ * Add Pipedrive login to your page.
50
+ *
51
+ * ### Setup
52
+ *
53
+ * #### Callback URL
54
+ * ```
55
+ * https://example.com/api/auth/callback/pipedrive
56
+ * ```
57
+ *
58
+ * #### Configuration
59
+ *```ts
60
+ * import { Auth } from "@auth/core"
61
+ * import Pipedrive from "@auth/core/providers/pipedrive"
62
+ *
63
+ * const request = new Request(origin)
64
+ * const response = await Auth(request, {
65
+ * providers: [
66
+ * Pipedrive({
67
+ * clientId: PIPEDRIVE_CLIENT_ID,
68
+ * clientSecret: PIPEDRIVE_CLIENT_SECRET,
69
+ * }),
70
+ * ],
71
+ * })
72
+ * ```
73
+ *
74
+ * ### Resources
75
+ *
76
+ * - [Pipedrive OAuth documentation](https://pipedrive.readme.io/docs/marketplace-oauth-authorization)
77
+ *
78
+ * ### Notes
79
+ *
80
+ * By default, Auth.js assumes that the Pipedrive provider is
81
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
82
+ *
83
+ * :::tip
84
+ *
85
+ * The Pipedrive provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/pipedrive.ts).
86
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
87
+ *
88
+ * :::
89
+ *
90
+ * :::info **Disclaimer**
91
+ *
92
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
93
+ *
94
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
95
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
96
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
97
+ *
98
+ * :::
99
+ */
100
+ export default function Pipedrive<P extends PipedriveProfile>(
101
+ options: OAuthUserConfig<P>
102
+ ): OAuthConfig<P> {
103
+ return {
104
+ id: "pipedrive",
105
+ name: "Pipedrive",
106
+ type: "oauth",
107
+ authorization: "https://oauth.pipedrive.com/oauth/authorize",
108
+ token: "https://oauth.pipedrive.com/oauth/token",
109
+ userinfo: "https://api.pipedrive.com/users/me",
110
+ profile: ({ data: profile }) => {
111
+ return {
112
+ id: profile.id.toString(),
113
+ name: profile.name,
114
+ email: profile.email,
115
+ image: profile.icon_url,
116
+ }
117
+ },
118
+ options,
119
+ }
120
+ }
@@ -0,0 +1,38 @@
1
+ import type { EmailConfig, EmailUserConfig } from "./index.js"
2
+ import { html, text } from "../lib/utils/email.js"
3
+
4
+ /** @todo Document this */
5
+ export default function Postmark(config: EmailUserConfig): EmailConfig {
6
+ return {
7
+ id: "postmark",
8
+ type: "email",
9
+ name: "Postmark",
10
+ from: "Auth.js <no-reply@authjs.dev>",
11
+ maxAge: 24 * 60 * 60,
12
+ async sendVerificationRequest(params) {
13
+ const { identifier: to, provider, url, theme } = params
14
+ const { host } = new URL(url)
15
+ if (!provider.apiKey) throw new TypeError("Missing Postmark API Key")
16
+ const res = await fetch("https://api.postmarkapp.com/email", {
17
+ method: "POST",
18
+ headers: {
19
+ Accept: "application/json",
20
+ "Content-Type": "application/json",
21
+ "X-Postmark-Server-Token": provider.apiKey,
22
+ },
23
+ body: JSON.stringify({
24
+ From: provider.from,
25
+ To: to,
26
+ Subject: `Sign in to ${host}`,
27
+ TextBody: text({ url, host }),
28
+ HtmlBody: html({ url, host, theme }),
29
+ MessageStream: "outbound",
30
+ }),
31
+ })
32
+
33
+ if (!res.ok)
34
+ throw new Error("Postmark error: " + JSON.stringify(await res.json()))
35
+ },
36
+ options: config,
37
+ }
38
+ }
@@ -0,0 +1,107 @@
1
+
2
+ // THIS FILE IS AUTOGENERATED. DO NOT EDIT.
3
+ export type OAuthProviderId =
4
+ | "42-school"
5
+ | "apple"
6
+ | "asgardeo"
7
+ | "atlassian"
8
+ | "auth0"
9
+ | "authentik"
10
+ | "azure-ad-b2c"
11
+ | "azure-ad"
12
+ | "azure-devops"
13
+ | "bankid-no"
14
+ | "battlenet"
15
+ | "beyondidentity"
16
+ | "bitbucket"
17
+ | "box"
18
+ | "boxyhq-saml"
19
+ | "bungie"
20
+ | "click-up"
21
+ | "cognito"
22
+ | "coinbase"
23
+ | "concept2"
24
+ | "descope"
25
+ | "discord"
26
+ | "dribbble"
27
+ | "dropbox"
28
+ | "duende-identity-server6"
29
+ | "eventbrite"
30
+ | "eveonline"
31
+ | "facebook"
32
+ | "faceit"
33
+ | "figma"
34
+ | "foursquare"
35
+ | "freshbooks"
36
+ | "frontegg"
37
+ | "fusionauth"
38
+ | "github"
39
+ | "gitlab"
40
+ | "google"
41
+ | "hubspot"
42
+ | "huggingface"
43
+ | "identity-server4"
44
+ | "instagram"
45
+ | "kakao"
46
+ | "keycloak"
47
+ | "kinde"
48
+ | "line"
49
+ | "linkedin"
50
+ | "logto"
51
+ | "loops"
52
+ | "mailchimp"
53
+ | "mailru"
54
+ | "mastodon"
55
+ | "mattermost"
56
+ | "medium"
57
+ | "microsoft-entra-id"
58
+ | "naver"
59
+ | "netlify"
60
+ | "netsuite"
61
+ | "nextcloud"
62
+ | "notion"
63
+ | "okta"
64
+ | "onelogin"
65
+ | "ory-hydra"
66
+ | "osso"
67
+ | "osu"
68
+ | "passage"
69
+ | "patreon"
70
+ | "ping-id"
71
+ | "pinterest"
72
+ | "pipedrive"
73
+ | "reddit"
74
+ | "roblox"
75
+ | "salesforce"
76
+ | "simplelogin"
77
+ | "slack"
78
+ | "spotify"
79
+ | "strava"
80
+ | "threads"
81
+ | "tiktok"
82
+ | "todoist"
83
+ | "trakt"
84
+ | "twitch"
85
+ | "twitter"
86
+ | "united-effects"
87
+ | "vipps"
88
+ | "vk"
89
+ | "webex"
90
+ | "wechat"
91
+ | "wikimedia"
92
+ | "wordpress"
93
+ | "workos"
94
+ | "yandex"
95
+ | "zitadel"
96
+ | "zoho"
97
+ | "zoom"
98
+
99
+ export type EmailProviderId =
100
+ | "email"
101
+ | "forwardemail"
102
+ | "mailgun"
103
+ | "nodemailer"
104
+ | "passkey"
105
+ | "postmark"
106
+ | "resend"
107
+ | "sendgrid"
@@ -0,0 +1,104 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>Reddit</b> integration.</span>
4
+ * <a href="https://www.reddit.com/">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/reddit.svg" height="48" />
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/reddit
10
+ */
11
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js"
12
+
13
+ /**
14
+ * Add Reddit login to your page.
15
+ *
16
+ * ### Setup
17
+ *
18
+ * #### Callback URL
19
+ * ```
20
+ * https://example.com/api/auth/callback/reddit
21
+ * ```
22
+ *
23
+ * #### Configuration
24
+ *```ts
25
+ * import { Auth } from "@auth/core"
26
+ * import Reddit from "@auth/core/providers/reddit"
27
+ *
28
+ * const request = new Request(origin)
29
+ * const response = await Auth(request, {
30
+ * providers: [
31
+ * Reddit({ clientId: REDDIT_CLIENT_ID, clientSecret: REDDIT_CLIENT_SECRET }),
32
+ * ],
33
+ * })
34
+ * ```
35
+ *
36
+ * ### Resources
37
+ *
38
+ * - [Reddit API documentation](https://www.reddit.com/dev/api/)
39
+ * - [Reddit app console](https://www.reddit.com/prefs/apps/ )
40
+ *
41
+ * ### Notes
42
+ *
43
+ * By default, Auth.js assumes that the Reddit provider is
44
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
45
+ *
46
+ * :::danger
47
+ *
48
+ * Reddit requires authorization every time you go through their page.
49
+ * Only allows one callback URL per Client ID / Client Secret.
50
+ *
51
+ * :::
52
+ *
53
+ * :::tip
54
+ *
55
+ * This Provider template only has a one hour access token to it and only has the "identity" scope. If you want to get a refresh token as well you must follow this:
56
+ *```ts
57
+ * providers: [
58
+ * Reddit({
59
+ * clientId: process.env.REDDIT_CLIENT_ID,
60
+ * clientSecret: process.env.REDDIT_CLIENT_SECRET,
61
+ * authorization: {
62
+ * params: {
63
+ * duration: 'permanent',
64
+ * },
65
+ * },
66
+ * }),
67
+ * ]
68
+ * ```
69
+ * :::
70
+ *
71
+ * :::tip
72
+ *
73
+ * The Reddit provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/reddit.ts).
74
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
75
+ *
76
+ * :::
77
+ *
78
+ * :::info **Disclaimer**
79
+ *
80
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
81
+ *
82
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
83
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
84
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
85
+ *
86
+ * :::
87
+ */
88
+ export default function Reddit(
89
+ config: OAuthUserConfig<Record<string, any>>
90
+ ): OAuthConfig<Record<string, any>> {
91
+ return {
92
+ id: "reddit",
93
+ name: "Reddit",
94
+ type: "oauth",
95
+ authorization: "https://www.reddit.com/api/v1/authorize?scope=identity",
96
+ token: "https://www.reddit.com/api/v1/access_token",
97
+ userinfo: "https://oauth.reddit.com/api/v1/me",
98
+ checks: ["state"],
99
+ style: {
100
+ brandColor: "#FF4500",
101
+ },
102
+ options: config,
103
+ }
104
+ }
@@ -0,0 +1,35 @@
1
+ import type { EmailConfig, EmailUserConfig } from "./index.js"
2
+ import { html, text } from "../lib/utils/email.js"
3
+
4
+ /** @todo Document this */
5
+ export default function Resend(config: EmailUserConfig): EmailConfig {
6
+ return {
7
+ id: "resend",
8
+ type: "email",
9
+ name: "Resend",
10
+ from: "Auth.js <no-reply@authjs.dev>",
11
+ maxAge: 24 * 60 * 60,
12
+ async sendVerificationRequest(params) {
13
+ const { identifier: to, provider, url, theme } = params
14
+ const { host } = new URL(url)
15
+ const res = await fetch("https://api.resend.com/emails", {
16
+ method: "POST",
17
+ headers: {
18
+ Authorization: `Bearer ${provider.apiKey}`,
19
+ "Content-Type": "application/json",
20
+ },
21
+ body: JSON.stringify({
22
+ from: provider.from,
23
+ to,
24
+ subject: `Sign in to ${host}`,
25
+ html: html({ url, host, theme }),
26
+ text: text({ url, host }),
27
+ }),
28
+ })
29
+
30
+ if (!res.ok)
31
+ throw new Error("Resend error: " + JSON.stringify(await res.json()))
32
+ },
33
+ options: config,
34
+ }
35
+ }
@@ -0,0 +1,94 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>Roblox</b> integration.</span>
4
+ * <a href="https://roblox.com/">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/roblox.svg" height="48" width="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/roblox
10
+ */
11
+ import type { OIDCUserConfig, OIDCConfig } from "./index.js"
12
+
13
+ /**
14
+ * Corresponds to the user structure documented here:
15
+ * https://create.roblox.com/docs/cloud/reference/oauth2 (Example User with Profile Scope)
16
+ */
17
+ export interface RobloxProfile extends Record<string, any> {
18
+ /* Roblox user id */
19
+ sub: string
20
+
21
+ /* Roblox display name */
22
+ name: string
23
+
24
+ /* Roblox display name */
25
+ nickname: string
26
+
27
+ /* Roblox username */
28
+ preferred_username: string
29
+
30
+ /* Creation time of the Roblox account as a Unix timestamp. */
31
+ created_at: number
32
+
33
+ /* Roblox account profile URL */
34
+ profile: string
35
+
36
+ /* Roblox avatar headshot image. Can be null if the avatar headshot image hasn't yet been generated or has been moderated */
37
+ picture: string | null
38
+ }
39
+
40
+ /**
41
+ * Add Roblox login to your page.
42
+ *
43
+ * ### Setup
44
+ *
45
+ * #### Callback URL
46
+ * ```
47
+ * https://example.com/api/auth/callback/roblox
48
+ * ```
49
+ *
50
+ * #### Configuration
51
+ *```ts
52
+ * import { Auth } from "@auth/core"
53
+ * import Roblox from "@auth/providers/roblox"
54
+ *
55
+ * const request = new Request(origin)
56
+ * const response = await Auth(request, {
57
+ * providers: [
58
+ * Roblox({
59
+ * clientId: AUTH_ROBLOX_ID,
60
+ * clientSecret: AUTH_ROBLOX_SECRET,
61
+ * }),
62
+ * ],
63
+ * })
64
+ * ```
65
+ *
66
+ * ### Resources
67
+ *
68
+ * - [Roblox OAuth documentation](https://create.roblox.com/docs/cloud/open-cloud/oauth2-overview)
69
+ * - [Roblox OAuth apps](https://create.roblox.com/dashboard/credentials?activeTab=OAuthTab)
70
+ *
71
+ * :::info **Disclaimer**
72
+ *
73
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
74
+ *
75
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
76
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
77
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
78
+ *
79
+ * :::
80
+ */
81
+ export default function Roblox(
82
+ options: OIDCUserConfig<RobloxProfile>
83
+ ): OIDCConfig<RobloxProfile> {
84
+ return {
85
+ id: "roblox",
86
+ name: "Roblox",
87
+ type: "oidc",
88
+ authorization: { params: { scope: "openid profile" } },
89
+ issuer: "https://apis.roblox.com/oauth/",
90
+ checks: ["pkce", "state"],
91
+ style: { bg: "#5865F2", text: "#fff" },
92
+ options,
93
+ }
94
+ }
@@ -0,0 +1,73 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#00a1e0", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>Salesforce</b> integration.</span>
4
+ * <a href="https://www.salesforce.com/ap/?ir=1">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/salesforce.svg" height="48" />
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/salesforce
10
+ */
11
+ import type { OIDCConfig, OIDCUserConfig } from "./index.js"
12
+
13
+ export interface SalesforceProfile extends Record<string, any> {
14
+ sub: string
15
+ nickname: string
16
+ email: string
17
+ picture: string
18
+ }
19
+
20
+ /**
21
+ * ### Setup
22
+ *
23
+ * #### Callback URL
24
+ * ```
25
+ * https://example.com/api/auth/callback/salesforce
26
+ * ```
27
+ *
28
+ * #### Configuration
29
+ * ```ts
30
+ * import { Auth } from "@auth/core"
31
+ * import Salesforce from "@auth/core/providers/salesforce"
32
+ *
33
+ * const request = new Request(origin)
34
+ * const response = await Auth(request, {
35
+ * providers: [
36
+ * Salesforce({
37
+ * clientId: AUTH_SALESFORCE_ID,
38
+ * clientSecret: AUTH_SALESFORCE_SECRET,
39
+ * }),
40
+ * ],
41
+ * })
42
+ * ```
43
+ *
44
+ * ### Resources
45
+ *
46
+ * - [Auth0 docs](https://auth0.com/docs/authenticate)
47
+ *
48
+ * ### Notes
49
+ *
50
+ * The Salesforce provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/salesforce.ts). To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
51
+ *
52
+ * ## Help
53
+ *
54
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
55
+ *
56
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
57
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
58
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
59
+ */
60
+ export default function Salesforce(
61
+ options: OIDCUserConfig<SalesforceProfile>
62
+ ): OIDCConfig<SalesforceProfile> {
63
+ return {
64
+ id: "salesforce",
65
+ name: "Salesforce",
66
+ type: "oidc",
67
+ issuer: "https://login.salesforce.com",
68
+ idToken: false,
69
+ checks: ["pkce", "state", "nonce"],
70
+ style: { bg: "#00a1e0" },
71
+ options,
72
+ }
73
+ }
@@ -0,0 +1,36 @@
1
+ import type { EmailConfig, EmailUserConfig } from "./index.js"
2
+ import { html, text } from "../lib/utils/email.js"
3
+
4
+ /** @todo Document this */
5
+ export default function SendGrid(config: EmailUserConfig): EmailConfig {
6
+ return {
7
+ id: "sendgrid",
8
+ type: "email",
9
+ name: "SendGrid",
10
+ from: "Auth.js <no-reply@authjs.dev>",
11
+ maxAge: 24 * 60 * 60,
12
+ async sendVerificationRequest(params) {
13
+ const { identifier: to, provider, url, theme } = params
14
+ const { host } = new URL(url)
15
+ const res = await fetch("https://api.sendgrid.com/v3/mail/send", {
16
+ method: "POST",
17
+ headers: {
18
+ Authorization: `Bearer ${provider.apiKey}`,
19
+ "Content-Type": "application/json",
20
+ },
21
+ body: JSON.stringify({
22
+ personalizations: [{ to: [{ email: to }] }],
23
+ from: { email: provider.from },
24
+ subject: `Sign in to ${host}`,
25
+ content: [
26
+ { type: "text/plain", value: text({ url, host }) },
27
+ { type: "text/html", value: html({ url, host, theme }) },
28
+ ],
29
+ }),
30
+ })
31
+ // REVIEW: Clean up error handling
32
+ if (!res.ok) throw new Error("Sendgrid error: " + (await res.text()))
33
+ },
34
+ options: config,
35
+ }
36
+ }