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,424 +0,0 @@
1
-
2
- import Component from '../../core/types/Component.js';
3
- import Module from '../../core/types/Module.js';
4
- import * as AccessLevel from '../../core/definitions/AccessLevel.js';
5
- import Version from '../../core/Version.js';
6
-
7
- import FileManager from '../interfaces/FileManager.js';
8
- import ModuleLoader from '../utils/ModuleLoader.js';
9
- import ModuleAnalyser from '../utils/ModuleAnalyser.js';
10
-
11
- import SourceAppender from './SourceAppender.js';
12
- import ImportRewriter from './ImportRewriter.js';
13
- import RemoteBuilder from './RemoteBuilder.js';
14
-
15
- import SegmentFile from './types/SegmentFile.js';
16
- import SegmentImports from './types/SegmentImports.js';
17
-
18
- import ApplicationModule from './models/ApplicationModule.js';
19
- import Procedure from './models/Procedure.js';
20
- import Segment from './models/Segment.js';
21
- import SegmentModule from './models/SegmentModule.js';
22
- import Implementation from './models/Implementation.js';
23
-
24
- import SegmentFileNotLoaded from './errors/SegmentFileNotLoaded.js';
25
- import SegmentModuleNotLoaded from './errors/SegmentModuleNotLoaded.js';
26
- import MissingModuleExport from './errors/MissingModuleExport.js';
27
- import InvalidSegmentFilename from './errors/InvalidSegmentFilename.js';
28
-
29
- const IGNORED_SOURCE_FILES = ['.min.js'];
30
-
31
- const DEFAULT_ACCESS_LEVEL = AccessLevel.PRIVATE;
32
- const DEFAULT_VERSION_NUMBER = Version.DEFAULT.toString();
33
-
34
- export default class CacheBuilder
35
- {
36
- #sourceManager: FileManager;
37
- #cacheManager: FileManager;
38
-
39
- constructor(sourceManager: FileManager, cacheManager: FileManager)
40
- {
41
- this.#sourceManager = sourceManager;
42
- this.#cacheManager = cacheManager;
43
- }
44
-
45
- async build(segmentFiles: string[], moduleFiles: string[]): Promise<void>
46
- {
47
- const applicationFiles = this.#filterApplicationFiles(moduleFiles);
48
-
49
- const segments = await this.#createSegments(segmentFiles);
50
- const applicationModules = await this.#createApplicationModules(applicationFiles);
51
-
52
- await this.#buildSegmentCache(segments);
53
- await this.#buildApplicationCache(applicationModules);
54
- }
55
-
56
- #filterApplicationFiles(fileNames: string[]): string[]
57
- {
58
- return fileNames.filter(filename => this.#mustIgnoreFile(filename) === false);
59
- }
60
-
61
- #mustIgnoreFile(filename: string): boolean
62
- {
63
- return IGNORED_SOURCE_FILES.some((ignored) => filename.endsWith(ignored));
64
- }
65
-
66
- async #createSegments(filenames: string[]): Promise<Segment[]>
67
- {
68
- const promises = filenames.map(async (filename) => this.#createSegment(filename));
69
-
70
- return Promise.all(promises).then(segments => segments);
71
- }
72
-
73
- async #createSegment(filename: string): Promise<Segment>
74
- {
75
- const definition = await this.#loadSegmentDefinition(filename);
76
- const modules = await this.#createSegmentModules(definition);
77
- const procedures = this.#createSegmentProcedures(modules);
78
-
79
- return new Segment(filename, modules, procedures);
80
- }
81
-
82
- async #loadSegmentDefinition(filename: string): Promise<SegmentFile>
83
- {
84
- try
85
- {
86
- const content = await this.#sourceManager.getContent(filename);
87
-
88
- return JSON.parse(content.toString()) as SegmentFile;
89
- }
90
- catch (error: unknown)
91
- {
92
- throw new SegmentFileNotLoaded(filename);
93
- }
94
- }
95
-
96
- async #createSegmentModules(definition: SegmentFile): Promise<SegmentModule[]>
97
- {
98
- const modules: SegmentModule[] = [];
99
-
100
- for (const [moduleFilename, moduleImports] of Object.entries(definition))
101
- {
102
- const absoluteLocation = this.#sourceManager.getAbsoluteLocation(moduleFilename);
103
- const module = await this.#createSegmentModule(absoluteLocation, moduleImports);
104
-
105
- modules.push(module);
106
- }
107
-
108
- return modules;
109
- }
110
-
111
- async #createSegmentModule(absoluteLocation: string, imports: SegmentImports): Promise<SegmentModule>
112
- {
113
- const exports = await this.#loadSegmentModule(absoluteLocation);
114
- const implementations = await this.#createSegmentModuleImplementations(absoluteLocation, exports, imports);
115
-
116
- return new SegmentModule(absoluteLocation, exports, implementations);
117
- }
118
-
119
- async #loadSegmentModule(absoluteLocation: string): Promise<Module>
120
- {
121
- const module = await this.#loadModule(absoluteLocation);
122
-
123
- if (module === undefined)
124
- {
125
- throw new SegmentModuleNotLoaded(absoluteLocation);
126
- }
127
-
128
- return module;
129
- }
130
-
131
- async #createSegmentModuleImplementations(absoluteLocation: string, exports: Module, imports: SegmentImports): Promise<Map<string, Implementation>>
132
- {
133
- const moduleName = this.#extractModuleName(absoluteLocation);
134
- const implementations: Map<string, Implementation> = new Map();
135
-
136
- for (const [importKey, properties] of Object.entries(imports))
137
- {
138
- const executable = exports[importKey] as Component;
139
-
140
- if (executable === undefined)
141
- {
142
- throw new MissingModuleExport(moduleName, importKey);
143
- }
144
-
145
- const procedureName = properties.as ?? executable.name;
146
- const access = properties.access ?? DEFAULT_ACCESS_LEVEL;
147
- const version = properties.version ?? DEFAULT_VERSION_NUMBER;
148
-
149
- const implementation = new Implementation(moduleName, procedureName, access, version, executable);
150
-
151
- implementations.set(importKey, implementation);
152
- }
153
-
154
- return implementations;
155
- }
156
-
157
- #createSegmentProcedures(modules: SegmentModule[]): Map<string, Procedure>
158
- {
159
- const procedures = new Map<string, Procedure>();
160
-
161
- for (const module of modules)
162
- {
163
- for (const implementation of module.implementations.values())
164
- {
165
- let procedure = procedures.get(implementation.fqn);
166
-
167
- if (procedure === undefined)
168
- {
169
- procedure = new Procedure(implementation.module, implementation.name);
170
-
171
- procedures.set(implementation.fqn, procedure);
172
- }
173
-
174
- procedure.addImplementation(implementation);
175
- }
176
- }
177
-
178
- return procedures;
179
- }
180
-
181
- #extractModuleName(absoluteLocation: string): string
182
- {
183
- const relativeLocation = this.#sourceManager.getRelativeLocation(absoluteLocation);
184
-
185
- const moduleParts = relativeLocation.split('/');
186
- moduleParts.pop();
187
-
188
- return moduleParts.join('/');
189
- }
190
-
191
- async #createApplicationModules(filenames: string[]): Promise<ApplicationModule[]>
192
- {
193
- const promises = filenames.map(async (filename) => this.#createApplicationModule(filename));
194
-
195
- return Promise.all(promises).then(results => results);
196
- }
197
-
198
- async #createApplicationModule(filename: string): Promise<ApplicationModule>
199
- {
200
- const module = await this.#loadModule(filename);
201
- const relativeLocation = this.#sourceManager.getRelativeLocation(filename);
202
-
203
- if (module === undefined)
204
- {
205
- return new ApplicationModule(relativeLocation, new Map(), new Map());
206
- }
207
-
208
- const classes = ModuleAnalyser.filterClasses(module);
209
- const functions = ModuleAnalyser.filterFunctions(module);
210
-
211
- return new ApplicationModule(relativeLocation, classes, functions);
212
- }
213
-
214
- async #loadModule(filename: string): Promise<Module | undefined>
215
- {
216
- try
217
- {
218
- return await ModuleLoader.load(filename);
219
- }
220
- catch (error: unknown)
221
- {
222
- // If the module cannot load in this context it does not mean that the module is corrupted.
223
- // Therefore we can ignore the error and continue to let it work (or fail) at runtime.
224
-
225
- return undefined;
226
- }
227
- }
228
-
229
- async #buildSegmentCache(segments: Segment[]): Promise<void[]>
230
- {
231
- const promises = segments.map(async (segment) => this.#buildSegmentModuleCache(segment));
232
-
233
- return Promise.all(promises);
234
- }
235
-
236
- async #buildSegmentModuleCache(segment: Segment): Promise<void>
237
- {
238
- await this.#buildSegmentCacheForRepository(segment);
239
- await this.#buildSegmentCacheForNode(segment);
240
- }
241
-
242
- async #buildSegmentCacheForRepository(segment: Segment): Promise<void>
243
- {
244
- return this.#buildSegmentDefinitionForRepository(segment);
245
- }
246
-
247
- async #buildSegmentDefinitionForRepository(segment: Segment): Promise<void>
248
- {
249
- // For the repository we need to make a definition file that contains all segment filenames
250
- // used for building a lookup table (mapping source files to segments).
251
-
252
- const code = this.#createSegmentRepositoryCode(segment);
253
- const filename = this.#createSegmentRepositoryFilename(segment);
254
-
255
- return this.#cacheManager.store(filename, code);
256
- }
257
-
258
- #createSegmentRepositoryCode(segment: Segment): string
259
- {
260
- const filenames = segment.getFilenames();
261
- const relativeLocations = filenames.map(filename => this.#sourceManager.getRelativeLocation(filename));
262
-
263
- return `export const files = [\n\t"${[...relativeLocations].join('",\n\t"')}"\n];`;
264
- }
265
-
266
- #createSegmentRepositoryFilename(segment: Segment): string
267
- {
268
- const filename = this.#extractSegmentFilename(segment);
269
-
270
- return filename.replace('.json', '.repository.js');
271
- }
272
-
273
- async #buildSegmentCacheForNode(segment: Segment): Promise<void>
274
- {
275
- await this.#buildSegmentDefinitionForNode(segment);
276
- await this.#buildSegmentModulesForNode(segment);
277
- }
278
-
279
- async #buildSegmentDefinitionForNode(segment: Segment): Promise<void>
280
- {
281
- // For the node we need to make a definition file that imports all segment procedures
282
- // and exports them as a segment model containing the procedures with the meta-data.
283
-
284
- const code = this.#createSegmentNodeCode(segment);
285
- const filename = this.#createSegmentNodeFilename(segment);
286
-
287
- return this.#cacheManager.store(filename, code);
288
- }
289
-
290
- #createSegmentNodeCode(segment: Segment): string
291
- {
292
- const importCode = this.#createSegmentImportCode(segment);
293
- const modelCode = this.#createSegmentModelCode(segment);
294
-
295
- return `${importCode}\n\n${modelCode}`;
296
- }
297
-
298
- #createSegmentImportCode(segment: Segment): string
299
- {
300
- let codes: string[] = [];
301
-
302
- for (const module of segment.modules)
303
- {
304
- const relativeLocation = this.#sourceManager.getRelativeLocation(module.filename);
305
- const imports: string[] = [];
306
-
307
- for (const [importKey, implementation] of module.implementations)
308
- {
309
- imports.push(`${importKey} as \$${implementation.id}`);
310
- }
311
-
312
- codes.push(`import { ${imports.join(',')} } from "./${relativeLocation}";`);
313
- }
314
-
315
- return codes.join('\n');
316
- }
317
-
318
- #createSegmentModelCode(segment: Segment): string
319
- {
320
- const procedureCode: string[] = [];
321
-
322
- for (const procedure of segment.procedures.values())
323
- {
324
- const implementationCode: string[] = [];
325
-
326
- for (const implementation of procedure.implementations)
327
- {
328
- implementationCode.push(`{ access: "${implementation.access}", version: "${implementation.version}", executable: \$${implementation.id} }`);
329
- }
330
-
331
- procedureCode.push(`{ module: "${procedure.module}", name: "${procedure.name}", implementations: [\n\t\t${implementationCode.join(',\n\t\t')}\n\t]}`);
332
- }
333
-
334
- return `export const procedures = [\n\t${procedureCode.join(',\n\t')}\n];`;
335
- }
336
-
337
- async #buildSegmentModulesForNode(segment: Segment): Promise<void>
338
- {
339
- // For the node we need to create two new module files:
340
- // 1) A copy of the original module file with distribution safe imports.
341
- // 2) A remake of the original module file with remote implementations only.
342
-
343
- for (const module of segment.modules)
344
- {
345
- const filename = module.filename;
346
-
347
- const absoluteLocation = this.#sourceManager.getAbsoluteLocation(filename);
348
- const relativeLocation = this.#sourceManager.getRelativeLocation(filename);
349
-
350
- const file = await this.#sourceManager.load(absoluteLocation);
351
- const code = file.content.toString();
352
-
353
- await this.#buildSegmentModuleForLocal(code, relativeLocation);
354
- await this.#buildSegmentModuleForRemote(module, relativeLocation);
355
- }
356
- }
357
-
358
- async #buildSegmentModuleForLocal(code: string, location: string): Promise<void>
359
- {
360
- const importedCode = ImportRewriter.rewrite(code);
361
- const nodeLocation = location.replace('.js', '.local.js');
362
-
363
- return this.#cacheManager.store(nodeLocation, importedCode);
364
- }
365
-
366
- async #buildSegmentModuleForRemote(module: SegmentModule, location: string): Promise<void>
367
- {
368
- const remoteCode = RemoteBuilder.build(module);
369
- const remoteLocation = location.replace('.js', '.remote.js');
370
-
371
- return this.#cacheManager.store(remoteLocation, remoteCode);
372
- }
373
-
374
- #createSegmentNodeFilename(segment: Segment): string
375
- {
376
- const filename = this.#extractSegmentFilename(segment);
377
-
378
- return filename.replace('.json', '.local.js');
379
- }
380
-
381
- #extractSegmentFilename(segment: Segment): string
382
- {
383
- const filename = segment.filename.split('/').pop();
384
-
385
- if (filename === undefined)
386
- {
387
- throw new InvalidSegmentFilename(segment.filename);
388
- }
389
-
390
- return filename;
391
- }
392
-
393
- async #buildApplicationCache(applicationModules: ApplicationModule[]): Promise<void[]>
394
- {
395
- const promises = applicationModules.map(async (module) => this.#buildApplicationModuleCache(module));
396
-
397
- return Promise.all(promises);
398
- }
399
-
400
- async #buildApplicationModuleCache(module: ApplicationModule): Promise<void>
401
- {
402
- return this.#buildApplicationShareables(module);
403
- }
404
-
405
- async #buildApplicationShareables(module: ApplicationModule): Promise<void>
406
- {
407
- // Applications use class objects as shareables to share data between segments.
408
- // In order to make make this work we need to append their source (file) to the
409
- // class definition so that they can be (de)serialized.
410
-
411
- if (module.hasClasses() === false)
412
- {
413
- return;
414
- }
415
-
416
- const filename = module.filename;
417
- const file = await this.#sourceManager.load(filename);
418
- const code = file.content.toString();
419
-
420
- const sourcedCode = SourceAppender.append(module, code, filename);
421
-
422
- return this.#cacheManager.store(filename, sourcedCode);
423
- }
424
- }
@@ -1,76 +0,0 @@
1
-
2
- import * as Keywords from './definitions/Keywords.js';
3
-
4
- const IMPORT_PATTERN = /import(?:["'\s]*([\w*{}\n, ]+)from\s*)?["'\s]*([@\w/_-]+)["'\s].*/g;
5
- const NON_SYSTEM_INDICATORS = ['.', '/', 'http:', 'https:'];
6
-
7
- class Dependency
8
- {
9
- items: string;
10
- from: string;
11
-
12
- constructor(items: string, from: string)
13
- {
14
- this.items = items;
15
- this.from = from;
16
- }
17
- }
18
-
19
- export default class ImportRewriter
20
- {
21
- static rewrite(content: string): string
22
- {
23
- const replacer = (statement: string) => this.#replaceImport(statement);
24
- const newContent = content.replaceAll(IMPORT_PATTERN, replacer);
25
-
26
- return newContent !== content
27
- ? this.#insertGetDependency(newContent)
28
- : newContent;
29
- }
30
-
31
- static #replaceImport(statement: string): string
32
- {
33
- const dependency = this.#parseImport(statement);
34
-
35
- return this.#isSystemDependency(dependency)
36
- ? this.#rewriteImport(dependency)
37
- : statement;
38
- }
39
-
40
- static #parseImport(statement: string): Dependency
41
- {
42
- const hasSemicolon = statement.endsWith(';');
43
- const fromIndex = statement.indexOf('from');
44
- const endIndex = statement.length - (hasSemicolon ? 1 : 0);
45
-
46
- const items = statement.substring(6, fromIndex).trim();
47
- const from = statement.substring(fromIndex + 4, endIndex).trim().slice(1, -1);
48
-
49
- return new Dependency(items, from);
50
- }
51
-
52
- static #isSystemDependency(dependency: Dependency): boolean
53
- {
54
- return NON_SYSTEM_INDICATORS.some(indicator => dependency.from.startsWith(indicator)) === false;
55
- }
56
-
57
- static #isJitarDependency(dependency: Dependency): boolean
58
- {
59
- return dependency.from === Keywords.JITAR;
60
- }
61
-
62
- static #rewriteImport(dependency: Dependency): string
63
- {
64
- if (this.#isJitarDependency(dependency))
65
- {
66
- return `import ${dependency.items} from "/jitar/hooks.js";`;
67
- }
68
-
69
- return `const ${dependency.items} = await getDependency('${dependency.from}');`;
70
- }
71
-
72
- static #insertGetDependency(module: string): string
73
- {
74
- return `import { getDependency } from "/jitar/hooks.js";\n${module}`;
75
- }
76
- }
@@ -1,51 +0,0 @@
1
-
2
- import * as AccessLevel from '../../core/definitions/AccessLevel.js';
3
- import ReflectionHelper from '../../core/reflection/ReflectionHelper.js';
4
-
5
- import Implementation from './models/Implementation.js';
6
- import SegmentModule from './models/SegmentModule.js';
7
- import * as Keywords from './definitions/Keywords.js';
8
-
9
- export default class RemoteBuilder
10
- {
11
- static build(module: SegmentModule): string
12
- {
13
- let code = this.#createRemoteImports();
14
-
15
- for (const [importKey, implementation] of module.implementations)
16
- {
17
- if (implementation.access !== AccessLevel.PUBLIC)
18
- {
19
- continue;
20
- }
21
-
22
- const asDefault = importKey === Keywords.DEFAULT;
23
-
24
- code += this.#createRemoteCode(implementation, asDefault);
25
- }
26
-
27
- return code;
28
- }
29
-
30
- static #createRemoteImports(): string
31
- {
32
- return `import { runProcedure } from "/jitar/hooks.js";\n`;
33
- }
34
-
35
- static #createRemoteCode(implementation: Implementation, asDefault: boolean): string
36
- {
37
- const parameters = ReflectionHelper.getFunctionParameters(implementation.executable as Function);
38
- const parameterNames = parameters.map(parameter => parameter.name);
39
-
40
- const procedureName = implementation.executable.name;
41
- const procedureFqn = implementation.fqn;
42
- const procedureVersion = implementation.version;
43
- const procedueParameters = parameterNames.join(', ');
44
- const procedureArguments = parameterNames.map(name => `'${name}': ${name}`).join(', ');
45
-
46
- const functionName = `\nexport ${asDefault ? `${Keywords.DEFAULT} ` : ''}async function ${procedureName}(${procedueParameters})`;
47
- const functionBody = `return runProcedure('${procedureFqn}', '${procedureVersion}', { ${procedureArguments} })`;
48
-
49
- return `${functionName} {\n\t${functionBody}\n}\n`;
50
- }
51
- }
@@ -1,57 +0,0 @@
1
-
2
- import ApplicationModule from './models/ApplicationModule.js';
3
- import * as Keywords from './definitions/Keywords.js';
4
-
5
- export default class SourceAppender
6
- {
7
- static append(module: ApplicationModule, code: string, filename: string): string
8
- {
9
- const classNames = this.#extractClassNames(module);
10
-
11
- if (classNames.length === 0)
12
- {
13
- return code;
14
- }
15
-
16
- const sourceCode = this.#createSourceCode(filename, classNames);
17
-
18
- return `${code}\n${sourceCode}`;
19
- }
20
-
21
- static #extractClassNames(module: ApplicationModule): string[]
22
- {
23
- const classes = module.classes;
24
- const names: string[] = [];
25
-
26
- for (const key of classes.keys())
27
- {
28
- const clazz = classes.get(key) as Function;
29
-
30
- if (clazz.name === '')
31
- {
32
- // The exported object does not have a name,
33
- // so we can't add the source properties.
34
- continue;
35
- }
36
-
37
- if (key !== Keywords.DEFAULT && key !== clazz.name)
38
- {
39
- // The object is being (re) exported under another name.
40
- // We need to skip this because we can't be sure the real
41
- // object is present in the module.
42
- continue;
43
- }
44
-
45
- names.push(clazz.name);
46
- }
47
-
48
- return names;
49
- }
50
-
51
- static #createSourceCode(filename: string, classNames: string[]): string
52
- {
53
- const codes = classNames.map(className => `${className}.source = '${filename}';`);
54
-
55
- return codes.join('\n');
56
- }
57
- }
@@ -1,3 +0,0 @@
1
-
2
- export const DEFAULT = 'default';
3
- export const JITAR = 'jitar';
@@ -1,8 +0,0 @@
1
-
2
- export default class InvalidSegmentFilename extends Error
3
- {
4
- constructor(filename: string)
5
- {
6
- super(`Segment filename '${filename}' is invalid`);
7
- }
8
- }
@@ -1,8 +0,0 @@
1
-
2
- export default class MissingModuleExport extends Error
3
- {
4
- constructor(filename: string, key: string)
5
- {
6
- super(`Module '${filename}' does not export '${key}'`);
7
- }
8
- }
@@ -1,8 +0,0 @@
1
-
2
- export default class SegmentFileNotLoaded extends Error
3
- {
4
- constructor(filename: string)
5
- {
6
- super(`Failed to load segment file '${filename}'`);
7
- }
8
- }
@@ -1,8 +0,0 @@
1
-
2
- export default class SegmentModuleNotLoaded extends Error
3
- {
4
- constructor(filename: string)
5
- {
6
- super(`Segment module could not be loaded from '${filename}'`);
7
- }
8
- }
@@ -1,30 +0,0 @@
1
-
2
- export default class ApplicationModule
3
- {
4
- #filename: string;
5
- #classes: Map<string, Function>;
6
- #functions: Map<string, Function>;
7
-
8
- constructor(filename: string, classes: Map<string, Function>, functions: Map<string, Function>)
9
- {
10
- this.#filename = filename;
11
- this.#classes = classes;
12
- this.#functions = functions;
13
- }
14
-
15
- get filename() { return this.#filename; }
16
-
17
- get classes() { return this.#classes; }
18
-
19
- get functions() { return this.#functions; }
20
-
21
- hasClasses()
22
- {
23
- return this.#classes.size > 0;
24
- }
25
-
26
- hasFunctions()
27
- {
28
- return this.#functions.size > 0;
29
- }
30
- }