@nmshd/runtime 1.0.4 → 1.0.8

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 (42) hide show
  1. package/dist/Runtime.d.ts +5 -2
  2. package/dist/Runtime.js +21 -3
  3. package/dist/Runtime.js.map +1 -1
  4. package/dist/RuntimeConfig.d.ts +1 -5
  5. package/dist/buildInformation.js +5 -5
  6. package/dist/extensibility/index.d.ts +1 -1
  7. package/dist/extensibility/index.js +1 -1
  8. package/dist/extensibility/index.js.map +1 -1
  9. package/dist/extensibility/modules/{RuntimeModuleCollection.d.ts → RuntimeModuleRegistry.d.ts} +1 -1
  10. package/dist/extensibility/modules/{RuntimeModuleCollection.js → RuntimeModuleRegistry.js} +4 -4
  11. package/dist/extensibility/modules/RuntimeModuleRegistry.js.map +1 -0
  12. package/dist/useCases/common/SchemaRepository.d.ts +20 -0
  13. package/dist/useCases/common/SchemaRepository.js +78 -0
  14. package/dist/useCases/common/SchemaRepository.js.map +1 -0
  15. package/dist/useCases/common/SchemaValidator.d.ts +9 -0
  16. package/dist/useCases/common/SchemaValidator.js +24 -0
  17. package/dist/useCases/common/SchemaValidator.js.map +1 -0
  18. package/dist/useCases/common/Schemas.d.ts +1580 -0
  19. package/dist/useCases/common/Schemas.js +1792 -0
  20. package/dist/useCases/common/Schemas.js.map +1 -0
  21. package/dist/useCases/common/UseCase.d.ts +5 -2
  22. package/dist/useCases/common/UseCase.js.map +1 -1
  23. package/dist/useCases/transport/files/CreateTokenForFile.d.ts +12 -4
  24. package/dist/useCases/transport/files/CreateTokenForFile.js +11 -7
  25. package/dist/useCases/transport/files/CreateTokenForFile.js.map +1 -1
  26. package/dist/useCases/transport/files/CreateTokenQrCodeForFile.d.ts +13 -5
  27. package/dist/useCases/transport/files/CreateTokenQrCodeForFile.js +11 -9
  28. package/dist/useCases/transport/files/CreateTokenQrCodeForFile.js.map +1 -1
  29. package/dist/useCases/transport/files/DownloadFile.d.ts +9 -4
  30. package/dist/useCases/transport/files/DownloadFile.js +11 -6
  31. package/dist/useCases/transport/files/DownloadFile.js.map +1 -1
  32. package/dist/useCases/transport/files/GetFile.d.ts +9 -4
  33. package/dist/useCases/transport/files/GetFile.js +11 -6
  34. package/dist/useCases/transport/files/GetFile.js.map +1 -1
  35. package/dist/useCases/transport/files/LoadPeerFile.d.ts +3 -0
  36. package/dist/useCases/transport/files/LoadPeerFile.js.map +1 -1
  37. package/lib-web/nmshd.runtime.js +10222 -3022
  38. package/lib-web/nmshd.runtime.js.map +1 -1
  39. package/lib-web/nmshd.runtime.min.js +7 -1
  40. package/lib-web/nmshd.runtime.min.js.map +1 -1
  41. package/package.json +25 -21
  42. package/dist/extensibility/modules/RuntimeModuleCollection.js.map +0 -1
package/dist/Runtime.d.ts CHANGED
@@ -4,7 +4,7 @@ import { ConsumptionController } from "@nmshd/consumption";
4
4
  import { AccountController, Transport } from "@nmshd/transport";
5
5
  import { DataViewExpander } from "./dataViews";
6
6
  import { EventBus } from "./eventBus";
7
- import { AnonymousServices, ConsumptionServices, ModuleConfiguration, RuntimeModule, RuntimeModuleCollection, TransportServices } from "./extensibility";
7
+ import { AnonymousServices, ConsumptionServices, ModuleConfiguration, RuntimeModule, RuntimeModuleRegistry, TransportServices } from "./extensibility";
8
8
  import { RuntimeConfig } from "./RuntimeConfig";
9
9
  import { RuntimeHealth } from "./types";
10
10
  export declare abstract class Runtime<TConfig extends RuntimeConfig = RuntimeConfig> {
@@ -21,7 +21,7 @@ export declare abstract class Runtime<TConfig extends RuntimeConfig = RuntimeCon
21
21
  protected getDataViewExpander(): DataViewExpander;
22
22
  protected login(accountController: AccountController, consumptionController: ConsumptionController): this;
23
23
  private _modules;
24
- get modules(): RuntimeModuleCollection;
24
+ get modules(): RuntimeModuleRegistry;
25
25
  private _transportServices;
26
26
  get transportServices(): TransportServices;
27
27
  private _consumptionServices;
@@ -34,6 +34,7 @@ export declare abstract class Runtime<TConfig extends RuntimeConfig = RuntimeCon
34
34
  private _isInitialized;
35
35
  get isInitialized(): boolean;
36
36
  init(): Promise<void>;
37
+ protected initInfrastructure(): void | Promise<void>;
37
38
  protected abstract createLoggerFactory(): Promise<ILoggerFactory> | ILoggerFactory;
38
39
  protected abstract createDatabaseConnection(): Promise<IDatabaseConnection>;
39
40
  protected abstract initAccount(): Promise<void>;
@@ -50,7 +51,9 @@ export declare abstract class Runtime<TConfig extends RuntimeConfig = RuntimeCon
50
51
  private _isStarted;
51
52
  get isStarted(): boolean;
52
53
  start(): Promise<void>;
54
+ protected startInfrastructure(): void | Promise<void>;
53
55
  protected stop(): Promise<void>;
56
+ protected stopInfrastructure(): void | Promise<void>;
54
57
  private stopModules;
55
58
  private startModules;
56
59
  protected getModuleName(moduleConfiguration: ModuleConfiguration | RuntimeModule): string;
package/dist/Runtime.js CHANGED
@@ -11,6 +11,7 @@ const events_1 = require("./events");
11
11
  const extensibility_1 = require("./extensibility");
12
12
  const RuntimeLoggerFactory_1 = require("./RuntimeLoggerFactory");
13
13
  const useCases_1 = require("./useCases");
14
+ const SchemaRepository_1 = require("./useCases/common/SchemaRepository");
14
15
  class Runtime {
15
16
  constructor(config) {
16
17
  this._isInitialized = false;
@@ -66,17 +67,21 @@ class Runtime {
66
67
  if (this._isInitialized) {
67
68
  throw useCases_1.RuntimeErrors.general.alreadyInitialized();
68
69
  }
69
- this._modules = new extensibility_1.RuntimeModuleCollection();
70
70
  this.eventBus.publish(new events_1.RuntimeInitializingEvent());
71
71
  this.loggerFactory = await this.createLoggerFactory();
72
- this.initDIContainer();
72
+ await this.initDIContainer();
73
73
  await this.initTransportLibrary();
74
74
  await this.initAccount();
75
+ this._modules = new extensibility_1.RuntimeModuleRegistry();
75
76
  await this.loadModules();
77
+ await this.initInfrastructure();
76
78
  await this.initModules();
77
79
  this._isInitialized = true;
78
80
  this.eventBus.publish(new events_1.RuntimeInitializedEvent());
79
81
  }
82
+ initInfrastructure() {
83
+ return;
84
+ }
80
85
  async getSupportInformation() {
81
86
  const health = await this.getHealth();
82
87
  const config = JSON.parse(JSON.stringify(this.runtimeConfig));
@@ -97,7 +102,7 @@ class Runtime {
97
102
  this._anonymousServices = typescript_ioc_1.Container.get(extensibility_1.AnonymousServices);
98
103
  this.eventBus.publish(new events_1.TransportLibraryInitializedEvent());
99
104
  }
100
- initDIContainer() {
105
+ async initDIContainer() {
101
106
  typescript_ioc_1.Container.bind(eventBus_1.EventBus)
102
107
  .factory(() => this.eventBus)
103
108
  .scope(typescript_ioc_1.Scope.Singleton);
@@ -158,6 +163,11 @@ class Runtime {
158
163
  typescript_ioc_1.Container.bind(transport_1.AnonymousTokenController)
159
164
  .factory(() => new transport_1.AnonymousTokenController(this.transport.config))
160
165
  .scope(typescript_ioc_1.Scope.Singleton);
166
+ const schemaRepository = new SchemaRepository_1.SchemaRepository();
167
+ await schemaRepository.loadSchemas();
168
+ typescript_ioc_1.Container.bind(SchemaRepository_1.SchemaRepository)
169
+ .factory(() => schemaRepository)
170
+ .scope(typescript_ioc_1.Scope.Singleton);
161
171
  }
162
172
  async loadModules() {
163
173
  this.logger.info("Loading modules...");
@@ -200,9 +210,13 @@ class Runtime {
200
210
  if (this._isStarted) {
201
211
  throw useCases_1.RuntimeErrors.general.alreadyStarted();
202
212
  }
213
+ await this.startInfrastructure();
203
214
  await this.startModules();
204
215
  this._isStarted = true;
205
216
  }
217
+ startInfrastructure() {
218
+ return;
219
+ }
206
220
  async stop() {
207
221
  var _a;
208
222
  if (!this._isInitialized) {
@@ -212,6 +226,7 @@ class Runtime {
212
226
  throw useCases_1.RuntimeErrors.general.notStarted();
213
227
  }
214
228
  await this.stopModules();
229
+ await this.stopInfrastructure();
215
230
  this.logger.info("Closing AccountController...");
216
231
  await ((_a = this._accountController) === null || _a === void 0 ? void 0 : _a.close());
217
232
  this._accountController = undefined;
@@ -219,6 +234,9 @@ class Runtime {
219
234
  this._isInitialized = false;
220
235
  this._isStarted = false;
221
236
  }
237
+ stopInfrastructure() {
238
+ return;
239
+ }
222
240
  async stopModules() {
223
241
  this.logger.info("Stopping modules...");
224
242
  for (const module of this.modules.toArray()) {
@@ -1 +1 @@
1
- {"version":3,"file":"Runtime.js","sourceRoot":"","sources":["../src/Runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Runtime.js","sourceRoot":"","sources":["../src/Runtime.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,6 @@
1
- import { IConfigOverwrite, Realm } from "@nmshd/transport";
1
+ import { IConfigOverwrite } from "@nmshd/transport";
2
2
  import { ModuleConfiguration } from "./extensibility/modules/RuntimeModule";
3
3
  export interface RuntimeConfig {
4
- debug: boolean;
5
- realm: Realm;
6
4
  transportLibrary: IConfigOverwrite;
7
- consumptionLibrary: {};
8
- eventBus: {};
9
5
  modules: Record<string, ModuleConfiguration>;
10
6
  }
@@ -7,11 +7,11 @@ const content_1 = require("@nmshd/content");
7
7
  const crypto_1 = require("@nmshd/crypto");
8
8
  const transport_1 = require("@nmshd/transport");
9
9
  exports.buildInformation = {
10
- version: "1.0.4",
11
- build: "7",
12
- date: "2021-10-18T07:30:38+00:00",
13
- commit: "2f45bf441bebcf3d0ffbf79a4a56c0e9057da172",
14
- dependencies: {"@js-soft/docdb-querytranslator":"1.0.1","@js-soft/logging-abstractions":"1.0.0","@js-soft/ts-serval":"1.0.2","@js-soft/ts-utils":"1.0.1","@nmshd/consumption":"1.0.5","@nmshd/content":"1.0.4","@nmshd/crypto":"1.0.4","@nmshd/transport":"1.0.7","fluent-ts-validator":"3.0.2","luxon":"^2.0.2","qrcode":"1.4.4","reflect-metadata":"0.1.13","ts-simple-nameof":"1.3.1","typescript-ioc":"3.2.2"},
10
+ version: "1.0.8",
11
+ build: "12",
12
+ date: "2021-11-24T08:32:50+00:00",
13
+ commit: "386da401efb261b7825cd45d2ba5fc74ded89b43",
14
+ dependencies: {"@js-soft/docdb-querytranslator":"1.0.1","@js-soft/logging-abstractions":"1.0.0","@js-soft/ts-serval":"1.0.2","@js-soft/ts-utils":"^1.1.1","@nmshd/consumption":"1.0.5","@nmshd/content":"1.0.4","@nmshd/crypto":"1.0.4","@nmshd/transport":"1.1.0","ajv":"^8.8.2","ajv-formats":"^2.1.1","fluent-ts-validator":"3.0.2","luxon":"^2.1.1","qrcode":"1.5.0","reflect-metadata":"0.1.13","ts-simple-nameof":"1.3.1","typescript-ioc":"3.2.2"},
15
15
  libraries: {
16
16
  serval: ts_serval_1.buildInformation,
17
17
  consumption: consumption_1.buildInformation,
@@ -1,5 +1,5 @@
1
1
  export * from "./AnonymousServices";
2
2
  export * from "./ConsumptionServices";
3
3
  export * from "./modules/RuntimeModule";
4
- export * from "./modules/RuntimeModuleCollection";
4
+ export * from "./modules/RuntimeModuleRegistry";
5
5
  export * from "./TransportServices";
@@ -13,6 +13,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
13
13
  __exportStar(require("./AnonymousServices"), exports);
14
14
  __exportStar(require("./ConsumptionServices"), exports);
15
15
  __exportStar(require("./modules/RuntimeModule"), exports);
16
- __exportStar(require("./modules/RuntimeModuleCollection"), exports);
16
+ __exportStar(require("./modules/RuntimeModuleRegistry"), exports);
17
17
  __exportStar(require("./TransportServices"), exports);
18
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/extensibility/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sDAAoC;AACpC,wDAAsC;AACtC,0DAAwC;AACxC,oEAAkD;AAClD,sDAAoC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/extensibility/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sDAAoC;AACpC,wDAAsC;AACtC,0DAAwC;AACxC,kEAAgD;AAChD,sDAAoC"}
@@ -1,5 +1,5 @@
1
1
  import { RuntimeModule } from "./RuntimeModule";
2
- export declare class RuntimeModuleCollection implements Iterable<RuntimeModule> {
2
+ export declare class RuntimeModuleRegistry implements Iterable<RuntimeModule> {
3
3
  private readonly modules;
4
4
  getByName<T extends RuntimeModule>(name: string): T;
5
5
  add(module: RuntimeModule): void;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ModulesIterator = exports.RuntimeModuleCollection = void 0;
4
- class RuntimeModuleCollection {
3
+ exports.ModulesIterator = exports.RuntimeModuleRegistry = void 0;
4
+ class RuntimeModuleRegistry {
5
5
  constructor() {
6
6
  this.modules = [];
7
7
  }
@@ -18,7 +18,7 @@ class RuntimeModuleCollection {
18
18
  return new ModulesIterator(this.modules);
19
19
  }
20
20
  }
21
- exports.RuntimeModuleCollection = RuntimeModuleCollection;
21
+ exports.RuntimeModuleRegistry = RuntimeModuleRegistry;
22
22
  class ModulesIterator {
23
23
  constructor(items) {
24
24
  this.items = items;
@@ -32,4 +32,4 @@ class ModulesIterator {
32
32
  }
33
33
  }
34
34
  exports.ModulesIterator = ModulesIterator;
35
- //# sourceMappingURL=RuntimeModuleCollection.js.map
35
+ //# sourceMappingURL=RuntimeModuleRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuntimeModuleRegistry.js","sourceRoot":"","sources":["../../../src/extensibility/modules/RuntimeModuleRegistry.ts"],"names":[],"mappings":";;;AAEA,MAAa,qBAAqB;IAAlC;QACqB,YAAO,GAAoB,EAAE,CAAC;IAiBnD,CAAC;IAfU,SAAS,CAA0B,IAAY;QAClD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAM,CAAC;IACtF,CAAC;IAEM,GAAG,CAAC,MAAqB;QAC5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAEM,OAAO;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;IAEM,CAAC,MAAM,CAAC,QAAQ,CAAC;QACpB,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;CACJ;AAlBD,sDAkBC;AAED,MAAa,eAAe;IAGxB,YAAoC,KAAsB;QAAtB,UAAK,GAAL,KAAK,CAAiB;QAFlD,iBAAY,GAAG,CAAC,CAAC;IAEoC,CAAC;IAEvD,IAAI,CAAC,MAAY;QACpB,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACtC,IAAI,EAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM;SAC9C,CAAC;IACN,CAAC;CACJ;AAXD,0CAWC"}
@@ -0,0 +1,20 @@
1
+ import { ErrorObject, ValidateFunction } from "ajv";
2
+ export declare class SchemaRepository {
3
+ private readonly compiler;
4
+ private schemaDefinitions;
5
+ private readonly jsonSchemas;
6
+ constructor();
7
+ private addCustomFormats;
8
+ loadSchemas(): Promise<void>;
9
+ getSchema(schemaName: string): JsonSchema;
10
+ private getValidationFunction;
11
+ private getSchemaDefinition;
12
+ }
13
+ export declare class JsonSchema {
14
+ private readonly validateSchema;
15
+ constructor(validateSchema: ValidateFunction);
16
+ validate(obj: any): {
17
+ isValid: boolean;
18
+ errors: null | ErrorObject[] | undefined;
19
+ };
20
+ }
@@ -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
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.JsonSchema = exports.SchemaRepository = void 0;
26
+ const ajv_1 = __importDefault(require("ajv"));
27
+ const ajv_formats_1 = __importDefault(require("ajv-formats"));
28
+ const customFormats = {
29
+ fileId: "FIL[A-Za-z0-9]{17}",
30
+ relationshipId: "REL[A-Za-z0-9]{17}",
31
+ messageId: "MSG[A-Za-z0-9]{17}",
32
+ relationshipTemplateId: "RLT[A-Za-z0-9]{17}",
33
+ tokenId: "TOK[A-Za-z0-9]{17}",
34
+ relationshipChangeId: "RCH[A-Za-z0-9]{17}",
35
+ deviceId: "DVC[A-Za-z0-9]{17}"
36
+ };
37
+ class SchemaRepository {
38
+ constructor() {
39
+ this.jsonSchemas = new Map();
40
+ this.compiler = new ajv_1.default();
41
+ (0, ajv_formats_1.default)(this.compiler);
42
+ this.addCustomFormats();
43
+ }
44
+ addCustomFormats() {
45
+ Object.entries(customFormats).forEach(([name, format]) => {
46
+ this.compiler.addFormat(name, format);
47
+ });
48
+ }
49
+ async loadSchemas() {
50
+ this.schemaDefinitions = (await Promise.resolve().then(() => __importStar(require("./Schemas"))));
51
+ }
52
+ getSchema(schemaName) {
53
+ if (!this.jsonSchemas.has(schemaName)) {
54
+ this.jsonSchemas.set(schemaName, new JsonSchema(this.getValidationFunction(schemaName)));
55
+ }
56
+ return this.jsonSchemas.get(schemaName);
57
+ }
58
+ getValidationFunction(schemaName) {
59
+ return this.compiler.compile(this.getSchemaDefinition(schemaName));
60
+ }
61
+ getSchemaDefinition(type) {
62
+ const def = this.schemaDefinitions[type];
63
+ if (!def)
64
+ throw new Error(`Schema ${type} not found`);
65
+ return def;
66
+ }
67
+ }
68
+ exports.SchemaRepository = SchemaRepository;
69
+ class JsonSchema {
70
+ constructor(validateSchema) {
71
+ this.validateSchema = validateSchema;
72
+ }
73
+ validate(obj) {
74
+ return { isValid: this.validateSchema(obj), errors: this.validateSchema.errors };
75
+ }
76
+ }
77
+ exports.JsonSchema = JsonSchema;
78
+ //# sourceMappingURL=SchemaRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaRepository.js","sourceRoot":"","sources":["../../../src/useCases/common/SchemaRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAyD;AACzD,8DAAqC;AAGrC,MAAM,aAAa,GAA2B;IAC1C,MAAM,EAAE,oBAAoB;IAC5B,cAAc,EAAE,oBAAoB;IACpC,SAAS,EAAE,oBAAoB;IAC/B,sBAAsB,EAAE,oBAAoB;IAC5C,OAAO,EAAE,oBAAoB;IAC7B,oBAAoB,EAAE,oBAAoB;IAC1C,QAAQ,EAAE,oBAAoB;CACjC,CAAC;AAEF,MAAa,gBAAgB;IAKzB;QAFiB,gBAAW,GAAG,IAAI,GAAG,EAAsB,CAAC;QAGzD,IAAI,CAAC,QAAQ,GAAG,IAAI,aAAG,EAAE,CAAC;QAC1B,IAAA,qBAAU,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE1B,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAEO,gBAAgB;QACpB,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE;YACrD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,KAAK,CAAC,WAAW;QACpB,IAAI,CAAC,iBAAiB,GAAG,CAAC,wDAAa,WAAW,GAAC,CAA+B,CAAC;IACvF,CAAC;IAEM,SAAS,CAAC,UAAkB;QAC/B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YACnC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;SAC5F;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC;IAC7C,CAAC;IAEO,qBAAqB,CAAC,UAAkB;QAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC;IACvE,CAAC;IAEO,mBAAmB,CAAC,IAAY;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAEzC,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,YAAY,CAAC,CAAC;QAEtD,OAAO,GAAG,CAAC;IACf,CAAC;CACJ;AAzCD,4CAyCC;AAED,MAAa,UAAU;IACnB,YAAoC,cAAgC;QAAhC,mBAAc,GAAd,cAAc,CAAkB;IAAG,CAAC;IAEjE,QAAQ,CAAC,GAAQ;QACpB,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;IACrF,CAAC;CACJ;AAND,gCAMC"}
@@ -0,0 +1,9 @@
1
+ import { ValidationResult } from "fluent-ts-validator";
2
+ import { IValidator } from ".";
3
+ import { JsonSchema } from "./SchemaRepository";
4
+ export declare class SchemaValidator<T> implements IValidator<T> {
5
+ private readonly schema;
6
+ constructor(schema: JsonSchema);
7
+ validate(input: T): ValidationResult;
8
+ private schemaErrorToValidationFailure;
9
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SchemaValidator = void 0;
4
+ const fluent_ts_validator_1 = require("fluent-ts-validator");
5
+ class SchemaValidator {
6
+ constructor(schema) {
7
+ this.schema = schema;
8
+ }
9
+ validate(input) {
10
+ const validationResult = this.schema.validate(input);
11
+ const result = new fluent_ts_validator_1.ValidationResult();
12
+ if (validationResult.isValid) {
13
+ return result;
14
+ }
15
+ result.addFailures(validationResult.errors.map(this.schemaErrorToValidationFailure));
16
+ return result;
17
+ }
18
+ schemaErrorToValidationFailure(err, target) {
19
+ const errorMessage = `${err.instancePath} ${err.message}`.replace(/^\//, "").replace(/"/g, "");
20
+ return new fluent_ts_validator_1.ValidationFailure(target, err.instancePath, undefined, undefined, errorMessage);
21
+ }
22
+ }
23
+ exports.SchemaValidator = SchemaValidator;
24
+ //# sourceMappingURL=SchemaValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaValidator.js","sourceRoot":"","sources":["../../../src/useCases/common/SchemaValidator.ts"],"names":[],"mappings":";;;AACA,6DAA0E;AAI1E,MAAa,eAAe;IACxB,YAAoC,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;IAAG,CAAC;IAEnD,QAAQ,CAAC,KAAQ;QACpB,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,sCAAgB,EAAE,CAAC;QAEtC,IAAI,gBAAgB,CAAC,OAAO,EAAE;YAC1B,OAAO,MAAM,CAAC;SACjB;QAED,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,MAAO,CAAC,GAAG,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;QAEtF,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,8BAA8B,CAAI,GAAgB,EAAE,MAAS;QACjE,MAAM,YAAY,GAAG,GAAG,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAE/F,OAAO,IAAI,uCAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IAC/F,CAAC;CACJ;AArBD,0CAqBC"}