@bgord/bun 1.20.5 → 1.21.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (666) hide show
  1. package/dist/ab-assignment-composite.strategy.d.ts +4 -2
  2. package/dist/ab-assignment-composite.strategy.d.ts.map +1 -1
  3. package/dist/ab-assignment-composite.strategy.js +5 -2
  4. package/dist/ab-assignment-composite.strategy.js.map +1 -1
  5. package/dist/ab-assignment-cookie.strategy.d.ts +3 -2
  6. package/dist/ab-assignment-cookie.strategy.d.ts.map +1 -1
  7. package/dist/ab-assignment-cookie.strategy.js +5 -3
  8. package/dist/ab-assignment-cookie.strategy.js.map +1 -1
  9. package/dist/ab-assignment-fixed.strategy.d.ts +1 -2
  10. package/dist/ab-assignment-fixed.strategy.d.ts.map +1 -1
  11. package/dist/ab-assignment-fixed.strategy.js +1 -1
  12. package/dist/ab-assignment-fixed.strategy.js.map +1 -1
  13. package/dist/ab-assignment-hash.strategy.d.ts +1 -1
  14. package/dist/ab-assignment-hash.strategy.d.ts.map +1 -1
  15. package/dist/ab-assignment-hash.strategy.js +1 -1
  16. package/dist/ab-assignment-hash.strategy.js.map +1 -1
  17. package/dist/ab-assignment-header.strategy.d.ts +3 -2
  18. package/dist/ab-assignment-header.strategy.d.ts.map +1 -1
  19. package/dist/ab-assignment-header.strategy.js +5 -3
  20. package/dist/ab-assignment-header.strategy.js.map +1 -1
  21. package/dist/ab-assignment-query.strategy.d.ts +3 -2
  22. package/dist/ab-assignment-query.strategy.d.ts.map +1 -1
  23. package/dist/ab-assignment-query.strategy.js +5 -3
  24. package/dist/ab-assignment-query.strategy.js.map +1 -1
  25. package/dist/ab-assignment.strategy.d.ts +1 -2
  26. package/dist/ab-assignment.strategy.d.ts.map +1 -1
  27. package/dist/ab-hono-noop.middleware.d.ts +4 -1
  28. package/dist/ab-hono-noop.middleware.d.ts.map +1 -1
  29. package/dist/ab-hono-noop.middleware.js.map +1 -1
  30. package/dist/ab-hono.middleware.d.ts +4 -3
  31. package/dist/ab-hono.middleware.d.ts.map +1 -1
  32. package/dist/ab-hono.middleware.js +7 -4
  33. package/dist/ab-hono.middleware.js.map +1 -1
  34. package/dist/ab.middleware.d.ts +1 -3
  35. package/dist/ab.middleware.d.ts.map +1 -1
  36. package/dist/ab.middleware.js +2 -4
  37. package/dist/ab.middleware.js.map +1 -1
  38. package/dist/alert-channel-composite.adapter.d.ts +1 -0
  39. package/dist/alert-channel-composite.adapter.d.ts.map +1 -1
  40. package/dist/alert-channel-composite.adapter.js +6 -1
  41. package/dist/alert-channel-composite.adapter.js.map +1 -1
  42. package/dist/alert-channel-with-logger.adapter.js +1 -1
  43. package/dist/alert-channel-with-logger.adapter.js.map +1 -1
  44. package/dist/antivirus-clamav.adapter.d.ts.map +1 -1
  45. package/dist/antivirus-clamav.adapter.js +3 -4
  46. package/dist/antivirus-clamav.adapter.js.map +1 -1
  47. package/dist/antivirus-with-logger.adapter.js +2 -2
  48. package/dist/antivirus-with-logger.adapter.js.map +1 -1
  49. package/dist/api-version-hono.middleware.d.ts +2 -11
  50. package/dist/api-version-hono.middleware.d.ts.map +1 -1
  51. package/dist/api-version-hono.middleware.js +6 -3
  52. package/dist/api-version-hono.middleware.js.map +1 -1
  53. package/dist/api-version.middleware.d.ts +2 -3
  54. package/dist/api-version.middleware.d.ts.map +1 -1
  55. package/dist/api-version.middleware.js.map +1 -1
  56. package/dist/auth-session-reader-noop.adapter.d.ts +2 -2
  57. package/dist/auth-session-reader-noop.adapter.d.ts.map +1 -1
  58. package/dist/better-auth-logger.service.d.ts.map +1 -1
  59. package/dist/better-auth-logger.service.js +6 -0
  60. package/dist/better-auth-logger.service.js.map +1 -1
  61. package/dist/cache-file.service.d.ts.map +1 -1
  62. package/dist/cache-file.service.js +4 -2
  63. package/dist/cache-file.service.js.map +1 -1
  64. package/dist/cache-repository-node-cache.adapter.d.ts.map +1 -1
  65. package/dist/cache-repository-node-cache.adapter.js +4 -1
  66. package/dist/cache-repository-node-cache.adapter.js.map +1 -1
  67. package/dist/cache-response-hono.middleware.d.ts +2 -7
  68. package/dist/cache-response-hono.middleware.d.ts.map +1 -1
  69. package/dist/cache-response-hono.middleware.js +1 -1
  70. package/dist/cache-response-hono.middleware.js.map +1 -1
  71. package/dist/cache-response.middleware.d.ts +3 -4
  72. package/dist/cache-response.middleware.d.ts.map +1 -1
  73. package/dist/cache-response.middleware.js.map +1 -1
  74. package/dist/certificate-inspector-tls.adapter.d.ts.map +1 -1
  75. package/dist/certificate-inspector-tls.adapter.js +19 -16
  76. package/dist/certificate-inspector-tls.adapter.js.map +1 -1
  77. package/dist/correlation-hono.middleware.d.ts +5 -7
  78. package/dist/correlation-hono.middleware.d.ts.map +1 -1
  79. package/dist/correlation-hono.middleware.js +4 -2
  80. package/dist/correlation-hono.middleware.js.map +1 -1
  81. package/dist/correlation.middleware.d.ts +2 -3
  82. package/dist/correlation.middleware.d.ts.map +1 -1
  83. package/dist/correlation.middleware.js.map +1 -1
  84. package/dist/cron-scheduler.adapter.d.ts +1 -0
  85. package/dist/cron-scheduler.adapter.d.ts.map +1 -1
  86. package/dist/cron-scheduler.adapter.js +3 -2
  87. package/dist/cron-scheduler.adapter.js.map +1 -1
  88. package/dist/cron-task-handler-with-logger.strategy.js +7 -7
  89. package/dist/cron-task-handler-with-logger.strategy.js.map +1 -1
  90. package/dist/csv-stringifier.adapter.d.ts +1 -1
  91. package/dist/csv-stringifier.adapter.d.ts.map +1 -1
  92. package/dist/csv-stringifier.adapter.js +1 -1
  93. package/dist/csv-stringifier.adapter.js.map +1 -1
  94. package/dist/{disk-space-checker-shell.adapter.d.ts → disk-space-checker-fs.adapter.d.ts} +2 -2
  95. package/dist/disk-space-checker-fs.adapter.d.ts.map +1 -0
  96. package/dist/disk-space-checker-fs.adapter.js +10 -0
  97. package/dist/disk-space-checker-fs.adapter.js.map +1 -0
  98. package/dist/dynamic-import.service.js +2 -2
  99. package/dist/dynamic-import.service.js.map +1 -1
  100. package/dist/environment-loader-process-safe.adapter.d.ts.map +1 -1
  101. package/dist/environment-loader-process-safe.adapter.js +3 -1
  102. package/dist/environment-loader-process-safe.adapter.js.map +1 -1
  103. package/dist/environment-loader.port.d.ts +1 -1
  104. package/dist/environment-loader.port.d.ts.map +1 -1
  105. package/dist/etag-extractor-header.strategy.d.ts.map +1 -1
  106. package/dist/etag-extractor-header.strategy.js +2 -0
  107. package/dist/etag-extractor-header.strategy.js.map +1 -1
  108. package/dist/etag-extractor-hono.middleware.d.ts +3 -1
  109. package/dist/etag-extractor-hono.middleware.d.ts.map +1 -1
  110. package/dist/etag-extractor-param.strategy.d.ts.map +1 -1
  111. package/dist/etag-extractor-param.strategy.js +2 -0
  112. package/dist/etag-extractor-param.strategy.js.map +1 -1
  113. package/dist/etag-extractor.strategy.d.ts +2 -2
  114. package/dist/etag-extractor.strategy.d.ts.map +1 -1
  115. package/dist/file-inspection.adapter.js +4 -4
  116. package/dist/file-inspection.adapter.js.map +1 -1
  117. package/dist/file-reader-json-forgiving.adapter.js +1 -1
  118. package/dist/file-reader-json-forgiving.adapter.js.map +1 -1
  119. package/dist/graceful-shutdown.service.d.ts.map +1 -1
  120. package/dist/graceful-shutdown.service.js +3 -3
  121. package/dist/graceful-shutdown.service.js.map +1 -1
  122. package/dist/hash.vo.js +1 -1
  123. package/dist/hash.vo.js.map +1 -1
  124. package/dist/hcaptcha.service.d.ts +1 -2
  125. package/dist/hcaptcha.service.d.ts.map +1 -1
  126. package/dist/hcaptcha.service.js +1 -1
  127. package/dist/hcaptcha.service.js.map +1 -1
  128. package/dist/http-logger-hono.middleware.d.ts +2 -9
  129. package/dist/http-logger-hono.middleware.d.ts.map +1 -1
  130. package/dist/http-logger-hono.middleware.js +1 -1
  131. package/dist/http-logger-hono.middleware.js.map +1 -1
  132. package/dist/http-logger.middleware.d.ts +2 -3
  133. package/dist/http-logger.middleware.d.ts.map +1 -1
  134. package/dist/http-logger.middleware.js.map +1 -1
  135. package/dist/image-blur-noop.adapter.js +1 -1
  136. package/dist/image-blur-noop.adapter.js.map +1 -1
  137. package/dist/image-blur.adapter.d.ts.map +1 -1
  138. package/dist/image-blur.adapter.js +2 -4
  139. package/dist/image-blur.adapter.js.map +1 -1
  140. package/dist/image-blur.port.d.ts +1 -8
  141. package/dist/image-blur.port.d.ts.map +1 -1
  142. package/dist/in-flight-requests-hono.middleware.d.ts.map +1 -1
  143. package/dist/in-flight-requests-hono.middleware.js +1 -0
  144. package/dist/in-flight-requests-hono.middleware.js.map +1 -1
  145. package/dist/in-flight-requests-tracker.service.js +2 -2
  146. package/dist/in-flight-requests-tracker.service.js.map +1 -1
  147. package/dist/index.d.ts +4 -3
  148. package/dist/index.d.ts.map +1 -1
  149. package/dist/index.js +4 -3
  150. package/dist/index.js.map +1 -1
  151. package/dist/instrumentation.service.d.ts.map +1 -1
  152. package/dist/instrumentation.service.js +5 -2
  153. package/dist/instrumentation.service.js.map +1 -1
  154. package/dist/job-queue-sqlite-store.service.d.ts.map +1 -1
  155. package/dist/job-queue-sqlite-store.service.js +1 -0
  156. package/dist/job-queue-sqlite-store.service.js.map +1 -1
  157. package/dist/job-queue-with-logger.adapter.d.ts +1 -1
  158. package/dist/job-queue-with-logger.adapter.d.ts.map +1 -1
  159. package/dist/job-queue-with-logger.adapter.js +2 -2
  160. package/dist/job-queue-with-logger.adapter.js.map +1 -1
  161. package/dist/language-detector-cookie.strategy.js +1 -1
  162. package/dist/language-detector-cookie.strategy.js.map +1 -1
  163. package/dist/language-detector-header.strategy.d.ts.map +1 -1
  164. package/dist/language-detector-header.strategy.js +12 -1
  165. package/dist/language-detector-header.strategy.js.map +1 -1
  166. package/dist/language-detector-hono.middleware.d.ts +3 -1
  167. package/dist/language-detector-hono.middleware.d.ts.map +1 -1
  168. package/dist/language-detector-query.strategy.js +1 -1
  169. package/dist/language-detector-query.strategy.js.map +1 -1
  170. package/dist/language-detector.middleware.d.ts +2 -2
  171. package/dist/language-detector.middleware.d.ts.map +1 -1
  172. package/dist/language-detector.middleware.js.map +1 -1
  173. package/dist/language-detector.strategy.d.ts +2 -2
  174. package/dist/language-detector.strategy.d.ts.map +1 -1
  175. package/dist/liveness-hono.handler.d.ts.map +1 -1
  176. package/dist/liveness-hono.handler.js +4 -1
  177. package/dist/liveness-hono.handler.js.map +1 -1
  178. package/dist/liveness.handler.d.ts +1 -0
  179. package/dist/liveness.handler.d.ts.map +1 -1
  180. package/dist/liveness.handler.js +1 -1
  181. package/dist/liveness.handler.js.map +1 -1
  182. package/dist/mailer-content-html.vo.d.ts +1 -5
  183. package/dist/mailer-content-html.vo.d.ts.map +1 -1
  184. package/dist/mailer-content-html.vo.js +1 -1
  185. package/dist/mailer-content-html.vo.js.map +1 -1
  186. package/dist/mailer-smtp.adapter.d.ts.map +1 -1
  187. package/dist/mailer-smtp.adapter.js +1 -0
  188. package/dist/mailer-smtp.adapter.js.map +1 -1
  189. package/dist/mailer-with-logger.adapter.js +2 -2
  190. package/dist/mailer-with-logger.adapter.js.map +1 -1
  191. package/dist/markdown-generator.adapter.js +1 -1
  192. package/dist/markdown-generator.adapter.js.map +1 -1
  193. package/dist/memory-consumption.service.d.ts +0 -1
  194. package/dist/memory-consumption.service.d.ts.map +1 -1
  195. package/dist/memory-consumption.service.js +0 -3
  196. package/dist/memory-consumption.service.js.map +1 -1
  197. package/dist/modules/system/jobs/SEND_EMAIL_JOB.d.ts +1 -1
  198. package/dist/nonce-provider-crypto.adapter.js +1 -1
  199. package/dist/nonce-provider-crypto.adapter.js.map +1 -1
  200. package/dist/nonce-provider-noop.adapter.js +1 -1
  201. package/dist/nonce-provider-noop.adapter.js.map +1 -1
  202. package/dist/nonce-value.vo.js +2 -2
  203. package/dist/pdf-generator-with-logger.adapter.js +1 -1
  204. package/dist/pdf-generator-with-logger.adapter.js.map +1 -1
  205. package/dist/prerequisite-verifier-memory.adapter.js +1 -1
  206. package/dist/prerequisite-verifier-memory.adapter.js.map +1 -1
  207. package/dist/prerequisite-verifier-translations.adapter.d.ts.map +1 -1
  208. package/dist/prerequisite-verifier-translations.adapter.js +7 -11
  209. package/dist/prerequisite-verifier-translations.adapter.js.map +1 -1
  210. package/dist/prerequisite-verifier-with-logger.adapter.js +1 -1
  211. package/dist/prerequisite-verifier-with-logger.adapter.js.map +1 -1
  212. package/dist/randomness.strategy.d.ts.map +1 -1
  213. package/dist/reactive-config-noop.adapter.d.ts +0 -1
  214. package/dist/reactive-config-noop.adapter.d.ts.map +1 -1
  215. package/dist/reactive-config-noop.adapter.js +2 -4
  216. package/dist/reactive-config-noop.adapter.js.map +1 -1
  217. package/dist/reactive-config-with-cache.adapter.js +1 -1
  218. package/dist/reactive-config-with-cache.adapter.js.map +1 -1
  219. package/dist/reactive-config-with-fallback.adapter.d.ts +0 -1
  220. package/dist/reactive-config-with-fallback.adapter.d.ts.map +1 -1
  221. package/dist/reactive-config-with-fallback.adapter.js +2 -4
  222. package/dist/reactive-config-with-fallback.adapter.js.map +1 -1
  223. package/dist/reactive-config-with-logger.adapter.d.ts +15 -0
  224. package/dist/reactive-config-with-logger.adapter.d.ts.map +1 -0
  225. package/dist/reactive-config-with-logger.adapter.js +38 -0
  226. package/dist/reactive-config-with-logger.adapter.js.map +1 -0
  227. package/dist/readiness-hono.handler.d.ts +4 -7
  228. package/dist/readiness-hono.handler.d.ts.map +1 -1
  229. package/dist/readiness-hono.handler.js +2 -3
  230. package/dist/readiness-hono.handler.js.map +1 -1
  231. package/dist/readiness.handler.d.ts +6 -1
  232. package/dist/readiness.handler.d.ts.map +1 -1
  233. package/dist/readiness.handler.js +11 -1
  234. package/dist/readiness.handler.js.map +1 -1
  235. package/dist/redactor-metadata-compact-array.strategy.d.ts.map +1 -1
  236. package/dist/redactor-metadata-compact-array.strategy.js +2 -0
  237. package/dist/redactor-metadata-compact-array.strategy.js.map +1 -1
  238. package/dist/redactor-metadata-compact-object.strategy.d.ts.map +1 -1
  239. package/dist/redactor-metadata-compact-object.strategy.js +2 -0
  240. package/dist/redactor-metadata-compact-object.strategy.js.map +1 -1
  241. package/dist/redactor-url-query.strategy.d.ts +8 -0
  242. package/dist/redactor-url-query.strategy.d.ts.map +1 -0
  243. package/dist/redactor-url-query.strategy.js +26 -0
  244. package/dist/redactor-url-query.strategy.js.map +1 -0
  245. package/dist/remote-file-storage-disk.adapter.d.ts +2 -0
  246. package/dist/remote-file-storage-disk.adapter.d.ts.map +1 -1
  247. package/dist/remote-file-storage-disk.adapter.js +2 -5
  248. package/dist/remote-file-storage-disk.adapter.js.map +1 -1
  249. package/dist/request-context-hono.adapter.d.ts.map +1 -1
  250. package/dist/request-context-hono.adapter.js +2 -0
  251. package/dist/request-context-hono.adapter.js.map +1 -1
  252. package/dist/request-context.port.d.ts +13 -1
  253. package/dist/request-context.port.d.ts.map +1 -1
  254. package/dist/sealer-aes-gcm.adapter.d.ts +1 -0
  255. package/dist/sealer-aes-gcm.adapter.d.ts.map +1 -1
  256. package/dist/sealer-aes-gcm.adapter.js +6 -1
  257. package/dist/sealer-aes-gcm.adapter.js.map +1 -1
  258. package/dist/secure-key-generator-crypto.adapter.d.ts +1 -0
  259. package/dist/secure-key-generator-crypto.adapter.d.ts.map +1 -1
  260. package/dist/secure-key-generator-crypto.adapter.js +6 -1
  261. package/dist/secure-key-generator-crypto.adapter.js.map +1 -1
  262. package/dist/security-rule-bait-routes.strategy.js +1 -1
  263. package/dist/security-rule-bait-routes.strategy.js.map +1 -1
  264. package/dist/security-rule-honey-pot-field.strategy.d.ts +2 -2
  265. package/dist/security-rule-honey-pot-field.strategy.d.ts.map +1 -1
  266. package/dist/security-rule-honey-pot-field.strategy.js +3 -2
  267. package/dist/security-rule-honey-pot-field.strategy.js.map +1 -1
  268. package/dist/security-rule.strategy.d.ts +2 -4
  269. package/dist/security-rule.strategy.d.ts.map +1 -1
  270. package/dist/semaphore.service.d.ts +3 -1
  271. package/dist/semaphore.service.d.ts.map +1 -1
  272. package/dist/semaphore.service.js +13 -7
  273. package/dist/semaphore.service.js.map +1 -1
  274. package/dist/setup-hono.service.js +1 -1
  275. package/dist/setup-hono.service.js.map +1 -1
  276. package/dist/shield-api-key-hono.strategy.js +1 -1
  277. package/dist/shield-api-key.strategy.d.ts +1 -1
  278. package/dist/shield-api-key.strategy.d.ts.map +1 -1
  279. package/dist/shield-api-key.strategy.js +5 -4
  280. package/dist/shield-api-key.strategy.js.map +1 -1
  281. package/dist/shield-auth.strategy.d.ts +3 -2
  282. package/dist/shield-auth.strategy.d.ts.map +1 -1
  283. package/dist/shield-auth.strategy.js +10 -3
  284. package/dist/shield-auth.strategy.js.map +1 -1
  285. package/dist/shield-basic-auth-hono.strategy.d.ts +1 -0
  286. package/dist/shield-basic-auth-hono.strategy.d.ts.map +1 -1
  287. package/dist/shield-basic-auth-hono.strategy.js +8 -1
  288. package/dist/shield-basic-auth-hono.strategy.js.map +1 -1
  289. package/dist/shield-basic-auth.strategy.d.ts +1 -0
  290. package/dist/shield-basic-auth.strategy.d.ts.map +1 -1
  291. package/dist/shield-basic-auth.strategy.js +11 -3
  292. package/dist/shield-basic-auth.strategy.js.map +1 -1
  293. package/dist/shield-csrf.strategy.js +2 -2
  294. package/dist/shield-csrf.strategy.js.map +1 -1
  295. package/dist/shield-hcaptcha-hono-local.strategy.d.ts.map +1 -1
  296. package/dist/shield-hcaptcha-hono-local.strategy.js +3 -1
  297. package/dist/shield-hcaptcha-hono-local.strategy.js.map +1 -1
  298. package/dist/shield-hcaptcha.strategy.d.ts +2 -2
  299. package/dist/shield-hcaptcha.strategy.d.ts.map +1 -1
  300. package/dist/shield-hcaptcha.strategy.js +7 -2
  301. package/dist/shield-hcaptcha.strategy.js.map +1 -1
  302. package/dist/shield-ip-blacklist.strategy.d.ts +2 -2
  303. package/dist/shield-ip-blacklist.strategy.d.ts.map +1 -1
  304. package/dist/shield-ip-blacklist.strategy.js +2 -2
  305. package/dist/shield-ip-blacklist.strategy.js.map +1 -1
  306. package/dist/shield-ip-whitelist.strategy.d.ts +2 -2
  307. package/dist/shield-ip-whitelist.strategy.d.ts.map +1 -1
  308. package/dist/shield-ip-whitelist.strategy.js +1 -1
  309. package/dist/shield-ip-whitelist.strategy.js.map +1 -1
  310. package/dist/shield-maintenance-hono.strategy.d.ts.map +1 -1
  311. package/dist/shield-maintenance-hono.strategy.js +6 -4
  312. package/dist/shield-maintenance-hono.strategy.js.map +1 -1
  313. package/dist/shield-maintenance.strategy.d.ts +23 -7
  314. package/dist/shield-maintenance.strategy.d.ts.map +1 -1
  315. package/dist/shield-maintenance.strategy.js +23 -4
  316. package/dist/shield-maintenance.strategy.js.map +1 -1
  317. package/dist/shield-rate-limit.strategy.d.ts +1 -1
  318. package/dist/shield-rate-limit.strategy.d.ts.map +1 -1
  319. package/dist/shield-rate-limit.strategy.js +1 -1
  320. package/dist/shield-rate-limit.strategy.js.map +1 -1
  321. package/dist/shield-recaptcha.strategy.d.ts +2 -2
  322. package/dist/shield-recaptcha.strategy.d.ts.map +1 -1
  323. package/dist/shield-recaptcha.strategy.js +11 -7
  324. package/dist/shield-recaptcha.strategy.js.map +1 -1
  325. package/dist/shield-timeout-hono.strategy.js +1 -1
  326. package/dist/shield-webhook-hono.strategy.js +1 -1
  327. package/dist/shield-webhook.strategy.d.ts +2 -2
  328. package/dist/shield-webhook.strategy.d.ts.map +1 -1
  329. package/dist/shield-webhook.strategy.js.map +1 -1
  330. package/dist/simulated-error.middleware.d.ts +3 -0
  331. package/dist/simulated-error.middleware.d.ts.map +1 -1
  332. package/dist/simulated-error.middleware.js +2 -1
  333. package/dist/simulated-error.middleware.js.map +1 -1
  334. package/dist/sitemap-entry.vo.js +1 -1
  335. package/dist/sitemap-priority.vo.d.ts +1 -1
  336. package/dist/sitemap-priority.vo.d.ts.map +1 -1
  337. package/dist/sitemap-priority.vo.js +1 -1
  338. package/dist/sitemap-priority.vo.js.map +1 -1
  339. package/dist/slower-hono.middleware.d.ts +2 -6
  340. package/dist/slower-hono.middleware.d.ts.map +1 -1
  341. package/dist/slower-hono.middleware.js.map +1 -1
  342. package/dist/slower.middleware.d.ts +2 -3
  343. package/dist/slower.middleware.d.ts.map +1 -1
  344. package/dist/slower.middleware.js.map +1 -1
  345. package/dist/sms-with-logger.adapter.js +1 -1
  346. package/dist/sms-with-logger.adapter.js.map +1 -1
  347. package/dist/sse-hono.handler.d.ts.map +1 -1
  348. package/dist/sse-hono.handler.js +4 -2
  349. package/dist/sse-hono.handler.js.map +1 -1
  350. package/dist/sse-registry-collecting.adapter.d.ts +1 -1
  351. package/dist/sse-registry-collecting.adapter.d.ts.map +1 -1
  352. package/dist/sse-registry-collecting.adapter.js +3 -1
  353. package/dist/sse-registry-collecting.adapter.js.map +1 -1
  354. package/dist/sse-registry-noop.adapter.d.ts +1 -1
  355. package/dist/sse-registry-noop.adapter.d.ts.map +1 -1
  356. package/dist/sse-registry-noop.adapter.js +3 -1
  357. package/dist/sse-registry-noop.adapter.js.map +1 -1
  358. package/dist/sse-registry-with-limit.adapter.d.ts +1 -1
  359. package/dist/sse-registry-with-limit.adapter.d.ts.map +1 -1
  360. package/dist/sse-registry-with-limit.adapter.js +2 -2
  361. package/dist/sse-registry-with-limit.adapter.js.map +1 -1
  362. package/dist/sse-registry-with-logger.adapter.d.ts +1 -1
  363. package/dist/sse-registry-with-logger.adapter.d.ts.map +1 -1
  364. package/dist/sse-registry-with-logger.adapter.js +4 -3
  365. package/dist/sse-registry-with-logger.adapter.js.map +1 -1
  366. package/dist/sse-registry.adapter.d.ts +1 -1
  367. package/dist/sse-registry.adapter.d.ts.map +1 -1
  368. package/dist/sse-registry.adapter.js +7 -1
  369. package/dist/sse-registry.adapter.js.map +1 -1
  370. package/dist/sse-registry.port.d.ts +1 -1
  371. package/dist/sse-registry.port.d.ts.map +1 -1
  372. package/dist/ssr-bun.service.js +1 -1
  373. package/dist/ssr-bun.service.js.map +1 -1
  374. package/dist/ssr.service.d.ts +1 -1
  375. package/dist/ssr.service.d.ts.map +1 -1
  376. package/dist/ssr.service.js +1 -1
  377. package/dist/ssr.service.js.map +1 -1
  378. package/dist/standard-schema-validator.service.js +1 -1
  379. package/dist/standard-schema-validator.service.js.map +1 -1
  380. package/dist/static-config.adapter.js +1 -1
  381. package/dist/static-config.adapter.js.map +1 -1
  382. package/dist/static-files-hono.service.d.ts +1 -1
  383. package/dist/static-files-hono.service.js +2 -2
  384. package/dist/static-files-hono.service.js.map +1 -1
  385. package/dist/subject-application-resolver.vo.d.ts +2 -2
  386. package/dist/subject-application-resolver.vo.d.ts.map +1 -1
  387. package/dist/subject-application-resolver.vo.js +1 -1
  388. package/dist/subject-application-resolver.vo.js.map +1 -1
  389. package/dist/subject-request-resolver.vo.d.ts +2 -2
  390. package/dist/subject-request-resolver.vo.d.ts.map +1 -1
  391. package/dist/subject-request-resolver.vo.js +1 -1
  392. package/dist/subject-request-resolver.vo.js.map +1 -1
  393. package/dist/subject-segment-application.strategy.d.ts +1 -0
  394. package/dist/subject-segment-application.strategy.d.ts.map +1 -1
  395. package/dist/subject-segment-application.strategy.js +1 -1
  396. package/dist/subject-segment-application.strategy.js.map +1 -1
  397. package/dist/subject-segment-build.strategy.d.ts +1 -0
  398. package/dist/subject-segment-build.strategy.d.ts.map +1 -1
  399. package/dist/subject-segment-build.strategy.js +1 -0
  400. package/dist/subject-segment-build.strategy.js.map +1 -1
  401. package/dist/subject-segment-cookie.strategy.d.ts +1 -0
  402. package/dist/subject-segment-cookie.strategy.d.ts.map +1 -1
  403. package/dist/subject-segment-cookie.strategy.js +3 -0
  404. package/dist/subject-segment-cookie.strategy.js.map +1 -1
  405. package/dist/subject-segment-env.strategy.d.ts +1 -0
  406. package/dist/subject-segment-env.strategy.d.ts.map +1 -1
  407. package/dist/subject-segment-env.strategy.js +1 -0
  408. package/dist/subject-segment-env.strategy.js.map +1 -1
  409. package/dist/subject-segment-fixed.strategy.d.ts +1 -0
  410. package/dist/subject-segment-fixed.strategy.d.ts.map +1 -1
  411. package/dist/subject-segment-fixed.strategy.js +1 -0
  412. package/dist/subject-segment-fixed.strategy.js.map +1 -1
  413. package/dist/subject-segment-header.strategy.d.ts +1 -0
  414. package/dist/subject-segment-header.strategy.d.ts.map +1 -1
  415. package/dist/subject-segment-header.strategy.js +3 -0
  416. package/dist/subject-segment-header.strategy.js.map +1 -1
  417. package/dist/subject-segment-ip.strategy.d.ts +1 -0
  418. package/dist/subject-segment-ip.strategy.d.ts.map +1 -1
  419. package/dist/subject-segment-ip.strategy.js +1 -0
  420. package/dist/subject-segment-ip.strategy.js.map +1 -1
  421. package/dist/subject-segment-method.strategy.d.ts +7 -0
  422. package/dist/subject-segment-method.strategy.d.ts.map +1 -0
  423. package/dist/subject-segment-method.strategy.js +7 -0
  424. package/dist/subject-segment-method.strategy.js.map +1 -0
  425. package/dist/subject-segment-param.strategy.d.ts +1 -0
  426. package/dist/subject-segment-param.strategy.d.ts.map +1 -1
  427. package/dist/subject-segment-param.strategy.js +3 -0
  428. package/dist/subject-segment-param.strategy.js.map +1 -1
  429. package/dist/subject-segment-path.strategy.d.ts +1 -0
  430. package/dist/subject-segment-path.strategy.d.ts.map +1 -1
  431. package/dist/subject-segment-path.strategy.js +1 -0
  432. package/dist/subject-segment-path.strategy.js.map +1 -1
  433. package/dist/subject-segment-query.strategy.d.ts +3 -2
  434. package/dist/subject-segment-query.strategy.d.ts.map +1 -1
  435. package/dist/subject-segment-query.strategy.js +5 -5
  436. package/dist/subject-segment-query.strategy.js.map +1 -1
  437. package/dist/subject-segment-request.strategy.d.ts +5 -3
  438. package/dist/subject-segment-request.strategy.d.ts.map +1 -1
  439. package/dist/subject-segment-request.strategy.js +1 -1
  440. package/dist/subject-segment-request.strategy.js.map +1 -1
  441. package/dist/subject-segment-user.strategy.d.ts +1 -0
  442. package/dist/subject-segment-user.strategy.d.ts.map +1 -1
  443. package/dist/subject-segment-user.strategy.js +1 -0
  444. package/dist/subject-segment-user.strategy.js.map +1 -1
  445. package/dist/time-zone-offset-hono.middleware.d.ts +3 -1
  446. package/dist/time-zone-offset-hono.middleware.d.ts.map +1 -1
  447. package/dist/time-zone-offset.middleware.d.ts +2 -2
  448. package/dist/time-zone-offset.middleware.d.ts.map +1 -1
  449. package/dist/time-zone-offset.middleware.js +2 -0
  450. package/dist/time-zone-offset.middleware.js.map +1 -1
  451. package/dist/timekeeper-google.adapter.d.ts +1 -1
  452. package/dist/timekeeper-google.adapter.d.ts.map +1 -1
  453. package/dist/timekeeper-google.adapter.js.map +1 -1
  454. package/dist/timing-hono.middleware.d.ts +2 -6
  455. package/dist/timing-hono.middleware.d.ts.map +1 -1
  456. package/dist/timing-hono.middleware.js +1 -1
  457. package/dist/timing-hono.middleware.js.map +1 -1
  458. package/dist/timing.middleware.d.ts +5 -5
  459. package/dist/timing.middleware.d.ts.map +1 -1
  460. package/dist/timing.middleware.js +10 -2
  461. package/dist/timing.middleware.js.map +1 -1
  462. package/dist/trailing-slash-hono.middleware.d.ts +1 -1
  463. package/dist/trailing-slash-hono.middleware.js +2 -2
  464. package/dist/trailing-slash-hono.middleware.js.map +1 -1
  465. package/dist/trailing-slash.middleware.d.ts +2 -0
  466. package/dist/trailing-slash.middleware.d.ts.map +1 -1
  467. package/dist/trailing-slash.middleware.js +6 -1
  468. package/dist/trailing-slash.middleware.js.map +1 -1
  469. package/dist/translations-provider-json.adapter.d.ts +1 -1
  470. package/dist/translations-provider-json.adapter.d.ts.map +1 -1
  471. package/dist/translations-provider-json.adapter.js +2 -6
  472. package/dist/translations-provider-json.adapter.js.map +1 -1
  473. package/dist/translations-provider.port.d.ts +5 -0
  474. package/dist/translations-provider.port.d.ts.map +1 -1
  475. package/dist/translations-provider.port.js +3 -1
  476. package/dist/translations-provider.port.js.map +1 -1
  477. package/dist/weak-etag-extractor-header.strategy.d.ts +1 -0
  478. package/dist/weak-etag-extractor-header.strategy.d.ts.map +1 -1
  479. package/dist/weak-etag-extractor-header.strategy.js +3 -0
  480. package/dist/weak-etag-extractor-header.strategy.js.map +1 -1
  481. package/dist/weak-etag-extractor-hono.middleware.d.ts +3 -1
  482. package/dist/weak-etag-extractor-hono.middleware.d.ts.map +1 -1
  483. package/dist/weak-etag-extractor-param.strategy.d.ts.map +1 -1
  484. package/dist/weak-etag-extractor-param.strategy.js +2 -0
  485. package/dist/weak-etag-extractor-param.strategy.js.map +1 -1
  486. package/dist/weak-etag-extractor.strategy.d.ts +2 -2
  487. package/dist/weak-etag-extractor.strategy.d.ts.map +1 -1
  488. package/dist/webhook-signature-extractor.strategy.d.ts +2 -2
  489. package/dist/webhook-signature-extractor.strategy.d.ts.map +1 -1
  490. package/dist/woodchopper-dispatcher-async.strategy.d.ts +0 -3
  491. package/dist/woodchopper-dispatcher-async.strategy.d.ts.map +1 -1
  492. package/dist/woodchopper-dispatcher-async.strategy.js +7 -6
  493. package/dist/woodchopper-dispatcher-async.strategy.js.map +1 -1
  494. package/package.json +12 -17
  495. package/readme.md +4 -3
  496. package/src/ab-assignment-composite.strategy.ts +7 -4
  497. package/src/ab-assignment-cookie.strategy.ts +6 -3
  498. package/src/ab-assignment-fixed.strategy.ts +1 -2
  499. package/src/ab-assignment-hash.strategy.ts +1 -1
  500. package/src/ab-assignment-header.strategy.ts +6 -3
  501. package/src/ab-assignment-query.strategy.ts +6 -3
  502. package/src/ab-assignment.strategy.ts +1 -2
  503. package/src/ab-hono-noop.middleware.ts +2 -1
  504. package/src/ab-hono.middleware.ts +7 -6
  505. package/src/ab.middleware.ts +2 -6
  506. package/src/alert-channel-composite.adapter.ts +8 -1
  507. package/src/alert-channel-with-logger.adapter.ts +1 -1
  508. package/src/antivirus-clamav.adapter.ts +5 -4
  509. package/src/antivirus-with-logger.adapter.ts +2 -2
  510. package/src/api-version-hono.middleware.ts +7 -15
  511. package/src/api-version.middleware.ts +2 -2
  512. package/src/auth-session-reader-noop.adapter.ts +2 -2
  513. package/src/better-auth-logger.service.ts +5 -0
  514. package/src/cache-file.service.ts +4 -2
  515. package/src/cache-repository-node-cache.adapter.ts +3 -1
  516. package/src/cache-response-hono.middleware.ts +6 -6
  517. package/src/cache-response.middleware.ts +4 -4
  518. package/src/certificate-inspector-tls.adapter.ts +21 -19
  519. package/src/correlation-hono.middleware.ts +8 -8
  520. package/src/correlation.middleware.ts +2 -2
  521. package/src/cron-scheduler.adapter.ts +4 -2
  522. package/src/cron-task-handler-with-logger.strategy.ts +8 -8
  523. package/src/csv-stringifier.adapter.ts +2 -2
  524. package/src/disk-space-checker-fs.adapter.ts +12 -0
  525. package/src/dynamic-import.service.ts +2 -2
  526. package/src/environment-loader-process-safe.adapter.ts +4 -1
  527. package/src/environment-loader.port.ts +1 -1
  528. package/src/etag-extractor-header.strategy.ts +2 -0
  529. package/src/etag-extractor-hono.middleware.ts +1 -1
  530. package/src/etag-extractor-param.strategy.ts +2 -0
  531. package/src/etag-extractor.strategy.ts +2 -2
  532. package/src/file-inspection.adapter.ts +4 -4
  533. package/src/file-reader-json-forgiving.adapter.ts +1 -1
  534. package/src/graceful-shutdown.service.ts +3 -3
  535. package/src/hash.vo.ts +1 -1
  536. package/src/hcaptcha.service.ts +3 -3
  537. package/src/http-logger-hono.middleware.ts +6 -6
  538. package/src/http-logger.middleware.ts +2 -2
  539. package/src/image-blur-noop.adapter.ts +1 -1
  540. package/src/image-blur.adapter.ts +2 -6
  541. package/src/image-blur.port.ts +1 -7
  542. package/src/in-flight-requests-hono.middleware.ts +1 -0
  543. package/src/in-flight-requests-tracker.service.ts +2 -2
  544. package/src/index.ts +4 -3
  545. package/src/instrumentation.service.ts +5 -2
  546. package/src/job-queue-sqlite-store.service.ts +1 -0
  547. package/src/job-queue-with-logger.adapter.ts +2 -2
  548. package/src/language-detector-cookie.strategy.ts +1 -1
  549. package/src/language-detector-header.strategy.ts +13 -1
  550. package/src/language-detector-hono.middleware.ts +1 -1
  551. package/src/language-detector-query.strategy.ts +1 -1
  552. package/src/language-detector.middleware.ts +2 -2
  553. package/src/language-detector.strategy.ts +2 -2
  554. package/src/liveness-hono.handler.ts +5 -1
  555. package/src/liveness.handler.ts +2 -2
  556. package/src/mailer-content-html.vo.ts +1 -2
  557. package/src/mailer-smtp.adapter.ts +1 -0
  558. package/src/mailer-with-logger.adapter.ts +2 -2
  559. package/src/markdown-generator.adapter.ts +1 -1
  560. package/src/memory-consumption.service.ts +0 -4
  561. package/src/nonce-provider-crypto.adapter.ts +1 -1
  562. package/src/nonce-provider-noop.adapter.ts +1 -1
  563. package/src/nonce-value.vo.ts +2 -2
  564. package/src/pdf-generator-with-logger.adapter.ts +1 -1
  565. package/src/prerequisite-verifier-memory.adapter.ts +1 -1
  566. package/src/prerequisite-verifier-translations.adapter.ts +7 -13
  567. package/src/prerequisite-verifier-with-logger.adapter.ts +1 -1
  568. package/src/randomness.strategy.ts +1 -0
  569. package/src/reactive-config-noop.adapter.ts +6 -5
  570. package/src/reactive-config-with-cache.adapter.ts +1 -1
  571. package/src/reactive-config-with-fallback.adapter.ts +8 -4
  572. package/src/reactive-config-with-logger.adapter.ts +50 -0
  573. package/src/readiness-hono.handler.ts +2 -3
  574. package/src/readiness.handler.ts +13 -2
  575. package/src/redactor-metadata-compact-array.strategy.ts +1 -0
  576. package/src/redactor-metadata-compact-object.strategy.ts +1 -0
  577. package/src/redactor-url-query.strategy.ts +33 -0
  578. package/src/remote-file-storage-disk.adapter.ts +5 -5
  579. package/src/request-context-hono.adapter.ts +2 -0
  580. package/src/request-context.port.ts +11 -1
  581. package/src/sealer-aes-gcm.adapter.ts +6 -1
  582. package/src/secure-key-generator-crypto.adapter.ts +9 -1
  583. package/src/security-rule-bait-routes.strategy.ts +1 -1
  584. package/src/security-rule-honey-pot-field.strategy.ts +5 -4
  585. package/src/security-rule.strategy.ts +2 -4
  586. package/src/semaphore.service.ts +12 -9
  587. package/src/setup-hono.service.ts +1 -1
  588. package/src/shield-api-key-hono.strategy.ts +1 -1
  589. package/src/shield-api-key.strategy.ts +5 -5
  590. package/src/shield-auth.strategy.ts +10 -5
  591. package/src/shield-basic-auth-hono.strategy.ts +8 -2
  592. package/src/shield-basic-auth.strategy.ts +17 -4
  593. package/src/shield-csrf.strategy.ts +2 -2
  594. package/src/shield-hcaptcha-hono-local.strategy.ts +4 -2
  595. package/src/shield-hcaptcha.strategy.ts +11 -4
  596. package/src/shield-ip-blacklist.strategy.ts +4 -4
  597. package/src/shield-ip-whitelist.strategy.ts +3 -3
  598. package/src/shield-maintenance-hono.strategy.ts +7 -4
  599. package/src/shield-maintenance.strategy.ts +42 -6
  600. package/src/shield-rate-limit.strategy.ts +2 -2
  601. package/src/shield-recaptcha.strategy.ts +15 -9
  602. package/src/shield-timeout-hono.strategy.ts +1 -1
  603. package/src/shield-webhook-hono.strategy.ts +1 -1
  604. package/src/shield-webhook.strategy.ts +2 -2
  605. package/src/simulated-error.middleware.ts +3 -1
  606. package/src/sitemap-entry.vo.ts +1 -1
  607. package/src/sitemap-priority.vo.ts +1 -0
  608. package/src/slower-hono.middleware.ts +2 -5
  609. package/src/slower.middleware.ts +2 -2
  610. package/src/sms-with-logger.adapter.ts +1 -1
  611. package/src/sse-hono.handler.ts +4 -2
  612. package/src/sse-registry-collecting.adapter.ts +3 -1
  613. package/src/sse-registry-noop.adapter.ts +3 -1
  614. package/src/sse-registry-with-limit.adapter.ts +3 -3
  615. package/src/sse-registry-with-logger.adapter.ts +6 -4
  616. package/src/sse-registry.adapter.ts +10 -2
  617. package/src/sse-registry.port.ts +1 -1
  618. package/src/ssr-bun.service.ts +1 -1
  619. package/src/ssr.service.ts +1 -1
  620. package/src/standard-schema-validator.service.ts +1 -1
  621. package/src/static-config.adapter.ts +1 -1
  622. package/src/static-files-hono.service.ts +2 -2
  623. package/src/subject-application-resolver.vo.ts +3 -3
  624. package/src/subject-request-resolver.vo.ts +6 -3
  625. package/src/subject-segment-application.strategy.ts +2 -1
  626. package/src/subject-segment-build.strategy.ts +2 -0
  627. package/src/subject-segment-cookie.strategy.ts +4 -0
  628. package/src/subject-segment-env.strategy.ts +2 -0
  629. package/src/subject-segment-fixed.strategy.ts +2 -0
  630. package/src/subject-segment-header.strategy.ts +4 -0
  631. package/src/subject-segment-ip.strategy.ts +2 -0
  632. package/src/subject-segment-method.strategy.ts +10 -0
  633. package/src/subject-segment-param.strategy.ts +4 -0
  634. package/src/subject-segment-path.strategy.ts +2 -0
  635. package/src/subject-segment-query.strategy.ts +7 -7
  636. package/src/subject-segment-request.strategy.ts +8 -4
  637. package/src/subject-segment-user.strategy.ts +2 -0
  638. package/src/time-zone-offset-hono.middleware.ts +1 -1
  639. package/src/time-zone-offset.middleware.ts +4 -2
  640. package/src/timekeeper-google.adapter.ts +1 -1
  641. package/src/timing-hono.middleware.ts +3 -6
  642. package/src/timing.middleware.ts +15 -6
  643. package/src/trailing-slash-hono.middleware.ts +2 -2
  644. package/src/trailing-slash.middleware.ts +14 -2
  645. package/src/translations-provider-json.adapter.ts +6 -6
  646. package/src/translations-provider.port.ts +5 -0
  647. package/src/weak-etag-extractor-header.strategy.ts +4 -0
  648. package/src/weak-etag-extractor-hono.middleware.ts +1 -1
  649. package/src/weak-etag-extractor-param.strategy.ts +2 -0
  650. package/src/weak-etag-extractor.strategy.ts +2 -2
  651. package/src/webhook-signature-extractor.strategy.ts +2 -2
  652. package/src/woodchopper-dispatcher-async.strategy.ts +6 -11
  653. package/dist/cron-scheduler-croner.adapter.d.ts +0 -15
  654. package/dist/cron-scheduler-croner.adapter.d.ts.map +0 -1
  655. package/dist/cron-scheduler-croner.adapter.js +0 -23
  656. package/dist/cron-scheduler-croner.adapter.js.map +0 -1
  657. package/dist/disk-space-checker-shell.adapter.d.ts.map +0 -1
  658. package/dist/disk-space-checker-shell.adapter.js +0 -14
  659. package/dist/disk-space-checker-shell.adapter.js.map +0 -1
  660. package/dist/file-reader-raw-with-cache.adapter.d.ts +0 -20
  661. package/dist/file-reader-raw-with-cache.adapter.d.ts.map +0 -1
  662. package/dist/file-reader-raw-with-cache.adapter.js +0 -20
  663. package/dist/file-reader-raw-with-cache.adapter.js.map +0 -1
  664. package/src/cron-scheduler-croner.adapter.ts +0 -34
  665. package/src/disk-space-checker-shell.adapter.ts +0 -18
  666. package/src/file-reader-raw-with-cache.adapter.ts +0 -31
@@ -19,7 +19,9 @@ export class CacheRepositoryNodeCacheAdapter implements CacheRepositoryPort {
19
19
  }
20
20
 
21
21
  async set<T>(subject: Hash, value: T): Promise<void> {
22
- this.store.set(subject.get(), value);
22
+ try {
23
+ this.store.set(subject.get(), value);
24
+ } catch {}
23
25
  }
24
26
 
25
27
  async delete(subject: Hash): Promise<void> {
@@ -1,17 +1,17 @@
1
1
  import { createMiddleware } from "hono/factory";
2
2
  import type { ContentfulStatusCode } from "hono/utils/http-status";
3
- import type { CacheResolverStrategy } from "./cache-resolver.strategy";
4
- import type { CacheResponseConfig } from "./cache-response.middleware";
5
- import { CacheResponseMiddleware } from "./cache-response.middleware";
3
+ import {
4
+ CacheResponseMiddleware,
5
+ type CacheResponseMiddlewareConfig,
6
+ type CacheResponseMiddlewareDependencies,
7
+ } from "./cache-response.middleware";
6
8
  import type { MiddlewareHonoPort } from "./middleware-hono.port";
7
9
  import { RequestContextHonoAdapter } from "./request-context-hono.adapter";
8
10
 
9
- type Dependencies = { CacheResolver: CacheResolverStrategy };
10
-
11
11
  export class CacheResponseHonoMiddleware implements MiddlewareHonoPort {
12
12
  private readonly middleware: CacheResponseMiddleware;
13
13
 
14
- constructor(config: CacheResponseConfig, deps: Dependencies) {
14
+ constructor(config: CacheResponseMiddlewareConfig, deps: CacheResponseMiddlewareDependencies) {
15
15
  this.middleware = new CacheResponseMiddleware(config, deps);
16
16
  }
17
17
 
@@ -2,9 +2,9 @@ import type { CacheResolverStrategy, CacheSourceEnum } from "./cache-resolver.st
2
2
  import type { RequestContext } from "./request-context.port";
3
3
  import type { SubjectRequestResolver } from "./subject-request-resolver.vo";
4
4
 
5
- type Dependencies = { CacheResolver: CacheResolverStrategy };
5
+ export type CacheResponseMiddlewareDependencies = { CacheResolver: CacheResolverStrategy };
6
6
 
7
- export type CacheResponseConfig = { enabled: boolean; resolver: SubjectRequestResolver };
7
+ export type CacheResponseMiddlewareConfig = { enabled: boolean; resolver: SubjectRequestResolver };
8
8
 
9
9
  export type CachedResponse<T = string> = {
10
10
  body: T;
@@ -21,8 +21,8 @@ export class CacheResponseMiddleware {
21
21
  static readonly CACHE_HIT_HEADER = "Cache-Hit";
22
22
 
23
23
  constructor(
24
- private readonly config: CacheResponseConfig,
25
- private readonly deps: Dependencies,
24
+ private readonly config: CacheResponseMiddlewareConfig,
25
+ private readonly deps: CacheResponseMiddlewareDependencies,
26
26
  ) {}
27
27
 
28
28
  async evaluate<T = string>(
@@ -11,35 +11,37 @@ export class CertificateInspectorTLSAdapter implements CertificateInspectorPort
11
11
 
12
12
  async inspect(hostname: HostnameType): Promise<CertificateInspection> {
13
13
  return new Promise((resolve) => {
14
- // Stryker disable all
15
- const cleanup = (socket: tls.TLSSocket) => socket.destroy();
16
- // Stryker restore all
14
+ const settle = (result: CertificateInspection) => {
15
+ // Stryker disable all
16
+ socket.destroy();
17
+ // Stryker restore all
18
+ resolve(result);
19
+ };
17
20
 
18
21
  const socket = tls.connect(
19
22
  { host: hostname, port: 443, servername: hostname, rejectUnauthorized: false },
20
23
  () => {
21
- const certificate = socket.getPeerCertificate();
24
+ try {
25
+ const certificate = socket.getPeerCertificate();
22
26
 
23
- if (!certificate?.valid_to) {
24
- cleanup(socket);
25
- return resolve({ success: false });
26
- }
27
- // biome-ignore lint: lint/style/noRestrictedGlobals
28
- const remaining = tools.Timestamp.fromNumber(new Date(certificate.valid_to).getTime()).difference(
29
- this.deps.Clock.now(),
30
- );
27
+ // Stryker disable next-line ConditionalExpression
28
+ if (!certificate.valid_to) return settle({ success: false });
31
29
 
32
- cleanup(socket);
33
- resolve({ success: true, remaining });
30
+ // biome-ignore lint: lint/style/noRestrictedGlobals
31
+ const remaining = tools.Timestamp.fromNumber(new Date(certificate.valid_to).getTime()).difference(
32
+ this.deps.Clock.now(),
33
+ );
34
+
35
+ settle({ success: true, remaining });
36
+ } catch {
37
+ settle({ success: false });
38
+ }
34
39
  },
35
40
  );
36
41
 
37
42
  // Stryker disable all
38
- socket.once("error", () => {
39
- // Stryker restore all
40
- cleanup(socket);
41
- resolve({ success: false });
42
- });
43
+ socket.once("error", () => settle({ success: false }));
44
+ // Stryker restore all
43
45
  });
44
46
  }
45
47
  }
@@ -1,32 +1,32 @@
1
1
  import { createMiddleware } from "hono/factory";
2
- import { CorrelationMiddleware } from "./correlation.middleware";
2
+ import { CorrelationMiddleware, type CorrelationMiddlewareDependencies } from "./correlation.middleware";
3
3
  import { CorrelationStorage } from "./correlation-storage.service";
4
- import type { IdProviderPort } from "./id-provider.port";
5
4
  import type { MiddlewareHonoPort } from "./middleware-hono.port";
6
5
  import { RequestContextHonoAdapter } from "./request-context-hono.adapter";
7
6
  import type { UUIDType } from "./uuid.vo";
8
7
 
9
- type Dependencies = { IdProvider: IdProviderPort };
10
-
11
8
  export type CorrelationVariables = { correlationId: UUIDType };
12
9
 
13
10
  export class CorrelationHonoMiddleware implements MiddlewareHonoPort {
14
11
  private readonly correlationId: CorrelationMiddleware;
15
12
 
16
- constructor(deps: Dependencies) {
13
+ constructor(deps: CorrelationMiddlewareDependencies) {
17
14
  this.correlationId = new CorrelationMiddleware(deps);
18
15
  }
19
16
 
20
17
  handle() {
21
- return createMiddleware(async (c, next) => {
18
+ return createMiddleware<{ Variables: CorrelationVariables }>(async (c, next) => {
22
19
  const context = new RequestContextHonoAdapter(c);
23
20
 
24
21
  const result = this.correlationId.evaluate(context);
25
22
 
26
23
  c.set("correlationId", result);
27
- c.header(CorrelationMiddleware.HEADER_NAME, result);
28
24
 
29
- return CorrelationStorage.run(result, next);
25
+ return CorrelationStorage.run(result, async () => {
26
+ await next();
27
+
28
+ c.header(CorrelationMiddleware.HEADER_NAME, result);
29
+ });
30
30
  });
31
31
  }
32
32
  }
@@ -3,12 +3,12 @@ import { CorrelationId, type CorrelationIdType } from "./correlation-id.vo";
3
3
  import type { IdProviderPort } from "./id-provider.port";
4
4
  import type { HasRequestHeader } from "./request-context.port";
5
5
 
6
- type Dependencies = { IdProvider: IdProviderPort };
6
+ export type CorrelationMiddlewareDependencies = { IdProvider: IdProviderPort };
7
7
 
8
8
  export class CorrelationMiddleware {
9
9
  static readonly HEADER_NAME = "correlation-id";
10
10
 
11
- constructor(private readonly deps: Dependencies) {}
11
+ constructor(private readonly deps: CorrelationMiddlewareDependencies) {}
12
12
 
13
13
  evaluate(context: HasRequestHeader): CorrelationIdType {
14
14
  const incoming = context.request.header(CorrelationMiddleware.HEADER_NAME);
@@ -2,11 +2,13 @@ import type { CronSchedulerPort } from "./cron-scheduler.port";
2
2
  import type { CronTask } from "./cron-task.vo";
3
3
 
4
4
  export class CronSchedulerAdapter implements CronSchedulerPort {
5
+ private readonly tasks: Array<Bun.CronJob> = [];
6
+
5
7
  schedule(task: CronTask): void {
6
- Bun.cron(task.cron, task.handler);
8
+ this.tasks.push(Bun.cron(task.cron, task.handler));
7
9
  }
8
10
 
9
11
  async verify(): Promise<boolean> {
10
- return true;
12
+ return this.tasks.length > 0;
11
13
  }
12
14
  }
@@ -24,13 +24,6 @@ export class CronTaskHandlerWithLoggerStrategy implements CronTaskHandlerStrateg
24
24
  this.deps.Logger.info({ message: `${task.label} start`, correlationId, ...this.base });
25
25
 
26
26
  await CorrelationStorage.run(correlationId, task.handler);
27
-
28
- this.deps.Logger.info({
29
- message: `${task.label} success`,
30
- correlationId,
31
- metadata: { duration: duration.stop() },
32
- ...this.base,
33
- });
34
27
  } catch (error) {
35
28
  this.deps.Logger.error({
36
29
  message: `${task.label} error`,
@@ -40,8 +33,15 @@ export class CronTaskHandlerWithLoggerStrategy implements CronTaskHandlerStrateg
40
33
  ...this.base,
41
34
  });
42
35
 
43
- throw error;
36
+ return;
44
37
  }
38
+
39
+ this.deps.Logger.info({
40
+ message: `${task.label} success`,
41
+ correlationId,
42
+ metadata: { duration: duration.stop() },
43
+ ...this.base,
44
+ });
45
45
  },
46
46
  };
47
47
  }
@@ -23,8 +23,8 @@ export class CsvStringifierAdapter implements CsvStringifierPort {
23
23
  return new CsvStringifierAdapter(dependency);
24
24
  }
25
25
 
26
- async process(columns: ReadonlyArray<CsvColumnType>, data: Array<CsvRowType>): Promise<string> {
26
+ async process(columns: ReadonlyArray<CsvColumnType>, data: ReadonlyArray<CsvRowType>): Promise<string> {
27
27
  // TODO: Potential formula injection
28
- return text(this.csv.stringify(data, { header: true, columns }));
28
+ return text(this.csv.stringify([...data], { header: true, columns }));
29
29
  }
30
30
  }
@@ -0,0 +1,12 @@
1
+ /* cSpell:disable */
2
+ import fs from "node:fs/promises";
3
+ import * as tools from "@bgord/tools";
4
+ import type { DiskSpaceCheckerPort } from "./disk-space-checker.port";
5
+
6
+ export class DiskSpaceCheckerFsAdapter implements DiskSpaceCheckerPort {
7
+ async get(root: tools.DirectoryPathAbsoluteType): Promise<tools.Size> {
8
+ const stats = await fs.statfs(root);
9
+
10
+ return tools.Size.fromBytes(stats.bavail * stats.bsize);
11
+ }
12
+ }
@@ -11,8 +11,8 @@ export class DynamicImport<T> {
11
11
  async resolve(): Promise<T> {
12
12
  try {
13
13
  return await this.import();
14
- } catch {
15
- throw new Error(this.error);
14
+ } catch (error) {
15
+ throw new Error(this.error, { cause: error });
16
16
  }
17
17
  }
18
18
 
@@ -26,7 +26,10 @@ export class EnvironmentLoaderProcessSafeAdapter<T extends object> implements En
26
26
  StandardSchemaValidator.validate(this.config.EnvironmentSchema, this.env),
27
27
  );
28
28
 
29
- for (const key of Object.keys(parsed)) delete process.env[key];
29
+ for (const key of Object.keys(parsed)) {
30
+ delete this.env[key];
31
+ delete process.env[key];
32
+ }
30
33
 
31
34
  return Object.freeze({ ...parsed, type: this.config.type });
32
35
  }
@@ -1,5 +1,5 @@
1
1
  import type { StandardSchemaV1 } from "@standard-schema/spec";
2
- import type { NodeEnvironmentEnum } from "../src/node-env.vo";
2
+ import type { NodeEnvironmentEnum } from "./node-env.vo";
3
3
 
4
4
  export type EnvironmentLoaderConfig<T extends object> = {
5
5
  type: NodeEnvironmentEnum;
@@ -7,6 +7,8 @@ export class ETagExtractorHeaderStrategy implements ETagExtractorStrategy {
7
7
  try {
8
8
  const header = context.request.header(tools.ETag.IF_MATCH_HEADER_NAME);
9
9
 
10
+ if (!header?.trim()) return null;
11
+
10
12
  return tools.ETag.fromHeader(header);
11
13
  } catch {
12
14
  return null;
@@ -13,7 +13,7 @@ export class ETagExtractorHonoMiddleware implements MiddlewareHonoPort {
13
13
  this.middleware = new ETagExtractorMiddleware(config);
14
14
  }
15
15
 
16
- handle(): MiddlewareHandler {
16
+ handle(): MiddlewareHandler<{ Variables: ETagVariables }> {
17
17
  return async (c, next) => {
18
18
  const context = new RequestContextHonoAdapter(c);
19
19
  const etag = this.middleware.evaluate(context);
@@ -9,6 +9,8 @@ export class ETagExtractorParamStrategy implements ETagExtractorStrategy {
9
9
  try {
10
10
  const value = context.request.param(this.name);
11
11
 
12
+ if (!value?.trim()) return null;
13
+
12
14
  return tools.ETag.fromHeader(value);
13
15
  } catch {
14
16
  return null;
@@ -1,6 +1,6 @@
1
1
  import type * as tools from "@bgord/tools";
2
- import type { RequestContext } from "./request-context.port";
2
+ import type { HasRequestHeader, HasRequestParam } from "./request-context.port";
3
3
 
4
4
  export interface ETagExtractorStrategy {
5
- detect(context: RequestContext): tools.ETag | null;
5
+ detect(context: HasRequestHeader & HasRequestParam): tools.ETag | null;
6
6
  }
@@ -50,16 +50,16 @@ export class FileInspectionAdapter implements FileInspectionPort {
50
50
  }
51
51
 
52
52
  async size(path: tools.FilePathRelative | tools.FilePathAbsolute | string): Promise<tools.Size> {
53
- const file = Bun.file(typeof path === "string" ? path : path.get());
53
+ const node = await stat(typeof path === "string" ? path : path.get());
54
54
 
55
- return tools.Size.fromBytes(file.size);
55
+ return tools.Size.fromBytes(node.size);
56
56
  }
57
57
 
58
58
  async lastModified(
59
59
  path: tools.FilePathRelative | tools.FilePathAbsolute | string,
60
60
  ): Promise<tools.Timestamp> {
61
- const file = Bun.file(typeof path === "string" ? path : path.get());
61
+ const node = await stat(typeof path === "string" ? path : path.get());
62
62
 
63
- return tools.Timestamp.fromNumber(file.lastModified);
63
+ return tools.Timestamp.fromNumber(Math.round(node.mtimeMs));
64
64
  }
65
65
  }
@@ -6,7 +6,7 @@ export class FileReaderJsonForgivingAdapter implements FileReaderJsonPort {
6
6
  path: tools.FilePathRelative | tools.FilePathAbsolute | string,
7
7
  ): Promise<FileReaderJsonOutputType> {
8
8
  try {
9
- return Bun.file(typeof path === "string" ? path : path.get()).json();
9
+ return await Bun.file(typeof path === "string" ? path : path.get()).json();
10
10
  } catch {
11
11
  return {};
12
12
  }
@@ -12,7 +12,7 @@ export class GracefulShutdown {
12
12
 
13
13
  constructor(
14
14
  private readonly deps: Dependencies,
15
- private readonly config: Config = { cleanup: tools.noop, exit: process.exit },
15
+ private readonly config: Config = { cleanup: tools.noop },
16
16
  ) {}
17
17
 
18
18
  private async shutdown(server: ServerType, exitCode: number) {
@@ -22,7 +22,7 @@ export class GracefulShutdown {
22
22
  // Stryker restore all
23
23
 
24
24
  try {
25
- server.stop();
25
+ await server.stop();
26
26
  } catch (error) {
27
27
  this.deps.Logger.error({ message: "Server stop failed", error, ...this.base });
28
28
  }
@@ -33,7 +33,7 @@ export class GracefulShutdown {
33
33
  } catch (error) {
34
34
  this.deps.Logger.error({ message: "Cleanup hook failed", error, ...this.base });
35
35
  } finally {
36
- this.config.exit?.(exitCode);
36
+ (this.config.exit ?? process.exit)(exitCode);
37
37
  }
38
38
  }
39
39
 
package/src/hash.vo.ts CHANGED
@@ -13,7 +13,7 @@ export class Hash {
13
13
  }
14
14
 
15
15
  static fromString(candidate: string): Hash {
16
- return new Hash(v.parse(HashValue, candidate));
16
+ return new Hash(v.parse(HashValue, candidate.toLowerCase()));
17
17
  }
18
18
 
19
19
  get(): HashValueType {
@@ -2,16 +2,16 @@ import type { HCaptchaSecretKeyType } from "./hcaptcha-secret-key.vo";
2
2
 
3
3
  export const HCaptchaServiceError = { Error: "hcaptcha.service.error" };
4
4
 
5
- type HcaptchaTokenType = string | undefined;
5
+ type HcaptchaTokenType = string;
6
6
 
7
- export type HCaptchaVerificationResult = { success: boolean; errorCodes?: ReadonlyArray<string> };
7
+ export type HCaptchaVerificationResult = { success: boolean };
8
8
 
9
9
  export class HCaptchaService {
10
10
  async verify(
11
11
  secretKey: HCaptchaSecretKeyType,
12
12
  token: HcaptchaTokenType,
13
13
  ): Promise<HCaptchaVerificationResult> {
14
- const body = new URLSearchParams({ secret: secretKey, response: token ?? "" });
14
+ const body = new URLSearchParams({ secret: secretKey, response: token });
15
15
 
16
16
  const response = await fetch("https://hcaptcha.com/siteverify", {
17
17
  method: "POST",
@@ -1,18 +1,18 @@
1
1
  import type { MiddlewareHandler } from "hono";
2
2
  import { CacheSourceEnum } from "./cache-resolver.strategy";
3
3
  import { CacheResponseMiddleware } from "./cache-response.middleware";
4
- import type { ClockPort } from "./clock.port";
5
- import { type HttpLoggerConfig, HttpLoggerMiddleware } from "./http-logger.middleware";
6
- import type { LoggerPort } from "./logger.port";
4
+ import {
5
+ type HttpLoggerConfig,
6
+ HttpLoggerMiddleware,
7
+ type HttpLoggerMiddlewareDependencies,
8
+ } from "./http-logger.middleware";
7
9
  import type { MiddlewareHonoPort } from "./middleware-hono.port";
8
10
  import { RequestContextHonoAdapter } from "./request-context-hono.adapter";
9
11
 
10
- type Dependencies = { Logger: LoggerPort; Clock: ClockPort };
11
-
12
12
  export class HttpLoggerHonoMiddleware implements MiddlewareHonoPort {
13
13
  private readonly middleware: HttpLoggerMiddleware;
14
14
 
15
- constructor(deps: Dependencies, config?: HttpLoggerConfig) {
15
+ constructor(deps: HttpLoggerMiddlewareDependencies, config?: HttpLoggerConfig) {
16
16
  this.middleware = new HttpLoggerMiddleware(deps, config);
17
17
  }
18
18
 
@@ -25,7 +25,7 @@ export const UNINFORMATIVE_HEADERS = [
25
25
  "priority",
26
26
  ];
27
27
 
28
- type Dependencies = { Logger: LoggerPort; Clock: ClockPort };
28
+ export type HttpLoggerMiddlewareDependencies = { Logger: LoggerPort; Clock: ClockPort };
29
29
 
30
30
  export type HttpLoggerConfig = { skip?: ReadonlyArray<string | URLPattern> };
31
31
 
@@ -39,7 +39,7 @@ export type HttpLoggerAfterInput = {
39
39
 
40
40
  export class HttpLoggerMiddleware {
41
41
  constructor(
42
- private readonly deps: Dependencies,
42
+ private readonly deps: HttpLoggerMiddlewareDependencies,
43
43
  private readonly config?: HttpLoggerConfig,
44
44
  ) {}
45
45
 
@@ -3,6 +3,6 @@ import type { ImageBlurPort, ImageBlurStrategy } from "./image-blur.port";
3
3
 
4
4
  export class ImageBlurNoopAdapter implements ImageBlurPort {
5
5
  async blur(recipe: ImageBlurStrategy): Promise<tools.FilePathRelative | tools.FilePathAbsolute> {
6
- return recipe.strategy === "output_path" ? recipe.output : recipe.input;
6
+ return recipe.output;
7
7
  }
8
8
  }
@@ -1,7 +1,6 @@
1
1
  import type * as tools from "@bgord/tools";
2
2
  import type { FileRenamerPort } from "./file-renamer.port";
3
3
  import type { FileWriterPort } from "./file-writer.port";
4
- import type { ImageSupportedType } from "./image.types";
5
4
  import type { ImageBlurPort, ImageBlurStrategy } from "./image-blur.port";
6
5
  import type { NonceProviderPort } from "./nonce-provider.port";
7
6
 
@@ -15,17 +14,14 @@ export class ImageBlurAdapter implements ImageBlurPort {
15
14
  constructor(private readonly deps: Dependencies) {}
16
15
 
17
16
  async blur(recipe: ImageBlurStrategy): Promise<tools.FilePathRelative | tools.FilePathAbsolute> {
18
- const final = recipe.strategy === "output_path" ? recipe.output : recipe.input;
17
+ const final = recipe.output;
19
18
 
20
19
  const filename = final.getFilename();
21
20
  const temporary = final.withFilename(
22
21
  filename.withSuffix(`-blurred-${this.deps.NonceProvider.generate()}`),
23
22
  );
24
23
 
25
- const extension = final.getFilename().getExtension();
26
- const format = (extension === "jpg" ? "jpeg" : extension) as ImageSupportedType;
27
-
28
- const blurred = await Bun.file(recipe.input.get()).image()[format]().placeholder();
24
+ const blurred = await Bun.file(recipe.input.get()).image().placeholder();
29
25
  const bytes = Buffer.from(blurred.substring(blurred.indexOf(",") + 1), "base64");
30
26
 
31
27
  await this.deps.FileWriter.write(temporary.get(), bytes);
@@ -1,15 +1,9 @@
1
1
  import type * as tools from "@bgord/tools";
2
2
 
3
- type ImageBlurOutputPathStrategy = {
4
- strategy: "output_path";
3
+ export type ImageBlurStrategy = {
5
4
  input: tools.FilePathRelative | tools.FilePathAbsolute;
6
5
  output: tools.FilePathRelative | tools.FilePathAbsolute;
7
6
  };
8
- type ImageBlurInPlaceStrategy = {
9
- strategy: "in_place";
10
- input: tools.FilePathRelative | tools.FilePathAbsolute;
11
- };
12
- export type ImageBlurStrategy = ImageBlurOutputPathStrategy | ImageBlurInPlaceStrategy;
13
7
 
14
8
  export interface ImageBlurPort {
15
9
  blur(recipe: ImageBlurStrategy): Promise<tools.FilePathRelative | tools.FilePathAbsolute>;
@@ -2,6 +2,7 @@ import type { MiddlewareHandler } from "hono";
2
2
  import { InFlightRequestsMiddleware } from "./in-flight-requests.middleware";
3
3
  import type { MiddlewareHonoPort } from "./middleware-hono.port";
4
4
 
5
+ // Counts handler execution, not connection lifetime - a streamed body drains after next() resolves
5
6
  export class InFlightRequestsHonoMiddleware implements MiddlewareHonoPort {
6
7
  private readonly middleware = new InFlightRequestsMiddleware();
7
8
 
@@ -4,11 +4,11 @@ export class InFlightRequestsTracker {
4
4
  private static count: tools.IntegerType = tools.Int.of(0);
5
5
 
6
6
  static increment(): void {
7
- InFlightRequestsTracker.count++;
7
+ InFlightRequestsTracker.count = tools.Int.of(InFlightRequestsTracker.count + 1);
8
8
  }
9
9
 
10
10
  static decrement(): void {
11
- InFlightRequestsTracker.count--;
11
+ InFlightRequestsTracker.count = tools.Int.of(Math.max(0, InFlightRequestsTracker.count - 1));
12
12
  }
13
13
 
14
14
  static get(): tools.IntegerType {
package/src/index.ts CHANGED
@@ -74,7 +74,6 @@ export * from "./correlation-storage.service";
74
74
  export * from "./cron-expression.vo";
75
75
  export * from "./cron-scheduler.adapter";
76
76
  export * from "./cron-scheduler.port";
77
- export * from "./cron-scheduler-croner.adapter";
78
77
  export * from "./cron-scheduler-noop.adapter";
79
78
  export * from "./cron-scheduler-with-logger.adapter";
80
79
  export * from "./cron-task.vo";
@@ -94,8 +93,8 @@ export * from "./directory-ensurer.adapter";
94
93
  export * from "./directory-ensurer.port";
95
94
  export * from "./directory-ensurer-noop.adapter";
96
95
  export * from "./disk-space-checker.port";
96
+ export * from "./disk-space-checker-fs.adapter";
97
97
  export * from "./disk-space-checker-noop.adapter";
98
- export * from "./disk-space-checker-shell.adapter";
99
98
  export * from "./dynamic-import.service";
100
99
  export * from "./encryption.port";
101
100
  export * from "./encryption-aes-gcm.adapter";
@@ -160,7 +159,6 @@ export * from "./file-reader-raw.adapter";
160
159
  export * from "./file-reader-raw.port";
161
160
  export * from "./file-reader-raw-forgiving.adapter";
162
161
  export * from "./file-reader-raw-noop.adapter";
163
- export * from "./file-reader-raw-with-cache.adapter";
164
162
  export * from "./file-reader-text.adapter";
165
163
  export * from "./file-reader-text.port";
166
164
  export * from "./file-reader-text-forgiving.adapter";
@@ -384,6 +382,7 @@ export * from "./reactive-config-file-json.adapter";
384
382
  export * from "./reactive-config-noop.adapter";
385
383
  export * from "./reactive-config-with-cache.adapter";
386
384
  export * from "./reactive-config-with-fallback.adapter";
385
+ export * from "./reactive-config-with-logger.adapter";
387
386
  export * from "./readiness.handler";
388
387
  export * from "./readiness-hono.handler";
389
388
  export * from "./recaptcha-secret-key.vo";
@@ -396,6 +395,7 @@ export * from "./redactor-mask.strategy";
396
395
  export * from "./redactor-metadata-compact-array.strategy";
397
396
  export * from "./redactor-metadata-compact-object.strategy";
398
397
  export * from "./redactor-noop.strategy";
398
+ export * from "./redactor-url-query.strategy";
399
399
  export * from "./remote-file-storage.port";
400
400
  export * from "./remote-file-storage-disk.adapter";
401
401
  export * from "./remote-file-storage-noop.adapter";
@@ -518,6 +518,7 @@ export * from "./subject-segment-env.strategy";
518
518
  export * from "./subject-segment-fixed.strategy";
519
519
  export * from "./subject-segment-header.strategy";
520
520
  export * from "./subject-segment-ip.strategy";
521
+ export * from "./subject-segment-method.strategy";
521
522
  export * from "./subject-segment-param.strategy";
522
523
  export * from "./subject-segment-path.strategy";
523
524
  export * from "./subject-segment-query.strategy";
@@ -1,4 +1,5 @@
1
1
  import type { ClockPort } from "./clock.port";
2
+ import { CorrelationStorage } from "./correlation-storage.service";
2
3
  import type { LoggerPort } from "./logger.port";
3
4
  import { Stopwatch } from "./stopwatch.service";
4
5
 
@@ -14,9 +15,10 @@ export class Instrumentation {
14
15
 
15
16
  this.deps.Logger.info({
16
17
  message: `${label} measurement`,
18
+ correlationId: CorrelationStorage.get(),
17
19
  component: "infra",
18
20
  operation: "instrumentation_measure",
19
- metadata: stopwatch.stop(),
21
+ metadata: { duration: stopwatch.stop() },
20
22
  });
21
23
 
22
24
  return result;
@@ -29,9 +31,10 @@ export class Instrumentation {
29
31
 
30
32
  this.deps.Logger.info({
31
33
  message: `${label} measurement`,
34
+ correlationId: CorrelationStorage.get(),
32
35
  component: "infra",
33
36
  operation: "instrumentation_measure",
34
- metadata: stopwatch.stop(),
37
+ metadata: { duration: stopwatch.stop() },
35
38
  });
36
39
 
37
40
  return result;
@@ -10,6 +10,7 @@ export class JobQueueSqliteStore {
10
10
  this.db = new Database(config.database);
11
11
 
12
12
  this.db.run("PRAGMA journal_mode = WAL");
13
+ this.db.run("PRAGMA busy_timeout = 5000");
13
14
  this.db.run(`
14
15
  CREATE TABLE IF NOT EXISTS jobs (
15
16
  id TEXT PRIMARY KEY,
@@ -13,7 +13,7 @@ export class JobQueueWithLoggerAdapter<Job extends GenericJob> implements JobQue
13
13
 
14
14
  constructor(private readonly deps: Dependencies<Job>) {}
15
15
 
16
- async enqueue<EnqueuedJob extends Job>(job: EnqueuedJob): Promise<EnqueuedJob> {
16
+ async enqueue<EnqueuedJob extends Job>(job: EnqueuedJob, delay?: tools.Duration): Promise<EnqueuedJob> {
17
17
  this.deps.Logger.info({
18
18
  message: `${job.name} enqueued`,
19
19
  metadata: job,
@@ -21,7 +21,7 @@ export class JobQueueWithLoggerAdapter<Job extends GenericJob> implements JobQue
21
21
  ...this.base,
22
22
  });
23
23
 
24
- return this.deps.inner.enqueue(job);
24
+ return this.deps.inner.enqueue(job, delay);
25
25
  }
26
26
 
27
27
  async claim(limit: tools.IntegerPositiveType): Promise<ReadonlyArray<Job>> {