@bgord/bun 1.12.7 → 1.12.9

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 (136) hide show
  1. package/dist/certificate-inspector-tls.adapter.d.ts.map +1 -1
  2. package/dist/certificate-inspector-tls.adapter.js +17 -14
  3. package/dist/certificate-inspector-tls.adapter.js.map +1 -1
  4. package/dist/csv-stringifier.adapter.d.ts +1 -4
  5. package/dist/csv-stringifier.adapter.d.ts.map +1 -1
  6. package/dist/csv-stringifier.adapter.js +4 -13
  7. package/dist/csv-stringifier.adapter.js.map +1 -1
  8. package/dist/dynamic-import.service.d.ts +10 -0
  9. package/dist/dynamic-import.service.d.ts.map +1 -0
  10. package/dist/dynamic-import.service.js +26 -0
  11. package/dist/dynamic-import.service.js.map +1 -0
  12. package/dist/file-draft-zip.service.d.ts +1 -4
  13. package/dist/file-draft-zip.service.d.ts.map +1 -1
  14. package/dist/file-draft-zip.service.js +4 -13
  15. package/dist/file-draft-zip.service.js.map +1 -1
  16. package/dist/i18n.service.d.ts.map +1 -1
  17. package/dist/i18n.service.js +2 -1
  18. package/dist/i18n.service.js.map +1 -1
  19. package/dist/image-alpha-sharp.adapter.d.ts +1 -7
  20. package/dist/image-alpha-sharp.adapter.d.ts.map +1 -1
  21. package/dist/image-alpha-sharp.adapter.js +4 -16
  22. package/dist/image-alpha-sharp.adapter.js.map +1 -1
  23. package/dist/image-blur-sharp.adapter.d.ts +1 -7
  24. package/dist/image-blur-sharp.adapter.d.ts.map +1 -1
  25. package/dist/image-blur-sharp.adapter.js +4 -16
  26. package/dist/image-blur-sharp.adapter.js.map +1 -1
  27. package/dist/image-compressor-sharp.adapter.d.ts +1 -7
  28. package/dist/image-compressor-sharp.adapter.d.ts.map +1 -1
  29. package/dist/image-compressor-sharp.adapter.js +4 -16
  30. package/dist/image-compressor-sharp.adapter.js.map +1 -1
  31. package/dist/image-exif-clear-sharp.adapter.d.ts +1 -7
  32. package/dist/image-exif-clear-sharp.adapter.d.ts.map +1 -1
  33. package/dist/image-exif-clear-sharp.adapter.js +4 -16
  34. package/dist/image-exif-clear-sharp.adapter.js.map +1 -1
  35. package/dist/image-formatter-sharp.adapter.d.ts +1 -7
  36. package/dist/image-formatter-sharp.adapter.d.ts.map +1 -1
  37. package/dist/image-formatter-sharp.adapter.js +4 -16
  38. package/dist/image-formatter-sharp.adapter.js.map +1 -1
  39. package/dist/image-info-sharp.adapter.d.ts +1 -7
  40. package/dist/image-info-sharp.adapter.d.ts.map +1 -1
  41. package/dist/image-info-sharp.adapter.js +4 -16
  42. package/dist/image-info-sharp.adapter.js.map +1 -1
  43. package/dist/image-processor-sharp.adapter.d.ts +1 -7
  44. package/dist/image-processor-sharp.adapter.d.ts.map +1 -1
  45. package/dist/image-processor-sharp.adapter.js +4 -16
  46. package/dist/image-processor-sharp.adapter.js.map +1 -1
  47. package/dist/image-resizer-sharp.adapter.d.ts +1 -7
  48. package/dist/image-resizer-sharp.adapter.d.ts.map +1 -1
  49. package/dist/image-resizer-sharp.adapter.js +4 -16
  50. package/dist/image-resizer-sharp.adapter.js.map +1 -1
  51. package/dist/index.d.ts +12 -0
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +12 -0
  54. package/dist/index.js.map +1 -1
  55. package/dist/mailer-resend.adapter.d.ts +1 -2
  56. package/dist/mailer-resend.adapter.d.ts.map +1 -1
  57. package/dist/mailer-resend.adapter.js +6 -17
  58. package/dist/mailer-resend.adapter.js.map +1 -1
  59. package/dist/mailer-smtp.adapter.d.ts +1 -2
  60. package/dist/mailer-smtp.adapter.d.ts.map +1 -1
  61. package/dist/mailer-smtp.adapter.js +3 -13
  62. package/dist/mailer-smtp.adapter.js.map +1 -1
  63. package/dist/message-bus-with-logger.adapter.d.ts +3 -3
  64. package/dist/message-bus-with-logger.adapter.d.ts.map +1 -1
  65. package/dist/message-bus-with-logger.adapter.js +3 -5
  66. package/dist/message-bus-with-logger.adapter.js.map +1 -1
  67. package/dist/sse-connection-hono.adapter.d.ts +19 -0
  68. package/dist/sse-connection-hono.adapter.d.ts.map +1 -0
  69. package/dist/sse-connection-hono.adapter.js +38 -0
  70. package/dist/sse-connection-hono.adapter.js.map +1 -0
  71. package/dist/sse-connection-hono.handler.d.ts +17 -0
  72. package/dist/sse-connection-hono.handler.d.ts.map +1 -0
  73. package/dist/sse-connection-hono.handler.js +19 -0
  74. package/dist/sse-connection-hono.handler.js.map +1 -0
  75. package/dist/sse-connection-noop.adapter.d.ts +7 -0
  76. package/dist/sse-connection-noop.adapter.d.ts.map +1 -0
  77. package/dist/sse-connection-noop.adapter.js +5 -0
  78. package/dist/sse-connection-noop.adapter.js.map +1 -0
  79. package/dist/sse-connection-with-logger.adapter.d.ts +16 -0
  80. package/dist/sse-connection-with-logger.adapter.d.ts.map +1 -0
  81. package/dist/sse-connection-with-logger.adapter.js +27 -0
  82. package/dist/sse-connection-with-logger.adapter.js.map +1 -0
  83. package/dist/sse-connection.port.d.ts +6 -0
  84. package/dist/sse-connection.port.d.ts.map +1 -0
  85. package/dist/sse-connection.port.js +2 -0
  86. package/dist/sse-connection.port.js.map +1 -0
  87. package/dist/sse-registry-collecting.adapter.d.ts +13 -0
  88. package/dist/sse-registry-collecting.adapter.d.ts.map +1 -0
  89. package/dist/sse-registry-collecting.adapter.js +9 -0
  90. package/dist/sse-registry-collecting.adapter.js.map +1 -0
  91. package/dist/sse-registry-noop.adapter.d.ts +9 -0
  92. package/dist/sse-registry-noop.adapter.d.ts.map +1 -0
  93. package/dist/sse-registry-noop.adapter.js +6 -0
  94. package/dist/sse-registry-noop.adapter.js.map +1 -0
  95. package/dist/sse-registry-with-logger.adapter.d.ts +18 -0
  96. package/dist/sse-registry-with-logger.adapter.d.ts.map +1 -0
  97. package/dist/sse-registry-with-logger.adapter.js +36 -0
  98. package/dist/sse-registry-with-logger.adapter.js.map +1 -0
  99. package/dist/sse-registry.adapter.d.ts +10 -0
  100. package/dist/sse-registry.adapter.d.ts.map +1 -0
  101. package/dist/sse-registry.adapter.js +17 -0
  102. package/dist/sse-registry.adapter.js.map +1 -0
  103. package/dist/sse-registry.port.d.ts +8 -0
  104. package/dist/sse-registry.port.d.ts.map +1 -0
  105. package/dist/sse-registry.port.js +2 -0
  106. package/dist/sse-registry.port.js.map +1 -0
  107. package/dist/tsconfig.tsbuildinfo +1 -1
  108. package/package.json +4 -4
  109. package/readme.md +11 -0
  110. package/src/certificate-inspector-tls.adapter.ts +17 -12
  111. package/src/csv-stringifier.adapter.ts +8 -13
  112. package/src/dynamic-import.service.ts +26 -0
  113. package/src/file-draft-zip.service.ts +8 -14
  114. package/src/i18n.service.ts +2 -1
  115. package/src/image-alpha-sharp.adapter.ts +10 -19
  116. package/src/image-blur-sharp.adapter.ts +10 -19
  117. package/src/image-compressor-sharp.adapter.ts +9 -19
  118. package/src/image-exif-clear-sharp.adapter.ts +10 -19
  119. package/src/image-formatter-sharp.adapter.ts +10 -19
  120. package/src/image-info-sharp.adapter.ts +10 -19
  121. package/src/image-processor-sharp.adapter.ts +9 -19
  122. package/src/image-resizer-sharp.adapter.ts +10 -19
  123. package/src/index.ts +12 -0
  124. package/src/mailer-resend.adapter.ts +9 -22
  125. package/src/mailer-smtp.adapter.ts +9 -15
  126. package/src/message-bus-with-logger.adapter.ts +4 -7
  127. package/src/sse-connection-hono.adapter.ts +49 -0
  128. package/src/sse-connection-hono.handler.ts +22 -0
  129. package/src/sse-connection-noop.adapter.ts +8 -0
  130. package/src/sse-connection-with-logger.adapter.ts +34 -0
  131. package/src/sse-connection.port.ts +7 -0
  132. package/src/sse-registry-collecting.adapter.ts +15 -0
  133. package/src/sse-registry-noop.adapter.ts +11 -0
  134. package/src/sse-registry-with-logger.adapter.ts +46 -0
  135. package/src/sse-registry.adapter.ts +23 -0
  136. package/src/sse-registry.port.ts +10 -0
@@ -1,14 +1,14 @@
1
1
  import type { LoggerPort } from "./logger.port";
2
2
  import type { Message, ToMessageMap } from "./message.types";
3
3
  import type { MessageBusPort } from "./message-bus.port";
4
- type Dependencies = {
4
+ type Dependencies<Messages extends Message> = {
5
+ inner: MessageBusPort<Messages>;
5
6
  Logger: LoggerPort;
6
7
  };
7
8
  export declare class MessageBusWithLoggerAdapter<Messages extends Message> implements MessageBusPort<Messages> {
8
- private readonly inner;
9
9
  private readonly deps;
10
10
  private readonly base;
11
- constructor(inner: MessageBusPort<Messages>, deps: Dependencies);
11
+ constructor(deps: Dependencies<Messages>);
12
12
  emit<M extends Messages>(message: M): Promise<void>;
13
13
  on<MessageName extends keyof ToMessageMap<Messages>>(name: MessageName, handler: (message: ToMessageMap<Messages>[MessageName]) => void | Promise<void>): void;
14
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"message-bus-with-logger.adapter.d.ts","sourceRoot":"","sources":["../src/message-bus-with-logger.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,UAAU,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,KAAK,YAAY,GAAG;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAE3C,qBAAa,2BAA2B,CAAC,QAAQ,SAAS,OAAO,CAAE,YAAW,cAAc,CAAC,QAAQ,CAAC;IAIlG,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAJvB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAyD;gBAG3D,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC,EAC/B,IAAI,EAAE,YAAY;IAG/B,IAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAWzD,EAAE,CAAC,WAAW,SAAS,MAAM,YAAY,CAAC,QAAQ,CAAC,EACjD,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAC9E,IAAI;CAGR;AAED,eAAO,MAAM,yBAAyB,oCAA8B,CAAC;AACrE,eAAO,MAAM,2BAA2B,oCAA8B,CAAC"}
1
+ {"version":3,"file":"message-bus-with-logger.adapter.d.ts","sourceRoot":"","sources":["../src/message-bus-with-logger.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,UAAU,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,KAAK,YAAY,CAAC,QAAQ,SAAS,OAAO,IAAI;IAAE,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAEtG,qBAAa,2BAA2B,CAAC,QAAQ,SAAS,OAAO,CAAE,YAAW,cAAc,CAAC,QAAQ,CAAC;IAGxF,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAyD;gBAEjD,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;IAEnD,IAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAWzD,EAAE,CAAC,WAAW,SAAS,MAAM,YAAY,CAAC,QAAQ,CAAC,EACjD,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAC9E,IAAI;CAGR;AAED,eAAO,MAAM,yBAAyB,oCAA8B,CAAC;AACrE,eAAO,MAAM,2BAA2B,oCAA8B,CAAC"}
@@ -1,10 +1,8 @@
1
1
  import { CorrelationStorage } from "./correlation-storage.service";
2
2
  export class MessageBusWithLoggerAdapter {
3
- inner;
4
3
  deps;
5
4
  base = { component: "infra", operation: "message_bus_emit" };
6
- constructor(inner, deps) {
7
- this.inner = inner;
5
+ constructor(deps) {
8
6
  this.deps = deps;
9
7
  }
10
8
  async emit(message) {
@@ -14,10 +12,10 @@ export class MessageBusWithLoggerAdapter {
14
12
  correlationId: CorrelationStorage.get(),
15
13
  ...this.base,
16
14
  });
17
- return this.inner.emit(message);
15
+ return this.deps.inner.emit(message);
18
16
  }
19
17
  on(name, handler) {
20
- this.inner.on(name, handler);
18
+ this.deps.inner.on(name, handler);
21
19
  }
22
20
  }
23
21
  export const EventBusWithLoggerAdapter = MessageBusWithLoggerAdapter;
@@ -1 +1 @@
1
- {"version":3,"file":"message-bus-with-logger.adapter.js","sourceRoot":"","sources":["../src/message-bus-with-logger.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAOnE,MAAM,OAAO,2BAA2B;IAInB;IACA;IAJF,IAAI,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAE9E,YACmB,KAA+B,EAC/B,IAAkB;QADlB,UAAK,GAAL,KAAK,CAA0B;QAC/B,SAAI,GAAJ,IAAI,CAAc;IAClC,CAAC;IAEJ,KAAK,CAAC,IAAI,CAAqB,OAAU;QACvC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACpB,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,UAAU;YAClC,QAAQ,EAAE,OAAkC;YAC5C,aAAa,EAAE,kBAAkB,CAAC,GAAG,EAAE;YACvC,GAAG,IAAI,CAAC,IAAI;SACb,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,EAAE,CACA,IAAiB,EACjB,OAA+E;QAE/E,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/B,CAAC;CACF;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG,2BAA2B,CAAC;AACrE,MAAM,CAAC,MAAM,2BAA2B,GAAG,2BAA2B,CAAC"}
1
+ {"version":3,"file":"message-bus-with-logger.adapter.js","sourceRoot":"","sources":["../src/message-bus-with-logger.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAOnE,MAAM,OAAO,2BAA2B;IAGT;IAFZ,IAAI,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAE9E,YAA6B,IAA4B;QAA5B,SAAI,GAAJ,IAAI,CAAwB;IAAG,CAAC;IAE7D,KAAK,CAAC,IAAI,CAAqB,OAAU;QACvC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACpB,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,UAAU;YAClC,QAAQ,EAAE,OAAkC;YAC5C,aAAa,EAAE,kBAAkB,CAAC,GAAG,EAAE;YACvC,GAAG,IAAI,CAAC,IAAI;SACb,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,EAAE,CACA,IAAiB,EACjB,OAA+E;QAE/E,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG,2BAA2B,CAAC;AACrE,MAAM,CAAC,MAAM,2BAA2B,GAAG,2BAA2B,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type * as tools from "@bgord/tools";
2
+ import type { Context } from "hono";
3
+ import type { Message } from "./message.types";
4
+ import type { SseConnectionPort } from "./sse-connection.port";
5
+ import type { SseRegistryPort } from "./sse-registry.port";
6
+ export type SseConnectionHonoAdapterConfig = {
7
+ keepalive: tools.Duration;
8
+ };
9
+ export declare class SseConnectionHonoAdapter<Messages extends Message> implements SseConnectionPort<Messages> {
10
+ private readonly registry;
11
+ private readonly userId;
12
+ private readonly config;
13
+ private stream;
14
+ constructor(registry: SseRegistryPort<Messages>, userId: string, config: SseConnectionHonoAdapterConfig);
15
+ attach(c: Context): Response;
16
+ send<M extends Messages>(message: M): Promise<void>;
17
+ close(callback: () => void): void;
18
+ }
19
+ //# sourceMappingURL=sse-connection-hono.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse-connection-hono.adapter.d.ts","sourceRoot":"","sources":["../src/sse-connection-hono.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,MAAM,8BAA8B,GAAG;IAAE,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAA;CAAE,CAAC;AAE3E,qBAAa,wBAAwB,CAAC,QAAQ,SAAS,OAAO,CAAE,YAAW,iBAAiB,CAAC,QAAQ,CAAC;IAIlG,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB,OAAO,CAAC,MAAM,CAAwE;gBAGnE,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC,EACnC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,8BAA8B;IAGzD,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG,QAAQ;IAiBtB,IAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAMzD,KAAK,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;CAOlC"}
@@ -0,0 +1,38 @@
1
+ import { streamSSE } from "hono/streaming";
2
+ export class SseConnectionHonoAdapter {
3
+ registry;
4
+ userId;
5
+ config;
6
+ stream = null;
7
+ constructor(registry, userId, config) {
8
+ this.registry = registry;
9
+ this.userId = userId;
10
+ this.config = config;
11
+ }
12
+ attach(c) {
13
+ return streamSSE(c, async (stream) => {
14
+ this.stream = stream;
15
+ this.registry.register(this.userId, this);
16
+ // Stryker disable all
17
+ stream.onAbort(() => this.registry.unregister(this.userId, this));
18
+ // Stryker restore all
19
+ while (!stream.closed) {
20
+ await stream.sleep(this.config.keepalive.ms);
21
+ await stream.writeSSE({ event: "ping", data: "" });
22
+ }
23
+ });
24
+ }
25
+ async send(message) {
26
+ // Stryker disable all
27
+ await this.stream?.writeSSE({ event: message.name, data: JSON.stringify(message) });
28
+ // Stryker restore all;
29
+ }
30
+ close(callback) {
31
+ this.registry.unregister(this.userId, this);
32
+ callback();
33
+ // Stryker disable all
34
+ this.stream?.close();
35
+ // Stryker restore all
36
+ }
37
+ }
38
+ //# sourceMappingURL=sse-connection-hono.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse-connection-hono.adapter.js","sourceRoot":"","sources":["../src/sse-connection-hono.adapter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAO3C,MAAM,OAAO,wBAAwB;IAIhB;IACA;IACA;IALX,MAAM,GAAmE,IAAI,CAAC;IAEtF,YACmB,QAAmC,EACnC,MAAc,EACd,MAAsC;QAFtC,aAAQ,GAAR,QAAQ,CAA2B;QACnC,WAAM,GAAN,MAAM,CAAQ;QACd,WAAM,GAAN,MAAM,CAAgC;IACtD,CAAC;IAEJ,MAAM,CAAC,CAAU;QACf,OAAO,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YAErB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAE1C,sBAAsB;YACtB,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;YAClE,sBAAsB;YAEtB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACtB,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBAC7C,MAAM,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACrD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAqB,OAAU;QACvC,sBAAsB;QACtB,MAAM,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACpF,uBAAuB;IACzB,CAAC;IAED,KAAK,CAAC,QAAoB;QACxB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5C,QAAQ,EAAE,CAAC;QACX,sBAAsB;QACtB,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;QACrB,sBAAsB;IACxB,CAAC;CACF"}
@@ -0,0 +1,17 @@
1
+ import type { HandlerHonoPort } from "./handler-hono.port";
2
+ import type { Message } from "./message.types";
3
+ import { type SseConnectionHonoAdapterConfig } from "./sse-connection-hono.adapter";
4
+ import type { SseRegistryPort } from "./sse-registry.port";
5
+ export declare class SseConnectionHonoHandler<Messages extends Message> implements HandlerHonoPort {
6
+ private readonly registry;
7
+ private readonly config;
8
+ constructor(registry: SseRegistryPort<Messages>, config: SseConnectionHonoAdapterConfig);
9
+ handle(): [import("hono/types").H<{
10
+ Variables: {
11
+ user: {
12
+ id: string;
13
+ };
14
+ };
15
+ }, string, {}, any>];
16
+ }
17
+ //# sourceMappingURL=sse-connection-hono.handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse-connection-hono.handler.d.ts","sourceRoot":"","sources":["../src/sse-connection-hono.handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAA4B,KAAK,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAC9G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAI3D,qBAAa,wBAAwB,CAAC,QAAQ,SAAS,OAAO,CAAE,YAAW,eAAe;IAEtF,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC,EACnC,MAAM,EAAE,8BAA8B;IAGzD,MAAM;mBACgD;YAAE,IAAI,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE;;CAM/E"}
@@ -0,0 +1,19 @@
1
+ import { createFactory } from "hono/factory";
2
+ import { SseConnectionHonoAdapter } from "./sse-connection-hono.adapter";
3
+ const factory = createFactory();
4
+ export class SseConnectionHonoHandler {
5
+ registry;
6
+ config;
7
+ constructor(registry, config) {
8
+ this.registry = registry;
9
+ this.config = config;
10
+ }
11
+ handle() {
12
+ return factory.createHandlers((c) => {
13
+ const userId = c.get("user").id;
14
+ const adapter = new SseConnectionHonoAdapter(this.registry, userId, this.config);
15
+ return adapter.attach(c);
16
+ });
17
+ }
18
+ }
19
+ //# sourceMappingURL=sse-connection-hono.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse-connection-hono.handler.js","sourceRoot":"","sources":["../src/sse-connection-hono.handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,OAAO,EAAE,wBAAwB,EAAuC,MAAM,+BAA+B,CAAC;AAG9G,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;AAEhC,MAAM,OAAO,wBAAwB;IAEhB;IACA;IAFnB,YACmB,QAAmC,EACnC,MAAsC;QADtC,aAAQ,GAAR,QAAQ,CAA2B;QACnC,WAAM,GAAN,MAAM,CAAgC;IACtD,CAAC;IAEJ,MAAM;QACJ,OAAO,OAAO,CAAC,cAAc,CAAmD,CAAC,CAAC,EAAE,EAAE;YACpF,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,IAAI,wBAAwB,CAAW,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3F,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,7 @@
1
+ import type { Message } from "./message.types";
2
+ import type { SseConnectionPort } from "./sse-connection.port";
3
+ export declare class SseConnectionNoopAdapter<Messages extends Message> implements SseConnectionPort<Messages> {
4
+ send<M extends Messages>(_message: M): Promise<void>;
5
+ close(_callback: () => void): void;
6
+ }
7
+ //# sourceMappingURL=sse-connection-noop.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse-connection-noop.adapter.d.ts","sourceRoot":"","sources":["../src/sse-connection-noop.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,qBAAa,wBAAwB,CAAC,QAAQ,SAAS,OAAO,CAAE,YAAW,iBAAiB,CAAC,QAAQ,CAAC;IAC9F,IAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAE1C,KAAK,CAAC,SAAS,EAAE,MAAM,IAAI,GAAG,IAAI;CACnC"}
@@ -0,0 +1,5 @@
1
+ export class SseConnectionNoopAdapter {
2
+ async send(_message) { }
3
+ close(_callback) { }
4
+ }
5
+ //# sourceMappingURL=sse-connection-noop.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse-connection-noop.adapter.js","sourceRoot":"","sources":["../src/sse-connection-noop.adapter.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,wBAAwB;IACnC,KAAK,CAAC,IAAI,CAAqB,QAAW,IAAG,CAAC;IAE9C,KAAK,CAAC,SAAqB,IAAS,CAAC;CACtC"}
@@ -0,0 +1,16 @@
1
+ import type { LoggerPort } from "./logger.port";
2
+ import type { Message } from "./message.types";
3
+ import type { SseConnectionPort } from "./sse-connection.port";
4
+ type Dependencies<Messages extends Message> = {
5
+ inner: SseConnectionPort<Messages>;
6
+ Logger: LoggerPort;
7
+ };
8
+ export declare class SseConnectionWithLoggerAdapter<Messages extends Message> implements SseConnectionPort<Messages> {
9
+ private readonly deps;
10
+ private readonly base;
11
+ constructor(deps: Dependencies<Messages>);
12
+ send<M extends Messages>(message: M): Promise<void>;
13
+ close(callback: () => void): void;
14
+ }
15
+ export {};
16
+ //# sourceMappingURL=sse-connection-with-logger.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse-connection-with-logger.adapter.d.ts","sourceRoot":"","sources":["../src/sse-connection-with-logger.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,KAAK,YAAY,CAAC,QAAQ,SAAS,OAAO,IAAI;IAAE,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAEzG,qBAAa,8BAA8B,CAAC,QAAQ,SAAS,OAAO,CAAE,YAAW,iBAAiB,CAAC,QAAQ,CAAC;IAG9F,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuD;gBAE/C,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;IAEnD,IAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,OAAO,EAAE,CAAC;IAWzC,KAAK,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;CAUlC"}
@@ -0,0 +1,27 @@
1
+ import { CorrelationStorage } from "./correlation-storage.service";
2
+ export class SseConnectionWithLoggerAdapter {
3
+ deps;
4
+ base = { component: "infra", operation: "sse_connection" };
5
+ constructor(deps) {
6
+ this.deps = deps;
7
+ }
8
+ async send(message) {
9
+ this.deps.Logger.debug({
10
+ message: `${message.name} sent`,
11
+ metadata: message,
12
+ correlationId: CorrelationStorage.get(),
13
+ ...this.base,
14
+ });
15
+ await this.deps.inner.send(message);
16
+ }
17
+ close(callback) {
18
+ this.deps.Logger.debug({
19
+ message: "SSE connection closed",
20
+ metadata: {},
21
+ correlationId: CorrelationStorage.get(),
22
+ ...this.base,
23
+ });
24
+ this.deps.inner.close(callback);
25
+ }
26
+ }
27
+ //# sourceMappingURL=sse-connection-with-logger.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse-connection-with-logger.adapter.js","sourceRoot":"","sources":["../src/sse-connection-with-logger.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAOnE,MAAM,OAAO,8BAA8B;IAGZ;IAFZ,IAAI,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAE5E,YAA6B,IAA4B;QAA5B,SAAI,GAAJ,IAAI,CAAwB;IAAG,CAAC;IAE7D,KAAK,CAAC,IAAI,CAAqB,OAAU;QACvC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACrB,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,OAAO;YAC/B,QAAQ,EAAE,OAAO;YACjB,aAAa,EAAE,kBAAkB,CAAC,GAAG,EAAE;YACvC,GAAG,IAAI,CAAC,IAAI;SACb,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,QAAoB;QACxB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACrB,OAAO,EAAE,uBAAuB;YAChC,QAAQ,EAAE,EAAE;YACZ,aAAa,EAAE,kBAAkB,CAAC,GAAG,EAAE;YACvC,GAAG,IAAI,CAAC,IAAI;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ import type { Message } from "./message.types";
2
+ export interface SseConnectionPort<Messages extends Message> {
3
+ send<M extends Messages>(message: M): Promise<void>;
4
+ close(callback: () => void): void;
5
+ }
6
+ //# sourceMappingURL=sse-connection.port.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse-connection.port.d.ts","sourceRoot":"","sources":["../src/sse-connection.port.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,WAAW,iBAAiB,CAAC,QAAQ,SAAS,OAAO;IACzD,IAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpD,KAAK,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;CACnC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sse-connection.port.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse-connection.port.js","sourceRoot":"","sources":["../src/sse-connection.port.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import type { Message } from "./message.types";
2
+ import type { SseConnectionPort } from "./sse-connection.port";
3
+ import type { SseRegistryPort } from "./sse-registry.port";
4
+ export declare class SseRegistryCollectingAdapter<Messages extends Message> implements SseRegistryPort<Messages> {
5
+ emitted: Array<{
6
+ userId: string;
7
+ message: Messages;
8
+ }>;
9
+ register(_userId: string, _connection: SseConnectionPort<Messages>): void;
10
+ unregister(_userId: string, _connection: SseConnectionPort<Messages>): void;
11
+ emit<M extends Messages>(userId: string, message: M): Promise<void>;
12
+ }
13
+ //# sourceMappingURL=sse-registry-collecting.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse-registry-collecting.adapter.d.ts","sourceRoot":"","sources":["../src/sse-registry-collecting.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,qBAAa,4BAA4B,CAAC,QAAQ,SAAS,OAAO,CAAE,YAAW,eAAe,CAAC,QAAQ,CAAC;IAC/F,OAAO,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,QAAQ,CAAA;KAAE,CAAC,CAAM;IAElE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,CAAC,QAAQ,CAAC,GAAG,IAAI;IAEzE,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,CAAC,QAAQ,CAAC,GAAG,IAAI;IAErE,IAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAG1E"}
@@ -0,0 +1,9 @@
1
+ export class SseRegistryCollectingAdapter {
2
+ emitted = [];
3
+ register(_userId, _connection) { }
4
+ unregister(_userId, _connection) { }
5
+ async emit(userId, message) {
6
+ this.emitted.push({ userId, message });
7
+ }
8
+ }
9
+ //# sourceMappingURL=sse-registry-collecting.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse-registry-collecting.adapter.js","sourceRoot":"","sources":["../src/sse-registry-collecting.adapter.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,4BAA4B;IAChC,OAAO,GAAiD,EAAE,CAAC;IAElE,QAAQ,CAAC,OAAe,EAAE,WAAwC,IAAS,CAAC;IAE5E,UAAU,CAAC,OAAe,EAAE,WAAwC,IAAS,CAAC;IAE9E,KAAK,CAAC,IAAI,CAAqB,MAAc,EAAE,OAAU;QACvD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IACzC,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ import type { Message } from "./message.types";
2
+ import type { SseConnectionPort } from "./sse-connection.port";
3
+ import type { SseRegistryPort } from "./sse-registry.port";
4
+ export declare class SseRegistryNoopAdapter<Messages extends Message> implements SseRegistryPort<Messages> {
5
+ register(_userId: string, _connection: SseConnectionPort<Messages>): void;
6
+ unregister(_userId: string, _connection: SseConnectionPort<Messages>): void;
7
+ emit<M extends Messages>(_userId: string, _message: M): Promise<void>;
8
+ }
9
+ //# sourceMappingURL=sse-registry-noop.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse-registry-noop.adapter.d.ts","sourceRoot":"","sources":["../src/sse-registry-noop.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,qBAAa,sBAAsB,CAAC,QAAQ,SAAS,OAAO,CAAE,YAAW,eAAe,CAAC,QAAQ,CAAC;IAChG,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,CAAC,QAAQ,CAAC,GAAG,IAAI;IAEzE,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,CAAC,QAAQ,CAAC,GAAG,IAAI;IAErE,IAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAC5E"}
@@ -0,0 +1,6 @@
1
+ export class SseRegistryNoopAdapter {
2
+ register(_userId, _connection) { }
3
+ unregister(_userId, _connection) { }
4
+ async emit(_userId, _message) { }
5
+ }
6
+ //# sourceMappingURL=sse-registry-noop.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse-registry-noop.adapter.js","sourceRoot":"","sources":["../src/sse-registry-noop.adapter.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,sBAAsB;IACjC,QAAQ,CAAC,OAAe,EAAE,WAAwC,IAAS,CAAC;IAE5E,UAAU,CAAC,OAAe,EAAE,WAAwC,IAAS,CAAC;IAE9E,KAAK,CAAC,IAAI,CAAqB,OAAe,EAAE,QAAW,IAAkB,CAAC;CAC/E"}
@@ -0,0 +1,18 @@
1
+ import type { LoggerPort } from "./logger.port";
2
+ import type { Message } from "./message.types";
3
+ import type { SseConnectionPort } from "./sse-connection.port";
4
+ import type { SseRegistryPort } from "./sse-registry.port";
5
+ type Dependencies<Messages extends Message> = {
6
+ inner: SseRegistryPort<Messages>;
7
+ Logger: LoggerPort;
8
+ };
9
+ export declare class SseRegistryWithLoggerAdapter<Messages extends Message> implements SseRegistryPort<Messages> {
10
+ private readonly deps;
11
+ private readonly base;
12
+ constructor(deps: Dependencies<Messages>);
13
+ register(userId: string, connection: SseConnectionPort<Messages>): void;
14
+ unregister(userId: string, connection: SseConnectionPort<Messages>): void;
15
+ emit<M extends Messages>(userId: string, message: M): Promise<void>;
16
+ }
17
+ export {};
18
+ //# sourceMappingURL=sse-registry-with-logger.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse-registry-with-logger.adapter.d.ts","sourceRoot":"","sources":["../src/sse-registry-with-logger.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,KAAK,YAAY,CAAC,QAAQ,SAAS,OAAO,IAAI;IAAE,KAAK,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAEvG,qBAAa,4BAA4B,CAAC,QAAQ,SAAS,OAAO,CAAE,YAAW,eAAe,CAAC,QAAQ,CAAC;IAG1F,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqD;gBAE7C,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;IAEzD,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,CAAC,QAAQ,CAAC,GAAG,IAAI;IAWvE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,CAAC,QAAQ,CAAC,GAAG,IAAI;IAWnE,IAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAU1E"}
@@ -0,0 +1,36 @@
1
+ import { CorrelationStorage } from "./correlation-storage.service";
2
+ export class SseRegistryWithLoggerAdapter {
3
+ deps;
4
+ base = { component: "infra", operation: "sse_registry" };
5
+ constructor(deps) {
6
+ this.deps = deps;
7
+ }
8
+ register(userId, connection) {
9
+ this.deps.Logger.info({
10
+ message: "SSE connection registered",
11
+ metadata: { userId },
12
+ correlationId: CorrelationStorage.get(),
13
+ ...this.base,
14
+ });
15
+ this.deps.inner.register(userId, connection);
16
+ }
17
+ unregister(userId, connection) {
18
+ this.deps.Logger.info({
19
+ message: "SSE connection unregistered",
20
+ metadata: { userId },
21
+ correlationId: CorrelationStorage.get(),
22
+ ...this.base,
23
+ });
24
+ this.deps.inner.unregister(userId, connection);
25
+ }
26
+ async emit(userId, message) {
27
+ this.deps.Logger.info({
28
+ message: `${message.name} emitted`,
29
+ metadata: { userId, message },
30
+ correlationId: CorrelationStorage.get(),
31
+ ...this.base,
32
+ });
33
+ return this.deps.inner.emit(userId, message);
34
+ }
35
+ }
36
+ //# sourceMappingURL=sse-registry-with-logger.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse-registry-with-logger.adapter.js","sourceRoot":"","sources":["../src/sse-registry-with-logger.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAQnE,MAAM,OAAO,4BAA4B;IAGV;IAFZ,IAAI,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;IAE1E,YAA6B,IAA4B;QAA5B,SAAI,GAAJ,IAAI,CAAwB;IAAG,CAAC;IAE7D,QAAQ,CAAC,MAAc,EAAE,UAAuC;QAC9D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACpB,OAAO,EAAE,2BAA2B;YACpC,QAAQ,EAAE,EAAE,MAAM,EAAE;YACpB,aAAa,EAAE,kBAAkB,CAAC,GAAG,EAAE;YACvC,GAAG,IAAI,CAAC,IAAI;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC/C,CAAC;IAED,UAAU,CAAC,MAAc,EAAE,UAAuC;QAChE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACpB,OAAO,EAAE,6BAA6B;YACtC,QAAQ,EAAE,EAAE,MAAM,EAAE;YACpB,aAAa,EAAE,kBAAkB,CAAC,GAAG,EAAE;YACvC,GAAG,IAAI,CAAC,IAAI;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,IAAI,CAAqB,MAAc,EAAE,OAAU;QACvD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACpB,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,UAAU;YAClC,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;YAC7B,aAAa,EAAE,kBAAkB,CAAC,GAAG,EAAE;YACvC,GAAG,IAAI,CAAC,IAAI;SACb,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;CACF"}
@@ -0,0 +1,10 @@
1
+ import type { Message } from "./message.types";
2
+ import type { SseConnectionPort } from "./sse-connection.port";
3
+ import type { SseRegistryPort } from "./sse-registry.port";
4
+ export declare class SseRegistryAdapter<Messages extends Message> implements SseRegistryPort<Messages> {
5
+ private readonly connections;
6
+ register(userId: string, connection: SseConnectionPort<Messages>): void;
7
+ unregister(userId: string, connection: SseConnectionPort<Messages>): void;
8
+ emit<M extends Messages>(userId: string, message: M): Promise<void>;
9
+ }
10
+ //# sourceMappingURL=sse-registry.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse-registry.adapter.d.ts","sourceRoot":"","sources":["../src/sse-registry.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,qBAAa,kBAAkB,CAAC,QAAQ,SAAS,OAAO,CAAE,YAAW,eAAe,CAAC,QAAQ,CAAC;IAC5F,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuD;IAEnF,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,CAAC,QAAQ,CAAC,GAAG,IAAI;IAMvE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,CAAC,QAAQ,CAAC,GAAG,IAAI;IAInE,IAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAK1E"}
@@ -0,0 +1,17 @@
1
+ export class SseRegistryAdapter {
2
+ connections = new Map();
3
+ register(userId, connection) {
4
+ if (!this.connections.has(userId))
5
+ this.connections.set(userId, new Set());
6
+ this.connections.get(userId).add(connection);
7
+ }
8
+ unregister(userId, connection) {
9
+ this.connections.get(userId)?.delete(connection);
10
+ }
11
+ async emit(userId, message) {
12
+ for (const connection of this.connections.get(userId) ?? []) {
13
+ await connection.send(message);
14
+ }
15
+ }
16
+ }
17
+ //# sourceMappingURL=sse-registry.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse-registry.adapter.js","sourceRoot":"","sources":["../src/sse-registry.adapter.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,kBAAkB;IACZ,WAAW,GAAG,IAAI,GAAG,EAA4C,CAAC;IAEnF,QAAQ,CAAC,MAAc,EAAE,UAAuC;QAC9D,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAE3E,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAChD,CAAC;IAED,UAAU,CAAC,MAAc,EAAE,UAAuC;QAChE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,IAAI,CAAqB,MAAc,EAAE,OAAU;QACvD,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YAC5D,MAAM,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ import type { Message } from "./message.types";
2
+ import type { SseConnectionPort } from "./sse-connection.port";
3
+ export interface SseRegistryPort<Messages extends Message> {
4
+ register(userId: string, connection: SseConnectionPort<Messages>): void;
5
+ unregister(userId: string, connection: SseConnectionPort<Messages>): void;
6
+ emit<M extends Messages>(userId: string, message: M): Promise<void>;
7
+ }
8
+ //# sourceMappingURL=sse-registry.port.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse-registry.port.d.ts","sourceRoot":"","sources":["../src/sse-registry.port.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,WAAW,eAAe,CAAC,QAAQ,SAAS,OAAO;IACvD,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IAExE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IAE1E,IAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sse-registry.port.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse-registry.port.js","sourceRoot":"","sources":["../src/sse-registry.port.ts"],"names":[],"mappings":""}