@dofe/infra-common 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/base.adapter.d.ts +84 -0
- package/dist/adapters/base.adapter.d.ts.map +1 -0
- package/dist/adapters/base.adapter.js +19 -0
- package/dist/adapters/base.adapter.js.map +1 -0
- package/dist/adapters/index.d.ts +35 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +53 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/common.module.d.ts +7 -0
- package/dist/common.module.d.ts.map +1 -0
- package/dist/common.module.js +26 -0
- package/dist/common.module.js.map +1 -0
- package/dist/config/agentx.config.d.ts +37 -0
- package/dist/config/agentx.config.d.ts.map +1 -0
- package/dist/config/agentx.config.js +81 -0
- package/dist/config/agentx.config.js.map +1 -0
- package/dist/config/configuration.d.ts +55 -0
- package/dist/config/configuration.d.ts.map +1 -0
- package/dist/config/configuration.js +336 -0
- package/dist/config/configuration.js.map +1 -0
- package/dist/config/constant/config.constants.d.ts +48 -0
- package/dist/config/constant/config.constants.d.ts.map +1 -0
- package/dist/config/constant/config.constants.js +86 -0
- package/dist/config/constant/config.constants.js.map +1 -0
- package/dist/config/dto/config.dto.d.ts +222 -0
- package/dist/config/dto/config.dto.d.ts.map +1 -0
- package/dist/config/dto/config.dto.js +42 -0
- package/dist/config/dto/config.dto.js.map +1 -0
- package/dist/config/env-config.service.d.ts +147 -0
- package/dist/config/env-config.service.d.ts.map +1 -0
- package/dist/config/env-config.service.js +296 -0
- package/dist/config/env-config.service.js.map +1 -0
- package/dist/config/features/feature-errors.d.ts +13 -0
- package/dist/config/features/feature-errors.d.ts.map +1 -0
- package/dist/config/features/feature-errors.js +25 -0
- package/dist/config/features/feature-errors.js.map +1 -0
- package/dist/config/features/feature-registry.d.ts +26 -0
- package/dist/config/features/feature-registry.d.ts.map +1 -0
- package/dist/config/features/feature-registry.js +172 -0
- package/dist/config/features/feature-registry.js.map +1 -0
- package/dist/config/features/index.d.ts +4 -0
- package/dist/config/features/index.d.ts.map +1 -0
- package/dist/config/features/index.js +9 -0
- package/dist/config/features/index.js.map +1 -0
- package/dist/config/validation/env.validation.d.ts +132 -0
- package/dist/config/validation/env.validation.d.ts.map +1 -0
- package/dist/config/validation/env.validation.js +304 -0
- package/dist/config/validation/env.validation.js.map +1 -0
- package/dist/config/validation/index.d.ts +21 -0
- package/dist/config/validation/index.d.ts.map +1 -0
- package/dist/config/validation/index.js +119 -0
- package/dist/config/validation/index.js.map +1 -0
- package/dist/config/validation/keys.validation.d.ts +884 -0
- package/dist/config/validation/keys.validation.d.ts.map +1 -0
- package/dist/config/validation/keys.validation.js +506 -0
- package/dist/config/validation/keys.validation.js.map +1 -0
- package/dist/config/validation/yaml.validation.d.ts +765 -0
- package/dist/config/validation/yaml.validation.d.ts.map +1 -0
- package/dist/config/validation/yaml.validation.js +488 -0
- package/dist/config/validation/yaml.validation.js.map +1 -0
- package/dist/config/vendor.config.d.ts +48 -0
- package/dist/config/vendor.config.d.ts.map +1 -0
- package/dist/config/vendor.config.js +136 -0
- package/dist/config/vendor.config.js.map +1 -0
- package/dist/decorators/api-key/api-key.decorator.d.ts +25 -0
- package/dist/decorators/api-key/api-key.decorator.d.ts.map +1 -0
- package/dist/decorators/api-key/api-key.decorator.js +30 -0
- package/dist/decorators/api-key/api-key.decorator.js.map +1 -0
- package/dist/decorators/api-key/index.d.ts +2 -0
- package/dist/decorators/api-key/index.d.ts.map +1 -0
- package/dist/decorators/api-key/index.js +18 -0
- package/dist/decorators/api-key/index.js.map +1 -0
- package/dist/decorators/app-version/app-version.controller.d.ts +30 -0
- package/dist/decorators/app-version/app-version.controller.d.ts.map +1 -0
- package/dist/decorators/app-version/app-version.controller.js +159 -0
- package/dist/decorators/app-version/app-version.controller.js.map +1 -0
- package/dist/decorators/app-version/app-version.interceptor.d.ts +15 -0
- package/dist/decorators/app-version/app-version.interceptor.d.ts.map +1 -0
- package/dist/decorators/app-version/app-version.interceptor.js +42 -0
- package/dist/decorators/app-version/app-version.interceptor.js.map +1 -0
- package/dist/decorators/app-version/app-version.module.d.ts +8 -0
- package/dist/decorators/app-version/app-version.module.d.ts.map +1 -0
- package/dist/decorators/app-version/app-version.module.js +39 -0
- package/dist/decorators/app-version/app-version.module.js.map +1 -0
- package/dist/decorators/app-version/app-version.service.d.ts +88 -0
- package/dist/decorators/app-version/app-version.service.d.ts.map +1 -0
- package/dist/decorators/app-version/app-version.service.js +251 -0
- package/dist/decorators/app-version/app-version.service.js.map +1 -0
- package/dist/decorators/app-version/index.d.ts +8 -0
- package/dist/decorators/app-version/index.d.ts.map +1 -0
- package/dist/decorators/app-version/index.js +15 -0
- package/dist/decorators/app-version/index.js.map +1 -0
- package/dist/decorators/audit-log.decorator.d.ts +41 -0
- package/dist/decorators/audit-log.decorator.d.ts.map +1 -0
- package/dist/decorators/audit-log.decorator.js +19 -0
- package/dist/decorators/audit-log.decorator.js.map +1 -0
- package/dist/decorators/cache/cache.decorator.d.ts +256 -0
- package/dist/decorators/cache/cache.decorator.d.ts.map +1 -0
- package/dist/decorators/cache/cache.decorator.js +339 -0
- package/dist/decorators/cache/cache.decorator.js.map +1 -0
- package/dist/decorators/cache/cache.interceptor.d.ts +43 -0
- package/dist/decorators/cache/cache.interceptor.d.ts.map +1 -0
- package/dist/decorators/cache/cache.interceptor.js +219 -0
- package/dist/decorators/cache/cache.interceptor.js.map +1 -0
- package/dist/decorators/cache/cache.module.d.ts +9 -0
- package/dist/decorators/cache/cache.module.d.ts.map +1 -0
- package/dist/decorators/cache/cache.module.js +36 -0
- package/dist/decorators/cache/cache.module.js.map +1 -0
- package/dist/decorators/cache/index.d.ts +7 -0
- package/dist/decorators/cache/index.d.ts.map +1 -0
- package/dist/decorators/cache/index.js +32 -0
- package/dist/decorators/cache/index.js.map +1 -0
- package/dist/decorators/data-visibility/data-visibility.decorator.d.ts +74 -0
- package/dist/decorators/data-visibility/data-visibility.decorator.d.ts.map +1 -0
- package/dist/decorators/data-visibility/data-visibility.decorator.js +87 -0
- package/dist/decorators/data-visibility/data-visibility.decorator.js.map +1 -0
- package/dist/decorators/data-visibility/index.d.ts +2 -0
- package/dist/decorators/data-visibility/index.d.ts.map +1 -0
- package/dist/decorators/data-visibility/index.js +18 -0
- package/dist/decorators/data-visibility/index.js.map +1 -0
- package/dist/decorators/event/event.decorator.d.ts +152 -0
- package/dist/decorators/event/event.decorator.d.ts.map +1 -0
- package/dist/decorators/event/event.decorator.js +158 -0
- package/dist/decorators/event/event.decorator.js.map +1 -0
- package/dist/decorators/event/event.interceptor.d.ts +23 -0
- package/dist/decorators/event/event.interceptor.d.ts.map +1 -0
- package/dist/decorators/event/event.interceptor.js +140 -0
- package/dist/decorators/event/event.interceptor.js.map +1 -0
- package/dist/decorators/event/event.module.d.ts +9 -0
- package/dist/decorators/event/event.module.d.ts.map +1 -0
- package/dist/decorators/event/event.module.js +59 -0
- package/dist/decorators/event/event.module.js.map +1 -0
- package/dist/decorators/event/handlers/cache-event.handler.d.ts +55 -0
- package/dist/decorators/event/handlers/cache-event.handler.d.ts.map +1 -0
- package/dist/decorators/event/handlers/cache-event.handler.js +159 -0
- package/dist/decorators/event/handlers/cache-event.handler.js.map +1 -0
- package/dist/decorators/event/index.d.ts +8 -0
- package/dist/decorators/event/index.d.ts.map +1 -0
- package/dist/decorators/event/index.js +26 -0
- package/dist/decorators/event/index.js.map +1 -0
- package/dist/decorators/feature-flag/feature-flag.decorator.d.ts +144 -0
- package/dist/decorators/feature-flag/feature-flag.decorator.d.ts.map +1 -0
- package/dist/decorators/feature-flag/feature-flag.decorator.js +135 -0
- package/dist/decorators/feature-flag/feature-flag.decorator.js.map +1 -0
- package/dist/decorators/feature-flag/feature-flag.interceptor.d.ts +30 -0
- package/dist/decorators/feature-flag/feature-flag.interceptor.d.ts.map +1 -0
- package/dist/decorators/feature-flag/feature-flag.interceptor.js +127 -0
- package/dist/decorators/feature-flag/feature-flag.interceptor.js.map +1 -0
- package/dist/decorators/feature-flag/feature-flag.module.d.ts +9 -0
- package/dist/decorators/feature-flag/feature-flag.module.d.ts.map +1 -0
- package/dist/decorators/feature-flag/feature-flag.module.js +39 -0
- package/dist/decorators/feature-flag/feature-flag.module.js.map +1 -0
- package/dist/decorators/feature-flag/feature-flag.service.d.ts +102 -0
- package/dist/decorators/feature-flag/feature-flag.service.d.ts.map +1 -0
- package/dist/decorators/feature-flag/feature-flag.service.js +373 -0
- package/dist/decorators/feature-flag/feature-flag.service.js.map +1 -0
- package/dist/decorators/feature-flag/feature-flag.service.spec.d.ts +2 -0
- package/dist/decorators/feature-flag/feature-flag.service.spec.d.ts.map +1 -0
- package/dist/decorators/feature-flag/feature-flag.service.spec.js +264 -0
- package/dist/decorators/feature-flag/feature-flag.service.spec.js.map +1 -0
- package/dist/decorators/feature-flag/index.d.ts +8 -0
- package/dist/decorators/feature-flag/index.d.ts.map +1 -0
- package/dist/decorators/feature-flag/index.js +23 -0
- package/dist/decorators/feature-flag/index.js.map +1 -0
- package/dist/decorators/rate-limit/dto/rate-limit.dto.d.ts +174 -0
- package/dist/decorators/rate-limit/dto/rate-limit.dto.d.ts.map +1 -0
- package/dist/decorators/rate-limit/dto/rate-limit.dto.js +8 -0
- package/dist/decorators/rate-limit/dto/rate-limit.dto.js.map +1 -0
- package/dist/decorators/rate-limit/index.d.ts +24 -0
- package/dist/decorators/rate-limit/index.d.ts.map +1 -0
- package/dist/decorators/rate-limit/index.js +44 -0
- package/dist/decorators/rate-limit/index.js.map +1 -0
- package/dist/decorators/rate-limit/rate-limit.constants.d.ts +16 -0
- package/dist/decorators/rate-limit/rate-limit.constants.d.ts.map +1 -0
- package/dist/decorators/rate-limit/rate-limit.constants.js +22 -0
- package/dist/decorators/rate-limit/rate-limit.constants.js.map +1 -0
- package/dist/decorators/rate-limit/rate-limit.decorator.d.ts +132 -0
- package/dist/decorators/rate-limit/rate-limit.decorator.d.ts.map +1 -0
- package/dist/decorators/rate-limit/rate-limit.decorator.js +185 -0
- package/dist/decorators/rate-limit/rate-limit.decorator.js.map +1 -0
- package/dist/decorators/rate-limit/rate-limit.exception.d.ts +39 -0
- package/dist/decorators/rate-limit/rate-limit.exception.d.ts.map +1 -0
- package/dist/decorators/rate-limit/rate-limit.exception.js +67 -0
- package/dist/decorators/rate-limit/rate-limit.exception.js.map +1 -0
- package/dist/decorators/rate-limit/rate-limit.module.d.ts +25 -0
- package/dist/decorators/rate-limit/rate-limit.module.d.ts.map +1 -0
- package/dist/decorators/rate-limit/rate-limit.module.js +48 -0
- package/dist/decorators/rate-limit/rate-limit.module.js.map +1 -0
- package/dist/decorators/rate-limit/rate-limit.service.d.ts +102 -0
- package/dist/decorators/rate-limit/rate-limit.service.d.ts.map +1 -0
- package/dist/decorators/rate-limit/rate-limit.service.js +390 -0
- package/dist/decorators/rate-limit/rate-limit.service.js.map +1 -0
- package/dist/decorators/response.decorator.d.ts +10 -0
- package/dist/decorators/response.decorator.d.ts.map +1 -0
- package/dist/decorators/response.decorator.js +58 -0
- package/dist/decorators/response.decorator.js.map +1 -0
- package/dist/decorators/skip-version-check.decorator.d.ts +25 -0
- package/dist/decorators/skip-version-check.decorator.d.ts.map +1 -0
- package/dist/decorators/skip-version-check.decorator.js +31 -0
- package/dist/decorators/skip-version-check.decorator.js.map +1 -0
- package/dist/decorators/tenant/index.d.ts +2 -0
- package/dist/decorators/tenant/index.d.ts.map +1 -0
- package/dist/decorators/tenant/index.js +18 -0
- package/dist/decorators/tenant/index.js.map +1 -0
- package/dist/decorators/tenant/tenant.decorator.d.ts +82 -0
- package/dist/decorators/tenant/tenant.decorator.d.ts.map +1 -0
- package/dist/decorators/tenant/tenant.decorator.js +98 -0
- package/dist/decorators/tenant/tenant.decorator.js.map +1 -0
- package/dist/decorators/transaction/index.d.ts +6 -0
- package/dist/decorators/transaction/index.d.ts.map +1 -0
- package/dist/decorators/transaction/index.js +12 -0
- package/dist/decorators/transaction/index.js.map +1 -0
- package/dist/decorators/transaction/transactional.decorator.d.ts +234 -0
- package/dist/decorators/transaction/transactional.decorator.d.ts.map +1 -0
- package/dist/decorators/transaction/transactional.decorator.js +433 -0
- package/dist/decorators/transaction/transactional.decorator.js.map +1 -0
- package/dist/decorators/ts-rest-controller.decorator.d.ts +38 -0
- package/dist/decorators/ts-rest-controller.decorator.d.ts.map +1 -0
- package/dist/decorators/ts-rest-controller.decorator.js +25 -0
- package/dist/decorators/ts-rest-controller.decorator.js.map +1 -0
- package/dist/decorators/validation.decorator.d.ts +4 -0
- package/dist/decorators/validation.decorator.d.ts.map +1 -0
- package/dist/decorators/validation.decorator.js +121 -0
- package/dist/decorators/validation.decorator.js.map +1 -0
- package/dist/decorators/version/index.d.ts +7 -0
- package/dist/decorators/version/index.d.ts.map +1 -0
- package/dist/decorators/version/index.js +25 -0
- package/dist/decorators/version/index.js.map +1 -0
- package/dist/decorators/version/version.decorator.d.ts +96 -0
- package/dist/decorators/version/version.decorator.d.ts.map +1 -0
- package/dist/decorators/version/version.decorator.js +146 -0
- package/dist/decorators/version/version.decorator.js.map +1 -0
- package/dist/decorators/version/version.interceptor.d.ts +19 -0
- package/dist/decorators/version/version.interceptor.d.ts.map +1 -0
- package/dist/decorators/version/version.interceptor.js +86 -0
- package/dist/decorators/version/version.interceptor.js.map +1 -0
- package/dist/decorators/version/version.module.d.ts +8 -0
- package/dist/decorators/version/version.module.d.ts.map +1 -0
- package/dist/decorators/version/version.module.js +33 -0
- package/dist/decorators/version/version.module.js.map +1 -0
- package/dist/encryption.service.d.ts +15 -0
- package/dist/encryption.service.d.ts.map +1 -0
- package/dist/encryption.service.js +35 -0
- package/dist/encryption.service.js.map +1 -0
- package/dist/enums/action.enum.d.ts +8 -0
- package/dist/enums/action.enum.d.ts.map +1 -0
- package/dist/enums/action.enum.js +12 -0
- package/dist/enums/action.enum.js.map +1 -0
- package/dist/enums/error-codes.d.ts +33 -0
- package/dist/enums/error-codes.d.ts.map +1 -0
- package/dist/enums/error-codes.js +52 -0
- package/dist/enums/error-codes.js.map +1 -0
- package/dist/enums/role.enum.d.ts +5 -0
- package/dist/enums/role.enum.d.ts.map +1 -0
- package/dist/enums/role.enum.js +9 -0
- package/dist/enums/role.enum.js.map +1 -0
- package/dist/filter/exception/api.exception.d.ts +77 -0
- package/dist/filter/exception/api.exception.d.ts.map +1 -0
- package/dist/filter/exception/api.exception.js +151 -0
- package/dist/filter/exception/api.exception.js.map +1 -0
- package/dist/filter/exception/exception.d.ts +8 -0
- package/dist/filter/exception/exception.d.ts.map +1 -0
- package/dist/filter/exception/exception.js +50 -0
- package/dist/filter/exception/exception.js.map +1 -0
- package/dist/filter/exception/http.exception.d.ts +11 -0
- package/dist/filter/exception/http.exception.d.ts.map +1 -0
- package/dist/filter/exception/http.exception.js +152 -0
- package/dist/filter/exception/http.exception.js.map +1 -0
- package/dist/guards/api-key.guard.d.ts +42 -0
- package/dist/guards/api-key.guard.d.ts.map +1 -0
- package/dist/guards/api-key.guard.js +159 -0
- package/dist/guards/api-key.guard.js.map +1 -0
- package/dist/guards/auth.guard.d.ts +39 -0
- package/dist/guards/auth.guard.d.ts.map +1 -0
- package/dist/guards/auth.guard.js +178 -0
- package/dist/guards/auth.guard.js.map +1 -0
- package/dist/guards/data-visibility.guard.d.ts +18 -0
- package/dist/guards/data-visibility.guard.d.ts.map +1 -0
- package/dist/guards/data-visibility.guard.js +84 -0
- package/dist/guards/data-visibility.guard.js.map +1 -0
- package/dist/guards/index.d.ts +7 -0
- package/dist/guards/index.d.ts.map +1 -0
- package/dist/guards/index.js +23 -0
- package/dist/guards/index.js.map +1 -0
- package/dist/guards/permission.guard.d.ts +20 -0
- package/dist/guards/permission.guard.d.ts.map +1 -0
- package/dist/guards/permission.guard.js +141 -0
- package/dist/guards/permission.guard.js.map +1 -0
- package/dist/guards/tenant-context.guard.d.ts +12 -0
- package/dist/guards/tenant-context.guard.d.ts.map +1 -0
- package/dist/guards/tenant-context.guard.js +94 -0
- package/dist/guards/tenant-context.guard.js.map +1 -0
- package/dist/guards/version.guard.d.ts +100 -0
- package/dist/guards/version.guard.d.ts.map +1 -0
- package/dist/guards/version.guard.js +233 -0
- package/dist/guards/version.guard.js.map +1 -0
- package/dist/index.d.ts +60 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +85 -0
- package/dist/index.js.map +1 -0
- package/dist/interceptor/audit/audit-log.interceptor.d.ts +16 -0
- package/dist/interceptor/audit/audit-log.interceptor.d.ts.map +1 -0
- package/dist/interceptor/audit/audit-log.interceptor.js +156 -0
- package/dist/interceptor/audit/audit-log.interceptor.js.map +1 -0
- package/dist/interceptor/audit/index.d.ts +2 -0
- package/dist/interceptor/audit/index.d.ts.map +1 -0
- package/dist/interceptor/audit/index.js +18 -0
- package/dist/interceptor/audit/index.js.map +1 -0
- package/dist/interceptor/mask/index.d.ts +2 -0
- package/dist/interceptor/mask/index.d.ts.map +1 -0
- package/dist/interceptor/mask/index.js +18 -0
- package/dist/interceptor/mask/index.js.map +1 -0
- package/dist/interceptor/mask/mask.interceptor.d.ts +79 -0
- package/dist/interceptor/mask/mask.interceptor.d.ts.map +1 -0
- package/dist/interceptor/mask/mask.interceptor.js +197 -0
- package/dist/interceptor/mask/mask.interceptor.js.map +1 -0
- package/dist/interceptor/rate-limit/no-rate-limit.interceptor.d.ts +6 -0
- package/dist/interceptor/rate-limit/no-rate-limit.interceptor.d.ts.map +1 -0
- package/dist/interceptor/rate-limit/no-rate-limit.interceptor.js +20 -0
- package/dist/interceptor/rate-limit/no-rate-limit.interceptor.js.map +1 -0
- package/dist/interceptor/rate-limit/rate-limit.interceptor.d.ts +45 -0
- package/dist/interceptor/rate-limit/rate-limit.interceptor.d.ts.map +1 -0
- package/dist/interceptor/rate-limit/rate-limit.interceptor.js +193 -0
- package/dist/interceptor/rate-limit/rate-limit.interceptor.js.map +1 -0
- package/dist/interceptor/transform/transform.interceptor.d.ts +37 -0
- package/dist/interceptor/transform/transform.interceptor.d.ts.map +1 -0
- package/dist/interceptor/transform/transform.interceptor.js +72 -0
- package/dist/interceptor/transform/transform.interceptor.js.map +1 -0
- package/dist/interceptor/transform/transform.interceptor.spec.d.ts +2 -0
- package/dist/interceptor/transform/transform.interceptor.spec.d.ts.map +1 -0
- package/dist/interceptor/transform/transform.interceptor.spec.js +9 -0
- package/dist/interceptor/transform/transform.interceptor.spec.js.map +1 -0
- package/dist/interceptor/version/index.d.ts +2 -0
- package/dist/interceptor/version/index.d.ts.map +1 -0
- package/dist/interceptor/version/index.js +18 -0
- package/dist/interceptor/version/index.js.map +1 -0
- package/dist/interceptor/version/version-header.interceptor.d.ts +31 -0
- package/dist/interceptor/version/version-header.interceptor.d.ts.map +1 -0
- package/dist/interceptor/version/version-header.interceptor.js +62 -0
- package/dist/interceptor/version/version-header.interceptor.js.map +1 -0
- package/dist/middleware/request.middleware.d.ts +27 -0
- package/dist/middleware/request.middleware.d.ts.map +1 -0
- package/dist/middleware/request.middleware.js +141 -0
- package/dist/middleware/request.middleware.js.map +1 -0
- package/dist/middleware/tenant-isolation.middleware.d.ts +12 -0
- package/dist/middleware/tenant-isolation.middleware.d.ts.map +1 -0
- package/dist/middleware/tenant-isolation.middleware.js +51 -0
- package/dist/middleware/tenant-isolation.middleware.js.map +1 -0
- package/dist/pipes/transform-root.pipe.d.ts +5 -0
- package/dist/pipes/transform-root.pipe.d.ts.map +1 -0
- package/dist/pipes/transform-root.pipe.js +24 -0
- package/dist/pipes/transform-root.pipe.js.map +1 -0
- package/dist/ts-rest/index.d.ts +36 -0
- package/dist/ts-rest/index.d.ts.map +1 -0
- package/dist/ts-rest/index.js +65 -0
- package/dist/ts-rest/index.js.map +1 -0
- package/dist/ts-rest/response.helper.d.ts +261 -0
- package/dist/ts-rest/response.helper.d.ts.map +1 -0
- package/dist/ts-rest/response.helper.js +372 -0
- package/dist/ts-rest/response.helper.js.map +1 -0
- package/dist/utils/audit-log-helper.util.d.ts +41 -0
- package/dist/utils/audit-log-helper.util.d.ts.map +1 -0
- package/dist/utils/audit-log-helper.util.js +115 -0
- package/dist/utils/audit-log-helper.util.js.map +1 -0
- package/dist/utils/audit-signature.util.d.ts +64 -0
- package/dist/utils/audit-signature.util.d.ts.map +1 -0
- package/dist/utils/audit-signature.util.js +155 -0
- package/dist/utils/audit-signature.util.js.map +1 -0
- package/dist/utils/prisma-error.util.d.ts +160 -0
- package/dist/utils/prisma-error.util.d.ts.map +1 -0
- package/dist/utils/prisma-error.util.js +342 -0
- package/dist/utils/prisma-error.util.js.map +1 -0
- package/package.json +54 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Feature Flag Module Exports
|
|
3
|
+
*/
|
|
4
|
+
export { FeatureEnabled, FeatureFlags, IfFeatureEnabled, BetaFeature, GradualRollout, FEATURE_FLAG_METADATA_KEY, FEATURE_FLAGS_METADATA_KEY, FeatureFlagStrategy, FeatureFlagOptions, FeatureFlagContext, } from './feature-flag.decorator';
|
|
5
|
+
export { FeatureFlagService, FeatureFlagProvider, FeatureFlagConfig, } from './feature-flag.service';
|
|
6
|
+
export { FeatureFlagInterceptor } from './feature-flag.interceptor';
|
|
7
|
+
export { FeatureFlagModule } from './feature-flag.module';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/decorators/feature-flag/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAEL,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,cAAc,EAEd,yBAAyB,EACzB,0BAA0B,EAE1B,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Feature Flag Module Exports
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.FeatureFlagModule = exports.FeatureFlagInterceptor = exports.FeatureFlagService = exports.FEATURE_FLAGS_METADATA_KEY = exports.FEATURE_FLAG_METADATA_KEY = exports.GradualRollout = exports.BetaFeature = exports.IfFeatureEnabled = exports.FeatureFlags = exports.FeatureEnabled = void 0;
|
|
7
|
+
var feature_flag_decorator_1 = require("./feature-flag.decorator");
|
|
8
|
+
// Decorators
|
|
9
|
+
Object.defineProperty(exports, "FeatureEnabled", { enumerable: true, get: function () { return feature_flag_decorator_1.FeatureEnabled; } });
|
|
10
|
+
Object.defineProperty(exports, "FeatureFlags", { enumerable: true, get: function () { return feature_flag_decorator_1.FeatureFlags; } });
|
|
11
|
+
Object.defineProperty(exports, "IfFeatureEnabled", { enumerable: true, get: function () { return feature_flag_decorator_1.IfFeatureEnabled; } });
|
|
12
|
+
Object.defineProperty(exports, "BetaFeature", { enumerable: true, get: function () { return feature_flag_decorator_1.BetaFeature; } });
|
|
13
|
+
Object.defineProperty(exports, "GradualRollout", { enumerable: true, get: function () { return feature_flag_decorator_1.GradualRollout; } });
|
|
14
|
+
// Constants
|
|
15
|
+
Object.defineProperty(exports, "FEATURE_FLAG_METADATA_KEY", { enumerable: true, get: function () { return feature_flag_decorator_1.FEATURE_FLAG_METADATA_KEY; } });
|
|
16
|
+
Object.defineProperty(exports, "FEATURE_FLAGS_METADATA_KEY", { enumerable: true, get: function () { return feature_flag_decorator_1.FEATURE_FLAGS_METADATA_KEY; } });
|
|
17
|
+
var feature_flag_service_1 = require("./feature-flag.service");
|
|
18
|
+
Object.defineProperty(exports, "FeatureFlagService", { enumerable: true, get: function () { return feature_flag_service_1.FeatureFlagService; } });
|
|
19
|
+
var feature_flag_interceptor_1 = require("./feature-flag.interceptor");
|
|
20
|
+
Object.defineProperty(exports, "FeatureFlagInterceptor", { enumerable: true, get: function () { return feature_flag_interceptor_1.FeatureFlagInterceptor; } });
|
|
21
|
+
var feature_flag_module_1 = require("./feature-flag.module");
|
|
22
|
+
Object.defineProperty(exports, "FeatureFlagModule", { enumerable: true, get: function () { return feature_flag_module_1.FeatureFlagModule; } });
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/decorators/feature-flag/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,mEAckC;AAbhC,aAAa;AACb,wHAAA,cAAc,OAAA;AACd,sHAAA,YAAY,OAAA;AACZ,0HAAA,gBAAgB,OAAA;AAChB,qHAAA,WAAW,OAAA;AACX,wHAAA,cAAc,OAAA;AACd,YAAY;AACZ,mIAAA,yBAAyB,OAAA;AACzB,oIAAA,0BAA0B,OAAA;AAO5B,+DAIgC;AAH9B,0HAAA,kBAAkB,OAAA;AAKpB,uEAAoE;AAA3D,kIAAA,sBAAsB,OAAA;AAC/B,6DAA0D;AAAjD,wHAAA,iBAAiB,OAAA"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rate Limit DTO
|
|
3
|
+
*
|
|
4
|
+
* 限流模块类型定义
|
|
5
|
+
*/
|
|
6
|
+
import { FastifyRequest } from 'fastify';
|
|
7
|
+
/**
|
|
8
|
+
* 限流维度
|
|
9
|
+
* - ip: 基于 IP 地址
|
|
10
|
+
* - userId: 基于用户 ID
|
|
11
|
+
* - tenantId: 基于租户/团队 ID
|
|
12
|
+
* - apiKey: 基于 API Key
|
|
13
|
+
* - composite: 复合维度 (自定义)
|
|
14
|
+
*/
|
|
15
|
+
export type RateLimitDimension = 'ip' | 'userId' | 'tenantId' | 'apiKey' | 'composite';
|
|
16
|
+
/**
|
|
17
|
+
* 限流上下文
|
|
18
|
+
* 包含请求相关的所有维度信息
|
|
19
|
+
*/
|
|
20
|
+
export interface RateLimitContext {
|
|
21
|
+
/** 客户端 IP 地址 */
|
|
22
|
+
ip: string;
|
|
23
|
+
/** 用户 ID (已认证用户) */
|
|
24
|
+
userId?: string;
|
|
25
|
+
/** 租户/团队 ID */
|
|
26
|
+
tenantId?: string;
|
|
27
|
+
/** API Key (用于外部 API 调用) */
|
|
28
|
+
apiKey?: string;
|
|
29
|
+
/** 请求路径 */
|
|
30
|
+
path: string;
|
|
31
|
+
/** HTTP 方法 */
|
|
32
|
+
method: string;
|
|
33
|
+
/** 追踪 ID */
|
|
34
|
+
traceId: string;
|
|
35
|
+
/** 原始请求对象 */
|
|
36
|
+
request: FastifyRequest;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* 限流选项
|
|
40
|
+
* 用于 @RateLimit 装饰器配置
|
|
41
|
+
*/
|
|
42
|
+
export interface RateLimitOptions {
|
|
43
|
+
/** 时间窗口内允许的最大请求数 */
|
|
44
|
+
limit: number;
|
|
45
|
+
/** 时间窗口 (秒) */
|
|
46
|
+
window: number;
|
|
47
|
+
/** 限流维度,默认自动选择最佳维度 */
|
|
48
|
+
dimension?: RateLimitDimension;
|
|
49
|
+
/** 自定义 key 生成器 */
|
|
50
|
+
keyGenerator?: (context: RateLimitContext) => string;
|
|
51
|
+
/** 自定义错误消息 */
|
|
52
|
+
message?: string;
|
|
53
|
+
/** 关联的 Feature Flag,用于动态开关 */
|
|
54
|
+
featureFlag?: string;
|
|
55
|
+
/** 跳过限流的条件判断函数 */
|
|
56
|
+
skip?: (context: RateLimitContext) => boolean | Promise<boolean>;
|
|
57
|
+
/** 是否在限流时抛出异常 (默认 true) */
|
|
58
|
+
throwOnLimit?: boolean;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* 限流检查结果
|
|
62
|
+
*/
|
|
63
|
+
export interface RateLimitResult {
|
|
64
|
+
/** 请求是否被允许 */
|
|
65
|
+
allowed: boolean;
|
|
66
|
+
/** 时间窗口内的请求限制数 */
|
|
67
|
+
limit: number;
|
|
68
|
+
/** 剩余请求数 */
|
|
69
|
+
remaining: number;
|
|
70
|
+
/** 限流重置时间 (Unix 时间戳,秒) */
|
|
71
|
+
resetTime: number;
|
|
72
|
+
/** 需要等待的秒数 */
|
|
73
|
+
retryAfter: number;
|
|
74
|
+
/** 使用的限流维度 */
|
|
75
|
+
dimension: RateLimitDimension;
|
|
76
|
+
/** 维度标识符 */
|
|
77
|
+
identifier: string;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* 限流信息 (用于异常响应)
|
|
81
|
+
*/
|
|
82
|
+
export interface RateLimitInfo {
|
|
83
|
+
/** 时间窗口内的请求限制数 */
|
|
84
|
+
limit: number;
|
|
85
|
+
/** 剩余请求数 */
|
|
86
|
+
remaining: number;
|
|
87
|
+
/** 限流重置时间 (Unix 时间戳,秒) */
|
|
88
|
+
resetTime: number;
|
|
89
|
+
/** 需要等待的秒数 */
|
|
90
|
+
retryAfter: number;
|
|
91
|
+
/** 使用的限流维度 */
|
|
92
|
+
dimension: RateLimitDimension;
|
|
93
|
+
/** 维度标识符 */
|
|
94
|
+
identifier: string;
|
|
95
|
+
/** 触发限流的端点 */
|
|
96
|
+
endpoint?: string;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* 维度限流配置
|
|
100
|
+
*/
|
|
101
|
+
export interface RateLimitDimensionConfig {
|
|
102
|
+
/** 请求限制数 */
|
|
103
|
+
limit: number;
|
|
104
|
+
/** 时间窗口 (秒) */
|
|
105
|
+
window: number;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* 白名单配置
|
|
109
|
+
*/
|
|
110
|
+
export interface RateLimitWhitelist {
|
|
111
|
+
/** IP 白名单 */
|
|
112
|
+
ips: string[];
|
|
113
|
+
/** 用户 ID 白名单 */
|
|
114
|
+
userIds: string[];
|
|
115
|
+
/** API Key 白名单 */
|
|
116
|
+
apiKeys: string[];
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Redis 配置
|
|
120
|
+
*/
|
|
121
|
+
export interface RateLimitRedisConfig {
|
|
122
|
+
/** Redis key 前缀 */
|
|
123
|
+
keyPrefix: string;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* 限流配置 (从 YAML 加载)
|
|
127
|
+
*/
|
|
128
|
+
export interface RateLimitConfig {
|
|
129
|
+
/** 是否启用限流 */
|
|
130
|
+
enabled: boolean;
|
|
131
|
+
/** 全局 Feature Flag */
|
|
132
|
+
featureFlag?: string;
|
|
133
|
+
/** 默认限流配置 */
|
|
134
|
+
default: RateLimitDimensionConfig;
|
|
135
|
+
/** 各维度的默认配置 */
|
|
136
|
+
dimensions: {
|
|
137
|
+
ip: RateLimitDimensionConfig;
|
|
138
|
+
userId: RateLimitDimensionConfig;
|
|
139
|
+
tenantId: RateLimitDimensionConfig;
|
|
140
|
+
apiKey: RateLimitDimensionConfig;
|
|
141
|
+
};
|
|
142
|
+
/** Redis 配置 */
|
|
143
|
+
redis: RateLimitRedisConfig;
|
|
144
|
+
/** 白名单 */
|
|
145
|
+
whitelist: RateLimitWhitelist;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* 限流事件 (用于日志和监控)
|
|
149
|
+
*/
|
|
150
|
+
export interface RateLimitEvent {
|
|
151
|
+
/** 事件类型 */
|
|
152
|
+
type: 'allowed' | 'blocked';
|
|
153
|
+
/** 追踪 ID */
|
|
154
|
+
traceId: string;
|
|
155
|
+
/** 限流维度 */
|
|
156
|
+
dimension: RateLimitDimension;
|
|
157
|
+
/** 维度标识符 */
|
|
158
|
+
identifier: string;
|
|
159
|
+
/** 请求路径 */
|
|
160
|
+
path: string;
|
|
161
|
+
/** HTTP 方法 */
|
|
162
|
+
method: string;
|
|
163
|
+
/** 当前计数 */
|
|
164
|
+
currentCount: number;
|
|
165
|
+
/** 限制数 */
|
|
166
|
+
limit: number;
|
|
167
|
+
/** 用户 ID (如有) */
|
|
168
|
+
userId?: string;
|
|
169
|
+
/** IP 地址 */
|
|
170
|
+
ip: string;
|
|
171
|
+
/** 时间戳 */
|
|
172
|
+
timestamp: Date;
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=rate-limit.dto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate-limit.dto.d.ts","sourceRoot":"","sources":["../../../../src/decorators/rate-limit/dto/rate-limit.dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate-limit.dto.js","sourceRoot":"","sources":["../../../../src/decorators/rate-limit/dto/rate-limit.dto.ts"],"names":[],"mappings":";AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rate Limit Module Exports
|
|
3
|
+
*
|
|
4
|
+
* 统一导出限流模块的所有组件
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* import {
|
|
9
|
+
* RateLimit,
|
|
10
|
+
* RateLimitPresets,
|
|
11
|
+
* SkipRateLimit,
|
|
12
|
+
* RateLimitService,
|
|
13
|
+
* RateLimitException,
|
|
14
|
+
* RateLimitModule,
|
|
15
|
+
* } from '@/decorators/rate-limit';
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export { RateLimit, SkipRateLimit, RateLimitPresets, RateLimitHigh, RateLimitStandard, RateLimitLow, RateLimitSensitive, RateLimitStrict, } from './rate-limit.decorator';
|
|
19
|
+
export { RATE_LIMIT_KEY, SKIP_RATE_LIMIT_KEY } from './rate-limit.constants';
|
|
20
|
+
export { RateLimitService } from './rate-limit.service';
|
|
21
|
+
export { RateLimitException } from './rate-limit.exception';
|
|
22
|
+
export { RateLimitModule } from './rate-limit.module';
|
|
23
|
+
export type { RateLimitOptions, RateLimitContext, RateLimitResult, RateLimitInfo, RateLimitDimension, RateLimitConfig, RateLimitDimensionConfig, RateLimitWhitelist, RateLimitRedisConfig, RateLimitEvent, } from './dto/rate-limit.dto';
|
|
24
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/decorators/rate-limit/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EACL,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,EAClB,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,wBAAwB,EACxB,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,GACf,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Rate Limit Module Exports
|
|
4
|
+
*
|
|
5
|
+
* 统一导出限流模块的所有组件
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import {
|
|
10
|
+
* RateLimit,
|
|
11
|
+
* RateLimitPresets,
|
|
12
|
+
* SkipRateLimit,
|
|
13
|
+
* RateLimitService,
|
|
14
|
+
* RateLimitException,
|
|
15
|
+
* RateLimitModule,
|
|
16
|
+
* } from '@/decorators/rate-limit';
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.RateLimitModule = exports.RateLimitException = exports.RateLimitService = exports.SKIP_RATE_LIMIT_KEY = exports.RATE_LIMIT_KEY = exports.RateLimitStrict = exports.RateLimitSensitive = exports.RateLimitLow = exports.RateLimitStandard = exports.RateLimitHigh = exports.RateLimitPresets = exports.SkipRateLimit = exports.RateLimit = void 0;
|
|
21
|
+
// Decorators
|
|
22
|
+
var rate_limit_decorator_1 = require("./rate-limit.decorator");
|
|
23
|
+
Object.defineProperty(exports, "RateLimit", { enumerable: true, get: function () { return rate_limit_decorator_1.RateLimit; } });
|
|
24
|
+
Object.defineProperty(exports, "SkipRateLimit", { enumerable: true, get: function () { return rate_limit_decorator_1.SkipRateLimit; } });
|
|
25
|
+
Object.defineProperty(exports, "RateLimitPresets", { enumerable: true, get: function () { return rate_limit_decorator_1.RateLimitPresets; } });
|
|
26
|
+
Object.defineProperty(exports, "RateLimitHigh", { enumerable: true, get: function () { return rate_limit_decorator_1.RateLimitHigh; } });
|
|
27
|
+
Object.defineProperty(exports, "RateLimitStandard", { enumerable: true, get: function () { return rate_limit_decorator_1.RateLimitStandard; } });
|
|
28
|
+
Object.defineProperty(exports, "RateLimitLow", { enumerable: true, get: function () { return rate_limit_decorator_1.RateLimitLow; } });
|
|
29
|
+
Object.defineProperty(exports, "RateLimitSensitive", { enumerable: true, get: function () { return rate_limit_decorator_1.RateLimitSensitive; } });
|
|
30
|
+
Object.defineProperty(exports, "RateLimitStrict", { enumerable: true, get: function () { return rate_limit_decorator_1.RateLimitStrict; } });
|
|
31
|
+
// Constants
|
|
32
|
+
var rate_limit_constants_1 = require("./rate-limit.constants");
|
|
33
|
+
Object.defineProperty(exports, "RATE_LIMIT_KEY", { enumerable: true, get: function () { return rate_limit_constants_1.RATE_LIMIT_KEY; } });
|
|
34
|
+
Object.defineProperty(exports, "SKIP_RATE_LIMIT_KEY", { enumerable: true, get: function () { return rate_limit_constants_1.SKIP_RATE_LIMIT_KEY; } });
|
|
35
|
+
// Service
|
|
36
|
+
var rate_limit_service_1 = require("./rate-limit.service");
|
|
37
|
+
Object.defineProperty(exports, "RateLimitService", { enumerable: true, get: function () { return rate_limit_service_1.RateLimitService; } });
|
|
38
|
+
// Exception
|
|
39
|
+
var rate_limit_exception_1 = require("./rate-limit.exception");
|
|
40
|
+
Object.defineProperty(exports, "RateLimitException", { enumerable: true, get: function () { return rate_limit_exception_1.RateLimitException; } });
|
|
41
|
+
// Module
|
|
42
|
+
var rate_limit_module_1 = require("./rate-limit.module");
|
|
43
|
+
Object.defineProperty(exports, "RateLimitModule", { enumerable: true, get: function () { return rate_limit_module_1.RateLimitModule; } });
|
|
44
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/decorators/rate-limit/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;AAEH,aAAa;AACb,+DASgC;AAR9B,iHAAA,SAAS,OAAA;AACT,qHAAA,aAAa,OAAA;AACb,wHAAA,gBAAgB,OAAA;AAChB,qHAAA,aAAa,OAAA;AACb,yHAAA,iBAAiB,OAAA;AACjB,oHAAA,YAAY,OAAA;AACZ,0HAAA,kBAAkB,OAAA;AAClB,uHAAA,eAAe,OAAA;AAGjB,YAAY;AACZ,+DAA6E;AAApE,sHAAA,cAAc,OAAA;AAAE,2HAAA,mBAAmB,OAAA;AAE5C,UAAU;AACV,2DAAwD;AAA/C,sHAAA,gBAAgB,OAAA;AAEzB,YAAY;AACZ,+DAA4D;AAAnD,0HAAA,kBAAkB,OAAA;AAE3B,SAAS;AACT,yDAAsD;AAA7C,oHAAA,eAAe,OAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rate Limit Constants
|
|
3
|
+
*
|
|
4
|
+
* 限流相关的常量定义
|
|
5
|
+
*
|
|
6
|
+
* 注意:此文件独立于 decorator 和 interceptor,避免循环依赖
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* 限流配置的元数据 key
|
|
10
|
+
*/
|
|
11
|
+
export declare const RATE_LIMIT_KEY = "rate_limit";
|
|
12
|
+
/**
|
|
13
|
+
* 跳过限流的元数据 key
|
|
14
|
+
*/
|
|
15
|
+
export declare const SKIP_RATE_LIMIT_KEY = "skip_rate_limit";
|
|
16
|
+
//# sourceMappingURL=rate-limit.constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate-limit.constants.d.ts","sourceRoot":"","sources":["../../../src/decorators/rate-limit/rate-limit.constants.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH;;GAEG;AACH,eAAO,MAAM,cAAc,eAAe,CAAC;AAE3C;;GAEG;AACH,eAAO,MAAM,mBAAmB,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Rate Limit Constants
|
|
4
|
+
*
|
|
5
|
+
* 限流相关的常量定义
|
|
6
|
+
*
|
|
7
|
+
* 注意:此文件独立于 decorator 和 interceptor,避免循环依赖
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.SKIP_RATE_LIMIT_KEY = exports.RATE_LIMIT_KEY = void 0;
|
|
11
|
+
// ============================================================================
|
|
12
|
+
// Constants
|
|
13
|
+
// ============================================================================
|
|
14
|
+
/**
|
|
15
|
+
* 限流配置的元数据 key
|
|
16
|
+
*/
|
|
17
|
+
exports.RATE_LIMIT_KEY = 'rate_limit';
|
|
18
|
+
/**
|
|
19
|
+
* 跳过限流的元数据 key
|
|
20
|
+
*/
|
|
21
|
+
exports.SKIP_RATE_LIMIT_KEY = 'skip_rate_limit';
|
|
22
|
+
//# sourceMappingURL=rate-limit.constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate-limit.constants.js","sourceRoot":"","sources":["../../../src/decorators/rate-limit/rate-limit.constants.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E;;GAEG;AACU,QAAA,cAAc,GAAG,YAAY,CAAC;AAE3C;;GAEG;AACU,QAAA,mBAAmB,GAAG,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rate Limit Decorator
|
|
3
|
+
*
|
|
4
|
+
* 限流装饰器,支持方法级别的细粒度限流控制
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* // 基础用法: 每分钟 100 次
|
|
8
|
+
* @RateLimit({ limit: 100, window: 60 })
|
|
9
|
+
* async createPost() { ... }
|
|
10
|
+
*
|
|
11
|
+
* // 按用户限流
|
|
12
|
+
* @RateLimit({ limit: 50, window: 60, dimension: 'userId' })
|
|
13
|
+
* async submitFeedback() { ... }
|
|
14
|
+
*
|
|
15
|
+
* // 按租户限流 (适用于 SaaS)
|
|
16
|
+
* @RateLimit({ limit: 1000, window: 60, dimension: 'tenantId' })
|
|
17
|
+
* async batchExport() { ... }
|
|
18
|
+
*
|
|
19
|
+
* // 结合 Feature Flag 动态控制
|
|
20
|
+
* @RateLimit({ limit: 100, window: 60, featureFlag: 'rate-limit-export' })
|
|
21
|
+
* async postExport() { ... }
|
|
22
|
+
*/
|
|
23
|
+
import { RateLimitOptions } from './dto/rate-limit.dto';
|
|
24
|
+
/**
|
|
25
|
+
* @RateLimit - 限流装饰器
|
|
26
|
+
*
|
|
27
|
+
* 对方法应用限流控制,支持多维度和动态配置
|
|
28
|
+
*
|
|
29
|
+
* @param options - 限流配置选项
|
|
30
|
+
* @returns MethodDecorator
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* // 标准限流
|
|
35
|
+
* @RateLimit({ limit: 100, window: 60 })
|
|
36
|
+
* async createPost() { ... }
|
|
37
|
+
*
|
|
38
|
+
* // 按 API Key 限流
|
|
39
|
+
* @RateLimit({ limit: 500, window: 60, dimension: 'apiKey' })
|
|
40
|
+
* async externalApiCall() { ... }
|
|
41
|
+
*
|
|
42
|
+
* // 自定义错误消息
|
|
43
|
+
* @RateLimit({
|
|
44
|
+
* limit: 10,
|
|
45
|
+
* window: 60,
|
|
46
|
+
* dimension: 'userId',
|
|
47
|
+
* message: '发送消息过于频繁,请稍后再试',
|
|
48
|
+
* })
|
|
49
|
+
* async sendMessage() { ... }
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
export declare function RateLimit(options: RateLimitOptions): MethodDecorator;
|
|
53
|
+
/**
|
|
54
|
+
* @SkipRateLimit - 跳过限流
|
|
55
|
+
*
|
|
56
|
+
* 标记方法跳过业务层限流检查(入口限流仍然生效)
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```typescript
|
|
60
|
+
* @SkipRateLimit()
|
|
61
|
+
* async healthCheck() { ... }
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
export declare function SkipRateLimit(): MethodDecorator;
|
|
65
|
+
/**
|
|
66
|
+
* 预设限流策略
|
|
67
|
+
*
|
|
68
|
+
* 提供常用场景的快捷装饰器
|
|
69
|
+
*/
|
|
70
|
+
export declare const RateLimitPresets: {
|
|
71
|
+
/**
|
|
72
|
+
* 高频接口: 每分钟 200 次
|
|
73
|
+
* 适用于: 列表查询、搜索
|
|
74
|
+
*/
|
|
75
|
+
high: () => MethodDecorator;
|
|
76
|
+
/**
|
|
77
|
+
* 标准接口: 每分钟 100 次
|
|
78
|
+
* 适用于: 常规 CRUD 操作
|
|
79
|
+
*/
|
|
80
|
+
standard: () => MethodDecorator;
|
|
81
|
+
/**
|
|
82
|
+
* 低频接口: 每分钟 20 次
|
|
83
|
+
* 适用于: 创建、更新操作
|
|
84
|
+
*/
|
|
85
|
+
low: () => MethodDecorator;
|
|
86
|
+
/**
|
|
87
|
+
* 敏感操作: 每分钟 5 次
|
|
88
|
+
* 适用于: 密码修改、邮箱验证
|
|
89
|
+
*/
|
|
90
|
+
sensitive: () => MethodDecorator;
|
|
91
|
+
/**
|
|
92
|
+
* API Key 限流: 每分钟 1000 次
|
|
93
|
+
* 适用于: 开放 API
|
|
94
|
+
*/
|
|
95
|
+
apiKey: (limit?: number) => MethodDecorator;
|
|
96
|
+
/**
|
|
97
|
+
* 租户限流: 每分钟 2000 次
|
|
98
|
+
* 适用于: SaaS 多租户场景
|
|
99
|
+
*/
|
|
100
|
+
tenant: (limit?: number) => MethodDecorator;
|
|
101
|
+
/**
|
|
102
|
+
* 严格限流: 每小时 10 次
|
|
103
|
+
* 适用于: 注册、重置密码
|
|
104
|
+
*/
|
|
105
|
+
strict: () => MethodDecorator;
|
|
106
|
+
/**
|
|
107
|
+
* AI 生成限流: 每分钟 10 次
|
|
108
|
+
* 适用于: AI 内容生成
|
|
109
|
+
*/
|
|
110
|
+
aiGeneration: () => MethodDecorator;
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* @RateLimitHigh - 高频接口限流 (200/分钟)
|
|
114
|
+
*/
|
|
115
|
+
export declare const RateLimitHigh: () => MethodDecorator;
|
|
116
|
+
/**
|
|
117
|
+
* @RateLimitStandard - 标准接口限流 (100/分钟)
|
|
118
|
+
*/
|
|
119
|
+
export declare const RateLimitStandard: () => MethodDecorator;
|
|
120
|
+
/**
|
|
121
|
+
* @RateLimitLow - 低频接口限流 (20/分钟)
|
|
122
|
+
*/
|
|
123
|
+
export declare const RateLimitLow: () => MethodDecorator;
|
|
124
|
+
/**
|
|
125
|
+
* @RateLimitSensitive - 敏感操作限流 (5/分钟)
|
|
126
|
+
*/
|
|
127
|
+
export declare const RateLimitSensitive: () => MethodDecorator;
|
|
128
|
+
/**
|
|
129
|
+
* @RateLimitStrict - 严格限流 (10/小时)
|
|
130
|
+
*/
|
|
131
|
+
export declare const RateLimitStrict: () => MethodDecorator;
|
|
132
|
+
//# sourceMappingURL=rate-limit.decorator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate-limit.decorator.d.ts","sourceRoot":"","sources":["../../../src/decorators/rate-limit/rate-limit.decorator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAOxD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,eAAe,CAKpE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,IAAI,eAAe,CAE/C;AAMD;;;;GAIG;AACH,eAAO,MAAM,gBAAgB;IAC3B;;;OAGG;;IAOH;;;OAGG;;IAOH;;;OAGG;;IAOH;;;OAGG;;IASH;;;OAGG;;IAQH;;;OAGG;;IAQH;;;OAGG;;IASH;;;OAGG;;CASJ,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,aAAa,uBAAwB,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,iBAAiB,uBAA4B,CAAC;AAE3D;;GAEG;AACH,eAAO,MAAM,YAAY,uBAAuB,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,kBAAkB,uBAA6B,CAAC;AAE7D;;GAEG;AACH,eAAO,MAAM,eAAe,uBAA0B,CAAC"}
|