@trokky/trokky 2.0.3
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/dist/adapters/filesystem/filesystem-adapter.d.ts +80 -0
- package/dist/adapters/filesystem/filesystem-adapter.d.ts.map +1 -0
- package/dist/adapters/filesystem/filesystem-adapter.js +1370 -0
- package/dist/adapters/filesystem/filesystem-adapter.js.map +1 -0
- package/dist/adapters/filesystem/index.d.ts +29 -0
- package/dist/adapters/filesystem/index.d.ts.map +1 -0
- package/dist/adapters/filesystem/index.js +31 -0
- package/dist/adapters/filesystem/index.js.map +1 -0
- package/dist/adapters/filesystem/types.d.ts +111 -0
- package/dist/adapters/filesystem/types.d.ts.map +1 -0
- package/dist/adapters/filesystem/types.js +2 -0
- package/dist/adapters/filesystem/types.js.map +1 -0
- package/dist/adapters/filesystem-data/filesystem-data-adapter.d.ts +111 -0
- package/dist/adapters/filesystem-data/filesystem-data-adapter.d.ts.map +1 -0
- package/dist/adapters/filesystem-data/filesystem-data-adapter.js +1363 -0
- package/dist/adapters/filesystem-data/filesystem-data-adapter.js.map +1 -0
- package/dist/adapters/filesystem-data/index.d.ts +3 -0
- package/dist/adapters/filesystem-data/index.d.ts.map +1 -0
- package/dist/adapters/filesystem-data/index.js +13 -0
- package/dist/adapters/filesystem-data/index.js.map +1 -0
- package/dist/adapters/filesystem-data/types.d.ts +147 -0
- package/dist/adapters/filesystem-data/types.d.ts.map +1 -0
- package/dist/adapters/filesystem-data/types.js +2 -0
- package/dist/adapters/filesystem-data/types.js.map +1 -0
- package/dist/adapters/filesystem-media/filesystem-media-adapter.d.ts +32 -0
- package/dist/adapters/filesystem-media/filesystem-media-adapter.d.ts.map +1 -0
- package/dist/adapters/filesystem-media/filesystem-media-adapter.js +639 -0
- package/dist/adapters/filesystem-media/filesystem-media-adapter.js.map +1 -0
- package/dist/adapters/filesystem-media/index.d.ts +3 -0
- package/dist/adapters/filesystem-media/index.d.ts.map +1 -0
- package/dist/adapters/filesystem-media/index.js +13 -0
- package/dist/adapters/filesystem-media/index.js.map +1 -0
- package/dist/adapters/filesystem-media/types.d.ts +76 -0
- package/dist/adapters/filesystem-media/types.d.ts.map +1 -0
- package/dist/adapters/filesystem-media/types.js +2 -0
- package/dist/adapters/filesystem-media/types.js.map +1 -0
- package/dist/adapters/postgres-data/index.d.ts +3 -0
- package/dist/adapters/postgres-data/index.d.ts.map +1 -0
- package/dist/adapters/postgres-data/index.js +13 -0
- package/dist/adapters/postgres-data/index.js.map +1 -0
- package/dist/adapters/postgres-data/postgres-data-adapter.d.ts +154 -0
- package/dist/adapters/postgres-data/postgres-data-adapter.d.ts.map +1 -0
- package/dist/adapters/postgres-data/postgres-data-adapter.js +1432 -0
- package/dist/adapters/postgres-data/postgres-data-adapter.js.map +1 -0
- package/dist/adapters/postgres-data/types.d.ts +139 -0
- package/dist/adapters/postgres-data/types.d.ts.map +1 -0
- package/dist/adapters/postgres-data/types.js +2 -0
- package/dist/adapters/postgres-data/types.js.map +1 -0
- package/dist/core/adapters/registry.d.ts +79 -0
- package/dist/core/adapters/registry.d.ts.map +1 -0
- package/dist/core/adapters/registry.js +149 -0
- package/dist/core/adapters/registry.js.map +1 -0
- package/dist/core/core/engine.d.ts +551 -0
- package/dist/core/core/engine.d.ts.map +1 -0
- package/dist/core/core/engine.js +1074 -0
- package/dist/core/core/engine.js.map +1 -0
- package/dist/core/crypto/adapter.d.ts +63 -0
- package/dist/core/crypto/adapter.d.ts.map +1 -0
- package/dist/core/crypto/adapter.js +63 -0
- package/dist/core/crypto/adapter.js.map +1 -0
- package/dist/core/crypto/fallback-adapter.d.ts +23 -0
- package/dist/core/crypto/fallback-adapter.d.ts.map +1 -0
- package/dist/core/crypto/fallback-adapter.js +195 -0
- package/dist/core/crypto/fallback-adapter.js.map +1 -0
- package/dist/core/crypto/node-adapter.d.ts +20 -0
- package/dist/core/crypto/node-adapter.d.ts.map +1 -0
- package/dist/core/crypto/node-adapter.js +85 -0
- package/dist/core/crypto/node-adapter.js.map +1 -0
- package/dist/core/crypto/password-hash.d.ts +73 -0
- package/dist/core/crypto/password-hash.d.ts.map +1 -0
- package/dist/core/crypto/password-hash.js +244 -0
- package/dist/core/crypto/password-hash.js.map +1 -0
- package/dist/core/crypto/webcrypto-adapter.d.ts +24 -0
- package/dist/core/crypto/webcrypto-adapter.d.ts.map +1 -0
- package/dist/core/crypto/webcrypto-adapter.js +158 -0
- package/dist/core/crypto/webcrypto-adapter.js.map +1 -0
- package/dist/core/errors/index.d.ts +30 -0
- package/dist/core/errors/index.d.ts.map +1 -0
- package/dist/core/errors/index.js +61 -0
- package/dist/core/errors/index.js.map +1 -0
- package/dist/core/events/event-bus.d.ts +121 -0
- package/dist/core/events/event-bus.d.ts.map +1 -0
- package/dist/core/events/event-bus.js +631 -0
- package/dist/core/events/event-bus.js.map +1 -0
- package/dist/core/events/index.d.ts +17 -0
- package/dist/core/events/index.d.ts.map +1 -0
- package/dist/core/events/index.js +22 -0
- package/dist/core/events/index.js.map +1 -0
- package/dist/core/events/memory-storage.d.ts +57 -0
- package/dist/core/events/memory-storage.d.ts.map +1 -0
- package/dist/core/events/memory-storage.js +175 -0
- package/dist/core/events/memory-storage.js.map +1 -0
- package/dist/core/events/types.d.ts +434 -0
- package/dist/core/events/types.d.ts.map +1 -0
- package/dist/core/events/types.js +9 -0
- package/dist/core/events/types.js.map +1 -0
- package/dist/core/events/utils.d.ts +134 -0
- package/dist/core/events/utils.d.ts.map +1 -0
- package/dist/core/events/utils.js +333 -0
- package/dist/core/events/utils.js.map +1 -0
- package/dist/core/fields/conditional.d.ts +115 -0
- package/dist/core/fields/conditional.d.ts.map +1 -0
- package/dist/core/fields/conditional.js +296 -0
- package/dist/core/fields/conditional.js.map +1 -0
- package/dist/core/fields/field-type.d.ts +218 -0
- package/dist/core/fields/field-type.d.ts.map +1 -0
- package/dist/core/fields/field-type.js +17 -0
- package/dist/core/fields/field-type.js.map +1 -0
- package/dist/core/fields/helpers.d.ts +86 -0
- package/dist/core/fields/helpers.d.ts.map +1 -0
- package/dist/core/fields/helpers.js +260 -0
- package/dist/core/fields/helpers.js.map +1 -0
- package/dist/core/fields/index.d.ts +5 -0
- package/dist/core/fields/index.d.ts.map +1 -0
- package/dist/core/fields/index.js +6 -0
- package/dist/core/fields/index.js.map +1 -0
- package/dist/core/fields/registry.d.ts +78 -0
- package/dist/core/fields/registry.d.ts.map +1 -0
- package/dist/core/fields/registry.js +185 -0
- package/dist/core/fields/registry.js.map +1 -0
- package/dist/core/index.d.ts +39 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +57 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/media/image-processor.d.ts +24 -0
- package/dist/core/media/image-processor.d.ts.map +1 -0
- package/dist/core/media/image-processor.js +69 -0
- package/dist/core/media/image-processor.js.map +1 -0
- package/dist/core/media/processors/cloudflare-images.d.ts +83 -0
- package/dist/core/media/processors/cloudflare-images.d.ts.map +1 -0
- package/dist/core/media/processors/cloudflare-images.js +241 -0
- package/dist/core/media/processors/cloudflare-images.js.map +1 -0
- package/dist/core/media/processors/cloudflare-transform-store.d.ts +127 -0
- package/dist/core/media/processors/cloudflare-transform-store.d.ts.map +1 -0
- package/dist/core/media/processors/cloudflare-transform-store.js +237 -0
- package/dist/core/media/processors/cloudflare-transform-store.js.map +1 -0
- package/dist/core/media/processors/cloudflare-transformations.d.ts +81 -0
- package/dist/core/media/processors/cloudflare-transformations.d.ts.map +1 -0
- package/dist/core/media/processors/cloudflare-transformations.js +144 -0
- package/dist/core/media/processors/cloudflare-transformations.js.map +1 -0
- package/dist/core/media/processors/index.d.ts +9 -0
- package/dist/core/media/processors/index.d.ts.map +1 -0
- package/dist/core/media/processors/index.js +13 -0
- package/dist/core/media/processors/index.js.map +1 -0
- package/dist/core/media/processors/noop.d.ts +22 -0
- package/dist/core/media/processors/noop.d.ts.map +1 -0
- package/dist/core/media/processors/noop.js +38 -0
- package/dist/core/media/processors/noop.js.map +1 -0
- package/dist/core/media/processors/sharp.d.ts +30 -0
- package/dist/core/media/processors/sharp.d.ts.map +1 -0
- package/dist/core/media/processors/sharp.js +126 -0
- package/dist/core/media/processors/sharp.js.map +1 -0
- package/dist/core/media/processors/types.d.ts +67 -0
- package/dist/core/media/processors/types.d.ts.map +1 -0
- package/dist/core/media/processors/types.js +42 -0
- package/dist/core/media/processors/types.js.map +1 -0
- package/dist/core/media/processors/workers-images.d.ts +112 -0
- package/dist/core/media/processors/workers-images.d.ts.map +1 -0
- package/dist/core/media/processors/workers-images.js +257 -0
- package/dist/core/media/processors/workers-images.js.map +1 -0
- package/dist/core/schema/registry.d.ts +41 -0
- package/dist/core/schema/registry.d.ts.map +1 -0
- package/dist/core/schema/registry.js +248 -0
- package/dist/core/schema/registry.js.map +1 -0
- package/dist/core/schema/singleton.d.ts +107 -0
- package/dist/core/schema/singleton.d.ts.map +1 -0
- package/dist/core/schema/singleton.js +180 -0
- package/dist/core/schema/singleton.js.map +1 -0
- package/dist/core/security/auth.d.ts +120 -0
- package/dist/core/security/auth.d.ts.map +1 -0
- package/dist/core/security/auth.js +274 -0
- package/dist/core/security/auth.js.map +1 -0
- package/dist/core/security/captcha/index.d.ts +21 -0
- package/dist/core/security/captcha/index.d.ts.map +1 -0
- package/dist/core/security/captcha/index.js +34 -0
- package/dist/core/security/captcha/index.js.map +1 -0
- package/dist/core/security/captcha/recaptcha.d.ts +41 -0
- package/dist/core/security/captcha/recaptcha.d.ts.map +1 -0
- package/dist/core/security/captcha/recaptcha.js +89 -0
- package/dist/core/security/captcha/recaptcha.js.map +1 -0
- package/dist/core/security/captcha/turnstile.d.ts +41 -0
- package/dist/core/security/captcha/turnstile.d.ts.map +1 -0
- package/dist/core/security/captcha/turnstile.js +90 -0
- package/dist/core/security/captcha/turnstile.js.map +1 -0
- package/dist/core/security/captcha/types.d.ts +66 -0
- package/dist/core/security/captcha/types.d.ts.map +1 -0
- package/dist/core/security/captcha/types.js +7 -0
- package/dist/core/security/captcha/types.js.map +1 -0
- package/dist/core/security/mfa/email-otp.d.ts +91 -0
- package/dist/core/security/mfa/email-otp.d.ts.map +1 -0
- package/dist/core/security/mfa/email-otp.js +264 -0
- package/dist/core/security/mfa/email-otp.js.map +1 -0
- package/dist/core/security/mfa/index.d.ts +8 -0
- package/dist/core/security/mfa/index.d.ts.map +1 -0
- package/dist/core/security/mfa/index.js +8 -0
- package/dist/core/security/mfa/index.js.map +1 -0
- package/dist/core/security/mfa/totp.d.ts +87 -0
- package/dist/core/security/mfa/totp.d.ts.map +1 -0
- package/dist/core/security/mfa/totp.js +293 -0
- package/dist/core/security/mfa/totp.js.map +1 -0
- package/dist/core/security/middleware.d.ts +102 -0
- package/dist/core/security/middleware.d.ts.map +1 -0
- package/dist/core/security/middleware.js +261 -0
- package/dist/core/security/middleware.js.map +1 -0
- package/dist/core/security/oauth/google.d.ts +76 -0
- package/dist/core/security/oauth/google.d.ts.map +1 -0
- package/dist/core/security/oauth/google.js +154 -0
- package/dist/core/security/oauth/google.js.map +1 -0
- package/dist/core/security/oauth/index.d.ts +8 -0
- package/dist/core/security/oauth/index.d.ts.map +1 -0
- package/dist/core/security/oauth/index.js +7 -0
- package/dist/core/security/oauth/index.js.map +1 -0
- package/dist/core/security/oauth2/authorization-server.d.ts +195 -0
- package/dist/core/security/oauth2/authorization-server.d.ts.map +1 -0
- package/dist/core/security/oauth2/authorization-server.js +569 -0
- package/dist/core/security/oauth2/authorization-server.js.map +1 -0
- package/dist/core/security/oauth2/index.d.ts +9 -0
- package/dist/core/security/oauth2/index.d.ts.map +1 -0
- package/dist/core/security/oauth2/index.js +9 -0
- package/dist/core/security/oauth2/index.js.map +1 -0
- package/dist/core/security/rate-limiter.d.ts +15 -0
- package/dist/core/security/rate-limiter.d.ts.map +1 -0
- package/dist/core/security/rate-limiter.js +48 -0
- package/dist/core/security/rate-limiter.js.map +1 -0
- package/dist/core/security/validation.d.ts +20 -0
- package/dist/core/security/validation.d.ts.map +1 -0
- package/dist/core/security/validation.js +273 -0
- package/dist/core/security/validation.js.map +1 -0
- package/dist/core/services/auth-service.d.ts +128 -0
- package/dist/core/services/auth-service.d.ts.map +1 -0
- package/dist/core/services/auth-service.js +530 -0
- package/dist/core/services/auth-service.js.map +1 -0
- package/dist/core/services/captcha-service.d.ts +44 -0
- package/dist/core/services/captcha-service.d.ts.map +1 -0
- package/dist/core/services/captcha-service.js +82 -0
- package/dist/core/services/captcha-service.js.map +1 -0
- package/dist/core/services/document-service.d.ts +59 -0
- package/dist/core/services/document-service.d.ts.map +1 -0
- package/dist/core/services/document-service.js +269 -0
- package/dist/core/services/document-service.js.map +1 -0
- package/dist/core/services/media-service.d.ts +40 -0
- package/dist/core/services/media-service.d.ts.map +1 -0
- package/dist/core/services/media-service.js +396 -0
- package/dist/core/services/media-service.js.map +1 -0
- package/dist/core/services/mfa-service.d.ts +123 -0
- package/dist/core/services/mfa-service.d.ts.map +1 -0
- package/dist/core/services/mfa-service.js +606 -0
- package/dist/core/services/mfa-service.js.map +1 -0
- package/dist/core/services/oauth-service.d.ts +58 -0
- package/dist/core/services/oauth-service.d.ts.map +1 -0
- package/dist/core/services/oauth-service.js +253 -0
- package/dist/core/services/oauth-service.js.map +1 -0
- package/dist/core/services/oauth2-server-service.d.ts +61 -0
- package/dist/core/services/oauth2-server-service.d.ts.map +1 -0
- package/dist/core/services/oauth2-server-service.js +259 -0
- package/dist/core/services/oauth2-server-service.js.map +1 -0
- package/dist/core/services/passkey-service.d.ts +59 -0
- package/dist/core/services/passkey-service.d.ts.map +1 -0
- package/dist/core/services/passkey-service.js +238 -0
- package/dist/core/services/passkey-service.js.map +1 -0
- package/dist/core/services/token-service.d.ts +31 -0
- package/dist/core/services/token-service.d.ts.map +1 -0
- package/dist/core/services/token-service.js +132 -0
- package/dist/core/services/token-service.js.map +1 -0
- package/dist/core/services/trusted-device-service.d.ts +39 -0
- package/dist/core/services/trusted-device-service.d.ts.map +1 -0
- package/dist/core/services/trusted-device-service.js +123 -0
- package/dist/core/services/trusted-device-service.js.map +1 -0
- package/dist/core/services/user-service.d.ts +38 -0
- package/dist/core/services/user-service.d.ts.map +1 -0
- package/dist/core/services/user-service.js +265 -0
- package/dist/core/services/user-service.js.map +1 -0
- package/dist/core/studio/integration.d.ts +54 -0
- package/dist/core/studio/integration.d.ts.map +1 -0
- package/dist/core/studio/integration.js +326 -0
- package/dist/core/studio/integration.js.map +1 -0
- package/dist/core/types/index.d.ts +282 -0
- package/dist/core/types/index.d.ts.map +1 -0
- package/dist/core/types/index.js +83 -0
- package/dist/core/types/index.js.map +1 -0
- package/dist/core/types/mail.d.ts +90 -0
- package/dist/core/types/mail.d.ts.map +1 -0
- package/dist/core/types/mail.js +7 -0
- package/dist/core/types/mail.js.map +1 -0
- package/dist/core/types/oauth2.d.ts +9 -0
- package/dist/core/types/oauth2.d.ts.map +1 -0
- package/dist/core/types/oauth2.js +7 -0
- package/dist/core/types/oauth2.js.map +1 -0
- package/dist/core/types/storage-adapters.d.ts +611 -0
- package/dist/core/types/storage-adapters.d.ts.map +1 -0
- package/dist/core/types/storage-adapters.js +14 -0
- package/dist/core/types/storage-adapters.js.map +1 -0
- package/dist/core/types/user.d.ts +10 -0
- package/dist/core/types/user.d.ts.map +1 -0
- package/dist/core/types/user.js +45 -0
- package/dist/core/types/user.js.map +1 -0
- package/dist/core/utils/id-generator.d.ts +16 -0
- package/dist/core/utils/id-generator.d.ts.map +1 -0
- package/dist/core/utils/id-generator.js +61 -0
- package/dist/core/utils/id-generator.js.map +1 -0
- package/dist/core/utils/logger.d.ts +100 -0
- package/dist/core/utils/logger.d.ts.map +1 -0
- package/dist/core/utils/logger.js +212 -0
- package/dist/core/utils/logger.js.map +1 -0
- package/dist/core/utils/reference-expander.d.ts +57 -0
- package/dist/core/utils/reference-expander.d.ts.map +1 -0
- package/dist/core/utils/reference-expander.js +192 -0
- package/dist/core/utils/reference-expander.js.map +1 -0
- package/dist/core/utils/universal-crypto.d.ts +46 -0
- package/dist/core/utils/universal-crypto.d.ts.map +1 -0
- package/dist/core/utils/universal-crypto.js +171 -0
- package/dist/core/utils/universal-crypto.js.map +1 -0
- package/dist/core/validation/validator.d.ts +11 -0
- package/dist/core/validation/validator.d.ts.map +1 -0
- package/dist/core/validation/validator.js +164 -0
- package/dist/core/validation/validator.js.map +1 -0
- package/dist/i18n/config.d.ts +4077 -0
- package/dist/i18n/config.d.ts.map +1 -0
- package/dist/i18n/config.js +116 -0
- package/dist/i18n/config.js.map +1 -0
- package/dist/i18n/hooks.d.ts +86 -0
- package/dist/i18n/hooks.d.ts.map +1 -0
- package/dist/i18n/hooks.js +122 -0
- package/dist/i18n/hooks.js.map +1 -0
- package/dist/i18n/index.d.ts +39 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +40 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/locales/en/auth.json +108 -0
- package/dist/i18n/locales/en/common.json +100 -0
- package/dist/i18n/locales/en/errors.json +55 -0
- package/dist/i18n/locales/en/fields.json +456 -0
- package/dist/i18n/locales/en/studio.json +1329 -0
- package/dist/i18n/locales/fr/auth.json +108 -0
- package/dist/i18n/locales/fr/common.json +100 -0
- package/dist/i18n/locales/fr/errors.json +55 -0
- package/dist/i18n/locales/fr/fields.json +456 -0
- package/dist/i18n/locales/fr/studio.json +1274 -0
- package/dist/i18n/provider.d.ts +45 -0
- package/dist/i18n/provider.d.ts.map +1 -0
- package/dist/i18n/provider.js +49 -0
- package/dist/i18n/provider.js.map +1 -0
- package/dist/i18n/types.d.ts +8 -0
- package/dist/i18n/types.d.ts.map +1 -0
- package/dist/i18n/types.js +7 -0
- package/dist/i18n/types.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/integrations/express/adapter.d.ts +33 -0
- package/dist/integrations/express/adapter.d.ts.map +1 -0
- package/dist/integrations/express/adapter.js +203 -0
- package/dist/integrations/express/adapter.js.map +1 -0
- package/dist/integrations/express/config.d.ts +599 -0
- package/dist/integrations/express/config.d.ts.map +1 -0
- package/dist/integrations/express/config.js +166 -0
- package/dist/integrations/express/config.js.map +1 -0
- package/dist/integrations/express/index.d.ts +10 -0
- package/dist/integrations/express/index.d.ts.map +1 -0
- package/dist/integrations/express/index.js +9 -0
- package/dist/integrations/express/index.js.map +1 -0
- package/dist/integrations/express/integration.d.ts +111 -0
- package/dist/integrations/express/integration.d.ts.map +1 -0
- package/dist/integrations/express/integration.js +730 -0
- package/dist/integrations/express/integration.js.map +1 -0
- package/dist/integrations/express/media-rewrite-middleware.d.ts +78 -0
- package/dist/integrations/express/media-rewrite-middleware.d.ts.map +1 -0
- package/dist/integrations/express/media-rewrite-middleware.js +211 -0
- package/dist/integrations/express/media-rewrite-middleware.js.map +1 -0
- package/dist/integrations/express/media-url-generator.d.ts +52 -0
- package/dist/integrations/express/media-url-generator.d.ts.map +1 -0
- package/dist/integrations/express/media-url-generator.js +107 -0
- package/dist/integrations/express/media-url-generator.js.map +1 -0
- package/dist/integrations/express/middleware.d.ts +25 -0
- package/dist/integrations/express/middleware.d.ts.map +1 -0
- package/dist/integrations/express/middleware.js +130 -0
- package/dist/integrations/express/middleware.js.map +1 -0
- package/dist/integrations/express/server.d.ts +99 -0
- package/dist/integrations/express/server.d.ts.map +1 -0
- package/dist/integrations/express/server.js +597 -0
- package/dist/integrations/express/server.js.map +1 -0
- package/dist/integrations/express/types.d.ts +106 -0
- package/dist/integrations/express/types.d.ts.map +1 -0
- package/dist/integrations/express/types.js +2 -0
- package/dist/integrations/express/types.js.map +1 -0
- package/dist/mail/adapters/console.d.ts +30 -0
- package/dist/mail/adapters/console.d.ts.map +1 -0
- package/dist/mail/adapters/console.js +169 -0
- package/dist/mail/adapters/console.js.map +1 -0
- package/dist/mail/adapters/resend.d.ts +18 -0
- package/dist/mail/adapters/resend.d.ts.map +1 -0
- package/dist/mail/adapters/resend.js +148 -0
- package/dist/mail/adapters/resend.js.map +1 -0
- package/dist/mail/adapters/smtp.d.ts +22 -0
- package/dist/mail/adapters/smtp.d.ts.map +1 -0
- package/dist/mail/adapters/smtp.js +180 -0
- package/dist/mail/adapters/smtp.js.map +1 -0
- package/dist/mail/index.d.ts +15 -0
- package/dist/mail/index.d.ts.map +1 -0
- package/dist/mail/index.js +13 -0
- package/dist/mail/index.js.map +1 -0
- package/dist/mail/mail-service.d.ts +180 -0
- package/dist/mail/mail-service.d.ts.map +1 -0
- package/dist/mail/mail-service.js +370 -0
- package/dist/mail/mail-service.js.map +1 -0
- package/dist/mail/notification-service.d.ts +82 -0
- package/dist/mail/notification-service.d.ts.map +1 -0
- package/dist/mail/notification-service.js +262 -0
- package/dist/mail/notification-service.js.map +1 -0
- package/dist/mail/templates/built-in-templates.d.ts +47 -0
- package/dist/mail/templates/built-in-templates.d.ts.map +1 -0
- package/dist/mail/templates/built-in-templates.js +416 -0
- package/dist/mail/templates/built-in-templates.js.map +1 -0
- package/dist/mail/templates/custom-template-renderer.d.ts +115 -0
- package/dist/mail/templates/custom-template-renderer.d.ts.map +1 -0
- package/dist/mail/templates/custom-template-renderer.js +225 -0
- package/dist/mail/templates/custom-template-renderer.js.map +1 -0
- package/dist/mail/types.d.ts +7 -0
- package/dist/mail/types.d.ts.map +1 -0
- package/dist/mail/types.js +7 -0
- package/dist/mail/types.js.map +1 -0
- package/dist/routes/auth/captcha.d.ts +33 -0
- package/dist/routes/auth/captcha.d.ts.map +1 -0
- package/dist/routes/auth/captcha.js +102 -0
- package/dist/routes/auth/captcha.js.map +1 -0
- package/dist/routes/auth/change-password.d.ts +17 -0
- package/dist/routes/auth/change-password.d.ts.map +1 -0
- package/dist/routes/auth/change-password.js +121 -0
- package/dist/routes/auth/change-password.js.map +1 -0
- package/dist/routes/auth/index.d.ts +13 -0
- package/dist/routes/auth/index.d.ts.map +1 -0
- package/dist/routes/auth/index.js +35 -0
- package/dist/routes/auth/index.js.map +1 -0
- package/dist/routes/auth/mfa.d.ts +121 -0
- package/dist/routes/auth/mfa.d.ts.map +1 -0
- package/dist/routes/auth/mfa.js +1143 -0
- package/dist/routes/auth/mfa.js.map +1 -0
- package/dist/routes/auth/oauth.d.ts +37 -0
- package/dist/routes/auth/oauth.d.ts.map +1 -0
- package/dist/routes/auth/oauth.js +420 -0
- package/dist/routes/auth/oauth.js.map +1 -0
- package/dist/routes/auth/oauth2-server.d.ts +70 -0
- package/dist/routes/auth/oauth2-server.d.ts.map +1 -0
- package/dist/routes/auth/oauth2-server.js +775 -0
- package/dist/routes/auth/oauth2-server.js.map +1 -0
- package/dist/routes/auth/passkey.d.ts +65 -0
- package/dist/routes/auth/passkey.d.ts.map +1 -0
- package/dist/routes/auth/passkey.js +910 -0
- package/dist/routes/auth/passkey.js.map +1 -0
- package/dist/routes/auth/password-reset.d.ts +23 -0
- package/dist/routes/auth/password-reset.d.ts.map +1 -0
- package/dist/routes/auth/password-reset.js +336 -0
- package/dist/routes/auth/password-reset.js.map +1 -0
- package/dist/routes/handlers/audit.d.ts +21 -0
- package/dist/routes/handlers/audit.d.ts.map +1 -0
- package/dist/routes/handlers/audit.js +124 -0
- package/dist/routes/handlers/audit.js.map +1 -0
- package/dist/routes/handlers/auth.d.ts +150 -0
- package/dist/routes/handlers/auth.d.ts.map +1 -0
- package/dist/routes/handlers/auth.js +512 -0
- package/dist/routes/handlers/auth.js.map +1 -0
- package/dist/routes/handlers/base.d.ts +34 -0
- package/dist/routes/handlers/base.d.ts.map +1 -0
- package/dist/routes/handlers/base.js +366 -0
- package/dist/routes/handlers/base.js.map +1 -0
- package/dist/routes/handlers/config.d.ts +31 -0
- package/dist/routes/handlers/config.d.ts.map +1 -0
- package/dist/routes/handlers/config.js +483 -0
- package/dist/routes/handlers/config.js.map +1 -0
- package/dist/routes/handlers/documents.d.ts +50 -0
- package/dist/routes/handlers/documents.d.ts.map +1 -0
- package/dist/routes/handlers/documents.js +708 -0
- package/dist/routes/handlers/documents.js.map +1 -0
- package/dist/routes/handlers/index.d.ts +12 -0
- package/dist/routes/handlers/index.d.ts.map +1 -0
- package/dist/routes/handlers/index.js +11 -0
- package/dist/routes/handlers/index.js.map +1 -0
- package/dist/routes/handlers/media.d.ts +24 -0
- package/dist/routes/handlers/media.d.ts.map +1 -0
- package/dist/routes/handlers/media.js +432 -0
- package/dist/routes/handlers/media.js.map +1 -0
- package/dist/routes/handlers/search.d.ts +10 -0
- package/dist/routes/handlers/search.d.ts.map +1 -0
- package/dist/routes/handlers/search.js +153 -0
- package/dist/routes/handlers/search.js.map +1 -0
- package/dist/routes/handlers/tokens.d.ts +14 -0
- package/dist/routes/handlers/tokens.d.ts.map +1 -0
- package/dist/routes/handlers/tokens.js +109 -0
- package/dist/routes/handlers/tokens.js.map +1 -0
- package/dist/routes/handlers/types.d.ts +13 -0
- package/dist/routes/handlers/types.d.ts.map +1 -0
- package/dist/routes/handlers/types.js +5 -0
- package/dist/routes/handlers/types.js.map +1 -0
- package/dist/routes/handlers/users.d.ts +16 -0
- package/dist/routes/handlers/users.d.ts.map +1 -0
- package/dist/routes/handlers/users.js +198 -0
- package/dist/routes/handlers/users.js.map +1 -0
- package/dist/routes/handlers/webhooks.d.ts +37 -0
- package/dist/routes/handlers/webhooks.d.ts.map +1 -0
- package/dist/routes/handlers/webhooks.js +343 -0
- package/dist/routes/handlers/webhooks.js.map +1 -0
- package/dist/routes/index.d.ts +5 -0
- package/dist/routes/index.d.ts.map +1 -0
- package/dist/routes/index.js +5 -0
- package/dist/routes/index.js.map +1 -0
- package/dist/routes/routes.d.ts +29 -0
- package/dist/routes/routes.d.ts.map +1 -0
- package/dist/routes/routes.js +531 -0
- package/dist/routes/routes.js.map +1 -0
- package/dist/routes/slug-processor.d.ts +32 -0
- package/dist/routes/slug-processor.d.ts.map +1 -0
- package/dist/routes/slug-processor.js +328 -0
- package/dist/routes/slug-processor.js.map +1 -0
- package/dist/routes/types.d.ts +31 -0
- package/dist/routes/types.d.ts.map +1 -0
- package/dist/routes/types.js +7 -0
- package/dist/routes/types.js.map +1 -0
- package/dist/routes/users/index.d.ts +7 -0
- package/dist/routes/users/index.d.ts.map +1 -0
- package/dist/routes/users/index.js +7 -0
- package/dist/routes/users/index.js.map +1 -0
- package/dist/structure/builder/StructureBuilder.d.ts +209 -0
- package/dist/structure/builder/StructureBuilder.d.ts.map +1 -0
- package/dist/structure/builder/StructureBuilder.js +425 -0
- package/dist/structure/builder/StructureBuilder.js.map +1 -0
- package/dist/structure/builder/index.d.ts +8 -0
- package/dist/structure/builder/index.d.ts.map +1 -0
- package/dist/structure/builder/index.js +6 -0
- package/dist/structure/builder/index.js.map +1 -0
- package/dist/structure/builder/navigation-tree-builder.d.ts +33 -0
- package/dist/structure/builder/navigation-tree-builder.d.ts.map +1 -0
- package/dist/structure/builder/navigation-tree-builder.js +284 -0
- package/dist/structure/builder/navigation-tree-builder.js.map +1 -0
- package/dist/structure/errors/index.d.ts +72 -0
- package/dist/structure/errors/index.d.ts.map +1 -0
- package/dist/structure/errors/index.js +136 -0
- package/dist/structure/errors/index.js.map +1 -0
- package/dist/structure/index.d.ts +14 -0
- package/dist/structure/index.d.ts.map +1 -0
- package/dist/structure/index.js +16 -0
- package/dist/structure/index.js.map +1 -0
- package/dist/structure/types/filters.d.ts +167 -0
- package/dist/structure/types/filters.d.ts.map +1 -0
- package/dist/structure/types/filters.js +38 -0
- package/dist/structure/types/filters.js.map +1 -0
- package/dist/structure/types/index.d.ts +11 -0
- package/dist/structure/types/index.d.ts.map +1 -0
- package/dist/structure/types/index.js +7 -0
- package/dist/structure/types/index.js.map +1 -0
- package/dist/structure/types/permissions.d.ts +159 -0
- package/dist/structure/types/permissions.d.ts.map +1 -0
- package/dist/structure/types/permissions.js +49 -0
- package/dist/structure/types/permissions.js.map +1 -0
- package/dist/structure/types/structure.d.ts +342 -0
- package/dist/structure/types/structure.d.ts.map +1 -0
- package/dist/structure/types/structure.js +6 -0
- package/dist/structure/types/structure.js.map +1 -0
- package/dist/structure/types/views.d.ts +278 -0
- package/dist/structure/types/views.d.ts.map +1 -0
- package/dist/structure/types/views.js +6 -0
- package/dist/structure/types/views.js.map +1 -0
- package/dist/structure/utils/hash.d.ts +61 -0
- package/dist/structure/utils/hash.d.ts.map +1 -0
- package/dist/structure/utils/hash.js +118 -0
- package/dist/structure/utils/hash.js.map +1 -0
- package/dist/structure/utils/index.d.ts +10 -0
- package/dist/structure/utils/index.d.ts.map +1 -0
- package/dist/structure/utils/index.js +7 -0
- package/dist/structure/utils/index.js.map +1 -0
- package/dist/structure/utils/permission-checker.d.ts +57 -0
- package/dist/structure/utils/permission-checker.d.ts.map +1 -0
- package/dist/structure/utils/permission-checker.js +286 -0
- package/dist/structure/utils/permission-checker.js.map +1 -0
- package/dist/structure/utils/query-builder.d.ts +82 -0
- package/dist/structure/utils/query-builder.d.ts.map +1 -0
- package/dist/structure/utils/query-builder.js +489 -0
- package/dist/structure/utils/query-builder.js.map +1 -0
- package/dist/structure/utils/structure-merger.d.ts +91 -0
- package/dist/structure/utils/structure-merger.d.ts.map +1 -0
- package/dist/structure/utils/structure-merger.js +445 -0
- package/dist/structure/utils/structure-merger.js.map +1 -0
- package/dist/structure/validation/schemas.d.ts +3107 -0
- package/dist/structure/validation/schemas.d.ts.map +1 -0
- package/dist/structure/validation/schemas.js +436 -0
- package/dist/structure/validation/schemas.js.map +1 -0
- package/dist/types/api-requests.d.ts +334 -0
- package/dist/types/api-requests.d.ts.map +1 -0
- package/dist/types/api-requests.js +8 -0
- package/dist/types/api-requests.js.map +1 -0
- package/dist/types/auth.d.ts +394 -0
- package/dist/types/auth.d.ts.map +1 -0
- package/dist/types/auth.js +8 -0
- package/dist/types/auth.js.map +1 -0
- package/dist/types/document.d.ts +49 -0
- package/dist/types/document.d.ts.map +1 -0
- package/dist/types/document.js +6 -0
- package/dist/types/document.js.map +1 -0
- package/dist/types/field-system.d.ts +197 -0
- package/dist/types/field-system.d.ts.map +1 -0
- package/dist/types/field-system.js +8 -0
- package/dist/types/field-system.js.map +1 -0
- package/dist/types/fields.d.ts +17 -0
- package/dist/types/fields.d.ts.map +1 -0
- package/dist/types/fields.js +21 -0
- package/dist/types/fields.js.map +1 -0
- package/dist/types/http.d.ts +162 -0
- package/dist/types/http.d.ts.map +1 -0
- package/dist/types/http.js +8 -0
- package/dist/types/http.js.map +1 -0
- package/dist/types/i18n.d.ts +56 -0
- package/dist/types/i18n.d.ts.map +1 -0
- package/dist/types/i18n.js +25 -0
- package/dist/types/i18n.js.map +1 -0
- package/dist/types/index.d.ts +22 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +10 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/mail.d.ts +224 -0
- package/dist/types/mail.d.ts.map +1 -0
- package/dist/types/mail.js +8 -0
- package/dist/types/mail.js.map +1 -0
- package/dist/types/media.d.ts +56 -0
- package/dist/types/media.d.ts.map +1 -0
- package/dist/types/media.js +6 -0
- package/dist/types/media.js.map +1 -0
- package/dist/types/oauth2.d.ts +287 -0
- package/dist/types/oauth2.d.ts.map +1 -0
- package/dist/types/oauth2.js +43 -0
- package/dist/types/oauth2.js.map +1 -0
- package/dist/types/passkey.d.ts +217 -0
- package/dist/types/passkey.d.ts.map +1 -0
- package/dist/types/passkey.js +8 -0
- package/dist/types/passkey.js.map +1 -0
- package/dist/types/slug.d.ts +99 -0
- package/dist/types/slug.d.ts.map +1 -0
- package/dist/types/slug.js +8 -0
- package/dist/types/slug.js.map +1 -0
- package/package.json +183 -0
|
@@ -0,0 +1,611 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Split Storage Adapter Interfaces
|
|
3
|
+
*
|
|
4
|
+
* This file defines the new storage architecture that separates:
|
|
5
|
+
* - DataStorageAdapter: Documents, users, and app tokens (structured data)
|
|
6
|
+
* - MediaStorageAdapter: Files and media content (unstructured data)
|
|
7
|
+
*
|
|
8
|
+
* This enables optimal deployment patterns like:
|
|
9
|
+
* - Cloudflare: D1 for data + R2 for media
|
|
10
|
+
* - AWS: DynamoDB for data + S3 for media
|
|
11
|
+
* - Hybrid: Filesystem for data + R2 for media
|
|
12
|
+
*/
|
|
13
|
+
import type { Document, AuditLog, DocumentData, ListOptions, MediaFile, MediaMetadata, Migration, User, UserListOptions, CreateUserData, UpdateUserData, AppToken, AppTokenListOptions, CreateAppTokenData, UpdateAppTokenData, AuditContext } from './index.js';
|
|
14
|
+
import type { WebhookConfig } from '../events/types.js';
|
|
15
|
+
/**
|
|
16
|
+
* Studio settings configuration
|
|
17
|
+
*/
|
|
18
|
+
export interface SettingsConfig {
|
|
19
|
+
/** Unique identifier for settings */
|
|
20
|
+
id: string;
|
|
21
|
+
/** Public website URL for "View Live" links */
|
|
22
|
+
publicUrl: string;
|
|
23
|
+
/** Studio title displayed in interface */
|
|
24
|
+
studioTitle: string;
|
|
25
|
+
/** Default theme for new users */
|
|
26
|
+
defaultTheme: 'light' | 'dark' | 'system';
|
|
27
|
+
/** Organization/company name for branding */
|
|
28
|
+
organizationName?: string;
|
|
29
|
+
/** Primary brand color (hex format) */
|
|
30
|
+
primaryColor?: string;
|
|
31
|
+
/** Secondary brand color (hex format) */
|
|
32
|
+
secondaryColor?: string;
|
|
33
|
+
/** Logo URL or path */
|
|
34
|
+
logo?: string;
|
|
35
|
+
/** Require MFA for all users */
|
|
36
|
+
mfaRequired?: boolean;
|
|
37
|
+
/** Roles that require MFA (role-based enforcement) */
|
|
38
|
+
mfaEnforcedRoles?: ('admin' | 'editor' | 'author' | 'viewer')[];
|
|
39
|
+
/** Allowed MFA methods */
|
|
40
|
+
mfaAllowedMethods?: ('totp' | 'email')[];
|
|
41
|
+
/** Days to trust a device (skip MFA) */
|
|
42
|
+
mfaTrustDeviceDays?: number;
|
|
43
|
+
/** Grace period (days) before MFA is enforced for existing users */
|
|
44
|
+
mfaGracePeriodDays?: number;
|
|
45
|
+
/** Settings creation timestamp */
|
|
46
|
+
_createdAt?: string;
|
|
47
|
+
/** Settings last update timestamp */
|
|
48
|
+
_updatedAt?: string;
|
|
49
|
+
/** User who last updated settings */
|
|
50
|
+
_updatedBy?: string;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* DataStorageAdapter handles all structured data operations
|
|
54
|
+
*
|
|
55
|
+
* This adapter is responsible for:
|
|
56
|
+
* - Content documents (articles, pages, etc.)
|
|
57
|
+
* - System users and authentication
|
|
58
|
+
* - App tokens for API access
|
|
59
|
+
* - Transactional operations
|
|
60
|
+
* - Queries and filtering
|
|
61
|
+
*
|
|
62
|
+
* Optimal backends: SQL databases (D1, PostgreSQL, MySQL), NoSQL with query support
|
|
63
|
+
*/
|
|
64
|
+
export interface DataStorageAdapter {
|
|
65
|
+
/**
|
|
66
|
+
* Retrieve a single document by collection and ID
|
|
67
|
+
* @param collection - The collection name (e.g., 'articles', 'pages')
|
|
68
|
+
* @param id - The document ID
|
|
69
|
+
* @returns The document or null if not found
|
|
70
|
+
* @throws Error if collection/id are invalid or storage fails
|
|
71
|
+
*/
|
|
72
|
+
getDocument(collection: string, id: string): Promise<Document | null>;
|
|
73
|
+
/**
|
|
74
|
+
* Save (create or update) a document
|
|
75
|
+
* @param collection - The collection name
|
|
76
|
+
* @param id - The document ID
|
|
77
|
+
* @param data - The document data (without metadata)
|
|
78
|
+
* @param auditContext - Optional audit context with user information
|
|
79
|
+
* @returns The saved document with metadata
|
|
80
|
+
* @throws Error if validation fails or storage fails
|
|
81
|
+
*/
|
|
82
|
+
saveDocument(collection: string, id: string, data: DocumentData, auditContext?: AuditContext): Promise<Document>;
|
|
83
|
+
/**
|
|
84
|
+
* List documents in a collection with filtering, sorting, and pagination
|
|
85
|
+
* @param collection - The collection name
|
|
86
|
+
* @param options - Query options (limit, offset, filter, sort)
|
|
87
|
+
* @returns Array of matching documents
|
|
88
|
+
* @throws Error if query is invalid or storage fails
|
|
89
|
+
*/
|
|
90
|
+
listDocuments(collection: string, options?: ListOptions): Promise<Document[]>;
|
|
91
|
+
/**
|
|
92
|
+
* Delete a document permanently
|
|
93
|
+
* @param collection - The collection name
|
|
94
|
+
* @param id - The document ID
|
|
95
|
+
* @throws Error if document doesn't exist or storage fails
|
|
96
|
+
*/
|
|
97
|
+
deleteDocument(collection: string, id: string): Promise<void>;
|
|
98
|
+
/**
|
|
99
|
+
* Check if a document exists (optimized check without full retrieval)
|
|
100
|
+
* @param collection - The collection name
|
|
101
|
+
* @param id - The document ID
|
|
102
|
+
* @returns True if document exists
|
|
103
|
+
*/
|
|
104
|
+
documentExists?(collection: string, id: string): Promise<boolean>;
|
|
105
|
+
/**
|
|
106
|
+
* Get document count in a collection (with optional filtering)
|
|
107
|
+
* @param collection - The collection name
|
|
108
|
+
* @param filter - Optional filter criteria
|
|
109
|
+
* @returns Number of matching documents
|
|
110
|
+
*/
|
|
111
|
+
countDocuments?(collection: string, filter?: Record<string, unknown>): Promise<number>;
|
|
112
|
+
/**
|
|
113
|
+
* Create an audit log entry
|
|
114
|
+
* @param auditLog - The audit log data
|
|
115
|
+
* @returns The created audit log entry
|
|
116
|
+
* @throws Error if storage fails
|
|
117
|
+
*/
|
|
118
|
+
createAuditLog?(auditLog: Omit<AuditLog, 'id'>): Promise<AuditLog>;
|
|
119
|
+
/**
|
|
120
|
+
* Get audit logs for a specific document
|
|
121
|
+
* @param documentId - The document ID
|
|
122
|
+
* @param options - Query options (limit, offset)
|
|
123
|
+
* @returns Array of audit log entries
|
|
124
|
+
*/
|
|
125
|
+
getDocumentAuditLogs?(documentId: string, options?: {
|
|
126
|
+
limit?: number;
|
|
127
|
+
offset?: number;
|
|
128
|
+
}): Promise<AuditLog[]>;
|
|
129
|
+
/**
|
|
130
|
+
* Get audit logs for a collection
|
|
131
|
+
* @param collection - The collection name
|
|
132
|
+
* @param options - Query options (limit, offset)
|
|
133
|
+
* @returns Array of audit log entries
|
|
134
|
+
*/
|
|
135
|
+
getCollectionAuditLogs?(collection: string, options?: {
|
|
136
|
+
limit?: number;
|
|
137
|
+
offset?: number;
|
|
138
|
+
}): Promise<AuditLog[]>;
|
|
139
|
+
/**
|
|
140
|
+
* Get audit logs by actor
|
|
141
|
+
* @param actorId - The actor ID
|
|
142
|
+
* @param options - Query options (limit, offset)
|
|
143
|
+
* @returns Array of audit log entries
|
|
144
|
+
*/
|
|
145
|
+
getActorAuditLogs?(actorId: string, options?: {
|
|
146
|
+
limit?: number;
|
|
147
|
+
offset?: number;
|
|
148
|
+
}): Promise<AuditLog[]>;
|
|
149
|
+
/**
|
|
150
|
+
* Retrieve a user by ID
|
|
151
|
+
* @param id - The user ID
|
|
152
|
+
* @returns The user or null if not found
|
|
153
|
+
* @throws Error if storage fails
|
|
154
|
+
*/
|
|
155
|
+
getUser(id: string): Promise<User | null>;
|
|
156
|
+
/**
|
|
157
|
+
* Create or update a user
|
|
158
|
+
* @param id - The user ID
|
|
159
|
+
* @param userData - The user data (partial for updates)
|
|
160
|
+
* @returns The saved user
|
|
161
|
+
* @throws Error if validation fails or storage fails
|
|
162
|
+
*/
|
|
163
|
+
saveUser(id: string, userData: CreateUserData | Partial<UpdateUserData>): Promise<User>;
|
|
164
|
+
/**
|
|
165
|
+
* Conditionally update a user, but only while the stored password hash still
|
|
166
|
+
* matches the expected one. The comparison and the write must be atomic
|
|
167
|
+
* (a single conditional statement for SQL backends, a lock for file backends)
|
|
168
|
+
* so a concurrent password change cannot be overwritten.
|
|
169
|
+
*
|
|
170
|
+
* Optional: adapters that do not implement it fall back to a
|
|
171
|
+
* read-compare-write, which is not race free.
|
|
172
|
+
*
|
|
173
|
+
* @param id - The user ID
|
|
174
|
+
* @param userData - The user fields to update
|
|
175
|
+
* @param condition - The password hash the caller expects to still be stored
|
|
176
|
+
* @returns The updated user, or null if the stored hash no longer matches (nothing written)
|
|
177
|
+
* @throws Error if storage fails
|
|
178
|
+
*/
|
|
179
|
+
saveUserIf?(id: string, userData: Partial<UpdateUserData>, condition: {
|
|
180
|
+
passwordHash: string;
|
|
181
|
+
}): Promise<User | null>;
|
|
182
|
+
/**
|
|
183
|
+
* List users with filtering and pagination
|
|
184
|
+
* @param options - Query options (role, isActive, limit, offset)
|
|
185
|
+
* @returns Array of matching users
|
|
186
|
+
* @throws Error if query is invalid or storage fails
|
|
187
|
+
*/
|
|
188
|
+
listUsers(options?: UserListOptions): Promise<User[]>;
|
|
189
|
+
/**
|
|
190
|
+
* Delete a user permanently
|
|
191
|
+
* @param id - The user ID
|
|
192
|
+
* @throws Error if user doesn't exist or storage fails
|
|
193
|
+
*/
|
|
194
|
+
deleteUser(id: string): Promise<void>;
|
|
195
|
+
/**
|
|
196
|
+
* Find user by username (for authentication)
|
|
197
|
+
* @param username - The username to search for
|
|
198
|
+
* @returns The user or null if not found
|
|
199
|
+
* @throws Error if storage fails
|
|
200
|
+
*/
|
|
201
|
+
getUserByUsername(username: string): Promise<User | null>;
|
|
202
|
+
/**
|
|
203
|
+
* Find user by email address (for authentication and uniqueness checks)
|
|
204
|
+
* @param email - The email address to search for
|
|
205
|
+
* @returns The user or null if not found
|
|
206
|
+
* @throws Error if storage fails
|
|
207
|
+
*/
|
|
208
|
+
getUserByEmail(email: string): Promise<User | null>;
|
|
209
|
+
/**
|
|
210
|
+
* Check if username is available (optimized check)
|
|
211
|
+
* @param username - The username to check
|
|
212
|
+
* @returns True if username is available
|
|
213
|
+
*/
|
|
214
|
+
isUsernameAvailable?(username: string): Promise<boolean>;
|
|
215
|
+
/**
|
|
216
|
+
* Check if email is available (optimized check)
|
|
217
|
+
* @param email - The email to check
|
|
218
|
+
* @returns True if email is available
|
|
219
|
+
*/
|
|
220
|
+
isEmailAvailable?(email: string): Promise<boolean>;
|
|
221
|
+
/**
|
|
222
|
+
* Find user by OAuth provider (for OAuth login)
|
|
223
|
+
* @param provider - The OAuth provider name (e.g., 'google')
|
|
224
|
+
* @param providerId - The provider's unique user ID
|
|
225
|
+
* @returns The user or null if not found
|
|
226
|
+
* @throws Error if storage fails
|
|
227
|
+
*/
|
|
228
|
+
getUserByOAuthProvider?(provider: string, providerId: string): Promise<User | null>;
|
|
229
|
+
/**
|
|
230
|
+
* Retrieve an app token by ID
|
|
231
|
+
* @param id - The token ID
|
|
232
|
+
* @returns The app token or null if not found
|
|
233
|
+
* @throws Error if storage fails
|
|
234
|
+
*/
|
|
235
|
+
getAppToken(id: string): Promise<AppToken | null>;
|
|
236
|
+
/**
|
|
237
|
+
* Create or update an app token
|
|
238
|
+
* @param id - The token ID
|
|
239
|
+
* @param tokenData - The token data (partial for updates)
|
|
240
|
+
* @returns The saved app token
|
|
241
|
+
* @throws Error if validation fails or storage fails
|
|
242
|
+
*/
|
|
243
|
+
saveAppToken(id: string, tokenData: CreateAppTokenData | Partial<UpdateAppTokenData>): Promise<AppToken>;
|
|
244
|
+
/**
|
|
245
|
+
* List app tokens with filtering and pagination
|
|
246
|
+
* @param options - Query options (createdBy, isActive, limit, offset)
|
|
247
|
+
* @returns Array of matching app tokens
|
|
248
|
+
* @throws Error if query is invalid or storage fails
|
|
249
|
+
*/
|
|
250
|
+
listAppTokens(options?: AppTokenListOptions): Promise<AppToken[]>;
|
|
251
|
+
/**
|
|
252
|
+
* Delete an app token permanently
|
|
253
|
+
* @param id - The token ID
|
|
254
|
+
* @throws Error if token doesn't exist or storage fails
|
|
255
|
+
*/
|
|
256
|
+
deleteAppToken(id: string): Promise<void>;
|
|
257
|
+
/**
|
|
258
|
+
* Find app token by hash (for authentication)
|
|
259
|
+
* @param hash - The hashed token value
|
|
260
|
+
* @returns The app token or null if not found
|
|
261
|
+
* @throws Error if storage fails
|
|
262
|
+
*/
|
|
263
|
+
getAppTokenByHash(hash: string): Promise<AppToken | null>;
|
|
264
|
+
/**
|
|
265
|
+
* Retrieve a webhook by ID
|
|
266
|
+
* @param id - The webhook ID
|
|
267
|
+
* @returns The webhook configuration or null if not found
|
|
268
|
+
* @throws Error if storage fails
|
|
269
|
+
*/
|
|
270
|
+
getWebhook?(id: string): Promise<WebhookConfig | null>;
|
|
271
|
+
/**
|
|
272
|
+
* Create or update a webhook
|
|
273
|
+
* @param id - The webhook ID
|
|
274
|
+
* @param webhookData - The webhook data (partial for updates)
|
|
275
|
+
* @returns The saved webhook configuration
|
|
276
|
+
* @throws Error if validation fails or storage fails
|
|
277
|
+
*/
|
|
278
|
+
saveWebhook?(id: string, webhookData: Partial<WebhookConfig>): Promise<WebhookConfig>;
|
|
279
|
+
/**
|
|
280
|
+
* List webhooks with filtering and pagination
|
|
281
|
+
* @param options - Query options (active, limit, offset)
|
|
282
|
+
* @returns Array of matching webhooks
|
|
283
|
+
* @throws Error if query is invalid or storage fails
|
|
284
|
+
*/
|
|
285
|
+
listWebhooks?(options?: WebhookListOptions): Promise<WebhookConfig[]>;
|
|
286
|
+
/**
|
|
287
|
+
* Delete a webhook permanently
|
|
288
|
+
* @param id - The webhook ID
|
|
289
|
+
* @throws Error if webhook doesn't exist or storage fails
|
|
290
|
+
*/
|
|
291
|
+
deleteWebhook?(id: string): Promise<void>;
|
|
292
|
+
/**
|
|
293
|
+
* Retrieve studio settings
|
|
294
|
+
* @returns The settings configuration or null if not found
|
|
295
|
+
* @throws Error if storage fails
|
|
296
|
+
*/
|
|
297
|
+
getSettings?(): Promise<SettingsConfig | null>;
|
|
298
|
+
/**
|
|
299
|
+
* Create or update studio settings
|
|
300
|
+
* @param settings - The settings configuration
|
|
301
|
+
* @throws Error if validation fails or storage fails
|
|
302
|
+
*/
|
|
303
|
+
saveSettings?(settings: SettingsConfig): Promise<void>;
|
|
304
|
+
/**
|
|
305
|
+
* Health check for the data storage system
|
|
306
|
+
* @returns True if storage is healthy and accessible
|
|
307
|
+
* @throws Error if storage is unhealthy
|
|
308
|
+
*/
|
|
309
|
+
healthCheck(): Promise<boolean>;
|
|
310
|
+
/**
|
|
311
|
+
* Run database migrations for schema changes
|
|
312
|
+
* @param migrations - Array of migrations to run
|
|
313
|
+
* @throws Error if migration fails
|
|
314
|
+
*/
|
|
315
|
+
migrate?(migrations: Migration[]): Promise<void>;
|
|
316
|
+
/**
|
|
317
|
+
* Get storage statistics and information
|
|
318
|
+
* @returns Storage metadata and statistics
|
|
319
|
+
*/
|
|
320
|
+
getStorageInfo?(): Promise<{
|
|
321
|
+
collections: string[];
|
|
322
|
+
documentCount: number;
|
|
323
|
+
userCount: number;
|
|
324
|
+
tokenCount: number;
|
|
325
|
+
storageSize?: number;
|
|
326
|
+
[key: string]: unknown;
|
|
327
|
+
}>;
|
|
328
|
+
/**
|
|
329
|
+
* Begin a transaction (if supported by the storage backend)
|
|
330
|
+
* @returns Transaction context or undefined if not supported
|
|
331
|
+
*/
|
|
332
|
+
beginTransaction?(): Promise<DataTransaction | undefined>;
|
|
333
|
+
/**
|
|
334
|
+
* Release whatever the adapter is holding open — connection pools, sockets, timers.
|
|
335
|
+
*
|
|
336
|
+
* Optional because most backends hold nothing: the filesystem and in-memory adapters have
|
|
337
|
+
* no handle to give back, and requiring the method would break every third-party adapter
|
|
338
|
+
* written against the interface before it existed. Implement it only when there is
|
|
339
|
+
* genuinely something to release, and make it safe to call twice — shutdown paths are
|
|
340
|
+
* rarely as orderly as they look.
|
|
341
|
+
*/
|
|
342
|
+
close?(): Promise<void>;
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* Transaction interface for data operations (optional)
|
|
346
|
+
* Allows atomic operations across multiple documents/users/tokens
|
|
347
|
+
*/
|
|
348
|
+
export interface DataTransaction {
|
|
349
|
+
/**
|
|
350
|
+
* Commit the transaction
|
|
351
|
+
*/
|
|
352
|
+
commit(): Promise<void>;
|
|
353
|
+
/**
|
|
354
|
+
* Rollback the transaction
|
|
355
|
+
*/
|
|
356
|
+
rollback(): Promise<void>;
|
|
357
|
+
/**
|
|
358
|
+
* Execute multiple operations within the transaction
|
|
359
|
+
*/
|
|
360
|
+
execute<T>(operations: () => Promise<T>): Promise<T>;
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* MediaStorageAdapter handles all unstructured data operations
|
|
364
|
+
*
|
|
365
|
+
* This adapter is responsible for:
|
|
366
|
+
* - File uploads and storage
|
|
367
|
+
* - Media metadata management
|
|
368
|
+
* - Image variant generation storage
|
|
369
|
+
* - Binary content serving
|
|
370
|
+
* - Large file handling
|
|
371
|
+
*
|
|
372
|
+
* Optimal backends: Object storage (R2, S3), CDN integration, file systems
|
|
373
|
+
*/
|
|
374
|
+
export interface MediaStorageAdapter {
|
|
375
|
+
/**
|
|
376
|
+
* Upload and store a file
|
|
377
|
+
* @param file - The file to upload
|
|
378
|
+
* @param metadata - File metadata (ID, filename, content type, etc.)
|
|
379
|
+
* @returns The stored media file record
|
|
380
|
+
* @throws Error if upload fails or file is invalid
|
|
381
|
+
*/
|
|
382
|
+
uploadFile(file: File, metadata: MediaMetadata): Promise<MediaFile>;
|
|
383
|
+
/**
|
|
384
|
+
* Retrieve media file metadata by ID
|
|
385
|
+
* @param id - The file ID
|
|
386
|
+
* @returns The media file record or null if not found
|
|
387
|
+
* @throws Error if storage fails
|
|
388
|
+
*/
|
|
389
|
+
getFile(id: string): Promise<MediaFile | null>;
|
|
390
|
+
/**
|
|
391
|
+
* Update media file metadata (not the content)
|
|
392
|
+
* @param id - The file ID
|
|
393
|
+
* @param metadata - Updated metadata
|
|
394
|
+
* @returns The updated media file record
|
|
395
|
+
* @throws Error if file doesn't exist or update fails
|
|
396
|
+
*/
|
|
397
|
+
updateFile(id: string, metadata: Record<string, any>): Promise<MediaFile>;
|
|
398
|
+
/**
|
|
399
|
+
* Retrieve the binary content of a file
|
|
400
|
+
* @param id - The file ID
|
|
401
|
+
* @returns The file content as ArrayBuffer or null if not found
|
|
402
|
+
* @throws Error if storage fails
|
|
403
|
+
*/
|
|
404
|
+
getFileContent(id: string): Promise<ArrayBuffer | null>;
|
|
405
|
+
/**
|
|
406
|
+
* Get a streaming URL for the file (if supported)
|
|
407
|
+
* @param id - The file ID
|
|
408
|
+
* @param options - Optional URL generation options (expiration time, etc.)
|
|
409
|
+
* @returns Public URL for the file or null if not available
|
|
410
|
+
*/
|
|
411
|
+
getFileUrl?(id: string, options?: {
|
|
412
|
+
expiresIn?: number;
|
|
413
|
+
}): Promise<string | null>;
|
|
414
|
+
/**
|
|
415
|
+
* List media files with filtering and pagination
|
|
416
|
+
* @param options - Query options (limit, offset, content type filters, etc.)
|
|
417
|
+
* @returns Paginated result with items and total count
|
|
418
|
+
* @throws Error if query is invalid or storage fails
|
|
419
|
+
*/
|
|
420
|
+
listMedia(options?: MediaListOptions): Promise<MediaListResult>;
|
|
421
|
+
/**
|
|
422
|
+
* Delete a file and all its variants permanently
|
|
423
|
+
* @param id - The file ID
|
|
424
|
+
* @throws Error if file doesn't exist or deletion fails
|
|
425
|
+
*/
|
|
426
|
+
deleteFile(id: string): Promise<void>;
|
|
427
|
+
/**
|
|
428
|
+
* Check if a file exists (optimized check without full retrieval)
|
|
429
|
+
* @param id - The file ID
|
|
430
|
+
* @returns True if file exists
|
|
431
|
+
*/
|
|
432
|
+
fileExists?(id: string): Promise<boolean>;
|
|
433
|
+
/**
|
|
434
|
+
* Get file size without downloading content
|
|
435
|
+
* @param id - The file ID
|
|
436
|
+
* @returns File size in bytes or null if file doesn't exist
|
|
437
|
+
*/
|
|
438
|
+
getFileSize?(id: string): Promise<number | null>;
|
|
439
|
+
/**
|
|
440
|
+
* Save a processed variant of a media file
|
|
441
|
+
* @param parentId - The original file ID
|
|
442
|
+
* @param variantName - The variant name (e.g., 'thumbnail', 'preview')
|
|
443
|
+
* @param buffer - The processed file content
|
|
444
|
+
* @param format - The output format (e.g., 'webp', 'jpeg')
|
|
445
|
+
* @returns The variant ID or path
|
|
446
|
+
* @throws Error if save fails
|
|
447
|
+
*/
|
|
448
|
+
saveVariantFile(parentId: string, variantName: string, buffer: Buffer, format: string): Promise<string>;
|
|
449
|
+
/**
|
|
450
|
+
* Retrieve the binary content of a variant
|
|
451
|
+
* @param parentId - The original file ID
|
|
452
|
+
* @param variantName - The variant name
|
|
453
|
+
* @returns The variant content as ArrayBuffer or null if not found
|
|
454
|
+
* @throws Error if storage fails
|
|
455
|
+
*/
|
|
456
|
+
getVariantContent(parentId: string, variantName: string): Promise<ArrayBuffer | null>;
|
|
457
|
+
/**
|
|
458
|
+
* Get a public URL for a variant (if supported)
|
|
459
|
+
* @param parentId - The original file ID
|
|
460
|
+
* @param variantName - The variant name
|
|
461
|
+
* @param options - Optional URL generation options (expiration time, etc.)
|
|
462
|
+
* @returns Public URL for the variant or null if not available
|
|
463
|
+
*/
|
|
464
|
+
getVariantUrl?(parentId: string, variantName: string, options?: {
|
|
465
|
+
expiresIn?: number;
|
|
466
|
+
}): Promise<string | null>;
|
|
467
|
+
/**
|
|
468
|
+
* List all variants for a media file
|
|
469
|
+
* @param parentId - The original file ID
|
|
470
|
+
* @returns Array of variant information
|
|
471
|
+
*/
|
|
472
|
+
listVariants?(parentId: string): Promise<MediaVariant[]>;
|
|
473
|
+
/**
|
|
474
|
+
* Delete all variants of a media file
|
|
475
|
+
* @param parentId - The original file ID
|
|
476
|
+
* @throws Error if deletion fails
|
|
477
|
+
*/
|
|
478
|
+
deleteVariantFiles(parentId: string): Promise<void>;
|
|
479
|
+
/**
|
|
480
|
+
* Delete a specific variant
|
|
481
|
+
* @param parentId - The original file ID
|
|
482
|
+
* @param variantName - The variant name
|
|
483
|
+
* @throws Error if variant doesn't exist or deletion fails
|
|
484
|
+
*/
|
|
485
|
+
deleteVariant?(parentId: string, variantName: string): Promise<void>;
|
|
486
|
+
/**
|
|
487
|
+
* Health check for the media storage system
|
|
488
|
+
* @returns True if storage is healthy and accessible
|
|
489
|
+
* @throws Error if storage is unhealthy
|
|
490
|
+
*/
|
|
491
|
+
healthCheck(): Promise<boolean>;
|
|
492
|
+
/**
|
|
493
|
+
* Get storage statistics and quota information
|
|
494
|
+
* @returns Storage usage statistics
|
|
495
|
+
*/
|
|
496
|
+
getStorageInfo?(): Promise<{
|
|
497
|
+
totalFiles: number;
|
|
498
|
+
totalSize: number;
|
|
499
|
+
availableSpace?: number;
|
|
500
|
+
usedSpace?: number;
|
|
501
|
+
[key: string]: unknown;
|
|
502
|
+
}>;
|
|
503
|
+
/**
|
|
504
|
+
* Clean up orphaned files and variants
|
|
505
|
+
* @returns Number of files cleaned up
|
|
506
|
+
*/
|
|
507
|
+
cleanup?(): Promise<number>;
|
|
508
|
+
/**
|
|
509
|
+
* Optimize storage (compress, deduplicate, etc.)
|
|
510
|
+
* @returns Optimization results
|
|
511
|
+
*/
|
|
512
|
+
optimize?(): Promise<{
|
|
513
|
+
filesProcessed: number;
|
|
514
|
+
spaceSaved: number;
|
|
515
|
+
[key: string]: unknown;
|
|
516
|
+
}>;
|
|
517
|
+
/**
|
|
518
|
+
* Release whatever the adapter is holding open — clients, sockets, timers.
|
|
519
|
+
*
|
|
520
|
+
* Optional for the same reason as on `DataStorageAdapter`: a filesystem or in-memory media
|
|
521
|
+
* backend has no handle to release, and third-party adapters written before this method
|
|
522
|
+
* existed must keep compiling. Note this is not `cleanup()` above — that one deletes
|
|
523
|
+
* orphaned files, this one lets the process exit.
|
|
524
|
+
*/
|
|
525
|
+
close?(): Promise<void>;
|
|
526
|
+
}
|
|
527
|
+
/**
|
|
528
|
+
* Extended media list options with more filtering capabilities
|
|
529
|
+
*/
|
|
530
|
+
export interface MediaListOptions {
|
|
531
|
+
limit?: number;
|
|
532
|
+
offset?: number;
|
|
533
|
+
/** Filter by content type (e.g., 'image/*', 'video/mp4') */
|
|
534
|
+
contentType?: string;
|
|
535
|
+
/** Filter by file size range */
|
|
536
|
+
sizeRange?: {
|
|
537
|
+
min?: number;
|
|
538
|
+
max?: number;
|
|
539
|
+
};
|
|
540
|
+
/** Filter by upload date range */
|
|
541
|
+
dateRange?: {
|
|
542
|
+
from?: Date;
|
|
543
|
+
to?: Date;
|
|
544
|
+
};
|
|
545
|
+
/** Sort options */
|
|
546
|
+
sort?: 'name' | 'size' | 'date' | 'type';
|
|
547
|
+
/** Sort direction */
|
|
548
|
+
sortDirection?: 'asc' | 'desc';
|
|
549
|
+
/** Include variant information in results */
|
|
550
|
+
includeVariants?: boolean;
|
|
551
|
+
}
|
|
552
|
+
/**
|
|
553
|
+
* Result of listing media files with pagination metadata
|
|
554
|
+
*/
|
|
555
|
+
export interface MediaListResult {
|
|
556
|
+
/** The media files for the current page */
|
|
557
|
+
items: MediaFile[];
|
|
558
|
+
/** Total number of media files matching the query (before pagination) */
|
|
559
|
+
total: number;
|
|
560
|
+
}
|
|
561
|
+
/**
|
|
562
|
+
* Media variant information
|
|
563
|
+
*/
|
|
564
|
+
export interface MediaVariant {
|
|
565
|
+
name: string;
|
|
566
|
+
format: string;
|
|
567
|
+
size: number;
|
|
568
|
+
width?: number;
|
|
569
|
+
height?: number;
|
|
570
|
+
url?: string;
|
|
571
|
+
createdAt: Date;
|
|
572
|
+
}
|
|
573
|
+
/**
|
|
574
|
+
* Configuration options for split storage adapters
|
|
575
|
+
*/
|
|
576
|
+
export interface SplitStorageConfig {
|
|
577
|
+
/** Data storage adapter configuration */
|
|
578
|
+
data: {
|
|
579
|
+
adapter: string;
|
|
580
|
+
options?: Record<string, unknown>;
|
|
581
|
+
};
|
|
582
|
+
/** Media storage adapter configuration */
|
|
583
|
+
media: {
|
|
584
|
+
adapter: string;
|
|
585
|
+
options?: Record<string, unknown>;
|
|
586
|
+
};
|
|
587
|
+
}
|
|
588
|
+
/**
|
|
589
|
+
* Webhook list options for filtering and pagination
|
|
590
|
+
*/
|
|
591
|
+
export interface WebhookListOptions {
|
|
592
|
+
/** Filter by active status */
|
|
593
|
+
active?: boolean;
|
|
594
|
+
/** Maximum number of results */
|
|
595
|
+
limit?: number;
|
|
596
|
+
/** Skip this many results (for pagination) */
|
|
597
|
+
offset?: number;
|
|
598
|
+
/** Filter by event patterns */
|
|
599
|
+
events?: string[];
|
|
600
|
+
/** Filter by creator user ID */
|
|
601
|
+
createdBy?: string;
|
|
602
|
+
}
|
|
603
|
+
/**
|
|
604
|
+
* Combined storage adapter container
|
|
605
|
+
* This is what TrokkyCore will use internally
|
|
606
|
+
*/
|
|
607
|
+
export interface TrokkyStorageAdapters {
|
|
608
|
+
data: DataStorageAdapter;
|
|
609
|
+
media: MediaStorageAdapter;
|
|
610
|
+
}
|
|
611
|
+
//# sourceMappingURL=storage-adapters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-adapters.d.ts","sourceRoot":"","sources":["../../../src/core/types/storage-adapters.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Split Storage Adapter Interfaces
|
|
3
|
+
*
|
|
4
|
+
* This file defines the new storage architecture that separates:
|
|
5
|
+
* - DataStorageAdapter: Documents, users, and app tokens (structured data)
|
|
6
|
+
* - MediaStorageAdapter: Files and media content (unstructured data)
|
|
7
|
+
*
|
|
8
|
+
* This enables optimal deployment patterns like:
|
|
9
|
+
* - Cloudflare: D1 for data + R2 for media
|
|
10
|
+
* - AWS: DynamoDB for data + S3 for media
|
|
11
|
+
* - Hybrid: Filesystem for data + R2 for media
|
|
12
|
+
*/
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=storage-adapters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-adapters.js","sourceRoot":"","sources":["../../../src/core/types/storage-adapters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* System user types for CMS authentication and authorization
|
|
3
|
+
* These are internal system entities, separate from user-defined content schemas
|
|
4
|
+
*
|
|
5
|
+
* Types are now centralized in @trokky/types and re-exported here for backwards compatibility.
|
|
6
|
+
*/
|
|
7
|
+
export type { OAuthProviderType, OAuthProvider, MFAMethodType, MFAMethod, TrustedDevice, MFAConfig, UserRole, Permission, UserPreferences, User, CreateUserData, UpdateUserData, UserListOptions, LoginCredentials, UserSession, AppToken, CreateAppTokenData, UpdateAppTokenData, AppTokenListOptions, AuthenticatedUser, AuthenticatedAppToken, AuthContext, UserTokenPayload, AppTokenPayload, MFAPendingTokenPayload, MFASetupTokenPayload, TokenPayload, AuthenticationSuccessResult, AuthenticationMFARequiredResult, AuthenticationMFASetupRequiredResult, AuthenticationResult } from '../../types/index.js';
|
|
8
|
+
import type { UserRole, Permission } from '../../types/index.js';
|
|
9
|
+
export declare const ROLE_PERMISSIONS: Record<UserRole, Permission[]>;
|
|
10
|
+
//# sourceMappingURL=user.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../src/core/types/user.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EAEV,iBAAiB,EACjB,aAAa,EAEb,aAAa,EACb,SAAS,EACT,aAAa,EACb,SAAS,EAET,QAAQ,EACR,UAAU,EACV,eAAe,EAEf,IAAI,EACJ,cAAc,EACd,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,WAAW,EAEX,QAAQ,EACR,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EAEnB,iBAAiB,EACjB,qBAAqB,EACrB,WAAW,EAEX,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,YAAY,EAEZ,2BAA2B,EAC3B,+BAA+B,EAC/B,oCAAoC,EACpC,oBAAoB,EACrB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAGhE,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,CAoC3D,CAAA"}
|