@bett3r-dev/pv3-types 1.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.
- package/build/authentication.d.ts +261 -0
- package/build/authentication.d.ts.map +1 -0
- package/build/authentication.js +108 -0
- package/build/authentication.js.map +1 -0
- package/build/cache.d.ts +101 -0
- package/build/cache.d.ts.map +1 -0
- package/build/cache.js +3 -0
- package/build/cache.js.map +1 -0
- package/build/clusterAdministration.d.ts +642 -0
- package/build/clusterAdministration.d.ts.map +1 -0
- package/build/clusterAdministration.js +177 -0
- package/build/clusterAdministration.js.map +1 -0
- package/build/configuration.d.ts +66 -0
- package/build/configuration.d.ts.map +1 -0
- package/build/configuration.js +3 -0
- package/build/configuration.js.map +1 -0
- package/build/database.d.ts +120 -0
- package/build/database.d.ts.map +1 -0
- package/build/database.js +41 -0
- package/build/database.js.map +1 -0
- package/build/endpoints.d.ts +183 -0
- package/build/endpoints.d.ts.map +1 -0
- package/build/endpoints.js +78 -0
- package/build/endpoints.js.map +1 -0
- package/build/evenstore.d.ts +26 -0
- package/build/evenstore.d.ts.map +1 -0
- package/build/evenstore.js +12 -0
- package/build/evenstore.js.map +1 -0
- package/build/eventsourcing/aggregateBuilder.d.ts +10 -0
- package/build/eventsourcing/aggregateBuilder.d.ts.map +1 -0
- package/build/eventsourcing/aggregateBuilder.js +3 -0
- package/build/eventsourcing/aggregateBuilder.js.map +1 -0
- package/build/eventsourcing/commandBuilder.d.ts +58 -0
- package/build/eventsourcing/commandBuilder.d.ts.map +1 -0
- package/build/eventsourcing/commandBuilder.js +6 -0
- package/build/eventsourcing/commandBuilder.js.map +1 -0
- package/build/eventsourcing/commandHandlers.d.ts +104 -0
- package/build/eventsourcing/commandHandlers.d.ts.map +1 -0
- package/build/eventsourcing/commandHandlers.js +28 -0
- package/build/eventsourcing/commandHandlers.js.map +1 -0
- package/build/eventsourcing/eventHandlers.d.ts +102 -0
- package/build/eventsourcing/eventHandlers.d.ts.map +1 -0
- package/build/eventsourcing/eventHandlers.js +33 -0
- package/build/eventsourcing/eventHandlers.js.map +1 -0
- package/build/eventsourcing/eventHandlersBuilder.d.ts +36 -0
- package/build/eventsourcing/eventHandlersBuilder.d.ts.map +1 -0
- package/build/eventsourcing/eventHandlersBuilder.js +13 -0
- package/build/eventsourcing/eventHandlersBuilder.js.map +1 -0
- package/build/eventsourcing/externalSystemBuilder.d.ts +14 -0
- package/build/eventsourcing/externalSystemBuilder.d.ts.map +1 -0
- package/build/eventsourcing/externalSystemBuilder.js +3 -0
- package/build/eventsourcing/externalSystemBuilder.js.map +1 -0
- package/build/eventsourcing/index.d.ts +386 -0
- package/build/eventsourcing/index.d.ts.map +1 -0
- package/build/eventsourcing/index.js +47 -0
- package/build/eventsourcing/index.js.map +1 -0
- package/build/eventsourcing/invariants.d.ts +19 -0
- package/build/eventsourcing/invariants.d.ts.map +1 -0
- package/build/eventsourcing/invariants.js +3 -0
- package/build/eventsourcing/invariants.js.map +1 -0
- package/build/eventsourcing/utils.d.ts +4 -0
- package/build/eventsourcing/utils.d.ts.map +1 -0
- package/build/eventsourcing/utils.js +3 -0
- package/build/eventsourcing/utils.js.map +1 -0
- package/build/index.d.ts +16 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +32 -0
- package/build/index.js.map +1 -0
- package/build/infrastructure.d.ts +40 -0
- package/build/infrastructure.d.ts.map +1 -0
- package/build/infrastructure.js +11 -0
- package/build/infrastructure.js.map +1 -0
- package/build/logger.d.ts +32 -0
- package/build/logger.d.ts.map +1 -0
- package/build/logger.js +29 -0
- package/build/logger.js.map +1 -0
- package/build/outboxManager.d.ts +38 -0
- package/build/outboxManager.d.ts.map +1 -0
- package/build/outboxManager.js +21 -0
- package/build/outboxManager.js.map +1 -0
- package/build/ports.d.ts +39 -0
- package/build/ports.d.ts.map +1 -0
- package/build/ports.js +3 -0
- package/build/ports.js.map +1 -0
- package/build/routesAuth.d.ts +58 -0
- package/build/routesAuth.d.ts.map +1 -0
- package/build/routesAuth.js +37 -0
- package/build/routesAuth.js.map +1 -0
- package/build/typedEventEmitter.d.ts +23 -0
- package/build/typedEventEmitter.d.ts.map +1 -0
- package/build/typedEventEmitter.js +55 -0
- package/build/typedEventEmitter.js.map +1 -0
- package/build/validation.d.ts +64 -0
- package/build/validation.d.ts.map +1 -0
- package/build/validation.js +57 -0
- package/build/validation.js.map +1 -0
- package/package.json +15 -0
- package/src/authentication.ts +273 -0
- package/src/cache.ts +109 -0
- package/src/clusterAdministration.ts +216 -0
- package/src/configuration.ts +71 -0
- package/src/database.ts +157 -0
- package/src/endpoints.ts +198 -0
- package/src/evenstore.ts +27 -0
- package/src/eventsourcing/aggregateBuilder.ts +11 -0
- package/src/eventsourcing/commandBuilder.ts +64 -0
- package/src/eventsourcing/commandHandlers.ts +137 -0
- package/src/eventsourcing/eventHandlers.ts +118 -0
- package/src/eventsourcing/eventHandlersBuilder.ts +42 -0
- package/src/eventsourcing/externalSystemBuilder.ts +20 -0
- package/src/eventsourcing/index.ts +111 -0
- package/src/eventsourcing/invariants.ts +27 -0
- package/src/eventsourcing/utils.ts +4 -0
- package/src/index.ts +15 -0
- package/src/infrastructure.ts +41 -0
- package/src/logger.ts +45 -0
- package/src/outboxManager.ts +36 -0
- package/src/ports.ts +42 -0
- package/src/routesAuth.ts +58 -0
- package/src/typedEventEmitter.ts +73 -0
- package/src/validation.ts +89 -0
- package/tsconfig.json +15 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.EndpointSchema = exports.HttpConfigSchema = void 0;
|
|
27
|
+
const jsonschema_definer_1 = __importStar(require("@bett3r-dev/jsonschema-definer"));
|
|
28
|
+
const http_1 = require("http");
|
|
29
|
+
const CorsOptions = jsonschema_definer_1.default.shape({
|
|
30
|
+
origin: jsonschema_definer_1.default.string().optional(),
|
|
31
|
+
methods: jsonschema_definer_1.default.string().enum(...http_1.METHODS).optional(),
|
|
32
|
+
allowedHeaders: jsonschema_definer_1.default.anyOf(jsonschema_definer_1.default.string(), jsonschema_definer_1.default.array().items(jsonschema_definer_1.default.string())).optional(),
|
|
33
|
+
exposedHeaders: jsonschema_definer_1.default.anyOf(jsonschema_definer_1.default.string(), jsonschema_definer_1.default.array().items(jsonschema_definer_1.default.string())).optional(),
|
|
34
|
+
credentials: jsonschema_definer_1.default.boolean().optional(),
|
|
35
|
+
maxAge: jsonschema_definer_1.default.number().optional(),
|
|
36
|
+
preflightContinue: jsonschema_definer_1.default.boolean().optional(),
|
|
37
|
+
optionsSuccessStatus: jsonschema_definer_1.default.number().optional(),
|
|
38
|
+
});
|
|
39
|
+
const CompressionOptions = jsonschema_definer_1.default.shape({
|
|
40
|
+
chunkSize: jsonschema_definer_1.default.number().optional(),
|
|
41
|
+
level: jsonschema_definer_1.default.number().optional(),
|
|
42
|
+
memLevel: jsonschema_definer_1.default.number().optional(),
|
|
43
|
+
strategy: jsonschema_definer_1.default.number().optional(),
|
|
44
|
+
threshold: jsonschema_definer_1.default.number().optional(),
|
|
45
|
+
windowBits: jsonschema_definer_1.default.number().optional(),
|
|
46
|
+
});
|
|
47
|
+
exports.HttpConfigSchema = jsonschema_definer_1.default.shape({
|
|
48
|
+
port: jsonschema_definer_1.default.number().optional(),
|
|
49
|
+
cookie: jsonschema_definer_1.default.shape({
|
|
50
|
+
enabled: jsonschema_definer_1.default.boolean()
|
|
51
|
+
}).additionalProperties(true).optional(),
|
|
52
|
+
listeningEnabled: jsonschema_definer_1.default.boolean().optional(),
|
|
53
|
+
cors: (0, jsonschema_definer_1.mergeSchemas)(CorsOptions, jsonschema_definer_1.default.shape({
|
|
54
|
+
enabled: jsonschema_definer_1.default.boolean()
|
|
55
|
+
})).additionalProperties(true).optional(),
|
|
56
|
+
compression: (0, jsonschema_definer_1.mergeSchemas)(CompressionOptions, jsonschema_definer_1.default.shape({
|
|
57
|
+
enabled: jsonschema_definer_1.default.boolean()
|
|
58
|
+
})).additionalProperties(true).optional(),
|
|
59
|
+
metrics: jsonschema_definer_1.default.shape({
|
|
60
|
+
enabled: jsonschema_definer_1.default.boolean().optional(),
|
|
61
|
+
httpRequestDurations: jsonschema_definer_1.default.shape({
|
|
62
|
+
enabled: jsonschema_definer_1.default.boolean().optional(),
|
|
63
|
+
buckets: jsonschema_definer_1.default.array().items(jsonschema_definer_1.default.number()).optional()
|
|
64
|
+
}).optional()
|
|
65
|
+
}).optional()
|
|
66
|
+
}).optional();
|
|
67
|
+
exports.EndpointSchema = jsonschema_definer_1.default.shape({
|
|
68
|
+
route: jsonschema_definer_1.default.string().pattern(/^\/.*/),
|
|
69
|
+
action: jsonschema_definer_1.default.any(),
|
|
70
|
+
module: jsonschema_definer_1.default.string().optional(),
|
|
71
|
+
name: jsonschema_definer_1.default.string().optional(),
|
|
72
|
+
description: jsonschema_definer_1.default.string().optional(),
|
|
73
|
+
schemas: jsonschema_definer_1.default.any().optional(),
|
|
74
|
+
tags: jsonschema_definer_1.default.array().items(jsonschema_definer_1.default.string()).optional(),
|
|
75
|
+
multipartProperties: jsonschema_definer_1.default.array().items(jsonschema_definer_1.default.string()).optional(),
|
|
76
|
+
method: jsonschema_definer_1.default.string().enum('DELETE', 'GET', 'HEAD', 'PATCH', 'POST', 'PUT', 'OPTIONS').optional(),
|
|
77
|
+
});
|
|
78
|
+
//# sourceMappingURL=endpoints.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../src/endpoints.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { DatabaseTransaction } from './database';
|
|
2
|
+
import { CommittedEvent, EventToCommit, ReadMultipleStreamOptions, ReadStreamOptions } from './eventsourcing';
|
|
3
|
+
import { AdapterBase, PortEmitter } from './ports';
|
|
4
|
+
export declare const EventStoreConfigSchema: import("@bett3r-dev/jsonschema-definer").ObjectSchema<{
|
|
5
|
+
collection?: string | undefined;
|
|
6
|
+
enabled?: boolean | undefined;
|
|
7
|
+
}, false>;
|
|
8
|
+
export type EventStoreConfig = typeof EventStoreConfigSchema.type;
|
|
9
|
+
export type EventStoreType = {
|
|
10
|
+
appendToStream: <Type>(stream: string, events: EventToCommit | EventToCommit[], expectedVersion?: number, transaction?: DatabaseTransaction) => Promise<CommittedEvent<Type>[]>;
|
|
11
|
+
appendToMultipleStreams?: <Type>(streams: Record<string, {
|
|
12
|
+
events: EventToCommit | EventToCommit[];
|
|
13
|
+
expectedVersion?: number;
|
|
14
|
+
}>, transaction?: DatabaseTransaction) => Promise<CommittedEvent<Type>[]>;
|
|
15
|
+
readStream: <Model = any>(readOptions: ReadStreamOptions, callback: (event: CommittedEvent, stop: () => void) => Partial<Model> | Promise<Partial<Model>>) => Promise<Model>;
|
|
16
|
+
readMultipleStream?: <Model = any>(readOptions: ReadMultipleStreamOptions, callback: (event: CommittedEvent, stop: () => void) => Record<string, Partial<Model>> | Promise<Record<string, Partial<Model>>>) => Promise<Record<string, Model>>;
|
|
17
|
+
subscribe: (onData: (event: CommittedEvent) => void, onError?: (e: Error) => void) => Promise<{
|
|
18
|
+
close: () => void;
|
|
19
|
+
}>;
|
|
20
|
+
flush: () => Promise<void>;
|
|
21
|
+
};
|
|
22
|
+
export type EventStoreAdapter = AdapterBase & EventStoreType;
|
|
23
|
+
export type EventStorePort = PortEmitter & EventStoreType & {
|
|
24
|
+
_adapter: EventStoreAdapter;
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=evenstore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evenstore.d.ts","sourceRoot":"","sources":["../src/evenstore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC9G,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEnD,eAAO,MAAM,sBAAsB;;;SAGtB,CAAC;AACd,MAAM,MAAM,gBAAgB,GAAG,OAAO,sBAAsB,CAAC,IAAI,CAAC;AAElE,MAAM,MAAM,cAAc,GAAG;IAC3B,cAAc,EAAE,CAAC,IAAI,EAAG,MAAM,EAAC,MAAM,EAAE,MAAM,EAAE,aAAa,GAAC,aAAa,EAAE,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,mBAAmB,KAAM,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/K,uBAAuB,CAAC,EAAE,CAAC,IAAI,EAAG,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,aAAa,GAAC,aAAa,EAAE,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAC;KAAE,CAAC,EAAE,WAAW,CAAC,EAAE,mBAAmB,KAAM,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxM,UAAU,EAAE,CAAC,KAAK,GAAC,GAAG,EAAG,WAAW,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,IAAI,KAAM,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAM,OAAO,CAAC,KAAK,CAAC,CAAA;IAC9K,kBAAkB,CAAC,EAAE,CAAC,KAAK,GAAC,GAAG,EAAG,WAAW,EAAE,yBAAyB,EAAE,QAAQ,EAAE,CAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,IAAI,KAAM,MAAM,CAAC,MAAM,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAC,KAAK,CAAC,CAAC,CAAA;IAC5O,SAAS,EAAE,CAAE,MAAM,EAAE,CAAE,KAAK,EAAE,cAAc,KAAM,IAAI,EAAE,OAAO,CAAC,EAAE,CAAE,CAAC,EAAE,KAAK,KAAM,IAAI,KAAM,OAAO,CAAC;QAClG,KAAK,EAAE,MAAM,IAAI,CAAA;KAClB,CAAC,CAAA;IACF,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,cAAc,CAAC;AAE7D,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,cAAc,GAAG;IAC1D,QAAQ,EAAE,iBAAiB,CAAA;CAC5B,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
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.EventStoreConfigSchema = void 0;
|
|
7
|
+
const jsonschema_definer_1 = __importDefault(require("@bett3r-dev/jsonschema-definer"));
|
|
8
|
+
exports.EventStoreConfigSchema = jsonschema_definer_1.default.shape({
|
|
9
|
+
enabled: jsonschema_definer_1.default.boolean().optional(),
|
|
10
|
+
collection: jsonschema_definer_1.default.string().optional()
|
|
11
|
+
}).optional();
|
|
12
|
+
//# sourceMappingURL=evenstore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evenstore.js","sourceRoot":"","sources":["../src/evenstore.ts"],"names":[],"mappings":";;;;;;AAAA,wFAA+C;AAKlC,QAAA,sBAAsB,GAAG,4BAAC,CAAC,KAAK,CAAC;IAC5C,OAAO,EAAE,4BAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,UAAU,EAAE,4BAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Command, EventFactory, EventReducers } from '.';
|
|
2
|
+
import { DatabasePort } from '..';
|
|
3
|
+
import { ExternalSystemBuilderType } from './externalSystemBuilder';
|
|
4
|
+
export type AggregateBuilderType<Model, EVENTS extends Record<string, EventFactory>> = Omit<ExternalSystemBuilderType<Model, EVENTS>, 'withCommandTemplate'> & {
|
|
5
|
+
withCommandTemplate: (command: Command) => AggregateBuilderType<Model, EVENTS>;
|
|
6
|
+
notEventsourced: (database: DatabasePort, collection: string) => AggregateBuilderType<Model, EVENTS>;
|
|
7
|
+
initialValue: (init: () => (Partial<Model> | null | undefined)) => Pick<AggregateBuilderType<Model, EVENTS>, 'withEventReducers' | 'withCommands'>;
|
|
8
|
+
withEventReducers: (eventReducers: EventReducers<EVENTS, Model>) => Pick<AggregateBuilderType<Model, EVENTS>, 'withCommands'>;
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=aggregateBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregateBuilder.d.ts","sourceRoot":"","sources":["../../src/eventsourcing/aggregateBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,GAAG,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAGpE,MAAM,MAAM,oBAAoB,CAAC,KAAK,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,qBAAqB,CAAC,GAAG;IAC7J,mBAAmB,EAAE,CAAE,OAAO,EAAE,OAAO,KAAM,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAChF,eAAe,EAAE,CAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,KAAM,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACtG,YAAY,EAAE,CAAE,IAAI,EAAE,MAAM,CAAE,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,SAAS,CAAE,KAAK,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,mBAAmB,GAAG,cAAc,CAAC,CAAA;IACrJ,iBAAiB,EAAE,CAAE,aAAa,EAAE,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,KAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,cAAc,CAAC,CAAA;CAChI,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregateBuilder.js","sourceRoot":"","sources":["../../src/eventsourcing/aggregateBuilder.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { BaseSchema } from '@bett3r-dev/jsonschema-definer';
|
|
2
|
+
import { Command, CommandCommitFunction, CommandErrorHandlerFunction, CommandFormatFunction, CommandHandlerFunction, CommandLoadFunction, EventFactory, InvariantType } from '.';
|
|
3
|
+
export type CommandBuilderFromSchemaType<Model, EVENTS extends Record<string, EventFactory>, EVENT extends keyof EVENTS, CommandPayload> = {
|
|
4
|
+
/**
|
|
5
|
+
* Loads the streams from the aggregate. If the Command Handler is an Aggregate the fuction will be ignored.
|
|
6
|
+
* Default Implementation:
|
|
7
|
+
* ```ts
|
|
8
|
+
* loadAggregateState(state.commandHandler, (state.streams || []), options)
|
|
9
|
+
* .then(u.ensureArray)
|
|
10
|
+
* .then((aggregateState) => ({...state, aggregateState} as CommandHandlerState));
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
withLoadFunction: (loadFunction: CommandLoadFunction<Model, CommandPayload>) => CommandBuilderFromSchemaType<Model, EVENTS, EVENT, CommandPayload>;
|
|
14
|
+
/**
|
|
15
|
+
* Commits the new event/events to the store
|
|
16
|
+
* DefaultImplementation:
|
|
17
|
+
* ```ts
|
|
18
|
+
* const defaultCommit = (state: CommandHandlerState) =>
|
|
19
|
+
* commitCommands(state);
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
withCommitFunction: (commitFunction: CommandCommitFunction<Model, CommandPayload>) => CommandBuilderFromSchemaType<Model, EVENTS, EVENT, CommandPayload>;
|
|
23
|
+
withResultFormatFunction: (resultFormatFunction: CommandFormatFunction<Model, CommandPayload>) => CommandBuilderFromSchemaType<Model, EVENTS, EVENT, CommandPayload>;
|
|
24
|
+
withInvariant: (invariant: InvariantType<Model, CommandPayload> | ((state: Model, data: CommandPayload) => Promise<void>)) => CommandBuilderFromSchemaType<Model, EVENTS, EVENT, CommandPayload>;
|
|
25
|
+
produces: <EVENT extends keyof EVENTS>(events: EVENT[]) => {
|
|
26
|
+
withHandler: <USER, StateModel = Model>(handler: CommandHandlerFunction<StateModel, CommandPayload, EVENTS, EVENT, USER>) => {
|
|
27
|
+
build: () => Command<EVENTS, EVENT, Model, CommandPayload>;
|
|
28
|
+
withErrorHandler: (errorHandler: CommandErrorHandlerFunction<CommandPayload>) => {
|
|
29
|
+
build: () => Command<EVENTS, EVENT, Model, CommandPayload>;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
withErrorHandler: (errorHandler: CommandErrorHandlerFunction<CommandPayload>) => {
|
|
33
|
+
build: () => Command<EVENTS, EVENT, Model, CommandPayload>;
|
|
34
|
+
};
|
|
35
|
+
build: () => Command<EVENTS, EVENT, Model, CommandPayload>;
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
export type CommandBuilderInstance<Model, EVENTS extends Record<string, EventFactory>, EVENT extends keyof EVENTS, CommandPayload> = {
|
|
39
|
+
withDescription: (description: string) => CommandBuilderInstance<Model, EVENTS, EVENT, CommandPayload>;
|
|
40
|
+
/** Specify where to find the id of the aggregate when the command has no Id in the Params of the request
|
|
41
|
+
*
|
|
42
|
+
* suppose a structure of
|
|
43
|
+
* ```ts
|
|
44
|
+
* {
|
|
45
|
+
* ISC: 'QWERASDFZXCV',
|
|
46
|
+
* marketing: { promoId: '1q2w3e'}
|
|
47
|
+
* products: [{id: 1}, {id:2}]
|
|
48
|
+
* }
|
|
49
|
+
* ```
|
|
50
|
+
* Some examples are: `ISC`, `warehouse.id`.
|
|
51
|
+
* In the case of an array use a Dollar sign `$`.
|
|
52
|
+
* `products.$.id`
|
|
53
|
+
*/
|
|
54
|
+
withDataPropertyId: (dataPath: string) => CommandBuilderInstance<Model, EVENTS, EVENT, CommandPayload>;
|
|
55
|
+
withSchema: <CommandPayload>(schema: BaseSchema<CommandPayload>) => CommandBuilderFromSchemaType<Model, EVENTS, EVENT, CommandPayload>;
|
|
56
|
+
};
|
|
57
|
+
export type CommandBuilderType<Model = any, EVENTS extends Record<string, EventFactory> = any, EVENT extends keyof EVENTS = any, CommandPayload = any> = (init?: Omit<Command<EVENTS, EVENT, CommandPayload, Model>, 'handler' | 'events' | 'schema'>) => CommandBuilderInstance<Model, EVENTS, EVENT, CommandPayload>;
|
|
58
|
+
//# sourceMappingURL=commandBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commandBuilder.d.ts","sourceRoot":"","sources":["../../src/eventsourcing/commandBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commandBuilder.js","sourceRoot":"","sources":["../../src/eventsourcing/commandBuilder.ts"],"names":[],"mappings":";AAAA,6CAA6C;AAC7C,kBAAkB;AAClB,6CAA6C"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { BaseSchema } from '@bett3r-dev/jsonschema-definer';
|
|
2
|
+
import { Builder, CommittedEvent, EventFactory, EventMetadata, GetMessageType, ReadStreamOptions } from '.';
|
|
3
|
+
import { AppErrorInstance, AppErrorType } from '../validation';
|
|
4
|
+
import { DatabasePort } from '../database';
|
|
5
|
+
import { EndpointActionParams, EndpointActionParamsContext } from '../endpoints';
|
|
6
|
+
export type CommandHandlerState<Events = Record<string, EventFactory>, Payload = any, Model = any, USER = any> = {
|
|
7
|
+
commandHandler: Aggregate | System;
|
|
8
|
+
command: Command;
|
|
9
|
+
stream: string;
|
|
10
|
+
data: Payload;
|
|
11
|
+
query: {
|
|
12
|
+
id?: string;
|
|
13
|
+
};
|
|
14
|
+
params: Record<string, any>;
|
|
15
|
+
context: Partial<EndpointActionParamsContext<USER>>;
|
|
16
|
+
events: Events[keyof Events][];
|
|
17
|
+
state: Model;
|
|
18
|
+
committedEvents?: Array<CommittedEvent>;
|
|
19
|
+
metadata?: EventMetadata;
|
|
20
|
+
expectedVersion?: number;
|
|
21
|
+
};
|
|
22
|
+
export type CommandExecutionResponse<Model = unknown> = {
|
|
23
|
+
state?: Model;
|
|
24
|
+
events: CommittedEvent[];
|
|
25
|
+
};
|
|
26
|
+
export type ExecuteCommandFunction = <SYSTEM extends System, COMMAND extends keyof SYSTEM['commands']>(commandHandler: SYSTEM, commandName: COMMAND) => (params: Partial<EndpointActionParams>) => Promise<unknown>;
|
|
27
|
+
export type CommandLoadFunction<Model = any, Payload = any> = (state: CommandHandlerState<Model, Payload>, options?: ReadStreamOptions, initialState?: Model) => Promise<CommandHandlerState<Model, Payload>>;
|
|
28
|
+
export type CommandCommitFunction<Model = any, Payload = any> = (state: CommandHandlerState<Model, Payload>) => Promise<CommandHandlerState<Model, Payload>>;
|
|
29
|
+
export type CommandFormatFunction<Model = any, Payload = any> = (handlerState: CommandHandlerState<Model, Payload>) => Promise<CommandExecutionResponse<Model>>;
|
|
30
|
+
export type CommandHandlerFunction<Model = any, CommandPayload = unknown, Events extends Record<string, EventFactory<EVENT>> = any, EVENT extends keyof Events = any, USER = any> = (state: Model extends undefined ? null : Model, data: CommandPayload, aggregateState: CommandHandlerState<Events, CommandPayload, any, USER>) => Promise<EventFactory<EVENT, GetMessageType<Events[EVENT]>>[]> | EventFactory<EVENT, GetMessageType<Events[EVENT]>>[];
|
|
31
|
+
export type CommandErrorHandlerFunction<CommandPayload = unknown> = (error: AppErrorInstance, data: CommandPayload) => Promise<any>;
|
|
32
|
+
export type Command<EVENTS extends Record<string, EventFactory<EVENT>> = any, EVENT extends keyof EVENTS = any, SystemModel = any, CommandPayload = any> = {
|
|
33
|
+
schema: BaseSchema<CommandPayload>;
|
|
34
|
+
handler: CommandHandlerFunction<SystemModel, CommandPayload, EVENTS, EVENT>;
|
|
35
|
+
onErrorHandler?: CommandErrorHandlerFunction<CommandPayload>;
|
|
36
|
+
dataPropertyId?: string;
|
|
37
|
+
name?: string;
|
|
38
|
+
actors?: string[];
|
|
39
|
+
description?: string;
|
|
40
|
+
multipartProperties?: string[];
|
|
41
|
+
events?: EVENT[];
|
|
42
|
+
invariants?: InvariantType[];
|
|
43
|
+
load?: CommandLoadFunction;
|
|
44
|
+
commit?: CommandCommitFunction;
|
|
45
|
+
format?: CommandFormatFunction;
|
|
46
|
+
};
|
|
47
|
+
export type InvariantType<Model = any, Payload = any> = {
|
|
48
|
+
events?: string[];
|
|
49
|
+
rejects: AppErrorType[];
|
|
50
|
+
beforeLoad?: (state: CommandHandlerState<any, Payload, Model>) => Promise<CommandHandlerState<any, Payload, Model>>;
|
|
51
|
+
check: (commandHandlerState: CommandHandlerState<any, Payload, Model>) => Promise<CommandHandlerState<any, Payload, Model> | void> | void | CommandHandlerState<any, Payload, Model>;
|
|
52
|
+
};
|
|
53
|
+
export declare const SystemGetQuerySchema: import("@bett3r-dev/jsonschema-definer").ObjectSchema<{
|
|
54
|
+
limit?: number | undefined;
|
|
55
|
+
after?: string | undefined;
|
|
56
|
+
from?: number | undefined;
|
|
57
|
+
before?: string | undefined;
|
|
58
|
+
names?: string[] | undefined;
|
|
59
|
+
backward?: boolean | undefined;
|
|
60
|
+
stream: string;
|
|
61
|
+
}, true>;
|
|
62
|
+
export type SystemGetQueryType = typeof SystemGetQuerySchema.type;
|
|
63
|
+
export declare const SystemEndpointParamsSchema: import("@bett3r-dev/jsonschema-definer").ObjectSchema<{
|
|
64
|
+
id: string;
|
|
65
|
+
}, true>;
|
|
66
|
+
export declare const CommandEndpointQuerySchema: import("@bett3r-dev/jsonschema-definer").ObjectSchema<{
|
|
67
|
+
causationId?: string | undefined;
|
|
68
|
+
correlationId?: string | undefined;
|
|
69
|
+
expectedVersion?: string | undefined;
|
|
70
|
+
}, true>;
|
|
71
|
+
export type OnValidationErrorFunctionType = Function;
|
|
72
|
+
export type System<Commands extends Record<string, Command | Builder<Command>> = any, EVENTS extends Record<string, EventFactory> = any> = {
|
|
73
|
+
name: string;
|
|
74
|
+
events: EVENTS;
|
|
75
|
+
isStreamable?: boolean;
|
|
76
|
+
isAggregate?: boolean;
|
|
77
|
+
isEventsourced?: boolean;
|
|
78
|
+
commands: Commands;
|
|
79
|
+
templateCommand: Command;
|
|
80
|
+
};
|
|
81
|
+
export type AggregateReducedState<Model = any> = {
|
|
82
|
+
state: Model;
|
|
83
|
+
lastEvent?: Partial<Pick<CommittedEvent, 'id' | 'version'>>;
|
|
84
|
+
};
|
|
85
|
+
export type EventReducers<EVENTS extends Record<string, EventFactory> = any, Model = any> = {
|
|
86
|
+
[Name in keyof EVENTS]: (state: Model, data: GetMessageType<EVENTS[Name]>, metadata: EventMetadata) => Partial<Model>;
|
|
87
|
+
};
|
|
88
|
+
export type Aggregate<Commands extends Record<string, Command | Builder<Command>> = any, EVENTS extends Record<string, EventFactory> = any, Model = any> = System<Commands, EVENTS> & {
|
|
89
|
+
schema: BaseSchema<Model>;
|
|
90
|
+
outboxDatabase?: DatabasePort;
|
|
91
|
+
outboxCollection?: string;
|
|
92
|
+
initialValue: () => Partial<Model> | null | undefined;
|
|
93
|
+
eventReducers: EventReducers<EVENTS, Model>;
|
|
94
|
+
};
|
|
95
|
+
export type EventSourcingCommandHandlers = {
|
|
96
|
+
loadStream: (stream: string, options?: ReadStreamOptions) => Promise<CommittedEvent[] | undefined>;
|
|
97
|
+
loadAggregateState: (system: System, stream?: string, options?: ReadStreamOptions) => Promise<Record<string, any> | null>;
|
|
98
|
+
executeCommand: ExecuteCommandFunction;
|
|
99
|
+
registerCommandHandlerGetEndpoints: (aggregateOrSystem: Aggregate | System, name?: string) => string[];
|
|
100
|
+
registerCommandHandlerPostEndpoints: (aggregateOrSystem: (Aggregate | System) & {
|
|
101
|
+
events: Record<string, EventFactory>;
|
|
102
|
+
}, name?: string) => Record<string, string>;
|
|
103
|
+
};
|
|
104
|
+
//# sourceMappingURL=commandHandlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commandHandlers.d.ts","sourceRoot":"","sources":["../../src/eventsourcing/commandHandlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
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.CommandEndpointQuerySchema = exports.SystemEndpointParamsSchema = exports.SystemGetQuerySchema = void 0;
|
|
7
|
+
const jsonschema_definer_1 = __importDefault(require("@bett3r-dev/jsonschema-definer"));
|
|
8
|
+
//*******************************************
|
|
9
|
+
// Systems
|
|
10
|
+
//*******************************************
|
|
11
|
+
exports.SystemGetQuerySchema = jsonschema_definer_1.default.shape({
|
|
12
|
+
stream: jsonschema_definer_1.default.string(),
|
|
13
|
+
names: jsonschema_definer_1.default.array().items(jsonschema_definer_1.default.string()).optional(),
|
|
14
|
+
from: jsonschema_definer_1.default.number().optional(),
|
|
15
|
+
limit: jsonschema_definer_1.default.number().optional(),
|
|
16
|
+
backward: jsonschema_definer_1.default.boolean().optional(),
|
|
17
|
+
after: jsonschema_definer_1.default.string().format('date-time').optional(),
|
|
18
|
+
before: jsonschema_definer_1.default.string().format('date-time').optional(),
|
|
19
|
+
});
|
|
20
|
+
exports.SystemEndpointParamsSchema = jsonschema_definer_1.default.shape({
|
|
21
|
+
id: jsonschema_definer_1.default.string().description('id for the aggregate')
|
|
22
|
+
});
|
|
23
|
+
exports.CommandEndpointQuerySchema = jsonschema_definer_1.default.shape({
|
|
24
|
+
expectedVersion: jsonschema_definer_1.default.string().optional(),
|
|
25
|
+
causationId: jsonschema_definer_1.default.string().optional(),
|
|
26
|
+
correlationId: jsonschema_definer_1.default.string().optional(),
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=commandHandlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commandHandlers.js","sourceRoot":"","sources":["../../src/eventsourcing/commandHandlers.ts"],"names":[],"mappings":";;;;;;AAAA,wFAA+D;AA0D/D,6CAA6C;AAC7C,UAAU;AACV,6CAA6C;AAEhC,QAAA,oBAAoB,GAAG,4BAAC,CAAC,KAAK,CAAC;IAC1C,MAAM,EAAE,4BAAC,CAAC,MAAM,EAAE;IAClB,KAAK,EAAE,4BAAC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAE,4BAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC9C,IAAI,EAAE,4BAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,4BAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,QAAQ,EAAE,4BAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,KAAK,EAAE,4BAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAE,WAAW,CAAE,CAAC,QAAQ,EAAE;IAClD,MAAM,EAAE,4BAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAE,WAAW,CAAE,CAAC,QAAQ,EAAE;CACpD,CAAC,CAAC;AAEU,QAAA,0BAA0B,GAAG,4BAAC,CAAC,KAAK,CAAC;IAChD,EAAE,EAAE,4BAAC,CAAC,MAAM,EAAE,CAAC,WAAW,CAAE,sBAAsB,CAAE;CACrD,CAAC,CAAC;AACU,QAAA,0BAA0B,GAAG,4BAAC,CAAC,KAAK,CAAC;IAChD,eAAe,EAAE,4BAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,WAAW,EAAE,4BAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,aAAa,EAAE,4BAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAC"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { ObjectSchema } from '@bett3r-dev/jsonschema-definer';
|
|
2
|
+
import { AppErrorInstance } from '../validation';
|
|
3
|
+
import { Collection, CollectionQueryParams, DatabaseChange, DatabasePort, Document } from '../database';
|
|
4
|
+
import { EndpointActionParams, RequestObject, ResponseObject } from '../endpoints';
|
|
5
|
+
import { CommittedEvent, EventFactory, GetMessageType } from '../eventsourcing';
|
|
6
|
+
import { LoggerType } from '../logger';
|
|
7
|
+
import { System } from './commandHandlers';
|
|
8
|
+
import { TypedEventEmitter } from '../typedEventEmitter';
|
|
9
|
+
export declare const ReadModelDefaultParamsSchema: ObjectSchema<{
|
|
10
|
+
id?: string | undefined;
|
|
11
|
+
}, true>;
|
|
12
|
+
export declare const ReadModelDefaultQuerySchema: ObjectSchema<{
|
|
13
|
+
limit?: string | undefined;
|
|
14
|
+
after?: string | undefined;
|
|
15
|
+
sort?: string | string[] | undefined;
|
|
16
|
+
filter?: string | string[] | undefined;
|
|
17
|
+
select?: string[] | undefined;
|
|
18
|
+
access_token?: string | undefined;
|
|
19
|
+
apikey?: string | undefined;
|
|
20
|
+
}, true>;
|
|
21
|
+
export type ReadModelDefaultQuery = typeof ReadModelDefaultQuerySchema.type;
|
|
22
|
+
export type ReadModelDefaultParams = typeof ReadModelDefaultParamsSchema.type;
|
|
23
|
+
export declare const defaultParamsSchemas: {
|
|
24
|
+
params: ObjectSchema<{
|
|
25
|
+
id?: string | undefined;
|
|
26
|
+
}, true>;
|
|
27
|
+
};
|
|
28
|
+
export declare const defaultQuerySchemas: {
|
|
29
|
+
query: ObjectSchema<{
|
|
30
|
+
limit?: string | undefined;
|
|
31
|
+
after?: string | undefined;
|
|
32
|
+
sort?: string | string[] | undefined;
|
|
33
|
+
filter?: string | string[] | undefined;
|
|
34
|
+
select?: string[] | undefined;
|
|
35
|
+
access_token?: string | undefined;
|
|
36
|
+
apikey?: string | undefined;
|
|
37
|
+
}, true>;
|
|
38
|
+
};
|
|
39
|
+
export type EventHandler<EVENTS extends Record<string, EventFactory> = any> = {
|
|
40
|
+
name: string;
|
|
41
|
+
events: EVENTS;
|
|
42
|
+
concurrency?: number;
|
|
43
|
+
errorHandlers?: {
|
|
44
|
+
[Name in keyof EVENTS]?: HandlerExecutionErrorType<CommittedEvent<GetMessageType<EVENTS[Name]>>>;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
export type PolicyResponse = {
|
|
48
|
+
name: string;
|
|
49
|
+
id?: string;
|
|
50
|
+
data?: any;
|
|
51
|
+
};
|
|
52
|
+
export type HandlerExecutionErrorType<EVENT extends CommittedEvent = CommittedEvent> = (error: AppErrorInstance, event: EVENT) => Promise<unknown>;
|
|
53
|
+
export type Policy<CommandHandler extends System = any, Events extends Record<string, EventFactory> = any> = EventHandler<Events> & {
|
|
54
|
+
commandHandler?: CommandHandler;
|
|
55
|
+
eventHandlers: {
|
|
56
|
+
[Name in keyof Events]: (event: CommittedEvent<GetMessageType<Events[Name]>>) => Promise<PolicyResponse | void>;
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
export type QueryParamsTranslator<Model extends Document, Params, Query> = (schema: ObjectSchema<Model>, params: Pick<EndpointActionParams<any, Query, Params>, 'params' | 'query'>) => CollectionQueryParams<Model>;
|
|
60
|
+
export type QueryHandler<MODEL extends Document = any, PARAMS = any, QUERY = any> = (repository: Collection<MODEL>, params: CollectionQueryParams<MODEL> & {
|
|
61
|
+
params: EndpointActionParams<any, QUERY, PARAMS>;
|
|
62
|
+
}) => Promise<MODEL | MODEL[]>;
|
|
63
|
+
export type QueryTransformer<MODEL extends Document = any, PARAMS = any, QUERY = any> = (projectionParams: CollectionQueryParams<MODEL>, params: EndpointActionParams<any, QUERY, PARAMS>) => Promise<CollectionQueryParams<MODEL>> | CollectionQueryParams<MODEL>;
|
|
64
|
+
export type ReadModelSubscriptionCloseEmitterEvents = {
|
|
65
|
+
close: string;
|
|
66
|
+
};
|
|
67
|
+
export type ReadmodelSubscriptionManagerType<Model extends Document = any> = {
|
|
68
|
+
type: string;
|
|
69
|
+
startSubscription: (projectionParams: CollectionQueryParams<Model>, req: RequestObject, res: ResponseObject) => string | void;
|
|
70
|
+
notifySubscriptions: (logger: LoggerType, collection: string) => <T extends Document>(change: DatabaseChange<T>, subscriptionId?: string) => void;
|
|
71
|
+
readModelSubscriptionCloseEmitter: TypedEventEmitter<ReadModelSubscriptionCloseEmitterEvents>;
|
|
72
|
+
send: (logger: LoggerType, id: string, change: DatabaseChange, collection: string, res: ResponseObject, data: string) => void;
|
|
73
|
+
};
|
|
74
|
+
export type Query<MODEL extends Document = any, PARAMS extends Record<string, any> = any, QUERY extends Record<string, any> = any> = {
|
|
75
|
+
route?: string;
|
|
76
|
+
protocol?: 'http';
|
|
77
|
+
description?: string;
|
|
78
|
+
schemas?: {
|
|
79
|
+
query?: ObjectSchema<QUERY>;
|
|
80
|
+
params?: ObjectSchema<PARAMS>;
|
|
81
|
+
};
|
|
82
|
+
translator?: QueryParamsTranslator<MODEL, PARAMS, QUERY>;
|
|
83
|
+
subscriptions?: ReadmodelSubscriptionManagerType[];
|
|
84
|
+
transformers?: QueryTransformer<MODEL, PARAMS, QUERY>[];
|
|
85
|
+
queryHandler?: QueryHandler<MODEL, PARAMS, QUERY>;
|
|
86
|
+
};
|
|
87
|
+
export type EventProjectors<EVENTS extends Record<string, EventFactory> = any> = {
|
|
88
|
+
[Name in keyof EVENTS]: (event: CommittedEvent<GetMessageType<EVENTS[Name]>>) => Promise<any>;
|
|
89
|
+
};
|
|
90
|
+
export type ReadModel<Model extends Document = any, EVENTS extends Record<string, EventFactory> = any> = EventHandler<EVENTS> & {
|
|
91
|
+
isReadModel: true;
|
|
92
|
+
schema: ObjectSchema<Model>;
|
|
93
|
+
queries: Query<Model>[];
|
|
94
|
+
eventProjectors?: EventProjectors<EVENTS>;
|
|
95
|
+
database?: DatabasePort;
|
|
96
|
+
collection?: string;
|
|
97
|
+
};
|
|
98
|
+
export type ReadmodelChange<Model extends Document> = {
|
|
99
|
+
type: 'insert' | 'update' | 'delete';
|
|
100
|
+
data: Model;
|
|
101
|
+
};
|
|
102
|
+
//# sourceMappingURL=eventHandlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventHandlers.d.ts","sourceRoot":"","sources":["../../src/eventsourcing/eventHandlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
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.defaultQuerySchemas = exports.defaultParamsSchemas = exports.ReadModelDefaultQuerySchema = exports.ReadModelDefaultParamsSchema = void 0;
|
|
7
|
+
const jsonschema_definer_1 = __importDefault(require("@bett3r-dev/jsonschema-definer"));
|
|
8
|
+
const SortStringSchema = jsonschema_definer_1.default.string().pattern(/^(\w+),?(asc|desc)?$/);
|
|
9
|
+
const FilterStringSchema = jsonschema_definer_1.default
|
|
10
|
+
.string()
|
|
11
|
+
.pattern(/^([\w\d._]+),(eq|neq|lt|gt|lte|gte|in|nin|contains|notContains|some|every|exists|notExists),(.+?)$/);
|
|
12
|
+
exports.ReadModelDefaultParamsSchema = jsonschema_definer_1.default.shape({
|
|
13
|
+
id: jsonschema_definer_1.default.string().optional()
|
|
14
|
+
});
|
|
15
|
+
exports.ReadModelDefaultQuerySchema = jsonschema_definer_1.default.shape({
|
|
16
|
+
access_token: jsonschema_definer_1.default.string().optional(),
|
|
17
|
+
apikey: jsonschema_definer_1.default.string().optional(),
|
|
18
|
+
limit: jsonschema_definer_1.default.string().optional(),
|
|
19
|
+
after: jsonschema_definer_1.default.string().optional(),
|
|
20
|
+
sort: jsonschema_definer_1.default.oneOf(SortStringSchema, jsonschema_definer_1.default.array().items(SortStringSchema)).optional(),
|
|
21
|
+
select: jsonschema_definer_1.default.array().items(jsonschema_definer_1.default.string()).optional(),
|
|
22
|
+
//TODO: scape , for when the value has commas.
|
|
23
|
+
filter: jsonschema_definer_1.default
|
|
24
|
+
.oneOf(FilterStringSchema, jsonschema_definer_1.default.array().items(FilterStringSchema))
|
|
25
|
+
.optional()
|
|
26
|
+
});
|
|
27
|
+
exports.defaultParamsSchemas = {
|
|
28
|
+
params: exports.ReadModelDefaultParamsSchema
|
|
29
|
+
};
|
|
30
|
+
exports.defaultQuerySchemas = {
|
|
31
|
+
query: exports.ReadModelDefaultQuerySchema
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=eventHandlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventHandlers.js","sourceRoot":"","sources":["../../src/eventsourcing/eventHandlers.ts"],"names":[],"mappings":";;;;;;AAAA,wFAAiE;AASjE,MAAM,gBAAgB,GAAG,4BAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAE,sBAAsB,CAAE,CAAC;AACtE,MAAM,kBAAkB,GAAG,4BAAC;KACzB,MAAM,EAAE;KACR,OAAO,CAAE,oGAAoG,CAAE,CAAC;AAEtG,QAAA,4BAA4B,GAAG,4BAAC,CAAC,KAAK,CAAC;IAClD,EAAE,EAAE,4BAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC1B,CAAC,CAAC;AAEU,QAAA,2BAA2B,GAAG,4BAAC,CAAC,KAAK,CAAC;IACjD,YAAY,EAAE,4BAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,MAAM,EAAE,4BAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,KAAK,EAAE,4BAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,KAAK,EAAE,4BAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,IAAI,EAAE,4BAAC,CAAC,KAAK,CAAE,gBAAgB,EAAE,4BAAC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAE,gBAAgB,CAAE,CAAC,CAAC,QAAQ,EAAE;IAChF,MAAM,EAAE,4BAAC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAE,4BAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC/C,8CAA8C;IAC9C,MAAM,EAAE,4BAAC;SACN,KAAK,CAAE,kBAAkB,EAAE,4BAAC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAE,kBAAkB,CAAE,CAAC;SACjE,QAAQ,EAAE;CACd,CAAC,CAAC;AAOU,QAAA,oBAAoB,GAAG;IAClC,MAAM,EAAE,oCAA4B;CACrC,CAAC;AAEW,QAAA,mBAAmB,GAAG;IACjC,KAAK,EAAE,mCAA2B;CACnC,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/// <reference types="ramda/node_modules/ts-toolbelt" />
|
|
2
|
+
import { ObjectSchema } from '@bett3r-dev/jsonschema-definer';
|
|
3
|
+
import { A, O } from 'ts-toolbelt';
|
|
4
|
+
import { Builder, CommittedEvent, EventFactory, EventHandler, EventMetadata, EventProjectors, GetBuilderType, GetMessageType, Message, Policy, PolicyResponse, Query, ReadModel, System } from '.';
|
|
5
|
+
import { AppErrorInstance, DatabasePort, Document } from '..';
|
|
6
|
+
export type GetCommandType<SYSTEM extends System | EventHandler, Name extends A.Key> = SYSTEM extends System ? O.Path<SYSTEM, ['commands', Name]> extends (Builder<infer T extends Object>) ? O.Path<T, ['schema', 'type']> : O.Path<SYSTEM, ['commands', Name, 'schema', 'type']> : O.Path<SYSTEM, ['commandHandler', 'commands', Name]> extends (Builder<infer T extends Object>) ? O.Path<T, ['schema', 'type']> : O.Path<SYSTEM, ['commandHandler', 'commands', Name, 'schema', 'type']>;
|
|
7
|
+
export type CommandInstance<Payload = any> = Message<Payload> & {
|
|
8
|
+
name: string;
|
|
9
|
+
id?: string;
|
|
10
|
+
metadata?: EventMetadata;
|
|
11
|
+
};
|
|
12
|
+
export declare const createCommand: <Handler extends System | EventHandler>(handler: Handler) => <COMMAND extends keyof (Handler extends System ? Handler["commands"] : import("Object/Path")._Path<GetBuilderType<Handler>, ["commandHandler", "commands"], 1>)>(command: COMMAND, id?: string, data?: GetCommandType<Handler, COMMAND> | undefined, metadata?: EventMetadata) => CommandInstance;
|
|
13
|
+
export type EventHandlerBuilderType<EVENTS extends Record<string, EventFactory>, T extends Policy | ReadModel> = Builder<EventHandler<EVENTS>> & {
|
|
14
|
+
eventHandler: EventHandler<EVENTS>;
|
|
15
|
+
withErrorHandlers: (errorHandlers: {
|
|
16
|
+
[Name in keyof EVENTS]?: (error: AppErrorInstance, event: CommittedEvent<GetMessageType<EVENTS[Name]>>) => Promise<unknown>;
|
|
17
|
+
}) => {
|
|
18
|
+
build: () => T extends Policy ? Policy<T['commandHandler'], EVENTS> : T extends ReadModel ? ReadModel<T['schema'] extends ObjectSchema<infer MODEL extends Document> ? MODEL : Document, EVENTS> : any;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
export type PolicyBuilderType<CommandHandler extends System, EVENTS extends Record<string, EventFactory>> = Builder<Policy<CommandHandler, EVENTS>> & EventHandlerBuilderType<EVENTS, Policy<CommandHandler, EVENTS>> & {
|
|
22
|
+
withEventHandlers: (handlers: (params: {
|
|
23
|
+
createCommand: ReturnType<typeof createCommand<CommandHandler>>;
|
|
24
|
+
}) => {
|
|
25
|
+
[Name in keyof EVENTS]: (event: CommittedEvent<GetMessageType<EVENTS[Name]>>) => Promise<PolicyResponse | void>;
|
|
26
|
+
}) => Pick<PolicyBuilderType<CommandHandler, EVENTS>, 'build' | 'withErrorHandlers'>;
|
|
27
|
+
};
|
|
28
|
+
export type ReadmodelBuilderType<Model extends Document, EVENTS extends Record<string, EventFactory>> = Builder<ReadModel<Model, EVENTS>> & EventHandlerBuilderType<EVENTS, ReadModel<Model, EVENTS>> & {
|
|
29
|
+
withDatabase: (database: DatabasePort, collection?: string) => ReadmodelBuilderType<Model, EVENTS>;
|
|
30
|
+
withProjector: (eventProjectors?: (params: {
|
|
31
|
+
database: DatabasePort;
|
|
32
|
+
collection: string;
|
|
33
|
+
}) => EventProjectors<EVENTS>) => ReadmodelBuilderType<Model, EVENTS>;
|
|
34
|
+
withQuery: <PARAMS extends Record<string, any>, QUERY extends Record<string, any>>(query?: Query<Model, PARAMS, QUERY>) => ReadmodelBuilderType<Model, EVENTS>;
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=eventHandlersBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventHandlersBuilder.d.ts","sourceRoot":"","sources":["../../src/eventsourcing/eventHandlersBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createCommand = void 0;
|
|
4
|
+
const createCommand = (handler) => (command, id, data, metadata) => {
|
|
5
|
+
return {
|
|
6
|
+
name: command,
|
|
7
|
+
...(id ? { id } : {}),
|
|
8
|
+
...(data ? { data } : {}),
|
|
9
|
+
...(metadata ? { metadata } : {})
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
exports.createCommand = createCommand;
|
|
13
|
+
//# sourceMappingURL=eventHandlersBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventHandlersBuilder.js","sourceRoot":"","sources":["../../src/eventsourcing/eventHandlersBuilder.ts"],"names":[],"mappings":";;;AAeO,MAAM,aAAa,GAAG,CAA0C,OAAgB,EAAE,EAAE,CAAC,CAA0I,OAAgB,EAAE,EAAW,EAAE,IAAuC,EAAE,QAAwB,EAAoB,EAAE;IAC1V,OAAO;QACL,IAAI,EAAE,OAAiB;QACvB,GAAG,CAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtB,GAAG,CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1B,GAAG,CAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnC,CAAC;AACJ,CAAC,CAAC;AAPW,QAAA,aAAa,iBAOxB"}
|