jitar 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (577) hide show
  1. package/.eslintignore +3 -0
  2. package/.eslintrc +16 -0
  3. package/README.md +15 -0
  4. package/coverage/clover.xml +2483 -0
  5. package/coverage/coverage-final.json +56 -0
  6. package/coverage/lcov-report/base.css +224 -0
  7. package/coverage/lcov-report/block-navigation.js +87 -0
  8. package/coverage/lcov-report/favicon.png +0 -0
  9. package/coverage/lcov-report/index.html +356 -0
  10. package/coverage/lcov-report/prettify.css +1 -0
  11. package/coverage/lcov-report/prettify.js +2 -0
  12. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  13. package/coverage/lcov-report/sorter.js +196 -0
  14. package/coverage/lcov-report/src/core/ErrorManager.ts.html +139 -0
  15. package/coverage/lcov-report/src/core/Implementation.ts.html +244 -0
  16. package/coverage/lcov-report/src/core/ImplementationBuilder.ts.html +148 -0
  17. package/coverage/lcov-report/src/core/Procedure.ts.html +379 -0
  18. package/coverage/lcov-report/src/core/Segment.ts.html +271 -0
  19. package/coverage/lcov-report/src/core/SegmentBuilder.ts.html +250 -0
  20. package/coverage/lcov-report/src/core/Version.ts.html +289 -0
  21. package/coverage/lcov-report/src/core/definitions/AccessLevel.ts.html +94 -0
  22. package/coverage/lcov-report/src/core/definitions/index.html +116 -0
  23. package/coverage/lcov-report/src/core/errors/ErrorManager.ts.html +139 -0
  24. package/coverage/lcov-report/src/core/errors/ImplementationNotFound.ts.html +121 -0
  25. package/coverage/lcov-report/src/core/errors/InvalidVersionNumber.ts.html +121 -0
  26. package/coverage/lcov-report/src/core/errors/MissingParameterValue.ts.html +121 -0
  27. package/coverage/lcov-report/src/core/errors/ProcedureNotFound.ts.html +121 -0
  28. package/coverage/lcov-report/src/core/errors/index.html +161 -0
  29. package/coverage/lcov-report/src/core/index.html +191 -0
  30. package/coverage/lcov-report/src/core/reflection/ParameterParser.ts.html +307 -0
  31. package/coverage/lcov-report/src/core/reflection/ReflectionHelper.ts.html +439 -0
  32. package/coverage/lcov-report/src/core/reflection/index.html +131 -0
  33. package/coverage/lcov-report/src/core/reflection/models/ReflectionField.ts.html +151 -0
  34. package/coverage/lcov-report/src/core/reflection/models/ReflectionParameter.ts.html +139 -0
  35. package/coverage/lcov-report/src/core/reflection/models/index.html +131 -0
  36. package/coverage/lcov-report/src/core/utils/FqnBuilder.ts.html +115 -0
  37. package/coverage/lcov-report/src/core/utils/index.html +116 -0
  38. package/coverage/lcov-report/src/hooks.ts.html +88 -0
  39. package/coverage/lcov-report/src/index.html +116 -0
  40. package/coverage/lcov-report/src/runtime/Gateway.ts.html +139 -0
  41. package/coverage/lcov-report/src/runtime/LocalGateway.ts.html +364 -0
  42. package/coverage/lcov-report/src/runtime/LocalNode.ts.html +475 -0
  43. package/coverage/lcov-report/src/runtime/LocalRepository.ts.html +556 -0
  44. package/coverage/lcov-report/src/runtime/Node.ts.html +130 -0
  45. package/coverage/lcov-report/src/runtime/NodeBalancer.ts.html +268 -0
  46. package/coverage/lcov-report/src/runtime/NodeMonitor.ts.html +274 -0
  47. package/coverage/lcov-report/src/runtime/Remote.ts.html +562 -0
  48. package/coverage/lcov-report/src/runtime/RemoteNode.ts.html +232 -0
  49. package/coverage/lcov-report/src/runtime/Repository.ts.html +145 -0
  50. package/coverage/lcov-report/src/runtime/Runtime.ts.html +226 -0
  51. package/coverage/lcov-report/src/runtime/caching/ImportRewriter.ts.html +313 -0
  52. package/coverage/lcov-report/src/runtime/caching/ModuleAppender.ts.html +208 -0
  53. package/coverage/lcov-report/src/runtime/caching/RemoteBuilder.ts.html +238 -0
  54. package/coverage/lcov-report/src/runtime/caching/SourceAppender.ts.html +256 -0
  55. package/coverage/lcov-report/src/runtime/caching/definitions/Keywords.ts.html +94 -0
  56. package/coverage/lcov-report/src/runtime/caching/definitions/index.html +116 -0
  57. package/coverage/lcov-report/src/runtime/caching/index.html +146 -0
  58. package/coverage/lcov-report/src/runtime/caching/models/ApplicationModule.ts.html +175 -0
  59. package/coverage/lcov-report/src/runtime/caching/models/Implementation.ts.html +208 -0
  60. package/coverage/lcov-report/src/runtime/caching/models/SegmentModule.ts.html +163 -0
  61. package/coverage/lcov-report/src/runtime/caching/models/index.html +146 -0
  62. package/coverage/lcov-report/src/runtime/errors/ClientNotFound.ts.html +121 -0
  63. package/coverage/lcov-report/src/runtime/errors/InvalidClientId.ts.html +121 -0
  64. package/coverage/lcov-report/src/runtime/errors/InvalidSegmentFile.ts.html +121 -0
  65. package/coverage/lcov-report/src/runtime/errors/ModuleNotLoaded.ts.html +121 -0
  66. package/coverage/lcov-report/src/runtime/errors/NoNodeAvailable.ts.html +121 -0
  67. package/coverage/lcov-report/src/runtime/errors/RepositoryNotAvaiable.ts.html +121 -0
  68. package/coverage/lcov-report/src/runtime/errors/RuntimeNotAvailable.ts.html +121 -0
  69. package/coverage/lcov-report/src/runtime/errors/index.html +206 -0
  70. package/coverage/lcov-report/src/runtime/hooks/dependencies.ts.html +142 -0
  71. package/coverage/lcov-report/src/runtime/hooks/index.html +131 -0
  72. package/coverage/lcov-report/src/runtime/hooks/runtime.ts.html +160 -0
  73. package/coverage/lcov-report/src/runtime/index.html +251 -0
  74. package/coverage/lcov-report/src/runtime/models/File.ts.html +151 -0
  75. package/coverage/lcov-report/src/runtime/models/index.html +116 -0
  76. package/coverage/lcov-report/src/runtime/serialization/ArraySerializer.ts.html +166 -0
  77. package/coverage/lcov-report/src/runtime/serialization/ClassSerializer.ts.html +400 -0
  78. package/coverage/lcov-report/src/runtime/serialization/MapSerializer.ts.html +217 -0
  79. package/coverage/lcov-report/src/runtime/serialization/ObjectSerializer.ts.html +211 -0
  80. package/coverage/lcov-report/src/runtime/serialization/SetSerializer.ts.html +178 -0
  81. package/coverage/lcov-report/src/runtime/serialization/ValueSerializer.ts.html +328 -0
  82. package/coverage/lcov-report/src/runtime/serialization/errors/ClassNotFound.ts.html +121 -0
  83. package/coverage/lcov-report/src/runtime/serialization/errors/InvalidClass.ts.html +121 -0
  84. package/coverage/lcov-report/src/runtime/serialization/errors/index.html +131 -0
  85. package/coverage/lcov-report/src/runtime/serialization/index.html +191 -0
  86. package/coverage/lcov-report/src/runtime/utils/ModuleAnalyser.ts.html +265 -0
  87. package/coverage/lcov-report/src/runtime/utils/ModuleLoader.ts.html +238 -0
  88. package/coverage/lcov-report/src/runtime/utils/UrlRewriter.ts.html +262 -0
  89. package/coverage/lcov-report/src/runtime/utils/index.html +146 -0
  90. package/coverage/lcov-report/test/_fixtures/core/Implementation.fixture.ts.html +184 -0
  91. package/coverage/lcov-report/test/_fixtures/core/Procedure.fixture.ts.html +172 -0
  92. package/coverage/lcov-report/test/_fixtures/core/Segment.fixture.ts.html +193 -0
  93. package/coverage/lcov-report/test/_fixtures/core/SegmentBuilder.fixture.ts.html +220 -0
  94. package/coverage/lcov-report/test/_fixtures/core/Version.fixture.ts.html +139 -0
  95. package/coverage/lcov-report/test/_fixtures/core/index.html +176 -0
  96. package/coverage/lcov-report/test/_fixtures/core/procedures/allDefault.ts.html +100 -0
  97. package/coverage/lcov-report/test/_fixtures/core/procedures/hasParameters.ts.html +100 -0
  98. package/coverage/lcov-report/test/_fixtures/core/procedures/hasVersion_v1_0_0.ts.html +115 -0
  99. package/coverage/lcov-report/test/_fixtures/core/procedures/hasVersion_v1_0_5.ts.html +115 -0
  100. package/coverage/lcov-report/test/_fixtures/core/procedures/hasVersion_v1_1_0.ts.html +115 -0
  101. package/coverage/lcov-report/test/_fixtures/core/procedures/hasVersion_v1_2_3.ts.html +115 -0
  102. package/coverage/lcov-report/test/_fixtures/core/procedures/inModule.ts.html +115 -0
  103. package/coverage/lcov-report/test/_fixtures/core/procedures/index.html +251 -0
  104. package/coverage/lcov-report/test/_fixtures/core/procedures/isBroken.ts.html +112 -0
  105. package/coverage/lcov-report/test/_fixtures/core/procedures/isPrivate.ts.html +112 -0
  106. package/coverage/lcov-report/test/_fixtures/core/procedures/isPublic.ts.html +112 -0
  107. package/coverage/lcov-report/test/_fixtures/core/reflection/ReflectionHelper.fixture.ts.html +241 -0
  108. package/coverage/lcov-report/test/_fixtures/core/reflection/index.html +116 -0
  109. package/coverage/lcov-report/test/_fixtures/core/segments/default.segment.ts.html +94 -0
  110. package/coverage/lcov-report/test/_fixtures/core/segments/index.html +116 -0
  111. package/coverage/lcov-report/test/_fixtures/runtime/LocalGateway.fixture.ts.html +157 -0
  112. package/coverage/lcov-report/test/_fixtures/runtime/LocalNode.fixture.ts.html +133 -0
  113. package/coverage/lcov-report/test/_fixtures/runtime/LocalRepository.fixture.ts.html +304 -0
  114. package/coverage/lcov-report/test/_fixtures/runtime/NodeBalancer.fixture.ts.html +142 -0
  115. package/coverage/lcov-report/test/_fixtures/runtime/NodeMonitor.fixture.ts.html +187 -0
  116. package/coverage/lcov-report/test/_fixtures/runtime/RemoteNode.fixture.ts.html +109 -0
  117. package/coverage/lcov-report/test/_fixtures/runtime/caching/ImportRewriter.fixture.ts.html +304 -0
  118. package/coverage/lcov-report/test/_fixtures/runtime/caching/ModuleAppender.fixture.ts.html +181 -0
  119. package/coverage/lcov-report/test/_fixtures/runtime/caching/RemoteBuilder.fixture.ts.html +217 -0
  120. package/coverage/lcov-report/test/_fixtures/runtime/caching/SourceAppender.fixture.ts.html +178 -0
  121. package/coverage/lcov-report/test/_fixtures/runtime/caching/index.html +146 -0
  122. package/coverage/lcov-report/test/_fixtures/runtime/index.html +206 -0
  123. package/coverage/lcov-report/test/_fixtures/runtime/procedures/firstPrivateTask.ts.html +109 -0
  124. package/coverage/lcov-report/test/_fixtures/runtime/procedures/firstPublicTask.ts.html +118 -0
  125. package/coverage/lcov-report/test/_fixtures/runtime/procedures/fourthPublicTask.ts.html +109 -0
  126. package/coverage/lcov-report/test/_fixtures/runtime/procedures/index.html +191 -0
  127. package/coverage/lcov-report/test/_fixtures/runtime/procedures/secondPrivateTask.ts.html +109 -0
  128. package/coverage/lcov-report/test/_fixtures/runtime/procedures/secondPublicTask.ts.html +118 -0
  129. package/coverage/lcov-report/test/_fixtures/runtime/procedures/thirdPublicTask.ts.html +118 -0
  130. package/coverage/lcov-report/test/_fixtures/runtime/segments/first.segment.files.ts.html +85 -0
  131. package/coverage/lcov-report/test/_fixtures/runtime/segments/first.segment.ts.html +91 -0
  132. package/coverage/lcov-report/test/_fixtures/runtime/segments/index.html +161 -0
  133. package/coverage/lcov-report/test/_fixtures/runtime/segments/second.segment.files.ts.html +85 -0
  134. package/coverage/lcov-report/test/_fixtures/runtime/segments/second.segment.ts.html +91 -0
  135. package/coverage/lcov-report/test/_fixtures/runtime/segments.ts.html +319 -0
  136. package/coverage/lcov-report/test/_fixtures/runtime/serialization/ValueSerializer.fixture.ts.html +394 -0
  137. package/coverage/lcov-report/test/_fixtures/runtime/serialization/index.html +116 -0
  138. package/coverage/lcov-report/test/_fixtures/runtime/utils/ModuleAnaliser.fixture.ts.html +163 -0
  139. package/coverage/lcov-report/test/_fixtures/runtime/utils/index.html +116 -0
  140. package/coverage/lcov.info +3565 -0
  141. package/dist/client.d.ts +2 -0
  142. package/dist/client.js +12 -0
  143. package/dist/core/AccessLevel.d.ts +5 -0
  144. package/dist/core/AccessLevel.js +6 -0
  145. package/dist/core/ErrorManager.d.ts +3 -0
  146. package/dist/core/ErrorManager.js +11 -0
  147. package/dist/core/Implementation.d.ts +10 -0
  148. package/dist/core/Implementation.js +32 -0
  149. package/dist/core/ImplementationBuilder.d.ts +4 -0
  150. package/dist/core/ImplementationBuilder.js +14 -0
  151. package/dist/core/Procedure.d.ts +13 -0
  152. package/dist/core/Procedure.js +58 -0
  153. package/dist/core/Segment.d.ts +13 -0
  154. package/dist/core/Segment.js +36 -0
  155. package/dist/core/SegmentBuilder.d.ts +6 -0
  156. package/dist/core/SegmentBuilder.js +33 -0
  157. package/dist/core/Version.d.ts +13 -0
  158. package/dist/core/Version.js +50 -0
  159. package/dist/core/definitions/AccessLevel.d.ts +2 -0
  160. package/dist/core/definitions/AccessLevel.js +2 -0
  161. package/dist/core/errors/ErrorManager.d.ts +3 -0
  162. package/dist/core/errors/ErrorManager.js +11 -0
  163. package/dist/core/errors/ImplementationNotFound.d.ts +3 -0
  164. package/dist/core/errors/ImplementationNotFound.js +6 -0
  165. package/dist/core/errors/InvalidVersionNumber.d.ts +3 -0
  166. package/dist/core/errors/InvalidVersionNumber.js +6 -0
  167. package/dist/core/errors/MissingParameterValue.d.ts +3 -0
  168. package/dist/core/errors/MissingParameterValue.js +6 -0
  169. package/dist/core/errors/NotImplemented.d.ts +3 -0
  170. package/dist/core/errors/NotImplemented.js +6 -0
  171. package/dist/core/errors/ProcedureNotFound.d.ts +3 -0
  172. package/dist/core/errors/ProcedureNotFound.js +6 -0
  173. package/dist/core/interfaces/Runner.d.ts +4 -0
  174. package/dist/core/interfaces/Runner.js +1 -0
  175. package/dist/core/reflection/ParameterParser.d.ts +5 -0
  176. package/dist/core/reflection/ParameterParser.js +51 -0
  177. package/dist/core/reflection/ReflectionHelper.d.ts +13 -0
  178. package/dist/core/reflection/ReflectionHelper.js +69 -0
  179. package/dist/core/reflection/models/ReflectionField.d.ts +8 -0
  180. package/dist/core/reflection/models/ReflectionField.js +14 -0
  181. package/dist/core/reflection/models/ReflectionParameter.d.ts +7 -0
  182. package/dist/core/reflection/models/ReflectionParameter.js +11 -0
  183. package/dist/core/types/Component.d.ts +5 -0
  184. package/dist/core/types/Component.js +1 -0
  185. package/dist/core/types/FlexObject.d.ts +4 -0
  186. package/dist/core/types/FlexObject.js +1 -0
  187. package/dist/core/types/Module.d.ts +3 -0
  188. package/dist/core/types/Module.js +1 -0
  189. package/dist/core/types/SegmentImplementation.d.ts +6 -0
  190. package/dist/core/types/SegmentImplementation.js +1 -0
  191. package/dist/core/types/SegmentModule.d.ts +5 -0
  192. package/dist/core/types/SegmentModule.js +1 -0
  193. package/dist/core/types/SegmentProcedure.d.ts +7 -0
  194. package/dist/core/types/SegmentProcedure.js +1 -0
  195. package/dist/core/utils/FqnBuilder.d.ts +3 -0
  196. package/dist/core/utils/FqnBuilder.js +5 -0
  197. package/dist/hooks.d.ts +2 -0
  198. package/dist/hooks.js +2 -0
  199. package/dist/lib.d.ts +4 -0
  200. package/dist/lib.js +3 -0
  201. package/dist/runtime/Gateway.d.ts +10 -0
  202. package/dist/runtime/Gateway.js +3 -0
  203. package/dist/runtime/LocalGateway.d.ts +12 -0
  204. package/dist/runtime/LocalGateway.js +54 -0
  205. package/dist/runtime/LocalNode.d.ts +18 -0
  206. package/dist/runtime/LocalNode.js +75 -0
  207. package/dist/runtime/LocalRepository.d.ts +17 -0
  208. package/dist/runtime/LocalRepository.js +86 -0
  209. package/dist/runtime/Node.d.ts +8 -0
  210. package/dist/runtime/Node.js +3 -0
  211. package/dist/runtime/NodeBalancer.d.ts +10 -0
  212. package/dist/runtime/NodeBalancer.js +34 -0
  213. package/dist/runtime/NodeMonitor.d.ts +7 -0
  214. package/dist/runtime/NodeMonitor.js +38 -0
  215. package/dist/runtime/Proxy.d.ts +19 -0
  216. package/dist/runtime/Proxy.js +31 -0
  217. package/dist/runtime/Remote.d.ts +15 -0
  218. package/dist/runtime/Remote.js +100 -0
  219. package/dist/runtime/RemoteGateway.d.ts +11 -0
  220. package/dist/runtime/RemoteGateway.js +22 -0
  221. package/dist/runtime/RemoteNode.d.ts +12 -0
  222. package/dist/runtime/RemoteNode.js +29 -0
  223. package/dist/runtime/RemoteNodeBuilder.d.ts +4 -0
  224. package/dist/runtime/RemoteNodeBuilder.js +10 -0
  225. package/dist/runtime/RemoteRepository.d.ts +14 -0
  226. package/dist/runtime/RemoteRepository.js +34 -0
  227. package/dist/runtime/Repository.d.ts +11 -0
  228. package/dist/runtime/Repository.js +3 -0
  229. package/dist/runtime/Runtime.d.ts +9 -0
  230. package/dist/runtime/Runtime.js +27 -0
  231. package/dist/runtime/caching/CachBuilder.d.ts +6 -0
  232. package/dist/runtime/caching/CachBuilder.js +150 -0
  233. package/dist/runtime/caching/CacheBuilder.d.ts +6 -0
  234. package/dist/runtime/caching/CacheBuilder.js +249 -0
  235. package/dist/runtime/caching/ImportRewriter.d.ts +4 -0
  236. package/dist/runtime/caching/ImportRewriter.js +49 -0
  237. package/dist/runtime/caching/ModuleAppender.d.ts +5 -0
  238. package/dist/runtime/caching/ModuleAppender.js +22 -0
  239. package/dist/runtime/caching/RemoteBuilder.d.ts +5 -0
  240. package/dist/runtime/caching/RemoteBuilder.js +31 -0
  241. package/dist/runtime/caching/SourceAppender.d.ts +5 -0
  242. package/dist/runtime/caching/SourceAppender.js +30 -0
  243. package/dist/runtime/caching/definitions/Keywords.d.ts +2 -0
  244. package/dist/runtime/caching/definitions/Keywords.js +2 -0
  245. package/dist/runtime/caching/errors/FunctionFilenameNotFound.d.ts +3 -0
  246. package/dist/runtime/caching/errors/FunctionFilenameNotFound.js +5 -0
  247. package/dist/runtime/caching/errors/InvalidSegmentFilename.d.ts +3 -0
  248. package/dist/runtime/caching/errors/InvalidSegmentFilename.js +5 -0
  249. package/dist/runtime/caching/errors/MissingModuleExport.d.ts +3 -0
  250. package/dist/runtime/caching/errors/MissingModuleExport.js +5 -0
  251. package/dist/runtime/caching/errors/SegmentFileNotLoaded.d.ts +3 -0
  252. package/dist/runtime/caching/errors/SegmentFileNotLoaded.js +5 -0
  253. package/dist/runtime/caching/errors/SegmentModuleNotLoaded.d.ts +3 -0
  254. package/dist/runtime/caching/errors/SegmentModuleNotLoaded.js +5 -0
  255. package/dist/runtime/caching/models/ApplicationModule.d.ts +9 -0
  256. package/dist/runtime/caching/models/ApplicationModule.js +19 -0
  257. package/dist/runtime/caching/models/Implementation.d.ts +12 -0
  258. package/dist/runtime/caching/models/Implementation.js +27 -0
  259. package/dist/runtime/caching/models/Procedure.d.ts +9 -0
  260. package/dist/runtime/caching/models/Procedure.js +15 -0
  261. package/dist/runtime/caching/models/Segment.d.ts +10 -0
  262. package/dist/runtime/caching/models/Segment.js +16 -0
  263. package/dist/runtime/caching/models/SegmentModule.d.ts +10 -0
  264. package/dist/runtime/caching/models/SegmentModule.js +14 -0
  265. package/dist/runtime/caching/types/SegmentFile.d.ts +5 -0
  266. package/dist/runtime/caching/types/SegmentFile.js +1 -0
  267. package/dist/runtime/caching/types/SegmentImportProperties.d.ts +6 -0
  268. package/dist/runtime/caching/types/SegmentImportProperties.js +1 -0
  269. package/dist/runtime/caching/types/SegmentImports.d.ts +5 -0
  270. package/dist/runtime/caching/types/SegmentImports.js +1 -0
  271. package/dist/runtime/caching/types/models/ApplicationModule.d.ts +9 -0
  272. package/dist/runtime/caching/types/models/ApplicationModule.js +19 -0
  273. package/dist/runtime/caching/types/models/Implementation.d.ts +12 -0
  274. package/dist/runtime/caching/types/models/Implementation.js +27 -0
  275. package/dist/runtime/caching/types/models/Procedure.d.ts +9 -0
  276. package/dist/runtime/caching/types/models/Procedure.js +15 -0
  277. package/dist/runtime/caching/types/models/Segment.d.ts +10 -0
  278. package/dist/runtime/caching/types/models/Segment.js +16 -0
  279. package/dist/runtime/caching/types/models/SegmentModule.d.ts +10 -0
  280. package/dist/runtime/caching/types/models/SegmentModule.js +14 -0
  281. package/dist/runtime/errors/ClientNotFound.d.ts +3 -0
  282. package/dist/runtime/errors/ClientNotFound.js +6 -0
  283. package/dist/runtime/errors/FileNotFound.d.ts +3 -0
  284. package/dist/runtime/errors/FileNotFound.js +6 -0
  285. package/dist/runtime/errors/InvalidClientId.d.ts +3 -0
  286. package/dist/runtime/errors/InvalidClientId.js +6 -0
  287. package/dist/runtime/errors/InvalidJitarHooks.d.ts +3 -0
  288. package/dist/runtime/errors/InvalidJitarHooks.js +6 -0
  289. package/dist/runtime/errors/InvalidSegmentFile.d.ts +3 -0
  290. package/dist/runtime/errors/InvalidSegmentFile.js +6 -0
  291. package/dist/runtime/errors/ModuleNotLoaded.d.ts +3 -0
  292. package/dist/runtime/errors/ModuleNotLoaded.js +6 -0
  293. package/dist/runtime/errors/NoNodeAvailable.d.ts +3 -0
  294. package/dist/runtime/errors/NoNodeAvailable.js +6 -0
  295. package/dist/runtime/errors/RepositoryNotAvaiable.d.ts +3 -0
  296. package/dist/runtime/errors/RepositoryNotAvaiable.js +6 -0
  297. package/dist/runtime/errors/RuntimeNotAvailable.d.ts +3 -0
  298. package/dist/runtime/errors/RuntimeNotAvailable.js +6 -0
  299. package/dist/runtime/errors/SegmentNotFound.d.ts +3 -0
  300. package/dist/runtime/errors/SegmentNotFound.js +6 -0
  301. package/dist/runtime/hooks/dependencies.d.ts +2 -0
  302. package/dist/runtime/hooks/dependencies.js +9 -0
  303. package/dist/runtime/hooks/runtime.d.ts +3 -0
  304. package/dist/runtime/hooks/runtime.js +14 -0
  305. package/dist/runtime/interfaces/FileManager.d.ts +11 -0
  306. package/dist/runtime/interfaces/FileManager.js +1 -0
  307. package/dist/runtime/interfaces/HealthCheck.d.ts +3 -0
  308. package/dist/runtime/interfaces/HealthCheck.js +1 -0
  309. package/dist/runtime/interfaces/ProcedureContainer.d.ts +5 -0
  310. package/dist/runtime/interfaces/ProcedureContainer.js +1 -0
  311. package/dist/runtime/models/File.d.ts +9 -0
  312. package/dist/runtime/models/File.js +14 -0
  313. package/dist/runtime/serialization/ArraySerializer.d.ts +7 -0
  314. package/dist/runtime/serialization/ArraySerializer.js +15 -0
  315. package/dist/runtime/serialization/ClassSerializer.d.ts +10 -0
  316. package/dist/runtime/serialization/ClassSerializer.js +58 -0
  317. package/dist/runtime/serialization/MapSerializer.d.ts +8 -0
  318. package/dist/runtime/serialization/MapSerializer.js +25 -0
  319. package/dist/runtime/serialization/ObjectSerializer.d.ts +9 -0
  320. package/dist/runtime/serialization/ObjectSerializer.js +21 -0
  321. package/dist/runtime/serialization/SetSerializer.d.ts +8 -0
  322. package/dist/runtime/serialization/SetSerializer.js +16 -0
  323. package/dist/runtime/serialization/ValueSerializer.d.ts +7 -0
  324. package/dist/runtime/serialization/ValueSerializer.js +46 -0
  325. package/dist/runtime/serialization/errors/ClassNotFound.d.ts +3 -0
  326. package/dist/runtime/serialization/errors/ClassNotFound.js +6 -0
  327. package/dist/runtime/serialization/errors/InvalidClass.d.ts +3 -0
  328. package/dist/runtime/serialization/errors/InvalidClass.js +6 -0
  329. package/dist/runtime/serialization/interfaces/Serializer.d.ts +4 -0
  330. package/dist/runtime/serialization/interfaces/Serializer.js +1 -0
  331. package/dist/runtime/serialization/types/SerializableObject.d.ts +3 -0
  332. package/dist/runtime/serialization/types/SerializableObject.js +1 -0
  333. package/dist/runtime/serialization/types/Serialized.d.ts +5 -0
  334. package/dist/runtime/serialization/types/Serialized.js +1 -0
  335. package/dist/runtime/serialization/types/SerializedClass.d.ts +8 -0
  336. package/dist/runtime/serialization/types/SerializedClass.js +1 -0
  337. package/dist/runtime/serialization/types/SerializedMap.d.ts +8 -0
  338. package/dist/runtime/serialization/types/SerializedMap.js +1 -0
  339. package/dist/runtime/serialization/types/SerializedObject.d.ts +4 -0
  340. package/dist/runtime/serialization/types/SerializedObject.js +1 -0
  341. package/dist/runtime/serialization/types/SerializedSet.d.ts +5 -0
  342. package/dist/runtime/serialization/types/SerializedSet.js +1 -0
  343. package/dist/runtime/types/JitarHooks.d.ts +6 -0
  344. package/dist/runtime/types/JitarHooks.js +1 -0
  345. package/dist/runtime/types/ModuleImporter.d.ts +3 -0
  346. package/dist/runtime/types/ModuleImporter.js +1 -0
  347. package/dist/runtime/utils/ModuleAnalyser.d.ts +7 -0
  348. package/dist/runtime/utils/ModuleAnalyser.js +34 -0
  349. package/dist/runtime/utils/ModuleLoader.d.ts +8 -0
  350. package/dist/runtime/utils/ModuleLoader.js +30 -0
  351. package/dist/runtime/utils/UrlRewriter.d.ts +4 -0
  352. package/dist/runtime/utils/UrlRewriter.js +36 -0
  353. package/dist/server/JitarServer.d.ts +8 -0
  354. package/dist/server/JitarServer.js +109 -0
  355. package/dist/server/configuration/GatewayConfiguration.d.ts +3 -0
  356. package/dist/server/configuration/GatewayConfiguration.js +18 -0
  357. package/dist/server/configuration/NodeConfiguration.d.ts +5 -0
  358. package/dist/server/configuration/NodeConfiguration.js +28 -0
  359. package/dist/server/configuration/ProxyConfiguration.d.ts +5 -0
  360. package/dist/server/configuration/ProxyConfiguration.js +29 -0
  361. package/dist/server/configuration/RepositoryConfiguration.d.ts +5 -0
  362. package/dist/server/configuration/RepositoryConfiguration.js +30 -0
  363. package/dist/server/configuration/RuntimeConfiguration.d.ts +13 -0
  364. package/dist/server/configuration/RuntimeConfiguration.js +48 -0
  365. package/dist/server/configuration/ServerOptions.d.ts +4 -0
  366. package/dist/server/configuration/ServerOptions.js +25 -0
  367. package/dist/server/configuration/StandaloneConfiguration.d.ts +6 -0
  368. package/dist/server/configuration/StandaloneConfiguration.js +36 -0
  369. package/dist/server/controllers/AssetsController.d.ts +8 -0
  370. package/dist/server/controllers/AssetsController.js +50 -0
  371. package/dist/server/controllers/HealthController.d.ts +10 -0
  372. package/dist/server/controllers/HealthController.js +47 -0
  373. package/dist/server/controllers/JitarController.d.ts +4 -0
  374. package/dist/server/controllers/JitarController.js +26 -0
  375. package/dist/server/controllers/ModulesController.d.ts +10 -0
  376. package/dist/server/controllers/ModulesController.js +62 -0
  377. package/dist/server/controllers/NodesController.d.ts +9 -0
  378. package/dist/server/controllers/NodesController.js +60 -0
  379. package/dist/server/controllers/ProceduresController.d.ts +10 -0
  380. package/dist/server/controllers/ProceduresController.js +35 -0
  381. package/dist/server/controllers/ProxyController.d.ts +7 -0
  382. package/dist/server/controllers/ProxyController.js +37 -0
  383. package/dist/server/controllers/RPCController.d.ts +9 -0
  384. package/dist/server/controllers/RPCController.js +129 -0
  385. package/dist/server/definitions/RuntimeDefaults.d.ts +7 -0
  386. package/dist/server/definitions/RuntimeDefaults.js +8 -0
  387. package/dist/server/definitions/RuntimeMode.d.ts +8 -0
  388. package/dist/server/definitions/RuntimeMode.js +9 -0
  389. package/dist/server/errors/MissingConfigurationValue.d.ts +3 -0
  390. package/dist/server/errors/MissingConfigurationValue.js +5 -0
  391. package/dist/server/errors/RuntimeNotAvaiable.d.ts +3 -0
  392. package/dist/server/errors/RuntimeNotAvaiable.js +5 -0
  393. package/dist/server/errors/UnknownRuntimeMode.d.ts +3 -0
  394. package/dist/server/errors/UnknownRuntimeMode.js +5 -0
  395. package/dist/server/models/HealthDto.d.ts +4 -0
  396. package/dist/server/models/HealthDto.js +22 -0
  397. package/dist/server/models/NodeDto.d.ts +4 -0
  398. package/dist/server/models/NodeDto.js +22 -0
  399. package/dist/server/models/RuntimeConfiguration.d.ts +12 -0
  400. package/dist/server/models/RuntimeConfiguration.js +68 -0
  401. package/dist/server/models/ServerOptions.d.ts +4 -0
  402. package/dist/server/models/ServerOptions.js +25 -0
  403. package/dist/server/utils/DataConverter.d.ts +4 -0
  404. package/dist/server/utils/DataConverter.js +9 -0
  405. package/dist/server/utils/LocalFileManager.d.ts +20 -0
  406. package/dist/server/utils/LocalFileManager.js +73 -0
  407. package/dist/server/utils/RuntimeConfigurationLoader.d.ts +4 -0
  408. package/dist/server/utils/RuntimeConfigurationLoader.js +11 -0
  409. package/dist/server/utils/RuntimeConfigurator.d.ts +6 -0
  410. package/dist/server/utils/RuntimeConfigurator.js +130 -0
  411. package/dist/server/utils/ServerOptionsReader.d.ts +4 -0
  412. package/dist/server/utils/ServerOptionsReader.js +10 -0
  413. package/dist/server.d.ts +3 -0
  414. package/dist/server.js +8 -0
  415. package/jest.config.js +20 -0
  416. package/package.json +48 -0
  417. package/src/client.ts +18 -0
  418. package/src/core/ErrorManager.ts +18 -0
  419. package/src/core/Implementation.ts +53 -0
  420. package/src/core/Procedure.ts +98 -0
  421. package/src/core/Segment.ts +62 -0
  422. package/src/core/SegmentBuilder.ts +55 -0
  423. package/src/core/Version.ts +68 -0
  424. package/src/core/definitions/AccessLevel.ts +3 -0
  425. package/src/core/errors/ImplementationNotFound.ts +12 -0
  426. package/src/core/errors/InvalidVersionNumber.ts +12 -0
  427. package/src/core/errors/MissingParameterValue.ts +12 -0
  428. package/src/core/errors/NotImplemented.ts +12 -0
  429. package/src/core/errors/ProcedureNotFound.ts +12 -0
  430. package/src/core/interfaces/Runner.ts +7 -0
  431. package/src/core/reflection/ParameterParser.ts +74 -0
  432. package/src/core/reflection/ReflectionHelper.ts +118 -0
  433. package/src/core/reflection/models/ReflectionField.ts +22 -0
  434. package/src/core/reflection/models/ReflectionParameter.ts +18 -0
  435. package/src/core/types/Component.ts +8 -0
  436. package/src/core/types/FlexObject.ts +4 -0
  437. package/src/core/types/Module.ts +6 -0
  438. package/src/core/types/SegmentImplementation.ts +9 -0
  439. package/src/core/types/SegmentModule.ts +9 -0
  440. package/src/core/types/SegmentProcedure.ts +11 -0
  441. package/src/core/utils/FqnBuilder.ts +11 -0
  442. package/src/hooks.ts +2 -0
  443. package/src/lib.ts +7 -0
  444. package/src/runtime/Gateway.ts +18 -0
  445. package/src/runtime/LocalGateway.ts +93 -0
  446. package/src/runtime/LocalNode.ts +130 -0
  447. package/src/runtime/LocalRepository.ts +157 -0
  448. package/src/runtime/Node.ts +15 -0
  449. package/src/runtime/NodeBalancer.ts +61 -0
  450. package/src/runtime/NodeMonitor.ts +63 -0
  451. package/src/runtime/Proxy.ts +60 -0
  452. package/src/runtime/Remote.ts +157 -0
  453. package/src/runtime/RemoteGateway.ts +40 -0
  454. package/src/runtime/RemoteNode.ts +49 -0
  455. package/src/runtime/RemoteRepository.ts +60 -0
  456. package/src/runtime/Repository.ts +20 -0
  457. package/src/runtime/Runtime.ts +47 -0
  458. package/src/runtime/caching/CacheBuilder.ts +424 -0
  459. package/src/runtime/caching/ImportRewriter.ts +76 -0
  460. package/src/runtime/caching/RemoteBuilder.ts +51 -0
  461. package/src/runtime/caching/SourceAppender.ts +57 -0
  462. package/src/runtime/caching/definitions/Keywords.ts +3 -0
  463. package/src/runtime/caching/errors/InvalidSegmentFilename.ts +8 -0
  464. package/src/runtime/caching/errors/MissingModuleExport.ts +8 -0
  465. package/src/runtime/caching/errors/SegmentFileNotLoaded.ts +8 -0
  466. package/src/runtime/caching/errors/SegmentModuleNotLoaded.ts +8 -0
  467. package/src/runtime/caching/models/ApplicationModule.ts +30 -0
  468. package/src/runtime/caching/models/Implementation.ts +41 -0
  469. package/src/runtime/caching/models/Procedure.ts +26 -0
  470. package/src/runtime/caching/models/Segment.ts +28 -0
  471. package/src/runtime/caching/models/SegmentModule.ts +26 -0
  472. package/src/runtime/caching/types/SegmentFile.ts +6 -0
  473. package/src/runtime/caching/types/SegmentImportProperties.ts +9 -0
  474. package/src/runtime/caching/types/SegmentImports.ts +6 -0
  475. package/src/runtime/errors/ClientNotFound.ts +12 -0
  476. package/src/runtime/errors/FileNotFound.ts +12 -0
  477. package/src/runtime/errors/InvalidClientId.ts +12 -0
  478. package/src/runtime/errors/InvalidJitarHooks.ts +12 -0
  479. package/src/runtime/errors/InvalidSegmentFile.ts +12 -0
  480. package/src/runtime/errors/ModuleNotLoaded.ts +12 -0
  481. package/src/runtime/errors/NoNodeAvailable.ts +12 -0
  482. package/src/runtime/errors/RepositoryNotAvaiable.ts +12 -0
  483. package/src/runtime/errors/RuntimeNotAvailable.ts +12 -0
  484. package/src/runtime/errors/SegmentNotFound.ts +12 -0
  485. package/src/runtime/hooks/dependencies.ts +19 -0
  486. package/src/runtime/hooks/runtime.ts +25 -0
  487. package/src/runtime/interfaces/FileManager.ts +19 -0
  488. package/src/runtime/interfaces/HealthCheck.ts +5 -0
  489. package/src/runtime/interfaces/ProcedureContainer.ts +9 -0
  490. package/src/runtime/models/File.ts +22 -0
  491. package/src/runtime/serialization/ArraySerializer.ts +27 -0
  492. package/src/runtime/serialization/ClassSerializer.ts +105 -0
  493. package/src/runtime/serialization/MapSerializer.ts +44 -0
  494. package/src/runtime/serialization/ObjectSerializer.ts +42 -0
  495. package/src/runtime/serialization/SetSerializer.ts +31 -0
  496. package/src/runtime/serialization/ValueSerializer.ts +81 -0
  497. package/src/runtime/serialization/errors/ClassNotFound.ts +12 -0
  498. package/src/runtime/serialization/errors/InvalidClass.ts +12 -0
  499. package/src/runtime/serialization/interfaces/Serializer.ts +10 -0
  500. package/src/runtime/serialization/types/SerializableObject.ts +6 -0
  501. package/src/runtime/serialization/types/Serialized.ts +8 -0
  502. package/src/runtime/serialization/types/SerializedClass.ts +13 -0
  503. package/src/runtime/serialization/types/SerializedMap.ts +13 -0
  504. package/src/runtime/serialization/types/SerializedObject.ts +4 -0
  505. package/src/runtime/serialization/types/SerializedSet.ts +9 -0
  506. package/src/runtime/types/JitarHooks.ts +10 -0
  507. package/src/runtime/types/ModuleImporter.ts +6 -0
  508. package/src/runtime/utils/ModuleAnalyser.ts +60 -0
  509. package/src/runtime/utils/ModuleLoader.ts +51 -0
  510. package/src/runtime/utils/UrlRewriter.ts +59 -0
  511. package/src/server/JitarServer.ts +161 -0
  512. package/src/server/configuration/GatewayConfiguration.ts +9 -0
  513. package/src/server/configuration/NodeConfiguration.ts +15 -0
  514. package/src/server/configuration/ProxyConfiguration.ts +16 -0
  515. package/src/server/configuration/RepositoryConfiguration.ts +17 -0
  516. package/src/server/configuration/RuntimeConfiguration.ts +30 -0
  517. package/src/server/configuration/ServerOptions.ts +14 -0
  518. package/src/server/configuration/StandaloneConfiguration.ts +21 -0
  519. package/src/server/controllers/AssetsController.ts +59 -0
  520. package/src/server/controllers/HealthController.ts +41 -0
  521. package/src/server/controllers/JitarController.ts +18 -0
  522. package/src/server/controllers/ModulesController.ts +66 -0
  523. package/src/server/controllers/NodesController.ts +58 -0
  524. package/src/server/controllers/ProceduresController.ts +31 -0
  525. package/src/server/controllers/ProxyController.ts +38 -0
  526. package/src/server/controllers/RPCController.ts +173 -0
  527. package/src/server/definitions/RuntimeDefaults.ts +10 -0
  528. package/src/server/errors/MissingConfigurationValue.ts +8 -0
  529. package/src/server/errors/RuntimeNotAvaiable.ts +8 -0
  530. package/src/server/errors/UnknownRuntimeMode.ts +8 -0
  531. package/src/server/models/HealthDto.ts +11 -0
  532. package/src/server/models/NodeDto.ts +11 -0
  533. package/src/server/utils/DataConverter.ts +15 -0
  534. package/src/server/utils/LocalFileManager.ts +122 -0
  535. package/src/server/utils/RuntimeConfigurationLoader.ts +19 -0
  536. package/src/server/utils/RuntimeConfigurator.ts +207 -0
  537. package/src/server/utils/ServerOptionsReader.ts +17 -0
  538. package/src/server.ts +16 -0
  539. package/test/_fixtures/core/Implementation.fixture.ts +33 -0
  540. package/test/_fixtures/core/Procedure.fixture.ts +33 -0
  541. package/test/_fixtures/core/Segment.fixture.ts +36 -0
  542. package/test/_fixtures/core/SegmentBuilder.fixture.ts +45 -0
  543. package/test/_fixtures/core/Version.fixture.ts +18 -0
  544. package/test/_fixtures/core/reflection/ReflectionHelper.fixture.ts +56 -0
  545. package/test/_fixtures/runtime/LocalGateway.fixture.ts +24 -0
  546. package/test/_fixtures/runtime/LocalNode.fixture.ts +16 -0
  547. package/test/_fixtures/runtime/LocalRepository.fixture.ts +73 -0
  548. package/test/_fixtures/runtime/NodeBalancer.fixture.ts +19 -0
  549. package/test/_fixtures/runtime/NodeMonitor.fixture.ts +34 -0
  550. package/test/_fixtures/runtime/RemoteNode.fixture.ts +8 -0
  551. package/test/_fixtures/runtime/caching/ImportRewriter.fixture.ts +81 -0
  552. package/test/_fixtures/runtime/caching/RemoteBuilder.fixture.ts +50 -0
  553. package/test/_fixtures/runtime/caching/SourceAppender.fixture.ts +35 -0
  554. package/test/_fixtures/runtime/segments.ts +78 -0
  555. package/test/_fixtures/runtime/serialization/ValueSerializer.fixture.ts +134 -0
  556. package/test/_fixtures/runtime/utils/ModuleAnaliser.fixture.ts +26 -0
  557. package/test/core/Implementation.spec.ts +89 -0
  558. package/test/core/Procedure.spec.ts +108 -0
  559. package/test/core/Segment.spec.ts +74 -0
  560. package/test/core/SegmentBuilder.spec.ts +39 -0
  561. package/test/core/Version.spec.ts +103 -0
  562. package/test/core/errors/ErrorManager.spec.ts +32 -0
  563. package/test/core/reflection/ReflectionHelper.spec.ts +128 -0
  564. package/test/core/utils/FqnBuilder.spec.ts +22 -0
  565. package/test/runtime/LocalGateway.spec.ts +40 -0
  566. package/test/runtime/LocalNode.spec.ts +87 -0
  567. package/test/runtime/LocalRepository.spec.ts +50 -0
  568. package/test/runtime/NodeBalancer.spec.ts +39 -0
  569. package/test/runtime/NodeMonitor.spec.ts +31 -0
  570. package/test/runtime/RemoteNode.spec.ts +43 -0
  571. package/test/runtime/caching/ImportRewriter.spec.ts +68 -0
  572. package/test/runtime/caching/RemoteBuilder.spec.ts +21 -0
  573. package/test/runtime/caching/SourceAppender.spec.ts +31 -0
  574. package/test/runtime/serialization/ValueSerializer.spec.ts +203 -0
  575. package/test/runtime/utils/ModuleAnalyser.spec.ts +54 -0
  576. package/test/runtime/utils/UrlRewriter.spec.ts +57 -0
  577. package/tsconfig.json +23 -0
@@ -0,0 +1,81 @@
1
+
2
+ import ReflectionHelper from '../../core/reflection/ReflectionHelper.js';
3
+
4
+ import ArraySerializer from './ArraySerializer.js';
5
+ import ClassSerializer from './ClassSerializer.js';
6
+ import Serializer from './interfaces/Serializer.js';
7
+ import MapSerializer from './MapSerializer.js';
8
+ import ObjectSerializer from './ObjectSerializer.js';
9
+ import SetSerializer from './SetSerializer.js';
10
+
11
+ import SerializableObject from './types/SerializableObject.js';
12
+ import Serialized from './types/Serialized.js';
13
+ import SerializedClass from './types/SerializedClass.js';
14
+ import SerializedMap from './types/SerializedMap.js';
15
+ import SerializedObject from './types/SerializedObject.js';
16
+ import SerializedSet from './types/SerializedSet.js';
17
+
18
+ class ValueSerializer implements Serializer
19
+ {
20
+ serialize(value: unknown): unknown
21
+ {
22
+ if (value instanceof Array)
23
+ {
24
+ return ArraySerializer.serialize(value);
25
+ }
26
+ else if (value instanceof Map)
27
+ {
28
+ return MapSerializer.serialize(value);
29
+ }
30
+ else if (value instanceof Set)
31
+ {
32
+ return SetSerializer.serialize(value);
33
+ }
34
+ else if (value instanceof Error)
35
+ {
36
+ // The error class is like Array, Map and Set in that it's a native class.
37
+ // Native classes cannot be defined as a class object by the reflection helper.
38
+ // Unlike Array, Map and Set, the error class can be serialzed by the class serializer.
39
+
40
+ // The type casting below isn't pretty, but works for now...
41
+ return ClassSerializer.serialize(value as unknown as SerializableObject);
42
+ }
43
+ else if (value instanceof Object)
44
+ {
45
+ return ReflectionHelper.isClassObject(value)
46
+ ? ClassSerializer.serialize(value as SerializableObject)
47
+ : ObjectSerializer.serialize(value as SerializableObject);
48
+ }
49
+
50
+ return value;
51
+ }
52
+
53
+ async deserialize(value: unknown): Promise<unknown>
54
+ {
55
+ if ((value instanceof Object) === false)
56
+ {
57
+ return value;
58
+ }
59
+
60
+ if (value instanceof Array)
61
+ {
62
+ return await ArraySerializer.deserialize(value);
63
+ }
64
+
65
+ if ((value as Serialized).serialized !== true)
66
+ {
67
+ return await ObjectSerializer.deserialize(value as SerializedObject);
68
+ }
69
+
70
+ switch ((value as Serialized).name)
71
+ {
72
+ case 'Map': return await MapSerializer.deserialize(value as SerializedMap);
73
+ case 'Set': return await SetSerializer.deserialize(value as SerializedSet);
74
+ default: return await ClassSerializer.deserialize(value as SerializedClass);
75
+ }
76
+ }
77
+ }
78
+
79
+ const instance = new ValueSerializer();
80
+
81
+ export default instance;
@@ -0,0 +1,12 @@
1
+
2
+ import Component from '../../../core/types/Component.js';
3
+
4
+ export default class ClassNotFound extends Error
5
+ {
6
+ constructor(name: string)
7
+ {
8
+ super(`The class '${name}' could not be found`);
9
+ }
10
+ }
11
+
12
+ (ClassNotFound as Component).source = '/jitar/runtime/serialization/errors/ClassNotFound.js';
@@ -0,0 +1,12 @@
1
+
2
+ import Component from '../../../core/types/Component.js';
3
+
4
+ export default class InvalidClass extends Error
5
+ {
6
+ constructor(name: string)
7
+ {
8
+ super(`The class '${name}' is invalid`);
9
+ }
10
+ }
11
+
12
+ (InvalidClass as Component).source = '/jitar/runtime/serialization/errors/InvalidClass.js';
@@ -0,0 +1,10 @@
1
+
2
+ // Static functions are not supported in typescript.
3
+ // Therefore all implementations need to export a singleton instance.
4
+
5
+ export default interface Serializer
6
+ {
7
+ serialize(value: unknown): unknown;
8
+
9
+ deserialize(value: unknown): Promise<unknown>;
10
+ }
@@ -0,0 +1,6 @@
1
+
2
+ import FlexObject from '../../../core/types/FlexObject.js';
3
+
4
+ type SerializableObject = FlexObject;
5
+
6
+ export default SerializableObject;
@@ -0,0 +1,8 @@
1
+
2
+ type Serialized =
3
+ {
4
+ serialized: boolean,
5
+ name: string
6
+ };
7
+
8
+ export default Serialized;
@@ -0,0 +1,13 @@
1
+
2
+ import FlexObject from '../../../core/types/FlexObject.js';
3
+
4
+ import Serialized from './Serialized.js';
5
+
6
+ type SerializedClass = Serialized &
7
+ {
8
+ source: string | null,
9
+ args: unknown[],
10
+ fields: FlexObject
11
+ }
12
+
13
+ export default SerializedClass;
@@ -0,0 +1,13 @@
1
+
2
+ import Serialized from './Serialized.js';
3
+
4
+ type SerializedMap = Serialized &
5
+ {
6
+ entries:
7
+ {
8
+ keys: unknown[],
9
+ values: unknown[]
10
+ }
11
+ }
12
+
13
+ export default SerializedMap;
@@ -0,0 +1,4 @@
1
+
2
+ type SerializedObject = { [key: string]: unknown };
3
+
4
+ export default SerializedObject;
@@ -0,0 +1,9 @@
1
+
2
+ import Serialized from './Serialized.js';
3
+
4
+ type SerializedSet = Serialized &
5
+ {
6
+ values: unknown[]
7
+ }
8
+
9
+ export default SerializedSet;
@@ -0,0 +1,10 @@
1
+
2
+ import Runtime from '../Runtime.js';
3
+
4
+ type JitarHooks =
5
+ {
6
+ setRuntime: (runtime: Runtime) => void;
7
+ setDependencyLoader: (loader: Function) => void;
8
+ }
9
+
10
+ export default JitarHooks;
@@ -0,0 +1,6 @@
1
+
2
+ import Module from '../../core/types/Module.js';
3
+
4
+ type ModuleImporter = (name: string) => Promise<Module>;
5
+
6
+ export default ModuleImporter;
@@ -0,0 +1,60 @@
1
+
2
+ import Module from '../../core/types/Module.js';
3
+
4
+ export default class ModuleAnalyser
5
+ {
6
+ static filterObjects(module: Module): Map<string, Object>
7
+ {
8
+ return this.#filterexported(module, Object);
9
+ }
10
+
11
+ static filterFunctions(module: Module): Map<string, Function>
12
+ {
13
+ const functions = this.#filterexported(module, Function);
14
+
15
+ return this.#filterFunctionTypes(functions, false);
16
+ }
17
+
18
+ static filterClasses(module: Module): Map<string, Function>
19
+ {
20
+ const functions = this.#filterexported(module, Function);
21
+
22
+ return this.#filterFunctionTypes(functions, true);
23
+ }
24
+
25
+ static #filterexported(module: Module, type: ReturnType<typeof Function>): Map<string, typeof Function>
26
+ {
27
+ const keys = Object.keys(module);
28
+
29
+ const filtered = new Map();
30
+
31
+ for (const key of keys)
32
+ {
33
+ const exported = module[key];
34
+
35
+ if (exported instanceof type)
36
+ {
37
+ filtered.set(key, exported);
38
+ }
39
+ }
40
+
41
+ return filtered;
42
+ }
43
+
44
+ static #filterFunctionTypes(functions: Map<string, Function>, filterClasses: boolean): Map<string, Function>
45
+ {
46
+ const filtered = new Map();
47
+
48
+ for (const [key, value] of functions)
49
+ {
50
+ const code = value.toString();
51
+
52
+ if (code.startsWith('class') === filterClasses)
53
+ {
54
+ filtered.set(key, value);
55
+ }
56
+ }
57
+
58
+ return filtered;
59
+ }
60
+ }
@@ -0,0 +1,51 @@
1
+
2
+ import Module from '../../core/types/Module.js';
3
+
4
+ import ModuleNotLoaded from '../errors/ModuleNotLoaded.js';
5
+ import ModuleImporter from '../types/ModuleImporter.js';
6
+ import UrlRewriter from './UrlRewriter.js';
7
+
8
+ let _baseUrl: string | undefined;
9
+ let _import = async (name: string): Promise<Module> => { return import(name); };
10
+
11
+ export default class ModuleLoader
12
+ {
13
+ static setBaseUrl(baseUrl: string): void
14
+ {
15
+ _baseUrl = baseUrl;
16
+ }
17
+
18
+ static setImporter(importer: ModuleImporter): void
19
+ {
20
+ _import = importer;
21
+ }
22
+
23
+ static async load(url: string): Promise<Module>
24
+ {
25
+ if (url.startsWith('/jitar'))
26
+ {
27
+ url = `../../${url}`;
28
+ }
29
+
30
+ if (_baseUrl !== undefined && url.startsWith(_baseUrl) === false)
31
+ {
32
+ url = UrlRewriter.addBase(url, _baseUrl);
33
+ }
34
+
35
+ return this.import(url) as Promise<Module>;
36
+ }
37
+
38
+ static async import(specifier: string)
39
+ {
40
+ try
41
+ {
42
+ return await _import(specifier);
43
+ }
44
+ catch (error: unknown)
45
+ {
46
+ const message = error instanceof Error ? error.message : String(error);
47
+
48
+ throw new ModuleNotLoaded(specifier, message);
49
+ }
50
+ }
51
+ }
@@ -0,0 +1,59 @@
1
+
2
+ export default class UrlRewriter
3
+ {
4
+ static addBase(url: string, base: string): string
5
+ {
6
+ url = this.#ensureStartsWithoutSlash(url);
7
+ base = this.#assureEndWithSlash(base);
8
+
9
+ return this.#translateRelativeParts(`${base}${url}`);
10
+ }
11
+
12
+ static #ensureStartsWithoutSlash(url: string): string
13
+ {
14
+ if (url.startsWith('/'))
15
+ {
16
+ return url.substring(1);
17
+ }
18
+
19
+ return url;
20
+ }
21
+
22
+ static #assureEndWithSlash(base: string): string
23
+ {
24
+ if (base.endsWith('/'))
25
+ {
26
+ return base;
27
+ }
28
+
29
+ return `${base}/`;
30
+ }
31
+
32
+ static #translateRelativeParts(url: string)
33
+ {
34
+ const parts = url.split('/');
35
+ const translated = [];
36
+
37
+ translated.push(parts[0]);
38
+
39
+ for (let index = 1; index < parts.length; index++)
40
+ {
41
+ const part = parts[index].trim();
42
+
43
+ if (part === '.' || part === '')
44
+ {
45
+ continue;
46
+ }
47
+ else if (part === '..')
48
+ {
49
+ translated.pop();
50
+
51
+ continue;
52
+ }
53
+
54
+ translated.push(part);
55
+ }
56
+
57
+ return translated.join('/');
58
+ }
59
+ }
@@ -0,0 +1,161 @@
1
+
2
+ import { Server as OvernightServer } from '@overnightjs/core';
3
+ import bodyParser from 'body-parser';
4
+ import { Logger, TLogLevelName } from 'tslog';
5
+
6
+ import HealthCheck from '../runtime/interfaces/HealthCheck.js';
7
+ import LocalGateway from '../runtime/LocalGateway.js';
8
+ import LocalNode from '../runtime/LocalNode.js';
9
+ import LocalRepository from '../runtime/LocalRepository.js';
10
+ import Proxy from '../runtime/Proxy.js';
11
+ import Runtime from '../runtime/Runtime.js';
12
+
13
+ import RuntimeConfigurationLoader from './utils/RuntimeConfigurationLoader.js';
14
+ import RuntimeConfigurator from './utils/RuntimeConfigurator.js';
15
+ import ServerOptionsReader from './utils/ServerOptionsReader.js';
16
+
17
+ import AssetsController from './controllers/AssetsController.js';
18
+ import HealthController from './controllers/HealthController.js';
19
+ import JitarController from './controllers/JitarController.js';
20
+ import ModulesController from './controllers/ModulesController.js';
21
+ import NodesController from './controllers/NodesController.js';
22
+ import ProceduresController from './controllers/ProceduresController.js';
23
+ import ProxyController from './controllers/ProxyController.js';
24
+ import RPCController from './controllers/RPCController.js';
25
+
26
+ import RuntimeConfiguration from './configuration/RuntimeConfiguration.js';
27
+ import RuntimeDefaults from './definitions/RuntimeDefaults.js';
28
+
29
+ import RuntimeNotAvaiable from './errors/RuntimeNotAvaiable.js';
30
+
31
+ const STARTUP_MESSAGE = `
32
+ ██ ██ ████████ █████ ██████
33
+ ██ ██ ██ ██ ██ ██ ██
34
+ ██ ██ ██ ███████ ██████
35
+ ██ ██ ██ ██ ██ ██ ██ ██
36
+ █████ ██ ██ ██ ██ ██ ██
37
+ ____________________________________
38
+ By Masking Technology (masking.tech)
39
+ `;
40
+
41
+ export default class JitarServer extends OvernightServer
42
+ {
43
+ #runtime?: Runtime;
44
+
45
+ constructor()
46
+ {
47
+ super(false);
48
+
49
+ this.app.use(bodyParser.json());
50
+ this.app.use(bodyParser.urlencoded({ extended: true }));
51
+ }
52
+
53
+ async start(): Promise<void>
54
+ {
55
+ console.log(STARTUP_MESSAGE);
56
+
57
+ const options = await ServerOptionsReader.read();
58
+ const configuration = await RuntimeConfigurationLoader.load(options.config);
59
+ const runtime = await RuntimeConfigurator.configure(configuration);
60
+
61
+ const logger = this.#createLogger(options.loglevel);
62
+
63
+ this.#addControllers(configuration, runtime, logger);
64
+
65
+ const url = new URL(configuration.url ?? RuntimeDefaults.URL);
66
+
67
+ await this.#startServer(url.port);
68
+
69
+ this.#runtime = runtime;
70
+
71
+ logger.info(`Server started and listening at port ${url.port}`);
72
+ }
73
+
74
+ addHealthCheck(name: string, healthCheck: HealthCheck): void
75
+ {
76
+ if (this.#runtime === undefined)
77
+ {
78
+ throw new RuntimeNotAvaiable();
79
+ }
80
+
81
+ this.#runtime.addHealthCheck(name, healthCheck);
82
+ }
83
+
84
+ #createLogger(level: string): Logger
85
+ {
86
+ return new Logger(
87
+ {
88
+ displayFilePath: 'hidden',
89
+ minLevel: level as TLogLevelName
90
+ });
91
+ }
92
+
93
+ #addControllers(configuration: RuntimeConfiguration, runtime: Runtime, logger: Logger): void
94
+ {
95
+ if (configuration.standalone !== undefined && runtime instanceof Proxy)
96
+ {
97
+ const index = configuration.standalone.index ?? RuntimeDefaults.INDEX;
98
+
99
+ this.#addStandAloneControllers(runtime, logger, index);
100
+ }
101
+ else if (configuration.repository !== undefined && runtime instanceof LocalRepository)
102
+ {
103
+ const index = configuration.repository.index ?? RuntimeDefaults.INDEX;
104
+
105
+ this.#addRepositoryControllers(runtime, logger, index);
106
+ }
107
+ else if (configuration.gateway !== undefined && runtime instanceof LocalGateway)
108
+ {
109
+ this.#addGatewayControllers(runtime, logger);
110
+ }
111
+ else if (configuration.node !== undefined && runtime instanceof LocalNode)
112
+ {
113
+ this.#addNodeControllers(runtime, logger);
114
+ }
115
+ else if (configuration.proxy !== undefined && runtime instanceof Proxy)
116
+ {
117
+ this.#addProxyControllers(runtime, logger);
118
+ }
119
+ }
120
+
121
+ #addStandAloneControllers(proxy: Proxy, logger: Logger, index: string): void
122
+ {
123
+ super.addControllers(new HealthController(proxy, logger));
124
+ super.addControllers(new JitarController(this.app));
125
+ super.addControllers(new ModulesController(proxy, logger));
126
+ super.addControllers(new ProceduresController(proxy, logger));
127
+ super.addControllers(new RPCController(proxy, logger, true));
128
+ super.addControllers(new AssetsController(this.app, proxy, index, logger));
129
+ }
130
+
131
+ #addRepositoryControllers(repository: LocalRepository, logger: Logger, index: string): void
132
+ {
133
+ super.addControllers(new JitarController(this.app));
134
+ super.addControllers(new ModulesController(repository, logger));
135
+ super.addControllers(new AssetsController(this.app, repository, index, logger));
136
+ }
137
+
138
+ #addGatewayControllers(gateway: LocalGateway, logger: Logger): void
139
+ {
140
+ super.addControllers(new NodesController(gateway, logger));
141
+ super.addControllers(new ProceduresController(gateway, logger));
142
+ super.addControllers(new RPCController(gateway, logger, false));
143
+ }
144
+
145
+ #addNodeControllers(node: LocalNode, logger: Logger): void
146
+ {
147
+ super.addControllers(new HealthController(node, logger));
148
+ super.addControllers(new ProceduresController(node, logger));
149
+ super.addControllers(new RPCController(node, logger, true));
150
+ }
151
+
152
+ #addProxyControllers(proxy: Proxy, logger: Logger): void
153
+ {
154
+ super.addControllers(new ProxyController(this.app, proxy, logger));
155
+ }
156
+
157
+ async #startServer(port: string): Promise<void>
158
+ {
159
+ return new Promise(resolve => { this.app.listen(port, resolve); });
160
+ }
161
+ }
@@ -0,0 +1,9 @@
1
+
2
+ import { IsOptional, IsNumber } from 'class-validator';
3
+
4
+ export default class GatewayConfiguration
5
+ {
6
+ @IsNumber()
7
+ @IsOptional()
8
+ monitor?: number;
9
+ }
@@ -0,0 +1,15 @@
1
+
2
+ import { IsArray, IsUrl, IsOptional } from 'class-validator';
3
+
4
+ export default class NodeConfiguration
5
+ {
6
+ @IsUrl()
7
+ @IsOptional()
8
+ gateway?: string;
9
+
10
+ @IsUrl()
11
+ repository = '';
12
+
13
+ @IsArray()
14
+ segments?: string[];
15
+ }
@@ -0,0 +1,16 @@
1
+
2
+ import { IsUrl, IsOptional } from 'class-validator';
3
+
4
+ export default class ProxyConfiguration
5
+ {
6
+ @IsUrl()
7
+ @IsOptional()
8
+ node?: string;
9
+
10
+ @IsUrl()
11
+ @IsOptional()
12
+ gateway?: string;
13
+
14
+ @IsUrl()
15
+ repository?: string;
16
+ }
@@ -0,0 +1,17 @@
1
+
2
+ import { IsOptional, IsString } from 'class-validator';
3
+
4
+ export default class RepositoryConfiguration
5
+ {
6
+ @IsString()
7
+ @IsOptional()
8
+ source?: string;
9
+
10
+ @IsString()
11
+ @IsOptional()
12
+ cache?: string;
13
+
14
+ @IsString()
15
+ @IsOptional()
16
+ index?: string;
17
+ }
@@ -0,0 +1,30 @@
1
+
2
+ import { IsOptional, IsUrl } from 'class-validator';
3
+
4
+ import GatewayConfiguration from './GatewayConfiguration.js';
5
+ import NodeConfiguration from './NodeConfiguration.js';
6
+ import ProxyConfiguration from './ProxyConfiguration.js';
7
+ import RepositoryConfiguration from './RepositoryConfiguration.js';
8
+ import StandaloneConfiguration from './StandaloneConfiguration.js';
9
+
10
+ export default class RuntimeConfiguration
11
+ {
12
+ @IsUrl()
13
+ @IsOptional()
14
+ url?: string;
15
+
16
+ @IsOptional()
17
+ standalone?: StandaloneConfiguration;
18
+
19
+ @IsOptional()
20
+ repository?: RepositoryConfiguration;
21
+
22
+ @IsOptional()
23
+ gateway?: GatewayConfiguration;
24
+
25
+ @IsOptional()
26
+ node?: NodeConfiguration;
27
+
28
+ @IsOptional()
29
+ proxy?: ProxyConfiguration;
30
+ }
@@ -0,0 +1,14 @@
1
+
2
+ import { Contains, IsOptional, IsString } from 'class-validator';
3
+
4
+ export default class ServerOptions
5
+ {
6
+ @IsString()
7
+ @IsOptional()
8
+ loglevel = 'info';
9
+
10
+ @IsString()
11
+ @Contains('.json')
12
+ @IsOptional()
13
+ config = 'config.json';
14
+ }
@@ -0,0 +1,21 @@
1
+
2
+ import { IsArray, IsOptional, IsString } from 'class-validator';
3
+
4
+ export default class StandaloneConfiguration
5
+ {
6
+ @IsString()
7
+ @IsOptional()
8
+ source?: string;
9
+
10
+ @IsString()
11
+ @IsOptional()
12
+ cache?: string;
13
+
14
+ @IsString()
15
+ @IsOptional()
16
+ index?: string;
17
+
18
+ @IsArray()
19
+ @IsOptional()
20
+ segments?: string[];
21
+ }