@nosana/node 1.0.1 → 1.0.3-rc

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 (383) hide show
  1. package/dist/package.json +102 -0
  2. package/dist/{NodeManager → src/NodeManager}/node/Node.js +1 -1
  3. package/dist/{NodeManager → src/NodeManager}/node/api/routes/post/node-validation.js +10 -6
  4. package/dist/{NodeManager → src/NodeManager}/node/job/jobHandler.js +9 -0
  5. package/dist/{NodeManager → src/NodeManager}/provider/Provider.d.ts +2 -1
  6. package/dist/{NodeManager → src/NodeManager}/provider/Provider.js +4 -0
  7. package/dist/{NodeManager → src/NodeManager}/provider/containerOrchestration/docker/createDockerRunOptions.d.ts +1 -1
  8. package/dist/{NodeManager → src/NodeManager}/provider/containerOrchestration/docker/createDockerRunOptions.js +2 -1
  9. package/dist/{NodeManager → src/NodeManager}/provider/containerOrchestration/docker/index.d.ts +4 -2
  10. package/dist/{NodeManager → src/NodeManager}/provider/containerOrchestration/docker/index.js +16 -9
  11. package/dist/{NodeManager → src/NodeManager}/provider/containerOrchestration/interface.d.ts +3 -1
  12. package/dist/{NodeManager → src/NodeManager}/provider/containerOrchestration/podman/index.d.ts +2 -2
  13. package/dist/{NodeManager → src/NodeManager}/provider/containerOrchestration/podman/index.js +2 -5
  14. package/dist/{NodeManager → src/NodeManager}/provider/containerOrchestration/selectContainerOrchestration.d.ts +1 -1
  15. package/dist/src/NodeManager/provider/containerOrchestration/selectContainerOrchestration.js +14 -0
  16. package/dist/{cli → src/cli}/commands/prune/action.js +1 -1
  17. package/dist/{cli → src/cli}/commands/run/action.js +1 -1
  18. package/dist/src/cli/commands/sharedOptions/--tee-runtime.d.ts +2 -0
  19. package/dist/src/cli/commands/sharedOptions/--tee-runtime.js +5 -0
  20. package/dist/{cli → src/cli}/commands/sharedOptions/index.d.ts +1 -0
  21. package/dist/{cli → src/cli}/commands/sharedOptions/index.js +1 -0
  22. package/dist/{cli → src/cli}/commands/start/command.js +2 -1
  23. package/dist/{index.d.ts → src/index.d.ts} +1 -1
  24. package/dist/src/static/specs-and-network-job.json +52 -0
  25. package/npm-shrinkwrap.json +6 -6
  26. package/package.json +2 -2
  27. package/dist/NodeManager/configs/__tests__/NodeConfigs.spec.d.ts +0 -1
  28. package/dist/NodeManager/configs/__tests__/NodeConfigs.spec.js +0 -161
  29. package/dist/NodeManager/db/__tests__/index.spec.d.ts +0 -1
  30. package/dist/NodeManager/db/__tests__/index.spec.js +0 -65
  31. package/dist/NodeManager/provider/__tests__/Provider.spec.d.ts +0 -1
  32. package/dist/NodeManager/provider/__tests__/Provider.spec.js +0 -337
  33. package/dist/NodeManager/provider/containerOrchestration/selectContainerOrchestration.js +0 -11
  34. package/dist/cli/commands/address/__tests__/command.spec.d.ts +0 -1
  35. package/dist/cli/commands/address/__tests__/command.spec.js +0 -33
  36. package/dist/cli/commands/run/__tests__/command.spec.d.ts +0 -1
  37. package/dist/cli/commands/run/__tests__/command.spec.js +0 -37
  38. package/dist/cli/commands/start/__tests__/command.spec.d.ts +0 -1
  39. package/dist/cli/commands/start/__tests__/command.spec.js +0 -38
  40. package/dist/output-formatter/__mocks__/outputEvents.mock.d.ts +0 -42
  41. package/dist/output-formatter/__mocks__/outputEvents.mock.js +0 -45
  42. package/dist/output-formatter/__mocks__/outputFormatter.mock.d.ts +0 -0
  43. package/dist/output-formatter/__mocks__/outputFormatter.mock.js +0 -21
  44. package/dist/output-formatter/__tests__/OutputFormatter.spec.d.ts +0 -1
  45. package/dist/output-formatter/__tests__/OutputFormatter.spec.js +0 -34
  46. package/dist/output-formatter/__tests__/OutputFormatterFactory.spec.d.ts +0 -1
  47. package/dist/output-formatter/__tests__/OutputFormatterFactory.spec.js +0 -26
  48. package/dist/output-formatter/__tests__/outputFormatSelector.spec.d.ts +0 -1
  49. package/dist/output-formatter/__tests__/outputFormatSelector.spec.js +0 -21
  50. package/dist/output-formatter/json/__tests__/JsonOutputFormatter.spec.d.ts +0 -1
  51. package/dist/output-formatter/json/__tests__/JsonOutputFormatter.spec.js +0 -36
  52. package/dist/output-formatter/text/__tests__/TextOutputFormatter.spec.d.ts +0 -1
  53. package/dist/output-formatter/text/__tests__/TextOutputFormatter.spec.js +0 -25
  54. /package/dist/{NodeManager → src/NodeManager}/client/index.d.ts +0 -0
  55. /package/dist/{NodeManager → src/NodeManager}/client/index.js +0 -0
  56. /package/dist/{NodeManager → src/NodeManager}/configs/NodeConfigs.d.ts +0 -0
  57. /package/dist/{NodeManager → src/NodeManager}/configs/NodeConfigs.js +0 -0
  58. /package/dist/{NodeManager → src/NodeManager}/configs/configs.d.ts +0 -0
  59. /package/dist/{NodeManager → src/NodeManager}/configs/configs.js +0 -0
  60. /package/dist/{NodeManager → src/NodeManager}/db/index.d.ts +0 -0
  61. /package/dist/{NodeManager → src/NodeManager}/db/index.js +0 -0
  62. /package/dist/{NodeManager → src/NodeManager}/errors/NodeAlreadyActiveError.d.ts +0 -0
  63. /package/dist/{NodeManager → src/NodeManager}/errors/NodeAlreadyActiveError.js +0 -0
  64. /package/dist/{NodeManager → src/NodeManager}/index.d.ts +0 -0
  65. /package/dist/{NodeManager → src/NodeManager}/index.js +0 -0
  66. /package/dist/{NodeManager → src/NodeManager}/jobs/index.d.ts +0 -0
  67. /package/dist/{NodeManager → src/NodeManager}/jobs/index.js +0 -0
  68. /package/dist/{NodeManager → src/NodeManager}/monitoring/LogMonitoringRegistry.d.ts +0 -0
  69. /package/dist/{NodeManager → src/NodeManager}/monitoring/LogMonitoringRegistry.js +0 -0
  70. /package/dist/{NodeManager → src/NodeManager}/monitoring/log/NodeLog.d.ts +0 -0
  71. /package/dist/{NodeManager → src/NodeManager}/monitoring/log/NodeLog.js +0 -0
  72. /package/dist/{NodeManager → src/NodeManager}/monitoring/log/console/ConsoleLogger.d.ts +0 -0
  73. /package/dist/{NodeManager → src/NodeManager}/monitoring/log/console/ConsoleLogger.js +0 -0
  74. /package/dist/{NodeManager → src/NodeManager}/monitoring/ping/PingHandler.d.ts +0 -0
  75. /package/dist/{NodeManager → src/NodeManager}/monitoring/ping/PingHandler.js +0 -0
  76. /package/dist/{NodeManager → src/NodeManager}/monitoring/proxy/loggingProxy.d.ts +0 -0
  77. /package/dist/{NodeManager → src/NodeManager}/monitoring/proxy/loggingProxy.js +0 -0
  78. /package/dist/{NodeManager → src/NodeManager}/monitoring/state/NodeState.d.ts +0 -0
  79. /package/dist/{NodeManager → src/NodeManager}/monitoring/state/NodeState.js +0 -0
  80. /package/dist/{NodeManager → src/NodeManager}/monitoring/state/classifyState.d.ts +0 -0
  81. /package/dist/{NodeManager → src/NodeManager}/monitoring/state/classifyState.js +0 -0
  82. /package/dist/{NodeManager → src/NodeManager}/monitoring/streaming/LogStreamer.d.ts +0 -0
  83. /package/dist/{NodeManager → src/NodeManager}/monitoring/streaming/LogStreamer.js +0 -0
  84. /package/dist/{NodeManager → src/NodeManager}/monitoring/streaming/StateStreamer.d.ts +0 -0
  85. /package/dist/{NodeManager → src/NodeManager}/monitoring/streaming/StateStreamer.js +0 -0
  86. /package/dist/{NodeManager → src/NodeManager}/node/Node.d.ts +0 -0
  87. /package/dist/{NodeManager → src/NodeManager}/node/abort/NodeAbortController.d.ts +0 -0
  88. /package/dist/{NodeManager → src/NodeManager}/node/abort/NodeAbortController.js +0 -0
  89. /package/dist/{NodeManager → src/NodeManager}/node/abort/abortControllerSelector.d.ts +0 -0
  90. /package/dist/{NodeManager → src/NodeManager}/node/abort/abortControllerSelector.js +0 -0
  91. /package/dist/{NodeManager → src/NodeManager}/node/api/ApiEventEmitter.d.ts +0 -0
  92. /package/dist/{NodeManager → src/NodeManager}/node/api/ApiEventEmitter.js +0 -0
  93. /package/dist/{NodeManager → src/NodeManager}/node/api/ApiHandler.d.ts +0 -0
  94. /package/dist/{NodeManager → src/NodeManager}/node/api/ApiHandler.js +0 -0
  95. /package/dist/{NodeManager → src/NodeManager}/node/api/eventsource/index.d.ts +0 -0
  96. /package/dist/{NodeManager → src/NodeManager}/node/api/eventsource/index.js +0 -0
  97. /package/dist/{NodeManager → src/NodeManager}/node/api/middlewares/index.d.ts +0 -0
  98. /package/dist/{NodeManager → src/NodeManager}/node/api/middlewares/index.js +0 -0
  99. /package/dist/{NodeManager → src/NodeManager}/node/api/middlewares/rest/verifyBackendSignatureMiddleware.d.ts +0 -0
  100. /package/dist/{NodeManager → src/NodeManager}/node/api/middlewares/rest/verifyBackendSignatureMiddleware.js +0 -0
  101. /package/dist/{NodeManager → src/NodeManager}/node/api/middlewares/rest/verifyJobOwnerSignatureMiddleware.d.ts +0 -0
  102. /package/dist/{NodeManager → src/NodeManager}/node/api/middlewares/rest/verifyJobOwnerSignatureMiddleware.js +0 -0
  103. /package/dist/{NodeManager → src/NodeManager}/node/api/middlewares/ws/verifyWSJobOwnerSignatureMiddleware.d.ts +0 -0
  104. /package/dist/{NodeManager → src/NodeManager}/node/api/middlewares/ws/verifyWSJobOwnerSignatureMiddleware.js +0 -0
  105. /package/dist/{NodeManager → src/NodeManager}/node/api/middlewares/ws/verifyWSMiddleware.d.ts +0 -0
  106. /package/dist/{NodeManager → src/NodeManager}/node/api/middlewares/ws/verifyWSMiddleware.js +0 -0
  107. /package/dist/{NodeManager → src/NodeManager}/node/api/middlewares/ws/verifyWSNodeOrJobOwnerSignatureMiddleware.d.ts +0 -0
  108. /package/dist/{NodeManager → src/NodeManager}/node/api/middlewares/ws/verifyWSNodeOrJobOwnerSignatureMiddleware.js +0 -0
  109. /package/dist/{NodeManager → src/NodeManager}/node/api/routes/get/index.d.ts +0 -0
  110. /package/dist/{NodeManager → src/NodeManager}/node/api/routes/get/index.js +0 -0
  111. /package/dist/{NodeManager → src/NodeManager}/node/api/routes/get/job-definition.d.ts +0 -0
  112. /package/dist/{NodeManager → src/NodeManager}/node/api/routes/get/job-definition.js +0 -0
  113. /package/dist/{NodeManager → src/NodeManager}/node/api/routes/get/job-info/buildInfoObject.d.ts +0 -0
  114. /package/dist/{NodeManager → src/NodeManager}/node/api/routes/get/job-info/buildInfoObject.js +0 -0
  115. /package/dist/{NodeManager → src/NodeManager}/node/api/routes/get/job-info/job-info.d.ts +0 -0
  116. /package/dist/{NodeManager → src/NodeManager}/node/api/routes/get/job-info/job-info.js +0 -0
  117. /package/dist/{NodeManager → src/NodeManager}/node/api/routes/get/job-info/pollActiveJob.d.ts +0 -0
  118. /package/dist/{NodeManager → src/NodeManager}/node/api/routes/get/job-info/pollActiveJob.js +0 -0
  119. /package/dist/{NodeManager → src/NodeManager}/node/api/routes/get/job-operation-info.d.ts +0 -0
  120. /package/dist/{NodeManager → src/NodeManager}/node/api/routes/get/job-operation-info.js +0 -0
  121. /package/dist/{NodeManager → src/NodeManager}/node/api/routes/get/job-results.d.ts +0 -0
  122. /package/dist/{NodeManager → src/NodeManager}/node/api/routes/get/job-results.js +0 -0
  123. /package/dist/{NodeManager → src/NodeManager}/node/api/routes/get/node-info.d.ts +0 -0
  124. /package/dist/{NodeManager → src/NodeManager}/node/api/routes/get/node-info.js +0 -0
  125. /package/dist/{NodeManager → src/NodeManager}/node/api/routes/get/service-url.d.ts +0 -0
  126. /package/dist/{NodeManager → src/NodeManager}/node/api/routes/get/service-url.js +0 -0
  127. /package/dist/{NodeManager → src/NodeManager}/node/api/routes/index.d.ts +0 -0
  128. /package/dist/{NodeManager → src/NodeManager}/node/api/routes/index.js +0 -0
  129. /package/dist/{NodeManager → src/NodeManager}/node/api/routes/post/index.d.ts +0 -0
  130. /package/dist/{NodeManager → src/NodeManager}/node/api/routes/post/index.js +0 -0
  131. /package/dist/{NodeManager → src/NodeManager}/node/api/routes/post/job-definition.d.ts +0 -0
  132. /package/dist/{NodeManager → src/NodeManager}/node/api/routes/post/job-definition.js +0 -0
  133. /package/dist/{NodeManager → src/NodeManager}/node/api/routes/post/job-operation-actions.d.ts +0 -0
  134. /package/dist/{NodeManager → src/NodeManager}/node/api/routes/post/job-operation-actions.js +0 -0
  135. /package/dist/{NodeManager → src/NodeManager}/node/api/routes/post/node-validation.d.ts +0 -0
  136. /package/dist/{NodeManager → src/NodeManager}/node/api/routes/post/service-stop.d.ts +0 -0
  137. /package/dist/{NodeManager → src/NodeManager}/node/api/routes/post/service-stop.js +0 -0
  138. /package/dist/{NodeManager → src/NodeManager}/node/api/routes/wss/index.d.ts +0 -0
  139. /package/dist/{NodeManager → src/NodeManager}/node/api/routes/wss/index.js +0 -0
  140. /package/dist/{NodeManager → src/NodeManager}/node/api/routes/wss/log.d.ts +0 -0
  141. /package/dist/{NodeManager → src/NodeManager}/node/api/routes/wss/log.js +0 -0
  142. /package/dist/{NodeManager → src/NodeManager}/node/api/routes/wss/status.d.ts +0 -0
  143. /package/dist/{NodeManager → src/NodeManager}/node/api/routes/wss/status.js +0 -0
  144. /package/dist/{NodeManager → src/NodeManager}/node/api/types/index.d.ts +0 -0
  145. /package/dist/{NodeManager → src/NodeManager}/node/api/types/index.js +0 -0
  146. /package/dist/{NodeManager → src/NodeManager}/node/balance/balanceHandler.d.ts +0 -0
  147. /package/dist/{NodeManager → src/NodeManager}/node/balance/balanceHandler.js +0 -0
  148. /package/dist/{NodeManager → src/NodeManager}/node/expiry/expiryHandler.d.ts +0 -0
  149. /package/dist/{NodeManager → src/NodeManager}/node/expiry/expiryHandler.js +0 -0
  150. /package/dist/{NodeManager → src/NodeManager}/node/grid/gridHandler.d.ts +0 -0
  151. /package/dist/{NodeManager → src/NodeManager}/node/grid/gridHandler.js +0 -0
  152. /package/dist/{NodeManager → src/NodeManager}/node/health/healthHandler.d.ts +0 -0
  153. /package/dist/{NodeManager → src/NodeManager}/node/health/healthHandler.js +0 -0
  154. /package/dist/{NodeManager → src/NodeManager}/node/job/JobRegistry.d.ts +0 -0
  155. /package/dist/{NodeManager → src/NodeManager}/node/job/JobRegistry.js +0 -0
  156. /package/dist/{NodeManager → src/NodeManager}/node/job/defination/JobDefinitionStrategy.d.ts +0 -0
  157. /package/dist/{NodeManager → src/NodeManager}/node/job/defination/JobDefinitionStrategy.js +0 -0
  158. /package/dist/{NodeManager → src/NodeManager}/node/job/defination/strategy/ApiJobDefinitionStrategy.d.ts +0 -0
  159. /package/dist/{NodeManager → src/NodeManager}/node/job/defination/strategy/ApiJobDefinitionStrategy.js +0 -0
  160. /package/dist/{NodeManager → src/NodeManager}/node/job/defination/strategy/ApiListenJobDefinitionStrategy.d.ts +0 -0
  161. /package/dist/{NodeManager → src/NodeManager}/node/job/defination/strategy/ApiListenJobDefinitionStrategy.js +0 -0
  162. /package/dist/{NodeManager → src/NodeManager}/node/job/defination/strategy/IpfsJobDefinitionStrategy.d.ts +0 -0
  163. /package/dist/{NodeManager → src/NodeManager}/node/job/defination/strategy/IpfsJobDefinitionStrategy.js +0 -0
  164. /package/dist/{NodeManager → src/NodeManager}/node/job/jobExternalUtil.d.ts +0 -0
  165. /package/dist/{NodeManager → src/NodeManager}/node/job/jobExternalUtil.js +0 -0
  166. /package/dist/{NodeManager → src/NodeManager}/node/job/jobHandler.d.ts +0 -0
  167. /package/dist/{NodeManager → src/NodeManager}/node/job/result/ResultReturnStrategy.d.ts +0 -0
  168. /package/dist/{NodeManager → src/NodeManager}/node/job/result/ResultReturnStrategy.js +0 -0
  169. /package/dist/{NodeManager → src/NodeManager}/node/job/result/startegy/ApiListenResultReturnStrategy.d.ts +0 -0
  170. /package/dist/{NodeManager → src/NodeManager}/node/job/result/startegy/ApiListenResultReturnStrategy.js +0 -0
  171. /package/dist/{NodeManager → src/NodeManager}/node/job/result/startegy/ApiResultReturnStrategy.d.ts +0 -0
  172. /package/dist/{NodeManager → src/NodeManager}/node/job/result/startegy/ApiResultReturnStrategy.js +0 -0
  173. /package/dist/{NodeManager → src/NodeManager}/node/key/keyHandler.d.ts +0 -0
  174. /package/dist/{NodeManager → src/NodeManager}/node/key/keyHandler.js +0 -0
  175. /package/dist/{NodeManager → src/NodeManager}/node/market/marketHandler.d.ts +0 -0
  176. /package/dist/{NodeManager → src/NodeManager}/node/market/marketHandler.js +0 -0
  177. /package/dist/{NodeManager → src/NodeManager}/node/register/index.d.ts +0 -0
  178. /package/dist/{NodeManager → src/NodeManager}/node/register/index.js +0 -0
  179. /package/dist/{NodeManager → src/NodeManager}/node/resource/definition/index.d.ts +0 -0
  180. /package/dist/{NodeManager → src/NodeManager}/node/resource/definition/index.js +0 -0
  181. /package/dist/{NodeManager → src/NodeManager}/node/resource/helpers/createHFArgs.d.ts +0 -0
  182. /package/dist/{NodeManager → src/NodeManager}/node/resource/helpers/createHFArgs.js +0 -0
  183. /package/dist/{NodeManager → src/NodeManager}/node/resource/helpers/createOllamaArgs.d.ts +0 -0
  184. /package/dist/{NodeManager → src/NodeManager}/node/resource/helpers/createOllamaArgs.js +0 -0
  185. /package/dist/{NodeManager → src/NodeManager}/node/resource/helpers/createResourceName.d.ts +0 -0
  186. /package/dist/{NodeManager → src/NodeManager}/node/resource/helpers/createResourceName.js +0 -0
  187. /package/dist/{NodeManager → src/NodeManager}/node/resource/helpers/createS3Args.d.ts +0 -0
  188. /package/dist/{NodeManager → src/NodeManager}/node/resource/helpers/createS3Args.js +0 -0
  189. /package/dist/{NodeManager → src/NodeManager}/node/resource/helpers/hasDockerVolume.d.ts +0 -0
  190. /package/dist/{NodeManager → src/NodeManager}/node/resource/helpers/hasDockerVolume.js +0 -0
  191. /package/dist/{NodeManager → src/NodeManager}/node/resource/helpers/hoursSunceDate.d.ts +0 -0
  192. /package/dist/{NodeManager → src/NodeManager}/node/resource/helpers/hoursSunceDate.js +0 -0
  193. /package/dist/{NodeManager → src/NodeManager}/node/resource/helpers/repoTagsContainsImage.d.ts +0 -0
  194. /package/dist/{NodeManager → src/NodeManager}/node/resource/helpers/repoTagsContainsImage.js +0 -0
  195. /package/dist/{NodeManager → src/NodeManager}/node/resource/image/imageManager.d.ts +0 -0
  196. /package/dist/{NodeManager → src/NodeManager}/node/resource/image/imageManager.js +0 -0
  197. /package/dist/{NodeManager → src/NodeManager}/node/resource/resourceManager.d.ts +0 -0
  198. /package/dist/{NodeManager → src/NodeManager}/node/resource/resourceManager.js +0 -0
  199. /package/dist/{NodeManager → src/NodeManager}/node/resource/volume/volumeManager.d.ts +0 -0
  200. /package/dist/{NodeManager → src/NodeManager}/node/resource/volume/volumeManager.js +0 -0
  201. /package/dist/{NodeManager → src/NodeManager}/node/run/runHandler.d.ts +0 -0
  202. /package/dist/{NodeManager → src/NodeManager}/node/run/runHandler.js +0 -0
  203. /package/dist/{NodeManager → src/NodeManager}/node/specs/specsHandler.d.ts +0 -0
  204. /package/dist/{NodeManager → src/NodeManager}/node/specs/specsHandler.js +0 -0
  205. /package/dist/{NodeManager → src/NodeManager}/node/specs/type.d.ts +0 -0
  206. /package/dist/{NodeManager → src/NodeManager}/node/specs/type.js +0 -0
  207. /package/dist/{NodeManager → src/NodeManager}/node/stake/StakeHandler.d.ts +0 -0
  208. /package/dist/{NodeManager → src/NodeManager}/node/stake/StakeHandler.js +0 -0
  209. /package/dist/{NodeManager → src/NodeManager}/node/task/TaskManager.d.ts +0 -0
  210. /package/dist/{NodeManager → src/NodeManager}/node/task/TaskManager.js +0 -0
  211. /package/dist/{NodeManager → src/NodeManager}/node/task/TaskManagerRegistry.d.ts +0 -0
  212. /package/dist/{NodeManager → src/NodeManager}/node/task/TaskManagerRegistry.js +0 -0
  213. /package/dist/{NodeManager → src/NodeManager}/node/task/executions/createDependencyMap.d.ts +0 -0
  214. /package/dist/{NodeManager → src/NodeManager}/node/task/executions/createDependencyMap.js +0 -0
  215. /package/dist/{NodeManager → src/NodeManager}/node/task/executions/createExecutionPlan.d.ts +0 -0
  216. /package/dist/{NodeManager → src/NodeManager}/node/task/executions/createExecutionPlan.js +0 -0
  217. /package/dist/{NodeManager → src/NodeManager}/node/task/executions/createOperationMap.d.ts +0 -0
  218. /package/dist/{NodeManager → src/NodeManager}/node/task/executions/createOperationMap.js +0 -0
  219. /package/dist/{NodeManager → src/NodeManager}/node/task/executions/validateExecutionPlan.d.ts +0 -0
  220. /package/dist/{NodeManager → src/NodeManager}/node/task/executions/validateExecutionPlan.js +0 -0
  221. /package/dist/{NodeManager → src/NodeManager}/node/task/globalStore/finalizeEnv.d.ts +0 -0
  222. /package/dist/{NodeManager → src/NodeManager}/node/task/globalStore/finalizeEnv.js +0 -0
  223. /package/dist/{NodeManager → src/NodeManager}/node/task/globalStore/getByPath.d.ts +0 -0
  224. /package/dist/{NodeManager → src/NodeManager}/node/task/globalStore/getByPath.js +0 -0
  225. /package/dist/{NodeManager → src/NodeManager}/node/task/globalStore/index.d.ts +0 -0
  226. /package/dist/{NodeManager → src/NodeManager}/node/task/globalStore/index.js +0 -0
  227. /package/dist/{NodeManager → src/NodeManager}/node/task/globalStore/interpolate.d.ts +0 -0
  228. /package/dist/{NodeManager → src/NodeManager}/node/task/globalStore/interpolate.js +0 -0
  229. /package/dist/{NodeManager → src/NodeManager}/node/task/globalStore/interpolateOperation.d.ts +0 -0
  230. /package/dist/{NodeManager → src/NodeManager}/node/task/globalStore/interpolateOperation.js +0 -0
  231. /package/dist/{NodeManager → src/NodeManager}/node/task/globalStore/resolveLiteralsInString.d.ts +0 -0
  232. /package/dist/{NodeManager → src/NodeManager}/node/task/globalStore/resolveLiteralsInString.js +0 -0
  233. /package/dist/{NodeManager → src/NodeManager}/node/task/globalStore/setDefaults.d.ts +0 -0
  234. /package/dist/{NodeManager → src/NodeManager}/node/task/globalStore/setDefaults.js +0 -0
  235. /package/dist/{NodeManager → src/NodeManager}/node/task/globalStore/setHost.d.ts +0 -0
  236. /package/dist/{NodeManager → src/NodeManager}/node/task/globalStore/setHost.js +0 -0
  237. /package/dist/{NodeManager → src/NodeManager}/node/task/globalStore/setResult.d.ts +0 -0
  238. /package/dist/{NodeManager → src/NodeManager}/node/task/globalStore/setResult.js +0 -0
  239. /package/dist/{NodeManager → src/NodeManager}/node/task/globalStore/setResults.d.ts +0 -0
  240. /package/dist/{NodeManager → src/NodeManager}/node/task/globalStore/setResults.js +0 -0
  241. /package/dist/{NodeManager → src/NodeManager}/node/task/globalStore/stanatizeArrays.d.ts +0 -0
  242. /package/dist/{NodeManager → src/NodeManager}/node/task/globalStore/stanatizeArrays.js +0 -0
  243. /package/dist/{NodeManager → src/NodeManager}/node/task/globalStore/transformCollections.d.ts +0 -0
  244. /package/dist/{NodeManager → src/NodeManager}/node/task/globalStore/transformCollections.js +0 -0
  245. /package/dist/{NodeManager → src/NodeManager}/node/task/helpers/createDefaultOpState.d.ts +0 -0
  246. /package/dist/{NodeManager → src/NodeManager}/node/task/helpers/createDefaultOpState.js +0 -0
  247. /package/dist/{NodeManager → src/NodeManager}/node/task/helpers/createInitialFlow.d.ts +0 -0
  248. /package/dist/{NodeManager → src/NodeManager}/node/task/helpers/createInitialFlow.js +0 -0
  249. /package/dist/{NodeManager → src/NodeManager}/node/task/loggers/logManager.d.ts +0 -0
  250. /package/dist/{NodeManager → src/NodeManager}/node/task/loggers/logManager.js +0 -0
  251. /package/dist/{NodeManager → src/NodeManager}/node/task/operations/getOperationsInfos.d.ts +0 -0
  252. /package/dist/{NodeManager → src/NodeManager}/node/task/operations/getOperationsInfos.js +0 -0
  253. /package/dist/{NodeManager → src/NodeManager}/node/task/operations/moveTaskManagerGroupOperation.d.ts +0 -0
  254. /package/dist/{NodeManager → src/NodeManager}/node/task/operations/moveTaskManagerGroupOperation.js +0 -0
  255. /package/dist/{NodeManager → src/NodeManager}/node/task/operations/restartTaskManagerGroupOperation.d.ts +0 -0
  256. /package/dist/{NodeManager → src/NodeManager}/node/task/operations/restartTaskManagerGroupOperation.js +0 -0
  257. /package/dist/{NodeManager → src/NodeManager}/node/task/operations/restartTaskManagerOperation.d.ts +0 -0
  258. /package/dist/{NodeManager → src/NodeManager}/node/task/operations/restartTaskManagerOperation.js +0 -0
  259. /package/dist/{NodeManager → src/NodeManager}/node/task/operations/runTaskManagerOperation.d.ts +0 -0
  260. /package/dist/{NodeManager → src/NodeManager}/node/task/operations/runTaskManagerOperation.js +0 -0
  261. /package/dist/{NodeManager → src/NodeManager}/node/task/operations/stopAllTaskManagerOperations.d.ts +0 -0
  262. /package/dist/{NodeManager → src/NodeManager}/node/task/operations/stopAllTaskManagerOperations.js +0 -0
  263. /package/dist/{NodeManager → src/NodeManager}/node/task/operations/stopTaskManagerGroupOperation.d.ts +0 -0
  264. /package/dist/{NodeManager → src/NodeManager}/node/task/operations/stopTaskManagerGroupOperation.js +0 -0
  265. /package/dist/{NodeManager → src/NodeManager}/node/task/operations/stopTaskManagerOperation.d.ts +0 -0
  266. /package/dist/{NodeManager → src/NodeManager}/node/task/operations/stopTaskManagerOperation.js +0 -0
  267. /package/dist/{NodeManager → src/NodeManager}/node/utils/convertFromBytes.d.ts +0 -0
  268. /package/dist/{NodeManager → src/NodeManager}/node/utils/convertFromBytes.js +0 -0
  269. /package/dist/{NodeManager → src/NodeManager}/node/utils/extractLogsAndResultsFromLogBuffer.d.ts +0 -0
  270. /package/dist/{NodeManager → src/NodeManager}/node/utils/extractLogsAndResultsFromLogBuffer.js +0 -0
  271. /package/dist/{NodeManager → src/NodeManager}/node/utils/extractResultsFromLogs.d.ts +0 -0
  272. /package/dist/{NodeManager → src/NodeManager}/node/utils/extractResultsFromLogs.js +0 -0
  273. /package/dist/{NodeManager → src/NodeManager}/node/utils/generateRandomId.d.ts +0 -0
  274. /package/dist/{NodeManager → src/NodeManager}/node/utils/generateRandomId.js +0 -0
  275. /package/dist/{NodeManager → src/NodeManager}/node/utils/multiProgressBarReporter.d.ts +0 -0
  276. /package/dist/{NodeManager → src/NodeManager}/node/utils/multiProgressBarReporter.js +0 -0
  277. /package/dist/{NodeManager → src/NodeManager}/node/utils/poll.d.ts +0 -0
  278. /package/dist/{NodeManager → src/NodeManager}/node/utils/poll.js +0 -0
  279. /package/dist/{NodeManager → src/NodeManager}/node/utils/progressBarReporter.d.ts +0 -0
  280. /package/dist/{NodeManager → src/NodeManager}/node/utils/progressBarReporter.js +0 -0
  281. /package/dist/{NodeManager → src/NodeManager}/provider/ContainerStateManager.d.ts +0 -0
  282. /package/dist/{NodeManager → src/NodeManager}/provider/ContainerStateManager.js +0 -0
  283. /package/dist/{NodeManager → src/NodeManager}/provider/ExposedPortHealthCheck.d.ts +0 -0
  284. /package/dist/{NodeManager → src/NodeManager}/provider/ExposedPortHealthCheck.js +0 -0
  285. /package/dist/{NodeManager → src/NodeManager}/provider/containerOrchestration/docker/dockerExtended/index.d.ts +0 -0
  286. /package/dist/{NodeManager → src/NodeManager}/provider/containerOrchestration/docker/dockerExtended/index.js +0 -0
  287. /package/dist/{NodeManager → src/NodeManager}/provider/containerOrchestration/docker/utils/createServerObject.d.ts +0 -0
  288. /package/dist/{NodeManager → src/NodeManager}/provider/containerOrchestration/docker/utils/createServerObject.js +0 -0
  289. /package/dist/{NodeManager → src/NodeManager}/provider/containerOrchestration/docker/utils/deadline.d.ts +0 -0
  290. /package/dist/{NodeManager → src/NodeManager}/provider/containerOrchestration/docker/utils/deadline.js +0 -0
  291. /package/dist/{NodeManager → src/NodeManager}/provider/containerOrchestration/docker/utils/repoTagsContainsImage.d.ts +0 -0
  292. /package/dist/{NodeManager → src/NodeManager}/provider/containerOrchestration/docker/utils/repoTagsContainsImage.js +0 -0
  293. /package/dist/{NodeManager → src/NodeManager}/provider/containerOrchestration/interface.js +0 -0
  294. /package/dist/{NodeManager → src/NodeManager}/provider/containerOrchestration/podman/utils/createPodmanRunOptions.d.ts +0 -0
  295. /package/dist/{NodeManager → src/NodeManager}/provider/containerOrchestration/podman/utils/createPodmanRunOptions.js +0 -0
  296. /package/dist/{NodeManager → src/NodeManager}/provider/types.d.ts +0 -0
  297. /package/dist/{NodeManager → src/NodeManager}/provider/types.js +0 -0
  298. /package/dist/{NodeManager → src/NodeManager}/provider/utils/parseBuffer.d.ts +0 -0
  299. /package/dist/{NodeManager → src/NodeManager}/provider/utils/parseBuffer.js +0 -0
  300. /package/dist/{NodeManager → src/NodeManager}/repository/NodeRepository.d.ts +0 -0
  301. /package/dist/{NodeManager → src/NodeManager}/repository/NodeRepository.js +0 -0
  302. /package/dist/{NodeManager → src/NodeManager}/sdk/index.d.ts +0 -0
  303. /package/dist/{NodeManager → src/NodeManager}/sdk/index.js +0 -0
  304. /package/dist/{NodeManager → src/NodeManager}/types/index.d.ts +0 -0
  305. /package/dist/{NodeManager → src/NodeManager}/types/index.js +0 -0
  306. /package/dist/{NodeManager → src/NodeManager}/utils/convertFromBytes.d.ts +0 -0
  307. /package/dist/{NodeManager → src/NodeManager}/utils/convertFromBytes.js +0 -0
  308. /package/dist/{NodeManager → src/NodeManager}/utils/expose-util.d.ts +0 -0
  309. /package/dist/{NodeManager → src/NodeManager}/utils/expose-util.js +0 -0
  310. /package/dist/{NodeManager → src/NodeManager}/utils/jobDefinitionParser.d.ts +0 -0
  311. /package/dist/{NodeManager → src/NodeManager}/utils/jobDefinitionParser.js +0 -0
  312. /package/dist/{NodeManager → src/NodeManager}/utils/ops-util.d.ts +0 -0
  313. /package/dist/{NodeManager → src/NodeManager}/utils/ops-util.js +0 -0
  314. /package/dist/{NodeManager → src/NodeManager}/utils/timeoutPromiseWrapper.d.ts +0 -0
  315. /package/dist/{NodeManager → src/NodeManager}/utils/timeoutPromiseWrapper.js +0 -0
  316. /package/dist/{NodeManager → src/NodeManager}/utils/utils.d.ts +0 -0
  317. /package/dist/{NodeManager → src/NodeManager}/utils/utils.js +0 -0
  318. /package/dist/{NodeManager → src/NodeManager}/utils/wslCheck.d.ts +0 -0
  319. /package/dist/{NodeManager → src/NodeManager}/utils/wslCheck.js +0 -0
  320. /package/dist/{cli → src/cli}/commands/address/action.d.ts +0 -0
  321. /package/dist/{cli → src/cli}/commands/address/action.js +0 -0
  322. /package/dist/{cli → src/cli}/commands/address/command.d.ts +0 -0
  323. /package/dist/{cli → src/cli}/commands/address/command.js +0 -0
  324. /package/dist/{cli → src/cli}/commands/prune/action.d.ts +0 -0
  325. /package/dist/{cli → src/cli}/commands/prune/command.d.ts +0 -0
  326. /package/dist/{cli → src/cli}/commands/prune/command.js +0 -0
  327. /package/dist/{cli → src/cli}/commands/run/action.d.ts +0 -0
  328. /package/dist/{cli → src/cli}/commands/run/command.d.ts +0 -0
  329. /package/dist/{cli → src/cli}/commands/run/command.js +0 -0
  330. /package/dist/{cli → src/cli}/commands/run/generateDeploymentEndpointsTable.d.ts +0 -0
  331. /package/dist/{cli → src/cli}/commands/run/generateDeploymentEndpointsTable.js +0 -0
  332. /package/dist/{cli → src/cli}/commands/sharedOptions/--api.d.ts +0 -0
  333. /package/dist/{cli → src/cli}/commands/sharedOptions/--api.js +0 -0
  334. /package/dist/{cli → src/cli}/commands/sharedOptions/--format.d.ts +0 -0
  335. /package/dist/{cli → src/cli}/commands/sharedOptions/--format.js +0 -0
  336. /package/dist/{cli → src/cli}/commands/sharedOptions/--gpu.d.ts +0 -0
  337. /package/dist/{cli → src/cli}/commands/sharedOptions/--gpu.js +0 -0
  338. /package/dist/{cli → src/cli}/commands/sharedOptions/--network.d.ts +0 -0
  339. /package/dist/{cli → src/cli}/commands/sharedOptions/--network.js +0 -0
  340. /package/dist/{cli → src/cli}/commands/sharedOptions/--port.d.ts +0 -0
  341. /package/dist/{cli → src/cli}/commands/sharedOptions/--port.js +0 -0
  342. /package/dist/{cli → src/cli}/commands/sharedOptions/--rpc.d.ts +0 -0
  343. /package/dist/{cli → src/cli}/commands/sharedOptions/--rpc.js +0 -0
  344. /package/dist/{cli → src/cli}/commands/sharedOptions/--timeout.d.ts +0 -0
  345. /package/dist/{cli → src/cli}/commands/sharedOptions/--timeout.js +0 -0
  346. /package/dist/{cli → src/cli}/commands/sharedOptions/--verbose.d.ts +0 -0
  347. /package/dist/{cli → src/cli}/commands/sharedOptions/--verbose.js +0 -0
  348. /package/dist/{cli → src/cli}/commands/sharedOptions/--wallet.d.ts +0 -0
  349. /package/dist/{cli → src/cli}/commands/sharedOptions/--wallet.js +0 -0
  350. /package/dist/{cli → src/cli}/commands/start/action.d.ts +0 -0
  351. /package/dist/{cli → src/cli}/commands/start/action.js +0 -0
  352. /package/dist/{cli → src/cli}/commands/start/command.d.ts +0 -0
  353. /package/dist/{cli → src/cli}/createNosanaCli.d.ts +0 -0
  354. /package/dist/{cli → src/cli}/createNosanaCli.js +0 -0
  355. /package/dist/{cli → src/cli}/index.d.ts +0 -0
  356. /package/dist/{cli → src/cli}/index.js +0 -0
  357. /package/dist/{index.js → src/index.js} +0 -0
  358. /package/dist/{output-formatter → src/output-formatter}/OutputFormatter.d.ts +0 -0
  359. /package/dist/{output-formatter → src/output-formatter}/OutputFormatter.js +0 -0
  360. /package/dist/{output-formatter → src/output-formatter}/OutputFormatterFactory.d.ts +0 -0
  361. /package/dist/{output-formatter → src/output-formatter}/OutputFormatterFactory.js +0 -0
  362. /package/dist/{output-formatter → src/output-formatter}/json/JsonOutputEventHandlers.d.ts +0 -0
  363. /package/dist/{output-formatter → src/output-formatter}/json/JsonOutputEventHandlers.js +0 -0
  364. /package/dist/{output-formatter → src/output-formatter}/json/JsonOutputFormatter.d.ts +0 -0
  365. /package/dist/{output-formatter → src/output-formatter}/json/JsonOutputFormatter.js +0 -0
  366. /package/dist/{output-formatter → src/output-formatter}/outputEvents.d.ts +0 -0
  367. /package/dist/{output-formatter → src/output-formatter}/outputEvents.js +0 -0
  368. /package/dist/{output-formatter → src/output-formatter}/outputFormatArgumentParser.d.ts +0 -0
  369. /package/dist/{output-formatter → src/output-formatter}/outputFormatArgumentParser.js +0 -0
  370. /package/dist/{output-formatter → src/output-formatter}/outputFormatSelector.d.ts +0 -0
  371. /package/dist/{output-formatter → src/output-formatter}/outputFormatSelector.js +0 -0
  372. /package/dist/{output-formatter → src/output-formatter}/text/TextOutputEventHandlers.d.ts +0 -0
  373. /package/dist/{output-formatter → src/output-formatter}/text/TextOutputEventHandlers.js +0 -0
  374. /package/dist/{output-formatter → src/output-formatter}/text/TextOutputFormatter.d.ts +0 -0
  375. /package/dist/{output-formatter → src/output-formatter}/text/TextOutputFormatter.js +0 -0
  376. /package/dist/{output-formatter → src/output-formatter}/text/VerboseTextOutputEventHandlers.d.ts +0 -0
  377. /package/dist/{output-formatter → src/output-formatter}/text/VerboseTextOutputEventHandlers.js +0 -0
  378. /package/dist/{output-formatter → src/output-formatter}/text/VerboseTextOutputFormatter.d.ts +0 -0
  379. /package/dist/{output-formatter → src/output-formatter}/text/VerboseTextOutputFormatter.js +0 -0
  380. /package/dist/{static → src/static}/index.d.ts +0 -0
  381. /package/dist/{static → src/static}/index.js +0 -0
  382. /package/dist/{version → src/version}/index.d.ts +0 -0
  383. /package/dist/{version → src/version}/index.js +0 -0
@@ -1,161 +0,0 @@
1
- import { describe, expect, it, beforeEach, afterEach, vi } from 'vitest';
2
- import dotenv from 'dotenv';
3
- import fs from 'fs';
4
- import path from 'path';
5
- import { fileURLToPath } from 'url';
6
- // Read .env files directly to avoid duplicating values
7
- const modulePath = path.dirname(fileURLToPath(import.meta.url));
8
- const envBase = dotenv.parse(fs.readFileSync(path.resolve(modulePath, '../../../../.env')));
9
- const envDev = dotenv.parse(fs.readFileSync(path.resolve(modulePath, '../../../../.env.dev')));
10
- const envProd = dotenv.parse(fs.readFileSync(path.resolve(modulePath, '../../../../.env.prd')));
11
- // Test constants for env variable names
12
- const ENV_VAR_BACKEND_SOLANA_ADDRESS = 'BACKEND_SOLANA_ADDRESS';
13
- const ENV_VAR_BACKEND_URL = 'BACKEND_URL';
14
- const ENV_VAR_MIN_DISK_SPACE = 'MIN_DISK_SPACE';
15
- const DEVNET = 'devnet';
16
- const MAINNET = 'mainnet';
17
- describe('NodeConfigs', () => {
18
- let originalEnv;
19
- beforeEach(() => {
20
- originalEnv = { ...process.env };
21
- vi.resetModules();
22
- // Clear all relevant env vars to ensure clean state
23
- delete process.env.APP_ENV;
24
- delete process.env.NODE_ENV;
25
- delete process.env.BACKEND_URL;
26
- delete process.env.BACKEND_SOLANA_ADDRESS;
27
- delete process.env.BACKEND_AUTHORIZATION_ADDRESS;
28
- delete process.env.EXPLORER_URL;
29
- delete process.env.SIGN_MESSAGE;
30
- delete process.env.FRP_SERVER_ADDRESS;
31
- delete process.env.FRP_SERVER_PORT;
32
- delete process.env.FRPC_CONTAINER_IMAGE;
33
- delete process.env.FRP_SERVER_IMAGE;
34
- delete process.env.API_PORT;
35
- delete process.env.MIN_DISK_SPACE;
36
- });
37
- afterEach(() => {
38
- process.env = originalEnv;
39
- });
40
- describe('dotenv file merging', () => {
41
- it('should load common variables from base .env file', async () => {
42
- const { NodeConfigs } = await import('../NodeConfigs.js');
43
- const nodeConfigs = new NodeConfigs({ network: MAINNET });
44
- nodeConfigs.loadVariablesToEnv();
45
- expect(process.env[ENV_VAR_BACKEND_SOLANA_ADDRESS]).toBe(envBase[ENV_VAR_BACKEND_SOLANA_ADDRESS]);
46
- });
47
- it('should load environment-specific variables', async () => {
48
- const { NodeConfigs } = await import('../NodeConfigs.js');
49
- const nodeConfigs = new NodeConfigs({ network: DEVNET });
50
- nodeConfigs.loadVariablesToEnv();
51
- expect(process.env[ENV_VAR_BACKEND_URL]).toBe(envDev[ENV_VAR_BACKEND_URL]);
52
- });
53
- it('should override common values with environment-specific values', async () => {
54
- const { NodeConfigs } = await import('../NodeConfigs.js');
55
- const nodeConfigs = new NodeConfigs({ network: DEVNET });
56
- nodeConfigs.loadVariablesToEnv();
57
- // MIN_DISK_SPACE exists in both .env (base) and .env.dev
58
- // With override:true and env-specific file loaded last, development value should win
59
- expect(process.env[ENV_VAR_MIN_DISK_SPACE]).toBe(envDev[ENV_VAR_MIN_DISK_SPACE]);
60
- });
61
- it('should use common value when environment-specific file does not override it', async () => {
62
- const { NodeConfigs } = await import('../NodeConfigs.js');
63
- const nodeConfigs = new NodeConfigs({ network: MAINNET });
64
- nodeConfigs.loadVariablesToEnv();
65
- // MIN_DISK_SPACE only has override in .env.dev, not in .env.prd
66
- // So production should use the base .env value
67
- expect(process.env[ENV_VAR_MIN_DISK_SPACE]).toBe(envBase[ENV_VAR_MIN_DISK_SPACE]);
68
- });
69
- });
70
- describe('network to environment mapping', () => {
71
- it('should use prd environment for mainnet network', async () => {
72
- const { NodeConfigs } = await import('../NodeConfigs.js');
73
- const nodeConfigs = new NodeConfigs({ network: MAINNET });
74
- nodeConfigs.loadVariablesToEnv();
75
- expect(process.env[ENV_VAR_BACKEND_URL]).toBe(envProd[ENV_VAR_BACKEND_URL]);
76
- });
77
- it('should use dev environment for devnet network', async () => {
78
- const { NodeConfigs } = await import('../NodeConfigs.js');
79
- const nodeConfigs = new NodeConfigs({ network: DEVNET });
80
- nodeConfigs.loadVariablesToEnv();
81
- expect(process.env[ENV_VAR_BACKEND_URL]).toBe(envDev[ENV_VAR_BACKEND_URL]);
82
- });
83
- it('should use dev environment when network is not mainnet', async () => {
84
- const { NodeConfigs } = await import('../NodeConfigs.js');
85
- const nodeConfigs = new NodeConfigs({ network: 'testnet' });
86
- nodeConfigs.loadVariablesToEnv();
87
- expect(process.env[ENV_VAR_BACKEND_URL]).toBe(envDev[ENV_VAR_BACKEND_URL]);
88
- });
89
- it('should default to mainnet (prd) when network is not specified', async () => {
90
- const { NodeConfigs } = await import('../NodeConfigs.js');
91
- const nodeConfigs = new NodeConfigs({});
92
- nodeConfigs.loadVariablesToEnv();
93
- expect(process.env[ENV_VAR_BACKEND_URL]).toBe(envProd[ENV_VAR_BACKEND_URL]);
94
- });
95
- });
96
- describe('NodeConfigsSingleton', () => {
97
- it('should only call loadVariablesToEnv once across multiple getInstance calls', async () => {
98
- const { NodeConfigsSingleton, NodeConfigs } = await import('../NodeConfigs.js');
99
- const loadSpy = vi.spyOn(NodeConfigs.prototype, 'loadVariablesToEnv');
100
- NodeConfigsSingleton.getInstance({ network: DEVNET });
101
- NodeConfigsSingleton.getInstance({ network: MAINNET });
102
- NodeConfigsSingleton.getInstance();
103
- expect(loadSpy).toHaveBeenCalledTimes(1);
104
- });
105
- it('should use options from first getInstance call', async () => {
106
- const { NodeConfigsSingleton } = await import('../NodeConfigs.js');
107
- // First call with devnet
108
- NodeConfigsSingleton.getInstance({ network: DEVNET });
109
- // Subsequent calls with different options should not change the config
110
- NodeConfigsSingleton.getInstance({ network: MAINNET });
111
- // Should still have dev environment values from first call
112
- expect(process.env[ENV_VAR_BACKEND_URL]).toBe(envDev[ENV_VAR_BACKEND_URL]);
113
- });
114
- });
115
- describe('startup without exceptions', () => {
116
- it('should load configs for mainnet without throwing when all required variables have defaults', async () => {
117
- // Clear all config-related environment variables to test defaults
118
- delete process.env.APP_ENV;
119
- delete process.env.NODE_ENV;
120
- delete process.env.BACKEND_URL;
121
- delete process.env.BACKEND_SOLANA_ADDRESS;
122
- delete process.env.BACKEND_AUTHORIZATION_ADDRESS;
123
- delete process.env.EXPLORER_URL;
124
- delete process.env.SIGN_MESSAGE;
125
- delete process.env.FRP_SERVER_ADDRESS;
126
- delete process.env.FRP_SERVER_PORT;
127
- delete process.env.FRPC_CONTAINER_IMAGE;
128
- delete process.env.FRP_SERVER_IMAGE;
129
- delete process.env.API_PORT;
130
- delete process.env.MIN_DISK_SPACE;
131
- // Attempt to load configs - should not throw
132
- const { configs } = await import('../configs.js');
133
- const config = configs({ network: MAINNET });
134
- // Verify config object exists and has expected properties
135
- expect(config).toBeDefined();
136
- expect(config.network).toBe(MAINNET);
137
- });
138
- it('should load configs for devnet without throwing when all required variables have defaults', async () => {
139
- // Clear all config-related environment variables to test defaults
140
- delete process.env.APP_ENV;
141
- delete process.env.NODE_ENV;
142
- delete process.env.BACKEND_URL;
143
- delete process.env.BACKEND_SOLANA_ADDRESS;
144
- delete process.env.BACKEND_AUTHORIZATION_ADDRESS;
145
- delete process.env.EXPLORER_URL;
146
- delete process.env.SIGN_MESSAGE;
147
- delete process.env.FRP_SERVER_ADDRESS;
148
- delete process.env.FRP_SERVER_PORT;
149
- delete process.env.FRPC_CONTAINER_IMAGE;
150
- delete process.env.FRP_SERVER_IMAGE;
151
- delete process.env.API_PORT;
152
- delete process.env.MIN_DISK_SPACE;
153
- // Attempt to load configs - should not throw
154
- const { configs } = await import('../configs.js');
155
- const config = configs({ network: DEVNET });
156
- // Verify config object exists and has expected properties
157
- expect(config).toBeDefined();
158
- expect(config.network).toBe(DEVNET);
159
- });
160
- });
161
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,65 +0,0 @@
1
- import fs from 'fs';
2
- import { DB } from '../index.js';
3
- vi.mock('fs');
4
- vi.mock('os', () => ({
5
- default: {
6
- homedir: () => 'homedir',
7
- },
8
- }));
9
- vi.mock('../../../static/index.js', () => ({
10
- pkg: {
11
- version: '0.0.0_TEST',
12
- },
13
- }));
14
- describe('DB', () => {
15
- const mock_mkdirSync = vi.fn();
16
- beforeEach(() => {
17
- fs.mkdirSync.mockImplementation((args1, args2) => mock_mkdirSync(args1, args2));
18
- });
19
- afterEach(() => {
20
- mock_mkdirSync.mockReset();
21
- });
22
- it('should create db directory and return a DB instance', () => {
23
- const result = new DB('test');
24
- expect(mock_mkdirSync).toHaveBeenCalledTimes(1);
25
- expect(mock_mkdirSync).toHaveBeenCalledWith('test', { recursive: true });
26
- expect(result.db.data).toEqual({
27
- resources: {
28
- images: {},
29
- volumes: {},
30
- },
31
- flows: {},
32
- info: {
33
- version: '0.0.0_TEST',
34
- country: '',
35
- network: {
36
- ip: '',
37
- ping_ms: 0,
38
- download_mbps: 0,
39
- upload_mbps: 0,
40
- },
41
- system_environment: '',
42
- cpu: {
43
- model: '',
44
- physical_cores: 0,
45
- logical_cores: 0,
46
- },
47
- disk_gb: 0,
48
- ram_mb: 0,
49
- gpus: {
50
- devices: [],
51
- runtime_version: 0,
52
- cuda_driver_version: 0,
53
- nvml_driver_version: '0.0.0',
54
- },
55
- protocol: '',
56
- },
57
- });
58
- });
59
- test('when configLocation starts with ~ should replace with os.homedir', () => {
60
- new DB('~/test');
61
- expect(mock_mkdirSync).toHaveBeenCalledWith('homedir/test', {
62
- recursive: true,
63
- });
64
- });
65
- });
@@ -1,337 +0,0 @@
1
- import { describe, expect, it, vi, beforeEach } from 'vitest';
2
- import { Provider } from '../Provider.js';
3
- import { isOpExposed, getExposePorts } from '@nosana/sdk';
4
- import { generateProxies } from '../../utils/expose-util.js';
5
- import EventEmitter from 'events';
6
- const TEST_SERVER_ADDRESS = 'test.frp.server.com';
7
- const TEST_SERVER_PORT = 7000;
8
- const TEST_FRPC_IMAGE = 'test-frpc-image:latest';
9
- vi.mock('../../configs/configs.js', () => ({
10
- configs: () => ({
11
- frp: {
12
- serverAddr: TEST_SERVER_ADDRESS,
13
- serverPort: TEST_SERVER_PORT,
14
- containerImage: TEST_FRPC_IMAGE,
15
- },
16
- }),
17
- }));
18
- vi.mock('../../configs/NodeConfigs.js', () => ({
19
- NodeConfigsSingleton: {
20
- getInstance: vi.fn().mockReturnValue({ options: { isNodeRun: false } }),
21
- },
22
- }));
23
- vi.mock('../../monitoring/proxy/loggingProxy.js', () => ({
24
- applyLoggingProxyToClass: vi.fn(),
25
- }));
26
- vi.mock('@nosana/sdk', async () => {
27
- const actual = await vi.importActual('@nosana/sdk');
28
- return {
29
- ...actual,
30
- isOpExposed: vi.fn(),
31
- getExposePorts: vi.fn().mockReturnValue([]),
32
- };
33
- });
34
- vi.mock('../../utils/expose-util.js', () => ({
35
- generateProxies: vi.fn().mockReturnValue({ proxies: [], idMap: new Map() }),
36
- generateUrlSecretObject: vi.fn().mockReturnValue({}),
37
- }));
38
- vi.mock('../../utils/timeoutPromiseWrapper.js', () => ({
39
- promiseTimeoutWrapper: vi.fn((promise) => promise),
40
- }));
41
- const TEST_CONTAINER_ID = 'container-id';
42
- const TEST_CONTAINER_NAME = 'container-name';
43
- const TEST_FRPC_CONTAINER_NAME = `frpc-${TEST_CONTAINER_NAME}`;
44
- const TEST_FLOW_ID = 'flow-123';
45
- const TEST_DEPLOYMENT_HASH = 'deployment-hash-456';
46
- const TEST_DEPLOYMENT_ID = 'my-deployment-id';
47
- const TEST_PROXY_NAME_1 = 'proxy-1';
48
- const TEST_CONTAINER_NAME_1 = 'container-1';
49
- const TEST_CONTAINER_PORT_1 = '8080';
50
- const TEST_CUSTOM_DOMAIN_1 = 'test1.domain.com';
51
- const TEST_PROXY_NAME_2 = 'proxy-2';
52
- const TEST_CONTAINER_NAME_2 = 'container-2';
53
- const TEST_CONTAINER_PORT_2 = '3000';
54
- const TEST_CUSTOM_DOMAIN_2 = 'test2.domain.com';
55
- const TEST_CUSTOM_FLOW_ID = 'custom-flow-id-789';
56
- const TEST_API_PORT = '12345';
57
- const TEST_ADDRESS = 'test-address';
58
- const TEST_JOB_DEFINITION_TYPE = 'container';
59
- const TEST_JOB_DEFINITION_VERSION = '0.1';
60
- const TEST_PROJECT = 'test-project';
61
- const TEST_STATE_RUNNING = 'running';
62
- const TEST_NOW = Date.now();
63
- const TEST_OP_ID = 'op-1';
64
- const TEST_OP_TYPE = 'container/run';
65
- const TEST_OP_CONTAINER_IMAGE = 'test-image:latest';
66
- describe('Provider', () => {
67
- let provider;
68
- let mockContainerOrchestration;
69
- let mockRepository;
70
- let mockResourceManager;
71
- beforeEach(() => {
72
- vi.clearAllMocks();
73
- mockContainerOrchestration = {
74
- pullImage: vi.fn().mockResolvedValue(undefined),
75
- runFlowContainer: vi.fn().mockResolvedValue({
76
- id: TEST_CONTAINER_ID,
77
- logs: vi.fn().mockResolvedValue({
78
- on: vi.fn(),
79
- removeAllListeners: vi.fn(),
80
- }),
81
- wait: vi.fn().mockResolvedValue(undefined),
82
- inspect: vi.fn().mockResolvedValue({ State: { ExitCode: 0 } }),
83
- }),
84
- doesContainerExist: vi.fn().mockResolvedValue(false),
85
- isContainerExited: vi.fn().mockResolvedValue(false),
86
- stopAndDeleteContainer: vi.fn().mockResolvedValue(undefined),
87
- createNetwork: vi.fn().mockResolvedValue(undefined),
88
- deleteNetwork: vi.fn().mockResolvedValue(undefined),
89
- hasNetwork: vi.fn().mockResolvedValue(false),
90
- getContainer: vi.fn().mockReturnValue({
91
- id: TEST_CONTAINER_ID,
92
- logs: vi.fn().mockResolvedValue({
93
- on: vi.fn(),
94
- removeAllListeners: vi.fn(),
95
- }),
96
- wait: vi.fn().mockResolvedValue(undefined),
97
- inspect: vi.fn().mockResolvedValue({ State: { ExitCode: 0 } }),
98
- }),
99
- getContainersByName: vi.fn().mockResolvedValue([]),
100
- };
101
- mockRepository = {
102
- updateflowStateSecret: vi.fn(),
103
- getFlowSecret: vi.fn().mockReturnValue({}),
104
- };
105
- mockResourceManager = {
106
- images: {
107
- setImage: vi.fn(),
108
- },
109
- getResourceVolumes: vi.fn().mockResolvedValue([]),
110
- };
111
- provider = new Provider(mockContainerOrchestration, mockRepository, mockResourceManager);
112
- });
113
- describe('generateFrpcContainerConfig', () => {
114
- const baseFlow = {
115
- id: TEST_FLOW_ID,
116
- jobDefinition: {
117
- version: TEST_JOB_DEFINITION_VERSION,
118
- type: TEST_JOB_DEFINITION_TYPE,
119
- ops: [],
120
- },
121
- project: TEST_PROJECT,
122
- state: {
123
- status: TEST_STATE_RUNNING,
124
- startTime: TEST_NOW,
125
- endTime: null,
126
- opStates: [],
127
- },
128
- };
129
- const baseNetworks = { 'network-1': {} };
130
- const baseProxies = [
131
- {
132
- name: TEST_PROXY_NAME_1,
133
- localIp: TEST_CONTAINER_NAME_1,
134
- localPorts: TEST_CONTAINER_PORT_1,
135
- customDomain: TEST_CUSTOM_DOMAIN_1,
136
- },
137
- ];
138
- it('should generate basic config without load balancing', () => {
139
- const result = provider.generateFrpcContainerConfig(TEST_CONTAINER_NAME, baseNetworks, baseFlow, baseProxies, false, undefined);
140
- expect(result).toStrictEqual({
141
- name: TEST_FRPC_CONTAINER_NAME,
142
- cmd: ['/entrypoint.sh'],
143
- networks: baseNetworks,
144
- requires_network_mode: true,
145
- env: {
146
- FRP_SERVER_ADDR: TEST_SERVER_ADDRESS,
147
- FRP_SERVER_PORT: TEST_SERVER_PORT.toString(),
148
- NOSANA_ID: TEST_FLOW_ID,
149
- FRP_PROXIES: JSON.stringify(baseProxies),
150
- DEPLOYMENT_ID: '',
151
- JOB_ID: TEST_FLOW_ID,
152
- },
153
- });
154
- });
155
- it('should not include FRP_LB_GROUP_KEY when load balancing is disabled', () => {
156
- const result = provider.generateFrpcContainerConfig(TEST_CONTAINER_NAME, baseNetworks, baseFlow, baseProxies, false, undefined);
157
- expect(result.env).not.toHaveProperty('FRP_LB_GROUP_KEY');
158
- });
159
- it('should include FRP_LB_GROUP_KEY when load balancing is enabled', () => {
160
- const result = provider.generateFrpcContainerConfig(TEST_CONTAINER_NAME, baseNetworks, baseFlow, baseProxies, true, TEST_DEPLOYMENT_HASH);
161
- expect(result.env.FRP_LB_GROUP_KEY).toBe(TEST_DEPLOYMENT_HASH);
162
- });
163
- it('should set DEPLOYMENT_ID from flow.jobDefinition.deployment_id when present', () => {
164
- const flowWithDeployment = {
165
- ...baseFlow,
166
- jobDefinition: {
167
- ...baseFlow.jobDefinition,
168
- deployment_id: TEST_DEPLOYMENT_ID,
169
- },
170
- };
171
- const result = provider.generateFrpcContainerConfig(TEST_CONTAINER_NAME, baseNetworks, flowWithDeployment, baseProxies, false, undefined);
172
- expect(result.env.DEPLOYMENT_ID).toBe(TEST_DEPLOYMENT_ID);
173
- });
174
- it('should set DEPLOYMENT_ID to empty string when deployment_id is not present', () => {
175
- const result = provider.generateFrpcContainerConfig(TEST_CONTAINER_NAME, baseNetworks, baseFlow, baseProxies, false, undefined);
176
- expect(result.env.DEPLOYMENT_ID).toBe('');
177
- });
178
- it('should serialize proxies array to JSON string', () => {
179
- const multipleProxies = [
180
- {
181
- name: TEST_PROXY_NAME_1,
182
- localIp: TEST_CONTAINER_NAME_1,
183
- localPorts: TEST_CONTAINER_PORT_1,
184
- customDomain: TEST_CUSTOM_DOMAIN_1,
185
- },
186
- {
187
- name: TEST_PROXY_NAME_2,
188
- localIp: TEST_CONTAINER_NAME_2,
189
- localPorts: TEST_CONTAINER_PORT_2,
190
- customDomain: TEST_CUSTOM_DOMAIN_2,
191
- },
192
- ];
193
- const result = provider.generateFrpcContainerConfig(TEST_CONTAINER_NAME, baseNetworks, baseFlow, multipleProxies, false, undefined);
194
- expect(result.env.FRP_PROXIES).toBe(JSON.stringify(multipleProxies));
195
- expect(JSON.parse(result.env.FRP_PROXIES)).toStrictEqual(multipleProxies);
196
- });
197
- it('should use flow.id for both NOSANA_ID and JOB_ID', () => {
198
- const flowWithCustomId = {
199
- ...baseFlow,
200
- id: TEST_CUSTOM_FLOW_ID,
201
- };
202
- const result = provider.generateFrpcContainerConfig(TEST_CONTAINER_NAME, baseNetworks, flowWithCustomId, baseProxies, false, undefined);
203
- expect(result.env.NOSANA_ID).toBe(TEST_CUSTOM_FLOW_ID);
204
- expect(result.env.JOB_ID).toBe(TEST_CUSTOM_FLOW_ID);
205
- });
206
- it('should prefix container name with frpc-', () => {
207
- const result = provider.generateFrpcContainerConfig(TEST_CONTAINER_NAME, baseNetworks, baseFlow, baseProxies, false, undefined);
208
- expect(result.name).toBe(TEST_FRPC_CONTAINER_NAME);
209
- });
210
- it('should pass networks through unchanged', () => {
211
- const customNetworks = {
212
- 'network-a': {},
213
- 'network-b': {},
214
- };
215
- const result = provider.generateFrpcContainerConfig(TEST_CONTAINER_NAME, customNetworks, baseFlow, baseProxies, false, undefined);
216
- expect(result.networks).toBe(customNetworks);
217
- });
218
- });
219
- describe('setUpReverseProxyApi', () => {
220
- const testAddress = TEST_ADDRESS;
221
- it('should pull the frpcImage', async () => {
222
- await provider.setUpReverseProxyApi(testAddress, TEST_API_PORT);
223
- expect(mockContainerOrchestration.pullImage).toHaveBeenCalledWith(TEST_FRPC_IMAGE, undefined, expect.any(AbortController));
224
- });
225
- it('should register frpcImage with resource manager', async () => {
226
- await provider.setUpReverseProxyApi(testAddress, TEST_API_PORT);
227
- expect(mockResourceManager.images.setImage).toHaveBeenCalledWith(TEST_FRPC_IMAGE);
228
- });
229
- it('should run frpc container with frpcImage when container does not exist', async () => {
230
- mockContainerOrchestration.doesContainerExist.mockResolvedValue(false);
231
- await provider.setUpReverseProxyApi(testAddress, TEST_API_PORT);
232
- const runFlowContainerCalls = mockContainerOrchestration.runFlowContainer.mock.calls;
233
- const frpcContainerCall = runFlowContainerCalls.find((call) => call[0] === TEST_FRPC_IMAGE);
234
- expect(frpcContainerCall).toBeDefined();
235
- expect(frpcContainerCall[0]).toBe(TEST_FRPC_IMAGE);
236
- });
237
- it('should run frpc container with frpcImage when container has exited', async () => {
238
- mockContainerOrchestration.doesContainerExist.mockResolvedValueOnce(true); // frpc check
239
- mockContainerOrchestration.isContainerExited.mockResolvedValue(true);
240
- await provider.setUpReverseProxyApi(testAddress, TEST_API_PORT);
241
- const runFlowContainerCalls = mockContainerOrchestration.runFlowContainer.mock.calls;
242
- const frpcContainerCall = runFlowContainerCalls.find((call) => call[0] === TEST_FRPC_IMAGE);
243
- expect(frpcContainerCall).toBeDefined();
244
- expect(frpcContainerCall[0]).toBe(TEST_FRPC_IMAGE);
245
- });
246
- });
247
- describe('taskManagerContainerRunOperation', () => {
248
- const baseFlow = {
249
- id: TEST_FLOW_ID,
250
- jobDefinition: {
251
- version: TEST_JOB_DEFINITION_VERSION,
252
- type: TEST_JOB_DEFINITION_TYPE,
253
- ops: [
254
- {
255
- id: TEST_OP_ID,
256
- type: TEST_OP_TYPE,
257
- args: {
258
- image: TEST_OP_CONTAINER_IMAGE,
259
- },
260
- },
261
- ],
262
- },
263
- project: TEST_PROJECT,
264
- state: {
265
- status: TEST_STATE_RUNNING,
266
- startTime: TEST_NOW,
267
- endTime: null,
268
- opStates: [],
269
- },
270
- };
271
- const baseOp = {
272
- id: TEST_OP_ID,
273
- type: TEST_OP_TYPE,
274
- args: {
275
- image: TEST_OP_CONTAINER_IMAGE,
276
- },
277
- };
278
- describe('when operation is exposed', () => {
279
- beforeEach(() => {
280
- isOpExposed.mockReturnValue(true);
281
- getExposePorts.mockReturnValue([
282
- // @ts-ignore
283
- { port: parseInt(TEST_CONTAINER_PORT_1), type: 'http' },
284
- ]);
285
- generateProxies.mockReturnValue({
286
- proxies: [],
287
- idMap: new Map(),
288
- });
289
- });
290
- it('should pull the frpcImage', async () => {
291
- const emitter = new EventEmitter();
292
- const controller = new AbortController();
293
- const operationPromise = provider.taskManagerContainerRunOperation(baseFlow, baseOp, controller, emitter);
294
- await operationPromise;
295
- expect(mockContainerOrchestration.pullImage).toHaveBeenCalledWith(TEST_FRPC_IMAGE, undefined, controller);
296
- });
297
- it('should register frpcImage with resource manager', async () => {
298
- const emitter = new EventEmitter();
299
- const controller = new AbortController();
300
- const operationPromise = provider.taskManagerContainerRunOperation(baseFlow, baseOp, controller, emitter);
301
- await operationPromise;
302
- expect(mockResourceManager.images.setImage).toHaveBeenCalledWith(TEST_FRPC_IMAGE);
303
- });
304
- it('should run frpc container with frpcImage', async () => {
305
- const emitter = new EventEmitter();
306
- const controller = new AbortController();
307
- const operationPromise = provider.taskManagerContainerRunOperation(baseFlow, baseOp, controller, emitter);
308
- await operationPromise;
309
- const runFlowContainerCalls = mockContainerOrchestration.runFlowContainer.mock.calls;
310
- const frpcContainerCall = runFlowContainerCalls.find((call) => call[0] === TEST_FRPC_IMAGE);
311
- expect(frpcContainerCall).toBeDefined();
312
- expect(frpcContainerCall[0]).toBe(TEST_FRPC_IMAGE);
313
- });
314
- });
315
- describe('when operation is NOT exposed', () => {
316
- beforeEach(() => {
317
- isOpExposed.mockReturnValue(false);
318
- getExposePorts.mockReturnValue([]);
319
- });
320
- it('should NOT pull or use frpcImage', async () => {
321
- const emitter = new EventEmitter();
322
- const controller = new AbortController();
323
- const operationPromise = provider.taskManagerContainerRunOperation(baseFlow, baseOp, controller, emitter);
324
- await operationPromise;
325
- const pullImageCalls = mockContainerOrchestration.pullImage.mock.calls;
326
- const frpcPullCall = pullImageCalls.find((call) => call[0] === TEST_FRPC_IMAGE);
327
- expect(frpcPullCall).toBeUndefined();
328
- const setImageCalls = mockResourceManager.images.setImage.mock.calls;
329
- const frpcSetImageCall = setImageCalls.find((call) => call[0] === TEST_FRPC_IMAGE);
330
- expect(frpcSetImageCall).toBeUndefined();
331
- const runFlowContainerCalls = mockContainerOrchestration.runFlowContainer.mock.calls;
332
- const frpcContainerCall = runFlowContainerCalls.find((call) => call[0] === TEST_FRPC_IMAGE);
333
- expect(frpcContainerCall).toBeUndefined();
334
- });
335
- });
336
- });
337
- });
@@ -1,11 +0,0 @@
1
- import { DockerContainerOrchestration } from './docker/index.js';
2
- import { PodmanContainerOrchestration } from './podman/index.js';
3
- export function selectContainerOrchestrationProvider(provider, url, gpu) {
4
- switch (provider) {
5
- case 'podman':
6
- return new PodmanContainerOrchestration(url, gpu);
7
- case 'docker':
8
- default:
9
- return new DockerContainerOrchestration(url, gpu);
10
- }
11
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,33 +0,0 @@
1
- import { addressCommand } from '../command';
2
- import { getAddress } from '../action';
3
- vi.mock('../action', () => ({
4
- getAddress: vi.fn(),
5
- }));
6
- describe('addressCommand', () => {
7
- const mock_getAddress_action = vi.fn();
8
- const parseArgs = ['node', 'get', 'run command'];
9
- beforeEach(() => {
10
- mock_getAddress_action.mockReset();
11
- getAddress.mockImplementation(mock_getAddress_action);
12
- });
13
- it('should call run action', () => {
14
- addressCommand.parse(parseArgs);
15
- expect(mock_getAddress_action).toHaveBeenCalledTimes(1);
16
- });
17
- it('should set post job args', () => {
18
- addressCommand.parse(parseArgs);
19
- expect(addressCommand.args[0]).toBe('run command');
20
- });
21
- it('should have 2 options', () => {
22
- expect(addressCommand.options.length).toBe(2);
23
- });
24
- it.each([
25
- ['--network', '-n', 'mainnet'],
26
- ['--wallet', '-w', '~/.nosana/nosana_key.json'],
27
- ])('should have %s option', (long, short, defaultValue) => {
28
- const option = addressCommand.options.find((i) => i.long === long);
29
- expect(option?.long).toBe(long);
30
- expect(option?.short).toBe(short);
31
- expect(option?.defaultValue).toBe(defaultValue);
32
- });
33
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,37 +0,0 @@
1
- import { runNodeCommand } from '../command';
2
- import { runJob } from '../action';
3
- vi.mock('../action', () => ({
4
- runJob: vi.fn(),
5
- }));
6
- describe('runNodeCommand', () => {
7
- const mock_run_job_action = vi.fn();
8
- const parseArgs = ['node', 'run', 'job definition path'];
9
- beforeEach(() => {
10
- mock_run_job_action.mockReset();
11
- runJob.mockImplementation(mock_run_job_action);
12
- });
13
- it('should call runJob action', () => {
14
- runNodeCommand.parse(parseArgs);
15
- expect(mock_run_job_action).toHaveBeenCalledTimes(1);
16
- });
17
- it('should set run job args', () => {
18
- runNodeCommand.parse(parseArgs);
19
- expect(runNodeCommand.args[0]).toBe('job definition path');
20
- });
21
- it('should have 6 options', () => {
22
- expect(runNodeCommand.options.length).toBe(6);
23
- });
24
- it.each([
25
- ['--config', '-c', '~/.nosana/'],
26
- ['--podman', '--docker', '~/.nosana/podman/podman.sock'],
27
- ['--url', undefined, undefined],
28
- ['--gpu', undefined, 'all'],
29
- ['--verbose', undefined, undefined],
30
- ['--wallet', '-w', '~/.nosana/nosana_key.json'],
31
- ])('should have %s option', (long, short, defaultValue) => {
32
- const option = runNodeCommand.options.find((i) => i.long === long);
33
- expect(option?.long).toBe(long);
34
- expect(option?.short).toBe(short);
35
- expect(option?.defaultValue).toBe(defaultValue);
36
- });
37
- });
@@ -1 +0,0 @@
1
- export {};