@invarn/cibuild 2.9.5 → 2.9.7

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 (553) 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/android-sign.d.ts +0 -35
  282. package/dist/src/yaml/steps/android-sign.d.ts.map +0 -1
  283. package/dist/src/yaml/steps/android-sign.js +0 -147
  284. package/dist/src/yaml/steps/android-variant-resolution.test.d.ts +0 -2
  285. package/dist/src/yaml/steps/android-variant-resolution.test.d.ts.map +0 -1
  286. package/dist/src/yaml/steps/android-variant-resolution.test.js +0 -260
  287. package/dist/src/yaml/steps/android-version.d.ts +0 -26
  288. package/dist/src/yaml/steps/android-version.d.ts.map +0 -1
  289. package/dist/src/yaml/steps/android-version.js +0 -128
  290. package/dist/src/yaml/steps/android-version.test.d.ts +0 -5
  291. package/dist/src/yaml/steps/android-version.test.d.ts.map +0 -1
  292. package/dist/src/yaml/steps/android-version.test.js +0 -196
  293. package/dist/src/yaml/steps/android.d.ts +0 -156
  294. package/dist/src/yaml/steps/android.d.ts.map +0 -1
  295. package/dist/src/yaml/steps/android.js +0 -1092
  296. package/dist/src/yaml/steps/app-store-deploy.d.ts +0 -48
  297. package/dist/src/yaml/steps/app-store-deploy.d.ts.map +0 -1
  298. package/dist/src/yaml/steps/app-store-deploy.js +0 -167
  299. package/dist/src/yaml/steps/base.d.ts +0 -263
  300. package/dist/src/yaml/steps/base.d.ts.map +0 -1
  301. package/dist/src/yaml/steps/base.js +0 -380
  302. package/dist/src/yaml/steps/bitrise-android-tools.d.ts +0 -26
  303. package/dist/src/yaml/steps/bitrise-android-tools.d.ts.map +0 -1
  304. package/dist/src/yaml/steps/bitrise-android-tools.js +0 -200
  305. package/dist/src/yaml/steps/bitrise-android-tools.test.d.ts +0 -5
  306. package/dist/src/yaml/steps/bitrise-android-tools.test.d.ts.map +0 -1
  307. package/dist/src/yaml/steps/bitrise-android-tools.test.js +0 -280
  308. package/dist/src/yaml/steps/bitrise-apk-info.d.ts +0 -22
  309. package/dist/src/yaml/steps/bitrise-apk-info.d.ts.map +0 -1
  310. package/dist/src/yaml/steps/bitrise-apk-info.js +0 -144
  311. package/dist/src/yaml/steps/bitrise-apk-info.test.d.ts +0 -5
  312. package/dist/src/yaml/steps/bitrise-apk-info.test.d.ts.map +0 -1
  313. package/dist/src/yaml/steps/bitrise-apk-info.test.js +0 -331
  314. package/dist/src/yaml/steps/bitrise-slack.d.ts +0 -49
  315. package/dist/src/yaml/steps/bitrise-slack.d.ts.map +0 -1
  316. package/dist/src/yaml/steps/bitrise-slack.js +0 -280
  317. package/dist/src/yaml/steps/bitrise-slack.test.d.ts +0 -5
  318. package/dist/src/yaml/steps/bitrise-slack.test.d.ts.map +0 -1
  319. package/dist/src/yaml/steps/bitrise-slack.test.js +0 -484
  320. package/dist/src/yaml/steps/bitrise-ssh.d.ts +0 -27
  321. package/dist/src/yaml/steps/bitrise-ssh.d.ts.map +0 -1
  322. package/dist/src/yaml/steps/bitrise-ssh.js +0 -134
  323. package/dist/src/yaml/steps/bitrise-ssh.test.d.ts +0 -5
  324. package/dist/src/yaml/steps/bitrise-ssh.test.d.ts.map +0 -1
  325. package/dist/src/yaml/steps/bitrise-ssh.test.js +0 -205
  326. package/dist/src/yaml/steps/cache-pull-daemon.test.d.ts +0 -27
  327. package/dist/src/yaml/steps/cache-pull-daemon.test.d.ts.map +0 -1
  328. package/dist/src/yaml/steps/cache-pull-daemon.test.js +0 -212
  329. package/dist/src/yaml/steps/cache-pull-restore-roots.test.d.ts +0 -42
  330. package/dist/src/yaml/steps/cache-pull-restore-roots.test.d.ts.map +0 -1
  331. package/dist/src/yaml/steps/cache-pull-restore-roots.test.js +0 -209
  332. package/dist/src/yaml/steps/cache-push-daemon.test.d.ts +0 -27
  333. package/dist/src/yaml/steps/cache-push-daemon.test.d.ts.map +0 -1
  334. package/dist/src/yaml/steps/cache-push-daemon.test.js +0 -171
  335. package/dist/src/yaml/steps/cache.d.ts +0 -59
  336. package/dist/src/yaml/steps/cache.d.ts.map +0 -1
  337. package/dist/src/yaml/steps/cache.js +0 -1027
  338. package/dist/src/yaml/steps/capture-injection.d.ts +0 -30
  339. package/dist/src/yaml/steps/capture-injection.d.ts.map +0 -1
  340. package/dist/src/yaml/steps/capture-injection.js +0 -88
  341. package/dist/src/yaml/steps/capture-injection.test.d.ts +0 -2
  342. package/dist/src/yaml/steps/capture-injection.test.d.ts.map +0 -1
  343. package/dist/src/yaml/steps/capture-injection.test.js +0 -163
  344. package/dist/src/yaml/steps/cocoapods-deployment-floor.d.ts +0 -42
  345. package/dist/src/yaml/steps/cocoapods-deployment-floor.d.ts.map +0 -1
  346. package/dist/src/yaml/steps/cocoapods-deployment-floor.js +0 -140
  347. package/dist/src/yaml/steps/cocoapods-deployment-floor.test.d.ts +0 -11
  348. package/dist/src/yaml/steps/cocoapods-deployment-floor.test.d.ts.map +0 -1
  349. package/dist/src/yaml/steps/cocoapods-deployment-floor.test.js +0 -176
  350. package/dist/src/yaml/steps/cocoapods-install-emits-valid-bash.test.d.ts +0 -22
  351. package/dist/src/yaml/steps/cocoapods-install-emits-valid-bash.test.d.ts.map +0 -1
  352. package/dist/src/yaml/steps/cocoapods-install-emits-valid-bash.test.js +0 -97
  353. package/dist/src/yaml/steps/cocoapods-locked-bundler.test.d.ts +0 -17
  354. package/dist/src/yaml/steps/cocoapods-locked-bundler.test.d.ts.map +0 -1
  355. package/dist/src/yaml/steps/cocoapods-locked-bundler.test.js +0 -282
  356. package/dist/src/yaml/steps/cocoapods-skip-if-absent.test.d.ts +0 -17
  357. package/dist/src/yaml/steps/cocoapods-skip-if-absent.test.d.ts.map +0 -1
  358. package/dist/src/yaml/steps/cocoapods-skip-if-absent.test.js +0 -132
  359. package/dist/src/yaml/steps/envstore-loader.test.d.ts +0 -15
  360. package/dist/src/yaml/steps/envstore-loader.test.d.ts.map +0 -1
  361. package/dist/src/yaml/steps/envstore-loader.test.js +0 -143
  362. package/dist/src/yaml/steps/fastlane.d.ts +0 -27
  363. package/dist/src/yaml/steps/fastlane.d.ts.map +0 -1
  364. package/dist/src/yaml/steps/fastlane.js +0 -79
  365. package/dist/src/yaml/steps/fidelity-aspect-guard.d.ts +0 -53
  366. package/dist/src/yaml/steps/fidelity-aspect-guard.d.ts.map +0 -1
  367. package/dist/src/yaml/steps/fidelity-aspect-guard.js +0 -72
  368. package/dist/src/yaml/steps/fidelity-aspect-guard.test.d.ts +0 -11
  369. package/dist/src/yaml/steps/fidelity-aspect-guard.test.d.ts.map +0 -1
  370. package/dist/src/yaml/steps/fidelity-aspect-guard.test.js +0 -50
  371. package/dist/src/yaml/steps/fidelity-reference-provenance.d.ts +0 -87
  372. package/dist/src/yaml/steps/fidelity-reference-provenance.d.ts.map +0 -1
  373. package/dist/src/yaml/steps/fidelity-reference-provenance.js +0 -111
  374. package/dist/src/yaml/steps/fidelity-reference-provenance.test.d.ts +0 -22
  375. package/dist/src/yaml/steps/fidelity-reference-provenance.test.d.ts.map +0 -1
  376. package/dist/src/yaml/steps/fidelity-reference-provenance.test.js +0 -118
  377. package/dist/src/yaml/steps/file.d.ts +0 -52
  378. package/dist/src/yaml/steps/file.d.ts.map +0 -1
  379. package/dist/src/yaml/steps/file.js +0 -108
  380. package/dist/src/yaml/steps/flutter.d.ts +0 -63
  381. package/dist/src/yaml/steps/flutter.d.ts.map +0 -1
  382. package/dist/src/yaml/steps/flutter.js +0 -215
  383. package/dist/src/yaml/steps/git-clone-names-the-inputs-it-ignores.test.d.ts +0 -16
  384. package/dist/src/yaml/steps/git-clone-names-the-inputs-it-ignores.test.d.ts.map +0 -1
  385. package/dist/src/yaml/steps/git-clone-names-the-inputs-it-ignores.test.js +0 -127
  386. package/dist/src/yaml/steps/git-clone.d.ts +0 -32
  387. package/dist/src/yaml/steps/git-clone.d.ts.map +0 -1
  388. package/dist/src/yaml/steps/git-clone.js +0 -171
  389. package/dist/src/yaml/steps/git-fetch-retry-exec.test.d.ts +0 -10
  390. package/dist/src/yaml/steps/git-fetch-retry-exec.test.d.ts.map +0 -1
  391. package/dist/src/yaml/steps/git-fetch-retry-exec.test.js +0 -162
  392. package/dist/src/yaml/steps/git-fetch-retry.d.ts +0 -62
  393. package/dist/src/yaml/steps/git-fetch-retry.d.ts.map +0 -1
  394. package/dist/src/yaml/steps/git-fetch-retry.js +0 -155
  395. package/dist/src/yaml/steps/git-fetch-retry.test.d.ts +0 -5
  396. package/dist/src/yaml/steps/git-fetch-retry.test.d.ts.map +0 -1
  397. package/dist/src/yaml/steps/git-fetch-retry.test.js +0 -86
  398. package/dist/src/yaml/steps/google-play-deploy.d.ts +0 -37
  399. package/dist/src/yaml/steps/google-play-deploy.d.ts.map +0 -1
  400. package/dist/src/yaml/steps/google-play-deploy.js +0 -193
  401. package/dist/src/yaml/steps/google-play-deploy.test.d.ts +0 -5
  402. package/dist/src/yaml/steps/google-play-deploy.test.d.ts.map +0 -1
  403. package/dist/src/yaml/steps/google-play-deploy.test.js +0 -310
  404. package/dist/src/yaml/steps/gradle-memory.d.ts +0 -61
  405. package/dist/src/yaml/steps/gradle-memory.d.ts.map +0 -1
  406. package/dist/src/yaml/steps/gradle-memory.js +0 -386
  407. package/dist/src/yaml/steps/gradle-memory.test.d.ts +0 -2
  408. package/dist/src/yaml/steps/gradle-memory.test.d.ts.map +0 -1
  409. package/dist/src/yaml/steps/gradle-memory.test.js +0 -344
  410. package/dist/src/yaml/steps/gradle-sdk-cmake.d.ts +0 -28
  411. package/dist/src/yaml/steps/gradle-sdk-cmake.d.ts.map +0 -1
  412. package/dist/src/yaml/steps/gradle-sdk-cmake.js +0 -107
  413. package/dist/src/yaml/steps/gradle-sdk-cmake.test.d.ts +0 -2
  414. package/dist/src/yaml/steps/gradle-sdk-cmake.test.d.ts.map +0 -1
  415. package/dist/src/yaml/steps/gradle-sdk-cmake.test.js +0 -183
  416. package/dist/src/yaml/steps/index.d.ts +0 -10
  417. package/dist/src/yaml/steps/index.d.ts.map +0 -1
  418. package/dist/src/yaml/steps/index.js +0 -1461
  419. package/dist/src/yaml/steps/ios-deps.d.ts +0 -78
  420. package/dist/src/yaml/steps/ios-deps.d.ts.map +0 -1
  421. package/dist/src/yaml/steps/ios-deps.js +0 -279
  422. package/dist/src/yaml/steps/ios-deps.test.d.ts +0 -5
  423. package/dist/src/yaml/steps/ios-deps.test.d.ts.map +0 -1
  424. package/dist/src/yaml/steps/ios-deps.test.js +0 -90
  425. package/dist/src/yaml/steps/ios-signing.d.ts +0 -31
  426. package/dist/src/yaml/steps/ios-signing.d.ts.map +0 -1
  427. package/dist/src/yaml/steps/ios-signing.js +0 -144
  428. package/dist/src/yaml/steps/ios-version.d.ts +0 -47
  429. package/dist/src/yaml/steps/ios-version.d.ts.map +0 -1
  430. package/dist/src/yaml/steps/ios-version.js +0 -151
  431. package/dist/src/yaml/steps/java-home-version-spec.test.d.ts +0 -10
  432. package/dist/src/yaml/steps/java-home-version-spec.test.d.ts.map +0 -1
  433. package/dist/src/yaml/steps/java-home-version-spec.test.js +0 -58
  434. package/dist/src/yaml/steps/linting.d.ts +0 -47
  435. package/dist/src/yaml/steps/linting.d.ts.map +0 -1
  436. package/dist/src/yaml/steps/linting.js +0 -148
  437. package/dist/src/yaml/steps/phase2.test.d.ts +0 -6
  438. package/dist/src/yaml/steps/phase2.test.d.ts.map +0 -1
  439. package/dist/src/yaml/steps/phase2.test.js +0 -197
  440. package/dist/src/yaml/steps/phase3.test.d.ts +0 -5
  441. package/dist/src/yaml/steps/phase3.test.d.ts.map +0 -1
  442. package/dist/src/yaml/steps/phase3.test.js +0 -144
  443. package/dist/src/yaml/steps/phase4.test.d.ts +0 -5
  444. package/dist/src/yaml/steps/phase4.test.d.ts.map +0 -1
  445. package/dist/src/yaml/steps/phase4.test.js +0 -166
  446. package/dist/src/yaml/steps/phase5.test.d.ts +0 -6
  447. package/dist/src/yaml/steps/phase5.test.d.ts.map +0 -1
  448. package/dist/src/yaml/steps/phase5.test.js +0 -263
  449. package/dist/src/yaml/steps/registry.d.ts +0 -88
  450. package/dist/src/yaml/steps/registry.d.ts.map +0 -1
  451. package/dist/src/yaml/steps/registry.js +0 -125
  452. package/dist/src/yaml/steps/registry.test.d.ts +0 -5
  453. package/dist/src/yaml/steps/registry.test.d.ts.map +0 -1
  454. package/dist/src/yaml/steps/registry.test.js +0 -235
  455. package/dist/src/yaml/steps/release.d.ts +0 -50
  456. package/dist/src/yaml/steps/release.d.ts.map +0 -1
  457. package/dist/src/yaml/steps/release.js +0 -154
  458. package/dist/src/yaml/steps/render-post-processor.d.ts +0 -100
  459. package/dist/src/yaml/steps/render-post-processor.d.ts.map +0 -1
  460. package/dist/src/yaml/steps/render-post-processor.js +0 -270
  461. package/dist/src/yaml/steps/render-post-processor.test.d.ts +0 -13
  462. package/dist/src/yaml/steps/render-post-processor.test.d.ts.map +0 -1
  463. package/dist/src/yaml/steps/render-post-processor.test.js +0 -220
  464. package/dist/src/yaml/steps/script.d.ts +0 -23
  465. package/dist/src/yaml/steps/script.d.ts.map +0 -1
  466. package/dist/src/yaml/steps/script.js +0 -63
  467. package/dist/src/yaml/steps/spec-validation.test.d.ts +0 -6
  468. package/dist/src/yaml/steps/spec-validation.test.d.ts.map +0 -1
  469. package/dist/src/yaml/steps/spec-validation.test.js +0 -130
  470. package/dist/src/yaml/steps/steps.test.d.ts +0 -6
  471. package/dist/src/yaml/steps/steps.test.d.ts.map +0 -1
  472. package/dist/src/yaml/steps/steps.test.js +0 -881
  473. package/dist/src/yaml/steps/structural-facts.d.ts +0 -992
  474. package/dist/src/yaml/steps/structural-facts.d.ts.map +0 -1
  475. package/dist/src/yaml/steps/structural-facts.js +0 -3276
  476. package/dist/src/yaml/steps/structural-facts.test.d.ts +0 -12
  477. package/dist/src/yaml/steps/structural-facts.test.d.ts.map +0 -1
  478. package/dist/src/yaml/steps/structural-facts.test.js +0 -3039
  479. package/dist/src/yaml/steps/test-config.d.ts +0 -5
  480. package/dist/src/yaml/steps/test-config.d.ts.map +0 -1
  481. package/dist/src/yaml/steps/test-config.js +0 -25
  482. package/dist/src/yaml/steps/trim-align-corpus.test.d.ts +0 -28
  483. package/dist/src/yaml/steps/trim-align-corpus.test.d.ts.map +0 -1
  484. package/dist/src/yaml/steps/trim-align-corpus.test.js +0 -383
  485. package/dist/src/yaml/steps/trim-align.d.ts +0 -87
  486. package/dist/src/yaml/steps/trim-align.d.ts.map +0 -1
  487. package/dist/src/yaml/steps/trim-align.js +0 -367
  488. package/dist/src/yaml/steps/trim-align.test.d.ts +0 -11
  489. package/dist/src/yaml/steps/trim-align.test.d.ts.map +0 -1
  490. package/dist/src/yaml/steps/trim-align.test.js +0 -261
  491. package/dist/src/yaml/steps/ui-fidelity-preview-android.d.ts +0 -66
  492. package/dist/src/yaml/steps/ui-fidelity-preview-android.d.ts.map +0 -1
  493. package/dist/src/yaml/steps/ui-fidelity-preview-android.js +0 -251
  494. package/dist/src/yaml/steps/ui-fidelity-preview-android.test.d.ts +0 -13
  495. package/dist/src/yaml/steps/ui-fidelity-preview-android.test.d.ts.map +0 -1
  496. package/dist/src/yaml/steps/ui-fidelity-preview-android.test.js +0 -302
  497. package/dist/src/yaml/steps/ui-fidelity-preview.d.ts +0 -134
  498. package/dist/src/yaml/steps/ui-fidelity-preview.d.ts.map +0 -1
  499. package/dist/src/yaml/steps/ui-fidelity-preview.js +0 -173
  500. package/dist/src/yaml/steps/ui-fidelity-preview.test.d.ts +0 -11
  501. package/dist/src/yaml/steps/ui-fidelity-preview.test.d.ts.map +0 -1
  502. package/dist/src/yaml/steps/ui-fidelity-preview.test.js +0 -210
  503. package/dist/src/yaml/steps/ui-fidelity-render-android.d.ts +0 -155
  504. package/dist/src/yaml/steps/ui-fidelity-render-android.d.ts.map +0 -1
  505. package/dist/src/yaml/steps/ui-fidelity-render-android.js +0 -1389
  506. package/dist/src/yaml/steps/ui-fidelity-render-android.test.d.ts +0 -2
  507. package/dist/src/yaml/steps/ui-fidelity-render-android.test.d.ts.map +0 -1
  508. package/dist/src/yaml/steps/ui-fidelity-render-android.test.js +0 -1106
  509. package/dist/src/yaml/steps/ui-fidelity-render.d.ts +0 -230
  510. package/dist/src/yaml/steps/ui-fidelity-render.d.ts.map +0 -1
  511. package/dist/src/yaml/steps/ui-fidelity-render.js +0 -1597
  512. package/dist/src/yaml/steps/ui-fidelity-render.test.d.ts +0 -18
  513. package/dist/src/yaml/steps/ui-fidelity-render.test.d.ts.map +0 -1
  514. package/dist/src/yaml/steps/ui-fidelity-render.test.js +0 -1871
  515. package/dist/src/yaml/steps/xcode-app-product.d.ts +0 -90
  516. package/dist/src/yaml/steps/xcode-app-product.d.ts.map +0 -1
  517. package/dist/src/yaml/steps/xcode-app-product.js +0 -247
  518. package/dist/src/yaml/steps/xcode-app-product.test.d.ts +0 -2
  519. package/dist/src/yaml/steps/xcode-app-product.test.d.ts.map +0 -1
  520. package/dist/src/yaml/steps/xcode-app-product.test.js +0 -202
  521. package/dist/src/yaml/steps/xcode-derived-data.test.d.ts +0 -30
  522. package/dist/src/yaml/steps/xcode-derived-data.test.d.ts.map +0 -1
  523. package/dist/src/yaml/steps/xcode-derived-data.test.js +0 -279
  524. package/dist/src/yaml/steps/xcode-destination.d.ts +0 -47
  525. package/dist/src/yaml/steps/xcode-destination.d.ts.map +0 -1
  526. package/dist/src/yaml/steps/xcode-destination.js +0 -202
  527. package/dist/src/yaml/steps/xcode-destination.test.d.ts +0 -9
  528. package/dist/src/yaml/steps/xcode-destination.test.d.ts.map +0 -1
  529. package/dist/src/yaml/steps/xcode-destination.test.js +0 -227
  530. package/dist/src/yaml/steps/xcode-new.test.d.ts +0 -5
  531. package/dist/src/yaml/steps/xcode-new.test.d.ts.map +0 -1
  532. package/dist/src/yaml/steps/xcode-new.test.js +0 -211
  533. package/dist/src/yaml/steps/xcode-resolve-retry.test.d.ts +0 -9
  534. package/dist/src/yaml/steps/xcode-resolve-retry.test.d.ts.map +0 -1
  535. package/dist/src/yaml/steps/xcode-resolve-retry.test.js +0 -146
  536. package/dist/src/yaml/steps/xcode-simulator-archs.d.ts +0 -53
  537. package/dist/src/yaml/steps/xcode-simulator-archs.d.ts.map +0 -1
  538. package/dist/src/yaml/steps/xcode-simulator-archs.js +0 -98
  539. package/dist/src/yaml/steps/xcode-simulator-archs.test.d.ts +0 -21
  540. package/dist/src/yaml/steps/xcode-simulator-archs.test.d.ts.map +0 -1
  541. package/dist/src/yaml/steps/xcode-simulator-archs.test.js +0 -155
  542. package/dist/src/yaml/steps/xcode.d.ts +0 -230
  543. package/dist/src/yaml/steps/xcode.d.ts.map +0 -1
  544. package/dist/src/yaml/steps/xcode.js +0 -1350
  545. package/dist/src/yaml/types.d.ts +0 -76
  546. package/dist/src/yaml/types.d.ts.map +0 -1
  547. package/dist/src/yaml/types.js +0 -5
  548. package/dist/src/yaml/validation-types.d.ts +0 -102
  549. package/dist/src/yaml/validation-types.d.ts.map +0 -1
  550. package/dist/src/yaml/validation-types.js +0 -8
  551. package/dist/src/yaml/yaml-updater.d.ts +0 -24
  552. package/dist/src/yaml/yaml-updater.d.ts.map +0 -1
  553. 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"}