@quilla-be-kit/messaging 0.2.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 (88) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +620 -0
  3. package/dist/.tsbuildinfo +1 -0
  4. package/dist/event-bus/defaults.d.ts +5 -0
  5. package/dist/event-bus/defaults.d.ts.map +1 -0
  6. package/dist/event-bus/defaults.js +5 -0
  7. package/dist/event-bus/defaults.js.map +1 -0
  8. package/dist/event-bus/event-bus-consumer.interface.d.ts +8 -0
  9. package/dist/event-bus/event-bus-consumer.interface.d.ts.map +1 -0
  10. package/dist/event-bus/event-bus-consumer.interface.js +2 -0
  11. package/dist/event-bus/event-bus-consumer.interface.js.map +1 -0
  12. package/dist/event-bus/event-bus-entry.type.d.ts +19 -0
  13. package/dist/event-bus/event-bus-entry.type.d.ts.map +1 -0
  14. package/dist/event-bus/event-bus-entry.type.js +2 -0
  15. package/dist/event-bus/event-bus-entry.type.js.map +1 -0
  16. package/dist/event-bus/event-bus-publisher.interface.d.ts +14 -0
  17. package/dist/event-bus/event-bus-publisher.interface.d.ts.map +1 -0
  18. package/dist/event-bus/event-bus-publisher.interface.js +2 -0
  19. package/dist/event-bus/event-bus-publisher.interface.js.map +1 -0
  20. package/dist/event-bus/event-subscription.interface.d.ts +7 -0
  21. package/dist/event-bus/event-subscription.interface.d.ts.map +1 -0
  22. package/dist/event-bus/event-subscription.interface.js +2 -0
  23. package/dist/event-bus/event-subscription.interface.js.map +1 -0
  24. package/dist/event-bus/event.consumer.d.ts +66 -0
  25. package/dist/event-bus/event.consumer.d.ts.map +1 -0
  26. package/dist/event-bus/event.consumer.js +251 -0
  27. package/dist/event-bus/event.consumer.js.map +1 -0
  28. package/dist/event-bus/event.descriptor.d.ts +9 -0
  29. package/dist/event-bus/event.descriptor.d.ts.map +1 -0
  30. package/dist/event-bus/event.descriptor.js +7 -0
  31. package/dist/event-bus/event.descriptor.js.map +1 -0
  32. package/dist/event-bus/handler-entry.type.d.ts +8 -0
  33. package/dist/event-bus/handler-entry.type.d.ts.map +1 -0
  34. package/dist/event-bus/handler-entry.type.js +2 -0
  35. package/dist/event-bus/handler-entry.type.js.map +1 -0
  36. package/dist/event-bus/index.d.ts +10 -0
  37. package/dist/event-bus/index.d.ts.map +1 -0
  38. package/dist/event-bus/index.js +4 -0
  39. package/dist/event-bus/index.js.map +1 -0
  40. package/dist/event-bus/standard-schema.type.d.ts +33 -0
  41. package/dist/event-bus/standard-schema.type.d.ts.map +1 -0
  42. package/dist/event-bus/standard-schema.type.js +2 -0
  43. package/dist/event-bus/standard-schema.type.js.map +1 -0
  44. package/dist/index.d.ts +3 -0
  45. package/dist/index.d.ts.map +1 -0
  46. package/dist/index.js +3 -0
  47. package/dist/index.js.map +1 -0
  48. package/dist/local-outbox/index.d.ts +6 -0
  49. package/dist/local-outbox/index.d.ts.map +1 -0
  50. package/dist/local-outbox/index.js +2 -0
  51. package/dist/local-outbox/index.js.map +1 -0
  52. package/dist/local-outbox/local-outbox-entry.type.d.ts +28 -0
  53. package/dist/local-outbox/local-outbox-entry.type.d.ts.map +1 -0
  54. package/dist/local-outbox/local-outbox-entry.type.js +2 -0
  55. package/dist/local-outbox/local-outbox-entry.type.js.map +1 -0
  56. package/dist/local-outbox/local-outbox-reader.interface.d.ts +8 -0
  57. package/dist/local-outbox/local-outbox-reader.interface.d.ts.map +1 -0
  58. package/dist/local-outbox/local-outbox-reader.interface.js +2 -0
  59. package/dist/local-outbox/local-outbox-reader.interface.js.map +1 -0
  60. package/dist/local-outbox/local-outbox-writer.interface.d.ts +6 -0
  61. package/dist/local-outbox/local-outbox-writer.interface.d.ts.map +1 -0
  62. package/dist/local-outbox/local-outbox-writer.interface.js +2 -0
  63. package/dist/local-outbox/local-outbox-writer.interface.js.map +1 -0
  64. package/dist/local-outbox/outbox.forwarder.d.ts +34 -0
  65. package/dist/local-outbox/outbox.forwarder.d.ts.map +1 -0
  66. package/dist/local-outbox/outbox.forwarder.js +109 -0
  67. package/dist/local-outbox/outbox.forwarder.js.map +1 -0
  68. package/dist/local-outbox/transaction-handle.interface.d.ts +6 -0
  69. package/dist/local-outbox/transaction-handle.interface.d.ts.map +1 -0
  70. package/dist/local-outbox/transaction-handle.interface.js +2 -0
  71. package/dist/local-outbox/transaction-handle.interface.js.map +1 -0
  72. package/dist/postgres/get-postgres-schema.d.ts +6 -0
  73. package/dist/postgres/get-postgres-schema.d.ts.map +1 -0
  74. package/dist/postgres/get-postgres-schema.js +56 -0
  75. package/dist/postgres/get-postgres-schema.js.map +1 -0
  76. package/dist/postgres/index.d.ts +4 -0
  77. package/dist/postgres/index.d.ts.map +1 -0
  78. package/dist/postgres/index.js +4 -0
  79. package/dist/postgres/index.js.map +1 -0
  80. package/dist/postgres/pg-event-bus.d.ts +25 -0
  81. package/dist/postgres/pg-event-bus.d.ts.map +1 -0
  82. package/dist/postgres/pg-event-bus.js +115 -0
  83. package/dist/postgres/pg-event-bus.js.map +1 -0
  84. package/dist/postgres/pg-local-outbox.d.ts +26 -0
  85. package/dist/postgres/pg-local-outbox.d.ts.map +1 -0
  86. package/dist/postgres/pg-local-outbox.js +102 -0
  87. package/dist/postgres/pg-local-outbox.js.map +1 -0
  88. package/package.json +73 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.consumer.js","sourceRoot":"","sources":["../../src/event-bus/event.consumer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { StandardSchemaV1 } from './standard-schema.type.js';
2
+ export interface EventDescriptor<TPayload = unknown> {
3
+ readonly name: string;
4
+ readonly schema?: StandardSchemaV1<unknown, TPayload> | undefined;
5
+ readonly __payload?: TPayload;
6
+ }
7
+ export declare function defineEvent<TSchema extends StandardSchemaV1>(name: string, schema: TSchema): EventDescriptor<StandardSchemaV1.InferOutput<TSchema>>;
8
+ export declare function defineEvent<TPayload = unknown>(name: string): EventDescriptor<TPayload>;
9
+ //# sourceMappingURL=event.descriptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.descriptor.d.ts","sourceRoot":"","sources":["../../src/event-bus/event.descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,MAAM,WAAW,eAAe,CAAC,QAAQ,GAAG,OAAO;IACjD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,SAAS,CAAC;IAClE,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC;CAC/B;AAED,wBAAgB,WAAW,CAAC,OAAO,SAAS,gBAAgB,EAC1D,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,OAAO,GACd,eAAe,CAAC,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1D,wBAAgB,WAAW,CAAC,QAAQ,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ export function defineEvent(name, schema) {
2
+ const descriptor = schema !== undefined
3
+ ? { name, schema: schema }
4
+ : { name };
5
+ return Object.freeze(descriptor);
6
+ }
7
+ //# sourceMappingURL=event.descriptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.descriptor.js","sourceRoot":"","sources":["../../src/event-bus/event.descriptor.ts"],"names":[],"mappings":"AAaA,MAAM,UAAU,WAAW,CACzB,IAAY,EACZ,MAAyB;IAEzB,MAAM,UAAU,GACd,MAAM,KAAK,SAAS;QAClB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAA6C,EAAE;QACjE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACnC,CAAC"}
@@ -0,0 +1,8 @@
1
+ export type HandlerEntry<TPayload = unknown> = {
2
+ readonly payload: TPayload;
3
+ readonly eventType: string;
4
+ readonly eventVersion: number;
5
+ readonly aggregateId?: string | undefined;
6
+ readonly correlationId?: string | undefined;
7
+ };
8
+ //# sourceMappingURL=handler-entry.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler-entry.type.d.ts","sourceRoot":"","sources":["../../src/event-bus/handler-entry.type.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,CAAC,QAAQ,GAAG,OAAO,IAAI;IAC7C,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=handler-entry.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler-entry.type.js","sourceRoot":"","sources":["../../src/event-bus/handler-entry.type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ export type { EventBusEntry, EventBusStatus } from './event-bus-entry.type.js';
2
+ export type { EventBusPublisher } from './event-bus-publisher.interface.js';
3
+ export type { EventBusConsumer } from './event-bus-consumer.interface.js';
4
+ export { EventConsumer, SchemaValidationError, type EventConsumerOptions, type EventHandler, } from './event.consumer.js';
5
+ export { defineEvent, type EventDescriptor } from './event.descriptor.js';
6
+ export type { EventSubscription } from './event-subscription.interface.js';
7
+ export type { HandlerEntry } from './handler-entry.type.js';
8
+ export type { StandardSchemaV1 } from './standard-schema.type.js';
9
+ export { DEFAULT_RETRY_DELAYS_MS, DEFAULT_POLL_INTERVAL_MS, DEFAULT_BATCH_SIZE, } from './defaults.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/event-bus/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC/E,YAAY,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,YAAY,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,KAAK,YAAY,GAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC1E,YAAY,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,eAAe,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { EventConsumer, SchemaValidationError, } from './event.consumer.js';
2
+ export { defineEvent } from './event.descriptor.js';
3
+ export { DEFAULT_RETRY_DELAYS_MS, DEFAULT_POLL_INTERVAL_MS, DEFAULT_BATCH_SIZE, } from './defaults.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/event-bus/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,aAAa,EACb,qBAAqB,GAGtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAwB,MAAM,uBAAuB,CAAC;AAI1E,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,eAAe,CAAC"}
@@ -0,0 +1,33 @@
1
+ export interface StandardSchemaV1<Input = unknown, Output = Input> {
2
+ readonly '~standard': StandardSchemaV1.Props<Input, Output>;
3
+ }
4
+ export declare namespace StandardSchemaV1 {
5
+ interface Props<Input = unknown, Output = Input> {
6
+ readonly version: 1;
7
+ readonly vendor: string;
8
+ readonly validate: (value: unknown) => Result<Output> | Promise<Result<Output>>;
9
+ readonly types?: Types<Input, Output> | undefined;
10
+ }
11
+ type Result<Output> = SuccessResult<Output> | FailureResult;
12
+ interface SuccessResult<Output> {
13
+ readonly value: Output;
14
+ readonly issues?: undefined;
15
+ }
16
+ interface FailureResult {
17
+ readonly issues: ReadonlyArray<Issue>;
18
+ }
19
+ interface Issue {
20
+ readonly message: string;
21
+ readonly path?: ReadonlyArray<PropertyKey | PathSegment> | undefined;
22
+ }
23
+ interface PathSegment {
24
+ readonly key: PropertyKey;
25
+ }
26
+ interface Types<Input = unknown, Output = Input> {
27
+ readonly input: Input;
28
+ readonly output: Output;
29
+ }
30
+ type InferInput<Schema extends StandardSchemaV1> = NonNullable<Schema['~standard']['types']>['input'];
31
+ type InferOutput<Schema extends StandardSchemaV1> = NonNullable<Schema['~standard']['types']>['output'];
32
+ }
33
+ //# sourceMappingURL=standard-schema.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standard-schema.type.d.ts","sourceRoot":"","sources":["../../src/event-bus/standard-schema.type.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK;IAC/D,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;CAC7D;AAED,yBAAiB,gBAAgB,CAAC;IAChC,UAAiB,KAAK,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK;QACpD,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAChF,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;KACnD;IAED,KAAY,MAAM,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC;IAEnE,UAAiB,aAAa,CAAC,MAAM;QACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;KAC7B;IAED,UAAiB,aAAa;QAC5B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;KACvC;IAED,UAAiB,KAAK;QACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,SAAS,CAAC;KACtE;IAED,UAAiB,WAAW;QAC1B,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;KAC3B;IAED,UAAiB,KAAK,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK;QACpD,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;QACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB;IAED,KAAY,UAAU,CAAC,MAAM,SAAS,gBAAgB,IAAI,WAAW,CACnE,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAC7B,CAAC,OAAO,CAAC,CAAC;IAEX,KAAY,WAAW,CAAC,MAAM,SAAS,gBAAgB,IAAI,WAAW,CACpE,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAC7B,CAAC,QAAQ,CAAC,CAAC;CACb"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=standard-schema.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standard-schema.type.js","sourceRoot":"","sources":["../../src/event-bus/standard-schema.type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export * from './event-bus/index.js';
2
+ export * from './local-outbox/index.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export * from './event-bus/index.js';
2
+ export * from './local-outbox/index.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export type { LocalOutboxEntry, LocalOutboxInsertInput, LocalOutboxStatus, } from './local-outbox-entry.type.js';
2
+ export type { LocalOutboxReader } from './local-outbox-reader.interface.js';
3
+ export type { LocalOutboxWriter } from './local-outbox-writer.interface.js';
4
+ export type { TransactionHandle } from './transaction-handle.interface.js';
5
+ export { OutboxForwarder, type OutboxForwarderOptions } from './outbox.forwarder.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/local-outbox/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,YAAY,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,YAAY,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { OutboxForwarder } from './outbox.forwarder.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/local-outbox/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,eAAe,EAA+B,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,28 @@
1
+ export type LocalOutboxStatus = 'PENDING' | 'CLAIMED' | 'SENT' | 'FAILED';
2
+ export type LocalOutboxEntry = {
3
+ readonly id: string;
4
+ readonly eventType: string;
5
+ readonly eventVersion: number;
6
+ readonly eventKind: string;
7
+ readonly payload: unknown;
8
+ readonly aggregateId?: string | undefined;
9
+ readonly correlationId?: string | undefined;
10
+ readonly status: LocalOutboxStatus;
11
+ readonly claimedBy?: string | undefined;
12
+ readonly claimedAt?: Date | undefined;
13
+ readonly retryCount: number;
14
+ readonly lastError?: string | undefined;
15
+ readonly publishedAt?: Date | undefined;
16
+ readonly createdAt: Date;
17
+ };
18
+ export type LocalOutboxInsertInput = {
19
+ readonly id?: string;
20
+ readonly eventType: string;
21
+ readonly eventVersion?: number;
22
+ readonly eventKind: string;
23
+ readonly payload: unknown;
24
+ readonly aggregateId?: string | undefined;
25
+ readonly correlationId?: string | undefined;
26
+ readonly createdAt?: Date;
27
+ };
28
+ //# sourceMappingURL=local-outbox-entry.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-outbox-entry.type.d.ts","sourceRoot":"","sources":["../../src/local-outbox/local-outbox-entry.type.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE1E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;CAC3B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=local-outbox-entry.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-outbox-entry.type.js","sourceRoot":"","sources":["../../src/local-outbox/local-outbox-entry.type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import type { LocalOutboxEntry } from './local-outbox-entry.type.js';
2
+ export interface LocalOutboxReader {
3
+ claim(instanceId: string, batchSize: number): Promise<readonly LocalOutboxEntry[]>;
4
+ markSent(id: string, publishedAt: Date): Promise<void>;
5
+ markFailed(id: string, reason: string): Promise<void>;
6
+ resetStale(olderThan: Date): Promise<number>;
7
+ }
8
+ //# sourceMappingURL=local-outbox-reader.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-outbox-reader.interface.d.ts","sourceRoot":"","sources":["../../src/local-outbox/local-outbox-reader.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAErE,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAAC;IACnF,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,UAAU,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=local-outbox-reader.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-outbox-reader.interface.js","sourceRoot":"","sources":["../../src/local-outbox/local-outbox-reader.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import type { LocalOutboxInsertInput } from './local-outbox-entry.type.js';
2
+ import type { TransactionHandle } from './transaction-handle.interface.js';
3
+ export interface LocalOutboxWriter {
4
+ insert(entries: readonly LocalOutboxInsertInput[], trx: TransactionHandle): Promise<void>;
5
+ }
6
+ //# sourceMappingURL=local-outbox-writer.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-outbox-writer.interface.d.ts","sourceRoot":"","sources":["../../src/local-outbox/local-outbox-writer.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAE3E,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,OAAO,EAAE,SAAS,sBAAsB,EAAE,EAAE,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3F"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=local-outbox-writer.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-outbox-writer.interface.js","sourceRoot":"","sources":["../../src/local-outbox/local-outbox-writer.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,34 @@
1
+ import type { Logger } from '@quilla-be-kit/observability';
2
+ import type { Disposable } from '@quilla-be-kit/runtime';
3
+ import type { EventBusPublisher } from '../event-bus/event-bus-publisher.interface.js';
4
+ import type { LocalOutboxReader } from './local-outbox-reader.interface.js';
5
+ export type OutboxForwarderOptions = {
6
+ readonly reader: LocalOutboxReader;
7
+ readonly publisher: EventBusPublisher;
8
+ readonly sourceService: string;
9
+ readonly logger: Logger;
10
+ readonly pollIntervalMs?: number;
11
+ readonly batchSize?: number;
12
+ readonly staleClaimAfterMs?: number;
13
+ readonly instanceId?: string;
14
+ };
15
+ export declare class OutboxForwarder implements Disposable {
16
+ readonly name = "OutboxForwarder";
17
+ private readonly reader;
18
+ private readonly publisher;
19
+ private readonly sourceService;
20
+ private readonly logger;
21
+ private readonly pollIntervalMs;
22
+ private readonly batchSize;
23
+ private readonly staleClaimAfterMs;
24
+ private readonly instanceId;
25
+ private intervalHandle;
26
+ private inflightTick;
27
+ private stopping;
28
+ constructor(options: OutboxForwarderOptions);
29
+ start(): void;
30
+ dispose(): Promise<void>;
31
+ private tick;
32
+ private sweepStale;
33
+ }
34
+ //# sourceMappingURL=outbox.forwarder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outbox.forwarder.d.ts","sourceRoot":"","sources":["../../src/local-outbox/outbox.forwarder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAMzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AACvF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAE5E,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,qBAAa,eAAgB,YAAW,UAAU;IAChD,QAAQ,CAAC,IAAI,qBAAqB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAC9C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IAEpC,OAAO,CAAC,cAAc,CAA+C;IACrE,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,QAAQ,CAAS;gBAEb,OAAO,EAAE,sBAAsB;IAW3C,KAAK,IAAI,IAAI;IAmBP,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAYhB,IAAI;YAoCJ,UAAU;CAazB"}
@@ -0,0 +1,109 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { DEFAULT_BATCH_SIZE, DEFAULT_POLL_INTERVAL_MS, DEFAULT_STALE_CLAIM_MS, } from '../event-bus/defaults.js';
3
+ export class OutboxForwarder {
4
+ name = 'OutboxForwarder';
5
+ reader;
6
+ publisher;
7
+ sourceService;
8
+ logger;
9
+ pollIntervalMs;
10
+ batchSize;
11
+ staleClaimAfterMs;
12
+ instanceId;
13
+ intervalHandle = null;
14
+ inflightTick = null;
15
+ stopping = false;
16
+ constructor(options) {
17
+ this.reader = options.reader;
18
+ this.publisher = options.publisher;
19
+ this.sourceService = options.sourceService;
20
+ this.logger = options.logger;
21
+ this.pollIntervalMs = options.pollIntervalMs ?? DEFAULT_POLL_INTERVAL_MS;
22
+ this.batchSize = options.batchSize ?? DEFAULT_BATCH_SIZE;
23
+ this.staleClaimAfterMs = options.staleClaimAfterMs ?? DEFAULT_STALE_CLAIM_MS;
24
+ this.instanceId = options.instanceId ?? randomUUID();
25
+ }
26
+ start() {
27
+ if (this.intervalHandle)
28
+ return;
29
+ this.stopping = false;
30
+ this.logger.info('starting', {
31
+ meta: {
32
+ pollIntervalMs: this.pollIntervalMs,
33
+ batchSize: this.batchSize,
34
+ sourceService: this.sourceService,
35
+ instanceId: this.instanceId,
36
+ },
37
+ });
38
+ this.intervalHandle = setInterval(() => {
39
+ if (this.stopping || this.inflightTick)
40
+ return;
41
+ this.inflightTick = this.tick().finally(() => {
42
+ this.inflightTick = null;
43
+ });
44
+ }, this.pollIntervalMs);
45
+ }
46
+ async dispose() {
47
+ this.stopping = true;
48
+ if (this.intervalHandle) {
49
+ clearInterval(this.intervalHandle);
50
+ this.intervalHandle = null;
51
+ }
52
+ if (this.inflightTick) {
53
+ await this.inflightTick.catch(() => { });
54
+ }
55
+ this.logger.info('stopped');
56
+ }
57
+ async tick() {
58
+ try {
59
+ await this.sweepStale();
60
+ const entries = await this.reader.claim(this.instanceId, this.batchSize);
61
+ if (entries.length === 0)
62
+ return;
63
+ this.logger.debug(`forwarding ${entries.length} event(s)`);
64
+ for (const entry of entries) {
65
+ if (this.stopping)
66
+ break;
67
+ try {
68
+ await this.publisher.publish({
69
+ id: entry.id,
70
+ eventType: entry.eventType,
71
+ eventVersion: entry.eventVersion,
72
+ eventKind: entry.eventKind,
73
+ payload: entry.payload,
74
+ sourceService: this.sourceService,
75
+ ...(entry.aggregateId !== undefined ? { aggregateId: entry.aggregateId } : {}),
76
+ ...(entry.correlationId !== undefined ? { correlationId: entry.correlationId } : {}),
77
+ createdAt: entry.createdAt,
78
+ });
79
+ await this.reader.markSent(entry.id, new Date());
80
+ }
81
+ catch (err) {
82
+ const reason = err instanceof Error ? err.message : String(err);
83
+ this.logger.error(`failed to forward event ${entry.id}`, err, {
84
+ meta: { eventId: entry.id, eventType: entry.eventType },
85
+ });
86
+ await this.reader.markFailed(entry.id, reason);
87
+ }
88
+ }
89
+ }
90
+ catch (err) {
91
+ this.logger.error('tick error', err);
92
+ }
93
+ }
94
+ async sweepStale() {
95
+ try {
96
+ const cutoff = new Date(Date.now() - this.staleClaimAfterMs);
97
+ const reset = await this.reader.resetStale(cutoff);
98
+ if (reset > 0) {
99
+ this.logger.warn(`reset ${reset} stale CLAIMED row(s)`, {
100
+ meta: { cutoff: cutoff.toISOString() },
101
+ });
102
+ }
103
+ }
104
+ catch (err) {
105
+ this.logger.error('stale sweep failed', err);
106
+ }
107
+ }
108
+ }
109
+ //# sourceMappingURL=outbox.forwarder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outbox.forwarder.js","sourceRoot":"","sources":["../../src/local-outbox/outbox.forwarder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export interface TransactionHandle {
2
+ query<TRow = unknown>(sql: string, params?: readonly unknown[]): Promise<{
3
+ rows: readonly TRow[];
4
+ }>;
5
+ }
6
+ //# sourceMappingURL=transaction-handle.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction-handle.interface.d.ts","sourceRoot":"","sources":["../../src/local-outbox/transaction-handle.interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,IAAI,GAAG,OAAO,EAClB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,SAAS,OAAO,EAAE,GAC1B,OAAO,CAAC;QAAE,IAAI,EAAE,SAAS,IAAI,EAAE,CAAA;KAAE,CAAC,CAAC;CACvC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=transaction-handle.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction-handle.interface.js","sourceRoot":"","sources":["../../src/local-outbox/transaction-handle.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ export type PostgresSchemaOptions = {
2
+ readonly outboxTable?: string;
3
+ readonly eventsTable?: string;
4
+ };
5
+ export declare function getPostgresSchema(options?: PostgresSchemaOptions): string;
6
+ //# sourceMappingURL=get-postgres-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-postgres-schema.d.ts","sourceRoot":"","sources":["../../src/postgres/get-postgres-schema.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAwDzE"}
@@ -0,0 +1,56 @@
1
+ export function getPostgresSchema(options) {
2
+ const outboxTable = options?.outboxTable ?? 'outbox_events';
3
+ const eventsTable = options?.eventsTable ?? 'events';
4
+ const statements = [
5
+ `CREATE TABLE IF NOT EXISTS ${outboxTable} (
6
+ id UUID PRIMARY KEY,
7
+ event_type TEXT NOT NULL,
8
+ event_version INTEGER NOT NULL,
9
+ event_kind TEXT NOT NULL,
10
+ payload JSONB NOT NULL,
11
+ aggregate_id TEXT,
12
+ correlation_id TEXT,
13
+ status TEXT NOT NULL,
14
+ claimed_by TEXT,
15
+ claimed_at TIMESTAMPTZ,
16
+ retry_count INTEGER NOT NULL,
17
+ last_error TEXT,
18
+ published_at TIMESTAMPTZ,
19
+ created_at TIMESTAMPTZ NOT NULL
20
+ );`,
21
+ `CREATE INDEX IF NOT EXISTS ${outboxTable}_status_created_at_idx
22
+ ON ${outboxTable} (status, created_at)
23
+ WHERE status = 'PENDING';`,
24
+ `CREATE INDEX IF NOT EXISTS ${outboxTable}_claimed_at_idx
25
+ ON ${outboxTable} (claimed_at)
26
+ WHERE status = 'CLAIMED';`,
27
+ `CREATE TABLE IF NOT EXISTS ${eventsTable} (
28
+ id UUID PRIMARY KEY,
29
+ event_type TEXT NOT NULL,
30
+ event_version INTEGER NOT NULL,
31
+ event_kind TEXT NOT NULL,
32
+ payload JSONB NOT NULL,
33
+ source_service TEXT NOT NULL,
34
+ aggregate_id TEXT,
35
+ correlation_id TEXT,
36
+ status TEXT NOT NULL,
37
+ claimed_by TEXT,
38
+ claimed_at TIMESTAMPTZ,
39
+ retry_count INTEGER NOT NULL,
40
+ last_error TEXT,
41
+ created_at TIMESTAMPTZ NOT NULL,
42
+ published_at TIMESTAMPTZ NOT NULL
43
+ );`,
44
+ `CREATE INDEX IF NOT EXISTS ${eventsTable}_status_created_at_idx
45
+ ON ${eventsTable} (status, created_at)
46
+ WHERE status = 'PENDING';`,
47
+ `CREATE INDEX IF NOT EXISTS ${eventsTable}_aggregate_id_status_idx
48
+ ON ${eventsTable} (aggregate_id, status)
49
+ WHERE aggregate_id IS NOT NULL AND status = 'CLAIMED';`,
50
+ `CREATE INDEX IF NOT EXISTS ${eventsTable}_claimed_at_idx
51
+ ON ${eventsTable} (claimed_at)
52
+ WHERE status = 'CLAIMED';`,
53
+ ];
54
+ return `${statements.join('\n\n')}\n`;
55
+ }
56
+ //# sourceMappingURL=get-postgres-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-postgres-schema.js","sourceRoot":"","sources":["../../src/postgres/get-postgres-schema.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,iBAAiB,CAAC,OAA+B;IAC/D,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,eAAe,CAAC;IAC5D,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,QAAQ,CAAC;IAErD,MAAM,UAAU,GAAa;QAC3B,8BAA8B,WAAW;;;;;;;;;;;;;;;GAe1C;QACC,8BAA8B,WAAW;OACtC,WAAW;4BACU;QACxB,8BAA8B,WAAW;OACtC,WAAW;4BACU;QACxB,8BAA8B,WAAW;;;;;;;;;;;;;;;;GAgB1C;QACC,8BAA8B,WAAW;OACtC,WAAW;4BACU;QACxB,8BAA8B,WAAW;OACtC,WAAW;yDACuC;QACrD,8BAA8B,WAAW;OACtC,WAAW;4BACU;KACzB,CAAC;IAEF,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACxC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { PgLocalOutbox, type PgLocalOutboxOptions } from './pg-local-outbox.js';
2
+ export { PgEventBus, type PgEventBusOptions } from './pg-event-bus.js';
3
+ export { getPostgresSchema, type PostgresSchemaOptions } from './get-postgres-schema.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/postgres/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { PgLocalOutbox } from './pg-local-outbox.js';
2
+ export { PgEventBus } from './pg-event-bus.js';
3
+ export { getPostgresSchema } from './get-postgres-schema.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/postgres/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA6B,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,UAAU,EAA0B,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAA8B,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { Pool } from 'pg';
2
+ import type { EventBusConsumer } from '../event-bus/event-bus-consumer.interface.js';
3
+ import type { EventBusEntry } from '../event-bus/event-bus-entry.type.js';
4
+ import type { EventBusPublisher } from '../event-bus/event-bus-publisher.interface.js';
5
+ export type PgEventBusOptions = {
6
+ readonly pool: Pool;
7
+ readonly eventsTableName?: string;
8
+ readonly maxRetries?: number;
9
+ };
10
+ export declare class PgEventBus implements EventBusPublisher, EventBusConsumer {
11
+ private readonly pool;
12
+ private readonly eventsTable;
13
+ private readonly maxRetries;
14
+ constructor(options: PgEventBusOptions);
15
+ publish(event: Parameters<EventBusPublisher['publish']>[0]): Promise<void>;
16
+ claim(instanceId: string, batchSize: number): Promise<readonly EventBusEntry[]>;
17
+ markDone(id: string): Promise<void>;
18
+ markFailed(id: string, reason: string): Promise<void>;
19
+ resetStale(olderThan: Date): Promise<number>;
20
+ cleanupFailed(olderThan: Date, options?: {
21
+ readonly limit?: number;
22
+ }): Promise<number>;
23
+ private rowToEntry;
24
+ }
25
+ //# sourceMappingURL=pg-event-bus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pg-event-bus.d.ts","sourceRoot":"","sources":["../../src/postgres/pg-event-bus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AACrF,OAAO,KAAK,EAAE,aAAa,EAAkB,MAAM,sCAAsC,CAAC;AAC1F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAuBvF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AACF,qBAAa,UAAW,YAAW,iBAAiB,EAAE,gBAAgB;IACpE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAO;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,OAAO,EAAE,iBAAiB;IAMhC,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B1E,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,aAAa,EAAE,CAAC;IA2B/E,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInC,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAarD,UAAU,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IAU5C,aAAa,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAsB5F,OAAO,CAAC,UAAU;CAmBnB"}