@bgord/bun 1.10.23 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (866) hide show
  1. package/dist/ab-assignment-composite.strategy.d.ts +10 -0
  2. package/dist/ab-assignment-composite.strategy.d.ts.map +1 -0
  3. package/dist/ab-assignment-composite.strategy.js +15 -0
  4. package/dist/ab-assignment-composite.strategy.js.map +1 -0
  5. package/dist/ab-assignment-fixed.strategy.d.ts +10 -0
  6. package/dist/ab-assignment-fixed.strategy.d.ts.map +1 -0
  7. package/dist/ab-assignment-fixed.strategy.js +10 -0
  8. package/dist/ab-assignment-fixed.strategy.js.map +1 -0
  9. package/dist/ab-assignment-hash.strategy.d.ts +12 -0
  10. package/dist/ab-assignment-hash.strategy.d.ts.map +1 -0
  11. package/dist/ab-assignment-hash.strategy.js +14 -0
  12. package/dist/ab-assignment-hash.strategy.js.map +1 -0
  13. package/dist/ab-assignment-query.strategy.d.ts +10 -0
  14. package/dist/ab-assignment-query.strategy.d.ts.map +1 -0
  15. package/dist/ab-assignment-query.strategy.js +11 -0
  16. package/dist/ab-assignment-query.strategy.js.map +1 -0
  17. package/dist/ab-assignment.strategy.d.ts +7 -0
  18. package/dist/ab-assignment.strategy.d.ts.map +1 -0
  19. package/dist/ab-assignment.strategy.js +2 -0
  20. package/dist/ab-assignment.strategy.js.map +1 -0
  21. package/dist/ab-hono-noop.middleware.d.ts +10 -0
  22. package/dist/ab-hono-noop.middleware.d.ts.map +1 -0
  23. package/dist/ab-hono-noop.middleware.js +18 -0
  24. package/dist/ab-hono-noop.middleware.js.map +1 -0
  25. package/dist/ab-hono.middleware.d.ts +14 -0
  26. package/dist/ab-hono.middleware.d.ts.map +1 -0
  27. package/dist/ab-hono.middleware.js +17 -0
  28. package/dist/ab-hono.middleware.js.map +1 -0
  29. package/dist/ab-variant-selector.service.d.ts +12 -0
  30. package/dist/ab-variant-selector.service.d.ts.map +1 -0
  31. package/dist/ab-variant-selector.service.js +22 -0
  32. package/dist/ab-variant-selector.service.js.map +1 -0
  33. package/dist/ab-variant-weight.vo.d.ts +7 -0
  34. package/dist/ab-variant-weight.vo.d.ts.map +1 -0
  35. package/dist/ab-variant-weight.vo.js +10 -0
  36. package/dist/ab-variant-weight.vo.js.map +1 -0
  37. package/dist/ab-variant.vo.d.ts +11 -0
  38. package/dist/ab-variant.vo.d.ts.map +1 -0
  39. package/dist/ab-variant.vo.js +7 -0
  40. package/dist/ab-variant.vo.js.map +1 -0
  41. package/dist/ab-variants.vo.d.ts +12 -0
  42. package/dist/ab-variants.vo.d.ts.map +1 -0
  43. package/dist/ab-variants.vo.js +24 -0
  44. package/dist/ab-variants.vo.js.map +1 -0
  45. package/dist/ab.middleware.d.ts +11 -0
  46. package/dist/ab.middleware.d.ts.map +1 -0
  47. package/dist/ab.middleware.js +12 -0
  48. package/dist/ab.middleware.js.map +1 -0
  49. package/dist/api-version-hono.middleware.d.ts +17 -0
  50. package/dist/api-version-hono.middleware.d.ts.map +1 -0
  51. package/dist/api-version-hono.middleware.js +15 -0
  52. package/dist/api-version-hono.middleware.js.map +1 -0
  53. package/dist/api-version.middleware.d.ts +5 -2
  54. package/dist/api-version.middleware.d.ts.map +1 -1
  55. package/dist/api-version.middleware.js +12 -10
  56. package/dist/api-version.middleware.js.map +1 -1
  57. package/dist/auth-session-reader.port.d.ts +8 -7
  58. package/dist/auth-session-reader.port.d.ts.map +1 -1
  59. package/dist/basic-auth.service.d.ts +3 -3
  60. package/dist/basic-auth.service.d.ts.map +1 -1
  61. package/dist/basic-auth.service.js.map +1 -1
  62. package/dist/cache-response-hono.middleware.d.ts +14 -0
  63. package/dist/cache-response-hono.middleware.d.ts.map +1 -0
  64. package/dist/cache-response-hono.middleware.js +34 -0
  65. package/dist/cache-response-hono.middleware.js.map +1 -0
  66. package/dist/cache-response.middleware.d.ts +18 -8
  67. package/dist/cache-response.middleware.d.ts.map +1 -1
  68. package/dist/cache-response.middleware.js +8 -21
  69. package/dist/cache-response.middleware.js.map +1 -1
  70. package/dist/command-bus-collecting.adapter.d.ts +10 -0
  71. package/dist/command-bus-collecting.adapter.d.ts.map +1 -0
  72. package/dist/command-bus-collecting.adapter.js +8 -0
  73. package/dist/command-bus-collecting.adapter.js.map +1 -0
  74. package/dist/command-bus-emittery-v1.adapter.d.ts +11 -0
  75. package/dist/command-bus-emittery-v1.adapter.d.ts.map +1 -0
  76. package/dist/command-bus-emittery-v1.adapter.js +14 -0
  77. package/dist/command-bus-emittery-v1.adapter.js.map +1 -0
  78. package/dist/command-bus-noop.adapter.d.ts +9 -0
  79. package/dist/command-bus-noop.adapter.d.ts.map +1 -0
  80. package/dist/command-bus-noop.adapter.js +5 -0
  81. package/dist/command-bus-noop.adapter.js.map +1 -0
  82. package/dist/command-bus-with-logger.adapter.d.ts +18 -0
  83. package/dist/command-bus-with-logger.adapter.d.ts.map +1 -0
  84. package/dist/command-bus-with-logger.adapter.js +21 -0
  85. package/dist/command-bus-with-logger.adapter.js.map +1 -0
  86. package/dist/command-bus.port.d.ts +8 -0
  87. package/dist/command-bus.port.d.ts.map +1 -0
  88. package/dist/command-bus.port.js +2 -0
  89. package/dist/command-bus.port.js.map +1 -0
  90. package/dist/correlation-hono.middleware.d.ts +16 -0
  91. package/dist/correlation-hono.middleware.d.ts.map +1 -0
  92. package/dist/correlation-hono.middleware.js +20 -0
  93. package/dist/correlation-hono.middleware.js.map +1 -0
  94. package/dist/correlation-id.middleware.d.ts +14 -0
  95. package/dist/correlation-id.middleware.d.ts.map +1 -0
  96. package/dist/correlation-id.middleware.js +16 -0
  97. package/dist/correlation-id.middleware.js.map +1 -0
  98. package/dist/correlation-storage.service.d.ts +0 -1
  99. package/dist/correlation-storage.service.d.ts.map +1 -1
  100. package/dist/correlation-storage.service.js +0 -2
  101. package/dist/correlation-storage.service.js.map +1 -1
  102. package/dist/crypto-key-provider-with-cache.adapter.d.ts +5 -4
  103. package/dist/crypto-key-provider-with-cache.adapter.d.ts.map +1 -1
  104. package/dist/crypto-key-provider-with-cache.adapter.js +5 -5
  105. package/dist/crypto-key-provider-with-cache.adapter.js.map +1 -1
  106. package/dist/dispatching-event-store.d.ts +2 -3
  107. package/dist/dispatching-event-store.d.ts.map +1 -1
  108. package/dist/dispatching-event-store.js.map +1 -1
  109. package/dist/environment-loader-process-safe.adapter.d.ts.map +1 -1
  110. package/dist/environment-loader-process-safe.adapter.js +3 -3
  111. package/dist/environment-loader-process-safe.adapter.js.map +1 -1
  112. package/dist/etag-extractor-hono.middleware.d.ts +13 -0
  113. package/dist/etag-extractor-hono.middleware.d.ts.map +1 -0
  114. package/dist/etag-extractor-hono.middleware.js +17 -0
  115. package/dist/etag-extractor-hono.middleware.js.map +1 -0
  116. package/dist/etag-extractor.middleware.d.ts +3 -8
  117. package/dist/etag-extractor.middleware.d.ts.map +1 -1
  118. package/dist/etag-extractor.middleware.js +5 -9
  119. package/dist/etag-extractor.middleware.js.map +1 -1
  120. package/dist/event-bus-collecting.adapter.d.ts +10 -0
  121. package/dist/event-bus-collecting.adapter.d.ts.map +1 -0
  122. package/dist/event-bus-collecting.adapter.js +8 -0
  123. package/dist/event-bus-collecting.adapter.js.map +1 -0
  124. package/dist/event-bus-emittery-v1.adapter.d.ts +11 -0
  125. package/dist/event-bus-emittery-v1.adapter.d.ts.map +1 -0
  126. package/dist/event-bus-emittery-v1.adapter.js +14 -0
  127. package/dist/event-bus-emittery-v1.adapter.js.map +1 -0
  128. package/dist/event-bus-noop.adapter.d.ts +9 -0
  129. package/dist/event-bus-noop.adapter.d.ts.map +1 -0
  130. package/dist/event-bus-noop.adapter.js +5 -0
  131. package/dist/event-bus-noop.adapter.js.map +1 -0
  132. package/dist/event-bus-with-logger.adapter.d.ts +18 -0
  133. package/dist/event-bus-with-logger.adapter.d.ts.map +1 -0
  134. package/dist/event-bus-with-logger.adapter.js +21 -0
  135. package/dist/event-bus-with-logger.adapter.js.map +1 -0
  136. package/dist/event-bus.port.d.ts +8 -0
  137. package/dist/event-bus.port.d.ts.map +1 -0
  138. package/dist/event-bus.port.js +2 -0
  139. package/dist/event-bus.port.js.map +1 -0
  140. package/dist/event-store.d.ts +2 -2
  141. package/dist/event-store.d.ts.map +1 -1
  142. package/dist/event-store.js.map +1 -1
  143. package/dist/file-inspection-noop.adapter.d.ts +2 -2
  144. package/dist/file-inspection-noop.adapter.d.ts.map +1 -1
  145. package/dist/file-inspection-noop.adapter.js.map +1 -1
  146. package/dist/file-reader-json-with-cache.adapter.d.ts +5 -4
  147. package/dist/file-reader-json-with-cache.adapter.d.ts.map +1 -1
  148. package/dist/file-reader-json-with-cache.adapter.js +6 -6
  149. package/dist/file-reader-json-with-cache.adapter.js.map +1 -1
  150. package/dist/file-reader-raw-with-cache.adapter.d.ts +5 -4
  151. package/dist/file-reader-raw-with-cache.adapter.d.ts.map +1 -1
  152. package/dist/file-reader-raw-with-cache.adapter.js +6 -6
  153. package/dist/file-reader-raw-with-cache.adapter.js.map +1 -1
  154. package/dist/file-reader-text-with-cache.adapter.d.ts +5 -4
  155. package/dist/file-reader-text-with-cache.adapter.d.ts.map +1 -1
  156. package/dist/file-reader-text-with-cache.adapter.js +6 -6
  157. package/dist/file-reader-text-with-cache.adapter.js.map +1 -1
  158. package/dist/file-uploader-hono.middleware.d.ts +13 -0
  159. package/dist/file-uploader-hono.middleware.d.ts.map +1 -0
  160. package/dist/file-uploader-hono.middleware.js +37 -0
  161. package/dist/file-uploader-hono.middleware.js.map +1 -0
  162. package/dist/file-uploader.middleware.d.ts +19 -8
  163. package/dist/file-uploader.middleware.d.ts.map +1 -1
  164. package/dist/file-uploader.middleware.js +24 -26
  165. package/dist/file-uploader.middleware.js.map +1 -1
  166. package/dist/handler-hono.port.d.ts +5 -0
  167. package/dist/handler-hono.port.d.ts.map +1 -0
  168. package/dist/handler-hono.port.js +2 -0
  169. package/dist/handler-hono.port.js.map +1 -0
  170. package/dist/hash-bucket.vo.d.ts +9 -0
  171. package/dist/hash-bucket.vo.d.ts.map +1 -0
  172. package/dist/hash-bucket.vo.js +17 -0
  173. package/dist/hash-bucket.vo.js.map +1 -0
  174. package/dist/healthcheck-hono.handler.d.ts +87 -0
  175. package/dist/healthcheck-hono.handler.d.ts.map +1 -0
  176. package/dist/healthcheck-hono.handler.js +17 -0
  177. package/dist/healthcheck-hono.handler.js.map +1 -0
  178. package/dist/healthcheck.handler.d.ts +83 -0
  179. package/dist/healthcheck.handler.d.ts.map +1 -0
  180. package/dist/{healthcheck.service.js → healthcheck.handler.js} +21 -19
  181. package/dist/healthcheck.handler.js.map +1 -0
  182. package/dist/http-logger-hono.middleware.d.ts +17 -0
  183. package/dist/http-logger-hono.middleware.d.ts.map +1 -0
  184. package/dist/http-logger-hono.middleware.js +37 -0
  185. package/dist/http-logger-hono.middleware.js.map +1 -0
  186. package/dist/http-logger.middleware.d.ts +19 -4
  187. package/dist/http-logger.middleware.d.ts.map +1 -1
  188. package/dist/http-logger.middleware.js +31 -41
  189. package/dist/http-logger.middleware.js.map +1 -1
  190. package/dist/i18n.service.d.ts +1 -1
  191. package/dist/i18n.service.d.ts.map +1 -1
  192. package/dist/image-info-noop.adapter.d.ts +1 -1
  193. package/dist/image-info-noop.adapter.d.ts.map +1 -1
  194. package/dist/image-info-noop.adapter.js +1 -1
  195. package/dist/image-info-noop.adapter.js.map +1 -1
  196. package/dist/image-info-sharp.adapter.d.ts +1 -1
  197. package/dist/image-info-sharp.adapter.d.ts.map +1 -1
  198. package/dist/image-info-sharp.adapter.js +3 -3
  199. package/dist/image-info-sharp.adapter.js.map +1 -1
  200. package/dist/image-info.port.d.ts +1 -1
  201. package/dist/image-info.port.d.ts.map +1 -1
  202. package/dist/in-flight-requests-hono.middleware.d.ts +7 -0
  203. package/dist/in-flight-requests-hono.middleware.d.ts.map +1 -0
  204. package/dist/in-flight-requests-hono.middleware.js +16 -0
  205. package/dist/in-flight-requests-hono.middleware.js.map +1 -0
  206. package/dist/in-flight-requests-tracker.service.d.ts.map +1 -1
  207. package/dist/in-flight-requests-tracker.service.js +0 -1
  208. package/dist/in-flight-requests-tracker.service.js.map +1 -1
  209. package/dist/in-flight-requests.middleware.d.ts +3 -2
  210. package/dist/in-flight-requests.middleware.d.ts.map +1 -1
  211. package/dist/in-flight-requests.middleware.js +6 -10
  212. package/dist/in-flight-requests.middleware.js.map +1 -1
  213. package/dist/index.d.ts +80 -28
  214. package/dist/index.d.ts.map +1 -1
  215. package/dist/index.js +80 -28
  216. package/dist/index.js.map +1 -1
  217. package/dist/invariant-error-handler.service.d.ts +1 -2
  218. package/dist/invariant-error-handler.service.d.ts.map +1 -1
  219. package/dist/invariant-error-handler.service.js.map +1 -1
  220. package/dist/invariant.service.d.ts +2 -2
  221. package/dist/invariant.service.d.ts.map +1 -1
  222. package/dist/mailer-resend.adapter.d.ts +2 -2
  223. package/dist/mailer-resend.adapter.d.ts.map +1 -1
  224. package/dist/mailer-resend.adapter.js.map +1 -1
  225. package/dist/mailer-smtp.adapter.d.ts +2 -2
  226. package/dist/mailer-smtp.adapter.d.ts.map +1 -1
  227. package/dist/mailer-smtp.adapter.js.map +1 -1
  228. package/dist/middleware-hono-noop.adapter.d.ts +6 -0
  229. package/dist/middleware-hono-noop.adapter.d.ts.map +1 -0
  230. package/dist/middleware-hono-noop.adapter.js +6 -0
  231. package/dist/middleware-hono-noop.adapter.js.map +1 -0
  232. package/dist/middleware-hono.port.d.ts +5 -0
  233. package/dist/middleware-hono.port.d.ts.map +1 -0
  234. package/dist/middleware-hono.port.js +2 -0
  235. package/dist/middleware-hono.port.js.map +1 -0
  236. package/dist/modules/preferences/invariants/user-language-has-changed.d.ts +6 -6
  237. package/dist/modules/preferences/invariants/user-language-has-changed.d.ts.map +1 -1
  238. package/dist/modules/preferences/invariants/user-language-has-changed.js.map +1 -1
  239. package/dist/ping-hono.handler.d.ts +6 -0
  240. package/dist/ping-hono.handler.d.ts.map +1 -0
  241. package/dist/ping-hono.handler.js +13 -0
  242. package/dist/ping-hono.handler.js.map +1 -0
  243. package/dist/ping.handler.d.ts +4 -0
  244. package/dist/ping.handler.d.ts.map +1 -0
  245. package/dist/ping.handler.js +6 -0
  246. package/dist/ping.handler.js.map +1 -0
  247. package/dist/prerequisite-verifier-binary.adapter.d.ts +5 -3
  248. package/dist/prerequisite-verifier-binary.adapter.d.ts.map +1 -1
  249. package/dist/prerequisite-verifier-binary.adapter.js.map +1 -1
  250. package/dist/prerequisite-verifier-bun.adapter.d.ts +6 -4
  251. package/dist/prerequisite-verifier-bun.adapter.d.ts.map +1 -1
  252. package/dist/prerequisite-verifier-bun.adapter.js.map +1 -1
  253. package/dist/prerequisite-verifier-clock-drift.adapter.d.ts +4 -3
  254. package/dist/prerequisite-verifier-clock-drift.adapter.d.ts.map +1 -1
  255. package/dist/prerequisite-verifier-clock-drift.adapter.js.map +1 -1
  256. package/dist/prerequisite-verifier-directory.adapter.d.ts +5 -4
  257. package/dist/prerequisite-verifier-directory.adapter.d.ts.map +1 -1
  258. package/dist/prerequisite-verifier-directory.adapter.js.map +1 -1
  259. package/dist/prerequisite-verifier-dns.adapter.d.ts +5 -3
  260. package/dist/prerequisite-verifier-dns.adapter.d.ts.map +1 -1
  261. package/dist/prerequisite-verifier-dns.adapter.js.map +1 -1
  262. package/dist/prerequisite-verifier-external-api.adapter.d.ts +5 -3
  263. package/dist/prerequisite-verifier-external-api.adapter.d.ts.map +1 -1
  264. package/dist/prerequisite-verifier-external-api.adapter.js.map +1 -1
  265. package/dist/prerequisite-verifier-file.adapter.d.ts +5 -4
  266. package/dist/prerequisite-verifier-file.adapter.d.ts.map +1 -1
  267. package/dist/prerequisite-verifier-file.adapter.js.map +1 -1
  268. package/dist/prerequisite-verifier-jobs.adapter.d.ts +5 -3
  269. package/dist/prerequisite-verifier-jobs.adapter.d.ts.map +1 -1
  270. package/dist/prerequisite-verifier-jobs.adapter.js.map +1 -1
  271. package/dist/prerequisite-verifier-memory.adapter.d.ts +5 -3
  272. package/dist/prerequisite-verifier-memory.adapter.d.ts.map +1 -1
  273. package/dist/prerequisite-verifier-memory.adapter.js.map +1 -1
  274. package/dist/prerequisite-verifier-node.adapter.d.ts +6 -4
  275. package/dist/prerequisite-verifier-node.adapter.d.ts.map +1 -1
  276. package/dist/prerequisite-verifier-node.adapter.js.map +1 -1
  277. package/dist/prerequisite-verifier-os.adapter.d.ts +5 -3
  278. package/dist/prerequisite-verifier-os.adapter.d.ts.map +1 -1
  279. package/dist/prerequisite-verifier-os.adapter.js.map +1 -1
  280. package/dist/prerequisite-verifier-port.adapter.d.ts +5 -3
  281. package/dist/prerequisite-verifier-port.adapter.d.ts.map +1 -1
  282. package/dist/prerequisite-verifier-port.adapter.js.map +1 -1
  283. package/dist/prerequisite-verifier-ram.adapter.d.ts +5 -3
  284. package/dist/prerequisite-verifier-ram.adapter.d.ts.map +1 -1
  285. package/dist/prerequisite-verifier-ram.adapter.js.map +1 -1
  286. package/dist/prerequisite-verifier-running-user.adapter.d.ts +5 -3
  287. package/dist/prerequisite-verifier-running-user.adapter.d.ts.map +1 -1
  288. package/dist/prerequisite-verifier-running-user.adapter.js.map +1 -1
  289. package/dist/prerequisite-verifier-space.adapter.d.ts +4 -3
  290. package/dist/prerequisite-verifier-space.adapter.d.ts.map +1 -1
  291. package/dist/prerequisite-verifier-space.adapter.js.map +1 -1
  292. package/dist/prerequisite-verifier-sqlite.adapter.d.ts +5 -3
  293. package/dist/prerequisite-verifier-sqlite.adapter.d.ts.map +1 -1
  294. package/dist/prerequisite-verifier-sqlite.adapter.js.map +1 -1
  295. package/dist/prerequisite-verifier-ssl-certificate-expiry.adapter.d.ts +5 -4
  296. package/dist/prerequisite-verifier-ssl-certificate-expiry.adapter.d.ts.map +1 -1
  297. package/dist/prerequisite-verifier-ssl-certificate-expiry.adapter.js.map +1 -1
  298. package/dist/prerequisite-verifier-timezone-utc.adapter.d.ts +5 -3
  299. package/dist/prerequisite-verifier-timezone-utc.adapter.d.ts.map +1 -1
  300. package/dist/prerequisite-verifier-timezone-utc.adapter.js.map +1 -1
  301. package/dist/prerequisite-verifier-translations.adapter.d.ts +1 -1
  302. package/dist/prerequisite-verifier-translations.adapter.d.ts.map +1 -1
  303. package/dist/prerequisite-verifier-translations.adapter.js.map +1 -1
  304. package/dist/prerequisite-verifier-with-cache.adapter.d.ts +5 -4
  305. package/dist/prerequisite-verifier-with-cache.adapter.d.ts.map +1 -1
  306. package/dist/prerequisite-verifier-with-cache.adapter.js +6 -6
  307. package/dist/prerequisite-verifier-with-cache.adapter.js.map +1 -1
  308. package/dist/prerequisite-verifier-with-fail-safe.adapter.d.ts +2 -2
  309. package/dist/prerequisite-verifier-with-fail-safe.adapter.d.ts.map +1 -1
  310. package/dist/prerequisite-verifier-with-fail-safe.adapter.js.map +1 -1
  311. package/dist/prerequisite-verifier-with-logger.adapter.d.ts +4 -3
  312. package/dist/prerequisite-verifier-with-logger.adapter.d.ts.map +1 -1
  313. package/dist/prerequisite-verifier-with-logger.adapter.js.map +1 -1
  314. package/dist/prerequisite-verifier-with-retry.adapter.d.ts +6 -5
  315. package/dist/prerequisite-verifier-with-retry.adapter.d.ts.map +1 -1
  316. package/dist/prerequisite-verifier-with-retry.adapter.js.map +1 -1
  317. package/dist/prerequisite-verifier-with-timeout.adapter.d.ts +5 -4
  318. package/dist/prerequisite-verifier-with-timeout.adapter.d.ts.map +1 -1
  319. package/dist/prerequisite-verifier-with-timeout.adapter.js.map +1 -1
  320. package/dist/prerequisite-verifier.decorator.d.ts +4 -4
  321. package/dist/prerequisite-verifier.decorator.d.ts.map +1 -1
  322. package/dist/prerequisite-verifier.decorator.js.map +1 -1
  323. package/dist/prerequisite.vo.d.ts +2 -2
  324. package/dist/prerequisite.vo.d.ts.map +1 -1
  325. package/dist/prerequisite.vo.js.map +1 -1
  326. package/dist/remote-file-storage-disk.adapter.d.ts +4 -4
  327. package/dist/remote-file-storage-disk.adapter.d.ts.map +1 -1
  328. package/dist/remote-file-storage-disk.adapter.js.map +1 -1
  329. package/dist/request-context-hono.adapter.d.ts +1 -1
  330. package/dist/request-context-hono.adapter.d.ts.map +1 -1
  331. package/dist/request-context-hono.adapter.js +10 -1
  332. package/dist/request-context-hono.adapter.js.map +1 -1
  333. package/dist/request-context.port.d.ts +18 -0
  334. package/dist/request-context.port.d.ts.map +1 -1
  335. package/dist/retry.service.d.ts +5 -5
  336. package/dist/retry.service.d.ts.map +1 -1
  337. package/dist/retry.service.js.map +1 -1
  338. package/dist/security-countermeasure-ban.strategy.d.ts +8 -7
  339. package/dist/security-countermeasure-ban.strategy.d.ts.map +1 -1
  340. package/dist/security-countermeasure-ban.strategy.js.map +1 -1
  341. package/dist/security-countermeasure-mirage.strategy.d.ts +6 -5
  342. package/dist/security-countermeasure-mirage.strategy.d.ts.map +1 -1
  343. package/dist/security-countermeasure-mirage.strategy.js.map +1 -1
  344. package/dist/security-countermeasure-tarpit.strategy.d.ts +5 -4
  345. package/dist/security-countermeasure-tarpit.strategy.d.ts.map +1 -1
  346. package/dist/security-countermeasure-tarpit.strategy.js.map +1 -1
  347. package/dist/security-rule-violation-threshold.strategy.d.ts +4 -3
  348. package/dist/security-rule-violation-threshold.strategy.d.ts.map +1 -1
  349. package/dist/security-rule-violation-threshold.strategy.js +4 -4
  350. package/dist/security-rule-violation-threshold.strategy.js.map +1 -1
  351. package/dist/setup-hono.service.d.ts +31 -0
  352. package/dist/setup-hono.service.d.ts.map +1 -0
  353. package/dist/{setup.service.js → setup-hono.service.js} +25 -33
  354. package/dist/setup-hono.service.js.map +1 -0
  355. package/dist/shield-api-key-hono.strategy.d.ts +11 -0
  356. package/dist/shield-api-key-hono.strategy.d.ts.map +1 -0
  357. package/dist/shield-api-key-hono.strategy.js +19 -0
  358. package/dist/shield-api-key-hono.strategy.js.map +1 -0
  359. package/dist/shield-api-key.strategy.d.ts +9 -9
  360. package/dist/shield-api-key.strategy.d.ts.map +1 -1
  361. package/dist/shield-api-key.strategy.js +5 -11
  362. package/dist/shield-api-key.strategy.js.map +1 -1
  363. package/dist/shield-auth-hono.strategy.d.ts +16 -0
  364. package/dist/shield-auth-hono.strategy.d.ts.map +1 -0
  365. package/dist/shield-auth-hono.strategy.js +31 -0
  366. package/dist/shield-auth-hono.strategy.js.map +1 -0
  367. package/dist/shield-auth.strategy.d.ts +8 -7
  368. package/dist/shield-auth.strategy.d.ts.map +1 -1
  369. package/dist/shield-auth.strategy.js +10 -23
  370. package/dist/shield-auth.strategy.js.map +1 -1
  371. package/dist/shield-basic-auth-hono.strategy.d.ts +11 -0
  372. package/dist/shield-basic-auth-hono.strategy.d.ts.map +1 -0
  373. package/dist/shield-basic-auth-hono.strategy.js +21 -0
  374. package/dist/shield-basic-auth-hono.strategy.js.map +1 -0
  375. package/dist/shield-basic-auth.strategy.d.ts +9 -7
  376. package/dist/shield-basic-auth.strategy.d.ts.map +1 -1
  377. package/dist/shield-basic-auth.strategy.js +18 -5
  378. package/dist/shield-basic-auth.strategy.js.map +1 -1
  379. package/dist/shield-body-limit-hono.strategy.d.ts +10 -0
  380. package/dist/shield-body-limit-hono.strategy.d.ts.map +1 -0
  381. package/dist/shield-body-limit-hono.strategy.js +21 -0
  382. package/dist/shield-body-limit-hono.strategy.js.map +1 -0
  383. package/dist/shield-body-limit.strategy.d.ts +14 -0
  384. package/dist/shield-body-limit.strategy.d.ts.map +1 -0
  385. package/dist/shield-body-limit.strategy.js +19 -0
  386. package/dist/shield-body-limit.strategy.js.map +1 -0
  387. package/dist/shield-csrf-hono.strategy.d.ts +11 -0
  388. package/dist/shield-csrf-hono.strategy.d.ts.map +1 -0
  389. package/dist/shield-csrf-hono.strategy.js +19 -0
  390. package/dist/shield-csrf-hono.strategy.js.map +1 -0
  391. package/dist/shield-csrf.strategy.d.ts +8 -7
  392. package/dist/shield-csrf.strategy.d.ts.map +1 -1
  393. package/dist/shield-csrf.strategy.js +7 -11
  394. package/dist/shield-csrf.strategy.js.map +1 -1
  395. package/dist/shield-hcaptcha-hono-local.strategy.d.ts +14 -0
  396. package/dist/shield-hcaptcha-hono-local.strategy.d.ts.map +1 -0
  397. package/dist/shield-hcaptcha-hono-local.strategy.js +20 -0
  398. package/dist/shield-hcaptcha-hono-local.strategy.js.map +1 -0
  399. package/dist/shield-hcaptcha-hono.strategy.d.ts +11 -0
  400. package/dist/shield-hcaptcha-hono.strategy.d.ts.map +1 -0
  401. package/dist/shield-hcaptcha-hono.strategy.js +19 -0
  402. package/dist/shield-hcaptcha-hono.strategy.js.map +1 -0
  403. package/dist/shield-hcaptcha.strategy.d.ts +5 -5
  404. package/dist/shield-hcaptcha.strategy.d.ts.map +1 -1
  405. package/dist/shield-hcaptcha.strategy.js +6 -12
  406. package/dist/shield-hcaptcha.strategy.js.map +1 -1
  407. package/dist/shield-maintenance-hono.strategy.d.ts +9 -0
  408. package/dist/shield-maintenance-hono.strategy.d.ts.map +1 -0
  409. package/dist/shield-maintenance-hono.strategy.js +18 -0
  410. package/dist/shield-maintenance-hono.strategy.js.map +1 -0
  411. package/dist/shield-maintenance.strategy.d.ts +15 -0
  412. package/dist/shield-maintenance.strategy.d.ts.map +1 -0
  413. package/dist/shield-maintenance.strategy.js +13 -0
  414. package/dist/shield-maintenance.strategy.js.map +1 -0
  415. package/dist/shield-rate-limit-hono.strategy.d.ts +18 -0
  416. package/dist/shield-rate-limit-hono.strategy.d.ts.map +1 -0
  417. package/dist/shield-rate-limit-hono.strategy.js +21 -0
  418. package/dist/shield-rate-limit-hono.strategy.js.map +1 -0
  419. package/dist/shield-rate-limit.strategy.d.ts +11 -10
  420. package/dist/shield-rate-limit.strategy.d.ts.map +1 -1
  421. package/dist/shield-rate-limit.strategy.js +9 -16
  422. package/dist/shield-rate-limit.strategy.js.map +1 -1
  423. package/dist/shield-recaptcha-hono.strategy.d.ts +11 -0
  424. package/dist/shield-recaptcha-hono.strategy.d.ts.map +1 -0
  425. package/dist/shield-recaptcha-hono.strategy.js +22 -0
  426. package/dist/shield-recaptcha-hono.strategy.js.map +1 -0
  427. package/dist/shield-recaptcha.strategy.d.ts +9 -8
  428. package/dist/shield-recaptcha.strategy.d.ts.map +1 -1
  429. package/dist/shield-recaptcha.strategy.js +8 -13
  430. package/dist/shield-recaptcha.strategy.js.map +1 -1
  431. package/dist/shield-security-hono.strategy.d.ts +18 -0
  432. package/dist/shield-security-hono.strategy.d.ts.map +1 -0
  433. package/dist/shield-security-hono.strategy.js +43 -0
  434. package/dist/shield-security-hono.strategy.js.map +1 -0
  435. package/dist/shield-security.strategy.d.ts +6 -12
  436. package/dist/shield-security.strategy.d.ts.map +1 -1
  437. package/dist/shield-security.strategy.js +12 -43
  438. package/dist/shield-security.strategy.js.map +1 -1
  439. package/dist/shield-timeout-hono.strategy.d.ts +11 -0
  440. package/dist/shield-timeout-hono.strategy.d.ts.map +1 -0
  441. package/dist/shield-timeout-hono.strategy.js +15 -0
  442. package/dist/shield-timeout-hono.strategy.js.map +1 -0
  443. package/dist/shield-timeout.strategy.d.ts +7 -9
  444. package/dist/shield-timeout.strategy.d.ts.map +1 -1
  445. package/dist/shield-timeout.strategy.js +3 -7
  446. package/dist/shield-timeout.strategy.js.map +1 -1
  447. package/dist/simulated-error-hono.middleware.d.ts +8 -0
  448. package/dist/simulated-error-hono.middleware.d.ts.map +1 -0
  449. package/dist/simulated-error-hono.middleware.js +13 -0
  450. package/dist/simulated-error-hono.middleware.js.map +1 -0
  451. package/dist/simulated-error.middleware.d.ts +2 -2
  452. package/dist/simulated-error.middleware.d.ts.map +1 -1
  453. package/dist/simulated-error.middleware.js +3 -4
  454. package/dist/simulated-error.middleware.js.map +1 -1
  455. package/dist/slower-hono.middleware.d.ts +14 -0
  456. package/dist/slower-hono.middleware.d.ts.map +1 -0
  457. package/dist/slower-hono.middleware.js +14 -0
  458. package/dist/slower-hono.middleware.js.map +1 -0
  459. package/dist/slower.middleware.d.ts +5 -2
  460. package/dist/slower.middleware.d.ts.map +1 -1
  461. package/dist/slower.middleware.js +10 -6
  462. package/dist/slower.middleware.js.map +1 -1
  463. package/dist/{ssr.d.ts → ssr-bun.service.d.ts} +2 -2
  464. package/dist/ssr-bun.service.d.ts.map +1 -0
  465. package/dist/ssr-bun.service.js +14 -0
  466. package/dist/ssr-bun.service.js.map +1 -0
  467. package/dist/ssr.service.d.ts +26 -0
  468. package/dist/ssr.service.d.ts.map +1 -0
  469. package/dist/ssr.service.js +49 -0
  470. package/dist/ssr.service.js.map +1 -0
  471. package/dist/{static-files.service.d.ts → static-files-hono.service.d.ts} +2 -2
  472. package/dist/static-files-hono.service.d.ts.map +1 -0
  473. package/dist/{static-files.service.js → static-files-hono.service.js} +2 -2
  474. package/dist/static-files-hono.service.js.map +1 -0
  475. package/dist/subject-application-resolver.vo.d.ts +23 -0
  476. package/dist/subject-application-resolver.vo.d.ts.map +1 -0
  477. package/dist/{cache-subject-application-resolver.vo.js → subject-application-resolver.vo.js} +7 -7
  478. package/dist/subject-application-resolver.vo.js.map +1 -0
  479. package/dist/{cache-subject-request-resolver.vo.d.ts → subject-request-resolver.vo.d.ts} +6 -6
  480. package/dist/subject-request-resolver.vo.d.ts.map +1 -0
  481. package/dist/{cache-subject-request-resolver.vo.js → subject-request-resolver.vo.js} +7 -7
  482. package/dist/subject-request-resolver.vo.js.map +1 -0
  483. package/dist/subject-segment-application.strategy.d.ts +6 -0
  484. package/dist/subject-segment-application.strategy.d.ts.map +1 -0
  485. package/dist/subject-segment-application.strategy.js +2 -0
  486. package/dist/subject-segment-application.strategy.js.map +1 -0
  487. package/dist/subject-segment-build.strategy.d.ts +9 -0
  488. package/dist/subject-segment-build.strategy.d.ts.map +1 -0
  489. package/dist/subject-segment-build.strategy.js +13 -0
  490. package/dist/subject-segment-build.strategy.js.map +1 -0
  491. package/dist/subject-segment-cookie.strategy.d.ts +9 -0
  492. package/dist/subject-segment-cookie.strategy.d.ts.map +1 -0
  493. package/dist/subject-segment-cookie.strategy.js +11 -0
  494. package/dist/subject-segment-cookie.strategy.js.map +1 -0
  495. package/dist/subject-segment-env.strategy.d.ts +9 -0
  496. package/dist/subject-segment-env.strategy.d.ts.map +1 -0
  497. package/dist/{cache-subject-segment-env.strategy.js → subject-segment-env.strategy.js} +2 -2
  498. package/dist/subject-segment-env.strategy.js.map +1 -0
  499. package/dist/subject-segment-fixed.strategy.d.ts +8 -0
  500. package/dist/subject-segment-fixed.strategy.d.ts.map +1 -0
  501. package/dist/{cache-subject-segment-fixed.strategy.js → subject-segment-fixed.strategy.js} +2 -2
  502. package/dist/subject-segment-fixed.strategy.js.map +1 -0
  503. package/dist/subject-segment-header.strategy.d.ts +9 -0
  504. package/dist/subject-segment-header.strategy.d.ts.map +1 -0
  505. package/dist/subject-segment-header.strategy.js +11 -0
  506. package/dist/subject-segment-header.strategy.js.map +1 -0
  507. package/dist/subject-segment-ip.strategy.d.ts +6 -0
  508. package/dist/subject-segment-ip.strategy.d.ts.map +1 -0
  509. package/dist/subject-segment-ip.strategy.js +7 -0
  510. package/dist/subject-segment-ip.strategy.js.map +1 -0
  511. package/dist/subject-segment-path.strategy.d.ts +6 -0
  512. package/dist/subject-segment-path.strategy.d.ts.map +1 -0
  513. package/dist/subject-segment-path.strategy.js +6 -0
  514. package/dist/subject-segment-path.strategy.js.map +1 -0
  515. package/dist/subject-segment-query.strategy.d.ts +7 -0
  516. package/dist/subject-segment-query.strategy.d.ts.map +1 -0
  517. package/dist/subject-segment-query.strategy.js +12 -0
  518. package/dist/subject-segment-query.strategy.js.map +1 -0
  519. package/dist/subject-segment-request.strategy.d.ts +9 -0
  520. package/dist/subject-segment-request.strategy.d.ts.map +1 -0
  521. package/dist/subject-segment-request.strategy.js +2 -0
  522. package/dist/subject-segment-request.strategy.js.map +1 -0
  523. package/dist/subject-segment-user.strategy.d.ts +6 -0
  524. package/dist/subject-segment-user.strategy.d.ts.map +1 -0
  525. package/dist/subject-segment-user.strategy.js +7 -0
  526. package/dist/subject-segment-user.strategy.js.map +1 -0
  527. package/dist/time-zone-offset-hono.middleware.d.ts +12 -0
  528. package/dist/time-zone-offset-hono.middleware.d.ts.map +1 -0
  529. package/dist/time-zone-offset-hono.middleware.js +17 -0
  530. package/dist/time-zone-offset-hono.middleware.js.map +1 -0
  531. package/dist/time-zone-offset.middleware.d.ts +3 -6
  532. package/dist/time-zone-offset.middleware.d.ts.map +1 -1
  533. package/dist/time-zone-offset.middleware.js +5 -13
  534. package/dist/time-zone-offset.middleware.js.map +1 -1
  535. package/dist/timing-hono.middleware.d.ts +12 -0
  536. package/dist/timing-hono.middleware.d.ts.map +1 -0
  537. package/dist/timing-hono.middleware.js +15 -0
  538. package/dist/timing-hono.middleware.js.map +1 -0
  539. package/dist/timing.middleware.d.ts +12 -0
  540. package/dist/timing.middleware.d.ts.map +1 -0
  541. package/dist/timing.middleware.js +14 -0
  542. package/dist/timing.middleware.js.map +1 -0
  543. package/dist/trailing-slash-hono.middleware.d.ts +7 -0
  544. package/dist/trailing-slash-hono.middleware.d.ts.map +1 -0
  545. package/dist/trailing-slash-hono.middleware.js +21 -0
  546. package/dist/trailing-slash-hono.middleware.js.map +1 -0
  547. package/dist/trailing-slash.middleware.d.ts +11 -0
  548. package/dist/trailing-slash.middleware.d.ts.map +1 -0
  549. package/dist/trailing-slash.middleware.js +10 -0
  550. package/dist/trailing-slash.middleware.js.map +1 -0
  551. package/dist/translations-hono.handler.d.ts +23 -0
  552. package/dist/translations-hono.handler.d.ts.map +1 -0
  553. package/dist/translations-hono.handler.js +17 -0
  554. package/dist/translations-hono.handler.js.map +1 -0
  555. package/dist/translations.handler.d.ts +22 -0
  556. package/dist/translations.handler.d.ts.map +1 -0
  557. package/dist/translations.handler.js +18 -0
  558. package/dist/translations.handler.js.map +1 -0
  559. package/dist/tsconfig.tsbuildinfo +1 -1
  560. package/dist/weak-etag-extractor-hono.middleware.d.ts +12 -0
  561. package/dist/weak-etag-extractor-hono.middleware.d.ts.map +1 -0
  562. package/dist/weak-etag-extractor-hono.middleware.js +17 -0
  563. package/dist/weak-etag-extractor-hono.middleware.js.map +1 -0
  564. package/dist/weak-etag-extractor.middleware.d.ts +4 -5
  565. package/dist/weak-etag-extractor.middleware.d.ts.map +1 -1
  566. package/dist/weak-etag-extractor.middleware.js +5 -9
  567. package/dist/weak-etag-extractor.middleware.js.map +1 -1
  568. package/dist/woodchopper-dispatcher-async.strategy.d.ts.map +1 -1
  569. package/dist/woodchopper-dispatcher-async.strategy.js +2 -0
  570. package/dist/woodchopper-dispatcher-async.strategy.js.map +1 -1
  571. package/dist/woodchopper-sampling-correlation-id.strategy.d.ts +2 -2
  572. package/dist/woodchopper-sampling-correlation-id.strategy.d.ts.map +1 -1
  573. package/dist/woodchopper-sampling-correlation-id.strategy.js.map +1 -1
  574. package/dist/woodchopper-sampling-every-nth.strategy.d.ts +3 -2
  575. package/dist/woodchopper-sampling-every-nth.strategy.d.ts.map +1 -1
  576. package/dist/woodchopper-sampling-every-nth.strategy.js.map +1 -1
  577. package/dist/woodchopper.d.ts +2 -2
  578. package/dist/woodchopper.d.ts.map +1 -1
  579. package/dist/woodchopper.js.map +1 -1
  580. package/package.json +10 -9
  581. package/readme.md +79 -28
  582. package/src/ab-assignment-composite.strategy.ts +17 -0
  583. package/src/ab-assignment-fixed.strategy.ts +12 -0
  584. package/src/ab-assignment-hash.strategy.ts +23 -0
  585. package/src/ab-assignment-query.strategy.ts +14 -0
  586. package/src/ab-assignment.strategy.ts +7 -0
  587. package/src/ab-hono-noop.middleware.ts +26 -0
  588. package/src/ab-hono.middleware.ts +28 -0
  589. package/src/ab-variant-selector.service.ts +27 -0
  590. package/src/ab-variant-weight.vo.ts +13 -0
  591. package/src/ab-variant.vo.ts +7 -0
  592. package/src/ab-variants.vo.ts +24 -0
  593. package/src/ab.middleware.ts +15 -0
  594. package/src/api-version-hono.middleware.ts +30 -0
  595. package/src/api-version.middleware.ts +18 -17
  596. package/src/auth-session-reader.port.ts +3 -3
  597. package/src/basic-auth.service.ts +3 -3
  598. package/src/cache-response-hono.middleware.ts +53 -0
  599. package/src/cache-response.middleware.ts +27 -33
  600. package/src/command-bus-collecting.adapter.ts +15 -0
  601. package/src/command-bus-emittery-v1.adapter.ts +22 -0
  602. package/src/command-bus-noop.adapter.ts +11 -0
  603. package/src/command-bus-with-logger.adapter.ts +31 -0
  604. package/src/command-bus.port.ts +10 -0
  605. package/src/correlation-hono.middleware.ts +32 -0
  606. package/src/correlation-id.middleware.ts +20 -0
  607. package/src/correlation-storage.service.ts +0 -3
  608. package/src/crypto-key-provider-with-cache.adapter.ts +8 -6
  609. package/src/dispatching-event-store.ts +2 -2
  610. package/src/environment-loader-process-safe.adapter.ts +3 -6
  611. package/src/etag-extractor-hono.middleware.ts +27 -0
  612. package/src/etag-extractor.middleware.ts +6 -12
  613. package/src/event-bus-collecting.adapter.ts +15 -0
  614. package/src/event-bus-emittery-v1.adapter.ts +22 -0
  615. package/src/event-bus-noop.adapter.ts +11 -0
  616. package/src/event-bus-with-logger.adapter.ts +31 -0
  617. package/src/event-bus.port.ts +10 -0
  618. package/src/event-store.ts +2 -2
  619. package/src/file-inspection-noop.adapter.ts +2 -2
  620. package/src/file-reader-json-with-cache.adapter.ts +8 -7
  621. package/src/file-reader-raw-with-cache.adapter.ts +8 -7
  622. package/src/file-reader-text-with-cache.adapter.ts +8 -7
  623. package/src/file-uploader-hono.middleware.ts +47 -0
  624. package/src/file-uploader.middleware.ts +21 -25
  625. package/src/handler-hono.port.ts +5 -0
  626. package/src/hash-bucket.vo.ts +19 -0
  627. package/src/healthcheck-hono.handler.ts +31 -0
  628. package/src/healthcheck.handler.ts +150 -0
  629. package/src/http-logger-hono.middleware.ts +50 -0
  630. package/src/http-logger.middleware.ts +56 -63
  631. package/src/i18n.service.ts +1 -1
  632. package/src/image-info-noop.adapter.ts +1 -1
  633. package/src/image-info-sharp.adapter.ts +3 -3
  634. package/src/image-info.port.ts +1 -1
  635. package/src/in-flight-requests-hono.middleware.ts +19 -0
  636. package/src/in-flight-requests-tracker.service.ts +0 -2
  637. package/src/in-flight-requests.middleware.ts +7 -11
  638. package/src/index.ts +80 -28
  639. package/src/invariant-error-handler.service.ts +2 -3
  640. package/src/invariant.service.ts +2 -2
  641. package/src/mailer-resend.adapter.ts +2 -2
  642. package/src/mailer-smtp.adapter.ts +2 -2
  643. package/src/middleware-hono-noop.adapter.ts +8 -0
  644. package/src/middleware-hono.port.ts +5 -0
  645. package/src/modules/preferences/invariants/user-language-has-changed.ts +4 -7
  646. package/src/ping-hono.handler.ts +17 -0
  647. package/src/ping.handler.ts +5 -0
  648. package/src/prerequisite-verifier-binary.adapter.ts +3 -1
  649. package/src/prerequisite-verifier-bun.adapter.ts +3 -1
  650. package/src/prerequisite-verifier-clock-drift.adapter.ts +2 -1
  651. package/src/prerequisite-verifier-directory.adapter.ts +6 -4
  652. package/src/prerequisite-verifier-dns.adapter.ts +3 -1
  653. package/src/prerequisite-verifier-external-api.adapter.ts +3 -1
  654. package/src/prerequisite-verifier-file.adapter.ts +6 -4
  655. package/src/prerequisite-verifier-jobs.adapter.ts +3 -1
  656. package/src/prerequisite-verifier-memory.adapter.ts +3 -1
  657. package/src/prerequisite-verifier-node.adapter.ts +3 -1
  658. package/src/prerequisite-verifier-os.adapter.ts +3 -1
  659. package/src/prerequisite-verifier-port.adapter.ts +3 -1
  660. package/src/prerequisite-verifier-ram.adapter.ts +3 -1
  661. package/src/prerequisite-verifier-running-user.adapter.ts +3 -1
  662. package/src/prerequisite-verifier-space.adapter.ts +2 -1
  663. package/src/prerequisite-verifier-sqlite.adapter.ts +3 -1
  664. package/src/prerequisite-verifier-ssl-certificate-expiry.adapter.ts +3 -1
  665. package/src/prerequisite-verifier-timezone-utc.adapter.ts +3 -1
  666. package/src/prerequisite-verifier-translations.adapter.ts +1 -2
  667. package/src/prerequisite-verifier-with-cache.adapter.ts +8 -7
  668. package/src/prerequisite-verifier-with-fail-safe.adapter.ts +4 -4
  669. package/src/prerequisite-verifier-with-logger.adapter.ts +3 -1
  670. package/src/prerequisite-verifier-with-retry.adapter.ts +3 -2
  671. package/src/prerequisite-verifier-with-timeout.adapter.ts +2 -1
  672. package/src/prerequisite-verifier.decorator.ts +4 -4
  673. package/src/prerequisite.vo.ts +2 -5
  674. package/src/remote-file-storage-disk.adapter.ts +3 -3
  675. package/src/request-context-hono.adapter.ts +12 -1
  676. package/src/request-context.port.ts +15 -0
  677. package/src/retry.service.ts +4 -4
  678. package/src/security-countermeasure-ban.strategy.ts +6 -4
  679. package/src/security-countermeasure-mirage.strategy.ts +2 -1
  680. package/src/security-countermeasure-tarpit.strategy.ts +2 -1
  681. package/src/security-rule-violation-threshold.strategy.ts +7 -6
  682. package/src/{setup.service.ts → setup-hono.service.ts} +36 -43
  683. package/src/shield-api-key-hono.strategy.ts +28 -0
  684. package/src/shield-api-key.strategy.ts +9 -15
  685. package/src/shield-auth-hono.strategy.ts +41 -0
  686. package/src/shield-auth.strategy.ts +12 -26
  687. package/src/shield-basic-auth-hono.strategy.ts +30 -0
  688. package/src/shield-basic-auth.strategy.ts +21 -10
  689. package/src/shield-body-limit-hono.strategy.ts +30 -0
  690. package/src/shield-body-limit.strategy.ts +23 -0
  691. package/src/shield-csrf-hono.strategy.ts +24 -0
  692. package/src/shield-csrf.strategy.ts +11 -16
  693. package/src/shield-hcaptcha-hono-local.strategy.ts +26 -0
  694. package/src/shield-hcaptcha-hono.strategy.ts +25 -0
  695. package/src/shield-hcaptcha.strategy.ts +7 -13
  696. package/src/shield-maintenance-hono.strategy.ts +23 -0
  697. package/src/shield-maintenance.strategy.ts +17 -0
  698. package/src/shield-rate-limit-hono.strategy.ts +34 -0
  699. package/src/shield-rate-limit.strategy.ts +11 -19
  700. package/src/shield-recaptcha-hono.strategy.ts +31 -0
  701. package/src/shield-recaptcha.strategy.ts +14 -20
  702. package/src/shield-security-hono.strategy.ts +62 -0
  703. package/src/shield-security.strategy.ts +19 -62
  704. package/src/shield-timeout-hono.strategy.ts +25 -0
  705. package/src/shield-timeout.strategy.ts +4 -14
  706. package/src/simulated-error-hono.middleware.ts +17 -0
  707. package/src/simulated-error.middleware.ts +4 -7
  708. package/src/slower-hono.middleware.ts +23 -0
  709. package/src/slower.middleware.ts +8 -7
  710. package/src/ssr-bun.service.ts +25 -0
  711. package/src/ssr.service.ts +66 -0
  712. package/src/{static-files.service.ts → static-files-hono.service.ts} +1 -1
  713. package/src/subject-application-resolver.vo.ts +34 -0
  714. package/src/subject-request-resolver.vo.ts +34 -0
  715. package/src/subject-segment-application.strategy.ts +7 -0
  716. package/src/subject-segment-build.strategy.ts +15 -0
  717. package/src/subject-segment-cookie.strategy.ts +14 -0
  718. package/src/subject-segment-env.strategy.ts +11 -0
  719. package/src/subject-segment-fixed.strategy.ts +12 -0
  720. package/src/subject-segment-header.strategy.ts +14 -0
  721. package/src/subject-segment-ip.strategy.ts +12 -0
  722. package/src/subject-segment-path.strategy.ts +8 -0
  723. package/src/subject-segment-query.strategy.ts +19 -0
  724. package/src/{cache-subject-segment-request.strategy.ts → subject-segment-request.strategy.ts} +4 -4
  725. package/src/subject-segment-user.strategy.ts +12 -0
  726. package/src/time-zone-offset-hono.middleware.ts +26 -0
  727. package/src/time-zone-offset.middleware.ts +6 -18
  728. package/src/timing-hono.middleware.ts +22 -0
  729. package/src/timing.middleware.ts +18 -0
  730. package/src/trailing-slash-hono.middleware.ts +27 -0
  731. package/src/trailing-slash.middleware.ts +11 -0
  732. package/src/translations-hono.handler.ts +26 -0
  733. package/src/translations.handler.ts +31 -0
  734. package/src/weak-etag-extractor-hono.middleware.ts +26 -0
  735. package/src/weak-etag-extractor.middleware.ts +6 -11
  736. package/src/woodchopper-dispatcher-async.strategy.ts +2 -0
  737. package/src/woodchopper-sampling-correlation-id.strategy.ts +2 -2
  738. package/src/woodchopper-sampling-every-nth.strategy.ts +2 -2
  739. package/src/woodchopper.ts +2 -2
  740. package/dist/cache-subject-application-resolver.vo.d.ts +0 -23
  741. package/dist/cache-subject-application-resolver.vo.d.ts.map +0 -1
  742. package/dist/cache-subject-application-resolver.vo.js.map +0 -1
  743. package/dist/cache-subject-request-resolver.vo.d.ts.map +0 -1
  744. package/dist/cache-subject-request-resolver.vo.js.map +0 -1
  745. package/dist/cache-subject-segment-application.strategy.d.ts +0 -6
  746. package/dist/cache-subject-segment-application.strategy.d.ts.map +0 -1
  747. package/dist/cache-subject-segment-application.strategy.js +0 -2
  748. package/dist/cache-subject-segment-application.strategy.js.map +0 -1
  749. package/dist/cache-subject-segment-build.strategy.d.ts +0 -9
  750. package/dist/cache-subject-segment-build.strategy.d.ts.map +0 -1
  751. package/dist/cache-subject-segment-build.strategy.js +0 -13
  752. package/dist/cache-subject-segment-build.strategy.js.map +0 -1
  753. package/dist/cache-subject-segment-cookie.strategy.d.ts +0 -9
  754. package/dist/cache-subject-segment-cookie.strategy.d.ts.map +0 -1
  755. package/dist/cache-subject-segment-cookie.strategy.js +0 -11
  756. package/dist/cache-subject-segment-cookie.strategy.js.map +0 -1
  757. package/dist/cache-subject-segment-env.strategy.d.ts +0 -9
  758. package/dist/cache-subject-segment-env.strategy.d.ts.map +0 -1
  759. package/dist/cache-subject-segment-env.strategy.js.map +0 -1
  760. package/dist/cache-subject-segment-fixed.strategy.d.ts +0 -8
  761. package/dist/cache-subject-segment-fixed.strategy.d.ts.map +0 -1
  762. package/dist/cache-subject-segment-fixed.strategy.js.map +0 -1
  763. package/dist/cache-subject-segment-header.strategy.d.ts +0 -9
  764. package/dist/cache-subject-segment-header.strategy.d.ts.map +0 -1
  765. package/dist/cache-subject-segment-header.strategy.js +0 -11
  766. package/dist/cache-subject-segment-header.strategy.js.map +0 -1
  767. package/dist/cache-subject-segment-ip.strategy.d.ts +0 -6
  768. package/dist/cache-subject-segment-ip.strategy.d.ts.map +0 -1
  769. package/dist/cache-subject-segment-ip.strategy.js +0 -7
  770. package/dist/cache-subject-segment-ip.strategy.js.map +0 -1
  771. package/dist/cache-subject-segment-path.strategy.d.ts +0 -6
  772. package/dist/cache-subject-segment-path.strategy.d.ts.map +0 -1
  773. package/dist/cache-subject-segment-path.strategy.js +0 -6
  774. package/dist/cache-subject-segment-path.strategy.js.map +0 -1
  775. package/dist/cache-subject-segment-query.strategy.d.ts +0 -7
  776. package/dist/cache-subject-segment-query.strategy.d.ts.map +0 -1
  777. package/dist/cache-subject-segment-query.strategy.js +0 -12
  778. package/dist/cache-subject-segment-query.strategy.js.map +0 -1
  779. package/dist/cache-subject-segment-request.strategy.d.ts +0 -9
  780. package/dist/cache-subject-segment-request.strategy.d.ts.map +0 -1
  781. package/dist/cache-subject-segment-request.strategy.js +0 -2
  782. package/dist/cache-subject-segment-request.strategy.js.map +0 -1
  783. package/dist/cache-subject-segment-user.strategy.d.ts +0 -6
  784. package/dist/cache-subject-segment-user.strategy.d.ts.map +0 -1
  785. package/dist/cache-subject-segment-user.strategy.js +0 -7
  786. package/dist/cache-subject-segment-user.strategy.js.map +0 -1
  787. package/dist/command-logger.service.d.ts +0 -13
  788. package/dist/command-logger.service.d.ts.map +0 -1
  789. package/dist/command-logger.service.js +0 -16
  790. package/dist/command-logger.service.js.map +0 -1
  791. package/dist/context.middleware.d.ts +0 -14
  792. package/dist/context.middleware.d.ts.map +0 -1
  793. package/dist/context.middleware.js +0 -11
  794. package/dist/context.middleware.js.map +0 -1
  795. package/dist/event-bus-like.types.d.ts +0 -12
  796. package/dist/event-bus-like.types.d.ts.map +0 -1
  797. package/dist/event-bus-like.types.js +0 -2
  798. package/dist/event-bus-like.types.js.map +0 -1
  799. package/dist/event-logger.service.d.ts +0 -13
  800. package/dist/event-logger.service.d.ts.map +0 -1
  801. package/dist/event-logger.service.js +0 -16
  802. package/dist/event-logger.service.js.map +0 -1
  803. package/dist/event-publisher.types.d.ts +0 -4
  804. package/dist/event-publisher.types.d.ts.map +0 -1
  805. package/dist/event-publisher.types.js +0 -2
  806. package/dist/event-publisher.types.js.map +0 -1
  807. package/dist/healthcheck.service.d.ts +0 -96
  808. package/dist/healthcheck.service.d.ts.map +0 -1
  809. package/dist/healthcheck.service.js.map +0 -1
  810. package/dist/maintenance-mode.middleware.d.ts +0 -11
  811. package/dist/maintenance-mode.middleware.d.ts.map +0 -1
  812. package/dist/maintenance-mode.middleware.js +0 -12
  813. package/dist/maintenance-mode.middleware.js.map +0 -1
  814. package/dist/ping.service.d.ts +0 -4
  815. package/dist/ping.service.d.ts.map +0 -1
  816. package/dist/ping.service.js +0 -6
  817. package/dist/ping.service.js.map +0 -1
  818. package/dist/setup.service.d.ts +0 -35
  819. package/dist/setup.service.d.ts.map +0 -1
  820. package/dist/setup.service.js.map +0 -1
  821. package/dist/shield-hcaptcha-local.strategy.d.ts +0 -11
  822. package/dist/shield-hcaptcha-local.strategy.d.ts.map +0 -1
  823. package/dist/shield-hcaptcha-local.strategy.js +0 -23
  824. package/dist/shield-hcaptcha-local.strategy.js.map +0 -1
  825. package/dist/shield-noop.strategy.d.ts +0 -5
  826. package/dist/shield-noop.strategy.d.ts.map +0 -1
  827. package/dist/shield-noop.strategy.js +0 -5
  828. package/dist/shield-noop.strategy.js.map +0 -1
  829. package/dist/shield.strategy.d.ts +0 -5
  830. package/dist/shield.strategy.d.ts.map +0 -1
  831. package/dist/shield.strategy.js +0 -2
  832. package/dist/shield.strategy.js.map +0 -1
  833. package/dist/ssr.d.ts.map +0 -1
  834. package/dist/ssr.js +0 -43
  835. package/dist/ssr.js.map +0 -1
  836. package/dist/static-files.service.d.ts.map +0 -1
  837. package/dist/static-files.service.js.map +0 -1
  838. package/dist/translations.service.d.ts +0 -21
  839. package/dist/translations.service.d.ts.map +0 -1
  840. package/dist/translations.service.js +0 -11
  841. package/dist/translations.service.js.map +0 -1
  842. package/src/cache-subject-application-resolver.vo.ts +0 -34
  843. package/src/cache-subject-request-resolver.vo.ts +0 -39
  844. package/src/cache-subject-segment-application.strategy.ts +0 -7
  845. package/src/cache-subject-segment-build.strategy.ts +0 -15
  846. package/src/cache-subject-segment-cookie.strategy.ts +0 -14
  847. package/src/cache-subject-segment-env.strategy.ts +0 -11
  848. package/src/cache-subject-segment-fixed.strategy.ts +0 -15
  849. package/src/cache-subject-segment-header.strategy.ts +0 -14
  850. package/src/cache-subject-segment-ip.strategy.ts +0 -12
  851. package/src/cache-subject-segment-path.strategy.ts +0 -11
  852. package/src/cache-subject-segment-query.strategy.ts +0 -19
  853. package/src/cache-subject-segment-user.strategy.ts +0 -12
  854. package/src/command-logger.service.ts +0 -23
  855. package/src/context.middleware.ts +0 -24
  856. package/src/event-bus-like.types.ts +0 -10
  857. package/src/event-logger.service.ts +0 -23
  858. package/src/event-publisher.types.ts +0 -3
  859. package/src/healthcheck.service.ts +0 -154
  860. package/src/maintenance-mode.middleware.ts +0 -15
  861. package/src/ping.service.ts +0 -7
  862. package/src/shield-hcaptcha-local.strategy.ts +0 -24
  863. package/src/shield-noop.strategy.ts +0 -6
  864. package/src/shield.strategy.ts +0 -5
  865. package/src/ssr.ts +0 -57
  866. package/src/translations.service.ts +0 -20
@@ -8,10 +8,11 @@ import {
8
8
  import type { TimekeeperPort } from "./timekeeper.port";
9
9
 
10
10
  type Dependencies = { Clock: ClockPort; Timekeeper: TimekeeperPort };
11
+ type Config = { skew: tools.Duration };
11
12
 
12
13
  export class PrerequisiteVerifierClockDriftAdapter implements PrerequisiteVerifierPort {
13
14
  constructor(
14
- private readonly config: { skew: tools.Duration },
15
+ private readonly config: Config,
15
16
  private readonly deps: Dependencies,
16
17
  ) {}
17
18
 
@@ -8,14 +8,16 @@ import {
8
8
 
9
9
  type Dependencies = { FileInspection: FileInspectionPort };
10
10
 
11
+ type Config = {
12
+ directory: tools.DirectoryPathAbsoluteType | tools.DirectoryPathRelativeType;
13
+ permissions?: PrerequisiteDirectoryPermissionsType;
14
+ };
15
+
11
16
  export type PrerequisiteDirectoryPermissionsType = { read?: boolean; write?: boolean; execute?: boolean };
12
17
 
13
18
  export class PrerequisiteVerifierDirectoryAdapter implements PrerequisiteVerifierPort {
14
19
  constructor(
15
- private readonly config: {
16
- directory: tools.DirectoryPathAbsoluteType | tools.DirectoryPathRelativeType;
17
- permissions?: PrerequisiteDirectoryPermissionsType;
18
- },
20
+ private readonly config: Config,
19
21
  private readonly deps: Dependencies,
20
22
  ) {}
21
23
 
@@ -5,8 +5,10 @@ import {
5
5
  type PrerequisiteVerifierPort,
6
6
  } from "./prerequisite-verifier.port";
7
7
 
8
+ type Config = { hostname: string };
9
+
8
10
  export class PrerequisiteVerifierDnsAdapter implements PrerequisiteVerifierPort {
9
- constructor(private readonly config: { hostname: string }) {}
11
+ constructor(private readonly config: Config) {}
10
12
 
11
13
  async verify(): Promise<PrerequisiteVerificationResult> {
12
14
  try {
@@ -4,8 +4,10 @@ import {
4
4
  type PrerequisiteVerifierPort,
5
5
  } from "./prerequisite-verifier.port";
6
6
 
7
+ type Config = { request: () => Promise<Response> };
8
+
7
9
  export class PrerequisiteVerifierExternalApiAdapter implements PrerequisiteVerifierPort {
8
- constructor(private readonly config: { request: () => Promise<Response> }) {}
10
+ constructor(private readonly config: Config) {}
9
11
 
10
12
  async verify(): Promise<PrerequisiteVerificationResult> {
11
13
  try {
@@ -8,14 +8,16 @@ import {
8
8
 
9
9
  type Dependencies = { FileInspection: FileInspectionPort };
10
10
 
11
+ type Config = {
12
+ file: tools.FilePathAbsolute | tools.FilePathRelative;
13
+ permissions?: PrerequisiteFilePermissionsType;
14
+ };
15
+
11
16
  export type PrerequisiteFilePermissionsType = { read?: boolean; write?: boolean; execute?: boolean };
12
17
 
13
18
  export class PrerequisiteVerifierFileAdapter implements PrerequisiteVerifierPort {
14
19
  constructor(
15
- private readonly config: {
16
- file: tools.FilePathAbsolute | tools.FilePathRelative;
17
- permissions?: PrerequisiteFilePermissionsType;
18
- },
20
+ private readonly config: Config,
19
21
  private readonly deps: Dependencies,
20
22
  ) {}
21
23
 
@@ -5,8 +5,10 @@ import {
5
5
  type PrerequisiteVerifierPort,
6
6
  } from "./prerequisite-verifier.port";
7
7
 
8
+ type Config = { Jobs: MultipleJobsType };
9
+
8
10
  export class PrerequisiteVerifierJobsAdapter implements PrerequisiteVerifierPort {
9
- constructor(private readonly config: { Jobs: MultipleJobsType }) {}
11
+ constructor(private readonly config: Config) {}
10
12
 
11
13
  async verify(): Promise<PrerequisiteVerificationResult> {
12
14
  if (Jobs.areAllRunning(this.config.Jobs)) return PrerequisiteVerification.success;
@@ -6,8 +6,10 @@ import {
6
6
  type PrerequisiteVerifierPort,
7
7
  } from "./prerequisite-verifier.port";
8
8
 
9
+ type Config = { maximum: tools.Size };
10
+
9
11
  export class PrerequisiteVerifierMemoryAdapter implements PrerequisiteVerifierPort {
10
- constructor(private readonly config: { maximum: tools.Size }) {}
12
+ constructor(private readonly config: Config) {}
11
13
 
12
14
  async verify(): Promise<PrerequisiteVerificationResult> {
13
15
  const memoryConsumption = MemoryConsumption.get();
@@ -5,8 +5,10 @@ import {
5
5
  type PrerequisiteVerifierPort,
6
6
  } from "./prerequisite-verifier.port";
7
7
 
8
+ type Config = { version: tools.PackageVersion; current: string };
9
+
8
10
  export class PrerequisiteVerifierNodeAdapter implements PrerequisiteVerifierPort {
9
- constructor(private readonly config: { version: tools.PackageVersion; current: string }) {}
11
+ constructor(private readonly config: Config) {}
10
12
 
11
13
  async verify(): Promise<PrerequisiteVerificationResult> {
12
14
  try {
@@ -5,8 +5,10 @@ import {
5
5
  type PrerequisiteVerifierPort,
6
6
  } from "./prerequisite-verifier.port";
7
7
 
8
+ type Config = { accepted: ReadonlyArray<string> };
9
+
8
10
  export class PrerequisiteVerifierOsAdapter implements PrerequisiteVerifierPort {
9
- constructor(private readonly config: { accepted: ReadonlyArray<string> }) {}
11
+ constructor(private readonly config: Config) {}
10
12
 
11
13
  async verify(): Promise<PrerequisiteVerificationResult> {
12
14
  const type = os.type().toLowerCase();
@@ -6,8 +6,10 @@ import {
6
6
  type PrerequisiteVerifierPort,
7
7
  } from "./prerequisite-verifier.port";
8
8
 
9
+ type Config = { port: PortType };
10
+
9
11
  export class PrerequisiteVerifierPortAdapter implements PrerequisiteVerifierPort {
10
- constructor(private readonly config: { port: PortType }) {}
12
+ constructor(private readonly config: Config) {}
11
13
 
12
14
  async verify(): Promise<PrerequisiteVerificationResult> {
13
15
  return new Promise((resolve) => {
@@ -6,8 +6,10 @@ import {
6
6
  type PrerequisiteVerifierPort,
7
7
  } from "./prerequisite-verifier.port";
8
8
 
9
+ type Config = { minimum: tools.Size };
10
+
9
11
  export class PrerequisiteVerifierRamAdapter implements PrerequisiteVerifierPort {
10
- constructor(private readonly config: { minimum: tools.Size }) {}
12
+ constructor(private readonly config: Config) {}
11
13
 
12
14
  async verify(): Promise<PrerequisiteVerificationResult> {
13
15
  const freeRAM = tools.Size.fromBytes(os.freemem());
@@ -5,8 +5,10 @@ import {
5
5
  type PrerequisiteVerifierPort,
6
6
  } from "./prerequisite-verifier.port";
7
7
 
8
+ type Config = { username: string };
9
+
8
10
  export class PrerequisiteVerifierRunningUserAdapter implements PrerequisiteVerifierPort {
9
- constructor(private readonly config: { username: string }) {}
11
+ constructor(private readonly config: Config) {}
10
12
 
11
13
  async verify(): Promise<PrerequisiteVerificationResult> {
12
14
  const current = os.userInfo().username;
@@ -8,10 +8,11 @@ import {
8
8
  } from "./prerequisite-verifier.port";
9
9
 
10
10
  type Dependencies = { DiskSpaceChecker: DiskSpaceCheckerPort };
11
+ type Config = { minimum: tools.Size };
11
12
 
12
13
  export class PrerequisiteVerifierSpaceAdapter implements PrerequisiteVerifierPort {
13
14
  constructor(
14
- private readonly config: { minimum: tools.Size },
15
+ private readonly config: Config,
15
16
  private readonly deps: Dependencies,
16
17
  ) {}
17
18
 
@@ -5,8 +5,10 @@ import {
5
5
  type PrerequisiteVerifierPort,
6
6
  } from "./prerequisite-verifier.port";
7
7
 
8
+ type Config = { sqlite: Database };
9
+
8
10
  export class PrerequisiteVerifierSQLiteAdapter implements PrerequisiteVerifierPort {
9
- constructor(private readonly config: { sqlite: Database }) {}
11
+ constructor(private readonly config: Config) {}
10
12
 
11
13
  async verify(): Promise<PrerequisiteVerificationResult> {
12
14
  try {
@@ -8,9 +8,11 @@ import {
8
8
 
9
9
  type Dependencies = { CertificateInspector: CertificateInspectorPort };
10
10
 
11
+ type Config = { hostname: string; minimum: tools.Duration };
12
+
11
13
  export class PrerequisiteVerifierSSLCertificateExpiryAdapter implements PrerequisiteVerifierPort {
12
14
  constructor(
13
- private readonly config: { hostname: string; minimum: tools.Duration },
15
+ private readonly config: Config,
14
16
  private readonly deps: Dependencies,
15
17
  ) {}
16
18
 
@@ -8,8 +8,10 @@ import {
8
8
 
9
9
  export const TimezoneUtc = z.literal("UTC");
10
10
 
11
+ type Config = { timezone: tools.TimezoneType };
12
+
11
13
  export class PrerequisiteVerifierTimezoneUtcAdapter implements PrerequisiteVerifierPort {
12
- constructor(private readonly config: { timezone: tools.TimezoneType }) {}
14
+ constructor(private readonly config: Config) {}
13
15
 
14
16
  async verify(): Promise<PrerequisiteVerificationResult> {
15
17
  const result = TimezoneUtc.safeParse(this.config.timezone);
@@ -16,8 +16,7 @@ type PrerequisiteTranslationsProblemType = {
16
16
  };
17
17
 
18
18
  type Dependencies = { Logger: LoggerPort; FileReaderJson: FileReaderJsonPort };
19
-
20
- type Config = { supportedLanguages: types.I18nConfigType["supportedLanguages"] };
19
+ type Config = { supportedLanguages: types.I18nConfig["supportedLanguages"] };
21
20
 
22
21
  export class PrerequisiteVerifierTranslationsAdapter implements PrerequisiteVerifierPort {
23
22
  constructor(
@@ -1,23 +1,24 @@
1
1
  import type { CacheResolverStrategy } from "./cache-resolver.strategy";
2
- import { CacheSubjectApplicationResolver } from "./cache-subject-application-resolver.vo";
3
- import { CacheSubjectSegmentFixedStrategy } from "./cache-subject-segment-fixed.strategy";
4
2
  import type { HashContentStrategy } from "./hash-content.strategy";
5
3
  import type { PrerequisiteVerificationResult, PrerequisiteVerifierPort } from "./prerequisite-verifier.port";
4
+ import { SubjectApplicationResolver } from "./subject-application-resolver.vo";
5
+ import { SubjectSegmentFixedStrategy } from "./subject-segment-fixed.strategy";
6
6
 
7
7
  type Dependencies = { CacheResolver: CacheResolverStrategy; HashContent: HashContentStrategy };
8
+ type Config = { id: string; inner: PrerequisiteVerifierPort };
8
9
 
9
10
  export class PrerequisiteVerifierWithCacheAdapter implements PrerequisiteVerifierPort {
10
11
  constructor(
11
- private readonly config: { id: string; inner: PrerequisiteVerifierPort },
12
+ private readonly config: Config,
12
13
  private readonly deps: Dependencies,
13
14
  ) {}
14
15
 
15
16
  async verify(): Promise<PrerequisiteVerificationResult> {
16
- const resolver = new CacheSubjectApplicationResolver(
17
+ const resolver = new SubjectApplicationResolver(
17
18
  [
18
- new CacheSubjectSegmentFixedStrategy("prerequisite_verifier"),
19
- new CacheSubjectSegmentFixedStrategy(this.kind),
20
- new CacheSubjectSegmentFixedStrategy(this.config.id),
19
+ new SubjectSegmentFixedStrategy("prerequisite_verifier"),
20
+ new SubjectSegmentFixedStrategy(this.kind),
21
+ new SubjectSegmentFixedStrategy(this.config.id),
21
22
  ],
22
23
  this.deps,
23
24
  );
@@ -5,20 +5,20 @@ import {
5
5
  type PrerequisiteVerifierPort,
6
6
  } from "./prerequisite-verifier.port";
7
7
 
8
- export type PrerequisiteVerifierWithFailSafeAdapterConfigType = (
8
+ export type PrerequisiteVerifierWithFailSafeAdapterConfig = (
9
9
  result: PrerequisiteVerificationResult,
10
10
  ) => boolean;
11
11
 
12
- const AnyErrorFailSafe: PrerequisiteVerifierWithFailSafeAdapterConfigType = (result) =>
12
+ const AnyErrorFailSafe: PrerequisiteVerifierWithFailSafeAdapterConfig = (result) =>
13
13
  result.outcome === PrerequisiteVerificationOutcome.failure;
14
14
 
15
15
  export class PrerequisiteVerifierWithFailSafeAdapter implements PrerequisiteVerifierPort {
16
- private readonly when: PrerequisiteVerifierWithFailSafeAdapterConfigType;
16
+ private readonly when: PrerequisiteVerifierWithFailSafeAdapterConfig;
17
17
 
18
18
  constructor(
19
19
  private readonly config: {
20
20
  inner: PrerequisiteVerifierPort;
21
- when?: PrerequisiteVerifierWithFailSafeAdapterConfigType;
21
+ when?: PrerequisiteVerifierWithFailSafeAdapterConfig;
22
22
  },
23
23
  ) {
24
24
  this.when = config.when ?? AnyErrorFailSafe;
@@ -10,6 +10,8 @@ import { Stopwatch } from "./stopwatch.service";
10
10
 
11
11
  type Dependencies = { Logger: LoggerPort; Clock: ClockPort };
12
12
 
13
+ type Config = { inner: PrerequisiteVerifierPort };
14
+
13
15
  export class PrerequisiteVerifierWithLoggerAdapter implements PrerequisiteVerifierPort {
14
16
  private readonly base = (duration: tools.Duration) => ({
15
17
  component: "infra",
@@ -18,7 +20,7 @@ export class PrerequisiteVerifierWithLoggerAdapter implements PrerequisiteVerifi
18
20
  });
19
21
 
20
22
  constructor(
21
- private readonly config: { inner: PrerequisiteVerifierPort },
23
+ private readonly config: Config,
22
24
  private readonly deps: Dependencies,
23
25
  ) {}
24
26
 
@@ -4,14 +4,15 @@ import {
4
4
  type PrerequisiteVerificationResult,
5
5
  type PrerequisiteVerifierPort,
6
6
  } from "./prerequisite-verifier.port";
7
- import { Retry, type RetryConfigType } from "./retry.service";
7
+ import { Retry, type RetryConfig } from "./retry.service";
8
8
  import type { SleeperPort } from "./sleeper.port";
9
9
 
10
10
  type Dependencies = { Sleeper: SleeperPort };
11
+ type Config = { inner: PrerequisiteVerifierPort; retry: RetryConfig };
11
12
 
12
13
  export class PrerequisiteVerifierWithRetryAdapter implements PrerequisiteVerifierPort {
13
14
  constructor(
14
- private readonly config: { inner: PrerequisiteVerifierPort; retry: RetryConfigType },
15
+ private readonly config: Config,
15
16
  private readonly deps: Dependencies,
16
17
  ) {}
17
18
 
@@ -7,10 +7,11 @@ import {
7
7
  import type { TimeoutRunnerPort } from "./timeout-runner.port";
8
8
 
9
9
  type Dependencies = { TimeoutRunner: TimeoutRunnerPort };
10
+ type Config = { inner: PrerequisiteVerifierPort; timeout: tools.Duration };
10
11
 
11
12
  export class PrerequisiteVerifierWithTimeoutAdapter implements PrerequisiteVerifierPort {
12
13
  constructor(
13
- private readonly config: { inner: PrerequisiteVerifierPort; timeout: tools.Duration },
14
+ private readonly config: Config,
14
15
  private readonly deps: Dependencies,
15
16
  ) {}
16
17
 
@@ -7,12 +7,12 @@ import type { PrerequisiteVerifierPort } from "./prerequisite-verifier.port";
7
7
  import { PrerequisiteVerifierWithCacheAdapter } from "./prerequisite-verifier-with-cache.adapter";
8
8
  import {
9
9
  PrerequisiteVerifierWithFailSafeAdapter,
10
- type PrerequisiteVerifierWithFailSafeAdapterConfigType,
10
+ type PrerequisiteVerifierWithFailSafeAdapterConfig,
11
11
  } from "./prerequisite-verifier-with-fail-safe.adapter";
12
12
  import { PrerequisiteVerifierWithLoggerAdapter } from "./prerequisite-verifier-with-logger.adapter";
13
13
  import { PrerequisiteVerifierWithRetryAdapter } from "./prerequisite-verifier-with-retry.adapter";
14
14
  import { PrerequisiteVerifierWithTimeoutAdapter } from "./prerequisite-verifier-with-timeout.adapter";
15
- import type { RetryConfigType } from "./retry.service";
15
+ import type { RetryConfig } from "./retry.service";
16
16
  import type { SleeperPort } from "./sleeper.port";
17
17
  import type { TimeoutRunnerPort } from "./timeout-runner.port";
18
18
 
@@ -37,12 +37,12 @@ const withLogger =
37
37
  new PrerequisiteVerifierWithLoggerAdapter({ inner }, deps);
38
38
 
39
39
  const withRetry =
40
- (retry: RetryConfigType, deps: { Sleeper: SleeperPort }): PrerequisiteVerifierDecorator =>
40
+ (retry: RetryConfig, deps: { Sleeper: SleeperPort }): PrerequisiteVerifierDecorator =>
41
41
  (inner) =>
42
42
  new PrerequisiteVerifierWithRetryAdapter({ inner, retry }, deps);
43
43
 
44
44
  const withFailSafe =
45
- (when: PrerequisiteVerifierWithFailSafeAdapterConfigType): PrerequisiteVerifierDecorator =>
45
+ (when: PrerequisiteVerifierWithFailSafeAdapterConfig): PrerequisiteVerifierDecorator =>
46
46
  (inner) =>
47
47
  new PrerequisiteVerifierWithFailSafeAdapter({ inner, when });
48
48
 
@@ -3,10 +3,7 @@ import type { PrerequisiteVerifierPort } from "./prerequisite-verifier.port";
3
3
 
4
4
  export type PrerequisiteLabelType = string;
5
5
 
6
- type PrerequisiteConfigType = {
7
- decorators?: ReadonlyArray<PrerequisiteVerifierDecorator>;
8
- enabled?: boolean;
9
- };
6
+ type Config = { decorators?: ReadonlyArray<PrerequisiteVerifierDecorator>; enabled?: boolean };
10
7
 
11
8
  export class Prerequisite {
12
9
  private readonly decorators: ReadonlyArray<PrerequisiteVerifierDecorator>;
@@ -15,7 +12,7 @@ export class Prerequisite {
15
12
  constructor(
16
13
  readonly label: PrerequisiteLabelType,
17
14
  private readonly verifier: PrerequisiteVerifierPort,
18
- config?: PrerequisiteConfigType,
15
+ config?: Config,
19
16
  ) {
20
17
  this.decorators = config?.decorators ?? [];
21
18
  this.enabled = config?.enabled ?? true;
@@ -11,8 +11,6 @@ import type {
11
11
  RemotePutFromPathResult,
12
12
  } from "./remote-file-storage.port";
13
13
 
14
- type RemoteFileStorageDiskConfig = { root: tools.DirectoryPathAbsoluteType };
15
-
16
14
  type Dependencies = {
17
15
  HashFile: HashFilePort;
18
16
  FileCleaner: FileCleanerPort;
@@ -21,9 +19,11 @@ type Dependencies = {
21
19
  DirectoryEnsurer: DirectoryEnsurerPort;
22
20
  };
23
21
 
22
+ type Config = { root: tools.DirectoryPathAbsoluteType };
23
+
24
24
  export class RemoteFileStorageDiskAdapter implements RemoteFileStoragePort {
25
25
  constructor(
26
- private readonly config: RemoteFileStorageDiskConfig,
26
+ private readonly config: Config,
27
27
  private readonly deps: Dependencies,
28
28
  ) {}
29
29
 
@@ -3,7 +3,7 @@ import { getConnInfo } from "hono/bun";
3
3
  import { getCookie } from "hono/cookie";
4
4
  import type { RequestContext } from "./request-context.port";
5
5
 
6
- export class RequestContextAdapterHono implements RequestContext {
6
+ export class RequestContextHonoAdapter implements RequestContext {
7
7
  readonly request: RequestContext["request"];
8
8
  readonly identity: RequestContext["identity"];
9
9
 
@@ -11,9 +11,20 @@ export class RequestContextAdapterHono implements RequestContext {
11
11
  this.request = {
12
12
  path: context.req.path,
13
13
  method: context.req.method,
14
+ url: () => context.req.url,
14
15
  header: (name) => context.req.header(name),
15
16
  headers: () => context.req.raw.headers,
17
+ headersObject: () => {
18
+ const headers: Record<string, string> = {};
19
+
20
+ context.req.raw.headers.forEach((value, key) => {
21
+ headers[key] = value;
22
+ });
23
+
24
+ return headers;
25
+ },
16
26
  query: () => context.req.query(),
27
+ params: () => context.req.param(),
17
28
  cookie: (name) => getCookie(context)[name],
18
29
  json: async () => {
19
30
  try {
@@ -4,11 +4,14 @@ export interface RequestContext {
4
4
  readonly request: {
5
5
  readonly path: string;
6
6
  readonly method: string;
7
+ url(): string;
7
8
  header(name: string): string | undefined;
8
9
  query(): Record<string, string>;
10
+ params(): Record<string, string>;
9
11
  cookie(name: string): string | undefined;
10
12
  json(): Promise<Record<string, unknown>>;
11
13
  headers: () => Headers;
14
+ headersObject: () => Record<string, string>;
12
15
  };
13
16
 
14
17
  readonly identity: {
@@ -18,6 +21,10 @@ export interface RequestContext {
18
21
  };
19
22
  }
20
23
 
24
+ export interface HasRequestUrl {
25
+ readonly request: { url(): string };
26
+ }
27
+
21
28
  export interface HasRequestPath {
22
29
  readonly request: { readonly path: string };
23
30
  }
@@ -34,10 +41,18 @@ export interface HasRequestHeaders {
34
41
  readonly request: { headers: () => Headers };
35
42
  }
36
43
 
44
+ export interface HasRequestHeadersObject {
45
+ readonly request: { headers: () => Record<string, string> };
46
+ }
47
+
37
48
  export interface HasRequestQuery {
38
49
  readonly request: { query(): Record<string, string> };
39
50
  }
40
51
 
52
+ export interface HasRequestParams {
53
+ readonly request: { params(): Record<string, string> };
54
+ }
55
+
41
56
  export interface HasRequestCookie {
42
57
  readonly request: { cookie(name: string): string | undefined };
43
58
  }
@@ -2,20 +2,20 @@ import * as tools from "@bgord/tools";
2
2
  import type { RetryBackoffStrategy } from "./retry-backoff.strategy";
3
3
  import type { SleeperPort } from "./sleeper.port";
4
4
 
5
+ export const RetryError = { InvalidMax: "retry.invalid.max" };
6
+
5
7
  type Dependencies = { Sleeper: SleeperPort };
6
8
 
7
- export type RetryConfigType = {
9
+ export type RetryConfig = {
8
10
  max: tools.IntegerPositiveType;
9
11
  backoff: RetryBackoffStrategy;
10
12
  when?: (error: unknown) => boolean;
11
13
  };
12
14
 
13
- export const RetryError = { InvalidMax: "retry.invalid.max" };
14
-
15
15
  export class Retry {
16
16
  constructor(private readonly deps: Dependencies) {}
17
17
 
18
- async run<T>(action: () => Promise<T>, config: RetryConfigType): Promise<T> {
18
+ async run<T>(action: () => Promise<T>, config: RetryConfig): Promise<T> {
19
19
  if (config.max < 1) throw new Error(RetryError.InvalidMax);
20
20
 
21
21
  let lastError: unknown;
@@ -16,6 +16,10 @@ import {
16
16
  type SecurityCountermeasureNameType,
17
17
  } from "./security-countermeasure-name.vo";
18
18
 
19
+ export const SecurityCountermeasureBanStrategyError = {
20
+ Executed: "security.countermeasure.ban.strategy.executed",
21
+ };
22
+
19
23
  type Dependencies = {
20
24
  IdProvider: IdProviderPort;
21
25
  Clock: ClockPort;
@@ -23,14 +27,12 @@ type Dependencies = {
23
27
  EventStore: EventStoreLike<SecurityViolationDetectedEventType>;
24
28
  };
25
29
 
26
- export const SecurityCountermeasureBanStrategyError = {
27
- Executed: "security.countermeasure.ban.strategy.executed",
28
- };
30
+ type Config = { response: { status: number } };
29
31
 
30
32
  export class SecurityCountermeasureBanStrategy implements SecurityCountermeasureStrategy {
31
33
  constructor(
32
34
  private readonly deps: Dependencies,
33
- private readonly config: { response: { status: number } } = { response: { status: 403 } },
35
+ private readonly config: Config = { response: { status: 403 } },
34
36
  ) {}
35
37
 
36
38
  async execute(context: SecurityContext): Promise<SecurityAction> {
@@ -8,11 +8,12 @@ import {
8
8
  } from "./security-countermeasure-name.vo";
9
9
 
10
10
  type Dependencies = { Logger: LoggerPort };
11
+ type Config = { response: { status: number } };
11
12
 
12
13
  export class SecurityCountermeasureMirageStrategy implements SecurityCountermeasureStrategy {
13
14
  constructor(
14
15
  private readonly deps: Dependencies,
15
- private readonly config: { response: { status: number } } = { response: { status: 200 } },
16
+ private readonly config: Config = { response: { status: 200 } },
16
17
  ) {}
17
18
 
18
19
  async execute(context: SecurityContext): Promise<SecurityAction> {
@@ -9,11 +9,12 @@ import {
9
9
  } from "./security-countermeasure-name.vo";
10
10
 
11
11
  type Dependencies = { Logger: LoggerPort };
12
+ type Config = { duration: tools.Duration; after: SecurityAction };
12
13
 
13
14
  export class SecurityCountermeasureTarpitStrategy implements SecurityCountermeasureStrategy {
14
15
  constructor(
15
16
  private readonly deps: Dependencies,
16
- private readonly config: { duration: tools.Duration; after: SecurityAction },
17
+ private readonly config: Config,
17
18
  ) {}
18
19
 
19
20
  async execute(context: SecurityContext): Promise<SecurityAction> {
@@ -1,26 +1,27 @@
1
1
  import * as tools from "@bgord/tools";
2
2
  import type { CacheRepositoryPort } from "./cache-repository.port";
3
- import { CacheSubjectRequestResolver } from "./cache-subject-request-resolver.vo";
4
- import { CacheSubjectSegmentFixedStrategy } from "./cache-subject-segment-fixed.strategy";
5
- import { CacheSubjectSegmentIpStrategy } from "./cache-subject-segment-ip.strategy";
6
3
  import type { HashContentStrategy } from "./hash-content.strategy";
7
4
  import type { RequestContext } from "./request-context.port";
8
5
  import type { SecurityRuleStrategy } from "./security-rule.strategy";
9
6
  import { SecurityRuleName, type SecurityRuleNameType } from "./security-rule-name.vo";
7
+ import { SubjectRequestResolver } from "./subject-request-resolver.vo";
8
+ import { SubjectSegmentFixedStrategy } from "./subject-segment-fixed.strategy";
9
+ import { SubjectSegmentIpStrategy } from "./subject-segment-ip.strategy";
10
10
 
11
11
  type Dependencies = { CacheRepository: CacheRepositoryPort; HashContent: HashContentStrategy };
12
+ type Config = { threshold: tools.IntegerPositiveType };
12
13
 
13
14
  export class SecurityRuleViolationThresholdStrategy implements SecurityRuleStrategy {
14
15
  constructor(
15
16
  private readonly rule: SecurityRuleStrategy,
16
- private readonly config: { threshold: tools.IntegerPositiveType },
17
+ private readonly config: Config,
17
18
  private readonly deps: Dependencies,
18
19
  ) {}
19
20
 
20
21
  // Best-effort increment, occasional lost increments are acceptable for concurrent requests.
21
22
  async isViolated(context: RequestContext): Promise<boolean> {
22
- const resolver = new CacheSubjectRequestResolver(
23
- [new CacheSubjectSegmentFixedStrategy(this.name), new CacheSubjectSegmentIpStrategy()],
23
+ const resolver = new SubjectRequestResolver(
24
+ [new SubjectSegmentFixedStrategy(this.name), new SubjectSegmentIpStrategy()],
24
25
  this.deps,
25
26
  );
26
27
  const subject = await resolver.resolve(context);