@invarn/cibuild 2.9.6 → 2.9.8

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 (559) hide show
  1. package/dist/chunk-35SI42CD.mjs +1 -0
  2. package/dist/chunk-IC45KVLJ.mjs +1 -0
  3. package/dist/chunk-XDY4V23V.mjs +1 -0
  4. package/dist/cli.cjs +14 -14
  5. package/dist/commands.mjs +1 -0
  6. package/dist/lib.mjs +3934 -0
  7. package/package.json +6 -10
  8. package/dist/src/cli.d.ts +0 -3
  9. package/dist/src/cli.d.ts.map +0 -1
  10. package/dist/src/cli.js +0 -399
  11. package/dist/src/commands/a-credential-target-follows-the-flavor-source-set.test.d.ts +0 -38
  12. package/dist/src/commands/a-credential-target-follows-the-flavor-source-set.test.d.ts.map +0 -1
  13. package/dist/src/commands/a-credential-target-follows-the-flavor-source-set.test.js +0 -222
  14. package/dist/src/commands/a-credential-two-workflows-cannot-share-is-declared-per-workflow.test.d.ts +0 -41
  15. package/dist/src/commands/a-credential-two-workflows-cannot-share-is-declared-per-workflow.test.d.ts.map +0 -1
  16. package/dist/src/commands/a-credential-two-workflows-cannot-share-is-declared-per-workflow.test.js +0 -324
  17. package/dist/src/commands/a-properties-stand-in-declares-the-keys-the-build-reads.test.d.ts +0 -2
  18. package/dist/src/commands/a-properties-stand-in-declares-the-keys-the-build-reads.test.d.ts.map +0 -1
  19. package/dist/src/commands/a-properties-stand-in-declares-the-keys-the-build-reads.test.js +0 -382
  20. package/dist/src/commands/an-already-stored-value-does-not-answer-the-target-question.test.d.ts +0 -29
  21. package/dist/src/commands/an-already-stored-value-does-not-answer-the-target-question.test.d.ts.map +0 -1
  22. package/dist/src/commands/an-already-stored-value-does-not-answer-the-target-question.test.js +0 -160
  23. package/dist/src/commands/android-gms-guard.test.d.ts +0 -9
  24. package/dist/src/commands/android-gms-guard.test.d.ts.map +0 -1
  25. package/dist/src/commands/android-gms-guard.test.js +0 -78
  26. package/dist/src/commands/android-java-version.test.d.ts +0 -12
  27. package/dist/src/commands/android-java-version.test.d.ts.map +0 -1
  28. package/dist/src/commands/android-java-version.test.js +0 -209
  29. package/dist/src/commands/android-scanner-java.test.d.ts +0 -2
  30. package/dist/src/commands/android-scanner-java.test.d.ts.map +0 -1
  31. package/dist/src/commands/android-scanner-java.test.js +0 -130
  32. package/dist/src/commands/android-scanner.d.ts +0 -250
  33. package/dist/src/commands/android-scanner.d.ts.map +0 -1
  34. package/dist/src/commands/android-scanner.js +0 -1639
  35. package/dist/src/commands/build.d.ts +0 -215
  36. package/dist/src/commands/build.d.ts.map +0 -1
  37. package/dist/src/commands/build.js +0 -1433
  38. package/dist/src/commands/build.test.d.ts +0 -13
  39. package/dist/src/commands/build.test.d.ts.map +0 -1
  40. package/dist/src/commands/build.test.js +0 -121
  41. package/dist/src/commands/detect-platform.d.ts +0 -13
  42. package/dist/src/commands/detect-platform.d.ts.map +0 -1
  43. package/dist/src/commands/detect-platform.js +0 -51
  44. package/dist/src/commands/detect-project.d.ts +0 -7
  45. package/dist/src/commands/detect-project.d.ts.map +0 -1
  46. package/dist/src/commands/detect-project.js +0 -12
  47. package/dist/src/commands/each-flavor-is-asked-for-its-own-properties-file.test.d.ts +0 -26
  48. package/dist/src/commands/each-flavor-is-asked-for-its-own-properties-file.test.d.ts.map +0 -1
  49. package/dist/src/commands/each-flavor-is-asked-for-its-own-properties-file.test.js +0 -196
  50. package/dist/src/commands/edit.d.ts +0 -12
  51. package/dist/src/commands/edit.d.ts.map +0 -1
  52. package/dist/src/commands/edit.js +0 -652
  53. package/dist/src/commands/edit.test.d.ts +0 -6
  54. package/dist/src/commands/edit.test.d.ts.map +0 -1
  55. package/dist/src/commands/edit.test.js +0 -45
  56. package/dist/src/commands/fidelity-trim.d.ts +0 -13
  57. package/dist/src/commands/fidelity-trim.d.ts.map +0 -1
  58. package/dist/src/commands/fidelity-trim.js +0 -21
  59. package/dist/src/commands/fidelity-trim.test.d.ts +0 -8
  60. package/dist/src/commands/fidelity-trim.test.d.ts.map +0 -1
  61. package/dist/src/commands/fidelity-trim.test.js +0 -79
  62. package/dist/src/commands/file-secret-collector.d.ts +0 -50
  63. package/dist/src/commands/file-secret-collector.d.ts.map +0 -1
  64. package/dist/src/commands/file-secret-collector.js +0 -217
  65. package/dist/src/commands/flavors-a-convention-plugin-creates-are-still-found.test.d.ts +0 -38
  66. package/dist/src/commands/flavors-a-convention-plugin-creates-are-still-found.test.d.ts.map +0 -1
  67. package/dist/src/commands/flavors-a-convention-plugin-creates-are-still-found.test.js +0 -300
  68. package/dist/src/commands/github-workflow.d.ts +0 -5
  69. package/dist/src/commands/github-workflow.d.ts.map +0 -1
  70. package/dist/src/commands/github-workflow.js +0 -45
  71. package/dist/src/commands/index.d.ts +0 -33
  72. package/dist/src/commands/index.d.ts.map +0 -1
  73. package/dist/src/commands/index.js +0 -33
  74. package/dist/src/commands/init.d.ts +0 -20
  75. package/dist/src/commands/init.d.ts.map +0 -1
  76. package/dist/src/commands/init.js +0 -264
  77. package/dist/src/commands/ios-scanner.d.ts +0 -104
  78. package/dist/src/commands/ios-scanner.d.ts.map +0 -1
  79. package/dist/src/commands/ios-scanner.js +0 -492
  80. package/dist/src/commands/ios-scheme-ranking.test.d.ts +0 -2
  81. package/dist/src/commands/ios-scheme-ranking.test.d.ts.map +0 -1
  82. package/dist/src/commands/ios-scheme-ranking.test.js +0 -264
  83. package/dist/src/commands/local-properties-reaches-every-workflow.test.d.ts +0 -30
  84. package/dist/src/commands/local-properties-reaches-every-workflow.test.d.ts.map +0 -1
  85. package/dist/src/commands/local-properties-reaches-every-workflow.test.js +0 -146
  86. package/dist/src/commands/reset.d.ts +0 -7
  87. package/dist/src/commands/reset.d.ts.map +0 -1
  88. package/dist/src/commands/reset.js +0 -81
  89. package/dist/src/commands/run.d.ts +0 -22
  90. package/dist/src/commands/run.d.ts.map +0 -1
  91. package/dist/src/commands/run.js +0 -141
  92. package/dist/src/commands/secrets-sync-workflow.d.ts +0 -15
  93. package/dist/src/commands/secrets-sync-workflow.d.ts.map +0 -1
  94. package/dist/src/commands/secrets-sync-workflow.js +0 -255
  95. package/dist/src/commands/secrets-upload.d.ts +0 -21
  96. package/dist/src/commands/secrets-upload.d.ts.map +0 -1
  97. package/dist/src/commands/secrets-upload.js +0 -177
  98. package/dist/src/commands/secrets-upload.test.d.ts +0 -5
  99. package/dist/src/commands/secrets-upload.test.d.ts.map +0 -1
  100. package/dist/src/commands/secrets-upload.test.js +0 -60
  101. package/dist/src/commands/validate.d.ts +0 -10
  102. package/dist/src/commands/validate.d.ts.map +0 -1
  103. package/dist/src/commands/validate.js +0 -46
  104. package/dist/src/config.d.ts +0 -3
  105. package/dist/src/config.d.ts.map +0 -1
  106. package/dist/src/config.js +0 -47
  107. package/dist/src/envman/cli.d.ts +0 -21
  108. package/dist/src/envman/cli.d.ts.map +0 -1
  109. package/dist/src/envman/cli.js +0 -240
  110. package/dist/src/envman/envman.d.ts +0 -83
  111. package/dist/src/envman/envman.d.ts.map +0 -1
  112. package/dist/src/envman/envman.js +0 -361
  113. package/dist/src/envman/envman.test.d.ts +0 -5
  114. package/dist/src/envman/envman.test.d.ts.map +0 -1
  115. package/dist/src/envman/envman.test.js +0 -236
  116. package/dist/src/envman/envstore-round-trip.test.d.ts +0 -27
  117. package/dist/src/envman/envstore-round-trip.test.d.ts.map +0 -1
  118. package/dist/src/envman/envstore-round-trip.test.js +0 -130
  119. package/dist/src/envman/index.d.ts +0 -23
  120. package/dist/src/envman/index.d.ts.map +0 -1
  121. package/dist/src/envman/index.js +0 -23
  122. package/dist/src/envman/shim.d.ts +0 -16
  123. package/dist/src/envman/shim.d.ts.map +0 -1
  124. package/dist/src/envman/shim.js +0 -66
  125. package/dist/src/envman/types.d.ts +0 -55
  126. package/dist/src/envman/types.d.ts.map +0 -1
  127. package/dist/src/envman/types.js +0 -12
  128. package/dist/src/lib.d.ts +0 -33
  129. package/dist/src/lib.d.ts.map +0 -1
  130. package/dist/src/lib.js +0 -37
  131. package/dist/src/pipeline.d.ts +0 -3
  132. package/dist/src/pipeline.d.ts.map +0 -1
  133. package/dist/src/pipeline.js +0 -57
  134. package/dist/src/runner-node-step.test.d.ts +0 -12
  135. package/dist/src/runner-node-step.test.d.ts.map +0 -1
  136. package/dist/src/runner-node-step.test.js +0 -61
  137. package/dist/src/runner.d.ts +0 -31
  138. package/dist/src/runner.d.ts.map +0 -1
  139. package/dist/src/runner.js +0 -240
  140. package/dist/src/shared/detect-project.d.ts +0 -57
  141. package/dist/src/shared/detect-project.d.ts.map +0 -1
  142. package/dist/src/shared/detect-project.js +0 -219
  143. package/dist/src/shared/detect-project.test.d.ts +0 -2
  144. package/dist/src/shared/detect-project.test.d.ts.map +0 -1
  145. package/dist/src/shared/detect-project.test.js +0 -161
  146. package/dist/src/shared/git.d.ts +0 -25
  147. package/dist/src/shared/git.d.ts.map +0 -1
  148. package/dist/src/shared/git.js +0 -53
  149. package/dist/src/shared/git.test.d.ts +0 -9
  150. package/dist/src/shared/git.test.d.ts.map +0 -1
  151. package/dist/src/shared/git.test.js +0 -66
  152. package/dist/src/shared/gitignore.d.ts +0 -6
  153. package/dist/src/shared/gitignore.d.ts.map +0 -1
  154. package/dist/src/shared/gitignore.js +0 -26
  155. package/dist/src/shared/gradle-settings.d.ts +0 -49
  156. package/dist/src/shared/gradle-settings.d.ts.map +0 -1
  157. package/dist/src/shared/gradle-settings.js +0 -138
  158. package/dist/src/shared/gradle-settings.test.d.ts +0 -2
  159. package/dist/src/shared/gradle-settings.test.d.ts.map +0 -1
  160. package/dist/src/shared/gradle-settings.test.js +0 -65
  161. package/dist/src/shared/prompts.d.ts +0 -30
  162. package/dist/src/shared/prompts.d.ts.map +0 -1
  163. package/dist/src/shared/prompts.js +0 -121
  164. package/dist/src/shared/xcode-container.test.d.ts +0 -2
  165. package/dist/src/shared/xcode-container.test.d.ts.map +0 -1
  166. package/dist/src/shared/xcode-container.test.js +0 -123
  167. package/dist/src/step-marker.d.ts +0 -12
  168. package/dist/src/step-marker.d.ts.map +0 -1
  169. package/dist/src/step-marker.js +0 -29
  170. package/dist/src/step-marker.test.d.ts +0 -11
  171. package/dist/src/step-marker.test.d.ts.map +0 -1
  172. package/dist/src/step-marker.test.js +0 -45
  173. package/dist/src/types.d.ts +0 -58
  174. package/dist/src/types.d.ts.map +0 -1
  175. package/dist/src/types.js +0 -2
  176. package/dist/src/yaml/a-cache-path-must-not-swallow-a-credential.test.d.ts +0 -28
  177. package/dist/src/yaml/a-cache-path-must-not-swallow-a-credential.test.d.ts.map +0 -1
  178. package/dist/src/yaml/a-cache-path-must-not-swallow-a-credential.test.js +0 -223
  179. package/dist/src/yaml/a-declared-secret-reaches-the-file-step.test.d.ts +0 -20
  180. package/dist/src/yaml/a-declared-secret-reaches-the-file-step.test.d.ts.map +0 -1
  181. package/dist/src/yaml/a-declared-secret-reaches-the-file-step.test.js +0 -201
  182. package/dist/src/yaml/a-declared-slot-may-name-the-workflow-it-belongs-to.test.d.ts +0 -37
  183. package/dist/src/yaml/a-declared-slot-may-name-the-workflow-it-belongs-to.test.d.ts.map +0 -1
  184. package/dist/src/yaml/a-declared-slot-may-name-the-workflow-it-belongs-to.test.js +0 -255
  185. package/dist/src/yaml/a-missing-credential-is-loud.test.d.ts +0 -32
  186. package/dist/src/yaml/a-missing-credential-is-loud.test.d.ts.map +0 -1
  187. package/dist/src/yaml/a-missing-credential-is-loud.test.js +0 -301
  188. package/dist/src/yaml/a-runtime-requirement-names-a-real-provider.test.d.ts +0 -18
  189. package/dist/src/yaml/a-runtime-requirement-names-a-real-provider.test.d.ts.map +0 -1
  190. package/dist/src/yaml/a-runtime-requirement-names-a-real-provider.test.js +0 -66
  191. package/dist/src/yaml/a-scoped-slot-must-name-a-workflow-the-pipeline-has.test.d.ts +0 -34
  192. package/dist/src/yaml/a-scoped-slot-must-name-a-workflow-the-pipeline-has.test.d.ts.map +0 -1
  193. package/dist/src/yaml/a-scoped-slot-must-name-a-workflow-the-pipeline-has.test.js +0 -218
  194. package/dist/src/yaml/a-value-this-instance-stored-is-a-value-it-has.test.d.ts +0 -27
  195. package/dist/src/yaml/a-value-this-instance-stored-is-a-value-it-has.test.d.ts.map +0 -1
  196. package/dist/src/yaml/a-value-this-instance-stored-is-a-value-it-has.test.js +0 -126
  197. package/dist/src/yaml/bitrise-compat.d.ts +0 -65
  198. package/dist/src/yaml/bitrise-compat.d.ts.map +0 -1
  199. package/dist/src/yaml/bitrise-compat.js +0 -206
  200. package/dist/src/yaml/bitrise-compat.test.d.ts +0 -5
  201. package/dist/src/yaml/bitrise-compat.test.d.ts.map +0 -1
  202. package/dist/src/yaml/bitrise-compat.test.js +0 -347
  203. package/dist/src/yaml/cache-key-missing-file.test.d.ts +0 -12
  204. package/dist/src/yaml/cache-key-missing-file.test.d.ts.map +0 -1
  205. package/dist/src/yaml/cache-key-missing-file.test.js +0 -116
  206. package/dist/src/yaml/converter.d.ts +0 -103
  207. package/dist/src/yaml/converter.d.ts.map +0 -1
  208. package/dist/src/yaml/converter.js +0 -420
  209. package/dist/src/yaml/converter.test.d.ts +0 -5
  210. package/dist/src/yaml/converter.test.d.ts.map +0 -1
  211. package/dist/src/yaml/converter.test.js +0 -548
  212. package/dist/src/yaml/e2e.test.d.ts +0 -6
  213. package/dist/src/yaml/e2e.test.d.ts.map +0 -1
  214. package/dist/src/yaml/e2e.test.js +0 -446
  215. package/dist/src/yaml/env-resolver.d.ts +0 -218
  216. package/dist/src/yaml/env-resolver.d.ts.map +0 -1
  217. package/dist/src/yaml/env-resolver.js +0 -591
  218. package/dist/src/yaml/env-resolver.test.d.ts +0 -5
  219. package/dist/src/yaml/env-resolver.test.d.ts.map +0 -1
  220. package/dist/src/yaml/env-resolver.test.js +0 -502
  221. package/dist/src/yaml/every-build-log-witnesses-the-commit-on-disk.test.d.ts +0 -16
  222. package/dist/src/yaml/every-build-log-witnesses-the-commit-on-disk.test.d.ts.map +0 -1
  223. package/dist/src/yaml/every-build-log-witnesses-the-commit-on-disk.test.js +0 -126
  224. package/dist/src/yaml/fidelity-input-digest.d.ts +0 -37
  225. package/dist/src/yaml/fidelity-input-digest.d.ts.map +0 -1
  226. package/dist/src/yaml/fidelity-input-digest.js +0 -208
  227. package/dist/src/yaml/fidelity-input-digest.test.d.ts +0 -2
  228. package/dist/src/yaml/fidelity-input-digest.test.d.ts.map +0 -1
  229. package/dist/src/yaml/fidelity-input-digest.test.js +0 -167
  230. package/dist/src/yaml/fidelity-manifest.d.ts +0 -126
  231. package/dist/src/yaml/fidelity-manifest.d.ts.map +0 -1
  232. package/dist/src/yaml/fidelity-manifest.js +0 -134
  233. package/dist/src/yaml/fidelity-manifest.test.d.ts +0 -12
  234. package/dist/src/yaml/fidelity-manifest.test.d.ts.map +0 -1
  235. package/dist/src/yaml/fidelity-manifest.test.js +0 -251
  236. package/dist/src/yaml/interactive-prompts.d.ts +0 -71
  237. package/dist/src/yaml/interactive-prompts.d.ts.map +0 -1
  238. package/dist/src/yaml/interactive-prompts.js +0 -260
  239. package/dist/src/yaml/meta-helpers.d.ts +0 -28
  240. package/dist/src/yaml/meta-helpers.d.ts.map +0 -1
  241. package/dist/src/yaml/meta-helpers.js +0 -46
  242. package/dist/src/yaml/missing-env-handler.d.ts +0 -45
  243. package/dist/src/yaml/missing-env-handler.d.ts.map +0 -1
  244. package/dist/src/yaml/missing-env-handler.js +0 -64
  245. package/dist/src/yaml/parser.d.ts +0 -33
  246. package/dist/src/yaml/parser.d.ts.map +0 -1
  247. package/dist/src/yaml/parser.js +0 -148
  248. package/dist/src/yaml/parser.test.d.ts +0 -5
  249. package/dist/src/yaml/parser.test.d.ts.map +0 -1
  250. package/dist/src/yaml/parser.test.js +0 -83
  251. package/dist/src/yaml/pipeline-with-secrets.d.ts +0 -25
  252. package/dist/src/yaml/pipeline-with-secrets.d.ts.map +0 -1
  253. package/dist/src/yaml/pipeline-with-secrets.js +0 -76
  254. package/dist/src/yaml/platform-detector.d.ts +0 -83
  255. package/dist/src/yaml/platform-detector.d.ts.map +0 -1
  256. package/dist/src/yaml/platform-detector.js +0 -189
  257. package/dist/src/yaml/platform-detector.test.d.ts +0 -5
  258. package/dist/src/yaml/platform-detector.test.d.ts.map +0 -1
  259. package/dist/src/yaml/platform-detector.test.js +0 -525
  260. package/dist/src/yaml/preflight-validation.d.ts +0 -29
  261. package/dist/src/yaml/preflight-validation.d.ts.map +0 -1
  262. package/dist/src/yaml/preflight-validation.js +0 -21
  263. package/dist/src/yaml/secrets-manager.d.ts +0 -87
  264. package/dist/src/yaml/secrets-manager.d.ts.map +0 -1
  265. package/dist/src/yaml/secrets-manager.js +0 -230
  266. package/dist/src/yaml/shell-assignments.d.ts +0 -40
  267. package/dist/src/yaml/shell-assignments.d.ts.map +0 -1
  268. package/dist/src/yaml/shell-assignments.js +0 -77
  269. package/dist/src/yaml/step-validator-check-failure.test.d.ts +0 -24
  270. package/dist/src/yaml/step-validator-check-failure.test.d.ts.map +0 -1
  271. package/dist/src/yaml/step-validator-check-failure.test.js +0 -130
  272. package/dist/src/yaml/step-validator-self-assigned.test.d.ts +0 -23
  273. package/dist/src/yaml/step-validator-self-assigned.test.d.ts.map +0 -1
  274. package/dist/src/yaml/step-validator-self-assigned.test.js +0 -191
  275. package/dist/src/yaml/step-validator.d.ts +0 -67
  276. package/dist/src/yaml/step-validator.d.ts.map +0 -1
  277. package/dist/src/yaml/step-validator.js +0 -466
  278. package/dist/src/yaml/step-validator.test.d.ts +0 -18
  279. package/dist/src/yaml/step-validator.test.d.ts.map +0 -1
  280. package/dist/src/yaml/step-validator.test.js +0 -140
  281. package/dist/src/yaml/steps/a-missing-pinned-jdk-yields-for-every-gradle-run.test.d.ts +0 -2
  282. package/dist/src/yaml/steps/a-missing-pinned-jdk-yields-for-every-gradle-run.test.d.ts.map +0 -1
  283. package/dist/src/yaml/steps/a-missing-pinned-jdk-yields-for-every-gradle-run.test.js +0 -96
  284. package/dist/src/yaml/steps/android-sign.d.ts +0 -35
  285. package/dist/src/yaml/steps/android-sign.d.ts.map +0 -1
  286. package/dist/src/yaml/steps/android-sign.js +0 -147
  287. package/dist/src/yaml/steps/android-variant-resolution.test.d.ts +0 -2
  288. package/dist/src/yaml/steps/android-variant-resolution.test.d.ts.map +0 -1
  289. package/dist/src/yaml/steps/android-variant-resolution.test.js +0 -260
  290. package/dist/src/yaml/steps/android-version.d.ts +0 -26
  291. package/dist/src/yaml/steps/android-version.d.ts.map +0 -1
  292. package/dist/src/yaml/steps/android-version.js +0 -128
  293. package/dist/src/yaml/steps/android-version.test.d.ts +0 -5
  294. package/dist/src/yaml/steps/android-version.test.d.ts.map +0 -1
  295. package/dist/src/yaml/steps/android-version.test.js +0 -196
  296. package/dist/src/yaml/steps/android.d.ts +0 -156
  297. package/dist/src/yaml/steps/android.d.ts.map +0 -1
  298. package/dist/src/yaml/steps/android.js +0 -1100
  299. package/dist/src/yaml/steps/app-store-deploy.d.ts +0 -48
  300. package/dist/src/yaml/steps/app-store-deploy.d.ts.map +0 -1
  301. package/dist/src/yaml/steps/app-store-deploy.js +0 -167
  302. package/dist/src/yaml/steps/base.d.ts +0 -263
  303. package/dist/src/yaml/steps/base.d.ts.map +0 -1
  304. package/dist/src/yaml/steps/base.js +0 -380
  305. package/dist/src/yaml/steps/bitrise-android-tools.d.ts +0 -26
  306. package/dist/src/yaml/steps/bitrise-android-tools.d.ts.map +0 -1
  307. package/dist/src/yaml/steps/bitrise-android-tools.js +0 -200
  308. package/dist/src/yaml/steps/bitrise-android-tools.test.d.ts +0 -5
  309. package/dist/src/yaml/steps/bitrise-android-tools.test.d.ts.map +0 -1
  310. package/dist/src/yaml/steps/bitrise-android-tools.test.js +0 -280
  311. package/dist/src/yaml/steps/bitrise-apk-info.d.ts +0 -22
  312. package/dist/src/yaml/steps/bitrise-apk-info.d.ts.map +0 -1
  313. package/dist/src/yaml/steps/bitrise-apk-info.js +0 -144
  314. package/dist/src/yaml/steps/bitrise-apk-info.test.d.ts +0 -5
  315. package/dist/src/yaml/steps/bitrise-apk-info.test.d.ts.map +0 -1
  316. package/dist/src/yaml/steps/bitrise-apk-info.test.js +0 -331
  317. package/dist/src/yaml/steps/bitrise-slack.d.ts +0 -49
  318. package/dist/src/yaml/steps/bitrise-slack.d.ts.map +0 -1
  319. package/dist/src/yaml/steps/bitrise-slack.js +0 -280
  320. package/dist/src/yaml/steps/bitrise-slack.test.d.ts +0 -5
  321. package/dist/src/yaml/steps/bitrise-slack.test.d.ts.map +0 -1
  322. package/dist/src/yaml/steps/bitrise-slack.test.js +0 -484
  323. package/dist/src/yaml/steps/bitrise-ssh.d.ts +0 -27
  324. package/dist/src/yaml/steps/bitrise-ssh.d.ts.map +0 -1
  325. package/dist/src/yaml/steps/bitrise-ssh.js +0 -134
  326. package/dist/src/yaml/steps/bitrise-ssh.test.d.ts +0 -5
  327. package/dist/src/yaml/steps/bitrise-ssh.test.d.ts.map +0 -1
  328. package/dist/src/yaml/steps/bitrise-ssh.test.js +0 -205
  329. package/dist/src/yaml/steps/cache-pull-daemon.test.d.ts +0 -27
  330. package/dist/src/yaml/steps/cache-pull-daemon.test.d.ts.map +0 -1
  331. package/dist/src/yaml/steps/cache-pull-daemon.test.js +0 -212
  332. package/dist/src/yaml/steps/cache-pull-restore-roots.test.d.ts +0 -42
  333. package/dist/src/yaml/steps/cache-pull-restore-roots.test.d.ts.map +0 -1
  334. package/dist/src/yaml/steps/cache-pull-restore-roots.test.js +0 -209
  335. package/dist/src/yaml/steps/cache-push-daemon.test.d.ts +0 -27
  336. package/dist/src/yaml/steps/cache-push-daemon.test.d.ts.map +0 -1
  337. package/dist/src/yaml/steps/cache-push-daemon.test.js +0 -171
  338. package/dist/src/yaml/steps/cache.d.ts +0 -59
  339. package/dist/src/yaml/steps/cache.d.ts.map +0 -1
  340. package/dist/src/yaml/steps/cache.js +0 -1027
  341. package/dist/src/yaml/steps/capture-injection.d.ts +0 -30
  342. package/dist/src/yaml/steps/capture-injection.d.ts.map +0 -1
  343. package/dist/src/yaml/steps/capture-injection.js +0 -88
  344. package/dist/src/yaml/steps/capture-injection.test.d.ts +0 -2
  345. package/dist/src/yaml/steps/capture-injection.test.d.ts.map +0 -1
  346. package/dist/src/yaml/steps/capture-injection.test.js +0 -163
  347. package/dist/src/yaml/steps/cocoapods-deployment-floor.d.ts +0 -42
  348. package/dist/src/yaml/steps/cocoapods-deployment-floor.d.ts.map +0 -1
  349. package/dist/src/yaml/steps/cocoapods-deployment-floor.js +0 -140
  350. package/dist/src/yaml/steps/cocoapods-deployment-floor.test.d.ts +0 -11
  351. package/dist/src/yaml/steps/cocoapods-deployment-floor.test.d.ts.map +0 -1
  352. package/dist/src/yaml/steps/cocoapods-deployment-floor.test.js +0 -176
  353. package/dist/src/yaml/steps/cocoapods-install-emits-valid-bash.test.d.ts +0 -22
  354. package/dist/src/yaml/steps/cocoapods-install-emits-valid-bash.test.d.ts.map +0 -1
  355. package/dist/src/yaml/steps/cocoapods-install-emits-valid-bash.test.js +0 -97
  356. package/dist/src/yaml/steps/cocoapods-locked-bundler.test.d.ts +0 -17
  357. package/dist/src/yaml/steps/cocoapods-locked-bundler.test.d.ts.map +0 -1
  358. package/dist/src/yaml/steps/cocoapods-locked-bundler.test.js +0 -282
  359. package/dist/src/yaml/steps/cocoapods-skip-if-absent.test.d.ts +0 -17
  360. package/dist/src/yaml/steps/cocoapods-skip-if-absent.test.d.ts.map +0 -1
  361. package/dist/src/yaml/steps/cocoapods-skip-if-absent.test.js +0 -132
  362. package/dist/src/yaml/steps/envstore-loader.test.d.ts +0 -15
  363. package/dist/src/yaml/steps/envstore-loader.test.d.ts.map +0 -1
  364. package/dist/src/yaml/steps/envstore-loader.test.js +0 -143
  365. package/dist/src/yaml/steps/fastlane.d.ts +0 -27
  366. package/dist/src/yaml/steps/fastlane.d.ts.map +0 -1
  367. package/dist/src/yaml/steps/fastlane.js +0 -79
  368. package/dist/src/yaml/steps/fidelity-aspect-guard.d.ts +0 -53
  369. package/dist/src/yaml/steps/fidelity-aspect-guard.d.ts.map +0 -1
  370. package/dist/src/yaml/steps/fidelity-aspect-guard.js +0 -72
  371. package/dist/src/yaml/steps/fidelity-aspect-guard.test.d.ts +0 -11
  372. package/dist/src/yaml/steps/fidelity-aspect-guard.test.d.ts.map +0 -1
  373. package/dist/src/yaml/steps/fidelity-aspect-guard.test.js +0 -50
  374. package/dist/src/yaml/steps/fidelity-reference-provenance.d.ts +0 -87
  375. package/dist/src/yaml/steps/fidelity-reference-provenance.d.ts.map +0 -1
  376. package/dist/src/yaml/steps/fidelity-reference-provenance.js +0 -111
  377. package/dist/src/yaml/steps/fidelity-reference-provenance.test.d.ts +0 -22
  378. package/dist/src/yaml/steps/fidelity-reference-provenance.test.d.ts.map +0 -1
  379. package/dist/src/yaml/steps/fidelity-reference-provenance.test.js +0 -118
  380. package/dist/src/yaml/steps/file.d.ts +0 -52
  381. package/dist/src/yaml/steps/file.d.ts.map +0 -1
  382. package/dist/src/yaml/steps/file.js +0 -108
  383. package/dist/src/yaml/steps/flutter.d.ts +0 -63
  384. package/dist/src/yaml/steps/flutter.d.ts.map +0 -1
  385. package/dist/src/yaml/steps/flutter.js +0 -215
  386. package/dist/src/yaml/steps/git-clone-names-the-inputs-it-ignores.test.d.ts +0 -16
  387. package/dist/src/yaml/steps/git-clone-names-the-inputs-it-ignores.test.d.ts.map +0 -1
  388. package/dist/src/yaml/steps/git-clone-names-the-inputs-it-ignores.test.js +0 -127
  389. package/dist/src/yaml/steps/git-clone.d.ts +0 -32
  390. package/dist/src/yaml/steps/git-clone.d.ts.map +0 -1
  391. package/dist/src/yaml/steps/git-clone.js +0 -171
  392. package/dist/src/yaml/steps/git-fetch-retry-exec.test.d.ts +0 -10
  393. package/dist/src/yaml/steps/git-fetch-retry-exec.test.d.ts.map +0 -1
  394. package/dist/src/yaml/steps/git-fetch-retry-exec.test.js +0 -162
  395. package/dist/src/yaml/steps/git-fetch-retry.d.ts +0 -62
  396. package/dist/src/yaml/steps/git-fetch-retry.d.ts.map +0 -1
  397. package/dist/src/yaml/steps/git-fetch-retry.js +0 -155
  398. package/dist/src/yaml/steps/git-fetch-retry.test.d.ts +0 -5
  399. package/dist/src/yaml/steps/git-fetch-retry.test.d.ts.map +0 -1
  400. package/dist/src/yaml/steps/git-fetch-retry.test.js +0 -86
  401. package/dist/src/yaml/steps/google-play-deploy.d.ts +0 -37
  402. package/dist/src/yaml/steps/google-play-deploy.d.ts.map +0 -1
  403. package/dist/src/yaml/steps/google-play-deploy.js +0 -193
  404. package/dist/src/yaml/steps/google-play-deploy.test.d.ts +0 -5
  405. package/dist/src/yaml/steps/google-play-deploy.test.d.ts.map +0 -1
  406. package/dist/src/yaml/steps/google-play-deploy.test.js +0 -310
  407. package/dist/src/yaml/steps/gradle-memory.d.ts +0 -91
  408. package/dist/src/yaml/steps/gradle-memory.d.ts.map +0 -1
  409. package/dist/src/yaml/steps/gradle-memory.js +0 -495
  410. package/dist/src/yaml/steps/gradle-memory.test.d.ts +0 -2
  411. package/dist/src/yaml/steps/gradle-memory.test.d.ts.map +0 -1
  412. package/dist/src/yaml/steps/gradle-memory.test.js +0 -344
  413. package/dist/src/yaml/steps/gradle-sdk-cmake.d.ts +0 -28
  414. package/dist/src/yaml/steps/gradle-sdk-cmake.d.ts.map +0 -1
  415. package/dist/src/yaml/steps/gradle-sdk-cmake.js +0 -107
  416. package/dist/src/yaml/steps/gradle-sdk-cmake.test.d.ts +0 -2
  417. package/dist/src/yaml/steps/gradle-sdk-cmake.test.d.ts.map +0 -1
  418. package/dist/src/yaml/steps/gradle-sdk-cmake.test.js +0 -183
  419. package/dist/src/yaml/steps/index.d.ts +0 -10
  420. package/dist/src/yaml/steps/index.d.ts.map +0 -1
  421. package/dist/src/yaml/steps/index.js +0 -1461
  422. package/dist/src/yaml/steps/ios-deps.d.ts +0 -78
  423. package/dist/src/yaml/steps/ios-deps.d.ts.map +0 -1
  424. package/dist/src/yaml/steps/ios-deps.js +0 -279
  425. package/dist/src/yaml/steps/ios-deps.test.d.ts +0 -5
  426. package/dist/src/yaml/steps/ios-deps.test.d.ts.map +0 -1
  427. package/dist/src/yaml/steps/ios-deps.test.js +0 -90
  428. package/dist/src/yaml/steps/ios-signing.d.ts +0 -31
  429. package/dist/src/yaml/steps/ios-signing.d.ts.map +0 -1
  430. package/dist/src/yaml/steps/ios-signing.js +0 -144
  431. package/dist/src/yaml/steps/ios-version.d.ts +0 -47
  432. package/dist/src/yaml/steps/ios-version.d.ts.map +0 -1
  433. package/dist/src/yaml/steps/ios-version.js +0 -151
  434. package/dist/src/yaml/steps/java-home-version-spec.test.d.ts +0 -10
  435. package/dist/src/yaml/steps/java-home-version-spec.test.d.ts.map +0 -1
  436. package/dist/src/yaml/steps/java-home-version-spec.test.js +0 -58
  437. package/dist/src/yaml/steps/kotlin-metadata-compiles-on-a-daemon.test.d.ts +0 -2
  438. package/dist/src/yaml/steps/kotlin-metadata-compiles-on-a-daemon.test.d.ts.map +0 -1
  439. package/dist/src/yaml/steps/kotlin-metadata-compiles-on-a-daemon.test.js +0 -139
  440. package/dist/src/yaml/steps/linting.d.ts +0 -47
  441. package/dist/src/yaml/steps/linting.d.ts.map +0 -1
  442. package/dist/src/yaml/steps/linting.js +0 -148
  443. package/dist/src/yaml/steps/phase2.test.d.ts +0 -6
  444. package/dist/src/yaml/steps/phase2.test.d.ts.map +0 -1
  445. package/dist/src/yaml/steps/phase2.test.js +0 -197
  446. package/dist/src/yaml/steps/phase3.test.d.ts +0 -5
  447. package/dist/src/yaml/steps/phase3.test.d.ts.map +0 -1
  448. package/dist/src/yaml/steps/phase3.test.js +0 -144
  449. package/dist/src/yaml/steps/phase4.test.d.ts +0 -5
  450. package/dist/src/yaml/steps/phase4.test.d.ts.map +0 -1
  451. package/dist/src/yaml/steps/phase4.test.js +0 -166
  452. package/dist/src/yaml/steps/phase5.test.d.ts +0 -6
  453. package/dist/src/yaml/steps/phase5.test.d.ts.map +0 -1
  454. package/dist/src/yaml/steps/phase5.test.js +0 -263
  455. package/dist/src/yaml/steps/registry.d.ts +0 -88
  456. package/dist/src/yaml/steps/registry.d.ts.map +0 -1
  457. package/dist/src/yaml/steps/registry.js +0 -125
  458. package/dist/src/yaml/steps/registry.test.d.ts +0 -5
  459. package/dist/src/yaml/steps/registry.test.d.ts.map +0 -1
  460. package/dist/src/yaml/steps/registry.test.js +0 -235
  461. package/dist/src/yaml/steps/release.d.ts +0 -50
  462. package/dist/src/yaml/steps/release.d.ts.map +0 -1
  463. package/dist/src/yaml/steps/release.js +0 -154
  464. package/dist/src/yaml/steps/render-post-processor.d.ts +0 -100
  465. package/dist/src/yaml/steps/render-post-processor.d.ts.map +0 -1
  466. package/dist/src/yaml/steps/render-post-processor.js +0 -270
  467. package/dist/src/yaml/steps/render-post-processor.test.d.ts +0 -13
  468. package/dist/src/yaml/steps/render-post-processor.test.d.ts.map +0 -1
  469. package/dist/src/yaml/steps/render-post-processor.test.js +0 -220
  470. package/dist/src/yaml/steps/script.d.ts +0 -23
  471. package/dist/src/yaml/steps/script.d.ts.map +0 -1
  472. package/dist/src/yaml/steps/script.js +0 -63
  473. package/dist/src/yaml/steps/spec-validation.test.d.ts +0 -6
  474. package/dist/src/yaml/steps/spec-validation.test.d.ts.map +0 -1
  475. package/dist/src/yaml/steps/spec-validation.test.js +0 -130
  476. package/dist/src/yaml/steps/steps.test.d.ts +0 -6
  477. package/dist/src/yaml/steps/steps.test.d.ts.map +0 -1
  478. package/dist/src/yaml/steps/steps.test.js +0 -881
  479. package/dist/src/yaml/steps/structural-facts.d.ts +0 -992
  480. package/dist/src/yaml/steps/structural-facts.d.ts.map +0 -1
  481. package/dist/src/yaml/steps/structural-facts.js +0 -3276
  482. package/dist/src/yaml/steps/structural-facts.test.d.ts +0 -12
  483. package/dist/src/yaml/steps/structural-facts.test.d.ts.map +0 -1
  484. package/dist/src/yaml/steps/structural-facts.test.js +0 -3039
  485. package/dist/src/yaml/steps/test-config.d.ts +0 -5
  486. package/dist/src/yaml/steps/test-config.d.ts.map +0 -1
  487. package/dist/src/yaml/steps/test-config.js +0 -25
  488. package/dist/src/yaml/steps/trim-align-corpus.test.d.ts +0 -28
  489. package/dist/src/yaml/steps/trim-align-corpus.test.d.ts.map +0 -1
  490. package/dist/src/yaml/steps/trim-align-corpus.test.js +0 -383
  491. package/dist/src/yaml/steps/trim-align.d.ts +0 -87
  492. package/dist/src/yaml/steps/trim-align.d.ts.map +0 -1
  493. package/dist/src/yaml/steps/trim-align.js +0 -367
  494. package/dist/src/yaml/steps/trim-align.test.d.ts +0 -11
  495. package/dist/src/yaml/steps/trim-align.test.d.ts.map +0 -1
  496. package/dist/src/yaml/steps/trim-align.test.js +0 -261
  497. package/dist/src/yaml/steps/ui-fidelity-preview-android.d.ts +0 -66
  498. package/dist/src/yaml/steps/ui-fidelity-preview-android.d.ts.map +0 -1
  499. package/dist/src/yaml/steps/ui-fidelity-preview-android.js +0 -251
  500. package/dist/src/yaml/steps/ui-fidelity-preview-android.test.d.ts +0 -13
  501. package/dist/src/yaml/steps/ui-fidelity-preview-android.test.d.ts.map +0 -1
  502. package/dist/src/yaml/steps/ui-fidelity-preview-android.test.js +0 -302
  503. package/dist/src/yaml/steps/ui-fidelity-preview.d.ts +0 -134
  504. package/dist/src/yaml/steps/ui-fidelity-preview.d.ts.map +0 -1
  505. package/dist/src/yaml/steps/ui-fidelity-preview.js +0 -173
  506. package/dist/src/yaml/steps/ui-fidelity-preview.test.d.ts +0 -11
  507. package/dist/src/yaml/steps/ui-fidelity-preview.test.d.ts.map +0 -1
  508. package/dist/src/yaml/steps/ui-fidelity-preview.test.js +0 -210
  509. package/dist/src/yaml/steps/ui-fidelity-render-android.d.ts +0 -155
  510. package/dist/src/yaml/steps/ui-fidelity-render-android.d.ts.map +0 -1
  511. package/dist/src/yaml/steps/ui-fidelity-render-android.js +0 -1389
  512. package/dist/src/yaml/steps/ui-fidelity-render-android.test.d.ts +0 -2
  513. package/dist/src/yaml/steps/ui-fidelity-render-android.test.d.ts.map +0 -1
  514. package/dist/src/yaml/steps/ui-fidelity-render-android.test.js +0 -1106
  515. package/dist/src/yaml/steps/ui-fidelity-render.d.ts +0 -230
  516. package/dist/src/yaml/steps/ui-fidelity-render.d.ts.map +0 -1
  517. package/dist/src/yaml/steps/ui-fidelity-render.js +0 -1597
  518. package/dist/src/yaml/steps/ui-fidelity-render.test.d.ts +0 -18
  519. package/dist/src/yaml/steps/ui-fidelity-render.test.d.ts.map +0 -1
  520. package/dist/src/yaml/steps/ui-fidelity-render.test.js +0 -1871
  521. package/dist/src/yaml/steps/xcode-app-product.d.ts +0 -90
  522. package/dist/src/yaml/steps/xcode-app-product.d.ts.map +0 -1
  523. package/dist/src/yaml/steps/xcode-app-product.js +0 -247
  524. package/dist/src/yaml/steps/xcode-app-product.test.d.ts +0 -2
  525. package/dist/src/yaml/steps/xcode-app-product.test.d.ts.map +0 -1
  526. package/dist/src/yaml/steps/xcode-app-product.test.js +0 -202
  527. package/dist/src/yaml/steps/xcode-derived-data.test.d.ts +0 -30
  528. package/dist/src/yaml/steps/xcode-derived-data.test.d.ts.map +0 -1
  529. package/dist/src/yaml/steps/xcode-derived-data.test.js +0 -279
  530. package/dist/src/yaml/steps/xcode-destination.d.ts +0 -47
  531. package/dist/src/yaml/steps/xcode-destination.d.ts.map +0 -1
  532. package/dist/src/yaml/steps/xcode-destination.js +0 -202
  533. package/dist/src/yaml/steps/xcode-destination.test.d.ts +0 -9
  534. package/dist/src/yaml/steps/xcode-destination.test.d.ts.map +0 -1
  535. package/dist/src/yaml/steps/xcode-destination.test.js +0 -227
  536. package/dist/src/yaml/steps/xcode-new.test.d.ts +0 -5
  537. package/dist/src/yaml/steps/xcode-new.test.d.ts.map +0 -1
  538. package/dist/src/yaml/steps/xcode-new.test.js +0 -211
  539. package/dist/src/yaml/steps/xcode-resolve-retry.test.d.ts +0 -9
  540. package/dist/src/yaml/steps/xcode-resolve-retry.test.d.ts.map +0 -1
  541. package/dist/src/yaml/steps/xcode-resolve-retry.test.js +0 -146
  542. package/dist/src/yaml/steps/xcode-simulator-archs.d.ts +0 -53
  543. package/dist/src/yaml/steps/xcode-simulator-archs.d.ts.map +0 -1
  544. package/dist/src/yaml/steps/xcode-simulator-archs.js +0 -98
  545. package/dist/src/yaml/steps/xcode-simulator-archs.test.d.ts +0 -21
  546. package/dist/src/yaml/steps/xcode-simulator-archs.test.d.ts.map +0 -1
  547. package/dist/src/yaml/steps/xcode-simulator-archs.test.js +0 -155
  548. package/dist/src/yaml/steps/xcode.d.ts +0 -230
  549. package/dist/src/yaml/steps/xcode.d.ts.map +0 -1
  550. package/dist/src/yaml/steps/xcode.js +0 -1350
  551. package/dist/src/yaml/types.d.ts +0 -76
  552. package/dist/src/yaml/types.d.ts.map +0 -1
  553. package/dist/src/yaml/types.js +0 -5
  554. package/dist/src/yaml/validation-types.d.ts +0 -102
  555. package/dist/src/yaml/validation-types.d.ts.map +0 -1
  556. package/dist/src/yaml/validation-types.js +0 -8
  557. package/dist/src/yaml/yaml-updater.d.ts +0 -24
  558. package/dist/src/yaml/yaml-updater.d.ts.map +0 -1
  559. package/dist/src/yaml/yaml-updater.js +0 -128
@@ -1,361 +0,0 @@
1
- /**
2
- * CI Build Environment Variable Manager (envman)
3
- *
4
- * A tool for managing environment variables between CI/CD pipeline steps.
5
- * Similar to Bitrise's envman, this allows scripts to register outputs
6
- * that subsequent steps can use as environment variables.
7
- *
8
- * Usage:
9
- * envman add --key KEY --value 'value'
10
- * envman add --key KEY --valuefile /path/to/file
11
- * echo "value" | envman add --key KEY
12
- * envman run <command>
13
- * envman print [--format json|export]
14
- * envman clear
15
- */
16
- import { readFileSync, writeFileSync, existsSync, unlinkSync } from 'node:fs';
17
- import { spawn } from 'node:child_process';
18
- import { resolve } from 'node:path';
19
- import { DEFAULT_STORE_FILE, STORE_VERSION } from './types.js';
20
- /**
21
- * Get the path to the envstore file
22
- * Uses ENVMAN_ENVSTORE_PATH env var if set, otherwise defaults to .envstore.json in cwd
23
- */
24
- export function getStorePath() {
25
- return process.env.ENVMAN_ENVSTORE_PATH || resolve(process.cwd(), DEFAULT_STORE_FILE);
26
- }
27
- /**
28
- * Load the environment store from disk
29
- * Returns an empty store if file doesn't exist
30
- */
31
- export function loadStore(storePath) {
32
- const path = storePath || getStorePath();
33
- if (!existsSync(path)) {
34
- return createEmptyStore();
35
- }
36
- try {
37
- const content = readFileSync(path, 'utf-8');
38
- const store = JSON.parse(content);
39
- // Validate store structure
40
- if (!store.version || !Array.isArray(store.envs)) {
41
- console.error('Warning: Invalid envstore format, creating new store');
42
- return createEmptyStore();
43
- }
44
- return store;
45
- }
46
- catch (error) {
47
- console.error(`Warning: Failed to read envstore at ${path}, creating new store`);
48
- return createEmptyStore();
49
- }
50
- }
51
- /**
52
- * Save the environment store to disk
53
- */
54
- export function saveStore(store, storePath) {
55
- const path = storePath || getStorePath();
56
- writeFileSync(path, JSON.stringify(store, null, 2), 'utf-8');
57
- }
58
- /**
59
- * Create an empty environment store
60
- */
61
- export function createEmptyStore() {
62
- return {
63
- version: STORE_VERSION,
64
- envs: [],
65
- };
66
- }
67
- /**
68
- * Initialize a new envstore file
69
- * Creates an empty store at the specified path (or default)
70
- */
71
- export function init(storePath) {
72
- const path = storePath || getStorePath();
73
- if (existsSync(path)) {
74
- return {
75
- success: false,
76
- error: `Envstore already exists at ${path}. Use 'clear' to reset.`,
77
- };
78
- }
79
- const store = createEmptyStore();
80
- saveStore(store, path);
81
- return {
82
- success: true,
83
- message: `Created envstore at ${path}`,
84
- };
85
- }
86
- /**
87
- * Add an environment variable to the store
88
- */
89
- export function add(options, storePath) {
90
- const { key, value, valueFile, sensitive, skipIfEmpty, append } = options;
91
- if (!key || key.trim() === '') {
92
- return {
93
- success: false,
94
- error: 'Key is required',
95
- };
96
- }
97
- // Validate key format (must be valid env var name)
98
- if (!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(key)) {
99
- return {
100
- success: false,
101
- error: `Invalid key '${key}'. Must start with letter or underscore, contain only letters, numbers, and underscores.`,
102
- };
103
- }
104
- let finalValue;
105
- // Determine the value source
106
- if (valueFile) {
107
- // Read from file
108
- if (!existsSync(valueFile)) {
109
- return {
110
- success: false,
111
- error: `Value file not found: ${valueFile}`,
112
- };
113
- }
114
- finalValue = readFileSync(valueFile, 'utf-8');
115
- }
116
- else if (value !== undefined) {
117
- // Use provided value
118
- finalValue = value;
119
- }
120
- else {
121
- return {
122
- success: false,
123
- error: 'Either --value or --valuefile must be provided',
124
- };
125
- }
126
- // Handle skip if empty
127
- if (skipIfEmpty && finalValue.trim() === '') {
128
- return {
129
- success: true,
130
- message: `Skipped empty value for key '${key}'`,
131
- };
132
- }
133
- // Load existing store
134
- const store = loadStore(storePath);
135
- const now = new Date().toISOString();
136
- // Find existing entry
137
- const existingIndex = store.envs.findIndex(e => e.key === key);
138
- if (existingIndex >= 0) {
139
- // Update existing entry
140
- const existing = store.envs[existingIndex];
141
- if (append) {
142
- existing.value += finalValue;
143
- }
144
- else {
145
- existing.value = finalValue;
146
- }
147
- existing.sensitive = sensitive ?? existing.sensitive;
148
- existing.updatedAt = now;
149
- }
150
- else {
151
- // Add new entry
152
- const entry = {
153
- key,
154
- value: finalValue,
155
- sensitive: sensitive ?? false,
156
- createdAt: now,
157
- updatedAt: now,
158
- };
159
- store.envs.push(entry);
160
- }
161
- // Save store
162
- saveStore(store, storePath);
163
- const displayValue = sensitive ? '[REDACTED]' : (finalValue.length > 50 ? finalValue.substring(0, 47) + '...' : finalValue);
164
- return {
165
- success: true,
166
- message: `Added ${key}=${displayValue}`,
167
- };
168
- }
169
- /**
170
- * Add an environment variable from stdin
171
- */
172
- export async function addFromStdin(key, sensitive, storePath) {
173
- return new Promise((resolve) => {
174
- let data = '';
175
- process.stdin.setEncoding('utf-8');
176
- process.stdin.on('data', (chunk) => {
177
- data += chunk;
178
- });
179
- process.stdin.on('end', () => {
180
- // Remove trailing newline (like envman does)
181
- const value = data.replace(/\n$/, '');
182
- const result = add({ key, value, sensitive }, storePath);
183
- resolve(result);
184
- });
185
- process.stdin.on('error', (err) => {
186
- resolve({
187
- success: false,
188
- error: `Failed to read from stdin: ${err.message}`,
189
- });
190
- });
191
- });
192
- }
193
- /**
194
- * Get all environment variables from the store as a Record
195
- */
196
- export function getAll(storePath) {
197
- const store = loadStore(storePath);
198
- const result = {};
199
- for (const entry of store.envs) {
200
- result[entry.key] = entry.value;
201
- }
202
- return result;
203
- }
204
- /**
205
- * Get a single environment variable from the store
206
- */
207
- export function get(key, storePath) {
208
- const store = loadStore(storePath);
209
- const entry = store.envs.find(e => e.key === key);
210
- return entry?.value;
211
- }
212
- /**
213
- * Print environment variables in various formats
214
- */
215
- export function print(format = 'table', storePath) {
216
- const store = loadStore(storePath);
217
- switch (format) {
218
- case 'json':
219
- return JSON.stringify(store.envs.map(e => ({
220
- key: e.key,
221
- value: e.sensitive ? '[REDACTED]' : e.value,
222
- sensitive: e.sensitive,
223
- })), null, 2);
224
- case 'export':
225
- return store.envs.map(e => {
226
- const escapedValue = e.value.replace(/'/g, "'\\''");
227
- return `export ${e.key}='${escapedValue}'`;
228
- }).join('\n');
229
- case 'table':
230
- default:
231
- if (store.envs.length === 0) {
232
- return 'No environment variables stored.';
233
- }
234
- const lines = [];
235
- lines.push('┌─────────────────────────────────────────────────────────────────┐');
236
- lines.push('│ Environment Variables │');
237
- lines.push('├─────────────────────────────────────────────────────────────────┤');
238
- for (const entry of store.envs) {
239
- const displayValue = entry.sensitive
240
- ? '[REDACTED]'
241
- : (entry.value.length > 40 ? entry.value.substring(0, 37) + '...' : entry.value);
242
- const line = `│ ${entry.key.padEnd(20)} = ${displayValue.padEnd(38)}│`;
243
- lines.push(line);
244
- }
245
- lines.push('└─────────────────────────────────────────────────────────────────┘');
246
- return lines.join('\n');
247
- }
248
- }
249
- /**
250
- * Run a command with the environment variables from the store
251
- */
252
- export async function run(command, storePath) {
253
- if (command.length === 0) {
254
- console.error('Error: No command specified');
255
- return 1;
256
- }
257
- // Load environment variables
258
- const envVars = getAll(storePath);
259
- // Merge with current environment
260
- const env = {
261
- ...process.env,
262
- ...envVars,
263
- };
264
- // Spawn the command
265
- const [cmd, ...args] = command;
266
- return new Promise((resolve) => {
267
- const child = spawn(cmd, args, {
268
- env,
269
- stdio: 'inherit',
270
- shell: true,
271
- });
272
- child.on('error', (err) => {
273
- console.error(`Failed to execute command: ${err.message}`);
274
- resolve(1);
275
- });
276
- child.on('exit', (code) => {
277
- resolve(code ?? 0);
278
- });
279
- });
280
- }
281
- /**
282
- * Clear the environment store
283
- */
284
- export function clear(storePath) {
285
- const path = storePath || getStorePath();
286
- if (!existsSync(path)) {
287
- return {
288
- success: true,
289
- message: 'Envstore does not exist, nothing to clear.',
290
- };
291
- }
292
- try {
293
- unlinkSync(path);
294
- return {
295
- success: true,
296
- message: `Cleared envstore at ${path}`,
297
- };
298
- }
299
- catch (error) {
300
- return {
301
- success: false,
302
- error: `Failed to clear envstore: ${error.message}`,
303
- };
304
- }
305
- }
306
- /**
307
- * Unset (remove) a specific environment variable from the store
308
- */
309
- export function unset(key, storePath) {
310
- const store = loadStore(storePath);
311
- const index = store.envs.findIndex(e => e.key === key);
312
- if (index === -1) {
313
- return {
314
- success: false,
315
- error: `Key '${key}' not found in envstore`,
316
- };
317
- }
318
- store.envs.splice(index, 1);
319
- saveStore(store, storePath);
320
- return {
321
- success: true,
322
- message: `Removed ${key} from envstore`,
323
- };
324
- }
325
- /**
326
- * Generate a bash script that sources the envstore
327
- * This can be prepended to step scripts to load environment variables
328
- */
329
- export function generateSourceScript(storePath) {
330
- const path = storePath || getStorePath();
331
- return `
332
- # CI Build envman: Load environment variables from store
333
- if [ -f "${path}" ]; then
334
- while IFS= read -r line; do
335
- if [ -n "$line" ]; then
336
- export "$line"
337
- fi
338
- done < <(node -e "
339
- const fs = require('fs');
340
- try {
341
- const store = JSON.parse(fs.readFileSync('${path}', 'utf-8'));
342
- for (const e of store.envs || []) {
343
- const escaped = e.value.replace(/'/g, \"'\\\\\\\\\\\\\\''\" );
344
- console.log(e.key + '=' + escaped);
345
- }
346
- } catch(e) {}
347
- ")
348
- fi
349
- `;
350
- }
351
- /**
352
- * Export all environment variables to the current process
353
- * Useful for programmatic usage
354
- */
355
- export function exportToProcess(storePath) {
356
- const envVars = getAll(storePath);
357
- for (const [key, value] of Object.entries(envVars)) {
358
- process.env[key] = value;
359
- }
360
- }
361
- //# sourceMappingURL=envman.js.map
@@ -1,5 +0,0 @@
1
- /**
2
- * Unit tests for the CI Build Environment Variable Manager (envman)
3
- */
4
- export {};
5
- //# sourceMappingURL=envman.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"envman.test.d.ts","sourceRoot":"","sources":["../../../src/envman/envman.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,236 +0,0 @@
1
- /**
2
- * Unit tests for the CI Build Environment Variable Manager (envman)
3
- */
4
- import { describe, test, expect, beforeEach, afterEach } from '@jest/globals';
5
- import * as fs from 'fs';
6
- import * as path from 'path';
7
- import * as envman from './envman.js';
8
- import { STORE_VERSION } from './types.js';
9
- describe('envman', () => {
10
- const testStorePath = path.join(process.cwd(), '.envstore.test.json');
11
- beforeEach(() => {
12
- // Clean up any existing test store
13
- if (fs.existsSync(testStorePath)) {
14
- fs.unlinkSync(testStorePath);
15
- }
16
- });
17
- afterEach(() => {
18
- // Clean up test store after each test
19
- if (fs.existsSync(testStorePath)) {
20
- fs.unlinkSync(testStorePath);
21
- }
22
- });
23
- describe('init', () => {
24
- test('should create an empty envstore file', () => {
25
- const result = envman.init(testStorePath);
26
- expect(result.success).toBe(true);
27
- expect(fs.existsSync(testStorePath)).toBe(true);
28
- const content = JSON.parse(fs.readFileSync(testStorePath, 'utf-8'));
29
- expect(content.version).toBe(STORE_VERSION);
30
- expect(content.envs).toEqual([]);
31
- });
32
- test('should fail if envstore already exists', () => {
33
- // Create the store first
34
- envman.init(testStorePath);
35
- // Try to init again
36
- const result = envman.init(testStorePath);
37
- expect(result.success).toBe(false);
38
- expect(result.error).toContain('already exists');
39
- });
40
- });
41
- describe('add', () => {
42
- test('should add a new environment variable', () => {
43
- const result = envman.add({
44
- key: 'TEST_VAR',
45
- value: 'test_value',
46
- }, testStorePath);
47
- expect(result.success).toBe(true);
48
- const value = envman.get('TEST_VAR', testStorePath);
49
- expect(value).toBe('test_value');
50
- });
51
- test('should update an existing environment variable', () => {
52
- // Add initial value
53
- envman.add({ key: 'TEST_VAR', value: 'initial' }, testStorePath);
54
- // Update value
55
- const result = envman.add({ key: 'TEST_VAR', value: 'updated' }, testStorePath);
56
- expect(result.success).toBe(true);
57
- expect(envman.get('TEST_VAR', testStorePath)).toBe('updated');
58
- });
59
- test('should append to existing value with --append flag', () => {
60
- envman.add({ key: 'TEST_VAR', value: 'hello' }, testStorePath);
61
- envman.add({ key: 'TEST_VAR', value: ' world', append: true }, testStorePath);
62
- expect(envman.get('TEST_VAR', testStorePath)).toBe('hello world');
63
- });
64
- test('should read value from file', () => {
65
- const valueFilePath = path.join(process.cwd(), '.test-value-file.txt');
66
- fs.writeFileSync(valueFilePath, 'value_from_file');
67
- try {
68
- const result = envman.add({
69
- key: 'FILE_VAR',
70
- valueFile: valueFilePath,
71
- }, testStorePath);
72
- expect(result.success).toBe(true);
73
- expect(envman.get('FILE_VAR', testStorePath)).toBe('value_from_file');
74
- }
75
- finally {
76
- fs.unlinkSync(valueFilePath);
77
- }
78
- });
79
- test('should fail with invalid key name', () => {
80
- const result = envman.add({
81
- key: '123-invalid',
82
- value: 'test',
83
- }, testStorePath);
84
- expect(result.success).toBe(false);
85
- expect(result.error).toContain('Invalid key');
86
- });
87
- test('should skip empty values with --skip-if-empty', () => {
88
- const result = envman.add({
89
- key: 'EMPTY_VAR',
90
- value: ' ',
91
- skipIfEmpty: true,
92
- }, testStorePath);
93
- expect(result.success).toBe(true);
94
- expect(result.message).toContain('Skipped');
95
- expect(envman.get('EMPTY_VAR', testStorePath)).toBeUndefined();
96
- });
97
- test('should mark sensitive variables', () => {
98
- const result = envman.add({
99
- key: 'SECRET_VAR',
100
- value: 'super_secret',
101
- sensitive: true,
102
- }, testStorePath);
103
- expect(result.success).toBe(true);
104
- expect(result.message).toContain('REDACTED');
105
- const store = envman.loadStore(testStorePath);
106
- const entry = store.envs.find(e => e.key === 'SECRET_VAR');
107
- expect(entry?.sensitive).toBe(true);
108
- });
109
- });
110
- describe('get', () => {
111
- test('should return undefined for non-existent key', () => {
112
- const value = envman.get('NON_EXISTENT', testStorePath);
113
- expect(value).toBeUndefined();
114
- });
115
- test('should return value for existing key', () => {
116
- envman.add({ key: 'TEST_VAR', value: 'test_value' }, testStorePath);
117
- const value = envman.get('TEST_VAR', testStorePath);
118
- expect(value).toBe('test_value');
119
- });
120
- });
121
- describe('getAll', () => {
122
- test('should return empty object for empty store', () => {
123
- const all = envman.getAll(testStorePath);
124
- expect(all).toEqual({});
125
- });
126
- test('should return all variables as key-value pairs', () => {
127
- envman.add({ key: 'VAR1', value: 'value1' }, testStorePath);
128
- envman.add({ key: 'VAR2', value: 'value2' }, testStorePath);
129
- const all = envman.getAll(testStorePath);
130
- expect(all).toEqual({
131
- VAR1: 'value1',
132
- VAR2: 'value2',
133
- });
134
- });
135
- });
136
- describe('unset', () => {
137
- test('should remove an existing variable', () => {
138
- envman.add({ key: 'TO_REMOVE', value: 'test' }, testStorePath);
139
- const result = envman.unset('TO_REMOVE', testStorePath);
140
- expect(result.success).toBe(true);
141
- expect(envman.get('TO_REMOVE', testStorePath)).toBeUndefined();
142
- });
143
- test('should fail for non-existent key', () => {
144
- const result = envman.unset('NON_EXISTENT', testStorePath);
145
- expect(result.success).toBe(false);
146
- expect(result.error).toContain('not found');
147
- });
148
- });
149
- describe('clear', () => {
150
- test('should remove the envstore file', () => {
151
- envman.add({ key: 'TEST_VAR', value: 'test' }, testStorePath);
152
- expect(fs.existsSync(testStorePath)).toBe(true);
153
- const result = envman.clear(testStorePath);
154
- expect(result.success).toBe(true);
155
- expect(fs.existsSync(testStorePath)).toBe(false);
156
- });
157
- test('should succeed even if envstore does not exist', () => {
158
- const result = envman.clear(testStorePath);
159
- expect(result.success).toBe(true);
160
- });
161
- });
162
- describe('print', () => {
163
- beforeEach(() => {
164
- envman.add({ key: 'VAR1', value: 'value1' }, testStorePath);
165
- envman.add({ key: 'VAR2', value: 'value2' }, testStorePath);
166
- });
167
- test('should print in table format by default', () => {
168
- const output = envman.print('table', testStorePath);
169
- expect(output).toContain('VAR1');
170
- expect(output).toContain('value1');
171
- expect(output).toContain('VAR2');
172
- expect(output).toContain('value2');
173
- });
174
- test('should print in export format', () => {
175
- const output = envman.print('export', testStorePath);
176
- expect(output).toContain("export VAR1='value1'");
177
- expect(output).toContain("export VAR2='value2'");
178
- });
179
- test('should print in JSON format', () => {
180
- const output = envman.print('json', testStorePath);
181
- const parsed = JSON.parse(output);
182
- expect(parsed).toHaveLength(2);
183
- expect(parsed.find((e) => e.key === 'VAR1')?.value).toBe('value1');
184
- });
185
- test('should redact sensitive values in table format', () => {
186
- envman.add({ key: 'SECRET', value: 'secret_value', sensitive: true }, testStorePath);
187
- const output = envman.print('table', testStorePath);
188
- expect(output).toContain('SECRET');
189
- expect(output).toContain('[REDACTED]');
190
- expect(output).not.toContain('secret_value');
191
- });
192
- });
193
- describe('loadStore', () => {
194
- test('should return empty store if file does not exist', () => {
195
- const store = envman.loadStore(testStorePath);
196
- expect(store.version).toBe(STORE_VERSION);
197
- expect(store.envs).toEqual([]);
198
- });
199
- test('should load existing store from file', () => {
200
- const testStore = {
201
- version: STORE_VERSION,
202
- envs: [
203
- { key: 'TEST', value: 'value', createdAt: '', updatedAt: '' },
204
- ],
205
- };
206
- fs.writeFileSync(testStorePath, JSON.stringify(testStore));
207
- const store = envman.loadStore(testStorePath);
208
- expect(store.envs).toHaveLength(1);
209
- expect(store.envs[0].key).toBe('TEST');
210
- });
211
- });
212
- describe('createEmptyStore', () => {
213
- test('should create a valid empty store', () => {
214
- const store = envman.createEmptyStore();
215
- expect(store.version).toBe(STORE_VERSION);
216
- expect(store.envs).toEqual([]);
217
- });
218
- });
219
- describe('special characters handling', () => {
220
- test('should handle values with single quotes', () => {
221
- envman.add({ key: 'QUOTED', value: "it's a test" }, testStorePath);
222
- expect(envman.get('QUOTED', testStorePath)).toBe("it's a test");
223
- const exported = envman.print('export', testStorePath);
224
- expect(exported).toContain('QUOTED');
225
- });
226
- test('should handle values with newlines', () => {
227
- envman.add({ key: 'MULTILINE', value: 'line1\nline2\nline3' }, testStorePath);
228
- expect(envman.get('MULTILINE', testStorePath)).toBe('line1\nline2\nline3');
229
- });
230
- test('should handle empty values', () => {
231
- envman.add({ key: 'EMPTY', value: '' }, testStorePath);
232
- expect(envman.get('EMPTY', testStorePath)).toBe('');
233
- });
234
- });
235
- });
236
- //# sourceMappingURL=envman.test.js.map
@@ -1,27 +0,0 @@
1
- /**
2
- * A build whose HEAD commit has a multi-line message completes every step.
3
- *
4
- * This is the regression that started the whole thread. On 2026-08-30 the first
5
- * real `invarn setup` proof died of it: `git-clone` publishes the commit body,
6
- * and every step after it failed loading the envstore —
7
- *
8
- * [step_2] Running: cache-pull
9
- * …: line 59: export: `value nothing provides.': not a valid identifier
10
- * ✗ Pipeline failed: Step "Install CocoaPods" failed with exit code 1
11
- *
12
- * `src/yaml/steps/envstore-loader.test.ts` drives the *reader* with hostile
13
- * content written by hand, which is the right shape for the defect but stops
14
- * short of the thing that actually happened: the value came out of a real
15
- * repository, through a real producer. This closes that gap — a real
16
- * `git commit`, the real `git-clone` step reading it with `git log -1
17
- * --format=%b`, the real `envman` writer (`envmanShellFunction`, the same
18
- * bytes the runner prepends to every script step), and the real reader in the
19
- * next step's preamble.
20
- *
21
- * The fixture's commit message carries both consequences the PRD names, because
22
- * they need different bytes to surface: a line that is *not* a valid assignment
23
- * (which killed the step) and a line that *is* one (which let the commit's
24
- * author set `PATH` for every step after it).
25
- */
26
- export {};
27
- //# sourceMappingURL=envstore-round-trip.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"envstore-round-trip.test.d.ts","sourceRoot":"","sources":["../../../src/envman/envstore-round-trip.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG"}