@codiac.io/codiac-cli 1.2.211 → 1.2.213

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 +4636 -4651
  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 +3113 -3113
  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 +35 -35
  90. package/dist/codiac-constants.js +40 -40
  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 +1364 -1364
  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 +299 -299
  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 +132 -132
  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 +185 -185
  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/LocalOps.js.map +1 -1
  301. package/dist/ops/azure-container-registry-client/azure-container-registry-client.js +147 -147
  302. package/dist/ops/cli-path-walker.js +54 -54
  303. package/dist/ops/codiac-entities/dependency.d.ts +5 -5
  304. package/dist/ops/codiac-entities/dependency.js +10 -10
  305. package/dist/ops/codiac-entities/index.d.ts +1 -1
  306. package/dist/ops/codiac-entities/index.js +4 -4
  307. package/dist/ops/composite-image-registry-client.js +73 -73
  308. package/dist/ops/data/cli-context-repo.d.ts +61 -61
  309. package/dist/ops/data/cli-context-repo.js +269 -269
  310. package/dist/ops/data/index.d.ts +2 -2
  311. package/dist/ops/data/index.js +5 -5
  312. package/dist/ops/data/npm-config-repo.d.ts +13 -13
  313. package/dist/ops/data/npm-config-repo.js +64 -64
  314. package/dist/ops/docker-config.js +130 -130
  315. package/dist/ops/docker-constants.js +21 -21
  316. package/dist/ops/docker-credentials-store.js +237 -237
  317. package/dist/ops/docker-registry-api-client/docker-registry-api-client.js +288 -288
  318. package/dist/ops/docker-registry-api-client/entities/blob-sum.d.ts +7 -7
  319. package/dist/ops/docker-registry-api-client/entities/blob-sum.js +12 -12
  320. package/dist/ops/docker-registry-api-client/entities/docker-access-actions-enum.d.ts +5 -5
  321. package/dist/ops/docker-registry-api-client/entities/docker-access-actions-enum.js +9 -9
  322. package/dist/ops/docker-registry-api-client/entities/docker-auth-token-criteria.d.ts +30 -30
  323. package/dist/ops/docker-registry-api-client/entities/docker-auth-token-criteria.js +35 -35
  324. package/dist/ops/docker-registry-api-client/entities/i-docker-error-response.d.ts +55 -55
  325. package/dist/ops/docker-registry-api-client/entities/i-docker-error-response.js +51 -51
  326. package/dist/ops/docker-registry-api-client/entities/i-docker-list-response.d.ts +7 -7
  327. package/dist/ops/docker-registry-api-client/entities/i-docker-list-response.js +2 -2
  328. package/dist/ops/docker-registry-api-client/entities/image-repository.d.ts +31 -31
  329. package/dist/ops/docker-registry-api-client/entities/image-repository.js +29 -29
  330. package/dist/ops/docker-registry-api-client/entities/image-tag-criteria.d.ts +8 -8
  331. package/dist/ops/docker-registry-api-client/entities/image-tag-criteria.js +13 -13
  332. package/dist/ops/docker-registry-api-client/entities/image-tag-list.d.ts +7 -7
  333. package/dist/ops/docker-registry-api-client/entities/image-tag-list.js +12 -12
  334. package/dist/ops/docker-registry-api-client/entities/manifest-criteria.d.ts +9 -9
  335. package/dist/ops/docker-registry-api-client/entities/manifest-criteria.js +14 -14
  336. package/dist/ops/docker-registry-api-client/entities/manifest.d.ts +15 -15
  337. package/dist/ops/docker-registry-api-client/entities/manifest.js +20 -20
  338. package/dist/ops/docker-registry-api-client/entities/repository-criteria.d.ts +16 -16
  339. package/dist/ops/docker-registry-api-client/entities/repository-criteria.js +23 -23
  340. package/dist/ops/docker-registry-api-client/entities/token-response.d.ts +15 -15
  341. package/dist/ops/docker-registry-api-client/entities/token-response.js +14 -14
  342. package/dist/ops/docker-registry-api-client/entities/token.d.ts +17 -17
  343. package/dist/ops/docker-registry-api-client/entities/token.js +21 -21
  344. package/dist/ops/docker-registry-api-client/entities/version-check-criteria.d.ts +4 -4
  345. package/dist/ops/docker-registry-api-client/entities/version-check-criteria.js +9 -9
  346. package/dist/ops/dx-constants.d.ts +26 -26
  347. package/dist/ops/dx-constants.js +42 -42
  348. package/dist/ops/entities/ImageBuildContext.d.ts +12 -12
  349. package/dist/ops/entities/ImageBuildContext.js +18 -18
  350. package/dist/ops/entities/PipelineContext.d.ts +21 -21
  351. package/dist/ops/entities/PipelineContext.js +22 -22
  352. package/dist/ops/entities/TenantContext.d.ts +10 -10
  353. package/dist/ops/entities/TenantContext.js +15 -15
  354. package/dist/ops/entities/ThaulConfig.js +29 -29
  355. package/dist/ops/entities/azure-service-principal.d.ts +23 -23
  356. package/dist/ops/entities/azure-service-principal.js +23 -23
  357. package/dist/ops/entities/better-logger.js +1 -1
  358. package/dist/ops/entities/branch.d.ts +13 -13
  359. package/dist/ops/entities/branch.js +15 -15
  360. package/dist/ops/entities/cli-config.d.ts +48 -48
  361. package/dist/ops/entities/cli-config.js +60 -60
  362. package/dist/ops/entities/docker-image.d.ts +60 -60
  363. package/dist/ops/entities/docker-image.js +2 -2
  364. package/dist/ops/entities/helm-spec.d.ts +15 -15
  365. package/dist/ops/entities/helm-spec.js +22 -22
  366. package/dist/ops/entities/index.d.ts +4 -4
  367. package/dist/ops/entities/index.js +11 -11
  368. package/dist/ops/entities/operation-meta.d.ts +8 -8
  369. package/dist/ops/entities/operation-meta.js +18 -18
  370. package/dist/ops/entities/scaffolding.d.ts +19 -19
  371. package/dist/ops/entities/scaffolding.js +20 -20
  372. package/dist/ops/extensions/azart-identity-adapter.d.ts +19 -19
  373. package/dist/ops/extensions/azart-identity-adapter.js +96 -96
  374. package/dist/ops/extensions/npm-identity-adapter-base.d.ts +13 -13
  375. package/dist/ops/extensions/npm-identity-adapter-base.js +2 -2
  376. package/dist/ops/extensions/npmjs-identity-adapter.d.ts +13 -13
  377. package/dist/ops/extensions/npmjs-identity-adapter.js +63 -63
  378. package/dist/ops/git-ops.d.ts +8 -8
  379. package/dist/ops/git-ops.js +13 -13
  380. package/dist/ops/i-client-for-image-registry.js +16 -16
  381. package/dist/ops/i-identity-handler.d.ts +33 -33
  382. package/dist/ops/i-identity-handler.js +164 -164
  383. package/dist/ops/i-output-styler.js +16 -16
  384. package/dist/ops/index.d.ts +12 -12
  385. package/dist/ops/index.js +14 -14
  386. package/dist/ops/json-utils.js +58 -58
  387. package/dist/ops/no-style-output-styler.js +29 -29
  388. package/dist/ops/oauth2-client.ts/oauth2-client.d.ts +23 -23
  389. package/dist/ops/oauth2-client.ts/oauth2-client.js +63 -63
  390. package/dist/ops/project-initializer.d.ts +36 -36
  391. package/dist/ops/project-initializer.js +218 -218
  392. package/dist/ops/scaffolding/base-scaffolding.d.ts +7 -7
  393. package/dist/ops/scaffolding/base-scaffolding.js +20 -20
  394. package/dist/ops/scaffolding/codiac-api-scaffolding.d.ts +7 -7
  395. package/dist/ops/scaffolding/codiac-api-scaffolding.js +63 -63
  396. package/dist/ops/scaffolding/typescript-scaffolding.d.ts +15 -15
  397. package/dist/ops/scaffolding/typescript-scaffolding.js +162 -162
  398. package/dist/ops/test/mock-ui.d.ts +26 -26
  399. package/dist/ops/test/mock-ui.js +87 -87
  400. package/dist/ops/test/test-extensions.d.ts +13 -13
  401. package/dist/ops/test/test-extensions.js +70 -70
  402. package/dist/ops/test/when-a-recursive-file-search-is-run.spec.d.ts +2 -2
  403. package/dist/ops/test/when-a-recursive-file-search-is-run.spec.js +54 -54
  404. package/dist/ops/test/when-git-branchline-is-attempted.spec.d.ts +2 -2
  405. package/dist/ops/test/when-git-branchline-is-attempted.spec.js +37 -37
  406. package/dist/ops/test/when-versions-are-parsed.spec.d.ts +2 -2
  407. package/dist/ops/test/when-versions-are-parsed.spec.js +61 -61
  408. package/dist/ops/throwing-user-input-provider.js +36 -36
  409. package/dist/ops/workspace-versioner.d.ts +122 -122
  410. package/dist/ops/workspace-versioner.js +291 -291
  411. package/dist/prettify.d.ts +7 -7
  412. package/dist/prettify.js +23 -23
  413. package/dist/read-stdin.d.ts +2 -2
  414. package/dist/read-stdin.js +28 -28
  415. package/dist/relay/contracts/contracts.d.ts +207 -207
  416. package/dist/relay/contracts/contracts.js +229 -229
  417. package/dist/relay/extended-relay-client.d.ts +27 -27
  418. package/dist/relay/extended-relay-client.js +27 -27
  419. package/dist/relay/relay-container.d.ts +41 -41
  420. package/dist/relay/relay-container.js +297 -297
  421. package/dist/relay/wsclient/relay-socket-listener.d.ts +68 -68
  422. package/dist/relay/wsclient/relay-socket-listener.js +164 -164
  423. package/dist/relay/wsclient/relay-websocket-client.d.ts +33 -33
  424. package/dist/relay/wsclient/relay-websocket-client.js +178 -178
  425. package/dist/relay/wsclient/rx-websocket-subject.d.ts +25 -25
  426. package/dist/relay/wsclient/rx-websocket-subject.js +133 -133
  427. package/dist/relay/wsclient/socket-contracts.d.ts +22 -22
  428. package/dist/relay/wsclient/socket-contracts.js +2 -2
  429. package/dist/standard-probes.d.ts +5 -5
  430. package/dist/standard-probes.js +21 -21
  431. package/dist/uilogic/build-configurator.d.ts +21 -21
  432. package/dist/uilogic/build-configurator.js +110 -110
  433. package/dist/uilogic/cloud-provider-contextualizer.d.ts +46 -46
  434. package/dist/uilogic/cloud-provider-contextualizer.js +193 -193
  435. package/dist/uilogic/cloud-resource-configurator-factory.d.ts +41 -41
  436. package/dist/uilogic/cloud-resource-configurator-factory.js +157 -157
  437. package/dist/uilogic/cloud-resource-configurators/aws-resource-configurator.d.ts +38 -38
  438. package/dist/uilogic/cloud-resource-configurators/aws-resource-configurator.js +347 -347
  439. package/dist/uilogic/cloud-resource-configurators/az-acr-cli-authenticator.js +77 -77
  440. package/dist/uilogic/cloud-resource-configurators/az-interactive-login-configurator.d.ts +42 -42
  441. package/dist/uilogic/cloud-resource-configurators/az-interactive-login-configurator.js +247 -247
  442. package/dist/uilogic/cloud-resource-configurators/azure-resource-configurator.d.ts +110 -110
  443. package/dist/uilogic/cloud-resource-configurators/azure-resource-configurator.js +781 -781
  444. package/dist/uilogic/cloud-resource-configurators/azure-types.js +9 -9
  445. package/dist/uilogic/cloud-resource-configurators/docker-hub-resource-configurator.d.ts +24 -24
  446. package/dist/uilogic/cloud-resource-configurators/docker-hub-resource-configurator.js +105 -105
  447. package/dist/uilogic/cloud-resource-configurators/helm-resource-configurator.d.ts +16 -16
  448. package/dist/uilogic/cloud-resource-configurators/helm-resource-configurator.js +44 -44
  449. package/dist/uilogic/cloud-resource-configurators/unsupported-resource-configurator.d.ts +18 -18
  450. package/dist/uilogic/cloud-resource-configurators/unsupported-resource-configurator.js +61 -61
  451. package/dist/uilogic/enterprise-contextualizer.d.ts +76 -76
  452. package/dist/uilogic/enterprise-contextualizer.js +670 -670
  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/oclif.manifest.json +1 -1
  479. package/package.json +151 -151
  480. package/scaffolding/api/.gitignore-scaffolding +68 -68
  481. package/scaffolding/api/.vscode/launch.json +16 -16
  482. package/scaffolding/api/.vscode/settings.json +7 -7
  483. package/scaffolding/api/.vscode/tasks.json +15 -15
  484. package/scaffolding/api/src/app-config.json +2 -2
  485. package/scaffolding/api/src/index.ts-scaffolding +13 -13
  486. package/scaffolding/api/src/myApiDef.ts-scaffolding +25 -25
  487. package/scaffolding/default/.gitignore-scaffolding +2 -2
  488. package/scaffolding/typescript/.gitignore-scaffolding +69 -69
  489. package/scaffolding/typescript/.vscode/launch.json +16 -16
  490. package/scaffolding/typescript/.vscode/settings.json +7 -7
  491. package/scaffolding/typescript/.vscode/tasks.json +15 -15
  492. package/lib/api-command-base.d.ts +0 -0
  493. package/lib/api-command-base.js +0 -52
  494. package/lib/api-command-base.js.map +0 -1
  495. package/lib/apis/codiac-api/common/api-client-base.d.ts +0 -165
  496. package/lib/apis/codiac-api/common/api-client-base.js +0 -548
  497. package/lib/apis/codiac-api/common/api-client-base.js.map +0 -1
  498. package/lib/apis/codiac-api/common/api-user-creds.d.ts +0 -7
  499. package/lib/apis/codiac-api/common/api-user-creds.js +0 -19
  500. package/lib/apis/codiac-api/common/api-user-creds.js.map +0 -1
  501. package/lib/apis/codiac-api/common/config-loader.d.ts +0 -6
  502. package/lib/apis/codiac-api/common/config-loader.js +0 -19
  503. package/lib/apis/codiac-api/common/config-loader.js.map +0 -1
  504. package/lib/apis/codiac-api/common/endpoint-spec.d.ts +0 -17
  505. package/lib/apis/codiac-api/common/endpoint-spec.js +0 -28
  506. package/lib/apis/codiac-api/common/endpoint-spec.js.map +0 -1
  507. package/lib/apis/codiac-api/common/security/api-auth-methods-legacy.d.ts +0 -87
  508. package/lib/apis/codiac-api/common/security/api-auth-methods-legacy.js +0 -368
  509. package/lib/apis/codiac-api/common/security/api-auth-methods-legacy.js.map +0 -1
  510. package/lib/apis/codiac-api/common/security/auth-constants.d.ts +0 -15
  511. package/lib/apis/codiac-api/common/security/auth-constants.js +0 -22
  512. package/lib/apis/codiac-api/common/security/auth-constants.js.map +0 -1
  513. package/lib/apis/codiac-api/common/security/i-auth-client.d.ts +0 -44
  514. package/lib/apis/codiac-api/common/security/i-auth-client.js +0 -3
  515. package/lib/apis/codiac-api/common/security/i-auth-client.js.map +0 -1
  516. package/lib/apis/codiac-api/common/security/token-holder.d.ts +0 -13
  517. package/lib/apis/codiac-api/common/security/token-holder.js +0 -18
  518. package/lib/apis/codiac-api/common/security/token-holder.js.map +0 -1
  519. package/lib/apis/codiac-api/common/utils.d.ts +0 -23
  520. package/lib/apis/codiac-api/common/utils.js +0 -83
  521. package/lib/apis/codiac-api/common/utils.js.map +0 -1
  522. package/lib/apis/codiac-api/contracts/index.d.ts +0 -1
  523. package/lib/apis/codiac-api/contracts/index.js +0 -5
  524. package/lib/apis/codiac-api/contracts/index.js.map +0 -1
  525. package/lib/apis/codiac-api/gen/client-config.d.ts +0 -10
  526. package/lib/apis/codiac-api/gen/client-config.js +0 -29
  527. package/lib/apis/codiac-api/gen/client-config.js.map +0 -1
  528. package/lib/apis/codiac-api/gen/client.d.ts +0 -1663
  529. package/lib/apis/codiac-api/gen/client.js +0 -15630
  530. package/lib/apis/codiac-api/gen/client.js.map +0 -1
  531. package/lib/apis/codiac-api/gen/contracts.d.ts +0 -2722
  532. package/lib/apis/codiac-api/gen/contracts.js +0 -403
  533. package/lib/apis/codiac-api/gen/contracts.js.map +0 -1
  534. package/lib/apis/codiac-api/index.d.ts +0 -3
  535. package/lib/apis/codiac-api/index.js +0 -9
  536. package/lib/apis/codiac-api/index.js.map +0 -1
  537. package/lib/apis/codiac-relay/common/api-client-base.d.ts +0 -165
  538. package/lib/apis/codiac-relay/common/api-client-base.js +0 -548
  539. package/lib/apis/codiac-relay/common/api-client-base.js.map +0 -1
  540. package/lib/apis/codiac-relay/common/api-user-creds.d.ts +0 -7
  541. package/lib/apis/codiac-relay/common/api-user-creds.js +0 -19
  542. package/lib/apis/codiac-relay/common/api-user-creds.js.map +0 -1
  543. package/lib/apis/codiac-relay/common/config-loader.d.ts +0 -6
  544. package/lib/apis/codiac-relay/common/config-loader.js +0 -19
  545. package/lib/apis/codiac-relay/common/config-loader.js.map +0 -1
  546. package/lib/apis/codiac-relay/common/endpoint-spec.d.ts +0 -17
  547. package/lib/apis/codiac-relay/common/endpoint-spec.js +0 -28
  548. package/lib/apis/codiac-relay/common/endpoint-spec.js.map +0 -1
  549. package/lib/apis/codiac-relay/common/security/api-auth-methods-legacy.d.ts +0 -87
  550. package/lib/apis/codiac-relay/common/security/api-auth-methods-legacy.js +0 -368
  551. package/lib/apis/codiac-relay/common/security/api-auth-methods-legacy.js.map +0 -1
  552. package/lib/apis/codiac-relay/common/security/auth-constants.d.ts +0 -15
  553. package/lib/apis/codiac-relay/common/security/auth-constants.js +0 -22
  554. package/lib/apis/codiac-relay/common/security/auth-constants.js.map +0 -1
  555. package/lib/apis/codiac-relay/common/security/i-auth-client.d.ts +0 -44
  556. package/lib/apis/codiac-relay/common/security/i-auth-client.js +0 -3
  557. package/lib/apis/codiac-relay/common/security/i-auth-client.js.map +0 -1
  558. package/lib/apis/codiac-relay/common/security/token-holder.d.ts +0 -13
  559. package/lib/apis/codiac-relay/common/security/token-holder.js +0 -18
  560. package/lib/apis/codiac-relay/common/security/token-holder.js.map +0 -1
  561. package/lib/apis/codiac-relay/common/utils.d.ts +0 -23
  562. package/lib/apis/codiac-relay/common/utils.js +0 -83
  563. package/lib/apis/codiac-relay/common/utils.js.map +0 -1
  564. package/lib/apis/codiac-relay/contracts/index.d.ts +0 -1
  565. package/lib/apis/codiac-relay/contracts/index.js +0 -5
  566. package/lib/apis/codiac-relay/contracts/index.js.map +0 -1
  567. package/lib/apis/codiac-relay/gen/client-config.d.ts +0 -10
  568. package/lib/apis/codiac-relay/gen/client-config.js +0 -29
  569. package/lib/apis/codiac-relay/gen/client-config.js.map +0 -1
  570. package/lib/apis/codiac-relay/gen/client.d.ts +0 -244
  571. package/lib/apis/codiac-relay/gen/client.js +0 -1863
  572. package/lib/apis/codiac-relay/gen/client.js.map +0 -1
  573. package/lib/apis/codiac-relay/gen/contracts.d.ts +0 -3111
  574. package/lib/apis/codiac-relay/gen/contracts.js +0 -435
  575. package/lib/apis/codiac-relay/gen/contracts.js.map +0 -1
  576. package/lib/apis/codiac-relay/index.d.ts +0 -3
  577. package/lib/apis/codiac-relay/index.js +0 -9
  578. package/lib/apis/codiac-relay/index.js.map +0 -1
  579. package/lib/azure-rest-client.d.ts +0 -6
  580. package/lib/azure-rest-client.js +0 -36
  581. package/lib/azure-rest-client.js.map +0 -1
  582. package/lib/cli-common/ImagesList.d.ts +0 -0
  583. package/lib/cli-common/ImagesList.js +0 -67
  584. package/lib/cli-common/ImagesList.js.map +0 -1
  585. package/lib/cli-common/argument-manager.d.ts +0 -28
  586. package/lib/cli-common/argument-manager.js +0 -195
  587. package/lib/cli-common/argument-manager.js.map +0 -1
  588. package/lib/cli-common/built-in-cli-user-input.d.ts +0 -18
  589. package/lib/cli-common/built-in-cli-user-input.js +0 -310
  590. package/lib/cli-common/built-in-cli-user-input.js.map +0 -1
  591. package/lib/cli-common/cli-interfaces.d.ts +0 -0
  592. package/lib/cli-common/cli-interfaces.js +0 -7
  593. package/lib/cli-common/cli-interfaces.js.map +0 -1
  594. package/lib/cli-common/command-base.d.ts +0 -72
  595. package/lib/cli-common/command-base.js +0 -182
  596. package/lib/cli-common/command-base.js.map +0 -1
  597. package/lib/cli-common/entities/index.d.ts +0 -1
  598. package/lib/cli-common/entities/index.js +0 -5
  599. package/lib/cli-common/entities/index.js.map +0 -1
  600. package/lib/cli-common/entities/prompt-choice.d.ts +0 -7
  601. package/lib/cli-common/entities/prompt-choice.js +0 -3
  602. package/lib/cli-common/entities/prompt-choice.js.map +0 -1
  603. package/lib/cli-common/file-selector.d.ts +0 -48
  604. package/lib/cli-common/file-selector.js +0 -187
  605. package/lib/cli-common/file-selector.js.map +0 -1
  606. package/lib/cli-common/i-user-input-provider.d.ts +0 -0
  607. package/lib/cli-common/i-user-input-provider.js +0 -19
  608. package/lib/cli-common/i-user-input-provider.js.map +0 -1
  609. package/lib/cli-common/index.d.ts +0 -4
  610. package/lib/cli-common/index.js +0 -11
  611. package/lib/cli-common/index.js.map +0 -1
  612. package/lib/cli-common/mock-ui.d.ts +0 -27
  613. package/lib/cli-common/mock-ui.js +0 -83
  614. package/lib/cli-common/mock-ui.js.map +0 -1
  615. package/lib/cli-common/prompt-select-fuzzy.d.ts +0 -19
  616. package/lib/cli-common/prompt-select-fuzzy.js +0 -119
  617. package/lib/cli-common/prompt-select-fuzzy.js.map +0 -1
  618. package/lib/cli-common/tenant-contextualizer.d.ts +0 -0
  619. package/lib/cli-common/tenant-contextualizer.js +0 -436
  620. package/lib/cli-common/tenant-contextualizer.js.map +0 -1
  621. package/lib/cli-common/test/tenant-contextualizer.spec.d.ts +0 -0
  622. package/lib/cli-common/test/tenant-contextualizer.spec.js +0 -143
  623. package/lib/cli-common/test/tenant-contextualizer.spec.js.map +0 -1
  624. package/lib/cli-entities/output-format-enum.d.ts +0 -7
  625. package/lib/cli-entities/output-format-enum.js +0 -12
  626. package/lib/cli-entities/output-format-enum.js.map +0 -1
  627. package/lib/cli-entities/prompt-choice.d.ts +0 -0
  628. package/lib/cli-entities/prompt-choice.js +0 -6
  629. package/lib/cli-entities/prompt-choice.js.map +0 -1
  630. package/lib/codiac-constants.d.ts +0 -35
  631. package/lib/codiac-constants.js +0 -41
  632. package/lib/codiac-constants.js.map +0 -1
  633. package/lib/codiac-entities/asset-binding.d.ts +0 -12
  634. package/lib/codiac-entities/asset-binding.js +0 -18
  635. package/lib/codiac-entities/asset-binding.js.map +0 -1
  636. package/lib/codiac-entities/azure-container-registry.d.ts +0 -4
  637. package/lib/codiac-entities/azure-container-registry.js +0 -3
  638. package/lib/codiac-entities/azure-container-registry.js.map +0 -1
  639. package/lib/codiac-entities/azure-service-principal.d.ts +0 -23
  640. package/lib/codiac-entities/azure-service-principal.js +0 -24
  641. package/lib/codiac-entities/azure-service-principal.js.map +0 -1
  642. package/lib/codiac-entities/cloud-account-ref.d.ts +0 -28
  643. package/lib/codiac-entities/cloud-account-ref.js +0 -37
  644. package/lib/codiac-entities/cloud-account-ref.js.map +0 -1
  645. package/lib/codiac-entities/deployment-temp.d.ts +0 -0
  646. package/lib/codiac-entities/deployment-temp.js +0 -133
  647. package/lib/codiac-entities/deployment-temp.js.map +0 -1
  648. package/lib/codiac-entities/i-cloud-account-ref.d.ts +0 -5
  649. package/lib/codiac-entities/i-cloud-account-ref.js +0 -3
  650. package/lib/codiac-entities/i-cloud-account-ref.js.map +0 -1
  651. package/lib/command-base-enterprise.d.ts +0 -121
  652. package/lib/command-base-enterprise.js +0 -524
  653. package/lib/command-base-enterprise.js.map +0 -1
  654. package/lib/command-base-tenantless.d.ts +0 -44
  655. package/lib/command-base-tenantless.js +0 -180
  656. package/lib/command-base-tenantless.js.map +0 -1
  657. package/lib/commands/asset/create.d.ts +0 -42
  658. package/lib/commands/asset/create.js +0 -467
  659. package/lib/commands/asset/create.js.map +0 -1
  660. package/lib/commands/asset/destroy.d.ts +0 -20
  661. package/lib/commands/asset/destroy.js +0 -129
  662. package/lib/commands/asset/destroy.js.map +0 -1
  663. package/lib/commands/asset/helm.d.ts +0 -23
  664. package/lib/commands/asset/helm.js +0 -153
  665. package/lib/commands/asset/helm.js.map +0 -1
  666. package/lib/commands/asset/list.d.ts +0 -28
  667. package/lib/commands/asset/list.js +0 -172
  668. package/lib/commands/asset/list.js.map +0 -1
  669. package/lib/commands/asset/probe/create.d.ts +0 -38
  670. package/lib/commands/asset/probe/create.js +0 -187
  671. package/lib/commands/asset/probe/create.js.map +0 -1
  672. package/lib/commands/asset/recycle.d.ts +0 -23
  673. package/lib/commands/asset/recycle.js +0 -175
  674. package/lib/commands/asset/recycle.js.map +0 -1
  675. package/lib/commands/asset/view.d.ts +0 -188
  676. package/lib/commands/asset/view.js +0 -1365
  677. package/lib/commands/asset/view.js.map +0 -1
  678. package/lib/commands/asset/volume/create.d.ts +0 -23
  679. package/lib/commands/asset/volume/create.js +0 -176
  680. package/lib/commands/asset/volume/create.js.map +0 -1
  681. package/lib/commands/asset/volume/delete.d.ts +0 -19
  682. package/lib/commands/asset/volume/delete.js +0 -112
  683. package/lib/commands/asset/volume/delete.js.map +0 -1
  684. package/lib/commands/asset/volume/list.d.ts +0 -19
  685. package/lib/commands/asset/volume/list.js +0 -70
  686. package/lib/commands/asset/volume/list.js.map +0 -1
  687. package/lib/commands/branch/current.d.ts +0 -10
  688. package/lib/commands/branch/current.js +0 -34
  689. package/lib/commands/branch/current.js.map +0 -1
  690. package/lib/commands/branch/list.d.ts +0 -15
  691. package/lib/commands/branch/list.js +0 -56
  692. package/lib/commands/branch/list.js.map +0 -1
  693. package/lib/commands/branch.d.ts +0 -12
  694. package/lib/commands/branch.js +0 -42
  695. package/lib/commands/branch.js.map +0 -1
  696. package/lib/commands/build.d.ts +0 -38
  697. package/lib/commands/build.js +0 -120
  698. package/lib/commands/build.js.map +0 -1
  699. package/lib/commands/cabinet/create.d.ts +0 -21
  700. package/lib/commands/cabinet/create.js +0 -108
  701. package/lib/commands/cabinet/create.js.map +0 -1
  702. package/lib/commands/cabinet/list.d.ts +0 -23
  703. package/lib/commands/cabinet/list.js +0 -134
  704. package/lib/commands/cabinet/list.js.map +0 -1
  705. package/lib/commands/cabinet/obliterate.d.ts +0 -20
  706. package/lib/commands/cabinet/obliterate.js +0 -83
  707. package/lib/commands/cabinet/obliterate.js.map +0 -1
  708. package/lib/commands/cli.d.ts +0 -10
  709. package/lib/commands/cli.js +0 -100
  710. package/lib/commands/cli.js.map +0 -1
  711. package/lib/commands/commit.d.ts +0 -11
  712. package/lib/commands/commit.js +0 -40
  713. package/lib/commands/commit.js.map +0 -1
  714. package/lib/commands/config/add.d.ts +0 -78
  715. package/lib/commands/config/add.js +0 -560
  716. package/lib/commands/config/add.js.map +0 -1
  717. package/lib/commands/config/delete.d.ts +0 -18
  718. package/lib/commands/config/delete.js +0 -119
  719. package/lib/commands/config/delete.js.map +0 -1
  720. package/lib/commands/config/deploy.d.ts +0 -22
  721. package/lib/commands/config/deploy.js +0 -125
  722. package/lib/commands/config/deploy.js.map +0 -1
  723. package/lib/commands/config/import.d.ts +0 -27
  724. package/lib/commands/config/import.js +0 -196
  725. package/lib/commands/config/import.js.map +0 -1
  726. package/lib/commands/config/view.d.ts +0 -25
  727. package/lib/commands/config/view.js +0 -121
  728. package/lib/commands/config/view.js.map +0 -1
  729. package/lib/commands/csp/login.d.ts +0 -18
  730. package/lib/commands/csp/login.js +0 -123
  731. package/lib/commands/csp/login.js.map +0 -1
  732. package/lib/commands/csp/logout.d.ts +0 -15
  733. package/lib/commands/csp/logout.js +0 -74
  734. package/lib/commands/csp/logout.js.map +0 -1
  735. package/lib/commands/dep/create.d.ts +0 -13
  736. package/lib/commands/dep/create.js +0 -41
  737. package/lib/commands/dep/create.js.map +0 -1
  738. package/lib/commands/dep/install.d.ts +0 -9
  739. package/lib/commands/dep/install.js +0 -30
  740. package/lib/commands/dep/install.js.map +0 -1
  741. package/lib/commands/dep/list.d.ts +0 -55
  742. package/lib/commands/dep/list.js +0 -98
  743. package/lib/commands/dep/list.js.map +0 -1
  744. package/lib/commands/dep/remove.d.ts +0 -12
  745. package/lib/commands/dep/remove.js +0 -62
  746. package/lib/commands/dep/remove.js.map +0 -1
  747. package/lib/commands/dep/source.d.ts +0 -13
  748. package/lib/commands/dep/source.js +0 -83
  749. package/lib/commands/dep/source.js.map +0 -1
  750. package/lib/commands/dep/syncup.d.ts +0 -11
  751. package/lib/commands/dep/syncup.js +0 -54
  752. package/lib/commands/dep/syncup.js.map +0 -1
  753. package/lib/commands/dep/unsource.d.ts +0 -14
  754. package/lib/commands/dep/unsource.js +0 -68
  755. package/lib/commands/dep/unsource.js.map +0 -1
  756. package/lib/commands/dep/upgrade.d.ts +0 -44
  757. package/lib/commands/dep/upgrade.js +0 -244
  758. package/lib/commands/dep/upgrade.js.map +0 -1
  759. package/lib/commands/dep.d.ts +0 -12
  760. package/lib/commands/dep.js +0 -51
  761. package/lib/commands/dep.js.map +0 -1
  762. package/lib/commands/deploy.d.ts +0 -38
  763. package/lib/commands/deploy.js +0 -386
  764. package/lib/commands/deploy.js.map +0 -1
  765. package/lib/commands/enterprise/create.d.ts +0 -20
  766. package/lib/commands/enterprise/create.js +0 -98
  767. package/lib/commands/enterprise/create.js.map +0 -1
  768. package/lib/commands/enterprise/list.d.ts +0 -14
  769. package/lib/commands/enterprise/list.js +0 -84
  770. package/lib/commands/enterprise/list.js.map +0 -1
  771. package/lib/commands/env/add.d.ts +0 -22
  772. package/lib/commands/env/add.js +0 -200
  773. package/lib/commands/env/add.js.map +0 -1
  774. package/lib/commands/environment/create.d.ts +0 -19
  775. package/lib/commands/environment/create.js +0 -89
  776. package/lib/commands/environment/create.js.map +0 -1
  777. package/lib/commands/environment/list.d.ts +0 -25
  778. package/lib/commands/environment/list.js +0 -158
  779. package/lib/commands/environment/list.js.map +0 -1
  780. package/lib/commands/filestore/capture.d.ts +0 -31
  781. package/lib/commands/filestore/capture.js +0 -342
  782. package/lib/commands/filestore/capture.js.map +0 -1
  783. package/lib/commands/host/map.d.ts +0 -33
  784. package/lib/commands/host/map.js +0 -347
  785. package/lib/commands/host/map.js.map +0 -1
  786. package/lib/commands/identity/delete.d.ts +0 -15
  787. package/lib/commands/identity/delete.js +0 -83
  788. package/lib/commands/identity/delete.js.map +0 -1
  789. package/lib/commands/identity/list.d.ts +0 -11
  790. package/lib/commands/identity/list.js +0 -43
  791. package/lib/commands/identity/list.js.map +0 -1
  792. package/lib/commands/identity.d.ts +0 -22
  793. package/lib/commands/identity.js +0 -77
  794. package/lib/commands/identity.js.map +0 -1
  795. package/lib/commands/imageRegistry/capture.d.ts +0 -27
  796. package/lib/commands/imageRegistry/capture.js +0 -160
  797. package/lib/commands/imageRegistry/capture.js.map +0 -1
  798. package/lib/commands/imageRegistry/forget.d.ts +0 -23
  799. package/lib/commands/imageRegistry/forget.js +0 -161
  800. package/lib/commands/imageRegistry/forget.js.map +0 -1
  801. package/lib/commands/imageRegistry/pullSecret/set.d.ts +0 -27
  802. package/lib/commands/imageRegistry/pullSecret/set.js +0 -300
  803. package/lib/commands/imageRegistry/pullSecret/set.js.map +0 -1
  804. package/lib/commands/imageRegistry/pullSecret/unset.d.ts +0 -24
  805. package/lib/commands/imageRegistry/pullSecret/unset.js +0 -243
  806. package/lib/commands/imageRegistry/pullSecret/unset.js.map +0 -1
  807. package/lib/commands/images/add.d.ts +0 -25
  808. package/lib/commands/images/add.js +0 -76
  809. package/lib/commands/images/add.js.map +0 -1
  810. package/lib/commands/images/list.d.ts +0 -14
  811. package/lib/commands/images/list.js +0 -72
  812. package/lib/commands/images/list.js.map +0 -1
  813. package/lib/commands/images/patch.d.ts +0 -14
  814. package/lib/commands/images/patch.js +0 -93
  815. package/lib/commands/images/patch.js.map +0 -1
  816. package/lib/commands/images/remove.d.ts +0 -12
  817. package/lib/commands/images/remove.js +0 -38
  818. package/lib/commands/images/remove.js.map +0 -1
  819. package/lib/commands/images/version/bump.d.ts +0 -18
  820. package/lib/commands/images/version/bump.js +0 -61
  821. package/lib/commands/images/version/bump.js.map +0 -1
  822. package/lib/commands/images/version.d.ts +0 -16
  823. package/lib/commands/images/version.js +0 -65
  824. package/lib/commands/images/version.js.map +0 -1
  825. package/lib/commands/init.d.ts +0 -17
  826. package/lib/commands/init.js +0 -131
  827. package/lib/commands/init.js.map +0 -1
  828. package/lib/commands/kit/create.d.ts +0 -25
  829. package/lib/commands/kit/create.js +0 -142
  830. package/lib/commands/kit/create.js.map +0 -1
  831. package/lib/commands/login.d.ts +0 -22
  832. package/lib/commands/login.js +0 -93
  833. package/lib/commands/login.js.map +0 -1
  834. package/lib/commands/logout.d.ts +0 -8
  835. package/lib/commands/logout.js +0 -37
  836. package/lib/commands/logout.js.map +0 -1
  837. package/lib/commands/merge.d.ts +0 -12
  838. package/lib/commands/merge.js +0 -43
  839. package/lib/commands/merge.js.map +0 -1
  840. package/lib/commands/noc/cluster/create.d.ts +0 -28
  841. package/lib/commands/noc/cluster/create.js +0 -133
  842. package/lib/commands/noc/cluster/create.js.map +0 -1
  843. package/lib/commands/noc/cluster/deinit.d.ts +0 -17
  844. package/lib/commands/noc/cluster/deinit.js +0 -117
  845. package/lib/commands/noc/cluster/deinit.js.map +0 -1
  846. package/lib/commands/noc/cluster/destroy.d.ts +0 -20
  847. package/lib/commands/noc/cluster/destroy.js +0 -138
  848. package/lib/commands/noc/cluster/destroy.js.map +0 -1
  849. package/lib/commands/noc/cluster/forget.d.ts +0 -16
  850. package/lib/commands/noc/cluster/forget.js +0 -137
  851. package/lib/commands/noc/cluster/forget.js.map +0 -1
  852. package/lib/commands/noc/cluster/grant.d.ts +0 -24
  853. package/lib/commands/noc/cluster/grant.js +0 -160
  854. package/lib/commands/noc/cluster/grant.js.map +0 -1
  855. package/lib/commands/noc/cluster/init.d.ts +0 -17
  856. package/lib/commands/noc/cluster/init.js +0 -117
  857. package/lib/commands/noc/cluster/init.js.map +0 -1
  858. package/lib/commands/noc/cluster/list.d.ts +0 -21
  859. package/lib/commands/noc/cluster/list.js +0 -84
  860. package/lib/commands/noc/cluster/list.js.map +0 -1
  861. package/lib/commands/noc/cluster/recreate.d.ts +0 -28
  862. package/lib/commands/noc/cluster/recreate.js +0 -186
  863. package/lib/commands/noc/cluster/recreate.js.map +0 -1
  864. package/lib/commands/pkg/add.d.ts +0 -15
  865. package/lib/commands/pkg/add.js +0 -43
  866. package/lib/commands/pkg/add.js.map +0 -1
  867. package/lib/commands/pkg/list.d.ts +0 -9
  868. package/lib/commands/pkg/list.js +0 -33
  869. package/lib/commands/pkg/list.js.map +0 -1
  870. package/lib/commands/pkg/patch.d.ts +0 -13
  871. package/lib/commands/pkg/patch.js +0 -79
  872. package/lib/commands/pkg/patch.js.map +0 -1
  873. package/lib/commands/pkg/remove.d.ts +0 -12
  874. package/lib/commands/pkg/remove.js +0 -70
  875. package/lib/commands/pkg/remove.js.map +0 -1
  876. package/lib/commands/portal.d.ts +0 -11
  877. package/lib/commands/portal.js +0 -82
  878. package/lib/commands/portal.js.map +0 -1
  879. package/lib/commands/publish.d.ts +0 -21
  880. package/lib/commands/publish.js +0 -52
  881. package/lib/commands/publish.js.map +0 -1
  882. package/lib/commands/pull.d.ts +0 -13
  883. package/lib/commands/pull.js +0 -30
  884. package/lib/commands/pull.js.map +0 -1
  885. package/lib/commands/push.d.ts +0 -13
  886. package/lib/commands/push.js +0 -30
  887. package/lib/commands/push.js.map +0 -1
  888. package/lib/commands/run.d.ts +0 -35
  889. package/lib/commands/run.js +0 -194
  890. package/lib/commands/run.js.map +0 -1
  891. package/lib/commands/secretStore/capture.d.ts +0 -27
  892. package/lib/commands/secretStore/capture.js +0 -175
  893. package/lib/commands/secretStore/capture.js.map +0 -1
  894. package/lib/commands/secretStore/forget.d.ts +0 -20
  895. package/lib/commands/secretStore/forget.js +0 -147
  896. package/lib/commands/secretStore/forget.js.map +0 -1
  897. package/lib/commands/stage.d.ts +0 -13
  898. package/lib/commands/stage.js +0 -65
  899. package/lib/commands/stage.js.map +0 -1
  900. package/lib/commands/stash.d.ts +0 -13
  901. package/lib/commands/stash.js +0 -31
  902. package/lib/commands/stash.js.map +0 -1
  903. package/lib/commands/status.d.ts +0 -12
  904. package/lib/commands/status.js +0 -49
  905. package/lib/commands/status.js.map +0 -1
  906. package/lib/commands/stop.d.ts +0 -10
  907. package/lib/commands/stop.js +0 -52
  908. package/lib/commands/stop.js.map +0 -1
  909. package/lib/commands/switch.d.ts +0 -11
  910. package/lib/commands/switch.js +0 -42
  911. package/lib/commands/switch.js.map +0 -1
  912. package/lib/commands/sync.d.ts +0 -14
  913. package/lib/commands/sync.js +0 -21
  914. package/lib/commands/sync.js.map +0 -1
  915. package/lib/commands/tenant/create.d.ts +0 -27
  916. package/lib/commands/tenant/create.js +0 -120
  917. package/lib/commands/tenant/create.js.map +0 -1
  918. package/lib/commands/tenant/switch.d.ts +0 -24
  919. package/lib/commands/tenant/switch.js +0 -109
  920. package/lib/commands/tenant/switch.js.map +0 -1
  921. package/lib/commands/unstage.d.ts +0 -12
  922. package/lib/commands/unstage.js +0 -58
  923. package/lib/commands/unstage.js.map +0 -1
  924. package/lib/commands/view/dashboard.d.ts +0 -17
  925. package/lib/commands/view/dashboard.js +0 -88
  926. package/lib/commands/view/dashboard.js.map +0 -1
  927. package/lib/commands/view/pods.d.ts +0 -14
  928. package/lib/commands/view/pods.js +0 -88
  929. package/lib/commands/view/pods.js.map +0 -1
  930. package/lib/commands/whereami.d.ts +0 -15
  931. package/lib/commands/whereami.js +0 -123
  932. package/lib/commands/whereami.js.map +0 -1
  933. package/lib/commands/whoami.d.ts +0 -8
  934. package/lib/commands/whoami.js +0 -40
  935. package/lib/commands/whoami.js.map +0 -1
  936. package/lib/deployment.d.ts +0 -2
  937. package/lib/deployment.js +0 -7
  938. package/lib/deployment.js.map +0 -1
  939. package/lib/errors/NoMembershipError.d.ts +0 -8
  940. package/lib/errors/NoMembershipError.js +0 -15
  941. package/lib/errors/NoMembershipError.js.map +0 -1
  942. package/lib/index.d.ts +0 -1
  943. package/lib/index.js +0 -17
  944. package/lib/index.js.map +0 -1
  945. package/lib/k8s-command-base.d.ts +0 -60
  946. package/lib/k8s-command-base.js +0 -204
  947. package/lib/k8s-command-base.js.map +0 -1
  948. package/lib/log-update-wrapper.d.ts +0 -24
  949. package/lib/log-update-wrapper.js +0 -29
  950. package/lib/log-update-wrapper.js.map +0 -1
  951. package/lib/log4js-logger.d.ts +0 -26
  952. package/lib/log4js-logger.js +0 -138
  953. package/lib/log4js-logger.js.map +0 -1
  954. package/lib/ops/INTERFACES_CLI.d.ts +0 -3
  955. package/lib/ops/INTERFACES_CLI.js +0 -8
  956. package/lib/ops/INTERFACES_CLI.js.map +0 -1
  957. package/lib/ops/LocalOps.d.ts +0 -417
  958. package/lib/ops/LocalOps.js +0 -3122
  959. package/lib/ops/LocalOps.js.map +0 -1
  960. package/lib/ops/azure-container-registry-client/azure-container-registry-client.d.ts +0 -0
  961. package/lib/ops/azure-container-registry-client/azure-container-registry-client.js +0 -148
  962. package/lib/ops/azure-container-registry-client/azure-container-registry-client.js.map +0 -1
  963. package/lib/ops/cli-path-walker.d.ts +0 -0
  964. package/lib/ops/cli-path-walker.js +0 -55
  965. package/lib/ops/cli-path-walker.js.map +0 -1
  966. package/lib/ops/codiac-entities/dependency.d.ts +0 -5
  967. package/lib/ops/codiac-entities/dependency.js +0 -11
  968. package/lib/ops/codiac-entities/dependency.js.map +0 -1
  969. package/lib/ops/codiac-entities/index.d.ts +0 -1
  970. package/lib/ops/codiac-entities/index.js +0 -5
  971. package/lib/ops/codiac-entities/index.js.map +0 -1
  972. package/lib/ops/composite-image-registry-client.d.ts +0 -0
  973. package/lib/ops/composite-image-registry-client.js +0 -74
  974. package/lib/ops/composite-image-registry-client.js.map +0 -1
  975. package/lib/ops/data/cli-context-repo.d.ts +0 -61
  976. package/lib/ops/data/cli-context-repo.js +0 -270
  977. package/lib/ops/data/cli-context-repo.js.map +0 -1
  978. package/lib/ops/data/index.d.ts +0 -2
  979. package/lib/ops/data/index.js +0 -6
  980. package/lib/ops/data/index.js.map +0 -1
  981. package/lib/ops/data/npm-config-repo.d.ts +0 -13
  982. package/lib/ops/data/npm-config-repo.js +0 -65
  983. package/lib/ops/data/npm-config-repo.js.map +0 -1
  984. package/lib/ops/docker-config.d.ts +0 -0
  985. package/lib/ops/docker-config.js +0 -131
  986. package/lib/ops/docker-config.js.map +0 -1
  987. package/lib/ops/docker-constants.d.ts +0 -0
  988. package/lib/ops/docker-constants.js +0 -22
  989. package/lib/ops/docker-constants.js.map +0 -1
  990. package/lib/ops/docker-credentials-store.d.ts +0 -0
  991. package/lib/ops/docker-credentials-store.js +0 -238
  992. package/lib/ops/docker-credentials-store.js.map +0 -1
  993. package/lib/ops/docker-registry-api-client/docker-registry-api-client.d.ts +0 -0
  994. package/lib/ops/docker-registry-api-client/docker-registry-api-client.js +0 -289
  995. package/lib/ops/docker-registry-api-client/docker-registry-api-client.js.map +0 -1
  996. package/lib/ops/docker-registry-api-client/entities/blob-sum.d.ts +0 -7
  997. package/lib/ops/docker-registry-api-client/entities/blob-sum.js +0 -13
  998. package/lib/ops/docker-registry-api-client/entities/blob-sum.js.map +0 -1
  999. package/lib/ops/docker-registry-api-client/entities/docker-access-actions-enum.d.ts +0 -5
  1000. package/lib/ops/docker-registry-api-client/entities/docker-access-actions-enum.js +0 -10
  1001. package/lib/ops/docker-registry-api-client/entities/docker-access-actions-enum.js.map +0 -1
  1002. package/lib/ops/docker-registry-api-client/entities/docker-auth-token-criteria.d.ts +0 -30
  1003. package/lib/ops/docker-registry-api-client/entities/docker-auth-token-criteria.js +0 -36
  1004. package/lib/ops/docker-registry-api-client/entities/docker-auth-token-criteria.js.map +0 -1
  1005. package/lib/ops/docker-registry-api-client/entities/i-docker-error-response.d.ts +0 -55
  1006. package/lib/ops/docker-registry-api-client/entities/i-docker-error-response.js +0 -52
  1007. package/lib/ops/docker-registry-api-client/entities/i-docker-error-response.js.map +0 -1
  1008. package/lib/ops/docker-registry-api-client/entities/i-docker-list-response.d.ts +0 -7
  1009. package/lib/ops/docker-registry-api-client/entities/i-docker-list-response.js +0 -3
  1010. package/lib/ops/docker-registry-api-client/entities/i-docker-list-response.js.map +0 -1
  1011. package/lib/ops/docker-registry-api-client/entities/image-repository.d.ts +0 -31
  1012. package/lib/ops/docker-registry-api-client/entities/image-repository.js +0 -30
  1013. package/lib/ops/docker-registry-api-client/entities/image-repository.js.map +0 -1
  1014. package/lib/ops/docker-registry-api-client/entities/image-tag-criteria.d.ts +0 -8
  1015. package/lib/ops/docker-registry-api-client/entities/image-tag-criteria.js +0 -14
  1016. package/lib/ops/docker-registry-api-client/entities/image-tag-criteria.js.map +0 -1
  1017. package/lib/ops/docker-registry-api-client/entities/image-tag-list.d.ts +0 -7
  1018. package/lib/ops/docker-registry-api-client/entities/image-tag-list.js +0 -13
  1019. package/lib/ops/docker-registry-api-client/entities/image-tag-list.js.map +0 -1
  1020. package/lib/ops/docker-registry-api-client/entities/manifest-criteria.d.ts +0 -9
  1021. package/lib/ops/docker-registry-api-client/entities/manifest-criteria.js +0 -15
  1022. package/lib/ops/docker-registry-api-client/entities/manifest-criteria.js.map +0 -1
  1023. package/lib/ops/docker-registry-api-client/entities/manifest.d.ts +0 -15
  1024. package/lib/ops/docker-registry-api-client/entities/manifest.js +0 -21
  1025. package/lib/ops/docker-registry-api-client/entities/manifest.js.map +0 -1
  1026. package/lib/ops/docker-registry-api-client/entities/repository-criteria.d.ts +0 -16
  1027. package/lib/ops/docker-registry-api-client/entities/repository-criteria.js +0 -24
  1028. package/lib/ops/docker-registry-api-client/entities/repository-criteria.js.map +0 -1
  1029. package/lib/ops/docker-registry-api-client/entities/token-response.d.ts +0 -15
  1030. package/lib/ops/docker-registry-api-client/entities/token-response.js +0 -15
  1031. package/lib/ops/docker-registry-api-client/entities/token-response.js.map +0 -1
  1032. package/lib/ops/docker-registry-api-client/entities/token.d.ts +0 -17
  1033. package/lib/ops/docker-registry-api-client/entities/token.js +0 -22
  1034. package/lib/ops/docker-registry-api-client/entities/token.js.map +0 -1
  1035. package/lib/ops/docker-registry-api-client/entities/version-check-criteria.d.ts +0 -4
  1036. package/lib/ops/docker-registry-api-client/entities/version-check-criteria.js +0 -10
  1037. package/lib/ops/docker-registry-api-client/entities/version-check-criteria.js.map +0 -1
  1038. package/lib/ops/dx-constants.d.ts +0 -26
  1039. package/lib/ops/dx-constants.js +0 -43
  1040. package/lib/ops/dx-constants.js.map +0 -1
  1041. package/lib/ops/entities/ImageBuildContext.d.ts +0 -12
  1042. package/lib/ops/entities/ImageBuildContext.js +0 -19
  1043. package/lib/ops/entities/ImageBuildContext.js.map +0 -1
  1044. package/lib/ops/entities/PipelineContext.d.ts +0 -21
  1045. package/lib/ops/entities/PipelineContext.js +0 -23
  1046. package/lib/ops/entities/PipelineContext.js.map +0 -1
  1047. package/lib/ops/entities/TenantContext.d.ts +0 -10
  1048. package/lib/ops/entities/TenantContext.js +0 -16
  1049. package/lib/ops/entities/TenantContext.js.map +0 -1
  1050. package/lib/ops/entities/ThaulConfig.d.ts +0 -0
  1051. package/lib/ops/entities/ThaulConfig.js +0 -30
  1052. package/lib/ops/entities/ThaulConfig.js.map +0 -1
  1053. package/lib/ops/entities/azure-service-principal.d.ts +0 -23
  1054. package/lib/ops/entities/azure-service-principal.js +0 -24
  1055. package/lib/ops/entities/azure-service-principal.js.map +0 -1
  1056. package/lib/ops/entities/better-logger.d.ts +0 -0
  1057. package/lib/ops/entities/better-logger.js +0 -2
  1058. package/lib/ops/entities/better-logger.js.map +0 -1
  1059. package/lib/ops/entities/branch.d.ts +0 -13
  1060. package/lib/ops/entities/branch.js +0 -16
  1061. package/lib/ops/entities/branch.js.map +0 -1
  1062. package/lib/ops/entities/cli-config.d.ts +0 -48
  1063. package/lib/ops/entities/cli-config.js +0 -61
  1064. package/lib/ops/entities/cli-config.js.map +0 -1
  1065. package/lib/ops/entities/docker-image.d.ts +0 -60
  1066. package/lib/ops/entities/docker-image.js +0 -3
  1067. package/lib/ops/entities/docker-image.js.map +0 -1
  1068. package/lib/ops/entities/helm-spec.d.ts +0 -15
  1069. package/lib/ops/entities/helm-spec.js +0 -23
  1070. package/lib/ops/entities/helm-spec.js.map +0 -1
  1071. package/lib/ops/entities/index.d.ts +0 -4
  1072. package/lib/ops/entities/index.js +0 -12
  1073. package/lib/ops/entities/index.js.map +0 -1
  1074. package/lib/ops/entities/operation-meta.d.ts +0 -8
  1075. package/lib/ops/entities/operation-meta.js +0 -19
  1076. package/lib/ops/entities/operation-meta.js.map +0 -1
  1077. package/lib/ops/entities/scaffolding.d.ts +0 -19
  1078. package/lib/ops/entities/scaffolding.js +0 -21
  1079. package/lib/ops/entities/scaffolding.js.map +0 -1
  1080. package/lib/ops/extensions/azart-identity-adapter.d.ts +0 -19
  1081. package/lib/ops/extensions/azart-identity-adapter.js +0 -97
  1082. package/lib/ops/extensions/azart-identity-adapter.js.map +0 -1
  1083. package/lib/ops/extensions/npm-identity-adapter-base.d.ts +0 -13
  1084. package/lib/ops/extensions/npm-identity-adapter-base.js +0 -3
  1085. package/lib/ops/extensions/npm-identity-adapter-base.js.map +0 -1
  1086. package/lib/ops/extensions/npmjs-identity-adapter.d.ts +0 -13
  1087. package/lib/ops/extensions/npmjs-identity-adapter.js +0 -64
  1088. package/lib/ops/extensions/npmjs-identity-adapter.js.map +0 -1
  1089. package/lib/ops/git-ops.d.ts +0 -8
  1090. package/lib/ops/git-ops.js +0 -14
  1091. package/lib/ops/git-ops.js.map +0 -1
  1092. package/lib/ops/i-client-for-image-registry.d.ts +0 -0
  1093. package/lib/ops/i-client-for-image-registry.js +0 -17
  1094. package/lib/ops/i-client-for-image-registry.js.map +0 -1
  1095. package/lib/ops/i-identity-handler.d.ts +0 -33
  1096. package/lib/ops/i-identity-handler.js +0 -165
  1097. package/lib/ops/i-identity-handler.js.map +0 -1
  1098. package/lib/ops/i-output-styler.d.ts +0 -0
  1099. package/lib/ops/i-output-styler.js +0 -17
  1100. package/lib/ops/i-output-styler.js.map +0 -1
  1101. package/lib/ops/index.d.ts +0 -12
  1102. package/lib/ops/index.js +0 -15
  1103. package/lib/ops/index.js.map +0 -1
  1104. package/lib/ops/json-utils.d.ts +0 -0
  1105. package/lib/ops/json-utils.js +0 -59
  1106. package/lib/ops/json-utils.js.map +0 -1
  1107. package/lib/ops/no-style-output-styler.d.ts +0 -0
  1108. package/lib/ops/no-style-output-styler.js +0 -30
  1109. package/lib/ops/no-style-output-styler.js.map +0 -1
  1110. package/lib/ops/oauth2-client.ts/oauth2-client.d.ts +0 -23
  1111. package/lib/ops/oauth2-client.ts/oauth2-client.js +0 -64
  1112. package/lib/ops/oauth2-client.ts/oauth2-client.js.map +0 -1
  1113. package/lib/ops/project-initializer.d.ts +0 -36
  1114. package/lib/ops/project-initializer.js +0 -219
  1115. package/lib/ops/project-initializer.js.map +0 -1
  1116. package/lib/ops/scaffolding/base-scaffolding.d.ts +0 -7
  1117. package/lib/ops/scaffolding/base-scaffolding.js +0 -21
  1118. package/lib/ops/scaffolding/base-scaffolding.js.map +0 -1
  1119. package/lib/ops/scaffolding/codiac-api-scaffolding.d.ts +0 -7
  1120. package/lib/ops/scaffolding/codiac-api-scaffolding.js +0 -64
  1121. package/lib/ops/scaffolding/codiac-api-scaffolding.js.map +0 -1
  1122. package/lib/ops/scaffolding/typescript-scaffolding.d.ts +0 -15
  1123. package/lib/ops/scaffolding/typescript-scaffolding.js +0 -163
  1124. package/lib/ops/scaffolding/typescript-scaffolding.js.map +0 -1
  1125. package/lib/ops/test/mock-ui.d.ts +0 -26
  1126. package/lib/ops/test/mock-ui.js +0 -88
  1127. package/lib/ops/test/mock-ui.js.map +0 -1
  1128. package/lib/ops/test/test-extensions.d.ts +0 -13
  1129. package/lib/ops/test/test-extensions.js +0 -71
  1130. package/lib/ops/test/test-extensions.js.map +0 -1
  1131. package/lib/ops/test/when-a-recursive-file-search-is-run.spec.d.ts +0 -2
  1132. package/lib/ops/test/when-a-recursive-file-search-is-run.spec.js +0 -55
  1133. package/lib/ops/test/when-a-recursive-file-search-is-run.spec.js.map +0 -1
  1134. package/lib/ops/test/when-git-branchline-is-attempted.spec.d.ts +0 -2
  1135. package/lib/ops/test/when-git-branchline-is-attempted.spec.js +0 -38
  1136. package/lib/ops/test/when-git-branchline-is-attempted.spec.js.map +0 -1
  1137. package/lib/ops/test/when-versions-are-parsed.spec.d.ts +0 -2
  1138. package/lib/ops/test/when-versions-are-parsed.spec.js +0 -62
  1139. package/lib/ops/test/when-versions-are-parsed.spec.js.map +0 -1
  1140. package/lib/ops/throwing-user-input-provider.d.ts +0 -0
  1141. package/lib/ops/throwing-user-input-provider.js +0 -37
  1142. package/lib/ops/throwing-user-input-provider.js.map +0 -1
  1143. package/lib/ops/workspace-versioner.d.ts +0 -122
  1144. package/lib/ops/workspace-versioner.js +0 -292
  1145. package/lib/ops/workspace-versioner.js.map +0 -1
  1146. package/lib/prettify.d.ts +0 -7
  1147. package/lib/prettify.js +0 -24
  1148. package/lib/prettify.js.map +0 -1
  1149. package/lib/read-stdin.d.ts +0 -2
  1150. package/lib/read-stdin.js +0 -29
  1151. package/lib/read-stdin.js.map +0 -1
  1152. package/lib/relay/contracts/contracts.d.ts +0 -207
  1153. package/lib/relay/contracts/contracts.js +0 -230
  1154. package/lib/relay/contracts/contracts.js.map +0 -1
  1155. package/lib/relay/data/aws-k8s-versions.d.ts +0 -6
  1156. package/lib/relay/data/aws-k8s-versions.js +0 -16
  1157. package/lib/relay/data/aws-k8s-versions.js.map +0 -1
  1158. package/lib/relay/data/aws-node-types.d.ts +0 -37
  1159. package/lib/relay/data/aws-node-types.js +0 -4246
  1160. package/lib/relay/data/aws-node-types.js.map +0 -1
  1161. package/lib/relay/data/aws-regions.d.ts +0 -6
  1162. package/lib/relay/data/aws-regions.js +0 -34
  1163. package/lib/relay/data/aws-regions.js.map +0 -1
  1164. package/lib/relay/extended-relay-client.d.ts +0 -27
  1165. package/lib/relay/extended-relay-client.js +0 -28
  1166. package/lib/relay/extended-relay-client.js.map +0 -1
  1167. package/lib/relay/relay-container.d.ts +0 -41
  1168. package/lib/relay/relay-container.js +0 -298
  1169. package/lib/relay/relay-container.js.map +0 -1
  1170. package/lib/relay/wsclient/relay-socket-listener.d.ts +0 -68
  1171. package/lib/relay/wsclient/relay-socket-listener.js +0 -165
  1172. package/lib/relay/wsclient/relay-socket-listener.js.map +0 -1
  1173. package/lib/relay/wsclient/relay-websocket-client.d.ts +0 -33
  1174. package/lib/relay/wsclient/relay-websocket-client.js +0 -179
  1175. package/lib/relay/wsclient/relay-websocket-client.js.map +0 -1
  1176. package/lib/relay/wsclient/rx-websocket-subject.d.ts +0 -25
  1177. package/lib/relay/wsclient/rx-websocket-subject.js +0 -134
  1178. package/lib/relay/wsclient/rx-websocket-subject.js.map +0 -1
  1179. package/lib/relay/wsclient/socket-contracts.d.ts +0 -22
  1180. package/lib/relay/wsclient/socket-contracts.js +0 -3
  1181. package/lib/relay/wsclient/socket-contracts.js.map +0 -1
  1182. package/lib/standard-probes.d.ts +0 -5
  1183. package/lib/standard-probes.js +0 -22
  1184. package/lib/standard-probes.js.map +0 -1
  1185. package/lib/uilogic/build-configurator.d.ts +0 -21
  1186. package/lib/uilogic/build-configurator.js +0 -111
  1187. package/lib/uilogic/build-configurator.js.map +0 -1
  1188. package/lib/uilogic/cloud-provider-contextualizer.d.ts +0 -46
  1189. package/lib/uilogic/cloud-provider-contextualizer.js +0 -194
  1190. package/lib/uilogic/cloud-provider-contextualizer.js.map +0 -1
  1191. package/lib/uilogic/cloud-resource-configurator-factory.d.ts +0 -41
  1192. package/lib/uilogic/cloud-resource-configurator-factory.js +0 -158
  1193. package/lib/uilogic/cloud-resource-configurator-factory.js.map +0 -1
  1194. package/lib/uilogic/cloud-resource-configurators/aws-k8s-versions.d.ts +0 -11
  1195. package/lib/uilogic/cloud-resource-configurators/aws-k8s-versions.js +0 -16
  1196. package/lib/uilogic/cloud-resource-configurators/aws-k8s-versions.js.map +0 -1
  1197. package/lib/uilogic/cloud-resource-configurators/aws-node-types.d.ts +0 -5
  1198. package/lib/uilogic/cloud-resource-configurators/aws-node-types.js +0 -536
  1199. package/lib/uilogic/cloud-resource-configurators/aws-node-types.js.map +0 -1
  1200. package/lib/uilogic/cloud-resource-configurators/aws-regions.d.ts +0 -10
  1201. package/lib/uilogic/cloud-resource-configurators/aws-regions.js +0 -34
  1202. package/lib/uilogic/cloud-resource-configurators/aws-regions.js.map +0 -1
  1203. package/lib/uilogic/cloud-resource-configurators/aws-resource-configurator.d.ts +0 -38
  1204. package/lib/uilogic/cloud-resource-configurators/aws-resource-configurator.js +0 -348
  1205. package/lib/uilogic/cloud-resource-configurators/aws-resource-configurator.js.map +0 -1
  1206. package/lib/uilogic/cloud-resource-configurators/az-acr-cli-authenticator.d.ts +0 -0
  1207. package/lib/uilogic/cloud-resource-configurators/az-acr-cli-authenticator.js +0 -78
  1208. package/lib/uilogic/cloud-resource-configurators/az-acr-cli-authenticator.js.map +0 -1
  1209. package/lib/uilogic/cloud-resource-configurators/az-interactive-login-configurator.d.ts +0 -42
  1210. package/lib/uilogic/cloud-resource-configurators/az-interactive-login-configurator.js +0 -248
  1211. package/lib/uilogic/cloud-resource-configurators/az-interactive-login-configurator.js.map +0 -1
  1212. package/lib/uilogic/cloud-resource-configurators/azure-resource-configurator.d.ts +0 -110
  1213. package/lib/uilogic/cloud-resource-configurators/azure-resource-configurator.js +0 -782
  1214. package/lib/uilogic/cloud-resource-configurators/azure-resource-configurator.js.map +0 -1
  1215. package/lib/uilogic/cloud-resource-configurators/azure-types.d.ts +0 -0
  1216. package/lib/uilogic/cloud-resource-configurators/azure-types.js +0 -10
  1217. package/lib/uilogic/cloud-resource-configurators/azure-types.js.map +0 -1
  1218. package/lib/uilogic/cloud-resource-configurators/docker-hub-resource-configurator.d.ts +0 -24
  1219. package/lib/uilogic/cloud-resource-configurators/docker-hub-resource-configurator.js +0 -106
  1220. package/lib/uilogic/cloud-resource-configurators/docker-hub-resource-configurator.js.map +0 -1
  1221. package/lib/uilogic/cloud-resource-configurators/helm-resource-configurator.d.ts +0 -16
  1222. package/lib/uilogic/cloud-resource-configurators/helm-resource-configurator.js +0 -45
  1223. package/lib/uilogic/cloud-resource-configurators/helm-resource-configurator.js.map +0 -1
  1224. package/lib/uilogic/cloud-resource-configurators/unsupported-resource-configurator.d.ts +0 -18
  1225. package/lib/uilogic/cloud-resource-configurators/unsupported-resource-configurator.js +0 -62
  1226. package/lib/uilogic/cloud-resource-configurators/unsupported-resource-configurator.js.map +0 -1
  1227. package/lib/uilogic/enterprise-contextualizer.d.ts +0 -76
  1228. package/lib/uilogic/enterprise-contextualizer.js +0 -671
  1229. package/lib/uilogic/enterprise-contextualizer.js.map +0 -1
  1230. package/lib/uilogic/environment-contextualizer.d.ts +0 -15
  1231. package/lib/uilogic/environment-contextualizer.js +0 -43
  1232. package/lib/uilogic/environment-contextualizer.js.map +0 -1
  1233. package/lib/uilogic/i-cluster-configurator.d.ts +0 -9
  1234. package/lib/uilogic/i-cluster-configurator.js +0 -3
  1235. package/lib/uilogic/i-cluster-configurator.js.map +0 -1
  1236. package/lib/uilogic/i-login-configurator.d.ts +0 -6
  1237. package/lib/uilogic/i-login-configurator.js +0 -3
  1238. package/lib/uilogic/i-login-configurator.js.map +0 -1
  1239. package/lib/uilogic/i-registry-configurator.d.ts +0 -6
  1240. package/lib/uilogic/i-registry-configurator.js +0 -3
  1241. package/lib/uilogic/i-registry-configurator.js.map +0 -1
  1242. package/lib/uilogic/i-secret-store-configurator.d.ts +0 -7
  1243. package/lib/uilogic/i-secret-store-configurator.js +0 -3
  1244. package/lib/uilogic/i-secret-store-configurator.js.map +0 -1
  1245. package/lib/uilogic/image-configurator.d.ts +0 -133
  1246. package/lib/uilogic/image-configurator.js +0 -578
  1247. package/lib/uilogic/image-configurator.js.map +0 -1
  1248. package/lib/uilogic/image-contextualizer.d.ts +0 -24
  1249. package/lib/uilogic/image-contextualizer.js +0 -90
  1250. package/lib/uilogic/image-contextualizer.js.map +0 -1
  1251. package/lib/uilogic/image-registry-contextualizer.d.ts +0 -28
  1252. package/lib/uilogic/image-registry-contextualizer.js +0 -127
  1253. package/lib/uilogic/image-registry-contextualizer.js.map +0 -1
  1254. package/lib/uilogic/index.d.ts +0 -9
  1255. package/lib/uilogic/index.js +0 -14
  1256. package/lib/uilogic/index.js.map +0 -1
  1257. package/lib/uilogic/prompt-select-fuzzy.d.ts +0 -0
  1258. package/lib/uilogic/prompt-select-fuzzy.js +0 -139
  1259. package/lib/uilogic/prompt-select-fuzzy.js.map +0 -1
  1260. package/lib/uilogic/render-methods.d.ts +0 -12
  1261. package/lib/uilogic/render-methods.js +0 -65
  1262. package/lib/uilogic/render-methods.js.map +0 -1
  1263. package/lib/uilogic/tenant-contextualizer.d.ts +0 -79
  1264. package/lib/uilogic/tenant-contextualizer.js +0 -578
  1265. package/lib/uilogic/tenant-contextualizer.js.map +0 -1
  1266. package/lib/user-context-loader.d.ts +0 -60
  1267. package/lib/user-context-loader.js +0 -184
  1268. package/lib/user-context-loader.js.map +0 -1
@@ -1,671 +1,671 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EnterpriseContextualizer = void 0;
4
- const tslib_1 = require("tslib");
5
- const asset_binding_1 = require("../codiac-entities/asset-binding");
6
- const _ = require("lodash");
7
- const contracts_1 = require("../apis/codiac-api/contracts");
8
- // import { Enterprise, Asset, Image, ImageRegistry, AssetCriteria, EnterpriseCriteria, Cabinet, CabinetCriteria, ImageOSTypesEnum, CloudProviderEnum, ImageRegistryTypes } from '@codiac.io/codiac-domain';
9
- const codiac_relay_contracts_1 = require("@codiac.io/codiac-relay-contracts");
10
- const codiac_relay_contracts_2 = require("@codiac.io/codiac-relay-contracts");
11
- const contracts_2 = require("@codiac.io/codiac-common/contracts");
12
- // export declare type EnterpriseContext = { enterpriseCode: string, assetBindings?: AssetContext[]|undefined };
13
- // export declare type AssetContext = { image: ImageExport, incarnation: AssetBinding };
14
- /** Establishes a single Enterprise Asset as which to deploy an ImageExport. */
15
- class EnterpriseContextualizer {
16
- constructor(_tenantCode, _ops, relayClient, _codiacApi, _projCfg, _projUserCfg, _projCfgRepo, userContext, userContextManager, ui, styler, exitCli, logger) {
17
- this._tenantCode = _tenantCode;
18
- this._ops = _ops;
19
- this.relayClient = relayClient;
20
- this._codiacApi = _codiacApi;
21
- this._projCfg = _projCfg;
22
- this._projUserCfg = _projUserCfg;
23
- this._projCfgRepo = _projCfgRepo;
24
- this.userContext = userContext;
25
- this.userContextManager = userContextManager;
26
- this.ui = ui;
27
- this.styler = styler;
28
- this.exitCli = exitCli;
29
- this.logger = logger;
30
- this.takeDefaults = false;
31
- }
32
- /** Interacts with user to select an existing enterprise (or create one if none exist),
33
- * and persists it in the project user config.
34
- * NOTE: Clears Asset context if the user switches enterprises,
35
- * or keeps original with orignal asset context if user selects it. */
36
- establishEnterprise(requestedEnterpriseCode) {
37
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
38
- return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
39
- var _a, _b, _c, _d, _e;
40
- try {
41
- let eResult = yield this._codiacApi.Enterprise.tryReadMany({ all: true });
42
- if (eResult.error)
43
- throw new contracts_2.CodiacError(`Error reading enterprises: ${eResult.message}; ${eResult.error.message}`, eResult.error);
44
- if (!eResult.output || eResult.output.length == 0) {
45
- throw new contracts_2.CodiacError(`This tenant [${this._tenantCode}] does not have any enterprises defined. You need to create one to continue.`);
46
- // TODO: The contextualizer should walk them thru the enterprise setup.
47
- // eCode = await cli.prompt(`Enter a code for the enterprise (${eCode})`);
48
- // eCode = eCode.toLowercase().replace(/[^A-Za-z0-9-_]/g, "");
49
- // // TODO: We might use one more conf here to let em check for stray keystrokes (we enterprise codes are immutable)
50
- // let ep = new Enterprise(eCode);
51
- // let createResult = await this._codiacApi.Enterprise.tryCreate(ep);
52
- // if (createResult.Error) throw new CodiacError(`Error creating new enterprise [${ep.code}]: ${createResult.message||""}; ${createResult.error.message}`, createResult.error);
53
- }
54
- // -------------------------------------------------------------------
55
- // !!!! HELP !!!!
56
- // We're drowning in IF statments here!!
57
- //
58
- // It's the end of a looong day of a LOT of coding solutions,
59
- // and I cant summon an elegant path thru this...
60
- //
61
- // TODO: REFACTOR THIS INTO SOMETHING THAT LOOKS PROFESSIONAL.
62
- // -------------------------------------------------------------------
63
- // GET: proj THEN user
64
- let originalCode = (_c = (_b = (_a = this._projUserCfg) === null || _a === void 0 ? void 0 : _a.enterprise) === null || _b === void 0 ? void 0 : _b.enterpriseCode) !== null && _c !== void 0 ? _c : (_e = (_d = this.userContext) === null || _d === void 0 ? void 0 : _d.currentEnterprise) === null || _e === void 0 ? void 0 : _e.enterprise;
65
- // Validate the requested enterprise
66
- let enterprise;
67
- if (requestedEnterpriseCode) {
68
- enterprise = eResult.output.find(e => e.code == requestedEnterpriseCode);
69
- }
70
- // Validate the enterprise set in the current project user context
71
- if (!enterprise) {
72
- if (originalCode !== undefined && originalCode !== "") {
73
- enterprise = eResult.output.find(e => e.code == originalCode);
74
- }
75
- }
76
- // Select the one and only
77
- if (!enterprise && eResult.output.length === 1) {
78
- enterprise = eResult.output[0];
79
- }
80
- // Prompt the user to select from the list of enterprises (for this tenant)
81
- let attempts = 4;
82
- while (!enterprise && attempts > 0) {
83
- let eCode = yield this.ui.promptSelect("enterpriseCode", "Select a target enterprise:", eResult.output.map(e => e.code));
84
- if (eCode)
85
- enterprise = eResult.output.find(e => e.code == eCode);
86
- attempts--;
87
- }
88
- if (!enterprise)
89
- throw new Error("Failed to select a target enterprise.");
90
- // We've got one now.
91
- if (originalCode !== undefined && originalCode !== "" && enterprise.code == originalCode) {
92
- // same as original. Do nothing
93
- }
94
- else {
95
- // new enterprise context
96
- this.userContext.currentEnterprise = { enterprise: enterprise.code };
97
- this.userContext.enterpriseContexts[this._tenantCode] = this.userContext.currentEnterprise;
98
- yield this.userContextManager.writeUserContext(this.userContext);
99
- // SET: user THEN proj
100
- if (this._projUserCfg && this._projCfgRepo) {
101
- this._projUserCfg.enterprise = new codiac_relay_contracts_1.ProjectEnterpriseBinding(this.userContext.currentEnterprise.enterprise);
102
- yield this._projCfgRepo.writeProjectUserConfig(this._projUserCfg);
103
- }
104
- }
105
- resolve(enterprise);
106
- }
107
- catch (err) {
108
- reject(err);
109
- }
110
- }));
111
- });
112
- }
113
- establishEnterpriseAsset(enterprise, suppressConfirmations) {
114
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
115
- return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
116
- var _a, _b;
117
- try {
118
- let assetName;
119
- // TODO: Consider using asset.code instead.
120
- // assetName = this._projUserCfg?.enterprise?.assetBindings ? this._projUserCfg?.enterprise?.assetBindings[0].incarnation?.assetName ?? this.userContext.currentEnterprise?.asset : this.userContext.currentEnterprise?.asset;
121
- // WITH PROJECT CONTEXT
122
- if (this._projCfg && this._projCfgRepo && (this._projCfg.images !== undefined && Object.keys(this._projCfg.images).length > 0)) {
123
- let assetContext = yield this.establishProjectAssetBinding(enterprise.code, enterprise.assets, this._projCfg, this._projCfgRepo, suppressConfirmations, (_a = this.userContext.currentEnterprise) === null || _a === void 0 ? void 0 : _a.asset);
124
- assetName = assetContext.incarnation.assetName;
125
- yield this.validateImageOs(assetContext, enterprise.assets);
126
- // TODO: This should come BEFORE establishBinding. This will require the new assetContextSwitching.
127
- // TODO: validate that requested assets exist. Dont auto-create them.
128
- // await this.validateAssetBinding(assetContext); // <---- BUT THIS SHD BE PART OF this.establishBinding()
129
- // which should include:
130
- // throw new CodiacError(`Requested Asset [${req.incarnation.assetName}] does not exist in the enterprise [${req.incarnation.enterprise}].`)
131
- let assets = yield this.createMissingAssets(enterprise.code, [assetContext]);
132
- }
133
- // WITH USER CONTEXT
134
- if (assetName === undefined || assetName === "") {
135
- if (this.userContext.currentEnterprise == undefined || this.userContext.currentEnterprise.enterprise !== enterprise.code) {
136
- // Make sure we are pointed to the given enterprise
137
- this.userContext.currentEnterprise = new codiac_relay_contracts_1.EnterprisePointer(enterprise.code);
138
- }
139
- if (this.userContext.currentEnterprise.asset !== undefined && this.userContext.currentEnterprise.asset !== "") {
140
- // Make sure current asset still exists in the enterprise record.
141
- assetName = (_b = enterprise.assets.find(a => a.name === this.userContext.currentEnterprise.asset)) === null || _b === void 0 ? void 0 : _b.name;
142
- }
143
- if (assetName === undefined || assetName === "") {
144
- // Prompt the user directly
145
- let choices = enterprise.assets.map(a => { return { name: a.name, value: a.name }; });
146
- assetName = (yield this.ui.promptSelect("assetName", "Asset: ", choices));
147
- }
148
- }
149
- else {
150
- // Save whatever was selected in the prject context
151
- }
152
- resolve(assetName);
153
- }
154
- catch (err) {
155
- reject(err);
156
- }
157
- }));
158
- });
159
- }
160
- /** This method WAS a copy from config:add */
161
- promptForTargetFile(enterprise, asset, defaultValue) {
162
- var _a;
163
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
164
- try {
165
- // 1. Build choices
166
- let crit = {
167
- asset: asset,
168
- enterprise: enterprise,
169
- type: contracts_1.ConfigDefTypesEnum.file
170
- };
171
- // let configs = await this._codiacApi.ConfigDef.readMany(crit, { throwNotFound: false, projection: { pathsExcluded: [], pathsIncluded: ["settings", "targetFile", "format"] } })
172
- let cfgResult = yield this._codiacApi.Call.getConfigDefs(crit, { projection: { pathsExcluded: [], pathsIncluded: ["settings", "targetFile", "format"] } });
173
- if (cfgResult.error)
174
- throw cfgResult.error;
175
- let configs = (_a = cfgResult.output) !== null && _a !== void 0 ? _a : [];
176
- if (configs.length === 0) {
177
- throw new Error(`The asset ${asset} has no config files defined.`);
178
- }
179
- let choices = configs.map(c => { return { name: c.targetFile, value: c.targetFile }; });
180
- // 2. Select the one-and-only
181
- /** If we changed the input they provided, we need their confirmation (whether or not they said takeDefaults) */
182
- let changedUserInput = false;
183
- if (choices.length === 1) {
184
- if (defaultValue != choices[0].value) {
185
- changedUserInput = !_.isEmpty(defaultValue);
186
- defaultValue = choices[0].value;
187
- this.ui.userMessage(`1 config file found: ${this.styler.hilite(defaultValue)}`);
188
- }
189
- }
190
- // 3. Confirm and/or Select
191
- let targetFile;
192
- let keep = this.takeDefaults;
193
- if (defaultValue && choices.find(x => x.value == defaultValue) && (changedUserInput || !this.takeDefaults)) {
194
- keep = yield this.ui.promptConfirm("keepTargetFile", `File: ${this.styler.hilite(defaultValue)}`, true);
195
- }
196
- targetFile = (defaultValue && keep === true) ? defaultValue : (yield this.ui.promptSelect("fileExisting", "File: ", choices));
197
- return targetFile;
198
- }
199
- catch (err) {
200
- throw err;
201
- }
202
- });
203
- }
204
- /** Throws when the image os does not match that of the image in the remote enterprise asset record.
205
- *
206
- * Throws any errors. */
207
- validateImageOs(localBinding, enterpriseAssets) {
208
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
209
- return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
210
- var _a, _b, _c;
211
- try {
212
- let assetRecord = enterpriseAssets.find(a => a.name == localBinding.incarnation.assetName);
213
- if ((assetRecord === null || assetRecord === void 0 ? void 0 : assetRecord.image) && assetRecord.image.os && (((_a = localBinding.image.os) === null || _a === void 0 ? void 0 : _a.toLowerCase()) != assetRecord.image.os.toLowerCase())) {
214
- throw new Error(`The image callout in the official enterprise asset record [asset: ${assetRecord.name}, enterprise: ${assetRecord.enterprise}] is showing a different OS [${(_b = assetRecord.image.os) !== null && _b !== void 0 ? _b : "undefined"}] than the one in this project of [${(_c = localBinding.image.os) !== null && _c !== void 0 ? _c : "undefined"}]. Please reconcile this issue.`);
215
- }
216
- resolve();
217
- }
218
- catch (err) {
219
- reject(err);
220
- }
221
- }));
222
- });
223
- }
224
- /** TODO: Ensures that the given assets exist in the api. */
225
- createMissingAssets(enterpriseCode, requestedAssets) {
226
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
227
- return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
228
- try {
229
- let assets = [];
230
- let crit = { code: enterpriseCode };
231
- let assetResult = yield this._codiacApi.Enterprise.tryReadMany(crit);
232
- if (assetResult.error) {
233
- throw new contracts_2.CodiacError(`Error querying enterprise to check for existing assets: ${assetResult.message || ""}; ${assetResult.error.message || ""}`, assetResult.error);
234
- }
235
- else if (!assetResult.success || !assetResult.output) {
236
- throw new contracts_2.CodiacError(`Unable to verify assets: enterprise [${crit.code}] was not found.`);
237
- }
238
- else {
239
- let enterprise = assetResult.output[0];
240
- let assets = enterprise.assets; // Deploy all of em unless the caller requested specific ones.
241
- if (requestedAssets && requestedAssets.length > 0) {
242
- // Get only the requested ones...
243
- // assets = enterprise.assets.filter(a => requestedAssets.find(ac => a.name == ac.incarnation.assetName));
244
- assets = [];
245
- let newAssets = [];
246
- for (let req of requestedAssets) {
247
- let epAsset = enterprise.assets.find(a => a.name == req.incarnation.assetName);
248
- if (epAsset) {
249
- assets.push(epAsset);
250
- }
251
- else {
252
- let newAsset = yield this.hackBuildAsset(req, enterprise);
253
- newAssets.push(newAsset);
254
- enterprise.assets.push(...newAssets);
255
- }
256
- }
257
- if (newAssets.length > 0) {
258
- let saveResult = yield this._codiacApi.Asset.tryCreateMany(newAssets);
259
- if (saveResult.error) {
260
- throw new contracts_2.CodiacError(`Error inserting missing enterprise assets [${newAssets.map(a => a.name).join(',')}]: ${saveResult.error.message || saveResult.message || ""}`, saveResult.error);
261
- }
262
- else if (!saveResult.success || !saveResult.successes || saveResult.successes.length == 0) {
263
- if (saveResult.failures && saveResult.failures.length > 0 && saveResult.failures.length < newAssets.length) {
264
- this.logger.debug(`Saving new assets yielded a partial failure.`);
265
- }
266
- throw new contracts_2.CodiacError(`Unable to save missing enterprise assets [${newAssets.map(a => a.name).join(',')}]: Returned failure without error. ${saveResult.message}`);
267
- }
268
- else {
269
- this.logger.debug(`Created missing assets: [${saveResult.successes.map(a => a.name).join(',')}]`);
270
- assets.push(...saveResult.successes);
271
- }
272
- }
273
- }
274
- }
275
- resolve(assets);
276
- }
277
- catch (err) {
278
- reject(err);
279
- }
280
- }));
281
- });
282
- }
283
- /** This is backwards - it should be impossible to have an asset binding to an asset that doesnt exist.
284
- * If somehow the project was still pointed to a since-deleted asset,
285
- * then it should still throw an error and allow the user to select an existing asset to bind/switch to.
286
- */
287
- hackBuildAsset(localDef, enterprise) {
288
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
289
- return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
290
- var _a, _b;
291
- try {
292
- let newAsset;
293
- let target;
294
- // no record for this asset in the enterprise yet.
295
- if (localDef.image.targets.length == 0) {
296
- // TODO: Use the default image target registry.
297
- // imgRegistry = new ImageRegistry("dockerhub", "https://index.docker.io/v1");
298
- target = new codiac_relay_contracts_1.RegistryTarget("default", EnterpriseContextualizer.DEFAULT_REGISTRY_URL);
299
- this.logger.detail(`No target image registry declared for image [${localDef.image.name}], using default at ${target.registryUrl}`);
300
- localDef.image.targets.push(target);
301
- }
302
- else {
303
- target = localDef.image.targets[0]; // <-- HACK!!! taking the first one. Confirm?
304
- }
305
- // COMMENTED OUT BECUASE let's just get it in there as a compositional entity
306
- // Go fetch the registry obj from the api
307
- // TODO: Consider making this a get-sert
308
- // let regCrit = <ImageRegistryCriteria>{ url: localDef.image.targets[0].registryUrl };
309
- // let imageRegResult = await this._codiacApi.ImageRegistry.tryReadMany(regCrit);
310
- // if (imageRegResult.error) {
311
- // throw new CodiacError(`Error retrieving ImageRegistry [${localDef.image.targets[0].registryUrl}] for image [${localDef.image.name}]: ${imageRegResult.error.message||imageRegResult.message||""}`, imageRegResult.error);
312
- // } else if (!imageRegResult.success || imageRegResult.output == undefined || imageRegResult.output.length == 0) {
313
- // throw new Error(`No registry currently exists with url: [${regCrit.url||""}] ${imageRegResult.message||""}`)
314
- // } else {
315
- // imgRegistry = imageRegResult.output[0];
316
- // let imgRegistry = new ImageRegistry(`${this._tenantCode}-${CloudProviderEnum}`, target.registryUrl, CloudProviderEnum.dockerHub, ImageRegistryTypes.DockerHub);
317
- let imgRegistry = {
318
- code: `${this._tenantCode}-${contracts_1.CloudProviderEnum}`,
319
- url: target.registryUrl,
320
- provider: contracts_1.CloudProviderEnum.dockerHub,
321
- type: contracts_1.ImageRegistryTypes.DockerHub
322
- };
323
- let audits = this.createAuditable();
324
- let img = Object.assign({ name: localDef.image.name, registry: imgRegistry }, audits);
325
- newAsset = Object.assign({ code: localDef.incarnation.assetName, name: localDef.incarnation.assetName, enterprise: enterprise.code, image: img, port: (_b = (_a = localDef.incarnation.port) !== null && _a !== void 0 ? _a : localDef.image.port) !== null && _b !== void 0 ? _b : 0, hasIngress: false, routedWithoutName: false }, audits);
326
- // TODO: Write to the enterprise? or throw? or ask?
327
- // }
328
- resolve(newAsset);
329
- }
330
- catch (err) {
331
- reject(err);
332
- }
333
- }));
334
- });
335
- }
336
- /** Selects a single ImageExport and a single incarnation of that image (aka: AssetBinding).
337
- * @param suppressConfirmations (Optional: defaults to false) Prevents confirmations of user-values that are remembered from prior runs.
338
- * @param preferredAssetName (Optional) Asset name to select if it applies to the given image and is currently remembered. User prompts will default to this if valid.
339
- */
340
- establishProjectAssetBinding(enterpriseCode, assets, projCfg, projCfgRepo, suppressConfirmations, preferredAssetName) {
341
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
342
- return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
343
- var _a, _b, _c, _d;
344
- try {
345
- let allowAddingNewAssets = true;
346
- // STEP 1: Establish the ImageExport to use.
347
- let image;
348
- if (projCfg.images && !_.isEmpty(projCfg.images)) {
349
- let images = _.keysIn(projCfg.images);
350
- if (images.length == 1) {
351
- image = projCfg.images[images[0]];
352
- }
353
- else if (images.length > 0) {
354
- // Prompt the user to select one.
355
- // TODO: Default to the one selected in a previous execution,
356
- // and remember the selection for next time.
357
- let selection = yield this.ui.promptSelect('imageName', 'Image you are executing this command for...', images);
358
- if (!selection)
359
- throw new Error(`No image selected`);
360
- image = projCfg.images[selection];
361
- }
362
- else {
363
- // This clause is impossible to reach (bc we already did a _.isEmpty check).
364
- throw new Error(`No image exports have been declared for this project; use "codiac images:add" to declare an image for export from this project.`);
365
- }
366
- }
367
- else { // No image exports defined for the project
368
- throw new Error(`No image exports have been declared for this project; use "codiac images:add" to declare an image for export from this project.`);
369
- }
370
- let validBindings = assets
371
- .filter(a => a.image.name == image.name)
372
- .map(a => new asset_binding_1.AssetBinding(enterpriseCode, a.name, a.port));
373
- // STEP 2: Establish the AssetBinding
374
- let binding;
375
- // a: See if we've already got one selected (via the project user config)
376
- let remembered;
377
- let found = (_c = (_b = (_a = this._projUserCfg) === null || _a === void 0 ? void 0 : _a.enterprise) === null || _b === void 0 ? void 0 : _b.assetBindings) === null || _c === void 0 ? void 0 : _c.filter(ab => ab.image.name == image.name);
378
- if (found && found.length > 0) {
379
- // Try to use preferred...
380
- if (preferredAssetName !== undefined && preferredAssetName !== "") {
381
- remembered = (_d = found.find(a => a.incarnation.assetName === preferredAssetName)) === null || _d === void 0 ? void 0 : _d.incarnation;
382
- }
383
- if (!remembered) {
384
- // Otherwise, just take the first valid binding we've remembered for that image
385
- remembered = found[0].incarnation;
386
- }
387
- }
388
- // a: Select and validate an existing binding
389
- if (remembered) {
390
- // We only care about the existing bindings we know are still valid in this enterprise
391
- // let existings = image.incarnations.filter(i => validBindings.find(v => v.enterprise == i.enterprise && v.assetName == i.assetName));
392
- if (validBindings.find(v => v.enterprise == remembered.enterprise && v.assetName == remembered.assetName)) {
393
- // confirm the remembered one only if they requested a selection
394
- if (!suppressConfirmations) {
395
- if (yield this.ui.promptConfirm("assetBinding", `Targeting asset: ${this.styler.bold(this.styler.hilite(remembered.enterprise + '/' + remembered.assetName))} ?`)) {
396
- binding = remembered;
397
- }
398
- }
399
- else {
400
- binding = remembered;
401
- }
402
- }
403
- // if (existings.length == 1) {
404
- // } else if (existings.length > 1) {
405
- // // select from existing
406
- // let choices = existings.map(e => e.assetName);
407
- // let selection = await this.ui.promptSelect("assetBinding", `Target asset (in enterprise: ${enterprise.code})...`, choices);
408
- // if (selection) binding = existings.find(a => a.assetName == selection);
409
- // }
410
- }
411
- // use preferred if it's valid (even tho it's not currently in proj user cfg)
412
- if (!binding) {
413
- binding = validBindings.find(b => b.assetName === preferredAssetName);
414
- }
415
- // b: Create a new Asset binding
416
- if (!binding) {
417
- let choices = validBindings.map((e, idx) => { return { name: e.assetName, value: idx }; });
418
- if (allowAddingNewAssets)
419
- choices.push({ name: EnterpriseContextualizer.CHOICE_VALUE_FOR_NEW, value: -1 });
420
- let selection = yield this.ui.promptSelect("assetBinding", `Target asset (in enterprise: ${enterpriseCode})...`, choices);
421
- if (!selection)
422
- throw new Error("Failed to select a target asset.");
423
- if (selection >= 0) {
424
- binding = validBindings[selection];
425
- }
426
- else {
427
- // Create a new Asset
428
- // TODO: Use the same UX code as asset:create
429
- let assetName = yield this.ui.prompt("asset", "Name for the Asset to be made from this image:", true, image.name);
430
- let assetCode = assetName; // TODO: Prompt with this default
431
- let assetPort = image.port || this.selectAvailableAssetPort(assets); // TODO: Prompt with this default
432
- let assetImg = yield this.createAssetImageRef(image);
433
- let newAsset = Object.assign({ enterprise: enterpriseCode, code: assetCode, name: assetName, image: assetImg, port: assetPort }, this.createAuditable());
434
- let createResult = yield this._codiacApi.Asset.tryCreate(newAsset);
435
- if (createResult.error)
436
- throw createResult.error;
437
- else if (!createResult.success || !createResult.output)
438
- throw new Error(`Failed creating new asset ${newAsset.name} in enterprise: ${newAsset.enterprise}: ${createResult.message}`);
439
- newAsset = createResult.output;
440
- this.logger.detail(`New Asset [${createResult.output.name}] Successfully created from image: [${createResult.output.image.name}] in enterprise [${createResult.output.enterprise}].`);
441
- binding = new asset_binding_1.AssetBinding(enterpriseCode, newAsset.name, newAsset.port);
442
- }
443
- }
444
- if (!binding)
445
- throw new Error("No asset binding was established.");
446
- // Write this selection to the proj user config
447
- if (!this._projUserCfg) {
448
- this._projUserCfg = new codiac_relay_contracts_1.ProjectUserConfig();
449
- }
450
- if (!this._projUserCfg.enterprise) {
451
- this._projUserCfg.enterprise = new codiac_relay_contracts_1.ProjectEnterpriseBinding(enterpriseCode);
452
- }
453
- if (!this._projUserCfg.enterprise.assetBindings)
454
- this._projUserCfg.enterprise.assetBindings = [];
455
- _.remove(this._projUserCfg.enterprise.assetBindings, ac => ac.image.name == image.name);
456
- this._projUserCfg.enterprise.assetBindings.push(new codiac_relay_contracts_1.AssetContext(image, binding));
457
- projCfgRepo.writeProjectUserConfig(this._projUserCfg);
458
- resolve({ image: image, incarnation: binding });
459
- }
460
- catch (err) {
461
- reject(err);
462
- }
463
- }));
464
- });
465
- }
466
- /** provdes a randpm port number that is not currently owned by any asset in the enterprise. */
467
- selectAvailableAssetPort(existingAssets) {
468
- let port = EnterpriseContextualizer.DEFAULT_ASSET_PORT_NUMBER;
469
- while (!port || existingAssets.find(a => a.port == port)) {
470
- port = _.random(1024, 65535, false);
471
- }
472
- return port;
473
- }
474
- /** Factory method for the image reference object on which an Asset is based. */
475
- createAssetImageRef(projectImage, targetEnvironment) {
476
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
477
- let registryEnv = targetEnvironment || "default";
478
- let registryTarget = projectImage.targets.find(t => t.environment == registryEnv);
479
- if (!registryTarget) {
480
- throw new Error(`The image export [${projectImage.name}] in the local project does not have a target registry declared for the [${registryEnv}] environment.`);
481
- }
482
- let pvdResult = yield this.relayClient.Call.getRegistryType({ registryUrl: registryTarget.registryUrl });
483
- if (pvdResult.error)
484
- throw pvdResult.error;
485
- if (pvdResult.output == undefined)
486
- throw new Error(`Did not recogize registry domain [${registryTarget.registryUrl}].`);
487
- let regInfo = pvdResult.output;
488
- // let regClient = this.regClientFactory.createForDomain(registryTarget.registryUrl);
489
- let regCode = "TODO-DERIVE-THE-IMAGE-REGISTRY-CODE"; // <----- HEY!!! We need to provide proper support of image registries by code name (eg: "dockerhub", "acr", "google", "amazon-ecr" etc)
490
- let reg = Object.assign({ code: regCode, url: registryTarget.registryUrl, provider: regInfo.provider, type: regInfo.type }, this.createAuditable());
491
- let scope = (projectImage.name.indexOf("/") >= 0) ? projectImage.name.split("/")[0] : undefined;
492
- let img = Object.assign({ name: projectImage.name, registry: reg, scope: scope }, this.createAuditable());
493
- return img;
494
- });
495
- }
496
- /** Simply wraps establishCabinet() to return a CabinetScope.
497
- * TODO: EITHER get rid of this method altogether and use Cabinet instead of CabinetScope
498
- * OR Add ClusterName to CabinetScope (it's redundant, but it's important for gathering k8s cluster context without requerying the api)
499
- * @param suppressConfirmations (Optional: defaults to false) Prevents confirmations of user-values that are remembered from prior runs.
500
- */
501
- establishCabinetContext(requestedCabinet, suppressConfirmations, requestedEnviro) {
502
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
503
- return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
504
- try {
505
- let cabinet = yield this.establishCabinet(requestedCabinet, suppressConfirmations, requestedEnviro);
506
- let cabCntx = new codiac_relay_contracts_1.CabinetScope(cabinet.enterpriseCode, cabinet.environment, cabinet.name);
507
- this.logger.trace(`Cabinet context`, cabCntx);
508
- resolve(cabCntx);
509
- }
510
- catch (err) {
511
- reject(err);
512
- }
513
- }));
514
- });
515
- }
516
- /** Selects from existing cabinets.
517
- * Defaults to the cabinet declared in the project user config.
518
- * DOES NOT lazily create new cabinets OR build cabinet infrastructure!
519
- * This method only selects an existing cabinet
520
- * (because cabinet scope - eg: enterprises, environments, and cabinets -
521
- * should only be created deliberately and explicitly by their respective cli commands).
522
- * @param suppressConfirmations (Optional: defaults to false) Prevents confirmations of user-values that are remembered from prior runs.
523
- */
524
- establishCabinet(requestedCabinet, suppressConfirmations, requestedEnviro) {
525
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
526
- return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
527
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
528
- try {
529
- let enterpriseCode = (_c = (_b = (_a = this._projUserCfg) === null || _a === void 0 ? void 0 : _a.enterprise) === null || _b === void 0 ? void 0 : _b.enterpriseCode) !== null && _c !== void 0 ? _c : (_d = this.userContext.currentEnterprise) === null || _d === void 0 ? void 0 : _d.enterprise;
530
- if (enterpriseCode === undefined) {
531
- throw new contracts_2.CodiacError(`Cannot establish cabinet context: no enterprise is in context for the current user.`);
532
- }
533
- let current = (_h = (_g = (_f = (_e = this._projUserCfg) === null || _e === void 0 ? void 0 : _e.enterprise) === null || _f === void 0 ? void 0 : _f.cabinet) === null || _g === void 0 ? void 0 : _g.cabinet) !== null && _h !== void 0 ? _h : (_j = this.userContext.currentEnterprise) === null || _j === void 0 ? void 0 : _j.cabinet;
534
- let cabName = requestedCabinet !== null && requestedCabinet !== void 0 ? requestedCabinet : current;
535
- // -----------
536
- // let eCntx = this._projUserCfg?.enterprise ?? this.userContext.currentEnterprise;
537
- // if (eCntx == undefined || (<ProjectEnterpriseBinding>eCntx).enterpriseCode == undefined || (<EnterprisePointer>eCntx).enterprise == undefined) {
538
- // throw new CodiacError(`Cannot establish cabinet context: no enterprise is in context for the current user.`);
539
- // }
540
- // // Remember any existing context...
541
- // let enterpriseCode = eCntx.enterpriseCode;
542
- // let current = eCntx.cabinet?.cabinet;
543
- // let cabName: string | undefined = requestedCabinet;
544
- // if (!cabName) { // THIS because we dont have the nullish operator...
545
- // cabName = current;
546
- // }
547
- // -----------
548
- // let env: Environment;
549
- // let crit: EnvironmentCriteria = { all: true };
550
- // let envResult = await this._codiacApi.Environment.tryReadMany(crit);
551
- // if (envResult.error) {
552
- // throw new CodiacError(`Error attempting to retrieve environments: ${envResult.error.message||envResult.message||""}`, envResult.error);
553
- // } else if (envResult.count == 0 || !envResult.output || envResult.output.length == 0) {
554
- // throw new CodiacError(`No environments found: ${envResult.message||""}`);
555
- // } else if (envResult.output.length == 1) {
556
- // env = envResult.output[0];
557
- // } else {
558
- // // TODO: Let the user select which one, and remember his choice as a default for next time.
559
- // env = envResult.output[0]; // <--- HACK!!!!
560
- // }
561
- // if (env.cabinets.length == 0) {
562
- // throw new CodiacError(`No cabinets found for environment [${env.code}]. Use 'cod cabinet:create' to create one.`);
563
- // } else if (env.cabinets.length == 1) {
564
- // cab = env.cabinets[0].name; // TODO: Consider a confirmation here that the -y attrib will skip
565
- // } else {
566
- // // TODO: Let the user select which one, and remember his choice as a default for next time.
567
- // cab = env.cabinets[0].name; // <--- HACK!!!!
568
- // }
569
- let cabinet;
570
- let crit = { enterpriseCode: enterpriseCode };
571
- if (requestedEnviro !== undefined && requestedEnviro !== "") {
572
- crit.environment = requestedEnviro;
573
- }
574
- let cabResult = yield this._codiacApi.Cabinet.tryReadMany(crit); // <--- TODO: Consider injecting a RootMap instance instead of making api hits.
575
- if (cabResult.error) {
576
- throw new contracts_2.CodiacError(`Error checking for cabinets in enterprise [${enterpriseCode}]: ${cabResult.message || ""}; ${cabResult.error.message || cabResult.error.stack}`, cabResult.error);
577
- }
578
- else if (!cabResult.output || cabResult.output.length == 0) {
579
- throw new contracts_2.CodiacError(`No cabinets found for enterprise [${enterpriseCode}]. Use 'cod cabinet:create' to create a new cabinet. ${cabResult.message || ""}`);
580
- }
581
- else {
582
- let cabs = cabResult.output;
583
- // HERE'S THE UX GAUNTLET...
584
- let selection;
585
- if (cabName) {
586
- // This is where we validate that the requested/remembered cabinet is indeed/still in the current enterprise.
587
- // let found = cabs.find(c => c.name == cabName);
588
- // let found = cabs.findIndex(c => c.name == cabName);
589
- selection = cabs.findIndex(c => c.name == cabName);
590
- if (selection < 0) {
591
- this.logger.notice(`Cabinet [${cabName}] was not found in enterprise [${enterpriseCode}].`);
592
- this.ui.userMessage(`Cabinet [${cabName}] was not found in enterprise [${enterpriseCode}].`);
593
- }
594
- }
595
- // CI/CD support here
596
- if (suppressConfirmations && cabName) {
597
- cabinet = cabs.find(f => f.name == cabName);
598
- }
599
- let choices;
600
- while (!cabinet) {
601
- if (!selection || selection < 0) {
602
- if (cabs.length == 1) { // We're adding this to prevent two steps
603
- selection = 0;
604
- }
605
- else { // Let them choose
606
- choices = choices || cabs.map((c, index) => { return { name: `${c.name}${(cabs[index].name == current) ? " (current)" : ""}`, value: index }; });
607
- selection = (yield this.ui.promptSelect('cabIndex', `Select a cabinet [enterprise: ${this.styler.hilite(enterpriseCode)}]`, choices));
608
- }
609
- }
610
- let confResult = yield this.ui.promptConfirm('confirm', `Target cabinet: ${this.styler.hilite(enterpriseCode + "/" + cabs[selection].name)}`);
611
- if (confResult === true) { // TODO: Refactor these 3 confirms into 1
612
- // if (await this._ui.promptConfirm("targetCab", `Target cabinet (y/n): ${inOrange(cabs[selection].name)}`)) { // TODO: Refactor these 3 confirms into 1
613
- cabinet = cabs[selection];
614
- }
615
- else if (cabs.length == 1) { // We're adding this so we can avoid what would be two steps
616
- this.logger.notice(`Operation cancelled. That was the only cabinet available in enterprise [${enterpriseCode}].`);
617
- this.ui.userMessage(`Operation cancelled. That was the only cabinet available in enterprise [${enterpriseCode}].`);
618
- this.exitCli(0);
619
- }
620
- else {
621
- selection = undefined;
622
- }
623
- }
624
- }
625
- // PROJECT CONTEXT
626
- if (this._projCfg && this._projCfgRepo) {
627
- if (!this._projUserCfg)
628
- this._projUserCfg = new codiac_relay_contracts_1.ProjectUserConfig();
629
- if (this._projUserCfg.enterprise === undefined || this._projUserCfg.enterprise.enterpriseCode !== enterpriseCode) {
630
- this._projUserCfg.enterprise = new codiac_relay_contracts_1.ProjectEnterpriseBinding(enterpriseCode);
631
- }
632
- // Are we sure we wanna set the exact current branch? what if we're inheriting this cabinet from our branch lineage?
633
- let branch = yield this._ops.gitCurrentBranchNameFor(this._ops.getConfigRoot());
634
- this._projUserCfg.enterprise.cabinet = new codiac_relay_contracts_2.BranchBinding(branch, enterpriseCode, cabinet.name);
635
- this._projCfgRepo.writeProjectUserConfig(this._projUserCfg);
636
- }
637
- // USER CONTEXT
638
- if (this.userContext.currentEnterprise === undefined || this.userContext.currentEnterprise.enterprise !== enterpriseCode) {
639
- this.userContext.currentEnterprise = new codiac_relay_contracts_1.EnterprisePointer(enterpriseCode);
640
- }
641
- this.userContext.currentEnterprise.cabinet = cabinet.name;
642
- this.userContext.enterpriseContexts[this._tenantCode] = this.userContext.currentEnterprise;
643
- this.userContextManager.writeUserContext(this.userContext);
644
- this.logger.trace(`Cabinet`, cabinet);
645
- // let cabCntx = new CabinetScope(cabinet.enterpriseCode, cabinet.environment, cabinet.name)
646
- // this.logger.trace(`Cabinet context`, cabCntx)
647
- resolve(cabinet);
648
- }
649
- catch (err) {
650
- reject(err);
651
- }
652
- }));
653
- });
654
- }
655
- createAuditable() {
656
- let stamp = new Date(Date.now());
657
- return {
658
- created: stamp,
659
- createdBy: this.userContext.userName,
660
- modified: stamp,
661
- modifiedBy: this.userContext.userName
662
- };
663
- }
664
- }
665
- exports.EnterpriseContextualizer = EnterpriseContextualizer;
666
- /** The value in a select list prompt designating the user's choice
667
- * to create a new record instead of selecting from the existing choices. */
668
- EnterpriseContextualizer.CHOICE_VALUE_FOR_NEW = "** create new **";
669
- EnterpriseContextualizer.DEFAULT_REGISTRY_URL = "https://index.docker.io/v1";
670
- EnterpriseContextualizer.DEFAULT_ASSET_PORT_NUMBER = 1787;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EnterpriseContextualizer = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const asset_binding_1 = require("../codiac-entities/asset-binding");
6
+ const _ = require("lodash");
7
+ const contracts_1 = require("../apis/codiac-api/contracts");
8
+ // import { Enterprise, Asset, Image, ImageRegistry, AssetCriteria, EnterpriseCriteria, Cabinet, CabinetCriteria, ImageOSTypesEnum, CloudProviderEnum, ImageRegistryTypes } from '@codiac.io/codiac-domain';
9
+ const codiac_relay_contracts_1 = require("@codiac.io/codiac-relay-contracts");
10
+ const codiac_relay_contracts_2 = require("@codiac.io/codiac-relay-contracts");
11
+ const contracts_2 = require("@codiac.io/codiac-common/contracts");
12
+ // export declare type EnterpriseContext = { enterpriseCode: string, assetBindings?: AssetContext[]|undefined };
13
+ // export declare type AssetContext = { image: ImageExport, incarnation: AssetBinding };
14
+ /** Establishes a single Enterprise Asset as which to deploy an ImageExport. */
15
+ class EnterpriseContextualizer {
16
+ constructor(_tenantCode, _ops, relayClient, _codiacApi, _projCfg, _projUserCfg, _projCfgRepo, userContext, userContextManager, ui, styler, exitCli, logger) {
17
+ this._tenantCode = _tenantCode;
18
+ this._ops = _ops;
19
+ this.relayClient = relayClient;
20
+ this._codiacApi = _codiacApi;
21
+ this._projCfg = _projCfg;
22
+ this._projUserCfg = _projUserCfg;
23
+ this._projCfgRepo = _projCfgRepo;
24
+ this.userContext = userContext;
25
+ this.userContextManager = userContextManager;
26
+ this.ui = ui;
27
+ this.styler = styler;
28
+ this.exitCli = exitCli;
29
+ this.logger = logger;
30
+ this.takeDefaults = false;
31
+ }
32
+ /** Interacts with user to select an existing enterprise (or create one if none exist),
33
+ * and persists it in the project user config.
34
+ * NOTE: Clears Asset context if the user switches enterprises,
35
+ * or keeps original with orignal asset context if user selects it. */
36
+ establishEnterprise(requestedEnterpriseCode) {
37
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
38
+ return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
39
+ var _a, _b, _c, _d, _e;
40
+ try {
41
+ let eResult = yield this._codiacApi.Enterprise.tryReadMany({ all: true });
42
+ if (eResult.error)
43
+ throw new contracts_2.CodiacError(`Error reading enterprises: ${eResult.message}; ${eResult.error.message}`, eResult.error);
44
+ if (!eResult.output || eResult.output.length == 0) {
45
+ throw new contracts_2.CodiacError(`This tenant [${this._tenantCode}] does not have any enterprises defined. You need to create one to continue.`);
46
+ // TODO: The contextualizer should walk them thru the enterprise setup.
47
+ // eCode = await cli.prompt(`Enter a code for the enterprise (${eCode})`);
48
+ // eCode = eCode.toLowercase().replace(/[^A-Za-z0-9-_]/g, "");
49
+ // // TODO: We might use one more conf here to let em check for stray keystrokes (we enterprise codes are immutable)
50
+ // let ep = new Enterprise(eCode);
51
+ // let createResult = await this._codiacApi.Enterprise.tryCreate(ep);
52
+ // if (createResult.Error) throw new CodiacError(`Error creating new enterprise [${ep.code}]: ${createResult.message||""}; ${createResult.error.message}`, createResult.error);
53
+ }
54
+ // -------------------------------------------------------------------
55
+ // !!!! HELP !!!!
56
+ // We're drowning in IF statments here!!
57
+ //
58
+ // It's the end of a looong day of a LOT of coding solutions,
59
+ // and I cant summon an elegant path thru this...
60
+ //
61
+ // TODO: REFACTOR THIS INTO SOMETHING THAT LOOKS PROFESSIONAL.
62
+ // -------------------------------------------------------------------
63
+ // GET: proj THEN user
64
+ let originalCode = (_c = (_b = (_a = this._projUserCfg) === null || _a === void 0 ? void 0 : _a.enterprise) === null || _b === void 0 ? void 0 : _b.enterpriseCode) !== null && _c !== void 0 ? _c : (_e = (_d = this.userContext) === null || _d === void 0 ? void 0 : _d.currentEnterprise) === null || _e === void 0 ? void 0 : _e.enterprise;
65
+ // Validate the requested enterprise
66
+ let enterprise;
67
+ if (requestedEnterpriseCode) {
68
+ enterprise = eResult.output.find(e => e.code == requestedEnterpriseCode);
69
+ }
70
+ // Validate the enterprise set in the current project user context
71
+ if (!enterprise) {
72
+ if (originalCode !== undefined && originalCode !== "") {
73
+ enterprise = eResult.output.find(e => e.code == originalCode);
74
+ }
75
+ }
76
+ // Select the one and only
77
+ if (!enterprise && eResult.output.length === 1) {
78
+ enterprise = eResult.output[0];
79
+ }
80
+ // Prompt the user to select from the list of enterprises (for this tenant)
81
+ let attempts = 4;
82
+ while (!enterprise && attempts > 0) {
83
+ let eCode = yield this.ui.promptSelect("enterpriseCode", "Select a target enterprise:", eResult.output.map(e => e.code));
84
+ if (eCode)
85
+ enterprise = eResult.output.find(e => e.code == eCode);
86
+ attempts--;
87
+ }
88
+ if (!enterprise)
89
+ throw new Error("Failed to select a target enterprise.");
90
+ // We've got one now.
91
+ if (originalCode !== undefined && originalCode !== "" && enterprise.code == originalCode) {
92
+ // same as original. Do nothing
93
+ }
94
+ else {
95
+ // new enterprise context
96
+ this.userContext.currentEnterprise = { enterprise: enterprise.code };
97
+ this.userContext.enterpriseContexts[this._tenantCode] = this.userContext.currentEnterprise;
98
+ yield this.userContextManager.writeUserContext(this.userContext);
99
+ // SET: user THEN proj
100
+ if (this._projUserCfg && this._projCfgRepo) {
101
+ this._projUserCfg.enterprise = new codiac_relay_contracts_1.ProjectEnterpriseBinding(this.userContext.currentEnterprise.enterprise);
102
+ yield this._projCfgRepo.writeProjectUserConfig(this._projUserCfg);
103
+ }
104
+ }
105
+ resolve(enterprise);
106
+ }
107
+ catch (err) {
108
+ reject(err);
109
+ }
110
+ }));
111
+ });
112
+ }
113
+ establishEnterpriseAsset(enterprise, suppressConfirmations) {
114
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
115
+ return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
116
+ var _a, _b;
117
+ try {
118
+ let assetName;
119
+ // TODO: Consider using asset.code instead.
120
+ // assetName = this._projUserCfg?.enterprise?.assetBindings ? this._projUserCfg?.enterprise?.assetBindings[0].incarnation?.assetName ?? this.userContext.currentEnterprise?.asset : this.userContext.currentEnterprise?.asset;
121
+ // WITH PROJECT CONTEXT
122
+ if (this._projCfg && this._projCfgRepo && (this._projCfg.images !== undefined && Object.keys(this._projCfg.images).length > 0)) {
123
+ let assetContext = yield this.establishProjectAssetBinding(enterprise.code, enterprise.assets, this._projCfg, this._projCfgRepo, suppressConfirmations, (_a = this.userContext.currentEnterprise) === null || _a === void 0 ? void 0 : _a.asset);
124
+ assetName = assetContext.incarnation.assetName;
125
+ yield this.validateImageOs(assetContext, enterprise.assets);
126
+ // TODO: This should come BEFORE establishBinding. This will require the new assetContextSwitching.
127
+ // TODO: validate that requested assets exist. Dont auto-create them.
128
+ // await this.validateAssetBinding(assetContext); // <---- BUT THIS SHD BE PART OF this.establishBinding()
129
+ // which should include:
130
+ // throw new CodiacError(`Requested Asset [${req.incarnation.assetName}] does not exist in the enterprise [${req.incarnation.enterprise}].`)
131
+ let assets = yield this.createMissingAssets(enterprise.code, [assetContext]);
132
+ }
133
+ // WITH USER CONTEXT
134
+ if (assetName === undefined || assetName === "") {
135
+ if (this.userContext.currentEnterprise == undefined || this.userContext.currentEnterprise.enterprise !== enterprise.code) {
136
+ // Make sure we are pointed to the given enterprise
137
+ this.userContext.currentEnterprise = new codiac_relay_contracts_1.EnterprisePointer(enterprise.code);
138
+ }
139
+ if (this.userContext.currentEnterprise.asset !== undefined && this.userContext.currentEnterprise.asset !== "") {
140
+ // Make sure current asset still exists in the enterprise record.
141
+ assetName = (_b = enterprise.assets.find(a => a.name === this.userContext.currentEnterprise.asset)) === null || _b === void 0 ? void 0 : _b.name;
142
+ }
143
+ if (assetName === undefined || assetName === "") {
144
+ // Prompt the user directly
145
+ let choices = enterprise.assets.map(a => { return { name: a.name, value: a.name }; });
146
+ assetName = (yield this.ui.promptSelect("assetName", "Asset: ", choices));
147
+ }
148
+ }
149
+ else {
150
+ // Save whatever was selected in the prject context
151
+ }
152
+ resolve(assetName);
153
+ }
154
+ catch (err) {
155
+ reject(err);
156
+ }
157
+ }));
158
+ });
159
+ }
160
+ /** This method WAS a copy from config:add */
161
+ promptForTargetFile(enterprise, asset, defaultValue) {
162
+ var _a;
163
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
164
+ try {
165
+ // 1. Build choices
166
+ let crit = {
167
+ asset: asset,
168
+ enterprise: enterprise,
169
+ type: contracts_1.ConfigDefTypesEnum.file
170
+ };
171
+ // let configs = await this._codiacApi.ConfigDef.readMany(crit, { throwNotFound: false, projection: { pathsExcluded: [], pathsIncluded: ["settings", "targetFile", "format"] } })
172
+ let cfgResult = yield this._codiacApi.Call.getConfigDefs(crit, { projection: { pathsExcluded: [], pathsIncluded: ["settings", "targetFile", "format"] } });
173
+ if (cfgResult.error)
174
+ throw cfgResult.error;
175
+ let configs = (_a = cfgResult.output) !== null && _a !== void 0 ? _a : [];
176
+ if (configs.length === 0) {
177
+ throw new Error(`The asset ${asset} has no config files defined.`);
178
+ }
179
+ let choices = configs.map(c => { return { name: c.targetFile, value: c.targetFile }; });
180
+ // 2. Select the one-and-only
181
+ /** If we changed the input they provided, we need their confirmation (whether or not they said takeDefaults) */
182
+ let changedUserInput = false;
183
+ if (choices.length === 1) {
184
+ if (defaultValue != choices[0].value) {
185
+ changedUserInput = !_.isEmpty(defaultValue);
186
+ defaultValue = choices[0].value;
187
+ this.ui.userMessage(`1 config file found: ${this.styler.hilite(defaultValue)}`);
188
+ }
189
+ }
190
+ // 3. Confirm and/or Select
191
+ let targetFile;
192
+ let keep = this.takeDefaults;
193
+ if (defaultValue && choices.find(x => x.value == defaultValue) && (changedUserInput || !this.takeDefaults)) {
194
+ keep = yield this.ui.promptConfirm("keepTargetFile", `File: ${this.styler.hilite(defaultValue)}`, true);
195
+ }
196
+ targetFile = (defaultValue && keep === true) ? defaultValue : (yield this.ui.promptSelect("fileExisting", "File: ", choices));
197
+ return targetFile;
198
+ }
199
+ catch (err) {
200
+ throw err;
201
+ }
202
+ });
203
+ }
204
+ /** Throws when the image os does not match that of the image in the remote enterprise asset record.
205
+ *
206
+ * Throws any errors. */
207
+ validateImageOs(localBinding, enterpriseAssets) {
208
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
209
+ return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
210
+ var _a, _b, _c;
211
+ try {
212
+ let assetRecord = enterpriseAssets.find(a => a.name == localBinding.incarnation.assetName);
213
+ if ((assetRecord === null || assetRecord === void 0 ? void 0 : assetRecord.image) && assetRecord.image.os && (((_a = localBinding.image.os) === null || _a === void 0 ? void 0 : _a.toLowerCase()) != assetRecord.image.os.toLowerCase())) {
214
+ throw new Error(`The image callout in the official enterprise asset record [asset: ${assetRecord.name}, enterprise: ${assetRecord.enterprise}] is showing a different OS [${(_b = assetRecord.image.os) !== null && _b !== void 0 ? _b : "undefined"}] than the one in this project of [${(_c = localBinding.image.os) !== null && _c !== void 0 ? _c : "undefined"}]. Please reconcile this issue.`);
215
+ }
216
+ resolve();
217
+ }
218
+ catch (err) {
219
+ reject(err);
220
+ }
221
+ }));
222
+ });
223
+ }
224
+ /** TODO: Ensures that the given assets exist in the api. */
225
+ createMissingAssets(enterpriseCode, requestedAssets) {
226
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
227
+ return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
228
+ try {
229
+ let assets = [];
230
+ let crit = { code: enterpriseCode };
231
+ let assetResult = yield this._codiacApi.Enterprise.tryReadMany(crit);
232
+ if (assetResult.error) {
233
+ throw new contracts_2.CodiacError(`Error querying enterprise to check for existing assets: ${assetResult.message || ""}; ${assetResult.error.message || ""}`, assetResult.error);
234
+ }
235
+ else if (!assetResult.success || !assetResult.output) {
236
+ throw new contracts_2.CodiacError(`Unable to verify assets: enterprise [${crit.code}] was not found.`);
237
+ }
238
+ else {
239
+ let enterprise = assetResult.output[0];
240
+ let assets = enterprise.assets; // Deploy all of em unless the caller requested specific ones.
241
+ if (requestedAssets && requestedAssets.length > 0) {
242
+ // Get only the requested ones...
243
+ // assets = enterprise.assets.filter(a => requestedAssets.find(ac => a.name == ac.incarnation.assetName));
244
+ assets = [];
245
+ let newAssets = [];
246
+ for (let req of requestedAssets) {
247
+ let epAsset = enterprise.assets.find(a => a.name == req.incarnation.assetName);
248
+ if (epAsset) {
249
+ assets.push(epAsset);
250
+ }
251
+ else {
252
+ let newAsset = yield this.hackBuildAsset(req, enterprise);
253
+ newAssets.push(newAsset);
254
+ enterprise.assets.push(...newAssets);
255
+ }
256
+ }
257
+ if (newAssets.length > 0) {
258
+ let saveResult = yield this._codiacApi.Asset.tryCreateMany(newAssets);
259
+ if (saveResult.error) {
260
+ throw new contracts_2.CodiacError(`Error inserting missing enterprise assets [${newAssets.map(a => a.name).join(',')}]: ${saveResult.error.message || saveResult.message || ""}`, saveResult.error);
261
+ }
262
+ else if (!saveResult.success || !saveResult.successes || saveResult.successes.length == 0) {
263
+ if (saveResult.failures && saveResult.failures.length > 0 && saveResult.failures.length < newAssets.length) {
264
+ this.logger.debug(`Saving new assets yielded a partial failure.`);
265
+ }
266
+ throw new contracts_2.CodiacError(`Unable to save missing enterprise assets [${newAssets.map(a => a.name).join(',')}]: Returned failure without error. ${saveResult.message}`);
267
+ }
268
+ else {
269
+ this.logger.debug(`Created missing assets: [${saveResult.successes.map(a => a.name).join(',')}]`);
270
+ assets.push(...saveResult.successes);
271
+ }
272
+ }
273
+ }
274
+ }
275
+ resolve(assets);
276
+ }
277
+ catch (err) {
278
+ reject(err);
279
+ }
280
+ }));
281
+ });
282
+ }
283
+ /** This is backwards - it should be impossible to have an asset binding to an asset that doesnt exist.
284
+ * If somehow the project was still pointed to a since-deleted asset,
285
+ * then it should still throw an error and allow the user to select an existing asset to bind/switch to.
286
+ */
287
+ hackBuildAsset(localDef, enterprise) {
288
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
289
+ return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
290
+ var _a, _b;
291
+ try {
292
+ let newAsset;
293
+ let target;
294
+ // no record for this asset in the enterprise yet.
295
+ if (localDef.image.targets.length == 0) {
296
+ // TODO: Use the default image target registry.
297
+ // imgRegistry = new ImageRegistry("dockerhub", "https://index.docker.io/v1");
298
+ target = new codiac_relay_contracts_1.RegistryTarget("default", EnterpriseContextualizer.DEFAULT_REGISTRY_URL);
299
+ this.logger.detail(`No target image registry declared for image [${localDef.image.name}], using default at ${target.registryUrl}`);
300
+ localDef.image.targets.push(target);
301
+ }
302
+ else {
303
+ target = localDef.image.targets[0]; // <-- HACK!!! taking the first one. Confirm?
304
+ }
305
+ // COMMENTED OUT BECUASE let's just get it in there as a compositional entity
306
+ // Go fetch the registry obj from the api
307
+ // TODO: Consider making this a get-sert
308
+ // let regCrit = <ImageRegistryCriteria>{ url: localDef.image.targets[0].registryUrl };
309
+ // let imageRegResult = await this._codiacApi.ImageRegistry.tryReadMany(regCrit);
310
+ // if (imageRegResult.error) {
311
+ // throw new CodiacError(`Error retrieving ImageRegistry [${localDef.image.targets[0].registryUrl}] for image [${localDef.image.name}]: ${imageRegResult.error.message||imageRegResult.message||""}`, imageRegResult.error);
312
+ // } else if (!imageRegResult.success || imageRegResult.output == undefined || imageRegResult.output.length == 0) {
313
+ // throw new Error(`No registry currently exists with url: [${regCrit.url||""}] ${imageRegResult.message||""}`)
314
+ // } else {
315
+ // imgRegistry = imageRegResult.output[0];
316
+ // let imgRegistry = new ImageRegistry(`${this._tenantCode}-${CloudProviderEnum}`, target.registryUrl, CloudProviderEnum.dockerHub, ImageRegistryTypes.DockerHub);
317
+ let imgRegistry = {
318
+ code: `${this._tenantCode}-${contracts_1.CloudProviderEnum}`,
319
+ url: target.registryUrl,
320
+ provider: contracts_1.CloudProviderEnum.dockerHub,
321
+ type: contracts_1.ImageRegistryTypes.DockerHub
322
+ };
323
+ let audits = this.createAuditable();
324
+ let img = Object.assign({ name: localDef.image.name, registry: imgRegistry }, audits);
325
+ newAsset = Object.assign({ code: localDef.incarnation.assetName, name: localDef.incarnation.assetName, enterprise: enterprise.code, image: img, port: (_b = (_a = localDef.incarnation.port) !== null && _a !== void 0 ? _a : localDef.image.port) !== null && _b !== void 0 ? _b : 0, hasIngress: false, routedWithoutName: false }, audits);
326
+ // TODO: Write to the enterprise? or throw? or ask?
327
+ // }
328
+ resolve(newAsset);
329
+ }
330
+ catch (err) {
331
+ reject(err);
332
+ }
333
+ }));
334
+ });
335
+ }
336
+ /** Selects a single ImageExport and a single incarnation of that image (aka: AssetBinding).
337
+ * @param suppressConfirmations (Optional: defaults to false) Prevents confirmations of user-values that are remembered from prior runs.
338
+ * @param preferredAssetName (Optional) Asset name to select if it applies to the given image and is currently remembered. User prompts will default to this if valid.
339
+ */
340
+ establishProjectAssetBinding(enterpriseCode, assets, projCfg, projCfgRepo, suppressConfirmations, preferredAssetName) {
341
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
342
+ return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
343
+ var _a, _b, _c, _d;
344
+ try {
345
+ let allowAddingNewAssets = true;
346
+ // STEP 1: Establish the ImageExport to use.
347
+ let image;
348
+ if (projCfg.images && !_.isEmpty(projCfg.images)) {
349
+ let images = _.keysIn(projCfg.images);
350
+ if (images.length == 1) {
351
+ image = projCfg.images[images[0]];
352
+ }
353
+ else if (images.length > 0) {
354
+ // Prompt the user to select one.
355
+ // TODO: Default to the one selected in a previous execution,
356
+ // and remember the selection for next time.
357
+ let selection = yield this.ui.promptSelect('imageName', 'Image you are executing this command for...', images);
358
+ if (!selection)
359
+ throw new Error(`No image selected`);
360
+ image = projCfg.images[selection];
361
+ }
362
+ else {
363
+ // This clause is impossible to reach (bc we already did a _.isEmpty check).
364
+ throw new Error(`No image exports have been declared for this project; use "codiac images:add" to declare an image for export from this project.`);
365
+ }
366
+ }
367
+ else { // No image exports defined for the project
368
+ throw new Error(`No image exports have been declared for this project; use "codiac images:add" to declare an image for export from this project.`);
369
+ }
370
+ let validBindings = assets
371
+ .filter(a => a.image.name == image.name)
372
+ .map(a => new asset_binding_1.AssetBinding(enterpriseCode, a.name, a.port));
373
+ // STEP 2: Establish the AssetBinding
374
+ let binding;
375
+ // a: See if we've already got one selected (via the project user config)
376
+ let remembered;
377
+ let found = (_c = (_b = (_a = this._projUserCfg) === null || _a === void 0 ? void 0 : _a.enterprise) === null || _b === void 0 ? void 0 : _b.assetBindings) === null || _c === void 0 ? void 0 : _c.filter(ab => ab.image.name == image.name);
378
+ if (found && found.length > 0) {
379
+ // Try to use preferred...
380
+ if (preferredAssetName !== undefined && preferredAssetName !== "") {
381
+ remembered = (_d = found.find(a => a.incarnation.assetName === preferredAssetName)) === null || _d === void 0 ? void 0 : _d.incarnation;
382
+ }
383
+ if (!remembered) {
384
+ // Otherwise, just take the first valid binding we've remembered for that image
385
+ remembered = found[0].incarnation;
386
+ }
387
+ }
388
+ // a: Select and validate an existing binding
389
+ if (remembered) {
390
+ // We only care about the existing bindings we know are still valid in this enterprise
391
+ // let existings = image.incarnations.filter(i => validBindings.find(v => v.enterprise == i.enterprise && v.assetName == i.assetName));
392
+ if (validBindings.find(v => v.enterprise == remembered.enterprise && v.assetName == remembered.assetName)) {
393
+ // confirm the remembered one only if they requested a selection
394
+ if (!suppressConfirmations) {
395
+ if (yield this.ui.promptConfirm("assetBinding", `Targeting asset: ${this.styler.bold(this.styler.hilite(remembered.enterprise + '/' + remembered.assetName))} ?`)) {
396
+ binding = remembered;
397
+ }
398
+ }
399
+ else {
400
+ binding = remembered;
401
+ }
402
+ }
403
+ // if (existings.length == 1) {
404
+ // } else if (existings.length > 1) {
405
+ // // select from existing
406
+ // let choices = existings.map(e => e.assetName);
407
+ // let selection = await this.ui.promptSelect("assetBinding", `Target asset (in enterprise: ${enterprise.code})...`, choices);
408
+ // if (selection) binding = existings.find(a => a.assetName == selection);
409
+ // }
410
+ }
411
+ // use preferred if it's valid (even tho it's not currently in proj user cfg)
412
+ if (!binding) {
413
+ binding = validBindings.find(b => b.assetName === preferredAssetName);
414
+ }
415
+ // b: Create a new Asset binding
416
+ if (!binding) {
417
+ let choices = validBindings.map((e, idx) => { return { name: e.assetName, value: idx }; });
418
+ if (allowAddingNewAssets)
419
+ choices.push({ name: EnterpriseContextualizer.CHOICE_VALUE_FOR_NEW, value: -1 });
420
+ let selection = yield this.ui.promptSelect("assetBinding", `Target asset (in enterprise: ${enterpriseCode})...`, choices);
421
+ if (!selection)
422
+ throw new Error("Failed to select a target asset.");
423
+ if (selection >= 0) {
424
+ binding = validBindings[selection];
425
+ }
426
+ else {
427
+ // Create a new Asset
428
+ // TODO: Use the same UX code as asset:create
429
+ let assetName = yield this.ui.prompt("asset", "Name for the Asset to be made from this image:", true, image.name);
430
+ let assetCode = assetName; // TODO: Prompt with this default
431
+ let assetPort = image.port || this.selectAvailableAssetPort(assets); // TODO: Prompt with this default
432
+ let assetImg = yield this.createAssetImageRef(image);
433
+ let newAsset = Object.assign({ enterprise: enterpriseCode, code: assetCode, name: assetName, image: assetImg, port: assetPort }, this.createAuditable());
434
+ let createResult = yield this._codiacApi.Asset.tryCreate(newAsset);
435
+ if (createResult.error)
436
+ throw createResult.error;
437
+ else if (!createResult.success || !createResult.output)
438
+ throw new Error(`Failed creating new asset ${newAsset.name} in enterprise: ${newAsset.enterprise}: ${createResult.message}`);
439
+ newAsset = createResult.output;
440
+ this.logger.detail(`New Asset [${createResult.output.name}] Successfully created from image: [${createResult.output.image.name}] in enterprise [${createResult.output.enterprise}].`);
441
+ binding = new asset_binding_1.AssetBinding(enterpriseCode, newAsset.name, newAsset.port);
442
+ }
443
+ }
444
+ if (!binding)
445
+ throw new Error("No asset binding was established.");
446
+ // Write this selection to the proj user config
447
+ if (!this._projUserCfg) {
448
+ this._projUserCfg = new codiac_relay_contracts_1.ProjectUserConfig();
449
+ }
450
+ if (!this._projUserCfg.enterprise) {
451
+ this._projUserCfg.enterprise = new codiac_relay_contracts_1.ProjectEnterpriseBinding(enterpriseCode);
452
+ }
453
+ if (!this._projUserCfg.enterprise.assetBindings)
454
+ this._projUserCfg.enterprise.assetBindings = [];
455
+ _.remove(this._projUserCfg.enterprise.assetBindings, ac => ac.image.name == image.name);
456
+ this._projUserCfg.enterprise.assetBindings.push(new codiac_relay_contracts_1.AssetContext(image, binding));
457
+ projCfgRepo.writeProjectUserConfig(this._projUserCfg);
458
+ resolve({ image: image, incarnation: binding });
459
+ }
460
+ catch (err) {
461
+ reject(err);
462
+ }
463
+ }));
464
+ });
465
+ }
466
+ /** provdes a randpm port number that is not currently owned by any asset in the enterprise. */
467
+ selectAvailableAssetPort(existingAssets) {
468
+ let port = EnterpriseContextualizer.DEFAULT_ASSET_PORT_NUMBER;
469
+ while (!port || existingAssets.find(a => a.port == port)) {
470
+ port = _.random(1024, 65535, false);
471
+ }
472
+ return port;
473
+ }
474
+ /** Factory method for the image reference object on which an Asset is based. */
475
+ createAssetImageRef(projectImage, targetEnvironment) {
476
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
477
+ let registryEnv = targetEnvironment || "default";
478
+ let registryTarget = projectImage.targets.find(t => t.environment == registryEnv);
479
+ if (!registryTarget) {
480
+ throw new Error(`The image export [${projectImage.name}] in the local project does not have a target registry declared for the [${registryEnv}] environment.`);
481
+ }
482
+ let pvdResult = yield this.relayClient.Call.getRegistryType({ registryUrl: registryTarget.registryUrl });
483
+ if (pvdResult.error)
484
+ throw pvdResult.error;
485
+ if (pvdResult.output == undefined)
486
+ throw new Error(`Did not recogize registry domain [${registryTarget.registryUrl}].`);
487
+ let regInfo = pvdResult.output;
488
+ // let regClient = this.regClientFactory.createForDomain(registryTarget.registryUrl);
489
+ let regCode = "TODO-DERIVE-THE-IMAGE-REGISTRY-CODE"; // <----- HEY!!! We need to provide proper support of image registries by code name (eg: "dockerhub", "acr", "google", "amazon-ecr" etc)
490
+ let reg = Object.assign({ code: regCode, url: registryTarget.registryUrl, provider: regInfo.provider, type: regInfo.type }, this.createAuditable());
491
+ let scope = (projectImage.name.indexOf("/") >= 0) ? projectImage.name.split("/")[0] : undefined;
492
+ let img = Object.assign({ name: projectImage.name, registry: reg, scope: scope }, this.createAuditable());
493
+ return img;
494
+ });
495
+ }
496
+ /** Simply wraps establishCabinet() to return a CabinetScope.
497
+ * TODO: EITHER get rid of this method altogether and use Cabinet instead of CabinetScope
498
+ * OR Add ClusterName to CabinetScope (it's redundant, but it's important for gathering k8s cluster context without requerying the api)
499
+ * @param suppressConfirmations (Optional: defaults to false) Prevents confirmations of user-values that are remembered from prior runs.
500
+ */
501
+ establishCabinetContext(requestedCabinet, suppressConfirmations, requestedEnviro) {
502
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
503
+ return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
504
+ try {
505
+ let cabinet = yield this.establishCabinet(requestedCabinet, suppressConfirmations, requestedEnviro);
506
+ let cabCntx = new codiac_relay_contracts_1.CabinetScope(cabinet.enterpriseCode, cabinet.environment, cabinet.name);
507
+ this.logger.trace(`Cabinet context`, cabCntx);
508
+ resolve(cabCntx);
509
+ }
510
+ catch (err) {
511
+ reject(err);
512
+ }
513
+ }));
514
+ });
515
+ }
516
+ /** Selects from existing cabinets.
517
+ * Defaults to the cabinet declared in the project user config.
518
+ * DOES NOT lazily create new cabinets OR build cabinet infrastructure!
519
+ * This method only selects an existing cabinet
520
+ * (because cabinet scope - eg: enterprises, environments, and cabinets -
521
+ * should only be created deliberately and explicitly by their respective cli commands).
522
+ * @param suppressConfirmations (Optional: defaults to false) Prevents confirmations of user-values that are remembered from prior runs.
523
+ */
524
+ establishCabinet(requestedCabinet, suppressConfirmations, requestedEnviro) {
525
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
526
+ return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
527
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
528
+ try {
529
+ let enterpriseCode = (_c = (_b = (_a = this._projUserCfg) === null || _a === void 0 ? void 0 : _a.enterprise) === null || _b === void 0 ? void 0 : _b.enterpriseCode) !== null && _c !== void 0 ? _c : (_d = this.userContext.currentEnterprise) === null || _d === void 0 ? void 0 : _d.enterprise;
530
+ if (enterpriseCode === undefined) {
531
+ throw new contracts_2.CodiacError(`Cannot establish cabinet context: no enterprise is in context for the current user.`);
532
+ }
533
+ let current = (_h = (_g = (_f = (_e = this._projUserCfg) === null || _e === void 0 ? void 0 : _e.enterprise) === null || _f === void 0 ? void 0 : _f.cabinet) === null || _g === void 0 ? void 0 : _g.cabinet) !== null && _h !== void 0 ? _h : (_j = this.userContext.currentEnterprise) === null || _j === void 0 ? void 0 : _j.cabinet;
534
+ let cabName = requestedCabinet !== null && requestedCabinet !== void 0 ? requestedCabinet : current;
535
+ // -----------
536
+ // let eCntx = this._projUserCfg?.enterprise ?? this.userContext.currentEnterprise;
537
+ // if (eCntx == undefined || (<ProjectEnterpriseBinding>eCntx).enterpriseCode == undefined || (<EnterprisePointer>eCntx).enterprise == undefined) {
538
+ // throw new CodiacError(`Cannot establish cabinet context: no enterprise is in context for the current user.`);
539
+ // }
540
+ // // Remember any existing context...
541
+ // let enterpriseCode = eCntx.enterpriseCode;
542
+ // let current = eCntx.cabinet?.cabinet;
543
+ // let cabName: string | undefined = requestedCabinet;
544
+ // if (!cabName) { // THIS because we dont have the nullish operator...
545
+ // cabName = current;
546
+ // }
547
+ // -----------
548
+ // let env: Environment;
549
+ // let crit: EnvironmentCriteria = { all: true };
550
+ // let envResult = await this._codiacApi.Environment.tryReadMany(crit);
551
+ // if (envResult.error) {
552
+ // throw new CodiacError(`Error attempting to retrieve environments: ${envResult.error.message||envResult.message||""}`, envResult.error);
553
+ // } else if (envResult.count == 0 || !envResult.output || envResult.output.length == 0) {
554
+ // throw new CodiacError(`No environments found: ${envResult.message||""}`);
555
+ // } else if (envResult.output.length == 1) {
556
+ // env = envResult.output[0];
557
+ // } else {
558
+ // // TODO: Let the user select which one, and remember his choice as a default for next time.
559
+ // env = envResult.output[0]; // <--- HACK!!!!
560
+ // }
561
+ // if (env.cabinets.length == 0) {
562
+ // throw new CodiacError(`No cabinets found for environment [${env.code}]. Use 'cod cabinet:create' to create one.`);
563
+ // } else if (env.cabinets.length == 1) {
564
+ // cab = env.cabinets[0].name; // TODO: Consider a confirmation here that the -y attrib will skip
565
+ // } else {
566
+ // // TODO: Let the user select which one, and remember his choice as a default for next time.
567
+ // cab = env.cabinets[0].name; // <--- HACK!!!!
568
+ // }
569
+ let cabinet;
570
+ let crit = { enterpriseCode: enterpriseCode };
571
+ if (requestedEnviro !== undefined && requestedEnviro !== "") {
572
+ crit.environment = requestedEnviro;
573
+ }
574
+ let cabResult = yield this._codiacApi.Cabinet.tryReadMany(crit); // <--- TODO: Consider injecting a RootMap instance instead of making api hits.
575
+ if (cabResult.error) {
576
+ throw new contracts_2.CodiacError(`Error checking for cabinets in enterprise [${enterpriseCode}]: ${cabResult.message || ""}; ${cabResult.error.message || cabResult.error.stack}`, cabResult.error);
577
+ }
578
+ else if (!cabResult.output || cabResult.output.length == 0) {
579
+ throw new contracts_2.CodiacError(`No cabinets found for enterprise [${enterpriseCode}]. Use 'cod cabinet:create' to create a new cabinet. ${cabResult.message || ""}`);
580
+ }
581
+ else {
582
+ let cabs = cabResult.output;
583
+ // HERE'S THE UX GAUNTLET...
584
+ let selection;
585
+ if (cabName) {
586
+ // This is where we validate that the requested/remembered cabinet is indeed/still in the current enterprise.
587
+ // let found = cabs.find(c => c.name == cabName);
588
+ // let found = cabs.findIndex(c => c.name == cabName);
589
+ selection = cabs.findIndex(c => c.name == cabName);
590
+ if (selection < 0) {
591
+ this.logger.notice(`Cabinet [${cabName}] was not found in enterprise [${enterpriseCode}].`);
592
+ this.ui.userMessage(`Cabinet [${cabName}] was not found in enterprise [${enterpriseCode}].`);
593
+ }
594
+ }
595
+ // CI/CD support here
596
+ if (suppressConfirmations && cabName) {
597
+ cabinet = cabs.find(f => f.name == cabName);
598
+ }
599
+ let choices;
600
+ while (!cabinet) {
601
+ if (!selection || selection < 0) {
602
+ if (cabs.length == 1) { // We're adding this to prevent two steps
603
+ selection = 0;
604
+ }
605
+ else { // Let them choose
606
+ choices = choices || cabs.map((c, index) => { return { name: `${c.name}${(cabs[index].name == current) ? " (current)" : ""}`, value: index }; });
607
+ selection = (yield this.ui.promptSelect('cabIndex', `Select a cabinet [enterprise: ${this.styler.hilite(enterpriseCode)}]`, choices));
608
+ }
609
+ }
610
+ let confResult = yield this.ui.promptConfirm('confirm', `Target cabinet: ${this.styler.hilite(enterpriseCode + "/" + cabs[selection].name)}`);
611
+ if (confResult === true) { // TODO: Refactor these 3 confirms into 1
612
+ // if (await this._ui.promptConfirm("targetCab", `Target cabinet (y/n): ${inOrange(cabs[selection].name)}`)) { // TODO: Refactor these 3 confirms into 1
613
+ cabinet = cabs[selection];
614
+ }
615
+ else if (cabs.length == 1) { // We're adding this so we can avoid what would be two steps
616
+ this.logger.notice(`Operation cancelled. That was the only cabinet available in enterprise [${enterpriseCode}].`);
617
+ this.ui.userMessage(`Operation cancelled. That was the only cabinet available in enterprise [${enterpriseCode}].`);
618
+ this.exitCli(0);
619
+ }
620
+ else {
621
+ selection = undefined;
622
+ }
623
+ }
624
+ }
625
+ // PROJECT CONTEXT
626
+ if (this._projCfg && this._projCfgRepo) {
627
+ if (!this._projUserCfg)
628
+ this._projUserCfg = new codiac_relay_contracts_1.ProjectUserConfig();
629
+ if (this._projUserCfg.enterprise === undefined || this._projUserCfg.enterprise.enterpriseCode !== enterpriseCode) {
630
+ this._projUserCfg.enterprise = new codiac_relay_contracts_1.ProjectEnterpriseBinding(enterpriseCode);
631
+ }
632
+ // Are we sure we wanna set the exact current branch? what if we're inheriting this cabinet from our branch lineage?
633
+ let branch = yield this._ops.gitCurrentBranchNameFor(this._ops.getConfigRoot());
634
+ this._projUserCfg.enterprise.cabinet = new codiac_relay_contracts_2.BranchBinding(branch, enterpriseCode, cabinet.name);
635
+ this._projCfgRepo.writeProjectUserConfig(this._projUserCfg);
636
+ }
637
+ // USER CONTEXT
638
+ if (this.userContext.currentEnterprise === undefined || this.userContext.currentEnterprise.enterprise !== enterpriseCode) {
639
+ this.userContext.currentEnterprise = new codiac_relay_contracts_1.EnterprisePointer(enterpriseCode);
640
+ }
641
+ this.userContext.currentEnterprise.cabinet = cabinet.name;
642
+ this.userContext.enterpriseContexts[this._tenantCode] = this.userContext.currentEnterprise;
643
+ this.userContextManager.writeUserContext(this.userContext);
644
+ this.logger.trace(`Cabinet`, cabinet);
645
+ // let cabCntx = new CabinetScope(cabinet.enterpriseCode, cabinet.environment, cabinet.name)
646
+ // this.logger.trace(`Cabinet context`, cabCntx)
647
+ resolve(cabinet);
648
+ }
649
+ catch (err) {
650
+ reject(err);
651
+ }
652
+ }));
653
+ });
654
+ }
655
+ createAuditable() {
656
+ let stamp = new Date(Date.now());
657
+ return {
658
+ created: stamp,
659
+ createdBy: this.userContext.userName,
660
+ modified: stamp,
661
+ modifiedBy: this.userContext.userName
662
+ };
663
+ }
664
+ }
665
+ exports.EnterpriseContextualizer = EnterpriseContextualizer;
666
+ /** The value in a select list prompt designating the user's choice
667
+ * to create a new record instead of selecting from the existing choices. */
668
+ EnterpriseContextualizer.CHOICE_VALUE_FOR_NEW = "** create new **";
669
+ EnterpriseContextualizer.DEFAULT_REGISTRY_URL = "https://index.docker.io/v1";
670
+ EnterpriseContextualizer.DEFAULT_ASSET_PORT_NUMBER = 1787;
671
671
  //# sourceMappingURL=enterprise-contextualizer.js.map