mulguard 1.1.6 → 1.1.8
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 +21 -1078
- package/adapters.d.ts +2 -0
- package/adapters.d.ts.map +1 -0
- package/adapters.js +1 -0
- package/index.d.ts +329 -0
- package/index.d.ts.map +1 -0
- package/index.js +145 -0
- package/jwt.d.ts +9 -0
- package/jwt.d.ts.map +1 -0
- package/jwt.js +8 -0
- package/lib/actions.d.ts +13 -0
- package/lib/actions.d.ts.map +1 -0
- package/lib/actions.js +86 -0
- package/lib/client.d.ts +104 -0
- package/lib/client.d.ts.map +1 -0
- package/lib/client.js +95 -0
- package/lib/env.d.ts +12 -0
- package/lib/env.d.ts.map +1 -0
- package/lib/env.js +38 -0
- package/lib/index.d.ts +56 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +187 -0
- package/lib/types.d.ts +24 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +1 -0
- package/middleware.d.ts +9 -0
- package/middleware.d.ts.map +1 -0
- package/middleware.js +12 -0
- package/next.d.ts +9 -0
- package/next.d.ts.map +1 -0
- package/next.js +12 -0
- package/package.json +117 -73
- package/providers/42-school.d.ts +3 -0
- package/providers/42-school.d.ts.map +1 -0
- package/providers/42-school.js +2 -0
- package/providers/apple.d.ts +3 -0
- package/providers/apple.d.ts.map +1 -0
- package/providers/apple.js +2 -0
- package/providers/asgardeo.d.ts +3 -0
- package/providers/asgardeo.d.ts.map +1 -0
- package/providers/asgardeo.js +2 -0
- package/providers/atlassian.d.ts +3 -0
- package/providers/atlassian.d.ts.map +1 -0
- package/providers/atlassian.js +2 -0
- package/providers/auth0.d.ts +3 -0
- package/providers/auth0.d.ts.map +1 -0
- package/providers/auth0.js +2 -0
- package/providers/authentik.d.ts +3 -0
- package/providers/authentik.d.ts.map +1 -0
- package/providers/authentik.js +2 -0
- package/providers/azure-ad-b2c.d.ts +3 -0
- package/providers/azure-ad-b2c.d.ts.map +1 -0
- package/providers/azure-ad-b2c.js +2 -0
- package/providers/azure-ad.d.ts +3 -0
- package/providers/azure-ad.d.ts.map +1 -0
- package/providers/azure-ad.js +2 -0
- package/providers/azure-devops.d.ts +3 -0
- package/providers/azure-devops.d.ts.map +1 -0
- package/providers/azure-devops.js +2 -0
- package/providers/bankid-no.d.ts +3 -0
- package/providers/bankid-no.d.ts.map +1 -0
- package/providers/bankid-no.js +2 -0
- package/providers/battlenet.d.ts +3 -0
- package/providers/battlenet.d.ts.map +1 -0
- package/providers/battlenet.js +2 -0
- package/providers/beyondidentity.d.ts +3 -0
- package/providers/beyondidentity.d.ts.map +1 -0
- package/providers/beyondidentity.js +2 -0
- package/providers/bitbucket.d.ts +3 -0
- package/providers/bitbucket.d.ts.map +1 -0
- package/providers/bitbucket.js +2 -0
- package/providers/box.d.ts +3 -0
- package/providers/box.d.ts.map +1 -0
- package/providers/box.js +2 -0
- package/providers/boxyhq-saml.d.ts +3 -0
- package/providers/boxyhq-saml.d.ts.map +1 -0
- package/providers/boxyhq-saml.js +2 -0
- package/providers/bungie.d.ts +3 -0
- package/providers/bungie.d.ts.map +1 -0
- package/providers/bungie.js +2 -0
- package/providers/click-up.d.ts +3 -0
- package/providers/click-up.d.ts.map +1 -0
- package/providers/click-up.js +2 -0
- package/providers/cognito.d.ts +3 -0
- package/providers/cognito.d.ts.map +1 -0
- package/providers/cognito.js +2 -0
- package/providers/coinbase.d.ts +3 -0
- package/providers/coinbase.d.ts.map +1 -0
- package/providers/coinbase.js +2 -0
- package/providers/concept2.d.ts +3 -0
- package/providers/concept2.d.ts.map +1 -0
- package/providers/concept2.js +2 -0
- package/providers/credentials.d.ts +3 -0
- package/providers/credentials.d.ts.map +1 -0
- package/providers/credentials.js +2 -0
- package/providers/descope.d.ts +3 -0
- package/providers/descope.d.ts.map +1 -0
- package/providers/descope.js +2 -0
- package/providers/discord.d.ts +3 -0
- package/providers/discord.d.ts.map +1 -0
- package/providers/discord.js +2 -0
- package/providers/dribbble.d.ts +3 -0
- package/providers/dribbble.d.ts.map +1 -0
- package/providers/dribbble.js +2 -0
- package/providers/dropbox.d.ts +3 -0
- package/providers/dropbox.d.ts.map +1 -0
- package/providers/dropbox.js +2 -0
- package/providers/duende-identity-server6.d.ts +3 -0
- package/providers/duende-identity-server6.d.ts.map +1 -0
- package/providers/duende-identity-server6.js +2 -0
- package/providers/email.d.ts +3 -0
- package/providers/email.d.ts.map +1 -0
- package/providers/email.js +2 -0
- package/providers/eventbrite.d.ts +3 -0
- package/providers/eventbrite.d.ts.map +1 -0
- package/providers/eventbrite.js +2 -0
- package/providers/eveonline.d.ts +3 -0
- package/providers/eveonline.d.ts.map +1 -0
- package/providers/eveonline.js +2 -0
- package/providers/facebook.d.ts +3 -0
- package/providers/facebook.d.ts.map +1 -0
- package/providers/facebook.js +2 -0
- package/providers/faceit.d.ts +3 -0
- package/providers/faceit.d.ts.map +1 -0
- package/providers/faceit.js +2 -0
- package/providers/figma.d.ts +3 -0
- package/providers/figma.d.ts.map +1 -0
- package/providers/figma.js +2 -0
- package/providers/forwardemail.d.ts +3 -0
- package/providers/forwardemail.d.ts.map +1 -0
- package/providers/forwardemail.js +2 -0
- package/providers/foursquare.d.ts +3 -0
- package/providers/foursquare.d.ts.map +1 -0
- package/providers/foursquare.js +2 -0
- package/providers/freshbooks.d.ts +3 -0
- package/providers/freshbooks.d.ts.map +1 -0
- package/providers/freshbooks.js +2 -0
- package/providers/frontegg.d.ts +3 -0
- package/providers/frontegg.d.ts.map +1 -0
- package/providers/frontegg.js +2 -0
- package/providers/fusionauth.d.ts +3 -0
- package/providers/fusionauth.d.ts.map +1 -0
- package/providers/fusionauth.js +2 -0
- package/providers/github.d.ts +3 -0
- package/providers/github.d.ts.map +1 -0
- package/providers/github.js +2 -0
- package/providers/gitlab.d.ts +3 -0
- package/providers/gitlab.d.ts.map +1 -0
- package/providers/gitlab.js +2 -0
- package/providers/google.d.ts +3 -0
- package/providers/google.d.ts.map +1 -0
- package/providers/google.js +2 -0
- package/providers/hubspot.d.ts +3 -0
- package/providers/hubspot.d.ts.map +1 -0
- package/providers/hubspot.js +2 -0
- package/providers/huggingface.d.ts +3 -0
- package/providers/huggingface.d.ts.map +1 -0
- package/providers/huggingface.js +2 -0
- package/providers/identity-server4.d.ts +3 -0
- package/providers/identity-server4.d.ts.map +1 -0
- package/providers/identity-server4.js +2 -0
- package/providers/index.d.ts +2 -0
- package/providers/index.d.ts.map +1 -0
- package/providers/index.js +1 -0
- package/providers/instagram.d.ts +3 -0
- package/providers/instagram.d.ts.map +1 -0
- package/providers/instagram.js +2 -0
- package/providers/kakao.d.ts +3 -0
- package/providers/kakao.d.ts.map +1 -0
- package/providers/kakao.js +2 -0
- package/providers/keycloak.d.ts +3 -0
- package/providers/keycloak.d.ts.map +1 -0
- package/providers/keycloak.js +2 -0
- package/providers/kinde.d.ts +3 -0
- package/providers/kinde.d.ts.map +1 -0
- package/providers/kinde.js +2 -0
- package/providers/line.d.ts +3 -0
- package/providers/line.d.ts.map +1 -0
- package/providers/line.js +2 -0
- package/providers/linkedin.d.ts +3 -0
- package/providers/linkedin.d.ts.map +1 -0
- package/providers/linkedin.js +2 -0
- package/providers/logto.d.ts +3 -0
- package/providers/logto.d.ts.map +1 -0
- package/providers/logto.js +2 -0
- package/providers/loops.d.ts +3 -0
- package/providers/loops.d.ts.map +1 -0
- package/providers/loops.js +2 -0
- package/providers/mailchimp.d.ts +3 -0
- package/providers/mailchimp.d.ts.map +1 -0
- package/providers/mailchimp.js +2 -0
- package/providers/mailgun.d.ts +3 -0
- package/providers/mailgun.d.ts.map +1 -0
- package/providers/mailgun.js +2 -0
- package/providers/mailru.d.ts +3 -0
- package/providers/mailru.d.ts.map +1 -0
- package/providers/mailru.js +2 -0
- package/providers/mastodon.d.ts +3 -0
- package/providers/mastodon.d.ts.map +1 -0
- package/providers/mastodon.js +2 -0
- package/providers/mattermost.d.ts +3 -0
- package/providers/mattermost.d.ts.map +1 -0
- package/providers/mattermost.js +2 -0
- package/providers/medium.d.ts +3 -0
- package/providers/medium.d.ts.map +1 -0
- package/providers/medium.js +2 -0
- package/providers/microsoft-entra-id.d.ts +3 -0
- package/providers/microsoft-entra-id.d.ts.map +1 -0
- package/providers/microsoft-entra-id.js +2 -0
- package/providers/naver.d.ts +3 -0
- package/providers/naver.d.ts.map +1 -0
- package/providers/naver.js +2 -0
- package/providers/netlify.d.ts +3 -0
- package/providers/netlify.d.ts.map +1 -0
- package/providers/netlify.js +2 -0
- package/providers/netsuite.d.ts +3 -0
- package/providers/netsuite.d.ts.map +1 -0
- package/providers/netsuite.js +2 -0
- package/providers/nextcloud.d.ts +3 -0
- package/providers/nextcloud.d.ts.map +1 -0
- package/providers/nextcloud.js +2 -0
- package/providers/nodemailer.d.ts +3 -0
- package/providers/nodemailer.d.ts.map +1 -0
- package/providers/nodemailer.js +2 -0
- package/providers/notion.d.ts +3 -0
- package/providers/notion.d.ts.map +1 -0
- package/providers/notion.js +2 -0
- package/providers/okta.d.ts +3 -0
- package/providers/okta.d.ts.map +1 -0
- package/providers/okta.js +2 -0
- package/providers/onelogin.d.ts +3 -0
- package/providers/onelogin.d.ts.map +1 -0
- package/providers/onelogin.js +2 -0
- package/providers/ory-hydra.d.ts +3 -0
- package/providers/ory-hydra.d.ts.map +1 -0
- package/providers/ory-hydra.js +2 -0
- package/providers/osso.d.ts +3 -0
- package/providers/osso.d.ts.map +1 -0
- package/providers/osso.js +2 -0
- package/providers/osu.d.ts +3 -0
- package/providers/osu.d.ts.map +1 -0
- package/providers/osu.js +2 -0
- package/providers/passage.d.ts +3 -0
- package/providers/passage.d.ts.map +1 -0
- package/providers/passage.js +2 -0
- package/providers/passkey.d.ts +3 -0
- package/providers/passkey.d.ts.map +1 -0
- package/providers/passkey.js +2 -0
- package/providers/patreon.d.ts +3 -0
- package/providers/patreon.d.ts.map +1 -0
- package/providers/patreon.js +2 -0
- package/providers/ping-id.d.ts +3 -0
- package/providers/ping-id.d.ts.map +1 -0
- package/providers/ping-id.js +2 -0
- package/providers/pinterest.d.ts +3 -0
- package/providers/pinterest.d.ts.map +1 -0
- package/providers/pinterest.js +2 -0
- package/providers/pipedrive.d.ts +3 -0
- package/providers/pipedrive.d.ts.map +1 -0
- package/providers/pipedrive.js +2 -0
- package/providers/postmark.d.ts +3 -0
- package/providers/postmark.d.ts.map +1 -0
- package/providers/postmark.js +2 -0
- package/providers/reddit.d.ts +3 -0
- package/providers/reddit.d.ts.map +1 -0
- package/providers/reddit.js +2 -0
- package/providers/resend.d.ts +3 -0
- package/providers/resend.d.ts.map +1 -0
- package/providers/resend.js +2 -0
- package/providers/roblox.d.ts +3 -0
- package/providers/roblox.d.ts.map +1 -0
- package/providers/roblox.js +2 -0
- package/providers/salesforce.d.ts +3 -0
- package/providers/salesforce.d.ts.map +1 -0
- package/providers/salesforce.js +2 -0
- package/providers/sendgrid.d.ts +3 -0
- package/providers/sendgrid.d.ts.map +1 -0
- package/providers/sendgrid.js +2 -0
- package/providers/simplelogin.d.ts +3 -0
- package/providers/simplelogin.d.ts.map +1 -0
- package/providers/simplelogin.js +2 -0
- package/providers/slack.d.ts +3 -0
- package/providers/slack.d.ts.map +1 -0
- package/providers/slack.js +2 -0
- package/providers/spotify.d.ts +3 -0
- package/providers/spotify.d.ts.map +1 -0
- package/providers/spotify.js +2 -0
- package/providers/strava.d.ts +3 -0
- package/providers/strava.d.ts.map +1 -0
- package/providers/strava.js +2 -0
- package/providers/threads.d.ts +3 -0
- package/providers/threads.d.ts.map +1 -0
- package/providers/threads.js +2 -0
- package/providers/tiktok.d.ts +3 -0
- package/providers/tiktok.d.ts.map +1 -0
- package/providers/tiktok.js +2 -0
- package/providers/todoist.d.ts +3 -0
- package/providers/todoist.d.ts.map +1 -0
- package/providers/todoist.js +2 -0
- package/providers/trakt.d.ts +3 -0
- package/providers/trakt.d.ts.map +1 -0
- package/providers/trakt.js +2 -0
- package/providers/twitch.d.ts +3 -0
- package/providers/twitch.d.ts.map +1 -0
- package/providers/twitch.js +2 -0
- package/providers/twitter.d.ts +3 -0
- package/providers/twitter.d.ts.map +1 -0
- package/providers/twitter.js +2 -0
- package/providers/united-effects.d.ts +3 -0
- package/providers/united-effects.d.ts.map +1 -0
- package/providers/united-effects.js +2 -0
- package/providers/vipps.d.ts +3 -0
- package/providers/vipps.d.ts.map +1 -0
- package/providers/vipps.js +2 -0
- package/providers/vk.d.ts +3 -0
- package/providers/vk.d.ts.map +1 -0
- package/providers/vk.js +2 -0
- package/providers/webauthn.d.ts +3 -0
- package/providers/webauthn.d.ts.map +1 -0
- package/providers/webauthn.js +2 -0
- package/providers/webex.d.ts +3 -0
- package/providers/webex.d.ts.map +1 -0
- package/providers/webex.js +2 -0
- package/providers/wechat.d.ts +3 -0
- package/providers/wechat.d.ts.map +1 -0
- package/providers/wechat.js +2 -0
- package/providers/wikimedia.d.ts +3 -0
- package/providers/wikimedia.d.ts.map +1 -0
- package/providers/wikimedia.js +2 -0
- package/providers/wordpress.d.ts +3 -0
- package/providers/wordpress.d.ts.map +1 -0
- package/providers/wordpress.js +2 -0
- package/providers/workos.d.ts +3 -0
- package/providers/workos.d.ts.map +1 -0
- package/providers/workos.js +2 -0
- package/providers/yandex.d.ts +3 -0
- package/providers/yandex.d.ts.map +1 -0
- package/providers/yandex.js +2 -0
- package/providers/zitadel.d.ts +3 -0
- package/providers/zitadel.d.ts.map +1 -0
- package/providers/zitadel.js +2 -0
- package/providers/zoho.d.ts +3 -0
- package/providers/zoho.d.ts.map +1 -0
- package/providers/zoho.js +2 -0
- package/providers/zoom.d.ts +3 -0
- package/providers/zoom.d.ts.map +1 -0
- package/providers/zoom.js +2 -0
- package/react.d.ts +102 -0
- package/react.d.ts.map +1 -0
- package/react.js +361 -0
- package/src/adapters.ts +1 -0
- package/src/index.ts +430 -0
- package/src/jwt.ts +9 -0
- package/src/lib/actions.ts +144 -0
- package/src/lib/client.ts +245 -0
- package/src/lib/env.ts +36 -0
- package/src/lib/index.ts +313 -0
- package/src/lib/types.ts +30 -0
- package/src/middleware.ts +16 -0
- package/src/next.ts +16 -0
- package/src/providers/42-school.ts +2 -0
- package/src/providers/apple.ts +2 -0
- package/src/providers/asgardeo.ts +2 -0
- package/src/providers/atlassian.ts +2 -0
- package/src/providers/auth0.ts +2 -0
- package/src/providers/authentik.ts +2 -0
- package/src/providers/azure-ad-b2c.ts +2 -0
- package/src/providers/azure-ad.ts +2 -0
- package/src/providers/azure-devops.ts +2 -0
- package/src/providers/bankid-no.ts +2 -0
- package/src/providers/battlenet.ts +2 -0
- package/src/providers/beyondidentity.ts +2 -0
- package/src/providers/bitbucket.ts +2 -0
- package/src/providers/box.ts +2 -0
- package/src/providers/boxyhq-saml.ts +2 -0
- package/src/providers/bungie.ts +2 -0
- package/src/providers/click-up.ts +2 -0
- package/src/providers/cognito.ts +2 -0
- package/src/providers/coinbase.ts +2 -0
- package/src/providers/concept2.ts +2 -0
- package/src/providers/credentials.ts +2 -0
- package/src/providers/descope.ts +2 -0
- package/src/providers/discord.ts +2 -0
- package/src/providers/dribbble.ts +2 -0
- package/src/providers/dropbox.ts +2 -0
- package/src/providers/duende-identity-server6.ts +2 -0
- package/src/providers/email.ts +2 -0
- package/src/providers/eventbrite.ts +2 -0
- package/src/providers/eveonline.ts +2 -0
- package/src/providers/facebook.ts +2 -0
- package/src/providers/faceit.ts +2 -0
- package/src/providers/figma.ts +2 -0
- package/src/providers/forwardemail.ts +2 -0
- package/src/providers/foursquare.ts +2 -0
- package/src/providers/freshbooks.ts +2 -0
- package/src/providers/frontegg.ts +2 -0
- package/src/providers/fusionauth.ts +2 -0
- package/src/providers/github.ts +2 -0
- package/src/providers/gitlab.ts +2 -0
- package/src/providers/google.ts +2 -0
- package/src/providers/hubspot.ts +2 -0
- package/src/providers/huggingface.ts +2 -0
- package/src/providers/identity-server4.ts +2 -0
- package/src/providers/index.ts +1 -0
- package/src/providers/instagram.ts +2 -0
- package/src/providers/kakao.ts +2 -0
- package/src/providers/keycloak.ts +2 -0
- package/src/providers/kinde.ts +2 -0
- package/src/providers/line.ts +2 -0
- package/src/providers/linkedin.ts +2 -0
- package/src/providers/logto.ts +2 -0
- package/src/providers/loops.ts +2 -0
- package/src/providers/mailchimp.ts +2 -0
- package/src/providers/mailgun.ts +2 -0
- package/src/providers/mailru.ts +2 -0
- package/src/providers/mastodon.ts +2 -0
- package/src/providers/mattermost.ts +2 -0
- package/src/providers/medium.ts +2 -0
- package/src/providers/microsoft-entra-id.ts +2 -0
- package/src/providers/naver.ts +2 -0
- package/src/providers/netlify.ts +2 -0
- package/src/providers/netsuite.ts +2 -0
- package/src/providers/nextcloud.ts +2 -0
- package/src/providers/nodemailer.ts +2 -0
- package/src/providers/notion.ts +2 -0
- package/src/providers/okta.ts +2 -0
- package/src/providers/onelogin.ts +2 -0
- package/src/providers/ory-hydra.ts +2 -0
- package/src/providers/osso.ts +2 -0
- package/src/providers/osu.ts +2 -0
- package/src/providers/passage.ts +2 -0
- package/src/providers/passkey.ts +2 -0
- package/src/providers/patreon.ts +2 -0
- package/src/providers/ping-id.ts +2 -0
- package/src/providers/pinterest.ts +2 -0
- package/src/providers/pipedrive.ts +2 -0
- package/src/providers/postmark.ts +2 -0
- package/src/providers/reddit.ts +2 -0
- package/src/providers/resend.ts +2 -0
- package/src/providers/roblox.ts +2 -0
- package/src/providers/salesforce.ts +2 -0
- package/src/providers/sendgrid.ts +2 -0
- package/src/providers/simplelogin.ts +2 -0
- package/src/providers/slack.ts +2 -0
- package/src/providers/spotify.ts +2 -0
- package/src/providers/strava.ts +2 -0
- package/src/providers/threads.ts +2 -0
- package/src/providers/tiktok.ts +2 -0
- package/src/providers/todoist.ts +2 -0
- package/src/providers/trakt.ts +2 -0
- package/src/providers/twitch.ts +2 -0
- package/src/providers/twitter.ts +2 -0
- package/src/providers/united-effects.ts +2 -0
- package/src/providers/vipps.ts +2 -0
- package/src/providers/vk.ts +2 -0
- package/src/providers/webauthn.ts +2 -0
- package/src/providers/webex.ts +2 -0
- package/src/providers/wechat.ts +2 -0
- package/src/providers/wikimedia.ts +2 -0
- package/src/providers/wordpress.ts +2 -0
- package/src/providers/workos.ts +2 -0
- package/src/providers/yandex.ts +2 -0
- package/src/providers/zitadel.ts +2 -0
- package/src/providers/zoho.ts +2 -0
- package/src/providers/zoom.ts +2 -0
- package/src/react.tsx +546 -0
- package/src/webauthn.ts +152 -0
- package/webauthn.d.ts +9 -0
- package/webauthn.d.ts.map +1 -0
- package/webauthn.js +92 -0
- package/LICENSE +0 -70
- package/dist/actions-CExpv_dD.js +0 -1
- package/dist/actions-DeCfLtHA.mjs +0 -184
- package/dist/client/hooks.d.ts +0 -122
- package/dist/client/index.d.ts +0 -5
- package/dist/client/index.js +0 -1
- package/dist/client/index.mjs +0 -478
- package/dist/client/provider.d.ts +0 -69
- package/dist/client/server-actions-helper.d.ts +0 -22
- package/dist/components/AccountPicker.d.ts +0 -11
- package/dist/components/OAuthButton.d.ts +0 -11
- package/dist/components/PassKeyButton.d.ts +0 -11
- package/dist/components/PassKeyRegister.d.ts +0 -10
- package/dist/components/TwoFactorSetup.d.ts +0 -8
- package/dist/components/TwoFactorVerify.d.ts +0 -9
- package/dist/core/account-picker/encryption.d.ts +0 -22
- package/dist/core/account-picker/index.d.ts +0 -22
- package/dist/core/auth/index.d.ts +0 -40
- package/dist/core/auth/oauth-providers.d.ts +0 -197
- package/dist/core/auth/oauth-state-store-cookie.d.ts +0 -83
- package/dist/core/auth/oauth-state-store-redis.d.ts +0 -25
- package/dist/core/auth/oauth-state-store.d.ts +0 -45
- package/dist/core/auth/oauth.d.ts +0 -20
- package/dist/core/auth/passkey.d.ts +0 -35
- package/dist/core/auth/password.d.ts +0 -22
- package/dist/core/auth/signin-unified.d.ts +0 -33
- package/dist/core/auth/two-factor.d.ts +0 -28
- package/dist/core/client/index.d.ts +0 -132
- package/dist/core/client/token-refresh-manager.d.ts +0 -48
- package/dist/core/index.d.ts +0 -11
- package/dist/core/mulguard/auth-handlers.d.ts +0 -100
- package/dist/core/mulguard/defaults.d.ts +0 -58
- package/dist/core/mulguard/index.d.ts +0 -9
- package/dist/core/mulguard/oauth-handler.d.ts +0 -93
- package/dist/core/mulguard/session-manager.d.ts +0 -94
- package/dist/core/security/csrf.d.ts +0 -46
- package/dist/core/security/headers.d.ts +0 -24
- package/dist/core/security/index.d.ts +0 -132
- package/dist/core/security/rate-limit.d.ts +0 -39
- package/dist/core/security/validation.d.ts +0 -251
- package/dist/core/security/xss.d.ts +0 -20
- package/dist/core/session/index.d.ts +0 -35
- package/dist/core/types/auth.d.ts +0 -290
- package/dist/core/types/errors.d.ts +0 -200
- package/dist/core/types/index.d.ts +0 -462
- package/dist/core/utils/auth-helpers.d.ts +0 -136
- package/dist/core/utils/logger.d.ts +0 -121
- package/dist/handlers/api.d.ts +0 -10
- package/dist/handlers/route.d.ts +0 -76
- package/dist/index/index.js +0 -1
- package/dist/index/index.mjs +0 -2229
- package/dist/index.d.ts +0 -21
- package/dist/middleware/index.d.ts +0 -28
- package/dist/middleware/proxy.d.ts +0 -53
- package/dist/middleware/security.d.ts +0 -9
- package/dist/mulguard.d.ts +0 -373
- package/dist/oauth-state-DKle8eCr.mjs +0 -289
- package/dist/oauth-state-DlvrCV11.js +0 -1
- package/dist/server/actions.d.ts +0 -86
- package/dist/server/auth.d.ts +0 -65
- package/dist/server/cookies.d.ts +0 -42
- package/dist/server/helpers.d.ts +0 -10
- package/dist/server/index.d.ts +0 -14
- package/dist/server/index.js +0 -1
- package/dist/server/index.mjs +0 -31
- package/dist/server/middleware.d.ts +0 -39
- package/dist/server/oauth-state.d.ts +0 -30
- package/dist/server/session-helpers.d.ts +0 -26
- package/dist/server/session.d.ts +0 -28
- package/dist/server/utils.d.ts +0 -10
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { EmailCredentials, RegisterData, AuthResult, ApiClient } from '../types';
|
|
2
|
-
import { OAuthMethods } from './oauth';
|
|
3
|
-
import { PassKeyMethods } from './passkey';
|
|
4
|
-
import { TwoFactorMethods } from './two-factor';
|
|
5
|
-
import { AccountPickerMethods } from '../account-picker';
|
|
6
|
-
export interface AuthMethods {
|
|
7
|
-
signIn: {
|
|
8
|
-
email(credentials: EmailCredentials): Promise<AuthResult>;
|
|
9
|
-
oauth(provider: string): Promise<{
|
|
10
|
-
url: string;
|
|
11
|
-
state: string;
|
|
12
|
-
}>;
|
|
13
|
-
passkey(options?: {
|
|
14
|
-
userId?: string;
|
|
15
|
-
}): Promise<AuthResult>;
|
|
16
|
-
};
|
|
17
|
-
signUp(data: RegisterData): Promise<AuthResult>;
|
|
18
|
-
signOut(): Promise<void>;
|
|
19
|
-
resetPassword(email: string): Promise<{
|
|
20
|
-
success: boolean;
|
|
21
|
-
error?: string;
|
|
22
|
-
}>;
|
|
23
|
-
verifyEmail(token: string): Promise<{
|
|
24
|
-
success: boolean;
|
|
25
|
-
error?: string;
|
|
26
|
-
}>;
|
|
27
|
-
oauth: OAuthMethods;
|
|
28
|
-
passkey: PassKeyMethods;
|
|
29
|
-
twoFactor: TwoFactorMethods;
|
|
30
|
-
accountPicker: AccountPickerMethods;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Create authentication methods
|
|
34
|
-
*/
|
|
35
|
-
export declare function createAuthMethods(client: ApiClient, oauthProviders?: Record<string, {
|
|
36
|
-
clientId: string;
|
|
37
|
-
redirectUri: string;
|
|
38
|
-
scopes?: string[];
|
|
39
|
-
name?: string;
|
|
40
|
-
}>, accountPickerConfig?: import('../account-picker').AccountPickerConfig): AuthMethods;
|
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
import { OAuthProviderConfig } from '../types';
|
|
2
|
-
/**
|
|
3
|
-
* OAuth provider identifier.
|
|
4
|
-
*/
|
|
5
|
-
export type OAuthProviderId = 'google' | 'github' | 'apple' | 'facebook' | string;
|
|
6
|
-
/**
|
|
7
|
-
* Provider metadata for OAuth endpoints and configuration.
|
|
8
|
-
*/
|
|
9
|
-
export interface ProviderMetadata {
|
|
10
|
-
readonly authorizationUrl: string;
|
|
11
|
-
readonly tokenUrl: string;
|
|
12
|
-
readonly userInfoUrl: string;
|
|
13
|
-
readonly defaultScopes: readonly string[];
|
|
14
|
-
readonly defaultParams?: Readonly<Record<string, string>>;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Normalized OAuth user profile.
|
|
18
|
-
*/
|
|
19
|
-
export interface OAuthUserProfile {
|
|
20
|
-
readonly id: string;
|
|
21
|
-
readonly email: string;
|
|
22
|
-
readonly name: string;
|
|
23
|
-
readonly avatar?: string;
|
|
24
|
-
readonly emailVerified?: boolean;
|
|
25
|
-
readonly rawProfile: Readonly<Record<string, unknown>>;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* OAuth token exchange result.
|
|
29
|
-
*/
|
|
30
|
-
export interface TokenExchangeResult {
|
|
31
|
-
readonly access_token: string;
|
|
32
|
-
readonly refresh_token?: string;
|
|
33
|
-
readonly expires_in?: number;
|
|
34
|
-
readonly token_type?: string;
|
|
35
|
-
readonly id_token?: string;
|
|
36
|
-
readonly scope?: string;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* OAuth error response.
|
|
40
|
-
*/
|
|
41
|
-
export interface OAuthErrorResponse {
|
|
42
|
-
readonly error: string;
|
|
43
|
-
readonly error_description?: string;
|
|
44
|
-
readonly error_uri?: string;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Built-in OAuth provider metadata.
|
|
48
|
-
*
|
|
49
|
-
* Contains endpoint URLs, default scopes, and provider-specific parameters.
|
|
50
|
-
*/
|
|
51
|
-
declare const PROVIDER_METADATA: Readonly<Record<string, ProviderMetadata>>;
|
|
52
|
-
/**
|
|
53
|
-
* Gets provider metadata for a given provider ID.
|
|
54
|
-
*
|
|
55
|
-
* @param providerId - OAuth provider identifier
|
|
56
|
-
* @returns Provider metadata or null if not found
|
|
57
|
-
*
|
|
58
|
-
* @example
|
|
59
|
-
* ```typescript
|
|
60
|
-
* const metadata = getProviderMetadata('google')
|
|
61
|
-
* if (metadata) {
|
|
62
|
-
* console.log(metadata.authorizationUrl)
|
|
63
|
-
* }
|
|
64
|
-
* ```
|
|
65
|
-
*/
|
|
66
|
-
export declare function getProviderMetadata(providerId: string): ProviderMetadata | null;
|
|
67
|
-
/**
|
|
68
|
-
* Type predicate to check if provider metadata exists.
|
|
69
|
-
*
|
|
70
|
-
* @param providerId - Provider ID to check
|
|
71
|
-
* @returns True if provider is supported
|
|
72
|
-
*
|
|
73
|
-
* @example
|
|
74
|
-
* ```typescript
|
|
75
|
-
* if (isSupportedProvider('google')) {
|
|
76
|
-
* // Provider is supported
|
|
77
|
-
* }
|
|
78
|
-
* ```
|
|
79
|
-
*/
|
|
80
|
-
export declare function isSupportedProvider(providerId: string): providerId is keyof typeof PROVIDER_METADATA;
|
|
81
|
-
/**
|
|
82
|
-
* Builds OAuth authorization URL with proper parameters.
|
|
83
|
-
*
|
|
84
|
-
* @param providerId - OAuth provider identifier
|
|
85
|
-
* @param config - Provider configuration
|
|
86
|
-
* @param baseUrl - Base URL for redirect URI
|
|
87
|
-
* @param state - CSRF state token
|
|
88
|
-
* @returns Authorization URL
|
|
89
|
-
* @throws {Error} If provider is not supported
|
|
90
|
-
*
|
|
91
|
-
* @example
|
|
92
|
-
* ```typescript
|
|
93
|
-
* const url = buildOAuthAuthorizationUrl(
|
|
94
|
-
* 'google',
|
|
95
|
-
* { clientId: '...' },
|
|
96
|
-
* 'https://example.com',
|
|
97
|
-
* 'state123'
|
|
98
|
-
* )
|
|
99
|
-
* ```
|
|
100
|
-
*/
|
|
101
|
-
export declare function buildOAuthAuthorizationUrl(providerId: string, config: OAuthProviderConfig, baseUrl: string, state: string): string;
|
|
102
|
-
/**
|
|
103
|
-
* Exchanges authorization code for access tokens.
|
|
104
|
-
*
|
|
105
|
-
* @param providerId - OAuth provider identifier
|
|
106
|
-
* @param config - Provider configuration
|
|
107
|
-
* @param code - Authorization code from OAuth callback
|
|
108
|
-
* @param redirectUri - Redirect URI used in authorization request
|
|
109
|
-
* @returns Token exchange result
|
|
110
|
-
* @throws {Error} If exchange fails or provider is not supported
|
|
111
|
-
*
|
|
112
|
-
* @example
|
|
113
|
-
* ```typescript
|
|
114
|
-
* const tokens = await exchangeOAuthCode(
|
|
115
|
-
* 'google',
|
|
116
|
-
* { clientId: '...', clientSecret: '...' },
|
|
117
|
-
* 'code123',
|
|
118
|
-
* 'https://example.com/callback'
|
|
119
|
-
* )
|
|
120
|
-
* console.log(tokens.access_token)
|
|
121
|
-
* ```
|
|
122
|
-
*/
|
|
123
|
-
export declare function exchangeOAuthCode(providerId: string, config: OAuthProviderConfig, code: string, redirectUri: string): Promise<TokenExchangeResult>;
|
|
124
|
-
/**
|
|
125
|
-
* Retrieves user information from OAuth provider.
|
|
126
|
-
*
|
|
127
|
-
* @param providerId - OAuth provider identifier
|
|
128
|
-
* @param accessToken - OAuth access token
|
|
129
|
-
* @returns Normalized user profile with raw provider data
|
|
130
|
-
* @throws {Error} If retrieval fails or provider is not supported
|
|
131
|
-
*
|
|
132
|
-
* @example
|
|
133
|
-
* ```typescript
|
|
134
|
-
* const profile = await getOAuthUserInfo('google', 'access_token_123')
|
|
135
|
-
* console.log(profile.email, profile.name)
|
|
136
|
-
* ```
|
|
137
|
-
*/
|
|
138
|
-
export declare function getOAuthUserInfo(providerId: string, accessToken: string): Promise<OAuthUserProfile>;
|
|
139
|
-
/**
|
|
140
|
-
* Type predicate to check if a value is a valid OAuth provider config.
|
|
141
|
-
*
|
|
142
|
-
* @param value - Value to check
|
|
143
|
-
* @returns True if value is a valid OAuth provider config
|
|
144
|
-
*/
|
|
145
|
-
export declare function isOAuthProviderConfig(value: unknown): value is OAuthProviderConfig;
|
|
146
|
-
export {};
|
|
147
|
-
/**
|
|
148
|
-
* TODO: Performance
|
|
149
|
-
* - [ ] Add token exchange result caching (with TTL)
|
|
150
|
-
* - [ ] Implement request retry logic with exponential backoff
|
|
151
|
-
* - [ ] Add connection pooling for OAuth API calls
|
|
152
|
-
* - [ ] Cache provider metadata lookups
|
|
153
|
-
*
|
|
154
|
-
* TODO: Features
|
|
155
|
-
* - [ ] Add support for PKCE (Proof Key for Code Exchange)
|
|
156
|
-
* - [ ] Implement token refresh flow
|
|
157
|
-
* - [ ] Add support for custom OAuth providers
|
|
158
|
-
* - [ ] Create provider plugin system
|
|
159
|
-
* - [ ] Add OAuth 2.1 compliance
|
|
160
|
-
* - [ ] Support for OpenID Connect
|
|
161
|
-
*
|
|
162
|
-
* TODO: Type Safety
|
|
163
|
-
* - [ ] Add branded types for provider IDs
|
|
164
|
-
* - [ ] Create type-safe provider configuration
|
|
165
|
-
* - [ ] Add compile-time provider validation
|
|
166
|
-
* - [ ] Implement type-level endpoint validation
|
|
167
|
-
*
|
|
168
|
-
* TODO: Security
|
|
169
|
-
* - [ ] Add token validation before use
|
|
170
|
-
* - [ ] Implement token encryption at rest
|
|
171
|
-
* - [ ] Add request signing for OAuth calls
|
|
172
|
-
* - [ ] Create security audit logging
|
|
173
|
-
* - [ ] Add rate limiting for OAuth operations
|
|
174
|
-
*
|
|
175
|
-
* TODO: Error Handling
|
|
176
|
-
* - [ ] Add structured error types for OAuth errors
|
|
177
|
-
* - [ ] Implement error recovery strategies
|
|
178
|
-
* - [ ] Add error retry logic
|
|
179
|
-
* - [ ] Create error reporting
|
|
180
|
-
*
|
|
181
|
-
* TODO: Testing
|
|
182
|
-
* - [ ] Add comprehensive unit tests
|
|
183
|
-
* - [ ] Test all provider normalizations
|
|
184
|
-
* - [ ] Test error handling scenarios
|
|
185
|
-
* - [ ] Add integration tests with mock OAuth servers
|
|
186
|
-
*
|
|
187
|
-
* TODO: Documentation
|
|
188
|
-
* - [ ] Add provider-specific configuration guides
|
|
189
|
-
* - [ ] Document error handling best practices
|
|
190
|
-
* - [ ] Create troubleshooting guide
|
|
191
|
-
*
|
|
192
|
-
* TODO: Limitations
|
|
193
|
-
* - [ ] GitHub email retrieval may fail silently
|
|
194
|
-
* - [ ] Apple profile name only available on first sign-in
|
|
195
|
-
* - [ ] Facebook API version is hardcoded (v18.0)
|
|
196
|
-
* - [ ] No support for OAuth 1.0 providers
|
|
197
|
-
*/
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { OAuthStateStore } from './oauth-state-store';
|
|
2
|
-
/**
|
|
3
|
-
* Cookie options interface
|
|
4
|
-
*/
|
|
5
|
-
export interface CookieOptions {
|
|
6
|
-
httpOnly?: boolean;
|
|
7
|
-
secure?: boolean;
|
|
8
|
-
sameSite?: 'strict' | 'lax' | 'none';
|
|
9
|
-
maxAge?: number;
|
|
10
|
-
path?: string;
|
|
11
|
-
domain?: string;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Cookie handler interface for framework-agnostic cookie operations
|
|
15
|
-
*/
|
|
16
|
-
export interface CookieHandler {
|
|
17
|
-
/**
|
|
18
|
-
* Get cookie value by name
|
|
19
|
-
*/
|
|
20
|
-
getCookie(name: string): Promise<string | null> | string | null;
|
|
21
|
-
/**
|
|
22
|
-
* Set cookie with options
|
|
23
|
-
*/
|
|
24
|
-
setCookie(name: string, value: string, options: CookieOptions): Promise<void> | void;
|
|
25
|
-
/**
|
|
26
|
-
* Delete cookie
|
|
27
|
-
*/
|
|
28
|
-
deleteCookie(name: string, options?: {
|
|
29
|
-
path?: string;
|
|
30
|
-
}): Promise<void> | void;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Configuration for cookie-based OAuth state store
|
|
34
|
-
*/
|
|
35
|
-
export interface CookieOAuthStateStoreConfig {
|
|
36
|
-
/**
|
|
37
|
-
* Cookie handler implementation
|
|
38
|
-
*/
|
|
39
|
-
cookieHandler: CookieHandler;
|
|
40
|
-
/**
|
|
41
|
-
* Cookie name (default: '__mulguard_oauth_state')
|
|
42
|
-
*/
|
|
43
|
-
cookieName?: string;
|
|
44
|
-
/**
|
|
45
|
-
* TTL in milliseconds (default: 10 minutes)
|
|
46
|
-
*/
|
|
47
|
-
ttl?: number;
|
|
48
|
-
/**
|
|
49
|
-
* Whether to use secure cookies (default: true in production)
|
|
50
|
-
*/
|
|
51
|
-
secure?: boolean;
|
|
52
|
-
/**
|
|
53
|
-
* SameSite cookie attribute (default: 'strict')
|
|
54
|
-
*/
|
|
55
|
-
sameSite?: 'strict' | 'lax' | 'none';
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Creates a cookie-based OAuth state store.
|
|
59
|
-
*
|
|
60
|
-
* ✅ SECURE: Uses httpOnly cookies to prevent XSS attacks
|
|
61
|
-
* ✅ FRAMEWORK-AGNOSTIC: Works with any framework via cookie handler
|
|
62
|
-
* ⚠️ LIMITATION: Not suitable for production with multiple server instances (use Redis instead)
|
|
63
|
-
*
|
|
64
|
-
* @param config - Cookie store configuration
|
|
65
|
-
* @returns OAuth state store implementation
|
|
66
|
-
*/
|
|
67
|
-
export declare function createCookieOAuthStateStore(config: CookieOAuthStateStoreConfig): OAuthStateStore;
|
|
68
|
-
/**
|
|
69
|
-
* Creates a Next.js-specific cookie-based OAuth state store.
|
|
70
|
-
*
|
|
71
|
-
* Convenience function for Next.js applications.
|
|
72
|
-
*
|
|
73
|
-
* @example
|
|
74
|
-
* ```typescript
|
|
75
|
-
* import { createNextJsCookieOAuthStateStore } from 'mulguard/core/auth/oauth-state-store-cookie'
|
|
76
|
-
*
|
|
77
|
-
* export const auth = mulguard({
|
|
78
|
-
* oauthStateStore: createNextJsCookieOAuthStateStore(),
|
|
79
|
-
* // ... rest of config
|
|
80
|
-
* })
|
|
81
|
-
* ```
|
|
82
|
-
*/
|
|
83
|
-
export declare function createNextJsCookieOAuthStateStore(): OAuthStateStore;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { OAuthStateStore } from './oauth-state-store';
|
|
2
|
-
/**
|
|
3
|
-
* Redis client interface (compatible with ioredis and node-redis)
|
|
4
|
-
*/
|
|
5
|
-
export interface RedisClient {
|
|
6
|
-
set(key: string, value: string, mode?: string, duration?: number): Promise<string | null>;
|
|
7
|
-
get(key: string): Promise<string | null>;
|
|
8
|
-
del(key: string): Promise<number>;
|
|
9
|
-
keys(pattern: string): Promise<string[]>;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Creates a Redis-based OAuth state store.
|
|
13
|
-
*
|
|
14
|
-
* @param redis - Redis client instance (ioredis or node-redis)
|
|
15
|
-
* @param keyPrefix - Key prefix for state keys (default: 'mulguard:oauth:state:')
|
|
16
|
-
* @returns OAuth state store implementation
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
* ```typescript
|
|
20
|
-
* import Redis from 'ioredis'
|
|
21
|
-
* const redis = new Redis(process.env.REDIS_URL)
|
|
22
|
-
* const stateStore = createRedisOAuthStateStore(redis)
|
|
23
|
-
* ```
|
|
24
|
-
*/
|
|
25
|
-
export declare function createRedisOAuthStateStore(redis: RedisClient, keyPrefix?: string): OAuthStateStore;
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* OAuth State Store Interface
|
|
3
|
-
* Allows pluggable state storage for OAuth CSRF protection
|
|
4
|
-
*
|
|
5
|
-
* Default implementation uses in-memory Map (for development)
|
|
6
|
-
* Production should use Redis, database, or other persistent store
|
|
7
|
-
*/
|
|
8
|
-
export interface OAuthState {
|
|
9
|
-
provider: string;
|
|
10
|
-
expiresAt: number;
|
|
11
|
-
}
|
|
12
|
-
export interface OAuthStateStore {
|
|
13
|
-
/**
|
|
14
|
-
* Store OAuth state with TTL
|
|
15
|
-
*/
|
|
16
|
-
set(state: string, data: OAuthState, ttl: number): Promise<void> | void;
|
|
17
|
-
/**
|
|
18
|
-
* Get OAuth state
|
|
19
|
-
*/
|
|
20
|
-
get(state: string): Promise<OAuthState | null> | OAuthState | null;
|
|
21
|
-
/**
|
|
22
|
-
* Delete OAuth state
|
|
23
|
-
*/
|
|
24
|
-
delete(state: string): Promise<void> | void;
|
|
25
|
-
/**
|
|
26
|
-
* Cleanup expired states (optional, for periodic cleanup)
|
|
27
|
-
*/
|
|
28
|
-
cleanup?(): Promise<void> | void;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* In-memory OAuth state store (default, for development)
|
|
32
|
-
* ⚠️ Not suitable for production with multiple server instances
|
|
33
|
-
*/
|
|
34
|
-
export declare class MemoryOAuthStateStore implements OAuthStateStore {
|
|
35
|
-
private states;
|
|
36
|
-
set(state: string, data: OAuthState, _ttl: number): void;
|
|
37
|
-
get(state: string): OAuthState | null;
|
|
38
|
-
delete(state: string): void;
|
|
39
|
-
cleanup(): void;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Create default in-memory OAuth state store
|
|
43
|
-
*/
|
|
44
|
-
export declare function createMemoryOAuthStateStore(): OAuthStateStore;
|
|
45
|
-
export { createCookieOAuthStateStore, createNextJsCookieOAuthStateStore, type CookieHandler, type CookieOAuthStateStoreConfig, } from './oauth-state-store-cookie';
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { ApiClient, AuthResult } from '../types';
|
|
2
|
-
export interface OAuthProvider {
|
|
3
|
-
id: string;
|
|
4
|
-
name: string;
|
|
5
|
-
clientId: string;
|
|
6
|
-
redirectUri: string;
|
|
7
|
-
scopes?: string[];
|
|
8
|
-
}
|
|
9
|
-
export interface OAuthMethods {
|
|
10
|
-
initiate(provider: string): Promise<{
|
|
11
|
-
url: string;
|
|
12
|
-
state: string;
|
|
13
|
-
}>;
|
|
14
|
-
handleCallback(provider: string, code: string, state: string): Promise<AuthResult>;
|
|
15
|
-
getProviders(): Promise<OAuthProvider[]>;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Create OAuth methods
|
|
19
|
-
*/
|
|
20
|
-
export declare function createOAuthMethods(client: ApiClient, providers: Record<string, OAuthProvider>): OAuthMethods;
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { ApiClient, AuthResult } from '../types';
|
|
2
|
-
export interface PassKeyCredential {
|
|
3
|
-
id: string;
|
|
4
|
-
name: string;
|
|
5
|
-
createdAt: Date;
|
|
6
|
-
lastUsedAt?: Date;
|
|
7
|
-
}
|
|
8
|
-
export interface PassKeyRegisterOptions {
|
|
9
|
-
name?: string;
|
|
10
|
-
userId?: string;
|
|
11
|
-
}
|
|
12
|
-
export interface PassKeyAuthOptions {
|
|
13
|
-
userId?: string;
|
|
14
|
-
}
|
|
15
|
-
export interface PassKeyMethods {
|
|
16
|
-
register(options?: PassKeyRegisterOptions): Promise<{
|
|
17
|
-
success: boolean;
|
|
18
|
-
passkeyId?: string;
|
|
19
|
-
error?: string;
|
|
20
|
-
}>;
|
|
21
|
-
authenticate(options?: PassKeyAuthOptions): Promise<AuthResult>;
|
|
22
|
-
list(): Promise<PassKeyCredential[]>;
|
|
23
|
-
remove(passKeyId: string): Promise<{
|
|
24
|
-
success: boolean;
|
|
25
|
-
error?: string;
|
|
26
|
-
}>;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Check if WebAuthn is supported
|
|
30
|
-
*/
|
|
31
|
-
export declare function isWebAuthnSupported(): boolean;
|
|
32
|
-
/**
|
|
33
|
-
* Create PassKey methods
|
|
34
|
-
*/
|
|
35
|
-
export declare function createPassKeyMethods(client: ApiClient): PassKeyMethods;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Password validation and utilities
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Validate password strength
|
|
6
|
-
*/
|
|
7
|
-
export interface PasswordValidationResult {
|
|
8
|
-
valid: boolean;
|
|
9
|
-
errors: string[];
|
|
10
|
-
strength: 'weak' | 'medium' | 'strong';
|
|
11
|
-
}
|
|
12
|
-
export interface PasswordPolicy {
|
|
13
|
-
minLength?: number;
|
|
14
|
-
requireUppercase?: boolean;
|
|
15
|
-
requireLowercase?: boolean;
|
|
16
|
-
requireNumbers?: boolean;
|
|
17
|
-
requireSpecialChars?: boolean;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Validate password against policy
|
|
21
|
-
*/
|
|
22
|
-
export declare function validatePassword(password: string, policy?: PasswordPolicy): PasswordValidationResult;
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { MulguardInstance } from '../../mulguard';
|
|
2
|
-
import { EmailCredentials, AuthResult } from '../types';
|
|
3
|
-
/**
|
|
4
|
-
* Unified sign in function - delegates to auth.signIn unified logic
|
|
5
|
-
*
|
|
6
|
-
* @example
|
|
7
|
-
* ```typescript
|
|
8
|
-
* // OAuth providers
|
|
9
|
-
* await signIn(auth, 'google')
|
|
10
|
-
* await signIn(auth, 'github')
|
|
11
|
-
*
|
|
12
|
-
* // Credentials
|
|
13
|
-
* await signIn(auth, 'credentials', { email: 'user@example.com', password: 'password' })
|
|
14
|
-
*
|
|
15
|
-
* // OTP
|
|
16
|
-
* await signIn(auth, 'otp', { email: 'user@example.com', code: '123456' })
|
|
17
|
-
*
|
|
18
|
-
* // Passkey
|
|
19
|
-
* await signIn(auth, 'passkey', { userId: 'user-id' })
|
|
20
|
-
* ```
|
|
21
|
-
*/
|
|
22
|
-
export declare function signIn(auth: MulguardInstance, provider: 'google' | 'github' | 'apple' | 'facebook' | string): Promise<{
|
|
23
|
-
url: string;
|
|
24
|
-
state: string;
|
|
25
|
-
}>;
|
|
26
|
-
export declare function signIn(auth: MulguardInstance, provider: 'credentials', credentials: EmailCredentials): Promise<AuthResult>;
|
|
27
|
-
export declare function signIn(auth: MulguardInstance, provider: 'otp', options: {
|
|
28
|
-
email: string;
|
|
29
|
-
code?: string;
|
|
30
|
-
}): Promise<AuthResult>;
|
|
31
|
-
export declare function signIn(auth: MulguardInstance, provider: 'passkey', options?: {
|
|
32
|
-
userId?: string;
|
|
33
|
-
}): Promise<AuthResult>;
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { ApiClient } from '../types';
|
|
2
|
-
export interface TwoFactorMethods {
|
|
3
|
-
enable(): Promise<{
|
|
4
|
-
success: boolean;
|
|
5
|
-
qrCode?: string;
|
|
6
|
-
secret?: string;
|
|
7
|
-
error?: string;
|
|
8
|
-
}>;
|
|
9
|
-
verify(code: string): Promise<{
|
|
10
|
-
success: boolean;
|
|
11
|
-
backupCodes?: string[];
|
|
12
|
-
error?: string;
|
|
13
|
-
}>;
|
|
14
|
-
disable(): Promise<{
|
|
15
|
-
success: boolean;
|
|
16
|
-
error?: string;
|
|
17
|
-
}>;
|
|
18
|
-
generateBackupCodes(): Promise<{
|
|
19
|
-
success: boolean;
|
|
20
|
-
backupCodes?: string[];
|
|
21
|
-
error?: string;
|
|
22
|
-
}>;
|
|
23
|
-
isEnabled(): Promise<boolean>;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Create 2FA methods
|
|
27
|
-
*/
|
|
28
|
-
export declare function createTwoFactorMethods(client: ApiClient): TwoFactorMethods;
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* HTTP Client for making requests to backend API
|
|
3
|
-
* Enhanced with timeout enforcement, retry logic, and interceptors
|
|
4
|
-
*/
|
|
5
|
-
export interface HttpClientConfig {
|
|
6
|
-
baseURL: string;
|
|
7
|
-
apiPrefix: string;
|
|
8
|
-
timeout?: number;
|
|
9
|
-
headers?: Record<string, string>;
|
|
10
|
-
retry?: RetryConfig;
|
|
11
|
-
interceptors?: InterceptorsConfig;
|
|
12
|
-
/** Token refresh manager for automatic token refresh on 401 errors */
|
|
13
|
-
tokenRefreshManager?: import('./token-refresh-manager').TokenRefreshManager;
|
|
14
|
-
}
|
|
15
|
-
export interface RetryConfig {
|
|
16
|
-
/** Maximum number of retry attempts (default: 3) */
|
|
17
|
-
maxAttempts?: number;
|
|
18
|
-
/** Delay between retries in milliseconds (default: 1000) */
|
|
19
|
-
retryDelay?: number;
|
|
20
|
-
/** Exponential backoff multiplier (default: 2) */
|
|
21
|
-
backoffMultiplier?: number;
|
|
22
|
-
/** HTTP status codes that should trigger retry (default: [408, 429, 500, 502, 503, 504]) */
|
|
23
|
-
retryableStatusCodes?: number[];
|
|
24
|
-
/** Whether to retry on network errors (default: true) */
|
|
25
|
-
retryOnNetworkError?: boolean;
|
|
26
|
-
}
|
|
27
|
-
export interface InterceptorsConfig {
|
|
28
|
-
/** Request interceptor - called before sending request */
|
|
29
|
-
onRequest?: (config: RequestConfig) => Promise<RequestConfig> | RequestConfig;
|
|
30
|
-
/** Response interceptor - called after receiving response */
|
|
31
|
-
onResponse?: <T>(response: HttpResponse<T>) => Promise<HttpResponse<T>> | HttpResponse<T>;
|
|
32
|
-
/** Error interceptor - called on error */
|
|
33
|
-
onError?: (error: ApiError) => Promise<ApiError> | ApiError;
|
|
34
|
-
}
|
|
35
|
-
export interface RequestConfig {
|
|
36
|
-
url: string;
|
|
37
|
-
method: string;
|
|
38
|
-
headers: Record<string, string>;
|
|
39
|
-
body?: unknown;
|
|
40
|
-
credentials?: 'include' | 'omit' | 'same-origin';
|
|
41
|
-
}
|
|
42
|
-
interface InternalRequestOptions {
|
|
43
|
-
method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
|
|
44
|
-
headers?: Record<string, string>;
|
|
45
|
-
body?: unknown;
|
|
46
|
-
credentials?: 'include' | 'omit' | 'same-origin';
|
|
47
|
-
skipRetry?: boolean;
|
|
48
|
-
skipInterceptors?: boolean;
|
|
49
|
-
skipTokenRefresh?: boolean;
|
|
50
|
-
}
|
|
51
|
-
export interface HttpResponse<T = unknown> {
|
|
52
|
-
data: T;
|
|
53
|
-
status: number;
|
|
54
|
-
statusText: string;
|
|
55
|
-
headers: Headers;
|
|
56
|
-
}
|
|
57
|
-
export declare class HttpClient {
|
|
58
|
-
private config;
|
|
59
|
-
private pendingRequests;
|
|
60
|
-
constructor(config: HttpClientConfig);
|
|
61
|
-
/**
|
|
62
|
-
* Make HTTP request with timeout, retry, and interceptors
|
|
63
|
-
*/
|
|
64
|
-
request<T = unknown>(path: string, options?: InternalRequestOptions): Promise<HttpResponse<T>>;
|
|
65
|
-
/**
|
|
66
|
-
* Execute HTTP request with retry logic
|
|
67
|
-
*/
|
|
68
|
-
private executeRequest;
|
|
69
|
-
/**
|
|
70
|
-
* Check if request should be retried
|
|
71
|
-
*/
|
|
72
|
-
private shouldRetry;
|
|
73
|
-
/**
|
|
74
|
-
* Calculate retry delay with exponential backoff
|
|
75
|
-
*/
|
|
76
|
-
private calculateRetryDelay;
|
|
77
|
-
/**
|
|
78
|
-
* Sleep utility for retry delays
|
|
79
|
-
*/
|
|
80
|
-
private sleep;
|
|
81
|
-
/**
|
|
82
|
-
* Build RequestInit from RequestConfig
|
|
83
|
-
*/
|
|
84
|
-
private buildRequestInitFromConfig;
|
|
85
|
-
/**
|
|
86
|
-
* GET request
|
|
87
|
-
*/
|
|
88
|
-
get<T = unknown>(path: string, options?: Omit<InternalRequestOptions, 'method' | 'body'>): Promise<HttpResponse<T>>;
|
|
89
|
-
/**
|
|
90
|
-
* POST request
|
|
91
|
-
*/
|
|
92
|
-
post<T = unknown>(path: string, body?: unknown, options?: Omit<InternalRequestOptions, 'method'>): Promise<HttpResponse<T>>;
|
|
93
|
-
/**
|
|
94
|
-
* PUT request
|
|
95
|
-
*/
|
|
96
|
-
put<T = unknown>(path: string, body?: unknown, options?: Omit<InternalRequestOptions, 'method'>): Promise<HttpResponse<T>>;
|
|
97
|
-
/**
|
|
98
|
-
* DELETE request
|
|
99
|
-
*/
|
|
100
|
-
delete<T = unknown>(path: string, options?: Omit<InternalRequestOptions, 'method' | 'body'>): Promise<HttpResponse<T>>;
|
|
101
|
-
/**
|
|
102
|
-
* Build full URL
|
|
103
|
-
*/
|
|
104
|
-
private buildUrl;
|
|
105
|
-
/**
|
|
106
|
-
* Parse response
|
|
107
|
-
*/
|
|
108
|
-
private parseResponse;
|
|
109
|
-
/**
|
|
110
|
-
* Handle error response
|
|
111
|
-
*/
|
|
112
|
-
private handleErrorResponse;
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* API Error class with enhanced error information
|
|
116
|
-
*/
|
|
117
|
-
export declare class ApiError extends Error {
|
|
118
|
-
code: string;
|
|
119
|
-
statusCode: number;
|
|
120
|
-
originalError?: Error;
|
|
121
|
-
retryable?: boolean;
|
|
122
|
-
constructor(message: string, code?: string, statusCode?: number, originalError?: Error, retryable?: boolean);
|
|
123
|
-
/**
|
|
124
|
-
* Check if error is retryable
|
|
125
|
-
*/
|
|
126
|
-
isRetryable(): boolean;
|
|
127
|
-
/**
|
|
128
|
-
* Get user-friendly error message
|
|
129
|
-
*/
|
|
130
|
-
getUserMessage(): string;
|
|
131
|
-
}
|
|
132
|
-
export {};
|