@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
|
@@ -1,32 +1,121 @@
|
|
|
1
1
|
import type { CacheDependency } from './cache-dependency.interface';
|
|
2
|
+
/**
|
|
3
|
+
* Cache layer enum - defines the three-tier cache architecture
|
|
4
|
+
*/
|
|
2
5
|
export declare enum CacheLayer {
|
|
6
|
+
/** L1: Request-level cache (nestjs-cls) - fastest, scoped to request */
|
|
3
7
|
CLS = "cls",
|
|
8
|
+
/** L2: Process-level cache (native Map) - fast, scoped to process */
|
|
4
9
|
MEMORY = "memory",
|
|
10
|
+
/** L3: Distributed cache (Redis) - persistent, shared across processes */
|
|
5
11
|
REDIS = "redis"
|
|
6
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Cache configuration options
|
|
15
|
+
*/
|
|
7
16
|
export interface CacheOptions {
|
|
17
|
+
/**
|
|
18
|
+
* Time to live in milliseconds
|
|
19
|
+
* @example 300_000 // 5 minutes
|
|
20
|
+
*/
|
|
8
21
|
ttl?: number;
|
|
22
|
+
/**
|
|
23
|
+
* Cache layers to use
|
|
24
|
+
* @default [CacheLayer.MEMORY, CacheLayer.REDIS]
|
|
25
|
+
*/
|
|
9
26
|
layers?: CacheLayer[];
|
|
27
|
+
/**
|
|
28
|
+
* Key prefix for namespacing
|
|
29
|
+
* @example 'user:' will result in keys like 'user:123'
|
|
30
|
+
*/
|
|
10
31
|
prefix?: string;
|
|
32
|
+
/**
|
|
33
|
+
* Condition function to determine if value should be cached
|
|
34
|
+
* @param args - Method arguments
|
|
35
|
+
* @returns true to cache, false to skip
|
|
36
|
+
*/
|
|
11
37
|
condition?: (...args: any[]) => boolean | Promise<boolean>;
|
|
38
|
+
/**
|
|
39
|
+
* Unless condition - skip caching when this condition is true
|
|
40
|
+
* Can be a function (safe) or a string expression (use with caution)
|
|
41
|
+
* @param result - Method return value
|
|
42
|
+
* @param args - Method arguments
|
|
43
|
+
* @returns true to skip caching, false to cache normally
|
|
44
|
+
*/
|
|
45
|
+
unless?: ((result: any, args: any[]) => boolean) | string;
|
|
46
|
+
/**
|
|
47
|
+
* Cache dependencies - cache will be invalidated when dependencies change
|
|
48
|
+
* Similar to Yii2 cache dependency system
|
|
49
|
+
*/
|
|
12
50
|
dependencies?: CacheDependency[];
|
|
51
|
+
/**
|
|
52
|
+
* Whether to backfill upper cache layers when value is found in lower layer
|
|
53
|
+
* @default true
|
|
54
|
+
*/
|
|
13
55
|
backfill?: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Namespace for grouping related cache keys
|
|
58
|
+
*/
|
|
14
59
|
namespace?: string;
|
|
15
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* Options for cache decorator key generation
|
|
63
|
+
*/
|
|
16
64
|
export interface CacheKeyOptions {
|
|
65
|
+
/**
|
|
66
|
+
* Static key or key generator function
|
|
67
|
+
*/
|
|
17
68
|
key?: string | ((...args: any[]) => string);
|
|
69
|
+
/**
|
|
70
|
+
* Key prefix
|
|
71
|
+
*/
|
|
18
72
|
prefix?: string;
|
|
73
|
+
/**
|
|
74
|
+
* Whether to include all method arguments in key generation
|
|
75
|
+
* @default false
|
|
76
|
+
*/
|
|
19
77
|
includeAllArgs?: boolean;
|
|
20
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Options for @Cacheable decorator
|
|
81
|
+
*/
|
|
21
82
|
export interface CacheableOptions extends CacheOptions, CacheKeyOptions {
|
|
22
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* Options for @CacheEvict decorator
|
|
86
|
+
*/
|
|
23
87
|
export interface CacheEvictOptions {
|
|
88
|
+
/**
|
|
89
|
+
* Keys to evict (can be static strings or generator functions)
|
|
90
|
+
*/
|
|
24
91
|
keys?: Array<string | ((...args: any[]) => string)>;
|
|
92
|
+
/**
|
|
93
|
+
* Patterns to match for eviction (supports wildcards)
|
|
94
|
+
* @example ['user:*', 'posts:list:*']
|
|
95
|
+
*/
|
|
25
96
|
patterns?: string[];
|
|
97
|
+
/**
|
|
98
|
+
* Tags to invalidate
|
|
99
|
+
*/
|
|
26
100
|
tags?: string[];
|
|
101
|
+
/**
|
|
102
|
+
* Cache layers to evict from
|
|
103
|
+
*/
|
|
27
104
|
layers?: CacheLayer[];
|
|
105
|
+
/**
|
|
106
|
+
* Condition to determine if eviction should occur
|
|
107
|
+
* @param args - Method arguments
|
|
108
|
+
* @param result - Method return value
|
|
109
|
+
*/
|
|
28
110
|
condition?: (...args: any[]) => boolean | Promise<boolean>;
|
|
111
|
+
/**
|
|
112
|
+
* Whether to evict before or after method execution
|
|
113
|
+
* @default 'after'
|
|
114
|
+
*/
|
|
29
115
|
timing?: 'before' | 'after';
|
|
30
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* Options for @CachePut decorator
|
|
119
|
+
*/
|
|
31
120
|
export interface CachePutOptions extends CacheOptions, CacheKeyOptions {
|
|
32
121
|
}
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CacheLayer = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Cache layer enum - defines the three-tier cache architecture
|
|
6
|
+
*/
|
|
4
7
|
var CacheLayer;
|
|
5
8
|
(function (CacheLayer) {
|
|
9
|
+
/** L1: Request-level cache (nestjs-cls) - fastest, scoped to request */
|
|
6
10
|
CacheLayer["CLS"] = "cls";
|
|
11
|
+
/** L2: Process-level cache (native Map) - fast, scoped to process */
|
|
7
12
|
CacheLayer["MEMORY"] = "memory";
|
|
13
|
+
/** L3: Distributed cache (Redis) - persistent, shared across processes */
|
|
8
14
|
CacheLayer["REDIS"] = "redis";
|
|
9
15
|
})(CacheLayer || (exports.CacheLayer = CacheLayer = {}));
|
|
@@ -1,28 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base cache provider interface
|
|
3
|
+
* All cache providers (CLS, Memory, Redis) implement this interface
|
|
4
|
+
*/
|
|
1
5
|
export interface CacheProvider {
|
|
6
|
+
/**
|
|
7
|
+
* Get value from cache
|
|
8
|
+
*
|
|
9
|
+
* @param key - Cache key
|
|
10
|
+
* @returns Cached value or null if not found
|
|
11
|
+
*/
|
|
2
12
|
get<T>(key: string): Promise<T | null>;
|
|
13
|
+
/**
|
|
14
|
+
* Set value in cache
|
|
15
|
+
*
|
|
16
|
+
* @param key - Cache key
|
|
17
|
+
* @param value - Value to cache
|
|
18
|
+
* @param ttl - Time to live in milliseconds
|
|
19
|
+
*/
|
|
3
20
|
set<T>(key: string, value: T, ttl?: number): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Delete value from cache
|
|
23
|
+
*
|
|
24
|
+
* @param key - Cache key or array of keys
|
|
25
|
+
*/
|
|
4
26
|
delete(key: string | string[]): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* Delete keys matching a pattern (supports wildcards)
|
|
29
|
+
*
|
|
30
|
+
* @param pattern - Pattern to match (e.g., 'user:*')
|
|
31
|
+
* @returns Number of keys deleted
|
|
32
|
+
*/
|
|
5
33
|
deletePattern?(pattern: string): Promise<number>;
|
|
34
|
+
/**
|
|
35
|
+
* Clear all cache entries
|
|
36
|
+
*/
|
|
6
37
|
clear(): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Check if a key exists in cache
|
|
40
|
+
*
|
|
41
|
+
* @param key - Cache key
|
|
42
|
+
*/
|
|
7
43
|
has(key: string): Promise<boolean>;
|
|
44
|
+
/**
|
|
45
|
+
* Get multiple values at once
|
|
46
|
+
*
|
|
47
|
+
* @param keys - Array of cache keys
|
|
48
|
+
* @returns Array of values (null for missing keys)
|
|
49
|
+
*/
|
|
8
50
|
mget<T>(keys: string[]): Promise<(T | null)[]>;
|
|
51
|
+
/**
|
|
52
|
+
* Set multiple values at once
|
|
53
|
+
*
|
|
54
|
+
* @param items - Array of key-value pairs
|
|
55
|
+
* @param ttl - Time to live in milliseconds
|
|
56
|
+
*/
|
|
9
57
|
mset(items: Array<{
|
|
10
58
|
key: string;
|
|
11
59
|
value: any;
|
|
12
60
|
}>, ttl?: number): Promise<void>;
|
|
61
|
+
/**
|
|
62
|
+
* Get provider name
|
|
63
|
+
*/
|
|
13
64
|
getName(): string;
|
|
14
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* Cache statistics
|
|
68
|
+
*/
|
|
15
69
|
export interface CacheStats {
|
|
70
|
+
/**
|
|
71
|
+
* Total number of get operations
|
|
72
|
+
*/
|
|
16
73
|
totalGets: number;
|
|
74
|
+
/**
|
|
75
|
+
* Number of cache hits
|
|
76
|
+
*/
|
|
17
77
|
hits: number;
|
|
78
|
+
/**
|
|
79
|
+
* Number of cache misses
|
|
80
|
+
*/
|
|
18
81
|
misses: number;
|
|
82
|
+
/**
|
|
83
|
+
* Hit rate (hits / totalGets)
|
|
84
|
+
*/
|
|
19
85
|
hitRate: number;
|
|
86
|
+
/**
|
|
87
|
+
* Stats per layer
|
|
88
|
+
*/
|
|
20
89
|
byLayer: Record<string, {
|
|
21
90
|
hits: number;
|
|
22
91
|
misses: number;
|
|
23
92
|
hitRate: number;
|
|
24
93
|
}>;
|
|
94
|
+
/**
|
|
95
|
+
* Total number of set operations
|
|
96
|
+
*/
|
|
25
97
|
totalSets: number;
|
|
98
|
+
/**
|
|
99
|
+
* Total number of delete operations
|
|
100
|
+
*/
|
|
26
101
|
totalDeletes: number;
|
|
102
|
+
/**
|
|
103
|
+
* Total number of clear operations
|
|
104
|
+
*/
|
|
27
105
|
totalClears: number;
|
|
28
106
|
}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import type { CacheProvider } from '../interfaces/cache-provider.interface';
|
|
2
|
+
/**
|
|
3
|
+
* Base cache provider with common utility methods
|
|
4
|
+
*/
|
|
2
5
|
export declare abstract class BaseCacheProvider implements CacheProvider {
|
|
3
6
|
abstract get<T>(key: string): Promise<T | null>;
|
|
4
7
|
abstract set<T>(key: string, value: T, ttl?: number): Promise<void>;
|
|
@@ -7,10 +10,21 @@ export declare abstract class BaseCacheProvider implements CacheProvider {
|
|
|
7
10
|
abstract clear(): Promise<void>;
|
|
8
11
|
abstract has(key: string): Promise<boolean>;
|
|
9
12
|
abstract getName(): string;
|
|
13
|
+
/**
|
|
14
|
+
* Get multiple values at once
|
|
15
|
+
* Default implementation - can be overridden for better performance
|
|
16
|
+
*/
|
|
10
17
|
mget<T>(keys: string[]): Promise<(T | null)[]>;
|
|
18
|
+
/**
|
|
19
|
+
* Set multiple values at once
|
|
20
|
+
* Default implementation - can be overridden for better performance
|
|
21
|
+
*/
|
|
11
22
|
mset(items: Array<{
|
|
12
23
|
key: string;
|
|
13
24
|
value: any;
|
|
14
25
|
}>, ttl?: number): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Convert wildcard pattern to RegExp
|
|
28
|
+
*/
|
|
15
29
|
protected patternToRegex(pattern: string): RegExp;
|
|
16
30
|
}
|
|
@@ -10,21 +10,37 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.BaseCacheProvider = void 0;
|
|
13
|
+
/**
|
|
14
|
+
* Base cache provider with common utility methods
|
|
15
|
+
*/
|
|
13
16
|
class BaseCacheProvider {
|
|
17
|
+
/**
|
|
18
|
+
* Get multiple values at once
|
|
19
|
+
* Default implementation - can be overridden for better performance
|
|
20
|
+
*/
|
|
14
21
|
mget(keys) {
|
|
15
22
|
return __awaiter(this, void 0, void 0, function* () {
|
|
16
23
|
const promises = keys.map((key) => this.get(key));
|
|
17
24
|
return Promise.all(promises);
|
|
18
25
|
});
|
|
19
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Set multiple values at once
|
|
29
|
+
* Default implementation - can be overridden for better performance
|
|
30
|
+
*/
|
|
20
31
|
mset(items, ttl) {
|
|
21
32
|
return __awaiter(this, void 0, void 0, function* () {
|
|
22
33
|
const promises = items.map((item) => this.set(item.key, item.value, ttl));
|
|
23
34
|
yield Promise.all(promises);
|
|
24
35
|
});
|
|
25
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Convert wildcard pattern to RegExp
|
|
39
|
+
*/
|
|
26
40
|
patternToRegex(pattern) {
|
|
41
|
+
// Escape special regex characters except *
|
|
27
42
|
const escaped = pattern.replace(/[.+?^${}()|[\]\\]/g, '\\$&');
|
|
43
|
+
// Convert * to .*
|
|
28
44
|
const regexPattern = escaped.replace(/\*/g, '.*');
|
|
29
45
|
return new RegExp(`^${regexPattern}$`);
|
|
30
46
|
}
|
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
import { BaseCacheProvider } from './base-cache.provider';
|
|
2
|
+
/**
|
|
3
|
+
* CLS (Continuation Local Storage) cache provider
|
|
4
|
+
*
|
|
5
|
+
* This is the L1 cache layer - request-scoped caching using nestjs-cls.
|
|
6
|
+
* Data stored here is only available within the same request context.
|
|
7
|
+
*
|
|
8
|
+
* Fastest cache layer but limited to single request lifecycle.
|
|
9
|
+
*/
|
|
2
10
|
export declare class ClsCacheProvider extends BaseCacheProvider {
|
|
3
11
|
private static readonly CACHE_PREFIX;
|
|
4
12
|
private static readonly KEYS_SET;
|
|
@@ -9,8 +17,20 @@ export declare class ClsCacheProvider extends BaseCacheProvider {
|
|
|
9
17
|
deletePattern(pattern: string): Promise<number>;
|
|
10
18
|
clear(): Promise<void>;
|
|
11
19
|
has(key: string): Promise<boolean>;
|
|
20
|
+
/**
|
|
21
|
+
* Get full key with prefix
|
|
22
|
+
*/
|
|
12
23
|
private getFullKey;
|
|
24
|
+
/**
|
|
25
|
+
* Add key to tracked keys set
|
|
26
|
+
*/
|
|
13
27
|
private addKeyToSet;
|
|
28
|
+
/**
|
|
29
|
+
* Remove key from tracked keys set
|
|
30
|
+
*/
|
|
14
31
|
private removeKeyFromSet;
|
|
32
|
+
/**
|
|
33
|
+
* Get all tracked keys
|
|
34
|
+
*/
|
|
15
35
|
private getAllKeys;
|
|
16
36
|
}
|
|
@@ -12,6 +12,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.ClsCacheProvider = void 0;
|
|
13
13
|
const nestjs_cls_1 = require("nestjs-cls");
|
|
14
14
|
const base_cache_provider_1 = require("./base-cache.provider");
|
|
15
|
+
/**
|
|
16
|
+
* CLS (Continuation Local Storage) cache provider
|
|
17
|
+
*
|
|
18
|
+
* This is the L1 cache layer - request-scoped caching using nestjs-cls.
|
|
19
|
+
* Data stored here is only available within the same request context.
|
|
20
|
+
*
|
|
21
|
+
* Fastest cache layer but limited to single request lifecycle.
|
|
22
|
+
*/
|
|
15
23
|
class ClsCacheProvider extends base_cache_provider_1.BaseCacheProvider {
|
|
16
24
|
getName() {
|
|
17
25
|
return 'CLS';
|
|
@@ -25,6 +33,7 @@ class ClsCacheProvider extends base_cache_provider_1.BaseCacheProvider {
|
|
|
25
33
|
if (!cached) {
|
|
26
34
|
return null;
|
|
27
35
|
}
|
|
36
|
+
// Check TTL
|
|
28
37
|
if (cached.expiresAt && Date.now() > cached.expiresAt) {
|
|
29
38
|
yield this.delete(key);
|
|
30
39
|
return null;
|
|
@@ -32,6 +41,7 @@ class ClsCacheProvider extends base_cache_provider_1.BaseCacheProvider {
|
|
|
32
41
|
return cached.value;
|
|
33
42
|
}
|
|
34
43
|
catch (_a) {
|
|
44
|
+
// CLS might not be available (e.g., outside request context)
|
|
35
45
|
return null;
|
|
36
46
|
}
|
|
37
47
|
});
|
|
@@ -46,9 +56,11 @@ class ClsCacheProvider extends base_cache_provider_1.BaseCacheProvider {
|
|
|
46
56
|
cached.expiresAt = Date.now() + ttl;
|
|
47
57
|
}
|
|
48
58
|
store.set(fullKey, cached);
|
|
59
|
+
// Track this key for cleanup
|
|
49
60
|
this.addKeyToSet(key);
|
|
50
61
|
}
|
|
51
62
|
catch (_a) {
|
|
63
|
+
// CLS might not be available, silently fail
|
|
52
64
|
}
|
|
53
65
|
});
|
|
54
66
|
}
|
|
@@ -64,6 +76,7 @@ class ClsCacheProvider extends base_cache_provider_1.BaseCacheProvider {
|
|
|
64
76
|
}
|
|
65
77
|
}
|
|
66
78
|
catch (_a) {
|
|
79
|
+
// CLS might not be available, silently fail
|
|
67
80
|
}
|
|
68
81
|
});
|
|
69
82
|
}
|
|
@@ -90,6 +103,7 @@ class ClsCacheProvider extends base_cache_provider_1.BaseCacheProvider {
|
|
|
90
103
|
yield this.delete(allKeys);
|
|
91
104
|
}
|
|
92
105
|
catch (_a) {
|
|
106
|
+
// CLS might not be available, silently fail
|
|
93
107
|
}
|
|
94
108
|
});
|
|
95
109
|
}
|
|
@@ -99,9 +113,15 @@ class ClsCacheProvider extends base_cache_provider_1.BaseCacheProvider {
|
|
|
99
113
|
return value !== null;
|
|
100
114
|
});
|
|
101
115
|
}
|
|
116
|
+
/**
|
|
117
|
+
* Get full key with prefix
|
|
118
|
+
*/
|
|
102
119
|
getFullKey(key) {
|
|
103
120
|
return `${ClsCacheProvider.CACHE_PREFIX}${key}`;
|
|
104
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* Add key to tracked keys set
|
|
124
|
+
*/
|
|
105
125
|
addKeyToSet(key) {
|
|
106
126
|
try {
|
|
107
127
|
const store = nestjs_cls_1.ClsServiceManager.getClsService();
|
|
@@ -110,8 +130,12 @@ class ClsCacheProvider extends base_cache_provider_1.BaseCacheProvider {
|
|
|
110
130
|
store.set(ClsCacheProvider.KEYS_SET, keys);
|
|
111
131
|
}
|
|
112
132
|
catch (_a) {
|
|
133
|
+
// Ignore
|
|
113
134
|
}
|
|
114
135
|
}
|
|
136
|
+
/**
|
|
137
|
+
* Remove key from tracked keys set
|
|
138
|
+
*/
|
|
115
139
|
removeKeyFromSet(key) {
|
|
116
140
|
try {
|
|
117
141
|
const store = nestjs_cls_1.ClsServiceManager.getClsService();
|
|
@@ -122,8 +146,12 @@ class ClsCacheProvider extends base_cache_provider_1.BaseCacheProvider {
|
|
|
122
146
|
}
|
|
123
147
|
}
|
|
124
148
|
catch (_a) {
|
|
149
|
+
// Ignore
|
|
125
150
|
}
|
|
126
151
|
}
|
|
152
|
+
/**
|
|
153
|
+
* Get all tracked keys
|
|
154
|
+
*/
|
|
127
155
|
getAllKeys() {
|
|
128
156
|
try {
|
|
129
157
|
const store = nestjs_cls_1.ClsServiceManager.getClsService();
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from './base-cache.provider';
|
|
2
2
|
export * from './cls-cache.provider';
|
|
3
|
-
export * from './
|
|
3
|
+
export * from './lrucache.provider';
|
|
4
|
+
export * from './typeorm-cache.provider';
|
|
4
5
|
export { REDIS_CLIENT, RedisCacheProvider } from './redis-cache.provider';
|
package/cache/providers/index.js
CHANGED
|
@@ -17,7 +17,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
exports.RedisCacheProvider = exports.REDIS_CLIENT = void 0;
|
|
18
18
|
__exportStar(require("./base-cache.provider"), exports);
|
|
19
19
|
__exportStar(require("./cls-cache.provider"), exports);
|
|
20
|
-
__exportStar(require("./
|
|
20
|
+
__exportStar(require("./lrucache.provider"), exports);
|
|
21
|
+
__exportStar(require("./typeorm-cache.provider"), exports);
|
|
21
22
|
var redis_cache_provider_1 = require("./redis-cache.provider");
|
|
22
23
|
Object.defineProperty(exports, "REDIS_CLIENT", { enumerable: true, get: function () { return redis_cache_provider_1.REDIS_CLIENT; } });
|
|
23
24
|
Object.defineProperty(exports, "RedisCacheProvider", { enumerable: true, get: function () { return redis_cache_provider_1.RedisCacheProvider; } });
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { OnModuleDestroy } from '@nestjs/common';
|
|
2
|
+
import { BaseCacheProvider } from './base-cache.provider';
|
|
3
|
+
/**
|
|
4
|
+
* LRU Memory Cache Provider
|
|
5
|
+
*
|
|
6
|
+
* High-performance in-memory LRU (Least Recently Used) cache provider.
|
|
7
|
+
* This is an L2 cache layer with fast access and automatic eviction.
|
|
8
|
+
*
|
|
9
|
+
* Features:
|
|
10
|
+
* - O(1) get/set operations
|
|
11
|
+
* - Automatic LRU eviction when cache is full
|
|
12
|
+
* - Optional TTL (Time To Live) support
|
|
13
|
+
* - Namespace isolation
|
|
14
|
+
* - Cache statistics (size, hit rate, usage percentage)
|
|
15
|
+
*
|
|
16
|
+
* Use Cases:
|
|
17
|
+
* - Session data caching
|
|
18
|
+
* - Frequently accessed configuration
|
|
19
|
+
* - API response caching
|
|
20
|
+
* - Temporary data storage
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* const provider = new LRUCacheProvider({
|
|
25
|
+
* maxSize: 1000,
|
|
26
|
+
* ttl: 60000, // optional TTL
|
|
27
|
+
* namespace: 'my-cache',
|
|
28
|
+
* });
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare class LRUCacheProvider extends BaseCacheProvider implements OnModuleDestroy {
|
|
32
|
+
private cache;
|
|
33
|
+
private namespace;
|
|
34
|
+
private defaultTtl?;
|
|
35
|
+
constructor(options?: {
|
|
36
|
+
maxSize?: number;
|
|
37
|
+
ttl?: number;
|
|
38
|
+
namespace?: string;
|
|
39
|
+
});
|
|
40
|
+
getName(): string;
|
|
41
|
+
get<T>(key: string): Promise<T | null>;
|
|
42
|
+
set<T>(key: string, value: T, ttl?: number): Promise<void>;
|
|
43
|
+
delete(key: string | string[]): Promise<void>;
|
|
44
|
+
deletePattern(pattern: string): Promise<number>;
|
|
45
|
+
clear(): Promise<void>;
|
|
46
|
+
has(key: string): Promise<boolean>;
|
|
47
|
+
mget<T>(keys: string[]): Promise<(T | null)[]>;
|
|
48
|
+
mset(items: Array<{
|
|
49
|
+
key: string;
|
|
50
|
+
value: any;
|
|
51
|
+
}>, ttl?: number): Promise<void>;
|
|
52
|
+
/**
|
|
53
|
+
* Get cache size
|
|
54
|
+
*/
|
|
55
|
+
getSize(): number;
|
|
56
|
+
/**
|
|
57
|
+
* Get cache statistics
|
|
58
|
+
*/
|
|
59
|
+
getStats(): {
|
|
60
|
+
provider: string;
|
|
61
|
+
namespace: string;
|
|
62
|
+
size: any;
|
|
63
|
+
maxSize: any;
|
|
64
|
+
calculatedSize: any;
|
|
65
|
+
usagePercentage: number;
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Clean up expired items
|
|
69
|
+
*/
|
|
70
|
+
cleanup(): number;
|
|
71
|
+
/**
|
|
72
|
+
* Destroy the provider
|
|
73
|
+
*/
|
|
74
|
+
onModuleDestroy(): void;
|
|
75
|
+
private getFullKey;
|
|
76
|
+
}
|