@jintianxiayu/cache-decorator 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/CHANGELOG.md +20 -14
  2. package/README.md +358 -270
  3. package/dist/core/cache-error.d.ts +75 -0
  4. package/dist/core/cache-error.d.ts.map +1 -0
  5. package/dist/core/cache-error.js +168 -0
  6. package/dist/core/cache-error.js.map +1 -0
  7. package/dist/core/cache-logger.d.ts +3 -2
  8. package/dist/core/cache-logger.d.ts.map +1 -1
  9. package/dist/core/cache-logger.js +2 -0
  10. package/dist/core/cache-logger.js.map +1 -1
  11. package/dist/decorators/cache.d.ts +6 -0
  12. package/dist/decorators/cache.d.ts.map +1 -1
  13. package/dist/decorators/cache.js +106 -23
  14. package/dist/decorators/cache.js.map +1 -1
  15. package/jest.config.js +11 -11
  16. package/package.json +1 -1
  17. package/src/adapters/ioredis-cache-client.ts +89 -89
  18. package/src/adapters/node-redis-cache-client.ts +95 -95
  19. package/src/adapters/redis-key-prefix.ts +38 -38
  20. package/src/core/cache-error.ts +233 -0
  21. package/src/core/cache-logger.ts +116 -105
  22. package/src/core/key-builder.ts +33 -33
  23. package/src/core/native-cache.ts +55 -55
  24. package/src/core/pending-cache.ts +29 -29
  25. package/src/core/redis-cache-client.ts +160 -160
  26. package/src/core/redis-cache.ts +104 -104
  27. package/src/decorators/cache-evict.ts +129 -129
  28. package/src/decorators/cache.ts +319 -203
  29. package/src/index.ts +11 -11
  30. package/test/cache-evict-logging.test.ts +362 -362
  31. package/test/cache-logger.integration.test.ts +129 -129
  32. package/test/cache-logger.test.ts +156 -153
  33. package/test/cache-logging.test.ts +852 -544
  34. package/test/cache.test.ts +939 -255
  35. package/test/helpers/legacy-redis-cache.ts +41 -22
  36. package/test/helpers/package-consumer.ts +231 -231
  37. package/test/helpers/redis-fixture.ts +142 -142
  38. package/test/ioredis-cache-client.test.ts +143 -143
  39. package/test/legacy-redis-cache.test.ts +51 -0
  40. package/test/native-cache.test.ts +77 -77
  41. package/test/node-redis-cache-client.test.ts +149 -149
  42. package/test/pending-cache.test.ts +69 -69
  43. package/test/redis-cache-client-lifecycle.test.ts +112 -112
  44. package/test/redis-cache-client-types.test.ts +184 -184
  45. package/test/redis-cache-client.integration.test.ts +355 -327
  46. package/test/redis-cache-decorator.test.ts +540 -201
  47. package/test/redis-cache-provider.test.ts +269 -269
  48. package/test/type-contract/contract.ts +119 -64
  49. package/test/type-contract/tsconfig.json +12 -12
  50. package/tsconfig.json +8 -8
package/CHANGELOG.md CHANGED
@@ -1,18 +1,24 @@
1
- # @jintianxiayu/cache-decorator
1
+ # @jintianxiayu/cache-decorator
2
2
 
3
- ## 1.0.0
4
-
5
- ### Major Changes
6
-
7
- - 本次发布包含以下变更:
8
-
9
- - `@jintianxiayu/logger`:重构日志配置、命名 Logger、Plain/JSON 输出、轮转文件、元数据规范化与脱敏、异步 `traceId` 上下文、进程错误处理及可等待的关闭流程。BREAKING:包根不再导出 `createLogger`、`ConfigLoader` 和 `LogPosition`;`LoggerContext.set/clear/getStore` 改为通过 `withContext/get` 使用,配置结构及脱敏字段格式同步调整,运行时要求 Node.js 20.19+/22.13+/24+。
10
- - `@jintianxiayu/cache-decorator`:修复并发缓存 Promise 复用及拒绝后的清理;解耦 `RedisCacheProvider` 与具体 Redis SDK,新增 `RedisCacheClient`、ioredis 和 node-redis 适配工厂,并保持 Redis key、值格式及秒级 TTL 兼容;新增缓存命中、回填、淘汰和基础设施失败的结构化日志。BREAKING:调用方必须显式包装并管理 Redis 连接、直接声明所用 Redis 客户端依赖,同时提供兼容的 `@jintianxiayu/logger` peer 并在首次缓存调用前初始化 Logger。
11
- - `@jintianxiayu/lock-decorator`:解耦 `RedisLockProvider` 与 ioredis,新增 `RedisLockClient`、ioredis 和 node-redis 适配工厂,锁协议及连接所有权语义保持不变;新增锁获取、重试、续期、业务执行和释放的结构化日志。Watchdog 续期 Promise 拒绝会被记录并停止后续续期,不再形成未处理拒绝,已开始的业务仍继续执行并在结束时尝试释放锁。BREAKING:调用方必须显式包装现有 Redis 连接、直接声明客户端依赖,同时提供兼容的 `@jintianxiayu/logger` peer 并在首次锁调用前初始化 Logger。
12
- - `@jintianxiayu/http-client-decorator`:同步适配 logger 0.2 的 peer 依赖与异步上下文用法;调用方应通过 `LoggerContext.withContext` 建立请求上下文,tracing 中间件继续从中读取并注入 `traceId`。
13
- - 仓库开发与发布流程迁移到 pnpm 11 原生 workspace,并统一 TypeScript NodeNext、Jest、清理、构建和本地发布配置。
3
+ ## 1.0.1
14
4
 
15
5
  ### Patch Changes
16
6
 
17
- - Updated dependencies:
18
- - @jintianxiayu/logger@1.0.0
7
+ - 业务异常缓存改为默认关闭,并新增独立 TTL、筛选器与可移植 codec 策略;Redis 异常条目采用版本化 envelope,共享 key 的读取方必须先完成 patch 升级再启用策略。
8
+
9
+ ## 1.0.0
10
+
11
+ ### Major Changes
12
+
13
+ - 本次发布包含以下变更:
14
+
15
+ - `@jintianxiayu/logger`:重构日志配置、命名 Logger、Plain/JSON 输出、轮转文件、元数据规范化与脱敏、异步 `traceId` 上下文、进程错误处理及可等待的关闭流程。BREAKING:包根不再导出 `createLogger`、`ConfigLoader` 和 `LogPosition`;`LoggerContext.set/clear/getStore` 改为通过 `withContext/get` 使用,配置结构及脱敏字段格式同步调整,运行时要求 Node.js 20.19+/22.13+/24+。
16
+ - `@jintianxiayu/cache-decorator`:修复并发缓存 Promise 复用及拒绝后的清理;解耦 `RedisCacheProvider` 与具体 Redis SDK,新增 `RedisCacheClient`、ioredis 和 node-redis 适配工厂,并保持 Redis key、值格式及秒级 TTL 兼容;新增缓存命中、回填、淘汰和基础设施失败的结构化日志。BREAKING:调用方必须显式包装并管理 Redis 连接、直接声明所用 Redis 客户端依赖,同时提供兼容的 `@jintianxiayu/logger` peer 并在首次缓存调用前初始化 Logger。
17
+ - `@jintianxiayu/lock-decorator`:解耦 `RedisLockProvider` 与 ioredis,新增 `RedisLockClient`、ioredis 和 node-redis 适配工厂,锁协议及连接所有权语义保持不变;新增锁获取、重试、续期、业务执行和释放的结构化日志。Watchdog 续期 Promise 拒绝会被记录并停止后续续期,不再形成未处理拒绝,已开始的业务仍继续执行并在结束时尝试释放锁。BREAKING:调用方必须显式包装现有 Redis 连接、直接声明客户端依赖,同时提供兼容的 `@jintianxiayu/logger` peer 并在首次锁调用前初始化 Logger。
18
+ - `@jintianxiayu/http-client-decorator`:同步适配 logger 0.2 的 peer 依赖与异步上下文用法;调用方应通过 `LoggerContext.withContext` 建立请求上下文,tracing 中间件继续从中读取并注入 `traceId`。
19
+ - 仓库开发与发布流程迁移到 pnpm 11 原生 workspace,并统一 TypeScript NodeNext、Jest、清理、构建和本地发布配置。
20
+
21
+ ### Patch Changes
22
+
23
+ - Updated dependencies:
24
+ - @jintianxiayu/logger@1.0.0