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,251 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Input validation and sanitization utilities with type safety.
|
|
3
|
-
*
|
|
4
|
-
* @module @mulguard/core/security/validation
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Validation result type.
|
|
8
|
-
*
|
|
9
|
-
* @template T - Type of sanitized value
|
|
10
|
-
*/
|
|
11
|
-
export interface ValidationResult<T = string> {
|
|
12
|
-
readonly valid: boolean;
|
|
13
|
-
readonly sanitized?: T;
|
|
14
|
-
readonly error?: string;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Email validation result.
|
|
18
|
-
*/
|
|
19
|
-
export type EmailValidationResult = ValidationResult<string>;
|
|
20
|
-
/**
|
|
21
|
-
* Password validation result with strength indicator.
|
|
22
|
-
*/
|
|
23
|
-
export interface PasswordValidationResult extends ValidationResult<string> {
|
|
24
|
-
readonly strength?: 'weak' | 'medium' | 'strong';
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Name validation result.
|
|
28
|
-
*/
|
|
29
|
-
export type NameValidationResult = ValidationResult<string>;
|
|
30
|
-
/**
|
|
31
|
-
* Token validation result.
|
|
32
|
-
*/
|
|
33
|
-
export type TokenValidationResult = ValidationResult<string>;
|
|
34
|
-
/**
|
|
35
|
-
* URL validation result.
|
|
36
|
-
*/
|
|
37
|
-
export type URLValidationResult = ValidationResult<string>;
|
|
38
|
-
/**
|
|
39
|
-
* Input sanitization options.
|
|
40
|
-
*/
|
|
41
|
-
export interface SanitizeOptions {
|
|
42
|
-
readonly maxLength?: number;
|
|
43
|
-
readonly allowHtml?: boolean;
|
|
44
|
-
readonly required?: boolean;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Validates and sanitizes an email address.
|
|
48
|
-
*
|
|
49
|
-
* @param email - Email address to validate
|
|
50
|
-
* @returns Validation result with sanitized email if valid
|
|
51
|
-
*
|
|
52
|
-
* @example
|
|
53
|
-
* ```typescript
|
|
54
|
-
* const result = validateAndSanitizeEmail(' User@Example.COM ')
|
|
55
|
-
* if (result.valid) {
|
|
56
|
-
* console.log(result.sanitized) // 'user@example.com'
|
|
57
|
-
* }
|
|
58
|
-
* ```
|
|
59
|
-
*/
|
|
60
|
-
export declare function validateAndSanitizeEmail(email: unknown): EmailValidationResult;
|
|
61
|
-
/**
|
|
62
|
-
* Type predicate to check if email validation result is valid.
|
|
63
|
-
*
|
|
64
|
-
* @param result - Validation result to check
|
|
65
|
-
* @returns True if validation is successful
|
|
66
|
-
*
|
|
67
|
-
* @example
|
|
68
|
-
* ```typescript
|
|
69
|
-
* const result = validateAndSanitizeEmail(email)
|
|
70
|
-
* if (isValidEmail(result)) {
|
|
71
|
-
* // TypeScript knows result.sanitized exists
|
|
72
|
-
* console.log(result.sanitized)
|
|
73
|
-
* }
|
|
74
|
-
* ```
|
|
75
|
-
*/
|
|
76
|
-
export declare function isValidEmail(result: EmailValidationResult): result is EmailValidationResult & {
|
|
77
|
-
valid: true;
|
|
78
|
-
sanitized: string;
|
|
79
|
-
};
|
|
80
|
-
/**
|
|
81
|
-
* Validates and sanitizes a password with strength assessment.
|
|
82
|
-
*
|
|
83
|
-
* @param password - Password to validate
|
|
84
|
-
* @param minLength - Minimum password length (default: 8)
|
|
85
|
-
* @returns Validation result with strength indicator if valid
|
|
86
|
-
*
|
|
87
|
-
* @example
|
|
88
|
-
* ```typescript
|
|
89
|
-
* const result = validateAndSanitizePassword('MyP@ssw0rd!')
|
|
90
|
-
* if (result.valid) {
|
|
91
|
-
* console.log(result.strength) // 'strong'
|
|
92
|
-
* }
|
|
93
|
-
* ```
|
|
94
|
-
*/
|
|
95
|
-
export declare function validateAndSanitizePassword(password: unknown, minLength?: number): PasswordValidationResult;
|
|
96
|
-
/**
|
|
97
|
-
* Type predicate to check if password validation result is valid.
|
|
98
|
-
*
|
|
99
|
-
* @param result - Validation result to check
|
|
100
|
-
* @returns True if validation is successful
|
|
101
|
-
*/
|
|
102
|
-
export declare function isValidPassword(result: PasswordValidationResult): result is PasswordValidationResult & {
|
|
103
|
-
valid: true;
|
|
104
|
-
sanitized: string;
|
|
105
|
-
};
|
|
106
|
-
/**
|
|
107
|
-
* Validates and sanitizes a name.
|
|
108
|
-
*
|
|
109
|
-
* @param name - Name to validate
|
|
110
|
-
* @returns Validation result with sanitized name if valid
|
|
111
|
-
*
|
|
112
|
-
* @example
|
|
113
|
-
* ```typescript
|
|
114
|
-
* const result = validateAndSanitizeName(' John Doe ')
|
|
115
|
-
* if (result.valid) {
|
|
116
|
-
* console.log(result.sanitized) // 'John Doe'
|
|
117
|
-
* }
|
|
118
|
-
* ```
|
|
119
|
-
*/
|
|
120
|
-
export declare function validateAndSanitizeName(name: unknown): NameValidationResult;
|
|
121
|
-
/**
|
|
122
|
-
* Type predicate to check if name validation result is valid.
|
|
123
|
-
*
|
|
124
|
-
* @param result - Validation result to check
|
|
125
|
-
* @returns True if validation is successful
|
|
126
|
-
*/
|
|
127
|
-
export declare function isValidName(result: NameValidationResult): result is NameValidationResult & {
|
|
128
|
-
valid: true;
|
|
129
|
-
sanitized: string;
|
|
130
|
-
};
|
|
131
|
-
/**
|
|
132
|
-
* Validates a URL.
|
|
133
|
-
*
|
|
134
|
-
* @param url - URL to validate
|
|
135
|
-
* @returns Validation result
|
|
136
|
-
*
|
|
137
|
-
* @example
|
|
138
|
-
* ```typescript
|
|
139
|
-
* const result = validateURL('https://example.com')
|
|
140
|
-
* if (result.valid) {
|
|
141
|
-
* // URL is valid
|
|
142
|
-
* }
|
|
143
|
-
* ```
|
|
144
|
-
*/
|
|
145
|
-
export declare function validateURL(url: unknown): URLValidationResult;
|
|
146
|
-
/**
|
|
147
|
-
* Type predicate to check if URL validation result is valid.
|
|
148
|
-
*
|
|
149
|
-
* @param result - Validation result to check
|
|
150
|
-
* @returns True if validation is successful
|
|
151
|
-
*/
|
|
152
|
-
export declare function isValidURL(result: URLValidationResult): result is URLValidationResult & {
|
|
153
|
-
valid: true;
|
|
154
|
-
sanitized: string;
|
|
155
|
-
};
|
|
156
|
-
/**
|
|
157
|
-
* Validates a token format with security checks.
|
|
158
|
-
*
|
|
159
|
-
* @param token - Token to validate
|
|
160
|
-
* @param minLength - Minimum token length (default: 16)
|
|
161
|
-
* @returns Validation result
|
|
162
|
-
*
|
|
163
|
-
* @example
|
|
164
|
-
* ```typescript
|
|
165
|
-
* const result = validateToken('abc123xyz')
|
|
166
|
-
* if (result.valid) {
|
|
167
|
-
* // Token is valid
|
|
168
|
-
* }
|
|
169
|
-
* ```
|
|
170
|
-
*/
|
|
171
|
-
export declare function validateToken(token: unknown, minLength?: number): TokenValidationResult;
|
|
172
|
-
/**
|
|
173
|
-
* Type predicate to check if token validation result is valid.
|
|
174
|
-
*
|
|
175
|
-
* @param result - Validation result to check
|
|
176
|
-
* @returns True if validation is successful
|
|
177
|
-
*/
|
|
178
|
-
export declare function isValidToken(result: TokenValidationResult): result is TokenValidationResult & {
|
|
179
|
-
valid: true;
|
|
180
|
-
sanitized: string;
|
|
181
|
-
};
|
|
182
|
-
/**
|
|
183
|
-
* Validates and sanitizes generic input with XSS prevention.
|
|
184
|
-
*
|
|
185
|
-
* @param input - Input to validate and sanitize
|
|
186
|
-
* @param options - Sanitization options
|
|
187
|
-
* @returns Validation result with sanitized input if valid
|
|
188
|
-
*
|
|
189
|
-
* @example
|
|
190
|
-
* ```typescript
|
|
191
|
-
* const result = validateAndSanitizeInput('<script>alert("xss")</script>', { allowHtml: false })
|
|
192
|
-
* if (result.valid) {
|
|
193
|
-
* console.log(result.sanitized) // HTML escaped
|
|
194
|
-
* }
|
|
195
|
-
* ```
|
|
196
|
-
*/
|
|
197
|
-
export declare function validateAndSanitizeInput(input: unknown, options?: SanitizeOptions): ValidationResult<string>;
|
|
198
|
-
/**
|
|
199
|
-
* Type predicate to check if input validation result is valid.
|
|
200
|
-
*
|
|
201
|
-
* @param result - Validation result to check
|
|
202
|
-
* @returns True if validation is successful
|
|
203
|
-
*/
|
|
204
|
-
export declare function isValidInput(result: ValidationResult<string>): result is ValidationResult<string> & {
|
|
205
|
-
valid: true;
|
|
206
|
-
sanitized: string;
|
|
207
|
-
};
|
|
208
|
-
/**
|
|
209
|
-
* TODO: Performance
|
|
210
|
-
* - [ ] Cache compiled regex patterns
|
|
211
|
-
* - [ ] Optimize password strength calculation
|
|
212
|
-
* - [ ] Add input length pre-check before full validation
|
|
213
|
-
* - [ ] Consider using Web Crypto API for token validation
|
|
214
|
-
*
|
|
215
|
-
* TODO: Features
|
|
216
|
-
* - [ ] Add internationalized email validation (IDN support)
|
|
217
|
-
* - [ ] Implement password breach checking (Have I Been Pwned API)
|
|
218
|
-
* - [ ] Add phone number validation
|
|
219
|
-
* - [ ] Create validation rule builder pattern
|
|
220
|
-
* - [ ] Add custom validation rule support
|
|
221
|
-
* - [ ] Implement validation result chaining
|
|
222
|
-
*
|
|
223
|
-
* TODO: Type Safety
|
|
224
|
-
* - [ ] Add branded types for validated inputs
|
|
225
|
-
* - [ ] Create type-level validation constraints
|
|
226
|
-
* - [ ] Implement compile-time validation rules
|
|
227
|
-
* - [ ] Add type guards for all validation results
|
|
228
|
-
*
|
|
229
|
-
* TODO: Security
|
|
230
|
-
* - [ ] Add rate limiting for validation attempts
|
|
231
|
-
* - [ ] Implement validation result caching (with TTL)
|
|
232
|
-
* - [ ] Add validation logging for security monitoring
|
|
233
|
-
* - [ ] Create validation error reporting
|
|
234
|
-
*
|
|
235
|
-
* TODO: Testing
|
|
236
|
-
* - [ ] Add comprehensive unit tests for all validators
|
|
237
|
-
* - [ ] Test edge cases (Unicode, emoji, etc.)
|
|
238
|
-
* - [ ] Test performance with large inputs
|
|
239
|
-
* - [ ] Add fuzzing tests for security
|
|
240
|
-
*
|
|
241
|
-
* TODO: Documentation
|
|
242
|
-
* - [ ] Add more JSDoc examples
|
|
243
|
-
* - [ ] Document validation rules and limits
|
|
244
|
-
* - [ ] Create validation best practices guide
|
|
245
|
-
*
|
|
246
|
-
* TODO: Limitations
|
|
247
|
-
* - [ ] Email validation is simplified (not full RFC 5322)
|
|
248
|
-
* - [ ] Password strength is basic (consider zxcvbn library)
|
|
249
|
-
* - [ ] HTML sanitization is basic (consider DOMPurify for complex cases)
|
|
250
|
-
* - [ ] No support for custom validation rules yet
|
|
251
|
-
*/
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* XSS Protection utilities
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Escape HTML to prevent XSS
|
|
6
|
-
*/
|
|
7
|
-
export declare function escapeHTML(str: string): string;
|
|
8
|
-
/**
|
|
9
|
-
* Sanitize HTML (basic)
|
|
10
|
-
* Note: For production, use a proper HTML sanitizer library like DOMPurify
|
|
11
|
-
*/
|
|
12
|
-
export declare function sanitizeHTML(html: string): string;
|
|
13
|
-
/**
|
|
14
|
-
* Validate and sanitize user input
|
|
15
|
-
*/
|
|
16
|
-
export declare function sanitizeUserInput(input: unknown): string;
|
|
17
|
-
/**
|
|
18
|
-
* Check for potential XSS patterns
|
|
19
|
-
*/
|
|
20
|
-
export declare function containsXSSPattern(input: string): boolean;
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Session management utilities
|
|
3
|
-
*/
|
|
4
|
-
export interface SessionStorage {
|
|
5
|
-
get(key: string): string | null;
|
|
6
|
-
set(key: string, value: string, options?: SessionCookieOptions): void;
|
|
7
|
-
remove(key: string): void;
|
|
8
|
-
}
|
|
9
|
-
export interface SessionCookieOptions {
|
|
10
|
-
expires?: Date | number;
|
|
11
|
-
maxAge?: number;
|
|
12
|
-
domain?: string;
|
|
13
|
-
path?: string;
|
|
14
|
-
secure?: boolean;
|
|
15
|
-
httpOnly?: boolean;
|
|
16
|
-
sameSite?: 'strict' | 'lax' | 'none';
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Cookie storage implementation (client-side only)
|
|
20
|
-
* Note: This is for browser environments. Server-side should use Next.js cookies() API
|
|
21
|
-
*/
|
|
22
|
-
export declare class CookieStorage implements SessionStorage {
|
|
23
|
-
get(key: string): string | null;
|
|
24
|
-
set(key: string, value: string, options?: SessionCookieOptions): void;
|
|
25
|
-
remove(key: string): void;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Memory storage implementation (for testing)
|
|
29
|
-
*/
|
|
30
|
-
export declare class MemoryStorage implements SessionStorage {
|
|
31
|
-
private storage;
|
|
32
|
-
get(key: string): string | null;
|
|
33
|
-
set(key: string, value: string): void;
|
|
34
|
-
remove(key: string): void;
|
|
35
|
-
}
|
|
@@ -1,235 +0,0 @@
|
|
|
1
|
-
import { Session, User, SessionConfig } from '../types';
|
|
2
|
-
import { Logger } from '../logger';
|
|
3
|
-
/**
|
|
4
|
-
* Session storage adapter interface.
|
|
5
|
-
*/
|
|
6
|
-
export interface SessionStorageAdapter {
|
|
7
|
-
/**
|
|
8
|
-
* Gets a session by key.
|
|
9
|
-
*
|
|
10
|
-
* @param key - Session key
|
|
11
|
-
* @returns Session data or null if not found
|
|
12
|
-
*/
|
|
13
|
-
get(key: string): Promise<string | null>;
|
|
14
|
-
/**
|
|
15
|
-
* Sets a session.
|
|
16
|
-
*
|
|
17
|
-
* @param key - Session key
|
|
18
|
-
* @param value - Session data
|
|
19
|
-
* @param expiresIn - Expiration time in milliseconds
|
|
20
|
-
*/
|
|
21
|
-
set(key: string, value: string, expiresIn: number): Promise<void>;
|
|
22
|
-
/**
|
|
23
|
-
* Deletes a session.
|
|
24
|
-
*
|
|
25
|
-
* @param key - Session key
|
|
26
|
-
*/
|
|
27
|
-
delete(key: string): Promise<void>;
|
|
28
|
-
/**
|
|
29
|
-
* Clears all sessions (optional).
|
|
30
|
-
*/
|
|
31
|
-
clear?(): Promise<void>;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Cookie-based session storage adapter.
|
|
35
|
-
*
|
|
36
|
-
* Uses browser/document.cookie for client-side or Next.js cookies() for server-side.
|
|
37
|
-
*/
|
|
38
|
-
export declare class CookieSessionStorage implements SessionStorageAdapter {
|
|
39
|
-
private readonly cookieName;
|
|
40
|
-
private readonly cookieOptions;
|
|
41
|
-
constructor(cookieName: string, options?: {
|
|
42
|
-
readonly httpOnly?: boolean;
|
|
43
|
-
readonly secure?: boolean;
|
|
44
|
-
readonly sameSite?: 'strict' | 'lax' | 'none';
|
|
45
|
-
readonly path?: string;
|
|
46
|
-
readonly domain?: string;
|
|
47
|
-
});
|
|
48
|
-
get(_key: string): Promise<string | null>;
|
|
49
|
-
set(_key: string, value: string, expiresIn: number): Promise<void>;
|
|
50
|
-
delete(_key: string): Promise<void>;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* In-memory session storage adapter (for testing or development).
|
|
54
|
-
*/
|
|
55
|
-
export declare class MemorySessionStorage implements SessionStorageAdapter {
|
|
56
|
-
private readonly storage;
|
|
57
|
-
get(key: string): Promise<string | null>;
|
|
58
|
-
set(key: string, value: string, expiresIn: number): Promise<void>;
|
|
59
|
-
delete(key: string): Promise<void>;
|
|
60
|
-
clear(): Promise<void>;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Session manager configuration.
|
|
64
|
-
*/
|
|
65
|
-
export interface SessionManagerConfig extends SessionConfig {
|
|
66
|
-
readonly storage?: SessionStorageAdapter;
|
|
67
|
-
readonly logger?: Logger;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Comprehensive session manager for authentication operations.
|
|
71
|
-
*
|
|
72
|
-
* Handles session creation, validation, storage, and expiration with
|
|
73
|
-
* support for multiple storage backends and caching.
|
|
74
|
-
*
|
|
75
|
-
* @example
|
|
76
|
-
* ```typescript
|
|
77
|
-
* const sessionManager = new SessionManager({
|
|
78
|
-
* cookieName: '__mulguard_session',
|
|
79
|
-
* expiresIn: 60 * 60 * 24 * 7, // 7 days
|
|
80
|
-
* httpOnly: true,
|
|
81
|
-
* secure: true,
|
|
82
|
-
* })
|
|
83
|
-
*
|
|
84
|
-
* // Create session
|
|
85
|
-
* const session = await sessionManager.createSession(user)
|
|
86
|
-
*
|
|
87
|
-
* // Get session
|
|
88
|
-
* const currentSession = await sessionManager.getSession()
|
|
89
|
-
* ```
|
|
90
|
-
*/
|
|
91
|
-
export declare class SessionManager {
|
|
92
|
-
private readonly config;
|
|
93
|
-
private readonly storage;
|
|
94
|
-
private readonly cache;
|
|
95
|
-
private readonly cacheTtl;
|
|
96
|
-
constructor(config: SessionManagerConfig);
|
|
97
|
-
/**
|
|
98
|
-
* Creates a new session for a user.
|
|
99
|
-
*
|
|
100
|
-
* @param user - User object
|
|
101
|
-
* @param additionalData - Additional session data (optional)
|
|
102
|
-
* @returns Created session
|
|
103
|
-
*
|
|
104
|
-
* @example
|
|
105
|
-
* ```typescript
|
|
106
|
-
* const session = await sessionManager.createSession(user, {
|
|
107
|
-
* accessToken: 'token123',
|
|
108
|
-
* })
|
|
109
|
-
* ```
|
|
110
|
-
*/
|
|
111
|
-
createSession<TUser extends User = User>(user: TUser, additionalData?: Partial<Omit<Session<TUser>, 'user' | 'expiresAt'>>): Promise<Session<TUser>>;
|
|
112
|
-
/**
|
|
113
|
-
* Gets the current session.
|
|
114
|
-
*
|
|
115
|
-
* Checks cache first, then storage, and validates expiration.
|
|
116
|
-
*
|
|
117
|
-
* @returns Current session or null if not found/expired
|
|
118
|
-
*
|
|
119
|
-
* @example
|
|
120
|
-
* ```typescript
|
|
121
|
-
* const session = await sessionManager.getSession()
|
|
122
|
-
* if (session) {
|
|
123
|
-
* console.log('User:', session.user.email)
|
|
124
|
-
* }
|
|
125
|
-
* ```
|
|
126
|
-
*/
|
|
127
|
-
getSession<TUser extends User = User>(): Promise<Session<TUser> | null>;
|
|
128
|
-
/**
|
|
129
|
-
* Saves a session to storage.
|
|
130
|
-
*
|
|
131
|
-
* @param session - Session to save
|
|
132
|
-
*
|
|
133
|
-
* @example
|
|
134
|
-
* ```typescript
|
|
135
|
-
* await sessionManager.saveSession(session)
|
|
136
|
-
* ```
|
|
137
|
-
*/
|
|
138
|
-
saveSession<TUser extends User = User>(session: Session<TUser>): Promise<void>;
|
|
139
|
-
/**
|
|
140
|
-
* Deletes the current session.
|
|
141
|
-
*
|
|
142
|
-
* @example
|
|
143
|
-
* ```typescript
|
|
144
|
-
* await sessionManager.deleteSession()
|
|
145
|
-
* ```
|
|
146
|
-
*/
|
|
147
|
-
deleteSession(): Promise<void>;
|
|
148
|
-
/**
|
|
149
|
-
* Validates a session.
|
|
150
|
-
*
|
|
151
|
-
* @param session - Session to validate
|
|
152
|
-
* @returns True if session is valid
|
|
153
|
-
*
|
|
154
|
-
* @example
|
|
155
|
-
* ```typescript
|
|
156
|
-
* if (sessionManager.validateSession(session)) {
|
|
157
|
-
* // Session is valid
|
|
158
|
-
* }
|
|
159
|
-
* ```
|
|
160
|
-
*/
|
|
161
|
-
validateSession<TUser extends User = User>(session: Session<TUser>): boolean;
|
|
162
|
-
/**
|
|
163
|
-
* Clears the session cache.
|
|
164
|
-
*/
|
|
165
|
-
clearCache(): void;
|
|
166
|
-
/**
|
|
167
|
-
* Cleans up expired cache entries.
|
|
168
|
-
*/
|
|
169
|
-
private cleanupCache;
|
|
170
|
-
/**
|
|
171
|
-
* Gets session configuration.
|
|
172
|
-
*
|
|
173
|
-
* @returns Session configuration
|
|
174
|
-
*/
|
|
175
|
-
getConfig(): Readonly<SessionManagerConfig>;
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* Creates a session manager instance.
|
|
179
|
-
*
|
|
180
|
-
* @param config - Session manager configuration
|
|
181
|
-
* @returns Session manager instance
|
|
182
|
-
*
|
|
183
|
-
* @example
|
|
184
|
-
* ```typescript
|
|
185
|
-
* const sessionManager = createSessionManager({
|
|
186
|
-
* cookieName: '__mulguard_session',
|
|
187
|
-
* expiresIn: 60 * 60 * 24 * 7,
|
|
188
|
-
* })
|
|
189
|
-
* ```
|
|
190
|
-
*/
|
|
191
|
-
export declare function createSessionManager(config: SessionManagerConfig): SessionManager;
|
|
192
|
-
export * from './index';
|
|
193
|
-
/**
|
|
194
|
-
* TODO: Performance
|
|
195
|
-
* - [ ] Add session compression for large sessions
|
|
196
|
-
* - [ ] Implement session chunking for very large sessions
|
|
197
|
-
* - [ ] Add session indexing for faster lookups
|
|
198
|
-
* - [ ] Optimize cache eviction strategy
|
|
199
|
-
*
|
|
200
|
-
* TODO: Features
|
|
201
|
-
* - [ ] Add Redis-based session storage adapter
|
|
202
|
-
* - [ ] Implement database session storage adapter
|
|
203
|
-
* - [ ] Add session refresh mechanism
|
|
204
|
-
* - [ ] Create session migration support
|
|
205
|
-
* - [ ] Add session analytics
|
|
206
|
-
* - [ ] Implement session sharing across subdomains
|
|
207
|
-
*
|
|
208
|
-
* TODO: Type Safety
|
|
209
|
-
* - [ ] Add branded types for session IDs
|
|
210
|
-
* - [ ] Create type-safe session data validation
|
|
211
|
-
* - [ ] Implement compile-time session schema validation
|
|
212
|
-
*
|
|
213
|
-
* TODO: Security
|
|
214
|
-
* - [ ] Add session encryption support
|
|
215
|
-
* - [ ] Implement session signing
|
|
216
|
-
* - [ ] Add session fingerprinting
|
|
217
|
-
* - [ ] Create session audit logging
|
|
218
|
-
* - [ ] Add session hijacking detection
|
|
219
|
-
*
|
|
220
|
-
* TODO: Testing
|
|
221
|
-
* - [ ] Add comprehensive unit tests
|
|
222
|
-
* - [ ] Test session expiration handling
|
|
223
|
-
* - [ ] Test cache invalidation
|
|
224
|
-
* - [ ] Add storage adapter tests
|
|
225
|
-
*
|
|
226
|
-
* TODO: Documentation
|
|
227
|
-
* - [ ] Document session lifecycle
|
|
228
|
-
* - [ ] Add storage adapter guide
|
|
229
|
-
* - [ ] Create session best practices guide
|
|
230
|
-
*
|
|
231
|
-
* TODO: Limitations
|
|
232
|
-
* - [ ] Cookie storage has size limits (~4KB)
|
|
233
|
-
* - [ ] Memory storage is not persistent
|
|
234
|
-
* - [ ] Cache cleanup runs on interval (consider event-based)
|
|
235
|
-
*/
|