@starklabs/forge 1.3.25-builtin-configs.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/MIGRATION.md +89 -0
- package/README.md +353 -0
- package/dist/account/AccountController.d.ts +18 -0
- package/dist/account/AccountController.d.ts.map +1 -0
- package/dist/account/AccountController.js +93 -0
- package/dist/account/AccountController.js.map +1 -0
- package/dist/account/AccountModule.d.ts +13 -0
- package/dist/account/AccountModule.d.ts.map +1 -0
- package/dist/account/AccountModule.js +35 -0
- package/dist/account/AccountModule.js.map +1 -0
- package/dist/account/RoleController.d.ts +18 -0
- package/dist/account/RoleController.d.ts.map +1 -0
- package/dist/account/RoleController.js +43 -0
- package/dist/account/RoleController.js.map +1 -0
- package/dist/account/index.d.ts +3 -0
- package/dist/account/index.d.ts.map +1 -0
- package/dist/account/index.js +3 -0
- package/dist/account/index.js.map +1 -0
- package/dist/admin/AdminModule.d.ts +19 -0
- package/dist/admin/AdminModule.d.ts.map +1 -0
- package/dist/admin/AdminModule.js +32 -0
- package/dist/admin/AdminModule.js.map +1 -0
- package/dist/admin/index.d.ts +2 -0
- package/dist/admin/index.d.ts.map +1 -0
- package/dist/admin/index.js +2 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/auth/AccountLinkPolicy.d.ts +17 -0
- package/dist/auth/AccountLinkPolicy.d.ts.map +1 -0
- package/dist/auth/AccountLinkPolicy.js +30 -0
- package/dist/auth/AccountLinkPolicy.js.map +1 -0
- package/dist/auth/AuthController.d.ts +24 -0
- package/dist/auth/AuthController.d.ts.map +1 -0
- package/dist/auth/AuthController.js +99 -0
- package/dist/auth/AuthController.js.map +1 -0
- package/dist/auth/AuthModule.d.ts +24 -0
- package/dist/auth/AuthModule.d.ts.map +1 -0
- package/dist/auth/AuthModule.js +84 -0
- package/dist/auth/AuthModule.js.map +1 -0
- package/dist/auth/AuthService.d.ts +40 -0
- package/dist/auth/AuthService.d.ts.map +1 -0
- package/dist/auth/AuthService.js +119 -0
- package/dist/auth/AuthService.js.map +1 -0
- package/dist/auth/AuthServices.d.ts +43 -0
- package/dist/auth/AuthServices.d.ts.map +1 -0
- package/dist/auth/AuthServices.js +78 -0
- package/dist/auth/AuthServices.js.map +1 -0
- package/dist/auth/CookieWriter.d.ts +26 -0
- package/dist/auth/CookieWriter.d.ts.map +1 -0
- package/dist/auth/CookieWriter.js +53 -0
- package/dist/auth/CookieWriter.js.map +1 -0
- package/dist/auth/LoginCompleter.d.ts +37 -0
- package/dist/auth/LoginCompleter.d.ts.map +1 -0
- package/dist/auth/LoginCompleter.js +32 -0
- package/dist/auth/LoginCompleter.js.map +1 -0
- package/dist/auth/MagicLinkController.d.ts +16 -0
- package/dist/auth/MagicLinkController.d.ts.map +1 -0
- package/dist/auth/MagicLinkController.js +41 -0
- package/dist/auth/MagicLinkController.js.map +1 -0
- package/dist/auth/MagicLinkService.d.ts +45 -0
- package/dist/auth/MagicLinkService.d.ts.map +1 -0
- package/dist/auth/MagicLinkService.js +132 -0
- package/dist/auth/MagicLinkService.js.map +1 -0
- package/dist/auth/MfaController.d.ts +25 -0
- package/dist/auth/MfaController.d.ts.map +1 -0
- package/dist/auth/MfaController.js +67 -0
- package/dist/auth/MfaController.js.map +1 -0
- package/dist/auth/MfaService.d.ts +60 -0
- package/dist/auth/MfaService.d.ts.map +1 -0
- package/dist/auth/MfaService.js +192 -0
- package/dist/auth/MfaService.js.map +1 -0
- package/dist/auth/OtpService.d.ts +43 -0
- package/dist/auth/OtpService.d.ts.map +1 -0
- package/dist/auth/OtpService.js +168 -0
- package/dist/auth/OtpService.js.map +1 -0
- package/dist/auth/SessionResponder.d.ts +37 -0
- package/dist/auth/SessionResponder.d.ts.map +1 -0
- package/dist/auth/SessionResponder.js +49 -0
- package/dist/auth/SessionResponder.js.map +1 -0
- package/dist/auth/SessionService.d.ts +43 -0
- package/dist/auth/SessionService.d.ts.map +1 -0
- package/dist/auth/SessionService.js +122 -0
- package/dist/auth/SessionService.js.map +1 -0
- package/dist/auth/UserProvisioner.d.ts +25 -0
- package/dist/auth/UserProvisioner.d.ts.map +1 -0
- package/dist/auth/UserProvisioner.js +30 -0
- package/dist/auth/UserProvisioner.js.map +1 -0
- package/dist/auth/index.d.ts +7 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +7 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/config/Duration.d.ts +21 -0
- package/dist/config/Duration.d.ts.map +1 -0
- package/dist/config/Duration.js +63 -0
- package/dist/config/Duration.js.map +1 -0
- package/dist/config/ForgeConfig.d.ts +131 -0
- package/dist/config/ForgeConfig.d.ts.map +1 -0
- package/dist/config/ForgeConfig.js +425 -0
- package/dist/config/ForgeConfig.js.map +1 -0
- package/dist/config/ForgeOptions.d.ts +202 -0
- package/dist/config/ForgeOptions.d.ts.map +1 -0
- package/dist/config/ForgeOptions.js +2 -0
- package/dist/config/ForgeOptions.js.map +1 -0
- package/dist/config/index.d.ts +4 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +4 -0
- package/dist/config/index.js.map +1 -0
- package/dist/core/AccessPolicy.d.ts +33 -0
- package/dist/core/AccessPolicy.d.ts.map +1 -0
- package/dist/core/AccessPolicy.js +60 -0
- package/dist/core/AccessPolicy.js.map +1 -0
- package/dist/core/ActionRunner.d.ts +30 -0
- package/dist/core/ActionRunner.d.ts.map +1 -0
- package/dist/core/ActionRunner.js +59 -0
- package/dist/core/ActionRunner.js.map +1 -0
- package/dist/core/BuiltinCollections.d.ts +24 -0
- package/dist/core/BuiltinCollections.d.ts.map +1 -0
- package/dist/core/BuiltinCollections.js +167 -0
- package/dist/core/BuiltinCollections.js.map +1 -0
- package/dist/core/FeatureModule.d.ts +35 -0
- package/dist/core/FeatureModule.d.ts.map +1 -0
- package/dist/core/FeatureModule.js +116 -0
- package/dist/core/FeatureModule.js.map +1 -0
- package/dist/core/FieldTransformer.d.ts +24 -0
- package/dist/core/FieldTransformer.d.ts.map +1 -0
- package/dist/core/FieldTransformer.js +66 -0
- package/dist/core/FieldTransformer.js.map +1 -0
- package/dist/core/Forge.d.ts +47 -0
- package/dist/core/Forge.d.ts.map +1 -0
- package/dist/core/Forge.js +196 -0
- package/dist/core/Forge.js.map +1 -0
- package/dist/core/Pagination.d.ts +19 -0
- package/dist/core/Pagination.d.ts.map +1 -0
- package/dist/core/Pagination.js +51 -0
- package/dist/core/Pagination.js.map +1 -0
- package/dist/core/ResponseSanitizer.d.ts +18 -0
- package/dist/core/ResponseSanitizer.d.ts.map +1 -0
- package/dist/core/ResponseSanitizer.js +65 -0
- package/dist/core/ResponseSanitizer.js.map +1 -0
- package/dist/core/RouteContext.d.ts +30 -0
- package/dist/core/RouteContext.d.ts.map +1 -0
- package/dist/core/RouteContext.js +66 -0
- package/dist/core/RouteContext.js.map +1 -0
- package/dist/core/ServiceFactory.d.ts +20 -0
- package/dist/core/ServiceFactory.d.ts.map +1 -0
- package/dist/core/ServiceFactory.js +81 -0
- package/dist/core/ServiceFactory.js.map +1 -0
- package/dist/core/Services.d.ts +52 -0
- package/dist/core/Services.d.ts.map +1 -0
- package/dist/core/Services.js +2 -0
- package/dist/core/Services.js.map +1 -0
- package/dist/core/index.d.ts +12 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +12 -0
- package/dist/core/index.js.map +1 -0
- package/dist/crud/CrudController.d.ts +37 -0
- package/dist/crud/CrudController.d.ts.map +1 -0
- package/dist/crud/CrudController.js +214 -0
- package/dist/crud/CrudController.js.map +1 -0
- package/dist/crud/CrudModule.d.ts +15 -0
- package/dist/crud/CrudModule.d.ts.map +1 -0
- package/dist/crud/CrudModule.js +49 -0
- package/dist/crud/CrudModule.js.map +1 -0
- package/dist/crud/CrudSupport.d.ts +44 -0
- package/dist/crud/CrudSupport.d.ts.map +1 -0
- package/dist/crud/CrudSupport.js +98 -0
- package/dist/crud/CrudSupport.js.map +1 -0
- package/dist/crud/FileController.d.ts +18 -0
- package/dist/crud/FileController.d.ts.map +1 -0
- package/dist/crud/FileController.js +118 -0
- package/dist/crud/FileController.js.map +1 -0
- package/dist/crud/index.d.ts +5 -0
- package/dist/crud/index.d.ts.map +1 -0
- package/dist/crud/index.js +5 -0
- package/dist/crud/index.js.map +1 -0
- package/dist/data/MongooseDataSource.d.ts +32 -0
- package/dist/data/MongooseDataSource.d.ts.map +1 -0
- package/dist/data/MongooseDataSource.js +101 -0
- package/dist/data/MongooseDataSource.js.map +1 -0
- package/dist/data/MongooseRepository.d.ts +24 -0
- package/dist/data/MongooseRepository.d.ts.map +1 -0
- package/dist/data/MongooseRepository.js +91 -0
- package/dist/data/MongooseRepository.js.map +1 -0
- package/dist/data/Repository.d.ts +68 -0
- package/dist/data/Repository.d.ts.map +1 -0
- package/dist/data/Repository.js +2 -0
- package/dist/data/Repository.js.map +1 -0
- package/dist/data/SchemaCompiler.d.ts +18 -0
- package/dist/data/SchemaCompiler.d.ts.map +1 -0
- package/dist/data/SchemaCompiler.js +66 -0
- package/dist/data/SchemaCompiler.js.map +1 -0
- package/dist/data/index.d.ts +6 -0
- package/dist/data/index.d.ts.map +1 -0
- package/dist/data/index.js +6 -0
- package/dist/data/index.js.map +1 -0
- package/dist/data/internalModels.d.ts +17 -0
- package/dist/data/internalModels.d.ts.map +1 -0
- package/dist/data/internalModels.js +95 -0
- package/dist/data/internalModels.js.map +1 -0
- package/dist/data/references.d.ts +14 -0
- package/dist/data/references.d.ts.map +1 -0
- package/dist/data/references.js +20 -0
- package/dist/data/references.js.map +1 -0
- package/dist/email/ConsoleProvider.d.ts +9 -0
- package/dist/email/ConsoleProvider.d.ts.map +1 -0
- package/dist/email/ConsoleProvider.js +11 -0
- package/dist/email/ConsoleProvider.js.map +1 -0
- package/dist/email/EmailProvider.d.ts +11 -0
- package/dist/email/EmailProvider.d.ts.map +1 -0
- package/dist/email/EmailProvider.js +2 -0
- package/dist/email/EmailProvider.js.map +1 -0
- package/dist/email/EmailService.d.ts +28 -0
- package/dist/email/EmailService.d.ts.map +1 -0
- package/dist/email/EmailService.js +98 -0
- package/dist/email/EmailService.js.map +1 -0
- package/dist/email/ResendProvider.d.ts +7 -0
- package/dist/email/ResendProvider.d.ts.map +1 -0
- package/dist/email/ResendProvider.js +20 -0
- package/dist/email/ResendProvider.js.map +1 -0
- package/dist/email/TemplateRenderer.d.ts +18 -0
- package/dist/email/TemplateRenderer.d.ts.map +1 -0
- package/dist/email/TemplateRenderer.js +106 -0
- package/dist/email/TemplateRenderer.js.map +1 -0
- package/dist/email/index.d.ts +7 -0
- package/dist/email/index.d.ts.map +1 -0
- package/dist/email/index.js +7 -0
- package/dist/email/index.js.map +1 -0
- package/dist/email/templates/account.created.d.ts.map +1 -0
- package/dist/email/templates/account.created.js.map +1 -0
- package/dist/email/templates/account.deleted.d.ts.map +1 -0
- package/dist/email/templates/account.deleted.js.map +1 -0
- package/dist/email/templates/account.updated.d.ts.map +1 -0
- package/dist/email/templates/account.updated.js.map +1 -0
- package/dist/email/templates/announcement.d.ts.map +1 -0
- package/dist/email/templates/announcement.js.map +1 -0
- package/dist/email/templates/api.key.created.d.ts.map +1 -0
- package/dist/email/templates/api.key.created.js.map +1 -0
- package/dist/email/templates/api.key.revoked.d.ts.map +1 -0
- package/dist/email/templates/api.key.revoked.js.map +1 -0
- package/dist/email/templates/contact.form.d.ts.map +1 -0
- package/dist/email/templates/contact.form.js.map +1 -0
- package/dist/email/templates/daily.report.d.ts.map +1 -0
- package/dist/email/templates/daily.report.js.map +1 -0
- package/dist/email/templates/email.changed.d.ts.map +1 -0
- package/dist/email/templates/email.changed.js.map +1 -0
- package/dist/email/templates/feedback.d.ts.map +1 -0
- package/dist/email/templates/feedback.js.map +1 -0
- package/dist/email/templates/index.d.ts.map +1 -0
- package/dist/email/templates/index.js.map +1 -0
- package/dist/email/templates/invoice.d.ts.map +1 -0
- package/dist/email/templates/invoice.js.map +1 -0
- package/dist/email/templates/login.alert.d.ts.map +1 -0
- package/dist/email/templates/login.alert.js.map +1 -0
- package/dist/email/templates/magic.link.d.ts.map +1 -0
- package/dist/email/templates/magic.link.js.map +1 -0
- package/dist/email/templates/maintenance.d.ts.map +1 -0
- package/dist/email/templates/maintenance.js.map +1 -0
- package/dist/email/templates/member.added.d.ts.map +1 -0
- package/dist/email/templates/member.added.js.map +1 -0
- package/dist/email/templates/member.removed.d.ts.map +1 -0
- package/dist/email/templates/member.removed.js.map +1 -0
- package/dist/email/templates/mention.d.ts.map +1 -0
- package/dist/email/templates/mention.js.map +1 -0
- package/dist/email/templates/monthly.report.d.ts.map +1 -0
- package/dist/email/templates/monthly.report.js.map +1 -0
- package/dist/email/templates/new.comment.d.ts.map +1 -0
- package/dist/email/templates/new.comment.js.map +1 -0
- package/dist/email/templates/new.device.login.d.ts.map +1 -0
- package/dist/email/templates/new.device.login.js.map +1 -0
- package/dist/email/templates/new.message.d.ts.map +1 -0
- package/dist/email/templates/new.message.js.map +1 -0
- package/dist/email/templates/notification.d.ts.map +1 -0
- package/dist/email/templates/notification.js.map +1 -0
- package/dist/email/templates/order.cancelled.d.ts.map +1 -0
- package/dist/email/templates/order.cancelled.js.map +1 -0
- package/dist/email/templates/order.confirmation.d.ts.map +1 -0
- package/dist/email/templates/order.confirmation.js.map +1 -0
- package/dist/email/templates/order.delivered.d.ts.map +1 -0
- package/dist/email/templates/order.delivered.js.map +1 -0
- package/dist/email/templates/order.shipped.d.ts.map +1 -0
- package/dist/email/templates/order.shipped.js.map +1 -0
- package/dist/email/templates/organization.invitation.d.ts.map +1 -0
- package/dist/email/templates/organization.invitation.js.map +1 -0
- package/dist/email/templates/otp.verfication.d.ts.map +1 -0
- package/dist/email/templates/otp.verfication.js.map +1 -0
- package/dist/email/templates/password.changed.d.ts.map +1 -0
- package/dist/email/templates/password.changed.js.map +1 -0
- package/dist/email/templates/password.expiring.d.ts.map +1 -0
- package/dist/email/templates/password.expiring.js.map +1 -0
- package/dist/email/templates/password.reset.d.ts.map +1 -0
- package/dist/email/templates/password.reset.js.map +1 -0
- package/dist/email/templates/payment.failed.d.ts.map +1 -0
- package/dist/email/templates/payment.failed.js.map +1 -0
- package/dist/email/templates/payment.success.d.ts.map +1 -0
- package/dist/email/templates/payment.success.js.map +1 -0
- package/dist/email/templates/receipt.d.ts.map +1 -0
- package/dist/email/templates/receipt.js.map +1 -0
- package/dist/email/templates/reminder.d.ts.map +1 -0
- package/dist/email/templates/reminder.js.map +1 -0
- package/dist/email/templates/security.alert.d.ts.map +1 -0
- package/dist/email/templates/security.alert.js.map +1 -0
- package/dist/email/templates/subscription.cancelled.d.ts.map +1 -0
- package/dist/email/templates/subscription.cancelled.js.map +1 -0
- package/dist/email/templates/subscription.created.d.ts.map +1 -0
- package/dist/email/templates/subscription.created.js.map +1 -0
- package/dist/email/templates/subscription.renewed.d.ts.map +1 -0
- package/dist/email/templates/subscription.renewed.js.map +1 -0
- package/dist/email/templates/support.ticket.d.ts.map +1 -0
- package/dist/email/templates/support.ticket.js.map +1 -0
- package/dist/email/templates/team.invitation.d.ts.map +1 -0
- package/dist/email/templates/team.invitation.js.map +1 -0
- package/dist/email/templates/trial.ending.d.ts.map +1 -0
- package/dist/email/templates/trial.ending.js.map +1 -0
- package/dist/email/templates/two.factor.code.d.ts.map +1 -0
- package/dist/email/templates/two.factor.code.js.map +1 -0
- package/dist/email/templates/verify.email.d.ts.map +1 -0
- package/dist/email/templates/verify.email.js.map +1 -0
- package/dist/email/templates/weekly.report.d.ts.map +1 -0
- package/dist/email/templates/weekly.report.js.map +1 -0
- package/dist/email/templates/welcome.d.ts.map +1 -0
- package/dist/email/templates/welcome.js.map +1 -0
- package/dist/email/utils/AutoFields.d.ts +19 -0
- package/dist/email/utils/AutoFields.d.ts.map +1 -0
- package/dist/email/utils/AutoFields.js +61 -0
- package/dist/email/utils/AutoFields.js.map +1 -0
- package/dist/email/utils/auto-fields.type.d.ts.map +1 -0
- package/dist/email/utils/auto-fields.type.js.map +1 -0
- package/dist/errors/AppError.d.ts +89 -0
- package/dist/errors/AppError.d.ts.map +1 -0
- package/dist/errors/AppError.js +108 -0
- package/dist/errors/AppError.js.map +1 -0
- package/dist/errors/ErrorCode.d.ts +85 -0
- package/dist/errors/ErrorCode.d.ts.map +1 -0
- package/dist/errors/ErrorCode.js +95 -0
- package/dist/errors/ErrorCode.js.map +1 -0
- package/dist/errors/ErrorTranslator.d.ts +17 -0
- package/dist/errors/ErrorTranslator.d.ts.map +1 -0
- package/dist/errors/ErrorTranslator.js +184 -0
- package/dist/errors/ErrorTranslator.js.map +1 -0
- package/dist/errors/index.d.ts +4 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +4 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/fields/mongoose.fields.d.ts +52 -0
- package/dist/fields/mongoose.fields.d.ts.map +1 -0
- package/dist/fields/mongoose.fields.js +385 -0
- package/dist/fields/mongoose.fields.js.map +1 -0
- package/dist/fields/mongoose.types.d.ts +81 -0
- package/dist/fields/mongoose.types.d.ts.map +1 -0
- package/dist/fields/mongoose.types.js +2 -0
- package/dist/fields/mongoose.types.js.map +1 -0
- package/dist/fields/oauth.providers.d.ts +3 -0
- package/dist/fields/oauth.providers.d.ts.map +1 -0
- package/dist/fields/oauth.providers.js +18 -0
- package/dist/fields/oauth.providers.js.map +1 -0
- package/dist/fields/otp.purposes.d.ts +3 -0
- package/dist/fields/otp.purposes.d.ts.map +1 -0
- package/dist/fields/otp.purposes.js +45 -0
- package/dist/fields/otp.purposes.js.map +1 -0
- package/dist/fields/roles.d.ts.map +1 -0
- package/dist/fields/roles.js.map +1 -0
- package/dist/fields/unified.fields.d.ts +57 -0
- package/dist/fields/unified.fields.d.ts.map +1 -0
- package/dist/fields/unified.fields.js +616 -0
- package/dist/fields/unified.fields.js.map +1 -0
- package/dist/fields/unified.types.d.ts +12 -0
- package/dist/fields/unified.types.d.ts.map +1 -0
- package/dist/fields/unified.types.js.map +1 -0
- package/dist/fields/zod.fields.d.ts +181 -0
- package/dist/fields/zod.fields.d.ts.map +1 -0
- package/dist/fields/zod.fields.js +196 -0
- package/dist/fields/zod.fields.js.map +1 -0
- package/dist/health/HealthModule.d.ts +10 -0
- package/dist/health/HealthModule.d.ts.map +1 -0
- package/dist/health/HealthModule.js +34 -0
- package/dist/health/HealthModule.js.map +1 -0
- package/dist/health/index.d.ts +2 -0
- package/dist/health/index.d.ts.map +1 -0
- package/dist/health/index.js +2 -0
- package/dist/health/index.js.map +1 -0
- package/dist/http/Authenticator.d.ts +30 -0
- package/dist/http/Authenticator.d.ts.map +1 -0
- package/dist/http/Authenticator.js +84 -0
- package/dist/http/Authenticator.js.map +1 -0
- package/dist/http/ResponseWriter.d.ts +21 -0
- package/dist/http/ResponseWriter.d.ts.map +1 -0
- package/dist/http/ResponseWriter.js +16 -0
- package/dist/http/ResponseWriter.js.map +1 -0
- package/dist/http/index.d.ts +8 -0
- package/dist/http/index.d.ts.map +1 -0
- package/dist/http/index.js +8 -0
- package/dist/http/index.js.map +1 -0
- package/dist/http/middleware/ErrorHandler.d.ts +15 -0
- package/dist/http/middleware/ErrorHandler.d.ts.map +1 -0
- package/dist/http/middleware/ErrorHandler.js +56 -0
- package/dist/http/middleware/ErrorHandler.js.map +1 -0
- package/dist/http/middleware/InputSanitizer.d.ts +4 -0
- package/dist/http/middleware/InputSanitizer.d.ts.map +1 -0
- package/dist/http/middleware/InputSanitizer.js +9 -0
- package/dist/http/middleware/InputSanitizer.js.map +1 -0
- package/dist/http/middleware/OriginGuard.d.ts +11 -0
- package/dist/http/middleware/OriginGuard.d.ts.map +1 -0
- package/dist/http/middleware/OriginGuard.js +26 -0
- package/dist/http/middleware/OriginGuard.js.map +1 -0
- package/dist/http/middleware/RateLimiters.d.ts +15 -0
- package/dist/http/middleware/RateLimiters.d.ts.map +1 -0
- package/dist/http/middleware/RateLimiters.js +36 -0
- package/dist/http/middleware/RateLimiters.js.map +1 -0
- package/dist/http/middleware/RequestContext.d.ts +4 -0
- package/dist/http/middleware/RequestContext.d.ts.map +1 -0
- package/dist/http/middleware/RequestContext.js +10 -0
- package/dist/http/middleware/RequestContext.js.map +1 -0
- package/dist/index.d.ts +45 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +38 -0
- package/dist/index.js.map +1 -0
- package/dist/oauth/GitHubProvider.d.ts +19 -0
- package/dist/oauth/GitHubProvider.d.ts.map +1 -0
- package/dist/oauth/GitHubProvider.js +38 -0
- package/dist/oauth/GitHubProvider.js.map +1 -0
- package/dist/oauth/GoogleProvider.d.ts +16 -0
- package/dist/oauth/GoogleProvider.d.ts.map +1 -0
- package/dist/oauth/GoogleProvider.js +29 -0
- package/dist/oauth/GoogleProvider.js.map +1 -0
- package/dist/oauth/OAuthController.d.ts +21 -0
- package/dist/oauth/OAuthController.d.ts.map +1 -0
- package/dist/oauth/OAuthController.js +89 -0
- package/dist/oauth/OAuthController.js.map +1 -0
- package/dist/oauth/OAuthProvider.d.ts +80 -0
- package/dist/oauth/OAuthProvider.d.ts.map +1 -0
- package/dist/oauth/OAuthProvider.js +127 -0
- package/dist/oauth/OAuthProvider.js.map +1 -0
- package/dist/oauth/OAuthProviderFactory.d.ts +21 -0
- package/dist/oauth/OAuthProviderFactory.d.ts.map +1 -0
- package/dist/oauth/OAuthProviderFactory.js +35 -0
- package/dist/oauth/OAuthProviderFactory.js.map +1 -0
- package/dist/oauth/OAuthProviderRegistry.d.ts +11 -0
- package/dist/oauth/OAuthProviderRegistry.d.ts.map +1 -0
- package/dist/oauth/OAuthProviderRegistry.js +41 -0
- package/dist/oauth/OAuthProviderRegistry.js.map +1 -0
- package/dist/oauth/OAuthService.d.ts +62 -0
- package/dist/oauth/OAuthService.d.ts.map +1 -0
- package/dist/oauth/OAuthService.js +132 -0
- package/dist/oauth/OAuthService.js.map +1 -0
- package/dist/oauth/index.d.ts +10 -0
- package/dist/oauth/index.d.ts.map +1 -0
- package/dist/oauth/index.js +10 -0
- package/dist/oauth/index.js.map +1 -0
- package/dist/oauth/pkce.d.ts +8 -0
- package/dist/oauth/pkce.d.ts.map +1 -0
- package/dist/oauth/pkce.js +9 -0
- package/dist/oauth/pkce.js.map +1 -0
- package/dist/oauth/returnPath.d.ts +7 -0
- package/dist/oauth/returnPath.d.ts.map +1 -0
- package/dist/oauth/returnPath.js +22 -0
- package/dist/oauth/returnPath.js.map +1 -0
- package/dist/security/CryptoVault.d.ts +28 -0
- package/dist/security/CryptoVault.d.ts.map +1 -0
- package/dist/security/CryptoVault.js +85 -0
- package/dist/security/CryptoVault.js.map +1 -0
- package/dist/security/PasswordHasher.d.ts +22 -0
- package/dist/security/PasswordHasher.d.ts.map +1 -0
- package/dist/security/PasswordHasher.js +64 -0
- package/dist/security/PasswordHasher.js.map +1 -0
- package/dist/security/Sodium.d.ts +4 -0
- package/dist/security/Sodium.d.ts.map +1 -0
- package/dist/security/Sodium.js +7 -0
- package/dist/security/Sodium.js.map +1 -0
- package/dist/security/TokenService.d.ts +63 -0
- package/dist/security/TokenService.d.ts.map +1 -0
- package/dist/security/TokenService.js +141 -0
- package/dist/security/TokenService.js.map +1 -0
- package/dist/security/Totp.d.ts +46 -0
- package/dist/security/Totp.d.ts.map +1 -0
- package/dist/security/Totp.js +111 -0
- package/dist/security/Totp.js.map +1 -0
- package/dist/security/index.d.ts +4 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +4 -0
- package/dist/security/index.js.map +1 -0
- package/dist/terminal/BannerPrinter.d.ts +9 -0
- package/dist/terminal/BannerPrinter.d.ts.map +1 -0
- package/dist/terminal/BannerPrinter.js +36 -0
- package/dist/terminal/BannerPrinter.js.map +1 -0
- package/dist/terminal/banner.d.ts +25 -0
- package/dist/terminal/banner.d.ts.map +1 -0
- package/dist/terminal/banner.js +242 -0
- package/dist/terminal/banner.js.map +1 -0
- package/dist/terminal/index.d.ts +2 -0
- package/dist/terminal/index.d.ts.map +1 -0
- package/dist/terminal/index.js +2 -0
- package/dist/terminal/index.js.map +1 -0
- package/dist/testing/FakeOAuthServer.d.ts +64 -0
- package/dist/testing/FakeOAuthServer.d.ts.map +1 -0
- package/dist/testing/FakeOAuthServer.js +117 -0
- package/dist/testing/FakeOAuthServer.js.map +1 -0
- package/dist/testing/InMemoryDataSource.d.ts +15 -0
- package/dist/testing/InMemoryDataSource.d.ts.map +1 -0
- package/dist/testing/InMemoryDataSource.js +31 -0
- package/dist/testing/InMemoryDataSource.js.map +1 -0
- package/dist/testing/InMemoryRepository.d.ts +51 -0
- package/dist/testing/InMemoryRepository.d.ts.map +1 -0
- package/dist/testing/InMemoryRepository.js +252 -0
- package/dist/testing/InMemoryRepository.js.map +1 -0
- package/dist/testing/TestClient.d.ts +29 -0
- package/dist/testing/TestClient.d.ts.map +1 -0
- package/dist/testing/TestClient.js +71 -0
- package/dist/testing/TestClient.js.map +1 -0
- package/dist/testing/createTestForge.d.ts +44 -0
- package/dist/testing/createTestForge.d.ts.map +1 -0
- package/dist/testing/createTestForge.js +65 -0
- package/dist/testing/createTestForge.js.map +1 -0
- package/dist/testing/fakes.d.ts +36 -0
- package/dist/testing/fakes.d.ts.map +1 -0
- package/dist/testing/fakes.js +70 -0
- package/dist/testing/fakes.js.map +1 -0
- package/dist/testing/index.d.ts +7 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +7 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/types/ActionHandler.d.ts +66 -0
- package/dist/types/ActionHandler.d.ts.map +1 -0
- package/dist/types/ActionHandler.js.map +1 -0
- package/dist/types/AuthenticatedUser.d.ts +6 -0
- package/dist/types/AuthenticatedUser.d.ts.map +1 -0
- package/dist/types/AuthenticatedUser.js +2 -0
- package/dist/types/AuthenticatedUser.js.map +1 -0
- package/dist/types/Collection.d.ts +44 -0
- package/dist/types/Collection.d.ts.map +1 -0
- package/dist/types/Collection.js.map +1 -0
- package/dist/types/EmailActionTemplate.d.ts.map +1 -0
- package/dist/types/EmailActionTemplate.js.map +1 -0
- package/dist/types/Route.d.ts +100 -0
- package/dist/types/Route.d.ts.map +1 -0
- package/dist/types/Route.js.map +1 -0
- package/dist/types/Routepath.d.ts +2 -0
- package/dist/types/Routepath.d.ts.map +1 -0
- package/dist/types/Routepath.js +2 -0
- package/dist/types/Routepath.js.map +1 -0
- package/dist/types/StoreFile.d.ts +12 -0
- package/dist/types/StoreFile.d.ts.map +1 -0
- package/dist/types/StoreFile.js.map +1 -0
- package/dist/types/email/account.created.type.d.ts +10 -0
- package/dist/types/email/account.created.type.d.ts.map +1 -0
- package/dist/types/email/account.created.type.js.map +1 -0
- package/dist/types/email/account.deleted.type.d.ts +10 -0
- package/dist/types/email/account.deleted.type.d.ts.map +1 -0
- package/dist/types/email/account.deleted.type.js.map +1 -0
- package/dist/types/email/account.updated.type.d.ts +12 -0
- package/dist/types/email/account.updated.type.d.ts.map +1 -0
- package/dist/types/email/account.updated.type.js.map +1 -0
- package/dist/types/email/announcement.type.d.ts +13 -0
- package/dist/types/email/announcement.type.d.ts.map +1 -0
- package/dist/types/email/announcement.type.js.map +1 -0
- package/dist/types/email/api.key.created.type.d.ts +14 -0
- package/dist/types/email/api.key.created.type.d.ts.map +1 -0
- package/dist/types/email/api.key.created.type.js.map +1 -0
- package/dist/types/email/api.key.revoked.type.d.ts +14 -0
- package/dist/types/email/api.key.revoked.type.d.ts.map +1 -0
- package/dist/types/email/api.key.revoked.type.js.map +1 -0
- package/dist/types/email/contact.form.type.d.ts +11 -0
- package/dist/types/email/contact.form.type.d.ts.map +1 -0
- package/dist/types/email/contact.form.type.js.map +1 -0
- package/dist/types/email/daily.report.type.d.ts +14 -0
- package/dist/types/email/daily.report.type.d.ts.map +1 -0
- package/dist/types/email/daily.report.type.js.map +1 -0
- package/dist/types/email/email.changed.type.d.ts +12 -0
- package/dist/types/email/email.changed.type.d.ts.map +1 -0
- package/dist/types/email/email.changed.type.js.map +1 -0
- package/dist/types/email/feedback.type.d.ts +11 -0
- package/dist/types/email/feedback.type.d.ts.map +1 -0
- package/dist/types/email/feedback.type.js.map +1 -0
- package/dist/types/email/index.d.ts.map +1 -0
- package/dist/types/email/index.js.map +1 -0
- package/dist/types/email/invoice.type.d.ts +14 -0
- package/dist/types/email/invoice.type.d.ts.map +1 -0
- package/dist/types/email/invoice.type.js.map +1 -0
- package/dist/types/email/login.alert.type.d.ts +12 -0
- package/dist/types/email/login.alert.type.d.ts.map +1 -0
- package/dist/types/email/login.alert.type.js.map +1 -0
- package/dist/types/email/magic.link.type.d.ts +11 -0
- package/dist/types/email/magic.link.type.d.ts.map +1 -0
- package/dist/types/email/magic.link.type.js.map +1 -0
- package/dist/types/email/maintenance.type.d.ts +13 -0
- package/dist/types/email/maintenance.type.d.ts.map +1 -0
- package/dist/types/email/maintenance.type.js.map +1 -0
- package/dist/types/email/member.added.type.d.ts +14 -0
- package/dist/types/email/member.added.type.d.ts.map +1 -0
- package/dist/types/email/member.added.type.js.map +1 -0
- package/dist/types/email/member.removed.type.d.ts +14 -0
- package/dist/types/email/member.removed.type.d.ts.map +1 -0
- package/dist/types/email/member.removed.type.js.map +1 -0
- package/dist/types/email/mention.type.d.ts +12 -0
- package/dist/types/email/mention.type.d.ts.map +1 -0
- package/dist/types/email/mention.type.js.map +1 -0
- package/dist/types/email/monthly.report.type.d.ts +14 -0
- package/dist/types/email/monthly.report.type.d.ts.map +1 -0
- package/dist/types/email/monthly.report.type.js.map +1 -0
- package/dist/types/email/new.comment.type.d.ts +12 -0
- package/dist/types/email/new.comment.type.d.ts.map +1 -0
- package/dist/types/email/new.comment.type.js.map +1 -0
- package/dist/types/email/new.device.login.type.d.ts +11 -0
- package/dist/types/email/new.device.login.type.d.ts.map +1 -0
- package/dist/types/email/new.device.login.type.js.map +1 -0
- package/dist/types/email/new.message.type.d.ts +11 -0
- package/dist/types/email/new.message.type.d.ts.map +1 -0
- package/dist/types/email/new.message.type.js.map +1 -0
- package/dist/types/email/notification.type.d.ts +13 -0
- package/dist/types/email/notification.type.d.ts.map +1 -0
- package/dist/types/email/notification.type.js.map +1 -0
- package/dist/types/email/order.cancelled.type.d.ts +12 -0
- package/dist/types/email/order.cancelled.type.d.ts.map +1 -0
- package/dist/types/email/order.cancelled.type.js.map +1 -0
- package/dist/types/email/order.confirmation.type.d.ts +13 -0
- package/dist/types/email/order.confirmation.type.d.ts.map +1 -0
- package/dist/types/email/order.confirmation.type.js.map +1 -0
- package/dist/types/email/order.delivered.type.d.ts +12 -0
- package/dist/types/email/order.delivered.type.d.ts.map +1 -0
- package/dist/types/email/order.delivered.type.js.map +1 -0
- package/dist/types/email/order.shipped.type.d.ts +14 -0
- package/dist/types/email/order.shipped.type.d.ts.map +1 -0
- package/dist/types/email/order.shipped.type.js.map +1 -0
- package/dist/types/email/organization.invitation.type.d.ts +13 -0
- package/dist/types/email/organization.invitation.type.d.ts.map +1 -0
- package/dist/types/email/organization.invitation.type.js.map +1 -0
- package/dist/types/email/otp.verification.type.d.ts +11 -0
- package/dist/types/email/otp.verification.type.d.ts.map +1 -0
- package/dist/types/email/otp.verification.type.js.map +1 -0
- package/dist/types/email/password.changed.type.d.ts +12 -0
- package/dist/types/email/password.changed.type.d.ts.map +1 -0
- package/dist/types/email/password.changed.type.js.map +1 -0
- package/dist/types/email/password.expiring.type.d.ts +12 -0
- package/dist/types/email/password.expiring.type.d.ts.map +1 -0
- package/dist/types/email/password.expiring.type.js.map +1 -0
- package/dist/types/email/password.reset.type.d.ts +11 -0
- package/dist/types/email/password.reset.type.d.ts.map +1 -0
- package/dist/types/email/password.reset.type.js.map +1 -0
- package/dist/types/email/payment.failed.type.d.ts +14 -0
- package/dist/types/email/payment.failed.type.d.ts.map +1 -0
- package/dist/types/email/payment.failed.type.js.map +1 -0
- package/dist/types/email/payment.success.type.d.ts +13 -0
- package/dist/types/email/payment.success.type.d.ts.map +1 -0
- package/dist/types/email/payment.success.type.js.map +1 -0
- package/dist/types/email/receipt.type.d.ts +14 -0
- package/dist/types/email/receipt.type.d.ts.map +1 -0
- package/dist/types/email/receipt.type.js.map +1 -0
- package/dist/types/email/reminder.type.d.ts +12 -0
- package/dist/types/email/reminder.type.d.ts.map +1 -0
- package/dist/types/email/reminder.type.js.map +1 -0
- package/dist/types/email/security.alert.type.d.ts +12 -0
- package/dist/types/email/security.alert.type.d.ts.map +1 -0
- package/dist/types/email/security.alert.type.js.map +1 -0
- package/dist/types/email/static-config.type.d.ts.map +1 -0
- package/dist/types/email/static-config.type.js.map +1 -0
- package/dist/types/email/subscription.cancelled.type.d.ts +12 -0
- package/dist/types/email/subscription.cancelled.type.d.ts.map +1 -0
- package/dist/types/email/subscription.cancelled.type.js.map +1 -0
- package/dist/types/email/subscription.created.type.d.ts +13 -0
- package/dist/types/email/subscription.created.type.d.ts.map +1 -0
- package/dist/types/email/subscription.created.type.js.map +1 -0
- package/dist/types/email/subscription.renewed.type.d.ts +14 -0
- package/dist/types/email/subscription.renewed.type.d.ts.map +1 -0
- package/dist/types/email/subscription.renewed.type.js.map +1 -0
- package/dist/types/email/support.ticket.type.d.ts +14 -0
- package/dist/types/email/support.ticket.type.d.ts.map +1 -0
- package/dist/types/email/support.ticket.type.js.map +1 -0
- package/dist/types/email/team.invitation.type.d.ts +13 -0
- package/dist/types/email/team.invitation.type.d.ts.map +1 -0
- package/dist/types/email/team.invitation.type.js.map +1 -0
- package/dist/types/email/trial.ending.type.d.ts +13 -0
- package/dist/types/email/trial.ending.type.d.ts.map +1 -0
- package/dist/types/email/trial.ending.type.js.map +1 -0
- package/dist/types/email/two.factor.code.type.d.ts +11 -0
- package/dist/types/email/two.factor.code.type.d.ts.map +1 -0
- package/dist/types/email/two.factor.code.type.js.map +1 -0
- package/dist/types/email/verify.email.type.d.ts +11 -0
- package/dist/types/email/verify.email.type.d.ts.map +1 -0
- package/dist/types/email/verify.email.type.js.map +1 -0
- package/dist/types/email/weekly.report.type.d.ts +14 -0
- package/dist/types/email/weekly.report.type.d.ts.map +1 -0
- package/dist/types/email/weekly.report.type.js.map +1 -0
- package/dist/types/email/welcome.type.d.ts +10 -0
- package/dist/types/email/welcome.type.d.ts.map +1 -0
- package/dist/types/email/welcome.type.js.map +1 -0
- package/dist/types/email.d.ts.map +1 -0
- package/dist/types/email.js.map +1 -0
- package/dist/types/express.d.ts +13 -0
- package/dist/types/express.d.ts.map +1 -0
- package/dist/types/express.js +2 -0
- package/dist/types/express.js.map +1 -0
- package/dist/types/handlers.d.ts +22 -0
- package/dist/types/handlers.d.ts.map +1 -0
- package/dist/types/handlers.js +45 -0
- package/dist/types/handlers.js.map +1 -0
- package/dist/types/upload.d.ts +34 -0
- package/dist/types/upload.d.ts.map +1 -0
- package/dist/types/upload.js.map +1 -0
- package/dist/upload/CloudinaryStorage.d.ts +19 -0
- package/dist/upload/CloudinaryStorage.d.ts.map +1 -0
- package/dist/upload/CloudinaryStorage.js +44 -0
- package/dist/upload/CloudinaryStorage.js.map +1 -0
- package/dist/upload/FileTypeSniffer.d.ts +5 -0
- package/dist/upload/FileTypeSniffer.d.ts.map +1 -0
- package/dist/upload/FileTypeSniffer.js +27 -0
- package/dist/upload/FileTypeSniffer.js.map +1 -0
- package/dist/upload/StorageProvider.d.ts +17 -0
- package/dist/upload/StorageProvider.d.ts.map +1 -0
- package/dist/upload/StorageProvider.js +2 -0
- package/dist/upload/StorageProvider.js.map +1 -0
- package/dist/upload/UploadService.d.ts +40 -0
- package/dist/upload/UploadService.d.ts.map +1 -0
- package/dist/upload/UploadService.js +143 -0
- package/dist/upload/UploadService.js.map +1 -0
- package/dist/upload/index.d.ts +5 -0
- package/dist/upload/index.d.ts.map +1 -0
- package/dist/upload/index.js +5 -0
- package/dist/upload/index.js.map +1 -0
- package/dist/utils/Logger.d.ts +22 -0
- package/dist/utils/Logger.d.ts.map +1 -0
- package/dist/utils/Logger.js +44 -0
- package/dist/utils/Logger.js.map +1 -0
- package/dist/utils/html.d.ts +7 -0
- package/dist/utils/html.d.ts.map +1 -0
- package/dist/utils/html.js +24 -0
- package/dist/utils/html.js.map +1 -0
- package/dist/utils/ids.d.ts +7 -0
- package/dist/utils/ids.d.ts.map +1 -0
- package/dist/utils/ids.js +25 -0
- package/dist/utils/ids.js.map +1 -0
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +5 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/sanitizeInput.d.ts +9 -0
- package/dist/utils/sanitizeInput.d.ts.map +1 -0
- package/dist/utils/sanitizeInput.js +32 -0
- package/dist/utils/sanitizeInput.js.map +1 -0
- package/package.json +37 -30
- package/dist/js/account/account.collection.d.ts +0 -4
- package/dist/js/account/account.collection.d.ts.map +0 -1
- package/dist/js/account/account.collection.js +0 -17
- package/dist/js/account/account.collection.js.map +0 -1
- package/dist/js/account/builtin/account.collection.d.ts +0 -4
- package/dist/js/account/builtin/account.collection.d.ts.map +0 -1
- package/dist/js/account/builtin/account.collection.js +0 -33
- package/dist/js/account/builtin/account.collection.js.map +0 -1
- package/dist/js/account/bunch.account.d.ts +0 -4
- package/dist/js/account/bunch.account.d.ts.map +0 -1
- package/dist/js/account/bunch.account.js +0 -4
- package/dist/js/account/bunch.account.js.map +0 -1
- package/dist/js/account/get.d.ts +0 -10
- package/dist/js/account/get.d.ts.map +0 -1
- package/dist/js/account/get.js +0 -7
- package/dist/js/account/get.js.map +0 -1
- package/dist/js/account/index.d.ts +0 -5
- package/dist/js/account/index.d.ts.map +0 -1
- package/dist/js/account/index.js +0 -38
- package/dist/js/account/index.js.map +0 -1
- package/dist/js/account/me/get.d.ts +0 -10
- package/dist/js/account/me/get.d.ts.map +0 -1
- package/dist/js/account/me/get.js +0 -7
- package/dist/js/account/me/get.js.map +0 -1
- package/dist/js/account/me.delete.d.ts +0 -8
- package/dist/js/account/me.delete.d.ts.map +0 -1
- package/dist/js/account/me.delete.js +0 -39
- package/dist/js/account/me.delete.js.map +0 -1
- package/dist/js/account/me.get.d.ts +0 -7
- package/dist/js/account/me.get.d.ts.map +0 -1
- package/dist/js/account/me.get.js +0 -17
- package/dist/js/account/me.get.js.map +0 -1
- package/dist/js/account/me.update.d.ts +0 -9
- package/dist/js/account/me.update.d.ts.map +0 -1
- package/dist/js/account/me.update.js +0 -52
- package/dist/js/account/me.update.js.map +0 -1
- package/dist/js/admin/builtin/admin.collection.d.ts +0 -4
- package/dist/js/admin/builtin/admin.collection.d.ts.map +0 -1
- package/dist/js/admin/builtin/admin.collection.js +0 -17
- package/dist/js/admin/builtin/admin.collection.js.map +0 -1
- package/dist/js/admin/bunch.admin.d.ts +0 -3
- package/dist/js/admin/bunch.admin.d.ts.map +0 -1
- package/dist/js/admin/bunch.admin.js +0 -3
- package/dist/js/admin/bunch.admin.js.map +0 -1
- package/dist/js/admin/check.admin.d.ts +0 -2
- package/dist/js/admin/check.admin.d.ts.map +0 -1
- package/dist/js/admin/check.admin.js +0 -2
- package/dist/js/admin/check.admin.js.map +0 -1
- package/dist/js/admin/check.d.ts +0 -7
- package/dist/js/admin/check.d.ts.map +0 -1
- package/dist/js/admin/check.js +0 -38
- package/dist/js/admin/check.js.map +0 -1
- package/dist/js/admin/index.d.ts +0 -5
- package/dist/js/admin/index.d.ts.map +0 -1
- package/dist/js/admin/index.js +0 -49
- package/dist/js/admin/index.js.map +0 -1
- package/dist/js/app.d.ts +0 -5
- package/dist/js/app.d.ts.map +0 -1
- package/dist/js/app.js +0 -104
- package/dist/js/app.js.map +0 -1
- package/dist/js/auth/auth.collection.d.ts +0 -4
- package/dist/js/auth/auth.collection.d.ts.map +0 -1
- package/dist/js/auth/auth.collection.js +0 -58
- package/dist/js/auth/auth.collection.js.map +0 -1
- package/dist/js/auth/auth.collections.d.ts +0 -2
- package/dist/js/auth/auth.collections.d.ts.map +0 -1
- package/dist/js/auth/auth.collections.js +0 -2
- package/dist/js/auth/auth.collections.js.map +0 -1
- package/dist/js/auth/builtin/auth.collection.d.ts +0 -4
- package/dist/js/auth/builtin/auth.collection.d.ts.map +0 -1
- package/dist/js/auth/builtin/auth.collection.js +0 -87
- package/dist/js/auth/builtin/auth.collection.js.map +0 -1
- package/dist/js/auth/builtin/getValidations.d.ts +0 -11
- package/dist/js/auth/builtin/getValidations.d.ts.map +0 -1
- package/dist/js/auth/builtin/getValidations.js +0 -51
- package/dist/js/auth/builtin/getValidations.js.map +0 -1
- package/dist/js/auth/bunch.auth.d.ts +0 -9
- package/dist/js/auth/bunch.auth.d.ts.map +0 -1
- package/dist/js/auth/bunch.auth.js +0 -9
- package/dist/js/auth/bunch.auth.js.map +0 -1
- package/dist/js/auth/createOTPModel.d.ts +0 -2
- package/dist/js/auth/createOTPModel.d.ts.map +0 -1
- package/dist/js/auth/createOTPModel.js +0 -2
- package/dist/js/auth/createOTPModel.js.map +0 -1
- package/dist/js/auth/forgotPassword.d.ts +0 -10
- package/dist/js/auth/forgotPassword.d.ts.map +0 -1
- package/dist/js/auth/forgotPassword.js +0 -46
- package/dist/js/auth/forgotPassword.js.map +0 -1
- package/dist/js/auth/index.d.ts +0 -5
- package/dist/js/auth/index.d.ts.map +0 -1
- package/dist/js/auth/index.js +0 -46
- package/dist/js/auth/index.js.map +0 -1
- package/dist/js/auth/login.d.ts +0 -10
- package/dist/js/auth/login.d.ts.map +0 -1
- package/dist/js/auth/login.js +0 -39
- package/dist/js/auth/login.js.map +0 -1
- package/dist/js/auth/logout.d.ts +0 -5
- package/dist/js/auth/logout.d.ts.map +0 -1
- package/dist/js/auth/logout.js +0 -41
- package/dist/js/auth/logout.js.map +0 -1
- package/dist/js/auth/me.d.ts +0 -2
- package/dist/js/auth/me.d.ts.map +0 -1
- package/dist/js/auth/me.js +0 -2
- package/dist/js/auth/me.js.map +0 -1
- package/dist/js/auth/refresh.d.ts +0 -7
- package/dist/js/auth/refresh.d.ts.map +0 -1
- package/dist/js/auth/refresh.js +0 -76
- package/dist/js/auth/refresh.js.map +0 -1
- package/dist/js/auth/resendOTP.d.ts +0 -10
- package/dist/js/auth/resendOTP.d.ts.map +0 -1
- package/dist/js/auth/resendOTP.js +0 -78
- package/dist/js/auth/resendOTP.js.map +0 -1
- package/dist/js/auth/resetPassword.d.ts +0 -10
- package/dist/js/auth/resetPassword.d.ts.map +0 -1
- package/dist/js/auth/resetPassword.js +0 -75
- package/dist/js/auth/resetPassword.js.map +0 -1
- package/dist/js/auth/sendOTP.d.ts +0 -6
- package/dist/js/auth/sendOTP.d.ts.map +0 -1
- package/dist/js/auth/sendOTP.js +0 -28
- package/dist/js/auth/sendOTP.js.map +0 -1
- package/dist/js/auth/signup.d.ts +0 -10
- package/dist/js/auth/signup.d.ts.map +0 -1
- package/dist/js/auth/signup.js +0 -52
- package/dist/js/auth/signup.js.map +0 -1
- package/dist/js/auth/twoFactorAuth.d.ts +0 -2
- package/dist/js/auth/twoFactorAuth.d.ts.map +0 -1
- package/dist/js/auth/twoFactorAuth.js +0 -3
- package/dist/js/auth/twoFactorAuth.js.map +0 -1
- package/dist/js/auth/utils/UAParser.d.ts +0 -11
- package/dist/js/auth/utils/UAParser.d.ts.map +0 -1
- package/dist/js/auth/utils/UAParser.js +0 -16
- package/dist/js/auth/utils/UAParser.js.map +0 -1
- package/dist/js/auth/utils/authenticateUser.d.ts +0 -12
- package/dist/js/auth/utils/authenticateUser.d.ts.map +0 -1
- package/dist/js/auth/utils/authenticateUser.js +0 -99
- package/dist/js/auth/utils/authenticateUser.js.map +0 -1
- package/dist/js/auth/utils/createOTPModel.d.ts +0 -4
- package/dist/js/auth/utils/createOTPModel.d.ts.map +0 -1
- package/dist/js/auth/utils/createOTPModel.js +0 -49
- package/dist/js/auth/utils/createOTPModel.js.map +0 -1
- package/dist/js/auth/utils/createOTPUser.d.ts +0 -12
- package/dist/js/auth/utils/createOTPUser.d.ts.map +0 -1
- package/dist/js/auth/utils/createOTPUser.js +0 -76
- package/dist/js/auth/utils/createOTPUser.js.map +0 -1
- package/dist/js/auth/utils/createUser.d.ts +0 -12
- package/dist/js/auth/utils/createUser.d.ts.map +0 -1
- package/dist/js/auth/utils/createUser.js +0 -89
- package/dist/js/auth/utils/createUser.js.map +0 -1
- package/dist/js/auth/utils/deleteOTPUser.d.ts +0 -3
- package/dist/js/auth/utils/deleteOTPUser.d.ts.map +0 -1
- package/dist/js/auth/utils/deleteOTPUser.js +0 -3
- package/dist/js/auth/utils/deleteOTPUser.js.map +0 -1
- package/dist/js/auth/utils/findRefreshToken.d.ts +0 -4
- package/dist/js/auth/utils/findRefreshToken.d.ts.map +0 -1
- package/dist/js/auth/utils/findRefreshToken.js +0 -33
- package/dist/js/auth/utils/findRefreshToken.js.map +0 -1
- package/dist/js/auth/utils/findRefreshTokenUser.d.ts +0 -4
- package/dist/js/auth/utils/findRefreshTokenUser.d.ts.map +0 -1
- package/dist/js/auth/utils/findRefreshTokenUser.js +0 -19
- package/dist/js/auth/utils/findRefreshTokenUser.js.map +0 -1
- package/dist/js/auth/utils/findUser.d.ts +0 -2
- package/dist/js/auth/utils/findUser.d.ts.map +0 -1
- package/dist/js/auth/utils/findUser.js +0 -2
- package/dist/js/auth/utils/findUser.js.map +0 -1
- package/dist/js/auth/utils/getModel.d.ts +0 -6
- package/dist/js/auth/utils/getModel.d.ts.map +0 -1
- package/dist/js/auth/utils/getModel.js +0 -18
- package/dist/js/auth/utils/getModel.js.map +0 -1
- package/dist/js/auth/utils/getOTPData.d.ts +0 -9
- package/dist/js/auth/utils/getOTPData.d.ts.map +0 -1
- package/dist/js/auth/utils/getOTPData.js +0 -26
- package/dist/js/auth/utils/getOTPData.js.map +0 -1
- package/dist/js/auth/utils/getOTPModel.d.ts +0 -4
- package/dist/js/auth/utils/getOTPModel.d.ts.map +0 -1
- package/dist/js/auth/utils/getOTPModel.js +0 -19
- package/dist/js/auth/utils/getOTPModel.js.map +0 -1
- package/dist/js/auth/utils/getOTPUser.d.ts +0 -8
- package/dist/js/auth/utils/getOTPUser.d.ts.map +0 -1
- package/dist/js/auth/utils/getOTPUser.js +0 -32
- package/dist/js/auth/utils/getOTPUser.js.map +0 -1
- package/dist/js/auth/utils/getUser.d.ts +0 -10
- package/dist/js/auth/utils/getUser.d.ts.map +0 -1
- package/dist/js/auth/utils/getUser.js +0 -40
- package/dist/js/auth/utils/getUser.js.map +0 -1
- package/dist/js/auth/utils/handleGetRefreshToken.d.ts +0 -9
- package/dist/js/auth/utils/handleGetRefreshToken.d.ts.map +0 -1
- package/dist/js/auth/utils/handleGetRefreshToken.js +0 -42
- package/dist/js/auth/utils/handleGetRefreshToken.js.map +0 -1
- package/dist/js/auth/utils/handleGetToken.d.ts +0 -9
- package/dist/js/auth/utils/handleGetToken.d.ts.map +0 -1
- package/dist/js/auth/utils/handleGetToken.js +0 -22
- package/dist/js/auth/utils/handleGetToken.js.map +0 -1
- package/dist/js/auth/utils/handleIsVerfieid.d.ts +0 -9
- package/dist/js/auth/utils/handleIsVerfieid.d.ts.map +0 -1
- package/dist/js/auth/utils/handleIsVerfieid.js +0 -20
- package/dist/js/auth/utils/handleIsVerfieid.js.map +0 -1
- package/dist/js/auth/utils/handleIsVerified.d.ts +0 -11
- package/dist/js/auth/utils/handleIsVerified.d.ts.map +0 -1
- package/dist/js/auth/utils/handleIsVerified.js +0 -27
- package/dist/js/auth/utils/handleIsVerified.js.map +0 -1
- package/dist/js/auth/utils/handleRefreshTokenValidation.d.ts +0 -4
- package/dist/js/auth/utils/handleRefreshTokenValidation.d.ts.map +0 -1
- package/dist/js/auth/utils/handleRefreshTokenValidation.js +0 -49
- package/dist/js/auth/utils/handleRefreshTokenValidation.js.map +0 -1
- package/dist/js/auth/utils/handleRotateRefreshToken.d.ts +0 -18
- package/dist/js/auth/utils/handleRotateRefreshToken.d.ts.map +0 -1
- package/dist/js/auth/utils/handleRotateRefreshToken.js +0 -73
- package/dist/js/auth/utils/handleRotateRefreshToken.js.map +0 -1
- package/dist/js/auth/utils/modeMap.d.ts +0 -40
- package/dist/js/auth/utils/modeMap.d.ts.map +0 -1
- package/dist/js/auth/utils/modeMap.js +0 -15
- package/dist/js/auth/utils/modeMap.js.map +0 -1
- package/dist/js/auth/utils/otpHTML.d.ts +0 -2
- package/dist/js/auth/utils/otpHTML.d.ts.map +0 -1
- package/dist/js/auth/utils/otpHTML.js +0 -2
- package/dist/js/auth/utils/otpHTML.js.map +0 -1
- package/dist/js/auth/utils/otpVerifiedResponse.d.ts +0 -9
- package/dist/js/auth/utils/otpVerifiedResponse.d.ts.map +0 -1
- package/dist/js/auth/utils/otpVerifiedResponse.js +0 -28
- package/dist/js/auth/utils/otpVerifiedResponse.js.map +0 -1
- package/dist/js/auth/utils/returnRotationToken.d.ts +0 -2
- package/dist/js/auth/utils/returnRotationToken.d.ts.map +0 -1
- package/dist/js/auth/utils/returnRotationToken.js +0 -3
- package/dist/js/auth/utils/returnRotationToken.js.map +0 -1
- package/dist/js/auth/utils/rotateRefreshToken.d.ts +0 -16
- package/dist/js/auth/utils/rotateRefreshToken.d.ts.map +0 -1
- package/dist/js/auth/utils/rotateRefreshToken.js +0 -53
- package/dist/js/auth/utils/rotateRefreshToken.js.map +0 -1
- package/dist/js/auth/utils/sendCookie.d.ts +0 -24
- package/dist/js/auth/utils/sendCookie.d.ts.map +0 -1
- package/dist/js/auth/utils/sendCookie.js +0 -101
- package/dist/js/auth/utils/sendCookie.js.map +0 -1
- package/dist/js/auth/utils/sendOTP.d.ts +0 -7
- package/dist/js/auth/utils/sendOTP.d.ts.map +0 -1
- package/dist/js/auth/utils/sendOTP.js +0 -48
- package/dist/js/auth/utils/sendOTP.js.map +0 -1
- package/dist/js/auth/utils/verifyCredentials.d.ts +0 -9
- package/dist/js/auth/utils/verifyCredentials.d.ts.map +0 -1
- package/dist/js/auth/utils/verifyCredentials.js +0 -45
- package/dist/js/auth/utils/verifyCredentials.js.map +0 -1
- package/dist/js/auth/verifyOTP.d.ts +0 -10
- package/dist/js/auth/verifyOTP.d.ts.map +0 -1
- package/dist/js/auth/verifyOTP.js +0 -109
- package/dist/js/auth/verifyOTP.js.map +0 -1
- package/dist/js/config/auth.envs.d.ts +0 -4
- package/dist/js/config/auth.envs.d.ts.map +0 -1
- package/dist/js/config/auth.envs.js +0 -79
- package/dist/js/config/auth.envs.js.map +0 -1
- package/dist/js/config/cloudinary.d.ts +0 -5
- package/dist/js/config/cloudinary.d.ts.map +0 -1
- package/dist/js/config/cloudinary.js +0 -25
- package/dist/js/config/cloudinary.js.map +0 -1
- package/dist/js/config/defaultConfig.d.ts +0 -3
- package/dist/js/config/defaultConfig.d.ts.map +0 -1
- package/dist/js/config/defaultConfig.js +0 -23
- package/dist/js/config/defaultConfig.js.map +0 -1
- package/dist/js/config/duration.d.ts +0 -58
- package/dist/js/config/duration.d.ts.map +0 -1
- package/dist/js/config/duration.js +0 -77
- package/dist/js/config/duration.js.map +0 -1
- package/dist/js/config/email.envs.d.ts +0 -4
- package/dist/js/config/email.envs.d.ts.map +0 -1
- package/dist/js/config/email.envs.js +0 -54
- package/dist/js/config/email.envs.js.map +0 -1
- package/dist/js/config/envs.d.ts +0 -6
- package/dist/js/config/envs.d.ts.map +0 -1
- package/dist/js/config/envs.js +0 -17
- package/dist/js/config/envs.js.map +0 -1
- package/dist/js/config/handleReqType.d.ts +0 -7
- package/dist/js/config/handleReqType.d.ts.map +0 -1
- package/dist/js/config/handleReqType.js +0 -20
- package/dist/js/config/handleReqType.js.map +0 -1
- package/dist/js/config/handlerMap.d.ts +0 -3
- package/dist/js/config/handlerMap.d.ts.map +0 -1
- package/dist/js/config/handlerMap.js +0 -46
- package/dist/js/config/handlerMap.js.map +0 -1
- package/dist/js/config/refreshModel.d.ts +0 -3
- package/dist/js/config/refreshModel.d.ts.map +0 -1
- package/dist/js/config/refreshModel.js +0 -52
- package/dist/js/config/refreshModel.js.map +0 -1
- package/dist/js/config/reqTypes.d.ts +0 -2
- package/dist/js/config/reqTypes.d.ts.map +0 -1
- package/dist/js/config/reqTypes.js +0 -2
- package/dist/js/config/reqTypes.js.map +0 -1
- package/dist/js/config/sendEmail.d.ts +0 -11
- package/dist/js/config/sendEmail.d.ts.map +0 -1
- package/dist/js/config/sendEmail.js +0 -92
- package/dist/js/config/sendEmail.js.map +0 -1
- package/dist/js/core/app.d.ts +0 -3
- package/dist/js/core/app.d.ts.map +0 -1
- package/dist/js/core/app.js +0 -19
- package/dist/js/core/app.js.map +0 -1
- package/dist/js/crud/bunch.crud.d.ts +0 -12
- package/dist/js/crud/bunch.crud.d.ts.map +0 -1
- package/dist/js/crud/bunch.crud.js +0 -14
- package/dist/js/crud/bunch.crud.js.map +0 -1
- package/dist/js/crud/create.d.ts +0 -10
- package/dist/js/crud/create.d.ts.map +0 -1
- package/dist/js/crud/create.js +0 -108
- package/dist/js/crud/create.js.map +0 -1
- package/dist/js/crud/createBulk.d.ts +0 -10
- package/dist/js/crud/createBulk.d.ts.map +0 -1
- package/dist/js/crud/createBulk.js +0 -25
- package/dist/js/crud/createBulk.js.map +0 -1
- package/dist/js/crud/email/index.d.ts +0 -2
- package/dist/js/crud/email/index.d.ts.map +0 -1
- package/dist/js/crud/email/index.js.map +0 -1
- package/dist/js/crud/encryption/handleDecryption.d.ts +0 -4
- package/dist/js/crud/encryption/handleDecryption.d.ts.map +0 -1
- package/dist/js/crud/encryption/handleDecryption.js +0 -64
- package/dist/js/crud/encryption/handleDecryption.js.map +0 -1
- package/dist/js/crud/encryption/handleEncryption.d.ts +0 -5
- package/dist/js/crud/encryption/handleEncryption.d.ts.map +0 -1
- package/dist/js/crud/encryption/handleEncryption.js +0 -49
- package/dist/js/crud/encryption/handleEncryption.js.map +0 -1
- package/dist/js/crud/files/file.update.d.ts +0 -10
- package/dist/js/crud/files/file.update.d.ts.map +0 -1
- package/dist/js/crud/files/file.update.js +0 -28
- package/dist/js/crud/files/file.update.js.map +0 -1
- package/dist/js/crud/handleUploads/file.add.d.ts +0 -10
- package/dist/js/crud/handleUploads/file.add.d.ts.map +0 -1
- package/dist/js/crud/handleUploads/file.add.js +0 -64
- package/dist/js/crud/handleUploads/file.add.js.map +0 -1
- package/dist/js/crud/handleUploads/file.create.d.ts +0 -10
- package/dist/js/crud/handleUploads/file.create.d.ts.map +0 -1
- package/dist/js/crud/handleUploads/file.create.js +0 -33
- package/dist/js/crud/handleUploads/file.create.js.map +0 -1
- package/dist/js/crud/handleUploads/file.delete.d.ts +0 -10
- package/dist/js/crud/handleUploads/file.delete.d.ts.map +0 -1
- package/dist/js/crud/handleUploads/file.delete.js +0 -45
- package/dist/js/crud/handleUploads/file.delete.js.map +0 -1
- package/dist/js/crud/handleUploads/file.update.d.ts +0 -10
- package/dist/js/crud/handleUploads/file.update.d.ts.map +0 -1
- package/dist/js/crud/handleUploads/file.update.js +0 -40
- package/dist/js/crud/handleUploads/file.update.js.map +0 -1
- package/dist/js/crud/index.d.ts +0 -5
- package/dist/js/crud/index.d.ts.map +0 -1
- package/dist/js/crud/index.js +0 -42
- package/dist/js/crud/index.js.map +0 -1
- package/dist/js/crud/read.d.ts +0 -10
- package/dist/js/crud/read.d.ts.map +0 -1
- package/dist/js/crud/read.js +0 -56
- package/dist/js/crud/read.js.map +0 -1
- package/dist/js/crud/readAll.d.ts +0 -9
- package/dist/js/crud/readAll.d.ts.map +0 -1
- package/dist/js/crud/readAll.js +0 -64
- package/dist/js/crud/readAll.js.map +0 -1
- package/dist/js/crud/remove.d.ts +0 -9
- package/dist/js/crud/remove.d.ts.map +0 -1
- package/dist/js/crud/remove.js +0 -60
- package/dist/js/crud/remove.js.map +0 -1
- package/dist/js/crud/removeAll.d.ts +0 -9
- package/dist/js/crud/removeAll.d.ts.map +0 -1
- package/dist/js/crud/removeAll.js +0 -56
- package/dist/js/crud/removeAll.js.map +0 -1
- package/dist/js/crud/removeMultiple.d.ts +0 -10
- package/dist/js/crud/removeMultiple.d.ts.map +0 -1
- package/dist/js/crud/removeMultiple.js +0 -72
- package/dist/js/crud/removeMultiple.js.map +0 -1
- package/dist/js/crud/security/handleDecryption.d.ts +0 -4
- package/dist/js/crud/security/handleDecryption.d.ts.map +0 -1
- package/dist/js/crud/security/handleDecryption.js +0 -64
- package/dist/js/crud/security/handleDecryption.js.map +0 -1
- package/dist/js/crud/security/handleEncryption.d.ts +0 -5
- package/dist/js/crud/security/handleEncryption.d.ts.map +0 -1
- package/dist/js/crud/security/handleEncryption.js +0 -49
- package/dist/js/crud/security/handleEncryption.js.map +0 -1
- package/dist/js/crud/security/handleHashing.d.ts +0 -4
- package/dist/js/crud/security/handleHashing.d.ts.map +0 -1
- package/dist/js/crud/security/handleHashing.js +0 -57
- package/dist/js/crud/security/handleHashing.js.map +0 -1
- package/dist/js/crud/security/handleHasing.d.ts +0 -4
- package/dist/js/crud/security/handleHasing.d.ts.map +0 -1
- package/dist/js/crud/security/handleHasing.js +0 -52
- package/dist/js/crud/security/handleHasing.js.map +0 -1
- package/dist/js/crud/update.d.ts +0 -10
- package/dist/js/crud/update.d.ts.map +0 -1
- package/dist/js/crud/update.js +0 -78
- package/dist/js/crud/update.js.map +0 -1
- package/dist/js/crud/utils/actionHandler.d.ts +0 -5
- package/dist/js/crud/utils/actionHandler.d.ts.map +0 -1
- package/dist/js/crud/utils/actionHandler.js +0 -9
- package/dist/js/crud/utils/actionHandler.js.map +0 -1
- package/dist/js/crud/utils/authorizeAccess.d.ts +0 -10
- package/dist/js/crud/utils/authorizeAccess.d.ts.map +0 -1
- package/dist/js/crud/utils/authorizeAccess.js +0 -52
- package/dist/js/crud/utils/authorizeAccess.js.map +0 -1
- package/dist/js/crud/utils/authroizeAccess.d.ts +0 -10
- package/dist/js/crud/utils/authroizeAccess.d.ts.map +0 -1
- package/dist/js/crud/utils/authroizeAccess.js +0 -46
- package/dist/js/crud/utils/authroizeAccess.js.map +0 -1
- package/dist/js/crud/utils/getItem.d.ts +0 -11
- package/dist/js/crud/utils/getItem.d.ts.map +0 -1
- package/dist/js/crud/utils/getItem.js +0 -79
- package/dist/js/crud/utils/getItem.js.map +0 -1
- package/dist/js/crud/utils/getParam.d.ts +0 -8
- package/dist/js/crud/utils/getParam.d.ts.map +0 -1
- package/dist/js/crud/utils/getParam.js +0 -18
- package/dist/js/crud/utils/getParam.js.map +0 -1
- package/dist/js/crud/utils/runActions.d.ts +0 -4
- package/dist/js/crud/utils/runActions.d.ts.map +0 -1
- package/dist/js/crud/utils/runActions.js +0 -27
- package/dist/js/crud/utils/runActions.js.map +0 -1
- package/dist/js/crud/utils/validateOwner.d.ts +0 -7
- package/dist/js/crud/utils/validateOwner.d.ts.map +0 -1
- package/dist/js/crud/utils/validateOwner.js +0 -5
- package/dist/js/crud/utils/validateOwner.js.map +0 -1
- package/dist/js/email/index.d.ts +0 -4
- package/dist/js/email/index.d.ts.map +0 -1
- package/dist/js/email/index.js +0 -181
- package/dist/js/email/index.js.map +0 -1
- package/dist/js/email/templates/account.created.d.ts.map +0 -1
- package/dist/js/email/templates/account.created.email.d.ts +0 -4
- package/dist/js/email/templates/account.created.email.d.ts.map +0 -1
- package/dist/js/email/templates/account.created.email.js +0 -165
- package/dist/js/email/templates/account.created.email.js.map +0 -1
- package/dist/js/email/templates/account.created.js.map +0 -1
- package/dist/js/email/templates/account.deleted.d.ts.map +0 -1
- package/dist/js/email/templates/account.deleted.js.map +0 -1
- package/dist/js/email/templates/account.updated.d.ts.map +0 -1
- package/dist/js/email/templates/account.updated.js.map +0 -1
- package/dist/js/email/templates/announcement.d.ts.map +0 -1
- package/dist/js/email/templates/announcement.js.map +0 -1
- package/dist/js/email/templates/api.key.created.d.ts.map +0 -1
- package/dist/js/email/templates/api.key.created.js.map +0 -1
- package/dist/js/email/templates/api.key.revoked.d.ts.map +0 -1
- package/dist/js/email/templates/api.key.revoked.js.map +0 -1
- package/dist/js/email/templates/contact.form.d.ts.map +0 -1
- package/dist/js/email/templates/contact.form.js.map +0 -1
- package/dist/js/email/templates/daily.report.d.ts.map +0 -1
- package/dist/js/email/templates/daily.report.js.map +0 -1
- package/dist/js/email/templates/email.changed.d.ts.map +0 -1
- package/dist/js/email/templates/email.changed.js.map +0 -1
- package/dist/js/email/templates/feedback.d.ts.map +0 -1
- package/dist/js/email/templates/feedback.js.map +0 -1
- package/dist/js/email/templates/index.d.ts.map +0 -1
- package/dist/js/email/templates/index.js.map +0 -1
- package/dist/js/email/templates/invoice.d.ts.map +0 -1
- package/dist/js/email/templates/invoice.js.map +0 -1
- package/dist/js/email/templates/login.alert.d.ts.map +0 -1
- package/dist/js/email/templates/login.alert.js.map +0 -1
- package/dist/js/email/templates/magic.link.d.ts.map +0 -1
- package/dist/js/email/templates/magic.link.js.map +0 -1
- package/dist/js/email/templates/maintenance.d.ts.map +0 -1
- package/dist/js/email/templates/maintenance.js.map +0 -1
- package/dist/js/email/templates/member.added.d.ts.map +0 -1
- package/dist/js/email/templates/member.added.js.map +0 -1
- package/dist/js/email/templates/member.removed.d.ts.map +0 -1
- package/dist/js/email/templates/member.removed.js.map +0 -1
- package/dist/js/email/templates/mention.d.ts.map +0 -1
- package/dist/js/email/templates/mention.js.map +0 -1
- package/dist/js/email/templates/monthly.report.d.ts.map +0 -1
- package/dist/js/email/templates/monthly.report.js.map +0 -1
- package/dist/js/email/templates/new.comment.d.ts.map +0 -1
- package/dist/js/email/templates/new.comment.js.map +0 -1
- package/dist/js/email/templates/new.device.login.d.ts.map +0 -1
- package/dist/js/email/templates/new.device.login.js.map +0 -1
- package/dist/js/email/templates/new.message.d.ts.map +0 -1
- package/dist/js/email/templates/new.message.js.map +0 -1
- package/dist/js/email/templates/notification.d.ts.map +0 -1
- package/dist/js/email/templates/notification.js.map +0 -1
- package/dist/js/email/templates/order.cancelled.d.ts.map +0 -1
- package/dist/js/email/templates/order.cancelled.js.map +0 -1
- package/dist/js/email/templates/order.confirmation.d.ts.map +0 -1
- package/dist/js/email/templates/order.confirmation.js.map +0 -1
- package/dist/js/email/templates/order.delivered.d.ts.map +0 -1
- package/dist/js/email/templates/order.delivered.js.map +0 -1
- package/dist/js/email/templates/order.shipped.d.ts.map +0 -1
- package/dist/js/email/templates/order.shipped.js.map +0 -1
- package/dist/js/email/templates/organization.invitation.d.ts.map +0 -1
- package/dist/js/email/templates/organization.invitation.js.map +0 -1
- package/dist/js/email/templates/otp.verfication.d.ts.map +0 -1
- package/dist/js/email/templates/otp.verfication.js.map +0 -1
- package/dist/js/email/templates/password.changed.d.ts.map +0 -1
- package/dist/js/email/templates/password.changed.js.map +0 -1
- package/dist/js/email/templates/password.expiring.d.ts.map +0 -1
- package/dist/js/email/templates/password.expiring.js.map +0 -1
- package/dist/js/email/templates/password.reset.d.ts.map +0 -1
- package/dist/js/email/templates/password.reset.js.map +0 -1
- package/dist/js/email/templates/payment.failed.d.ts.map +0 -1
- package/dist/js/email/templates/payment.failed.js.map +0 -1
- package/dist/js/email/templates/payment.success.d.ts.map +0 -1
- package/dist/js/email/templates/payment.success.js.map +0 -1
- package/dist/js/email/templates/receipt.d.ts.map +0 -1
- package/dist/js/email/templates/receipt.js.map +0 -1
- package/dist/js/email/templates/reminder.d.ts.map +0 -1
- package/dist/js/email/templates/reminder.js.map +0 -1
- package/dist/js/email/templates/security.alert.d.ts.map +0 -1
- package/dist/js/email/templates/security.alert.js.map +0 -1
- package/dist/js/email/templates/subscription.cancelled.d.ts.map +0 -1
- package/dist/js/email/templates/subscription.cancelled.js.map +0 -1
- package/dist/js/email/templates/subscription.created.d.ts.map +0 -1
- package/dist/js/email/templates/subscription.created.js.map +0 -1
- package/dist/js/email/templates/subscription.renewed.d.ts.map +0 -1
- package/dist/js/email/templates/subscription.renewed.js.map +0 -1
- package/dist/js/email/templates/support.ticket.d.ts.map +0 -1
- package/dist/js/email/templates/support.ticket.js.map +0 -1
- package/dist/js/email/templates/team.invitation.d.ts.map +0 -1
- package/dist/js/email/templates/team.invitation.js.map +0 -1
- package/dist/js/email/templates/trial.ending.d.ts.map +0 -1
- package/dist/js/email/templates/trial.ending.js.map +0 -1
- package/dist/js/email/templates/two.factor.code.d.ts.map +0 -1
- package/dist/js/email/templates/two.factor.code.js.map +0 -1
- package/dist/js/email/templates/verify.email.d.ts.map +0 -1
- package/dist/js/email/templates/verify.email.js.map +0 -1
- package/dist/js/email/templates/weekly.report.d.ts.map +0 -1
- package/dist/js/email/templates/weekly.report.js.map +0 -1
- package/dist/js/email/templates/welcome.d.ts.map +0 -1
- package/dist/js/email/templates/welcome.email.d.ts +0 -4
- package/dist/js/email/templates/welcome.email.d.ts.map +0 -1
- package/dist/js/email/templates/welcome.email.js +0 -417
- package/dist/js/email/templates/welcome.email.js.map +0 -1
- package/dist/js/email/templates/welcome.js.map +0 -1
- package/dist/js/email/utils/auto-fields.d.ts +0 -68
- package/dist/js/email/utils/auto-fields.d.ts.map +0 -1
- package/dist/js/email/utils/auto-fields.js +0 -232
- package/dist/js/email/utils/auto-fields.js.map +0 -1
- package/dist/js/email/utils/auto-fields.type.d.ts.map +0 -1
- package/dist/js/email/utils/auto-fields.type.js.map +0 -1
- package/dist/js/email/utils/emailTemplates.d.ts +0 -2
- package/dist/js/email/utils/emailTemplates.d.ts.map +0 -1
- package/dist/js/email/utils/emailTemplates.js +0 -49
- package/dist/js/email/utils/emailTemplates.js.map +0 -1
- package/dist/js/email/utils/handleEmailTemplateConfig.d.ts +0 -4
- package/dist/js/email/utils/handleEmailTemplateConfig.d.ts.map +0 -1
- package/dist/js/email/utils/handleEmailTemplateConfig.js +0 -47
- package/dist/js/email/utils/handleEmailTemplateConfig.js.map +0 -1
- package/dist/js/health/bunch.health.d.ts +0 -6
- package/dist/js/health/bunch.health.d.ts.map +0 -1
- package/dist/js/health/bunch.health.js +0 -6
- package/dist/js/health/bunch.health.js.map +0 -1
- package/dist/js/health/delete.health.d.ts +0 -4
- package/dist/js/health/delete.health.d.ts.map +0 -1
- package/dist/js/health/delete.health.js +0 -5
- package/dist/js/health/delete.health.js.map +0 -1
- package/dist/js/health/get.health.d.ts +0 -4
- package/dist/js/health/get.health.d.ts.map +0 -1
- package/dist/js/health/get.health.js +0 -5
- package/dist/js/health/get.health.js.map +0 -1
- package/dist/js/health/health.collection.d.ts +0 -3
- package/dist/js/health/health.collection.d.ts.map +0 -1
- package/dist/js/health/health.collection.js +0 -39
- package/dist/js/health/health.collection.js.map +0 -1
- package/dist/js/health/health.controller.d.ts +0 -4
- package/dist/js/health/health.controller.d.ts.map +0 -1
- package/dist/js/health/health.controller.js +0 -5
- package/dist/js/health/health.controller.js.map +0 -1
- package/dist/js/health/index.d.ts +0 -5
- package/dist/js/health/index.d.ts.map +0 -1
- package/dist/js/health/index.js +0 -10
- package/dist/js/health/index.js.map +0 -1
- package/dist/js/health/patch.health.d.ts +0 -4
- package/dist/js/health/patch.health.d.ts.map +0 -1
- package/dist/js/health/patch.health.js +0 -5
- package/dist/js/health/patch.health.js.map +0 -1
- package/dist/js/health/post.health.d.ts +0 -4
- package/dist/js/health/post.health.d.ts.map +0 -1
- package/dist/js/health/post.health.js +0 -5
- package/dist/js/health/post.health.js.map +0 -1
- package/dist/js/health/put.health.d.ts +0 -4
- package/dist/js/health/put.health.d.ts.map +0 -1
- package/dist/js/health/put.health.js +0 -5
- package/dist/js/health/put.health.js.map +0 -1
- package/dist/js/index.d.ts +0 -18
- package/dist/js/index.d.ts.map +0 -1
- package/dist/js/index.js +0 -27
- package/dist/js/index.js.map +0 -1
- package/dist/js/lib/Mongoose.d.ts +0 -80
- package/dist/js/lib/Mongoose.d.ts.map +0 -1
- package/dist/js/lib/Mongoose.js +0 -2
- package/dist/js/lib/Mongoose.js.map +0 -1
- package/dist/js/lib/OA.d.ts +0 -2
- package/dist/js/lib/OA.d.ts.map +0 -1
- package/dist/js/lib/OA.js +0 -2
- package/dist/js/lib/OA.js.map +0 -1
- package/dist/js/lib/OAuthProviders.d.ts +0 -3
- package/dist/js/lib/OAuthProviders.d.ts.map +0 -1
- package/dist/js/lib/OAuthProviders.js +0 -18
- package/dist/js/lib/OAuthProviders.js.map +0 -1
- package/dist/js/lib/PROVIDERS.d.ts +0 -2
- package/dist/js/lib/PROVIDERS.d.ts.map +0 -1
- package/dist/js/lib/PROVIDERS.js +0 -2
- package/dist/js/lib/PROVIDERS.js.map +0 -1
- package/dist/js/lib/db.d.ts +0 -8
- package/dist/js/lib/db.d.ts.map +0 -1
- package/dist/js/lib/db.js +0 -47
- package/dist/js/lib/db.js.map +0 -1
- package/dist/js/lib/handler.d.ts +0 -9
- package/dist/js/lib/handler.d.ts.map +0 -1
- package/dist/js/lib/handler.js +0 -11
- package/dist/js/lib/handler.js.map +0 -1
- package/dist/js/lib/handlerMap.d.ts +0 -3
- package/dist/js/lib/handlerMap.d.ts.map +0 -1
- package/dist/js/lib/handlerMap.js +0 -18
- package/dist/js/lib/handlerMap.js.map +0 -1
- package/dist/js/lib/model.factory.d.ts +0 -19
- package/dist/js/lib/model.factory.d.ts.map +0 -1
- package/dist/js/lib/model.factory.js +0 -77
- package/dist/js/lib/model.factory.js.map +0 -1
- package/dist/js/lib/model.registry.d.ts +0 -4
- package/dist/js/lib/model.registry.d.ts.map +0 -1
- package/dist/js/lib/model.registry.js +0 -5
- package/dist/js/lib/model.registry.js.map +0 -1
- package/dist/js/lib/mongoose.fields.d.ts +0 -52
- package/dist/js/lib/mongoose.fields.d.ts.map +0 -1
- package/dist/js/lib/mongoose.fields.js +0 -382
- package/dist/js/lib/mongoose.fields.js.map +0 -1
- package/dist/js/lib/roles.d.ts.map +0 -1
- package/dist/js/lib/roles.js.map +0 -1
- package/dist/js/lib/schema.builder.d.ts +0 -6
- package/dist/js/lib/schema.builder.d.ts.map +0 -1
- package/dist/js/lib/schema.builder.js +0 -31
- package/dist/js/lib/schema.builder.js.map +0 -1
- package/dist/js/lib/unified.fields.d.ts +0 -57
- package/dist/js/lib/unified.fields.d.ts.map +0 -1
- package/dist/js/lib/unified.fields.js +0 -610
- package/dist/js/lib/unified.fields.js.map +0 -1
- package/dist/js/lib/unified.types.d.ts +0 -10
- package/dist/js/lib/unified.types.d.ts.map +0 -1
- package/dist/js/lib/unified.types.js.map +0 -1
- package/dist/js/lib/zod.factory.d.ts +0 -21
- package/dist/js/lib/zod.factory.d.ts.map +0 -1
- package/dist/js/lib/zod.factory.js +0 -49
- package/dist/js/lib/zod.factory.js.map +0 -1
- package/dist/js/lib/zod.fields.d.ts +0 -180
- package/dist/js/lib/zod.fields.d.ts.map +0 -1
- package/dist/js/lib/zod.fields.js +0 -195
- package/dist/js/lib/zod.fields.js.map +0 -1
- package/dist/js/middleware/auth.middleware.d.ts +0 -25
- package/dist/js/middleware/auth.middleware.d.ts.map +0 -1
- package/dist/js/middleware/auth.middleware.js +0 -87
- package/dist/js/middleware/auth.middleware.js.map +0 -1
- package/dist/js/middleware/error.middleware.d.ts +0 -5
- package/dist/js/middleware/error.middleware.d.ts.map +0 -1
- package/dist/js/middleware/error.middleware.js +0 -26
- package/dist/js/middleware/error.middleware.js.map +0 -1
- package/dist/js/middleware/multer.middleware.d.ts +0 -5
- package/dist/js/middleware/multer.middleware.d.ts.map +0 -1
- package/dist/js/middleware/multer.middleware.js +0 -110
- package/dist/js/middleware/multer.middleware.js.map +0 -1
- package/dist/js/middleware/rateLimit.middleware.d.ts +0 -2
- package/dist/js/middleware/rateLimit.middleware.d.ts.map +0 -1
- package/dist/js/middleware/rateLimit.middleware.js +0 -19
- package/dist/js/middleware/rateLimit.middleware.js.map +0 -1
- package/dist/js/realtime/index.d.ts +0 -4
- package/dist/js/realtime/index.d.ts.map +0 -1
- package/dist/js/realtime/index.js +0 -5
- package/dist/js/realtime/index.js.map +0 -1
- package/dist/js/terminal/appInfo.d.ts +0 -19
- package/dist/js/terminal/appInfo.d.ts.map +0 -1
- package/dist/js/terminal/appInfo.js +0 -42
- package/dist/js/terminal/appInfo.js.map +0 -1
- package/dist/js/terminal/collectionInfo.d.ts +0 -19
- package/dist/js/terminal/collectionInfo.d.ts.map +0 -1
- package/dist/js/terminal/collectionInfo.js +0 -36
- package/dist/js/terminal/collectionInfo.js.map +0 -1
- package/dist/js/terminal/logger.d.ts +0 -25
- package/dist/js/terminal/logger.d.ts.map +0 -1
- package/dist/js/terminal/logger.js +0 -242
- package/dist/js/terminal/logger.js.map +0 -1
- package/dist/js/terminal/loggerConfig.d.ts +0 -3
- package/dist/js/terminal/loggerConfig.d.ts.map +0 -1
- package/dist/js/terminal/loggerConfig.js +0 -36
- package/dist/js/terminal/loggerConfig.js.map +0 -1
- package/dist/js/terminal/terminal.d.ts +0 -3
- package/dist/js/terminal/terminal.d.ts.map +0 -1
- package/dist/js/terminal/terminal.js +0 -36
- package/dist/js/terminal/terminal.js.map +0 -1
- package/dist/js/types/ActionHandler.d.ts +0 -93
- package/dist/js/types/ActionHandler.d.ts.map +0 -1
- package/dist/js/types/ActionHandler.js.map +0 -1
- package/dist/js/types/Collection.d.ts +0 -113
- package/dist/js/types/Collection.d.ts.map +0 -1
- package/dist/js/types/Collection.js.map +0 -1
- package/dist/js/types/Constructor.d.ts +0 -75
- package/dist/js/types/Constructor.d.ts.map +0 -1
- package/dist/js/types/Constructor.js +0 -2
- package/dist/js/types/Constructor.js.map +0 -1
- package/dist/js/types/EmailActionTemplate.d.ts.map +0 -1
- package/dist/js/types/EmailActionTemplate.js.map +0 -1
- package/dist/js/types/MongooseOTPSchemaObj.d.ts +0 -10
- package/dist/js/types/MongooseOTPSchemaObj.d.ts.map +0 -1
- package/dist/js/types/MongooseOTPSchemaObj.js +0 -2
- package/dist/js/types/MongooseOTPSchemaObj.js.map +0 -1
- package/dist/js/types/Route.d.ts +0 -152
- package/dist/js/types/Route.d.ts.map +0 -1
- package/dist/js/types/Route.js.map +0 -1
- package/dist/js/types/Routepath.d.ts +0 -2
- package/dist/js/types/Routepath.d.ts.map +0 -1
- package/dist/js/types/Routepath.js +0 -17
- package/dist/js/types/Routepath.js.map +0 -1
- package/dist/js/types/StoreFile.d.ts +0 -10
- package/dist/js/types/StoreFile.d.ts.map +0 -1
- package/dist/js/types/StoreFile.js.map +0 -1
- package/dist/js/types/ValidationsObj.d.ts +0 -7
- package/dist/js/types/ValidationsObj.d.ts.map +0 -1
- package/dist/js/types/ValidationsObj.js +0 -2
- package/dist/js/types/ValidationsObj.js.map +0 -1
- package/dist/js/types/accountHandlers.d.ts +0 -2
- package/dist/js/types/accountHandlers.d.ts.map +0 -1
- package/dist/js/types/accountHandlers.js +0 -2
- package/dist/js/types/accountHandlers.js.map +0 -1
- package/dist/js/types/adminHandlers.d.ts +0 -2
- package/dist/js/types/adminHandlers.d.ts.map +0 -1
- package/dist/js/types/adminHandlers.js +0 -2
- package/dist/js/types/adminHandlers.js.map +0 -1
- package/dist/js/types/authHandlers.d.ts +0 -2
- package/dist/js/types/authHandlers.d.ts.map +0 -1
- package/dist/js/types/authHandlers.js +0 -2
- package/dist/js/types/authHandlers.js.map +0 -1
- package/dist/js/types/crudHandlers.d.ts +0 -2
- package/dist/js/types/crudHandlers.d.ts.map +0 -1
- package/dist/js/types/crudHandlers.js +0 -2
- package/dist/js/types/crudHandlers.js.map +0 -1
- package/dist/js/types/email/account.created.type.d.ts +0 -10
- package/dist/js/types/email/account.created.type.d.ts.map +0 -1
- package/dist/js/types/email/account.created.type.js.map +0 -1
- package/dist/js/types/email/account.deleted.type.d.ts +0 -10
- package/dist/js/types/email/account.deleted.type.d.ts.map +0 -1
- package/dist/js/types/email/account.deleted.type.js.map +0 -1
- package/dist/js/types/email/account.updated.type.d.ts +0 -12
- package/dist/js/types/email/account.updated.type.d.ts.map +0 -1
- package/dist/js/types/email/account.updated.type.js.map +0 -1
- package/dist/js/types/email/announcement.type.d.ts +0 -13
- package/dist/js/types/email/announcement.type.d.ts.map +0 -1
- package/dist/js/types/email/announcement.type.js.map +0 -1
- package/dist/js/types/email/api.key.created.type.d.ts +0 -14
- package/dist/js/types/email/api.key.created.type.d.ts.map +0 -1
- package/dist/js/types/email/api.key.created.type.js.map +0 -1
- package/dist/js/types/email/api.key.revoked.type.d.ts +0 -14
- package/dist/js/types/email/api.key.revoked.type.d.ts.map +0 -1
- package/dist/js/types/email/api.key.revoked.type.js.map +0 -1
- package/dist/js/types/email/contact.form.type.d.ts +0 -11
- package/dist/js/types/email/contact.form.type.d.ts.map +0 -1
- package/dist/js/types/email/contact.form.type.js.map +0 -1
- package/dist/js/types/email/daily.report.type.d.ts +0 -14
- package/dist/js/types/email/daily.report.type.d.ts.map +0 -1
- package/dist/js/types/email/daily.report.type.js.map +0 -1
- package/dist/js/types/email/email.changed.type.d.ts +0 -12
- package/dist/js/types/email/email.changed.type.d.ts.map +0 -1
- package/dist/js/types/email/email.changed.type.js.map +0 -1
- package/dist/js/types/email/feedback.type.d.ts +0 -11
- package/dist/js/types/email/feedback.type.d.ts.map +0 -1
- package/dist/js/types/email/feedback.type.js.map +0 -1
- package/dist/js/types/email/index.d.ts.map +0 -1
- package/dist/js/types/email/index.js +0 -2
- package/dist/js/types/email/index.js.map +0 -1
- package/dist/js/types/email/invoice.type.d.ts +0 -14
- package/dist/js/types/email/invoice.type.d.ts.map +0 -1
- package/dist/js/types/email/invoice.type.js.map +0 -1
- package/dist/js/types/email/login.alert.type.d.ts +0 -12
- package/dist/js/types/email/login.alert.type.d.ts.map +0 -1
- package/dist/js/types/email/login.alert.type.js.map +0 -1
- package/dist/js/types/email/magic.link.type.d.ts +0 -11
- package/dist/js/types/email/magic.link.type.d.ts.map +0 -1
- package/dist/js/types/email/magic.link.type.js.map +0 -1
- package/dist/js/types/email/maintenance.type.d.ts +0 -13
- package/dist/js/types/email/maintenance.type.d.ts.map +0 -1
- package/dist/js/types/email/maintenance.type.js.map +0 -1
- package/dist/js/types/email/member.added.type.d.ts +0 -14
- package/dist/js/types/email/member.added.type.d.ts.map +0 -1
- package/dist/js/types/email/member.added.type.js.map +0 -1
- package/dist/js/types/email/member.removed.type.d.ts +0 -14
- package/dist/js/types/email/member.removed.type.d.ts.map +0 -1
- package/dist/js/types/email/member.removed.type.js.map +0 -1
- package/dist/js/types/email/mention.type.d.ts +0 -12
- package/dist/js/types/email/mention.type.d.ts.map +0 -1
- package/dist/js/types/email/mention.type.js.map +0 -1
- package/dist/js/types/email/monthly.report.type.d.ts +0 -14
- package/dist/js/types/email/monthly.report.type.d.ts.map +0 -1
- package/dist/js/types/email/monthly.report.type.js.map +0 -1
- package/dist/js/types/email/new.comment.type.d.ts +0 -12
- package/dist/js/types/email/new.comment.type.d.ts.map +0 -1
- package/dist/js/types/email/new.comment.type.js.map +0 -1
- package/dist/js/types/email/new.device.login.type.d.ts +0 -11
- package/dist/js/types/email/new.device.login.type.d.ts.map +0 -1
- package/dist/js/types/email/new.device.login.type.js.map +0 -1
- package/dist/js/types/email/new.message.type.d.ts +0 -11
- package/dist/js/types/email/new.message.type.d.ts.map +0 -1
- package/dist/js/types/email/new.message.type.js.map +0 -1
- package/dist/js/types/email/notification.type.d.ts +0 -13
- package/dist/js/types/email/notification.type.d.ts.map +0 -1
- package/dist/js/types/email/notification.type.js.map +0 -1
- package/dist/js/types/email/order.cancelled.type.d.ts +0 -12
- package/dist/js/types/email/order.cancelled.type.d.ts.map +0 -1
- package/dist/js/types/email/order.cancelled.type.js.map +0 -1
- package/dist/js/types/email/order.confirmation.type.d.ts +0 -13
- package/dist/js/types/email/order.confirmation.type.d.ts.map +0 -1
- package/dist/js/types/email/order.confirmation.type.js.map +0 -1
- package/dist/js/types/email/order.delivered.type.d.ts +0 -12
- package/dist/js/types/email/order.delivered.type.d.ts.map +0 -1
- package/dist/js/types/email/order.delivered.type.js.map +0 -1
- package/dist/js/types/email/order.shipped.type.d.ts +0 -14
- package/dist/js/types/email/order.shipped.type.d.ts.map +0 -1
- package/dist/js/types/email/order.shipped.type.js.map +0 -1
- package/dist/js/types/email/organization.invitation.type.d.ts +0 -13
- package/dist/js/types/email/organization.invitation.type.d.ts.map +0 -1
- package/dist/js/types/email/organization.invitation.type.js.map +0 -1
- package/dist/js/types/email/otp.verification.type.d.ts +0 -11
- package/dist/js/types/email/otp.verification.type.d.ts.map +0 -1
- package/dist/js/types/email/otp.verification.type.js.map +0 -1
- package/dist/js/types/email/password.changed.type.d.ts +0 -12
- package/dist/js/types/email/password.changed.type.d.ts.map +0 -1
- package/dist/js/types/email/password.changed.type.js.map +0 -1
- package/dist/js/types/email/password.expiring.type.d.ts +0 -12
- package/dist/js/types/email/password.expiring.type.d.ts.map +0 -1
- package/dist/js/types/email/password.expiring.type.js.map +0 -1
- package/dist/js/types/email/password.reset.type.d.ts +0 -11
- package/dist/js/types/email/password.reset.type.d.ts.map +0 -1
- package/dist/js/types/email/password.reset.type.js.map +0 -1
- package/dist/js/types/email/payment.failed.type.d.ts +0 -14
- package/dist/js/types/email/payment.failed.type.d.ts.map +0 -1
- package/dist/js/types/email/payment.failed.type.js.map +0 -1
- package/dist/js/types/email/payment.success.type.d.ts +0 -13
- package/dist/js/types/email/payment.success.type.d.ts.map +0 -1
- package/dist/js/types/email/payment.success.type.js.map +0 -1
- package/dist/js/types/email/receipt.type.d.ts +0 -14
- package/dist/js/types/email/receipt.type.d.ts.map +0 -1
- package/dist/js/types/email/receipt.type.js.map +0 -1
- package/dist/js/types/email/reminder.type.d.ts +0 -12
- package/dist/js/types/email/reminder.type.d.ts.map +0 -1
- package/dist/js/types/email/reminder.type.js.map +0 -1
- package/dist/js/types/email/security.alert.type.d.ts +0 -12
- package/dist/js/types/email/security.alert.type.d.ts.map +0 -1
- package/dist/js/types/email/security.alert.type.js.map +0 -1
- package/dist/js/types/email/static-config.type.d.ts.map +0 -1
- package/dist/js/types/email/static-config.type.js.map +0 -1
- package/dist/js/types/email/subscription.cancelled.type.d.ts +0 -12
- package/dist/js/types/email/subscription.cancelled.type.d.ts.map +0 -1
- package/dist/js/types/email/subscription.cancelled.type.js.map +0 -1
- package/dist/js/types/email/subscription.created.type.d.ts +0 -13
- package/dist/js/types/email/subscription.created.type.d.ts.map +0 -1
- package/dist/js/types/email/subscription.created.type.js.map +0 -1
- package/dist/js/types/email/subscription.renewed.type.d.ts +0 -14
- package/dist/js/types/email/subscription.renewed.type.d.ts.map +0 -1
- package/dist/js/types/email/subscription.renewed.type.js.map +0 -1
- package/dist/js/types/email/support.ticket.type.d.ts +0 -14
- package/dist/js/types/email/support.ticket.type.d.ts.map +0 -1
- package/dist/js/types/email/support.ticket.type.js.map +0 -1
- package/dist/js/types/email/team.invitation.type.d.ts +0 -13
- package/dist/js/types/email/team.invitation.type.d.ts.map +0 -1
- package/dist/js/types/email/team.invitation.type.js.map +0 -1
- package/dist/js/types/email/trial.ending.type.d.ts +0 -13
- package/dist/js/types/email/trial.ending.type.d.ts.map +0 -1
- package/dist/js/types/email/trial.ending.type.js.map +0 -1
- package/dist/js/types/email/two.factor.code.type.d.ts +0 -11
- package/dist/js/types/email/two.factor.code.type.d.ts.map +0 -1
- package/dist/js/types/email/two.factor.code.type.js.map +0 -1
- package/dist/js/types/email/verify.email.type.d.ts +0 -11
- package/dist/js/types/email/verify.email.type.d.ts.map +0 -1
- package/dist/js/types/email/verify.email.type.js.map +0 -1
- package/dist/js/types/email/weekly.report.type.d.ts +0 -14
- package/dist/js/types/email/weekly.report.type.d.ts.map +0 -1
- package/dist/js/types/email/weekly.report.type.js.map +0 -1
- package/dist/js/types/email/welcome.type.d.ts +0 -10
- package/dist/js/types/email/welcome.type.d.ts.map +0 -1
- package/dist/js/types/email/welcome.type.js.map +0 -1
- package/dist/js/types/email.d.ts.map +0 -1
- package/dist/js/types/email.js.map +0 -1
- package/dist/js/types/healthHandlers.d.ts +0 -2
- package/dist/js/types/healthHandlers.d.ts.map +0 -1
- package/dist/js/types/healthHandlers.js +0 -2
- package/dist/js/types/healthHandlers.js.map +0 -1
- package/dist/js/types/upload.d.ts +0 -61
- package/dist/js/types/upload.d.ts.map +0 -1
- package/dist/js/types/upload.js.map +0 -1
- package/dist/js/types/uploadFile.d.ts +0 -10
- package/dist/js/types/uploadFile.d.ts.map +0 -1
- package/dist/js/types/uploadFile.js +0 -2
- package/dist/js/types/uploadFile.js.map +0 -1
- package/dist/js/types/uploadHandlers.d.ts +0 -2
- package/dist/js/types/uploadHandlers.d.ts.map +0 -1
- package/dist/js/types/uploadHandlers.js +0 -2
- package/dist/js/types/uploadHandlers.js.map +0 -1
- package/dist/js/upload/create.d.ts +0 -8
- package/dist/js/upload/create.d.ts.map +0 -1
- package/dist/js/upload/create.js +0 -70
- package/dist/js/upload/create.js.map +0 -1
- package/dist/js/upload/delete.d.ts +0 -8
- package/dist/js/upload/delete.d.ts.map +0 -1
- package/dist/js/upload/delete.js +0 -100
- package/dist/js/upload/delete.js.map +0 -1
- package/dist/js/upload/index.d.ts +0 -3
- package/dist/js/upload/index.d.ts.map +0 -1
- package/dist/js/upload/index.js +0 -3
- package/dist/js/upload/index.js.map +0 -1
- package/dist/js/upload/providers/cloudinary.provider.d.ts +0 -2
- package/dist/js/upload/providers/cloudinary.provider.d.ts.map +0 -1
- package/dist/js/upload/providers/cloudinary.provider.js +0 -2
- package/dist/js/upload/providers/cloudinary.provider.js.map +0 -1
- package/dist/js/upload/update.d.ts +0 -10
- package/dist/js/upload/update.d.ts.map +0 -1
- package/dist/js/upload/update.js +0 -138
- package/dist/js/upload/update.js.map +0 -1
- package/dist/js/utils/AppError.d.ts +0 -26
- package/dist/js/utils/AppError.d.ts.map +0 -1
- package/dist/js/utils/AppError.js +0 -18
- package/dist/js/utils/AppError.js.map +0 -1
- package/dist/js/utils/AppLog.d.ts +0 -10
- package/dist/js/utils/AppLog.d.ts.map +0 -1
- package/dist/js/utils/AppLog.js +0 -12
- package/dist/js/utils/AppLog.js.map +0 -1
- package/dist/js/utils/Applog.d.ts +0 -2
- package/dist/js/utils/Applog.d.ts.map +0 -1
- package/dist/js/utils/Applog.js +0 -2
- package/dist/js/utils/Applog.js.map +0 -1
- package/dist/js/utils/AsyncHandler.d.ts +0 -4
- package/dist/js/utils/AsyncHandler.d.ts.map +0 -1
- package/dist/js/utils/AsyncHandler.js +0 -5
- package/dist/js/utils/AsyncHandler.js.map +0 -1
- package/dist/js/utils/extractParamsNames.d.ts +0 -2
- package/dist/js/utils/extractParamsNames.d.ts.map +0 -1
- package/dist/js/utils/extractParamsNames.js +0 -13
- package/dist/js/utils/extractParamsNames.js.map +0 -1
- package/dist/js/utils/getErrorDetail.d.ts +0 -9
- package/dist/js/utils/getErrorDetail.d.ts.map +0 -1
- package/dist/js/utils/getErrorDetail.js +0 -10
- package/dist/js/utils/getErrorDetail.js.map +0 -1
- package/dist/js/utils/getModel.d.ts +0 -8
- package/dist/js/utils/getModel.d.ts.map +0 -1
- package/dist/js/utils/getModel.js +0 -25
- package/dist/js/utils/getModel.js.map +0 -1
- package/dist/js/utils/handleJWT.d.ts +0 -13
- package/dist/js/utils/handleJWT.d.ts.map +0 -1
- package/dist/js/utils/handleJWT.js +0 -86
- package/dist/js/utils/handleJWT.js.map +0 -1
- package/dist/js/utils/libsodium.d.ts +0 -20
- package/dist/js/utils/libsodium.d.ts.map +0 -1
- package/dist/js/utils/libsodium.js +0 -193
- package/dist/js/utils/libsodium.js.map +0 -1
- package/dist/js/utils/otpPurposes.d.ts +0 -3
- package/dist/js/utils/otpPurposes.d.ts.map +0 -1
- package/dist/js/utils/otpPurposes.js +0 -45
- package/dist/js/utils/otpPurposes.js.map +0 -1
- package/dist/js/utils/response.d.ts +0 -13
- package/dist/js/utils/response.d.ts.map +0 -1
- package/dist/js/utils/response.js +0 -15
- package/dist/js/utils/response.js.map +0 -1
- package/dist/js/utils/sanitize.d.ts +0 -4
- package/dist/js/utils/sanitize.d.ts.map +0 -1
- package/dist/js/utils/sanitize.js +0 -59
- package/dist/js/utils/sanitize.js.map +0 -1
- package/dist/js/utils/saveRefreshToken.d.ts +0 -17
- package/dist/js/utils/saveRefreshToken.d.ts.map +0 -1
- package/dist/js/utils/saveRefreshToken.js +0 -19
- package/dist/js/utils/saveRefreshToken.js.map +0 -1
- package/dist/js/utils/validate.d.ts +0 -4
- package/dist/js/utils/validate.d.ts.map +0 -1
- package/dist/js/utils/validate.js +0 -58
- package/dist/js/utils/validate.js.map +0 -1
- package/dist/js/utils/validationKeyError.d.ts +0 -4
- package/dist/js/utils/validationKeyError.d.ts.map +0 -1
- package/dist/js/utils/validationKeyError.js +0 -47
- package/dist/js/utils/validationKeyError.js.map +0 -1
- package/dist/js/validations.d.ts +0 -3
- package/dist/js/validations.d.ts.map +0 -1
- package/dist/js/validations.js +0 -6
- package/dist/js/validations.js.map +0 -1
- package/readme.md +0 -1476
- /package/dist/{js/email → email}/templates/account.created.d.ts +0 -0
- /package/dist/{js/email → email}/templates/account.created.js +0 -0
- /package/dist/{js/email → email}/templates/account.deleted.d.ts +0 -0
- /package/dist/{js/email → email}/templates/account.deleted.js +0 -0
- /package/dist/{js/email → email}/templates/account.updated.d.ts +0 -0
- /package/dist/{js/email → email}/templates/account.updated.js +0 -0
- /package/dist/{js/email → email}/templates/announcement.d.ts +0 -0
- /package/dist/{js/email → email}/templates/announcement.js +0 -0
- /package/dist/{js/email → email}/templates/api.key.created.d.ts +0 -0
- /package/dist/{js/email → email}/templates/api.key.created.js +0 -0
- /package/dist/{js/email → email}/templates/api.key.revoked.d.ts +0 -0
- /package/dist/{js/email → email}/templates/api.key.revoked.js +0 -0
- /package/dist/{js/email → email}/templates/contact.form.d.ts +0 -0
- /package/dist/{js/email → email}/templates/contact.form.js +0 -0
- /package/dist/{js/email → email}/templates/daily.report.d.ts +0 -0
- /package/dist/{js/email → email}/templates/daily.report.js +0 -0
- /package/dist/{js/email → email}/templates/email.changed.d.ts +0 -0
- /package/dist/{js/email → email}/templates/email.changed.js +0 -0
- /package/dist/{js/email → email}/templates/feedback.d.ts +0 -0
- /package/dist/{js/email → email}/templates/feedback.js +0 -0
- /package/dist/{js/email → email}/templates/index.d.ts +0 -0
- /package/dist/{js/email → email}/templates/index.js +0 -0
- /package/dist/{js/email → email}/templates/invoice.d.ts +0 -0
- /package/dist/{js/email → email}/templates/invoice.js +0 -0
- /package/dist/{js/email → email}/templates/login.alert.d.ts +0 -0
- /package/dist/{js/email → email}/templates/login.alert.js +0 -0
- /package/dist/{js/email → email}/templates/magic.link.d.ts +0 -0
- /package/dist/{js/email → email}/templates/magic.link.js +0 -0
- /package/dist/{js/email → email}/templates/maintenance.d.ts +0 -0
- /package/dist/{js/email → email}/templates/maintenance.js +0 -0
- /package/dist/{js/email → email}/templates/member.added.d.ts +0 -0
- /package/dist/{js/email → email}/templates/member.added.js +0 -0
- /package/dist/{js/email → email}/templates/member.removed.d.ts +0 -0
- /package/dist/{js/email → email}/templates/member.removed.js +0 -0
- /package/dist/{js/email → email}/templates/mention.d.ts +0 -0
- /package/dist/{js/email → email}/templates/mention.js +0 -0
- /package/dist/{js/email → email}/templates/monthly.report.d.ts +0 -0
- /package/dist/{js/email → email}/templates/monthly.report.js +0 -0
- /package/dist/{js/email → email}/templates/new.comment.d.ts +0 -0
- /package/dist/{js/email → email}/templates/new.comment.js +0 -0
- /package/dist/{js/email → email}/templates/new.device.login.d.ts +0 -0
- /package/dist/{js/email → email}/templates/new.device.login.js +0 -0
- /package/dist/{js/email → email}/templates/new.message.d.ts +0 -0
- /package/dist/{js/email → email}/templates/new.message.js +0 -0
- /package/dist/{js/email → email}/templates/notification.d.ts +0 -0
- /package/dist/{js/email → email}/templates/notification.js +0 -0
- /package/dist/{js/email → email}/templates/order.cancelled.d.ts +0 -0
- /package/dist/{js/email → email}/templates/order.cancelled.js +0 -0
- /package/dist/{js/email → email}/templates/order.confirmation.d.ts +0 -0
- /package/dist/{js/email → email}/templates/order.confirmation.js +0 -0
- /package/dist/{js/email → email}/templates/order.delivered.d.ts +0 -0
- /package/dist/{js/email → email}/templates/order.delivered.js +0 -0
- /package/dist/{js/email → email}/templates/order.shipped.d.ts +0 -0
- /package/dist/{js/email → email}/templates/order.shipped.js +0 -0
- /package/dist/{js/email → email}/templates/organization.invitation.d.ts +0 -0
- /package/dist/{js/email → email}/templates/organization.invitation.js +0 -0
- /package/dist/{js/email → email}/templates/otp.verfication.d.ts +0 -0
- /package/dist/{js/email → email}/templates/otp.verfication.js +0 -0
- /package/dist/{js/email → email}/templates/password.changed.d.ts +0 -0
- /package/dist/{js/email → email}/templates/password.changed.js +0 -0
- /package/dist/{js/email → email}/templates/password.expiring.d.ts +0 -0
- /package/dist/{js/email → email}/templates/password.expiring.js +0 -0
- /package/dist/{js/email → email}/templates/password.reset.d.ts +0 -0
- /package/dist/{js/email → email}/templates/password.reset.js +0 -0
- /package/dist/{js/email → email}/templates/payment.failed.d.ts +0 -0
- /package/dist/{js/email → email}/templates/payment.failed.js +0 -0
- /package/dist/{js/email → email}/templates/payment.success.d.ts +0 -0
- /package/dist/{js/email → email}/templates/payment.success.js +0 -0
- /package/dist/{js/email → email}/templates/receipt.d.ts +0 -0
- /package/dist/{js/email → email}/templates/receipt.js +0 -0
- /package/dist/{js/email → email}/templates/reminder.d.ts +0 -0
- /package/dist/{js/email → email}/templates/reminder.js +0 -0
- /package/dist/{js/email → email}/templates/security.alert.d.ts +0 -0
- /package/dist/{js/email → email}/templates/security.alert.js +0 -0
- /package/dist/{js/email → email}/templates/subscription.cancelled.d.ts +0 -0
- /package/dist/{js/email → email}/templates/subscription.cancelled.js +0 -0
- /package/dist/{js/email → email}/templates/subscription.created.d.ts +0 -0
- /package/dist/{js/email → email}/templates/subscription.created.js +0 -0
- /package/dist/{js/email → email}/templates/subscription.renewed.d.ts +0 -0
- /package/dist/{js/email → email}/templates/subscription.renewed.js +0 -0
- /package/dist/{js/email → email}/templates/support.ticket.d.ts +0 -0
- /package/dist/{js/email → email}/templates/support.ticket.js +0 -0
- /package/dist/{js/email → email}/templates/team.invitation.d.ts +0 -0
- /package/dist/{js/email → email}/templates/team.invitation.js +0 -0
- /package/dist/{js/email → email}/templates/trial.ending.d.ts +0 -0
- /package/dist/{js/email → email}/templates/trial.ending.js +0 -0
- /package/dist/{js/email → email}/templates/two.factor.code.d.ts +0 -0
- /package/dist/{js/email → email}/templates/two.factor.code.js +0 -0
- /package/dist/{js/email → email}/templates/verify.email.d.ts +0 -0
- /package/dist/{js/email → email}/templates/verify.email.js +0 -0
- /package/dist/{js/email → email}/templates/weekly.report.d.ts +0 -0
- /package/dist/{js/email → email}/templates/weekly.report.js +0 -0
- /package/dist/{js/email → email}/templates/welcome.d.ts +0 -0
- /package/dist/{js/email → email}/templates/welcome.js +0 -0
- /package/dist/{js/email → email}/utils/auto-fields.type.d.ts +0 -0
- /package/dist/{js/email → email}/utils/auto-fields.type.js +0 -0
- /package/dist/{js/lib → fields}/roles.d.ts +0 -0
- /package/dist/{js/lib → fields}/roles.js +0 -0
- /package/dist/{js/lib → fields}/unified.types.js +0 -0
- /package/dist/{js/types → types}/ActionHandler.js +0 -0
- /package/dist/{js/types → types}/Collection.js +0 -0
- /package/dist/{js/types → types}/EmailActionTemplate.d.ts +0 -0
- /package/dist/{js/types → types}/EmailActionTemplate.js +0 -0
- /package/dist/{js/types → types}/Route.js +0 -0
- /package/dist/{js/types → types}/StoreFile.js +0 -0
- /package/dist/{js/types → types}/email/account.created.type.js +0 -0
- /package/dist/{js/types → types}/email/account.deleted.type.js +0 -0
- /package/dist/{js/types → types}/email/account.updated.type.js +0 -0
- /package/dist/{js/types → types}/email/announcement.type.js +0 -0
- /package/dist/{js/types → types}/email/api.key.created.type.js +0 -0
- /package/dist/{js/types → types}/email/api.key.revoked.type.js +0 -0
- /package/dist/{js/types → types}/email/contact.form.type.js +0 -0
- /package/dist/{js/types → types}/email/daily.report.type.js +0 -0
- /package/dist/{js/types → types}/email/email.changed.type.js +0 -0
- /package/dist/{js/types → types}/email/feedback.type.js +0 -0
- /package/dist/{js/types → types}/email/index.d.ts +0 -0
- /package/dist/{js/crud → types}/email/index.js +0 -0
- /package/dist/{js/types → types}/email/invoice.type.js +0 -0
- /package/dist/{js/types → types}/email/login.alert.type.js +0 -0
- /package/dist/{js/types → types}/email/magic.link.type.js +0 -0
- /package/dist/{js/types → types}/email/maintenance.type.js +0 -0
- /package/dist/{js/types → types}/email/member.added.type.js +0 -0
- /package/dist/{js/types → types}/email/member.removed.type.js +0 -0
- /package/dist/{js/types → types}/email/mention.type.js +0 -0
- /package/dist/{js/types → types}/email/monthly.report.type.js +0 -0
- /package/dist/{js/types → types}/email/new.comment.type.js +0 -0
- /package/dist/{js/types → types}/email/new.device.login.type.js +0 -0
- /package/dist/{js/types → types}/email/new.message.type.js +0 -0
- /package/dist/{js/types → types}/email/notification.type.js +0 -0
- /package/dist/{js/types → types}/email/order.cancelled.type.js +0 -0
- /package/dist/{js/types → types}/email/order.confirmation.type.js +0 -0
- /package/dist/{js/types → types}/email/order.delivered.type.js +0 -0
- /package/dist/{js/types → types}/email/order.shipped.type.js +0 -0
- /package/dist/{js/types → types}/email/organization.invitation.type.js +0 -0
- /package/dist/{js/types → types}/email/otp.verification.type.js +0 -0
- /package/dist/{js/types → types}/email/password.changed.type.js +0 -0
- /package/dist/{js/types → types}/email/password.expiring.type.js +0 -0
- /package/dist/{js/types → types}/email/password.reset.type.js +0 -0
- /package/dist/{js/types → types}/email/payment.failed.type.js +0 -0
- /package/dist/{js/types → types}/email/payment.success.type.js +0 -0
- /package/dist/{js/types → types}/email/receipt.type.js +0 -0
- /package/dist/{js/types → types}/email/reminder.type.js +0 -0
- /package/dist/{js/types → types}/email/security.alert.type.js +0 -0
- /package/dist/{js/types → types}/email/static-config.type.d.ts +0 -0
- /package/dist/{js/types → types}/email/static-config.type.js +0 -0
- /package/dist/{js/types → types}/email/subscription.cancelled.type.js +0 -0
- /package/dist/{js/types → types}/email/subscription.created.type.js +0 -0
- /package/dist/{js/types → types}/email/subscription.renewed.type.js +0 -0
- /package/dist/{js/types → types}/email/support.ticket.type.js +0 -0
- /package/dist/{js/types → types}/email/team.invitation.type.js +0 -0
- /package/dist/{js/types → types}/email/trial.ending.type.js +0 -0
- /package/dist/{js/types → types}/email/two.factor.code.type.js +0 -0
- /package/dist/{js/types → types}/email/verify.email.type.js +0 -0
- /package/dist/{js/types → types}/email/weekly.report.type.js +0 -0
- /package/dist/{js/types → types}/email/welcome.type.js +0 -0
- /package/dist/{js/types → types}/email.d.ts +0 -0
- /package/dist/{js/types → types}/email.js +0 -0
- /package/dist/{js/types → types}/upload.js +0 -0
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
import { BadRequestError, ErrorCode } from "../errors/index.js";
|
|
2
|
+
import { referenceOf } from "../data/references.js";
|
|
3
|
+
import { isObjectId } from "../utils/ids.js";
|
|
4
|
+
import { CrudSupport } from "./CrudSupport.js";
|
|
5
|
+
const DEFAULT_MAX_BULK = 100;
|
|
6
|
+
const MAX_BATCH_DELETE = 100;
|
|
7
|
+
/** The eight database handlers: read, readAll, create, createBulk, update, remove, removeMultiple, removeAll. */
|
|
8
|
+
export class CrudController {
|
|
9
|
+
services;
|
|
10
|
+
support;
|
|
11
|
+
constructor(services) {
|
|
12
|
+
this.services = services;
|
|
13
|
+
this.support = new CrudSupport(services);
|
|
14
|
+
}
|
|
15
|
+
read = async (req, res, ctx) => {
|
|
16
|
+
await this.services.actions.runBefore(ctx.route.actions?.before, ctx.actionContext(req, "read"));
|
|
17
|
+
const doc = await this.support.load(ctx, req);
|
|
18
|
+
const item = await this.support.present(ctx, doc);
|
|
19
|
+
const replaced = await this.services.actions.runAfter(ctx.route.actions?.after, { ...ctx.actionContext(req, "read"), item, result: item });
|
|
20
|
+
this.services.responses.success(res, { message: `${ctx.modelName} fetched successfully.`, data: replaced ?? item });
|
|
21
|
+
};
|
|
22
|
+
readAll = async (req, res, ctx) => {
|
|
23
|
+
await this.services.actions.runBefore(ctx.route.actions?.before, ctx.actionContext(req, "readAll"));
|
|
24
|
+
const repo = this.support.repo(ctx);
|
|
25
|
+
const page = this.services.pagination.parse(req, this.support.sortable(ctx));
|
|
26
|
+
const filter = this.services.access.scopeFilter(ctx.route, req.user);
|
|
27
|
+
const [docs, total] = await Promise.all([
|
|
28
|
+
repo.find(filter, { populate: this.support.populate(ctx), sort: page.sort, skip: page.skip, limit: page.limit }),
|
|
29
|
+
repo.count(filter),
|
|
30
|
+
]);
|
|
31
|
+
const items = await this.support.presentMany(ctx, docs);
|
|
32
|
+
const replaced = await this.services.actions.runAfter(ctx.route.actions?.after, { ...ctx.actionContext(req, "readAll"), item: items, result: items });
|
|
33
|
+
this.services.responses.success(res, {
|
|
34
|
+
message: `${ctx.modelName} list fetched successfully.`,
|
|
35
|
+
data: replaced ?? items,
|
|
36
|
+
meta: this.services.pagination.meta(page, total),
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
create = async (req, res, ctx) => {
|
|
40
|
+
await this.services.actions.runBefore(ctx.route.actions?.before, ctx.actionContext(req, "create"));
|
|
41
|
+
let body = this.services.access.writableBody(ctx.parseBody(req.body), req.user);
|
|
42
|
+
const stored = ctx.route.files?.length ? await this.services.uploads.store(req, ctx.route.files) : {};
|
|
43
|
+
body = { ...body, ...stored };
|
|
44
|
+
try {
|
|
45
|
+
const encrypted = await this.services.transformer.encrypt(body, ctx.route.encryptedFields);
|
|
46
|
+
const hashed = await this.services.transformer.hash(encrypted, ctx.route.hashedFields);
|
|
47
|
+
const doc = await this.support.repo(ctx).create(this.withOwner(ctx, hashed, req));
|
|
48
|
+
const item = await this.support.present(ctx, doc);
|
|
49
|
+
const replaced = await this.services.actions.runAfter(ctx.route.actions?.after, { ...ctx.actionContext(req, "create", { body, files: stored }), item, result: item });
|
|
50
|
+
this.services.responses.created(res, { message: `${ctx.modelName} created successfully.`, data: replaced ?? item });
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
await this.discardStored(ctx, stored);
|
|
54
|
+
throw error;
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
createBulk = async (req, res, ctx) => {
|
|
58
|
+
await this.services.actions.runBefore(ctx.route.actions?.before, ctx.actionContext(req, "createBulk"));
|
|
59
|
+
if (!Array.isArray(req.body) || req.body.length === 0) {
|
|
60
|
+
throw new BadRequestError({ message: "Send a non-empty JSON array.", code: ErrorCode.BAD_REQUEST });
|
|
61
|
+
}
|
|
62
|
+
const max = ctx.route.config?.maxBulkSize ?? DEFAULT_MAX_BULK;
|
|
63
|
+
if (req.body.length > max) {
|
|
64
|
+
throw new BadRequestError({ message: `You can create at most ${max} items at once.`, code: ErrorCode.BAD_REQUEST });
|
|
65
|
+
}
|
|
66
|
+
const rows = [];
|
|
67
|
+
for (const parsed of ctx.parseEach(req.body)) {
|
|
68
|
+
const writable = this.services.access.writableBody(parsed, req.user);
|
|
69
|
+
const encrypted = await this.services.transformer.encrypt(writable, ctx.route.encryptedFields);
|
|
70
|
+
const hashed = await this.services.transformer.hash(encrypted, ctx.route.hashedFields);
|
|
71
|
+
rows.push(this.withOwner(ctx, hashed, req));
|
|
72
|
+
}
|
|
73
|
+
const docs = await this.support.repo(ctx).createMany(rows);
|
|
74
|
+
const items = await this.support.presentMany(ctx, docs);
|
|
75
|
+
const replaced = await this.services.actions.runAfter(ctx.route.actions?.after, { ...ctx.actionContext(req, "createBulk"), item: items, result: items });
|
|
76
|
+
this.services.responses.created(res, { message: `${items.length} ${ctx.modelName} items created successfully.`, data: replaced ?? items });
|
|
77
|
+
};
|
|
78
|
+
update = async (req, res, ctx) => {
|
|
79
|
+
await this.services.actions.runBefore(ctx.route.actions?.before, ctx.actionContext(req, "update"));
|
|
80
|
+
const existing = await this.support.load(ctx, req);
|
|
81
|
+
let body = this.services.access.writableBody(ctx.parseBody(req.body), req.user);
|
|
82
|
+
const stored = ctx.route.files?.length ? await this.services.uploads.store(req, ctx.route.files) : {};
|
|
83
|
+
body = { ...body, ...stored };
|
|
84
|
+
try {
|
|
85
|
+
const encrypted = await this.services.transformer.encrypt(body, ctx.route.encryptedFields);
|
|
86
|
+
const hashed = await this.services.transformer.hash(encrypted, ctx.route.hashedFields);
|
|
87
|
+
const updated = await this.support.repo(ctx).updateById(existing._id, hashed);
|
|
88
|
+
if (!updated)
|
|
89
|
+
throw this.support.notFound(ctx);
|
|
90
|
+
// Files that were replaced are no longer referenced: remove them from storage.
|
|
91
|
+
const replacedFields = new Set(Object.keys(stored));
|
|
92
|
+
await this.services.uploads.discard(this.support.filesOf(ctx, existing).filter(({ file }) => replacedFields.size > 0 && this.isReplaced(existing, replacedFields, file.storageKey)));
|
|
93
|
+
const item = await this.support.present(ctx, updated);
|
|
94
|
+
const replaced = await this.services.actions.runAfter(ctx.route.actions?.after, { ...ctx.actionContext(req, "update", { body, files: stored }), item, result: item });
|
|
95
|
+
this.services.responses.success(res, { message: `${ctx.modelName} updated successfully.`, data: replaced ?? item });
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
await this.discardStored(ctx, stored);
|
|
99
|
+
throw error;
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
remove = async (req, res, ctx) => {
|
|
103
|
+
await this.services.actions.runBefore(ctx.route.actions?.before, ctx.actionContext(req, "remove"));
|
|
104
|
+
const existing = await this.support.load(ctx, req);
|
|
105
|
+
const removed = await this.support.repo(ctx).deleteById(existing._id);
|
|
106
|
+
if (!removed)
|
|
107
|
+
throw this.support.notFound(ctx);
|
|
108
|
+
await this.services.uploads.discard(this.support.filesOf(ctx, removed));
|
|
109
|
+
const item = await this.support.present(ctx, removed);
|
|
110
|
+
const replaced = await this.services.actions.runAfter(ctx.route.actions?.after, { ...ctx.actionContext(req, "remove"), item, result: item });
|
|
111
|
+
this.services.responses.success(res, { message: `${ctx.modelName} deleted successfully.`, data: replaced ?? item });
|
|
112
|
+
};
|
|
113
|
+
removeMultiple = async (req, res, ctx) => {
|
|
114
|
+
await this.services.actions.runBefore(ctx.route.actions?.before, ctx.actionContext(req, "removeMultiple"));
|
|
115
|
+
const field = ctx.route.config?.targetField ?? "ids";
|
|
116
|
+
const ids = req.body?.[field];
|
|
117
|
+
if (!Array.isArray(ids) || ids.length === 0 || ids.length > MAX_BATCH_DELETE || !ids.every(isObjectId)) {
|
|
118
|
+
throw new BadRequestError({
|
|
119
|
+
message: `'${field}' must be an array of 1-${MAX_BATCH_DELETE} valid ids.`,
|
|
120
|
+
code: ErrorCode.INVALID_OBJECT_ID,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
const repo = this.support.repo(ctx);
|
|
124
|
+
const filter = { ...this.services.access.scopeFilter(ctx.route, req.user), _id: { $in: [...new Set(ids)] } };
|
|
125
|
+
const docs = await this.documentsWithFiles(ctx, filter);
|
|
126
|
+
const deleted = await repo.deleteMany(filter);
|
|
127
|
+
await this.services.uploads.discard(docs.flatMap((doc) => this.support.filesOf(ctx, doc)));
|
|
128
|
+
const replaced = await this.services.actions.runAfter(ctx.route.actions?.after, { ...ctx.actionContext(req, "removeMultiple"), item: { deleted }, result: { deleted } });
|
|
129
|
+
this.services.responses.success(res, { message: `${deleted} ${ctx.modelName} items deleted.`, data: replaced ?? { deleted } });
|
|
130
|
+
};
|
|
131
|
+
removeAll = async (req, res, ctx) => {
|
|
132
|
+
await this.services.actions.runBefore(ctx.route.actions?.before, ctx.actionContext(req, "removeAll"));
|
|
133
|
+
const repo = this.support.repo(ctx);
|
|
134
|
+
const filter = this.services.access.scopeFilter(ctx.route, req.user);
|
|
135
|
+
const docs = await this.documentsWithFiles(ctx, filter);
|
|
136
|
+
const deleted = await repo.deleteMany(filter);
|
|
137
|
+
await this.services.uploads.discard(docs.flatMap((doc) => this.support.filesOf(ctx, doc)));
|
|
138
|
+
const replaced = await this.services.actions.runAfter(ctx.route.actions?.after, { ...ctx.actionContext(req, "removeAll"), item: { deleted }, result: { deleted } });
|
|
139
|
+
this.services.responses.success(res, { message: `${deleted} ${ctx.modelName} items deleted.`, data: replaced ?? { deleted } });
|
|
140
|
+
};
|
|
141
|
+
/** Startup check: `removeAll` on an open route would let anyone empty the collection. */
|
|
142
|
+
assertSafeRoute(route) {
|
|
143
|
+
if (route.handler === "removeAll" && (route.auth === "public" || route.auth === "authenticated")) {
|
|
144
|
+
return ["'removeAll' must use auth 'admin' or 'admin-or-owner' - otherwise any caller could wipe the whole collection."];
|
|
145
|
+
}
|
|
146
|
+
return [];
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Startup check for `config.populate` and `config.populateSelect`. A name that is not a reference would only fail on
|
|
150
|
+
* the first request, as a generic 500 from Mongoose, and a `populateSelect` that lists what to leave out (or nothing)
|
|
151
|
+
* would return every field of the referenced documents, including fields added to their schema later.
|
|
152
|
+
*/
|
|
153
|
+
assertPopulate(collection, route) {
|
|
154
|
+
const { populate, populateSelect } = route.config ?? {};
|
|
155
|
+
if (populate === undefined || populate === false)
|
|
156
|
+
return [];
|
|
157
|
+
const names = typeof populate === "string" ? populate.split(/\s+/).filter(Boolean) : [];
|
|
158
|
+
if (names.length === 0)
|
|
159
|
+
return ["'populate' must be the name of a field of the schema (or false)."];
|
|
160
|
+
const problems = [];
|
|
161
|
+
const schema = collection.schema ?? {};
|
|
162
|
+
for (const name of names) {
|
|
163
|
+
const [head = ""] = name.split(".");
|
|
164
|
+
if (!(head in schema)) {
|
|
165
|
+
problems.push(`'populate' names '${name}', which is not a field of the schema.`);
|
|
166
|
+
continue;
|
|
167
|
+
}
|
|
168
|
+
if (name.includes("."))
|
|
169
|
+
continue; // a path inside a subdocument: Mongoose resolves it
|
|
170
|
+
const reference = referenceOf(schema[head]);
|
|
171
|
+
if (!reference) {
|
|
172
|
+
problems.push(`'populate' names '${name}', which is not a reference. Declare it with a ref, for example { type: "ObjectId", ref: "User" }.`);
|
|
173
|
+
}
|
|
174
|
+
else if (typeof reference.ref === "string" && !this.services.data.has(reference.ref)) {
|
|
175
|
+
problems.push(`'populate' names '${name}', which refers to the model '${reference.ref}'. No collection or sign-in configuration declares a model with that name.`);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
if (populateSelect !== undefined) {
|
|
179
|
+
const fieldNames = typeof populateSelect === "string" ? populateSelect.split(/\s+/).filter(Boolean) : [];
|
|
180
|
+
if (fieldNames.length === 0) {
|
|
181
|
+
problems.push("'populateSelect' must list the fields to return, for example \"_id name\". Empty, it would return every field.");
|
|
182
|
+
}
|
|
183
|
+
else if (fieldNames.some((f) => f.startsWith("-") || f.startsWith("+"))) {
|
|
184
|
+
problems.push("'populateSelect' lists the fields to return. A name that starts with '-' or '+' is not allowed, because leaving fields out would expose every field added later.");
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return problems;
|
|
188
|
+
}
|
|
189
|
+
withOwner(ctx, data, req) {
|
|
190
|
+
// The owner always comes from the session, never from the request body.
|
|
191
|
+
return ctx.collection.schema && "owner" in ctx.collection.schema
|
|
192
|
+
? { ...data, ...this.services.access.ownerStamp(req.user) }
|
|
193
|
+
: data;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* The documents a batch delete is about to remove, loaded only when the collection stores files that must be
|
|
197
|
+
* removed with them. Without file fields nothing needs the documents, so `removeAll` no longer reads a whole
|
|
198
|
+
* collection into memory just to delete it.
|
|
199
|
+
*/
|
|
200
|
+
async documentsWithFiles(ctx, filter) {
|
|
201
|
+
return this.support.fileFields(ctx).length > 0 ? [...(await this.support.repo(ctx).find(filter))] : [];
|
|
202
|
+
}
|
|
203
|
+
async discardStored(ctx, stored) {
|
|
204
|
+
const providers = new Map((ctx.route.files ?? []).map((f) => [f.schemaField, f.provider]));
|
|
205
|
+
await this.services.uploads.discard(Object.entries(stored).flatMap(([field, files]) => files.map((file) => ({ file, provider: providers.get(field) }))));
|
|
206
|
+
}
|
|
207
|
+
isReplaced(existing, replacedFields, storageKey) {
|
|
208
|
+
return [...replacedFields].some((field) => {
|
|
209
|
+
const list = existing[field];
|
|
210
|
+
return Array.isArray(list) && list.some((f) => f.storageKey === storageKey);
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
//# sourceMappingURL=CrudController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CrudController.js","sourceRoot":"","sources":["../../src/crud/CrudController.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { FeatureModule, type HandlerFn } from "../core/FeatureModule.js";
|
|
2
|
+
import type { Services } from "../core/Services.js";
|
|
3
|
+
import type { Collection } from "../types/Collection.js";
|
|
4
|
+
import type { Route } from "../types/Route.js";
|
|
5
|
+
/** `type: "crud"` collections: database handlers and file handlers. */
|
|
6
|
+
export declare class CrudModule extends FeatureModule {
|
|
7
|
+
readonly type = "crud";
|
|
8
|
+
private readonly crud;
|
|
9
|
+
private readonly files;
|
|
10
|
+
constructor(services: Services);
|
|
11
|
+
protected handlers(): Readonly<Record<string, HandlerFn>>;
|
|
12
|
+
prepare(collection: Collection): void;
|
|
13
|
+
protected validateRoute(collection: Collection, route: Route): string[];
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=CrudModule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CrudModule.d.ts","sourceRoot":"","sources":["../../src/crud/CrudModule.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAI/C,uEAAuE;AACvE,qBAAa,UAAW,SAAQ,aAAa;IAC3C,QAAQ,CAAC,IAAI,UAAU;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IACtC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiB;IAEvC,YAAY,QAAQ,EAAE,QAAQ,EAI7B;IAED,SAAS,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAcxD;IAEQ,OAAO,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAQ7C;IAED,UAAmB,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,CAO/E;CACF"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { ConfigurationError } from "../errors/index.js";
|
|
2
|
+
import { FeatureModule } from "../core/FeatureModule.js";
|
|
3
|
+
import { CrudController } from "./CrudController.js";
|
|
4
|
+
import { FileController } from "./FileController.js";
|
|
5
|
+
/** `type: "crud"` collections: database handlers and file handlers. */
|
|
6
|
+
export class CrudModule extends FeatureModule {
|
|
7
|
+
type = "crud";
|
|
8
|
+
crud;
|
|
9
|
+
files;
|
|
10
|
+
constructor(services) {
|
|
11
|
+
super(services);
|
|
12
|
+
this.crud = new CrudController(services);
|
|
13
|
+
this.files = new FileController(services);
|
|
14
|
+
}
|
|
15
|
+
handlers() {
|
|
16
|
+
return {
|
|
17
|
+
read: this.crud.read,
|
|
18
|
+
readAll: this.crud.readAll,
|
|
19
|
+
create: this.crud.create,
|
|
20
|
+
createBulk: this.crud.createBulk,
|
|
21
|
+
update: this.crud.update,
|
|
22
|
+
remove: this.crud.remove,
|
|
23
|
+
removeMultiple: this.crud.removeMultiple,
|
|
24
|
+
removeAll: this.crud.removeAll,
|
|
25
|
+
addFile: this.files.addFile,
|
|
26
|
+
updateFile: this.files.updateFile,
|
|
27
|
+
deleteFile: this.files.deleteFile,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
prepare(collection) {
|
|
31
|
+
if (!collection.model || !collection.schema) {
|
|
32
|
+
throw new ConfigurationError({
|
|
33
|
+
message: `The '${collection.route}' crud collection needs both 'model' and 'schema'.`,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
this.services.data.register({ name: collection.model, schema: collection.schema });
|
|
37
|
+
this.services.sanitizer.addSecrets(this.services.compiler.secretFieldsOf(collection.schema));
|
|
38
|
+
}
|
|
39
|
+
validateRoute(collection, route) {
|
|
40
|
+
const problems = [...this.crud.assertSafeRoute(route), ...this.crud.assertPopulate(collection, route)];
|
|
41
|
+
if (["updateFile", "deleteFile"].includes(route.handler) && route.files?.length !== 1) {
|
|
42
|
+
problems.push(`'${route.handler}' needs exactly one entry in 'files'.`);
|
|
43
|
+
}
|
|
44
|
+
if (route.handler === "addFile" && !route.files?.length)
|
|
45
|
+
problems.push("'addFile' needs at least one entry in 'files'.");
|
|
46
|
+
return problems;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=CrudModule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CrudModule.js","sourceRoot":"","sources":["../../src/crud/CrudModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAkB,MAAM,0BAA0B,CAAC;AAIzE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,uEAAuE;AACvE,MAAM,OAAO,UAAW,SAAQ,aAAa;IAClC,IAAI,GAAG,MAAM,CAAC;IACN,IAAI,CAAiB;IACrB,KAAK,CAAiB;IAEvC,YAAY,QAAkB;QAC5B,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,GAAG,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAES,QAAQ;QAChB,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;YACpB,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;YAC1B,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;YACxB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU;YAChC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;YACxB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;YACxB,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc;YACxC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;YAC9B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;YAC3B,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;YACjC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;SAClC,CAAC;IACJ,CAAC;IAEQ,OAAO,CAAC,UAAsB;QACrC,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YAC5C,MAAM,IAAI,kBAAkB,CAAC;gBAC3B,OAAO,EAAE,QAAQ,UAAU,CAAC,KAAK,oDAAoD;aACtF,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QACnF,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/F,CAAC;IAEkB,aAAa,CAAC,UAAsB,EAAE,KAAY;QACnE,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;QACvG,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,EAAE,CAAC;YACtF,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,uCAAuC,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM;YAAE,QAAQ,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QACzH,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { Request } from "express";
|
|
2
|
+
import { NotFoundError } from "../errors/index.js";
|
|
3
|
+
import type { Doc, PopulateOption, Repository } from "../data/Repository.js";
|
|
4
|
+
import type { RouteContext } from "../core/RouteContext.js";
|
|
5
|
+
import type { Services } from "../core/Services.js";
|
|
6
|
+
import type { StoredFile } from "../upload/UploadService.js";
|
|
7
|
+
import type { UploadProvider } from "../types/upload.js";
|
|
8
|
+
/** Small helpers shared by the CRUD and file controllers. */
|
|
9
|
+
export declare class CrudSupport {
|
|
10
|
+
private readonly services;
|
|
11
|
+
constructor(services: Services);
|
|
12
|
+
repo(ctx: RouteContext): Repository;
|
|
13
|
+
/** The `:id` URL parameter, validated as an ObjectId. */
|
|
14
|
+
id(req: Request): string;
|
|
15
|
+
populate(ctx: RouteContext): PopulateOption | undefined;
|
|
16
|
+
/** Loads a document the caller is allowed to see, or throws 404 / 403. */
|
|
17
|
+
load(ctx: RouteContext, req: Request): Promise<Doc>;
|
|
18
|
+
notFound(ctx: RouteContext): NotFoundError;
|
|
19
|
+
/**
|
|
20
|
+
* Fields hashed by *any* route of the collection. They are write-only: a hash must not be
|
|
21
|
+
* returned by sibling routes (e.g. a list route) just because they do not declare it.
|
|
22
|
+
*/
|
|
23
|
+
hashedFields(ctx: RouteContext): string[];
|
|
24
|
+
/** Decrypts requested fields and removes everything private. */
|
|
25
|
+
present(ctx: RouteContext, doc: Doc): Promise<Record<string, unknown>>;
|
|
26
|
+
presentMany(ctx: RouteContext, docs: readonly Doc[]): Promise<Record<string, unknown>[]>;
|
|
27
|
+
/**
|
|
28
|
+
* Fields clients may sort by. The order of a list reveals how the values compare, so a client may only
|
|
29
|
+
* sort by fields it could read anyway: secrets (`select: false`), fields hashed or encrypted by any route of
|
|
30
|
+
* the collection, and fields this route hides are all excluded.
|
|
31
|
+
*/
|
|
32
|
+
sortable(ctx: RouteContext): string[];
|
|
33
|
+
/** Every file field a collection declares across all its routes. */
|
|
34
|
+
fileFields(ctx: RouteContext): Array<{
|
|
35
|
+
field: string;
|
|
36
|
+
provider: UploadProvider | undefined;
|
|
37
|
+
}>;
|
|
38
|
+
/** Stored files referenced by a document, ready for cleanup. */
|
|
39
|
+
filesOf(ctx: RouteContext, doc: Doc): Array<{
|
|
40
|
+
file: StoredFile;
|
|
41
|
+
provider: UploadProvider | undefined;
|
|
42
|
+
}>;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=CrudSupport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CrudSupport.d.ts","sourceRoot":"","sources":["../../src/crud/CrudSupport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAkD,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnG,OAAO,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,6DAA6D;AAC7D,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAArC,YAA6B,QAAQ,EAAE,QAAQ,EAAI;IAEnD,IAAI,CAAC,GAAG,EAAE,YAAY,GAAG,UAAU,CAOlC;IAED,yDAAyD;IACzD,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAMvB;IAED,QAAQ,CAAC,GAAG,EAAE,YAAY,GAAG,cAAc,GAAG,SAAS,CAKtD;IAED,0EAA0E;IACpE,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAKxD;IAED,QAAQ,CAAC,GAAG,EAAE,YAAY,GAAG,aAAa,CAEzC;IAED;;;OAGG;IACH,YAAY,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,EAAE,CAExC;IAED,gEAAgE;IAC1D,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAO3E;IAEK,WAAW,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAE7F;IAED;;;;OAIG;IACH,QAAQ,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,EAAE,CASpC;IAED,oEAAoE;IACpE,UAAU,CAAC,GAAG,EAAE,YAAY,GAAG,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,cAAc,GAAG,SAAS,CAAA;KAAE,CAAC,CAM5F;IAED,gEAAgE;IAChE,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,QAAQ,EAAE,cAAc,GAAG,SAAS,CAAA;KAAE,CAAC,CAQtG;CACF"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { BadRequestError, ConfigurationError, ErrorCode, NotFoundError } from "../errors/index.js";
|
|
2
|
+
import { parseFieldSpec } from "../core/FieldTransformer.js";
|
|
3
|
+
import { isObjectId } from "../utils/ids.js";
|
|
4
|
+
/** Small helpers shared by the CRUD and file controllers. */
|
|
5
|
+
export class CrudSupport {
|
|
6
|
+
services;
|
|
7
|
+
constructor(services) {
|
|
8
|
+
this.services = services;
|
|
9
|
+
}
|
|
10
|
+
repo(ctx) {
|
|
11
|
+
if (!ctx.repository) {
|
|
12
|
+
throw new ConfigurationError({
|
|
13
|
+
message: `The '${ctx.collection.route}' collection needs a 'model' and a 'schema'.`,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
return ctx.repository;
|
|
17
|
+
}
|
|
18
|
+
/** The `:id` URL parameter, validated as an ObjectId. */
|
|
19
|
+
id(req) {
|
|
20
|
+
const id = req.params.id;
|
|
21
|
+
if (!isObjectId(id)) {
|
|
22
|
+
throw new BadRequestError({ message: "The id in the URL is not valid.", code: ErrorCode.INVALID_OBJECT_ID });
|
|
23
|
+
}
|
|
24
|
+
return id;
|
|
25
|
+
}
|
|
26
|
+
populate(ctx) {
|
|
27
|
+
const path = ctx.route.config?.populate;
|
|
28
|
+
if (!path)
|
|
29
|
+
return undefined;
|
|
30
|
+
// Only ids are returned by default so referenced documents never leak e-mails or other personal data.
|
|
31
|
+
return { path, select: ctx.route.config?.populateSelect ?? "_id" };
|
|
32
|
+
}
|
|
33
|
+
/** Loads a document the caller is allowed to see, or throws 404 / 403. */
|
|
34
|
+
async load(ctx, req) {
|
|
35
|
+
const doc = await this.repo(ctx).findById(this.id(req), { populate: this.populate(ctx) });
|
|
36
|
+
if (!doc)
|
|
37
|
+
throw this.notFound(ctx);
|
|
38
|
+
this.services.access.assertCanAccess(ctx.route, req.user, doc);
|
|
39
|
+
return doc;
|
|
40
|
+
}
|
|
41
|
+
notFound(ctx) {
|
|
42
|
+
return new NotFoundError({ message: `${ctx.modelName} not found.`, code: ErrorCode.RESOURCE_NOT_FOUND });
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Fields hashed by *any* route of the collection. They are write-only: a hash must not be
|
|
46
|
+
* returned by sibling routes (e.g. a list route) just because they do not declare it.
|
|
47
|
+
*/
|
|
48
|
+
hashedFields(ctx) {
|
|
49
|
+
return ctx.collection.routes.flatMap((r) => (r.hashedFields ?? []).map((f) => f.replace(/\?$/, "")));
|
|
50
|
+
}
|
|
51
|
+
/** Decrypts requested fields and removes everything private. */
|
|
52
|
+
async present(ctx, doc) {
|
|
53
|
+
const hiddenFields = [...(ctx.route.config?.hiddenFields ?? []), ...this.hashedFields(ctx)];
|
|
54
|
+
// A hidden field is never returned, so it is not decrypted either, even when the route lists it in `decryptedFields`.
|
|
55
|
+
const decryptable = (ctx.route.decryptedFields ?? []).filter((spec) => !hiddenFields.includes(parseFieldSpec(spec).name));
|
|
56
|
+
const plain = await this.services.transformer.decrypt(doc, decryptable);
|
|
57
|
+
const clean = this.services.sanitizer.one(doc, { hiddenFields });
|
|
58
|
+
return { ...clean, ...plain };
|
|
59
|
+
}
|
|
60
|
+
async presentMany(ctx, docs) {
|
|
61
|
+
return Promise.all(docs.map((doc) => this.present(ctx, doc)));
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Fields clients may sort by. The order of a list reveals how the values compare, so a client may only
|
|
65
|
+
* sort by fields it could read anyway: secrets (`select: false`), fields hashed or encrypted by any route of
|
|
66
|
+
* the collection, and fields this route hides are all excluded.
|
|
67
|
+
*/
|
|
68
|
+
sortable(ctx) {
|
|
69
|
+
const bare = (names) => (names ?? []).map((f) => f.replace(/\?$/, ""));
|
|
70
|
+
const schema = ctx.collection.schema;
|
|
71
|
+
const blocked = new Set([
|
|
72
|
+
...(schema ? this.services.compiler.secretFieldsOf(schema) : []),
|
|
73
|
+
...ctx.collection.routes.flatMap((r) => [...bare(r.encryptedFields), ...bare(r.hashedFields)]),
|
|
74
|
+
...bare(ctx.route.config?.hiddenFields),
|
|
75
|
+
]);
|
|
76
|
+
return Object.keys(schema ?? {}).filter((f) => !blocked.has(f));
|
|
77
|
+
}
|
|
78
|
+
/** Every file field a collection declares across all its routes. */
|
|
79
|
+
fileFields(ctx) {
|
|
80
|
+
const seen = new Map();
|
|
81
|
+
for (const route of ctx.collection.routes) {
|
|
82
|
+
for (const file of route.files ?? [])
|
|
83
|
+
seen.set(file.schemaField, file.provider);
|
|
84
|
+
}
|
|
85
|
+
return [...seen].map(([field, provider]) => ({ field, provider }));
|
|
86
|
+
}
|
|
87
|
+
/** Stored files referenced by a document, ready for cleanup. */
|
|
88
|
+
filesOf(ctx, doc) {
|
|
89
|
+
return this.fileFields(ctx).flatMap(({ field, provider }) => {
|
|
90
|
+
const value = doc[field];
|
|
91
|
+
const list = Array.isArray(value) ? value : [];
|
|
92
|
+
return list
|
|
93
|
+
.filter((f) => typeof f === "object" && f !== null && typeof f.storageKey === "string" && f.storageKey !== "")
|
|
94
|
+
.map((file) => ({ file, provider }));
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=CrudSupport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CrudSupport.js","sourceRoot":"","sources":["../../src/crud/CrudSupport.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Request, Response } from "express";
|
|
2
|
+
import type { RouteContext } from "../core/RouteContext.js";
|
|
3
|
+
import type { Services } from "../core/Services.js";
|
|
4
|
+
/** `addFile`, `updateFile` and `deleteFile`: manage the files attached to one document. */
|
|
5
|
+
export declare class FileController {
|
|
6
|
+
private readonly services;
|
|
7
|
+
private readonly support;
|
|
8
|
+
constructor(services: Services);
|
|
9
|
+
addFile: (req: Request, res: Response, ctx: RouteContext) => Promise<void>;
|
|
10
|
+
updateFile: (req: Request, res: Response, ctx: RouteContext) => Promise<void>;
|
|
11
|
+
deleteFile: (req: Request, res: Response, ctx: RouteContext) => Promise<void>;
|
|
12
|
+
private respond;
|
|
13
|
+
private uploadsOf;
|
|
14
|
+
private fileId;
|
|
15
|
+
private list;
|
|
16
|
+
private fileNotFound;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=FileController.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileController.d.ts","sourceRoot":"","sources":["../../src/crud/FileController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAOpD,2FAA2F;AAC3F,qBAAa,cAAc;IAGb,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAFrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IAEtC,YAA6B,QAAQ,EAAE,QAAQ,EAE9C;IAED,OAAO,QAAe,OAAO,OAAO,QAAQ,OAAO,YAAY,KAAG,OAAO,CAAC,IAAI,CAAC,CA6B7E;IAEF,UAAU,QAAe,OAAO,OAAO,QAAQ,OAAO,YAAY,KAAG,OAAO,CAAC,IAAI,CAAC,CAyBhF;IAEF,UAAU,QAAe,OAAO,OAAO,QAAQ,OAAO,YAAY,KAAG,OAAO,CAAC,IAAI,CAAC,CAiBhF;YAEY,OAAO;IAiBrB,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,YAAY;CAGrB"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { BadRequestError, ConflictError, ErrorCode, NotFoundError } from "../errors/index.js";
|
|
2
|
+
import { idToString, isObjectId } from "../utils/ids.js";
|
|
3
|
+
import { CrudSupport } from "./CrudSupport.js";
|
|
4
|
+
/** `addFile`, `updateFile` and `deleteFile`: manage the files attached to one document. */
|
|
5
|
+
export class FileController {
|
|
6
|
+
services;
|
|
7
|
+
support;
|
|
8
|
+
constructor(services) {
|
|
9
|
+
this.services = services;
|
|
10
|
+
this.support = new CrudSupport(services);
|
|
11
|
+
}
|
|
12
|
+
addFile = async (req, res, ctx) => {
|
|
13
|
+
await this.services.actions.runBefore(ctx.route.actions?.before, ctx.actionContext(req, "addFile"));
|
|
14
|
+
const uploads = this.uploadsOf(ctx);
|
|
15
|
+
const doc = await this.support.load(ctx, req);
|
|
16
|
+
const stored = await this.services.uploads.store(req, uploads, { requireAll: true });
|
|
17
|
+
try {
|
|
18
|
+
const changes = {};
|
|
19
|
+
for (const upload of uploads) {
|
|
20
|
+
const current = this.list(doc[upload.schemaField]);
|
|
21
|
+
const added = stored[upload.schemaField] ?? [];
|
|
22
|
+
const limit = upload.multiple ? this.services.config.upload.maxFiles : 1;
|
|
23
|
+
if (current.length + added.length > limit) {
|
|
24
|
+
throw new ConflictError({
|
|
25
|
+
message: upload.multiple
|
|
26
|
+
? `'${upload.schemaField}' can hold at most ${limit} files.`
|
|
27
|
+
: `'${upload.schemaField}' already has a file.`,
|
|
28
|
+
hint: upload.multiple ? "Delete a file first." : "Use the updateFile route to replace it.",
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
changes[upload.schemaField] = [...current, ...added];
|
|
32
|
+
}
|
|
33
|
+
const updated = await this.support.repo(ctx).updateById(doc._id, changes);
|
|
34
|
+
if (!updated)
|
|
35
|
+
throw this.support.notFound(ctx);
|
|
36
|
+
await this.respond(req, res, ctx, "addFile", updated, "File added successfully.", stored);
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
await this.services.uploads.discard(this.services.uploads.flatten(stored).map((file) => ({ file, provider: uploads[0]?.provider })));
|
|
40
|
+
throw error;
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
updateFile = async (req, res, ctx) => {
|
|
44
|
+
await this.services.actions.runBefore(ctx.route.actions?.before, ctx.actionContext(req, "updateFile"));
|
|
45
|
+
const [upload] = this.uploadsOf(ctx, 1);
|
|
46
|
+
const fileId = this.fileId(req, upload);
|
|
47
|
+
const doc = await this.support.load(ctx, req);
|
|
48
|
+
const current = this.list(doc[upload.schemaField]);
|
|
49
|
+
const index = current.findIndex((f) => idToString(f._id) === fileId);
|
|
50
|
+
if (index === -1)
|
|
51
|
+
throw this.fileNotFound(upload);
|
|
52
|
+
const stored = await this.services.uploads.store(req, [upload], { requireAll: true });
|
|
53
|
+
const replacement = stored[upload.schemaField]?.[0];
|
|
54
|
+
try {
|
|
55
|
+
const next = [...current];
|
|
56
|
+
next[index] = replacement;
|
|
57
|
+
const updated = await this.support.repo(ctx).updateById(doc._id, { [upload.schemaField]: next });
|
|
58
|
+
if (!updated)
|
|
59
|
+
throw this.support.notFound(ctx);
|
|
60
|
+
const old = current[index];
|
|
61
|
+
if (old?.storageKey)
|
|
62
|
+
await this.services.uploads.discard([{ file: old, provider: upload.provider }]);
|
|
63
|
+
await this.respond(req, res, ctx, "updateFile", updated, "File updated successfully.", stored);
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
await this.services.uploads.discard(this.services.uploads.flatten(stored).map((file) => ({ file, provider: upload.provider })));
|
|
67
|
+
throw error;
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
deleteFile = async (req, res, ctx) => {
|
|
71
|
+
await this.services.actions.runBefore(ctx.route.actions?.before, ctx.actionContext(req, "deleteFile"));
|
|
72
|
+
const [upload] = this.uploadsOf(ctx, 1);
|
|
73
|
+
const fileId = this.fileId(req, upload);
|
|
74
|
+
const doc = await this.support.load(ctx, req);
|
|
75
|
+
const current = this.list(doc[upload.schemaField]);
|
|
76
|
+
const target = current.find((f) => idToString(f._id) === fileId);
|
|
77
|
+
if (!target)
|
|
78
|
+
throw this.fileNotFound(upload);
|
|
79
|
+
const updated = await this.support.repo(ctx).updateById(doc._id, {
|
|
80
|
+
[upload.schemaField]: current.filter((f) => f !== target),
|
|
81
|
+
});
|
|
82
|
+
if (!updated)
|
|
83
|
+
throw this.support.notFound(ctx);
|
|
84
|
+
if (target.storageKey)
|
|
85
|
+
await this.services.uploads.discard([{ file: target, provider: upload.provider }]);
|
|
86
|
+
await this.respond(req, res, ctx, "deleteFile", updated, "File deleted successfully.");
|
|
87
|
+
};
|
|
88
|
+
async respond(req, res, ctx, operation, doc, message, stored = {}) {
|
|
89
|
+
const item = await this.support.present(ctx, doc);
|
|
90
|
+
const replaced = await this.services.actions.runAfter(ctx.route.actions?.after, { ...ctx.actionContext(req, operation, { files: stored }), item, result: item });
|
|
91
|
+
this.services.responses.success(res, { message, data: replaced ?? item });
|
|
92
|
+
}
|
|
93
|
+
uploadsOf(ctx, exactly) {
|
|
94
|
+
const uploads = ctx.route.files ?? [];
|
|
95
|
+
if (uploads.length === 0 || (exactly !== undefined && uploads.length !== exactly)) {
|
|
96
|
+
throw new BadRequestError({
|
|
97
|
+
message: `${ctx.label} needs ${exactly === 1 ? "exactly one" : "at least one"} entry in 'files'.`,
|
|
98
|
+
code: ErrorCode.CONFIGURATION_ERROR,
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
return uploads;
|
|
102
|
+
}
|
|
103
|
+
fileId(req, upload) {
|
|
104
|
+
const key = upload.validationKey ?? "fileId";
|
|
105
|
+
const value = req.body?.[key];
|
|
106
|
+
if (!isObjectId(value)) {
|
|
107
|
+
throw new BadRequestError({ message: `'${key}' must be the id of a stored file.`, code: ErrorCode.INVALID_OBJECT_ID });
|
|
108
|
+
}
|
|
109
|
+
return value;
|
|
110
|
+
}
|
|
111
|
+
list(value) {
|
|
112
|
+
return Array.isArray(value) ? value : [];
|
|
113
|
+
}
|
|
114
|
+
fileNotFound(upload) {
|
|
115
|
+
return new NotFoundError({ message: `No such file in '${upload.schemaField}'.`, code: ErrorCode.FILE_NOT_FOUND });
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=FileController.js.map
|