jitar 0.1.0 → 0.1.2

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 (356) hide show
  1. package/dist/core/Implementation.js +7 -0
  2. package/dist/core/SegmentBuilder.js +0 -1
  3. package/dist/core/errors/UnknownParameter.d.ts +3 -0
  4. package/dist/core/errors/UnknownParameter.js +6 -0
  5. package/dist/runtime/ClientId.d.ts +4 -0
  6. package/dist/runtime/ClientId.js +11 -0
  7. package/dist/runtime/LocalRepository.d.ts +3 -3
  8. package/dist/runtime/LocalRepository.js +17 -9
  9. package/dist/runtime/caching/CacheBuilder.js +3 -3
  10. package/dist/runtime/serialization/ClassSerializer.js +16 -0
  11. package/dist/runtime/serialization/MapSerializer.d.ts +1 -0
  12. package/dist/runtime/serialization/MapSerializer.js +10 -0
  13. package/dist/runtime/serialization/SetSerializer.d.ts +1 -0
  14. package/dist/runtime/serialization/SetSerializer.js +7 -0
  15. package/dist/runtime/serialization/errors/InvalidPropertyType.d.ts +3 -0
  16. package/dist/runtime/serialization/errors/InvalidPropertyType.js +6 -0
  17. package/dist/server/configuration/RepositoryConfiguration.d.ts +1 -0
  18. package/dist/server/configuration/RepositoryConfiguration.js +7 -1
  19. package/dist/server/configuration/StandaloneConfiguration.d.ts +1 -0
  20. package/dist/server/configuration/StandaloneConfiguration.js +6 -0
  21. package/dist/server/controllers/ModulesController.js +6 -0
  22. package/dist/server/utils/LocalFileManager.d.ts +1 -0
  23. package/dist/server/utils/LocalFileManager.js +19 -11
  24. package/dist/server/utils/RuntimeConfigurator.js +9 -4
  25. package/package.json +26 -4
  26. package/.eslintignore +0 -3
  27. package/.eslintrc +0 -16
  28. package/coverage/clover.xml +0 -2483
  29. package/coverage/coverage-final.json +0 -56
  30. package/coverage/lcov-report/base.css +0 -224
  31. package/coverage/lcov-report/block-navigation.js +0 -87
  32. package/coverage/lcov-report/favicon.png +0 -0
  33. package/coverage/lcov-report/index.html +0 -356
  34. package/coverage/lcov-report/prettify.css +0 -1
  35. package/coverage/lcov-report/prettify.js +0 -2
  36. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  37. package/coverage/lcov-report/sorter.js +0 -196
  38. package/coverage/lcov-report/src/core/ErrorManager.ts.html +0 -139
  39. package/coverage/lcov-report/src/core/Implementation.ts.html +0 -244
  40. package/coverage/lcov-report/src/core/ImplementationBuilder.ts.html +0 -148
  41. package/coverage/lcov-report/src/core/Procedure.ts.html +0 -379
  42. package/coverage/lcov-report/src/core/Segment.ts.html +0 -271
  43. package/coverage/lcov-report/src/core/SegmentBuilder.ts.html +0 -250
  44. package/coverage/lcov-report/src/core/Version.ts.html +0 -289
  45. package/coverage/lcov-report/src/core/definitions/AccessLevel.ts.html +0 -94
  46. package/coverage/lcov-report/src/core/definitions/index.html +0 -116
  47. package/coverage/lcov-report/src/core/errors/ErrorManager.ts.html +0 -139
  48. package/coverage/lcov-report/src/core/errors/ImplementationNotFound.ts.html +0 -121
  49. package/coverage/lcov-report/src/core/errors/InvalidVersionNumber.ts.html +0 -121
  50. package/coverage/lcov-report/src/core/errors/MissingParameterValue.ts.html +0 -121
  51. package/coverage/lcov-report/src/core/errors/ProcedureNotFound.ts.html +0 -121
  52. package/coverage/lcov-report/src/core/errors/index.html +0 -161
  53. package/coverage/lcov-report/src/core/index.html +0 -191
  54. package/coverage/lcov-report/src/core/reflection/ParameterParser.ts.html +0 -307
  55. package/coverage/lcov-report/src/core/reflection/ReflectionHelper.ts.html +0 -439
  56. package/coverage/lcov-report/src/core/reflection/index.html +0 -131
  57. package/coverage/lcov-report/src/core/reflection/models/ReflectionField.ts.html +0 -151
  58. package/coverage/lcov-report/src/core/reflection/models/ReflectionParameter.ts.html +0 -139
  59. package/coverage/lcov-report/src/core/reflection/models/index.html +0 -131
  60. package/coverage/lcov-report/src/core/utils/FqnBuilder.ts.html +0 -115
  61. package/coverage/lcov-report/src/core/utils/index.html +0 -116
  62. package/coverage/lcov-report/src/hooks.ts.html +0 -88
  63. package/coverage/lcov-report/src/index.html +0 -116
  64. package/coverage/lcov-report/src/runtime/Gateway.ts.html +0 -139
  65. package/coverage/lcov-report/src/runtime/LocalGateway.ts.html +0 -364
  66. package/coverage/lcov-report/src/runtime/LocalNode.ts.html +0 -475
  67. package/coverage/lcov-report/src/runtime/LocalRepository.ts.html +0 -556
  68. package/coverage/lcov-report/src/runtime/Node.ts.html +0 -130
  69. package/coverage/lcov-report/src/runtime/NodeBalancer.ts.html +0 -268
  70. package/coverage/lcov-report/src/runtime/NodeMonitor.ts.html +0 -274
  71. package/coverage/lcov-report/src/runtime/Remote.ts.html +0 -562
  72. package/coverage/lcov-report/src/runtime/RemoteNode.ts.html +0 -232
  73. package/coverage/lcov-report/src/runtime/Repository.ts.html +0 -145
  74. package/coverage/lcov-report/src/runtime/Runtime.ts.html +0 -226
  75. package/coverage/lcov-report/src/runtime/caching/ImportRewriter.ts.html +0 -313
  76. package/coverage/lcov-report/src/runtime/caching/ModuleAppender.ts.html +0 -208
  77. package/coverage/lcov-report/src/runtime/caching/RemoteBuilder.ts.html +0 -238
  78. package/coverage/lcov-report/src/runtime/caching/SourceAppender.ts.html +0 -256
  79. package/coverage/lcov-report/src/runtime/caching/definitions/Keywords.ts.html +0 -94
  80. package/coverage/lcov-report/src/runtime/caching/definitions/index.html +0 -116
  81. package/coverage/lcov-report/src/runtime/caching/index.html +0 -146
  82. package/coverage/lcov-report/src/runtime/caching/models/ApplicationModule.ts.html +0 -175
  83. package/coverage/lcov-report/src/runtime/caching/models/Implementation.ts.html +0 -208
  84. package/coverage/lcov-report/src/runtime/caching/models/SegmentModule.ts.html +0 -163
  85. package/coverage/lcov-report/src/runtime/caching/models/index.html +0 -146
  86. package/coverage/lcov-report/src/runtime/errors/ClientNotFound.ts.html +0 -121
  87. package/coverage/lcov-report/src/runtime/errors/InvalidClientId.ts.html +0 -121
  88. package/coverage/lcov-report/src/runtime/errors/InvalidSegmentFile.ts.html +0 -121
  89. package/coverage/lcov-report/src/runtime/errors/ModuleNotLoaded.ts.html +0 -121
  90. package/coverage/lcov-report/src/runtime/errors/NoNodeAvailable.ts.html +0 -121
  91. package/coverage/lcov-report/src/runtime/errors/RepositoryNotAvaiable.ts.html +0 -121
  92. package/coverage/lcov-report/src/runtime/errors/RuntimeNotAvailable.ts.html +0 -121
  93. package/coverage/lcov-report/src/runtime/errors/index.html +0 -206
  94. package/coverage/lcov-report/src/runtime/hooks/dependencies.ts.html +0 -142
  95. package/coverage/lcov-report/src/runtime/hooks/index.html +0 -131
  96. package/coverage/lcov-report/src/runtime/hooks/runtime.ts.html +0 -160
  97. package/coverage/lcov-report/src/runtime/index.html +0 -251
  98. package/coverage/lcov-report/src/runtime/models/File.ts.html +0 -151
  99. package/coverage/lcov-report/src/runtime/models/index.html +0 -116
  100. package/coverage/lcov-report/src/runtime/serialization/ArraySerializer.ts.html +0 -166
  101. package/coverage/lcov-report/src/runtime/serialization/ClassSerializer.ts.html +0 -400
  102. package/coverage/lcov-report/src/runtime/serialization/MapSerializer.ts.html +0 -217
  103. package/coverage/lcov-report/src/runtime/serialization/ObjectSerializer.ts.html +0 -211
  104. package/coverage/lcov-report/src/runtime/serialization/SetSerializer.ts.html +0 -178
  105. package/coverage/lcov-report/src/runtime/serialization/ValueSerializer.ts.html +0 -328
  106. package/coverage/lcov-report/src/runtime/serialization/errors/ClassNotFound.ts.html +0 -121
  107. package/coverage/lcov-report/src/runtime/serialization/errors/InvalidClass.ts.html +0 -121
  108. package/coverage/lcov-report/src/runtime/serialization/errors/index.html +0 -131
  109. package/coverage/lcov-report/src/runtime/serialization/index.html +0 -191
  110. package/coverage/lcov-report/src/runtime/utils/ModuleAnalyser.ts.html +0 -265
  111. package/coverage/lcov-report/src/runtime/utils/ModuleLoader.ts.html +0 -238
  112. package/coverage/lcov-report/src/runtime/utils/UrlRewriter.ts.html +0 -262
  113. package/coverage/lcov-report/src/runtime/utils/index.html +0 -146
  114. package/coverage/lcov-report/test/_fixtures/core/Implementation.fixture.ts.html +0 -184
  115. package/coverage/lcov-report/test/_fixtures/core/Procedure.fixture.ts.html +0 -172
  116. package/coverage/lcov-report/test/_fixtures/core/Segment.fixture.ts.html +0 -193
  117. package/coverage/lcov-report/test/_fixtures/core/SegmentBuilder.fixture.ts.html +0 -220
  118. package/coverage/lcov-report/test/_fixtures/core/Version.fixture.ts.html +0 -139
  119. package/coverage/lcov-report/test/_fixtures/core/index.html +0 -176
  120. package/coverage/lcov-report/test/_fixtures/core/procedures/allDefault.ts.html +0 -100
  121. package/coverage/lcov-report/test/_fixtures/core/procedures/hasParameters.ts.html +0 -100
  122. package/coverage/lcov-report/test/_fixtures/core/procedures/hasVersion_v1_0_0.ts.html +0 -115
  123. package/coverage/lcov-report/test/_fixtures/core/procedures/hasVersion_v1_0_5.ts.html +0 -115
  124. package/coverage/lcov-report/test/_fixtures/core/procedures/hasVersion_v1_1_0.ts.html +0 -115
  125. package/coverage/lcov-report/test/_fixtures/core/procedures/hasVersion_v1_2_3.ts.html +0 -115
  126. package/coverage/lcov-report/test/_fixtures/core/procedures/inModule.ts.html +0 -115
  127. package/coverage/lcov-report/test/_fixtures/core/procedures/index.html +0 -251
  128. package/coverage/lcov-report/test/_fixtures/core/procedures/isBroken.ts.html +0 -112
  129. package/coverage/lcov-report/test/_fixtures/core/procedures/isPrivate.ts.html +0 -112
  130. package/coverage/lcov-report/test/_fixtures/core/procedures/isPublic.ts.html +0 -112
  131. package/coverage/lcov-report/test/_fixtures/core/reflection/ReflectionHelper.fixture.ts.html +0 -241
  132. package/coverage/lcov-report/test/_fixtures/core/reflection/index.html +0 -116
  133. package/coverage/lcov-report/test/_fixtures/core/segments/default.segment.ts.html +0 -94
  134. package/coverage/lcov-report/test/_fixtures/core/segments/index.html +0 -116
  135. package/coverage/lcov-report/test/_fixtures/runtime/LocalGateway.fixture.ts.html +0 -157
  136. package/coverage/lcov-report/test/_fixtures/runtime/LocalNode.fixture.ts.html +0 -133
  137. package/coverage/lcov-report/test/_fixtures/runtime/LocalRepository.fixture.ts.html +0 -304
  138. package/coverage/lcov-report/test/_fixtures/runtime/NodeBalancer.fixture.ts.html +0 -142
  139. package/coverage/lcov-report/test/_fixtures/runtime/NodeMonitor.fixture.ts.html +0 -187
  140. package/coverage/lcov-report/test/_fixtures/runtime/RemoteNode.fixture.ts.html +0 -109
  141. package/coverage/lcov-report/test/_fixtures/runtime/caching/ImportRewriter.fixture.ts.html +0 -304
  142. package/coverage/lcov-report/test/_fixtures/runtime/caching/ModuleAppender.fixture.ts.html +0 -181
  143. package/coverage/lcov-report/test/_fixtures/runtime/caching/RemoteBuilder.fixture.ts.html +0 -217
  144. package/coverage/lcov-report/test/_fixtures/runtime/caching/SourceAppender.fixture.ts.html +0 -178
  145. package/coverage/lcov-report/test/_fixtures/runtime/caching/index.html +0 -146
  146. package/coverage/lcov-report/test/_fixtures/runtime/index.html +0 -206
  147. package/coverage/lcov-report/test/_fixtures/runtime/procedures/firstPrivateTask.ts.html +0 -109
  148. package/coverage/lcov-report/test/_fixtures/runtime/procedures/firstPublicTask.ts.html +0 -118
  149. package/coverage/lcov-report/test/_fixtures/runtime/procedures/fourthPublicTask.ts.html +0 -109
  150. package/coverage/lcov-report/test/_fixtures/runtime/procedures/index.html +0 -191
  151. package/coverage/lcov-report/test/_fixtures/runtime/procedures/secondPrivateTask.ts.html +0 -109
  152. package/coverage/lcov-report/test/_fixtures/runtime/procedures/secondPublicTask.ts.html +0 -118
  153. package/coverage/lcov-report/test/_fixtures/runtime/procedures/thirdPublicTask.ts.html +0 -118
  154. package/coverage/lcov-report/test/_fixtures/runtime/segments/first.segment.files.ts.html +0 -85
  155. package/coverage/lcov-report/test/_fixtures/runtime/segments/first.segment.ts.html +0 -91
  156. package/coverage/lcov-report/test/_fixtures/runtime/segments/index.html +0 -161
  157. package/coverage/lcov-report/test/_fixtures/runtime/segments/second.segment.files.ts.html +0 -85
  158. package/coverage/lcov-report/test/_fixtures/runtime/segments/second.segment.ts.html +0 -91
  159. package/coverage/lcov-report/test/_fixtures/runtime/segments.ts.html +0 -319
  160. package/coverage/lcov-report/test/_fixtures/runtime/serialization/ValueSerializer.fixture.ts.html +0 -394
  161. package/coverage/lcov-report/test/_fixtures/runtime/serialization/index.html +0 -116
  162. package/coverage/lcov-report/test/_fixtures/runtime/utils/ModuleAnaliser.fixture.ts.html +0 -163
  163. package/coverage/lcov-report/test/_fixtures/runtime/utils/index.html +0 -116
  164. package/coverage/lcov.info +0 -3565
  165. package/dist/core/AccessLevel.d.ts +0 -5
  166. package/dist/core/AccessLevel.js +0 -6
  167. package/dist/core/ImplementationBuilder.d.ts +0 -4
  168. package/dist/core/ImplementationBuilder.js +0 -14
  169. package/dist/core/errors/ErrorManager.d.ts +0 -3
  170. package/dist/core/errors/ErrorManager.js +0 -11
  171. package/dist/runtime/RemoteNodeBuilder.d.ts +0 -4
  172. package/dist/runtime/RemoteNodeBuilder.js +0 -10
  173. package/dist/runtime/caching/CachBuilder.d.ts +0 -6
  174. package/dist/runtime/caching/CachBuilder.js +0 -150
  175. package/dist/runtime/caching/ModuleAppender.d.ts +0 -5
  176. package/dist/runtime/caching/ModuleAppender.js +0 -22
  177. package/dist/runtime/caching/errors/FunctionFilenameNotFound.d.ts +0 -3
  178. package/dist/runtime/caching/errors/FunctionFilenameNotFound.js +0 -5
  179. package/dist/runtime/caching/types/models/ApplicationModule.d.ts +0 -9
  180. package/dist/runtime/caching/types/models/ApplicationModule.js +0 -19
  181. package/dist/runtime/caching/types/models/Implementation.d.ts +0 -12
  182. package/dist/runtime/caching/types/models/Implementation.js +0 -27
  183. package/dist/runtime/caching/types/models/Procedure.d.ts +0 -9
  184. package/dist/runtime/caching/types/models/Procedure.js +0 -15
  185. package/dist/runtime/caching/types/models/Segment.d.ts +0 -10
  186. package/dist/runtime/caching/types/models/Segment.js +0 -16
  187. package/dist/runtime/caching/types/models/SegmentModule.d.ts +0 -10
  188. package/dist/runtime/caching/types/models/SegmentModule.js +0 -14
  189. package/dist/server/definitions/RuntimeMode.d.ts +0 -8
  190. package/dist/server/definitions/RuntimeMode.js +0 -9
  191. package/dist/server/models/RuntimeConfiguration.d.ts +0 -12
  192. package/dist/server/models/RuntimeConfiguration.js +0 -68
  193. package/dist/server/models/ServerOptions.d.ts +0 -4
  194. package/dist/server/models/ServerOptions.js +0 -25
  195. package/jest.config.js +0 -20
  196. package/src/client.ts +0 -18
  197. package/src/core/ErrorManager.ts +0 -18
  198. package/src/core/Implementation.ts +0 -53
  199. package/src/core/Procedure.ts +0 -98
  200. package/src/core/Segment.ts +0 -62
  201. package/src/core/SegmentBuilder.ts +0 -55
  202. package/src/core/Version.ts +0 -68
  203. package/src/core/definitions/AccessLevel.ts +0 -3
  204. package/src/core/errors/ImplementationNotFound.ts +0 -12
  205. package/src/core/errors/InvalidVersionNumber.ts +0 -12
  206. package/src/core/errors/MissingParameterValue.ts +0 -12
  207. package/src/core/errors/NotImplemented.ts +0 -12
  208. package/src/core/errors/ProcedureNotFound.ts +0 -12
  209. package/src/core/interfaces/Runner.ts +0 -7
  210. package/src/core/reflection/ParameterParser.ts +0 -74
  211. package/src/core/reflection/ReflectionHelper.ts +0 -118
  212. package/src/core/reflection/models/ReflectionField.ts +0 -22
  213. package/src/core/reflection/models/ReflectionParameter.ts +0 -18
  214. package/src/core/types/Component.ts +0 -8
  215. package/src/core/types/FlexObject.ts +0 -4
  216. package/src/core/types/Module.ts +0 -6
  217. package/src/core/types/SegmentImplementation.ts +0 -9
  218. package/src/core/types/SegmentModule.ts +0 -9
  219. package/src/core/types/SegmentProcedure.ts +0 -11
  220. package/src/core/utils/FqnBuilder.ts +0 -11
  221. package/src/hooks.ts +0 -2
  222. package/src/lib.ts +0 -7
  223. package/src/runtime/Gateway.ts +0 -18
  224. package/src/runtime/LocalGateway.ts +0 -93
  225. package/src/runtime/LocalNode.ts +0 -130
  226. package/src/runtime/LocalRepository.ts +0 -157
  227. package/src/runtime/Node.ts +0 -15
  228. package/src/runtime/NodeBalancer.ts +0 -61
  229. package/src/runtime/NodeMonitor.ts +0 -63
  230. package/src/runtime/Proxy.ts +0 -60
  231. package/src/runtime/Remote.ts +0 -157
  232. package/src/runtime/RemoteGateway.ts +0 -40
  233. package/src/runtime/RemoteNode.ts +0 -49
  234. package/src/runtime/RemoteRepository.ts +0 -60
  235. package/src/runtime/Repository.ts +0 -20
  236. package/src/runtime/Runtime.ts +0 -47
  237. package/src/runtime/caching/CacheBuilder.ts +0 -424
  238. package/src/runtime/caching/ImportRewriter.ts +0 -76
  239. package/src/runtime/caching/RemoteBuilder.ts +0 -51
  240. package/src/runtime/caching/SourceAppender.ts +0 -57
  241. package/src/runtime/caching/definitions/Keywords.ts +0 -3
  242. package/src/runtime/caching/errors/InvalidSegmentFilename.ts +0 -8
  243. package/src/runtime/caching/errors/MissingModuleExport.ts +0 -8
  244. package/src/runtime/caching/errors/SegmentFileNotLoaded.ts +0 -8
  245. package/src/runtime/caching/errors/SegmentModuleNotLoaded.ts +0 -8
  246. package/src/runtime/caching/models/ApplicationModule.ts +0 -30
  247. package/src/runtime/caching/models/Implementation.ts +0 -41
  248. package/src/runtime/caching/models/Procedure.ts +0 -26
  249. package/src/runtime/caching/models/Segment.ts +0 -28
  250. package/src/runtime/caching/models/SegmentModule.ts +0 -26
  251. package/src/runtime/caching/types/SegmentFile.ts +0 -6
  252. package/src/runtime/caching/types/SegmentImportProperties.ts +0 -9
  253. package/src/runtime/caching/types/SegmentImports.ts +0 -6
  254. package/src/runtime/errors/ClientNotFound.ts +0 -12
  255. package/src/runtime/errors/FileNotFound.ts +0 -12
  256. package/src/runtime/errors/InvalidClientId.ts +0 -12
  257. package/src/runtime/errors/InvalidJitarHooks.ts +0 -12
  258. package/src/runtime/errors/InvalidSegmentFile.ts +0 -12
  259. package/src/runtime/errors/ModuleNotLoaded.ts +0 -12
  260. package/src/runtime/errors/NoNodeAvailable.ts +0 -12
  261. package/src/runtime/errors/RepositoryNotAvaiable.ts +0 -12
  262. package/src/runtime/errors/RuntimeNotAvailable.ts +0 -12
  263. package/src/runtime/errors/SegmentNotFound.ts +0 -12
  264. package/src/runtime/hooks/dependencies.ts +0 -19
  265. package/src/runtime/hooks/runtime.ts +0 -25
  266. package/src/runtime/interfaces/FileManager.ts +0 -19
  267. package/src/runtime/interfaces/HealthCheck.ts +0 -5
  268. package/src/runtime/interfaces/ProcedureContainer.ts +0 -9
  269. package/src/runtime/models/File.ts +0 -22
  270. package/src/runtime/serialization/ArraySerializer.ts +0 -27
  271. package/src/runtime/serialization/ClassSerializer.ts +0 -105
  272. package/src/runtime/serialization/MapSerializer.ts +0 -44
  273. package/src/runtime/serialization/ObjectSerializer.ts +0 -42
  274. package/src/runtime/serialization/SetSerializer.ts +0 -31
  275. package/src/runtime/serialization/ValueSerializer.ts +0 -81
  276. package/src/runtime/serialization/errors/ClassNotFound.ts +0 -12
  277. package/src/runtime/serialization/errors/InvalidClass.ts +0 -12
  278. package/src/runtime/serialization/interfaces/Serializer.ts +0 -10
  279. package/src/runtime/serialization/types/SerializableObject.ts +0 -6
  280. package/src/runtime/serialization/types/Serialized.ts +0 -8
  281. package/src/runtime/serialization/types/SerializedClass.ts +0 -13
  282. package/src/runtime/serialization/types/SerializedMap.ts +0 -13
  283. package/src/runtime/serialization/types/SerializedObject.ts +0 -4
  284. package/src/runtime/serialization/types/SerializedSet.ts +0 -9
  285. package/src/runtime/types/JitarHooks.ts +0 -10
  286. package/src/runtime/types/ModuleImporter.ts +0 -6
  287. package/src/runtime/utils/ModuleAnalyser.ts +0 -60
  288. package/src/runtime/utils/ModuleLoader.ts +0 -51
  289. package/src/runtime/utils/UrlRewriter.ts +0 -59
  290. package/src/server/JitarServer.ts +0 -161
  291. package/src/server/configuration/GatewayConfiguration.ts +0 -9
  292. package/src/server/configuration/NodeConfiguration.ts +0 -15
  293. package/src/server/configuration/ProxyConfiguration.ts +0 -16
  294. package/src/server/configuration/RepositoryConfiguration.ts +0 -17
  295. package/src/server/configuration/RuntimeConfiguration.ts +0 -30
  296. package/src/server/configuration/ServerOptions.ts +0 -14
  297. package/src/server/configuration/StandaloneConfiguration.ts +0 -21
  298. package/src/server/controllers/AssetsController.ts +0 -59
  299. package/src/server/controllers/HealthController.ts +0 -41
  300. package/src/server/controllers/JitarController.ts +0 -18
  301. package/src/server/controllers/ModulesController.ts +0 -66
  302. package/src/server/controllers/NodesController.ts +0 -58
  303. package/src/server/controllers/ProceduresController.ts +0 -31
  304. package/src/server/controllers/ProxyController.ts +0 -38
  305. package/src/server/controllers/RPCController.ts +0 -173
  306. package/src/server/definitions/RuntimeDefaults.ts +0 -10
  307. package/src/server/errors/MissingConfigurationValue.ts +0 -8
  308. package/src/server/errors/RuntimeNotAvaiable.ts +0 -8
  309. package/src/server/errors/UnknownRuntimeMode.ts +0 -8
  310. package/src/server/models/HealthDto.ts +0 -11
  311. package/src/server/models/NodeDto.ts +0 -11
  312. package/src/server/utils/DataConverter.ts +0 -15
  313. package/src/server/utils/LocalFileManager.ts +0 -122
  314. package/src/server/utils/RuntimeConfigurationLoader.ts +0 -19
  315. package/src/server/utils/RuntimeConfigurator.ts +0 -207
  316. package/src/server/utils/ServerOptionsReader.ts +0 -17
  317. package/src/server.ts +0 -16
  318. package/test/_fixtures/core/Implementation.fixture.ts +0 -33
  319. package/test/_fixtures/core/Procedure.fixture.ts +0 -33
  320. package/test/_fixtures/core/Segment.fixture.ts +0 -36
  321. package/test/_fixtures/core/SegmentBuilder.fixture.ts +0 -45
  322. package/test/_fixtures/core/Version.fixture.ts +0 -18
  323. package/test/_fixtures/core/reflection/ReflectionHelper.fixture.ts +0 -56
  324. package/test/_fixtures/runtime/LocalGateway.fixture.ts +0 -24
  325. package/test/_fixtures/runtime/LocalNode.fixture.ts +0 -16
  326. package/test/_fixtures/runtime/LocalRepository.fixture.ts +0 -73
  327. package/test/_fixtures/runtime/NodeBalancer.fixture.ts +0 -19
  328. package/test/_fixtures/runtime/NodeMonitor.fixture.ts +0 -34
  329. package/test/_fixtures/runtime/RemoteNode.fixture.ts +0 -8
  330. package/test/_fixtures/runtime/caching/ImportRewriter.fixture.ts +0 -81
  331. package/test/_fixtures/runtime/caching/RemoteBuilder.fixture.ts +0 -50
  332. package/test/_fixtures/runtime/caching/SourceAppender.fixture.ts +0 -35
  333. package/test/_fixtures/runtime/segments.ts +0 -78
  334. package/test/_fixtures/runtime/serialization/ValueSerializer.fixture.ts +0 -134
  335. package/test/_fixtures/runtime/utils/ModuleAnaliser.fixture.ts +0 -26
  336. package/test/core/Implementation.spec.ts +0 -89
  337. package/test/core/Procedure.spec.ts +0 -108
  338. package/test/core/Segment.spec.ts +0 -74
  339. package/test/core/SegmentBuilder.spec.ts +0 -39
  340. package/test/core/Version.spec.ts +0 -103
  341. package/test/core/errors/ErrorManager.spec.ts +0 -32
  342. package/test/core/reflection/ReflectionHelper.spec.ts +0 -128
  343. package/test/core/utils/FqnBuilder.spec.ts +0 -22
  344. package/test/runtime/LocalGateway.spec.ts +0 -40
  345. package/test/runtime/LocalNode.spec.ts +0 -87
  346. package/test/runtime/LocalRepository.spec.ts +0 -50
  347. package/test/runtime/NodeBalancer.spec.ts +0 -39
  348. package/test/runtime/NodeMonitor.spec.ts +0 -31
  349. package/test/runtime/RemoteNode.spec.ts +0 -43
  350. package/test/runtime/caching/ImportRewriter.spec.ts +0 -68
  351. package/test/runtime/caching/RemoteBuilder.spec.ts +0 -21
  352. package/test/runtime/caching/SourceAppender.spec.ts +0 -31
  353. package/test/runtime/serialization/ValueSerializer.spec.ts +0 -203
  354. package/test/runtime/utils/ModuleAnalyser.spec.ts +0 -54
  355. package/test/runtime/utils/UrlRewriter.spec.ts +0 -57
  356. package/tsconfig.json +0 -23
@@ -1,9 +0,0 @@
1
-
2
- import SegmentProcedure from './SegmentProcedure.js';
3
-
4
- type SegmentModule =
5
- {
6
- procedures: SegmentProcedure[]
7
- };
8
-
9
- export default SegmentModule;
@@ -1,11 +0,0 @@
1
-
2
- import SegmentImplementation from './SegmentImplementation.js';
3
-
4
- type SegmentProcedure =
5
- {
6
- module: string;
7
- name: string;
8
- implementations: SegmentImplementation[];
9
- }
10
-
11
- export default SegmentProcedure;
@@ -1,11 +0,0 @@
1
-
2
- export default class FqnBuilder
3
- {
4
- static build(module: string, name: string): string
5
- {
6
- // Fully qualified name, used to identify procedures
7
- // Format: module/name (e.g. greetings/sayHello)
8
-
9
- return module !== '' ? `${module}/${name}` : name;
10
- }
11
- }
package/src/hooks.ts DELETED
@@ -1,2 +0,0 @@
1
- export * from './runtime/hooks/dependencies.js';
2
- export * from './runtime/hooks/runtime.js';
package/src/lib.ts DELETED
@@ -1,7 +0,0 @@
1
- // Interfaces
2
- export { default as HealthCheck } from './runtime/interfaces/HealthCheck.js';
3
-
4
- // Hooks
5
- export * from './client.js';
6
- export * from './server.js';
7
- export * from './hooks.js';
@@ -1,18 +0,0 @@
1
-
2
- import Version from '../core/Version.js';
3
-
4
- import ProcedureContainer from './interfaces/ProcedureContainer.js';
5
-
6
- import Node from './Node.js';
7
- import Runtime from './Runtime.js';
8
-
9
- export default abstract class Gateway extends Runtime implements ProcedureContainer
10
- {
11
- abstract getProcedureNames(): string[];
12
-
13
- abstract hasProcedure(name: string): boolean;
14
-
15
- abstract addNode(node: Node): Promise<void>;
16
-
17
- abstract run(name: string, version: Version, args: Map<string, unknown>): Promise<unknown>;
18
- }
@@ -1,93 +0,0 @@
1
-
2
- import ProcedureNotFound from '../core/errors/ProcedureNotFound.js';
3
- import Version from '../core/Version.js';
4
-
5
- import Gateway from './Gateway.js';
6
- import Node from './Node.js';
7
- import NodeBalancer from './NodeBalancer.js';
8
-
9
- export default class LocalGateway extends Gateway
10
- {
11
- #nodes: Set<Node> = new Set();
12
- #balancers: Map<string, NodeBalancer> = new Map();
13
-
14
- get nodes()
15
- {
16
- return [...this.#nodes.values()];
17
- }
18
-
19
- getProcedureNames(): string[]
20
- {
21
- const procedureNames = this.nodes.map(node => node.getProcedureNames());
22
- const uniqueNames = new Set(procedureNames.flat());
23
-
24
- return [...uniqueNames.values()];
25
- }
26
-
27
- hasProcedure(fqn: string): boolean
28
- {
29
- const procedureNames = this.getProcedureNames();
30
-
31
- return procedureNames.includes(fqn);
32
- }
33
-
34
- async addNode(node: Node): Promise<void>
35
- {
36
- this.#nodes.add(node);
37
-
38
- for (const name of node.getProcedureNames())
39
- {
40
- const balancer = this.#getOrCreateBalancer(name);
41
-
42
- balancer.addNode(node);
43
- }
44
- }
45
-
46
- removeNode(node: Node): void
47
- {
48
- this.#nodes.delete(node);
49
-
50
- for (const name of node.getProcedureNames())
51
- {
52
- const balancer = this.#getBalancer(name);
53
-
54
- if (balancer === undefined)
55
- {
56
- continue;
57
- }
58
-
59
- balancer.removeNode(node);
60
- }
61
- }
62
-
63
- #getBalancer(fqn: string): NodeBalancer | undefined
64
- {
65
- return this.#balancers.get(fqn);
66
- }
67
-
68
- #getOrCreateBalancer(fqn: string): NodeBalancer
69
- {
70
- let balancer = this.#getBalancer(fqn);
71
-
72
- if (balancer === undefined)
73
- {
74
- balancer = new NodeBalancer();
75
-
76
- this.#balancers.set(fqn, balancer);
77
- }
78
-
79
- return balancer;
80
- }
81
-
82
- async run(fqn: string, version: Version, args: Map<string, unknown>): Promise<unknown>
83
- {
84
- const balancer = this.#getBalancer(fqn);
85
-
86
- if (balancer === undefined)
87
- {
88
- throw new ProcedureNotFound(fqn);
89
- }
90
-
91
- return balancer.run(fqn, version, args);
92
- }
93
- }
@@ -1,130 +0,0 @@
1
-
2
- import ProcedureNotFound from '../core/errors/ProcedureNotFound.js';
3
- import Segment from '../core/Segment.js';
4
- import SegmentBuilder from '../core/SegmentBuilder.js';
5
- import Version from '../core/Version.js';
6
- import Module from '../core/types/Module.js';
7
- import SegmentModule from '../core/types/SegmentModule.js';
8
-
9
- import RepositoryNotAvailable from './errors/RepositoryNotAvaiable.js';
10
- import Gateway from './Gateway.js';
11
- import LocalGateway from './LocalGateway.js';
12
- import Node from './Node.js';
13
- import Repository from './Repository.js';
14
- import ModuleLoader from './utils/ModuleLoader.js';
15
- import UrlRewriter from './utils/UrlRewriter.js';
16
-
17
- export default class LocalNode extends Node
18
- {
19
- #segments: Map<string, Segment> = new Map();
20
- #gateway?: Gateway;
21
- #repository?: Repository;
22
- #clientId = '';
23
-
24
- getProcedureNames(): string[]
25
- {
26
- const names: Set<string> = new Set();
27
-
28
- for (const segment of this.#segments.values())
29
- {
30
- // We only expose the public procedures
31
- // to protect access to private procedures
32
-
33
- const procedures = segment.getPublicProcedures();
34
-
35
- procedures.forEach(procedure => names.add(procedure.fqn));
36
- }
37
-
38
- return [...names.values()];
39
- }
40
-
41
- async loadSegment(name: string): Promise<void>
42
- {
43
- const segmentFile = `${name}.segment.local.js`;
44
- const module = await this.import(segmentFile) as SegmentModule;
45
- const segment = SegmentBuilder.build(name, module);
46
-
47
- this.addSegment(segment);
48
- }
49
-
50
- addSegment(segment: Segment): void
51
- {
52
- this.#segments.set(segment.id, segment);
53
- }
54
-
55
- getSegment(id: string): Segment | undefined
56
- {
57
- return this.#segments.get(id);
58
- }
59
-
60
- hasProcedure(fqn: string): boolean
61
- {
62
- const procedureNames = this.getProcedureNames();
63
-
64
- return procedureNames.includes(fqn);
65
- }
66
-
67
- #getProcedureSegment(fqn: string): Segment | undefined
68
- {
69
- for (const segment of this.#segments.values())
70
- {
71
- if (segment.hasProcedure(fqn))
72
- {
73
- return segment;
74
- }
75
- }
76
-
77
- return undefined;
78
- }
79
-
80
- async setGateway(gateway: Gateway): Promise<void>
81
- {
82
- if (gateway instanceof LocalGateway || this.url !== undefined)
83
- {
84
- await gateway.addNode(this);
85
- }
86
-
87
- this.#gateway = gateway;
88
- }
89
-
90
- async setRepository(repository: Repository, segmentNames: string[]): Promise<void>
91
- {
92
- this.#clientId = await repository.registerClient(segmentNames);
93
-
94
- await repository.setRuntime(this);
95
-
96
- const moduleLocation = await repository.getModuleLocation(this.#clientId);
97
-
98
- ModuleLoader.setBaseUrl(moduleLocation);
99
-
100
- this.#repository = repository;
101
- }
102
-
103
- async import(url: string, base?: string): Promise<Module>
104
- {
105
- if (this.#repository === undefined)
106
- {
107
- throw new RepositoryNotAvailable();
108
- }
109
-
110
- if (base !== undefined)
111
- {
112
- url = UrlRewriter.addBase(url, base);
113
- }
114
-
115
- return this.#repository.importModule(this.#clientId, url);
116
- }
117
-
118
- async run(fqn: string, version: Version, args: Map<string, unknown>): Promise<unknown>
119
- {
120
- const segment = this.#getProcedureSegment(fqn);
121
- const runner = segment ?? this.#gateway;
122
-
123
- if (runner === undefined)
124
- {
125
- throw new ProcedureNotFound(fqn);
126
- }
127
-
128
- return runner.run(fqn, version, args);
129
- }
130
- }
@@ -1,157 +0,0 @@
1
-
2
- import Module from '../core/types/Module.js';
3
-
4
- import FileManager from './interfaces/FileManager.js';
5
- import LocalNode from './LocalNode.js';
6
- import File from './models/File.js';
7
- import Repository from './Repository.js';
8
- import ModuleLoader from './utils/ModuleLoader.js';
9
-
10
- import ClientNotFound from './errors/ClientNotFound.js';
11
- import InvalidClientId from './errors/InvalidClientId.js';
12
- import InvalidSegmentFile from './errors/InvalidSegmentFile.js';
13
-
14
- import { setRuntime } from '../hooks.js';
15
-
16
- let lastClientId = 0;
17
-
18
- const CLIENT_ID_PREFIX = 'CLIENT_';
19
-
20
- export default class LocalRepository extends Repository
21
- {
22
- #fileManager: FileManager;
23
- #segments: Map<string, string> = new Map();
24
- #clients: Map<string, string[]> = new Map();
25
-
26
- constructor(fileManager: FileManager, url?: string)
27
- {
28
- super(url);
29
-
30
- this.#fileManager = fileManager;
31
- }
32
-
33
- async loadSegment(name: string): Promise<void>
34
- {
35
- const filename = `./${name}.segment.repository.js`;
36
- const location = this.#fileManager.getAbsoluteLocation(filename);
37
- const module = await ModuleLoader.load(location);
38
- const files = module.files as string[];
39
-
40
- if (files === undefined)
41
- {
42
- throw new InvalidSegmentFile(location);
43
- }
44
-
45
- this.registerSegment(name, files);
46
- }
47
-
48
- async registerSegment(name: string, files: string[]): Promise<void>
49
- {
50
- files.forEach((file: string) => this.#segments.set(file, name));
51
- }
52
-
53
- async registerClient(segmentFilenames: string[]): Promise<string>
54
- {
55
- const clientId = `${CLIENT_ID_PREFIX}${lastClientId++}`;
56
-
57
- this.#clients.set(clientId, segmentFilenames);
58
-
59
- return clientId;
60
- }
61
-
62
- async setRuntime(runtime: LocalNode): Promise<void>
63
- {
64
- setRuntime(runtime);
65
- }
66
-
67
- async loadAsset(filename: string): Promise<File>
68
- {
69
- return this.#fileManager.load(filename);
70
- }
71
-
72
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
73
- async getModuleLocation(clientId: string): Promise<string>
74
- {
75
- return this.#fileManager.getRootLocation();
76
- }
77
-
78
- async loadModule(clientId: string, filename: string): Promise<File>
79
- {
80
- this.#validateClientId(clientId);
81
-
82
- const segmentFilename = this.#segments.get(filename);
83
-
84
- if (segmentFilename === undefined)
85
- {
86
- return this.#getNodeModule(filename, false);
87
- }
88
-
89
- return this.#hasClientSegmentFile(clientId, segmentFilename)
90
- ? this.#getNodeModule(filename, true)
91
- : this.#getRemoteModule(filename);
92
- }
93
-
94
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
95
- async importModule(clientId: string, filename: string): Promise<Module>
96
- {
97
- // This function loads the original module file containing the
98
- // original imports to prevent import issues while loading the
99
- // module in the local repository.
100
-
101
- const location = this.#fileManager.getAbsoluteLocation(filename);
102
-
103
- return ModuleLoader.import(location);
104
- }
105
-
106
- #validateClientId(clientId: string): void
107
- {
108
- if (clientId.startsWith(CLIENT_ID_PREFIX) === false)
109
- {
110
- throw new InvalidClientId(clientId);
111
- }
112
-
113
- if (this.#clients.has(clientId) === false)
114
- {
115
- throw new ClientNotFound(clientId);
116
- }
117
- }
118
-
119
- #hasClientSegmentFile(clientId: string, segmentFilename: string): boolean
120
- {
121
- const clientSegmentFiles = this.#clients.get(clientId);
122
-
123
- if (clientSegmentFiles === undefined)
124
- {
125
- throw new ClientNotFound(clientId);
126
- }
127
-
128
- return clientSegmentFiles.some(clientSegmentFilename => segmentFilename.endsWith(clientSegmentFilename));
129
- }
130
-
131
- async #getNodeModule(filename: string, isSegmented: boolean): Promise<File>
132
- {
133
- // This function loads the node module file containing the rewritten
134
- // imports to prevent import issues while loading the module from
135
- // a remote repository.
136
-
137
- if (isSegmented)
138
- {
139
- filename = filename.replace('.js', '.local.js');
140
- }
141
-
142
- const file = await this.loadAsset(filename);
143
- const code = file.content.toString();
144
-
145
- return new File(filename, 'application/javascript', code);
146
- }
147
-
148
- async #getRemoteModule(filename: string): Promise<File>
149
- {
150
- // This function loads the remote module file containing the rewritten
151
- // implementation for each function to execute them on another node.
152
-
153
- const remoteFilename = filename.replace('.js', '.remote.js');
154
-
155
- return this.loadAsset(remoteFilename);
156
- }
157
- }
@@ -1,15 +0,0 @@
1
-
2
- import Version from '../core/Version.js';
3
-
4
- import ProcedureContainer from './interfaces/ProcedureContainer.js';
5
-
6
- import Runtime from './Runtime.js';
7
-
8
- export default abstract class Node extends Runtime implements ProcedureContainer
9
- {
10
- abstract getProcedureNames(): string[];
11
-
12
- abstract hasProcedure(name: string): boolean;
13
-
14
- abstract run(name: string, version: Version, args: Map<string, unknown>): Promise<unknown>;
15
- }
@@ -1,61 +0,0 @@
1
-
2
- import Runner from '../core/interfaces/Runner.js';
3
- import Version from '../core/Version.js';
4
-
5
- import NoNodeAvailable from './errors/NoNodeAvailable.js';
6
- import Node from './Node.js';
7
-
8
- export default class NodeBalancer implements Runner
9
- {
10
- #nodes: Node[] = [];
11
- #currentIndex = 0;
12
-
13
- addNode(node: Node): void
14
- {
15
- if (this.#nodes.includes(node))
16
- {
17
- return;
18
- }
19
-
20
- this.#nodes.push(node);
21
- }
22
-
23
- removeNode(node: Node): void
24
- {
25
- const index = this.#nodes.indexOf(node);
26
-
27
- if (index === -1)
28
- {
29
- return;
30
- }
31
-
32
- this.#nodes.splice(index, 1);
33
- }
34
-
35
- getNextNode(): Node | undefined
36
- {
37
- if (this.#nodes.length === 0)
38
- {
39
- return;
40
- }
41
-
42
- if (this.#currentIndex >= this.#nodes.length)
43
- {
44
- this.#currentIndex = 0;
45
- }
46
-
47
- return this.#nodes[this.#currentIndex++];
48
- }
49
-
50
- async run(fqn: string, version: Version, args: Map<string, unknown>): Promise<unknown>
51
- {
52
- const node = this.getNextNode();
53
-
54
- if (node === undefined)
55
- {
56
- throw new NoNodeAvailable(fqn);
57
- }
58
-
59
- return node.run(fqn, version, args);
60
- }
61
- }
@@ -1,63 +0,0 @@
1
-
2
- import LocalGateway from './LocalGateway.js';
3
- import Node from './Node.js';
4
-
5
- const DEFAULT_FREQUENCY = 5000;
6
-
7
- export default class NodeMonitor
8
- {
9
- #gateway: LocalGateway;
10
- #frequency: number;
11
- #interval: ReturnType<typeof setInterval> | null = null;
12
-
13
- constructor(gateway: LocalGateway, frequency: number = DEFAULT_FREQUENCY)
14
- {
15
- this.#gateway = gateway;
16
- this.#frequency = frequency;
17
- }
18
-
19
- start(): void
20
- {
21
- this.#interval = setInterval(async () => await this.#monitor(), this.#frequency);
22
- }
23
-
24
- stop(): void
25
- {
26
- if (this.#interval === null)
27
- {
28
- return;
29
- }
30
-
31
- clearInterval(this.#interval);
32
- }
33
-
34
- async #monitor(): Promise<void>
35
- {
36
- const nodes = this.#gateway.nodes;
37
- const promises = nodes.map(async (node: Node) => await this.#monitorNode(node));
38
-
39
- await Promise.all(promises);
40
- }
41
-
42
- async #monitorNode(node: Node): Promise<void>
43
- {
44
- const available = await this.#checkNodeAvailable(node);
45
-
46
- if (available === false)
47
- {
48
- this.#gateway.removeNode(node);
49
- }
50
- }
51
-
52
- async #checkNodeAvailable(node: Node): Promise<boolean>
53
- {
54
- try
55
- {
56
- return await node.isHealthy();
57
- }
58
- catch (error)
59
- {
60
- return false;
61
- }
62
- }
63
- }
@@ -1,60 +0,0 @@
1
-
2
- import Version from '../core/Version.js';
3
-
4
- import ProcedureContainer from './interfaces/ProcedureContainer.js';
5
-
6
- import Gateway from './Gateway.js';
7
- import File from './models/File.js';
8
- import Node from './Node.js';
9
- import Repository from './Repository.js';
10
- import Runtime from './Runtime.js';
11
-
12
- export default class Proxy extends Runtime implements ProcedureContainer
13
- {
14
- #repository: Repository;
15
- #runner: Gateway | Node;
16
-
17
- constructor(repository: Repository, runner: Gateway | Node, url?: string)
18
- {
19
- super(url);
20
-
21
- this.#repository = repository;
22
- this.#runner = runner;
23
- }
24
-
25
- get repository() { return this.#repository; }
26
-
27
- get runner() { return this.#runner; }
28
-
29
- getProcedureNames(): string[]
30
- {
31
- return this.#runner.getProcedureNames();
32
- }
33
-
34
- hasProcedure(fqn: string): boolean
35
- {
36
- const procedureNames = this.getProcedureNames();
37
-
38
- return procedureNames.includes(fqn);
39
- }
40
-
41
- async loadAsset(filename: string): Promise<File>
42
- {
43
- return this.#repository.loadAsset(filename);
44
- }
45
-
46
- async registerClient(segmentFiles: string[]): Promise<string>
47
- {
48
- return this.#repository.registerClient(segmentFiles);
49
- }
50
-
51
- async loadModule(clientId: string, filename: string): Promise<File>
52
- {
53
- return this.#repository.loadModule(clientId, filename);
54
- }
55
-
56
- async run(name: string, version: Version, args: Map<string, unknown>): Promise<unknown>
57
- {
58
- return this.#runner.run(name, version, args);
59
- }
60
- }