@cratis/chronicle 6.50.0 → 6.51.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 (119) hide show
  1. package/dist/eventSequences/ITransactionalEventSequence.d.ts +2 -2
  2. package/dist/events/constraints/ConstraintBuilder.d.ts +7 -0
  3. package/dist/events/constraints/ConstraintBuilder.d.ts.map +1 -1
  4. package/dist/events/constraints/ConstraintBuilder.js +13 -0
  5. package/dist/events/constraints/ConstraintBuilder.js.map +1 -1
  6. package/dist/events/constraints/ConstraintEventSequences.d.ts +19 -0
  7. package/dist/events/constraints/ConstraintEventSequences.d.ts.map +1 -0
  8. package/dist/events/constraints/ConstraintEventSequences.js +39 -0
  9. package/dist/events/constraints/ConstraintEventSequences.js.map +1 -0
  10. package/dist/events/constraints/Constraints.d.ts.map +1 -1
  11. package/dist/events/constraints/Constraints.js +24 -3
  12. package/dist/events/constraints/Constraints.js.map +1 -1
  13. package/dist/events/constraints/IConstraintBuilder.d.ts +18 -0
  14. package/dist/events/constraints/IConstraintBuilder.d.ts.map +1 -1
  15. package/dist/events/constraints/UniqueOptions.d.ts +15 -0
  16. package/dist/events/constraints/UniqueOptions.d.ts.map +1 -0
  17. package/dist/events/constraints/UniqueOptions.js +4 -0
  18. package/dist/events/constraints/UniqueOptions.js.map +1 -0
  19. package/dist/events/constraints/for_Constraints/when_scoping_to_event_sequences/given/registered_constraints.d.ts +9 -0
  20. package/dist/events/constraints/for_Constraints/when_scoping_to_event_sequences/given/registered_constraints.d.ts.map +1 -0
  21. package/dist/events/constraints/for_Constraints/when_scoping_to_event_sequences/given/registered_constraints.js +22 -0
  22. package/dist/events/constraints/for_Constraints/when_scoping_to_event_sequences/given/registered_constraints.js.map +1 -0
  23. package/dist/events/constraints/index.d.ts +2 -0
  24. package/dist/events/constraints/index.d.ts.map +1 -1
  25. package/dist/events/constraints/index.js.map +1 -1
  26. package/dist/events/constraints/unique.d.ts +10 -0
  27. package/dist/events/constraints/unique.d.ts.map +1 -1
  28. package/dist/events/constraints/unique.js +11 -10
  29. package/dist/events/constraints/unique.js.map +1 -1
  30. package/dist/testing/EventScenario.d.ts.map +1 -1
  31. package/dist/testing/EventScenario.js +8 -3
  32. package/dist/testing/EventScenario.js.map +1 -1
  33. package/dist/testing/InProcessConstraints.d.ts +4 -1
  34. package/dist/testing/InProcessConstraints.d.ts.map +1 -1
  35. package/dist/testing/InProcessConstraints.js +5 -1
  36. package/dist/testing/InProcessConstraints.js.map +1 -1
  37. package/dist/testing/InProcessEventSequence.d.ts.map +1 -1
  38. package/dist/testing/InProcessEventSequence.js +2 -1
  39. package/dist/testing/InProcessEventSequence.js.map +1 -1
  40. package/dist/transactions/ConflictingConcurrencyScopesInUnitOfWork.d.ts +14 -0
  41. package/dist/transactions/ConflictingConcurrencyScopesInUnitOfWork.d.ts.map +1 -0
  42. package/dist/transactions/ConflictingConcurrencyScopesInUnitOfWork.js +20 -0
  43. package/dist/transactions/ConflictingConcurrencyScopesInUnitOfWork.js.map +1 -0
  44. package/dist/transactions/IUnitOfWork.d.ts +2 -1
  45. package/dist/transactions/IUnitOfWork.d.ts.map +1 -1
  46. package/dist/transactions/TransactionalAppendOptions.d.ts +23 -2
  47. package/dist/transactions/TransactionalAppendOptions.d.ts.map +1 -1
  48. package/dist/transactions/UnitOfWork.d.ts +1 -0
  49. package/dist/transactions/UnitOfWork.d.ts.map +1 -1
  50. package/dist/transactions/UnitOfWork.js +28 -13
  51. package/dist/transactions/UnitOfWork.js.map +1 -1
  52. package/dist/transactions/concurrencyScopesAreEqual.d.ts +9 -0
  53. package/dist/transactions/concurrencyScopesAreEqual.d.ts.map +1 -0
  54. package/dist/transactions/concurrencyScopesAreEqual.js +19 -0
  55. package/dist/transactions/concurrencyScopesAreEqual.js.map +1 -0
  56. package/dist/transactions/for_UnitOfWork/given/a_unit_of_work_with_a_recording_store.d.ts +26 -0
  57. package/dist/transactions/for_UnitOfWork/given/a_unit_of_work_with_a_recording_store.d.ts.map +1 -0
  58. package/dist/transactions/for_UnitOfWork/given/a_unit_of_work_with_a_recording_store.js +31 -0
  59. package/dist/transactions/for_UnitOfWork/given/a_unit_of_work_with_a_recording_store.js.map +1 -0
  60. package/dist/transactions/index.d.ts +1 -0
  61. package/dist/transactions/index.d.ts.map +1 -1
  62. package/dist/transactions/index.js +1 -0
  63. package/dist/transactions/index.js.map +1 -1
  64. package/dist/transactions/toEventForEventSourceId.d.ts +13 -0
  65. package/dist/transactions/toEventForEventSourceId.d.ts.map +1 -0
  66. package/dist/transactions/toEventForEventSourceId.js +29 -0
  67. package/dist/transactions/toEventForEventSourceId.js.map +1 -0
  68. package/dist/tsconfig.tsbuildinfo +1 -1
  69. package/eventSequences/ITransactionalEventSequence.ts +2 -2
  70. package/eventSequences/for_TransactionalEventSequence/when_appending_many_with_options.spec.ts +29 -0
  71. package/events/constraints/ConstraintBuilder.ts +16 -0
  72. package/events/constraints/ConstraintEventSequences.ts +41 -0
  73. package/events/constraints/Constraints.ts +22 -3
  74. package/events/constraints/IConstraintBuilder.ts +20 -0
  75. package/events/constraints/UniqueOptions.ts +20 -0
  76. package/events/constraints/for_Constraints/against_a_kernel/when_appending_to_event_sequences_a_constraint_is_scoped_to.integration.spec.ts +118 -0
  77. package/events/constraints/for_Constraints/when_scoping_to_event_sequences/given/registered_constraints.ts +26 -0
  78. package/events/constraints/for_Constraints/when_scoping_to_event_sequences/with_fluent_builder.spec.ts +40 -0
  79. package/events/constraints/for_Constraints/when_scoping_to_event_sequences/with_legacy_decorators.legacy.spec.ts +47 -0
  80. package/events/constraints/for_Constraints/when_scoping_to_event_sequences/with_merged_declarations.spec.ts +36 -0
  81. package/events/constraints/for_Constraints/when_scoping_to_event_sequences/with_standard_decorators.standard.spec.ts +46 -0
  82. package/events/constraints/index.ts +2 -0
  83. package/events/constraints/unique.ts +22 -2
  84. package/package.json +2 -2
  85. package/testing/EventScenario.fixtures.spec.ts +1 -1
  86. package/testing/EventScenario.ts +10 -4
  87. package/testing/InProcessConstraints.ts +5 -1
  88. package/testing/InProcessEventSequence.ts +2 -1
  89. package/testing/for_EventScenario/when_appending_event_sequence_constraints/event_sequence_scenario_behaviors.fixture.ts +101 -0
  90. package/testing/for_EventScenario/when_appending_event_sequence_constraints/other_sequence_extended_key.legacy.spec.ts +28 -0
  91. package/testing/for_EventScenario/when_appending_event_sequence_constraints/other_sequence_extended_key.standard.spec.ts +27 -0
  92. package/testing/for_EventScenario/when_appending_event_sequence_constraints/other_sequence_extended_key_behaviors.fixture.ts +40 -0
  93. package/testing/for_EventScenario/when_appending_event_sequence_constraints/with_legacy_decorators.legacy.spec.ts +55 -0
  94. package/testing/for_EventScenario/when_appending_event_sequence_constraints/with_standard_decorators.standard.spec.ts +54 -0
  95. package/transactions/ConflictingConcurrencyScopesInUnitOfWork.ts +19 -0
  96. package/transactions/IUnitOfWork.ts +2 -1
  97. package/transactions/TransactionalAppendOptions.ts +30 -2
  98. package/transactions/UnitOfWork.ts +29 -13
  99. package/transactions/concurrencyScopesAreEqual.ts +23 -0
  100. package/transactions/for_UnitOfWork/against_a_kernel/when_committing_with_append_metadata.integration.spec.ts +70 -0
  101. package/transactions/for_UnitOfWork/given/a_unit_of_work_with_a_recording_store.ts +54 -0
  102. package/transactions/for_UnitOfWork/when_adding_events_with_concurrency_scopes/and_the_event_type_filters_are_equivalent.spec.ts +32 -0
  103. package/transactions/for_UnitOfWork/when_adding_events_with_concurrency_scopes/and_the_event_type_filters_differ.spec.ts +40 -0
  104. package/transactions/for_UnitOfWork/when_adding_events_with_concurrency_scopes/and_the_scopes_are_equal_or_omitted.spec.ts +29 -0
  105. package/transactions/for_UnitOfWork/when_adding_events_with_concurrency_scopes/and_the_scopes_differ_for_one_event_source.spec.ts +29 -0
  106. package/transactions/for_UnitOfWork/when_committing_events_with_append_metadata/and_a_later_event_sequence_fails.spec.ts +30 -0
  107. package/transactions/for_UnitOfWork/when_committing_events_with_append_metadata/and_events_span_event_sequences.spec.ts +34 -0
  108. package/transactions/for_UnitOfWork/when_committing_events_with_append_metadata/and_options_differ_per_event.spec.ts +45 -0
  109. package/transactions/for_UnitOfWork/when_committing_events_with_append_metadata/and_the_append_is_rejected.spec.ts +26 -0
  110. package/transactions/for_UnitOfWork/when_rolling_back_events_with_append_metadata.spec.ts +24 -0
  111. package/transactions/index.ts +1 -0
  112. package/transactions/toEventForEventSourceId.ts +32 -0
  113. package/vitest.integration.config.ts +2 -0
  114. package/webhooks/for_Webhooks/against_a_kernel/given/ReceivedWebhookRequest.fixture.ts +21 -0
  115. package/webhooks/for_Webhooks/against_a_kernel/given/WebhookReceiver.fixture.ts +99 -0
  116. package/webhooks/for_Webhooks/against_a_kernel/when_delivering_events_to_a_failing_webhook.integration.spec.ts +101 -0
  117. package/webhooks/for_Webhooks/against_a_kernel/when_delivering_events_to_a_webhook.integration.spec.ts +130 -0
  118. package/webhooks/for_Webhooks/against_a_kernel/when_registering_a_webhook_that_is_not_replayable_and_not_active.integration.spec.ts +101 -0
  119. package/webhooks/for_Webhooks/when_registering_a_webhook_that_is_not_replayable_and_not_active.spec.ts +43 -0
@@ -0,0 +1,31 @@
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
+ import { Guid } from '@cratis/fundamentals';
4
+ import { vi } from 'vitest';
5
+ import { EventSequenceNumber } from '../../../eventSequences/EventSequenceNumber.js';
6
+ import { UnitOfWork } from '../../UnitOfWork.js';
7
+ /** Creates a successful append result with a given sequence number. */
8
+ export function successfulAppendResult(sequenceNumber) {
9
+ return { sequenceNumber: new EventSequenceNumber(sequenceNumber), constraintViolations: [], errors: [], isSuccess: true, waitForCompletion: vi.fn() };
10
+ }
11
+ /**
12
+ * Creates a unit of work over a store whose event sequences record every appendMany call.
13
+ * @param appendMany - Optional replacement for the recording appendMany; receives the sequence id first.
14
+ */
15
+ export function a_unit_of_work_with_a_recording_store(appendMany) {
16
+ const appends = [];
17
+ let next = 0n;
18
+ const record = vi.fn(async (eventSequenceId, events, options) => {
19
+ appends.push({ eventSequenceId, events, options });
20
+ return appendMany ? appendMany(eventSequenceId, events, options) : events.map(() => successfulAppendResult(next++));
21
+ });
22
+ const store = {
23
+ getEventSequence: (id) => ({
24
+ appendMany: (events, options) => record(id.value, events, options)
25
+ })
26
+ };
27
+ const completed = vi.fn();
28
+ const unitOfWork = new UnitOfWork(Guid.create(), completed, store);
29
+ return { unitOfWork, appends, record, completed };
30
+ }
31
+ //# sourceMappingURL=a_unit_of_work_with_a_recording_store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a_unit_of_work_with_a_recording_store.js","sourceRoot":"","sources":["../../../../transactions/for_UnitOfWork/given/a_unit_of_work_with_a_recording_store.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,EAAE,EAAa,MAAM,QAAQ,CAAC;AAIvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AAErF,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AASjD,uEAAuE;AACvE,MAAM,UAAU,sBAAsB,CAAC,cAAsB;IACzD,OAAO,EAAE,cAAc,EAAE,IAAI,mBAAmB,CAAC,cAAc,CAAC,EAAE,oBAAoB,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;AAC1J,CAAC;AAUD;;;GAGG;AACH,MAAM,UAAU,qCAAqC,CACjD,UAA0H;IAE1H,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,MAAM,MAAM,GAAS,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,eAAuB,EAAE,MAA+B,EAAE,OAAsB,EAAE,EAAE;QAClH,OAAO,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QACnD,OAAO,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACxH,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG;QACV,gBAAgB,EAAE,CAAC,EAAqB,EAAE,EAAE,CAAC,CAAC;YAC1C,UAAU,EAAE,CAAC,MAA+B,EAAE,OAAsB,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC;SAC7G,CAAC;KACqB,CAAC;IAC5B,MAAM,SAAS,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IAC1B,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IACnE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACtD,CAAC"}
@@ -5,4 +5,5 @@ export { UnitOfWork } from './UnitOfWork.js';
5
5
  export { UnitOfWorkManager } from './UnitOfWorkManager.js';
6
6
  export type { TransactionalEventRouting } from './TransactionalEventRouting.js';
7
7
  export type { TransactionalAppendOptions } from './TransactionalAppendOptions.js';
8
+ export { ConflictingConcurrencyScopesInUnitOfWork } from './ConflictingConcurrencyScopesInUnitOfWork.js';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../transactions/index.ts"],"names":[],"mappings":"AAGA,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAChF,YAAY,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../transactions/index.ts"],"names":[],"mappings":"AAGA,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAChF,YAAY,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAClF,OAAO,EAAE,wCAAwC,EAAE,MAAM,+CAA+C,CAAC"}
@@ -3,4 +3,5 @@
3
3
  export { NoUnitOfWorkHasBeenStarted } from './NoUnitOfWorkHasBeenStarted.js';
4
4
  export { UnitOfWork } from './UnitOfWork.js';
5
5
  export { UnitOfWorkManager } from './UnitOfWorkManager.js';
6
+ export { ConflictingConcurrencyScopesInUnitOfWork } from './ConflictingConcurrencyScopesInUnitOfWork.js';
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../transactions/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAIrG,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../transactions/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAIrG,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG3D,OAAO,EAAE,wCAAwC,EAAE,MAAM,+CAA+C,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { EventForEventSourceId } from '../eventSequences/EventForEventSourceId.js';
2
+ import type { TransactionalAppendOptions } from './TransactionalAppendOptions.js';
3
+ /**
4
+ * Captures an event and its transactional append metadata as the batch entry appended on commit.
5
+ * Only supplied values become keys, and tags and occurrence time are copied so later caller mutations do not leak in.
6
+ * The concurrency scope is not part of the entry; the unit of work passes it per event source identifier.
7
+ * @param eventSourceId - The event source identifier.
8
+ * @param event - The event payload.
9
+ * @param options - Optional transactional append metadata.
10
+ * @returns The batch entry.
11
+ */
12
+ export declare function toEventForEventSourceId(eventSourceId: string, event: object, options?: TransactionalAppendOptions): EventForEventSourceId;
13
+ //# sourceMappingURL=toEventForEventSourceId.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toEventForEventSourceId.d.ts","sourceRoot":"","sources":["../../transactions/toEventForEventSourceId.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACxF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAGlF;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,0BAA0B,GAAG,qBAAqB,CAezI"}
@@ -0,0 +1,29 @@
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
+ import { mergeNamedTags } from '../events/mergeNamedTags.js';
4
+ /**
5
+ * Captures an event and its transactional append metadata as the batch entry appended on commit.
6
+ * Only supplied values become keys, and tags and occurrence time are copied so later caller mutations do not leak in.
7
+ * The concurrency scope is not part of the entry; the unit of work passes it per event source identifier.
8
+ * @param eventSourceId - The event source identifier.
9
+ * @param event - The event payload.
10
+ * @param options - Optional transactional append metadata.
11
+ * @returns The batch entry.
12
+ */
13
+ export function toEventForEventSourceId(eventSourceId, event, options) {
14
+ const namedTags = mergeNamedTags(options?.namedTags);
15
+ return {
16
+ eventSourceId,
17
+ event,
18
+ ...(options?.eventSource !== undefined ? { eventSource: options.eventSource } : {}),
19
+ ...(options?.eventStream !== undefined ? { eventStream: options.eventStream } : {}),
20
+ ...(options?.eventStreamType !== undefined ? { eventStreamType: options.eventStreamType } : {}),
21
+ ...(options?.eventStreamId !== undefined ? { eventStreamId: options.eventStreamId } : {}),
22
+ ...(options?.eventSourceType !== undefined ? { eventSourceType: options.eventSourceType } : {}),
23
+ ...(options?.occurred !== undefined ? { occurred: new Date(options.occurred.getTime()) } : {}),
24
+ ...(options?.subject !== undefined ? { subject: options.subject } : {}),
25
+ ...(options?.tags !== undefined ? { tags: [...options.tags] } : {}),
26
+ ...(namedTags.length > 0 ? { namedTags } : {})
27
+ };
28
+ }
29
+ //# sourceMappingURL=toEventForEventSourceId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toEventForEventSourceId.js","sourceRoot":"","sources":["../../transactions/toEventForEventSourceId.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAIrG,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CAAC,aAAqB,EAAE,KAAa,EAAE,OAAoC;IAC9G,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACrD,OAAO;QACH,aAAa;QACb,KAAK;QACL,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnF,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnF,GAAG,CAAC,OAAO,EAAE,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/F,GAAG,CAAC,OAAO,EAAE,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzF,GAAG,CAAC,OAAO,EAAE,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/F,GAAG,CAAC,OAAO,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9F,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,GAAG,CAAC,OAAO,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACjD,CAAC;AACN,CAAC"}
@@ -1 +1 @@
1
- {"version":"7.0.2","root":["../ChronicleClient.ts","../ChronicleOptions.ts","../EventStore.ts","../EventStoreName.ts","../EventStoreNamespaceName.ts","../IChronicleClient.ts","../IEventStore.ts","../Metrics.ts","../Tracing.ts","../WellKnownTelemetryNames.ts","../index.ts","../artifacts/ActivatedArtifact.ts","../artifacts/ArtifactActivationContext.ts","../artifacts/ArtifactCompletionFailed.ts","../artifacts/ArtifactDelivery.ts","../artifacts/ArtifactInvocationContext.ts","../artifacts/ArtifactKind.ts","../artifacts/ClientArtifactsActivator.ts","../artifacts/DefaultClientArtifactsProvider.ts","../artifacts/IClientArtifactsProvider.ts","../artifacts/index.ts","../artifacts/validateArtifactSchemas.ts","../artifacts/withActivatedArtifact.ts","../auditing/Causation.ts","../auditing/CausationManager.ts","../auditing/CausationType.ts","../auditing/ICausationManager.ts","../auditing/index.ts","../compliance/ComplianceContracts.ts","../compliance/ComplianceMetadata.ts","../compliance/ComplianceMetadataResolver.ts","../compliance/ComplianceMetadataType.ts","../compliance/IPIIManager.ts","../compliance/PIIManager.ts","../compliance/PIINotSupportedOnEventSourceId.ts","../compliance/index.ts","../compliance/pii.ts","../compliance/resolveEventSubject.ts","../compliance/subject.ts","../confidentiality/EncryptedNotSupportedOnEventSourceId.ts","../confidentiality/EncryptionScope.ts","../confidentiality/PIIAndEncryptedCombinedNotSupported.ts","../confidentiality/SecurityMetadata.ts","../confidentiality/SecurityMetadataResolver.ts","../confidentiality/SecurityMetadataType.ts","../confidentiality/encrypted.ts","../confidentiality/index.ts","../connection/ChronicleConnection.ts","../connection/ChronicleConnectionString.ts","../connection/ChronicleServerAddressResolver.ts","../connection/ChronicleServices.ts","../connection/ChronicleSrvResolutionError.ts","../connection/ChronicleSrvResolver.ts","../connection/CompatibilityPreflight.ts","../connection/ConnectionLifecycle.ts","../connection/DateTimeOffset.ts","../connection/Guid.ts","../connection/ILoadBalancerStrategy.ts","../connection/IncompatibleChronicleServer.ts","../connection/KernelKeepAlive.ts","../connection/LeastConnectionsLoadBalancerStrategy.ts","../connection/LoadBalancerMode.ts","../connection/LoadBalancerStrategyFactory.ts","../connection/RandomLoadBalancerStrategy.ts","../connection/RejectedChronicleCredentials.ts","../connection/RoundRobinLoadBalancerStrategy.ts","../connection/TokenProvider.ts","../connection/TraceContextMiddleware.ts","../connection/callResults.ts","../connection/clientVersion.ts","../connection/encodeExplicitFalse.ts","../connection/fetchOAuthAccessToken.ts","../connection/formatServerAddress.ts","../connection/index.ts","../connection/for_encodeExplicitFalse/wireFields.ts","../correlation/CorrelationId.ts","../correlation/CorrelationIdManager.ts","../correlation/ICorrelationIdAccessor.ts","../correlation/ICorrelationIdSetter.ts","../correlation/index.ts","../eventSequences/AppendError.ts","../eventSequences/AppendOperationsBroadcaster.ts","../eventSequences/AppendOptions.ts","../eventSequences/AppendResult.ts","../eventSequences/AppendedEventWithResult.ts","../eventSequences/CompleteStreamError.ts","../eventSequences/CompleteStreamResult.ts","../eventSequences/ConcurrencyScope.ts","../eventSequences/ConcurrencyViolation.ts","../eventSequences/ConstraintViolation.ts","../eventSequences/EventForEventSourceId.ts","../eventSequences/EventLog.ts","../eventSequences/EventSequence.ts","../eventSequences/EventSequenceId.ts","../eventSequences/EventSequenceNumber.ts","../eventSequences/IEventLog.ts","../eventSequences/IEventSequence.ts","../eventSequences/ITransactionalEventSequence.ts","../eventSequences/NamedTagsWithRegisteredEventSourceNotSupported.ts","../eventSequences/TransactionalEventSequence.ts","../eventSequences/WaitForCompletionOptions.ts","../eventSequences/WaitForCompletionResult.ts","../eventSequences/createAppendNotification.ts","../eventSequences/createAppendResult.ts","../eventSequences/ensureNamedTagBatchIsSupported.ts","../eventSequences/index.ts","../eventSequences/prepareBatchAppend.ts","../eventSequences/prepareSingleAppend.ts","../eventSequences/resolveEventSourceRouting.ts","../eventSources/ConcurrencyDimensions.ts","../eventSources/DuplicateEventSourceName.ts","../eventSources/DuplicateEventStreamName.ts","../eventSources/EventRoutingContradictsEventSource.ts","../eventSources/EventSourceDefinition.ts","../eventSources/EventSources.ts","../eventSources/EventStreamDefinition.ts","../eventSources/EventStreamDoesNotBelongToEventSource.ts","../eventSources/EventStreamRequiresEventSource.ts","../eventSources/IEventSources.ts","../eventSources/ResolvedEventRouting.ts","../eventSources/UnknownEventSource.ts","../eventSources/eventSource.ts","../eventSources/index.ts","../eventStoreSubscriptions/EventStoreSubscriptionBuilder.ts","../eventStoreSubscriptions/EventStoreSubscriptionDefinition.ts","../eventStoreSubscriptions/EventStoreSubscriptionId.ts","../eventStoreSubscriptions/EventStoreSubscriptions.ts","../eventStoreSubscriptions/IEventStoreSubscriptionBuilder.ts","../eventStoreSubscriptions/IEventStoreSubscriptions.ts","../eventStoreSubscriptions/contracts.ts","../eventStoreSubscriptions/index.ts","../events/AppendedEvent.ts","../events/CausationEntry.ts","../events/EventContext.ts","../events/EventType.ts","../events/EventTypeGeneration.ts","../events/EventTypeId.ts","../events/EventTypes.ts","../events/IEventTypes.ts","../events/InvalidNamedTag.ts","../events/NamedTag.ts","../events/Tag.ts","../events/WireEventContext.ts","../events/eventSourceTypeDecorator.ts","../events/eventStreamTypeDecorator.ts","../events/eventTypeDecorator.ts","../events/filterEventsByTagDecorator.ts","../events/handles.ts","../events/index.ts","../events/isRegisteredEvent.ts","../events/mergeNamedTags.ts","../events/mergeTags.ts","../events/tagDecorator.ts","../events/toClientEventContext.ts","../events/constraints/ConstraintBuilder.ts","../events/constraints/ConstraintId.ts","../events/constraints/Constraints.ts","../events/constraints/IConstraint.ts","../events/constraints/IConstraintBuilder.ts","../events/constraints/IConstraints.ts","../events/constraints/IUniqueConstraintBuilder.ts","../events/constraints/UniqueConstraintBuilder.ts","../events/constraints/constraint.ts","../events/constraints/index.ts","../events/constraints/removeConstraint.ts","../events/constraints/unique.ts","../events/migrations/EventMigrationBuilder.ts","../events/migrations/EventMigrationPropertyBuilder.ts","../events/migrations/EventTypeMigrators.ts","../events/migrations/IEventMigrationBuilder.ts","../events/migrations/IEventMigrationPropertyBuilder.ts","../events/migrations/IEventTypeMigration.ts","../events/migrations/IEventTypeMigrators.ts","../events/migrations/InvalidMigrationGenerationGap.ts","../events/migrations/eventTypeMigration.ts","../events/migrations/index.ts","../externalServices/ExternalServiceBuilder.ts","../externalServices/ExternalServices.ts","../externalServices/IExternalServiceBuilder.ts","../externalServices/IExternalServices.ts","../externalServices/index.ts","../identities/IIdentityManager.ts","../identities/IdentityManager.ts","../identities/index.ts","../identity/IIdentityProvider.ts","../identity/Identity.ts","../identity/IdentityProvider.ts","../identity/index.ts","../jobs/IJobs.ts","../jobs/JobId.ts","../jobs/Jobs.ts","../jobs/index.ts","../logging/ChronicleLogEntry.ts","../logging/ChronicleLogLevel.ts","../logging/DiagChronicleLogger.ts","../logging/IChronicleLogger.ts","../logging/createLogger.ts","../observation/EventHandler.ts","../observation/FailedPartition.ts","../observation/FailedPartitionAttempt.ts","../observation/FailedPartitions.ts","../observation/ICanBeNotifiedWhenPartitionReplayed.ts","../observation/ICanBeNotifiedWhenReplay.ts","../observation/IFailedPartitions.ts","../observation/IObservers.ts","../observation/ObserverId.ts","../observation/ObserverInformation.ts","../observation/ObserverRemovalOutcome.ts","../observation/ObserverRemovalResult.ts","../observation/ObserverRunningState.ts","../observation/ObserverType.ts","../observation/Observers.ts","../observation/createHandlerInstanceValidator.ts","../observation/getEventHandlers.ts","../observation/getInstanceMethods.ts","../observation/index.ts","../observation/notifyReplayLifecycle.ts","../observation/toClientFailedPartition.ts","../observation/toObserverInformation.ts","../observation/toObserverRemovalResult.ts","../observation/toObserverRunningState.ts","../patterns/BehaviorPattern.ts","../patterns/DayOfWeek.ts","../patterns/FacetName.ts","../patterns/FacetSet.ts","../patterns/IPatterns.ts","../patterns/PatternMoment.ts","../patterns/PatternQueryOptions.ts","../patterns/Patterns.ts","../patterns/PatternsAtOptions.ts","../patterns/TimeBucket.ts","../patterns/index.ts","../patterns/toBehaviorPattern.ts","../patterns/toDayOfWeek.ts","../patterns/toOffsetDate.ts","../patterns/toTimeBucket.ts","../projections/CompiledProjectionDefinitions.ts","../projections/GlobalHandlerPropertyNotOnVariant.ts","../projections/IProjections.ts","../projections/InvalidEventContextPropertyError.ts","../projections/ProjectionCapabilityProvenance.ts","../projections/ProjectionDefinitionCompiler.ts","../projections/ProjectionEventSchema.ts","../projections/ProjectionId.ts","../projections/ProjectionQueryResult.ts","../projections/ProjectionState.ts","../projections/Projections.ts","../projections/ResolvedModelBoundMetadata.ts","../projections/UnableToQueryProjection.ts","../projections/VariantMustDeclareEntersOnEvent.ts","../projections/VariantReclassifier.ts","../projections/canonicalStringify.ts","../projections/captureProjectionProvenance.ts","../projections/constantValueExpression.ts","../projections/eventContextPropertyExpression.ts","../projections/eventContractPath.ts","../projections/index.ts","../projections/invalidEventContextPropertyInProjection.ts","../projections/notSetPropertyPath.ts","../projections/declarative/AddBuilder.ts","../projections/declarative/AddChildBuilder.ts","../projections/declarative/AllSetBuilder.ts","../projections/declarative/ChildrenBuilder.ts","../projections/declarative/CompositeKeyBuilder.ts","../projections/declarative/FromAllBuilder.ts","../projections/declarative/FromBuilder.ts","../projections/declarative/FromEveryBuilder.ts","../projections/declarative/IAddBuilder.ts","../projections/declarative/IAddChildBuilder.ts","../projections/declarative/IAllSetBuilder.ts","../projections/declarative/IChildrenBuilder.ts","../projections/declarative/ICompositeKeyBuilder.ts","../projections/declarative/ICompositeKeySetBuilder.ts","../projections/declarative/IFromAllBuilder.ts","../projections/declarative/IFromBuilder.ts","../projections/declarative/IFromEveryBuilder.ts","../projections/declarative/IJoinBuilder.ts","../projections/declarative/INestedBuilder.ts","../projections/declarative/IProjectionBuilder.ts","../projections/declarative/IProjectionBuilderFor.ts","../projections/declarative/IProjectionFor.ts","../projections/declarative/IReadModelPropertiesBuilder.ts","../projections/declarative/IRemovedWithBuilder.ts","../projections/declarative/IRemovedWithJoinBuilder.ts","../projections/declarative/ISetBuilder.ts","../projections/declarative/ISubtractBuilder.ts","../projections/declarative/JoinBuilder.ts","../projections/declarative/NestedBuilder.ts","../projections/declarative/ProjectionBuilderCore.ts","../projections/declarative/ProjectionBuilderFor.ts","../projections/declarative/RemovedWithBuilder.ts","../projections/declarative/RemovedWithJoinBuilder.ts","../projections/declarative/SetBuilder.ts","../projections/declarative/SubtractBuilder.ts","../projections/declarative/index.ts","../projections/declarative/projection.ts","../projections/declarative/projectionBuilderProvenance.ts","../projections/for_ProjectionDefinitionCompiler/given/compile_model_bound.ts","../projections/modelBound/FromAllEventsMetadata.ts","../projections/modelBound/FromEventMetadata.ts","../projections/modelBound/FromEventOptions.ts","../projections/modelBound/addFrom.ts","../projections/modelBound/childrenAndNestedBuilder.ts","../projections/modelBound/childrenFrom.ts","../projections/modelBound/clearWith.ts","../projections/modelBound/count.ts","../projections/modelBound/decrement.ts","../projections/modelBound/entersOn.ts","../projections/modelBound/eventSequence.ts","../projections/modelBound/fromAll.ts","../projections/modelBound/fromAllEvents.ts","../projections/modelBound/fromEvent.ts","../projections/modelBound/fromEvery.ts","../projections/modelBound/globalFor.ts","../projections/modelBound/increment.ts","../projections/modelBound/index.ts","../projections/modelBound/isModelBoundProjection.ts","../projections/modelBound/join.ts","../projections/modelBound/nested.ts","../projections/modelBound/noAutoMap.ts","../projections/modelBound/notRewindable.ts","../projections/modelBound/passive.ts","../projections/modelBound/removedWith.ts","../projections/modelBound/removedWithJoin.ts","../projections/modelBound/setFrom.ts","../projections/modelBound/setFromContext.ts","../projections/modelBound/setValue.ts","../projections/modelBound/subtractFrom.ts","../projections/modelBound/variantOf.ts","../reactors/IReactors.ts","../reactors/ReactorDelivery.ts","../reactors/ReactorDispatcher.ts","../reactors/ReactorId.ts","../reactors/ReactorResultHandler.ts","../reactors/ReactorServices.ts","../reactors/ReactorSideEffects.ts","../reactors/Reactors.ts","../reactors/index.ts","../reactors/onceOnly.ts","../reactors/reactor.ts","../reactors/replay.ts","../reactors/for_Reactors/given/deliver_to_reactor.ts","../readModels/IMaterializedReadModels.ts","../readModels/IReadModelWatcher.ts","../readModels/IReadModels.ts","../readModels/MaterializedReadModels.ts","../readModels/ReadModelChangeContext.ts","../readModels/ReadModelChangeType.ts","../readModels/ReadModelChangeset.ts","../readModels/ReadModelId.ts","../readModels/ReadModelNamingPolicy.ts","../readModels/ReadModelSnapshot.ts","../readModels/ReadModelSubjectResolver.ts","../readModels/ReadModelWatchOptions.ts","../readModels/ReadModelWatcher.ts","../readModels/ReadModels.ts","../readModels/assertUniqueReadModelIds.ts","../readModels/buildReadModelDefinition.ts","../readModels/deserializeReadModel.ts","../readModels/index.ts","../readModels/indexDecorator.ts","../readModels/readModel.ts","../readModels/rootReadModelTypes.ts","../readModels/for_ReadModelNamingPolicy/given/registered_read_models.ts","../readModels/for_ReadModelWatcher/given/a_kernel_stream.ts","../readModels/for_ReadModelWatcher/given/a_watched_read_model.ts","../readModels/for_ReadModels/given/a_stored_read_model.ts","../reducers/IReducers.ts","../reducers/ReducerEventDispatcher.ts","../reducers/ReducerEventHandler.ts","../reducers/ReducerId.ts","../reducers/Reducers.ts","../reducers/index.ts","../reducers/reducer.ts","../schemas/JsonSchema.ts","../schemas/JsonSchemaGenerator.ts","../schemas/createDeferredSchema.ts","../schemas/index.ts","../schemas/jsonSchemaProperty.ts","../seeding/EventSeeding.ts","../seeding/ICanSeedEvents.ts","../seeding/IEventSeeding.ts","../seeding/IEventSeedingBuilder.ts","../seeding/IEventSeedingScopeBuilder.ts","../seeding/index.ts","../seeding/seeder.ts","../sinks/WellKnownSinks.ts","../sinks/index.ts","../telemetry/ChronicleTelemetryOptions.ts","../telemetry/observeOperation.ts","../telemetry/runInBackgroundContext.ts","../telemetry/spanAttributes.ts","../testing/ConstraintScope.ts","../testing/EventFieldSchema.ts","../testing/EventScenario.ts","../testing/EventScenarioGiven.ts","../testing/EventScenarioGivenBuilder.ts","../testing/EventScenarioOptions.ts","../testing/EventScenarioSeed.ts","../testing/EventScenarioWhen.ts","../testing/EventScenarioWhenBuilder.ts","../testing/IReadModelProcessor.ts","../testing/InProcessConstraints.ts","../testing/InProcessEventSequence.ts","../testing/ReactorDeliveryResult.ts","../testing/ReactorScenario.ts","../testing/ReactorScenarioOptions.ts","../testing/ReadModelScenario.ts","../testing/ReadModelScenarioGiven.ts","../testing/ReadModelScenarioGivenBuilder.ts","../testing/ReadModelState.ts","../testing/RecordedReactorSideEffect.ts","../testing/ReducerReadModelProcessor.ts","../testing/ScenarioEvent.ts","../testing/UnsupportedEventSequenceOperation.ts","../testing/UnsupportedReactorOperation.ts","../testing/UnsupportedReducerOperation.ts","../testing/index.ts","../testing/singleAppendRoute.ts","../testing/projections/ProjectionArithmetic.ts","../testing/projections/ProjectionCapabilities.ts","../testing/projections/ProjectionChildrenCapabilities.ts","../testing/projections/ProjectionExpressionEvaluator.ts","../testing/projections/ProjectionJoinRecord.ts","../testing/projections/ProjectionJoinValidationContext.ts","../testing/projections/ProjectionJoins.ts","../testing/projections/ProjectionJoinsCapabilities.ts","../testing/projections/ProjectionReadModelProcessor.ts","../testing/projections/ProjectionValueConverter.ts","../testing/projections/UnsupportedProjectionOperation.ts","../testing/projections/for_ProjectionCapabilities/given/Changed.ts","../testing/projections/for_ProjectionCapabilities/given/Model.ts","../testing/projections/for_ProjectionCapabilities/given/Removed.ts","../testing/projections/for_ProjectionCapabilities/given/compile.ts","../transactions/IUnitOfWork.ts","../transactions/IUnitOfWorkManager.ts","../transactions/NoUnitOfWorkHasBeenStarted.ts","../transactions/TransactionalAppendOptions.ts","../transactions/TransactionalEventRouting.ts","../transactions/UnitOfWork.ts","../transactions/UnitOfWorkManager.ts","../transactions/index.ts","../types/DecoratorType.ts","../types/TypeDiscoverer.ts","../types/TypeIntrospector.ts","../types/conceptValueType.ts","../types/index.ts","../types/modelBoundProperty.ts","../types/modelBoundPropertyMetadata.ts","../types/propertyDecoratorMetadata.ts","../types/standardDecoratorMetadata.ts","../webhooks/IWebhook.ts","../webhooks/IWebhookDefinitionBuilder.ts","../webhooks/IWebhooks.ts","../webhooks/WebhookDefinitionBuilder.ts","../webhooks/WebhookId.ts","../webhooks/WebhookTargetUrl.ts","../webhooks/Webhooks.ts","../webhooks/index.ts","../webhooks/webhook.ts"],"packageJsons":["../package.json","../../node_modules/@bufbuild/protobuf/dist/esm/package.json","../../node_modules/@bufbuild/protobuf/package.json","../../node_modules/@cratis/chronicle.contracts/package.json","../../node_modules/@cratis/fundamentals/dist/esm/package.json","../../node_modules/@cratis/fundamentals/package.json","../../node_modules/@grpc/grpc-js/package.json","../../node_modules/@grpc/proto-loader/package.json","../../node_modules/@js-sdsl/ordered-map/package.json","../../node_modules/@opentelemetry/api/package.json","../../node_modules/@types/chai/package.json","../../node_modules/@types/deep-eql/package.json","../../node_modules/@types/node/package.json","../../node_modules/@vitest/mocker/package.json","../../node_modules/assertion-error/package.json","../../node_modules/chai/package.json","../../node_modules/esbuild/package.json","../../node_modules/expect-type/package.json","../../node_modules/glob/dist/esm/package.json","../../node_modules/glob/package.json","../../node_modules/long/package.json","../../node_modules/long/umd/package.json","../../node_modules/lru-cache/dist/esm/package.json","../../node_modules/lru-cache/package.json","../../node_modules/minimatch/dist/esm/package.json","../../node_modules/minimatch/package.json","../../node_modules/minipass/dist/esm/package.json","../../node_modules/minipass/package.json","../../node_modules/nice-grpc-common/package.json","../../node_modules/nice-grpc/package.json","../../node_modules/path-scurry/dist/esm/package.json","../../node_modules/path-scurry/package.json","../../node_modules/protobufjs/package.json","../../node_modules/reflect-metadata/package.json","../../node_modules/tinybench/package.json","../../node_modules/ts-error/package.json","../../node_modules/tsx/package.json","../../node_modules/undici-types/package.json","../../node_modules/undici/package.json","../../node_modules/vite/package.json","../../node_modules/vitest/package.json","../../node_modules/yaml/package.json"],"missingPackageJsons":["../../node_modules/@bufbuild/protobuf/dist/esm/codegenv1/package.json","../../node_modules/@bufbuild/protobuf/dist/esm/codegenv2/package.json","../../node_modules/@bufbuild/protobuf/dist/esm/reflect/package.json","../../node_modules/@bufbuild/protobuf/dist/esm/wire/package.json","../../node_modules/@bufbuild/protobuf/dist/esm/wkt/google/package.json","../../node_modules/@bufbuild/protobuf/dist/esm/wkt/google/protobuf/package.json","../../node_modules/@bufbuild/protobuf/dist/esm/wkt/package.json","../../node_modules/@bufbuild/protobuf/wire/package.json","../../node_modules/@cratis/chronicle.contracts/dist/esm/generated/google/package.json","../../node_modules/@cratis/chronicle.contracts/dist/esm/generated/google/protobuf/package.json","../../node_modules/@cratis/chronicle.contracts/dist/esm/generated/package.json","../../node_modules/@cratis/chronicle.contracts/dist/esm/generated/protobuf-net/package.json","../../node_modules/@cratis/chronicle.contracts/dist/esm/package.json","../../node_modules/@cratis/chronicle.contracts/dist/package.json","../../node_modules/@cratis/fundamentals/dist/esm/geospatial/package.json","../../node_modules/@cratis/fundamentals/dist/esm/json/package.json","../../node_modules/@edge-runtime/vm/package.json","../../node_modules/@grpc/grpc-js/build/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/google/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/grpc/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/xds/data/orca/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/xds/data/orca/v3/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/xds/data/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/xds/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/xds/service/orca/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/xds/service/orca/v3/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/xds/service/package.json","../../node_modules/@grpc/grpc-js/build/src/package.json","../../node_modules/@grpc/proto-loader/build/package.json","../../node_modules/@grpc/proto-loader/build/src/package.json","../../node_modules/@js-sdsl/ordered-map/dist/esm/package.json","../../node_modules/@js-sdsl/ordered-map/dist/package.json","../../node_modules/@opentelemetry/api/build/package.json","../../node_modules/@opentelemetry/api/build/src/api/package.json","../../node_modules/@opentelemetry/api/build/src/baggage/internal/package.json","../../node_modules/@opentelemetry/api/build/src/baggage/package.json","../../node_modules/@opentelemetry/api/build/src/common/package.json","../../node_modules/@opentelemetry/api/build/src/context/package.json","../../node_modules/@opentelemetry/api/build/src/diag/package.json","../../node_modules/@opentelemetry/api/build/src/metrics/package.json","../../node_modules/@opentelemetry/api/build/src/package.json","../../node_modules/@opentelemetry/api/build/src/propagation/package.json","../../node_modules/@opentelemetry/api/build/src/trace/internal/package.json","../../node_modules/@opentelemetry/api/build/src/trace/package.json","../../node_modules/@types/assert/package.json","../../node_modules/@types/assert/strict/package.json","../../node_modules/@types/async_hooks/package.json","../../node_modules/@types/buffer/package.json","../../node_modules/@types/child_process/package.json","../../node_modules/@types/cluster/package.json","../../node_modules/@types/console/package.json","../../node_modules/@types/constants/package.json","../../node_modules/@types/crypto/package.json","../../node_modules/@types/dgram/package.json","../../node_modules/@types/diagnostics_channel/package.json","../../node_modules/@types/dns/package.json","../../node_modules/@types/dns/promises/package.json","../../node_modules/@types/domain/package.json","../../node_modules/@types/events/package.json","../../node_modules/@types/fs/package.json","../../node_modules/@types/fs/promises/package.json","../../node_modules/@types/http/package.json","../../node_modules/@types/http2/package.json","../../node_modules/@types/https/package.json","../../node_modules/@types/inspector/package.json","../../node_modules/@types/inspector/promises/package.json","../../node_modules/@types/module/package.json","../../node_modules/@types/net/package.json","../../node_modules/@types/node/assert/package.json","../../node_modules/@types/node/dns/package.json","../../node_modules/@types/node/fs/package.json","../../node_modules/@types/node/inspector/package.json","../../node_modules/@types/node/path/package.json","../../node_modules/@types/node/readline/package.json","../../node_modules/@types/node/stream/package.json","../../node_modules/@types/node/test/package.json","../../node_modules/@types/node/timers/package.json","../../node_modules/@types/node/util/package.json","../../node_modules/@types/node/web-globals/package.json","../../node_modules/@types/node/zlib/package.json","../../node_modules/@types/os/package.json","../../node_modules/@types/path/package.json","../../node_modules/@types/path/posix/package.json","../../node_modules/@types/path/win32/package.json","../../node_modules/@types/perf_hooks/package.json","../../node_modules/@types/process/package.json","../../node_modules/@types/punycode/package.json","../../node_modules/@types/querystring/package.json","../../node_modules/@types/readline/package.json","../../node_modules/@types/readline/promises/package.json","../../node_modules/@types/repl/package.json","../../node_modules/@types/stream/consumers/package.json","../../node_modules/@types/stream/iter/package.json","../../node_modules/@types/stream/package.json","../../node_modules/@types/stream/promises/package.json","../../node_modules/@types/stream/web/package.json","../../node_modules/@types/string_decoder/package.json","../../node_modules/@types/timers/package.json","../../node_modules/@types/timers/promises/package.json","../../node_modules/@types/tls/package.json","../../node_modules/@types/trace_events/package.json","../../node_modules/@types/tty/package.json","../../node_modules/@types/url/package.json","../../node_modules/@types/util/package.json","../../node_modules/@types/util/types/package.json","../../node_modules/@types/v8/package.json","../../node_modules/@types/vm/package.json","../../node_modules/@types/wasi/package.json","../../node_modules/@types/worker_threads/package.json","../../node_modules/@types/zlib/package.json","../../node_modules/@vitejs/devtools/package.json","../../node_modules/@vitest/browser-playwright/package.json","../../node_modules/@vitest/browser-preview/package.json","../../node_modules/@vitest/browser-webdriverio/package.json","../../node_modules/@vitest/coverage-istanbul/package.json","../../node_modules/@vitest/coverage-v8/package.json","../../node_modules/@vitest/mocker/dist/package.json","../../node_modules/@vitest/ui/package.json","../../node_modules/assert/package.json","../../node_modules/assert/strict/package.json","../../node_modules/async_hooks/package.json","../../node_modules/buffer/package.json","../../node_modules/child_process/package.json","../../node_modules/cluster/package.json","../../node_modules/console/package.json","../../node_modules/constants/package.json","../../node_modules/crypto/package.json","../../node_modules/deep-eql/package.json","../../node_modules/dgram/package.json","../../node_modules/diagnostics_channel/package.json","../../node_modules/dns/package.json","../../node_modules/dns/promises/package.json","../../node_modules/domain/package.json","../../node_modules/events/package.json","../../node_modules/expect-type/dist/package.json","../../node_modules/fs/package.json","../../node_modules/fs/promises/package.json","../../node_modules/happy-dom/package.json","../../node_modules/http/package.json","../../node_modules/http2/package.json","../../node_modules/https/package.json","../../node_modules/inspector/package.json","../../node_modules/inspector/promises/package.json","../../node_modules/jiti/package.json","../../node_modules/jsdom/package.json","../../node_modules/less/package.json","../../node_modules/module/package.json","../../node_modules/msw/package.json","../../node_modules/net/package.json","../../node_modules/nice-grpc-common/lib/client/package.json","../../node_modules/nice-grpc-common/lib/package.json","../../node_modules/nice-grpc-common/lib/server/package.json","../../node_modules/nice-grpc/lib/client/package.json","../../node_modules/nice-grpc/lib/package.json","../../node_modules/nice-grpc/lib/server/package.json","../../node_modules/nice-grpc/lib/service-definitions/package.json","../../node_modules/nice-grpc/lib/utils/package.json","../../node_modules/os/package.json","../../node_modules/path/package.json","../../node_modules/path/posix/package.json","../../node_modules/path/win32/package.json","../../node_modules/perf_hooks/package.json","../../node_modules/process/package.json","../../node_modules/protobufjs/ext/descriptor/package.json","../../node_modules/protobufjs/ext/package.json","../../node_modules/punycode/package.json","../../node_modules/querystring/package.json","../../node_modules/readline/package.json","../../node_modules/readline/promises/package.json","../../node_modules/repl/package.json","../../node_modules/sass-embedded/package.json","../../node_modules/sass/package.json","../../node_modules/stream/consumers/package.json","../../node_modules/stream/iter/package.json","../../node_modules/stream/package.json","../../node_modules/stream/promises/package.json","../../node_modules/stream/web/package.json","../../node_modules/string_decoder/package.json","../../node_modules/stylus/package.json","../../node_modules/sugarss/package.json","../../node_modules/terser/package.json","../../node_modules/timers/package.json","../../node_modules/timers/promises/package.json","../../node_modules/tinybench/dist/package.json","../../node_modules/tls/package.json","../../node_modules/trace_events/package.json","../../node_modules/ts-error/lib/package.json","../../node_modules/tty/package.json","../../node_modules/undici/types/package.json","../../node_modules/url/package.json","../../node_modules/util/package.json","../../node_modules/util/types/package.json","../../node_modules/v8/package.json","../../node_modules/vite/dist/node/chunks/package.json","../../node_modules/vite/dist/node/package.json","../../node_modules/vite/dist/package.json","../../node_modules/vite/module-runner/package.json","../../node_modules/vite/types/package.json","../../node_modules/vitest/dist/chunks/package.json","../../node_modules/vitest/dist/package.json","../../node_modules/vm/package.json","../../node_modules/wasi/package.json","../../node_modules/worker_threads/package.json","../../node_modules/zlib/package.json"]}
1
+ {"version":"7.0.2","root":["../ChronicleClient.ts","../ChronicleOptions.ts","../EventStore.ts","../EventStoreName.ts","../EventStoreNamespaceName.ts","../IChronicleClient.ts","../IEventStore.ts","../Metrics.ts","../Tracing.ts","../WellKnownTelemetryNames.ts","../index.ts","../artifacts/ActivatedArtifact.ts","../artifacts/ArtifactActivationContext.ts","../artifacts/ArtifactCompletionFailed.ts","../artifacts/ArtifactDelivery.ts","../artifacts/ArtifactInvocationContext.ts","../artifacts/ArtifactKind.ts","../artifacts/ClientArtifactsActivator.ts","../artifacts/DefaultClientArtifactsProvider.ts","../artifacts/IClientArtifactsProvider.ts","../artifacts/index.ts","../artifacts/validateArtifactSchemas.ts","../artifacts/withActivatedArtifact.ts","../auditing/Causation.ts","../auditing/CausationManager.ts","../auditing/CausationType.ts","../auditing/ICausationManager.ts","../auditing/index.ts","../compliance/ComplianceContracts.ts","../compliance/ComplianceMetadata.ts","../compliance/ComplianceMetadataResolver.ts","../compliance/ComplianceMetadataType.ts","../compliance/IPIIManager.ts","../compliance/PIIManager.ts","../compliance/PIINotSupportedOnEventSourceId.ts","../compliance/index.ts","../compliance/pii.ts","../compliance/resolveEventSubject.ts","../compliance/subject.ts","../confidentiality/EncryptedNotSupportedOnEventSourceId.ts","../confidentiality/EncryptionScope.ts","../confidentiality/PIIAndEncryptedCombinedNotSupported.ts","../confidentiality/SecurityMetadata.ts","../confidentiality/SecurityMetadataResolver.ts","../confidentiality/SecurityMetadataType.ts","../confidentiality/encrypted.ts","../confidentiality/index.ts","../connection/ChronicleConnection.ts","../connection/ChronicleConnectionString.ts","../connection/ChronicleServerAddressResolver.ts","../connection/ChronicleServices.ts","../connection/ChronicleSrvResolutionError.ts","../connection/ChronicleSrvResolver.ts","../connection/CompatibilityPreflight.ts","../connection/ConnectionLifecycle.ts","../connection/DateTimeOffset.ts","../connection/Guid.ts","../connection/ILoadBalancerStrategy.ts","../connection/IncompatibleChronicleServer.ts","../connection/KernelKeepAlive.ts","../connection/LeastConnectionsLoadBalancerStrategy.ts","../connection/LoadBalancerMode.ts","../connection/LoadBalancerStrategyFactory.ts","../connection/RandomLoadBalancerStrategy.ts","../connection/RejectedChronicleCredentials.ts","../connection/RoundRobinLoadBalancerStrategy.ts","../connection/TokenProvider.ts","../connection/TraceContextMiddleware.ts","../connection/callResults.ts","../connection/clientVersion.ts","../connection/encodeExplicitFalse.ts","../connection/fetchOAuthAccessToken.ts","../connection/formatServerAddress.ts","../connection/index.ts","../connection/for_encodeExplicitFalse/wireFields.ts","../correlation/CorrelationId.ts","../correlation/CorrelationIdManager.ts","../correlation/ICorrelationIdAccessor.ts","../correlation/ICorrelationIdSetter.ts","../correlation/index.ts","../eventSequences/AppendError.ts","../eventSequences/AppendOperationsBroadcaster.ts","../eventSequences/AppendOptions.ts","../eventSequences/AppendResult.ts","../eventSequences/AppendedEventWithResult.ts","../eventSequences/CompleteStreamError.ts","../eventSequences/CompleteStreamResult.ts","../eventSequences/ConcurrencyScope.ts","../eventSequences/ConcurrencyViolation.ts","../eventSequences/ConstraintViolation.ts","../eventSequences/EventForEventSourceId.ts","../eventSequences/EventLog.ts","../eventSequences/EventSequence.ts","../eventSequences/EventSequenceId.ts","../eventSequences/EventSequenceNumber.ts","../eventSequences/IEventLog.ts","../eventSequences/IEventSequence.ts","../eventSequences/ITransactionalEventSequence.ts","../eventSequences/NamedTagsWithRegisteredEventSourceNotSupported.ts","../eventSequences/TransactionalEventSequence.ts","../eventSequences/WaitForCompletionOptions.ts","../eventSequences/WaitForCompletionResult.ts","../eventSequences/createAppendNotification.ts","../eventSequences/createAppendResult.ts","../eventSequences/ensureNamedTagBatchIsSupported.ts","../eventSequences/index.ts","../eventSequences/prepareBatchAppend.ts","../eventSequences/prepareSingleAppend.ts","../eventSequences/resolveEventSourceRouting.ts","../eventSources/ConcurrencyDimensions.ts","../eventSources/DuplicateEventSourceName.ts","../eventSources/DuplicateEventStreamName.ts","../eventSources/EventRoutingContradictsEventSource.ts","../eventSources/EventSourceDefinition.ts","../eventSources/EventSources.ts","../eventSources/EventStreamDefinition.ts","../eventSources/EventStreamDoesNotBelongToEventSource.ts","../eventSources/EventStreamRequiresEventSource.ts","../eventSources/IEventSources.ts","../eventSources/ResolvedEventRouting.ts","../eventSources/UnknownEventSource.ts","../eventSources/eventSource.ts","../eventSources/index.ts","../eventStoreSubscriptions/EventStoreSubscriptionBuilder.ts","../eventStoreSubscriptions/EventStoreSubscriptionDefinition.ts","../eventStoreSubscriptions/EventStoreSubscriptionId.ts","../eventStoreSubscriptions/EventStoreSubscriptions.ts","../eventStoreSubscriptions/IEventStoreSubscriptionBuilder.ts","../eventStoreSubscriptions/IEventStoreSubscriptions.ts","../eventStoreSubscriptions/contracts.ts","../eventStoreSubscriptions/index.ts","../events/AppendedEvent.ts","../events/CausationEntry.ts","../events/EventContext.ts","../events/EventType.ts","../events/EventTypeGeneration.ts","../events/EventTypeId.ts","../events/EventTypes.ts","../events/IEventTypes.ts","../events/InvalidNamedTag.ts","../events/NamedTag.ts","../events/Tag.ts","../events/WireEventContext.ts","../events/eventSourceTypeDecorator.ts","../events/eventStreamTypeDecorator.ts","../events/eventTypeDecorator.ts","../events/filterEventsByTagDecorator.ts","../events/handles.ts","../events/index.ts","../events/isRegisteredEvent.ts","../events/mergeNamedTags.ts","../events/mergeTags.ts","../events/tagDecorator.ts","../events/toClientEventContext.ts","../events/constraints/ConstraintBuilder.ts","../events/constraints/ConstraintEventSequences.ts","../events/constraints/ConstraintId.ts","../events/constraints/Constraints.ts","../events/constraints/IConstraint.ts","../events/constraints/IConstraintBuilder.ts","../events/constraints/IConstraints.ts","../events/constraints/IUniqueConstraintBuilder.ts","../events/constraints/UniqueConstraintBuilder.ts","../events/constraints/UniqueOptions.ts","../events/constraints/constraint.ts","../events/constraints/index.ts","../events/constraints/removeConstraint.ts","../events/constraints/unique.ts","../events/constraints/for_Constraints/when_scoping_to_event_sequences/given/registered_constraints.ts","../events/migrations/EventMigrationBuilder.ts","../events/migrations/EventMigrationPropertyBuilder.ts","../events/migrations/EventTypeMigrators.ts","../events/migrations/IEventMigrationBuilder.ts","../events/migrations/IEventMigrationPropertyBuilder.ts","../events/migrations/IEventTypeMigration.ts","../events/migrations/IEventTypeMigrators.ts","../events/migrations/InvalidMigrationGenerationGap.ts","../events/migrations/eventTypeMigration.ts","../events/migrations/index.ts","../externalServices/ExternalServiceBuilder.ts","../externalServices/ExternalServices.ts","../externalServices/IExternalServiceBuilder.ts","../externalServices/IExternalServices.ts","../externalServices/index.ts","../identities/IIdentityManager.ts","../identities/IdentityManager.ts","../identities/index.ts","../identity/IIdentityProvider.ts","../identity/Identity.ts","../identity/IdentityProvider.ts","../identity/index.ts","../jobs/IJobs.ts","../jobs/JobId.ts","../jobs/Jobs.ts","../jobs/index.ts","../logging/ChronicleLogEntry.ts","../logging/ChronicleLogLevel.ts","../logging/DiagChronicleLogger.ts","../logging/IChronicleLogger.ts","../logging/createLogger.ts","../observation/EventHandler.ts","../observation/FailedPartition.ts","../observation/FailedPartitionAttempt.ts","../observation/FailedPartitions.ts","../observation/ICanBeNotifiedWhenPartitionReplayed.ts","../observation/ICanBeNotifiedWhenReplay.ts","../observation/IFailedPartitions.ts","../observation/IObservers.ts","../observation/ObserverId.ts","../observation/ObserverInformation.ts","../observation/ObserverRemovalOutcome.ts","../observation/ObserverRemovalResult.ts","../observation/ObserverRunningState.ts","../observation/ObserverType.ts","../observation/Observers.ts","../observation/createHandlerInstanceValidator.ts","../observation/getEventHandlers.ts","../observation/getInstanceMethods.ts","../observation/index.ts","../observation/notifyReplayLifecycle.ts","../observation/toClientFailedPartition.ts","../observation/toObserverInformation.ts","../observation/toObserverRemovalResult.ts","../observation/toObserverRunningState.ts","../patterns/BehaviorPattern.ts","../patterns/DayOfWeek.ts","../patterns/FacetName.ts","../patterns/FacetSet.ts","../patterns/IPatterns.ts","../patterns/PatternMoment.ts","../patterns/PatternQueryOptions.ts","../patterns/Patterns.ts","../patterns/PatternsAtOptions.ts","../patterns/TimeBucket.ts","../patterns/index.ts","../patterns/toBehaviorPattern.ts","../patterns/toDayOfWeek.ts","../patterns/toOffsetDate.ts","../patterns/toTimeBucket.ts","../projections/CompiledProjectionDefinitions.ts","../projections/GlobalHandlerPropertyNotOnVariant.ts","../projections/IProjections.ts","../projections/InvalidEventContextPropertyError.ts","../projections/ProjectionCapabilityProvenance.ts","../projections/ProjectionDefinitionCompiler.ts","../projections/ProjectionEventSchema.ts","../projections/ProjectionId.ts","../projections/ProjectionQueryResult.ts","../projections/ProjectionState.ts","../projections/Projections.ts","../projections/ResolvedModelBoundMetadata.ts","../projections/UnableToQueryProjection.ts","../projections/VariantMustDeclareEntersOnEvent.ts","../projections/VariantReclassifier.ts","../projections/canonicalStringify.ts","../projections/captureProjectionProvenance.ts","../projections/constantValueExpression.ts","../projections/eventContextPropertyExpression.ts","../projections/eventContractPath.ts","../projections/index.ts","../projections/invalidEventContextPropertyInProjection.ts","../projections/notSetPropertyPath.ts","../projections/declarative/AddBuilder.ts","../projections/declarative/AddChildBuilder.ts","../projections/declarative/AllSetBuilder.ts","../projections/declarative/ChildrenBuilder.ts","../projections/declarative/CompositeKeyBuilder.ts","../projections/declarative/FromAllBuilder.ts","../projections/declarative/FromBuilder.ts","../projections/declarative/FromEveryBuilder.ts","../projections/declarative/IAddBuilder.ts","../projections/declarative/IAddChildBuilder.ts","../projections/declarative/IAllSetBuilder.ts","../projections/declarative/IChildrenBuilder.ts","../projections/declarative/ICompositeKeyBuilder.ts","../projections/declarative/ICompositeKeySetBuilder.ts","../projections/declarative/IFromAllBuilder.ts","../projections/declarative/IFromBuilder.ts","../projections/declarative/IFromEveryBuilder.ts","../projections/declarative/IJoinBuilder.ts","../projections/declarative/INestedBuilder.ts","../projections/declarative/IProjectionBuilder.ts","../projections/declarative/IProjectionBuilderFor.ts","../projections/declarative/IProjectionFor.ts","../projections/declarative/IReadModelPropertiesBuilder.ts","../projections/declarative/IRemovedWithBuilder.ts","../projections/declarative/IRemovedWithJoinBuilder.ts","../projections/declarative/ISetBuilder.ts","../projections/declarative/ISubtractBuilder.ts","../projections/declarative/JoinBuilder.ts","../projections/declarative/NestedBuilder.ts","../projections/declarative/ProjectionBuilderCore.ts","../projections/declarative/ProjectionBuilderFor.ts","../projections/declarative/RemovedWithBuilder.ts","../projections/declarative/RemovedWithJoinBuilder.ts","../projections/declarative/SetBuilder.ts","../projections/declarative/SubtractBuilder.ts","../projections/declarative/index.ts","../projections/declarative/projection.ts","../projections/declarative/projectionBuilderProvenance.ts","../projections/for_ProjectionDefinitionCompiler/given/compile_model_bound.ts","../projections/modelBound/FromAllEventsMetadata.ts","../projections/modelBound/FromEventMetadata.ts","../projections/modelBound/FromEventOptions.ts","../projections/modelBound/addFrom.ts","../projections/modelBound/childrenAndNestedBuilder.ts","../projections/modelBound/childrenFrom.ts","../projections/modelBound/clearWith.ts","../projections/modelBound/count.ts","../projections/modelBound/decrement.ts","../projections/modelBound/entersOn.ts","../projections/modelBound/eventSequence.ts","../projections/modelBound/fromAll.ts","../projections/modelBound/fromAllEvents.ts","../projections/modelBound/fromEvent.ts","../projections/modelBound/fromEvery.ts","../projections/modelBound/globalFor.ts","../projections/modelBound/increment.ts","../projections/modelBound/index.ts","../projections/modelBound/isModelBoundProjection.ts","../projections/modelBound/join.ts","../projections/modelBound/nested.ts","../projections/modelBound/noAutoMap.ts","../projections/modelBound/notRewindable.ts","../projections/modelBound/passive.ts","../projections/modelBound/removedWith.ts","../projections/modelBound/removedWithJoin.ts","../projections/modelBound/setFrom.ts","../projections/modelBound/setFromContext.ts","../projections/modelBound/setValue.ts","../projections/modelBound/subtractFrom.ts","../projections/modelBound/variantOf.ts","../reactors/IReactors.ts","../reactors/ReactorDelivery.ts","../reactors/ReactorDispatcher.ts","../reactors/ReactorId.ts","../reactors/ReactorResultHandler.ts","../reactors/ReactorServices.ts","../reactors/ReactorSideEffects.ts","../reactors/Reactors.ts","../reactors/index.ts","../reactors/onceOnly.ts","../reactors/reactor.ts","../reactors/replay.ts","../reactors/for_Reactors/given/deliver_to_reactor.ts","../readModels/IMaterializedReadModels.ts","../readModels/IReadModelWatcher.ts","../readModels/IReadModels.ts","../readModels/MaterializedReadModels.ts","../readModels/ReadModelChangeContext.ts","../readModels/ReadModelChangeType.ts","../readModels/ReadModelChangeset.ts","../readModels/ReadModelId.ts","../readModels/ReadModelNamingPolicy.ts","../readModels/ReadModelSnapshot.ts","../readModels/ReadModelSubjectResolver.ts","../readModels/ReadModelWatchOptions.ts","../readModels/ReadModelWatcher.ts","../readModels/ReadModels.ts","../readModels/assertUniqueReadModelIds.ts","../readModels/buildReadModelDefinition.ts","../readModels/deserializeReadModel.ts","../readModels/index.ts","../readModels/indexDecorator.ts","../readModels/readModel.ts","../readModels/rootReadModelTypes.ts","../readModels/for_ReadModelNamingPolicy/given/registered_read_models.ts","../readModels/for_ReadModelWatcher/given/a_kernel_stream.ts","../readModels/for_ReadModelWatcher/given/a_watched_read_model.ts","../readModels/for_ReadModels/given/a_stored_read_model.ts","../reducers/IReducers.ts","../reducers/ReducerEventDispatcher.ts","../reducers/ReducerEventHandler.ts","../reducers/ReducerId.ts","../reducers/Reducers.ts","../reducers/index.ts","../reducers/reducer.ts","../schemas/JsonSchema.ts","../schemas/JsonSchemaGenerator.ts","../schemas/createDeferredSchema.ts","../schemas/index.ts","../schemas/jsonSchemaProperty.ts","../seeding/EventSeeding.ts","../seeding/ICanSeedEvents.ts","../seeding/IEventSeeding.ts","../seeding/IEventSeedingBuilder.ts","../seeding/IEventSeedingScopeBuilder.ts","../seeding/index.ts","../seeding/seeder.ts","../sinks/WellKnownSinks.ts","../sinks/index.ts","../telemetry/ChronicleTelemetryOptions.ts","../telemetry/observeOperation.ts","../telemetry/runInBackgroundContext.ts","../telemetry/spanAttributes.ts","../testing/ConstraintScope.ts","../testing/EventFieldSchema.ts","../testing/EventScenario.ts","../testing/EventScenarioGiven.ts","../testing/EventScenarioGivenBuilder.ts","../testing/EventScenarioOptions.ts","../testing/EventScenarioSeed.ts","../testing/EventScenarioWhen.ts","../testing/EventScenarioWhenBuilder.ts","../testing/IReadModelProcessor.ts","../testing/InProcessConstraints.ts","../testing/InProcessEventSequence.ts","../testing/ReactorDeliveryResult.ts","../testing/ReactorScenario.ts","../testing/ReactorScenarioOptions.ts","../testing/ReadModelScenario.ts","../testing/ReadModelScenarioGiven.ts","../testing/ReadModelScenarioGivenBuilder.ts","../testing/ReadModelState.ts","../testing/RecordedReactorSideEffect.ts","../testing/ReducerReadModelProcessor.ts","../testing/ScenarioEvent.ts","../testing/UnsupportedEventSequenceOperation.ts","../testing/UnsupportedReactorOperation.ts","../testing/UnsupportedReducerOperation.ts","../testing/index.ts","../testing/singleAppendRoute.ts","../testing/projections/ProjectionArithmetic.ts","../testing/projections/ProjectionCapabilities.ts","../testing/projections/ProjectionChildrenCapabilities.ts","../testing/projections/ProjectionExpressionEvaluator.ts","../testing/projections/ProjectionJoinRecord.ts","../testing/projections/ProjectionJoinValidationContext.ts","../testing/projections/ProjectionJoins.ts","../testing/projections/ProjectionJoinsCapabilities.ts","../testing/projections/ProjectionReadModelProcessor.ts","../testing/projections/ProjectionValueConverter.ts","../testing/projections/UnsupportedProjectionOperation.ts","../testing/projections/for_ProjectionCapabilities/given/Changed.ts","../testing/projections/for_ProjectionCapabilities/given/Model.ts","../testing/projections/for_ProjectionCapabilities/given/Removed.ts","../testing/projections/for_ProjectionCapabilities/given/compile.ts","../transactions/ConflictingConcurrencyScopesInUnitOfWork.ts","../transactions/IUnitOfWork.ts","../transactions/IUnitOfWorkManager.ts","../transactions/NoUnitOfWorkHasBeenStarted.ts","../transactions/TransactionalAppendOptions.ts","../transactions/TransactionalEventRouting.ts","../transactions/UnitOfWork.ts","../transactions/UnitOfWorkManager.ts","../transactions/concurrencyScopesAreEqual.ts","../transactions/index.ts","../transactions/toEventForEventSourceId.ts","../transactions/for_UnitOfWork/given/a_unit_of_work_with_a_recording_store.ts","../types/DecoratorType.ts","../types/TypeDiscoverer.ts","../types/TypeIntrospector.ts","../types/conceptValueType.ts","../types/index.ts","../types/modelBoundProperty.ts","../types/modelBoundPropertyMetadata.ts","../types/propertyDecoratorMetadata.ts","../types/standardDecoratorMetadata.ts","../webhooks/IWebhook.ts","../webhooks/IWebhookDefinitionBuilder.ts","../webhooks/IWebhooks.ts","../webhooks/WebhookDefinitionBuilder.ts","../webhooks/WebhookId.ts","../webhooks/WebhookTargetUrl.ts","../webhooks/Webhooks.ts","../webhooks/index.ts","../webhooks/webhook.ts"],"packageJsons":["../package.json","../../node_modules/@bufbuild/protobuf/dist/esm/package.json","../../node_modules/@bufbuild/protobuf/package.json","../../node_modules/@cratis/chronicle.contracts/package.json","../../node_modules/@cratis/fundamentals/dist/esm/package.json","../../node_modules/@cratis/fundamentals/package.json","../../node_modules/@grpc/grpc-js/package.json","../../node_modules/@grpc/proto-loader/package.json","../../node_modules/@js-sdsl/ordered-map/package.json","../../node_modules/@opentelemetry/api/package.json","../../node_modules/@types/chai/package.json","../../node_modules/@types/deep-eql/package.json","../../node_modules/@types/node/package.json","../../node_modules/@vitest/mocker/package.json","../../node_modules/assertion-error/package.json","../../node_modules/chai/package.json","../../node_modules/esbuild/package.json","../../node_modules/expect-type/package.json","../../node_modules/glob/dist/esm/package.json","../../node_modules/glob/package.json","../../node_modules/long/package.json","../../node_modules/long/umd/package.json","../../node_modules/lru-cache/dist/esm/package.json","../../node_modules/lru-cache/package.json","../../node_modules/minimatch/dist/esm/package.json","../../node_modules/minimatch/package.json","../../node_modules/minipass/dist/esm/package.json","../../node_modules/minipass/package.json","../../node_modules/nice-grpc-common/package.json","../../node_modules/nice-grpc/package.json","../../node_modules/path-scurry/dist/esm/package.json","../../node_modules/path-scurry/package.json","../../node_modules/protobufjs/package.json","../../node_modules/reflect-metadata/package.json","../../node_modules/tinybench/package.json","../../node_modules/ts-error/package.json","../../node_modules/tsx/package.json","../../node_modules/undici-types/package.json","../../node_modules/undici/package.json","../../node_modules/vite/package.json","../../node_modules/vitest/package.json","../../node_modules/yaml/package.json"],"missingPackageJsons":["../../node_modules/@bufbuild/protobuf/dist/esm/codegenv1/package.json","../../node_modules/@bufbuild/protobuf/dist/esm/codegenv2/package.json","../../node_modules/@bufbuild/protobuf/dist/esm/reflect/package.json","../../node_modules/@bufbuild/protobuf/dist/esm/wire/package.json","../../node_modules/@bufbuild/protobuf/dist/esm/wkt/google/package.json","../../node_modules/@bufbuild/protobuf/dist/esm/wkt/google/protobuf/package.json","../../node_modules/@bufbuild/protobuf/dist/esm/wkt/package.json","../../node_modules/@bufbuild/protobuf/wire/package.json","../../node_modules/@cratis/chronicle.contracts/dist/esm/generated/google/package.json","../../node_modules/@cratis/chronicle.contracts/dist/esm/generated/google/protobuf/package.json","../../node_modules/@cratis/chronicle.contracts/dist/esm/generated/package.json","../../node_modules/@cratis/chronicle.contracts/dist/esm/generated/protobuf-net/package.json","../../node_modules/@cratis/chronicle.contracts/dist/esm/package.json","../../node_modules/@cratis/chronicle.contracts/dist/package.json","../../node_modules/@cratis/fundamentals/dist/esm/geospatial/package.json","../../node_modules/@cratis/fundamentals/dist/esm/json/package.json","../../node_modules/@edge-runtime/vm/package.json","../../node_modules/@grpc/grpc-js/build/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/google/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/grpc/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/xds/data/orca/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/xds/data/orca/v3/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/xds/data/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/xds/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/xds/service/orca/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/xds/service/orca/v3/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/xds/service/package.json","../../node_modules/@grpc/grpc-js/build/src/package.json","../../node_modules/@grpc/proto-loader/build/package.json","../../node_modules/@grpc/proto-loader/build/src/package.json","../../node_modules/@js-sdsl/ordered-map/dist/esm/package.json","../../node_modules/@js-sdsl/ordered-map/dist/package.json","../../node_modules/@opentelemetry/api/build/package.json","../../node_modules/@opentelemetry/api/build/src/api/package.json","../../node_modules/@opentelemetry/api/build/src/baggage/internal/package.json","../../node_modules/@opentelemetry/api/build/src/baggage/package.json","../../node_modules/@opentelemetry/api/build/src/common/package.json","../../node_modules/@opentelemetry/api/build/src/context/package.json","../../node_modules/@opentelemetry/api/build/src/diag/package.json","../../node_modules/@opentelemetry/api/build/src/metrics/package.json","../../node_modules/@opentelemetry/api/build/src/package.json","../../node_modules/@opentelemetry/api/build/src/propagation/package.json","../../node_modules/@opentelemetry/api/build/src/trace/internal/package.json","../../node_modules/@opentelemetry/api/build/src/trace/package.json","../../node_modules/@types/assert/package.json","../../node_modules/@types/assert/strict/package.json","../../node_modules/@types/async_hooks/package.json","../../node_modules/@types/buffer/package.json","../../node_modules/@types/child_process/package.json","../../node_modules/@types/cluster/package.json","../../node_modules/@types/console/package.json","../../node_modules/@types/constants/package.json","../../node_modules/@types/crypto/package.json","../../node_modules/@types/dgram/package.json","../../node_modules/@types/diagnostics_channel/package.json","../../node_modules/@types/dns/package.json","../../node_modules/@types/dns/promises/package.json","../../node_modules/@types/domain/package.json","../../node_modules/@types/events/package.json","../../node_modules/@types/fs/package.json","../../node_modules/@types/fs/promises/package.json","../../node_modules/@types/http/package.json","../../node_modules/@types/http2/package.json","../../node_modules/@types/https/package.json","../../node_modules/@types/inspector/package.json","../../node_modules/@types/inspector/promises/package.json","../../node_modules/@types/module/package.json","../../node_modules/@types/net/package.json","../../node_modules/@types/node/assert/package.json","../../node_modules/@types/node/dns/package.json","../../node_modules/@types/node/fs/package.json","../../node_modules/@types/node/inspector/package.json","../../node_modules/@types/node/path/package.json","../../node_modules/@types/node/readline/package.json","../../node_modules/@types/node/stream/package.json","../../node_modules/@types/node/test/package.json","../../node_modules/@types/node/timers/package.json","../../node_modules/@types/node/util/package.json","../../node_modules/@types/node/web-globals/package.json","../../node_modules/@types/node/zlib/package.json","../../node_modules/@types/os/package.json","../../node_modules/@types/path/package.json","../../node_modules/@types/path/posix/package.json","../../node_modules/@types/path/win32/package.json","../../node_modules/@types/perf_hooks/package.json","../../node_modules/@types/process/package.json","../../node_modules/@types/punycode/package.json","../../node_modules/@types/querystring/package.json","../../node_modules/@types/readline/package.json","../../node_modules/@types/readline/promises/package.json","../../node_modules/@types/repl/package.json","../../node_modules/@types/stream/consumers/package.json","../../node_modules/@types/stream/iter/package.json","../../node_modules/@types/stream/package.json","../../node_modules/@types/stream/promises/package.json","../../node_modules/@types/stream/web/package.json","../../node_modules/@types/string_decoder/package.json","../../node_modules/@types/timers/package.json","../../node_modules/@types/timers/promises/package.json","../../node_modules/@types/tls/package.json","../../node_modules/@types/trace_events/package.json","../../node_modules/@types/tty/package.json","../../node_modules/@types/url/package.json","../../node_modules/@types/util/package.json","../../node_modules/@types/util/types/package.json","../../node_modules/@types/v8/package.json","../../node_modules/@types/vm/package.json","../../node_modules/@types/wasi/package.json","../../node_modules/@types/worker_threads/package.json","../../node_modules/@types/zlib/package.json","../../node_modules/@vitejs/devtools/package.json","../../node_modules/@vitest/browser-playwright/package.json","../../node_modules/@vitest/browser-preview/package.json","../../node_modules/@vitest/browser-webdriverio/package.json","../../node_modules/@vitest/coverage-istanbul/package.json","../../node_modules/@vitest/coverage-v8/package.json","../../node_modules/@vitest/mocker/dist/package.json","../../node_modules/@vitest/ui/package.json","../../node_modules/assert/package.json","../../node_modules/assert/strict/package.json","../../node_modules/async_hooks/package.json","../../node_modules/buffer/package.json","../../node_modules/child_process/package.json","../../node_modules/cluster/package.json","../../node_modules/console/package.json","../../node_modules/constants/package.json","../../node_modules/crypto/package.json","../../node_modules/deep-eql/package.json","../../node_modules/dgram/package.json","../../node_modules/diagnostics_channel/package.json","../../node_modules/dns/package.json","../../node_modules/dns/promises/package.json","../../node_modules/domain/package.json","../../node_modules/events/package.json","../../node_modules/expect-type/dist/package.json","../../node_modules/fs/package.json","../../node_modules/fs/promises/package.json","../../node_modules/happy-dom/package.json","../../node_modules/http/package.json","../../node_modules/http2/package.json","../../node_modules/https/package.json","../../node_modules/inspector/package.json","../../node_modules/inspector/promises/package.json","../../node_modules/jiti/package.json","../../node_modules/jsdom/package.json","../../node_modules/less/package.json","../../node_modules/module/package.json","../../node_modules/msw/package.json","../../node_modules/net/package.json","../../node_modules/nice-grpc-common/lib/client/package.json","../../node_modules/nice-grpc-common/lib/package.json","../../node_modules/nice-grpc-common/lib/server/package.json","../../node_modules/nice-grpc/lib/client/package.json","../../node_modules/nice-grpc/lib/package.json","../../node_modules/nice-grpc/lib/server/package.json","../../node_modules/nice-grpc/lib/service-definitions/package.json","../../node_modules/nice-grpc/lib/utils/package.json","../../node_modules/os/package.json","../../node_modules/path/package.json","../../node_modules/path/posix/package.json","../../node_modules/path/win32/package.json","../../node_modules/perf_hooks/package.json","../../node_modules/process/package.json","../../node_modules/protobufjs/ext/descriptor/package.json","../../node_modules/protobufjs/ext/package.json","../../node_modules/punycode/package.json","../../node_modules/querystring/package.json","../../node_modules/readline/package.json","../../node_modules/readline/promises/package.json","../../node_modules/repl/package.json","../../node_modules/sass-embedded/package.json","../../node_modules/sass/package.json","../../node_modules/stream/consumers/package.json","../../node_modules/stream/iter/package.json","../../node_modules/stream/package.json","../../node_modules/stream/promises/package.json","../../node_modules/stream/web/package.json","../../node_modules/string_decoder/package.json","../../node_modules/stylus/package.json","../../node_modules/sugarss/package.json","../../node_modules/terser/package.json","../../node_modules/timers/package.json","../../node_modules/timers/promises/package.json","../../node_modules/tinybench/dist/package.json","../../node_modules/tls/package.json","../../node_modules/trace_events/package.json","../../node_modules/ts-error/lib/package.json","../../node_modules/tty/package.json","../../node_modules/undici/types/package.json","../../node_modules/url/package.json","../../node_modules/util/package.json","../../node_modules/util/types/package.json","../../node_modules/v8/package.json","../../node_modules/vite/dist/node/chunks/package.json","../../node_modules/vite/dist/node/package.json","../../node_modules/vite/dist/package.json","../../node_modules/vite/module-runner/package.json","../../node_modules/vite/types/package.json","../../node_modules/vitest/dist/chunks/package.json","../../node_modules/vitest/dist/package.json","../../node_modules/vm/package.json","../../node_modules/wasi/package.json","../../node_modules/worker_threads/package.json","../../node_modules/zlib/package.json"]}
@@ -15,7 +15,7 @@ export interface ITransactionalEventSequence {
15
15
  * Adds a single event to the current unit of work.
16
16
  * @param eventSourceId - The identifier of the event source.
17
17
  * @param event - The event to append.
18
- * @param options - Optional registered event source / stream routing and named tags.
18
+ * @param options - Optional append metadata (routing, subject, occurrence time, tags, named tags, concurrency scope) kept with the event until commit.
19
19
  */
20
20
  append(eventSourceId: string, event: object, options?: TransactionalAppendOptions): Promise<void>;
21
21
 
@@ -23,7 +23,7 @@ export interface ITransactionalEventSequence {
23
23
  * Adds multiple events to the current unit of work.
24
24
  * @param eventSourceId - The identifier of the event source.
25
25
  * @param events - The events to append.
26
- * @param options - Optional registered event source / stream routing and named tags applied to every event.
26
+ * @param options - Optional append metadata (routing, subject, occurrence time, tags, named tags, concurrency scope) applied to every event.
27
27
  */
28
28
  appendMany(eventSourceId: string, events: object[], options?: TransactionalAppendOptions): Promise<void>;
29
29
  }
@@ -0,0 +1,29 @@
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
+
4
+ import { beforeEach, chai, describe, it, vi, type Mock } from 'vitest';
5
+ import { EventSequenceId } from '../EventSequenceId.js';
6
+ import type { IEventSequence } from '../IEventSequence.js';
7
+ import type { IUnitOfWorkManager } from '../../transactions/IUnitOfWorkManager.js';
8
+ import type { TransactionalAppendOptions } from '../../transactions/TransactionalAppendOptions.js';
9
+ import { TransactionalEventSequence } from '../TransactionalEventSequence.js';
10
+
11
+ chai.should();
12
+
13
+ describe('when appending many with options to a transactional event sequence', () => {
14
+ const outbox = new EventSequenceId('outbox');
15
+ const options: TransactionalAppendOptions = { subject: 'subject-1', occurred: new Date(0), tags: ['t'], concurrencyScope: { sequenceNumber: 2n } };
16
+ let addEvent: Mock;
17
+
18
+ beforeEach(async () => {
19
+ addEvent = vi.fn();
20
+ const manager = { current: { addEvent } } as unknown as IUnitOfWorkManager;
21
+ const sequence = new TransactionalEventSequence({ id: outbox } as unknown as IEventSequence, manager);
22
+ await sequence.appendMany('a-1', [{ order: 0 }, { order: 1 }], options);
23
+ });
24
+
25
+ it('should enroll every event with the options in order', () => addEvent.mock.calls.should.deep.equal([
26
+ [outbox, 'a-1', { order: 0 }, options],
27
+ [outbox, 'a-1', { order: 1 }, options]
28
+ ]));
29
+ });
@@ -2,6 +2,8 @@
2
2
  // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
3
 
4
4
  import { getEventTypeFor } from '../eventTypeDecorator.js';
5
+ import { EventSequenceId } from '../../eventSequences/EventSequenceId.js';
6
+ import { ConstraintEventSequence, normalizeConstraintEventSequences } from './ConstraintEventSequences.js';
5
7
  import { IConstraintBuilder } from './IConstraintBuilder.js';
6
8
  import { IUniqueConstraintBuilder } from './IUniqueConstraintBuilder.js';
7
9
  import { UniqueConstraintBuilder, UniqueConstraintCapture } from './UniqueConstraintBuilder.js';
@@ -28,6 +30,8 @@ export interface ConstraintCapture {
28
30
  scope: ConstraintScopeCapture;
29
31
  uniqueConstraint?: UniqueConstraintCapture;
30
32
  uniqueEventType?: UniqueEventTypeCapture;
33
+ /** Identifiers of the event sequences the constraint applies to; empty or omitted means every event sequence. */
34
+ eventSequences?: string[];
31
35
  }
32
36
 
33
37
  /**
@@ -63,6 +67,18 @@ export class ConstraintBuilder implements IConstraintBuilder {
63
67
  return this;
64
68
  }
65
69
 
70
+ /** @inheritdoc */
71
+ forEventSequences(...eventSequenceIds: ConstraintEventSequence[]): IConstraintBuilder {
72
+ const eventSequences = normalizeConstraintEventSequences([...(this.capture.eventSequences ?? []), ...eventSequenceIds]);
73
+ if (eventSequences.length > 0) this.capture.eventSequences = eventSequences;
74
+ return this;
75
+ }
76
+
77
+ /** @inheritdoc */
78
+ forEventLog(): IConstraintBuilder {
79
+ return this.forEventSequences(EventSequenceId.eventLog);
80
+ }
81
+
66
82
  /** @inheritdoc */
67
83
  unique(callback: (builder: IUniqueConstraintBuilder) => void): IConstraintBuilder {
68
84
  const uniqueCapture: UniqueConstraintCapture = {
@@ -0,0 +1,41 @@
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
+
4
+ import { EventSequenceId } from '../../eventSequences/EventSequenceId.js';
5
+
6
+ /** An event sequence a constraint can be scoped to, by identifier or by its string value. */
7
+ export type ConstraintEventSequence = EventSequenceId | string;
8
+
9
+ /**
10
+ * Normalizes declared event sequences to distinct, nonblank identifier values in declaration order.
11
+ * @param eventSequences - The declared event sequences.
12
+ * @returns The normalized identifier values.
13
+ */
14
+ export function normalizeConstraintEventSequences(eventSequences: readonly ConstraintEventSequence[]): string[] {
15
+ const values: string[] = [];
16
+ for (const eventSequence of eventSequences) {
17
+ const value = eventSequence instanceof EventSequenceId ? eventSequence.value : eventSequence;
18
+ if (typeof value !== 'string' || value.trim().length === 0 || values.includes(value)) continue;
19
+ values.push(value);
20
+ }
21
+ return values;
22
+ }
23
+
24
+ /**
25
+ * Combines the event sequences declared for one constraint in more than one place.
26
+ * An empty declaration means every event sequence and wins: combining never narrows a constraint that
27
+ * one declaration applies everywhere. Otherwise the result is the distinct union in declaration order.
28
+ * Mirrors ConstraintEventSequences.Combine in the .NET client.
29
+ * @param declarations - The declarations to combine; undefined or empty means every event sequence.
30
+ * @returns The combined declaration, empty for every event sequence.
31
+ */
32
+ export function combineConstraintEventSequences(declarations: ReadonlyArray<readonly string[] | undefined>): string[] {
33
+ if (declarations.length === 0 || declarations.some(declaration => !declaration || declaration.length === 0)) return [];
34
+ const combined: string[] = [];
35
+ for (const declaration of declarations) {
36
+ for (const value of declaration!) {
37
+ if (!combined.includes(value)) combined.push(value);
38
+ }
39
+ }
40
+ return combined;
41
+ }
@@ -15,12 +15,20 @@ import { getUniqueEventMetadata, getUniquePropertyMetadata } from './unique.js';
15
15
  import { getRemovedConstraintNames } from './removeConstraint.js';
16
16
  import { TypeIntrospector } from '../../types/TypeIntrospector.js';
17
17
  import { getEventTypeFor } from '../eventTypeDecorator.js';
18
+ import { combineConstraintEventSequences } from './ConstraintEventSequences.js';
18
19
 
19
20
  /** Resolves the name registered with the Chronicle Kernel. */
20
21
  function wireNameOf(capture: ConstraintCapture): string {
21
22
  return capture.uniqueEventType?.name ?? capture.name;
22
23
  }
23
24
 
25
+ /** Combine another declaration's event sequences into a capture; an empty result means every event sequence. */
26
+ function combineEventSequencesInto(capture: ConstraintCapture, declared: readonly string[] | undefined): void {
27
+ const combined = combineConstraintEventSequences([capture.eventSequences, declared]);
28
+ if (combined.length > 0) capture.eventSequences = combined;
29
+ else delete capture.eventSequences;
30
+ }
31
+
24
32
  const decoratorScope: ConstraintScopeCapture = {
25
33
  perEventSourceType: false,
26
34
  perEventStreamType: false,
@@ -63,6 +71,7 @@ export function compileConstraints(provider: Pick<IClientArtifactsProvider, 'eve
63
71
  for (const id of capture.uniqueEventType.removedWithEventTypeIds ?? []) {
64
72
  if (!removedWith.includes(id)) removedWith.push(id);
65
73
  }
74
+ combineEventSequencesInto(existing, capture.eventSequences);
66
75
  } else if (existing) {
67
76
  throw new Error(`Duplicate constraint name '${name}'.`);
68
77
  } else {
@@ -87,12 +96,14 @@ export function compileConstraints(provider: Pick<IClientArtifactsProvider, 'eve
87
96
  if (!capture) {
88
97
  const builder = new ConstraintBuilder(name);
89
98
  builder.uniqueFor(eventType, eventMetadata.message, name);
99
+ builder.forEventSequences(...(eventMetadata.eventSequences ?? []));
90
100
  capture = builder.capture;
91
101
  captures.set(name, capture);
92
102
  } else if (!capture.uniqueEventType) {
93
103
  throw new Error(`Constraint '${name}' is not a unique event type constraint.`);
94
104
  } else {
95
105
  assertMatchingScope(name, capture.scope, decoratorScope);
106
+ combineEventSequencesInto(capture, eventMetadata.eventSequences);
96
107
  if (eventMetadata.message && !capture.uniqueEventType.message) capture.uniqueEventType.message = eventMetadata.message;
97
108
  capture.uniqueEventType.eventTypeIds ??= [capture.uniqueEventType.eventTypeId];
98
109
  const id = getEventTypeFor(eventType).id.value;
@@ -108,8 +119,11 @@ export function compileConstraints(provider: Pick<IClientArtifactsProvider, 'eve
108
119
  if (!capture) {
109
120
  const builder = new ConstraintBuilder(name);
110
121
  builder.unique(() => {});
122
+ builder.forEventSequences(...(metadata.eventSequences ?? []));
111
123
  capture = builder.capture;
112
124
  captures.set(name, capture);
125
+ } else {
126
+ combineEventSequencesInto(capture, metadata.eventSequences);
113
127
  }
114
128
  if (!capture.uniqueConstraint) throw new Error(`Constraint '${name}' is not a unique property constraint.`);
115
129
  assertMatchingScope(name, capture.scope, decoratorScope);
@@ -188,6 +202,8 @@ export class Constraints implements IConstraints {
188
202
  EventStreamType: capture.scope.perEventStreamType ? '*' : '',
189
203
  EventStreamId: capture.scope.perEventStreamId ? '*' : ''
190
204
  };
205
+ // Empty means every event sequence, which is what the Kernel assumes when the field is omitted.
206
+ const eventSequences = [...new Set(capture.eventSequences ?? [])];
191
207
 
192
208
  if (capture.uniqueConstraint) {
193
209
  const uc = capture.uniqueConstraint;
@@ -210,7 +226,8 @@ export class Constraints implements IConstraints {
210
226
  },
211
227
  Value1: undefined
212
228
  },
213
- Scope: scope
229
+ Scope: scope,
230
+ EventSequences: eventSequences
214
231
  };
215
232
  }
216
233
 
@@ -226,7 +243,8 @@ export class Constraints implements IConstraints {
226
243
  EventTypeIds: uet.eventTypeIds ?? [uet.eventTypeId]
227
244
  }
228
245
  },
229
- Scope: scope
246
+ Scope: scope,
247
+ EventSequences: eventSequences
230
248
  };
231
249
  }
232
250
 
@@ -235,7 +253,8 @@ export class Constraints implements IConstraints {
235
253
  Type: ConstraintType.Unknown,
236
254
  RemovedWith: [],
237
255
  Definition: undefined,
238
- Scope: scope
256
+ Scope: scope,
257
+ EventSequences: eventSequences
239
258
  };
240
259
  });
241
260
 
@@ -1,6 +1,7 @@
1
1
  // Copyright (c) Cratis. All rights reserved.
2
2
  // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
3
 
4
+ import type { ConstraintEventSequence } from './ConstraintEventSequences.js';
4
5
  import { IUniqueConstraintBuilder } from './IUniqueConstraintBuilder.js';
5
6
 
6
7
  /**
@@ -26,6 +27,25 @@ export interface IConstraintBuilder {
26
27
  */
27
28
  perEventStreamId(): IConstraintBuilder;
28
29
 
30
+ /**
31
+ * Applies the constraints defined on this builder only to specific event sequences.
32
+ * By default a constraint applies to every event sequence its event types are appended to, and each
33
+ * sequence keeps its own index. The Kernel neither validates nor indexes a constraint for a sequence it does
34
+ * not apply to, so a fact forwarded to another sequence (such as the outbox) does not claim a value there.
35
+ * It applies to every constraint on this builder wherever in the chain it is called; calling it again adds
36
+ * to the event sequences already declared.
37
+ * @param eventSequenceIds - The event sequences the constraints apply to.
38
+ * @returns This builder for fluent chaining.
39
+ */
40
+ forEventSequences(...eventSequenceIds: ConstraintEventSequence[]): IConstraintBuilder;
41
+
42
+ /**
43
+ * Applies the constraints defined on this builder only to the event log.
44
+ * Shorthand for {@link IConstraintBuilder.forEventSequences} with `EventSequenceId.eventLog`.
45
+ * @returns This builder for fluent chaining.
46
+ */
47
+ forEventLog(): IConstraintBuilder;
48
+
29
49
  /**
30
50
  * Starts building a unique constraint using a fluent builder callback.
31
51
  * @param callback - Callback that configures the unique constraint via {@link IUniqueConstraintBuilder}.