@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,230 +0,0 @@
1
- /**
2
- * Universal secrets management for CI Build
3
- * Stores sensitive values by exact variable name — no UUIDs, no YAML modification
4
- * Supports per-workflow scoping with global fallback
5
- *
6
- * File format:
7
- * {
8
- * "global": { "VAR_NAME": "value" },
9
- * "workflows": {
10
- * "staging-java-17": { "VAR_NAME": "value" }
11
- * }
12
- * }
13
- */
14
- import * as fs from 'fs';
15
- import * as path from 'path';
16
- import { decodeSecretName } from '../commands/secrets-upload.js';
17
- export class SecretsManager {
18
- secretsFilePath;
19
- data;
20
- fileLoaded = false;
21
- constructor(secretsFilePath) {
22
- this.secretsFilePath = secretsFilePath || path.join(process.cwd(), '.cibuild-secrets.json');
23
- this.data = { global: {}, workflows: {} };
24
- this.loadSecrets();
25
- }
26
- loadSecrets() {
27
- try {
28
- if (fs.existsSync(this.secretsFilePath)) {
29
- const content = fs.readFileSync(this.secretsFilePath, 'utf-8');
30
- const parsed = JSON.parse(content);
31
- this.fileLoaded = true;
32
- // Support both new format and legacy flat format
33
- if (parsed.global !== undefined || parsed.workflows !== undefined) {
34
- this.data = {
35
- global: parsed.global || {},
36
- workflows: parsed.workflows || {},
37
- };
38
- }
39
- else {
40
- // Legacy flat format: treat all keys as global
41
- this.data.global = {};
42
- for (const [key, value] of Object.entries(parsed)) {
43
- if (typeof value === 'string') {
44
- this.data.global[key] = value;
45
- }
46
- }
47
- }
48
- }
49
- else {
50
- // No file — try loading from structured env vars (GitHub environment secrets)
51
- const envData = this.getStructuredEnvSecrets();
52
- if (Object.keys(envData.global).length > 0 ||
53
- Object.keys(envData.workflows).length > 0) {
54
- this.data = envData;
55
- this.fileLoaded = true;
56
- }
57
- }
58
- }
59
- catch (error) {
60
- console.warn(`Warning: Could not load secrets file: ${error instanceof Error ? error.message : String(error)}`);
61
- }
62
- }
63
- /**
64
- * Reads structured env vars (CIBUILD_S__* and CIBUILD_SW__*) and decodes them
65
- * back into a SecretsFile structure. Used when running in CI where secrets
66
- * were uploaded via `ci secrets upload`.
67
- */
68
- getStructuredEnvSecrets() {
69
- const result = { global: {}, workflows: {} };
70
- for (const [key, value] of Object.entries(process.env)) {
71
- if (value === undefined)
72
- continue;
73
- const decoded = decodeSecretName(key);
74
- if (!decoded)
75
- continue;
76
- if (decoded.workflow) {
77
- if (!result.workflows[decoded.workflow]) {
78
- result.workflows[decoded.workflow] = {};
79
- }
80
- result.workflows[decoded.workflow][decoded.varName] = value;
81
- }
82
- else {
83
- result.global[decoded.varName] = value;
84
- }
85
- }
86
- return result;
87
- }
88
- saveSecrets() {
89
- const dir = path.dirname(this.secretsFilePath);
90
- if (!fs.existsSync(dir)) {
91
- fs.mkdirSync(dir, { recursive: true });
92
- }
93
- fs.writeFileSync(this.secretsFilePath, JSON.stringify(this.data, null, 2), {
94
- mode: 0o600,
95
- });
96
- }
97
- /**
98
- * Store a secret by variable name, optionally scoped to a workflow.
99
- * @returns The variable name (used as the key)
100
- */
101
- storeSecret(name, value, workflow) {
102
- if (workflow) {
103
- if (!this.data.workflows[workflow]) {
104
- this.data.workflows[workflow] = {};
105
- }
106
- this.data.workflows[workflow][name] = value;
107
- }
108
- else {
109
- this.data.global[name] = value;
110
- }
111
- this.saveSecrets();
112
- return name;
113
- }
114
- static ENV_PREFIX = 'CIBUILD_';
115
- /**
116
- * Reads all CIBUILD_-prefixed env vars, stripping the prefix from the keys.
117
- * e.g. CIBUILD_SSH_RSA_PRIVATE_KEY → SSH_RSA_PRIVATE_KEY
118
- */
119
- getEnvSecrets() {
120
- const secrets = {};
121
- for (const [key, value] of Object.entries(process.env)) {
122
- if (key.startsWith(SecretsManager.ENV_PREFIX) && value !== undefined) {
123
- secrets[key.slice(SecretsManager.ENV_PREFIX.length)] = value;
124
- }
125
- }
126
- return secrets;
127
- }
128
- /**
129
- * Get a secret value by variable name.
130
- * Workflow-specific value takes precedence over global.
131
- * Falls back to CIBUILD_-prefixed env vars when no secrets file is present.
132
- *
133
- * The stored data is consulted before that fallback, and not only when a
134
- * file was loaded. `storeSecret` writes the file but cannot make it one this
135
- * instance *loaded*, so a value collected by `ci init` on a repository that
136
- * had no store — which is the only kind of run that collects anything — read
137
- * back as absent from the instance that had just stored it. `ci init`'s own
138
- * `getSecret('KEYSTORE_PROPERTIES', wf)`, which is how a workflow's keystore
139
- * target is taken from `storeFile=`, returned undefined on every fresh
140
- * repository because of it.
141
- */
142
- getSecret(name, workflow) {
143
- if (workflow && this.data.workflows[workflow]?.[name] !== undefined) {
144
- return this.data.workflows[workflow][name];
145
- }
146
- if (this.data.global[name] !== undefined) {
147
- return this.data.global[name];
148
- }
149
- if (!this.fileLoaded) {
150
- return process.env[SecretsManager.ENV_PREFIX + name];
151
- }
152
- return undefined;
153
- }
154
- /**
155
- * Get all secrets merged: global + workflow-specific (workflow overrides global).
156
- * Falls back to CIBUILD_-prefixed env vars when no secrets file is present —
157
- * for the keys the store does not hold. See `getSecret`.
158
- */
159
- getAll(workflow) {
160
- const merged = this.fileLoaded ? {} : this.getEnvSecrets();
161
- Object.assign(merged, this.data.global);
162
- if (workflow && this.data.workflows[workflow]) {
163
- Object.assign(merged, this.data.workflows[workflow]);
164
- }
165
- return merged;
166
- }
167
- /**
168
- * Returns the variable name if a secret exists for it, undefined otherwise.
169
- * Checks workflow scope first, then global, then the CIBUILD_-prefixed env
170
- * vars when no secrets file is present. See `getSecret`.
171
- */
172
- getSecretIdByName(name, workflow) {
173
- if (workflow && this.data.workflows[workflow]?.[name] !== undefined) {
174
- return name;
175
- }
176
- if (this.data.global[name] !== undefined) {
177
- return name;
178
- }
179
- if (!this.fileLoaded) {
180
- return process.env[SecretsManager.ENV_PREFIX + name] !== undefined ? name : undefined;
181
- }
182
- return undefined;
183
- }
184
- /**
185
- * Returns the name itself (API compatibility).
186
- */
187
- getSecretName(id) {
188
- return this.getSecretIdByName(id) ? id : undefined;
189
- }
190
- /**
191
- * Check if a secret exists by variable name (global or any workflow).
192
- */
193
- hasSecret(name, workflow) {
194
- return this.getSecretIdByName(name, workflow) !== undefined;
195
- }
196
- /**
197
- * Get all stored variable names (global + all workflows, deduplicated).
198
- */
199
- getAllSecretNames() {
200
- const names = new Set(Object.keys(this.data.global));
201
- for (const vars of Object.values(this.data.workflows)) {
202
- for (const key of Object.keys(vars))
203
- names.add(key);
204
- }
205
- return Array.from(names);
206
- }
207
- /**
208
- * Delete a secret by variable name (from workflow scope or global).
209
- */
210
- deleteSecret(name, workflow) {
211
- let deleted = false;
212
- if (workflow && this.data.workflows[workflow]) {
213
- if (name in this.data.workflows[workflow]) {
214
- delete this.data.workflows[workflow][name];
215
- deleted = true;
216
- }
217
- }
218
- else if (name in this.data.global) {
219
- delete this.data.global[name];
220
- deleted = true;
221
- }
222
- if (deleted)
223
- this.saveSecrets();
224
- return deleted;
225
- }
226
- getSecretsFilePath() {
227
- return this.secretsFilePath;
228
- }
229
- }
230
- //# sourceMappingURL=secrets-manager.js.map
@@ -1,40 +0,0 @@
1
- /**
2
- * Which names a shell snippet binds for itself.
3
- *
4
- * Two different parts of this codebase scan a step's inputs for `$UPPERCASE`
5
- * and act on every hit — the pre-execution validator, which demands each one
6
- * be supplied, and the env resolver, which *substitutes* each one. For a
7
- * `script` step the inputs are the shell body, so a variable the script
8
- * computes is indistinguishable from one it needs handed to it. Both were
9
- * wrong about the same thing, so they share one answer.
10
- *
11
- * A generated multiplatform pipeline made it plain. Its prepare step opens
12
- *
13
- * INTEGRATION="$KMM_IOS_INTEGRATION"
14
- * IOS_DIR=$(dirname "$IOS_PROJECT_PATH")
15
- * for WORKSPACE in "$IOS_DIR"/*.xcworkspace; do …
16
- *
17
- * and no build could start: the validator refused for three values nothing was
18
- * meant to provide, and the resolver would have gone further and *rewritten*
19
- * the body, replacing `"$IOS_DIR"` with a pipeline value instead of the one
20
- * `dirname` had just computed. Substituting a shell local is not a missing
21
- * value at all; it is a corrupted script.
22
- *
23
- * **Only the assignment target is collected, never the right-hand side.** That
24
- * is what keeps this from being a hole: `INTEGRATION="$KMM_IOS_INTEGRATION"`
25
- * still needs `KMM_IOS_INTEGRATION`, so a script cannot excuse itself from a
26
- * value it reads by mentioning it.
27
- *
28
- * Assignment order is deliberately not modelled. A snippet that reads a
29
- * variable before setting it is a bug in the snippet, and guessing about it
30
- * here would trade one wrong answer for another; "does the script set this
31
- * itself?" is the question worth asking.
32
- */
33
- /** The names one snippet of shell assigns to itself. */
34
- export declare function shellAssignedNamesIn(text: string): Set<string>;
35
- /**
36
- * The same question asked of a whole inputs object, walked recursively — what
37
- * the validator needs, because it reasons about a step rather than a string.
38
- */
39
- export declare function shellAssignedNames(obj: unknown): Set<string>;
40
- //# sourceMappingURL=shell-assignments.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shell-assignments.d.ts","sourceRoot":"","sources":["../../../src/yaml/shell-assignments.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAaH,wDAAwD;AACxD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAa9D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAa5D"}
@@ -1,77 +0,0 @@
1
- /**
2
- * Which names a shell snippet binds for itself.
3
- *
4
- * Two different parts of this codebase scan a step's inputs for `$UPPERCASE`
5
- * and act on every hit — the pre-execution validator, which demands each one
6
- * be supplied, and the env resolver, which *substitutes* each one. For a
7
- * `script` step the inputs are the shell body, so a variable the script
8
- * computes is indistinguishable from one it needs handed to it. Both were
9
- * wrong about the same thing, so they share one answer.
10
- *
11
- * A generated multiplatform pipeline made it plain. Its prepare step opens
12
- *
13
- * INTEGRATION="$KMM_IOS_INTEGRATION"
14
- * IOS_DIR=$(dirname "$IOS_PROJECT_PATH")
15
- * for WORKSPACE in "$IOS_DIR"/*.xcworkspace; do …
16
- *
17
- * and no build could start: the validator refused for three values nothing was
18
- * meant to provide, and the resolver would have gone further and *rewritten*
19
- * the body, replacing `"$IOS_DIR"` with a pipeline value instead of the one
20
- * `dirname` had just computed. Substituting a shell local is not a missing
21
- * value at all; it is a corrupted script.
22
- *
23
- * **Only the assignment target is collected, never the right-hand side.** That
24
- * is what keeps this from being a hole: `INTEGRATION="$KMM_IOS_INTEGRATION"`
25
- * still needs `KMM_IOS_INTEGRATION`, so a script cannot excuse itself from a
26
- * value it reads by mentioning it.
27
- *
28
- * Assignment order is deliberately not modelled. A snippet that reads a
29
- * variable before setting it is a bug in the snippet, and guessing about it
30
- * here would trade one wrong answer for another; "does the script set this
31
- * itself?" is the question worth asking.
32
- */
33
- /** `NAME=…`, `export NAME=…`, `local/readonly/declare/typeset NAME=…`, `NAME+=…` */
34
- const ASSIGNMENT = /(?:^|[\n;&|(]|\|\||&&)[ \t]*(?:(?:export|readonly|local|declare|typeset)[ \t]+)?([A-Z_][A-Z_0-9]*)\+?=/g;
35
- /** `for NAME in …`, `select NAME in …` */
36
- const LOOP = /(?:^|[\n;&|(])[ \t]*(?:for|select)[ \t]+([A-Z_][A-Z_0-9]*)[ \t]+in\b/g;
37
- /** `read NAME`, `read -r NAME OTHER`, `while read -r NAME` */
38
- const READ = /(?:^|[\n;&|(]|\|\||&&)[ \t]*(?:while[ \t]+)?read[ \t]+((?:-\S+[ \t]+)*)([A-Z_][A-Z_0-9]*(?:[ \t]+[A-Z_][A-Z_0-9]*)*)/g;
39
- /** The names one snippet of shell assigns to itself. */
40
- export function shellAssignedNamesIn(text) {
41
- const names = new Set();
42
- for (const re of [ASSIGNMENT, LOOP]) {
43
- re.lastIndex = 0;
44
- let m;
45
- while ((m = re.exec(text)) !== null)
46
- names.add(m[1]);
47
- }
48
- READ.lastIndex = 0;
49
- let m;
50
- while ((m = READ.exec(text)) !== null) {
51
- for (const n of m[2].trim().split(/[ \t]+/))
52
- names.add(n);
53
- }
54
- return names;
55
- }
56
- /**
57
- * The same question asked of a whole inputs object, walked recursively — what
58
- * the validator needs, because it reasons about a step rather than a string.
59
- */
60
- export function shellAssignedNames(obj) {
61
- const names = new Set();
62
- const walk = (value) => {
63
- if (typeof value === 'string') {
64
- for (const n of shellAssignedNamesIn(value))
65
- names.add(n);
66
- }
67
- else if (Array.isArray(value)) {
68
- value.forEach(walk);
69
- }
70
- else if (value && typeof value === 'object') {
71
- Object.values(value).forEach(walk);
72
- }
73
- };
74
- walk(obj);
75
- return names;
76
- }
77
- //# sourceMappingURL=shell-assignments.js.map
@@ -1,24 +0,0 @@
1
- /**
2
- * Unit tests for what happens when a pre-execution check cannot run.
3
- *
4
- * A check that *ran* and found nothing, and a check that *threw* before it
5
- * tested anything, are different events. Until 2026-09-01 they were reported
6
- * identically: the throw was wrapped in a `Check failed:` message and carried
7
- * the requirement's own declared severity. For the Java JDK requirement that
8
- * severity is `info` — chosen because the check looks in several places and a
9
- * miss is not fatal — so a check that never looked anywhere at all was
10
- * reported as information and read as noise.
11
- *
12
- * It was not noise. The released macOS binary is built with `pkg`, which
13
- * cannot evaluate a dynamic `import()` of a module it did not bundle; the JDK
14
- * check opened with two of them and threw `Invalid host defined options` on
15
- * every macOS build. It went unseen for as long as the fleet has existed.
16
- *
17
- * Two rules are pinned here:
18
- * 1. a throw is reported at `warning`, whatever the requirement declares;
19
- * 2. no check may reach for a Node builtin through a dynamic import, because
20
- * nothing else in the test suite can see that failure — under plain
21
- * `node`, and in the npm bundle, the code works.
22
- */
23
- export {};
24
- //# sourceMappingURL=step-validator-check-failure.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"step-validator-check-failure.test.d.ts","sourceRoot":"","sources":["../../../src/yaml/step-validator-check-failure.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG"}
@@ -1,130 +0,0 @@
1
- /**
2
- * Unit tests for what happens when a pre-execution check cannot run.
3
- *
4
- * A check that *ran* and found nothing, and a check that *threw* before it
5
- * tested anything, are different events. Until 2026-09-01 they were reported
6
- * identically: the throw was wrapped in a `Check failed:` message and carried
7
- * the requirement's own declared severity. For the Java JDK requirement that
8
- * severity is `info` — chosen because the check looks in several places and a
9
- * miss is not fatal — so a check that never looked anywhere at all was
10
- * reported as information and read as noise.
11
- *
12
- * It was not noise. The released macOS binary is built with `pkg`, which
13
- * cannot evaluate a dynamic `import()` of a module it did not bundle; the JDK
14
- * check opened with two of them and threw `Invalid host defined options` on
15
- * every macOS build. It went unseen for as long as the fleet has existed.
16
- *
17
- * Two rules are pinned here:
18
- * 1. a throw is reported at `warning`, whatever the requirement declares;
19
- * 2. no check may reach for a Node builtin through a dynamic import, because
20
- * nothing else in the test suite can see that failure — under plain
21
- * `node`, and in the npm bundle, the code works.
22
- */
23
- import { describe, test, expect } from '@jest/globals';
24
- import { readFileSync, readdirSync, statSync } from 'node:fs';
25
- import { join } from 'node:path';
26
- import { registerStep } from './steps/registry.js';
27
- import { BaseStepExecutor } from './steps/base.js';
28
- import { StepValidator } from './step-validator.js';
29
- import { loadConfig } from '../config.js';
30
- const config = loadConfig();
31
- /** A step whose single requirement behaves however the test needs it to. */
32
- function stepWhoseCheck(severity, check) {
33
- const name = `probe-${Math.random().toString(36).slice(2)}`;
34
- class ProbeStep extends BaseStepExecutor {
35
- async execute() {
36
- return this.createScriptStep('echo probe', name);
37
- }
38
- getValidationRequirements() {
39
- return [
40
- {
41
- category: 'command',
42
- name: 'probe-tool',
43
- description: 'A tool the probe step needs',
44
- timing: 'pre-execution',
45
- severity,
46
- check,
47
- },
48
- ];
49
- }
50
- }
51
- registerStep(name, new ProbeStep());
52
- return name;
53
- }
54
- async function validate(stepName) {
55
- const validator = new StepValidator({
56
- format_version: '1',
57
- meta: { invarn: { stack: 'macos-xcode-26.4' } },
58
- workflows: { primary: { steps: [{ [`${stepName}@1.0.0`]: { inputs: {} } }] } },
59
- }, 'primary', config);
60
- return validator.validateWorkflow();
61
- }
62
- describe('a check that could not run', () => {
63
- test('is reported as a warning even though the requirement declares info', async () => {
64
- const name = stepWhoseCheck('info', async () => {
65
- throw new Error('Invalid host defined options');
66
- });
67
- const result = await validate(name);
68
- expect(result.counts).toMatchObject({ errors: 0, warnings: 1, info: 0 });
69
- expect(result.issues[0].requirement.severity).toBe('warning');
70
- expect(result.issues[0].result.message).toBe('Check failed: Invalid host defined options');
71
- });
72
- test('does not turn a hard requirement into a soft one', async () => {
73
- const name = stepWhoseCheck('error', async () => {
74
- throw new Error('boom');
75
- });
76
- const result = await validate(name);
77
- // An `error` requirement whose check throws must not be downgraded — that
78
- // would let a pipeline proceed past a requirement nothing verified.
79
- expect(result.counts).toMatchObject({ errors: 1, warnings: 0, info: 0 });
80
- expect(result.valid).toBe(false);
81
- });
82
- test('leaves a check that ran and failed at its declared severity', async () => {
83
- const name = stepWhoseCheck('info', async () => ({
84
- passed: false,
85
- message: 'Java 17 not found',
86
- }));
87
- const result = await validate(name);
88
- // The whole point of the distinction: this check *worked*. `info` is the
89
- // right severity for it and must survive.
90
- expect(result.counts).toMatchObject({ errors: 0, warnings: 0, info: 1 });
91
- expect(result.issues[0].result.message).toBe('Java 17 not found');
92
- });
93
- });
94
- /**
95
- * The structural half.
96
- *
97
- * esbuild leaves a dynamic `import()` of a Node builtin in the bundle — the
98
- * builtins are external — and `pkg` then cannot evaluate it. Relative
99
- * specifiers are inlined by the bundler and are unaffected, which is why
100
- * `envman` and `fidelity-trim` work while the JDK check did not.
101
- *
102
- * There is no runtime test that can catch this: it reproduces only in a
103
- * `pkg`-built binary, and `./test.sh` runs under plain `node`. So the rule is
104
- * enforced on the source.
105
- */
106
- describe('no source file reaches for a Node builtin through a dynamic import', () => {
107
- const BUILTIN = /await import\(\s*['"](?:node:)?(fs|path|os|child_process|readline|crypto|util|url|http|https|net|stream|zlib|tty|events)(?:\/[\w-]+)?['"]\s*\)/;
108
- function sourceFiles(dir) {
109
- return readdirSync(dir).flatMap((entry) => {
110
- const full = join(dir, entry);
111
- if (statSync(full).isDirectory())
112
- return sourceFiles(full);
113
- if (!full.endsWith('.ts') || full.endsWith('.test.ts'))
114
- return [];
115
- return [full];
116
- });
117
- }
118
- test('src is clean', () => {
119
- // Jest runs from the package root; `src` is the whole surface that gets
120
- // bundled into the released binary.
121
- const offenders = sourceFiles(join(process.cwd(), 'src'))
122
- .flatMap((file) => readFileSync(file, 'utf8')
123
- .split('\n')
124
- .map((line, i) => ({ file, line: line.trim(), n: i + 1 }))
125
- .filter(({ line }) => BUILTIN.test(line)))
126
- .map(({ file, n, line }) => `${file.replace(/.*\/src\//, 'src/')}:${n} ${line}`);
127
- expect(offenders).toEqual([]);
128
- });
129
- });
130
- //# sourceMappingURL=step-validator-check-failure.test.js.map
@@ -1,23 +0,0 @@
1
- /**
2
- * A step does not owe itself the variables its own shell sets.
3
- *
4
- * Pre-execution validation auto-discovers every `$UPPERCASE` in a step's
5
- * inputs and treats it as a value the pipeline must supply. For a `script`
6
- * step the inputs *are* the shell body, so a variable the script computes was
7
- * indistinguishable from one it needed handed to it — and because the check
8
- * cannot prompt in a sandbox, the pipeline was refused before step 1 for
9
- * values nothing was ever meant to provide.
10
- *
11
- * A generated multiplatform pipeline hit exactly that. Its prepare step opens
12
- * with `INTEGRATION="$KMM_IOS_INTEGRATION"`, `IOS_DIR=$(dirname
13
- * "$IOS_PROJECT_PATH")` and `for WORKSPACE in "$IOS_DIR"/*.xcworkspace`, and
14
- * the run died on "3 required value(s) missing — INTEGRATION, IOS_DIR,
15
- * WORKSPACE" while the two variables it genuinely reads were both declared and
16
- * present. The iOS templates do the same thing with `IOS_DIR` alone.
17
- *
18
- * The load-bearing half of these tests is the second half: only the assignment
19
- * *target* is excused, never the right-hand side, so a script cannot exempt
20
- * itself from a value it reads by mentioning it.
21
- */
22
- import '../yaml/steps/index.js';
23
- //# sourceMappingURL=step-validator-self-assigned.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"step-validator-self-assigned.test.d.ts","sourceRoot":"","sources":["../../../src/yaml/step-validator-self-assigned.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,wBAAwB,CAAC"}