@codiac.io/codiac-cli 1.2.169 → 1.2.170

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 (522) hide show
  1. package/README.md +18 -3182
  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/lib/apis/codiac-api/common/api-client-base.d.ts +165 -165
  8. package/lib/apis/codiac-api/common/api-client-base.js +547 -547
  9. package/lib/apis/codiac-api/common/api-user-creds.d.ts +7 -7
  10. package/lib/apis/codiac-api/common/api-user-creds.js +18 -18
  11. package/lib/apis/codiac-api/common/config-loader.d.ts +6 -6
  12. package/lib/apis/codiac-api/common/config-loader.js +18 -18
  13. package/lib/apis/codiac-api/common/endpoint-spec.d.ts +17 -17
  14. package/lib/apis/codiac-api/common/endpoint-spec.js +27 -27
  15. package/lib/apis/codiac-api/common/security/api-auth-methods-legacy.d.ts +87 -87
  16. package/lib/apis/codiac-api/common/security/api-auth-methods-legacy.js +367 -367
  17. package/lib/apis/codiac-api/common/security/auth-constants.d.ts +15 -15
  18. package/lib/apis/codiac-api/common/security/auth-constants.js +21 -21
  19. package/lib/apis/codiac-api/common/security/i-auth-client.d.ts +44 -44
  20. package/lib/apis/codiac-api/common/security/i-auth-client.js +2 -2
  21. package/lib/apis/codiac-api/common/security/token-holder.d.ts +13 -13
  22. package/lib/apis/codiac-api/common/security/token-holder.js +17 -17
  23. package/lib/apis/codiac-api/common/utils.d.ts +23 -23
  24. package/lib/apis/codiac-api/common/utils.js +82 -82
  25. package/lib/apis/codiac-api/contracts/index.d.ts +1 -1
  26. package/lib/apis/codiac-api/contracts/index.js +4 -4
  27. package/lib/apis/codiac-api/gen/client-config.d.ts +10 -10
  28. package/lib/apis/codiac-api/gen/client-config.js +28 -28
  29. package/lib/apis/codiac-api/gen/client.d.ts +1663 -1663
  30. package/lib/apis/codiac-api/gen/client.js +15629 -15629
  31. package/lib/apis/codiac-api/gen/contracts.d.ts +2722 -2722
  32. package/lib/apis/codiac-api/gen/contracts.js +402 -402
  33. package/lib/apis/codiac-api/index.d.ts +3 -3
  34. package/lib/apis/codiac-api/index.js +8 -8
  35. package/lib/apis/codiac-relay/common/api-client-base.d.ts +165 -165
  36. package/lib/apis/codiac-relay/common/api-client-base.js +547 -547
  37. package/lib/apis/codiac-relay/common/api-user-creds.d.ts +7 -7
  38. package/lib/apis/codiac-relay/common/api-user-creds.js +18 -18
  39. package/lib/apis/codiac-relay/common/config-loader.d.ts +6 -6
  40. package/lib/apis/codiac-relay/common/config-loader.js +18 -18
  41. package/lib/apis/codiac-relay/common/endpoint-spec.d.ts +17 -17
  42. package/lib/apis/codiac-relay/common/endpoint-spec.js +27 -27
  43. package/lib/apis/codiac-relay/common/security/api-auth-methods-legacy.d.ts +87 -87
  44. package/lib/apis/codiac-relay/common/security/api-auth-methods-legacy.js +367 -367
  45. package/lib/apis/codiac-relay/common/security/auth-constants.d.ts +15 -15
  46. package/lib/apis/codiac-relay/common/security/auth-constants.js +21 -21
  47. package/lib/apis/codiac-relay/common/security/i-auth-client.d.ts +44 -44
  48. package/lib/apis/codiac-relay/common/security/i-auth-client.js +2 -2
  49. package/lib/apis/codiac-relay/common/security/token-holder.d.ts +13 -13
  50. package/lib/apis/codiac-relay/common/security/token-holder.js +17 -17
  51. package/lib/apis/codiac-relay/common/utils.d.ts +23 -23
  52. package/lib/apis/codiac-relay/common/utils.js +82 -82
  53. package/lib/apis/codiac-relay/contracts/index.d.ts +1 -1
  54. package/lib/apis/codiac-relay/contracts/index.js +4 -4
  55. package/lib/apis/codiac-relay/gen/client-config.d.ts +10 -10
  56. package/lib/apis/codiac-relay/gen/client-config.js +28 -28
  57. package/lib/apis/codiac-relay/gen/client.d.ts +244 -244
  58. package/lib/apis/codiac-relay/gen/client.js +1862 -1862
  59. package/lib/apis/codiac-relay/gen/contracts.d.ts +3111 -3111
  60. package/lib/apis/codiac-relay/gen/contracts.js +434 -434
  61. package/lib/apis/codiac-relay/index.d.ts +3 -3
  62. package/lib/apis/codiac-relay/index.js +8 -8
  63. package/lib/cli-common/ImagesList.js +66 -66
  64. package/lib/cli-common/argument-manager.d.ts +28 -28
  65. package/lib/cli-common/argument-manager.js +194 -194
  66. package/lib/cli-common/built-in-cli-user-input.d.ts +18 -18
  67. package/lib/cli-common/built-in-cli-user-input.js +309 -309
  68. package/lib/cli-common/cli-interfaces.js +6 -6
  69. package/lib/cli-common/command-base.d.ts +72 -72
  70. package/lib/cli-common/command-base.js +181 -181
  71. package/lib/cli-common/entities/index.d.ts +1 -1
  72. package/lib/cli-common/entities/index.js +4 -4
  73. package/lib/cli-common/entities/prompt-choice.d.ts +7 -7
  74. package/lib/cli-common/entities/prompt-choice.js +2 -2
  75. package/lib/cli-common/file-selector.d.ts +48 -48
  76. package/lib/cli-common/file-selector.js +186 -186
  77. package/lib/cli-common/i-user-input-provider.js +18 -18
  78. package/lib/cli-common/index.d.ts +4 -4
  79. package/lib/cli-common/index.js +10 -10
  80. package/lib/cli-common/mock-ui.d.ts +27 -27
  81. package/lib/cli-common/mock-ui.js +82 -82
  82. package/lib/cli-common/prompt-select-fuzzy.d.ts +19 -19
  83. package/lib/cli-common/prompt-select-fuzzy.js +118 -118
  84. package/lib/cli-common/tenant-contextualizer.js +435 -435
  85. package/lib/cli-common/test/tenant-contextualizer.spec.js +142 -142
  86. package/lib/cli-entities/output-format-enum.d.ts +7 -7
  87. package/lib/cli-entities/output-format-enum.js +11 -11
  88. package/lib/cli-entities/prompt-choice.js +5 -5
  89. package/lib/codiac-constants.d.ts +35 -35
  90. package/lib/codiac-constants.js +40 -40
  91. package/lib/codiac-entities/asset-binding.d.ts +12 -12
  92. package/lib/codiac-entities/asset-binding.js +17 -17
  93. package/lib/codiac-entities/azure-container-registry.d.ts +4 -4
  94. package/lib/codiac-entities/azure-container-registry.js +2 -2
  95. package/lib/codiac-entities/azure-service-principal.d.ts +23 -23
  96. package/lib/codiac-entities/azure-service-principal.js +23 -23
  97. package/lib/codiac-entities/cloud-account-ref.d.ts +28 -28
  98. package/lib/codiac-entities/cloud-account-ref.js +36 -36
  99. package/lib/codiac-entities/deployment-temp.js +132 -132
  100. package/lib/codiac-entities/i-cloud-account-ref.d.ts +5 -5
  101. package/lib/codiac-entities/i-cloud-account-ref.js +2 -2
  102. package/lib/command-base-enterprise.d.ts +121 -121
  103. package/lib/command-base-enterprise.js +523 -523
  104. package/lib/command-base-tenantless.d.ts +44 -44
  105. package/lib/command-base-tenantless.js +172 -172
  106. package/lib/commands/asset/create.d.ts +42 -42
  107. package/lib/commands/asset/create.js +466 -466
  108. package/lib/commands/asset/destroy.d.ts +20 -20
  109. package/lib/commands/asset/destroy.js +128 -128
  110. package/lib/commands/asset/helm.d.ts +23 -23
  111. package/lib/commands/asset/helm.js +152 -152
  112. package/lib/commands/asset/list.d.ts +28 -28
  113. package/lib/commands/asset/list.js +171 -171
  114. package/lib/commands/asset/probe/create.d.ts +38 -38
  115. package/lib/commands/asset/probe/create.js +186 -186
  116. package/lib/commands/asset/recycle.d.ts +23 -23
  117. package/lib/commands/asset/recycle.js +174 -174
  118. package/lib/commands/asset/view.d.ts +188 -188
  119. package/lib/commands/asset/view.js +1364 -1364
  120. package/lib/commands/asset/volume/create.d.ts +23 -23
  121. package/lib/commands/asset/volume/create.js +175 -175
  122. package/lib/commands/asset/volume/delete.d.ts +19 -19
  123. package/lib/commands/asset/volume/delete.js +111 -111
  124. package/lib/commands/asset/volume/list.d.ts +19 -19
  125. package/lib/commands/asset/volume/list.js +69 -69
  126. package/lib/commands/branch/current.d.ts +10 -10
  127. package/lib/commands/branch/current.js +33 -33
  128. package/lib/commands/branch/list.d.ts +15 -15
  129. package/lib/commands/branch/list.js +55 -55
  130. package/lib/commands/branch.d.ts +12 -12
  131. package/lib/commands/branch.js +41 -41
  132. package/lib/commands/build.d.ts +37 -37
  133. package/lib/commands/build.js +118 -118
  134. package/lib/commands/cabinet/create.d.ts +21 -21
  135. package/lib/commands/cabinet/create.js +107 -107
  136. package/lib/commands/cabinet/list.d.ts +23 -23
  137. package/lib/commands/cabinet/list.js +133 -133
  138. package/lib/commands/cabinet/obliterate.d.ts +20 -20
  139. package/lib/commands/cabinet/obliterate.js +82 -82
  140. package/lib/commands/cli.d.ts +10 -10
  141. package/lib/commands/cli.js +99 -99
  142. package/lib/commands/commit.d.ts +11 -11
  143. package/lib/commands/commit.js +39 -39
  144. package/lib/commands/config/add.d.ts +78 -78
  145. package/lib/commands/config/add.js +559 -559
  146. package/lib/commands/config/delete.d.ts +18 -18
  147. package/lib/commands/config/delete.js +118 -118
  148. package/lib/commands/config/deploy.d.ts +22 -22
  149. package/lib/commands/config/deploy.js +124 -124
  150. package/lib/commands/config/import.d.ts +27 -27
  151. package/lib/commands/config/import.js +195 -195
  152. package/lib/commands/config/view.d.ts +25 -25
  153. package/lib/commands/config/view.js +120 -120
  154. package/lib/commands/csp/login.d.ts +18 -18
  155. package/lib/commands/csp/login.js +108 -108
  156. package/lib/commands/csp/logout.d.ts +15 -15
  157. package/lib/commands/csp/logout.js +73 -73
  158. package/lib/commands/dep/create.d.ts +13 -13
  159. package/lib/commands/dep/create.js +40 -40
  160. package/lib/commands/dep/install.d.ts +9 -9
  161. package/lib/commands/dep/install.js +29 -29
  162. package/lib/commands/dep/list.d.ts +55 -55
  163. package/lib/commands/dep/list.js +97 -97
  164. package/lib/commands/dep/remove.d.ts +12 -12
  165. package/lib/commands/dep/remove.js +61 -61
  166. package/lib/commands/dep/source.d.ts +13 -13
  167. package/lib/commands/dep/source.js +82 -82
  168. package/lib/commands/dep/syncup.d.ts +11 -11
  169. package/lib/commands/dep/syncup.js +53 -53
  170. package/lib/commands/dep/unsource.d.ts +14 -14
  171. package/lib/commands/dep/unsource.js +67 -67
  172. package/lib/commands/dep/upgrade.d.ts +44 -44
  173. package/lib/commands/dep/upgrade.js +243 -243
  174. package/lib/commands/dep.d.ts +12 -12
  175. package/lib/commands/dep.js +50 -50
  176. package/lib/commands/deploy.d.ts +38 -38
  177. package/lib/commands/deploy.js +382 -382
  178. package/lib/commands/enterprise/create.d.ts +20 -20
  179. package/lib/commands/enterprise/create.js +97 -97
  180. package/lib/commands/enterprise/list.d.ts +14 -14
  181. package/lib/commands/enterprise/list.js +83 -83
  182. package/lib/commands/env/add.d.ts +22 -22
  183. package/lib/commands/env/add.js +199 -199
  184. package/lib/commands/environment/create.d.ts +19 -19
  185. package/lib/commands/environment/create.js +88 -88
  186. package/lib/commands/environment/list.d.ts +25 -25
  187. package/lib/commands/environment/list.js +157 -157
  188. package/lib/commands/filestore/capture.d.ts +31 -31
  189. package/lib/commands/filestore/capture.js +341 -341
  190. package/lib/commands/host/map.d.ts +33 -33
  191. package/lib/commands/host/map.js +346 -346
  192. package/lib/commands/identity/delete.d.ts +15 -15
  193. package/lib/commands/identity/delete.js +82 -82
  194. package/lib/commands/identity/list.d.ts +11 -11
  195. package/lib/commands/identity/list.js +42 -42
  196. package/lib/commands/identity.d.ts +22 -22
  197. package/lib/commands/identity.js +76 -76
  198. package/lib/commands/imageRegistry/capture.d.ts +27 -27
  199. package/lib/commands/imageRegistry/capture.js +159 -159
  200. package/lib/commands/imageRegistry/forget.d.ts +23 -23
  201. package/lib/commands/imageRegistry/forget.js +160 -160
  202. package/lib/commands/imageRegistry/pullSecret/set.d.ts +27 -27
  203. package/lib/commands/imageRegistry/pullSecret/set.js +299 -299
  204. package/lib/commands/imageRegistry/pullSecret/unset.d.ts +24 -24
  205. package/lib/commands/imageRegistry/pullSecret/unset.js +242 -242
  206. package/lib/commands/images/add.d.ts +25 -25
  207. package/lib/commands/images/add.js +75 -75
  208. package/lib/commands/images/list.d.ts +14 -14
  209. package/lib/commands/images/list.js +71 -71
  210. package/lib/commands/images/patch.d.ts +14 -14
  211. package/lib/commands/images/patch.js +92 -92
  212. package/lib/commands/images/remove.d.ts +12 -12
  213. package/lib/commands/images/remove.js +37 -37
  214. package/lib/commands/images/version.d.ts +16 -16
  215. package/lib/commands/images/version.js +64 -64
  216. package/lib/commands/init.d.ts +17 -17
  217. package/lib/commands/init.js +130 -130
  218. package/lib/commands/kit/create.d.ts +25 -25
  219. package/lib/commands/kit/create.js +141 -141
  220. package/lib/commands/login.d.ts +22 -22
  221. package/lib/commands/login.js +92 -92
  222. package/lib/commands/logout.d.ts +8 -8
  223. package/lib/commands/logout.js +36 -36
  224. package/lib/commands/merge.d.ts +12 -12
  225. package/lib/commands/merge.js +42 -42
  226. package/lib/commands/noc/cluster/create.d.ts +28 -28
  227. package/lib/commands/noc/cluster/create.js +132 -132
  228. package/lib/commands/noc/cluster/deinit.d.ts +17 -17
  229. package/lib/commands/noc/cluster/deinit.js +116 -116
  230. package/lib/commands/noc/cluster/destroy.d.ts +20 -20
  231. package/lib/commands/noc/cluster/destroy.js +137 -137
  232. package/lib/commands/noc/cluster/forget.d.ts +16 -16
  233. package/lib/commands/noc/cluster/forget.js +136 -136
  234. package/lib/commands/noc/cluster/grant.d.ts +24 -24
  235. package/lib/commands/noc/cluster/grant.js +159 -159
  236. package/lib/commands/noc/cluster/init.d.ts +17 -17
  237. package/lib/commands/noc/cluster/init.js +116 -116
  238. package/lib/commands/noc/cluster/list.d.ts +21 -21
  239. package/lib/commands/noc/cluster/list.js +83 -83
  240. package/lib/commands/noc/cluster/recreate.d.ts +28 -28
  241. package/lib/commands/noc/cluster/recreate.js +185 -185
  242. package/lib/commands/pkg/add.d.ts +15 -15
  243. package/lib/commands/pkg/add.js +42 -42
  244. package/lib/commands/pkg/list.d.ts +9 -9
  245. package/lib/commands/pkg/list.js +32 -32
  246. package/lib/commands/pkg/patch.d.ts +13 -13
  247. package/lib/commands/pkg/patch.js +78 -78
  248. package/lib/commands/pkg/remove.d.ts +12 -12
  249. package/lib/commands/pkg/remove.js +69 -69
  250. package/lib/commands/portal.d.ts +11 -11
  251. package/lib/commands/portal.js +81 -81
  252. package/lib/commands/publish.d.ts +21 -21
  253. package/lib/commands/publish.js +51 -51
  254. package/lib/commands/pull.d.ts +13 -13
  255. package/lib/commands/pull.js +29 -29
  256. package/lib/commands/push.d.ts +13 -13
  257. package/lib/commands/push.js +29 -29
  258. package/lib/commands/run.d.ts +35 -35
  259. package/lib/commands/run.js +193 -193
  260. package/lib/commands/secretStore/capture.d.ts +27 -27
  261. package/lib/commands/secretStore/capture.js +174 -174
  262. package/lib/commands/secretStore/forget.d.ts +20 -20
  263. package/lib/commands/secretStore/forget.js +146 -146
  264. package/lib/commands/stage.d.ts +13 -13
  265. package/lib/commands/stage.js +64 -64
  266. package/lib/commands/stash.d.ts +13 -13
  267. package/lib/commands/stash.js +30 -30
  268. package/lib/commands/status.d.ts +12 -12
  269. package/lib/commands/status.js +48 -48
  270. package/lib/commands/stop.d.ts +10 -10
  271. package/lib/commands/stop.js +51 -51
  272. package/lib/commands/switch.d.ts +11 -11
  273. package/lib/commands/switch.js +41 -41
  274. package/lib/commands/sync.d.ts +14 -14
  275. package/lib/commands/sync.js +20 -20
  276. package/lib/commands/tenant/create.d.ts +27 -27
  277. package/lib/commands/tenant/create.js +119 -119
  278. package/lib/commands/tenant/switch.d.ts +24 -24
  279. package/lib/commands/tenant/switch.js +108 -108
  280. package/lib/commands/unstage.d.ts +12 -12
  281. package/lib/commands/unstage.js +57 -57
  282. package/lib/commands/whereami.d.ts +15 -15
  283. package/lib/commands/whereami.js +122 -122
  284. package/lib/commands/whoami.d.ts +8 -8
  285. package/lib/commands/whoami.js +39 -39
  286. package/lib/errors/NoMembershipError.d.ts +8 -8
  287. package/lib/errors/NoMembershipError.js +14 -14
  288. package/lib/index.d.ts +1 -1
  289. package/lib/index.js +16 -16
  290. package/lib/log-update-wrapper.d.ts +24 -24
  291. package/lib/log-update-wrapper.js +28 -28
  292. package/lib/log4js-logger.d.ts +26 -26
  293. package/lib/log4js-logger.js +137 -137
  294. package/lib/ops/INTERFACES_CLI.d.ts +3 -3
  295. package/lib/ops/INTERFACES_CLI.js +7 -7
  296. package/lib/ops/LocalOps.d.ts +444 -444
  297. package/lib/ops/LocalOps.js +3183 -3183
  298. package/lib/ops/azure-container-registry-client/azure-container-registry-client.js +147 -147
  299. package/lib/ops/cli-path-walker.js +54 -54
  300. package/lib/ops/codiac-entities/dependency.d.ts +5 -5
  301. package/lib/ops/codiac-entities/dependency.js +10 -10
  302. package/lib/ops/codiac-entities/index.d.ts +1 -1
  303. package/lib/ops/codiac-entities/index.js +4 -4
  304. package/lib/ops/composite-image-registry-client.js +73 -73
  305. package/lib/ops/data/cli-context-repo.d.ts +61 -61
  306. package/lib/ops/data/cli-context-repo.js +269 -269
  307. package/lib/ops/data/index.d.ts +2 -2
  308. package/lib/ops/data/index.js +5 -5
  309. package/lib/ops/data/npm-config-repo.d.ts +13 -13
  310. package/lib/ops/data/npm-config-repo.js +64 -64
  311. package/lib/ops/docker-config.js +130 -130
  312. package/lib/ops/docker-constants.js +21 -21
  313. package/lib/ops/docker-credentials-store.js +237 -237
  314. package/lib/ops/docker-registry-api-client/docker-registry-api-client.js +288 -288
  315. package/lib/ops/docker-registry-api-client/entities/blob-sum.d.ts +7 -7
  316. package/lib/ops/docker-registry-api-client/entities/blob-sum.js +12 -12
  317. package/lib/ops/docker-registry-api-client/entities/docker-access-actions-enum.d.ts +5 -5
  318. package/lib/ops/docker-registry-api-client/entities/docker-access-actions-enum.js +9 -9
  319. package/lib/ops/docker-registry-api-client/entities/docker-auth-token-criteria.d.ts +30 -30
  320. package/lib/ops/docker-registry-api-client/entities/docker-auth-token-criteria.js +35 -35
  321. package/lib/ops/docker-registry-api-client/entities/i-docker-error-response.d.ts +55 -55
  322. package/lib/ops/docker-registry-api-client/entities/i-docker-error-response.js +51 -51
  323. package/lib/ops/docker-registry-api-client/entities/i-docker-list-response.d.ts +7 -7
  324. package/lib/ops/docker-registry-api-client/entities/i-docker-list-response.js +2 -2
  325. package/lib/ops/docker-registry-api-client/entities/image-repository.d.ts +31 -31
  326. package/lib/ops/docker-registry-api-client/entities/image-repository.js +29 -29
  327. package/lib/ops/docker-registry-api-client/entities/image-tag-criteria.d.ts +8 -8
  328. package/lib/ops/docker-registry-api-client/entities/image-tag-criteria.js +13 -13
  329. package/lib/ops/docker-registry-api-client/entities/image-tag-list.d.ts +7 -7
  330. package/lib/ops/docker-registry-api-client/entities/image-tag-list.js +12 -12
  331. package/lib/ops/docker-registry-api-client/entities/manifest-criteria.d.ts +9 -9
  332. package/lib/ops/docker-registry-api-client/entities/manifest-criteria.js +14 -14
  333. package/lib/ops/docker-registry-api-client/entities/manifest.d.ts +15 -15
  334. package/lib/ops/docker-registry-api-client/entities/manifest.js +20 -20
  335. package/lib/ops/docker-registry-api-client/entities/repository-criteria.d.ts +16 -16
  336. package/lib/ops/docker-registry-api-client/entities/repository-criteria.js +23 -23
  337. package/lib/ops/docker-registry-api-client/entities/token-response.d.ts +15 -15
  338. package/lib/ops/docker-registry-api-client/entities/token-response.js +14 -14
  339. package/lib/ops/docker-registry-api-client/entities/token.d.ts +17 -17
  340. package/lib/ops/docker-registry-api-client/entities/token.js +21 -21
  341. package/lib/ops/docker-registry-api-client/entities/version-check-criteria.d.ts +4 -4
  342. package/lib/ops/docker-registry-api-client/entities/version-check-criteria.js +9 -9
  343. package/lib/ops/dx-constants.d.ts +26 -26
  344. package/lib/ops/dx-constants.js +42 -42
  345. package/lib/ops/entities/ImageBuildContext.d.ts +12 -12
  346. package/lib/ops/entities/ImageBuildContext.js +18 -18
  347. package/lib/ops/entities/PipelineContext.d.ts +21 -21
  348. package/lib/ops/entities/PipelineContext.js +22 -22
  349. package/lib/ops/entities/TenantContext.d.ts +10 -10
  350. package/lib/ops/entities/TenantContext.js +15 -15
  351. package/lib/ops/entities/ThaulConfig.js +29 -29
  352. package/lib/ops/entities/azure-service-principal.d.ts +23 -23
  353. package/lib/ops/entities/azure-service-principal.js +23 -23
  354. package/lib/ops/entities/better-logger.js +1 -1
  355. package/lib/ops/entities/branch.d.ts +13 -13
  356. package/lib/ops/entities/branch.js +15 -15
  357. package/lib/ops/entities/cli-config.d.ts +48 -48
  358. package/lib/ops/entities/cli-config.js +60 -60
  359. package/lib/ops/entities/docker-image.d.ts +60 -60
  360. package/lib/ops/entities/docker-image.js +2 -2
  361. package/lib/ops/entities/helm-spec.d.ts +15 -15
  362. package/lib/ops/entities/helm-spec.js +22 -22
  363. package/lib/ops/entities/index.d.ts +4 -4
  364. package/lib/ops/entities/index.js +11 -11
  365. package/lib/ops/entities/operation-meta.d.ts +8 -8
  366. package/lib/ops/entities/operation-meta.js +18 -18
  367. package/lib/ops/entities/scaffolding.d.ts +19 -19
  368. package/lib/ops/entities/scaffolding.js +20 -20
  369. package/lib/ops/extensions/azart-identity-adapter.d.ts +19 -19
  370. package/lib/ops/extensions/azart-identity-adapter.js +96 -96
  371. package/lib/ops/extensions/npm-identity-adapter-base.d.ts +13 -13
  372. package/lib/ops/extensions/npm-identity-adapter-base.js +2 -2
  373. package/lib/ops/extensions/npmjs-identity-adapter.d.ts +13 -13
  374. package/lib/ops/extensions/npmjs-identity-adapter.js +63 -63
  375. package/lib/ops/git-ops.d.ts +8 -8
  376. package/lib/ops/git-ops.js +13 -13
  377. package/lib/ops/i-client-for-image-registry.js +16 -16
  378. package/lib/ops/i-identity-handler.d.ts +33 -33
  379. package/lib/ops/i-identity-handler.js +164 -164
  380. package/lib/ops/i-output-styler.js +16 -16
  381. package/lib/ops/index.d.ts +12 -12
  382. package/lib/ops/index.js +14 -14
  383. package/lib/ops/json-utils.js +58 -58
  384. package/lib/ops/no-style-output-styler.js +29 -29
  385. package/lib/ops/oauth2-client.ts/oauth2-client.d.ts +23 -23
  386. package/lib/ops/oauth2-client.ts/oauth2-client.js +63 -63
  387. package/lib/ops/project-initializer.d.ts +36 -36
  388. package/lib/ops/project-initializer.js +218 -218
  389. package/lib/ops/scaffolding/base-scaffolding.d.ts +7 -7
  390. package/lib/ops/scaffolding/base-scaffolding.js +20 -20
  391. package/lib/ops/scaffolding/codiac-api-scaffolding.d.ts +7 -7
  392. package/lib/ops/scaffolding/codiac-api-scaffolding.js +63 -63
  393. package/lib/ops/scaffolding/typescript-scaffolding.d.ts +15 -15
  394. package/lib/ops/scaffolding/typescript-scaffolding.js +162 -162
  395. package/lib/ops/test/mock-ui.d.ts +26 -26
  396. package/lib/ops/test/mock-ui.js +87 -87
  397. package/lib/ops/test/test-extensions.d.ts +13 -13
  398. package/lib/ops/test/test-extensions.js +70 -70
  399. package/lib/ops/test/when-a-recursive-file-search-is-run.spec.d.ts +2 -2
  400. package/lib/ops/test/when-a-recursive-file-search-is-run.spec.js +54 -54
  401. package/lib/ops/test/when-git-branchline-is-attempted.spec.d.ts +2 -2
  402. package/lib/ops/test/when-git-branchline-is-attempted.spec.js +37 -37
  403. package/lib/ops/test/when-versions-are-parsed.spec.d.ts +2 -2
  404. package/lib/ops/test/when-versions-are-parsed.spec.js +59 -59
  405. package/lib/ops/throwing-user-input-provider.js +36 -36
  406. package/lib/prettify.d.ts +7 -7
  407. package/lib/prettify.js +23 -23
  408. package/lib/read-stdin.d.ts +2 -2
  409. package/lib/read-stdin.js +28 -28
  410. package/lib/relay/contracts/contracts.d.ts +207 -207
  411. package/lib/relay/contracts/contracts.js +229 -229
  412. package/lib/relay/extended-relay-client.d.ts +27 -27
  413. package/lib/relay/extended-relay-client.js +27 -27
  414. package/lib/relay/relay-container.d.ts +41 -41
  415. package/lib/relay/relay-container.js +297 -297
  416. package/lib/relay/wsclient/relay-socket-listener.d.ts +68 -68
  417. package/lib/relay/wsclient/relay-socket-listener.js +164 -164
  418. package/lib/relay/wsclient/relay-websocket-client.d.ts +33 -33
  419. package/lib/relay/wsclient/relay-websocket-client.js +178 -178
  420. package/lib/relay/wsclient/rx-websocket-subject.d.ts +25 -25
  421. package/lib/relay/wsclient/rx-websocket-subject.js +133 -133
  422. package/lib/relay/wsclient/socket-contracts.d.ts +22 -22
  423. package/lib/relay/wsclient/socket-contracts.js +2 -2
  424. package/lib/standard-probes.d.ts +5 -5
  425. package/lib/standard-probes.js +21 -21
  426. package/lib/uilogic/build-configurator.d.ts +21 -21
  427. package/lib/uilogic/build-configurator.js +110 -110
  428. package/lib/uilogic/cloud-provider-contextualizer.d.ts +46 -46
  429. package/lib/uilogic/cloud-provider-contextualizer.js +193 -193
  430. package/lib/uilogic/cloud-resource-configurator-factory.d.ts +41 -41
  431. package/lib/uilogic/cloud-resource-configurator-factory.js +157 -157
  432. package/lib/uilogic/cloud-resource-configurators/aws-resource-configurator.d.ts +38 -38
  433. package/lib/uilogic/cloud-resource-configurators/aws-resource-configurator.js +347 -347
  434. package/lib/uilogic/cloud-resource-configurators/az-acr-cli-authenticator.js +77 -77
  435. package/lib/uilogic/cloud-resource-configurators/az-interactive-login-configurator.d.ts +42 -42
  436. package/lib/uilogic/cloud-resource-configurators/az-interactive-login-configurator.js +247 -247
  437. package/lib/uilogic/cloud-resource-configurators/azure-resource-configurator.d.ts +110 -110
  438. package/lib/uilogic/cloud-resource-configurators/azure-resource-configurator.js +781 -781
  439. package/lib/uilogic/cloud-resource-configurators/azure-types.js +9 -9
  440. package/lib/uilogic/cloud-resource-configurators/docker-hub-resource-configurator.d.ts +24 -24
  441. package/lib/uilogic/cloud-resource-configurators/docker-hub-resource-configurator.js +105 -105
  442. package/lib/uilogic/cloud-resource-configurators/helm-resource-configurator.d.ts +16 -16
  443. package/lib/uilogic/cloud-resource-configurators/helm-resource-configurator.js +44 -44
  444. package/lib/uilogic/cloud-resource-configurators/unsupported-resource-configurator.d.ts +18 -18
  445. package/lib/uilogic/cloud-resource-configurators/unsupported-resource-configurator.js +61 -61
  446. package/lib/uilogic/enterprise-contextualizer.d.ts +76 -76
  447. package/lib/uilogic/enterprise-contextualizer.js +670 -670
  448. package/lib/uilogic/environment-contextualizer.d.ts +15 -15
  449. package/lib/uilogic/environment-contextualizer.js +42 -42
  450. package/lib/uilogic/i-cluster-configurator.d.ts +9 -9
  451. package/lib/uilogic/i-cluster-configurator.js +2 -2
  452. package/lib/uilogic/i-login-configurator.d.ts +6 -6
  453. package/lib/uilogic/i-login-configurator.js +2 -2
  454. package/lib/uilogic/i-registry-configurator.d.ts +6 -6
  455. package/lib/uilogic/i-registry-configurator.js +2 -2
  456. package/lib/uilogic/i-secret-store-configurator.d.ts +7 -7
  457. package/lib/uilogic/i-secret-store-configurator.js +2 -2
  458. package/lib/uilogic/image-configurator.d.ts +133 -133
  459. package/lib/uilogic/image-configurator.js +577 -577
  460. package/lib/uilogic/image-contextualizer.d.ts +24 -24
  461. package/lib/uilogic/image-contextualizer.js +89 -89
  462. package/lib/uilogic/image-registry-contextualizer.d.ts +28 -28
  463. package/lib/uilogic/image-registry-contextualizer.js +126 -126
  464. package/lib/uilogic/index.d.ts +9 -9
  465. package/lib/uilogic/index.js +13 -13
  466. package/lib/uilogic/prompt-select-fuzzy.js +138 -138
  467. package/lib/uilogic/render-methods.d.ts +12 -12
  468. package/lib/uilogic/render-methods.js +64 -64
  469. package/lib/uilogic/tenant-contextualizer.d.ts +79 -79
  470. package/lib/uilogic/tenant-contextualizer.js +573 -573
  471. package/lib/user-context-loader.d.ts +60 -60
  472. package/lib/user-context-loader.js +183 -183
  473. package/oclif.manifest.json +1 -45
  474. package/package.json +150 -150
  475. package/scaffolding/api/.gitignore-scaffolding +68 -68
  476. package/scaffolding/api/.vscode/launch.json +16 -16
  477. package/scaffolding/api/.vscode/settings.json +7 -7
  478. package/scaffolding/api/.vscode/tasks.json +15 -15
  479. package/scaffolding/api/src/app-config.json +2 -2
  480. package/scaffolding/api/src/index.ts-scaffolding +13 -13
  481. package/scaffolding/api/src/myApiDef.ts-scaffolding +25 -25
  482. package/scaffolding/default/.gitignore-scaffolding +2 -2
  483. package/scaffolding/typescript/.gitignore-scaffolding +69 -69
  484. package/scaffolding/typescript/.vscode/launch.json +16 -16
  485. package/scaffolding/typescript/.vscode/settings.json +7 -7
  486. package/scaffolding/typescript/.vscode/tasks.json +15 -15
  487. package/lib/api-command-base.d.ts +0 -0
  488. package/lib/api-command-base.js +0 -52
  489. package/lib/api-command-base.js.map +0 -1
  490. package/lib/azure-rest-client.d.ts +0 -6
  491. package/lib/azure-rest-client.js +0 -36
  492. package/lib/azure-rest-client.js.map +0 -1
  493. package/lib/commands/view/dashboard.d.ts +0 -17
  494. package/lib/commands/view/dashboard.js +0 -88
  495. package/lib/commands/view/dashboard.js.map +0 -1
  496. package/lib/commands/view/pods.d.ts +0 -14
  497. package/lib/commands/view/pods.js +0 -88
  498. package/lib/commands/view/pods.js.map +0 -1
  499. package/lib/deployment.d.ts +0 -2
  500. package/lib/deployment.js +0 -7
  501. package/lib/deployment.js.map +0 -1
  502. package/lib/k8s-command-base.d.ts +0 -60
  503. package/lib/k8s-command-base.js +0 -204
  504. package/lib/k8s-command-base.js.map +0 -1
  505. package/lib/relay/data/aws-k8s-versions.d.ts +0 -6
  506. package/lib/relay/data/aws-k8s-versions.js +0 -16
  507. package/lib/relay/data/aws-k8s-versions.js.map +0 -1
  508. package/lib/relay/data/aws-node-types.d.ts +0 -37
  509. package/lib/relay/data/aws-node-types.js +0 -4246
  510. package/lib/relay/data/aws-node-types.js.map +0 -1
  511. package/lib/relay/data/aws-regions.d.ts +0 -6
  512. package/lib/relay/data/aws-regions.js +0 -34
  513. package/lib/relay/data/aws-regions.js.map +0 -1
  514. package/lib/uilogic/cloud-resource-configurators/aws-k8s-versions.d.ts +0 -11
  515. package/lib/uilogic/cloud-resource-configurators/aws-k8s-versions.js +0 -16
  516. package/lib/uilogic/cloud-resource-configurators/aws-k8s-versions.js.map +0 -1
  517. package/lib/uilogic/cloud-resource-configurators/aws-node-types.d.ts +0 -5
  518. package/lib/uilogic/cloud-resource-configurators/aws-node-types.js +0 -536
  519. package/lib/uilogic/cloud-resource-configurators/aws-node-types.js.map +0 -1
  520. package/lib/uilogic/cloud-resource-configurators/aws-regions.d.ts +0 -10
  521. package/lib/uilogic/cloud-resource-configurators/aws-regions.js +0 -34
  522. package/lib/uilogic/cloud-resource-configurators/aws-regions.js.map +0 -1
@@ -1,60 +1,60 @@
1
- import { TenantUser } from '@codiac.io/codiac-common/security';
2
- import { IBetterLogger } from '@codiac.io/codiac-common/IBetterLogger';
3
- import { CodiacClient as AuthClient } from './apis/codiac-api';
4
- import { UserContext } from '@codiac.io/codiac-relay-contracts';
5
- /** Simply deserializes the currently cached user context from its config file.
6
- * This class exists so that the load methods can be called before an api client gets instantiated. */
7
- export declare class UserContextLoader {
8
- private logger;
9
- constructor(logger: IBetterLogger);
10
- /** (context is Machine-User scoped)
11
- * Attempts to load the user and select from their tenant tokens and enterprise contexts persisted locally by the CLI.
12
- * Returns undefined for not found and throws any encountered exceptions.
13
- *
14
- * The full user context will STILL be returned no matter what,
15
- * whether or not there was a matching tenant profile.
16
- * But if the context has no matching tenant profile,
17
- * the CURRENT tenantCode, token, and enterprise will be undefined (ie: a tenantless user, a principal user).
18
- *
19
- * This way, if the cache is stale, the current user can still authenticate to refresh it.
20
- * eg: if the user was just seconds ago added to a tenant,
21
- * this pattern can pick up the new profile from the remote auth service without requiring a manual login.
22
- *
23
- * @param tenantCode Enforces the given tenantCode. When set, current context will be ignored if it does not match it.
24
- * */
25
- loadUserContext(tenantCode?: string | undefined): UserContext | undefined;
26
- /** Mutates the given object's current tenant properties
27
- * (currentToken, currentEnterprise, currentTenantCode, tokenExpiration)
28
- * to those of the current tenant code,
29
- * by either allowing the current state,
30
- * or by applying any relevant tenant profile that exists onboard the given context object.
31
- *
32
- * If no matching profile exists, "current" properties will be set to undefined (like a principal user),
33
- * but the context itself WILL STILL BE RETURNED.
34
- */
35
- trySetCurrentProfileFor(tenantCode: string, userContext: UserContext): void;
36
- /** Obliterates the current user state by deleting the context file. */
37
- clearUserContext(): Promise<void>;
38
- }
39
- /** Provides cruds for the user context, persisting to the local context config file. */
40
- export declare class UserContextManager {
41
- private authClient;
42
- private logger;
43
- constructor(authClient: AuthClient, logger: IBetterLogger);
44
- private loader;
45
- /** Extends the user token so we can get the user's tenant profiles.
46
- * If the token is expired, or something has changed, it fails.
47
- * Throws any exceptions.
48
- */
49
- refreshUserContext(currentContext: UserContext): Promise<{
50
- context?: UserContext;
51
- user?: TenantUser;
52
- }>;
53
- /** Writes the given UserContext to the Toyhauler user config folder on the local machine.
54
- * TODO: Consider writing this to the cache folder instead of the config folder.
55
- * Throws any encountered exceptions. */
56
- writeUserContext(userContext: UserContext): void;
57
- /** Persists the current user, its token, and its tenantCode to the user context
58
- * and the userContext file stored on the local machine. */
59
- saveToUserContext(currentContext: UserContext | undefined, userName: string, token: string, tenantCode?: string, tokenExpiration?: Date): Promise<UserContext>;
60
- }
1
+ import { TenantUser } from '@codiac.io/codiac-common/security';
2
+ import { IBetterLogger } from '@codiac.io/codiac-common/IBetterLogger';
3
+ import { CodiacClient as AuthClient } from './apis/codiac-api';
4
+ import { UserContext } from '@codiac.io/codiac-relay-contracts';
5
+ /** Simply deserializes the currently cached user context from its config file.
6
+ * This class exists so that the load methods can be called before an api client gets instantiated. */
7
+ export declare class UserContextLoader {
8
+ private logger;
9
+ constructor(logger: IBetterLogger);
10
+ /** (context is Machine-User scoped)
11
+ * Attempts to load the user and select from their tenant tokens and enterprise contexts persisted locally by the CLI.
12
+ * Returns undefined for not found and throws any encountered exceptions.
13
+ *
14
+ * The full user context will STILL be returned no matter what,
15
+ * whether or not there was a matching tenant profile.
16
+ * But if the context has no matching tenant profile,
17
+ * the CURRENT tenantCode, token, and enterprise will be undefined (ie: a tenantless user, a principal user).
18
+ *
19
+ * This way, if the cache is stale, the current user can still authenticate to refresh it.
20
+ * eg: if the user was just seconds ago added to a tenant,
21
+ * this pattern can pick up the new profile from the remote auth service without requiring a manual login.
22
+ *
23
+ * @param tenantCode Enforces the given tenantCode. When set, current context will be ignored if it does not match it.
24
+ * */
25
+ loadUserContext(tenantCode?: string | undefined): UserContext | undefined;
26
+ /** Mutates the given object's current tenant properties
27
+ * (currentToken, currentEnterprise, currentTenantCode, tokenExpiration)
28
+ * to those of the current tenant code,
29
+ * by either allowing the current state,
30
+ * or by applying any relevant tenant profile that exists onboard the given context object.
31
+ *
32
+ * If no matching profile exists, "current" properties will be set to undefined (like a principal user),
33
+ * but the context itself WILL STILL BE RETURNED.
34
+ */
35
+ trySetCurrentProfileFor(tenantCode: string, userContext: UserContext): void;
36
+ /** Obliterates the current user state by deleting the context file. */
37
+ clearUserContext(): Promise<void>;
38
+ }
39
+ /** Provides cruds for the user context, persisting to the local context config file. */
40
+ export declare class UserContextManager {
41
+ private authClient;
42
+ private logger;
43
+ constructor(authClient: AuthClient, logger: IBetterLogger);
44
+ private loader;
45
+ /** Extends the user token so we can get the user's tenant profiles.
46
+ * If the token is expired, or something has changed, it fails.
47
+ * Throws any exceptions.
48
+ */
49
+ refreshUserContext(currentContext: UserContext): Promise<{
50
+ context?: UserContext;
51
+ user?: TenantUser;
52
+ }>;
53
+ /** Writes the given UserContext to the Toyhauler user config folder on the local machine.
54
+ * TODO: Consider writing this to the cache folder instead of the config folder.
55
+ * Throws any encountered exceptions. */
56
+ writeUserContext(userContext: UserContext): void;
57
+ /** Persists the current user, its token, and its tenantCode to the user context
58
+ * and the userContext file stored on the local machine. */
59
+ saveToUserContext(currentContext: UserContext | undefined, userName: string, token: string, tenantCode?: string, tokenExpiration?: Date): Promise<UserContext>;
60
+ }
@@ -1,184 +1,184 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UserContextManager = exports.UserContextLoader = void 0;
4
- const tslib_1 = require("tslib");
5
- const path = require("path");
6
- const fs = require("fs");
7
- const codiac_relay_contracts_1 = require("@codiac.io/codiac-relay-contracts");
8
- const codiac_ops_common_1 = require("@codiac.io/codiac-ops-common");
9
- const codiac_constants_1 = require("./codiac-constants");
10
- /** Simply deserializes the currently cached user context from its config file.
11
- * This class exists so that the load methods can be called before an api client gets instantiated. */
12
- class UserContextLoader {
13
- constructor(logger) {
14
- this.logger = logger;
15
- }
16
- /** (context is Machine-User scoped)
17
- * Attempts to load the user and select from their tenant tokens and enterprise contexts persisted locally by the CLI.
18
- * Returns undefined for not found and throws any encountered exceptions.
19
- *
20
- * The full user context will STILL be returned no matter what,
21
- * whether or not there was a matching tenant profile.
22
- * But if the context has no matching tenant profile,
23
- * the CURRENT tenantCode, token, and enterprise will be undefined (ie: a tenantless user, a principal user).
24
- *
25
- * This way, if the cache is stale, the current user can still authenticate to refresh it.
26
- * eg: if the user was just seconds ago added to a tenant,
27
- * this pattern can pick up the new profile from the remote auth service without requiring a manual login.
28
- *
29
- * @param tenantCode Enforces the given tenantCode. When set, current context will be ignored if it does not match it.
30
- * */
31
- loadUserContext(tenantCode) {
32
- // let output: UserContext | undefined;
33
- let homeDir = "~/"; // path.posix.resolve("~/"); // NOTE: This tilde (~) may not be valid on a windows box.
34
- let pathName = path.posix.join(homeDir, codiac_ops_common_1.OpsConstants.CLI_CONFIG_FOLDER_NAME, codiac_constants_1.CliConstants.USER_CONTEXT_FILENAME);
35
- this.logger.trace(`Reading ${pathName}...`);
36
- let machineUserContext = codiac_ops_common_1.JsonUtils.deserializeJsonFile(pathName);
37
- if (machineUserContext) {
38
- if (tenantCode === undefined) {
39
- // output = machineUserContext;
40
- }
41
- else { // ENFORCE the given tenantCode
42
- if (machineUserContext.currentTenantCode === tenantCode) {
43
- // output = machineUserContext;
44
- }
45
- else {
46
- this.trySetCurrentProfileFor(tenantCode, machineUserContext);
47
- // output = machineUserContext;
48
- }
49
- }
50
- this.logger.trace(`Current user context (from cache). User: ${machineUserContext.userName}, TenantCode: ${machineUserContext.currentTenantCode}`);
51
- }
52
- return machineUserContext; // output;
53
- }
54
- /** Mutates the given object's current tenant properties
55
- * (currentToken, currentEnterprise, currentTenantCode, tokenExpiration)
56
- * to those of the current tenant code,
57
- * by either allowing the current state,
58
- * or by applying any relevant tenant profile that exists onboard the given context object.
59
- *
60
- * If no matching profile exists, "current" properties will be set to undefined (like a principal user),
61
- * but the context itself WILL STILL BE RETURNED.
62
- */
63
- trySetCurrentProfileFor(tenantCode, userContext) {
64
- userContext.currentEnterprise = userContext.enterpriseContexts[tenantCode];
65
- userContext.currentToken = userContext.tokens[tenantCode];
66
- // These expirations really need to be stored in the tokens collection
67
- // machineUserContext.tokenExpiration = (machineUserContext.currentToken) ? parseTokenExpiration(machineUserContext.currentToken) : undefined;
68
- userContext.tokenExpiration = undefined;
69
- // Only set the tenant code if they have a profile for it
70
- userContext.currentTenantCode = undefined;
71
- if ((userContext.currentToken !== undefined && userContext.currentToken !== "")
72
- || (userContext.currentEnterprise !== undefined)) {
73
- userContext.currentTenantCode = tenantCode;
74
- }
75
- }
76
- /** Obliterates the current user state by deleting the context file. */
77
- clearUserContext() {
78
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
79
- return new Promise((resolve, reject) => {
80
- try {
81
- let homeDir = "~/"; // path.posix.resolve("~/"); // NOTE: This tilde (~) may not be valid on a windows box.
82
- let pathName = path.posix.join(codiac_ops_common_1.OpsUtils.resolveHomeDir(homeDir), codiac_ops_common_1.OpsConstants.CLI_CONFIG_FOLDER_NAME, codiac_constants_1.CliConstants.USER_CONTEXT_FILENAME);
83
- pathName = path.normalize(pathName);
84
- if (fs.existsSync(pathName)) {
85
- fs.rm(pathName, { force: true }, () => {
86
- this.logger.debug(`User context file deleted [${pathName}].`);
87
- resolve();
88
- });
89
- }
90
- else {
91
- this.logger.debug(`Nothing to do: user context file does not exist at [${pathName}]`);
92
- resolve();
93
- }
94
- }
95
- catch (err) {
96
- reject(err);
97
- }
98
- });
99
- });
100
- }
101
- }
102
- exports.UserContextLoader = UserContextLoader;
103
- /** Provides cruds for the user context, persisting to the local context config file. */
104
- class UserContextManager {
105
- constructor(authClient, logger) {
106
- this.authClient = authClient;
107
- this.logger = logger;
108
- this.loader = new UserContextLoader(this.logger);
109
- }
110
- /** Extends the user token so we can get the user's tenant profiles.
111
- * If the token is expired, or something has changed, it fails.
112
- * Throws any exceptions.
113
- */
114
- refreshUserContext(currentContext) {
115
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
116
- return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
117
- try {
118
- let result = {};
119
- if (!currentContext)
120
- currentContext = new codiac_relay_contracts_1.UserContext();
121
- if (currentContext.currentToken) {
122
- let refreshResult = yield this.authClient.AuthLegacy.refreshToken(currentContext.currentToken);
123
- if (refreshResult.message)
124
- this.logger.debug(`Token refresh: ${refreshResult.message}`);
125
- if (refreshResult.output) {
126
- result.user = refreshResult.output.user; // We're not getting the user.profiles here
127
- }
128
- if (refreshResult.success && refreshResult.output) {
129
- currentContext.currentToken = refreshResult.output.token;
130
- currentContext.tokenExpiration = refreshResult.output.expiration;
131
- this.writeUserContext(currentContext);
132
- result.context = currentContext;
133
- }
134
- }
135
- resolve(result);
136
- }
137
- catch (err) {
138
- reject(err);
139
- }
140
- }));
141
- });
142
- }
143
- /** Writes the given UserContext to the Toyhauler user config folder on the local machine.
144
- * TODO: Consider writing this to the cache folder instead of the config folder.
145
- * Throws any encountered exceptions. */
146
- writeUserContext(userContext) {
147
- let pathName = path.join("~/", codiac_ops_common_1.OpsConstants.CLI_CONFIG_FOLDER_NAME, codiac_constants_1.CliConstants.USER_CONTEXT_FILENAME);
148
- this.logger.debug(`Writing UserContext to ${pathName}`);
149
- codiac_ops_common_1.JsonUtils.serializeJsonFile(userContext, pathName);
150
- }
151
- /** Persists the current user, its token, and its tenantCode to the user context
152
- * and the userContext file stored on the local machine. */
153
- saveToUserContext(currentContext, userName, token, tenantCode, tokenExpiration) {
154
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
155
- return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
156
- try {
157
- // if (userName) {
158
- if (!currentContext) { // wanna load it here? this._cntx = await this.loadUserContext(user.tenantCode);
159
- currentContext = new codiac_relay_contracts_1.UserContext(userName, tenantCode, token, tokenExpiration);
160
- }
161
- else {
162
- currentContext.userName = userName;
163
- currentContext.currentTenantCode = tenantCode;
164
- currentContext.currentToken = token;
165
- currentContext.tokenExpiration = tokenExpiration;
166
- if (tenantCode)
167
- currentContext.tokens[tenantCode] = token;
168
- }
169
- yield this.writeUserContext(currentContext);
170
- // } else {
171
- // // null input - do nothing.
172
- // TODO: Consider either throwing an error here OR changing signature to return an undefined.
173
- // }
174
- resolve(currentContext);
175
- }
176
- catch (err) {
177
- reject(err);
178
- }
179
- }));
180
- });
181
- }
182
- }
183
- exports.UserContextManager = UserContextManager;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UserContextManager = exports.UserContextLoader = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const path = require("path");
6
+ const fs = require("fs");
7
+ const codiac_relay_contracts_1 = require("@codiac.io/codiac-relay-contracts");
8
+ const codiac_ops_common_1 = require("@codiac.io/codiac-ops-common");
9
+ const codiac_constants_1 = require("./codiac-constants");
10
+ /** Simply deserializes the currently cached user context from its config file.
11
+ * This class exists so that the load methods can be called before an api client gets instantiated. */
12
+ class UserContextLoader {
13
+ constructor(logger) {
14
+ this.logger = logger;
15
+ }
16
+ /** (context is Machine-User scoped)
17
+ * Attempts to load the user and select from their tenant tokens and enterprise contexts persisted locally by the CLI.
18
+ * Returns undefined for not found and throws any encountered exceptions.
19
+ *
20
+ * The full user context will STILL be returned no matter what,
21
+ * whether or not there was a matching tenant profile.
22
+ * But if the context has no matching tenant profile,
23
+ * the CURRENT tenantCode, token, and enterprise will be undefined (ie: a tenantless user, a principal user).
24
+ *
25
+ * This way, if the cache is stale, the current user can still authenticate to refresh it.
26
+ * eg: if the user was just seconds ago added to a tenant,
27
+ * this pattern can pick up the new profile from the remote auth service without requiring a manual login.
28
+ *
29
+ * @param tenantCode Enforces the given tenantCode. When set, current context will be ignored if it does not match it.
30
+ * */
31
+ loadUserContext(tenantCode) {
32
+ // let output: UserContext | undefined;
33
+ let homeDir = "~/"; // path.posix.resolve("~/"); // NOTE: This tilde (~) may not be valid on a windows box.
34
+ let pathName = path.posix.join(homeDir, codiac_ops_common_1.OpsConstants.CLI_CONFIG_FOLDER_NAME, codiac_constants_1.CliConstants.USER_CONTEXT_FILENAME);
35
+ this.logger.trace(`Reading ${pathName}...`);
36
+ let machineUserContext = codiac_ops_common_1.JsonUtils.deserializeJsonFile(pathName);
37
+ if (machineUserContext) {
38
+ if (tenantCode === undefined) {
39
+ // output = machineUserContext;
40
+ }
41
+ else { // ENFORCE the given tenantCode
42
+ if (machineUserContext.currentTenantCode === tenantCode) {
43
+ // output = machineUserContext;
44
+ }
45
+ else {
46
+ this.trySetCurrentProfileFor(tenantCode, machineUserContext);
47
+ // output = machineUserContext;
48
+ }
49
+ }
50
+ this.logger.trace(`Current user context (from cache). User: ${machineUserContext.userName}, TenantCode: ${machineUserContext.currentTenantCode}`);
51
+ }
52
+ return machineUserContext; // output;
53
+ }
54
+ /** Mutates the given object's current tenant properties
55
+ * (currentToken, currentEnterprise, currentTenantCode, tokenExpiration)
56
+ * to those of the current tenant code,
57
+ * by either allowing the current state,
58
+ * or by applying any relevant tenant profile that exists onboard the given context object.
59
+ *
60
+ * If no matching profile exists, "current" properties will be set to undefined (like a principal user),
61
+ * but the context itself WILL STILL BE RETURNED.
62
+ */
63
+ trySetCurrentProfileFor(tenantCode, userContext) {
64
+ userContext.currentEnterprise = userContext.enterpriseContexts[tenantCode];
65
+ userContext.currentToken = userContext.tokens[tenantCode];
66
+ // These expirations really need to be stored in the tokens collection
67
+ // machineUserContext.tokenExpiration = (machineUserContext.currentToken) ? parseTokenExpiration(machineUserContext.currentToken) : undefined;
68
+ userContext.tokenExpiration = undefined;
69
+ // Only set the tenant code if they have a profile for it
70
+ userContext.currentTenantCode = undefined;
71
+ if ((userContext.currentToken !== undefined && userContext.currentToken !== "")
72
+ || (userContext.currentEnterprise !== undefined)) {
73
+ userContext.currentTenantCode = tenantCode;
74
+ }
75
+ }
76
+ /** Obliterates the current user state by deleting the context file. */
77
+ clearUserContext() {
78
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
79
+ return new Promise((resolve, reject) => {
80
+ try {
81
+ let homeDir = "~/"; // path.posix.resolve("~/"); // NOTE: This tilde (~) may not be valid on a windows box.
82
+ let pathName = path.posix.join(codiac_ops_common_1.OpsUtils.resolveHomeDir(homeDir), codiac_ops_common_1.OpsConstants.CLI_CONFIG_FOLDER_NAME, codiac_constants_1.CliConstants.USER_CONTEXT_FILENAME);
83
+ pathName = path.normalize(pathName);
84
+ if (fs.existsSync(pathName)) {
85
+ fs.rm(pathName, { force: true }, () => {
86
+ this.logger.debug(`User context file deleted [${pathName}].`);
87
+ resolve();
88
+ });
89
+ }
90
+ else {
91
+ this.logger.debug(`Nothing to do: user context file does not exist at [${pathName}]`);
92
+ resolve();
93
+ }
94
+ }
95
+ catch (err) {
96
+ reject(err);
97
+ }
98
+ });
99
+ });
100
+ }
101
+ }
102
+ exports.UserContextLoader = UserContextLoader;
103
+ /** Provides cruds for the user context, persisting to the local context config file. */
104
+ class UserContextManager {
105
+ constructor(authClient, logger) {
106
+ this.authClient = authClient;
107
+ this.logger = logger;
108
+ this.loader = new UserContextLoader(this.logger);
109
+ }
110
+ /** Extends the user token so we can get the user's tenant profiles.
111
+ * If the token is expired, or something has changed, it fails.
112
+ * Throws any exceptions.
113
+ */
114
+ refreshUserContext(currentContext) {
115
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
116
+ return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
117
+ try {
118
+ let result = {};
119
+ if (!currentContext)
120
+ currentContext = new codiac_relay_contracts_1.UserContext();
121
+ if (currentContext.currentToken) {
122
+ let refreshResult = yield this.authClient.AuthLegacy.refreshToken(currentContext.currentToken);
123
+ if (refreshResult.message)
124
+ this.logger.debug(`Token refresh: ${refreshResult.message}`);
125
+ if (refreshResult.output) {
126
+ result.user = refreshResult.output.user; // We're not getting the user.profiles here
127
+ }
128
+ if (refreshResult.success && refreshResult.output) {
129
+ currentContext.currentToken = refreshResult.output.token;
130
+ currentContext.tokenExpiration = refreshResult.output.expiration;
131
+ this.writeUserContext(currentContext);
132
+ result.context = currentContext;
133
+ }
134
+ }
135
+ resolve(result);
136
+ }
137
+ catch (err) {
138
+ reject(err);
139
+ }
140
+ }));
141
+ });
142
+ }
143
+ /** Writes the given UserContext to the Toyhauler user config folder on the local machine.
144
+ * TODO: Consider writing this to the cache folder instead of the config folder.
145
+ * Throws any encountered exceptions. */
146
+ writeUserContext(userContext) {
147
+ let pathName = path.join("~/", codiac_ops_common_1.OpsConstants.CLI_CONFIG_FOLDER_NAME, codiac_constants_1.CliConstants.USER_CONTEXT_FILENAME);
148
+ this.logger.debug(`Writing UserContext to ${pathName}`);
149
+ codiac_ops_common_1.JsonUtils.serializeJsonFile(userContext, pathName);
150
+ }
151
+ /** Persists the current user, its token, and its tenantCode to the user context
152
+ * and the userContext file stored on the local machine. */
153
+ saveToUserContext(currentContext, userName, token, tenantCode, tokenExpiration) {
154
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
155
+ return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
156
+ try {
157
+ // if (userName) {
158
+ if (!currentContext) { // wanna load it here? this._cntx = await this.loadUserContext(user.tenantCode);
159
+ currentContext = new codiac_relay_contracts_1.UserContext(userName, tenantCode, token, tokenExpiration);
160
+ }
161
+ else {
162
+ currentContext.userName = userName;
163
+ currentContext.currentTenantCode = tenantCode;
164
+ currentContext.currentToken = token;
165
+ currentContext.tokenExpiration = tokenExpiration;
166
+ if (tenantCode)
167
+ currentContext.tokens[tenantCode] = token;
168
+ }
169
+ yield this.writeUserContext(currentContext);
170
+ // } else {
171
+ // // null input - do nothing.
172
+ // TODO: Consider either throwing an error here OR changing signature to return an undefined.
173
+ // }
174
+ resolve(currentContext);
175
+ }
176
+ catch (err) {
177
+ reject(err);
178
+ }
179
+ }));
180
+ });
181
+ }
182
+ }
183
+ exports.UserContextManager = UserContextManager;
184
184
  //# sourceMappingURL=user-context-loader.js.map
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.2.169",
2
+ "version": "1.2.170",
3
3
  "commands": {
4
4
  "branch": {
5
5
  "id": "branch",
@@ -4171,50 +4171,6 @@
4171
4171
  }
4172
4172
  }
4173
4173
  },
4174
- "view:dashboard": {
4175
- "id": "view:dashboard",
4176
- "description": "Spins up the dashboard for a given cabinet",
4177
- "strict": true,
4178
- "pluginName": "@codiac.io/codiac-cli",
4179
- "pluginAlias": "@codiac.io/codiac-cli",
4180
- "pluginType": "core",
4181
- "aliases": [
4182
- "view:dash",
4183
- "dash"
4184
- ],
4185
- "flags": {
4186
- "help": {
4187
- "name": "help",
4188
- "type": "boolean",
4189
- "char": "h",
4190
- "description": "Show CLI help.",
4191
- "allowNo": false
4192
- }
4193
- },
4194
- "args": {}
4195
- },
4196
- "view:pods": {
4197
- "id": "view:pods",
4198
- "description": "Spins up the k9s cli pod viewer",
4199
- "strict": true,
4200
- "pluginName": "@codiac.io/codiac-cli",
4201
- "pluginAlias": "@codiac.io/codiac-cli",
4202
- "pluginType": "core",
4203
- "aliases": [
4204
- "view:k9s",
4205
- "k9s"
4206
- ],
4207
- "flags": {
4208
- "help": {
4209
- "name": "help",
4210
- "type": "boolean",
4211
- "char": "h",
4212
- "description": "Show CLI help.",
4213
- "allowNo": false
4214
- }
4215
- },
4216
- "args": {}
4217
- },
4218
4174
  "asset:probe:create": {
4219
4175
  "id": "asset:probe:create",
4220
4176
  "description": "Declares the implementation of a health or readiness probe for an asset.",