@cratis/chronicle 3.1.1 → 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 (194) hide show
  1. package/EventStore.ts +1 -1
  2. package/compliance/ComplianceContracts.ts +59 -0
  3. package/compliance/IPIIManager.ts +12 -0
  4. package/compliance/PIIManager.spec.ts +50 -0
  5. package/compliance/PIIManager.ts +9 -0
  6. package/compliance/PIINotSupportedOnEventSourceId.ts +21 -0
  7. package/compliance/index.ts +2 -0
  8. package/compliance/pii.spec.ts +37 -0
  9. package/compliance/pii.ts +16 -1
  10. package/compliance/subject.spec.ts +45 -0
  11. package/compliance/subject.ts +64 -0
  12. package/dist/EventStore.js +1 -1
  13. package/dist/EventStore.js.map +1 -1
  14. package/dist/compliance/ComplianceContracts.d.ts +31 -0
  15. package/dist/compliance/ComplianceContracts.d.ts.map +1 -1
  16. package/dist/compliance/ComplianceContracts.js +52 -0
  17. package/dist/compliance/ComplianceContracts.js.map +1 -1
  18. package/dist/compliance/IPIIManager.d.ts +11 -0
  19. package/dist/compliance/IPIIManager.d.ts.map +1 -1
  20. package/dist/compliance/PIIManager.d.ts +2 -0
  21. package/dist/compliance/PIIManager.d.ts.map +1 -1
  22. package/dist/compliance/PIIManager.js +8 -0
  23. package/dist/compliance/PIIManager.js.map +1 -1
  24. package/dist/compliance/PIINotSupportedOnEventSourceId.d.ts +11 -0
  25. package/dist/compliance/PIINotSupportedOnEventSourceId.d.ts.map +1 -0
  26. package/dist/compliance/PIINotSupportedOnEventSourceId.js +19 -0
  27. package/dist/compliance/PIINotSupportedOnEventSourceId.js.map +1 -0
  28. package/dist/compliance/index.d.ts +2 -0
  29. package/dist/compliance/index.d.ts.map +1 -1
  30. package/dist/compliance/index.js +2 -0
  31. package/dist/compliance/index.js.map +1 -1
  32. package/dist/compliance/pii.d.ts.map +1 -1
  33. package/dist/compliance/pii.js +13 -1
  34. package/dist/compliance/pii.js.map +1 -1
  35. package/dist/compliance/subject.d.ts +39 -0
  36. package/dist/compliance/subject.d.ts.map +1 -0
  37. package/dist/compliance/subject.js +58 -0
  38. package/dist/compliance/subject.js.map +1 -0
  39. package/dist/eventSequences/AppendOptions.d.ts +8 -0
  40. package/dist/eventSequences/AppendOptions.d.ts.map +1 -1
  41. package/dist/eventSequences/EventForEventSourceId.d.ts +7 -0
  42. package/dist/eventSequences/EventForEventSourceId.d.ts.map +1 -1
  43. package/dist/eventSequences/EventSequence.d.ts.map +1 -1
  44. package/dist/eventSequences/EventSequence.js +17 -6
  45. package/dist/eventSequences/EventSequence.js.map +1 -1
  46. package/dist/events/EventContext.d.ts +3 -0
  47. package/dist/events/EventContext.d.ts.map +1 -1
  48. package/dist/events/Tag.d.ts +10 -0
  49. package/dist/events/Tag.d.ts.map +1 -0
  50. package/dist/events/Tag.js +16 -0
  51. package/dist/events/Tag.js.map +1 -0
  52. package/dist/events/filterEventsByTagDecorator.d.ts +35 -0
  53. package/dist/events/filterEventsByTagDecorator.d.ts.map +1 -0
  54. package/dist/events/filterEventsByTagDecorator.js +48 -0
  55. package/dist/events/filterEventsByTagDecorator.js.map +1 -0
  56. package/dist/events/index.d.ts +4 -0
  57. package/dist/events/index.d.ts.map +1 -1
  58. package/dist/events/index.js +4 -0
  59. package/dist/events/index.js.map +1 -1
  60. package/dist/events/mergeTags.d.ts +12 -0
  61. package/dist/events/mergeTags.d.ts.map +1 -0
  62. package/dist/events/mergeTags.js +26 -0
  63. package/dist/events/mergeTags.js.map +1 -0
  64. package/dist/events/tagDecorator.d.ts +38 -0
  65. package/dist/events/tagDecorator.d.ts.map +1 -0
  66. package/dist/events/tagDecorator.js +54 -0
  67. package/dist/events/tagDecorator.js.map +1 -0
  68. package/dist/observation/ObserverRunningState.d.ts +9 -15
  69. package/dist/observation/ObserverRunningState.d.ts.map +1 -1
  70. package/dist/observation/ObserverRunningState.js +8 -14
  71. package/dist/observation/ObserverRunningState.js.map +1 -1
  72. package/dist/observation/index.d.ts +1 -0
  73. package/dist/observation/index.d.ts.map +1 -1
  74. package/dist/observation/index.js +1 -0
  75. package/dist/observation/index.js.map +1 -1
  76. package/dist/observation/toObserverRunningState.d.ts +9 -0
  77. package/dist/observation/toObserverRunningState.d.ts.map +1 -0
  78. package/dist/observation/toObserverRunningState.js +26 -0
  79. package/dist/observation/toObserverRunningState.js.map +1 -0
  80. package/dist/projections/IProjections.d.ts +71 -1
  81. package/dist/projections/IProjections.d.ts.map +1 -1
  82. package/dist/projections/ProjectionQueryResult.d.ts +8 -0
  83. package/dist/projections/ProjectionQueryResult.d.ts.map +1 -0
  84. package/dist/projections/ProjectionQueryResult.js +4 -0
  85. package/dist/projections/ProjectionQueryResult.js.map +1 -0
  86. package/dist/projections/ProjectionState.d.ts +18 -0
  87. package/dist/projections/ProjectionState.d.ts.map +1 -0
  88. package/dist/projections/ProjectionState.js +4 -0
  89. package/dist/projections/ProjectionState.js.map +1 -0
  90. package/dist/projections/Projections.d.ts +46 -1
  91. package/dist/projections/Projections.d.ts.map +1 -1
  92. package/dist/projections/Projections.js +153 -6
  93. package/dist/projections/Projections.js.map +1 -1
  94. package/dist/projections/UnableToQueryProjection.d.ts +12 -0
  95. package/dist/projections/UnableToQueryProjection.d.ts.map +1 -0
  96. package/dist/projections/UnableToQueryProjection.js +17 -0
  97. package/dist/projections/UnableToQueryProjection.js.map +1 -0
  98. package/dist/projections/index.d.ts +3 -0
  99. package/dist/projections/index.d.ts.map +1 -1
  100. package/dist/projections/index.js +1 -0
  101. package/dist/projections/index.js.map +1 -1
  102. package/dist/projections/modelBound/eventSequence.d.ts +22 -0
  103. package/dist/projections/modelBound/eventSequence.d.ts.map +1 -0
  104. package/dist/projections/modelBound/eventSequence.js +34 -0
  105. package/dist/projections/modelBound/eventSequence.js.map +1 -0
  106. package/dist/projections/modelBound/fromAll.d.ts +26 -0
  107. package/dist/projections/modelBound/fromAll.d.ts.map +1 -0
  108. package/dist/projections/modelBound/fromAll.js +31 -0
  109. package/dist/projections/modelBound/fromAll.js.map +1 -0
  110. package/dist/projections/modelBound/index.d.ts +4 -0
  111. package/dist/projections/modelBound/index.d.ts.map +1 -1
  112. package/dist/projections/modelBound/index.js +3 -0
  113. package/dist/projections/modelBound/index.js.map +1 -1
  114. package/dist/projections/modelBound/noAutoMap.d.ts +26 -0
  115. package/dist/projections/modelBound/noAutoMap.d.ts.map +1 -0
  116. package/dist/projections/modelBound/noAutoMap.js +44 -0
  117. package/dist/projections/modelBound/noAutoMap.js.map +1 -0
  118. package/dist/reactors/Reactors.d.ts.map +1 -1
  119. package/dist/reactors/Reactors.js +7 -3
  120. package/dist/reactors/Reactors.js.map +1 -1
  121. package/dist/readModels/MaterializedReadModels.d.ts +0 -1
  122. package/dist/readModels/MaterializedReadModels.d.ts.map +1 -1
  123. package/dist/readModels/MaterializedReadModels.js +2 -8
  124. package/dist/readModels/MaterializedReadModels.js.map +1 -1
  125. package/dist/readModels/ReadModelSubjectResolver.d.ts +22 -0
  126. package/dist/readModels/ReadModelSubjectResolver.d.ts.map +1 -0
  127. package/dist/readModels/ReadModelSubjectResolver.js +38 -0
  128. package/dist/readModels/ReadModelSubjectResolver.js.map +1 -0
  129. package/dist/readModels/ReadModels.d.ts.map +1 -1
  130. package/dist/readModels/ReadModels.js +7 -7
  131. package/dist/readModels/ReadModels.js.map +1 -1
  132. package/dist/readModels/index.d.ts +1 -0
  133. package/dist/readModels/index.d.ts.map +1 -1
  134. package/dist/readModels/index.js +1 -0
  135. package/dist/readModels/index.js.map +1 -1
  136. package/dist/reducers/Reducers.d.ts.map +1 -1
  137. package/dist/reducers/Reducers.js +21 -3
  138. package/dist/reducers/Reducers.js.map +1 -1
  139. package/dist/schemas/JsonSchema.d.ts +14 -0
  140. package/dist/schemas/JsonSchema.d.ts.map +1 -1
  141. package/dist/schemas/JsonSchemaGenerator.d.ts +61 -5
  142. package/dist/schemas/JsonSchemaGenerator.d.ts.map +1 -1
  143. package/dist/schemas/JsonSchemaGenerator.js +130 -26
  144. package/dist/schemas/JsonSchemaGenerator.js.map +1 -1
  145. package/dist/schemas/index.d.ts +1 -1
  146. package/dist/schemas/index.d.ts.map +1 -1
  147. package/dist/seeding/EventSeeding.d.ts.map +1 -1
  148. package/dist/seeding/EventSeeding.js +3 -1
  149. package/dist/seeding/EventSeeding.js.map +1 -1
  150. package/dist/tsconfig.tsbuildinfo +1 -1
  151. package/eventSequences/AppendOptions.ts +9 -0
  152. package/eventSequences/EventForEventSourceId.ts +9 -0
  153. package/eventSequences/EventSequence.ts +20 -6
  154. package/events/EventContext.ts +4 -0
  155. package/events/Tag.ts +14 -0
  156. package/events/filterEventsByTagDecorator.ts +51 -0
  157. package/events/index.ts +4 -0
  158. package/events/mergeTags.spec.ts +50 -0
  159. package/events/mergeTags.ts +27 -0
  160. package/events/tagDecorator.spec.ts +115 -0
  161. package/events/tagDecorator.ts +59 -0
  162. package/observation/ObserverRunningState.ts +9 -18
  163. package/observation/index.ts +1 -0
  164. package/observation/toObserverRunningState.ts +27 -0
  165. package/package.json +8 -8
  166. package/projections/IProjections.ts +81 -1
  167. package/projections/ProjectionQueryResult.ts +10 -0
  168. package/projections/ProjectionState.ts +25 -0
  169. package/projections/Projections.childrenAndNested.spec.ts +1 -1
  170. package/projections/Projections.modelBoundCompleteness.spec.ts +224 -0
  171. package/projections/Projections.operationalSurface.spec.ts +257 -0
  172. package/projections/Projections.spec.ts +1 -1
  173. package/projections/Projections.ts +180 -5
  174. package/projections/UnableToQueryProjection.ts +17 -0
  175. package/projections/index.ts +3 -0
  176. package/projections/modelBound/eventSequence.ts +38 -0
  177. package/projections/modelBound/fromAll.ts +42 -0
  178. package/projections/modelBound/index.ts +4 -0
  179. package/projections/modelBound/noAutoMap.ts +47 -0
  180. package/reactors/Reactors.ts +7 -3
  181. package/readModels/MaterializedReadModels.spec.ts +98 -0
  182. package/readModels/MaterializedReadModels.ts +2 -8
  183. package/readModels/ReadModelSubjectResolver.spec.ts +84 -0
  184. package/readModels/ReadModelSubjectResolver.ts +44 -0
  185. package/readModels/ReadModels.spec.ts +118 -0
  186. package/readModels/ReadModels.ts +7 -7
  187. package/readModels/index.ts +1 -0
  188. package/reducers/Reducers.spec.ts +80 -0
  189. package/reducers/Reducers.ts +22 -3
  190. package/schemas/JsonSchema.ts +16 -0
  191. package/schemas/JsonSchemaGenerator.spec.ts +195 -0
  192. package/schemas/JsonSchemaGenerator.ts +145 -27
  193. package/schemas/index.ts +1 -1
  194. package/seeding/EventSeeding.ts +3 -1
@@ -1,27 +1,72 @@
1
+ import { Constructor } from '@cratis/fundamentals';
1
2
  import { IClientArtifactsProvider } from '../artifacts';
2
3
  import { ChronicleConnection } from '../connection';
4
+ import { JobId } from '../jobs/JobId';
5
+ import { FailedPartition } from '../observation/FailedPartition';
3
6
  import { IProjections } from './IProjections';
7
+ import { ProjectionId } from './ProjectionId';
8
+ import { ProjectionQueryResult } from './ProjectionQueryResult';
9
+ import { ProjectionState } from './ProjectionState';
4
10
  /**
5
11
  * Implements {@link IProjections}, managing discovery and registration of projections
6
12
  * with the Chronicle Kernel.
7
13
  */
8
14
  export declare class Projections implements IProjections {
9
15
  private readonly _eventStore;
16
+ private readonly _namespace;
10
17
  private readonly _connection;
11
18
  private readonly _clientArtifacts;
12
19
  private readonly _defaultSinkTypeId;
13
20
  private readonly _declarative;
14
21
  private readonly _modelBound;
22
+ private readonly _failedPartitions;
15
23
  private readonly _logger;
16
24
  /**
17
25
  * Creates a new {@link Projections} instance.
26
+ * @param _eventStore - The event store name.
27
+ * @param _namespace - The event store namespace.
28
+ * @param _connection - Chronicle connection.
18
29
  * @param _clientArtifacts - Provider for discovered client artifact types.
30
+ * @param _defaultSinkTypeId - The identifier of the default read model sink.
19
31
  */
20
- constructor(_eventStore: string, _connection: ChronicleConnection, _clientArtifacts: IClientArtifactsProvider, _defaultSinkTypeId: string);
32
+ constructor(_eventStore: string, _namespace: string, _connection: ChronicleConnection, _clientArtifacts: IClientArtifactsProvider, _defaultSinkTypeId: string);
21
33
  /** @inheritdoc */
22
34
  discover(): Promise<void>;
23
35
  /** @inheritdoc */
24
36
  register(): Promise<void>;
37
+ /** @inheritdoc */
38
+ hasFor(projectionId: ProjectionId | string): boolean;
39
+ /** @inheritdoc */
40
+ hasForModel(readModelType: Constructor): boolean;
41
+ /** @inheritdoc */
42
+ getProjectionIdFor(readModelType: Constructor): ProjectionId;
43
+ /** @inheritdoc */
44
+ getStateFor(projectionId: ProjectionId | string): Promise<ProjectionState>;
45
+ /** @inheritdoc */
46
+ getStateForModel(readModelType: Constructor): Promise<ProjectionState>;
47
+ /** @inheritdoc */
48
+ getFailedPartitionsForModel(readModelType: Constructor): Promise<FailedPartition[]>;
49
+ /** @inheritdoc */
50
+ replay(projectionId: ProjectionId | string): Promise<JobId>;
51
+ /** @inheritdoc */
52
+ replayForModel(readModelType: Constructor): Promise<JobId>;
53
+ /** @inheritdoc */
54
+ query(declaration: string, eventSequenceId?: string): Promise<ProjectionQueryResult>;
55
+ private toProjectionIdValue;
56
+ /**
57
+ * Resolves the {@link ProjectionId} of the projection that maintains a specific read model type,
58
+ * from what has already been discovered.
59
+ * @param readModelType - The read model type to resolve for.
60
+ * @returns The resolved {@link ProjectionId}.
61
+ */
62
+ private resolveProjectionIdForModel;
63
+ /**
64
+ * Resolves the event sequence identifier a discovered projection reads from, without requiring
65
+ * its full definition to have been built.
66
+ * @param projectionId - The projection identifier to resolve for.
67
+ * @returns The resolved event sequence identifier.
68
+ */
69
+ private resolveEventSequenceIdFor;
25
70
  private registerWithRetry;
26
71
  private buildReadModelDefinitions;
27
72
  private getReadModelSchema;
@@ -1 +1 @@
1
- {"version":3,"file":"Projections.d.ts","sourceRoot":"","sources":["../../projections/Projections.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAMpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AA+B9C;;;GAGG;AACH,qBAAa,WAAY,YAAW,YAAY;IAWxC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAbvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAC/D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkC;IAE9D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8E;IAEtG;;;OAGG;gBAEkB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,mBAAmB,EAChC,gBAAgB,EAAE,wBAAwB,EAC1C,kBAAkB,EAAE,MAAM;IAG/C,kBAAkB;IACZ,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAoC/B,kBAAkB;IACZ,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;YAiCjB,iBAAiB;IA8B/B,OAAO,CAAC,yBAAyB;IAmCjC,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,0BAA0B;IA6BlC,OAAO,CAAC,wBAAwB;IAoBhC,OAAO,CAAC,yBAAyB;IAwHjC,OAAO,CAAC,yBAAyB;IAcjC,OAAO,CAAC,eAAe;IAuBvB;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;CASnC"}
1
+ {"version":3,"file":"Projections.d.ts","sourceRoot":"","sources":["../../projections/Projections.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAQ,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAKpD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAKjE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAuB9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAcpD;;;GAGG;AACH,qBAAa,WAAY,YAAW,YAAY;IAgBxC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAnBvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAC/D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkC;IAC9D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmB;IAErD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8E;IAEtG;;;;;;;OAOG;gBAEkB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,mBAAmB,EAChC,gBAAgB,EAAE,wBAAwB,EAC1C,kBAAkB,EAAE,MAAM;IAK/C,kBAAkB;IACZ,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAoC/B,kBAAkB;IACZ,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAiC/B,kBAAkB;IAClB,MAAM,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,GAAG,OAAO;IAKpD,kBAAkB;IAClB,WAAW,CAAC,aAAa,EAAE,WAAW,GAAG,OAAO;IAShD,kBAAkB;IAClB,kBAAkB,CAAC,aAAa,EAAE,WAAW,GAAG,YAAY;IAI5D,kBAAkB;IACZ,WAAW,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAoBhF,kBAAkB;IAClB,gBAAgB,CAAC,aAAa,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC;IAItE,kBAAkB;IAClB,2BAA2B,CAAC,aAAa,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAKnF,kBAAkB;IACZ,MAAM,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAgBjE,kBAAkB;IAClB,cAAc,CAAC,aAAa,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;IAI1D,kBAAkB;IACZ,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,GAAE,MAAuC,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAiB1H,OAAO,CAAC,mBAAmB;IAI3B;;;;;OAKG;IACH,OAAO,CAAC,2BAA2B;IAmBnC;;;;;OAKG;IACH,OAAO,CAAC,yBAAyB;YAcnB,iBAAiB;IA8B/B,OAAO,CAAC,yBAAyB;IAmCjC,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,0BAA0B;IA6BlC,OAAO,CAAC,wBAAwB;IAoBhC,OAAO,CAAC,yBAAyB;IAoIjC,OAAO,CAAC,yBAAyB;IAcjC,OAAO,CAAC,eAAe;IAuBvB;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;CASnC"}
@@ -6,42 +6,59 @@ import { Guid } from '@cratis/fundamentals';
6
6
  import { toContractsGuid } from '../connection/Guid';
7
7
  import { WellKnownSinks } from '../sinks';
8
8
  import { EventSequenceId } from '../eventSequences/EventSequenceId';
9
+ import { EventSequenceNumber } from '../eventSequences/EventSequenceNumber';
10
+ import { JobId } from '../jobs/JobId';
11
+ import { FailedPartitions } from '../observation/FailedPartitions';
12
+ import { toObserverRunningState } from '../observation/toObserverRunningState';
9
13
  import { getReadModelMetadata } from '../readModels';
10
14
  import { TypeIntrospector } from '../types';
11
15
  import { getProjectionMetadata } from './declarative/projection';
12
16
  import { ProjectionBuilderFor } from './declarative/ProjectionBuilderFor';
13
- import { applyPropertyMappings, buildChildrenEntry, buildNestedEntry, getEventTypeMapKey, toContractEventType } from './modelBound/childrenAndNestedBuilder';
17
+ import { applyPropertyMappings, buildChildrenEntry, buildNestedEntry, ensureFromEntry, getEventTypeMapKey, toContractEventType } from './modelBound/childrenAndNestedBuilder';
14
18
  import { getChildrenFromMetadata } from './modelBound/childrenFrom';
19
+ import { getClearWithPropertyMetadata } from './modelBound/clearWith';
20
+ import { getEventSequenceMetadata } from './modelBound/eventSequence';
21
+ import { getFromAllMetadata } from './modelBound/fromAll';
15
22
  import { getFromEveryMetadata } from './modelBound/fromEvery';
16
23
  import { getFromEventMetadata, hasFromEventMetadata } from './modelBound/fromEvent';
17
24
  import { getJoinMetadata } from './modelBound/join';
25
+ import { isNoAutoMap, isPropertyNoAutoMap } from './modelBound/noAutoMap';
18
26
  import { ProjectionId } from './ProjectionId';
19
27
  import { isNested } from './modelBound/nested';
20
28
  import { isNotRewindable } from './modelBound/notRewindable';
21
29
  import { isPassive } from './modelBound/passive';
22
30
  import { getRemovedWithClassMetadata, getRemovedWithPropertyMetadata } from './modelBound/removedWith';
23
31
  import { getRemovedWithJoinClassMetadata, getRemovedWithJoinPropertyMetadata } from './modelBound/removedWithJoin';
32
+ import { UnableToQueryProjection } from './UnableToQueryProjection';
24
33
  /**
25
34
  * Implements {@link IProjections}, managing discovery and registration of projections
26
35
  * with the Chronicle Kernel.
27
36
  */
28
37
  export class Projections {
29
38
  _eventStore;
39
+ _namespace;
30
40
  _connection;
31
41
  _clientArtifacts;
32
42
  _defaultSinkTypeId;
33
43
  _declarative = new Map();
34
44
  _modelBound = new Map();
45
+ _failedPartitions;
35
46
  _logger = diag.createComponentLogger({ namespace: '@cratis/chronicle/projections' });
36
47
  /**
37
48
  * Creates a new {@link Projections} instance.
49
+ * @param _eventStore - The event store name.
50
+ * @param _namespace - The event store namespace.
51
+ * @param _connection - Chronicle connection.
38
52
  * @param _clientArtifacts - Provider for discovered client artifact types.
53
+ * @param _defaultSinkTypeId - The identifier of the default read model sink.
39
54
  */
40
- constructor(_eventStore, _connection, _clientArtifacts, _defaultSinkTypeId) {
55
+ constructor(_eventStore, _namespace, _connection, _clientArtifacts, _defaultSinkTypeId) {
41
56
  this._eventStore = _eventStore;
57
+ this._namespace = _namespace;
42
58
  this._connection = _connection;
43
59
  this._clientArtifacts = _clientArtifacts;
44
60
  this._defaultSinkTypeId = _defaultSinkTypeId;
61
+ this._failedPartitions = new FailedPartitions(_eventStore, _namespace, _connection);
45
62
  }
46
63
  /** @inheritdoc */
47
64
  async discover() {
@@ -101,6 +118,125 @@ export class Projections {
101
118
  await this.registerWithRetry(projection, identifier);
102
119
  }
103
120
  }
121
+ /** @inheritdoc */
122
+ hasFor(projectionId) {
123
+ const id = this.toProjectionIdValue(projectionId);
124
+ return this._declarative.has(id) || this._modelBound.has(id);
125
+ }
126
+ /** @inheritdoc */
127
+ hasForModel(readModelType) {
128
+ try {
129
+ this.resolveProjectionIdForModel(readModelType);
130
+ return true;
131
+ }
132
+ catch {
133
+ return false;
134
+ }
135
+ }
136
+ /** @inheritdoc */
137
+ getProjectionIdFor(readModelType) {
138
+ return this.resolveProjectionIdForModel(readModelType);
139
+ }
140
+ /** @inheritdoc */
141
+ async getStateFor(projectionId) {
142
+ const id = this.toProjectionIdValue(projectionId);
143
+ const eventSequenceId = this.resolveEventSequenceIdFor(id);
144
+ const response = await this._connection.observers.getObserverInformation({
145
+ EventStore: this._eventStore,
146
+ Namespace: this._namespace,
147
+ ObserverId: id,
148
+ EventSequenceId: eventSequenceId
149
+ });
150
+ return {
151
+ runningState: toObserverRunningState(response.RunningState),
152
+ isSubscribed: response.IsSubscribed,
153
+ nextEventSequenceNumber: new EventSequenceNumber(response.NextEventSequenceNumber),
154
+ lastHandledEventSequenceNumber: new EventSequenceNumber(response.LastHandledEventSequenceNumber),
155
+ tailEventSequenceNumber: new EventSequenceNumber(response.TailEventSequenceNumber)
156
+ };
157
+ }
158
+ /** @inheritdoc */
159
+ getStateForModel(readModelType) {
160
+ return this.getStateFor(this.resolveProjectionIdForModel(readModelType));
161
+ }
162
+ /** @inheritdoc */
163
+ getFailedPartitionsForModel(readModelType) {
164
+ const projectionId = this.resolveProjectionIdForModel(readModelType);
165
+ return this._failedPartitions.getFailedPartitionsFor(projectionId.value);
166
+ }
167
+ /** @inheritdoc */
168
+ async replay(projectionId) {
169
+ const id = this.toProjectionIdValue(projectionId);
170
+ const response = await this._connection.observers.replay({
171
+ EventStore: this._eventStore,
172
+ Namespace: this._namespace,
173
+ ObserverId: id,
174
+ // The kernel resolves the observer's own event sequence from its identifier - it does not
175
+ // need to be told which one to replay.
176
+ EventSequenceId: ''
177
+ });
178
+ return response.JobId ? JobId.from(response.JobId) : JobId.from(Guid.empty);
179
+ }
180
+ /** @inheritdoc */
181
+ replayForModel(readModelType) {
182
+ return this.replay(this.resolveProjectionIdForModel(readModelType));
183
+ }
184
+ /** @inheritdoc */
185
+ async query(declaration, eventSequenceId = EventSequenceId.eventLog.value) {
186
+ const result = await this._connection.projections.preview({
187
+ EventStore: this._eventStore,
188
+ Namespace: this._namespace,
189
+ EventSequenceId: eventSequenceId,
190
+ Declaration: declaration
191
+ });
192
+ if (result.Value1) {
193
+ throw new UnableToQueryProjection(result.Value1.Errors.map(error => error.Message));
194
+ }
195
+ return {
196
+ readModelEntries: result.Value0?.ReadModelEntries ?? []
197
+ };
198
+ }
199
+ toProjectionIdValue(projectionId) {
200
+ return typeof projectionId === 'string' ? projectionId : projectionId.value;
201
+ }
202
+ /**
203
+ * Resolves the {@link ProjectionId} of the projection that maintains a specific read model type,
204
+ * from what has already been discovered.
205
+ * @param readModelType - The read model type to resolve for.
206
+ * @returns The resolved {@link ProjectionId}.
207
+ */
208
+ resolveProjectionIdForModel(readModelType) {
209
+ for (const [id, type] of this._modelBound) {
210
+ if (type === readModelType) {
211
+ return new ProjectionId(id);
212
+ }
213
+ }
214
+ for (const [id, type] of this._declarative) {
215
+ const metadata = getProjectionMetadata(type);
216
+ if (metadata?.readModelType === readModelType) {
217
+ return new ProjectionId(id);
218
+ }
219
+ }
220
+ throw new Error(`No projection found for read model '${readModelType.name}'. Make sure discover() has run and the ` +
221
+ 'read model is model-bound, or its declarative projection() decorator specifies an explicit readModelType.');
222
+ }
223
+ /**
224
+ * Resolves the event sequence identifier a discovered projection reads from, without requiring
225
+ * its full definition to have been built.
226
+ * @param projectionId - The projection identifier to resolve for.
227
+ * @returns The resolved event sequence identifier.
228
+ */
229
+ resolveEventSequenceIdFor(projectionId) {
230
+ const modelBoundType = this._modelBound.get(projectionId);
231
+ if (modelBoundType) {
232
+ return getEventSequenceMetadata(modelBoundType) ?? EventSequenceId.eventLog.value;
233
+ }
234
+ const declarativeType = this._declarative.get(projectionId);
235
+ if (declarativeType) {
236
+ return getProjectionMetadata(declarativeType)?.eventSequenceId ?? EventSequenceId.eventLog.value;
237
+ }
238
+ return EventSequenceId.eventLog.value;
239
+ }
104
240
  async registerWithRetry(projection, identifier, maxAttempts = 5) {
105
241
  let delay = 2000;
106
242
  for (let attempt = 1; attempt <= maxAttempts; attempt++) {
@@ -283,13 +419,23 @@ export class Projections {
283
419
  if (childrenFromList.length > 0) {
284
420
  childrenByProperty[property] = buildChildrenEntry(type, property, childrenFromList);
285
421
  }
286
- if (isNested(prototype, property)) {
422
+ const propertyIsNested = isNested(prototype, property);
423
+ if (propertyIsNested) {
287
424
  nestedByProperty[property] = buildNestedEntry(type, property);
288
425
  }
426
+ // A scalar (non-nested, non-children-collection) root property clears back to no value
427
+ // every time the given event is observed. A nested single-object property's clearWith is
428
+ // handled by buildNestedEntry instead, which clears the whole nested object.
429
+ if (childrenFromList.length === 0 && !propertyIsNested) {
430
+ for (const clearWith of getClearWithPropertyMetadata(prototype, property)) {
431
+ const entry = ensureFromEntry(fromByEventType, clearWith.eventType);
432
+ entry.Value.Properties[property] = '$null';
433
+ }
434
+ }
289
435
  }
290
436
  const allProperties = {};
291
437
  for (const property of properties) {
292
- const fromEvery = getFromEveryMetadata(prototype, property);
438
+ const fromEvery = getFromEveryMetadata(prototype, property) ?? getFromAllMetadata(prototype, property);
293
439
  if (fromEvery) {
294
440
  allProperties[property] = fromEvery.contextProperty
295
441
  ? fromEvery.contextProperty
@@ -316,7 +462,8 @@ export class Projections {
316
462
  RemovedWithJoin: Array.from(removedWithJoinByEventType.values()),
317
463
  LastUpdated: { Value: '' },
318
464
  Tags: [],
319
- AutoMap: AutoMap.Enabled,
465
+ AutoMap: isNoAutoMap(type) ? AutoMap.Disabled : AutoMap.Enabled,
466
+ NoAutoMapProperties: properties.filter(property => isPropertyNoAutoMap(prototype, property)),
320
467
  Nested: nestedByProperty
321
468
  };
322
469
  definition.LastUpdated = { Value: this.computeStableLastUpdated(definition) };
@@ -327,7 +474,7 @@ export class Projections {
327
474
  if (readModelMetadata && hasFromEventMetadata(type)) {
328
475
  return {
329
476
  id: new ProjectionId(readModelMetadata.id.value),
330
- eventSequenceId: undefined,
477
+ eventSequenceId: getEventSequenceMetadata(type),
331
478
  readModelIdentifier: readModelMetadata.id.value
332
479
  };
333
480
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Projections.js","sourceRoot":"","sources":["../../projections/Projections.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Projections.js","sourceRoot":"","sources":["../../projections/Projections.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Error thrown when a projection query fails because the Projection Declaration Language
3
+ * declaration contains errors.
4
+ */
5
+ export declare class UnableToQueryProjection extends Error {
6
+ /**
7
+ * Creates a new {@link UnableToQueryProjection}.
8
+ * @param errors - The collection of error messages describing why the query failed.
9
+ */
10
+ constructor(errors: ReadonlyArray<string>);
11
+ }
12
+ //# sourceMappingURL=UnableToQueryProjection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnableToQueryProjection.d.ts","sourceRoot":"","sources":["../../projections/UnableToQueryProjection.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAC9C;;;OAGG;gBACS,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC;CAI5C"}
@@ -0,0 +1,17 @@
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
+ * Error thrown when a projection query fails because the Projection Declaration Language
5
+ * declaration contains errors.
6
+ */
7
+ export class UnableToQueryProjection extends Error {
8
+ /**
9
+ * Creates a new {@link UnableToQueryProjection}.
10
+ * @param errors - The collection of error messages describing why the query failed.
11
+ */
12
+ constructor(errors) {
13
+ super(`Unable to query projection. Errors:\n${errors.join('\n')}`);
14
+ this.name = 'UnableToQueryProjection';
15
+ }
16
+ }
17
+ //# sourceMappingURL=UnableToQueryProjection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnableToQueryProjection.js","sourceRoot":"","sources":["../../projections/UnableToQueryProjection.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG;;;GAGG;AACH,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAC9C;;;OAGG;IACH,YAAY,MAA6B;QACrC,KAAK,CAAC,wCAAwC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IAC1C,CAAC;CACJ"}
@@ -1,6 +1,9 @@
1
1
  export { ProjectionId } from './ProjectionId';
2
2
  export type { IProjections } from './IProjections';
3
3
  export { Projections } from './Projections';
4
+ export type { ProjectionState } from './ProjectionState';
5
+ export type { ProjectionQueryResult } from './ProjectionQueryResult';
6
+ export { UnableToQueryProjection } from './UnableToQueryProjection';
4
7
  export * from './declarative';
5
8
  export * from './modelBound';
6
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../projections/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../projections/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,YAAY,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
@@ -2,6 +2,7 @@
2
2
  // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
3
  export { ProjectionId } from './ProjectionId';
4
4
  export { Projections } from './Projections';
5
+ export { UnableToQueryProjection } from './UnableToQueryProjection';
5
6
  export * from './declarative';
6
7
  export * from './modelBound';
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../projections/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../projections/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,22 @@
1
+ import 'reflect-metadata';
2
+ /**
3
+ * Class decorator that overrides the event sequence a model-bound projection reads from.
4
+ * When applied, auto-inbox routing is suppressed - the explicit value is always honored.
5
+ * @param sequence - The event sequence identifier to read from.
6
+ * @returns A class decorator.
7
+ */
8
+ export declare function eventSequence(sequence: string): ClassDecorator;
9
+ /**
10
+ * Convenience class decorator that pins a model-bound projection to the default event log
11
+ * sequence. Equivalent to `eventSequence(EventSequenceId.eventLog.value)`, but more expressive
12
+ * about the intent to read from the local event log rather than an inbox or another sequence.
13
+ * @param target - The class constructor.
14
+ */
15
+ export declare function eventLog(target: Function): void;
16
+ /**
17
+ * Retrieves the explicit event sequence identifier stored on a class, if any.
18
+ * @param target - The class constructor.
19
+ * @returns The event sequence identifier, or undefined when the class has no explicit override.
20
+ */
21
+ export declare function getEventSequenceMetadata(target: Function): string | undefined;
22
+ //# sourceMappingURL=eventSequence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventSequence.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/eventSequence.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAK1B;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAI9D;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAE/C;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAE7E"}
@@ -0,0 +1,34 @@
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 { EventSequenceId } from '../../eventSequences/EventSequenceId';
5
+ const METADATA_KEY = 'chronicle:projection:eventSequence';
6
+ /**
7
+ * Class decorator that overrides the event sequence a model-bound projection reads from.
8
+ * When applied, auto-inbox routing is suppressed - the explicit value is always honored.
9
+ * @param sequence - The event sequence identifier to read from.
10
+ * @returns A class decorator.
11
+ */
12
+ export function eventSequence(sequence) {
13
+ return (target) => {
14
+ Reflect.defineMetadata(METADATA_KEY, sequence, target);
15
+ };
16
+ }
17
+ /**
18
+ * Convenience class decorator that pins a model-bound projection to the default event log
19
+ * sequence. Equivalent to `eventSequence(EventSequenceId.eventLog.value)`, but more expressive
20
+ * about the intent to read from the local event log rather than an inbox or another sequence.
21
+ * @param target - The class constructor.
22
+ */
23
+ export function eventLog(target) {
24
+ Reflect.defineMetadata(METADATA_KEY, EventSequenceId.eventLog.value, target);
25
+ }
26
+ /**
27
+ * Retrieves the explicit event sequence identifier stored on a class, if any.
28
+ * @param target - The class constructor.
29
+ * @returns The event sequence identifier, or undefined when the class has no explicit override.
30
+ */
31
+ export function getEventSequenceMetadata(target) {
32
+ return Reflect.getMetadata(METADATA_KEY, target);
33
+ }
34
+ //# sourceMappingURL=eventSequence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventSequence.js","sourceRoot":"","sources":["../../../projections/modelBound/eventSequence.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAEvE,MAAM,YAAY,GAAG,oCAAoC,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC1C,OAAO,CAAC,MAAc,EAAE,EAAE;QACtB,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAgB;IACrC,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,eAAe,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACjF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAgB;IACrD,OAAO,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AACrD,CAAC"}
@@ -0,0 +1,26 @@
1
+ import 'reflect-metadata';
2
+ /** Metadata stored by the fromAll property decorator. */
3
+ export interface FromAllMetadata {
4
+ /** The event property name to read the value from. */
5
+ readonly property?: string;
6
+ /** The event context property name to read the value from. */
7
+ readonly contextProperty?: string;
8
+ }
9
+ /**
10
+ * Property decorator that sets the decorated read model property from a property present on every
11
+ * event type the projection is built from - the convention-based counterpart to declaring the same
12
+ * mapping on every individual `fromEvent`. Equivalent to {@link fromEvery} for model-bound
13
+ * projections; use whichever name reads better for the property being mapped.
14
+ * @param property - Optional event property name. If not specified, uses the model property name.
15
+ * @param contextProperty - Optional event context property name.
16
+ * @returns A property decorator.
17
+ */
18
+ export declare function fromAll(property?: string, contextProperty?: string): PropertyDecorator;
19
+ /**
20
+ * Retrieves fromAll metadata stored on the given property.
21
+ * @param target - The class prototype.
22
+ * @param propertyKey - The property name.
23
+ * @returns The fromAll metadata, or undefined if not decorated.
24
+ */
25
+ export declare function getFromAllMetadata(target: object, propertyKey: string): FromAllMetadata | undefined;
26
+ //# sourceMappingURL=fromAll.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fromAll.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/fromAll.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAG1B,yDAAyD;AACzD,MAAM,WAAW,eAAe;IAC5B,sDAAsD;IACtD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,8DAA8D;IAC9D,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACrC;AAID;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAMtF;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAEnG"}
@@ -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 'reflect-metadata';
4
+ import { TypeIntrospector } from '../../types';
5
+ const METADATA_KEY = 'chronicle:projection:fromAll';
6
+ /**
7
+ * Property decorator that sets the decorated read model property from a property present on every
8
+ * event type the projection is built from - the convention-based counterpart to declaring the same
9
+ * mapping on every individual `fromEvent`. Equivalent to {@link fromEvery} for model-bound
10
+ * projections; use whichever name reads better for the property being mapped.
11
+ * @param property - Optional event property name. If not specified, uses the model property name.
12
+ * @param contextProperty - Optional event context property name.
13
+ * @returns A property decorator.
14
+ */
15
+ export function fromAll(property, contextProperty) {
16
+ return (target, propertyKey) => {
17
+ TypeIntrospector.trackProperty(target.constructor, propertyKey.toString());
18
+ const metadata = { property, contextProperty };
19
+ Reflect.defineMetadata(METADATA_KEY, metadata, target, propertyKey.toString());
20
+ };
21
+ }
22
+ /**
23
+ * Retrieves fromAll metadata stored on the given property.
24
+ * @param target - The class prototype.
25
+ * @param propertyKey - The property name.
26
+ * @returns The fromAll metadata, or undefined if not decorated.
27
+ */
28
+ export function getFromAllMetadata(target, propertyKey) {
29
+ return Reflect.getMetadata(METADATA_KEY, target, propertyKey);
30
+ }
31
+ //# sourceMappingURL=fromAll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fromAll.js","sourceRoot":"","sources":["../../../projections/modelBound/fromAll.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAU/C,MAAM,YAAY,GAAG,8BAA8B,CAAC;AAEpD;;;;;;;;GAQG;AACH,MAAM,UAAU,OAAO,CAAC,QAAiB,EAAE,eAAwB;IAC/D,OAAO,CAAC,MAAc,EAAE,WAA4B,EAAE,EAAE;QACpD,gBAAgB,CAAC,aAAa,CAAE,MAAoC,CAAC,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1G,MAAM,QAAQ,GAAoB,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;QAChE,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IACnF,CAAC,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,WAAmB;IAClE,OAAO,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AAClE,CAAC"}
@@ -32,4 +32,8 @@ export { setValue, getSetValueMetadata } from './setValue';
32
32
  export type { SetValueMetadata } from './setValue';
33
33
  export { fromEvery, getFromEveryMetadata } from './fromEvery';
34
34
  export type { FromEveryMetadata } from './fromEvery';
35
+ export { fromAll, getFromAllMetadata } from './fromAll';
36
+ export type { FromAllMetadata } from './fromAll';
37
+ export { noAutoMap, isNoAutoMap, isPropertyNoAutoMap } from './noAutoMap';
38
+ export { eventSequence, eventLog, getEventSequenceMetadata } from './eventSequence';
35
39
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACpF,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACxD,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,YAAY,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC/C,YAAY,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACxD,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACvE,YAAY,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC9D,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC9D,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAClD,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACvE,YAAY,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,yBAAyB,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AACjG,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,2BAA2B,EAAE,8BAA8B,EAAE,MAAM,eAAe,CAAC;AACzG,YAAY,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,+BAA+B,EAAE,kCAAkC,EAAE,MAAM,mBAAmB,CAAC;AACzH,YAAY,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC3D,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC9D,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACpF,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACxD,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,YAAY,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC/C,YAAY,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACxD,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACvE,YAAY,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC9D,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC9D,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAClD,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACvE,YAAY,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,yBAAyB,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AACjG,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,2BAA2B,EAAE,8BAA8B,EAAE,MAAM,eAAe,CAAC;AACzG,YAAY,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,+BAA+B,EAAE,kCAAkC,EAAE,MAAM,mBAAmB,CAAC;AACzH,YAAY,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC3D,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC9D,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACxD,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -18,4 +18,7 @@ export { notRewindable, isNotRewindable } from './notRewindable';
18
18
  export { passive, isPassive } from './passive';
19
19
  export { setValue, getSetValueMetadata } from './setValue';
20
20
  export { fromEvery, getFromEveryMetadata } from './fromEvery';
21
+ export { fromAll, getFromAllMetadata } from './fromAll';
22
+ export { noAutoMap, isNoAutoMap, isPropertyNoAutoMap } from './noAutoMap';
23
+ export { eventSequence, eventLog, getEventSequenceMetadata } from './eventSequence';
21
24
  //# sourceMappingURL=index.js.map