@codiac.io/codiac-cli 1.2.202 → 1.2.203

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 (532) hide show
  1. package/README.md +4636 -4696
  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/dist/apis/codiac-api/common/api-client-base.d.ts +165 -165
  7. package/dist/apis/codiac-api/common/api-client-base.js +547 -547
  8. package/dist/apis/codiac-api/common/api-client-base.js.map +1 -1
  9. package/dist/apis/codiac-api/common/api-user-creds.d.ts +7 -7
  10. package/dist/apis/codiac-api/common/api-user-creds.js +18 -18
  11. package/dist/apis/codiac-api/common/api-user-creds.js.map +1 -1
  12. package/dist/apis/codiac-api/common/config-loader.d.ts +6 -6
  13. package/dist/apis/codiac-api/common/config-loader.js +18 -18
  14. package/dist/apis/codiac-api/common/endpoint-spec.d.ts +17 -17
  15. package/dist/apis/codiac-api/common/endpoint-spec.js +27 -27
  16. package/dist/apis/codiac-api/common/security/api-auth-methods-legacy.d.ts +87 -87
  17. package/dist/apis/codiac-api/common/security/api-auth-methods-legacy.js +367 -367
  18. package/dist/apis/codiac-api/common/security/api-auth-methods-legacy.js.map +1 -1
  19. package/dist/apis/codiac-api/common/security/auth-constants.d.ts +15 -15
  20. package/dist/apis/codiac-api/common/security/auth-constants.js +21 -21
  21. package/dist/apis/codiac-api/common/security/i-auth-client.d.ts +44 -44
  22. package/dist/apis/codiac-api/common/security/i-auth-client.js +2 -2
  23. package/dist/apis/codiac-api/common/security/token-holder.d.ts +13 -13
  24. package/dist/apis/codiac-api/common/security/token-holder.js +17 -17
  25. package/dist/apis/codiac-api/common/utils.d.ts +23 -23
  26. package/dist/apis/codiac-api/common/utils.js +82 -82
  27. package/dist/apis/codiac-api/contracts/index.d.ts +1 -1
  28. package/dist/apis/codiac-api/contracts/index.js +4 -4
  29. package/dist/apis/codiac-api/gen/client-config.d.ts +10 -10
  30. package/dist/apis/codiac-api/gen/client-config.js +28 -28
  31. package/dist/apis/codiac-api/gen/client-config.js.map +1 -1
  32. package/dist/apis/codiac-api/gen/client.d.ts +1663 -1663
  33. package/dist/apis/codiac-api/gen/client.js +15629 -15629
  34. package/dist/apis/codiac-api/gen/client.js.map +1 -1
  35. package/dist/apis/codiac-api/gen/contracts.d.ts +2722 -2722
  36. package/dist/apis/codiac-api/gen/contracts.js +402 -402
  37. package/dist/apis/codiac-api/index.d.ts +3 -3
  38. package/dist/apis/codiac-api/index.js +8 -8
  39. package/dist/apis/codiac-relay/common/api-client-base.d.ts +165 -165
  40. package/dist/apis/codiac-relay/common/api-client-base.js +547 -547
  41. package/dist/apis/codiac-relay/common/api-client-base.js.map +1 -1
  42. package/dist/apis/codiac-relay/common/api-user-creds.d.ts +7 -7
  43. package/dist/apis/codiac-relay/common/api-user-creds.js +18 -18
  44. package/dist/apis/codiac-relay/common/api-user-creds.js.map +1 -1
  45. package/dist/apis/codiac-relay/common/config-loader.d.ts +6 -6
  46. package/dist/apis/codiac-relay/common/config-loader.js +18 -18
  47. package/dist/apis/codiac-relay/common/endpoint-spec.d.ts +17 -17
  48. package/dist/apis/codiac-relay/common/endpoint-spec.js +27 -27
  49. package/dist/apis/codiac-relay/common/security/api-auth-methods-legacy.d.ts +87 -87
  50. package/dist/apis/codiac-relay/common/security/api-auth-methods-legacy.js +367 -367
  51. package/dist/apis/codiac-relay/common/security/api-auth-methods-legacy.js.map +1 -1
  52. package/dist/apis/codiac-relay/common/security/auth-constants.d.ts +15 -15
  53. package/dist/apis/codiac-relay/common/security/auth-constants.js +21 -21
  54. package/dist/apis/codiac-relay/common/security/i-auth-client.d.ts +44 -44
  55. package/dist/apis/codiac-relay/common/security/i-auth-client.js +2 -2
  56. package/dist/apis/codiac-relay/common/security/token-holder.d.ts +13 -13
  57. package/dist/apis/codiac-relay/common/security/token-holder.js +17 -17
  58. package/dist/apis/codiac-relay/common/utils.d.ts +23 -23
  59. package/dist/apis/codiac-relay/common/utils.js +82 -82
  60. package/dist/apis/codiac-relay/contracts/index.d.ts +1 -1
  61. package/dist/apis/codiac-relay/contracts/index.js +4 -4
  62. package/dist/apis/codiac-relay/gen/client-config.d.ts +10 -10
  63. package/dist/apis/codiac-relay/gen/client-config.js +28 -28
  64. package/dist/apis/codiac-relay/gen/client-config.js.map +1 -1
  65. package/dist/apis/codiac-relay/gen/client.d.ts +244 -244
  66. package/dist/apis/codiac-relay/gen/client.js +1862 -1862
  67. package/dist/apis/codiac-relay/gen/client.js.map +1 -1
  68. package/dist/apis/codiac-relay/gen/contracts.d.ts +3111 -3111
  69. package/dist/apis/codiac-relay/gen/contracts.js +434 -434
  70. package/dist/apis/codiac-relay/index.d.ts +3 -3
  71. package/dist/apis/codiac-relay/index.js +8 -8
  72. package/dist/cli-common/ImagesList.js +66 -66
  73. package/dist/cli-common/argument-manager.d.ts +28 -28
  74. package/dist/cli-common/argument-manager.js +194 -194
  75. package/dist/cli-common/built-in-cli-user-input.d.ts +18 -18
  76. package/dist/cli-common/built-in-cli-user-input.js +309 -309
  77. package/dist/cli-common/built-in-cli-user-input.js.map +1 -1
  78. package/dist/cli-common/cli-interfaces.js +6 -6
  79. package/dist/cli-common/command-base.d.ts +72 -72
  80. package/dist/cli-common/command-base.js +181 -181
  81. package/dist/cli-common/entities/index.d.ts +1 -1
  82. package/dist/cli-common/entities/index.js +4 -4
  83. package/dist/cli-common/entities/prompt-choice.d.ts +7 -7
  84. package/dist/cli-common/entities/prompt-choice.js +2 -2
  85. package/dist/cli-common/file-selector.d.ts +48 -48
  86. package/dist/cli-common/file-selector.js +186 -186
  87. package/dist/cli-common/i-user-input-provider.js +18 -18
  88. package/dist/cli-common/index.d.ts +4 -4
  89. package/dist/cli-common/index.js +10 -10
  90. package/dist/cli-common/mock-ui.d.ts +27 -27
  91. package/dist/cli-common/mock-ui.js +82 -82
  92. package/dist/cli-common/prompt-select-fuzzy.d.ts +19 -19
  93. package/dist/cli-common/prompt-select-fuzzy.js +118 -118
  94. package/dist/cli-common/prompt-select-fuzzy.js.map +1 -1
  95. package/dist/cli-common/tenant-contextualizer.js +435 -435
  96. package/dist/cli-common/test/tenant-contextualizer.spec.js +142 -142
  97. package/dist/cli-entities/output-format-enum.d.ts +7 -7
  98. package/dist/cli-entities/output-format-enum.js +11 -11
  99. package/dist/cli-entities/prompt-choice.js +5 -5
  100. package/dist/codiac-constants.d.ts +35 -35
  101. package/dist/codiac-constants.js +40 -40
  102. package/dist/codiac-entities/asset-binding.d.ts +12 -12
  103. package/dist/codiac-entities/asset-binding.js +17 -17
  104. package/dist/codiac-entities/azure-container-registry.d.ts +4 -4
  105. package/dist/codiac-entities/azure-container-registry.js +2 -2
  106. package/dist/codiac-entities/azure-service-principal.d.ts +23 -23
  107. package/dist/codiac-entities/azure-service-principal.js +23 -23
  108. package/dist/codiac-entities/cloud-account-ref.d.ts +28 -28
  109. package/dist/codiac-entities/cloud-account-ref.js +36 -36
  110. package/dist/codiac-entities/deployment-temp.js +132 -132
  111. package/dist/codiac-entities/i-cloud-account-ref.d.ts +5 -5
  112. package/dist/codiac-entities/i-cloud-account-ref.js +2 -2
  113. package/dist/command-base-enterprise.d.ts +121 -121
  114. package/dist/command-base-enterprise.js +523 -523
  115. package/dist/command-base-tenantless.d.ts +44 -44
  116. package/dist/command-base-tenantless.js +179 -179
  117. package/dist/commands/asset/create.d.ts +42 -42
  118. package/dist/commands/asset/create.js +466 -466
  119. package/dist/commands/asset/destroy.d.ts +20 -20
  120. package/dist/commands/asset/destroy.js +128 -128
  121. package/dist/commands/asset/helm.d.ts +23 -23
  122. package/dist/commands/asset/helm.js +152 -152
  123. package/dist/commands/asset/list.d.ts +28 -28
  124. package/dist/commands/asset/list.js +171 -171
  125. package/dist/commands/asset/probe/create.d.ts +38 -38
  126. package/dist/commands/asset/probe/create.js +186 -186
  127. package/dist/commands/asset/recycle.d.ts +23 -23
  128. package/dist/commands/asset/recycle.js +174 -174
  129. package/dist/commands/asset/view.d.ts +188 -188
  130. package/dist/commands/asset/view.js +1364 -1364
  131. package/dist/commands/asset/volume/create.d.ts +23 -23
  132. package/dist/commands/asset/volume/create.js +175 -175
  133. package/dist/commands/asset/volume/delete.d.ts +19 -19
  134. package/dist/commands/asset/volume/delete.js +111 -111
  135. package/dist/commands/asset/volume/list.d.ts +19 -19
  136. package/dist/commands/asset/volume/list.js +69 -69
  137. package/dist/commands/branch/current.d.ts +10 -10
  138. package/dist/commands/branch/current.js +33 -33
  139. package/dist/commands/branch/list.d.ts +15 -15
  140. package/dist/commands/branch/list.js +55 -55
  141. package/dist/commands/branch.d.ts +12 -12
  142. package/dist/commands/branch.js +41 -41
  143. package/dist/commands/build.d.ts +38 -38
  144. package/dist/commands/build.js +119 -119
  145. package/dist/commands/cabinet/create.d.ts +21 -21
  146. package/dist/commands/cabinet/create.js +107 -107
  147. package/dist/commands/cabinet/list.d.ts +23 -23
  148. package/dist/commands/cabinet/list.js +133 -133
  149. package/dist/commands/cabinet/obliterate.d.ts +20 -20
  150. package/dist/commands/cabinet/obliterate.js +82 -82
  151. package/dist/commands/cli.d.ts +10 -10
  152. package/dist/commands/cli.js +99 -99
  153. package/dist/commands/commit.d.ts +11 -11
  154. package/dist/commands/commit.js +39 -39
  155. package/dist/commands/config/add.d.ts +78 -78
  156. package/dist/commands/config/add.js +559 -559
  157. package/dist/commands/config/delete.d.ts +18 -18
  158. package/dist/commands/config/delete.js +118 -118
  159. package/dist/commands/config/deploy.d.ts +22 -22
  160. package/dist/commands/config/deploy.js +124 -124
  161. package/dist/commands/config/import.d.ts +27 -27
  162. package/dist/commands/config/import.js +195 -195
  163. package/dist/commands/config/view.d.ts +25 -25
  164. package/dist/commands/config/view.js +120 -120
  165. package/dist/commands/csp/login.d.ts +18 -18
  166. package/dist/commands/csp/login.js +122 -122
  167. package/dist/commands/csp/logout.d.ts +15 -15
  168. package/dist/commands/csp/logout.js +73 -73
  169. package/dist/commands/dep/create.d.ts +13 -13
  170. package/dist/commands/dep/create.js +40 -40
  171. package/dist/commands/dep/install.d.ts +9 -9
  172. package/dist/commands/dep/install.js +29 -29
  173. package/dist/commands/dep/list.d.ts +55 -55
  174. package/dist/commands/dep/list.js +97 -97
  175. package/dist/commands/dep/remove.d.ts +12 -12
  176. package/dist/commands/dep/remove.js +61 -61
  177. package/dist/commands/dep/source.d.ts +13 -13
  178. package/dist/commands/dep/source.js +82 -82
  179. package/dist/commands/dep/syncup.d.ts +11 -11
  180. package/dist/commands/dep/syncup.js +53 -53
  181. package/dist/commands/dep/unsource.d.ts +14 -14
  182. package/dist/commands/dep/unsource.js +67 -67
  183. package/dist/commands/dep/upgrade.d.ts +44 -44
  184. package/dist/commands/dep/upgrade.js +243 -243
  185. package/dist/commands/dep.d.ts +12 -12
  186. package/dist/commands/dep.js +50 -50
  187. package/dist/commands/deploy.d.ts +38 -38
  188. package/dist/commands/deploy.js +385 -385
  189. package/dist/commands/enterprise/create.d.ts +20 -20
  190. package/dist/commands/enterprise/create.js +97 -97
  191. package/dist/commands/enterprise/list.d.ts +14 -14
  192. package/dist/commands/enterprise/list.js +83 -83
  193. package/dist/commands/env/add.d.ts +22 -22
  194. package/dist/commands/env/add.js +199 -199
  195. package/dist/commands/environment/create.d.ts +19 -19
  196. package/dist/commands/environment/create.js +88 -88
  197. package/dist/commands/environment/list.d.ts +25 -25
  198. package/dist/commands/environment/list.js +157 -157
  199. package/dist/commands/filestore/capture.d.ts +31 -31
  200. package/dist/commands/filestore/capture.js +341 -341
  201. package/dist/commands/host/map.d.ts +33 -33
  202. package/dist/commands/host/map.js +346 -346
  203. package/dist/commands/identity/delete.d.ts +15 -15
  204. package/dist/commands/identity/delete.js +82 -82
  205. package/dist/commands/identity/list.d.ts +11 -11
  206. package/dist/commands/identity/list.js +42 -42
  207. package/dist/commands/identity.d.ts +22 -22
  208. package/dist/commands/identity.js +76 -76
  209. package/dist/commands/imageRegistry/capture.d.ts +27 -27
  210. package/dist/commands/imageRegistry/capture.js +159 -159
  211. package/dist/commands/imageRegistry/forget.d.ts +23 -23
  212. package/dist/commands/imageRegistry/forget.js +160 -160
  213. package/dist/commands/imageRegistry/pullSecret/set.d.ts +27 -27
  214. package/dist/commands/imageRegistry/pullSecret/set.js +299 -299
  215. package/dist/commands/imageRegistry/pullSecret/unset.d.ts +24 -24
  216. package/dist/commands/imageRegistry/pullSecret/unset.js +242 -242
  217. package/dist/commands/images/add.d.ts +25 -25
  218. package/dist/commands/images/add.js +75 -75
  219. package/dist/commands/images/list.d.ts +14 -14
  220. package/dist/commands/images/list.js +71 -71
  221. package/dist/commands/images/patch.d.ts +14 -14
  222. package/dist/commands/images/patch.js +92 -92
  223. package/dist/commands/images/remove.d.ts +12 -12
  224. package/dist/commands/images/remove.js +37 -37
  225. package/dist/commands/images/version/bump.d.ts +18 -18
  226. package/dist/commands/images/version/bump.js +60 -60
  227. package/dist/commands/images/version.d.ts +16 -16
  228. package/dist/commands/images/version.js +64 -64
  229. package/dist/commands/init.d.ts +17 -17
  230. package/dist/commands/init.js +130 -130
  231. package/dist/commands/kit/create.d.ts +25 -25
  232. package/dist/commands/kit/create.js +141 -141
  233. package/dist/commands/login.d.ts +22 -22
  234. package/dist/commands/login.js +92 -92
  235. package/dist/commands/logout.d.ts +8 -8
  236. package/dist/commands/logout.js +36 -36
  237. package/dist/commands/merge.d.ts +12 -12
  238. package/dist/commands/merge.js +42 -42
  239. package/dist/commands/noc/cluster/create.d.ts +28 -28
  240. package/dist/commands/noc/cluster/create.js +132 -132
  241. package/dist/commands/noc/cluster/deinit.d.ts +17 -17
  242. package/dist/commands/noc/cluster/deinit.js +116 -116
  243. package/dist/commands/noc/cluster/destroy.d.ts +20 -20
  244. package/dist/commands/noc/cluster/destroy.js +137 -137
  245. package/dist/commands/noc/cluster/forget.d.ts +16 -16
  246. package/dist/commands/noc/cluster/forget.js +136 -136
  247. package/dist/commands/noc/cluster/grant.d.ts +24 -24
  248. package/dist/commands/noc/cluster/grant.js +159 -159
  249. package/dist/commands/noc/cluster/init.d.ts +17 -17
  250. package/dist/commands/noc/cluster/init.js +116 -116
  251. package/dist/commands/noc/cluster/list.d.ts +21 -21
  252. package/dist/commands/noc/cluster/list.js +83 -83
  253. package/dist/commands/noc/cluster/recreate.d.ts +28 -28
  254. package/dist/commands/noc/cluster/recreate.js +185 -185
  255. package/dist/commands/pkg/add.d.ts +15 -15
  256. package/dist/commands/pkg/add.js +42 -42
  257. package/dist/commands/pkg/list.d.ts +9 -9
  258. package/dist/commands/pkg/list.js +32 -32
  259. package/dist/commands/pkg/patch.d.ts +13 -13
  260. package/dist/commands/pkg/patch.js +78 -78
  261. package/dist/commands/pkg/remove.d.ts +12 -12
  262. package/dist/commands/pkg/remove.js +69 -69
  263. package/dist/commands/portal.d.ts +11 -11
  264. package/dist/commands/portal.js +81 -81
  265. package/dist/commands/publish.d.ts +21 -21
  266. package/dist/commands/publish.js +51 -51
  267. package/dist/commands/pull.d.ts +13 -13
  268. package/dist/commands/pull.js +29 -29
  269. package/dist/commands/push.d.ts +13 -13
  270. package/dist/commands/push.js +29 -29
  271. package/dist/commands/run.d.ts +35 -35
  272. package/dist/commands/run.js +193 -193
  273. package/dist/commands/secretStore/capture.d.ts +27 -27
  274. package/dist/commands/secretStore/capture.js +174 -174
  275. package/dist/commands/secretStore/forget.d.ts +20 -20
  276. package/dist/commands/secretStore/forget.js +146 -146
  277. package/dist/commands/stage.d.ts +13 -13
  278. package/dist/commands/stage.js +64 -64
  279. package/dist/commands/stash.d.ts +13 -13
  280. package/dist/commands/stash.js +30 -30
  281. package/dist/commands/status.d.ts +12 -12
  282. package/dist/commands/status.js +48 -48
  283. package/dist/commands/stop.d.ts +10 -10
  284. package/dist/commands/stop.js +51 -51
  285. package/dist/commands/switch.d.ts +11 -11
  286. package/dist/commands/switch.js +41 -41
  287. package/dist/commands/sync.d.ts +14 -14
  288. package/dist/commands/sync.js +20 -20
  289. package/dist/commands/tenant/create.d.ts +27 -27
  290. package/dist/commands/tenant/create.js +119 -119
  291. package/dist/commands/tenant/switch.d.ts +24 -24
  292. package/dist/commands/tenant/switch.js +108 -108
  293. package/dist/commands/unstage.d.ts +12 -12
  294. package/dist/commands/unstage.js +57 -57
  295. package/dist/commands/whereami.d.ts +15 -15
  296. package/dist/commands/whereami.js +122 -122
  297. package/dist/commands/whoami.d.ts +8 -8
  298. package/dist/commands/whoami.js +39 -39
  299. package/dist/errors/NoMembershipError.d.ts +8 -8
  300. package/dist/errors/NoMembershipError.js +14 -14
  301. package/dist/index.d.ts +1 -1
  302. package/dist/index.js +16 -16
  303. package/dist/log-update-wrapper.d.ts +24 -24
  304. package/dist/log-update-wrapper.js +28 -28
  305. package/dist/log4js-logger.d.ts +26 -26
  306. package/dist/log4js-logger.js +137 -137
  307. package/dist/log4js-logger.js.map +1 -1
  308. package/dist/ops/INTERFACES_CLI.d.ts +3 -3
  309. package/dist/ops/INTERFACES_CLI.js +7 -7
  310. package/dist/ops/LocalOps.d.ts +417 -417
  311. package/dist/ops/LocalOps.js +3121 -3121
  312. package/dist/ops/LocalOps.js.map +1 -1
  313. package/dist/ops/azure-container-registry-client/azure-container-registry-client.js +147 -147
  314. package/dist/ops/cli-path-walker.js +54 -54
  315. package/dist/ops/codiac-entities/dependency.d.ts +5 -5
  316. package/dist/ops/codiac-entities/dependency.js +10 -10
  317. package/dist/ops/codiac-entities/index.d.ts +1 -1
  318. package/dist/ops/codiac-entities/index.js +4 -4
  319. package/dist/ops/composite-image-registry-client.js +73 -73
  320. package/dist/ops/data/cli-context-repo.d.ts +61 -61
  321. package/dist/ops/data/cli-context-repo.js +269 -269
  322. package/dist/ops/data/cli-context-repo.js.map +1 -1
  323. package/dist/ops/data/index.d.ts +2 -2
  324. package/dist/ops/data/index.js +5 -5
  325. package/dist/ops/data/npm-config-repo.d.ts +13 -13
  326. package/dist/ops/data/npm-config-repo.js +64 -64
  327. package/dist/ops/docker-config.js +130 -130
  328. package/dist/ops/docker-constants.js +21 -21
  329. package/dist/ops/docker-credentials-store.js +237 -237
  330. package/dist/ops/docker-registry-api-client/docker-registry-api-client.js +288 -288
  331. package/dist/ops/docker-registry-api-client/entities/blob-sum.d.ts +7 -7
  332. package/dist/ops/docker-registry-api-client/entities/blob-sum.js +12 -12
  333. package/dist/ops/docker-registry-api-client/entities/docker-access-actions-enum.d.ts +5 -5
  334. package/dist/ops/docker-registry-api-client/entities/docker-access-actions-enum.js +9 -9
  335. package/dist/ops/docker-registry-api-client/entities/docker-auth-token-criteria.d.ts +30 -30
  336. package/dist/ops/docker-registry-api-client/entities/docker-auth-token-criteria.js +35 -35
  337. package/dist/ops/docker-registry-api-client/entities/i-docker-error-response.d.ts +55 -55
  338. package/dist/ops/docker-registry-api-client/entities/i-docker-error-response.js +51 -51
  339. package/dist/ops/docker-registry-api-client/entities/i-docker-list-response.d.ts +7 -7
  340. package/dist/ops/docker-registry-api-client/entities/i-docker-list-response.js +2 -2
  341. package/dist/ops/docker-registry-api-client/entities/image-repository.d.ts +31 -31
  342. package/dist/ops/docker-registry-api-client/entities/image-repository.js +29 -29
  343. package/dist/ops/docker-registry-api-client/entities/image-tag-criteria.d.ts +8 -8
  344. package/dist/ops/docker-registry-api-client/entities/image-tag-criteria.js +13 -13
  345. package/dist/ops/docker-registry-api-client/entities/image-tag-list.d.ts +7 -7
  346. package/dist/ops/docker-registry-api-client/entities/image-tag-list.js +12 -12
  347. package/dist/ops/docker-registry-api-client/entities/manifest-criteria.d.ts +9 -9
  348. package/dist/ops/docker-registry-api-client/entities/manifest-criteria.js +14 -14
  349. package/dist/ops/docker-registry-api-client/entities/manifest.d.ts +15 -15
  350. package/dist/ops/docker-registry-api-client/entities/manifest.js +20 -20
  351. package/dist/ops/docker-registry-api-client/entities/repository-criteria.d.ts +16 -16
  352. package/dist/ops/docker-registry-api-client/entities/repository-criteria.js +23 -23
  353. package/dist/ops/docker-registry-api-client/entities/token-response.d.ts +15 -15
  354. package/dist/ops/docker-registry-api-client/entities/token-response.js +14 -14
  355. package/dist/ops/docker-registry-api-client/entities/token.d.ts +17 -17
  356. package/dist/ops/docker-registry-api-client/entities/token.js +21 -21
  357. package/dist/ops/docker-registry-api-client/entities/version-check-criteria.d.ts +4 -4
  358. package/dist/ops/docker-registry-api-client/entities/version-check-criteria.js +9 -9
  359. package/dist/ops/dx-constants.d.ts +26 -26
  360. package/dist/ops/dx-constants.js +42 -42
  361. package/dist/ops/entities/ImageBuildContext.d.ts +12 -12
  362. package/dist/ops/entities/ImageBuildContext.js +18 -18
  363. package/dist/ops/entities/PipelineContext.d.ts +21 -21
  364. package/dist/ops/entities/PipelineContext.js +22 -22
  365. package/dist/ops/entities/TenantContext.d.ts +10 -10
  366. package/dist/ops/entities/TenantContext.js +15 -15
  367. package/dist/ops/entities/ThaulConfig.js +29 -29
  368. package/dist/ops/entities/azure-service-principal.d.ts +23 -23
  369. package/dist/ops/entities/azure-service-principal.js +23 -23
  370. package/dist/ops/entities/better-logger.js +1 -1
  371. package/dist/ops/entities/branch.d.ts +13 -13
  372. package/dist/ops/entities/branch.js +15 -15
  373. package/dist/ops/entities/cli-config.d.ts +48 -48
  374. package/dist/ops/entities/cli-config.js +60 -60
  375. package/dist/ops/entities/cli-config.js.map +1 -1
  376. package/dist/ops/entities/docker-image.d.ts +60 -60
  377. package/dist/ops/entities/docker-image.js +2 -2
  378. package/dist/ops/entities/helm-spec.d.ts +15 -15
  379. package/dist/ops/entities/helm-spec.js +22 -22
  380. package/dist/ops/entities/index.d.ts +4 -4
  381. package/dist/ops/entities/index.js +11 -11
  382. package/dist/ops/entities/operation-meta.d.ts +8 -8
  383. package/dist/ops/entities/operation-meta.js +18 -18
  384. package/dist/ops/entities/operation-meta.js.map +1 -1
  385. package/dist/ops/entities/scaffolding.d.ts +19 -19
  386. package/dist/ops/entities/scaffolding.js +20 -20
  387. package/dist/ops/extensions/azart-identity-adapter.d.ts +19 -19
  388. package/dist/ops/extensions/azart-identity-adapter.js +96 -96
  389. package/dist/ops/extensions/npm-identity-adapter-base.d.ts +13 -13
  390. package/dist/ops/extensions/npm-identity-adapter-base.js +2 -2
  391. package/dist/ops/extensions/npmjs-identity-adapter.d.ts +13 -13
  392. package/dist/ops/extensions/npmjs-identity-adapter.js +63 -63
  393. package/dist/ops/git-ops.d.ts +8 -8
  394. package/dist/ops/git-ops.js +13 -13
  395. package/dist/ops/i-client-for-image-registry.js +16 -16
  396. package/dist/ops/i-identity-handler.d.ts +33 -33
  397. package/dist/ops/i-identity-handler.js +164 -164
  398. package/dist/ops/i-output-styler.js +16 -16
  399. package/dist/ops/index.d.ts +12 -12
  400. package/dist/ops/index.js +14 -14
  401. package/dist/ops/json-utils.js +58 -58
  402. package/dist/ops/no-style-output-styler.js +29 -29
  403. package/dist/ops/oauth2-client.ts/oauth2-client.d.ts +23 -23
  404. package/dist/ops/oauth2-client.ts/oauth2-client.js +63 -63
  405. package/dist/ops/oauth2-client.ts/oauth2-client.js.map +1 -1
  406. package/dist/ops/project-initializer.d.ts +36 -36
  407. package/dist/ops/project-initializer.js +218 -218
  408. package/dist/ops/scaffolding/base-scaffolding.d.ts +7 -7
  409. package/dist/ops/scaffolding/base-scaffolding.js +20 -20
  410. package/dist/ops/scaffolding/base-scaffolding.js.map +1 -1
  411. package/dist/ops/scaffolding/codiac-api-scaffolding.d.ts +7 -7
  412. package/dist/ops/scaffolding/codiac-api-scaffolding.js +63 -63
  413. package/dist/ops/scaffolding/codiac-api-scaffolding.js.map +1 -1
  414. package/dist/ops/scaffolding/typescript-scaffolding.d.ts +15 -15
  415. package/dist/ops/scaffolding/typescript-scaffolding.js +162 -162
  416. package/dist/ops/scaffolding/typescript-scaffolding.js.map +1 -1
  417. package/dist/ops/test/mock-ui.d.ts +26 -26
  418. package/dist/ops/test/mock-ui.js +87 -87
  419. package/dist/ops/test/test-extensions.d.ts +13 -13
  420. package/dist/ops/test/test-extensions.js +70 -70
  421. package/dist/ops/test/when-a-recursive-file-search-is-run.spec.d.ts +2 -2
  422. package/dist/ops/test/when-a-recursive-file-search-is-run.spec.js +54 -54
  423. package/dist/ops/test/when-git-branchline-is-attempted.spec.d.ts +2 -2
  424. package/dist/ops/test/when-git-branchline-is-attempted.spec.js +37 -37
  425. package/dist/ops/test/when-versions-are-parsed.spec.d.ts +2 -2
  426. package/dist/ops/test/when-versions-are-parsed.spec.js +61 -61
  427. package/dist/ops/throwing-user-input-provider.js +36 -36
  428. package/dist/ops/workspace-versioner.d.ts +122 -122
  429. package/dist/ops/workspace-versioner.js +291 -291
  430. package/dist/ops/workspace-versioner.js.map +1 -1
  431. package/dist/prettify.d.ts +7 -7
  432. package/dist/prettify.js +23 -23
  433. package/dist/read-stdin.d.ts +2 -2
  434. package/dist/read-stdin.js +28 -28
  435. package/dist/relay/contracts/contracts.d.ts +207 -207
  436. package/dist/relay/contracts/contracts.js +229 -229
  437. package/dist/relay/extended-relay-client.d.ts +27 -27
  438. package/dist/relay/extended-relay-client.js +27 -27
  439. package/dist/relay/relay-container.d.ts +41 -41
  440. package/dist/relay/relay-container.js +297 -297
  441. package/dist/relay/relay-container.js.map +1 -1
  442. package/dist/relay/wsclient/relay-socket-listener.d.ts +68 -68
  443. package/dist/relay/wsclient/relay-socket-listener.js +164 -164
  444. package/dist/relay/wsclient/relay-socket-listener.js.map +1 -1
  445. package/dist/relay/wsclient/relay-websocket-client.d.ts +33 -33
  446. package/dist/relay/wsclient/relay-websocket-client.js +178 -178
  447. package/dist/relay/wsclient/relay-websocket-client.js.map +1 -1
  448. package/dist/relay/wsclient/rx-websocket-subject.d.ts +25 -25
  449. package/dist/relay/wsclient/rx-websocket-subject.js +133 -133
  450. package/dist/relay/wsclient/rx-websocket-subject.js.map +1 -1
  451. package/dist/relay/wsclient/socket-contracts.d.ts +22 -22
  452. package/dist/relay/wsclient/socket-contracts.js +2 -2
  453. package/dist/standard-probes.d.ts +5 -5
  454. package/dist/standard-probes.js +21 -21
  455. package/dist/uilogic/build-configurator.d.ts +21 -21
  456. package/dist/uilogic/build-configurator.js +110 -110
  457. package/dist/uilogic/cloud-provider-contextualizer.d.ts +46 -46
  458. package/dist/uilogic/cloud-provider-contextualizer.js +193 -193
  459. package/dist/uilogic/cloud-provider-contextualizer.js.map +1 -1
  460. package/dist/uilogic/cloud-resource-configurator-factory.d.ts +41 -41
  461. package/dist/uilogic/cloud-resource-configurator-factory.js +157 -157
  462. package/dist/uilogic/cloud-resource-configurator-factory.js.map +1 -1
  463. package/dist/uilogic/cloud-resource-configurators/aws-resource-configurator.d.ts +38 -38
  464. package/dist/uilogic/cloud-resource-configurators/aws-resource-configurator.js +347 -347
  465. package/dist/uilogic/cloud-resource-configurators/aws-resource-configurator.js.map +1 -1
  466. package/dist/uilogic/cloud-resource-configurators/az-acr-cli-authenticator.js +77 -77
  467. package/dist/uilogic/cloud-resource-configurators/az-interactive-login-configurator.d.ts +42 -42
  468. package/dist/uilogic/cloud-resource-configurators/az-interactive-login-configurator.js +247 -247
  469. package/dist/uilogic/cloud-resource-configurators/az-interactive-login-configurator.js.map +1 -1
  470. package/dist/uilogic/cloud-resource-configurators/azure-resource-configurator.d.ts +110 -110
  471. package/dist/uilogic/cloud-resource-configurators/azure-resource-configurator.js +781 -781
  472. package/dist/uilogic/cloud-resource-configurators/azure-resource-configurator.js.map +1 -1
  473. package/dist/uilogic/cloud-resource-configurators/azure-types.js +9 -9
  474. package/dist/uilogic/cloud-resource-configurators/docker-hub-resource-configurator.d.ts +24 -24
  475. package/dist/uilogic/cloud-resource-configurators/docker-hub-resource-configurator.js +105 -105
  476. package/dist/uilogic/cloud-resource-configurators/docker-hub-resource-configurator.js.map +1 -1
  477. package/dist/uilogic/cloud-resource-configurators/helm-resource-configurator.d.ts +16 -16
  478. package/dist/uilogic/cloud-resource-configurators/helm-resource-configurator.js +44 -44
  479. package/dist/uilogic/cloud-resource-configurators/helm-resource-configurator.js.map +1 -1
  480. package/dist/uilogic/cloud-resource-configurators/unsupported-resource-configurator.d.ts +18 -18
  481. package/dist/uilogic/cloud-resource-configurators/unsupported-resource-configurator.js +61 -61
  482. package/dist/uilogic/cloud-resource-configurators/unsupported-resource-configurator.js.map +1 -1
  483. package/dist/uilogic/enterprise-contextualizer.d.ts +76 -76
  484. package/dist/uilogic/enterprise-contextualizer.js +670 -670
  485. package/dist/uilogic/environment-contextualizer.d.ts +15 -15
  486. package/dist/uilogic/environment-contextualizer.js +42 -42
  487. package/dist/uilogic/i-cluster-configurator.d.ts +9 -9
  488. package/dist/uilogic/i-cluster-configurator.js +2 -2
  489. package/dist/uilogic/i-login-configurator.d.ts +6 -6
  490. package/dist/uilogic/i-login-configurator.js +2 -2
  491. package/dist/uilogic/i-registry-configurator.d.ts +6 -6
  492. package/dist/uilogic/i-registry-configurator.js +2 -2
  493. package/dist/uilogic/i-secret-store-configurator.d.ts +7 -7
  494. package/dist/uilogic/i-secret-store-configurator.js +2 -2
  495. package/dist/uilogic/image-configurator.d.ts +133 -133
  496. package/dist/uilogic/image-configurator.js +577 -577
  497. package/dist/uilogic/image-configurator.js.map +1 -1
  498. package/dist/uilogic/image-contextualizer.d.ts +24 -24
  499. package/dist/uilogic/image-contextualizer.js +89 -89
  500. package/dist/uilogic/image-contextualizer.js.map +1 -1
  501. package/dist/uilogic/image-registry-contextualizer.d.ts +28 -28
  502. package/dist/uilogic/image-registry-contextualizer.js +126 -126
  503. package/dist/uilogic/image-registry-contextualizer.js.map +1 -1
  504. package/dist/uilogic/index.d.ts +9 -9
  505. package/dist/uilogic/index.js +13 -13
  506. package/dist/uilogic/prompt-select-fuzzy.js +138 -138
  507. package/dist/uilogic/render-methods.d.ts +12 -12
  508. package/dist/uilogic/render-methods.js +64 -64
  509. package/dist/uilogic/tenant-contextualizer.d.ts +79 -79
  510. package/dist/uilogic/tenant-contextualizer.js +577 -577
  511. package/dist/user-context-loader.d.ts +60 -60
  512. package/dist/user-context-loader.js +183 -183
  513. package/oclif.manifest.json +1 -67
  514. package/package.json +149 -149
  515. package/scaffolding/api/.gitignore-scaffolding +68 -68
  516. package/scaffolding/api/.vscode/launch.json +16 -16
  517. package/scaffolding/api/.vscode/settings.json +7 -7
  518. package/scaffolding/api/.vscode/tasks.json +15 -15
  519. package/scaffolding/api/src/app-config.json +2 -2
  520. package/scaffolding/api/src/index.ts-scaffolding +13 -13
  521. package/scaffolding/api/src/myApiDef.ts-scaffolding +25 -25
  522. package/scaffolding/default/.gitignore-scaffolding +2 -2
  523. package/scaffolding/typescript/.gitignore-scaffolding +69 -69
  524. package/scaffolding/typescript/.vscode/launch.json +16 -16
  525. package/scaffolding/typescript/.vscode/settings.json +7 -7
  526. package/scaffolding/typescript/.vscode/tasks.json +15 -15
  527. package/dist/commands/test.d.ts +0 -13
  528. package/dist/commands/test.js +0 -32
  529. package/dist/commands/test.js.map +0 -1
  530. package/dist/commands/testent.d.ts +0 -13
  531. package/dist/commands/testent.js +0 -33
  532. package/dist/commands/testent.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
+ }