@codiac.io/codiac-cli 1.2.169 → 1.2.171

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 (524) 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/login.js.map +1 -1
  223. package/lib/commands/logout.d.ts +8 -8
  224. package/lib/commands/logout.js +36 -36
  225. package/lib/commands/merge.d.ts +12 -12
  226. package/lib/commands/merge.js +42 -42
  227. package/lib/commands/noc/cluster/create.d.ts +28 -28
  228. package/lib/commands/noc/cluster/create.js +132 -132
  229. package/lib/commands/noc/cluster/deinit.d.ts +17 -17
  230. package/lib/commands/noc/cluster/deinit.js +116 -116
  231. package/lib/commands/noc/cluster/destroy.d.ts +20 -20
  232. package/lib/commands/noc/cluster/destroy.js +137 -137
  233. package/lib/commands/noc/cluster/forget.d.ts +16 -16
  234. package/lib/commands/noc/cluster/forget.js +136 -136
  235. package/lib/commands/noc/cluster/grant.d.ts +24 -24
  236. package/lib/commands/noc/cluster/grant.js +159 -159
  237. package/lib/commands/noc/cluster/init.d.ts +17 -17
  238. package/lib/commands/noc/cluster/init.js +116 -116
  239. package/lib/commands/noc/cluster/list.d.ts +21 -21
  240. package/lib/commands/noc/cluster/list.js +83 -83
  241. package/lib/commands/noc/cluster/recreate.d.ts +28 -28
  242. package/lib/commands/noc/cluster/recreate.js +185 -185
  243. package/lib/commands/pkg/add.d.ts +15 -15
  244. package/lib/commands/pkg/add.js +42 -42
  245. package/lib/commands/pkg/list.d.ts +9 -9
  246. package/lib/commands/pkg/list.js +32 -32
  247. package/lib/commands/pkg/patch.d.ts +13 -13
  248. package/lib/commands/pkg/patch.js +78 -78
  249. package/lib/commands/pkg/remove.d.ts +12 -12
  250. package/lib/commands/pkg/remove.js +69 -69
  251. package/lib/commands/portal.d.ts +11 -11
  252. package/lib/commands/portal.js +81 -81
  253. package/lib/commands/publish.d.ts +21 -21
  254. package/lib/commands/publish.js +51 -51
  255. package/lib/commands/pull.d.ts +13 -13
  256. package/lib/commands/pull.js +29 -29
  257. package/lib/commands/push.d.ts +13 -13
  258. package/lib/commands/push.js +29 -29
  259. package/lib/commands/run.d.ts +35 -35
  260. package/lib/commands/run.js +193 -193
  261. package/lib/commands/secretStore/capture.d.ts +27 -27
  262. package/lib/commands/secretStore/capture.js +174 -174
  263. package/lib/commands/secretStore/forget.d.ts +20 -20
  264. package/lib/commands/secretStore/forget.js +146 -146
  265. package/lib/commands/stage.d.ts +13 -13
  266. package/lib/commands/stage.js +64 -64
  267. package/lib/commands/stash.d.ts +13 -13
  268. package/lib/commands/stash.js +30 -30
  269. package/lib/commands/status.d.ts +12 -12
  270. package/lib/commands/status.js +48 -48
  271. package/lib/commands/stop.d.ts +10 -10
  272. package/lib/commands/stop.js +51 -51
  273. package/lib/commands/switch.d.ts +11 -11
  274. package/lib/commands/switch.js +41 -41
  275. package/lib/commands/sync.d.ts +14 -14
  276. package/lib/commands/sync.js +20 -20
  277. package/lib/commands/tenant/create.d.ts +27 -27
  278. package/lib/commands/tenant/create.js +119 -119
  279. package/lib/commands/tenant/switch.d.ts +24 -24
  280. package/lib/commands/tenant/switch.js +108 -108
  281. package/lib/commands/unstage.d.ts +12 -12
  282. package/lib/commands/unstage.js +57 -57
  283. package/lib/commands/whereami.d.ts +15 -15
  284. package/lib/commands/whereami.js +122 -122
  285. package/lib/commands/whoami.d.ts +8 -8
  286. package/lib/commands/whoami.js +39 -39
  287. package/lib/errors/NoMembershipError.d.ts +8 -8
  288. package/lib/errors/NoMembershipError.js +14 -14
  289. package/lib/index.d.ts +1 -1
  290. package/lib/index.js +16 -16
  291. package/lib/log-update-wrapper.d.ts +24 -24
  292. package/lib/log-update-wrapper.js +28 -28
  293. package/lib/log4js-logger.d.ts +26 -26
  294. package/lib/log4js-logger.js +137 -137
  295. package/lib/ops/INTERFACES_CLI.d.ts +3 -3
  296. package/lib/ops/INTERFACES_CLI.js +7 -7
  297. package/lib/ops/LocalOps.d.ts +444 -444
  298. package/lib/ops/LocalOps.js +3183 -3183
  299. package/lib/ops/azure-container-registry-client/azure-container-registry-client.js +147 -147
  300. package/lib/ops/cli-path-walker.js +54 -54
  301. package/lib/ops/codiac-entities/dependency.d.ts +5 -5
  302. package/lib/ops/codiac-entities/dependency.js +10 -10
  303. package/lib/ops/codiac-entities/index.d.ts +1 -1
  304. package/lib/ops/codiac-entities/index.js +4 -4
  305. package/lib/ops/composite-image-registry-client.js +73 -73
  306. package/lib/ops/data/cli-context-repo.d.ts +61 -61
  307. package/lib/ops/data/cli-context-repo.js +269 -269
  308. package/lib/ops/data/index.d.ts +2 -2
  309. package/lib/ops/data/index.js +5 -5
  310. package/lib/ops/data/npm-config-repo.d.ts +13 -13
  311. package/lib/ops/data/npm-config-repo.js +64 -64
  312. package/lib/ops/docker-config.js +130 -130
  313. package/lib/ops/docker-constants.js +21 -21
  314. package/lib/ops/docker-credentials-store.js +237 -237
  315. package/lib/ops/docker-registry-api-client/docker-registry-api-client.js +288 -288
  316. package/lib/ops/docker-registry-api-client/entities/blob-sum.d.ts +7 -7
  317. package/lib/ops/docker-registry-api-client/entities/blob-sum.js +12 -12
  318. package/lib/ops/docker-registry-api-client/entities/docker-access-actions-enum.d.ts +5 -5
  319. package/lib/ops/docker-registry-api-client/entities/docker-access-actions-enum.js +9 -9
  320. package/lib/ops/docker-registry-api-client/entities/docker-auth-token-criteria.d.ts +30 -30
  321. package/lib/ops/docker-registry-api-client/entities/docker-auth-token-criteria.js +35 -35
  322. package/lib/ops/docker-registry-api-client/entities/i-docker-error-response.d.ts +55 -55
  323. package/lib/ops/docker-registry-api-client/entities/i-docker-error-response.js +51 -51
  324. package/lib/ops/docker-registry-api-client/entities/i-docker-list-response.d.ts +7 -7
  325. package/lib/ops/docker-registry-api-client/entities/i-docker-list-response.js +2 -2
  326. package/lib/ops/docker-registry-api-client/entities/image-repository.d.ts +31 -31
  327. package/lib/ops/docker-registry-api-client/entities/image-repository.js +29 -29
  328. package/lib/ops/docker-registry-api-client/entities/image-tag-criteria.d.ts +8 -8
  329. package/lib/ops/docker-registry-api-client/entities/image-tag-criteria.js +13 -13
  330. package/lib/ops/docker-registry-api-client/entities/image-tag-list.d.ts +7 -7
  331. package/lib/ops/docker-registry-api-client/entities/image-tag-list.js +12 -12
  332. package/lib/ops/docker-registry-api-client/entities/manifest-criteria.d.ts +9 -9
  333. package/lib/ops/docker-registry-api-client/entities/manifest-criteria.js +14 -14
  334. package/lib/ops/docker-registry-api-client/entities/manifest.d.ts +15 -15
  335. package/lib/ops/docker-registry-api-client/entities/manifest.js +20 -20
  336. package/lib/ops/docker-registry-api-client/entities/repository-criteria.d.ts +16 -16
  337. package/lib/ops/docker-registry-api-client/entities/repository-criteria.js +23 -23
  338. package/lib/ops/docker-registry-api-client/entities/token-response.d.ts +15 -15
  339. package/lib/ops/docker-registry-api-client/entities/token-response.js +14 -14
  340. package/lib/ops/docker-registry-api-client/entities/token.d.ts +17 -17
  341. package/lib/ops/docker-registry-api-client/entities/token.js +21 -21
  342. package/lib/ops/docker-registry-api-client/entities/version-check-criteria.d.ts +4 -4
  343. package/lib/ops/docker-registry-api-client/entities/version-check-criteria.js +9 -9
  344. package/lib/ops/dx-constants.d.ts +26 -26
  345. package/lib/ops/dx-constants.js +42 -42
  346. package/lib/ops/entities/ImageBuildContext.d.ts +12 -12
  347. package/lib/ops/entities/ImageBuildContext.js +18 -18
  348. package/lib/ops/entities/PipelineContext.d.ts +21 -21
  349. package/lib/ops/entities/PipelineContext.js +22 -22
  350. package/lib/ops/entities/TenantContext.d.ts +10 -10
  351. package/lib/ops/entities/TenantContext.js +15 -15
  352. package/lib/ops/entities/ThaulConfig.js +29 -29
  353. package/lib/ops/entities/azure-service-principal.d.ts +23 -23
  354. package/lib/ops/entities/azure-service-principal.js +23 -23
  355. package/lib/ops/entities/better-logger.js +1 -1
  356. package/lib/ops/entities/branch.d.ts +13 -13
  357. package/lib/ops/entities/branch.js +15 -15
  358. package/lib/ops/entities/cli-config.d.ts +48 -48
  359. package/lib/ops/entities/cli-config.js +60 -60
  360. package/lib/ops/entities/docker-image.d.ts +60 -60
  361. package/lib/ops/entities/docker-image.js +2 -2
  362. package/lib/ops/entities/helm-spec.d.ts +15 -15
  363. package/lib/ops/entities/helm-spec.js +22 -22
  364. package/lib/ops/entities/index.d.ts +4 -4
  365. package/lib/ops/entities/index.js +11 -11
  366. package/lib/ops/entities/operation-meta.d.ts +8 -8
  367. package/lib/ops/entities/operation-meta.js +18 -18
  368. package/lib/ops/entities/scaffolding.d.ts +19 -19
  369. package/lib/ops/entities/scaffolding.js +20 -20
  370. package/lib/ops/extensions/azart-identity-adapter.d.ts +19 -19
  371. package/lib/ops/extensions/azart-identity-adapter.js +96 -96
  372. package/lib/ops/extensions/npm-identity-adapter-base.d.ts +13 -13
  373. package/lib/ops/extensions/npm-identity-adapter-base.js +2 -2
  374. package/lib/ops/extensions/npmjs-identity-adapter.d.ts +13 -13
  375. package/lib/ops/extensions/npmjs-identity-adapter.js +63 -63
  376. package/lib/ops/git-ops.d.ts +8 -8
  377. package/lib/ops/git-ops.js +13 -13
  378. package/lib/ops/i-client-for-image-registry.js +16 -16
  379. package/lib/ops/i-identity-handler.d.ts +33 -33
  380. package/lib/ops/i-identity-handler.js +164 -164
  381. package/lib/ops/i-output-styler.js +16 -16
  382. package/lib/ops/index.d.ts +12 -12
  383. package/lib/ops/index.js +14 -14
  384. package/lib/ops/json-utils.js +58 -58
  385. package/lib/ops/no-style-output-styler.js +29 -29
  386. package/lib/ops/oauth2-client.ts/oauth2-client.d.ts +23 -23
  387. package/lib/ops/oauth2-client.ts/oauth2-client.js +63 -63
  388. package/lib/ops/project-initializer.d.ts +36 -36
  389. package/lib/ops/project-initializer.js +218 -218
  390. package/lib/ops/scaffolding/base-scaffolding.d.ts +7 -7
  391. package/lib/ops/scaffolding/base-scaffolding.js +20 -20
  392. package/lib/ops/scaffolding/codiac-api-scaffolding.d.ts +7 -7
  393. package/lib/ops/scaffolding/codiac-api-scaffolding.js +63 -63
  394. package/lib/ops/scaffolding/typescript-scaffolding.d.ts +15 -15
  395. package/lib/ops/scaffolding/typescript-scaffolding.js +162 -162
  396. package/lib/ops/test/mock-ui.d.ts +26 -26
  397. package/lib/ops/test/mock-ui.js +87 -87
  398. package/lib/ops/test/test-extensions.d.ts +13 -13
  399. package/lib/ops/test/test-extensions.js +70 -70
  400. package/lib/ops/test/when-a-recursive-file-search-is-run.spec.d.ts +2 -2
  401. package/lib/ops/test/when-a-recursive-file-search-is-run.spec.js +54 -54
  402. package/lib/ops/test/when-git-branchline-is-attempted.spec.d.ts +2 -2
  403. package/lib/ops/test/when-git-branchline-is-attempted.spec.js +37 -37
  404. package/lib/ops/test/when-versions-are-parsed.spec.d.ts +2 -2
  405. package/lib/ops/test/when-versions-are-parsed.spec.js +59 -59
  406. package/lib/ops/throwing-user-input-provider.js +36 -36
  407. package/lib/prettify.d.ts +7 -7
  408. package/lib/prettify.js +23 -23
  409. package/lib/read-stdin.d.ts +2 -2
  410. package/lib/read-stdin.js +28 -28
  411. package/lib/relay/contracts/contracts.d.ts +207 -207
  412. package/lib/relay/contracts/contracts.js +229 -229
  413. package/lib/relay/extended-relay-client.d.ts +27 -27
  414. package/lib/relay/extended-relay-client.js +27 -27
  415. package/lib/relay/relay-container.d.ts +41 -41
  416. package/lib/relay/relay-container.js +297 -297
  417. package/lib/relay/wsclient/relay-socket-listener.d.ts +68 -68
  418. package/lib/relay/wsclient/relay-socket-listener.js +164 -164
  419. package/lib/relay/wsclient/relay-websocket-client.d.ts +33 -33
  420. package/lib/relay/wsclient/relay-websocket-client.js +178 -178
  421. package/lib/relay/wsclient/rx-websocket-subject.d.ts +25 -25
  422. package/lib/relay/wsclient/rx-websocket-subject.js +133 -133
  423. package/lib/relay/wsclient/socket-contracts.d.ts +22 -22
  424. package/lib/relay/wsclient/socket-contracts.js +2 -2
  425. package/lib/standard-probes.d.ts +5 -5
  426. package/lib/standard-probes.js +21 -21
  427. package/lib/uilogic/build-configurator.d.ts +21 -21
  428. package/lib/uilogic/build-configurator.js +110 -110
  429. package/lib/uilogic/cloud-provider-contextualizer.d.ts +46 -46
  430. package/lib/uilogic/cloud-provider-contextualizer.js +193 -193
  431. package/lib/uilogic/cloud-resource-configurator-factory.d.ts +41 -41
  432. package/lib/uilogic/cloud-resource-configurator-factory.js +157 -157
  433. package/lib/uilogic/cloud-resource-configurators/aws-resource-configurator.d.ts +38 -38
  434. package/lib/uilogic/cloud-resource-configurators/aws-resource-configurator.js +347 -347
  435. package/lib/uilogic/cloud-resource-configurators/az-acr-cli-authenticator.js +77 -77
  436. package/lib/uilogic/cloud-resource-configurators/az-interactive-login-configurator.d.ts +42 -42
  437. package/lib/uilogic/cloud-resource-configurators/az-interactive-login-configurator.js +247 -247
  438. package/lib/uilogic/cloud-resource-configurators/azure-resource-configurator.d.ts +110 -110
  439. package/lib/uilogic/cloud-resource-configurators/azure-resource-configurator.js +781 -781
  440. package/lib/uilogic/cloud-resource-configurators/azure-types.js +9 -9
  441. package/lib/uilogic/cloud-resource-configurators/docker-hub-resource-configurator.d.ts +24 -24
  442. package/lib/uilogic/cloud-resource-configurators/docker-hub-resource-configurator.js +105 -105
  443. package/lib/uilogic/cloud-resource-configurators/helm-resource-configurator.d.ts +16 -16
  444. package/lib/uilogic/cloud-resource-configurators/helm-resource-configurator.js +44 -44
  445. package/lib/uilogic/cloud-resource-configurators/unsupported-resource-configurator.d.ts +18 -18
  446. package/lib/uilogic/cloud-resource-configurators/unsupported-resource-configurator.js +61 -61
  447. package/lib/uilogic/enterprise-contextualizer.d.ts +76 -76
  448. package/lib/uilogic/enterprise-contextualizer.js +670 -670
  449. package/lib/uilogic/environment-contextualizer.d.ts +15 -15
  450. package/lib/uilogic/environment-contextualizer.js +42 -42
  451. package/lib/uilogic/i-cluster-configurator.d.ts +9 -9
  452. package/lib/uilogic/i-cluster-configurator.js +2 -2
  453. package/lib/uilogic/i-login-configurator.d.ts +6 -6
  454. package/lib/uilogic/i-login-configurator.js +2 -2
  455. package/lib/uilogic/i-registry-configurator.d.ts +6 -6
  456. package/lib/uilogic/i-registry-configurator.js +2 -2
  457. package/lib/uilogic/i-secret-store-configurator.d.ts +7 -7
  458. package/lib/uilogic/i-secret-store-configurator.js +2 -2
  459. package/lib/uilogic/image-configurator.d.ts +133 -133
  460. package/lib/uilogic/image-configurator.js +577 -577
  461. package/lib/uilogic/image-contextualizer.d.ts +24 -24
  462. package/lib/uilogic/image-contextualizer.js +89 -89
  463. package/lib/uilogic/image-registry-contextualizer.d.ts +28 -28
  464. package/lib/uilogic/image-registry-contextualizer.js +126 -126
  465. package/lib/uilogic/index.d.ts +9 -9
  466. package/lib/uilogic/index.js +13 -13
  467. package/lib/uilogic/prompt-select-fuzzy.js +138 -138
  468. package/lib/uilogic/render-methods.d.ts +12 -12
  469. package/lib/uilogic/render-methods.js +64 -64
  470. package/lib/uilogic/tenant-contextualizer.d.ts +79 -79
  471. package/lib/uilogic/tenant-contextualizer.js +577 -573
  472. package/lib/uilogic/tenant-contextualizer.js.map +1 -1
  473. package/lib/user-context-loader.d.ts +60 -60
  474. package/lib/user-context-loader.js +183 -183
  475. package/oclif.manifest.json +1 -45
  476. package/package.json +150 -150
  477. package/scaffolding/api/.gitignore-scaffolding +68 -68
  478. package/scaffolding/api/.vscode/launch.json +16 -16
  479. package/scaffolding/api/.vscode/settings.json +7 -7
  480. package/scaffolding/api/.vscode/tasks.json +15 -15
  481. package/scaffolding/api/src/app-config.json +2 -2
  482. package/scaffolding/api/src/index.ts-scaffolding +13 -13
  483. package/scaffolding/api/src/myApiDef.ts-scaffolding +25 -25
  484. package/scaffolding/default/.gitignore-scaffolding +2 -2
  485. package/scaffolding/typescript/.gitignore-scaffolding +69 -69
  486. package/scaffolding/typescript/.vscode/launch.json +16 -16
  487. package/scaffolding/typescript/.vscode/settings.json +7 -7
  488. package/scaffolding/typescript/.vscode/tasks.json +15 -15
  489. package/lib/api-command-base.d.ts +0 -0
  490. package/lib/api-command-base.js +0 -52
  491. package/lib/api-command-base.js.map +0 -1
  492. package/lib/azure-rest-client.d.ts +0 -6
  493. package/lib/azure-rest-client.js +0 -36
  494. package/lib/azure-rest-client.js.map +0 -1
  495. package/lib/commands/view/dashboard.d.ts +0 -17
  496. package/lib/commands/view/dashboard.js +0 -88
  497. package/lib/commands/view/dashboard.js.map +0 -1
  498. package/lib/commands/view/pods.d.ts +0 -14
  499. package/lib/commands/view/pods.js +0 -88
  500. package/lib/commands/view/pods.js.map +0 -1
  501. package/lib/deployment.d.ts +0 -2
  502. package/lib/deployment.js +0 -7
  503. package/lib/deployment.js.map +0 -1
  504. package/lib/k8s-command-base.d.ts +0 -60
  505. package/lib/k8s-command-base.js +0 -204
  506. package/lib/k8s-command-base.js.map +0 -1
  507. package/lib/relay/data/aws-k8s-versions.d.ts +0 -6
  508. package/lib/relay/data/aws-k8s-versions.js +0 -16
  509. package/lib/relay/data/aws-k8s-versions.js.map +0 -1
  510. package/lib/relay/data/aws-node-types.d.ts +0 -37
  511. package/lib/relay/data/aws-node-types.js +0 -4246
  512. package/lib/relay/data/aws-node-types.js.map +0 -1
  513. package/lib/relay/data/aws-regions.d.ts +0 -6
  514. package/lib/relay/data/aws-regions.js +0 -34
  515. package/lib/relay/data/aws-regions.js.map +0 -1
  516. package/lib/uilogic/cloud-resource-configurators/aws-k8s-versions.d.ts +0 -11
  517. package/lib/uilogic/cloud-resource-configurators/aws-k8s-versions.js +0 -16
  518. package/lib/uilogic/cloud-resource-configurators/aws-k8s-versions.js.map +0 -1
  519. package/lib/uilogic/cloud-resource-configurators/aws-node-types.d.ts +0 -5
  520. package/lib/uilogic/cloud-resource-configurators/aws-node-types.js +0 -536
  521. package/lib/uilogic/cloud-resource-configurators/aws-node-types.js.map +0 -1
  522. package/lib/uilogic/cloud-resource-configurators/aws-regions.d.ts +0 -10
  523. package/lib/uilogic/cloud-resource-configurators/aws-regions.js +0 -34
  524. package/lib/uilogic/cloud-resource-configurators/aws-regions.js.map +0 -1
@@ -1,194 +1,194 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- require("reflect-metadata");
5
- const core_1 = require("@oclif/core");
6
- const child_process_1 = require("child_process");
7
- const nodeUtil = require("util");
8
- const ops_1 = require("../ops");
9
- const codiac_ops_common_1 = require("@codiac.io/codiac-ops-common");
10
- const cli_common_1 = require("../cli-common");
11
- const command_base_tenantless_1 = require("../command-base-tenantless");
12
- const execAsync = nodeUtil.promisify(child_process_1.exec); // antiquated nastiness
13
- class Run extends command_base_tenantless_1.CommandBaseTenantless {
14
- logOutput(output) {
15
- this.logger.debug(this._styler.dim(output.stderr) + this._styler.dim(output.stdout));
16
- }
17
- run() {
18
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
19
- try {
20
- this.bootstrap();
21
- return this.exec.runWithDefaults(yield this.parse(Run), (args, flags) => tslib_1.__awaiter(this, void 0, void 0, function* () {
22
- return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
23
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
24
- try {
25
- // -------------------------------------------------
26
- // TODO: Retrieve image specs from the ImageExport
27
- // -------------------------------------------------
28
- let imageExport = {};
29
- if (this._projCfg.images) {
30
- for (let key in this._projCfg.images) {
31
- imageExport = this._projCfg.images[key];
32
- break;
33
- }
34
- }
35
- let version = (_a = imageExport.version) !== null && _a !== void 0 ? _a : yield this._ops.getCodeVersion();
36
- let image = `${imageExport.name}:${version}`; // `${this._projCfg.name}:${version}`;
37
- let containerName = `${this._projCfg.name}`; // TODO: Add tenantCode as scope for the container.
38
- if (flags.build) {
39
- this._ui.startSpinner(`Building...`);
40
- yield this.build();
41
- this._ui.stopSpinner("complete.");
42
- }
43
- let detach = (flags.detach || flags.watch) ? " -d" : "";
44
- let entryPoint = (flags.entrypoint) ? ` ${flags.entrypoint}` : "";
45
- // Fall back on EXPOSE cmd in the image, available via '$ docker image inspect'
46
- // https://docs.docker.com/engine/reference/builder/#expose
47
- let extPort = (flags.port) ? flags.port : ops_1.DxConstants.DEFAULT_EXTERNAL_PORT;
48
- // DETERMINE INTERNAL PORT
49
- let tsconfig = this._ops.readTsConfig();
50
- let outdir = (tsconfig) ? tsconfig.compilerOptions.outDir : undefined || ops_1.DxConstants.DEFAULT_BUILD_OUTPUT_DIR;
51
- let config = this._ops.loadConfig(outdir);
52
- let intPort;
53
- if (flags.internalPort) {
54
- intPort = flags.internalPort;
55
- }
56
- else {
57
- intPort = (config ? config["port"] || config["portLastUsed"] : undefined) || ops_1.DxConstants.DEFAULT_INTERNAL_PORT;
58
- }
59
- this.logger.debug(`Internal port: ${this._styler.hilite("" + intPort)}`);
60
- let intx = (flags.interactive && !flags.watch) ? " -it" : "";
61
- let nwk = (flags.network) ? flags.network : this._projCfg.tenantCode;
62
- let cliExec = new codiac_ops_common_1.CliExec(this.logger);
63
- // let nid = await execAsync(`docker network ls -f name=${nwk} -q`); // CANT use this! Does a "name contains" not "name equals"
64
- // Here's Docker forcing us to do an existence-by-exception check;
65
- // I just hope that exception is in fact a non existence fail,
66
- // and not a valid exception thrown for another reason.
67
- // Oh well, guess this is acceptable engineering in their world...
68
- try {
69
- let nid = yield cliExec.execAsyncStdOut(`docker network inspect ${nwk} -f "{{.Id}}"`, { cwd: this._projectRoot });
70
- }
71
- catch (err) {
72
- let cmd = `docker network create ${nwk} --driver bridge`;
73
- this.logger.detail(`Creating docker network: ${nwk}...`);
74
- let responseCode = yield cliExec.spawnAndLog(cmd, this._projectRoot);
75
- }
76
- this.logger.detail(`Attaching to the following Docker network [name=${nwk}]...`);
77
- cliExec.spawnAndLog(`docker network ls -f name=${nwk}`, this._projectRoot);
78
- // let showNetwork = await execAsync(`docker network ls -f name=${nwk}`);
79
- // Run.logOutput(showNetwork);
80
- // TODO: Give the user the ability to get the container info: exposed ports, network name, image name
81
- // remove any existing
82
- let existing = yield execAsync(`docker ps -a -f name=${containerName} -q`);
83
- if (existing.stdout) {
84
- this.logger.detail(`removing previously existing container...`);
85
- let rm = yield execAsync(`docker rm -f ${containerName}`);
86
- this.logOutput(rm);
87
- }
88
- let dockerflags = {};
89
- let dockerArgs = [];
90
- dockerflags["--name"] = containerName;
91
- dockerflags["--expose"] = `${extPort}`;
92
- dockerflags["-p"] = `${extPort}:${intPort}`;
93
- dockerflags["-e"] = `LISTEN_ON=${intPort}`;
94
- dockerflags["--network"] = `${nwk}${intx}${detach}`;
95
- if (flags.mountFolder !== undefined) {
96
- let parts = flags.mountFolder.split(",");
97
- if (parts.length === 2) {
98
- let src = parts[0].split("=");
99
- if (src.length === 2) {
100
- let srcPath = codiac_ops_common_1.OpsUtils.resolveHomeDir(src[1]);
101
- let dst = parts[1].split("=");
102
- if (dst.length === 2) {
103
- // let dstPath = resolveHomeDir(parts[1].split("=")[1]);
104
- let dstPath = dst[1];
105
- dockerflags["--mount"] = `type=bind,src=${srcPath},dst=${dstPath}`;
106
- }
107
- }
108
- }
109
- if (!dockerflags["--mount"]) {
110
- this.logger.debug(`Incorrect format for --mountFolder; use "src=~/my/local/folder,dst=/root/in/container"`);
111
- }
112
- }
113
- dockerArgs.push(image);
114
- if (entryPoint !== undefined && entryPoint !== "")
115
- dockerArgs.push(entryPoint);
116
- let dockerCmd = "docker run";
117
- for (let flag in dockerflags) {
118
- dockerCmd = dockerCmd.concat(" ", flag, " ", dockerflags[flag]);
119
- }
120
- for (let arg of dockerArgs) {
121
- dockerCmd = dockerCmd.concat(" ", arg);
122
- }
123
- // let dockerCmd = `docker run --name ${containerName} --expose ${extPort} -p ${extPort}:${intPort} -e LISTEN_ON=${intPort} --network ${nwk}${intx}${detach} ${image} ${entryPoint}`;
124
- this.logger.detail(`Running the container: ${image} as ${this._styler.hilite(containerName)}`);
125
- this.logger.debug(dockerCmd);
126
- // let publicUrl = `http://localhost:${extPort}/openApi`
127
- let publicUrl = `http://localhost:${extPort}/`;
128
- if (flags.watch) {
129
- // Run the container (watching forces detach, so we know this command will start and release)
130
- let runOutput = yield execAsync(dockerCmd);
131
- this.logOutput(runOutput);
132
- this._ui.userMessage(this._styler.colorGood(`${this._styler.hilite(image)} is now available at ${this._styler.hilite(publicUrl)}`));
133
- // Stream the "docker logs" output (this will continue indefinitely)
134
- this._ui.userMessage(`Watching ${this._styler.hilite(containerName)} log (CTRL-C to quit)...`);
135
- let runProc = (0, child_process_1.exec)(`docker logs -f ${containerName}`);
136
- (_b = runProc.stdout) === null || _b === void 0 ? void 0 : _b.addListener("data", chunk => process.stdout.write(chunk));
137
- (_c = runProc.stderr) === null || _c === void 0 ? void 0 : _c.addListener("error", err => process.stderr.write(`${err.name}: ${err.stack || err.message}`));
138
- (_d = runProc.stdin) === null || _d === void 0 ? void 0 : _d.addListener("data", chunk => process.stdin.write(chunk));
139
- }
140
- else if (flags.detach) {
141
- // Stream the "docker run" output (in this case it'll start and release)
142
- let runProc = (0, child_process_1.exec)(dockerCmd);
143
- (_e = runProc.stdout) === null || _e === void 0 ? void 0 : _e.addListener("data", chunk => process.stdout.write(chunk));
144
- (_f = runProc.stderr) === null || _f === void 0 ? void 0 : _f.addListener("error", err => process.stderr.write(`${err.name}: ${err.stack || err.message}`));
145
- (_g = runProc.stdin) === null || _g === void 0 ? void 0 : _g.addListener("data", chunk => process.stdin.write(chunk));
146
- this._ui.userMessage(this._styler.colorGood(`${this._styler.hilite(image)} is now available at ${this._styler.hilite(publicUrl)}`));
147
- }
148
- else {
149
- this._ui.userMessage(this._styler.colorGood(`Running ${this._styler.hilite(image)} at address ${this._styler.hilite(publicUrl)}`));
150
- // Stream the "docker run" output (this will continue indefinitely)
151
- // First attempt: using exec - doesnt show output
152
- let runProc = (0, child_process_1.exec)(dockerCmd);
153
- (_h = runProc.stdout) === null || _h === void 0 ? void 0 : _h.addListener("data", chunk => process.stdout.write(chunk));
154
- // runProc.stderr.addListener("error", err => process.stderr.write(`${err.name}: ${err.stack||err.message}`));
155
- (_j = runProc.stderr) === null || _j === void 0 ? void 0 : _j.addListener("data", chunk => process.stderr.write(chunk));
156
- (_k = runProc.stdin) === null || _k === void 0 ? void 0 : _k.addListener("data", chunk => process.stdin.write(chunk));
157
- }
158
- resolve();
159
- }
160
- catch (err) {
161
- reject(err);
162
- }
163
- }));
164
- }));
165
- }
166
- catch (err) {
167
- // TODO: Consider this instead...
168
- // this.logger.error(`Error parsing arguments: ${err}`);
169
- // this.logger.debug(err.stack);
170
- // return new Promise<void>(async (res,rej) => res());
171
- return new Promise((res, rej) => tslib_1.__awaiter(this, void 0, void 0, function* () { return rej(new Error(`Error parsing arguments: ${err}`)); }));
172
- }
173
- });
174
- }
175
- build() {
176
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
177
- return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
178
- try {
179
- this.log(`Pretending to build...`);
180
- resolve();
181
- }
182
- catch (err) {
183
- reject(err);
184
- }
185
- }));
186
- });
187
- }
188
- }
189
- exports.default = Run;
190
- Run.description = 'Runs the latest build of the api container locally.';
191
- /** The non-flag arguments the command supports */
192
- Run.args = {};
193
- Run.flags = Object.assign({ build: core_1.Flags.boolean({ char: 'b', description: 'Triggers a new local build beforehand.' }), detach: core_1.Flags.boolean({ char: 'd', description: 'Run container in background and print the container ID.' }), entrypoint: core_1.Flags.string({ char: 'e', description: 'Overrides the default container startup command.' }), help: core_1.Flags.help({ char: 'h', description: "Renders the help document for this command." }), interactive: core_1.Flags.boolean({ char: 'i', description: 'Run the container interactively (in the console; dies with the console). Use -e|--entrypoint to override the startup command for the container.' }), network: core_1.Flags.string({ char: 'n', description: 'The docker network to which the container will be attached (defaults to a network named as the company code, which will be created on demand as a bridge network).' }), mountFolder: core_1.Flags.string({ char: 'm', required: false, description: 'Mounts a folder on the host as a read-write volume on the container. In format "src=~/my/local/folder,dst=/root/in/container".' }), port: core_1.Flags.integer({ char: 'p', description: `(default: ${ops_1.DxConstants.DEFAULT_EXTERNAL_PORT}) Sets the external port to open on the container. That is, the port on which the api will be listening to calls from outside the container.` }), internalPort: core_1.Flags.integer({ char: 'l', description: `(default: ${ops_1.DxConstants.DEFAULT_INTERNAL_PORT}) The port the application inside the container is listening on. Sets the port to which map incoming requests on the container. This port mapping MUST match whatever port number the actual application is listening on.` }), watch: core_1.Flags.boolean({ char: 'w', description: 'Forces a detach run and follows log output from the container.' }) }, cli_common_1.commandBase.globalFlags);
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ require("reflect-metadata");
5
+ const core_1 = require("@oclif/core");
6
+ const child_process_1 = require("child_process");
7
+ const nodeUtil = require("util");
8
+ const ops_1 = require("../ops");
9
+ const codiac_ops_common_1 = require("@codiac.io/codiac-ops-common");
10
+ const cli_common_1 = require("../cli-common");
11
+ const command_base_tenantless_1 = require("../command-base-tenantless");
12
+ const execAsync = nodeUtil.promisify(child_process_1.exec); // antiquated nastiness
13
+ class Run extends command_base_tenantless_1.CommandBaseTenantless {
14
+ logOutput(output) {
15
+ this.logger.debug(this._styler.dim(output.stderr) + this._styler.dim(output.stdout));
16
+ }
17
+ run() {
18
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
19
+ try {
20
+ this.bootstrap();
21
+ return this.exec.runWithDefaults(yield this.parse(Run), (args, flags) => tslib_1.__awaiter(this, void 0, void 0, function* () {
22
+ return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
23
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
24
+ try {
25
+ // -------------------------------------------------
26
+ // TODO: Retrieve image specs from the ImageExport
27
+ // -------------------------------------------------
28
+ let imageExport = {};
29
+ if (this._projCfg.images) {
30
+ for (let key in this._projCfg.images) {
31
+ imageExport = this._projCfg.images[key];
32
+ break;
33
+ }
34
+ }
35
+ let version = (_a = imageExport.version) !== null && _a !== void 0 ? _a : yield this._ops.getCodeVersion();
36
+ let image = `${imageExport.name}:${version}`; // `${this._projCfg.name}:${version}`;
37
+ let containerName = `${this._projCfg.name}`; // TODO: Add tenantCode as scope for the container.
38
+ if (flags.build) {
39
+ this._ui.startSpinner(`Building...`);
40
+ yield this.build();
41
+ this._ui.stopSpinner("complete.");
42
+ }
43
+ let detach = (flags.detach || flags.watch) ? " -d" : "";
44
+ let entryPoint = (flags.entrypoint) ? ` ${flags.entrypoint}` : "";
45
+ // Fall back on EXPOSE cmd in the image, available via '$ docker image inspect'
46
+ // https://docs.docker.com/engine/reference/builder/#expose
47
+ let extPort = (flags.port) ? flags.port : ops_1.DxConstants.DEFAULT_EXTERNAL_PORT;
48
+ // DETERMINE INTERNAL PORT
49
+ let tsconfig = this._ops.readTsConfig();
50
+ let outdir = (tsconfig) ? tsconfig.compilerOptions.outDir : undefined || ops_1.DxConstants.DEFAULT_BUILD_OUTPUT_DIR;
51
+ let config = this._ops.loadConfig(outdir);
52
+ let intPort;
53
+ if (flags.internalPort) {
54
+ intPort = flags.internalPort;
55
+ }
56
+ else {
57
+ intPort = (config ? config["port"] || config["portLastUsed"] : undefined) || ops_1.DxConstants.DEFAULT_INTERNAL_PORT;
58
+ }
59
+ this.logger.debug(`Internal port: ${this._styler.hilite("" + intPort)}`);
60
+ let intx = (flags.interactive && !flags.watch) ? " -it" : "";
61
+ let nwk = (flags.network) ? flags.network : this._projCfg.tenantCode;
62
+ let cliExec = new codiac_ops_common_1.CliExec(this.logger);
63
+ // let nid = await execAsync(`docker network ls -f name=${nwk} -q`); // CANT use this! Does a "name contains" not "name equals"
64
+ // Here's Docker forcing us to do an existence-by-exception check;
65
+ // I just hope that exception is in fact a non existence fail,
66
+ // and not a valid exception thrown for another reason.
67
+ // Oh well, guess this is acceptable engineering in their world...
68
+ try {
69
+ let nid = yield cliExec.execAsyncStdOut(`docker network inspect ${nwk} -f "{{.Id}}"`, { cwd: this._projectRoot });
70
+ }
71
+ catch (err) {
72
+ let cmd = `docker network create ${nwk} --driver bridge`;
73
+ this.logger.detail(`Creating docker network: ${nwk}...`);
74
+ let responseCode = yield cliExec.spawnAndLog(cmd, this._projectRoot);
75
+ }
76
+ this.logger.detail(`Attaching to the following Docker network [name=${nwk}]...`);
77
+ cliExec.spawnAndLog(`docker network ls -f name=${nwk}`, this._projectRoot);
78
+ // let showNetwork = await execAsync(`docker network ls -f name=${nwk}`);
79
+ // Run.logOutput(showNetwork);
80
+ // TODO: Give the user the ability to get the container info: exposed ports, network name, image name
81
+ // remove any existing
82
+ let existing = yield execAsync(`docker ps -a -f name=${containerName} -q`);
83
+ if (existing.stdout) {
84
+ this.logger.detail(`removing previously existing container...`);
85
+ let rm = yield execAsync(`docker rm -f ${containerName}`);
86
+ this.logOutput(rm);
87
+ }
88
+ let dockerflags = {};
89
+ let dockerArgs = [];
90
+ dockerflags["--name"] = containerName;
91
+ dockerflags["--expose"] = `${extPort}`;
92
+ dockerflags["-p"] = `${extPort}:${intPort}`;
93
+ dockerflags["-e"] = `LISTEN_ON=${intPort}`;
94
+ dockerflags["--network"] = `${nwk}${intx}${detach}`;
95
+ if (flags.mountFolder !== undefined) {
96
+ let parts = flags.mountFolder.split(",");
97
+ if (parts.length === 2) {
98
+ let src = parts[0].split("=");
99
+ if (src.length === 2) {
100
+ let srcPath = codiac_ops_common_1.OpsUtils.resolveHomeDir(src[1]);
101
+ let dst = parts[1].split("=");
102
+ if (dst.length === 2) {
103
+ // let dstPath = resolveHomeDir(parts[1].split("=")[1]);
104
+ let dstPath = dst[1];
105
+ dockerflags["--mount"] = `type=bind,src=${srcPath},dst=${dstPath}`;
106
+ }
107
+ }
108
+ }
109
+ if (!dockerflags["--mount"]) {
110
+ this.logger.debug(`Incorrect format for --mountFolder; use "src=~/my/local/folder,dst=/root/in/container"`);
111
+ }
112
+ }
113
+ dockerArgs.push(image);
114
+ if (entryPoint !== undefined && entryPoint !== "")
115
+ dockerArgs.push(entryPoint);
116
+ let dockerCmd = "docker run";
117
+ for (let flag in dockerflags) {
118
+ dockerCmd = dockerCmd.concat(" ", flag, " ", dockerflags[flag]);
119
+ }
120
+ for (let arg of dockerArgs) {
121
+ dockerCmd = dockerCmd.concat(" ", arg);
122
+ }
123
+ // let dockerCmd = `docker run --name ${containerName} --expose ${extPort} -p ${extPort}:${intPort} -e LISTEN_ON=${intPort} --network ${nwk}${intx}${detach} ${image} ${entryPoint}`;
124
+ this.logger.detail(`Running the container: ${image} as ${this._styler.hilite(containerName)}`);
125
+ this.logger.debug(dockerCmd);
126
+ // let publicUrl = `http://localhost:${extPort}/openApi`
127
+ let publicUrl = `http://localhost:${extPort}/`;
128
+ if (flags.watch) {
129
+ // Run the container (watching forces detach, so we know this command will start and release)
130
+ let runOutput = yield execAsync(dockerCmd);
131
+ this.logOutput(runOutput);
132
+ this._ui.userMessage(this._styler.colorGood(`${this._styler.hilite(image)} is now available at ${this._styler.hilite(publicUrl)}`));
133
+ // Stream the "docker logs" output (this will continue indefinitely)
134
+ this._ui.userMessage(`Watching ${this._styler.hilite(containerName)} log (CTRL-C to quit)...`);
135
+ let runProc = (0, child_process_1.exec)(`docker logs -f ${containerName}`);
136
+ (_b = runProc.stdout) === null || _b === void 0 ? void 0 : _b.addListener("data", chunk => process.stdout.write(chunk));
137
+ (_c = runProc.stderr) === null || _c === void 0 ? void 0 : _c.addListener("error", err => process.stderr.write(`${err.name}: ${err.stack || err.message}`));
138
+ (_d = runProc.stdin) === null || _d === void 0 ? void 0 : _d.addListener("data", chunk => process.stdin.write(chunk));
139
+ }
140
+ else if (flags.detach) {
141
+ // Stream the "docker run" output (in this case it'll start and release)
142
+ let runProc = (0, child_process_1.exec)(dockerCmd);
143
+ (_e = runProc.stdout) === null || _e === void 0 ? void 0 : _e.addListener("data", chunk => process.stdout.write(chunk));
144
+ (_f = runProc.stderr) === null || _f === void 0 ? void 0 : _f.addListener("error", err => process.stderr.write(`${err.name}: ${err.stack || err.message}`));
145
+ (_g = runProc.stdin) === null || _g === void 0 ? void 0 : _g.addListener("data", chunk => process.stdin.write(chunk));
146
+ this._ui.userMessage(this._styler.colorGood(`${this._styler.hilite(image)} is now available at ${this._styler.hilite(publicUrl)}`));
147
+ }
148
+ else {
149
+ this._ui.userMessage(this._styler.colorGood(`Running ${this._styler.hilite(image)} at address ${this._styler.hilite(publicUrl)}`));
150
+ // Stream the "docker run" output (this will continue indefinitely)
151
+ // First attempt: using exec - doesnt show output
152
+ let runProc = (0, child_process_1.exec)(dockerCmd);
153
+ (_h = runProc.stdout) === null || _h === void 0 ? void 0 : _h.addListener("data", chunk => process.stdout.write(chunk));
154
+ // runProc.stderr.addListener("error", err => process.stderr.write(`${err.name}: ${err.stack||err.message}`));
155
+ (_j = runProc.stderr) === null || _j === void 0 ? void 0 : _j.addListener("data", chunk => process.stderr.write(chunk));
156
+ (_k = runProc.stdin) === null || _k === void 0 ? void 0 : _k.addListener("data", chunk => process.stdin.write(chunk));
157
+ }
158
+ resolve();
159
+ }
160
+ catch (err) {
161
+ reject(err);
162
+ }
163
+ }));
164
+ }));
165
+ }
166
+ catch (err) {
167
+ // TODO: Consider this instead...
168
+ // this.logger.error(`Error parsing arguments: ${err}`);
169
+ // this.logger.debug(err.stack);
170
+ // return new Promise<void>(async (res,rej) => res());
171
+ return new Promise((res, rej) => tslib_1.__awaiter(this, void 0, void 0, function* () { return rej(new Error(`Error parsing arguments: ${err}`)); }));
172
+ }
173
+ });
174
+ }
175
+ build() {
176
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
177
+ return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
178
+ try {
179
+ this.log(`Pretending to build...`);
180
+ resolve();
181
+ }
182
+ catch (err) {
183
+ reject(err);
184
+ }
185
+ }));
186
+ });
187
+ }
188
+ }
189
+ exports.default = Run;
190
+ Run.description = 'Runs the latest build of the api container locally.';
191
+ /** The non-flag arguments the command supports */
192
+ Run.args = {};
193
+ Run.flags = Object.assign({ build: core_1.Flags.boolean({ char: 'b', description: 'Triggers a new local build beforehand.' }), detach: core_1.Flags.boolean({ char: 'd', description: 'Run container in background and print the container ID.' }), entrypoint: core_1.Flags.string({ char: 'e', description: 'Overrides the default container startup command.' }), help: core_1.Flags.help({ char: 'h', description: "Renders the help document for this command." }), interactive: core_1.Flags.boolean({ char: 'i', description: 'Run the container interactively (in the console; dies with the console). Use -e|--entrypoint to override the startup command for the container.' }), network: core_1.Flags.string({ char: 'n', description: 'The docker network to which the container will be attached (defaults to a network named as the company code, which will be created on demand as a bridge network).' }), mountFolder: core_1.Flags.string({ char: 'm', required: false, description: 'Mounts a folder on the host as a read-write volume on the container. In format "src=~/my/local/folder,dst=/root/in/container".' }), port: core_1.Flags.integer({ char: 'p', description: `(default: ${ops_1.DxConstants.DEFAULT_EXTERNAL_PORT}) Sets the external port to open on the container. That is, the port on which the api will be listening to calls from outside the container.` }), internalPort: core_1.Flags.integer({ char: 'l', description: `(default: ${ops_1.DxConstants.DEFAULT_INTERNAL_PORT}) The port the application inside the container is listening on. Sets the port to which map incoming requests on the container. This port mapping MUST match whatever port number the actual application is listening on.` }), watch: core_1.Flags.boolean({ char: 'w', description: 'Forces a detach run and follows log output from the container.' }) }, cli_common_1.commandBase.globalFlags);
194
194
  //# sourceMappingURL=run.js.map
@@ -1,27 +1,27 @@
1
- import { CommandBaseEnterprise } from '../../command-base-enterprise';
2
- import { CloudProviderContextualizer } from '../../uilogic/cloud-provider-contextualizer';
3
- export default class SecretStoreCapture extends CommandBaseEnterprise {
4
- static description: string;
5
- static aliases: string[];
6
- static dependsOn: string[];
7
- static flags: {
8
- url: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
- provider: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
10
- name: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
11
- subscriptionId: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
12
- location: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
13
- toScript: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
14
- silent: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
15
- help: import("@oclif/core/lib/interfaces").BooleanFlag<void>;
16
- };
17
- static args: {};
18
- protected bootstrap(): void;
19
- protected get uiCloudProvider(): CloudProviderContextualizer;
20
- private _uiCloudProvider_backer;
21
- run(): Promise<void>;
22
- private buildCandidate_silently;
23
- /** Walks the user through a Q & A to build out the specs for the asset. */
24
- private buildCandidate_interactively;
25
- private saveSecretStore;
26
- private buildScript;
27
- }
1
+ import { CommandBaseEnterprise } from '../../command-base-enterprise';
2
+ import { CloudProviderContextualizer } from '../../uilogic/cloud-provider-contextualizer';
3
+ export default class SecretStoreCapture extends CommandBaseEnterprise {
4
+ static description: string;
5
+ static aliases: string[];
6
+ static dependsOn: string[];
7
+ static flags: {
8
+ url: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
+ provider: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
10
+ name: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
11
+ subscriptionId: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
12
+ location: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
13
+ toScript: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
14
+ silent: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
15
+ help: import("@oclif/core/lib/interfaces").BooleanFlag<void>;
16
+ };
17
+ static args: {};
18
+ protected bootstrap(): void;
19
+ protected get uiCloudProvider(): CloudProviderContextualizer;
20
+ private _uiCloudProvider_backer;
21
+ run(): Promise<void>;
22
+ private buildCandidate_silently;
23
+ /** Walks the user through a Q & A to build out the specs for the asset. */
24
+ private buildCandidate_interactively;
25
+ private saveSecretStore;
26
+ private buildScript;
27
+ }