@bgord/bun 1.23.12 → 1.24.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 (189) hide show
  1. package/dist/atomic-file-writer-collecting.adapter.d.ts +8 -0
  2. package/dist/atomic-file-writer-collecting.adapter.d.ts.map +1 -0
  3. package/dist/atomic-file-writer-collecting.adapter.js +7 -0
  4. package/dist/atomic-file-writer-collecting.adapter.js.map +1 -0
  5. package/dist/atomic-file-writer-noop.adapter.d.ts +7 -0
  6. package/dist/atomic-file-writer-noop.adapter.d.ts.map +1 -0
  7. package/dist/atomic-file-writer-noop.adapter.js +4 -0
  8. package/dist/atomic-file-writer-noop.adapter.js.map +1 -0
  9. package/dist/atomic-file-writer.adapter.d.ts +19 -0
  10. package/dist/atomic-file-writer.adapter.d.ts.map +1 -0
  11. package/dist/atomic-file-writer.adapter.js +18 -0
  12. package/dist/atomic-file-writer.adapter.js.map +1 -0
  13. package/dist/atomic-file-writer.port.d.ts +6 -0
  14. package/dist/atomic-file-writer.port.d.ts.map +1 -0
  15. package/dist/atomic-file-writer.port.js +2 -0
  16. package/dist/atomic-file-writer.port.js.map +1 -0
  17. package/dist/encryption-aes-gcm.adapter.d.ts +2 -2
  18. package/dist/encryption-aes-gcm.adapter.d.ts.map +1 -1
  19. package/dist/encryption-aes-gcm.adapter.js +2 -2
  20. package/dist/encryption-aes-gcm.adapter.js.map +1 -1
  21. package/dist/event-stream-accept.service.d.ts +4 -0
  22. package/dist/event-stream-accept.service.d.ts.map +1 -0
  23. package/dist/event-stream-accept.service.js +11 -0
  24. package/dist/event-stream-accept.service.js.map +1 -0
  25. package/dist/gzip.adapter.d.ts +2 -2
  26. package/dist/gzip.adapter.d.ts.map +1 -1
  27. package/dist/gzip.adapter.js +1 -1
  28. package/dist/gzip.adapter.js.map +1 -1
  29. package/dist/healthcheck.handler.d.ts +4 -2
  30. package/dist/healthcheck.handler.d.ts.map +1 -1
  31. package/dist/healthcheck.handler.js +4 -11
  32. package/dist/healthcheck.handler.js.map +1 -1
  33. package/dist/http-exception-errors.js +2 -2
  34. package/dist/http-exception-errors.js.map +1 -1
  35. package/dist/http-logger-hono.middleware.d.ts +1 -0
  36. package/dist/http-logger-hono.middleware.d.ts.map +1 -1
  37. package/dist/http-logger-hono.middleware.js +10 -6
  38. package/dist/http-logger-hono.middleware.js.map +1 -1
  39. package/dist/http-logger.middleware.d.ts.map +1 -1
  40. package/dist/http-logger.middleware.js +4 -6
  41. package/dist/http-logger.middleware.js.map +1 -1
  42. package/dist/image-blur.adapter.d.ts +2 -6
  43. package/dist/image-blur.adapter.d.ts.map +1 -1
  44. package/dist/image-blur.adapter.js +1 -4
  45. package/dist/image-blur.adapter.js.map +1 -1
  46. package/dist/image-compressor.adapter.d.ts +2 -6
  47. package/dist/image-compressor.adapter.d.ts.map +1 -1
  48. package/dist/image-compressor.adapter.js +1 -4
  49. package/dist/image-compressor.adapter.js.map +1 -1
  50. package/dist/image-exif-clear.adapter.d.ts +2 -6
  51. package/dist/image-exif-clear.adapter.d.ts.map +1 -1
  52. package/dist/image-exif-clear.adapter.js +1 -3
  53. package/dist/image-exif-clear.adapter.js.map +1 -1
  54. package/dist/image-formatter.adapter.d.ts +2 -6
  55. package/dist/image-formatter.adapter.d.ts.map +1 -1
  56. package/dist/image-formatter.adapter.js +1 -3
  57. package/dist/image-formatter.adapter.js.map +1 -1
  58. package/dist/image-grayscale.adapter.d.ts +2 -6
  59. package/dist/image-grayscale.adapter.d.ts.map +1 -1
  60. package/dist/image-grayscale.adapter.js +1 -4
  61. package/dist/image-grayscale.adapter.js.map +1 -1
  62. package/dist/image-processor.adapter.d.ts +2 -6
  63. package/dist/image-processor.adapter.d.ts.map +1 -1
  64. package/dist/image-processor.adapter.js +1 -3
  65. package/dist/image-processor.adapter.js.map +1 -1
  66. package/dist/image-resizer.adapter.d.ts +2 -6
  67. package/dist/image-resizer.adapter.d.ts.map +1 -1
  68. package/dist/image-resizer.adapter.js +1 -4
  69. package/dist/image-resizer.adapter.js.map +1 -1
  70. package/dist/index.d.ts +11 -0
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +11 -0
  73. package/dist/index.js.map +1 -1
  74. package/dist/job-pruner-sqlite.adapter.d.ts.map +1 -1
  75. package/dist/job-pruner-sqlite.adapter.js +2 -1
  76. package/dist/job-pruner-sqlite.adapter.js.map +1 -1
  77. package/dist/job-queue-stats-provider-sqlite.adapter.js +4 -4
  78. package/dist/job-queue-stats-provider-sqlite.adapter.js.map +1 -1
  79. package/dist/job-recoverer-collecting.adapter.d.ts +7 -0
  80. package/dist/job-recoverer-collecting.adapter.d.ts.map +1 -0
  81. package/dist/job-recoverer-collecting.adapter.js +10 -0
  82. package/dist/job-recoverer-collecting.adapter.js.map +1 -0
  83. package/dist/job-recoverer-noop.adapter.d.ts +6 -0
  84. package/dist/job-recoverer-noop.adapter.d.ts.map +1 -0
  85. package/dist/job-recoverer-noop.adapter.js +7 -0
  86. package/dist/job-recoverer-noop.adapter.js.map +1 -0
  87. package/dist/job-recoverer-sqlite.adapter.d.ts +13 -0
  88. package/dist/job-recoverer-sqlite.adapter.d.ts.map +1 -0
  89. package/dist/job-recoverer-sqlite.adapter.js +14 -0
  90. package/dist/job-recoverer-sqlite.adapter.js.map +1 -0
  91. package/dist/job-recoverer.port.d.ts +5 -0
  92. package/dist/job-recoverer.port.d.ts.map +1 -0
  93. package/dist/job-recoverer.port.js +2 -0
  94. package/dist/job-recoverer.port.js.map +1 -0
  95. package/dist/memory-consumption.service.d.ts +1 -2
  96. package/dist/memory-consumption.service.d.ts.map +1 -1
  97. package/dist/memory-consumption.service.js.map +1 -1
  98. package/dist/path-matcher.service.d.ts +6 -0
  99. package/dist/path-matcher.service.d.ts.map +1 -0
  100. package/dist/path-matcher.service.js +13 -0
  101. package/dist/path-matcher.service.js.map +1 -0
  102. package/dist/remote-file-storage-disk.adapter.d.ts +2 -6
  103. package/dist/remote-file-storage-disk.adapter.d.ts.map +1 -1
  104. package/dist/remote-file-storage-disk.adapter.js +1 -9
  105. package/dist/remote-file-storage-disk.adapter.js.map +1 -1
  106. package/dist/request-context-hono.adapter.d.ts +1 -1
  107. package/dist/request-context-hono.adapter.d.ts.map +1 -1
  108. package/dist/request-context-hono.adapter.js +3 -3
  109. package/dist/request-context-hono.adapter.js.map +1 -1
  110. package/dist/request-context.port.d.ts +4 -0
  111. package/dist/request-context.port.d.ts.map +1 -1
  112. package/dist/request-context.port.js +4 -1
  113. package/dist/request-context.port.js.map +1 -1
  114. package/dist/runtime-stats-provider-noop.adapter.d.ts +5 -0
  115. package/dist/runtime-stats-provider-noop.adapter.d.ts.map +1 -0
  116. package/dist/runtime-stats-provider-noop.adapter.js +14 -0
  117. package/dist/runtime-stats-provider-noop.adapter.js.map +1 -0
  118. package/dist/runtime-stats-provider-system.adapter.d.ts +12 -0
  119. package/dist/runtime-stats-provider-system.adapter.d.ts.map +1 -0
  120. package/dist/runtime-stats-provider-system.adapter.js +21 -0
  121. package/dist/runtime-stats-provider-system.adapter.js.map +1 -0
  122. package/dist/runtime-stats-provider.port.d.ts +18 -0
  123. package/dist/runtime-stats-provider.port.d.ts.map +1 -0
  124. package/dist/runtime-stats-provider.port.js +2 -0
  125. package/dist/runtime-stats-provider.port.js.map +1 -0
  126. package/dist/security-rule-violation-threshold.strategy.js +1 -1
  127. package/dist/security-rule-violation-threshold.strategy.js.map +1 -1
  128. package/dist/setup-hono.service.js +1 -1
  129. package/dist/setup-hono.service.js.map +1 -1
  130. package/dist/shield-auth-hono.strategy.d.ts.map +1 -1
  131. package/dist/shield-auth-hono.strategy.js +4 -3
  132. package/dist/shield-auth-hono.strategy.js.map +1 -1
  133. package/dist/shield-auth.strategy.d.ts +1 -5
  134. package/dist/shield-auth.strategy.d.ts.map +1 -1
  135. package/dist/shield-auth.strategy.js +3 -6
  136. package/dist/shield-auth.strategy.js.map +1 -1
  137. package/dist/shield-maintenance.strategy.d.ts.map +1 -1
  138. package/dist/shield-maintenance.strategy.js +2 -5
  139. package/dist/shield-maintenance.strategy.js.map +1 -1
  140. package/dist/temporary-file-absolute.adapter.d.ts +2 -6
  141. package/dist/temporary-file-absolute.adapter.d.ts.map +1 -1
  142. package/dist/temporary-file-absolute.adapter.js +1 -9
  143. package/dist/temporary-file-absolute.adapter.js.map +1 -1
  144. package/dist/timing.middleware.d.ts +0 -1
  145. package/dist/timing.middleware.d.ts.map +1 -1
  146. package/dist/timing.middleware.js +2 -9
  147. package/dist/timing.middleware.js.map +1 -1
  148. package/package.json +1 -1
  149. package/readme.md +13 -0
  150. package/src/atomic-file-writer-collecting.adapter.ts +14 -0
  151. package/src/atomic-file-writer-noop.adapter.ts +10 -0
  152. package/src/atomic-file-writer.adapter.ts +34 -0
  153. package/src/atomic-file-writer.port.ts +6 -0
  154. package/src/encryption-aes-gcm.adapter.ts +4 -4
  155. package/src/event-stream-accept.service.ts +10 -0
  156. package/src/gzip.adapter.ts +3 -3
  157. package/src/healthcheck.handler.ts +8 -11
  158. package/src/http-exception-errors.ts +2 -2
  159. package/src/http-logger-hono.middleware.ts +12 -6
  160. package/src/http-logger.middleware.ts +4 -7
  161. package/src/image-blur.adapter.ts +3 -13
  162. package/src/image-compressor.adapter.ts +3 -12
  163. package/src/image-exif-clear.adapter.ts +3 -11
  164. package/src/image-formatter.adapter.ts +3 -12
  165. package/src/image-grayscale.adapter.ts +3 -13
  166. package/src/image-processor.adapter.ts +3 -11
  167. package/src/image-resizer.adapter.ts +3 -12
  168. package/src/index.ts +11 -0
  169. package/src/job-pruner-sqlite.adapter.ts +2 -1
  170. package/src/job-queue-stats-provider-sqlite.adapter.ts +4 -4
  171. package/src/job-recoverer-collecting.adapter.ts +14 -0
  172. package/src/job-recoverer-noop.adapter.ts +8 -0
  173. package/src/job-recoverer-sqlite.adapter.ts +20 -0
  174. package/src/job-recoverer.port.ts +5 -0
  175. package/src/memory-consumption.service.ts +4 -1
  176. package/src/path-matcher.service.ts +14 -0
  177. package/src/remote-file-storage-disk.adapter.ts +3 -17
  178. package/src/request-context-hono.adapter.ts +3 -4
  179. package/src/request-context.port.ts +5 -0
  180. package/src/runtime-stats-provider-noop.adapter.ts +16 -0
  181. package/src/runtime-stats-provider-system.adapter.ts +24 -0
  182. package/src/runtime-stats-provider.port.ts +16 -0
  183. package/src/security-rule-violation-threshold.strategy.ts +2 -2
  184. package/src/setup-hono.service.ts +1 -1
  185. package/src/shield-auth-hono.strategy.ts +4 -3
  186. package/src/shield-auth.strategy.ts +3 -8
  187. package/src/shield-maintenance.strategy.ts +2 -6
  188. package/src/temporary-file-absolute.adapter.ts +3 -18
  189. package/src/timing.middleware.ts +2 -10
@@ -0,0 +1,8 @@
1
+ import type * as tools from "@bgord/tools";
2
+ import type { AtomicFileWriterPort } from "./atomic-file-writer.port";
3
+ import type { FileWriterContent } from "./file-writer.port";
4
+ export declare class AtomicFileWriterCollectingAdapter implements AtomicFileWriterPort {
5
+ readonly written: Array<[tools.FilePathRelative | tools.FilePathAbsolute, FileWriterContent]>;
6
+ write(path: tools.FilePathRelative | tools.FilePathAbsolute, content: FileWriterContent): Promise<void>;
7
+ }
8
+ //# sourceMappingURL=atomic-file-writer-collecting.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atomic-file-writer-collecting.adapter.d.ts","sourceRoot":"","sources":["../src/atomic-file-writer-collecting.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,qBAAa,iCAAkC,YAAW,oBAAoB;IAC5E,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC,CAAM;IAE7F,KAAK,CACT,IAAI,EAAE,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,EACrD,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAEf;CACF"}
@@ -0,0 +1,7 @@
1
+ export class AtomicFileWriterCollectingAdapter {
2
+ written = [];
3
+ async write(path, content) {
4
+ this.written.push([path, content]);
5
+ }
6
+ }
7
+ //# sourceMappingURL=atomic-file-writer-collecting.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atomic-file-writer-collecting.adapter.js","sourceRoot":"","sources":["../src/atomic-file-writer-collecting.adapter.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,iCAAiC;IACnC,OAAO,GAAgF,EAAE,CAAC;IAEnG,KAAK,CAAC,KAAK,CACT,IAAqD,EACrD,OAA0B;QAE1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACrC,CAAC;CACF"}
@@ -0,0 +1,7 @@
1
+ import type * as tools from "@bgord/tools";
2
+ import type { AtomicFileWriterPort } from "./atomic-file-writer.port";
3
+ import type { FileWriterContent } from "./file-writer.port";
4
+ export declare class AtomicFileWriterNoopAdapter implements AtomicFileWriterPort {
5
+ write(_path: tools.FilePathRelative | tools.FilePathAbsolute, _content: FileWriterContent): Promise<void>;
6
+ }
7
+ //# sourceMappingURL=atomic-file-writer-noop.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atomic-file-writer-noop.adapter.d.ts","sourceRoot":"","sources":["../src/atomic-file-writer-noop.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,qBAAa,2BAA4B,YAAW,oBAAoB;IAChE,KAAK,CACT,KAAK,EAAE,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,EACtD,QAAQ,EAAE,iBAAiB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAAG;CACpB"}
@@ -0,0 +1,4 @@
1
+ export class AtomicFileWriterNoopAdapter {
2
+ async write(_path, _content) { }
3
+ }
4
+ //# sourceMappingURL=atomic-file-writer-noop.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atomic-file-writer-noop.adapter.js","sourceRoot":"","sources":["../src/atomic-file-writer-noop.adapter.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,2BAA2B;IACtC,KAAK,CAAC,KAAK,CACT,KAAsD,EACtD,QAA2B,IACX,CAAC;CACpB"}
@@ -0,0 +1,19 @@
1
+ import type * as tools from "@bgord/tools";
2
+ import type { AtomicFileWriterPort } from "./atomic-file-writer.port";
3
+ import type { FileCleanerPort } from "./file-cleaner.port";
4
+ import type { FileRenamerPort } from "./file-renamer.port";
5
+ import type { FileWriterContent, FileWriterPort } from "./file-writer.port";
6
+ import type { NonceProviderPort } from "./nonce-provider.port";
7
+ type Dependencies = {
8
+ FileCleaner: FileCleanerPort;
9
+ FileRenamer: FileRenamerPort;
10
+ FileWriter: FileWriterPort;
11
+ NonceProvider: NonceProviderPort;
12
+ };
13
+ export declare class AtomicFileWriterAdapter implements AtomicFileWriterPort {
14
+ private readonly deps;
15
+ constructor(deps: Dependencies);
16
+ write(path: tools.FilePathRelative | tools.FilePathAbsolute, content: FileWriterContent): Promise<void>;
17
+ }
18
+ export {};
19
+ //# sourceMappingURL=atomic-file-writer.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atomic-file-writer.adapter.d.ts","sourceRoot":"","sources":["../src/atomic-file-writer.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,KAAK,YAAY,GAAG;IAClB,WAAW,EAAE,eAAe,CAAC;IAC7B,WAAW,EAAE,eAAe,CAAC;IAC7B,UAAU,EAAE,cAAc,CAAC;IAC3B,aAAa,EAAE,iBAAiB,CAAC;CAClC,CAAC;AAEF,qBAAa,uBAAwB,YAAW,oBAAoB;IACtD,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,YAAY,EAAI;IAE7C,KAAK,CACT,IAAI,EAAE,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,EACrD,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAYf;CACF"}
@@ -0,0 +1,18 @@
1
+ export class AtomicFileWriterAdapter {
2
+ deps;
3
+ constructor(deps) {
4
+ this.deps = deps;
5
+ }
6
+ async write(path, content) {
7
+ const temporary = path.withFilename(path.getFilename().withSuffix(`-part-${this.deps.NonceProvider.generate()}`));
8
+ try {
9
+ await this.deps.FileWriter.write(temporary.get(), content);
10
+ await this.deps.FileRenamer.rename(temporary, path);
11
+ }
12
+ catch (error) {
13
+ await this.deps.FileCleaner.delete(temporary).catch(() => { });
14
+ throw error;
15
+ }
16
+ }
17
+ }
18
+ //# sourceMappingURL=atomic-file-writer.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atomic-file-writer.adapter.js","sourceRoot":"","sources":["../src/atomic-file-writer.adapter.ts"],"names":[],"mappings":"AAcA,MAAM,OAAO,uBAAuB;IACL,IAAI;IAAjC,YAA6B,IAAkB;oBAAlB,IAAI;IAAiB,CAAC;IAEnD,KAAK,CAAC,KAAK,CACT,IAAqD,EACrD,OAA0B;QAE1B,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CACjC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC,CAC7E,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;YAC3D,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAC9D,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ import type * as tools from "@bgord/tools";
2
+ import type { FileWriterContent } from "./file-writer.port";
3
+ export interface AtomicFileWriterPort {
4
+ write(path: tools.FilePathRelative | tools.FilePathAbsolute, content: FileWriterContent): Promise<void>;
5
+ }
6
+ //# sourceMappingURL=atomic-file-writer.port.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atomic-file-writer.port.d.ts","sourceRoot":"","sources":["../src/atomic-file-writer.port.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzG"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=atomic-file-writer.port.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atomic-file-writer.port.js","sourceRoot":"","sources":["../src/atomic-file-writer.port.ts"],"names":[],"mappings":""}
@@ -1,12 +1,12 @@
1
1
  import type * as tools from "@bgord/tools";
2
+ import type { AtomicFileWriterPort } from "./atomic-file-writer.port";
2
3
  import type { CryptoKeyProviderPort } from "./crypto-key-provider.port";
3
4
  import type { EncryptionPort, EncryptionRecipe } from "./encryption.port";
4
5
  import type { FileInspectionPort } from "./file-inspection.port";
5
6
  import type { FileReaderRawPort } from "./file-reader-raw.port";
6
- import type { FileWriterPort } from "./file-writer.port";
7
7
  type Dependencies = {
8
8
  FileReaderRaw: FileReaderRawPort;
9
- FileWriter: FileWriterPort;
9
+ AtomicFileWriter: AtomicFileWriterPort;
10
10
  CryptoKeyProvider: CryptoKeyProviderPort;
11
11
  FileInspection: FileInspectionPort;
12
12
  };
@@ -1 +1 @@
1
- {"version":3,"file":"encryption-aes-gcm.adapter.d.ts","sourceRoot":"","sources":["../src/encryption-aes-gcm.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,KAAK,YAAY,GAAG;IAClB,aAAa,EAAE,iBAAiB,CAAC;IACjC,UAAU,EAAE,cAAc,CAAC;IAC3B,iBAAiB,EAAE,qBAAqB,CAAC;IACzC,cAAc,EAAE,kBAAkB,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,4BAA4B;IAAK,WAAW;CAA6C,CAAC;AAEvG,qBAAa,uBAAwB,YAAW,cAAc;IAChD,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,YAAY,EAAI;IAE7C,OAAO,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAahG;IAEK,OAAO,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAYhG;IAEK,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,CASvF;CACF"}
1
+ {"version":3,"file":"encryption-aes-gcm.adapter.d.ts","sourceRoot":"","sources":["../src/encryption-aes-gcm.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,KAAK,YAAY,GAAG;IAClB,aAAa,EAAE,iBAAiB,CAAC;IACjC,gBAAgB,EAAE,oBAAoB,CAAC;IACvC,iBAAiB,EAAE,qBAAqB,CAAC;IACzC,cAAc,EAAE,kBAAkB,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,4BAA4B;IAAK,WAAW;CAA6C,CAAC;AAEvG,qBAAa,uBAAwB,YAAW,cAAc;IAChD,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,YAAY,EAAI;IAE7C,OAAO,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAahG;IAEK,OAAO,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAYhG;IAEK,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,CASvF;CACF"}
@@ -14,7 +14,7 @@ export class EncryptionAesGcmAdapter {
14
14
  const iv = EncryptionIV.generate();
15
15
  const plaintext = await this.deps.FileReaderRaw.read(recipe.input);
16
16
  const encrypted = await CryptoAesGcm.encrypt(key, plaintext, iv);
17
- await this.deps.FileWriter.write(recipe.output, encrypted);
17
+ await this.deps.AtomicFileWriter.write(recipe.output, encrypted);
18
18
  return recipe.output;
19
19
  }
20
20
  async decrypt(recipe) {
@@ -24,7 +24,7 @@ export class EncryptionAesGcmAdapter {
24
24
  const key = await this.deps.CryptoKeyProvider.get();
25
25
  const encrypted = new Uint8Array(await this.deps.FileReaderRaw.read(recipe.input));
26
26
  const plaintext = await CryptoAesGcm.decrypt(key, encrypted);
27
- await this.deps.FileWriter.write(recipe.output, plaintext);
27
+ await this.deps.AtomicFileWriter.write(recipe.output, plaintext);
28
28
  return recipe.output;
29
29
  }
30
30
  async view(input) {
@@ -1 +1 @@
1
- {"version":3,"file":"encryption-aes-gcm.adapter.js","sourceRoot":"","sources":["../src/encryption-aes-gcm.adapter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAYlD,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,WAAW,EAAE,yCAAyC,EAAE,CAAC;AAEvG,MAAM,OAAO,uBAAuB;IACL,IAAI;IAAjC,YAA6B,IAAkB;oBAAlB,IAAI;IAAiB,CAAC;IAEnD,KAAK,CAAC,OAAO,CAAC,MAAwB;QACpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,WAAW,CAAC,CAAC;QAEvE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC;QACpD,MAAM,EAAE,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QAEnC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QAEjE,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAE3D,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAwB;QACpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,WAAW,CAAC,CAAC;QAEvE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC;QAEpD,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACnF,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAE7D,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAE3D,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAsD;QAC/D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,WAAW,CAAC,CAAC;QAEvE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC;QAEpD,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAE5E,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC9C,CAAC;CACF"}
1
+ {"version":3,"file":"encryption-aes-gcm.adapter.js","sourceRoot":"","sources":["../src/encryption-aes-gcm.adapter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAWlD,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,WAAW,EAAE,yCAAyC,EAAE,CAAC;AAEvG,MAAM,OAAO,uBAAuB;IACL,IAAI;IAAjC,YAA6B,IAAkB;oBAAlB,IAAI;IAAiB,CAAC;IAEnD,KAAK,CAAC,OAAO,CAAC,MAAwB;QACpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,WAAW,CAAC,CAAC;QAEvE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC;QACpD,MAAM,EAAE,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QAEnC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QAEjE,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAEjE,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAwB;QACpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,WAAW,CAAC,CAAC;QAEvE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC;QAEpD,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACnF,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAE7D,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAEjE,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAsD;QAC/D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,WAAW,CAAC,CAAC;QAEvE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC;QAEpD,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAE5E,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC9C,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ export declare class EventStreamAccept {
2
+ static matches(accept: string | undefined): boolean;
3
+ }
4
+ //# sourceMappingURL=event-stream-accept.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-stream-accept.service.d.ts","sourceRoot":"","sources":["../src/event-stream-accept.service.ts"],"names":[],"mappings":"AAAA,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAOlD;CACF"}
@@ -0,0 +1,11 @@
1
+ export class EventStreamAccept {
2
+ static matches(accept) {
3
+ if (!accept)
4
+ return false;
5
+ return accept
6
+ .toLowerCase()
7
+ .split(",")
8
+ .some((type) => type.split(";")[0]?.trim() === "text/event-stream");
9
+ }
10
+ }
11
+ //# sourceMappingURL=event-stream-accept.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-stream-accept.service.js","sourceRoot":"","sources":["../src/event-stream-accept.service.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,iBAAiB;IAC5B,MAAM,CAAC,OAAO,CAAC,MAA0B;QACvC,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAE1B,OAAO,MAAM;aACV,WAAW,EAAE;aACb,KAAK,CAAC,GAAG,CAAC;aACV,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,mBAAmB,CAAC,CAAC;IACxE,CAAC;CACF"}
@@ -1,10 +1,10 @@
1
1
  import type * as tools from "@bgord/tools";
2
+ import type { AtomicFileWriterPort } from "./atomic-file-writer.port";
2
3
  import type { FileReaderRawPort } from "./file-reader-raw.port";
3
- import type { FileWriterPort } from "./file-writer.port";
4
4
  import type { GzipPort, GzipRecipe } from "./gzip.port";
5
5
  type Dependencies = {
6
6
  FileReaderRaw: FileReaderRawPort;
7
- FileWriter: FileWriterPort;
7
+ AtomicFileWriter: AtomicFileWriterPort;
8
8
  };
9
9
  export declare class GzipAdapter implements GzipPort {
10
10
  private readonly deps;
@@ -1 +1 @@
1
- {"version":3,"file":"gzip.adapter.d.ts","sourceRoot":"","sources":["../src/gzip.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAExD,KAAK,YAAY,GAAG;IAAE,aAAa,EAAE,iBAAiB,CAAC;IAAC,UAAU,EAAE,cAAc,CAAA;CAAE,CAAC;AAErF,qBAAa,WAAY,YAAW,QAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,YAAY,EAAI;IAE7C,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAOvF;CACF"}
1
+ {"version":3,"file":"gzip.adapter.d.ts","sourceRoot":"","sources":["../src/gzip.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAExD,KAAK,YAAY,GAAG;IAAE,aAAa,EAAE,iBAAiB,CAAC;IAAC,gBAAgB,EAAE,oBAAoB,CAAA;CAAE,CAAC;AAEjG,qBAAa,WAAY,YAAW,QAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,YAAY,EAAI;IAE7C,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAOvF;CACF"}
@@ -6,7 +6,7 @@ export class GzipAdapter {
6
6
  async pack(recipe) {
7
7
  const file = await this.deps.FileReaderRaw.read(recipe.input);
8
8
  const archive = Bun.gzipSync(file);
9
- await this.deps.FileWriter.write(recipe.output, archive);
9
+ await this.deps.AtomicFileWriter.write(recipe.output, archive);
10
10
  return recipe.output;
11
11
  }
12
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gzip.adapter.js","sourceRoot":"","sources":["../src/gzip.adapter.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,WAAW;IACO,IAAI;IAAjC,YAA6B,IAAkB;oBAAlB,IAAI;IAAiB,CAAC;IAEnD,KAAK,CAAC,IAAI,CAAC,MAAkB;QAC3B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEnC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEzD,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;CACF"}
1
+ {"version":3,"file":"gzip.adapter.js","sourceRoot":"","sources":["../src/gzip.adapter.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,WAAW;IACO,IAAI;IAAjC,YAA6B,IAAkB;oBAAlB,IAAI;IAAiB,CAAC;IAEnD,KAAK,CAAC,IAAI,CAAC,MAAkB;QAC3B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEnC,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAE/D,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;CACF"}
@@ -3,7 +3,7 @@ import * as tools from "@bgord/tools";
3
3
  import type { BuildInfoType } from "./build-info.vo";
4
4
  import type { ClockPort } from "./clock.port";
5
5
  import type { CommitShaValueType } from "./commit-sha-value.vo";
6
- import { type EventLoopUtilizationSnapshot } from "./event-loop-utilization.service";
6
+ import type { EventLoopUtilizationSnapshot } from "./event-loop-utilization.service";
7
7
  import type { JobQueueStatsProviderPort, JobQueueStatsSnapshot } from "./job-queue-stats-provider.port";
8
8
  import type { LoggerStatsProviderPort, LoggerStatsSnapshot } from "./logger-stats-provider.port";
9
9
  import type { NodeEnvironmentEnum } from "./node-env.vo";
@@ -11,7 +11,8 @@ import { Prerequisite, type PrerequisiteLabelType } from "./prerequisite.vo";
11
11
  import { type PrerequisiteVerificationResult } from "./prerequisite-verifier.port";
12
12
  import type { ReactiveConfigPort } from "./reactive-config.port";
13
13
  import type { RedactorStrategy } from "./redactor.strategy";
14
- import { type UptimeResultType } from "./uptime.service";
14
+ import type { RuntimeStatsProviderPort } from "./runtime-stats-provider.port";
15
+ import type { UptimeResultType } from "./uptime.service";
15
16
  export declare enum HealthcheckStatusEnum {
16
17
  healthy = "healthy",
17
18
  degraded = "degraded",
@@ -20,6 +21,7 @@ export declare enum HealthcheckStatusEnum {
20
21
  export type HealthcheckDependencies = {
21
22
  Clock: ClockPort;
22
23
  BuildInfoConfig: ReactiveConfigPort<BuildInfoType>;
24
+ RuntimeStatsProvider: RuntimeStatsProviderPort;
23
25
  LoggerStatsProvider?: LoggerStatsProviderPort;
24
26
  JobQueueStatsProvider?: JobQueueStatsProviderPort;
25
27
  };
@@ -1 +1 @@
1
- {"version":3,"file":"healthcheck.handler.d.ts","sourceRoot":"","sources":["../src/healthcheck.handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"healthcheck.handler.d.ts","sourceRoot":"","sources":["../src/healthcheck.handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AACrF,OAAO,KAAK,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxG,OAAO,KAAK,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACjG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAEL,KAAK,8BAA8B,EACpC,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAE9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,oBAAY,qBAAqB;IAC/B,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,SAAS,cAAc;CACxB;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,SAAS,CAAC;IACjB,eAAe,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC;IACnD,oBAAoB,EAAE,wBAAwB,CAAC;IAC/C,mBAAmB,CAAC,EAAE,uBAAuB,CAAC;IAC9C,qBAAqB,CAAC,EAAE,yBAAyB,CAAC;CACnD,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,mBAAmB,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IAC3C,QAAQ,EAAE,gBAAgB,CAAC;CAC5B,CAAC;AAIF,eAAO,MAAM,qBAAqB;sBACC,GAAG;uBACF,GAAG;wBACF,GAAG;CAC9B,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,qBAAqB,CAAC;IAC9B,IAAI,EAAE,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,OAAO,qBAAqB,CAAC,CAAC;IACzE,UAAU,EAAE;QACV,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,KAAK,CAAC,kBAAkB,CAAC;QACpC,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,kBAAkB,CAAC;QACxB,KAAK,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,GAAG,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,CAAC;QAC5D,WAAW,EAAE,mBAAmB,CAAC;KAClC,CAAC;IACF,MAAM,EAAE;QACN,GAAG,EAAE,OAAO,OAAO,CAAC,GAAG,CAAC;QACxB,QAAQ,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,EAAE,KAAK,CAAC,sBAAsB,CAAC;QACnC,OAAO,EAAE,KAAK,CAAC,kBAAkB,CAAC;QAClC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,GAAG;YAAE,EAAE,EAAE,KAAK,CAAC,cAAc,CAAA;SAAE,CAAC;QAC1E,MAAM,EAAE;YACN,KAAK,EAAE;gBAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAAC,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;aAAE,CAAC;YACnF,IAAI,EAAE;gBACJ,IAAI,EAAE;oBAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAAC,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;iBAAE,CAAC;gBAClF,KAAK,EAAE;oBAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAAC,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;iBAAE,CAAC;aACpF,CAAC;SACH,CAAC;QACF,SAAS,EAAE;YACT,GAAG,EAAE;gBAAE,GAAG,EAAE,KAAK,CAAC,cAAc,CAAC;gBAAC,GAAG,EAAE,KAAK,CAAC,cAAc,CAAC;gBAAC,GAAG,EAAE,KAAK,CAAC,cAAc,CAAA;aAAE,CAAC;YACzF,WAAW,EAAE,4BAA4B,CAAC;SAC3C,CAAC;QACF,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC;KAC7B,CAAC;IACF,OAAO,EAAE,aAAa,CAAC;QACrB,KAAK,EAAE,qBAAqB,CAAC;QAC7B,OAAO,EAAE,8BAA8B,CAAC;QACxC,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC;KAC1B,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAC9B,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzB,SAAS,EAAE,KAAK,CAAC,kBAAkB,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC,CAAC;AAEF,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFvB,YACmB,MAAM,EAAE,iBAAiB,EACzB,IAAI,EAAE,uBAAuB,EAC5C;IAEE,KAAK,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAsFxC;CACF"}
@@ -1,14 +1,9 @@
1
1
  import os from "node:os";
2
2
  import * as tools from "@bgord/tools";
3
- import { EventLoopLag } from "./event-loop-lag.service";
4
- import { EventLoopUtilization } from "./event-loop-utilization.service";
5
- import { InFlightRequestsTracker } from "./in-flight-requests-tracker.service";
6
- import { MemoryConsumption } from "./memory-consumption.service";
7
3
  import { Prerequisite } from "./prerequisite.vo";
8
4
  import { PrerequisiteVerificationOutcome, } from "./prerequisite-verifier.port";
9
5
  import { PrerequisiteVerifierSelfAdapter } from "./prerequisite-verifier-self.adapter";
10
6
  import { Stopwatch } from "./stopwatch.service";
11
- import { Uptime } from "./uptime.service";
12
7
  export var HealthcheckStatusEnum;
13
8
  (function (HealthcheckStatusEnum) {
14
9
  HealthcheckStatusEnum["healthy"] = "healthy";
@@ -50,9 +45,7 @@ export class HealthcheckHandler {
50
45
  ? HealthcheckStatusEnum.degraded
51
46
  : HealthcheckStatusEnum.healthy;
52
47
  const build = await this.deps.BuildInfoConfig.get();
53
- const uptime = Uptime.get(this.deps.Clock);
54
- const histogram = EventLoopLag.snapshot();
55
- const memory = MemoryConsumption.snapshot();
48
+ const { uptime, memory, eventLoop, inFlight } = this.deps.RuntimeStatsProvider.getStats();
56
49
  return {
57
50
  status,
58
51
  code: HealthcheckStatusCode[status],
@@ -91,10 +84,10 @@ export class HealthcheckHandler {
91
84
  },
92
85
  },
93
86
  eventLoop: {
94
- lag: { p50: histogram.p50.ms, p95: histogram.p95.ms, p99: histogram.p99.ms },
95
- utilization: EventLoopUtilization.snapshot(),
87
+ lag: { p50: eventLoop.lag.p50.ms, p95: eventLoop.lag.p95.ms, p99: eventLoop.lag.p99.ms },
88
+ utilization: eventLoop.utilization,
96
89
  },
97
- inFlight: InFlightRequestsTracker.get(),
90
+ inFlight,
98
91
  },
99
92
  logger: this.deps.LoggerStatsProvider?.getStats(),
100
93
  queue: await this.deps.JobQueueStatsProvider?.getStats(),
@@ -1 +1 @@
1
- {"version":3,"file":"healthcheck.handler.js","sourceRoot":"","sources":["../src/healthcheck.handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"healthcheck.handler.js","sourceRoot":"","sources":["../src/healthcheck.handler.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { FileUploaderError } from "./file-uploader.middleware";
2
+ import { RequestIdentityError } from "./request-context.port";
2
3
  import { ShieldApiKeyStrategyError } from "./shield-api-key.strategy";
3
- import { ShieldAuthStrategyError } from "./shield-auth.strategy";
4
4
  import { ShieldBasicAuthStrategyError } from "./shield-basic-auth.strategy";
5
5
  import { ShieldBodyLimitError } from "./shield-body-limit.strategy";
6
6
  import { ShieldCsrfStrategyError } from "./shield-csrf.strategy";
@@ -14,7 +14,7 @@ import { ShieldTimeoutStrategyError } from "./shield-timeout.strategy";
14
14
  import { ShieldWebhookStrategyError } from "./shield-webhook.strategy";
15
15
  export const HttpExceptionErrors = {
16
16
  ShieldApiKeyRejected: ShieldApiKeyStrategyError.Rejected,
17
- ShieldAuthRejected: ShieldAuthStrategyError.Rejected,
17
+ ShieldAuthRejected: RequestIdentityError.Rejected,
18
18
  ShieldBasicAuthRejected: ShieldBasicAuthStrategyError.Rejected,
19
19
  ShieldBodyLimitTooBig: ShieldBodyLimitError.TooBig,
20
20
  ShieldCsrfRejected: ShieldCsrfStrategyError.Rejected,
@@ -1 +1 @@
1
- {"version":3,"file":"http-exception-errors.js","sourceRoot":"","sources":["../src/http-exception-errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,gCAAgC,EAAE,MAAM,uCAAuC,CAAC;AACzF,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,oBAAoB,EAAE,yBAAyB,CAAC,QAAQ;IACxD,kBAAkB,EAAE,uBAAuB,CAAC,QAAQ;IACpD,uBAAuB,EAAE,4BAA4B,CAAC,QAAQ;IAC9D,qBAAqB,EAAE,oBAAoB,CAAC,MAAM;IAClD,kBAAkB,EAAE,uBAAuB,CAAC,QAAQ;IACpD,sBAAsB,EAAE,2BAA2B,CAAC,QAAQ;IAC5D,2BAA2B,EAAE,gCAAgC,CAAC,QAAQ;IACtE,yBAAyB,EAAE,8BAA8B,CAAC,QAAQ;IAClE,yBAAyB,EAAE,8BAA8B,CAAC,QAAQ;IAClE,uBAAuB,EAAE,4BAA4B,CAAC,QAAQ;IAC9D,uBAAuB,EAAE,4BAA4B,CAAC,QAAQ;IAC9D,qBAAqB,EAAE,0BAA0B,CAAC,QAAQ;IAC1D,qBAAqB,EAAE,0BAA0B,CAAC,QAAQ;IAC1D,GAAG,iBAAiB;CACZ,CAAC"}
1
+ {"version":3,"file":"http-exception-errors.js","sourceRoot":"","sources":["../src/http-exception-errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,gCAAgC,EAAE,MAAM,uCAAuC,CAAC;AACzF,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,oBAAoB,EAAE,yBAAyB,CAAC,QAAQ;IACxD,kBAAkB,EAAE,oBAAoB,CAAC,QAAQ;IACjD,uBAAuB,EAAE,4BAA4B,CAAC,QAAQ;IAC9D,qBAAqB,EAAE,oBAAoB,CAAC,MAAM;IAClD,kBAAkB,EAAE,uBAAuB,CAAC,QAAQ;IACpD,sBAAsB,EAAE,2BAA2B,CAAC,QAAQ;IAC5D,2BAA2B,EAAE,gCAAgC,CAAC,QAAQ;IACtE,yBAAyB,EAAE,8BAA8B,CAAC,QAAQ;IAClE,yBAAyB,EAAE,8BAA8B,CAAC,QAAQ;IAClE,uBAAuB,EAAE,4BAA4B,CAAC,QAAQ;IAC9D,uBAAuB,EAAE,4BAA4B,CAAC,QAAQ;IAC9D,qBAAqB,EAAE,0BAA0B,CAAC,QAAQ;IAC1D,qBAAqB,EAAE,0BAA0B,CAAC,QAAQ;IAC1D,GAAG,iBAAiB;CACZ,CAAC"}
@@ -6,5 +6,6 @@ export declare class HttpLoggerHonoMiddleware implements MiddlewareHonoPort {
6
6
  constructor(deps: HttpLoggerMiddlewareDependencies, config?: HttpLoggerConfig);
7
7
  handle(): MiddlewareHandler;
8
8
  private static parseJSON;
9
+ private static isJSON;
9
10
  }
10
11
  //# sourceMappingURL=http-logger-hono.middleware.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"http-logger-hono.middleware.d.ts","sourceRoot":"","sources":["../src/http-logger-hono.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,EACL,KAAK,gBAAgB,EAErB,KAAK,gCAAgC,EACtC,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAGjE,qBAAa,wBAAyB,YAAW,kBAAkB;IACjE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuB;IAElD,YAAY,IAAI,EAAE,gCAAgC,EAAE,MAAM,CAAC,EAAE,gBAAgB,EAE5E;IAED,MAAM,IAAI,iBAAiB,CAuB1B;mBAEoB,SAAS;CAK/B"}
1
+ {"version":3,"file":"http-logger-hono.middleware.d.ts","sourceRoot":"","sources":["../src/http-logger-hono.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,EACL,KAAK,gBAAgB,EAErB,KAAK,gCAAgC,EACtC,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAGjE,qBAAa,wBAAyB,YAAW,kBAAkB;IACjE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuB;IAElD,YAAY,IAAI,EAAE,gCAAgC,EAAE,MAAM,CAAC,EAAE,gBAAgB,EAE5E;IAED,MAAM,IAAI,iBAAiB,CAqB1B;mBAEoB,SAAS;IAQ9B,OAAO,CAAC,MAAM,CAAC,MAAM;CAKtB"}
@@ -10,25 +10,29 @@ export class HttpLoggerHonoMiddleware {
10
10
  const context = new RequestContextHonoAdapter(c);
11
11
  if (this.middleware.shouldSkip(context))
12
12
  return await next();
13
- const request = c.req.raw.clone();
14
13
  const correlationId = c.get("correlationId");
15
- const body = await HttpLoggerHonoMiddleware.parseJSON(request);
14
+ const body = await HttpLoggerHonoMiddleware.parseJSON(c.req.raw);
16
15
  const { stopwatch } = this.middleware.before(context, correlationId, body);
17
16
  await next();
18
- const response = c.res.clone();
19
- const responseBody = await HttpLoggerHonoMiddleware.parseJSON(response);
17
+ const responseBody = await HttpLoggerHonoMiddleware.parseJSON(c.res);
20
18
  this.middleware.after(context, correlationId, {
21
19
  stopwatch,
22
- status: response.status,
20
+ status: c.res.status,
23
21
  responseBody,
24
22
  });
25
23
  };
26
24
  }
27
25
  static async parseJSON(resource) {
26
+ if (!HttpLoggerHonoMiddleware.isJSON(resource.headers.get("content-type")))
27
+ return undefined;
28
28
  try {
29
- return await resource.json();
29
+ return await resource.clone().json();
30
30
  }
31
31
  catch { }
32
32
  }
33
+ static isJSON(contentType) {
34
+ const type = contentType?.split(";")[0]?.trim().toLowerCase();
35
+ return type === "application/json" || Boolean(type?.endsWith("+json"));
36
+ }
33
37
  }
34
38
  //# sourceMappingURL=http-logger-hono.middleware.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"http-logger-hono.middleware.js","sourceRoot":"","sources":["../src/http-logger-hono.middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,oBAAoB,GAErB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,MAAM,OAAO,wBAAwB;IAClB,UAAU,CAAuB;IAElD,YAAY,IAAsC,EAAE,MAAyB;QAC3E,IAAI,CAAC,UAAU,GAAG,IAAI,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM;QACJ,OAAO,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;YACvB,MAAM,OAAO,GAAG,IAAI,yBAAyB,CAAC,CAAC,CAAC,CAAC;YAEjD,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC;gBAAE,OAAO,MAAM,IAAI,EAAE,CAAC;YAE7D,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YAClC,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC7C,MAAM,IAAI,GAAG,MAAM,wBAAwB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAE/D,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;YAE3E,MAAM,IAAI,EAAE,CAAC;YAEb,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,YAAY,GAAG,MAAM,wBAAwB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAExE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,aAAa,EAAE;gBAC5C,SAAS;gBACT,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,YAAY;aACb,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,QAA4B;QACzD,IAAI,CAAC;YACH,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;CACF"}
1
+ {"version":3,"file":"http-logger-hono.middleware.js","sourceRoot":"","sources":["../src/http-logger-hono.middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,oBAAoB,GAErB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,MAAM,OAAO,wBAAwB;IAClB,UAAU,CAAuB;IAElD,YAAY,IAAsC,EAAE,MAAyB;QAC3E,IAAI,CAAC,UAAU,GAAG,IAAI,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM;QACJ,OAAO,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;YACvB,MAAM,OAAO,GAAG,IAAI,yBAAyB,CAAC,CAAC,CAAC,CAAC;YAEjD,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC;gBAAE,OAAO,MAAM,IAAI,EAAE,CAAC;YAE7D,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC7C,MAAM,IAAI,GAAG,MAAM,wBAAwB,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAEjE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;YAE3E,MAAM,IAAI,EAAE,CAAC;YAEb,MAAM,YAAY,GAAG,MAAM,wBAAwB,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAErE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,aAAa,EAAE;gBAC5C,SAAS;gBACT,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM;gBACpB,YAAY;aACb,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,QAA4B;QACzD,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QAE7F,IAAI,CAAC;YACH,OAAO,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IAEO,MAAM,CAAC,MAAM,CAAC,WAA0B;QAC9C,MAAM,IAAI,GAAG,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAE9D,OAAO,IAAI,KAAK,kBAAkB,IAAI,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IACzE,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"http-logger.middleware.d.ts","sourceRoot":"","sources":["../src/http-logger.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,KAAK,UAAU,EAAgB,MAAM,eAAe,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC/F,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,eAAO,MAAM,qBAAqB,UAoBjC,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC;AAExF,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,UAAU,CAAC,CAAA;CAAE,CAAC;AAE7E,MAAM,MAAM,sBAAsB,GAAG;IAAE,SAAS,EAAE,SAAS,CAAA;CAAE,CAAC;AAC9D,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,GAAG,CAAC;CACnB,CAAC;AAEF,qBAAa,oBAAoB;IAE7B,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAF1B,YACmB,IAAI,EAAE,gCAAgC,EACtC,MAAM,CAAC,EAAE,gBAAgB,YAAA,EACxC;IAEJ,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,gBAAgB,GAAG,OAAO,CAS9D;IAED,MAAM,CAAC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,IAAI,GAAE,GAAQ,GAAG,sBAAsB,CA0BxG;IAED,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,KAAK,EAAE,oBAAoB,GAAG,IAAI,CAiBlG;CACF"}
1
+ {"version":3,"file":"http-logger.middleware.d.ts","sourceRoot":"","sources":["../src/http-logger.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,KAAK,UAAU,EAAgB,MAAM,eAAe,CAAC;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC/F,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,eAAO,MAAM,qBAAqB,UAoBjC,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC;AAExF,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,UAAU,CAAC,CAAA;CAAE,CAAC;AAE7E,MAAM,MAAM,sBAAsB,GAAG;IAAE,SAAS,EAAE,SAAS,CAAA;CAAE,CAAC;AAC9D,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,GAAG,CAAC;CACnB,CAAC;AAEF,qBAAa,oBAAoB;IAE7B,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAF1B,YACmB,IAAI,EAAE,gCAAgC,EACtC,MAAM,CAAC,EAAE,gBAAgB,YAAA,EACxC;IAEJ,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,gBAAgB,GAAG,OAAO,CAI9D;IAED,MAAM,CAAC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,IAAI,GAAE,GAAQ,GAAG,sBAAsB,CA0BxG;IAED,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,KAAK,EAAE,oBAAoB,GAAG,IAAI,CAiBlG;CACF"}
@@ -1,4 +1,6 @@
1
+ import { EventStreamAccept } from "./event-stream-accept.service";
1
2
  import { LogLevelEnum } from "./logger.port";
3
+ import { PathMatcher } from "./path-matcher.service";
2
4
  import { Stopwatch } from "./stopwatch.service";
3
5
  export const UNINFORMATIVE_HEADERS = [
4
6
  "accept",
@@ -29,13 +31,9 @@ export class HttpLoggerMiddleware {
29
31
  this.config = config;
30
32
  }
31
33
  shouldSkip(context) {
32
- if (context.request.header("accept")?.toLowerCase().startsWith("text/event-stream"))
34
+ if (EventStreamAccept.matches(context.request.header("accept")))
33
35
  return true;
34
- return (this.config?.skip?.some((rule) => {
35
- if (rule instanceof URLPattern)
36
- return rule.test({ pathname: context.request.path });
37
- return context.request.path.startsWith(rule);
38
- }) ?? false);
36
+ return PathMatcher.matches(this.config?.skip, context.request.path);
39
37
  }
40
38
  before(context, correlationId, body = {}) {
41
39
  const client = { ip: context.identity.ip(), ua: context.identity.ua() };
@@ -1 +1 @@
1
- {"version":3,"file":"http-logger.middleware.js","sourceRoot":"","sources":["../src/http-logger.middleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http-logger.middleware.js","sourceRoot":"","sources":["../src/http-logger.middleware.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,8 @@
1
1
  import type * as tools from "@bgord/tools";
2
- import type { FileRenamerPort } from "./file-renamer.port";
3
- import type { FileWriterPort } from "./file-writer.port";
2
+ import type { AtomicFileWriterPort } from "./atomic-file-writer.port";
4
3
  import type { ImageBlurPort, ImageBlurStrategy } from "./image-blur.port";
5
- import type { NonceProviderPort } from "./nonce-provider.port";
6
4
  type Dependencies = {
7
- FileRenamer: FileRenamerPort;
8
- FileWriter: FileWriterPort;
9
- NonceProvider: NonceProviderPort;
5
+ AtomicFileWriter: AtomicFileWriterPort;
10
6
  };
11
7
  export declare class ImageBlurAdapter implements ImageBlurPort {
12
8
  private readonly deps;
@@ -1 +1 @@
1
- {"version":3,"file":"image-blur.adapter.d.ts","sourceRoot":"","sources":["../src/image-blur.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,KAAK,YAAY,GAAG;IAClB,WAAW,EAAE,eAAe,CAAC;IAC7B,UAAU,EAAE,cAAc,CAAC;IAC3B,aAAa,EAAE,iBAAiB,CAAC;CAClC,CAAC;AAEF,qBAAa,gBAAiB,YAAW,aAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,YAAY,EAAI;IAE7C,IAAI,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAe9F;CACF"}
1
+ {"version":3,"file":"image-blur.adapter.d.ts","sourceRoot":"","sources":["../src/image-blur.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE1E,KAAK,YAAY,GAAG;IAClB,gBAAgB,EAAE,oBAAoB,CAAC;CACxC,CAAC;AAEF,qBAAa,gBAAiB,YAAW,aAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,YAAY,EAAI;IAE7C,IAAI,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAS9F;CACF"}
@@ -5,12 +5,9 @@ export class ImageBlurAdapter {
5
5
  }
6
6
  async blur(recipe) {
7
7
  const final = recipe.output;
8
- const filename = final.getFilename();
9
- const temporary = final.withFilename(filename.withSuffix(`-blurred-${this.deps.NonceProvider.generate()}`));
10
8
  const blurred = await Bun.file(recipe.input.get()).image().placeholder();
11
9
  const bytes = Buffer.from(blurred.substring(blurred.indexOf(",") + 1), "base64");
12
- await this.deps.FileWriter.write(temporary.get(), bytes);
13
- await this.deps.FileRenamer.rename(temporary, final);
10
+ await this.deps.AtomicFileWriter.write(final, bytes);
14
11
  return final;
15
12
  }
16
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"image-blur.adapter.js","sourceRoot":"","sources":["../src/image-blur.adapter.ts"],"names":[],"mappings":"AAaA,MAAM,OAAO,gBAAgB;IACE,IAAI;IAAjC,YAA6B,IAAkB;oBAAlB,IAAI;IAAiB,CAAC;IAEnD,KAAK,CAAC,IAAI,CAAC,MAAyB;QAClC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;QAE5B,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAClC,QAAQ,CAAC,UAAU,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC,CACtE,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,CAAC;QACzE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAEjF,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAErD,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
1
+ {"version":3,"file":"image-blur.adapter.js","sourceRoot":"","sources":["../src/image-blur.adapter.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,gBAAgB;IACE,IAAI;IAAjC,YAA6B,IAAkB;oBAAlB,IAAI;IAAiB,CAAC;IAEnD,KAAK,CAAC,IAAI,CAAC,MAAyB;QAClC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;QAE5B,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,CAAC;QACzE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAEjF,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAErD,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
@@ -1,12 +1,8 @@
1
1
  import type * as tools from "@bgord/tools";
2
- import type { FileRenamerPort } from "./file-renamer.port";
3
- import type { FileWriterPort } from "./file-writer.port";
2
+ import type { AtomicFileWriterPort } from "./atomic-file-writer.port";
4
3
  import type { ImageCompressorPort, ImageCompressorStrategy } from "./image-compressor.port";
5
- import type { NonceProviderPort } from "./nonce-provider.port";
6
4
  type Dependencies = {
7
- FileRenamer: FileRenamerPort;
8
- FileWriter: FileWriterPort;
9
- NonceProvider: NonceProviderPort;
5
+ AtomicFileWriter: AtomicFileWriterPort;
10
6
  };
11
7
  export declare class ImageCompressorAdapter implements ImageCompressorPort {
12
8
  private readonly deps;
@@ -1 +1 @@
1
- {"version":3,"file":"image-compressor.adapter.d.ts","sourceRoot":"","sources":["../src/image-compressor.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAC5F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,KAAK,YAAY,GAAG;IAClB,WAAW,EAAE,eAAe,CAAC;IAC7B,UAAU,EAAE,cAAc,CAAC;IAC3B,aAAa,EAAE,iBAAiB,CAAC;CAClC,CAAC;AAEF,qBAAa,sBAAuB,YAAW,mBAAmB;IAGpD,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAM;IAE7C,YAA6B,IAAI,EAAE,YAAY,EAAI;IAE7C,QAAQ,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAkBxG;CACF"}
1
+ {"version":3,"file":"image-compressor.adapter.d.ts","sourceRoot":"","sources":["../src/image-compressor.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAE5F,KAAK,YAAY,GAAG;IAClB,gBAAgB,EAAE,oBAAoB,CAAC;CACxC,CAAC;AAEF,qBAAa,sBAAuB,YAAW,mBAAmB;IAGpD,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAM;IAE7C,YAA6B,IAAI,EAAE,YAAY,EAAI;IAE7C,QAAQ,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAaxG;CACF"}
@@ -7,13 +7,10 @@ export class ImageCompressorAdapter {
7
7
  async compress(recipe) {
8
8
  const quality = recipe.quality ?? ImageCompressorAdapter.DEFAULT_QUALITY;
9
9
  const final = recipe.strategy === "output_path" ? recipe.output : recipe.input;
10
- const filename = final.getFilename();
11
- const temporary = final.withFilename(filename.withSuffix(`-compressed-${this.deps.NonceProvider.generate()}`));
12
10
  const extension = final.getFilename().getExtension();
13
11
  const format = (extension === "jpg" ? "jpeg" : extension);
14
12
  const compressed = await Bun.file(recipe.input.get()).image().rotate(0)[format]({ quality }).bytes();
15
- await this.deps.FileWriter.write(temporary.get(), compressed);
16
- await this.deps.FileRenamer.rename(temporary, final);
13
+ await this.deps.AtomicFileWriter.write(final, compressed);
17
14
  return final;
18
15
  }
19
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"image-compressor.adapter.js","sourceRoot":"","sources":["../src/image-compressor.adapter.ts"],"names":[],"mappings":"AAcA,MAAM,OAAO,sBAAsB;IAGJ,IAAI;IAFzB,MAAM,CAAU,eAAe,GAAG,EAAE,CAAC;IAE7C,YAA6B,IAAkB;oBAAlB,IAAI;IAAiB,CAAC;IAEnD,KAAK,CAAC,QAAQ,CAAC,MAA+B;QAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,sBAAsB,CAAC,eAAe,CAAC;QAEzE,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/E,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAClC,QAAQ,CAAC,UAAU,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC,CACzE,CAAC;QAEF,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAuB,CAAC;QAEhF,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QAErG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;QAC9D,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAErD,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
1
+ {"version":3,"file":"image-compressor.adapter.js","sourceRoot":"","sources":["../src/image-compressor.adapter.ts"],"names":[],"mappings":"AAUA,MAAM,OAAO,sBAAsB;IAGJ,IAAI;IAFzB,MAAM,CAAU,eAAe,GAAG,EAAE,CAAC;IAE7C,YAA6B,IAAkB;oBAAlB,IAAI;IAAiB,CAAC;IAEnD,KAAK,CAAC,QAAQ,CAAC,MAA+B;QAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,sBAAsB,CAAC,eAAe,CAAC;QAEzE,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAE/E,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAuB,CAAC;QAEhF,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QAErG,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAE1D,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}