@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,65 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>WordPress</b> integration.</span>
4
+ * <a href="https://wordpress.com/">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/wordpress.svg" height="48" />
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/wordpress
10
+ */
11
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js";
12
+ /**
13
+ * Add WordPress login to your page.
14
+ *
15
+ * ### Setup
16
+ *
17
+ * #### Callback URL
18
+ * ```
19
+ * https://example.com/api/auth/callback/wordpress
20
+ * ```
21
+ *
22
+ * #### Configuration
23
+ *```ts
24
+ * import { Auth } from "@auth/core"
25
+ * import WordPress from "@auth/core/providers/wordpress"
26
+ *
27
+ * const request = new Request(origin)
28
+ * const response = await Auth(request, {
29
+ * providers: [
30
+ * WordPress({
31
+ * clientId: WORKPRESS_CLIENT_ID,
32
+ * clientSecret: WORKPRESS_CLIENT_SECRET,
33
+ * }),
34
+ * ],
35
+ * })
36
+ * ```
37
+ *
38
+ * ### Resources
39
+ *
40
+ * - [WordPress OAuth documentation](https://developer.wordpress.com/docs/oauth2/)
41
+ *
42
+ * ### Notes
43
+ *
44
+ * By default, Auth.js assumes that the WordPress provider is
45
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
46
+ *
47
+ * :::tip
48
+ *
49
+ * The WordPress provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/wordpress.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 WordPress(config: OAuthUserConfig<Record<string, any>>): OAuthConfig<Record<string, any>>;
65
+ //# sourceMappingURL=wordpress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wordpress.d.ts","sourceRoot":"","sources":["../src/providers/wordpress.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAC/B,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAC3C,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAmBlC"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Add WordPress login to your page.
3
+ *
4
+ * ### Setup
5
+ *
6
+ * #### Callback URL
7
+ * ```
8
+ * https://example.com/api/auth/callback/wordpress
9
+ * ```
10
+ *
11
+ * #### Configuration
12
+ *```ts
13
+ * import { Auth } from "@auth/core"
14
+ * import WordPress from "@auth/core/providers/wordpress"
15
+ *
16
+ * const request = new Request(origin)
17
+ * const response = await Auth(request, {
18
+ * providers: [
19
+ * WordPress({
20
+ * clientId: WORKPRESS_CLIENT_ID,
21
+ * clientSecret: WORKPRESS_CLIENT_SECRET,
22
+ * }),
23
+ * ],
24
+ * })
25
+ * ```
26
+ *
27
+ * ### Resources
28
+ *
29
+ * - [WordPress OAuth documentation](https://developer.wordpress.com/docs/oauth2/)
30
+ *
31
+ * ### Notes
32
+ *
33
+ * By default, Auth.js assumes that the WordPress provider is
34
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
35
+ *
36
+ * :::tip
37
+ *
38
+ * The WordPress provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/wordpress.ts).
39
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
40
+ *
41
+ * :::
42
+ *
43
+ * :::info **Disclaimer**
44
+ *
45
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
46
+ *
47
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
48
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
49
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
50
+ *
51
+ * :::
52
+ */
53
+ export default function WordPress(config) {
54
+ return {
55
+ id: "wordpress",
56
+ name: "WordPress.com",
57
+ type: "oauth",
58
+ authorization: "https://public-api.wordpress.com/oauth2/authorize?scope=auth",
59
+ token: "https://public-api.wordpress.com/oauth2/token",
60
+ userinfo: "https://public-api.wordpress.com/rest/v1/me",
61
+ profile(profile) {
62
+ return {
63
+ id: profile.ID,
64
+ name: profile.display_name,
65
+ email: profile.email,
66
+ image: profile.avatar_URL,
67
+ };
68
+ },
69
+ options: config,
70
+ };
71
+ }
@@ -0,0 +1,154 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>WorkOS</b> integration.</span>
4
+ * <a href="https://workos.com/">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/workos.svg" height="48" />
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/workos
10
+ */
11
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js";
12
+ /**
13
+ * - {@link https://workos.com/docs/reference/sso/profile | The returned profile object}
14
+ */
15
+ export interface WorkOSProfile extends Record<string, any> {
16
+ object: string;
17
+ id: string;
18
+ organization_id: string;
19
+ connection_id: string;
20
+ connection_type: string;
21
+ idp_id: string;
22
+ email: string;
23
+ first_name: string;
24
+ last_name: string;
25
+ raw_attributes: {
26
+ id: string;
27
+ email: string;
28
+ lastName: string;
29
+ firstName: string;
30
+ picture: string;
31
+ };
32
+ }
33
+ /**
34
+ * Add WorkOS login to your page.
35
+ *
36
+ * ### Setup
37
+ *
38
+ * #### Callback URL
39
+ * ```
40
+ * https://example.com/api/auth/callback/workos
41
+ * ```
42
+ *
43
+ * #### Configuration
44
+ *```ts
45
+ * import { Auth } from "@auth/core"
46
+ * import WorkOS from "@auth/core/providers/workos"
47
+ *
48
+ * const request = new Request(origin)
49
+ * const response = await Auth(request, {
50
+ * providers: [
51
+ * WorkOS({
52
+ * clientId: WORKOS_CLIENT_ID,
53
+ * clientSecret: WORKOS_CLIENT_SECRET,
54
+ * issuer: WORKOS_ISSUER,
55
+ * }),
56
+ * ],
57
+ * })
58
+ * ```
59
+ *
60
+ * ### Resources
61
+ *
62
+ * - [WorkOS SSO OAuth documentation](https://workos.com/docs/reference/sso)
63
+ *
64
+ * ### Notes
65
+ *
66
+ * By default, Auth.js assumes that the WorkOS provider is
67
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
68
+ *
69
+ * WorkOS is not an identity provider itself, but, rather, a bridge to multiple single sign-on (SSO) providers.
70
+ * As a result, we need to make some additional changes to authenticate users using WorkOS.
71
+ *
72
+ * In order to sign a user in using WorkOS, we need to specify which WorkOS Connection to use.
73
+ * A common way to do this is to collect the user's email address and extract the domain. This can be done using a custom login page.
74
+ * To add a custom login page, you can use the `pages` option:
75
+ * ```ts
76
+ * pages: {
77
+ * signIn: "/auth/signin",
78
+ * }
79
+ * ```
80
+ * We can then add a custom login page that displays an input where the user can enter their email address.
81
+ * We then extract the domain from the user's email address and pass it to the `authorizationParams` parameter on the `signIn` function:
82
+ * ```js title="pages/auth/signin.js"
83
+ * import { useState } from "react"
84
+ * import { getProviders, signIn } from "next-auth/react"
85
+ *
86
+ * export default function SignIn({ providers }) {
87
+ * const [email, setEmail] = useState("")
88
+ *
89
+ * return (
90
+ * <>
91
+ * {Object.values(providers).map((provider) => {
92
+ * if (provider.id === "workos") {
93
+ * return (
94
+ * <div key={provider.id}>
95
+ * <input
96
+ * type="email"
97
+ * value={email}
98
+ * placeholder="Email"
99
+ * onChange={(event) => setEmail(event.target.value)}
100
+ * />
101
+ * <button
102
+ * onClick={() =>
103
+ * signIn(provider.id, undefined, {
104
+ * domain: email.split("@")[1],
105
+ * })
106
+ * }
107
+ * >
108
+ * Sign in with SSO
109
+ * </button>
110
+ * </div>
111
+ * )
112
+ * }
113
+ *
114
+ * return (
115
+ * <div key={provider.id}>
116
+ * <button onClick={() => signIn(provider.id)}>
117
+ * Sign in with {provider.name}
118
+ * </button>
119
+ * </div>
120
+ * )
121
+ * })}
122
+ * </>
123
+ * )
124
+ * }
125
+ *
126
+ * export async function getServerSideProps(context) {
127
+ * const providers = await getProviders()
128
+ * return {
129
+ * props: { providers },
130
+ * }
131
+ * }
132
+ * ```
133
+ *
134
+ * :::tip
135
+ *
136
+ * The WorkOS provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/workos.ts).
137
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
138
+ *
139
+ * :::
140
+ *
141
+ * :::info **Disclaimer**
142
+ *
143
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
144
+ *
145
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
146
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
147
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
148
+ *
149
+ * :::
150
+ */
151
+ export default function WorkOS<P extends WorkOSProfile>(options: OAuthUserConfig<P> & {
152
+ connection?: string;
153
+ }): OAuthConfig<P>;
154
+ //# sourceMappingURL=workos.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workos.d.ts","sourceRoot":"","sources":["../src/providers/workos.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC9D;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IACxD,MAAM,EAAE,MAAM,CAAA;IACd,EAAE,EAAE,MAAM,CAAA;IACV,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE;QACd,EAAE,EAAE,MAAM,CAAA;QACV,KAAK,EAAE,MAAM,CAAA;QACb,QAAQ,EAAE,MAAM,CAAA;QAChB,SAAS,EAAE,MAAM,CAAA;QACjB,OAAO,EAAE,MAAM,CAAA;KAChB,CAAA;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqHG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,CAAC,SAAS,aAAa,EACpD,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GACpD,WAAW,CAAC,CAAC,CAAC,CA0BhB"}
@@ -0,0 +1,143 @@
1
+ /**
2
+ * Add WorkOS login to your page.
3
+ *
4
+ * ### Setup
5
+ *
6
+ * #### Callback URL
7
+ * ```
8
+ * https://example.com/api/auth/callback/workos
9
+ * ```
10
+ *
11
+ * #### Configuration
12
+ *```ts
13
+ * import { Auth } from "@auth/core"
14
+ * import WorkOS from "@auth/core/providers/workos"
15
+ *
16
+ * const request = new Request(origin)
17
+ * const response = await Auth(request, {
18
+ * providers: [
19
+ * WorkOS({
20
+ * clientId: WORKOS_CLIENT_ID,
21
+ * clientSecret: WORKOS_CLIENT_SECRET,
22
+ * issuer: WORKOS_ISSUER,
23
+ * }),
24
+ * ],
25
+ * })
26
+ * ```
27
+ *
28
+ * ### Resources
29
+ *
30
+ * - [WorkOS SSO OAuth documentation](https://workos.com/docs/reference/sso)
31
+ *
32
+ * ### Notes
33
+ *
34
+ * By default, Auth.js assumes that the WorkOS provider is
35
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
36
+ *
37
+ * WorkOS is not an identity provider itself, but, rather, a bridge to multiple single sign-on (SSO) providers.
38
+ * As a result, we need to make some additional changes to authenticate users using WorkOS.
39
+ *
40
+ * In order to sign a user in using WorkOS, we need to specify which WorkOS Connection to use.
41
+ * A common way to do this is to collect the user's email address and extract the domain. This can be done using a custom login page.
42
+ * To add a custom login page, you can use the `pages` option:
43
+ * ```ts
44
+ * pages: {
45
+ * signIn: "/auth/signin",
46
+ * }
47
+ * ```
48
+ * We can then add a custom login page that displays an input where the user can enter their email address.
49
+ * We then extract the domain from the user's email address and pass it to the `authorizationParams` parameter on the `signIn` function:
50
+ * ```js title="pages/auth/signin.js"
51
+ * import { useState } from "react"
52
+ * import { getProviders, signIn } from "next-auth/react"
53
+ *
54
+ * export default function SignIn({ providers }) {
55
+ * const [email, setEmail] = useState("")
56
+ *
57
+ * return (
58
+ * <>
59
+ * {Object.values(providers).map((provider) => {
60
+ * if (provider.id === "workos") {
61
+ * return (
62
+ * <div key={provider.id}>
63
+ * <input
64
+ * type="email"
65
+ * value={email}
66
+ * placeholder="Email"
67
+ * onChange={(event) => setEmail(event.target.value)}
68
+ * />
69
+ * <button
70
+ * onClick={() =>
71
+ * signIn(provider.id, undefined, {
72
+ * domain: email.split("@")[1],
73
+ * })
74
+ * }
75
+ * >
76
+ * Sign in with SSO
77
+ * </button>
78
+ * </div>
79
+ * )
80
+ * }
81
+ *
82
+ * return (
83
+ * <div key={provider.id}>
84
+ * <button onClick={() => signIn(provider.id)}>
85
+ * Sign in with {provider.name}
86
+ * </button>
87
+ * </div>
88
+ * )
89
+ * })}
90
+ * </>
91
+ * )
92
+ * }
93
+ *
94
+ * export async function getServerSideProps(context) {
95
+ * const providers = await getProviders()
96
+ * return {
97
+ * props: { providers },
98
+ * }
99
+ * }
100
+ * ```
101
+ *
102
+ * :::tip
103
+ *
104
+ * The WorkOS provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/workos.ts).
105
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
106
+ *
107
+ * :::
108
+ *
109
+ * :::info **Disclaimer**
110
+ *
111
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
112
+ *
113
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
114
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
115
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
116
+ *
117
+ * :::
118
+ */
119
+ export default function WorkOS(options) {
120
+ const { issuer = "https://api.workos.com/", connection = "" } = options;
121
+ const connectionParams = new URLSearchParams({ connection });
122
+ return {
123
+ id: "workos",
124
+ name: "WorkOS",
125
+ type: "oauth",
126
+ authorization: `${issuer}sso/authorize?${connectionParams}`,
127
+ token: `${issuer}sso/token`,
128
+ client: {
129
+ token_endpoint_auth_method: "client_secret_post",
130
+ },
131
+ userinfo: `${issuer}sso/profile`,
132
+ profile(profile) {
133
+ return {
134
+ id: profile.id,
135
+ name: `${profile.first_name} ${profile.last_name}`,
136
+ email: profile.email,
137
+ image: profile.raw_attributes.picture ?? null,
138
+ };
139
+ },
140
+ style: { bg: "#6363f1", text: "#fff" },
141
+ options,
142
+ };
143
+ }
@@ -0,0 +1,131 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#ffcc00", display: "flex", justifyContent: "space-between", color: "#000", padding: 16}}>
3
+ * <span>Built-in <b>Yandex</b> integration.</span>
4
+ * <a href="https://yandex.com">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/yandex.svg" height="48" width="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/yandex
10
+ */
11
+ import { OAuthConfig, OAuthUserConfig } from "./oauth.js";
12
+ /**
13
+ * - {@link https://yandex.com/dev/id/doc/en/user-information | Getting information about the user}
14
+ * - {@link https://yandex.com/dev/id/doc/en/user-information#email-access | Access to email address}
15
+ * - {@link https://yandex.com/dev/id/doc/en/user-information#avatar-access | Access to the user's profile picture}
16
+ * - {@link https://yandex.com/dev/id/doc/en/user-information#birthday-access | Access to the date of birth}
17
+ * - {@link https://yandex.com/dev/id/doc/en/user-information#name-access | Access to login, first name, last name, and gender}
18
+ * - {@link https://yandex.com/dev/id/doc/en/user-information#phone-access | Access to the phone number}
19
+ */
20
+ export interface YandexProfile {
21
+ /** User's Yandex login. */
22
+ login: string;
23
+ /** Yandex user's unique ID. */
24
+ id: string;
25
+ /**
26
+ * The ID of the app the OAuth token in the request was issued for.
27
+ * Available in the [app properties](https://oauth.yandex.com/). To open properties, click the app name.
28
+ */
29
+ client_id: string;
30
+ /** Authorized Yandex user ID. It is formed on the Yandex side based on the `client_id` and `user_id` pair. */
31
+ psuid: string;
32
+ /** An array of the user's email addresses. Currently only includes the default email address. */
33
+ emails?: string[];
34
+ /** The default email address for contacting the user. */
35
+ default_email?: string;
36
+ /**
37
+ * Indicates that the stub (profile picture that is automatically assigned when registering in Yandex)
38
+ * ID is specified in the `default_avatar_id` field.
39
+ */
40
+ is_avatar_empty?: boolean;
41
+ /**
42
+ * ID of the Yandex user's profile picture.
43
+ * Format for downloading user avatars: `https://avatars.yandex.net/get-yapic/<default_avatar_id>/<size>`
44
+ * @example "https://avatars.yandex.net/get-yapic/31804/BYkogAC6AoB17bN1HKRFAyKiM4-1/islands-200"
45
+ * Available sizes:
46
+ * `islands-small`: 28×28 pixels.
47
+ * `islands-34`: 34×34 pixels.
48
+ * `islands-middle`: 42×42 pixels.
49
+ * `islands-50`: 50×50 pixels.
50
+ * `islands-retina-small`: 56×56 pixels.
51
+ * `islands-68`: 68×68 pixels.
52
+ * `islands-75`: 75×75 pixels.
53
+ * `islands-retina-middle`: 84×84 pixels.
54
+ * `islands-retina-50`: 100×100 pixels.
55
+ * `islands-200`: 200×200 pixels.
56
+ */
57
+ default_avatar_id?: string;
58
+ /**
59
+ * The user's date of birth in YYYY-MM-DD format.
60
+ * Unknown elements of the date are filled in with zeros, such as: `0000-12-23`.
61
+ * If the user's date of birth is unknow, birthday will be `null`
62
+ */
63
+ birthday?: string | null;
64
+ first_name?: string;
65
+ last_name?: string;
66
+ display_name?: string;
67
+ /**
68
+ * The first and last name that the user specified in Yandex ID.
69
+ * Non-Latin characters of the first and last names are presented in Unicode format.
70
+ */
71
+ real_name?: string;
72
+ /** User's gender. `null` Stands for unknown or unspecified gender. Will be `undefined` if not provided by Yandex. */
73
+ sex?: "male" | "female" | null;
74
+ /**
75
+ * The default phone number for contacting the user.
76
+ * The API can exclude the user's phone number from the response at its discretion.
77
+ * The field contains the following parameters:
78
+ * id: Phone number ID.
79
+ * number: The user's phone number.
80
+ */
81
+ default_phone?: {
82
+ id: number;
83
+ number: string;
84
+ };
85
+ }
86
+ /**
87
+ * Add Yandex login to your page.
88
+ *
89
+ * ### Setup
90
+ *
91
+ * #### Callback URL
92
+ * ```
93
+ * https://example.com/api/auth/callback/yandex
94
+ * ```
95
+ *
96
+ * #### Configuration
97
+ * ```ts
98
+ * import { Auth } from "@auth/core"
99
+ * import Yandex from "@auth/core/providers/yandex"
100
+ *
101
+ * const request = new Request(origin)
102
+ * const response = await Auth(request, {
103
+ * providers: [
104
+ * Yandex({ clientId: YANDEX_CLIENT_ID, clientSecret: YANDEX_CLIENT_SECRET }),
105
+ * ],
106
+ * })
107
+ * ```
108
+ *
109
+ * ### Resources
110
+ *
111
+ * - [Yandex - Creating an OAuth app](https://yandex.com/dev/id/doc/en/register-client#create)
112
+ * - [Yandex - Manage OAuth apps](https://oauth.yandex.com/)
113
+ * - [Yandex - OAuth documentation](https://yandex.com/dev/id/doc/en/)
114
+ * - [Learn more about OAuth](https://authjs.dev/concepts/oauth)
115
+ * - [Source code](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/yandex.ts)
116
+ *
117
+ *:::tip
118
+ * The Yandex provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/yandex.ts).
119
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
120
+ * :::
121
+ *
122
+ * :::info **Disclaimer**
123
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
124
+ *
125
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
126
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
127
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
128
+ * :::
129
+ */
130
+ export default function Yandex(options: OAuthUserConfig<YandexProfile>): OAuthConfig<YandexProfile>;
131
+ //# sourceMappingURL=yandex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yandex.d.ts","sourceRoot":"","sources":["../src/providers/yandex.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEzD;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB,8GAA8G;IAC9G,KAAK,EAAE,MAAM,CAAA;IACb,iGAAiG;IACjG,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;;;;;;;;;;;;;;OAeG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qHAAqH;IACrH,GAAG,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAA;IAC9B;;;;;;OAMG;IACH,aAAa,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAC/C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAC5B,OAAO,EAAE,eAAe,CAAC,aAAa,CAAC,GACtC,WAAW,CAAC,aAAa,CAAC,CA2B5B"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#ffcc00", display: "flex", justifyContent: "space-between", color: "#000", padding: 16}}>
3
+ * <span>Built-in <b>Yandex</b> integration.</span>
4
+ * <a href="https://yandex.com">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/yandex.svg" height="48" width="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/yandex
10
+ */
11
+ /**
12
+ * Add Yandex login to your page.
13
+ *
14
+ * ### Setup
15
+ *
16
+ * #### Callback URL
17
+ * ```
18
+ * https://example.com/api/auth/callback/yandex
19
+ * ```
20
+ *
21
+ * #### Configuration
22
+ * ```ts
23
+ * import { Auth } from "@auth/core"
24
+ * import Yandex from "@auth/core/providers/yandex"
25
+ *
26
+ * const request = new Request(origin)
27
+ * const response = await Auth(request, {
28
+ * providers: [
29
+ * Yandex({ clientId: YANDEX_CLIENT_ID, clientSecret: YANDEX_CLIENT_SECRET }),
30
+ * ],
31
+ * })
32
+ * ```
33
+ *
34
+ * ### Resources
35
+ *
36
+ * - [Yandex - Creating an OAuth app](https://yandex.com/dev/id/doc/en/register-client#create)
37
+ * - [Yandex - Manage OAuth apps](https://oauth.yandex.com/)
38
+ * - [Yandex - OAuth documentation](https://yandex.com/dev/id/doc/en/)
39
+ * - [Learn more about OAuth](https://authjs.dev/concepts/oauth)
40
+ * - [Source code](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/yandex.ts)
41
+ *
42
+ *:::tip
43
+ * The Yandex provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/yandex.ts).
44
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
45
+ * :::
46
+ *
47
+ * :::info **Disclaimer**
48
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
49
+ *
50
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
51
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
52
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
53
+ * :::
54
+ */
55
+ export default function Yandex(options) {
56
+ return {
57
+ id: "yandex",
58
+ name: "Yandex",
59
+ type: "oauth",
60
+ /** @see [Data access](https://yandex.com/dev/id/doc/en/register-client#access) */
61
+ authorization: "https://oauth.yandex.ru/authorize?scope=login:info+login:email+login:avatar",
62
+ token: "https://oauth.yandex.ru/token",
63
+ userinfo: "https://login.yandex.ru/info?format=json",
64
+ profile(profile) {
65
+ return {
66
+ id: profile.id,
67
+ name: profile.display_name ?? profile.real_name ?? profile.first_name,
68
+ email: profile.default_email ?? profile.emails?.[0] ?? null,
69
+ image: !profile.is_avatar_empty && profile.default_avatar_id
70
+ ? `https://avatars.yandex.net/get-yapic/${profile.default_avatar_id}/islands-200`
71
+ : null,
72
+ };
73
+ },
74
+ style: {
75
+ bg: "#ffcc00",
76
+ text: "#000",
77
+ },
78
+ options,
79
+ };
80
+ }