@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,180 @@
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
+ /**
35
+ * Add WorkOS login to your page.
36
+ *
37
+ * ### Setup
38
+ *
39
+ * #### Callback URL
40
+ * ```
41
+ * https://example.com/api/auth/callback/workos
42
+ * ```
43
+ *
44
+ * #### Configuration
45
+ *```ts
46
+ * import { Auth } from "@auth/core"
47
+ * import WorkOS from "@auth/core/providers/workos"
48
+ *
49
+ * const request = new Request(origin)
50
+ * const response = await Auth(request, {
51
+ * providers: [
52
+ * WorkOS({
53
+ * clientId: WORKOS_CLIENT_ID,
54
+ * clientSecret: WORKOS_CLIENT_SECRET,
55
+ * issuer: WORKOS_ISSUER,
56
+ * }),
57
+ * ],
58
+ * })
59
+ * ```
60
+ *
61
+ * ### Resources
62
+ *
63
+ * - [WorkOS SSO OAuth documentation](https://workos.com/docs/reference/sso)
64
+ *
65
+ * ### Notes
66
+ *
67
+ * By default, Auth.js assumes that the WorkOS provider is
68
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
69
+ *
70
+ * WorkOS is not an identity provider itself, but, rather, a bridge to multiple single sign-on (SSO) providers.
71
+ * As a result, we need to make some additional changes to authenticate users using WorkOS.
72
+ *
73
+ * In order to sign a user in using WorkOS, we need to specify which WorkOS Connection to use.
74
+ * 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.
75
+ * To add a custom login page, you can use the `pages` option:
76
+ * ```ts
77
+ * pages: {
78
+ * signIn: "/auth/signin",
79
+ * }
80
+ * ```
81
+ * We can then add a custom login page that displays an input where the user can enter their email address.
82
+ * We then extract the domain from the user's email address and pass it to the `authorizationParams` parameter on the `signIn` function:
83
+ * ```js title="pages/auth/signin.js"
84
+ * import { useState } from "react"
85
+ * import { getProviders, signIn } from "next-auth/react"
86
+ *
87
+ * export default function SignIn({ providers }) {
88
+ * const [email, setEmail] = useState("")
89
+ *
90
+ * return (
91
+ * <>
92
+ * {Object.values(providers).map((provider) => {
93
+ * if (provider.id === "workos") {
94
+ * return (
95
+ * <div key={provider.id}>
96
+ * <input
97
+ * type="email"
98
+ * value={email}
99
+ * placeholder="Email"
100
+ * onChange={(event) => setEmail(event.target.value)}
101
+ * />
102
+ * <button
103
+ * onClick={() =>
104
+ * signIn(provider.id, undefined, {
105
+ * domain: email.split("@")[1],
106
+ * })
107
+ * }
108
+ * >
109
+ * Sign in with SSO
110
+ * </button>
111
+ * </div>
112
+ * )
113
+ * }
114
+ *
115
+ * return (
116
+ * <div key={provider.id}>
117
+ * <button onClick={() => signIn(provider.id)}>
118
+ * Sign in with {provider.name}
119
+ * </button>
120
+ * </div>
121
+ * )
122
+ * })}
123
+ * </>
124
+ * )
125
+ * }
126
+ *
127
+ * export async function getServerSideProps(context) {
128
+ * const providers = await getProviders()
129
+ * return {
130
+ * props: { providers },
131
+ * }
132
+ * }
133
+ * ```
134
+ *
135
+ * :::tip
136
+ *
137
+ * The WorkOS provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/workos.ts).
138
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
139
+ *
140
+ * :::
141
+ *
142
+ * :::info **Disclaimer**
143
+ *
144
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
145
+ *
146
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
147
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
148
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
149
+ *
150
+ * :::
151
+ */
152
+ export default function WorkOS<P extends WorkOSProfile>(
153
+ options: OAuthUserConfig<P> & { connection?: string }
154
+ ): OAuthConfig<P> {
155
+ const { issuer = "https://api.workos.com/", connection = "" } = options
156
+
157
+ const connectionParams = new URLSearchParams({ connection })
158
+
159
+ return {
160
+ id: "workos",
161
+ name: "WorkOS",
162
+ type: "oauth",
163
+ authorization: `${issuer}sso/authorize?${connectionParams}`,
164
+ token: `${issuer}sso/token`,
165
+ client: {
166
+ token_endpoint_auth_method: "client_secret_post",
167
+ },
168
+ userinfo: `${issuer}sso/profile`,
169
+ profile(profile) {
170
+ return {
171
+ id: profile.id,
172
+ name: `${profile.first_name} ${profile.last_name}`,
173
+ email: profile.email,
174
+ image: profile.raw_attributes.picture ?? null,
175
+ }
176
+ },
177
+ style: { bg: "#6363f1", text: "#fff" },
178
+ options,
179
+ }
180
+ }
@@ -0,0 +1,159 @@
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
+ import { OAuthConfig, OAuthUserConfig } from "./oauth.js"
13
+
14
+ /**
15
+ * - {@link https://yandex.com/dev/id/doc/en/user-information | Getting information about the user}
16
+ * - {@link https://yandex.com/dev/id/doc/en/user-information#email-access | Access to email address}
17
+ * - {@link https://yandex.com/dev/id/doc/en/user-information#avatar-access | Access to the user's profile picture}
18
+ * - {@link https://yandex.com/dev/id/doc/en/user-information#birthday-access | Access to the date of birth}
19
+ * - {@link https://yandex.com/dev/id/doc/en/user-information#name-access | Access to login, first name, last name, and gender}
20
+ * - {@link https://yandex.com/dev/id/doc/en/user-information#phone-access | Access to the phone number}
21
+ */
22
+ export interface YandexProfile {
23
+ /** User's Yandex login. */
24
+ login: string
25
+ /** Yandex user's unique ID. */
26
+ id: string
27
+ /**
28
+ * The ID of the app the OAuth token in the request was issued for.
29
+ * Available in the [app properties](https://oauth.yandex.com/). To open properties, click the app name.
30
+ */
31
+ client_id: string
32
+ /** Authorized Yandex user ID. It is formed on the Yandex side based on the `client_id` and `user_id` pair. */
33
+ psuid: string
34
+ /** An array of the user's email addresses. Currently only includes the default email address. */
35
+ emails?: string[]
36
+ /** The default email address for contacting the user. */
37
+ default_email?: string
38
+ /**
39
+ * Indicates that the stub (profile picture that is automatically assigned when registering in Yandex)
40
+ * ID is specified in the `default_avatar_id` field.
41
+ */
42
+ is_avatar_empty?: boolean
43
+ /**
44
+ * ID of the Yandex user's profile picture.
45
+ * Format for downloading user avatars: `https://avatars.yandex.net/get-yapic/<default_avatar_id>/<size>`
46
+ * @example "https://avatars.yandex.net/get-yapic/31804/BYkogAC6AoB17bN1HKRFAyKiM4-1/islands-200"
47
+ * Available sizes:
48
+ * `islands-small`: 28×28 pixels.
49
+ * `islands-34`: 34×34 pixels.
50
+ * `islands-middle`: 42×42 pixels.
51
+ * `islands-50`: 50×50 pixels.
52
+ * `islands-retina-small`: 56×56 pixels.
53
+ * `islands-68`: 68×68 pixels.
54
+ * `islands-75`: 75×75 pixels.
55
+ * `islands-retina-middle`: 84×84 pixels.
56
+ * `islands-retina-50`: 100×100 pixels.
57
+ * `islands-200`: 200×200 pixels.
58
+ */
59
+ default_avatar_id?: string
60
+ /**
61
+ * The user's date of birth in YYYY-MM-DD format.
62
+ * Unknown elements of the date are filled in with zeros, such as: `0000-12-23`.
63
+ * If the user's date of birth is unknow, birthday will be `null`
64
+ */
65
+ birthday?: string | null
66
+ first_name?: string
67
+ last_name?: string
68
+ display_name?: string
69
+ /**
70
+ * The first and last name that the user specified in Yandex ID.
71
+ * Non-Latin characters of the first and last names are presented in Unicode format.
72
+ */
73
+ real_name?: string
74
+ /** User's gender. `null` Stands for unknown or unspecified gender. Will be `undefined` if not provided by Yandex. */
75
+ sex?: "male" | "female" | null
76
+ /**
77
+ * The default phone number for contacting the user.
78
+ * The API can exclude the user's phone number from the response at its discretion.
79
+ * The field contains the following parameters:
80
+ * id: Phone number ID.
81
+ * number: The user's phone number.
82
+ */
83
+ default_phone?: { id: number; 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(
131
+ options: OAuthUserConfig<YandexProfile>
132
+ ): OAuthConfig<YandexProfile> {
133
+ return {
134
+ id: "yandex",
135
+ name: "Yandex",
136
+ type: "oauth",
137
+ /** @see [Data access](https://yandex.com/dev/id/doc/en/register-client#access) */
138
+ authorization:
139
+ "https://oauth.yandex.ru/authorize?scope=login:info+login:email+login:avatar",
140
+ token: "https://oauth.yandex.ru/token",
141
+ userinfo: "https://login.yandex.ru/info?format=json",
142
+ profile(profile) {
143
+ return {
144
+ id: profile.id,
145
+ name: profile.display_name ?? profile.real_name ?? profile.first_name,
146
+ email: profile.default_email ?? profile.emails?.[0] ?? null,
147
+ image:
148
+ !profile.is_avatar_empty && profile.default_avatar_id
149
+ ? `https://avatars.yandex.net/get-yapic/${profile.default_avatar_id}/islands-200`
150
+ : null,
151
+ }
152
+ },
153
+ style: {
154
+ bg: "#ffcc00",
155
+ text: "#000",
156
+ },
157
+ options,
158
+ }
159
+ }
@@ -0,0 +1,128 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>Zitadel</b> integration.</span>
4
+ * <a href="https://zitadel.com/">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/zitadel.svg" height="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/zitadel
10
+ */
11
+
12
+ import type { OIDCConfig, OAuthUserConfig } from "./index.js"
13
+
14
+ /**
15
+ * The returned user profile from ZITADEL when using the profile callback. See the standard claims reference [here](https://zitadel.com/docs/apis/openidoauth/claims#standard-claims).
16
+ * If you need access to ZITADEL APIs or need additional information, make sure to add the corresponding scopes.
17
+ */
18
+ export interface ZitadelProfile extends Record<string, any> {
19
+ amr: string // Authentication Method References as defined in RFC8176
20
+ aud: string // The audience of the token, by default all client id's and the project id are included
21
+ auth_time: number // UNIX time of the authentication
22
+ azp: string // Client id of the client who requested the token
23
+ email: string // Email Address of the subject
24
+ email_verified: boolean // if the email was verified by ZITADEL
25
+ exp: number // Time the token expires (as unix time)
26
+ family_name: string // The subjects family name
27
+ given_name: string // Given name of the subject
28
+ gender: string // Gender of the subject
29
+ iat: number // Time of the token was issued at (as unix time)
30
+ iss: string // Issuing domain of a token
31
+ jti: string // Unique id of the token
32
+ locale: string // Language from the subject
33
+ name: string // The subjects full name
34
+ nbf: number // Time the token must not be used before (as unix time)
35
+ picture: string // The subjects profile picture
36
+ phone: string // Phone number provided by the user
37
+ phone_verified: boolean // if the phonenumber was verified by ZITADEL
38
+ preferred_username: string // ZITADEL's login name of the user. Consist of username@primarydomain
39
+ sub: string // Subject ID of the user
40
+ }
41
+
42
+ /**
43
+ * Add ZITADEL login to your page.
44
+ *
45
+ * ### Setup
46
+ *
47
+ * #### Callback URL
48
+ * ```
49
+ * https://example.com/api/auth/callback/zitadel
50
+ * ```
51
+ *
52
+ * #### Configuration
53
+ *```ts
54
+ * import { Auth } from "@auth/core"
55
+ * import ZITADEL from "@auth/core/providers/zitadel"
56
+ *
57
+ * const request = new Request(origin)
58
+ * const response = await Auth(request, {
59
+ * providers: [
60
+ * ZITADEL({
61
+ * clientId: ZITADEL_CLIENT_ID,
62
+ * clientSecret: ZITADEL_CLIENT_SECRET,
63
+ * }),
64
+ * ],
65
+ * })
66
+ * ```
67
+ *
68
+ * ### Resources
69
+ * - [ZITADEL OpenID Endpoints](https://zitadel.com/docs/apis/openidoauth/endpoints)
70
+ * - [ZITADEL recommended OAuth Flows](https://zitadel.com/docs/guides/integrate/oauth-recommended-flows)
71
+ *
72
+ * ### Notes
73
+ *
74
+ * By default, Auth.js assumes that the ZITADEL provider is
75
+ * based on the [Open ID Connect](https://openid.net/specs/openid-connect-core-1_0.html) specification.
76
+ *
77
+ * The Redirect URIs used when creating the credentials must include your full domain and end in the callback path. For example:
78
+ * - For production: `https://{YOUR_DOMAIN}/api/auth/callback/zitadel`
79
+ * - For development: `http://localhost:3000/api/auth/callback/zitadel`
80
+ *
81
+ * Make sure to enable dev mode in ZITADEL console to allow redirects for local development.
82
+ *
83
+ * :::tip
84
+ *
85
+ * The ZITADEL provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/zitadel.ts).
86
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
87
+ *
88
+ * :::
89
+ * :::tip
90
+ *
91
+ * ZITADEL also returns a email_verified boolean property in the profile. You can use this property to restrict access to people with verified accounts.
92
+ * ```ts
93
+ * const options = {
94
+ * ...
95
+ * callbacks: {
96
+ * async signIn({ account, profile }) {
97
+ * if (account.provider === "zitadel") {
98
+ * return profile.email_verified;
99
+ * }
100
+ * return true; // Do different verification for other providers that don't have `email_verified`
101
+ * },
102
+ * }
103
+ * ...
104
+ * }
105
+ * ```
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 ZITADEL<P extends ZitadelProfile>(
120
+ options: OAuthUserConfig<P>
121
+ ): OIDCConfig<P> {
122
+ return {
123
+ id: "zitadel",
124
+ name: "ZITADEL",
125
+ type: "oidc",
126
+ options,
127
+ }
128
+ }
@@ -0,0 +1,84 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>ZOHO</b> integration.</span>
4
+ * <a href="https://zoho.com/">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/zoho.svg" height="48" />
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/zoho
10
+ */
11
+
12
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js"
13
+ /**
14
+ * Add ZOHO login to your page.
15
+ *
16
+ * ### Setup
17
+ *
18
+ * #### Callback URL
19
+ * ```
20
+ * https://example.com/api/auth/callback/zoho
21
+ * ```
22
+ *
23
+ * #### Configuration
24
+ *```ts
25
+ * import { Auth } from "@auth/core"
26
+ * import ZOHO from "@auth/core/providers/zoho"
27
+ *
28
+ * const request = new Request(origin)
29
+ * const response = await Auth(request, {
30
+ * providers: [
31
+ * ZOHO({ clientId: ZOHO_CLIENT_ID, clientSecret: ZOHO_CLIENT_SECRET }),
32
+ * ],
33
+ * })
34
+ * ```
35
+ *
36
+ * ### Resources
37
+ *
38
+ * - [Zoho OAuth 2.0 Integration Guide](https://www.zoho.com/accounts/protocol/oauth/web-server-applications.html)
39
+ * - [Zoho API Console](https://api-console.zoho.com)
40
+ *
41
+ * ### Notes
42
+ *
43
+ * By default, Auth.js assumes that the ZOHO provider is
44
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
45
+ *
46
+ * :::tip
47
+ *
48
+ * The ZOHO provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/zoho.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 Zoho(
64
+ config: OAuthUserConfig<Record<string, any>>
65
+ ): OAuthConfig<Record<string, any>> {
66
+ return {
67
+ id: "zoho",
68
+ name: "Zoho",
69
+ type: "oauth",
70
+ authorization:
71
+ "https://accounts.zoho.com/oauth/v2/auth?scope=AaaServer.profile.Read",
72
+ token: "https://accounts.zoho.com/oauth/v2/token",
73
+ userinfo: "https://accounts.zoho.com/oauth/user/info",
74
+ profile(profile) {
75
+ return {
76
+ id: profile.ZUID,
77
+ name: `${profile.First_Name} ${profile.Last_Name}`,
78
+ email: profile.Email,
79
+ image: null,
80
+ }
81
+ },
82
+ options: config,
83
+ }
84
+ }
@@ -0,0 +1,119 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>Zoom</b> integration.</span>
4
+ * <a href="https://zoom.us/">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/zoom.svg" height="48" />
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/zoom
10
+ */
11
+
12
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js"
13
+
14
+ /**
15
+ * See: https://developers.zoom.us/docs/integrations/oauth/#using-an-access-token
16
+ */
17
+ export interface ZoomProfile extends Record<string, any> {
18
+ id: string
19
+ first_name: string
20
+ last_name: string
21
+ email: string
22
+ type: number
23
+ role_name: string
24
+ pmi: number
25
+ use_pmi: boolean
26
+ vanity_url: string
27
+ personal_meeting_url: string
28
+ timezone: string
29
+ verified: number
30
+ dept: string
31
+ created_at: string
32
+ last_login_time: string
33
+ last_client_version: string
34
+ pic_url: string
35
+ host_key: string
36
+ jid: string
37
+ group_ids: string[]
38
+ im_group_ids: string[]
39
+ account_id: string
40
+ language: string
41
+ phone_country: string
42
+ phone_number: string
43
+ status: string
44
+ }
45
+
46
+ /**
47
+ * Add Zoom login to your page.
48
+ *
49
+ * ### Setup
50
+ *
51
+ * #### Callback URL
52
+ * ```
53
+ * https://example.com/api/auth/callback/zoom
54
+ * ```
55
+ *
56
+ * #### Configuration
57
+ *```ts
58
+ * import { Auth } from "@auth/core"
59
+ * import Zoom from "@auth/core/providers/zoom"
60
+ *
61
+ * const request = new Request(origin)
62
+ * const response = await Auth(request, {
63
+ * providers: [
64
+ * Zoom({ clientId: ZOOM_CLIENT_ID, clientSecret: ZOOM_CLIENT_SECRET }),
65
+ * ],
66
+ * })
67
+ * ```
68
+ *
69
+ * ### Resources
70
+ *
71
+ * - [Zoom OAuth 2.0 Integration Guide](https://developers.zoom.us/docs/integrations/oauth/)
72
+ *
73
+ * ### Notes
74
+ *
75
+ * By default, Auth.js assumes that the Zoom provider is
76
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
77
+ *
78
+ * :::tip
79
+ *
80
+ * The Zoom provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/zoom.ts).
81
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
82
+ *
83
+ * :::
84
+ *
85
+ * :::info **Disclaimer**
86
+ *
87
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
88
+ *
89
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
90
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
91
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
92
+ *
93
+ * :::
94
+ */
95
+ export default function Zoom(
96
+ config: OAuthUserConfig<ZoomProfile>
97
+ ): OAuthConfig<ZoomProfile> {
98
+ return {
99
+ id: "zoom",
100
+ name: "Zoom",
101
+ type: "oauth",
102
+ authorization: "https://zoom.us/oauth/authorize?scope",
103
+ token: "https://zoom.us/oauth/token",
104
+ userinfo: "https://api.zoom.us/v2/users/me",
105
+ profile(profile) {
106
+ return {
107
+ id: profile.id,
108
+ name: `${profile.first_name} ${profile.last_name}`,
109
+ email: profile.email,
110
+ image: profile.pic_url,
111
+ }
112
+ },
113
+ style: {
114
+ bg: "#0b5cff",
115
+ text: "#fff",
116
+ },
117
+ options: config,
118
+ }
119
+ }