@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,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Media Types
|
|
3
|
+
* Shared types for media handling across all Trokky packages
|
|
4
|
+
*/
|
|
5
|
+
export interface MediaAssetReference {
|
|
6
|
+
_ref: string;
|
|
7
|
+
_type: 'mediaAsset';
|
|
8
|
+
}
|
|
9
|
+
export interface MediaFieldValue {
|
|
10
|
+
_type: 'media';
|
|
11
|
+
asset: MediaAssetReference;
|
|
12
|
+
alt?: string;
|
|
13
|
+
caption?: string;
|
|
14
|
+
title?: string;
|
|
15
|
+
variant?: string;
|
|
16
|
+
}
|
|
17
|
+
export type MediaType = 'image' | 'video' | 'audio' | 'document' | 'archive';
|
|
18
|
+
export interface MediaAsset {
|
|
19
|
+
id: string;
|
|
20
|
+
filename: string;
|
|
21
|
+
originalFilename?: string;
|
|
22
|
+
contentType: string;
|
|
23
|
+
size: number;
|
|
24
|
+
url: string;
|
|
25
|
+
uploadedAt: string;
|
|
26
|
+
title?: string;
|
|
27
|
+
description?: string;
|
|
28
|
+
metadata?: {
|
|
29
|
+
width?: number;
|
|
30
|
+
height?: number;
|
|
31
|
+
duration?: number;
|
|
32
|
+
title?: string;
|
|
33
|
+
alt?: string;
|
|
34
|
+
credit?: string;
|
|
35
|
+
author?: string;
|
|
36
|
+
tags?: string[];
|
|
37
|
+
imageVariants?: Record<string, {
|
|
38
|
+
url: string;
|
|
39
|
+
width: number;
|
|
40
|
+
height: number;
|
|
41
|
+
format: string;
|
|
42
|
+
size: number;
|
|
43
|
+
}>;
|
|
44
|
+
originalDimensions?: {
|
|
45
|
+
width: number;
|
|
46
|
+
height: number;
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export interface MediaBrowserConfig {
|
|
51
|
+
onSelect: (value: MediaFieldValue) => void;
|
|
52
|
+
mediaTypeFilter?: MediaType;
|
|
53
|
+
showVariantSelector?: boolean;
|
|
54
|
+
context?: string;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=media.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/types/media.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,YAAY,CAAC;CACrB;AAGD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,mBAAmB,CAAC;IAE3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAGD,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;AAG7E,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE;QACT,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;YAC7B,GAAG,EAAE,MAAM,CAAC;YACZ,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,EAAE,MAAM,CAAC;YACf,MAAM,EAAE,MAAM,CAAC;YACf,IAAI,EAAE,MAAM,CAAC;SACd,CAAC,CAAC;QACH,kBAAkB,CAAC,EAAE;YACnB,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC;KACH,CAAC;CACH;AAGD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAC3C,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/types/media.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @trokky/types - OAuth2 Authorization Server Types
|
|
3
|
+
*
|
|
4
|
+
* Supports Device Authorization Flow (RFC 8628) and Authorization Code Flow with PKCE.
|
|
5
|
+
* Enables Trokky Studio to act as an SSO provider for CLI and external applications.
|
|
6
|
+
*/
|
|
7
|
+
import type { Permission } from './auth.js';
|
|
8
|
+
/**
|
|
9
|
+
* OAuth2 Grant Types supported by the authorization server
|
|
10
|
+
*/
|
|
11
|
+
export type OAuth2GrantType = 'authorization_code' | 'urn:ietf:params:oauth:grant-type:device_code' | 'refresh_token';
|
|
12
|
+
/**
|
|
13
|
+
* OAuth2 Client Types
|
|
14
|
+
* - public: No client secret (CLI, SPAs, mobile apps)
|
|
15
|
+
* - confidential: Has client secret (server-side web apps)
|
|
16
|
+
*/
|
|
17
|
+
export type OAuth2ClientType = 'public' | 'confidential';
|
|
18
|
+
/**
|
|
19
|
+
* Registered OAuth2 Client (Application)
|
|
20
|
+
*/
|
|
21
|
+
export interface OAuth2Client {
|
|
22
|
+
/** Unique client identifier */
|
|
23
|
+
id: string;
|
|
24
|
+
/** Human-readable client name */
|
|
25
|
+
name: string;
|
|
26
|
+
/** Optional description */
|
|
27
|
+
description?: string;
|
|
28
|
+
/** Client type (public or confidential) */
|
|
29
|
+
type: OAuth2ClientType;
|
|
30
|
+
/** Hashed client secret (only for confidential clients) */
|
|
31
|
+
secretHash?: string;
|
|
32
|
+
/** Allowed redirect URIs for authorization code flow */
|
|
33
|
+
redirectUris: string[];
|
|
34
|
+
/** Allowed scopes this client can request */
|
|
35
|
+
allowedScopes: OAuth2Scope[];
|
|
36
|
+
/** Allowed grant types for this client */
|
|
37
|
+
grantTypes: OAuth2GrantType[];
|
|
38
|
+
/** Whether client is active */
|
|
39
|
+
isActive: boolean;
|
|
40
|
+
/** Whether this is a built-in client (e.g., CLI) */
|
|
41
|
+
isBuiltIn?: boolean;
|
|
42
|
+
/** User ID who registered this client */
|
|
43
|
+
createdBy?: string;
|
|
44
|
+
/** Logo URL for consent screen */
|
|
45
|
+
logoUrl?: string;
|
|
46
|
+
/** Homepage URL for client info */
|
|
47
|
+
homepageUrl?: string;
|
|
48
|
+
/** Privacy policy URL */
|
|
49
|
+
privacyPolicyUrl?: string;
|
|
50
|
+
/** Terms of service URL */
|
|
51
|
+
termsOfServiceUrl?: string;
|
|
52
|
+
createdAt: string;
|
|
53
|
+
updatedAt: string;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* OAuth2 Scopes - map to Trokky permissions
|
|
57
|
+
*/
|
|
58
|
+
export type OAuth2Scope = 'openid' | 'profile' | 'content:read' | 'content:write' | 'content:delete' | 'media:read' | 'media:write' | 'offline_access';
|
|
59
|
+
/**
|
|
60
|
+
* Map OAuth2 scopes to Trokky permissions
|
|
61
|
+
*/
|
|
62
|
+
export declare const SCOPE_TO_PERMISSIONS: Record<OAuth2Scope, Permission[]>;
|
|
63
|
+
/**
|
|
64
|
+
* Device Authorization Request
|
|
65
|
+
* POST /auth/device
|
|
66
|
+
*/
|
|
67
|
+
export interface DeviceAuthorizationRequest {
|
|
68
|
+
/** Client identifier */
|
|
69
|
+
client_id: string;
|
|
70
|
+
/** Space-separated list of requested scopes */
|
|
71
|
+
scope?: string;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Device Authorization Response
|
|
75
|
+
* Returned by POST /auth/device
|
|
76
|
+
*/
|
|
77
|
+
export interface DeviceAuthorizationResponse {
|
|
78
|
+
/** Device verification code (shown to user) */
|
|
79
|
+
device_code: string;
|
|
80
|
+
/** User code to enter in browser (short, easy to type) */
|
|
81
|
+
user_code: string;
|
|
82
|
+
/** URL where user should go to authorize */
|
|
83
|
+
verification_uri: string;
|
|
84
|
+
/** Full URL with user_code pre-filled (optional) */
|
|
85
|
+
verification_uri_complete?: string;
|
|
86
|
+
/** Lifetime of device_code in seconds */
|
|
87
|
+
expires_in: number;
|
|
88
|
+
/** Minimum polling interval in seconds */
|
|
89
|
+
interval: number;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Device code state stored server-side
|
|
93
|
+
*/
|
|
94
|
+
export interface DeviceCodeState {
|
|
95
|
+
/** The device code (hashed for storage) */
|
|
96
|
+
deviceCodeHash: string;
|
|
97
|
+
/** The user code (plain text, for lookup) */
|
|
98
|
+
userCode: string;
|
|
99
|
+
/** Client that initiated the request */
|
|
100
|
+
clientId: string;
|
|
101
|
+
/** Requested scopes */
|
|
102
|
+
scopes: OAuth2Scope[];
|
|
103
|
+
/** When the code expires */
|
|
104
|
+
expiresAt: number;
|
|
105
|
+
/** Polling interval in seconds */
|
|
106
|
+
interval: number;
|
|
107
|
+
/** Authorization status */
|
|
108
|
+
status: 'pending' | 'authorized' | 'denied' | 'expired';
|
|
109
|
+
/** User ID if authorized */
|
|
110
|
+
userId?: string;
|
|
111
|
+
/** Timestamp when user authorized/denied */
|
|
112
|
+
decidedAt?: number;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Device Token Request
|
|
116
|
+
* POST /auth/token with grant_type=urn:ietf:params:oauth:grant-type:device_code
|
|
117
|
+
*/
|
|
118
|
+
export interface DeviceTokenRequest {
|
|
119
|
+
grant_type: 'urn:ietf:params:oauth:grant-type:device_code';
|
|
120
|
+
device_code: string;
|
|
121
|
+
client_id: string;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Authorization Request (GET /auth/authorize)
|
|
125
|
+
*/
|
|
126
|
+
export interface AuthorizationRequest {
|
|
127
|
+
response_type: 'code';
|
|
128
|
+
client_id: string;
|
|
129
|
+
redirect_uri: string;
|
|
130
|
+
scope?: string;
|
|
131
|
+
state: string;
|
|
132
|
+
/** PKCE code challenge */
|
|
133
|
+
code_challenge: string;
|
|
134
|
+
/** PKCE code challenge method (always S256) */
|
|
135
|
+
code_challenge_method: 'S256';
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Authorization code state stored server-side
|
|
139
|
+
*/
|
|
140
|
+
export interface AuthorizationCodeState {
|
|
141
|
+
/** The authorization code (hashed for storage) */
|
|
142
|
+
codeHash: string;
|
|
143
|
+
/** Client that initiated the request */
|
|
144
|
+
clientId: string;
|
|
145
|
+
/** Redirect URI used in the request */
|
|
146
|
+
redirectUri: string;
|
|
147
|
+
/** Requested scopes */
|
|
148
|
+
scopes: OAuth2Scope[];
|
|
149
|
+
/** PKCE code challenge */
|
|
150
|
+
codeChallenge: string;
|
|
151
|
+
/** User ID who authorized */
|
|
152
|
+
userId: string;
|
|
153
|
+
/** When the code expires (short-lived, ~10 minutes) */
|
|
154
|
+
expiresAt: number;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Authorization Code Token Request
|
|
158
|
+
* POST /auth/token with grant_type=authorization_code
|
|
159
|
+
*/
|
|
160
|
+
export interface AuthorizationCodeTokenRequest {
|
|
161
|
+
grant_type: 'authorization_code';
|
|
162
|
+
code: string;
|
|
163
|
+
redirect_uri: string;
|
|
164
|
+
client_id: string;
|
|
165
|
+
/** PKCE code verifier */
|
|
166
|
+
code_verifier: string;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Refresh Token Request
|
|
170
|
+
* POST /auth/token with grant_type=refresh_token
|
|
171
|
+
*/
|
|
172
|
+
export interface OAuth2RefreshTokenRequest {
|
|
173
|
+
grant_type: 'refresh_token';
|
|
174
|
+
refresh_token: string;
|
|
175
|
+
client_id: string;
|
|
176
|
+
scope?: string;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Successful Token Response
|
|
180
|
+
*/
|
|
181
|
+
export interface TokenResponse {
|
|
182
|
+
access_token: string;
|
|
183
|
+
token_type: 'Bearer';
|
|
184
|
+
expires_in: number;
|
|
185
|
+
refresh_token?: string;
|
|
186
|
+
scope: string;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* OAuth2 Error Response
|
|
190
|
+
*/
|
|
191
|
+
export interface OAuth2ErrorResponse {
|
|
192
|
+
error: OAuth2ErrorCode;
|
|
193
|
+
error_description?: string;
|
|
194
|
+
error_uri?: string;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* OAuth2 Error Codes
|
|
198
|
+
*/
|
|
199
|
+
export type OAuth2ErrorCode = 'authorization_pending' | 'slow_down' | 'access_denied' | 'expired_token' | 'invalid_request' | 'invalid_client' | 'invalid_grant' | 'unauthorized_client' | 'unsupported_grant_type' | 'invalid_scope' | 'server_error';
|
|
200
|
+
/**
|
|
201
|
+
* User consent record for a client
|
|
202
|
+
*/
|
|
203
|
+
export interface UserConsent {
|
|
204
|
+
/** User ID */
|
|
205
|
+
userId: string;
|
|
206
|
+
/** Client ID */
|
|
207
|
+
clientId: string;
|
|
208
|
+
/** Scopes the user has consented to */
|
|
209
|
+
scopes: OAuth2Scope[];
|
|
210
|
+
/** When consent was granted */
|
|
211
|
+
grantedAt: string;
|
|
212
|
+
/** When consent expires (optional) */
|
|
213
|
+
expiresAt?: string;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* OAuth2 Access Token record (for revocation tracking)
|
|
217
|
+
*/
|
|
218
|
+
export interface OAuth2AccessToken {
|
|
219
|
+
/** Token ID (jti claim) */
|
|
220
|
+
id: string;
|
|
221
|
+
/** User ID */
|
|
222
|
+
userId: string;
|
|
223
|
+
/** Client ID */
|
|
224
|
+
clientId: string;
|
|
225
|
+
/** Granted scopes */
|
|
226
|
+
scopes: OAuth2Scope[];
|
|
227
|
+
/** When token expires */
|
|
228
|
+
expiresAt: number;
|
|
229
|
+
/** Whether token has been revoked */
|
|
230
|
+
revoked: boolean;
|
|
231
|
+
createdAt: string;
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* OAuth2 Refresh Token record
|
|
235
|
+
*/
|
|
236
|
+
export interface OAuth2RefreshToken {
|
|
237
|
+
/** Token hash */
|
|
238
|
+
tokenHash: string;
|
|
239
|
+
/** User ID */
|
|
240
|
+
userId: string;
|
|
241
|
+
/** Client ID */
|
|
242
|
+
clientId: string;
|
|
243
|
+
/** Granted scopes */
|
|
244
|
+
scopes: OAuth2Scope[];
|
|
245
|
+
/** When token expires */
|
|
246
|
+
expiresAt: number;
|
|
247
|
+
/** Whether token has been revoked */
|
|
248
|
+
revoked: boolean;
|
|
249
|
+
/** Access token ID this refresh token is associated with */
|
|
250
|
+
accessTokenId?: string;
|
|
251
|
+
createdAt: string;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Data for creating a new OAuth2 client
|
|
255
|
+
*/
|
|
256
|
+
export interface CreateOAuth2ClientData {
|
|
257
|
+
name: string;
|
|
258
|
+
description?: string;
|
|
259
|
+
type: OAuth2ClientType;
|
|
260
|
+
redirectUris: string[];
|
|
261
|
+
allowedScopes?: OAuth2Scope[];
|
|
262
|
+
grantTypes?: OAuth2GrantType[];
|
|
263
|
+
logoUrl?: string;
|
|
264
|
+
homepageUrl?: string;
|
|
265
|
+
privacyPolicyUrl?: string;
|
|
266
|
+
termsOfServiceUrl?: string;
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Data for updating an OAuth2 client
|
|
270
|
+
*/
|
|
271
|
+
export interface UpdateOAuth2ClientData {
|
|
272
|
+
name?: string;
|
|
273
|
+
description?: string;
|
|
274
|
+
redirectUris?: string[];
|
|
275
|
+
allowedScopes?: OAuth2Scope[];
|
|
276
|
+
grantTypes?: OAuth2GrantType[];
|
|
277
|
+
isActive?: boolean;
|
|
278
|
+
logoUrl?: string;
|
|
279
|
+
homepageUrl?: string;
|
|
280
|
+
privacyPolicyUrl?: string;
|
|
281
|
+
termsOfServiceUrl?: string;
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Built-in CLI client configuration
|
|
285
|
+
*/
|
|
286
|
+
export declare const BUILTIN_CLI_CLIENT: Omit<OAuth2Client, 'createdAt' | 'updatedAt'>;
|
|
287
|
+
//# sourceMappingURL=oauth2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth2.d.ts","sourceRoot":"","sources":["../../src/types/oauth2.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @trokky/types - OAuth2 Authorization Server Types
|
|
3
|
+
*
|
|
4
|
+
* Supports Device Authorization Flow (RFC 8628) and Authorization Code Flow with PKCE.
|
|
5
|
+
* Enables Trokky Studio to act as an SSO provider for CLI and external applications.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Map OAuth2 scopes to Trokky permissions
|
|
9
|
+
*/
|
|
10
|
+
export const SCOPE_TO_PERMISSIONS = {
|
|
11
|
+
'openid': [],
|
|
12
|
+
'profile': [],
|
|
13
|
+
'content:read': ['content:read'],
|
|
14
|
+
'content:write': ['content:read', 'content:write'],
|
|
15
|
+
'content:delete': ['content:read', 'content:delete'],
|
|
16
|
+
'media:read': ['media:read'],
|
|
17
|
+
'media:write': ['media:read', 'media:upload', 'media:edit'],
|
|
18
|
+
'offline_access': []
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Built-in CLI client configuration
|
|
22
|
+
*/
|
|
23
|
+
export const BUILTIN_CLI_CLIENT = {
|
|
24
|
+
id: 'trokky-cli',
|
|
25
|
+
name: 'Trokky CLI',
|
|
26
|
+
description: 'Official Trokky command-line interface',
|
|
27
|
+
type: 'public',
|
|
28
|
+
redirectUris: [], // Device flow doesn't use redirects
|
|
29
|
+
allowedScopes: [
|
|
30
|
+
'openid',
|
|
31
|
+
'profile',
|
|
32
|
+
'content:read',
|
|
33
|
+
'content:write',
|
|
34
|
+
'content:delete',
|
|
35
|
+
'media:read',
|
|
36
|
+
'media:write',
|
|
37
|
+
'offline_access'
|
|
38
|
+
],
|
|
39
|
+
grantTypes: ['urn:ietf:params:oauth:grant-type:device_code', 'refresh_token'],
|
|
40
|
+
isActive: true,
|
|
41
|
+
isBuiltIn: true
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=oauth2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth2.js","sourceRoot":"","sources":["../../src/types/oauth2.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA0EH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAsC;IACrE,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,EAAE;IACb,cAAc,EAAE,CAAC,cAAc,CAAC;IAChC,eAAe,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC;IAClD,gBAAgB,EAAE,CAAC,cAAc,EAAE,gBAAgB,CAAC;IACpD,YAAY,EAAE,CAAC,YAAY,CAAC;IAC5B,aAAa,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,YAAY,CAAC;IAC3D,gBAAgB,EAAE,EAAE;CACrB,CAAA;AAmRD;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAkD;IAC/E,EAAE,EAAE,YAAY;IAChB,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,wCAAwC;IACrD,IAAI,EAAE,QAAQ;IACd,YAAY,EAAE,EAAE,EAAE,oCAAoC;IACtD,aAAa,EAAE;QACb,QAAQ;QACR,SAAS;QACT,cAAc;QACd,eAAe;QACf,gBAAgB;QAChB,YAAY;QACZ,aAAa;QACb,gBAAgB;KACjB;IACD,UAAU,EAAE,CAAC,8CAA8C,EAAE,eAAe,CAAC;IAC7E,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAI;CAChB,CAAA"}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @trokky/types - Passkey/WebAuthn Types
|
|
3
|
+
*
|
|
4
|
+
* Types for passwordless authentication using WebAuthn/Passkeys.
|
|
5
|
+
* Enables biometric and security key authentication in Trokky Studio.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Authenticator transport types (how the authenticator communicates)
|
|
9
|
+
*/
|
|
10
|
+
export type AuthenticatorTransportType = 'usb' | 'ble' | 'nfc' | 'internal' | 'hybrid';
|
|
11
|
+
/**
|
|
12
|
+
* Stored passkey credential (server-side)
|
|
13
|
+
*/
|
|
14
|
+
export interface PasskeyCredential {
|
|
15
|
+
/** Base64URL-encoded credential ID */
|
|
16
|
+
id: string;
|
|
17
|
+
/** Base64URL-encoded public key */
|
|
18
|
+
publicKey: string;
|
|
19
|
+
/** Signature counter for replay attack prevention */
|
|
20
|
+
counter: number;
|
|
21
|
+
/** Device type - single device or synced across devices */
|
|
22
|
+
deviceType: 'singleDevice' | 'multiDevice';
|
|
23
|
+
/** Whether credential is backed up (e.g., iCloud Keychain, Google Password Manager) */
|
|
24
|
+
backedUp: boolean;
|
|
25
|
+
/** How the authenticator communicates */
|
|
26
|
+
transports?: AuthenticatorTransportType[];
|
|
27
|
+
/** ISO date when credential was registered */
|
|
28
|
+
createdAt: string;
|
|
29
|
+
/** ISO date when credential was last used */
|
|
30
|
+
lastUsedAt?: string;
|
|
31
|
+
/** User-friendly name (e.g., "MacBook Pro Touch ID") */
|
|
32
|
+
friendlyName?: string;
|
|
33
|
+
/** Authenticator AAGUID for device identification */
|
|
34
|
+
aaguid?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Authenticator selection criteria for registration
|
|
38
|
+
*/
|
|
39
|
+
export interface PasskeyAuthenticatorSelection {
|
|
40
|
+
/** Prefer platform (built-in) or cross-platform (roaming) authenticator */
|
|
41
|
+
authenticatorAttachment?: 'platform' | 'cross-platform';
|
|
42
|
+
/** Whether to create a discoverable credential (resident key) */
|
|
43
|
+
residentKey?: 'required' | 'preferred' | 'discouraged';
|
|
44
|
+
/** Legacy: require resident key */
|
|
45
|
+
requireResidentKey?: boolean;
|
|
46
|
+
/** User verification requirement */
|
|
47
|
+
userVerification?: 'required' | 'preferred' | 'discouraged';
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Passkey configuration for the security config
|
|
51
|
+
*/
|
|
52
|
+
export interface PasskeyConfig {
|
|
53
|
+
/** Whether passkey authentication is enabled */
|
|
54
|
+
enabled: boolean;
|
|
55
|
+
/** Relying Party ID (domain name, e.g., "example.com") */
|
|
56
|
+
rpId: string;
|
|
57
|
+
/** Human-readable Relying Party name */
|
|
58
|
+
rpName: string;
|
|
59
|
+
/** Allowed origin(s) for WebAuthn requests */
|
|
60
|
+
origin: string | string[];
|
|
61
|
+
/** Attestation conveyance preference */
|
|
62
|
+
attestation?: 'none' | 'indirect' | 'direct' | 'enterprise';
|
|
63
|
+
/** User verification requirement for authentication */
|
|
64
|
+
userVerification?: 'required' | 'preferred' | 'discouraged';
|
|
65
|
+
/** Challenge timeout in milliseconds (default: 60000) */
|
|
66
|
+
timeout?: number;
|
|
67
|
+
/** Authenticator selection criteria for registration */
|
|
68
|
+
authenticatorSelection?: PasskeyAuthenticatorSelection;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Credential descriptor for exclude/allow lists
|
|
72
|
+
*/
|
|
73
|
+
export interface PasskeyCredentialDescriptor {
|
|
74
|
+
/** Base64URL-encoded credential ID */
|
|
75
|
+
id: string;
|
|
76
|
+
/** Always 'public-key' for WebAuthn */
|
|
77
|
+
type: 'public-key';
|
|
78
|
+
/** Authenticator transports */
|
|
79
|
+
transports?: AuthenticatorTransportType[];
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Options returned from /auth/passkey/register/options
|
|
83
|
+
*/
|
|
84
|
+
export interface PasskeyRegistrationOptions {
|
|
85
|
+
/** Base64URL-encoded challenge */
|
|
86
|
+
challenge: string;
|
|
87
|
+
/** Server session ID for verification */
|
|
88
|
+
sessionId: string;
|
|
89
|
+
/** Relying Party ID */
|
|
90
|
+
rpId: string;
|
|
91
|
+
/** Relying Party name */
|
|
92
|
+
rpName: string;
|
|
93
|
+
/** Base64URL-encoded user ID */
|
|
94
|
+
userId: string;
|
|
95
|
+
/** Username for credential */
|
|
96
|
+
userName: string;
|
|
97
|
+
/** Display name for credential */
|
|
98
|
+
userDisplayName: string;
|
|
99
|
+
/** Credentials to exclude (already registered) */
|
|
100
|
+
excludeCredentials: PasskeyCredentialDescriptor[];
|
|
101
|
+
/** Authenticator selection criteria */
|
|
102
|
+
authenticatorSelection: PasskeyAuthenticatorSelection;
|
|
103
|
+
/** Attestation conveyance preference */
|
|
104
|
+
attestation: 'none' | 'indirect' | 'direct' | 'enterprise';
|
|
105
|
+
/** Timeout in milliseconds */
|
|
106
|
+
timeout: number;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Request body for /auth/passkey/register/options
|
|
110
|
+
*/
|
|
111
|
+
export interface PasskeyRegistrationOptionsRequest {
|
|
112
|
+
/** Optional friendly name for the passkey */
|
|
113
|
+
friendlyName?: string;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Request body for /auth/passkey/register/verify
|
|
117
|
+
*/
|
|
118
|
+
export interface PasskeyRegistrationVerifyRequest {
|
|
119
|
+
/** Session ID from registration options */
|
|
120
|
+
sessionId: string;
|
|
121
|
+
/** WebAuthn credential response from browser */
|
|
122
|
+
credential: {
|
|
123
|
+
id: string;
|
|
124
|
+
rawId: string;
|
|
125
|
+
type: 'public-key';
|
|
126
|
+
response: {
|
|
127
|
+
clientDataJSON: string;
|
|
128
|
+
attestationObject: string;
|
|
129
|
+
transports?: AuthenticatorTransportType[];
|
|
130
|
+
};
|
|
131
|
+
clientExtensionResults?: Record<string, unknown>;
|
|
132
|
+
authenticatorAttachment?: 'platform' | 'cross-platform';
|
|
133
|
+
};
|
|
134
|
+
/** Optional friendly name for the passkey */
|
|
135
|
+
friendlyName?: string;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Options returned from /auth/passkey/login/options
|
|
139
|
+
*/
|
|
140
|
+
export interface PasskeyAuthenticationOptions {
|
|
141
|
+
/** Base64URL-encoded challenge */
|
|
142
|
+
challenge: string;
|
|
143
|
+
/** Server session ID for verification */
|
|
144
|
+
sessionId: string;
|
|
145
|
+
/** Relying Party ID */
|
|
146
|
+
rpId: string;
|
|
147
|
+
/** Allowed credentials (empty for discoverable credentials) */
|
|
148
|
+
allowCredentials: PasskeyCredentialDescriptor[];
|
|
149
|
+
/** User verification requirement */
|
|
150
|
+
userVerification: 'required' | 'preferred' | 'discouraged';
|
|
151
|
+
/** Timeout in milliseconds */
|
|
152
|
+
timeout: number;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Request body for /auth/passkey/login/options
|
|
156
|
+
*/
|
|
157
|
+
export interface PasskeyAuthenticationOptionsRequest {
|
|
158
|
+
/** Optional username for targeted authentication */
|
|
159
|
+
username?: string;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Request body for /auth/passkey/login/verify
|
|
163
|
+
*/
|
|
164
|
+
export interface PasskeyAuthenticationVerifyRequest {
|
|
165
|
+
/** Session ID from authentication options */
|
|
166
|
+
sessionId: string;
|
|
167
|
+
/** WebAuthn assertion response from browser */
|
|
168
|
+
credential: {
|
|
169
|
+
id: string;
|
|
170
|
+
rawId: string;
|
|
171
|
+
type: 'public-key';
|
|
172
|
+
response: {
|
|
173
|
+
clientDataJSON: string;
|
|
174
|
+
authenticatorData: string;
|
|
175
|
+
signature: string;
|
|
176
|
+
userHandle?: string;
|
|
177
|
+
};
|
|
178
|
+
clientExtensionResults?: Record<string, unknown>;
|
|
179
|
+
authenticatorAttachment?: 'platform' | 'cross-platform';
|
|
180
|
+
};
|
|
181
|
+
/** Device ID for trusted device check */
|
|
182
|
+
deviceId?: string;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Request body for updating a passkey credential
|
|
186
|
+
*/
|
|
187
|
+
export interface PasskeyUpdateRequest {
|
|
188
|
+
/** New friendly name */
|
|
189
|
+
friendlyName: string;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Response for listing passkey credentials
|
|
193
|
+
*/
|
|
194
|
+
export interface PasskeyCredentialListResponse {
|
|
195
|
+
/** List of credentials (without publicKey) */
|
|
196
|
+
credentials: Omit<PasskeyCredential, 'publicKey'>[];
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Server-side session for passkey operations
|
|
200
|
+
*/
|
|
201
|
+
export interface PasskeySession {
|
|
202
|
+
/** Challenge for this session */
|
|
203
|
+
challenge: string;
|
|
204
|
+
/** User ID (for registration) */
|
|
205
|
+
userId?: string;
|
|
206
|
+
/** Expected origin for verification */
|
|
207
|
+
expectedOrigin: string | string[];
|
|
208
|
+
/** Expected RP ID for verification */
|
|
209
|
+
expectedRPID: string;
|
|
210
|
+
/** Session mode */
|
|
211
|
+
mode: 'register' | 'login';
|
|
212
|
+
/** Friendly name (for registration) */
|
|
213
|
+
friendlyName?: string;
|
|
214
|
+
/** Session expiration timestamp */
|
|
215
|
+
expiresAt: number;
|
|
216
|
+
}
|
|
217
|
+
//# sourceMappingURL=passkey.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"passkey.d.ts","sourceRoot":"","sources":["../../src/types/passkey.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"passkey.js","sourceRoot":"","sources":["../../src/types/passkey.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|