@codiac.io/codiac-cli 1.2.167 → 1.2.169

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (522) hide show
  1. package/README.md +3326 -45
  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/api-command-base.d.ts +0 -0
  8. package/lib/api-command-base.js +52 -0
  9. package/lib/api-command-base.js.map +1 -0
  10. package/lib/apis/codiac-api/common/api-client-base.d.ts +165 -165
  11. package/lib/apis/codiac-api/common/api-client-base.js +547 -547
  12. package/lib/apis/codiac-api/common/api-user-creds.d.ts +7 -7
  13. package/lib/apis/codiac-api/common/api-user-creds.js +18 -18
  14. package/lib/apis/codiac-api/common/config-loader.d.ts +6 -6
  15. package/lib/apis/codiac-api/common/config-loader.js +18 -18
  16. package/lib/apis/codiac-api/common/endpoint-spec.d.ts +17 -17
  17. package/lib/apis/codiac-api/common/endpoint-spec.js +27 -27
  18. package/lib/apis/codiac-api/common/security/api-auth-methods-legacy.d.ts +87 -87
  19. package/lib/apis/codiac-api/common/security/api-auth-methods-legacy.js +367 -367
  20. package/lib/apis/codiac-api/common/security/auth-constants.d.ts +15 -15
  21. package/lib/apis/codiac-api/common/security/auth-constants.js +21 -21
  22. package/lib/apis/codiac-api/common/security/i-auth-client.d.ts +44 -44
  23. package/lib/apis/codiac-api/common/security/i-auth-client.js +2 -2
  24. package/lib/apis/codiac-api/common/security/token-holder.d.ts +13 -13
  25. package/lib/apis/codiac-api/common/security/token-holder.js +17 -17
  26. package/lib/apis/codiac-api/common/utils.d.ts +23 -23
  27. package/lib/apis/codiac-api/common/utils.js +82 -82
  28. package/lib/apis/codiac-api/contracts/index.d.ts +1 -1
  29. package/lib/apis/codiac-api/contracts/index.js +4 -4
  30. package/lib/apis/codiac-api/gen/client-config.d.ts +10 -10
  31. package/lib/apis/codiac-api/gen/client-config.js +28 -28
  32. package/lib/apis/codiac-api/gen/client.d.ts +1663 -1663
  33. package/lib/apis/codiac-api/gen/client.js +15629 -15629
  34. package/lib/apis/codiac-api/gen/contracts.d.ts +2722 -2722
  35. package/lib/apis/codiac-api/gen/contracts.js +402 -402
  36. package/lib/apis/codiac-api/index.d.ts +3 -3
  37. package/lib/apis/codiac-api/index.js +8 -8
  38. package/lib/apis/codiac-relay/common/api-client-base.d.ts +165 -165
  39. package/lib/apis/codiac-relay/common/api-client-base.js +547 -547
  40. package/lib/apis/codiac-relay/common/api-user-creds.d.ts +7 -7
  41. package/lib/apis/codiac-relay/common/api-user-creds.js +18 -18
  42. package/lib/apis/codiac-relay/common/config-loader.d.ts +6 -6
  43. package/lib/apis/codiac-relay/common/config-loader.js +18 -18
  44. package/lib/apis/codiac-relay/common/endpoint-spec.d.ts +17 -17
  45. package/lib/apis/codiac-relay/common/endpoint-spec.js +27 -27
  46. package/lib/apis/codiac-relay/common/security/api-auth-methods-legacy.d.ts +87 -87
  47. package/lib/apis/codiac-relay/common/security/api-auth-methods-legacy.js +367 -367
  48. package/lib/apis/codiac-relay/common/security/auth-constants.d.ts +15 -15
  49. package/lib/apis/codiac-relay/common/security/auth-constants.js +21 -21
  50. package/lib/apis/codiac-relay/common/security/i-auth-client.d.ts +44 -44
  51. package/lib/apis/codiac-relay/common/security/i-auth-client.js +2 -2
  52. package/lib/apis/codiac-relay/common/security/token-holder.d.ts +13 -13
  53. package/lib/apis/codiac-relay/common/security/token-holder.js +17 -17
  54. package/lib/apis/codiac-relay/common/utils.d.ts +23 -23
  55. package/lib/apis/codiac-relay/common/utils.js +82 -82
  56. package/lib/apis/codiac-relay/contracts/index.d.ts +1 -1
  57. package/lib/apis/codiac-relay/contracts/index.js +4 -4
  58. package/lib/apis/codiac-relay/gen/client-config.d.ts +10 -10
  59. package/lib/apis/codiac-relay/gen/client-config.js +28 -28
  60. package/lib/apis/codiac-relay/gen/client.d.ts +244 -244
  61. package/lib/apis/codiac-relay/gen/client.js +1862 -1862
  62. package/lib/apis/codiac-relay/gen/contracts.d.ts +3111 -3111
  63. package/lib/apis/codiac-relay/gen/contracts.js +434 -434
  64. package/lib/apis/codiac-relay/index.d.ts +3 -3
  65. package/lib/apis/codiac-relay/index.js +8 -8
  66. package/lib/azure-rest-client.d.ts +6 -0
  67. package/lib/azure-rest-client.js +36 -0
  68. package/lib/azure-rest-client.js.map +1 -0
  69. package/lib/cli-common/ImagesList.js +66 -66
  70. package/lib/cli-common/argument-manager.d.ts +28 -28
  71. package/lib/cli-common/argument-manager.js +194 -194
  72. package/lib/cli-common/built-in-cli-user-input.d.ts +18 -18
  73. package/lib/cli-common/built-in-cli-user-input.js +309 -309
  74. package/lib/cli-common/cli-interfaces.js +6 -6
  75. package/lib/cli-common/command-base.d.ts +72 -72
  76. package/lib/cli-common/command-base.js +181 -181
  77. package/lib/cli-common/entities/index.d.ts +1 -1
  78. package/lib/cli-common/entities/index.js +4 -4
  79. package/lib/cli-common/entities/prompt-choice.d.ts +7 -7
  80. package/lib/cli-common/entities/prompt-choice.js +2 -2
  81. package/lib/cli-common/file-selector.d.ts +48 -48
  82. package/lib/cli-common/file-selector.js +186 -186
  83. package/lib/cli-common/i-user-input-provider.js +18 -18
  84. package/lib/cli-common/index.d.ts +4 -4
  85. package/lib/cli-common/index.js +10 -10
  86. package/lib/cli-common/mock-ui.d.ts +27 -27
  87. package/lib/cli-common/mock-ui.js +82 -82
  88. package/lib/cli-common/prompt-select-fuzzy.d.ts +19 -19
  89. package/lib/cli-common/prompt-select-fuzzy.js +118 -118
  90. package/lib/cli-common/tenant-contextualizer.js +435 -435
  91. package/lib/cli-common/test/tenant-contextualizer.spec.js +142 -142
  92. package/lib/cli-entities/output-format-enum.d.ts +7 -7
  93. package/lib/cli-entities/output-format-enum.js +11 -11
  94. package/lib/cli-entities/prompt-choice.js +5 -5
  95. package/lib/codiac-constants.d.ts +35 -35
  96. package/lib/codiac-constants.js +40 -40
  97. package/lib/codiac-entities/asset-binding.d.ts +12 -12
  98. package/lib/codiac-entities/asset-binding.js +17 -17
  99. package/lib/codiac-entities/azure-container-registry.d.ts +4 -4
  100. package/lib/codiac-entities/azure-container-registry.js +2 -2
  101. package/lib/codiac-entities/azure-service-principal.d.ts +23 -23
  102. package/lib/codiac-entities/azure-service-principal.js +23 -23
  103. package/lib/codiac-entities/cloud-account-ref.d.ts +28 -28
  104. package/lib/codiac-entities/cloud-account-ref.js +36 -36
  105. package/lib/codiac-entities/deployment-temp.js +132 -132
  106. package/lib/codiac-entities/i-cloud-account-ref.d.ts +5 -5
  107. package/lib/codiac-entities/i-cloud-account-ref.js +2 -2
  108. package/lib/command-base-enterprise.d.ts +121 -121
  109. package/lib/command-base-enterprise.js +523 -523
  110. package/lib/command-base-tenantless.d.ts +44 -44
  111. package/lib/command-base-tenantless.js +172 -172
  112. package/lib/commands/asset/create.d.ts +42 -42
  113. package/lib/commands/asset/create.js +466 -466
  114. package/lib/commands/asset/destroy.d.ts +20 -20
  115. package/lib/commands/asset/destroy.js +128 -128
  116. package/lib/commands/asset/helm.d.ts +23 -23
  117. package/lib/commands/asset/helm.js +152 -152
  118. package/lib/commands/asset/list.d.ts +28 -28
  119. package/lib/commands/asset/list.js +171 -171
  120. package/lib/commands/asset/probe/create.d.ts +38 -38
  121. package/lib/commands/asset/probe/create.js +186 -186
  122. package/lib/commands/asset/recycle.d.ts +23 -23
  123. package/lib/commands/asset/recycle.js +174 -174
  124. package/lib/commands/asset/view.d.ts +188 -188
  125. package/lib/commands/asset/view.js +1364 -1364
  126. package/lib/commands/asset/volume/create.d.ts +23 -23
  127. package/lib/commands/asset/volume/create.js +175 -175
  128. package/lib/commands/asset/volume/delete.d.ts +19 -19
  129. package/lib/commands/asset/volume/delete.js +111 -111
  130. package/lib/commands/asset/volume/list.d.ts +19 -19
  131. package/lib/commands/asset/volume/list.js +69 -69
  132. package/lib/commands/branch/current.d.ts +10 -10
  133. package/lib/commands/branch/current.js +33 -33
  134. package/lib/commands/branch/list.d.ts +15 -15
  135. package/lib/commands/branch/list.js +55 -55
  136. package/lib/commands/branch.d.ts +12 -12
  137. package/lib/commands/branch.js +41 -41
  138. package/lib/commands/build.d.ts +37 -37
  139. package/lib/commands/build.js +118 -118
  140. package/lib/commands/cabinet/create.d.ts +21 -21
  141. package/lib/commands/cabinet/create.js +107 -107
  142. package/lib/commands/cabinet/list.d.ts +23 -23
  143. package/lib/commands/cabinet/list.js +133 -133
  144. package/lib/commands/cabinet/obliterate.d.ts +20 -20
  145. package/lib/commands/cabinet/obliterate.js +82 -82
  146. package/lib/commands/cli.d.ts +10 -10
  147. package/lib/commands/cli.js +99 -99
  148. package/lib/commands/commit.d.ts +11 -11
  149. package/lib/commands/commit.js +39 -39
  150. package/lib/commands/config/add.d.ts +78 -78
  151. package/lib/commands/config/add.js +559 -559
  152. package/lib/commands/config/delete.d.ts +18 -18
  153. package/lib/commands/config/delete.js +118 -118
  154. package/lib/commands/config/deploy.d.ts +22 -22
  155. package/lib/commands/config/deploy.js +124 -124
  156. package/lib/commands/config/import.d.ts +27 -27
  157. package/lib/commands/config/import.js +195 -195
  158. package/lib/commands/config/view.d.ts +25 -25
  159. package/lib/commands/config/view.js +120 -120
  160. package/lib/commands/csp/login.d.ts +18 -18
  161. package/lib/commands/csp/login.js +108 -108
  162. package/lib/commands/csp/logout.d.ts +15 -15
  163. package/lib/commands/csp/logout.js +73 -73
  164. package/lib/commands/dep/create.d.ts +13 -13
  165. package/lib/commands/dep/create.js +40 -40
  166. package/lib/commands/dep/install.d.ts +9 -9
  167. package/lib/commands/dep/install.js +29 -29
  168. package/lib/commands/dep/list.d.ts +55 -55
  169. package/lib/commands/dep/list.js +97 -97
  170. package/lib/commands/dep/remove.d.ts +12 -12
  171. package/lib/commands/dep/remove.js +61 -61
  172. package/lib/commands/dep/source.d.ts +13 -13
  173. package/lib/commands/dep/source.js +82 -82
  174. package/lib/commands/dep/syncup.d.ts +11 -11
  175. package/lib/commands/dep/syncup.js +53 -53
  176. package/lib/commands/dep/unsource.d.ts +14 -14
  177. package/lib/commands/dep/unsource.js +67 -67
  178. package/lib/commands/dep/upgrade.d.ts +44 -44
  179. package/lib/commands/dep/upgrade.js +243 -243
  180. package/lib/commands/dep.d.ts +12 -12
  181. package/lib/commands/dep.js +50 -50
  182. package/lib/commands/deploy.d.ts +38 -38
  183. package/lib/commands/deploy.js +382 -382
  184. package/lib/commands/enterprise/create.d.ts +20 -20
  185. package/lib/commands/enterprise/create.js +97 -97
  186. package/lib/commands/enterprise/list.d.ts +14 -14
  187. package/lib/commands/enterprise/list.js +83 -83
  188. package/lib/commands/env/add.d.ts +22 -22
  189. package/lib/commands/env/add.js +199 -199
  190. package/lib/commands/environment/create.d.ts +19 -19
  191. package/lib/commands/environment/create.js +88 -88
  192. package/lib/commands/environment/list.d.ts +25 -25
  193. package/lib/commands/environment/list.js +157 -157
  194. package/lib/commands/filestore/capture.d.ts +31 -31
  195. package/lib/commands/filestore/capture.js +341 -341
  196. package/lib/commands/host/map.d.ts +33 -33
  197. package/lib/commands/host/map.js +346 -346
  198. package/lib/commands/identity/delete.d.ts +15 -15
  199. package/lib/commands/identity/delete.js +82 -82
  200. package/lib/commands/identity/list.d.ts +11 -11
  201. package/lib/commands/identity/list.js +42 -42
  202. package/lib/commands/identity.d.ts +22 -22
  203. package/lib/commands/identity.js +76 -76
  204. package/lib/commands/imageRegistry/capture.d.ts +27 -27
  205. package/lib/commands/imageRegistry/capture.js +159 -159
  206. package/lib/commands/imageRegistry/forget.d.ts +23 -23
  207. package/lib/commands/imageRegistry/forget.js +160 -160
  208. package/lib/commands/imageRegistry/pullSecret/set.d.ts +27 -27
  209. package/lib/commands/imageRegistry/pullSecret/set.js +299 -299
  210. package/lib/commands/imageRegistry/pullSecret/unset.d.ts +24 -24
  211. package/lib/commands/imageRegistry/pullSecret/unset.js +242 -242
  212. package/lib/commands/images/add.d.ts +25 -25
  213. package/lib/commands/images/add.js +75 -75
  214. package/lib/commands/images/list.d.ts +14 -14
  215. package/lib/commands/images/list.js +71 -71
  216. package/lib/commands/images/patch.d.ts +14 -14
  217. package/lib/commands/images/patch.js +92 -92
  218. package/lib/commands/images/remove.d.ts +12 -12
  219. package/lib/commands/images/remove.js +37 -37
  220. package/lib/commands/images/version.d.ts +16 -16
  221. package/lib/commands/images/version.js +64 -64
  222. package/lib/commands/init.d.ts +17 -17
  223. package/lib/commands/init.js +130 -130
  224. package/lib/commands/kit/create.d.ts +25 -25
  225. package/lib/commands/kit/create.js +141 -141
  226. package/lib/commands/login.d.ts +22 -22
  227. package/lib/commands/login.js +92 -92
  228. package/lib/commands/logout.d.ts +8 -8
  229. package/lib/commands/logout.js +36 -36
  230. package/lib/commands/merge.d.ts +12 -12
  231. package/lib/commands/merge.js +42 -42
  232. package/lib/commands/noc/cluster/create.d.ts +28 -28
  233. package/lib/commands/noc/cluster/create.js +132 -132
  234. package/lib/commands/noc/cluster/deinit.d.ts +17 -17
  235. package/lib/commands/noc/cluster/deinit.js +116 -116
  236. package/lib/commands/noc/cluster/destroy.d.ts +20 -20
  237. package/lib/commands/noc/cluster/destroy.js +137 -137
  238. package/lib/commands/noc/cluster/forget.d.ts +16 -16
  239. package/lib/commands/noc/cluster/forget.js +136 -136
  240. package/lib/commands/noc/cluster/grant.d.ts +24 -24
  241. package/lib/commands/noc/cluster/grant.js +159 -159
  242. package/lib/commands/noc/cluster/init.d.ts +17 -17
  243. package/lib/commands/noc/cluster/init.js +116 -116
  244. package/lib/commands/noc/cluster/list.d.ts +21 -21
  245. package/lib/commands/noc/cluster/list.js +83 -83
  246. package/lib/commands/noc/cluster/recreate.d.ts +28 -28
  247. package/lib/commands/noc/cluster/recreate.js +185 -185
  248. package/lib/commands/pkg/add.d.ts +15 -15
  249. package/lib/commands/pkg/add.js +42 -42
  250. package/lib/commands/pkg/list.d.ts +9 -9
  251. package/lib/commands/pkg/list.js +32 -32
  252. package/lib/commands/pkg/patch.d.ts +13 -13
  253. package/lib/commands/pkg/patch.js +78 -78
  254. package/lib/commands/pkg/remove.d.ts +12 -12
  255. package/lib/commands/pkg/remove.js +69 -69
  256. package/lib/commands/portal.d.ts +11 -11
  257. package/lib/commands/portal.js +81 -81
  258. package/lib/commands/publish.d.ts +21 -21
  259. package/lib/commands/publish.js +51 -51
  260. package/lib/commands/pull.d.ts +13 -13
  261. package/lib/commands/pull.js +29 -29
  262. package/lib/commands/push.d.ts +13 -13
  263. package/lib/commands/push.js +29 -29
  264. package/lib/commands/run.d.ts +35 -35
  265. package/lib/commands/run.js +193 -193
  266. package/lib/commands/secretStore/capture.d.ts +27 -27
  267. package/lib/commands/secretStore/capture.js +174 -174
  268. package/lib/commands/secretStore/forget.d.ts +20 -20
  269. package/lib/commands/secretStore/forget.js +146 -146
  270. package/lib/commands/stage.d.ts +13 -13
  271. package/lib/commands/stage.js +64 -64
  272. package/lib/commands/stash.d.ts +13 -13
  273. package/lib/commands/stash.js +30 -30
  274. package/lib/commands/status.d.ts +12 -12
  275. package/lib/commands/status.js +48 -48
  276. package/lib/commands/stop.d.ts +10 -10
  277. package/lib/commands/stop.js +51 -51
  278. package/lib/commands/switch.d.ts +11 -11
  279. package/lib/commands/switch.js +41 -41
  280. package/lib/commands/sync.d.ts +14 -14
  281. package/lib/commands/sync.js +20 -20
  282. package/lib/commands/tenant/create.d.ts +27 -27
  283. package/lib/commands/tenant/create.js +119 -119
  284. package/lib/commands/tenant/switch.d.ts +24 -24
  285. package/lib/commands/tenant/switch.js +108 -108
  286. package/lib/commands/unstage.d.ts +12 -12
  287. package/lib/commands/unstage.js +57 -57
  288. package/lib/commands/view/dashboard.d.ts +17 -0
  289. package/lib/commands/view/dashboard.js +88 -0
  290. package/lib/commands/view/dashboard.js.map +1 -0
  291. package/lib/commands/view/pods.d.ts +14 -0
  292. package/lib/commands/view/pods.js +88 -0
  293. package/lib/commands/view/pods.js.map +1 -0
  294. package/lib/commands/whereami.d.ts +15 -15
  295. package/lib/commands/whereami.js +122 -122
  296. package/lib/commands/whoami.d.ts +8 -8
  297. package/lib/commands/whoami.js +39 -39
  298. package/lib/deployment.d.ts +2 -0
  299. package/lib/deployment.js +7 -0
  300. package/lib/deployment.js.map +1 -0
  301. package/lib/errors/NoMembershipError.d.ts +8 -8
  302. package/lib/errors/NoMembershipError.js +14 -14
  303. package/lib/index.d.ts +1 -1
  304. package/lib/index.js +16 -16
  305. package/lib/k8s-command-base.d.ts +60 -0
  306. package/lib/k8s-command-base.js +204 -0
  307. package/lib/k8s-command-base.js.map +1 -0
  308. package/lib/log-update-wrapper.d.ts +24 -24
  309. package/lib/log-update-wrapper.js +28 -28
  310. package/lib/log4js-logger.d.ts +26 -26
  311. package/lib/log4js-logger.js +137 -137
  312. package/lib/ops/INTERFACES_CLI.d.ts +3 -3
  313. package/lib/ops/INTERFACES_CLI.js +7 -7
  314. package/lib/ops/LocalOps.d.ts +444 -444
  315. package/lib/ops/LocalOps.js +3183 -3183
  316. package/lib/ops/azure-container-registry-client/azure-container-registry-client.js +147 -147
  317. package/lib/ops/cli-path-walker.js +54 -54
  318. package/lib/ops/codiac-entities/dependency.d.ts +5 -5
  319. package/lib/ops/codiac-entities/dependency.js +10 -10
  320. package/lib/ops/codiac-entities/index.d.ts +1 -1
  321. package/lib/ops/codiac-entities/index.js +4 -4
  322. package/lib/ops/composite-image-registry-client.js +73 -73
  323. package/lib/ops/data/cli-context-repo.d.ts +61 -61
  324. package/lib/ops/data/cli-context-repo.js +269 -269
  325. package/lib/ops/data/index.d.ts +2 -2
  326. package/lib/ops/data/index.js +5 -5
  327. package/lib/ops/data/npm-config-repo.d.ts +13 -13
  328. package/lib/ops/data/npm-config-repo.js +64 -64
  329. package/lib/ops/docker-config.js +130 -130
  330. package/lib/ops/docker-constants.js +21 -21
  331. package/lib/ops/docker-credentials-store.js +237 -237
  332. package/lib/ops/docker-registry-api-client/docker-registry-api-client.js +288 -288
  333. package/lib/ops/docker-registry-api-client/entities/blob-sum.d.ts +7 -7
  334. package/lib/ops/docker-registry-api-client/entities/blob-sum.js +12 -12
  335. package/lib/ops/docker-registry-api-client/entities/docker-access-actions-enum.d.ts +5 -5
  336. package/lib/ops/docker-registry-api-client/entities/docker-access-actions-enum.js +9 -9
  337. package/lib/ops/docker-registry-api-client/entities/docker-auth-token-criteria.d.ts +30 -30
  338. package/lib/ops/docker-registry-api-client/entities/docker-auth-token-criteria.js +35 -35
  339. package/lib/ops/docker-registry-api-client/entities/i-docker-error-response.d.ts +55 -55
  340. package/lib/ops/docker-registry-api-client/entities/i-docker-error-response.js +51 -51
  341. package/lib/ops/docker-registry-api-client/entities/i-docker-list-response.d.ts +7 -7
  342. package/lib/ops/docker-registry-api-client/entities/i-docker-list-response.js +2 -2
  343. package/lib/ops/docker-registry-api-client/entities/image-repository.d.ts +31 -31
  344. package/lib/ops/docker-registry-api-client/entities/image-repository.js +29 -29
  345. package/lib/ops/docker-registry-api-client/entities/image-tag-criteria.d.ts +8 -8
  346. package/lib/ops/docker-registry-api-client/entities/image-tag-criteria.js +13 -13
  347. package/lib/ops/docker-registry-api-client/entities/image-tag-list.d.ts +7 -7
  348. package/lib/ops/docker-registry-api-client/entities/image-tag-list.js +12 -12
  349. package/lib/ops/docker-registry-api-client/entities/manifest-criteria.d.ts +9 -9
  350. package/lib/ops/docker-registry-api-client/entities/manifest-criteria.js +14 -14
  351. package/lib/ops/docker-registry-api-client/entities/manifest.d.ts +15 -15
  352. package/lib/ops/docker-registry-api-client/entities/manifest.js +20 -20
  353. package/lib/ops/docker-registry-api-client/entities/repository-criteria.d.ts +16 -16
  354. package/lib/ops/docker-registry-api-client/entities/repository-criteria.js +23 -23
  355. package/lib/ops/docker-registry-api-client/entities/token-response.d.ts +15 -15
  356. package/lib/ops/docker-registry-api-client/entities/token-response.js +14 -14
  357. package/lib/ops/docker-registry-api-client/entities/token.d.ts +17 -17
  358. package/lib/ops/docker-registry-api-client/entities/token.js +21 -21
  359. package/lib/ops/docker-registry-api-client/entities/version-check-criteria.d.ts +4 -4
  360. package/lib/ops/docker-registry-api-client/entities/version-check-criteria.js +9 -9
  361. package/lib/ops/dx-constants.d.ts +26 -26
  362. package/lib/ops/dx-constants.js +42 -42
  363. package/lib/ops/entities/ImageBuildContext.d.ts +12 -12
  364. package/lib/ops/entities/ImageBuildContext.js +18 -18
  365. package/lib/ops/entities/PipelineContext.d.ts +21 -21
  366. package/lib/ops/entities/PipelineContext.js +22 -22
  367. package/lib/ops/entities/TenantContext.d.ts +10 -10
  368. package/lib/ops/entities/TenantContext.js +15 -15
  369. package/lib/ops/entities/ThaulConfig.js +29 -29
  370. package/lib/ops/entities/azure-service-principal.d.ts +23 -23
  371. package/lib/ops/entities/azure-service-principal.js +23 -23
  372. package/lib/ops/entities/better-logger.js +1 -1
  373. package/lib/ops/entities/branch.d.ts +13 -13
  374. package/lib/ops/entities/branch.js +15 -15
  375. package/lib/ops/entities/cli-config.d.ts +48 -48
  376. package/lib/ops/entities/cli-config.js +60 -60
  377. package/lib/ops/entities/docker-image.d.ts +60 -60
  378. package/lib/ops/entities/docker-image.js +2 -2
  379. package/lib/ops/entities/helm-spec.d.ts +15 -15
  380. package/lib/ops/entities/helm-spec.js +22 -22
  381. package/lib/ops/entities/index.d.ts +4 -4
  382. package/lib/ops/entities/index.js +11 -11
  383. package/lib/ops/entities/operation-meta.d.ts +8 -8
  384. package/lib/ops/entities/operation-meta.js +18 -18
  385. package/lib/ops/entities/scaffolding.d.ts +19 -19
  386. package/lib/ops/entities/scaffolding.js +20 -20
  387. package/lib/ops/extensions/azart-identity-adapter.d.ts +19 -19
  388. package/lib/ops/extensions/azart-identity-adapter.js +96 -96
  389. package/lib/ops/extensions/npm-identity-adapter-base.d.ts +13 -13
  390. package/lib/ops/extensions/npm-identity-adapter-base.js +2 -2
  391. package/lib/ops/extensions/npmjs-identity-adapter.d.ts +13 -13
  392. package/lib/ops/extensions/npmjs-identity-adapter.js +63 -63
  393. package/lib/ops/git-ops.d.ts +8 -8
  394. package/lib/ops/git-ops.js +13 -13
  395. package/lib/ops/i-client-for-image-registry.js +16 -16
  396. package/lib/ops/i-identity-handler.d.ts +33 -33
  397. package/lib/ops/i-identity-handler.js +164 -164
  398. package/lib/ops/i-output-styler.js +16 -16
  399. package/lib/ops/index.d.ts +12 -12
  400. package/lib/ops/index.js +14 -14
  401. package/lib/ops/json-utils.js +58 -58
  402. package/lib/ops/no-style-output-styler.js +29 -29
  403. package/lib/ops/oauth2-client.ts/oauth2-client.d.ts +23 -23
  404. package/lib/ops/oauth2-client.ts/oauth2-client.js +63 -63
  405. package/lib/ops/project-initializer.d.ts +36 -36
  406. package/lib/ops/project-initializer.js +218 -218
  407. package/lib/ops/scaffolding/base-scaffolding.d.ts +7 -7
  408. package/lib/ops/scaffolding/base-scaffolding.js +20 -20
  409. package/lib/ops/scaffolding/codiac-api-scaffolding.d.ts +7 -7
  410. package/lib/ops/scaffolding/codiac-api-scaffolding.js +63 -63
  411. package/lib/ops/scaffolding/typescript-scaffolding.d.ts +15 -15
  412. package/lib/ops/scaffolding/typescript-scaffolding.js +162 -162
  413. package/lib/ops/test/mock-ui.d.ts +26 -26
  414. package/lib/ops/test/mock-ui.js +87 -87
  415. package/lib/ops/test/test-extensions.d.ts +13 -13
  416. package/lib/ops/test/test-extensions.js +70 -70
  417. package/lib/ops/test/when-a-recursive-file-search-is-run.spec.d.ts +2 -2
  418. package/lib/ops/test/when-a-recursive-file-search-is-run.spec.js +54 -54
  419. package/lib/ops/test/when-git-branchline-is-attempted.spec.d.ts +2 -2
  420. package/lib/ops/test/when-git-branchline-is-attempted.spec.js +37 -37
  421. package/lib/ops/test/when-versions-are-parsed.spec.d.ts +2 -2
  422. package/lib/ops/test/when-versions-are-parsed.spec.js +59 -59
  423. package/lib/ops/throwing-user-input-provider.js +36 -36
  424. package/lib/prettify.d.ts +7 -7
  425. package/lib/prettify.js +23 -23
  426. package/lib/read-stdin.d.ts +2 -2
  427. package/lib/read-stdin.js +28 -28
  428. package/lib/relay/contracts/contracts.d.ts +207 -207
  429. package/lib/relay/contracts/contracts.js +229 -229
  430. package/lib/relay/data/aws-k8s-versions.d.ts +6 -0
  431. package/lib/relay/data/aws-k8s-versions.js +16 -0
  432. package/lib/relay/data/aws-k8s-versions.js.map +1 -0
  433. package/lib/relay/data/aws-node-types.d.ts +37 -0
  434. package/lib/relay/data/aws-node-types.js +4246 -0
  435. package/lib/relay/data/aws-node-types.js.map +1 -0
  436. package/lib/relay/data/aws-regions.d.ts +6 -0
  437. package/lib/relay/data/aws-regions.js +34 -0
  438. package/lib/relay/data/aws-regions.js.map +1 -0
  439. package/lib/relay/extended-relay-client.d.ts +27 -27
  440. package/lib/relay/extended-relay-client.js +27 -27
  441. package/lib/relay/relay-container.d.ts +41 -41
  442. package/lib/relay/relay-container.js +297 -297
  443. package/lib/relay/wsclient/relay-socket-listener.d.ts +68 -68
  444. package/lib/relay/wsclient/relay-socket-listener.js +164 -164
  445. package/lib/relay/wsclient/relay-websocket-client.d.ts +33 -33
  446. package/lib/relay/wsclient/relay-websocket-client.js +178 -178
  447. package/lib/relay/wsclient/rx-websocket-subject.d.ts +25 -25
  448. package/lib/relay/wsclient/rx-websocket-subject.js +133 -133
  449. package/lib/relay/wsclient/socket-contracts.d.ts +22 -22
  450. package/lib/relay/wsclient/socket-contracts.js +2 -2
  451. package/lib/standard-probes.d.ts +5 -5
  452. package/lib/standard-probes.js +21 -21
  453. package/lib/uilogic/build-configurator.d.ts +21 -21
  454. package/lib/uilogic/build-configurator.js +110 -110
  455. package/lib/uilogic/cloud-provider-contextualizer.d.ts +46 -46
  456. package/lib/uilogic/cloud-provider-contextualizer.js +193 -193
  457. package/lib/uilogic/cloud-resource-configurator-factory.d.ts +41 -41
  458. package/lib/uilogic/cloud-resource-configurator-factory.js +157 -157
  459. package/lib/uilogic/cloud-resource-configurators/aws-k8s-versions.d.ts +11 -0
  460. package/lib/uilogic/cloud-resource-configurators/aws-k8s-versions.js +16 -0
  461. package/lib/uilogic/cloud-resource-configurators/aws-k8s-versions.js.map +1 -0
  462. package/lib/uilogic/cloud-resource-configurators/aws-node-types.d.ts +5 -0
  463. package/lib/uilogic/cloud-resource-configurators/aws-node-types.js +536 -0
  464. package/lib/uilogic/cloud-resource-configurators/aws-node-types.js.map +1 -0
  465. package/lib/uilogic/cloud-resource-configurators/aws-regions.d.ts +10 -0
  466. package/lib/uilogic/cloud-resource-configurators/aws-regions.js +34 -0
  467. package/lib/uilogic/cloud-resource-configurators/aws-regions.js.map +1 -0
  468. package/lib/uilogic/cloud-resource-configurators/aws-resource-configurator.d.ts +38 -38
  469. package/lib/uilogic/cloud-resource-configurators/aws-resource-configurator.js +347 -347
  470. package/lib/uilogic/cloud-resource-configurators/az-acr-cli-authenticator.js +77 -77
  471. package/lib/uilogic/cloud-resource-configurators/az-interactive-login-configurator.d.ts +42 -42
  472. package/lib/uilogic/cloud-resource-configurators/az-interactive-login-configurator.js +247 -247
  473. package/lib/uilogic/cloud-resource-configurators/azure-resource-configurator.d.ts +110 -110
  474. package/lib/uilogic/cloud-resource-configurators/azure-resource-configurator.js +781 -781
  475. package/lib/uilogic/cloud-resource-configurators/azure-types.js +9 -9
  476. package/lib/uilogic/cloud-resource-configurators/docker-hub-resource-configurator.d.ts +24 -24
  477. package/lib/uilogic/cloud-resource-configurators/docker-hub-resource-configurator.js +105 -105
  478. package/lib/uilogic/cloud-resource-configurators/helm-resource-configurator.d.ts +16 -16
  479. package/lib/uilogic/cloud-resource-configurators/helm-resource-configurator.js +44 -44
  480. package/lib/uilogic/cloud-resource-configurators/unsupported-resource-configurator.d.ts +18 -18
  481. package/lib/uilogic/cloud-resource-configurators/unsupported-resource-configurator.js +61 -61
  482. package/lib/uilogic/enterprise-contextualizer.d.ts +76 -76
  483. package/lib/uilogic/enterprise-contextualizer.js +670 -670
  484. package/lib/uilogic/environment-contextualizer.d.ts +15 -15
  485. package/lib/uilogic/environment-contextualizer.js +42 -42
  486. package/lib/uilogic/i-cluster-configurator.d.ts +9 -9
  487. package/lib/uilogic/i-cluster-configurator.js +2 -2
  488. package/lib/uilogic/i-login-configurator.d.ts +6 -6
  489. package/lib/uilogic/i-login-configurator.js +2 -2
  490. package/lib/uilogic/i-registry-configurator.d.ts +6 -6
  491. package/lib/uilogic/i-registry-configurator.js +2 -2
  492. package/lib/uilogic/i-secret-store-configurator.d.ts +7 -7
  493. package/lib/uilogic/i-secret-store-configurator.js +2 -2
  494. package/lib/uilogic/image-configurator.d.ts +133 -133
  495. package/lib/uilogic/image-configurator.js +577 -577
  496. package/lib/uilogic/image-contextualizer.d.ts +24 -24
  497. package/lib/uilogic/image-contextualizer.js +89 -89
  498. package/lib/uilogic/image-registry-contextualizer.d.ts +28 -28
  499. package/lib/uilogic/image-registry-contextualizer.js +126 -126
  500. package/lib/uilogic/index.d.ts +9 -9
  501. package/lib/uilogic/index.js +13 -13
  502. package/lib/uilogic/prompt-select-fuzzy.js +138 -138
  503. package/lib/uilogic/render-methods.d.ts +12 -12
  504. package/lib/uilogic/render-methods.js +64 -64
  505. package/lib/uilogic/tenant-contextualizer.d.ts +79 -79
  506. package/lib/uilogic/tenant-contextualizer.js +573 -573
  507. package/lib/user-context-loader.d.ts +60 -60
  508. package/lib/user-context-loader.js +183 -183
  509. package/oclif.manifest.json +45 -1
  510. package/package.json +150 -150
  511. package/scaffolding/api/.gitignore-scaffolding +68 -68
  512. package/scaffolding/api/.vscode/launch.json +16 -16
  513. package/scaffolding/api/.vscode/settings.json +7 -7
  514. package/scaffolding/api/.vscode/tasks.json +15 -15
  515. package/scaffolding/api/src/app-config.json +2 -2
  516. package/scaffolding/api/src/index.ts-scaffolding +13 -13
  517. package/scaffolding/api/src/myApiDef.ts-scaffolding +25 -25
  518. package/scaffolding/default/.gitignore-scaffolding +2 -2
  519. package/scaffolding/typescript/.gitignore-scaffolding +69 -69
  520. package/scaffolding/typescript/.vscode/launch.json +16 -16
  521. package/scaffolding/typescript/.vscode/settings.json +7 -7
  522. package/scaffolding/typescript/.vscode/tasks.json +15 -15
package/bin/dev CHANGED
@@ -1,17 +1,17 @@
1
- #!/usr/bin/env node
2
-
3
- const oclif = require('@oclif/core')
4
-
5
- const path = require('path')
6
- const project = path.join(__dirname, '..', 'tsconfig.json')
7
-
8
- // In dev mode -> use ts-node and dev plugins
9
- process.env.NODE_ENV = 'development'
10
-
11
- require('ts-node').register({ project })
12
-
13
- // In dev mode, always show stack traces
14
- oclif.settings.debug = true;
15
-
16
- // Start the CLI
1
+ #!/usr/bin/env node
2
+
3
+ const oclif = require('@oclif/core')
4
+
5
+ const path = require('path')
6
+ const project = path.join(__dirname, '..', 'tsconfig.json')
7
+
8
+ // In dev mode -> use ts-node and dev plugins
9
+ process.env.NODE_ENV = 'development'
10
+
11
+ require('ts-node').register({ project })
12
+
13
+ // In dev mode, always show stack traces
14
+ oclif.settings.debug = true;
15
+
16
+ // Start the CLI
17
17
  oclif.run().then(oclif.flush).catch(oclif.Errors.handle)
package/bin/dev.cmd CHANGED
@@ -1,3 +1,3 @@
1
- @echo off
2
-
1
+ @echo off
2
+
3
3
  node "%~dp0\dev" %*
package/bin/run CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
-
3
- const oclif = require('@oclif/core')
4
-
2
+
3
+ const oclif = require('@oclif/core')
4
+
5
5
  oclif.run().then(require('@oclif/core/flush')).catch(require('@oclif/core/handle'))
package/bin/run.cmd CHANGED
@@ -1,3 +1,3 @@
1
- @echo off
2
-
3
- node "%~dp0\run" %*
1
+ @echo off
2
+
3
+ node "%~dp0\run" %*
package/codiac.json CHANGED
@@ -1,10 +1,10 @@
1
- {
2
- "name": "cli",
3
- "tenantCode": "cod",
4
- "codeVersion": "0.0.0-mcf-probes-2.1",
5
- "buildDef": [
6
- "npm run build"
7
- ],
8
- "buildIncludes": [],
9
- "submodules": []
1
+ {
2
+ "name": "cli",
3
+ "tenantCode": "cod",
4
+ "codeVersion": "0.0.0-mcf-probes-2.1",
5
+ "buildDef": [
6
+ "npm run build"
7
+ ],
8
+ "buildIncludes": [],
9
+ "submodules": []
10
10
  }
File without changes
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ // import { CodiacClient } from '@codiac.io/codiac-api-client';
3
+ // import { commandBase } from '@codiac.io/codiac-cli-common';
4
+ // import { UserContext } from "@codiac.io/codiac-relay-contracts";
5
+ // import { DxConstants } from '@codiac.io/codiac-ops-tenantless';
6
+ // import { BetterConsoleLogger } from '@codiac.io/codiac-common/better-logger';
7
+ // export abstract class ApiCommandBase extends commandBase {
8
+ // constructor(argv: string[], config: IConfig) {
9
+ // super(argv, config);
10
+ // let codiacApiUrl = (this._cliCfg) ? this._cliCfg.codiacApiBaseUrl : undefined;
11
+ // this._userCntx = this._cfgRepo.loadUserContext(this._projCfg.tenantCode);
12
+ // // Commented out bc this should be handled by the cfgRepo instead.
13
+ // // this.preventAlienTenantContext();
14
+ // let authToken = (this._userCntx) ? this._userCntx.currentToken : undefined;
15
+ // CodiacClient.bootstrap();
16
+ // this._codiacApi = CodiacClient.create(new BetterConsoleLogger(), codiacApiUrl, authToken);
17
+ // }
18
+ // protected _userCntx: UserContext | undefined;
19
+ // protected _codiacApi: CodiacClient;
20
+ // /** Trap a tenant code mismatch */
21
+ // // TODO: This should belong to a contextualizer
22
+ // protected preventAlienTenantContext() {
23
+ // if (this._projCfg.tenantCode == DxConstants.UNREGISTERED_TENANT_CODE) {
24
+ // // Ensure principal context
25
+ // if (this._userCntx
26
+ // && this._userCntx.currentTenantCode
27
+ // && this._userCntx.currentTenantCode != this._projCfg.tenantCode) {
28
+ // this.logger.debug(`Mismatched TenantUser context in an unregistered project. Switching to principal context.`)
29
+ // // Strip it of
30
+ // this._userCntx.currentTenantCode = undefined;
31
+ // this._userCntx.currentToken = undefined; // TODO: We should check for a principal token and switch to that.
32
+ // }
33
+ // } else {
34
+ // // Find a mismatch
35
+ // if (this._userCntx && this._userCntx.currentTenantCode != this._projCfg.tenantCode) {
36
+ // // try to switch to this tenant
37
+ // let tokenForThisTenant = this._userCntx.tokens[this._projCfg.tenantCode];
38
+ // if (tokenForThisTenant) {
39
+ // this._userCntx.currentToken = tokenForThisTenant;
40
+ // this._userCntx.currentTenantCode = this._projCfg.tenantCode;
41
+ // this.logger.debug(`Mismatched TenantUser context. Switched to [${this._projCfg.tenantCode}].`);
42
+ // } else {
43
+ // // No token in profile at the moment, so strip the foreign one.
44
+ // this._userCntx.currentTenantCode = undefined;
45
+ // this._userCntx.currentToken = undefined; // TODO: We should check for a principal token and switch to that.
46
+ // this.logger.debug(`Mismatched TenantUser context. Switched to principal context.`);
47
+ // }
48
+ // }
49
+ // }
50
+ // }
51
+ // }
52
+ //# sourceMappingURL=api-command-base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-command-base.js","sourceRoot":"","sources":["../src/api-command-base.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,8DAA8D;AAE9D,mEAAmE;AACnE,kEAAkE;AAClE,gFAAgF;AAGhF,6DAA6D;AAE7D,qDAAqD;AACrD,+BAA+B;AAE/B,yFAAyF;AACzF,oFAAoF;AAEpF,6EAA6E;AAC7E,+CAA+C;AAE/C,sFAAsF;AACtF,oCAAoC;AACpC,qGAAqG;AAErG,QAAQ;AAER,oDAAoD;AACpD,0CAA0C;AAG1C,yCAAyC;AACzC,sDAAsD;AACtD,8CAA8C;AAE9C,kFAAkF;AAClF,0CAA0C;AAC1C,iCAAiC;AACjC,sDAAsD;AACtD,qFAAqF;AACrF,kIAAkI;AAClI,iCAAiC;AACjC,gEAAgE;AAChE,+HAA+H;AAC/H,gBAAgB;AAChB,mBAAmB;AACnB,iCAAiC;AACjC,oGAAoG;AACpG,kDAAkD;AAClD,4FAA4F;AAC5F,4CAA4C;AAC5C,wEAAwE;AACxE,mFAAmF;AACnF,sHAAsH;AACtH,2BAA2B;AAC3B,sFAAsF;AACtF,oEAAoE;AACpE,mIAAmI;AACnI,2GAA2G;AAC3G,oBAAoB;AACpB,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AAER,IAAI"}
@@ -1,165 +1,165 @@
1
- import { AxiosResponse } from "axios";
2
- import { Container } from "inversify";
3
- import { classDef, stringDictionary, ISerializer, typeRef, httpRestVerb } from "@codiac.io/codiac-common";
4
- import { IBetterLogger } from '@codiac.io/codiac-common/IBetterLogger';
5
- import { endpointSpec } from './endpoint-spec';
6
- export declare class TypeName {
7
- static endpointSpec<T>(entityType: classDef<T> | string): string;
8
- static arrayOf<T>(entityType: classDef<T> | string): string;
9
- static criteriaFor<T>(entityType: classDef<T> | string): string;
10
- }
11
- export declare abstract class ApiClientBase {
12
- authToken?: string | undefined;
13
- static endpointSpecs: Container;
14
- static serializers: Container;
15
- static bootstrap_base(endpointsJson: any[], logger?: IBetterLogger): void;
16
- /** For special serializers (eg: StringFilter, etc).
17
- * Maps the given serializer for use on the given type
18
- * when later converting input to an http request.
19
- * NOTE: a default serializer will be used if reqd and none has been registered here.
20
- */
21
- static registerSerializerFor<T>(valueType: classDef<T> | string, serializer: ISerializer): void;
22
- /** Returns undefined when no serializer has been registered for the given valueType. */
23
- static getSerializerFor(valueType: typeRef | string): ISerializer | undefined;
24
- /** Applied to this.tokenHeaderParam in the ctor.
25
- * Typical name of the http request header that declares the authentication token for the request. */
26
- static DEFAULT_TOKEN_HEADER_PARAM: string;
27
- /** Local interface for a remote Api.
28
- * @param apiRootUrl Override for this.GetDefaultRootUrl(). Fully qualified base url of the api. That is, prepending it to any individual endpoint route will yield the fully qualified url for that endpoint.
29
- * @param authToken User token for the api this client is targeting.
30
- * NOTE: Also must get hydrated if child class runs successful attempts of authenticate / refreshToken / switchTenant / registerTenant.
31
- */
32
- constructor(logger: IBetterLogger, apiRootUrl?: string, authToken?: string | undefined);
33
- readonly apiRootUrl: string;
34
- /** The name of the http request header that declares the authentication token for the request.
35
- * NOTE: This gets set to DEFAULT_TOKEN_HEADER_NAME in the ctor of ApiClientBase,
36
- * so child classes can override it in their own ctor AFTER calling super(). */
37
- protected tokenHeaderName: string;
38
- /** Applied when apiRootUrl is not passed to the ApiClientBase ctor.
39
- * The fully qualified url to use as the base for all endpoint paths in the api,
40
- * SUGGESTION: Try to load the root url from a config file,
41
- * and default to a hard-coded publicly available test environment for the api,
42
- * and ship with a config file pointing to the production url. */
43
- protected abstract GetDefaultRootUrl(): string;
44
- protected logger: IBetterLogger;
45
- /** Sets the user context to impersonate in requests made to the api. */
46
- setUserToken(token: string): void;
47
- /** Retrieves the registered endpoint spec for the given request type and httpMethod.
48
- * Throws exception if the given entity type and http method are not found.
49
- */
50
- getEndpointFor<TRequest>(entityType: classDef<TRequest> | string, httpMethod: httpRestVerb): endpointSpec<TRequest>;
51
- /** Produces the value for the "Authorization" http header in an RFC 2617 Basic Authentication scheme.
52
- * Consists of the string "Basic " followed by a colon-separated, base64 encoded string of the username and password.
53
- * eg: for userid "Aladdin" and password "open sesame", this function will return "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==".
54
- * @see https://tools.ietf.org/html/rfc2617#page-4 RFC 2617 HTTP Authentication - Assembling the header value for a basic authentication request. */
55
- protected static buildBasicAuthenticationHeader(userName: string, passwordOrApiKey: string): string;
56
- /** Fires off an http request to the remote api.
57
- * Throws any encountered exceptions
58
- * (api exceptions dont get raised: they get passed back in the response envelope).
59
- *
60
- * @param httpVerb
61
- * @param url Can be relative to this.apiBaseUrl or fully qualified.
62
- * @param req
63
- * @param headers
64
- */
65
- makeHttpCall<TRequest, TResponse>(httpVerb: httpRestVerb, url: string, req?: Object, headers?: {
66
- [key: string]: string;
67
- }): Promise<TResponse>;
68
- /** Fires off an http request to the remote api,
69
- * AND RETURNS THE ENTIRE AXIOS RESPONSE.
70
- * Throws any encountered exceptions
71
- * (api exceptions dont get raised: they get passed back in the response envelope).
72
- *
73
- * @param httpVerb
74
- * @param url Can be relative to this.apiBaseUrl or fully qualified.
75
- * @param req
76
- * @param headers
77
- */
78
- makeRawHttpCall<TRequest, TResponse>(httpVerb: httpRestVerb, url: string, req: Object, headers?: {
79
- [key: string]: string;
80
- }): Promise<AxiosResponse<TResponse>>;
81
- /** Performs replacements on the route using
82
- * the matching values from the given request object
83
- * @param route The relative url path for the endpoint including route tokens.
84
- * @param applyRemainingToQuerystring (default: false) When set, adds querystring params
85
- * for every property on the entity that was not already applied to a route token.
86
- * */
87
- buildUrl(route: string, request: any, applyRemainingToQuerystring?: boolean): string;
88
- /** Returns an object containing only properties with primitive values;
89
- * no objects, or functions.
90
- *
91
- * NOTE: DOES include null values (which javascript still considers objects)
92
- *
93
- * @see [The world picking up the slack on this failure](https://stackoverflow.com/questions/8511281/check-if-a-value-is-an-object-in-javascript/8511350#8511350)
94
- */
95
- private extractPrimitiveProperties;
96
- /** Serializes property values of the given entity
97
- * whose types have a registered serializer. */
98
- applyPropertySerializers(entity: any, serializerMap: stringDictionary): any;
99
- /** Safe to blindly append this to an existing url tat does not yet have a querystring.
100
- * Returns "?" character if the given obj has properties.
101
- * Returns "" if the given obj is undefined or empty. */
102
- private createQueryStringFrom;
103
- /** Creates a new object from the given object without the given property paths */
104
- private omit;
105
- /** Very generic method for executing a POST operation against the api
106
- * from an endpoint definition in the registered endpoints collection.
107
- * Hydrates any route parameters or required headers for the endpoint
108
- * from the given requestContract and routeValues objects.
109
- * Throws any exceptions
110
- * (because it cant guarantee a response envelope that declares
111
- * errors and successes, it cant implement a "try" pattern).
112
- * @param routeValues Additional key value pairs (beyond the requestContract) to apply to any route parameters for the endpoint.
113
- */
114
- post<TRequest extends Object, TResponse>(requestType: classDef<TRequest>, requestContract: TRequest, routeValues?: any): Promise<TResponse>;
115
- /** Very generic method for executing a PUT operation against the api
116
- * from an endpoint definition in the registered endpoints collection.
117
- * Hydrates any route parameters or required headers for the endpoint
118
- * from the given requestContract and routeValues objects.
119
- * Throws any exceptions
120
- * (because it cant guarantee a response envelope that declares
121
- * errors and successes, it cant implement a "try" pattern).
122
- * @param routeValues Additional key value pairs (beyond the requestContract) to apply to any route parameters for the endpoint.
123
- */
124
- put<TRequest extends Object, TResponse>(requestType: classDef<TRequest>, requestContract: TRequest, routeValues?: any): Promise<TResponse>;
125
- /** Very generic method for executing a GET operation against the api
126
- * from an endpoint definition in the registered endpoints collection.
127
- * Hydrates any route parameters or required headers for the endpoint
128
- * from the given requestContract and routeValues objects.
129
- * Throws any exceptions
130
- * (because it cant guarantee a response envelope that declares
131
- * errors and successes, it cant implement a "try" pattern).
132
- * @param routeValues Additional key value pairs (beyond the requestContract) to apply to any route parameters for the endpoint.
133
- */
134
- get<TRequest extends Object, TResponse>(requestType: classDef<TRequest>, requestContract: TRequest, routeValues?: any): Promise<TResponse>;
135
- /** Very generic method for executing a PATCH operation against the api
136
- * from an endpoint definition in the registered endpoints collection.
137
- * Hydrates any route parameters or required headers for the endpoint
138
- * from the given requestContract and routeValues objects.
139
- * Throws any exceptions
140
- * (because it cant guarantee a response envelope that declares
141
- * errors and successes, it cant implement a "try" pattern).
142
- * @param routeValues Additional key value pairs (beyond the requestContract) to apply to any route parameters for the endpoint.
143
- */
144
- patch<TRequest extends Object, TResponse>(requestType: classDef<TRequest>, requestContract: TRequest, routeValues?: any): Promise<TResponse>;
145
- /** Very generic method for executing a DELETE operation against the api
146
- * from an endpoint definition in the registered endpoints collection.
147
- * Hydrates any route parameters or required headers for the endpoint
148
- * from the given requestContract and routeValues objects.
149
- * Throws any exceptions
150
- * (because it cant guarantee a response envelope that declares
151
- * errors and successes, it cant implement a "try" pattern).
152
- * @param routeValues Additional key value pairs (beyond the requestContract) to apply to any route parameters for the endpoint.
153
- */
154
- delete<TRequest extends Object, TResponse>(requestType: classDef<TRequest>, requestContract: TRequest, routeValues?: any): Promise<TResponse>;
155
- /** Very generic method for executing an http operation against the api
156
- * from an endpoint definition in the registered endpoints collection.
157
- * Hydrates any route parameters or required headers for the endpoint
158
- * from the given requestContract and routeValues objects.
159
- * Throws any exceptions
160
- * (because it cant guarantee a response envelope that declares
161
- * errors and successes, it cant implement a "try" pattern).
162
- * @param routeValues Additional key value pairs (beyond the requestContract) to apply to any route parameters for the endpoint.
163
- */
164
- protected hitConfiguredEndpoint<TRequest extends Object, TResponse>(requestType: classDef<TRequest>, httpVerb: httpRestVerb, requestContract: TRequest, routeValues?: any): Promise<TResponse>;
165
- }
1
+ import { AxiosResponse } from "axios";
2
+ import { Container } from "inversify";
3
+ import { classDef, stringDictionary, ISerializer, typeRef, httpRestVerb } from "@codiac.io/codiac-common";
4
+ import { IBetterLogger } from '@codiac.io/codiac-common/IBetterLogger';
5
+ import { endpointSpec } from './endpoint-spec';
6
+ export declare class TypeName {
7
+ static endpointSpec<T>(entityType: classDef<T> | string): string;
8
+ static arrayOf<T>(entityType: classDef<T> | string): string;
9
+ static criteriaFor<T>(entityType: classDef<T> | string): string;
10
+ }
11
+ export declare abstract class ApiClientBase {
12
+ authToken?: string | undefined;
13
+ static endpointSpecs: Container;
14
+ static serializers: Container;
15
+ static bootstrap_base(endpointsJson: any[], logger?: IBetterLogger): void;
16
+ /** For special serializers (eg: StringFilter, etc).
17
+ * Maps the given serializer for use on the given type
18
+ * when later converting input to an http request.
19
+ * NOTE: a default serializer will be used if reqd and none has been registered here.
20
+ */
21
+ static registerSerializerFor<T>(valueType: classDef<T> | string, serializer: ISerializer): void;
22
+ /** Returns undefined when no serializer has been registered for the given valueType. */
23
+ static getSerializerFor(valueType: typeRef | string): ISerializer | undefined;
24
+ /** Applied to this.tokenHeaderParam in the ctor.
25
+ * Typical name of the http request header that declares the authentication token for the request. */
26
+ static DEFAULT_TOKEN_HEADER_PARAM: string;
27
+ /** Local interface for a remote Api.
28
+ * @param apiRootUrl Override for this.GetDefaultRootUrl(). Fully qualified base url of the api. That is, prepending it to any individual endpoint route will yield the fully qualified url for that endpoint.
29
+ * @param authToken User token for the api this client is targeting.
30
+ * NOTE: Also must get hydrated if child class runs successful attempts of authenticate / refreshToken / switchTenant / registerTenant.
31
+ */
32
+ constructor(logger: IBetterLogger, apiRootUrl?: string, authToken?: string | undefined);
33
+ readonly apiRootUrl: string;
34
+ /** The name of the http request header that declares the authentication token for the request.
35
+ * NOTE: This gets set to DEFAULT_TOKEN_HEADER_NAME in the ctor of ApiClientBase,
36
+ * so child classes can override it in their own ctor AFTER calling super(). */
37
+ protected tokenHeaderName: string;
38
+ /** Applied when apiRootUrl is not passed to the ApiClientBase ctor.
39
+ * The fully qualified url to use as the base for all endpoint paths in the api,
40
+ * SUGGESTION: Try to load the root url from a config file,
41
+ * and default to a hard-coded publicly available test environment for the api,
42
+ * and ship with a config file pointing to the production url. */
43
+ protected abstract GetDefaultRootUrl(): string;
44
+ protected logger: IBetterLogger;
45
+ /** Sets the user context to impersonate in requests made to the api. */
46
+ setUserToken(token: string): void;
47
+ /** Retrieves the registered endpoint spec for the given request type and httpMethod.
48
+ * Throws exception if the given entity type and http method are not found.
49
+ */
50
+ getEndpointFor<TRequest>(entityType: classDef<TRequest> | string, httpMethod: httpRestVerb): endpointSpec<TRequest>;
51
+ /** Produces the value for the "Authorization" http header in an RFC 2617 Basic Authentication scheme.
52
+ * Consists of the string "Basic " followed by a colon-separated, base64 encoded string of the username and password.
53
+ * eg: for userid "Aladdin" and password "open sesame", this function will return "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==".
54
+ * @see https://tools.ietf.org/html/rfc2617#page-4 RFC 2617 HTTP Authentication - Assembling the header value for a basic authentication request. */
55
+ protected static buildBasicAuthenticationHeader(userName: string, passwordOrApiKey: string): string;
56
+ /** Fires off an http request to the remote api.
57
+ * Throws any encountered exceptions
58
+ * (api exceptions dont get raised: they get passed back in the response envelope).
59
+ *
60
+ * @param httpVerb
61
+ * @param url Can be relative to this.apiBaseUrl or fully qualified.
62
+ * @param req
63
+ * @param headers
64
+ */
65
+ makeHttpCall<TRequest, TResponse>(httpVerb: httpRestVerb, url: string, req?: Object, headers?: {
66
+ [key: string]: string;
67
+ }): Promise<TResponse>;
68
+ /** Fires off an http request to the remote api,
69
+ * AND RETURNS THE ENTIRE AXIOS RESPONSE.
70
+ * Throws any encountered exceptions
71
+ * (api exceptions dont get raised: they get passed back in the response envelope).
72
+ *
73
+ * @param httpVerb
74
+ * @param url Can be relative to this.apiBaseUrl or fully qualified.
75
+ * @param req
76
+ * @param headers
77
+ */
78
+ makeRawHttpCall<TRequest, TResponse>(httpVerb: httpRestVerb, url: string, req: Object, headers?: {
79
+ [key: string]: string;
80
+ }): Promise<AxiosResponse<TResponse>>;
81
+ /** Performs replacements on the route using
82
+ * the matching values from the given request object
83
+ * @param route The relative url path for the endpoint including route tokens.
84
+ * @param applyRemainingToQuerystring (default: false) When set, adds querystring params
85
+ * for every property on the entity that was not already applied to a route token.
86
+ * */
87
+ buildUrl(route: string, request: any, applyRemainingToQuerystring?: boolean): string;
88
+ /** Returns an object containing only properties with primitive values;
89
+ * no objects, or functions.
90
+ *
91
+ * NOTE: DOES include null values (which javascript still considers objects)
92
+ *
93
+ * @see [The world picking up the slack on this failure](https://stackoverflow.com/questions/8511281/check-if-a-value-is-an-object-in-javascript/8511350#8511350)
94
+ */
95
+ private extractPrimitiveProperties;
96
+ /** Serializes property values of the given entity
97
+ * whose types have a registered serializer. */
98
+ applyPropertySerializers(entity: any, serializerMap: stringDictionary): any;
99
+ /** Safe to blindly append this to an existing url tat does not yet have a querystring.
100
+ * Returns "?" character if the given obj has properties.
101
+ * Returns "" if the given obj is undefined or empty. */
102
+ private createQueryStringFrom;
103
+ /** Creates a new object from the given object without the given property paths */
104
+ private omit;
105
+ /** Very generic method for executing a POST operation against the api
106
+ * from an endpoint definition in the registered endpoints collection.
107
+ * Hydrates any route parameters or required headers for the endpoint
108
+ * from the given requestContract and routeValues objects.
109
+ * Throws any exceptions
110
+ * (because it cant guarantee a response envelope that declares
111
+ * errors and successes, it cant implement a "try" pattern).
112
+ * @param routeValues Additional key value pairs (beyond the requestContract) to apply to any route parameters for the endpoint.
113
+ */
114
+ post<TRequest extends Object, TResponse>(requestType: classDef<TRequest>, requestContract: TRequest, routeValues?: any): Promise<TResponse>;
115
+ /** Very generic method for executing a PUT operation against the api
116
+ * from an endpoint definition in the registered endpoints collection.
117
+ * Hydrates any route parameters or required headers for the endpoint
118
+ * from the given requestContract and routeValues objects.
119
+ * Throws any exceptions
120
+ * (because it cant guarantee a response envelope that declares
121
+ * errors and successes, it cant implement a "try" pattern).
122
+ * @param routeValues Additional key value pairs (beyond the requestContract) to apply to any route parameters for the endpoint.
123
+ */
124
+ put<TRequest extends Object, TResponse>(requestType: classDef<TRequest>, requestContract: TRequest, routeValues?: any): Promise<TResponse>;
125
+ /** Very generic method for executing a GET operation against the api
126
+ * from an endpoint definition in the registered endpoints collection.
127
+ * Hydrates any route parameters or required headers for the endpoint
128
+ * from the given requestContract and routeValues objects.
129
+ * Throws any exceptions
130
+ * (because it cant guarantee a response envelope that declares
131
+ * errors and successes, it cant implement a "try" pattern).
132
+ * @param routeValues Additional key value pairs (beyond the requestContract) to apply to any route parameters for the endpoint.
133
+ */
134
+ get<TRequest extends Object, TResponse>(requestType: classDef<TRequest>, requestContract: TRequest, routeValues?: any): Promise<TResponse>;
135
+ /** Very generic method for executing a PATCH operation against the api
136
+ * from an endpoint definition in the registered endpoints collection.
137
+ * Hydrates any route parameters or required headers for the endpoint
138
+ * from the given requestContract and routeValues objects.
139
+ * Throws any exceptions
140
+ * (because it cant guarantee a response envelope that declares
141
+ * errors and successes, it cant implement a "try" pattern).
142
+ * @param routeValues Additional key value pairs (beyond the requestContract) to apply to any route parameters for the endpoint.
143
+ */
144
+ patch<TRequest extends Object, TResponse>(requestType: classDef<TRequest>, requestContract: TRequest, routeValues?: any): Promise<TResponse>;
145
+ /** Very generic method for executing a DELETE operation against the api
146
+ * from an endpoint definition in the registered endpoints collection.
147
+ * Hydrates any route parameters or required headers for the endpoint
148
+ * from the given requestContract and routeValues objects.
149
+ * Throws any exceptions
150
+ * (because it cant guarantee a response envelope that declares
151
+ * errors and successes, it cant implement a "try" pattern).
152
+ * @param routeValues Additional key value pairs (beyond the requestContract) to apply to any route parameters for the endpoint.
153
+ */
154
+ delete<TRequest extends Object, TResponse>(requestType: classDef<TRequest>, requestContract: TRequest, routeValues?: any): Promise<TResponse>;
155
+ /** Very generic method for executing an http operation against the api
156
+ * from an endpoint definition in the registered endpoints collection.
157
+ * Hydrates any route parameters or required headers for the endpoint
158
+ * from the given requestContract and routeValues objects.
159
+ * Throws any exceptions
160
+ * (because it cant guarantee a response envelope that declares
161
+ * errors and successes, it cant implement a "try" pattern).
162
+ * @param routeValues Additional key value pairs (beyond the requestContract) to apply to any route parameters for the endpoint.
163
+ */
164
+ protected hitConfiguredEndpoint<TRequest extends Object, TResponse>(requestType: classDef<TRequest>, httpVerb: httpRestVerb, requestContract: TRequest, routeValues?: any): Promise<TResponse>;
165
+ }