mulguard 1.1.7 → 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 -582
- 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 -126
- 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-CMtg7FGv.js +0 -1
- package/dist/actions-CjQUKaXF.mjs +0 -200
- package/dist/client/index.js +0 -1
- package/dist/client/index.mjs +0 -484
- 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/email-password.d.ts +0 -145
- package/dist/core/auth/oauth/index.d.ts +0 -14
- package/dist/core/auth/oauth/oauth-handler.d.ts +0 -172
- package/dist/core/auth/oauth/pkce.d.ts +0 -168
- package/dist/core/auth/oauth/providers.d.ts +0 -198
- 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 -48
- package/dist/core/auth/otp.d.ts +0 -184
- 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/errors/index.d.ts +0 -269
- package/dist/core/index.d.ts +0 -9
- package/dist/core/logger/index.d.ts +0 -147
- 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/integration.d.ts +0 -104
- 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/security-manager.d.ts +0 -236
- 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/session/session-manager.d.ts +0 -235
- 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 -484
- package/dist/core/utils/auth-helpers.d.ts +0 -136
- package/dist/core/utils/logger.d.ts +0 -121
- package/dist/index/index.js +0 -1
- package/dist/index/index.mjs +0 -2736
- package/dist/index.d.ts +0 -18
- package/dist/mulguard.d.ts +0 -373
- package/dist/nextjs/client/hooks.d.ts +0 -122
- package/dist/nextjs/client/index.d.ts +0 -13
- package/dist/nextjs/client/provider.d.ts +0 -69
- package/dist/nextjs/client/server-actions-helper.d.ts +0 -22
- package/dist/nextjs/handlers/api.d.ts +0 -10
- package/dist/nextjs/handlers/index.d.ts +0 -9
- package/dist/nextjs/handlers/route.d.ts +0 -76
- package/dist/nextjs/index.d.ts +0 -15
- package/dist/nextjs/proxy/index.d.ts +0 -149
- package/dist/nextjs/proxy/security.d.ts +0 -9
- package/dist/nextjs/server/actions.d.ts +0 -30
- package/dist/nextjs/server/auth.d.ts +0 -65
- package/dist/nextjs/server/cookies.d.ts +0 -41
- package/dist/nextjs/server/index.d.ts +0 -18
- package/dist/nextjs/server/oauth-state.d.ts +0 -32
- package/dist/nextjs/server/session-helpers.d.ts +0 -24
- package/dist/nextjs/server/session.d.ts +0 -144
- package/dist/oauth-state-Drwz6fES.js +0 -1
- package/dist/oauth-state-pdypStuS.mjs +0 -210
- package/dist/server/index.js +0 -1
- package/dist/server/index.mjs +0 -29
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { OAuthStateStore } from './state-store';
|
|
2
|
-
/**
|
|
3
|
-
* Cookie options interface
|
|
4
|
-
*/
|
|
5
|
-
export interface OAuthCookieOptions {
|
|
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: OAuthCookieOptions): 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 './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,48 +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
|
-
* @module @mulguard/core/auth/oauth/state-store
|
|
9
|
-
*/
|
|
10
|
-
export interface OAuthState {
|
|
11
|
-
provider: string;
|
|
12
|
-
expiresAt: number;
|
|
13
|
-
}
|
|
14
|
-
export interface OAuthStateStore {
|
|
15
|
-
/**
|
|
16
|
-
* Store OAuth state with TTL
|
|
17
|
-
*/
|
|
18
|
-
set(state: string, data: OAuthState, ttl: number): Promise<void> | void;
|
|
19
|
-
/**
|
|
20
|
-
* Get OAuth state
|
|
21
|
-
*/
|
|
22
|
-
get(state: string): Promise<OAuthState | null> | OAuthState | null;
|
|
23
|
-
/**
|
|
24
|
-
* Delete OAuth state
|
|
25
|
-
*/
|
|
26
|
-
delete(state: string): Promise<void> | void;
|
|
27
|
-
/**
|
|
28
|
-
* Cleanup expired states (optional, for periodic cleanup)
|
|
29
|
-
*/
|
|
30
|
-
cleanup?(): Promise<void> | void;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* In-memory OAuth state store (default, for development)
|
|
34
|
-
* ⚠️ Not suitable for production with multiple server instances
|
|
35
|
-
*/
|
|
36
|
-
export declare class MemoryOAuthStateStore implements OAuthStateStore {
|
|
37
|
-
private states;
|
|
38
|
-
set(state: string, data: OAuthState, _ttl: number): void;
|
|
39
|
-
get(state: string): OAuthState | null;
|
|
40
|
-
delete(state: string): void;
|
|
41
|
-
cleanup(): void;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Create default in-memory OAuth state store
|
|
45
|
-
*/
|
|
46
|
-
export declare function createMemoryOAuthStateStore(): OAuthStateStore;
|
|
47
|
-
export { createCookieOAuthStateStore, createNextJsCookieOAuthStateStore, type CookieHandler, type CookieOAuthStateStoreConfig, } from './state-store-cookie';
|
|
48
|
-
export { createRedisOAuthStateStore, type RedisClient, } from './state-store-redis';
|
package/dist/core/auth/otp.d.ts
DELETED
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
import { AuthResult, User, Session } from '../types';
|
|
2
|
-
import { SecurityManager } from '../security/security-manager';
|
|
3
|
-
import { Logger } from '../logger';
|
|
4
|
-
/**
|
|
5
|
-
* OTP provider type.
|
|
6
|
-
*/
|
|
7
|
-
export type OTPProvider = 'email' | 'sms';
|
|
8
|
-
/**
|
|
9
|
-
* OTP configuration.
|
|
10
|
-
*/
|
|
11
|
-
export interface OTPConfig {
|
|
12
|
-
readonly length?: number;
|
|
13
|
-
readonly expiresIn?: number;
|
|
14
|
-
readonly provider?: OTPProvider;
|
|
15
|
-
readonly security?: SecurityManager;
|
|
16
|
-
readonly logger?: Logger;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* OTP storage adapter interface.
|
|
20
|
-
*/
|
|
21
|
-
export interface OTPStorageAdapter {
|
|
22
|
-
/**
|
|
23
|
-
* Stores an OTP code.
|
|
24
|
-
*
|
|
25
|
-
* @param email - User email
|
|
26
|
-
* @param code - OTP code
|
|
27
|
-
* @param expiresIn - Expiration time in seconds
|
|
28
|
-
*/
|
|
29
|
-
set(email: string, code: string, expiresIn: number): Promise<void>;
|
|
30
|
-
/**
|
|
31
|
-
* Gets an OTP code.
|
|
32
|
-
*
|
|
33
|
-
* @param email - User email
|
|
34
|
-
* @returns OTP code or null if not found/expired
|
|
35
|
-
*/
|
|
36
|
-
get(email: string): Promise<string | null>;
|
|
37
|
-
/**
|
|
38
|
-
* Deletes an OTP code.
|
|
39
|
-
*
|
|
40
|
-
* @param email - User email
|
|
41
|
-
*/
|
|
42
|
-
delete(email: string): Promise<void>;
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* In-memory OTP storage adapter.
|
|
46
|
-
*/
|
|
47
|
-
export declare class MemoryOTPStorage implements OTPStorageAdapter {
|
|
48
|
-
private readonly storage;
|
|
49
|
-
set(email: string, code: string, expiresIn: number): Promise<void>;
|
|
50
|
-
get(email: string): Promise<string | null>;
|
|
51
|
-
delete(email: string): Promise<void>;
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* OTP authentication handler.
|
|
55
|
-
*
|
|
56
|
-
* Provides secure OTP generation, validation, and authentication.
|
|
57
|
-
*
|
|
58
|
-
* @example
|
|
59
|
-
* ```typescript
|
|
60
|
-
* const handler = new OTPAuth({
|
|
61
|
-
* length: 6,
|
|
62
|
-
* expiresIn: 600, // 10 minutes
|
|
63
|
-
* provider: 'email',
|
|
64
|
-
* })
|
|
65
|
-
*
|
|
66
|
-
* // Generate OTP
|
|
67
|
-
* const code = await handler.generateOTP('user@example.com')
|
|
68
|
-
*
|
|
69
|
-
* // Verify OTP
|
|
70
|
-
* const result = await handler.verifyOTP('user@example.com', code, userLookup, createSession)
|
|
71
|
-
* ```
|
|
72
|
-
*/
|
|
73
|
-
export declare class OTPAuth {
|
|
74
|
-
private readonly config;
|
|
75
|
-
private readonly storage;
|
|
76
|
-
private readonly security;
|
|
77
|
-
constructor(config?: OTPConfig, storage?: OTPStorageAdapter);
|
|
78
|
-
/**
|
|
79
|
-
* Generates an OTP code for a user.
|
|
80
|
-
*
|
|
81
|
-
* @param email - User email
|
|
82
|
-
* @returns Generated OTP code
|
|
83
|
-
*
|
|
84
|
-
* @example
|
|
85
|
-
* ```typescript
|
|
86
|
-
* const code = await handler.generateOTP('user@example.com')
|
|
87
|
-
* // Send code via email/SMS
|
|
88
|
-
* ```
|
|
89
|
-
*/
|
|
90
|
-
generateOTP(email: string): Promise<string>;
|
|
91
|
-
/**
|
|
92
|
-
* Verifies an OTP code and authenticates the user.
|
|
93
|
-
*
|
|
94
|
-
* @template TUser - User type
|
|
95
|
-
* @template TSession - Session type
|
|
96
|
-
* @param email - User email
|
|
97
|
-
* @param code - OTP code to verify
|
|
98
|
-
* @param userLookup - Function to lookup user by email
|
|
99
|
-
* @param createSession - Function to create session (optional)
|
|
100
|
-
* @returns Authentication result
|
|
101
|
-
*
|
|
102
|
-
* @example
|
|
103
|
-
* ```typescript
|
|
104
|
-
* const result = await handler.verifyOTP(
|
|
105
|
-
* 'user@example.com',
|
|
106
|
-
* '123456',
|
|
107
|
-
* async (email) => await db.user.findUnique({ where: { email } })
|
|
108
|
-
* )
|
|
109
|
-
* ```
|
|
110
|
-
*/
|
|
111
|
-
verifyOTP<TUser extends User = User, TSession extends Session<TUser> = Session<TUser>>(email: string, code: string, userLookup: (email: string) => Promise<TUser | null>, createSession?: (user: TUser) => Promise<TSession>): Promise<AuthResult<TUser, TSession>>;
|
|
112
|
-
/**
|
|
113
|
-
* Generates a numeric OTP code.
|
|
114
|
-
*
|
|
115
|
-
* @param length - Code length
|
|
116
|
-
* @returns Numeric code string
|
|
117
|
-
*/
|
|
118
|
-
private generateNumericCode;
|
|
119
|
-
/**
|
|
120
|
-
* Constant-time string comparison to prevent timing attacks.
|
|
121
|
-
*
|
|
122
|
-
* @param a - First string
|
|
123
|
-
* @param b - Second string
|
|
124
|
-
* @returns True if strings match
|
|
125
|
-
*/
|
|
126
|
-
private constantTimeCompare;
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Creates an OTP authentication handler.
|
|
130
|
-
*
|
|
131
|
-
* @param config - OTP configuration
|
|
132
|
-
* @param storage - OTP storage adapter (optional)
|
|
133
|
-
* @returns OTP authentication handler
|
|
134
|
-
*
|
|
135
|
-
* @example
|
|
136
|
-
* ```typescript
|
|
137
|
-
* const handler = createOTPAuth({
|
|
138
|
-
* length: 6,
|
|
139
|
-
* expiresIn: 600,
|
|
140
|
-
* provider: 'email',
|
|
141
|
-
* })
|
|
142
|
-
* ```
|
|
143
|
-
*/
|
|
144
|
-
export declare function createOTPAuth(config?: OTPConfig, storage?: OTPStorageAdapter): OTPAuth;
|
|
145
|
-
/**
|
|
146
|
-
* TODO: Performance
|
|
147
|
-
* - [ ] Add OTP generation caching
|
|
148
|
-
* - [ ] Optimize storage lookups
|
|
149
|
-
* - [ ] Implement async code generation
|
|
150
|
-
*
|
|
151
|
-
* TODO: Features
|
|
152
|
-
* - [ ] Add SMS provider support
|
|
153
|
-
* - [ ] Implement OTP resend functionality
|
|
154
|
-
* - [ ] Add OTP rate limiting
|
|
155
|
-
* - [ ] Create OTP delivery tracking
|
|
156
|
-
* - [ ] Add OTP code hints (for testing)
|
|
157
|
-
*
|
|
158
|
-
* TODO: Security
|
|
159
|
-
* - [ ] Add OTP brute force protection
|
|
160
|
-
* - [ ] Implement OTP code rotation
|
|
161
|
-
* - [ ] Add OTP delivery verification
|
|
162
|
-
* - [ ] Create security event logging
|
|
163
|
-
*
|
|
164
|
-
* TODO: Type Safety
|
|
165
|
-
* - [ ] Add branded types for OTP codes
|
|
166
|
-
* - [ ] Create type-safe OTP storage
|
|
167
|
-
* - [ ] Implement compile-time validation
|
|
168
|
-
*
|
|
169
|
-
* TODO: Testing
|
|
170
|
-
* - [ ] Add comprehensive unit tests
|
|
171
|
-
* - [ ] Test OTP expiration
|
|
172
|
-
* - [ ] Test constant-time comparison
|
|
173
|
-
* - [ ] Add storage adapter tests
|
|
174
|
-
*
|
|
175
|
-
* TODO: Documentation
|
|
176
|
-
* - [ ] Document OTP flow
|
|
177
|
-
* - [ ] Add provider setup guide
|
|
178
|
-
* - [ ] Create security best practices guide
|
|
179
|
-
*
|
|
180
|
-
* TODO: Limitations
|
|
181
|
-
* - [ ] OTP storage is in-memory (consider Redis for production)
|
|
182
|
-
* - [ ] Code generation uses Math.random (consider crypto.randomInt)
|
|
183
|
-
* - [ ] No SMS provider implementation yet
|
|
184
|
-
*/
|
|
@@ -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 {};
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { Session } from '../types';
|
|
2
|
-
export interface TokenRefreshConfig {
|
|
3
|
-
/** Enable/disable automatic token refresh */
|
|
4
|
-
enabled?: boolean;
|
|
5
|
-
/** Time before token expiration to refresh (in seconds) */
|
|
6
|
-
refreshThreshold?: number;
|
|
7
|
-
/** Maximum number of refresh retries on failure */
|
|
8
|
-
maxRetries?: number;
|
|
9
|
-
/** Delay between retries (milliseconds) */
|
|
10
|
-
retryDelay?: number;
|
|
11
|
-
/** Maximum refresh requests per minute */
|
|
12
|
-
rateLimit?: number;
|
|
13
|
-
/** Enable/disable auto sign-out on refresh failure */
|
|
14
|
-
autoSignOutOnFailure?: boolean;
|
|
15
|
-
/** Login page URL for redirect on failure */
|
|
16
|
-
redirectToLogin?: string;
|
|
17
|
-
/** Enable/disable auto redirect on failure */
|
|
18
|
-
autoRedirectOnFailure?: boolean;
|
|
19
|
-
/** Callback on successful token refresh */
|
|
20
|
-
onTokenRefreshed?: (session: Session) => void | Promise<void>;
|
|
21
|
-
/** Callback on token refresh failure (before sign-out) */
|
|
22
|
-
onTokenRefreshFailed?: (error: Error) => void | Promise<void>;
|
|
23
|
-
/** Callback before redirect (can return false to cancel redirect) */
|
|
24
|
-
onBeforeRedirect?: (error: Error) => boolean | Promise<boolean>;
|
|
25
|
-
}
|
|
26
|
-
export interface TokenRefreshManager {
|
|
27
|
-
/** Refresh token with single refresh queue */
|
|
28
|
-
refreshToken(): Promise<Session | null>;
|
|
29
|
-
/** Check if refresh is in progress */
|
|
30
|
-
isRefreshing(): boolean;
|
|
31
|
-
/** Wait for current refresh to complete */
|
|
32
|
-
waitForRefresh(): Promise<Session | null>;
|
|
33
|
-
/** Clear state (on sign-out) */
|
|
34
|
-
clear(): void;
|
|
35
|
-
/** Handle token refresh failure */
|
|
36
|
-
handleRefreshFailure(error: Error): Promise<void>;
|
|
37
|
-
}
|
|
38
|
-
type RefreshFunction = () => Promise<Session | null>;
|
|
39
|
-
type SignOutFunction = () => Promise<{
|
|
40
|
-
success: boolean;
|
|
41
|
-
error?: string;
|
|
42
|
-
}>;
|
|
43
|
-
type ClearSessionFunction = () => Promise<void>;
|
|
44
|
-
/**
|
|
45
|
-
* Create Token Refresh Manager
|
|
46
|
-
*/
|
|
47
|
-
export declare function createTokenRefreshManager(refreshFn: RefreshFunction, signOutFn: SignOutFunction, clearSessionFn: ClearSessionFunction, config?: TokenRefreshConfig): TokenRefreshManager;
|
|
48
|
-
export {};
|