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