@codiac.io/codiac-cli 1.2.219 → 1.2.221

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 (1279) 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 +15630 -15629
  31. package/dist/apis/codiac-api/gen/client.js.map +1 -1
  32. package/dist/apis/codiac-api/gen/contracts.d.ts +2722 -2722
  33. package/dist/apis/codiac-api/gen/contracts.js +402 -402
  34. package/dist/apis/codiac-api/index.d.ts +3 -3
  35. package/dist/apis/codiac-api/index.js +8 -8
  36. package/dist/apis/codiac-relay/common/api-client-base.d.ts +165 -165
  37. package/dist/apis/codiac-relay/common/api-client-base.js +547 -547
  38. package/dist/apis/codiac-relay/common/api-user-creds.d.ts +7 -7
  39. package/dist/apis/codiac-relay/common/api-user-creds.js +18 -18
  40. package/dist/apis/codiac-relay/common/config-loader.d.ts +6 -6
  41. package/dist/apis/codiac-relay/common/config-loader.js +18 -18
  42. package/dist/apis/codiac-relay/common/endpoint-spec.d.ts +17 -17
  43. package/dist/apis/codiac-relay/common/endpoint-spec.js +27 -27
  44. package/dist/apis/codiac-relay/common/security/api-auth-methods-legacy.d.ts +87 -87
  45. package/dist/apis/codiac-relay/common/security/api-auth-methods-legacy.js +367 -367
  46. package/dist/apis/codiac-relay/common/security/auth-constants.d.ts +15 -15
  47. package/dist/apis/codiac-relay/common/security/auth-constants.js +21 -21
  48. package/dist/apis/codiac-relay/common/security/i-auth-client.d.ts +44 -44
  49. package/dist/apis/codiac-relay/common/security/i-auth-client.js +2 -2
  50. package/dist/apis/codiac-relay/common/security/token-holder.d.ts +13 -13
  51. package/dist/apis/codiac-relay/common/security/token-holder.js +17 -17
  52. package/dist/apis/codiac-relay/common/utils.d.ts +23 -23
  53. package/dist/apis/codiac-relay/common/utils.js +82 -82
  54. package/dist/apis/codiac-relay/contracts/index.d.ts +1 -1
  55. package/dist/apis/codiac-relay/contracts/index.js +4 -4
  56. package/dist/apis/codiac-relay/gen/client-config.d.ts +10 -10
  57. package/dist/apis/codiac-relay/gen/client-config.js +28 -28
  58. package/dist/apis/codiac-relay/gen/client.d.ts +244 -244
  59. package/dist/apis/codiac-relay/gen/client.js +1862 -1862
  60. package/dist/apis/codiac-relay/gen/contracts.d.ts +3115 -3115
  61. package/dist/apis/codiac-relay/gen/contracts.js +434 -434
  62. package/dist/apis/codiac-relay/index.d.ts +3 -3
  63. package/dist/apis/codiac-relay/index.js +8 -8
  64. package/dist/cli-common/ImagesList.js +66 -66
  65. package/dist/cli-common/argument-manager.d.ts +28 -28
  66. package/dist/cli-common/argument-manager.js +194 -194
  67. package/dist/cli-common/built-in-cli-user-input.d.ts +18 -18
  68. package/dist/cli-common/built-in-cli-user-input.js +309 -309
  69. package/dist/cli-common/cli-interfaces.js +6 -6
  70. package/dist/cli-common/command-base.d.ts +74 -72
  71. package/dist/cli-common/command-base.js +197 -182
  72. package/dist/cli-common/command-base.js.map +1 -1
  73. package/dist/cli-common/entities/index.d.ts +1 -1
  74. package/dist/cli-common/entities/index.js +4 -4
  75. package/dist/cli-common/entities/prompt-choice.d.ts +7 -7
  76. package/dist/cli-common/entities/prompt-choice.js +2 -2
  77. package/dist/cli-common/file-selector.d.ts +48 -48
  78. package/dist/cli-common/file-selector.js +186 -186
  79. package/dist/cli-common/i-user-input-provider.js +18 -18
  80. package/dist/cli-common/index.d.ts +4 -4
  81. package/dist/cli-common/index.js +10 -10
  82. package/dist/cli-common/mock-ui.d.ts +27 -27
  83. package/dist/cli-common/mock-ui.js +82 -82
  84. package/dist/cli-common/prompt-select-fuzzy.d.ts +19 -19
  85. package/dist/cli-common/prompt-select-fuzzy.js +118 -118
  86. package/dist/cli-common/tenant-contextualizer.js +435 -435
  87. package/dist/cli-common/test/tenant-contextualizer.spec.js +142 -142
  88. package/dist/cli-entities/output-format-enum.d.ts +7 -7
  89. package/dist/cli-entities/output-format-enum.js +11 -11
  90. package/dist/cli-entities/prompt-choice.js +5 -5
  91. package/dist/codiac-constants.d.ts +48 -38
  92. package/dist/codiac-constants.js +53 -43
  93. package/dist/codiac-constants.js.map +1 -1
  94. package/dist/codiac-entities/asset-binding.d.ts +12 -12
  95. package/dist/codiac-entities/asset-binding.js +17 -17
  96. package/dist/codiac-entities/azure-container-registry.d.ts +4 -4
  97. package/dist/codiac-entities/azure-container-registry.js +2 -2
  98. package/dist/codiac-entities/azure-service-principal.d.ts +23 -23
  99. package/dist/codiac-entities/azure-service-principal.js +23 -23
  100. package/dist/codiac-entities/cloud-account-ref.d.ts +28 -28
  101. package/dist/codiac-entities/cloud-account-ref.js +36 -36
  102. package/dist/codiac-entities/deployment-temp.js +132 -132
  103. package/dist/codiac-entities/i-cloud-account-ref.d.ts +5 -5
  104. package/dist/codiac-entities/i-cloud-account-ref.js +2 -2
  105. package/dist/command-base-enterprise.d.ts +121 -121
  106. package/dist/command-base-enterprise.js +523 -523
  107. package/dist/command-base-tenantless.d.ts +44 -44
  108. package/dist/command-base-tenantless.js +179 -179
  109. package/dist/commands/asset/create.d.ts +42 -42
  110. package/dist/commands/asset/create.js +475 -475
  111. package/dist/commands/asset/destroy.d.ts +20 -20
  112. package/dist/commands/asset/destroy.js +128 -128
  113. package/dist/commands/asset/helm.d.ts +23 -23
  114. package/dist/commands/asset/helm.js +152 -152
  115. package/dist/commands/asset/list.d.ts +28 -28
  116. package/dist/commands/asset/list.js +171 -171
  117. package/dist/commands/asset/probe/create.d.ts +38 -38
  118. package/dist/commands/asset/probe/create.js +186 -186
  119. package/dist/commands/asset/recycle.d.ts +23 -23
  120. package/dist/commands/asset/recycle.js +174 -174
  121. package/dist/commands/asset/view.d.ts +188 -188
  122. package/dist/commands/asset/view.js +1394 -1394
  123. package/dist/commands/asset/volume/create.d.ts +23 -23
  124. package/dist/commands/asset/volume/create.js +175 -175
  125. package/dist/commands/asset/volume/delete.d.ts +19 -19
  126. package/dist/commands/asset/volume/delete.js +111 -111
  127. package/dist/commands/asset/volume/list.d.ts +19 -19
  128. package/dist/commands/asset/volume/list.js +69 -69
  129. package/dist/commands/branch/current.d.ts +10 -10
  130. package/dist/commands/branch/current.js +33 -33
  131. package/dist/commands/branch/list.d.ts +15 -15
  132. package/dist/commands/branch/list.js +55 -55
  133. package/dist/commands/branch.d.ts +12 -12
  134. package/dist/commands/branch.js +41 -41
  135. package/dist/commands/build.d.ts +38 -38
  136. package/dist/commands/build.js +119 -119
  137. package/dist/commands/cabinet/create.d.ts +21 -21
  138. package/dist/commands/cabinet/create.js +107 -107
  139. package/dist/commands/cabinet/list.d.ts +23 -23
  140. package/dist/commands/cabinet/list.js +133 -133
  141. package/dist/commands/cabinet/obliterate.d.ts +20 -20
  142. package/dist/commands/cabinet/obliterate.js +82 -82
  143. package/dist/commands/cli.d.ts +10 -10
  144. package/dist/commands/cli.js +99 -99
  145. package/dist/commands/commit.d.ts +11 -11
  146. package/dist/commands/commit.js +39 -39
  147. package/dist/commands/config/add.d.ts +90 -78
  148. package/dist/commands/config/add.js +671 -559
  149. package/dist/commands/config/add.js.map +1 -1
  150. package/dist/commands/config/delete.d.ts +35 -18
  151. package/dist/commands/config/delete.js +306 -118
  152. package/dist/commands/config/delete.js.map +1 -1
  153. package/dist/commands/config/deploy.d.ts +22 -22
  154. package/dist/commands/config/deploy.js +124 -124
  155. package/dist/commands/config/import.d.ts +27 -27
  156. package/dist/commands/config/import.js +195 -195
  157. package/dist/commands/config/settings/get.d.ts +38 -0
  158. package/dist/commands/config/settings/get.js +297 -0
  159. package/dist/commands/config/settings/get.js.map +1 -0
  160. package/dist/commands/config/view.d.ts +25 -25
  161. package/dist/commands/config/view.js +120 -120
  162. package/dist/commands/csp/login.d.ts +18 -18
  163. package/dist/commands/csp/login.js +122 -122
  164. package/dist/commands/csp/logout.d.ts +15 -15
  165. package/dist/commands/csp/logout.js +73 -73
  166. package/dist/commands/dep/create.d.ts +13 -13
  167. package/dist/commands/dep/create.js +40 -40
  168. package/dist/commands/dep/install.d.ts +9 -9
  169. package/dist/commands/dep/install.js +29 -29
  170. package/dist/commands/dep/list.d.ts +55 -55
  171. package/dist/commands/dep/list.js +97 -97
  172. package/dist/commands/dep/remove.d.ts +12 -12
  173. package/dist/commands/dep/remove.js +61 -61
  174. package/dist/commands/dep/source.d.ts +13 -13
  175. package/dist/commands/dep/source.js +82 -82
  176. package/dist/commands/dep/syncup.d.ts +11 -11
  177. package/dist/commands/dep/syncup.js +53 -53
  178. package/dist/commands/dep/unsource.d.ts +14 -14
  179. package/dist/commands/dep/unsource.js +67 -67
  180. package/dist/commands/dep/upgrade.d.ts +44 -44
  181. package/dist/commands/dep/upgrade.js +243 -243
  182. package/dist/commands/dep.d.ts +12 -12
  183. package/dist/commands/dep.js +50 -50
  184. package/dist/commands/deploy.d.ts +38 -38
  185. package/dist/commands/deploy.js +385 -385
  186. package/dist/commands/enterprise/create.d.ts +20 -20
  187. package/dist/commands/enterprise/create.js +97 -97
  188. package/dist/commands/enterprise/list.d.ts +14 -14
  189. package/dist/commands/enterprise/list.js +83 -83
  190. package/dist/commands/env/add.d.ts +22 -22
  191. package/dist/commands/env/add.js +199 -199
  192. package/dist/commands/environment/create.d.ts +19 -19
  193. package/dist/commands/environment/create.js +88 -88
  194. package/dist/commands/environment/list.d.ts +25 -25
  195. package/dist/commands/environment/list.js +157 -157
  196. package/dist/commands/filestore/capture.d.ts +31 -31
  197. package/dist/commands/filestore/capture.js +341 -341
  198. package/dist/commands/host/map.d.ts +33 -33
  199. package/dist/commands/host/map.js +346 -346
  200. package/dist/commands/identity/delete.d.ts +15 -15
  201. package/dist/commands/identity/delete.js +82 -82
  202. package/dist/commands/identity/list.d.ts +11 -11
  203. package/dist/commands/identity/list.js +42 -42
  204. package/dist/commands/identity.d.ts +22 -22
  205. package/dist/commands/identity.js +76 -76
  206. package/dist/commands/imageRegistry/capture.d.ts +27 -27
  207. package/dist/commands/imageRegistry/capture.js +159 -159
  208. package/dist/commands/imageRegistry/forget.d.ts +23 -23
  209. package/dist/commands/imageRegistry/forget.js +160 -160
  210. package/dist/commands/imageRegistry/pullSecret/set.d.ts +27 -27
  211. package/dist/commands/imageRegistry/pullSecret/set.js +310 -310
  212. package/dist/commands/imageRegistry/pullSecret/unset.d.ts +24 -24
  213. package/dist/commands/imageRegistry/pullSecret/unset.js +242 -242
  214. package/dist/commands/images/add.d.ts +25 -25
  215. package/dist/commands/images/add.js +75 -75
  216. package/dist/commands/images/list.d.ts +14 -14
  217. package/dist/commands/images/list.js +71 -71
  218. package/dist/commands/images/patch.d.ts +14 -14
  219. package/dist/commands/images/patch.js +92 -92
  220. package/dist/commands/images/remove.d.ts +12 -12
  221. package/dist/commands/images/remove.js +37 -37
  222. package/dist/commands/images/version/bump.d.ts +18 -18
  223. package/dist/commands/images/version/bump.js +60 -60
  224. package/dist/commands/images/version.d.ts +16 -16
  225. package/dist/commands/images/version.js +64 -64
  226. package/dist/commands/init.d.ts +17 -17
  227. package/dist/commands/init.js +130 -130
  228. package/dist/commands/kit/create.d.ts +25 -25
  229. package/dist/commands/kit/create.js +141 -141
  230. package/dist/commands/login.d.ts +22 -22
  231. package/dist/commands/login.js +92 -92
  232. package/dist/commands/logout.d.ts +8 -8
  233. package/dist/commands/logout.js +36 -36
  234. package/dist/commands/merge.d.ts +12 -12
  235. package/dist/commands/merge.js +42 -42
  236. package/dist/commands/noc/cluster/create.d.ts +28 -28
  237. package/dist/commands/noc/cluster/create.js +135 -135
  238. package/dist/commands/noc/cluster/deinit.d.ts +17 -17
  239. package/dist/commands/noc/cluster/deinit.js +116 -116
  240. package/dist/commands/noc/cluster/destroy.d.ts +20 -20
  241. package/dist/commands/noc/cluster/destroy.js +137 -137
  242. package/dist/commands/noc/cluster/forget.d.ts +16 -16
  243. package/dist/commands/noc/cluster/forget.js +136 -136
  244. package/dist/commands/noc/cluster/grant.d.ts +24 -24
  245. package/dist/commands/noc/cluster/grant.js +159 -159
  246. package/dist/commands/noc/cluster/init.d.ts +17 -17
  247. package/dist/commands/noc/cluster/init.js +116 -116
  248. package/dist/commands/noc/cluster/list.d.ts +21 -21
  249. package/dist/commands/noc/cluster/list.js +83 -83
  250. package/dist/commands/noc/cluster/recreate.d.ts +28 -28
  251. package/dist/commands/noc/cluster/recreate.js +188 -188
  252. package/dist/commands/pkg/add.d.ts +15 -15
  253. package/dist/commands/pkg/add.js +42 -42
  254. package/dist/commands/pkg/list.d.ts +9 -9
  255. package/dist/commands/pkg/list.js +32 -32
  256. package/dist/commands/pkg/patch.d.ts +13 -13
  257. package/dist/commands/pkg/patch.js +78 -78
  258. package/dist/commands/pkg/remove.d.ts +12 -12
  259. package/dist/commands/pkg/remove.js +69 -69
  260. package/dist/commands/portal.d.ts +11 -11
  261. package/dist/commands/portal.js +81 -81
  262. package/dist/commands/publish.d.ts +21 -21
  263. package/dist/commands/publish.js +51 -51
  264. package/dist/commands/pull.d.ts +13 -13
  265. package/dist/commands/pull.js +29 -29
  266. package/dist/commands/push.d.ts +13 -13
  267. package/dist/commands/push.js +29 -29
  268. package/dist/commands/run.d.ts +35 -35
  269. package/dist/commands/run.js +193 -193
  270. package/dist/commands/secretStore/capture.d.ts +27 -27
  271. package/dist/commands/secretStore/capture.js +174 -174
  272. package/dist/commands/secretStore/forget.d.ts +20 -20
  273. package/dist/commands/secretStore/forget.js +146 -146
  274. package/dist/commands/stage.d.ts +13 -13
  275. package/dist/commands/stage.js +64 -64
  276. package/dist/commands/stash.d.ts +13 -13
  277. package/dist/commands/stash.js +30 -30
  278. package/dist/commands/status.d.ts +12 -12
  279. package/dist/commands/status.js +48 -48
  280. package/dist/commands/stop.d.ts +10 -10
  281. package/dist/commands/stop.js +51 -51
  282. package/dist/commands/switch.d.ts +11 -11
  283. package/dist/commands/switch.js +41 -41
  284. package/dist/commands/sync.d.ts +14 -14
  285. package/dist/commands/sync.js +20 -20
  286. package/dist/commands/tenant/create.d.ts +27 -27
  287. package/dist/commands/tenant/create.js +119 -119
  288. package/dist/commands/tenant/switch.d.ts +24 -24
  289. package/dist/commands/tenant/switch.js +108 -108
  290. package/dist/commands/unstage.d.ts +12 -12
  291. package/dist/commands/unstage.js +57 -57
  292. package/dist/commands/whereami.d.ts +15 -15
  293. package/dist/commands/whereami.js +122 -122
  294. package/dist/commands/whoami.d.ts +8 -8
  295. package/dist/commands/whoami.js +39 -39
  296. package/dist/errors/NoMembershipError.d.ts +8 -8
  297. package/dist/errors/NoMembershipError.js +14 -14
  298. package/dist/index.d.ts +1 -1
  299. package/dist/index.js +16 -16
  300. package/dist/log-update-wrapper.d.ts +24 -24
  301. package/dist/log-update-wrapper.js +28 -28
  302. package/dist/log4js-logger.d.ts +26 -26
  303. package/dist/log4js-logger.js +137 -137
  304. package/dist/ops/INTERFACES_CLI.d.ts +3 -3
  305. package/dist/ops/INTERFACES_CLI.js +7 -7
  306. package/dist/ops/LocalOps.d.ts +417 -417
  307. package/dist/ops/LocalOps.js +3121 -3121
  308. package/dist/ops/azure-container-registry-client/azure-container-registry-client.js +147 -147
  309. package/dist/ops/cli-path-walker.js +54 -54
  310. package/dist/ops/codiac-entities/dependency.d.ts +5 -5
  311. package/dist/ops/codiac-entities/dependency.js +10 -10
  312. package/dist/ops/codiac-entities/index.d.ts +1 -1
  313. package/dist/ops/codiac-entities/index.js +4 -4
  314. package/dist/ops/composite-image-registry-client.js +73 -73
  315. package/dist/ops/data/cli-context-repo.d.ts +61 -61
  316. package/dist/ops/data/cli-context-repo.js +269 -269
  317. package/dist/ops/data/index.d.ts +2 -2
  318. package/dist/ops/data/index.js +5 -5
  319. package/dist/ops/data/npm-config-repo.d.ts +13 -13
  320. package/dist/ops/data/npm-config-repo.js +64 -64
  321. package/dist/ops/docker-config.js +130 -130
  322. package/dist/ops/docker-constants.js +21 -21
  323. package/dist/ops/docker-credentials-store.js +237 -237
  324. package/dist/ops/docker-registry-api-client/docker-registry-api-client.js +288 -288
  325. package/dist/ops/docker-registry-api-client/entities/blob-sum.d.ts +7 -7
  326. package/dist/ops/docker-registry-api-client/entities/blob-sum.js +12 -12
  327. package/dist/ops/docker-registry-api-client/entities/docker-access-actions-enum.d.ts +5 -5
  328. package/dist/ops/docker-registry-api-client/entities/docker-access-actions-enum.js +9 -9
  329. package/dist/ops/docker-registry-api-client/entities/docker-auth-token-criteria.d.ts +30 -30
  330. package/dist/ops/docker-registry-api-client/entities/docker-auth-token-criteria.js +35 -35
  331. package/dist/ops/docker-registry-api-client/entities/i-docker-error-response.d.ts +55 -55
  332. package/dist/ops/docker-registry-api-client/entities/i-docker-error-response.js +51 -51
  333. package/dist/ops/docker-registry-api-client/entities/i-docker-list-response.d.ts +7 -7
  334. package/dist/ops/docker-registry-api-client/entities/i-docker-list-response.js +2 -2
  335. package/dist/ops/docker-registry-api-client/entities/image-repository.d.ts +31 -31
  336. package/dist/ops/docker-registry-api-client/entities/image-repository.js +29 -29
  337. package/dist/ops/docker-registry-api-client/entities/image-tag-criteria.d.ts +8 -8
  338. package/dist/ops/docker-registry-api-client/entities/image-tag-criteria.js +13 -13
  339. package/dist/ops/docker-registry-api-client/entities/image-tag-list.d.ts +7 -7
  340. package/dist/ops/docker-registry-api-client/entities/image-tag-list.js +12 -12
  341. package/dist/ops/docker-registry-api-client/entities/manifest-criteria.d.ts +9 -9
  342. package/dist/ops/docker-registry-api-client/entities/manifest-criteria.js +14 -14
  343. package/dist/ops/docker-registry-api-client/entities/manifest.d.ts +15 -15
  344. package/dist/ops/docker-registry-api-client/entities/manifest.js +20 -20
  345. package/dist/ops/docker-registry-api-client/entities/repository-criteria.d.ts +16 -16
  346. package/dist/ops/docker-registry-api-client/entities/repository-criteria.js +23 -23
  347. package/dist/ops/docker-registry-api-client/entities/token-response.d.ts +15 -15
  348. package/dist/ops/docker-registry-api-client/entities/token-response.js +14 -14
  349. package/dist/ops/docker-registry-api-client/entities/token.d.ts +17 -17
  350. package/dist/ops/docker-registry-api-client/entities/token.js +21 -21
  351. package/dist/ops/docker-registry-api-client/entities/version-check-criteria.d.ts +4 -4
  352. package/dist/ops/docker-registry-api-client/entities/version-check-criteria.js +9 -9
  353. package/dist/ops/dx-constants.d.ts +26 -26
  354. package/dist/ops/dx-constants.js +42 -42
  355. package/dist/ops/entities/ImageBuildContext.d.ts +12 -12
  356. package/dist/ops/entities/ImageBuildContext.js +18 -18
  357. package/dist/ops/entities/PipelineContext.d.ts +21 -21
  358. package/dist/ops/entities/PipelineContext.js +22 -22
  359. package/dist/ops/entities/TenantContext.d.ts +10 -10
  360. package/dist/ops/entities/TenantContext.js +15 -15
  361. package/dist/ops/entities/ThaulConfig.js +29 -29
  362. package/dist/ops/entities/azure-service-principal.d.ts +23 -23
  363. package/dist/ops/entities/azure-service-principal.js +23 -23
  364. package/dist/ops/entities/better-logger.js +1 -1
  365. package/dist/ops/entities/branch.d.ts +13 -13
  366. package/dist/ops/entities/branch.js +15 -15
  367. package/dist/ops/entities/cli-config.d.ts +48 -48
  368. package/dist/ops/entities/cli-config.js +60 -60
  369. package/dist/ops/entities/docker-image.d.ts +60 -60
  370. package/dist/ops/entities/docker-image.js +2 -2
  371. package/dist/ops/entities/helm-spec.d.ts +15 -15
  372. package/dist/ops/entities/helm-spec.js +22 -22
  373. package/dist/ops/entities/index.d.ts +4 -4
  374. package/dist/ops/entities/index.js +11 -11
  375. package/dist/ops/entities/operation-meta.d.ts +8 -8
  376. package/dist/ops/entities/operation-meta.js +18 -18
  377. package/dist/ops/entities/scaffolding.d.ts +19 -19
  378. package/dist/ops/entities/scaffolding.js +20 -20
  379. package/dist/ops/extensions/azart-identity-adapter.d.ts +19 -19
  380. package/dist/ops/extensions/azart-identity-adapter.js +96 -96
  381. package/dist/ops/extensions/npm-identity-adapter-base.d.ts +13 -13
  382. package/dist/ops/extensions/npm-identity-adapter-base.js +2 -2
  383. package/dist/ops/extensions/npmjs-identity-adapter.d.ts +13 -13
  384. package/dist/ops/extensions/npmjs-identity-adapter.js +63 -63
  385. package/dist/ops/git-ops.d.ts +8 -8
  386. package/dist/ops/git-ops.js +13 -13
  387. package/dist/ops/i-client-for-image-registry.js +16 -16
  388. package/dist/ops/i-identity-handler.d.ts +33 -33
  389. package/dist/ops/i-identity-handler.js +164 -164
  390. package/dist/ops/i-output-styler.js +16 -16
  391. package/dist/ops/index.d.ts +12 -12
  392. package/dist/ops/index.js +14 -14
  393. package/dist/ops/json-utils.js +58 -58
  394. package/dist/ops/no-style-output-styler.js +29 -29
  395. package/dist/ops/oauth2-client.ts/oauth2-client.d.ts +23 -23
  396. package/dist/ops/oauth2-client.ts/oauth2-client.js +63 -63
  397. package/dist/ops/project-initializer.d.ts +36 -36
  398. package/dist/ops/project-initializer.js +218 -218
  399. package/dist/ops/scaffolding/base-scaffolding.d.ts +7 -7
  400. package/dist/ops/scaffolding/base-scaffolding.js +20 -20
  401. package/dist/ops/scaffolding/codiac-api-scaffolding.d.ts +7 -7
  402. package/dist/ops/scaffolding/codiac-api-scaffolding.js +63 -63
  403. package/dist/ops/scaffolding/typescript-scaffolding.d.ts +15 -15
  404. package/dist/ops/scaffolding/typescript-scaffolding.js +162 -162
  405. package/dist/ops/test/mock-ui.d.ts +26 -26
  406. package/dist/ops/test/mock-ui.js +87 -87
  407. package/dist/ops/test/test-extensions.d.ts +13 -13
  408. package/dist/ops/test/test-extensions.js +70 -70
  409. package/dist/ops/test/when-a-recursive-file-search-is-run.spec.d.ts +2 -2
  410. package/dist/ops/test/when-a-recursive-file-search-is-run.spec.js +54 -54
  411. package/dist/ops/test/when-git-branchline-is-attempted.spec.d.ts +2 -2
  412. package/dist/ops/test/when-git-branchline-is-attempted.spec.js +37 -37
  413. package/dist/ops/test/when-versions-are-parsed.spec.d.ts +2 -2
  414. package/dist/ops/test/when-versions-are-parsed.spec.js +61 -61
  415. package/dist/ops/throwing-user-input-provider.js +36 -36
  416. package/dist/ops/workspace-versioner.d.ts +122 -122
  417. package/dist/ops/workspace-versioner.js +291 -291
  418. package/dist/prettify.d.ts +7 -7
  419. package/dist/prettify.js +23 -23
  420. package/dist/read-stdin.d.ts +2 -2
  421. package/dist/read-stdin.js +28 -28
  422. package/dist/relay/contracts/contracts.d.ts +207 -207
  423. package/dist/relay/contracts/contracts.js +229 -229
  424. package/dist/relay/extended-relay-client.d.ts +27 -27
  425. package/dist/relay/extended-relay-client.js +27 -27
  426. package/dist/relay/relay-container.d.ts +41 -41
  427. package/dist/relay/relay-container.js +297 -297
  428. package/dist/relay/wsclient/relay-socket-listener.d.ts +68 -68
  429. package/dist/relay/wsclient/relay-socket-listener.js +164 -164
  430. package/dist/relay/wsclient/relay-websocket-client.d.ts +33 -33
  431. package/dist/relay/wsclient/relay-websocket-client.js +178 -178
  432. package/dist/relay/wsclient/rx-websocket-subject.d.ts +25 -25
  433. package/dist/relay/wsclient/rx-websocket-subject.js +133 -133
  434. package/dist/relay/wsclient/socket-contracts.d.ts +22 -22
  435. package/dist/relay/wsclient/socket-contracts.js +2 -2
  436. package/dist/standard-probes.d.ts +5 -5
  437. package/dist/standard-probes.js +21 -21
  438. package/dist/uilogic/build-configurator.d.ts +21 -21
  439. package/dist/uilogic/build-configurator.js +110 -110
  440. package/dist/uilogic/cloud-provider-contextualizer.d.ts +46 -46
  441. package/dist/uilogic/cloud-provider-contextualizer.js +193 -193
  442. package/dist/uilogic/cloud-resource-configurator-factory.d.ts +41 -41
  443. package/dist/uilogic/cloud-resource-configurator-factory.js +157 -157
  444. package/dist/uilogic/cloud-resource-configurators/aws-resource-configurator.d.ts +38 -38
  445. package/dist/uilogic/cloud-resource-configurators/aws-resource-configurator.js +347 -347
  446. package/dist/uilogic/cloud-resource-configurators/az-acr-cli-authenticator.js +77 -77
  447. package/dist/uilogic/cloud-resource-configurators/az-interactive-login-configurator.d.ts +42 -42
  448. package/dist/uilogic/cloud-resource-configurators/az-interactive-login-configurator.js +247 -247
  449. package/dist/uilogic/cloud-resource-configurators/azure-resource-configurator.d.ts +110 -110
  450. package/dist/uilogic/cloud-resource-configurators/azure-resource-configurator.js +785 -785
  451. package/dist/uilogic/cloud-resource-configurators/azure-types.js +9 -9
  452. package/dist/uilogic/cloud-resource-configurators/docker-hub-resource-configurator.d.ts +24 -24
  453. package/dist/uilogic/cloud-resource-configurators/docker-hub-resource-configurator.js +105 -105
  454. package/dist/uilogic/cloud-resource-configurators/helm-resource-configurator.d.ts +16 -16
  455. package/dist/uilogic/cloud-resource-configurators/helm-resource-configurator.js +44 -44
  456. package/dist/uilogic/cloud-resource-configurators/unsupported-resource-configurator.d.ts +18 -18
  457. package/dist/uilogic/cloud-resource-configurators/unsupported-resource-configurator.js +61 -61
  458. package/dist/uilogic/config-ui-utils.d.ts +112 -0
  459. package/dist/uilogic/config-ui-utils.js +574 -0
  460. package/dist/uilogic/config-ui-utils.js.map +1 -0
  461. package/dist/uilogic/enterprise-contextualizer.d.ts +79 -76
  462. package/dist/uilogic/enterprise-contextualizer.js +700 -670
  463. package/dist/uilogic/enterprise-contextualizer.js.map +1 -1
  464. package/dist/uilogic/environment-contextualizer.d.ts +15 -15
  465. package/dist/uilogic/environment-contextualizer.js +42 -42
  466. package/dist/uilogic/i-cluster-configurator.d.ts +9 -9
  467. package/dist/uilogic/i-cluster-configurator.js +2 -2
  468. package/dist/uilogic/i-login-configurator.d.ts +6 -6
  469. package/dist/uilogic/i-login-configurator.js +2 -2
  470. package/dist/uilogic/i-registry-configurator.d.ts +6 -6
  471. package/dist/uilogic/i-registry-configurator.js +2 -2
  472. package/dist/uilogic/i-secret-store-configurator.d.ts +7 -7
  473. package/dist/uilogic/i-secret-store-configurator.js +2 -2
  474. package/dist/uilogic/image-configurator.d.ts +133 -133
  475. package/dist/uilogic/image-configurator.js +577 -577
  476. package/dist/uilogic/image-contextualizer.d.ts +24 -24
  477. package/dist/uilogic/image-contextualizer.js +89 -89
  478. package/dist/uilogic/image-registry-contextualizer.d.ts +28 -28
  479. package/dist/uilogic/image-registry-contextualizer.js +126 -126
  480. package/dist/uilogic/index.d.ts +9 -9
  481. package/dist/uilogic/index.js +13 -13
  482. package/dist/uilogic/prompt-select-fuzzy.js +138 -138
  483. package/dist/uilogic/render-methods.d.ts +12 -12
  484. package/dist/uilogic/render-methods.js +64 -64
  485. package/dist/uilogic/tenant-contextualizer.d.ts +79 -79
  486. package/dist/uilogic/tenant-contextualizer.js +577 -577
  487. package/dist/user-context-loader.d.ts +60 -60
  488. package/dist/user-context-loader.js +183 -183
  489. package/oclif.manifest.json +331 -59
  490. package/package.json +152 -151
  491. package/scaffolding/api/.gitignore-scaffolding +68 -68
  492. package/scaffolding/api/.vscode/launch.json +16 -16
  493. package/scaffolding/api/.vscode/settings.json +7 -7
  494. package/scaffolding/api/.vscode/tasks.json +15 -15
  495. package/scaffolding/api/src/app-config.json +2 -2
  496. package/scaffolding/api/src/index.ts-scaffolding +13 -13
  497. package/scaffolding/api/src/myApiDef.ts-scaffolding +25 -25
  498. package/scaffolding/default/.gitignore-scaffolding +2 -2
  499. package/scaffolding/typescript/.gitignore-scaffolding +69 -69
  500. package/scaffolding/typescript/.vscode/launch.json +16 -16
  501. package/scaffolding/typescript/.vscode/settings.json +7 -7
  502. package/scaffolding/typescript/.vscode/tasks.json +15 -15
  503. package/lib/api-command-base.d.ts +0 -0
  504. package/lib/api-command-base.js +0 -52
  505. package/lib/api-command-base.js.map +0 -1
  506. package/lib/apis/codiac-api/common/api-client-base.d.ts +0 -165
  507. package/lib/apis/codiac-api/common/api-client-base.js +0 -548
  508. package/lib/apis/codiac-api/common/api-client-base.js.map +0 -1
  509. package/lib/apis/codiac-api/common/api-user-creds.d.ts +0 -7
  510. package/lib/apis/codiac-api/common/api-user-creds.js +0 -19
  511. package/lib/apis/codiac-api/common/api-user-creds.js.map +0 -1
  512. package/lib/apis/codiac-api/common/config-loader.d.ts +0 -6
  513. package/lib/apis/codiac-api/common/config-loader.js +0 -19
  514. package/lib/apis/codiac-api/common/config-loader.js.map +0 -1
  515. package/lib/apis/codiac-api/common/endpoint-spec.d.ts +0 -17
  516. package/lib/apis/codiac-api/common/endpoint-spec.js +0 -28
  517. package/lib/apis/codiac-api/common/endpoint-spec.js.map +0 -1
  518. package/lib/apis/codiac-api/common/security/api-auth-methods-legacy.d.ts +0 -87
  519. package/lib/apis/codiac-api/common/security/api-auth-methods-legacy.js +0 -368
  520. package/lib/apis/codiac-api/common/security/api-auth-methods-legacy.js.map +0 -1
  521. package/lib/apis/codiac-api/common/security/auth-constants.d.ts +0 -15
  522. package/lib/apis/codiac-api/common/security/auth-constants.js +0 -22
  523. package/lib/apis/codiac-api/common/security/auth-constants.js.map +0 -1
  524. package/lib/apis/codiac-api/common/security/i-auth-client.d.ts +0 -44
  525. package/lib/apis/codiac-api/common/security/i-auth-client.js +0 -3
  526. package/lib/apis/codiac-api/common/security/i-auth-client.js.map +0 -1
  527. package/lib/apis/codiac-api/common/security/token-holder.d.ts +0 -13
  528. package/lib/apis/codiac-api/common/security/token-holder.js +0 -18
  529. package/lib/apis/codiac-api/common/security/token-holder.js.map +0 -1
  530. package/lib/apis/codiac-api/common/utils.d.ts +0 -23
  531. package/lib/apis/codiac-api/common/utils.js +0 -83
  532. package/lib/apis/codiac-api/common/utils.js.map +0 -1
  533. package/lib/apis/codiac-api/contracts/index.d.ts +0 -1
  534. package/lib/apis/codiac-api/contracts/index.js +0 -5
  535. package/lib/apis/codiac-api/contracts/index.js.map +0 -1
  536. package/lib/apis/codiac-api/gen/client-config.d.ts +0 -10
  537. package/lib/apis/codiac-api/gen/client-config.js +0 -29
  538. package/lib/apis/codiac-api/gen/client-config.js.map +0 -1
  539. package/lib/apis/codiac-api/gen/client.d.ts +0 -1663
  540. package/lib/apis/codiac-api/gen/client.js +0 -15630
  541. package/lib/apis/codiac-api/gen/client.js.map +0 -1
  542. package/lib/apis/codiac-api/gen/contracts.d.ts +0 -2722
  543. package/lib/apis/codiac-api/gen/contracts.js +0 -403
  544. package/lib/apis/codiac-api/gen/contracts.js.map +0 -1
  545. package/lib/apis/codiac-api/index.d.ts +0 -3
  546. package/lib/apis/codiac-api/index.js +0 -9
  547. package/lib/apis/codiac-api/index.js.map +0 -1
  548. package/lib/apis/codiac-relay/common/api-client-base.d.ts +0 -165
  549. package/lib/apis/codiac-relay/common/api-client-base.js +0 -548
  550. package/lib/apis/codiac-relay/common/api-client-base.js.map +0 -1
  551. package/lib/apis/codiac-relay/common/api-user-creds.d.ts +0 -7
  552. package/lib/apis/codiac-relay/common/api-user-creds.js +0 -19
  553. package/lib/apis/codiac-relay/common/api-user-creds.js.map +0 -1
  554. package/lib/apis/codiac-relay/common/config-loader.d.ts +0 -6
  555. package/lib/apis/codiac-relay/common/config-loader.js +0 -19
  556. package/lib/apis/codiac-relay/common/config-loader.js.map +0 -1
  557. package/lib/apis/codiac-relay/common/endpoint-spec.d.ts +0 -17
  558. package/lib/apis/codiac-relay/common/endpoint-spec.js +0 -28
  559. package/lib/apis/codiac-relay/common/endpoint-spec.js.map +0 -1
  560. package/lib/apis/codiac-relay/common/security/api-auth-methods-legacy.d.ts +0 -87
  561. package/lib/apis/codiac-relay/common/security/api-auth-methods-legacy.js +0 -368
  562. package/lib/apis/codiac-relay/common/security/api-auth-methods-legacy.js.map +0 -1
  563. package/lib/apis/codiac-relay/common/security/auth-constants.d.ts +0 -15
  564. package/lib/apis/codiac-relay/common/security/auth-constants.js +0 -22
  565. package/lib/apis/codiac-relay/common/security/auth-constants.js.map +0 -1
  566. package/lib/apis/codiac-relay/common/security/i-auth-client.d.ts +0 -44
  567. package/lib/apis/codiac-relay/common/security/i-auth-client.js +0 -3
  568. package/lib/apis/codiac-relay/common/security/i-auth-client.js.map +0 -1
  569. package/lib/apis/codiac-relay/common/security/token-holder.d.ts +0 -13
  570. package/lib/apis/codiac-relay/common/security/token-holder.js +0 -18
  571. package/lib/apis/codiac-relay/common/security/token-holder.js.map +0 -1
  572. package/lib/apis/codiac-relay/common/utils.d.ts +0 -23
  573. package/lib/apis/codiac-relay/common/utils.js +0 -83
  574. package/lib/apis/codiac-relay/common/utils.js.map +0 -1
  575. package/lib/apis/codiac-relay/contracts/index.d.ts +0 -1
  576. package/lib/apis/codiac-relay/contracts/index.js +0 -5
  577. package/lib/apis/codiac-relay/contracts/index.js.map +0 -1
  578. package/lib/apis/codiac-relay/gen/client-config.d.ts +0 -10
  579. package/lib/apis/codiac-relay/gen/client-config.js +0 -29
  580. package/lib/apis/codiac-relay/gen/client-config.js.map +0 -1
  581. package/lib/apis/codiac-relay/gen/client.d.ts +0 -244
  582. package/lib/apis/codiac-relay/gen/client.js +0 -1863
  583. package/lib/apis/codiac-relay/gen/client.js.map +0 -1
  584. package/lib/apis/codiac-relay/gen/contracts.d.ts +0 -3111
  585. package/lib/apis/codiac-relay/gen/contracts.js +0 -435
  586. package/lib/apis/codiac-relay/gen/contracts.js.map +0 -1
  587. package/lib/apis/codiac-relay/index.d.ts +0 -3
  588. package/lib/apis/codiac-relay/index.js +0 -9
  589. package/lib/apis/codiac-relay/index.js.map +0 -1
  590. package/lib/azure-rest-client.d.ts +0 -6
  591. package/lib/azure-rest-client.js +0 -36
  592. package/lib/azure-rest-client.js.map +0 -1
  593. package/lib/cli-common/ImagesList.d.ts +0 -0
  594. package/lib/cli-common/ImagesList.js +0 -67
  595. package/lib/cli-common/ImagesList.js.map +0 -1
  596. package/lib/cli-common/argument-manager.d.ts +0 -28
  597. package/lib/cli-common/argument-manager.js +0 -195
  598. package/lib/cli-common/argument-manager.js.map +0 -1
  599. package/lib/cli-common/built-in-cli-user-input.d.ts +0 -18
  600. package/lib/cli-common/built-in-cli-user-input.js +0 -310
  601. package/lib/cli-common/built-in-cli-user-input.js.map +0 -1
  602. package/lib/cli-common/cli-interfaces.d.ts +0 -0
  603. package/lib/cli-common/cli-interfaces.js +0 -7
  604. package/lib/cli-common/cli-interfaces.js.map +0 -1
  605. package/lib/cli-common/command-base.d.ts +0 -72
  606. package/lib/cli-common/command-base.js +0 -182
  607. package/lib/cli-common/command-base.js.map +0 -1
  608. package/lib/cli-common/entities/index.d.ts +0 -1
  609. package/lib/cli-common/entities/index.js +0 -5
  610. package/lib/cli-common/entities/index.js.map +0 -1
  611. package/lib/cli-common/entities/prompt-choice.d.ts +0 -7
  612. package/lib/cli-common/entities/prompt-choice.js +0 -3
  613. package/lib/cli-common/entities/prompt-choice.js.map +0 -1
  614. package/lib/cli-common/file-selector.d.ts +0 -48
  615. package/lib/cli-common/file-selector.js +0 -187
  616. package/lib/cli-common/file-selector.js.map +0 -1
  617. package/lib/cli-common/i-user-input-provider.d.ts +0 -0
  618. package/lib/cli-common/i-user-input-provider.js +0 -19
  619. package/lib/cli-common/i-user-input-provider.js.map +0 -1
  620. package/lib/cli-common/index.d.ts +0 -4
  621. package/lib/cli-common/index.js +0 -11
  622. package/lib/cli-common/index.js.map +0 -1
  623. package/lib/cli-common/mock-ui.d.ts +0 -27
  624. package/lib/cli-common/mock-ui.js +0 -83
  625. package/lib/cli-common/mock-ui.js.map +0 -1
  626. package/lib/cli-common/prompt-select-fuzzy.d.ts +0 -19
  627. package/lib/cli-common/prompt-select-fuzzy.js +0 -119
  628. package/lib/cli-common/prompt-select-fuzzy.js.map +0 -1
  629. package/lib/cli-common/tenant-contextualizer.d.ts +0 -0
  630. package/lib/cli-common/tenant-contextualizer.js +0 -436
  631. package/lib/cli-common/tenant-contextualizer.js.map +0 -1
  632. package/lib/cli-common/test/tenant-contextualizer.spec.d.ts +0 -0
  633. package/lib/cli-common/test/tenant-contextualizer.spec.js +0 -143
  634. package/lib/cli-common/test/tenant-contextualizer.spec.js.map +0 -1
  635. package/lib/cli-entities/output-format-enum.d.ts +0 -7
  636. package/lib/cli-entities/output-format-enum.js +0 -12
  637. package/lib/cli-entities/output-format-enum.js.map +0 -1
  638. package/lib/cli-entities/prompt-choice.d.ts +0 -0
  639. package/lib/cli-entities/prompt-choice.js +0 -6
  640. package/lib/cli-entities/prompt-choice.js.map +0 -1
  641. package/lib/codiac-constants.d.ts +0 -35
  642. package/lib/codiac-constants.js +0 -41
  643. package/lib/codiac-constants.js.map +0 -1
  644. package/lib/codiac-entities/asset-binding.d.ts +0 -12
  645. package/lib/codiac-entities/asset-binding.js +0 -18
  646. package/lib/codiac-entities/asset-binding.js.map +0 -1
  647. package/lib/codiac-entities/azure-container-registry.d.ts +0 -4
  648. package/lib/codiac-entities/azure-container-registry.js +0 -3
  649. package/lib/codiac-entities/azure-container-registry.js.map +0 -1
  650. package/lib/codiac-entities/azure-service-principal.d.ts +0 -23
  651. package/lib/codiac-entities/azure-service-principal.js +0 -24
  652. package/lib/codiac-entities/azure-service-principal.js.map +0 -1
  653. package/lib/codiac-entities/cloud-account-ref.d.ts +0 -28
  654. package/lib/codiac-entities/cloud-account-ref.js +0 -37
  655. package/lib/codiac-entities/cloud-account-ref.js.map +0 -1
  656. package/lib/codiac-entities/deployment-temp.d.ts +0 -0
  657. package/lib/codiac-entities/deployment-temp.js +0 -133
  658. package/lib/codiac-entities/deployment-temp.js.map +0 -1
  659. package/lib/codiac-entities/i-cloud-account-ref.d.ts +0 -5
  660. package/lib/codiac-entities/i-cloud-account-ref.js +0 -3
  661. package/lib/codiac-entities/i-cloud-account-ref.js.map +0 -1
  662. package/lib/command-base-enterprise.d.ts +0 -121
  663. package/lib/command-base-enterprise.js +0 -524
  664. package/lib/command-base-enterprise.js.map +0 -1
  665. package/lib/command-base-tenantless.d.ts +0 -44
  666. package/lib/command-base-tenantless.js +0 -180
  667. package/lib/command-base-tenantless.js.map +0 -1
  668. package/lib/commands/asset/create.d.ts +0 -42
  669. package/lib/commands/asset/create.js +0 -467
  670. package/lib/commands/asset/create.js.map +0 -1
  671. package/lib/commands/asset/destroy.d.ts +0 -20
  672. package/lib/commands/asset/destroy.js +0 -129
  673. package/lib/commands/asset/destroy.js.map +0 -1
  674. package/lib/commands/asset/helm.d.ts +0 -23
  675. package/lib/commands/asset/helm.js +0 -153
  676. package/lib/commands/asset/helm.js.map +0 -1
  677. package/lib/commands/asset/list.d.ts +0 -28
  678. package/lib/commands/asset/list.js +0 -172
  679. package/lib/commands/asset/list.js.map +0 -1
  680. package/lib/commands/asset/probe/create.d.ts +0 -38
  681. package/lib/commands/asset/probe/create.js +0 -187
  682. package/lib/commands/asset/probe/create.js.map +0 -1
  683. package/lib/commands/asset/recycle.d.ts +0 -23
  684. package/lib/commands/asset/recycle.js +0 -175
  685. package/lib/commands/asset/recycle.js.map +0 -1
  686. package/lib/commands/asset/view.d.ts +0 -188
  687. package/lib/commands/asset/view.js +0 -1365
  688. package/lib/commands/asset/view.js.map +0 -1
  689. package/lib/commands/asset/volume/create.d.ts +0 -23
  690. package/lib/commands/asset/volume/create.js +0 -176
  691. package/lib/commands/asset/volume/create.js.map +0 -1
  692. package/lib/commands/asset/volume/delete.d.ts +0 -19
  693. package/lib/commands/asset/volume/delete.js +0 -112
  694. package/lib/commands/asset/volume/delete.js.map +0 -1
  695. package/lib/commands/asset/volume/list.d.ts +0 -19
  696. package/lib/commands/asset/volume/list.js +0 -70
  697. package/lib/commands/asset/volume/list.js.map +0 -1
  698. package/lib/commands/branch/current.d.ts +0 -10
  699. package/lib/commands/branch/current.js +0 -34
  700. package/lib/commands/branch/current.js.map +0 -1
  701. package/lib/commands/branch/list.d.ts +0 -15
  702. package/lib/commands/branch/list.js +0 -56
  703. package/lib/commands/branch/list.js.map +0 -1
  704. package/lib/commands/branch.d.ts +0 -12
  705. package/lib/commands/branch.js +0 -42
  706. package/lib/commands/branch.js.map +0 -1
  707. package/lib/commands/build.d.ts +0 -38
  708. package/lib/commands/build.js +0 -120
  709. package/lib/commands/build.js.map +0 -1
  710. package/lib/commands/cabinet/create.d.ts +0 -21
  711. package/lib/commands/cabinet/create.js +0 -108
  712. package/lib/commands/cabinet/create.js.map +0 -1
  713. package/lib/commands/cabinet/list.d.ts +0 -23
  714. package/lib/commands/cabinet/list.js +0 -134
  715. package/lib/commands/cabinet/list.js.map +0 -1
  716. package/lib/commands/cabinet/obliterate.d.ts +0 -20
  717. package/lib/commands/cabinet/obliterate.js +0 -83
  718. package/lib/commands/cabinet/obliterate.js.map +0 -1
  719. package/lib/commands/cli.d.ts +0 -10
  720. package/lib/commands/cli.js +0 -100
  721. package/lib/commands/cli.js.map +0 -1
  722. package/lib/commands/commit.d.ts +0 -11
  723. package/lib/commands/commit.js +0 -40
  724. package/lib/commands/commit.js.map +0 -1
  725. package/lib/commands/config/add.d.ts +0 -78
  726. package/lib/commands/config/add.js +0 -560
  727. package/lib/commands/config/add.js.map +0 -1
  728. package/lib/commands/config/delete.d.ts +0 -18
  729. package/lib/commands/config/delete.js +0 -119
  730. package/lib/commands/config/delete.js.map +0 -1
  731. package/lib/commands/config/deploy.d.ts +0 -22
  732. package/lib/commands/config/deploy.js +0 -125
  733. package/lib/commands/config/deploy.js.map +0 -1
  734. package/lib/commands/config/import.d.ts +0 -27
  735. package/lib/commands/config/import.js +0 -196
  736. package/lib/commands/config/import.js.map +0 -1
  737. package/lib/commands/config/view.d.ts +0 -25
  738. package/lib/commands/config/view.js +0 -121
  739. package/lib/commands/config/view.js.map +0 -1
  740. package/lib/commands/csp/login.d.ts +0 -18
  741. package/lib/commands/csp/login.js +0 -123
  742. package/lib/commands/csp/login.js.map +0 -1
  743. package/lib/commands/csp/logout.d.ts +0 -15
  744. package/lib/commands/csp/logout.js +0 -74
  745. package/lib/commands/csp/logout.js.map +0 -1
  746. package/lib/commands/dep/create.d.ts +0 -13
  747. package/lib/commands/dep/create.js +0 -41
  748. package/lib/commands/dep/create.js.map +0 -1
  749. package/lib/commands/dep/install.d.ts +0 -9
  750. package/lib/commands/dep/install.js +0 -30
  751. package/lib/commands/dep/install.js.map +0 -1
  752. package/lib/commands/dep/list.d.ts +0 -55
  753. package/lib/commands/dep/list.js +0 -98
  754. package/lib/commands/dep/list.js.map +0 -1
  755. package/lib/commands/dep/remove.d.ts +0 -12
  756. package/lib/commands/dep/remove.js +0 -62
  757. package/lib/commands/dep/remove.js.map +0 -1
  758. package/lib/commands/dep/source.d.ts +0 -13
  759. package/lib/commands/dep/source.js +0 -83
  760. package/lib/commands/dep/source.js.map +0 -1
  761. package/lib/commands/dep/syncup.d.ts +0 -11
  762. package/lib/commands/dep/syncup.js +0 -54
  763. package/lib/commands/dep/syncup.js.map +0 -1
  764. package/lib/commands/dep/unsource.d.ts +0 -14
  765. package/lib/commands/dep/unsource.js +0 -68
  766. package/lib/commands/dep/unsource.js.map +0 -1
  767. package/lib/commands/dep/upgrade.d.ts +0 -44
  768. package/lib/commands/dep/upgrade.js +0 -244
  769. package/lib/commands/dep/upgrade.js.map +0 -1
  770. package/lib/commands/dep.d.ts +0 -12
  771. package/lib/commands/dep.js +0 -51
  772. package/lib/commands/dep.js.map +0 -1
  773. package/lib/commands/deploy.d.ts +0 -38
  774. package/lib/commands/deploy.js +0 -386
  775. package/lib/commands/deploy.js.map +0 -1
  776. package/lib/commands/enterprise/create.d.ts +0 -20
  777. package/lib/commands/enterprise/create.js +0 -98
  778. package/lib/commands/enterprise/create.js.map +0 -1
  779. package/lib/commands/enterprise/list.d.ts +0 -14
  780. package/lib/commands/enterprise/list.js +0 -84
  781. package/lib/commands/enterprise/list.js.map +0 -1
  782. package/lib/commands/env/add.d.ts +0 -22
  783. package/lib/commands/env/add.js +0 -200
  784. package/lib/commands/env/add.js.map +0 -1
  785. package/lib/commands/environment/create.d.ts +0 -19
  786. package/lib/commands/environment/create.js +0 -89
  787. package/lib/commands/environment/create.js.map +0 -1
  788. package/lib/commands/environment/list.d.ts +0 -25
  789. package/lib/commands/environment/list.js +0 -158
  790. package/lib/commands/environment/list.js.map +0 -1
  791. package/lib/commands/filestore/capture.d.ts +0 -31
  792. package/lib/commands/filestore/capture.js +0 -342
  793. package/lib/commands/filestore/capture.js.map +0 -1
  794. package/lib/commands/host/map.d.ts +0 -33
  795. package/lib/commands/host/map.js +0 -347
  796. package/lib/commands/host/map.js.map +0 -1
  797. package/lib/commands/identity/delete.d.ts +0 -15
  798. package/lib/commands/identity/delete.js +0 -83
  799. package/lib/commands/identity/delete.js.map +0 -1
  800. package/lib/commands/identity/list.d.ts +0 -11
  801. package/lib/commands/identity/list.js +0 -43
  802. package/lib/commands/identity/list.js.map +0 -1
  803. package/lib/commands/identity.d.ts +0 -22
  804. package/lib/commands/identity.js +0 -77
  805. package/lib/commands/identity.js.map +0 -1
  806. package/lib/commands/imageRegistry/capture.d.ts +0 -27
  807. package/lib/commands/imageRegistry/capture.js +0 -160
  808. package/lib/commands/imageRegistry/capture.js.map +0 -1
  809. package/lib/commands/imageRegistry/forget.d.ts +0 -23
  810. package/lib/commands/imageRegistry/forget.js +0 -161
  811. package/lib/commands/imageRegistry/forget.js.map +0 -1
  812. package/lib/commands/imageRegistry/pullSecret/set.d.ts +0 -27
  813. package/lib/commands/imageRegistry/pullSecret/set.js +0 -300
  814. package/lib/commands/imageRegistry/pullSecret/set.js.map +0 -1
  815. package/lib/commands/imageRegistry/pullSecret/unset.d.ts +0 -24
  816. package/lib/commands/imageRegistry/pullSecret/unset.js +0 -243
  817. package/lib/commands/imageRegistry/pullSecret/unset.js.map +0 -1
  818. package/lib/commands/images/add.d.ts +0 -25
  819. package/lib/commands/images/add.js +0 -76
  820. package/lib/commands/images/add.js.map +0 -1
  821. package/lib/commands/images/list.d.ts +0 -14
  822. package/lib/commands/images/list.js +0 -72
  823. package/lib/commands/images/list.js.map +0 -1
  824. package/lib/commands/images/patch.d.ts +0 -14
  825. package/lib/commands/images/patch.js +0 -93
  826. package/lib/commands/images/patch.js.map +0 -1
  827. package/lib/commands/images/remove.d.ts +0 -12
  828. package/lib/commands/images/remove.js +0 -38
  829. package/lib/commands/images/remove.js.map +0 -1
  830. package/lib/commands/images/version/bump.d.ts +0 -18
  831. package/lib/commands/images/version/bump.js +0 -61
  832. package/lib/commands/images/version/bump.js.map +0 -1
  833. package/lib/commands/images/version.d.ts +0 -16
  834. package/lib/commands/images/version.js +0 -65
  835. package/lib/commands/images/version.js.map +0 -1
  836. package/lib/commands/init.d.ts +0 -17
  837. package/lib/commands/init.js +0 -131
  838. package/lib/commands/init.js.map +0 -1
  839. package/lib/commands/kit/create.d.ts +0 -25
  840. package/lib/commands/kit/create.js +0 -142
  841. package/lib/commands/kit/create.js.map +0 -1
  842. package/lib/commands/login.d.ts +0 -22
  843. package/lib/commands/login.js +0 -93
  844. package/lib/commands/login.js.map +0 -1
  845. package/lib/commands/logout.d.ts +0 -8
  846. package/lib/commands/logout.js +0 -37
  847. package/lib/commands/logout.js.map +0 -1
  848. package/lib/commands/merge.d.ts +0 -12
  849. package/lib/commands/merge.js +0 -43
  850. package/lib/commands/merge.js.map +0 -1
  851. package/lib/commands/noc/cluster/create.d.ts +0 -28
  852. package/lib/commands/noc/cluster/create.js +0 -133
  853. package/lib/commands/noc/cluster/create.js.map +0 -1
  854. package/lib/commands/noc/cluster/deinit.d.ts +0 -17
  855. package/lib/commands/noc/cluster/deinit.js +0 -117
  856. package/lib/commands/noc/cluster/deinit.js.map +0 -1
  857. package/lib/commands/noc/cluster/destroy.d.ts +0 -20
  858. package/lib/commands/noc/cluster/destroy.js +0 -138
  859. package/lib/commands/noc/cluster/destroy.js.map +0 -1
  860. package/lib/commands/noc/cluster/forget.d.ts +0 -16
  861. package/lib/commands/noc/cluster/forget.js +0 -137
  862. package/lib/commands/noc/cluster/forget.js.map +0 -1
  863. package/lib/commands/noc/cluster/grant.d.ts +0 -24
  864. package/lib/commands/noc/cluster/grant.js +0 -160
  865. package/lib/commands/noc/cluster/grant.js.map +0 -1
  866. package/lib/commands/noc/cluster/init.d.ts +0 -17
  867. package/lib/commands/noc/cluster/init.js +0 -117
  868. package/lib/commands/noc/cluster/init.js.map +0 -1
  869. package/lib/commands/noc/cluster/list.d.ts +0 -21
  870. package/lib/commands/noc/cluster/list.js +0 -84
  871. package/lib/commands/noc/cluster/list.js.map +0 -1
  872. package/lib/commands/noc/cluster/recreate.d.ts +0 -28
  873. package/lib/commands/noc/cluster/recreate.js +0 -186
  874. package/lib/commands/noc/cluster/recreate.js.map +0 -1
  875. package/lib/commands/pkg/add.d.ts +0 -15
  876. package/lib/commands/pkg/add.js +0 -43
  877. package/lib/commands/pkg/add.js.map +0 -1
  878. package/lib/commands/pkg/list.d.ts +0 -9
  879. package/lib/commands/pkg/list.js +0 -33
  880. package/lib/commands/pkg/list.js.map +0 -1
  881. package/lib/commands/pkg/patch.d.ts +0 -13
  882. package/lib/commands/pkg/patch.js +0 -79
  883. package/lib/commands/pkg/patch.js.map +0 -1
  884. package/lib/commands/pkg/remove.d.ts +0 -12
  885. package/lib/commands/pkg/remove.js +0 -70
  886. package/lib/commands/pkg/remove.js.map +0 -1
  887. package/lib/commands/portal.d.ts +0 -11
  888. package/lib/commands/portal.js +0 -82
  889. package/lib/commands/portal.js.map +0 -1
  890. package/lib/commands/publish.d.ts +0 -21
  891. package/lib/commands/publish.js +0 -52
  892. package/lib/commands/publish.js.map +0 -1
  893. package/lib/commands/pull.d.ts +0 -13
  894. package/lib/commands/pull.js +0 -30
  895. package/lib/commands/pull.js.map +0 -1
  896. package/lib/commands/push.d.ts +0 -13
  897. package/lib/commands/push.js +0 -30
  898. package/lib/commands/push.js.map +0 -1
  899. package/lib/commands/run.d.ts +0 -35
  900. package/lib/commands/run.js +0 -194
  901. package/lib/commands/run.js.map +0 -1
  902. package/lib/commands/secretStore/capture.d.ts +0 -27
  903. package/lib/commands/secretStore/capture.js +0 -175
  904. package/lib/commands/secretStore/capture.js.map +0 -1
  905. package/lib/commands/secretStore/forget.d.ts +0 -20
  906. package/lib/commands/secretStore/forget.js +0 -147
  907. package/lib/commands/secretStore/forget.js.map +0 -1
  908. package/lib/commands/stage.d.ts +0 -13
  909. package/lib/commands/stage.js +0 -65
  910. package/lib/commands/stage.js.map +0 -1
  911. package/lib/commands/stash.d.ts +0 -13
  912. package/lib/commands/stash.js +0 -31
  913. package/lib/commands/stash.js.map +0 -1
  914. package/lib/commands/status.d.ts +0 -12
  915. package/lib/commands/status.js +0 -49
  916. package/lib/commands/status.js.map +0 -1
  917. package/lib/commands/stop.d.ts +0 -10
  918. package/lib/commands/stop.js +0 -52
  919. package/lib/commands/stop.js.map +0 -1
  920. package/lib/commands/switch.d.ts +0 -11
  921. package/lib/commands/switch.js +0 -42
  922. package/lib/commands/switch.js.map +0 -1
  923. package/lib/commands/sync.d.ts +0 -14
  924. package/lib/commands/sync.js +0 -21
  925. package/lib/commands/sync.js.map +0 -1
  926. package/lib/commands/tenant/create.d.ts +0 -27
  927. package/lib/commands/tenant/create.js +0 -120
  928. package/lib/commands/tenant/create.js.map +0 -1
  929. package/lib/commands/tenant/switch.d.ts +0 -24
  930. package/lib/commands/tenant/switch.js +0 -109
  931. package/lib/commands/tenant/switch.js.map +0 -1
  932. package/lib/commands/unstage.d.ts +0 -12
  933. package/lib/commands/unstage.js +0 -58
  934. package/lib/commands/unstage.js.map +0 -1
  935. package/lib/commands/view/dashboard.d.ts +0 -17
  936. package/lib/commands/view/dashboard.js +0 -88
  937. package/lib/commands/view/dashboard.js.map +0 -1
  938. package/lib/commands/view/pods.d.ts +0 -14
  939. package/lib/commands/view/pods.js +0 -88
  940. package/lib/commands/view/pods.js.map +0 -1
  941. package/lib/commands/whereami.d.ts +0 -15
  942. package/lib/commands/whereami.js +0 -123
  943. package/lib/commands/whereami.js.map +0 -1
  944. package/lib/commands/whoami.d.ts +0 -8
  945. package/lib/commands/whoami.js +0 -40
  946. package/lib/commands/whoami.js.map +0 -1
  947. package/lib/deployment.d.ts +0 -2
  948. package/lib/deployment.js +0 -7
  949. package/lib/deployment.js.map +0 -1
  950. package/lib/errors/NoMembershipError.d.ts +0 -8
  951. package/lib/errors/NoMembershipError.js +0 -15
  952. package/lib/errors/NoMembershipError.js.map +0 -1
  953. package/lib/index.d.ts +0 -1
  954. package/lib/index.js +0 -17
  955. package/lib/index.js.map +0 -1
  956. package/lib/k8s-command-base.d.ts +0 -60
  957. package/lib/k8s-command-base.js +0 -204
  958. package/lib/k8s-command-base.js.map +0 -1
  959. package/lib/log-update-wrapper.d.ts +0 -24
  960. package/lib/log-update-wrapper.js +0 -29
  961. package/lib/log-update-wrapper.js.map +0 -1
  962. package/lib/log4js-logger.d.ts +0 -26
  963. package/lib/log4js-logger.js +0 -138
  964. package/lib/log4js-logger.js.map +0 -1
  965. package/lib/ops/INTERFACES_CLI.d.ts +0 -3
  966. package/lib/ops/INTERFACES_CLI.js +0 -8
  967. package/lib/ops/INTERFACES_CLI.js.map +0 -1
  968. package/lib/ops/LocalOps.d.ts +0 -417
  969. package/lib/ops/LocalOps.js +0 -3122
  970. package/lib/ops/LocalOps.js.map +0 -1
  971. package/lib/ops/azure-container-registry-client/azure-container-registry-client.d.ts +0 -0
  972. package/lib/ops/azure-container-registry-client/azure-container-registry-client.js +0 -148
  973. package/lib/ops/azure-container-registry-client/azure-container-registry-client.js.map +0 -1
  974. package/lib/ops/cli-path-walker.d.ts +0 -0
  975. package/lib/ops/cli-path-walker.js +0 -55
  976. package/lib/ops/cli-path-walker.js.map +0 -1
  977. package/lib/ops/codiac-entities/dependency.d.ts +0 -5
  978. package/lib/ops/codiac-entities/dependency.js +0 -11
  979. package/lib/ops/codiac-entities/dependency.js.map +0 -1
  980. package/lib/ops/codiac-entities/index.d.ts +0 -1
  981. package/lib/ops/codiac-entities/index.js +0 -5
  982. package/lib/ops/codiac-entities/index.js.map +0 -1
  983. package/lib/ops/composite-image-registry-client.d.ts +0 -0
  984. package/lib/ops/composite-image-registry-client.js +0 -74
  985. package/lib/ops/composite-image-registry-client.js.map +0 -1
  986. package/lib/ops/data/cli-context-repo.d.ts +0 -61
  987. package/lib/ops/data/cli-context-repo.js +0 -270
  988. package/lib/ops/data/cli-context-repo.js.map +0 -1
  989. package/lib/ops/data/index.d.ts +0 -2
  990. package/lib/ops/data/index.js +0 -6
  991. package/lib/ops/data/index.js.map +0 -1
  992. package/lib/ops/data/npm-config-repo.d.ts +0 -13
  993. package/lib/ops/data/npm-config-repo.js +0 -65
  994. package/lib/ops/data/npm-config-repo.js.map +0 -1
  995. package/lib/ops/docker-config.d.ts +0 -0
  996. package/lib/ops/docker-config.js +0 -131
  997. package/lib/ops/docker-config.js.map +0 -1
  998. package/lib/ops/docker-constants.d.ts +0 -0
  999. package/lib/ops/docker-constants.js +0 -22
  1000. package/lib/ops/docker-constants.js.map +0 -1
  1001. package/lib/ops/docker-credentials-store.d.ts +0 -0
  1002. package/lib/ops/docker-credentials-store.js +0 -238
  1003. package/lib/ops/docker-credentials-store.js.map +0 -1
  1004. package/lib/ops/docker-registry-api-client/docker-registry-api-client.d.ts +0 -0
  1005. package/lib/ops/docker-registry-api-client/docker-registry-api-client.js +0 -289
  1006. package/lib/ops/docker-registry-api-client/docker-registry-api-client.js.map +0 -1
  1007. package/lib/ops/docker-registry-api-client/entities/blob-sum.d.ts +0 -7
  1008. package/lib/ops/docker-registry-api-client/entities/blob-sum.js +0 -13
  1009. package/lib/ops/docker-registry-api-client/entities/blob-sum.js.map +0 -1
  1010. package/lib/ops/docker-registry-api-client/entities/docker-access-actions-enum.d.ts +0 -5
  1011. package/lib/ops/docker-registry-api-client/entities/docker-access-actions-enum.js +0 -10
  1012. package/lib/ops/docker-registry-api-client/entities/docker-access-actions-enum.js.map +0 -1
  1013. package/lib/ops/docker-registry-api-client/entities/docker-auth-token-criteria.d.ts +0 -30
  1014. package/lib/ops/docker-registry-api-client/entities/docker-auth-token-criteria.js +0 -36
  1015. package/lib/ops/docker-registry-api-client/entities/docker-auth-token-criteria.js.map +0 -1
  1016. package/lib/ops/docker-registry-api-client/entities/i-docker-error-response.d.ts +0 -55
  1017. package/lib/ops/docker-registry-api-client/entities/i-docker-error-response.js +0 -52
  1018. package/lib/ops/docker-registry-api-client/entities/i-docker-error-response.js.map +0 -1
  1019. package/lib/ops/docker-registry-api-client/entities/i-docker-list-response.d.ts +0 -7
  1020. package/lib/ops/docker-registry-api-client/entities/i-docker-list-response.js +0 -3
  1021. package/lib/ops/docker-registry-api-client/entities/i-docker-list-response.js.map +0 -1
  1022. package/lib/ops/docker-registry-api-client/entities/image-repository.d.ts +0 -31
  1023. package/lib/ops/docker-registry-api-client/entities/image-repository.js +0 -30
  1024. package/lib/ops/docker-registry-api-client/entities/image-repository.js.map +0 -1
  1025. package/lib/ops/docker-registry-api-client/entities/image-tag-criteria.d.ts +0 -8
  1026. package/lib/ops/docker-registry-api-client/entities/image-tag-criteria.js +0 -14
  1027. package/lib/ops/docker-registry-api-client/entities/image-tag-criteria.js.map +0 -1
  1028. package/lib/ops/docker-registry-api-client/entities/image-tag-list.d.ts +0 -7
  1029. package/lib/ops/docker-registry-api-client/entities/image-tag-list.js +0 -13
  1030. package/lib/ops/docker-registry-api-client/entities/image-tag-list.js.map +0 -1
  1031. package/lib/ops/docker-registry-api-client/entities/manifest-criteria.d.ts +0 -9
  1032. package/lib/ops/docker-registry-api-client/entities/manifest-criteria.js +0 -15
  1033. package/lib/ops/docker-registry-api-client/entities/manifest-criteria.js.map +0 -1
  1034. package/lib/ops/docker-registry-api-client/entities/manifest.d.ts +0 -15
  1035. package/lib/ops/docker-registry-api-client/entities/manifest.js +0 -21
  1036. package/lib/ops/docker-registry-api-client/entities/manifest.js.map +0 -1
  1037. package/lib/ops/docker-registry-api-client/entities/repository-criteria.d.ts +0 -16
  1038. package/lib/ops/docker-registry-api-client/entities/repository-criteria.js +0 -24
  1039. package/lib/ops/docker-registry-api-client/entities/repository-criteria.js.map +0 -1
  1040. package/lib/ops/docker-registry-api-client/entities/token-response.d.ts +0 -15
  1041. package/lib/ops/docker-registry-api-client/entities/token-response.js +0 -15
  1042. package/lib/ops/docker-registry-api-client/entities/token-response.js.map +0 -1
  1043. package/lib/ops/docker-registry-api-client/entities/token.d.ts +0 -17
  1044. package/lib/ops/docker-registry-api-client/entities/token.js +0 -22
  1045. package/lib/ops/docker-registry-api-client/entities/token.js.map +0 -1
  1046. package/lib/ops/docker-registry-api-client/entities/version-check-criteria.d.ts +0 -4
  1047. package/lib/ops/docker-registry-api-client/entities/version-check-criteria.js +0 -10
  1048. package/lib/ops/docker-registry-api-client/entities/version-check-criteria.js.map +0 -1
  1049. package/lib/ops/dx-constants.d.ts +0 -26
  1050. package/lib/ops/dx-constants.js +0 -43
  1051. package/lib/ops/dx-constants.js.map +0 -1
  1052. package/lib/ops/entities/ImageBuildContext.d.ts +0 -12
  1053. package/lib/ops/entities/ImageBuildContext.js +0 -19
  1054. package/lib/ops/entities/ImageBuildContext.js.map +0 -1
  1055. package/lib/ops/entities/PipelineContext.d.ts +0 -21
  1056. package/lib/ops/entities/PipelineContext.js +0 -23
  1057. package/lib/ops/entities/PipelineContext.js.map +0 -1
  1058. package/lib/ops/entities/TenantContext.d.ts +0 -10
  1059. package/lib/ops/entities/TenantContext.js +0 -16
  1060. package/lib/ops/entities/TenantContext.js.map +0 -1
  1061. package/lib/ops/entities/ThaulConfig.d.ts +0 -0
  1062. package/lib/ops/entities/ThaulConfig.js +0 -30
  1063. package/lib/ops/entities/ThaulConfig.js.map +0 -1
  1064. package/lib/ops/entities/azure-service-principal.d.ts +0 -23
  1065. package/lib/ops/entities/azure-service-principal.js +0 -24
  1066. package/lib/ops/entities/azure-service-principal.js.map +0 -1
  1067. package/lib/ops/entities/better-logger.d.ts +0 -0
  1068. package/lib/ops/entities/better-logger.js +0 -2
  1069. package/lib/ops/entities/better-logger.js.map +0 -1
  1070. package/lib/ops/entities/branch.d.ts +0 -13
  1071. package/lib/ops/entities/branch.js +0 -16
  1072. package/lib/ops/entities/branch.js.map +0 -1
  1073. package/lib/ops/entities/cli-config.d.ts +0 -48
  1074. package/lib/ops/entities/cli-config.js +0 -61
  1075. package/lib/ops/entities/cli-config.js.map +0 -1
  1076. package/lib/ops/entities/docker-image.d.ts +0 -60
  1077. package/lib/ops/entities/docker-image.js +0 -3
  1078. package/lib/ops/entities/docker-image.js.map +0 -1
  1079. package/lib/ops/entities/helm-spec.d.ts +0 -15
  1080. package/lib/ops/entities/helm-spec.js +0 -23
  1081. package/lib/ops/entities/helm-spec.js.map +0 -1
  1082. package/lib/ops/entities/index.d.ts +0 -4
  1083. package/lib/ops/entities/index.js +0 -12
  1084. package/lib/ops/entities/index.js.map +0 -1
  1085. package/lib/ops/entities/operation-meta.d.ts +0 -8
  1086. package/lib/ops/entities/operation-meta.js +0 -19
  1087. package/lib/ops/entities/operation-meta.js.map +0 -1
  1088. package/lib/ops/entities/scaffolding.d.ts +0 -19
  1089. package/lib/ops/entities/scaffolding.js +0 -21
  1090. package/lib/ops/entities/scaffolding.js.map +0 -1
  1091. package/lib/ops/extensions/azart-identity-adapter.d.ts +0 -19
  1092. package/lib/ops/extensions/azart-identity-adapter.js +0 -97
  1093. package/lib/ops/extensions/azart-identity-adapter.js.map +0 -1
  1094. package/lib/ops/extensions/npm-identity-adapter-base.d.ts +0 -13
  1095. package/lib/ops/extensions/npm-identity-adapter-base.js +0 -3
  1096. package/lib/ops/extensions/npm-identity-adapter-base.js.map +0 -1
  1097. package/lib/ops/extensions/npmjs-identity-adapter.d.ts +0 -13
  1098. package/lib/ops/extensions/npmjs-identity-adapter.js +0 -64
  1099. package/lib/ops/extensions/npmjs-identity-adapter.js.map +0 -1
  1100. package/lib/ops/git-ops.d.ts +0 -8
  1101. package/lib/ops/git-ops.js +0 -14
  1102. package/lib/ops/git-ops.js.map +0 -1
  1103. package/lib/ops/i-client-for-image-registry.d.ts +0 -0
  1104. package/lib/ops/i-client-for-image-registry.js +0 -17
  1105. package/lib/ops/i-client-for-image-registry.js.map +0 -1
  1106. package/lib/ops/i-identity-handler.d.ts +0 -33
  1107. package/lib/ops/i-identity-handler.js +0 -165
  1108. package/lib/ops/i-identity-handler.js.map +0 -1
  1109. package/lib/ops/i-output-styler.d.ts +0 -0
  1110. package/lib/ops/i-output-styler.js +0 -17
  1111. package/lib/ops/i-output-styler.js.map +0 -1
  1112. package/lib/ops/index.d.ts +0 -12
  1113. package/lib/ops/index.js +0 -15
  1114. package/lib/ops/index.js.map +0 -1
  1115. package/lib/ops/json-utils.d.ts +0 -0
  1116. package/lib/ops/json-utils.js +0 -59
  1117. package/lib/ops/json-utils.js.map +0 -1
  1118. package/lib/ops/no-style-output-styler.d.ts +0 -0
  1119. package/lib/ops/no-style-output-styler.js +0 -30
  1120. package/lib/ops/no-style-output-styler.js.map +0 -1
  1121. package/lib/ops/oauth2-client.ts/oauth2-client.d.ts +0 -23
  1122. package/lib/ops/oauth2-client.ts/oauth2-client.js +0 -64
  1123. package/lib/ops/oauth2-client.ts/oauth2-client.js.map +0 -1
  1124. package/lib/ops/project-initializer.d.ts +0 -36
  1125. package/lib/ops/project-initializer.js +0 -219
  1126. package/lib/ops/project-initializer.js.map +0 -1
  1127. package/lib/ops/scaffolding/base-scaffolding.d.ts +0 -7
  1128. package/lib/ops/scaffolding/base-scaffolding.js +0 -21
  1129. package/lib/ops/scaffolding/base-scaffolding.js.map +0 -1
  1130. package/lib/ops/scaffolding/codiac-api-scaffolding.d.ts +0 -7
  1131. package/lib/ops/scaffolding/codiac-api-scaffolding.js +0 -64
  1132. package/lib/ops/scaffolding/codiac-api-scaffolding.js.map +0 -1
  1133. package/lib/ops/scaffolding/typescript-scaffolding.d.ts +0 -15
  1134. package/lib/ops/scaffolding/typescript-scaffolding.js +0 -163
  1135. package/lib/ops/scaffolding/typescript-scaffolding.js.map +0 -1
  1136. package/lib/ops/test/mock-ui.d.ts +0 -26
  1137. package/lib/ops/test/mock-ui.js +0 -88
  1138. package/lib/ops/test/mock-ui.js.map +0 -1
  1139. package/lib/ops/test/test-extensions.d.ts +0 -13
  1140. package/lib/ops/test/test-extensions.js +0 -71
  1141. package/lib/ops/test/test-extensions.js.map +0 -1
  1142. package/lib/ops/test/when-a-recursive-file-search-is-run.spec.d.ts +0 -2
  1143. package/lib/ops/test/when-a-recursive-file-search-is-run.spec.js +0 -55
  1144. package/lib/ops/test/when-a-recursive-file-search-is-run.spec.js.map +0 -1
  1145. package/lib/ops/test/when-git-branchline-is-attempted.spec.d.ts +0 -2
  1146. package/lib/ops/test/when-git-branchline-is-attempted.spec.js +0 -38
  1147. package/lib/ops/test/when-git-branchline-is-attempted.spec.js.map +0 -1
  1148. package/lib/ops/test/when-versions-are-parsed.spec.d.ts +0 -2
  1149. package/lib/ops/test/when-versions-are-parsed.spec.js +0 -62
  1150. package/lib/ops/test/when-versions-are-parsed.spec.js.map +0 -1
  1151. package/lib/ops/throwing-user-input-provider.d.ts +0 -0
  1152. package/lib/ops/throwing-user-input-provider.js +0 -37
  1153. package/lib/ops/throwing-user-input-provider.js.map +0 -1
  1154. package/lib/ops/workspace-versioner.d.ts +0 -122
  1155. package/lib/ops/workspace-versioner.js +0 -292
  1156. package/lib/ops/workspace-versioner.js.map +0 -1
  1157. package/lib/prettify.d.ts +0 -7
  1158. package/lib/prettify.js +0 -24
  1159. package/lib/prettify.js.map +0 -1
  1160. package/lib/read-stdin.d.ts +0 -2
  1161. package/lib/read-stdin.js +0 -29
  1162. package/lib/read-stdin.js.map +0 -1
  1163. package/lib/relay/contracts/contracts.d.ts +0 -207
  1164. package/lib/relay/contracts/contracts.js +0 -230
  1165. package/lib/relay/contracts/contracts.js.map +0 -1
  1166. package/lib/relay/data/aws-k8s-versions.d.ts +0 -6
  1167. package/lib/relay/data/aws-k8s-versions.js +0 -16
  1168. package/lib/relay/data/aws-k8s-versions.js.map +0 -1
  1169. package/lib/relay/data/aws-node-types.d.ts +0 -37
  1170. package/lib/relay/data/aws-node-types.js +0 -4246
  1171. package/lib/relay/data/aws-node-types.js.map +0 -1
  1172. package/lib/relay/data/aws-regions.d.ts +0 -6
  1173. package/lib/relay/data/aws-regions.js +0 -34
  1174. package/lib/relay/data/aws-regions.js.map +0 -1
  1175. package/lib/relay/extended-relay-client.d.ts +0 -27
  1176. package/lib/relay/extended-relay-client.js +0 -28
  1177. package/lib/relay/extended-relay-client.js.map +0 -1
  1178. package/lib/relay/relay-container.d.ts +0 -41
  1179. package/lib/relay/relay-container.js +0 -298
  1180. package/lib/relay/relay-container.js.map +0 -1
  1181. package/lib/relay/wsclient/relay-socket-listener.d.ts +0 -68
  1182. package/lib/relay/wsclient/relay-socket-listener.js +0 -165
  1183. package/lib/relay/wsclient/relay-socket-listener.js.map +0 -1
  1184. package/lib/relay/wsclient/relay-websocket-client.d.ts +0 -33
  1185. package/lib/relay/wsclient/relay-websocket-client.js +0 -179
  1186. package/lib/relay/wsclient/relay-websocket-client.js.map +0 -1
  1187. package/lib/relay/wsclient/rx-websocket-subject.d.ts +0 -25
  1188. package/lib/relay/wsclient/rx-websocket-subject.js +0 -134
  1189. package/lib/relay/wsclient/rx-websocket-subject.js.map +0 -1
  1190. package/lib/relay/wsclient/socket-contracts.d.ts +0 -22
  1191. package/lib/relay/wsclient/socket-contracts.js +0 -3
  1192. package/lib/relay/wsclient/socket-contracts.js.map +0 -1
  1193. package/lib/standard-probes.d.ts +0 -5
  1194. package/lib/standard-probes.js +0 -22
  1195. package/lib/standard-probes.js.map +0 -1
  1196. package/lib/uilogic/build-configurator.d.ts +0 -21
  1197. package/lib/uilogic/build-configurator.js +0 -111
  1198. package/lib/uilogic/build-configurator.js.map +0 -1
  1199. package/lib/uilogic/cloud-provider-contextualizer.d.ts +0 -46
  1200. package/lib/uilogic/cloud-provider-contextualizer.js +0 -194
  1201. package/lib/uilogic/cloud-provider-contextualizer.js.map +0 -1
  1202. package/lib/uilogic/cloud-resource-configurator-factory.d.ts +0 -41
  1203. package/lib/uilogic/cloud-resource-configurator-factory.js +0 -158
  1204. package/lib/uilogic/cloud-resource-configurator-factory.js.map +0 -1
  1205. package/lib/uilogic/cloud-resource-configurators/aws-k8s-versions.d.ts +0 -11
  1206. package/lib/uilogic/cloud-resource-configurators/aws-k8s-versions.js +0 -16
  1207. package/lib/uilogic/cloud-resource-configurators/aws-k8s-versions.js.map +0 -1
  1208. package/lib/uilogic/cloud-resource-configurators/aws-node-types.d.ts +0 -5
  1209. package/lib/uilogic/cloud-resource-configurators/aws-node-types.js +0 -536
  1210. package/lib/uilogic/cloud-resource-configurators/aws-node-types.js.map +0 -1
  1211. package/lib/uilogic/cloud-resource-configurators/aws-regions.d.ts +0 -10
  1212. package/lib/uilogic/cloud-resource-configurators/aws-regions.js +0 -34
  1213. package/lib/uilogic/cloud-resource-configurators/aws-regions.js.map +0 -1
  1214. package/lib/uilogic/cloud-resource-configurators/aws-resource-configurator.d.ts +0 -38
  1215. package/lib/uilogic/cloud-resource-configurators/aws-resource-configurator.js +0 -348
  1216. package/lib/uilogic/cloud-resource-configurators/aws-resource-configurator.js.map +0 -1
  1217. package/lib/uilogic/cloud-resource-configurators/az-acr-cli-authenticator.d.ts +0 -0
  1218. package/lib/uilogic/cloud-resource-configurators/az-acr-cli-authenticator.js +0 -78
  1219. package/lib/uilogic/cloud-resource-configurators/az-acr-cli-authenticator.js.map +0 -1
  1220. package/lib/uilogic/cloud-resource-configurators/az-interactive-login-configurator.d.ts +0 -42
  1221. package/lib/uilogic/cloud-resource-configurators/az-interactive-login-configurator.js +0 -248
  1222. package/lib/uilogic/cloud-resource-configurators/az-interactive-login-configurator.js.map +0 -1
  1223. package/lib/uilogic/cloud-resource-configurators/azure-resource-configurator.d.ts +0 -110
  1224. package/lib/uilogic/cloud-resource-configurators/azure-resource-configurator.js +0 -782
  1225. package/lib/uilogic/cloud-resource-configurators/azure-resource-configurator.js.map +0 -1
  1226. package/lib/uilogic/cloud-resource-configurators/azure-types.d.ts +0 -0
  1227. package/lib/uilogic/cloud-resource-configurators/azure-types.js +0 -10
  1228. package/lib/uilogic/cloud-resource-configurators/azure-types.js.map +0 -1
  1229. package/lib/uilogic/cloud-resource-configurators/docker-hub-resource-configurator.d.ts +0 -24
  1230. package/lib/uilogic/cloud-resource-configurators/docker-hub-resource-configurator.js +0 -106
  1231. package/lib/uilogic/cloud-resource-configurators/docker-hub-resource-configurator.js.map +0 -1
  1232. package/lib/uilogic/cloud-resource-configurators/helm-resource-configurator.d.ts +0 -16
  1233. package/lib/uilogic/cloud-resource-configurators/helm-resource-configurator.js +0 -45
  1234. package/lib/uilogic/cloud-resource-configurators/helm-resource-configurator.js.map +0 -1
  1235. package/lib/uilogic/cloud-resource-configurators/unsupported-resource-configurator.d.ts +0 -18
  1236. package/lib/uilogic/cloud-resource-configurators/unsupported-resource-configurator.js +0 -62
  1237. package/lib/uilogic/cloud-resource-configurators/unsupported-resource-configurator.js.map +0 -1
  1238. package/lib/uilogic/enterprise-contextualizer.d.ts +0 -76
  1239. package/lib/uilogic/enterprise-contextualizer.js +0 -671
  1240. package/lib/uilogic/enterprise-contextualizer.js.map +0 -1
  1241. package/lib/uilogic/environment-contextualizer.d.ts +0 -15
  1242. package/lib/uilogic/environment-contextualizer.js +0 -43
  1243. package/lib/uilogic/environment-contextualizer.js.map +0 -1
  1244. package/lib/uilogic/i-cluster-configurator.d.ts +0 -9
  1245. package/lib/uilogic/i-cluster-configurator.js +0 -3
  1246. package/lib/uilogic/i-cluster-configurator.js.map +0 -1
  1247. package/lib/uilogic/i-login-configurator.d.ts +0 -6
  1248. package/lib/uilogic/i-login-configurator.js +0 -3
  1249. package/lib/uilogic/i-login-configurator.js.map +0 -1
  1250. package/lib/uilogic/i-registry-configurator.d.ts +0 -6
  1251. package/lib/uilogic/i-registry-configurator.js +0 -3
  1252. package/lib/uilogic/i-registry-configurator.js.map +0 -1
  1253. package/lib/uilogic/i-secret-store-configurator.d.ts +0 -7
  1254. package/lib/uilogic/i-secret-store-configurator.js +0 -3
  1255. package/lib/uilogic/i-secret-store-configurator.js.map +0 -1
  1256. package/lib/uilogic/image-configurator.d.ts +0 -133
  1257. package/lib/uilogic/image-configurator.js +0 -578
  1258. package/lib/uilogic/image-configurator.js.map +0 -1
  1259. package/lib/uilogic/image-contextualizer.d.ts +0 -24
  1260. package/lib/uilogic/image-contextualizer.js +0 -90
  1261. package/lib/uilogic/image-contextualizer.js.map +0 -1
  1262. package/lib/uilogic/image-registry-contextualizer.d.ts +0 -28
  1263. package/lib/uilogic/image-registry-contextualizer.js +0 -127
  1264. package/lib/uilogic/image-registry-contextualizer.js.map +0 -1
  1265. package/lib/uilogic/index.d.ts +0 -9
  1266. package/lib/uilogic/index.js +0 -14
  1267. package/lib/uilogic/index.js.map +0 -1
  1268. package/lib/uilogic/prompt-select-fuzzy.d.ts +0 -0
  1269. package/lib/uilogic/prompt-select-fuzzy.js +0 -139
  1270. package/lib/uilogic/prompt-select-fuzzy.js.map +0 -1
  1271. package/lib/uilogic/render-methods.d.ts +0 -12
  1272. package/lib/uilogic/render-methods.js +0 -65
  1273. package/lib/uilogic/render-methods.js.map +0 -1
  1274. package/lib/uilogic/tenant-contextualizer.d.ts +0 -79
  1275. package/lib/uilogic/tenant-contextualizer.js +0 -578
  1276. package/lib/uilogic/tenant-contextualizer.js.map +0 -1
  1277. package/lib/user-context-loader.d.ts +0 -60
  1278. package/lib/user-context-loader.js +0 -184
  1279. package/lib/user-context-loader.js.map +0 -1
@@ -1,578 +1,578 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TenantContextualizer = void 0;
4
- const tslib_1 = require("tslib");
5
- const auth_entities_1 = require("@codiac.io/codiac-common/security/auth-entities");
6
- const utilities_1 = require("@codiac.io/codiac-common/utilities");
7
- const codiac_relay_contracts_1 = require("@codiac.io/codiac-relay-contracts");
8
- const ops_1 = require("../ops");
9
- const user_context_loader_1 = require("../user-context-loader");
10
- const stringify = require("json-stringify-safe");
11
- /** Interfaces with CLI user to establish a tenant context. */
12
- class TenantContextualizer {
13
- /**
14
- * @param projCfg The In-memory representation of the project's thaulconfig file.
15
- */
16
- constructor(projCfg, authClient, apiClient, _projCfgRepo, ui, styler, logger) {
17
- this.projCfg = projCfg;
18
- this.authClient = authClient;
19
- this._projCfgRepo = _projCfgRepo;
20
- this.ui = ui;
21
- this.styler = styler;
22
- this.logger = logger;
23
- this.userContextLoader = new user_context_loader_1.UserContextLoader(logger);
24
- this.userContextRepo = new user_context_loader_1.UserContextManager(apiClient, logger);
25
- }
26
- /** Ensures that a valid tenant is assigned
27
- * and the user has a valid tenant contributor token.
28
- *
29
- * @param currentContext The Machine-user context. It's just the starting point, not necessarily the right one. ie: Project config enforcement may switch it on you.
30
- */
31
- establishTenantContext(currentContext) {
32
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
33
- return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
34
- try {
35
- // Step -1) Enforce the proect tenant c. Proj config should govern. If we are in a project, and there's no tenant code, then remain anonymous.?
36
- /** This tenant code MUST BE ENFORCED. */
37
- let requiredTenantCode;
38
- /** This tenant code is NOT enforced. */
39
- let suggestedTenantCode;
40
- if (this.projCfg && this._projCfgRepo) {
41
- // ----------------------------
42
- // WITHIN A PROJECT FOLDER
43
- // If there's a project tenant code set, then we HAVE TO ENFORCE IT.
44
- // Otherwise the interaction can end up with whatever tenant code is convenient or selected.
45
- if (this.projCfg.tenantCode !== undefined
46
- && this.projCfg.tenantCode !== ""
47
- && this.projCfg.tenantCode != ops_1.DxConstants.UNREGISTERED_TENANT_CODE) {
48
- requiredTenantCode = this.projCfg.tenantCode;
49
- }
50
- // ----------------------------
51
- }
52
- else {
53
- // ----------------------------
54
- // ENTERPRISE-ONLY OR PRE-INIT: OUTSIDE OF PROJECT FOLDER
55
- // Nothing to fall back on here, this var is only a suggestion,
56
- // and there may be no requirement.
57
- // The user interactions below will reconcile an anonymous user.
58
- suggestedTenantCode = currentContext === null || currentContext === void 0 ? void 0 : currentContext.currentTenantCode;
59
- // ----------------------------
60
- }
61
- /** Defaults to anonymous */
62
- let loadedUser;
63
- if (requiredTenantCode !== null && requiredTenantCode !== void 0 ? requiredTenantCode : suggestedTenantCode) {
64
- // There are 5 cases we need to support:
65
- // 1) Cached user's current tenant code is a match
66
- // 2) Cached user has a match in its other profiles
67
- // 3) Cached user has no match, but it has one online (ie: cache is stale)
68
- // 4) Cached user has no matches anywhere.
69
- // 5) There is no cached user.
70
- // This loaded user is either a match, it's a principal, or its undefined.
71
- loadedUser = yield this.tryMatchGivenOrCached((requiredTenantCode !== null && requiredTenantCode !== void 0 ? requiredTenantCode : suggestedTenantCode), currentContext);
72
- }
73
- else {
74
- loadedUser = currentContext; // there's no requirements, we may as well use what we've got.
75
- }
76
- // ---ORIGINAL-------------------------
77
- // // STEP a: Load any locally cached user and tenant profiles
78
- // /** Defaults to anonymous */
79
- // let cachedUserContext = currentContext ?? this.userContextLoader.loadUserContext(this.projCfg.tenantCode);
80
- // this.logger.trace(`After loadUserContext(${this.projCfg.tenantCode})`);
81
- // // STEP b: Gather up whatever we have stored for user and tenant tokens
82
- // let projTenantCode = (this.projCfg.tenantCode && this.projCfg.tenantCode != DxConstants.UNREGISTERED_TENANT_CODE) ? this.projCfg.tenantCode : undefined;
83
- // this.logger.trace(`Project tenantCode: ${projTenantCode}`);
84
- // ----------------------------
85
- let ultimateUserContext;
86
- if (loadedUser && (requiredTenantCode !== null && requiredTenantCode !== void 0 ? requiredTenantCode : suggestedTenantCode)) {
87
- ultimateUserContext = ultimateUserContext !== null && ultimateUserContext !== void 0 ? ultimateUserContext : this.tryUseCurrentToken(loadedUser, (requiredTenantCode !== null && requiredTenantCode !== void 0 ? requiredTenantCode : suggestedTenantCode));
88
- this.logger.trace(`Ultimate UserContext after tryUseCurrentToken: `, ultimateUserContext);
89
- ultimateUserContext = ultimateUserContext !== null && ultimateUserContext !== void 0 ? ultimateUserContext : yield this.trySwitchTenant(loadedUser, (requiredTenantCode !== null && requiredTenantCode !== void 0 ? requiredTenantCode : suggestedTenantCode));
90
- }
91
- this.logger.trace(`Cached UserContext before user interaction: `, loadedUser);
92
- this.logger.trace(`Ultimate UserContext before user interaction: `, ultimateUserContext);
93
- // Methods below call out for user input.
94
- if (requiredTenantCode) {
95
- // ENFORCE IT. This will block the command if they cant authenticate.
96
- ultimateUserContext = ultimateUserContext !== null && ultimateUserContext !== void 0 ? ultimateUserContext : yield this.tryAuthenticateUnderTenant(requiredTenantCode, loadedUser === null || loadedUser === void 0 ? void 0 : loadedUser.userName);
97
- // } else if (suggestedTenantCode) {
98
- // // User was logged in but either has an expired token (most likely) or is no longer part of the suggested tenant
99
- // // User should be prompted to login again, but given the option to switch tenants, using suggestedTenantCode as a default.
100
- // ultimateUserContext = ultimateUserContext ?? await this.tryAuthenticateUnderTenant(suggestedTenantCode, loadedUser?.userName);
101
- }
102
- else { // this is an "else" because we are not going to allow this command to change the project tenant assignment (only add one if it hasnt been assigned).
103
- ultimateUserContext = ultimateUserContext !== null && ultimateUserContext !== void 0 ? ultimateUserContext : yield this.trySelectFromMyTenants(loadedUser);
104
- ultimateUserContext = ultimateUserContext !== null && ultimateUserContext !== void 0 ? ultimateUserContext : yield this.tryRegisterNewTenant(loadedUser);
105
- }
106
- resolve(ultimateUserContext);
107
- }
108
- catch (err) {
109
- reject(err);
110
- }
111
- }));
112
- });
113
- }
114
- // ==========================================================================
115
- // PRIVATE SUPPORTING METHODS
116
- // ==========================================================================
117
- /** Checks the given user context and then the machine user configuration for a user profile with the given tenant.
118
- *
119
- * Returns a principal user context (undefined currentTenantCode properties) if it doesnt have a matching tenant profile.
120
- * Returns `undefined` if no context found at all.
121
- *
122
- * DOES NOT throw encountered exceptions, so that a login prompt can follow in case something is corrupted.
123
- *
124
- * DOES NOT validate or authenticate - merely loads whatever is the local cache.
125
- */
126
- tryMatchGivenOrCached(tenantCode, currentContext) {
127
- var _a, _b;
128
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
129
- let found;
130
- try {
131
- // either the current context is a match,
132
- if ((currentContext === null || currentContext === void 0 ? void 0 : currentContext.currentTenantCode) === tenantCode) {
133
- found = currentContext; // current state A-OK.
134
- }
135
- else if (currentContext) {
136
- this.userContextLoader.trySetCurrentProfileFor(tenantCode, currentContext); // We might have a cached profile for this tenant...
137
- found = currentContext; // its either matching or a principal user context without a matching profile onboard (could be stale tho).
138
- }
139
- else {
140
- found = this.userContextLoader.loadUserContext(tenantCode);
141
- }
142
- }
143
- catch (err) {
144
- this.logger.debug(`Error searching for cached user under tenant code: ${tenantCode}: ${(_a = err.name) !== null && _a !== void 0 ? _a : ""} ${(_b = err.message) !== null && _b !== void 0 ? _b : ""}`, stringify(err));
145
- }
146
- finally {
147
- return found;
148
- }
149
- });
150
- }
151
- /** Returns a valid tenant context if the given tenant is already current on the given context and the token isnt expired. */
152
- tryUseCurrentToken(currentContext, tenantCode) {
153
- if (currentContext.userName != codiac_relay_contracts_1.UserContext.ANONYMOUS_USERNAME
154
- && currentContext.currentTenantCode == tenantCode
155
- && currentContext.currentToken
156
- && currentContext.tokenExpiration
157
- && (0, utilities_1.isFuture)(currentContext.tokenExpiration)) {
158
- return currentContext;
159
- }
160
- else {
161
- return undefined;
162
- }
163
- }
164
- /** Attempts to switch the userContext to a locally cached profile for the given tenant,
165
- * and if not found, requests a switch from the auth service.
166
- * The current userContext will only be modified if the switch is successfully made.
167
- * throws is the userContext does not already contain at least one token that will identify the user (regardless of tenant).
168
- * SIDE-EFFECT: This may refresh the currentToken on the current user context and cache it to the user context file. */
169
- trySwitchTenant(currentContext, newTenantCode) {
170
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
171
- return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
172
- try {
173
- let ultimate;
174
- if (currentContext.userName != codiac_relay_contracts_1.UserContext.ANONYMOUS_USERNAME) {
175
- if (currentContext.tokens && currentContext.tokens[newTenantCode] && !this.authClient.Auth.isExpired(currentContext.tokens[newTenantCode])) { // Use the locally cached token
176
- // We already have an unexpired profile cached for this tenant. Just make it the current one on the userContext object.
177
- ultimate = currentContext;
178
- ultimate.currentTenantCode = newTenantCode;
179
- ultimate.currentToken = currentContext.tokens[newTenantCode];
180
- ultimate.tokenExpiration = this.authClient.Auth.extractTokenExpiration(ultimate.currentToken);
181
- this.userContextRepo.writeUserContext(ultimate);
182
- this.logger.trace(`Found an unexpired token for [${currentContext.userName}] under tenant: [${newTenantCode}].`);
183
- }
184
- else { // See if the remote service will let us switch
185
- // Get ANY unexpired token to authenticate with
186
- // (cuz we're gonna talk to the server and have IT switch our tenant)
187
- let token = (!currentContext.tokenExpiration || (0, utilities_1.isFuture)(currentContext.tokenExpiration)) ? currentContext.currentToken : undefined;
188
- if (!token && currentContext.tokens) {
189
- // Use one from another profile... (any unexpired tenant token will do - we just need to identify the user)
190
- for (let tc in currentContext.tokens) {
191
- if (!this.authClient.Auth.isExpired(currentContext.tokens[tc])) {
192
- token = currentContext.tokens[tc];
193
- this.logger.trace(`Found an unexpired token for [${currentContext.userName}] under tenant: [${tc}]. Using this to authenticate with the api to attempt a tenant switch.`);
194
- break;
195
- }
196
- }
197
- }
198
- if (token) {
199
- // Ask the server...
200
- this.logger.trace(`Asking api to switch tenant.`);
201
- let switchResult = yield this.authClient.AuthLegacy.switchTenant(token, newTenantCode);
202
- if (switchResult.success && switchResult.output) {
203
- this._user = switchResult.output.user;
204
- ultimate = currentContext;
205
- ultimate.currentTenantCode = switchResult.output.user.tenantCode;
206
- ultimate.currentToken = switchResult.output.token;
207
- ultimate.tokenExpiration = switchResult.output.expiration;
208
- if (ultimate.currentTenantCode) {
209
- ultimate.tokens[ultimate.currentTenantCode] = ultimate.currentToken;
210
- }
211
- this.userContextRepo.writeUserContext(ultimate);
212
- this.logger.trace(`Successfully Switched user context to tenant [${ultimate.currentTenantCode}] via api.`);
213
- }
214
- else if (switchResult.output) {
215
- // We got back a failure but refreshed the token we were using.
216
- if (token == currentContext.currentToken) /* ie: if we used the token from the original context */ {
217
- this._user = switchResult.output.user;
218
- currentContext.currentToken = switchResult.output.token; // is currentContext passed in byRef? Will this assignment be honored outside this method?
219
- currentContext.tokenExpiration = switchResult.output.expiration;
220
- }
221
- else if (this._user) {
222
- this._user.profiles = switchResult.output.user.profiles; // The token was from a random tenant, so dont switch the current users tenant, just update its list of tenant profiles.
223
- }
224
- currentContext.tokens[switchResult.output.user.tenantCode] = switchResult.output.token;
225
- this.userContextRepo.writeUserContext(currentContext);
226
- // We arent registered for the project tenant (http 403 ?) <--- We need to prompt for new login creds (they may want to try another user account) OR fail loudly here.
227
- this.renderNotAMember(currentContext.userName, newTenantCode);
228
- }
229
- else {
230
- // Our current token was invalid or expired, (http 422 ?) <-- we need to prompt for just password. (NOTE: That'll be server hit #2 in this sequence)
231
- }
232
- }
233
- else {
234
- // We didnt have an unexpired token to use for this.
235
- }
236
- }
237
- }
238
- resolve(ultimate);
239
- }
240
- catch (err) {
241
- reject(err);
242
- }
243
- }));
244
- });
245
- }
246
- /** Only diff betw this an authenticate is that
247
- * this method only returns a valid tenant context
248
- * (whereas authenticate returns a user or tenant context). */
249
- tryAuthenticateUnderTenant(tenantCode, defaultUserName) {
250
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
251
- return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
252
- try {
253
- let ultimate;
254
- let newContext = yield this.authenticate(tenantCode, defaultUserName);
255
- if (newContext) {
256
- if (newContext.currentTenantCode == tenantCode) {
257
- ultimate = newContext;
258
- }
259
- else {
260
- this.renderNotAMember(newContext.userName, tenantCode);
261
- }
262
- }
263
- resolve(ultimate);
264
- }
265
- catch (err) {
266
- reject(err);
267
- }
268
- }));
269
- });
270
- }
271
- trySelectFromMyTenants(currentContext, allowAddNew) {
272
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
273
- return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
274
- try {
275
- let ultimate;
276
- // Step 1: GET THE USER'S LIST OF TENANTS (se we can access an updated list of profiles.
277
- // They gotta be up to date cuz access to that tenant may have been granted just seconds ago).
278
- // We may need to authenticate here. Or perhaps refresh token. Where can we store the user from a previous server trip? do we need to?
279
- if (currentContext)
280
- this.logger.trace("currentContext token BEFORE getUserTenants...", currentContext.currentToken);
281
- else
282
- this.logger.trace("No currentContext BEFORE getUserTenants");
283
- currentContext = yield this.establishPrincipalContext(currentContext); // shouldnt we do this before we do anything else in this class?
284
- let myTenants = [];
285
- if (currentContext === null || currentContext === void 0 ? void 0 : currentContext.currentToken) {
286
- myTenants = yield this.getUserTenants(this._user);
287
- }
288
- if (currentContext)
289
- this.logger.trace("currentContext token AFTER getUserTenants...", currentContext.currentToken);
290
- else
291
- this.logger.trace("No currentContext AFTER getUserTenants");
292
- if (myTenants && myTenants.length > 0) {
293
- let tenantCode = yield this.promptToSelectTenant(myTenants, allowAddNew);
294
- if (tenantCode) {
295
- if (tenantCode == TenantContextualizer.CODE_FOR_NEW_TENANT) {
296
- tenantCode = undefined; // this will lead us to createNewTenant while still allowing us to recognize a cancel.
297
- }
298
- else {
299
- if (!currentContext)
300
- currentContext = yield this.authenticate(); // this should never happen - we already did so to get the list of tenant profiles.
301
- if (currentContext) {
302
- ultimate = yield this.trySwitchTenant(currentContext, tenantCode); // Call server if we dont already have a token for the selected tenant.
303
- if (ultimate) {
304
- // Commented out bc: TenantContextulizer should NOT be creating a proj cfg where there wasnt one. The init command has the sole responsibility there.
305
- // if (!this.projCfg) this.projCfg = this.createDefaultProjectConfig(); // This is avoiding a corrupted project folder.
306
- // Update the project config if available
307
- if (this.projCfg && this._projCfgRepo) {
308
- this.projCfg.tenantCode = tenantCode;
309
- yield this._projCfgRepo.updateProjectConfigFile(this.projCfg);
310
- }
311
- }
312
- }
313
- }
314
- }
315
- else {
316
- this.cancel(); // user gave up: stop the bus.
317
- }
318
- }
319
- resolve(ultimate);
320
- }
321
- catch (err) {
322
- reject(err);
323
- }
324
- }));
325
- });
326
- }
327
- /** Side effect: Overwrites this._user if it s able to refresh it from the auth api */
328
- establishPrincipalContext(context) {
329
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
330
- return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
331
- try {
332
- if (!this._user) {
333
- if (context && context.userName != codiac_relay_contracts_1.UserContext.ANONYMOUS_USERNAME && (!context.tokenExpiration || (0, utilities_1.isFuture)(context.tokenExpiration))) {
334
- let refreshResult;
335
- try {
336
- refreshResult = yield this.userContextRepo.refreshUserContext(context);
337
- }
338
- catch (err) {
339
- this.logger.warn(`Failed to refresh your user context, leaving your api token potentially stale, preventing further communications: ${err.message || ""}`, err);
340
- }
341
- // ----------------------------------------------------------------------------------
342
- // TODO: Review this logic for refresh/expiration fails
343
- // that should run an authenticate but arent...
344
- // ----------------------------------------------------------------------------------
345
- if (refreshResult) {
346
- if (refreshResult.user) {
347
- this.logger.debug("Setting this.User from refresh output...");
348
- this._user = refreshResult.user;
349
- this.logger.debug(`this._user profile count: ${this._user.profiles.length}`);
350
- }
351
- if (refreshResult.context) {
352
- this.logger.debug("Setting context from refresh output...");
353
- context = refreshResult.context;
354
- }
355
- // } else {
356
- // if (context.currentToken && context.currentTenantCode && context.userName) {
357
- // // Allow for use while disconnected.
358
- // // TODO: retrieve a locally cached user object.
359
- // this._user = new User(context.currentTenantCode, "", "", "", context.userName);
360
- // this._user.profiles = [];
361
- // for (let tenantCode in context.tokens) {
362
- // this._user.profiles.push(new AccessProfile(tenantCode));
363
- // }
364
- // this.logger.warn(`Using an instance of the current user sparsely populated from cache.`);
365
- // }
366
- }
367
- }
368
- if (!this._user) {
369
- let defaultUserName = (context && context.userName != codiac_relay_contracts_1.UserContext.ANONYMOUS_USERNAME) ? context.userName : undefined;
370
- let currentTenantCode = (context && context.currentTenantCode) || undefined;
371
- context = yield this.authenticate(currentTenantCode, defaultUserName);
372
- }
373
- }
374
- resolve(context);
375
- }
376
- catch (err) {
377
- reject(err);
378
- }
379
- }));
380
- });
381
- }
382
- getUserTenants(user) {
383
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
384
- return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
385
- var _a, _b;
386
- try {
387
- let myTenants = [];
388
- this.logger.write(`Retrieving tenants of user [${(user === null || user === void 0 ? void 0 : user.login) || "anonymous"}]`);
389
- let myAcctResult = yield this.authClient.AuthLegacy.whoAmI();
390
- if (myAcctResult.error)
391
- throw myAcctResult.error;
392
- if (((_a = myAcctResult.output) === null || _a === void 0 ? void 0 : _a.profiles) && ((_b = myAcctResult.output) === null || _b === void 0 ? void 0 : _b.profiles.length) > 0) {
393
- let myProfiles = myAcctResult.output.profiles;
394
- // We're gonna put the tenantCode in place of the name for now cuz that's all that we get with whoami.
395
- // TODO: Consider storing AuthTenant.name with the AccessProfile entity so we can make it readable without an extra db hit.
396
- myTenants = myProfiles.map(ap => new auth_entities_1.AuthTenant(ap.tenantCode, ap.tenantCode));
397
- // If we want the tenant names...
398
- // let codesCsv = myProfiles.map(p => p.tenantCode).join(",");
399
- // let criteria: TenantCriteria = { mine: true }; // <----- TODO !!! (works off current user)
400
- // let result = await this.apiClient.tryReadMany(AuthTenant, TenantCriteria, criteria);
401
- // OR
402
- // let result = await this.authClient.getMyTenants();
403
- // this.logger.trace("Result of attempt to get user tenants",result)
404
- }
405
- resolve(myTenants);
406
- }
407
- catch (err) {
408
- reject(err);
409
- }
410
- }));
411
- });
412
- }
413
- /** Prompts the user to select a tenant from the given list of tenantCodes.
414
- * Returns undefined if cancelled, and TenantContextualizer.CODE_FOR_NEW_TENANT if "register new" is selected.
415
- * @param tenants List of tenants from which to select.
416
- * @param allowAddNew Inserts an option to add a new tenant. (NOTE: this method DOES NOT perform the add new action itself!)
417
- */
418
- promptToSelectTenant(tenants, allowAddNew = true) {
419
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
420
- return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
421
- try {
422
- let choices = tenants.map(t => {
423
- return { name: t.name, value: t.code };
424
- });
425
- if (allowAddNew) {
426
- choices.push({ name: "(Register new tenant)", value: TenantContextualizer.CODE_FOR_NEW_TENANT });
427
- }
428
- this.ui.userMessage(`Your project is not assigned to a tenant.`);
429
- this.ui.userMessage(`Please assign it to one of your organizations or register a new organization...`);
430
- let selected = yield this.ui.promptSelect('tenantCode', 'Select a Tenant:', choices);
431
- // let result = await inquirer.prompt({ type: 'list', name: 'tenantCode', message: 'Select a Tenant:', choices: choices});
432
- // let selected: string|undefined = result.tenantCode;
433
- resolve(selected);
434
- }
435
- catch (err) {
436
- reject(err);
437
- }
438
- }));
439
- });
440
- }
441
- /** Returns a tenant context, a user context, or undefined if operation cancelled.
442
- * Caches the new user context.
443
- * Throws any exceptions.
444
- *
445
- * `unregistered` tenant code gets ignored.
446
- *
447
- * @param login
448
- * @param silent (optional: defaults to false) When set to true, suppresses the prompts to confirm the given defaults. Requires defaultLogin and defaultPassword to be set. Also requires tenantCode if the current user has more than one tenant profile and it cannot be derived decisively from the current context.
449
- */
450
- authenticate(tenantCode, login, password, silent = false) {
451
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
452
- return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
453
- var _a, _b;
454
- try {
455
- let defaults = { u: login, p: password, t: tenantCode };
456
- let newContext;
457
- do {
458
- newContext = undefined;
459
- defaults.t = (defaults.t !== undefined && defaults.t !== ops_1.DxConstants.UNREGISTERED_TENANT_CODE) ? defaults.t : undefined;
460
- if (!silent) {
461
- this.ui.userMessage(`Please authenticate with Codiac ${(defaults.t !== undefined) ? " under tenant " + this.styler.hilite(defaults.t) : ""} (CTRL-C to cancel)`);
462
- defaults.u = yield this.ui.prompt("userName", `Username: `, true, defaults.u);
463
- }
464
- if (defaults.u) {
465
- if (!silent) {
466
- defaults.p = (_a = defaults.p) !== null && _a !== void 0 ? _a : yield this.ui.promptPassword("password", "Password ");
467
- }
468
- if (defaults.p) {
469
- this.logger.trace(`Authenticating against ${this.authClient.apiRootUrl}`);
470
- this.ui.startSpinner("Authenticating...");
471
- let authResult = yield this.authClient.AuthLegacy.authenticate(defaults.u, defaults.p, defaults.t);
472
- if (authResult.success === true) {
473
- this.ui.stopSpinner("Success!");
474
- }
475
- else {
476
- this.ui.stopSpinner("Failed.");
477
- }
478
- this.logger.trace("", JSON.stringify(authResult, undefined, ' '));
479
- if (authResult.error) {
480
- throw authResult.error;
481
- }
482
- else if (authResult.output) {
483
- let token = authResult.output.token;
484
- let userName = authResult.output.user.login;
485
- let tenantCode = authResult.output.user.tenantCode;
486
- let exp = authResult.output.expiration;
487
- // this.passwordLastEntered = password; // we're gonna need this later if we need to register a new tenant (cuz the tenantRegn endpoint doent support a user token yet.)
488
- newContext = yield this.userContextRepo.saveToUserContext(newContext, userName, token, tenantCode, exp);
489
- this._user = authResult.output.user;
490
- }
491
- else if (silent == true) {
492
- // Silent mode only gets one shot at this.
493
- throw new Error((_b = authResult.message) !== null && _b !== void 0 ? _b : `Authentication failed`);
494
- }
495
- }
496
- }
497
- // Dump em if they didnt get fully hydrated by this point.
498
- if (silent && (defaults.u === undefined || defaults.p === undefined)) {
499
- throw new Error(`Cannot authenticate using "silent": both login and password must be provided.`);
500
- }
501
- } while (!newContext);
502
- resolve(newContext);
503
- }
504
- catch (err) {
505
- reject(err);
506
- }
507
- }));
508
- });
509
- }
510
- isNullOrEmpty(value) {
511
- return (value == undefined || value == "");
512
- }
513
- tryRegisterNewTenant(currentContext, companyName, tenantCode) {
514
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
515
- return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
516
- var _a, _b;
517
- try {
518
- let ultimate;
519
- let tenantName = companyName !== null && companyName !== void 0 ? companyName : yield this.ui.prompt("tenantName", "Enter the full name of the organization: ", true);
520
- // HACK: We happen to know that the authenticate will have necessarily been run before this was called,
521
- // and we're keeping the pwd from that run in memory just so we can fire this request.
522
- if (!this._user) {
523
- // Wanna authenticate here?
524
- throw new Error("RegisterTenant failed: No user was provided.");
525
- }
526
- else if (!tenantName) {
527
- // this is a null gate - it can never happen bc the prompt is required;
528
- throw new Error("RegisterTenant failed: No tenant name was provided.");
529
- }
530
- else {
531
- let createNewUser = this.isNullOrEmpty(currentContext === null || currentContext === void 0 ? void 0 : currentContext.currentToken); // we will have already established the user context
532
- let tenantResult = yield this.authClient.AuthLegacy.registerTenant(tenantName, createNewUser, this._user.login, this._user.password, tenantCode, currentContext.currentToken || this.authClient.authToken);
533
- if (tenantResult.error) {
534
- throw tenantResult.error;
535
- }
536
- else if (tenantResult.success && tenantResult.output) {
537
- let token = this.authClient.authToken; // thats a valid force - we will def have one if the register call succeeded
538
- ultimate = yield this.userContextRepo.saveToUserContext(currentContext, this._user.login, token, tenantResult.output.code);
539
- if (this.projCfg && this._projCfgRepo) {
540
- this.projCfg.tenantCode = tenantResult.output.code;
541
- yield this._projCfgRepo.updateProjectConfigFile(this.projCfg);
542
- }
543
- }
544
- else {
545
- // ?? Fail? Is this a valid scenario?
546
- throw new Error("RegisterTenant failed: " + tenantResult.message + tenantResult.error);
547
- }
548
- }
549
- resolve(ultimate);
550
- }
551
- catch (err) {
552
- this.logger.debug(`Error attempting to register new tenant: ${err.message || ""}${((_b = (_a = err.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.message) || ""}`, (err.toJSON) ? err.toJSON() : err);
553
- reject(err);
554
- }
555
- }));
556
- });
557
- }
558
- cancel() {
559
- throw new Error("Action cancelled. No work was done.");
560
- // this._ui.userMessage("Action cancelled. No work was done.");
561
- // this.exit();
562
- }
563
- /** logs a user message stating that the current user
564
- * is not a member of the given tenant,
565
- * with instructions for what to do next. */
566
- renderNotAMember(username, tenantCode) {
567
- this.ui.userMessage(`You are currently logged in as '${this.styler.hilite(username)}',`);
568
- this.ui.userMessage(`but you are not a member of the tenant '${this.styler.hilite(tenantCode)}'.`);
569
- this.ui.userMessage(`You will need to:`);
570
- this.ui.userMessage(` EITHER) Log in as a different user, using...`);
571
- this.ui.userMessage(` ${this.styler.hilite("cod login [yourUsername] -p [yourPassword]")},`);
572
- this.ui.userMessage(` OR) Cancel and send a request to be added, using...`);
573
- this.ui.userMessage(` ${this.styler.hilite(`cod request-access ${tenantCode} --role publisher`)}`);
574
- }
575
- }
576
- exports.TenantContextualizer = TenantContextualizer;
577
- TenantContextualizer.CODE_FOR_NEW_TENANT = "** create new **";
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TenantContextualizer = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const auth_entities_1 = require("@codiac.io/codiac-common/security/auth-entities");
6
+ const utilities_1 = require("@codiac.io/codiac-common/utilities");
7
+ const codiac_relay_contracts_1 = require("@codiac.io/codiac-relay-contracts");
8
+ const ops_1 = require("../ops");
9
+ const user_context_loader_1 = require("../user-context-loader");
10
+ const stringify = require("json-stringify-safe");
11
+ /** Interfaces with CLI user to establish a tenant context. */
12
+ class TenantContextualizer {
13
+ /**
14
+ * @param projCfg The In-memory representation of the project's thaulconfig file.
15
+ */
16
+ constructor(projCfg, authClient, apiClient, _projCfgRepo, ui, styler, logger) {
17
+ this.projCfg = projCfg;
18
+ this.authClient = authClient;
19
+ this._projCfgRepo = _projCfgRepo;
20
+ this.ui = ui;
21
+ this.styler = styler;
22
+ this.logger = logger;
23
+ this.userContextLoader = new user_context_loader_1.UserContextLoader(logger);
24
+ this.userContextRepo = new user_context_loader_1.UserContextManager(apiClient, logger);
25
+ }
26
+ /** Ensures that a valid tenant is assigned
27
+ * and the user has a valid tenant contributor token.
28
+ *
29
+ * @param currentContext The Machine-user context. It's just the starting point, not necessarily the right one. ie: Project config enforcement may switch it on you.
30
+ */
31
+ establishTenantContext(currentContext) {
32
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
33
+ return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
34
+ try {
35
+ // Step -1) Enforce the proect tenant c. Proj config should govern. If we are in a project, and there's no tenant code, then remain anonymous.?
36
+ /** This tenant code MUST BE ENFORCED. */
37
+ let requiredTenantCode;
38
+ /** This tenant code is NOT enforced. */
39
+ let suggestedTenantCode;
40
+ if (this.projCfg && this._projCfgRepo) {
41
+ // ----------------------------
42
+ // WITHIN A PROJECT FOLDER
43
+ // If there's a project tenant code set, then we HAVE TO ENFORCE IT.
44
+ // Otherwise the interaction can end up with whatever tenant code is convenient or selected.
45
+ if (this.projCfg.tenantCode !== undefined
46
+ && this.projCfg.tenantCode !== ""
47
+ && this.projCfg.tenantCode != ops_1.DxConstants.UNREGISTERED_TENANT_CODE) {
48
+ requiredTenantCode = this.projCfg.tenantCode;
49
+ }
50
+ // ----------------------------
51
+ }
52
+ else {
53
+ // ----------------------------
54
+ // ENTERPRISE-ONLY OR PRE-INIT: OUTSIDE OF PROJECT FOLDER
55
+ // Nothing to fall back on here, this var is only a suggestion,
56
+ // and there may be no requirement.
57
+ // The user interactions below will reconcile an anonymous user.
58
+ suggestedTenantCode = currentContext === null || currentContext === void 0 ? void 0 : currentContext.currentTenantCode;
59
+ // ----------------------------
60
+ }
61
+ /** Defaults to anonymous */
62
+ let loadedUser;
63
+ if (requiredTenantCode !== null && requiredTenantCode !== void 0 ? requiredTenantCode : suggestedTenantCode) {
64
+ // There are 5 cases we need to support:
65
+ // 1) Cached user's current tenant code is a match
66
+ // 2) Cached user has a match in its other profiles
67
+ // 3) Cached user has no match, but it has one online (ie: cache is stale)
68
+ // 4) Cached user has no matches anywhere.
69
+ // 5) There is no cached user.
70
+ // This loaded user is either a match, it's a principal, or its undefined.
71
+ loadedUser = yield this.tryMatchGivenOrCached((requiredTenantCode !== null && requiredTenantCode !== void 0 ? requiredTenantCode : suggestedTenantCode), currentContext);
72
+ }
73
+ else {
74
+ loadedUser = currentContext; // there's no requirements, we may as well use what we've got.
75
+ }
76
+ // ---ORIGINAL-------------------------
77
+ // // STEP a: Load any locally cached user and tenant profiles
78
+ // /** Defaults to anonymous */
79
+ // let cachedUserContext = currentContext ?? this.userContextLoader.loadUserContext(this.projCfg.tenantCode);
80
+ // this.logger.trace(`After loadUserContext(${this.projCfg.tenantCode})`);
81
+ // // STEP b: Gather up whatever we have stored for user and tenant tokens
82
+ // let projTenantCode = (this.projCfg.tenantCode && this.projCfg.tenantCode != DxConstants.UNREGISTERED_TENANT_CODE) ? this.projCfg.tenantCode : undefined;
83
+ // this.logger.trace(`Project tenantCode: ${projTenantCode}`);
84
+ // ----------------------------
85
+ let ultimateUserContext;
86
+ if (loadedUser && (requiredTenantCode !== null && requiredTenantCode !== void 0 ? requiredTenantCode : suggestedTenantCode)) {
87
+ ultimateUserContext = ultimateUserContext !== null && ultimateUserContext !== void 0 ? ultimateUserContext : this.tryUseCurrentToken(loadedUser, (requiredTenantCode !== null && requiredTenantCode !== void 0 ? requiredTenantCode : suggestedTenantCode));
88
+ this.logger.trace(`Ultimate UserContext after tryUseCurrentToken: `, ultimateUserContext);
89
+ ultimateUserContext = ultimateUserContext !== null && ultimateUserContext !== void 0 ? ultimateUserContext : yield this.trySwitchTenant(loadedUser, (requiredTenantCode !== null && requiredTenantCode !== void 0 ? requiredTenantCode : suggestedTenantCode));
90
+ }
91
+ this.logger.trace(`Cached UserContext before user interaction: `, loadedUser);
92
+ this.logger.trace(`Ultimate UserContext before user interaction: `, ultimateUserContext);
93
+ // Methods below call out for user input.
94
+ if (requiredTenantCode) {
95
+ // ENFORCE IT. This will block the command if they cant authenticate.
96
+ ultimateUserContext = ultimateUserContext !== null && ultimateUserContext !== void 0 ? ultimateUserContext : yield this.tryAuthenticateUnderTenant(requiredTenantCode, loadedUser === null || loadedUser === void 0 ? void 0 : loadedUser.userName);
97
+ // } else if (suggestedTenantCode) {
98
+ // // User was logged in but either has an expired token (most likely) or is no longer part of the suggested tenant
99
+ // // User should be prompted to login again, but given the option to switch tenants, using suggestedTenantCode as a default.
100
+ // ultimateUserContext = ultimateUserContext ?? await this.tryAuthenticateUnderTenant(suggestedTenantCode, loadedUser?.userName);
101
+ }
102
+ else { // this is an "else" because we are not going to allow this command to change the project tenant assignment (only add one if it hasnt been assigned).
103
+ ultimateUserContext = ultimateUserContext !== null && ultimateUserContext !== void 0 ? ultimateUserContext : yield this.trySelectFromMyTenants(loadedUser);
104
+ ultimateUserContext = ultimateUserContext !== null && ultimateUserContext !== void 0 ? ultimateUserContext : yield this.tryRegisterNewTenant(loadedUser);
105
+ }
106
+ resolve(ultimateUserContext);
107
+ }
108
+ catch (err) {
109
+ reject(err);
110
+ }
111
+ }));
112
+ });
113
+ }
114
+ // ==========================================================================
115
+ // PRIVATE SUPPORTING METHODS
116
+ // ==========================================================================
117
+ /** Checks the given user context and then the machine user configuration for a user profile with the given tenant.
118
+ *
119
+ * Returns a principal user context (undefined currentTenantCode properties) if it doesnt have a matching tenant profile.
120
+ * Returns `undefined` if no context found at all.
121
+ *
122
+ * DOES NOT throw encountered exceptions, so that a login prompt can follow in case something is corrupted.
123
+ *
124
+ * DOES NOT validate or authenticate - merely loads whatever is the local cache.
125
+ */
126
+ tryMatchGivenOrCached(tenantCode, currentContext) {
127
+ var _a, _b;
128
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
129
+ let found;
130
+ try {
131
+ // either the current context is a match,
132
+ if ((currentContext === null || currentContext === void 0 ? void 0 : currentContext.currentTenantCode) === tenantCode) {
133
+ found = currentContext; // current state A-OK.
134
+ }
135
+ else if (currentContext) {
136
+ this.userContextLoader.trySetCurrentProfileFor(tenantCode, currentContext); // We might have a cached profile for this tenant...
137
+ found = currentContext; // its either matching or a principal user context without a matching profile onboard (could be stale tho).
138
+ }
139
+ else {
140
+ found = this.userContextLoader.loadUserContext(tenantCode);
141
+ }
142
+ }
143
+ catch (err) {
144
+ this.logger.debug(`Error searching for cached user under tenant code: ${tenantCode}: ${(_a = err.name) !== null && _a !== void 0 ? _a : ""} ${(_b = err.message) !== null && _b !== void 0 ? _b : ""}`, stringify(err));
145
+ }
146
+ finally {
147
+ return found;
148
+ }
149
+ });
150
+ }
151
+ /** Returns a valid tenant context if the given tenant is already current on the given context and the token isnt expired. */
152
+ tryUseCurrentToken(currentContext, tenantCode) {
153
+ if (currentContext.userName != codiac_relay_contracts_1.UserContext.ANONYMOUS_USERNAME
154
+ && currentContext.currentTenantCode == tenantCode
155
+ && currentContext.currentToken
156
+ && currentContext.tokenExpiration
157
+ && (0, utilities_1.isFuture)(currentContext.tokenExpiration)) {
158
+ return currentContext;
159
+ }
160
+ else {
161
+ return undefined;
162
+ }
163
+ }
164
+ /** Attempts to switch the userContext to a locally cached profile for the given tenant,
165
+ * and if not found, requests a switch from the auth service.
166
+ * The current userContext will only be modified if the switch is successfully made.
167
+ * throws is the userContext does not already contain at least one token that will identify the user (regardless of tenant).
168
+ * SIDE-EFFECT: This may refresh the currentToken on the current user context and cache it to the user context file. */
169
+ trySwitchTenant(currentContext, newTenantCode) {
170
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
171
+ return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
172
+ try {
173
+ let ultimate;
174
+ if (currentContext.userName != codiac_relay_contracts_1.UserContext.ANONYMOUS_USERNAME) {
175
+ if (currentContext.tokens && currentContext.tokens[newTenantCode] && !this.authClient.Auth.isExpired(currentContext.tokens[newTenantCode])) { // Use the locally cached token
176
+ // We already have an unexpired profile cached for this tenant. Just make it the current one on the userContext object.
177
+ ultimate = currentContext;
178
+ ultimate.currentTenantCode = newTenantCode;
179
+ ultimate.currentToken = currentContext.tokens[newTenantCode];
180
+ ultimate.tokenExpiration = this.authClient.Auth.extractTokenExpiration(ultimate.currentToken);
181
+ this.userContextRepo.writeUserContext(ultimate);
182
+ this.logger.trace(`Found an unexpired token for [${currentContext.userName}] under tenant: [${newTenantCode}].`);
183
+ }
184
+ else { // See if the remote service will let us switch
185
+ // Get ANY unexpired token to authenticate with
186
+ // (cuz we're gonna talk to the server and have IT switch our tenant)
187
+ let token = (!currentContext.tokenExpiration || (0, utilities_1.isFuture)(currentContext.tokenExpiration)) ? currentContext.currentToken : undefined;
188
+ if (!token && currentContext.tokens) {
189
+ // Use one from another profile... (any unexpired tenant token will do - we just need to identify the user)
190
+ for (let tc in currentContext.tokens) {
191
+ if (!this.authClient.Auth.isExpired(currentContext.tokens[tc])) {
192
+ token = currentContext.tokens[tc];
193
+ this.logger.trace(`Found an unexpired token for [${currentContext.userName}] under tenant: [${tc}]. Using this to authenticate with the api to attempt a tenant switch.`);
194
+ break;
195
+ }
196
+ }
197
+ }
198
+ if (token) {
199
+ // Ask the server...
200
+ this.logger.trace(`Asking api to switch tenant.`);
201
+ let switchResult = yield this.authClient.AuthLegacy.switchTenant(token, newTenantCode);
202
+ if (switchResult.success && switchResult.output) {
203
+ this._user = switchResult.output.user;
204
+ ultimate = currentContext;
205
+ ultimate.currentTenantCode = switchResult.output.user.tenantCode;
206
+ ultimate.currentToken = switchResult.output.token;
207
+ ultimate.tokenExpiration = switchResult.output.expiration;
208
+ if (ultimate.currentTenantCode) {
209
+ ultimate.tokens[ultimate.currentTenantCode] = ultimate.currentToken;
210
+ }
211
+ this.userContextRepo.writeUserContext(ultimate);
212
+ this.logger.trace(`Successfully Switched user context to tenant [${ultimate.currentTenantCode}] via api.`);
213
+ }
214
+ else if (switchResult.output) {
215
+ // We got back a failure but refreshed the token we were using.
216
+ if (token == currentContext.currentToken) /* ie: if we used the token from the original context */ {
217
+ this._user = switchResult.output.user;
218
+ currentContext.currentToken = switchResult.output.token; // is currentContext passed in byRef? Will this assignment be honored outside this method?
219
+ currentContext.tokenExpiration = switchResult.output.expiration;
220
+ }
221
+ else if (this._user) {
222
+ this._user.profiles = switchResult.output.user.profiles; // The token was from a random tenant, so dont switch the current users tenant, just update its list of tenant profiles.
223
+ }
224
+ currentContext.tokens[switchResult.output.user.tenantCode] = switchResult.output.token;
225
+ this.userContextRepo.writeUserContext(currentContext);
226
+ // We arent registered for the project tenant (http 403 ?) <--- We need to prompt for new login creds (they may want to try another user account) OR fail loudly here.
227
+ this.renderNotAMember(currentContext.userName, newTenantCode);
228
+ }
229
+ else {
230
+ // Our current token was invalid or expired, (http 422 ?) <-- we need to prompt for just password. (NOTE: That'll be server hit #2 in this sequence)
231
+ }
232
+ }
233
+ else {
234
+ // We didnt have an unexpired token to use for this.
235
+ }
236
+ }
237
+ }
238
+ resolve(ultimate);
239
+ }
240
+ catch (err) {
241
+ reject(err);
242
+ }
243
+ }));
244
+ });
245
+ }
246
+ /** Only diff betw this an authenticate is that
247
+ * this method only returns a valid tenant context
248
+ * (whereas authenticate returns a user or tenant context). */
249
+ tryAuthenticateUnderTenant(tenantCode, defaultUserName) {
250
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
251
+ return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
252
+ try {
253
+ let ultimate;
254
+ let newContext = yield this.authenticate(tenantCode, defaultUserName);
255
+ if (newContext) {
256
+ if (newContext.currentTenantCode == tenantCode) {
257
+ ultimate = newContext;
258
+ }
259
+ else {
260
+ this.renderNotAMember(newContext.userName, tenantCode);
261
+ }
262
+ }
263
+ resolve(ultimate);
264
+ }
265
+ catch (err) {
266
+ reject(err);
267
+ }
268
+ }));
269
+ });
270
+ }
271
+ trySelectFromMyTenants(currentContext, allowAddNew) {
272
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
273
+ return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
274
+ try {
275
+ let ultimate;
276
+ // Step 1: GET THE USER'S LIST OF TENANTS (se we can access an updated list of profiles.
277
+ // They gotta be up to date cuz access to that tenant may have been granted just seconds ago).
278
+ // We may need to authenticate here. Or perhaps refresh token. Where can we store the user from a previous server trip? do we need to?
279
+ if (currentContext)
280
+ this.logger.trace("currentContext token BEFORE getUserTenants...", currentContext.currentToken);
281
+ else
282
+ this.logger.trace("No currentContext BEFORE getUserTenants");
283
+ currentContext = yield this.establishPrincipalContext(currentContext); // shouldnt we do this before we do anything else in this class?
284
+ let myTenants = [];
285
+ if (currentContext === null || currentContext === void 0 ? void 0 : currentContext.currentToken) {
286
+ myTenants = yield this.getUserTenants(this._user);
287
+ }
288
+ if (currentContext)
289
+ this.logger.trace("currentContext token AFTER getUserTenants...", currentContext.currentToken);
290
+ else
291
+ this.logger.trace("No currentContext AFTER getUserTenants");
292
+ if (myTenants && myTenants.length > 0) {
293
+ let tenantCode = yield this.promptToSelectTenant(myTenants, allowAddNew);
294
+ if (tenantCode) {
295
+ if (tenantCode == TenantContextualizer.CODE_FOR_NEW_TENANT) {
296
+ tenantCode = undefined; // this will lead us to createNewTenant while still allowing us to recognize a cancel.
297
+ }
298
+ else {
299
+ if (!currentContext)
300
+ currentContext = yield this.authenticate(); // this should never happen - we already did so to get the list of tenant profiles.
301
+ if (currentContext) {
302
+ ultimate = yield this.trySwitchTenant(currentContext, tenantCode); // Call server if we dont already have a token for the selected tenant.
303
+ if (ultimate) {
304
+ // Commented out bc: TenantContextulizer should NOT be creating a proj cfg where there wasnt one. The init command has the sole responsibility there.
305
+ // if (!this.projCfg) this.projCfg = this.createDefaultProjectConfig(); // This is avoiding a corrupted project folder.
306
+ // Update the project config if available
307
+ if (this.projCfg && this._projCfgRepo) {
308
+ this.projCfg.tenantCode = tenantCode;
309
+ yield this._projCfgRepo.updateProjectConfigFile(this.projCfg);
310
+ }
311
+ }
312
+ }
313
+ }
314
+ }
315
+ else {
316
+ this.cancel(); // user gave up: stop the bus.
317
+ }
318
+ }
319
+ resolve(ultimate);
320
+ }
321
+ catch (err) {
322
+ reject(err);
323
+ }
324
+ }));
325
+ });
326
+ }
327
+ /** Side effect: Overwrites this._user if it s able to refresh it from the auth api */
328
+ establishPrincipalContext(context) {
329
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
330
+ return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
331
+ try {
332
+ if (!this._user) {
333
+ if (context && context.userName != codiac_relay_contracts_1.UserContext.ANONYMOUS_USERNAME && (!context.tokenExpiration || (0, utilities_1.isFuture)(context.tokenExpiration))) {
334
+ let refreshResult;
335
+ try {
336
+ refreshResult = yield this.userContextRepo.refreshUserContext(context);
337
+ }
338
+ catch (err) {
339
+ this.logger.warn(`Failed to refresh your user context, leaving your api token potentially stale, preventing further communications: ${err.message || ""}`, err);
340
+ }
341
+ // ----------------------------------------------------------------------------------
342
+ // TODO: Review this logic for refresh/expiration fails
343
+ // that should run an authenticate but arent...
344
+ // ----------------------------------------------------------------------------------
345
+ if (refreshResult) {
346
+ if (refreshResult.user) {
347
+ this.logger.debug("Setting this.User from refresh output...");
348
+ this._user = refreshResult.user;
349
+ this.logger.debug(`this._user profile count: ${this._user.profiles.length}`);
350
+ }
351
+ if (refreshResult.context) {
352
+ this.logger.debug("Setting context from refresh output...");
353
+ context = refreshResult.context;
354
+ }
355
+ // } else {
356
+ // if (context.currentToken && context.currentTenantCode && context.userName) {
357
+ // // Allow for use while disconnected.
358
+ // // TODO: retrieve a locally cached user object.
359
+ // this._user = new User(context.currentTenantCode, "", "", "", context.userName);
360
+ // this._user.profiles = [];
361
+ // for (let tenantCode in context.tokens) {
362
+ // this._user.profiles.push(new AccessProfile(tenantCode));
363
+ // }
364
+ // this.logger.warn(`Using an instance of the current user sparsely populated from cache.`);
365
+ // }
366
+ }
367
+ }
368
+ if (!this._user) {
369
+ let defaultUserName = (context && context.userName != codiac_relay_contracts_1.UserContext.ANONYMOUS_USERNAME) ? context.userName : undefined;
370
+ let currentTenantCode = (context && context.currentTenantCode) || undefined;
371
+ context = yield this.authenticate(currentTenantCode, defaultUserName);
372
+ }
373
+ }
374
+ resolve(context);
375
+ }
376
+ catch (err) {
377
+ reject(err);
378
+ }
379
+ }));
380
+ });
381
+ }
382
+ getUserTenants(user) {
383
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
384
+ return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
385
+ var _a, _b;
386
+ try {
387
+ let myTenants = [];
388
+ this.logger.write(`Retrieving tenants of user [${(user === null || user === void 0 ? void 0 : user.login) || "anonymous"}]`);
389
+ let myAcctResult = yield this.authClient.AuthLegacy.whoAmI();
390
+ if (myAcctResult.error)
391
+ throw myAcctResult.error;
392
+ if (((_a = myAcctResult.output) === null || _a === void 0 ? void 0 : _a.profiles) && ((_b = myAcctResult.output) === null || _b === void 0 ? void 0 : _b.profiles.length) > 0) {
393
+ let myProfiles = myAcctResult.output.profiles;
394
+ // We're gonna put the tenantCode in place of the name for now cuz that's all that we get with whoami.
395
+ // TODO: Consider storing AuthTenant.name with the AccessProfile entity so we can make it readable without an extra db hit.
396
+ myTenants = myProfiles.map(ap => new auth_entities_1.AuthTenant(ap.tenantCode, ap.tenantCode));
397
+ // If we want the tenant names...
398
+ // let codesCsv = myProfiles.map(p => p.tenantCode).join(",");
399
+ // let criteria: TenantCriteria = { mine: true }; // <----- TODO !!! (works off current user)
400
+ // let result = await this.apiClient.tryReadMany(AuthTenant, TenantCriteria, criteria);
401
+ // OR
402
+ // let result = await this.authClient.getMyTenants();
403
+ // this.logger.trace("Result of attempt to get user tenants",result)
404
+ }
405
+ resolve(myTenants);
406
+ }
407
+ catch (err) {
408
+ reject(err);
409
+ }
410
+ }));
411
+ });
412
+ }
413
+ /** Prompts the user to select a tenant from the given list of tenantCodes.
414
+ * Returns undefined if cancelled, and TenantContextualizer.CODE_FOR_NEW_TENANT if "register new" is selected.
415
+ * @param tenants List of tenants from which to select.
416
+ * @param allowAddNew Inserts an option to add a new tenant. (NOTE: this method DOES NOT perform the add new action itself!)
417
+ */
418
+ promptToSelectTenant(tenants, allowAddNew = true) {
419
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
420
+ return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
421
+ try {
422
+ let choices = tenants.map(t => {
423
+ return { name: t.name, value: t.code };
424
+ });
425
+ if (allowAddNew) {
426
+ choices.push({ name: "(Register new tenant)", value: TenantContextualizer.CODE_FOR_NEW_TENANT });
427
+ }
428
+ this.ui.userMessage(`Your project is not assigned to a tenant.`);
429
+ this.ui.userMessage(`Please assign it to one of your organizations or register a new organization...`);
430
+ let selected = yield this.ui.promptSelect('tenantCode', 'Select a Tenant:', choices);
431
+ // let result = await inquirer.prompt({ type: 'list', name: 'tenantCode', message: 'Select a Tenant:', choices: choices});
432
+ // let selected: string|undefined = result.tenantCode;
433
+ resolve(selected);
434
+ }
435
+ catch (err) {
436
+ reject(err);
437
+ }
438
+ }));
439
+ });
440
+ }
441
+ /** Returns a tenant context, a user context, or undefined if operation cancelled.
442
+ * Caches the new user context.
443
+ * Throws any exceptions.
444
+ *
445
+ * `unregistered` tenant code gets ignored.
446
+ *
447
+ * @param login
448
+ * @param silent (optional: defaults to false) When set to true, suppresses the prompts to confirm the given defaults. Requires defaultLogin and defaultPassword to be set. Also requires tenantCode if the current user has more than one tenant profile and it cannot be derived decisively from the current context.
449
+ */
450
+ authenticate(tenantCode, login, password, silent = false) {
451
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
452
+ return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
453
+ var _a, _b;
454
+ try {
455
+ let defaults = { u: login, p: password, t: tenantCode };
456
+ let newContext;
457
+ do {
458
+ newContext = undefined;
459
+ defaults.t = (defaults.t !== undefined && defaults.t !== ops_1.DxConstants.UNREGISTERED_TENANT_CODE) ? defaults.t : undefined;
460
+ if (!silent) {
461
+ this.ui.userMessage(`Please authenticate with Codiac ${(defaults.t !== undefined) ? " under tenant " + this.styler.hilite(defaults.t) : ""} (CTRL-C to cancel)`);
462
+ defaults.u = yield this.ui.prompt("userName", `Username: `, true, defaults.u);
463
+ }
464
+ if (defaults.u) {
465
+ if (!silent) {
466
+ defaults.p = (_a = defaults.p) !== null && _a !== void 0 ? _a : yield this.ui.promptPassword("password", "Password ");
467
+ }
468
+ if (defaults.p) {
469
+ this.logger.trace(`Authenticating against ${this.authClient.apiRootUrl}`);
470
+ this.ui.startSpinner("Authenticating...");
471
+ let authResult = yield this.authClient.AuthLegacy.authenticate(defaults.u, defaults.p, defaults.t);
472
+ if (authResult.success === true) {
473
+ this.ui.stopSpinner("Success!");
474
+ }
475
+ else {
476
+ this.ui.stopSpinner("Failed.");
477
+ }
478
+ this.logger.trace("", JSON.stringify(authResult, undefined, ' '));
479
+ if (authResult.error) {
480
+ throw authResult.error;
481
+ }
482
+ else if (authResult.output) {
483
+ let token = authResult.output.token;
484
+ let userName = authResult.output.user.login;
485
+ let tenantCode = authResult.output.user.tenantCode;
486
+ let exp = authResult.output.expiration;
487
+ // this.passwordLastEntered = password; // we're gonna need this later if we need to register a new tenant (cuz the tenantRegn endpoint doent support a user token yet.)
488
+ newContext = yield this.userContextRepo.saveToUserContext(newContext, userName, token, tenantCode, exp);
489
+ this._user = authResult.output.user;
490
+ }
491
+ else if (silent == true) {
492
+ // Silent mode only gets one shot at this.
493
+ throw new Error((_b = authResult.message) !== null && _b !== void 0 ? _b : `Authentication failed`);
494
+ }
495
+ }
496
+ }
497
+ // Dump em if they didnt get fully hydrated by this point.
498
+ if (silent && (defaults.u === undefined || defaults.p === undefined)) {
499
+ throw new Error(`Cannot authenticate using "silent": both login and password must be provided.`);
500
+ }
501
+ } while (!newContext);
502
+ resolve(newContext);
503
+ }
504
+ catch (err) {
505
+ reject(err);
506
+ }
507
+ }));
508
+ });
509
+ }
510
+ isNullOrEmpty(value) {
511
+ return (value == undefined || value == "");
512
+ }
513
+ tryRegisterNewTenant(currentContext, companyName, tenantCode) {
514
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
515
+ return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
516
+ var _a, _b;
517
+ try {
518
+ let ultimate;
519
+ let tenantName = companyName !== null && companyName !== void 0 ? companyName : yield this.ui.prompt("tenantName", "Enter the full name of the organization: ", true);
520
+ // HACK: We happen to know that the authenticate will have necessarily been run before this was called,
521
+ // and we're keeping the pwd from that run in memory just so we can fire this request.
522
+ if (!this._user) {
523
+ // Wanna authenticate here?
524
+ throw new Error("RegisterTenant failed: No user was provided.");
525
+ }
526
+ else if (!tenantName) {
527
+ // this is a null gate - it can never happen bc the prompt is required;
528
+ throw new Error("RegisterTenant failed: No tenant name was provided.");
529
+ }
530
+ else {
531
+ let createNewUser = this.isNullOrEmpty(currentContext === null || currentContext === void 0 ? void 0 : currentContext.currentToken); // we will have already established the user context
532
+ let tenantResult = yield this.authClient.AuthLegacy.registerTenant(tenantName, createNewUser, this._user.login, this._user.password, tenantCode, currentContext.currentToken || this.authClient.authToken);
533
+ if (tenantResult.error) {
534
+ throw tenantResult.error;
535
+ }
536
+ else if (tenantResult.success && tenantResult.output) {
537
+ let token = this.authClient.authToken; // thats a valid force - we will def have one if the register call succeeded
538
+ ultimate = yield this.userContextRepo.saveToUserContext(currentContext, this._user.login, token, tenantResult.output.code);
539
+ if (this.projCfg && this._projCfgRepo) {
540
+ this.projCfg.tenantCode = tenantResult.output.code;
541
+ yield this._projCfgRepo.updateProjectConfigFile(this.projCfg);
542
+ }
543
+ }
544
+ else {
545
+ // ?? Fail? Is this a valid scenario?
546
+ throw new Error("RegisterTenant failed: " + tenantResult.message + tenantResult.error);
547
+ }
548
+ }
549
+ resolve(ultimate);
550
+ }
551
+ catch (err) {
552
+ this.logger.debug(`Error attempting to register new tenant: ${err.message || ""}${((_b = (_a = err.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.message) || ""}`, (err.toJSON) ? err.toJSON() : err);
553
+ reject(err);
554
+ }
555
+ }));
556
+ });
557
+ }
558
+ cancel() {
559
+ throw new Error("Action cancelled. No work was done.");
560
+ // this._ui.userMessage("Action cancelled. No work was done.");
561
+ // this.exit();
562
+ }
563
+ /** logs a user message stating that the current user
564
+ * is not a member of the given tenant,
565
+ * with instructions for what to do next. */
566
+ renderNotAMember(username, tenantCode) {
567
+ this.ui.userMessage(`You are currently logged in as '${this.styler.hilite(username)}',`);
568
+ this.ui.userMessage(`but you are not a member of the tenant '${this.styler.hilite(tenantCode)}'.`);
569
+ this.ui.userMessage(`You will need to:`);
570
+ this.ui.userMessage(` EITHER) Log in as a different user, using...`);
571
+ this.ui.userMessage(` ${this.styler.hilite("cod login [yourUsername] -p [yourPassword]")},`);
572
+ this.ui.userMessage(` OR) Cancel and send a request to be added, using...`);
573
+ this.ui.userMessage(` ${this.styler.hilite(`cod request-access ${tenantCode} --role publisher`)}`);
574
+ }
575
+ }
576
+ exports.TenantContextualizer = TenantContextualizer;
577
+ TenantContextualizer.CODE_FOR_NEW_TENANT = "** create new **";
578
578
  //# sourceMappingURL=tenant-contextualizer.js.map