@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,117 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>EVEOnline</b> integration.</span>
4
+ * <a href="https://eveonline.com">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/eveonline.svg" height="48" width="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/eveonline
10
+ */
11
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js"
12
+
13
+ export interface EVEOnlineProfile extends Record<string, any> {
14
+ CharacterID: number
15
+ CharacterName: string
16
+ ExpiresOn: string
17
+ Scopes: string
18
+ TokenType: string
19
+ CharacterOwnerHash: string
20
+ IntellectualProperty: string
21
+ }
22
+
23
+ /**
24
+ * Add EveOnline login to your page.
25
+ *
26
+ * ### Setup
27
+ *
28
+ * #### Callback URL
29
+ * ```
30
+ * https://example.com/api/auth/callback/eveonline
31
+ * ```
32
+ *
33
+ * #### Configuration
34
+ *```ts
35
+ * import { Auth } from "@auth/core"
36
+ * import EveOnline from "@auth/core/providers/eveonline"
37
+ *
38
+ * const request = new Request(origin)
39
+ * const response = await Auth(request, {
40
+ * providers: [
41
+ * EveOnline({
42
+ * clientId: EVEONLINE_CLIENT_ID,
43
+ * clientSecret: EVEONLINE_CLIENT_SECRET,
44
+ * }),
45
+ * ],
46
+ * })
47
+ * ```
48
+ *
49
+ * ### Resources
50
+ *
51
+ * - [EveOnline OAuth documentation](https://developers.eveonline.com/blog/article/sso-to-authenticated-calls)
52
+ *
53
+ * ### Notes
54
+ *
55
+ * :::tip
56
+ * When creating your application, make sure to select `Authentication Only` as the connection type.
57
+ * :::
58
+ *
59
+ * :::tip
60
+ * If using JWT for the session, you can add the `CharacterID` to the JWT and session. Example:
61
+ * ```ts
62
+ * options: {
63
+ * jwt: {
64
+ * secret: process.env.JWT_SECRET,
65
+ * },
66
+ * callbacks: {
67
+ * session: async ({ session, token }) => {
68
+ * session.user.id = token.id;
69
+ * return session;
70
+ * }
71
+ * }
72
+ * }
73
+ * ```
74
+ * :::
75
+ * By default, Auth.js assumes that the EveOnline provider is
76
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
77
+ *
78
+ * :::tip
79
+ *
80
+ * The EveOnline provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/eveonline.ts).
81
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
82
+ *
83
+ * :::
84
+ *
85
+ * :::info **Disclaimer**
86
+ *
87
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
88
+ *
89
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
90
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
91
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
92
+ *
93
+ * :::
94
+ */
95
+ export default function EVEOnline<P extends EVEOnlineProfile>(
96
+ options: OAuthUserConfig<P>
97
+ ): OAuthConfig<P> {
98
+ return {
99
+ id: "eveonline",
100
+ name: "EVE Online",
101
+ type: "oauth",
102
+ authorization:
103
+ "https://login.eveonline.com/v2/oauth/authorize?scope=publicData",
104
+ token: "https://login.eveonline.com/v2/oauth/token",
105
+ userinfo: "https://login.eveonline.com/oauth/verify",
106
+ checks: ["state"],
107
+ profile(profile) {
108
+ return {
109
+ id: String(profile.CharacterID),
110
+ name: profile.CharacterName,
111
+ email: null,
112
+ image: `https://image.eveonline.com/Character/${profile.CharacterID}_128.jpg`,
113
+ }
114
+ },
115
+ options,
116
+ }
117
+ }
@@ -0,0 +1,119 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>Facebook</b> integration.</span>
4
+ * <a href="https://facebook.com">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/facebook.svg" height="48" width="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/facebook
10
+ */
11
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js"
12
+
13
+ interface FacebookPictureData {
14
+ url: string
15
+ }
16
+
17
+ interface FacebookPicture {
18
+ data: FacebookPictureData
19
+ }
20
+ export interface FacebookProfile extends Record<string, any> {
21
+ id: string
22
+ picture: FacebookPicture
23
+ }
24
+
25
+ /**
26
+ * Add Facebook login to your page.
27
+ *
28
+ * ### Setup
29
+ *
30
+ * #### Callback URL
31
+ * ```
32
+ * https://example.com/api/auth/callback/facebook
33
+ * ```
34
+ *
35
+ * #### Configuration
36
+ *```ts
37
+ * import { Auth } from "@auth/core"
38
+ * import Facebook from "@auth/core/providers/facebook"
39
+ *
40
+ * const request = new Request(origin)
41
+ * const response = await Auth(request, {
42
+ * providers: [
43
+ * Facebook({
44
+ * clientId: FACEBOOK_CLIENT_ID,
45
+ * clientSecret: FACEBOOK_CLIENT_SECRET,
46
+ * }),
47
+ * ],
48
+ * })
49
+ * ```
50
+ *
51
+ * ### Resources
52
+ *
53
+ * - [Facebook OAuth documentation](https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/)
54
+ *
55
+ * ### Notes
56
+ *
57
+ * :::tip
58
+ * Production applications cannot use localhost URLs to sign in with Facebook. You need to use a dedicated development application in Facebook to use localhost callback URLs.
59
+ * :::
60
+ *
61
+ * :::tip
62
+ * Email address may not be returned for accounts created on mobile.
63
+ * :::
64
+ *
65
+ * By default, Auth.js assumes that the Facebook provider is
66
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
67
+ *
68
+ * :::tip
69
+ *
70
+ * The Facebook provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/facebook.ts).
71
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
72
+ *
73
+ * :::
74
+ *
75
+ * :::info **Disclaimer**
76
+ *
77
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
78
+ *
79
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
80
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
81
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
82
+ *
83
+ * :::
84
+ */
85
+ export default function Facebook<P extends FacebookProfile>(
86
+ options: OAuthUserConfig<P>
87
+ ): OAuthConfig<P> {
88
+ return {
89
+ id: "facebook",
90
+ name: "Facebook",
91
+ type: "oauth",
92
+ authorization: {
93
+ url: "https://www.facebook.com/v19.0/dialog/oauth",
94
+ params: {
95
+ scope: "email",
96
+ },
97
+ },
98
+ token: "https://graph.facebook.com/oauth/access_token",
99
+ userinfo: {
100
+ // https://developers.facebook.com/docs/graph-api/reference/user/#fields
101
+ url: "https://graph.facebook.com/me?fields=id,name,email,picture",
102
+ async request({ tokens, provider }) {
103
+ return await fetch(provider.userinfo?.url as URL, {
104
+ headers: { Authorization: `Bearer ${tokens.access_token}` },
105
+ }).then(async (res) => await res.json())
106
+ },
107
+ },
108
+ profile(profile: P) {
109
+ return {
110
+ id: profile.id,
111
+ name: profile.name,
112
+ email: profile.email,
113
+ image: profile.picture.data.url,
114
+ }
115
+ },
116
+ style: { bg: "#006aff", text: "#fff" },
117
+ options,
118
+ }
119
+ }
@@ -0,0 +1,90 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>FACEIT</b> integration.</span>
4
+ * <a href="https://faceit.com">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/faceit.svg" height="48" width="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/faceit
10
+ */
11
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js"
12
+
13
+ /**
14
+ * Add FACEIT login to your page.
15
+ *
16
+ * ### Setup
17
+ *
18
+ * #### Callback URL
19
+ * ```
20
+ * https://example.com/api/auth/callback/faceit
21
+ * ```
22
+ *
23
+ * #### Configuration
24
+ *```ts
25
+ * import { Auth } from "@auth/core"
26
+ * import FACEIT from "@auth/core/providers/faceit"
27
+ *
28
+ * const request = new Request(origin)
29
+ * const response = await Auth(request, {
30
+ * providers: [
31
+ * FACEIT({ clientId: FACEIT_CLIENT_ID, clientSecret: FACEIT_CLIENT_SECRET }),
32
+ * ],
33
+ * })
34
+ * ```
35
+ *
36
+ * ### Resources
37
+ *
38
+ * - [FACEIT OAuth documentation](https://cdn.faceit.com/third_party/docs/FACEIT_Connect_3.0.pdf)
39
+ *
40
+ * ### Notes
41
+ *
42
+ * Grant type: Authorization Code
43
+ * Scopes to have basic infos (email, nickname, guid and avatar) : openid, email, profile
44
+ * By default, Auth.js assumes that the FACEIT provider is
45
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
46
+ *
47
+ * :::tip
48
+ *
49
+ * The FACEIT provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/faceit.ts).
50
+ * 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
+ * :::
53
+ *
54
+ * :::info **Disclaimer**
55
+ *
56
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
57
+ *
58
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
59
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
60
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
61
+ *
62
+ * :::
63
+ */
64
+ export default function FACEIT(
65
+ options: OAuthUserConfig<Record<string, any>>
66
+ ): OAuthConfig<Record<string, any>> {
67
+ return {
68
+ id: "faceit",
69
+ name: "FACEIT",
70
+ type: "oauth",
71
+ authorization: "https://accounts.faceit.com/accounts?redirect_popup=true",
72
+ // @ts-expect-error - TODO fix this
73
+ headers: {
74
+ Authorization: `Basic ${Buffer.from(
75
+ `${options.clientId}:${options.clientSecret}`
76
+ ).toString("base64")}`,
77
+ },
78
+ token: "https://api.faceit.com/auth/v1/oauth/token",
79
+ userinfo: "https://api.faceit.com/auth/v1/resources/userinfo",
80
+ profile(profile) {
81
+ return {
82
+ id: profile.guid,
83
+ name: profile.name,
84
+ email: profile.email,
85
+ image: profile.picture,
86
+ }
87
+ },
88
+ options,
89
+ }
90
+ }
@@ -0,0 +1,105 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>Figma</b> integration.</span>
4
+ * <a href="https://figma.com/">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/figma.svg" height="48" width="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/figma
10
+ */
11
+ import { OAuth2Config, OAuthUserConfig } from "./index.js"
12
+
13
+ /**
14
+ * @see https://www.figma.com/developers/api#users-types
15
+ */
16
+ interface FigmaProfile {
17
+ id: string
18
+ email: string
19
+ handle: string
20
+ img_url: string
21
+ }
22
+
23
+ /**
24
+ * ### Setup
25
+ *
26
+ * #### Callback URL
27
+ *
28
+ * ```ts
29
+ * https://example.com/api/auth/callback/figma
30
+ * ```
31
+ *
32
+ * #### Configuration
33
+ *
34
+ * ```ts
35
+ * import { Auth } from "@auth/core"
36
+ * import Figma from "@auth/core/providers/figma"
37
+ *
38
+ * const request = new Request(origin)
39
+ * const response = await Auth(request, {
40
+ * providers: [
41
+ * Figma({
42
+ * clientId: process.env.AUTH_FIGMA_ID,
43
+ * clientSecret: process.env.AUTH_FIGMA_SECRET
44
+ * })
45
+ * ],
46
+ * })
47
+ * ```
48
+ *
49
+ * ### Resources
50
+ *
51
+ * - [Using OAuth 2 on Figma](https://www.figma.com/developers/api#oauth2)
52
+ * - [Scopes](https://www.figma.com/developers/api#authentication-scopes)
53
+ *
54
+ * #### Notes
55
+ *
56
+ * By default, Auth.js assumes that the Figma provider is based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
57
+ *
58
+ * :::tip
59
+ *
60
+ * The Figma provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/figma.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
+ export default function Figma(
76
+ options: OAuthUserConfig<FigmaProfile>
77
+ ): OAuth2Config<FigmaProfile> {
78
+ return {
79
+ id: "figma",
80
+ name: "Figma",
81
+ type: "oauth",
82
+ authorization: {
83
+ url: "https://www.figma.com/oauth",
84
+ params: {
85
+ scope: "files:read",
86
+ },
87
+ },
88
+ checks: ["state"],
89
+ token: "https://api.figma.com/v1/oauth/token",
90
+ userinfo: "https://api.figma.com/v1/me",
91
+ profile(profile) {
92
+ return {
93
+ name: profile.handle,
94
+ email: profile.email,
95
+ id: profile.id,
96
+ image: profile.img_url,
97
+ }
98
+ },
99
+ style: {
100
+ text: "#fff",
101
+ bg: "#ff7237",
102
+ },
103
+ options,
104
+ }
105
+ }
@@ -0,0 +1,37 @@
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 ForwardEmail(config: EmailUserConfig): EmailConfig {
6
+ return {
7
+ id: "forwardemail",
8
+ type: "email",
9
+ name: "Forward Email",
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.forwardemail.net/v1/emails", {
16
+ method: "POST",
17
+ headers: {
18
+ Authorization: `Basic ${btoa(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(
32
+ "Forward Email error: " + JSON.stringify(await res.json())
33
+ )
34
+ },
35
+ options: config,
36
+ }
37
+ }
@@ -0,0 +1,105 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>FourSquare</b> integration.</span>
4
+ * <a href="https://foursquare.com">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/foursquare.svg" height="48" width="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/foursquare
10
+ */
11
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js"
12
+
13
+ /**
14
+ * Add FourSquare login to your page.
15
+ *
16
+ * ### Setup
17
+ *
18
+ * #### Callback URL
19
+ * ```
20
+ * https://example.com/api/auth/callback/foursquare
21
+ * ```
22
+ *
23
+ * #### Configuration
24
+ *```ts
25
+ * import { Auth } from "@auth/core"
26
+ * import FourSquare from "@auth/core/providers/foursquare"
27
+ *
28
+ * const request = new Request(origin)
29
+ * const response = await Auth(request, {
30
+ * providers: [
31
+ * FourSquare({
32
+ * clientId: FOURSQUARE_CLIENT_ID,
33
+ * clientSecret: FOURSQUARE_CLIENT_SECRET,
34
+ * }),
35
+ * ],
36
+ * })
37
+ * ```
38
+ *
39
+ * ### Resources
40
+ *
41
+ * - [FourSquare OAuth documentation](https://docs.foursquare.com/developer/reference/authentication)
42
+ *
43
+ * ### Notes
44
+ *
45
+ * By default, Auth.js assumes that the FourSquare provider is
46
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
47
+ *
48
+ * :::warning
49
+ * Foursquare requires an additional apiVersion parameter in YYYYMMDD format, which essentially states "I'm prepared for API changes up to this date".
50
+ * :::
51
+ *
52
+ * :::tip
53
+ *
54
+ * The FourSquare provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/foursquare.ts).
55
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
56
+ *
57
+ * :::
58
+ *
59
+ * :::info **Disclaimer**
60
+ *
61
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
62
+ *
63
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
64
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
65
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
66
+ *
67
+ * :::
68
+ */
69
+ export default function Foursquare(
70
+ options: OAuthUserConfig<Record<string, any>> & { apiVersion?: string }
71
+ ): OAuthConfig<Record<string, any>> {
72
+ const { apiVersion = "20230131" } = options
73
+ return {
74
+ id: "foursquare",
75
+ name: "Foursquare",
76
+ type: "oauth",
77
+ authorization: "https://foursquare.com/oauth2/authenticate",
78
+ token: "https://foursquare.com/oauth2/access_token",
79
+ userinfo: {
80
+ url: `https://api.foursquare.com/v2/users/self?v=${apiVersion}`,
81
+ async request({ tokens, provider }) {
82
+ if (!provider.userinfo) return
83
+
84
+ const url = new URL(provider.userinfo.url)
85
+ url.searchParams.append("oauth_token", tokens.access_token!)
86
+ return fetch(url).then((res) => res.json())
87
+ },
88
+ },
89
+ profile({ response: { user: profile } }) {
90
+ return {
91
+ id: profile.id,
92
+ name: `${profile.firstName} ${profile.lastName}`,
93
+ email: profile.contact.email,
94
+ image: profile.photo
95
+ ? `${profile.photo.prefix}original${profile.photo.suffix}`
96
+ : null,
97
+ }
98
+ },
99
+ style: {
100
+ bg: "#000",
101
+ text: "#fff",
102
+ },
103
+ options,
104
+ }
105
+ }
@@ -0,0 +1,90 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>FreshBooks</b> integration.</span>
4
+ * <a href="https://freshbooks.com">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/freshbooks.svg" height="48" width="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/freshbooks
10
+ */
11
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js"
12
+
13
+ /**
14
+ * Add FreshBooks login to your page.
15
+ *
16
+ * ### Setup
17
+ *
18
+ * #### Callback URL
19
+ * ```
20
+ * https://example.com/api/auth/callback/freshbooks
21
+ * ```
22
+ *
23
+ * #### Configuration
24
+ *```ts
25
+ * import { Auth } from "@auth/core"
26
+ * import FreshBooks from "@auth/core/providers/freshbooks"
27
+ *
28
+ * const request = new Request(origin)
29
+ * const response = await Auth(request, {
30
+ * providers: [
31
+ * FreshBooks({
32
+ * clientId: FRESHBOOKS_CLIENT_ID,
33
+ * clientSecret: FRESHBOOKS_CLIENT_SECRET,
34
+ * }),
35
+ * ],
36
+ * })
37
+ * ```
38
+ *
39
+ * ### Resources
40
+ *
41
+ * - [FreshBooks OAuth documentation](https://www.freshbooks.com/api/authenticating-with-oauth-2-0-on-the-new-freshbooks-api
42
+ )
43
+ *
44
+ * ### Notes
45
+ *
46
+ * By default, Auth.js assumes that the FreshBooks provider is
47
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
48
+ *
49
+ * :::tip
50
+ *
51
+ * The FreshBooks provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/freshbooks.ts).
52
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
53
+ *
54
+ * :::
55
+ *
56
+ * :::info **Disclaimer**
57
+ *
58
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
59
+ *
60
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
61
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
62
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
63
+ *
64
+ * :::
65
+ */
66
+ export default function Freshbooks(
67
+ options: OAuthUserConfig<Record<string, any>>
68
+ ): OAuthConfig<Record<string, any>> {
69
+ return {
70
+ id: "freshbooks",
71
+ name: "Freshbooks",
72
+ type: "oauth",
73
+ authorization: "https://auth.freshbooks.com/service/auth/oauth/authorize",
74
+ token: "https://api.freshbooks.com/auth/oauth/token",
75
+ userinfo: "https://api.freshbooks.com/auth/api/v1/users/me",
76
+ async profile(profile) {
77
+ return {
78
+ id: profile.response.id,
79
+ name: `${profile.response.first_name} ${profile.response.last_name}`,
80
+ email: profile.response.email,
81
+ image: null,
82
+ }
83
+ },
84
+ style: {
85
+ bg: "#0075dd",
86
+ text: "#fff",
87
+ },
88
+ options,
89
+ }
90
+ }