@codiac.io/codiac-cli 1.2.217 → 1.2.219

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 (1268) hide show
  1. package/README.md +4651 -4636
  2. package/bin/dev +16 -16
  3. package/bin/dev.cmd +2 -2
  4. package/bin/run +3 -3
  5. package/bin/run.cmd +3 -3
  6. package/codiac.json +9 -9
  7. package/dist/apis/codiac-api/common/api-client-base.d.ts +165 -165
  8. package/dist/apis/codiac-api/common/api-client-base.js +547 -547
  9. package/dist/apis/codiac-api/common/api-user-creds.d.ts +7 -7
  10. package/dist/apis/codiac-api/common/api-user-creds.js +18 -18
  11. package/dist/apis/codiac-api/common/config-loader.d.ts +6 -6
  12. package/dist/apis/codiac-api/common/config-loader.js +18 -18
  13. package/dist/apis/codiac-api/common/endpoint-spec.d.ts +17 -17
  14. package/dist/apis/codiac-api/common/endpoint-spec.js +27 -27
  15. package/dist/apis/codiac-api/common/security/api-auth-methods-legacy.d.ts +87 -87
  16. package/dist/apis/codiac-api/common/security/api-auth-methods-legacy.js +367 -367
  17. package/dist/apis/codiac-api/common/security/auth-constants.d.ts +15 -15
  18. package/dist/apis/codiac-api/common/security/auth-constants.js +21 -21
  19. package/dist/apis/codiac-api/common/security/i-auth-client.d.ts +44 -44
  20. package/dist/apis/codiac-api/common/security/i-auth-client.js +2 -2
  21. package/dist/apis/codiac-api/common/security/token-holder.d.ts +13 -13
  22. package/dist/apis/codiac-api/common/security/token-holder.js +17 -17
  23. package/dist/apis/codiac-api/common/utils.d.ts +23 -23
  24. package/dist/apis/codiac-api/common/utils.js +82 -82
  25. package/dist/apis/codiac-api/contracts/index.d.ts +1 -1
  26. package/dist/apis/codiac-api/contracts/index.js +4 -4
  27. package/dist/apis/codiac-api/gen/client-config.d.ts +10 -10
  28. package/dist/apis/codiac-api/gen/client-config.js +28 -28
  29. package/dist/apis/codiac-api/gen/client.d.ts +1663 -1663
  30. package/dist/apis/codiac-api/gen/client.js +15629 -15629
  31. package/dist/apis/codiac-api/gen/contracts.d.ts +2722 -2722
  32. package/dist/apis/codiac-api/gen/contracts.js +402 -402
  33. package/dist/apis/codiac-api/index.d.ts +3 -3
  34. package/dist/apis/codiac-api/index.js +8 -8
  35. package/dist/apis/codiac-relay/common/api-client-base.d.ts +165 -165
  36. package/dist/apis/codiac-relay/common/api-client-base.js +547 -547
  37. package/dist/apis/codiac-relay/common/api-user-creds.d.ts +7 -7
  38. package/dist/apis/codiac-relay/common/api-user-creds.js +18 -18
  39. package/dist/apis/codiac-relay/common/config-loader.d.ts +6 -6
  40. package/dist/apis/codiac-relay/common/config-loader.js +18 -18
  41. package/dist/apis/codiac-relay/common/endpoint-spec.d.ts +17 -17
  42. package/dist/apis/codiac-relay/common/endpoint-spec.js +27 -27
  43. package/dist/apis/codiac-relay/common/security/api-auth-methods-legacy.d.ts +87 -87
  44. package/dist/apis/codiac-relay/common/security/api-auth-methods-legacy.js +367 -367
  45. package/dist/apis/codiac-relay/common/security/auth-constants.d.ts +15 -15
  46. package/dist/apis/codiac-relay/common/security/auth-constants.js +21 -21
  47. package/dist/apis/codiac-relay/common/security/i-auth-client.d.ts +44 -44
  48. package/dist/apis/codiac-relay/common/security/i-auth-client.js +2 -2
  49. package/dist/apis/codiac-relay/common/security/token-holder.d.ts +13 -13
  50. package/dist/apis/codiac-relay/common/security/token-holder.js +17 -17
  51. package/dist/apis/codiac-relay/common/utils.d.ts +23 -23
  52. package/dist/apis/codiac-relay/common/utils.js +82 -82
  53. package/dist/apis/codiac-relay/contracts/index.d.ts +1 -1
  54. package/dist/apis/codiac-relay/contracts/index.js +4 -4
  55. package/dist/apis/codiac-relay/gen/client-config.d.ts +10 -10
  56. package/dist/apis/codiac-relay/gen/client-config.js +28 -28
  57. package/dist/apis/codiac-relay/gen/client.d.ts +244 -244
  58. package/dist/apis/codiac-relay/gen/client.js +1862 -1862
  59. package/dist/apis/codiac-relay/gen/contracts.d.ts +3115 -3115
  60. package/dist/apis/codiac-relay/gen/contracts.js +434 -434
  61. package/dist/apis/codiac-relay/index.d.ts +3 -3
  62. package/dist/apis/codiac-relay/index.js +8 -8
  63. package/dist/cli-common/ImagesList.js +66 -66
  64. package/dist/cli-common/argument-manager.d.ts +28 -28
  65. package/dist/cli-common/argument-manager.js +194 -194
  66. package/dist/cli-common/built-in-cli-user-input.d.ts +18 -18
  67. package/dist/cli-common/built-in-cli-user-input.js +309 -309
  68. package/dist/cli-common/cli-interfaces.js +6 -6
  69. package/dist/cli-common/command-base.d.ts +72 -72
  70. package/dist/cli-common/command-base.js +182 -182
  71. package/dist/cli-common/entities/index.d.ts +1 -1
  72. package/dist/cli-common/entities/index.js +4 -4
  73. package/dist/cli-common/entities/prompt-choice.d.ts +7 -7
  74. package/dist/cli-common/entities/prompt-choice.js +2 -2
  75. package/dist/cli-common/file-selector.d.ts +48 -48
  76. package/dist/cli-common/file-selector.js +186 -186
  77. package/dist/cli-common/i-user-input-provider.js +18 -18
  78. package/dist/cli-common/index.d.ts +4 -4
  79. package/dist/cli-common/index.js +10 -10
  80. package/dist/cli-common/mock-ui.d.ts +27 -27
  81. package/dist/cli-common/mock-ui.js +82 -82
  82. package/dist/cli-common/prompt-select-fuzzy.d.ts +19 -19
  83. package/dist/cli-common/prompt-select-fuzzy.js +118 -118
  84. package/dist/cli-common/tenant-contextualizer.js +435 -435
  85. package/dist/cli-common/test/tenant-contextualizer.spec.js +142 -142
  86. package/dist/cli-entities/output-format-enum.d.ts +7 -7
  87. package/dist/cli-entities/output-format-enum.js +11 -11
  88. package/dist/cli-entities/prompt-choice.js +5 -5
  89. package/dist/codiac-constants.d.ts +38 -38
  90. package/dist/codiac-constants.js +43 -43
  91. package/dist/codiac-entities/asset-binding.d.ts +12 -12
  92. package/dist/codiac-entities/asset-binding.js +17 -17
  93. package/dist/codiac-entities/azure-container-registry.d.ts +4 -4
  94. package/dist/codiac-entities/azure-container-registry.js +2 -2
  95. package/dist/codiac-entities/azure-service-principal.d.ts +23 -23
  96. package/dist/codiac-entities/azure-service-principal.js +23 -23
  97. package/dist/codiac-entities/cloud-account-ref.d.ts +28 -28
  98. package/dist/codiac-entities/cloud-account-ref.js +36 -36
  99. package/dist/codiac-entities/deployment-temp.js +132 -132
  100. package/dist/codiac-entities/i-cloud-account-ref.d.ts +5 -5
  101. package/dist/codiac-entities/i-cloud-account-ref.js +2 -2
  102. package/dist/command-base-enterprise.d.ts +121 -121
  103. package/dist/command-base-enterprise.js +523 -523
  104. package/dist/command-base-tenantless.d.ts +44 -44
  105. package/dist/command-base-tenantless.js +179 -179
  106. package/dist/commands/asset/create.d.ts +42 -42
  107. package/dist/commands/asset/create.js +475 -475
  108. package/dist/commands/asset/destroy.d.ts +20 -20
  109. package/dist/commands/asset/destroy.js +128 -128
  110. package/dist/commands/asset/helm.d.ts +23 -23
  111. package/dist/commands/asset/helm.js +152 -152
  112. package/dist/commands/asset/list.d.ts +28 -28
  113. package/dist/commands/asset/list.js +171 -171
  114. package/dist/commands/asset/probe/create.d.ts +38 -38
  115. package/dist/commands/asset/probe/create.js +186 -186
  116. package/dist/commands/asset/recycle.d.ts +23 -23
  117. package/dist/commands/asset/recycle.js +174 -174
  118. package/dist/commands/asset/view.d.ts +188 -188
  119. package/dist/commands/asset/view.js +1394 -1394
  120. package/dist/commands/asset/volume/create.d.ts +23 -23
  121. package/dist/commands/asset/volume/create.js +175 -175
  122. package/dist/commands/asset/volume/delete.d.ts +19 -19
  123. package/dist/commands/asset/volume/delete.js +111 -111
  124. package/dist/commands/asset/volume/list.d.ts +19 -19
  125. package/dist/commands/asset/volume/list.js +69 -69
  126. package/dist/commands/branch/current.d.ts +10 -10
  127. package/dist/commands/branch/current.js +33 -33
  128. package/dist/commands/branch/list.d.ts +15 -15
  129. package/dist/commands/branch/list.js +55 -55
  130. package/dist/commands/branch.d.ts +12 -12
  131. package/dist/commands/branch.js +41 -41
  132. package/dist/commands/build.d.ts +38 -38
  133. package/dist/commands/build.js +119 -119
  134. package/dist/commands/cabinet/create.d.ts +21 -21
  135. package/dist/commands/cabinet/create.js +107 -107
  136. package/dist/commands/cabinet/list.d.ts +23 -23
  137. package/dist/commands/cabinet/list.js +133 -133
  138. package/dist/commands/cabinet/obliterate.d.ts +20 -20
  139. package/dist/commands/cabinet/obliterate.js +82 -82
  140. package/dist/commands/cli.d.ts +10 -10
  141. package/dist/commands/cli.js +99 -99
  142. package/dist/commands/commit.d.ts +11 -11
  143. package/dist/commands/commit.js +39 -39
  144. package/dist/commands/config/add.d.ts +78 -78
  145. package/dist/commands/config/add.js +559 -559
  146. package/dist/commands/config/delete.d.ts +18 -18
  147. package/dist/commands/config/delete.js +118 -118
  148. package/dist/commands/config/deploy.d.ts +22 -22
  149. package/dist/commands/config/deploy.js +124 -124
  150. package/dist/commands/config/import.d.ts +27 -27
  151. package/dist/commands/config/import.js +195 -195
  152. package/dist/commands/config/view.d.ts +25 -25
  153. package/dist/commands/config/view.js +120 -120
  154. package/dist/commands/csp/login.d.ts +18 -18
  155. package/dist/commands/csp/login.js +122 -122
  156. package/dist/commands/csp/logout.d.ts +15 -15
  157. package/dist/commands/csp/logout.js +73 -73
  158. package/dist/commands/dep/create.d.ts +13 -13
  159. package/dist/commands/dep/create.js +40 -40
  160. package/dist/commands/dep/install.d.ts +9 -9
  161. package/dist/commands/dep/install.js +29 -29
  162. package/dist/commands/dep/list.d.ts +55 -55
  163. package/dist/commands/dep/list.js +97 -97
  164. package/dist/commands/dep/remove.d.ts +12 -12
  165. package/dist/commands/dep/remove.js +61 -61
  166. package/dist/commands/dep/source.d.ts +13 -13
  167. package/dist/commands/dep/source.js +82 -82
  168. package/dist/commands/dep/syncup.d.ts +11 -11
  169. package/dist/commands/dep/syncup.js +53 -53
  170. package/dist/commands/dep/unsource.d.ts +14 -14
  171. package/dist/commands/dep/unsource.js +67 -67
  172. package/dist/commands/dep/upgrade.d.ts +44 -44
  173. package/dist/commands/dep/upgrade.js +243 -243
  174. package/dist/commands/dep.d.ts +12 -12
  175. package/dist/commands/dep.js +50 -50
  176. package/dist/commands/deploy.d.ts +38 -38
  177. package/dist/commands/deploy.js +385 -385
  178. package/dist/commands/enterprise/create.d.ts +20 -20
  179. package/dist/commands/enterprise/create.js +97 -97
  180. package/dist/commands/enterprise/list.d.ts +14 -14
  181. package/dist/commands/enterprise/list.js +83 -83
  182. package/dist/commands/env/add.d.ts +22 -22
  183. package/dist/commands/env/add.js +199 -199
  184. package/dist/commands/environment/create.d.ts +19 -19
  185. package/dist/commands/environment/create.js +88 -88
  186. package/dist/commands/environment/list.d.ts +25 -25
  187. package/dist/commands/environment/list.js +157 -157
  188. package/dist/commands/filestore/capture.d.ts +31 -31
  189. package/dist/commands/filestore/capture.js +341 -341
  190. package/dist/commands/host/map.d.ts +33 -33
  191. package/dist/commands/host/map.js +346 -346
  192. package/dist/commands/identity/delete.d.ts +15 -15
  193. package/dist/commands/identity/delete.js +82 -82
  194. package/dist/commands/identity/list.d.ts +11 -11
  195. package/dist/commands/identity/list.js +42 -42
  196. package/dist/commands/identity.d.ts +22 -22
  197. package/dist/commands/identity.js +76 -76
  198. package/dist/commands/imageRegistry/capture.d.ts +27 -27
  199. package/dist/commands/imageRegistry/capture.js +159 -159
  200. package/dist/commands/imageRegistry/forget.d.ts +23 -23
  201. package/dist/commands/imageRegistry/forget.js +160 -160
  202. package/dist/commands/imageRegistry/pullSecret/set.d.ts +27 -27
  203. package/dist/commands/imageRegistry/pullSecret/set.js +310 -310
  204. package/dist/commands/imageRegistry/pullSecret/unset.d.ts +24 -24
  205. package/dist/commands/imageRegistry/pullSecret/unset.js +242 -242
  206. package/dist/commands/images/add.d.ts +25 -25
  207. package/dist/commands/images/add.js +75 -75
  208. package/dist/commands/images/list.d.ts +14 -14
  209. package/dist/commands/images/list.js +71 -71
  210. package/dist/commands/images/patch.d.ts +14 -14
  211. package/dist/commands/images/patch.js +92 -92
  212. package/dist/commands/images/remove.d.ts +12 -12
  213. package/dist/commands/images/remove.js +37 -37
  214. package/dist/commands/images/version/bump.d.ts +18 -18
  215. package/dist/commands/images/version/bump.js +60 -60
  216. package/dist/commands/images/version.d.ts +16 -16
  217. package/dist/commands/images/version.js +64 -64
  218. package/dist/commands/init.d.ts +17 -17
  219. package/dist/commands/init.js +130 -130
  220. package/dist/commands/kit/create.d.ts +25 -25
  221. package/dist/commands/kit/create.js +141 -141
  222. package/dist/commands/login.d.ts +22 -22
  223. package/dist/commands/login.js +92 -92
  224. package/dist/commands/logout.d.ts +8 -8
  225. package/dist/commands/logout.js +36 -36
  226. package/dist/commands/merge.d.ts +12 -12
  227. package/dist/commands/merge.js +42 -42
  228. package/dist/commands/noc/cluster/create.d.ts +28 -28
  229. package/dist/commands/noc/cluster/create.js +135 -135
  230. package/dist/commands/noc/cluster/deinit.d.ts +17 -17
  231. package/dist/commands/noc/cluster/deinit.js +116 -116
  232. package/dist/commands/noc/cluster/destroy.d.ts +20 -20
  233. package/dist/commands/noc/cluster/destroy.js +137 -137
  234. package/dist/commands/noc/cluster/forget.d.ts +16 -16
  235. package/dist/commands/noc/cluster/forget.js +136 -136
  236. package/dist/commands/noc/cluster/grant.d.ts +24 -24
  237. package/dist/commands/noc/cluster/grant.js +159 -159
  238. package/dist/commands/noc/cluster/init.d.ts +17 -17
  239. package/dist/commands/noc/cluster/init.js +116 -116
  240. package/dist/commands/noc/cluster/list.d.ts +21 -21
  241. package/dist/commands/noc/cluster/list.js +83 -83
  242. package/dist/commands/noc/cluster/recreate.d.ts +28 -28
  243. package/dist/commands/noc/cluster/recreate.js +188 -188
  244. package/dist/commands/pkg/add.d.ts +15 -15
  245. package/dist/commands/pkg/add.js +42 -42
  246. package/dist/commands/pkg/list.d.ts +9 -9
  247. package/dist/commands/pkg/list.js +32 -32
  248. package/dist/commands/pkg/patch.d.ts +13 -13
  249. package/dist/commands/pkg/patch.js +78 -78
  250. package/dist/commands/pkg/remove.d.ts +12 -12
  251. package/dist/commands/pkg/remove.js +69 -69
  252. package/dist/commands/portal.d.ts +11 -11
  253. package/dist/commands/portal.js +81 -81
  254. package/dist/commands/publish.d.ts +21 -21
  255. package/dist/commands/publish.js +51 -51
  256. package/dist/commands/pull.d.ts +13 -13
  257. package/dist/commands/pull.js +29 -29
  258. package/dist/commands/push.d.ts +13 -13
  259. package/dist/commands/push.js +29 -29
  260. package/dist/commands/run.d.ts +35 -35
  261. package/dist/commands/run.js +193 -193
  262. package/dist/commands/secretStore/capture.d.ts +27 -27
  263. package/dist/commands/secretStore/capture.js +174 -174
  264. package/dist/commands/secretStore/forget.d.ts +20 -20
  265. package/dist/commands/secretStore/forget.js +146 -146
  266. package/dist/commands/stage.d.ts +13 -13
  267. package/dist/commands/stage.js +64 -64
  268. package/dist/commands/stash.d.ts +13 -13
  269. package/dist/commands/stash.js +30 -30
  270. package/dist/commands/status.d.ts +12 -12
  271. package/dist/commands/status.js +48 -48
  272. package/dist/commands/stop.d.ts +10 -10
  273. package/dist/commands/stop.js +51 -51
  274. package/dist/commands/switch.d.ts +11 -11
  275. package/dist/commands/switch.js +41 -41
  276. package/dist/commands/sync.d.ts +14 -14
  277. package/dist/commands/sync.js +20 -20
  278. package/dist/commands/tenant/create.d.ts +27 -27
  279. package/dist/commands/tenant/create.js +119 -119
  280. package/dist/commands/tenant/switch.d.ts +24 -24
  281. package/dist/commands/tenant/switch.js +108 -108
  282. package/dist/commands/unstage.d.ts +12 -12
  283. package/dist/commands/unstage.js +57 -57
  284. package/dist/commands/whereami.d.ts +15 -15
  285. package/dist/commands/whereami.js +122 -122
  286. package/dist/commands/whoami.d.ts +8 -8
  287. package/dist/commands/whoami.js +39 -39
  288. package/dist/errors/NoMembershipError.d.ts +8 -8
  289. package/dist/errors/NoMembershipError.js +14 -14
  290. package/dist/index.d.ts +1 -1
  291. package/dist/index.js +16 -16
  292. package/dist/log-update-wrapper.d.ts +24 -24
  293. package/dist/log-update-wrapper.js +28 -28
  294. package/dist/log4js-logger.d.ts +26 -26
  295. package/dist/log4js-logger.js +137 -137
  296. package/dist/ops/INTERFACES_CLI.d.ts +3 -3
  297. package/dist/ops/INTERFACES_CLI.js +7 -7
  298. package/dist/ops/LocalOps.d.ts +417 -417
  299. package/dist/ops/LocalOps.js +3121 -3121
  300. package/dist/ops/azure-container-registry-client/azure-container-registry-client.js +147 -147
  301. package/dist/ops/cli-path-walker.js +54 -54
  302. package/dist/ops/codiac-entities/dependency.d.ts +5 -5
  303. package/dist/ops/codiac-entities/dependency.js +10 -10
  304. package/dist/ops/codiac-entities/index.d.ts +1 -1
  305. package/dist/ops/codiac-entities/index.js +4 -4
  306. package/dist/ops/composite-image-registry-client.js +73 -73
  307. package/dist/ops/data/cli-context-repo.d.ts +61 -61
  308. package/dist/ops/data/cli-context-repo.js +269 -269
  309. package/dist/ops/data/index.d.ts +2 -2
  310. package/dist/ops/data/index.js +5 -5
  311. package/dist/ops/data/npm-config-repo.d.ts +13 -13
  312. package/dist/ops/data/npm-config-repo.js +64 -64
  313. package/dist/ops/docker-config.js +130 -130
  314. package/dist/ops/docker-constants.js +21 -21
  315. package/dist/ops/docker-credentials-store.js +237 -237
  316. package/dist/ops/docker-registry-api-client/docker-registry-api-client.js +288 -288
  317. package/dist/ops/docker-registry-api-client/entities/blob-sum.d.ts +7 -7
  318. package/dist/ops/docker-registry-api-client/entities/blob-sum.js +12 -12
  319. package/dist/ops/docker-registry-api-client/entities/docker-access-actions-enum.d.ts +5 -5
  320. package/dist/ops/docker-registry-api-client/entities/docker-access-actions-enum.js +9 -9
  321. package/dist/ops/docker-registry-api-client/entities/docker-auth-token-criteria.d.ts +30 -30
  322. package/dist/ops/docker-registry-api-client/entities/docker-auth-token-criteria.js +35 -35
  323. package/dist/ops/docker-registry-api-client/entities/i-docker-error-response.d.ts +55 -55
  324. package/dist/ops/docker-registry-api-client/entities/i-docker-error-response.js +51 -51
  325. package/dist/ops/docker-registry-api-client/entities/i-docker-list-response.d.ts +7 -7
  326. package/dist/ops/docker-registry-api-client/entities/i-docker-list-response.js +2 -2
  327. package/dist/ops/docker-registry-api-client/entities/image-repository.d.ts +31 -31
  328. package/dist/ops/docker-registry-api-client/entities/image-repository.js +29 -29
  329. package/dist/ops/docker-registry-api-client/entities/image-tag-criteria.d.ts +8 -8
  330. package/dist/ops/docker-registry-api-client/entities/image-tag-criteria.js +13 -13
  331. package/dist/ops/docker-registry-api-client/entities/image-tag-list.d.ts +7 -7
  332. package/dist/ops/docker-registry-api-client/entities/image-tag-list.js +12 -12
  333. package/dist/ops/docker-registry-api-client/entities/manifest-criteria.d.ts +9 -9
  334. package/dist/ops/docker-registry-api-client/entities/manifest-criteria.js +14 -14
  335. package/dist/ops/docker-registry-api-client/entities/manifest.d.ts +15 -15
  336. package/dist/ops/docker-registry-api-client/entities/manifest.js +20 -20
  337. package/dist/ops/docker-registry-api-client/entities/repository-criteria.d.ts +16 -16
  338. package/dist/ops/docker-registry-api-client/entities/repository-criteria.js +23 -23
  339. package/dist/ops/docker-registry-api-client/entities/token-response.d.ts +15 -15
  340. package/dist/ops/docker-registry-api-client/entities/token-response.js +14 -14
  341. package/dist/ops/docker-registry-api-client/entities/token.d.ts +17 -17
  342. package/dist/ops/docker-registry-api-client/entities/token.js +21 -21
  343. package/dist/ops/docker-registry-api-client/entities/version-check-criteria.d.ts +4 -4
  344. package/dist/ops/docker-registry-api-client/entities/version-check-criteria.js +9 -9
  345. package/dist/ops/dx-constants.d.ts +26 -26
  346. package/dist/ops/dx-constants.js +42 -42
  347. package/dist/ops/entities/ImageBuildContext.d.ts +12 -12
  348. package/dist/ops/entities/ImageBuildContext.js +18 -18
  349. package/dist/ops/entities/PipelineContext.d.ts +21 -21
  350. package/dist/ops/entities/PipelineContext.js +22 -22
  351. package/dist/ops/entities/TenantContext.d.ts +10 -10
  352. package/dist/ops/entities/TenantContext.js +15 -15
  353. package/dist/ops/entities/ThaulConfig.js +29 -29
  354. package/dist/ops/entities/azure-service-principal.d.ts +23 -23
  355. package/dist/ops/entities/azure-service-principal.js +23 -23
  356. package/dist/ops/entities/better-logger.js +1 -1
  357. package/dist/ops/entities/branch.d.ts +13 -13
  358. package/dist/ops/entities/branch.js +15 -15
  359. package/dist/ops/entities/cli-config.d.ts +48 -48
  360. package/dist/ops/entities/cli-config.js +60 -60
  361. package/dist/ops/entities/docker-image.d.ts +60 -60
  362. package/dist/ops/entities/docker-image.js +2 -2
  363. package/dist/ops/entities/helm-spec.d.ts +15 -15
  364. package/dist/ops/entities/helm-spec.js +22 -22
  365. package/dist/ops/entities/index.d.ts +4 -4
  366. package/dist/ops/entities/index.js +11 -11
  367. package/dist/ops/entities/operation-meta.d.ts +8 -8
  368. package/dist/ops/entities/operation-meta.js +18 -18
  369. package/dist/ops/entities/scaffolding.d.ts +19 -19
  370. package/dist/ops/entities/scaffolding.js +20 -20
  371. package/dist/ops/extensions/azart-identity-adapter.d.ts +19 -19
  372. package/dist/ops/extensions/azart-identity-adapter.js +96 -96
  373. package/dist/ops/extensions/npm-identity-adapter-base.d.ts +13 -13
  374. package/dist/ops/extensions/npm-identity-adapter-base.js +2 -2
  375. package/dist/ops/extensions/npmjs-identity-adapter.d.ts +13 -13
  376. package/dist/ops/extensions/npmjs-identity-adapter.js +63 -63
  377. package/dist/ops/git-ops.d.ts +8 -8
  378. package/dist/ops/git-ops.js +13 -13
  379. package/dist/ops/i-client-for-image-registry.js +16 -16
  380. package/dist/ops/i-identity-handler.d.ts +33 -33
  381. package/dist/ops/i-identity-handler.js +164 -164
  382. package/dist/ops/i-output-styler.js +16 -16
  383. package/dist/ops/index.d.ts +12 -12
  384. package/dist/ops/index.js +14 -14
  385. package/dist/ops/json-utils.js +58 -58
  386. package/dist/ops/no-style-output-styler.js +29 -29
  387. package/dist/ops/oauth2-client.ts/oauth2-client.d.ts +23 -23
  388. package/dist/ops/oauth2-client.ts/oauth2-client.js +63 -63
  389. package/dist/ops/project-initializer.d.ts +36 -36
  390. package/dist/ops/project-initializer.js +218 -218
  391. package/dist/ops/scaffolding/base-scaffolding.d.ts +7 -7
  392. package/dist/ops/scaffolding/base-scaffolding.js +20 -20
  393. package/dist/ops/scaffolding/codiac-api-scaffolding.d.ts +7 -7
  394. package/dist/ops/scaffolding/codiac-api-scaffolding.js +63 -63
  395. package/dist/ops/scaffolding/typescript-scaffolding.d.ts +15 -15
  396. package/dist/ops/scaffolding/typescript-scaffolding.js +162 -162
  397. package/dist/ops/test/mock-ui.d.ts +26 -26
  398. package/dist/ops/test/mock-ui.js +87 -87
  399. package/dist/ops/test/test-extensions.d.ts +13 -13
  400. package/dist/ops/test/test-extensions.js +70 -70
  401. package/dist/ops/test/when-a-recursive-file-search-is-run.spec.d.ts +2 -2
  402. package/dist/ops/test/when-a-recursive-file-search-is-run.spec.js +54 -54
  403. package/dist/ops/test/when-git-branchline-is-attempted.spec.d.ts +2 -2
  404. package/dist/ops/test/when-git-branchline-is-attempted.spec.js +37 -37
  405. package/dist/ops/test/when-versions-are-parsed.spec.d.ts +2 -2
  406. package/dist/ops/test/when-versions-are-parsed.spec.js +61 -61
  407. package/dist/ops/throwing-user-input-provider.js +36 -36
  408. package/dist/ops/workspace-versioner.d.ts +122 -122
  409. package/dist/ops/workspace-versioner.js +291 -291
  410. package/dist/prettify.d.ts +7 -7
  411. package/dist/prettify.js +23 -23
  412. package/dist/read-stdin.d.ts +2 -2
  413. package/dist/read-stdin.js +28 -28
  414. package/dist/relay/contracts/contracts.d.ts +207 -207
  415. package/dist/relay/contracts/contracts.js +229 -229
  416. package/dist/relay/extended-relay-client.d.ts +27 -27
  417. package/dist/relay/extended-relay-client.js +27 -27
  418. package/dist/relay/relay-container.d.ts +41 -41
  419. package/dist/relay/relay-container.js +297 -297
  420. package/dist/relay/wsclient/relay-socket-listener.d.ts +68 -68
  421. package/dist/relay/wsclient/relay-socket-listener.js +164 -164
  422. package/dist/relay/wsclient/relay-websocket-client.d.ts +33 -33
  423. package/dist/relay/wsclient/relay-websocket-client.js +178 -178
  424. package/dist/relay/wsclient/rx-websocket-subject.d.ts +25 -25
  425. package/dist/relay/wsclient/rx-websocket-subject.js +133 -133
  426. package/dist/relay/wsclient/socket-contracts.d.ts +22 -22
  427. package/dist/relay/wsclient/socket-contracts.js +2 -2
  428. package/dist/standard-probes.d.ts +5 -5
  429. package/dist/standard-probes.js +21 -21
  430. package/dist/uilogic/build-configurator.d.ts +21 -21
  431. package/dist/uilogic/build-configurator.js +110 -110
  432. package/dist/uilogic/cloud-provider-contextualizer.d.ts +46 -46
  433. package/dist/uilogic/cloud-provider-contextualizer.js +193 -193
  434. package/dist/uilogic/cloud-resource-configurator-factory.d.ts +41 -41
  435. package/dist/uilogic/cloud-resource-configurator-factory.js +157 -157
  436. package/dist/uilogic/cloud-resource-configurators/aws-resource-configurator.d.ts +38 -38
  437. package/dist/uilogic/cloud-resource-configurators/aws-resource-configurator.js +347 -347
  438. package/dist/uilogic/cloud-resource-configurators/az-acr-cli-authenticator.js +77 -77
  439. package/dist/uilogic/cloud-resource-configurators/az-interactive-login-configurator.d.ts +42 -42
  440. package/dist/uilogic/cloud-resource-configurators/az-interactive-login-configurator.js +247 -247
  441. package/dist/uilogic/cloud-resource-configurators/azure-resource-configurator.d.ts +110 -110
  442. package/dist/uilogic/cloud-resource-configurators/azure-resource-configurator.js +785 -785
  443. package/dist/uilogic/cloud-resource-configurators/azure-types.js +9 -9
  444. package/dist/uilogic/cloud-resource-configurators/docker-hub-resource-configurator.d.ts +24 -24
  445. package/dist/uilogic/cloud-resource-configurators/docker-hub-resource-configurator.js +105 -105
  446. package/dist/uilogic/cloud-resource-configurators/helm-resource-configurator.d.ts +16 -16
  447. package/dist/uilogic/cloud-resource-configurators/helm-resource-configurator.js +44 -44
  448. package/dist/uilogic/cloud-resource-configurators/unsupported-resource-configurator.d.ts +18 -18
  449. package/dist/uilogic/cloud-resource-configurators/unsupported-resource-configurator.js +61 -61
  450. package/dist/uilogic/enterprise-contextualizer.d.ts +76 -76
  451. package/dist/uilogic/enterprise-contextualizer.js +670 -670
  452. package/dist/uilogic/enterprise-contextualizer.js.map +1 -1
  453. package/dist/uilogic/environment-contextualizer.d.ts +15 -15
  454. package/dist/uilogic/environment-contextualizer.js +42 -42
  455. package/dist/uilogic/i-cluster-configurator.d.ts +9 -9
  456. package/dist/uilogic/i-cluster-configurator.js +2 -2
  457. package/dist/uilogic/i-login-configurator.d.ts +6 -6
  458. package/dist/uilogic/i-login-configurator.js +2 -2
  459. package/dist/uilogic/i-registry-configurator.d.ts +6 -6
  460. package/dist/uilogic/i-registry-configurator.js +2 -2
  461. package/dist/uilogic/i-secret-store-configurator.d.ts +7 -7
  462. package/dist/uilogic/i-secret-store-configurator.js +2 -2
  463. package/dist/uilogic/image-configurator.d.ts +133 -133
  464. package/dist/uilogic/image-configurator.js +577 -577
  465. package/dist/uilogic/image-contextualizer.d.ts +24 -24
  466. package/dist/uilogic/image-contextualizer.js +89 -89
  467. package/dist/uilogic/image-registry-contextualizer.d.ts +28 -28
  468. package/dist/uilogic/image-registry-contextualizer.js +126 -126
  469. package/dist/uilogic/index.d.ts +9 -9
  470. package/dist/uilogic/index.js +13 -13
  471. package/dist/uilogic/prompt-select-fuzzy.js +138 -138
  472. package/dist/uilogic/render-methods.d.ts +12 -12
  473. package/dist/uilogic/render-methods.js +64 -64
  474. package/dist/uilogic/tenant-contextualizer.d.ts +79 -79
  475. package/dist/uilogic/tenant-contextualizer.js +577 -577
  476. package/dist/user-context-loader.d.ts +60 -60
  477. package/dist/user-context-loader.js +183 -183
  478. package/lib/api-command-base.d.ts +0 -0
  479. package/lib/api-command-base.js +52 -0
  480. package/lib/api-command-base.js.map +1 -0
  481. package/lib/apis/codiac-api/common/api-client-base.d.ts +165 -0
  482. package/lib/apis/codiac-api/common/api-client-base.js +548 -0
  483. package/lib/apis/codiac-api/common/api-client-base.js.map +1 -0
  484. package/lib/apis/codiac-api/common/api-user-creds.d.ts +7 -0
  485. package/lib/apis/codiac-api/common/api-user-creds.js +19 -0
  486. package/lib/apis/codiac-api/common/api-user-creds.js.map +1 -0
  487. package/lib/apis/codiac-api/common/config-loader.d.ts +6 -0
  488. package/lib/apis/codiac-api/common/config-loader.js +19 -0
  489. package/lib/apis/codiac-api/common/config-loader.js.map +1 -0
  490. package/lib/apis/codiac-api/common/endpoint-spec.d.ts +17 -0
  491. package/lib/apis/codiac-api/common/endpoint-spec.js +28 -0
  492. package/lib/apis/codiac-api/common/endpoint-spec.js.map +1 -0
  493. package/lib/apis/codiac-api/common/security/api-auth-methods-legacy.d.ts +87 -0
  494. package/lib/apis/codiac-api/common/security/api-auth-methods-legacy.js +368 -0
  495. package/lib/apis/codiac-api/common/security/api-auth-methods-legacy.js.map +1 -0
  496. package/lib/apis/codiac-api/common/security/auth-constants.d.ts +15 -0
  497. package/lib/apis/codiac-api/common/security/auth-constants.js +22 -0
  498. package/lib/apis/codiac-api/common/security/auth-constants.js.map +1 -0
  499. package/lib/apis/codiac-api/common/security/i-auth-client.d.ts +44 -0
  500. package/lib/apis/codiac-api/common/security/i-auth-client.js +3 -0
  501. package/lib/apis/codiac-api/common/security/i-auth-client.js.map +1 -0
  502. package/lib/apis/codiac-api/common/security/token-holder.d.ts +13 -0
  503. package/lib/apis/codiac-api/common/security/token-holder.js +18 -0
  504. package/lib/apis/codiac-api/common/security/token-holder.js.map +1 -0
  505. package/lib/apis/codiac-api/common/utils.d.ts +23 -0
  506. package/lib/apis/codiac-api/common/utils.js +83 -0
  507. package/lib/apis/codiac-api/common/utils.js.map +1 -0
  508. package/lib/apis/codiac-api/contracts/index.d.ts +1 -0
  509. package/lib/apis/codiac-api/contracts/index.js +5 -0
  510. package/lib/apis/codiac-api/contracts/index.js.map +1 -0
  511. package/lib/apis/codiac-api/gen/client-config.d.ts +10 -0
  512. package/lib/apis/codiac-api/gen/client-config.js +29 -0
  513. package/lib/apis/codiac-api/gen/client-config.js.map +1 -0
  514. package/lib/apis/codiac-api/gen/client.d.ts +1663 -0
  515. package/lib/apis/codiac-api/gen/client.js +15630 -0
  516. package/lib/apis/codiac-api/gen/client.js.map +1 -0
  517. package/lib/apis/codiac-api/gen/contracts.d.ts +2722 -0
  518. package/lib/apis/codiac-api/gen/contracts.js +403 -0
  519. package/lib/apis/codiac-api/gen/contracts.js.map +1 -0
  520. package/lib/apis/codiac-api/index.d.ts +3 -0
  521. package/lib/apis/codiac-api/index.js +9 -0
  522. package/lib/apis/codiac-api/index.js.map +1 -0
  523. package/lib/apis/codiac-relay/common/api-client-base.d.ts +165 -0
  524. package/lib/apis/codiac-relay/common/api-client-base.js +548 -0
  525. package/lib/apis/codiac-relay/common/api-client-base.js.map +1 -0
  526. package/lib/apis/codiac-relay/common/api-user-creds.d.ts +7 -0
  527. package/lib/apis/codiac-relay/common/api-user-creds.js +19 -0
  528. package/lib/apis/codiac-relay/common/api-user-creds.js.map +1 -0
  529. package/lib/apis/codiac-relay/common/config-loader.d.ts +6 -0
  530. package/lib/apis/codiac-relay/common/config-loader.js +19 -0
  531. package/lib/apis/codiac-relay/common/config-loader.js.map +1 -0
  532. package/lib/apis/codiac-relay/common/endpoint-spec.d.ts +17 -0
  533. package/lib/apis/codiac-relay/common/endpoint-spec.js +28 -0
  534. package/lib/apis/codiac-relay/common/endpoint-spec.js.map +1 -0
  535. package/lib/apis/codiac-relay/common/security/api-auth-methods-legacy.d.ts +87 -0
  536. package/lib/apis/codiac-relay/common/security/api-auth-methods-legacy.js +368 -0
  537. package/lib/apis/codiac-relay/common/security/api-auth-methods-legacy.js.map +1 -0
  538. package/lib/apis/codiac-relay/common/security/auth-constants.d.ts +15 -0
  539. package/lib/apis/codiac-relay/common/security/auth-constants.js +22 -0
  540. package/lib/apis/codiac-relay/common/security/auth-constants.js.map +1 -0
  541. package/lib/apis/codiac-relay/common/security/i-auth-client.d.ts +44 -0
  542. package/lib/apis/codiac-relay/common/security/i-auth-client.js +3 -0
  543. package/lib/apis/codiac-relay/common/security/i-auth-client.js.map +1 -0
  544. package/lib/apis/codiac-relay/common/security/token-holder.d.ts +13 -0
  545. package/lib/apis/codiac-relay/common/security/token-holder.js +18 -0
  546. package/lib/apis/codiac-relay/common/security/token-holder.js.map +1 -0
  547. package/lib/apis/codiac-relay/common/utils.d.ts +23 -0
  548. package/lib/apis/codiac-relay/common/utils.js +83 -0
  549. package/lib/apis/codiac-relay/common/utils.js.map +1 -0
  550. package/lib/apis/codiac-relay/contracts/index.d.ts +1 -0
  551. package/lib/apis/codiac-relay/contracts/index.js +5 -0
  552. package/lib/apis/codiac-relay/contracts/index.js.map +1 -0
  553. package/lib/apis/codiac-relay/gen/client-config.d.ts +10 -0
  554. package/lib/apis/codiac-relay/gen/client-config.js +29 -0
  555. package/lib/apis/codiac-relay/gen/client-config.js.map +1 -0
  556. package/lib/apis/codiac-relay/gen/client.d.ts +244 -0
  557. package/lib/apis/codiac-relay/gen/client.js +1863 -0
  558. package/lib/apis/codiac-relay/gen/client.js.map +1 -0
  559. package/lib/apis/codiac-relay/gen/contracts.d.ts +3111 -0
  560. package/lib/apis/codiac-relay/gen/contracts.js +435 -0
  561. package/lib/apis/codiac-relay/gen/contracts.js.map +1 -0
  562. package/lib/apis/codiac-relay/index.d.ts +3 -0
  563. package/lib/apis/codiac-relay/index.js +9 -0
  564. package/lib/apis/codiac-relay/index.js.map +1 -0
  565. package/lib/azure-rest-client.d.ts +6 -0
  566. package/lib/azure-rest-client.js +36 -0
  567. package/lib/azure-rest-client.js.map +1 -0
  568. package/lib/cli-common/ImagesList.d.ts +0 -0
  569. package/lib/cli-common/ImagesList.js +67 -0
  570. package/lib/cli-common/ImagesList.js.map +1 -0
  571. package/lib/cli-common/argument-manager.d.ts +28 -0
  572. package/lib/cli-common/argument-manager.js +195 -0
  573. package/lib/cli-common/argument-manager.js.map +1 -0
  574. package/lib/cli-common/built-in-cli-user-input.d.ts +18 -0
  575. package/lib/cli-common/built-in-cli-user-input.js +310 -0
  576. package/lib/cli-common/built-in-cli-user-input.js.map +1 -0
  577. package/lib/cli-common/cli-interfaces.d.ts +0 -0
  578. package/lib/cli-common/cli-interfaces.js +7 -0
  579. package/lib/cli-common/cli-interfaces.js.map +1 -0
  580. package/lib/cli-common/command-base.d.ts +72 -0
  581. package/lib/cli-common/command-base.js +182 -0
  582. package/lib/cli-common/command-base.js.map +1 -0
  583. package/lib/cli-common/entities/index.d.ts +1 -0
  584. package/lib/cli-common/entities/index.js +5 -0
  585. package/lib/cli-common/entities/index.js.map +1 -0
  586. package/lib/cli-common/entities/prompt-choice.d.ts +7 -0
  587. package/lib/cli-common/entities/prompt-choice.js +3 -0
  588. package/lib/cli-common/entities/prompt-choice.js.map +1 -0
  589. package/lib/cli-common/file-selector.d.ts +48 -0
  590. package/lib/cli-common/file-selector.js +187 -0
  591. package/lib/cli-common/file-selector.js.map +1 -0
  592. package/lib/cli-common/i-user-input-provider.d.ts +0 -0
  593. package/lib/cli-common/i-user-input-provider.js +19 -0
  594. package/lib/cli-common/i-user-input-provider.js.map +1 -0
  595. package/lib/cli-common/index.d.ts +4 -0
  596. package/lib/cli-common/index.js +11 -0
  597. package/lib/cli-common/index.js.map +1 -0
  598. package/lib/cli-common/mock-ui.d.ts +27 -0
  599. package/lib/cli-common/mock-ui.js +83 -0
  600. package/lib/cli-common/mock-ui.js.map +1 -0
  601. package/lib/cli-common/prompt-select-fuzzy.d.ts +19 -0
  602. package/lib/cli-common/prompt-select-fuzzy.js +119 -0
  603. package/lib/cli-common/prompt-select-fuzzy.js.map +1 -0
  604. package/lib/cli-common/tenant-contextualizer.d.ts +0 -0
  605. package/lib/cli-common/tenant-contextualizer.js +436 -0
  606. package/lib/cli-common/tenant-contextualizer.js.map +1 -0
  607. package/lib/cli-common/test/tenant-contextualizer.spec.d.ts +0 -0
  608. package/lib/cli-common/test/tenant-contextualizer.spec.js +143 -0
  609. package/lib/cli-common/test/tenant-contextualizer.spec.js.map +1 -0
  610. package/lib/cli-entities/output-format-enum.d.ts +7 -0
  611. package/lib/cli-entities/output-format-enum.js +12 -0
  612. package/lib/cli-entities/output-format-enum.js.map +1 -0
  613. package/lib/cli-entities/prompt-choice.d.ts +0 -0
  614. package/lib/cli-entities/prompt-choice.js +6 -0
  615. package/lib/cli-entities/prompt-choice.js.map +1 -0
  616. package/lib/codiac-constants.d.ts +35 -0
  617. package/lib/codiac-constants.js +41 -0
  618. package/lib/codiac-constants.js.map +1 -0
  619. package/lib/codiac-entities/asset-binding.d.ts +12 -0
  620. package/lib/codiac-entities/asset-binding.js +18 -0
  621. package/lib/codiac-entities/asset-binding.js.map +1 -0
  622. package/lib/codiac-entities/azure-container-registry.d.ts +4 -0
  623. package/lib/codiac-entities/azure-container-registry.js +3 -0
  624. package/lib/codiac-entities/azure-container-registry.js.map +1 -0
  625. package/lib/codiac-entities/azure-service-principal.d.ts +23 -0
  626. package/lib/codiac-entities/azure-service-principal.js +24 -0
  627. package/lib/codiac-entities/azure-service-principal.js.map +1 -0
  628. package/lib/codiac-entities/cloud-account-ref.d.ts +28 -0
  629. package/lib/codiac-entities/cloud-account-ref.js +37 -0
  630. package/lib/codiac-entities/cloud-account-ref.js.map +1 -0
  631. package/lib/codiac-entities/deployment-temp.d.ts +0 -0
  632. package/lib/codiac-entities/deployment-temp.js +133 -0
  633. package/lib/codiac-entities/deployment-temp.js.map +1 -0
  634. package/lib/codiac-entities/i-cloud-account-ref.d.ts +5 -0
  635. package/lib/codiac-entities/i-cloud-account-ref.js +3 -0
  636. package/lib/codiac-entities/i-cloud-account-ref.js.map +1 -0
  637. package/lib/command-base-enterprise.d.ts +121 -0
  638. package/lib/command-base-enterprise.js +524 -0
  639. package/lib/command-base-enterprise.js.map +1 -0
  640. package/lib/command-base-tenantless.d.ts +44 -0
  641. package/lib/command-base-tenantless.js +180 -0
  642. package/lib/command-base-tenantless.js.map +1 -0
  643. package/lib/commands/asset/create.d.ts +42 -0
  644. package/lib/commands/asset/create.js +467 -0
  645. package/lib/commands/asset/create.js.map +1 -0
  646. package/lib/commands/asset/destroy.d.ts +20 -0
  647. package/lib/commands/asset/destroy.js +129 -0
  648. package/lib/commands/asset/destroy.js.map +1 -0
  649. package/lib/commands/asset/helm.d.ts +23 -0
  650. package/lib/commands/asset/helm.js +153 -0
  651. package/lib/commands/asset/helm.js.map +1 -0
  652. package/lib/commands/asset/list.d.ts +28 -0
  653. package/lib/commands/asset/list.js +172 -0
  654. package/lib/commands/asset/list.js.map +1 -0
  655. package/lib/commands/asset/probe/create.d.ts +38 -0
  656. package/lib/commands/asset/probe/create.js +187 -0
  657. package/lib/commands/asset/probe/create.js.map +1 -0
  658. package/lib/commands/asset/recycle.d.ts +23 -0
  659. package/lib/commands/asset/recycle.js +175 -0
  660. package/lib/commands/asset/recycle.js.map +1 -0
  661. package/lib/commands/asset/view.d.ts +188 -0
  662. package/lib/commands/asset/view.js +1365 -0
  663. package/lib/commands/asset/view.js.map +1 -0
  664. package/lib/commands/asset/volume/create.d.ts +23 -0
  665. package/lib/commands/asset/volume/create.js +176 -0
  666. package/lib/commands/asset/volume/create.js.map +1 -0
  667. package/lib/commands/asset/volume/delete.d.ts +19 -0
  668. package/lib/commands/asset/volume/delete.js +112 -0
  669. package/lib/commands/asset/volume/delete.js.map +1 -0
  670. package/lib/commands/asset/volume/list.d.ts +19 -0
  671. package/lib/commands/asset/volume/list.js +70 -0
  672. package/lib/commands/asset/volume/list.js.map +1 -0
  673. package/lib/commands/branch/current.d.ts +10 -0
  674. package/lib/commands/branch/current.js +34 -0
  675. package/lib/commands/branch/current.js.map +1 -0
  676. package/lib/commands/branch/list.d.ts +15 -0
  677. package/lib/commands/branch/list.js +56 -0
  678. package/lib/commands/branch/list.js.map +1 -0
  679. package/lib/commands/branch.d.ts +12 -0
  680. package/lib/commands/branch.js +42 -0
  681. package/lib/commands/branch.js.map +1 -0
  682. package/lib/commands/build.d.ts +38 -0
  683. package/lib/commands/build.js +120 -0
  684. package/lib/commands/build.js.map +1 -0
  685. package/lib/commands/cabinet/create.d.ts +21 -0
  686. package/lib/commands/cabinet/create.js +108 -0
  687. package/lib/commands/cabinet/create.js.map +1 -0
  688. package/lib/commands/cabinet/list.d.ts +23 -0
  689. package/lib/commands/cabinet/list.js +134 -0
  690. package/lib/commands/cabinet/list.js.map +1 -0
  691. package/lib/commands/cabinet/obliterate.d.ts +20 -0
  692. package/lib/commands/cabinet/obliterate.js +83 -0
  693. package/lib/commands/cabinet/obliterate.js.map +1 -0
  694. package/lib/commands/cli.d.ts +10 -0
  695. package/lib/commands/cli.js +100 -0
  696. package/lib/commands/cli.js.map +1 -0
  697. package/lib/commands/commit.d.ts +11 -0
  698. package/lib/commands/commit.js +40 -0
  699. package/lib/commands/commit.js.map +1 -0
  700. package/lib/commands/config/add.d.ts +78 -0
  701. package/lib/commands/config/add.js +560 -0
  702. package/lib/commands/config/add.js.map +1 -0
  703. package/lib/commands/config/delete.d.ts +18 -0
  704. package/lib/commands/config/delete.js +119 -0
  705. package/lib/commands/config/delete.js.map +1 -0
  706. package/lib/commands/config/deploy.d.ts +22 -0
  707. package/lib/commands/config/deploy.js +125 -0
  708. package/lib/commands/config/deploy.js.map +1 -0
  709. package/lib/commands/config/import.d.ts +27 -0
  710. package/lib/commands/config/import.js +196 -0
  711. package/lib/commands/config/import.js.map +1 -0
  712. package/lib/commands/config/view.d.ts +25 -0
  713. package/lib/commands/config/view.js +121 -0
  714. package/lib/commands/config/view.js.map +1 -0
  715. package/lib/commands/csp/login.d.ts +18 -0
  716. package/lib/commands/csp/login.js +123 -0
  717. package/lib/commands/csp/login.js.map +1 -0
  718. package/lib/commands/csp/logout.d.ts +15 -0
  719. package/lib/commands/csp/logout.js +74 -0
  720. package/lib/commands/csp/logout.js.map +1 -0
  721. package/lib/commands/dep/create.d.ts +13 -0
  722. package/lib/commands/dep/create.js +41 -0
  723. package/lib/commands/dep/create.js.map +1 -0
  724. package/lib/commands/dep/install.d.ts +9 -0
  725. package/lib/commands/dep/install.js +30 -0
  726. package/lib/commands/dep/install.js.map +1 -0
  727. package/lib/commands/dep/list.d.ts +55 -0
  728. package/lib/commands/dep/list.js +98 -0
  729. package/lib/commands/dep/list.js.map +1 -0
  730. package/lib/commands/dep/remove.d.ts +12 -0
  731. package/lib/commands/dep/remove.js +62 -0
  732. package/lib/commands/dep/remove.js.map +1 -0
  733. package/lib/commands/dep/source.d.ts +13 -0
  734. package/lib/commands/dep/source.js +83 -0
  735. package/lib/commands/dep/source.js.map +1 -0
  736. package/lib/commands/dep/syncup.d.ts +11 -0
  737. package/lib/commands/dep/syncup.js +54 -0
  738. package/lib/commands/dep/syncup.js.map +1 -0
  739. package/lib/commands/dep/unsource.d.ts +14 -0
  740. package/lib/commands/dep/unsource.js +68 -0
  741. package/lib/commands/dep/unsource.js.map +1 -0
  742. package/lib/commands/dep/upgrade.d.ts +44 -0
  743. package/lib/commands/dep/upgrade.js +244 -0
  744. package/lib/commands/dep/upgrade.js.map +1 -0
  745. package/lib/commands/dep.d.ts +12 -0
  746. package/lib/commands/dep.js +51 -0
  747. package/lib/commands/dep.js.map +1 -0
  748. package/lib/commands/deploy.d.ts +38 -0
  749. package/lib/commands/deploy.js +386 -0
  750. package/lib/commands/deploy.js.map +1 -0
  751. package/lib/commands/enterprise/create.d.ts +20 -0
  752. package/lib/commands/enterprise/create.js +98 -0
  753. package/lib/commands/enterprise/create.js.map +1 -0
  754. package/lib/commands/enterprise/list.d.ts +14 -0
  755. package/lib/commands/enterprise/list.js +84 -0
  756. package/lib/commands/enterprise/list.js.map +1 -0
  757. package/lib/commands/env/add.d.ts +22 -0
  758. package/lib/commands/env/add.js +200 -0
  759. package/lib/commands/env/add.js.map +1 -0
  760. package/lib/commands/environment/create.d.ts +19 -0
  761. package/lib/commands/environment/create.js +89 -0
  762. package/lib/commands/environment/create.js.map +1 -0
  763. package/lib/commands/environment/list.d.ts +25 -0
  764. package/lib/commands/environment/list.js +158 -0
  765. package/lib/commands/environment/list.js.map +1 -0
  766. package/lib/commands/filestore/capture.d.ts +31 -0
  767. package/lib/commands/filestore/capture.js +342 -0
  768. package/lib/commands/filestore/capture.js.map +1 -0
  769. package/lib/commands/host/map.d.ts +33 -0
  770. package/lib/commands/host/map.js +347 -0
  771. package/lib/commands/host/map.js.map +1 -0
  772. package/lib/commands/identity/delete.d.ts +15 -0
  773. package/lib/commands/identity/delete.js +83 -0
  774. package/lib/commands/identity/delete.js.map +1 -0
  775. package/lib/commands/identity/list.d.ts +11 -0
  776. package/lib/commands/identity/list.js +43 -0
  777. package/lib/commands/identity/list.js.map +1 -0
  778. package/lib/commands/identity.d.ts +22 -0
  779. package/lib/commands/identity.js +77 -0
  780. package/lib/commands/identity.js.map +1 -0
  781. package/lib/commands/imageRegistry/capture.d.ts +27 -0
  782. package/lib/commands/imageRegistry/capture.js +160 -0
  783. package/lib/commands/imageRegistry/capture.js.map +1 -0
  784. package/lib/commands/imageRegistry/forget.d.ts +23 -0
  785. package/lib/commands/imageRegistry/forget.js +161 -0
  786. package/lib/commands/imageRegistry/forget.js.map +1 -0
  787. package/lib/commands/imageRegistry/pullSecret/set.d.ts +27 -0
  788. package/lib/commands/imageRegistry/pullSecret/set.js +300 -0
  789. package/lib/commands/imageRegistry/pullSecret/set.js.map +1 -0
  790. package/lib/commands/imageRegistry/pullSecret/unset.d.ts +24 -0
  791. package/lib/commands/imageRegistry/pullSecret/unset.js +243 -0
  792. package/lib/commands/imageRegistry/pullSecret/unset.js.map +1 -0
  793. package/lib/commands/images/add.d.ts +25 -0
  794. package/lib/commands/images/add.js +76 -0
  795. package/lib/commands/images/add.js.map +1 -0
  796. package/lib/commands/images/list.d.ts +14 -0
  797. package/lib/commands/images/list.js +72 -0
  798. package/lib/commands/images/list.js.map +1 -0
  799. package/lib/commands/images/patch.d.ts +14 -0
  800. package/lib/commands/images/patch.js +93 -0
  801. package/lib/commands/images/patch.js.map +1 -0
  802. package/lib/commands/images/remove.d.ts +12 -0
  803. package/lib/commands/images/remove.js +38 -0
  804. package/lib/commands/images/remove.js.map +1 -0
  805. package/lib/commands/images/version/bump.d.ts +18 -0
  806. package/lib/commands/images/version/bump.js +61 -0
  807. package/lib/commands/images/version/bump.js.map +1 -0
  808. package/lib/commands/images/version.d.ts +16 -0
  809. package/lib/commands/images/version.js +65 -0
  810. package/lib/commands/images/version.js.map +1 -0
  811. package/lib/commands/init.d.ts +17 -0
  812. package/lib/commands/init.js +131 -0
  813. package/lib/commands/init.js.map +1 -0
  814. package/lib/commands/kit/create.d.ts +25 -0
  815. package/lib/commands/kit/create.js +142 -0
  816. package/lib/commands/kit/create.js.map +1 -0
  817. package/lib/commands/login.d.ts +22 -0
  818. package/lib/commands/login.js +93 -0
  819. package/lib/commands/login.js.map +1 -0
  820. package/lib/commands/logout.d.ts +8 -0
  821. package/lib/commands/logout.js +37 -0
  822. package/lib/commands/logout.js.map +1 -0
  823. package/lib/commands/merge.d.ts +12 -0
  824. package/lib/commands/merge.js +43 -0
  825. package/lib/commands/merge.js.map +1 -0
  826. package/lib/commands/noc/cluster/create.d.ts +28 -0
  827. package/lib/commands/noc/cluster/create.js +133 -0
  828. package/lib/commands/noc/cluster/create.js.map +1 -0
  829. package/lib/commands/noc/cluster/deinit.d.ts +17 -0
  830. package/lib/commands/noc/cluster/deinit.js +117 -0
  831. package/lib/commands/noc/cluster/deinit.js.map +1 -0
  832. package/lib/commands/noc/cluster/destroy.d.ts +20 -0
  833. package/lib/commands/noc/cluster/destroy.js +138 -0
  834. package/lib/commands/noc/cluster/destroy.js.map +1 -0
  835. package/lib/commands/noc/cluster/forget.d.ts +16 -0
  836. package/lib/commands/noc/cluster/forget.js +137 -0
  837. package/lib/commands/noc/cluster/forget.js.map +1 -0
  838. package/lib/commands/noc/cluster/grant.d.ts +24 -0
  839. package/lib/commands/noc/cluster/grant.js +160 -0
  840. package/lib/commands/noc/cluster/grant.js.map +1 -0
  841. package/lib/commands/noc/cluster/init.d.ts +17 -0
  842. package/lib/commands/noc/cluster/init.js +117 -0
  843. package/lib/commands/noc/cluster/init.js.map +1 -0
  844. package/lib/commands/noc/cluster/list.d.ts +21 -0
  845. package/lib/commands/noc/cluster/list.js +84 -0
  846. package/lib/commands/noc/cluster/list.js.map +1 -0
  847. package/lib/commands/noc/cluster/recreate.d.ts +28 -0
  848. package/lib/commands/noc/cluster/recreate.js +186 -0
  849. package/lib/commands/noc/cluster/recreate.js.map +1 -0
  850. package/lib/commands/pkg/add.d.ts +15 -0
  851. package/lib/commands/pkg/add.js +43 -0
  852. package/lib/commands/pkg/add.js.map +1 -0
  853. package/lib/commands/pkg/list.d.ts +9 -0
  854. package/lib/commands/pkg/list.js +33 -0
  855. package/lib/commands/pkg/list.js.map +1 -0
  856. package/lib/commands/pkg/patch.d.ts +13 -0
  857. package/lib/commands/pkg/patch.js +79 -0
  858. package/lib/commands/pkg/patch.js.map +1 -0
  859. package/lib/commands/pkg/remove.d.ts +12 -0
  860. package/lib/commands/pkg/remove.js +70 -0
  861. package/lib/commands/pkg/remove.js.map +1 -0
  862. package/lib/commands/portal.d.ts +11 -0
  863. package/lib/commands/portal.js +82 -0
  864. package/lib/commands/portal.js.map +1 -0
  865. package/lib/commands/publish.d.ts +21 -0
  866. package/lib/commands/publish.js +52 -0
  867. package/lib/commands/publish.js.map +1 -0
  868. package/lib/commands/pull.d.ts +13 -0
  869. package/lib/commands/pull.js +30 -0
  870. package/lib/commands/pull.js.map +1 -0
  871. package/lib/commands/push.d.ts +13 -0
  872. package/lib/commands/push.js +30 -0
  873. package/lib/commands/push.js.map +1 -0
  874. package/lib/commands/run.d.ts +35 -0
  875. package/lib/commands/run.js +194 -0
  876. package/lib/commands/run.js.map +1 -0
  877. package/lib/commands/secretStore/capture.d.ts +27 -0
  878. package/lib/commands/secretStore/capture.js +175 -0
  879. package/lib/commands/secretStore/capture.js.map +1 -0
  880. package/lib/commands/secretStore/forget.d.ts +20 -0
  881. package/lib/commands/secretStore/forget.js +147 -0
  882. package/lib/commands/secretStore/forget.js.map +1 -0
  883. package/lib/commands/stage.d.ts +13 -0
  884. package/lib/commands/stage.js +65 -0
  885. package/lib/commands/stage.js.map +1 -0
  886. package/lib/commands/stash.d.ts +13 -0
  887. package/lib/commands/stash.js +31 -0
  888. package/lib/commands/stash.js.map +1 -0
  889. package/lib/commands/status.d.ts +12 -0
  890. package/lib/commands/status.js +49 -0
  891. package/lib/commands/status.js.map +1 -0
  892. package/lib/commands/stop.d.ts +10 -0
  893. package/lib/commands/stop.js +52 -0
  894. package/lib/commands/stop.js.map +1 -0
  895. package/lib/commands/switch.d.ts +11 -0
  896. package/lib/commands/switch.js +42 -0
  897. package/lib/commands/switch.js.map +1 -0
  898. package/lib/commands/sync.d.ts +14 -0
  899. package/lib/commands/sync.js +21 -0
  900. package/lib/commands/sync.js.map +1 -0
  901. package/lib/commands/tenant/create.d.ts +27 -0
  902. package/lib/commands/tenant/create.js +120 -0
  903. package/lib/commands/tenant/create.js.map +1 -0
  904. package/lib/commands/tenant/switch.d.ts +24 -0
  905. package/lib/commands/tenant/switch.js +109 -0
  906. package/lib/commands/tenant/switch.js.map +1 -0
  907. package/lib/commands/unstage.d.ts +12 -0
  908. package/lib/commands/unstage.js +58 -0
  909. package/lib/commands/unstage.js.map +1 -0
  910. package/lib/commands/view/dashboard.d.ts +17 -0
  911. package/lib/commands/view/dashboard.js +88 -0
  912. package/lib/commands/view/dashboard.js.map +1 -0
  913. package/lib/commands/view/pods.d.ts +14 -0
  914. package/lib/commands/view/pods.js +88 -0
  915. package/lib/commands/view/pods.js.map +1 -0
  916. package/lib/commands/whereami.d.ts +15 -0
  917. package/lib/commands/whereami.js +123 -0
  918. package/lib/commands/whereami.js.map +1 -0
  919. package/lib/commands/whoami.d.ts +8 -0
  920. package/lib/commands/whoami.js +40 -0
  921. package/lib/commands/whoami.js.map +1 -0
  922. package/lib/deployment.d.ts +2 -0
  923. package/lib/deployment.js +7 -0
  924. package/lib/deployment.js.map +1 -0
  925. package/lib/errors/NoMembershipError.d.ts +8 -0
  926. package/lib/errors/NoMembershipError.js +15 -0
  927. package/lib/errors/NoMembershipError.js.map +1 -0
  928. package/lib/index.d.ts +1 -0
  929. package/lib/index.js +17 -0
  930. package/lib/index.js.map +1 -0
  931. package/lib/k8s-command-base.d.ts +60 -0
  932. package/lib/k8s-command-base.js +204 -0
  933. package/lib/k8s-command-base.js.map +1 -0
  934. package/lib/log-update-wrapper.d.ts +24 -0
  935. package/lib/log-update-wrapper.js +29 -0
  936. package/lib/log-update-wrapper.js.map +1 -0
  937. package/lib/log4js-logger.d.ts +26 -0
  938. package/lib/log4js-logger.js +138 -0
  939. package/lib/log4js-logger.js.map +1 -0
  940. package/lib/ops/INTERFACES_CLI.d.ts +3 -0
  941. package/lib/ops/INTERFACES_CLI.js +8 -0
  942. package/lib/ops/INTERFACES_CLI.js.map +1 -0
  943. package/lib/ops/LocalOps.d.ts +417 -0
  944. package/lib/ops/LocalOps.js +3122 -0
  945. package/lib/ops/LocalOps.js.map +1 -0
  946. package/lib/ops/azure-container-registry-client/azure-container-registry-client.d.ts +0 -0
  947. package/lib/ops/azure-container-registry-client/azure-container-registry-client.js +148 -0
  948. package/lib/ops/azure-container-registry-client/azure-container-registry-client.js.map +1 -0
  949. package/lib/ops/cli-path-walker.d.ts +0 -0
  950. package/lib/ops/cli-path-walker.js +55 -0
  951. package/lib/ops/cli-path-walker.js.map +1 -0
  952. package/lib/ops/codiac-entities/dependency.d.ts +5 -0
  953. package/lib/ops/codiac-entities/dependency.js +11 -0
  954. package/lib/ops/codiac-entities/dependency.js.map +1 -0
  955. package/lib/ops/codiac-entities/index.d.ts +1 -0
  956. package/lib/ops/codiac-entities/index.js +5 -0
  957. package/lib/ops/codiac-entities/index.js.map +1 -0
  958. package/lib/ops/composite-image-registry-client.d.ts +0 -0
  959. package/lib/ops/composite-image-registry-client.js +74 -0
  960. package/lib/ops/composite-image-registry-client.js.map +1 -0
  961. package/lib/ops/data/cli-context-repo.d.ts +61 -0
  962. package/lib/ops/data/cli-context-repo.js +270 -0
  963. package/lib/ops/data/cli-context-repo.js.map +1 -0
  964. package/lib/ops/data/index.d.ts +2 -0
  965. package/lib/ops/data/index.js +6 -0
  966. package/lib/ops/data/index.js.map +1 -0
  967. package/lib/ops/data/npm-config-repo.d.ts +13 -0
  968. package/lib/ops/data/npm-config-repo.js +65 -0
  969. package/lib/ops/data/npm-config-repo.js.map +1 -0
  970. package/lib/ops/docker-config.d.ts +0 -0
  971. package/lib/ops/docker-config.js +131 -0
  972. package/lib/ops/docker-config.js.map +1 -0
  973. package/lib/ops/docker-constants.d.ts +0 -0
  974. package/lib/ops/docker-constants.js +22 -0
  975. package/lib/ops/docker-constants.js.map +1 -0
  976. package/lib/ops/docker-credentials-store.d.ts +0 -0
  977. package/lib/ops/docker-credentials-store.js +238 -0
  978. package/lib/ops/docker-credentials-store.js.map +1 -0
  979. package/lib/ops/docker-registry-api-client/docker-registry-api-client.d.ts +0 -0
  980. package/lib/ops/docker-registry-api-client/docker-registry-api-client.js +289 -0
  981. package/lib/ops/docker-registry-api-client/docker-registry-api-client.js.map +1 -0
  982. package/lib/ops/docker-registry-api-client/entities/blob-sum.d.ts +7 -0
  983. package/lib/ops/docker-registry-api-client/entities/blob-sum.js +13 -0
  984. package/lib/ops/docker-registry-api-client/entities/blob-sum.js.map +1 -0
  985. package/lib/ops/docker-registry-api-client/entities/docker-access-actions-enum.d.ts +5 -0
  986. package/lib/ops/docker-registry-api-client/entities/docker-access-actions-enum.js +10 -0
  987. package/lib/ops/docker-registry-api-client/entities/docker-access-actions-enum.js.map +1 -0
  988. package/lib/ops/docker-registry-api-client/entities/docker-auth-token-criteria.d.ts +30 -0
  989. package/lib/ops/docker-registry-api-client/entities/docker-auth-token-criteria.js +36 -0
  990. package/lib/ops/docker-registry-api-client/entities/docker-auth-token-criteria.js.map +1 -0
  991. package/lib/ops/docker-registry-api-client/entities/i-docker-error-response.d.ts +55 -0
  992. package/lib/ops/docker-registry-api-client/entities/i-docker-error-response.js +52 -0
  993. package/lib/ops/docker-registry-api-client/entities/i-docker-error-response.js.map +1 -0
  994. package/lib/ops/docker-registry-api-client/entities/i-docker-list-response.d.ts +7 -0
  995. package/lib/ops/docker-registry-api-client/entities/i-docker-list-response.js +3 -0
  996. package/lib/ops/docker-registry-api-client/entities/i-docker-list-response.js.map +1 -0
  997. package/lib/ops/docker-registry-api-client/entities/image-repository.d.ts +31 -0
  998. package/lib/ops/docker-registry-api-client/entities/image-repository.js +30 -0
  999. package/lib/ops/docker-registry-api-client/entities/image-repository.js.map +1 -0
  1000. package/lib/ops/docker-registry-api-client/entities/image-tag-criteria.d.ts +8 -0
  1001. package/lib/ops/docker-registry-api-client/entities/image-tag-criteria.js +14 -0
  1002. package/lib/ops/docker-registry-api-client/entities/image-tag-criteria.js.map +1 -0
  1003. package/lib/ops/docker-registry-api-client/entities/image-tag-list.d.ts +7 -0
  1004. package/lib/ops/docker-registry-api-client/entities/image-tag-list.js +13 -0
  1005. package/lib/ops/docker-registry-api-client/entities/image-tag-list.js.map +1 -0
  1006. package/lib/ops/docker-registry-api-client/entities/manifest-criteria.d.ts +9 -0
  1007. package/lib/ops/docker-registry-api-client/entities/manifest-criteria.js +15 -0
  1008. package/lib/ops/docker-registry-api-client/entities/manifest-criteria.js.map +1 -0
  1009. package/lib/ops/docker-registry-api-client/entities/manifest.d.ts +15 -0
  1010. package/lib/ops/docker-registry-api-client/entities/manifest.js +21 -0
  1011. package/lib/ops/docker-registry-api-client/entities/manifest.js.map +1 -0
  1012. package/lib/ops/docker-registry-api-client/entities/repository-criteria.d.ts +16 -0
  1013. package/lib/ops/docker-registry-api-client/entities/repository-criteria.js +24 -0
  1014. package/lib/ops/docker-registry-api-client/entities/repository-criteria.js.map +1 -0
  1015. package/lib/ops/docker-registry-api-client/entities/token-response.d.ts +15 -0
  1016. package/lib/ops/docker-registry-api-client/entities/token-response.js +15 -0
  1017. package/lib/ops/docker-registry-api-client/entities/token-response.js.map +1 -0
  1018. package/lib/ops/docker-registry-api-client/entities/token.d.ts +17 -0
  1019. package/lib/ops/docker-registry-api-client/entities/token.js +22 -0
  1020. package/lib/ops/docker-registry-api-client/entities/token.js.map +1 -0
  1021. package/lib/ops/docker-registry-api-client/entities/version-check-criteria.d.ts +4 -0
  1022. package/lib/ops/docker-registry-api-client/entities/version-check-criteria.js +10 -0
  1023. package/lib/ops/docker-registry-api-client/entities/version-check-criteria.js.map +1 -0
  1024. package/lib/ops/dx-constants.d.ts +26 -0
  1025. package/lib/ops/dx-constants.js +43 -0
  1026. package/lib/ops/dx-constants.js.map +1 -0
  1027. package/lib/ops/entities/ImageBuildContext.d.ts +12 -0
  1028. package/lib/ops/entities/ImageBuildContext.js +19 -0
  1029. package/lib/ops/entities/ImageBuildContext.js.map +1 -0
  1030. package/lib/ops/entities/PipelineContext.d.ts +21 -0
  1031. package/lib/ops/entities/PipelineContext.js +23 -0
  1032. package/lib/ops/entities/PipelineContext.js.map +1 -0
  1033. package/lib/ops/entities/TenantContext.d.ts +10 -0
  1034. package/lib/ops/entities/TenantContext.js +16 -0
  1035. package/lib/ops/entities/TenantContext.js.map +1 -0
  1036. package/lib/ops/entities/ThaulConfig.d.ts +0 -0
  1037. package/lib/ops/entities/ThaulConfig.js +30 -0
  1038. package/lib/ops/entities/ThaulConfig.js.map +1 -0
  1039. package/lib/ops/entities/azure-service-principal.d.ts +23 -0
  1040. package/lib/ops/entities/azure-service-principal.js +24 -0
  1041. package/lib/ops/entities/azure-service-principal.js.map +1 -0
  1042. package/lib/ops/entities/better-logger.d.ts +0 -0
  1043. package/lib/ops/entities/better-logger.js +2 -0
  1044. package/lib/ops/entities/better-logger.js.map +1 -0
  1045. package/lib/ops/entities/branch.d.ts +13 -0
  1046. package/lib/ops/entities/branch.js +16 -0
  1047. package/lib/ops/entities/branch.js.map +1 -0
  1048. package/lib/ops/entities/cli-config.d.ts +48 -0
  1049. package/lib/ops/entities/cli-config.js +61 -0
  1050. package/lib/ops/entities/cli-config.js.map +1 -0
  1051. package/lib/ops/entities/docker-image.d.ts +60 -0
  1052. package/lib/ops/entities/docker-image.js +3 -0
  1053. package/lib/ops/entities/docker-image.js.map +1 -0
  1054. package/lib/ops/entities/helm-spec.d.ts +15 -0
  1055. package/lib/ops/entities/helm-spec.js +23 -0
  1056. package/lib/ops/entities/helm-spec.js.map +1 -0
  1057. package/lib/ops/entities/index.d.ts +4 -0
  1058. package/lib/ops/entities/index.js +12 -0
  1059. package/lib/ops/entities/index.js.map +1 -0
  1060. package/lib/ops/entities/operation-meta.d.ts +8 -0
  1061. package/lib/ops/entities/operation-meta.js +19 -0
  1062. package/lib/ops/entities/operation-meta.js.map +1 -0
  1063. package/lib/ops/entities/scaffolding.d.ts +19 -0
  1064. package/lib/ops/entities/scaffolding.js +21 -0
  1065. package/lib/ops/entities/scaffolding.js.map +1 -0
  1066. package/lib/ops/extensions/azart-identity-adapter.d.ts +19 -0
  1067. package/lib/ops/extensions/azart-identity-adapter.js +97 -0
  1068. package/lib/ops/extensions/azart-identity-adapter.js.map +1 -0
  1069. package/lib/ops/extensions/npm-identity-adapter-base.d.ts +13 -0
  1070. package/lib/ops/extensions/npm-identity-adapter-base.js +3 -0
  1071. package/lib/ops/extensions/npm-identity-adapter-base.js.map +1 -0
  1072. package/lib/ops/extensions/npmjs-identity-adapter.d.ts +13 -0
  1073. package/lib/ops/extensions/npmjs-identity-adapter.js +64 -0
  1074. package/lib/ops/extensions/npmjs-identity-adapter.js.map +1 -0
  1075. package/lib/ops/git-ops.d.ts +8 -0
  1076. package/lib/ops/git-ops.js +14 -0
  1077. package/lib/ops/git-ops.js.map +1 -0
  1078. package/lib/ops/i-client-for-image-registry.d.ts +0 -0
  1079. package/lib/ops/i-client-for-image-registry.js +17 -0
  1080. package/lib/ops/i-client-for-image-registry.js.map +1 -0
  1081. package/lib/ops/i-identity-handler.d.ts +33 -0
  1082. package/lib/ops/i-identity-handler.js +165 -0
  1083. package/lib/ops/i-identity-handler.js.map +1 -0
  1084. package/lib/ops/i-output-styler.d.ts +0 -0
  1085. package/lib/ops/i-output-styler.js +17 -0
  1086. package/lib/ops/i-output-styler.js.map +1 -0
  1087. package/lib/ops/index.d.ts +12 -0
  1088. package/lib/ops/index.js +15 -0
  1089. package/lib/ops/index.js.map +1 -0
  1090. package/lib/ops/json-utils.d.ts +0 -0
  1091. package/lib/ops/json-utils.js +59 -0
  1092. package/lib/ops/json-utils.js.map +1 -0
  1093. package/lib/ops/no-style-output-styler.d.ts +0 -0
  1094. package/lib/ops/no-style-output-styler.js +30 -0
  1095. package/lib/ops/no-style-output-styler.js.map +1 -0
  1096. package/lib/ops/oauth2-client.ts/oauth2-client.d.ts +23 -0
  1097. package/lib/ops/oauth2-client.ts/oauth2-client.js +64 -0
  1098. package/lib/ops/oauth2-client.ts/oauth2-client.js.map +1 -0
  1099. package/lib/ops/project-initializer.d.ts +36 -0
  1100. package/lib/ops/project-initializer.js +219 -0
  1101. package/lib/ops/project-initializer.js.map +1 -0
  1102. package/lib/ops/scaffolding/base-scaffolding.d.ts +7 -0
  1103. package/lib/ops/scaffolding/base-scaffolding.js +21 -0
  1104. package/lib/ops/scaffolding/base-scaffolding.js.map +1 -0
  1105. package/lib/ops/scaffolding/codiac-api-scaffolding.d.ts +7 -0
  1106. package/lib/ops/scaffolding/codiac-api-scaffolding.js +64 -0
  1107. package/lib/ops/scaffolding/codiac-api-scaffolding.js.map +1 -0
  1108. package/lib/ops/scaffolding/typescript-scaffolding.d.ts +15 -0
  1109. package/lib/ops/scaffolding/typescript-scaffolding.js +163 -0
  1110. package/lib/ops/scaffolding/typescript-scaffolding.js.map +1 -0
  1111. package/lib/ops/test/mock-ui.d.ts +26 -0
  1112. package/lib/ops/test/mock-ui.js +88 -0
  1113. package/lib/ops/test/mock-ui.js.map +1 -0
  1114. package/lib/ops/test/test-extensions.d.ts +13 -0
  1115. package/lib/ops/test/test-extensions.js +71 -0
  1116. package/lib/ops/test/test-extensions.js.map +1 -0
  1117. package/lib/ops/test/when-a-recursive-file-search-is-run.spec.d.ts +2 -0
  1118. package/lib/ops/test/when-a-recursive-file-search-is-run.spec.js +55 -0
  1119. package/lib/ops/test/when-a-recursive-file-search-is-run.spec.js.map +1 -0
  1120. package/lib/ops/test/when-git-branchline-is-attempted.spec.d.ts +2 -0
  1121. package/lib/ops/test/when-git-branchline-is-attempted.spec.js +38 -0
  1122. package/lib/ops/test/when-git-branchline-is-attempted.spec.js.map +1 -0
  1123. package/lib/ops/test/when-versions-are-parsed.spec.d.ts +2 -0
  1124. package/lib/ops/test/when-versions-are-parsed.spec.js +62 -0
  1125. package/lib/ops/test/when-versions-are-parsed.spec.js.map +1 -0
  1126. package/lib/ops/throwing-user-input-provider.d.ts +0 -0
  1127. package/lib/ops/throwing-user-input-provider.js +37 -0
  1128. package/lib/ops/throwing-user-input-provider.js.map +1 -0
  1129. package/lib/ops/workspace-versioner.d.ts +122 -0
  1130. package/lib/ops/workspace-versioner.js +292 -0
  1131. package/lib/ops/workspace-versioner.js.map +1 -0
  1132. package/lib/prettify.d.ts +7 -0
  1133. package/lib/prettify.js +24 -0
  1134. package/lib/prettify.js.map +1 -0
  1135. package/lib/read-stdin.d.ts +2 -0
  1136. package/lib/read-stdin.js +29 -0
  1137. package/lib/read-stdin.js.map +1 -0
  1138. package/lib/relay/contracts/contracts.d.ts +207 -0
  1139. package/lib/relay/contracts/contracts.js +230 -0
  1140. package/lib/relay/contracts/contracts.js.map +1 -0
  1141. package/lib/relay/data/aws-k8s-versions.d.ts +6 -0
  1142. package/lib/relay/data/aws-k8s-versions.js +16 -0
  1143. package/lib/relay/data/aws-k8s-versions.js.map +1 -0
  1144. package/lib/relay/data/aws-node-types.d.ts +37 -0
  1145. package/lib/relay/data/aws-node-types.js +4246 -0
  1146. package/lib/relay/data/aws-node-types.js.map +1 -0
  1147. package/lib/relay/data/aws-regions.d.ts +6 -0
  1148. package/lib/relay/data/aws-regions.js +34 -0
  1149. package/lib/relay/data/aws-regions.js.map +1 -0
  1150. package/lib/relay/extended-relay-client.d.ts +27 -0
  1151. package/lib/relay/extended-relay-client.js +28 -0
  1152. package/lib/relay/extended-relay-client.js.map +1 -0
  1153. package/lib/relay/relay-container.d.ts +41 -0
  1154. package/lib/relay/relay-container.js +298 -0
  1155. package/lib/relay/relay-container.js.map +1 -0
  1156. package/lib/relay/wsclient/relay-socket-listener.d.ts +68 -0
  1157. package/lib/relay/wsclient/relay-socket-listener.js +165 -0
  1158. package/lib/relay/wsclient/relay-socket-listener.js.map +1 -0
  1159. package/lib/relay/wsclient/relay-websocket-client.d.ts +33 -0
  1160. package/lib/relay/wsclient/relay-websocket-client.js +179 -0
  1161. package/lib/relay/wsclient/relay-websocket-client.js.map +1 -0
  1162. package/lib/relay/wsclient/rx-websocket-subject.d.ts +25 -0
  1163. package/lib/relay/wsclient/rx-websocket-subject.js +134 -0
  1164. package/lib/relay/wsclient/rx-websocket-subject.js.map +1 -0
  1165. package/lib/relay/wsclient/socket-contracts.d.ts +22 -0
  1166. package/lib/relay/wsclient/socket-contracts.js +3 -0
  1167. package/lib/relay/wsclient/socket-contracts.js.map +1 -0
  1168. package/lib/standard-probes.d.ts +5 -0
  1169. package/lib/standard-probes.js +22 -0
  1170. package/lib/standard-probes.js.map +1 -0
  1171. package/lib/uilogic/build-configurator.d.ts +21 -0
  1172. package/lib/uilogic/build-configurator.js +111 -0
  1173. package/lib/uilogic/build-configurator.js.map +1 -0
  1174. package/lib/uilogic/cloud-provider-contextualizer.d.ts +46 -0
  1175. package/lib/uilogic/cloud-provider-contextualizer.js +194 -0
  1176. package/lib/uilogic/cloud-provider-contextualizer.js.map +1 -0
  1177. package/lib/uilogic/cloud-resource-configurator-factory.d.ts +41 -0
  1178. package/lib/uilogic/cloud-resource-configurator-factory.js +158 -0
  1179. package/lib/uilogic/cloud-resource-configurator-factory.js.map +1 -0
  1180. package/lib/uilogic/cloud-resource-configurators/aws-k8s-versions.d.ts +11 -0
  1181. package/lib/uilogic/cloud-resource-configurators/aws-k8s-versions.js +16 -0
  1182. package/lib/uilogic/cloud-resource-configurators/aws-k8s-versions.js.map +1 -0
  1183. package/lib/uilogic/cloud-resource-configurators/aws-node-types.d.ts +5 -0
  1184. package/lib/uilogic/cloud-resource-configurators/aws-node-types.js +536 -0
  1185. package/lib/uilogic/cloud-resource-configurators/aws-node-types.js.map +1 -0
  1186. package/lib/uilogic/cloud-resource-configurators/aws-regions.d.ts +10 -0
  1187. package/lib/uilogic/cloud-resource-configurators/aws-regions.js +34 -0
  1188. package/lib/uilogic/cloud-resource-configurators/aws-regions.js.map +1 -0
  1189. package/lib/uilogic/cloud-resource-configurators/aws-resource-configurator.d.ts +38 -0
  1190. package/lib/uilogic/cloud-resource-configurators/aws-resource-configurator.js +348 -0
  1191. package/lib/uilogic/cloud-resource-configurators/aws-resource-configurator.js.map +1 -0
  1192. package/lib/uilogic/cloud-resource-configurators/az-acr-cli-authenticator.d.ts +0 -0
  1193. package/lib/uilogic/cloud-resource-configurators/az-acr-cli-authenticator.js +78 -0
  1194. package/lib/uilogic/cloud-resource-configurators/az-acr-cli-authenticator.js.map +1 -0
  1195. package/lib/uilogic/cloud-resource-configurators/az-interactive-login-configurator.d.ts +42 -0
  1196. package/lib/uilogic/cloud-resource-configurators/az-interactive-login-configurator.js +248 -0
  1197. package/lib/uilogic/cloud-resource-configurators/az-interactive-login-configurator.js.map +1 -0
  1198. package/lib/uilogic/cloud-resource-configurators/azure-resource-configurator.d.ts +110 -0
  1199. package/lib/uilogic/cloud-resource-configurators/azure-resource-configurator.js +782 -0
  1200. package/lib/uilogic/cloud-resource-configurators/azure-resource-configurator.js.map +1 -0
  1201. package/lib/uilogic/cloud-resource-configurators/azure-types.d.ts +0 -0
  1202. package/lib/uilogic/cloud-resource-configurators/azure-types.js +10 -0
  1203. package/lib/uilogic/cloud-resource-configurators/azure-types.js.map +1 -0
  1204. package/lib/uilogic/cloud-resource-configurators/docker-hub-resource-configurator.d.ts +24 -0
  1205. package/lib/uilogic/cloud-resource-configurators/docker-hub-resource-configurator.js +106 -0
  1206. package/lib/uilogic/cloud-resource-configurators/docker-hub-resource-configurator.js.map +1 -0
  1207. package/lib/uilogic/cloud-resource-configurators/helm-resource-configurator.d.ts +16 -0
  1208. package/lib/uilogic/cloud-resource-configurators/helm-resource-configurator.js +45 -0
  1209. package/lib/uilogic/cloud-resource-configurators/helm-resource-configurator.js.map +1 -0
  1210. package/lib/uilogic/cloud-resource-configurators/unsupported-resource-configurator.d.ts +18 -0
  1211. package/lib/uilogic/cloud-resource-configurators/unsupported-resource-configurator.js +62 -0
  1212. package/lib/uilogic/cloud-resource-configurators/unsupported-resource-configurator.js.map +1 -0
  1213. package/lib/uilogic/enterprise-contextualizer.d.ts +76 -0
  1214. package/lib/uilogic/enterprise-contextualizer.js +671 -0
  1215. package/lib/uilogic/enterprise-contextualizer.js.map +1 -0
  1216. package/lib/uilogic/environment-contextualizer.d.ts +15 -0
  1217. package/lib/uilogic/environment-contextualizer.js +43 -0
  1218. package/lib/uilogic/environment-contextualizer.js.map +1 -0
  1219. package/lib/uilogic/i-cluster-configurator.d.ts +9 -0
  1220. package/lib/uilogic/i-cluster-configurator.js +3 -0
  1221. package/lib/uilogic/i-cluster-configurator.js.map +1 -0
  1222. package/lib/uilogic/i-login-configurator.d.ts +6 -0
  1223. package/lib/uilogic/i-login-configurator.js +3 -0
  1224. package/lib/uilogic/i-login-configurator.js.map +1 -0
  1225. package/lib/uilogic/i-registry-configurator.d.ts +6 -0
  1226. package/lib/uilogic/i-registry-configurator.js +3 -0
  1227. package/lib/uilogic/i-registry-configurator.js.map +1 -0
  1228. package/lib/uilogic/i-secret-store-configurator.d.ts +7 -0
  1229. package/lib/uilogic/i-secret-store-configurator.js +3 -0
  1230. package/lib/uilogic/i-secret-store-configurator.js.map +1 -0
  1231. package/lib/uilogic/image-configurator.d.ts +133 -0
  1232. package/lib/uilogic/image-configurator.js +578 -0
  1233. package/lib/uilogic/image-configurator.js.map +1 -0
  1234. package/lib/uilogic/image-contextualizer.d.ts +24 -0
  1235. package/lib/uilogic/image-contextualizer.js +90 -0
  1236. package/lib/uilogic/image-contextualizer.js.map +1 -0
  1237. package/lib/uilogic/image-registry-contextualizer.d.ts +28 -0
  1238. package/lib/uilogic/image-registry-contextualizer.js +127 -0
  1239. package/lib/uilogic/image-registry-contextualizer.js.map +1 -0
  1240. package/lib/uilogic/index.d.ts +9 -0
  1241. package/lib/uilogic/index.js +14 -0
  1242. package/lib/uilogic/index.js.map +1 -0
  1243. package/lib/uilogic/prompt-select-fuzzy.d.ts +0 -0
  1244. package/lib/uilogic/prompt-select-fuzzy.js +139 -0
  1245. package/lib/uilogic/prompt-select-fuzzy.js.map +1 -0
  1246. package/lib/uilogic/render-methods.d.ts +12 -0
  1247. package/lib/uilogic/render-methods.js +65 -0
  1248. package/lib/uilogic/render-methods.js.map +1 -0
  1249. package/lib/uilogic/tenant-contextualizer.d.ts +79 -0
  1250. package/lib/uilogic/tenant-contextualizer.js +578 -0
  1251. package/lib/uilogic/tenant-contextualizer.js.map +1 -0
  1252. package/lib/user-context-loader.d.ts +60 -0
  1253. package/lib/user-context-loader.js +184 -0
  1254. package/lib/user-context-loader.js.map +1 -0
  1255. package/oclif.manifest.json +1 -1
  1256. package/package.json +151 -151
  1257. package/scaffolding/api/.gitignore-scaffolding +68 -68
  1258. package/scaffolding/api/.vscode/launch.json +16 -16
  1259. package/scaffolding/api/.vscode/settings.json +7 -7
  1260. package/scaffolding/api/.vscode/tasks.json +15 -15
  1261. package/scaffolding/api/src/app-config.json +2 -2
  1262. package/scaffolding/api/src/index.ts-scaffolding +13 -13
  1263. package/scaffolding/api/src/myApiDef.ts-scaffolding +25 -25
  1264. package/scaffolding/default/.gitignore-scaffolding +2 -2
  1265. package/scaffolding/typescript/.gitignore-scaffolding +69 -69
  1266. package/scaffolding/typescript/.vscode/launch.json +16 -16
  1267. package/scaffolding/typescript/.vscode/settings.json +7 -7
  1268. package/scaffolding/typescript/.vscode/tasks.json +15 -15
@@ -0,0 +1,1365 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LogStreamer = exports.K8sContainerRef = exports.TermArgs = exports.ConfigFileArgs = exports.ExecArgs = exports.K8S_POD_PHASES = exports.InteractionModes = exports.AssetContentType = exports.PROMPT_ME_DESIGNATOR = void 0;
4
+ const tslib_1 = require("tslib");
5
+ //import * as path from 'path';
6
+ const stream = require("stream");
7
+ const core_1 = require("@oclif/core");
8
+ const _ = require("lodash");
9
+ const SplitCmd = require('split-cmd');
10
+ const request = require("request");
11
+ const semver = require("semver");
12
+ const k8s = require("@kubernetes/client-node");
13
+ const codiac_relay_contracts_1 = require("@codiac.io/codiac-relay-contracts");
14
+ const command_base_enterprise_1 = require("../../command-base-enterprise");
15
+ const render = require("../../uilogic/render-methods");
16
+ const cloud_provider_contextualizer_1 = require("../../uilogic/cloud-provider-contextualizer");
17
+ const client_node_1 = require("@kubernetes/client-node");
18
+ const web_socket_handler_1 = require("@kubernetes/client-node/dist/web-socket-handler");
19
+ const codiac_ops_common_1 = require("@codiac.io/codiac-ops-common");
20
+ // let logUpdate: any;
21
+ // (async function () {
22
+ // logUpdate = (await import("log-update")).default;
23
+ // })()
24
+ // import * as logUpdate from "log-update";
25
+ // import logUpdate from "log-update";
26
+ // const logUpdate = (await import("log-update/index.js")).default
27
+ // import { logUpdate } from "log-update";
28
+ // const logUpdate = require("log-update");
29
+ const log_update_wrapper_1 = require("../../log-update-wrapper");
30
+ const codiac_constants_1 = require("../../codiac-constants");
31
+ // const { selectFiles, COMPLETED, CANCELLED } = require('select-files-cli'); // gd js wo ts...
32
+ // const { selectFiles, COMPLETED, CANCELLED } = require('../../uilogic/file-selector'); // gd js wo ts...
33
+ /** The value provided as input that indicates
34
+ * a user's desire to be prompted with a list from which choose the value(s),
35
+ * instead of entering them manually or taking a default. */
36
+ exports.PROMPT_ME_DESIGNATOR = "?";
37
+ var AssetContentType;
38
+ (function (AssetContentType) {
39
+ AssetContentType["logs"] = "logs";
40
+ AssetContentType["term"] = "term";
41
+ AssetContentType["exec"] = "exec";
42
+ AssetContentType["env"] = "env";
43
+ AssetContentType["config"] = "config";
44
+ AssetContentType["status"] = "status";
45
+ // | "footprint-usage" | "infrx"
46
+ // | "ingress-domains" | "ingress-nslookup" | "ingress-routes" | "ingress-logs" | "ssl-certs" | "ssl-logs" | "ssl-cert-history";
47
+ })(AssetContentType = exports.AssetContentType || (exports.AssetContentType = {}));
48
+ const DEFAULT_TERMINAL_STARTER = "bash";
49
+ /** The quantity of lines of backlog to include in the log output. */
50
+ const DEFAULT_LOG_TAIL = 10;
51
+ var InteractionModes;
52
+ (function (InteractionModes) {
53
+ InteractionModes["echo"] = "echo";
54
+ InteractionModes["toscript"] = "toscript";
55
+ InteractionModes["silent"] = "silent";
56
+ })(InteractionModes = exports.InteractionModes || (exports.InteractionModes = {}));
57
+ /** This belongs to k8s - not us, but @kubernetes/client-node has no enum or constants for these magic strings...
58
+ *
59
+ * @see https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase
60
+ */
61
+ var K8S_POD_PHASES;
62
+ (function (K8S_POD_PHASES) {
63
+ K8S_POD_PHASES["Pending"] = "Pending";
64
+ K8S_POD_PHASES["Running"] = "Running";
65
+ K8S_POD_PHASES["Succeeded"] = "Succeeded";
66
+ K8S_POD_PHASES["Failed"] = "Failed";
67
+ K8S_POD_PHASES["Unknown"] = "Unknown";
68
+ })(K8S_POD_PHASES = exports.K8S_POD_PHASES || (exports.K8S_POD_PHASES = {}));
69
+ class AssetView extends command_base_enterprise_1.CommandBaseEnterprise {
70
+ constructor() {
71
+ super(...arguments);
72
+ this.takeDefaults = false;
73
+ }
74
+ get uiCloudPvd() {
75
+ if (this._uiCloudPvd_backer === undefined) {
76
+ this._uiCloudPvd_backer = this.ioc.get(cloud_provider_contextualizer_1.CloudProviderContextualizer);
77
+ }
78
+ return this._uiCloudPvd_backer;
79
+ }
80
+ bootstrap() {
81
+ super.bootstrap();
82
+ cloud_provider_contextualizer_1.CloudProviderContextualizer.bootstrap(this.ioc); // (idempotent) this is a dependency of the configurators
83
+ }
84
+ run() {
85
+ var _a, _b, _c;
86
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
87
+ try {
88
+ // ==================================================
89
+ // 1. Bootstrap
90
+ // ==================================================
91
+ this.bootstrap();
92
+ // this._relayContainer?.ready$
93
+ // .subscribe(async (ready: boolean) => {
94
+ // ==================================================
95
+ // 2. Gather cli input
96
+ // ==================================================
97
+ const { args, flags } = yield this.parse(AssetView);
98
+ const interactionMode = (_b = (_a = (flags.echo ? InteractionModes.echo : undefined)) !== null && _a !== void 0 ? _a : (flags.toscript ? InteractionModes.toscript : undefined)) !== null && _b !== void 0 ? _b : (flags.silent ? InteractionModes.silent : undefined);
99
+ this.takeDefaults = (_c = flags.takeDefaults) !== null && _c !== void 0 ? _c : false;
100
+ let partialReq = {};
101
+ partialReq.enterprise = flags.enterprise;
102
+ partialReq.asset = flags.asset;
103
+ partialReq.environment = flags.environment;
104
+ partialReq.cabinet = flags.cabinet;
105
+ partialReq.content = (flags.type) ? AssetContentType[flags.type] : undefined;
106
+ partialReq.replica = flags.replica;
107
+ let givenCmd;
108
+ if (args.cmd) {
109
+ givenCmd = args.cmd;
110
+ let isep = this.argv.indexOf("--");
111
+ if (isep >= 0) {
112
+ if (isep + 1 < this.argv.length) {
113
+ givenCmd = this.argv.slice(isep + 1);
114
+ }
115
+ else {
116
+ givenCmd = undefined;
117
+ }
118
+ }
119
+ }
120
+ let contentOptions = {
121
+ follow: flags.logsFollow,
122
+ tailLines: flags.logsTail,
123
+ /* tty: flags.tty, */
124
+ command: givenCmd,
125
+ terminalStartup: flags.terminal,
126
+ rootPathName: flags.configFile
127
+ };
128
+ // ==================================================
129
+ // 3. Assemble candidate
130
+ // ==================================================
131
+ let candidate;
132
+ let cmd;
133
+ if (interactionMode == InteractionModes.silent) {
134
+ candidate = yield this.buildCandidate_silently(partialReq, partialReq.content, contentOptions);
135
+ }
136
+ else {
137
+ [candidate, cmd] = yield this.buildCandidate_interactively(partialReq, contentOptions, partialReq.content);
138
+ }
139
+ // ==================================================
140
+ // 4. Render ultimate command string
141
+ // ==================================================
142
+ if (interactionMode == InteractionModes.echo || interactionMode == InteractionModes.toscript) {
143
+ if (cmd && cmd.length > 0) {
144
+ this._ui.userMessage(cmd.join(" "));
145
+ }
146
+ }
147
+ // ==================================================
148
+ // 5. Execute
149
+ // ==================================================
150
+ if (interactionMode != InteractionModes.toscript) {
151
+ yield this.renderSelectedContent(candidate.context, candidate.contentType, candidate.k8sEntities, candidate.contentOptions, candidate.replicas);
152
+ }
153
+ // return;
154
+ // });
155
+ return;
156
+ }
157
+ catch (err) {
158
+ this.handleError(err);
159
+ throw err;
160
+ }
161
+ });
162
+ }
163
+ buildCandidate_silently(partialReq, content, contentOptions) {
164
+ var _a, _b, _c, _d, _e, _f;
165
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
166
+ this.__ui = new codiac_ops_common_1.ThrowingUserInputProvider(this.logger);
167
+ if (content === undefined || _.isEmpty(partialReq.content))
168
+ throw new Error(`No content type specified.`);
169
+ if (partialReq.enterprise === undefined || _.isEmpty(partialReq.enterprise))
170
+ throw new Error(`No enterprise specified.`);
171
+ if (partialReq.asset === undefined || _.isEmpty(partialReq.asset))
172
+ throw new Error(`No asset specified.`);
173
+ if (partialReq.environment === undefined || _.isEmpty(partialReq.environment))
174
+ throw new Error(`No environment specified.`);
175
+ if (partialReq.cabinet === undefined || _.isEmpty(partialReq.cabinet))
176
+ throw new Error(`No cabinet specified.`);
177
+ // Replica should not be required
178
+ // (though this can be confusing when there's more than one;
179
+ // the user will have to know they're only getting a single replica of logs,
180
+ // and they need to know they might have to call out for one.
181
+ // if (partialReq.replica === undefined || _.isEmpty(partialReq.replica)) throw new Error(`No replica specified.`);
182
+ let options;
183
+ switch (partialReq.content) {
184
+ case AssetContentType.logs:
185
+ options = (contentOptions !== null && contentOptions !== void 0 ? contentOptions : {});
186
+ // defaults?
187
+ break;
188
+ case AssetContentType.exec:
189
+ if (_.isEmpty(contentOptions.command))
190
+ throw new Error(`No command specified.`);
191
+ options = {
192
+ command: contentOptions.command,
193
+ tty: (_a = contentOptions.tty) !== null && _a !== void 0 ? _a : false
194
+ };
195
+ break;
196
+ case AssetContentType.config:
197
+ if (_.isEmpty(contentOptions.rootPathName))
198
+ throw new Error(`No file specified.`);
199
+ options = {
200
+ rootPathName: contentOptions.rootPathName
201
+ };
202
+ break;
203
+ case AssetContentType.term:
204
+ options = {
205
+ terminalStartup: (_b = contentOptions.terminalStartup) !== null && _b !== void 0 ? _b : DEFAULT_TERMINAL_STARTER
206
+ };
207
+ break;
208
+ case AssetContentType.env: /* env has no user input */
209
+ default:
210
+ options = {};
211
+ break;
212
+ }
213
+ // Retrieve the list of replicas for the given cabinet.
214
+ let rootMap = yield this.getRootMap(partialReq.enterprise);
215
+ let env = this.deriveEnvironmentFrom(partialReq.enterprise, partialReq.cabinet, rootMap); // this is fkng stupid. Put this value into the cab value
216
+ let cabObj = this.getCabinetInfrx(partialReq.enterprise, env.name, partialReq.cabinet, rootMap);
217
+ if (cabObj.infrx == undefined || _.isEmpty(cabObj.infrx))
218
+ throw new Error(`Cannot connect to cabinet ${cabObj.name}: it has no infrastructure record.`);
219
+ let k8sObj = { namespace: cabObj.infrx.namespace };
220
+ let replicas = yield this.fetchReplicas(partialReq, cabObj.infrx.namespace);
221
+ if (replicas.length > 0) {
222
+ // Set first as default
223
+ partialReq.replica = (_d = (_c = replicas[0].metadata) === null || _c === void 0 ? void 0 : _c.name) !== null && _d !== void 0 ? _d : "unnamed";
224
+ k8sObj = {
225
+ namespace: cabObj.infrx.namespace,
226
+ pod: partialReq.replica,
227
+ container: (_f = (_e = replicas[0].spec) === null || _e === void 0 ? void 0 : _e.containers[0].name) !== null && _f !== void 0 ? _f : "unnamed"
228
+ };
229
+ // Select a replica unless it's an asset-level operation
230
+ if (content !== AssetContentType.status) {
231
+ // This method falls back to first found as default, throws if not enough info is provided
232
+ k8sObj = yield this.promptForReplica(replicas, undefined, partialReq.replica);
233
+ partialReq.replica = k8sObj.pod;
234
+ }
235
+ }
236
+ // Assemble
237
+ let candidate = {
238
+ context: {
239
+ enterprise: partialReq.enterprise,
240
+ environment: partialReq.environment,
241
+ asset: partialReq.asset,
242
+ cabinet: partialReq.cabinet,
243
+ replica: partialReq.replica
244
+ },
245
+ contentType: content,
246
+ contentOptions: options,
247
+ k8sEntities: k8sObj,
248
+ replicas: replicas
249
+ };
250
+ return candidate;
251
+ });
252
+ }
253
+ buildCandidate_interactively(partialReq, contentOptions, content) {
254
+ var _a, _b, _c, _d;
255
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
256
+ this._userCntx = yield this.establishTenantContext(this._userCntx);
257
+ let enterprise = (yield this.establishEnterpriseContext()).enterprise;
258
+ partialReq.enterprise = enterprise.code;
259
+ let rootMap = yield this.getRootMap(enterprise.code);
260
+ let replicas;
261
+ let k8sObj;
262
+ let confirmed = false;
263
+ let optionsArgs = [];
264
+ do {
265
+ // 1. Select Asset
266
+ partialReq.asset = yield this.promptForAsset(enterprise.assets, partialReq.asset);
267
+ // 2. Cabinet
268
+ let cabObj = yield this.promptForCabinet(partialReq.enterprise, rootMap, partialReq.cabinet);
269
+ partialReq.cabinet = cabObj.name;
270
+ partialReq.environment = this.deriveEnvironmentFrom(partialReq.enterprise, partialReq.cabinet, rootMap).name;
271
+ let cluster = this.deriveClusterFrom(partialReq.enterprise, partialReq.environment, partialReq.cabinet, rootMap);
272
+ // partialReq.cabinet = await this.establishCabinetContext(partialReq.cabinet);
273
+ if (cabObj.infrx == undefined || _.isEmpty(cabObj.infrx))
274
+ throw new Error(`Cannot connect to cabinet ${cabObj.name}: it has no infrastructure record.`);
275
+ k8sObj = { namespace: cabObj.infrx.namespace };
276
+ // 3. Content type
277
+ content = yield this.promptForContentType(content);
278
+ // 4. Content-specific arguments
279
+ // MarkStartHere("implement prompt-me designator.")
280
+ // MarkStartHere("Support the current logger or ioc ctr inside the ws event handlers");
281
+ // MarkStartHere("Need UI to operate a different stream than stdout (so piping stdout wont include the ui content");
282
+ [contentOptions, optionsArgs] = yield this.promptForContentOptions(content, partialReq, contentOptions);
283
+ // 5. Authenticate with CSP
284
+ this.uiCloudPvd.takeDefaults = this.takeDefaults;
285
+ yield this.uiCloudPvd.promptForCloudProviderCreds(this.ioc, cluster.provider);
286
+ // 6. Replica (Pod)
287
+ if (cabObj.infrx == undefined || _.isEmpty(cabObj.infrx))
288
+ throw new Error(`Cannot connect to cabinet ${cabObj.name}: it has no infrastructure record.`);
289
+ replicas = yield this.fetchReplicas(partialReq, cabObj.infrx.namespace);
290
+ if (replicas.length > 0) {
291
+ // Set first as default
292
+ partialReq.replica = (_b = (_a = replicas[0].metadata) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : "unnamed";
293
+ k8sObj = {
294
+ namespace: cabObj.infrx.namespace,
295
+ pod: partialReq.replica,
296
+ container: (_d = (_c = replicas[0].spec) === null || _c === void 0 ? void 0 : _c.containers[0].name) !== null && _d !== void 0 ? _d : "unnamed"
297
+ };
298
+ // Select a replica unless it's an asset-level operation
299
+ if (content !== AssetContentType.status) {
300
+ k8sObj = yield this.promptForReplica(replicas, undefined, partialReq.replica);
301
+ partialReq.replica = k8sObj.pod;
302
+ }
303
+ }
304
+ // 7. Confirm or loop back around to enterprise
305
+ confirmed = true; // This is a readonly ui (no danger), and we want to enable fast switching among diff content types, so let's not waste time confirming. // await this._ui.promptConfirm("confirm", "Apply? ");
306
+ } while (!confirmed);
307
+ // We're hard-coding instead of casting here to validate at build-time that each partial property is fully-hydrated.
308
+ // Assemble
309
+ let candidate = {
310
+ context: {
311
+ enterprise: partialReq.enterprise,
312
+ environment: partialReq.environment,
313
+ asset: partialReq.asset,
314
+ cabinet: partialReq.cabinet,
315
+ replica: partialReq.replica
316
+ },
317
+ contentType: content,
318
+ contentOptions: contentOptions,
319
+ k8sEntities: k8sObj,
320
+ replicas: replicas
321
+ };
322
+ // Build command string
323
+ let cmd = ["cod", "asset", "view"];
324
+ cmd.push("--silent");
325
+ cmd.push("-e", candidate.context.enterprise);
326
+ cmd.push("-a", candidate.context.asset);
327
+ cmd.push("-n", candidate.context.environment);
328
+ cmd.push("-c", candidate.context.cabinet);
329
+ if (candidate.context.replica)
330
+ cmd.push("-r", candidate.context.replica);
331
+ cmd.push("-t", candidate.contentType);
332
+ cmd.push(...optionsArgs);
333
+ return [candidate, cmd];
334
+ });
335
+ }
336
+ promptForContentOptions(contentType, context, defaults) {
337
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
338
+ let cmdArgs = [];
339
+ try {
340
+ switch (contentType) {
341
+ case AssetContentType.logs:
342
+ let logArgs = yield this.promptForLogOptions(defaults);
343
+ if (logArgs.follow)
344
+ cmdArgs.push("-f");
345
+ if (logArgs.tailLines)
346
+ cmdArgs.push(...["-l", "" + logArgs.tailLines]);
347
+ return [logArgs, cmdArgs];
348
+ case AssetContentType.exec:
349
+ let execArgs = yield this.promptForExecOptions(defaults);
350
+ cmdArgs.push(...execArgs.command);
351
+ return [execArgs, cmdArgs];
352
+ case AssetContentType.config:
353
+ this.enterpriseContextor.takeDefaults = this.takeDefaults;
354
+ let rootPathName = (yield this.enterpriseContextor.promptForTargetFile(context.enterprise, context.asset, defaults === null || defaults === void 0 ? void 0 : defaults.rootPathName));
355
+ let cfgArgs = { rootPathName: rootPathName };
356
+ cmdArgs.push("-F", rootPathName);
357
+ return [cfgArgs, cmdArgs];
358
+ case AssetContentType.term:
359
+ let termArgs = yield this.promptForTerminalOptions(defaults);
360
+ if (termArgs.terminalStartup)
361
+ cmdArgs.push(...["--terminal", termArgs.terminalStartup]);
362
+ return [termArgs, cmdArgs];
363
+ default:
364
+ return [{}, []];
365
+ }
366
+ }
367
+ catch (err) {
368
+ throw err;
369
+ }
370
+ });
371
+ }
372
+ promptForLogOptions(defaults) {
373
+ var _a, _b;
374
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
375
+ let options = (defaults !== null && defaults !== void 0 ? defaults : {});
376
+ options.follow = (_a = options.follow) !== null && _a !== void 0 ? _a : true;
377
+ if (!this.takeDefaults) {
378
+ options.follow = yield this._ui.promptConfirm("follow", "Stream logs? ", options.follow);
379
+ }
380
+ options.tailLines = (_b = options.tailLines) !== null && _b !== void 0 ? _b : DEFAULT_LOG_TAIL;
381
+ if (!this.takeDefaults) {
382
+ options.tailLines = yield this._ui.prompt("tail", "Lines of backlog (-1 for all):", true, options.tailLines);
383
+ }
384
+ return options;
385
+ });
386
+ }
387
+ promptForExecOptions(defaults) {
388
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
389
+ let options = (defaults !== null && defaults !== void 0 ? defaults : {});
390
+ // Command
391
+ let cmdStr;
392
+ let keep = this.takeDefaults;
393
+ if (!_.isEmpty(options.command) && !this.takeDefaults) {
394
+ cmdStr = (typeof options.command === 'string') ? options.command : options.command.join(" ");
395
+ keep = yield this._ui.promptConfirm("keepCommand", `Command: ${this._styler.hilite(cmdStr)} `);
396
+ }
397
+ if (keep && !_.isEmpty(options.command)) {
398
+ // do nothing
399
+ }
400
+ else {
401
+ options.command = (yield this._ui.prompt("command", "Command: ", true, cmdStr));
402
+ options.command = SplitCmd.split(options.command); // no types declarations - f#$&*ing script kiddie.
403
+ // the one above trips on the --output flag in this: kubectl get pods -n cod-zombie-v1 -l assetNamme=codiac-api --output=jsonpath="{.items[*]['metadata.name', 'status.capacity']}"
404
+ // something safer than: options.command = options.command.split(" ");
405
+ }
406
+ return options;
407
+ });
408
+ }
409
+ promptForTerminalOptions(defaults) {
410
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
411
+ let options = (defaults !== null && defaults !== void 0 ? defaults : {});
412
+ // Command
413
+ let keep = this.takeDefaults;
414
+ if (!_.isEmpty(options.terminalStartup) && !this.takeDefaults) {
415
+ keep = yield this._ui.promptConfirm("keepStartup", `Terminal Startup: ${this._styler.hilite(options.terminalStartup)} `);
416
+ }
417
+ if (keep && !_.isEmpty(options.terminalStartup)) {
418
+ // do nothing
419
+ }
420
+ else {
421
+ options.terminalStartup = (yield this._ui.prompt("startup", "Terminal Startup: ", true, options.terminalStartup));
422
+ }
423
+ return options;
424
+ });
425
+ }
426
+ promptForContentType(defaultValue) {
427
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
428
+ try {
429
+ let output;
430
+ let choices = Object.keys(AssetContentType);
431
+ let keep = this.takeDefaults;
432
+ if (defaultValue && choices.find(x => x == defaultValue) && !this.takeDefaults) {
433
+ keep = yield this._ui.promptConfirm("keepType", `Type of content: ${this._styler.hilite(defaultValue)} `);
434
+ }
435
+ if (keep && defaultValue !== undefined) {
436
+ output = defaultValue;
437
+ }
438
+ else {
439
+ output = (yield this._ui.promptSelect("type", "Type of content: ", choices));
440
+ }
441
+ return output;
442
+ }
443
+ catch (err) {
444
+ throw err;
445
+ }
446
+ });
447
+ }
448
+ promptForAsset(assets, defaultValue) {
449
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
450
+ try {
451
+ let output;
452
+ let choices = assets.map(a => { return { name: a.name, value: a.name }; });
453
+ choices = _.orderBy(choices, c => c.name);
454
+ /** If we changed the input they provided, we need their confirmation (whether or not they said takeDefaults) */
455
+ let changedUserInput = false;
456
+ if (choices.length === 1) {
457
+ if (defaultValue != choices[0].value) {
458
+ changedUserInput = !_.isEmpty(defaultValue);
459
+ defaultValue = choices[0].value;
460
+ }
461
+ }
462
+ let keep = this.takeDefaults;
463
+ if (defaultValue && choices.find(x => x.value == defaultValue) && (changedUserInput || !this.takeDefaults)) {
464
+ keep = yield this._ui.promptConfirm("keepAsset", `Asset: ${this._styler.hilite(defaultValue)} `);
465
+ }
466
+ if (keep && defaultValue !== undefined) {
467
+ output = defaultValue;
468
+ }
469
+ else {
470
+ output = (yield this._ui.promptSelect("asset", "Asset: ", choices));
471
+ }
472
+ return output;
473
+ }
474
+ catch (err) {
475
+ throw err;
476
+ }
477
+ });
478
+ }
479
+ promptForCabinet(enterprise, rootMap, defaultValue) {
480
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
481
+ try {
482
+ let output;
483
+ // render cab tree with all lines selectable
484
+ let cabTree = this.buildCabinetTree(rootMap);
485
+ let choices = this.buildSelectChoicesFrom(cabTree);
486
+ // ISSUES:
487
+ // 0. Remove the freaking lines from the selected value.
488
+ // 1. Remember the last cabinet (user's enterprise context).
489
+ // 2. We should only render the cabinets that actually contain a deployment of the asset (or dim the others and loop back if selected)
490
+ // 3. The picklist should render the cluster (provider, name, location)
491
+ // 4. PERHAPS? The version of the asset running in the selected cabinet should get rendered (either in the picklist or after the cab is selected)
492
+ /** If we changed the input they provided, we need their confirmation (whether or not they said takeDefaults) */
493
+ const CAB_PREFIX = "cabinet|";
494
+ let cabChoices = choices.filter(c => c.value.startsWith(CAB_PREFIX));
495
+ let changedUserInput = false;
496
+ if (cabChoices.length === 1) {
497
+ if (defaultValue != cabChoices[0].value.slice(CAB_PREFIX.length)) {
498
+ changedUserInput = !_.isEmpty(defaultValue);
499
+ defaultValue = cabChoices[0].value.slice(CAB_PREFIX.length);
500
+ }
501
+ }
502
+ let keep = this.takeDefaults;
503
+ if (defaultValue && Boolean(choices.find(x => x.value === `${CAB_PREFIX}${defaultValue}`)) && (changedUserInput || !this.takeDefaults)) {
504
+ keep = yield this._ui.promptConfirm("keepCabinet", `Cabinet: ${this._styler.hilite(defaultValue)} `);
505
+ }
506
+ if (keep && defaultValue !== undefined) {
507
+ output = defaultValue;
508
+ }
509
+ else {
510
+ let scope;
511
+ let target;
512
+ do {
513
+ if (scope === "environment") {
514
+ // we could just filter it down from here...
515
+ }
516
+ let selection = (yield this._ui.promptSelect("cabinet", "Cabinet: ", choices, false, false));
517
+ let parts = selection.split("|");
518
+ scope = parts[0];
519
+ target = parts[1];
520
+ } while (scope !== "cabinet"); // ensure they select a cabinet
521
+ output = target;
522
+ }
523
+ let env = this.deriveEnvironmentFrom(enterprise, output, rootMap); // this is fkng stupid. Put this value into the cab value
524
+ let cabObj = this.getCabinetInfrx(enterprise, env.name, output, rootMap);
525
+ // return output;
526
+ return cabObj;
527
+ }
528
+ catch (err) {
529
+ throw (err);
530
+ }
531
+ });
532
+ }
533
+ deriveEnvironmentFrom(enterprise, cabinet, rootMap) {
534
+ try {
535
+ let ent = rootMap.enterprises.find(e => e.name === enterprise);
536
+ if (ent === undefined)
537
+ throw new Error(`Cannot find environment: did not recognize enterprise [${enterprise}]`);
538
+ let enviro = ent.environments.find(x => x.cabinets.find(c => c.name === cabinet));
539
+ if (enviro === undefined)
540
+ throw new Error(`Cannot find environment: did not recognize cabinet [${cabinet}]`);
541
+ return enviro;
542
+ }
543
+ catch (err) {
544
+ throw err;
545
+ }
546
+ }
547
+ deriveClusterFrom(enterprise, environment, cabinet, rootMap) {
548
+ try {
549
+ let ent = rootMap.enterprises.find(e => e.name === enterprise);
550
+ if (ent === undefined)
551
+ throw new Error(`Cannot find cluster: did not recognize enterprise [${enterprise}]`);
552
+ let enviro = ent.environments.find(x => x.cabinets.find(c => c.name === cabinet));
553
+ if (enviro === undefined)
554
+ throw new Error(`Cannot find cluster: did not recognize cabinet [${cabinet}]`);
555
+ let cabObj = enviro.cabinets.find(c => c.name === cabinet);
556
+ if (cabObj == undefined)
557
+ throw new Error(`Cannot find cluster: did not recognize cabinet [${cabinet}]`);
558
+ if (cabObj.cluster == undefined)
559
+ throw new Error(`Cannot find cluster: cabinet [${cabinet}] does not have a cluster specified.`);
560
+ let cluster = rootMap.clusters.find(c => c.name == cabObj.cluster);
561
+ if (cluster == undefined)
562
+ throw new Error(`Did not recognize cluster [${cabObj.cluster}]`);
563
+ return cluster;
564
+ }
565
+ catch (err) {
566
+ throw err;
567
+ }
568
+ }
569
+ buildSelectChoicesFrom(tree) {
570
+ try {
571
+ let choices = [];
572
+ // the value is no good here - need scope and target both available
573
+ render.renderStringTree(tree, (txt, item) => choices.push({ name: txt, value: item.value }));
574
+ // // This is one way to do it
575
+ // for (let item of tree) {
576
+ //
577
+ // let thisChoice: PromptChoice = { name: item.text, value: item.text };
578
+ // choices.push(thisChoice);
579
+ //
580
+ // if (item.children && item.children.length > 0) {
581
+ // let children = this.buildSelectChoicesFrom(item.children);
582
+ // choices.push(...children);
583
+ // }
584
+ // }
585
+ return choices;
586
+ }
587
+ catch (err) {
588
+ throw err;
589
+ }
590
+ }
591
+ /** sets each value to "scope|target".
592
+ *
593
+ * This is MOSTLY a COPY-PASTE from the CabinetList command!!! This view is prob gonna be pretty common - consider promoting it to a shared utility. */
594
+ buildCabinetTree(rootMap, existings) {
595
+ var _a, _b, _c, _d;
596
+ let tree = [];
597
+ for (let ent of rootMap.enterprises) {
598
+ let entBranch = { text: `${ent.name} enterprise:`, value: `${codiac_relay_contracts_1.ScopeLevel.enterprise}|${ent.name}` };
599
+ let entSetting = existings === null || existings === void 0 ? void 0 : existings.find(s => s.scope === codiac_relay_contracts_1.ScopeLevel.enterprise && s.target === ent.name);
600
+ if (entSetting !== undefined) {
601
+ let valueSuffix = this.ellipsis(35, (_a = entSetting.value) !== null && _a !== void 0 ? _a : "[set to undefined]");
602
+ valueSuffix = `(${valueSuffix})`;
603
+ entBranch.text = entBranch.text.concat(" ", this._styler.dim(valueSuffix));
604
+ }
605
+ for (let env of _.sortBy(ent.environments, e => e.sequence, e => e.name)) {
606
+ let envBranch = { text: `${env.name}`, value: `${codiac_relay_contracts_1.ScopeLevel.environment}|${env.name}` };
607
+ let envSetting = existings === null || existings === void 0 ? void 0 : existings.find(s => s.scope === codiac_relay_contracts_1.ScopeLevel.environment && s.target === env.name);
608
+ if (envSetting !== undefined) {
609
+ let valueSuffix = this.ellipsis(35, (_b = envSetting.value) !== null && _b !== void 0 ? _b : "[set to undefined]");
610
+ valueSuffix = `(${valueSuffix})`;
611
+ envBranch.text = envBranch.text.concat(" ", this._styler.dim(valueSuffix));
612
+ }
613
+ for (let cab of env.cabinets) {
614
+ // let cwg = rootMap.clusters.find(c => c.name === cab.cluster);
615
+ // let clusterDesc = cwg ? ` (${cab.cluster}, ${cwg.provider} ${cwg.locationName})` : "";
616
+ let cabBranch = {
617
+ text: `${cab.name}`,
618
+ value: `${codiac_relay_contracts_1.ScopeLevel.cabinet}|${cab.name}`
619
+ };
620
+ let cabSetting = existings === null || existings === void 0 ? void 0 : existings.find(s => s.scope === codiac_relay_contracts_1.ScopeLevel.cabinet && s.target === cab.name);
621
+ if (cabSetting !== undefined) {
622
+ let valueSuffix = this.ellipsis(35, (_c = cabSetting.value) !== null && _c !== void 0 ? _c : "[set to undefined]");
623
+ valueSuffix = `(${valueSuffix})`;
624
+ cabBranch.text = cabBranch.text.concat(" ", this._styler.dim(valueSuffix));
625
+ }
626
+ if (envBranch.children === undefined)
627
+ envBranch.children = [];
628
+ (_d = envBranch.children) === null || _d === void 0 ? void 0 : _d.push(cabBranch);
629
+ }
630
+ if (entBranch.children === undefined)
631
+ entBranch.children = [];
632
+ entBranch.children.push(envBranch);
633
+ }
634
+ tree.push(entBranch);
635
+ }
636
+ return tree;
637
+ }
638
+ /** Truncates the string to the given length with an ellipses as suffix */
639
+ ellipsis(maxLength, value) {
640
+ let output = value;
641
+ if (output.length > maxLength) {
642
+ let ellipsis = "..."; // Rather use the ellipsis character but String.fromCharCode(133) is returning a problematic character.
643
+ output = output.slice(0, maxLength - 1 - ellipsis.length).concat(ellipsis);
644
+ }
645
+ return output;
646
+ }
647
+ /**
648
+ *
649
+ * @param enterprise
650
+ * @param environment
651
+ * @param cabinet
652
+ * @param asset
653
+ * @param ctrInPod (Optional, defaults to the first one in the spec) The name of the running container (not the image) inside the pod (relevant only when there's more than one).
654
+ * @param defaultValue
655
+ * @returns
656
+ */
657
+ promptForReplica(replicas, ctrInPod, defaultValue) {
658
+ var _a, _b, _c, _d, _e;
659
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
660
+ try {
661
+ let podName;
662
+ // params: enterprise: string, environment: string, cabinet: string, asset: string
663
+ // // Retrieve replicas
664
+ // this._ui.startSpinner(`Fetching ${asset} replicas in ${environment}/${cabinet}...`)
665
+ // let reps = await this.genRelayClient.Call.assetStatus({ assetName: asset, cabinetName: cabinet, enterpriseCode: enterprise, environment: environment });
666
+ // this._ui.stopSpinner((reps.successes) ? `${reps.successes.length} found.` : "failed.")
667
+ // if (reps.error) throw reps.error;
668
+ // if (reps.successes == undefined || reps.successes.length === 0) throw new Error(`No ${asset} replicas exist in cabinet ${environment}/${cabinet}. ${reps.message ?? ""}`);
669
+ //
670
+ // let replicas = reps.successes[0].currentVersion.pods; // <--- HEY!!! Relay shouldnt be exposing raw k8s contracts here - this shd be a codiac contract
671
+ let choices = replicas.filter(r => { var _a; return ((_a = r.metadata) === null || _a === void 0 ? void 0 : _a.name) !== undefined; })
672
+ .map(r => { var _a, _b, _c; return ({ name: `${(_a = r.metadata.name) !== null && _a !== void 0 ? _a : ""} (${(_b = r.status) === null || _b === void 0 ? void 0 : _b.phase})`, value: (_c = r.metadata.name) !== null && _c !== void 0 ? _c : "" }); });
673
+ // Select a replica...
674
+ if (choices.length === 0) {
675
+ this._ui.userMessage(`No replicas found.`);
676
+ podName = "unknown";
677
+ // return undefined; // <--- this is what we should do here.
678
+ }
679
+ else if (choices.length === 1) {
680
+ podName = choices[0].value;
681
+ this._ui.userMessage(`1 replica found: ${this._styler.hilite(podName)}`);
682
+ }
683
+ else {
684
+ let keep = this.takeDefaults;
685
+ if (defaultValue && Boolean(choices.find(x => x.value === defaultValue)) && !this.takeDefaults) {
686
+ keep = yield this._ui.promptConfirm("keepReplica", `Replica: ${this._styler.hilite(defaultValue)} `);
687
+ }
688
+ if (keep && defaultValue !== undefined) {
689
+ podName = defaultValue;
690
+ }
691
+ else {
692
+ podName = (yield this._ui.promptSelect("replica", "Replica...", choices, false, false)); // Assertion operator ok here - we're not allowing undefined options.
693
+ }
694
+ }
695
+ let replica = (replicas.find(r => { var _a; return ((_a = r.metadata) === null || _a === void 0 ? void 0 : _a.name) === podName; })); // Assertion ok: selection was already limited to this list.
696
+ // Select the container inside...
697
+ let containerName;
698
+ if ((((_a = replica.spec) === null || _a === void 0 ? void 0 : _a.containers) == undefined) || (((_b = replica.spec) === null || _b === void 0 ? void 0 : _b.containers.length) === 0))
699
+ throw new Error("No containers are specified in that replica");
700
+ if (!_.isEmpty(ctrInPod)) {
701
+ let found = replica.spec.containers.find(c => c.name === ctrInPod);
702
+ if (!found)
703
+ throw new Error(`Container [${ctrInPod}] not found in that replica`);
704
+ containerName = found.name;
705
+ }
706
+ else {
707
+ containerName = replica.spec.containers[0].name;
708
+ if (((_c = replica.spec) === null || _c === void 0 ? void 0 : _c.containers.length) > 1) {
709
+ // TODO: promptSelect from the list of containers
710
+ this._ui.userMessage(`${(_d = replica.spec) === null || _d === void 0 ? void 0 : _d.containers.length} containers in that replica; selected ${containerName}`);
711
+ }
712
+ }
713
+ let k8sCtr = {
714
+ namespace: (_e = replica.metadata) === null || _e === void 0 ? void 0 : _e.namespace,
715
+ pod: podName,
716
+ container: containerName
717
+ };
718
+ return k8sCtr;
719
+ }
720
+ catch (err) {
721
+ throw err;
722
+ }
723
+ });
724
+ }
725
+ renderSelectedContent(context, contentType, k8sEntities, contentOptions, replicas) {
726
+ var _a;
727
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
728
+ try {
729
+ switch (contentType) {
730
+ case (AssetContentType.logs):
731
+ if (context.replica == undefined)
732
+ throw new Error("No replica selected.");
733
+ if (k8sEntities.pod == undefined || k8sEntities.container == undefined)
734
+ throw new Error("No replica selected.");
735
+ yield this.showLogs(context, contentOptions);
736
+ break;
737
+ case (AssetContentType.term):
738
+ if (context.replica == undefined)
739
+ throw new Error("No replica selected.");
740
+ if (k8sEntities.pod == undefined || k8sEntities.container == undefined)
741
+ throw new Error("No replica selected.");
742
+ let termArgs = { tty: true, command: (_a = contentOptions === null || contentOptions === void 0 ? void 0 : contentOptions.terminalStartup) !== null && _a !== void 0 ? _a : DEFAULT_TERMINAL_STARTER };
743
+ yield this.runExec(context, termArgs, k8sEntities);
744
+ break;
745
+ case (AssetContentType.exec):
746
+ if (context.replica == undefined)
747
+ throw new Error("No replica selected.");
748
+ if (k8sEntities.pod == undefined || k8sEntities.container == undefined)
749
+ throw new Error("No replica selected.");
750
+ let execArgs = contentOptions;
751
+ execArgs.tty = false; // and we want a run-once behavior so the ws closes after the command completes.
752
+ yield this.runExec(context, execArgs, k8sEntities);
753
+ break;
754
+ case (AssetContentType.config):
755
+ if (context.replica == undefined)
756
+ throw new Error("No replica selected.");
757
+ if (k8sEntities.pod == undefined || k8sEntities.container == undefined)
758
+ throw new Error("No replica selected.");
759
+ let cfgInput = contentOptions;
760
+ if (!cfgInput.rootPathName.startsWith("/"))
761
+ cfgInput.rootPathName = "/".concat(cfgInput.rootPathName);
762
+ let cfgExec = { tty: false, command: ["cat", cfgInput.rootPathName] };
763
+ yield this.runExec(context, cfgExec, k8sEntities);
764
+ break;
765
+ case (AssetContentType.env):
766
+ if (context.replica == undefined)
767
+ throw new Error("No replica selected.");
768
+ if (k8sEntities.pod == undefined || k8sEntities.container == undefined)
769
+ throw new Error("No replica selected.");
770
+ let envArgs = { tty: false, command: "env" };
771
+ yield this.runExec(context, envArgs, k8sEntities);
772
+ break;
773
+ case (AssetContentType.status):
774
+ // await this.watchEvents(context, k8sEntities.namespace, replicas);
775
+ yield this.watchStatus_NEW(context, k8sEntities.namespace, replicas);
776
+ // await this.watchStatus(context, k8sEntities.namespace, replicas);
777
+ // await this.watchReplicaSet(context, k8sEntities.namespace);
778
+ // await this.showStatus(context, k8sEntities.namespace, replicas);
779
+ break;
780
+ default:
781
+ this.logger.debug(`Content type ${contentType} is not yet supported.`, [context, contentType, contentOptions]);
782
+ this._ui.userMessage(`Content type ${contentType} is not yet supported.`);
783
+ }
784
+ return;
785
+ }
786
+ catch (err) {
787
+ throw (err);
788
+ }
789
+ });
790
+ }
791
+ getKubeConfig(context) {
792
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
793
+ // Retrieve cluster connection specs
794
+ let res = yield this.genRelayClient.Call.getClusterConnectionSpecs({
795
+ enterprise: context.enterprise,
796
+ environment: context.environment,
797
+ cabinet: context.cabinet
798
+ });
799
+ if (res.error)
800
+ throw res.error;
801
+ if (res.output == undefined || _.isEmpty(res.output)) {
802
+ this.log(`Failed loading cluster spec: ${res.message}.`);
803
+ throw new Error(`Failed loading cluster spec: ${res.message}.`);
804
+ }
805
+ // Create the k8s client
806
+ let k8sConfig = new client_node_1.KubeConfig();
807
+ k8sConfig.loadFromString(res.output);
808
+ return k8sConfig;
809
+ });
810
+ }
811
+ getK8sClient(context, kube) {
812
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
813
+ let k8sConfig = kube !== null && kube !== void 0 ? kube : (yield this.getKubeConfig(context));
814
+ let theirApi = k8sConfig.makeApiClient(k8s.CoreV1Api);
815
+ return theirApi;
816
+ });
817
+ }
818
+ /** Gets the cluster cnxn specs from the relay, then makes the k8s call from the cli.
819
+ *
820
+ * Throws any errors. */
821
+ fetchReplicas(context, namespace, k8sClient) {
822
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
823
+ try {
824
+ let theirApi = k8sClient !== null && k8sClient !== void 0 ? k8sClient : yield this.getK8sClient(context);
825
+ // Fetch from the cluster
826
+ let podResult = yield theirApi.listNamespacedPod(namespace, undefined, undefined, undefined, undefined, `${codiac_constants_1.CodiacLabels.LABEL_ASSET_NAME}=${context.asset}`);
827
+ let replicas = podResult.body.items;
828
+ // let replicas = _.orderBy(podResult.body.items, p => p.metadata?.labels?.assetVersion, 'desc'); // NOTE: this isnt a semantic version sort
829
+ try {
830
+ // Might need a semver.coerce() in here...
831
+ replicas = replicas.sort((a, b) => { var _a, _b, _c, _d, _e, _f; return semver.rcompare((_c = (_b = (_a = a.metadata) === null || _a === void 0 ? void 0 : _a.labels) === null || _b === void 0 ? void 0 : _b.assetVersion) !== null && _c !== void 0 ? _c : "", (_f = (_e = (_d = b.metadata) === null || _d === void 0 ? void 0 : _d.labels) === null || _e === void 0 ? void 0 : _e.assetVersion) !== null && _f !== void 0 ? _f : ""); }); // removes semvers so they can be sorted uniquely
832
+ }
833
+ catch (err) {
834
+ replicas = _.orderBy(replicas, p => { var _a, _b, _c; return (_c = (_b = (_a = p.metadata) === null || _a === void 0 ? void 0 : _a.labels) === null || _b === void 0 ? void 0 : _b.assetVersion) !== null && _c !== void 0 ? _c : ""; }); // TODO: we need this ALSO sorted by replica set (ie: name or labels["pod-template-hash"])
835
+ }
836
+ return replicas;
837
+ }
838
+ catch (err) {
839
+ throw err;
840
+ }
841
+ });
842
+ }
843
+ // protected async watchEvents(context: AssetReplicaContext, namespace: string, replicas?: k8s.V1Pod[] | undefined): Promise<void> {
844
+ // // let selector = `${CodiacLabels.LABEL_ASSET_NAME}=${context.asset}`;
845
+ // let selector = `app=${context.asset}`;
846
+ // let creds = await this.getKubeConfig(context);
847
+ // let k8sClient = creds.makeApiClient(k8s.EventsV1Api);
848
+ // let watcher = new Watch(creds);
849
+ // watcher.watch(
850
+ // '/apis/events.k8s.io/v1/namespaces/{namespace}/events',
851
+ // )
852
+ // let res = await k8sClient.listNamespacedEvent(namespace, undefined, undefined, undefined, undefined, selector,
853
+ // undefined, undefined, undefined, undefined, true, undefined);
854
+ // }
855
+ watchStatus_NEW(context, namespace, replicas) {
856
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
857
+ // let selector = `${CodiacLabels.LABEL_ASSET_NAME}=${context.asset}`;
858
+ let selector = `app=${context.asset}`;
859
+ let kube = yield this.getKubeConfig(context);
860
+ let k8sClient = yield this.getK8sClient(context);
861
+ (0, log_update_wrapper_1.logUpdate)(`Watching ${this._styler.hilite(context.asset)} in ${context.environment}/${context.cabinet}... (ctrl-c to quit)`);
862
+ log_update_wrapper_1.logUpdate.done();
863
+ (0, log_update_wrapper_1.logUpdate)(`...empty...`);
864
+ // This approach DOES return what's different in the cached list,
865
+ // but doesnt stream updates from the cluster - it only runs a first request,
866
+ // meaning you need to call this repeatedly - this looks not fully-baked...?
867
+ let informer = (0, client_node_1.makeInformer)(kube, `/api/v1/namespaces/${namespace}/pods`, () => k8sClient.listNamespacedPod(namespace, undefined, undefined, undefined, undefined, selector)
868
+ // () => k8sClient.listNamespacedPod(namespace, undefined, undefined, undefined, undefined, selector, undefined, undefined, undefined, undefined, true),
869
+ // selector
870
+ );
871
+ // informer.on('add', (obj: k8s.V1Pod) => { console.log(`Added: ${obj.metadata!.name}`); });
872
+ // informer.on('update', (obj: k8s.V1Pod) => { console.log(`Updated: ${obj.metadata!.name}`); });
873
+ informer.on('change', (obj) => {
874
+ // console.log(`Changed: ${obj.metadata!.name}`);
875
+ let canvas = { table: "", curver: "" };
876
+ let replicas = informer.list(namespace);
877
+ if (replicas.length > 0) {
878
+ for (let pod of replicas) {
879
+ this.renderReplicaStatusRow(pod, canvas);
880
+ }
881
+ }
882
+ else {
883
+ canvas.table = "(no instances found)";
884
+ }
885
+ log_update_wrapper_1.logUpdate.clear();
886
+ (0, log_update_wrapper_1.logUpdate)(canvas.table);
887
+ });
888
+ // informer.on('delete', (obj: k8s.V1Pod) => { console.log(`Deleted: ${obj.metadata!.name}`); });
889
+ informer.on('error', (err) => {
890
+ if (err.statusCode === 401) {
891
+ // TODO: reach out to the relay to refresh the user token in the kubeconfig.
892
+ log_update_wrapper_1.logUpdate.clear();
893
+ (0, log_update_wrapper_1.logUpdate)(`Authentication error; please refresh your credentials.`);
894
+ }
895
+ else {
896
+ log_update_wrapper_1.logUpdate.clear();
897
+ console.error(err);
898
+ }
899
+ // Restart informer after 5sec
900
+ setTimeout(() => {
901
+ informer.start();
902
+ }, 5000);
903
+ });
904
+ informer.start();
905
+ // let watch: boolean = true;
906
+ // listNamespacedPod() with "watch" just floats out into space with no return
907
+ // let podResult = await k8sClient.listNamespacedPod(namespace, undefined, undefined, undefined, undefined,
908
+ // `${CodiacLabels.LABEL_ASSET_NAME}=${context.asset}`, undefined, undefined, undefined, undefined, watch);
909
+ // while (podResult) {
910
+ // logUpdate(`${podResult.body.items.length} pods returned`); // Thanks, nice and ambiguous; lets give them something actionable here instead.
911
+ // }
912
+ });
913
+ }
914
+ watchReplicaSet(context, namespace, replicaSets) {
915
+ var _a, _b, _c, _d, _e, _f, _g;
916
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
917
+ let k8sConfig = (yield this.getKubeConfig(context));
918
+ let k8sClient = k8sConfig.makeApiClient(k8s.AppsV1Api);
919
+ // let selector = `${CodiacLabels.LABEL_ASSET_NAME}=${context.asset}`;
920
+ let selector = `app=${context.asset}`;
921
+ let watch = true;
922
+ do {
923
+ let content = "";
924
+ log_update_wrapper_1.logUpdate.clear();
925
+ try {
926
+ let podResult = yield k8sClient.listNamespacedReplicaSet(namespace, undefined, undefined, undefined, undefined, selector);
927
+ let output = podResult.body.items;
928
+ for (let item of output) {
929
+ if (item.status) {
930
+ content = content.concat(`${(_b = (_a = item.metadata) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : "unnamed"} ${(_c = item.status.availableReplicas) !== null && _c !== void 0 ? _c : 0}/${item.status.replicas}`, "\n");
931
+ }
932
+ else {
933
+ content = content.concat(`no status for ${(_e = (_d = item.metadata) === null || _d === void 0 ? void 0 : _d.name) !== null && _e !== void 0 ? _e : "unnamed"}`, "\n");
934
+ }
935
+ }
936
+ }
937
+ catch (err) {
938
+ content = content.concat(`Error ${(_f = err.name) !== null && _f !== void 0 ? _f : ""} ${(_g = err.message) !== null && _g !== void 0 ? _g : ""}`, "\n");
939
+ }
940
+ (0, log_update_wrapper_1.logUpdate)(content);
941
+ yield this.unblockAndSleep(0.5);
942
+ } while (watch);
943
+ });
944
+ }
945
+ watchStatus(context, namespace, replicas) {
946
+ var _a, _b, _c, _d, _e, _f, _g;
947
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
948
+ let watch = true;
949
+ let k8sClient = yield this.getK8sClient(context);
950
+ let pods = replicas;
951
+ let spinChars = ["|", "/", "-", "\\"];
952
+ let spinIndex = -1;
953
+ (0, log_update_wrapper_1.logUpdate)(`Status for ${context.asset} in ${context.environment}/${context.cabinet}... (ctrl-c to quit)`);
954
+ log_update_wrapper_1.logUpdate.done();
955
+ do {
956
+ // await this.showStatus(context, namespace, pods, k8sClient);
957
+ spinIndex++;
958
+ if (spinIndex >= spinChars.length)
959
+ spinIndex = 0;
960
+ let spinner = spinChars[spinIndex];
961
+ // TODO: trap failures here and if status currently exists, render the error and leave the existing
962
+ let table = "";
963
+ try {
964
+ pods = pods !== null && pods !== void 0 ? pods : yield this.fetchReplicas(context, namespace, k8sClient);
965
+ if (pods && pods.length > 0) {
966
+ log_update_wrapper_1.logUpdate.clear();
967
+ let curver = ""; // current asset version being listed
968
+ // let deployed = res.successes[0].currentVersion.deployed;
969
+ for (let replica of pods) {
970
+ let replicaName = (_b = (_a = replica.metadata) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : "unnamed";
971
+ let podHash = ((_c = replica.metadata) === null || _c === void 0 ? void 0 : _c.labels) ? (_d = replica.metadata) === null || _d === void 0 ? void 0 : _d.labels["pod-template-hash"] : undefined;
972
+ let replicaId = podHash ? replicaName.slice(replicaName.indexOf(podHash)) : replicaName;
973
+ let assetVersion = ((_e = replica.metadata) === null || _e === void 0 ? void 0 : _e.labels) ? (_f = replica.metadata) === null || _f === void 0 ? void 0 : _f.labels[codiac_constants_1.CodiacLabels.LABEL_ASSET_VERSION] : undefined;
974
+ // Version separator
975
+ if (assetVersion !== undefined && assetVersion !== curver) {
976
+ curver = assetVersion;
977
+ table = table.concat(`${spinner} ${assetVersion}`, "\n");
978
+ }
979
+ // Each replica
980
+ if (replica.status) {
981
+ let state = this.renderPodState(replica);
982
+ let condition = this.renderCondition(replica);
983
+ let restarts = (replica.status.containerStatuses && replica.status.containerStatuses.length > 0) ? replica.status.containerStatuses[0].restartCount : 0;
984
+ table = table.concat(` ${replicaId}) ${state} ${condition} started (${replica.status.startTime}) ${restarts} restarts\n`); // , deployed (${deployed})`)
985
+ }
986
+ }
987
+ }
988
+ else {
989
+ table = table.concat(`No running instances found.`);
990
+ }
991
+ }
992
+ catch (err) {
993
+ table = table.concat(`Error refreshing... ${(_g = err.message) !== null && _g !== void 0 ? _g : err.name}\n`);
994
+ }
995
+ (0, log_update_wrapper_1.logUpdate)(table);
996
+ pods = undefined;
997
+ yield this.unblockAndSleep(0.5);
998
+ } while (watch);
999
+ });
1000
+ }
1001
+ /** Mutates canvas */
1002
+ renderReplicaStatusRow(replica, canvas) {
1003
+ var _a, _b, _c, _d, _e, _f;
1004
+ let replicaName = (_b = (_a = replica.metadata) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : "unnamed";
1005
+ let podHash = ((_c = replica.metadata) === null || _c === void 0 ? void 0 : _c.labels) ? (_d = replica.metadata) === null || _d === void 0 ? void 0 : _d.labels["pod-template-hash"] : undefined;
1006
+ let replicaId = podHash ? replicaName.slice(replicaName.indexOf(podHash)) : replicaName;
1007
+ let assetVersion = ((_e = replica.metadata) === null || _e === void 0 ? void 0 : _e.labels) ? (_f = replica.metadata) === null || _f === void 0 ? void 0 : _f.labels[codiac_constants_1.CodiacLabels.LABEL_ASSET_VERSION] : undefined;
1008
+ // Version separator
1009
+ if (assetVersion !== undefined && assetVersion !== canvas.curver) {
1010
+ canvas.curver = assetVersion;
1011
+ canvas.table = canvas.table.concat(`${assetVersion}`, "\n");
1012
+ }
1013
+ // Each replica
1014
+ if (replica.status) {
1015
+ let state = this.renderPodState(replica);
1016
+ let condition = this.renderCondition(replica);
1017
+ let restarts = (replica.status.containerStatuses && replica.status.containerStatuses.length > 0) ? replica.status.containerStatuses[0].restartCount : 0;
1018
+ canvas.table = canvas.table.concat(` ${replicaId}) ${state} ${condition} started (${replica.status.startTime}) ${restarts} restarts\n`); // , deployed (${deployed})`)
1019
+ }
1020
+ }
1021
+ renderCondition(replica) {
1022
+ var _a;
1023
+ let cond = "";
1024
+ if (replica.status) {
1025
+ if (((_a = replica.status) === null || _a === void 0 ? void 0 : _a.conditions) && replica.status.conditions.length > 0) {
1026
+ let latestCond = _.orderBy(replica.status.conditions, x => x.lastTransitionTime, "desc")[0];
1027
+ cond = latestCond.type;
1028
+ if (latestCond.reason) {
1029
+ cond = cond.concat(" (", latestCond.reason, ")");
1030
+ }
1031
+ if (latestCond.message) {
1032
+ // TODO: Revisit; message is prob too much info to jam into a cli output line.
1033
+ cond = cond.concat(" ('", latestCond.message, "')");
1034
+ }
1035
+ cond = cond.concat(` since (${latestCond.lastTransitionTime})`);
1036
+ }
1037
+ }
1038
+ return cond;
1039
+ }
1040
+ renderPodState(replica) {
1041
+ var _a, _b, _c, _d;
1042
+ let state = "[no status found]";
1043
+ if ((_a = replica.metadata) === null || _a === void 0 ? void 0 : _a.deletionTimestamp) {
1044
+ state = "Terminating";
1045
+ }
1046
+ else if (replica.status) {
1047
+ state = "";
1048
+ // Pod phase
1049
+ if (replica.status.phase) {
1050
+ state = replica.status.phase;
1051
+ }
1052
+ if (replica.status.reason) {
1053
+ state = state.concat(" (", replica.status.reason, ")");
1054
+ }
1055
+ if (replica.status.message) {
1056
+ state = state.concat(" ('", replica.status.message, "')");
1057
+ }
1058
+ // container state
1059
+ if (replica.status.containerStatuses && replica.status.containerStatuses.length > 0) {
1060
+ let ctrStatus = replica.status.containerStatuses[0];
1061
+ // state = state.concat(" ", JSON.stringify(ctrStatus.state), "\n");
1062
+ if ((_b = ctrStatus.state) === null || _b === void 0 ? void 0 : _b.waiting) {
1063
+ if (ctrStatus.state.waiting.reason) {
1064
+ state = state.concat(" (", ctrStatus.state.waiting.reason, ")");
1065
+ }
1066
+ if (ctrStatus.state.waiting.message) {
1067
+ state = state.concat(" ('", ctrStatus.state.waiting.message, "')");
1068
+ }
1069
+ }
1070
+ else if ((_c = ctrStatus.state) === null || _c === void 0 ? void 0 : _c.terminated) {
1071
+ if (ctrStatus.state.terminated.reason) {
1072
+ state = state.concat(" (", ctrStatus.state.terminated.reason, ")");
1073
+ }
1074
+ if (ctrStatus.state.terminated.message) {
1075
+ state = state.concat(" (", ctrStatus.state.terminated.message, ")");
1076
+ }
1077
+ }
1078
+ else if ((_d = ctrStatus.state) === null || _d === void 0 ? void 0 : _d.running) {
1079
+ }
1080
+ }
1081
+ }
1082
+ return state;
1083
+ }
1084
+ unblockAndSleep(durationInSecs) {
1085
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
1086
+ return new Promise(resolve => {
1087
+ setTimeout(() => resolve(), durationInSecs * 1000);
1088
+ });
1089
+ });
1090
+ }
1091
+ /** Fetches pods if not already provided. */
1092
+ showStatus(context, namespace, replicas, k8sApi) {
1093
+ var _a, _b, _c;
1094
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
1095
+ try {
1096
+ let k8sClient = k8sApi !== null && k8sApi !== void 0 ? k8sApi : yield this.getK8sClient(context);
1097
+ let pods = replicas !== null && replicas !== void 0 ? replicas : yield this.fetchReplicas(context, namespace, k8sClient);
1098
+ if (pods && pods.length > 0) {
1099
+ // let deployed = res.successes[0].currentVersion.deployed;
1100
+ console.log(`Status for ${context.asset} ${(pods.length > 0) ? " instances" : ""} running in ${context.environment}/${context.cabinet}`);
1101
+ for (let replica of pods) {
1102
+ let replicaName = (_b = (_a = replica.metadata) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : "unnamed";
1103
+ if (((_c = replica.status) === null || _c === void 0 ? void 0 : _c.conditions) && replica.status.conditions.length > 0) {
1104
+ let latestCond = _.orderBy(replica.status.conditions, x => x.lastTransitionTime, "desc")[0];
1105
+ console.log(`${replicaName} ${latestCond.type} since (${latestCond.lastTransitionTime}) started (${replica.status.startTime}) ${replica.status.containerStatuses[0].restartCount} restarts`); // , deployed (${deployed})`)
1106
+ }
1107
+ else {
1108
+ console.log("Condition not available"); // Thanks, nice and ambiguous; lets give them something actionable here instead.
1109
+ }
1110
+ }
1111
+ }
1112
+ else {
1113
+ this._ui.userMessage(`No running instances found.`);
1114
+ }
1115
+ return;
1116
+ }
1117
+ catch (err) {
1118
+ throw err;
1119
+ }
1120
+ });
1121
+ }
1122
+ showLogs(context, logOptions) {
1123
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
1124
+ try {
1125
+ // SHOW LOGS
1126
+ let req = Object.assign(Object.assign({}, context), { logOptions: logOptions });
1127
+ let cnxnResult = yield this.genRelayClient.Call.getLogStreamSpecs(req);
1128
+ if (cnxnResult.error)
1129
+ throw cnxnResult.error;
1130
+ if (cnxnResult.output == undefined)
1131
+ throw new Error(`Failed without error getting log stream connection specs.`);
1132
+ const logStream = new stream.PassThrough();
1133
+ logStream.on("data", (chunk) => {
1134
+ // use write rather than console.log to prevent double line feed
1135
+ process.stdout.write(chunk);
1136
+ });
1137
+ let streamer = new LogStreamer(this.logger);
1138
+ let requestOptions = cnxnResult.output;
1139
+ // Deserialize from strings into Buffers after their trip over the wire
1140
+ if (cnxnResult.output.ca)
1141
+ requestOptions.ca = Buffer.from(cnxnResult.output.ca);
1142
+ else
1143
+ this.logger.warn(`Cluster connection specs retrieved for log streaming did not have a ca.`);
1144
+ if (cnxnResult.output.cert)
1145
+ requestOptions.cert = Buffer.from(cnxnResult.output.cert);
1146
+ else
1147
+ this.logger.warn(`Cluster connection specs retrieved for log streaming did not have a cert.`);
1148
+ if (cnxnResult.output.key)
1149
+ requestOptions.key = Buffer.from(cnxnResult.output.key);
1150
+ else
1151
+ this.logger.warn(`Cluster connection specs retrieved for log streaming did not have a key.`);
1152
+ streamer.go(requestOptions, logStream); // shouldn't we be awaiting this?
1153
+ }
1154
+ catch (err) {
1155
+ throw err;
1156
+ }
1157
+ });
1158
+ }
1159
+ /**
1160
+ * @param context Fully qualified path, in terms of Codiac entities, to identify a single replica of an asset in a cabinet.
1161
+ * @param execArgs Parameters identifying the ultimate command to run and the console behavior.
1162
+ * @param K8sEntities The identifying names of the relevant kubernetes objects, corresponding to the asset replica context, that fully qualify the desired container. */
1163
+ runExec(context, execArgs, k8sEntities) {
1164
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
1165
+ try {
1166
+ let k8sCnxnResult = yield this.genRelayClient.Call.getClusterConnectionSpecs(context);
1167
+ if (k8sCnxnResult.error)
1168
+ throw k8sCnxnResult.error;
1169
+ if (k8sCnxnResult.output === undefined || _.isEmpty(k8sCnxnResult.output))
1170
+ throw new Error(`Retrieval of cluster connection spec failed without error.`);
1171
+ let spec = k8sCnxnResult.output;
1172
+ let kc = new k8s.KubeConfig();
1173
+ kc.loadFromString(spec);
1174
+ // ======================================================================================================
1175
+ // We have to resume here because the console keystrokes are not getting through,
1176
+ // even though a POC running just the exec (without all the other ui code we're running)
1177
+ // doesnt have the input problem.
1178
+ //
1179
+ // TODO: Find out why we need this stdin resumed.
1180
+ // Most likely because it was piped into an spawned child process that has since ended.
1181
+ //
1182
+ process.stdin.resume(); // Somehwere we probably lost track of a stdin
1183
+ //
1184
+ //
1185
+ // ======================================================================================================
1186
+ const exec = new k8s.Exec(kc);
1187
+ const ws = yield exec.exec(k8sEntities.namespace, k8sEntities.pod, k8sEntities.container, execArgs.command, process.stdout, process.stderr, process.stdin, execArgs.tty, (status) => {
1188
+ // tslint:disable-next-line:no-console
1189
+ // console.log("Exited with status:");
1190
+ // // tslint:disable-next-line:no-console
1191
+ this.logger.debug(`Executed terminal cmd. Status: ${status.status} ${status.reason}`, JSON.stringify(status, null, 2));
1192
+ });
1193
+ ws.onopen = function open() {
1194
+ process.stdout.write("connected");
1195
+ };
1196
+ ws.onclose = function close(evt) {
1197
+ // process.stdout.write("disconnected");
1198
+ process.exit(evt.code);
1199
+ return;
1200
+ };
1201
+ ws.onmessage = this.routeK8sWebSocketMessage;
1202
+ // function incoming(msg: any) {
1203
+ // let buf = Buffer.from(msg.data);
1204
+ // // The k8s client prefixes the buffer with the stream number at position 0...
1205
+ // let streamNumBuf = buf.readInt8();
1206
+ // let payload = buf.toString('utf8', 1); // <-- start at pos 1 to skip the stream number.
1207
+ // switch (streamNumBuf) {
1208
+ // case WebSocketHandler.StdoutStream /* 1 */:
1209
+ // process.stdout.write(payload);
1210
+ // break;
1211
+ // case WebSocketHandler.StderrStream /* 2 */:
1212
+ // process.stderr.write(`ERROR: ` + payload);
1213
+ // break;
1214
+ // case WebSocketHandler.StatusStream /* 3 */:
1215
+ // let k8sStatus = JSON.parse(payload) as V1Status;
1216
+ // process.stdout.write(`STATUS: ${k8sStatus.status}: ${k8sStatus.message}`);
1217
+ // break;
1218
+ // default:
1219
+ // process.stderr.write(`feedback on ${streamNumBuf}`)
1220
+ // }
1221
+ // return;
1222
+ // };
1223
+ // This never gets hit. Instead, onmessage gets hit with a message designated for stderr stream.
1224
+ ws.onerror = function error(err) {
1225
+ process.stdout.write(`Error: ${err.message}`);
1226
+ ws.close();
1227
+ };
1228
+ // Gotta do a process.exit(code) to give the control back.
1229
+ // THese dont fire
1230
+ // ws.once('exit', (code) => process.exit(code));
1231
+ // ws.once('end', (code) => process.stdout.write("end event fired"));
1232
+ return;
1233
+ }
1234
+ catch (err) {
1235
+ throw err;
1236
+ }
1237
+ });
1238
+ }
1239
+ /** Parses the stream number from the incoming message,
1240
+ * and writes the data to the designated target stream.
1241
+ *
1242
+ * (The k8s client prefixes the buffer with the stream number at position 0)
1243
+ */
1244
+ routeK8sWebSocketMessage(msg) {
1245
+ var _a;
1246
+ let buf = Buffer.from(msg.data);
1247
+ // The k8s client prefixes the buffer with the stream number at position 0...
1248
+ let streamNumBuf = buf.readInt8();
1249
+ let payload = buf.toString('utf8', 1); // <-- start at pos 1 to skip the stream number.
1250
+ switch (streamNumBuf) {
1251
+ case web_socket_handler_1.WebSocketHandler.StdoutStream /* 1 */:
1252
+ process.stdout.write(payload);
1253
+ break;
1254
+ case web_socket_handler_1.WebSocketHandler.StderrStream /* 2 */:
1255
+ process.stderr.write(`ERROR: ` + payload);
1256
+ break;
1257
+ case web_socket_handler_1.WebSocketHandler.StatusStream /* 3 */:
1258
+ let k8sStatus = JSON.parse(payload);
1259
+ if (((_a = k8sStatus.status) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === "failure") {
1260
+ if (k8sStatus.reason !== "NonZeroExitCode") {
1261
+ process.stdout.write(`STATUS: ${k8sStatus.status}: ${k8sStatus.message}`);
1262
+ }
1263
+ }
1264
+ break;
1265
+ default:
1266
+ process.stderr.write(`feedback on ${streamNumBuf}`);
1267
+ }
1268
+ return;
1269
+ }
1270
+ }
1271
+ exports.default = AssetView;
1272
+ AssetView.description = 'Renders a selected type of content for an asset';
1273
+ AssetView.aliases = ['asset:monitor', "asset:mon", "asset:get"];
1274
+ AssetView.flags = {
1275
+ help: core_1.Flags.help({ char: 'h' }),
1276
+ enterprise: core_1.Flags.string({ char: 'e', description: 'The name of the enterprise containing the asset being viewed.' }),
1277
+ asset: core_1.Flags.string({ char: 'a', description: 'The name of the asset to view.' }),
1278
+ environment: core_1.Flags.string({ char: 'n', description: 'The name of the environment in which the cabinet resides.' }),
1279
+ cabinet: core_1.Flags.string({ char: 'c', description: 'The name of the cabinet from which the content is to be drawn.' }),
1280
+ replica: core_1.Flags.string({ char: 'r', description: 'The name of one of the asset instances currently running in the cabinet.' }),
1281
+ type: core_1.Flags.string({ char: 't', options: [...Object.keys(AssetContentType)], description: 'The type of content to retrieve.' }),
1282
+ terminal: core_1.Flags.string({ options: ["bash", "sh"], description: 'Command used to start the terminal (defaults to "bash")' }),
1283
+ logsFollow: core_1.Flags.boolean({ char: 'f', default: false, description: '(requires type=logs) Follow (aka watch, tail, stream) the output.' }),
1284
+ logsTail: core_1.Flags.integer({ char: 'l', default: 10, description: '(requires type=logs) Lines of recent logs to include in the output. Enter -1 to include the entire log history stored in the container.' }),
1285
+ configFile: core_1.Flags.string({ char: 'F', description: '(requires type=config) The root pathname to the config file to fetch.' }),
1286
+ silent: core_1.Flags.boolean({ exclusive: ["echo", "toscript"], description: 'Non-Interactive mode; executes without any user interaction and fails on any missing or invalid arguments.' }),
1287
+ echo: core_1.Flags.boolean({ exclusive: ["toscript", "silent"], description: 'Echo interaction mode; renders the equivalent non-interactive cli command for future use before final execution.' }),
1288
+ toscript: core_1.Flags.boolean({ exclusive: ["echo", "silent"], description: 'Toscript interaction mode; renders the equivalent non-interactive cli command WITHOUT any execution.' }),
1289
+ takeDefaults: core_1.Flags.boolean({ exclusive: ["silent"], description: "Prevents prompting for confirmation on parameters that were passed in or were set to default values." })
1290
+ // tty: Flags.boolean({ char: 'i', default: false, description: '(requires type=exec) Specifies an interactive console session.' })
1291
+ };
1292
+ AssetView.strict = false; // disables argument validation so we can support variable-length arguments.
1293
+ AssetView.args = {
1294
+ cmd: core_1.Args.string({ description: '(requires type=exec) command and its space-separated arguments to run in the target replica.' })
1295
+ };
1296
+ class ExecArgs {
1297
+ constructor(command, tty = true) {
1298
+ this.command = command;
1299
+ this.tty = tty;
1300
+ }
1301
+ }
1302
+ exports.ExecArgs = ExecArgs;
1303
+ class ConfigFileArgs {
1304
+ constructor(rootPathName) {
1305
+ this.rootPathName = rootPathName;
1306
+ }
1307
+ }
1308
+ exports.ConfigFileArgs = ConfigFileArgs;
1309
+ class TermArgs {
1310
+ /**
1311
+ *
1312
+ * @param terminalStartup The type of terminal to open. This command may change depending on what terminal or command shell types are available in the image.
1313
+ */
1314
+ constructor(terminalStartup) {
1315
+ this.terminalStartup = terminalStartup;
1316
+ }
1317
+ }
1318
+ exports.TermArgs = TermArgs;
1319
+ /** Idnetifies a container, in a pod, in a namespace, in a cluster. */
1320
+ class K8sContainerRef {
1321
+ constructor(namespace, podName,
1322
+ /** This should be optional. When there's only one container in a pod,
1323
+ * we should be able to derive this from the pod spec. */
1324
+ containerName) {
1325
+ this.namespace = namespace;
1326
+ this.podName = podName;
1327
+ this.containerName = containerName;
1328
+ }
1329
+ }
1330
+ exports.K8sContainerRef = K8sContainerRef;
1331
+ class LogStreamer {
1332
+ constructor(logger) {
1333
+ this.logger = logger;
1334
+ }
1335
+ go(requestOptions, stream) {
1336
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
1337
+ return new Promise((resolve, reject) => {
1338
+ const req = request(requestOptions, (error, response, body) => {
1339
+ if (error) {
1340
+ reject(error);
1341
+ }
1342
+ else if (response.statusCode !== 200) {
1343
+ this.logger.detail(`Error connecting to log stream`, body);
1344
+ let details;
1345
+ try {
1346
+ const k8sStatus = client_node_1.ObjectSerializer.deserialize(JSON.parse(body), 'V1Status');
1347
+ details = `${k8sStatus.status}${k8sStatus.reason ? " (" + k8sStatus.reason + ")" : ""} ${k8sStatus.message}`;
1348
+ }
1349
+ catch (_a) {
1350
+ details = "See cli log for details.";
1351
+ }
1352
+ reject(new Error(`Error connecting to log stream. ${details}`));
1353
+ }
1354
+ }).on('response', (response) => {
1355
+ if (response.statusCode === 200) {
1356
+ req.pipe(stream);
1357
+ resolve(req);
1358
+ }
1359
+ });
1360
+ });
1361
+ });
1362
+ }
1363
+ }
1364
+ exports.LogStreamer = LogStreamer;
1365
+ //# sourceMappingURL=view.js.map