@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
package/package.json CHANGED
@@ -53,13 +53,12 @@
53
53
  }
54
54
  ],
55
55
  "license": "MIT",
56
- "version": "0.0.0-next-e9e5af68",
56
+ "version": "0.0.0-next-1c65899f",
57
57
  "scripts": {
58
58
  "lint": "eslint \"src/**/*.ts\"",
59
59
  "lint:fix": "eslint \"src/**/*.ts\" --fix",
60
60
  "test": "yarn run lint",
61
- "build": "yarn build:compile && yarn build:inline-variables && yarn build:bundle && yarn build:copy-images && yarn build:skill-cli-reference && yarn build:copy-skills",
62
- "build:inline-variables": "yarn babel --keep-file-extension --extensions \".ts,.js\" --config-file ./babel-inline.json dist --out-dir dist",
61
+ "build": "yarn build:compile && yarn build:bundle && yarn build:copy-images && yarn build:skill-cli-reference && yarn build:copy-skills",
63
62
  "build:bundle": "./scripts/bundle",
64
63
  "build:copy-images": "rm -rf dist/runner-images dist/bundles/runner-images && cp -R ../runner-images dist/runner-images && cp -R ../runner-images dist/bundles/runner-images",
65
64
  "build:copy-skills": "rm -rf dist/skills dist/bundles/skills && cp -R ../skills dist/skills && cp -R ../skills dist/bundles/skills",
@@ -78,9 +77,6 @@
78
77
  "node": ">=18.0.0"
79
78
  },
80
79
  "devDependencies": {
81
- "@babel/cli": "^7.28.6",
82
- "@babel/core": "^7.29.0",
83
- "@babel/plugin-syntax-typescript": "^7.28.6",
84
80
  "@changesets/parse": "^0.4.3",
85
81
  "@gitbeaker/rest": "^39.28.0",
86
82
  "@inquirer/prompts": "^8.4.3",
@@ -96,7 +92,6 @@
96
92
  "@types/update-notifier": "^2.5.0",
97
93
  "@types/websocket": "^0.0.40",
98
94
  "@types/yargs": "^17.0.33",
99
- "babel-plugin-transform-inline-environment-variables": "^0.4.4",
100
95
  "child-process-promise": "^2.2.1",
101
96
  "clipboardy": "^2.0.0",
102
97
  "command-exists-promise": "^2.0.2",
@@ -14,6 +14,10 @@ export { commandOpenEnv } from "./project/commandOpenEnv";
14
14
  export { commandOpenGit } from "./project/commandOpenGit";
15
15
  export { commandCloudSqlProxy } from "./project/commandCloudSqlProxy";
16
16
  export { commandConfigSecrets } from "./project/commandConfigSecrets";
17
+ export { commandSecretsPull } from "./project/secrets/commandSecretsPull";
18
+ export { commandSecretsPush } from "./project/secrets/commandSecretsPush";
19
+ export { commandSecretsSet } from "./project/secrets/commandSecretsSet";
20
+ export { commandSecretsList } from "./project/secrets/commandSecretsList";
17
21
  export { commandSecretsClearBackups } from "./project/commandSecretsClearBackups";
18
22
  export { commandSecretsSyncGithub } from "./project/commandSecretsSyncGithub";
19
23
  export { commandOpenLogs } from "./project/commandOpenLogs";
@@ -1,31 +1,92 @@
1
+ import { stripIndents } from "common-tags";
1
2
  import { defineCommand } from "../../core/defineCommand";
2
- import { projectConfigSecrets } from "../../apps/cli/commands/project/commandConfigSecrets";
3
- import { envAndComponents } from "../../apps/cli/commands/project/utils/autocompletions";
3
+ import { editAsFile } from "../../utils/editAsFile";
4
+ import { delay } from "../../utils/promise";
5
+ import {
6
+ buildSecretsDocument,
7
+ checkSecretsDocument,
8
+ collectSecretsWrites,
9
+ writeSecretsAndMirror,
10
+ } from "./secrets/document";
11
+ import {
12
+ formatScope,
13
+ getScopedSecretKeys,
14
+ resolveSecretsScope,
15
+ secretsScopeChoices,
16
+ } from "./secrets/scope";
17
+ import { parseKeysInput } from "./secrets/parseKeysInput";
4
18
 
5
- // This command delegates to the existing implementation which uses
6
- // editAsFile (opens editor) and has retry loops with confirm prompts.
7
- // Full migration to CommandIO would require reworking the editor flow,
8
- // so for now we bridge it.
9
19
  export const commandConfigSecrets = defineCommand({
10
20
  name: "project config-secrets",
11
- description: "setup/update secrets stored in pass",
21
+ description: "setup/update secrets in the vault via your editor",
12
22
  group: "project",
13
23
  inputs: {
14
24
  envComponent: {
15
25
  type: "string",
16
- message: "environment:component",
26
+ message: "scope: env:component, env:, :component or empty for everything",
17
27
  positional: true,
18
28
  required: false,
19
- choices: async () => envAndComponents(),
29
+ choices: async () => secretsScopeChoices(),
30
+ },
31
+ key: {
32
+ type: "string",
33
+ message: "only edit these secrets (comma-separated keys)",
34
+ required: false,
20
35
  },
21
36
  },
22
37
  execute: async (ctx) => {
23
38
  const envComponent = await ctx.get("envComponent");
24
- // Bridge: the existing implementation accepts CommandInstance-like
25
- // objects for logging and prompting. Since it uses this.prompt()
26
- // internally (not ctx.prompt), we pass ctx which satisfies the
27
- // IO interface for logging. The interactive prompts inside
28
- // projectConfigSecrets will need a deeper migration later.
29
- await projectConfigSecrets(ctx, envComponent);
39
+ const keys = parseKeysInput(await ctx.get("key"));
40
+
41
+ if (!ctx.interactive) {
42
+ throw new Error(
43
+ "project config-secrets opens an editor and needs an interactive terminal — " +
44
+ "use `project secrets-pull`, `project secrets-push` or `project secrets-set` instead",
45
+ );
46
+ }
47
+
48
+ const scope = await resolveSecretsScope(envComponent);
49
+ const scoped = await getScopedSecretKeys(scope, keys);
50
+
51
+ let document = await buildSecretsDocument(ctx, scoped);
52
+ let hasErrors = true;
53
+ while (hasErrors) {
54
+ document = await editAsFile(
55
+ document,
56
+ stripIndents`
57
+ Please fill in all secrets for:
58
+
59
+ ${formatScope(scoped)}
60
+
61
+ `,
62
+ );
63
+ const problems = checkSecretsDocument(document, scoped, {
64
+ requireComplete: true,
65
+ });
66
+ hasErrors = problems.length > 0;
67
+ if (hasErrors) {
68
+ ctx.log("");
69
+ ctx.log("😿 Oh no! There is something wrong:");
70
+ ctx.log("");
71
+ problems.forEach((problem) => ctx.log(problem));
72
+ ctx.log("");
73
+
74
+ await delay(1000);
75
+ const shouldContinue = await ctx.confirm("Try again? 🤔");
76
+ if (!shouldContinue) {
77
+ throw new Error("abort");
78
+ }
79
+ }
80
+ }
81
+
82
+ const { writes, skipped } = collectSecretsWrites(document, scoped);
83
+ if (skipped.length > 0) {
84
+ ctx.log("");
85
+ ctx.log("⏭️ these secrets are still unset and will not be written:");
86
+ skipped.forEach((entry) => ctx.log(` - ${entry}`));
87
+ }
88
+ await writeSecretsAndMirror(ctx, writes);
89
+ ctx.log("done! 😻");
90
+ ctx.log("");
30
91
  },
31
92
  });
@@ -0,0 +1,122 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import {
3
+ FILL_ME,
4
+ checkSecretsDocument,
5
+ collectSecretsWrites,
6
+ } from "../document";
7
+ import { parseKeysInput } from "../parseKeysInput";
8
+ import type { ScopedSecretKeys } from "../scope";
9
+
10
+ const scoped: ScopedSecretKeys = [
11
+ { env: "dev", componentName: "web", keys: ["API_KEY", "SMTP_PASSWORD"] },
12
+ { env: "prod", componentName: "web", keys: ["API_KEY", "SMTP_PASSWORD"] },
13
+ { env: "dev", componentName: "worker", keys: ["QUEUE_TOKEN"] },
14
+ ];
15
+
16
+ describe("checkSecretsDocument", () => {
17
+ it("accepts a complete document", () => {
18
+ const problems = checkSecretsDocument(
19
+ {
20
+ web: {
21
+ dev: { API_KEY: "a", SMTP_PASSWORD: "b" },
22
+ prod: { API_KEY: "c", SMTP_PASSWORD: "d" },
23
+ },
24
+ worker: { dev: { QUEUE_TOKEN: "e" } },
25
+ },
26
+ scoped,
27
+ { requireComplete: true },
28
+ );
29
+ expect(problems).toEqual([]);
30
+ });
31
+
32
+ it("accepts a partial document when completeness is not required", () => {
33
+ const problems = checkSecretsDocument(
34
+ { web: { prod: { API_KEY: "rotated" } } },
35
+ scoped,
36
+ { requireComplete: false },
37
+ );
38
+ expect(problems).toEqual([]);
39
+ });
40
+
41
+ it("reports missing keys when completeness is required", () => {
42
+ const problems = checkSecretsDocument(
43
+ { web: { prod: { API_KEY: "rotated" } } },
44
+ scoped,
45
+ { requireComplete: true },
46
+ );
47
+ expect(problems).toEqual([
48
+ '"dev:web": "API_KEY" has not been provided',
49
+ '"dev:web": "SMTP_PASSWORD" has not been provided',
50
+ '"prod:web": "SMTP_PASSWORD" has not been provided',
51
+ '"dev:worker": "QUEUE_TOKEN" has not been provided',
52
+ ]);
53
+ });
54
+
55
+ it("rejects undeclared keys, components and envs", () => {
56
+ const problems = checkSecretsDocument(
57
+ {
58
+ web: {
59
+ dev: { TYPO_KEY: "a" },
60
+ stage: { API_KEY: "b" },
61
+ },
62
+ api: { dev: { API_KEY: "c" } },
63
+ },
64
+ scoped,
65
+ { requireComplete: false },
66
+ );
67
+ expect(problems).toEqual([
68
+ '"dev:web": "TYPO_KEY" is not declared in the config (or filtered out by --key)',
69
+ '"stage:web" is not in this scope — remove it or widen the scope',
70
+ '"api" is not a component in this scope — remove it or widen the scope',
71
+ ]);
72
+ });
73
+ });
74
+
75
+ describe("collectSecretsWrites", () => {
76
+ it("collects only provided values and skips placeholders", () => {
77
+ const { writes, skipped } = collectSecretsWrites(
78
+ {
79
+ web: {
80
+ dev: { API_KEY: "a", SMTP_PASSWORD: FILL_ME },
81
+ prod: { API_KEY: null as unknown as string },
82
+ },
83
+ worker: { dev: {} },
84
+ },
85
+ scoped,
86
+ );
87
+ expect(writes).toEqual([
88
+ { env: "dev", componentName: "web", secrets: { API_KEY: "a" } },
89
+ ]);
90
+ expect(skipped).toEqual(["dev:web SMTP_PASSWORD", "prod:web API_KEY"]);
91
+ });
92
+
93
+ it("keeps objects and empty strings as values", () => {
94
+ const { writes, skipped } = collectSecretsWrites(
95
+ { web: { dev: { API_KEY: "", SMTP_PASSWORD: { user: "a" } } } },
96
+ scoped,
97
+ );
98
+ expect(writes).toEqual([
99
+ {
100
+ env: "dev",
101
+ componentName: "web",
102
+ secrets: { API_KEY: "", SMTP_PASSWORD: { user: "a" } },
103
+ },
104
+ ]);
105
+ expect(skipped).toEqual([]);
106
+ });
107
+ });
108
+
109
+ describe("parseKeysInput", () => {
110
+ it("splits and trims comma-separated keys", () => {
111
+ expect(parseKeysInput("API_KEY, SMTP_PASSWORD ,")).toEqual([
112
+ "API_KEY",
113
+ "SMTP_PASSWORD",
114
+ ]);
115
+ });
116
+
117
+ it("returns undefined for empty input", () => {
118
+ expect(parseKeysInput(undefined)).toBeUndefined();
119
+ expect(parseKeysInput("")).toBeUndefined();
120
+ expect(parseKeysInput(" , ")).toBeUndefined();
121
+ });
122
+ });
@@ -0,0 +1,75 @@
1
+ import { getSecretVarName } from "@catladder/pipeline";
2
+ import { defineCommand } from "../../../core/defineCommand";
3
+ import {
4
+ getScopedSecretKeys,
5
+ resolveSecretsScope,
6
+ secretsScopeChoices,
7
+ } from "./scope";
8
+ import { parseKeysInput } from "./parseKeysInput";
9
+
10
+ export const commandSecretsList = defineCommand({
11
+ name: "project secrets-list",
12
+ description:
13
+ "lists the declared secrets of a scope with their set/unset status (values only with --reveal)",
14
+ group: "project",
15
+ inputs: {
16
+ envComponent: {
17
+ type: "string",
18
+ message: "scope: env:component, env:, :component or empty for everything",
19
+ positional: true,
20
+ required: false,
21
+ choices: async () => secretsScopeChoices(),
22
+ },
23
+ key: {
24
+ type: "string",
25
+ message: "only these secrets (comma-separated keys)",
26
+ required: false,
27
+ },
28
+ reveal: {
29
+ type: "boolean",
30
+ message: "also print the secret values",
31
+ default: false,
32
+ },
33
+ check: {
34
+ type: "boolean",
35
+ message: "exit with an error when any secret is unset (for CI/agents)",
36
+ default: false,
37
+ },
38
+ },
39
+ execute: async (ctx) => {
40
+ const scope = await resolveSecretsScope(await ctx.get("envComponent"));
41
+ const scoped = await getScopedSecretKeys(
42
+ scope,
43
+ parseKeysInput(await ctx.get("key")),
44
+ );
45
+ const reveal = await ctx.get("reveal");
46
+
47
+ const names = scoped.flatMap(({ env, componentName, keys }) =>
48
+ keys.map((key) => getSecretVarName(env, componentName, key)),
49
+ );
50
+ const values = await (await ctx.getVaultManager()).readSecrets(names, ctx);
51
+
52
+ let unsetCount = 0;
53
+ let setCount = 0;
54
+ for (const { env, componentName, keys } of scoped) {
55
+ for (const key of keys) {
56
+ const value = values[getSecretVarName(env, componentName, key)];
57
+ if (value === undefined) {
58
+ unsetCount += 1;
59
+ ctx.log(`🚨 ${env}:${componentName} ${key} (unset)`);
60
+ } else {
61
+ setCount += 1;
62
+ ctx.log(
63
+ `✅ ${env}:${componentName} ${key}` + (reveal ? ` = ${value}` : ""),
64
+ );
65
+ }
66
+ }
67
+ }
68
+ ctx.log("");
69
+ ctx.log(`${setCount} set, ${unsetCount} unset`);
70
+
71
+ if ((await ctx.get("check")) && unsetCount > 0) {
72
+ throw new Error(`${unsetCount} secrets are unset`);
73
+ }
74
+ },
75
+ });
@@ -0,0 +1,55 @@
1
+ import { writeFile } from "fs-extra";
2
+ import { stringify } from "yaml";
3
+ import { defineCommand } from "../../../core/defineCommand";
4
+ import { buildSecretsDocument } from "./document";
5
+ import {
6
+ getScopedSecretKeys,
7
+ resolveSecretsScope,
8
+ secretsScopeChoices,
9
+ } from "./scope";
10
+ import { parseKeysInput } from "./parseKeysInput";
11
+
12
+ export const commandSecretsPull = defineCommand({
13
+ name: "project secrets-pull",
14
+ description:
15
+ "prints the current secrets of a scope as yaml (unset ones as a placeholder) — edit and feed to secrets-push",
16
+ group: "project",
17
+ inputs: {
18
+ envComponent: {
19
+ type: "string",
20
+ message: "scope: env:component, env:, :component or empty for everything",
21
+ positional: true,
22
+ required: false,
23
+ choices: async () => secretsScopeChoices(),
24
+ },
25
+ key: {
26
+ type: "string",
27
+ message: "only these secrets (comma-separated keys)",
28
+ required: false,
29
+ },
30
+ out: {
31
+ type: "string",
32
+ message: "write the yaml to this file instead of stdout",
33
+ required: false,
34
+ },
35
+ },
36
+ execute: async (ctx) => {
37
+ const scope = await resolveSecretsScope(await ctx.get("envComponent"));
38
+ const scoped = await getScopedSecretKeys(
39
+ scope,
40
+ parseKeysInput(await ctx.get("key")),
41
+ );
42
+ const document = await buildSecretsDocument(ctx, scoped);
43
+ const yaml = stringify(document, { aliasDuplicateObjects: false });
44
+
45
+ const out = await ctx.get("out");
46
+ if (out) {
47
+ await writeFile(out, yaml);
48
+ ctx.log(
49
+ `wrote secrets to ${out} — ⚠️ contains secret values, don't commit it`,
50
+ );
51
+ } else {
52
+ ctx.log(yaml);
53
+ }
54
+ },
55
+ });
@@ -0,0 +1,100 @@
1
+ import { readFile } from "fs-extra";
2
+ import { parse } from "yaml";
3
+ import { defineCommand } from "../../../core/defineCommand";
4
+ import { readStdin } from "../../../utils/readStdin";
5
+ import type { SecretsDocument } from "./document";
6
+ import {
7
+ checkSecretsDocument,
8
+ collectSecretsWrites,
9
+ writeSecretsAndMirror,
10
+ } from "./document";
11
+ import {
12
+ getScopedSecretKeys,
13
+ resolveSecretsScope,
14
+ secretsScopeChoices,
15
+ } from "./scope";
16
+ import { parseKeysInput } from "./parseKeysInput";
17
+
18
+ export const commandSecretsPush = defineCommand({
19
+ name: "project secrets-push",
20
+ description:
21
+ "writes secrets from a yaml document (secrets-pull format, --file or stdin) to the vault; may be partial",
22
+ group: "project",
23
+ inputs: {
24
+ envComponent: {
25
+ type: "string",
26
+ message: "scope: env:component, env:, :component or empty for everything",
27
+ positional: true,
28
+ required: false,
29
+ choices: async () => secretsScopeChoices(),
30
+ },
31
+ key: {
32
+ type: "string",
33
+ message: "only write these secrets (comma-separated keys)",
34
+ required: false,
35
+ },
36
+ file: {
37
+ type: "string",
38
+ message:
39
+ "yaml file to push (component → env → key: value); stdin when omitted",
40
+ required: false,
41
+ },
42
+ },
43
+ execute: async (ctx) => {
44
+ const scope = await resolveSecretsScope(await ctx.get("envComponent"));
45
+ const scoped = await getScopedSecretKeys(
46
+ scope,
47
+ parseKeysInput(await ctx.get("key")),
48
+ );
49
+
50
+ const file = await ctx.get("file");
51
+ if (!file && process.stdin.isTTY) {
52
+ throw new Error(
53
+ "nothing to push — pass --file <secrets.yml> or pipe yaml (secrets-pull format) to stdin",
54
+ );
55
+ }
56
+ const raw = file
57
+ ? (await readFile(file)).toString("utf-8")
58
+ : await readStdin();
59
+ const document = parse(raw) as SecretsDocument;
60
+ if (!document || typeof document !== "object") {
61
+ throw new Error(
62
+ "the document must be a yaml object: component → env → key: value (see secrets-pull)",
63
+ );
64
+ }
65
+
66
+ const problems = checkSecretsDocument(document, scoped, {
67
+ requireComplete: false,
68
+ });
69
+ if (problems.length > 0) {
70
+ throw new Error(
71
+ "😿 the document does not match the config:\n" +
72
+ problems.map((problem) => ` - ${problem}`).join("\n"),
73
+ );
74
+ }
75
+
76
+ const { writes, skipped } = collectSecretsWrites(document, scoped);
77
+ if (skipped.length > 0) {
78
+ ctx.log("⏭️ skipping placeholder/empty values:");
79
+ skipped.forEach((entry) => ctx.log(` - ${entry}`));
80
+ }
81
+ if (writes.length === 0) {
82
+ ctx.log("no secrets to write 🤷");
83
+ return;
84
+ }
85
+
86
+ ctx.log("about to write:");
87
+ writes.forEach(({ env, componentName, secrets }) =>
88
+ ctx.log(
89
+ ` - ${env}:${componentName}: ${Object.keys(secrets).join(", ")}`,
90
+ ),
91
+ );
92
+ const confirmed = await ctx.confirm("continue? 🤔");
93
+ if (!confirmed) {
94
+ throw new Error("abort");
95
+ }
96
+
97
+ await writeSecretsAndMirror(ctx, writes);
98
+ ctx.log("done! 😻");
99
+ },
100
+ });
@@ -0,0 +1,102 @@
1
+ import { readFile } from "fs-extra";
2
+ import { defineCommand } from "../../../core/defineCommand";
3
+ import type { IO } from "../../../core/types";
4
+ import { readStdin } from "../../../utils/readStdin";
5
+ import type { SecretsWrite } from "./document";
6
+ import { writeSecretsAndMirror } from "./document";
7
+ import {
8
+ getScopedSecretKeys,
9
+ resolveSecretsScope,
10
+ secretsScopeChoices,
11
+ } from "./scope";
12
+
13
+ const resolveValue = async (
14
+ io: IO,
15
+ value: string | undefined,
16
+ valueFile: string | undefined,
17
+ ): Promise<string> => {
18
+ if (valueFile) {
19
+ // a trailing newline is almost never part of the secret
20
+ return (await readFile(valueFile)).toString("utf-8").replace(/\n$/, "");
21
+ }
22
+ if (value !== undefined) {
23
+ return value;
24
+ }
25
+ if (!process.stdin.isTTY) {
26
+ return (await readStdin()).replace(/\n$/, "");
27
+ }
28
+ return io.promptDirect({
29
+ name: "value",
30
+ type: "string",
31
+ message: "value",
32
+ });
33
+ };
34
+
35
+ export const commandSecretsSet = defineCommand({
36
+ name: "project secrets-set",
37
+ description:
38
+ "sets one secret — in one env (dev:web), one env everywhere (dev:), or all envs of a component (:web); value via --value, --value-file or stdin",
39
+ group: "project",
40
+ inputs: {
41
+ envComponent: {
42
+ type: "string",
43
+ message: "scope: env:component, env:, or :component",
44
+ positional: true,
45
+ choices: async () => secretsScopeChoices(),
46
+ },
47
+ key: {
48
+ type: "string",
49
+ message: "which secret?",
50
+ positional: true,
51
+ choices: async (ctx) => {
52
+ const scope = await resolveSecretsScope(await ctx.get("envComponent"));
53
+ const scoped = await getScopedSecretKeys(scope);
54
+ return [...new Set(scoped.flatMap(({ keys }) => keys))];
55
+ },
56
+ },
57
+ value: {
58
+ type: "string",
59
+ message:
60
+ "the secret value (prefer --value-file or stdin over shell history)",
61
+ required: false,
62
+ },
63
+ valueFile: {
64
+ type: "string",
65
+ message: "read the secret value from this file",
66
+ required: false,
67
+ },
68
+ },
69
+ execute: async (ctx) => {
70
+ const scope = await resolveSecretsScope(await ctx.get("envComponent"));
71
+ const key = await ctx.get("key");
72
+ // drops env/component pairs where the key is not declared and
73
+ // throws when it is declared nowhere in the scope
74
+ const scoped = await getScopedSecretKeys(scope, [key]);
75
+ const value = await resolveValue(
76
+ ctx,
77
+ await ctx.get("value"),
78
+ await ctx.get("valueFile"),
79
+ );
80
+
81
+ const targets = scoped.map(
82
+ ({ env, componentName }) => `${env}:${componentName}`,
83
+ );
84
+ ctx.log(`setting ${key} in: ${targets.join(", ")}`);
85
+ if (targets.length > 1) {
86
+ const confirmed = await ctx.confirm(
87
+ `write the same value to ${targets.length} environments? 🤔`,
88
+ );
89
+ if (!confirmed) {
90
+ throw new Error("abort");
91
+ }
92
+ }
93
+
94
+ const writes: SecretsWrite[] = scoped.map(({ env, componentName }) => ({
95
+ env,
96
+ componentName,
97
+ secrets: { [key]: value },
98
+ }));
99
+ await writeSecretsAndMirror(ctx, writes);
100
+ ctx.log("done! 😻");
101
+ },
102
+ });