@bgord/bun 1.21.1 → 1.21.2

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 (259) hide show
  1. package/dist/antivirus-clamav.adapter.d.ts.map +1 -1
  2. package/dist/antivirus-clamav.adapter.js +1 -0
  3. package/dist/antivirus-clamav.adapter.js.map +1 -1
  4. package/dist/better-auth-logger.service.d.ts +2 -3
  5. package/dist/better-auth-logger.service.d.ts.map +1 -1
  6. package/dist/better-auth-logger.service.js +16 -33
  7. package/dist/better-auth-logger.service.js.map +1 -1
  8. package/dist/cache-repository-redis.adapter.d.ts.map +1 -1
  9. package/dist/cache-repository-redis.adapter.js.map +1 -1
  10. package/dist/clock-system.adapter.d.ts.map +1 -1
  11. package/dist/clock-system.adapter.js +2 -1
  12. package/dist/clock-system.adapter.js.map +1 -1
  13. package/dist/cron-expression.vo.d.ts.map +1 -1
  14. package/dist/cron-expression.vo.js +1 -0
  15. package/dist/cron-expression.vo.js.map +1 -1
  16. package/dist/cron-scheduler.adapter.d.ts.map +1 -1
  17. package/dist/cron-scheduler.adapter.js.map +1 -1
  18. package/dist/file-cleaner-forgiving.adapter.d.ts.map +1 -1
  19. package/dist/file-cleaner-forgiving.adapter.js.map +1 -1
  20. package/dist/file-cleaner.adapter.d.ts.map +1 -1
  21. package/dist/file-cleaner.adapter.js.map +1 -1
  22. package/dist/file-copier.adapter.d.ts.map +1 -1
  23. package/dist/file-copier.adapter.js.map +1 -1
  24. package/dist/file-draft-zip.service.d.ts.map +1 -1
  25. package/dist/file-draft-zip.service.js +1 -2
  26. package/dist/file-draft-zip.service.js.map +1 -1
  27. package/dist/file-inspection.adapter.d.ts.map +1 -1
  28. package/dist/file-inspection.adapter.js +1 -0
  29. package/dist/file-inspection.adapter.js.map +1 -1
  30. package/dist/file-reader-json-forgiving.adapter.d.ts.map +1 -1
  31. package/dist/file-reader-json-forgiving.adapter.js.map +1 -1
  32. package/dist/file-reader-json.adapter.d.ts.map +1 -1
  33. package/dist/file-reader-json.adapter.js.map +1 -1
  34. package/dist/file-reader-raw-forgiving.adapter.d.ts.map +1 -1
  35. package/dist/file-reader-raw-forgiving.adapter.js.map +1 -1
  36. package/dist/file-reader-raw.adapter.d.ts.map +1 -1
  37. package/dist/file-reader-raw.adapter.js.map +1 -1
  38. package/dist/file-reader-text-forgiving.adapter.d.ts.map +1 -1
  39. package/dist/file-reader-text-forgiving.adapter.js.map +1 -1
  40. package/dist/file-reader-text.adapter.d.ts.map +1 -1
  41. package/dist/file-reader-text.adapter.js.map +1 -1
  42. package/dist/file-writer-forgiving.adapter.d.ts.map +1 -1
  43. package/dist/file-writer-forgiving.adapter.js.map +1 -1
  44. package/dist/file-writer.adapter.d.ts.map +1 -1
  45. package/dist/file-writer.adapter.js.map +1 -1
  46. package/dist/graceful-shutdown.service.d.ts.map +1 -1
  47. package/dist/graceful-shutdown.service.js +2 -0
  48. package/dist/graceful-shutdown.service.js.map +1 -1
  49. package/dist/gzip.adapter.d.ts.map +1 -1
  50. package/dist/gzip.adapter.js.map +1 -1
  51. package/dist/healthcheck-hono.handler.d.ts +1 -1
  52. package/dist/image-blur.adapter.d.ts.map +1 -1
  53. package/dist/image-blur.adapter.js.map +1 -1
  54. package/dist/image-compressor.adapter.d.ts.map +1 -1
  55. package/dist/image-compressor.adapter.js.map +1 -1
  56. package/dist/image-exif-clear.adapter.d.ts.map +1 -1
  57. package/dist/image-exif-clear.adapter.js.map +1 -1
  58. package/dist/image-formatter.adapter.d.ts.map +1 -1
  59. package/dist/image-formatter.adapter.js.map +1 -1
  60. package/dist/image-generator-web-view.adapter.d.ts.map +1 -1
  61. package/dist/image-generator-web-view.adapter.js.map +1 -1
  62. package/dist/image-grayscale.adapter.d.ts.map +1 -1
  63. package/dist/image-grayscale.adapter.js.map +1 -1
  64. package/dist/image-info.adapter.d.ts.map +1 -1
  65. package/dist/image-info.adapter.js +1 -0
  66. package/dist/image-info.adapter.js.map +1 -1
  67. package/dist/image-processor.adapter.d.ts.map +1 -1
  68. package/dist/image-processor.adapter.js.map +1 -1
  69. package/dist/image-resizer.adapter.d.ts.map +1 -1
  70. package/dist/image-resizer.adapter.js.map +1 -1
  71. package/dist/index.d.ts +7 -10
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +7 -10
  74. package/dist/index.js.map +1 -1
  75. package/dist/job-claimer-sqlite.adapter.d.ts.map +1 -1
  76. package/dist/job-claimer-sqlite.adapter.js.map +1 -1
  77. package/dist/job-completer-sqlite.adapter.d.ts.map +1 -1
  78. package/dist/job-completer-sqlite.adapter.js.map +1 -1
  79. package/dist/job-enqueuer-sqlite.adapter.d.ts.map +1 -1
  80. package/dist/job-enqueuer-sqlite.adapter.js.map +1 -1
  81. package/dist/job-failer-sqlite.adapter.d.ts.map +1 -1
  82. package/dist/job-failer-sqlite.adapter.js.map +1 -1
  83. package/dist/job-pruner-sqlite.adapter.d.ts.map +1 -1
  84. package/dist/job-pruner-sqlite.adapter.js.map +1 -1
  85. package/dist/job-queue-sqlite-store.service.d.ts.map +1 -1
  86. package/dist/job-queue-sqlite-store.service.js +1 -0
  87. package/dist/job-queue-sqlite-store.service.js.map +1 -1
  88. package/dist/job-queue-stats-provider-sqlite.adapter.d.ts.map +1 -1
  89. package/dist/job-queue-stats-provider-sqlite.adapter.js.map +1 -1
  90. package/dist/job-requeuer-sqlite.adapter.d.ts.map +1 -1
  91. package/dist/job-requeuer-sqlite.adapter.js.map +1 -1
  92. package/dist/logger-noop.adapter.js +1 -1
  93. package/dist/logger-noop.adapter.js.map +1 -1
  94. package/dist/logger-stats-provider-noop.adapter.js +1 -1
  95. package/dist/logger-stats-provider-noop.adapter.js.map +1 -1
  96. package/dist/logger-stats-provider.port.d.ts +1 -1
  97. package/dist/logger-stats-provider.port.d.ts.map +1 -1
  98. package/dist/markdown-generator.adapter.d.ts.map +1 -1
  99. package/dist/markdown-generator.adapter.js.map +1 -1
  100. package/dist/prerequisite-verifier-binary.adapter.d.ts.map +1 -1
  101. package/dist/prerequisite-verifier-binary.adapter.js.map +1 -1
  102. package/dist/prerequisite-verifier-sqlite.adapter.d.ts.map +1 -1
  103. package/dist/prerequisite-verifier-sqlite.adapter.js.map +1 -1
  104. package/dist/remote-file-storage-disk.adapter.d.ts.map +1 -1
  105. package/dist/remote-file-storage-disk.adapter.js +1 -0
  106. package/dist/remote-file-storage-disk.adapter.js.map +1 -1
  107. package/dist/request-context-hono.adapter.d.ts.map +1 -1
  108. package/dist/request-context-hono.adapter.js +5 -13
  109. package/dist/request-context-hono.adapter.js.map +1 -1
  110. package/dist/sleeper-system.adapter.d.ts.map +1 -1
  111. package/dist/sleeper-system.adapter.js.map +1 -1
  112. package/dist/static-files-hono.service.d.ts.map +1 -1
  113. package/dist/static-files-hono.service.js.map +1 -1
  114. package/dist/webhook-signature-creator-sha256.strategy.d.ts.map +1 -1
  115. package/dist/webhook-signature-creator-sha256.strategy.js +1 -0
  116. package/dist/webhook-signature-creator-sha256.strategy.js.map +1 -1
  117. package/dist/woodchopper-dispatcher-sync.strategy.d.ts.map +1 -1
  118. package/dist/woodchopper-dispatcher-sync.strategy.js +3 -1
  119. package/dist/woodchopper-dispatcher-sync.strategy.js.map +1 -1
  120. package/dist/woodchopper-formatter-human.strategy.d.ts +6 -0
  121. package/dist/woodchopper-formatter-human.strategy.d.ts.map +1 -0
  122. package/dist/woodchopper-formatter-human.strategy.js +6 -0
  123. package/dist/woodchopper-formatter-human.strategy.js.map +1 -0
  124. package/dist/woodchopper-formatter-json-raw.strategy.d.ts +6 -0
  125. package/dist/woodchopper-formatter-json-raw.strategy.d.ts.map +1 -0
  126. package/dist/woodchopper-formatter-json-raw.strategy.js +6 -0
  127. package/dist/woodchopper-formatter-json-raw.strategy.js.map +1 -0
  128. package/dist/woodchopper-formatter-json.strategy.d.ts +6 -0
  129. package/dist/woodchopper-formatter-json.strategy.d.ts.map +1 -0
  130. package/dist/woodchopper-formatter-json.strategy.js +6 -0
  131. package/dist/woodchopper-formatter-json.strategy.js.map +1 -0
  132. package/dist/woodchopper-formatter.strategy.d.ts +5 -0
  133. package/dist/woodchopper-formatter.strategy.d.ts.map +1 -0
  134. package/dist/woodchopper-formatter.strategy.js +2 -0
  135. package/dist/woodchopper-formatter.strategy.js.map +1 -0
  136. package/dist/woodchopper-sink-buffered-stderr.strategy.d.ts +5 -0
  137. package/dist/woodchopper-sink-buffered-stderr.strategy.d.ts.map +1 -0
  138. package/dist/woodchopper-sink-buffered-stderr.strategy.js +7 -0
  139. package/dist/woodchopper-sink-buffered-stderr.strategy.js.map +1 -0
  140. package/dist/woodchopper-sink-buffered-stdout.strategy.d.ts +5 -0
  141. package/dist/woodchopper-sink-buffered-stdout.strategy.d.ts.map +1 -0
  142. package/dist/woodchopper-sink-buffered-stdout.strategy.js +7 -0
  143. package/dist/woodchopper-sink-buffered-stdout.strategy.js.map +1 -0
  144. package/dist/woodchopper-sink-buffered.strategy.d.ts +26 -0
  145. package/dist/woodchopper-sink-buffered.strategy.d.ts.map +1 -0
  146. package/dist/woodchopper-sink-buffered.strategy.js +48 -0
  147. package/dist/woodchopper-sink-buffered.strategy.js.map +1 -0
  148. package/dist/woodchopper-sink-collecting.strategy.d.ts +1 -0
  149. package/dist/woodchopper-sink-collecting.strategy.d.ts.map +1 -1
  150. package/dist/woodchopper-sink-collecting.strategy.js +1 -0
  151. package/dist/woodchopper-sink-collecting.strategy.js.map +1 -1
  152. package/dist/woodchopper-sink-noop.strategy.d.ts +1 -0
  153. package/dist/woodchopper-sink-noop.strategy.d.ts.map +1 -1
  154. package/dist/woodchopper-sink-noop.strategy.js +1 -0
  155. package/dist/woodchopper-sink-noop.strategy.js.map +1 -1
  156. package/dist/woodchopper-sink-stderr.strategy.d.ts +4 -0
  157. package/dist/woodchopper-sink-stderr.strategy.d.ts.map +1 -1
  158. package/dist/woodchopper-sink-stderr.strategy.js +6 -1
  159. package/dist/woodchopper-sink-stderr.strategy.js.map +1 -1
  160. package/dist/woodchopper-sink-stdout.strategy.d.ts +4 -0
  161. package/dist/woodchopper-sink-stdout.strategy.d.ts.map +1 -1
  162. package/dist/woodchopper-sink-stdout.strategy.js +6 -1
  163. package/dist/woodchopper-sink-stdout.strategy.js.map +1 -1
  164. package/dist/woodchopper-sink.strategy.d.ts +1 -0
  165. package/dist/woodchopper-sink.strategy.d.ts.map +1 -1
  166. package/dist/woodchopper-stats.service.d.ts +3 -3
  167. package/dist/woodchopper-stats.service.d.ts.map +1 -1
  168. package/dist/woodchopper-stats.service.js +4 -4
  169. package/dist/woodchopper-stats.service.js.map +1 -1
  170. package/dist/woodchopper.d.ts.map +1 -1
  171. package/dist/woodchopper.js +3 -3
  172. package/dist/woodchopper.js.map +1 -1
  173. package/package.json +1 -1
  174. package/readme.md +7 -4
  175. package/src/antivirus-clamav.adapter.ts +1 -0
  176. package/src/better-auth-logger.service.ts +14 -31
  177. package/src/cache-repository-redis.adapter.ts +1 -0
  178. package/src/clock-system.adapter.ts +2 -1
  179. package/src/cron-expression.vo.ts +1 -0
  180. package/src/cron-scheduler.adapter.ts +1 -0
  181. package/src/file-cleaner-forgiving.adapter.ts +1 -0
  182. package/src/file-cleaner.adapter.ts +1 -0
  183. package/src/file-copier.adapter.ts +1 -0
  184. package/src/file-draft-zip.service.ts +1 -2
  185. package/src/file-inspection.adapter.ts +1 -0
  186. package/src/file-reader-json-forgiving.adapter.ts +1 -0
  187. package/src/file-reader-json.adapter.ts +1 -0
  188. package/src/file-reader-raw-forgiving.adapter.ts +1 -0
  189. package/src/file-reader-raw.adapter.ts +1 -0
  190. package/src/file-reader-text-forgiving.adapter.ts +1 -0
  191. package/src/file-reader-text.adapter.ts +1 -0
  192. package/src/file-writer-forgiving.adapter.ts +1 -0
  193. package/src/file-writer.adapter.ts +1 -0
  194. package/src/graceful-shutdown.service.ts +3 -0
  195. package/src/gzip.adapter.ts +1 -0
  196. package/src/image-blur.adapter.ts +1 -0
  197. package/src/image-compressor.adapter.ts +1 -0
  198. package/src/image-exif-clear.adapter.ts +1 -0
  199. package/src/image-formatter.adapter.ts +1 -0
  200. package/src/image-generator-web-view.adapter.ts +1 -0
  201. package/src/image-grayscale.adapter.ts +1 -0
  202. package/src/image-info.adapter.ts +1 -0
  203. package/src/image-processor.adapter.ts +1 -0
  204. package/src/image-resizer.adapter.ts +1 -0
  205. package/src/index.ts +7 -10
  206. package/src/job-claimer-sqlite.adapter.ts +1 -0
  207. package/src/job-completer-sqlite.adapter.ts +1 -0
  208. package/src/job-enqueuer-sqlite.adapter.ts +1 -0
  209. package/src/job-failer-sqlite.adapter.ts +1 -0
  210. package/src/job-pruner-sqlite.adapter.ts +1 -0
  211. package/src/job-queue-sqlite-store.service.ts +1 -0
  212. package/src/job-queue-stats-provider-sqlite.adapter.ts +1 -0
  213. package/src/job-requeuer-sqlite.adapter.ts +1 -0
  214. package/src/logger-noop.adapter.ts +1 -1
  215. package/src/logger-stats-provider-noop.adapter.ts +1 -1
  216. package/src/logger-stats-provider.port.ts +1 -1
  217. package/src/markdown-generator.adapter.ts +1 -0
  218. package/src/prerequisite-verifier-binary.adapter.ts +1 -0
  219. package/src/prerequisite-verifier-sqlite.adapter.ts +1 -0
  220. package/src/remote-file-storage-disk.adapter.ts +1 -0
  221. package/src/request-context-hono.adapter.ts +5 -18
  222. package/src/sleeper-system.adapter.ts +1 -0
  223. package/src/static-files-hono.service.ts +1 -0
  224. package/src/webhook-signature-creator-sha256.strategy.ts +1 -0
  225. package/src/woodchopper-dispatcher-sync.strategy.ts +3 -1
  226. package/src/woodchopper-formatter-human.strategy.ts +8 -0
  227. package/src/woodchopper-formatter-json-raw.strategy.ts +8 -0
  228. package/src/woodchopper-formatter-json.strategy.ts +8 -0
  229. package/src/woodchopper-formatter.strategy.ts +5 -0
  230. package/src/woodchopper-sink-buffered-stderr.strategy.ts +7 -0
  231. package/src/woodchopper-sink-buffered-stdout.strategy.ts +7 -0
  232. package/src/woodchopper-sink-buffered.strategy.ts +57 -0
  233. package/src/woodchopper-sink-collecting.strategy.ts +2 -0
  234. package/src/woodchopper-sink-noop.strategy.ts +2 -0
  235. package/src/woodchopper-sink-stderr.strategy.ts +6 -1
  236. package/src/woodchopper-sink-stdout.strategy.ts +6 -1
  237. package/src/woodchopper-sink.strategy.ts +2 -0
  238. package/src/woodchopper-stats.service.ts +4 -4
  239. package/src/woodchopper.ts +3 -4
  240. package/dist/woodchopper-dispatcher-async.strategy.d.ts +0 -19
  241. package/dist/woodchopper-dispatcher-async.strategy.d.ts.map +0 -1
  242. package/dist/woodchopper-dispatcher-async.strategy.js +0 -71
  243. package/dist/woodchopper-dispatcher-async.strategy.js.map +0 -1
  244. package/dist/woodchopper-sink-stderr-raw.strategy.d.ts +0 -6
  245. package/dist/woodchopper-sink-stderr-raw.strategy.d.ts.map +0 -1
  246. package/dist/woodchopper-sink-stderr-raw.strategy.js +0 -6
  247. package/dist/woodchopper-sink-stderr-raw.strategy.js.map +0 -1
  248. package/dist/woodchopper-sink-stdout-human.strategy.d.ts +0 -6
  249. package/dist/woodchopper-sink-stdout-human.strategy.d.ts.map +0 -1
  250. package/dist/woodchopper-sink-stdout-human.strategy.js +0 -6
  251. package/dist/woodchopper-sink-stdout-human.strategy.js.map +0 -1
  252. package/dist/woodchopper-sink-stdout-raw.strategy.d.ts +0 -6
  253. package/dist/woodchopper-sink-stdout-raw.strategy.d.ts.map +0 -1
  254. package/dist/woodchopper-sink-stdout-raw.strategy.js +0 -6
  255. package/dist/woodchopper-sink-stdout-raw.strategy.js.map +0 -1
  256. package/src/woodchopper-dispatcher-async.strategy.ts +0 -86
  257. package/src/woodchopper-sink-stderr-raw.strategy.ts +0 -8
  258. package/src/woodchopper-sink-stdout-human.strategy.ts +0 -8
  259. package/src/woodchopper-sink-stdout-raw.strategy.ts +0 -8
package/readme.md CHANGED
@@ -650,23 +650,26 @@ src/
650
650
  ├── woodchopper-diagnostics-console-error.strategy.ts
651
651
  ├── woodchopper-diagnostics-noop.strategy.ts
652
652
  ├── woodchopper-diagnostics.strategy.ts
653
- ├── woodchopper-dispatcher-async.strategy.ts
654
653
  ├── woodchopper-dispatcher-noop.strategy.ts
655
654
  ├── woodchopper-dispatcher-sampling.strategy.ts
656
655
  ├── woodchopper-dispatcher-sync.strategy.ts
657
656
  ├── woodchopper-dispatcher.strategy.ts
657
+ ├── woodchopper-formatter-human.strategy.ts
658
+ ├── woodchopper-formatter-json-raw.strategy.ts
659
+ ├── woodchopper-formatter-json.strategy.ts
660
+ ├── woodchopper-formatter.strategy.ts
658
661
  ├── woodchopper-sampling-composite.strategy.ts
659
662
  ├── woodchopper-sampling-correlation-id.strategy.ts
660
663
  ├── woodchopper-sampling-every-nth.strategy.ts
661
664
  ├── woodchopper-sampling-pass-component.strategy.ts
662
665
  ├── woodchopper-sampling-pass-level.strategy.ts
663
666
  ├── woodchopper-sampling.strategy.ts
667
+ ├── woodchopper-sink-buffered-stderr.strategy.ts
668
+ ├── woodchopper-sink-buffered-stdout.strategy.ts
669
+ ├── woodchopper-sink-buffered.strategy.ts
664
670
  ├── woodchopper-sink-collecting.strategy.ts
665
671
  ├── woodchopper-sink-noop.strategy.ts
666
- ├── woodchopper-sink-stderr-raw.strategy.ts
667
672
  ├── woodchopper-sink-stderr.strategy.ts
668
- ├── woodchopper-sink-stdout-human.strategy.ts
669
- ├── woodchopper-sink-stdout-raw.strategy.ts
670
673
  ├── woodchopper-sink-stdout.strategy.ts
671
674
  ├── woodchopper-sink.strategy.ts
672
675
  ├── woodchopper-stats.service.ts
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  // cSpell:ignore clamav, clamscan
2
3
  import { type AntivirusPort, AntivirusPortError, type AntivirusScanResult } from "./antivirus.port";
3
4
 
@@ -1,4 +1,4 @@
1
- import { type LoggerPort, LogLevelEnum } from "./logger.port";
1
+ import type { LoggerPort } from "./logger.port";
2
2
 
3
3
  type LogLevel = "info" | "success" | "warn" | "error" | "debug";
4
4
 
@@ -11,39 +11,22 @@ export class BetterAuthLogger {
11
11
  return {
12
12
  disabled: false,
13
13
  level: "debug",
14
- log: (lvl: LogLevel | undefined, message: string, ...args: ReadonlyArray<unknown>) => {
15
- const level = this.mapLevel(lvl);
16
- const base = { component: "infra", operation: "better-auth", message, metadata: { args } } as const;
14
+ log: (level: LogLevel | undefined, message: string, ...args: ReadonlyArray<unknown>) => {
15
+ const entry = { component: "infra", operation: "better-auth", message, metadata: { args } } as const;
17
16
 
18
- switch (level) {
19
- case LogLevelEnum.error: {
20
- this.deps.Logger.error({
21
- ...base,
22
- error: args.find((arg) => arg instanceof Error) ?? new Error(message),
23
- });
24
- break;
25
- }
26
- case LogLevelEnum.warn: {
27
- this.deps.Logger.warn(base);
28
- break;
29
- }
30
- case LogLevelEnum.debug: {
31
- this.deps.Logger.debug(base);
32
- break;
33
- }
34
- default: {
35
- this.deps.Logger.info(base);
36
- break;
37
- }
17
+ if (level === "error") {
18
+ this.deps.Logger.error({
19
+ ...entry,
20
+ error: args.find((arg) => arg instanceof Error) ?? new Error(message),
21
+ });
22
+ } else if (level === "warn") {
23
+ this.deps.Logger.warn(entry);
24
+ } else if (level === "debug") {
25
+ this.deps.Logger.debug(entry);
26
+ } else {
27
+ this.deps.Logger.info(entry);
38
28
  }
39
29
  },
40
30
  } as const;
41
31
  }
42
-
43
- private mapLevel(level: LogLevel | undefined) {
44
- if (level === "warn") return LogLevelEnum.warn;
45
- if (level === "error") return LogLevelEnum.error;
46
- if (level === "debug") return LogLevelEnum.debug;
47
- return LogLevelEnum.info;
48
- }
49
32
  }
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  // cSpell:ignore setex
2
3
  import type { CacheRepositoryPort, CacheRepositoryTtlType } from "./cache-repository.port";
3
4
  import type { Hash } from "./hash.vo";
@@ -3,6 +3,7 @@ import type { ClockPort } from "./clock.port";
3
3
 
4
4
  export class ClockSystemAdapter implements ClockPort {
5
5
  now(): tools.Timestamp {
6
- return tools.Timestamp.fromInstant(tools.Temporal.Now.instant());
6
+ // biome-ignore lint: lint/style/noRestrictedGlobals
7
+ return tools.Timestamp.fromNumber(Date.now());
7
8
  }
8
9
  }
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import * as v from "valibot";
2
3
 
3
4
  export const CronExpressionError = { Type: "cron.expression.type", Invalid: "cron.expression.invalid" };
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import type { CronSchedulerPort } from "./cron-scheduler.port";
2
3
  import type { CronTask } from "./cron-task.vo";
3
4
 
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import type * as tools from "@bgord/tools";
2
3
  import type { FileCleanerPort } from "./file-cleaner.port";
3
4
 
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import type * as tools from "@bgord/tools";
2
3
  import type { FileCleanerPort } from "./file-cleaner.port";
3
4
 
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import type * as tools from "@bgord/tools";
2
3
  import type { FileCopierPort } from "./file-copier.port";
3
4
 
@@ -44,8 +44,7 @@ export class FileDraftZip extends FileDraft {
44
44
  });
45
45
 
46
46
  for (const part of this.parts) {
47
- const body = await part.create();
48
- const bytes = new Uint8Array(await new Response(body).arrayBuffer());
47
+ const bytes = await new Response(await part.create()).bytes();
49
48
 
50
49
  zip.addReadStream(Readable.from([bytes]), part.filename.get());
51
50
  }
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import { access, constants, stat } from "node:fs/promises";
2
3
  import * as tools from "@bgord/tools";
3
4
  import type { FileInspectionPort } from "./file-inspection.port";
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import type * as tools from "@bgord/tools";
2
3
  import type { FileReaderJsonOutputType, FileReaderJsonPort } from "./file-reader-json.port";
3
4
 
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import type * as tools from "@bgord/tools";
2
3
  import type { FileReaderJsonOutputType, FileReaderJsonPort } from "./file-reader-json.port";
3
4
 
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import type * as tools from "@bgord/tools";
2
3
  import type { FileReaderRawPort } from "./file-reader-raw.port";
3
4
 
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import type * as tools from "@bgord/tools";
2
3
  import type { FileReaderRawPort } from "./file-reader-raw.port";
3
4
 
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import type * as tools from "@bgord/tools";
2
3
  import type { FileReaderTextPort } from "./file-reader-text.port";
3
4
 
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import type * as tools from "@bgord/tools";
2
3
  import type { FileReaderTextPort } from "./file-reader-text.port";
3
4
 
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import type * as tools from "@bgord/tools";
2
3
  import type { FileWriterContent, FileWriterPort } from "./file-writer.port";
3
4
 
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import type * as tools from "@bgord/tools";
2
3
  import type { FileWriterContent, FileWriterPort } from "./file-writer.port";
3
4
 
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import * as tools from "@bgord/tools";
2
3
  import type { LoggerPort } from "./logger.port";
3
4
 
@@ -33,6 +34,8 @@ export class GracefulShutdown {
33
34
  } catch (error) {
34
35
  this.deps.Logger.error({ message: "Cleanup hook failed", error, ...this.base });
35
36
  } finally {
37
+ this.deps.Logger.close();
38
+
36
39
  (this.config.exit ?? process.exit)(exitCode);
37
40
  }
38
41
  }
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import type * as tools from "@bgord/tools";
2
3
  import type { FileReaderRawPort } from "./file-reader-raw.port";
3
4
  import type { FileWriterPort } from "./file-writer.port";
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import type * as tools from "@bgord/tools";
2
3
  import type { FileRenamerPort } from "./file-renamer.port";
3
4
  import type { FileWriterPort } from "./file-writer.port";
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import type * as tools from "@bgord/tools";
2
3
  import type { FileRenamerPort } from "./file-renamer.port";
3
4
  import type { FileWriterPort } from "./file-writer.port";
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  // cspell:ignore Exif
2
3
  import type * as tools from "@bgord/tools";
3
4
  import type { FileRenamerPort } from "./file-renamer.port";
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import type * as tools from "@bgord/tools";
2
3
  import type { FileCleanerPort } from "./file-cleaner.port";
3
4
  import type { FileRenamerPort } from "./file-renamer.port";
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import type {
2
3
  ImageGeneratorAcceptedFormat,
3
4
  ImageGeneratorConfig,
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  // cspell:ignore grayscaled
2
3
  import type * as tools from "@bgord/tools";
3
4
  import type { FileRenamerPort } from "./file-renamer.port";
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import * as tools from "@bgord/tools";
2
3
  import * as v from "valibot";
3
4
  import type { ImageInfoPort, ImageInfoType } from "./image-info.port";
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import type * as tools from "@bgord/tools";
2
3
  import type { FileCleanerPort } from "./file-cleaner.port";
3
4
  import type { FileRenamerPort } from "./file-renamer.port";
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  // cspell:ignore Resizer
2
3
  import type * as tools from "@bgord/tools";
3
4
  import type { FileRenamerPort } from "./file-renamer.port";
package/src/index.ts CHANGED
@@ -127,7 +127,6 @@ export * from "./event-revision-assigner.port";
127
127
  export * from "./event-store.adapter";
128
128
  export * from "./event-store.port";
129
129
  export * from "./event-store-collecting.adapter";
130
- export * from "./event-store-collecting.adapter";
131
130
  export * from "./event-store-dispatching.adapter";
132
131
  export * from "./event-store-noop.adapter";
133
132
  export * from "./event-store-with-logger.adapter";
@@ -165,7 +164,6 @@ export * from "./file-reader-text-forgiving.adapter";
165
164
  export * from "./file-reader-text-noop.adapter";
166
165
  export * from "./file-reader-text-with-cache.adapter";
167
166
  export * from "./file-renamer.port";
168
- export * from "./file-renamer.port";
169
167
  export * from "./file-renamer-node.adapter";
170
168
  export * from "./file-renamer-node-forgiving.adapter";
171
169
  export * from "./file-renamer-noop.adapter";
@@ -306,7 +304,6 @@ export * from "./logger-noop.adapter";
306
304
  export * from "./logger-stats-provider.port";
307
305
  export * from "./logger-stats-provider-noop.adapter";
308
306
  export * from "./mailer.builder";
309
- export * from "./mailer.builder";
310
307
  export * from "./mailer.port";
311
308
  export * from "./mailer-collecting.adapter";
312
309
  export * from "./mailer-content-html.vo";
@@ -542,12 +539,10 @@ export * from "./timeout-runner-noop.adapter";
542
539
  export * from "./timing.middleware";
543
540
  export * from "./timing-hono.middleware";
544
541
  export * from "./trailing-slash.middleware";
545
- export * from "./trailing-slash.middleware";
546
542
  export * from "./trailing-slash-hono.middleware";
547
543
  export * from "./translations.handler";
548
544
  export * from "./translations-hono.handler";
549
545
  export * from "./translations-provider.port";
550
- export * from "./translations-provider.port";
551
546
  export * from "./translations-provider-json.adapter";
552
547
  export * from "./translations-provider-noop.adapter";
553
548
  export * from "./translator.service";
@@ -579,23 +574,25 @@ export * from "./woodchopper-diagnostics-collecting.strategy";
579
574
  export * from "./woodchopper-diagnostics-console-error.strategy";
580
575
  export * from "./woodchopper-diagnostics-noop.strategy";
581
576
  export * from "./woodchopper-dispatcher.strategy";
582
- export * from "./woodchopper-dispatcher-async.strategy";
583
577
  export * from "./woodchopper-dispatcher-noop.strategy";
584
578
  export * from "./woodchopper-dispatcher-sampling.strategy";
585
579
  export * from "./woodchopper-dispatcher-sync.strategy";
580
+ export * from "./woodchopper-formatter.strategy";
581
+ export * from "./woodchopper-formatter-human.strategy";
582
+ export * from "./woodchopper-formatter-json.strategy";
583
+ export * from "./woodchopper-formatter-json-raw.strategy";
586
584
  export * from "./woodchopper-sampling.strategy";
587
585
  export * from "./woodchopper-sampling-composite.strategy";
588
586
  export * from "./woodchopper-sampling-correlation-id.strategy";
589
- export * from "./woodchopper-sampling-correlation-id.strategy";
590
587
  export * from "./woodchopper-sampling-every-nth.strategy";
591
588
  export * from "./woodchopper-sampling-pass-component.strategy";
592
589
  export * from "./woodchopper-sampling-pass-level.strategy";
593
590
  export * from "./woodchopper-sink.strategy";
591
+ export * from "./woodchopper-sink-buffered.strategy";
592
+ export * from "./woodchopper-sink-buffered-stderr.strategy";
593
+ export * from "./woodchopper-sink-buffered-stdout.strategy";
594
594
  export * from "./woodchopper-sink-collecting.strategy";
595
595
  export * from "./woodchopper-sink-noop.strategy";
596
596
  export * from "./woodchopper-sink-stderr.strategy";
597
- export * from "./woodchopper-sink-stderr-raw.strategy";
598
597
  export * from "./woodchopper-sink-stdout.strategy";
599
- export * from "./woodchopper-sink-stdout-human.strategy";
600
- export * from "./woodchopper-sink-stdout-raw.strategy";
601
598
  export * from "./woodchopper-stats.service";
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import type { Database } from "bun:sqlite";
2
3
  import type * as tools from "@bgord/tools";
3
4
  import type { ClockPort } from "./clock.port";
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import type { Database } from "bun:sqlite";
2
3
  import type { GenericJob } from "./job.types";
3
4
  import type { JobCompleterPort } from "./job-completer.port";
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import type { Database } from "bun:sqlite";
2
3
  import type * as tools from "@bgord/tools";
3
4
  import type { ClockPort } from "./clock.port";
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import type { Database } from "bun:sqlite";
2
3
  import type { GenericJob } from "./job.types";
3
4
  import type { JobFailerPort } from "./job-failer.port";
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import type { Database } from "bun:sqlite";
2
3
  import * as tools from "@bgord/tools";
3
4
  import type { ClockPort } from "./clock.port";
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import { Database } from "bun:sqlite";
2
3
  import { JobStatusEnum } from "./job-status.vo";
3
4
 
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import type { Database } from "bun:sqlite";
2
3
  import * as tools from "@bgord/tools";
3
4
  import type { JobQueueStatsProviderPort, JobQueueStatsSnapshot } from "./job-queue-stats-provider.port";
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import type { Database } from "bun:sqlite";
2
3
  import type * as tools from "@bgord/tools";
3
4
  import type { ClockPort } from "./clock.port";
@@ -17,6 +17,6 @@ export class LoggerNoopAdapter implements LoggerPort, LoggerStatsProviderPort {
17
17
  close() {}
18
18
 
19
19
  getStats(): LoggerStatsSnapshot {
20
- return { written: 0, dropped: 0, deliveryFailures: 0, state: LoggerState.open };
20
+ return { accepted: 0, dropped: 0, deliveryFailures: 0, state: LoggerState.open };
21
21
  }
22
22
  }
@@ -6,6 +6,6 @@ import {
6
6
 
7
7
  export class LoggerStatsProviderNoopAdapter implements LoggerStatsProviderPort {
8
8
  getStats(): LoggerStatsSnapshot {
9
- return { state: LoggerState.open, dropped: 0, deliveryFailures: 0, written: 0 };
9
+ return { state: LoggerState.open, dropped: 0, deliveryFailures: 0, accepted: 0 };
10
10
  }
11
11
  }
@@ -4,7 +4,7 @@ export enum LoggerState {
4
4
  }
5
5
 
6
6
  export type LoggerStatsSnapshot = {
7
- written: number;
7
+ accepted: number;
8
8
  dropped: number;
9
9
  deliveryFailures: number;
10
10
  state: LoggerState;
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import type { MarkdownGeneratorPort } from "./markdown-generator.port";
2
3
 
3
4
  export class MarkdownGeneratorAdapter implements MarkdownGeneratorPort {
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import type { BinaryType } from "./binary.vo";
2
3
  import {
3
4
  PrerequisiteVerification,
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import type { Database } from "bun:sqlite";
2
3
  import {
3
4
  PrerequisiteVerification,
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import * as tools from "@bgord/tools";
2
3
  import * as v from "valibot";
3
4
  import type { DirectoryEnsurerPort } from "./directory-ensurer.port";
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import * as tools from "@bgord/tools";
2
3
  import type { Context } from "hono";
3
4
  import { getConnInfo } from "hono/bun";
@@ -16,15 +17,7 @@ export class RequestContextHonoAdapter implements RequestContext {
16
17
  url: () => context.req.url,
17
18
  header: (name) => context.req.header(name),
18
19
  headers: () => context.req.raw.headers,
19
- headersObject: () => {
20
- const headers: Record<string, string> = {};
21
-
22
- context.req.raw.headers.forEach((value, key) => {
23
- headers[key] = value;
24
- });
25
-
26
- return headers;
27
- },
20
+ headersObject: () => Object.fromEntries(context.req.raw.headers),
28
21
  query: () => context.req.query(),
29
22
  queries: () => context.req.queries(),
30
23
  params: () => context.req.param(),
@@ -32,18 +25,14 @@ export class RequestContextHonoAdapter implements RequestContext {
32
25
  cookie: (name) => getCookie(context)[name],
33
26
  json: async () => {
34
27
  try {
35
- const request = context.req.raw.clone();
36
-
37
- return await request.json();
28
+ return await context.req.raw.clone().json();
38
29
  } catch {
39
30
  return {};
40
31
  }
41
32
  },
42
33
  text: async () => {
43
34
  try {
44
- const request = context.req.raw.clone();
45
-
46
- return await request.text();
35
+ return await context.req.raw.clone().text();
47
36
  } catch {
48
37
  // Stryker disable next-line StringLiteral
49
38
  return "";
@@ -51,9 +40,7 @@ export class RequestContextHonoAdapter implements RequestContext {
51
40
  },
52
41
  form: async () => {
53
42
  try {
54
- const request = context.req.raw.clone();
55
-
56
- return await request.formData();
43
+ return await context.req.raw.clone().formData();
57
44
  } catch {
58
45
  return new FormData();
59
46
  }
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import type * as tools from "@bgord/tools";
2
3
  import type { SleeperPort } from "./sleeper.port";
3
4
 
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  // cspell:ignore nosniff
2
3
  import type * as tools from "@bgord/tools";
3
4
  import { type Context, Hono } from "hono";
@@ -1,3 +1,4 @@
1
+ // [BUN DEPENDENCY]
1
2
  import * as v from "valibot";
2
3
  import type { WebhookSecretType } from "./webhook-secret.vo";
3
4
  import { WebhookSignature, type WebhookSignatureType } from "./webhook-signature.vo";
@@ -17,5 +17,7 @@ export class WoodchopperDispatcherSync implements WoodchopperDispatcher {
17
17
  }
18
18
  }
19
19
 
20
- close(): void {}
20
+ close(): void {
21
+ this.sink.close();
22
+ }
21
23
  }
@@ -0,0 +1,8 @@
1
+ import type { LoggerEntry } from "./logger.port";
2
+ import type { WoodchopperFormatterStrategy } from "./woodchopper-formatter.strategy";
3
+
4
+ export class WoodchopperFormatterHuman implements WoodchopperFormatterStrategy {
5
+ format(entry: LoggerEntry): string {
6
+ return `${JSON.stringify(entry, null, 2)}\n`;
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ import type { LoggerEntry } from "./logger.port";
2
+ import type { WoodchopperFormatterStrategy } from "./woodchopper-formatter.strategy";
3
+
4
+ export class WoodchopperFormatterJsonRaw implements WoodchopperFormatterStrategy {
5
+ format(entry: LoggerEntry): string {
6
+ return JSON.stringify(entry);
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ import type { LoggerEntry } from "./logger.port";
2
+ import type { WoodchopperFormatterStrategy } from "./woodchopper-formatter.strategy";
3
+
4
+ export class WoodchopperFormatterJson implements WoodchopperFormatterStrategy {
5
+ format(entry: LoggerEntry): string {
6
+ return `${JSON.stringify(entry)}\n`;
7
+ }
8
+ }
@@ -0,0 +1,5 @@
1
+ import type { LoggerEntry } from "./logger.port";
2
+
3
+ export interface WoodchopperFormatterStrategy {
4
+ format(entry: LoggerEntry): string;
5
+ }
@@ -0,0 +1,7 @@
1
+ import { WoodchopperSinkBuffered } from "./woodchopper-sink-buffered.strategy";
2
+
3
+ export class WoodchopperSinkBufferedStderr extends WoodchopperSinkBuffered {
4
+ protected emit(payload: string): void {
5
+ process.stderr.write(payload);
6
+ }
7
+ }
@@ -0,0 +1,7 @@
1
+ import { WoodchopperSinkBuffered } from "./woodchopper-sink-buffered.strategy";
2
+
3
+ export class WoodchopperSinkBufferedStdout extends WoodchopperSinkBuffered {
4
+ protected emit(payload: string): void {
5
+ process.stdout.write(payload);
6
+ }
7
+ }