@cratis/chronicle 6.46.0 → 6.48.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 (139) hide show
  1. package/ChronicleClient.ts +3 -0
  2. package/EventStore.ts +2 -1
  3. package/connection/ConnectionLifecycle.ts +22 -0
  4. package/dist/ChronicleClient.d.ts.map +1 -1
  5. package/dist/ChronicleClient.js +3 -0
  6. package/dist/ChronicleClient.js.map +1 -1
  7. package/dist/EventStore.d.ts.map +1 -1
  8. package/dist/EventStore.js +2 -1
  9. package/dist/EventStore.js.map +1 -1
  10. package/dist/connection/ConnectionLifecycle.d.ts +8 -0
  11. package/dist/connection/ConnectionLifecycle.d.ts.map +1 -1
  12. package/dist/connection/ConnectionLifecycle.js +21 -0
  13. package/dist/connection/ConnectionLifecycle.js.map +1 -1
  14. package/dist/events/eventSourceTypeDecorator.d.ts +18 -0
  15. package/dist/events/eventSourceTypeDecorator.d.ts.map +1 -0
  16. package/dist/events/eventSourceTypeDecorator.js +25 -0
  17. package/dist/events/eventSourceTypeDecorator.js.map +1 -0
  18. package/dist/events/eventStreamTypeDecorator.d.ts +20 -0
  19. package/dist/events/eventStreamTypeDecorator.d.ts.map +1 -0
  20. package/dist/events/eventStreamTypeDecorator.js +29 -0
  21. package/dist/events/eventStreamTypeDecorator.js.map +1 -0
  22. package/dist/events/index.d.ts +2 -0
  23. package/dist/events/index.d.ts.map +1 -1
  24. package/dist/events/index.js +2 -0
  25. package/dist/events/index.js.map +1 -1
  26. package/dist/reactors/ReactorSideEffects.d.ts +6 -3
  27. package/dist/reactors/ReactorSideEffects.d.ts.map +1 -1
  28. package/dist/reactors/ReactorSideEffects.js +12 -6
  29. package/dist/reactors/ReactorSideEffects.js.map +1 -1
  30. package/dist/reactors/Reactors.d.ts.map +1 -1
  31. package/dist/reactors/Reactors.js +4 -2
  32. package/dist/reactors/Reactors.js.map +1 -1
  33. package/dist/readModels/IReadModelWatcher.d.ts +30 -0
  34. package/dist/readModels/IReadModelWatcher.d.ts.map +1 -0
  35. package/dist/readModels/IReadModelWatcher.js +4 -0
  36. package/dist/readModels/IReadModelWatcher.js.map +1 -0
  37. package/dist/readModels/IReadModels.d.ts +16 -2
  38. package/dist/readModels/IReadModels.d.ts.map +1 -1
  39. package/dist/readModels/ReadModelChangeContext.d.ts +9 -0
  40. package/dist/readModels/ReadModelChangeContext.d.ts.map +1 -0
  41. package/dist/readModels/ReadModelChangeContext.js +4 -0
  42. package/dist/readModels/ReadModelChangeContext.js.map +1 -0
  43. package/dist/readModels/ReadModelChangeType.d.ts +7 -0
  44. package/dist/readModels/ReadModelChangeType.d.ts.map +1 -0
  45. package/dist/readModels/ReadModelChangeType.js +10 -0
  46. package/dist/readModels/ReadModelChangeType.js.map +1 -0
  47. package/dist/readModels/ReadModelChangeset.d.ts +6 -0
  48. package/dist/readModels/ReadModelChangeset.d.ts.map +1 -1
  49. package/dist/readModels/ReadModelWatchOptions.d.ts +19 -0
  50. package/dist/readModels/ReadModelWatchOptions.d.ts.map +1 -0
  51. package/dist/readModels/ReadModelWatchOptions.js +4 -0
  52. package/dist/readModels/ReadModelWatchOptions.js.map +1 -0
  53. package/dist/readModels/ReadModelWatcher.d.ts +52 -0
  54. package/dist/readModels/ReadModelWatcher.d.ts.map +1 -0
  55. package/dist/readModels/ReadModelWatcher.js +276 -0
  56. package/dist/readModels/ReadModelWatcher.js.map +1 -0
  57. package/dist/readModels/ReadModels.d.ts +11 -1
  58. package/dist/readModels/ReadModels.d.ts.map +1 -1
  59. package/dist/readModels/ReadModels.js +47 -11
  60. package/dist/readModels/ReadModels.js.map +1 -1
  61. package/dist/readModels/for_ReadModelWatcher/given/a_kernel_stream.d.ts +15 -0
  62. package/dist/readModels/for_ReadModelWatcher/given/a_kernel_stream.d.ts.map +1 -0
  63. package/dist/readModels/for_ReadModelWatcher/given/a_kernel_stream.js +45 -0
  64. package/dist/readModels/for_ReadModelWatcher/given/a_kernel_stream.js.map +1 -0
  65. package/dist/readModels/for_ReadModelWatcher/given/a_watched_read_model.d.ts +21 -0
  66. package/dist/readModels/for_ReadModelWatcher/given/a_watched_read_model.d.ts.map +1 -0
  67. package/dist/readModels/for_ReadModelWatcher/given/a_watched_read_model.js +35 -0
  68. package/dist/readModels/for_ReadModelWatcher/given/a_watched_read_model.js.map +1 -0
  69. package/dist/readModels/index.d.ts +4 -0
  70. package/dist/readModels/index.d.ts.map +1 -1
  71. package/dist/readModels/index.js +1 -0
  72. package/dist/readModels/index.js.map +1 -1
  73. package/dist/reducers/Reducers.d.ts.map +1 -1
  74. package/dist/reducers/Reducers.js +4 -2
  75. package/dist/reducers/Reducers.js.map +1 -1
  76. package/dist/testing/ReactorScenario.d.ts.map +1 -1
  77. package/dist/testing/ReactorScenario.js +11 -1
  78. package/dist/testing/ReactorScenario.js.map +1 -1
  79. package/dist/testing/ReducerReadModelProcessor.d.ts.map +1 -1
  80. package/dist/testing/ReducerReadModelProcessor.js +13 -0
  81. package/dist/testing/ReducerReadModelProcessor.js.map +1 -1
  82. package/dist/testing/UnsupportedReducerOperation.d.ts +7 -0
  83. package/dist/testing/UnsupportedReducerOperation.d.ts.map +1 -0
  84. package/dist/testing/UnsupportedReducerOperation.js +14 -0
  85. package/dist/testing/UnsupportedReducerOperation.js.map +1 -0
  86. package/dist/testing/index.d.ts +1 -0
  87. package/dist/testing/index.d.ts.map +1 -1
  88. package/dist/testing/index.js +1 -0
  89. package/dist/testing/index.js.map +1 -1
  90. package/dist/tsconfig.tsbuildinfo +1 -1
  91. package/events/eventSourceTypeDecorator.ts +28 -0
  92. package/events/eventStreamTypeDecorator.ts +33 -0
  93. package/events/for_observerFilters/when_registering/filter_registration_behaviors.fixture.ts +55 -0
  94. package/events/for_observerFilters/when_registering/with_legacy_decorators.legacy.spec.ts +30 -0
  95. package/events/for_observerFilters/when_registering/with_standard_decorators.standard.spec.ts +30 -0
  96. package/events/index.ts +2 -0
  97. package/for_ChronicleClient/when_reconnecting/with_waiting_read_model_watchers.spec.ts +117 -0
  98. package/jobs/for_Jobs/against_a_kernel/when_managing_a_replay_job.integration.spec.ts +24 -4
  99. package/package.json +2 -2
  100. package/reactors/ReactorSideEffects.ts +16 -6
  101. package/reactors/Reactors.ts +4 -2
  102. package/reactors/for_ReactorSideEffects/when_dispatching/with_reactor_source_and_stream_types.spec.ts +75 -0
  103. package/reactors/for_Reactors/against_a_kernel/when_filtering_source_and_stream_types.integration.spec.ts +147 -0
  104. package/reactors/for_Reactors/against_a_kernel/when_replaying_reactors_with_once_only_handlers.integration.spec.ts +27 -8
  105. package/readModels/IReadModelWatcher.ts +35 -0
  106. package/readModels/IReadModels.ts +17 -2
  107. package/readModels/ReadModelChangeContext.ts +11 -0
  108. package/readModels/ReadModelChangeType.ts +9 -0
  109. package/readModels/ReadModelChangeset.ts +9 -0
  110. package/readModels/ReadModelWatchOptions.ts +23 -0
  111. package/readModels/ReadModelWatcher.ts +271 -0
  112. package/readModels/ReadModels.ts +60 -11
  113. package/readModels/for_ReadModelWatcher/against_a_kernel/when_watching_changes.integration.spec.ts +104 -0
  114. package/readModels/for_ReadModelWatcher/given/a_kernel_stream.ts +50 -0
  115. package/readModels/for_ReadModelWatcher/given/a_watched_read_model.ts +37 -0
  116. package/readModels/for_ReadModelWatcher/watchCompatibility.standard.spec.ts +29 -0
  117. package/readModels/for_ReadModelWatcher/when_a_stream_cannot_recover.spec.ts +86 -0
  118. package/readModels/for_ReadModelWatcher/when_applying_backpressure.spec.ts +80 -0
  119. package/readModels/for_ReadModelWatcher/when_failing_with_buffered_changes.spec.ts +39 -0
  120. package/readModels/for_ReadModelWatcher/when_not_opting_into_resume.spec.ts +62 -0
  121. package/readModels/for_ReadModelWatcher/when_notifying_resubscription.spec.ts +128 -0
  122. package/readModels/for_ReadModelWatcher/when_opting_into_overflow.spec.ts +39 -0
  123. package/readModels/for_ReadModelWatcher/when_receiving_changes.spec.ts +69 -0
  124. package/readModels/for_ReadModelWatcher/when_reconnecting.spec.ts +99 -0
  125. package/readModels/for_ReadModelWatcher/when_reconnecting_during_conversion.spec.ts +84 -0
  126. package/readModels/for_ReadModelWatcher/when_recovering_a_stream.spec.ts +106 -0
  127. package/readModels/for_ReadModelWatcher/when_stopping.spec.ts +85 -0
  128. package/readModels/for_ReadModelWatcher/when_subscribing.spec.ts +62 -0
  129. package/readModels/for_ReadModels/when_watching.spec.ts +85 -0
  130. package/readModels/index.ts +4 -0
  131. package/reducers/Reducers.ts +4 -2
  132. package/testing/ReactorScenario.spec.ts +18 -1
  133. package/testing/ReactorScenario.ts +11 -1
  134. package/testing/ReducerReadModelProcessor.ts +13 -0
  135. package/testing/UnsupportedReducerOperation.ts +10 -0
  136. package/testing/for_ReactorScenario/when_recording_side_effects/with_declared_stream_type.spec.ts +50 -0
  137. package/testing/for_observerScenarios/when_selecting_filters/with_reducer_tag_filters.spec.ts +50 -0
  138. package/testing/for_observerScenarios/when_selecting_filters/with_source_and_stream_types.spec.ts +48 -0
  139. package/testing/index.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Reactors.d.ts","sourceRoot":"","sources":["../../reactors/Reactors.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAK1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAK3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAGhE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAM3C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AAuEzF;;;GAGG;AACH,qBAAa,QAAS,YAAW,SAAS;IAuBlC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAE3B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IA9BxC,iFAAiF;IACjF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAQ;IAEjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAa;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkC;IAC5D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiD;IACzE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsC;IACpE,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;IAE1B;;;;;;;;OAQG;IACH,YACqB,gBAAgB,EAAE,wBAAwB,EAC1C,WAAW,EAAE,mBAAmB,EAChC,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EACnC,SAAS,EAAE,mBAAmB,EACb,SAAS,EAAE,SAAS,EACpB,cAAc,CAAC,EAAE,oBAAoB,YAAA,EACrC,WAAW,CAAC,EAAE,WAAW,YAAA,EACzB,kBAAkB,CAAC,EAAE,wBAAwB,YAAA,EASjE;IAED,yEAAyE;IACzE,OAAO,IAAI,IAAI,CAKd;IAED,kBAAkB;IACZ,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAS9B;IAED,kBAAkB;IACZ,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAoB9B;IAED,OAAO,CAAC,gBAAgB;YAkBV,cAAc;IAgB5B;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;YAmBX,cAAc;IA+M5B,OAAO,CAAC,aAAa;CAMxB"}
1
+ {"version":3,"file":"Reactors.d.ts","sourceRoot":"","sources":["../../reactors/Reactors.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAK1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAO3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAGhE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAM3C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AAuEzF;;;GAGG;AACH,qBAAa,QAAS,YAAW,SAAS;IAuBlC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAE3B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IA9BxC,iFAAiF;IACjF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAQ;IAEjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAa;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkC;IAC5D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiD;IACzE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsC;IACpE,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;IAE1B;;;;;;;;OAQG;IACH,YACqB,gBAAgB,EAAE,wBAAwB,EAC1C,WAAW,EAAE,mBAAmB,EAChC,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EACnC,SAAS,EAAE,mBAAmB,EACb,SAAS,EAAE,SAAS,EACpB,cAAc,CAAC,EAAE,oBAAoB,YAAA,EACrC,WAAW,CAAC,EAAE,WAAW,YAAA,EACzB,kBAAkB,CAAC,EAAE,wBAAwB,YAAA,EASjE;IAED,yEAAyE;IACzE,OAAO,IAAI,IAAI,CAKd;IAED,kBAAkB;IACZ,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAS9B;IAED,kBAAkB;IACZ,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAoB9B;IAED,OAAO,CAAC,gBAAgB;YAkBV,cAAc;IAgB5B;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;YAmBX,cAAc;IA+M5B,OAAO,CAAC,aAAa;CAMxB"}
@@ -7,6 +7,8 @@ import { ObservationState, ReplayState } from '@cratis/chronicle.contracts';
7
7
  import { toClientEventContext } from '../events/toClientEventContext.js';
8
8
  import { getTagsFor } from '../events/tagDecorator.js';
9
9
  import { getFilterTagsFor } from '../events/filterEventsByTagDecorator.js';
10
+ import { getEventSourceTypeFor } from '../events/eventSourceTypeDecorator.js';
11
+ import { getEventStreamTypeFor } from '../events/eventStreamTypeDecorator.js';
10
12
  import { EventSequenceId } from '../eventSequences/EventSequenceId.js';
11
13
  import { createHandlerInstanceValidator } from '../observation/createHandlerInstanceValidator.js';
12
14
  import { notifyReplayLifecycle } from '../observation/notifyReplayLifecycle.js';
@@ -235,8 +237,8 @@ export class Reactors {
235
237
  Tags: getTagsFor(reactorType).map(t => t.value),
236
238
  Filters: {
237
239
  FilterTags: getFilterTagsFor(reactorType).map(t => t.value),
238
- EventSourceType: '',
239
- EventStreamType: 'All'
240
+ EventSourceType: getEventSourceTypeFor(reactorType),
241
+ EventStreamType: getEventStreamTypeFor(reactorType)
240
242
  }
241
243
  }
242
244
  },
@@ -1 +1 @@
1
- {"version":3,"file":"Reactors.js","sourceRoot":"","sources":["../../reactors/Reactors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Reactors.js","sourceRoot":"","sources":["../../reactors/Reactors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { ReadModelChangeset } from './ReadModelChangeset.js';
2
+ /**
3
+ * A single-consumer stream of read model changes, started when createWatcher() is called.
4
+ * Terminal stream or connection failures retain buffered changes: iteration drains them
5
+ * before rejecting with the original error. Overflow and disposal discard buffered changes.
6
+ */
7
+ export interface IReadModelWatcher<TReadModel> extends AsyncIterable<ReadModelChangeset<TReadModel>> {
8
+ /**
9
+ * Resolves on the kernel's subscription acknowledgment, without requiring iteration.
10
+ * When resumption is opted into, read this property again after disconnect for the next subscription.
11
+ * An already pending promise carries across lifecycle reconnects; a previously resolved
12
+ * promise cannot be revoked. Rejects if the watcher stops before acknowledgment.
13
+ */
14
+ readonly subscribed: Promise<void>;
15
+ /**
16
+ * Registers a callback after each subscription acknowledgment following the first.
17
+ * Having at least one registered callback opts into resumption on transport failures and
18
+ * completion. Without callbacks or the resume option, transport errors reject iteration.
19
+ * Refresh your query here: changes during an outage are not replayed. Register before
20
+ * awaiting subscribed; callbacks are not replayed for late registrations.
21
+ * Callbacks run in registration order and are awaited before reading more changes on
22
+ * the resumed stream. Do not wait for iteration inside a callback. A thrown error or
23
+ * rejected promise fails iteration. Reconnects retain already received changes.
24
+ * @returns An idempotent function that unregisters the callback. Disposal also unregisters it.
25
+ */
26
+ onResubscribed(callback: () => void | Promise<void>): () => void;
27
+ /** Stops the stream and completes pending iteration. Safe to call more than once. */
28
+ dispose(): void;
29
+ }
30
+ //# sourceMappingURL=IReadModelWatcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IReadModelWatcher.d.ts","sourceRoot":"","sources":["../../readModels/IReadModelWatcher.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE;;;;GAIG;AACH,MAAM,WAAW,iBAAiB,CAAC,UAAU,CAAE,SAAQ,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAChG;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnC;;;;;;;;;;OAUG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC;IAEjE,qFAAqF;IACrF,OAAO,IAAI,IAAI,CAAC;CACnB"}
@@ -0,0 +1,4 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+ export {};
4
+ //# sourceMappingURL=IReadModelWatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IReadModelWatcher.js","sourceRoot":"","sources":["../../readModels/IReadModelWatcher.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG"}
@@ -1,6 +1,8 @@
1
1
  import type { Constructor } from '@cratis/fundamentals';
2
2
  import type { IMaterializedReadModels } from './IMaterializedReadModels.js';
3
+ import type { IReadModelWatcher } from './IReadModelWatcher.js';
3
4
  import type { ReadModelChangeset } from './ReadModelChangeset.js';
5
+ import type { ReadModelWatchOptions } from './ReadModelWatchOptions.js';
4
6
  import type { ReadModelSnapshot } from './ReadModelSnapshot.js';
5
7
  /**
6
8
  * Defines a system that works with read models in the event store.
@@ -54,11 +56,23 @@ export interface IReadModels {
54
56
  */
55
57
  getSnapshotsById<TReadModel>(readModelType: Constructor<TReadModel>, key: string): Promise<ReadModelSnapshot<TReadModel>[]>;
56
58
  /**
57
- * Watches changes for a specific read model type.
59
+ * Watches changes for a specific read model type, opening the stream on the first next().
60
+ * Pulls changes only as the consumer requests them, without a client-side buffer or overflow limit.
58
61
  * @param readModelType - The read model type to observe.
59
- * @returns An async iterable of read model changes.
62
+ * @returns An async iterable of read model changes. Transport failures reject iteration.
63
+ * @remarks Keeps its original return type so existing watch implementations and mocks can
64
+ * return plain async iterables. Use createWatcher for readiness and lifetime controls.
60
65
  */
61
66
  watch<TReadModel>(readModelType: Constructor<TReadModel>): AsyncIterable<ReadModelChangeset<TReadModel>>;
67
+ /**
68
+ * Starts a single-consumer watcher immediately, without requiring iteration for readiness.
69
+ * @param readModelType - The read model type to observe.
70
+ * @param options - Cancellation, opt-in resumption, and an optional overflow-failure limit.
71
+ * @returns A watcher with subscription readiness, resubscription callbacks, and explicit disposal.
72
+ * Transport failures reject iteration unless resume is true or an onResubscribed callback
73
+ * is registered. Resumed watches retain received changes but do not replay outage gaps.
74
+ */
75
+ createWatcher<TReadModel>(readModelType: Constructor<TReadModel>, options?: ReadModelWatchOptions): IReadModelWatcher<TReadModel>;
62
76
  /**
63
77
  * Dehydrates a read model session.
64
78
  * @param sessionId - The session identifier to dehydrate.
@@ -1 +1 @@
1
- {"version":3,"file":"IReadModels.d.ts","sourceRoot":"","sources":["../../readModels/IReadModels.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,uBAAuB,CAAC;IAE/C;;;OAGG;IACH,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1B;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5E;;;;;;;;OAQG;IACH,eAAe,CAAC,UAAU,EAAE,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAE1H;;;;;;OAMG;IACH,gBAAgB,CAAC,UAAU,EAAE,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAElI;;;;;OAKG;IACH,YAAY,CAAC,UAAU,EAAE,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAE7G;;;;;OAKG;IACH,gBAAgB,CAAC,UAAU,EAAE,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAE5H;;;;OAIG;IACH,KAAK,CAAC,UAAU,EAAE,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC;IAEzG;;;;;;OAMG;IACH,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpH;;;;;OAKG;IACH,OAAO,CAAC,UAAU,EAAE,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAEvG;;;;;OAKG;IACH,WAAW,CAAC,UAAU,EAAE,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAEhH;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,UAAU,EAAE,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACtJ"}
1
+ {"version":3,"file":"IReadModels.d.ts","sourceRoot":"","sources":["../../readModels/IReadModels.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,uBAAuB,CAAC;IAE/C;;;OAGG;IACH,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1B;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5E;;;;;;;;OAQG;IACH,eAAe,CAAC,UAAU,EAAE,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAE1H;;;;;;OAMG;IACH,gBAAgB,CAAC,UAAU,EAAE,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAElI;;;;;OAKG;IACH,YAAY,CAAC,UAAU,EAAE,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAE7G;;;;;OAKG;IACH,gBAAgB,CAAC,UAAU,EAAE,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAE5H;;;;;;;OAOG;IACH,KAAK,CAAC,UAAU,EAAE,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC;IAEzG;;;;;;;OAOG;IACH,aAAa,CAAC,UAAU,EAAE,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAElI;;;;;;OAMG;IACH,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpH;;;;;OAKG;IACH,OAAO,CAAC,UAAU,EAAE,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAEvG;;;;;OAKG;IACH,WAAW,CAAC,UAAU,EAAE,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAEhH;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,UAAU,EAAE,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACtJ"}
@@ -0,0 +1,9 @@
1
+ /** The triggering event metadata available on the kernel's read model change stream. */
2
+ export interface ReadModelChangeContext {
3
+ readonly eventStore: string;
4
+ readonly namespace: string;
5
+ readonly sequenceNumber: bigint;
6
+ readonly correlationId?: string;
7
+ readonly occurred?: Date;
8
+ }
9
+ //# sourceMappingURL=ReadModelChangeContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReadModelChangeContext.d.ts","sourceRoot":"","sources":["../../readModels/ReadModelChangeContext.ts"],"names":[],"mappings":"AAGA,wFAAwF;AACxF,MAAM,WAAW,sBAAsB;IACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;CAC5B"}
@@ -0,0 +1,4 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+ export {};
4
+ //# sourceMappingURL=ReadModelChangeContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReadModelChangeContext.js","sourceRoot":"","sources":["../../readModels/ReadModelChangeContext.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG"}
@@ -0,0 +1,7 @@
1
+ /** The kind of change to a read model instance. */
2
+ export declare enum ReadModelChangeType {
3
+ Added = 0,
4
+ Modified = 1,
5
+ Removed = 2
6
+ }
7
+ //# sourceMappingURL=ReadModelChangeType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReadModelChangeType.d.ts","sourceRoot":"","sources":["../../readModels/ReadModelChangeType.ts"],"names":[],"mappings":"AAGA,mDAAmD;AACnD,oBAAY,mBAAmB;IAC3B,KAAK,IAAI;IACT,QAAQ,IAAI;IACZ,OAAO,IAAI;CACd"}
@@ -0,0 +1,10 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+ /** The kind of change to a read model instance. */
4
+ export var ReadModelChangeType;
5
+ (function (ReadModelChangeType) {
6
+ ReadModelChangeType[ReadModelChangeType["Added"] = 0] = "Added";
7
+ ReadModelChangeType[ReadModelChangeType["Modified"] = 1] = "Modified";
8
+ ReadModelChangeType[ReadModelChangeType["Removed"] = 2] = "Removed";
9
+ })(ReadModelChangeType || (ReadModelChangeType = {}));
10
+ //# sourceMappingURL=ReadModelChangeType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReadModelChangeType.js","sourceRoot":"","sources":["../../readModels/ReadModelChangeType.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,mDAAmD;AACnD,MAAM,CAAN,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC3B,+DAAS,CAAA;IACT,qEAAY,CAAA;IACZ,mEAAW,CAAA;AACf,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,QAI9B"}
@@ -1,3 +1,5 @@
1
+ import type { ReadModelChangeType } from './ReadModelChangeType.js';
2
+ import type { ReadModelChangeContext } from './ReadModelChangeContext.js';
1
3
  /**
2
4
  * Represents a change observed for a read model.
3
5
  */
@@ -10,5 +12,9 @@ export interface ReadModelChangeset<TReadModel> {
10
12
  readonly readModel: TReadModel;
11
13
  /** Whether the read model was removed. */
12
14
  readonly removed: boolean;
15
+ /** The kind of change. Optional for compatibility with user-created changesets. */
16
+ readonly changeType?: ReadModelChangeType;
17
+ /** Triggering event metadata supplied by the kernel, not a complete event context. */
18
+ readonly changeContext?: ReadModelChangeContext;
13
19
  }
14
20
  //# sourceMappingURL=ReadModelChangeset.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReadModelChangeset.d.ts","sourceRoot":"","sources":["../../readModels/ReadModelChangeset.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,UAAU;IAC1C,2CAA2C;IAC3C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,0BAA0B;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAErB,oCAAoC;IACpC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAE/B,0CAA0C;IAC1C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC7B"}
1
+ {"version":3,"file":"ReadModelChangeset.d.ts","sourceRoot":"","sources":["../../readModels/ReadModelChangeset.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,UAAU;IAC1C,2CAA2C;IAC3C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,0BAA0B;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAErB,oCAAoC;IACpC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAE/B,0CAA0C;IAC1C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,mFAAmF;IACnF,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;IAE1C,sFAAsF;IACtF,QAAQ,CAAC,aAAa,CAAC,EAAE,sBAAsB,CAAC;CACnD"}
@@ -0,0 +1,19 @@
1
+ /** Options for creating a read model watcher. */
2
+ export interface ReadModelWatchOptions {
3
+ /** Aborting completes iteration and rejects pending readiness. */
4
+ readonly signal?: AbortSignal;
5
+ /**
6
+ * Resume after transport failure or completion. Defaults to false; registering an
7
+ * onResubscribed callback also opts in while at least one callback is registered.
8
+ * Changes missed during an outage are not replayed; refresh your query after resubscription.
9
+ */
10
+ readonly resume?: boolean;
11
+ /**
12
+ * Opt into failing on overflow instead of applying backpressure. Must be a positive safe integer.
13
+ * By default, pause reads at 1,024 buffered changes after subscription acknowledgment.
14
+ * Before each acknowledgment, keep reading to reach the marker; exceeding 1,024 changes
15
+ * (or this explicit limit) fails iteration and pending readiness rather than dropping changes.
16
+ */
17
+ readonly maxBuffered?: number;
18
+ }
19
+ //# sourceMappingURL=ReadModelWatchOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReadModelWatchOptions.d.ts","sourceRoot":"","sources":["../../readModels/ReadModelWatchOptions.ts"],"names":[],"mappings":"AAGA,iDAAiD;AACjD,MAAM,WAAW,qBAAqB;IAClC,kEAAkE;IAClE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAE9B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAE1B;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CACjC"}
@@ -0,0 +1,4 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+ export {};
4
+ //# sourceMappingURL=ReadModelWatchOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReadModelWatchOptions.js","sourceRoot":"","sources":["../../readModels/ReadModelWatchOptions.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG"}
@@ -0,0 +1,52 @@
1
+ import type { ReadModelChangeset as ContractChangeset } from '@cratis/chronicle.contracts';
2
+ import type { ConnectionLifecycle } from '../connection/ConnectionLifecycle.js';
3
+ import type { IReadModelWatcher } from './IReadModelWatcher.js';
4
+ import type { ReadModelChangeset } from './ReadModelChangeset.js';
5
+ import type { ReadModelWatchOptions } from './ReadModelWatchOptions.js';
6
+ /** @internal Owns one cancellable stream per connection generation. */
7
+ export declare class ReadModelWatcher<TReadModel> implements IReadModelWatcher<TReadModel>, AsyncIterableIterator<ReadModelChangeset<TReadModel>> {
8
+ private readonly _open;
9
+ private readonly _convert;
10
+ private readonly _lifecycle?;
11
+ private static readonly _restartDelayMs;
12
+ private readonly _bufferLimit;
13
+ private readonly _failOnOverflow;
14
+ private readonly _resume;
15
+ private _resumeReading?;
16
+ private _subscribed;
17
+ private _resolveSubscribed;
18
+ private _rejectSubscribed;
19
+ private _acknowledged;
20
+ private _hasSubscribed;
21
+ private _delivery;
22
+ private readonly _onResubscribed;
23
+ private _controller?;
24
+ private _stopped;
25
+ private _failed;
26
+ private _failure?;
27
+ private readonly _buffered;
28
+ private _restartTimer?;
29
+ private readonly _waiting;
30
+ private readonly _unsubscribe;
31
+ constructor(_open: (signal: AbortSignal) => AsyncIterable<ContractChangeset>, _convert: (change: ContractChangeset) => Promise<ReadModelChangeset<TReadModel>>, signal: AbortSignal, _lifecycle?: ConnectionLifecycle | undefined, options?: ReadModelWatchOptions);
32
+ get subscribed(): Promise<void>;
33
+ onResubscribed(callback: () => void | Promise<void>): () => void;
34
+ [Symbol.asyncIterator](): AsyncIterableIterator<ReadModelChangeset<TReadModel>>;
35
+ next(): Promise<IteratorResult<ReadModelChangeset<TReadModel>>>;
36
+ return(): Promise<IteratorResult<ReadModelChangeset<TReadModel>>>;
37
+ dispose(): void;
38
+ private resetReadiness;
39
+ private start;
40
+ private disconnect;
41
+ private shouldResume;
42
+ private restart;
43
+ private clearRestartTimer;
44
+ private cancelStream;
45
+ private resumeReading;
46
+ private waitForCapacity;
47
+ private read;
48
+ private deliver;
49
+ private notifyResubscribed;
50
+ private finish;
51
+ }
52
+ //# sourceMappingURL=ReadModelWatcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReadModelWatcher.d.ts","sourceRoot":"","sources":["../../readModels/ReadModelWatcher.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,IAAI,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAC3F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAExE,uEAAuE;AACvE,qBAAa,gBAAgB,CAAC,UAAU,CAAE,YAAW,iBAAiB,CAAC,UAAU,CAAC,EAAE,qBAAqB,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IA2BjI,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAEzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IA7BhC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAQ;IAC/C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAU;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,cAAc,CAAC,CAAa;IAEpC,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,kBAAkB,CAAc;IACxC,OAAO,CAAC,iBAAiB,CAA4B;IACrD,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAyC;IACzE,OAAO,CAAC,WAAW,CAAC,CAAkB;IACtC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,CAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwC;IAClE,OAAO,CAAC,aAAa,CAAC,CAAgC;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAGhB;IACT,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;IAEnD,YACqB,KAAK,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,aAAa,CAAC,iBAAiB,CAAC,EAChE,QAAQ,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,EACjG,MAAM,EAAE,WAAW,EACF,UAAU,CAAC,EAAE,mBAAmB,YAAA,EACjD,OAAO,GAAE,qBAA0B,EA2BtC;IAED,IAAI,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAE9B;IAED,cAAc,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAI/D;IAED,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,qBAAqB,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAE9E;IAED,IAAI,IAAI,OAAO,CAAC,cAAc,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,CAS9D;IAEK,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,CAGtE;IAED,OAAO,IAAI,IAAI,CAGd;IAED,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,KAAK;IAQb,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,OAAO;IAYf,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,eAAe;YAST,IAAI;YAyCJ,OAAO;YA0BP,kBAAkB;IAYhC,OAAO,CAAC,MAAM;CAiBjB"}
@@ -0,0 +1,276 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+ /** @internal Owns one cancellable stream per connection generation. */
4
+ export class ReadModelWatcher {
5
+ _open;
6
+ _convert;
7
+ _lifecycle;
8
+ static _restartDelayMs = 1000;
9
+ _bufferLimit;
10
+ _failOnOverflow;
11
+ _resume;
12
+ _resumeReading;
13
+ _subscribed;
14
+ _resolveSubscribed;
15
+ _rejectSubscribed;
16
+ _acknowledged = false;
17
+ _hasSubscribed = false;
18
+ _delivery = Promise.resolve();
19
+ _onResubscribed = new Set();
20
+ _controller;
21
+ _stopped = false;
22
+ _failed = false;
23
+ _failure;
24
+ _buffered = [];
25
+ _restartTimer;
26
+ _waiting = [];
27
+ _unsubscribe = [];
28
+ constructor(_open, _convert, signal, _lifecycle, options = {}) {
29
+ this._open = _open;
30
+ this._convert = _convert;
31
+ this._lifecycle = _lifecycle;
32
+ if (options.maxBuffered !== undefined && (!Number.isSafeInteger(options.maxBuffered) || options.maxBuffered < 1)) {
33
+ throw new RangeError('maxBuffered must be a positive safe integer.');
34
+ }
35
+ this._bufferLimit = options.maxBuffered ?? 1024;
36
+ this._failOnOverflow = options.maxBuffered !== undefined;
37
+ this._resume = options.resume === true;
38
+ this.resetReadiness();
39
+ const abort = () => this.finish(signal.reason, false);
40
+ signal.addEventListener('abort', abort, { once: true });
41
+ this._unsubscribe.push(() => signal.removeEventListener('abort', abort));
42
+ if (_lifecycle) {
43
+ // Without opt-in, let the watch stream propagate its original transport error.
44
+ this._unsubscribe.push(_lifecycle.onDisconnected(async () => {
45
+ if (this.shouldResume())
46
+ this.disconnect();
47
+ }));
48
+ this._unsubscribe.push(_lifecycle.onConnected(async () => this.start()));
49
+ this._unsubscribe.push(_lifecycle.onFailed(async (error) => this.finish(error, true, true)));
50
+ }
51
+ if (signal.aborted) {
52
+ abort();
53
+ }
54
+ else if (_lifecycle?.failure) {
55
+ this.finish(_lifecycle.failure, true, true);
56
+ }
57
+ else if (!_lifecycle || _lifecycle.isConnected) {
58
+ this.start();
59
+ }
60
+ }
61
+ get subscribed() {
62
+ return this._subscribed;
63
+ }
64
+ onResubscribed(callback) {
65
+ if (this._stopped)
66
+ return () => { };
67
+ this._onResubscribed.add(callback);
68
+ return () => { this._onResubscribed.delete(callback); };
69
+ }
70
+ [Symbol.asyncIterator]() {
71
+ return this;
72
+ }
73
+ next() {
74
+ const value = this._buffered.shift();
75
+ if (value) {
76
+ this.resumeReading();
77
+ return Promise.resolve({ done: false, value });
78
+ }
79
+ if (this._failed)
80
+ return Promise.reject(this._failure);
81
+ if (this._stopped)
82
+ return Promise.resolve({ done: true, value: undefined });
83
+ return new Promise((resolve, reject) => this._waiting.push({ resolve, reject }));
84
+ }
85
+ async return() {
86
+ this.dispose();
87
+ return { done: true, value: undefined };
88
+ }
89
+ dispose() {
90
+ this._buffered.length = 0;
91
+ this.finish(new DOMException('Read model watcher disposed.', 'AbortError'), false);
92
+ }
93
+ resetReadiness() {
94
+ this._acknowledged = false;
95
+ this._subscribed = new Promise((resolve, reject) => {
96
+ this._resolveSubscribed = resolve;
97
+ this._rejectSubscribed = reject;
98
+ });
99
+ // Legacy consumers only iterate. They still receive stream failures from next();
100
+ // not observing the optional readiness promise must not cause an unhandled rejection.
101
+ this._subscribed.catch(() => { });
102
+ }
103
+ start() {
104
+ if (this._stopped || this._controller)
105
+ return;
106
+ this.clearRestartTimer();
107
+ const controller = new AbortController();
108
+ this._controller = controller;
109
+ void this.read(controller);
110
+ }
111
+ disconnect() {
112
+ if (this._stopped)
113
+ return;
114
+ this.clearRestartTimer();
115
+ this.cancelStream();
116
+ // Received changes are not replayed by the kernel. Keep them across reconnects.
117
+ if (this._acknowledged)
118
+ this.resetReadiness();
119
+ }
120
+ shouldResume() {
121
+ return this._resume || this._onResubscribed.size > 0;
122
+ }
123
+ restart() {
124
+ this.disconnect();
125
+ if (this._stopped || (this._lifecycle && !this._lifecycle.isConnected))
126
+ return;
127
+ // The watch and keep-alive share a transport, but can fail in either order.
128
+ // Also recover a watch-only failure if no disconnected notification follows.
129
+ this._restartTimer = setTimeout(() => {
130
+ this._restartTimer = undefined;
131
+ if (!this._lifecycle || this._lifecycle.isConnected)
132
+ this.start();
133
+ }, ReadModelWatcher._restartDelayMs);
134
+ this._restartTimer.unref?.();
135
+ }
136
+ clearRestartTimer() {
137
+ clearTimeout(this._restartTimer);
138
+ this._restartTimer = undefined;
139
+ }
140
+ cancelStream() {
141
+ const controller = this._controller;
142
+ this._controller = undefined;
143
+ controller?.abort();
144
+ this.resumeReading();
145
+ }
146
+ resumeReading() {
147
+ this._resumeReading?.();
148
+ this._resumeReading = undefined;
149
+ }
150
+ waitForCapacity(controller) {
151
+ if (this._controller === controller && this._acknowledged && !this._failOnOverflow &&
152
+ this._buffered.length >= this._bufferLimit) {
153
+ return new Promise(resolve => { this._resumeReading = resolve; })
154
+ .then(() => this.waitForCapacity(controller));
155
+ }
156
+ return undefined;
157
+ }
158
+ async read(controller) {
159
+ try {
160
+ for await (const change of this._open(controller.signal)) {
161
+ if (this._controller !== controller)
162
+ return;
163
+ if (change.Subscribed) {
164
+ if (this._acknowledged)
165
+ continue;
166
+ this._acknowledged = true;
167
+ this._resolveSubscribed();
168
+ const resubscribed = this._hasSubscribed;
169
+ this._hasSubscribed = true;
170
+ if (resubscribed) {
171
+ const callbacks = [...this._onResubscribed];
172
+ this._delivery = this._delivery.then(() => this.notifyResubscribed(callbacks));
173
+ await this._delivery;
174
+ }
175
+ const capacity = this.waitForCapacity(controller);
176
+ if (capacity)
177
+ await capacity;
178
+ if (this._controller !== controller)
179
+ return;
180
+ continue;
181
+ }
182
+ // Finish converting changes already received, even if their stream disconnects.
183
+ // A new stream queues behind them so conversion cannot reorder delivery.
184
+ this._delivery = this._delivery.then(() => this.deliver(change));
185
+ await this._delivery;
186
+ const capacity = this.waitForCapacity(controller);
187
+ if (capacity)
188
+ await capacity;
189
+ if (this._controller !== controller)
190
+ return;
191
+ }
192
+ if (this._controller === controller) {
193
+ if (this.shouldResume())
194
+ this.restart();
195
+ else
196
+ this.finish(new Error('Read model watch ended before subscription acknowledgment.'), false, true);
197
+ }
198
+ }
199
+ catch (error) {
200
+ if (this._controller !== controller)
201
+ return;
202
+ const code = error?.code;
203
+ if (this.shouldResume() && code !== undefined && [1, 4, 13, 14].includes(code))
204
+ this.restart();
205
+ // Let the consumer drain received changes before observing the terminal stream error.
206
+ else
207
+ this.finish(error, true, true);
208
+ }
209
+ }
210
+ async deliver(change) {
211
+ if (this._stopped)
212
+ return;
213
+ let converted;
214
+ try {
215
+ converted = await this._convert(change);
216
+ }
217
+ catch (error) {
218
+ // Conversion includes compliance RPCs: even transport-coded errors here
219
+ // are terminal, not permission to skip an unreleased change.
220
+ this.finish(error, true);
221
+ return;
222
+ }
223
+ if (this._stopped)
224
+ return;
225
+ const waiting = this._waiting.shift();
226
+ if (waiting) {
227
+ waiting.resolve({ done: false, value: converted });
228
+ }
229
+ else {
230
+ // Before Subscribed we must keep reading to reach the readiness marker.
231
+ // Afterward the default pauses reads; only an explicit limit opts into failure.
232
+ if (this._buffered.length >= this._bufferLimit) {
233
+ this.finish(new Error(`Read model watcher buffer exceeded ${this._bufferLimit} changes. Consume changes faster or refresh the read model and create a new watcher.`), true);
234
+ return;
235
+ }
236
+ this._buffered.push(converted);
237
+ }
238
+ }
239
+ async notifyResubscribed(callbacks) {
240
+ try {
241
+ for (const callback of callbacks) {
242
+ if (this._stopped)
243
+ return;
244
+ if (this._onResubscribed.has(callback))
245
+ await callback();
246
+ }
247
+ }
248
+ catch (error) {
249
+ // A failed refresh is not a recovered watch, even for transport-coded errors.
250
+ this.finish(error, true);
251
+ }
252
+ }
253
+ finish(reason, failed, preserveBuffered = false) {
254
+ if (this._stopped)
255
+ return;
256
+ this._stopped = true;
257
+ this._failed = failed;
258
+ this._failure = reason;
259
+ this._rejectSubscribed(reason);
260
+ this.clearRestartTimer();
261
+ this.cancelStream();
262
+ if (!preserveBuffered)
263
+ this._buffered.length = 0;
264
+ for (const unsubscribe of this._unsubscribe)
265
+ unsubscribe();
266
+ this._unsubscribe.length = 0;
267
+ this._onResubscribed.clear();
268
+ for (const waiting of this._waiting.splice(0)) {
269
+ if (failed)
270
+ waiting.reject(reason);
271
+ else
272
+ waiting.resolve({ done: true, value: undefined });
273
+ }
274
+ }
275
+ }
276
+ //# sourceMappingURL=ReadModelWatcher.js.map