@bgord/bun 1.21.11 → 1.22.0

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 (303) hide show
  1. package/dist/alert-channel-composite.adapter.d.ts.map +1 -1
  2. package/dist/alert-channel-composite.adapter.js +1 -0
  3. package/dist/alert-channel-composite.adapter.js.map +1 -1
  4. package/dist/api-version.middleware.d.ts +1 -0
  5. package/dist/api-version.middleware.d.ts.map +1 -1
  6. package/dist/api-version.middleware.js +3 -1
  7. package/dist/api-version.middleware.js.map +1 -1
  8. package/dist/cache-codec-identity.strategy.d.ts +7 -0
  9. package/dist/cache-codec-identity.strategy.d.ts.map +1 -0
  10. package/dist/cache-codec-identity.strategy.js +9 -0
  11. package/dist/cache-codec-identity.strategy.js.map +1 -0
  12. package/dist/cache-codec-sitemap-entries.strategy.d.ts +11 -0
  13. package/dist/cache-codec-sitemap-entries.strategy.d.ts.map +1 -0
  14. package/dist/cache-codec-sitemap-entries.strategy.js +13 -0
  15. package/dist/cache-codec-sitemap-entries.strategy.js.map +1 -0
  16. package/dist/cache-codec.strategy.d.ts +6 -0
  17. package/dist/cache-codec.strategy.d.ts.map +1 -0
  18. package/dist/cache-codec.strategy.js +2 -0
  19. package/dist/cache-codec.strategy.js.map +1 -0
  20. package/dist/cache-repository-node-cache.adapter.d.ts +3 -2
  21. package/dist/cache-repository-node-cache.adapter.d.ts.map +1 -1
  22. package/dist/cache-repository-node-cache.adapter.js +6 -4
  23. package/dist/cache-repository-node-cache.adapter.js.map +1 -1
  24. package/dist/cache-repository-noop.adapter.d.ts +3 -2
  25. package/dist/cache-repository-noop.adapter.d.ts.map +1 -1
  26. package/dist/cache-repository-noop.adapter.js.map +1 -1
  27. package/dist/cache-repository-redis.adapter.d.ts +3 -2
  28. package/dist/cache-repository-redis.adapter.d.ts.map +1 -1
  29. package/dist/cache-repository-redis.adapter.js +8 -5
  30. package/dist/cache-repository-redis.adapter.js.map +1 -1
  31. package/dist/cache-repository.port.d.ts +3 -2
  32. package/dist/cache-repository.port.d.ts.map +1 -1
  33. package/dist/cache-resolver-noop.strategy.d.ts +8 -0
  34. package/dist/cache-resolver-noop.strategy.d.ts.map +1 -0
  35. package/dist/cache-resolver-noop.strategy.js +7 -0
  36. package/dist/cache-resolver-noop.strategy.js.map +1 -0
  37. package/dist/cache-resolver-read-through.strategy.d.ts +15 -0
  38. package/dist/cache-resolver-read-through.strategy.d.ts.map +1 -0
  39. package/dist/cache-resolver-read-through.strategy.js +21 -0
  40. package/dist/cache-resolver-read-through.strategy.js.map +1 -0
  41. package/dist/cache-resolver.strategy.d.ts +2 -9
  42. package/dist/cache-resolver.strategy.d.ts.map +1 -1
  43. package/dist/cache-resolver.strategy.js +1 -5
  44. package/dist/cache-resolver.strategy.js.map +1 -1
  45. package/dist/cache-value.vo.d.ts +6 -0
  46. package/dist/cache-value.vo.d.ts.map +1 -0
  47. package/dist/cache-value.vo.js +2 -0
  48. package/dist/cache-value.vo.js.map +1 -0
  49. package/dist/correlation-id.vo.d.ts.map +1 -1
  50. package/dist/correlation-id.vo.js +1 -0
  51. package/dist/correlation-id.vo.js.map +1 -1
  52. package/dist/cron-scheduler-with-logger.adapter.d.ts +3 -0
  53. package/dist/cron-scheduler-with-logger.adapter.d.ts.map +1 -1
  54. package/dist/cron-scheduler-with-logger.adapter.js +29 -7
  55. package/dist/cron-scheduler-with-logger.adapter.js.map +1 -1
  56. package/dist/cron-task-handler-with-logger.strategy.js +1 -1
  57. package/dist/cron-task-handler-with-logger.strategy.js.map +1 -1
  58. package/dist/crypto-key-provider-with-memo.adapter.d.ts +12 -0
  59. package/dist/crypto-key-provider-with-memo.adapter.d.ts.map +1 -0
  60. package/dist/crypto-key-provider-with-memo.adapter.js +17 -0
  61. package/dist/crypto-key-provider-with-memo.adapter.js.map +1 -0
  62. package/dist/environment-loader-process-safe.adapter.d.ts +3 -1
  63. package/dist/environment-loader-process-safe.adapter.d.ts.map +1 -1
  64. package/dist/environment-loader-process-safe.adapter.js +4 -2
  65. package/dist/environment-loader-process-safe.adapter.js.map +1 -1
  66. package/dist/event-store-with-logger.adapter.d.ts +3 -0
  67. package/dist/event-store-with-logger.adapter.d.ts.map +1 -1
  68. package/dist/event-store-with-logger.adapter.js +88 -27
  69. package/dist/event-store-with-logger.adapter.js.map +1 -1
  70. package/dist/event-stream.vo.d.ts.map +1 -1
  71. package/dist/event-stream.vo.js +3 -1
  72. package/dist/event-stream.vo.js.map +1 -1
  73. package/dist/file-draft-tar-gz.service.d.ts +8 -0
  74. package/dist/file-draft-tar-gz.service.d.ts.map +1 -0
  75. package/dist/file-draft-tar-gz.service.js +19 -0
  76. package/dist/file-draft-tar-gz.service.js.map +1 -0
  77. package/dist/file-reader-json-with-cache.adapter.d.ts +1 -0
  78. package/dist/file-reader-json-with-cache.adapter.d.ts.map +1 -1
  79. package/dist/file-reader-json-with-cache.adapter.js +3 -1
  80. package/dist/file-reader-json-with-cache.adapter.js.map +1 -1
  81. package/dist/file-reader-text-with-cache.adapter.d.ts +1 -0
  82. package/dist/file-reader-text-with-cache.adapter.d.ts.map +1 -1
  83. package/dist/file-reader-text-with-cache.adapter.js +3 -1
  84. package/dist/file-reader-text-with-cache.adapter.js.map +1 -1
  85. package/dist/healthcheck-hono.handler.js +2 -2
  86. package/dist/healthcheck-hono.handler.js.map +1 -1
  87. package/dist/healthcheck.handler.d.ts +1 -0
  88. package/dist/healthcheck.handler.d.ts.map +1 -1
  89. package/dist/healthcheck.handler.js +1 -0
  90. package/dist/healthcheck.handler.js.map +1 -1
  91. package/dist/http-logger-hono.middleware.d.ts.map +1 -1
  92. package/dist/http-logger-hono.middleware.js +0 -3
  93. package/dist/http-logger-hono.middleware.js.map +1 -1
  94. package/dist/http-logger.middleware.d.ts +0 -1
  95. package/dist/http-logger.middleware.d.ts.map +1 -1
  96. package/dist/http-logger.middleware.js +0 -1
  97. package/dist/http-logger.middleware.js.map +1 -1
  98. package/dist/idempotency-store-cache.adapter.d.ts +13 -0
  99. package/dist/idempotency-store-cache.adapter.d.ts.map +1 -0
  100. package/dist/idempotency-store-cache.adapter.js +14 -0
  101. package/dist/idempotency-store-cache.adapter.js.map +1 -0
  102. package/dist/idempotency-store-noop.adapter.d.ts +6 -0
  103. package/dist/idempotency-store-noop.adapter.d.ts.map +1 -0
  104. package/dist/idempotency-store-noop.adapter.js +6 -0
  105. package/dist/idempotency-store-noop.adapter.js.map +1 -0
  106. package/dist/idempotency-store-with-logger.adapter.d.ts +17 -0
  107. package/dist/idempotency-store-with-logger.adapter.d.ts.map +1 -0
  108. package/dist/idempotency-store-with-logger.adapter.js +48 -0
  109. package/dist/idempotency-store-with-logger.adapter.js.map +1 -0
  110. package/dist/idempotency-store.port.d.ts +5 -0
  111. package/dist/idempotency-store.port.d.ts.map +1 -0
  112. package/dist/idempotency-store.port.js +2 -0
  113. package/dist/idempotency-store.port.js.map +1 -0
  114. package/dist/image-generator-web-view.adapter.js +8 -72
  115. package/dist/image-generator-web-view.adapter.js.map +1 -1
  116. package/dist/index.d.ts +19 -6
  117. package/dist/index.d.ts.map +1 -1
  118. package/dist/index.js +19 -6
  119. package/dist/index.js.map +1 -1
  120. package/dist/job-queue-with-logger.adapter.d.ts +2 -0
  121. package/dist/job-queue-with-logger.adapter.d.ts.map +1 -1
  122. package/dist/job-queue-with-logger.adapter.js +133 -36
  123. package/dist/job-queue-with-logger.adapter.js.map +1 -1
  124. package/dist/logger.port.d.ts +0 -1
  125. package/dist/logger.port.d.ts.map +1 -1
  126. package/dist/mailer-content-html.vo.js +1 -1
  127. package/dist/mailer-content-html.vo.js.map +1 -1
  128. package/dist/message-bus-with-logger.adapter.d.ts +2 -0
  129. package/dist/message-bus-with-logger.adapter.d.ts.map +1 -1
  130. package/dist/message-bus-with-logger.adapter.js +28 -8
  131. package/dist/message-bus-with-logger.adapter.js.map +1 -1
  132. package/dist/modules/preferences/invariants/user-language-has-changed.d.ts +0 -1
  133. package/dist/modules/preferences/invariants/user-language-has-changed.d.ts.map +1 -1
  134. package/dist/modules/preferences/invariants/user-language-has-changed.js +0 -4
  135. package/dist/modules/preferences/invariants/user-language-has-changed.js.map +1 -1
  136. package/dist/modules/system/invariants/feature-flag-enabled.d.ts +0 -1
  137. package/dist/modules/system/invariants/feature-flag-enabled.d.ts.map +1 -1
  138. package/dist/modules/system/invariants/feature-flag-enabled.js +0 -4
  139. package/dist/modules/system/invariants/feature-flag-enabled.js.map +1 -1
  140. package/dist/prerequisite-verifier-sqlite.adapter.js +1 -1
  141. package/dist/prerequisite-verifier-sqlite.adapter.js.map +1 -1
  142. package/dist/prerequisite-verifier-with-cache.adapter.d.ts +2 -0
  143. package/dist/prerequisite-verifier-with-cache.adapter.d.ts.map +1 -1
  144. package/dist/prerequisite-verifier-with-cache.adapter.js +8 -5
  145. package/dist/prerequisite-verifier-with-cache.adapter.js.map +1 -1
  146. package/dist/rate-limiter.service.d.ts +22 -0
  147. package/dist/rate-limiter.service.d.ts.map +1 -0
  148. package/dist/rate-limiter.service.js +31 -0
  149. package/dist/rate-limiter.service.js.map +1 -0
  150. package/dist/reactive-config-with-cache.adapter.d.ts +3 -1
  151. package/dist/reactive-config-with-cache.adapter.d.ts.map +1 -1
  152. package/dist/reactive-config-with-cache.adapter.js +3 -1
  153. package/dist/reactive-config-with-cache.adapter.js.map +1 -1
  154. package/dist/request-context-hono.adapter.d.ts.map +1 -1
  155. package/dist/request-context-hono.adapter.js +4 -1
  156. package/dist/request-context-hono.adapter.js.map +1 -1
  157. package/dist/secure-key-generator-crypto.adapter.js +1 -1
  158. package/dist/secure-key-generator-crypto.adapter.js.map +1 -1
  159. package/dist/security-rule-violation-threshold.strategy.d.ts.map +1 -1
  160. package/dist/security-rule-violation-threshold.strategy.js +5 -3
  161. package/dist/security-rule-violation-threshold.strategy.js.map +1 -1
  162. package/dist/shield-rate-limit-hono.strategy.d.ts +2 -2
  163. package/dist/shield-rate-limit-hono.strategy.d.ts.map +1 -1
  164. package/dist/shield-rate-limit.strategy.d.ts +2 -2
  165. package/dist/shield-rate-limit.strategy.d.ts.map +1 -1
  166. package/dist/shield-rate-limit.strategy.js +8 -2
  167. package/dist/shield-rate-limit.strategy.js.map +1 -1
  168. package/dist/shield-webhook-hono.strategy.d.ts +2 -2
  169. package/dist/shield-webhook-hono.strategy.d.ts.map +1 -1
  170. package/dist/shield-webhook-hono.strategy.js +7 -3
  171. package/dist/shield-webhook-hono.strategy.js.map +1 -1
  172. package/dist/shield-webhook.strategy.d.ts +23 -3
  173. package/dist/shield-webhook.strategy.d.ts.map +1 -1
  174. package/dist/shield-webhook.strategy.js +18 -4
  175. package/dist/shield-webhook.strategy.js.map +1 -1
  176. package/dist/sitemap-entries-provider-with-cache.adapter.d.ts +2 -0
  177. package/dist/sitemap-entries-provider-with-cache.adapter.d.ts.map +1 -1
  178. package/dist/sitemap-entries-provider-with-cache.adapter.js +8 -5
  179. package/dist/sitemap-entries-provider-with-cache.adapter.js.map +1 -1
  180. package/dist/sitemap-entry.vo.d.ts +11 -10
  181. package/dist/sitemap-entry.vo.d.ts.map +1 -1
  182. package/dist/sitemap-entry.vo.js +19 -0
  183. package/dist/sitemap-entry.vo.js.map +1 -1
  184. package/dist/smtp-port.vo.d.ts.map +1 -1
  185. package/dist/smtp-port.vo.js +1 -0
  186. package/dist/smtp-port.vo.js.map +1 -1
  187. package/dist/sse-registry-with-logger.adapter.d.ts +2 -0
  188. package/dist/sse-registry-with-logger.adapter.d.ts.map +1 -1
  189. package/dist/sse-registry-with-logger.adapter.js +80 -22
  190. package/dist/sse-registry-with-logger.adapter.js.map +1 -1
  191. package/dist/translations-provider-with-cache.adapter.d.ts +21 -0
  192. package/dist/translations-provider-with-cache.adapter.d.ts.map +1 -0
  193. package/dist/translations-provider-with-cache.adapter.js +22 -0
  194. package/dist/translations-provider-with-cache.adapter.js.map +1 -0
  195. package/dist/uuid.vo.js +1 -0
  196. package/dist/uuid.vo.js.map +1 -1
  197. package/dist/webhook-id-extractor-header.strategy.d.ts +9 -0
  198. package/dist/webhook-id-extractor-header.strategy.d.ts.map +1 -0
  199. package/dist/webhook-id-extractor-header.strategy.js +13 -0
  200. package/dist/webhook-id-extractor-header.strategy.js.map +1 -0
  201. package/dist/webhook-id-extractor-json-field.strategy.d.ts +9 -0
  202. package/dist/webhook-id-extractor-json-field.strategy.d.ts.map +1 -0
  203. package/dist/webhook-id-extractor-json-field.strategy.js +14 -0
  204. package/dist/webhook-id-extractor-json-field.strategy.js.map +1 -0
  205. package/dist/webhook-id-extractor.strategy.d.ts +6 -0
  206. package/dist/webhook-id-extractor.strategy.d.ts.map +1 -0
  207. package/dist/webhook-id-extractor.strategy.js +2 -0
  208. package/dist/webhook-id-extractor.strategy.js.map +1 -0
  209. package/dist/webhook-id.vo.d.ts +9 -0
  210. package/dist/webhook-id.vo.d.ts.map +1 -0
  211. package/dist/webhook-id.vo.js +10 -0
  212. package/dist/webhook-id.vo.js.map +1 -0
  213. package/dist/{webhook-signature-extractor-header-exact.strategy.d.ts → webhook-signature-extractor-header.strategy.d.ts} +2 -2
  214. package/dist/webhook-signature-extractor-header.strategy.d.ts.map +1 -0
  215. package/dist/{webhook-signature-extractor-header-exact.strategy.js → webhook-signature-extractor-header.strategy.js} +2 -2
  216. package/dist/webhook-signature-extractor-header.strategy.js.map +1 -0
  217. package/package.json +12 -18
  218. package/readme.md +19 -6
  219. package/src/alert-channel-composite.adapter.ts +1 -0
  220. package/src/api-version.middleware.ts +6 -2
  221. package/src/cache-codec-identity.strategy.ts +12 -0
  222. package/src/cache-codec-sitemap-entries.strategy.ts +17 -0
  223. package/src/cache-codec.strategy.ts +6 -0
  224. package/src/cache-repository-node-cache.adapter.ts +9 -5
  225. package/src/cache-repository-noop.adapter.ts +3 -2
  226. package/src/cache-repository-redis.adapter.ts +10 -7
  227. package/src/cache-repository.port.ts +3 -2
  228. package/src/cache-resolver-noop.strategy.ts +11 -0
  229. package/src/cache-resolver-read-through.strategy.ts +27 -0
  230. package/src/cache-resolver.strategy.ts +2 -11
  231. package/src/cache-value.vo.ts +9 -0
  232. package/src/correlation-id.vo.ts +1 -0
  233. package/src/cron-scheduler-with-logger.adapter.ts +35 -9
  234. package/src/cron-task-handler-with-logger.strategy.ts +1 -1
  235. package/src/crypto-key-provider-with-memo.adapter.ts +21 -0
  236. package/src/environment-loader-process-safe.adapter.ts +12 -4
  237. package/src/event-store-with-logger.adapter.ts +97 -27
  238. package/src/event-stream.vo.ts +1 -0
  239. package/src/file-draft-tar-gz.service.ts +23 -0
  240. package/src/file-reader-json-with-cache.adapter.ts +7 -2
  241. package/src/file-reader-text-with-cache.adapter.ts +8 -1
  242. package/src/healthcheck-hono.handler.ts +2 -2
  243. package/src/healthcheck.handler.ts +2 -0
  244. package/src/http-logger-hono.middleware.ts +0 -3
  245. package/src/http-logger.middleware.ts +0 -2
  246. package/src/idempotency-store-cache.adapter.ts +19 -0
  247. package/src/idempotency-store-noop.adapter.ts +8 -0
  248. package/src/idempotency-store-with-logger.adapter.ts +59 -0
  249. package/src/idempotency-store.port.ts +5 -0
  250. package/src/index.ts +19 -6
  251. package/src/job-queue-with-logger.adapter.ts +156 -43
  252. package/src/logger.port.ts +0 -1
  253. package/src/message-bus-with-logger.adapter.ts +37 -10
  254. package/src/modules/preferences/invariants/user-language-has-changed.ts +1 -6
  255. package/src/modules/system/invariants/feature-flag-enabled.ts +1 -6
  256. package/src/prerequisite-verifier-sqlite.adapter.ts +1 -1
  257. package/src/prerequisite-verifier-with-cache.adapter.ts +13 -7
  258. package/src/rate-limiter.service.ts +45 -0
  259. package/src/reactive-config-with-cache.adapter.ts +8 -2
  260. package/src/request-context-hono.adapter.ts +5 -1
  261. package/src/security-rule-violation-threshold.strategy.ts +5 -6
  262. package/src/shield-rate-limit-hono.strategy.ts +2 -2
  263. package/src/shield-rate-limit.strategy.ts +14 -7
  264. package/src/shield-webhook-hono.strategy.ts +11 -3
  265. package/src/shield-webhook.strategy.ts +41 -6
  266. package/src/sitemap-entries-provider-with-cache.adapter.ts +13 -7
  267. package/src/sitemap-entry.vo.ts +23 -11
  268. package/src/smtp-port.vo.ts +1 -0
  269. package/src/sse-registry-with-logger.adapter.ts +94 -25
  270. package/src/translations-provider-with-cache.adapter.ts +38 -0
  271. package/src/uuid.vo.ts +1 -1
  272. package/src/webhook-id-extractor-header.strategy.ts +14 -0
  273. package/src/webhook-id-extractor-json-field.strategy.ts +16 -0
  274. package/src/webhook-id-extractor.strategy.ts +6 -0
  275. package/src/webhook-id.vo.ts +17 -0
  276. package/src/{webhook-signature-extractor-header-exact.strategy.ts → webhook-signature-extractor-header.strategy.ts} +1 -1
  277. package/dist/cache-resolver-simple.strategy.d.ts +0 -18
  278. package/dist/cache-resolver-simple.strategy.d.ts.map +0 -1
  279. package/dist/cache-resolver-simple.strategy.js +0 -23
  280. package/dist/cache-resolver-simple.strategy.js.map +0 -1
  281. package/dist/cache-response-hono.middleware.d.ts +0 -9
  282. package/dist/cache-response-hono.middleware.d.ts.map +0 -1
  283. package/dist/cache-response-hono.middleware.js +0 -34
  284. package/dist/cache-response-hono.middleware.js.map +0 -1
  285. package/dist/cache-response.middleware.d.ts +0 -28
  286. package/dist/cache-response.middleware.d.ts.map +0 -1
  287. package/dist/cache-response.middleware.js +0 -20
  288. package/dist/cache-response.middleware.js.map +0 -1
  289. package/dist/crypto-key-provider-with-cache.adapter.d.ts +0 -19
  290. package/dist/crypto-key-provider-with-cache.adapter.d.ts.map +0 -1
  291. package/dist/crypto-key-provider-with-cache.adapter.js +0 -19
  292. package/dist/crypto-key-provider-with-cache.adapter.js.map +0 -1
  293. package/dist/file-draft-zip.service.d.ts +0 -14
  294. package/dist/file-draft-zip.service.d.ts.map +0 -1
  295. package/dist/file-draft-zip.service.js +0 -41
  296. package/dist/file-draft-zip.service.js.map +0 -1
  297. package/dist/webhook-signature-extractor-header-exact.strategy.d.ts.map +0 -1
  298. package/dist/webhook-signature-extractor-header-exact.strategy.js.map +0 -1
  299. package/src/cache-resolver-simple.strategy.ts +0 -33
  300. package/src/cache-response-hono.middleware.ts +0 -53
  301. package/src/cache-response.middleware.ts +0 -47
  302. package/src/crypto-key-provider-with-cache.adapter.ts +0 -30
  303. package/src/file-draft-zip.service.ts +0 -56
@@ -1 +1 @@
1
- {"version":3,"file":"request-context-hono.adapter.js","sourceRoot":"","sources":["../src/request-context-hono.adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request-context-hono.adapter.js","sourceRoot":"","sources":["../src/request-context-hono.adapter.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  export class SecureKeyGeneratorCryptoAdapter {
2
2
  // crypto.getRandomValues is spec-limited to a 65536-byte view
3
- static MAX_BYTES = 65536;
3
+ static MAX_BYTES = 65_536;
4
4
  generate(bytes) {
5
5
  const buffer = new Uint8Array(bytes);
6
6
  // Stryker disable next-line EqualityOperator
@@ -1 +1 @@
1
- {"version":3,"file":"secure-key-generator-crypto.adapter.js","sourceRoot":"","sources":["../src/secure-key-generator-crypto.adapter.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,+BAA+B;IAC1C,8DAA8D;IAC9D,MAAM,CAAU,SAAS,GAAG,KAAM,CAAC;IAEnC,QAAQ,CAAC,KAAgC;QACvC,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;QAErC,6CAA6C;QAC7C,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE,MAAM,IAAI,+BAA+B,CAAC,SAAS,EAAE,CAAC;YACzF,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,+BAA+B,CAAC,SAAS,CAAC,CAAC,CAAC;QACtG,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
1
+ {"version":3,"file":"secure-key-generator-crypto.adapter.js","sourceRoot":"","sources":["../src/secure-key-generator-crypto.adapter.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,+BAA+B;IAC1C,8DAA8D;IAC9D,MAAM,CAAU,SAAS,GAAG,MAAM,CAAC;IAEnC,QAAQ,CAAC,KAAgC;QACvC,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;QAErC,6CAA6C;QAC7C,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE,MAAM,IAAI,+BAA+B,CAAC,SAAS,EAAE,CAAC;YACzF,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,+BAA+B,CAAC,SAAS,CAAC,CAAC,CAAC;QACtG,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"security-rule-violation-threshold.strategy.d.ts","sourceRoot":"","sources":["../src/security-rule-violation-threshold.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAoB,KAAK,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAKtF,KAAK,YAAY,GAAG;IAAE,eAAe,EAAE,mBAAmB,CAAC;IAAC,WAAW,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAC/F,KAAK,MAAM,GAAG;IAAE,SAAS,EAAE,KAAK,CAAC,mBAAmB,CAAA;CAAE,CAAC;AAEvD,qBAAa,sCAAuC,YAAW,oBAAoB;IAE/E,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHvB,YACmB,IAAI,EAAE,oBAAoB,EAC1B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,YAAY,EACjC;IAGE,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAwB1D;IAED,IAAI,IAAI,IAAI,oBAAoB,CAE/B;CACF"}
1
+ {"version":3,"file":"security-rule-violation-threshold.strategy.d.ts","sourceRoot":"","sources":["../src/security-rule-violation-threshold.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAoB,KAAK,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAKtF,KAAK,YAAY,GAAG;IAAE,eAAe,EAAE,mBAAmB,CAAC;IAAC,WAAW,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAC/F,KAAK,MAAM,GAAG;IAAE,SAAS,EAAE,KAAK,CAAC,mBAAmB,CAAA;CAAE,CAAC;AAEvD,qBAAa,sCAAuC,YAAW,oBAAoB;IAE/E,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHvB,YACmB,IAAI,EAAE,oBAAoB,EAC1B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,YAAY,EACjC;IAGE,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAuB1D;IAED,IAAI,IAAI,IAAI,oBAAoB,CAE/B;CACF"}
@@ -21,9 +21,11 @@ export class SecurityRuleViolationThresholdStrategy {
21
21
  if (!violated)
22
22
  return false;
23
23
  try {
24
- const count = (await this.deps.CacheRepository.get(subject.hex)) ?? 0;
25
- await this.deps.CacheRepository.set(subject.hex, tools.Int.nonNegative(count + 1));
26
- if (count + 1 >= this.config.threshold)
24
+ const cached = await this.deps.CacheRepository.get(subject.hex);
25
+ const count = typeof cached === "number" ? cached : 0;
26
+ const next = tools.Int.nonNegative(count + 1);
27
+ await this.deps.CacheRepository.set(subject.hex, next);
28
+ if (next >= this.config.threshold)
27
29
  return true;
28
30
  return false;
29
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"security-rule-violation-threshold.strategy.js","sourceRoot":"","sources":["../src/security-rule-violation-threshold.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAK7B,OAAO,EAAE,gBAAgB,EAA6B,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAKzE,MAAM,OAAO,sCAAsC;IAE9B,IAAI;IACJ,MAAM;IACN,IAAI;IAHvB,YACmB,IAA0B,EAC1B,MAAc,EACd,IAAkB;oBAFlB,IAAI;sBACJ,MAAM;oBACN,IAAI;IACpB,CAAC;IAEJ,4FAA4F;IAC5F,KAAK,CAAC,UAAU,CAAC,OAAuB;QACtC,MAAM,QAAQ,GAAG,IAAI,sBAAsB,CACzC,CAAC,IAAI,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,wBAAwB,EAAE,CAAC,EAC5E,IAAI,CAAC,IAAI,CACV,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEhD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAErD,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAE5B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAA+B,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;YAEpG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CACjC,OAAO,CAAC,GAAG,EACX,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC,CACjC,CAAC;YAEF,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS;gBAAE,OAAO,IAAI,CAAC;YACpD,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,IAAI,IAAI;QACN,OAAO,CAAC,CAAC,KAAK,CAAC,gBAAgB,EAAE,uBAAuB,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACrG,CAAC;CACF"}
1
+ {"version":3,"file":"security-rule-violation-threshold.strategy.js","sourceRoot":"","sources":["../src/security-rule-violation-threshold.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAK7B,OAAO,EAAE,gBAAgB,EAA6B,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAKzE,MAAM,OAAO,sCAAsC;IAE9B,IAAI;IACJ,MAAM;IACN,IAAI;IAHvB,YACmB,IAA0B,EAC1B,MAAc,EACd,IAAkB;oBAFlB,IAAI;sBACJ,MAAM;oBACN,IAAI;IACpB,CAAC;IAEJ,4FAA4F;IAC5F,KAAK,CAAC,UAAU,CAAC,OAAuB;QACtC,MAAM,QAAQ,GAAG,IAAI,sBAAsB,CACzC,CAAC,IAAI,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,wBAAwB,EAAE,CAAC,EAC5E,IAAI,CAAC,IAAI,CACV,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEhD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAErD,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAE5B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAChE,MAAM,KAAK,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACtD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAE9C,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAEvD,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS;gBAAE,OAAO,IAAI,CAAC;YAC/C,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,IAAI,IAAI;QACN,OAAO,CAAC,CAAC,KAAK,CAAC,gBAAgB,EAAE,uBAAuB,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACrG,CAAC;CACF"}
@@ -1,11 +1,11 @@
1
1
  import type { MiddlewareHandler } from "hono";
2
- import type { CacheResolverStrategy } from "./cache-resolver.strategy";
2
+ import type { CacheRepositoryPort } from "./cache-repository.port";
3
3
  import type { ClockPort } from "./clock.port";
4
4
  import type { MiddlewareHonoPort } from "./middleware-hono.port";
5
5
  import { type ShieldRateLimitConfig } from "./shield-rate-limit.strategy";
6
6
  type Dependencies = {
7
7
  Clock: ClockPort;
8
- CacheResolver: CacheResolverStrategy;
8
+ CacheRepository: CacheRepositoryPort;
9
9
  };
10
10
  export declare class ShieldRateLimitHonoStrategy implements MiddlewareHonoPort {
11
11
  private readonly strategy;
@@ -1 +1 @@
1
- {"version":3,"file":"shield-rate-limit-hono.strategy.d.ts","sourceRoot":"","sources":["../src/shield-rate-limit-hono.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAE9C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EACL,KAAK,qBAAqB,EAG3B,MAAM,8BAA8B,CAAC;AAEtC,KAAK,YAAY,GAAG;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,aAAa,EAAE,qBAAqB,CAAA;CAAE,CAAC;AAE/E,qBAAa,2BAA4B,YAAW,kBAAkB;IACpE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;IAEnD,YAAY,MAAM,EAAE,qBAAqB,EAAE,IAAI,EAAE,YAAY,EAE5D;IAED,MAAM,IAAI,iBAAiB,CAW1B;CACF"}
1
+ {"version":3,"file":"shield-rate-limit-hono.strategy.d.ts","sourceRoot":"","sources":["../src/shield-rate-limit-hono.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAE9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EACL,KAAK,qBAAqB,EAG3B,MAAM,8BAA8B,CAAC;AAEtC,KAAK,YAAY,GAAG;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,eAAe,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAE/E,qBAAa,2BAA4B,YAAW,kBAAkB;IACpE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;IAEnD,YAAY,MAAM,EAAE,qBAAqB,EAAE,IAAI,EAAE,YAAY,EAE5D;IAED,MAAM,IAAI,iBAAiB,CAW1B;CACF"}
@@ -1,5 +1,5 @@
1
1
  import * as tools from "@bgord/tools";
2
- import type { CacheResolverStrategy } from "./cache-resolver.strategy";
2
+ import type { CacheRepositoryPort } from "./cache-repository.port";
3
3
  import type { ClockPort } from "./clock.port";
4
4
  import type { RequestContext } from "./request-context.port";
5
5
  import type { SubjectRequestResolver } from "./subject-request-resolver.vo";
@@ -15,7 +15,7 @@ type ShieldRateLimitResult = {
15
15
  };
16
16
  type Dependencies = {
17
17
  Clock: ClockPort;
18
- CacheResolver: CacheResolverStrategy;
18
+ CacheRepository: CacheRepositoryPort;
19
19
  };
20
20
  export declare const ShieldRateLimitStrategyError: {
21
21
  Rejected: string;
@@ -1 +1 @@
1
- {"version":3,"file":"shield-rate-limit.strategy.d.ts","sourceRoot":"","sources":["../src/shield-rate-limit.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAE5E,MAAM,MAAM,qBAAqB,GAAG;IAAE,QAAQ,EAAE,sBAAsB,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAA;CAAE,CAAC;AACnG,KAAK,qBAAqB,GAAG;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAA;CAAE,CAAC;AAEhG,KAAK,YAAY,GAAG;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,aAAa,EAAE,qBAAqB,CAAA;CAAE,CAAC;AAE/E,eAAO,MAAM,4BAA4B;IAAK,QAAQ;CAAgC,CAAC;AAEvF,qBAAa,uBAAuB;IAIhC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAJvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkC;IAE3D,YACmB,MAAM,EAAE,qBAAqB,EAC7B,IAAI,EAAE,YAAY,EACjC;IAEE,QAAQ,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAgBtE;CACF"}
1
+ {"version":3,"file":"shield-rate-limit.strategy.d.ts","sourceRoot":"","sources":["../src/shield-rate-limit.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAE5E,MAAM,MAAM,qBAAqB,GAAG;IAAE,QAAQ,EAAE,sBAAsB,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAA;CAAE,CAAC;AACnG,KAAK,qBAAqB,GAAG;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAA;CAAE,CAAC;AAEhG,KAAK,YAAY,GAAG;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,eAAe,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAE/E,eAAO,MAAM,4BAA4B;IAAK,QAAQ;CAAgC,CAAC;AAEvF,qBAAa,uBAAuB;IAIhC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAJvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkC;IAE3D,YACmB,MAAM,EAAE,qBAAqB,EAC7B,IAAI,EAAE,YAAY,EACjC;IAEE,QAAQ,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAsBtE;CACF"}
@@ -1,4 +1,5 @@
1
1
  import * as tools from "@bgord/tools";
2
+ import { RateLimiter } from "./rate-limiter.service";
2
3
  export const ShieldRateLimitStrategyError = { Rejected: "shield.rate.limit.rejected" };
3
4
  export class ShieldRateLimitStrategy {
4
5
  config;
@@ -10,10 +11,15 @@ export class ShieldRateLimitStrategy {
10
11
  }
11
12
  async evaluate(context) {
12
13
  const subject = await this.config.resolver.resolve(context);
13
- const limiter = await this.deps.CacheResolver.resolve(subject.hex, async () => new tools.RateLimiter(this.config.interval));
14
+ const state = await this.deps.CacheRepository.get(subject.hex);
15
+ const limiter = state === null
16
+ ? new RateLimiter(this.config.interval)
17
+ : RateLimiter.fromState(this.config.interval, state);
14
18
  const decision = limiter.verify(this.deps.Clock.now());
15
- if (decision.allowed)
19
+ if (decision.allowed) {
20
+ await this.deps.CacheRepository.set(subject.hex, limiter.toJSON());
16
21
  return { allowed: true };
22
+ }
17
23
  return {
18
24
  allowed: false,
19
25
  retryAfter: tools.Duration.Seconds(this.rounding.round(decision.remaining.seconds)),
@@ -1 +1 @@
1
- {"version":3,"file":"shield-rate-limit.strategy.js","sourceRoot":"","sources":["../src/shield-rate-limit.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAWtC,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,QAAQ,EAAE,4BAA4B,EAAE,CAAC;AAEvF,MAAM,OAAO,uBAAuB;IAIf,MAAM;IACN,IAAI;IAJN,QAAQ,GAAG,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;IAE3D,YACmB,MAA6B,EAC7B,IAAkB;sBADlB,MAAM;oBACN,IAAI;IACpB,CAAC;IAEJ,KAAK,CAAC,QAAQ,CAAC,OAAuB;QACpC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE5D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CACnD,OAAO,CAAC,GAAG,EACX,KAAK,IAAI,EAAE,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CACxD,CAAC;QAEF,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAEvD,IAAI,QAAQ,CAAC,OAAO;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAE/C,OAAO;YACL,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;SACpF,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"shield-rate-limit.strategy.js","sourceRoot":"","sources":["../src/shield-rate-limit.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,EAAE,WAAW,EAA6B,MAAM,wBAAwB,CAAC;AAShF,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,QAAQ,EAAE,4BAA4B,EAAE,CAAC;AAEvF,MAAM,OAAO,uBAAuB;IAIf,MAAM;IACN,IAAI;IAJN,QAAQ,GAAG,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;IAE3D,YACmB,MAA6B,EAC7B,IAAkB;sBADlB,MAAM;oBACN,IAAI;IACpB,CAAC;IAEJ,KAAK,CAAC,QAAQ,CAAC,OAAuB;QACpC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE5D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAE/D,MAAM,OAAO,GACX,KAAK,KAAK,IAAI;YACZ,CAAC,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;YACvC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,KAA6B,CAAC,CAAC;QAEjF,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAEvD,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAEnE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;QAED,OAAO;YACL,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;SACpF,CAAC;IACJ,CAAC;CACF"}
@@ -1,9 +1,9 @@
1
1
  import type { MiddlewareHandler } from "hono";
2
2
  import type { MiddlewareHonoPort } from "./middleware-hono.port";
3
- import { type ShieldWebhookStrategyConfig } from "./shield-webhook.strategy";
3
+ import { type ShieldWebhookStrategyConfig, type ShieldWebhookStrategyDependencies } from "./shield-webhook.strategy";
4
4
  export declare class ShieldWebhookHonoStrategy implements MiddlewareHonoPort {
5
5
  private readonly strategy;
6
- constructor(config: ShieldWebhookStrategyConfig);
6
+ constructor(config: ShieldWebhookStrategyConfig, deps: ShieldWebhookStrategyDependencies);
7
7
  handle(): MiddlewareHandler;
8
8
  }
9
9
  //# sourceMappingURL=shield-webhook-hono.strategy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shield-webhook-hono.strategy.d.ts","sourceRoot":"","sources":["../src/shield-webhook-hono.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAE9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EAEL,KAAK,2BAA2B,EAEjC,MAAM,2BAA2B,CAAC;AAEnC,qBAAa,yBAA0B,YAAW,kBAAkB;IAClE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwB;IAEjD,YAAY,MAAM,EAAE,2BAA2B,EAE9C;IAED,MAAM,IAAI,iBAAiB,CAO1B;CACF"}
1
+ {"version":3,"file":"shield-webhook-hono.strategy.d.ts","sourceRoot":"","sources":["../src/shield-webhook-hono.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAE9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EAEL,KAAK,2BAA2B,EAChC,KAAK,iCAAiC,EAEvC,MAAM,2BAA2B,CAAC;AAEnC,qBAAa,yBAA0B,YAAW,kBAAkB;IAClE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwB;IAEjD,YAAY,MAAM,EAAE,2BAA2B,EAAE,IAAI,EAAE,iCAAiC,EAEvF;IAED,MAAM,IAAI,iBAAiB,CAc1B;CACF"}
@@ -3,14 +3,18 @@ import { RequestContextHonoAdapter } from "./request-context-hono.adapter";
3
3
  import { ShieldWebhookStrategy, ShieldWebhookStrategyError, } from "./shield-webhook.strategy";
4
4
  export class ShieldWebhookHonoStrategy {
5
5
  strategy;
6
- constructor(config) {
7
- this.strategy = new ShieldWebhookStrategy(config);
6
+ constructor(config, deps) {
7
+ this.strategy = new ShieldWebhookStrategy(config, deps);
8
8
  }
9
9
  handle() {
10
10
  return async (c, next) => {
11
11
  const context = new RequestContextHonoAdapter(c);
12
- if (await this.strategy.evaluate(context))
12
+ const result = await this.strategy.evaluate(context);
13
+ if (result.accepted)
13
14
  return next();
15
+ if (result.reason === "duplicate") {
16
+ return c.json({ message: ShieldWebhookStrategyError.Duplicate }, 200);
17
+ }
14
18
  throw new HTTPException(401, { message: ShieldWebhookStrategyError.Rejected });
15
19
  };
16
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"shield-webhook-hono.strategy.js","sourceRoot":"","sources":["../src/shield-webhook-hono.strategy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EACL,qBAAqB,EAErB,0BAA0B,GAC3B,MAAM,2BAA2B,CAAC;AAEnC,MAAM,OAAO,yBAAyB;IACnB,QAAQ,CAAwB;IAEjD,YAAY,MAAmC;QAC7C,IAAI,CAAC,QAAQ,GAAG,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC;IAED,MAAM;QACJ,OAAO,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;YACvB,MAAM,OAAO,GAAG,IAAI,yBAAyB,CAAC,CAAC,CAAC,CAAC;YAEjD,IAAI,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAAE,OAAO,IAAI,EAAE,CAAC;YACzD,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,0BAA0B,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjF,CAAC,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"shield-webhook-hono.strategy.js","sourceRoot":"","sources":["../src/shield-webhook-hono.strategy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EACL,qBAAqB,EAGrB,0BAA0B,GAC3B,MAAM,2BAA2B,CAAC;AAEnC,MAAM,OAAO,yBAAyB;IACnB,QAAQ,CAAwB;IAEjD,YAAY,MAAmC,EAAE,IAAuC;QACtF,IAAI,CAAC,QAAQ,GAAG,IAAI,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM;QACJ,OAAO,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;YACvB,MAAM,OAAO,GAAG,IAAI,yBAAyB,CAAC,CAAC,CAAC,CAAC;YAEjD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAErD,IAAI,MAAM,CAAC,QAAQ;gBAAE,OAAO,IAAI,EAAE,CAAC;YAEnC,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBAClC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,0BAA0B,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;YACxE,CAAC;YAED,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,0BAA0B,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjF,CAAC,CAAC;IACJ,CAAC;CACF"}
@@ -1,18 +1,38 @@
1
- import type { HasRequestHeader, HasRequestText } from "./request-context.port";
1
+ import type { HashContentStrategy } from "./hash-content.strategy";
2
+ import type { IdempotencyStorePort } from "./idempotency-store.port";
3
+ import type { HasRequestHeader, HasRequestJson, HasRequestText } from "./request-context.port";
2
4
  import type { WebhookBodyBuilderStrategy } from "./webhook-body-builder.strategy";
5
+ import type { WebhookIdExtractorStrategy } from "./webhook-id-extractor.strategy";
3
6
  import type { WebhookSignatureExtractorStrategy } from "./webhook-signature-extractor.strategy";
4
7
  import type { WebhookVerifierStrategy } from "./webhook-verifier.strategy";
5
8
  export declare const ShieldWebhookStrategyError: {
6
9
  Rejected: string;
10
+ Duplicate: string;
11
+ };
12
+ export type ShieldWebhookStrategyResult = {
13
+ accepted: true;
14
+ } | {
15
+ accepted: false;
16
+ reason: "rejected";
17
+ } | {
18
+ accepted: false;
19
+ reason: "duplicate";
7
20
  };
8
21
  export type ShieldWebhookStrategyConfig = {
22
+ namespace: string;
9
23
  WebhookBodyBuilder: WebhookBodyBuilderStrategy;
24
+ WebhookIdExtractor: WebhookIdExtractorStrategy;
10
25
  WebhookSignatureExtractor: WebhookSignatureExtractorStrategy;
11
26
  WebhookVerifier: WebhookVerifierStrategy;
12
27
  };
28
+ export type ShieldWebhookStrategyDependencies = {
29
+ HashContent: HashContentStrategy;
30
+ IdempotencyStore: IdempotencyStorePort;
31
+ };
13
32
  export declare class ShieldWebhookStrategy {
14
33
  private readonly config;
15
- constructor(config: ShieldWebhookStrategyConfig);
16
- evaluate(context: HasRequestHeader & HasRequestText): Promise<boolean>;
34
+ private readonly deps;
35
+ constructor(config: ShieldWebhookStrategyConfig, deps: ShieldWebhookStrategyDependencies);
36
+ evaluate(context: HasRequestHeader & HasRequestJson & HasRequestText): Promise<ShieldWebhookStrategyResult>;
17
37
  }
18
38
  //# sourceMappingURL=shield-webhook.strategy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shield-webhook.strategy.d.ts","sourceRoot":"","sources":["../src/shield-webhook.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAClF,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAC;AAChG,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAE3E,eAAO,MAAM,0BAA0B;IAAK,QAAQ;CAA6B,CAAC;AAElF,MAAM,MAAM,2BAA2B,GAAG;IACxC,kBAAkB,EAAE,0BAA0B,CAAC;IAC/C,yBAAyB,EAAE,iCAAiC,CAAC;IAC7D,eAAe,EAAE,uBAAuB,CAAC;CAC1C,CAAC;AAEF,qBAAa,qBAAqB;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAnC,YAA6B,MAAM,EAAE,2BAA2B,EAAI;IAE9D,QAAQ,CAAC,OAAO,EAAE,gBAAgB,GAAG,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAQ3E;CACF"}
1
+ {"version":3,"file":"shield-webhook.strategy.d.ts","sourceRoot":"","sources":["../src/shield-webhook.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC/F,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAClF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAClF,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAC;AAChG,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAE3E,eAAO,MAAM,0BAA0B;IACrC,QAAQ;IACR,SAAS;CACV,CAAC;AAEF,MAAM,MAAM,2BAA2B,GACnC;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,GAClB;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GACvC;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC;AAE7C,MAAM,MAAM,2BAA2B,GAAG;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,0BAA0B,CAAC;IAC/C,kBAAkB,EAAE,0BAA0B,CAAC;IAC/C,yBAAyB,EAAE,iCAAiC,CAAC;IAC7D,eAAe,EAAE,uBAAuB,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,WAAW,EAAE,mBAAmB,CAAC;IACjC,gBAAgB,EAAE,oBAAoB,CAAC;CACxC,CAAC;AAEF,qBAAa,qBAAqB;IAE9B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFvB,YACmB,MAAM,EAAE,2BAA2B,EACnC,IAAI,EAAE,iCAAiC,EACtD;IAEE,QAAQ,CACZ,OAAO,EAAE,gBAAgB,GAAG,cAAc,GAAG,cAAc,GAC1D,OAAO,CAAC,2BAA2B,CAAC,CAoBtC;CACF"}
@@ -1,15 +1,29 @@
1
- export const ShieldWebhookStrategyError = { Rejected: "shield.webhook.rejected" };
1
+ export const ShieldWebhookStrategyError = {
2
+ Rejected: "shield.webhook.rejected",
3
+ Duplicate: "shield.webhook.duplicate",
4
+ };
2
5
  export class ShieldWebhookStrategy {
3
6
  config;
4
- constructor(config) {
7
+ deps;
8
+ constructor(config, deps) {
5
9
  this.config = config;
10
+ this.deps = deps;
6
11
  }
7
12
  async evaluate(context) {
8
13
  const signature = this.config.WebhookSignatureExtractor.extract(context);
9
14
  if (!signature)
10
- return false;
15
+ return { accepted: false, reason: "rejected" };
11
16
  const body = await this.config.WebhookBodyBuilder.build(context);
12
- return this.config.WebhookVerifier.verify(body, signature);
17
+ if (!this.config.WebhookVerifier.verify(body, signature))
18
+ return { accepted: false, reason: "rejected" };
19
+ const id = await this.config.WebhookIdExtractor.extract(context);
20
+ if (!id)
21
+ return { accepted: false, reason: "rejected" };
22
+ const subject = await this.deps.HashContent.hash(JSON.stringify([[this.config.namespace, id]]));
23
+ const claimed = await this.deps.IdempotencyStore.claim(subject);
24
+ if (!claimed)
25
+ return { accepted: false, reason: "duplicate" };
26
+ return { accepted: true };
13
27
  }
14
28
  }
15
29
  //# sourceMappingURL=shield-webhook.strategy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shield-webhook.strategy.js","sourceRoot":"","sources":["../src/shield-webhook.strategy.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,QAAQ,EAAE,yBAAyB,EAAE,CAAC;AAQlF,MAAM,OAAO,qBAAqB;IACH,MAAM;IAAnC,YAA6B,MAAmC;sBAAnC,MAAM;IAAgC,CAAC;IAEpE,KAAK,CAAC,QAAQ,CAAC,OAA0C;QACvD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEzE,IAAI,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QAE7B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEjE,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC;CACF"}
1
+ {"version":3,"file":"shield-webhook.strategy.js","sourceRoot":"","sources":["../src/shield-webhook.strategy.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,QAAQ,EAAE,yBAAyB;IACnC,SAAS,EAAE,0BAA0B;CACtC,CAAC;AAoBF,MAAM,OAAO,qBAAqB;IAEb,MAAM;IACN,IAAI;IAFvB,YACmB,MAAmC,EACnC,IAAuC;sBADvC,MAAM;oBACN,IAAI;IACpB,CAAC;IAEJ,KAAK,CAAC,QAAQ,CACZ,OAA2D;QAE3D,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEzE,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QAE/D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEjE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC;YAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QAEzG,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEjE,IAAI,CAAC,EAAE;YAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QAExD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhG,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEhE,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QAE9D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;CACF"}
@@ -13,6 +13,8 @@ type Dependencies = {
13
13
  export declare class SitemapEntriesProviderWithCacheAdapter implements SitemapEntriesProvider {
14
14
  private readonly config;
15
15
  private readonly deps;
16
+ private readonly codec;
17
+ private readonly resolver;
16
18
  constructor(config: Config, deps: Dependencies);
17
19
  produce(): Promise<ReadonlyArray<SitemapEntry>>;
18
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sitemap-entries-provider-with-cache.adapter.d.ts","sourceRoot":"","sources":["../src/sitemap-entries-provider-with-cache.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIvD,KAAK,MAAM,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,sBAAsB,CAAA;CAAE,CAAC;AAC5D,KAAK,YAAY,GAAG;IAAE,aAAa,EAAE,qBAAqB,CAAC;IAAC,WAAW,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAE/F,qBAAa,sCAAuC,YAAW,sBAAsB;IAEjF,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFvB,YACmB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,YAAY,EACjC;IAEE,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAcpD;CACF"}
1
+ {"version":3,"file":"sitemap-entries-provider-with-cache.adapter.d.ts","sourceRoot":"","sources":["../src/sitemap-entries-provider-with-cache.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIvD,KAAK,MAAM,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,sBAAsB,CAAA;CAAE,CAAC;AAC5D,KAAK,YAAY,GAAG;IAAE,aAAa,EAAE,qBAAqB,CAAC;IAAC,WAAW,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAE/F,qBAAa,sCAAuC,YAAW,sBAAsB;IAKjF,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IALvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0C;IAChE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IAEtD,YACmB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,YAAY,EASpC;IAEK,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAQpD;CACF"}
@@ -1,19 +1,22 @@
1
+ import { CacheCodecSitemapEntriesStrategy } from "./cache-codec-sitemap-entries.strategy";
1
2
  import { SubjectApplicationResolver } from "./subject-application-resolver.vo";
2
3
  import { SubjectSegmentFixedStrategy } from "./subject-segment-fixed.strategy";
3
4
  export class SitemapEntriesProviderWithCacheAdapter {
4
5
  config;
5
6
  deps;
7
+ codec = new CacheCodecSitemapEntriesStrategy();
8
+ resolver;
6
9
  constructor(config, deps) {
7
10
  this.config = config;
8
11
  this.deps = deps;
9
- }
10
- async produce() {
11
- const resolver = new SubjectApplicationResolver([
12
+ this.resolver = new SubjectApplicationResolver([
12
13
  new SubjectSegmentFixedStrategy("sitemap_entries_provider"),
13
14
  new SubjectSegmentFixedStrategy(this.config.id),
14
15
  ], this.deps);
15
- const subject = await resolver.resolve();
16
- return this.deps.CacheResolver.resolve(subject.hex, () => this.config.inner.produce());
16
+ }
17
+ async produce() {
18
+ const subject = await this.resolver.resolve();
19
+ return this.deps.CacheResolver.resolve(subject.hex, async () => this.config.inner.produce(), this.codec);
17
20
  }
18
21
  }
19
22
  //# sourceMappingURL=sitemap-entries-provider-with-cache.adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sitemap-entries-provider-with-cache.adapter.js","sourceRoot":"","sources":["../src/sitemap-entries-provider-with-cache.adapter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAK/E,MAAM,OAAO,sCAAsC;IAE9B,MAAM;IACN,IAAI;IAFvB,YACmB,MAAc,EACd,IAAkB;sBADlB,MAAM;oBACN,IAAI;IACpB,CAAC;IAEJ,KAAK,CAAC,OAAO;QACX,MAAM,QAAQ,GAAG,IAAI,0BAA0B,CAC7C;YACE,IAAI,2BAA2B,CAAC,0BAA0B,CAAC;YAC3D,IAAI,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;SAChD,EACD,IAAI,CAAC,IAAI,CACV,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;QAEzC,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAA8B,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,CACpF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAC5B,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"sitemap-entries-provider-with-cache.adapter.js","sourceRoot":"","sources":["../src/sitemap-entries-provider-with-cache.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,MAAM,wCAAwC,CAAC;AAK1F,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAK/E,MAAM,OAAO,sCAAsC;IAK9B,MAAM;IACN,IAAI;IALN,KAAK,GAAG,IAAI,gCAAgC,EAAE,CAAC;IAC/C,QAAQ,CAA6B;IAEtD,YACmB,MAAc,EACd,IAAkB;sBADlB,MAAM;oBACN,IAAI;QAErB,IAAI,CAAC,QAAQ,GAAG,IAAI,0BAA0B,CAC5C;YACE,IAAI,2BAA2B,CAAC,0BAA0B,CAAC;YAC3D,IAAI,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;SAChD,EACD,IAAI,CAAC,IAAI,CACV,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAE9C,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CACpC,OAAO,CAAC,GAAG,EACX,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EACvC,IAAI,CAAC,KAAK,CACX,CAAC;IACJ,CAAC;CACF"}
@@ -1,17 +1,18 @@
1
- import type * as tools from "@bgord/tools";
2
- import type { SitemapChangefreqEnum } from "./sitemap-changefreq.vo";
3
- import type { SitemapPriorityType } from "./sitemap-priority.vo";
4
- import type { SitemapUrlType } from "./sitemap-url.vo";
5
- export type SitemapEntryType = {
6
- loc: SitemapUrlType;
7
- lastmod?: tools.DayIsoIdType;
8
- changefreq?: SitemapChangefreqEnum;
9
- priority?: SitemapPriorityType;
10
- };
1
+ import * as v from "valibot";
2
+ import { SitemapChangefreqEnum } from "./sitemap-changefreq.vo";
3
+ export declare const SitemapEntrySchema: v.ObjectSchema<{
4
+ readonly loc: v.SchemaWithPipe<readonly [v.UnionSchema<[v.SchemaWithPipe<readonly [v.StringSchema<string>, v.UrlAction<string, string>, v.EndsWithAction<string, "/", string>, v.BrandAction<string, "UrlWithSlash">]>, v.SchemaWithPipe<readonly [v.StringSchema<string>, v.UrlAction<string, string>, v.CheckAction<string, string>, v.BrandAction<string, "UrlWithoutSlash">]>], string>, v.BrandAction<(string & v.Brand<"UrlWithSlash">) | (string & v.Brand<"UrlWithoutSlash">), "SitemapUrl">]>;
5
+ readonly lastmod: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<string>, v.RegexAction<string, string>, v.CheckAction<string, string>, v.BrandAction<string, "DayIsoId">]>, undefined>;
6
+ readonly changefreq: v.OptionalSchema<v.EnumSchema<typeof SitemapChangefreqEnum, undefined>, undefined>;
7
+ readonly priority: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<string>, v.MinValueAction<number, 0, string>, v.MaxValueAction<number, 1, string>, v.CheckAction<number, string>, v.BrandAction<number, "SitemapPriority">]>, undefined>;
8
+ }, undefined>;
9
+ export type SitemapEntryType = v.InferOutput<typeof SitemapEntrySchema>;
11
10
  export declare class SitemapEntry {
12
11
  private readonly entry;
13
12
  constructor(entry: SitemapEntryType);
14
13
  private escapeXml;
14
+ static fromJSON(raw: unknown): SitemapEntry;
15
+ toJSON(): SitemapEntryType;
15
16
  toXml(): string;
16
17
  }
17
18
  //# sourceMappingURL=sitemap-entry.vo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sitemap-entry.vo.d.ts","sourceRoot":"","sources":["../src/sitemap-entry.vo.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,cAAc,CAAC;IACpB,OAAO,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;IAC7B,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;CAChC,CAAC;AAEF,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ,CAAC,KAAK;IAAlC,YAA6B,KAAK,EAAE,gBAAgB,EAAI;IAExD,OAAO,CAAC,SAAS;IASjB,KAAK,IAAI,MAAM,CAQd;CACF"}
1
+ {"version":3,"file":"sitemap-entry.vo.d.ts","sourceRoot":"","sources":["../src/sitemap-entry.vo.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAKhE,eAAO,MAAM,kBAAkB;;;;;aAK7B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAExE,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ,CAAC,KAAK;IAAlC,YAA6B,KAAK,EAAE,gBAAgB,EAAI;IAExD,OAAO,CAAC,SAAS;IASjB,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CAE1C;IAED,MAAM,IAAI,gBAAgB,CAEzB;IAED,KAAK,IAAI,MAAM,CAQd;CACF"}
@@ -1,3 +1,16 @@
1
+ // cspell:ignore apos
2
+ import * as tools from "@bgord/tools";
3
+ import * as v from "valibot";
4
+ import { SitemapChangefreqEnum } from "./sitemap-changefreq.vo";
5
+ import { SitemapPriority } from "./sitemap-priority.vo";
6
+ import { SitemapUrl } from "./sitemap-url.vo";
7
+ import { StandardSchemaValidator } from "./standard-schema-validator.service";
8
+ export const SitemapEntrySchema = v.object({
9
+ loc: SitemapUrl,
10
+ lastmod: v.optional(tools.DayIsoId),
11
+ changefreq: v.optional(v.enum(SitemapChangefreqEnum)),
12
+ priority: v.optional(SitemapPriority),
13
+ });
1
14
  export class SitemapEntry {
2
15
  entry;
3
16
  constructor(entry) {
@@ -11,6 +24,12 @@ export class SitemapEntry {
11
24
  .replace(/"/g, "&quot;")
12
25
  .replace(/'/g, "&apos;");
13
26
  }
27
+ static fromJSON(raw) {
28
+ return new SitemapEntry(StandardSchemaValidator.validate(SitemapEntrySchema, raw));
29
+ }
30
+ toJSON() {
31
+ return { ...this.entry };
32
+ }
14
33
  toXml() {
15
34
  const loc = `<loc>${this.escapeXml(this.entry.loc)}</loc>`;
16
35
  const lastmod = this.entry.lastmod ? `<lastmod>${this.entry.lastmod}</lastmod>` : "";
@@ -1 +1 @@
1
- {"version":3,"file":"sitemap-entry.vo.js","sourceRoot":"","sources":["../src/sitemap-entry.vo.ts"],"names":[],"mappings":"AAaA,MAAM,OAAO,YAAY;IACM,KAAK;IAAlC,YAA6B,KAAuB;qBAAvB,KAAK;IAAqB,CAAC;IAEhD,SAAS,CAAC,GAAW;QAC3B,OAAO,GAAG;aACP,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;aACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;aACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;aACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;aACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK;QACH,MAAM,GAAG,GAAG,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,KAAK,CAAC,UAAU,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;QACpG,MAAM,QAAQ,GACZ,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QAEpG,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1E,CAAC;CACF"}
1
+ {"version":3,"file":"sitemap-entry.vo.js","sourceRoot":"","sources":["../src/sitemap-entry.vo.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,GAAG,EAAE,UAAU;IACf,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;IACnC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACrD,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;CACtC,CAAC,CAAC;AAIH,MAAM,OAAO,YAAY;IACM,KAAK;IAAlC,YAA6B,KAAuB;qBAAvB,KAAK;IAAqB,CAAC;IAEhD,SAAS,CAAC,GAAW;QAC3B,OAAO,GAAG;aACP,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;aACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;aACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;aACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;aACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,GAAY;QAC1B,OAAO,IAAI,YAAY,CAAC,uBAAuB,CAAC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,CAAC;IACrF,CAAC;IAED,MAAM;QACJ,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK;QACH,MAAM,GAAG,GAAG,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,KAAK,CAAC,UAAU,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;QACpG,MAAM,QAAQ,GACZ,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QAEpG,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1E,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"smtp-port.vo.d.ts","sourceRoot":"","sources":["../src/smtp-port.vo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAG7B,eAAO,MAAM,QAAQ,gWAAoC,CAAC;AAC1D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAAC"}
1
+ {"version":3,"file":"smtp-port.vo.d.ts","sourceRoot":"","sources":["../src/smtp-port.vo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAI7B,eAAO,MAAM,QAAQ,gWAAoC,CAAC;AAC1D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import * as v from "valibot";
2
2
  import { Port } from "./port.vo";
3
+ // Stryker disable next-line StringLiteral
3
4
  export const SmtpPort = v.pipe(Port, v.brand("SmtpPort"));
4
5
  //# sourceMappingURL=smtp-port.vo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"smtp-port.vo.js","sourceRoot":"","sources":["../src/smtp-port.vo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"smtp-port.vo.js","sourceRoot":"","sources":["../src/smtp-port.vo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,0CAA0C;AAC1C,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC"}
@@ -1,3 +1,4 @@
1
+ import type { ClockPort } from "./clock.port";
1
2
  import type { HashValueType } from "./hash-value.vo";
2
3
  import type { LoggerPort } from "./logger.port";
3
4
  import type { Message } from "./message.types";
@@ -5,6 +6,7 @@ import type { SseRegistryPort, SseSenderType } from "./sse-registry.port";
5
6
  type Dependencies<Messages extends Message> = {
6
7
  inner: SseRegistryPort<Messages>;
7
8
  Logger: LoggerPort;
9
+ Clock: ClockPort;
8
10
  };
9
11
  export declare class SseRegistryWithLoggerAdapter<Messages extends Message> implements SseRegistryPort<Messages> {
10
12
  private readonly deps;
@@ -1 +1 @@
1
- {"version":3,"file":"sse-registry-with-logger.adapter.d.ts","sourceRoot":"","sources":["../src/sse-registry-with-logger.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAE1E,KAAK,YAAY,CAAC,QAAQ,SAAS,OAAO,IAAI;IAAE,KAAK,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAEvG,qBAAa,4BAA4B,CAAC,QAAQ,SAAS,OAAO,CAAE,YAAW,eAAe,CAAC,QAAQ,CAAC;IAG1F,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqD;IAE1E,YAA6B,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAI;IAE7D,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,OAAO,CAW1E;IAED,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI,CASzE;IAEK,IAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CASjF;IAED,KAAK,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAErC;CACF"}
1
+ {"version":3,"file":"sse-registry-with-logger.adapter.d.ts","sourceRoot":"","sources":["../src/sse-registry-with-logger.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAG1E,KAAK,YAAY,CAAC,QAAQ,SAAS,OAAO,IAAI;IAC5C,KAAK,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IACjC,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF,qBAAa,4BAA4B,CAAC,QAAQ,SAAS,OAAO,CAAE,YAAW,eAAe,CAAC,QAAQ,CAAC;IAG1F,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqD;IAE1E,YAA6B,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAI;IAE7D,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,OAAO,CAgC1E;IAED,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI,CA8BzE;IAEK,IAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CA8BjF;IAED,KAAK,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAErC;CACF"}
@@ -1,4 +1,5 @@
1
1
  import { CorrelationStorage } from "./correlation-storage.service";
2
+ import { Stopwatch } from "./stopwatch.service";
2
3
  export class SseRegistryWithLoggerAdapter {
3
4
  deps;
4
5
  base = { component: "infra", operation: "sse_registry" };
@@ -6,32 +7,89 @@ export class SseRegistryWithLoggerAdapter {
6
7
  this.deps = deps;
7
8
  }
8
9
  register(identity, sender) {
9
- const registered = this.deps.inner.register(identity, sender);
10
- this.deps.Logger.info({
11
- message: registered ? "SSE sender registered" : "SSE sender rejected",
12
- metadata: { identity, registered },
13
- correlationId: CorrelationStorage.get(),
14
- ...this.base,
15
- });
16
- return registered;
10
+ const duration = new Stopwatch(this.deps);
11
+ try {
12
+ this.deps.Logger.info({
13
+ message: "SSE registry register attempt",
14
+ correlationId: CorrelationStorage.get(),
15
+ metadata: { identity },
16
+ ...this.base,
17
+ });
18
+ const registered = this.deps.inner.register(identity, sender);
19
+ this.deps.Logger.info({
20
+ message: "SSE registry register success",
21
+ correlationId: CorrelationStorage.get(),
22
+ metadata: { identity, registered, duration: duration.stop() },
23
+ ...this.base,
24
+ });
25
+ return registered;
26
+ }
27
+ catch (error) {
28
+ this.deps.Logger.error({
29
+ message: "SSE registry register error",
30
+ correlationId: CorrelationStorage.get(),
31
+ error,
32
+ metadata: { identity, duration: duration.stop() },
33
+ ...this.base,
34
+ });
35
+ throw error;
36
+ }
17
37
  }
18
38
  unregister(identity, sender) {
19
- this.deps.Logger.info({
20
- message: "SSE sender unregistered",
21
- metadata: { identity },
22
- correlationId: CorrelationStorage.get(),
23
- ...this.base,
24
- });
25
- this.deps.inner.unregister(identity, sender);
39
+ const duration = new Stopwatch(this.deps);
40
+ try {
41
+ this.deps.Logger.info({
42
+ message: "SSE registry unregister attempt",
43
+ correlationId: CorrelationStorage.get(),
44
+ metadata: { identity },
45
+ ...this.base,
46
+ });
47
+ this.deps.inner.unregister(identity, sender);
48
+ this.deps.Logger.info({
49
+ message: "SSE registry unregister success",
50
+ correlationId: CorrelationStorage.get(),
51
+ metadata: { identity, duration: duration.stop() },
52
+ ...this.base,
53
+ });
54
+ }
55
+ catch (error) {
56
+ this.deps.Logger.error({
57
+ message: "SSE registry unregister error",
58
+ correlationId: CorrelationStorage.get(),
59
+ error,
60
+ metadata: { identity, duration: duration.stop() },
61
+ ...this.base,
62
+ });
63
+ throw error;
64
+ }
26
65
  }
27
66
  async emit(identity, message) {
28
- this.deps.Logger.info({
29
- message: `${message.name} emitted`,
30
- metadata: { identity, message },
31
- correlationId: CorrelationStorage.get(),
32
- ...this.base,
33
- });
34
- return this.deps.inner.emit(identity, message);
67
+ const duration = new Stopwatch(this.deps);
68
+ try {
69
+ this.deps.Logger.info({
70
+ message: "SSE registry emit attempt",
71
+ correlationId: CorrelationStorage.get(),
72
+ metadata: { identity, message },
73
+ ...this.base,
74
+ });
75
+ await this.deps.inner.emit(identity, message);
76
+ this.deps.Logger.info({
77
+ message: "SSE registry emit success",
78
+ correlationId: CorrelationStorage.get(),
79
+ metadata: { identity, message, duration: duration.stop() },
80
+ ...this.base,
81
+ });
82
+ }
83
+ catch (error) {
84
+ this.deps.Logger.error({
85
+ message: "SSE registry emit error",
86
+ correlationId: CorrelationStorage.get(),
87
+ error,
88
+ metadata: { identity, message, duration: duration.stop() },
89
+ ...this.base,
90
+ });
91
+ throw error;
92
+ }
35
93
  }
36
94
  count(identity) {
37
95
  return this.deps.inner.count(identity);
@@ -1 +1 @@
1
- {"version":3,"file":"sse-registry-with-logger.adapter.js","sourceRoot":"","sources":["../src/sse-registry-with-logger.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAQnE,MAAM,OAAO,4BAA4B;IAGV,IAAI;IAFhB,IAAI,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;IAE1E,YAA6B,IAA4B;oBAA5B,IAAI;IAA2B,CAAC;IAE7D,QAAQ,CAAC,QAAuB,EAAE,MAA+B;QAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAE9D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACpB,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,qBAAqB;YACrE,QAAQ,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE;YAClC,aAAa,EAAE,kBAAkB,CAAC,GAAG,EAAE;YACvC,GAAG,IAAI,CAAC,IAAI;SACb,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,UAAU,CAAC,QAAuB,EAAE,MAA+B;QACjE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACpB,OAAO,EAAE,yBAAyB;YAClC,QAAQ,EAAE,EAAE,QAAQ,EAAE;YACtB,aAAa,EAAE,kBAAkB,CAAC,GAAG,EAAE;YACvC,GAAG,IAAI,CAAC,IAAI;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,IAAI,CAAqB,QAAuB,EAAE,OAAU;QAChE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACpB,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,UAAU;YAClC,QAAQ,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE;YAC/B,aAAa,EAAE,kBAAkB,CAAC,GAAG,EAAE;YACvC,GAAG,IAAI,CAAC,IAAI;SACb,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,QAAuB;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;CACF"}
1
+ {"version":3,"file":"sse-registry-with-logger.adapter.js","sourceRoot":"","sources":["../src/sse-registry-with-logger.adapter.ts"],"names":[],"mappings":"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"}