@xihe-lab/tapd-core 2.0.0-rc.2 → 2.0.0-rc.4

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 (119) hide show
  1. package/README.md +1 -0
  2. package/dist/advisor/index.d.ts.map +1 -1
  3. package/dist/advisor/index.js +2 -0
  4. package/dist/advisor/index.js.map +1 -1
  5. package/dist/cache/read-cache.d.ts +136 -0
  6. package/dist/cache/read-cache.d.ts.map +1 -0
  7. package/dist/cache/read-cache.js +322 -0
  8. package/dist/cache/read-cache.js.map +1 -0
  9. package/dist/cache/read-cache.test.d.ts +2 -0
  10. package/dist/cache/read-cache.test.d.ts.map +1 -0
  11. package/dist/cache/read-cache.test.js +429 -0
  12. package/dist/cache/read-cache.test.js.map +1 -0
  13. package/dist/errors/index.d.ts +120 -0
  14. package/dist/errors/index.d.ts.map +1 -0
  15. package/dist/errors/index.js +429 -0
  16. package/dist/errors/index.js.map +1 -0
  17. package/dist/index.d.ts +3 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +2 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/registry/registry.d.ts +7 -0
  22. package/dist/registry/registry.d.ts.map +1 -1
  23. package/dist/registry/registry.js +9 -3
  24. package/dist/registry/registry.js.map +1 -1
  25. package/dist/registry/registry.test.js +293 -2
  26. package/dist/registry/registry.test.js.map +1 -1
  27. package/dist/richtext/index.d.ts +1 -14
  28. package/dist/richtext/index.d.ts.map +1 -1
  29. package/dist/richtext/index.js +3 -34
  30. package/dist/richtext/index.js.map +1 -1
  31. package/dist/richtext/pipeline.d.ts +1 -4
  32. package/dist/richtext/pipeline.d.ts.map +1 -1
  33. package/dist/richtext/pipeline.js +2 -198
  34. package/dist/richtext/pipeline.js.map +1 -1
  35. package/dist/tapd-client.d.ts +34 -2
  36. package/dist/tapd-client.d.ts.map +1 -1
  37. package/dist/tapd-client.js +121 -42
  38. package/dist/tapd-client.js.map +1 -1
  39. package/dist/tools/attachment.js +40 -40
  40. package/dist/tools/attachment.js.map +1 -1
  41. package/dist/tools/board.js +22 -22
  42. package/dist/tools/board.js.map +1 -1
  43. package/dist/tools/bug.js +259 -259
  44. package/dist/tools/bug.js.map +1 -1
  45. package/dist/tools/changes.js +20 -20
  46. package/dist/tools/changes.js.map +1 -1
  47. package/dist/tools/comment.js +23 -23
  48. package/dist/tools/comment.js.map +1 -1
  49. package/dist/tools/custom-fields.js +16 -16
  50. package/dist/tools/custom-fields.js.map +1 -1
  51. package/dist/tools/image.js +2 -2
  52. package/dist/tools/image.js.map +1 -1
  53. package/dist/tools/iteration.js +50 -50
  54. package/dist/tools/iteration.js.map +1 -1
  55. package/dist/tools/media.js +2 -2
  56. package/dist/tools/media.js.map +1 -1
  57. package/dist/tools/mini-comment.js +27 -27
  58. package/dist/tools/mini-comment.js.map +1 -1
  59. package/dist/tools/mini-item.js +83 -83
  60. package/dist/tools/mini-item.js.map +1 -1
  61. package/dist/tools/mini-workspace.js +5 -5
  62. package/dist/tools/mini-workspace.js.map +1 -1
  63. package/dist/tools/program.js +7 -7
  64. package/dist/tools/program.js.map +1 -1
  65. package/dist/tools/relations.js +14 -14
  66. package/dist/tools/relations.js.map +1 -1
  67. package/dist/tools/release.js +53 -53
  68. package/dist/tools/release.js.map +1 -1
  69. package/dist/tools/report.js +8 -8
  70. package/dist/tools/report.js.map +1 -1
  71. package/dist/tools/settings.js +77 -77
  72. package/dist/tools/settings.js.map +1 -1
  73. package/dist/tools/source.js +14 -14
  74. package/dist/tools/source.js.map +1 -1
  75. package/dist/tools/story.js +120 -120
  76. package/dist/tools/story.js.map +1 -1
  77. package/dist/tools/task.js +123 -123
  78. package/dist/tools/task.js.map +1 -1
  79. package/dist/tools/test.js +117 -117
  80. package/dist/tools/test.js.map +1 -1
  81. package/dist/tools/timesheet.js +23 -23
  82. package/dist/tools/timesheet.js.map +1 -1
  83. package/dist/tools/user.js +8 -8
  84. package/dist/tools/user.js.map +1 -1
  85. package/dist/tools/utility.d.ts +17 -0
  86. package/dist/tools/utility.d.ts.map +1 -1
  87. package/dist/tools/utility.js +73 -78
  88. package/dist/tools/utility.js.map +1 -1
  89. package/dist/tools/wiki.js +51 -51
  90. package/dist/tools/wiki.js.map +1 -1
  91. package/dist/tools/workflow.js +26 -26
  92. package/dist/tools/workflow.js.map +1 -1
  93. package/dist/tools/workspace.js +16 -16
  94. package/dist/tools/workspace.js.map +1 -1
  95. package/package.json +10 -14
  96. package/dist/richtext/attachment-anchor.d.ts +0 -58
  97. package/dist/richtext/attachment-anchor.d.ts.map +0 -1
  98. package/dist/richtext/attachment-anchor.js +0 -221
  99. package/dist/richtext/attachment-anchor.js.map +0 -1
  100. package/dist/richtext/attachment-anchor.test.d.ts +0 -2
  101. package/dist/richtext/attachment-anchor.test.d.ts.map +0 -1
  102. package/dist/richtext/attachment-anchor.test.js +0 -149
  103. package/dist/richtext/attachment-anchor.test.js.map +0 -1
  104. package/dist/richtext/escape.d.ts +0 -7
  105. package/dist/richtext/escape.d.ts.map +0 -1
  106. package/dist/richtext/escape.js +0 -60
  107. package/dist/richtext/escape.js.map +0 -1
  108. package/dist/richtext/mention.d.ts +0 -49
  109. package/dist/richtext/mention.d.ts.map +0 -1
  110. package/dist/richtext/mention.js +0 -179
  111. package/dist/richtext/mention.js.map +0 -1
  112. package/dist/richtext/mention.test.d.ts +0 -2
  113. package/dist/richtext/mention.test.d.ts.map +0 -1
  114. package/dist/richtext/mention.test.js +0 -123
  115. package/dist/richtext/mention.test.js.map +0 -1
  116. package/dist/richtext/round-trip.test.d.ts +0 -2
  117. package/dist/richtext/round-trip.test.d.ts.map +0 -1
  118. package/dist/richtext/round-trip.test.js +0 -105
  119. package/dist/richtext/round-trip.test.js.map +0 -1
package/README.md CHANGED
@@ -12,6 +12,7 @@ npm install @xihe-lab/tapd-core
12
12
 
13
13
  - **工具定义**:`src/tools/` 按 TAPD 领域组织——需求(story)、缺陷(bug)、任务(task)、迭代(iteration)、Wiki、附件、评论、用户、工作区、发布、看板、工时、报表等,统一收敛为 `allTools`
14
14
  - **HTTP 客户端**:`TapdClient`,支持 Bearer Token(`fromAccessToken`)与 Basic Auth(`fromBasicAuth`)两种认证
15
+ - **只读缓存**:workitem_types / workflow / 成员 / 自定义字段配置 / settings 系 / 分类 / 角色等低频 GET 内置 TTL 缓存(LRU + 并发去重 + 深拷贝返回);`TAPD_CACHE=off` 关闭(默认开)、`TAPD_CACHE_TTL` 全局倍率、`TAPD_CACHE_DEBUG=1` 命中日志,`invalidateCache(workspaceId?)` 显式失效
15
16
  - **工具注册表**:`ToolRegistry`,负责工具注册、执行、审计(`AuditEvent`)与写策略裁决(`resolveWrite`)
16
17
  - **配置**:`config.ts` 提供配置加载/保存与注入环境变量
17
18
  - **富文本**:`richtext/` 语义库,md ↔ html 双向转换与 `@`/附件锚点处理
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/advisor/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AA2JD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,YAAY,GAAG,YAAY,EAAE,CAmCxE;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,KAAK,SAAK,GAAG,UAAU,EAAE,CAwCxF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/advisor/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AA6JD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,YAAY,GAAG,YAAY,EAAE,CAmCxE;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,KAAK,SAAK,GAAG,UAAU,EAAE,CAwCxF"}
@@ -44,6 +44,8 @@ const SYNONYMS = [
44
44
  ['字段', ['field']],
45
45
  ['模板', ['template']],
46
46
  ['批量', ['batch']],
47
+ ['回收站', ['removed', 'recycle']],
48
+ ['看板', ['board', 'card']],
47
49
  ];
48
50
  const SYNONYM_ENTRIES = [...SYNONYMS].sort((a, b) => b[0].length - a[0].length);
49
51
  const DOMAIN_RANK = ['story', 'bug', 'task', 'iteration', 'wiki', 'comment'];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/advisor/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/advisor/index.ts"],"names":[],"mappings":"AAmBA,2CAA2C;AAC3C,MAAM,QAAQ,GAAyB;IACrC,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC3C,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IAC5C,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC1C,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC9B,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5B,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3B,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC;IACjB,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC;IAClB,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC;IAClB,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC;IACnB,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC;IACnB,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,CAAC;IACtB,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC;IACrB,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC9B,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC9B,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC;IACf,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC/B,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAChC,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC;IAClB,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC;IAClB,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC;IAClB,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC;IAClB,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC;IAClB,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC;IAClB,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzB,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC9B,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC5B,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC;IAClB,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxB,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC;IACpB,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC/B,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;CAC1B,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhF,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AAC7E,MAAM,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACtC,MAAM,WAAW,GAAG,aAAa,CAAC;AAClC,MAAM,SAAS,GAAG,cAAc,CAAC;AACjC,MAAM,WAAW,GAAG,SAAS,CAAC;AAO9B,SAAS,WAAW,CAAC,IAAY;IAC/B,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAC5E,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7D,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1F,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE;QAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACzE,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,IAAI,IAAI,GAAG,GAAG,CAAC;IACf,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,eAAe,EAAE,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,SAAS;QAClC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,MAAc,EAAE,EAAE;QAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,IAAI,KAAK,SAAS,IAAI,MAAM,GAAG,IAAI;YAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpE,CAAC,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;QAClD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACtC,IAAI,IAAI;gBAAE,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;QACnD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QAC7C,KAAK,MAAM,KAAK,IAAI,MAAM;YAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1D,KAAK,MAAM,MAAM,IAAI,cAAc,CAAC,IAAI,CAAC;YAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,mBAAmB,CAAC,CAAS,EAAE,CAAS;IAC/C,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;IACpB,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;IACpB,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAClB,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QACD,IAAI,MAAM;YAAE,OAAO,KAAK,CAAC;QACzB,MAAM,GAAG,IAAI,CAAC;QACd,IAAI,EAAE,GAAG,EAAE;YAAE,CAAC,EAAE,CAAC;aACZ,IAAI,EAAE,GAAG,EAAE;YAAE,CAAC,EAAE,CAAC;aACjB,CAAC;YACJ,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;QACN,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,KAAa,EAAE,KAAmB;IACrD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAC3D,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QACjD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;YAAE,SAAS;QAC5C,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACjE,IAAI,MAAM,GAAG,IAAI;gBAAE,IAAI,GAAG,MAAM,CAAC;QACnC,CAAC;aAAM,IAAI,mBAAmB,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,MAAM,GAAG,IAAI,EAAE,CAAC;YACnE,IAAI,GAAG,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,UAAU,CAAC,KAAmB;IACrC,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAsB;IACtD,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACnC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC1C,MAAM,GAAG,GAAG,CAAC,KAAa,EAAE,MAAc,EAAE,EAAE;YAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,IAAI,KAAK,SAAS,IAAI,MAAM,GAAG,IAAI;gBAAE,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACtE,CAAC,CAAC;QACF,IAAI,IAAI,EAAE,GAAG,EAAE,KAAK;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;QAC3D,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1E,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACZ,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,IAAI,KAAK,GAAG;gBAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACjC,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;YAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACzD,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;YAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACvD,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,EAAE,CAAC;QAC5C,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE;YAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACrF,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;YACvD,KAAK,MAAM,MAAM,IAAI,cAAc,CAAC,GAAG,CAAC;gBAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;YACxB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACxC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE;oBAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACnF,CAAC;QACH,CAAC;QACD,OAAO;YACL,QAAQ,EAAE,GAAG,CAAC,IAAI;YAClB,OAAO,EAAE,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,EAAE;YACxC,WAAW;YACX,OAAO,EAAE,GAAG,CAAC,KAAK;YAClB,MAAM,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC/B,OAAO;SACR,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAa,EAAE,KAAqB,EAAE,KAAK,GAAG,EAAE;IACxE,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEpC,MAAM,MAAM,GAA6E,EAAE,CAAC;IAC5F,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,KAAK,IAAI,EAAE,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1C,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;gBACzC,SAAS;YACX,CAAC;YACD,IAAI,EAAE,CAAC,MAAM,KAAK,KAAK;gBAAE,SAAS;YAClC,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC1C,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACd,KAAK,IAAI,KAAK,GAAG,GAAG,CAAC;gBACrB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QACD,IAAI,KAAK,IAAI,CAAC;YAAE,SAAS;QACzB,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACnB,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK;WACd,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ;WACvB,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI;WACf,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAClD,CAAC;IAEF,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QACvD,IAAI,EAAE,KAAK,CAAC,QAAQ;QACpB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,KAAK,EAAE,KAAK,CAAC,OAAO;QACpB,KAAK;KACN,CAAC,CAAC,CAAC;AACN,CAAC"}
@@ -0,0 +1,136 @@
1
+ /**
2
+ * 只读数据 TTL 缓存(Wave 2)
3
+ *
4
+ * 范围与契约:
5
+ * - 只缓存 allowlist 内低频变化的 GET 端点(workitem_types / workflow 状态表与步骤 /
6
+ * workspace 成员 / 自定义字段配置 / settings 系(模块、版本、特性、项目设置)/
7
+ * 分类(story、tcase)/ 角色),其余请求一律直连,行为与无缓存完全一致
8
+ * - 缓存层位于 TapdClient 内部(route() 的 GET 分支),registry 与工具层零感知,
9
+ * 工具返回形态零变化——命中返回深拷贝,防消费方 mutate 污染缓存
10
+ * - 键 = 端点 + 规范化参数(键排序、剔除 undefined)+ API origin 命名空间;
11
+ * workspace_id 是普通参数的一员,天然按项目维度隔离
12
+ * - in-flight 去重:并发同键请求共享同一个 Promise,只发一次网络请求
13
+ * - LRU 上限(默认 200 条)防膨胀;TTL 按端点分级(CACHE_TTL_MS 常量表可调)
14
+ * - 写操作不动缓存(allowlist 数据基本不经本工具写);需要时显式调用
15
+ * invalidateCache() 全量清除,或 invalidateCache(workspaceId) 按项目清除
16
+ * - 错误不缓存、不吞、不换形态:底层 TapdError 原样上抛,失败后缓存与
17
+ * in-flight 均清理干净,下次调用照常回源
18
+ * - 环境变量(解析容错:非法值回退默认,绝不因环境变量抛错):
19
+ * - TAPD_CACHE:off/0/false/no/disabled 关闭缓存(大小写不敏感,默认 on)
20
+ * - TAPD_CACHE_TTL:全局 TTL 倍率(默认 1;非法/非正数回退 1)
21
+ * - TAPD_CACHE_DEBUG:1/true/on/yes/enabled 时输出命中日志与命中率(默认关)
22
+ */
23
+ /** LRU 上限:allowlist 端点 × 常用项目组合远小于该值,超限按最久未命中逐出。 */
24
+ export declare const CACHE_MAX_ENTRIES = 200;
25
+ /**
26
+ * TTL 分级常量表(毫秒,按数据变化频率定级,代码内可调):
27
+ * - 1h:workitem_types、自定义字段配置(管理动作才会变)
28
+ * - 30min:workspace 成员、settings 系(模块/版本/特性/项目设置)、分类、角色
29
+ * - 10min:workflow 状态表/步骤(有界面编排入口,变更稍勤)
30
+ */
31
+ export declare const CACHE_TTL_MS: {
32
+ readonly workitemTypes: 3600000;
33
+ readonly customFieldConfig: 3600000;
34
+ readonly workspaceMembers: 1800000;
35
+ readonly settings: 1800000;
36
+ readonly categories: 1800000;
37
+ readonly roles: 1800000;
38
+ readonly workflow: 600000;
39
+ };
40
+ /**
41
+ * 查端点 TTL:命中返回毫秒数(>0 且可缓存),未命中返回 undefined(一律直连)。
42
+ * 除精确表外,唯一一条族规则是各实体的 custom_fields_settings(自定义字段配置,1h)。
43
+ */
44
+ export declare function ttlForPath(path: string): number | undefined;
45
+ /** TAPD_CACHE:未设/空串默认开;off 族词关闭;其余值视为开。 */
46
+ export declare function parseCacheEnabled(raw: string | undefined): boolean;
47
+ /** TAPD_CACHE_TTL:正数倍率;未设/空串/非法/非正数一律回退 1。 */
48
+ export declare function parseTtlMultiplier(raw: string | undefined): number;
49
+ /** TAPD_CACHE_DEBUG:仅 on 族词开启,其余(含未设)关闭。 */
50
+ export declare function parseCacheDebug(raw: string | undefined): boolean;
51
+ /** 规范化参数串:剔除 undefined,按键排序,值 String() 化——同参异序必同键。 */
52
+ export declare function canonicalQuery(params?: Record<string, string | number | boolean | undefined>): string;
53
+ /** 缓存键 = origin 命名空间 + 端点 + 规范化参数(workspace_id 在参数内,项目天然隔离)。 */
54
+ export declare function cacheKeyFor(origin: string, path: string, params?: Record<string, string | number | boolean | undefined>): string;
55
+ /** 从 API origin(baseUrl)提取命名空间,防多环境(如测试假服务)串缓存;解析失败回退原串。 */
56
+ export declare function originNamespace(baseUrl: string): string;
57
+ export interface ReadCacheOptions {
58
+ /** 注入时钟(单测假时间);默认 Date.now */
59
+ now?: () => number;
60
+ /** LRU 上限;默认 CACHE_MAX_ENTRIES */
61
+ maxEntries?: number;
62
+ /** 强制开关(测试用);缺省读 TAPD_CACHE */
63
+ enabled?: boolean;
64
+ /** 强制 TTL 倍率(测试用);缺省读 TAPD_CACHE_TTL */
65
+ ttlMultiplier?: number;
66
+ /** 强制调试日志(测试用);缺省读 TAPD_CACHE_DEBUG */
67
+ debug?: boolean;
68
+ /** 调试日志落点;默认 console.error */
69
+ log?: (message: string) => void;
70
+ }
71
+ export interface CacheStats {
72
+ /** 当前缓存条目数 */
73
+ size: number;
74
+ /** 等待回源的并发同键请求数 */
75
+ inflight: number;
76
+ hits: number;
77
+ misses: number;
78
+ /** 命中率(0~1;无查询时为 0) */
79
+ hitRate: number;
80
+ }
81
+ /**
82
+ * 只读 GET 响应缓存:TTL + LRU + in-flight 去重 + 深拷贝隔离。
83
+ * TapdClient 持模块级单例(进程内跨工具调用共享);单测可自建实例注入时钟。
84
+ */
85
+ export declare class ReadCache {
86
+ private readonly entries;
87
+ private readonly pending;
88
+ private hits;
89
+ private misses;
90
+ /** 时钟可注入(测试假时间);实例级可替换。 */
91
+ now: () => number;
92
+ private readonly maxEntries;
93
+ private readonly forced;
94
+ private readonly log;
95
+ constructor(options?: ReadCacheOptions);
96
+ /** 缓存总开关(TAPD_CACHE,默认 on)。 */
97
+ get enabled(): boolean;
98
+ private get ttlMultiplier();
99
+ private get debug();
100
+ /**
101
+ * 命中返回深拷贝(消费方 mutate 不污染缓存);未命中/已过期/未启用返回 undefined。
102
+ * 命中顺带刷新 LRU 新近度;过期条目惰性清除。
103
+ */
104
+ peek<T>(key: string): T | undefined;
105
+ /** 写入缓存(存深拷贝,源头后续 mutate 不影响缓存);超限按 LRU 逐出最旧。 */
106
+ store(key: string, value: unknown, ttlMs: number, workspaceId?: string | number): void;
107
+ /** 取并发同键的 in-flight Promise(共享同一次回源,不发重复请求)。 */
108
+ inflight<T>(key: string): Promise<T> | undefined;
109
+ /** 登记 in-flight Promise,settle(成功/失败)后自清理;内部消费拒绝避免 unhandledRejection。 */
110
+ trackInflight(key: string, promise: Promise<unknown>): void;
111
+ /**
112
+ * 失效清除:无参全量清空;给 workspaceId 只清该项目的条目(其余项目保留命中)。
113
+ * 返回清除的条目数。只清已落盘条目,不打断在途回源(完成后的新值照常入库)。
114
+ */
115
+ invalidate(workspaceId?: string | number): number;
116
+ /** 统计快照(TAPD_CACHE_DEBUG 日志与运维观测共用)。 */
117
+ stats(): CacheStats;
118
+ /** 清零计数(测试/巡检用;不动条目)。 */
119
+ resetStats(): void;
120
+ private logLookup;
121
+ }
122
+ /** 进程级单例:TapdClient 的 GET 通道共用,跨工具调用保活。 */
123
+ export declare const readCache: ReadCache;
124
+ /** 失效缓存:无参全量清空,传 workspaceId 只清该项目(长/短 ID 字符串语义均可)。 */
125
+ export declare function invalidateCache(workspaceId?: string | number): number;
126
+ /** 缓存统计快照(命中率等,TAPD_CACHE_DEBUG=1 时日志同步输出)。 */
127
+ export declare function cacheStats(): CacheStats;
128
+ /**
129
+ * TapdClient GET 通道的缓存门面:
130
+ * - 非 allowlist 端点或缓存关闭 → 原样直连(与无缓存行为逐字节一致)
131
+ * - 命中 → 深拷贝返回;并发同键 → 共享 in-flight Promise
132
+ * - 回源成功 → 写缓存后返回**原始值**(与直连返回同一对象,形态零变化)
133
+ * - 回源失败 → TapdError 原样上抛(不缓存失败,不换错误形态)
134
+ */
135
+ export declare function cachedGet<T>(baseUrl: string, path: string, params: Record<string, string | number | boolean | undefined> | undefined, fetcher: () => Promise<T>): Promise<T>;
136
+ //# sourceMappingURL=read-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-cache.d.ts","sourceRoot":"","sources":["../../src/cache/read-cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,322 @@
1
+ /**
2
+ * 只读数据 TTL 缓存(Wave 2)
3
+ *
4
+ * 范围与契约:
5
+ * - 只缓存 allowlist 内低频变化的 GET 端点(workitem_types / workflow 状态表与步骤 /
6
+ * workspace 成员 / 自定义字段配置 / settings 系(模块、版本、特性、项目设置)/
7
+ * 分类(story、tcase)/ 角色),其余请求一律直连,行为与无缓存完全一致
8
+ * - 缓存层位于 TapdClient 内部(route() 的 GET 分支),registry 与工具层零感知,
9
+ * 工具返回形态零变化——命中返回深拷贝,防消费方 mutate 污染缓存
10
+ * - 键 = 端点 + 规范化参数(键排序、剔除 undefined)+ API origin 命名空间;
11
+ * workspace_id 是普通参数的一员,天然按项目维度隔离
12
+ * - in-flight 去重:并发同键请求共享同一个 Promise,只发一次网络请求
13
+ * - LRU 上限(默认 200 条)防膨胀;TTL 按端点分级(CACHE_TTL_MS 常量表可调)
14
+ * - 写操作不动缓存(allowlist 数据基本不经本工具写);需要时显式调用
15
+ * invalidateCache() 全量清除,或 invalidateCache(workspaceId) 按项目清除
16
+ * - 错误不缓存、不吞、不换形态:底层 TapdError 原样上抛,失败后缓存与
17
+ * in-flight 均清理干净,下次调用照常回源
18
+ * - 环境变量(解析容错:非法值回退默认,绝不因环境变量抛错):
19
+ * - TAPD_CACHE:off/0/false/no/disabled 关闭缓存(大小写不敏感,默认 on)
20
+ * - TAPD_CACHE_TTL:全局 TTL 倍率(默认 1;非法/非正数回退 1)
21
+ * - TAPD_CACHE_DEBUG:1/true/on/yes/enabled 时输出命中日志与命中率(默认关)
22
+ */
23
+ /** LRU 上限:allowlist 端点 × 常用项目组合远小于该值,超限按最久未命中逐出。 */
24
+ export const CACHE_MAX_ENTRIES = 200;
25
+ const HOUR_MS = 3_600_000;
26
+ const HALF_HOUR_MS = 1_800_000;
27
+ const TEN_MIN_MS = 600_000;
28
+ /**
29
+ * TTL 分级常量表(毫秒,按数据变化频率定级,代码内可调):
30
+ * - 1h:workitem_types、自定义字段配置(管理动作才会变)
31
+ * - 30min:workspace 成员、settings 系(模块/版本/特性/项目设置)、分类、角色
32
+ * - 10min:workflow 状态表/步骤(有界面编排入口,变更稍勤)
33
+ */
34
+ export const CACHE_TTL_MS = {
35
+ workitemTypes: HOUR_MS,
36
+ customFieldConfig: HOUR_MS,
37
+ workspaceMembers: HALF_HOUR_MS,
38
+ settings: HALF_HOUR_MS,
39
+ categories: HALF_HOUR_MS,
40
+ roles: HALF_HOUR_MS,
41
+ workflow: TEN_MIN_MS,
42
+ };
43
+ /** 允许缓存的 GET 端点 → TTL(毫秒)。不在表内的一律直连(allowlist 即缓存边界)。 */
44
+ const EXACT_TTL_BY_PATH = {
45
+ // 工作项类型(1h)
46
+ '/workitem_types': CACHE_TTL_MS.workitemTypes,
47
+ // 自定义字段配置(1h)——实体级配置走下方后缀规则
48
+ '/workspaces/custom_fields': CACHE_TTL_MS.customFieldConfig,
49
+ // workspace 成员(30min):/users 即 tapd_get_workspace_users 的成员查询
50
+ '/users': CACHE_TTL_MS.workspaceMembers,
51
+ '/workspaces/users': CACHE_TTL_MS.workspaceMembers,
52
+ // workflow 状态表/步骤(10min)
53
+ '/workflows': CACHE_TTL_MS.workflow,
54
+ '/workflows/status_map': CACHE_TTL_MS.workflow,
55
+ '/workflows/step_map': CACHE_TTL_MS.workflow,
56
+ '/workflows/last_steps': CACHE_TTL_MS.workflow,
57
+ '/workflows/first_step': CACHE_TTL_MS.workflow,
58
+ '/workflows/all_transitions': CACHE_TTL_MS.workflow,
59
+ '/workflows/all_last_steps': CACHE_TTL_MS.workflow,
60
+ // settings 系:模块/版本/特性 + 项目设置(30min;count 与列表同源同频)
61
+ '/settings/modules': CACHE_TTL_MS.settings,
62
+ '/settings/modules/count': CACHE_TTL_MS.settings,
63
+ '/settings/versions': CACHE_TTL_MS.settings,
64
+ '/settings/versions/count': CACHE_TTL_MS.settings,
65
+ '/settings/features': CACHE_TTL_MS.settings,
66
+ '/settings/features/count': CACHE_TTL_MS.settings,
67
+ '/settings/workspace_setting': CACHE_TTL_MS.settings,
68
+ // 分类(story/tcase categories,30min)
69
+ '/story_categories': CACHE_TTL_MS.categories,
70
+ '/story_categories/count': CACHE_TTL_MS.categories,
71
+ '/tcase_categories': CACHE_TTL_MS.categories,
72
+ '/tcase_categories/count': CACHE_TTL_MS.categories,
73
+ // 角色(30min)
74
+ '/roles': CACHE_TTL_MS.roles,
75
+ };
76
+ /**
77
+ * 查端点 TTL:命中返回毫秒数(>0 且可缓存),未命中返回 undefined(一律直连)。
78
+ * 除精确表外,唯一一条族规则是各实体的 custom_fields_settings(自定义字段配置,1h)。
79
+ */
80
+ export function ttlForPath(path) {
81
+ const exact = EXACT_TTL_BY_PATH[path];
82
+ if (exact !== undefined)
83
+ return exact;
84
+ if (path.endsWith('/custom_fields_settings'))
85
+ return CACHE_TTL_MS.customFieldConfig;
86
+ return undefined;
87
+ }
88
+ // ---------------------------------------------------------------------------
89
+ // 环境变量解析(容错:非法值回退默认,绝不抛错)
90
+ // ---------------------------------------------------------------------------
91
+ const OFF_WORDS = new Set(['0', 'false', 'off', 'no', 'disabled']);
92
+ const DEBUG_WORDS = new Set(['1', 'true', 'on', 'yes', 'enabled']);
93
+ /** TAPD_CACHE:未设/空串默认开;off 族词关闭;其余值视为开。 */
94
+ export function parseCacheEnabled(raw) {
95
+ if (raw === undefined)
96
+ return true;
97
+ const normalized = raw.trim().toLowerCase();
98
+ if (normalized === '')
99
+ return true;
100
+ return !OFF_WORDS.has(normalized);
101
+ }
102
+ /** TAPD_CACHE_TTL:正数倍率;未设/空串/非法/非正数一律回退 1。 */
103
+ export function parseTtlMultiplier(raw) {
104
+ if (raw === undefined)
105
+ return 1;
106
+ const normalized = raw.trim();
107
+ if (normalized === '')
108
+ return 1;
109
+ const num = Number(normalized);
110
+ return Number.isFinite(num) && num > 0 ? num : 1;
111
+ }
112
+ /** TAPD_CACHE_DEBUG:仅 on 族词开启,其余(含未设)关闭。 */
113
+ export function parseCacheDebug(raw) {
114
+ if (raw === undefined)
115
+ return false;
116
+ return DEBUG_WORDS.has(raw.trim().toLowerCase());
117
+ }
118
+ // ---------------------------------------------------------------------------
119
+ // 缓存实现
120
+ // ---------------------------------------------------------------------------
121
+ /** 规范化参数串:剔除 undefined,按键排序,值 String() 化——同参异序必同键。 */
122
+ export function canonicalQuery(params) {
123
+ if (!params)
124
+ return '';
125
+ return Object.entries(params)
126
+ .filter((entry) => entry[1] !== undefined)
127
+ .sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0))
128
+ .map(([key, value]) => `${key}=${String(value)}`)
129
+ .join('&');
130
+ }
131
+ /** 缓存键 = origin 命名空间 + 端点 + 规范化参数(workspace_id 在参数内,项目天然隔离)。 */
132
+ export function cacheKeyFor(origin, path, params) {
133
+ const query = canonicalQuery(params);
134
+ return query === '' ? `${origin} ${path}` : `${origin} ${path}?${query}`;
135
+ }
136
+ /** 从 API origin(baseUrl)提取命名空间,防多环境(如测试假服务)串缓存;解析失败回退原串。 */
137
+ export function originNamespace(baseUrl) {
138
+ try {
139
+ return new URL(baseUrl).origin;
140
+ }
141
+ catch {
142
+ return baseUrl;
143
+ }
144
+ }
145
+ function safeClone(value) {
146
+ try {
147
+ return structuredClone(value);
148
+ }
149
+ catch {
150
+ return undefined; // 非Cloneable(理论不可达:API 响应均为 JSON)按不可缓存处理
151
+ }
152
+ }
153
+ /**
154
+ * 只读 GET 响应缓存:TTL + LRU + in-flight 去重 + 深拷贝隔离。
155
+ * TapdClient 持模块级单例(进程内跨工具调用共享);单测可自建实例注入时钟。
156
+ */
157
+ export class ReadCache {
158
+ entries = new Map();
159
+ pending = new Map();
160
+ hits = 0;
161
+ misses = 0;
162
+ /** 时钟可注入(测试假时间);实例级可替换。 */
163
+ now;
164
+ maxEntries;
165
+ forced;
166
+ log;
167
+ constructor(options = {}) {
168
+ this.now = options.now ?? Date.now;
169
+ this.maxEntries = options.maxEntries ?? CACHE_MAX_ENTRIES;
170
+ this.forced = { enabled: options.enabled, ttlMultiplier: options.ttlMultiplier, debug: options.debug };
171
+ this.log = options.log ?? (message => console.error(message));
172
+ }
173
+ /** 缓存总开关(TAPD_CACHE,默认 on)。 */
174
+ get enabled() {
175
+ return this.forced.enabled ?? parseCacheEnabled(process.env.TAPD_CACHE);
176
+ }
177
+ get ttlMultiplier() {
178
+ return this.forced.ttlMultiplier ?? parseTtlMultiplier(process.env.TAPD_CACHE_TTL);
179
+ }
180
+ get debug() {
181
+ return this.forced.debug ?? parseCacheDebug(process.env.TAPD_CACHE_DEBUG);
182
+ }
183
+ /**
184
+ * 命中返回深拷贝(消费方 mutate 不污染缓存);未命中/已过期/未启用返回 undefined。
185
+ * 命中顺带刷新 LRU 新近度;过期条目惰性清除。
186
+ */
187
+ peek(key) {
188
+ if (!this.enabled)
189
+ return undefined;
190
+ const entry = this.entries.get(key);
191
+ if (entry === undefined) {
192
+ this.misses += 1;
193
+ this.logLookup(key, false);
194
+ return undefined;
195
+ }
196
+ if (entry.expiresAt <= this.now()) {
197
+ this.entries.delete(key);
198
+ this.misses += 1;
199
+ this.logLookup(key, false);
200
+ return undefined;
201
+ }
202
+ this.hits += 1;
203
+ this.entries.delete(key);
204
+ this.entries.set(key, entry); // LRU touch:重插到队尾
205
+ this.logLookup(key, true);
206
+ return safeClone(entry.value);
207
+ }
208
+ /** 写入缓存(存深拷贝,源头后续 mutate 不影响缓存);超限按 LRU 逐出最旧。 */
209
+ store(key, value, ttlMs, workspaceId) {
210
+ if (!this.enabled)
211
+ return;
212
+ const cloned = safeClone(value);
213
+ if (cloned === undefined)
214
+ return;
215
+ this.entries.delete(key);
216
+ this.entries.set(key, {
217
+ value: cloned,
218
+ expiresAt: this.now() + ttlMs * this.ttlMultiplier,
219
+ ...(workspaceId !== undefined ? { workspaceId: String(workspaceId) } : {}),
220
+ });
221
+ while (this.entries.size > this.maxEntries) {
222
+ const oldest = this.entries.keys().next();
223
+ if (oldest.done)
224
+ break;
225
+ this.entries.delete(oldest.value);
226
+ }
227
+ }
228
+ /** 取并发同键的 in-flight Promise(共享同一次回源,不发重复请求)。 */
229
+ inflight(key) {
230
+ return this.pending.get(key);
231
+ }
232
+ /** 登记 in-flight Promise,settle(成功/失败)后自清理;内部消费拒绝避免 unhandledRejection。 */
233
+ trackInflight(key, promise) {
234
+ this.pending.set(key, promise);
235
+ const cleanup = () => {
236
+ if (this.pending.get(key) === promise)
237
+ this.pending.delete(key);
238
+ };
239
+ promise.then(cleanup, cleanup);
240
+ }
241
+ /**
242
+ * 失效清除:无参全量清空;给 workspaceId 只清该项目的条目(其余项目保留命中)。
243
+ * 返回清除的条目数。只清已落盘条目,不打断在途回源(完成后的新值照常入库)。
244
+ */
245
+ invalidate(workspaceId) {
246
+ if (workspaceId === undefined) {
247
+ const removed = this.entries.size;
248
+ this.entries.clear();
249
+ return removed;
250
+ }
251
+ const target = String(workspaceId);
252
+ let removed = 0;
253
+ for (const [key, entry] of this.entries) {
254
+ if (entry.workspaceId === target) {
255
+ this.entries.delete(key);
256
+ removed += 1;
257
+ }
258
+ }
259
+ return removed;
260
+ }
261
+ /** 统计快照(TAPD_CACHE_DEBUG 日志与运维观测共用)。 */
262
+ stats() {
263
+ const total = this.hits + this.misses;
264
+ return {
265
+ size: this.entries.size,
266
+ inflight: this.pending.size,
267
+ hits: this.hits,
268
+ misses: this.misses,
269
+ hitRate: total > 0 ? this.hits / total : 0,
270
+ };
271
+ }
272
+ /** 清零计数(测试/巡检用;不动条目)。 */
273
+ resetStats() {
274
+ this.hits = 0;
275
+ this.misses = 0;
276
+ }
277
+ logLookup(key, hit) {
278
+ if (!this.debug)
279
+ return;
280
+ const total = this.hits + this.misses;
281
+ const rate = total > 0 ? Math.round((this.hits / total) * 100) : 0;
282
+ this.log(`[tapd-cache] ${hit ? 'HIT' : 'MISS'} ${key} (hits ${this.hits}/${total}, ${rate}%)`);
283
+ }
284
+ }
285
+ /** 进程级单例:TapdClient 的 GET 通道共用,跨工具调用保活。 */
286
+ export const readCache = new ReadCache();
287
+ /** 失效缓存:无参全量清空,传 workspaceId 只清该项目(长/短 ID 字符串语义均可)。 */
288
+ export function invalidateCache(workspaceId) {
289
+ return readCache.invalidate(workspaceId);
290
+ }
291
+ /** 缓存统计快照(命中率等,TAPD_CACHE_DEBUG=1 时日志同步输出)。 */
292
+ export function cacheStats() {
293
+ return readCache.stats();
294
+ }
295
+ /**
296
+ * TapdClient GET 通道的缓存门面:
297
+ * - 非 allowlist 端点或缓存关闭 → 原样直连(与无缓存行为逐字节一致)
298
+ * - 命中 → 深拷贝返回;并发同键 → 共享 in-flight Promise
299
+ * - 回源成功 → 写缓存后返回**原始值**(与直连返回同一对象,形态零变化)
300
+ * - 回源失败 → TapdError 原样上抛(不缓存失败,不换错误形态)
301
+ */
302
+ export function cachedGet(baseUrl, path, params, fetcher) {
303
+ const ttlMs = ttlForPath(path);
304
+ if (ttlMs === undefined || !readCache.enabled)
305
+ return fetcher();
306
+ const key = cacheKeyFor(originNamespace(baseUrl), path, params);
307
+ const hit = readCache.peek(key);
308
+ if (hit !== undefined)
309
+ return Promise.resolve(hit);
310
+ const pending = readCache.inflight(key);
311
+ if (pending !== undefined)
312
+ return pending;
313
+ const rawWorkspaceId = params?.workspace_id;
314
+ const workspaceId = typeof rawWorkspaceId === 'boolean' ? undefined : rawWorkspaceId;
315
+ const promise = fetcher().then(value => {
316
+ readCache.store(key, value, ttlMs, workspaceId);
317
+ return value;
318
+ });
319
+ readCache.trackInflight(key, promise);
320
+ return promise;
321
+ }
322
+ //# sourceMappingURL=read-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-cache.js","sourceRoot":"","sources":["../../src/cache/read-cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=read-cache.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-cache.test.d.ts","sourceRoot":"","sources":["../../src/cache/read-cache.test.ts"],"names":[],"mappings":""}