@catladder/cli 0.0.0-next-e9e5af68 → 0.0.0-next-1c65899f

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 (686) hide show
  1. package/dist/bundles/catenv/index.js +6990 -6861
  2. package/dist/bundles/cli/index.js +10953 -10889
  3. package/dist/bundles/skills/catladder-cli/references/commands.md +37 -2
  4. package/dist/bundles/skills/catladder-pipelines/SKILL.md +6 -6
  5. package/dist/bundles/skills/catladder-secrets/SKILL.md +42 -9
  6. package/dist/cli/src/adapters/baseContext.d.ts +18 -18
  7. package/dist/cli/src/adapters/baseContext.js +34 -34
  8. package/dist/cli/src/adapters/nonInteractive.d.ts +2 -2
  9. package/dist/cli/src/adapters/nonInteractive.js +20 -22
  10. package/dist/cli/src/adapters/programmatic.d.ts +12 -12
  11. package/dist/cli/src/adapters/programmatic.js +46 -51
  12. package/dist/cli/src/adapters/terminal.d.ts +15 -15
  13. package/dist/cli/src/adapters/terminal.js +154 -176
  14. package/dist/cli/src/adapters/vaultManagerAccess.d.ts +1 -1
  15. package/dist/cli/src/adapters/vaultManagerAccess.js +11 -16
  16. package/dist/cli/src/apps/catenv/catenv.d.ts +4 -4
  17. package/dist/cli/src/apps/catenv/catenv.js +20 -20
  18. package/dist/cli/src/apps/catenv/printVariables.d.ts +1 -1
  19. package/dist/cli/src/apps/catenv/printVariables.js +30 -33
  20. package/dist/cli/src/apps/catenv/types.d.ts +4 -4
  21. package/dist/cli/src/apps/catenv/types.js +2 -4
  22. package/dist/cli/src/apps/catenv/utils.d.ts +6 -9
  23. package/dist/cli/src/apps/catenv/utils.js +21 -25
  24. package/dist/cli/src/apps/catenv/verboseBanner.d.ts +1 -1
  25. package/dist/cli/src/apps/catenv/verboseBanner.js +24 -20
  26. package/dist/cli/src/apps/catenv/writeDotEnvFiles.d.ts +1 -1
  27. package/dist/cli/src/apps/catenv/writeDotEnvFiles.js +22 -25
  28. package/dist/cli/src/apps/catenv/writeEnvDTs.d.ts +1 -1
  29. package/dist/cli/src/apps/catenv/writeEnvDTs.js +32 -31
  30. package/dist/cli/src/apps/cli/commands/mongodb/utils/index.d.ts +6 -6
  31. package/dist/cli/src/apps/cli/commands/mongodb/utils/index.js +52 -56
  32. package/dist/cli/src/apps/cli/commands/project/doctor/DoctorReport.d.ts +13 -13
  33. package/dist/cli/src/apps/cli/commands/project/doctor/DoctorReport.js +50 -62
  34. package/dist/cli/src/apps/cli/commands/project/doctor/GcloudProjectInspector.d.ts +9 -9
  35. package/dist/cli/src/apps/cli/commands/project/doctor/GcloudProjectInspector.js +43 -44
  36. package/dist/cli/src/apps/cli/commands/project/doctor/checkCloudRun.d.ts +1 -1
  37. package/dist/cli/src/apps/cli/commands/project/doctor/checkCloudRun.js +75 -93
  38. package/dist/cli/src/apps/cli/commands/project/doctor/checkGithub.d.ts +1 -1
  39. package/dist/cli/src/apps/cli/commands/project/doctor/checkGithub.js +86 -78
  40. package/dist/cli/src/apps/cli/commands/project/doctor/checkGitlab.d.ts +1 -1
  41. package/dist/cli/src/apps/cli/commands/project/doctor/checkGitlab.js +58 -57
  42. package/dist/cli/src/apps/cli/commands/project/doctor/checkStore.d.ts +1 -1
  43. package/dist/cli/src/apps/cli/commands/project/doctor/checkStore.js +25 -30
  44. package/dist/cli/src/apps/cli/commands/project/doctor/index.d.ts +1 -1
  45. package/dist/cli/src/apps/cli/commands/project/doctor/index.js +24 -25
  46. package/dist/cli/src/apps/cli/commands/project/setup/ensureGcloudProjectNumbers.d.ts +1 -1
  47. package/dist/cli/src/apps/cli/commands/project/setup/ensureGcloudProjectNumbers.js +34 -45
  48. package/dist/cli/src/apps/cli/commands/project/setup/index.d.ts +1 -1
  49. package/dist/cli/src/apps/cli/commands/project/setup/index.js +31 -27
  50. package/dist/cli/src/apps/cli/commands/project/setup/logSection.d.ts +1 -1
  51. package/dist/cli/src/apps/cli/commands/project/setup/logSection.js +13 -15
  52. package/dist/cli/src/apps/cli/commands/project/setup/setupAccessTokens.d.ts +1 -1
  53. package/dist/cli/src/apps/cli/commands/project/setup/setupAccessTokens.js +34 -43
  54. package/dist/cli/src/apps/cli/commands/project/setup/setupAgents.d.ts +1 -1
  55. package/dist/cli/src/apps/cli/commands/project/setup/setupAgents.js +130 -137
  56. package/dist/cli/src/apps/cli/commands/project/setup/setupCloudRun.d.ts +3 -3
  57. package/dist/cli/src/apps/cli/commands/project/setup/setupCloudRun.js +49 -46
  58. package/dist/cli/src/apps/cli/commands/project/setup/setupContext.d.ts +1 -1
  59. package/dist/cli/src/apps/cli/commands/project/setup/setupContext.js +13 -15
  60. package/dist/cli/src/apps/cli/commands/project/setup/setupKubernetes.d.ts +1 -1
  61. package/dist/cli/src/apps/cli/commands/project/setup/setupKubernetes.js +69 -70
  62. package/dist/cli/src/apps/cli/commands/project/setup/setupTopic.d.ts +1 -1
  63. package/dist/cli/src/apps/cli/commands/project/setup/setupTopic.js +7 -15
  64. package/dist/cli/src/apps/cli/commands/project/utils/autocompletions.d.ts +1 -1
  65. package/dist/cli/src/apps/cli/commands/project/utils/autocompletions.js +16 -21
  66. package/dist/cli/src/apps/cli/commands/project/utils/ensureCluster.d.ts +1 -1
  67. package/dist/cli/src/apps/cli/commands/project/utils/ensureCluster.js +22 -26
  68. package/dist/cli/src/apps/cli/commands/project/utils/ensureNamespace.d.ts +1 -1
  69. package/dist/cli/src/apps/cli/commands/project/utils/ensureNamespace.js +30 -35
  70. package/dist/cli/src/apps/cli/utils/getGoogleAuthUserNumber.d.ts +1 -1
  71. package/dist/cli/src/apps/cli/utils/getGoogleAuthUserNumber.js +15 -17
  72. package/dist/cli/src/catci.d.ts +1 -1
  73. package/dist/cli/src/catci.js +63 -65
  74. package/dist/cli/src/catenv.d.ts +1 -1
  75. package/dist/cli/src/catenv.js +44 -31
  76. package/dist/cli/src/cli.d.ts +1 -1
  77. package/dist/cli/src/cli.js +185 -170
  78. package/dist/cli/src/commands/availability.d.ts +1 -1
  79. package/dist/cli/src/commands/availability.js +13 -16
  80. package/dist/cli/src/commands/cloudSQL/commandRestoreDb.d.ts +45 -45
  81. package/dist/cli/src/commands/cloudSQL/commandRestoreDb.js +92 -103
  82. package/dist/cli/src/commands/fun/commandDadjoke.d.ts +1 -1
  83. package/dist/cli/src/commands/fun/commandDadjoke.js +18 -24
  84. package/dist/cli/src/commands/fun/commandStarwars.d.ts +1 -1
  85. package/dist/cli/src/commands/fun/commandStarwars.js +12 -14
  86. package/dist/cli/src/commands/general/commandKubeCurrentContext.d.ts +1 -1
  87. package/dist/cli/src/commands/general/commandKubeCurrentContext.js +10 -12
  88. package/dist/cli/src/commands/general/commandKubeGetShell.d.ts +11 -11
  89. package/dist/cli/src/commands/general/commandKubeGetShell.js +26 -28
  90. package/dist/cli/src/commands/general/commandKubeListNamespaces.d.ts +1 -1
  91. package/dist/cli/src/commands/general/commandKubeListNamespaces.js +13 -15
  92. package/dist/cli/src/commands/general/commandKubeListPods.d.ts +6 -6
  93. package/dist/cli/src/commands/general/commandKubeListPods.js +19 -21
  94. package/dist/cli/src/commands/general/commandKubeListSecrets.d.ts +6 -6
  95. package/dist/cli/src/commands/general/commandKubeListSecrets.js +19 -21
  96. package/dist/cli/src/commands/general/commandKubePortForward.d.ts +19 -19
  97. package/dist/cli/src/commands/general/commandKubePortForward.js +29 -37
  98. package/dist/cli/src/commands/general/commandKubeStopPortforward.d.ts +6 -6
  99. package/dist/cli/src/commands/general/commandKubeStopPortforward.js +13 -19
  100. package/dist/cli/src/commands/index.d.ts +5 -1
  101. package/dist/cli/src/commands/index.js +52 -251
  102. package/dist/cli/src/commands/index.js.map +1 -1
  103. package/dist/cli/src/commands/mongodb/commandMongoDestroyMember.d.ts +15 -15
  104. package/dist/cli/src/commands/mongodb/commandMongoDestroyMember.js +76 -73
  105. package/dist/cli/src/commands/mongodb/commandMongoGetShell.d.ts +15 -15
  106. package/dist/cli/src/commands/mongodb/commandMongoGetShell.js +26 -28
  107. package/dist/cli/src/commands/mongodb/commandMongoPortForward.d.ts +20 -20
  108. package/dist/cli/src/commands/mongodb/commandMongoPortForward.js +45 -52
  109. package/dist/cli/src/commands/project/commandCloudSqlProxy.d.ts +12 -12
  110. package/dist/cli/src/commands/project/commandCloudSqlProxy.js +107 -110
  111. package/dist/cli/src/commands/project/commandConfigSecrets.d.ts +13 -8
  112. package/dist/cli/src/commands/project/commandConfigSecrets.js +71 -32
  113. package/dist/cli/src/commands/project/commandConfigSecrets.js.map +1 -1
  114. package/dist/cli/src/commands/project/commandDoctor.d.ts +7 -7
  115. package/dist/cli/src/commands/project/commandDoctor.js +18 -20
  116. package/dist/cli/src/commands/project/commandEnvVars.d.ts +7 -7
  117. package/dist/cli/src/commands/project/commandEnvVars.js +21 -26
  118. package/dist/cli/src/commands/project/commandGetMyTotalWorktime.d.ts +1 -1
  119. package/dist/cli/src/commands/project/commandGetMyTotalWorktime.js +12 -14
  120. package/dist/cli/src/commands/project/commandGitlabCi.d.ts +11 -11
  121. package/dist/cli/src/commands/project/commandGitlabCi.js +82 -91
  122. package/dist/cli/src/commands/project/commandOpenEnv.d.ts +7 -7
  123. package/dist/cli/src/commands/project/commandOpenEnv.js +24 -31
  124. package/dist/cli/src/commands/project/commandOpenGit.d.ts +1 -1
  125. package/dist/cli/src/commands/project/commandOpenGit.js +10 -12
  126. package/dist/cli/src/commands/project/commandOpenLogs.d.ts +7 -7
  127. package/dist/cli/src/commands/project/commandOpenLogs.js +34 -37
  128. package/dist/cli/src/commands/project/commandPortForward.d.ts +24 -24
  129. package/dist/cli/src/commands/project/commandPortForward.js +59 -78
  130. package/dist/cli/src/commands/project/commandProjectRestoreDb.d.ts +18 -18
  131. package/dist/cli/src/commands/project/commandProjectRestoreDb.js +156 -147
  132. package/dist/cli/src/commands/project/commandRenewToken.d.ts +1 -1
  133. package/dist/cli/src/commands/project/commandRenewToken.js +10 -12
  134. package/dist/cli/src/commands/project/commandSecretsClearBackups.d.ts +6 -6
  135. package/dist/cli/src/commands/project/commandSecretsClearBackups.js +17 -19
  136. package/dist/cli/src/commands/project/commandSecretsSyncGithub.d.ts +22 -22
  137. package/dist/cli/src/commands/project/commandSecretsSyncGithub.js +136 -144
  138. package/dist/cli/src/commands/project/commandSecurityEvaluate.d.ts +1 -1
  139. package/dist/cli/src/commands/project/commandSecurityEvaluate.js +17 -20
  140. package/dist/cli/src/commands/project/commandSetup.d.ts +7 -7
  141. package/dist/cli/src/commands/project/commandSetup.js +18 -20
  142. package/dist/cli/src/commands/project/k8s/commandDeletePods.d.ts +12 -12
  143. package/dist/cli/src/commands/project/k8s/commandDeletePods.js +38 -40
  144. package/dist/cli/src/commands/project/k8s/commandDeleteProject.d.ts +7 -7
  145. package/dist/cli/src/commands/project/k8s/commandDeleteProject.js +28 -35
  146. package/dist/cli/src/commands/project/k8s/commandGetShell.d.ts +12 -12
  147. package/dist/cli/src/commands/project/k8s/commandGetShell.js +31 -31
  148. package/dist/cli/src/commands/project/k8s/commandListPods.d.ts +7 -7
  149. package/dist/cli/src/commands/project/k8s/commandListPods.js +21 -23
  150. package/dist/cli/src/commands/project/k8s/commandNamespace.d.ts +7 -7
  151. package/dist/cli/src/commands/project/k8s/commandNamespace.js +19 -21
  152. package/dist/cli/src/commands/project/k8s/commandPauseProject.d.ts +7 -7
  153. package/dist/cli/src/commands/project/k8s/commandPauseProject.js +28 -35
  154. package/dist/cli/src/commands/project/k8s/commandTriggerCronjob.d.ts +22 -22
  155. package/dist/cli/src/commands/project/k8s/commandTriggerCronjob.js +67 -76
  156. package/dist/cli/src/commands/project/secrets/commandSecretsList.d.ts +24 -0
  157. package/dist/cli/src/commands/project/secrets/commandSecretsList.js +64 -0
  158. package/dist/cli/src/commands/project/secrets/commandSecretsList.js.map +1 -0
  159. package/dist/cli/src/commands/project/secrets/commandSecretsPull.d.ts +19 -0
  160. package/dist/cli/src/commands/project/secrets/commandSecretsPull.js +48 -0
  161. package/dist/cli/src/commands/project/secrets/commandSecretsPull.js.map +1 -0
  162. package/dist/cli/src/commands/project/secrets/commandSecretsPush.d.ts +19 -0
  163. package/dist/cli/src/commands/project/secrets/commandSecretsPush.js +74 -0
  164. package/dist/cli/src/commands/project/secrets/commandSecretsPush.js.map +1 -0
  165. package/dist/cli/src/commands/project/secrets/commandSecretsSet.d.ts +24 -0
  166. package/dist/cli/src/commands/project/secrets/commandSecretsSet.js +82 -0
  167. package/dist/cli/src/commands/project/secrets/commandSecretsSet.js.map +1 -0
  168. package/dist/cli/src/commands/project/secrets/document.d.ts +47 -0
  169. package/dist/cli/src/commands/project/secrets/document.js +180 -0
  170. package/dist/cli/src/commands/project/secrets/document.js.map +1 -0
  171. package/dist/cli/src/commands/project/secrets/parseKeysInput.d.ts +2 -0
  172. package/dist/cli/src/commands/project/secrets/parseKeysInput.js +10 -0
  173. package/dist/cli/src/commands/project/secrets/parseKeysInput.js.map +1 -0
  174. package/dist/cli/src/commands/project/secrets/scope.d.ts +35 -0
  175. package/dist/cli/src/commands/project/secrets/scope.js +113 -0
  176. package/dist/cli/src/commands/project/secrets/scope.js.map +1 -0
  177. package/dist/cli/src/commands/security/commandSecurityAuditCiJob.d.ts +26 -26
  178. package/dist/cli/src/commands/security/commandSecurityAuditCiJob.js +62 -73
  179. package/dist/cli/src/commands/security/commandSecurityAuditCreate.d.ts +21 -21
  180. package/dist/cli/src/commands/security/commandSecurityAuditCreate.js +47 -51
  181. package/dist/cli/src/commands/security/commandSecurityAuditEvaluate.d.ts +6 -6
  182. package/dist/cli/src/commands/security/commandSecurityAuditEvaluate.js +22 -29
  183. package/dist/cli/src/completion.d.ts +1 -1
  184. package/dist/cli/src/completion.js +130 -129
  185. package/dist/cli/src/config/getProjectConfig.d.ts +6 -8
  186. package/dist/cli/src/config/getProjectConfig.js +92 -94
  187. package/dist/cli/src/config/parseChoice.d.ts +3 -3
  188. package/dist/cli/src/config/parseChoice.js +6 -11
  189. package/dist/cli/src/core/defineCommand.d.ts +1 -1
  190. package/dist/cli/src/core/defineCommand.js +4 -6
  191. package/dist/cli/src/core/index.d.ts +3 -3
  192. package/dist/cli/src/core/index.js +9 -46
  193. package/dist/cli/src/core/registry.d.ts +1 -1
  194. package/dist/cli/src/core/registry.js +10 -12
  195. package/dist/cli/src/core/runner.d.ts +3 -3
  196. package/dist/cli/src/core/runner.js +8 -10
  197. package/dist/cli/src/core/types.d.ts +70 -70
  198. package/dist/cli/src/core/types.js +14 -15
  199. package/dist/cli/src/gcloud/artifactsRegistry.d.ts +3 -3
  200. package/dist/cli/src/gcloud/artifactsRegistry.js +11 -12
  201. package/dist/cli/src/gcloud/cloudRun/openCloudRunDashboards.d.ts +1 -1
  202. package/dist/cli/src/gcloud/cloudRun/openCloudRunDashboards.js +12 -19
  203. package/dist/cli/src/gcloud/cloudSql/copyDb.d.ts +9 -9
  204. package/dist/cli/src/gcloud/cloudSql/copyDb.js +20 -31
  205. package/dist/cli/src/gcloud/cloudSql/parseConnectionString.d.ts +1 -1
  206. package/dist/cli/src/gcloud/cloudSql/parseConnectionString.js +10 -12
  207. package/dist/cli/src/gcloud/cloudSql/startProxy.d.ts +4 -4
  208. package/dist/cli/src/gcloud/cloudSql/startProxy.js +39 -55
  209. package/dist/cli/src/gcloud/enableServices.d.ts +2 -2
  210. package/dist/cli/src/gcloud/enableServices.js +6 -8
  211. package/dist/cli/src/gcloud/getProjectNumber.d.ts +1 -1
  212. package/dist/cli/src/gcloud/getProjectNumber.js +10 -12
  213. package/dist/cli/src/gcloud/openDashboard.d.ts +1 -1
  214. package/dist/cli/src/gcloud/openDashboard.js +13 -17
  215. package/dist/cli/src/gcloud/serviceAccountNames.d.ts +11 -11
  216. package/dist/cli/src/gcloud/serviceAccountNames.js +27 -34
  217. package/dist/cli/src/gcloud/serviceAccounts.d.ts +6 -6
  218. package/dist/cli/src/gcloud/serviceAccounts.js +37 -46
  219. package/dist/cli/src/git/getGetMainBranch.d.ts +1 -1
  220. package/dist/cli/src/git/getGetMainBranch.js +5 -9
  221. package/dist/cli/src/git/gitConfig.d.ts +6 -11
  222. package/dist/cli/src/git/gitConfig.js +11 -17
  223. package/dist/cli/src/git/gitProjectInformation.d.ts +6 -6
  224. package/dist/cli/src/git/gitProjectInformation.js +20 -30
  225. package/dist/cli/src/git/index.d.ts +1 -1
  226. package/dist/cli/src/git/index.js +16 -23
  227. package/dist/cli/src/index.d.ts +1 -1
  228. package/dist/cli/src/index.js +2 -4
  229. package/dist/cli/src/k8sApi/index.d.ts +1 -1
  230. package/dist/cli/src/k8sApi/index.js +12 -14
  231. package/dist/cli/src/kubernetes/index.d.ts +1 -1
  232. package/dist/cli/src/kubernetes/index.js +17 -24
  233. package/dist/cli/src/kubernetes/openKubernetesDashboards.d.ts +1 -1
  234. package/dist/cli/src/kubernetes/openKubernetesDashboards.js +33 -35
  235. package/dist/cli/src/kubernetes/portForward.d.ts +1 -1
  236. package/dist/cli/src/kubernetes/portForward.js +5 -7
  237. package/dist/cli/src/packageInfos.d.ts +1 -1
  238. package/dist/cli/src/packageInfos.js +3 -5
  239. package/dist/cli/src/release/changesets.d.ts +4 -4
  240. package/dist/cli/src/release/changesets.js +68 -60
  241. package/dist/cli/src/release/changesetsReleaseJob.d.ts +1 -1
  242. package/dist/cli/src/release/changesetsReleaseJob.js +99 -99
  243. package/dist/cli/src/scripts/generateCliSkillReference.d.ts +1 -1
  244. package/dist/cli/src/scripts/generateCliSkillReference.js +85 -62
  245. package/dist/cli/src/security/auditDocument.d.ts +16 -16
  246. package/dist/cli/src/security/auditDocument.js +65 -54
  247. package/dist/cli/src/security/createSecurityAuditMergeRequest.d.ts +6 -11
  248. package/dist/cli/src/security/createSecurityAuditMergeRequest.js +43 -43
  249. package/dist/cli/src/security/evaluateSecurityAudit.d.ts +3 -5
  250. package/dist/cli/src/security/evaluateSecurityAudit.js +12 -16
  251. package/dist/cli/src/store/updateCatladderStore.d.ts +4 -4
  252. package/dist/cli/src/store/updateCatladderStore.js +12 -16
  253. package/dist/cli/src/types/types.d.ts +13 -13
  254. package/dist/cli/src/types/types.js +2 -4
  255. package/dist/cli/src/utils/boxWithAscii.d.ts +1 -1
  256. package/dist/cli/src/utils/boxWithAscii.js +10 -12
  257. package/dist/cli/src/utils/cluster.d.ts +1 -1
  258. package/dist/cli/src/utils/cluster.js +6 -8
  259. package/dist/cli/src/utils/concurrency.d.ts +1 -1
  260. package/dist/cli/src/utils/concurrency.js +13 -17
  261. package/dist/cli/src/utils/editAsFile.d.ts +1 -1
  262. package/dist/cli/src/utils/editAsFile.js +17 -25
  263. package/dist/cli/src/utils/files.d.ts +1 -1
  264. package/dist/cli/src/utils/files.js +12 -15
  265. package/dist/cli/src/utils/getEditor.d.ts +2 -2
  266. package/dist/cli/src/utils/getEditor.js +14 -20
  267. package/dist/cli/src/utils/github.d.ts +1 -1
  268. package/dist/cli/src/utils/github.js +60 -47
  269. package/dist/cli/src/utils/gitlab.d.ts +9 -9
  270. package/dist/cli/src/utils/gitlab.js +173 -189
  271. package/dist/cli/src/utils/log.d.ts +2 -2
  272. package/dist/cli/src/utils/log.js +16 -18
  273. package/dist/cli/src/utils/portForwards.d.ts +5 -5
  274. package/dist/cli/src/utils/portForwards.js +31 -32
  275. package/dist/cli/src/utils/preferences.d.ts +1 -1
  276. package/dist/cli/src/utils/preferences.js +36 -43
  277. package/dist/cli/src/utils/projects/index.d.ts +1 -1
  278. package/dist/cli/src/utils/projects/index.js +21 -24
  279. package/dist/cli/src/utils/promise.d.ts +1 -1
  280. package/dist/cli/src/utils/promise.js +6 -8
  281. package/dist/cli/src/utils/readStdin.d.ts +2 -0
  282. package/dist/cli/src/utils/readStdin.js +13 -0
  283. package/dist/cli/src/utils/readStdin.js.map +1 -0
  284. package/dist/cli/src/utils/shell.d.ts +1 -1
  285. package/dist/cli/src/utils/shell.js +19 -20
  286. package/dist/cli/src/vault/BitwardenVault.d.ts +20 -20
  287. package/dist/cli/src/vault/BitwardenVault.js +98 -84
  288. package/dist/cli/src/vault/GitlabVault.d.ts +4 -4
  289. package/dist/cli/src/vault/GitlabVault.js +13 -15
  290. package/dist/cli/src/vault/VaultManager.d.ts +32 -32
  291. package/dist/cli/src/vault/VaultManager.js +104 -98
  292. package/dist/cli/src/vault/bw.d.ts +3 -5
  293. package/dist/cli/src/vault/bw.js +54 -61
  294. package/dist/cli/src/vault/cache.d.ts +9 -9
  295. package/dist/cli/src/vault/cache.js +27 -33
  296. package/dist/cli/src/vault/index.d.ts +1 -1
  297. package/dist/cli/src/vault/index.js +18 -40
  298. package/dist/cli/src/vault/types.d.ts +16 -16
  299. package/dist/cli/src/vault/types.js +2 -4
  300. package/dist/pipeline/src/agentSkills/generateAgentSkills.d.ts +1 -1
  301. package/dist/pipeline/src/agentSkills/generateAgentSkills.js +47 -43
  302. package/dist/pipeline/src/agentSkills/index.d.ts +1 -1
  303. package/dist/pipeline/src/agentSkills/index.js +16 -23
  304. package/dist/pipeline/src/agentSkills/shippedSkills.d.ts +8 -8
  305. package/dist/pipeline/src/agentSkills/shippedSkills.js +38 -35
  306. package/dist/pipeline/src/agentSkills/types.d.ts +8 -8
  307. package/dist/pipeline/src/agentSkills/types.js +13 -14
  308. package/dist/pipeline/src/backends/github/GithubBackend.d.ts +9 -9
  309. package/dist/pipeline/src/backends/github/GithubBackend.js +253 -276
  310. package/dist/pipeline/src/backends/github/GithubBackend.js.map +1 -1
  311. package/dist/pipeline/src/backends/github/ciVariables.d.ts +1 -1
  312. package/dist/pipeline/src/backends/github/ciVariables.js +15 -17
  313. package/dist/pipeline/src/backends/github/createGithubJobs.d.ts +3 -3
  314. package/dist/pipeline/src/backends/github/createGithubJobs.js +316 -264
  315. package/dist/pipeline/src/backends/github/githubReleaseJobs.d.ts +3 -3
  316. package/dist/pipeline/src/backends/github/githubReleaseJobs.js +64 -71
  317. package/dist/pipeline/src/backends/github/index.d.ts +1 -1
  318. package/dist/pipeline/src/backends/github/index.js +16 -23
  319. package/dist/pipeline/src/backends/github/scriptFiles.d.ts +8 -8
  320. package/dist/pipeline/src/backends/github/scriptFiles.js +27 -29
  321. package/dist/pipeline/src/backends/github/scriptFunctions.d.ts +1 -1
  322. package/dist/pipeline/src/backends/github/scriptFunctions.js +10 -10
  323. package/dist/pipeline/src/backends/gitlab/GitlabBackend.d.ts +13 -13
  324. package/dist/pipeline/src/backends/gitlab/GitlabBackend.js +163 -178
  325. package/dist/pipeline/src/backends/gitlab/GitlabBackend.js.map +1 -1
  326. package/dist/pipeline/src/backends/gitlab/cache.d.ts +5 -5
  327. package/dist/pipeline/src/backends/gitlab/cache.js +24 -26
  328. package/dist/pipeline/src/backends/gitlab/ciVariables.d.ts +1 -1
  329. package/dist/pipeline/src/backends/gitlab/ciVariables.js +9 -11
  330. package/dist/pipeline/src/backends/gitlab/createGitlabJobs.d.ts +4 -4
  331. package/dist/pipeline/src/backends/gitlab/createGitlabJobs.js +277 -289
  332. package/dist/pipeline/src/backends/gitlab/createGitlabJobs.js.map +1 -1
  333. package/dist/pipeline/src/backends/gitlab/createGitlabPipeline.d.ts +2 -7
  334. package/dist/pipeline/src/backends/gitlab/createGitlabPipeline.js +66 -65
  335. package/dist/pipeline/src/backends/gitlab/createGitlabPipeline.js.map +1 -1
  336. package/dist/pipeline/src/backends/gitlab/getPipelineStages.d.ts +1 -1
  337. package/dist/pipeline/src/backends/gitlab/getPipelineStages.js +10 -8
  338. package/dist/pipeline/src/backends/gitlab/gitlabReleaseJobs.d.ts +34 -34
  339. package/dist/pipeline/src/backends/gitlab/gitlabReleaseJobs.js +55 -45
  340. package/dist/pipeline/src/backends/gitlab/index.d.ts +1 -1
  341. package/dist/pipeline/src/backends/gitlab/index.js +16 -23
  342. package/dist/pipeline/src/backends/gitlab/sortGitLabJobDefProps.d.ts +1 -1
  343. package/dist/pipeline/src/backends/gitlab/sortGitLabJobDefProps.js +40 -10
  344. package/dist/pipeline/src/backends/index.d.ts +1 -1
  345. package/dist/pipeline/src/backends/index.js +41 -56
  346. package/dist/pipeline/src/backends/types.d.ts +19 -19
  347. package/dist/pipeline/src/backends/types.js +2 -4
  348. package/dist/pipeline/src/bash/BashExpression.d.ts +18 -18
  349. package/dist/pipeline/src/bash/BashExpression.js +45 -44
  350. package/dist/pipeline/src/bash/bashEscape.d.ts +4 -6
  351. package/dist/pipeline/src/bash/bashEscape.js +77 -67
  352. package/dist/pipeline/src/bash/bashExpressionPerPipelineType.d.ts +5 -3
  353. package/dist/pipeline/src/bash/bashExpressionPerPipelineType.js +6 -7
  354. package/dist/pipeline/src/bash/bashYaml.d.ts +1 -1
  355. package/dist/pipeline/src/bash/bashYaml.js +46 -41
  356. package/dist/pipeline/src/bash/ciVariables.d.ts +2 -2
  357. package/dist/pipeline/src/bash/ciVariables.js +10 -12
  358. package/dist/pipeline/src/bash/getInjectVarsScript.d.ts +1 -1
  359. package/dist/pipeline/src/bash/getInjectVarsScript.js +14 -11
  360. package/dist/pipeline/src/bash/index.d.ts +1 -1
  361. package/dist/pipeline/src/bash/index.js +16 -23
  362. package/dist/pipeline/src/build/artifacts/createBuildJobArtifact.d.ts +1 -1
  363. package/dist/pipeline/src/build/artifacts/createBuildJobArtifact.js +49 -41
  364. package/dist/pipeline/src/build/base/constants.d.ts +4 -4
  365. package/dist/pipeline/src/build/base/constants.js +6 -8
  366. package/dist/pipeline/src/build/base/createAppBuildJob.d.ts +3 -3
  367. package/dist/pipeline/src/build/base/createAppBuildJob.js +53 -47
  368. package/dist/pipeline/src/build/base/createArtifactsConfig.d.ts +1 -1
  369. package/dist/pipeline/src/build/base/createArtifactsConfig.js +25 -16
  370. package/dist/pipeline/src/build/base/createBuildJobDefinition.d.ts +3 -3
  371. package/dist/pipeline/src/build/base/createBuildJobDefinition.js +22 -16
  372. package/dist/pipeline/src/build/base/index.d.ts +4 -4
  373. package/dist/pipeline/src/build/base/index.js +34 -15
  374. package/dist/pipeline/src/build/base/writeBuildInfo.d.ts +1 -1
  375. package/dist/pipeline/src/build/base/writeBuildInfo.js +7 -7
  376. package/dist/pipeline/src/build/base/writeDotEnv.d.ts +1 -1
  377. package/dist/pipeline/src/build/base/writeDotEnv.js +21 -19
  378. package/dist/pipeline/src/build/cache/createJobCache.d.ts +1 -1
  379. package/dist/pipeline/src/build/cache/createJobCache.js +55 -58
  380. package/dist/pipeline/src/build/cache/getAllCacheConfigsFromConfig.d.ts +1 -1
  381. package/dist/pipeline/src/build/cache/getAllCacheConfigsFromConfig.js +23 -16
  382. package/dist/pipeline/src/build/cache/transformLegacyJobCache.d.ts +1 -1
  383. package/dist/pipeline/src/build/cache/transformLegacyJobCache.js +12 -14
  384. package/dist/pipeline/src/build/custom/buildJob.d.ts +1 -1
  385. package/dist/pipeline/src/build/custom/buildJob.js +16 -16
  386. package/dist/pipeline/src/build/custom/index.d.ts +1 -1
  387. package/dist/pipeline/src/build/custom/index.js +8 -7
  388. package/dist/pipeline/src/build/custom/testJob.d.ts +2 -2
  389. package/dist/pipeline/src/build/custom/testJob.js +71 -67
  390. package/dist/pipeline/src/build/docker.d.ts +45 -51
  391. package/dist/pipeline/src/build/docker.js +139 -116
  392. package/dist/pipeline/src/build/index.d.ts +17 -13
  393. package/dist/pipeline/src/build/index.js +73 -80
  394. package/dist/pipeline/src/build/node/buildJob.d.ts +1 -1
  395. package/dist/pipeline/src/build/node/buildJob.js +45 -35
  396. package/dist/pipeline/src/build/node/cache.d.ts +1 -1
  397. package/dist/pipeline/src/build/node/cache.js +79 -52
  398. package/dist/pipeline/src/build/node/constants.d.ts +4 -4
  399. package/dist/pipeline/src/build/node/constants.js +6 -8
  400. package/dist/pipeline/src/build/node/index.d.ts +1 -1
  401. package/dist/pipeline/src/build/node/index.js +17 -13
  402. package/dist/pipeline/src/build/node/meteor.d.ts +1 -1
  403. package/dist/pipeline/src/build/node/meteor.js +59 -40
  404. package/dist/pipeline/src/build/node/testJob.d.ts +1 -1
  405. package/dist/pipeline/src/build/node/testJob.js +100 -75
  406. package/dist/pipeline/src/build/node/yarn.d.ts +2 -2
  407. package/dist/pipeline/src/build/node/yarn.js +51 -33
  408. package/dist/pipeline/src/build/rails/build.d.ts +1 -1
  409. package/dist/pipeline/src/build/rails/build.js +44 -37
  410. package/dist/pipeline/src/build/rails/index.d.ts +1 -1
  411. package/dist/pipeline/src/build/rails/index.js +8 -7
  412. package/dist/pipeline/src/build/rails/testJob.d.ts +1 -1
  413. package/dist/pipeline/src/build/rails/testJob.js +101 -71
  414. package/dist/pipeline/src/build/types.d.ts +324 -324
  415. package/dist/pipeline/src/build/types.js +10 -10
  416. package/dist/pipeline/src/catci/shippedCatci.d.ts +3 -3
  417. package/dist/pipeline/src/catci/shippedCatci.js +22 -21
  418. package/dist/pipeline/src/catenv/index.d.ts +3 -3
  419. package/dist/pipeline/src/catenv/index.js +8 -10
  420. package/dist/pipeline/src/config/configruedEnvs.d.ts +1 -1
  421. package/dist/pipeline/src/config/configruedEnvs.js +23 -18
  422. package/dist/pipeline/src/config/index.d.ts +1 -1
  423. package/dist/pipeline/src/config/index.js +16 -23
  424. package/dist/pipeline/src/config/readConfig.d.ts +4 -4
  425. package/dist/pipeline/src/config/readConfig.js +37 -42
  426. package/dist/pipeline/src/context/createAllComponentsContext.d.ts +4 -8
  427. package/dist/pipeline/src/context/createAllComponentsContext.js +16 -22
  428. package/dist/pipeline/src/context/createComponentContext.d.ts +6 -6
  429. package/dist/pipeline/src/context/createComponentContext.js +96 -87
  430. package/dist/pipeline/src/context/createWorkspaceContext.d.ts +8 -15
  431. package/dist/pipeline/src/context/createWorkspaceContext.js +28 -37
  432. package/dist/pipeline/src/context/getBuildInfoVariables.d.ts +2 -2
  433. package/dist/pipeline/src/context/getBuildInfoVariables.js +21 -22
  434. package/dist/pipeline/src/context/getEnvConfig.d.ts +1 -1
  435. package/dist/pipeline/src/context/getEnvConfig.js +28 -29
  436. package/dist/pipeline/src/context/getEnvType.d.ts +2 -2
  437. package/dist/pipeline/src/context/getEnvType.js +9 -10
  438. package/dist/pipeline/src/context/getEnvironment.d.ts +1 -1
  439. package/dist/pipeline/src/context/getEnvironment.js +16 -20
  440. package/dist/pipeline/src/context/getEnvironmentContext.d.ts +1 -6
  441. package/dist/pipeline/src/context/getEnvironmentContext.js +28 -35
  442. package/dist/pipeline/src/context/getEnvironmentVariables.d.ts +19 -19
  443. package/dist/pipeline/src/context/getEnvironmentVariables.js +95 -102
  444. package/dist/pipeline/src/context/getLabels.d.ts +7 -7
  445. package/dist/pipeline/src/context/getLabels.js +25 -26
  446. package/dist/pipeline/src/context/getReviewSlug.d.ts +1 -1
  447. package/dist/pipeline/src/context/getReviewSlug.js +12 -14
  448. package/dist/pipeline/src/context/index.d.ts +1 -1
  449. package/dist/pipeline/src/context/index.js +16 -23
  450. package/dist/pipeline/src/context/transformJobOnlyVars.d.ts +3 -3
  451. package/dist/pipeline/src/context/transformJobOnlyVars.js +21 -21
  452. package/dist/pipeline/src/context/utils/envVars.d.ts +3 -3
  453. package/dist/pipeline/src/context/utils/envVars.js +20 -26
  454. package/dist/pipeline/src/customImages/hash.d.ts +7 -7
  455. package/dist/pipeline/src/customImages/hash.js +53 -59
  456. package/dist/pipeline/src/customImages/jobImagesPlan.d.ts +44 -46
  457. package/dist/pipeline/src/customImages/jobImagesPlan.js +131 -145
  458. package/dist/pipeline/src/customImages/jobImagesPlan.js.map +1 -1
  459. package/dist/pipeline/src/customImages/shippedImages.d.ts +1 -10
  460. package/dist/pipeline/src/customImages/shippedImages.js +28 -38
  461. package/dist/pipeline/src/customImages/shippedImages.js.map +1 -1
  462. package/dist/pipeline/src/defaults/index.d.ts +1 -1
  463. package/dist/pipeline/src/defaults/index.js +4 -6
  464. package/dist/pipeline/src/deploy/base/deploy.d.ts +2 -2
  465. package/dist/pipeline/src/deploy/base/deploy.js +113 -92
  466. package/dist/pipeline/src/deploy/base/index.d.ts +4 -4
  467. package/dist/pipeline/src/deploy/base/index.js +10 -6
  468. package/dist/pipeline/src/deploy/base/rollback.d.ts +2 -2
  469. package/dist/pipeline/src/deploy/base/rollback.js +27 -31
  470. package/dist/pipeline/src/deploy/base/stop.d.ts +2 -2
  471. package/dist/pipeline/src/deploy/base/stop.js +26 -31
  472. package/dist/pipeline/src/deploy/base/variables.d.ts +4 -4
  473. package/dist/pipeline/src/deploy/base/variables.js +6 -8
  474. package/dist/pipeline/src/deploy/cloudRun/artifactsRegistry.d.ts +1 -1
  475. package/dist/pipeline/src/deploy/cloudRun/artifactsRegistry.js +67 -55
  476. package/dist/pipeline/src/deploy/cloudRun/cleanup.d.ts +1 -1
  477. package/dist/pipeline/src/deploy/cloudRun/cleanup.js +17 -16
  478. package/dist/pipeline/src/deploy/cloudRun/cloudRunRevisions.d.ts +1 -1
  479. package/dist/pipeline/src/deploy/cloudRun/cloudRunRevisions.js +41 -44
  480. package/dist/pipeline/src/deploy/cloudRun/createJobs/cloudRunJobs.d.ts +4 -4
  481. package/dist/pipeline/src/deploy/cloudRun/createJobs/cloudRunJobs.js +63 -58
  482. package/dist/pipeline/src/deploy/cloudRun/createJobs/cloudRunServices.d.ts +1 -1
  483. package/dist/pipeline/src/deploy/cloudRun/createJobs/cloudRunServices.js +73 -63
  484. package/dist/pipeline/src/deploy/cloudRun/createJobs/cloudRunWorkerPools.d.ts +1 -1
  485. package/dist/pipeline/src/deploy/cloudRun/createJobs/cloudRunWorkerPools.js +38 -38
  486. package/dist/pipeline/src/deploy/cloudRun/createJobs/common.d.ts +7 -7
  487. package/dist/pipeline/src/deploy/cloudRun/createJobs/common.js +37 -35
  488. package/dist/pipeline/src/deploy/cloudRun/createJobs/constants.d.ts +1 -1
  489. package/dist/pipeline/src/deploy/cloudRun/createJobs/constants.js +3 -5
  490. package/dist/pipeline/src/deploy/cloudRun/createJobs/execute/onDeploy.d.ts +1 -1
  491. package/dist/pipeline/src/deploy/cloudRun/createJobs/execute/onDeploy.js +67 -57
  492. package/dist/pipeline/src/deploy/cloudRun/createJobs/execute/schedules.d.ts +1 -1
  493. package/dist/pipeline/src/deploy/cloudRun/createJobs/execute/schedules.js +139 -130
  494. package/dist/pipeline/src/deploy/cloudRun/createJobs/getCloudRunDeployScripts.d.ts +1 -1
  495. package/dist/pipeline/src/deploy/cloudRun/createJobs/getCloudRunDeployScripts.js +29 -10
  496. package/dist/pipeline/src/deploy/cloudRun/createJobs/getCloudRunStopScripts.d.ts +1 -1
  497. package/dist/pipeline/src/deploy/cloudRun/createJobs/getCloudRunStopScripts.js +23 -9
  498. package/dist/pipeline/src/deploy/cloudRun/createJobs/healthCheck.d.ts +3 -3
  499. package/dist/pipeline/src/deploy/cloudRun/createJobs/healthCheck.js +39 -36
  500. package/dist/pipeline/src/deploy/cloudRun/createJobs/index.d.ts +1 -1
  501. package/dist/pipeline/src/deploy/cloudRun/createJobs/index.js +37 -36
  502. package/dist/pipeline/src/deploy/cloudRun/createJobs/volumes.d.ts +1 -1
  503. package/dist/pipeline/src/deploy/cloudRun/createJobs/volumes.js +13 -19
  504. package/dist/pipeline/src/deploy/cloudRun/index.d.ts +1 -1
  505. package/dist/pipeline/src/deploy/cloudRun/index.js +100 -91
  506. package/dist/pipeline/src/deploy/cloudRun/utils/cloudRunExecutionUrl.d.ts +5 -9
  507. package/dist/pipeline/src/deploy/cloudRun/utils/cloudRunExecutionUrl.js +7 -13
  508. package/dist/pipeline/src/deploy/cloudRun/utils/createArgsString.d.ts +1 -1
  509. package/dist/pipeline/src/deploy/cloudRun/utils/createArgsString.js +17 -13
  510. package/dist/pipeline/src/deploy/cloudRun/utils/database.d.ts +5 -5
  511. package/dist/pipeline/src/deploy/cloudRun/utils/database.js +82 -49
  512. package/dist/pipeline/src/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.d.ts +1 -1
  513. package/dist/pipeline/src/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.js +6 -6
  514. package/dist/pipeline/src/deploy/cloudRun/utils/getJobOrServiceArgs.d.ts +1 -1
  515. package/dist/pipeline/src/deploy/cloudRun/utils/getJobOrServiceArgs.js +9 -7
  516. package/dist/pipeline/src/deploy/cloudRun/utils/getServiceName.d.ts +1 -1
  517. package/dist/pipeline/src/deploy/cloudRun/utils/getServiceName.js +5 -7
  518. package/dist/pipeline/src/deploy/cloudRun/utils/jobName.d.ts +1 -1
  519. package/dist/pipeline/src/deploy/cloudRun/utils/jobName.js +3 -5
  520. package/dist/pipeline/src/deploy/cloudRun/utils/removeFirstLinesFromCommandOutput.d.ts +1 -1
  521. package/dist/pipeline/src/deploy/cloudRun/utils/removeFirstLinesFromCommandOutput.js +4 -6
  522. package/dist/pipeline/src/deploy/cloudSql/utils.d.ts +1 -1
  523. package/dist/pipeline/src/deploy/cloudSql/utils.js +9 -7
  524. package/dist/pipeline/src/deploy/custom/deployJob.d.ts +1 -1
  525. package/dist/pipeline/src/deploy/custom/deployJob.js +34 -30
  526. package/dist/pipeline/src/deploy/custom/index.d.ts +1 -1
  527. package/dist/pipeline/src/deploy/custom/index.js +7 -9
  528. package/dist/pipeline/src/deploy/dockerTag/deployJob.d.ts +1 -1
  529. package/dist/pipeline/src/deploy/dockerTag/deployJob.js +22 -18
  530. package/dist/pipeline/src/deploy/dockerTag/index.d.ts +1 -1
  531. package/dist/pipeline/src/deploy/dockerTag/index.js +7 -9
  532. package/dist/pipeline/src/deploy/index.d.ts +13 -11
  533. package/dist/pipeline/src/deploy/index.js +20 -27
  534. package/dist/pipeline/src/deploy/kubernetes/additionalSecretKeys.d.ts +3 -5
  535. package/dist/pipeline/src/deploy/kubernetes/additionalSecretKeys.js +19 -25
  536. package/dist/pipeline/src/deploy/kubernetes/cloudSql/index.d.ts +7 -7
  537. package/dist/pipeline/src/deploy/kubernetes/cloudSql/index.js +35 -36
  538. package/dist/pipeline/src/deploy/kubernetes/deployJob.d.ts +1 -1
  539. package/dist/pipeline/src/deploy/kubernetes/deployJob.js +61 -46
  540. package/dist/pipeline/src/deploy/kubernetes/index.d.ts +1 -1
  541. package/dist/pipeline/src/deploy/kubernetes/index.js +45 -54
  542. package/dist/pipeline/src/deploy/kubernetes/kubeEnv.d.ts +3 -3
  543. package/dist/pipeline/src/deploy/kubernetes/kubeEnv.js +34 -35
  544. package/dist/pipeline/src/deploy/kubernetes/kubeValues.d.ts +84 -84
  545. package/dist/pipeline/src/deploy/kubernetes/kubeValues.js +63 -70
  546. package/dist/pipeline/src/deploy/kubernetes/mongodb.d.ts +28 -28
  547. package/dist/pipeline/src/deploy/kubernetes/mongodb.js +93 -88
  548. package/dist/pipeline/src/deploy/types/base.d.ts +27 -27
  549. package/dist/pipeline/src/deploy/types/base.js +2 -4
  550. package/dist/pipeline/src/deploy/types/custom.d.ts +25 -25
  551. package/dist/pipeline/src/deploy/types/custom.js +2 -4
  552. package/dist/pipeline/src/deploy/types/dockerTag.d.ts +10 -10
  553. package/dist/pipeline/src/deploy/types/dockerTag.js +2 -4
  554. package/dist/pipeline/src/deploy/types/executeBase.d.ts +15 -15
  555. package/dist/pipeline/src/deploy/types/executeBase.js +2 -4
  556. package/dist/pipeline/src/deploy/types/googleCloudRun.d.ts +439 -439
  557. package/dist/pipeline/src/deploy/types/googleCloudRun.js +14 -16
  558. package/dist/pipeline/src/deploy/types/index.d.ts +6 -6
  559. package/dist/pipeline/src/deploy/types/index.js +21 -27
  560. package/dist/pipeline/src/deploy/types/kubernetes.d.ts +255 -255
  561. package/dist/pipeline/src/deploy/types/kubernetes.js +2 -4
  562. package/dist/pipeline/src/deploy/utils.d.ts +1 -1
  563. package/dist/pipeline/src/deploy/utils.js +21 -23
  564. package/dist/pipeline/src/globalScriptFunctions/index.d.ts +6 -6
  565. package/dist/pipeline/src/globalScriptFunctions/index.js +19 -21
  566. package/dist/pipeline/src/index.d.ts +1 -1
  567. package/dist/pipeline/src/index.js +16 -23
  568. package/dist/pipeline/src/pipeline/agent/createAgentContext.d.ts +19 -19
  569. package/dist/pipeline/src/pipeline/agent/createAgentContext.js +37 -41
  570. package/dist/pipeline/src/pipeline/agent/createAgentEventJob.d.ts +2 -2
  571. package/dist/pipeline/src/pipeline/agent/createAgentEventJob.js +27 -26
  572. package/dist/pipeline/src/pipeline/agent/createAgentReviewJob.d.ts +2 -2
  573. package/dist/pipeline/src/pipeline/agent/createAgentReviewJob.js +43 -35
  574. package/dist/pipeline/src/pipeline/agent/createJobsForAgentContext.d.ts +1 -1
  575. package/dist/pipeline/src/pipeline/agent/createJobsForAgentContext.js +5 -7
  576. package/dist/pipeline/src/pipeline/agent/prompts.d.ts +2 -2
  577. package/dist/pipeline/src/pipeline/agent/prompts.js +14 -32
  578. package/dist/pipeline/src/pipeline/agent/shared.d.ts +4 -6
  579. package/dist/pipeline/src/pipeline/agent/shared.js +34 -36
  580. package/dist/pipeline/src/pipeline/agent/utils.d.ts +1 -1
  581. package/dist/pipeline/src/pipeline/agent/utils.js +9 -11
  582. package/dist/pipeline/src/pipeline/createAllJobs.d.ts +13 -17
  583. package/dist/pipeline/src/pipeline/createAllJobs.js +44 -56
  584. package/dist/pipeline/src/pipeline/createJobsForComponent.d.ts +1 -1
  585. package/dist/pipeline/src/pipeline/createJobsForComponent.js +30 -27
  586. package/dist/pipeline/src/pipeline/createJobsForWorkspace.d.ts +1 -1
  587. package/dist/pipeline/src/pipeline/createJobsForWorkspace.js +6 -8
  588. package/dist/pipeline/src/pipeline/generatePipelineFiles.d.ts +1 -1
  589. package/dist/pipeline/src/pipeline/generatePipelineFiles.js +35 -45
  590. package/dist/pipeline/src/pipeline/index.d.ts +1 -1
  591. package/dist/pipeline/src/pipeline/index.js +16 -23
  592. package/dist/pipeline/src/pipeline/packageManager.d.ts +1 -1
  593. package/dist/pipeline/src/pipeline/packageManager.js +59 -47
  594. package/dist/pipeline/src/pipeline/resolveRequirements.d.ts +1 -1
  595. package/dist/pipeline/src/pipeline/resolveRequirements.js +63 -66
  596. package/dist/pipeline/src/release/index.d.ts +11 -11
  597. package/dist/pipeline/src/release/index.js +12 -17
  598. package/dist/pipeline/src/rules/index.d.ts +1 -1
  599. package/dist/pipeline/src/rules/index.js +15 -15
  600. package/dist/pipeline/src/runner/index.d.ts +5 -10
  601. package/dist/pipeline/src/runner/index.js +9 -14
  602. package/dist/pipeline/src/runner/index.js.map +1 -1
  603. package/dist/pipeline/src/store/index.d.ts +5 -5
  604. package/dist/pipeline/src/store/index.js +31 -31
  605. package/dist/pipeline/src/types/agent.d.ts +15 -15
  606. package/dist/pipeline/src/types/agent.js +2 -4
  607. package/dist/pipeline/src/types/config.d.ts +244 -248
  608. package/dist/pipeline/src/types/config.js +28 -24
  609. package/dist/pipeline/src/types/context.d.ts +104 -104
  610. package/dist/pipeline/src/types/context.js +7 -9
  611. package/dist/pipeline/src/types/environmentContext.d.ts +25 -25
  612. package/dist/pipeline/src/types/environmentContext.js +2 -4
  613. package/dist/pipeline/src/types/github-types.d.ts +41 -41
  614. package/dist/pipeline/src/types/github-types.js +2 -4
  615. package/dist/pipeline/src/types/gitlab-ci-yml.d.ts +497 -497
  616. package/dist/pipeline/src/types/gitlab-ci-yml.js +2 -4
  617. package/dist/pipeline/src/types/gitlab-types.d.ts +15 -15
  618. package/dist/pipeline/src/types/gitlab-types.js +2 -4
  619. package/dist/pipeline/src/types/hooks.d.ts +26 -26
  620. package/dist/pipeline/src/types/hooks.js +2 -4
  621. package/dist/pipeline/src/types/index.d.ts +1 -1
  622. package/dist/pipeline/src/types/index.js +16 -23
  623. package/dist/pipeline/src/types/jobDefinition.d.ts +3 -3
  624. package/dist/pipeline/src/types/jobDefinition.js +2 -4
  625. package/dist/pipeline/src/types/jobs.d.ts +172 -171
  626. package/dist/pipeline/src/types/jobs.js +28 -15
  627. package/dist/pipeline/src/types/pipeline.d.ts +1 -1
  628. package/dist/pipeline/src/types/pipeline.js +2 -4
  629. package/dist/pipeline/src/types/release.d.ts +11 -11
  630. package/dist/pipeline/src/types/release.js +2 -4
  631. package/dist/pipeline/src/types/utils.d.ts +3 -1
  632. package/dist/pipeline/src/types/utils.js +2 -4
  633. package/dist/pipeline/src/utils/gitlab.d.ts +7 -7
  634. package/dist/pipeline/src/utils/gitlab.js +15 -12
  635. package/dist/pipeline/src/utils/index.d.ts +1 -1
  636. package/dist/pipeline/src/utils/index.js +9 -12
  637. package/dist/pipeline/src/utils/jsonParse.d.ts +1 -1
  638. package/dist/pipeline/src/utils/jsonParse.js +10 -11
  639. package/dist/pipeline/src/utils/measureTime.d.ts +4 -4
  640. package/dist/pipeline/src/utils/measureTime.js +34 -39
  641. package/dist/pipeline/src/utils/removeUndefined.d.ts +1 -1
  642. package/dist/pipeline/src/utils/removeUndefined.js +4 -6
  643. package/dist/pipeline/src/utils/writeFiles.d.ts +16 -16
  644. package/dist/pipeline/src/utils/writeFiles.js +67 -61
  645. package/dist/pipeline/src/variables/VariableValue.d.ts +1 -1
  646. package/dist/pipeline/src/variables/VariableValue.js +2 -4
  647. package/dist/pipeline/src/variables/VariableValueContainingReferences.d.ts +12 -12
  648. package/dist/pipeline/src/variables/VariableValueContainingReferences.js +51 -45
  649. package/dist/pipeline/src/variables/resolveAllReferences.d.ts +1 -1
  650. package/dist/pipeline/src/variables/resolveAllReferences.js +18 -17
  651. package/dist/pipeline/src/variables/resolveAllReferencesOnce.d.ts +2 -2
  652. package/dist/pipeline/src/variables/resolveAllReferencesOnce.js +17 -14
  653. package/dist/pipeline/src/variables/resolveReferencesOnce.d.ts +3 -3
  654. package/dist/pipeline/src/variables/resolveReferencesOnce.js +16 -17
  655. package/dist/pipeline/src/verify/createVerifyJobs.d.ts +1 -1
  656. package/dist/pipeline/src/verify/createVerifyJobs.js +62 -55
  657. package/dist/pipeline/src/verify/index.d.ts +1 -1
  658. package/dist/pipeline/src/verify/index.js +16 -23
  659. package/dist/pipeline/src/verify/types.d.ts +11 -11
  660. package/dist/pipeline/src/verify/types.js +2 -4
  661. package/dist/skills/catladder-cli/references/commands.md +37 -2
  662. package/dist/skills/catladder-pipelines/SKILL.md +6 -6
  663. package/dist/skills/catladder-secrets/SKILL.md +42 -9
  664. package/dist/tsconfig.tsbuildinfo +1 -1
  665. package/package.json +2 -7
  666. package/src/commands/index.ts +4 -0
  667. package/src/commands/project/commandConfigSecrets.ts +76 -15
  668. package/src/commands/project/secrets/__tests__/document.test.ts +122 -0
  669. package/src/commands/project/secrets/commandSecretsList.ts +75 -0
  670. package/src/commands/project/secrets/commandSecretsPull.ts +55 -0
  671. package/src/commands/project/secrets/commandSecretsPush.ts +100 -0
  672. package/src/commands/project/secrets/commandSecretsSet.ts +102 -0
  673. package/src/commands/project/secrets/document.ts +269 -0
  674. package/src/commands/project/secrets/parseKeysInput.ts +8 -0
  675. package/src/commands/project/secrets/scope.ts +151 -0
  676. package/src/utils/readStdin.ts +8 -0
  677. package/babel-inline.json +0 -11
  678. package/dist/bundles/runner-images/semantic-release-central.Dockerfile +0 -36
  679. package/dist/cli/src/apps/cli/commands/project/commandConfigSecrets.d.ts +0 -2
  680. package/dist/cli/src/apps/cli/commands/project/commandConfigSecrets.js +0 -192
  681. package/dist/cli/src/apps/cli/commands/project/commandConfigSecrets.js.map +0 -1
  682. package/dist/pipeline/src/constants.d.ts +0 -2
  683. package/dist/pipeline/src/constants.js +0 -8
  684. package/dist/pipeline/src/constants.js.map +0 -1
  685. package/dist/runner-images/semantic-release-central.Dockerfile +0 -36
  686. package/src/apps/cli/commands/project/commandConfigSecrets.ts +0 -322
@@ -0,0 +1,269 @@
1
+ import type { Config } from "@catladder/pipeline";
2
+ import {
3
+ getEnabledPipelineTypes,
4
+ getSecretVarName,
5
+ getVaultConfig,
6
+ } from "@catladder/pipeline";
7
+ import {
8
+ getEnvironment,
9
+ getProjectConfig,
10
+ } from "../../../config/getProjectConfig";
11
+ import type { IO } from "../../../core/types";
12
+ import { isGhAuthenticated } from "../../../utils/github";
13
+ import { upsertAllVariables } from "../../../utils/gitlab";
14
+ import {
15
+ collectSecretTargets,
16
+ getConfiguredGithubRepo,
17
+ pushSecretsToGithub,
18
+ } from "../commandSecretsSyncGithub";
19
+ import type { ScopedSecretKeys } from "./scope";
20
+
21
+ /** placeholder for secrets that have no value in the vault yet */
22
+ export const FILL_ME = "🚨 FILL ME";
23
+
24
+ /**
25
+ * component → env → key → value: the document shape shared by the
26
+ * editor, `secrets-pull` and `secrets-push`
27
+ */
28
+ export type SecretsDocument = {
29
+ [componentName: string]: {
30
+ [env: string]: Record<string, unknown>;
31
+ };
32
+ };
33
+
34
+ /** secrets of one env of one component, ready to be written */
35
+ export type SecretsWrite = {
36
+ env: string;
37
+ componentName: string;
38
+ secrets: Record<string, unknown>;
39
+ };
40
+
41
+ /* for convenience, parse json values. that makes it easier to edit secrets that are objects */
42
+ const parseJsonValue = (value: string): unknown => {
43
+ try {
44
+ return JSON.parse(value);
45
+ } catch (e) {
46
+ return value;
47
+ }
48
+ };
49
+
50
+ /**
51
+ * builds the document for the given scope with the current values from
52
+ * the vault; unset secrets appear as the FILL_ME placeholder
53
+ */
54
+ export const buildSecretsDocument = async (
55
+ io: IO,
56
+ scoped: ScopedSecretKeys,
57
+ ): Promise<SecretsDocument> => {
58
+ const names = scoped.flatMap(({ env, componentName, keys }) =>
59
+ keys.map((key) => getSecretVarName(env, componentName, key)),
60
+ );
61
+ const values = await (await io.getVaultManager()).readSecrets(names, io);
62
+
63
+ const document: SecretsDocument = {};
64
+ for (const { env, componentName, keys } of scoped) {
65
+ document[componentName] ??= {};
66
+ document[componentName][env] = Object.fromEntries(
67
+ keys.map((key) => {
68
+ const value = values[getSecretVarName(env, componentName, key)];
69
+ return [key, value === undefined ? FILL_ME : parseJsonValue(value)];
70
+ }),
71
+ );
72
+ }
73
+ return document;
74
+ };
75
+
76
+ /**
77
+ * validates a document against the scope. Undeclared components, envs
78
+ * or keys are always problems; missing keys only when `requireComplete`
79
+ * (the guided editor flow) — pushes may be partial.
80
+ */
81
+ export const checkSecretsDocument = (
82
+ document: SecretsDocument,
83
+ scoped: ScopedSecretKeys,
84
+ { requireComplete }: { requireComplete: boolean },
85
+ ): string[] => {
86
+ const problems: string[] = [];
87
+
88
+ const scopedKeys = new Map<string, string[]>();
89
+ scoped.forEach(({ env, componentName, keys }) =>
90
+ scopedKeys.set(`${env}:${componentName}`, keys),
91
+ );
92
+ const scopedComponents = new Set(scoped.map((s) => s.componentName));
93
+
94
+ for (const [componentName, envs] of Object.entries(document ?? {})) {
95
+ if (!scopedComponents.has(componentName)) {
96
+ problems.push(
97
+ `"${componentName}" is not a component in this scope — remove it or widen the scope`,
98
+ );
99
+ continue;
100
+ }
101
+ for (const [env, secrets] of Object.entries(envs ?? {})) {
102
+ const keys = scopedKeys.get(`${env}:${componentName}`);
103
+ if (!keys) {
104
+ problems.push(
105
+ `"${env}:${componentName}" is not in this scope — remove it or widen the scope`,
106
+ );
107
+ continue;
108
+ }
109
+ const extraneous = Object.keys(secrets ?? {}).filter(
110
+ (key) => !keys.includes(key),
111
+ );
112
+ extraneous.forEach((key) =>
113
+ problems.push(
114
+ `"${env}:${componentName}": "${key}" is not declared in the config (or filtered out by --key)`,
115
+ ),
116
+ );
117
+ }
118
+ }
119
+
120
+ if (requireComplete) {
121
+ for (const { env, componentName, keys } of scoped) {
122
+ const provided = Object.keys(document?.[componentName]?.[env] ?? {});
123
+ keys
124
+ .filter((key) => !provided.includes(key))
125
+ .forEach((key) =>
126
+ problems.push(
127
+ `"${env}:${componentName}": "${key}" has not been provided`,
128
+ ),
129
+ );
130
+ }
131
+ }
132
+
133
+ return problems;
134
+ };
135
+
136
+ /**
137
+ * turns a (validated) document into writes. FILL_ME placeholders and
138
+ * empty (null) values are skipped, so an untouched placeholder can
139
+ * never end up as a live secret value.
140
+ */
141
+ export const collectSecretsWrites = (
142
+ document: SecretsDocument,
143
+ scoped: ScopedSecretKeys,
144
+ ): { writes: SecretsWrite[]; skipped: string[] } => {
145
+ const writes: SecretsWrite[] = [];
146
+ const skipped: string[] = [];
147
+ for (const { env, componentName, keys } of scoped) {
148
+ const provided = document?.[componentName]?.[env] ?? {};
149
+ const secrets: Record<string, unknown> = {};
150
+ for (const key of keys) {
151
+ if (!(key in provided)) {
152
+ continue;
153
+ }
154
+ const value = provided[key];
155
+ if (value === FILL_ME || value === null || value === undefined) {
156
+ skipped.push(`${env}:${componentName} ${key}`);
157
+ continue;
158
+ }
159
+ secrets[key] = value;
160
+ }
161
+ if (Object.keys(secrets).length > 0) {
162
+ writes.push({ env, componentName, secrets });
163
+ }
164
+ }
165
+ return { writes, skipped };
166
+ };
167
+
168
+ /**
169
+ * writes secrets to the vault (the source of truth) and mirrors them
170
+ * to every enabled CI backend — which backends exist is invisible to
171
+ * the caller
172
+ */
173
+ export const writeSecretsAndMirror = async (
174
+ io: IO,
175
+ writes: SecretsWrite[],
176
+ ): Promise<void> => {
177
+ const config = await getProjectConfig();
178
+ if (!config) {
179
+ throw new Error("no catladder config found");
180
+ }
181
+
182
+ io.log("");
183
+ io.log("writing secrets to the vault, please wait...");
184
+ io.log("");
185
+ for (const { env, componentName, secrets } of writes) {
186
+ io.log("writing " + env + ":" + componentName + "...\n");
187
+ await (
188
+ await io.getVaultManager()
189
+ ).writeSecrets(env, componentName, secrets);
190
+ io.log("");
191
+ io.log("✅ " + env + ":" + componentName);
192
+ io.log("--------------------------------\n");
193
+ }
194
+
195
+ await mirrorSecretsToCiBackends(io, config, writes);
196
+ };
197
+
198
+ /**
199
+ * the vault is the source of truth; every enabled CI backend receives
200
+ * a mirrored copy of the written secrets (gitlab variables, github
201
+ * secrets), so all CI systems stay in sync
202
+ */
203
+ const mirrorSecretsToCiBackends = async (
204
+ io: IO,
205
+ config: Config,
206
+ writes: SecretsWrite[],
207
+ ) => {
208
+ const enabled = getEnabledPipelineTypes(config);
209
+
210
+ // gitlab mirror (unless gitlab is the vault itself, then it is
211
+ // already written)
212
+ if (getVaultConfig(config).type !== "gitlab" && enabled.includes("gitlab")) {
213
+ for (const { env, componentName, secrets } of writes) {
214
+ await upsertAllVariables(io, secrets, env, componentName);
215
+ }
216
+ io.log("✅ mirrored to gitlab");
217
+ }
218
+
219
+ if (!enabled.includes("github")) {
220
+ return;
221
+ }
222
+ const kinds = new Map<string, "secret" | "variable">();
223
+ for (const { env, componentName } of writes) {
224
+ const { secretEnvVarKeys, jobOnlyVars } = await getEnvironment(
225
+ env,
226
+ componentName,
227
+ );
228
+ [
229
+ ...secretEnvVarKeys,
230
+ ...jobOnlyVars.build.secretEnvVarKeys,
231
+ ...jobOnlyVars.deploy.secretEnvVarKeys,
232
+ ].forEach(({ key, kind }) =>
233
+ kinds.set(getSecretVarName(env, componentName, key), kind ?? "secret"),
234
+ );
235
+ }
236
+ const secrets = writes.flatMap(({ env, componentName, secrets }) =>
237
+ Object.entries(secrets).map(([key, value]) => {
238
+ const name = getSecretVarName(env, componentName, key);
239
+ return {
240
+ name,
241
+ value: typeof value === "string" ? value : JSON.stringify(value ?? ""),
242
+ kind: kinds.get(name) ?? ("secret" as const),
243
+ };
244
+ }),
245
+ );
246
+ if (secrets.length === 0) {
247
+ return;
248
+ }
249
+ if (!(await isGhAuthenticated())) {
250
+ io.log(
251
+ "⚠️ github pipeline is enabled, but the github cli (gh) is not authenticated — run `project secrets-sync-github` later to mirror the secrets",
252
+ );
253
+ return;
254
+ }
255
+ const repo = await getConfiguredGithubRepo();
256
+ if (!repo) {
257
+ io.log(
258
+ "⚠️ github pipeline is enabled, but no github repository was found — run `project secrets-sync-github` later to mirror the secrets",
259
+ );
260
+ return;
261
+ }
262
+ io.log(`mirroring ${secrets.length} secrets to github ('${repo}')...`);
263
+ await pushSecretsToGithub(
264
+ io,
265
+ repo,
266
+ secrets,
267
+ await collectSecretTargets(config),
268
+ );
269
+ };
@@ -0,0 +1,8 @@
1
+ /** parses a comma-separated `--key` input into a list of keys */
2
+ export const parseKeysInput = (input?: string): string[] | undefined => {
3
+ const keys = input
4
+ ?.split(",")
5
+ .map((key) => key.trim())
6
+ .filter(Boolean);
7
+ return keys && keys.length > 0 ? keys : undefined;
8
+ };
@@ -0,0 +1,151 @@
1
+ import {
2
+ getAllComponentsWithAllEnvsHierarchical,
3
+ getEnvironment,
4
+ } from "../../../config/getProjectConfig";
5
+
6
+ /** which envs of which components a secrets command operates on */
7
+ export type SecretsScope = {
8
+ [componentName: string]: string[];
9
+ };
10
+
11
+ /**
12
+ * resolves a scope expression to component → envs:
13
+ * - (empty): all components, all envs
14
+ * - `env:component`: one env of one component
15
+ * - `env` / `env:`: one env, every component that has it
16
+ * - `:component`: every env of one component
17
+ */
18
+ export const resolveSecretsScope = async (
19
+ scope?: string,
20
+ ): Promise<SecretsScope> => {
21
+ const all = await getAllComponentsWithAllEnvsHierarchical();
22
+ if (Object.keys(all).length === 0) {
23
+ throw new Error("no catladder config found");
24
+ }
25
+ if (!scope) {
26
+ return all;
27
+ }
28
+
29
+ const [env, componentName] = scope.split(":").map((x) => x || null);
30
+
31
+ if (componentName && !(componentName in all)) {
32
+ throw new Error(
33
+ `unknown component "${componentName}" — components: ${Object.keys(all).join(", ")}`,
34
+ );
35
+ }
36
+
37
+ const scoped = Object.fromEntries(
38
+ Object.entries(all)
39
+ .filter(([name]) => !componentName || name === componentName)
40
+ .map(([name, envs]): [string, string[]] => [
41
+ name,
42
+ env ? envs.filter((e) => e === env) : envs,
43
+ ])
44
+ .filter(([, envs]) => envs.length > 0),
45
+ );
46
+
47
+ if (Object.keys(scoped).length === 0) {
48
+ const allEnvs = [...new Set(Object.values(all).flat())];
49
+ throw new Error(
50
+ `no component has the environment "${env}" — environments: ${allEnvs.join(", ")}`,
51
+ );
52
+ }
53
+ return scoped;
54
+ };
55
+
56
+ /**
57
+ * all valid scope expressions, for autocompletion: `env:component`
58
+ * pairs plus the `env:` (one env, all components) and `:component`
59
+ * (one component, all envs) forms
60
+ */
61
+ export const secretsScopeChoices = async (): Promise<string[]> => {
62
+ const all = await getAllComponentsWithAllEnvsHierarchical();
63
+ const pairs = Object.entries(all).flatMap(([componentName, envs]) =>
64
+ envs.map((env) => `${env}:${componentName}`),
65
+ );
66
+ const envs = [...new Set(Object.values(all).flat())];
67
+ return [
68
+ ...pairs,
69
+ ...envs.map((env) => `${env}:`),
70
+ ...Object.keys(all).map((componentName) => `:${componentName}`),
71
+ ];
72
+ };
73
+
74
+ /** one env of one component together with its (filtered) secret keys */
75
+ export type ScopedSecretKeys = Array<{
76
+ env: string;
77
+ componentName: string;
78
+ keys: string[];
79
+ }>;
80
+
81
+ /** the secret keys declared in the config for one env of one component */
82
+ export const getDeclaredSecretKeys = async (
83
+ env: string,
84
+ componentName: string,
85
+ ): Promise<string[]> => {
86
+ const { secretEnvVarKeys, jobOnlyVars } = await getEnvironment(
87
+ env,
88
+ componentName,
89
+ );
90
+ return [
91
+ ...jobOnlyVars.build.secretEnvVarKeys,
92
+ ...jobOnlyVars.deploy.secretEnvVarKeys,
93
+ ...secretEnvVarKeys,
94
+ ]
95
+ .filter((k) => !k.hidden)
96
+ .map((k) => k.key);
97
+ };
98
+
99
+ /**
100
+ * expands a scope to its declared secret keys, optionally filtered to
101
+ * `onlyKeys`. Throws when a requested key is not declared anywhere in
102
+ * the scope (typo protection); env/component pairs without matching
103
+ * keys are dropped.
104
+ */
105
+ export const getScopedSecretKeys = async (
106
+ scope: SecretsScope,
107
+ onlyKeys?: string[],
108
+ ): Promise<ScopedSecretKeys> => {
109
+ const scoped: ScopedSecretKeys = [];
110
+ const declaredAnywhere = new Set<string>();
111
+ for (const [componentName, envs] of Object.entries(scope)) {
112
+ for (const env of envs) {
113
+ const declared = await getDeclaredSecretKeys(env, componentName);
114
+ declared.forEach((key) => declaredAnywhere.add(key));
115
+ const keys = onlyKeys
116
+ ? declared.filter((key) => onlyKeys.includes(key))
117
+ : declared;
118
+ if (keys.length > 0) {
119
+ scoped.push({ env, componentName, keys });
120
+ }
121
+ }
122
+ }
123
+
124
+ const unknownKeys = (onlyKeys ?? []).filter(
125
+ (key) => !declaredAnywhere.has(key),
126
+ );
127
+ if (unknownKeys.length > 0) {
128
+ throw new Error(
129
+ `these secrets are not declared in this scope: ${unknownKeys.join(", ")}` +
130
+ `\ndeclared secrets: ${[...declaredAnywhere].join(", ")}`,
131
+ );
132
+ }
133
+ if (scoped.length === 0) {
134
+ throw new Error("there are no secrets to configure in this scope");
135
+ }
136
+ return scoped;
137
+ };
138
+
139
+ /** human-readable one-line-per-component summary of a scope */
140
+ export const formatScope = (scoped: ScopedSecretKeys): string => {
141
+ const byComponent = new Map<string, string[]>();
142
+ for (const { env, componentName } of scoped) {
143
+ byComponent.set(componentName, [
144
+ ...(byComponent.get(componentName) ?? []),
145
+ env,
146
+ ]);
147
+ }
148
+ return [...byComponent.entries()]
149
+ .map(([componentName, envs]) => `- ${componentName}: ${envs.join(", ")}`)
150
+ .join("\n");
151
+ };
@@ -0,0 +1,8 @@
1
+ /** reads the whole stdin stream (for piped input in non-interactive use) */
2
+ export const readStdin = async (): Promise<string> => {
3
+ const chunks: Buffer[] = [];
4
+ for await (const chunk of process.stdin) {
5
+ chunks.push(chunk as Buffer);
6
+ }
7
+ return Buffer.concat(chunks).toString("utf-8");
8
+ };
package/babel-inline.json DELETED
@@ -1,11 +0,0 @@
1
- {
2
- "plugins": [
3
- "@babel/plugin-syntax-typescript",
4
- [
5
- "transform-inline-environment-variables",
6
- {
7
- "include": ["INLINE_PIPELINE_IMAGE_TAG", "INLINE_DOCKER_REGISTRY"]
8
- }
9
- ]
10
- ]
11
- }
@@ -1,36 +0,0 @@
1
- # LEGACY-COMPAT build of the semantic-release image for the CENTRAL
2
- # registry only (build context: repo root, see .gitlab-ci-yaml-custom.yaml).
3
- #
4
- # The shipped definition (semantic-release/Dockerfile) is self-contained:
5
- # repos generated by current catladder run the security audit via the
6
- # materialized `.catladder-generated/catci/` bundle. But the central
7
- # `:latest` tag is shared with repos on OLD catladder versions whose
8
- # generated pipelines expect `catladder` on the PATH — so the central
9
- # build additionally bakes the cli in, exactly as before.
10
- #
11
- # Delete together with the central registry / central mode.
12
- FROM node:lts-alpine
13
-
14
- RUN apk add --no-cache bash git git-lfs
15
-
16
- RUN mkdir /packages
17
- COPY ./cli /packages/cli
18
-
19
- # add semantic release (pinned exactly — keep in sync with
20
- # semantic-release/Dockerfile; @semantic-release/changelog@7 is ESM-only
21
- # and incompatible with the CJS semantic-release@19)
22
- RUN yarn global add \
23
- semantic-release@19.0.5 \
24
- @semantic-release/commit-analyzer@13.0.1 \
25
- @semantic-release/release-notes-generator@14.1.1 \
26
- https://github.com/panter/git.git#b4037626cc583d3e9f7995ea0604b23730d0a22e \
27
- @semantic-release/changelog@6.0.3 \
28
- @semantic-release/gitlab@9.5.1 \
29
- @semantic-release/exec@6.0.3 \
30
- /packages/cli
31
-
32
- RUN mkdir -p /scripts
33
- COPY ./runner-images/semantic-release/scripts/* /scripts/
34
- RUN chmod +x /scripts/*
35
-
36
- ENV PATH="/scripts:${PATH}"
@@ -1,2 +0,0 @@
1
- import type { IO } from "../../../../core/types";
2
- export declare const projectConfigSecrets: (io: IO, envComponent?: string) => Promise<void>;
@@ -1,192 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.projectConfigSecrets = void 0;
7
- const pipeline_1 = require("../../../../../../pipeline/src/index.js");
8
- const common_tags_1 = require("common-tags");
9
- const lodash_es_1 = require("lodash-es");
10
- const getProjectConfig_1 = require("../../../../config/getProjectConfig");
11
- const commandSecretsSyncGithub_1 = require("../../../../commands/project/commandSecretsSyncGithub");
12
- const editAsFile_1 = require("../../../../utils/editAsFile");
13
- const github_1 = require("../../../../utils/github");
14
- const gitlab_1 = require("../../../../utils/gitlab");
15
- const promise_1 = require("../../../../utils/promise");
16
- /* for convenience, parse json objects. that makes it easier to edit secrets that are object */
17
- const resolveJson = v => Object.fromEntries(Object.entries(v).map(([componentName, envs]) => {
18
- return [componentName, Object.fromEntries(Object.entries(envs).map(([env, secrets]) => [env, Object.fromEntries(Object.entries(secrets).map(([key, value]) => {
19
- try {
20
- return [key, JSON.parse(value)];
21
- } catch (e) {
22
- return [key, value];
23
- }
24
- }))]))];
25
- }));
26
- const getSecretEnvVarKeysToConfigure = async (env, componentName) => {
27
- const {
28
- secretEnvVarKeys,
29
- jobOnlyVars
30
- } = await (0, getProjectConfig_1.getEnvironment)(env, componentName);
31
- return [...jobOnlyVars.build.secretEnvVarKeys, ...jobOnlyVars.deploy.secretEnvVarKeys, ...secretEnvVarKeys].filter(k => !k.hidden).map(k => k.key);
32
- };
33
- const getEnvVarsToEdit = async (instance, env, componentName) => {
34
- const secretEnvVarKeys = await getSecretEnvVarKeysToConfigure(env, componentName);
35
- const normalEnvVars = await (0, getProjectConfig_1.getEnvVarsResolved)(instance, env, componentName);
36
- const jobOnlyEnvVars = await (0, getProjectConfig_1.getJobOnlyEnvVarsResolved)(instance, env, componentName);
37
- const allEnvVars = {
38
- ...normalEnvVars,
39
- ...jobOnlyEnvVars
40
- };
41
- return Object.fromEntries(secretEnvVarKeys.map(key => {
42
- const value = allEnvVars[key];
43
- // due to some quirky way to resolve these variables, unset variables have the $CL_ prefix, so we remove thouse here
44
- const variableIsNotSet = value === "$" + (0, pipeline_1.getSecretVarName)(env, componentName, key);
45
- return [key, variableIsNotSet ? "🚨 FILL ME" : value];
46
- }));
47
- };
48
- const doItFor = async (instance, envAndComponents) => {
49
- let valuesToEdit = Object.fromEntries(await Promise.all(Object.entries(envAndComponents).map(async ([componentName, envs]) => [componentName, Object.fromEntries(await Promise.all(envs.map(async env => [env, await getEnvVarsToEdit(instance, env, componentName)])))])));
50
- let hasErrors = true;
51
- while (hasErrors) {
52
- valuesToEdit = await (0, editAsFile_1.editAsFile)(resolveJson(valuesToEdit), (0, common_tags_1.stripIndents)`
53
- Please fill in all secrets for:
54
-
55
- ${Object.entries(envAndComponents).map(([componentName, envs]) => `- ${componentName}: ${envs.join(", ")}`).join("\n")}
56
-
57
- `);
58
- // check for errors
59
- hasErrors = false;
60
- for (const [componentName, envs] of Object.entries(envAndComponents)) {
61
- for (const env of envs) {
62
- const usedKeys = valuesToEdit[componentName][env] ? Object.keys(valuesToEdit[componentName][env]) : [];
63
- // check whether newValues have the exact number of keys
64
- const secretEnvVarKeys = await getSecretEnvVarKeysToConfigure(env, componentName);
65
- const extranous = (0, lodash_es_1.difference)(usedKeys, secretEnvVarKeys);
66
- const missing = (0, lodash_es_1.difference)(secretEnvVarKeys, usedKeys);
67
- if (extranous.length > 0 || missing.length > 0) {
68
- instance.log("");
69
- instance.log(`😿 Oh no! There is something wrong with "${componentName}"`);
70
- instance.log("");
71
- if (extranous.length > 0) {
72
- instance.log("these secrets are not declared in the config");
73
- extranous.forEach(key => instance.log(key));
74
- instance.log("");
75
- }
76
- if (missing.length > 0) {
77
- instance.log("these secrets have not been provided:");
78
- missing.forEach(key => instance.log(key));
79
- instance.log("");
80
- }
81
- await (0, promise_1.delay)(1000);
82
- const shouldContinue = await instance.confirm("Try again? 🤔");
83
- if (!shouldContinue) {
84
- throw new Error("abort");
85
- }
86
- hasErrors = true;
87
- }
88
- }
89
- }
90
- }
91
- const config = await (0, getProjectConfig_1.getProjectConfig)();
92
- if (!config) {
93
- throw new Error("no catladder config found");
94
- }
95
- instance.log("");
96
- instance.log("writing all secrets to the vault, please wait...");
97
- instance.log("");
98
- for (const [componentName, envs] of Object.entries(envAndComponents)) {
99
- for (const env of envs) {
100
- instance.log("writing " + env + ":" + componentName + "...\n");
101
- await (await instance.getVaultManager()).writeSecrets(env, componentName, valuesToEdit[componentName][env]);
102
- instance.log("");
103
- instance.log("✅ " + env + ":" + componentName);
104
- instance.log("--------------------------------\n");
105
- }
106
- }
107
- await mirrorSecretsToCiBackends(instance, config, envAndComponents, valuesToEdit);
108
- instance.log("done! 😻");
109
- instance.log("");
110
- };
111
- /**
112
- * the vault is the source of truth; every enabled CI backend receives
113
- * a mirrored copy of the edited secrets (gitlab variables, github
114
- * secrets), so all CI systems stay in sync
115
- */
116
- const mirrorSecretsToCiBackends = async (instance, config, envAndComponents, valuesToEdit) => {
117
- const enabled = (0, pipeline_1.getEnabledPipelineTypes)(config);
118
- // gitlab mirror (unless gitlab is the vault itself, then it is
119
- // already written)
120
- if ((0, pipeline_1.getVaultConfig)(config).type !== "gitlab" && enabled.includes("gitlab")) {
121
- for (const [componentName, envs] of Object.entries(envAndComponents)) {
122
- for (const env of envs) {
123
- await (0, gitlab_1.upsertAllVariables)(instance, valuesToEdit[componentName][env], env, componentName);
124
- }
125
- }
126
- instance.log("✅ mirrored to gitlab");
127
- }
128
- if (!enabled.includes("github")) {
129
- return;
130
- }
131
- const kinds = new Map();
132
- for (const [componentName, envs] of Object.entries(envAndComponents)) {
133
- for (const env of envs) {
134
- const {
135
- secretEnvVarKeys,
136
- jobOnlyVars
137
- } = await (0, getProjectConfig_1.getEnvironment)(env, componentName);
138
- [...secretEnvVarKeys, ...jobOnlyVars.build.secretEnvVarKeys, ...jobOnlyVars.deploy.secretEnvVarKeys].forEach(({
139
- key,
140
- kind
141
- }) => kinds.set((0, pipeline_1.getSecretVarName)(env, componentName, key), kind !== null && kind !== void 0 ? kind : "secret"));
142
- }
143
- }
144
- const secrets = Object.entries(envAndComponents).flatMap(([componentName, envs]) => envs.flatMap(env => {
145
- var _a;
146
- return Object.entries((_a = valuesToEdit[componentName][env]) !== null && _a !== void 0 ? _a : {}).map(([key, value]) => {
147
- var _a;
148
- const name = (0, pipeline_1.getSecretVarName)(env, componentName, key);
149
- return {
150
- name,
151
- value: typeof value === "string" ? value : JSON.stringify(value !== null && value !== void 0 ? value : ""),
152
- kind: (_a = kinds.get(name)) !== null && _a !== void 0 ? _a : "secret"
153
- };
154
- });
155
- }));
156
- if (secrets.length === 0) {
157
- return;
158
- }
159
- if (!(await (0, github_1.isGhAuthenticated)())) {
160
- instance.log("⚠️ github pipeline is enabled, but the github cli (gh) is not authenticated — run `project secrets-sync-github` later to mirror the secrets");
161
- return;
162
- }
163
- const repo = await (0, commandSecretsSyncGithub_1.getConfiguredGithubRepo)();
164
- if (!repo) {
165
- instance.log("⚠️ github pipeline is enabled, but no github repository was found — run `project secrets-sync-github` later to mirror the secrets");
166
- return;
167
- }
168
- instance.log(`mirroring ${secrets.length} secrets to github ('${repo}')...`);
169
- await (0, commandSecretsSyncGithub_1.pushSecretsToGithub)(instance, repo, secrets, await (0, commandSecretsSyncGithub_1.collectSecretTargets)(config));
170
- };
171
- const projectConfigSecrets = async (io, envComponent) => {
172
- if (!envComponent) {
173
- const allEnvAndcomponents = await (0, getProjectConfig_1.getAllComponentsWithAllEnvsHierarchical)();
174
- await doItFor(io, allEnvAndcomponents);
175
- } else {
176
- const {
177
- env,
178
- componentName
179
- } = (0, getProjectConfig_1.parseChoice)(envComponent);
180
- // componentName can be null. in this case, iterate over all components
181
- if (!componentName) {
182
- const components = await (0, getProjectConfig_1.getProjectComponents)();
183
- await doItFor(io, Object.fromEntries(components.map(c => [c, [env]])));
184
- }
185
- if (componentName) {
186
- await doItFor(io, {
187
- [componentName]: [env]
188
- });
189
- }
190
- }
191
- };
192
- exports.projectConfigSecrets = projectConfigSecrets;