@bett3r-dev/pv3-types 1.0.0 → 1.11.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 (137) hide show
  1. package/CHANGELOG.md +305 -0
  2. package/build/adminPlugin.d.ts +24 -0
  3. package/build/adminPlugin.d.ts.map +1 -0
  4. package/build/{eventsourcing/utils.js → adminPlugin.js} +1 -1
  5. package/build/adminPlugin.js.map +1 -0
  6. package/build/aggregateSchema.d.ts +94 -0
  7. package/build/aggregateSchema.d.ts.map +1 -0
  8. package/build/aggregateSchema.js +287 -0
  9. package/build/aggregateSchema.js.map +1 -0
  10. package/build/authentication.d.ts +179 -78
  11. package/build/authentication.d.ts.map +1 -1
  12. package/build/authentication.js +62 -19
  13. package/build/authentication.js.map +1 -1
  14. package/build/cache.d.ts +50 -4
  15. package/build/cache.d.ts.map +1 -1
  16. package/build/clusterAdministration.d.ts +712 -225
  17. package/build/clusterAdministration.d.ts.map +1 -1
  18. package/build/clusterAdministration.js +175 -52
  19. package/build/clusterAdministration.js.map +1 -1
  20. package/build/configuration.d.ts +26 -5
  21. package/build/configuration.d.ts.map +1 -1
  22. package/build/database.d.ts +240 -56
  23. package/build/database.d.ts.map +1 -1
  24. package/build/database.js +102 -20
  25. package/build/database.js.map +1 -1
  26. package/build/endpoints.d.ts +141 -41
  27. package/build/endpoints.d.ts.map +1 -1
  28. package/build/endpoints.js +50 -26
  29. package/build/endpoints.js.map +1 -1
  30. package/build/errors.d.ts +166 -0
  31. package/build/errors.d.ts.map +1 -0
  32. package/build/errors.js +276 -0
  33. package/build/errors.js.map +1 -0
  34. package/build/evenstore.d.ts +47 -7
  35. package/build/evenstore.d.ts.map +1 -1
  36. package/build/eventsourcing/aggregateBuilder.d.ts +17 -8
  37. package/build/eventsourcing/aggregateBuilder.d.ts.map +1 -1
  38. package/build/eventsourcing/commandBuilder.d.ts +20 -13
  39. package/build/eventsourcing/commandBuilder.d.ts.map +1 -1
  40. package/build/eventsourcing/commandHandlers.d.ts +155 -33
  41. package/build/eventsourcing/commandHandlers.d.ts.map +1 -1
  42. package/build/eventsourcing/commandHandlers.js +62 -14
  43. package/build/eventsourcing/commandHandlers.js.map +1 -1
  44. package/build/eventsourcing/eventHandlers.d.ts +173 -44
  45. package/build/eventsourcing/eventHandlers.d.ts.map +1 -1
  46. package/build/eventsourcing/eventHandlers.js +29 -21
  47. package/build/eventsourcing/eventHandlers.js.map +1 -1
  48. package/build/eventsourcing/eventHandlersBuilder.d.ts +18 -12
  49. package/build/eventsourcing/eventHandlersBuilder.d.ts.map +1 -1
  50. package/build/eventsourcing/eventHandlersBuilder.js.map +1 -1
  51. package/build/eventsourcing/eventsourcing.types.d.ts +322 -0
  52. package/build/eventsourcing/eventsourcing.types.d.ts.map +1 -0
  53. package/build/eventsourcing/eventsourcing.types.js +26 -0
  54. package/build/eventsourcing/eventsourcing.types.js.map +1 -0
  55. package/build/eventsourcing/externalSystemBuilder.d.ts +8 -7
  56. package/build/eventsourcing/externalSystemBuilder.d.ts.map +1 -1
  57. package/build/eventsourcing/index.d.ts +2 -378
  58. package/build/eventsourcing/index.d.ts.map +1 -1
  59. package/build/eventsourcing/index.js +2 -23
  60. package/build/eventsourcing/index.js.map +1 -1
  61. package/build/eventsourcing/invariants.d.ts +34 -10
  62. package/build/eventsourcing/invariants.d.ts.map +1 -1
  63. package/build/eventsourcing/shapeChangeForSubscriber.d.ts +33 -0
  64. package/build/eventsourcing/shapeChangeForSubscriber.d.ts.map +1 -0
  65. package/build/eventsourcing/shapeChangeForSubscriber.js +47 -0
  66. package/build/eventsourcing/shapeChangeForSubscriber.js.map +1 -0
  67. package/build/index.d.ts +6 -1
  68. package/build/index.d.ts.map +1 -1
  69. package/build/index.js +6 -1
  70. package/build/index.js.map +1 -1
  71. package/build/infrastructure.d.ts +9 -1
  72. package/build/infrastructure.d.ts.map +1 -1
  73. package/build/infrastructure.js +33 -1
  74. package/build/infrastructure.js.map +1 -1
  75. package/build/livenessWatchdog.d.ts +28 -0
  76. package/build/livenessWatchdog.d.ts.map +1 -0
  77. package/build/livenessWatchdog.js +43 -0
  78. package/build/livenessWatchdog.js.map +1 -0
  79. package/build/logger.d.ts +8 -9
  80. package/build/logger.d.ts.map +1 -1
  81. package/build/logger.js +18 -6
  82. package/build/logger.js.map +1 -1
  83. package/build/outboxManager.d.ts +858 -14
  84. package/build/outboxManager.d.ts.map +1 -1
  85. package/build/outboxManager.js +173 -15
  86. package/build/outboxManager.js.map +1 -1
  87. package/build/permissions.d.ts +47 -0
  88. package/build/permissions.d.ts.map +1 -0
  89. package/build/permissions.js +3 -0
  90. package/build/permissions.js.map +1 -0
  91. package/build/ports.d.ts +10 -10
  92. package/build/ports.d.ts.map +1 -1
  93. package/build/routesAuth.d.ts +17 -25
  94. package/build/routesAuth.d.ts.map +1 -1
  95. package/build/routesAuth.js +4 -14
  96. package/build/routesAuth.js.map +1 -1
  97. package/build/typedEventEmitter.d.ts +7 -13
  98. package/build/typedEventEmitter.d.ts.map +1 -1
  99. package/build/typedEventEmitter.js +2 -2
  100. package/build/typedEventEmitter.js.map +1 -1
  101. package/build/userSession.d.ts +8 -0
  102. package/build/userSession.d.ts.map +1 -0
  103. package/build/userSession.js +3 -0
  104. package/build/userSession.js.map +1 -0
  105. package/package.json +22 -7
  106. package/build/eventsourcing/utils.d.ts +0 -4
  107. package/build/eventsourcing/utils.d.ts.map +0 -1
  108. package/build/eventsourcing/utils.js.map +0 -1
  109. package/build/validation.d.ts +0 -64
  110. package/build/validation.d.ts.map +0 -1
  111. package/build/validation.js +0 -57
  112. package/build/validation.js.map +0 -1
  113. package/src/authentication.ts +0 -273
  114. package/src/cache.ts +0 -109
  115. package/src/clusterAdministration.ts +0 -216
  116. package/src/configuration.ts +0 -71
  117. package/src/database.ts +0 -157
  118. package/src/endpoints.ts +0 -198
  119. package/src/evenstore.ts +0 -27
  120. package/src/eventsourcing/aggregateBuilder.ts +0 -11
  121. package/src/eventsourcing/commandBuilder.ts +0 -64
  122. package/src/eventsourcing/commandHandlers.ts +0 -137
  123. package/src/eventsourcing/eventHandlers.ts +0 -118
  124. package/src/eventsourcing/eventHandlersBuilder.ts +0 -42
  125. package/src/eventsourcing/externalSystemBuilder.ts +0 -20
  126. package/src/eventsourcing/index.ts +0 -111
  127. package/src/eventsourcing/invariants.ts +0 -27
  128. package/src/eventsourcing/utils.ts +0 -4
  129. package/src/index.ts +0 -15
  130. package/src/infrastructure.ts +0 -41
  131. package/src/logger.ts +0 -45
  132. package/src/outboxManager.ts +0 -36
  133. package/src/ports.ts +0 -42
  134. package/src/routesAuth.ts +0 -58
  135. package/src/typedEventEmitter.ts +0 -73
  136. package/src/validation.ts +0 -89
  137. package/tsconfig.json +0 -15
@@ -0,0 +1,322 @@
1
+ import { BaseSchema, ObjectSchema } from '@bett3r-dev/jsonschema-definer';
2
+ import { CollectionFilter, Document } from '../database';
3
+ import { ArtifactType, EndpointActionParams, ResponseObject } from '../endpoints';
4
+ import { AggregateBuilderFunctionType, EventHandler, EventSourcingCommandHandlers, ExecuteCommandFunction, ExternalSystemBuilderFunctionType, PolicyBuilderFunction, QueryHandler, ReadmodelBuilderFunction, System } from './';
5
+ export type CustomRouteParams = {
6
+ name: string;
7
+ variable?: string;
8
+ };
9
+ export type EventsourcingRegisteredEndpoints = {
10
+ aggregates: Record<string, {
11
+ getEndpoints: any;
12
+ commands: Record<string, {
13
+ route: string;
14
+ events: string[];
15
+ }>;
16
+ filePath: string;
17
+ subdomain?: string;
18
+ }>;
19
+ systems: Record<string, {
20
+ getEndpoints: any;
21
+ commands: Record<string, {
22
+ route: string;
23
+ events: string[];
24
+ }>;
25
+ filePath: string;
26
+ subdomain?: string;
27
+ }>;
28
+ policies: Record<string, {
29
+ route: string;
30
+ events: string[];
31
+ filePath: string;
32
+ subdomain?: string;
33
+ commandHandlerName?: string;
34
+ linkedTo?: string[];
35
+ isStandalone?: boolean;
36
+ }>;
37
+ projectors: Record<string, {
38
+ route: string;
39
+ events: string[];
40
+ filePath: string;
41
+ subdomain?: string;
42
+ }>;
43
+ };
44
+ export type Artifact = {
45
+ name: string;
46
+ subdomain?: string;
47
+ filePath?: string;
48
+ artifactType?: ArtifactType;
49
+ };
50
+ export type Message<Payload, Name = string> = {
51
+ name?: Name;
52
+ data?: Payload;
53
+ description?: string;
54
+ friendlyName?: Record<'es' | 'en' | 'pt', string>;
55
+ };
56
+ export type MessageSchema<Payload> = {
57
+ schema?: BaseSchema<Payload> | BaseSchema<Payload, false> | ObjectSchema | BaseSchema | null;
58
+ };
59
+ export type EventInstance<Payload = any, Name = any> = Message<Payload, Name> & MessageSchema<Payload>;
60
+ export declare const Event: <Payload>(eventInstance: EventInstance<Payload>) => EventInstance<Payload>;
61
+ export type EventFactory<Name = any, EventPayload = any> = () => EventInstance<EventPayload, Name>;
62
+ export declare const EventMetadataBaseSchema: ObjectSchema<{
63
+ causationId?: string | undefined;
64
+ correlationId?: string | undefined;
65
+ }, true>;
66
+ export type EventMetadataBaseType = {
67
+ causationId?: string;
68
+ correlationId?: string;
69
+ /**
70
+ * Stamped by the outbox (TV1-1946) on a **definite** redelivery — i.e. the dispatched bit was
71
+ * already set when the event was re-dispatched (only reachable via an operator replay such as
72
+ * the admin "Set Single Data Split Position"). It is false-positive-free: a normal first
73
+ * delivery, a gap-recovered event, a retry, or a crash-before-commit re-dispatch is NOT stamped
74
+ * (the outbox cannot prove those were delivered before). Consumers use it to **suppress
75
+ * non-idempotent, non-dedupable side effects** (e.g. notifications/emails) on a replay while
76
+ * still rebuilding idempotent state. It is NOT a substitute for a dedup key when absolute
77
+ * exactly-once side effects are required — see docs/development/outbox-architecture.md.
78
+ */
79
+ isRedelivery?: boolean;
80
+ [key: string]: any;
81
+ };
82
+ export type EventToCommit<Payload = any> = {
83
+ name: string;
84
+ data?: Payload;
85
+ stream: string;
86
+ metadata: EventMetadataBaseType;
87
+ };
88
+ export type CommittedEvent<Payload = any> = EventToCommit<Payload> & {
89
+ id: string;
90
+ position: number;
91
+ timestamp: string;
92
+ version: number | null;
93
+ };
94
+ export declare const CommittedEventSchema: <T>(payloadSchema: BaseSchema<T>, names?: string | string[]) => ObjectSchema<[import("Object/Pick")._Pick<{
95
+ id: string;
96
+ position: number;
97
+ name: any;
98
+ timestamp: string;
99
+ data: T | undefined;
100
+ version: number | null;
101
+ stream: string;
102
+ metadata: {
103
+ causationId?: string | undefined;
104
+ correlationId?: string | undefined;
105
+ };
106
+ }, import("Object/SelectKeys")._SelectKeys<{
107
+ id: string;
108
+ position: number;
109
+ name: any;
110
+ timestamp: string;
111
+ data: T | undefined;
112
+ version: number | null;
113
+ stream: string;
114
+ metadata: {
115
+ causationId?: string | undefined;
116
+ correlationId?: string | undefined;
117
+ };
118
+ }, undefined, "default">> extends infer T_1 ? { [K in keyof T_1]?: T_1[K] | undefined; } : never] extends [import("List/List").List] ? import("List/List").List & (import("Object/Pick")._Pick<{
119
+ id: string;
120
+ position: number;
121
+ name: any;
122
+ timestamp: string;
123
+ data: T | undefined;
124
+ version: number | null;
125
+ stream: string;
126
+ metadata: {
127
+ causationId?: string | undefined;
128
+ correlationId?: string | undefined;
129
+ };
130
+ }, import("Object/SelectKeys")._SelectKeys<{
131
+ id: string;
132
+ position: number;
133
+ name: any;
134
+ timestamp: string;
135
+ data: T | undefined;
136
+ version: number | null;
137
+ stream: string;
138
+ metadata: {
139
+ causationId?: string | undefined;
140
+ correlationId?: string | undefined;
141
+ };
142
+ }, undefined, "default">> extends infer T_1 ? { [K in keyof T_1]?: T_1[K] | undefined; } : never) : { [K in keyof (import("List/ObjectOf").ObjectOf<import("Object/Pick")._Pick<{
143
+ id: string;
144
+ position: number;
145
+ name: any;
146
+ timestamp: string;
147
+ data: T | undefined;
148
+ version: number | null;
149
+ stream: string;
150
+ metadata: {
151
+ causationId?: string | undefined;
152
+ correlationId?: string | undefined;
153
+ };
154
+ }, import("Object/SelectKeys")._SelectKeys<{
155
+ id: string;
156
+ position: number;
157
+ name: any;
158
+ timestamp: string;
159
+ data: T | undefined;
160
+ version: number | null;
161
+ stream: string;
162
+ metadata: {
163
+ causationId?: string | undefined;
164
+ correlationId?: string | undefined;
165
+ };
166
+ }, undefined, "default">> extends infer T_1 ? { [K in keyof T_1]?: T_1[K] | undefined; } : never> & import("Object/Omit")._Omit<{
167
+ id: string;
168
+ position: number;
169
+ name: any;
170
+ timestamp: string;
171
+ data: T | undefined;
172
+ version: number | null;
173
+ stream: string;
174
+ metadata: {
175
+ causationId?: string | undefined;
176
+ correlationId?: string | undefined;
177
+ };
178
+ }, keyof import("List/ObjectOf").ObjectOf<import("Object/Pick")._Pick<{
179
+ id: string;
180
+ position: number;
181
+ name: any;
182
+ timestamp: string;
183
+ data: T | undefined;
184
+ version: number | null;
185
+ stream: string;
186
+ metadata: {
187
+ causationId?: string | undefined;
188
+ correlationId?: string | undefined;
189
+ };
190
+ }, import("Object/SelectKeys")._SelectKeys<{
191
+ id: string;
192
+ position: number;
193
+ name: any;
194
+ timestamp: string;
195
+ data: T | undefined;
196
+ version: number | null;
197
+ stream: string;
198
+ metadata: {
199
+ causationId?: string | undefined;
200
+ correlationId?: string | undefined;
201
+ };
202
+ }, undefined, "default">> extends infer T_1 ? { [K in keyof T_1]?: T_1[K] | undefined; } : never>>)]: import("Object/Patch").PatchProp<import("Object/At").AtBasic<import("List/ObjectOf").ObjectOf<import("Object/Pick")._Pick<{
203
+ id: string;
204
+ position: number;
205
+ name: any;
206
+ timestamp: string;
207
+ data: T | undefined;
208
+ version: number | null;
209
+ stream: string;
210
+ metadata: {
211
+ causationId?: string | undefined;
212
+ correlationId?: string | undefined;
213
+ };
214
+ }, import("Object/SelectKeys")._SelectKeys<{
215
+ id: string;
216
+ position: number;
217
+ name: any;
218
+ timestamp: string;
219
+ data: T | undefined;
220
+ version: number | null;
221
+ stream: string;
222
+ metadata: {
223
+ causationId?: string | undefined;
224
+ correlationId?: string | undefined;
225
+ };
226
+ }, undefined, "default">> extends infer T_1 ? { [K in keyof T_1]?: T_1[K] | undefined; } : never>, K>, import("Object/At").AtBasic<{
227
+ id: string;
228
+ position: number;
229
+ name: any;
230
+ timestamp: string;
231
+ data: T | undefined;
232
+ version: number | null;
233
+ stream: string;
234
+ metadata: {
235
+ causationId?: string | undefined;
236
+ correlationId?: string | undefined;
237
+ };
238
+ }, K>, K, keyof import("List/ObjectOf").ObjectOf<import("Object/Pick")._Pick<{
239
+ id: string;
240
+ position: number;
241
+ name: any;
242
+ timestamp: string;
243
+ data: T | undefined;
244
+ version: number | null;
245
+ stream: string;
246
+ metadata: {
247
+ causationId?: string | undefined;
248
+ correlationId?: string | undefined;
249
+ };
250
+ }, import("Object/SelectKeys")._SelectKeys<{
251
+ id: string;
252
+ position: number;
253
+ name: any;
254
+ timestamp: string;
255
+ data: T | undefined;
256
+ version: number | null;
257
+ stream: string;
258
+ metadata: {
259
+ causationId?: string | undefined;
260
+ correlationId?: string | undefined;
261
+ };
262
+ }, undefined, "default">> extends infer T_1 ? { [K in keyof T_1]?: T_1[K] | undefined; } : never>>; }, true>;
263
+ export type GetMessageType<Payload> = Payload extends (() => EventInstance<infer T>) ? T : unknown;
264
+ export type Builder<T = any> = {
265
+ build: () => T;
266
+ };
267
+ export type GetBuilderType<T> = T extends (Builder<infer InnerT>) ? InnerT : T;
268
+ export type SubscriptionOptions = {
269
+ snapshot?: boolean;
270
+ changes?: 'delta' | 'signal';
271
+ };
272
+ export type ReadmodelSubscription<Model extends Document = any> = {
273
+ id: string;
274
+ res: ResponseObject;
275
+ filter: CollectionFilter<Model>[];
276
+ userId?: string;
277
+ subscriptionName?: string;
278
+ accountId?: string;
279
+ options?: SubscriptionOptions;
280
+ /**
281
+ * The request that OPENED this subscription, retained verbatim so a
282
+ * `responseFormatter` can be applied per subscriber with the same
283
+ * `EndpointActionParams` shape the query path passes.
284
+ *
285
+ * Snapshot semantics: this is captured once and never refreshed. Permission
286
+ * and query-param changes do not reach an open subscription — the client
287
+ * re-subscribes (teselly TV1-2284).
288
+ */
289
+ caller?: EndpointActionParams;
290
+ };
291
+ export type ReadStreamOptions = {
292
+ stream?: string;
293
+ direction?: 'forwards' | 'backwards';
294
+ /** Event position */
295
+ from?: number;
296
+ /** Event position */
297
+ to?: number;
298
+ limit?: number;
299
+ events?: string[];
300
+ /** Date in ISO 8601 format */
301
+ before?: string;
302
+ /** Date in ISO 8601 format */
303
+ after?: string;
304
+ correlationId?: string;
305
+ userId?: string;
306
+ };
307
+ export type ReadMultipleStreamOptions = {
308
+ streams: Record<string, ReadStreamOptions>;
309
+ };
310
+ export type EventSourcingLibraryType<METADATA = any, USER = any> = Pick<EventSourcingCommandHandlers<USER>, 'executeCommand' | 'loadAggregateState' | 'loadStream'> & {
311
+ routeEventHandler: (eventHandler: EventHandler | Builder<EventHandler>) => void;
312
+ routeCommandHandler: (commandHandler: System) => void;
313
+ handleEvent: (eventHandler: EventHandler, executeCommand: ExecuteCommandFunction<USER>) => (event: CommittedEvent) => Promise<any>;
314
+ logEventsourcingRoutes: () => void;
315
+ defaultQueryHandler: QueryHandler<USER>;
316
+ AggregateBuilder: AggregateBuilderFunctionType<METADATA, USER>;
317
+ ExternalSystemBuilder: ExternalSystemBuilderFunctionType<METADATA, USER>;
318
+ ReadmodelBuilder: ReadmodelBuilderFunction<USER>;
319
+ PolicyBuilder: PolicyBuilderFunction;
320
+ registeredEndpoints: EventsourcingRegisteredEndpoints;
321
+ };
322
+ //# sourceMappingURL=eventsourcing.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventsourcing.types.d.ts","sourceRoot":"","sources":["../../src/eventsourcing/eventsourcing.types.ts"],"names":[],"mappings":"AAAA,OAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAClF,OAAO,EAAE,4BAA4B,EAAE,YAAY,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,iCAAiC,EAAE,qBAAqB,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAEhO,MAAM,MAAM,iBAAiB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpE,MAAM,MAAM,gCAAgC,GAAG;IAC7C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;QACzB,YAAY,EAAE,GAAG,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAC;QAC9D,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QACtB,YAAY,EAAE,GAAG,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAC;QAC9D,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;QACvB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC,CAAC;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;QACzB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;CACJ,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAC;AAEF,MAAM,MAAM,OAAO,CAAC,OAAO,EAAE,IAAI,GAAG,MAAM,IAAI;IAC5C,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,MAAM,CAAC,CAAA;CAClD,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,OAAO,IAAI;IACnC,MAAM,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,YAAY,GAAG,UAAU,GAAG,IAAI,CAAA;CAC7F,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,OAAO,GAAC,GAAG,EAAE,IAAI,GAAC,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;AAEnG,eAAO,MAAM,KAAK,GAAI,OAAO,iBAAkB,aAAa,CAAC,OAAO,CAAC,KAAI,aAAa,CAAC,OAAO,CAAkB,CAAC;AAEjH,MAAM,MAAM,YAAY,CAAC,IAAI,GAAC,GAAG,EAAE,YAAY,GAAG,GAAG,IAAI,MAAM,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AAEjG,eAAO,MAAM,uBAAuB;;;QAGL,CAAC;AAEhC,MAAM,MAAM,qBAAqB,GAAG;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,OAAO,GAAG,GAAG,IAAI;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,qBAAqB,CAAA;CAChC,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,OAAO,GAAG,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG;IACnE,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CACvB,CAAC;AAIF,eAAO,MAAM,oBAAoB,GAAI,CAAC,iBAAkB,UAAU,CAAC,CAAC,CAAC,UAAU,MAAM,GAAG,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4GAS9F,CAAC;AAEH,MAAM,MAAM,cAAc,CAAC,OAAO,IAAI,OAAO,SAAS,CAAC,MAAK,aAAa,CAAC,MAAM,CAAC,CAAC,CAAE,GAAG,CAAC,GAAG,OAAO,CAAC;AAEnG,MAAM,MAAM,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI;IAC7B,KAAK,EAAC,MAAM,CAAC,CAAA;CACd,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS,CAAE,OAAO,CAAC,MAAM,MAAM,CAAC,CAAE,GAAG,MAAM,GAAG,CAAC,CAAC;AAUjF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAAC,KAAK,SAAS,QAAQ,GAAG,GAAG,IAAI;IAChE,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,cAAc,CAAC;IACpB,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,oBAAoB,CAAC;CAC/B,CAAC;AAGF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;IACrC,qBAAqB;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;CAC3C,CAAC;AAEF,MAAM,MAAM,wBAAwB,CAAC,QAAQ,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,EAAE,gBAAgB,GAAG,oBAAoB,GAAG,YAAY,CAAC,GAAG;IACpK,iBAAiB,EAAE,CAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,KAAM,IAAI,CAAC;IAClF,mBAAmB,EAAE,CAAE,cAAc,EAAE,MAAM,KAAM,IAAI,CAAC;IAExD,WAAW,EAAE,CAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,sBAAsB,CAAC,IAAI,CAAC,KAAM,CAAE,KAAK,EAAE,cAAc,KAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IACvI,sBAAsB,EAAE,MAAM,IAAI,CAAA;IAElC,mBAAmB,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;IAExC,gBAAgB,EAAE,4BAA4B,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC/D,qBAAqB,EAAE,iCAAiC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACzE,gBAAgB,EAAE,wBAAwB,CAAC,IAAI,CAAC,CAAC;IACjD,aAAa,EAAE,qBAAqB,CAAC;IAErC,mBAAmB,EAAE,gCAAgC,CAAA;CACtD,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.CommittedEventSchema = exports.EventMetadataBaseSchema = exports.Event = void 0;
7
+ const jsonschema_definer_1 = __importDefault(require("@bett3r-dev/jsonschema-definer"));
8
+ const Event = (eventInstance) => eventInstance;
9
+ exports.Event = Event;
10
+ exports.EventMetadataBaseSchema = jsonschema_definer_1.default.shape({
11
+ causationId: jsonschema_definer_1.default.string().optional(),
12
+ correlationId: jsonschema_definer_1.default.string().optional()
13
+ }).additionalProperties(true);
14
+ const ensureArray = (maybeArray) => Array.isArray(maybeArray) ? maybeArray : [maybeArray];
15
+ const CommittedEventSchema = (payloadSchema, names) => jsonschema_definer_1.default.shape({
16
+ id: jsonschema_definer_1.default.string(),
17
+ position: jsonschema_definer_1.default.number(),
18
+ name: (names ? jsonschema_definer_1.default.string().enum(...ensureArray(names)) : jsonschema_definer_1.default.string()),
19
+ timestamp: jsonschema_definer_1.default.string().format('date-time'),
20
+ data: payloadSchema.optional(),
21
+ version: jsonschema_definer_1.default.number().nullable(),
22
+ stream: jsonschema_definer_1.default.string(),
23
+ metadata: exports.EventMetadataBaseSchema
24
+ });
25
+ exports.CommittedEventSchema = CommittedEventSchema;
26
+ //# sourceMappingURL=eventsourcing.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventsourcing.types.js","sourceRoot":"","sources":["../../src/eventsourcing/eventsourcing.types.ts"],"names":[],"mappings":";;;;;;AAAA,wFAA6E;AAyDtE,MAAM,KAAK,GAAG,CAAW,aAAqC,EAA2B,EAAE,CAAC,aAAa,CAAC;AAApG,QAAA,KAAK,GAAL,KAAK,CAA+F;AAIpG,QAAA,uBAAuB,GAAG,4BAAC,CAAC,KAAK,CAAC;IAC7C,WAAW,EAAE,4BAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,aAAa,EAAE,4BAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAC,oBAAoB,CAAE,IAAI,CAAE,CAAC;AAiChC,MAAM,WAAW,GAAG,CAAE,UAAe,EAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAE,UAAU,CAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;AAE5F,MAAM,oBAAoB,GAAG,CAAK,aAA4B,EAAE,KAAyB,EAAE,EAAE,CAAC,4BAAC,CAAC,KAAK,CAAC;IAC3G,EAAE,EAAE,4BAAC,CAAC,MAAM,EAAE;IACd,QAAQ,EAAE,4BAAC,CAAC,MAAM,EAAE;IACpB,IAAI,EAAE,CAAE,KAAK,CAAC,CAAC,CAAC,4BAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAE,GAAG,WAAW,CAAE,KAAK,CAAE,CAAC,CAAC,CAAC,CAAC,4BAAC,CAAC,MAAM,EAAE,CAAC;IACvE,SAAS,EAAE,4BAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAE,WAAW,CAAE;IAC3C,IAAI,EAAE,aAAa,CAAC,QAAQ,EAAE;IAC9B,OAAO,EAAE,4BAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,MAAM,EAAE,4BAAC,CAAC,MAAM,EAAE;IAClB,QAAQ,EAAE,QAAA,uBAAuB;CAClC,CAAC,CAAC;AATU,QAAA,oBAAoB,GAApB,oBAAoB,CAS9B"}
@@ -1,13 +1,14 @@
1
- import { Builder, Command, CommandBuilderType, EventFactory, System } from '.';
2
- import { CreateEventType } from './utils';
3
- export type ExternalSystemBuilderType<Model, EVENTS extends Record<string, EventFactory>> = {
4
- withCommandTemplate: (command: Command) => ExternalSystemBuilderType<Model, EVENTS>;
1
+ import { BaseSchema } from '@bett3r-dev/jsonschema-definer';
2
+ import { Builder, Command, CommandBuilderType, CommandTemplate, EventFactory, System } from '.';
3
+ export type ExternalSystemBuilderFunctionType<METADATA = any, USER = any> = <Model, EVENTS extends Record<string, EventFactory>>(events: EVENTS, schema?: BaseSchema<Model>, system?: Partial<System>) => ExternalSystemBuilderType<METADATA, USER, Model, EVENTS>;
4
+ export type ExternalSystemBuilderType<METADATA = any, USER = any, Model = any, EVENTS extends Record<string, EventFactory> = any> = {
5
+ withCommandTemplate: (template: CommandTemplate<EVENTS, Extract<keyof EVENTS, string>, Model>) => ExternalSystemBuilderType<METADATA, USER, Model, EVENTS>;
6
+ withSubdomain: (subdomain: string) => ExternalSystemBuilderType<METADATA, USER, Model, EVENTS>;
5
7
  /**
6
8
  * This is the last function that builds the aggregate, the last function you'll call
7
9
  */
8
- withCommands: <EVENT extends keyof EVENTS, Commands extends Record<string, Command<EVENTS, EVENT, Model> | Builder<Command<EVENTS, EVENT, Model>>>>(commands: (params: {
9
- commandBuilder: CommandBuilderType<Model, EVENTS>;
10
- createEvent: CreateEventType<System<any, EVENTS>>;
10
+ withCommands: <EVENT extends Extract<keyof EVENTS, string>, Commands extends Record<string, Command<EVENTS, EVENT, Model> | Builder<Command<EVENTS, EVENT, Model>>>>(commands: (params: {
11
+ commandBuilder: CommandBuilderType<METADATA, USER, Model, EVENTS>;
11
12
  }) => Commands) => System<Commands, EVENTS>;
12
13
  system: System<any, EVENTS>;
13
14
  };
@@ -1 +1 @@
1
- {"version":3,"file":"externalSystemBuilder.d.ts","sourceRoot":"","sources":["../../src/eventsourcing/externalSystemBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,MAAM,MAAM,yBAAyB,CAAC,KAAK,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI;IAE1F,mBAAmB,EAAE,CAAE,OAAO,EAAE,OAAO,KAAM,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAGrF;;OAEG;IACH,YAAY,EAAE,CACZ,KAAK,SAAS,MAAM,MAAM,EAC1B,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACrG,QAAQ,EAAE,CAAE,MAAM,EAAE;QACtB,cAAc,EAAE,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAClD,WAAW,EAAE,eAAe,CAAC,MAAM,CAAE,GAAG,EAAE,MAAM,CAAE,CAAC,CAAC;KACrD,KAAK,QAAQ,KAAM,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAC5C,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;CAC5B,CAAA"}
1
+ {"version":3,"file":"externalSystemBuilder.d.ts","sourceRoot":"","sources":["../../src/eventsourcing/externalSystemBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC;AAEhG,MAAM,MAAM,iCAAiC,CAAC,QAAQ,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EAAG,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,KAAM,yBAAyB,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAErQ,MAAM,MAAM,yBAAyB,CAAC,QAAQ,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAC,GAAG,IAAI;IAEhI,mBAAmB,EAAE,CAAE,QAAQ,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,KAAM,yBAAyB,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IAE5J,aAAa,EAAE,CAAE,SAAS,EAAE,MAAM,KAAM,yBAAyB,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IAEhG;;OAEG;IACH,YAAY,EAAE,CACZ,KAAK,SAAS,OAAO,CAAC,MAAM,MAAM,EAAE,MAAM,CAAC,EAC3C,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACrG,QAAQ,EAAE,CAAE,MAAM,EAAE;QACtB,cAAc,EAAE,kBAAkB,CAAC,QAAQ,EAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;KAClE,KAAK,QAAQ,KAAM,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAC5C,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;CAC5B,CAAC"}