@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,394 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @trokky/types - Authentication and Authorization Types
|
|
3
|
+
*
|
|
4
|
+
* Core authentication types used across the Trokky ecosystem.
|
|
5
|
+
* These types define users, roles, permissions, tokens, and auth contexts.
|
|
6
|
+
*/
|
|
7
|
+
import type { PasskeyCredential } from './passkey.js';
|
|
8
|
+
/**
|
|
9
|
+
* Supported OAuth provider types
|
|
10
|
+
*/
|
|
11
|
+
export type OAuthProviderType = 'google' | 'github' | 'microsoft';
|
|
12
|
+
/**
|
|
13
|
+
* OAuth provider configuration for linked accounts
|
|
14
|
+
*/
|
|
15
|
+
export interface OAuthProvider {
|
|
16
|
+
/** OAuth provider type */
|
|
17
|
+
provider: OAuthProviderType;
|
|
18
|
+
/** Provider's unique user ID (e.g., Google's 'sub' claim) */
|
|
19
|
+
providerId: string;
|
|
20
|
+
/** Email from OAuth provider */
|
|
21
|
+
email: string;
|
|
22
|
+
/** ISO date when account was linked */
|
|
23
|
+
linkedAt: string;
|
|
24
|
+
/** Last time used for login */
|
|
25
|
+
lastUsedAt?: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Supported MFA method types
|
|
29
|
+
*/
|
|
30
|
+
export type MFAMethodType = 'totp' | 'email';
|
|
31
|
+
/**
|
|
32
|
+
* MFA method configuration
|
|
33
|
+
*/
|
|
34
|
+
export interface MFAMethod {
|
|
35
|
+
/** Type of MFA method */
|
|
36
|
+
type: MFAMethodType;
|
|
37
|
+
/** Whether this method is enabled */
|
|
38
|
+
enabled: boolean;
|
|
39
|
+
/** Whether this method has been verified */
|
|
40
|
+
verified: boolean;
|
|
41
|
+
/** TOTP specific - encrypted secret for authenticator apps */
|
|
42
|
+
secret?: string;
|
|
43
|
+
/** Timestamp when this method was verified/enabled */
|
|
44
|
+
verifiedAt?: string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Trusted device configuration for MFA bypass
|
|
48
|
+
*/
|
|
49
|
+
export interface TrustedDevice {
|
|
50
|
+
/** Unique device identifier (fingerprint hash) */
|
|
51
|
+
id: string;
|
|
52
|
+
/** Human-readable name, e.g., "Chrome on MacOS" */
|
|
53
|
+
name: string;
|
|
54
|
+
/** ISO date when device was trusted */
|
|
55
|
+
trustedAt: string;
|
|
56
|
+
/** ISO date when trust expires */
|
|
57
|
+
expiresAt: string;
|
|
58
|
+
/** Last time MFA was skipped due to trust */
|
|
59
|
+
lastUsedAt?: string;
|
|
60
|
+
/** IP address when device was trusted */
|
|
61
|
+
ipAddress?: string;
|
|
62
|
+
/** User agent string for identification */
|
|
63
|
+
userAgent?: string;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* MFA configuration for a user
|
|
67
|
+
*/
|
|
68
|
+
export interface MFAConfig {
|
|
69
|
+
/** Whether MFA is active for this user */
|
|
70
|
+
enabled: boolean;
|
|
71
|
+
/** Configured MFA methods */
|
|
72
|
+
methods: MFAMethod[];
|
|
73
|
+
/** Hashed one-time backup codes */
|
|
74
|
+
backupCodes?: string[];
|
|
75
|
+
/** When backup codes were last generated */
|
|
76
|
+
backupCodesGeneratedAt?: string;
|
|
77
|
+
/** Devices that can skip MFA */
|
|
78
|
+
trustedDevices?: TrustedDevice[];
|
|
79
|
+
/** When org MFA requirement was applied to this user */
|
|
80
|
+
enforcedAt?: string;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* System user roles
|
|
84
|
+
* - admin: Full access to all features
|
|
85
|
+
* - editor: Can create, edit, delete, and publish content
|
|
86
|
+
* - author: Can create, edit, and publish own content
|
|
87
|
+
* - writer: Can create and edit content, but cannot publish (requires editor review)
|
|
88
|
+
* - viewer: Read-only access to content
|
|
89
|
+
* - api: For API tokens (permissions come from token itself)
|
|
90
|
+
*/
|
|
91
|
+
export type UserRole = 'admin' | 'editor' | 'author' | 'writer' | 'viewer' | 'api';
|
|
92
|
+
/**
|
|
93
|
+
* Granular permissions with resource-based scoping
|
|
94
|
+
*/
|
|
95
|
+
export type Permission = 'content:read' | 'content:write' | 'content:delete' | 'content:publish' | 'content:*' | 'media:read' | 'media:upload' | 'media:edit' | 'media:delete' | 'users:read' | 'users:write' | 'users:delete' | 'users:invite' | 'settings:read' | 'settings:write' | 'studio:access' | 'tokens:read' | 'tokens:write' | 'tokens:delete' | 'webhooks:read' | 'webhooks:write' | 'webhooks:delete' | 'webhooks:test' | string;
|
|
96
|
+
/**
|
|
97
|
+
* User preferences for UI and localization
|
|
98
|
+
*/
|
|
99
|
+
export interface UserPreferences {
|
|
100
|
+
/** UI theme preference */
|
|
101
|
+
theme?: 'light' | 'dark';
|
|
102
|
+
/** Preferred language */
|
|
103
|
+
language?: string;
|
|
104
|
+
/** Preferred timezone */
|
|
105
|
+
timezone?: string;
|
|
106
|
+
/** Additional custom preferences */
|
|
107
|
+
[key: string]: unknown;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* System user entity
|
|
111
|
+
*/
|
|
112
|
+
export interface User {
|
|
113
|
+
/** Unique user ID */
|
|
114
|
+
id: string;
|
|
115
|
+
/** Username for login */
|
|
116
|
+
username: string;
|
|
117
|
+
/** Email address */
|
|
118
|
+
email: string;
|
|
119
|
+
/** Hashed password */
|
|
120
|
+
passwordHash: string;
|
|
121
|
+
/** First name */
|
|
122
|
+
firstName: string;
|
|
123
|
+
/** Last name */
|
|
124
|
+
lastName: string;
|
|
125
|
+
/** User role */
|
|
126
|
+
role: UserRole;
|
|
127
|
+
/** Granted permissions */
|
|
128
|
+
permissions: Permission[];
|
|
129
|
+
/** Whether the user is active */
|
|
130
|
+
isActive: boolean;
|
|
131
|
+
/** Profile image URL */
|
|
132
|
+
profileImage?: string;
|
|
133
|
+
/** User preferences */
|
|
134
|
+
preferences?: UserPreferences;
|
|
135
|
+
/** Linked OAuth accounts */
|
|
136
|
+
oauthProviders?: OAuthProvider[];
|
|
137
|
+
/** Multi-factor authentication configuration */
|
|
138
|
+
mfa?: MFAConfig;
|
|
139
|
+
/** Registered passkey credentials for passwordless authentication */
|
|
140
|
+
passkeys?: PasskeyCredential[];
|
|
141
|
+
/** Last login timestamp */
|
|
142
|
+
lastLoginAt?: string;
|
|
143
|
+
/** Account creation timestamp */
|
|
144
|
+
createdAt: string;
|
|
145
|
+
/** Last update timestamp */
|
|
146
|
+
updatedAt: string;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Data required to create a new user
|
|
150
|
+
*/
|
|
151
|
+
export interface CreateUserData {
|
|
152
|
+
username: string;
|
|
153
|
+
email: string;
|
|
154
|
+
/** Plain text password (will be hashed) */
|
|
155
|
+
password: string;
|
|
156
|
+
firstName: string;
|
|
157
|
+
lastName: string;
|
|
158
|
+
role: UserRole;
|
|
159
|
+
permissions?: Permission[];
|
|
160
|
+
isActive?: boolean;
|
|
161
|
+
profileImage?: string;
|
|
162
|
+
preferences?: UserPreferences;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Data for updating a user
|
|
166
|
+
*/
|
|
167
|
+
export interface UpdateUserData {
|
|
168
|
+
username?: string;
|
|
169
|
+
email?: string;
|
|
170
|
+
firstName?: string;
|
|
171
|
+
lastName?: string;
|
|
172
|
+
role?: UserRole;
|
|
173
|
+
permissions?: Permission[];
|
|
174
|
+
isActive?: boolean;
|
|
175
|
+
profileImage?: string;
|
|
176
|
+
preferences?: UserPreferences;
|
|
177
|
+
mfa?: MFAConfig;
|
|
178
|
+
lastLoginAt?: string;
|
|
179
|
+
passwordHash?: string;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Options for listing users
|
|
183
|
+
*/
|
|
184
|
+
export interface UserListOptions {
|
|
185
|
+
role?: UserRole;
|
|
186
|
+
isActive?: boolean;
|
|
187
|
+
limit?: number;
|
|
188
|
+
offset?: number;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Login credentials
|
|
192
|
+
*/
|
|
193
|
+
export interface LoginCredentials {
|
|
194
|
+
username: string;
|
|
195
|
+
password: string;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* User session information
|
|
199
|
+
*/
|
|
200
|
+
export interface UserSession {
|
|
201
|
+
userId: string;
|
|
202
|
+
username: string;
|
|
203
|
+
role: UserRole;
|
|
204
|
+
permissions: Permission[];
|
|
205
|
+
loginAt: string;
|
|
206
|
+
expiresAt?: string;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Application token for API access
|
|
210
|
+
*/
|
|
211
|
+
export interface AppToken {
|
|
212
|
+
/** Unique token ID */
|
|
213
|
+
id: string;
|
|
214
|
+
/** Human-readable token name */
|
|
215
|
+
name: string;
|
|
216
|
+
/** Optional description */
|
|
217
|
+
description?: string;
|
|
218
|
+
/** Hashed version of the actual token */
|
|
219
|
+
tokenHash: string;
|
|
220
|
+
/** Permissions granted to this token */
|
|
221
|
+
permissions: Permission[];
|
|
222
|
+
/** User ID who created the token */
|
|
223
|
+
createdBy: string;
|
|
224
|
+
/** Whether the token is active */
|
|
225
|
+
isActive: boolean;
|
|
226
|
+
/** Last time the token was used */
|
|
227
|
+
lastUsedAt?: string;
|
|
228
|
+
/** Number of times the token has been used */
|
|
229
|
+
usageCount?: number;
|
|
230
|
+
/** Optional expiration date */
|
|
231
|
+
expiresAt?: string;
|
|
232
|
+
/** Creation timestamp */
|
|
233
|
+
createdAt: string;
|
|
234
|
+
/** Last update timestamp */
|
|
235
|
+
updatedAt: string;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Data required to create an app token
|
|
239
|
+
*/
|
|
240
|
+
export interface CreateAppTokenData {
|
|
241
|
+
name: string;
|
|
242
|
+
description?: string;
|
|
243
|
+
permissions: Permission[];
|
|
244
|
+
/** Optional expiration date */
|
|
245
|
+
expiresAt?: string;
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Data for updating an app token
|
|
249
|
+
*/
|
|
250
|
+
export interface UpdateAppTokenData {
|
|
251
|
+
name?: string;
|
|
252
|
+
description?: string;
|
|
253
|
+
permissions?: Permission[];
|
|
254
|
+
isActive?: boolean;
|
|
255
|
+
expiresAt?: string;
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Options for listing app tokens
|
|
259
|
+
*/
|
|
260
|
+
export interface AppTokenListOptions {
|
|
261
|
+
createdBy?: string;
|
|
262
|
+
isActive?: boolean;
|
|
263
|
+
limit?: number;
|
|
264
|
+
offset?: number;
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Authenticated user (without sensitive data like passwordHash)
|
|
268
|
+
*/
|
|
269
|
+
export interface AuthenticatedUser {
|
|
270
|
+
id: string;
|
|
271
|
+
username: string;
|
|
272
|
+
email: string;
|
|
273
|
+
firstName: string;
|
|
274
|
+
lastName: string;
|
|
275
|
+
role: UserRole;
|
|
276
|
+
permissions: Permission[];
|
|
277
|
+
isActive: boolean;
|
|
278
|
+
oauthProviders?: OAuthProvider[];
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Authenticated app token (without sensitive data)
|
|
282
|
+
*/
|
|
283
|
+
export interface AuthenticatedAppToken {
|
|
284
|
+
id: string;
|
|
285
|
+
name: string;
|
|
286
|
+
permissions: Permission[];
|
|
287
|
+
createdBy: string;
|
|
288
|
+
isActive: boolean;
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Authentication context - represents the authenticated entity
|
|
292
|
+
*/
|
|
293
|
+
export type AuthContext = {
|
|
294
|
+
type: 'user';
|
|
295
|
+
user: AuthenticatedUser;
|
|
296
|
+
} | {
|
|
297
|
+
type: 'app_token';
|
|
298
|
+
token: AuthenticatedAppToken;
|
|
299
|
+
} | {
|
|
300
|
+
type: 'anonymous';
|
|
301
|
+
};
|
|
302
|
+
/**
|
|
303
|
+
* JWT payload for user tokens
|
|
304
|
+
*/
|
|
305
|
+
export interface UserTokenPayload {
|
|
306
|
+
type: 'user';
|
|
307
|
+
userId: string;
|
|
308
|
+
username: string;
|
|
309
|
+
role: UserRole;
|
|
310
|
+
permissions: Permission[];
|
|
311
|
+
iat: number;
|
|
312
|
+
exp: number;
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* JWT payload for app tokens
|
|
316
|
+
*/
|
|
317
|
+
export interface AppTokenPayload {
|
|
318
|
+
type: 'app_token';
|
|
319
|
+
tokenId: string;
|
|
320
|
+
name: string;
|
|
321
|
+
permissions: Permission[];
|
|
322
|
+
createdBy: string;
|
|
323
|
+
iat: number;
|
|
324
|
+
exp?: number;
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* JWT payload for MFA pending state
|
|
328
|
+
*/
|
|
329
|
+
export interface MFAPendingTokenPayload {
|
|
330
|
+
type: 'mfa_pending';
|
|
331
|
+
userId: string;
|
|
332
|
+
username: string;
|
|
333
|
+
/** Available MFA methods for this user */
|
|
334
|
+
mfaMethods: MFAMethodType[];
|
|
335
|
+
iat: number;
|
|
336
|
+
/** Short-lived: 5 minutes */
|
|
337
|
+
exp: number;
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* JWT payload for MFA setup state
|
|
341
|
+
*/
|
|
342
|
+
export interface MFASetupTokenPayload {
|
|
343
|
+
type: 'mfa_setup';
|
|
344
|
+
userId: string;
|
|
345
|
+
username: string;
|
|
346
|
+
/** Methods allowed by org settings */
|
|
347
|
+
allowedMethods: MFAMethodType[];
|
|
348
|
+
iat: number;
|
|
349
|
+
/** Limited scope: 15 minutes */
|
|
350
|
+
exp: number;
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* Union type for all token payloads
|
|
354
|
+
*/
|
|
355
|
+
export type TokenPayload = UserTokenPayload | AppTokenPayload | MFAPendingTokenPayload | MFASetupTokenPayload;
|
|
356
|
+
/**
|
|
357
|
+
* Successful authentication result
|
|
358
|
+
*/
|
|
359
|
+
export interface AuthenticationSuccessResult {
|
|
360
|
+
type: 'success';
|
|
361
|
+
user: User;
|
|
362
|
+
token: string;
|
|
363
|
+
refreshToken: string;
|
|
364
|
+
/** ISO date string when token expires */
|
|
365
|
+
expiresAt: string;
|
|
366
|
+
}
|
|
367
|
+
/**
|
|
368
|
+
* MFA required authentication result
|
|
369
|
+
*/
|
|
370
|
+
export interface AuthenticationMFARequiredResult {
|
|
371
|
+
type: 'mfa_required';
|
|
372
|
+
requiresMFA: true;
|
|
373
|
+
mfaToken: string;
|
|
374
|
+
methods: MFAMethodType[];
|
|
375
|
+
/** Seconds until mfaToken expires (default: 300 = 5 minutes) */
|
|
376
|
+
expiresIn: number;
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* MFA setup required authentication result
|
|
380
|
+
*/
|
|
381
|
+
export interface AuthenticationMFASetupRequiredResult {
|
|
382
|
+
type: 'mfa_setup_required';
|
|
383
|
+
requiresMFASetup: true;
|
|
384
|
+
setupToken: string;
|
|
385
|
+
allowedMethods: MFAMethodType[];
|
|
386
|
+
message: string;
|
|
387
|
+
/** Seconds until setupToken expires (default: 900 = 15 minutes) */
|
|
388
|
+
expiresIn: number;
|
|
389
|
+
}
|
|
390
|
+
/**
|
|
391
|
+
* Union type for all authentication results
|
|
392
|
+
*/
|
|
393
|
+
export type AuthenticationResult = AuthenticationSuccessResult | AuthenticationMFARequiredResult | AuthenticationMFASetupRequiredResult;
|
|
394
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/types/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/types/auth.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Document Types
|
|
3
|
+
* Shared types for document handling across all Trokky packages
|
|
4
|
+
*/
|
|
5
|
+
export interface BaseDocument {
|
|
6
|
+
_id?: string;
|
|
7
|
+
_type: string;
|
|
8
|
+
_createdAt?: string;
|
|
9
|
+
_updatedAt?: string;
|
|
10
|
+
_version?: number;
|
|
11
|
+
[key: string]: any;
|
|
12
|
+
}
|
|
13
|
+
export interface DocumentResult<T = any> {
|
|
14
|
+
data: T;
|
|
15
|
+
_id: string;
|
|
16
|
+
_type: string;
|
|
17
|
+
_createdAt: string;
|
|
18
|
+
_updatedAt: string;
|
|
19
|
+
_version: number;
|
|
20
|
+
}
|
|
21
|
+
export interface CollectionResult<T = any> {
|
|
22
|
+
documents: DocumentResult<T>[];
|
|
23
|
+
pagination: {
|
|
24
|
+
page: number;
|
|
25
|
+
limit: number;
|
|
26
|
+
total: number;
|
|
27
|
+
pages: number;
|
|
28
|
+
};
|
|
29
|
+
meta: {
|
|
30
|
+
total: number;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export interface DocumentWithContent<T = any> extends BaseDocument {
|
|
34
|
+
data: T;
|
|
35
|
+
}
|
|
36
|
+
export interface QueryOptions {
|
|
37
|
+
filter?: Record<string, any>;
|
|
38
|
+
sort?: Record<string, 1 | -1 | 'asc' | 'desc'> | string;
|
|
39
|
+
limit?: number;
|
|
40
|
+
offset?: number;
|
|
41
|
+
select?: string[];
|
|
42
|
+
}
|
|
43
|
+
export interface ListOptions {
|
|
44
|
+
limit?: number;
|
|
45
|
+
offset?: number;
|
|
46
|
+
sort?: string;
|
|
47
|
+
filter?: Record<string, any>;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=document.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/types/document.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAGD,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,GAAG;IACrC,IAAI,EAAE,CAAC,CAAC;IACR,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAGD,MAAM,WAAW,gBAAgB,CAAC,CAAC,GAAG,GAAG;IACvC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/B,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAGD,MAAM,WAAW,mBAAmB,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,YAAY;IAChE,IAAI,EAAE,CAAC,CAAC;CACT;AAGD,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAGD,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/types/document.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @trokky/types - Field System Types
|
|
3
|
+
*
|
|
4
|
+
* Core field system types used across the Trokky ecosystem.
|
|
5
|
+
* These types define the foundation for field definitions, validation, and context.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Operators for conditional field visibility
|
|
9
|
+
*/
|
|
10
|
+
export type ConditionalOperator = 'equals' | 'notEquals' | 'contains' | 'notContains' | 'exists' | 'notExists' | 'greaterThan' | 'lessThan';
|
|
11
|
+
/**
|
|
12
|
+
* Configuration for conditional field visibility
|
|
13
|
+
* Supports both single conditions and multiple conditions with logic operators
|
|
14
|
+
*/
|
|
15
|
+
export interface ConditionalConfig {
|
|
16
|
+
/** Field name for single condition */
|
|
17
|
+
field?: string;
|
|
18
|
+
/** Value to compare against */
|
|
19
|
+
value?: any;
|
|
20
|
+
/** Comparison operator */
|
|
21
|
+
operator?: ConditionalOperator;
|
|
22
|
+
/** Multiple conditions for complex visibility rules */
|
|
23
|
+
conditions?: Array<{
|
|
24
|
+
field: string;
|
|
25
|
+
value?: any;
|
|
26
|
+
operator?: ConditionalOperator;
|
|
27
|
+
}>;
|
|
28
|
+
/** How to combine multiple conditions (default: 'and') */
|
|
29
|
+
logic?: 'and' | 'or';
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Result of field validation
|
|
33
|
+
*/
|
|
34
|
+
export interface ValidationResult {
|
|
35
|
+
/** Whether the validation passed */
|
|
36
|
+
isValid: boolean;
|
|
37
|
+
/** Array of error messages */
|
|
38
|
+
errors: string[];
|
|
39
|
+
/** Optional array of warning messages */
|
|
40
|
+
warnings?: string[];
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Base validation configuration
|
|
44
|
+
*/
|
|
45
|
+
export interface BaseValidation {
|
|
46
|
+
/** Whether the field is required */
|
|
47
|
+
required?: boolean;
|
|
48
|
+
/** Custom validation function */
|
|
49
|
+
custom?: (value: any) => ValidationResult;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Real-time validation state for field feedback
|
|
53
|
+
*/
|
|
54
|
+
export interface ValidationState {
|
|
55
|
+
/** Whether validation is currently in progress */
|
|
56
|
+
isValidating: boolean;
|
|
57
|
+
/** The last value that was validated */
|
|
58
|
+
lastValidatedValue?: any;
|
|
59
|
+
/** When the last validation occurred */
|
|
60
|
+
lastValidatedAt?: Date;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Categories for organizing field types
|
|
64
|
+
*/
|
|
65
|
+
export type FieldCategory = 'text' | 'number' | 'boolean' | 'date' | 'media' | 'reference' | 'structure' | 'location' | 'custom';
|
|
66
|
+
/**
|
|
67
|
+
* Base options interface for field display and behavior
|
|
68
|
+
*/
|
|
69
|
+
export interface BaseFieldOptions {
|
|
70
|
+
/** Placeholder text for input fields */
|
|
71
|
+
placeholder?: string;
|
|
72
|
+
/** Help text displayed below the field */
|
|
73
|
+
helpText?: string;
|
|
74
|
+
/** Layout style for the field */
|
|
75
|
+
layout?: 'default' | 'compact' | 'inline';
|
|
76
|
+
/** Width of the field in the form */
|
|
77
|
+
width?: 'full' | 'half' | 'third' | 'quarter';
|
|
78
|
+
/** Additional CSS class name */
|
|
79
|
+
className?: string;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Base field definition that all field types extend
|
|
83
|
+
*/
|
|
84
|
+
export interface BaseFieldDefinition {
|
|
85
|
+
/** The field type identifier */
|
|
86
|
+
type: string;
|
|
87
|
+
/** Display title for the field */
|
|
88
|
+
title: string;
|
|
89
|
+
/** Optional description/help text */
|
|
90
|
+
description?: string;
|
|
91
|
+
/** Whether the field is required */
|
|
92
|
+
required?: boolean;
|
|
93
|
+
/**
|
|
94
|
+
* Field visibility control
|
|
95
|
+
* - boolean: Static visibility (always hidden or visible)
|
|
96
|
+
* - function: Dynamic visibility based on document state
|
|
97
|
+
*
|
|
98
|
+
* NOTE: Functions cannot be serialized over HTTP. If your schemas are sent from backend to frontend,
|
|
99
|
+
* use the `conditional` property instead for dynamic visibility.
|
|
100
|
+
*/
|
|
101
|
+
hidden?: boolean | ((document: Record<string, any>) => boolean);
|
|
102
|
+
/** Whether the field is read-only */
|
|
103
|
+
readOnly?: boolean;
|
|
104
|
+
/** Hide field label in Studio (useful for display-only fields like info) */
|
|
105
|
+
hideLabel?: boolean;
|
|
106
|
+
/** Group name for organizing fields */
|
|
107
|
+
group?: string;
|
|
108
|
+
/**
|
|
109
|
+
* Declarative conditional visibility (serializable, works over HTTP)
|
|
110
|
+
* Prefer this over function-based `hidden` when schemas are sent via API
|
|
111
|
+
*/
|
|
112
|
+
conditional?: ConditionalConfig;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Base value interface that all field values extend
|
|
116
|
+
*/
|
|
117
|
+
export interface BaseFieldValue {
|
|
118
|
+
/** Type identifier for the value */
|
|
119
|
+
_type: string;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Context provided to fields during rendering
|
|
123
|
+
* Contains document information, schema, and user context
|
|
124
|
+
*/
|
|
125
|
+
export interface DocumentContext {
|
|
126
|
+
/** The document ID (undefined for new documents) */
|
|
127
|
+
documentId?: string;
|
|
128
|
+
/** The schema/collection name */
|
|
129
|
+
schema: string;
|
|
130
|
+
/** Whether this is a new document being created */
|
|
131
|
+
isNewDocument: boolean;
|
|
132
|
+
/** All documents in the system, keyed by collection */
|
|
133
|
+
allDocuments?: Record<string, any[]>;
|
|
134
|
+
/** Current form values for field interactions */
|
|
135
|
+
allValues?: Record<string, any>;
|
|
136
|
+
/** Current authenticated user */
|
|
137
|
+
currentUser?: any;
|
|
138
|
+
/** User's permissions */
|
|
139
|
+
permissions?: string[];
|
|
140
|
+
/** Nesting level for object fields (0 = top-level, 1+ = nested) */
|
|
141
|
+
nestingLevel?: number;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Field plugin source types
|
|
145
|
+
*/
|
|
146
|
+
export type FieldPluginSource = 'builtin' | 'external' | 'custom';
|
|
147
|
+
/**
|
|
148
|
+
* Base field plugin interface (without React component types)
|
|
149
|
+
* The full FieldPlugin interface with React components is in @trokky/fields
|
|
150
|
+
*/
|
|
151
|
+
export interface BaseFieldPlugin<TDefinition extends BaseFieldDefinition = BaseFieldDefinition, TValue = any> {
|
|
152
|
+
/** Unique type identifier for the field */
|
|
153
|
+
type: string;
|
|
154
|
+
/** Human-readable display name */
|
|
155
|
+
displayName: string;
|
|
156
|
+
/** Description of the field type */
|
|
157
|
+
description: string;
|
|
158
|
+
/** Category for organizing fields */
|
|
159
|
+
category: FieldCategory;
|
|
160
|
+
/** Validation function */
|
|
161
|
+
validate: (value: TValue, definition: TDefinition, context?: DocumentContext) => ValidationResult;
|
|
162
|
+
/** Default value generator */
|
|
163
|
+
getDefaultValue: (definition: TDefinition) => TValue;
|
|
164
|
+
/** Convert definition to schema field */
|
|
165
|
+
toSchemaField: (definition: TDefinition) => any;
|
|
166
|
+
/** Convert schema field to definition */
|
|
167
|
+
fromSchemaField: (schemaField: any) => TDefinition;
|
|
168
|
+
/** Optional settings for the field type */
|
|
169
|
+
settings?: {
|
|
170
|
+
icon?: string;
|
|
171
|
+
color?: string;
|
|
172
|
+
tags?: string[];
|
|
173
|
+
};
|
|
174
|
+
/** Demo configuration for auto-generated field demonstrations */
|
|
175
|
+
demoConfig?: {
|
|
176
|
+
examples: Array<{
|
|
177
|
+
name: string;
|
|
178
|
+
value: TValue;
|
|
179
|
+
description: string;
|
|
180
|
+
}>;
|
|
181
|
+
invalidValue?: TValue;
|
|
182
|
+
variants: Array<{
|
|
183
|
+
name: string;
|
|
184
|
+
definition: TDefinition;
|
|
185
|
+
}>;
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Base registered field plugin with metadata (without React components)
|
|
190
|
+
*/
|
|
191
|
+
export interface BaseRegisteredFieldPlugin extends BaseFieldPlugin {
|
|
192
|
+
/** Source of the plugin */
|
|
193
|
+
source: FieldPluginSource;
|
|
194
|
+
/** When the plugin was registered */
|
|
195
|
+
registeredAt: Date;
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=field-system.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-system.d.ts","sourceRoot":"","sources":["../../src/types/field-system.ts"],"names":[],"mappings":"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"}
|