@nest-omni/core 4.1.3-2 → 4.1.3-20
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 +10 -0
- package/audit/audit.module.js +63 -1
- package/audit/controllers/audit.controller.d.ts +88 -0
- package/audit/controllers/audit.controller.js +74 -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 +45 -0
- package/audit/decorators/audit-operation.decorator.js +49 -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-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/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 +11 -0
- package/audit/entities/entity-audit-log.entity.js +57 -2
- 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 -0
- package/audit/entities/manual-operation-log.entity.js +12 -1
- 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 +37 -6
- package/audit/enums/audit.enums.js +40 -7
- package/audit/index.d.ts +4 -1
- package/audit/index.js +34 -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 +15 -0
- package/audit/interceptors/audit.interceptor.js +23 -1
- package/audit/interceptors/index.d.ts +1 -0
- package/audit/interceptors/index.js +1 -0
- package/audit/interfaces/audit.interfaces.d.ts +187 -2
- 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 +97 -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 +230 -3
- package/audit/services/entity-audit.service.js +607 -14
- package/audit/services/index.d.ts +3 -0
- package/audit/services/index.js +3 -0
- package/audit/services/manual-audit-log.service.d.ts +134 -9
- package/audit/services/manual-audit-log.service.js +157 -40
- 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 +19 -0
- package/audit/subscribers/entity-audit.subscriber.js +76 -1
- 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 +82 -2
- package/cache/cache.module.js +76 -5
- package/cache/cache.service.d.ts +140 -0
- package/cache/cache.service.js +169 -0
- 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/examples/basic-usage.d.ts +15 -0
- package/cache/examples/basic-usage.js +62 -8
- package/cache/index.js +9 -0
- 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/memory-cache.provider.d.ts +43 -0
- package/cache/providers/memory-cache.provider.js +66 -0
- package/cache/providers/redis-cache.provider.d.ts +26 -0
- package/cache/providers/redis-cache.provider.js +29 -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 +142 -0
- package/common/boilerplate.polyfill.js +18 -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/utils.d.ts +15 -0
- package/common/utils.js +15 -0
- package/constants/language-code.js +1 -0
- package/decorators/field.decorators.d.ts +1 -1
- package/decorators/field.decorators.js +8 -1
- package/decorators/property.decorators.js +1 -0
- package/decorators/public-route.decorator.js +1 -0
- package/decorators/transform.decorators.d.ts +27 -0
- package/decorators/transform.decorators.js +29 -0
- 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/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 +52 -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/package.json +11 -7
- package/providers/context.provider.js +2 -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 +1 -0
- package/setup/bootstrap.setup.js +21 -0
- 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 -17
- 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/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
|
@@ -2,43 +2,110 @@ import { AxiosRequestConfig } from 'axios';
|
|
|
2
2
|
import { HttpClientService } from './http-client.service';
|
|
3
3
|
import { HttpLogQueryService } from './http-log-query.service';
|
|
4
4
|
import { HttpLogEntity } from '../entities/http-log.entity';
|
|
5
|
+
/**
|
|
6
|
+
* 请求重放选项
|
|
7
|
+
*/
|
|
5
8
|
export interface HttpReplayOptions {
|
|
9
|
+
/** 是否覆盖原始请求头 */
|
|
6
10
|
overrideHeaders?: boolean;
|
|
11
|
+
/** 是否覆盖原始请求体 */
|
|
7
12
|
overrideBody?: boolean;
|
|
13
|
+
/** 是否覆盖原始参数 */
|
|
8
14
|
overrideParams?: boolean;
|
|
15
|
+
/** 重放时的额外请求头 */
|
|
9
16
|
additionalHeaders?: Record<string, string>;
|
|
17
|
+
/** 重放时的额外元数据 */
|
|
10
18
|
metadata?: Record<string, any>;
|
|
19
|
+
/** 是否记录重放日志 */
|
|
11
20
|
logReplay?: boolean;
|
|
21
|
+
/** 重放超时时间(毫秒) */
|
|
12
22
|
timeout?: number;
|
|
13
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* 请求重放结果
|
|
26
|
+
*/
|
|
14
27
|
export interface HttpReplayResult {
|
|
28
|
+
/** 重放的日志信息 */
|
|
15
29
|
originalLog: HttpLogEntity;
|
|
30
|
+
/** 重放的请求配置 */
|
|
16
31
|
requestConfig: AxiosRequestConfig;
|
|
32
|
+
/** 重放的响应结果 */
|
|
17
33
|
response: any;
|
|
34
|
+
/** 重放耗时(毫秒) */
|
|
18
35
|
responseTime: number;
|
|
36
|
+
/** 重放是否成功 */
|
|
19
37
|
success: boolean;
|
|
38
|
+
/** 错误信息(如果失败) */
|
|
20
39
|
error?: string;
|
|
40
|
+
/** 重放时间戳 */
|
|
21
41
|
replayTimestamp: string;
|
|
42
|
+
/** 重放ID */
|
|
22
43
|
replayId: string;
|
|
23
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* 批量重放结果
|
|
47
|
+
*/
|
|
24
48
|
export interface BatchReplayResult {
|
|
49
|
+
/** 总请求数 */
|
|
25
50
|
totalRequests: number;
|
|
51
|
+
/** 成功请求数 */
|
|
26
52
|
successfulRequests: number;
|
|
53
|
+
/** 失败请求数 */
|
|
27
54
|
failedRequests: number;
|
|
55
|
+
/** 成功率 */
|
|
28
56
|
successRate: number;
|
|
57
|
+
/** 总耗时(毫秒) */
|
|
29
58
|
totalResponseTime: number;
|
|
59
|
+
/** 平均响应时间(毫秒) */
|
|
30
60
|
averageResponseTime: number;
|
|
61
|
+
/** 单个重放结果 */
|
|
31
62
|
results: HttpReplayResult[];
|
|
32
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* HTTP请求重放服务
|
|
66
|
+
* 提供基于HTTP日志的请求重放功能,支持单个请求和批量请求重放
|
|
67
|
+
*/
|
|
33
68
|
export declare class HttpReplayService {
|
|
34
69
|
private readonly httpClient;
|
|
35
70
|
private readonly logQueryService;
|
|
36
71
|
private readonly logger;
|
|
37
72
|
constructor(httpClient: HttpClientService, logQueryService: HttpLogQueryService);
|
|
73
|
+
/**
|
|
74
|
+
* 根据日志ID重放请求
|
|
75
|
+
* @param logId 日志ID
|
|
76
|
+
* @param options 重放选项
|
|
77
|
+
* @returns 重放结果
|
|
78
|
+
*/
|
|
38
79
|
replayByLogId(logId: string, options?: HttpReplayOptions): Promise<HttpReplayResult>;
|
|
80
|
+
/**
|
|
81
|
+
* 根据请求ID重放请求
|
|
82
|
+
* @param requestId 请求ID
|
|
83
|
+
* @param options 重放选项
|
|
84
|
+
* @returns 重放结果
|
|
85
|
+
*/
|
|
39
86
|
replayByRequestId(requestId: string, options?: HttpReplayOptions): Promise<HttpReplayResult>;
|
|
87
|
+
/**
|
|
88
|
+
* 批量重放请求
|
|
89
|
+
* @param logIds 日志ID数组
|
|
90
|
+
* @param options 重放选项
|
|
91
|
+
* @param concurrency 并发数
|
|
92
|
+
* @returns 批量重放结果
|
|
93
|
+
*/
|
|
40
94
|
batchReplay(logIds: string[], options?: HttpReplayOptions, concurrency?: number): Promise<BatchReplayResult>;
|
|
95
|
+
/**
|
|
96
|
+
* 根据查询条件批量重放请求
|
|
97
|
+
* @param queryOptions 查询选项
|
|
98
|
+
* @param replayOptions 重放选项
|
|
99
|
+
* @param concurrency 并发数
|
|
100
|
+
* @returns 批量重放结果
|
|
101
|
+
*/
|
|
41
102
|
batchReplayByQuery(queryOptions?: any, replayOptions?: HttpReplayOptions, concurrency?: number): Promise<BatchReplayResult>;
|
|
103
|
+
/**
|
|
104
|
+
* 重放请求并比较结果
|
|
105
|
+
* @param logId 日志ID
|
|
106
|
+
* @param options 重放选项
|
|
107
|
+
* @returns 包含原始和重放结果的比较
|
|
108
|
+
*/
|
|
42
109
|
replayAndCompare(logId: string, options?: HttpReplayOptions): Promise<{
|
|
43
110
|
original: HttpLogEntity;
|
|
44
111
|
replay: HttpReplayResult;
|
|
@@ -49,10 +116,44 @@ export declare class HttpReplayService {
|
|
|
49
116
|
bodyMatch: boolean;
|
|
50
117
|
};
|
|
51
118
|
}>;
|
|
119
|
+
/**
|
|
120
|
+
* 构建重放配置
|
|
121
|
+
* @param log 原始日志
|
|
122
|
+
* @param options 重放选项
|
|
123
|
+
* @returns 请求配置
|
|
124
|
+
*/
|
|
52
125
|
private buildReplayConfig;
|
|
126
|
+
/**
|
|
127
|
+
* 执行重放请求
|
|
128
|
+
* @param config 请求配置
|
|
129
|
+
* @param options 重放选项
|
|
130
|
+
* @returns 响应结果
|
|
131
|
+
*/
|
|
53
132
|
private executeReplayRequest;
|
|
133
|
+
/**
|
|
134
|
+
* 生成重放ID
|
|
135
|
+
* @returns 重放ID
|
|
136
|
+
*/
|
|
54
137
|
private generateReplayId;
|
|
138
|
+
/**
|
|
139
|
+
* 数组分块
|
|
140
|
+
* @param array 原始数组
|
|
141
|
+
* @param size 块大小
|
|
142
|
+
* @returns 分块后的数组
|
|
143
|
+
*/
|
|
55
144
|
private chunkArray;
|
|
145
|
+
/**
|
|
146
|
+
* 比较响应头
|
|
147
|
+
* @param original 原始响应头
|
|
148
|
+
* @param replay 重放响应头
|
|
149
|
+
* @returns 是否匹配
|
|
150
|
+
*/
|
|
56
151
|
private compareHeaders;
|
|
152
|
+
/**
|
|
153
|
+
* 比较响应体
|
|
154
|
+
* @param original 原始响应体
|
|
155
|
+
* @param replay 重放响应体
|
|
156
|
+
* @returns 是否匹配
|
|
157
|
+
*/
|
|
57
158
|
private compareBodies;
|
|
58
159
|
}
|
|
@@ -23,25 +23,39 @@ exports.HttpReplayService = void 0;
|
|
|
23
23
|
const common_1 = require("@nestjs/common");
|
|
24
24
|
const http_client_service_1 = require("./http-client.service");
|
|
25
25
|
const http_log_query_service_1 = require("./http-log-query.service");
|
|
26
|
+
/**
|
|
27
|
+
* HTTP请求重放服务
|
|
28
|
+
* 提供基于HTTP日志的请求重放功能,支持单个请求和批量请求重放
|
|
29
|
+
*/
|
|
26
30
|
let HttpReplayService = HttpReplayService_1 = class HttpReplayService {
|
|
27
31
|
constructor(httpClient, logQueryService) {
|
|
28
32
|
this.httpClient = httpClient;
|
|
29
33
|
this.logQueryService = logQueryService;
|
|
30
34
|
this.logger = new common_1.Logger(HttpReplayService_1.name);
|
|
31
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* 根据日志ID重放请求
|
|
38
|
+
* @param logId 日志ID
|
|
39
|
+
* @param options 重放选项
|
|
40
|
+
* @returns 重放结果
|
|
41
|
+
*/
|
|
32
42
|
replayByLogId(logId_1) {
|
|
33
43
|
return __awaiter(this, arguments, void 0, function* (logId, options = {}) {
|
|
34
44
|
const startTime = Date.now();
|
|
35
45
|
const replayId = this.generateReplayId();
|
|
36
46
|
try {
|
|
47
|
+
// 获取原始日志
|
|
37
48
|
const originalLog = yield this.logQueryService.findLogById(logId, true);
|
|
38
49
|
if (!originalLog) {
|
|
39
50
|
throw new Error(`Log with ID ${logId} not found`);
|
|
40
51
|
}
|
|
52
|
+
// 构建重放配置
|
|
41
53
|
const requestConfig = this.buildReplayConfig(originalLog, options);
|
|
54
|
+
// 记录重放开始
|
|
42
55
|
if (options.logReplay !== false) {
|
|
43
56
|
this.logger.log(`Starting replay for log ${logId} (replay ID: ${replayId})`);
|
|
44
57
|
}
|
|
58
|
+
// 执行重放请求
|
|
45
59
|
const response = yield this.executeReplayRequest(requestConfig, options);
|
|
46
60
|
const endTime = Date.now();
|
|
47
61
|
const responseTime = endTime - startTime;
|
|
@@ -77,6 +91,12 @@ let HttpReplayService = HttpReplayService_1 = class HttpReplayService {
|
|
|
77
91
|
}
|
|
78
92
|
});
|
|
79
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* 根据请求ID重放请求
|
|
96
|
+
* @param requestId 请求ID
|
|
97
|
+
* @param options 重放选项
|
|
98
|
+
* @returns 重放结果
|
|
99
|
+
*/
|
|
80
100
|
replayByRequestId(requestId_1) {
|
|
81
101
|
return __awaiter(this, arguments, void 0, function* (requestId, options = {}) {
|
|
82
102
|
const originalLog = yield this.logQueryService.findLogByRequestId(requestId);
|
|
@@ -86,10 +106,18 @@ let HttpReplayService = HttpReplayService_1 = class HttpReplayService {
|
|
|
86
106
|
return this.replayByLogId(originalLog.id, options);
|
|
87
107
|
});
|
|
88
108
|
}
|
|
109
|
+
/**
|
|
110
|
+
* 批量重放请求
|
|
111
|
+
* @param logIds 日志ID数组
|
|
112
|
+
* @param options 重放选项
|
|
113
|
+
* @param concurrency 并发数
|
|
114
|
+
* @returns 批量重放结果
|
|
115
|
+
*/
|
|
89
116
|
batchReplay(logIds_1) {
|
|
90
117
|
return __awaiter(this, arguments, void 0, function* (logIds, options = {}, concurrency = 5) {
|
|
91
118
|
const startTime = Date.now();
|
|
92
119
|
this.logger.log(`Starting batch replay for ${logIds.length} logs`);
|
|
120
|
+
// 分批处理
|
|
93
121
|
const results = [];
|
|
94
122
|
const chunks = this.chunkArray(logIds, concurrency);
|
|
95
123
|
for (const chunk of chunks) {
|
|
@@ -114,6 +142,7 @@ let HttpReplayService = HttpReplayService_1 = class HttpReplayService {
|
|
|
114
142
|
const chunkResults = yield Promise.all(chunkPromises);
|
|
115
143
|
results.push(...chunkResults);
|
|
116
144
|
}
|
|
145
|
+
// 统计结果
|
|
117
146
|
const successfulRequests = results.filter((r) => r.success).length;
|
|
118
147
|
const failedRequests = results.length - successfulRequests;
|
|
119
148
|
const totalResponseTime = results.reduce((sum, r) => sum + r.responseTime, 0);
|
|
@@ -131,9 +160,18 @@ let HttpReplayService = HttpReplayService_1 = class HttpReplayService {
|
|
|
131
160
|
return batchResult;
|
|
132
161
|
});
|
|
133
162
|
}
|
|
163
|
+
/**
|
|
164
|
+
* 根据查询条件批量重放请求
|
|
165
|
+
* @param queryOptions 查询选项
|
|
166
|
+
* @param replayOptions 重放选项
|
|
167
|
+
* @param concurrency 并发数
|
|
168
|
+
* @returns 批量重放结果
|
|
169
|
+
*/
|
|
134
170
|
batchReplayByQuery() {
|
|
135
171
|
return __awaiter(this, arguments, void 0, function* (queryOptions = {}, replayOptions = {}, concurrency = 5) {
|
|
172
|
+
// 限制查询数量以避免过大的批量操作
|
|
136
173
|
const limitedQueryOptions = Object.assign(Object.assign({}, queryOptions), { limit: Math.min(queryOptions.limit || 50, 100) });
|
|
174
|
+
// 查询日志
|
|
137
175
|
const queryResult = yield this.logQueryService.findLogs(limitedQueryOptions);
|
|
138
176
|
const logIds = queryResult.logs.map((log) => log.id);
|
|
139
177
|
if (logIds.length === 0) {
|
|
@@ -152,6 +190,12 @@ let HttpReplayService = HttpReplayService_1 = class HttpReplayService {
|
|
|
152
190
|
return this.batchReplay(logIds, replayOptions, concurrency);
|
|
153
191
|
});
|
|
154
192
|
}
|
|
193
|
+
/**
|
|
194
|
+
* 重放请求并比较结果
|
|
195
|
+
* @param logId 日志ID
|
|
196
|
+
* @param options 重放选项
|
|
197
|
+
* @returns 包含原始和重放结果的比较
|
|
198
|
+
*/
|
|
155
199
|
replayAndCompare(logId_1) {
|
|
156
200
|
return __awaiter(this, arguments, void 0, function* (logId, options = {}) {
|
|
157
201
|
var _a, _b, _c;
|
|
@@ -160,6 +204,7 @@ let HttpReplayService = HttpReplayService_1 = class HttpReplayService {
|
|
|
160
204
|
throw new Error(`Log with ID ${logId} not found`);
|
|
161
205
|
}
|
|
162
206
|
const replayResult = yield this.replayByLogId(logId, options);
|
|
207
|
+
// 比较结果
|
|
163
208
|
const comparison = {
|
|
164
209
|
statusMatch: originalLog.statusCode === ((_a = replayResult.response) === null || _a === void 0 ? void 0 : _a.status),
|
|
165
210
|
responseTimeDifference: replayResult.responseTime - originalLog.responseTime,
|
|
@@ -173,6 +218,12 @@ let HttpReplayService = HttpReplayService_1 = class HttpReplayService {
|
|
|
173
218
|
};
|
|
174
219
|
});
|
|
175
220
|
}
|
|
221
|
+
/**
|
|
222
|
+
* 构建重放配置
|
|
223
|
+
* @param log 原始日志
|
|
224
|
+
* @param options 重放选项
|
|
225
|
+
* @returns 请求配置
|
|
226
|
+
*/
|
|
176
227
|
buildReplayConfig(log, options) {
|
|
177
228
|
const config = {
|
|
178
229
|
method: log.method,
|
|
@@ -180,6 +231,7 @@ let HttpReplayService = HttpReplayService_1 = class HttpReplayService {
|
|
|
180
231
|
headers: Object.assign({}, log.headers),
|
|
181
232
|
params: Object.assign({}, log.params),
|
|
182
233
|
};
|
|
234
|
+
// 处理请求体
|
|
183
235
|
if (log.body) {
|
|
184
236
|
try {
|
|
185
237
|
config.data =
|
|
@@ -189,6 +241,7 @@ let HttpReplayService = HttpReplayService_1 = class HttpReplayService {
|
|
|
189
241
|
config.data = log.body;
|
|
190
242
|
}
|
|
191
243
|
}
|
|
244
|
+
// 应用覆盖选项
|
|
192
245
|
if (options.overrideHeaders) {
|
|
193
246
|
config.headers = Object.assign(Object.assign({}, config.headers), options.additionalHeaders);
|
|
194
247
|
}
|
|
@@ -196,29 +249,49 @@ let HttpReplayService = HttpReplayService_1 = class HttpReplayService {
|
|
|
196
249
|
config.headers = Object.assign(Object.assign({}, config.headers), options.additionalHeaders);
|
|
197
250
|
}
|
|
198
251
|
if (options.overrideBody && options.additionalHeaders) {
|
|
252
|
+
// 如果有额外的body数据,在这里处理
|
|
199
253
|
}
|
|
200
254
|
if (options.overrideParams && options.metadata) {
|
|
201
255
|
config.params = Object.assign(Object.assign({}, config.params), options.metadata);
|
|
202
256
|
}
|
|
257
|
+
// 添加超时
|
|
203
258
|
if (options.timeout) {
|
|
204
259
|
config.timeout = options.timeout;
|
|
205
260
|
}
|
|
261
|
+
// 添加重放元数据(作为自定义属性)
|
|
206
262
|
config.metadata = Object.assign({ originalLogId: log.id, originalRequestId: log.requestId, replayTimestamp: new Date().toISOString(), replayedBy: 'http-replay-service' }, options.metadata);
|
|
207
263
|
return config;
|
|
208
264
|
}
|
|
265
|
+
/**
|
|
266
|
+
* 执行重放请求
|
|
267
|
+
* @param config 请求配置
|
|
268
|
+
* @param options 重放选项
|
|
269
|
+
* @returns 响应结果
|
|
270
|
+
*/
|
|
209
271
|
executeReplayRequest(config, options) {
|
|
210
272
|
return __awaiter(this, void 0, void 0, function* () {
|
|
211
273
|
try {
|
|
212
274
|
return yield this.httpClient.request(config);
|
|
213
275
|
}
|
|
214
276
|
catch (error) {
|
|
277
|
+
// 如果请求失败,重新抛出错误
|
|
215
278
|
throw error;
|
|
216
279
|
}
|
|
217
280
|
});
|
|
218
281
|
}
|
|
282
|
+
/**
|
|
283
|
+
* 生成重放ID
|
|
284
|
+
* @returns 重放ID
|
|
285
|
+
*/
|
|
219
286
|
generateReplayId() {
|
|
220
287
|
return `replay-${Date.now()}-${Math.random().toString(36).substring(2, 15)}`;
|
|
221
288
|
}
|
|
289
|
+
/**
|
|
290
|
+
* 数组分块
|
|
291
|
+
* @param array 原始数组
|
|
292
|
+
* @param size 块大小
|
|
293
|
+
* @returns 分块后的数组
|
|
294
|
+
*/
|
|
222
295
|
chunkArray(array, size) {
|
|
223
296
|
const chunks = [];
|
|
224
297
|
for (let i = 0; i < array.length; i += size) {
|
|
@@ -226,7 +299,14 @@ let HttpReplayService = HttpReplayService_1 = class HttpReplayService {
|
|
|
226
299
|
}
|
|
227
300
|
return chunks;
|
|
228
301
|
}
|
|
302
|
+
/**
|
|
303
|
+
* 比较响应头
|
|
304
|
+
* @param original 原始响应头
|
|
305
|
+
* @param replay 重放响应头
|
|
306
|
+
* @returns 是否匹配
|
|
307
|
+
*/
|
|
229
308
|
compareHeaders(original, replay) {
|
|
309
|
+
// 简化比较:忽略时间相关的头部
|
|
230
310
|
const ignoreHeaders = ['date', 'expires', 'last-modified', 'etag'];
|
|
231
311
|
const originalFiltered = Object.keys(original)
|
|
232
312
|
.filter((key) => !ignoreHeaders.includes(key.toLowerCase()))
|
|
@@ -242,6 +322,12 @@ let HttpReplayService = HttpReplayService_1 = class HttpReplayService {
|
|
|
242
322
|
}, {});
|
|
243
323
|
return JSON.stringify(originalFiltered) === JSON.stringify(replayFiltered);
|
|
244
324
|
}
|
|
325
|
+
/**
|
|
326
|
+
* 比较响应体
|
|
327
|
+
* @param original 原始响应体
|
|
328
|
+
* @param replay 重放响应体
|
|
329
|
+
* @returns 是否匹配
|
|
330
|
+
*/
|
|
245
331
|
compareBodies(original, replay) {
|
|
246
332
|
if (!original && !replay)
|
|
247
333
|
return true;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export * from './http-client.service';
|
|
2
2
|
export * from './circuit-breaker.service';
|
|
3
3
|
export * from './logging.service';
|
|
4
|
-
export * from './cache.service';
|
|
5
4
|
export * from './http-log-query.service';
|
|
6
5
|
export * from './log-cleanup.service';
|
|
7
6
|
export * from './api-client-registry.service';
|
|
@@ -17,7 +17,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./http-client.service"), exports);
|
|
18
18
|
__exportStar(require("./circuit-breaker.service"), exports);
|
|
19
19
|
__exportStar(require("./logging.service"), exports);
|
|
20
|
-
__exportStar(require("./cache.service"), exports);
|
|
21
20
|
__exportStar(require("./http-log-query.service"), exports);
|
|
22
21
|
__exportStar(require("./log-cleanup.service"), exports);
|
|
23
22
|
__exportStar(require("./api-client-registry.service"), exports);
|
|
@@ -1,31 +1,61 @@
|
|
|
1
1
|
import { OnModuleInit } from '@nestjs/common';
|
|
2
2
|
import { CronExpression } from '@nestjs/schedule';
|
|
3
3
|
import { HttpLogQueryService } from './http-log-query.service';
|
|
4
|
+
/**
|
|
5
|
+
* 日志清理配置接口
|
|
6
|
+
*/
|
|
4
7
|
export interface LogCleanupConfig {
|
|
8
|
+
/** 是否启用自动清理 */
|
|
5
9
|
enabled: boolean;
|
|
10
|
+
/** 清理策略 */
|
|
6
11
|
strategy: 'retention' | 'size' | 'combination';
|
|
12
|
+
/** 保留天数 */
|
|
7
13
|
retentionDays: number;
|
|
14
|
+
/** 最大记录数 */
|
|
8
15
|
maxRecords?: number;
|
|
16
|
+
/** 定时清理表达式 */
|
|
9
17
|
schedule?: CronExpression;
|
|
18
|
+
/** 批处理大小 */
|
|
10
19
|
batchSize?: number;
|
|
20
|
+
/** 是否保留错误日志 */
|
|
11
21
|
preserveErrorLogs?: boolean;
|
|
22
|
+
/** 错误日志保留天数 */
|
|
12
23
|
errorLogRetentionDays?: number;
|
|
24
|
+
/** 是否保留重要日志 */
|
|
13
25
|
preserveImportantLogs?: boolean;
|
|
26
|
+
/** 重要日志保留天数 */
|
|
14
27
|
importantLogRetentionDays?: number;
|
|
28
|
+
/** 是否保留慢请求日志 */
|
|
15
29
|
preserveSlowRequests?: boolean;
|
|
30
|
+
/** 慢请求日志保留天数 */
|
|
16
31
|
slowRequestRetentionDays?: number;
|
|
32
|
+
/** 慢请求阈值(毫秒) */
|
|
17
33
|
slowRequestThreshold?: number;
|
|
18
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* 清理统计信息
|
|
37
|
+
*/
|
|
19
38
|
export interface CleanupStats {
|
|
39
|
+
/** 清理时间 */
|
|
20
40
|
cleanupTime: Date;
|
|
41
|
+
/** 清理策略 */
|
|
21
42
|
strategy: string;
|
|
43
|
+
/** 清理前记录数 */
|
|
22
44
|
beforeCount: number;
|
|
45
|
+
/** 清理后记录数 */
|
|
23
46
|
afterCount: number;
|
|
47
|
+
/** 删除的记录数 */
|
|
24
48
|
deletedCount: number;
|
|
49
|
+
/** 处理的批次数量 */
|
|
25
50
|
batchCount: number;
|
|
51
|
+
/** 耗时(毫秒) */
|
|
26
52
|
duration: number;
|
|
53
|
+
/** 错误信息 */
|
|
27
54
|
errors: string[];
|
|
28
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* HTTP日志清理服务
|
|
58
|
+
*/
|
|
29
59
|
export declare class HttpLogCleanupService implements OnModuleInit {
|
|
30
60
|
private readonly logQueryService;
|
|
31
61
|
private readonly logger;
|
|
@@ -33,16 +63,34 @@ export declare class HttpLogCleanupService implements OnModuleInit {
|
|
|
33
63
|
constructor(logQueryService: HttpLogQueryService, config?: Partial<LogCleanupConfig>);
|
|
34
64
|
private get cleanupConfig();
|
|
35
65
|
onModuleInit(): void;
|
|
66
|
+
/**
|
|
67
|
+
* 定时清理任务
|
|
68
|
+
*/
|
|
36
69
|
scheduledCleanup(): Promise<CleanupStats>;
|
|
70
|
+
/**
|
|
71
|
+
* 执行手动清理
|
|
72
|
+
*/
|
|
37
73
|
manualCleanup(options?: Partial<LogCleanupConfig>): Promise<CleanupStats>;
|
|
74
|
+
/**
|
|
75
|
+
* 获取清理配置
|
|
76
|
+
*/
|
|
38
77
|
getConfig(): LogCleanupConfig;
|
|
78
|
+
/**
|
|
79
|
+
* 更新清理配置
|
|
80
|
+
*/
|
|
39
81
|
updateConfig(config: Partial<LogCleanupConfig>): void;
|
|
82
|
+
/**
|
|
83
|
+
* 检查清理状态
|
|
84
|
+
*/
|
|
40
85
|
getCleanupStatus(): Promise<{
|
|
41
86
|
enabled: boolean;
|
|
42
87
|
config: LogCleanupConfig;
|
|
43
88
|
currentStats: any;
|
|
44
89
|
recommendations: string[];
|
|
45
90
|
}>;
|
|
91
|
+
/**
|
|
92
|
+
* 预览清理操作(不实际执行)
|
|
93
|
+
*/
|
|
46
94
|
previewCleanup(config?: Partial<LogCleanupConfig>): Promise<{
|
|
47
95
|
strategy: string;
|
|
48
96
|
currentRecords: number;
|
|
@@ -56,9 +104,24 @@ export declare class HttpLogCleanupService implements OnModuleInit {
|
|
|
56
104
|
importantLogs: number;
|
|
57
105
|
};
|
|
58
106
|
}>;
|
|
107
|
+
/**
|
|
108
|
+
* 执行清理操作
|
|
109
|
+
*/
|
|
59
110
|
private performCleanup;
|
|
111
|
+
/**
|
|
112
|
+
* 基于时间的清理策略
|
|
113
|
+
*/
|
|
60
114
|
private cleanupByRetention;
|
|
115
|
+
/**
|
|
116
|
+
* 基于数量的清理策略
|
|
117
|
+
*/
|
|
61
118
|
private cleanupBySize;
|
|
119
|
+
/**
|
|
120
|
+
* 组合清理策略
|
|
121
|
+
*/
|
|
62
122
|
private cleanupByCombination;
|
|
123
|
+
/**
|
|
124
|
+
* 创建清理统计
|
|
125
|
+
*/
|
|
63
126
|
private createCleanupStats;
|
|
64
127
|
}
|