@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
@@ -1,8 +1,11 @@
1
1
  import * as tools from "@bgord/tools";
2
2
  export class WeakETagExtractorHeaderStrategy {
3
+ static PREFIX = "W/";
3
4
  detect(context) {
4
5
  try {
5
6
  const header = context.request.header(tools.WeakETag.IF_MATCH_HEADER_NAME);
7
+ if (!header?.replace(WeakETagExtractorHeaderStrategy.PREFIX, "").trim())
8
+ return null;
6
9
  return tools.WeakETag.fromHeader(header);
7
10
  }
8
11
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"weak-etag-extractor-header.strategy.js","sourceRoot":"","sources":["../src/weak-etag-extractor-header.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAItC,MAAM,OAAO,+BAA+B;IAC1C,MAAM,CAAC,OAAyB;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;YAE3E,OAAO,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"weak-etag-extractor-header.strategy.js","sourceRoot":"","sources":["../src/weak-etag-extractor-header.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAItC,MAAM,OAAO,+BAA+B;IAClC,MAAM,CAAU,MAAM,GAAG,IAAI,CAAC;IAEtC,MAAM,CAAC,OAAyB;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;YAE3E,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,+BAA+B,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;gBAAE,OAAO,IAAI,CAAC;YAErF,OAAO,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
@@ -8,6 +8,8 @@ export type WeakETagVariables = {
8
8
  export declare class WeakETagExtractorHonoMiddleware implements MiddlewareHonoPort {
9
9
  private readonly middleware;
10
10
  constructor(config: WeakETagExtractorMiddlewareConfig);
11
- handle(): MiddlewareHandler;
11
+ handle(): MiddlewareHandler<{
12
+ Variables: WeakETagVariables;
13
+ }>;
12
14
  }
13
15
  //# sourceMappingURL=weak-etag-extractor-hono.middleware.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"weak-etag-extractor-hono.middleware.d.ts","sourceRoot":"","sources":["../src/weak-etag-extractor-hono.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EAEL,KAAK,iCAAiC,EACvC,MAAM,kCAAkC,CAAC;AAE1C,MAAM,MAAM,iBAAiB,GAAG;IAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAA;CAAE,CAAC;AAEpE,qBAAa,+BAAgC,YAAW,kBAAkB;IACxE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;IAEzD,YAAY,MAAM,EAAE,iCAAiC,EAEpD;IAED,MAAM,IAAI,iBAAiB,CAS1B;CACF"}
1
+ {"version":3,"file":"weak-etag-extractor-hono.middleware.d.ts","sourceRoot":"","sources":["../src/weak-etag-extractor-hono.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EAEL,KAAK,iCAAiC,EACvC,MAAM,kCAAkC,CAAC;AAE1C,MAAM,MAAM,iBAAiB,GAAG;IAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAA;CAAE,CAAC;AAEpE,qBAAa,+BAAgC,YAAW,kBAAkB;IACxE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;IAEzD,YAAY,MAAM,EAAE,iCAAiC,EAEpD;IAED,MAAM,IAAI,iBAAiB,CAAC;QAAE,SAAS,EAAE,iBAAiB,CAAA;KAAE,CAAC,CAS5D;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"weak-etag-extractor-param.strategy.d.ts","sourceRoot":"","sources":["../src/weak-etag-extractor-param.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAEhF,qBAAa,8BAA+B,YAAW,yBAAyB;IAClE,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,MAAM,EAAI;IAE7C,MAAM,CAAC,OAAO,EAAE,eAAe,GAAG,KAAK,CAAC,QAAQ,GAAG,IAAI,CAQtD;CACF"}
1
+ {"version":3,"file":"weak-etag-extractor-param.strategy.d.ts","sourceRoot":"","sources":["../src/weak-etag-extractor-param.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAEhF,qBAAa,8BAA+B,YAAW,yBAAyB;IAClE,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,MAAM,EAAI;IAE7C,MAAM,CAAC,OAAO,EAAE,eAAe,GAAG,KAAK,CAAC,QAAQ,GAAG,IAAI,CAUtD;CACF"}
@@ -7,6 +7,8 @@ export class WeakETagExtractorParamStrategy {
7
7
  detect(context) {
8
8
  try {
9
9
  const value = context.request.param(this.name);
10
+ if (!value?.trim())
11
+ return null;
10
12
  return tools.WeakETag.fromHeader(`W/${value}`);
11
13
  }
12
14
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"weak-etag-extractor-param.strategy.js","sourceRoot":"","sources":["../src/weak-etag-extractor-param.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAItC,MAAM,OAAO,8BAA8B;IACZ,IAAI;IAAjC,YAA6B,IAAY;oBAAZ,IAAI;IAAW,CAAC;IAE7C,MAAM,CAAC,OAAwB;QAC7B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE/C,OAAO,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;QACjD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"weak-etag-extractor-param.strategy.js","sourceRoot":"","sources":["../src/weak-etag-extractor-param.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAItC,MAAM,OAAO,8BAA8B;IACZ,IAAI;IAAjC,YAA6B,IAAY;oBAAZ,IAAI;IAAW,CAAC;IAE7C,MAAM,CAAC,OAAwB;QAC7B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE/C,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE;gBAAE,OAAO,IAAI,CAAC;YAEhC,OAAO,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;QACjD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
@@ -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
  export interface WeakETagExtractorStrategy {
4
- detect(context: RequestContext): tools.WeakETag | null;
4
+ detect(context: HasRequestHeader & HasRequestParam): tools.WeakETag | null;
5
5
  }
6
6
  //# sourceMappingURL=weak-etag-extractor.strategy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"weak-etag-extractor.strategy.d.ts","sourceRoot":"","sources":["../src/weak-etag-extractor.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,WAAW,yBAAyB;IACxC,MAAM,CAAC,OAAO,EAAE,cAAc,GAAG,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;CACxD"}
1
+ {"version":3,"file":"weak-etag-extractor.strategy.d.ts","sourceRoot":"","sources":["../src/weak-etag-extractor.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEhF,MAAM,WAAW,yBAAyB;IACxC,MAAM,CAAC,OAAO,EAAE,gBAAgB,GAAG,eAAe,GAAG,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;CAC5E"}
@@ -1,6 +1,6 @@
1
- import type { RequestContext } from "./request-context.port";
1
+ import type { HasRequestHeader } from "./request-context.port";
2
2
  import type { WebhookSignatureType } from "./webhook-signature.vo";
3
3
  export interface WebhookSignatureExtractorStrategy {
4
- extract(context: RequestContext): WebhookSignatureType | null;
4
+ extract(context: HasRequestHeader): WebhookSignatureType | null;
5
5
  }
6
6
  //# sourceMappingURL=webhook-signature-extractor.strategy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"webhook-signature-extractor.strategy.d.ts","sourceRoot":"","sources":["../src/webhook-signature-extractor.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,MAAM,WAAW,iCAAiC;IAChD,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,oBAAoB,GAAG,IAAI,CAAC;CAC/D"}
1
+ {"version":3,"file":"webhook-signature-extractor.strategy.d.ts","sourceRoot":"","sources":["../src/webhook-signature-extractor.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,MAAM,WAAW,iCAAiC;IAChD,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG,oBAAoB,GAAG,IAAI,CAAC;CACjE"}
@@ -2,9 +2,6 @@ import * as tools from "@bgord/tools";
2
2
  import type { LoggerEntry } from "./logger.port";
3
3
  import type { WoodchopperDispatcher } from "./woodchopper-dispatcher.strategy";
4
4
  import type { WoodchopperSinkStrategy } from "./woodchopper-sink.strategy";
5
- export declare const WoodchopperDispatcherAsyncError: {
6
- ClosedWithBufferedEntries: (count: tools.IntegerPositiveType) => string;
7
- };
8
5
  export declare class WoodchopperDispatcherAsync implements WoodchopperDispatcher {
9
6
  private readonly sink;
10
7
  private readonly capacity;
@@ -1 +1 @@
1
- {"version":3,"file":"woodchopper-dispatcher-async.strategy.d.ts","sourceRoot":"","sources":["../src/woodchopper-dispatcher-async.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAO3E,eAAO,MAAM,+BAA+B;IAC1C,yBAAyB,UAAU,KAAK,CAAC,mBAAmB;CAE7D,CAAC;AAEF,qBAAa,0BAA2B,YAAW,qBAAqB;IASpE,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAT3B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAEnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IACjD,OAAO,CAAC,KAAK,CAA2C;IAExD,OAAO,CAAC,IAAI,CAAC,CAAa;IAE1B,YACmB,IAAI,EAAE,uBAAuB,EAC7B,QAAQ,GAAE,KAAK,CAAC,mBAA6C,EAG/E;IAED,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CASpC;IAED,KAAK,IAAI,IAAI,CAmBZ;YAEa,GAAG;IAkBjB,OAAO,CAAC,YAAY;YAKN,YAAY;CAK3B"}
1
+ {"version":3,"file":"woodchopper-dispatcher-async.strategy.d.ts","sourceRoot":"","sources":["../src/woodchopper-dispatcher-async.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAO3E,qBAAa,0BAA2B,YAAW,qBAAqB;IASpE,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAT3B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAEnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IACjD,OAAO,CAAC,KAAK,CAA2C;IAExD,OAAO,CAAC,IAAI,CAAC,CAAa;IAE1B,YACmB,IAAI,EAAE,uBAAuB,EAC7B,QAAQ,GAAE,KAAK,CAAC,mBAA6C,EAG/E;IAED,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CASpC;IAED,KAAK,IAAI,IAAI,CAmBZ;YAEa,GAAG;IAkBjB,OAAO,CAAC,YAAY;YAKN,YAAY;CAK3B"}
@@ -4,9 +4,6 @@ var WoodchopperDispatcherAsyncState;
4
4
  WoodchopperDispatcherAsyncState["running"] = "running";
5
5
  WoodchopperDispatcherAsyncState["closed"] = "closed";
6
6
  })(WoodchopperDispatcherAsyncState || (WoodchopperDispatcherAsyncState = {}));
7
- export const WoodchopperDispatcherAsyncError = {
8
- ClosedWithBufferedEntries: (count) => `woodchopper.dispatcher.async.closed.with.buffered.entries.${count}`,
9
- };
10
7
  export class WoodchopperDispatcherAsync {
11
8
  sink;
12
9
  capacity;
@@ -34,9 +31,13 @@ export class WoodchopperDispatcherAsync {
34
31
  return;
35
32
  // Stryker restore all
36
33
  this.state = WoodchopperDispatcherAsyncState.closed;
37
- if (this.buffer.length > 0) {
38
- const message = WoodchopperDispatcherAsyncError.ClosedWithBufferedEntries(tools.Int.positive(this.buffer.length));
39
- this.onError?.(new Error(message));
34
+ for (const entry of this.buffer) {
35
+ try {
36
+ this.sink.write(entry);
37
+ }
38
+ catch (error) {
39
+ this.onError?.(error);
40
+ }
40
41
  }
41
42
  this.buffer.length = 0;
42
43
  // wake so the loop can exit immediately
@@ -1 +1 @@
1
- {"version":3,"file":"woodchopper-dispatcher-async.strategy.js","sourceRoot":"","sources":["../src/woodchopper-dispatcher-async.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAKtC,IAAK,+BAGJ;AAHD,WAAK,+BAA+B;IAClC,sDAAmB,CAAA;IACnB,oDAAiB,CAAA;AACnB,CAAC,EAHI,+BAA+B,KAA/B,+BAA+B,QAGnC;AAED,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,yBAAyB,EAAE,CAAC,KAAgC,EAAE,EAAE,CAC9D,6DAA6D,KAAK,EAAE;CACvE,CAAC;AAEF,MAAM,OAAO,0BAA0B;IASlB,IAAI;IACJ,QAAQ;IAT3B,OAAO,CAA4B;IAElB,MAAM,GAAuB,EAAE,CAAC;IACzC,KAAK,GAAG,+BAA+B,CAAC,OAAO,CAAC;IAEhD,IAAI,CAAc;IAE1B,YACmB,IAA6B,EAC7B,QAAQ,GAA8B,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAD7D,IAAI;wBACJ,QAAQ;QAEzB,IAAI,CAAC,GAAG,EAAE,CAAC;IACb,CAAC;IAED,QAAQ,CAAC,KAAkB;QACzB,IAAI,IAAI,CAAC,KAAK,KAAK,+BAA+B,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QACxE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAEtD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAExB,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,sBAAsB;QACtB,IAAI,IAAI,CAAC,KAAK,KAAK,+BAA+B,CAAC,MAAM;YAAE,OAAO;QAClE,sBAAsB;QAEtB,IAAI,CAAC,KAAK,GAAG,+BAA+B,CAAC,MAAM,CAAC;QAEpD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,+BAA+B,CAAC,yBAAyB,CACvE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CACvC,CAAC;YAEF,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAEvB,wCAAwC;QACxC,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,GAAG;QACf,OAAO,IAAI,CAAC,KAAK,KAAK,+BAA+B,CAAC,OAAO,EAAE,CAAC;YAC9D,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;gBAE1B,SAAS;YACX,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAElC,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAoB,CAAC,CAAC;YACxC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACd,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IACxB,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"woodchopper-dispatcher-async.strategy.js","sourceRoot":"","sources":["../src/woodchopper-dispatcher-async.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAKtC,IAAK,+BAGJ;AAHD,WAAK,+BAA+B;IAClC,sDAAmB,CAAA;IACnB,oDAAiB,CAAA;AACnB,CAAC,EAHI,+BAA+B,KAA/B,+BAA+B,QAGnC;AAED,MAAM,OAAO,0BAA0B;IASlB,IAAI;IACJ,QAAQ;IAT3B,OAAO,CAA4B;IAElB,MAAM,GAAuB,EAAE,CAAC;IACzC,KAAK,GAAG,+BAA+B,CAAC,OAAO,CAAC;IAEhD,IAAI,CAAc;IAE1B,YACmB,IAA6B,EAC7B,QAAQ,GAA8B,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAD7D,IAAI;wBACJ,QAAQ;QAEzB,IAAI,CAAC,GAAG,EAAE,CAAC;IACb,CAAC;IAED,QAAQ,CAAC,KAAkB;QACzB,IAAI,IAAI,CAAC,KAAK,KAAK,+BAA+B,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QACxE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAEtD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAExB,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,sBAAsB;QACtB,IAAI,IAAI,CAAC,KAAK,KAAK,+BAA+B,CAAC,MAAM;YAAE,OAAO;QAClE,sBAAsB;QAEtB,IAAI,CAAC,KAAK,GAAG,+BAA+B,CAAC,MAAM,CAAC;QAEpD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAEvB,wCAAwC;QACxC,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,GAAG;QACf,OAAO,IAAI,CAAC,KAAK,KAAK,+BAA+B,CAAC,OAAO,EAAE,CAAC;YAC9D,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;gBAE1B,SAAS;YACX,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAElC,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAoB,CAAC,CAAC;YACxC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACd,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IACxB,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bgord/bun",
3
- "version": "1.20.5",
3
+ "version": "1.21.1",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "author": "Bartosz Gordon",
@@ -20,37 +20,35 @@
20
20
  "build": "bash scripts/package-build.sh"
21
21
  },
22
22
  "devDependencies": {
23
- "@biomejs/biome": "2.5.5",
23
+ "@biomejs/biome": "2.5.7",
24
24
  "@standard-schema/spec": "1.1.0",
25
25
  "@stryker-mutator/core": "9.6.1",
26
26
  "@stryker-mutator/typescript-checker": "9.6.1",
27
27
  "@types/bun": "1.3.14",
28
28
  "@types/nodemailer": "8.0.1",
29
29
  "@types/yazl": "3.3.1",
30
- "better-auth": "1.6.25",
31
- "croner": "10.0.1",
30
+ "better-auth": "1.6.26",
32
31
  "cspell": "10.0.1",
33
- "csv": "6.6.1",
34
- "fallow": "3.10.0",
32
+ "csv": "6.6.3",
33
+ "fallow": "3.14.0",
35
34
  "lefthook": "2.1.10",
36
35
  "lockfile-lint": "5.0.0",
37
- "nodemailer": "9.0.3",
38
- "publint": "0.3.22",
36
+ "nodemailer": "9.0.5",
37
+ "publint": "0.3.23",
39
38
  "shellcheck": "4.1.0",
40
39
  "typescript": "7.0.2",
41
40
  "yazl": "3.3.1"
42
41
  },
43
42
  "dependencies": {
44
- "@bgord/tools": "1.6.1",
43
+ "@bgord/tools": "1.6.3",
45
44
  "emittery": "2.0.0",
46
- "hono": "4.12.32",
45
+ "hono": "4.13.1",
47
46
  "node-cache": "5.1.2"
48
47
  },
49
48
  "peerDependencies": {
50
- "better-auth": "1.6.25",
51
- "csv": "6.6.1",
52
- "croner": "10.0.1",
53
- "nodemailer": "9.0.3",
49
+ "better-auth": "1.6.26",
50
+ "csv": "6.6.3",
51
+ "nodemailer": "9.0.5",
54
52
  "yazl": "3.3.1"
55
53
  },
56
54
  "peerDependenciesMeta": {
@@ -60,9 +58,6 @@
60
58
  "csv": {
61
59
  "optional": true
62
60
  },
63
- "croner": {
64
- "optional": true
65
- },
66
61
  "nodemailer": {
67
62
  "optional": true
68
63
  },
package/readme.md CHANGED
@@ -97,7 +97,6 @@ src/
97
97
  ├── correlation-storage.service.ts
98
98
  ├── correlation.middleware.ts
99
99
  ├── cron-expression.vo.ts
100
- ├── cron-scheduler-croner.adapter.ts
101
100
  ├── cron-scheduler-noop.adapter.ts
102
101
  ├── cron-scheduler-with-logger.adapter.ts
103
102
  ├── cron-scheduler.adapter.ts
@@ -119,8 +118,8 @@ src/
119
118
  ├── directory-ensurer-noop.adapter.ts
120
119
  ├── directory-ensurer.adapter.ts
121
120
  ├── directory-ensurer.port.ts
121
+ ├── disk-space-checker-fs.adapter.ts
122
122
  ├── disk-space-checker-noop.adapter.ts
123
- ├── disk-space-checker-shell.adapter.ts
124
123
  ├── disk-space-checker.port.ts
125
124
  ├── dynamic-import.service.ts
126
125
  ├── encryption-aes-gcm.adapter.ts
@@ -184,7 +183,6 @@ src/
184
183
  ├── file-reader-json.port.ts
185
184
  ├── file-reader-raw-forgiving.adapter.ts
186
185
  ├── file-reader-raw-noop.adapter.ts
187
- ├── file-reader-raw-with-cache.adapter.ts
188
186
  ├── file-reader-raw.adapter.ts
189
187
  ├── file-reader-raw.port.ts
190
188
  ├── file-reader-text-forgiving.adapter.ts
@@ -457,6 +455,7 @@ src/
457
455
  ├── reactive-config-noop.adapter.ts
458
456
  ├── reactive-config-with-cache.adapter.ts
459
457
  ├── reactive-config-with-fallback.adapter.ts
458
+ ├── reactive-config-with-logger.adapter.ts
460
459
  ├── reactive-config.port.ts
461
460
  ├── readiness-hono.handler.ts
462
461
  ├── readiness.handler.ts
@@ -469,6 +468,7 @@ src/
469
468
  ├── redactor-metadata-compact-array.strategy.ts
470
469
  ├── redactor-metadata-compact-object.strategy.ts
471
470
  ├── redactor-noop.strategy.ts
471
+ ├── redactor-url-query.strategy.ts
472
472
  ├── redactor.strategy.ts
473
473
  ├── remote-file-storage-disk.adapter.ts
474
474
  ├── remote-file-storage-noop.adapter.ts
@@ -593,6 +593,7 @@ src/
593
593
  ├── subject-segment-fixed.strategy.ts
594
594
  ├── subject-segment-header.strategy.ts
595
595
  ├── subject-segment-ip.strategy.ts
596
+ ├── subject-segment-method.strategy.ts
596
597
  ├── subject-segment-param.strategy.ts
597
598
  ├── subject-segment-path.strategy.ts
598
599
  ├── subject-segment-query.strategy.ts
@@ -1,14 +1,17 @@
1
1
  import type { AbAssignmentStrategy } from "./ab-assignment.strategy";
2
2
  import type { AbVariant } from "./ab-variant.vo";
3
- import type { AbVariants } from "./ab-variants.vo";
4
3
  import type { RequestContext } from "./request-context.port";
5
4
 
5
+ export const AbAssignmentCompositeError = { NoStrategies: "ab.assignment.composite.strategies.min" };
6
+
6
7
  export class AbAssignmentCompositeStrategy implements AbAssignmentStrategy {
7
- constructor(private readonly strategies: ReadonlyArray<AbAssignmentStrategy>) {}
8
+ constructor(private readonly strategies: ReadonlyArray<AbAssignmentStrategy>) {
9
+ if (this.strategies.length === 0) throw new Error(AbAssignmentCompositeError.NoStrategies);
10
+ }
8
11
 
9
- async assign(context: RequestContext, variants: AbVariants): Promise<AbVariant | undefined> {
12
+ async assign(context: RequestContext): Promise<AbVariant | undefined> {
10
13
  for (const strategy of this.strategies) {
11
- const variant = await strategy.assign(context, variants);
14
+ const variant = await strategy.assign(context);
12
15
 
13
16
  if (variant) return variant;
14
17
  }
@@ -4,11 +4,14 @@ import type { AbVariants } from "./ab-variants.vo";
4
4
  import type { HasRequestCookie } from "./request-context.port";
5
5
 
6
6
  export class AbAssignmentCookieStrategy implements AbAssignmentStrategy {
7
- constructor(private readonly name: string) {}
7
+ constructor(
8
+ private readonly variants: AbVariants,
9
+ private readonly name: string,
10
+ ) {}
8
11
 
9
- async assign(context: HasRequestCookie, variants: AbVariants): Promise<AbVariant | undefined> {
12
+ async assign(context: HasRequestCookie): Promise<AbVariant | undefined> {
10
13
  const override = context.request.cookie(this.name);
11
14
 
12
- return variants.variants.find((v) => v.config.name === override);
15
+ return this.variants.variants.find((v) => v.config.name === override);
13
16
  }
14
17
  }
@@ -1,12 +1,11 @@
1
1
  import type { AbAssignmentStrategy } from "./ab-assignment.strategy";
2
2
  import type { AbVariant } from "./ab-variant.vo";
3
- import type { AbVariants } from "./ab-variants.vo";
4
3
  import type { RequestContext } from "./request-context.port";
5
4
 
6
5
  export class AbAssignmentFixedStrategy implements AbAssignmentStrategy {
7
6
  constructor(private readonly variant: AbVariant) {}
8
7
 
9
- async assign(_context: RequestContext, _variants: AbVariants): Promise<AbVariant> {
8
+ async assign(_context: RequestContext): Promise<AbVariant> {
10
9
  return this.variant;
11
10
  }
12
11
  }
@@ -15,7 +15,7 @@ export class AbAssignmentHashStrategy implements AbAssignmentStrategy {
15
15
  this.selector = new AbVariantSelector(variants);
16
16
  }
17
17
 
18
- async assign(context: RequestContext, _variants: AbVariants): Promise<AbVariant> {
18
+ async assign(context: RequestContext): Promise<AbVariant> {
19
19
  const { hex } = await this.subject.resolve(context);
20
20
 
21
21
  return this.selector.select(hex);
@@ -4,11 +4,14 @@ import type { AbVariants } from "./ab-variants.vo";
4
4
  import type { HasRequestHeader } from "./request-context.port";
5
5
 
6
6
  export class AbAssignmentHeaderStrategy implements AbAssignmentStrategy {
7
- constructor(private readonly name: string) {}
7
+ constructor(
8
+ private readonly variants: AbVariants,
9
+ private readonly name: string,
10
+ ) {}
8
11
 
9
- async assign(context: HasRequestHeader, variants: AbVariants): Promise<AbVariant | undefined> {
12
+ async assign(context: HasRequestHeader): Promise<AbVariant | undefined> {
10
13
  const override = context.request.header(this.name);
11
14
 
12
- return variants.variants.find((v) => v.config.name === override);
15
+ return this.variants.variants.find((v) => v.config.name === override);
13
16
  }
14
17
  }
@@ -4,11 +4,14 @@ import type { AbVariants } from "./ab-variants.vo";
4
4
  import type { HasRequestQuery } from "./request-context.port";
5
5
 
6
6
  export class AbAssignmentQueryStrategy implements AbAssignmentStrategy {
7
- constructor(private readonly parameter: string) {}
7
+ constructor(
8
+ private readonly variants: AbVariants,
9
+ private readonly parameter: string,
10
+ ) {}
8
11
 
9
- async assign(context: HasRequestQuery, variants: AbVariants): Promise<AbVariant | undefined> {
12
+ async assign(context: HasRequestQuery): Promise<AbVariant | undefined> {
10
13
  const override = context.request.query()[this.parameter];
11
14
 
12
- return variants.variants.find((v) => v.config.name === override);
15
+ return this.variants.variants.find((v) => v.config.name === override);
13
16
  }
14
17
  }
@@ -1,7 +1,6 @@
1
1
  import type { AbVariant } from "./ab-variant.vo";
2
- import type { AbVariants } from "./ab-variants.vo";
3
2
  import type { RequestContext } from "./request-context.port";
4
3
 
5
4
  export interface AbAssignmentStrategy {
6
- assign(context: RequestContext, variants: AbVariants): Promise<AbVariant | undefined>;
5
+ assign(context: RequestContext): Promise<AbVariant | undefined>;
7
6
  }
@@ -1,11 +1,12 @@
1
1
  import type { MiddlewareHandler } from "hono";
2
+ import type { AbVariables } from "./ab-hono.middleware";
2
3
  import type { AbVariant } from "./ab-variant.vo";
3
4
  import type { MiddlewareHonoPort } from "./middleware-hono.port";
4
5
 
5
6
  export class AbHonoNoopMiddleware implements MiddlewareHonoPort {
6
7
  constructor(private readonly variant: AbVariant) {}
7
8
 
8
- handle(): MiddlewareHandler {
9
+ handle(): MiddlewareHandler<{ Variables: AbVariables }> {
9
10
  return async (c, next) => {
10
11
  c.set("abVariant", this.variant);
11
12
 
@@ -2,7 +2,6 @@ import type { MiddlewareHandler } from "hono";
2
2
  import { AbMiddleware } from "./ab.middleware";
3
3
  import type { AbAssignmentStrategy } from "./ab-assignment.strategy";
4
4
  import type { AbVariant } from "./ab-variant.vo";
5
- import type { AbVariants } from "./ab-variants.vo";
6
5
  import type { MiddlewareHonoPort } from "./middleware-hono.port";
7
6
  import { RequestContextHonoAdapter } from "./request-context-hono.adapter";
8
7
 
@@ -11,16 +10,18 @@ export type AbVariables = { abVariant: AbVariant | undefined };
11
10
  export class AbHonoMiddleware implements MiddlewareHonoPort {
12
11
  private readonly middleware: AbMiddleware;
13
12
 
14
- constructor(variants: AbVariants, strategy: AbAssignmentStrategy) {
15
- this.middleware = new AbMiddleware(variants, strategy);
13
+ constructor(strategy: AbAssignmentStrategy) {
14
+ this.middleware = new AbMiddleware(strategy);
16
15
  }
17
16
 
18
- handle(): MiddlewareHandler {
17
+ handle(): MiddlewareHandler<{ Variables: AbVariables }> {
19
18
  return async (c, next) => {
20
19
  const context = new RequestContextHonoAdapter(c);
21
- const variant = await this.middleware.evaluate(context);
22
20
 
23
- c.set("abVariant", variant);
21
+ try {
22
+ const variant = await this.middleware.evaluate(context);
23
+ c.set("abVariant", variant);
24
+ } catch {}
24
25
 
25
26
  return next();
26
27
  };
@@ -1,15 +1,11 @@
1
1
  import type { AbAssignmentStrategy } from "./ab-assignment.strategy";
2
2
  import type { AbVariant } from "./ab-variant.vo";
3
- import type { AbVariants } from "./ab-variants.vo";
4
3
  import type { RequestContext } from "./request-context.port";
5
4
 
6
5
  export class AbMiddleware {
7
- constructor(
8
- private readonly variants: AbVariants,
9
- private readonly strategy: AbAssignmentStrategy,
10
- ) {}
6
+ constructor(private readonly strategy: AbAssignmentStrategy) {}
11
7
 
12
8
  async evaluate(context: RequestContext): Promise<AbVariant | undefined> {
13
- return this.strategy.assign(context, this.variants);
9
+ return this.strategy.assign(context);
14
10
  }
15
11
  }
@@ -4,6 +4,7 @@ import type { AlertMessage } from "./alert-message.vo";
4
4
  export const AlertChannelCompositeError = {
5
5
  Min: "alert.channel.composite.channels.min",
6
6
  Max: "alert.channel.composite.channels.max",
7
+ AllFailed: "alert.channel.composite.all.failed",
7
8
  };
8
9
 
9
10
  export class AlertChannelCompositeAdapter implements AlertChannelPort {
@@ -13,7 +14,13 @@ export class AlertChannelCompositeAdapter implements AlertChannelPort {
13
14
  }
14
15
 
15
16
  async send(alert: AlertMessage): Promise<void> {
16
- await Promise.allSettled(this.channels.map((channel) => channel.send(alert)));
17
+ const results = await Promise.allSettled(this.channels.map((channel) => channel.send(alert)));
18
+
19
+ if (results.some((result) => result.status === "fulfilled")) return;
20
+
21
+ const reasons = results.map((result) => (result as PromiseRejectedResult).reason);
22
+
23
+ throw new AggregateError(reasons, AlertChannelCompositeError.AllFailed);
17
24
  }
18
25
 
19
26
  async verify(): Promise<boolean> {
@@ -23,7 +23,7 @@ export class AlertChannelWithLoggerAdapter implements AlertChannelPort {
23
23
  this.deps.Logger.info({
24
24
  message: "Alert channel attempt",
25
25
  correlationId: CorrelationStorage.get(),
26
- metadata: alert.toJSON(),
26
+ metadata: { alert: alert.toJSON() },
27
27
  ...this.base,
28
28
  });
29
29
 
@@ -17,12 +17,13 @@ export class AntivirusClamavAdapter implements AntivirusPort {
17
17
  if (!antivirus.stdin) throw new Error(AntivirusPortError.ScanFailed);
18
18
  antivirus.stdin.write(bytes);
19
19
  await antivirus.stdin.end();
20
+
21
+ const stdoutText = new Response(antivirus.stdout).text();
22
+ const stderrText = new Response(antivirus.stderr).text();
23
+
20
24
  await antivirus.exited;
21
25
 
22
- const [stdout, stderr] = await Promise.all([
23
- new Response(antivirus.stdout).text(),
24
- new Response(antivirus.stderr).text(),
25
- ]);
26
+ const [stdout, stderr] = await Promise.all([stdoutText, stderrText]);
26
27
 
27
28
  if (antivirus.exitCode === 0) return { clean: true };
28
29
 
@@ -31,7 +31,7 @@ export class AntivirusWithLoggerAdapter implements AntivirusPort {
31
31
  this.deps.Logger.info({
32
32
  message: "Antivirus scan success",
33
33
  correlationId: CorrelationStorage.get(),
34
- metadata: { clean: result.clean, duration: duration.stop() },
34
+ metadata: { ...result, duration: duration.stop() },
35
35
  ...this.base,
36
36
  });
37
37
 
@@ -41,7 +41,7 @@ export class AntivirusWithLoggerAdapter implements AntivirusPort {
41
41
  message: "Antivirus scan error",
42
42
  correlationId: CorrelationStorage.get(),
43
43
  error,
44
- metadata: duration.stop(),
44
+ metadata: { duration: duration.stop() },
45
45
  ...this.base,
46
46
  });
47
47
 
@@ -1,31 +1,23 @@
1
1
  import type { MiddlewareHandler } from "hono";
2
- import { ApiVersionMiddleware } from "./api-version.middleware";
3
- import type { BuildInfoType } from "./build-info.vo";
4
- import type { CacheResolverStrategy } from "./cache-resolver.strategy";
5
- import type { HashContentStrategy } from "./hash-content.strategy";
2
+ import { ApiVersionMiddleware, type ApiVersionMiddlewareDependencies } from "./api-version.middleware";
6
3
  import type { MiddlewareHonoPort } from "./middleware-hono.port";
7
- import type { ReactiveConfigPort } from "./reactive-config.port";
8
-
9
- type Dependencies = {
10
- CacheResolver: CacheResolverStrategy;
11
- HashContent: HashContentStrategy;
12
- BuildInfoConfig: ReactiveConfigPort<BuildInfoType>;
13
- };
14
4
 
15
5
  export class ApiVersionHonoMiddleware implements MiddlewareHonoPort {
16
6
  private readonly middleware: ApiVersionMiddleware;
17
7
 
18
- constructor(deps: Dependencies) {
8
+ constructor(deps: ApiVersionMiddlewareDependencies) {
19
9
  this.middleware = new ApiVersionMiddleware(deps);
20
10
  }
21
11
 
22
12
  handle(): MiddlewareHandler {
23
13
  return async (c, next) => {
24
- const version = await this.middleware.evaluate();
14
+ await next();
25
15
 
26
- c.header(ApiVersionMiddleware.HEADER_NAME, version.toString());
16
+ try {
17
+ const version = await this.middleware.evaluate();
27
18
 
28
- return next();
19
+ c.res.headers.set(ApiVersionMiddleware.HEADER_NAME, version.toString());
20
+ } catch {}
29
21
  };
30
22
  }
31
23
  }
@@ -6,7 +6,7 @@ import type { ReactiveConfigPort } from "./reactive-config.port";
6
6
  import { SubjectApplicationResolver } from "./subject-application-resolver.vo";
7
7
  import { SubjectSegmentFixedStrategy } from "./subject-segment-fixed.strategy";
8
8
 
9
- type Dependencies = {
9
+ export type ApiVersionMiddlewareDependencies = {
10
10
  CacheResolver: CacheResolverStrategy;
11
11
  HashContent: HashContentStrategy;
12
12
  BuildInfoConfig: ReactiveConfigPort<BuildInfoType>;
@@ -17,7 +17,7 @@ export class ApiVersionMiddleware {
17
17
 
18
18
  private readonly resolver: SubjectApplicationResolver;
19
19
 
20
- constructor(private readonly deps: Dependencies) {
20
+ constructor(private readonly deps: ApiVersionMiddlewareDependencies) {
21
21
  this.resolver = new SubjectApplicationResolver(
22
22
  [new SubjectSegmentFixedStrategy("api-version")],
23
23
  this.deps,
@@ -1,5 +1,5 @@
1
- import type { AuthSessionReaderPort, AuthSessionType } from "../src/auth-session-reader.port";
2
- import type { HasRequestHeaders } from "../src/request-context.port";
1
+ import type { AuthSessionReaderPort, AuthSessionType } from "./auth-session-reader.port";
2
+ import type { HasRequestHeaders } from "./request-context.port";
3
3
 
4
4
  export type AuthSessionReaderNoopUserType = { id: string; email: string };
5
5
  export type AuthSessionReaderNoopSessionType = { id: string };
@@ -27,6 +27,10 @@ export class BetterAuthLogger {
27
27
  this.deps.Logger.warn(base);
28
28
  break;
29
29
  }
30
+ case LogLevelEnum.debug: {
31
+ this.deps.Logger.debug(base);
32
+ break;
33
+ }
30
34
  default: {
31
35
  this.deps.Logger.info(base);
32
36
  break;
@@ -39,6 +43,7 @@ export class BetterAuthLogger {
39
43
  private mapLevel(level: LogLevel | undefined) {
40
44
  if (level === "warn") return LogLevelEnum.warn;
41
45
  if (level === "error") return LogLevelEnum.error;
46
+ if (level === "debug") return LogLevelEnum.debug;
42
47
  return LogLevelEnum.info;
43
48
  }
44
49
  }
@@ -15,7 +15,8 @@ export const CacheFileMustRevalidate: CacheFileHandler = {
15
15
  headers: new Headers({
16
16
  ETag: options.etag.get(),
17
17
  "Cache-Control": "private, max-age=0, must-revalidate",
18
- "Last-Modified": options.lastModified.toInstant().toString(),
18
+ // biome-ignore lint: lint/style/noRestrictedGlobals
19
+ "Last-Modified": new Date(options.lastModified.ms).toUTCString(),
19
20
  Vary: "Authorization, Cookie",
20
21
  ...overrides,
21
22
  }),
@@ -28,7 +29,8 @@ export const CacheFileMustRevalidate: CacheFileHandler = {
28
29
  "Cache-Control": "private, max-age=0, must-revalidate",
29
30
  ETag: options.etag.get(),
30
31
  "Content-Length": options.size.toBytes().toString(),
31
- "Last-Modified": options.lastModified.toInstant().toString(),
32
+ // biome-ignore lint: lint/style/noRestrictedGlobals
33
+ "Last-Modified": new Date(options.lastModified.ms).toUTCString(),
32
34
  "Accept-Ranges": "bytes",
33
35
  Vary: "Authorization, Cookie",
34
36
  ...overrides,