@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
|
@@ -1,98 +1,307 @@
|
|
|
1
1
|
import { AbstractUuidPrimaryEntity } from '../../common';
|
|
2
|
+
/**
|
|
3
|
+
* HTTP请求日志实体
|
|
4
|
+
* 用于TypeORM数据库记录
|
|
5
|
+
*/
|
|
2
6
|
export declare class HttpLogEntity extends AbstractUuidPrimaryEntity {
|
|
7
|
+
/**
|
|
8
|
+
* 请求ID(从ContextProvider获取)
|
|
9
|
+
*/
|
|
3
10
|
requestId?: string;
|
|
11
|
+
/**
|
|
12
|
+
* 用户ID(从ContextProvider获取)
|
|
13
|
+
*/
|
|
4
14
|
userId?: string;
|
|
15
|
+
/**
|
|
16
|
+
* HTTP方法
|
|
17
|
+
*/
|
|
5
18
|
method: string;
|
|
19
|
+
/**
|
|
20
|
+
* 请求URL
|
|
21
|
+
*/
|
|
6
22
|
url: string;
|
|
23
|
+
/**
|
|
24
|
+
* 请求头信息(JSON格式)
|
|
25
|
+
*/
|
|
7
26
|
headers?: Record<string, string>;
|
|
27
|
+
/**
|
|
28
|
+
* 请求体内容
|
|
29
|
+
*/
|
|
8
30
|
body?: string;
|
|
31
|
+
/**
|
|
32
|
+
* 查询参数(JSON格式)
|
|
33
|
+
*/
|
|
9
34
|
params?: Record<string, any>;
|
|
35
|
+
/**
|
|
36
|
+
* HTTP状态码
|
|
37
|
+
*/
|
|
10
38
|
statusCode?: number;
|
|
39
|
+
/**
|
|
40
|
+
* 响应时间(毫秒)
|
|
41
|
+
*/
|
|
11
42
|
responseTime: number;
|
|
43
|
+
/**
|
|
44
|
+
* 尝试次数
|
|
45
|
+
*/
|
|
12
46
|
attemptCount: number;
|
|
47
|
+
/**
|
|
48
|
+
* 是否成功
|
|
49
|
+
*/
|
|
13
50
|
success: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* 错误信息
|
|
53
|
+
*/
|
|
14
54
|
errorMessage?: string;
|
|
55
|
+
/**
|
|
56
|
+
* 错误堆栈
|
|
57
|
+
*/
|
|
15
58
|
errorStack?: string;
|
|
59
|
+
/**
|
|
60
|
+
* 错误代码
|
|
61
|
+
*/
|
|
16
62
|
errorCode?: string;
|
|
63
|
+
/**
|
|
64
|
+
* 响应头信息(JSON格式)
|
|
65
|
+
*/
|
|
17
66
|
responseHeaders?: Record<string, string>;
|
|
67
|
+
/**
|
|
68
|
+
* 响应体内容
|
|
69
|
+
*/
|
|
18
70
|
responseBody?: string;
|
|
19
|
-
|
|
20
|
-
|
|
71
|
+
/**
|
|
72
|
+
* 服务名称(用于微服务环境)
|
|
73
|
+
*/
|
|
21
74
|
serviceName?: string;
|
|
75
|
+
/**
|
|
76
|
+
* 自定义操作名称(用于业务标识)
|
|
77
|
+
*/
|
|
22
78
|
operationName?: string;
|
|
79
|
+
/**
|
|
80
|
+
* 客户端IP地址
|
|
81
|
+
*/
|
|
23
82
|
clientIp?: string;
|
|
83
|
+
/**
|
|
84
|
+
* 请求来源
|
|
85
|
+
*/
|
|
24
86
|
source?: string;
|
|
87
|
+
/**
|
|
88
|
+
* 请求标签(用于分类)
|
|
89
|
+
*/
|
|
25
90
|
tags?: string[];
|
|
91
|
+
/**
|
|
92
|
+
* 请求元数据(JSON格式)
|
|
93
|
+
*/
|
|
26
94
|
metadata?: Record<string, any>;
|
|
95
|
+
/**
|
|
96
|
+
* 重试记录(JSON格式)
|
|
97
|
+
*/
|
|
27
98
|
retryRecords?: RetryRecord[];
|
|
28
|
-
|
|
99
|
+
/**
|
|
100
|
+
* 熔断器状态
|
|
101
|
+
*/
|
|
29
102
|
circuitBreakerState?: string;
|
|
30
103
|
}
|
|
104
|
+
/**
|
|
105
|
+
* 重试记录接口
|
|
106
|
+
*/
|
|
31
107
|
export interface RetryRecord {
|
|
108
|
+
/**
|
|
109
|
+
* 重试次数
|
|
110
|
+
*/
|
|
32
111
|
attempt: number;
|
|
112
|
+
/**
|
|
113
|
+
* 重试时间
|
|
114
|
+
*/
|
|
33
115
|
timestamp: Date;
|
|
116
|
+
/**
|
|
117
|
+
* 重试原因
|
|
118
|
+
*/
|
|
34
119
|
reason: string;
|
|
120
|
+
/**
|
|
121
|
+
* 重试延迟(毫秒)
|
|
122
|
+
*/
|
|
35
123
|
delay: number;
|
|
124
|
+
/**
|
|
125
|
+
* 错误信息
|
|
126
|
+
*/
|
|
36
127
|
error?: {
|
|
37
128
|
message: string;
|
|
38
129
|
code?: string;
|
|
39
130
|
statusCode?: number;
|
|
40
131
|
};
|
|
132
|
+
/**
|
|
133
|
+
* 请求配置(简化版)
|
|
134
|
+
*/
|
|
41
135
|
requestConfig?: {
|
|
42
136
|
method: string;
|
|
43
137
|
url: string;
|
|
44
138
|
headers: Record<string, string>;
|
|
45
139
|
};
|
|
46
140
|
}
|
|
141
|
+
/**
|
|
142
|
+
* HTTP日志查询选项
|
|
143
|
+
*/
|
|
47
144
|
export interface HttpLogQueryOptions {
|
|
145
|
+
/**
|
|
146
|
+
* 请求ID
|
|
147
|
+
*/
|
|
48
148
|
requestId?: string;
|
|
149
|
+
/**
|
|
150
|
+
* 用户ID
|
|
151
|
+
*/
|
|
49
152
|
userId?: string;
|
|
153
|
+
/**
|
|
154
|
+
* HTTP方法
|
|
155
|
+
*/
|
|
50
156
|
method?: string | string[];
|
|
157
|
+
/**
|
|
158
|
+
* URL(支持模糊搜索)
|
|
159
|
+
*/
|
|
51
160
|
url?: string;
|
|
161
|
+
/**
|
|
162
|
+
* 状态码
|
|
163
|
+
*/
|
|
52
164
|
statusCode?: number | number[];
|
|
165
|
+
/**
|
|
166
|
+
* 是否成功
|
|
167
|
+
*/
|
|
53
168
|
success?: boolean;
|
|
169
|
+
/**
|
|
170
|
+
* 服务名称
|
|
171
|
+
*/
|
|
54
172
|
serviceName?: string;
|
|
173
|
+
/**
|
|
174
|
+
* 操作名称
|
|
175
|
+
*/
|
|
55
176
|
operationName?: string;
|
|
177
|
+
/**
|
|
178
|
+
* 客户端IP
|
|
179
|
+
*/
|
|
56
180
|
clientIp?: string;
|
|
181
|
+
/**
|
|
182
|
+
* 请求来源
|
|
183
|
+
*/
|
|
57
184
|
source?: string;
|
|
185
|
+
/**
|
|
186
|
+
* 标签
|
|
187
|
+
*/
|
|
58
188
|
tags?: string[];
|
|
189
|
+
/**
|
|
190
|
+
* 错误代码
|
|
191
|
+
*/
|
|
59
192
|
errorCode?: string;
|
|
193
|
+
/**
|
|
194
|
+
* 最小响应时间
|
|
195
|
+
*/
|
|
60
196
|
minResponseTime?: number;
|
|
197
|
+
/**
|
|
198
|
+
* 最大响应时间
|
|
199
|
+
*/
|
|
61
200
|
maxResponseTime?: number;
|
|
201
|
+
/**
|
|
202
|
+
* 开始时间
|
|
203
|
+
*/
|
|
62
204
|
startDate?: Date;
|
|
205
|
+
/**
|
|
206
|
+
* 结束时间
|
|
207
|
+
*/
|
|
63
208
|
endDate?: Date;
|
|
209
|
+
/**
|
|
210
|
+
* 搜索关键词
|
|
211
|
+
*/
|
|
64
212
|
keyword?: string;
|
|
213
|
+
/**
|
|
214
|
+
* 分页参数
|
|
215
|
+
*/
|
|
65
216
|
page?: number;
|
|
217
|
+
/**
|
|
218
|
+
* 每页数量
|
|
219
|
+
*/
|
|
66
220
|
limit?: number;
|
|
221
|
+
/**
|
|
222
|
+
* 排序字段
|
|
223
|
+
*/
|
|
67
224
|
sortBy?: 'createdAt' | 'responseTime' | 'statusCode' | 'url';
|
|
225
|
+
/**
|
|
226
|
+
* 排序方向
|
|
227
|
+
*/
|
|
68
228
|
sortOrder?: 'ASC' | 'DESC';
|
|
229
|
+
/**
|
|
230
|
+
* 是否包含详细数据
|
|
231
|
+
*/
|
|
69
232
|
includeDetails?: boolean;
|
|
70
233
|
}
|
|
234
|
+
/**
|
|
235
|
+
* HTTP日志统计结果
|
|
236
|
+
*/
|
|
71
237
|
export interface HttpLogStats {
|
|
238
|
+
/**
|
|
239
|
+
* 总请求数
|
|
240
|
+
*/
|
|
72
241
|
totalRequests: number;
|
|
242
|
+
/**
|
|
243
|
+
* 成功请求数
|
|
244
|
+
*/
|
|
73
245
|
successfulRequests: number;
|
|
246
|
+
/**
|
|
247
|
+
* 失败请求数
|
|
248
|
+
*/
|
|
74
249
|
failedRequests: number;
|
|
250
|
+
/**
|
|
251
|
+
* 成功率
|
|
252
|
+
*/
|
|
75
253
|
successRate: number;
|
|
254
|
+
/**
|
|
255
|
+
* 平均响应时间
|
|
256
|
+
*/
|
|
76
257
|
averageResponseTime: number;
|
|
258
|
+
/**
|
|
259
|
+
* 最小响应时间
|
|
260
|
+
*/
|
|
77
261
|
minResponseTime: number;
|
|
262
|
+
/**
|
|
263
|
+
* 最大响应时间
|
|
264
|
+
*/
|
|
78
265
|
maxResponseTime: number;
|
|
266
|
+
/**
|
|
267
|
+
* P50响应时间
|
|
268
|
+
*/
|
|
79
269
|
p50ResponseTime: number;
|
|
270
|
+
/**
|
|
271
|
+
* P95响应时间
|
|
272
|
+
*/
|
|
80
273
|
p95ResponseTime: number;
|
|
274
|
+
/**
|
|
275
|
+
* P99响应时间
|
|
276
|
+
*/
|
|
81
277
|
p99ResponseTime: number;
|
|
278
|
+
/**
|
|
279
|
+
* 按方法统计
|
|
280
|
+
*/
|
|
82
281
|
requestsByMethod: Record<string, number>;
|
|
282
|
+
/**
|
|
283
|
+
* 按状态码统计
|
|
284
|
+
*/
|
|
83
285
|
requestsByStatus: Record<string, number>;
|
|
286
|
+
/**
|
|
287
|
+
* 按服务统计
|
|
288
|
+
*/
|
|
84
289
|
requestsByService: Record<string, number>;
|
|
290
|
+
/**
|
|
291
|
+
* 按来源统计
|
|
292
|
+
*/
|
|
85
293
|
requestsBySource: Record<string, number>;
|
|
294
|
+
/**
|
|
295
|
+
* 错误统计
|
|
296
|
+
*/
|
|
86
297
|
errorsByCode: Record<string, number>;
|
|
298
|
+
/**
|
|
299
|
+
* 重试统计
|
|
300
|
+
*/
|
|
87
301
|
retryStats: {
|
|
88
302
|
totalRetries: number;
|
|
89
303
|
averageRetries: number;
|
|
90
304
|
maxRetries: number;
|
|
91
305
|
retryRate: number;
|
|
92
306
|
};
|
|
93
|
-
cacheStats: {
|
|
94
|
-
cacheHits: number;
|
|
95
|
-
cacheMisses: number;
|
|
96
|
-
cacheHitRate: number;
|
|
97
|
-
};
|
|
98
307
|
}
|
|
@@ -12,27 +12,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.HttpLogEntity = void 0;
|
|
13
13
|
const typeorm_1 = require("typeorm");
|
|
14
14
|
const common_1 = require("../../common");
|
|
15
|
+
/**
|
|
16
|
+
* HTTP请求日志实体
|
|
17
|
+
* 用于TypeORM数据库记录
|
|
18
|
+
*/
|
|
15
19
|
let HttpLogEntity = class HttpLogEntity extends common_1.AbstractUuidPrimaryEntity {
|
|
16
20
|
};
|
|
17
21
|
exports.HttpLogEntity = HttpLogEntity;
|
|
18
22
|
__decorate([
|
|
19
23
|
(0, typeorm_1.Column)({ type: 'varchar', length: 36, nullable: true }),
|
|
20
|
-
(0, typeorm_1.Index)(),
|
|
21
24
|
__metadata("design:type", String)
|
|
22
25
|
], HttpLogEntity.prototype, "requestId", void 0);
|
|
23
26
|
__decorate([
|
|
24
27
|
(0, typeorm_1.Column)({ type: 'varchar', length: 36, nullable: true }),
|
|
25
|
-
(0, typeorm_1.Index)(),
|
|
26
28
|
__metadata("design:type", String)
|
|
27
29
|
], HttpLogEntity.prototype, "userId", void 0);
|
|
28
30
|
__decorate([
|
|
29
31
|
(0, typeorm_1.Column)({ type: 'varchar', length: 10 }),
|
|
30
|
-
(0, typeorm_1.Index)(),
|
|
31
32
|
__metadata("design:type", String)
|
|
32
33
|
], HttpLogEntity.prototype, "method", void 0);
|
|
33
34
|
__decorate([
|
|
34
|
-
(0, typeorm_1.Column)({ type: '
|
|
35
|
-
(0, typeorm_1.Index)(),
|
|
35
|
+
(0, typeorm_1.Column)({ type: 'varchar' }),
|
|
36
36
|
__metadata("design:type", String)
|
|
37
37
|
], HttpLogEntity.prototype, "url", void 0);
|
|
38
38
|
__decorate([
|
|
@@ -49,7 +49,6 @@ __decorate([
|
|
|
49
49
|
], HttpLogEntity.prototype, "params", void 0);
|
|
50
50
|
__decorate([
|
|
51
51
|
(0, typeorm_1.Column)({ type: 'int', nullable: true }),
|
|
52
|
-
(0, typeorm_1.Index)(),
|
|
53
52
|
__metadata("design:type", Number)
|
|
54
53
|
], HttpLogEntity.prototype, "statusCode", void 0);
|
|
55
54
|
__decorate([
|
|
@@ -62,7 +61,6 @@ __decorate([
|
|
|
62
61
|
], HttpLogEntity.prototype, "attemptCount", void 0);
|
|
63
62
|
__decorate([
|
|
64
63
|
(0, typeorm_1.Column)({ type: 'boolean', default: false }),
|
|
65
|
-
(0, typeorm_1.Index)(),
|
|
66
64
|
__metadata("design:type", Boolean)
|
|
67
65
|
], HttpLogEntity.prototype, "success", void 0);
|
|
68
66
|
__decorate([
|
|
@@ -85,25 +83,17 @@ __decorate([
|
|
|
85
83
|
(0, typeorm_1.Column)({ type: 'text', nullable: true }),
|
|
86
84
|
__metadata("design:type", String)
|
|
87
85
|
], HttpLogEntity.prototype, "responseBody", void 0);
|
|
88
|
-
__decorate([
|
|
89
|
-
(0, typeorm_1.Column)({ type: 'int', nullable: true }),
|
|
90
|
-
__metadata("design:type", Number)
|
|
91
|
-
], HttpLogEntity.prototype, "responseSize", void 0);
|
|
92
|
-
__decorate([
|
|
93
|
-
(0, typeorm_1.Column)({ type: 'int', nullable: true }),
|
|
94
|
-
__metadata("design:type", Number)
|
|
95
|
-
], HttpLogEntity.prototype, "requestSize", void 0);
|
|
96
86
|
__decorate([
|
|
97
87
|
(0, typeorm_1.Column)({ type: 'varchar', length: 100, nullable: true }),
|
|
98
88
|
__metadata("design:type", String)
|
|
99
89
|
], HttpLogEntity.prototype, "serviceName", void 0);
|
|
100
90
|
__decorate([
|
|
101
91
|
(0, typeorm_1.Column)({ type: 'varchar', length: 200, nullable: true }),
|
|
102
|
-
(0, typeorm_1.Index)(),
|
|
103
92
|
__metadata("design:type", String)
|
|
104
93
|
], HttpLogEntity.prototype, "operationName", void 0);
|
|
105
94
|
__decorate([
|
|
106
|
-
(0, typeorm_1.Column)({ type: 'varchar', length: 45, nullable: true })
|
|
95
|
+
(0, typeorm_1.Column)({ type: 'varchar', length: 45, nullable: true }) // 支持IPv6
|
|
96
|
+
,
|
|
107
97
|
__metadata("design:type", String)
|
|
108
98
|
], HttpLogEntity.prototype, "clientIp", void 0);
|
|
109
99
|
__decorate([
|
|
@@ -122,10 +112,6 @@ __decorate([
|
|
|
122
112
|
(0, typeorm_1.Column)({ type: 'json', nullable: true }),
|
|
123
113
|
__metadata("design:type", Array)
|
|
124
114
|
], HttpLogEntity.prototype, "retryRecords", void 0);
|
|
125
|
-
__decorate([
|
|
126
|
-
(0, typeorm_1.Column)({ type: 'boolean', nullable: true }),
|
|
127
|
-
__metadata("design:type", Boolean)
|
|
128
|
-
], HttpLogEntity.prototype, "cacheHit", void 0);
|
|
129
115
|
__decorate([
|
|
130
116
|
(0, typeorm_1.Column)({ type: 'varchar', length: 20, nullable: true }),
|
|
131
117
|
__metadata("design:type", String)
|
|
@@ -135,7 +121,6 @@ exports.HttpLogEntity = HttpLogEntity = __decorate([
|
|
|
135
121
|
(0, typeorm_1.Index)(['requestId']),
|
|
136
122
|
(0, typeorm_1.Index)(['userId']),
|
|
137
123
|
(0, typeorm_1.Index)(['method']),
|
|
138
|
-
(0, typeorm_1.Index)(['url']),
|
|
139
124
|
(0, typeorm_1.Index)(['statusCode']),
|
|
140
125
|
(0, typeorm_1.Index)(['success']),
|
|
141
126
|
(0, typeorm_1.Index)(['createdAt']),
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP客户端基础错误类
|
|
3
|
+
*/
|
|
1
4
|
export declare class HttpClientError extends Error {
|
|
2
5
|
readonly code: string;
|
|
3
6
|
readonly statusCode?: number;
|
|
@@ -5,52 +8,106 @@ export declare class HttpClientError extends Error {
|
|
|
5
8
|
readonly config?: any;
|
|
6
9
|
constructor(message: string, code?: string, statusCode?: number, response?: any, config?: any);
|
|
7
10
|
}
|
|
11
|
+
/**
|
|
12
|
+
* 网络错误
|
|
13
|
+
*/
|
|
8
14
|
export declare class NetworkError extends HttpClientError {
|
|
9
15
|
constructor(message: string, config?: any);
|
|
10
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* 超时错误
|
|
19
|
+
*/
|
|
11
20
|
export declare class TimeoutError extends HttpClientError {
|
|
12
21
|
constructor(message: string, config?: any);
|
|
13
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* 重试失败错误
|
|
25
|
+
*/
|
|
14
26
|
export declare class RetryExhaustedError extends HttpClientError {
|
|
15
27
|
readonly attempts: number;
|
|
16
28
|
readonly lastError: any;
|
|
17
29
|
constructor(message: string, attempts: number, lastError: any, config?: any);
|
|
18
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* 熔断器开启错误
|
|
33
|
+
*/
|
|
19
34
|
export declare class CircuitBreakerOpenError extends HttpClientError {
|
|
20
35
|
readonly circuitName: string;
|
|
21
36
|
readonly failureCount: number;
|
|
22
37
|
constructor(message: string, circuitName: string, failureCount: number, config?: any);
|
|
23
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* API认证错误
|
|
41
|
+
*/
|
|
24
42
|
export declare class AuthenticationError extends HttpClientError {
|
|
25
43
|
constructor(message: string, statusCode?: number, response?: any, config?: any);
|
|
26
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* API授权错误
|
|
47
|
+
*/
|
|
27
48
|
export declare class AuthorizationError extends HttpClientError {
|
|
28
49
|
constructor(message: string, statusCode?: number, response?: any, config?: any);
|
|
29
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* 限流错误
|
|
53
|
+
*/
|
|
30
54
|
export declare class RateLimitError extends HttpClientError {
|
|
31
55
|
readonly retryAfter?: number;
|
|
32
56
|
readonly limit?: number;
|
|
33
57
|
readonly remaining?: number;
|
|
34
58
|
constructor(message: string, statusCode?: number, response?: any, config?: any, retryAfter?: number, limit?: number, remaining?: number);
|
|
35
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* 服务器错误
|
|
62
|
+
*/
|
|
36
63
|
export declare class ServerError extends HttpClientError {
|
|
37
64
|
constructor(message: string, statusCode?: number, response?: any, config?: any);
|
|
38
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* 响应格式错误
|
|
68
|
+
*/
|
|
39
69
|
export declare class ResponseFormatError extends HttpClientError {
|
|
40
70
|
readonly responseData: any;
|
|
41
71
|
constructor(message: string, responseData: any, config?: any);
|
|
42
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* API客户端配置错误
|
|
75
|
+
*/
|
|
43
76
|
export declare class ApiClientConfigError extends HttpClientError {
|
|
44
77
|
constructor(message: string, config?: any);
|
|
45
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* 缓存错误
|
|
81
|
+
*/
|
|
46
82
|
export declare class CacheError extends HttpClientError {
|
|
47
83
|
constructor(message: string, config?: any);
|
|
48
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* 错误工厂函数
|
|
87
|
+
*/
|
|
49
88
|
export declare class ErrorFactory {
|
|
89
|
+
/**
|
|
90
|
+
* 根据axios错误创建对应的HTTP客户端错误
|
|
91
|
+
*/
|
|
50
92
|
static fromAxiosError(error: any): HttpClientError;
|
|
93
|
+
/**
|
|
94
|
+
* 创建重试失败错误
|
|
95
|
+
*/
|
|
51
96
|
static createRetryExhaustedError(attempts: number, lastError: any, config?: any): RetryExhaustedError;
|
|
97
|
+
/**
|
|
98
|
+
* 创建熔断器开启错误
|
|
99
|
+
*/
|
|
52
100
|
static createCircuitBreakerOpenError(circuitName: string, failureCount: number, config?: any): CircuitBreakerOpenError;
|
|
101
|
+
/**
|
|
102
|
+
* 创建响应格式错误
|
|
103
|
+
*/
|
|
53
104
|
static createResponseFormatError(message: string, responseData: any, config?: any): ResponseFormatError;
|
|
105
|
+
/**
|
|
106
|
+
* 创建API客户端配置错误
|
|
107
|
+
*/
|
|
54
108
|
static createApiClientConfigError(message: string, config?: any): ApiClientConfigError;
|
|
109
|
+
/**
|
|
110
|
+
* 创建缓存错误
|
|
111
|
+
*/
|
|
55
112
|
static createCacheError(message: string, config?: any): CacheError;
|
|
56
113
|
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ErrorFactory = exports.CacheError = exports.ApiClientConfigError = exports.ResponseFormatError = exports.ServerError = exports.RateLimitError = exports.AuthorizationError = exports.AuthenticationError = exports.CircuitBreakerOpenError = exports.RetryExhaustedError = exports.TimeoutError = exports.NetworkError = exports.HttpClientError = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* HTTP客户端基础错误类
|
|
6
|
+
*/
|
|
4
7
|
class HttpClientError extends Error {
|
|
5
8
|
constructor(message, code = 'HTTP_CLIENT_ERROR', statusCode, response, config) {
|
|
6
9
|
super(message);
|
|
@@ -13,6 +16,9 @@ class HttpClientError extends Error {
|
|
|
13
16
|
}
|
|
14
17
|
}
|
|
15
18
|
exports.HttpClientError = HttpClientError;
|
|
19
|
+
/**
|
|
20
|
+
* 网络错误
|
|
21
|
+
*/
|
|
16
22
|
class NetworkError extends HttpClientError {
|
|
17
23
|
constructor(message, config) {
|
|
18
24
|
super(message, 'NETWORK_ERROR', undefined, undefined, config);
|
|
@@ -20,6 +26,9 @@ class NetworkError extends HttpClientError {
|
|
|
20
26
|
}
|
|
21
27
|
}
|
|
22
28
|
exports.NetworkError = NetworkError;
|
|
29
|
+
/**
|
|
30
|
+
* 超时错误
|
|
31
|
+
*/
|
|
23
32
|
class TimeoutError extends HttpClientError {
|
|
24
33
|
constructor(message, config) {
|
|
25
34
|
super(message, 'TIMEOUT_ERROR', undefined, undefined, config);
|
|
@@ -27,6 +36,9 @@ class TimeoutError extends HttpClientError {
|
|
|
27
36
|
}
|
|
28
37
|
}
|
|
29
38
|
exports.TimeoutError = TimeoutError;
|
|
39
|
+
/**
|
|
40
|
+
* 重试失败错误
|
|
41
|
+
*/
|
|
30
42
|
class RetryExhaustedError extends HttpClientError {
|
|
31
43
|
constructor(message, attempts, lastError, config) {
|
|
32
44
|
super(message, 'RETRY_EXHAUSTED', undefined, undefined, config);
|
|
@@ -36,6 +48,9 @@ class RetryExhaustedError extends HttpClientError {
|
|
|
36
48
|
}
|
|
37
49
|
}
|
|
38
50
|
exports.RetryExhaustedError = RetryExhaustedError;
|
|
51
|
+
/**
|
|
52
|
+
* 熔断器开启错误
|
|
53
|
+
*/
|
|
39
54
|
class CircuitBreakerOpenError extends HttpClientError {
|
|
40
55
|
constructor(message, circuitName, failureCount, config) {
|
|
41
56
|
super(message, 'CIRCUIT_BREAKER_OPEN', 503, undefined, config);
|
|
@@ -45,6 +60,9 @@ class CircuitBreakerOpenError extends HttpClientError {
|
|
|
45
60
|
}
|
|
46
61
|
}
|
|
47
62
|
exports.CircuitBreakerOpenError = CircuitBreakerOpenError;
|
|
63
|
+
/**
|
|
64
|
+
* API认证错误
|
|
65
|
+
*/
|
|
48
66
|
class AuthenticationError extends HttpClientError {
|
|
49
67
|
constructor(message, statusCode = 401, response, config) {
|
|
50
68
|
super(message, 'AUTHENTICATION_ERROR', statusCode, response, config);
|
|
@@ -52,6 +70,9 @@ class AuthenticationError extends HttpClientError {
|
|
|
52
70
|
}
|
|
53
71
|
}
|
|
54
72
|
exports.AuthenticationError = AuthenticationError;
|
|
73
|
+
/**
|
|
74
|
+
* API授权错误
|
|
75
|
+
*/
|
|
55
76
|
class AuthorizationError extends HttpClientError {
|
|
56
77
|
constructor(message, statusCode = 403, response, config) {
|
|
57
78
|
super(message, 'AUTHORIZATION_ERROR', statusCode, response, config);
|
|
@@ -59,6 +80,9 @@ class AuthorizationError extends HttpClientError {
|
|
|
59
80
|
}
|
|
60
81
|
}
|
|
61
82
|
exports.AuthorizationError = AuthorizationError;
|
|
83
|
+
/**
|
|
84
|
+
* 限流错误
|
|
85
|
+
*/
|
|
62
86
|
class RateLimitError extends HttpClientError {
|
|
63
87
|
constructor(message, statusCode = 429, response, config, retryAfter, limit, remaining) {
|
|
64
88
|
super(message, 'RATE_LIMIT_ERROR', statusCode, response, config);
|
|
@@ -69,6 +93,9 @@ class RateLimitError extends HttpClientError {
|
|
|
69
93
|
}
|
|
70
94
|
}
|
|
71
95
|
exports.RateLimitError = RateLimitError;
|
|
96
|
+
/**
|
|
97
|
+
* 服务器错误
|
|
98
|
+
*/
|
|
72
99
|
class ServerError extends HttpClientError {
|
|
73
100
|
constructor(message, statusCode = 500, response, config) {
|
|
74
101
|
super(message, 'SERVER_ERROR', statusCode, response, config);
|
|
@@ -76,6 +103,9 @@ class ServerError extends HttpClientError {
|
|
|
76
103
|
}
|
|
77
104
|
}
|
|
78
105
|
exports.ServerError = ServerError;
|
|
106
|
+
/**
|
|
107
|
+
* 响应格式错误
|
|
108
|
+
*/
|
|
79
109
|
class ResponseFormatError extends HttpClientError {
|
|
80
110
|
constructor(message, responseData, config) {
|
|
81
111
|
super(message, 'RESPONSE_FORMAT_ERROR', undefined, undefined, config);
|
|
@@ -84,6 +114,9 @@ class ResponseFormatError extends HttpClientError {
|
|
|
84
114
|
}
|
|
85
115
|
}
|
|
86
116
|
exports.ResponseFormatError = ResponseFormatError;
|
|
117
|
+
/**
|
|
118
|
+
* API客户端配置错误
|
|
119
|
+
*/
|
|
87
120
|
class ApiClientConfigError extends HttpClientError {
|
|
88
121
|
constructor(message, config) {
|
|
89
122
|
super(message, 'API_CLIENT_CONFIG_ERROR', 500, undefined, config);
|
|
@@ -91,6 +124,9 @@ class ApiClientConfigError extends HttpClientError {
|
|
|
91
124
|
}
|
|
92
125
|
}
|
|
93
126
|
exports.ApiClientConfigError = ApiClientConfigError;
|
|
127
|
+
/**
|
|
128
|
+
* 缓存错误
|
|
129
|
+
*/
|
|
94
130
|
class CacheError extends HttpClientError {
|
|
95
131
|
constructor(message, config) {
|
|
96
132
|
super(message, 'CACHE_ERROR', undefined, undefined, config);
|
|
@@ -98,11 +134,18 @@ class CacheError extends HttpClientError {
|
|
|
98
134
|
}
|
|
99
135
|
}
|
|
100
136
|
exports.CacheError = CacheError;
|
|
137
|
+
/**
|
|
138
|
+
* 错误工厂函数
|
|
139
|
+
*/
|
|
101
140
|
class ErrorFactory {
|
|
141
|
+
/**
|
|
142
|
+
* 根据axios错误创建对应的HTTP客户端错误
|
|
143
|
+
*/
|
|
102
144
|
static fromAxiosError(error) {
|
|
103
145
|
const config = error.config;
|
|
104
146
|
const response = error.response;
|
|
105
147
|
const message = error.message || 'Unknown error';
|
|
148
|
+
// 网络错误
|
|
106
149
|
if (!error.response) {
|
|
107
150
|
if (error.code === 'ECONNABORTED') {
|
|
108
151
|
return new TimeoutError(`Request timeout: ${message}`, config);
|
|
@@ -130,18 +173,33 @@ class ErrorFactory {
|
|
|
130
173
|
return new HttpClientError((responseData === null || responseData === void 0 ? void 0 : responseData.message) || `HTTP error (${statusCode})`, 'HTTP_ERROR', statusCode, response, config);
|
|
131
174
|
}
|
|
132
175
|
}
|
|
176
|
+
/**
|
|
177
|
+
* 创建重试失败错误
|
|
178
|
+
*/
|
|
133
179
|
static createRetryExhaustedError(attempts, lastError, config) {
|
|
134
180
|
return new RetryExhaustedError(`Retry failed after ${attempts} attempts. Last error: ${lastError.message}`, attempts, lastError, config);
|
|
135
181
|
}
|
|
182
|
+
/**
|
|
183
|
+
* 创建熔断器开启错误
|
|
184
|
+
*/
|
|
136
185
|
static createCircuitBreakerOpenError(circuitName, failureCount, config) {
|
|
137
186
|
return new CircuitBreakerOpenError(`Circuit breaker '${circuitName}' is open after ${failureCount} failures`, circuitName, failureCount, config);
|
|
138
187
|
}
|
|
188
|
+
/**
|
|
189
|
+
* 创建响应格式错误
|
|
190
|
+
*/
|
|
139
191
|
static createResponseFormatError(message, responseData, config) {
|
|
140
192
|
return new ResponseFormatError(message, responseData, config);
|
|
141
193
|
}
|
|
194
|
+
/**
|
|
195
|
+
* 创建API客户端配置错误
|
|
196
|
+
*/
|
|
142
197
|
static createApiClientConfigError(message, config) {
|
|
143
198
|
return new ApiClientConfigError(message, config);
|
|
144
199
|
}
|
|
200
|
+
/**
|
|
201
|
+
* 创建缓存错误
|
|
202
|
+
*/
|
|
145
203
|
static createCacheError(message, config) {
|
|
146
204
|
return new CacheError(message, config);
|
|
147
205
|
}
|