@nest-omni/core 4.1.3-2 → 4.1.3-22
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/audit/audit.module.d.ts +11 -0
- package/audit/audit.module.js +65 -1
- package/audit/controllers/audit.controller.d.ts +81 -1
- package/audit/controllers/audit.controller.js +67 -0
- package/audit/decorators/audit-action.decorator.d.ts +74 -0
- package/audit/decorators/audit-action.decorator.js +42 -0
- package/audit/decorators/audit-controller.decorator.d.ts +9 -1
- package/audit/decorators/audit-controller.decorator.js +11 -2
- package/audit/decorators/audit-operation.decorator.d.ts +38 -0
- package/audit/decorators/audit-operation.decorator.js +42 -0
- package/audit/decorators/entity-audit.decorator.d.ts +85 -1
- package/audit/decorators/entity-audit.decorator.js +153 -3
- package/audit/decorators/index.d.ts +2 -0
- package/audit/decorators/index.js +2 -0
- package/audit/dto/audit-action-query.dto.d.ts +13 -0
- package/audit/dto/audit-action-query.dto.js +77 -0
- package/audit/dto/audit-log-query.dto.d.ts +3 -0
- package/audit/dto/audit-log-query.dto.js +3 -0
- package/audit/dto/begin-transaction.dto.d.ts +3 -0
- package/audit/dto/begin-transaction.dto.js +3 -0
- package/audit/dto/compare-entities.dto.d.ts +3 -0
- package/audit/dto/compare-entities.dto.js +3 -0
- package/audit/dto/index.d.ts +1 -0
- package/audit/dto/index.js +1 -0
- package/audit/dto/pre-check-restore.dto.d.ts +3 -0
- package/audit/dto/pre-check-restore.dto.js +3 -0
- package/audit/dto/restore-entity.dto.d.ts +3 -0
- package/audit/dto/restore-entity.dto.js +3 -0
- package/audit/entities/audit-action-summary.entity.d.ts +23 -0
- package/audit/entities/audit-action-summary.entity.js +101 -0
- package/audit/entities/entity-audit-log.entity.d.ts +10 -2
- package/audit/entities/entity-audit-log.entity.js +48 -9
- package/audit/entities/entity-transaction.entity.d.ts +11 -2
- package/audit/entities/entity-transaction.entity.js +42 -3
- package/audit/entities/index.d.ts +3 -0
- package/audit/entities/index.js +3 -0
- package/audit/entities/manual-operation-log.entity.d.ts +4 -2
- package/audit/entities/manual-operation-log.entity.js +12 -9
- package/audit/entities/operation-template.entity.d.ts +4 -0
- package/audit/entities/operation-template.entity.js +4 -0
- package/audit/enums/audit.enums.d.ts +29 -6
- package/audit/enums/audit.enums.js +31 -7
- package/audit/examples/decorator-value-mapping.example.d.ts +70 -0
- package/audit/examples/decorator-value-mapping.example.js +414 -0
- package/audit/index.d.ts +5 -1
- package/audit/index.js +38 -1
- package/audit/interceptors/audit-action.interceptor.d.ts +38 -0
- package/audit/interceptors/audit-action.interceptor.js +215 -0
- package/audit/interceptors/audit.interceptor.d.ts +16 -0
- package/audit/interceptors/audit.interceptor.js +41 -11
- package/audit/interceptors/index.d.ts +1 -0
- package/audit/interceptors/index.js +1 -0
- package/audit/interfaces/audit.interfaces.d.ts +174 -4
- package/audit/services/audit-action.service.d.ts +141 -0
- package/audit/services/audit-action.service.js +244 -0
- package/audit/services/audit-context.service.d.ts +106 -0
- package/audit/services/audit-context.service.js +185 -0
- package/audit/services/audit-strategy.service.d.ts +6 -0
- package/audit/services/audit-strategy.service.js +13 -0
- package/audit/services/entity-audit.service.d.ts +273 -5
- package/audit/services/entity-audit.service.js +840 -60
- package/audit/services/index.d.ts +3 -0
- package/audit/services/index.js +3 -0
- package/audit/services/manual-audit-log.service.d.ts +133 -9
- package/audit/services/manual-audit-log.service.js +157 -42
- package/audit/services/multi-database.service.d.ts +9 -2
- package/audit/services/multi-database.service.js +9 -21
- package/audit/services/operation-description.service.d.ts +71 -2
- package/audit/services/operation-description.service.js +231 -20
- package/audit/services/transaction-audit.service.d.ts +30 -0
- package/audit/services/transaction-audit.service.js +53 -5
- package/audit/subscribers/entity-audit.subscriber.d.ts +20 -0
- package/audit/subscribers/entity-audit.subscriber.js +98 -6
- package/cache/cache-metrics.service.d.ts +67 -0
- package/cache/cache-metrics.service.js +68 -4
- package/cache/cache-serialization.service.d.ts +31 -0
- package/cache/cache-serialization.service.js +25 -0
- package/cache/cache.constants.d.ts +9 -0
- package/cache/cache.constants.js +9 -0
- package/cache/cache.health.d.ts +26 -0
- package/cache/cache.health.js +30 -0
- package/cache/cache.module.d.ts +87 -2
- package/cache/cache.module.js +84 -11
- package/cache/cache.service.d.ts +143 -3
- package/cache/cache.service.js +173 -4
- package/cache/cache.warmup.service.d.ts +39 -0
- package/cache/cache.warmup.service.js +32 -0
- package/cache/decorators/cache-evict.decorator.d.ts +47 -0
- package/cache/decorators/cache-evict.decorator.js +56 -0
- package/cache/decorators/cache-put.decorator.d.ts +34 -0
- package/cache/decorators/cache-put.decorator.js +39 -0
- package/cache/decorators/cacheable.decorator.d.ts +40 -0
- package/cache/decorators/cacheable.decorator.js +55 -0
- package/cache/dependencies/callback.dependency.d.ts +33 -0
- package/cache/dependencies/callback.dependency.js +39 -1
- package/cache/dependencies/chain.dependency.d.ts +28 -0
- package/cache/dependencies/chain.dependency.js +34 -0
- package/cache/dependencies/db.dependency.d.ts +83 -7
- package/cache/dependencies/db.dependency.js +89 -14
- package/cache/dependencies/file.dependency.d.ts +32 -0
- package/cache/dependencies/file.dependency.js +34 -0
- package/cache/dependencies/tag.dependency.d.ts +75 -4
- package/cache/dependencies/tag.dependency.js +145 -11
- package/cache/dependencies/time.dependency.d.ts +43 -0
- package/cache/dependencies/time.dependency.js +43 -0
- package/cache/entities/index.d.ts +1 -0
- package/cache/entities/index.js +17 -0
- package/cache/entities/typeorm-cache.entity.d.ts +71 -0
- package/cache/entities/typeorm-cache.entity.js +110 -0
- package/cache/examples/basic-usage.d.ts +15 -0
- package/cache/examples/basic-usage.js +62 -8
- package/cache/index.d.ts +2 -1
- package/cache/index.js +28 -2
- package/cache/interfaces/cache-dependency.interface.d.ts +53 -0
- package/cache/interfaces/cache-options.interface.d.ts +89 -0
- package/cache/interfaces/cache-options.interface.js +6 -0
- package/cache/interfaces/cache-provider.interface.d.ts +78 -0
- package/cache/providers/base-cache.provider.d.ts +14 -0
- package/cache/providers/base-cache.provider.js +16 -0
- package/cache/providers/cls-cache.provider.d.ts +20 -0
- package/cache/providers/cls-cache.provider.js +28 -0
- package/cache/providers/index.d.ts +2 -1
- package/cache/providers/index.js +2 -1
- package/cache/providers/lrucache.provider.d.ts +76 -0
- package/cache/providers/lrucache.provider.js +226 -0
- package/cache/providers/redis-cache.provider.d.ts +26 -0
- package/cache/providers/redis-cache.provider.js +29 -0
- package/cache/providers/typeorm-cache.provider.d.ts +211 -0
- package/cache/providers/typeorm-cache.provider.js +483 -0
- package/cache/utils/dependency-manager.util.d.ts +52 -0
- package/cache/utils/dependency-manager.util.js +59 -0
- package/cache/utils/key-generator.util.d.ts +42 -0
- package/cache/utils/key-generator.util.js +53 -1
- package/common/abstract.entity.d.ts +14 -0
- package/common/abstract.entity.js +14 -0
- package/common/boilerplate.polyfill.d.ts +143 -0
- package/common/boilerplate.polyfill.js +35 -1
- package/common/dto/dto-container.d.ts +16 -0
- package/common/dto/dto-container.js +20 -0
- package/common/dto/dto-decorators.d.ts +18 -0
- package/common/dto/dto-decorators.js +14 -0
- package/common/dto/dto-extensions.d.ts +11 -0
- package/common/dto/dto-extensions.js +9 -0
- package/common/dto/dto-service-accessor.d.ts +17 -0
- package/common/dto/dto-service-accessor.js +18 -0
- package/common/dto/dto-transformer.d.ts +12 -0
- package/common/dto/dto-transformer.js +9 -0
- package/common/dto/index.js +2 -0
- package/common/examples/paginate-and-map.example.d.ts +6 -0
- package/common/examples/paginate-and-map.example.js +26 -0
- package/common/helpers/validation-metadata-helper.d.ts +55 -0
- package/common/helpers/validation-metadata-helper.js +60 -0
- package/common/index.d.ts +1 -0
- package/common/index.js +4 -0
- package/common/utils.d.ts +15 -0
- package/common/utils.js +15 -0
- package/constants/language-code.js +1 -0
- package/decorators/field.decorators.d.ts +72 -3
- package/decorators/field.decorators.js +155 -19
- package/decorators/property.decorators.js +1 -0
- package/decorators/public-route.decorator.js +1 -0
- package/decorators/transform.decorators.d.ts +27 -2
- package/decorators/transform.decorators.js +29 -23
- package/decorators/translate.decorator.js +1 -0
- package/decorators/user.decorator.js +1 -0
- package/decorators/validator.decorators.d.ts +8 -18
- package/decorators/validator.decorators.js +22 -190
- package/file-upload/controllers/file-access.controller.d.ts +23 -0
- package/file-upload/controllers/file-access.controller.js +128 -0
- package/file-upload/decorators/column.decorator.d.ts +151 -0
- package/file-upload/decorators/column.decorator.js +273 -0
- package/file-upload/decorators/csv-data.decorator.d.ts +30 -0
- package/file-upload/decorators/csv-data.decorator.js +85 -0
- package/file-upload/decorators/csv-import.decorator.d.ts +34 -0
- package/file-upload/decorators/csv-import.decorator.js +24 -0
- package/file-upload/decorators/examples/column-mapping.example.d.ts +76 -0
- package/file-upload/decorators/examples/column-mapping.example.js +122 -0
- package/file-upload/decorators/excel-data.decorator.d.ts +30 -0
- package/file-upload/decorators/excel-data.decorator.js +85 -0
- package/file-upload/decorators/file-upload.decorator.d.ts +83 -0
- package/file-upload/decorators/file-upload.decorator.js +172 -0
- package/file-upload/decorators/index.d.ts +5 -0
- package/file-upload/decorators/index.js +38 -0
- package/file-upload/decorators/process.decorator.d.ts +40 -0
- package/file-upload/decorators/process.decorator.js +52 -0
- package/file-upload/decorators/validate-data.decorator.d.ts +91 -0
- package/file-upload/decorators/validate-data.decorator.js +39 -0
- package/file-upload/dto/create-file.dto.d.ts +24 -0
- package/file-upload/dto/create-file.dto.js +112 -0
- package/file-upload/dto/find-files.dto.d.ts +15 -0
- package/file-upload/dto/find-files.dto.js +76 -0
- package/file-upload/dto/index.d.ts +4 -0
- package/file-upload/dto/index.js +20 -0
- package/file-upload/dto/pagination.dto.d.ts +7 -0
- package/file-upload/dto/pagination.dto.js +39 -0
- package/file-upload/dto/update-file.dto.d.ts +15 -0
- package/file-upload/dto/update-file.dto.js +67 -0
- package/file-upload/entities/file-metadata.entity.d.ts +25 -0
- package/file-upload/entities/file-metadata.entity.js +76 -0
- package/file-upload/entities/file.entity.d.ts +114 -0
- package/file-upload/entities/file.entity.js +350 -0
- package/file-upload/entities/index.d.ts +2 -0
- package/file-upload/entities/index.js +18 -0
- package/file-upload/enums/file-type.enum.d.ts +72 -0
- package/file-upload/enums/file-type.enum.js +212 -0
- package/file-upload/exceptions/file-upload.exception.d.ts +57 -0
- package/file-upload/exceptions/file-upload.exception.js +120 -0
- package/file-upload/exceptions/index.d.ts +1 -0
- package/file-upload/exceptions/index.js +17 -0
- package/file-upload/file-upload.module.d.ts +89 -0
- package/file-upload/file-upload.module.js +292 -0
- package/file-upload/index.d.ts +37 -0
- package/file-upload/index.js +77 -0
- package/file-upload/interceptors/file-upload.interceptor.d.ts +101 -0
- package/file-upload/interceptors/file-upload.interceptor.js +594 -0
- package/file-upload/interceptors/index.d.ts +1 -0
- package/file-upload/interceptors/index.js +17 -0
- package/file-upload/interfaces/custom-file-type.interface.d.ts +72 -0
- package/file-upload/interfaces/custom-file-type.interface.js +2 -0
- package/file-upload/interfaces/file-buffer.interface.d.ts +72 -0
- package/file-upload/interfaces/file-buffer.interface.js +2 -0
- package/file-upload/interfaces/file-entity.interface.d.ts +142 -0
- package/file-upload/interfaces/file-entity.interface.js +28 -0
- package/file-upload/interfaces/file-metadata.interface.d.ts +21 -0
- package/file-upload/interfaces/file-metadata.interface.js +2 -0
- package/file-upload/interfaces/file-processor.interface.d.ts +93 -0
- package/file-upload/interfaces/file-processor.interface.js +2 -0
- package/file-upload/interfaces/file-upload-options.interface.d.ts +74 -0
- package/file-upload/interfaces/file-upload-options.interface.js +5 -0
- package/file-upload/interfaces/index.d.ts +7 -0
- package/file-upload/interfaces/index.js +24 -0
- package/file-upload/interfaces/processor-options.interface.d.ts +102 -0
- package/file-upload/interfaces/processor-options.interface.js +2 -0
- package/file-upload/interfaces/storage-provider.interface.d.ts +239 -0
- package/file-upload/interfaces/storage-provider.interface.js +2 -0
- package/file-upload/interfaces/upload-options.interface.d.ts +19 -0
- package/file-upload/interfaces/upload-options.interface.js +2 -0
- package/file-upload/processors/csv.processor.d.ts +98 -0
- package/file-upload/processors/csv.processor.js +391 -0
- package/file-upload/processors/excel.processor.d.ts +130 -0
- package/file-upload/processors/excel.processor.js +547 -0
- package/file-upload/processors/image.processor.d.ts +199 -0
- package/file-upload/processors/image.processor.js +377 -0
- package/file-upload/providers/index.d.ts +2 -0
- package/file-upload/providers/index.js +18 -0
- package/file-upload/providers/local-storage.provider.d.ts +98 -0
- package/file-upload/providers/local-storage.provider.js +484 -0
- package/file-upload/providers/s3-storage.provider.d.ts +87 -0
- package/file-upload/providers/s3-storage.provider.js +455 -0
- package/file-upload/services/file-signature-validator.service.d.ts +118 -0
- package/file-upload/services/file-signature-validator.service.js +376 -0
- package/file-upload/services/file.service.d.ts +193 -0
- package/file-upload/services/file.service.js +638 -0
- package/file-upload/services/index.d.ts +4 -0
- package/file-upload/services/index.js +20 -0
- package/file-upload/services/malicious-file-detector.service.d.ts +300 -0
- package/file-upload/services/malicious-file-detector.service.js +1234 -0
- package/file-upload/services/mime-registry.service.d.ts +47 -0
- package/file-upload/services/mime-registry.service.js +167 -0
- package/file-upload/utils/checksum.util.d.ts +28 -0
- package/file-upload/utils/checksum.util.js +65 -0
- package/file-upload/utils/dynamic-import.util.d.ts +54 -0
- package/file-upload/utils/dynamic-import.util.js +156 -0
- package/file-upload/utils/filename.util.d.ts +59 -0
- package/file-upload/utils/filename.util.js +184 -0
- package/file-upload/utils/filepath.util.d.ts +70 -0
- package/file-upload/utils/filepath.util.js +152 -0
- package/file-upload/utils/index.d.ts +4 -0
- package/file-upload/utils/index.js +20 -0
- package/filters/bad-request.filter.js +19 -4
- package/filters/constraint-errors.js +1 -0
- package/helpers/common.helper.d.ts +13 -0
- package/helpers/common.helper.js +13 -0
- package/http-client/config/http-client.config.d.ts +20 -0
- package/http-client/config/http-client.config.js +48 -21
- package/http-client/decorators/http-client.decorators.d.ts +55 -14
- package/http-client/decorators/http-client.decorators.js +154 -78
- package/http-client/entities/http-log.entity.d.ts +217 -8
- package/http-client/entities/http-log.entity.js +7 -22
- package/http-client/errors/http-client.errors.d.ts +57 -0
- package/http-client/errors/http-client.errors.js +58 -0
- package/http-client/examples/advanced-usage.example.d.ts +40 -0
- package/http-client/examples/advanced-usage.example.js +53 -61
- package/http-client/examples/auth-with-waiting-lock.example.d.ts +31 -0
- package/http-client/examples/auth-with-waiting-lock.example.js +52 -5
- package/http-client/examples/basic-usage.example.d.ts +60 -0
- package/http-client/examples/basic-usage.example.js +60 -0
- package/http-client/examples/multi-api-configuration.example.d.ts +60 -0
- package/http-client/examples/multi-api-configuration.example.js +76 -5
- package/http-client/examples/proxy-from-environment.example.d.ts +133 -0
- package/http-client/examples/proxy-from-environment.example.js +409 -0
- package/http-client/http-client.module.d.ts +48 -2
- package/http-client/http-client.module.js +147 -68
- package/http-client/index.d.ts +1 -1
- package/http-client/index.js +8 -0
- package/http-client/interfaces/api-client-config.interface.d.ts +80 -45
- package/http-client/interfaces/api-client-config.interface.js +3 -0
- package/http-client/interfaces/http-client-config.interface.d.ts +109 -52
- package/http-client/services/api-client-registry.service.d.ts +50 -11
- package/http-client/services/api-client-registry.service.js +90 -250
- package/http-client/services/circuit-breaker.service.d.ts +115 -2
- package/http-client/services/circuit-breaker.service.js +237 -7
- package/http-client/services/http-client.service.d.ts +124 -14
- package/http-client/services/http-client.service.js +437 -148
- package/http-client/services/http-log-query.service.d.ts +83 -0
- package/http-client/services/http-log-query.service.js +121 -13
- package/http-client/services/http-replay.service.d.ts +101 -0
- package/http-client/services/http-replay.service.js +86 -0
- package/http-client/services/index.d.ts +0 -1
- package/http-client/services/index.js +0 -1
- package/http-client/services/log-cleanup.service.d.ts +63 -0
- package/http-client/services/log-cleanup.service.js +54 -2
- package/http-client/services/logging.service.d.ts +116 -7
- package/http-client/services/logging.service.js +349 -86
- package/http-client/utils/call-stack-extractor.util.d.ts +63 -0
- package/http-client/utils/call-stack-extractor.util.js +83 -0
- package/http-client/utils/context-extractor.util.d.ts +49 -0
- package/http-client/utils/context-extractor.util.js +54 -0
- package/http-client/utils/curl-generator.util.d.ts +21 -0
- package/http-client/utils/curl-generator.util.js +44 -3
- package/http-client/utils/index.d.ts +1 -0
- package/http-client/utils/index.js +1 -0
- package/http-client/utils/proxy-environment.util.d.ts +42 -0
- package/http-client/utils/proxy-environment.util.js +148 -0
- package/http-client/utils/request-id.util.d.ts +18 -0
- package/http-client/utils/request-id.util.js +20 -0
- package/http-client/utils/retry-recorder.util.d.ts +42 -0
- package/http-client/utils/retry-recorder.util.js +44 -0
- package/http-client/utils/security-validator.util.d.ts +118 -0
- package/http-client/utils/security-validator.util.js +352 -0
- package/index.d.ts +3 -1
- package/index.js +12 -1
- package/interceptors/translation-interceptor.service.js +5 -0
- package/ip-filter/constants.d.ts +21 -0
- package/ip-filter/constants.js +24 -0
- package/ip-filter/decorators/index.d.ts +1 -0
- package/ip-filter/decorators/index.js +17 -0
- package/ip-filter/decorators/ip-filter.decorator.d.ts +58 -0
- package/ip-filter/decorators/ip-filter.decorator.js +79 -0
- package/ip-filter/guards/index.d.ts +1 -0
- package/ip-filter/guards/index.js +17 -0
- package/ip-filter/guards/ip-filter.guard.d.ts +62 -0
- package/ip-filter/guards/ip-filter.guard.js +174 -0
- package/ip-filter/index.d.ts +7 -0
- package/ip-filter/index.js +23 -0
- package/ip-filter/interfaces/index.d.ts +4 -0
- package/ip-filter/interfaces/index.js +20 -0
- package/ip-filter/interfaces/ip-filter-async-options.interface.d.ts +15 -0
- package/ip-filter/interfaces/ip-filter-async-options.interface.js +2 -0
- package/ip-filter/interfaces/ip-filter-metadata.interface.d.ts +26 -0
- package/ip-filter/interfaces/ip-filter-metadata.interface.js +2 -0
- package/ip-filter/interfaces/ip-filter-options.interface.d.ts +34 -0
- package/ip-filter/interfaces/ip-filter-options.interface.js +2 -0
- package/ip-filter/interfaces/ip-rule.interface.d.ts +36 -0
- package/ip-filter/interfaces/ip-rule.interface.js +2 -0
- package/ip-filter/ip-filter.module.d.ts +55 -0
- package/ip-filter/ip-filter.module.js +105 -0
- package/ip-filter/services/index.d.ts +1 -0
- package/ip-filter/services/index.js +17 -0
- package/ip-filter/services/ip-filter.service.d.ts +92 -0
- package/ip-filter/services/ip-filter.service.js +238 -0
- package/ip-filter/utils/index.d.ts +1 -0
- package/ip-filter/utils/index.js +17 -0
- package/ip-filter/utils/ip-utils.d.ts +61 -0
- package/ip-filter/utils/ip-utils.js +162 -0
- package/package.json +32 -29
- package/providers/context.provider.d.ts +9 -0
- package/providers/context.provider.js +15 -0
- package/providers/generator.provider.d.ts +4 -0
- package/providers/generator.provider.js +4 -0
- package/redis-lock/comprehensive-lock-cleanup.service.d.ts +94 -0
- package/redis-lock/comprehensive-lock-cleanup.service.js +253 -0
- package/redis-lock/examples/lock-strategy.examples.d.ts +89 -0
- package/redis-lock/examples/lock-strategy.examples.js +130 -15
- package/redis-lock/index.d.ts +2 -0
- package/redis-lock/index.js +8 -1
- package/redis-lock/lock-heartbeat.service.d.ts +80 -0
- package/redis-lock/lock-heartbeat.service.js +232 -0
- package/redis-lock/redis-lock.decorator.d.ts +101 -0
- package/redis-lock/redis-lock.decorator.js +120 -0
- package/redis-lock/redis-lock.module.d.ts +66 -0
- package/redis-lock/redis-lock.module.js +175 -70
- package/redis-lock/redis-lock.service.d.ts +282 -0
- package/redis-lock/redis-lock.service.js +343 -20
- package/setup/bootstrap.setup.d.ts +2 -1
- package/setup/bootstrap.setup.js +22 -1
- package/setup/index.d.ts +1 -0
- package/setup/index.js +1 -0
- package/setup/mode.setup.d.ts +44 -0
- package/setup/mode.setup.js +44 -0
- package/setup/run-in-mode.decorator.d.ts +56 -0
- package/setup/run-in-mode.decorator.js +92 -0
- package/setup/schedule.decorator.d.ts +227 -0
- package/setup/schedule.decorator.js +240 -12
- package/setup/worker.decorator.d.ts +86 -0
- package/setup/worker.decorator.js +97 -0
- package/shared/index.d.ts +1 -1
- package/shared/index.js +1 -1
- package/shared/{serviceRegistryModule.js → service-registry.module.js} +19 -18
- package/shared/services/api-config.service.d.ts +3 -0
- package/shared/services/api-config.service.js +21 -9
- package/shared/services/index.d.ts +0 -1
- package/shared/services/index.js +0 -1
- package/validator-json/decorators.d.ts +17 -0
- package/validator-json/decorators.js +17 -2
- package/validator-json/default.d.ts +6 -0
- package/validator-json/default.js +30 -2
- package/validator-json/defaultConverters.js +1 -0
- package/validator-json/options.d.ts +23 -0
- package/validators/common-validators.d.ts +143 -0
- package/validators/common-validators.js +249 -0
- package/validators/custom-validate.examples.d.ts +23 -0
- package/validators/custom-validate.examples.js +78 -6
- package/validators/custom-validate.validator.d.ts +108 -0
- package/validators/custom-validate.validator.js +85 -0
- package/validators/file-mimetype.validator.d.ts +0 -2
- package/validators/file-mimetype.validator.js +4 -6
- package/validators/index.d.ts +1 -0
- package/validators/index.js +1 -0
- package/validators/is-exists.validator.d.ts +26 -6
- package/validators/is-exists.validator.js +30 -7
- package/validators/is-unique.validator.d.ts +33 -7
- package/validators/is-unique.validator.js +59 -17
- package/validators/skip-empty.validator.d.ts +5 -0
- package/validators/skip-empty.validator.js +5 -0
- package/vault/interfaces/vault-options.interface.d.ts +9 -0
- package/vault/vault-config.loader.d.ts +30 -0
- package/vault/vault-config.loader.js +48 -1
- package/vault/vault-config.service.d.ts +53 -0
- package/vault/vault-config.service.js +57 -0
- package/vault/vault.module.d.ts +4 -0
- package/vault/vault.module.js +4 -0
- package/cache/providers/memory-cache.provider.d.ts +0 -26
- package/cache/providers/memory-cache.provider.js +0 -171
- package/decorators/examples/validation-decorators.example.d.ts +0 -69
- package/decorators/examples/validation-decorators.example.js +0 -331
- package/http-client/services/cache.service.d.ts +0 -24
- package/http-client/services/cache.service.js +0 -264
- package/shared/services/validator.service.d.ts +0 -3
- package/shared/services/validator.service.js +0 -20
- /package/shared/{serviceRegistryModule.d.ts → service-registry.module.d.ts} +0 -0
|
@@ -24,6 +24,9 @@ const common_1 = require("@nestjs/common");
|
|
|
24
24
|
const schedule_1 = require("@nestjs/schedule");
|
|
25
25
|
const http_log_query_service_1 = require("./http-log-query.service");
|
|
26
26
|
const schedule_decorator_1 = require("../../setup/schedule.decorator");
|
|
27
|
+
/**
|
|
28
|
+
* HTTP日志清理服务
|
|
29
|
+
*/
|
|
27
30
|
let HttpLogCleanupService = HttpLogCleanupService_1 = class HttpLogCleanupService {
|
|
28
31
|
constructor(logQueryService, config = {}) {
|
|
29
32
|
this.logQueryService = logQueryService;
|
|
@@ -33,7 +36,7 @@ let HttpLogCleanupService = HttpLogCleanupService_1 = class HttpLogCleanupServic
|
|
|
33
36
|
strategy: 'retention',
|
|
34
37
|
retentionDays: 30,
|
|
35
38
|
maxRecords: 1000000,
|
|
36
|
-
schedule: schedule_1.CronExpression.EVERY_DAY_AT_2AM,
|
|
39
|
+
schedule: schedule_1.CronExpression.EVERY_DAY_AT_2AM, // 每天凌晨2点执行
|
|
37
40
|
batchSize: 10000,
|
|
38
41
|
preserveErrorLogs: true,
|
|
39
42
|
errorLogRetentionDays: 90,
|
|
@@ -43,6 +46,7 @@ let HttpLogCleanupService = HttpLogCleanupService_1 = class HttpLogCleanupServic
|
|
|
43
46
|
slowRequestRetentionDays: 60,
|
|
44
47
|
slowRequestThreshold: 5000,
|
|
45
48
|
};
|
|
49
|
+
// Override defaults with provided config
|
|
46
50
|
if (Object.keys(config).length > 0) {
|
|
47
51
|
Object.assign(this.defaultConfig, config);
|
|
48
52
|
}
|
|
@@ -59,6 +63,9 @@ let HttpLogCleanupService = HttpLogCleanupService_1 = class HttpLogCleanupServic
|
|
|
59
63
|
this.logger.warn('HTTP log cleanup is disabled');
|
|
60
64
|
}
|
|
61
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* 定时清理任务
|
|
68
|
+
*/
|
|
62
69
|
scheduledCleanup() {
|
|
63
70
|
return __awaiter(this, void 0, void 0, function* () {
|
|
64
71
|
if (!this.cleanupConfig.enabled) {
|
|
@@ -68,6 +75,9 @@ let HttpLogCleanupService = HttpLogCleanupService_1 = class HttpLogCleanupServic
|
|
|
68
75
|
return this.performCleanup();
|
|
69
76
|
});
|
|
70
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* 执行手动清理
|
|
80
|
+
*/
|
|
71
81
|
manualCleanup(options) {
|
|
72
82
|
return __awaiter(this, void 0, void 0, function* () {
|
|
73
83
|
const config = Object.assign(Object.assign({}, this.cleanupConfig), options);
|
|
@@ -78,18 +88,28 @@ let HttpLogCleanupService = HttpLogCleanupService_1 = class HttpLogCleanupServic
|
|
|
78
88
|
return this.performCleanup(config);
|
|
79
89
|
});
|
|
80
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* 获取清理配置
|
|
93
|
+
*/
|
|
81
94
|
getConfig() {
|
|
82
95
|
return this.cleanupConfig;
|
|
83
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* 更新清理配置
|
|
99
|
+
*/
|
|
84
100
|
updateConfig(config) {
|
|
85
101
|
Object.assign(this.defaultConfig, config);
|
|
86
102
|
this.logger.log('Cleanup configuration updated');
|
|
87
103
|
}
|
|
104
|
+
/**
|
|
105
|
+
* 检查清理状态
|
|
106
|
+
*/
|
|
88
107
|
getCleanupStatus() {
|
|
89
108
|
return __awaiter(this, void 0, void 0, function* () {
|
|
90
109
|
const config = this.cleanupConfig;
|
|
91
110
|
const stats = yield this.logQueryService.getStats();
|
|
92
111
|
const recommendations = [];
|
|
112
|
+
// 生成建议
|
|
93
113
|
if (stats.totalRequests > (config.maxRecords || Infinity) * 0.9) {
|
|
94
114
|
recommendations.push('Current records approaching limit, consider adjusting retention policy');
|
|
95
115
|
}
|
|
@@ -107,12 +127,17 @@ let HttpLogCleanupService = HttpLogCleanupService_1 = class HttpLogCleanupServic
|
|
|
107
127
|
};
|
|
108
128
|
});
|
|
109
129
|
}
|
|
130
|
+
/**
|
|
131
|
+
* 预览清理操作(不实际执行)
|
|
132
|
+
*/
|
|
110
133
|
previewCleanup(config) {
|
|
111
134
|
return __awaiter(this, void 0, void 0, function* () {
|
|
112
135
|
const finalConfig = Object.assign(Object.assign({}, this.cleanupConfig), config);
|
|
113
136
|
const stats = yield this.logQueryService.getStats();
|
|
114
137
|
const cutoffDate = new Date();
|
|
115
138
|
cutoffDate.setDate(cutoffDate.getDate() - finalConfig.retentionDays);
|
|
139
|
+
// 这里应该根据实际的数据库查询来计算分解数据
|
|
140
|
+
// 简化实现:
|
|
116
141
|
return {
|
|
117
142
|
strategy: finalConfig.strategy,
|
|
118
143
|
currentRecords: stats.totalRequests,
|
|
@@ -128,6 +153,9 @@ let HttpLogCleanupService = HttpLogCleanupService_1 = class HttpLogCleanupServic
|
|
|
128
153
|
};
|
|
129
154
|
});
|
|
130
155
|
}
|
|
156
|
+
/**
|
|
157
|
+
* 执行清理操作
|
|
158
|
+
*/
|
|
131
159
|
performCleanup() {
|
|
132
160
|
return __awaiter(this, arguments, void 0, function* (config = this.cleanupConfig) {
|
|
133
161
|
const startTime = Date.now();
|
|
@@ -135,6 +163,7 @@ let HttpLogCleanupService = HttpLogCleanupService_1 = class HttpLogCleanupServic
|
|
|
135
163
|
let deletedCount = 0;
|
|
136
164
|
const batchCount = 0;
|
|
137
165
|
try {
|
|
166
|
+
// 获取清理前的总记录数
|
|
138
167
|
const beforeStats = yield this.logQueryService.getStats();
|
|
139
168
|
const beforeCount = beforeStats.totalRequests;
|
|
140
169
|
switch (config.strategy) {
|
|
@@ -150,6 +179,7 @@ let HttpLogCleanupService = HttpLogCleanupService_1 = class HttpLogCleanupServic
|
|
|
150
179
|
default:
|
|
151
180
|
throw new Error(`Unknown cleanup strategy: ${config.strategy}`);
|
|
152
181
|
}
|
|
182
|
+
// 获取清理后的总记录数
|
|
153
183
|
const afterStats = yield this.logQueryService.getStats();
|
|
154
184
|
const afterCount = afterStats.totalRequests;
|
|
155
185
|
const duration = Date.now() - startTime;
|
|
@@ -176,12 +206,16 @@ let HttpLogCleanupService = HttpLogCleanupService_1 = class HttpLogCleanupServic
|
|
|
176
206
|
}
|
|
177
207
|
});
|
|
178
208
|
}
|
|
209
|
+
/**
|
|
210
|
+
* 基于时间的清理策略
|
|
211
|
+
*/
|
|
179
212
|
cleanupByRetention(config, errors) {
|
|
180
213
|
return __awaiter(this, void 0, void 0, function* () {
|
|
181
214
|
let totalDeleted = 0;
|
|
182
215
|
const cutoffDate = new Date();
|
|
183
216
|
cutoffDate.setDate(cutoffDate.getDate() - config.retentionDays);
|
|
184
217
|
try {
|
|
218
|
+
// 清理普通日志
|
|
185
219
|
const normalDeleted = yield this.logQueryService.deleteOldLogs(config.retentionDays);
|
|
186
220
|
totalDeleted += normalDeleted;
|
|
187
221
|
}
|
|
@@ -189,17 +223,25 @@ let HttpLogCleanupService = HttpLogCleanupService_1 = class HttpLogCleanupServic
|
|
|
189
223
|
errors.push(`Retention cleanup failed: ${error.message}`);
|
|
190
224
|
return 0;
|
|
191
225
|
}
|
|
226
|
+
// 如果需要保留错误日志
|
|
192
227
|
if (config.preserveErrorLogs &&
|
|
193
228
|
config.errorLogRetentionDays > config.retentionDays) {
|
|
229
|
+
// 保留错误日志的逻辑已经在deleteOldLogs中处理
|
|
194
230
|
this.logger.log(`Preserving error logs for ${config.errorLogRetentionDays} days`);
|
|
195
231
|
}
|
|
232
|
+
// 清理慢请求日志(如果启用了较长的保留期)
|
|
196
233
|
if (config.preserveSlowRequests &&
|
|
197
234
|
config.slowRequestRetentionDays > config.retentionDays) {
|
|
235
|
+
// 这里需要特殊的逻辑来保留慢请求
|
|
236
|
+
// 由于当前的deleteOldLogs不区分日志类型,我们需要实现特殊逻辑
|
|
198
237
|
this.logger.log(`Preserving slow requests for ${config.slowRequestRetentionDays} days`);
|
|
199
238
|
}
|
|
200
239
|
return totalDeleted;
|
|
201
240
|
});
|
|
202
241
|
}
|
|
242
|
+
/**
|
|
243
|
+
* 基于数量的清理策略
|
|
244
|
+
*/
|
|
203
245
|
cleanupBySize(config, errors) {
|
|
204
246
|
return __awaiter(this, void 0, void 0, function* () {
|
|
205
247
|
if (!config.maxRecords) {
|
|
@@ -213,10 +255,12 @@ let HttpLogCleanupService = HttpLogCleanupService_1 = class HttpLogCleanupServic
|
|
|
213
255
|
}
|
|
214
256
|
const excessCount = stats.totalRequests - config.maxRecords;
|
|
215
257
|
const targetCutoffDate = new Date();
|
|
216
|
-
|
|
258
|
+
// 计算需要删除的记录对应的时间点
|
|
259
|
+
const averageDailyRecords = stats.totalRequests / 30; // 假设30天的数据
|
|
217
260
|
const daysToDelete = Math.ceil(excessCount / averageDailyRecords);
|
|
218
261
|
targetCutoffDate.setDate(targetCutoffDate.getDate() - daysToDelete);
|
|
219
262
|
try {
|
|
263
|
+
// 使用更精确的日期进行清理
|
|
220
264
|
const deleted = yield this.logQueryService.deleteOldLogs(Math.ceil((Date.now() - targetCutoffDate.getTime()) / (24 * 60 * 60 * 1000)));
|
|
221
265
|
this.logger.log(`Size-based cleanup: deleted ${deleted} records, cutoff date: ${targetCutoffDate.toISOString()}`);
|
|
222
266
|
return deleted;
|
|
@@ -227,11 +271,16 @@ let HttpLogCleanupService = HttpLogCleanupService_1 = class HttpLogCleanupServic
|
|
|
227
271
|
}
|
|
228
272
|
});
|
|
229
273
|
}
|
|
274
|
+
/**
|
|
275
|
+
* 组合清理策略
|
|
276
|
+
*/
|
|
230
277
|
cleanupByCombination(config, errors) {
|
|
231
278
|
return __awaiter(this, void 0, void 0, function* () {
|
|
232
279
|
let totalDeleted = 0;
|
|
280
|
+
// 首先基于时间清理
|
|
233
281
|
const retentionDeleted = yield this.cleanupByRetention(config, errors);
|
|
234
282
|
totalDeleted += retentionDeleted;
|
|
283
|
+
// 如果仍然超过最大记录数,进行基于数量的清理
|
|
235
284
|
if (config.maxRecords) {
|
|
236
285
|
const stats = yield this.logQueryService.getStats();
|
|
237
286
|
if (stats.totalRequests > config.maxRecords) {
|
|
@@ -242,6 +291,9 @@ let HttpLogCleanupService = HttpLogCleanupService_1 = class HttpLogCleanupServic
|
|
|
242
291
|
return totalDeleted;
|
|
243
292
|
});
|
|
244
293
|
}
|
|
294
|
+
/**
|
|
295
|
+
* 创建清理统计
|
|
296
|
+
*/
|
|
245
297
|
createCleanupStats(strategy, beforeCount, afterCount, deletedCount, batchCount, errors) {
|
|
246
298
|
return {
|
|
247
299
|
cleanupTime: new Date(),
|
|
@@ -1,14 +1,62 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { OnModuleDestroy } from '@nestjs/common';
|
|
2
|
+
import { Repository } from 'typeorm';
|
|
2
3
|
import { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios';
|
|
3
4
|
import { HttpLogEntity } from '../entities/http-log.entity';
|
|
4
|
-
|
|
5
|
-
|
|
5
|
+
/**
|
|
6
|
+
* 异步日志配置
|
|
7
|
+
*/
|
|
8
|
+
interface AsyncLogConfig {
|
|
9
|
+
/** 批量大小 */
|
|
10
|
+
batchSize: number;
|
|
11
|
+
/** 刷新间隔(毫秒) */
|
|
12
|
+
flushIntervalMs: number;
|
|
13
|
+
/** 最大重试次数 */
|
|
14
|
+
maxRetries: number;
|
|
15
|
+
/** 是否启用异步日志 */
|
|
16
|
+
enabled: boolean;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* HTTP日志服务
|
|
20
|
+
* 基于Spring Boot的请求日志记录机制,集成现有的ContextProvider
|
|
21
|
+
* 支持异步批量日志写入以提升性能
|
|
22
|
+
*/
|
|
23
|
+
export declare class HttpLoggingService implements OnModuleDestroy {
|
|
6
24
|
private readonly logger;
|
|
7
25
|
private logRepository;
|
|
8
|
-
|
|
26
|
+
/** 日志队列 */
|
|
27
|
+
private logQueue;
|
|
28
|
+
/** 定时器 */
|
|
29
|
+
private flushTimer?;
|
|
30
|
+
/** 默认异步日志配置 */
|
|
31
|
+
private readonly asyncConfig;
|
|
32
|
+
/** 处理中标志 */
|
|
33
|
+
private isProcessing;
|
|
34
|
+
constructor();
|
|
35
|
+
onModuleDestroy(): void;
|
|
36
|
+
initRepository(dataSource: string, tableName: string): Repository<HttpLogEntity>;
|
|
37
|
+
/**
|
|
38
|
+
* 记录请求开始
|
|
39
|
+
*/
|
|
9
40
|
logRequestStart(config: AxiosRequestConfig, loggingOptions: any, requestId?: string): string;
|
|
10
|
-
|
|
11
|
-
|
|
41
|
+
/**
|
|
42
|
+
* 记录请求成功响应
|
|
43
|
+
*/
|
|
44
|
+
logRequestSuccess(response: AxiosResponse, startTime: number, requestId: string, loggingOptions: any, databaseLogging?: boolean, retryRecords?: any[], circuitBreakerState?: string, decoratorContext?: any, clientName?: string, callingContext?: {
|
|
45
|
+
serviceClass?: string;
|
|
46
|
+
methodName?: string;
|
|
47
|
+
operationName?: string;
|
|
48
|
+
}): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* 记录请求错误
|
|
51
|
+
*/
|
|
52
|
+
logRequestError(error: AxiosError, startTime: number, requestId: string, attemptCount: number, loggingOptions: any, databaseLogging?: boolean, retryRecords?: any[], circuitBreakerState?: string, decoratorContext?: any, clientName?: string, callingContext?: {
|
|
53
|
+
serviceClass?: string;
|
|
54
|
+
methodName?: string;
|
|
55
|
+
operationName?: string;
|
|
56
|
+
}): void;
|
|
57
|
+
/**
|
|
58
|
+
* 查询请求日志
|
|
59
|
+
*/
|
|
12
60
|
findLogs(options: {
|
|
13
61
|
requestId?: string;
|
|
14
62
|
userId?: string;
|
|
@@ -21,16 +69,77 @@ export declare class HttpLoggingService {
|
|
|
21
69
|
limit?: number;
|
|
22
70
|
offset?: number;
|
|
23
71
|
}): Promise<HttpLogEntity[]>;
|
|
72
|
+
/**
|
|
73
|
+
* 获取请求统计信息
|
|
74
|
+
*/
|
|
24
75
|
getStatistics(options: {
|
|
25
76
|
startDate?: Date;
|
|
26
77
|
endDate?: Date;
|
|
27
78
|
userId?: string;
|
|
28
79
|
}): Promise<any>;
|
|
29
|
-
|
|
80
|
+
/**
|
|
81
|
+
* 提取调用信息
|
|
82
|
+
*/
|
|
30
83
|
private extractCallInfo;
|
|
84
|
+
/**
|
|
85
|
+
* 保存到数据库
|
|
86
|
+
* 如果启用异步日志,将日志项添加到队列中
|
|
87
|
+
* 否则同步保存到数据库
|
|
88
|
+
*/
|
|
31
89
|
private saveToDatabase;
|
|
90
|
+
/**
|
|
91
|
+
* 启动定期刷新任务
|
|
92
|
+
*/
|
|
93
|
+
private startFlushTask;
|
|
94
|
+
/**
|
|
95
|
+
* 刷新日志队列到数据库
|
|
96
|
+
*/
|
|
97
|
+
private flush;
|
|
98
|
+
/**
|
|
99
|
+
* 处理单个日志项
|
|
100
|
+
*/
|
|
101
|
+
private processLogItem;
|
|
102
|
+
/**
|
|
103
|
+
* 同步保存日志到数据库(用于异步模式内部)
|
|
104
|
+
*/
|
|
105
|
+
private saveLogToDatabase;
|
|
106
|
+
/**
|
|
107
|
+
* 获取日志队列统计信息
|
|
108
|
+
*/
|
|
109
|
+
getQueueStats(): {
|
|
110
|
+
queueSize: number;
|
|
111
|
+
isProcessing: boolean;
|
|
112
|
+
config: AsyncLogConfig;
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* 手动刷新日志队列
|
|
116
|
+
*/
|
|
117
|
+
manualFlush(): Promise<void>;
|
|
118
|
+
/**
|
|
119
|
+
* 设置异步日志配置
|
|
120
|
+
*/
|
|
121
|
+
setAsyncConfig(config: Partial<AsyncLogConfig>): void;
|
|
122
|
+
/**
|
|
123
|
+
* 转换请求体为字符串
|
|
124
|
+
*/
|
|
32
125
|
private sanitizeBodyAsString;
|
|
126
|
+
/**
|
|
127
|
+
* 清理敏感头信息
|
|
128
|
+
*/
|
|
33
129
|
private sanitizeHeaders;
|
|
130
|
+
/**
|
|
131
|
+
* 清理敏感请求体信息
|
|
132
|
+
*/
|
|
34
133
|
private sanitizeBody;
|
|
134
|
+
/**
|
|
135
|
+
* 递归清理对象中的敏感字段
|
|
136
|
+
*/
|
|
35
137
|
private sanitizeObject;
|
|
138
|
+
/**
|
|
139
|
+
* 获取完整URL
|
|
140
|
+
* @param config Axios请求配置
|
|
141
|
+
* @returns 完整的URL字符串
|
|
142
|
+
*/
|
|
143
|
+
private getFullUrl;
|
|
36
144
|
}
|
|
145
|
+
export {};
|