@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,102 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#5077c5", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>Beyond Identity</b> integration.</span>
4
+ * <a href="https://www.beyondidentity.com/">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/beyondidentity.svg" height="48" width="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/beyondidentity
10
+ */
11
+
12
+ import type { OIDCConfig, OIDCUserConfig } from "./index.js"
13
+
14
+ /** @see [Beyond Identity Developer Docs](https://developer.beyondidentity.com/) */
15
+ export interface BeyondIdentityProfile {
16
+ /** The user's unique identifier. */
17
+ sub: string
18
+ /** The user's full name. */
19
+ name: string
20
+ /** The user's preferred username. */
21
+ preferred_username: string
22
+ /** The user's email address. */
23
+ email: string
24
+ }
25
+
26
+ /**
27
+ * Add Beyond Identity login to your page.
28
+ *
29
+ * ### Setup
30
+ *
31
+ * #### Callback URL
32
+ * ```
33
+ * https://example.com/api/auth/callback/beyondidentity
34
+ * ```
35
+ *
36
+ * #### Configuration
37
+ * ```ts
38
+ * import { Auth } from "@auth/core"
39
+ * import BeyondIdentity from "@auth/core/providers/beyondidentity"
40
+ *
41
+ * const request = new Request(origin)
42
+ * const response = await Auth(request, {
43
+ * providers: [
44
+ * BeyondIdentity({
45
+ * clientId: BEYOND_IDENTITY_CLIENT_ID,
46
+ * clientSecret: BEYOND_IDENTITY_CLIENT_SECRET,
47
+ * issuer: BEYOND_IDENTITY_ISSUER,
48
+ * }),
49
+ * ],
50
+ * })
51
+ * ```
52
+ *
53
+ * ### Resources
54
+ *
55
+ * - [Beyond Identity Developer Docs](https://developer.beyondidentity.com/)
56
+ *
57
+ * ### Notes
58
+ *
59
+ * By default, Auth.js assumes that the BeyondIdentity provider is
60
+ * based on the [OIDC](https://openid.net/specs/openid-connect-core-1_0.html) specification.
61
+ *
62
+ * :::tip
63
+ *
64
+ * The BeyondIdentity provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/beyondidentity.ts).
65
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
66
+ *
67
+ * :::
68
+ *
69
+ * :::info **Disclaimer**
70
+ *
71
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
72
+ *
73
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
74
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
75
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
76
+ *
77
+ * :::
78
+ */
79
+
80
+ export default function BeyondIdentity(
81
+ config: OIDCUserConfig<BeyondIdentityProfile>
82
+ ): OIDCConfig<BeyondIdentityProfile> {
83
+ return {
84
+ id: "beyondidentity",
85
+ name: "Beyond Identity",
86
+ type: "oidc",
87
+ profile(profile) {
88
+ return {
89
+ id: profile.sub,
90
+ email: profile.email,
91
+ name: profile.name,
92
+ image: null,
93
+ preferred_username: profile.preferred_username,
94
+ }
95
+ },
96
+ style: {
97
+ bg: "#5077c5",
98
+ text: "#fff",
99
+ },
100
+ options: config,
101
+ }
102
+ }
@@ -0,0 +1,122 @@
1
+ /**
2
+ * <div class="provider" style={{ display: "flex", justifyContent: "space-between", color: "#fff" }}>
3
+ * <span>Built-in <b>Bitbucket</b> integration.</span>
4
+ * <a href="https://bitbucket.org">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/bitbucket.svg" height="48" width="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/bitbucket
10
+ */
11
+
12
+ import { OAuthConfig, OAuthUserConfig } from "./index.js"
13
+
14
+ type LiteralUnion<T extends U, U = string> = T | (U & Record<never, never>)
15
+
16
+ /**
17
+ * @see https://developer.atlassian.com/cloud/bitbucket/rest/api-group-users/#api-user-get
18
+ */
19
+ export interface BitbucketProfile {
20
+ display_name: string
21
+ links: Record<
22
+ LiteralUnion<
23
+ "self" | "avatar" | "repositories" | "snippets" | "html" | "hooks"
24
+ >,
25
+ { href?: string }
26
+ >
27
+ created_on: string
28
+ type: string
29
+ uuid: string
30
+ has_2fa_enabled: boolean | null
31
+ username: string
32
+ is_staff: boolean
33
+ account_id: string
34
+ nickname: string
35
+ account_status: string
36
+ location: string | null
37
+ }
38
+
39
+ /**
40
+ *
41
+ * ### Setup
42
+ *
43
+ * #### Callback URL
44
+ *
45
+ * ```ts
46
+ * https://example.com/api/auth/callback/bitbucket
47
+ * ```
48
+ *
49
+ * #### Configuration
50
+ *
51
+ * ```ts
52
+ * import { Auth } from "@auth/core"
53
+ * import Bitbucket from "@auth/core/providers/bitbucket"
54
+ *
55
+ * const request = new Request(origin)
56
+ * const response = await Auth(request, {
57
+ * providers: [
58
+ * Bitbucket({
59
+ * clientId: process.env.BITBUCKET_CLIENT_ID,
60
+ * clientSecret: process.env.BITBUCKET_CLIENT_SECRET,
61
+ * })
62
+ * ],
63
+ * })
64
+ * ```
65
+ *
66
+ * #### Resources
67
+ *
68
+ * - [Using OAuth on Bitbucket Cloud](https://support.atlassian.com/bitbucket-cloud/docs/use-oauth-on-bitbucket-cloud/)
69
+ * - [Bitbucket REST API Authentication](https://developer.atlassian.com/cloud/bitbucket/rest/intro/#authentication)
70
+ * - [Bitbucket REST API Users](https://developer.atlassian.com/cloud/bitbucket/rest/api-group-users/#api-group-users)
71
+ *
72
+ * #### Notes
73
+ *
74
+ * By default, Auth.js assumes that the Bitbucket provider is
75
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
76
+ *
77
+ * :::tip
78
+ *
79
+ * The Bitbucket provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/bitbucket.ts).
80
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
81
+ *
82
+ * :::
83
+ *
84
+ * :::info **Disclaimer**
85
+ *
86
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
87
+ *
88
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
89
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
90
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
91
+ *
92
+ * :::
93
+ */
94
+ export default function Bitbucket(
95
+ options: OAuthUserConfig<BitbucketProfile>
96
+ ): OAuthConfig<BitbucketProfile> {
97
+ return {
98
+ id: "bitbucket",
99
+ name: "Bitbucket",
100
+ type: "oauth",
101
+ authorization: {
102
+ url: "https://bitbucket.org/site/oauth2/authorize",
103
+ params: {
104
+ scope: "account",
105
+ },
106
+ },
107
+ token: "https://bitbucket.org/site/oauth2/access_token",
108
+ userinfo: "https://api.bitbucket.org/2.0/user",
109
+ profile(profile) {
110
+ return {
111
+ name: profile.display_name ?? profile.username,
112
+ id: profile.account_id,
113
+ image: profile.links.avatar?.href,
114
+ }
115
+ },
116
+ options,
117
+ style: {
118
+ text: "#fff",
119
+ bg: "#205081",
120
+ },
121
+ }
122
+ }
@@ -0,0 +1,87 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>Box</b> integration.</span>
4
+ * <a href="https://box.com/">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/box.svg" height="48" width="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/box
10
+ */
11
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js"
12
+
13
+ /**
14
+ * Add Box login to your page.
15
+ *
16
+ * ### Setup
17
+ *
18
+ * #### Callback URL
19
+ * ```
20
+ * https://example.com/api/auth/callback/box
21
+ * ```
22
+ *
23
+ * #### Configuration
24
+ *```ts
25
+ * import { Auth } from "@auth/core"
26
+ * import Box from "@auth/core/providers/box"
27
+ *
28
+ * const request = new Request(origin)
29
+ * const response = await Auth(request, {
30
+ * providers: [
31
+ * Box({ clientId: BOX_CLIENT_ID, clientSecret: BOX_CLIENT_SECRET }),
32
+ * ],
33
+ * })
34
+ * ```
35
+ *
36
+ * ### Resources
37
+ *
38
+ * - [Box developers documentation](https://developer.box.com/reference/)
39
+ * - [Box OAuth documentation](https://developer.box.com/guides/sso-identities-and-app-users/connect-okta-to-app-users/configure-box/)
40
+ *
41
+ * ### Notes
42
+ *
43
+ * By default, Auth.js assumes that the Box provider is
44
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
45
+ *
46
+ * :::tip
47
+ *
48
+ * The Box provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/box.ts).
49
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
50
+ *
51
+ * :::
52
+ *
53
+ * :::info **Disclaimer**
54
+ *
55
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
56
+ *
57
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
58
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
59
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
60
+ *
61
+ * :::
62
+ */
63
+ export default function Box(
64
+ options: OAuthUserConfig<Record<string, any>>
65
+ ): OAuthConfig<Record<string, any>> {
66
+ return {
67
+ id: "box",
68
+ name: "Box",
69
+ type: "oauth",
70
+ authorization: "https://account.box.com/api/oauth2/authorize",
71
+ token: "https://api.box.com/oauth2/token",
72
+ userinfo: "https://api.box.com/2.0/users/me",
73
+ profile(profile) {
74
+ return {
75
+ id: profile.id,
76
+ name: profile.name,
77
+ email: profile.login,
78
+ image: profile.avatar_url,
79
+ }
80
+ },
81
+ style: {
82
+ bg: "#0075C9",
83
+ text: "#fff",
84
+ },
85
+ options,
86
+ }
87
+ }
@@ -0,0 +1,148 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>BoxyHQ SAML</b> integration.</span>
4
+ * <a href="https://boxyhq.com/">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/boxyhq-saml.svg" height="48" width="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/boxyhq-saml
10
+ */
11
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js"
12
+
13
+ export interface BoxyHQSAMLProfile extends Record<string, any> {
14
+ id: string
15
+ email: string
16
+ firstName?: string
17
+ lastName?: string
18
+ }
19
+
20
+ /**
21
+ * Add BoxyHQ SAML login to your page.
22
+ *
23
+ * BoxyHQ SAML is an open source service that handles the SAML SSO login flow as an OAuth 2.0 flow, abstracting away all the complexities of the SAML protocol. Enable Enterprise single-sign-on in your app with ease.
24
+ *
25
+ * You can deploy BoxyHQ SAML as a separate service or embed it into your app using our NPM library. [Check out the documentation for more details](https://boxyhq.com/docs/jackson/deploy)
26
+ *
27
+ * ### Setup
28
+ *
29
+ * #### Callback URL
30
+ * ```
31
+ * https://example.com/api/auth/callback/boxyhq-saml
32
+ * ```
33
+ *
34
+ * #### Configuration
35
+ *
36
+ * For OAuth 2.0 Flow:
37
+ *```ts
38
+ * import { Auth } from "@auth/core"
39
+ * import BoxyHQ from "@auth/core/providers/boxyhq-saml"
40
+ *
41
+ * const request = new Request(origin)
42
+ * const response = await Auth(request, {
43
+ * providers: [
44
+ * BoxyHQ({
45
+ * authorization: { params: { scope: "" } }, // This is needed for OAuth 2.0 flow, otherwise default to openid
46
+ * clientId: BOXYHQ_SAML_CLIENT_ID,
47
+ * clientSecret: BOXYHQ_SAML_CLIENT_SECRET,
48
+ * issuer: BOXYHQ_SAML_ISSUER,
49
+ * }),
50
+ * ],
51
+ * })
52
+ * ```
53
+ * For OIDC Flow:
54
+ *
55
+ *```ts
56
+ * import { Auth } from "@auth/core"
57
+ * import BoxyHQ from "@auth/core/providers/boxyhq-saml"
58
+ *
59
+ * const request = new Request(origin)
60
+ * const response = await Auth(request, {
61
+ * providers: [
62
+ * BoxyHQ({
63
+ * clientId: BOXYHQ_SAML_CLIENT_ID,
64
+ * clientSecret: BOXYHQ_SAML_CLIENT_SECRET,
65
+ * issuer: BOXYHQ_SAML_ISSUER,
66
+ * }),
67
+ * ],
68
+ * })
69
+ * ```
70
+ *
71
+ * ### Resources
72
+ *
73
+ * - [BoxyHQ OAuth documentation](https://example.com)
74
+ *
75
+ * ## Configuration
76
+ *
77
+ * SAML login requires a configuration for every tenant of yours. One common method is to use the domain for an email address to figure out which tenant they belong to. You can also use a unique tenant ID (string) from your backend for this, typically some kind of account or organization ID.
78
+ *
79
+ * Check out the [documentation](https://boxyhq.com/docs/jackson/saml-flow#2-saml-config-api) for more details.
80
+ *
81
+ *
82
+ * On the client side you'll need to pass additional parameters `tenant` and `product` to the `signIn` function. This will allow BoxyHQL SAML to figure out the right SAML configuration and take your user to the right SAML Identity Provider to sign them in.
83
+ *
84
+ * ```tsx
85
+ * import { signIn } from "auth";
86
+ * ...
87
+ *
88
+ * // Map your users's email to a tenant and product
89
+ * const tenant = email.split("@")[1];
90
+ * const product = 'my_awesome_product';
91
+ * ...
92
+ * <Button
93
+ * onClick={async (event) => {
94
+ * event.preventDefault();
95
+ *
96
+ * signIn("boxyhq-saml", {}, { tenant, product });
97
+ * }}>
98
+ * ...
99
+ * ```
100
+ * ### Notes
101
+ *
102
+ * By default, Auth.js assumes that the BoxyHQ provider is
103
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
104
+ *
105
+ * :::tip
106
+ *
107
+ * The BoxyHQ provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/boxyhq-saml.ts).
108
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
109
+ *
110
+ * :::
111
+ *
112
+ * :::info **Disclaimer**
113
+ *
114
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
115
+ *
116
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
117
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
118
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
119
+ *
120
+ * :::
121
+ */
122
+ export default function SAMLJackson<P extends BoxyHQSAMLProfile>(
123
+ options: OAuthUserConfig<P>
124
+ ): OAuthConfig<P> {
125
+ return {
126
+ id: "boxyhq-saml",
127
+ name: "BoxyHQ SAML",
128
+ type: "oauth",
129
+ authorization: {
130
+ url: `${options.issuer}/api/oauth/authorize`,
131
+ params: { provider: "saml" },
132
+ },
133
+ token: `${options.issuer}/api/oauth/token`,
134
+ userinfo: `${options.issuer}/api/oauth/userinfo`,
135
+ profile(profile) {
136
+ return {
137
+ id: profile.id,
138
+ email: profile.email,
139
+ name: [profile.firstName, profile.lastName].filter(Boolean).join(" "),
140
+ image: null,
141
+ }
142
+ },
143
+ style: {
144
+ brandColor: "#25c2a0",
145
+ },
146
+ options,
147
+ }
148
+ }
@@ -0,0 +1,192 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>Bungie</b> integration.</span>
4
+ * <a href="https://bungie.net/">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/bungie.svg" height="48" width="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/bungie
10
+ */
11
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js"
12
+
13
+ /**
14
+ * Add Bungie login to your page.
15
+ *
16
+ * ### Setup
17
+ *
18
+ * #### Callback URL
19
+ * ```
20
+ * https://example.com/api/auth/callback/bungie
21
+ * ```
22
+ *
23
+ * #### Configuration
24
+ *```ts
25
+ * import { Auth } from "@auth/core"
26
+ * import Bungie from "@auth/core/providers/bungie"
27
+ *
28
+ * const request = new Request(origin)
29
+ * const response = await Auth(request, {
30
+ * providers: [
31
+ * Bungie({
32
+ * clientId: BUNGIE_CLIENT_ID,
33
+ * clientSecret: BUNGIE_CLIENT_SECRET,
34
+ * headers: { "X-API-Key": BUNGIE_API_KEY },
35
+ * }),
36
+ * ],
37
+ * })
38
+ * ```
39
+ *
40
+ * ### Resources
41
+ *
42
+ * - [Bungie OAuth documentation](https://github.com/Bungie-net/api/wiki/OAuth-Documentation)
43
+ *
44
+ * ## Configuration
45
+ *
46
+ * :::tip
47
+ * Bungie require all sites to run HTTPS (including local development instances).
48
+ * :::
49
+ *
50
+ * :::tip
51
+ * Bungie doesn't allow you to use localhost as the website URL, instead you need to use https://127.0.0.1:3000
52
+ * :::
53
+ *
54
+ * Navigate to https://www.bungie.net/en/Application and fill in the required details:
55
+ *
56
+ * - Application name
57
+ * - Application Status
58
+ * - Website
59
+ * - OAuth Client Type
60
+ * - Confidential
61
+ * - Redirect URL
62
+ * - https://localhost:3000/api/auth/callback/bungie
63
+ * - Scope
64
+ * - `Access items like your Bungie.net notifications, memberships, and recent Bungie.Net forum activity.`
65
+ * - Origin Header
66
+ *
67
+ * The following guide may be helpful:
68
+ *
69
+ * - [How to setup localhost with HTTPS with a Next.js app](https://medium.com/@anMagpie/secure-your-local-development-server-with-https-next-js-81ac6b8b3d68)
70
+ *
71
+ * #@example server
72
+ *
73
+ * You will need to edit your host file and point your site at `127.0.0.1`
74
+ *
75
+ * [How to edit my host file?](https://phoenixnap.com/kb/how-to-edit-hosts-file-in-windows-mac-or-linux)
76
+ *
77
+ * On Windows (Run PowerShell as administrator)
78
+ *
79
+ * ```ps
80
+ * Add-Content -Path C:\Windows\System32\drivers\etc\hosts -Value "127.0.0.1`tdev.example.com" -Force
81
+ * ```
82
+ *
83
+ * ```
84
+ * 127.0.0.1 dev.example.com
85
+ * ```
86
+ *
87
+ * ### Create certificate
88
+ *
89
+ * Creating a certificate for localhost is easy with openssl. Just put the following command in the terminal. The output will be two files: localhost.key and localhost.crt.
90
+ *
91
+ * ```bash
92
+ * openssl req -x509 -out localhost.crt -keyout localhost.key \
93
+ * -newkey rsa:2048 -nodes -sha256 \
94
+ * -subj "/CN=localhost" -extensions EXT -config <( \
95
+ * printf "[dn]\nCN=localhost\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:localhost\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth")
96
+ * ```
97
+ *
98
+ * :::tip
99
+ * **Windows**
100
+ *
101
+ * The OpenSSL executable is distributed with [Git](https://git-scm.com/download/win]9) for Windows.
102
+ * Once installed you will find the openssl.exe file in `C:/Program Files/Git/mingw64/bin` which you can add to the system PATH environment variable if it’s not already done.
103
+ *
104
+ * Add environment variable `OPENSSL_CONF=C:/Program Files/Git/mingw64/ssl/openssl.cnf`
105
+ *
106
+ * ```bash
107
+ * req -x509 -out localhost.crt -keyout localhost.key \
108
+ * -newkey rsa:2048 -nodes -sha256 \
109
+ * -subj "/CN=localhost"
110
+ * ```
111
+ *
112
+ * :::
113
+ *
114
+ * Create directory `certificates` and place `localhost.key` and `localhost.crt`
115
+ *
116
+ * You can create a `server.js` in the root of your project and run it with `node server.js` to test Sign in with Bungie integration locally:
117
+ *
118
+ * ```js
119
+ * const { createServer } = require("https")
120
+ * const { parse } = require("url")
121
+ * const next = require("next")
122
+ * const fs = require("fs")
123
+ *
124
+ * const dev = process.env.NODE_ENV !== "production"
125
+ * const app = next({ dev })
126
+ * const handle = app.getRequestHandler()
127
+ *
128
+ * const httpsOptions = {
129
+ * key: fs.readFileSync("./certificates/localhost.key"),
130
+ * cert: fs.readFileSync("./certificates/localhost.crt"),
131
+ * }
132
+ *
133
+ * app.prepare().then(() => {
134
+ * createServer(httpsOptions, (req, res) => {
135
+ * const parsedUrl = parse(req.url, true)
136
+ * handle(req, res, parsedUrl)
137
+ * }).listen(3000, (err) => {
138
+ * if (err) throw err
139
+ * console.log("> Ready on https://localhost:3000")
140
+ * })
141
+ * })
142
+ * ```
143
+ *
144
+ *
145
+ * ### Notes
146
+ *
147
+ * By default, Auth.js assumes that the Bungie provider is
148
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
149
+ *
150
+ * :::tip
151
+ *
152
+ * The Bungie provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/bungie.ts).
153
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
154
+ *
155
+ * :::
156
+ *
157
+ * :::info **Disclaimer**
158
+ *
159
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
160
+ *
161
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
162
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
163
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
164
+ *
165
+ * :::
166
+ */
167
+ export default function Bungie(
168
+ options: OAuthUserConfig<Record<string, any>>
169
+ ): OAuthConfig<Record<string, any>> {
170
+ return {
171
+ id: "bungie",
172
+ name: "Bungie",
173
+ type: "oauth",
174
+ authorization: "https://www.bungie.net/en/OAuth/Authorize?reauth=true",
175
+ token: "https://www.bungie.net/platform/app/oauth/token/",
176
+ userinfo:
177
+ "https://www.bungie.net/platform/User/GetBungieAccount/{membershipId}/254/",
178
+ profile(profile) {
179
+ const { bungieNetUser: user } = profile.Response
180
+
181
+ return {
182
+ id: user.membershipId,
183
+ name: user.displayName,
184
+ email: null,
185
+ image: `https://www.bungie.net${
186
+ user.profilePicturePath.startsWith("/") ? "" : "/"
187
+ }${user.profilePicturePath}`,
188
+ }
189
+ },
190
+ options,
191
+ }
192
+ }