@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.
- package/ChronicleClient.ts +3 -0
- package/EventStore.ts +2 -1
- package/connection/ConnectionLifecycle.ts +22 -0
- package/dist/ChronicleClient.d.ts.map +1 -1
- package/dist/ChronicleClient.js +3 -0
- package/dist/ChronicleClient.js.map +1 -1
- package/dist/EventStore.d.ts.map +1 -1
- package/dist/EventStore.js +2 -1
- package/dist/EventStore.js.map +1 -1
- package/dist/connection/ConnectionLifecycle.d.ts +8 -0
- package/dist/connection/ConnectionLifecycle.d.ts.map +1 -1
- package/dist/connection/ConnectionLifecycle.js +21 -0
- package/dist/connection/ConnectionLifecycle.js.map +1 -1
- package/dist/events/eventSourceTypeDecorator.d.ts +18 -0
- package/dist/events/eventSourceTypeDecorator.d.ts.map +1 -0
- package/dist/events/eventSourceTypeDecorator.js +25 -0
- package/dist/events/eventSourceTypeDecorator.js.map +1 -0
- package/dist/events/eventStreamTypeDecorator.d.ts +20 -0
- package/dist/events/eventStreamTypeDecorator.d.ts.map +1 -0
- package/dist/events/eventStreamTypeDecorator.js +29 -0
- package/dist/events/eventStreamTypeDecorator.js.map +1 -0
- package/dist/events/index.d.ts +2 -0
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +2 -0
- package/dist/events/index.js.map +1 -1
- package/dist/reactors/ReactorSideEffects.d.ts +6 -3
- package/dist/reactors/ReactorSideEffects.d.ts.map +1 -1
- package/dist/reactors/ReactorSideEffects.js +12 -6
- package/dist/reactors/ReactorSideEffects.js.map +1 -1
- package/dist/reactors/Reactors.d.ts.map +1 -1
- package/dist/reactors/Reactors.js +4 -2
- package/dist/reactors/Reactors.js.map +1 -1
- package/dist/readModels/IReadModelWatcher.d.ts +30 -0
- package/dist/readModels/IReadModelWatcher.d.ts.map +1 -0
- package/dist/readModels/IReadModelWatcher.js +4 -0
- package/dist/readModels/IReadModelWatcher.js.map +1 -0
- package/dist/readModels/IReadModels.d.ts +16 -2
- package/dist/readModels/IReadModels.d.ts.map +1 -1
- package/dist/readModels/ReadModelChangeContext.d.ts +9 -0
- package/dist/readModels/ReadModelChangeContext.d.ts.map +1 -0
- package/dist/readModels/ReadModelChangeContext.js +4 -0
- package/dist/readModels/ReadModelChangeContext.js.map +1 -0
- package/dist/readModels/ReadModelChangeType.d.ts +7 -0
- package/dist/readModels/ReadModelChangeType.d.ts.map +1 -0
- package/dist/readModels/ReadModelChangeType.js +10 -0
- package/dist/readModels/ReadModelChangeType.js.map +1 -0
- package/dist/readModels/ReadModelChangeset.d.ts +6 -0
- package/dist/readModels/ReadModelChangeset.d.ts.map +1 -1
- package/dist/readModels/ReadModelWatchOptions.d.ts +19 -0
- package/dist/readModels/ReadModelWatchOptions.d.ts.map +1 -0
- package/dist/readModels/ReadModelWatchOptions.js +4 -0
- package/dist/readModels/ReadModelWatchOptions.js.map +1 -0
- package/dist/readModels/ReadModelWatcher.d.ts +52 -0
- package/dist/readModels/ReadModelWatcher.d.ts.map +1 -0
- package/dist/readModels/ReadModelWatcher.js +276 -0
- package/dist/readModels/ReadModelWatcher.js.map +1 -0
- package/dist/readModels/ReadModels.d.ts +11 -1
- package/dist/readModels/ReadModels.d.ts.map +1 -1
- package/dist/readModels/ReadModels.js +47 -11
- package/dist/readModels/ReadModels.js.map +1 -1
- package/dist/readModels/for_ReadModelWatcher/given/a_kernel_stream.d.ts +15 -0
- package/dist/readModels/for_ReadModelWatcher/given/a_kernel_stream.d.ts.map +1 -0
- package/dist/readModels/for_ReadModelWatcher/given/a_kernel_stream.js +45 -0
- package/dist/readModels/for_ReadModelWatcher/given/a_kernel_stream.js.map +1 -0
- package/dist/readModels/for_ReadModelWatcher/given/a_watched_read_model.d.ts +21 -0
- package/dist/readModels/for_ReadModelWatcher/given/a_watched_read_model.d.ts.map +1 -0
- package/dist/readModels/for_ReadModelWatcher/given/a_watched_read_model.js +35 -0
- package/dist/readModels/for_ReadModelWatcher/given/a_watched_read_model.js.map +1 -0
- package/dist/readModels/index.d.ts +4 -0
- package/dist/readModels/index.d.ts.map +1 -1
- package/dist/readModels/index.js +1 -0
- package/dist/readModels/index.js.map +1 -1
- package/dist/reducers/Reducers.d.ts.map +1 -1
- package/dist/reducers/Reducers.js +4 -2
- package/dist/reducers/Reducers.js.map +1 -1
- package/dist/testing/ReactorScenario.d.ts.map +1 -1
- package/dist/testing/ReactorScenario.js +11 -1
- package/dist/testing/ReactorScenario.js.map +1 -1
- package/dist/testing/ReducerReadModelProcessor.d.ts.map +1 -1
- package/dist/testing/ReducerReadModelProcessor.js +13 -0
- package/dist/testing/ReducerReadModelProcessor.js.map +1 -1
- package/dist/testing/UnsupportedReducerOperation.d.ts +7 -0
- package/dist/testing/UnsupportedReducerOperation.d.ts.map +1 -0
- package/dist/testing/UnsupportedReducerOperation.js +14 -0
- package/dist/testing/UnsupportedReducerOperation.js.map +1 -0
- package/dist/testing/index.d.ts +1 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +1 -0
- package/dist/testing/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/events/eventSourceTypeDecorator.ts +28 -0
- package/events/eventStreamTypeDecorator.ts +33 -0
- package/events/for_observerFilters/when_registering/filter_registration_behaviors.fixture.ts +55 -0
- package/events/for_observerFilters/when_registering/with_legacy_decorators.legacy.spec.ts +30 -0
- package/events/for_observerFilters/when_registering/with_standard_decorators.standard.spec.ts +30 -0
- package/events/index.ts +2 -0
- package/for_ChronicleClient/when_reconnecting/with_waiting_read_model_watchers.spec.ts +117 -0
- package/jobs/for_Jobs/against_a_kernel/when_managing_a_replay_job.integration.spec.ts +24 -4
- package/package.json +2 -2
- package/reactors/ReactorSideEffects.ts +16 -6
- package/reactors/Reactors.ts +4 -2
- package/reactors/for_ReactorSideEffects/when_dispatching/with_reactor_source_and_stream_types.spec.ts +75 -0
- package/reactors/for_Reactors/against_a_kernel/when_filtering_source_and_stream_types.integration.spec.ts +147 -0
- package/reactors/for_Reactors/against_a_kernel/when_replaying_reactors_with_once_only_handlers.integration.spec.ts +27 -8
- package/readModels/IReadModelWatcher.ts +35 -0
- package/readModels/IReadModels.ts +17 -2
- package/readModels/ReadModelChangeContext.ts +11 -0
- package/readModels/ReadModelChangeType.ts +9 -0
- package/readModels/ReadModelChangeset.ts +9 -0
- package/readModels/ReadModelWatchOptions.ts +23 -0
- package/readModels/ReadModelWatcher.ts +271 -0
- package/readModels/ReadModels.ts +60 -11
- package/readModels/for_ReadModelWatcher/against_a_kernel/when_watching_changes.integration.spec.ts +104 -0
- package/readModels/for_ReadModelWatcher/given/a_kernel_stream.ts +50 -0
- package/readModels/for_ReadModelWatcher/given/a_watched_read_model.ts +37 -0
- package/readModels/for_ReadModelWatcher/watchCompatibility.standard.spec.ts +29 -0
- package/readModels/for_ReadModelWatcher/when_a_stream_cannot_recover.spec.ts +86 -0
- package/readModels/for_ReadModelWatcher/when_applying_backpressure.spec.ts +80 -0
- package/readModels/for_ReadModelWatcher/when_failing_with_buffered_changes.spec.ts +39 -0
- package/readModels/for_ReadModelWatcher/when_not_opting_into_resume.spec.ts +62 -0
- package/readModels/for_ReadModelWatcher/when_notifying_resubscription.spec.ts +128 -0
- package/readModels/for_ReadModelWatcher/when_opting_into_overflow.spec.ts +39 -0
- package/readModels/for_ReadModelWatcher/when_receiving_changes.spec.ts +69 -0
- package/readModels/for_ReadModelWatcher/when_reconnecting.spec.ts +99 -0
- package/readModels/for_ReadModelWatcher/when_reconnecting_during_conversion.spec.ts +84 -0
- package/readModels/for_ReadModelWatcher/when_recovering_a_stream.spec.ts +106 -0
- package/readModels/for_ReadModelWatcher/when_stopping.spec.ts +85 -0
- package/readModels/for_ReadModelWatcher/when_subscribing.spec.ts +62 -0
- package/readModels/for_ReadModels/when_watching.spec.ts +85 -0
- package/readModels/index.ts +4 -0
- package/reducers/Reducers.ts +4 -2
- package/testing/ReactorScenario.spec.ts +18 -1
- package/testing/ReactorScenario.ts +11 -1
- package/testing/ReducerReadModelProcessor.ts +13 -0
- package/testing/UnsupportedReducerOperation.ts +10 -0
- package/testing/for_ReactorScenario/when_recording_side_effects/with_declared_stream_type.spec.ts +50 -0
- package/testing/for_observerScenarios/when_selecting_filters/with_reducer_tag_filters.spec.ts +50 -0
- package/testing/for_observerScenarios/when_selecting_filters/with_source_and_stream_types.spec.ts +48 -0
- 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;
|
|
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:
|
|
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":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAEhF,OAAO,EAAE,gBAAgB,EAAkB,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAI5F,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAEvE,OAAO,EAAE,8BAA8B,EAAE,MAAM,kDAAkD,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAEhF,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAI1G,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAIvD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC5F,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AAEpF,4EAA4E;AAC5E,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AAE7C,mFAAmF;AACnF,MAAM,2BAA2B,GAAG,WAAW,CAAC;AAEhD;;;;GAIG;AACH,MAAM,UAAU;IACK,MAAM,GAAQ,EAAE,CAAC;IAC1B,QAAQ,GAAiE,SAAS,CAAC;IACnF,KAAK,GAAG,KAAK,CAAC;IAEtB,4EAA4E;IAC5E,IAAI,CAAC,KAAQ;QACT,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO;QACvB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC9B,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;YAC1B,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACL,CAAC;IAED,yFAAyF;IACzF,QAAQ;QACJ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC9B,CAAC;IACL,CAAC;IAED,CAAC,MAAM,CAAC,aAAa,CAAC;QAClB,4DAA4D;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,OAAO;YACH,IAAI;gBACA,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACzB,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gBACzE,CAAC;gBACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACb,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC7D,CAAC;gBACD,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;oBACzB,IAAI,CAAC,QAAQ,GAAG,OAAyD,CAAC;gBAC9E,CAAC,CAAC,CAAC;YACP,CAAC;YACD,MAAM;gBACF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;gBAClB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAChB,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;oBAChD,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;gBAC9B,CAAC;gBACD,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7D,CAAC;SACJ,CAAC;IACN,CAAC;CACJ;AAED;;;GAGG;AACH,MAAM,OAAO,QAAQ;IAuBI,gBAAgB;IAChB,WAAW;IACX,eAAe;IACf,UAAU;IAEV,SAAS;IACT,cAAc;IACd,WAAW;IACX,kBAAkB;IA9BvC,iFAAiF;IACzE,MAAM,CAAU,iBAAiB,GAAG,IAAI,CAAC;IAEhC,OAAO,CAAkC;IACzC,UAAU,CAAsB;IAChC,wBAAwB,CAAa;IACrC,SAAS,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC3C,OAAO,GAAG,IAAI,GAAG,EAAsC,CAAC;IACxD,aAAa,GAAG,IAAI,GAAG,EAA2B,CAAC;IAC5D,WAAW,GAAG,KAAK,CAAC;IACpB,SAAS,GAAG,KAAK,CAAC;IAE1B;;;;;;;;OAQG;IACH,YACqB,gBAA0C,EAC1C,WAAgC,EAChC,eAAuB,EACvB,UAAkB,EACnC,SAA8B,EACb,SAAoB,EACpB,cAAqC,EACrC,WAAyB,EACzB,kBAA6C;gCAR7C,gBAAgB;2BAChB,WAAW;+BACX,eAAe;0BACf,UAAU;yBAEV,SAAS;8BACT,cAAc;2BACd,WAAW;kCACX,kBAAkB;QAEnC,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,4BAA4B,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAC9E,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,wBAAwB,GAAG,SAAS,CAAC,cAAc,CAAC,KAAK,IAAI,EAAE;YAChE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;YACtE,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,aAAa,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,yEAAyE;IACzE,OAAO;QACH,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,QAAQ;QACV,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,QAAQ,EAAE,CAAC;gBACX,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAC5C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAG,IAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9G,CAAC;QACL,CAAC;IACL,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,QAAQ;QACV,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACrC,OAAO;QACX,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC1B,CAAC;QAED,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAC3B,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3D,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;SACrF,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,YAAY,EAAE,gBAAgB,EAAE,8BAA8B,CAAC,YAAY,CAAC,IAAI,EAC1G,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1E,KAAK,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAE,IAAI,aAAa,EAAE,CAAC;YACrE,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC5B,CAAC;IAEO,gBAAgB,CAAC,EAAU,EAAE,WAAwB,EACzD,UAAmC,EAAE,gBAA4C;QACjF,sBAAsB,CAAC,GAAG,EAAE;YACxB,IAAI,IAAI,CAAC,SAAS;gBAAE,OAAO;YAC3B,MAAM,QAAQ,GAAG,kBAAkB,CAAC,WAAW,CAAE,CAAC;YAClD,MAAM,eAAe,GAAG,QAAQ,CAAC,eAAe,IAAI,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC;YAEnF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,8BAA8B,EAAE;gBAC9C,SAAS,EAAE,EAAE;gBACb,eAAe;gBACf,YAAY,EAAE,UAAU,CAAC,MAAM;gBAC/B,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;aAC9C,CAAC,CAAC;YAEH,KAAK,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;QAC7F,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,KAAK,CAAC,cAAc,CACxB,EAAU,EACV,WAAwB,EACxB,eAAuB,EACvB,UAAmC,EACnC,gBAA4C;QAE5C,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;QAC9F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/F,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;IAC1E,CAAC;IAED;;;;;;;;OAQG;IACK,iBAAiB,CAAC,EAAU,EAAE,WAAwB,EAAE,UAAmC,EAAE,gBAA4C;QAC7I,yEAAyE;QACzE,kEAAkE;QAClE,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,OAAO;QACX,CAAC;QAED,MAAM,MAAM,GAAG,sBAAsB,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE;YACxD,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACtC,OAAO;YACX,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,qCAAqC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5E,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;QACzE,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAEhC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,cAAc,CACxB,EAAU,EACV,WAAwB,EACxB,eAAuB,EACvB,UAAmC,EACnC,gBAA4C;QAE5C,MAAM,KAAK,GAAG,IAAI,UAAU,EAAkB,CAAC;QAC/C,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC5B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QAEvC,KAAK,CAAC,IAAI,CAAC;YACP,OAAO,EAAE;gBACL,MAAM,EAAE;oBACJ,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY;oBAC1C,UAAU,EAAE,IAAI,CAAC,eAAe;oBAChC,SAAS,EAAE,IAAI,CAAC,UAAU;oBAC1B,OAAO,EAAE;wBACL,SAAS,EAAE,EAAE;wBACb,eAAe,EAAE,eAAe;wBAChC,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;4BAC9B,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE;4BACrE,GAAG,EAAE,mBAAmB;yBAC3B,CAAC,CAAC;wBACH,YAAY,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;wBACtC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;wBAC/C,OAAO,EAAE;4BACL,UAAU,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;4BAC3D,eAAe,EAAE,qBAAqB,CAAC,WAAW,CAAC;4BACnD,eAAe,EAAE,qBAAqB,CAAC,WAAW,CAAC;yBACtD;qBACJ;iBACJ;gBACD,MAAM,EAAE,SAAS;aACpB;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC;YACD,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAK,WAAkD,EAAE,CAAC;YACxH,IAAI,eAAe;gBAAE,gBAAgB,CAAC,eAAe,CAAC,CAAC;YACvD,MAAM,QAAQ,GAAgC,IAAI,CAAC,WAAW,IAAI;gBAC9D,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM;aACnG,CAAC;YAEF,IAAI,KAAK,EAAE,MAAM,eAAe,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;gBAC1G,IAAI,6BAA6B,GAAG,2BAA2B,CAAC;gBAChE,IAAI,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC;gBACrC,MAAM,iBAAiB,GAAa,EAAE,CAAC;gBACvC,IAAI,mBAAmB,GAAG,EAAE,CAAC;gBAE7B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE;oBAC7C,SAAS,EAAE,EAAE;oBACb,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM;oBACpC,WAAW,EAAE,eAAe,CAAC,WAAW;iBAC3C,CAAC,CAAC;gBAEH,IAAI,CAAC;oBACD,IAAI,IAAI,CAAC,kBAAkB,IAAI,eAAe,CAAC,WAAW,KAAK,WAAW,CAAC,iBAAiB,EAAE,CAAC;wBAC3F,IAAI,CAAC,QAAQ;4BAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;wBACtF,MAAM,qBAAqB,CAAC,WAAW,EAAE;4BACrC,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU;4BAC3E,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,eAAe,CAAC,SAAS;4BACtF,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,gBAAgB,CAAC,kBAAkB;4BACxE,WAAW,EAAE,eAAe,CAAC,WAAW;yBAC3C,EAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,EAAE;4BACnC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;4BACpC,OAAO,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,CAC/B,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,WAAW,EAAE,eAAe,CAAC,SAAS,CAAC,EAChG,EAAE,QAAQ,EAAE,gBAAgB,CAAC,kBAAkB,EAAE,WAAW,EAAE,eAAe,CAAC,WAAW,EAAE,CAAC,CAAC;wBACrG,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;oBAChC,CAAC;yBAAM,IAAI,eAAe,EAAE,CAAC;wBACzB,MAAM,qBAAqB,CAAC,eAAe,EAAE,eAAe,CAAC,WAAW,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;oBACzG,CAAC;gBACL,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACX,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,wDAAwD,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;oBAC5G,IAAI,GAAG,YAAY,wBAAwB,IAAI,GAAG,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;wBAC/E,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;oBACxD,CAAC;oBACD,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;oBACpC,mBAAmB,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpE,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC;gBACpC,CAAC;gBAED,MAAM,aAAa,GAAG,CAAC,KAA4C,EAAE,EAAE;oBACnE,OAAO,oBAAoB,CAAC,UAAU,EAAE,WAAW,EAAE,eAAe,EAChE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,gBAAgB,IAAI,CAAC,CAAC,CAAC;gBAC5E,CAAC,CAAC;gBAEF,MAAM,aAAa,GAAG,KAAK,EAAE,QAAqD,EAAE,EAAE;oBAClF,KAAK,MAAM,KAAK,IAAI,KAAK,KAAK,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;wBAClF,IAAI,CAAC;4BACD,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC;4BACjD,IAAI,CAAC,WAAW,EAAE,CAAC;gCACf,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;gCACzE,SAAS;4BACb,CAAC;4BAED,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;4BACvC,IAAI,CAAC,SAAS,EAAE,CAAC;gCACb,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;gCAC/E,6BAA6B,GAAG,KAAK,CAAC,OAAQ,CAAC,cAAc,CAAC;gCAC9D,SAAS;4BACb,CAAC;4BAED,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC;4BACvD,IAAI,CAAC,UAAU,IAAI,UAAU,EAAE,CAAC;gCAC5B,IAAI,UAAU,EAAE,CAAC;oCACb,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;gCACjH,CAAC;qCAAM,CAAC;oCACJ,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;gCAC7F,CAAC;gCACD,6BAA6B,GAAG,KAAK,CAAC,OAAQ,CAAC,cAAc,CAAC;gCAC9D,SAAS;4BACb,CAAC;4BAED,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAC;4BACrE,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,OAAQ,CAAC,CAAC;4BAErD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,EAAE;gCAC1C,SAAS,EAAE,EAAE;gCACb,MAAM,EAAE,UAAU;gCAClB,cAAc,EAAE,KAAK,CAAC,OAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE;gCACxD,WAAW;6BACd,CAAC,CAAC;4BAEH,MAAM,oBAAoB,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,CAClF,0BAA0B,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,WAAuB,EAC/E,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,EAC/D,IAAI,eAAe,CAAC,EAAE,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,eAAe,EAC9D,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,eAAe,EACrD,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;4BAExD,6BAA6B,GAAG,KAAK,CAAC,OAAQ,CAAC,cAAc,CAAC;wBAClE,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACX,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;4BACrF,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;4BACpC,mBAAmB,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;4BACpE,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC;4BAChC,MAAM;wBACV,CAAC;oBACL,CAAC;gBACL,CAAC,CAAC;gBAEF,MAAM,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,IAAI,KAAK,KAAK,gBAAgB,CAAC,OAAO;oBACrF,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;wBAClC,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;wBACvC,OAAO,CAAC,CAAC,SAAS,EAAE,UAAU,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;oBAC5D,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBACnB,IAAI,mBAAmB,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBACjD,IAAI,CAAC;wBACD,IAAI,CAAC,QAAQ;4BAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;wBACtF,MAAM,qBAAqB,CAAC,WAAiD,EAAE;4BAC3E,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU;4BAC3E,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,eAAe,CAAC,SAAS;4BACtF,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,gBAAgB,CAAC,MAAM;4BAC5D,YAAY,EAAE,oBAAoB,CAAC,mBAAmB,CAAC,OAAQ,CAAC;yBACnE,EAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,EAAE;4BACnC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;4BACpC,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC;wBACnC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;oBAChC,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACX,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;wBAC9E,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;wBACpC,MAAM,eAAe,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBACtE,mBAAmB,GAAG,GAAG,YAAY,wBAAwB,IAAI,mBAAmB;4BAChF,CAAC,CAAC,GAAG,mBAAmB,KAAK,eAAe,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC;wBACrE,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC;wBAChC,IAAI,GAAG,YAAY,wBAAwB,EAAE,CAAC;4BAC1C,6BAA6B,GAAG,2BAA2B,CAAC;wBAChE,CAAC;oBACL,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,MAAM,aAAa,CAAC,EAAE,QAAQ,EAAE,eAAe,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC7D,CAAC;gBAED,KAAK,CAAC,IAAI,CAAC;oBACP,OAAO,EAAE;wBACL,MAAM,EAAE,SAAS;wBACjB,MAAM,EAAE;4BACJ,SAAS,EAAE,eAAe,CAAC,SAAS;4BACpC,KAAK,EAAE,KAAK;4BACZ,yBAAyB,EAAE,6BAA6B;4BACxD,iBAAiB,EAAE,iBAAiB;4BACpC,mBAAmB,EAAE,mBAAmB;yBAC3C;qBACJ;iBACJ,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;YACvF,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,+CAA+C,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YACvG,CAAC;QACL,CAAC;gBAAS,CAAC;YACP,uEAAuE;YACvE,sEAAsE;YACtE,8CAA8C;YAC9C,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC;gBACjC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACxB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAClC,CAAC;YACD,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrB,CAAC;IACL,CAAC;IAEO,aAAa;QACjB,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;YAAE,UAAU,CAAC,KAAK,EAAE,CAAC;QACzE,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC5D,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CACJ"}
|
|
@@ -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 @@
|
|
|
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
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"ReadModelChangeContext.js","sourceRoot":"","sources":["../../readModels/ReadModelChangeContext.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG"}
|
|
@@ -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;
|
|
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 @@
|
|
|
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
|