@cratis/chronicle 3.1.0 → 4.0.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 (217) hide show
  1. package/ChronicleClient.ts +4 -3
  2. package/EventStore.ts +4 -3
  3. package/README.md +40 -28
  4. package/compliance/ComplianceContracts.ts +59 -0
  5. package/compliance/IPIIManager.ts +12 -0
  6. package/compliance/PIIManager.spec.ts +50 -0
  7. package/compliance/PIIManager.ts +9 -0
  8. package/compliance/PIINotSupportedOnEventSourceId.ts +21 -0
  9. package/compliance/index.ts +2 -0
  10. package/compliance/pii.spec.ts +37 -0
  11. package/compliance/pii.ts +16 -1
  12. package/compliance/subject.spec.ts +45 -0
  13. package/compliance/subject.ts +64 -0
  14. package/connection/callResults.spec.ts +90 -0
  15. package/connection/callResults.ts +112 -0
  16. package/dist/ChronicleClient.d.ts.map +1 -1
  17. package/dist/ChronicleClient.js +4 -3
  18. package/dist/ChronicleClient.js.map +1 -1
  19. package/dist/EventStore.d.ts.map +1 -1
  20. package/dist/EventStore.js +4 -3
  21. package/dist/EventStore.js.map +1 -1
  22. package/dist/compliance/ComplianceContracts.d.ts +31 -0
  23. package/dist/compliance/ComplianceContracts.d.ts.map +1 -1
  24. package/dist/compliance/ComplianceContracts.js +52 -0
  25. package/dist/compliance/ComplianceContracts.js.map +1 -1
  26. package/dist/compliance/IPIIManager.d.ts +11 -0
  27. package/dist/compliance/IPIIManager.d.ts.map +1 -1
  28. package/dist/compliance/PIIManager.d.ts +2 -0
  29. package/dist/compliance/PIIManager.d.ts.map +1 -1
  30. package/dist/compliance/PIIManager.js +8 -0
  31. package/dist/compliance/PIIManager.js.map +1 -1
  32. package/dist/compliance/PIINotSupportedOnEventSourceId.d.ts +11 -0
  33. package/dist/compliance/PIINotSupportedOnEventSourceId.d.ts.map +1 -0
  34. package/dist/compliance/PIINotSupportedOnEventSourceId.js +19 -0
  35. package/dist/compliance/PIINotSupportedOnEventSourceId.js.map +1 -0
  36. package/dist/compliance/index.d.ts +2 -0
  37. package/dist/compliance/index.d.ts.map +1 -1
  38. package/dist/compliance/index.js +2 -0
  39. package/dist/compliance/index.js.map +1 -1
  40. package/dist/compliance/pii.d.ts.map +1 -1
  41. package/dist/compliance/pii.js +13 -1
  42. package/dist/compliance/pii.js.map +1 -1
  43. package/dist/compliance/subject.d.ts +39 -0
  44. package/dist/compliance/subject.d.ts.map +1 -0
  45. package/dist/compliance/subject.js +58 -0
  46. package/dist/compliance/subject.js.map +1 -0
  47. package/dist/connection/callResults.d.ts +69 -0
  48. package/dist/connection/callResults.d.ts.map +1 -0
  49. package/dist/connection/callResults.js +74 -0
  50. package/dist/connection/callResults.js.map +1 -0
  51. package/dist/eventSequences/AppendOptions.d.ts +8 -0
  52. package/dist/eventSequences/AppendOptions.d.ts.map +1 -1
  53. package/dist/eventSequences/EventForEventSourceId.d.ts +7 -0
  54. package/dist/eventSequences/EventForEventSourceId.d.ts.map +1 -1
  55. package/dist/eventSequences/EventSequence.d.ts.map +1 -1
  56. package/dist/eventSequences/EventSequence.js +17 -6
  57. package/dist/eventSequences/EventSequence.js.map +1 -1
  58. package/dist/events/EventContext.d.ts +3 -0
  59. package/dist/events/EventContext.d.ts.map +1 -1
  60. package/dist/events/Tag.d.ts +10 -0
  61. package/dist/events/Tag.d.ts.map +1 -0
  62. package/dist/events/Tag.js +16 -0
  63. package/dist/events/Tag.js.map +1 -0
  64. package/dist/events/constraints/Constraints.js +3 -3
  65. package/dist/events/constraints/Constraints.js.map +1 -1
  66. package/dist/events/filterEventsByTagDecorator.d.ts +35 -0
  67. package/dist/events/filterEventsByTagDecorator.d.ts.map +1 -0
  68. package/dist/events/filterEventsByTagDecorator.js +48 -0
  69. package/dist/events/filterEventsByTagDecorator.js.map +1 -0
  70. package/dist/events/index.d.ts +4 -0
  71. package/dist/events/index.d.ts.map +1 -1
  72. package/dist/events/index.js +4 -0
  73. package/dist/events/index.js.map +1 -1
  74. package/dist/events/mergeTags.d.ts +12 -0
  75. package/dist/events/mergeTags.d.ts.map +1 -0
  76. package/dist/events/mergeTags.js +26 -0
  77. package/dist/events/mergeTags.js.map +1 -0
  78. package/dist/events/tagDecorator.d.ts +38 -0
  79. package/dist/events/tagDecorator.d.ts.map +1 -0
  80. package/dist/events/tagDecorator.js +54 -0
  81. package/dist/events/tagDecorator.js.map +1 -0
  82. package/dist/jobs/IJobs.d.ts +4 -4
  83. package/dist/jobs/IJobs.d.ts.map +1 -1
  84. package/dist/jobs/Jobs.d.ts +4 -4
  85. package/dist/jobs/Jobs.d.ts.map +1 -1
  86. package/dist/jobs/Jobs.js +12 -10
  87. package/dist/jobs/Jobs.js.map +1 -1
  88. package/dist/observation/ObserverRunningState.d.ts +9 -15
  89. package/dist/observation/ObserverRunningState.d.ts.map +1 -1
  90. package/dist/observation/ObserverRunningState.js +8 -14
  91. package/dist/observation/ObserverRunningState.js.map +1 -1
  92. package/dist/observation/index.d.ts +1 -0
  93. package/dist/observation/index.d.ts.map +1 -1
  94. package/dist/observation/index.js +1 -0
  95. package/dist/observation/index.js.map +1 -1
  96. package/dist/observation/toObserverRunningState.d.ts +9 -0
  97. package/dist/observation/toObserverRunningState.d.ts.map +1 -0
  98. package/dist/observation/toObserverRunningState.js +26 -0
  99. package/dist/observation/toObserverRunningState.js.map +1 -0
  100. package/dist/projections/IProjections.d.ts +71 -1
  101. package/dist/projections/IProjections.d.ts.map +1 -1
  102. package/dist/projections/ProjectionQueryResult.d.ts +8 -0
  103. package/dist/projections/ProjectionQueryResult.d.ts.map +1 -0
  104. package/dist/projections/ProjectionQueryResult.js +4 -0
  105. package/dist/projections/ProjectionQueryResult.js.map +1 -0
  106. package/dist/projections/ProjectionState.d.ts +18 -0
  107. package/dist/projections/ProjectionState.d.ts.map +1 -0
  108. package/dist/projections/ProjectionState.js +4 -0
  109. package/dist/projections/ProjectionState.js.map +1 -0
  110. package/dist/projections/Projections.d.ts +46 -1
  111. package/dist/projections/Projections.d.ts.map +1 -1
  112. package/dist/projections/Projections.js +153 -6
  113. package/dist/projections/Projections.js.map +1 -1
  114. package/dist/projections/UnableToQueryProjection.d.ts +12 -0
  115. package/dist/projections/UnableToQueryProjection.d.ts.map +1 -0
  116. package/dist/projections/UnableToQueryProjection.js +17 -0
  117. package/dist/projections/UnableToQueryProjection.js.map +1 -0
  118. package/dist/projections/index.d.ts +3 -0
  119. package/dist/projections/index.d.ts.map +1 -1
  120. package/dist/projections/index.js +1 -0
  121. package/dist/projections/index.js.map +1 -1
  122. package/dist/projections/modelBound/eventSequence.d.ts +22 -0
  123. package/dist/projections/modelBound/eventSequence.d.ts.map +1 -0
  124. package/dist/projections/modelBound/eventSequence.js +34 -0
  125. package/dist/projections/modelBound/eventSequence.js.map +1 -0
  126. package/dist/projections/modelBound/fromAll.d.ts +26 -0
  127. package/dist/projections/modelBound/fromAll.d.ts.map +1 -0
  128. package/dist/projections/modelBound/fromAll.js +31 -0
  129. package/dist/projections/modelBound/fromAll.js.map +1 -0
  130. package/dist/projections/modelBound/index.d.ts +4 -0
  131. package/dist/projections/modelBound/index.d.ts.map +1 -1
  132. package/dist/projections/modelBound/index.js +3 -0
  133. package/dist/projections/modelBound/index.js.map +1 -1
  134. package/dist/projections/modelBound/noAutoMap.d.ts +26 -0
  135. package/dist/projections/modelBound/noAutoMap.d.ts.map +1 -0
  136. package/dist/projections/modelBound/noAutoMap.js +44 -0
  137. package/dist/projections/modelBound/noAutoMap.js.map +1 -0
  138. package/dist/reactors/Reactors.d.ts.map +1 -1
  139. package/dist/reactors/Reactors.js +7 -3
  140. package/dist/reactors/Reactors.js.map +1 -1
  141. package/dist/readModels/MaterializedReadModels.d.ts +0 -1
  142. package/dist/readModels/MaterializedReadModels.d.ts.map +1 -1
  143. package/dist/readModels/MaterializedReadModels.js +2 -8
  144. package/dist/readModels/MaterializedReadModels.js.map +1 -1
  145. package/dist/readModels/ReadModelSubjectResolver.d.ts +22 -0
  146. package/dist/readModels/ReadModelSubjectResolver.d.ts.map +1 -0
  147. package/dist/readModels/ReadModelSubjectResolver.js +38 -0
  148. package/dist/readModels/ReadModelSubjectResolver.js.map +1 -0
  149. package/dist/readModels/ReadModels.d.ts.map +1 -1
  150. package/dist/readModels/ReadModels.js +7 -7
  151. package/dist/readModels/ReadModels.js.map +1 -1
  152. package/dist/readModels/index.d.ts +1 -0
  153. package/dist/readModels/index.d.ts.map +1 -1
  154. package/dist/readModels/index.js +1 -0
  155. package/dist/readModels/index.js.map +1 -1
  156. package/dist/reducers/Reducers.d.ts.map +1 -1
  157. package/dist/reducers/Reducers.js +21 -3
  158. package/dist/reducers/Reducers.js.map +1 -1
  159. package/dist/schemas/JsonSchema.d.ts +14 -0
  160. package/dist/schemas/JsonSchema.d.ts.map +1 -1
  161. package/dist/schemas/JsonSchemaGenerator.d.ts +61 -5
  162. package/dist/schemas/JsonSchemaGenerator.d.ts.map +1 -1
  163. package/dist/schemas/JsonSchemaGenerator.js +130 -26
  164. package/dist/schemas/JsonSchemaGenerator.js.map +1 -1
  165. package/dist/schemas/index.d.ts +1 -1
  166. package/dist/schemas/index.d.ts.map +1 -1
  167. package/dist/seeding/EventSeeding.d.ts.map +1 -1
  168. package/dist/seeding/EventSeeding.js +3 -1
  169. package/dist/seeding/EventSeeding.js.map +1 -1
  170. package/dist/tsconfig.tsbuildinfo +1 -1
  171. package/eventSequences/AppendOptions.ts +9 -0
  172. package/eventSequences/EventForEventSourceId.ts +9 -0
  173. package/eventSequences/EventSequence.ts +20 -6
  174. package/events/EventContext.ts +4 -0
  175. package/events/Tag.ts +14 -0
  176. package/events/constraints/Constraints.ts +3 -3
  177. package/events/filterEventsByTagDecorator.ts +51 -0
  178. package/events/index.ts +4 -0
  179. package/events/mergeTags.spec.ts +50 -0
  180. package/events/mergeTags.ts +27 -0
  181. package/events/tagDecorator.spec.ts +115 -0
  182. package/events/tagDecorator.ts +59 -0
  183. package/jobs/IJobs.ts +4 -4
  184. package/jobs/Jobs.ts +16 -14
  185. package/observation/ObserverRunningState.ts +9 -18
  186. package/observation/index.ts +1 -0
  187. package/observation/toObserverRunningState.ts +27 -0
  188. package/package.json +25 -10
  189. package/projections/IProjections.ts +81 -1
  190. package/projections/ProjectionQueryResult.ts +10 -0
  191. package/projections/ProjectionState.ts +25 -0
  192. package/projections/Projections.childrenAndNested.spec.ts +1 -1
  193. package/projections/Projections.modelBoundCompleteness.spec.ts +224 -0
  194. package/projections/Projections.operationalSurface.spec.ts +257 -0
  195. package/projections/Projections.spec.ts +1 -1
  196. package/projections/Projections.ts +180 -5
  197. package/projections/UnableToQueryProjection.ts +17 -0
  198. package/projections/index.ts +3 -0
  199. package/projections/modelBound/eventSequence.ts +38 -0
  200. package/projections/modelBound/fromAll.ts +42 -0
  201. package/projections/modelBound/index.ts +4 -0
  202. package/projections/modelBound/noAutoMap.ts +47 -0
  203. package/reactors/Reactors.ts +7 -3
  204. package/readModels/MaterializedReadModels.spec.ts +98 -0
  205. package/readModels/MaterializedReadModels.ts +2 -8
  206. package/readModels/ReadModelSubjectResolver.spec.ts +84 -0
  207. package/readModels/ReadModelSubjectResolver.ts +44 -0
  208. package/readModels/ReadModels.spec.ts +118 -0
  209. package/readModels/ReadModels.ts +7 -7
  210. package/readModels/index.ts +1 -0
  211. package/reducers/Reducers.spec.ts +80 -0
  212. package/reducers/Reducers.ts +22 -3
  213. package/schemas/JsonSchema.ts +16 -0
  214. package/schemas/JsonSchemaGenerator.spec.ts +195 -0
  215. package/schemas/JsonSchemaGenerator.ts +145 -27
  216. package/schemas/index.ts +1 -1
  217. package/seeding/EventSeeding.ts +3 -1
@@ -0,0 +1,16 @@
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
+ * Represents a tag associated with an event, observer, or read model.
5
+ */
6
+ export class Tag {
7
+ value;
8
+ constructor(value) {
9
+ this.value = value;
10
+ }
11
+ /** @inheritdoc */
12
+ toString() {
13
+ return this.value;
14
+ }
15
+ }
16
+ //# sourceMappingURL=Tag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tag.js","sourceRoot":"","sources":["../../events/Tag.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG;;GAEG;AACH,MAAM,OAAO,GAAG;IACS;IAArB,YAAqB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAEtC,kBAAkB;IAClB,QAAQ;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;CACJ"}
@@ -51,7 +51,7 @@ export class Constraints {
51
51
  return {
52
52
  Name: capture.name,
53
53
  Type: ConstraintType.Unique,
54
- RemovedWith: uc.removedWithEventTypeId ?? '',
54
+ RemovedWith: uc.removedWithEventTypeId ? [uc.removedWithEventTypeId] : [],
55
55
  Definition: {
56
56
  Value0: {
57
57
  EventDefinitions: uc.eventDefinitions.map(ed => ({
@@ -70,7 +70,7 @@ export class Constraints {
70
70
  return {
71
71
  Name: uet.name ?? capture.name,
72
72
  Type: ConstraintType.UniqueEventType,
73
- RemovedWith: '',
73
+ RemovedWith: [],
74
74
  Definition: {
75
75
  Value0: undefined,
76
76
  Value1: {
@@ -83,7 +83,7 @@ export class Constraints {
83
83
  return {
84
84
  Name: capture.name,
85
85
  Type: ConstraintType.Unknown,
86
- RemovedWith: '',
86
+ RemovedWith: [],
87
87
  Definition: undefined,
88
88
  Scope: scope
89
89
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Constraints.js","sourceRoot":"","sources":["../../../events/constraints/Constraints.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Constraints.js","sourceRoot":"","sources":["../../../events/constraints/Constraints.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import 'reflect-metadata';
2
+ import { Tag } from './Tag';
3
+ /**
4
+ * TypeScript decorator that restricts a reactor or reducer so that it only handles events
5
+ * that carry a specific tag. This is the TypeScript equivalent of the C# `[FilterEventsByTag]`
6
+ * attribute.
7
+ *
8
+ * Apply this decorator to a `@reactor()` or `@reducer()`-decorated class to filter the observed
9
+ * event stream to events tagged with the given value. Use {@link tag}/{@link tags} when the
10
+ * intent is to *label* an observer for discoverability; use this decorator when the intent is
11
+ * to *filter* which events reach it. Applying the decorator more than once accumulates filter
12
+ * tags - a class handles events carrying any of the applied tags.
13
+ *
14
+ * @param value - The tag value that an event must carry in order to be dispatched to the observer.
15
+ * @returns A class decorator.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * @reactor()
20
+ * @filterEventsByTag('vip')
21
+ * class VipWelcomeReactor {
22
+ * async customerRegistered(event: CustomerRegistered): Promise<void> {
23
+ * console.log(`Welcome VIP customer ${event.emailAddress}`);
24
+ * }
25
+ * }
26
+ * ```
27
+ */
28
+ export declare function filterEventsByTag(value: string): ClassDecorator;
29
+ /**
30
+ * Gets all filter tags applied to a class via {@link filterEventsByTag}.
31
+ * @param target - The class constructor to retrieve filter tags for.
32
+ * @returns The filter tags applied to the class, or an empty array if none are.
33
+ */
34
+ export declare function getFilterTagsFor(target: Function): Tag[];
35
+ //# sourceMappingURL=filterEventsByTagDecorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterEventsByTagDecorator.d.ts","sourceRoot":"","sources":["../../events/filterEventsByTagDecorator.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAM5B;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAM/D;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,QAAQ,GAAG,GAAG,EAAE,CAExD"}
@@ -0,0 +1,48 @@
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 'reflect-metadata';
4
+ import { Tag } from './Tag';
5
+ import { mergeTags } from './mergeTags';
6
+ /** Metadata key used to store the tags a reactor or reducer filters events by. */
7
+ const FILTER_TAGS_METADATA_KEY = 'chronicle:filterEventsByTag';
8
+ /**
9
+ * TypeScript decorator that restricts a reactor or reducer so that it only handles events
10
+ * that carry a specific tag. This is the TypeScript equivalent of the C# `[FilterEventsByTag]`
11
+ * attribute.
12
+ *
13
+ * Apply this decorator to a `@reactor()` or `@reducer()`-decorated class to filter the observed
14
+ * event stream to events tagged with the given value. Use {@link tag}/{@link tags} when the
15
+ * intent is to *label* an observer for discoverability; use this decorator when the intent is
16
+ * to *filter* which events reach it. Applying the decorator more than once accumulates filter
17
+ * tags - a class handles events carrying any of the applied tags.
18
+ *
19
+ * @param value - The tag value that an event must carry in order to be dispatched to the observer.
20
+ * @returns A class decorator.
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * @reactor()
25
+ * @filterEventsByTag('vip')
26
+ * class VipWelcomeReactor {
27
+ * async customerRegistered(event: CustomerRegistered): Promise<void> {
28
+ * console.log(`Welcome VIP customer ${event.emailAddress}`);
29
+ * }
30
+ * }
31
+ * ```
32
+ */
33
+ export function filterEventsByTag(value) {
34
+ return (target) => {
35
+ const existing = Reflect.getMetadata(FILTER_TAGS_METADATA_KEY, target) ?? [];
36
+ const merged = mergeTags(existing, [value]).map(tagValue => new Tag(tagValue));
37
+ Reflect.defineMetadata(FILTER_TAGS_METADATA_KEY, merged, target);
38
+ };
39
+ }
40
+ /**
41
+ * Gets all filter tags applied to a class via {@link filterEventsByTag}.
42
+ * @param target - The class constructor to retrieve filter tags for.
43
+ * @returns The filter tags applied to the class, or an empty array if none are.
44
+ */
45
+ export function getFilterTagsFor(target) {
46
+ return Reflect.getMetadata(FILTER_TAGS_METADATA_KEY, target) ?? [];
47
+ }
48
+ //# sourceMappingURL=filterEventsByTagDecorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterEventsByTagDecorator.js","sourceRoot":"","sources":["../../events/filterEventsByTagDecorator.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,kFAAkF;AAClF,MAAM,wBAAwB,GAAG,6BAA6B,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC3C,OAAO,CAAC,MAAc,EAAE,EAAE;QACtB,MAAM,QAAQ,GAAI,OAAO,CAAC,WAAW,CAAC,wBAAwB,EAAE,MAAM,CAAuB,IAAI,EAAE,CAAC;QACpG,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/E,OAAO,CAAC,cAAc,CAAC,wBAAwB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAgB;IAC7C,OAAQ,OAAO,CAAC,WAAW,CAAC,wBAAwB,EAAE,MAAM,CAAuB,IAAI,EAAE,CAAC;AAC9F,CAAC"}
@@ -8,6 +8,10 @@ export type { CausationEntry } from './CausationEntry';
8
8
  export type { AppendedEvent } from './AppendedEvent';
9
9
  export type { IEventTypes } from './IEventTypes';
10
10
  export { EventTypes } from './EventTypes';
11
+ export { Tag } from './Tag';
12
+ export { tag, tags, getTagsFor } from './tagDecorator';
13
+ export { filterEventsByTag, getFilterTagsFor } from './filterEventsByTagDecorator';
14
+ export { mergeTags } from './mergeTags';
11
15
  export * from './constraints';
12
16
  export * from './migrations';
13
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../events/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjI,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../events/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjI,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
@@ -5,6 +5,10 @@ export { EventTypeId } from './EventTypeId';
5
5
  export { EventTypeGeneration } from './EventTypeGeneration';
6
6
  export { eventType, getEventTypeFor, hasEventType, getEventTypeMetadata, getEventTypeJsonSchemaFor } from './eventTypeDecorator';
7
7
  export { EventTypes } from './EventTypes';
8
+ export { Tag } from './Tag';
9
+ export { tag, tags, getTagsFor } from './tagDecorator';
10
+ export { filterEventsByTag, getFilterTagsFor } from './filterEventsByTagDecorator';
11
+ export { mergeTags } from './mergeTags';
8
12
  export * from './constraints';
9
13
  export * from './migrations';
10
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../events/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAMjI,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../events/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAMjI,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { Tag } from './Tag';
2
+ /**
3
+ * Merges one or more sources of tags - static tags declared on a type, tags carried by an
4
+ * individual event instance, and tags supplied at call time - into a single, distinct list of
5
+ * tag values. Mirrors the .NET client, which merges static, instance, and dynamic tags the
6
+ * same way before sending an append request.
7
+ * @param sources - The tag sources to merge. Each may be a mix of strings and {@link Tag} instances,
8
+ * or undefined when that source contributed no tags.
9
+ * @returns The distinct, merged tag values.
10
+ */
11
+ export declare function mergeTags(...sources: ReadonlyArray<Iterable<string | Tag> | undefined>): string[];
12
+ //# sourceMappingURL=mergeTags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeTags.d.ts","sourceRoot":"","sources":["../../events/mergeTags.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,GAAG,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,MAAM,EAAE,CAYjG"}
@@ -0,0 +1,26 @@
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
+ * Merges one or more sources of tags - static tags declared on a type, tags carried by an
5
+ * individual event instance, and tags supplied at call time - into a single, distinct list of
6
+ * tag values. Mirrors the .NET client, which merges static, instance, and dynamic tags the
7
+ * same way before sending an append request.
8
+ * @param sources - The tag sources to merge. Each may be a mix of strings and {@link Tag} instances,
9
+ * or undefined when that source contributed no tags.
10
+ * @returns The distinct, merged tag values.
11
+ */
12
+ export function mergeTags(...sources) {
13
+ const values = new Set();
14
+ for (const source of sources) {
15
+ if (!source)
16
+ continue;
17
+ for (const entry of source) {
18
+ const value = typeof entry === 'string' ? entry : entry.value;
19
+ if (value.trim().length > 0) {
20
+ values.add(value);
21
+ }
22
+ }
23
+ }
24
+ return [...values];
25
+ }
26
+ //# sourceMappingURL=mergeTags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeTags.js","sourceRoot":"","sources":["../../events/mergeTags.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAIrG;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CAAC,GAAG,OAA0D;IACnF,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;YAC9D,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;AACvB,CAAC"}
@@ -0,0 +1,38 @@
1
+ import 'reflect-metadata';
2
+ import { Tag } from './Tag';
3
+ /**
4
+ * TypeScript decorator that labels an event type, reactor, or reducer with one or more tags.
5
+ * This is the TypeScript equivalent of the C# `[Tag]` attribute.
6
+ *
7
+ * Applying the decorator more than once accumulates tags rather than replacing them, so
8
+ * `@tag('a')` followed by `@tag('b')` on the same class results in both `'a'` and `'b'`.
9
+ *
10
+ * @param values - The tags to apply.
11
+ * @returns A class decorator.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * @eventType()
16
+ * @tag('analytics', 'user-action')
17
+ * class UserLoggedIn {
18
+ * constructor(readonly userId: string) {}
19
+ * }
20
+ * ```
21
+ */
22
+ export declare function tag(...values: string[]): ClassDecorator;
23
+ /**
24
+ * TypeScript decorator that labels an event type, reactor, or reducer with one or more tags.
25
+ * This is the TypeScript equivalent of the C# `[Tags]` attribute, and behaves identically to
26
+ * {@link tag} - use whichever reads more naturally at the call site.
27
+ *
28
+ * @param values - The tags to apply.
29
+ * @returns A class decorator.
30
+ */
31
+ export declare function tags(...values: string[]): ClassDecorator;
32
+ /**
33
+ * Gets all tags applied to a class via {@link tag} or {@link tags}.
34
+ * @param target - The class constructor to retrieve tags for.
35
+ * @returns The tags applied to the class, or an empty array if none are.
36
+ */
37
+ export declare function getTagsFor(target: Function): Tag[];
38
+ //# sourceMappingURL=tagDecorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tagDecorator.d.ts","sourceRoot":"","sources":["../../events/tagDecorator.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAM5B;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,GAAG,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,cAAc,CAEvD;AAED;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,cAAc,CAExD;AAQD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,QAAQ,GAAG,GAAG,EAAE,CAElD"}
@@ -0,0 +1,54 @@
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 'reflect-metadata';
4
+ import { Tag } from './Tag';
5
+ import { mergeTags } from './mergeTags';
6
+ /** Metadata key used to store the tags labeling a class. */
7
+ const TAGS_METADATA_KEY = 'chronicle:tags';
8
+ /**
9
+ * TypeScript decorator that labels an event type, reactor, or reducer with one or more tags.
10
+ * This is the TypeScript equivalent of the C# `[Tag]` attribute.
11
+ *
12
+ * Applying the decorator more than once accumulates tags rather than replacing them, so
13
+ * `@tag('a')` followed by `@tag('b')` on the same class results in both `'a'` and `'b'`.
14
+ *
15
+ * @param values - The tags to apply.
16
+ * @returns A class decorator.
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * @eventType()
21
+ * @tag('analytics', 'user-action')
22
+ * class UserLoggedIn {
23
+ * constructor(readonly userId: string) {}
24
+ * }
25
+ * ```
26
+ */
27
+ export function tag(...values) {
28
+ return (target) => addTags(target, values);
29
+ }
30
+ /**
31
+ * TypeScript decorator that labels an event type, reactor, or reducer with one or more tags.
32
+ * This is the TypeScript equivalent of the C# `[Tags]` attribute, and behaves identically to
33
+ * {@link tag} - use whichever reads more naturally at the call site.
34
+ *
35
+ * @param values - The tags to apply.
36
+ * @returns A class decorator.
37
+ */
38
+ export function tags(...values) {
39
+ return (target) => addTags(target, values);
40
+ }
41
+ function addTags(target, values) {
42
+ const existing = Reflect.getMetadata(TAGS_METADATA_KEY, target) ?? [];
43
+ const merged = mergeTags(existing, values).map(value => new Tag(value));
44
+ Reflect.defineMetadata(TAGS_METADATA_KEY, merged, target);
45
+ }
46
+ /**
47
+ * Gets all tags applied to a class via {@link tag} or {@link tags}.
48
+ * @param target - The class constructor to retrieve tags for.
49
+ * @returns The tags applied to the class, or an empty array if none are.
50
+ */
51
+ export function getTagsFor(target) {
52
+ return Reflect.getMetadata(TAGS_METADATA_KEY, target) ?? [];
53
+ }
54
+ //# sourceMappingURL=tagDecorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tagDecorator.js","sourceRoot":"","sources":["../../events/tagDecorator.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,4DAA4D;AAC5D,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;AAE3C;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,GAAG,CAAC,GAAG,MAAgB;IACnC,OAAO,CAAC,MAAc,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACvD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,IAAI,CAAC,GAAG,MAAgB;IACpC,OAAO,CAAC,MAAc,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,OAAO,CAAC,MAAc,EAAE,MAAgB;IAC7C,MAAM,QAAQ,GAAI,OAAO,CAAC,WAAW,CAAC,iBAAiB,EAAE,MAAM,CAAuB,IAAI,EAAE,CAAC;IAC7F,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IACxE,OAAO,CAAC,cAAc,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC9D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,MAAgB;IACvC,OAAQ,OAAO,CAAC,WAAW,CAAC,iBAAiB,EAAE,MAAM,CAAuB,IAAI,EAAE,CAAC;AACvF,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { Guid } from '@cratis/fundamentals';
2
- import type { Job, JobStep } from '@cratis/chronicle.contracts';
2
+ import type { JobSummaryResponse, JobStepSummaryResponse } from '@cratis/chronicle.contracts';
3
3
  import { JobId } from './JobId';
4
4
  /**
5
5
  * Defines the API for working with jobs in Chronicle.
@@ -25,17 +25,17 @@ export interface IJobs {
25
25
  * @param jobId - The job identifier.
26
26
  * @returns The job, or undefined when not found.
27
27
  */
28
- getJob(jobId: JobId | Guid | string): Promise<Job | undefined>;
28
+ getJob(jobId: JobId | Guid | string): Promise<JobSummaryResponse | undefined>;
29
29
  /**
30
30
  * Gets all jobs for the event store namespace.
31
31
  * @returns All jobs.
32
32
  */
33
- getJobs(): Promise<Job[]>;
33
+ getJobs(): Promise<JobSummaryResponse[]>;
34
34
  /**
35
35
  * Gets all steps for a specific job.
36
36
  * @param jobId - The job identifier.
37
37
  * @returns The job steps.
38
38
  */
39
- getJobSteps(jobId: JobId | Guid | string): Promise<JobStep[]>;
39
+ getJobSteps(jobId: JobId | Guid | string): Promise<JobStepSummaryResponse[]>;
40
40
  }
41
41
  //# sourceMappingURL=IJobs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IJobs.d.ts","sourceRoot":"","sources":["../../jobs/IJobs.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC;;GAEG;AACH,MAAM,WAAW,KAAK;IAClB;;;OAGG;IACH,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElD;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpD;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpD;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC;IAE/D;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAE1B;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;CACjE"}
1
+ {"version":3,"file":"IJobs.d.ts","sourceRoot":"","sources":["../../jobs/IJobs.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC9F,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC;;GAEG;AACH,MAAM,WAAW,KAAK;IAClB;;;OAGG;IACH,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElD;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpD;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpD;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAAC;IAE9E;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAEzC;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC;CAChF"}
@@ -1,4 +1,4 @@
1
- import type { Job, JobStep } from '@cratis/chronicle.contracts';
1
+ import type { JobSummaryResponse, JobStepSummaryResponse } from '@cratis/chronicle.contracts';
2
2
  import { Guid } from '@cratis/fundamentals';
3
3
  import { ChronicleConnection } from '../connection';
4
4
  import { IJobs } from './IJobs';
@@ -24,11 +24,11 @@ export declare class Jobs implements IJobs {
24
24
  /** @inheritdoc */
25
25
  delete(jobId: JobId | Guid | string): Promise<void>;
26
26
  /** @inheritdoc */
27
- getJob(jobId: JobId | Guid | string): Promise<Job | undefined>;
27
+ getJob(jobId: JobId | Guid | string): Promise<JobSummaryResponse | undefined>;
28
28
  /** @inheritdoc */
29
- getJobs(): Promise<Job[]>;
29
+ getJobs(): Promise<JobSummaryResponse[]>;
30
30
  /** @inheritdoc */
31
- getJobSteps(jobId: JobId | Guid | string): Promise<JobStep[]>;
31
+ getJobSteps(jobId: JobId | Guid | string): Promise<JobStepSummaryResponse[]>;
32
32
  private createJobRequest;
33
33
  private normalizeJobId;
34
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Jobs.d.ts","sourceRoot":"","sources":["../../jobs/Jobs.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC;;GAEG;AACH,qBAAa,IAAK,YAAW,KAAK;IAQ1B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAThC;;;;;OAKG;gBAEkB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,mBAAmB;IAGrD,kBAAkB;IACZ,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD,kBAAkB;IACZ,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,kBAAkB;IACZ,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,kBAAkB;IACZ,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;IAKpE,kBAAkB;IACZ,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAS/B,kBAAkB;IACZ,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAKnE,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,cAAc;CASzB"}
1
+ {"version":3,"file":"Jobs.d.ts","sourceRoot":"","sources":["../../jobs/Jobs.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC9F,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC;;GAEG;AACH,qBAAa,IAAK,YAAW,KAAK;IAQ1B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAThC;;;;;OAKG;gBAEkB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,mBAAmB;IAGrD,kBAAkB;IACZ,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD,kBAAkB;IACZ,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,kBAAkB;IACZ,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,kBAAkB;IACZ,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;IAMnF,kBAAkB;IACZ,OAAO,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAS9C,kBAAkB;IACZ,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAKlF,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,cAAc;CASzB"}
package/dist/jobs/Jobs.js CHANGED
@@ -1,7 +1,8 @@
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
  import { Guid } from '@cratis/fundamentals';
4
- import { toContractsGuid } from '../connection/Guid';
4
+ import { ensureCommandSuccess, ensureQuerySuccess, firstQueryResult } from '../connection/callResults';
5
+ import { fromContractsGuid, toContractsGuid } from '../connection/Guid';
5
6
  import { JobId } from './JobId';
6
7
  /**
7
8
  * Implements {@link IJobs}.
@@ -23,33 +24,34 @@ export class Jobs {
23
24
  }
24
25
  /** @inheritdoc */
25
26
  async stop(jobId) {
26
- await this._connection.jobs.stop(this.createJobRequest(jobId));
27
+ ensureCommandSuccess('stop job', await this._connection.jobs.stopJob(this.createJobRequest(jobId)));
27
28
  }
28
29
  /** @inheritdoc */
29
30
  async resume(jobId) {
30
- await this._connection.jobs.resume(this.createJobRequest(jobId));
31
+ ensureCommandSuccess('resume job', await this._connection.jobs.resumeJob(this.createJobRequest(jobId)));
31
32
  }
32
33
  /** @inheritdoc */
33
34
  async delete(jobId) {
34
- await this._connection.jobs.delete(this.createJobRequest(jobId));
35
+ ensureCommandSuccess('delete job', await this._connection.jobs.deleteJob(this.createJobRequest(jobId)));
35
36
  }
36
37
  /** @inheritdoc */
37
38
  async getJob(jobId) {
38
- const result = await this._connection.jobs.getJob(this.createJobRequest(jobId));
39
- return result.Value0;
39
+ const target = this.normalizeJobId(jobId).toString();
40
+ const jobs = await this.getJobs();
41
+ return jobs.find(job => fromContractsGuid(job.Id).toString() === target);
40
42
  }
41
43
  /** @inheritdoc */
42
44
  async getJobs() {
43
- const response = await this._connection.jobs.getJobs({
45
+ const response = await firstQueryResult('get jobs', this._connection.jobs.allJobs({
44
46
  EventStore: this._eventStore,
45
47
  Namespace: this._namespace
46
- });
47
- return response.items ?? [];
48
+ }));
49
+ return ensureQuerySuccess('get jobs', response);
48
50
  }
49
51
  /** @inheritdoc */
50
52
  async getJobSteps(jobId) {
51
53
  const response = await this._connection.jobs.getJobSteps(this.createJobRequest(jobId));
52
- return response.items ?? [];
54
+ return ensureQuerySuccess('get job steps', response);
53
55
  }
54
56
  createJobRequest(jobId) {
55
57
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"Jobs.js","sourceRoot":"","sources":["../../jobs/Jobs.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAGrG,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC;;GAEG;AACH,MAAM,OAAO,IAAI;IAQQ;IACA;IACA;IATrB;;;;;OAKG;IACH,YACqB,WAAmB,EACnB,UAAkB,EAClB,WAAgC;QAFhC,gBAAW,GAAX,WAAW,CAAQ;QACnB,eAAU,GAAV,UAAU,CAAQ;QAClB,gBAAW,GAAX,WAAW,CAAqB;IAClD,CAAC;IAEJ,kBAAkB;IAClB,KAAK,CAAC,IAAI,CAAC,KAA4B;QACnC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,MAAM,CAAC,KAA4B;QACrC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,MAAM,CAAC,KAA4B;QACrC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,MAAM,CAAC,KAA4B;QACrC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;QAChF,OAAO,MAAM,CAAC,MAAM,CAAC;IACzB,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,OAAO;QACT,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;YACjD,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,SAAS,EAAE,IAAI,CAAC,UAAU;SAC7B,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;IAChC,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,WAAW,CAAC,KAA4B;QAC1C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;QACvF,OAAO,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;IAChC,CAAC;IAEO,gBAAgB,CAAC,KAA4B;QACjD,OAAO;YACH,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;SACrD,CAAC;IACN,CAAC;IAEO,cAAc,CAAC,KAA4B;QAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,KAAK,CAAC;QACvB,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ"}
1
+ {"version":3,"file":"Jobs.js","sourceRoot":"","sources":["../../jobs/Jobs.ts"],"names":[],"mappings":"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"}
@@ -4,21 +4,15 @@
4
4
  export declare enum ObserverRunningState {
5
5
  /** The observer is in an unknown state. */
6
6
  Unknown = "Unknown",
7
- /** The observer is subscribing to the event sequence. */
8
- Subscribing = "Subscribing",
9
- /** The observer is replaying events from the beginning. */
10
- Replaying = "Replaying",
11
- /** The observer is resuming after a pause. */
12
- Resuming = "Resuming",
13
- /** The observer is actively processing events. */
7
+ /** The observer is active and waiting for new events. */
14
8
  Active = "Active",
15
- /** The observer is paused and not processing events. */
16
- Paused = "Paused",
17
- /** The observer has stopped processing events. */
18
- Stopped = "Stopped",
19
- /** The observer is in a failed state. */
20
- Failed = "Failed",
21
- /** The observer has been disconnected. */
22
- Disconnected = "Disconnected"
9
+ /** The observer is suspended. */
10
+ Suspended = "Suspended",
11
+ /** The observer is replaying. */
12
+ Replaying = "Replaying",
13
+ /** The observer is disconnected. */
14
+ Disconnected = "Disconnected",
15
+ /** The observer is quarantined. */
16
+ Quarantined = "Quarantined"
23
17
  }
24
18
  //# sourceMappingURL=ObserverRunningState.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ObserverRunningState.d.ts","sourceRoot":"","sources":["../../observation/ObserverRunningState.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,oBAAY,oBAAoB;IAC5B,2CAA2C;IAC3C,OAAO,YAAY;IAEnB,yDAAyD;IACzD,WAAW,gBAAgB;IAE3B,2DAA2D;IAC3D,SAAS,cAAc;IAEvB,8CAA8C;IAC9C,QAAQ,aAAa;IAErB,kDAAkD;IAClD,MAAM,WAAW;IAEjB,wDAAwD;IACxD,MAAM,WAAW;IAEjB,kDAAkD;IAClD,OAAO,YAAY;IAEnB,yCAAyC;IACzC,MAAM,WAAW;IAEjB,0CAA0C;IAC1C,YAAY,iBAAiB;CAChC"}
1
+ {"version":3,"file":"ObserverRunningState.d.ts","sourceRoot":"","sources":["../../observation/ObserverRunningState.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,oBAAY,oBAAoB;IAC5B,2CAA2C;IAC3C,OAAO,YAAY;IAEnB,yDAAyD;IACzD,MAAM,WAAW;IAEjB,iCAAiC;IACjC,SAAS,cAAc;IAEvB,iCAAiC;IACjC,SAAS,cAAc;IAEvB,oCAAoC;IACpC,YAAY,iBAAiB;IAE7B,mCAAmC;IACnC,WAAW,gBAAgB;CAC9B"}
@@ -7,21 +7,15 @@ export var ObserverRunningState;
7
7
  (function (ObserverRunningState) {
8
8
  /** The observer is in an unknown state. */
9
9
  ObserverRunningState["Unknown"] = "Unknown";
10
- /** The observer is subscribing to the event sequence. */
11
- ObserverRunningState["Subscribing"] = "Subscribing";
12
- /** The observer is replaying events from the beginning. */
13
- ObserverRunningState["Replaying"] = "Replaying";
14
- /** The observer is resuming after a pause. */
15
- ObserverRunningState["Resuming"] = "Resuming";
16
- /** The observer is actively processing events. */
10
+ /** The observer is active and waiting for new events. */
17
11
  ObserverRunningState["Active"] = "Active";
18
- /** The observer is paused and not processing events. */
19
- ObserverRunningState["Paused"] = "Paused";
20
- /** The observer has stopped processing events. */
21
- ObserverRunningState["Stopped"] = "Stopped";
22
- /** The observer is in a failed state. */
23
- ObserverRunningState["Failed"] = "Failed";
24
- /** The observer has been disconnected. */
12
+ /** The observer is suspended. */
13
+ ObserverRunningState["Suspended"] = "Suspended";
14
+ /** The observer is replaying. */
15
+ ObserverRunningState["Replaying"] = "Replaying";
16
+ /** The observer is disconnected. */
25
17
  ObserverRunningState["Disconnected"] = "Disconnected";
18
+ /** The observer is quarantined. */
19
+ ObserverRunningState["Quarantined"] = "Quarantined";
26
20
  })(ObserverRunningState || (ObserverRunningState = {}));
27
21
  //# sourceMappingURL=ObserverRunningState.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ObserverRunningState.js","sourceRoot":"","sources":["../../observation/ObserverRunningState.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG;;GAEG;AACH,MAAM,CAAN,IAAY,oBA2BX;AA3BD,WAAY,oBAAoB;IAC5B,2CAA2C;IAC3C,2CAAmB,CAAA;IAEnB,yDAAyD;IACzD,mDAA2B,CAAA;IAE3B,2DAA2D;IAC3D,+CAAuB,CAAA;IAEvB,8CAA8C;IAC9C,6CAAqB,CAAA;IAErB,kDAAkD;IAClD,yCAAiB,CAAA;IAEjB,wDAAwD;IACxD,yCAAiB,CAAA;IAEjB,kDAAkD;IAClD,2CAAmB,CAAA;IAEnB,yCAAyC;IACzC,yCAAiB,CAAA;IAEjB,0CAA0C;IAC1C,qDAA6B,CAAA;AACjC,CAAC,EA3BW,oBAAoB,KAApB,oBAAoB,QA2B/B"}
1
+ {"version":3,"file":"ObserverRunningState.js","sourceRoot":"","sources":["../../observation/ObserverRunningState.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG;;GAEG;AACH,MAAM,CAAN,IAAY,oBAkBX;AAlBD,WAAY,oBAAoB;IAC5B,2CAA2C;IAC3C,2CAAmB,CAAA;IAEnB,yDAAyD;IACzD,yCAAiB,CAAA;IAEjB,iCAAiC;IACjC,+CAAuB,CAAA;IAEvB,iCAAiC;IACjC,+CAAuB,CAAA;IAEvB,oCAAoC;IACpC,qDAA6B,CAAA;IAE7B,mCAAmC;IACnC,mDAA2B,CAAA;AAC/B,CAAC,EAlBW,oBAAoB,KAApB,oBAAoB,QAkB/B"}
@@ -4,6 +4,7 @@ export type { FailedPartition } from './FailedPartition';
4
4
  export type { FailedPartitionAttempt } from './FailedPartitionAttempt';
5
5
  export type { IFailedPartitions } from './IFailedPartitions';
6
6
  export { FailedPartitions } from './FailedPartitions';
7
+ export { toObserverRunningState } from './toObserverRunningState';
7
8
  export type { ICanBeNotifiedWhenReplay } from './ICanBeNotifiedWhenReplay';
8
9
  export type { ICanBeNotifiedWhenPartitionReplayed } from './ICanBeNotifiedWhenPartitionReplayed';
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../observation/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,YAAY,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAC3E,YAAY,EAAE,mCAAmC,EAAE,MAAM,uCAAuC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../observation/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,YAAY,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,YAAY,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAC3E,YAAY,EAAE,mCAAmC,EAAE,MAAM,uCAAuC,CAAC"}
@@ -3,4 +3,5 @@
3
3
  export { ObserverId } from './ObserverId';
4
4
  export { ObserverRunningState } from './ObserverRunningState';
5
5
  export { FailedPartitions } from './FailedPartitions';
6
+ export { toObserverRunningState } from './toObserverRunningState';
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../observation/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../observation/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { ObserverRunningState as ContractObserverRunningState } from '@cratis/chronicle.contracts';
2
+ import { ObserverRunningState } from './ObserverRunningState';
3
+ /**
4
+ * Converts a wire {@link ContractObserverRunningState} into the client {@link ObserverRunningState}.
5
+ * @param state - The wire running state to convert.
6
+ * @returns The converted client running state.
7
+ */
8
+ export declare function toObserverRunningState(state: ContractObserverRunningState): ObserverRunningState;
9
+ //# sourceMappingURL=toObserverRunningState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toObserverRunningState.d.ts","sourceRoot":"","sources":["../../observation/toObserverRunningState.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,IAAI,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AACnG,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,4BAA4B,GAAG,oBAAoB,CAehG"}