jitar 0.1.3 → 0.2.1

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 (92) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/dist/core/types/Component.d.ts +1 -1
  3. package/dist/core/types/FlexObject.d.ts +1 -1
  4. package/dist/core/types/Module.d.ts +1 -1
  5. package/dist/core/types/SegmentImplementation.d.ts +1 -1
  6. package/dist/core/types/SegmentModule.d.ts +1 -1
  7. package/dist/core/types/SegmentProcedure.d.ts +1 -1
  8. package/dist/lib.d.ts +28 -1
  9. package/dist/lib.js +25 -1
  10. package/dist/runtime/LocalGateway.d.ts +2 -0
  11. package/dist/runtime/LocalGateway.js +7 -0
  12. package/dist/runtime/caching/types/SegmentFile.d.ts +1 -1
  13. package/dist/runtime/caching/types/SegmentImportProperties.d.ts +1 -1
  14. package/dist/runtime/caching/types/SegmentImports.d.ts +1 -1
  15. package/dist/runtime/serialization/ArrayBufferSerializer.d.ts +10 -0
  16. package/dist/runtime/serialization/ArrayBufferSerializer.js +54 -0
  17. package/dist/runtime/serialization/DateSerializer.d.ts +9 -0
  18. package/dist/runtime/serialization/DateSerializer.js +21 -0
  19. package/dist/runtime/serialization/ValueSerializer.d.ts +1 -0
  20. package/dist/runtime/serialization/ValueSerializer.js +24 -1
  21. package/dist/runtime/serialization/types/SerializableObject.d.ts +1 -1
  22. package/dist/runtime/serialization/types/Serialized.d.ts +1 -1
  23. package/dist/runtime/serialization/types/SerializedArrayBuffer.d.ts +6 -0
  24. package/dist/runtime/serialization/types/SerializedArrayBuffer.js +1 -0
  25. package/dist/runtime/serialization/types/SerializedClass.d.ts +1 -1
  26. package/dist/runtime/serialization/types/SerializedDate.d.ts +5 -0
  27. package/dist/runtime/serialization/types/SerializedDate.js +1 -0
  28. package/dist/runtime/serialization/types/SerializedMap.d.ts +1 -1
  29. package/dist/runtime/serialization/types/SerializedObject.d.ts +1 -1
  30. package/dist/runtime/serialization/types/SerializedSet.d.ts +1 -1
  31. package/dist/runtime/serialization/types/TypedArray.d.ts +2 -0
  32. package/dist/runtime/serialization/types/TypedArray.js +1 -0
  33. package/dist/runtime/types/JitarHooks.d.ts +1 -1
  34. package/dist/runtime/types/ModuleImporter.d.ts +1 -1
  35. package/dist/runtime/utils/ModuleLoader.js +1 -1
  36. package/package.json +4 -22
  37. package/dist/server/JitarServer.d.ts +0 -8
  38. package/dist/server/JitarServer.js +0 -109
  39. package/dist/server/configuration/GatewayConfiguration.d.ts +0 -3
  40. package/dist/server/configuration/GatewayConfiguration.js +0 -18
  41. package/dist/server/configuration/NodeConfiguration.d.ts +0 -5
  42. package/dist/server/configuration/NodeConfiguration.js +0 -28
  43. package/dist/server/configuration/ProxyConfiguration.d.ts +0 -5
  44. package/dist/server/configuration/ProxyConfiguration.js +0 -29
  45. package/dist/server/configuration/RepositoryConfiguration.d.ts +0 -6
  46. package/dist/server/configuration/RepositoryConfiguration.js +0 -36
  47. package/dist/server/configuration/RuntimeConfiguration.d.ts +0 -13
  48. package/dist/server/configuration/RuntimeConfiguration.js +0 -48
  49. package/dist/server/configuration/ServerOptions.d.ts +0 -4
  50. package/dist/server/configuration/ServerOptions.js +0 -25
  51. package/dist/server/configuration/StandaloneConfiguration.d.ts +0 -7
  52. package/dist/server/configuration/StandaloneConfiguration.js +0 -42
  53. package/dist/server/controllers/AssetsController.d.ts +0 -8
  54. package/dist/server/controllers/AssetsController.js +0 -50
  55. package/dist/server/controllers/HealthController.d.ts +0 -10
  56. package/dist/server/controllers/HealthController.js +0 -47
  57. package/dist/server/controllers/JitarController.d.ts +0 -4
  58. package/dist/server/controllers/JitarController.js +0 -26
  59. package/dist/server/controllers/ModulesController.d.ts +0 -10
  60. package/dist/server/controllers/ModulesController.js +0 -68
  61. package/dist/server/controllers/NodesController.d.ts +0 -9
  62. package/dist/server/controllers/NodesController.js +0 -60
  63. package/dist/server/controllers/ProceduresController.d.ts +0 -10
  64. package/dist/server/controllers/ProceduresController.js +0 -35
  65. package/dist/server/controllers/ProxyController.d.ts +0 -7
  66. package/dist/server/controllers/ProxyController.js +0 -37
  67. package/dist/server/controllers/RPCController.d.ts +0 -9
  68. package/dist/server/controllers/RPCController.js +0 -146
  69. package/dist/server/definitions/RuntimeDefaults.d.ts +0 -7
  70. package/dist/server/definitions/RuntimeDefaults.js +0 -8
  71. package/dist/server/errors/MissingConfigurationValue.d.ts +0 -3
  72. package/dist/server/errors/MissingConfigurationValue.js +0 -5
  73. package/dist/server/errors/RuntimeNotAvaiable.d.ts +0 -3
  74. package/dist/server/errors/RuntimeNotAvaiable.js +0 -5
  75. package/dist/server/errors/UnknownRuntimeMode.d.ts +0 -3
  76. package/dist/server/errors/UnknownRuntimeMode.js +0 -5
  77. package/dist/server/models/HealthDto.d.ts +0 -4
  78. package/dist/server/models/HealthDto.js +0 -22
  79. package/dist/server/models/NodeDto.d.ts +0 -4
  80. package/dist/server/models/NodeDto.js +0 -22
  81. package/dist/server/utils/DataConverter.d.ts +0 -4
  82. package/dist/server/utils/DataConverter.js +0 -9
  83. package/dist/server/utils/LocalFileManager.d.ts +0 -21
  84. package/dist/server/utils/LocalFileManager.js +0 -81
  85. package/dist/server/utils/RuntimeConfigurationLoader.d.ts +0 -4
  86. package/dist/server/utils/RuntimeConfigurationLoader.js +0 -11
  87. package/dist/server/utils/RuntimeConfigurator.d.ts +0 -6
  88. package/dist/server/utils/RuntimeConfigurator.js +0 -135
  89. package/dist/server/utils/ServerOptionsReader.d.ts +0 -4
  90. package/dist/server/utils/ServerOptionsReader.js +0 -10
  91. package/dist/server.d.ts +0 -3
  92. package/dist/server.js +0 -8
@@ -1,60 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
- import { Controller, Get, Post } from '@overnightjs/core';
11
- import { Logger } from 'tslog';
12
- import LocalGateway from '../../runtime/LocalGateway.js';
13
- import RemoteNode from '../../runtime/RemoteNode.js';
14
- import NodeDto from '../models/NodeDto.js';
15
- import DataConverter from '../utils/DataConverter.js';
16
- let NodesController = class NodesController {
17
- #gateway;
18
- #logger;
19
- constructor(gateway, logger) {
20
- this.#gateway = gateway;
21
- this.#logger = logger;
22
- }
23
- async getNodes(request, response) {
24
- const nodes = this.#gateway.nodes.map(node => { return { url: node.url, procedureNames: node.getProcedureNames() }; });
25
- this.#logger.info('Got nodes');
26
- return response.status(200).send(nodes);
27
- }
28
- async add(request, response) {
29
- try {
30
- const nodeDto = await DataConverter.convert(NodeDto, request.body);
31
- const node = new RemoteNode(nodeDto.url, nodeDto.procedureNames);
32
- this.#gateway.addNode(node);
33
- this.#logger.info(`Added node -> ${node.url}`);
34
- return response.status(201).send();
35
- }
36
- catch (error) {
37
- const status = error instanceof Array ? 400 : 500;
38
- const message = error instanceof Error ? error.message : String(error);
39
- this.#logger.error(`Failed to add node | ${message}`);
40
- return response.status(status).send(error);
41
- }
42
- }
43
- };
44
- __decorate([
45
- Get(),
46
- __metadata("design:type", Function),
47
- __metadata("design:paramtypes", [Object, Object]),
48
- __metadata("design:returntype", Promise)
49
- ], NodesController.prototype, "getNodes", null);
50
- __decorate([
51
- Post(),
52
- __metadata("design:type", Function),
53
- __metadata("design:paramtypes", [Object, Object]),
54
- __metadata("design:returntype", Promise)
55
- ], NodesController.prototype, "add", null);
56
- NodesController = __decorate([
57
- Controller('nodes'),
58
- __metadata("design:paramtypes", [LocalGateway, Logger])
59
- ], NodesController);
60
- export default NodesController;
@@ -1,10 +0,0 @@
1
- import { Request, Response } from 'express';
2
- import { Logger } from 'tslog';
3
- import LocalGateway from '../../runtime/LocalGateway.js';
4
- import LocalNode from '../../runtime/LocalNode.js';
5
- import Proxy from '../../runtime/Proxy.js';
6
- export default class ProceduresController {
7
- #private;
8
- constructor(runtime: LocalGateway | LocalNode | Proxy, logger: Logger);
9
- getProcedureNames(request: Request, response: Response): Promise<Response>;
10
- }
@@ -1,35 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
- import { Controller, Get } from '@overnightjs/core';
11
- import { Logger } from 'tslog';
12
- let ProceduresController = class ProceduresController {
13
- #runtime;
14
- #logger;
15
- constructor(runtime, logger) {
16
- this.#runtime = runtime;
17
- this.#logger = logger;
18
- }
19
- async getProcedureNames(request, response) {
20
- const names = this.#runtime.getProcedureNames();
21
- this.#logger.info('Got procedure names');
22
- return response.status(200).send(names);
23
- }
24
- };
25
- __decorate([
26
- Get(),
27
- __metadata("design:type", Function),
28
- __metadata("design:paramtypes", [Object, Object]),
29
- __metadata("design:returntype", Promise)
30
- ], ProceduresController.prototype, "getProcedureNames", null);
31
- ProceduresController = __decorate([
32
- Controller('procedures'),
33
- __metadata("design:paramtypes", [Object, Logger])
34
- ], ProceduresController);
35
- export default ProceduresController;
@@ -1,7 +0,0 @@
1
- import express from 'express';
2
- import { Logger } from 'tslog';
3
- import Proxy from '../../runtime/Proxy.js';
4
- export default class ProxyController {
5
- #private;
6
- constructor(app: express.Application, proxy: Proxy, logger: Logger);
7
- }
@@ -1,37 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
- import { Controller } from '@overnightjs/core';
11
- import express from 'express';
12
- import expressProxy from 'express-http-proxy';
13
- import { Logger } from 'tslog';
14
- import Proxy from '../../runtime/Proxy.js';
15
- let ProxyController = class ProxyController {
16
- #logger;
17
- #repositoryUrl;
18
- #runnerUrl;
19
- constructor(app, proxy, logger) {
20
- this.#logger = logger;
21
- this.#repositoryUrl = proxy.repository.url ?? '';
22
- this.#runnerUrl = proxy.runner.url ?? '';
23
- app.use('/', expressProxy((message) => this.#selectProxy(message)));
24
- }
25
- #selectProxy(message) {
26
- const url = message.url ?? '';
27
- this.#logger.info(`Forwarding -> ${url}`);
28
- return url.startsWith('/rpc')
29
- ? this.#runnerUrl
30
- : this.#repositoryUrl;
31
- }
32
- };
33
- ProxyController = __decorate([
34
- Controller(''),
35
- __metadata("design:paramtypes", [Function, Proxy, Logger])
36
- ], ProxyController);
37
- export default ProxyController;
@@ -1,9 +0,0 @@
1
- import { Request, Response } from 'express';
2
- import { Logger } from 'tslog';
3
- import ProcedureContainer from '../../runtime/interfaces/ProcedureContainer.js';
4
- export default class RPCController {
5
- #private;
6
- constructor(runtime: ProcedureContainer, logger: Logger, useSerializer: boolean);
7
- runGet(request: Request, response: Response): Promise<Response>;
8
- runPost(request: Request, response: Response): Promise<Response>;
9
- }
@@ -1,146 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
- import { Controller, Get, Post } from '@overnightjs/core';
11
- import { Logger } from 'tslog';
12
- import Version from '../../core/Version.js';
13
- import ImplementationNotFound from '../../core/errors/ImplementationNotFound.js';
14
- import InvalidVersionNumber from '../../core/errors/InvalidVersionNumber.js';
15
- import MissingParameterValue from '../../core/errors/MissingParameterValue.js';
16
- import ProcedureNotFound from '../../core/errors/ProcedureNotFound.js';
17
- import UnknownParameter from '../../core/errors/UnknownParameter.js';
18
- import ValueSerializer from '../../runtime/serialization/ValueSerializer.js';
19
- const RPC_PARAMETERS = ['version', 'serialize'];
20
- const INVALID_REQUEST_ERRORS = [InvalidVersionNumber, MissingParameterValue, UnknownParameter];
21
- const NOT_FOUND_ERRORS = [ImplementationNotFound, ProcedureNotFound];
22
- let RPCController = class RPCController {
23
- #runtime;
24
- #logger;
25
- #useSerializer;
26
- constructor(runtime, logger, useSerializer) {
27
- this.#runtime = runtime;
28
- this.#logger = logger;
29
- this.#useSerializer = useSerializer;
30
- this.#showProcedureInfo();
31
- }
32
- #showProcedureInfo() {
33
- const procedureNames = this.#runtime.getProcedureNames();
34
- if (procedureNames.length === 0) {
35
- return;
36
- }
37
- procedureNames.sort();
38
- this.#logger.info('Registered RPC entries', procedureNames);
39
- }
40
- async runGet(request, response) {
41
- const fqn = this.#extractFqn(request);
42
- const version = this.#extractVersion(request);
43
- const args = this.#extractQueryArguments(request);
44
- const serialize = this.#extractSerialize(request);
45
- return this.#run(fqn, version, args, response, serialize);
46
- }
47
- async runPost(request, response) {
48
- const fqn = this.#extractFqn(request);
49
- const version = this.#extractVersion(request);
50
- const args = await this.#extractBodyArguments(request);
51
- const serialize = this.#extractSerialize(request);
52
- return this.#run(fqn, version, args, response, serialize);
53
- }
54
- #extractFqn(request) {
55
- return request.path.substring(1);
56
- }
57
- #extractVersion(request) {
58
- return request.query.version !== undefined
59
- ? Version.parse(request.query.version.toString())
60
- : Version.DEFAULT;
61
- }
62
- #extractSerialize(request) {
63
- return request.query.serialize === 'true';
64
- }
65
- #extractQueryArguments(request) {
66
- const args = new Map();
67
- for (const [key, value] of Object.entries(request.query)) {
68
- if (RPC_PARAMETERS.includes(key)) {
69
- continue;
70
- }
71
- args.set(key, value);
72
- }
73
- return args;
74
- }
75
- async #extractBodyArguments(request) {
76
- const args = this.#useSerializer
77
- ? await ValueSerializer.deserialize(request.body)
78
- : request.body;
79
- return new Map(Object.entries(args));
80
- }
81
- async #run(fqn, version, args, response, serialize) {
82
- if (this.#runtime.hasProcedure(fqn) === false) {
83
- return response.status(404).send(`Procedure not found -> ${fqn}`);
84
- }
85
- try {
86
- const result = await this.#runtime.run(fqn, version, args);
87
- this.#logger.info(`Ran procedure -> ${fqn} (${version.toString()})`);
88
- return this.#createResultResponse(result, response, this.#useSerializer && serialize);
89
- }
90
- catch (error) {
91
- const message = error instanceof Error ? error.message : String(error);
92
- const errorData = serialize ? error : message;
93
- this.#logger.error(`Failed to run procedure -> ${fqn} (${version.toString()}) | ${message}`);
94
- return this.#createErrorResponse(error, errorData, response, serialize);
95
- }
96
- }
97
- #createResultResponse(result, response, serialize) {
98
- const content = this.#createResponseContent(result, serialize);
99
- const contentType = this.#createResponseContentType(content);
100
- response.setHeader('Content-Type', contentType);
101
- return response.status(200).send(content);
102
- }
103
- #createErrorResponse(error, errorData, response, serialize) {
104
- const content = this.#createResponseContent(errorData, serialize);
105
- const contentType = this.#createResponseContentType(content);
106
- const statusCode = this.#createResponseStatusCode(error);
107
- response.setHeader('Content-Type', contentType);
108
- return response.status(statusCode).send(content);
109
- }
110
- #createResponseContent(data, serialize) {
111
- return serialize
112
- ? ValueSerializer.serialize(data)
113
- : data;
114
- }
115
- #createResponseContentType(content) {
116
- return typeof content === 'object'
117
- ? 'application/json'
118
- : 'text/plain';
119
- }
120
- #createResponseStatusCode(error) {
121
- if (INVALID_REQUEST_ERRORS.some(invalidError => error instanceof invalidError)) {
122
- return 400;
123
- }
124
- if (NOT_FOUND_ERRORS.some(notFoundError => error instanceof notFoundError)) {
125
- return 404;
126
- }
127
- return 500;
128
- }
129
- };
130
- __decorate([
131
- Get('*'),
132
- __metadata("design:type", Function),
133
- __metadata("design:paramtypes", [Object, Object]),
134
- __metadata("design:returntype", Promise)
135
- ], RPCController.prototype, "runGet", null);
136
- __decorate([
137
- Post('*'),
138
- __metadata("design:type", Function),
139
- __metadata("design:paramtypes", [Object, Object]),
140
- __metadata("design:returntype", Promise)
141
- ], RPCController.prototype, "runPost", null);
142
- RPCController = __decorate([
143
- Controller('rpc'),
144
- __metadata("design:paramtypes", [Object, Logger, Boolean])
145
- ], RPCController);
146
- export default RPCController;
@@ -1,7 +0,0 @@
1
- declare enum RuntimeDefaults {
2
- URL = "http://localhost:3000",
3
- SOURCE = "./src",
4
- CACHE = "./cache",
5
- INDEX = "index.html"
6
- }
7
- export default RuntimeDefaults;
@@ -1,8 +0,0 @@
1
- var RuntimeDefaults;
2
- (function (RuntimeDefaults) {
3
- RuntimeDefaults["URL"] = "http://localhost:3000";
4
- RuntimeDefaults["SOURCE"] = "./src";
5
- RuntimeDefaults["CACHE"] = "./cache";
6
- RuntimeDefaults["INDEX"] = "index.html";
7
- })(RuntimeDefaults || (RuntimeDefaults = {}));
8
- export default RuntimeDefaults;
@@ -1,3 +0,0 @@
1
- export default class MissingConfigurationValue extends Error {
2
- constructor(propertyName: string);
3
- }
@@ -1,5 +0,0 @@
1
- export default class MissingConfigurationValue extends Error {
2
- constructor(propertyName) {
3
- super(`Missing configuration value for '${propertyName}'`);
4
- }
5
- }
@@ -1,3 +0,0 @@
1
- export default class RuntimeNotAvaiable extends Error {
2
- constructor();
3
- }
@@ -1,5 +0,0 @@
1
- export default class RuntimeNotAvaiable extends Error {
2
- constructor() {
3
- super('Runtime is not available');
4
- }
5
- }
@@ -1,3 +0,0 @@
1
- export default class UnknownRuntimeMode extends Error {
2
- constructor();
3
- }
@@ -1,5 +0,0 @@
1
- export default class UnknownRuntimeMode extends Error {
2
- constructor() {
3
- super(`Unknown runtime mode`);
4
- }
5
- }
@@ -1,4 +0,0 @@
1
- export default class HealthDto {
2
- healthy: boolean;
3
- checks: Map<string, boolean>;
4
- }
@@ -1,22 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
- import { IsBoolean } from 'class-validator';
11
- export default class HealthDto {
12
- healthy = false;
13
- checks = new Map();
14
- }
15
- __decorate([
16
- IsBoolean(),
17
- __metadata("design:type", Object)
18
- ], HealthDto.prototype, "healthy", void 0);
19
- __decorate([
20
- IsBoolean({ each: true }),
21
- __metadata("design:type", Map)
22
- ], HealthDto.prototype, "checks", void 0);
@@ -1,4 +0,0 @@
1
- export default class NodeDto {
2
- url: string;
3
- procedureNames: string[];
4
- }
@@ -1,22 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
- import { ArrayNotEmpty, IsUrl } from 'class-validator';
11
- export default class NodeDto {
12
- url = '';
13
- procedureNames = [];
14
- }
15
- __decorate([
16
- IsUrl(),
17
- __metadata("design:type", Object)
18
- ], NodeDto.prototype, "url", void 0);
19
- __decorate([
20
- ArrayNotEmpty(),
21
- __metadata("design:type", Array)
22
- ], NodeDto.prototype, "procedureNames", void 0);
@@ -1,4 +0,0 @@
1
- import { ClassConstructor } from 'class-transformer';
2
- export default class DataConverter {
3
- static convert<Type extends Object>(targetClass: ClassConstructor<Type>, dataObject: object): Promise<Type>;
4
- }
@@ -1,9 +0,0 @@
1
- import { plainToClass } from 'class-transformer';
2
- import { validateOrReject } from 'class-validator';
3
- export default class DataConverter {
4
- static async convert(targetClass, dataObject) {
5
- const createdObject = plainToClass(targetClass, dataObject);
6
- await validateOrReject(createdObject);
7
- return createdObject;
8
- }
9
- }
@@ -1,21 +0,0 @@
1
- /// <reference types="node" />
2
- import FileManager from '../../runtime/interfaces/FileManager.js';
3
- import File from '../../runtime/models/File.js';
4
- export default class LocalFileManager implements FileManager {
5
- #private;
6
- constructor(location: string);
7
- getRootLocation(): string;
8
- getAbsoluteLocation(filename: string): string;
9
- getRelativeLocation(filename: string): string;
10
- getType(filename: string): Promise<string>;
11
- getContent(filename: string): Promise<Buffer>;
12
- load(filename: string): Promise<File>;
13
- store(filename: string, content: string): Promise<void>;
14
- copy(source: string, destination: string): Promise<void>;
15
- remove(filename: string): Promise<void>;
16
- getModuleFileNames(): Promise<string[]>;
17
- getSegmentFiles(): Promise<string[]>;
18
- getNodeSegmentFiles(): Promise<string[]>;
19
- getRepositorySegmentFiles(): Promise<string[]>;
20
- getAssetFiles(patterns: string[]): Promise<string[]>;
21
- }
@@ -1,81 +0,0 @@
1
- import fs from 'fs-extra';
2
- import glob from 'glob-promise';
3
- import mime from 'mime-types';
4
- import path from 'path';
5
- import FileNotFound from '../../runtime/errors/FileNotFound.js';
6
- import File from '../../runtime/models/File.js';
7
- export default class LocalFileManager {
8
- #location;
9
- constructor(location) {
10
- this.#location = location;
11
- }
12
- getRootLocation() {
13
- return path.resolve(this.#location);
14
- }
15
- getAbsoluteLocation(filename) {
16
- const location = filename.startsWith('/') ? filename : path.join(this.#location, filename);
17
- return path.resolve(location);
18
- }
19
- getRelativeLocation(filename) {
20
- return path.relative(this.#location, filename);
21
- }
22
- async getType(filename) {
23
- const location = this.getAbsoluteLocation(filename);
24
- return mime.lookup(location) || 'application/octet-stream';
25
- }
26
- async getContent(filename) {
27
- const location = this.getAbsoluteLocation(filename);
28
- if (fs.existsSync(location) === false) {
29
- throw new FileNotFound(filename);
30
- }
31
- return fs.readFile(location);
32
- }
33
- async load(filename) {
34
- const type = await this.getType(filename);
35
- const content = await this.getContent(filename);
36
- return new File(filename, type, content);
37
- }
38
- async store(filename, content) {
39
- const location = this.getAbsoluteLocation(filename);
40
- const directory = path.dirname(location);
41
- await fs.mkdir(directory, { recursive: true });
42
- return fs.writeFile(location, content);
43
- }
44
- async copy(source, destination) {
45
- const sourceLocation = this.getAbsoluteLocation(source);
46
- const destinationLocation = this.getAbsoluteLocation(destination);
47
- return fs.copy(sourceLocation, destinationLocation, { overwrite: true });
48
- }
49
- async remove(filename) {
50
- const location = this.getAbsoluteLocation(filename);
51
- return fs.remove(location);
52
- }
53
- async getModuleFileNames() {
54
- return this.#filterFiles('**/*.js');
55
- }
56
- async getSegmentFiles() {
57
- return this.#filterFiles('**/*.segment.json');
58
- }
59
- async getNodeSegmentFiles() {
60
- return this.#filterFiles('**/*.segment.local.js');
61
- }
62
- async getRepositorySegmentFiles() {
63
- return this.#filterFiles('**/*.segment.repository.js');
64
- }
65
- async getAssetFiles(patterns) {
66
- const promises = patterns.map(pattern => this.#filterFiles(pattern));
67
- const assetFiles = (await Promise.all(promises)).flat();
68
- return assetFiles
69
- .map(filename => this.getRelativeLocation(filename))
70
- .filter(filename => this.#isGeneratedFile(filename) === false);
71
- }
72
- async #filterFiles(pattern) {
73
- const location = this.getAbsoluteLocation('./');
74
- return await glob(`${location}/${pattern}`);
75
- }
76
- #isGeneratedFile(filename) {
77
- return filename.endsWith('.local.js')
78
- || filename.endsWith('.repository.js')
79
- || filename.endsWith('.remote.js');
80
- }
81
- }
@@ -1,4 +0,0 @@
1
- import RuntimeConfiguration from '../configuration/RuntimeConfiguration.js';
2
- export default class RuntimeConfigurationLoader {
3
- static load(filename: string): Promise<RuntimeConfiguration>;
4
- }
@@ -1,11 +0,0 @@
1
- import { readFileSync } from 'fs';
2
- import RuntimeConfiguration from '../configuration/RuntimeConfiguration.js';
3
- import DataConverter from './DataConverter.js';
4
- export default class RuntimeConfigurationLoader {
5
- static async load(filename) {
6
- const plainContents = readFileSync(filename, 'utf-8');
7
- const parsedContents = JSON.parse(plainContents);
8
- const configuration = await DataConverter.convert(RuntimeConfiguration, parsedContents);
9
- return configuration;
10
- }
11
- }
@@ -1,6 +0,0 @@
1
- import Runtime from '../../runtime/Runtime.js';
2
- import RuntimeConfiguration from '../configuration/RuntimeConfiguration.js';
3
- export default class RuntimeConfigurator {
4
- #private;
5
- static configure(configuration: RuntimeConfiguration): Promise<Runtime>;
6
- }