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,81 +0,0 @@
1
-
2
- const noSystemImports =
3
- `import './path/to/file.js';
4
- import component from '/path/to/component.js;';
5
- import { component1, component2 } from '../path/to/components.js';
6
- `;
7
-
8
- const noSystemImportsResult = noSystemImports;
9
-
10
- const hasSystemImports =
11
- `import fs from 'fs';
12
- import component from 'http';
13
- import { component1, component2 } from 'https';
14
- `;
15
-
16
- const hasSystemImportsResult =
17
- `import { getDependency } from "/jitar/hooks.js";
18
- const fs = await getDependency('fs');
19
- const component = await getDependency('http');
20
- const { component1, component2 } = await getDependency('https');
21
- `;
22
-
23
- const hasJitarImports = `import { runProcedure } from 'jitar';`;
24
-
25
- const hasJitarImportsResult =
26
- `import { getDependency } from "/jitar/hooks.js";
27
- import { runProcedure } from "/jitar/hooks.js";`;
28
-
29
- const hasImportsNoSemicolon = `import { runProcedure } from 'jitar'`;
30
-
31
- const hasImportsResultNoSemicolon =
32
- `import { getDependency } from "/jitar/hooks.js";
33
- import { runProcedure } from "/jitar/hooks.js";`;
34
-
35
- const hasMixedImports =
36
- `import component from './path/to/component.js';
37
- import os from 'os';
38
- import { runProcedure } from 'jitar';
39
- `;
40
-
41
- const hasMixedImportsResult =
42
- `import { getDependency } from "/jitar/hooks.js";
43
- import component from './path/to/component.js';
44
- const os = await getDependency('os');
45
- import { runProcedure } from "/jitar/hooks.js";
46
- `;
47
-
48
- const hasDynamicImports =
49
- `import component from './path/to/component.js';
50
- const os = await import('os');
51
- `;
52
-
53
- const hasDynamicImportsResult = hasDynamicImports;
54
-
55
- const hasImportsAndContent =
56
- `import os from 'os';
57
-
58
- export default function test() {}
59
-
60
- import { runProcedure } from 'jitar';
61
- `;
62
-
63
- const hasImportsAndContentResult =
64
- `import { getDependency } from "/jitar/hooks.js";
65
- const os = await getDependency('os');
66
-
67
- export default function test() {}
68
-
69
- import { runProcedure } from "/jitar/hooks.js";
70
- `;
71
-
72
- export
73
- {
74
- noSystemImports, noSystemImportsResult,
75
- hasSystemImports, hasSystemImportsResult,
76
- hasJitarImports, hasJitarImportsResult,
77
- hasImportsNoSemicolon, hasImportsResultNoSemicolon,
78
- hasMixedImports, hasMixedImportsResult,
79
- hasDynamicImports, hasDynamicImportsResult,
80
- hasImportsAndContent, hasImportsAndContentResult
81
- }
@@ -1,50 +0,0 @@
1
-
2
- import FlexObject from '../../../../src/core/types/FlexObject';
3
- import Implementation from '../../../../src/runtime/caching/models/Implementation';
4
- import SegmentModule from '../../../../src/runtime/caching/models/SegmentModule';
5
-
6
- function defaultFunction(): string
7
- {
8
- return 'default';
9
- }
10
-
11
- function anotherFunction(a: string, b: string): string
12
- {
13
- return a + b;
14
- }
15
-
16
- function privateFunction(): string
17
- {
18
- return 'private';
19
- }
20
-
21
- const functions: FlexObject =
22
- {
23
- default: defaultFunction,
24
- anotherFunction
25
- }
26
-
27
- const implementations: Map<string, Implementation> = new Map();
28
- implementations.set('default', new Implementation('', 'defaultFunction', 'public', '0.0.0', defaultFunction));
29
- implementations.set('anotherFunction', new Implementation('', 'anotherFunction', 'public', '1.0.0', anotherFunction));
30
- implementations.set('privateFunction', new Implementation('', 'privateFunction', 'private', '1.0.0', privateFunction));
31
-
32
- const segmentModule = new SegmentModule('app/module.js', functions, implementations);
33
-
34
- const codeResult =
35
- `import { runProcedure } from "/jitar/hooks.js";
36
-
37
- export default async function defaultFunction() {
38
- \treturn runProcedure('defaultFunction', '0.0.0', { })
39
- }
40
-
41
- export async function anotherFunction(a, b) {
42
- \treturn runProcedure('anotherFunction', '1.0.0', { 'a': a, 'b': b })
43
- }
44
- `;
45
-
46
- export
47
- {
48
- segmentModule,
49
- codeResult
50
- }
@@ -1,35 +0,0 @@
1
-
2
- import ApplicationModule from '../../../../src/runtime/caching/models/ApplicationModule';
3
-
4
- class AClass {}
5
- class BClass {}
6
- class CClass {}
7
- class DClass {}
8
-
9
- const classes: Map<string, Function> = new Map();
10
- classes.set('AClass', AClass);
11
- classes.set('BClass', BClass);
12
- classes.set('AliasClass', CClass); // Aliasses should be ignored
13
- classes.set('AnonymousClass', class {}) // Anonymous classes should be ignored
14
- classes.set('default', DClass); // Defaults should be accepted
15
-
16
- const applicationModule = new ApplicationModule('app/module.js', classes, new Map());
17
- const filecode = '/* code */';
18
- const filename = 'app/core/classes.js';
19
-
20
- const codeResult =
21
- `/* code */
22
- AClass.source = 'app/core/classes.js';
23
- BClass.source = 'app/core/classes.js';
24
- DClass.source = 'app/core/classes.js';`;
25
-
26
- const emptyModule = new ApplicationModule('app/module.js', new Map(), new Map());
27
-
28
- export
29
- {
30
- applicationModule,
31
- emptyModule,
32
- filecode,
33
- filename,
34
- codeResult
35
- }
@@ -1,78 +0,0 @@
1
-
2
- import Procedure from '../../../src/core/Procedure';
3
- import * as AccessLevel from '../../../src/core/definitions/AccessLevel';
4
- import Implementation from '../../../src/core/Implementation';
5
- import Version from '../../../src/core/Version';
6
- import Segment from '../../../src/core/Segment';
7
-
8
- import { runProcedure } from '../../../src/hooks';
9
-
10
- function firstPrivateTask()
11
- {
12
- return 'first';
13
- }
14
-
15
- // Runs a private task on the same segment
16
- function firstPublicTask()
17
- {
18
- return runProcedure('my/module/firstPrivateTask', '0.0.0', new Map());
19
- }
20
-
21
- // Runs a public task on another segment
22
- function thirdPublicTask()
23
- {
24
- return runProcedure('my/module/fourthPublicTask', '0.0.0', new Map());
25
- }
26
-
27
- function fourthPublicTask()
28
- {
29
- return 'fourth';
30
- }
31
-
32
- function secondPrivateTask()
33
- {
34
- return 'second';
35
- }
36
-
37
- // Runs a private task on another segment
38
- function secondPublicTask()
39
- {
40
- return runProcedure('my/module/firstPrivateTask', '0.0.0', new Map());
41
- }
42
-
43
- const firstImplementation = new Implementation(Version.DEFAULT, AccessLevel.PRIVATE, [], firstPrivateTask);
44
- const secondImplementation = new Implementation(Version.DEFAULT, AccessLevel.PUBLIC, [], firstPublicTask);
45
- const thirdImplementation = new Implementation(Version.DEFAULT, AccessLevel.PUBLIC, [], thirdPublicTask);
46
- const fourthImplementation = new Implementation(Version.DEFAULT, AccessLevel.PUBLIC, [], fourthPublicTask);
47
- const fifthImplementation = new Implementation(Version.DEFAULT, AccessLevel.PRIVATE, [], secondPrivateTask);
48
- const sixthImplementation = new Implementation(Version.DEFAULT, AccessLevel.PUBLIC, [], secondPublicTask);
49
-
50
- const firstProcedure = new Procedure('my/module', 'firstPrivateTask');
51
- firstProcedure.addImplementation(firstImplementation);
52
-
53
- const secondProcedure = new Procedure('my/module', 'firstPublicTask');
54
- secondProcedure.addImplementation(secondImplementation);
55
-
56
- const thirdProcedure = new Procedure('my/module', 'thirdPublicTask');
57
- thirdProcedure.addImplementation(thirdImplementation);
58
-
59
- const fourthProcedure = new Procedure('my/module', 'fourthPublicTask');
60
- fourthProcedure.addImplementation(fourthImplementation);
61
-
62
- const fifthProcedure = new Procedure('my/module', 'secondPrivateTask');
63
- fifthProcedure.addImplementation(fifthImplementation);
64
-
65
- const sixthProcedure = new Procedure('my/module', 'secondPublicTask');
66
- sixthProcedure.addImplementation(sixthImplementation);
67
-
68
- const firstSegment = new Segment('first');
69
- firstSegment.addProcedure(firstProcedure);
70
- firstSegment.addProcedure(secondProcedure);
71
- firstSegment.addProcedure(thirdProcedure);
72
-
73
- const secondSegment = new Segment('second');
74
- secondSegment.addProcedure(fourthProcedure);
75
- secondSegment.addProcedure(fifthProcedure);
76
- secondSegment.addProcedure(sixthProcedure);
77
-
78
- export { firstSegment, secondSegment }
@@ -1,134 +0,0 @@
1
-
2
- import Component from "../../../../src/core/types/Component";
3
-
4
- const IMPORT_URL = '../../../test/_fixtures/runtime/serialization/ValueSerializer.fixture';
5
-
6
- export class Data
7
- {
8
- a?: number;
9
- b?: boolean;
10
- }
11
-
12
- (Data as Component).source = IMPORT_URL;
13
-
14
- export class Constructed
15
- {
16
- #a: number;
17
- #b: boolean;
18
- #c?: string;
19
-
20
- constructor(a: number, b: boolean)
21
- {
22
- this.#a = a;
23
- this.#b = b;
24
- }
25
-
26
- get a() { return this.#a; }
27
-
28
- get b() { return this.#b; }
29
-
30
- get c() { return this.#c; }
31
-
32
- set c(c) { this.#c = c; }
33
- }
34
-
35
- (Constructed as Component).source = IMPORT_URL;
36
-
37
- export class Nested
38
- {
39
- name: string;
40
- #constructed: Constructed;
41
-
42
- constructor(name: string, constructed: Constructed)
43
- {
44
- this.name = name;
45
- this.#constructed = constructed;
46
- }
47
-
48
- get constructed() { return this.#constructed; }
49
- }
50
-
51
- (Nested as Component).source = IMPORT_URL;
52
-
53
- export class PrivateFieldClass
54
- {
55
- #a: number;
56
- #b: boolean;
57
- c?: string;
58
-
59
- constructor(a: number, b: boolean)
60
- {
61
- this.#a = a;
62
- this.#b = b;
63
- }
64
-
65
- get d() { return this.#a; }
66
- }
67
-
68
- (PrivateFieldClass as Component).source = IMPORT_URL;
69
-
70
- const errorClass = new Error('hello');
71
- errorClass.stack = 'stacktrace';
72
-
73
- const numberValue = 1;
74
- const boolValue = true;
75
- const stringValue = 'hello';
76
- const nullValue = null;
77
- const undefinedValue = undefined;
78
-
79
- const emptyArray: unknown[] = [];
80
- const mixedArray: unknown[] = ['a', 1, true];
81
- const nestedArray: unknown[] = ['b', 2, ['c', false], true];
82
-
83
- const emptyObject: unknown = {};
84
- const mixedObject: unknown = { a: 1, b: true, c: 'hello' };
85
- const nestedObject: unknown = { a: 1, b: true, c: { d: false, e: true } };
86
-
87
- const emptyMap: Map<unknown, unknown> = new Map();
88
- const mixedMap: Map<unknown, unknown> = new Map().set('a', 1).set('b', true);
89
- const nestedMap: Map<unknown, unknown> = new Map().set('b', 'hello').set('c', new Map().set('d', false));
90
-
91
- const serializedEmptyMap = { serialized: true, name: 'Map', entries: { keys: [], values: [] } };
92
- const serializedMixedMap = { serialized: true, name: 'Map', entries: { keys: ['a', 'b'], values: [1, true] } }
93
- const serializedNestedMap = { serialized: true, name: 'Map', entries: { keys: ['b', 'c'], values: ['hello', { serialized: true, name: 'Map', entries: { keys: ['d'], values: [false] } }] } }
94
-
95
- const emptySet: Set<unknown> = new Set();
96
- const mixedSet: Set<unknown> = new Set().add(1).add(true);
97
- const nestedSet: Set<unknown> = new Set().add('hello').add(new Set().add(false));
98
-
99
- const serializedEmptySet = { serialized: true, name: 'Set', values: [] };
100
- const serializedMixedSet = { serialized: true, name: 'Set', values: [1, true] };
101
- const serializedNestedSet = { serialized: true, name: 'Set', values: ['hello', { serialized: true, name: 'Set', values: [false] }] };
102
-
103
- const serializedError = { serialized: true, name: 'Error', source: null, args: [], fields: { stack: 'stacktrace', message: 'hello' } };
104
-
105
- const dataClass = new Data();
106
- dataClass.a = 1;
107
- dataClass.b = true;
108
-
109
- const constructedClass = new Constructed(1, true);
110
- constructedClass.c = 'hello';
111
-
112
- const nestedClass = new Nested('hello', constructedClass);
113
- const privateClass = new PrivateFieldClass(1, true);
114
-
115
- const serializedDataClass = { serialized: true, name: 'Data', source: IMPORT_URL, args: [], fields: { a: 1, b: true } };
116
- const serializedConstructedClass = { serialized: true, name: 'Constructed', source: IMPORT_URL, args: [1, true], fields: { c: 'hello' } };
117
- const serializedNestedClass = { serialized: true, name: 'Nested', source: IMPORT_URL, args: ['hello', { serialized: true, name: 'Constructed', source: IMPORT_URL, args: [1, true], fields: { c: 'hello' } }], fields: {} };
118
- const serializedPrivateClass = { serialized: true, name: 'PrivateFieldClass', source: IMPORT_URL, args: [], fields: { c: undefined } };
119
-
120
- const serializedInvalidClass = { serialized: true, name: 'Invalid', source: null, args: [], fields: {} };
121
- const serializedUnserializableClass = { serialized: true, name: 'Infinity', source: null, args: [], fields: {} };
122
-
123
- export
124
- {
125
- numberValue, boolValue, stringValue, nullValue, undefinedValue,
126
- emptyArray, mixedArray, nestedArray,
127
- emptyObject, mixedObject, nestedObject,
128
- emptyMap, mixedMap, nestedMap, serializedEmptyMap, serializedMixedMap, serializedNestedMap,
129
- emptySet, mixedSet, nestedSet, serializedEmptySet, serializedMixedSet, serializedNestedSet,
130
- dataClass, constructedClass, nestedClass, serializedDataClass, serializedConstructedClass, serializedNestedClass,
131
- serializedInvalidClass, serializedUnserializableClass,
132
- privateClass, serializedPrivateClass,
133
- errorClass, serializedError
134
- }
@@ -1,26 +0,0 @@
1
-
2
- import Module from '../../../../src/core/types/Module';
3
-
4
- const string = 'Hello World';
5
-
6
- const pojo = { a: 10, b: 20 }
7
-
8
- function realFunction(a: number, b: number): number
9
- {
10
- return a + b;
11
- }
12
-
13
- class realClass {}
14
-
15
- const theModule: Module = {};
16
- theModule.string = string;
17
- theModule.pojo = pojo;
18
- theModule.realFunction = realFunction;
19
- theModule.realClass = realClass;
20
-
21
- export {
22
- theModule,
23
- pojo,
24
- realFunction,
25
- realClass
26
- }
@@ -1,89 +0,0 @@
1
-
2
- import MissingParameterValue from '../../src/core/errors/MissingParameterValue';
3
-
4
- import
5
- {
6
- privateImplementation,
7
- publicImplementation,
8
- parameterImplementation
9
- } from '../_fixtures/core/Implementation.fixture';
10
-
11
- describe('core/Implementation', () =>
12
- {
13
- describe('.version', () =>
14
- {
15
- it('should have a version', () =>
16
- {
17
- expect(privateImplementation.version.toString()).toBe('0.0.0');
18
- });
19
- });
20
-
21
- describe('.public', () =>
22
- {
23
- it('should be private', () =>
24
- {
25
- expect(privateImplementation.public).toBe(false);
26
- });
27
-
28
- it('should be public', () =>
29
- {
30
- expect(publicImplementation.public).toBe(true);
31
- });
32
- });
33
-
34
- describe('.parameters', () =>
35
- {
36
- it('should have no parameters', () =>
37
- {
38
- const parameters = publicImplementation.parameters;
39
-
40
- expect(parameters.length).toBe(0);
41
- });
42
-
43
- it('should have parameters', () =>
44
- {
45
- const parameters = parameterImplementation.parameters;
46
-
47
- expect(parameters.length).toBe(2);
48
-
49
- expect(parameters[0].name).toBe('mandatory');
50
- expect(parameters[0].isOptional).toBe(false);
51
-
52
- expect(parameters[1].name).toBe('optional');
53
- expect(parameters[1].isOptional).toBe(true);
54
- });
55
- });
56
-
57
- describe('.run(name, version, args)', () =>
58
- {
59
- it('should run a procedure without parameters', async () =>
60
- {
61
- const result = await publicImplementation.run(new Map());
62
-
63
- expect(result).toBe('public');
64
- });
65
-
66
- it('should run a procedure with parameter values', async () =>
67
- {
68
- const args = new Map().set('mandatory', 'mandatory').set('optional', 'optional');
69
- const result = await parameterImplementation.run(args);
70
-
71
- expect(result).toBe('mandatory optional');
72
- });
73
-
74
- it('should run a procedure without an optional parameter value', async () =>
75
- {
76
- const args = new Map().set('mandatory', 'mandatory');
77
- const result = await parameterImplementation.run(args);
78
-
79
- expect(result).toBe('mandatory default');
80
- });
81
-
82
- it('should not run a procedure without a mandatory parameter value', async () =>
83
- {
84
- const run = async () => await parameterImplementation.run(new Map());
85
-
86
- expect(run).rejects.toEqual(new MissingParameterValue('mandatory'));
87
- });
88
- });
89
- });
@@ -1,108 +0,0 @@
1
-
2
- import Version from '../../src/core/Version';
3
- import ImplementationNotFound from '../../src/core/errors/ImplementationNotFound';
4
-
5
- import
6
- {
7
- rootProcedure,
8
- moduleProcedure,
9
- privateProcedure
10
- } from '../_fixtures/core/Procedure.fixture';
11
-
12
- describe('core/Procedure', () =>
13
- {
14
- describe('.module', () =>
15
- {
16
- it('should have an empty module', () =>
17
- {
18
- expect(rootProcedure.module).toBe('');
19
- });
20
-
21
- it('should have a defined module', () =>
22
- {
23
- expect(moduleProcedure.module).toBe('my/module');
24
- });
25
- });
26
-
27
- describe('.name', () =>
28
- {
29
- it('should have the defined name', () =>
30
- {
31
- expect(rootProcedure.name).toBe('myRootProcedure');
32
- expect(moduleProcedure.name).toBe('myModuleProcedure');
33
- });
34
- });
35
-
36
- describe('.fqn', () =>
37
- {
38
- it('should have its name only when no module is defined', () =>
39
- {
40
- expect(rootProcedure.fqn).toBe('myRootProcedure');
41
- });
42
-
43
- it('should have a combination of module and name when a module is defined', () =>
44
- {
45
- expect(moduleProcedure.fqn).toBe('my/module/myModuleProcedure');
46
- });
47
- });
48
-
49
- describe('.public', () =>
50
- {
51
- it('should have public implementations', () =>
52
- {
53
- expect(rootProcedure.public).toBeTruthy();
54
- });
55
-
56
- it('should not have public implementations', () =>
57
- {
58
- expect(privateProcedure.public).toBeFalsy();
59
- });
60
- });
61
-
62
- describe('.getImplementation(version)', () =>
63
- {
64
- it('should not get a lower implementation version than the lowest registered version', () =>
65
- {
66
- const implementation = rootProcedure.getImplementation(new Version(0, 0, 1));
67
-
68
- expect(implementation).toBeUndefined();
69
- });
70
-
71
- it('should get an exact version of an implementation', () =>
72
- {
73
- const implementation = rootProcedure.getImplementation(new Version(1, 0, 0));
74
-
75
- expect(implementation).not.toBeUndefined();
76
- expect(implementation?.version.toString()).toBe('1.0.0');
77
- });
78
-
79
- it('should get a lower version of an implementation if no exact version is found', () =>
80
- {
81
- const implementation = rootProcedure.getImplementation(new Version(1, 0, 3));
82
-
83
- expect(implementation).not.toBeNull();
84
- expect(implementation?.version.toString()).toBe('1.0.0');
85
- });
86
- });
87
-
88
- describe('.run(name, version)', () =>
89
- {
90
- it('should run a procedure', async () =>
91
- {
92
- const v1_0_0 = await rootProcedure.run(new Version(1, 0, 0), new Map());
93
- const v1_0_5 = await rootProcedure.run(new Version(1, 0, 5), new Map());
94
- const v1_1_0 = await rootProcedure.run(new Version(1, 1, 0), new Map());
95
-
96
- expect(v1_0_0).toBe('1.0.0');
97
- expect(v1_0_5).toBe('1.0.5');
98
- expect(v1_1_0).toBe('1.1.0');
99
- });
100
-
101
- it('throw a implementation not found error', async () =>
102
- {
103
- const run = async () => await rootProcedure.run(new Version(0, 0, 1), new Map());
104
-
105
- expect(run).rejects.toEqual(new ImplementationNotFound('myRootProcedure', '0.0.1'));
106
- });
107
- });
108
- });
@@ -1,74 +0,0 @@
1
-
2
- import ProcedureNotFound from '../../src/core/errors/ProcedureNotFound';
3
- import Version from '../../src/core/Version';
4
-
5
- import { segment } from '../_fixtures/core/Segment.fixture';
6
-
7
- describe('core/Segment', () =>
8
- {
9
- describe('.hasProcedure', () =>
10
- {
11
- it('should have a public procedure', async () =>
12
- {
13
- const hasProcedure = segment.hasProcedure('getPublic');
14
-
15
- expect(hasProcedure).toBeTruthy();
16
- });
17
-
18
- it('should have a private procedure', async () =>
19
- {
20
- const hasProcedure = segment.hasProcedure('getPrivate');
21
-
22
- expect(hasProcedure).toBeTruthy();
23
- });
24
-
25
- it('should have modulerized procedures', async () =>
26
- {
27
- const hasProcedure = segment.hasProcedure('my/module/getModule');
28
-
29
- expect(hasProcedure).toBeTruthy();
30
- });
31
- });
32
-
33
- describe('.getPublicProcedures()', () =>
34
- {
35
- it('should return public procedures only', async () =>
36
- {
37
- const procedures = segment.getPublicProcedures();
38
-
39
- expect(procedures.length).toBe(1);
40
- expect(procedures[0].fqn).toBe('getPublic');
41
- });
42
- });
43
-
44
- describe('.run(name, version, args)', () =>
45
- {
46
- it('should run a public procedure', async () =>
47
- {
48
- const result = await segment.run('getPublic', Version.DEFAULT, new Map());
49
-
50
- expect(result).toBe('public');
51
- });
52
-
53
- it('should run a private procedure', async () =>
54
- {
55
- const result = await segment.run('getPrivate', Version.DEFAULT, new Map());
56
-
57
- expect(result).toBe('private');
58
- });
59
-
60
- it('should not run a non-existing procedure', async () =>
61
- {
62
- const run = async () => await segment.run('noImplementation', Version.DEFAULT, new Map());
63
-
64
- expect(run).rejects.toEqual(new ProcedureNotFound('noImplementation'));
65
- });
66
-
67
- it('should not run a broken procedure', async () =>
68
- {
69
- const run = async () => await segment.run('throwError', Version.DEFAULT, new Map());
70
-
71
- expect(run).rejects.toEqual(new Error('broken\n[throwError | v0.0.0]'));
72
- });
73
- });
74
- });