@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,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b>Todoist</b> integration.</span>
|
|
4
|
+
* <a href="https://www.todoist.com/">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/todoist.svg" height="48" />
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/todoist
|
|
10
|
+
*/
|
|
11
|
+
import type { OAuthConfig, OAuthUserConfig } from "./index.js";
|
|
12
|
+
/**
|
|
13
|
+
* @see https://developer.todoist.com/sync/v9/#user
|
|
14
|
+
*/
|
|
15
|
+
interface TodoistProfile extends Record<string, any> {
|
|
16
|
+
avatar_big: string;
|
|
17
|
+
email: string;
|
|
18
|
+
full_name: string;
|
|
19
|
+
id: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Add Todoist login to your page.
|
|
23
|
+
*
|
|
24
|
+
* ### Setup
|
|
25
|
+
*
|
|
26
|
+
* #### Callback URL
|
|
27
|
+
* ```
|
|
28
|
+
* https://example.com/api/auth/callback/todoist
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* #### Configuration
|
|
32
|
+
*```ts
|
|
33
|
+
* import { Auth } from "@auth/core"
|
|
34
|
+
* import Todoist from "@auth/core/providers/todoist"
|
|
35
|
+
*
|
|
36
|
+
* const request = new Request(origin)
|
|
37
|
+
* const response = await Auth(request, {
|
|
38
|
+
* providers: [
|
|
39
|
+
* Todoist({
|
|
40
|
+
* clientId: TODOIST_CLIENT_ID,
|
|
41
|
+
* clientSecret: TODOIST_CLIENT_SECRET,
|
|
42
|
+
* }),
|
|
43
|
+
* ],
|
|
44
|
+
* })
|
|
45
|
+
* ```
|
|
46
|
+
*
|
|
47
|
+
* ### Resources
|
|
48
|
+
*
|
|
49
|
+
* - [Todoist OAuth documentation](https://developer.todoist.com/guides/#oauth)
|
|
50
|
+
* - [Todoist configuration](https://developer.todoist.com/appconsole.html)
|
|
51
|
+
*
|
|
52
|
+
* ### Notes
|
|
53
|
+
*
|
|
54
|
+
* By default, Auth.js assumes that the Todoist provider is
|
|
55
|
+
* based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
|
|
56
|
+
*
|
|
57
|
+
* :::tip
|
|
58
|
+
*
|
|
59
|
+
* The Todoist provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/todoist.ts).
|
|
60
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
61
|
+
*
|
|
62
|
+
* :::
|
|
63
|
+
*
|
|
64
|
+
* :::info **Disclaimer**
|
|
65
|
+
*
|
|
66
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
67
|
+
*
|
|
68
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
69
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
70
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
71
|
+
*
|
|
72
|
+
* :::
|
|
73
|
+
*/
|
|
74
|
+
export default function TodoistProvider<P extends TodoistProfile>(options: OAuthUserConfig<P>): OAuthConfig<P>;
|
|
75
|
+
export {};
|
|
76
|
+
//# sourceMappingURL=todoist.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"todoist.d.ts","sourceRoot":"","sources":["../src/providers/todoist.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE9D;;GAEG;AACH,UAAU,cAAe,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAClD,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,EAAE,EAAE,MAAM,CAAA;CACX;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,CAAC,SAAS,cAAc,EAC9D,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAC1B,WAAW,CAAC,CAAC,CAAC,CA4ChB"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Add Todoist login to your page.
|
|
3
|
+
*
|
|
4
|
+
* ### Setup
|
|
5
|
+
*
|
|
6
|
+
* #### Callback URL
|
|
7
|
+
* ```
|
|
8
|
+
* https://example.com/api/auth/callback/todoist
|
|
9
|
+
* ```
|
|
10
|
+
*
|
|
11
|
+
* #### Configuration
|
|
12
|
+
*```ts
|
|
13
|
+
* import { Auth } from "@auth/core"
|
|
14
|
+
* import Todoist from "@auth/core/providers/todoist"
|
|
15
|
+
*
|
|
16
|
+
* const request = new Request(origin)
|
|
17
|
+
* const response = await Auth(request, {
|
|
18
|
+
* providers: [
|
|
19
|
+
* Todoist({
|
|
20
|
+
* clientId: TODOIST_CLIENT_ID,
|
|
21
|
+
* clientSecret: TODOIST_CLIENT_SECRET,
|
|
22
|
+
* }),
|
|
23
|
+
* ],
|
|
24
|
+
* })
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* ### Resources
|
|
28
|
+
*
|
|
29
|
+
* - [Todoist OAuth documentation](https://developer.todoist.com/guides/#oauth)
|
|
30
|
+
* - [Todoist configuration](https://developer.todoist.com/appconsole.html)
|
|
31
|
+
*
|
|
32
|
+
* ### Notes
|
|
33
|
+
*
|
|
34
|
+
* By default, Auth.js assumes that the Todoist provider is
|
|
35
|
+
* based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
|
|
36
|
+
*
|
|
37
|
+
* :::tip
|
|
38
|
+
*
|
|
39
|
+
* The Todoist provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/todoist.ts).
|
|
40
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
41
|
+
*
|
|
42
|
+
* :::
|
|
43
|
+
*
|
|
44
|
+
* :::info **Disclaimer**
|
|
45
|
+
*
|
|
46
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
47
|
+
*
|
|
48
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
49
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
50
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
51
|
+
*
|
|
52
|
+
* :::
|
|
53
|
+
*/
|
|
54
|
+
export default function TodoistProvider(options) {
|
|
55
|
+
return {
|
|
56
|
+
id: "todoist",
|
|
57
|
+
name: "Todoist",
|
|
58
|
+
type: "oauth",
|
|
59
|
+
authorization: {
|
|
60
|
+
url: "https://todoist.com/oauth/authorize",
|
|
61
|
+
params: { scope: "data:read" },
|
|
62
|
+
},
|
|
63
|
+
token: "https://todoist.com/oauth/access_token",
|
|
64
|
+
client: {
|
|
65
|
+
token_endpoint_auth_method: "client_secret_post",
|
|
66
|
+
},
|
|
67
|
+
userinfo: {
|
|
68
|
+
async request({ tokens }) {
|
|
69
|
+
// To obtain Todoist user info, we need to call the Sync API
|
|
70
|
+
// See https://developer.todoist.com/sync/v9
|
|
71
|
+
const res = await fetch("https://api.todoist.com/sync/v9/sync", {
|
|
72
|
+
method: "POST",
|
|
73
|
+
headers: {
|
|
74
|
+
Authorization: `Bearer ${tokens.access_token}`,
|
|
75
|
+
"Content-Type": "application/json",
|
|
76
|
+
},
|
|
77
|
+
body: JSON.stringify({
|
|
78
|
+
sync_token: "*",
|
|
79
|
+
resource_types: '["user"]',
|
|
80
|
+
}),
|
|
81
|
+
});
|
|
82
|
+
const { user: profile } = await res.json();
|
|
83
|
+
return profile;
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
profile(profile) {
|
|
87
|
+
return {
|
|
88
|
+
id: profile.id,
|
|
89
|
+
email: profile.email,
|
|
90
|
+
name: profile.full_name,
|
|
91
|
+
image: profile.avatar_big,
|
|
92
|
+
};
|
|
93
|
+
},
|
|
94
|
+
style: { text: "#000", bg: "#E44332" },
|
|
95
|
+
options,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b>Trakt</b> integration.</span>
|
|
4
|
+
* <a href="https://www.trakt.tv/">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/trakt.svg" height="48" />
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/trakt
|
|
10
|
+
*/
|
|
11
|
+
import type { OAuthConfig, OAuthUserConfig } from "./index.js";
|
|
12
|
+
export interface TraktUser extends Record<string, any> {
|
|
13
|
+
username: string;
|
|
14
|
+
private: boolean;
|
|
15
|
+
name: string;
|
|
16
|
+
vip: boolean;
|
|
17
|
+
vip_ep: boolean;
|
|
18
|
+
ids: {
|
|
19
|
+
slug: string;
|
|
20
|
+
};
|
|
21
|
+
joined_at: string;
|
|
22
|
+
location: string | null;
|
|
23
|
+
about: string | null;
|
|
24
|
+
gender: string | null;
|
|
25
|
+
age: number | null;
|
|
26
|
+
images: {
|
|
27
|
+
avatar: {
|
|
28
|
+
full: string;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Add Trakt login to your page.
|
|
34
|
+
*
|
|
35
|
+
* ### Setup
|
|
36
|
+
*
|
|
37
|
+
* #### Callback URL
|
|
38
|
+
* ```
|
|
39
|
+
* https://example.com/api/auth/callback/trakt
|
|
40
|
+
* ```
|
|
41
|
+
*
|
|
42
|
+
* #### Configuration
|
|
43
|
+
*```ts
|
|
44
|
+
* import { Auth } from "@auth/core"
|
|
45
|
+
* import Trakt from "@auth/core/providers/trakt"
|
|
46
|
+
*
|
|
47
|
+
* const request = new Request(origin)
|
|
48
|
+
* const response = await Auth(request, {
|
|
49
|
+
* providers: [
|
|
50
|
+
* Trakt({ clientId: TRAKT_CLIENT_ID, clientSecret: TRAKT_CLIENT_SECRET }),
|
|
51
|
+
* ],
|
|
52
|
+
* })
|
|
53
|
+
* ```
|
|
54
|
+
*
|
|
55
|
+
* ### Resources
|
|
56
|
+
*
|
|
57
|
+
* - [Trakt OAuth documentation](https://trakt.docs.apiary.io/#reference/authentication-oauth)
|
|
58
|
+
*
|
|
59
|
+
* If you're using the api in production by calling `api.trakt.tv`. Follow the example. If you wish to develop on Trakt's sandbox environment by calling `api-staging.trakt.tv`, change the URLs.
|
|
60
|
+
*
|
|
61
|
+
* Start by creating an OAuth app on Trakt for production or development. Then set the Client ID and Client Secret as TRAKT_ID and TRAKT_SECRET in .env.
|
|
62
|
+
*
|
|
63
|
+
* ### Notes
|
|
64
|
+
*
|
|
65
|
+
* By default, Auth.js assumes that the Trakt provider is
|
|
66
|
+
* based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
|
|
67
|
+
*
|
|
68
|
+
* :::danger
|
|
69
|
+
*
|
|
70
|
+
* - Trakt does not allow hotlinking images. Even the authenticated user's profile picture.
|
|
71
|
+
* - Trakt does not supply the authenticated user's email.
|
|
72
|
+
*
|
|
73
|
+
* :::
|
|
74
|
+
*
|
|
75
|
+
* :::tip
|
|
76
|
+
*
|
|
77
|
+
* The Trakt provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/trakt.ts).
|
|
78
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
79
|
+
*
|
|
80
|
+
* :::
|
|
81
|
+
*
|
|
82
|
+
* :::info **Disclaimer**
|
|
83
|
+
*
|
|
84
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
85
|
+
*
|
|
86
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
87
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
88
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
89
|
+
*
|
|
90
|
+
* :::
|
|
91
|
+
*/
|
|
92
|
+
export default function Trakt<P extends TraktUser>(options: OAuthUserConfig<P>): OAuthConfig<P>;
|
|
93
|
+
//# sourceMappingURL=trakt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trakt.d.ts","sourceRoot":"","sources":["../src/providers/trakt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE9D,MAAM,WAAW,SAAU,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IACpD,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,OAAO,CAAA;IACZ,MAAM,EAAE,OAAO,CAAA;IACf,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,MAAM,EAAE;QAAE,MAAM,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAA;CACrC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,CAAC,SAAS,SAAS,EAC/C,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAC1B,WAAW,CAAC,CAAC,CAAC,CA8BhB"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Add Trakt login to your page.
|
|
3
|
+
*
|
|
4
|
+
* ### Setup
|
|
5
|
+
*
|
|
6
|
+
* #### Callback URL
|
|
7
|
+
* ```
|
|
8
|
+
* https://example.com/api/auth/callback/trakt
|
|
9
|
+
* ```
|
|
10
|
+
*
|
|
11
|
+
* #### Configuration
|
|
12
|
+
*```ts
|
|
13
|
+
* import { Auth } from "@auth/core"
|
|
14
|
+
* import Trakt from "@auth/core/providers/trakt"
|
|
15
|
+
*
|
|
16
|
+
* const request = new Request(origin)
|
|
17
|
+
* const response = await Auth(request, {
|
|
18
|
+
* providers: [
|
|
19
|
+
* Trakt({ clientId: TRAKT_CLIENT_ID, clientSecret: TRAKT_CLIENT_SECRET }),
|
|
20
|
+
* ],
|
|
21
|
+
* })
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* ### Resources
|
|
25
|
+
*
|
|
26
|
+
* - [Trakt OAuth documentation](https://trakt.docs.apiary.io/#reference/authentication-oauth)
|
|
27
|
+
*
|
|
28
|
+
* If you're using the api in production by calling `api.trakt.tv`. Follow the example. If you wish to develop on Trakt's sandbox environment by calling `api-staging.trakt.tv`, change the URLs.
|
|
29
|
+
*
|
|
30
|
+
* Start by creating an OAuth app on Trakt for production or development. Then set the Client ID and Client Secret as TRAKT_ID and TRAKT_SECRET in .env.
|
|
31
|
+
*
|
|
32
|
+
* ### Notes
|
|
33
|
+
*
|
|
34
|
+
* By default, Auth.js assumes that the Trakt provider is
|
|
35
|
+
* based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
|
|
36
|
+
*
|
|
37
|
+
* :::danger
|
|
38
|
+
*
|
|
39
|
+
* - Trakt does not allow hotlinking images. Even the authenticated user's profile picture.
|
|
40
|
+
* - Trakt does not supply the authenticated user's email.
|
|
41
|
+
*
|
|
42
|
+
* :::
|
|
43
|
+
*
|
|
44
|
+
* :::tip
|
|
45
|
+
*
|
|
46
|
+
* The Trakt provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/trakt.ts).
|
|
47
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
48
|
+
*
|
|
49
|
+
* :::
|
|
50
|
+
*
|
|
51
|
+
* :::info **Disclaimer**
|
|
52
|
+
*
|
|
53
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
54
|
+
*
|
|
55
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
56
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
57
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
58
|
+
*
|
|
59
|
+
* :::
|
|
60
|
+
*/
|
|
61
|
+
export default function Trakt(options) {
|
|
62
|
+
return {
|
|
63
|
+
id: "trakt",
|
|
64
|
+
name: "Trakt",
|
|
65
|
+
type: "oauth",
|
|
66
|
+
authorization: "https://trakt.tv/oauth/authorize?scope=",
|
|
67
|
+
token: "https://api.trakt.tv/oauth/token",
|
|
68
|
+
userinfo: {
|
|
69
|
+
url: "https://api.trakt.tv/users/me?extended=full",
|
|
70
|
+
async request({ tokens, provider }) {
|
|
71
|
+
return await fetch(provider.userinfo?.url, {
|
|
72
|
+
headers: {
|
|
73
|
+
Authorization: `Bearer ${tokens.access_token}`,
|
|
74
|
+
"trakt-api-version": "2",
|
|
75
|
+
"trakt-api-key": provider.clientId,
|
|
76
|
+
},
|
|
77
|
+
}).then(async (res) => await res.json());
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
profile(profile) {
|
|
81
|
+
return {
|
|
82
|
+
id: profile.ids.slug,
|
|
83
|
+
name: profile.name,
|
|
84
|
+
email: null,
|
|
85
|
+
image: profile.images.avatar.full, // trakt does not allow hotlinking
|
|
86
|
+
};
|
|
87
|
+
},
|
|
88
|
+
style: { bg: "#ED2224", text: "#fff" },
|
|
89
|
+
options,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b>Twitch</b> integration.</span>
|
|
4
|
+
* <a href="https://www.twitch.tv/">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/twitch.svg" height="48" />
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/twitch
|
|
10
|
+
*/
|
|
11
|
+
import type { OIDCConfig, OIDCUserConfig } from "./index.js";
|
|
12
|
+
export interface TwitchProfile extends Record<string, any> {
|
|
13
|
+
sub: string;
|
|
14
|
+
preferred_username: string;
|
|
15
|
+
email: string;
|
|
16
|
+
picture: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Add Twitch login to your page.
|
|
20
|
+
*
|
|
21
|
+
* ### Setup
|
|
22
|
+
*
|
|
23
|
+
* #### Callback URL
|
|
24
|
+
* ```
|
|
25
|
+
* https://example.com/api/auth/callback/twitch
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* #### Configuration
|
|
29
|
+
*```ts
|
|
30
|
+
* import { Auth } from "@auth/core"
|
|
31
|
+
* import Twitch from "@auth/core/providers/twitch"
|
|
32
|
+
*
|
|
33
|
+
* const request = new Request(origin)
|
|
34
|
+
* const response = await Auth(request, {
|
|
35
|
+
* providers: [
|
|
36
|
+
* Twitch({ clientId: TWITCH_CLIENT_ID, clientSecret: TWITCH_CLIENT_SECRET }),
|
|
37
|
+
* ],
|
|
38
|
+
* })
|
|
39
|
+
* ```
|
|
40
|
+
*
|
|
41
|
+
* ### Resources
|
|
42
|
+
*
|
|
43
|
+
* - [Twitch app documentation](https://dev.twitch.tv/console/apps)
|
|
44
|
+
*
|
|
45
|
+
* Add the following redirect URL into the console `http://<your-next-app-url>/api/auth/callback/twitch`
|
|
46
|
+
*
|
|
47
|
+
*
|
|
48
|
+
* ### Notes
|
|
49
|
+
*
|
|
50
|
+
* By default, Auth.js assumes that the Twitch provider is
|
|
51
|
+
* based on the [Open ID Connect](https://openid.net/specs/openid-connect-core-1_0.html) specification.
|
|
52
|
+
*
|
|
53
|
+
* :::tip
|
|
54
|
+
*
|
|
55
|
+
* The Twitch provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/twitch.ts).
|
|
56
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
57
|
+
*
|
|
58
|
+
* :::
|
|
59
|
+
*
|
|
60
|
+
* :::info **Disclaimer**
|
|
61
|
+
*
|
|
62
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
63
|
+
*
|
|
64
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
65
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
66
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
67
|
+
*
|
|
68
|
+
* :::
|
|
69
|
+
*/
|
|
70
|
+
export default function Twitch(config: OIDCUserConfig<TwitchProfile>): OIDCConfig<TwitchProfile>;
|
|
71
|
+
//# sourceMappingURL=twitch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"twitch.d.ts","sourceRoot":"","sources":["../src/providers/twitch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE5D,MAAM,WAAW,aAAc,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IACxD,GAAG,EAAE,MAAM,CAAA;IACX,kBAAkB,EAAE,MAAM,CAAA;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAC5B,MAAM,EAAE,cAAc,CAAC,aAAa,CAAC,GACpC,UAAU,CAAC,aAAa,CAAC,CA+C3B"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Add Twitch login to your page.
|
|
3
|
+
*
|
|
4
|
+
* ### Setup
|
|
5
|
+
*
|
|
6
|
+
* #### Callback URL
|
|
7
|
+
* ```
|
|
8
|
+
* https://example.com/api/auth/callback/twitch
|
|
9
|
+
* ```
|
|
10
|
+
*
|
|
11
|
+
* #### Configuration
|
|
12
|
+
*```ts
|
|
13
|
+
* import { Auth } from "@auth/core"
|
|
14
|
+
* import Twitch from "@auth/core/providers/twitch"
|
|
15
|
+
*
|
|
16
|
+
* const request = new Request(origin)
|
|
17
|
+
* const response = await Auth(request, {
|
|
18
|
+
* providers: [
|
|
19
|
+
* Twitch({ clientId: TWITCH_CLIENT_ID, clientSecret: TWITCH_CLIENT_SECRET }),
|
|
20
|
+
* ],
|
|
21
|
+
* })
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* ### Resources
|
|
25
|
+
*
|
|
26
|
+
* - [Twitch app documentation](https://dev.twitch.tv/console/apps)
|
|
27
|
+
*
|
|
28
|
+
* Add the following redirect URL into the console `http://<your-next-app-url>/api/auth/callback/twitch`
|
|
29
|
+
*
|
|
30
|
+
*
|
|
31
|
+
* ### Notes
|
|
32
|
+
*
|
|
33
|
+
* By default, Auth.js assumes that the Twitch provider is
|
|
34
|
+
* based on the [Open ID Connect](https://openid.net/specs/openid-connect-core-1_0.html) specification.
|
|
35
|
+
*
|
|
36
|
+
* :::tip
|
|
37
|
+
*
|
|
38
|
+
* The Twitch provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/twitch.ts).
|
|
39
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
40
|
+
*
|
|
41
|
+
* :::
|
|
42
|
+
*
|
|
43
|
+
* :::info **Disclaimer**
|
|
44
|
+
*
|
|
45
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
46
|
+
*
|
|
47
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
48
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
49
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
50
|
+
*
|
|
51
|
+
* :::
|
|
52
|
+
*/
|
|
53
|
+
export default function Twitch(config) {
|
|
54
|
+
return {
|
|
55
|
+
issuer: "https://id.twitch.tv/oauth2",
|
|
56
|
+
id: "twitch",
|
|
57
|
+
name: "Twitch",
|
|
58
|
+
type: "oidc",
|
|
59
|
+
client: { token_endpoint_auth_method: "client_secret_post" },
|
|
60
|
+
authorization: {
|
|
61
|
+
params: {
|
|
62
|
+
scope: "openid user:read:email",
|
|
63
|
+
claims: {
|
|
64
|
+
id_token: { email: null, picture: null, preferred_username: null },
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
token: {
|
|
69
|
+
async conform(response) {
|
|
70
|
+
const body = await response.json();
|
|
71
|
+
if (response.ok) {
|
|
72
|
+
if (typeof body.scope === "string") {
|
|
73
|
+
console.warn("'scope' is a string. Redundant workaround, please open an issue.");
|
|
74
|
+
}
|
|
75
|
+
else if (Array.isArray(body.scope)) {
|
|
76
|
+
body.scope = body.scope.join(" ");
|
|
77
|
+
return new Response(JSON.stringify(body), response);
|
|
78
|
+
}
|
|
79
|
+
else if ("scope" in body) {
|
|
80
|
+
delete body.scope;
|
|
81
|
+
return new Response(JSON.stringify(body), response);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
const { message: error_description, error } = body;
|
|
86
|
+
if (typeof error !== "string") {
|
|
87
|
+
return new Response(JSON.stringify({ error: "invalid_request", error_description }), response);
|
|
88
|
+
}
|
|
89
|
+
console.warn("Response has 'error'. Redundant workaround, please open an issue.");
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
style: { bg: "#65459B", text: "#fff" },
|
|
94
|
+
options: config,
|
|
95
|
+
};
|
|
96
|
+
}
|