@bgord/bun 0.30.0 → 1.0.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 (505) hide show
  1. package/dist/antivirus-clamav.adapter.d.ts.map +1 -1
  2. package/dist/antivirus-clamav.adapter.js +6 -6
  3. package/dist/antivirus-clamav.adapter.js.map +1 -1
  4. package/dist/antivirus.port.d.ts +3 -6
  5. package/dist/antivirus.port.d.ts.map +1 -1
  6. package/dist/antivirus.port.js +1 -12
  7. package/dist/antivirus.port.js.map +1 -1
  8. package/dist/api-version.middleware.d.ts +4 -2
  9. package/dist/api-version.middleware.d.ts.map +1 -1
  10. package/dist/api-version.middleware.js.map +1 -1
  11. package/dist/basic-auth-password.vo.d.ts +9 -0
  12. package/dist/basic-auth-password.vo.d.ts.map +1 -0
  13. package/dist/basic-auth-password.vo.js +12 -0
  14. package/dist/basic-auth-password.vo.js.map +1 -0
  15. package/dist/basic-auth-username.vo.d.ts +9 -0
  16. package/dist/basic-auth-username.vo.d.ts.map +1 -0
  17. package/dist/basic-auth-username.vo.js +12 -0
  18. package/dist/basic-auth-username.vo.js.map +1 -0
  19. package/dist/basic-auth.service.d.ts +5 -22
  20. package/dist/basic-auth.service.d.ts.map +1 -1
  21. package/dist/basic-auth.service.js +0 -15
  22. package/dist/basic-auth.service.js.map +1 -1
  23. package/dist/better-auth-logger.service.d.ts.map +1 -1
  24. package/dist/better-auth-logger.service.js +4 -2
  25. package/dist/better-auth-logger.service.js.map +1 -1
  26. package/dist/binary.vo.d.ts +10 -0
  27. package/dist/binary.vo.d.ts.map +1 -0
  28. package/dist/binary.vo.js +16 -0
  29. package/dist/binary.vo.js.map +1 -0
  30. package/dist/build-info-repository.service.d.ts +2 -1
  31. package/dist/build-info-repository.service.d.ts.map +1 -1
  32. package/dist/build-info-repository.service.js +2 -5
  33. package/dist/build-info-repository.service.js.map +1 -1
  34. package/dist/cache-file.service.d.ts.map +1 -1
  35. package/dist/cache-file.service.js +1 -1
  36. package/dist/cache-file.service.js.map +1 -1
  37. package/dist/cache-response.middleware.d.ts.map +1 -1
  38. package/dist/cache-response.middleware.js.map +1 -1
  39. package/dist/certificate-inspector-tls.adapter.d.ts +1 -0
  40. package/dist/certificate-inspector-tls.adapter.d.ts.map +1 -1
  41. package/dist/certificate-inspector-tls.adapter.js +5 -1
  42. package/dist/certificate-inspector-tls.adapter.js.map +1 -1
  43. package/dist/client-from-hono.adapter.d.ts +1 -1
  44. package/dist/client-from-hono.adapter.d.ts.map +1 -1
  45. package/dist/client-from-hono.adapter.js +1 -1
  46. package/dist/client-from-hono.adapter.js.map +1 -1
  47. package/dist/clock-system.adapter.d.ts.map +1 -1
  48. package/dist/clock-system.adapter.js +1 -2
  49. package/dist/clock-system.adapter.js.map +1 -1
  50. package/dist/clock.port.d.ts.map +1 -1
  51. package/dist/context.middleware.d.ts.map +1 -1
  52. package/dist/context.middleware.js.map +1 -1
  53. package/dist/correlation-id.vo.d.ts.map +1 -1
  54. package/dist/correlation-storage.service.d.ts +3 -0
  55. package/dist/correlation-storage.service.d.ts.map +1 -1
  56. package/dist/correlation-storage.service.js +2 -1
  57. package/dist/correlation-storage.service.js.map +1 -1
  58. package/dist/env-validator.service.d.ts +3 -1
  59. package/dist/env-validator.service.d.ts.map +1 -1
  60. package/dist/env-validator.service.js +2 -2
  61. package/dist/env-validator.service.js.map +1 -1
  62. package/dist/etag-extractor.middleware.js +2 -2
  63. package/dist/etag-extractor.middleware.js.map +1 -1
  64. package/dist/event-store-like.types.d.ts.map +1 -1
  65. package/dist/event-stream.vo.d.ts +4 -2
  66. package/dist/event-stream.vo.d.ts.map +1 -1
  67. package/dist/event-stream.vo.js +8 -4
  68. package/dist/event-stream.vo.js.map +1 -1
  69. package/dist/file-cleaner-bun-forgiving.adapter.d.ts +6 -0
  70. package/dist/file-cleaner-bun-forgiving.adapter.d.ts.map +1 -0
  71. package/dist/file-cleaner-bun-forgiving.adapter.js +9 -0
  72. package/dist/file-cleaner-bun-forgiving.adapter.js.map +1 -0
  73. package/dist/file-cleaner-bun.adapter.d.ts +6 -0
  74. package/dist/file-cleaner-bun.adapter.d.ts.map +1 -0
  75. package/dist/file-cleaner-bun.adapter.js +6 -0
  76. package/dist/file-cleaner-bun.adapter.js.map +1 -0
  77. package/dist/file-cleaner-noop.adapter.d.ts +6 -0
  78. package/dist/file-cleaner-noop.adapter.d.ts.map +1 -0
  79. package/dist/file-cleaner-noop.adapter.js +4 -0
  80. package/dist/file-cleaner-noop.adapter.js.map +1 -0
  81. package/dist/file-cleaner.port.d.ts +5 -0
  82. package/dist/file-cleaner.port.d.ts.map +1 -0
  83. package/dist/file-cleaner.port.js +2 -0
  84. package/dist/file-cleaner.port.js.map +1 -0
  85. package/dist/file-draft.service.js +2 -2
  86. package/dist/file-draft.service.js.map +1 -1
  87. package/dist/file-renamer-fs-forgiving.adapter.d.ts +6 -0
  88. package/dist/file-renamer-fs-forgiving.adapter.d.ts.map +1 -0
  89. package/dist/file-renamer-fs-forgiving.adapter.js +12 -0
  90. package/dist/file-renamer-fs-forgiving.adapter.js.map +1 -0
  91. package/dist/file-renamer-fs.adapter.d.ts +6 -0
  92. package/dist/file-renamer-fs.adapter.d.ts.map +1 -0
  93. package/dist/file-renamer-fs.adapter.js +9 -0
  94. package/dist/file-renamer-fs.adapter.js.map +1 -0
  95. package/dist/file-renamer-noop.adapter.d.ts +6 -0
  96. package/dist/file-renamer-noop.adapter.d.ts.map +1 -0
  97. package/dist/file-renamer-noop.adapter.js +4 -0
  98. package/dist/file-renamer-noop.adapter.js.map +1 -0
  99. package/dist/file-renamer.port.d.ts +5 -0
  100. package/dist/file-renamer.port.d.ts.map +1 -0
  101. package/dist/file-renamer.port.js +2 -0
  102. package/dist/file-renamer.port.js.map +1 -0
  103. package/dist/graceful-shutdown.service.d.ts.map +1 -1
  104. package/dist/graceful-shutdown.service.js +1 -3
  105. package/dist/graceful-shutdown.service.js.map +1 -1
  106. package/dist/hcaptcha-secret-key.vo.d.ts +8 -0
  107. package/dist/hcaptcha-secret-key.vo.d.ts.map +1 -0
  108. package/dist/hcaptcha-secret-key.vo.js +10 -0
  109. package/dist/hcaptcha-secret-key.vo.js.map +1 -0
  110. package/dist/hcaptcha-site-key.vo.d.ts +8 -0
  111. package/dist/hcaptcha-site-key.vo.d.ts.map +1 -0
  112. package/dist/hcaptcha-site-key.vo.js +10 -0
  113. package/dist/hcaptcha-site-key.vo.js.map +1 -0
  114. package/dist/healthcheck.service.d.ts +4 -0
  115. package/dist/healthcheck.service.d.ts.map +1 -1
  116. package/dist/healthcheck.service.js +3 -3
  117. package/dist/healthcheck.service.js.map +1 -1
  118. package/dist/http-logger.middleware.d.ts.map +1 -1
  119. package/dist/http-logger.middleware.js +9 -9
  120. package/dist/http-logger.middleware.js.map +1 -1
  121. package/dist/i18n.service.d.ts +10 -3
  122. package/dist/i18n.service.d.ts.map +1 -1
  123. package/dist/i18n.service.js +7 -11
  124. package/dist/i18n.service.js.map +1 -1
  125. package/dist/id-provider-deterministic.adapter.d.ts +3 -0
  126. package/dist/id-provider-deterministic.adapter.d.ts.map +1 -1
  127. package/dist/id-provider-deterministic.adapter.js +4 -1
  128. package/dist/id-provider-deterministic.adapter.js.map +1 -1
  129. package/dist/image-alpha-noop.adapter.d.ts +1 -1
  130. package/dist/image-alpha-sharp.adapter.d.ts +8 -1
  131. package/dist/image-alpha-sharp.adapter.d.ts.map +1 -1
  132. package/dist/image-alpha-sharp.adapter.js +6 -3
  133. package/dist/image-alpha-sharp.adapter.js.map +1 -1
  134. package/dist/image-blur-noop.adapter.d.ts +1 -1
  135. package/dist/image-blur-sharp.adapter.d.ts +8 -1
  136. package/dist/image-blur-sharp.adapter.d.ts.map +1 -1
  137. package/dist/image-blur-sharp.adapter.js +6 -3
  138. package/dist/image-blur-sharp.adapter.js.map +1 -1
  139. package/dist/image-compressor-noop.adapter.d.ts +1 -1
  140. package/dist/image-compressor-sharp.adapter.d.ts +8 -1
  141. package/dist/image-compressor-sharp.adapter.d.ts.map +1 -1
  142. package/dist/image-compressor-sharp.adapter.js +5 -2
  143. package/dist/image-compressor-sharp.adapter.js.map +1 -1
  144. package/dist/image-exif-clear-noop.adapter.d.ts +1 -1
  145. package/dist/image-exif-clear-sharp.adapter.d.ts +8 -1
  146. package/dist/image-exif-clear-sharp.adapter.d.ts.map +1 -1
  147. package/dist/image-exif-clear-sharp.adapter.js +5 -2
  148. package/dist/image-exif-clear-sharp.adapter.js.map +1 -1
  149. package/dist/image-formatter-sharp.adapter.d.ts +10 -1
  150. package/dist/image-formatter-sharp.adapter.d.ts.map +1 -1
  151. package/dist/image-formatter-sharp.adapter.js +8 -5
  152. package/dist/image-formatter-sharp.adapter.js.map +1 -1
  153. package/dist/image-info-noop.adapter.d.ts +2 -2
  154. package/dist/image-info-sharp.adapter.d.ts +2 -2
  155. package/dist/image-info-sharp.adapter.d.ts.map +1 -1
  156. package/dist/image-info-sharp.adapter.js +5 -9
  157. package/dist/image-info-sharp.adapter.js.map +1 -1
  158. package/dist/image-processor-sharp.adapter.d.ts +9 -0
  159. package/dist/image-processor-sharp.adapter.d.ts.map +1 -1
  160. package/dist/image-processor-sharp.adapter.js +8 -5
  161. package/dist/image-processor-sharp.adapter.js.map +1 -1
  162. package/dist/image-resizer-noop.adapter.d.ts +1 -1
  163. package/dist/image-resizer-sharp.adapter.d.ts +8 -1
  164. package/dist/image-resizer-sharp.adapter.d.ts.map +1 -1
  165. package/dist/image-resizer-sharp.adapter.js +5 -2
  166. package/dist/image-resizer-sharp.adapter.js.map +1 -1
  167. package/dist/index.d.ts +25 -5
  168. package/dist/index.d.ts.map +1 -1
  169. package/dist/index.js +25 -5
  170. package/dist/index.js.map +1 -1
  171. package/dist/json-file-reader-bun-forgiving.adapter.d.ts +6 -0
  172. package/dist/json-file-reader-bun-forgiving.adapter.d.ts.map +1 -0
  173. package/dist/json-file-reader-bun-forgiving.adapter.js +11 -0
  174. package/dist/json-file-reader-bun-forgiving.adapter.js.map +1 -0
  175. package/dist/json-file-reader-bun.adapter.d.ts +6 -0
  176. package/dist/json-file-reader-bun.adapter.d.ts.map +1 -0
  177. package/dist/json-file-reader-bun.adapter.js +6 -0
  178. package/dist/json-file-reader-bun.adapter.js.map +1 -0
  179. package/dist/json-file-reader-noop.adapter.d.ts +8 -0
  180. package/dist/json-file-reader-noop.adapter.d.ts.map +1 -0
  181. package/dist/json-file-reader-noop.adapter.js +10 -0
  182. package/dist/json-file-reader-noop.adapter.js.map +1 -0
  183. package/dist/json-file-reader.port.d.ts +5 -0
  184. package/dist/json-file-reader.port.d.ts.map +1 -0
  185. package/dist/json-file-reader.port.js +2 -0
  186. package/dist/json-file-reader.port.js.map +1 -0
  187. package/dist/logger-format-error.service.d.ts +1 -1
  188. package/dist/logger-format-error.service.d.ts.map +1 -1
  189. package/dist/logger-format-error.service.js +9 -9
  190. package/dist/logger-format-error.service.js.map +1 -1
  191. package/dist/logger.port.d.ts +0 -4
  192. package/dist/logger.port.d.ts.map +1 -1
  193. package/dist/mailer-smtp-with-logger.adapter.d.ts.map +1 -1
  194. package/dist/mailer-smtp-with-logger.adapter.js.map +1 -1
  195. package/dist/mailer-smtp.adapter.d.ts +2 -23
  196. package/dist/mailer-smtp.adapter.d.ts.map +1 -1
  197. package/dist/mailer-smtp.adapter.js +0 -10
  198. package/dist/mailer-smtp.adapter.js.map +1 -1
  199. package/dist/mailer.vo.d.ts +34 -0
  200. package/dist/mailer.vo.d.ts.map +1 -0
  201. package/dist/mailer.vo.js +21 -0
  202. package/dist/mailer.vo.js.map +1 -0
  203. package/dist/modules/history/event-handlers/onHistoryPopulatedEvent.d.ts.map +1 -1
  204. package/dist/modules/history/event-handlers/onHistoryPopulatedEvent.js.map +1 -1
  205. package/dist/modules/history/events/HISTORY_CLEARED_EVENT.d.ts +4 -4
  206. package/dist/modules/history/events/HISTORY_CLEARED_EVENT.d.ts.map +1 -1
  207. package/dist/modules/history/events/HISTORY_CLEARED_EVENT.js +2 -8
  208. package/dist/modules/history/events/HISTORY_CLEARED_EVENT.js.map +1 -1
  209. package/dist/modules/history/events/HISTORY_POPULATED_EVENT.d.ts +6 -6
  210. package/dist/modules/history/events/HISTORY_POPULATED_EVENT.d.ts.map +1 -1
  211. package/dist/modules/history/events/HISTORY_POPULATED_EVENT.js +2 -8
  212. package/dist/modules/history/events/HISTORY_POPULATED_EVENT.js.map +1 -1
  213. package/dist/modules/history/ports/history-writer.d.ts.map +1 -1
  214. package/dist/modules/history/value-objects/history-subject.d.ts.map +1 -1
  215. package/dist/modules/preferences/open-host-queries/user-language.d.ts.map +1 -1
  216. package/dist/modules/preferences/open-host-queries/user-language.js.map +1 -1
  217. package/dist/modules/preferences/ports/user-language-resolver.d.ts +3 -3
  218. package/dist/modules/preferences/ports/user-language-resolver.d.ts.map +1 -1
  219. package/dist/modules/preferences/ports/user-language-resolver.js +2 -7
  220. package/dist/modules/preferences/ports/user-language-resolver.js.map +1 -1
  221. package/dist/modules/preferences/value-objects/supported-languages-set.d.ts +3 -3
  222. package/dist/modules/preferences/value-objects/supported-languages-set.d.ts.map +1 -1
  223. package/dist/modules/preferences/value-objects/supported-languages-set.js +2 -7
  224. package/dist/modules/preferences/value-objects/supported-languages-set.js.map +1 -1
  225. package/dist/pdf-generator-noop.adapter.d.ts +1 -1
  226. package/dist/pdf-generator-noop.adapter.d.ts.map +1 -1
  227. package/dist/pdf-generator-noop.adapter.js +1 -1
  228. package/dist/pdf-generator-noop.adapter.js.map +1 -1
  229. package/dist/port.vo.d.ts +4 -0
  230. package/dist/port.vo.d.ts.map +1 -1
  231. package/dist/port.vo.js +7 -1
  232. package/dist/port.vo.js.map +1 -1
  233. package/dist/prerequisites/binary.d.ts +2 -5
  234. package/dist/prerequisites/binary.d.ts.map +1 -1
  235. package/dist/prerequisites/binary.js +1 -8
  236. package/dist/prerequisites/binary.js.map +1 -1
  237. package/dist/prerequisites/dependency-vulnerabilities.js +3 -3
  238. package/dist/prerequisites/dependency-vulnerabilities.js.map +1 -1
  239. package/dist/prerequisites/directory.d.ts.map +1 -1
  240. package/dist/prerequisites/directory.js.map +1 -1
  241. package/dist/prerequisites/jobs.d.ts.map +1 -1
  242. package/dist/prerequisites/jobs.js +1 -2
  243. package/dist/prerequisites/jobs.js.map +1 -1
  244. package/dist/prerequisites/log-file.d.ts.map +1 -1
  245. package/dist/prerequisites/log-file.js.map +1 -1
  246. package/dist/prerequisites/mailer.d.ts.map +1 -1
  247. package/dist/prerequisites/mailer.js.map +1 -1
  248. package/dist/prerequisites/memory.js +1 -1
  249. package/dist/prerequisites/memory.js.map +1 -1
  250. package/dist/prerequisites/node.d.ts.map +1 -1
  251. package/dist/prerequisites/node.js.map +1 -1
  252. package/dist/prerequisites/port.d.ts.map +1 -1
  253. package/dist/prerequisites/port.js.map +1 -1
  254. package/dist/prerequisites/ram.d.ts.map +1 -1
  255. package/dist/prerequisites/ram.js +1 -1
  256. package/dist/prerequisites/ram.js.map +1 -1
  257. package/dist/prerequisites/running-user.d.ts.map +1 -1
  258. package/dist/prerequisites/running-user.js.map +1 -1
  259. package/dist/prerequisites/space.d.ts.map +1 -1
  260. package/dist/prerequisites/space.js +1 -1
  261. package/dist/prerequisites/space.js.map +1 -1
  262. package/dist/prerequisites/sqlite.d.ts.map +1 -1
  263. package/dist/prerequisites/sqlite.js +1 -1
  264. package/dist/prerequisites/sqlite.js.map +1 -1
  265. package/dist/prerequisites/ssl-certificate-expiry.d.ts +2 -2
  266. package/dist/prerequisites/ssl-certificate-expiry.d.ts.map +1 -1
  267. package/dist/prerequisites/ssl-certificate-expiry.js +4 -4
  268. package/dist/prerequisites/ssl-certificate-expiry.js.map +1 -1
  269. package/dist/prerequisites/timezone-utc.d.ts.map +1 -1
  270. package/dist/prerequisites/timezone-utc.js.map +1 -1
  271. package/dist/prerequisites/translations.d.ts +10 -3
  272. package/dist/prerequisites/translations.d.ts.map +1 -1
  273. package/dist/prerequisites/translations.js +15 -10
  274. package/dist/prerequisites/translations.js.map +1 -1
  275. package/dist/prerequisites.service.d.ts +3 -0
  276. package/dist/prerequisites.service.d.ts.map +1 -1
  277. package/dist/prerequisites.service.js +3 -3
  278. package/dist/prerequisites.service.js.map +1 -1
  279. package/dist/rate-limit-store-node-cache.adapter.d.ts +2 -2
  280. package/dist/rate-limit-store-node-cache.adapter.d.ts.map +1 -1
  281. package/dist/rate-limit-store-node-cache.adapter.js +1 -1
  282. package/dist/rate-limit-store-node-cache.adapter.js.map +1 -1
  283. package/dist/rate-limit-store.port.d.ts +1 -1
  284. package/dist/rate-limit-store.port.d.ts.map +1 -1
  285. package/dist/recaptcha-secret-key.vo.d.ts +8 -0
  286. package/dist/recaptcha-secret-key.vo.d.ts.map +1 -0
  287. package/dist/recaptcha-secret-key.vo.js +10 -0
  288. package/dist/recaptcha-secret-key.vo.js.map +1 -0
  289. package/dist/recaptcha-site-key.vo.d.ts +8 -0
  290. package/dist/recaptcha-site-key.vo.d.ts.map +1 -0
  291. package/dist/recaptcha-site-key.vo.js +10 -0
  292. package/dist/recaptcha-site-key.vo.js.map +1 -0
  293. package/dist/redactor-encrypt.adapter.js +2 -2
  294. package/dist/redactor-encrypt.adapter.js.map +1 -1
  295. package/dist/redactor-mask.adapter.d.ts.map +1 -1
  296. package/dist/redactor-mask.adapter.js +0 -3
  297. package/dist/redactor-mask.adapter.js.map +1 -1
  298. package/dist/remote-file-storage-disk.adapter.d.ts +9 -2
  299. package/dist/remote-file-storage-disk.adapter.d.ts.map +1 -1
  300. package/dist/remote-file-storage-disk.adapter.js +7 -9
  301. package/dist/remote-file-storage-disk.adapter.js.map +1 -1
  302. package/dist/safe-parse-body.service.d.ts.map +1 -1
  303. package/dist/safe-parse-body.service.js +1 -1
  304. package/dist/safe-parse-body.service.js.map +1 -1
  305. package/dist/setup.service.d.ts +3 -1
  306. package/dist/setup.service.d.ts.map +1 -1
  307. package/dist/setup.service.js +2 -2
  308. package/dist/setup.service.js.map +1 -1
  309. package/dist/shield-api-key.middleware.d.ts.map +1 -1
  310. package/dist/shield-api-key.middleware.js +1 -2
  311. package/dist/shield-api-key.middleware.js.map +1 -1
  312. package/dist/shield-auth.middleware.d.ts.map +1 -1
  313. package/dist/shield-auth.middleware.js +1 -3
  314. package/dist/shield-auth.middleware.js.map +1 -1
  315. package/dist/shield-captcha-hcaptcha-local.adapter.d.ts +2 -2
  316. package/dist/shield-captcha-hcaptcha-local.adapter.d.ts.map +1 -1
  317. package/dist/shield-captcha-hcaptcha-local.adapter.js +2 -2
  318. package/dist/shield-captcha-hcaptcha-local.adapter.js.map +1 -1
  319. package/dist/shield-captcha-hcaptcha.adapter.d.ts +2 -8
  320. package/dist/shield-captcha-hcaptcha.adapter.d.ts.map +1 -1
  321. package/dist/shield-captcha-hcaptcha.adapter.js +2 -6
  322. package/dist/shield-captcha-hcaptcha.adapter.js.map +1 -1
  323. package/dist/shield-captcha-noop.adapter.d.ts +1 -1
  324. package/dist/shield-captcha-noop.adapter.d.ts.map +1 -1
  325. package/dist/shield-captcha-noop.adapter.js +1 -1
  326. package/dist/shield-captcha-noop.adapter.js.map +1 -1
  327. package/dist/shield-captcha-recaptcha.adapter.d.ts +3 -7
  328. package/dist/shield-captcha-recaptcha.adapter.d.ts.map +1 -1
  329. package/dist/shield-captcha-recaptcha.adapter.js +12 -17
  330. package/dist/shield-captcha-recaptcha.adapter.js.map +1 -1
  331. package/dist/shield-rate-limit.middleware.d.ts +2 -2
  332. package/dist/shield-rate-limit.middleware.d.ts.map +1 -1
  333. package/dist/slower.middleware.d.ts.map +1 -1
  334. package/dist/slower.middleware.js.map +1 -1
  335. package/dist/temporary-file-absolute.adapter.d.ts +11 -3
  336. package/dist/temporary-file-absolute.adapter.d.ts.map +1 -1
  337. package/dist/temporary-file-absolute.adapter.js +11 -14
  338. package/dist/temporary-file-absolute.adapter.js.map +1 -1
  339. package/dist/temporary-file-noop.adapter.d.ts +1 -1
  340. package/dist/temporary-file-noop.adapter.d.ts.map +1 -1
  341. package/dist/temporary-file-noop.adapter.js +1 -1
  342. package/dist/temporary-file-noop.adapter.js.map +1 -1
  343. package/dist/temporary-file.port.d.ts +1 -1
  344. package/dist/temporary-file.port.d.ts.map +1 -1
  345. package/dist/time-zone-offset.middleware.d.ts.map +1 -1
  346. package/dist/time-zone-offset.middleware.js +2 -2
  347. package/dist/time-zone-offset.middleware.js.map +1 -1
  348. package/dist/translations.service.d.ts +8 -1
  349. package/dist/translations.service.d.ts.map +1 -1
  350. package/dist/translations.service.js +2 -2
  351. package/dist/translations.service.js.map +1 -1
  352. package/dist/tsconfig.tsbuildinfo +1 -1
  353. package/dist/uptime.service.js +3 -3
  354. package/dist/uptime.service.js.map +1 -1
  355. package/dist/uuid.vo.d.ts +3 -0
  356. package/dist/uuid.vo.d.ts.map +1 -1
  357. package/dist/uuid.vo.js +2 -1
  358. package/dist/uuid.vo.js.map +1 -1
  359. package/dist/visitor-id-hash-hono.adapter.d.ts +1 -1
  360. package/dist/visitor-id-hash-hono.adapter.d.ts.map +1 -1
  361. package/dist/visitor-id-hash-hono.adapter.js +4 -4
  362. package/dist/visitor-id-hash-hono.adapter.js.map +1 -1
  363. package/dist/visitor-id-hash.adapter.d.ts +1 -1
  364. package/dist/visitor-id-hash.adapter.d.ts.map +1 -1
  365. package/dist/visitor-id-hash.adapter.js +3 -3
  366. package/dist/visitor-id-hash.adapter.js.map +1 -1
  367. package/dist/weak-etag-extractor.middleware.js +2 -2
  368. package/dist/weak-etag-extractor.middleware.js.map +1 -1
  369. package/package.json +7 -7
  370. package/readme.md +20 -5
  371. package/src/antivirus-clamav.adapter.ts +7 -12
  372. package/src/antivirus.port.ts +1 -13
  373. package/src/api-version.middleware.ts +4 -4
  374. package/src/basic-auth-password.vo.ts +15 -0
  375. package/src/basic-auth-username.vo.ts +15 -0
  376. package/src/basic-auth.service.ts +3 -22
  377. package/src/better-auth-logger.service.ts +4 -3
  378. package/src/binary.vo.ts +20 -0
  379. package/src/build-info-repository.service.ts +5 -7
  380. package/src/cache-file.service.ts +2 -1
  381. package/src/cache-response.middleware.ts +3 -0
  382. package/src/certificate-inspector-tls.adapter.ts +7 -1
  383. package/src/client-from-hono.adapter.ts +1 -1
  384. package/src/clock-system.adapter.ts +2 -2
  385. package/src/clock.port.ts +1 -0
  386. package/src/context.middleware.ts +1 -0
  387. package/src/correlation-id.vo.ts +1 -0
  388. package/src/correlation-storage.service.ts +4 -1
  389. package/src/env-validator.service.ts +2 -2
  390. package/src/etag-extractor.middleware.ts +2 -2
  391. package/src/event-store-like.types.ts +1 -0
  392. package/src/event-stream.vo.ts +9 -4
  393. package/src/file-cleaner-bun-forgiving.adapter.ts +10 -0
  394. package/src/file-cleaner-bun.adapter.ts +8 -0
  395. package/src/file-cleaner-noop.adapter.ts +6 -0
  396. package/src/file-cleaner.port.ts +5 -0
  397. package/src/file-draft.service.ts +2 -2
  398. package/src/file-renamer-fs-forgiving.adapter.ts +17 -0
  399. package/src/file-renamer-fs.adapter.ts +15 -0
  400. package/src/file-renamer-noop.adapter.ts +9 -0
  401. package/src/file-renamer.port.ts +8 -0
  402. package/src/graceful-shutdown.service.ts +1 -3
  403. package/src/hcaptcha-secret-key.vo.ts +13 -0
  404. package/src/hcaptcha-site-key.vo.ts +13 -0
  405. package/src/healthcheck.service.ts +6 -4
  406. package/src/http-logger.middleware.ts +9 -10
  407. package/src/i18n.service.ts +14 -11
  408. package/src/id-provider-deterministic.adapter.ts +5 -1
  409. package/src/image-alpha-sharp.adapter.ts +7 -4
  410. package/src/image-blur-sharp.adapter.ts +7 -4
  411. package/src/image-compressor-sharp.adapter.ts +6 -2
  412. package/src/image-exif-clear-sharp.adapter.ts +6 -2
  413. package/src/image-formatter-sharp.adapter.ts +10 -5
  414. package/src/image-info-sharp.adapter.ts +5 -11
  415. package/src/image-processor-sharp.adapter.ts +10 -5
  416. package/src/image-resizer-sharp.adapter.ts +6 -3
  417. package/src/index.ts +25 -5
  418. package/src/json-file-reader-bun-forgiving.adapter.ts +12 -0
  419. package/src/json-file-reader-bun.adapter.ts +8 -0
  420. package/src/json-file-reader-noop.adapter.ts +10 -0
  421. package/src/json-file-reader.port.ts +5 -0
  422. package/src/logger-format-error.service.ts +10 -9
  423. package/src/logger.port.ts +0 -4
  424. package/src/mailer-smtp-with-logger.adapter.ts +2 -0
  425. package/src/mailer-smtp.adapter.ts +2 -31
  426. package/src/mailer.vo.ts +38 -0
  427. package/src/modules/history/event-handlers/onHistoryPopulatedEvent.ts +1 -0
  428. package/src/modules/history/events/HISTORY_CLEARED_EVENT.ts +2 -8
  429. package/src/modules/history/events/HISTORY_POPULATED_EVENT.ts +2 -8
  430. package/src/modules/history/ports/history-writer.ts +1 -0
  431. package/src/modules/history/value-objects/history-subject.ts +1 -0
  432. package/src/modules/preferences/open-host-queries/user-language.ts +1 -0
  433. package/src/modules/preferences/ports/user-language-resolver.ts +2 -7
  434. package/src/modules/preferences/value-objects/supported-languages-set.ts +2 -8
  435. package/src/pdf-generator-noop.adapter.ts +1 -1
  436. package/src/port.vo.ts +9 -1
  437. package/src/prerequisites/binary.ts +4 -14
  438. package/src/prerequisites/dependency-vulnerabilities.ts +3 -3
  439. package/src/prerequisites/directory.ts +1 -0
  440. package/src/prerequisites/jobs.ts +2 -4
  441. package/src/prerequisites/log-file.ts +1 -0
  442. package/src/prerequisites/mailer.ts +1 -0
  443. package/src/prerequisites/memory.ts +1 -1
  444. package/src/prerequisites/node.ts +1 -0
  445. package/src/prerequisites/port.ts +1 -0
  446. package/src/prerequisites/ram.ts +2 -1
  447. package/src/prerequisites/running-user.ts +1 -0
  448. package/src/prerequisites/space.ts +2 -1
  449. package/src/prerequisites/sqlite.ts +1 -2
  450. package/src/prerequisites/ssl-certificate-expiry.ts +5 -5
  451. package/src/prerequisites/timezone-utc.ts +1 -0
  452. package/src/prerequisites/translations.ts +29 -17
  453. package/src/prerequisites.service.ts +4 -4
  454. package/src/rate-limit-store-node-cache.adapter.ts +2 -2
  455. package/src/rate-limit-store.port.ts +1 -1
  456. package/src/recaptcha-secret-key.vo.ts +13 -0
  457. package/src/recaptcha-site-key.vo.ts +13 -0
  458. package/src/redactor-encrypt.adapter.ts +2 -2
  459. package/src/redactor-mask.adapter.ts +0 -3
  460. package/src/remote-file-storage-disk.adapter.ts +13 -14
  461. package/src/safe-parse-body.service.ts +2 -1
  462. package/src/setup.service.ts +4 -2
  463. package/src/shield-api-key.middleware.ts +1 -3
  464. package/src/shield-auth.middleware.ts +5 -3
  465. package/src/shield-captcha-hcaptcha-local.adapter.ts +4 -3
  466. package/src/shield-captcha-hcaptcha.adapter.ts +5 -13
  467. package/src/shield-captcha-noop.adapter.ts +1 -1
  468. package/src/shield-captcha-recaptcha.adapter.ts +15 -25
  469. package/src/shield-rate-limit.middleware.ts +2 -2
  470. package/src/slower.middleware.ts +1 -0
  471. package/src/temporary-file-absolute.adapter.ts +16 -14
  472. package/src/temporary-file-noop.adapter.ts +1 -1
  473. package/src/temporary-file.port.ts +2 -1
  474. package/src/time-zone-offset.middleware.ts +2 -5
  475. package/src/translations.service.ts +7 -4
  476. package/src/uptime.service.ts +3 -3
  477. package/src/uuid.vo.ts +4 -1
  478. package/src/visitor-id-hash-hono.adapter.ts +5 -5
  479. package/src/visitor-id-hash.adapter.ts +3 -3
  480. package/src/weak-etag-extractor.middleware.ts +2 -2
  481. package/dist/encryption.service.d.ts +0 -25
  482. package/dist/encryption.service.d.ts.map +0 -1
  483. package/dist/encryption.service.js +0 -35
  484. package/dist/encryption.service.js.map +0 -1
  485. package/dist/gzip.service.d.ts +0 -13
  486. package/dist/gzip.service.d.ts.map +0 -1
  487. package/dist/gzip.service.js +0 -18
  488. package/dist/gzip.service.js.map +0 -1
  489. package/dist/open-graph.service.d.ts +0 -104
  490. package/dist/open-graph.service.d.ts.map +0 -1
  491. package/dist/open-graph.service.js +0 -159
  492. package/dist/open-graph.service.js.map +0 -1
  493. package/dist/sitemap.service.d.ts +0 -28
  494. package/dist/sitemap.service.d.ts.map +0 -1
  495. package/dist/sitemap.service.js +0 -57
  496. package/dist/sitemap.service.js.map +0 -1
  497. package/dist/url-wo-trailing-slash.vo.d.ts +0 -4
  498. package/dist/url-wo-trailing-slash.vo.d.ts.map +0 -1
  499. package/dist/url-wo-trailing-slash.vo.js +0 -8
  500. package/dist/url-wo-trailing-slash.vo.js.map +0 -1
  501. package/src/encryption.service.ts +0 -45
  502. package/src/gzip.service.ts +0 -23
  503. package/src/open-graph.service.ts +0 -242
  504. package/src/sitemap.service.ts +0 -91
  505. package/src/url-wo-trailing-slash.vo.ts +0 -9
@@ -1,25 +1,22 @@
1
1
  import * as tools from "@bgord/tools";
2
2
  export class I18n {
3
+ deps;
3
4
  translationsPath;
4
5
  base = { component: "infra", operation: "translations" };
5
6
  static DEFAULT_TRANSLATIONS_PATH = tools.DirectoryPathRelativeSchema.parse("infra/translations");
6
- constructor(translationsPath = I18n.DEFAULT_TRANSLATIONS_PATH) {
7
+ constructor(deps, translationsPath = I18n.DEFAULT_TRANSLATIONS_PATH) {
8
+ this.deps = deps;
7
9
  this.translationsPath = translationsPath;
8
10
  }
9
11
  async getTranslations(language) {
10
- try {
11
- return Bun.file(this.getTranslationPathForLanguage(language).get()).json();
12
- }
13
- catch (_error) {
14
- return {};
15
- }
12
+ return this.deps.JsonFileReader.read(this.getTranslationPathForLanguage(language));
16
13
  }
17
- useTranslations(logger, translations) {
14
+ useTranslations(translations) {
18
15
  const that = this;
19
16
  return function translate(key, variables) {
20
17
  const translation = translations[key];
21
18
  if (!translation) {
22
- logger.warn({ message: `Missing translation for key ${key}`, ...that.base });
19
+ that.deps.Logger.warn({ message: `Missing translation for key ${key}`, ...that.base });
23
20
  return key;
24
21
  }
25
22
  if (!variables)
@@ -28,8 +25,7 @@ export class I18n {
28
25
  };
29
26
  }
30
27
  getTranslationPathForLanguage(language) {
31
- const filename = tools.Filename.fromParts(language, "json");
32
- return tools.FilePathRelative.fromParts(this.translationsPath, filename);
28
+ return tools.FilePathRelative.fromParts(this.translationsPath, tools.Filename.fromParts(language, "json"));
33
29
  }
34
30
  }
35
31
  //# sourceMappingURL=i18n.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.service.js","sourceRoot":"","sources":["../src/i18n.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAgBtC,MAAM,OAAO,IAAI;IAKK;IAJH,IAAI,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;IAE1E,MAAM,CAAC,yBAAyB,GAAG,KAAK,CAAC,2BAA2B,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAEjG,YAAoB,mBAAoD,IAAI,CAAC,yBAAyB;QAAlF,qBAAgB,GAAhB,gBAAgB,CAAkE;IAAG,CAAC;IAE1G,KAAK,CAAC,eAAe,CAAC,QAA4B;QAChD,IAAI,CAAC;YACH,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7E,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,eAAe,CAAC,MAAkB,EAAE,YAA8B;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,OAAO,SAAS,SAAS,CAAC,GAAwB,EAAE,SAAmC;YACrF,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;YAEtC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,+BAA+B,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC7E,OAAO,GAAG,CAAC;YACb,CAAC;YAED,IAAI,CAAC,SAAS;gBAAE,OAAO,WAAW,CAAC;YAEnC,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CACrC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,WAAW,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EACrF,WAAW,CACZ,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;IAED,6BAA6B,CAAC,QAA4B;QACxD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAE5D,OAAO,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IAC3E,CAAC"}
1
+ {"version":3,"file":"i18n.service.js","sourceRoot":"","sources":["../src/i18n.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAmBtC,MAAM,OAAO,IAAI;IAMI;IACT;IANO,IAAI,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;IAE1E,MAAM,CAAC,yBAAyB,GAAG,KAAK,CAAC,2BAA2B,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAEjG,YACmB,IAAkB,EAC3B,mBAAoD,IAAI,CAAC,yBAAyB;QADzE,SAAI,GAAJ,IAAI,CAAc;QAC3B,qBAAgB,GAAhB,gBAAgB,CAAkE;IACzF,CAAC;IAEJ,KAAK,CAAC,eAAe,CAAC,QAA4B;QAChD,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrF,CAAC;IAED,eAAe,CAAC,YAA8B;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,OAAO,SAAS,SAAS,CAAC,GAAwB,EAAE,SAAmC;YACrF,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;YAEtC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,+BAA+B,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBACvF,OAAO,GAAG,CAAC;YACb,CAAC;YAED,IAAI,CAAC,SAAS;gBAAE,OAAO,WAAW,CAAC;YAEnC,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CACrC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,WAAW,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EACrF,WAAW,CACZ,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;IAED,6BAA6B,CAAC,QAA4B;QACxD,OAAO,KAAK,CAAC,gBAAgB,CAAC,SAAS,CACrC,IAAI,CAAC,gBAAgB,EACrB,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAC3C,CAAC;IACJ,CAAC"}
@@ -1,5 +1,8 @@
1
1
  import type { IdProviderPort } from "./id-provider.port";
2
2
  import type { UUIDType } from "./uuid.vo";
3
+ export declare const IdProviderDeterministicAdapterError: {
4
+ readonly SequenceExhausted: "id.provider.deterministic.adapter.sequence.exhausted";
5
+ };
3
6
  export declare class IdProviderDeterministicAdapter implements IdProviderPort {
4
7
  private readonly queue;
5
8
  constructor(sequence?: UUIDType[]);
@@ -1 +1 @@
1
- {"version":3,"file":"id-provider-deterministic.adapter.d.ts","sourceRoot":"","sources":["../src/id-provider-deterministic.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C,qBAAa,8BAA+B,YAAW,cAAc;IACnE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;gBAEvB,QAAQ,GAAE,QAAQ,EAAO;IAIrC,QAAQ,IAAI,MAAM;CAMnB"}
1
+ {"version":3,"file":"id-provider-deterministic.adapter.d.ts","sourceRoot":"","sources":["../src/id-provider-deterministic.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C,eAAO,MAAM,mCAAmC;;CAEtC,CAAC;AAEX,qBAAa,8BAA+B,YAAW,cAAc;IACnE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;gBAEvB,QAAQ,GAAE,QAAQ,EAAO;IAIrC,QAAQ,IAAI,MAAM;CAMnB"}
@@ -1,3 +1,6 @@
1
+ export const IdProviderDeterministicAdapterError = {
2
+ SequenceExhausted: "id.provider.deterministic.adapter.sequence.exhausted",
3
+ };
1
4
  export class IdProviderDeterministicAdapter {
2
5
  queue;
3
6
  constructor(sequence = []) {
@@ -6,7 +9,7 @@ export class IdProviderDeterministicAdapter {
6
9
  generate() {
7
10
  const next = this.queue.shift();
8
11
  if (!next)
9
- throw new Error("IdProviderDeterministicAdapter: sequence exhausted");
12
+ throw new Error(IdProviderDeterministicAdapterError.SequenceExhausted);
10
13
  return next;
11
14
  }
12
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"id-provider-deterministic.adapter.js","sourceRoot":"","sources":["../src/id-provider-deterministic.adapter.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,8BAA8B;IACxB,KAAK,CAAa;IAEnC,YAAY,WAAuB,EAAE;QACnC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,QAAQ;QACN,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAEhC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACjF,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"id-provider-deterministic.adapter.js","sourceRoot":"","sources":["../src/id-provider-deterministic.adapter.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,mCAAmC,GAAG;IACjD,iBAAiB,EAAE,sDAAsD;CACjE,CAAC;AAEX,MAAM,OAAO,8BAA8B;IACxB,KAAK,CAAa;IAEnC,YAAY,WAAuB,EAAE;QACnC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,QAAQ;QACN,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAEhC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,iBAAiB,CAAC,CAAC;QAClF,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
1
  import type { ImageAlphaPort, ImageAlphaStrategy } from "./image-alpha.port";
2
2
  export declare class ImageAlphaNoopAdapter implements ImageAlphaPort {
3
- flatten(recipe: ImageAlphaStrategy): Promise<import("@bgord/tools").FilePathAbsolute | import("@bgord/tools").FilePathRelative>;
3
+ flatten(recipe: ImageAlphaStrategy): Promise<import("@bgord/tools").FilePathRelative | import("@bgord/tools").FilePathAbsolute>;
4
4
  }
5
5
  //# sourceMappingURL=image-alpha-noop.adapter.d.ts.map
@@ -1,5 +1,12 @@
1
+ import type { FileRenamerPort } from "./file-renamer.port";
1
2
  import type { ImageAlphaPort, ImageAlphaStrategy } from "./image-alpha.port";
3
+ type Dependencies = {
4
+ FileRenamer: FileRenamerPort;
5
+ };
2
6
  export declare class ImageAlphaSharpAdapter implements ImageAlphaPort {
3
- flatten(recipe: ImageAlphaStrategy): Promise<import("@bgord/tools").FilePathAbsolute | import("@bgord/tools").FilePathRelative>;
7
+ private readonly deps;
8
+ constructor(deps: Dependencies);
9
+ flatten(recipe: ImageAlphaStrategy): Promise<import("@bgord/tools").FilePathRelative | import("@bgord/tools").FilePathAbsolute>;
4
10
  }
11
+ export {};
5
12
  //# sourceMappingURL=image-alpha-sharp.adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"image-alpha-sharp.adapter.d.ts","sourceRoot":"","sources":["../src/image-alpha-sharp.adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7E,qBAAa,sBAAuB,YAAW,cAAc;IACrD,OAAO,CAAC,MAAM,EAAE,kBAAkB;CAsBzC"}
1
+ {"version":3,"file":"image-alpha-sharp.adapter.d.ts","sourceRoot":"","sources":["../src/image-alpha-sharp.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7E,KAAK,YAAY,GAAG;IAAE,WAAW,EAAE,eAAe,CAAA;CAAE,CAAC;AAErD,qBAAa,sBAAuB,YAAW,cAAc;IAC/C,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,YAAY;IAEzC,OAAO,CAAC,MAAM,EAAE,kBAAkB;CAqBzC"}
@@ -50,16 +50,19 @@ var __disposeResources = (this && this.__disposeResources) || (function (Suppres
50
50
  var e = new Error(message);
51
51
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
52
52
  });
53
- import fs from "node:fs/promises";
54
53
  import sharp from "sharp";
55
54
  export class ImageAlphaSharpAdapter {
55
+ deps;
56
+ constructor(deps) {
57
+ this.deps = deps;
58
+ }
56
59
  async flatten(recipe) {
57
60
  const env_1 = { stack: [], error: void 0, hasError: false };
58
61
  try {
59
62
  const final = recipe.strategy === "output_path" ? recipe.output : recipe.input;
60
63
  const filename = final.getFilename();
61
64
  const temporary = final.withFilename(filename.withSuffix("-flattened"));
62
- const extension = String(final.getFilename().getExtension());
65
+ const extension = final.getFilename().getExtension();
63
66
  const format = (extension === "jpg" ? "jpeg" : extension);
64
67
  const pipeline = sharp(recipe.input.get());
65
68
  const _sharp_ = __addDisposableResource(env_1, { [Symbol.dispose]: () => pipeline.destroy() }, false);
@@ -68,7 +71,7 @@ export class ImageAlphaSharpAdapter {
68
71
  .flatten({ background: recipe.background })
69
72
  .toFormat(format)
70
73
  .toFile(temporary.get());
71
- await fs.rename(temporary.get(), final.get());
74
+ await this.deps.FileRenamer.rename(temporary, final);
72
75
  return final;
73
76
  }
74
77
  catch (e_1) {
@@ -1 +1 @@
1
- {"version":3,"file":"image-alpha-sharp.adapter.js","sourceRoot":"","sources":["../src/image-alpha-sharp.adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,OAAO,sBAAsB;IACjC,KAAK,CAAC,OAAO,CAAC,MAA0B;;;YACtC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAE/E,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;YAExE,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;YAC7D,MAAM,MAAM,GAAG,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAA2B,CAAC;YAEpF,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3C,MAAM,OAAO,kCAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAA,CAAC;YAE/D,MAAM,QAAQ;iBACX,MAAM,EAAE;iBACR,OAAO,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;iBAC1C,QAAQ,CAAC,MAAM,CAAC;iBAChB,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;YAE3B,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAE9C,OAAO,KAAK,CAAC;;;;;;;;;KACd;CACF"}
1
+ {"version":3,"file":"image-alpha-sharp.adapter.js","sourceRoot":"","sources":["../src/image-alpha-sharp.adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,MAAM,OAAO,sBAAsB;IACJ;IAA7B,YAA6B,IAAkB;QAAlB,SAAI,GAAJ,IAAI,CAAc;IAAG,CAAC;IAEnD,KAAK,CAAC,OAAO,CAAC,MAA0B;;;YACtC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAE/E,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;YAExE,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,CAAC;YACrD,MAAM,MAAM,GAAG,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAA2B,CAAC;YAEpF,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3C,MAAM,OAAO,kCAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAA,CAAC;YAE/D,MAAM,QAAQ;iBACX,MAAM,EAAE;iBACR,OAAO,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;iBAC1C,QAAQ,CAAC,MAAM,CAAC;iBAChB,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3B,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAErD,OAAO,KAAK,CAAC;;;;;;;;;KACd;CACF"}
@@ -1,5 +1,5 @@
1
1
  import type { ImageBlurPort, ImageBlurStrategy } from "./image-blur.port";
2
2
  export declare class ImageBlurNoopAdapter implements ImageBlurPort {
3
- blur(recipe: ImageBlurStrategy): Promise<import("@bgord/tools").FilePathAbsolute | import("@bgord/tools").FilePathRelative>;
3
+ blur(recipe: ImageBlurStrategy): Promise<import("@bgord/tools").FilePathRelative | import("@bgord/tools").FilePathAbsolute>;
4
4
  }
5
5
  //# sourceMappingURL=image-blur-noop.adapter.d.ts.map
@@ -1,5 +1,12 @@
1
+ import type { FileRenamerPort } from "./file-renamer.port";
1
2
  import type { ImageBlurPort, ImageBlurStrategy } from "./image-blur.port";
3
+ type Dependencies = {
4
+ FileRenamer: FileRenamerPort;
5
+ };
2
6
  export declare class ImageBlurSharpAdapter implements ImageBlurPort {
3
- blur(recipe: ImageBlurStrategy): Promise<import("@bgord/tools").FilePathAbsolute | import("@bgord/tools").FilePathRelative>;
7
+ private readonly deps;
8
+ constructor(deps: Dependencies);
9
+ blur(recipe: ImageBlurStrategy): Promise<import("@bgord/tools").FilePathRelative | import("@bgord/tools").FilePathAbsolute>;
4
10
  }
11
+ export {};
5
12
  //# sourceMappingURL=image-blur-sharp.adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"image-blur-sharp.adapter.d.ts","sourceRoot":"","sources":["../src/image-blur-sharp.adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE1E,qBAAa,qBAAsB,YAAW,aAAa;IACnD,IAAI,CAAC,MAAM,EAAE,iBAAiB;CAkBrC"}
1
+ {"version":3,"file":"image-blur-sharp.adapter.d.ts","sourceRoot":"","sources":["../src/image-blur-sharp.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE1E,KAAK,YAAY,GAAG;IAAE,WAAW,EAAE,eAAe,CAAA;CAAE,CAAC;AAErD,qBAAa,qBAAsB,YAAW,aAAa;IAC7C,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,YAAY;IAEzC,IAAI,CAAC,MAAM,EAAE,iBAAiB;CAiBrC"}
@@ -50,21 +50,24 @@ var __disposeResources = (this && this.__disposeResources) || (function (Suppres
50
50
  var e = new Error(message);
51
51
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
52
52
  });
53
- import fs from "node:fs/promises";
54
53
  import sharp from "sharp";
55
54
  export class ImageBlurSharpAdapter {
55
+ deps;
56
+ constructor(deps) {
57
+ this.deps = deps;
58
+ }
56
59
  async blur(recipe) {
57
60
  const env_1 = { stack: [], error: void 0, hasError: false };
58
61
  try {
59
62
  const final = recipe.strategy === "output_path" ? recipe.output : recipe.input;
60
63
  const filename = final.getFilename();
61
64
  const temporary = final.withFilename(filename.withSuffix("-blurred"));
62
- const extension = String(final.getFilename().getExtension());
65
+ const extension = final.getFilename().getExtension();
63
66
  const format = (extension === "jpg" ? "jpeg" : extension);
64
67
  const pipeline = sharp(recipe.input.get());
65
68
  const _sharp_ = __addDisposableResource(env_1, { [Symbol.dispose]: () => pipeline.destroy() }, false);
66
69
  await pipeline.rotate().blur(recipe.sigma).toFormat(format).toFile(temporary.get());
67
- await fs.rename(temporary.get(), final.get());
70
+ await this.deps.FileRenamer.rename(temporary, final);
68
71
  return final;
69
72
  }
70
73
  catch (e_1) {
@@ -1 +1 @@
1
- {"version":3,"file":"image-blur-sharp.adapter.js","sourceRoot":"","sources":["../src/image-blur-sharp.adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,OAAO,qBAAqB;IAChC,KAAK,CAAC,IAAI,CAAC,MAAyB;;;YAClC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAE/E,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;YAEtE,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;YAC7D,MAAM,MAAM,GAAG,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAA2B,CAAC;YAEpF,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3C,MAAM,OAAO,kCAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAA,CAAC;YAE/D,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;YAEpF,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAE9C,OAAO,KAAK,CAAC;;;;;;;;;KACd;CACF"}
1
+ {"version":3,"file":"image-blur-sharp.adapter.js","sourceRoot":"","sources":["../src/image-blur-sharp.adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,MAAM,OAAO,qBAAqB;IACH;IAA7B,YAA6B,IAAkB;QAAlB,SAAI,GAAJ,IAAI,CAAc;IAAG,CAAC;IAEnD,KAAK,CAAC,IAAI,CAAC,MAAyB;;;YAClC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAE/E,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;YAEtE,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,CAAC;YACrD,MAAM,MAAM,GAAG,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAA2B,CAAC;YAEpF,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3C,MAAM,OAAO,kCAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAA,CAAC;YAE/D,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;YACpF,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAErD,OAAO,KAAK,CAAC;;;;;;;;;KACd;CACF"}
@@ -1,5 +1,5 @@
1
1
  import type { ImageCompressorPort, ImageCompressorStrategy } from "./image-compressor.port";
2
2
  export declare class ImageCompressorNoopAdapter implements ImageCompressorPort {
3
- compress(recipe: ImageCompressorStrategy): Promise<import("@bgord/tools").FilePathAbsolute | import("@bgord/tools").FilePathRelative>;
3
+ compress(recipe: ImageCompressorStrategy): Promise<import("@bgord/tools").FilePathRelative | import("@bgord/tools").FilePathAbsolute>;
4
4
  }
5
5
  //# sourceMappingURL=image-compressor-noop.adapter.d.ts.map
@@ -1,6 +1,13 @@
1
+ import type { FileRenamerPort } from "./file-renamer.port";
1
2
  import type { ImageCompressorPort, ImageCompressorStrategy } from "./image-compressor.port";
3
+ type Dependencies = {
4
+ FileRenamer: FileRenamerPort;
5
+ };
2
6
  export declare class ImageCompressorSharpAdapter implements ImageCompressorPort {
7
+ private readonly deps;
8
+ constructor(deps: Dependencies);
3
9
  private static readonly DEFAULT_QUALITY;
4
- compress(recipe: ImageCompressorStrategy): Promise<import("@bgord/tools").FilePathAbsolute | import("@bgord/tools").FilePathRelative>;
10
+ compress(recipe: ImageCompressorStrategy): Promise<import("@bgord/tools").FilePathRelative | import("@bgord/tools").FilePathAbsolute>;
5
11
  }
12
+ export {};
6
13
  //# sourceMappingURL=image-compressor-sharp.adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"image-compressor-sharp.adapter.d.ts","sourceRoot":"","sources":["../src/image-compressor-sharp.adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAE5F,qBAAa,2BAA4B,YAAW,mBAAmB;IACrE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAM;IAEvC,QAAQ,CAAC,MAAM,EAAE,uBAAuB;CAkB/C"}
1
+ {"version":3,"file":"image-compressor-sharp.adapter.d.ts","sourceRoot":"","sources":["../src/image-compressor-sharp.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAE5F,KAAK,YAAY,GAAG;IAAE,WAAW,EAAE,eAAe,CAAA;CAAE,CAAC;AAErD,qBAAa,2BAA4B,YAAW,mBAAmB;IACzD,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,YAAY;IAE/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAM;IAEvC,QAAQ,CAAC,MAAM,EAAE,uBAAuB;CAkB/C"}
@@ -50,9 +50,12 @@ var __disposeResources = (this && this.__disposeResources) || (function (Suppres
50
50
  var e = new Error(message);
51
51
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
52
52
  });
53
- import fs from "node:fs/promises";
54
53
  import sharp from "sharp";
55
54
  export class ImageCompressorSharpAdapter {
55
+ deps;
56
+ constructor(deps) {
57
+ this.deps = deps;
58
+ }
56
59
  static DEFAULT_QUALITY = 85;
57
60
  async compress(recipe) {
58
61
  const env_1 = { stack: [], error: void 0, hasError: false };
@@ -66,7 +69,7 @@ export class ImageCompressorSharpAdapter {
66
69
  const pipeline = sharp(recipe.input.get());
67
70
  const _sharp_ = __addDisposableResource(env_1, { [Symbol.dispose]: () => pipeline.destroy() }, false);
68
71
  await pipeline.rotate().toFormat(format, { quality }).toFile(temporary.get());
69
- await fs.rename(temporary.get(), final.get());
72
+ await this.deps.FileRenamer.rename(temporary, final);
70
73
  return final;
71
74
  }
72
75
  catch (e_1) {
@@ -1 +1 @@
1
- {"version":3,"file":"image-compressor-sharp.adapter.js","sourceRoot":"","sources":["../src/image-compressor-sharp.adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,OAAO,2BAA2B;IAC9B,MAAM,CAAU,eAAe,GAAG,EAAE,CAAC;IAE7C,KAAK,CAAC,QAAQ,CAAC,MAA+B;;;YAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,2BAA2B,CAAC,eAAe,CAAC;YAE9E,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAC/E,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;YAEzE,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,CAAC;YACrD,MAAM,MAAM,GAAG,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAA2B,CAAC;YAEpF,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3C,MAAM,OAAO,kCAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAA,CAAC;YAE/D,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;YAC9E,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAE9C,OAAO,KAAK,CAAC;;;;;;;;;KACd"}
1
+ {"version":3,"file":"image-compressor-sharp.adapter.js","sourceRoot":"","sources":["../src/image-compressor-sharp.adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,MAAM,OAAO,2BAA2B;IACT;IAA7B,YAA6B,IAAkB;QAAlB,SAAI,GAAJ,IAAI,CAAc;IAAG,CAAC;IAE3C,MAAM,CAAU,eAAe,GAAG,EAAE,CAAC;IAE7C,KAAK,CAAC,QAAQ,CAAC,MAA+B;;;YAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,2BAA2B,CAAC,eAAe,CAAC;YAE9E,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAC/E,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;YAEzE,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,CAAC;YACrD,MAAM,MAAM,GAAG,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAA2B,CAAC;YAEpF,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3C,MAAM,OAAO,kCAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAA,CAAC;YAE/D,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;YAC9E,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAErD,OAAO,KAAK,CAAC;;;;;;;;;KACd"}
@@ -1,5 +1,5 @@
1
1
  import type { ImageExifClearPort, ImageExifClearStrategy } from "./image-exif-clear.port";
2
2
  export declare class ImageExifClearNoopAdapter implements ImageExifClearPort {
3
- clear(recipe: ImageExifClearStrategy): Promise<import("@bgord/tools").FilePathAbsolute | import("@bgord/tools").FilePathRelative>;
3
+ clear(recipe: ImageExifClearStrategy): Promise<import("@bgord/tools").FilePathRelative | import("@bgord/tools").FilePathAbsolute>;
4
4
  }
5
5
  //# sourceMappingURL=image-exif-clear-noop.adapter.d.ts.map
@@ -1,5 +1,12 @@
1
+ import type { FileRenamerPort } from "./file-renamer.port";
1
2
  import type { ImageExifClearPort, ImageExifClearStrategy } from "./image-exif-clear.port";
3
+ type Dependencies = {
4
+ FileRenamer: FileRenamerPort;
5
+ };
2
6
  export declare class ImageExifClearSharpAdapter implements ImageExifClearPort {
3
- clear(recipe: ImageExifClearStrategy): Promise<import("@bgord/tools").FilePathAbsolute | import("@bgord/tools").FilePathRelative>;
7
+ private readonly deps;
8
+ constructor(deps: Dependencies);
9
+ clear(recipe: ImageExifClearStrategy): Promise<import("@bgord/tools").FilePathRelative | import("@bgord/tools").FilePathAbsolute>;
4
10
  }
11
+ export {};
5
12
  //# sourceMappingURL=image-exif-clear-sharp.adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"image-exif-clear-sharp.adapter.d.ts","sourceRoot":"","sources":["../src/image-exif-clear-sharp.adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAE1F,qBAAa,0BAA2B,YAAW,kBAAkB;IAC7D,KAAK,CAAC,MAAM,EAAE,sBAAsB;CAc3C"}
1
+ {"version":3,"file":"image-exif-clear-sharp.adapter.d.ts","sourceRoot":"","sources":["../src/image-exif-clear-sharp.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAE1F,KAAK,YAAY,GAAG;IAAE,WAAW,EAAE,eAAe,CAAA;CAAE,CAAC;AAErD,qBAAa,0BAA2B,YAAW,kBAAkB;IACvD,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,YAAY;IAEzC,KAAK,CAAC,MAAM,EAAE,sBAAsB;CAc3C"}
@@ -50,9 +50,12 @@ var __disposeResources = (this && this.__disposeResources) || (function (Suppres
50
50
  var e = new Error(message);
51
51
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
52
52
  });
53
- import fs from "node:fs/promises";
54
53
  import sharp from "sharp";
55
54
  export class ImageExifClearSharpAdapter {
55
+ deps;
56
+ constructor(deps) {
57
+ this.deps = deps;
58
+ }
56
59
  async clear(recipe) {
57
60
  const env_1 = { stack: [], error: void 0, hasError: false };
58
61
  try {
@@ -62,7 +65,7 @@ export class ImageExifClearSharpAdapter {
62
65
  const pipeline = sharp(recipe.input.get());
63
66
  const _sharp_ = __addDisposableResource(env_1, { [Symbol.dispose]: () => pipeline.destroy() }, false);
64
67
  await pipeline.rotate().toFile(temporary.get());
65
- await fs.rename(temporary.get(), final.get());
68
+ await this.deps.FileRenamer.rename(temporary, final);
66
69
  return final;
67
70
  }
68
71
  catch (e_1) {
@@ -1 +1 @@
1
- {"version":3,"file":"image-exif-clear-sharp.adapter.js","sourceRoot":"","sources":["../src/image-exif-clear-sharp.adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,OAAO,0BAA0B;IACrC,KAAK,CAAC,KAAK,CAAC,MAA8B;;;YACxC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAE/E,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC;YAE3E,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3C,MAAM,OAAO,kCAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAA,CAAC;YAE/D,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;YAChD,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAE9C,OAAO,KAAK,CAAC;;;;;;;;;KACd;CACF"}
1
+ {"version":3,"file":"image-exif-clear-sharp.adapter.js","sourceRoot":"","sources":["../src/image-exif-clear-sharp.adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,MAAM,OAAO,0BAA0B;IACR;IAA7B,YAA6B,IAAkB;QAAlB,SAAI,GAAJ,IAAI,CAAc;IAAG,CAAC;IAEnD,KAAK,CAAC,KAAK,CAAC,MAA8B;;;YACxC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAE/E,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC;YAE3E,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3C,MAAM,OAAO,kCAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAA,CAAC;YAE/D,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;YAChD,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAErD,OAAO,KAAK,CAAC;;;;;;;;;KACd;CACF"}
@@ -1,5 +1,14 @@
1
+ import type { FileCleanerPort } from "./file-cleaner.port";
2
+ import type { FileRenamerPort } from "./file-renamer.port";
1
3
  import type { ImageFormatterPort, ImageFormatterStrategy } from "./image-formatter.port";
4
+ type Dependencies = {
5
+ FileCleaner: FileCleanerPort;
6
+ FileRenamer: FileRenamerPort;
7
+ };
2
8
  export declare class ImageFormatterSharpAdapter implements ImageFormatterPort {
3
- format(recipe: ImageFormatterStrategy): Promise<import("@bgord/tools").FilePathAbsolute | import("@bgord/tools").FilePathRelative>;
9
+ private readonly deps;
10
+ constructor(deps: Dependencies);
11
+ format(recipe: ImageFormatterStrategy): Promise<import("@bgord/tools").FilePathRelative | import("@bgord/tools").FilePathAbsolute>;
4
12
  }
13
+ export {};
5
14
  //# sourceMappingURL=image-formatter-sharp.adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"image-formatter-sharp.adapter.d.ts","sourceRoot":"","sources":["../src/image-formatter-sharp.adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEzF,qBAAa,0BAA2B,YAAW,kBAAkB;IAC7D,MAAM,CAAC,MAAM,EAAE,sBAAsB;CAuB5C"}
1
+ {"version":3,"file":"image-formatter-sharp.adapter.d.ts","sourceRoot":"","sources":["../src/image-formatter-sharp.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEzF,KAAK,YAAY,GAAG;IAAE,WAAW,EAAE,eAAe,CAAC;IAAC,WAAW,EAAE,eAAe,CAAA;CAAE,CAAC;AAEnF,qBAAa,0BAA2B,YAAW,kBAAkB;IACvD,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,YAAY;IAEzC,MAAM,CAAC,MAAM,EAAE,sBAAsB;CAuB5C"}
@@ -50,9 +50,12 @@ var __disposeResources = (this && this.__disposeResources) || (function (Suppres
50
50
  var e = new Error(message);
51
51
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
52
52
  });
53
- import fs from "node:fs/promises";
54
53
  import sharp from "sharp";
55
54
  export class ImageFormatterSharpAdapter {
55
+ deps;
56
+ constructor(deps) {
57
+ this.deps = deps;
58
+ }
56
59
  async format(recipe) {
57
60
  const env_1 = { stack: [], error: void 0, hasError: false };
58
61
  try {
@@ -60,14 +63,14 @@ export class ImageFormatterSharpAdapter {
60
63
  ? recipe.output
61
64
  : recipe.input.withFilename(recipe.input.getFilename().withExtension(recipe.to));
62
65
  const temporary = final.withFilename(final.getFilename().withSuffix("-formatted"));
63
- const finalExtension = String(final.getFilename().getExtension());
64
- const encoder = (finalExtension === "jpg" ? "jpeg" : finalExtension);
66
+ const extension = final.getFilename().getExtension();
67
+ const encoder = (extension === "jpg" ? "jpeg" : extension);
65
68
  const pipeline = sharp((recipe.strategy === "output_path" ? recipe.input : recipe.input).get());
66
69
  const _sharp_ = __addDisposableResource(env_1, { [Symbol.dispose]: () => pipeline.destroy() }, false);
67
70
  await pipeline.toFormat(encoder).toFile(temporary.get());
68
- await fs.rename(temporary.get(), final.get());
71
+ await this.deps.FileRenamer.rename(temporary, final);
69
72
  if (recipe.strategy === "in_place" && final.get() !== recipe.input.get()) {
70
- await fs.unlink(recipe.input.get());
73
+ await this.deps.FileCleaner.delete(recipe.input.get());
71
74
  }
72
75
  return final;
73
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"image-formatter-sharp.adapter.js","sourceRoot":"","sources":["../src/image-formatter-sharp.adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,OAAO,0BAA0B;IACrC,KAAK,CAAC,MAAM,CAAC,MAA8B;;;YACzC,MAAM,KAAK,GACT,MAAM,CAAC,QAAQ,KAAK,aAAa;gBAC/B,CAAC,CAAC,MAAM,CAAC,MAAM;gBACf,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAErF,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;YAEnF,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;YAClE,MAAM,OAAO,GAAG,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAA2B,CAAC;YAE/F,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YAChG,MAAM,OAAO,kCAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAA,CAAC;YAE/D,MAAM,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;YACzD,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAE9C,IAAI,MAAM,CAAC,QAAQ,KAAK,UAAU,IAAI,KAAK,CAAC,GAAG,EAAE,KAAK,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC;gBACzE,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YACtC,CAAC;YAED,OAAO,KAAK,CAAC;;;;;;;;;KACd;CACF"}
1
+ {"version":3,"file":"image-formatter-sharp.adapter.js","sourceRoot":"","sources":["../src/image-formatter-sharp.adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,MAAM,OAAO,0BAA0B;IACR;IAA7B,YAA6B,IAAkB;QAAlB,SAAI,GAAJ,IAAI,CAAc;IAAG,CAAC;IAEnD,KAAK,CAAC,MAAM,CAAC,MAA8B;;;YACzC,MAAM,KAAK,GACT,MAAM,CAAC,QAAQ,KAAK,aAAa;gBAC/B,CAAC,CAAC,MAAM,CAAC,MAAM;gBACf,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAErF,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;YAEnF,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,CAAC;YACrD,MAAM,OAAO,GAAG,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAA2B,CAAC;YAErF,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YAChG,MAAM,OAAO,kCAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAA,CAAC;YAE/D,MAAM,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;YACzD,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAErD,IAAI,MAAM,CAAC,QAAQ,KAAK,UAAU,IAAI,KAAK,CAAC,GAAG,EAAE,KAAK,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC;gBACzE,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YACzD,CAAC;YAED,OAAO,KAAK,CAAC;;;;;;;;;KACd;CACF"}
@@ -4,8 +4,8 @@ export declare class ImageInfoNoopAdapter implements ImageInfoPort {
4
4
  private readonly mime;
5
5
  constructor(mime: tools.Mime);
6
6
  inspect(_filePath: tools.FilePathRelative | tools.FilePathAbsolute): Promise<{
7
- width: number & import("zod").$brand<"image-width">;
8
- height: number & import("zod").$brand<"image-height">;
7
+ width: number & import("zod").$brand<"ImageWidth">;
8
+ height: number & import("zod").$brand<"ImageHeight">;
9
9
  mime: tools.Mime;
10
10
  size: tools.Size;
11
11
  }>;
@@ -2,8 +2,8 @@ import * as tools from "@bgord/tools";
2
2
  import type { ImageInfoPort } from "./image-info.port";
3
3
  export declare class ImageInfoSharpAdapter implements ImageInfoPort {
4
4
  inspect(filePath: tools.FilePathRelative | tools.FilePathAbsolute): Promise<{
5
- width: number & import("zod").$brand<"image-width">;
6
- height: number & import("zod").$brand<"image-height">;
5
+ width: number & import("zod").$brand<"ImageWidth">;
6
+ height: number & import("zod").$brand<"ImageHeight">;
7
7
  mime: tools.Mime;
8
8
  size: tools.Size;
9
9
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"image-info-sharp.adapter.d.ts","sourceRoot":"","sources":["../src/image-info-sharp.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,qBAAa,qBAAsB,YAAW,aAAa;IACnD,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB;;;;;;CAqBxE"}
1
+ {"version":3,"file":"image-info-sharp.adapter.d.ts","sourceRoot":"","sources":["../src/image-info-sharp.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,qBAAa,qBAAsB,YAAW,aAAa;IACnD,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB;;;;;;CAexE"}
@@ -57,18 +57,14 @@ export class ImageInfoSharpAdapter {
57
57
  const env_1 = { stack: [], error: void 0, hasError: false };
58
58
  try {
59
59
  const path = filePath.get();
60
- const image = sharp(path);
61
- const _sharp_ = __addDisposableResource(env_1, {
62
- [Symbol.dispose]: () => image.destroy(),
63
- }, false);
64
- const metadata = await image.metadata();
65
- const extension = tools.Extension.parse(metadata.format);
66
- const sizeBytes = Bun.file(path).size;
60
+ const pipeline = sharp(path);
61
+ const _sharp_ = __addDisposableResource(env_1, { [Symbol.dispose]: () => pipeline.destroy() }, false);
62
+ const metadata = await pipeline.metadata();
67
63
  return {
68
64
  width: tools.ImageWidth.parse(metadata.width),
69
65
  height: tools.ImageHeight.parse(metadata.height),
70
- mime: tools.Mime.fromExtension(extension),
71
- size: tools.Size.fromBytes(sizeBytes),
66
+ mime: tools.Mime.fromExtension(tools.Extension.parse(metadata.format)),
67
+ size: tools.Size.fromBytes(Bun.file(path).size),
72
68
  };
73
69
  }
74
70
  catch (e_1) {
@@ -1 +1 @@
1
- {"version":3,"file":"image-info-sharp.adapter.js","sourceRoot":"","sources":["../src/image-info-sharp.adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,OAAO,qBAAqB;IAChC,KAAK,CAAC,OAAO,CAAC,QAAyD;;;YACrE,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;YAE5B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;YAE1B,MAAM,OAAO,kCAAG;gBACd,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE;aACxC,QAAA,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;YACxC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAEzD,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;YAEtC,OAAO;gBACL,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC7C,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAChD,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;gBACzC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;aACtC,CAAC;;;;;;;;;KACH;CACF"}
1
+ {"version":3,"file":"image-info-sharp.adapter.js","sourceRoot":"","sources":["../src/image-info-sharp.adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,OAAO,qBAAqB;IAChC,KAAK,CAAC,OAAO,CAAC,QAAyD;;;YACrE,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;YAE5B,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7B,MAAM,OAAO,kCAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAA,CAAC;YAE/D,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAE3C,OAAO;gBACL,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC7C,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAChD,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACtE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;aAChD,CAAC;;;;;;;;;KACH;CACF"}
@@ -1,7 +1,16 @@
1
1
  import type * as tools from "@bgord/tools";
2
+ import type { FileCleanerPort } from "./file-cleaner.port";
3
+ import type { FileRenamerPort } from "./file-renamer.port";
2
4
  import type { ImageProcessorPort, ImageProcessorStrategy } from "./image-processor.port";
5
+ type Dependencies = {
6
+ FileCleaner: FileCleanerPort;
7
+ FileRenamer: FileRenamerPort;
8
+ };
3
9
  export declare class ImageProcessorSharpAdapter implements ImageProcessorPort {
10
+ private readonly deps;
4
11
  private static readonly DEFAULT_QUALITY;
12
+ constructor(deps: Dependencies);
5
13
  process(recipe: ImageProcessorStrategy): Promise<tools.FilePathRelative | tools.FilePathAbsolute>;
6
14
  }
15
+ export {};
7
16
  //# sourceMappingURL=image-processor-sharp.adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"image-processor-sharp.adapter.d.ts","sourceRoot":"","sources":["../src/image-processor-sharp.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEzF,qBAAa,0BAA2B,YAAW,kBAAkB;IACnE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAM;IAEvC,OAAO,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC;CAwCxG"}
1
+ {"version":3,"file":"image-processor-sharp.adapter.d.ts","sourceRoot":"","sources":["../src/image-processor-sharp.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEzF,KAAK,YAAY,GAAG;IAAE,WAAW,EAAE,eAAe,CAAC;IAAC,WAAW,EAAE,eAAe,CAAA;CAAE,CAAC;AAEnF,qBAAa,0BAA2B,YAAW,kBAAkB;IAGvD,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAM;gBAEhB,IAAI,EAAE,YAAY;IAEzC,OAAO,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC;CAwCxG"}
@@ -50,10 +50,13 @@ var __disposeResources = (this && this.__disposeResources) || (function (Suppres
50
50
  var e = new Error(message);
51
51
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
52
52
  });
53
- import fs from "node:fs/promises";
54
53
  import sharp from "sharp";
55
54
  export class ImageProcessorSharpAdapter {
55
+ deps;
56
56
  static DEFAULT_QUALITY = 85;
57
+ constructor(deps) {
58
+ this.deps = deps;
59
+ }
57
60
  async process(recipe) {
58
61
  const env_1 = { stack: [], error: void 0, hasError: false };
59
62
  try {
@@ -61,8 +64,8 @@ export class ImageProcessorSharpAdapter {
61
64
  ? recipe.output
62
65
  : recipe.input.withFilename(recipe.input.getFilename().withExtension(recipe.to));
63
66
  const temporary = final.withFilename(final.getFilename().withSuffix("-processed"));
64
- const finalExtension = final.getFilename().getExtension();
65
- const encoder = (finalExtension === "jpg" ? "jpeg" : finalExtension);
67
+ const extension = final.getFilename().getExtension();
68
+ const encoder = (extension === "jpg" ? "jpeg" : extension);
66
69
  const quality = recipe.quality ?? ImageProcessorSharpAdapter.DEFAULT_QUALITY;
67
70
  const pipeline = sharp(recipe.input.get());
68
71
  const _sharp_ = __addDisposableResource(env_1, { [Symbol.dispose]: () => pipeline.destroy() }, false);
@@ -78,9 +81,9 @@ export class ImageProcessorSharpAdapter {
78
81
  });
79
82
  processor = processor.toFormat(encoder, { quality });
80
83
  await processor.toFile(temporary.get());
81
- await fs.rename(temporary.get(), final.get());
84
+ await this.deps.FileRenamer.rename(temporary, final);
82
85
  if (recipe.strategy === "in_place" && final.get() !== recipe.input.get()) {
83
- await fs.unlink(recipe.input.get());
86
+ await this.deps.FileCleaner.delete(recipe.input.get());
84
87
  }
85
88
  return final;
86
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"image-processor-sharp.adapter.js","sourceRoot":"","sources":["../src/image-processor-sharp.adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAElC,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,OAAO,0BAA0B;IAC7B,MAAM,CAAU,eAAe,GAAG,EAAE,CAAC;IAE7C,KAAK,CAAC,OAAO,CAAC,MAA8B;;;YAC1C,MAAM,KAAK,GACT,MAAM,CAAC,QAAQ,KAAK,aAAa;gBAC/B,CAAC,CAAC,MAAM,CAAC,MAAM;gBACf,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAErF,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;YAEnF,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,CAAC;YAC1D,MAAM,OAAO,GAAG,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAA2B,CAAC;YAE/F,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,0BAA0B,CAAC,eAAe,CAAC;YAE7E,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3C,MAAM,OAAO,kCAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAA,CAAC;YAE/D,IAAI,SAAS,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;YAElC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAiB,EAAE,CAAC,CAAC;YAC1E,CAAC;YAED,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC;gBAC3B,KAAK,EAAE,MAAM,CAAC,OAAO;gBACrB,MAAM,EAAE,MAAM,CAAC,OAAO;gBACtB,GAAG,EAAE,QAAQ;gBACb,kBAAkB,EAAE,IAAI;aACzB,CAAC,CAAC;YAEH,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAErD,MAAM,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;YACxC,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAE9C,IAAI,MAAM,CAAC,QAAQ,KAAK,UAAU,IAAI,KAAK,CAAC,GAAG,EAAE,KAAK,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC;gBACzE,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YACtC,CAAC;YAED,OAAO,KAAK,CAAC;;;;;;;;;KACd"}
1
+ {"version":3,"file":"image-processor-sharp.adapter.js","sourceRoot":"","sources":["../src/image-processor-sharp.adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,MAAM,OAAO,0BAA0B;IAGR;IAFrB,MAAM,CAAU,eAAe,GAAG,EAAE,CAAC;IAE7C,YAA6B,IAAkB;QAAlB,SAAI,GAAJ,IAAI,CAAc;IAAG,CAAC;IAEnD,KAAK,CAAC,OAAO,CAAC,MAA8B;;;YAC1C,MAAM,KAAK,GACT,MAAM,CAAC,QAAQ,KAAK,aAAa;gBAC/B,CAAC,CAAC,MAAM,CAAC,MAAM;gBACf,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAErF,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;YAEnF,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,CAAC;YACrD,MAAM,OAAO,GAAG,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAA2B,CAAC;YAErF,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,0BAA0B,CAAC,eAAe,CAAC;YAE7E,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3C,MAAM,OAAO,kCAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAA,CAAC;YAE/D,IAAI,SAAS,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;YAElC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAiB,EAAE,CAAC,CAAC;YAC1E,CAAC;YAED,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC;gBAC3B,KAAK,EAAE,MAAM,CAAC,OAAO;gBACrB,MAAM,EAAE,MAAM,CAAC,OAAO;gBACtB,GAAG,EAAE,QAAQ;gBACb,kBAAkB,EAAE,IAAI;aACzB,CAAC,CAAC;YAEH,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAErD,MAAM,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;YACxC,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAErD,IAAI,MAAM,CAAC,QAAQ,KAAK,UAAU,IAAI,KAAK,CAAC,GAAG,EAAE,KAAK,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC;gBACzE,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YACzD,CAAC;YAED,OAAO,KAAK,CAAC;;;;;;;;;KACd"}
@@ -1,5 +1,5 @@
1
1
  import type { ImageResizerPort, ImageResizerStrategy } from "./image-resizer.port";
2
2
  export declare class ImageResizerNoopAdapter implements ImageResizerPort {
3
- resize(recipe: ImageResizerStrategy): Promise<import("@bgord/tools").FilePathAbsolute | import("@bgord/tools").FilePathRelative>;
3
+ resize(recipe: ImageResizerStrategy): Promise<import("@bgord/tools").FilePathRelative | import("@bgord/tools").FilePathAbsolute>;
4
4
  }
5
5
  //# sourceMappingURL=image-resizer-noop.adapter.d.ts.map
@@ -1,5 +1,12 @@
1
+ import type { FileRenamerPort } from "./file-renamer.port";
1
2
  import type { ImageResizerPort, ImageResizerStrategy } from "./image-resizer.port";
3
+ type Dependencies = {
4
+ FileRenamer: FileRenamerPort;
5
+ };
2
6
  export declare class ImageResizerSharpAdapter implements ImageResizerPort {
3
- resize(recipe: ImageResizerStrategy): Promise<import("@bgord/tools").FilePathAbsolute | import("@bgord/tools").FilePathRelative>;
7
+ private readonly deps;
8
+ constructor(deps: Dependencies);
9
+ resize(recipe: ImageResizerStrategy): Promise<import("@bgord/tools").FilePathRelative | import("@bgord/tools").FilePathAbsolute>;
4
10
  }
11
+ export {};
5
12
  //# sourceMappingURL=image-resizer-sharp.adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"image-resizer-sharp.adapter.d.ts","sourceRoot":"","sources":["../src/image-resizer-sharp.adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEnF,qBAAa,wBAAyB,YAAW,gBAAgB;IACzD,MAAM,CAAC,MAAM,EAAE,oBAAoB;CA0B1C"}
1
+ {"version":3,"file":"image-resizer-sharp.adapter.d.ts","sourceRoot":"","sources":["../src/image-resizer-sharp.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEnF,KAAK,YAAY,GAAG;IAAE,WAAW,EAAE,eAAe,CAAA;CAAE,CAAC;AAErD,qBAAa,wBAAyB,YAAW,gBAAgB;IACnD,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,YAAY;IAEzC,MAAM,CAAC,MAAM,EAAE,oBAAoB;CAyB1C"}