jitar 0.1.0 → 0.1.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.
- package/dist/core/SegmentBuilder.js +0 -1
- package/dist/runtime/ClientId.d.ts +4 -0
- package/dist/runtime/ClientId.js +11 -0
- package/dist/runtime/LocalRepository.d.ts +2 -2
- package/dist/runtime/LocalRepository.js +4 -5
- package/dist/runtime/caching/CacheBuilder.js +3 -3
- package/dist/runtime/serialization/ClassSerializer.js +16 -0
- package/dist/runtime/serialization/MapSerializer.d.ts +1 -0
- package/dist/runtime/serialization/MapSerializer.js +10 -0
- package/dist/runtime/serialization/SetSerializer.d.ts +1 -0
- package/dist/runtime/serialization/SetSerializer.js +7 -0
- package/dist/runtime/serialization/errors/InvalidPropertyType.d.ts +3 -0
- package/dist/runtime/serialization/errors/InvalidPropertyType.js +6 -0
- package/dist/server/controllers/ModulesController.js +6 -0
- package/package.json +23 -4
- package/src/core/SegmentBuilder.ts +1 -1
- package/src/runtime/ClientId.ts +18 -0
- package/src/runtime/LocalRepository.ts +5 -8
- package/src/runtime/caching/CacheBuilder.ts +3 -3
- package/src/runtime/serialization/ClassSerializer.ts +28 -0
- package/src/runtime/serialization/MapSerializer.ts +17 -1
- package/src/runtime/serialization/SetSerializer.ts +11 -0
- package/src/runtime/serialization/ValueSerializer.ts +1 -1
- package/src/runtime/serialization/errors/InvalidPropertyType.ts +12 -0
- package/src/server/controllers/ModulesController.ts +11 -0
- package/test/runtime/ClientId.spec.ts +43 -0
- package/test/runtime/LocalRepository.spec.ts +2 -2
- package/test/runtime/serialization/ValueSerializer.spec.ts +1 -1
- package/coverage/clover.xml +0 -2483
- package/coverage/coverage-final.json +0 -56
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +0 -356
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -196
- package/coverage/lcov-report/src/core/ErrorManager.ts.html +0 -139
- package/coverage/lcov-report/src/core/Implementation.ts.html +0 -244
- package/coverage/lcov-report/src/core/ImplementationBuilder.ts.html +0 -148
- package/coverage/lcov-report/src/core/Procedure.ts.html +0 -379
- package/coverage/lcov-report/src/core/Segment.ts.html +0 -271
- package/coverage/lcov-report/src/core/SegmentBuilder.ts.html +0 -250
- package/coverage/lcov-report/src/core/Version.ts.html +0 -289
- package/coverage/lcov-report/src/core/definitions/AccessLevel.ts.html +0 -94
- package/coverage/lcov-report/src/core/definitions/index.html +0 -116
- package/coverage/lcov-report/src/core/errors/ErrorManager.ts.html +0 -139
- package/coverage/lcov-report/src/core/errors/ImplementationNotFound.ts.html +0 -121
- package/coverage/lcov-report/src/core/errors/InvalidVersionNumber.ts.html +0 -121
- package/coverage/lcov-report/src/core/errors/MissingParameterValue.ts.html +0 -121
- package/coverage/lcov-report/src/core/errors/ProcedureNotFound.ts.html +0 -121
- package/coverage/lcov-report/src/core/errors/index.html +0 -161
- package/coverage/lcov-report/src/core/index.html +0 -191
- package/coverage/lcov-report/src/core/reflection/ParameterParser.ts.html +0 -307
- package/coverage/lcov-report/src/core/reflection/ReflectionHelper.ts.html +0 -439
- package/coverage/lcov-report/src/core/reflection/index.html +0 -131
- package/coverage/lcov-report/src/core/reflection/models/ReflectionField.ts.html +0 -151
- package/coverage/lcov-report/src/core/reflection/models/ReflectionParameter.ts.html +0 -139
- package/coverage/lcov-report/src/core/reflection/models/index.html +0 -131
- package/coverage/lcov-report/src/core/utils/FqnBuilder.ts.html +0 -115
- package/coverage/lcov-report/src/core/utils/index.html +0 -116
- package/coverage/lcov-report/src/hooks.ts.html +0 -88
- package/coverage/lcov-report/src/index.html +0 -116
- package/coverage/lcov-report/src/runtime/Gateway.ts.html +0 -139
- package/coverage/lcov-report/src/runtime/LocalGateway.ts.html +0 -364
- package/coverage/lcov-report/src/runtime/LocalNode.ts.html +0 -475
- package/coverage/lcov-report/src/runtime/LocalRepository.ts.html +0 -556
- package/coverage/lcov-report/src/runtime/Node.ts.html +0 -130
- package/coverage/lcov-report/src/runtime/NodeBalancer.ts.html +0 -268
- package/coverage/lcov-report/src/runtime/NodeMonitor.ts.html +0 -274
- package/coverage/lcov-report/src/runtime/Remote.ts.html +0 -562
- package/coverage/lcov-report/src/runtime/RemoteNode.ts.html +0 -232
- package/coverage/lcov-report/src/runtime/Repository.ts.html +0 -145
- package/coverage/lcov-report/src/runtime/Runtime.ts.html +0 -226
- package/coverage/lcov-report/src/runtime/caching/ImportRewriter.ts.html +0 -313
- package/coverage/lcov-report/src/runtime/caching/ModuleAppender.ts.html +0 -208
- package/coverage/lcov-report/src/runtime/caching/RemoteBuilder.ts.html +0 -238
- package/coverage/lcov-report/src/runtime/caching/SourceAppender.ts.html +0 -256
- package/coverage/lcov-report/src/runtime/caching/definitions/Keywords.ts.html +0 -94
- package/coverage/lcov-report/src/runtime/caching/definitions/index.html +0 -116
- package/coverage/lcov-report/src/runtime/caching/index.html +0 -146
- package/coverage/lcov-report/src/runtime/caching/models/ApplicationModule.ts.html +0 -175
- package/coverage/lcov-report/src/runtime/caching/models/Implementation.ts.html +0 -208
- package/coverage/lcov-report/src/runtime/caching/models/SegmentModule.ts.html +0 -163
- package/coverage/lcov-report/src/runtime/caching/models/index.html +0 -146
- package/coverage/lcov-report/src/runtime/errors/ClientNotFound.ts.html +0 -121
- package/coverage/lcov-report/src/runtime/errors/InvalidClientId.ts.html +0 -121
- package/coverage/lcov-report/src/runtime/errors/InvalidSegmentFile.ts.html +0 -121
- package/coverage/lcov-report/src/runtime/errors/ModuleNotLoaded.ts.html +0 -121
- package/coverage/lcov-report/src/runtime/errors/NoNodeAvailable.ts.html +0 -121
- package/coverage/lcov-report/src/runtime/errors/RepositoryNotAvaiable.ts.html +0 -121
- package/coverage/lcov-report/src/runtime/errors/RuntimeNotAvailable.ts.html +0 -121
- package/coverage/lcov-report/src/runtime/errors/index.html +0 -206
- package/coverage/lcov-report/src/runtime/hooks/dependencies.ts.html +0 -142
- package/coverage/lcov-report/src/runtime/hooks/index.html +0 -131
- package/coverage/lcov-report/src/runtime/hooks/runtime.ts.html +0 -160
- package/coverage/lcov-report/src/runtime/index.html +0 -251
- package/coverage/lcov-report/src/runtime/models/File.ts.html +0 -151
- package/coverage/lcov-report/src/runtime/models/index.html +0 -116
- package/coverage/lcov-report/src/runtime/serialization/ArraySerializer.ts.html +0 -166
- package/coverage/lcov-report/src/runtime/serialization/ClassSerializer.ts.html +0 -400
- package/coverage/lcov-report/src/runtime/serialization/MapSerializer.ts.html +0 -217
- package/coverage/lcov-report/src/runtime/serialization/ObjectSerializer.ts.html +0 -211
- package/coverage/lcov-report/src/runtime/serialization/SetSerializer.ts.html +0 -178
- package/coverage/lcov-report/src/runtime/serialization/ValueSerializer.ts.html +0 -328
- package/coverage/lcov-report/src/runtime/serialization/errors/ClassNotFound.ts.html +0 -121
- package/coverage/lcov-report/src/runtime/serialization/errors/InvalidClass.ts.html +0 -121
- package/coverage/lcov-report/src/runtime/serialization/errors/index.html +0 -131
- package/coverage/lcov-report/src/runtime/serialization/index.html +0 -191
- package/coverage/lcov-report/src/runtime/utils/ModuleAnalyser.ts.html +0 -265
- package/coverage/lcov-report/src/runtime/utils/ModuleLoader.ts.html +0 -238
- package/coverage/lcov-report/src/runtime/utils/UrlRewriter.ts.html +0 -262
- package/coverage/lcov-report/src/runtime/utils/index.html +0 -146
- package/coverage/lcov-report/test/_fixtures/core/Implementation.fixture.ts.html +0 -184
- package/coverage/lcov-report/test/_fixtures/core/Procedure.fixture.ts.html +0 -172
- package/coverage/lcov-report/test/_fixtures/core/Segment.fixture.ts.html +0 -193
- package/coverage/lcov-report/test/_fixtures/core/SegmentBuilder.fixture.ts.html +0 -220
- package/coverage/lcov-report/test/_fixtures/core/Version.fixture.ts.html +0 -139
- package/coverage/lcov-report/test/_fixtures/core/index.html +0 -176
- package/coverage/lcov-report/test/_fixtures/core/procedures/allDefault.ts.html +0 -100
- package/coverage/lcov-report/test/_fixtures/core/procedures/hasParameters.ts.html +0 -100
- package/coverage/lcov-report/test/_fixtures/core/procedures/hasVersion_v1_0_0.ts.html +0 -115
- package/coverage/lcov-report/test/_fixtures/core/procedures/hasVersion_v1_0_5.ts.html +0 -115
- package/coverage/lcov-report/test/_fixtures/core/procedures/hasVersion_v1_1_0.ts.html +0 -115
- package/coverage/lcov-report/test/_fixtures/core/procedures/hasVersion_v1_2_3.ts.html +0 -115
- package/coverage/lcov-report/test/_fixtures/core/procedures/inModule.ts.html +0 -115
- package/coverage/lcov-report/test/_fixtures/core/procedures/index.html +0 -251
- package/coverage/lcov-report/test/_fixtures/core/procedures/isBroken.ts.html +0 -112
- package/coverage/lcov-report/test/_fixtures/core/procedures/isPrivate.ts.html +0 -112
- package/coverage/lcov-report/test/_fixtures/core/procedures/isPublic.ts.html +0 -112
- package/coverage/lcov-report/test/_fixtures/core/reflection/ReflectionHelper.fixture.ts.html +0 -241
- package/coverage/lcov-report/test/_fixtures/core/reflection/index.html +0 -116
- package/coverage/lcov-report/test/_fixtures/core/segments/default.segment.ts.html +0 -94
- package/coverage/lcov-report/test/_fixtures/core/segments/index.html +0 -116
- package/coverage/lcov-report/test/_fixtures/runtime/LocalGateway.fixture.ts.html +0 -157
- package/coverage/lcov-report/test/_fixtures/runtime/LocalNode.fixture.ts.html +0 -133
- package/coverage/lcov-report/test/_fixtures/runtime/LocalRepository.fixture.ts.html +0 -304
- package/coverage/lcov-report/test/_fixtures/runtime/NodeBalancer.fixture.ts.html +0 -142
- package/coverage/lcov-report/test/_fixtures/runtime/NodeMonitor.fixture.ts.html +0 -187
- package/coverage/lcov-report/test/_fixtures/runtime/RemoteNode.fixture.ts.html +0 -109
- package/coverage/lcov-report/test/_fixtures/runtime/caching/ImportRewriter.fixture.ts.html +0 -304
- package/coverage/lcov-report/test/_fixtures/runtime/caching/ModuleAppender.fixture.ts.html +0 -181
- package/coverage/lcov-report/test/_fixtures/runtime/caching/RemoteBuilder.fixture.ts.html +0 -217
- package/coverage/lcov-report/test/_fixtures/runtime/caching/SourceAppender.fixture.ts.html +0 -178
- package/coverage/lcov-report/test/_fixtures/runtime/caching/index.html +0 -146
- package/coverage/lcov-report/test/_fixtures/runtime/index.html +0 -206
- package/coverage/lcov-report/test/_fixtures/runtime/procedures/firstPrivateTask.ts.html +0 -109
- package/coverage/lcov-report/test/_fixtures/runtime/procedures/firstPublicTask.ts.html +0 -118
- package/coverage/lcov-report/test/_fixtures/runtime/procedures/fourthPublicTask.ts.html +0 -109
- package/coverage/lcov-report/test/_fixtures/runtime/procedures/index.html +0 -191
- package/coverage/lcov-report/test/_fixtures/runtime/procedures/secondPrivateTask.ts.html +0 -109
- package/coverage/lcov-report/test/_fixtures/runtime/procedures/secondPublicTask.ts.html +0 -118
- package/coverage/lcov-report/test/_fixtures/runtime/procedures/thirdPublicTask.ts.html +0 -118
- package/coverage/lcov-report/test/_fixtures/runtime/segments/first.segment.files.ts.html +0 -85
- package/coverage/lcov-report/test/_fixtures/runtime/segments/first.segment.ts.html +0 -91
- package/coverage/lcov-report/test/_fixtures/runtime/segments/index.html +0 -161
- package/coverage/lcov-report/test/_fixtures/runtime/segments/second.segment.files.ts.html +0 -85
- package/coverage/lcov-report/test/_fixtures/runtime/segments/second.segment.ts.html +0 -91
- package/coverage/lcov-report/test/_fixtures/runtime/segments.ts.html +0 -319
- package/coverage/lcov-report/test/_fixtures/runtime/serialization/ValueSerializer.fixture.ts.html +0 -394
- package/coverage/lcov-report/test/_fixtures/runtime/serialization/index.html +0 -116
- package/coverage/lcov-report/test/_fixtures/runtime/utils/ModuleAnaliser.fixture.ts.html +0 -163
- package/coverage/lcov-report/test/_fixtures/runtime/utils/index.html +0 -116
- package/coverage/lcov.info +0 -3565
- package/dist/core/AccessLevel.d.ts +0 -5
- package/dist/core/AccessLevel.js +0 -6
- package/dist/core/ImplementationBuilder.d.ts +0 -4
- package/dist/core/ImplementationBuilder.js +0 -14
- package/dist/core/errors/ErrorManager.d.ts +0 -3
- package/dist/core/errors/ErrorManager.js +0 -11
- package/dist/runtime/RemoteNodeBuilder.d.ts +0 -4
- package/dist/runtime/RemoteNodeBuilder.js +0 -10
- package/dist/runtime/caching/CachBuilder.d.ts +0 -6
- package/dist/runtime/caching/CachBuilder.js +0 -150
- package/dist/runtime/caching/ModuleAppender.d.ts +0 -5
- package/dist/runtime/caching/ModuleAppender.js +0 -22
- package/dist/runtime/caching/errors/FunctionFilenameNotFound.d.ts +0 -3
- package/dist/runtime/caching/errors/FunctionFilenameNotFound.js +0 -5
- package/dist/runtime/caching/types/models/ApplicationModule.d.ts +0 -9
- package/dist/runtime/caching/types/models/ApplicationModule.js +0 -19
- package/dist/runtime/caching/types/models/Implementation.d.ts +0 -12
- package/dist/runtime/caching/types/models/Implementation.js +0 -27
- package/dist/runtime/caching/types/models/Procedure.d.ts +0 -9
- package/dist/runtime/caching/types/models/Procedure.js +0 -15
- package/dist/runtime/caching/types/models/Segment.d.ts +0 -10
- package/dist/runtime/caching/types/models/Segment.js +0 -16
- package/dist/runtime/caching/types/models/SegmentModule.d.ts +0 -10
- package/dist/runtime/caching/types/models/SegmentModule.js +0 -14
- package/dist/server/definitions/RuntimeMode.d.ts +0 -8
- package/dist/server/definitions/RuntimeMode.js +0 -9
- package/dist/server/models/RuntimeConfiguration.d.ts +0 -12
- package/dist/server/models/RuntimeConfiguration.js +0 -68
- package/dist/server/models/ServerOptions.d.ts +0 -4
- package/dist/server/models/ServerOptions.js +0 -25
package/dist/core/AccessLevel.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import Implementation from './Implementation.js';
|
|
2
|
-
import ReflectionHelper from './reflection/ReflectionHelper.js';
|
|
3
|
-
import Version from './Version.js';
|
|
4
|
-
export default class ImplementationBuilder {
|
|
5
|
-
static build(executable) {
|
|
6
|
-
const component = executable;
|
|
7
|
-
const name = component.name;
|
|
8
|
-
const module = component.module ?? '';
|
|
9
|
-
const version = component.version ? Version.parse(component.version) : Version.DEFAULT;
|
|
10
|
-
const isPublic = component.public !== false;
|
|
11
|
-
const parameters = ReflectionHelper.getFunctionParameters(executable);
|
|
12
|
-
return new Implementation(name, module, version, isPublic, parameters, executable);
|
|
13
|
-
}
|
|
14
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export default class ErrorManager extends Error {
|
|
2
|
-
static handle(error, name, version) {
|
|
3
|
-
const parentMessage = error instanceof Error ? error.message : String(error);
|
|
4
|
-
const newMessage = `${parentMessage}\n[${name} | v${version}]`;
|
|
5
|
-
if (error instanceof Error) {
|
|
6
|
-
error.message = newMessage;
|
|
7
|
-
return error;
|
|
8
|
-
}
|
|
9
|
-
return new Error(newMessage);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
import ModuleLoader from '../utils/ModuleLoader.js';
|
|
2
|
-
import ModuleAnalyser from '../utils/ModuleAnalyser.js';
|
|
3
|
-
import ApplicationModule from './models/ApplicationModule.js';
|
|
4
|
-
import SourceAppender from './SourceAppender.js';
|
|
5
|
-
import ImportRewriter from './ImportRewriter.js';
|
|
6
|
-
import RemoteBuilder from './RemoteBuilder.js';
|
|
7
|
-
import SegmentModule from './models/SegmentModule.js';
|
|
8
|
-
import FunctionFilenameNotFound from './errors/FunctionFilenameNotFound.js';
|
|
9
|
-
import ModuleAppender from './ModuleAppender.js';
|
|
10
|
-
const IGNORED_SOURCE_FILES = ['.min.js', '.segment.js'];
|
|
11
|
-
export default class CacheBuilder {
|
|
12
|
-
#sourceManager;
|
|
13
|
-
#cacheManager;
|
|
14
|
-
constructor(sourceManager, cacheManager) {
|
|
15
|
-
this.#sourceManager = sourceManager;
|
|
16
|
-
this.#cacheManager = cacheManager;
|
|
17
|
-
}
|
|
18
|
-
async build(...filenames) {
|
|
19
|
-
const segmentFiles = this.#filterSegmentFiles(filenames);
|
|
20
|
-
const applicationFiles = this.#filterApplicationFiles(filenames);
|
|
21
|
-
const segmentModules = await this.#createSegmentModules(segmentFiles);
|
|
22
|
-
const segmentedFunctions = this.#extractSegmentedFunctions(segmentModules);
|
|
23
|
-
const applicationModules = await this.#createApplicationModules(applicationFiles);
|
|
24
|
-
const cachableApplicationModules = this.#filterCachableApplicationModules(applicationModules, segmentedFunctions);
|
|
25
|
-
await this.#buildSegmentCache(segmentModules, cachableApplicationModules);
|
|
26
|
-
await this.#buildApplicationCache(cachableApplicationModules);
|
|
27
|
-
}
|
|
28
|
-
#filterSegmentFiles(fileNames) {
|
|
29
|
-
return fileNames.filter(filename => filename.endsWith('.segment.js'));
|
|
30
|
-
}
|
|
31
|
-
#filterApplicationFiles(fileNames) {
|
|
32
|
-
return fileNames.filter(filename => !this.#mustIgnoreFile(filename));
|
|
33
|
-
}
|
|
34
|
-
#mustIgnoreFile(filename) {
|
|
35
|
-
return IGNORED_SOURCE_FILES.some((ignored) => filename.endsWith(ignored));
|
|
36
|
-
}
|
|
37
|
-
async #createSegmentModules(filenames) {
|
|
38
|
-
const promises = filenames.map(async (filename) => this.#createSegmentModule(filename));
|
|
39
|
-
return Promise.all(promises).then(results => results);
|
|
40
|
-
}
|
|
41
|
-
async #createSegmentModule(filename) {
|
|
42
|
-
const relativeLocation = this.#sourceManager.getRelativeLocation(filename);
|
|
43
|
-
const module = await this.#loadModule(filename);
|
|
44
|
-
if (module === undefined) {
|
|
45
|
-
return new SegmentModule(relativeLocation, new Map());
|
|
46
|
-
}
|
|
47
|
-
const functions = ModuleAnalyser.filterFunctions(module);
|
|
48
|
-
return new SegmentModule(relativeLocation, functions);
|
|
49
|
-
}
|
|
50
|
-
#extractSegmentedFunctions(segmentModules) {
|
|
51
|
-
const functions = new Set();
|
|
52
|
-
for (const segmentModule of segmentModules) {
|
|
53
|
-
const moduleFunctions = [...segmentModule.functions.values()];
|
|
54
|
-
moduleFunctions.forEach(moduleFunction => functions.add(moduleFunction));
|
|
55
|
-
}
|
|
56
|
-
return functions;
|
|
57
|
-
}
|
|
58
|
-
async #createApplicationModules(filenames) {
|
|
59
|
-
const promises = filenames.map(async (filename) => this.#createApplicationModule(filename));
|
|
60
|
-
return Promise.all(promises).then(results => results);
|
|
61
|
-
}
|
|
62
|
-
async #createApplicationModule(filename) {
|
|
63
|
-
const module = await this.#loadModule(filename);
|
|
64
|
-
const relativeLocation = this.#sourceManager.getRelativeLocation(filename);
|
|
65
|
-
if (module === undefined) {
|
|
66
|
-
return new ApplicationModule(relativeLocation, new Map(), new Map());
|
|
67
|
-
}
|
|
68
|
-
const classes = ModuleAnalyser.filterClasses(module);
|
|
69
|
-
const functions = ModuleAnalyser.filterFunctions(module);
|
|
70
|
-
return new ApplicationModule(relativeLocation, classes, functions);
|
|
71
|
-
}
|
|
72
|
-
#filterCachableApplicationModules(applicationModules, segmentFunctions) {
|
|
73
|
-
return applicationModules.filter(module => module.hasClasses || this.#hasSegmentedFunctions(module, segmentFunctions));
|
|
74
|
-
}
|
|
75
|
-
#hasSegmentedFunctions(applicationModule, segmentFunctions) {
|
|
76
|
-
const applicationFunctions = [...applicationModule.functions.values()];
|
|
77
|
-
return applicationFunctions.some(applicationFunction => segmentFunctions.has(applicationFunction));
|
|
78
|
-
}
|
|
79
|
-
async #loadModule(filename) {
|
|
80
|
-
try {
|
|
81
|
-
return await ModuleLoader.load(filename);
|
|
82
|
-
}
|
|
83
|
-
catch (error) {
|
|
84
|
-
return undefined;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
async #buildSegmentCache(segmentModules, applicationModules) {
|
|
88
|
-
const promises = segmentModules.map(async (module) => this.#buildSegmentModuleCache(module, applicationModules));
|
|
89
|
-
return Promise.all(promises);
|
|
90
|
-
}
|
|
91
|
-
async #buildSegmentModuleCache(module, applicationModules) {
|
|
92
|
-
const filenames = this.#extractSegmentFilenames(module, applicationModules);
|
|
93
|
-
const segmentCode = `export const files = ${JSON.stringify(filenames)};`;
|
|
94
|
-
const segmentLocation = module.filename.replace('.js', '.files.js');
|
|
95
|
-
return this.#cacheManager.store(segmentLocation, segmentCode);
|
|
96
|
-
}
|
|
97
|
-
#extractSegmentFilenames(module, applicationModules) {
|
|
98
|
-
const filenames = [];
|
|
99
|
-
for (const segmentFunction of module.functions.values()) {
|
|
100
|
-
const filename = this.#findFunctionFilename(segmentFunction, applicationModules);
|
|
101
|
-
if (filename === undefined) {
|
|
102
|
-
throw new FunctionFilenameNotFound(segmentFunction.name, module.filename);
|
|
103
|
-
}
|
|
104
|
-
filenames.push(filename);
|
|
105
|
-
}
|
|
106
|
-
return filenames;
|
|
107
|
-
}
|
|
108
|
-
#findFunctionFilename(segmentFunction, applicationModules) {
|
|
109
|
-
const applicationModule = applicationModules.find(applicationModule => applicationModule.containsFunction(segmentFunction));
|
|
110
|
-
return applicationModule !== undefined
|
|
111
|
-
? applicationModule.filename
|
|
112
|
-
: undefined;
|
|
113
|
-
}
|
|
114
|
-
async #buildApplicationCache(applicationModules) {
|
|
115
|
-
const promises = applicationModules.map(async (module) => this.#buildApplicationModuleCache(module));
|
|
116
|
-
return Promise.all(promises);
|
|
117
|
-
}
|
|
118
|
-
async #buildApplicationModuleCache(module) {
|
|
119
|
-
const filename = module.filename;
|
|
120
|
-
const sourceLocation = this.#sourceManager.getAbsoluteLocation(filename);
|
|
121
|
-
const relativeLocation = filename;
|
|
122
|
-
const file = await this.#sourceManager.load(sourceLocation);
|
|
123
|
-
const content = file.content.toString();
|
|
124
|
-
const code = await this.#buildForRepository(module, content, relativeLocation);
|
|
125
|
-
if (module.hasFunctions) {
|
|
126
|
-
await this.#buildForNode(code, relativeLocation);
|
|
127
|
-
await this.#buildForRemote(module, relativeLocation);
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
async #buildForRepository(module, code, location) {
|
|
131
|
-
if (module.hasFunctions) {
|
|
132
|
-
code = ModuleAppender.append(module, code, location);
|
|
133
|
-
}
|
|
134
|
-
if (module.hasClasses) {
|
|
135
|
-
code = SourceAppender.append(module, code, location);
|
|
136
|
-
}
|
|
137
|
-
await this.#cacheManager.store(location, code);
|
|
138
|
-
return code;
|
|
139
|
-
}
|
|
140
|
-
async #buildForNode(code, location) {
|
|
141
|
-
code = ImportRewriter.rewrite(code);
|
|
142
|
-
const nodeLocation = location.replace('.js', '.node.js');
|
|
143
|
-
return this.#cacheManager.store(nodeLocation, code);
|
|
144
|
-
}
|
|
145
|
-
async #buildForRemote(module, location) {
|
|
146
|
-
const remoteCode = RemoteBuilder.build(module);
|
|
147
|
-
const remoteLocation = location.replace('.js', '.remote.js');
|
|
148
|
-
return this.#cacheManager.store(remoteLocation, remoteCode);
|
|
149
|
-
}
|
|
150
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export default class ModuleAppender {
|
|
2
|
-
static append(module, code, filename) {
|
|
3
|
-
const moduleName = this.#extractModuleName(filename);
|
|
4
|
-
const functions = [...module.functions.values()];
|
|
5
|
-
const moduleCode = this.#createModuleCode(functions, moduleName);
|
|
6
|
-
return `${code}\n${moduleCode}`;
|
|
7
|
-
}
|
|
8
|
-
static #extractModuleName(filename) {
|
|
9
|
-
const moduleParts = filename.split('/');
|
|
10
|
-
moduleParts.pop();
|
|
11
|
-
return moduleParts.join('/');
|
|
12
|
-
}
|
|
13
|
-
static #createModuleCode(functions, moduleName) {
|
|
14
|
-
const codes = [];
|
|
15
|
-
for (const applicationFunction of functions) {
|
|
16
|
-
const functionName = applicationFunction.name;
|
|
17
|
-
applicationFunction.module = moduleName;
|
|
18
|
-
codes.push(`${functionName}.module = '${moduleName}';`);
|
|
19
|
-
}
|
|
20
|
-
return codes.join('\n');
|
|
21
|
-
}
|
|
22
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export default class ApplicationModule {
|
|
2
|
-
#private;
|
|
3
|
-
constructor(filename: string, classes: Map<string, Function>, functions: Map<string, Function>);
|
|
4
|
-
get filename(): string;
|
|
5
|
-
get classes(): Map<string, Function>;
|
|
6
|
-
get functions(): Map<string, Function>;
|
|
7
|
-
hasClasses(): boolean;
|
|
8
|
-
hasFunctions(): boolean;
|
|
9
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export default class ApplicationModule {
|
|
2
|
-
#filename;
|
|
3
|
-
#classes;
|
|
4
|
-
#functions;
|
|
5
|
-
constructor(filename, classes, functions) {
|
|
6
|
-
this.#filename = filename;
|
|
7
|
-
this.#classes = classes;
|
|
8
|
-
this.#functions = functions;
|
|
9
|
-
}
|
|
10
|
-
get filename() { return this.#filename; }
|
|
11
|
-
get classes() { return this.#classes; }
|
|
12
|
-
get functions() { return this.#functions; }
|
|
13
|
-
hasClasses() {
|
|
14
|
-
return this.#classes.size > 0;
|
|
15
|
-
}
|
|
16
|
-
hasFunctions() {
|
|
17
|
-
return this.#functions.size > 0;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import Component from '../../../core/types/Component.js';
|
|
2
|
-
export default class Implementation {
|
|
3
|
-
#private;
|
|
4
|
-
constructor(module: string, name: string, access: string, version: string, executable: Component);
|
|
5
|
-
get id(): number;
|
|
6
|
-
get module(): string;
|
|
7
|
-
get name(): string;
|
|
8
|
-
get fqn(): string;
|
|
9
|
-
get access(): string;
|
|
10
|
-
get version(): string;
|
|
11
|
-
get executable(): Component;
|
|
12
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import FqnBuilder from '../../../core/utils/FqnBuilder.js';
|
|
2
|
-
let lastId = 0;
|
|
3
|
-
export default class Implementation {
|
|
4
|
-
#id;
|
|
5
|
-
#module;
|
|
6
|
-
#name;
|
|
7
|
-
#fqn;
|
|
8
|
-
#access;
|
|
9
|
-
#version;
|
|
10
|
-
#executable;
|
|
11
|
-
constructor(module, name, access, version, executable) {
|
|
12
|
-
this.#id = ++lastId;
|
|
13
|
-
this.#module = module;
|
|
14
|
-
this.#name = name;
|
|
15
|
-
this.#fqn = FqnBuilder.build(module, name);
|
|
16
|
-
this.#access = access;
|
|
17
|
-
this.#version = version;
|
|
18
|
-
this.#executable = executable;
|
|
19
|
-
}
|
|
20
|
-
get id() { return this.#id; }
|
|
21
|
-
get module() { return this.#module; }
|
|
22
|
-
get name() { return this.#name; }
|
|
23
|
-
get fqn() { return this.#fqn; }
|
|
24
|
-
get access() { return this.#access; }
|
|
25
|
-
get version() { return this.#version; }
|
|
26
|
-
get executable() { return this.#executable; }
|
|
27
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import Implementation from './Implementation.js';
|
|
2
|
-
export default class Procedure {
|
|
3
|
-
#private;
|
|
4
|
-
constructor(module: string, name: string);
|
|
5
|
-
get module(): string;
|
|
6
|
-
get name(): string;
|
|
7
|
-
get implementations(): Implementation[];
|
|
8
|
-
addImplementation(implementation: Implementation): void;
|
|
9
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export default class Procedure {
|
|
2
|
-
#module;
|
|
3
|
-
#name;
|
|
4
|
-
#implementations = [];
|
|
5
|
-
constructor(module, name) {
|
|
6
|
-
this.#module = module;
|
|
7
|
-
this.#name = name;
|
|
8
|
-
}
|
|
9
|
-
get module() { return this.#module; }
|
|
10
|
-
get name() { return this.#name; }
|
|
11
|
-
get implementations() { return this.#implementations; }
|
|
12
|
-
addImplementation(implementation) {
|
|
13
|
-
this.#implementations.push(implementation);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import Procedure from './Procedure.js';
|
|
2
|
-
import SegmentModule from './SegmentModule.js';
|
|
3
|
-
export default class Segment {
|
|
4
|
-
#private;
|
|
5
|
-
constructor(filename: string, modules: SegmentModule[], procedures: Map<string, Procedure>);
|
|
6
|
-
get filename(): string;
|
|
7
|
-
get modules(): SegmentModule[];
|
|
8
|
-
get procedures(): Map<string, Procedure>;
|
|
9
|
-
getFilenames(): string[];
|
|
10
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export default class Segment {
|
|
2
|
-
#filename;
|
|
3
|
-
#modules;
|
|
4
|
-
#procedures;
|
|
5
|
-
constructor(filename, modules, procedures) {
|
|
6
|
-
this.#filename = filename;
|
|
7
|
-
this.#modules = modules;
|
|
8
|
-
this.#procedures = procedures;
|
|
9
|
-
}
|
|
10
|
-
get filename() { return this.#filename; }
|
|
11
|
-
get modules() { return this.#modules; }
|
|
12
|
-
get procedures() { return this.#procedures; }
|
|
13
|
-
getFilenames() {
|
|
14
|
-
return this.#modules.map((module) => module.filename);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import Module from '../../../core/types/Module.js';
|
|
2
|
-
import Implementation from './Implementation.js';
|
|
3
|
-
export default class SegmentModule {
|
|
4
|
-
#private;
|
|
5
|
-
constructor(filename: string, exports: Module, implementations: Map<string, Implementation>);
|
|
6
|
-
get filename(): string;
|
|
7
|
-
get exports(): Module;
|
|
8
|
-
get implementations(): Map<string, Implementation>;
|
|
9
|
-
getImportKeys(): string[];
|
|
10
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export default class SegmentModule {
|
|
2
|
-
#filename;
|
|
3
|
-
#exports;
|
|
4
|
-
#implementations;
|
|
5
|
-
constructor(filename, exports, implementations) {
|
|
6
|
-
this.#filename = filename;
|
|
7
|
-
this.#exports = exports;
|
|
8
|
-
this.#implementations = implementations;
|
|
9
|
-
}
|
|
10
|
-
get filename() { return this.#filename; }
|
|
11
|
-
get exports() { return this.#exports; }
|
|
12
|
-
get implementations() { return this.#implementations; }
|
|
13
|
-
getImportKeys() { return [...this.#implementations.keys()]; }
|
|
14
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
var RuntimeMode;
|
|
2
|
-
(function (RuntimeMode) {
|
|
3
|
-
RuntimeMode["STAND_ALONE"] = "standalone";
|
|
4
|
-
RuntimeMode["REPOSITORY"] = "repository";
|
|
5
|
-
RuntimeMode["GATEWAY"] = "gateway";
|
|
6
|
-
RuntimeMode["NODE"] = "node";
|
|
7
|
-
RuntimeMode["PROXY"] = "proxy";
|
|
8
|
-
})(RuntimeMode || (RuntimeMode = {}));
|
|
9
|
-
export default RuntimeMode;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import RuntimeMode from '../definitions/RuntimeMode.js';
|
|
2
|
-
export default class RuntimeConfiguration {
|
|
3
|
-
mode: RuntimeMode;
|
|
4
|
-
url: string;
|
|
5
|
-
source: string;
|
|
6
|
-
cache: string;
|
|
7
|
-
node: string | undefined;
|
|
8
|
-
gateway: string | undefined;
|
|
9
|
-
repository: string | undefined;
|
|
10
|
-
segments: string[];
|
|
11
|
-
index: string;
|
|
12
|
-
}
|
|
@@ -1,68 +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 { IsArray, IsIn, IsOptional, IsString, IsUrl } from 'class-validator';
|
|
11
|
-
import RuntimeMode from '../definitions/RuntimeMode.js';
|
|
12
|
-
export default class RuntimeConfiguration {
|
|
13
|
-
mode = RuntimeMode.STAND_ALONE;
|
|
14
|
-
url = 'http://localhost:3000';
|
|
15
|
-
source = './src';
|
|
16
|
-
cache = './dist';
|
|
17
|
-
node;
|
|
18
|
-
gateway;
|
|
19
|
-
repository;
|
|
20
|
-
segments = [];
|
|
21
|
-
index = 'index.html';
|
|
22
|
-
}
|
|
23
|
-
__decorate([
|
|
24
|
-
IsString(),
|
|
25
|
-
IsIn([
|
|
26
|
-
RuntimeMode.STAND_ALONE,
|
|
27
|
-
RuntimeMode.REPOSITORY,
|
|
28
|
-
RuntimeMode.GATEWAY,
|
|
29
|
-
RuntimeMode.NODE,
|
|
30
|
-
RuntimeMode.PROXY
|
|
31
|
-
]),
|
|
32
|
-
__metadata("design:type", Object)
|
|
33
|
-
], RuntimeConfiguration.prototype, "mode", void 0);
|
|
34
|
-
__decorate([
|
|
35
|
-
IsUrl(),
|
|
36
|
-
__metadata("design:type", Object)
|
|
37
|
-
], RuntimeConfiguration.prototype, "url", void 0);
|
|
38
|
-
__decorate([
|
|
39
|
-
IsString(),
|
|
40
|
-
__metadata("design:type", Object)
|
|
41
|
-
], RuntimeConfiguration.prototype, "source", void 0);
|
|
42
|
-
__decorate([
|
|
43
|
-
IsString(),
|
|
44
|
-
__metadata("design:type", Object)
|
|
45
|
-
], RuntimeConfiguration.prototype, "cache", void 0);
|
|
46
|
-
__decorate([
|
|
47
|
-
IsUrl(),
|
|
48
|
-
IsOptional(),
|
|
49
|
-
__metadata("design:type", Object)
|
|
50
|
-
], RuntimeConfiguration.prototype, "node", void 0);
|
|
51
|
-
__decorate([
|
|
52
|
-
IsUrl(),
|
|
53
|
-
IsOptional(),
|
|
54
|
-
__metadata("design:type", Object)
|
|
55
|
-
], RuntimeConfiguration.prototype, "gateway", void 0);
|
|
56
|
-
__decorate([
|
|
57
|
-
IsUrl(),
|
|
58
|
-
IsOptional(),
|
|
59
|
-
__metadata("design:type", Object)
|
|
60
|
-
], RuntimeConfiguration.prototype, "repository", void 0);
|
|
61
|
-
__decorate([
|
|
62
|
-
IsArray(),
|
|
63
|
-
__metadata("design:type", Array)
|
|
64
|
-
], RuntimeConfiguration.prototype, "segments", void 0);
|
|
65
|
-
__decorate([
|
|
66
|
-
IsString(),
|
|
67
|
-
__metadata("design:type", Object)
|
|
68
|
-
], RuntimeConfiguration.prototype, "index", void 0);
|
|
@@ -1,25 +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 { Contains, IsOptional, IsString } from 'class-validator';
|
|
11
|
-
export default class ServerOptions {
|
|
12
|
-
loglevel = 'info';
|
|
13
|
-
config = 'config.json';
|
|
14
|
-
}
|
|
15
|
-
__decorate([
|
|
16
|
-
IsString(),
|
|
17
|
-
IsOptional(),
|
|
18
|
-
__metadata("design:type", Object)
|
|
19
|
-
], ServerOptions.prototype, "loglevel", void 0);
|
|
20
|
-
__decorate([
|
|
21
|
-
IsString(),
|
|
22
|
-
Contains('.json'),
|
|
23
|
-
IsOptional(),
|
|
24
|
-
__metadata("design:type", Object)
|
|
25
|
-
], ServerOptions.prototype, "config", void 0);
|