@cratis/chronicle 6.3.2 → 6.5.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 (228) hide show
  1. package/ChronicleClient.ts +1 -1
  2. package/EventStore.ts +7 -2
  3. package/README.md +13 -2
  4. package/artifacts/validateArtifactSchemas.spec.ts +75 -0
  5. package/artifacts/validateArtifactSchemas.ts +39 -0
  6. package/auditing/AmbientContext.spec.ts +57 -0
  7. package/auditing/CausationManager.ts +13 -15
  8. package/compliance/pii.ts +7 -6
  9. package/compliance/subject.ts +6 -5
  10. package/confidentiality/encrypted.ts +7 -6
  11. package/correlation/CorrelationIdManager.ts +5 -0
  12. package/dist/ChronicleClient.js +1 -1
  13. package/dist/ChronicleClient.js.map +1 -1
  14. package/dist/EventStore.d.ts +3 -1
  15. package/dist/EventStore.d.ts.map +1 -1
  16. package/dist/EventStore.js +6 -2
  17. package/dist/EventStore.js.map +1 -1
  18. package/dist/artifacts/validateArtifactSchemas.d.ts +4 -0
  19. package/dist/artifacts/validateArtifactSchemas.d.ts.map +1 -0
  20. package/dist/artifacts/validateArtifactSchemas.js +38 -0
  21. package/dist/artifacts/validateArtifactSchemas.js.map +1 -0
  22. package/dist/auditing/CausationManager.d.ts +3 -1
  23. package/dist/auditing/CausationManager.d.ts.map +1 -1
  24. package/dist/auditing/CausationManager.js +9 -15
  25. package/dist/auditing/CausationManager.js.map +1 -1
  26. package/dist/compliance/pii.d.ts +2 -1
  27. package/dist/compliance/pii.d.ts.map +1 -1
  28. package/dist/compliance/pii.js +6 -5
  29. package/dist/compliance/pii.js.map +1 -1
  30. package/dist/compliance/subject.d.ts +2 -1
  31. package/dist/compliance/subject.d.ts.map +1 -1
  32. package/dist/compliance/subject.js +5 -4
  33. package/dist/compliance/subject.js.map +1 -1
  34. package/dist/confidentiality/encrypted.d.ts +2 -1
  35. package/dist/confidentiality/encrypted.d.ts.map +1 -1
  36. package/dist/confidentiality/encrypted.js +6 -5
  37. package/dist/confidentiality/encrypted.js.map +1 -1
  38. package/dist/correlation/CorrelationIdManager.d.ts +2 -0
  39. package/dist/correlation/CorrelationIdManager.d.ts.map +1 -1
  40. package/dist/correlation/CorrelationIdManager.js +4 -0
  41. package/dist/correlation/CorrelationIdManager.js.map +1 -1
  42. package/dist/eventSequences/AppendOptions.d.ts +3 -4
  43. package/dist/eventSequences/AppendOptions.d.ts.map +1 -1
  44. package/dist/eventSequences/EventSequence.d.ts.map +1 -1
  45. package/dist/eventSequences/EventSequence.js +19 -14
  46. package/dist/eventSequences/EventSequence.js.map +1 -1
  47. package/dist/eventSequences/EventSequenceNumber.d.ts +3 -1
  48. package/dist/eventSequences/EventSequenceNumber.d.ts.map +1 -1
  49. package/dist/eventSequences/EventSequenceNumber.js +3 -1
  50. package/dist/eventSequences/EventSequenceNumber.js.map +1 -1
  51. package/dist/events/eventTypeDecorator.d.ts +8 -7
  52. package/dist/events/eventTypeDecorator.d.ts.map +1 -1
  53. package/dist/events/eventTypeDecorator.js +22 -5
  54. package/dist/events/eventTypeDecorator.js.map +1 -1
  55. package/dist/events/index.d.ts +2 -0
  56. package/dist/events/index.d.ts.map +1 -1
  57. package/dist/events/index.js +2 -0
  58. package/dist/events/index.js.map +1 -1
  59. package/dist/events/isRegisteredEvent.d.ts +4 -0
  60. package/dist/events/isRegisteredEvent.d.ts.map +1 -0
  61. package/dist/events/isRegisteredEvent.js +9 -0
  62. package/dist/events/isRegisteredEvent.js.map +1 -0
  63. package/dist/identity/IdentityProvider.d.ts +2 -0
  64. package/dist/identity/IdentityProvider.d.ts.map +1 -1
  65. package/dist/identity/IdentityProvider.js +4 -0
  66. package/dist/identity/IdentityProvider.js.map +1 -1
  67. package/dist/projections/modelBound/addFrom.d.ts +2 -1
  68. package/dist/projections/modelBound/addFrom.d.ts.map +1 -1
  69. package/dist/projections/modelBound/addFrom.js +4 -3
  70. package/dist/projections/modelBound/addFrom.js.map +1 -1
  71. package/dist/projections/modelBound/childrenFrom.d.ts +2 -1
  72. package/dist/projections/modelBound/childrenFrom.d.ts.map +1 -1
  73. package/dist/projections/modelBound/childrenFrom.js +4 -3
  74. package/dist/projections/modelBound/childrenFrom.js.map +1 -1
  75. package/dist/projections/modelBound/clearWith.d.ts +2 -1
  76. package/dist/projections/modelBound/clearWith.d.ts.map +1 -1
  77. package/dist/projections/modelBound/clearWith.js +4 -3
  78. package/dist/projections/modelBound/clearWith.js.map +1 -1
  79. package/dist/projections/modelBound/count.d.ts +2 -1
  80. package/dist/projections/modelBound/count.d.ts.map +1 -1
  81. package/dist/projections/modelBound/count.js +4 -3
  82. package/dist/projections/modelBound/count.js.map +1 -1
  83. package/dist/projections/modelBound/decrement.d.ts +2 -1
  84. package/dist/projections/modelBound/decrement.d.ts.map +1 -1
  85. package/dist/projections/modelBound/decrement.js +4 -3
  86. package/dist/projections/modelBound/decrement.js.map +1 -1
  87. package/dist/projections/modelBound/fromAll.d.ts +2 -1
  88. package/dist/projections/modelBound/fromAll.d.ts.map +1 -1
  89. package/dist/projections/modelBound/fromAll.js +4 -3
  90. package/dist/projections/modelBound/fromAll.js.map +1 -1
  91. package/dist/projections/modelBound/fromEvery.d.ts +2 -1
  92. package/dist/projections/modelBound/fromEvery.d.ts.map +1 -1
  93. package/dist/projections/modelBound/fromEvery.js +4 -3
  94. package/dist/projections/modelBound/fromEvery.js.map +1 -1
  95. package/dist/projections/modelBound/increment.d.ts +2 -1
  96. package/dist/projections/modelBound/increment.d.ts.map +1 -1
  97. package/dist/projections/modelBound/increment.js +4 -3
  98. package/dist/projections/modelBound/increment.js.map +1 -1
  99. package/dist/projections/modelBound/join.d.ts +2 -1
  100. package/dist/projections/modelBound/join.d.ts.map +1 -1
  101. package/dist/projections/modelBound/join.js +4 -3
  102. package/dist/projections/modelBound/join.js.map +1 -1
  103. package/dist/projections/modelBound/nested.d.ts +1 -6
  104. package/dist/projections/modelBound/nested.d.ts.map +1 -1
  105. package/dist/projections/modelBound/nested.js +6 -2
  106. package/dist/projections/modelBound/nested.js.map +1 -1
  107. package/dist/projections/modelBound/noAutoMap.d.ts +4 -11
  108. package/dist/projections/modelBound/noAutoMap.d.ts.map +1 -1
  109. package/dist/projections/modelBound/noAutoMap.js +6 -2
  110. package/dist/projections/modelBound/noAutoMap.js.map +1 -1
  111. package/dist/projections/modelBound/removedWith.d.ts +2 -1
  112. package/dist/projections/modelBound/removedWith.d.ts.map +1 -1
  113. package/dist/projections/modelBound/removedWith.js +4 -3
  114. package/dist/projections/modelBound/removedWith.js.map +1 -1
  115. package/dist/projections/modelBound/removedWithJoin.d.ts +2 -1
  116. package/dist/projections/modelBound/removedWithJoin.d.ts.map +1 -1
  117. package/dist/projections/modelBound/removedWithJoin.js +4 -3
  118. package/dist/projections/modelBound/removedWithJoin.js.map +1 -1
  119. package/dist/projections/modelBound/setFrom.d.ts +2 -1
  120. package/dist/projections/modelBound/setFrom.d.ts.map +1 -1
  121. package/dist/projections/modelBound/setFrom.js +4 -3
  122. package/dist/projections/modelBound/setFrom.js.map +1 -1
  123. package/dist/projections/modelBound/setFromContext.d.ts +3 -2
  124. package/dist/projections/modelBound/setFromContext.d.ts.map +1 -1
  125. package/dist/projections/modelBound/setFromContext.js +4 -3
  126. package/dist/projections/modelBound/setFromContext.js.map +1 -1
  127. package/dist/projections/modelBound/setValue.d.ts +2 -1
  128. package/dist/projections/modelBound/setValue.d.ts.map +1 -1
  129. package/dist/projections/modelBound/setValue.js +4 -3
  130. package/dist/projections/modelBound/setValue.js.map +1 -1
  131. package/dist/projections/modelBound/subtractFrom.d.ts +2 -1
  132. package/dist/projections/modelBound/subtractFrom.d.ts.map +1 -1
  133. package/dist/projections/modelBound/subtractFrom.js +4 -3
  134. package/dist/projections/modelBound/subtractFrom.js.map +1 -1
  135. package/dist/readModels/IReadModels.d.ts +10 -1
  136. package/dist/readModels/IReadModels.d.ts.map +1 -1
  137. package/dist/readModels/MaterializedReadModels.js +2 -2
  138. package/dist/readModels/MaterializedReadModels.js.map +1 -1
  139. package/dist/readModels/ReadModels.d.ts +6 -1
  140. package/dist/readModels/ReadModels.d.ts.map +1 -1
  141. package/dist/readModels/ReadModels.js +28 -2
  142. package/dist/readModels/ReadModels.js.map +1 -1
  143. package/dist/readModels/readModel.d.ts +2 -1
  144. package/dist/readModels/readModel.d.ts.map +1 -1
  145. package/dist/readModels/readModel.js +22 -5
  146. package/dist/readModels/readModel.js.map +1 -1
  147. package/dist/schemas/JsonSchemaGenerator.d.ts +6 -1
  148. package/dist/schemas/JsonSchemaGenerator.d.ts.map +1 -1
  149. package/dist/schemas/JsonSchemaGenerator.js +41 -31
  150. package/dist/schemas/JsonSchemaGenerator.js.map +1 -1
  151. package/dist/schemas/createDeferredSchema.d.ts +7 -0
  152. package/dist/schemas/createDeferredSchema.d.ts.map +1 -0
  153. package/dist/schemas/createDeferredSchema.js +19 -0
  154. package/dist/schemas/createDeferredSchema.js.map +1 -0
  155. package/dist/schemas/index.d.ts +1 -0
  156. package/dist/schemas/index.d.ts.map +1 -1
  157. package/dist/schemas/index.js.map +1 -1
  158. package/dist/schemas/jsonSchemaProperty.d.ts +2 -1
  159. package/dist/schemas/jsonSchemaProperty.d.ts.map +1 -1
  160. package/dist/schemas/jsonSchemaProperty.js +3 -2
  161. package/dist/schemas/jsonSchemaProperty.js.map +1 -1
  162. package/dist/tsconfig.tsbuildinfo +1 -1
  163. package/dist/types/TypeIntrospector.d.ts.map +1 -1
  164. package/dist/types/TypeIntrospector.js +9 -3
  165. package/dist/types/TypeIntrospector.js.map +1 -1
  166. package/dist/types/index.d.ts +2 -0
  167. package/dist/types/index.d.ts.map +1 -1
  168. package/dist/types/propertyDecoratorMetadata.d.ts +17 -0
  169. package/dist/types/propertyDecoratorMetadata.d.ts.map +1 -0
  170. package/dist/types/propertyDecoratorMetadata.js +76 -0
  171. package/dist/types/propertyDecoratorMetadata.js.map +1 -0
  172. package/dist/types/standardDecoratorMetadata.d.ts +9 -0
  173. package/dist/types/standardDecoratorMetadata.d.ts.map +1 -0
  174. package/dist/types/standardDecoratorMetadata.js +20 -0
  175. package/dist/types/standardDecoratorMetadata.js.map +1 -0
  176. package/eventSequences/AppendOptions.ts +3 -4
  177. package/eventSequences/EventSequence.spec.ts +59 -0
  178. package/eventSequences/EventSequence.ts +21 -15
  179. package/eventSequences/EventSequenceNumber.ts +4 -1
  180. package/eventSequences/for_EventSequence/when_appending/with_metadata.spec.ts +2 -1
  181. package/events/classDecorators.standard.spec.ts +77 -0
  182. package/events/eventTypeDecorator.ts +31 -13
  183. package/events/index.ts +3 -0
  184. package/events/isRegisteredEvent.spec.ts +26 -0
  185. package/events/isRegisteredEvent.ts +12 -0
  186. package/identity/IdentityProvider.ts +5 -0
  187. package/package.json +3 -1
  188. package/projections/modelBound/addFrom.ts +5 -4
  189. package/projections/modelBound/childrenFrom.ts +5 -4
  190. package/projections/modelBound/clearWith.ts +5 -4
  191. package/projections/modelBound/count.ts +5 -4
  192. package/projections/modelBound/decorators.standard.spec.ts +71 -0
  193. package/projections/modelBound/decrement.ts +5 -4
  194. package/projections/modelBound/fromAll.ts +5 -4
  195. package/projections/modelBound/fromEvery.ts +5 -4
  196. package/projections/modelBound/increment.ts +5 -4
  197. package/projections/modelBound/join.ts +5 -4
  198. package/projections/modelBound/nested.ts +9 -2
  199. package/projections/modelBound/noAutoMap.ts +11 -2
  200. package/projections/modelBound/removedWith.ts +5 -4
  201. package/projections/modelBound/removedWithJoin.ts +5 -4
  202. package/projections/modelBound/setFrom.ts +5 -4
  203. package/projections/modelBound/setFromContext.ts +7 -6
  204. package/projections/modelBound/setValue.ts +5 -4
  205. package/projections/modelBound/subtractFrom.ts +5 -4
  206. package/readModels/IReadModels.ts +11 -1
  207. package/readModels/MaterializedReadModels.spec.ts +17 -6
  208. package/readModels/MaterializedReadModels.ts +2 -2
  209. package/readModels/ReadModels.spec.ts +96 -3
  210. package/readModels/ReadModels.ts +32 -2
  211. package/readModels/readModel.ts +24 -6
  212. package/readModels/standardFallbacks.standard.spec.ts +39 -0
  213. package/schemas/JsonSchemaGenerator.confidentiality.spec.ts +2 -0
  214. package/schemas/JsonSchemaGenerator.spec.ts +28 -1
  215. package/schemas/JsonSchemaGenerator.ts +45 -30
  216. package/schemas/createDeferredSchema.ts +21 -0
  217. package/schemas/decorators.expected.fixture.ts +24 -0
  218. package/schemas/decorators.legacy.spec.ts +62 -0
  219. package/schemas/decorators.standard.spec.ts +235 -0
  220. package/schemas/index.ts +1 -0
  221. package/schemas/jsonSchemaProperty.ts +4 -3
  222. package/schemas/legacyDesignMetadata.spec.ts +39 -0
  223. package/types/TypeIntrospector.ts +8 -3
  224. package/types/index.ts +2 -0
  225. package/types/propertyDecoratorMetadata.ts +80 -0
  226. package/types/standardDecoratorMetadata.spec.ts +31 -0
  227. package/types/standardDecoratorMetadata.ts +26 -0
  228. package/vitest.config.ts +17 -0
@@ -136,7 +136,7 @@ export class ChronicleClient implements IChronicleClient {
136
136
  });
137
137
  ensureCommandSuccess('ensure event store', await this._connection.eventStores.ensureEventStore({ Name: storeName.value }));
138
138
 
139
- const created = new EventStore(storeName, namespaceName, this._connection, this._lifecycle, this.options.defaultSinkTypeId);
139
+ const created = new EventStore(storeName, namespaceName, this._connection, this._lifecycle, this.options.defaultSinkTypeId, this.options.clientArtifactsProvider);
140
140
  this._stores.set(key, created);
141
141
 
142
142
  await this.registerArtifactsForStore(created, 'new-store');
package/EventStore.ts CHANGED
@@ -30,6 +30,8 @@ import { EventSeeding } from './seeding/EventSeeding.js';
30
30
  import { IEventSeeding } from './seeding/IEventSeeding.js';
31
31
  import { ChronicleTracer } from './Tracing.js';
32
32
  import { DefaultClientArtifactsProvider } from './artifacts/DefaultClientArtifactsProvider.js';
33
+ import type { IClientArtifactsProvider } from './artifacts/IClientArtifactsProvider.js';
34
+ import { validateArtifactSchemas } from './artifacts/validateArtifactSchemas.js';
33
35
  import { IUnitOfWorkManager } from './transactions/IUnitOfWorkManager.js';
34
36
  import { UnitOfWorkManager } from './transactions/UnitOfWorkManager.js';
35
37
  import { IJobs } from './jobs/IJobs.js';
@@ -80,14 +82,15 @@ export class EventStore implements IEventStore {
80
82
  readonly namespace: EventStoreNamespaceName,
81
83
  private readonly _connection: ChronicleConnection,
82
84
  lifecycle: ConnectionLifecycle,
83
- defaultSinkTypeId: string
85
+ defaultSinkTypeId: string,
86
+ private readonly _artifacts: IClientArtifactsProvider = DefaultClientArtifactsProvider.default
84
87
  ) {
85
88
  this.unitOfWorkManager = new UnitOfWorkManager(this);
86
89
 
87
90
  this.eventLog = new EventLog(name.value, namespace.value, _connection, this.unitOfWorkManager);
88
91
  this._sequences.set(EventSequenceId.eventLog.value, this.eventLog);
89
92
 
90
- const artifacts = DefaultClientArtifactsProvider.default;
93
+ const artifacts = this._artifacts;
91
94
  this.eventTypes = new EventTypes(name.value, _connection, artifacts);
92
95
  this.constraints = new Constraints(name.value, _connection, artifacts);
93
96
  this.projections = new Projections(name.value, namespace.value, _connection, artifacts, defaultSinkTypeId);
@@ -125,6 +128,8 @@ export class EventStore implements IEventStore {
125
128
  this.seeding.discover()
126
129
  ]);
127
130
 
131
+ validateArtifactSchemas(this._artifacts);
132
+
128
133
  this._logger.debug('Registering discovered artifacts', {
129
134
  eventStore: this.name.value,
130
135
  namespace: this.namespace.value
package/README.md CHANGED
@@ -28,7 +28,7 @@ Beyond appending and observing events, the client covers the full Chronicle surf
28
28
  ## Installation
29
29
 
30
30
  ```bash
31
- npm install @cratis/chronicle reflect-metadata
31
+ npm install @cratis/chronicle @cratis/fundamentals reflect-metadata
32
32
  ```
33
33
 
34
34
  You need a Chronicle Kernel available. The easiest local setup is the development Docker image:
@@ -41,11 +41,18 @@ docker run -p 35000:35000 cratis/chronicle:latest-development
41
41
 
42
42
  ```typescript
43
43
  import 'reflect-metadata';
44
+ import { field } from '@cratis/fundamentals';
44
45
  import { ChronicleClient, ChronicleOptions, eventType } from '@cratis/chronicle';
45
46
 
46
47
  @eventType()
47
48
  class EmployeeHired {
48
- constructor(readonly firstName: string, readonly lastName: string) {}
49
+ @field(String) firstName!: string;
50
+ @field(String) lastName!: string;
51
+
52
+ constructor(firstName: string, lastName: string) {
53
+ this.firstName = firstName;
54
+ this.lastName = lastName;
55
+ }
49
56
  }
50
57
 
51
58
  const client = new ChronicleClient(ChronicleOptions.development());
@@ -55,6 +62,10 @@ console.log(`Appended at sequence number ${result.sequenceNumber.value}`);
55
62
  client.dispose();
56
63
  ```
57
64
 
65
+ ## Decorators and TypeScript configuration
66
+
67
+ Chronicle decorators work with both TC39 standard decorators (TypeScript 5.2+; do not enable `experimentalDecorators`) and legacy decorators (`experimentalDecorators: true`). Keep `reflect-metadata` imported at your entry point for Chronicle's runtime metadata storage. In standard mode, TypeScript does not emit `design:type` or `design:paramtypes`; declare event and read-model fields with `@field(Type)` from `@cratis/fundamentals` so Chronicle can generate their schemas. For arrays, provide an element type with `@field(Array, { genericArguments: [ItemType] })`. For a `ConceptAs<string>` or `ConceptAs<number>`, declare `static readonly valueType = String`, `Number`, `Boolean`, `Guid`, or `Date` on the concept class. Member-less event types and read models are valid. Unresolved standard-mode types fail on first schema read or during connection before Kernel registration; property decorators support public instance fields, not standard accessors or getters.
68
+
58
69
  ## Documentation
59
70
 
60
71
  See the [getting started guide](https://github.com/Cratis/Chronicle.TypeScript/blob/main/Documentation/getting-started.md) and the rest of the [documentation](https://github.com/Cratis/Chronicle.TypeScript/tree/main/Documentation) for installation and usage instructions, or visit [cratis.io](https://www.cratis.io/chronicle/).
@@ -0,0 +1,75 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+
4
+ import { field } from '@cratis/fundamentals';
5
+ import { describe, expect, it, vi } from 'vitest';
6
+ import { eventType } from '../events/eventTypeDecorator.js';
7
+ import { readModel } from '../readModels/readModel.js';
8
+ import { IClientArtifactsProvider } from './IClientArtifactsProvider.js';
9
+ import { validateArtifactSchemas } from './validateArtifactSchemas.js';
10
+ import { EventStore } from '../EventStore.js';
11
+ import { EventStoreName } from '../EventStoreName.js';
12
+ import { EventStoreNamespaceName } from '../EventStoreNamespaceName.js';
13
+ import { ChronicleConnection } from '../connection/ChronicleConnection.js';
14
+ import { ConnectionLifecycle } from '../connection/ConnectionLifecycle.js';
15
+
16
+ @eventType('bad-event')
17
+ class BadEvent {
18
+ @field(Array) items!: string[];
19
+ }
20
+
21
+ @readModel('bad-read-model')
22
+ class BadReadModel {
23
+ constructor(readonly name: string) {}
24
+ }
25
+
26
+ @eventType('good-event')
27
+ class GoodEvent {}
28
+
29
+ const artifacts = {
30
+ eventTypes: [BadEvent, GoodEvent],
31
+ readModels: [BadReadModel]
32
+ } as unknown as IClientArtifactsProvider;
33
+
34
+ describe('artifact schema preflight', () => {
35
+ it('blocks every Kernel registration when preflight fails', async () => {
36
+ const register = vi.fn();
37
+ const connection = new Proxy({}, {
38
+ get: () => new Proxy({}, { get: () => register })
39
+ }) as ChronicleConnection;
40
+ const lifecycle = { onDisconnected: vi.fn(), onConnected: vi.fn() } as unknown as ConnectionLifecycle;
41
+ const store = new EventStore(new EventStoreName('Test'), EventStoreNamespaceName.default, connection, lifecycle, 'sink');
42
+
43
+ await expect(store.registerArtifacts()).rejects.toBeInstanceOf(AggregateError);
44
+ expect(register).not.toHaveBeenCalled();
45
+ });
46
+
47
+ it('uses an explicit artifact catalog for store discovery and schema preflight', async () => {
48
+ const register = vi.fn();
49
+ const connection = new Proxy({}, {
50
+ get: () => new Proxy({}, { get: () => register })
51
+ }) as ChronicleConnection;
52
+ const lifecycle = { onDisconnected: vi.fn(), onConnected: vi.fn() } as unknown as ConnectionLifecycle;
53
+ const catalog = { ...artifacts, eventTypes: [GoodEvent], readModels: [] } as IClientArtifactsProvider;
54
+ const store = new EventStore(new EventStoreName('Test'), EventStoreNamespaceName.default, connection, lifecycle, 'sink', catalog);
55
+
56
+ await store.eventTypes.discover();
57
+ expect(store.eventTypes.all).toEqual([GoodEvent]);
58
+ validateArtifactSchemas(catalog);
59
+ });
60
+
61
+ it('collects all schema failures before registration', () => {
62
+ try {
63
+ validateArtifactSchemas(artifacts);
64
+ throw new Error('Expected schema validation to fail');
65
+ } catch (error) {
66
+ expect(error).toBeInstanceOf(AggregateError);
67
+ const aggregate = error as AggregateError;
68
+ expect(aggregate.errors).toHaveLength(2);
69
+ expect(aggregate.errors.map((failure: Error) => failure.message)).toEqual([
70
+ expect.stringContaining('Event type BadEvent:'),
71
+ expect.stringContaining('Read model BadReadModel:')
72
+ ]);
73
+ }
74
+ });
75
+ });
@@ -0,0 +1,39 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+
4
+ import { IClientArtifactsProvider } from './IClientArtifactsProvider.js';
5
+ import { getEventTypeMetadata } from '../events/eventTypeDecorator.js';
6
+ import { getReadModelMetadata } from '../readModels/readModel.js';
7
+ import { JsonSchemaGenerator } from '../schemas/JsonSchemaGenerator.js';
8
+
9
+ /** Resolves every discovered schema before any registration can reach the Kernel. */
10
+ export function validateArtifactSchemas(artifacts: IClientArtifactsProvider): void {
11
+ const failures: Error[] = [];
12
+
13
+ for (const type of artifacts.eventTypes) {
14
+ try {
15
+ const metadata = getEventTypeMetadata(type);
16
+ if (!metadata) throw new TypeError(`Missing event type metadata for ${type.name}.`);
17
+ void metadata.schema;
18
+ } catch (error) {
19
+ failures.push(new Error(`Event type ${type.name}: ${String(error)}`, { cause: error }));
20
+ }
21
+ }
22
+
23
+ for (const type of artifacts.readModels) {
24
+ try {
25
+ const metadata = getReadModelMetadata(type);
26
+ if (metadata) {
27
+ void metadata.schema;
28
+ } else {
29
+ JsonSchemaGenerator.generate(type);
30
+ }
31
+ } catch (error) {
32
+ failures.push(new Error(`Read model ${type.name}: ${String(error)}`, { cause: error }));
33
+ }
34
+ }
35
+
36
+ if (failures.length) {
37
+ throw new AggregateError(failures, `Cannot register artifacts: ${failures.length} schema error(s).`);
38
+ }
39
+ }
@@ -0,0 +1,57 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+
4
+ import { describe, expect, it } from 'vitest';
5
+ import { Identity, IdentityProvider } from '../identity/index.js';
6
+ import { CorrelationId, CorrelationIdManager } from '../correlation/index.js';
7
+ import { CausationManager } from './CausationManager.js';
8
+ import { CausationType } from './CausationType.js';
9
+
10
+ describe('when concurrently running nested ambient contexts', () => {
11
+ it('should keep each request isolated and restore its parent across awaits', async () => {
12
+ const identities = new IdentityProvider();
13
+ const correlations = new CorrelationIdManager();
14
+ const causations = new CausationManager();
15
+ const principal = (name: string) => new Identity(name, name);
16
+ const correlation = (name: string) => new CorrelationId(name);
17
+ const link = new CausationType('Command');
18
+ const run = (name: string) => identities.run(principal(name), () =>
19
+ correlations.run(correlation(name), () => causations.run(link, { name }, async () => {
20
+ await Promise.resolve();
21
+ expect(identities.getCurrent().subject).toBe(name);
22
+ expect(correlations.current.value).toBe(name);
23
+ expect(causations.getCurrentChain().at(-1)?.properties.name).toBe(name);
24
+ await identities.run(principal(`${name}-nested`), () =>
25
+ correlations.run(correlation(`${name}-nested`), () =>
26
+ causations.run(link, { name: `${name}-nested` }, async () => {
27
+ await Promise.resolve();
28
+ expect(identities.getCurrent().subject).toBe(`${name}-nested`);
29
+ expect(correlations.current.value).toBe(`${name}-nested`);
30
+ expect(causations.getCurrentChain()).toHaveLength(3);
31
+ })));
32
+ expect(identities.getCurrent().subject).toBe(name);
33
+ expect(correlations.current.value).toBe(name);
34
+ expect(causations.getCurrentChain()).toHaveLength(2);
35
+ })));
36
+
37
+ await Promise.all([run('a'), run('b')]);
38
+ expect(identities.getCurrent()).toBe(Identity.system);
39
+ expect(causations.getCurrentChain()).toHaveLength(1);
40
+ });
41
+
42
+ it('should not accumulate append links between sibling scoped operations', () => {
43
+ const causations = new CausationManager();
44
+ causations.run(link(), { name: 'command' }, () => {
45
+ causations.run(link(), { name: 'append-one' }, () => {
46
+ expect(causations.getCurrentChain()).toHaveLength(3);
47
+ });
48
+ causations.run(link(), { name: 'append-two' }, () => {
49
+ expect(causations.getCurrentChain()).toHaveLength(3);
50
+ });
51
+ expect(causations.getCurrentChain()).toHaveLength(2);
52
+ });
53
+ expect(causations.getCurrentChain()).toHaveLength(1);
54
+ });
55
+ });
56
+
57
+ function link(): CausationType { return new CausationType('Command'); }
@@ -20,14 +20,23 @@ export class CausationManager implements ICausationManager {
20
20
 
21
21
  /** @inheritdoc */
22
22
  getCurrentChain(): ReadonlyArray<Causation> {
23
- const chain = this._getOrInitChain();
24
- return chain;
23
+ return this._storage.getStore() ?? [this._root];
25
24
  }
26
25
 
27
26
  /** @inheritdoc */
28
27
  add(type: CausationType, properties: Record<string, string>): void {
29
- const chain = this._getOrInitChain();
30
- chain.push(new Causation(new Date(), type, properties));
28
+ this._storage.enterWith([...this.getCurrentChain(), new Causation(new Date(), type, properties)]);
29
+ }
30
+
31
+ /** Runs an async or synchronous operation with an isolated, restored causation chain. */
32
+ run<T>(callback: () => T): T;
33
+ run<T>(type: CausationType, properties: Record<string, string>, callback: () => T): T;
34
+ run<T>(typeOrCallback: CausationType | (() => T), properties?: Record<string, string>, callback?: () => T): T {
35
+ const chain = [...this.getCurrentChain()];
36
+ if (typeof typeOrCallback !== 'function') {
37
+ chain.push(new Causation(new Date(), typeOrCallback, properties!));
38
+ }
39
+ return this._storage.run(chain, typeof typeOrCallback === 'function' ? typeOrCallback as () => T : callback!);
31
40
  }
32
41
 
33
42
  /**
@@ -37,15 +46,4 @@ export class CausationManager implements ICausationManager {
37
46
  defineRoot(properties: Record<string, string>): void {
38
47
  this._root = new Causation(new Date(), CausationType.root, properties);
39
48
  }
40
-
41
- private _getOrInitChain(): Causation[] {
42
- let chain = this._storage.getStore();
43
- if (chain === undefined) {
44
- chain = [this._root];
45
- this._storage.enterWith(chain);
46
- } else if (chain.length === 0) {
47
- chain.push(this._root);
48
- }
49
- return chain;
50
- }
51
49
  }
package/compliance/pii.ts CHANGED
@@ -6,6 +6,7 @@ import type { ComplianceMetadata } from './ComplianceMetadata.js';
6
6
  import { ComplianceMetadataType } from './ComplianceMetadataType.js';
7
7
  import { PIINotSupportedOnEventSourceId } from './PIINotSupportedOnEventSourceId.js';
8
8
  import { TypeIntrospector } from '../types/index.js';
9
+ import { ChronicleClassOrPropertyDecorator, decorateClassOrProperty, getPropertyMetadata, hasPropertyMetadata } from '../types/propertyDecoratorMetadata.js';
9
10
 
10
11
  /** The property name this client uses everywhere for the event source identifier. */
11
12
  const EVENT_SOURCE_ID_PROPERTY = 'eventSourceId';
@@ -55,8 +56,8 @@ const PII_TYPE_METADATA_KEY = 'chronicle:compliance:pii:type';
55
56
  * }
56
57
  * ```
57
58
  */
58
- export function pii(details?: string): PropertyDecorator & ClassDecorator {
59
- return (target: object | Function, propertyKey?: string | symbol) => {
59
+ export function pii(details?: string): ChronicleClassOrPropertyDecorator {
60
+ return decorateClassOrProperty((target: object | Function, propertyKey?: string | symbol) => {
60
61
  // Class decorator usage (for types like ConceptAs)
61
62
  if (typeof target === 'function' && propertyKey === undefined) {
62
63
  const metadata: ComplianceMetadata = {
@@ -78,7 +79,7 @@ export function pii(details?: string): PropertyDecorator & ClassDecorator {
78
79
  // PIINotSupportedOnEventSourceId guard, which throws for the same reason when
79
80
  // [PII] is applied to an EventSourceId/EventSourceId<T> type.
80
81
  if (key === EVENT_SOURCE_ID_PROPERTY) {
81
- throw new PIINotSupportedOnEventSourceId(declaringType.name);
82
+ throw new PIINotSupportedOnEventSourceId(declaringType.name || 'the decorated class');
82
83
  }
83
84
 
84
85
  TypeIntrospector.trackProperty(declaringType, key);
@@ -88,7 +89,7 @@ export function pii(details?: string): PropertyDecorator & ClassDecorator {
88
89
  };
89
90
  Reflect.defineMetadata(PII_PROPERTY_METADATA_KEY, metadata, target, key);
90
91
  }
91
- };
92
+ });
92
93
  }
93
94
 
94
95
  /**
@@ -98,7 +99,7 @@ export function pii(details?: string): PropertyDecorator & ClassDecorator {
98
99
  * @returns The compliance metadata, or undefined if not decorated with @pii.
99
100
  */
100
101
  export function getPIIMetadata(target: object, propertyKey: string): ComplianceMetadata | undefined {
101
- return Reflect.getMetadata(PII_PROPERTY_METADATA_KEY, target, propertyKey);
102
+ return getPropertyMetadata<ComplianceMetadata>(PII_PROPERTY_METADATA_KEY, target, propertyKey);
102
103
  }
103
104
 
104
105
  /**
@@ -108,7 +109,7 @@ export function getPIIMetadata(target: object, propertyKey: string): ComplianceM
108
109
  * @returns True if the property has @pii decorator; false otherwise.
109
110
  */
110
111
  export function hasPIIMetadata(target: object, propertyKey: string): boolean {
111
- return Reflect.hasMetadata(PII_PROPERTY_METADATA_KEY, target, propertyKey);
112
+ return hasPropertyMetadata(PII_PROPERTY_METADATA_KEY, target, propertyKey);
112
113
  }
113
114
 
114
115
  /**
@@ -3,6 +3,7 @@
3
3
 
4
4
  import 'reflect-metadata';
5
5
  import { TypeIntrospector } from '../types/index.js';
6
+ import { ChroniclePropertyDecorator, decorateProperty, getTypeOrFieldMetadata, hasPropertyMetadata } from '../types/propertyDecoratorMetadata.js';
6
7
 
7
8
  /** Metadata key for the subject decorator on a property. */
8
9
  const SUBJECT_PROPERTY_METADATA_KEY = 'chronicle:compliance:subject:property';
@@ -33,15 +34,15 @@ const SUBJECT_TYPE_METADATA_KEY = 'chronicle:compliance:subject:type';
33
34
  * }
34
35
  * ```
35
36
  */
36
- export function subject(): PropertyDecorator {
37
- return (target: object, propertyKey: string | symbol) => {
37
+ export function subject(): ChroniclePropertyDecorator {
38
+ return decorateProperty((target: object, propertyKey: string | symbol) => {
38
39
  const key = propertyKey.toString();
39
40
  const declaringType = (target as { constructor: Function }).constructor;
40
41
 
41
42
  TypeIntrospector.trackProperty(declaringType, key);
42
43
  Reflect.defineMetadata(SUBJECT_PROPERTY_METADATA_KEY, true, target, key);
43
44
  Reflect.defineMetadata(SUBJECT_TYPE_METADATA_KEY, key, declaringType);
44
- };
45
+ });
45
46
  }
46
47
 
47
48
  /**
@@ -51,7 +52,7 @@ export function subject(): PropertyDecorator {
51
52
  * @returns True if the property has the @subject decorator; false otherwise.
52
53
  */
53
54
  export function hasSubjectMetadata(target: object, propertyKey: string): boolean {
54
- return Reflect.hasMetadata(SUBJECT_PROPERTY_METADATA_KEY, target, propertyKey);
55
+ return hasPropertyMetadata(SUBJECT_PROPERTY_METADATA_KEY, target, propertyKey);
55
56
  }
56
57
 
57
58
  /**
@@ -60,5 +61,5 @@ export function hasSubjectMetadata(target: object, propertyKey: string): boolean
60
61
  * @returns The decorated property name, or undefined when no property is decorated.
61
62
  */
62
63
  export function getSubjectPropertyName(type: Function): string | undefined {
63
- return Reflect.getMetadata(SUBJECT_TYPE_METADATA_KEY, type);
64
+ return getTypeOrFieldMetadata<string>(SUBJECT_TYPE_METADATA_KEY, type);
64
65
  }
@@ -7,6 +7,7 @@ import { SecurityMetadataType } from './SecurityMetadataType.js';
7
7
  import { EncryptionScope } from './EncryptionScope.js';
8
8
  import { EncryptedNotSupportedOnEventSourceId } from './EncryptedNotSupportedOnEventSourceId.js';
9
9
  import { TypeIntrospector } from '../types/index.js';
10
+ import { ChronicleClassOrPropertyDecorator, decorateClassOrProperty, getPropertyMetadata, hasPropertyMetadata } from '../types/propertyDecoratorMetadata.js';
10
11
 
11
12
  /** The property name this client uses everywhere for the event source identifier. */
12
13
  const EVENT_SOURCE_ID_PROPERTY = 'eventSourceId';
@@ -69,8 +70,8 @@ function metadataTypeFor(scope: EncryptionScope): SecurityMetadataType {
69
70
  * }
70
71
  * ```
71
72
  */
72
- export function encrypted(scope: EncryptionScope = EncryptionScope.Subject, details?: string): PropertyDecorator & ClassDecorator {
73
- return (target: object | Function, propertyKey?: string | symbol) => {
73
+ export function encrypted(scope: EncryptionScope = EncryptionScope.Subject, details?: string): ChronicleClassOrPropertyDecorator {
74
+ return decorateClassOrProperty((target: object | Function, propertyKey?: string | symbol) => {
74
75
  // Class decorator usage (for types like ConceptAs)
75
76
  if (typeof target === 'function' && propertyKey === undefined) {
76
77
  const metadata: SecurityMetadata = {
@@ -91,7 +92,7 @@ export function encrypted(scope: EncryptionScope = EncryptionScope.Subject, deta
91
92
  // look up the key that protects everything else. Mirrors @pii()'s
92
93
  // PIINotSupportedOnEventSourceId guard, for the same reason.
93
94
  if (key === EVENT_SOURCE_ID_PROPERTY) {
94
- throw new EncryptedNotSupportedOnEventSourceId(declaringType.name);
95
+ throw new EncryptedNotSupportedOnEventSourceId(declaringType.name || 'the decorated class');
95
96
  }
96
97
 
97
98
  TypeIntrospector.trackProperty(declaringType, key);
@@ -101,7 +102,7 @@ export function encrypted(scope: EncryptionScope = EncryptionScope.Subject, deta
101
102
  };
102
103
  Reflect.defineMetadata(ENCRYPTED_PROPERTY_METADATA_KEY, metadata, target, key);
103
104
  }
104
- };
105
+ });
105
106
  }
106
107
 
107
108
  /**
@@ -111,7 +112,7 @@ export function encrypted(scope: EncryptionScope = EncryptionScope.Subject, deta
111
112
  * @returns The security metadata, or undefined if not decorated with @encrypted.
112
113
  */
113
114
  export function getEncryptedMetadata(target: object, propertyKey: string): SecurityMetadata | undefined {
114
- return Reflect.getMetadata(ENCRYPTED_PROPERTY_METADATA_KEY, target, propertyKey);
115
+ return getPropertyMetadata<SecurityMetadata>(ENCRYPTED_PROPERTY_METADATA_KEY, target, propertyKey);
115
116
  }
116
117
 
117
118
  /**
@@ -121,7 +122,7 @@ export function getEncryptedMetadata(target: object, propertyKey: string): Secur
121
122
  * @returns True if the property has @encrypted decorator; false otherwise.
122
123
  */
123
124
  export function hasEncryptedMetadata(target: object, propertyKey: string): boolean {
124
- return Reflect.hasMetadata(ENCRYPTED_PROPERTY_METADATA_KEY, target, propertyKey);
125
+ return hasPropertyMetadata(ENCRYPTED_PROPERTY_METADATA_KEY, target, propertyKey);
125
126
  }
126
127
 
127
128
  /**
@@ -18,6 +18,11 @@ export class CorrelationIdManager implements ICorrelationIdAccessor, ICorrelatio
18
18
  return this._storage.getStore() ?? CorrelationId.create();
19
19
  }
20
20
 
21
+ /** Runs an async or synchronous operation with a correlation id, restoring the caller afterward. */
22
+ run<T>(correlationId: CorrelationId, callback: () => T): T {
23
+ return this._storage.run(correlationId, callback);
24
+ }
25
+
21
26
  /** @inheritdoc */
22
27
  setCurrent(correlationId: CorrelationId): void {
23
28
  this._storage.enterWith(correlationId);
@@ -117,7 +117,7 @@ export class ChronicleClient {
117
117
  eventStore: storeName.value
118
118
  });
119
119
  ensureCommandSuccess('ensure event store', await this._connection.eventStores.ensureEventStore({ Name: storeName.value }));
120
- const created = new EventStore(storeName, namespaceName, this._connection, this._lifecycle, this.options.defaultSinkTypeId);
120
+ const created = new EventStore(storeName, namespaceName, this._connection, this._lifecycle, this.options.defaultSinkTypeId, this.options.clientArtifactsProvider);
121
121
  this._stores.set(key, created);
122
122
  await this.registerArtifactsForStore(created, 'new-store');
123
123
  return created;
@@ -1 +1 @@
1
- {"version":3,"file":"ChronicleClient.js","sourceRoot":"","sources":["../ChronicleClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChronicleClient.js","sourceRoot":"","sources":["../ChronicleClient.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ import { IReactors } from './reactors/IReactors.js';
13
13
  import { IReducers } from './reducers/IReducers.js';
14
14
  import { IReadModels } from './readModels/IReadModels.js';
15
15
  import { IEventSeeding } from './seeding/IEventSeeding.js';
16
+ import type { IClientArtifactsProvider } from './artifacts/IClientArtifactsProvider.js';
16
17
  import { IUnitOfWorkManager } from './transactions/IUnitOfWorkManager.js';
17
18
  import { IJobs } from './jobs/IJobs.js';
18
19
  import { IWebhooks } from './webhooks/IWebhooks.js';
@@ -29,6 +30,7 @@ export declare class EventStore implements IEventStore {
29
30
  readonly name: EventStoreName;
30
31
  readonly namespace: EventStoreNamespaceName;
31
32
  private readonly _connection;
33
+ private readonly _artifacts;
32
34
  private readonly _logger;
33
35
  readonly eventLog: IEventLog;
34
36
  readonly eventTypes: IEventTypes;
@@ -47,7 +49,7 @@ export declare class EventStore implements IEventStore {
47
49
  readonly pii: IPIIManager;
48
50
  readonly failedPartitions: IFailedPartitions;
49
51
  private readonly _sequences;
50
- constructor(name: EventStoreName, namespace: EventStoreNamespaceName, _connection: ChronicleConnection, lifecycle: ConnectionLifecycle, defaultSinkTypeId: string);
52
+ constructor(name: EventStoreName, namespace: EventStoreNamespaceName, _connection: ChronicleConnection, lifecycle: ConnectionLifecycle, defaultSinkTypeId: string, _artifacts?: IClientArtifactsProvider);
51
53
  /**
52
54
  * Registers all discovered artifacts with the Chronicle Kernel.
53
55
  * Called on initial connect and on reconnect.
@@ -1 +1 @@
1
- {"version":3,"file":"EventStore.d.ts","sourceRoot":"","sources":["../EventStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EventStore.d.ts","sourceRoot":"","sources":["../EventStore.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ import { ReadModels } from './readModels/ReadModels.js';
16
16
  import { EventSeeding } from './seeding/EventSeeding.js';
17
17
  import { ChronicleTracer } from './Tracing.js';
18
18
  import { DefaultClientArtifactsProvider } from './artifacts/DefaultClientArtifactsProvider.js';
19
+ import { validateArtifactSchemas } from './artifacts/validateArtifactSchemas.js';
19
20
  import { UnitOfWorkManager } from './transactions/UnitOfWorkManager.js';
20
21
  import { Jobs } from './jobs/Jobs.js';
21
22
  import { Webhooks } from './webhooks/Webhooks.js';
@@ -32,6 +33,7 @@ export class EventStore {
32
33
  name;
33
34
  namespace;
34
35
  _connection;
36
+ _artifacts;
35
37
  _logger = diag.createComponentLogger({
36
38
  namespace: '@cratis/chronicle/EventStore'
37
39
  });
@@ -52,14 +54,15 @@ export class EventStore {
52
54
  pii;
53
55
  failedPartitions;
54
56
  _sequences = new Map();
55
- constructor(name, namespace, _connection, lifecycle, defaultSinkTypeId) {
57
+ constructor(name, namespace, _connection, lifecycle, defaultSinkTypeId, _artifacts = DefaultClientArtifactsProvider.default) {
56
58
  this.name = name;
57
59
  this.namespace = namespace;
58
60
  this._connection = _connection;
61
+ this._artifacts = _artifacts;
59
62
  this.unitOfWorkManager = new UnitOfWorkManager(this);
60
63
  this.eventLog = new EventLog(name.value, namespace.value, _connection, this.unitOfWorkManager);
61
64
  this._sequences.set(EventSequenceId.eventLog.value, this.eventLog);
62
- const artifacts = DefaultClientArtifactsProvider.default;
65
+ const artifacts = this._artifacts;
63
66
  this.eventTypes = new EventTypes(name.value, _connection, artifacts);
64
67
  this.constraints = new Constraints(name.value, _connection, artifacts);
65
68
  this.projections = new Projections(name.value, namespace.value, _connection, artifacts, defaultSinkTypeId);
@@ -94,6 +97,7 @@ export class EventStore {
94
97
  this.webhooks.discover(),
95
98
  this.seeding.discover()
96
99
  ]);
100
+ validateArtifactSchemas(this._artifacts);
97
101
  this._logger.debug('Registering discovered artifacts', {
98
102
  eventStore: this.name.value,
99
103
  namespace: this.namespace.value