@nosana/api 2.11.2 → 2.13.1

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 (222) hide show
  1. package/README.md +37 -0
  2. package/dist/client/createClient.d.ts +5 -3
  3. package/dist/client/createClient.d.ts.map +1 -1
  4. package/dist/client/createClient.js +4 -2
  5. package/dist/client/createClient.js.map +1 -1
  6. package/dist/client/deployment-manager/schema.d.ts +268 -41
  7. package/dist/client/deployment-manager/schema.d.ts.map +1 -1
  8. package/dist/client/index.d.ts +1 -0
  9. package/dist/client/index.d.ts.map +1 -1
  10. package/dist/client/index.js +1 -0
  11. package/dist/client/index.js.map +1 -1
  12. package/dist/client/node/index.d.ts +23 -0
  13. package/dist/client/node/index.d.ts.map +1 -0
  14. package/dist/client/node/index.js +24 -0
  15. package/dist/client/node/index.js.map +1 -0
  16. package/dist/defaults/index.d.ts.map +1 -1
  17. package/dist/defaults/index.js +3 -0
  18. package/dist/defaults/index.js.map +1 -1
  19. package/dist/index.d.ts +32 -8
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +26 -7
  22. package/dist/index.js.map +1 -1
  23. package/dist/routes/auth/index.d.ts.map +1 -1
  24. package/dist/routes/auth/index.js +12 -0
  25. package/dist/routes/auth/index.js.map +1 -1
  26. package/dist/routes/auth/types.d.ts +8 -0
  27. package/dist/routes/auth/types.d.ts.map +1 -1
  28. package/dist/routes/deployments/deployment/actions/deploymentAddSshKeys.d.ts +9 -0
  29. package/dist/routes/deployments/deployment/actions/deploymentAddSshKeys.d.ts.map +1 -0
  30. package/dist/routes/deployments/deployment/actions/deploymentAddSshKeys.js +17 -0
  31. package/dist/routes/deployments/deployment/actions/deploymentAddSshKeys.js.map +1 -0
  32. package/dist/routes/deployments/deployment/actions/deploymentDuplicate.d.ts +17 -0
  33. package/dist/routes/deployments/deployment/actions/deploymentDuplicate.d.ts.map +1 -0
  34. package/dist/routes/deployments/deployment/actions/deploymentDuplicate.js +22 -0
  35. package/dist/routes/deployments/deployment/actions/deploymentDuplicate.js.map +1 -0
  36. package/dist/routes/deployments/deployment/actions/deploymentGetSshKeys.d.ts +7 -0
  37. package/dist/routes/deployments/deployment/actions/deploymentGetSshKeys.d.ts.map +1 -0
  38. package/dist/routes/deployments/deployment/actions/deploymentGetSshKeys.js +14 -0
  39. package/dist/routes/deployments/deployment/actions/deploymentGetSshKeys.js.map +1 -0
  40. package/dist/routes/deployments/deployment/actions/deploymentRemoveSshKeys.d.ts +9 -0
  41. package/dist/routes/deployments/deployment/actions/deploymentRemoveSshKeys.d.ts.map +1 -0
  42. package/dist/routes/deployments/deployment/actions/deploymentRemoveSshKeys.js +17 -0
  43. package/dist/routes/deployments/deployment/actions/deploymentRemoveSshKeys.js.map +1 -0
  44. package/dist/routes/deployments/deployment/actions/deploymentStream.d.ts.map +1 -1
  45. package/dist/routes/deployments/deployment/actions/deploymentStream.js +10 -30
  46. package/dist/routes/deployments/deployment/actions/deploymentStream.js.map +1 -1
  47. package/dist/routes/deployments/deployment/actions/deploymentUpdateMarket.d.ts +13 -0
  48. package/dist/routes/deployments/deployment/actions/deploymentUpdateMarket.d.ts.map +1 -0
  49. package/dist/routes/deployments/deployment/actions/deploymentUpdateMarket.js +24 -0
  50. package/dist/routes/deployments/deployment/actions/deploymentUpdateMarket.js.map +1 -0
  51. package/dist/routes/deployments/deployment/actions/index.d.ts +5 -0
  52. package/dist/routes/deployments/deployment/actions/index.d.ts.map +1 -1
  53. package/dist/routes/deployments/deployment/actions/index.js +5 -0
  54. package/dist/routes/deployments/deployment/actions/index.js.map +1 -1
  55. package/dist/routes/deployments/deployment/createDeployment.d.ts.map +1 -1
  56. package/dist/routes/deployments/deployment/createDeployment.js +95 -12
  57. package/dist/routes/deployments/deployment/createDeployment.js.map +1 -1
  58. package/dist/routes/deployments/types.d.ts +51 -11
  59. package/dist/routes/deployments/types.d.ts.map +1 -1
  60. package/dist/routes/index.d.ts +1 -0
  61. package/dist/routes/index.d.ts.map +1 -1
  62. package/dist/routes/index.js +1 -0
  63. package/dist/routes/index.js.map +1 -1
  64. package/dist/routes/jobs/index.d.ts +8 -2
  65. package/dist/routes/jobs/index.d.ts.map +1 -1
  66. package/dist/routes/jobs/index.js +28 -14
  67. package/dist/routes/jobs/index.js.map +1 -1
  68. package/dist/routes/jobs/types.d.ts +16 -1
  69. package/dist/routes/jobs/types.d.ts.map +1 -1
  70. package/dist/routes/node/__tests__/fixtures.d.ts +30 -0
  71. package/dist/routes/node/__tests__/fixtures.d.ts.map +1 -0
  72. package/dist/routes/node/__tests__/fixtures.js +38 -0
  73. package/dist/routes/node/__tests__/fixtures.js.map +1 -0
  74. package/dist/routes/node/actions/authorization.d.ts +4 -0
  75. package/dist/routes/node/actions/authorization.d.ts.map +1 -0
  76. package/dist/routes/node/actions/authorization.js +9 -0
  77. package/dist/routes/node/actions/authorization.js.map +1 -0
  78. package/dist/routes/node/actions/nodeInfo.d.ts +4 -0
  79. package/dist/routes/node/actions/nodeInfo.d.ts.map +1 -0
  80. package/dist/routes/node/actions/nodeInfo.js +9 -0
  81. package/dist/routes/node/actions/nodeInfo.js.map +1 -0
  82. package/dist/routes/node/actions/nodeJob/index.d.ts +14 -0
  83. package/dist/routes/node/actions/nodeJob/index.d.ts.map +1 -0
  84. package/dist/routes/node/actions/nodeJob/index.js +14 -0
  85. package/dist/routes/node/actions/nodeJob/index.js.map +1 -0
  86. package/dist/routes/node/actions/nodeJob/nodeJobDefinition.d.ts +4 -0
  87. package/dist/routes/node/actions/nodeJob/nodeJobDefinition.d.ts.map +1 -0
  88. package/dist/routes/node/actions/nodeJob/nodeJobDefinition.js +9 -0
  89. package/dist/routes/node/actions/nodeJob/nodeJobDefinition.js.map +1 -0
  90. package/dist/routes/node/actions/nodeJob/nodeJobEndpoints.d.ts +4 -0
  91. package/dist/routes/node/actions/nodeJob/nodeJobEndpoints.d.ts.map +1 -0
  92. package/dist/routes/node/actions/nodeJob/nodeJobEndpoints.js +9 -0
  93. package/dist/routes/node/actions/nodeJob/nodeJobEndpoints.js.map +1 -0
  94. package/dist/routes/node/actions/nodeJob/nodeJobGroup.d.ts +4 -0
  95. package/dist/routes/node/actions/nodeJob/nodeJobGroup.d.ts.map +1 -0
  96. package/dist/routes/node/actions/nodeJob/nodeJobGroup.js +11 -0
  97. package/dist/routes/node/actions/nodeJob/nodeJobGroup.js.map +1 -0
  98. package/dist/routes/node/actions/nodeJob/nodeJobOperation.d.ts +3 -0
  99. package/dist/routes/node/actions/nodeJob/nodeJobOperation.d.ts.map +1 -0
  100. package/dist/routes/node/actions/nodeJob/nodeJobOperation.js +9 -0
  101. package/dist/routes/node/actions/nodeJob/nodeJobOperation.js.map +1 -0
  102. package/dist/routes/node/actions/nodeJob/nodeJobOperations.d.ts +4 -0
  103. package/dist/routes/node/actions/nodeJob/nodeJobOperations.d.ts.map +1 -0
  104. package/dist/routes/node/actions/nodeJob/nodeJobOperations.js +9 -0
  105. package/dist/routes/node/actions/nodeJob/nodeJobOperations.js.map +1 -0
  106. package/dist/routes/node/actions/nodeJob/nodeJobResults.d.ts +4 -0
  107. package/dist/routes/node/actions/nodeJob/nodeJobResults.d.ts.map +1 -0
  108. package/dist/routes/node/actions/nodeJob/nodeJobResults.js +9 -0
  109. package/dist/routes/node/actions/nodeJob/nodeJobResults.js.map +1 -0
  110. package/dist/routes/node/actions/nodeJob/nodeJobStats.d.ts +4 -0
  111. package/dist/routes/node/actions/nodeJob/nodeJobStats.d.ts.map +1 -0
  112. package/dist/routes/node/actions/nodeJob/nodeJobStats.js +9 -0
  113. package/dist/routes/node/actions/nodeJob/nodeJobStats.js.map +1 -0
  114. package/dist/routes/node/actions/nodeJob/restartNodeJobGroup.d.ts +3 -0
  115. package/dist/routes/node/actions/nodeJob/restartNodeJobGroup.d.ts.map +1 -0
  116. package/dist/routes/node/actions/nodeJob/restartNodeJobGroup.js +10 -0
  117. package/dist/routes/node/actions/nodeJob/restartNodeJobGroup.js.map +1 -0
  118. package/dist/routes/node/actions/nodeJob/restartNodeJobOperation.d.ts +3 -0
  119. package/dist/routes/node/actions/nodeJob/restartNodeJobOperation.d.ts.map +1 -0
  120. package/dist/routes/node/actions/nodeJob/restartNodeJobOperation.js +10 -0
  121. package/dist/routes/node/actions/nodeJob/restartNodeJobOperation.js.map +1 -0
  122. package/dist/routes/node/actions/nodeJob/setNodeJobDefinition.d.ts +4 -0
  123. package/dist/routes/node/actions/nodeJob/setNodeJobDefinition.d.ts.map +1 -0
  124. package/dist/routes/node/actions/nodeJob/setNodeJobDefinition.js +12 -0
  125. package/dist/routes/node/actions/nodeJob/setNodeJobDefinition.js.map +1 -0
  126. package/dist/routes/node/actions/nodeJob/stopNodeJob.d.ts +3 -0
  127. package/dist/routes/node/actions/nodeJob/stopNodeJob.d.ts.map +1 -0
  128. package/dist/routes/node/actions/nodeJob/stopNodeJob.js +11 -0
  129. package/dist/routes/node/actions/nodeJob/stopNodeJob.js.map +1 -0
  130. package/dist/routes/node/actions/nodeJob/stopNodeJobGroup.d.ts +3 -0
  131. package/dist/routes/node/actions/nodeJob/stopNodeJobGroup.d.ts.map +1 -0
  132. package/dist/routes/node/actions/nodeJob/stopNodeJobGroup.js +10 -0
  133. package/dist/routes/node/actions/nodeJob/stopNodeJobGroup.js.map +1 -0
  134. package/dist/routes/node/actions/nodeJob/stopNodeJobOperation.d.ts +3 -0
  135. package/dist/routes/node/actions/nodeJob/stopNodeJobOperation.d.ts.map +1 -0
  136. package/dist/routes/node/actions/nodeJob/stopNodeJobOperation.js +10 -0
  137. package/dist/routes/node/actions/nodeJob/stopNodeJobOperation.js.map +1 -0
  138. package/dist/routes/node/actions/nodeJobSsh/index.d.ts +4 -0
  139. package/dist/routes/node/actions/nodeJobSsh/index.d.ts.map +1 -0
  140. package/dist/routes/node/actions/nodeJobSsh/index.js +4 -0
  141. package/dist/routes/node/actions/nodeJobSsh/index.js.map +1 -0
  142. package/dist/routes/node/actions/nodeJobSsh/nodeJobSshAdd.d.ts +5 -0
  143. package/dist/routes/node/actions/nodeJobSsh/nodeJobSshAdd.d.ts.map +1 -0
  144. package/dist/routes/node/actions/nodeJobSsh/nodeJobSshAdd.js +25 -0
  145. package/dist/routes/node/actions/nodeJobSsh/nodeJobSshAdd.js.map +1 -0
  146. package/dist/routes/node/actions/nodeJobSsh/nodeJobSshKeys.d.ts +4 -0
  147. package/dist/routes/node/actions/nodeJobSsh/nodeJobSshKeys.d.ts.map +1 -0
  148. package/dist/routes/node/actions/nodeJobSsh/nodeJobSshKeys.js +12 -0
  149. package/dist/routes/node/actions/nodeJobSsh/nodeJobSshKeys.js.map +1 -0
  150. package/dist/routes/node/actions/nodeJobSsh/nodeJobSshRemove.d.ts +4 -0
  151. package/dist/routes/node/actions/nodeJobSsh/nodeJobSshRemove.d.ts.map +1 -0
  152. package/dist/routes/node/actions/nodeJobSsh/nodeJobSshRemove.js +14 -0
  153. package/dist/routes/node/actions/nodeJobSsh/nodeJobSshRemove.js.map +1 -0
  154. package/dist/routes/node/actions/nodeJobStreams/index.d.ts +3 -0
  155. package/dist/routes/node/actions/nodeJobStreams/index.d.ts.map +1 -0
  156. package/dist/routes/node/actions/nodeJobStreams/index.js +3 -0
  157. package/dist/routes/node/actions/nodeJobStreams/index.js.map +1 -0
  158. package/dist/routes/node/actions/nodeJobStreams/nodeJobInfoStream.d.ts +4 -0
  159. package/dist/routes/node/actions/nodeJobStreams/nodeJobInfoStream.d.ts.map +1 -0
  160. package/dist/routes/node/actions/nodeJobStreams/nodeJobInfoStream.js +5 -0
  161. package/dist/routes/node/actions/nodeJobStreams/nodeJobInfoStream.js.map +1 -0
  162. package/dist/routes/node/actions/nodeJobStreams/nodeJobStatsStream.d.ts +4 -0
  163. package/dist/routes/node/actions/nodeJobStreams/nodeJobStatsStream.d.ts.map +1 -0
  164. package/dist/routes/node/actions/nodeJobStreams/nodeJobStatsStream.js +6 -0
  165. package/dist/routes/node/actions/nodeJobStreams/nodeJobStatsStream.js.map +1 -0
  166. package/dist/routes/node/actions/nodeJobStreams/nodeStream.d.ts +5 -0
  167. package/dist/routes/node/actions/nodeJobStreams/nodeStream.d.ts.map +1 -0
  168. package/dist/routes/node/actions/nodeJobStreams/nodeStream.js +10 -0
  169. package/dist/routes/node/actions/nodeJobStreams/nodeStream.js.map +1 -0
  170. package/dist/routes/node/actions/nodeSocket/index.d.ts +4 -0
  171. package/dist/routes/node/actions/nodeSocket/index.d.ts.map +1 -0
  172. package/dist/routes/node/actions/nodeSocket/index.js +4 -0
  173. package/dist/routes/node/actions/nodeSocket/index.js.map +1 -0
  174. package/dist/routes/node/actions/nodeSocket/nodeJobLogs.d.ts +3 -0
  175. package/dist/routes/node/actions/nodeSocket/nodeJobLogs.d.ts.map +1 -0
  176. package/dist/routes/node/actions/nodeSocket/nodeJobLogs.js +10 -0
  177. package/dist/routes/node/actions/nodeSocket/nodeJobLogs.js.map +1 -0
  178. package/dist/routes/node/actions/nodeSocket/nodeJobStatus.d.ts +3 -0
  179. package/dist/routes/node/actions/nodeSocket/nodeJobStatus.d.ts.map +1 -0
  180. package/dist/routes/node/actions/nodeSocket/nodeJobStatus.js +5 -0
  181. package/dist/routes/node/actions/nodeSocket/nodeJobStatus.js.map +1 -0
  182. package/dist/routes/node/actions/nodeSocket/socket.d.ts +19 -0
  183. package/dist/routes/node/actions/nodeSocket/socket.d.ts.map +1 -0
  184. package/dist/routes/node/actions/nodeSocket/socket.js +38 -0
  185. package/dist/routes/node/actions/nodeSocket/socket.js.map +1 -0
  186. package/dist/routes/node/actions/terminal/grant.d.ts +21 -0
  187. package/dist/routes/node/actions/terminal/grant.d.ts.map +1 -0
  188. package/dist/routes/node/actions/terminal/grant.js +28 -0
  189. package/dist/routes/node/actions/terminal/grant.js.map +1 -0
  190. package/dist/routes/node/actions/terminal/openTerminal.d.ts +4 -0
  191. package/dist/routes/node/actions/terminal/openTerminal.d.ts.map +1 -0
  192. package/dist/routes/node/actions/terminal/openTerminal.js +22 -0
  193. package/dist/routes/node/actions/terminal/openTerminal.js.map +1 -0
  194. package/dist/routes/node/actions/terminal/session.d.ts +7 -0
  195. package/dist/routes/node/actions/terminal/session.d.ts.map +1 -0
  196. package/dist/routes/node/actions/terminal/session.js +133 -0
  197. package/dist/routes/node/actions/terminal/session.js.map +1 -0
  198. package/dist/routes/node/createNodeJob.d.ts +3 -0
  199. package/dist/routes/node/createNodeJob.d.ts.map +1 -0
  200. package/dist/routes/node/createNodeJob.js +39 -0
  201. package/dist/routes/node/createNodeJob.js.map +1 -0
  202. package/dist/routes/node/index.d.ts +8 -0
  203. package/dist/routes/node/index.d.ts.map +1 -0
  204. package/dist/routes/node/index.js +21 -0
  205. package/dist/routes/node/index.js.map +1 -0
  206. package/dist/routes/node/types.d.ts +148 -0
  207. package/dist/routes/node/types.d.ts.map +1 -0
  208. package/dist/routes/node/types.js +2 -0
  209. package/dist/routes/node/types.js.map +1 -0
  210. package/dist/types.d.ts +31 -2
  211. package/dist/types.d.ts.map +1 -1
  212. package/dist/types.js +2 -1
  213. package/dist/types.js.map +1 -1
  214. package/dist/utils/eventStream.d.ts +15 -0
  215. package/dist/utils/eventStream.d.ts.map +1 -0
  216. package/dist/utils/eventStream.js +36 -0
  217. package/dist/utils/eventStream.js.map +1 -0
  218. package/dist/utils/json.d.ts +3 -0
  219. package/dist/utils/json.d.ts.map +1 -0
  220. package/dist/utils/json.js +10 -0
  221. package/dist/utils/json.js.map +1 -0
  222. package/package.json +7 -3
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routes/auth/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAI/D,MAAM,UAAU,mBAAmB,CACjC,MAA2B;IAE3B,OAAO;QACL,KAAK,CAAC,WAAW,CACf,OAAe,EACf,EAAE,WAAW,KAAgC,EAAE;YAE/C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE;gBACvE,IAAI,EAAE;oBACJ,OAAO;oBACP,WAAW;iBACZ;aACF,CAAC,CAAC;YAEH,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnB,MAAM,cAAc,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YACxD,CAAC;YAED,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,CAAC;QACD,KAAK,CAAC,eAAe,CAAC,YAAqB;YACzC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE;gBAClE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE;aAC3C,CAAC,CAAC;YAEH,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnB,MAAM,cAAc,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;YAC5D,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,CAAC,cAAc,CAAC,MAAc;YACjC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE;gBAClE,IAAI,EAAE,EAAE,MAAM,EAAE;aACjB,CAAC,CAAC;YAEH,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnB,MAAM,cAAc,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;YAC5D,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routes/auth/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAI/D,MAAM,UAAU,mBAAmB,CACjC,MAA2B;IAE3B,OAAO;QACL,KAAK,CAAC,WAAW,CACf,OAAe,EACf,EAAE,WAAW,KAAgC,EAAE;YAE/C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE;gBACvE,IAAI,EAAE;oBACJ,OAAO;oBACP,WAAW;iBACZ;aACF,CAAC,CAAC;YAEH,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnB,MAAM,cAAc,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YACxD,CAAC;YAED,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,CAAC;QACD,KAAK,CAAC,UAAU,CACd,OAAe,EACf,EAAE,WAAW,KAAgC,EAAE;YAE/C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE;gBACvE,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;aAC/B,CAAC,CAAC;YAEH,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnB,MAAM,cAAc,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YACxD,CAAC;YAED,qEAAqE;YACrE,wDAAwD;YACxD,MAAM,MAAM,GAAG,GAAG,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC9C,OAAO,WAAW,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;QAC9F,CAAC;QACD,KAAK,CAAC,eAAe,CAAC,YAAqB;YACzC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE;gBAClE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE;aAC3C,CAAC,CAAC;YAEH,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnB,MAAM,cAAc,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;YAC5D,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,CAAC,cAAc,CAAC,MAAc;YACjC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE;gBAClE,IAAI,EAAE,EAAE,MAAM,EAAE;aACjB,CAAC,CAAC;YAEH,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnB,MAAM,cAAc,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;YAC5D,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -5,6 +5,14 @@ export type NosanaAuthApi = {
5
5
  signMessage: (message: string, options?: {
6
6
  includeTime?: boolean;
7
7
  }) => Promise<string>;
8
+ /**
9
+ * Signs `message` and returns it as a Nosana `authorization` header
10
+ * (`message:signature[:timestamp]`), the form a node verifies against the job
11
+ * owner. Lets an API-key caller reach a node without a local wallet.
12
+ */
13
+ signHeader: (message: string, options?: {
14
+ includeTime?: boolean;
15
+ }) => Promise<string>;
8
16
  validateSession: (cookieHeader?: string) => Promise<ValidateSessionResponse>;
9
17
  validateApiKey: (apiKey: string) => Promise<ValidateApiKeyResponse>;
10
18
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/routes/auth/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uCAAuC,CAAC;AAEnE,MAAM,MAAM,uBAAuB,GAAG,KAAK,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAC/H,MAAM,MAAM,sBAAsB,GAAG,KAAK,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAE9H,MAAM,MAAM,aAAa,GAAG;IAC1B,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACvF,eAAe,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC7E,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACrE,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/routes/auth/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uCAAuC,CAAC;AAEnE,MAAM,MAAM,uBAAuB,GAAG,KAAK,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAC/H,MAAM,MAAM,sBAAsB,GAAG,KAAK,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAE9H,MAAM,MAAM,aAAa,GAAG;IAC1B,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACvF;;;;OAIG;IACH,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACtF,eAAe,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC7E,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACrE,CAAA"}
@@ -0,0 +1,9 @@
1
+ import type { DeploymentManagerClient } from '../../../../client/deployment-manager/index.js';
2
+ import type { DeploymentSshKeysResult, DeploymentState } from '../../types.js';
3
+ /**
4
+ * Grants one or more SSH public keys access to a deployment's jobs. Keys already
5
+ * present (same type and material) are left as they are; the node authorizes the
6
+ * new keys on every job currently running.
7
+ */
8
+ export declare function deploymentAddSshKeys(publicKeys: string | string[], client: DeploymentManagerClient, state: DeploymentState): Promise<DeploymentSshKeysResult>;
9
+ //# sourceMappingURL=deploymentAddSshKeys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploymentAddSshKeys.d.ts","sourceRoot":"","sources":["../../../../../src/routes/deployments/deployment/actions/deploymentAddSshKeys.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAC;AAC9F,OAAO,KAAK,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAE/E;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,EAC7B,MAAM,EAAE,uBAAuB,EAC/B,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,uBAAuB,CAAC,CAWlC"}
@@ -0,0 +1,17 @@
1
+ import { errorFormatter } from '../../../../utils/errorFormatter.js';
2
+ /**
3
+ * Grants one or more SSH public keys access to a deployment's jobs. Keys already
4
+ * present (same type and material) are left as they are; the node authorizes the
5
+ * new keys on every job currently running.
6
+ */
7
+ export async function deploymentAddSshKeys(publicKeys, client, state) {
8
+ const { data, error } = await client.POST('/deployments/{deployment}/ssh-keys', {
9
+ params: { path: { deployment: state.id } },
10
+ body: { public_keys: Array.isArray(publicKeys) ? publicKeys : [publicKeys] },
11
+ });
12
+ if (error || !data) {
13
+ throw errorFormatter('Error adding deployment SSH keys', error);
14
+ }
15
+ return data;
16
+ }
17
+ //# sourceMappingURL=deploymentAddSshKeys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploymentAddSshKeys.js","sourceRoot":"","sources":["../../../../../src/routes/deployments/deployment/actions/deploymentAddSshKeys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAKrE;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,UAA6B,EAC7B,MAA+B,EAC/B,KAAsB;IAEtB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE;QAC9E,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE;QAC1C,IAAI,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE;KAC7E,CAAC,CAAC;IAEH,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,cAAc,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { DeploymentManagerClient } from '../../../../client/deployment-manager/index.js';
2
+ import type { components } from '../../../../client/deployment-manager/schema.js';
3
+ import type { DeploymentDuplicateOptions, DeploymentState } from '../../types.js';
4
+ type DeploymentSchema = components['schemas']['Deployment'];
5
+ /**
6
+ * @param options Name for the new deployment and whether to start it right away
7
+ * @throws Error if there is an error duplicating the deployment
8
+ * @returns Promise<DeploymentSchema> The newly created deployment
9
+ * @description Duplicates the deployment.
10
+ * Creates a new DRAFT deployment (or starts it right away with `autostart`) with
11
+ * the same vault, market, replicas, timeout, strategy, confidentiality and SSH
12
+ * keys, and the source's active revision as its first revision. The source is
13
+ * left untouched.
14
+ */
15
+ export declare function deploymentDuplicate(options: DeploymentDuplicateOptions, client: DeploymentManagerClient, state: DeploymentState): Promise<DeploymentSchema>;
16
+ export {};
17
+ //# sourceMappingURL=deploymentDuplicate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploymentDuplicate.d.ts","sourceRoot":"","sources":["../../../../../src/routes/deployments/deployment/actions/deploymentDuplicate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAC;AAC9F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iDAAiD,CAAC;AAClF,OAAO,KAAK,EAAE,0BAA0B,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAElF,KAAK,gBAAgB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC;AAE5D;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,0BAA0B,EACnC,MAAM,EAAE,uBAAuB,EAC/B,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,gBAAgB,CAAC,CAc3B"}
@@ -0,0 +1,22 @@
1
+ import { errorFormatter } from '../../../../utils/errorFormatter.js';
2
+ /**
3
+ * @param options Name for the new deployment and whether to start it right away
4
+ * @throws Error if there is an error duplicating the deployment
5
+ * @returns Promise<DeploymentSchema> The newly created deployment
6
+ * @description Duplicates the deployment.
7
+ * Creates a new DRAFT deployment (or starts it right away with `autostart`) with
8
+ * the same vault, market, replicas, timeout, strategy, confidentiality and SSH
9
+ * keys, and the source's active revision as its first revision. The source is
10
+ * left untouched.
11
+ */
12
+ export async function deploymentDuplicate(options, client, state) {
13
+ const { data, error } = await client.POST('/deployments/{deployment}/duplicate', {
14
+ params: { path: { deployment: state.id } },
15
+ body: options,
16
+ });
17
+ if (error || !data) {
18
+ throw errorFormatter('Error duplicating deployment', error);
19
+ }
20
+ return data;
21
+ }
22
+ //# sourceMappingURL=deploymentDuplicate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploymentDuplicate.js","sourceRoot":"","sources":["../../../../../src/routes/deployments/deployment/actions/deploymentDuplicate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAQrE;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAmC,EACnC,MAA+B,EAC/B,KAAsB;IAEtB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CACvC,qCAAqC,EACrC;QACE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE;QAC1C,IAAI,EAAE,OAAO;KACd,CACF,CAAC;IAEF,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,cAAc,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { DeploymentManagerClient } from '../../../../client/deployment-manager/index.js';
2
+ import type { DeploymentSshKeys, DeploymentState } from '../../types.js';
3
+ /**
4
+ * Gets the SSH public keys configured for a deployment.
5
+ */
6
+ export declare function deploymentGetSshKeys(client: DeploymentManagerClient, state: DeploymentState): Promise<DeploymentSshKeys>;
7
+ //# sourceMappingURL=deploymentGetSshKeys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploymentGetSshKeys.d.ts","sourceRoot":"","sources":["../../../../../src/routes/deployments/deployment/actions/deploymentGetSshKeys.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAC;AAC9F,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEzE;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,uBAAuB,EAC/B,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,iBAAiB,CAAC,CAa5B"}
@@ -0,0 +1,14 @@
1
+ import { errorFormatter } from '../../../../utils/errorFormatter.js';
2
+ /**
3
+ * Gets the SSH public keys configured for a deployment.
4
+ */
5
+ export async function deploymentGetSshKeys(client, state) {
6
+ const { data, error } = await client.GET('/deployments/{deployment}/ssh-keys', {
7
+ params: { path: { deployment: state.id } },
8
+ });
9
+ if (error || !data) {
10
+ throw errorFormatter('Error getting deployment SSH keys', error);
11
+ }
12
+ return data;
13
+ }
14
+ //# sourceMappingURL=deploymentGetSshKeys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploymentGetSshKeys.js","sourceRoot":"","sources":["../../../../../src/routes/deployments/deployment/actions/deploymentGetSshKeys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAKrE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAA+B,EAC/B,KAAsB;IAEtB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CACtC,oCAAoC,EACpC;QACE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE;KAC3C,CACF,CAAC;IAEF,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,cAAc,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { DeploymentManagerClient } from '../../../../client/deployment-manager/index.js';
2
+ import type { DeploymentSshKeysResult, DeploymentState } from '../../types.js';
3
+ /**
4
+ * Revokes one or more SSH public keys from a deployment's jobs. A key is matched
5
+ * by its type and material, so a differing comment still revokes it; the node
6
+ * revokes it on every job currently running.
7
+ */
8
+ export declare function deploymentRemoveSshKeys(publicKeys: string | string[], client: DeploymentManagerClient, state: DeploymentState): Promise<DeploymentSshKeysResult>;
9
+ //# sourceMappingURL=deploymentRemoveSshKeys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploymentRemoveSshKeys.d.ts","sourceRoot":"","sources":["../../../../../src/routes/deployments/deployment/actions/deploymentRemoveSshKeys.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAC;AAC9F,OAAO,KAAK,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAE/E;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,EAC7B,MAAM,EAAE,uBAAuB,EAC/B,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,uBAAuB,CAAC,CAWlC"}
@@ -0,0 +1,17 @@
1
+ import { errorFormatter } from '../../../../utils/errorFormatter.js';
2
+ /**
3
+ * Revokes one or more SSH public keys from a deployment's jobs. A key is matched
4
+ * by its type and material, so a differing comment still revokes it; the node
5
+ * revokes it on every job currently running.
6
+ */
7
+ export async function deploymentRemoveSshKeys(publicKeys, client, state) {
8
+ const { data, error } = await client.DELETE('/deployments/{deployment}/ssh-keys', {
9
+ params: { path: { deployment: state.id } },
10
+ body: { public_keys: Array.isArray(publicKeys) ? publicKeys : [publicKeys] },
11
+ });
12
+ if (error || !data) {
13
+ throw errorFormatter('Error revoking deployment SSH keys', error);
14
+ }
15
+ return data;
16
+ }
17
+ //# sourceMappingURL=deploymentRemoveSshKeys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploymentRemoveSshKeys.js","sourceRoot":"","sources":["../../../../../src/routes/deployments/deployment/actions/deploymentRemoveSshKeys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAKrE;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,UAA6B,EAC7B,MAA+B,EAC/B,KAAsB;IAEtB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,oCAAoC,EAAE;QAChF,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE;QAC1C,IAAI,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE;KAC7E,CAAC,CAAC;IAEH,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,cAAc,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"deploymentStream.d.ts","sourceRoot":"","sources":["../../../../../src/routes/deployments/deployment/actions/deploymentStream.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAC;AAC9F,OAAO,KAAK,EACV,eAAe,EAGf,wBAAwB,EACxB,4BAA4B,EAC7B,MAAM,gBAAgB,CAAC;AAkDxB;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,uBAAuB,EAC/B,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,wBAAwB,GACjC,4BAA4B,CAmC9B"}
1
+ {"version":3,"file":"deploymentStream.d.ts","sourceRoot":"","sources":["../../../../../src/routes/deployments/deployment/actions/deploymentStream.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAC;AAC9F,OAAO,KAAK,EACV,eAAe,EAGf,wBAAwB,EACxB,4BAA4B,EAC7B,MAAM,gBAAgB,CAAC;AAiDxB;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,uBAAuB,EAC/B,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,wBAAwB,GACjC,4BAA4B,CAQ9B"}
@@ -1,4 +1,4 @@
1
- import { EventSource } from 'eventsource';
1
+ import { openEventStream } from '../../../../utils/eventStream.js';
2
2
  /**
3
3
  * Every frame arrives as an unnamed `message`, discriminated by a `type` field
4
4
  * in its payload rather than by the SSE `event:` line, so the handler for a
@@ -30,7 +30,8 @@ function dispatch(handlers, type, event) {
30
30
  * manager's schema.
31
31
  */
32
32
  function isDeploymentStreamEvent(value) {
33
- return typeof value?.type === 'string' && value.type in DISPATCH;
33
+ const type = value?.type;
34
+ return typeof type === 'string' && type in DISPATCH;
34
35
  }
35
36
  /**
36
37
  * @returns A function that closes the stream.
@@ -46,34 +47,13 @@ function isDeploymentStreamEvent(value) {
46
47
  * caller that gave up on the first failure would lose the signal for good.
47
48
  */
48
49
  export function deploymentStream(client, state, handlers) {
49
- const { baseUrl, headers, credentials } = client.connection;
50
- const url = `${baseUrl}/deployments/${encodeURIComponent(state.id)}/stream`;
51
- const source = new EventSource(url, {
52
- fetch: async (input, init) => fetch(input, {
53
- ...init,
54
- // Under cookie auth there are no headers to copy, so the stream has to
55
- // opt into sending the cookie or it authenticates as nobody.
56
- ...(credentials ? { credentials } : {}),
57
- headers: { ...init.headers, ...(await headers()) },
58
- }),
50
+ return openEventStream(client.connection, `/deployments/${encodeURIComponent(state.id)}/stream`, {
51
+ onOpen: handlers.onOpen,
52
+ onError: handlers.onError,
53
+ onMessage: (frame) => {
54
+ if (isDeploymentStreamEvent(frame))
55
+ dispatch(handlers, frame.type, frame);
56
+ },
59
57
  });
60
- source.onopen = () => handlers.onOpen?.();
61
- source.onerror = (error) => handlers.onError?.(error);
62
- source.onmessage = ({ data }) => {
63
- // Malformed frames are ignored; the catch also swallows a handler that
64
- // throws, the price of keeping `parsed` inside the try.
65
- try {
66
- const parsed = JSON.parse(data);
67
- if (!isDeploymentStreamEvent(parsed))
68
- return;
69
- dispatch(handlers, parsed.type, parsed);
70
- }
71
- catch {
72
- return;
73
- }
74
- };
75
- return {
76
- close: () => source.close(),
77
- };
78
58
  }
79
59
  //# sourceMappingURL=deploymentStream.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deploymentStream.js","sourceRoot":"","sources":["../../../../../src/routes/deployments/deployment/actions/deploymentStream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploymentStream.js","sourceRoot":"","sources":["../../../../../src/routes/deployments/deployment/actions/deploymentStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAWnE;;;;;;;GAOG;AACH,MAAM,QAAQ,GAKV;IACF,UAAU,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC;IAC/D,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC;IACjD,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC;IACnD,KAAK,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC;IACrD,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC;IACnD,QAAQ,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC;CAC5D,CAAC;AAEF;;;;GAIG;AACH,SAAS,QAAQ,CACf,QAAkC,EAClC,IAAO,EACP,KAAiC;IAEjC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAClC,CAAC;AAED;;;;;GAKG;AACH,SAAS,uBAAuB,CAAC,KAAc;IAC7C,MAAM,IAAI,GAAI,KAAmC,EAAE,IAAI,CAAC;IACxD,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,QAAQ,CAAC;AACtD,CAAC;AAGD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAA+B,EAC/B,KAAsB,EACtB,QAAkC;IAElC,OAAO,eAAe,CAAC,MAAM,CAAC,UAAU,EAAE,gBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE;QAC/F,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;YACnB,IAAI,uBAAuB,CAAC,KAAK,CAAC;gBAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC5E,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { DeploymentManagerClient } from '../../../../client/deployment-manager/index.js';
2
+ import type { DeploymentState } from '../../types.js';
3
+ /**
4
+ * @param market New market address for the deployment
5
+ * @throws Error if there is an error updating the market
6
+ * @returns Promise<void>
7
+ * @description Updates the market of the deployment.
8
+ * A RUNNING deployment's current jobs are stopped and relisted on the new market:
9
+ * SIMPLE and SIMPLE-EXTEND relist the stopped count immediately, INFINITE refills
10
+ * each stopped replica, and SCHEDULED lists on its next scheduled run.
11
+ */
12
+ export declare function deploymentUpdateMarket(market: string, client: DeploymentManagerClient, state: DeploymentState): Promise<void>;
13
+ //# sourceMappingURL=deploymentUpdateMarket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploymentUpdateMarket.d.ts","sourceRoot":"","sources":["../../../../../src/routes/deployments/deployment/actions/deploymentUpdateMarket.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAC;AAC9F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,uBAAuB,EAC/B,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,IAAI,CAAC,CAiBf"}
@@ -0,0 +1,24 @@
1
+ import { errorFormatter } from '../../../../utils/errorFormatter.js';
2
+ /**
3
+ * @param market New market address for the deployment
4
+ * @throws Error if there is an error updating the market
5
+ * @returns Promise<void>
6
+ * @description Updates the market of the deployment.
7
+ * A RUNNING deployment's current jobs are stopped and relisted on the new market:
8
+ * SIMPLE and SIMPLE-EXTEND relist the stopped count immediately, INFINITE refills
9
+ * each stopped replica, and SCHEDULED lists on its next scheduled run.
10
+ */
11
+ export async function deploymentUpdateMarket(market, client, state) {
12
+ const { data, error } = await client.PATCH('/deployments/{deployment}/update-market', {
13
+ params: { path: { deployment: state.id } },
14
+ body: { market },
15
+ });
16
+ if (error || !data) {
17
+ throw errorFormatter('Error updating deployment market', error);
18
+ }
19
+ Object.assign(state, {
20
+ market: data.market,
21
+ updated_at: new Date(data.updated_at),
22
+ });
23
+ }
24
+ //# sourceMappingURL=deploymentUpdateMarket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploymentUpdateMarket.js","sourceRoot":"","sources":["../../../../../src/routes/deployments/deployment/actions/deploymentUpdateMarket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAKrE;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAAc,EACd,MAA+B,EAC/B,KAAsB;IAEtB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CACxC,yCAAyC,EACzC;QACE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE;QAC1C,IAAI,EAAE,EAAE,MAAM,EAAE;KACjB,CACF,CAAC;IAEF,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,cAAc,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;QACnB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,UAAU,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;KACtC,CAAC,CAAC;AACL,CAAC"}
@@ -1,15 +1,20 @@
1
+ export * from './deploymentAddSshKeys.js';
1
2
  export * from './deploymentArchive.js';
2
3
  export * from './deploymentCreateNewRevision.js';
3
4
  export * from './deploymentDelete.js';
5
+ export * from './deploymentDuplicate.js';
4
6
  export * from './deploymentGetEvents.js';
5
7
  export * from './deploymentGetJob.js';
6
8
  export * from './deploymentGetJobs.js';
7
9
  export * from './deploymentGetRevisions.js';
10
+ export * from './deploymentGetSshKeys.js';
8
11
  export * from './deploymentGetTasks.js';
12
+ export * from './deploymentRemoveSshKeys.js';
9
13
  export * from './deploymentStart.js';
10
14
  export * from './deploymentStop.js';
11
15
  export * from './deploymentGenerateAuthHeader.js';
12
16
  export * from './deploymentUpdateActiveRevision.js';
17
+ export * from './deploymentUpdateMarket.js';
13
18
  export * from './deploymentUpdateReplicaCount.js';
14
19
  export * from './deploymentUpdateSchedule.js';
15
20
  export * from './deploymentUpdateTimeout.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/routes/deployments/deployment/actions/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/routes/deployments/deployment/actions/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC"}
@@ -1,15 +1,20 @@
1
+ export * from './deploymentAddSshKeys.js';
1
2
  export * from './deploymentArchive.js';
2
3
  export * from './deploymentCreateNewRevision.js';
3
4
  export * from './deploymentDelete.js';
5
+ export * from './deploymentDuplicate.js';
4
6
  export * from './deploymentGetEvents.js';
5
7
  export * from './deploymentGetJob.js';
6
8
  export * from './deploymentGetJobs.js';
7
9
  export * from './deploymentGetRevisions.js';
10
+ export * from './deploymentGetSshKeys.js';
8
11
  export * from './deploymentGetTasks.js';
12
+ export * from './deploymentRemoveSshKeys.js';
9
13
  export * from './deploymentStart.js';
10
14
  export * from './deploymentStop.js';
11
15
  export * from './deploymentGenerateAuthHeader.js';
12
16
  export * from './deploymentUpdateActiveRevision.js';
17
+ export * from './deploymentUpdateMarket.js';
13
18
  export * from './deploymentUpdateReplicaCount.js';
14
19
  export * from './deploymentUpdateSchedule.js';
15
20
  export * from './deploymentUpdateTimeout.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/routes/deployments/deployment/actions/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/routes/deployments/deployment/actions/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"createDeployment.d.ts","sourceRoot":"","sources":["../../../../src/routes/deployments/deployment/createDeployment.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAEV,UAAU,EAEV,aAAa,EAYd,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACV,sBAAsB,EACtB,gCAAgC,EACjC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8CAA8C,CAAC;AAE/E,KAAK,gBAAgB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC;AAE5D,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,gBAAgB,EAC5B,OAAO,EAAE,sBAAsB,EAC/B,SAAS,EAAE,IAAI,GACd,aAAa,CAAC;AACjB,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,gBAAgB,EAC5B,OAAO,EAAE,gCAAgC,EACzC,SAAS,EAAE,KAAK,GACf,UAAU,CAAC"}
1
+ {"version":3,"file":"createDeployment.d.ts","sourceRoot":"","sources":["../../../../src/routes/deployments/deployment/createDeployment.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAEV,UAAU,EAEV,aAAa,EAgBd,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACV,sBAAsB,EACtB,gCAAgC,EACjC,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8CAA8C,CAAC;AAE/E,KAAK,gBAAgB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC;AAE5D,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,gBAAgB,EAC5B,OAAO,EAAE,sBAAsB,EAC/B,SAAS,EAAE,IAAI,GACd,aAAa,CAAC;AACjB,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,gBAAgB,EAC5B,OAAO,EAAE,gCAAgC,EACzC,SAAS,EAAE,KAAK,GACf,UAAU,CAAC"}
@@ -1,5 +1,6 @@
1
- import { deploymentStop, deploymentStart, deploymentGetEvents, deploymentStream, deploymentGetJob, deploymentGetJobs, deploymentGetRevisions, deploymentArchive, deploymentUpdateReplicaCount, deploymentGetTasks, deploymentUpdateTimeout, deploymentCreateNewRevision, deploymentUpdateActiveRevision, deploymentUpdateSchedule, deploymentUpdateName, deploymentGenerateAuthHeader, deploymentDelete, } from './actions/index.js';
1
+ import { deploymentStop, deploymentStart, deploymentGetEvents, deploymentStream, deploymentGetJob, deploymentGetJobs, deploymentGetRevisions, deploymentGetSshKeys, deploymentArchive, deploymentUpdateReplicaCount, deploymentGetTasks, deploymentUpdateTimeout, deploymentCreateNewRevision, deploymentUpdateActiveRevision, deploymentUpdateSchedule, deploymentAddSshKeys, deploymentRemoveSshKeys, deploymentUpdateName, deploymentGenerateAuthHeader, deploymentDelete, deploymentUpdateMarket, deploymentDuplicate, } from './actions/index.js';
2
2
  import { createVault } from './createVault.js';
3
+ import { createNosanaNodeApi } from '../../node/index.js';
3
4
  export function createDeployment(deployment, clients, hasApiKey) {
4
5
  const client = clients.deploymentManager;
5
6
  let state = {
@@ -92,6 +93,31 @@ export function createDeployment(deployment, clients, hasApiKey) {
92
93
  const updateName = async (name) => {
93
94
  await deploymentUpdateName(name, client, state);
94
95
  };
96
+ /**
97
+ * @param market New market address for the deployment
98
+ * @throws Error if there is an error updating the market
99
+ * @returns Promise<void>
100
+ * @description Updates the market of the deployment.
101
+ * A RUNNING deployment's current jobs are stopped and relisted on the new market.
102
+ */
103
+ const updateMarket = async (market) => {
104
+ await deploymentUpdateMarket(market, client, state);
105
+ };
106
+ /**
107
+ * @param options Name for the new deployment and whether to start it right away
108
+ * @throws Error if there is an error duplicating the deployment
109
+ * @returns Promise<Deployment | ApiDeployment> The newly created deployment
110
+ * @description Duplicates the deployment.
111
+ * The copy shares the vault, market, replicas, timeout, strategy, confidentiality
112
+ * and SSH keys, and starts from this deployment's active revision. It is left as
113
+ * a DRAFT unless `autostart` is set. This deployment is left untouched.
114
+ */
115
+ const duplicate = async (options) => {
116
+ const copy = await deploymentDuplicate(options, client, state);
117
+ return !hasApiKey && 'solana' in clients
118
+ ? createDeployment(copy, clients, false)
119
+ : createDeployment(copy, clients, true);
120
+ };
95
121
  /**
96
122
  * @param active_revision
97
123
  * @throws Error if there is an error updating the active revision
@@ -121,21 +147,75 @@ export function createDeployment(deployment, clients, hasApiKey) {
121
147
  const generateAuthHeader = async (query) => {
122
148
  return await deploymentGenerateAuthHeader(client, state, query);
123
149
  };
124
- const getJob = async (job) => {
125
- return await deploymentGetJob(client, state.id, job);
150
+ /**
151
+ * @description SSH key management for the deployment's jobs.
152
+ * Keys are stored on the deployment (no new revision or restart) and injected
153
+ * into every job posted from then on. Running jobs are updated in place where
154
+ * their node allows it; check the returned `jobs` for nodes that did not.
155
+ */
156
+ const ssh = {
157
+ /**
158
+ * @throws Error if there is an error fetching the keys
159
+ * @returns Promise<string[]> The SSH public keys currently granted access
160
+ */
161
+ keys: async () => {
162
+ const { public_keys } = await deploymentGetSshKeys(client, state);
163
+ return public_keys;
164
+ },
165
+ /**
166
+ * @param publicKeys One or more OpenSSH public keys to grant access
167
+ * @throws Error if there is an error updating the keys
168
+ * @returns Promise<DeploymentSshKeysResult> The stored set and per-job node results
169
+ * @description Grants the keys access. Keys already present are left as they are.
170
+ */
171
+ add: async (publicKeys) => {
172
+ return await deploymentAddSshKeys(publicKeys, client, state);
173
+ },
174
+ /**
175
+ * @param publicKeys One or more OpenSSH public keys to revoke
176
+ * @throws Error if there is an error updating the keys
177
+ * @returns Promise<DeploymentSshKeysResult> The stored set and per-job node results
178
+ * @description Revokes the keys. A removed key stops working on a running job only when that job restarts.
179
+ */
180
+ remove: async (publicKeys) => {
181
+ return await deploymentRemoveSshKeys(publicKeys, client, state);
182
+ },
183
+ };
184
+ // Built lazily on first node access and reused. Every node call is authorized
185
+ // by the deployment manager signing on the deployment's behalf (no local
186
+ // wallet; works under API-key auth).
187
+ let nodeFactory;
188
+ const nodeJob = (node, jobAddress) => {
189
+ nodeFactory ?? (nodeFactory = createNosanaNodeApi({
190
+ environment: clients.environment,
191
+ authParams: { generate: (message) => generateAuthHeader({ message, includeTime: 'true' }) },
192
+ options: clients.options,
193
+ }));
194
+ return nodeFactory(node).job(jobAddress);
126
195
  };
196
+ /** Attaches a job's node job API once it has been scheduled onto a node. */
197
+ const attachNode = (item) => (item.node ? Object.assign({}, item, nodeJob(item.node, item.job)) : item);
198
+ const attachJobList = (list) => ({
199
+ ...list,
200
+ jobs: list.jobs.map(attachNode),
201
+ nextPage: list.nextPage ? async () => attachJobList(await list.nextPage()) : null,
202
+ previousPage: list.previousPage ? async () => attachJobList(await list.previousPage()) : null,
203
+ });
127
204
  /**
128
- * @param params Pagination parameters (optional: cursor, limit, sort_order)
129
- * @returns Promise<JobListResult>
130
- * @throws Error if there is an error fetching the jobs
131
- * @throws Error if the deployment is not found
132
- * @description Fetches all jobs for the deployment.
133
- * This will return the current jobs associated with the deployment.
134
- * It is useful for monitoring the deployment's job status.
205
+ * One of the deployment's jobs, with its node job API (`ssh`, `terminal`,
206
+ * `definition`, `logs`, …) attached: `(await getJob(id)).ssh.add(key)`.
135
207
  */
136
- const getJobs = async (searchParams) => {
137
- return await deploymentGetJobs(client, state, searchParams);
208
+ const getJob = async (jobId) => {
209
+ const data = await deploymentGetJob(client, state.id, jobId);
210
+ if (!data.node)
211
+ throw new Error(`Job ${jobId} has no assigned node.`);
212
+ return Object.assign({}, data, nodeJob(data.node, jobId));
138
213
  };
214
+ /**
215
+ * The deployment's jobs. Each job that has been scheduled onto a node carries
216
+ * its node job API (`ssh`, `terminal`, …); queued jobs are returned as-is.
217
+ */
218
+ const getJobs = async (searchParams) => attachJobList(await deploymentGetJobs(client, state, searchParams));
139
219
  /**
140
220
  * @param params Pagination parameters (optional: cursor, limit, sort_order)
141
221
  * @returns Promise<RevisionListResult>
@@ -203,12 +283,15 @@ export function createDeployment(deployment, clients, hasApiKey) {
203
283
  getEvents,
204
284
  stream,
205
285
  generateAuthHeader,
286
+ ssh,
206
287
  createRevision,
207
288
  updateReplicaCount,
208
289
  updateActiveRevision,
209
290
  updateTimeout,
210
291
  updateSchedule,
211
292
  updateName,
293
+ updateMarket,
294
+ duplicate,
212
295
  });
213
296
  }
214
297
  //# sourceMappingURL=createDeployment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createDeployment.js","sourceRoot":"","sources":["../../../../src/routes/deployments/deployment/createDeployment.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,4BAA4B,EAC5B,kBAAkB,EAClB,uBAAuB,EACvB,2BAA2B,EAC3B,8BAA8B,EAC9B,wBAAwB,EACxB,oBAAoB,EACpB,4BAA4B,EAC5B,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAsC/C,MAAM,UAAU,gBAAgB,CAC9B,UAA4B,EAC5B,OAAkE,EAClE,SAAuB;IAEvB,MAAM,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IACzC,IAAI,KAAK,GAAoB;QAC3B,GAAG,UAAU;QACb,UAAU,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAC3C,UAAU,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;KAC5C,CAAC;IAEF;;;;;OAKG;IACH,MAAM,KAAK,GAAG,KAAK,IAAmB,EAAE;QACtC,MAAM,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC,CAAC;IAEF;;;;;;;OAOG;IACH,MAAM,IAAI,GAAG,KAAK,IAAmB,EAAE;QACrC,MAAM,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC,CAAC;IAEF;;;;;;;OAOG;IACH,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACzB,MAAM,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC,CAAC;IAEF;;;;;;;;OAQG;IACH,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAyB,EAA2B,EAAE;QAC5E,OAAO,MAAM,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC,CAAC;IAEF;;;;;;;OAOG;IACH,MAAM,cAAc,GAAG,KAAK,EAAE,aAA4B,EAAE,EAAE;QAC5D,MAAM,2BAA2B,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAClE,CAAC,CAAC;IAEF;;;;;;;OAOG;IACH,MAAM,kBAAkB,GAAG,KAAK,EAAE,QAAgB,EAAE,EAAE;QACpD,MAAM,4BAA4B,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC,CAAC;IAEF;;;;;;;OAOG;IACH,MAAM,aAAa,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE;QAC9C,MAAM,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC,CAAC;IAEF;;;;;OAKG;IACH,MAAM,UAAU,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE;QACxC,MAAM,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC,CAAC;IAEF;;;;;;OAMG;IACH,MAAM,oBAAoB,GAAG,KAAK,EAAE,eAAuB,EAAE,EAAE;QAC7D,MAAM,8BAA8B,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACvE,CAAC,CAAC;IAEF;;;;;;OAMG;IACH,MAAM,cAAc,GAAG,KAAK,EAAE,QAAgB,EAAE,EAAE;QAChD,MAAM,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC,CAAC;IAEF;;;;;OAKG;IACH,MAAM,kBAAkB,GAAG,KAAK,EAAE,KAAkC,EAAE,EAAE;QACtE,OAAO,MAAM,4BAA4B,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAClE,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,KAAK,EAAE,GAAW,EAAE,EAAE;QACnC,OAAO,MAAM,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACvD,CAAC,CAAC;IAEF;;;;;;;;OAQG;IACH,MAAM,OAAO,GAAG,KAAK,EAAE,YAAyC,EAA0B,EAAE;QAC1F,OAAO,MAAM,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IAC9D,CAAC,CAAC;IAEF;;;;;;;;OAQG;IACH,MAAM,YAAY,GAAG,KAAK,EAAE,YAA8C,EAA+B,EAAE;QACzG,OAAO,MAAM,sBAAsB,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IACnE,CAAC,CAAC;IAEF;;;;;;;;OAQG;IACH,MAAM,SAAS,GAAG,KAAK,EAAE,YAA2C,EAA4B,EAAE;QAChG,OAAO,MAAM,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IAChE,CAAC,CAAC;IAEF;;;;;;OAMG;IACH,MAAM,MAAM,GAAG,CACb,QAAkC,EACJ,EAAE;QAChC,OAAO,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC,CAAC;IAEF;;;;;;;;;OASG;IACH,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE;QAClC,OAAO,MAAM,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE;YAChD,kEAAkE;YAClE,KAAK,GAAG,SAAS,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;QAC1B,GAAG,CAAC,CAAC,SAAS,IAAI,QAAQ,IAAI,OAAO;YACnC,CAAC,CAAC;gBACA,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC;aAC3D;YACD,CAAC,CAAC,EAAE,CAAC;QACP,KAAK;QACL,IAAI;QACJ,OAAO;QACP,MAAM,EAAE,gBAAgB;QACxB,QAAQ;QACR,MAAM;QACN,OAAO;QACP,YAAY;QACZ,SAAS;QACT,MAAM;QACN,kBAAkB;QAClB,cAAc;QACd,kBAAkB;QAClB,oBAAoB;QACpB,aAAa;QACb,cAAc;QACd,UAAU;KACX,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"createDeployment.js","sourceRoot":"","sources":["../../../../src/routes/deployments/deployment/createDeployment.ts"],"names":[],"mappings":"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"}