@tinyrack/tinyauth-server 0.0.7
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/LICENSE +661 -0
- package/dist/emails/components/email-layout.d.ts +8 -0
- package/dist/emails/components/email-layout.d.ts.map +1 -0
- package/dist/emails/components/email-layout.js +6 -0
- package/dist/emails/components/email-layout.js.map +1 -0
- package/dist/emails/i18n/en.json +26 -0
- package/dist/emails/i18n/index.d.ts +3 -0
- package/dist/emails/i18n/index.d.ts.map +1 -0
- package/dist/emails/i18n/index.js +12 -0
- package/dist/emails/i18n/index.js.map +1 -0
- package/dist/emails/i18n/ja.json +26 -0
- package/dist/emails/i18n/ko.json +26 -0
- package/dist/emails/render.d.ts +12 -0
- package/dist/emails/render.d.ts.map +1 -0
- package/dist/emails/render.js +22 -0
- package/dist/emails/render.js.map +1 -0
- package/dist/emails/templates/password-reset.d.ts +10 -0
- package/dist/emails/templates/password-reset.d.ts.map +1 -0
- package/dist/emails/templates/password-reset.js +10 -0
- package/dist/emails/templates/password-reset.js.map +1 -0
- package/dist/emails/templates/verification.d.ts +10 -0
- package/dist/emails/templates/verification.d.ts.map +1 -0
- package/dist/emails/templates/verification.js +10 -0
- package/dist/emails/templates/verification.js.map +1 -0
- package/dist/entities/base.entity.d.ts +23 -0
- package/dist/entities/base.entity.d.ts.map +1 -0
- package/dist/entities/base.entity.js +17 -0
- package/dist/entities/base.entity.js.map +1 -0
- package/dist/entities/email-verification.entity.d.ts +90 -0
- package/dist/entities/email-verification.entity.d.ts.map +1 -0
- package/dist/entities/email-verification.entity.js +42 -0
- package/dist/entities/email-verification.entity.js.map +1 -0
- package/dist/entities/jwt-key.entity.d.ts +256 -0
- package/dist/entities/jwt-key.entity.d.ts.map +1 -0
- package/dist/entities/jwt-key.entity.js +125 -0
- package/dist/entities/jwt-key.entity.js.map +1 -0
- package/dist/entities/oauth-client.entity.d.ts +1541 -0
- package/dist/entities/oauth-client.entity.d.ts.map +1 -0
- package/dist/entities/oauth-client.entity.js +68 -0
- package/dist/entities/oauth-client.entity.js.map +1 -0
- package/dist/entities/oauth-code.entity.d.ts +1562 -0
- package/dist/entities/oauth-code.entity.d.ts.map +1 -0
- package/dist/entities/oauth-code.entity.js +79 -0
- package/dist/entities/oauth-code.entity.js.map +1 -0
- package/dist/entities/password-reset.entity.d.ts +90 -0
- package/dist/entities/password-reset.entity.d.ts.map +1 -0
- package/dist/entities/password-reset.entity.js +39 -0
- package/dist/entities/password-reset.entity.js.map +1 -0
- package/dist/entities/pending-oauth-registration.entity.d.ts +116 -0
- package/dist/entities/pending-oauth-registration.entity.d.ts.map +1 -0
- package/dist/entities/pending-oauth-registration.entity.js +67 -0
- package/dist/entities/pending-oauth-registration.entity.js.map +1 -0
- package/dist/entities/revoked-token.entity.d.ts +1559 -0
- package/dist/entities/revoked-token.entity.d.ts.map +1 -0
- package/dist/entities/revoked-token.entity.js +68 -0
- package/dist/entities/revoked-token.entity.js.map +1 -0
- package/dist/entities/terms-content.entity.d.ts +804 -0
- package/dist/entities/terms-content.entity.d.ts.map +1 -0
- package/dist/entities/terms-content.entity.js +46 -0
- package/dist/entities/terms-content.entity.js.map +1 -0
- package/dist/entities/terms.entity.d.ts +797 -0
- package/dist/entities/terms.entity.d.ts.map +1 -0
- package/dist/entities/terms.entity.js +42 -0
- package/dist/entities/terms.entity.js.map +1 -0
- package/dist/entities/user-consent.entity.d.ts +1555 -0
- package/dist/entities/user-consent.entity.d.ts.map +1 -0
- package/dist/entities/user-consent.entity.js +66 -0
- package/dist/entities/user-consent.entity.js.map +1 -0
- package/dist/entities/user-oauth.entity.d.ts +75 -0
- package/dist/entities/user-oauth.entity.d.ts.map +1 -0
- package/dist/entities/user-oauth.entity.js +45 -0
- package/dist/entities/user-oauth.entity.js.map +1 -0
- package/dist/entities/user-passkey.entity.d.ts +145 -0
- package/dist/entities/user-passkey.entity.d.ts.map +1 -0
- package/dist/entities/user-passkey.entity.js +64 -0
- package/dist/entities/user-passkey.entity.js.map +1 -0
- package/dist/entities/user-terms-consent.entity.d.ts +804 -0
- package/dist/entities/user-terms-consent.entity.d.ts.map +1 -0
- package/dist/entities/user-terms-consent.entity.js +62 -0
- package/dist/entities/user-terms-consent.entity.js.map +1 -0
- package/dist/entities/user-totp-recovery-code.entity.d.ts +527 -0
- package/dist/entities/user-totp-recovery-code.entity.d.ts.map +1 -0
- package/dist/entities/user-totp-recovery-code.entity.js +34 -0
- package/dist/entities/user-totp-recovery-code.entity.js.map +1 -0
- package/dist/entities/user-totp.entity.d.ts +527 -0
- package/dist/entities/user-totp.entity.d.ts.map +1 -0
- package/dist/entities/user-totp.entity.js +38 -0
- package/dist/entities/user-totp.entity.js.map +1 -0
- package/dist/entities/user.entity.d.ts +533 -0
- package/dist/entities/user.entity.d.ts.map +1 -0
- package/dist/entities/user.entity.js +70 -0
- package/dist/entities/user.entity.js.map +1 -0
- package/dist/entrypoints/app.d.ts +1300 -0
- package/dist/entrypoints/app.d.ts.map +1 -0
- package/dist/entrypoints/app.js +64 -0
- package/dist/entrypoints/app.js.map +1 -0
- package/dist/entrypoints/config/index.d.ts +2 -0
- package/dist/entrypoints/config/index.d.ts.map +1 -0
- package/dist/entrypoints/config/index.js +2 -0
- package/dist/entrypoints/config/index.js.map +1 -0
- package/dist/entrypoints/database/d1/cli.d.ts +3 -0
- package/dist/entrypoints/database/d1/cli.d.ts.map +1 -0
- package/dist/entrypoints/database/d1/cli.js +12 -0
- package/dist/entrypoints/database/d1/cli.js.map +1 -0
- package/dist/entrypoints/database/d1/compiled-functions.d.ts +666 -0
- package/dist/entrypoints/database/d1/compiled-functions.d.ts.map +1 -0
- package/dist/entrypoints/database/d1/compiled-functions.js +8365 -0
- package/dist/entrypoints/database/d1/compiled-functions.js.map +1 -0
- package/dist/entrypoints/database/d1/d1.d.ts +5 -0
- package/dist/entrypoints/database/d1/d1.d.ts.map +1 -0
- package/dist/entrypoints/database/d1/d1.js +39 -0
- package/dist/entrypoints/database/d1/d1.js.map +1 -0
- package/dist/entrypoints/database/postgres/cli.d.ts +3 -0
- package/dist/entrypoints/database/postgres/cli.d.ts.map +1 -0
- package/dist/entrypoints/database/postgres/cli.js +9 -0
- package/dist/entrypoints/database/postgres/cli.js.map +1 -0
- package/dist/entrypoints/database/postgres/compiled-functions.d.ts +666 -0
- package/dist/entrypoints/database/postgres/compiled-functions.d.ts.map +1 -0
- package/dist/entrypoints/database/postgres/compiled-functions.js +8365 -0
- package/dist/entrypoints/database/postgres/compiled-functions.js.map +1 -0
- package/dist/entrypoints/database/postgres/postgres.d.ts +9 -0
- package/dist/entrypoints/database/postgres/postgres.d.ts.map +1 -0
- package/dist/entrypoints/database/postgres/postgres.js +34 -0
- package/dist/entrypoints/database/postgres/postgres.js.map +1 -0
- package/dist/entrypoints/database/sqlite/cli.d.ts +3 -0
- package/dist/entrypoints/database/sqlite/cli.d.ts.map +1 -0
- package/dist/entrypoints/database/sqlite/cli.js +6 -0
- package/dist/entrypoints/database/sqlite/cli.js.map +1 -0
- package/dist/entrypoints/database/sqlite/compiled-functions.d.ts +666 -0
- package/dist/entrypoints/database/sqlite/compiled-functions.d.ts.map +1 -0
- package/dist/entrypoints/database/sqlite/compiled-functions.js +8365 -0
- package/dist/entrypoints/database/sqlite/compiled-functions.js.map +1 -0
- package/dist/entrypoints/database/sqlite/sqlite.d.ts +6 -0
- package/dist/entrypoints/database/sqlite/sqlite.d.ts.map +1 -0
- package/dist/entrypoints/database/sqlite/sqlite.js +32 -0
- package/dist/entrypoints/database/sqlite/sqlite.js.map +1 -0
- package/dist/entrypoints/frontend/cloudflare.d.ts +2 -0
- package/dist/entrypoints/frontend/cloudflare.d.ts.map +1 -0
- package/dist/entrypoints/frontend/cloudflare.js +2 -0
- package/dist/entrypoints/frontend/cloudflare.js.map +1 -0
- package/dist/entrypoints/frontend/index.d.ts +6 -0
- package/dist/entrypoints/frontend/index.d.ts.map +1 -0
- package/dist/entrypoints/frontend/index.js +3 -0
- package/dist/entrypoints/frontend/index.js.map +1 -0
- package/dist/entrypoints/frontend/proxy.d.ts +2 -0
- package/dist/entrypoints/frontend/proxy.d.ts.map +1 -0
- package/dist/entrypoints/frontend/proxy.js +2 -0
- package/dist/entrypoints/frontend/proxy.js.map +1 -0
- package/dist/entrypoints/frontend/static.d.ts +2 -0
- package/dist/entrypoints/frontend/static.d.ts.map +1 -0
- package/dist/entrypoints/frontend/static.js +2 -0
- package/dist/entrypoints/frontend/static.js.map +1 -0
- package/dist/entrypoints/identity-providers/apple.d.ts +14 -0
- package/dist/entrypoints/identity-providers/apple.d.ts.map +1 -0
- package/dist/entrypoints/identity-providers/apple.js +23 -0
- package/dist/entrypoints/identity-providers/apple.js.map +1 -0
- package/dist/entrypoints/identity-providers/generic-oauth.d.ts +25 -0
- package/dist/entrypoints/identity-providers/generic-oauth.d.ts.map +1 -0
- package/dist/entrypoints/identity-providers/generic-oauth.js +20 -0
- package/dist/entrypoints/identity-providers/generic-oauth.js.map +1 -0
- package/dist/entrypoints/identity-providers/github.d.ts +13 -0
- package/dist/entrypoints/identity-providers/github.d.ts.map +1 -0
- package/dist/entrypoints/identity-providers/github.js +24 -0
- package/dist/entrypoints/identity-providers/github.js.map +1 -0
- package/dist/entrypoints/identity-providers/google.d.ts +13 -0
- package/dist/entrypoints/identity-providers/google.d.ts.map +1 -0
- package/dist/entrypoints/identity-providers/google.js +24 -0
- package/dist/entrypoints/identity-providers/google.js.map +1 -0
- package/dist/entrypoints/index.d.ts +3 -0
- package/dist/entrypoints/index.d.ts.map +1 -0
- package/dist/entrypoints/index.js +3 -0
- package/dist/entrypoints/index.js.map +1 -0
- package/dist/entrypoints/mail/nodemailer.d.ts +11 -0
- package/dist/entrypoints/mail/nodemailer.d.ts.map +1 -0
- package/dist/entrypoints/mail/nodemailer.js +30 -0
- package/dist/entrypoints/mail/nodemailer.js.map +1 -0
- package/dist/entrypoints/scheduler/croner.d.ts +6 -0
- package/dist/entrypoints/scheduler/croner.d.ts.map +1 -0
- package/dist/entrypoints/scheduler/croner.js +22 -0
- package/dist/entrypoints/scheduler/croner.js.map +1 -0
- package/dist/entrypoints/services.d.ts +3 -0
- package/dist/entrypoints/services.d.ts.map +1 -0
- package/dist/entrypoints/services.js +2 -0
- package/dist/entrypoints/services.js.map +1 -0
- package/dist/lib/app-env.d.ts +17 -0
- package/dist/lib/app-env.d.ts.map +1 -0
- package/dist/lib/app-env.js +2 -0
- package/dist/lib/app-env.js.map +1 -0
- package/dist/lib/base64url.d.ts +33 -0
- package/dist/lib/base64url.d.ts.map +1 -0
- package/dist/lib/base64url.js +93 -0
- package/dist/lib/base64url.js.map +1 -0
- package/dist/lib/config/account-deletion.d.ts +11 -0
- package/dist/lib/config/account-deletion.d.ts.map +1 -0
- package/dist/lib/config/account-deletion.js +16 -0
- package/dist/lib/config/account-deletion.js.map +1 -0
- package/dist/lib/config/auth.d.ts +109 -0
- package/dist/lib/config/auth.d.ts.map +1 -0
- package/dist/lib/config/auth.js +155 -0
- package/dist/lib/config/auth.js.map +1 -0
- package/dist/lib/config/branding.d.ts +134 -0
- package/dist/lib/config/branding.d.ts.map +1 -0
- package/dist/lib/config/branding.js +83 -0
- package/dist/lib/config/branding.js.map +1 -0
- package/dist/lib/config/cleanup.d.ts +59 -0
- package/dist/lib/config/cleanup.d.ts.map +1 -0
- package/dist/lib/config/cleanup.js +119 -0
- package/dist/lib/config/cleanup.js.map +1 -0
- package/dist/lib/config/client.d.ts +30 -0
- package/dist/lib/config/client.d.ts.map +1 -0
- package/dist/lib/config/client.js +43 -0
- package/dist/lib/config/client.js.map +1 -0
- package/dist/lib/config/database.d.ts +8 -0
- package/dist/lib/config/database.d.ts.map +1 -0
- package/dist/lib/config/database.js +8 -0
- package/dist/lib/config/database.js.map +1 -0
- package/dist/lib/config/email.d.ts +17 -0
- package/dist/lib/config/email.d.ts.map +1 -0
- package/dist/lib/config/email.js +7 -0
- package/dist/lib/config/email.js.map +1 -0
- package/dist/lib/config/frontend.d.ts +12 -0
- package/dist/lib/config/frontend.d.ts.map +1 -0
- package/dist/lib/config/frontend.js +7 -0
- package/dist/lib/config/frontend.js.map +1 -0
- package/dist/lib/config/i18n.d.ts +31 -0
- package/dist/lib/config/i18n.d.ts.map +1 -0
- package/dist/lib/config/i18n.js +23 -0
- package/dist/lib/config/i18n.js.map +1 -0
- package/dist/lib/config/identity-providers.d.ts +66 -0
- package/dist/lib/config/identity-providers.d.ts.map +1 -0
- package/dist/lib/config/identity-providers.js +71 -0
- package/dist/lib/config/identity-providers.js.map +1 -0
- package/dist/lib/config/index.d.ts +41 -0
- package/dist/lib/config/index.d.ts.map +1 -0
- package/dist/lib/config/index.js +21 -0
- package/dist/lib/config/index.js.map +1 -0
- package/dist/lib/config/logging.d.ts +52 -0
- package/dist/lib/config/logging.d.ts.map +1 -0
- package/dist/lib/config/logging.js +41 -0
- package/dist/lib/config/logging.js.map +1 -0
- package/dist/lib/config/openapi.d.ts +15 -0
- package/dist/lib/config/openapi.d.ts.map +1 -0
- package/dist/lib/config/openapi.js +28 -0
- package/dist/lib/config/openapi.js.map +1 -0
- package/dist/lib/config/registration.d.ts +15 -0
- package/dist/lib/config/registration.d.ts.map +1 -0
- package/dist/lib/config/registration.js +24 -0
- package/dist/lib/config/registration.js.map +1 -0
- package/dist/lib/config/resolved.d.ts +274 -0
- package/dist/lib/config/resolved.d.ts.map +1 -0
- package/dist/lib/config/resolved.js +45 -0
- package/dist/lib/config/resolved.js.map +1 -0
- package/dist/lib/config/scheduler.d.ts +13 -0
- package/dist/lib/config/scheduler.d.ts.map +1 -0
- package/dist/lib/config/scheduler.js +14 -0
- package/dist/lib/config/scheduler.js.map +1 -0
- package/dist/lib/config/security.d.ts +11 -0
- package/dist/lib/config/security.d.ts.map +1 -0
- package/dist/lib/config/security.js +42 -0
- package/dist/lib/config/security.js.map +1 -0
- package/dist/lib/config/server.d.ts +13 -0
- package/dist/lib/config/server.d.ts.map +1 -0
- package/dist/lib/config/server.js +45 -0
- package/dist/lib/config/server.js.map +1 -0
- package/dist/lib/config/terms.d.ts +47 -0
- package/dist/lib/config/terms.d.ts.map +1 -0
- package/dist/lib/config/terms.js +71 -0
- package/dist/lib/config/terms.js.map +1 -0
- package/dist/lib/config/tokens.d.ts +32 -0
- package/dist/lib/config/tokens.d.ts.map +1 -0
- package/dist/lib/config/tokens.js +47 -0
- package/dist/lib/config/tokens.js.map +1 -0
- package/dist/lib/config/user.d.ts +22 -0
- package/dist/lib/config/user.d.ts.map +1 -0
- package/dist/lib/config/user.js +18 -0
- package/dist/lib/config/user.js.map +1 -0
- package/dist/lib/crypto.d.ts +106 -0
- package/dist/lib/crypto.d.ts.map +1 -0
- package/dist/lib/crypto.js +253 -0
- package/dist/lib/crypto.js.map +1 -0
- package/dist/lib/database/compiled-functions.d.ts +16 -0
- package/dist/lib/database/compiled-functions.d.ts.map +1 -0
- package/dist/lib/database/compiled-functions.js +66 -0
- package/dist/lib/database/compiled-functions.js.map +1 -0
- package/dist/lib/database/entities.d.ts +10 -0
- package/dist/lib/database/entities.d.ts.map +1 -0
- package/dist/lib/database/entities.js +43 -0
- package/dist/lib/database/entities.js.map +1 -0
- package/dist/lib/duration.d.ts +44 -0
- package/dist/lib/duration.d.ts.map +1 -0
- package/dist/lib/duration.js +103 -0
- package/dist/lib/duration.js.map +1 -0
- package/dist/lib/email-pattern.d.ts +16 -0
- package/dist/lib/email-pattern.d.ts.map +1 -0
- package/dist/lib/email-pattern.js +41 -0
- package/dist/lib/email-pattern.js.map +1 -0
- package/dist/lib/frontend/cloudflare.d.ts +12 -0
- package/dist/lib/frontend/cloudflare.d.ts.map +1 -0
- package/dist/lib/frontend/cloudflare.js +34 -0
- package/dist/lib/frontend/cloudflare.js.map +1 -0
- package/dist/lib/frontend/proxy.d.ts +24 -0
- package/dist/lib/frontend/proxy.d.ts.map +1 -0
- package/dist/lib/frontend/proxy.js +38 -0
- package/dist/lib/frontend/proxy.js.map +1 -0
- package/dist/lib/frontend/static.d.ts +21 -0
- package/dist/lib/frontend/static.d.ts.map +1 -0
- package/dist/lib/frontend/static.js +108 -0
- package/dist/lib/frontend/static.js.map +1 -0
- package/dist/lib/interpolate-html.d.ts +34 -0
- package/dist/lib/interpolate-html.d.ts.map +1 -0
- package/dist/lib/interpolate-html.js +63 -0
- package/dist/lib/interpolate-html.js.map +1 -0
- package/dist/lib/ip-utils.d.ts +61 -0
- package/dist/lib/ip-utils.d.ts.map +1 -0
- package/dist/lib/ip-utils.js +213 -0
- package/dist/lib/ip-utils.js.map +1 -0
- package/dist/lib/locale.d.ts +57 -0
- package/dist/lib/locale.d.ts.map +1 -0
- package/dist/lib/locale.js +25 -0
- package/dist/lib/locale.js.map +1 -0
- package/dist/lib/logger.d.ts +14 -0
- package/dist/lib/logger.d.ts.map +1 -0
- package/dist/lib/logger.js +41 -0
- package/dist/lib/logger.js.map +1 -0
- package/dist/lib/openapi.d.ts +35 -0
- package/dist/lib/openapi.d.ts.map +1 -0
- package/dist/lib/openapi.js +33 -0
- package/dist/lib/openapi.js.map +1 -0
- package/dist/lib/password-policy.d.ts +39 -0
- package/dist/lib/password-policy.d.ts.map +1 -0
- package/dist/lib/password-policy.js +51 -0
- package/dist/lib/password-policy.js.map +1 -0
- package/dist/lib/pkce.d.ts +26 -0
- package/dist/lib/pkce.d.ts.map +1 -0
- package/dist/lib/pkce.js +52 -0
- package/dist/lib/pkce.js.map +1 -0
- package/dist/lib/scopes.d.ts +10 -0
- package/dist/lib/scopes.d.ts.map +1 -0
- package/dist/lib/scopes.js +35 -0
- package/dist/lib/scopes.js.map +1 -0
- package/dist/lib/swagger-tags.d.ts +15 -0
- package/dist/lib/swagger-tags.d.ts.map +1 -0
- package/dist/lib/swagger-tags.js +15 -0
- package/dist/lib/swagger-tags.js.map +1 -0
- package/dist/middleware/auth.d.ts +64 -0
- package/dist/middleware/auth.d.ts.map +1 -0
- package/dist/middleware/auth.js +123 -0
- package/dist/middleware/auth.js.map +1 -0
- package/dist/middleware/logger.d.ts +18 -0
- package/dist/middleware/logger.d.ts.map +1 -0
- package/dist/middleware/logger.js +38 -0
- package/dist/middleware/logger.js.map +1 -0
- package/dist/middleware/mikro-orm.d.ts +3 -0
- package/dist/middleware/mikro-orm.d.ts.map +1 -0
- package/dist/middleware/mikro-orm.js +11 -0
- package/dist/middleware/mikro-orm.js.map +1 -0
- package/dist/middleware/services.d.ts +8 -0
- package/dist/middleware/services.d.ts.map +1 -0
- package/dist/middleware/services.js +8 -0
- package/dist/middleware/services.js.map +1 -0
- package/dist/middleware/session.d.ts +63 -0
- package/dist/middleware/session.d.ts.map +1 -0
- package/dist/middleware/session.js +89 -0
- package/dist/middleware/session.js.map +1 -0
- package/dist/middleware/trusted-proxy-guard.d.ts +7 -0
- package/dist/middleware/trusted-proxy-guard.d.ts.map +1 -0
- package/dist/middleware/trusted-proxy-guard.js +34 -0
- package/dist/middleware/trusted-proxy-guard.js.map +1 -0
- package/dist/repositories/email-verification.repository.d.ts +18 -0
- package/dist/repositories/email-verification.repository.d.ts.map +1 -0
- package/dist/repositories/email-verification.repository.js +47 -0
- package/dist/repositories/email-verification.repository.js.map +1 -0
- package/dist/repositories/jwt-key.repository.d.ts +49 -0
- package/dist/repositories/jwt-key.repository.d.ts.map +1 -0
- package/dist/repositories/jwt-key.repository.js +72 -0
- package/dist/repositories/jwt-key.repository.js.map +1 -0
- package/dist/repositories/oauth-client.repository.d.ts +5 -0
- package/dist/repositories/oauth-client.repository.d.ts.map +1 -0
- package/dist/repositories/oauth-client.repository.js +4 -0
- package/dist/repositories/oauth-client.repository.js.map +1 -0
- package/dist/repositories/oauth-code.repository.d.ts +19 -0
- package/dist/repositories/oauth-code.repository.d.ts.map +1 -0
- package/dist/repositories/oauth-code.repository.js +32 -0
- package/dist/repositories/oauth-code.repository.js.map +1 -0
- package/dist/repositories/password-reset.repository.d.ts +19 -0
- package/dist/repositories/password-reset.repository.d.ts.map +1 -0
- package/dist/repositories/password-reset.repository.js +53 -0
- package/dist/repositories/password-reset.repository.js.map +1 -0
- package/dist/repositories/pending-oauth-registration.repository.d.ts +38 -0
- package/dist/repositories/pending-oauth-registration.repository.d.ts.map +1 -0
- package/dist/repositories/pending-oauth-registration.repository.js +50 -0
- package/dist/repositories/pending-oauth-registration.repository.js.map +1 -0
- package/dist/repositories/revoked-token.repository.d.ts +32 -0
- package/dist/repositories/revoked-token.repository.d.ts.map +1 -0
- package/dist/repositories/revoked-token.repository.js +43 -0
- package/dist/repositories/revoked-token.repository.js.map +1 -0
- package/dist/repositories/terms-content.repository.d.ts +5 -0
- package/dist/repositories/terms-content.repository.d.ts.map +1 -0
- package/dist/repositories/terms-content.repository.js +4 -0
- package/dist/repositories/terms-content.repository.js.map +1 -0
- package/dist/repositories/terms.repository.d.ts +9 -0
- package/dist/repositories/terms.repository.d.ts.map +1 -0
- package/dist/repositories/terms.repository.js +12 -0
- package/dist/repositories/terms.repository.js.map +1 -0
- package/dist/repositories/user-consent.repository.d.ts +22 -0
- package/dist/repositories/user-consent.repository.d.ts.map +1 -0
- package/dist/repositories/user-consent.repository.js +51 -0
- package/dist/repositories/user-consent.repository.js.map +1 -0
- package/dist/repositories/user-oauth.repository.d.ts +68 -0
- package/dist/repositories/user-oauth.repository.d.ts.map +1 -0
- package/dist/repositories/user-oauth.repository.js +94 -0
- package/dist/repositories/user-oauth.repository.js.map +1 -0
- package/dist/repositories/user-passkey.repository.d.ts +187 -0
- package/dist/repositories/user-passkey.repository.d.ts.map +1 -0
- package/dist/repositories/user-passkey.repository.js +61 -0
- package/dist/repositories/user-passkey.repository.js.map +1 -0
- package/dist/repositories/user-terms-consent.repository.d.ts +38 -0
- package/dist/repositories/user-terms-consent.repository.d.ts.map +1 -0
- package/dist/repositories/user-terms-consent.repository.js +71 -0
- package/dist/repositories/user-terms-consent.repository.js.map +1 -0
- package/dist/repositories/user-totp-recovery-code.repository.d.ts +376 -0
- package/dist/repositories/user-totp-recovery-code.repository.d.ts.map +1 -0
- package/dist/repositories/user-totp-recovery-code.repository.js +41 -0
- package/dist/repositories/user-totp-recovery-code.repository.js.map +1 -0
- package/dist/repositories/user-totp.repository.d.ts +564 -0
- package/dist/repositories/user-totp.repository.d.ts.map +1 -0
- package/dist/repositories/user-totp.repository.js +56 -0
- package/dist/repositories/user-totp.repository.js.map +1 -0
- package/dist/repositories/user.repository.d.ts +32 -0
- package/dist/repositories/user.repository.d.ts.map +1 -0
- package/dist/repositories/user.repository.js +70 -0
- package/dist/repositories/user.repository.js.map +1 -0
- package/dist/routes/.well-known/index.d.ts +12 -0
- package/dist/routes/.well-known/index.d.ts.map +1 -0
- package/dist/routes/.well-known/index.js +4 -0
- package/dist/routes/.well-known/index.js.map +1 -0
- package/dist/routes/.well-known/openid-configuration/get.d.ts +19 -0
- package/dist/routes/.well-known/openid-configuration/get.d.ts.map +1 -0
- package/dist/routes/.well-known/openid-configuration/get.js +12 -0
- package/dist/routes/.well-known/openid-configuration/get.js.map +1 -0
- package/dist/routes/api/auth/email/resend/post.d.ts +22 -0
- package/dist/routes/api/auth/email/resend/post.d.ts.map +1 -0
- package/dist/routes/api/auth/email/resend/post.js +64 -0
- package/dist/routes/api/auth/email/resend/post.js.map +1 -0
- package/dist/routes/api/auth/email/verify/post.d.ts +29 -0
- package/dist/routes/api/auth/email/verify/post.d.ts.map +1 -0
- package/dist/routes/api/auth/email/verify/post.js +55 -0
- package/dist/routes/api/auth/email/verify/post.js.map +1 -0
- package/dist/routes/api/auth/index.d.ts +275 -0
- package/dist/routes/api/auth/index.d.ts.map +1 -0
- package/dist/routes/api/auth/index.js +25 -0
- package/dist/routes/api/auth/index.js.map +1 -0
- package/dist/routes/api/auth/login/post.d.ts +30 -0
- package/dist/routes/api/auth/login/post.d.ts.map +1 -0
- package/dist/routes/api/auth/login/post.js +76 -0
- package/dist/routes/api/auth/login/post.js.map +1 -0
- package/dist/routes/api/auth/logout/post.d.ts +14 -0
- package/dist/routes/api/auth/logout/post.d.ts.map +1 -0
- package/dist/routes/api/auth/logout/post.js +21 -0
- package/dist/routes/api/auth/logout/post.js.map +1 -0
- package/dist/routes/api/auth/passkey/options/post.d.ts +31 -0
- package/dist/routes/api/auth/passkey/options/post.d.ts.map +1 -0
- package/dist/routes/api/auth/passkey/options/post.js +43 -0
- package/dist/routes/api/auth/passkey/options/post.js.map +1 -0
- package/dist/routes/api/auth/passkey/verify/post.d.ts +41 -0
- package/dist/routes/api/auth/passkey/verify/post.d.ts.map +1 -0
- package/dist/routes/api/auth/passkey/verify/post.js +75 -0
- package/dist/routes/api/auth/passkey/verify/post.js.map +1 -0
- package/dist/routes/api/auth/password/forgot/post.d.ts +22 -0
- package/dist/routes/api/auth/password/forgot/post.d.ts.map +1 -0
- package/dist/routes/api/auth/password/forgot/post.js +72 -0
- package/dist/routes/api/auth/password/forgot/post.js.map +1 -0
- package/dist/routes/api/auth/password/reset/post.d.ts +19 -0
- package/dist/routes/api/auth/password/reset/post.d.ts.map +1 -0
- package/dist/routes/api/auth/password/reset/post.js +62 -0
- package/dist/routes/api/auth/password/reset/post.js.map +1 -0
- package/dist/routes/api/auth/register/post.d.ts +39 -0
- package/dist/routes/api/auth/register/post.d.ts.map +1 -0
- package/dist/routes/api/auth/register/post.js +95 -0
- package/dist/routes/api/auth/register/post.js.map +1 -0
- package/dist/routes/api/auth/totp/recovery/verify/post.d.ts +36 -0
- package/dist/routes/api/auth/totp/recovery/verify/post.d.ts.map +1 -0
- package/dist/routes/api/auth/totp/recovery/verify/post.js +68 -0
- package/dist/routes/api/auth/totp/recovery/verify/post.js.map +1 -0
- package/dist/routes/api/auth/totp/verify/post.d.ts +29 -0
- package/dist/routes/api/auth/totp/verify/post.d.ts.map +1 -0
- package/dist/routes/api/auth/totp/verify/post.js +59 -0
- package/dist/routes/api/auth/totp/verify/post.js.map +1 -0
- package/dist/routes/api/config/get.d.ts +76 -0
- package/dist/routes/api/config/get.d.ts.map +1 -0
- package/dist/routes/api/config/get.js +70 -0
- package/dist/routes/api/config/get.js.map +1 -0
- package/dist/routes/api/config/index.d.ts +76 -0
- package/dist/routes/api/config/index.d.ts.map +1 -0
- package/dist/routes/api/config/index.js +4 -0
- package/dist/routes/api/config/index.js.map +1 -0
- package/dist/routes/api/consent/get.d.ts +37 -0
- package/dist/routes/api/consent/get.d.ts.map +1 -0
- package/dist/routes/api/consent/get.js +73 -0
- package/dist/routes/api/consent/get.js.map +1 -0
- package/dist/routes/api/consent/index.d.ts +54 -0
- package/dist/routes/api/consent/index.d.ts.map +1 -0
- package/dist/routes/api/consent/index.js +7 -0
- package/dist/routes/api/consent/index.js.map +1 -0
- package/dist/routes/api/consent/post.d.ts +33 -0
- package/dist/routes/api/consent/post.d.ts.map +1 -0
- package/dist/routes/api/consent/post.js +105 -0
- package/dist/routes/api/consent/post.js.map +1 -0
- package/dist/routes/api/docs/get.d.ts +17 -0
- package/dist/routes/api/docs/get.d.ts.map +1 -0
- package/dist/routes/api/docs/get.js +19 -0
- package/dist/routes/api/docs/get.js.map +1 -0
- package/dist/routes/api/docs/index.d.ts +12 -0
- package/dist/routes/api/docs/index.d.ts.map +1 -0
- package/dist/routes/api/docs/index.js +4 -0
- package/dist/routes/api/docs/index.js.map +1 -0
- package/dist/routes/api/health/get.d.ts +36 -0
- package/dist/routes/api/health/get.d.ts.map +1 -0
- package/dist/routes/api/health/get.js +64 -0
- package/dist/routes/api/health/get.js.map +1 -0
- package/dist/routes/api/health/index.d.ts +66 -0
- package/dist/routes/api/health/index.d.ts.map +1 -0
- package/dist/routes/api/health/index.js +9 -0
- package/dist/routes/api/health/index.js.map +1 -0
- package/dist/routes/api/health/live/get.d.ts +20 -0
- package/dist/routes/api/health/live/get.d.ts.map +1 -0
- package/dist/routes/api/health/live/get.js +28 -0
- package/dist/routes/api/health/live/get.js.map +1 -0
- package/dist/routes/api/health/ready/get.d.ts +35 -0
- package/dist/routes/api/health/ready/get.d.ts.map +1 -0
- package/dist/routes/api/health/ready/get.js +60 -0
- package/dist/routes/api/health/ready/get.js.map +1 -0
- package/dist/routes/api/index.d.ts +927 -0
- package/dist/routes/api/index.d.ts.map +1 -0
- package/dist/routes/api/index.js +19 -0
- package/dist/routes/api/index.js.map +1 -0
- package/dist/routes/api/oauth/_provider/authorize/get.d.ts +21 -0
- package/dist/routes/api/oauth/_provider/authorize/get.d.ts.map +1 -0
- package/dist/routes/api/oauth/_provider/authorize/get.js +60 -0
- package/dist/routes/api/oauth/_provider/authorize/get.js.map +1 -0
- package/dist/routes/api/oauth/_provider/callback/get.d.ts +23 -0
- package/dist/routes/api/oauth/_provider/callback/get.d.ts.map +1 -0
- package/dist/routes/api/oauth/_provider/callback/get.js +137 -0
- package/dist/routes/api/oauth/_provider/callback/get.js.map +1 -0
- package/dist/routes/api/oauth/_provider/callback/post.d.ts +23 -0
- package/dist/routes/api/oauth/_provider/callback/post.d.ts.map +1 -0
- package/dist/routes/api/oauth/_provider/callback/post.js +140 -0
- package/dist/routes/api/oauth/_provider/callback/post.js.map +1 -0
- package/dist/routes/api/oauth/_provider/delete.d.ts +18 -0
- package/dist/routes/api/oauth/_provider/delete.d.ts.map +1 -0
- package/dist/routes/api/oauth/_provider/delete.js +62 -0
- package/dist/routes/api/oauth/_provider/delete.js.map +1 -0
- package/dist/routes/api/oauth/index.d.ts +76 -0
- package/dist/routes/api/oauth/index.d.ts.map +1 -0
- package/dist/routes/api/oauth/index.js +11 -0
- package/dist/routes/api/oauth/index.js.map +1 -0
- package/dist/routes/api/terms/consent/post.d.ts +29 -0
- package/dist/routes/api/terms/consent/post.d.ts.map +1 -0
- package/dist/routes/api/terms/consent/post.js +111 -0
- package/dist/routes/api/terms/consent/post.js.map +1 -0
- package/dist/routes/api/terms/get.d.ts +40 -0
- package/dist/routes/api/terms/get.d.ts.map +1 -0
- package/dist/routes/api/terms/get.js +53 -0
- package/dist/routes/api/terms/get.js.map +1 -0
- package/dist/routes/api/terms/index.d.ts +55 -0
- package/dist/routes/api/terms/index.d.ts.map +1 -0
- package/dist/routes/api/terms/index.js +7 -0
- package/dist/routes/api/terms/index.js.map +1 -0
- package/dist/routes/api/user/delete.d.ts +21 -0
- package/dist/routes/api/user/delete.d.ts.map +1 -0
- package/dist/routes/api/user/delete.js +89 -0
- package/dist/routes/api/user/delete.js.map +1 -0
- package/dist/routes/api/user/index.d.ts +334 -0
- package/dist/routes/api/user/index.d.ts.map +1 -0
- package/dist/routes/api/user/index.js +35 -0
- package/dist/routes/api/user/index.js.map +1 -0
- package/dist/routes/api/user/oauth-accounts/get.d.ts +23 -0
- package/dist/routes/api/user/oauth-accounts/get.d.ts.map +1 -0
- package/dist/routes/api/user/oauth-accounts/get.js +58 -0
- package/dist/routes/api/user/oauth-accounts/get.js.map +1 -0
- package/dist/routes/api/user/passkeys/_id/delete.d.ts +18 -0
- package/dist/routes/api/user/passkeys/_id/delete.d.ts.map +1 -0
- package/dist/routes/api/user/passkeys/_id/delete.js +87 -0
- package/dist/routes/api/user/passkeys/_id/delete.js.map +1 -0
- package/dist/routes/api/user/passkeys/_id/patch.d.ts +22 -0
- package/dist/routes/api/user/passkeys/_id/patch.d.ts.map +1 -0
- package/dist/routes/api/user/passkeys/_id/patch.js +64 -0
- package/dist/routes/api/user/passkeys/_id/patch.js.map +1 -0
- package/dist/routes/api/user/passkeys/get.d.ts +21 -0
- package/dist/routes/api/user/passkeys/get.d.ts.map +1 -0
- package/dist/routes/api/user/passkeys/get.js +52 -0
- package/dist/routes/api/user/passkeys/get.js.map +1 -0
- package/dist/routes/api/user/passkeys/register/options/post.d.ts +55 -0
- package/dist/routes/api/user/passkeys/register/options/post.d.ts.map +1 -0
- package/dist/routes/api/user/passkeys/register/options/post.js +74 -0
- package/dist/routes/api/user/passkeys/register/options/post.js.map +1 -0
- package/dist/routes/api/user/passkeys/register/verify/post.d.ts +50 -0
- package/dist/routes/api/user/passkeys/register/verify/post.d.ts.map +1 -0
- package/dist/routes/api/user/passkeys/register/verify/post.js +95 -0
- package/dist/routes/api/user/passkeys/register/verify/post.js.map +1 -0
- package/dist/routes/api/user/password/delete.d.ts +23 -0
- package/dist/routes/api/user/password/delete.d.ts.map +1 -0
- package/dist/routes/api/user/password/delete.js +78 -0
- package/dist/routes/api/user/password/delete.js.map +1 -0
- package/dist/routes/api/user/password/post.d.ts +23 -0
- package/dist/routes/api/user/password/post.d.ts.map +1 -0
- package/dist/routes/api/user/password/post.js +81 -0
- package/dist/routes/api/user/password/post.js.map +1 -0
- package/dist/routes/api/user/password/put.d.ts +24 -0
- package/dist/routes/api/user/password/put.d.ts.map +1 -0
- package/dist/routes/api/user/password/put.js +74 -0
- package/dist/routes/api/user/password/put.js.map +1 -0
- package/dist/routes/api/user/session/get.d.ts +32 -0
- package/dist/routes/api/user/session/get.d.ts.map +1 -0
- package/dist/routes/api/user/session/get.js +36 -0
- package/dist/routes/api/user/session/get.js.map +1 -0
- package/dist/routes/api/user/totp/confirm/post.d.ts +32 -0
- package/dist/routes/api/user/totp/confirm/post.d.ts.map +1 -0
- package/dist/routes/api/user/totp/confirm/post.js +73 -0
- package/dist/routes/api/user/totp/confirm/post.js.map +1 -0
- package/dist/routes/api/user/totp/delete.d.ts +23 -0
- package/dist/routes/api/user/totp/delete.d.ts.map +1 -0
- package/dist/routes/api/user/totp/delete.js +74 -0
- package/dist/routes/api/user/totp/delete.js.map +1 -0
- package/dist/routes/api/user/totp/recovery/regenerate/post.d.ts +18 -0
- package/dist/routes/api/user/totp/recovery/regenerate/post.d.ts.map +1 -0
- package/dist/routes/api/user/totp/recovery/regenerate/post.js +54 -0
- package/dist/routes/api/user/totp/recovery/regenerate/post.js.map +1 -0
- package/dist/routes/api/user/totp/setup/post.d.ts +22 -0
- package/dist/routes/api/user/totp/setup/post.d.ts.map +1 -0
- package/dist/routes/api/user/totp/setup/post.js +82 -0
- package/dist/routes/api/user/totp/setup/post.js.map +1 -0
- package/dist/routes/api/user/totp/verify/post.d.ts +23 -0
- package/dist/routes/api/user/totp/verify/post.d.ts.map +1 -0
- package/dist/routes/api/user/totp/verify/post.js +71 -0
- package/dist/routes/api/user/totp/verify/post.js.map +1 -0
- package/dist/routes/index.d.ts +1115 -0
- package/dist/routes/index.d.ts.map +1 -0
- package/dist/routes/index.js +9 -0
- package/dist/routes/index.js.map +1 -0
- package/dist/routes/oauth/.well-known/jwks/get.d.ts +24 -0
- package/dist/routes/oauth/.well-known/jwks/get.d.ts.map +1 -0
- package/dist/routes/oauth/.well-known/jwks/get.js +41 -0
- package/dist/routes/oauth/.well-known/jwks/get.js.map +1 -0
- package/dist/routes/oauth/.well-known/openid-configuration/get.d.ts +29 -0
- package/dist/routes/oauth/.well-known/openid-configuration/get.d.ts.map +1 -0
- package/dist/routes/oauth/.well-known/openid-configuration/get.js +119 -0
- package/dist/routes/oauth/.well-known/openid-configuration/get.js.map +1 -0
- package/dist/routes/oauth/authorize/get.d.ts +48 -0
- package/dist/routes/oauth/authorize/get.d.ts.map +1 -0
- package/dist/routes/oauth/authorize/get.js +102 -0
- package/dist/routes/oauth/authorize/get.js.map +1 -0
- package/dist/routes/oauth/index.d.ts +182 -0
- package/dist/routes/oauth/index.d.ts.map +1 -0
- package/dist/routes/oauth/index.js +17 -0
- package/dist/routes/oauth/index.js.map +1 -0
- package/dist/routes/oauth/introspect/post.d.ts +28 -0
- package/dist/routes/oauth/introspect/post.d.ts.map +1 -0
- package/dist/routes/oauth/introspect/post.js +69 -0
- package/dist/routes/oauth/introspect/post.js.map +1 -0
- package/dist/routes/oauth/revoke/post.d.ts +22 -0
- package/dist/routes/oauth/revoke/post.d.ts.map +1 -0
- package/dist/routes/oauth/revoke/post.js +73 -0
- package/dist/routes/oauth/revoke/post.js.map +1 -0
- package/dist/routes/oauth/token/post.d.ts +29 -0
- package/dist/routes/oauth/token/post.d.ts.map +1 -0
- package/dist/routes/oauth/token/post.js +98 -0
- package/dist/routes/oauth/token/post.js.map +1 -0
- package/dist/routes/oauth/userinfo/get.d.ts +23 -0
- package/dist/routes/oauth/userinfo/get.d.ts.map +1 -0
- package/dist/routes/oauth/userinfo/get.js +65 -0
- package/dist/routes/oauth/userinfo/get.js.map +1 -0
- package/dist/schemas/error.d.ts +2104 -0
- package/dist/schemas/error.d.ts.map +1 -0
- package/dist/schemas/error.js +164 -0
- package/dist/schemas/error.js.map +1 -0
- package/dist/schemas/field.d.ts +97 -0
- package/dist/schemas/field.d.ts.map +1 -0
- package/dist/schemas/field.js +168 -0
- package/dist/schemas/field.js.map +1 -0
- package/dist/schemas/header.d.ts +7 -0
- package/dist/schemas/header.d.ts.map +1 -0
- package/dist/schemas/header.js +11 -0
- package/dist/schemas/header.js.map +1 -0
- package/dist/schemas/oauth.d.ts +26 -0
- package/dist/schemas/oauth.d.ts.map +1 -0
- package/dist/schemas/oauth.js +51 -0
- package/dist/schemas/oauth.js.map +1 -0
- package/dist/schemas/provider.d.ts +7 -0
- package/dist/schemas/provider.d.ts.map +1 -0
- package/dist/schemas/provider.js +31 -0
- package/dist/schemas/provider.js.map +1 -0
- package/dist/schemas/response.d.ts +645 -0
- package/dist/schemas/response.d.ts.map +1 -0
- package/dist/schemas/response.js +598 -0
- package/dist/schemas/response.js.map +1 -0
- package/dist/schemas/terms.d.ts +93 -0
- package/dist/schemas/terms.d.ts.map +1 -0
- package/dist/schemas/terms.js +109 -0
- package/dist/schemas/terms.js.map +1 -0
- package/dist/seeders/config.seeder.d.ts +21 -0
- package/dist/seeders/config.seeder.d.ts.map +1 -0
- package/dist/seeders/config.seeder.js +168 -0
- package/dist/seeders/config.seeder.js.map +1 -0
- package/dist/services/cleanup.service.d.ts +166 -0
- package/dist/services/cleanup.service.d.ts.map +1 -0
- package/dist/services/cleanup.service.js +605 -0
- package/dist/services/cleanup.service.js.map +1 -0
- package/dist/services/container.d.ts +201 -0
- package/dist/services/container.d.ts.map +1 -0
- package/dist/services/container.js +75 -0
- package/dist/services/container.js.map +1 -0
- package/dist/services/email.service.d.ts +69 -0
- package/dist/services/email.service.d.ts.map +1 -0
- package/dist/services/email.service.js +164 -0
- package/dist/services/email.service.js.map +1 -0
- package/dist/services/jwt.service.d.ts +321 -0
- package/dist/services/jwt.service.d.ts.map +1 -0
- package/dist/services/jwt.service.js +524 -0
- package/dist/services/jwt.service.js.map +1 -0
- package/dist/services/mikro.service.d.ts +43 -0
- package/dist/services/mikro.service.d.ts.map +1 -0
- package/dist/services/mikro.service.js +68 -0
- package/dist/services/mikro.service.js.map +1 -0
- package/dist/services/oauth-authorize.service.d.ts +91 -0
- package/dist/services/oauth-authorize.service.d.ts.map +1 -0
- package/dist/services/oauth-authorize.service.js +237 -0
- package/dist/services/oauth-authorize.service.js.map +1 -0
- package/dist/services/oauth-client.service.d.ts +38 -0
- package/dist/services/oauth-client.service.d.ts.map +1 -0
- package/dist/services/oauth-client.service.js +80 -0
- package/dist/services/oauth-client.service.js.map +1 -0
- package/dist/services/oauth-connect.service.d.ts +182 -0
- package/dist/services/oauth-connect.service.d.ts.map +1 -0
- package/dist/services/oauth-connect.service.js +592 -0
- package/dist/services/oauth-connect.service.js.map +1 -0
- package/dist/services/oauth-token.service.d.ts +162 -0
- package/dist/services/oauth-token.service.d.ts.map +1 -0
- package/dist/services/oauth-token.service.js +374 -0
- package/dist/services/oauth-token.service.js.map +1 -0
- package/dist/services/passkey.service.d.ts +73 -0
- package/dist/services/passkey.service.d.ts.map +1 -0
- package/dist/services/passkey.service.js +199 -0
- package/dist/services/passkey.service.js.map +1 -0
- package/dist/services/password-auth.service.d.ts +24 -0
- package/dist/services/password-auth.service.d.ts.map +1 -0
- package/dist/services/password-auth.service.js +87 -0
- package/dist/services/password-auth.service.js.map +1 -0
- package/dist/services/password-reset.service.d.ts +31 -0
- package/dist/services/password-reset.service.d.ts.map +1 -0
- package/dist/services/password-reset.service.js +54 -0
- package/dist/services/password-reset.service.js.map +1 -0
- package/dist/services/scheduler.service.d.ts +15 -0
- package/dist/services/scheduler.service.d.ts.map +1 -0
- package/dist/services/scheduler.service.js +52 -0
- package/dist/services/scheduler.service.js.map +1 -0
- package/dist/services/security.service.d.ts +17 -0
- package/dist/services/security.service.d.ts.map +1 -0
- package/dist/services/security.service.js +82 -0
- package/dist/services/security.service.js.map +1 -0
- package/dist/services/terms.service.d.ts +131 -0
- package/dist/services/terms.service.d.ts.map +1 -0
- package/dist/services/terms.service.js +210 -0
- package/dist/services/terms.service.js.map +1 -0
- package/dist/services/totp.service.d.ts +86 -0
- package/dist/services/totp.service.d.ts.map +1 -0
- package/dist/services/totp.service.js +244 -0
- package/dist/services/totp.service.js.map +1 -0
- package/dist/services/user-consent.service.d.ts +34 -0
- package/dist/services/user-consent.service.d.ts.map +1 -0
- package/dist/services/user-consent.service.js +42 -0
- package/dist/services/user-consent.service.js.map +1 -0
- package/dist/services/user.service.d.ts +60 -0
- package/dist/services/user.service.d.ts.map +1 -0
- package/dist/services/user.service.js +176 -0
- package/dist/services/user.service.js.map +1 -0
- package/package.json +155 -0
- package/public/assets/index-CrY7bb7j.css +2 -0
- package/public/assets/index-jYk5DHP_.js +75 -0
- package/public/assets/index-jYk5DHP_.js.map +1 -0
- package/public/index.html +27 -0
- package/public/vite.svg +1 -0
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
import { bytesToString, concatBytes, fromBase64Url, getRandomBytes, hexToBytes, stringToBytes, toArrayBuffer, toBase64Url, } from "./base64url.js";
|
|
2
|
+
export { getRandomBytes } from "./base64url.js";
|
|
3
|
+
const ALGORITHM = 'AES-GCM';
|
|
4
|
+
const IV_LENGTH = 12;
|
|
5
|
+
const AUTH_TAG_LENGTH = 16;
|
|
6
|
+
/**
|
|
7
|
+
* Import a hex-encoded key for AES-GCM operations
|
|
8
|
+
* using the Web Crypto API.
|
|
9
|
+
*/
|
|
10
|
+
async function importAesKey(keyHex, usage) {
|
|
11
|
+
return crypto.subtle.importKey('raw', toArrayBuffer(hexToBytes(keyHex)), { name: ALGORITHM }, false, [usage]);
|
|
12
|
+
}
|
|
13
|
+
export async function encrypt(data, keyHex) {
|
|
14
|
+
const key = await importAesKey(keyHex, 'encrypt');
|
|
15
|
+
const iv = getRandomBytes(IV_LENGTH);
|
|
16
|
+
const plaintext = stringToBytes(data);
|
|
17
|
+
// Web Crypto AES-GCM appends the auth tag to the ciphertext
|
|
18
|
+
const cipherWithTag = new Uint8Array(await crypto.subtle.encrypt({
|
|
19
|
+
name: ALGORITHM,
|
|
20
|
+
iv: toArrayBuffer(iv),
|
|
21
|
+
tagLength: AUTH_TAG_LENGTH * 8,
|
|
22
|
+
}, key, toArrayBuffer(plaintext)));
|
|
23
|
+
// Split into ciphertext and auth tag to keep the same wire format:
|
|
24
|
+
// base64url(iv + authTag + encrypted)
|
|
25
|
+
const encrypted = cipherWithTag.slice(0, cipherWithTag.byteLength - AUTH_TAG_LENGTH);
|
|
26
|
+
const authTag = cipherWithTag.slice(cipherWithTag.byteLength - AUTH_TAG_LENGTH);
|
|
27
|
+
const combined = concatBytes(iv, authTag, encrypted);
|
|
28
|
+
return toBase64Url(combined);
|
|
29
|
+
}
|
|
30
|
+
export async function decrypt(encoded, keyHex) {
|
|
31
|
+
try {
|
|
32
|
+
const key = await importAesKey(keyHex, 'decrypt');
|
|
33
|
+
const combined = fromBase64Url(encoded);
|
|
34
|
+
if (combined.byteLength < IV_LENGTH + AUTH_TAG_LENGTH) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
const iv = combined.slice(0, IV_LENGTH);
|
|
38
|
+
const authTag = combined.slice(IV_LENGTH, IV_LENGTH + AUTH_TAG_LENGTH);
|
|
39
|
+
const encrypted = combined.slice(IV_LENGTH + AUTH_TAG_LENGTH);
|
|
40
|
+
// Web Crypto expects ciphertext + authTag concatenated
|
|
41
|
+
const cipherWithTag = concatBytes(encrypted, authTag);
|
|
42
|
+
const plaintext = new Uint8Array(await crypto.subtle.decrypt({
|
|
43
|
+
name: ALGORITHM,
|
|
44
|
+
iv: toArrayBuffer(iv),
|
|
45
|
+
tagLength: AUTH_TAG_LENGTH * 8,
|
|
46
|
+
}, key, toArrayBuffer(cipherWithTag)));
|
|
47
|
+
return bytesToString(plaintext);
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// ---------------------------------------------------------------------------
|
|
54
|
+
// Timing-safe comparison
|
|
55
|
+
// ---------------------------------------------------------------------------
|
|
56
|
+
/**
|
|
57
|
+
* Compares two byte arrays in constant time to prevent timing side-channel attacks.
|
|
58
|
+
*
|
|
59
|
+
* Returns `false` immediately if the arrays differ in length, but the byte-level
|
|
60
|
+
* comparison always processes every element to avoid leaking positional information.
|
|
61
|
+
*
|
|
62
|
+
* @param left - The first byte array.
|
|
63
|
+
* @param right - The second byte array.
|
|
64
|
+
* @returns `true` if both arrays contain identical bytes, `false` otherwise.
|
|
65
|
+
*/
|
|
66
|
+
export function timingSafeEqualBytes(left, right) {
|
|
67
|
+
if (left.length !== right.length) {
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
let diff = 0;
|
|
71
|
+
for (let index = 0; index < left.length; index += 1) {
|
|
72
|
+
const leftByte = left[index];
|
|
73
|
+
const rightByte = right[index];
|
|
74
|
+
if (leftByte === undefined || rightByte === undefined) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
diff |= leftByte ^ rightByte;
|
|
78
|
+
}
|
|
79
|
+
return diff === 0;
|
|
80
|
+
}
|
|
81
|
+
// ---------------------------------------------------------------------------
|
|
82
|
+
// Secret hashing (PBKDF2 / HMAC)
|
|
83
|
+
// ---------------------------------------------------------------------------
|
|
84
|
+
/**
|
|
85
|
+
* Parses an integer key=value segment from the self-describing hash format.
|
|
86
|
+
*
|
|
87
|
+
* @example parseIntegerSegment('v=1', 'v') // => 1
|
|
88
|
+
*/
|
|
89
|
+
function parseIntegerSegment(segment, key) {
|
|
90
|
+
if (!segment.startsWith(`${key}=`)) {
|
|
91
|
+
return undefined;
|
|
92
|
+
}
|
|
93
|
+
const value = Number(segment.slice(key.length + 1));
|
|
94
|
+
if (!Number.isInteger(value) || value <= 0) {
|
|
95
|
+
return undefined;
|
|
96
|
+
}
|
|
97
|
+
return value;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Parses a string key=value segment from the self-describing hash format.
|
|
101
|
+
*
|
|
102
|
+
* @example parseStringSegment('s=Zm9v', 's') // => 'Zm9v'
|
|
103
|
+
*/
|
|
104
|
+
function parseStringSegment(segment, key) {
|
|
105
|
+
if (!segment.startsWith(`${key}=`)) {
|
|
106
|
+
return undefined;
|
|
107
|
+
}
|
|
108
|
+
return segment.slice(key.length + 1);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Parses a persisted PBKDF2 hash string into its constituent parameters.
|
|
112
|
+
*
|
|
113
|
+
* The expected format is: `<algorithm>$v=<version>$i=<iterations>$s=<salt>$h=<digest>`
|
|
114
|
+
* where salt and digest are base64url-encoded.
|
|
115
|
+
*
|
|
116
|
+
* @param hash - The stored hash string to parse.
|
|
117
|
+
* @param expectedAlgorithm - The algorithm identifier to match (e.g. `'pbkdf2-sha256'`).
|
|
118
|
+
* @returns The parsed components, or `undefined` if the string is malformed.
|
|
119
|
+
*/
|
|
120
|
+
export function parsePbkdf2Hash(hash, expectedAlgorithm) {
|
|
121
|
+
const [algorithm = '', version = '', iterations = '', salt = '', digest = '',] = hash.split('$');
|
|
122
|
+
if (algorithm !== expectedAlgorithm) {
|
|
123
|
+
return undefined;
|
|
124
|
+
}
|
|
125
|
+
const parsedVersion = parseIntegerSegment(version, 'v');
|
|
126
|
+
const parsedIterations = parseIntegerSegment(iterations, 'i');
|
|
127
|
+
const parsedSalt = parseStringSegment(salt, 's');
|
|
128
|
+
const parsedDigest = parseStringSegment(digest, 'h');
|
|
129
|
+
if (parsedVersion === undefined ||
|
|
130
|
+
parsedIterations === undefined ||
|
|
131
|
+
parsedSalt === undefined ||
|
|
132
|
+
parsedDigest === undefined) {
|
|
133
|
+
return undefined;
|
|
134
|
+
}
|
|
135
|
+
try {
|
|
136
|
+
return {
|
|
137
|
+
version: parsedVersion,
|
|
138
|
+
iterations: parsedIterations,
|
|
139
|
+
salt: fromBase64Url(parsedSalt),
|
|
140
|
+
digest: fromBase64Url(parsedDigest),
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
return undefined;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Encodes PBKDF2 hash parameters into a self-describing string for storage.
|
|
149
|
+
*
|
|
150
|
+
* @param params - The PBKDF2 parameters to encode.
|
|
151
|
+
* @returns A string in the format `<algorithm>$v=<version>$i=<iterations>$s=<salt>$h=<digest>`.
|
|
152
|
+
*/
|
|
153
|
+
export function formatPbkdf2Hash(params) {
|
|
154
|
+
return [
|
|
155
|
+
params.algorithm,
|
|
156
|
+
`v=${params.version}`,
|
|
157
|
+
`i=${params.iterations}`,
|
|
158
|
+
`s=${toBase64Url(params.salt)}`,
|
|
159
|
+
`h=${toBase64Url(params.digest)}`,
|
|
160
|
+
].join('$');
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Encodes an HMAC digest into a self-describing string for opaque token storage.
|
|
164
|
+
*
|
|
165
|
+
* @param params - The HMAC digest to encode.
|
|
166
|
+
* @returns A string in the format `<algorithm>$v=<version>$h=<digest>`.
|
|
167
|
+
*/
|
|
168
|
+
export function formatOpaqueHash(params) {
|
|
169
|
+
return [
|
|
170
|
+
params.algorithm,
|
|
171
|
+
`v=${params.version}`,
|
|
172
|
+
`h=${toBase64Url(params.digest)}`,
|
|
173
|
+
].join('$');
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Normalizes a secret string to Unicode NFC form and encodes it as UTF-8 bytes.
|
|
177
|
+
* This ensures visually equivalent strings (e.g. `café` vs `cafe\u0301`) produce
|
|
178
|
+
* identical byte sequences across all runtimes.
|
|
179
|
+
*
|
|
180
|
+
* @param secret - The raw secret string.
|
|
181
|
+
* @returns The NFC-normalized, UTF-8-encoded byte representation.
|
|
182
|
+
*/
|
|
183
|
+
export function normalizeSecret(secret) {
|
|
184
|
+
return stringToBytes(secret.normalize('NFC'));
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Derives a purpose-specific subkey from a master secret using HKDF-SHA-256.
|
|
188
|
+
*
|
|
189
|
+
* Each purpose produces a cryptographically isolated key, so compromising
|
|
190
|
+
* one purpose key does not affect others.
|
|
191
|
+
*
|
|
192
|
+
* @param crypto - The Web Crypto API instance.
|
|
193
|
+
* @param masterSecret - The 32-byte master secret.
|
|
194
|
+
* @param hkdfSalt - The salt string for HKDF (e.g. application context identifier).
|
|
195
|
+
* @param hkdfInfo - The info string for HKDF (e.g. purpose label).
|
|
196
|
+
* @param derivedKeyBytes - The number of bytes to derive.
|
|
197
|
+
* @returns A derived purpose key of the specified length.
|
|
198
|
+
*/
|
|
199
|
+
export async function derivePurposeKeyBytes(crypto, masterSecret, hkdfSalt, hkdfInfo, derivedKeyBytes) {
|
|
200
|
+
const baseKey = await crypto.subtle.importKey('raw', toArrayBuffer(masterSecret), 'HKDF', false, ['deriveBits']);
|
|
201
|
+
const bits = await crypto.subtle.deriveBits({
|
|
202
|
+
name: 'HKDF',
|
|
203
|
+
hash: 'SHA-256',
|
|
204
|
+
salt: toArrayBuffer(stringToBytes(hkdfSalt)),
|
|
205
|
+
info: toArrayBuffer(stringToBytes(hkdfInfo)),
|
|
206
|
+
}, baseKey, derivedKeyBytes * 8);
|
|
207
|
+
return new Uint8Array(bits);
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Derives a PBKDF2-SHA-256 digest from a low-entropy secret (e.g. a password).
|
|
211
|
+
*
|
|
212
|
+
* The secret is first NFC-normalized and concatenated with the purpose key before
|
|
213
|
+
* being fed into PBKDF2, binding the derivation to a specific purpose.
|
|
214
|
+
*
|
|
215
|
+
* @param crypto - The Web Crypto API instance.
|
|
216
|
+
* @param purposeKey - The pre-derived purpose-specific key from {@link derivePurposeKeyBytes}.
|
|
217
|
+
* @param secret - The raw secret string (password, client secret, etc.).
|
|
218
|
+
* @param salt - A random salt (typically 16 bytes).
|
|
219
|
+
* @param iterations - The PBKDF2 iteration count.
|
|
220
|
+
* @param derivedKeyBytes - The number of bytes to derive.
|
|
221
|
+
* @returns A derived key of the specified length.
|
|
222
|
+
*/
|
|
223
|
+
export async function derivePbkdf2Bytes(crypto, purposeKey, secret, salt, iterations, derivedKeyBytes) {
|
|
224
|
+
const keyMaterial = await crypto.subtle.importKey('raw', toArrayBuffer(concatBytes(normalizeSecret(secret), purposeKey)), 'PBKDF2', false, ['deriveBits']);
|
|
225
|
+
const derived = await crypto.subtle.deriveBits({
|
|
226
|
+
name: 'PBKDF2',
|
|
227
|
+
hash: 'SHA-256',
|
|
228
|
+
iterations,
|
|
229
|
+
salt: toArrayBuffer(salt),
|
|
230
|
+
}, keyMaterial, derivedKeyBytes * 8);
|
|
231
|
+
return new Uint8Array(derived);
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Computes an HMAC-SHA-256 signature over a high-entropy opaque value.
|
|
235
|
+
*
|
|
236
|
+
* Unlike PBKDF2, this is intended for values that are already cryptographically
|
|
237
|
+
* random (e.g. authorization codes, recovery tokens), where deterministic hashing
|
|
238
|
+
* enables efficient database lookups.
|
|
239
|
+
*
|
|
240
|
+
* @param crypto - The Web Crypto API instance.
|
|
241
|
+
* @param purposeKey - The pre-derived purpose-specific key from {@link derivePurposeKeyBytes}.
|
|
242
|
+
* @param value - The opaque value to sign.
|
|
243
|
+
* @returns A 32-byte HMAC signature.
|
|
244
|
+
*/
|
|
245
|
+
export async function signOpaqueValue(crypto, purposeKey, value) {
|
|
246
|
+
const hmacKey = await crypto.subtle.importKey('raw', toArrayBuffer(purposeKey), {
|
|
247
|
+
name: 'HMAC',
|
|
248
|
+
hash: 'SHA-256',
|
|
249
|
+
}, false, ['sign']);
|
|
250
|
+
const signature = await crypto.subtle.sign('HMAC', hmacKey, toArrayBuffer(normalizeSecret(value)));
|
|
251
|
+
return new Uint8Array(signature);
|
|
252
|
+
}
|
|
253
|
+
//# sourceMappingURL=crypto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/lib/crypto.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { CompiledFunctions } from '@mikro-orm/core';
|
|
2
|
+
import type { RuntimeDatabaseEntity } from './entities.ts';
|
|
3
|
+
/**
|
|
4
|
+
* MikroORM v7 uses a counter-based metadata id inside `meta.uniqueName`.
|
|
5
|
+
*
|
|
6
|
+
* `mikro-orm compile` also keys generated functions by that value, so the
|
|
7
|
+
* compiled keys can drift from runtime keys when entity metadata is created in
|
|
8
|
+
* a different order during bundling or startup. In that case MikroORM falls
|
|
9
|
+
* back to runtime code generation via `new Function(...)`, which breaks in
|
|
10
|
+
* no-eval runtimes like Cloudflare Workers.
|
|
11
|
+
*
|
|
12
|
+
* To keep all database drivers on the same path, we remap the compiled keys by
|
|
13
|
+
* stable table name to the runtime `uniqueName` before passing them to MikroORM.
|
|
14
|
+
*/
|
|
15
|
+
export declare function resolveCompiledFunctionsForEntities(entitySchemas: readonly RuntimeDatabaseEntity[], compiledFunctions: CompiledFunctions): CompiledFunctions;
|
|
16
|
+
//# sourceMappingURL=compiled-functions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compiled-functions.d.ts","sourceRoot":"","sources":["../../../src/lib/database/compiled-functions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAkD3D;;;;;;;;;;;GAWG;AACH,wBAAgB,mCAAmC,CACjD,aAAa,EAAE,SAAS,qBAAqB,EAAE,EAC/C,iBAAiB,EAAE,iBAAiB,GACnC,iBAAiB,CAqCnB"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
const compiledFunctionPrefixes = [
|
|
2
|
+
'hydrator',
|
|
3
|
+
'comparator',
|
|
4
|
+
'snapshotGenerator',
|
|
5
|
+
'pkGetter',
|
|
6
|
+
'pkGetterConverted',
|
|
7
|
+
'pkSerializer',
|
|
8
|
+
'resultMapper',
|
|
9
|
+
];
|
|
10
|
+
function escapeRegExp(value) {
|
|
11
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
12
|
+
}
|
|
13
|
+
function findCompiledUniqueName(functionKeys, tableName) {
|
|
14
|
+
const matcher = new RegExp(`^pkGetter-(${escapeRegExp(tableName)}_\\d+)$`);
|
|
15
|
+
for (const functionKey of functionKeys) {
|
|
16
|
+
const match = functionKey.match(matcher);
|
|
17
|
+
if (match) {
|
|
18
|
+
return match[1];
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
function remapCompiledFunctionKey(functionKey, compiledUniqueName, runtimeUniqueName) {
|
|
24
|
+
const matcher = new RegExp(`^(${compiledFunctionPrefixes.join('|')})-${escapeRegExp(compiledUniqueName)}(.*)$`);
|
|
25
|
+
const match = functionKey.match(matcher);
|
|
26
|
+
if (!match) {
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
return `${match[1]}-${runtimeUniqueName}${match[2]}`;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* MikroORM v7 uses a counter-based metadata id inside `meta.uniqueName`.
|
|
33
|
+
*
|
|
34
|
+
* `mikro-orm compile` also keys generated functions by that value, so the
|
|
35
|
+
* compiled keys can drift from runtime keys when entity metadata is created in
|
|
36
|
+
* a different order during bundling or startup. In that case MikroORM falls
|
|
37
|
+
* back to runtime code generation via `new Function(...)`, which breaks in
|
|
38
|
+
* no-eval runtimes like Cloudflare Workers.
|
|
39
|
+
*
|
|
40
|
+
* To keep all database drivers on the same path, we remap the compiled keys by
|
|
41
|
+
* stable table name to the runtime `uniqueName` before passing them to MikroORM.
|
|
42
|
+
*/
|
|
43
|
+
export function resolveCompiledFunctionsForEntities(entitySchemas, compiledFunctions) {
|
|
44
|
+
const runtimeCompiledFunctions = { ...compiledFunctions };
|
|
45
|
+
const compiledFunctionEntries = Object.entries(compiledFunctions);
|
|
46
|
+
const compiledFunctionKeys = Object.keys(compiledFunctions);
|
|
47
|
+
for (const entitySchema of entitySchemas) {
|
|
48
|
+
const runtimeUniqueName = entitySchema.meta.uniqueName;
|
|
49
|
+
if (runtimeCompiledFunctions[`pkGetter-${runtimeUniqueName}`]) {
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
const compiledUniqueName = findCompiledUniqueName(compiledFunctionKeys, entitySchema.meta.tableName);
|
|
53
|
+
if (!compiledUniqueName) {
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
for (const [functionKey, compiledFunction] of compiledFunctionEntries) {
|
|
57
|
+
const runtimeFunctionKey = remapCompiledFunctionKey(functionKey, compiledUniqueName, runtimeUniqueName);
|
|
58
|
+
if (!runtimeFunctionKey) {
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
runtimeCompiledFunctions[runtimeFunctionKey] = compiledFunction;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return runtimeCompiledFunctions;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=compiled-functions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compiled-functions.js","sourceRoot":"","sources":["../../../src/lib/database/compiled-functions.ts"],"names":[],"mappings":"AAGA,MAAM,wBAAwB,GAAG;IAC/B,UAAU;IACV,YAAY;IACZ,mBAAmB;IACnB,UAAU;IACV,mBAAmB;IACnB,cAAc;IACd,cAAc;CACN,CAAC;AAEX,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,sBAAsB,CAC7B,YAAsB,EACtB,SAAiB;IAEjB,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,cAAc,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAE3E,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEzC,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,wBAAwB,CAC/B,WAAmB,EACnB,kBAA0B,EAC1B,iBAAyB;IAEzB,MAAM,OAAO,GAAG,IAAI,MAAM,CACxB,KAAK,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,YAAY,CAAC,kBAAkB,CAAC,OAAO,CACpF,CAAC;IACF,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAEzC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,iBAAiB,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACvD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,mCAAmC,CACjD,aAA+C,EAC/C,iBAAoC;IAEpC,MAAM,wBAAwB,GAAG,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAC1D,MAAM,uBAAuB,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAClE,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAE5D,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QACzC,MAAM,iBAAiB,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;QAEvD,IAAI,wBAAwB,CAAC,YAAY,iBAAiB,EAAE,CAAC,EAAE,CAAC;YAC9D,SAAS;QACX,CAAC;QAED,MAAM,kBAAkB,GAAG,sBAAsB,CAC/C,oBAAoB,EACpB,YAAY,CAAC,IAAI,CAAC,SAAS,CAC5B,CAAC;QAEF,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,SAAS;QACX,CAAC;QAED,KAAK,MAAM,CAAC,WAAW,EAAE,gBAAgB,CAAC,IAAI,uBAAuB,EAAE,CAAC;YACtE,MAAM,kBAAkB,GAAG,wBAAwB,CACjD,WAAW,EACX,kBAAkB,EAClB,iBAAiB,CAClB,CAAC;YAEF,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACxB,SAAS;YACX,CAAC;YAED,wBAAwB,CAAC,kBAAkB,CAAC,GAAG,gBAAgB,CAAC;QAClE,CAAC;IACH,CAAC;IAED,OAAO,wBAAwB,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { EntityName } from '@mikro-orm/core';
|
|
2
|
+
export interface RuntimeDatabaseEntity {
|
|
3
|
+
meta: {
|
|
4
|
+
tableName: string;
|
|
5
|
+
uniqueName: string;
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
export declare function getDatabaseEntities(): readonly EntityName[];
|
|
9
|
+
export declare function getDatabaseEntitiesWithMetadata(): readonly RuntimeDatabaseEntity[];
|
|
10
|
+
//# sourceMappingURL=entities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../../src/lib/database/entities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAkBlD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAuBD,wBAAgB,mBAAmB,IAAI,SAAS,UAAU,EAAE,CAE3D;AAED,wBAAgB,+BAA+B,IAAI,SAAS,qBAAqB,EAAE,CAElF"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { EmailVerificationEntitySchema } from "../../entities/email-verification.entity.js";
|
|
2
|
+
import { JwtKeyEntitySchema } from "../../entities/jwt-key.entity.js";
|
|
3
|
+
import { OAuthClientEntitySchema } from "../../entities/oauth-client.entity.js";
|
|
4
|
+
import { OAuthCodeEntitySchema } from "../../entities/oauth-code.entity.js";
|
|
5
|
+
import { PasswordResetEntitySchema } from "../../entities/password-reset.entity.js";
|
|
6
|
+
import { PendingOAuthRegistrationEntitySchema } from "../../entities/pending-oauth-registration.entity.js";
|
|
7
|
+
import { RevokedTokenEntitySchema } from "../../entities/revoked-token.entity.js";
|
|
8
|
+
import { TermsEntitySchema } from "../../entities/terms.entity.js";
|
|
9
|
+
import { TermsContentEntitySchema } from "../../entities/terms-content.entity.js";
|
|
10
|
+
import { UserEntitySchema } from "../../entities/user.entity.js";
|
|
11
|
+
import { UserConsentEntitySchema } from "../../entities/user-consent.entity.js";
|
|
12
|
+
import { UserOAuthEntitySchema } from "../../entities/user-oauth.entity.js";
|
|
13
|
+
import { UserPasskeyEntitySchema } from "../../entities/user-passkey.entity.js";
|
|
14
|
+
import { UserTermsConsentEntitySchema } from "../../entities/user-terms-consent.entity.js";
|
|
15
|
+
import { UserTotpEntitySchema } from "../../entities/user-totp.entity.js";
|
|
16
|
+
import { UserTotpRecoveryCodeEntitySchema } from "../../entities/user-totp-recovery-code.entity.js";
|
|
17
|
+
function createDatabaseEntities() {
|
|
18
|
+
return [
|
|
19
|
+
UserEntitySchema,
|
|
20
|
+
OAuthClientEntitySchema,
|
|
21
|
+
OAuthCodeEntitySchema,
|
|
22
|
+
JwtKeyEntitySchema,
|
|
23
|
+
EmailVerificationEntitySchema,
|
|
24
|
+
PasswordResetEntitySchema,
|
|
25
|
+
PendingOAuthRegistrationEntitySchema,
|
|
26
|
+
RevokedTokenEntitySchema,
|
|
27
|
+
TermsEntitySchema,
|
|
28
|
+
TermsContentEntitySchema,
|
|
29
|
+
UserConsentEntitySchema,
|
|
30
|
+
UserOAuthEntitySchema,
|
|
31
|
+
UserPasskeyEntitySchema,
|
|
32
|
+
UserTermsConsentEntitySchema,
|
|
33
|
+
UserTotpRecoveryCodeEntitySchema,
|
|
34
|
+
UserTotpEntitySchema,
|
|
35
|
+
];
|
|
36
|
+
}
|
|
37
|
+
export function getDatabaseEntities() {
|
|
38
|
+
return createDatabaseEntities();
|
|
39
|
+
}
|
|
40
|
+
export function getDatabaseEntitiesWithMetadata() {
|
|
41
|
+
return createDatabaseEntities();
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=entities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entities.js","sourceRoot":"","sources":["../../../src/lib/database/entities.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,MAAM,6CAA6C,CAAC;AAC5F,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAE,oCAAoC,EAAE,MAAM,qDAAqD,CAAC;AAC3G,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,4BAA4B,EAAE,MAAM,6CAA6C,CAAC;AAC3F,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,gCAAgC,EAAE,MAAM,kDAAkD,CAAC;AASpG,SAAS,sBAAsB;IAC7B,OAAO;QACL,gBAAgB;QAChB,uBAAuB;QACvB,qBAAqB;QACrB,kBAAkB;QAClB,6BAA6B;QAC7B,yBAAyB;QACzB,oCAAoC;QACpC,wBAAwB;QACxB,iBAAiB;QACjB,wBAAwB;QACxB,uBAAuB;QACvB,qBAAqB;QACrB,uBAAuB;QACvB,4BAA4B;QAC5B,gCAAgC;QAChC,oBAAoB;KACrB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,sBAAsB,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,+BAA+B;IAC7C,OAAO,sBAAsB,EAAE,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import z from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Duration string pattern supporting multiple time units:
|
|
4
|
+
* - s: seconds (e.g., "30s")
|
|
5
|
+
* - m: minutes (e.g., "30m")
|
|
6
|
+
* - h: hours (e.g., "24h")
|
|
7
|
+
* - d: days (e.g., "7d")
|
|
8
|
+
* - y: years (e.g., "1y")
|
|
9
|
+
*
|
|
10
|
+
* Special value "0" means immediate (no retention).
|
|
11
|
+
*/
|
|
12
|
+
export declare const DurationString: z.ZodString;
|
|
13
|
+
export type DurationString = z.infer<typeof DurationString>;
|
|
14
|
+
export declare const MS_PER_SECOND = 1000;
|
|
15
|
+
export declare const MS_PER_MINUTE: number;
|
|
16
|
+
export declare const MS_PER_HOUR: number;
|
|
17
|
+
export declare const MS_PER_DAY: number;
|
|
18
|
+
export declare const MS_PER_YEAR: number;
|
|
19
|
+
/**
|
|
20
|
+
* Parse duration string to milliseconds
|
|
21
|
+
* @param duration - Duration string like "30s", "30m", "24h", "7d", "1y" or "0"
|
|
22
|
+
* @returns Duration in milliseconds
|
|
23
|
+
*/
|
|
24
|
+
export declare function parseDurationToMs(duration: string): number;
|
|
25
|
+
/**
|
|
26
|
+
* Calculate a cutoff date by subtracting a duration from now
|
|
27
|
+
* @param retention - Duration string for retention period
|
|
28
|
+
* @returns Date before which items should be cleaned up
|
|
29
|
+
*/
|
|
30
|
+
export declare function calculateCutoffDate(retention: string): Date;
|
|
31
|
+
/**
|
|
32
|
+
* Format milliseconds as a human-readable duration
|
|
33
|
+
* @param ms - Duration in milliseconds
|
|
34
|
+
* @returns Human-readable string like "24 hours", "7 days", "30 days"
|
|
35
|
+
*/
|
|
36
|
+
export declare function formatDuration(ms: number): string;
|
|
37
|
+
/**
|
|
38
|
+
* Calculate the permanent deletion date based on deleted_at and retention period
|
|
39
|
+
* @param deletedAt - The date when deletion was requested
|
|
40
|
+
* @param retentionPeriod - Retention period string like "30d"
|
|
41
|
+
* @returns Date when permanent deletion should occur
|
|
42
|
+
*/
|
|
43
|
+
export declare function calculatePermanentDeletionDate(deletedAt: Date, retentionPeriod: string): Date;
|
|
44
|
+
//# sourceMappingURL=duration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duration.d.ts","sourceRoot":"","sources":["../../src/lib/duration.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,aAMyC,CAAC;AAErE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,eAAO,MAAM,aAAa,OAAO,CAAC;AAClC,eAAO,MAAM,aAAa,QAAqB,CAAC;AAChD,eAAO,MAAM,WAAW,QAAqB,CAAC;AAC9C,eAAO,MAAM,UAAU,QAAmB,CAAC;AAC3C,eAAO,MAAM,WAAW,QAAmB,CAAC;AAE5C;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAgC1D;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAG3D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CA2BjD;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,IAAI,EACf,eAAe,EAAE,MAAM,GACtB,IAAI,CAGN"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import z from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Duration string pattern supporting multiple time units:
|
|
4
|
+
* - s: seconds (e.g., "30s")
|
|
5
|
+
* - m: minutes (e.g., "30m")
|
|
6
|
+
* - h: hours (e.g., "24h")
|
|
7
|
+
* - d: days (e.g., "7d")
|
|
8
|
+
* - y: years (e.g., "1y")
|
|
9
|
+
*
|
|
10
|
+
* Special value "0" means immediate (no retention).
|
|
11
|
+
*/
|
|
12
|
+
export const DurationString = z
|
|
13
|
+
.string()
|
|
14
|
+
.regex(/^(0|\d+[smhdy])$/, 'Duration must be "0" or format like "30s", "30m", "24h", "7d", "1y"')
|
|
15
|
+
.describe('Duration string (e.g., "0", "30m", "24h", "7d", "1y")');
|
|
16
|
+
export const MS_PER_SECOND = 1000;
|
|
17
|
+
export const MS_PER_MINUTE = 60 * MS_PER_SECOND;
|
|
18
|
+
export const MS_PER_HOUR = 60 * MS_PER_MINUTE;
|
|
19
|
+
export const MS_PER_DAY = 24 * MS_PER_HOUR;
|
|
20
|
+
export const MS_PER_YEAR = 365 * MS_PER_DAY; // Approximate year as 365 days
|
|
21
|
+
/**
|
|
22
|
+
* Parse duration string to milliseconds
|
|
23
|
+
* @param duration - Duration string like "30s", "30m", "24h", "7d", "1y" or "0"
|
|
24
|
+
* @returns Duration in milliseconds
|
|
25
|
+
*/
|
|
26
|
+
export function parseDurationToMs(duration) {
|
|
27
|
+
// Special case: "0" means immediate (no retention)
|
|
28
|
+
if (duration === '0') {
|
|
29
|
+
return 0;
|
|
30
|
+
}
|
|
31
|
+
const match = duration.match(/^(\d+)([smhdy])$/);
|
|
32
|
+
if (!match) {
|
|
33
|
+
throw new Error(`Invalid duration format: ${duration}`);
|
|
34
|
+
}
|
|
35
|
+
const valueStr = match[1];
|
|
36
|
+
const unit = match[2];
|
|
37
|
+
if (!valueStr || !unit) {
|
|
38
|
+
throw new Error(`Invalid duration format: ${duration}`);
|
|
39
|
+
}
|
|
40
|
+
const value = Number.parseInt(valueStr, 10);
|
|
41
|
+
switch (unit) {
|
|
42
|
+
case 's':
|
|
43
|
+
return value * MS_PER_SECOND;
|
|
44
|
+
case 'm':
|
|
45
|
+
return value * MS_PER_MINUTE;
|
|
46
|
+
case 'h':
|
|
47
|
+
return value * MS_PER_HOUR;
|
|
48
|
+
case 'd':
|
|
49
|
+
return value * MS_PER_DAY;
|
|
50
|
+
case 'y':
|
|
51
|
+
return value * MS_PER_YEAR;
|
|
52
|
+
default:
|
|
53
|
+
throw new Error(`Unknown duration unit: ${unit}`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Calculate a cutoff date by subtracting a duration from now
|
|
58
|
+
* @param retention - Duration string for retention period
|
|
59
|
+
* @returns Date before which items should be cleaned up
|
|
60
|
+
*/
|
|
61
|
+
export function calculateCutoffDate(retention) {
|
|
62
|
+
const retentionMs = parseDurationToMs(retention);
|
|
63
|
+
return new Date(Date.now() - retentionMs);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Format milliseconds as a human-readable duration
|
|
67
|
+
* @param ms - Duration in milliseconds
|
|
68
|
+
* @returns Human-readable string like "24 hours", "7 days", "30 days"
|
|
69
|
+
*/
|
|
70
|
+
export function formatDuration(ms) {
|
|
71
|
+
if (ms === 0) {
|
|
72
|
+
return 'immediate';
|
|
73
|
+
}
|
|
74
|
+
if (ms < MS_PER_MINUTE) {
|
|
75
|
+
const seconds = Math.round(ms / MS_PER_SECOND);
|
|
76
|
+
return `${seconds} second${seconds !== 1 ? 's' : ''}`;
|
|
77
|
+
}
|
|
78
|
+
if (ms < MS_PER_HOUR) {
|
|
79
|
+
const minutes = Math.round(ms / MS_PER_MINUTE);
|
|
80
|
+
return `${minutes} minute${minutes !== 1 ? 's' : ''}`;
|
|
81
|
+
}
|
|
82
|
+
if (ms < MS_PER_DAY) {
|
|
83
|
+
const hours = Math.round(ms / MS_PER_HOUR);
|
|
84
|
+
return `${hours} hour${hours !== 1 ? 's' : ''}`;
|
|
85
|
+
}
|
|
86
|
+
if (ms < MS_PER_YEAR) {
|
|
87
|
+
const days = Math.round(ms / MS_PER_DAY);
|
|
88
|
+
return `${days} day${days !== 1 ? 's' : ''}`;
|
|
89
|
+
}
|
|
90
|
+
const years = Math.round(ms / MS_PER_YEAR);
|
|
91
|
+
return `${years} year${years !== 1 ? 's' : ''}`;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Calculate the permanent deletion date based on deleted_at and retention period
|
|
95
|
+
* @param deletedAt - The date when deletion was requested
|
|
96
|
+
* @param retentionPeriod - Retention period string like "30d"
|
|
97
|
+
* @returns Date when permanent deletion should occur
|
|
98
|
+
*/
|
|
99
|
+
export function calculatePermanentDeletionDate(deletedAt, retentionPeriod) {
|
|
100
|
+
const retentionMs = parseDurationToMs(retentionPeriod);
|
|
101
|
+
return new Date(deletedAt.getTime() + retentionMs);
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=duration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duration.js","sourceRoot":"","sources":["../../src/lib/duration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check if an email address matches any of the allowed signup patterns.
|
|
3
|
+
*
|
|
4
|
+
* Supported patterns:
|
|
5
|
+
* - `*` — Allow all emails
|
|
6
|
+
* - `user@domain.com` — Exact email match (case-insensitive)
|
|
7
|
+
* - `*@domain.com` — Allow any email at the specified domain
|
|
8
|
+
*
|
|
9
|
+
* An empty patterns array means signup is disabled entirely.
|
|
10
|
+
*
|
|
11
|
+
* @param email - The email address to check
|
|
12
|
+
* @param patterns - Array of allowed email patterns
|
|
13
|
+
* @returns `true` if the email matches at least one pattern
|
|
14
|
+
*/
|
|
15
|
+
export declare function isEmailAllowed(email: string, patterns: readonly string[]): boolean;
|
|
16
|
+
//# sourceMappingURL=email-pattern.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-pattern.d.ts","sourceRoot":"","sources":["../../src/lib/email-pattern.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,SAAS,MAAM,EAAE,GAC1B,OAAO,CA+BT"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check if an email address matches any of the allowed signup patterns.
|
|
3
|
+
*
|
|
4
|
+
* Supported patterns:
|
|
5
|
+
* - `*` — Allow all emails
|
|
6
|
+
* - `user@domain.com` — Exact email match (case-insensitive)
|
|
7
|
+
* - `*@domain.com` — Allow any email at the specified domain
|
|
8
|
+
*
|
|
9
|
+
* An empty patterns array means signup is disabled entirely.
|
|
10
|
+
*
|
|
11
|
+
* @param email - The email address to check
|
|
12
|
+
* @param patterns - Array of allowed email patterns
|
|
13
|
+
* @returns `true` if the email matches at least one pattern
|
|
14
|
+
*/
|
|
15
|
+
export function isEmailAllowed(email, patterns) {
|
|
16
|
+
if (patterns.length === 0) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
const normalizedEmail = email.toLowerCase();
|
|
20
|
+
for (const pattern of patterns) {
|
|
21
|
+
const normalizedPattern = pattern.toLowerCase().trim();
|
|
22
|
+
// Wildcard: allow all
|
|
23
|
+
if (normalizedPattern === '*') {
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
// Domain wildcard: *@domain.com
|
|
27
|
+
if (normalizedPattern.startsWith('*@')) {
|
|
28
|
+
const domain = normalizedPattern.slice(2);
|
|
29
|
+
if (normalizedEmail.endsWith(`@${domain}`)) {
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
// Exact match
|
|
35
|
+
if (normalizedEmail === normalizedPattern) {
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=email-pattern.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-pattern.js","sourceRoot":"","sources":["../../src/lib/email-pattern.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAa,EACb,QAA2B;IAE3B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAE5C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,iBAAiB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QAEvD,sBAAsB;QACtB,IAAI,iBAAiB,KAAK,GAAG,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,gCAAgC;QAChC,IAAI,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1C,IAAI,eAAe,CAAC,QAAQ,CAAC,IAAI,MAAM,EAAE,CAAC,EAAE,CAAC;gBAC3C,OAAO,IAAI,CAAC;YACd,CAAC;YACD,SAAS;QACX,CAAC;QAED,cAAc;QACd,IAAI,eAAe,KAAK,iBAAiB,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|