@invarn/cibuild 1.3.15 → 1.3.17

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 (242) hide show
  1. package/dist/cli.cjs +1 -1
  2. package/dist/src/cli.d.ts +3 -0
  3. package/dist/src/cli.d.ts.map +1 -0
  4. package/dist/src/cli.js +987 -0
  5. package/dist/src/commands/android-scanner.d.ts +32 -0
  6. package/dist/src/commands/android-scanner.d.ts.map +1 -0
  7. package/dist/src/commands/android-scanner.js +667 -0
  8. package/dist/src/commands/build.d.ts +5 -0
  9. package/dist/src/commands/build.d.ts.map +1 -0
  10. package/dist/src/commands/build.js +1096 -0
  11. package/dist/src/commands/edit.d.ts +3 -0
  12. package/dist/src/commands/edit.d.ts.map +1 -0
  13. package/dist/src/commands/edit.js +651 -0
  14. package/dist/src/commands/file-secret-collector.d.ts +37 -0
  15. package/dist/src/commands/file-secret-collector.d.ts.map +1 -0
  16. package/dist/src/commands/file-secret-collector.js +199 -0
  17. package/dist/src/commands/github-workflow.d.ts +5 -0
  18. package/dist/src/commands/github-workflow.d.ts.map +1 -0
  19. package/dist/src/commands/github-workflow.js +45 -0
  20. package/dist/src/commands/ios-scanner.d.ts +27 -0
  21. package/dist/src/commands/ios-scanner.d.ts.map +1 -0
  22. package/dist/src/commands/ios-scanner.js +337 -0
  23. package/dist/src/commands/reset.d.ts +7 -0
  24. package/dist/src/commands/reset.d.ts.map +1 -0
  25. package/dist/src/commands/reset.js +81 -0
  26. package/dist/src/commands/secrets-sync-workflow.d.ts +15 -0
  27. package/dist/src/commands/secrets-sync-workflow.d.ts.map +1 -0
  28. package/dist/src/commands/secrets-sync-workflow.js +255 -0
  29. package/dist/src/commands/secrets-upload.d.ts +21 -0
  30. package/dist/src/commands/secrets-upload.d.ts.map +1 -0
  31. package/dist/src/commands/secrets-upload.js +177 -0
  32. package/dist/src/commands/secrets-upload.test.d.ts +5 -0
  33. package/dist/src/commands/secrets-upload.test.d.ts.map +1 -0
  34. package/dist/src/commands/secrets-upload.test.js +60 -0
  35. package/dist/src/config.d.ts +3 -0
  36. package/dist/src/config.d.ts.map +1 -0
  37. package/dist/src/config.js +46 -0
  38. package/dist/src/envman/cli.d.ts +21 -0
  39. package/dist/src/envman/cli.d.ts.map +1 -0
  40. package/dist/src/envman/cli.js +240 -0
  41. package/dist/src/envman/envman.d.ts +83 -0
  42. package/dist/src/envman/envman.d.ts.map +1 -0
  43. package/dist/src/envman/envman.js +361 -0
  44. package/dist/src/envman/envman.test.d.ts +5 -0
  45. package/dist/src/envman/envman.test.d.ts.map +1 -0
  46. package/dist/src/envman/envman.test.js +236 -0
  47. package/dist/src/envman/index.d.ts +23 -0
  48. package/dist/src/envman/index.d.ts.map +1 -0
  49. package/dist/src/envman/index.js +23 -0
  50. package/dist/src/envman/types.d.ts +55 -0
  51. package/dist/src/envman/types.d.ts.map +1 -0
  52. package/dist/src/envman/types.js +12 -0
  53. package/dist/src/lib.d.ts +27 -0
  54. package/dist/src/lib.d.ts.map +1 -0
  55. package/dist/src/lib.js +32 -0
  56. package/dist/src/pipeline.d.ts +3 -0
  57. package/dist/src/pipeline.d.ts.map +1 -0
  58. package/dist/src/pipeline.js +57 -0
  59. package/dist/src/runner.d.ts +17 -0
  60. package/dist/src/runner.d.ts.map +1 -0
  61. package/dist/src/runner.js +234 -0
  62. package/dist/src/types.d.ts +57 -0
  63. package/dist/src/types.d.ts.map +1 -0
  64. package/dist/src/types.js +2 -0
  65. package/dist/src/yaml/bitrise-compat.d.ts +65 -0
  66. package/dist/src/yaml/bitrise-compat.d.ts.map +1 -0
  67. package/dist/src/yaml/bitrise-compat.js +206 -0
  68. package/dist/src/yaml/bitrise-compat.test.d.ts +5 -0
  69. package/dist/src/yaml/bitrise-compat.test.d.ts.map +1 -0
  70. package/dist/src/yaml/bitrise-compat.test.js +347 -0
  71. package/dist/src/yaml/converter.d.ts +33 -0
  72. package/dist/src/yaml/converter.d.ts.map +1 -0
  73. package/dist/src/yaml/converter.js +222 -0
  74. package/dist/src/yaml/converter.test.d.ts +5 -0
  75. package/dist/src/yaml/converter.test.d.ts.map +1 -0
  76. package/dist/src/yaml/converter.test.js +348 -0
  77. package/dist/src/yaml/e2e.test.d.ts +6 -0
  78. package/dist/src/yaml/e2e.test.d.ts.map +1 -0
  79. package/dist/src/yaml/e2e.test.js +446 -0
  80. package/dist/src/yaml/env-resolver.d.ts +120 -0
  81. package/dist/src/yaml/env-resolver.d.ts.map +1 -0
  82. package/dist/src/yaml/env-resolver.js +405 -0
  83. package/dist/src/yaml/env-resolver.test.d.ts +5 -0
  84. package/dist/src/yaml/env-resolver.test.d.ts.map +1 -0
  85. package/dist/src/yaml/env-resolver.test.js +502 -0
  86. package/dist/src/yaml/interactive-prompts.d.ts +71 -0
  87. package/dist/src/yaml/interactive-prompts.d.ts.map +1 -0
  88. package/dist/src/yaml/interactive-prompts.js +258 -0
  89. package/dist/src/yaml/missing-env-handler.d.ts +45 -0
  90. package/dist/src/yaml/missing-env-handler.d.ts.map +1 -0
  91. package/dist/src/yaml/missing-env-handler.js +64 -0
  92. package/dist/src/yaml/parser.d.ts +33 -0
  93. package/dist/src/yaml/parser.d.ts.map +1 -0
  94. package/dist/src/yaml/parser.js +145 -0
  95. package/dist/src/yaml/pipeline-with-secrets.d.ts +25 -0
  96. package/dist/src/yaml/pipeline-with-secrets.d.ts.map +1 -0
  97. package/dist/src/yaml/pipeline-with-secrets.js +76 -0
  98. package/dist/src/yaml/platform-detector.d.ts +83 -0
  99. package/dist/src/yaml/platform-detector.d.ts.map +1 -0
  100. package/dist/src/yaml/platform-detector.js +188 -0
  101. package/dist/src/yaml/platform-detector.test.d.ts +5 -0
  102. package/dist/src/yaml/platform-detector.test.d.ts.map +1 -0
  103. package/dist/src/yaml/platform-detector.test.js +414 -0
  104. package/dist/src/yaml/preflight-validation.d.ts +40 -0
  105. package/dist/src/yaml/preflight-validation.d.ts.map +1 -0
  106. package/dist/src/yaml/preflight-validation.js +152 -0
  107. package/dist/src/yaml/secrets-manager.d.ts +77 -0
  108. package/dist/src/yaml/secrets-manager.d.ts.map +1 -0
  109. package/dist/src/yaml/secrets-manager.js +219 -0
  110. package/dist/src/yaml/step-validator.d.ts +54 -0
  111. package/dist/src/yaml/step-validator.d.ts.map +1 -0
  112. package/dist/src/yaml/step-validator.js +403 -0
  113. package/dist/src/yaml/steps/android-sign.d.ts +35 -0
  114. package/dist/src/yaml/steps/android-sign.d.ts.map +1 -0
  115. package/dist/src/yaml/steps/android-sign.js +147 -0
  116. package/dist/src/yaml/steps/android-version.d.ts +26 -0
  117. package/dist/src/yaml/steps/android-version.d.ts.map +1 -0
  118. package/dist/src/yaml/steps/android-version.js +128 -0
  119. package/dist/src/yaml/steps/android-version.test.d.ts +5 -0
  120. package/dist/src/yaml/steps/android-version.test.d.ts.map +1 -0
  121. package/dist/src/yaml/steps/android-version.test.js +196 -0
  122. package/dist/src/yaml/steps/android.d.ts +95 -0
  123. package/dist/src/yaml/steps/android.d.ts.map +1 -0
  124. package/dist/src/yaml/steps/android.js +916 -0
  125. package/dist/src/yaml/steps/app-store-deploy.d.ts +48 -0
  126. package/dist/src/yaml/steps/app-store-deploy.d.ts.map +1 -0
  127. package/dist/src/yaml/steps/app-store-deploy.js +162 -0
  128. package/dist/src/yaml/steps/base.d.ts +238 -0
  129. package/dist/src/yaml/steps/base.d.ts.map +1 -0
  130. package/dist/src/yaml/steps/base.js +345 -0
  131. package/dist/src/yaml/steps/bitrise-android-tools.d.ts +26 -0
  132. package/dist/src/yaml/steps/bitrise-android-tools.d.ts.map +1 -0
  133. package/dist/src/yaml/steps/bitrise-android-tools.js +198 -0
  134. package/dist/src/yaml/steps/bitrise-android-tools.test.d.ts +5 -0
  135. package/dist/src/yaml/steps/bitrise-android-tools.test.d.ts.map +1 -0
  136. package/dist/src/yaml/steps/bitrise-android-tools.test.js +280 -0
  137. package/dist/src/yaml/steps/bitrise-apk-info.d.ts +22 -0
  138. package/dist/src/yaml/steps/bitrise-apk-info.d.ts.map +1 -0
  139. package/dist/src/yaml/steps/bitrise-apk-info.js +144 -0
  140. package/dist/src/yaml/steps/bitrise-apk-info.test.d.ts +5 -0
  141. package/dist/src/yaml/steps/bitrise-apk-info.test.d.ts.map +1 -0
  142. package/dist/src/yaml/steps/bitrise-apk-info.test.js +331 -0
  143. package/dist/src/yaml/steps/bitrise-slack.d.ts +49 -0
  144. package/dist/src/yaml/steps/bitrise-slack.d.ts.map +1 -0
  145. package/dist/src/yaml/steps/bitrise-slack.js +280 -0
  146. package/dist/src/yaml/steps/bitrise-slack.test.d.ts +5 -0
  147. package/dist/src/yaml/steps/bitrise-slack.test.d.ts.map +1 -0
  148. package/dist/src/yaml/steps/bitrise-slack.test.js +484 -0
  149. package/dist/src/yaml/steps/bitrise-ssh.d.ts +27 -0
  150. package/dist/src/yaml/steps/bitrise-ssh.d.ts.map +1 -0
  151. package/dist/src/yaml/steps/bitrise-ssh.js +134 -0
  152. package/dist/src/yaml/steps/bitrise-ssh.test.d.ts +5 -0
  153. package/dist/src/yaml/steps/bitrise-ssh.test.d.ts.map +1 -0
  154. package/dist/src/yaml/steps/bitrise-ssh.test.js +205 -0
  155. package/dist/src/yaml/steps/cache.d.ts +52 -0
  156. package/dist/src/yaml/steps/cache.d.ts.map +1 -0
  157. package/dist/src/yaml/steps/cache.js +351 -0
  158. package/dist/src/yaml/steps/fastlane.d.ts +27 -0
  159. package/dist/src/yaml/steps/fastlane.d.ts.map +1 -0
  160. package/dist/src/yaml/steps/fastlane.js +79 -0
  161. package/dist/src/yaml/steps/file.d.ts +27 -0
  162. package/dist/src/yaml/steps/file.d.ts.map +1 -0
  163. package/dist/src/yaml/steps/file.js +35 -0
  164. package/dist/src/yaml/steps/flutter.d.ts +63 -0
  165. package/dist/src/yaml/steps/flutter.d.ts.map +1 -0
  166. package/dist/src/yaml/steps/flutter.js +215 -0
  167. package/dist/src/yaml/steps/git-clone.d.ts +26 -0
  168. package/dist/src/yaml/steps/git-clone.d.ts.map +1 -0
  169. package/dist/src/yaml/steps/git-clone.js +111 -0
  170. package/dist/src/yaml/steps/google-play-deploy.d.ts +37 -0
  171. package/dist/src/yaml/steps/google-play-deploy.d.ts.map +1 -0
  172. package/dist/src/yaml/steps/google-play-deploy.js +193 -0
  173. package/dist/src/yaml/steps/google-play-deploy.test.d.ts +5 -0
  174. package/dist/src/yaml/steps/google-play-deploy.test.d.ts.map +1 -0
  175. package/dist/src/yaml/steps/google-play-deploy.test.js +310 -0
  176. package/dist/src/yaml/steps/index.d.ts +10 -0
  177. package/dist/src/yaml/steps/index.d.ts.map +1 -0
  178. package/dist/src/yaml/steps/index.js +1361 -0
  179. package/dist/src/yaml/steps/ios-deps.d.ts +43 -0
  180. package/dist/src/yaml/steps/ios-deps.d.ts.map +1 -0
  181. package/dist/src/yaml/steps/ios-deps.js +141 -0
  182. package/dist/src/yaml/steps/ios-deps.test.d.ts +5 -0
  183. package/dist/src/yaml/steps/ios-deps.test.d.ts.map +1 -0
  184. package/dist/src/yaml/steps/ios-deps.test.js +90 -0
  185. package/dist/src/yaml/steps/ios-signing.d.ts +31 -0
  186. package/dist/src/yaml/steps/ios-signing.d.ts.map +1 -0
  187. package/dist/src/yaml/steps/ios-signing.js +144 -0
  188. package/dist/src/yaml/steps/ios-version.d.ts +47 -0
  189. package/dist/src/yaml/steps/ios-version.d.ts.map +1 -0
  190. package/dist/src/yaml/steps/ios-version.js +151 -0
  191. package/dist/src/yaml/steps/linting.d.ts +47 -0
  192. package/dist/src/yaml/steps/linting.d.ts.map +1 -0
  193. package/dist/src/yaml/steps/linting.js +148 -0
  194. package/dist/src/yaml/steps/phase2.test.d.ts +6 -0
  195. package/dist/src/yaml/steps/phase2.test.d.ts.map +1 -0
  196. package/dist/src/yaml/steps/phase2.test.js +197 -0
  197. package/dist/src/yaml/steps/phase3.test.d.ts +5 -0
  198. package/dist/src/yaml/steps/phase3.test.d.ts.map +1 -0
  199. package/dist/src/yaml/steps/phase3.test.js +144 -0
  200. package/dist/src/yaml/steps/phase4.test.d.ts +5 -0
  201. package/dist/src/yaml/steps/phase4.test.d.ts.map +1 -0
  202. package/dist/src/yaml/steps/phase4.test.js +166 -0
  203. package/dist/src/yaml/steps/phase5.test.d.ts +6 -0
  204. package/dist/src/yaml/steps/phase5.test.d.ts.map +1 -0
  205. package/dist/src/yaml/steps/phase5.test.js +263 -0
  206. package/dist/src/yaml/steps/registry.d.ts +88 -0
  207. package/dist/src/yaml/steps/registry.d.ts.map +1 -0
  208. package/dist/src/yaml/steps/registry.js +125 -0
  209. package/dist/src/yaml/steps/registry.test.d.ts +5 -0
  210. package/dist/src/yaml/steps/registry.test.d.ts.map +1 -0
  211. package/dist/src/yaml/steps/registry.test.js +235 -0
  212. package/dist/src/yaml/steps/release.d.ts +50 -0
  213. package/dist/src/yaml/steps/release.d.ts.map +1 -0
  214. package/dist/src/yaml/steps/release.js +154 -0
  215. package/dist/src/yaml/steps/script.d.ts +23 -0
  216. package/dist/src/yaml/steps/script.d.ts.map +1 -0
  217. package/dist/src/yaml/steps/script.js +63 -0
  218. package/dist/src/yaml/steps/spec-validation.test.d.ts +6 -0
  219. package/dist/src/yaml/steps/spec-validation.test.d.ts.map +1 -0
  220. package/dist/src/yaml/steps/spec-validation.test.js +130 -0
  221. package/dist/src/yaml/steps/steps.test.d.ts +6 -0
  222. package/dist/src/yaml/steps/steps.test.d.ts.map +1 -0
  223. package/dist/src/yaml/steps/steps.test.js +474 -0
  224. package/dist/src/yaml/steps/test-config.d.ts +3 -0
  225. package/dist/src/yaml/steps/test-config.d.ts.map +1 -0
  226. package/dist/src/yaml/steps/test-config.js +16 -0
  227. package/dist/src/yaml/steps/xcode-new.test.d.ts +5 -0
  228. package/dist/src/yaml/steps/xcode-new.test.d.ts.map +1 -0
  229. package/dist/src/yaml/steps/xcode-new.test.js +211 -0
  230. package/dist/src/yaml/steps/xcode.d.ts +222 -0
  231. package/dist/src/yaml/steps/xcode.d.ts.map +1 -0
  232. package/dist/src/yaml/steps/xcode.js +999 -0
  233. package/dist/src/yaml/types.d.ts +68 -0
  234. package/dist/src/yaml/types.d.ts.map +1 -0
  235. package/dist/src/yaml/types.js +5 -0
  236. package/dist/src/yaml/validation-types.d.ts +96 -0
  237. package/dist/src/yaml/validation-types.d.ts.map +1 -0
  238. package/dist/src/yaml/validation-types.js +8 -0
  239. package/dist/src/yaml/yaml-updater.d.ts +24 -0
  240. package/dist/src/yaml/yaml-updater.d.ts.map +1 -0
  241. package/dist/src/yaml/yaml-updater.js +128 -0
  242. package/package.json +16 -4
@@ -0,0 +1,68 @@
1
+ /**
2
+ * TypeScript interfaces for Bitrise-compatible YAML pipeline structure
3
+ */
4
+ export type Platform = 'macos' | 'linux' | 'windows';
5
+ export type MachineType = 'standard' | 'performance';
6
+ export interface YAMLEnvVar {
7
+ [key: string]: string;
8
+ }
9
+ export interface YAMLCIBuildMeta {
10
+ stack?: string;
11
+ machine_type?: MachineType;
12
+ machine_type_id?: string;
13
+ platform?: 'ios' | 'android';
14
+ }
15
+ export interface YAMLMeta {
16
+ 'cibuild.io'?: YAMLCIBuildMeta;
17
+ 'bitrise.io'?: YAMLCIBuildMeta;
18
+ platform?: Platform;
19
+ }
20
+ export interface YAMLStepInputs {
21
+ [key: string]: any;
22
+ }
23
+ export interface YAMLStep {
24
+ [stepNameWithVersion: string]: {
25
+ title?: string;
26
+ inputs?: YAMLStepInputs;
27
+ run_if?: string;
28
+ is_always_run?: boolean;
29
+ is_skippable?: boolean;
30
+ };
31
+ }
32
+ export interface YAMLWorkflow {
33
+ description?: string;
34
+ envs?: YAMLEnvVar[];
35
+ steps: YAMLStep[];
36
+ }
37
+ export interface YAMLApp {
38
+ envs?: YAMLEnvVar[];
39
+ }
40
+ export interface YAMLTrigger {
41
+ push_branch?: string;
42
+ pull_request_source_branch?: string;
43
+ workflow?: string;
44
+ }
45
+ export interface YAMLPipeline {
46
+ format_version: string;
47
+ meta?: YAMLMeta;
48
+ app?: YAMLApp;
49
+ workflows: {
50
+ [name: string]: YAMLWorkflow;
51
+ };
52
+ trigger_map?: YAMLTrigger[];
53
+ }
54
+ export interface ParsedStep {
55
+ name: string;
56
+ version?: string;
57
+ title?: string;
58
+ inputs: YAMLStepInputs;
59
+ run_if?: string;
60
+ is_always_run?: boolean;
61
+ is_skippable?: boolean;
62
+ }
63
+ export interface PlatformInfo {
64
+ platform: Platform;
65
+ stack?: string;
66
+ machineType?: MachineType;
67
+ }
68
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/yaml/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;AACrD,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,aAAa,CAAC;AAGrD,MAAM,WAAW,UAAU;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAGD,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;CAC9B;AAED,MAAM,WAAW,QAAQ;IACvB,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAGD,MAAM,WAAW,cAAc;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAGD,MAAM,WAAW,QAAQ;IACvB,CAAC,mBAAmB,EAAE,MAAM,GAAG;QAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;CACH;AAGD,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC;IACpB,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAGD,MAAM,WAAW,OAAO;IACtB,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC;CACrB;AAGD,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAAA;KAAE,CAAC;IAC5C,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC;CAC7B;AAGD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAGD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * TypeScript interfaces for Bitrise-compatible YAML pipeline structure
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Types for step pre-execution validation
3
+ *
4
+ * This module defines types for validating pipeline steps BEFORE execution.
5
+ * All validation checks are read-only and safe to run on the user's machine.
6
+ */
7
+ /**
8
+ * When a validation check should run
9
+ * - 'pre-execution': Check can run before pipeline starts (commands, env vars)
10
+ * - 'runtime': Check must wait until step executes (files created by earlier steps)
11
+ */
12
+ export type ValidationTiming = 'pre-execution' | 'runtime';
13
+ /**
14
+ * Severity levels for validation issues
15
+ */
16
+ export type ValidationSeverity = 'error' | 'warning' | 'info';
17
+ /**
18
+ * Category of validation requirement
19
+ */
20
+ export type ValidationCategory = 'command' | 'environment' | 'file' | 'directory' | 'input' | 'dependency' | 'platform';
21
+ /**
22
+ * Result of a single validation check
23
+ */
24
+ export interface ValidationCheckResult {
25
+ passed: boolean;
26
+ message?: string;
27
+ details?: string;
28
+ }
29
+ /**
30
+ * A single validation requirement
31
+ */
32
+ export interface ValidationRequirement {
33
+ /** Category of requirement */
34
+ category: ValidationCategory;
35
+ /** Name of the requirement (e.g., 'xcodebuild', 'JAVA_HOME', 'gradlew') */
36
+ name: string;
37
+ /** Human-readable description */
38
+ description: string;
39
+ /** When should this be validated */
40
+ timing: ValidationTiming;
41
+ /** Is this a hard requirement or a warning? */
42
+ severity: ValidationSeverity;
43
+ /**
44
+ * How to check this requirement (only for 'pre-execution' timing)
45
+ * This function must be READ-ONLY and not modify any state
46
+ */
47
+ check?: () => Promise<ValidationCheckResult>;
48
+ /** Hint on how to fix if validation fails */
49
+ hint?: string;
50
+ /** If this is a dependency, which step provides it? */
51
+ providedBy?: string;
52
+ }
53
+ /**
54
+ * A validation issue found during pre-execution checks
55
+ */
56
+ export interface ValidationIssue {
57
+ /** Step that has the issue */
58
+ stepName: string;
59
+ /** Step index in the workflow */
60
+ stepIndex: number;
61
+ /** The requirement that failed */
62
+ requirement: ValidationRequirement;
63
+ /** Result of the check */
64
+ result: ValidationCheckResult;
65
+ }
66
+ /**
67
+ * Complete validation result for a workflow
68
+ */
69
+ export interface WorkflowValidationResult {
70
+ /** Did all validations pass? */
71
+ valid: boolean;
72
+ /** All issues found (empty if valid) */
73
+ issues: ValidationIssue[];
74
+ /** Issues grouped by step */
75
+ issuesByStep: Map<string, ValidationIssue[]>;
76
+ /** Issues grouped by category */
77
+ issuesByCategory: Map<ValidationCategory, ValidationIssue[]>;
78
+ /** Count of errors/warnings/info */
79
+ counts: {
80
+ errors: number;
81
+ warnings: number;
82
+ info: number;
83
+ };
84
+ }
85
+ /**
86
+ * Output that a step provides to subsequent steps
87
+ */
88
+ export interface StepOutput {
89
+ /** Name of the output (e.g., 'CIBUILD_SOURCE_DIR') */
90
+ name: string;
91
+ /** Type of output */
92
+ type: 'environment' | 'file' | 'directory';
93
+ /** Description */
94
+ description: string;
95
+ }
96
+ //# sourceMappingURL=validation-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation-types.d.ts","sourceRoot":"","sources":["../../../src/yaml/validation-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG,SAAS,CAAC;AAE3D;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,aAAa,GACb,MAAM,GACN,WAAW,GACX,OAAO,GACP,YAAY,GACZ,UAAU,CAAC;AAEf;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,8BAA8B;IAC9B,QAAQ,EAAE,kBAAkB,CAAC;IAE7B,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;IAEb,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IAEpB,oCAAoC;IACpC,MAAM,EAAE,gBAAgB,CAAC;IAEzB,+CAA+C;IAC/C,QAAQ,EAAE,kBAAkB,CAAC;IAE7B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAE7C,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;IAEjB,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;IAElB,kCAAkC;IAClC,WAAW,EAAE,qBAAqB,CAAC;IAEnC,0BAA0B;IAC1B,MAAM,EAAE,qBAAqB,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,gCAAgC;IAChC,KAAK,EAAE,OAAO,CAAC;IAEf,wCAAwC;IACxC,MAAM,EAAE,eAAe,EAAE,CAAC;IAE1B,6BAA6B;IAC7B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;IAE7C,iCAAiC;IACjC,gBAAgB,EAAE,GAAG,CAAC,kBAAkB,EAAE,eAAe,EAAE,CAAC,CAAC;IAE7D,oCAAoC;IACpC,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IAEb,qBAAqB;IACrB,IAAI,EAAE,aAAa,GAAG,MAAM,GAAG,WAAW,CAAC;IAE3C,kBAAkB;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Types for step pre-execution validation
3
+ *
4
+ * This module defines types for validating pipeline steps BEFORE execution.
5
+ * All validation checks are read-only and safe to run on the user's machine.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=validation-types.js.map
@@ -0,0 +1,24 @@
1
+ /**
2
+ * YAML file updater for adding secret references
3
+ * Automatically updates YAML files with secret references after user input
4
+ */
5
+ /**
6
+ * YAML updater for adding environment variable secret references
7
+ */
8
+ export declare class YAMLUpdater {
9
+ private yamlFilePath;
10
+ constructor(yamlFilePath: string);
11
+ /**
12
+ * Add a secret reference to the YAML file's app.envs section
13
+ * @param varName Environment variable name
14
+ * @param secretId Secret ID from secrets manager
15
+ * @returns True if updated successfully
16
+ */
17
+ addSecretReference(varName: string, secretId: string): boolean;
18
+ /**
19
+ * Get all secret references in the YAML file
20
+ * @returns Map of variable names to secret IDs
21
+ */
22
+ getSecretReferences(): Map<string, string>;
23
+ }
24
+ //# sourceMappingURL=yaml-updater.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yaml-updater.d.ts","sourceRoot":"","sources":["../../../src/yaml/yaml-updater.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,YAAY,CAAS;gBAEjB,YAAY,EAAE,MAAM;IAIhC;;;;;OAKG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAoE9D;;;OAGG;IACH,mBAAmB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;CAiD3C"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * YAML file updater for adding secret references
3
+ * Automatically updates YAML files with secret references after user input
4
+ */
5
+ import * as fs from 'fs';
6
+ import * as yaml from 'js-yaml';
7
+ /**
8
+ * YAML updater for adding environment variable secret references
9
+ */
10
+ export class YAMLUpdater {
11
+ yamlFilePath;
12
+ constructor(yamlFilePath) {
13
+ this.yamlFilePath = yamlFilePath;
14
+ }
15
+ /**
16
+ * Add a secret reference to the YAML file's app.envs section
17
+ * @param varName Environment variable name
18
+ * @param secretId Secret ID from secrets manager
19
+ * @returns True if updated successfully
20
+ */
21
+ addSecretReference(varName, secretId) {
22
+ try {
23
+ // Read the YAML file
24
+ const content = fs.readFileSync(this.yamlFilePath, 'utf-8');
25
+ const doc = yaml.load(content);
26
+ // Get or create the app.envs section
27
+ if (!doc.app) {
28
+ doc.app = { envs: [] };
29
+ }
30
+ if (!doc.app.envs) {
31
+ doc.app.envs = [];
32
+ }
33
+ // Check if this variable already exists in envs
34
+ let variableExists = false;
35
+ if (Array.isArray(doc.app.envs)) {
36
+ for (let i = 0; i < doc.app.envs.length; i++) {
37
+ const item = doc.app.envs[i];
38
+ if (typeof item === 'object' && item !== null) {
39
+ const keys = Object.keys(item);
40
+ if (keys.includes(varName)) {
41
+ // Update existing variable with secret reference
42
+ doc.app.envs[i] = { [varName]: `$SECRET{${secretId}}` };
43
+ variableExists = true;
44
+ break;
45
+ }
46
+ }
47
+ }
48
+ }
49
+ // If variable doesn't exist, add it
50
+ if (!variableExists) {
51
+ doc.app.envs.push({ [varName]: `$SECRET{${secretId}}` });
52
+ }
53
+ // Add a comment at the beginning of the file if not present
54
+ let updatedContent = yaml.dump(doc, {
55
+ indent: 2,
56
+ lineWidth: -1, // Don't wrap lines
57
+ noRefs: true,
58
+ });
59
+ // Add helpful comment about secret references if not present
60
+ if (!content.includes('Secret references use the format')) {
61
+ const comment = `# Secret references use the format $SECRET{secret_id}
62
+ # Values are stored in .cibuild-secrets.json (gitignored)
63
+
64
+ `;
65
+ // Insert comment before the YAML content
66
+ updatedContent = comment + updatedContent;
67
+ }
68
+ // Write the updated YAML back to file
69
+ fs.writeFileSync(this.yamlFilePath, updatedContent, 'utf-8');
70
+ console.log(`\n✅ Updated ${this.yamlFilePath} with secret reference for ${varName}`);
71
+ console.log(` Reference: $SECRET{${secretId}}`);
72
+ return true;
73
+ }
74
+ catch (error) {
75
+ console.error(`❌ Error updating YAML file: ${error instanceof Error ? error.message : String(error)}`);
76
+ return false;
77
+ }
78
+ }
79
+ /**
80
+ * Get all secret references in the YAML file
81
+ * @returns Map of variable names to secret IDs
82
+ */
83
+ getSecretReferences() {
84
+ const references = new Map();
85
+ try {
86
+ const content = fs.readFileSync(this.yamlFilePath, 'utf-8');
87
+ const doc = yaml.load(content);
88
+ // Look for secret references in app.envs
89
+ if (doc.app?.envs && Array.isArray(doc.app.envs)) {
90
+ for (const item of doc.app.envs) {
91
+ if (typeof item === 'object' && item !== null) {
92
+ for (const [key, value] of Object.entries(item)) {
93
+ if (typeof value === 'string' && value.startsWith('$SECRET{') && value.endsWith('}')) {
94
+ const secretId = value.slice(8, -1); // Extract ID from $SECRET{...}
95
+ references.set(key, secretId);
96
+ }
97
+ }
98
+ }
99
+ }
100
+ }
101
+ // Also look in workflow-specific envs
102
+ if (doc.workflows && typeof doc.workflows === 'object') {
103
+ for (const workflow of Object.values(doc.workflows)) {
104
+ if (typeof workflow === 'object' && workflow !== null && 'envs' in workflow) {
105
+ const workflowEnvs = workflow.envs;
106
+ if (Array.isArray(workflowEnvs)) {
107
+ for (const item of workflowEnvs) {
108
+ if (typeof item === 'object' && item !== null) {
109
+ for (const [key, value] of Object.entries(item)) {
110
+ if (typeof value === 'string' && value.startsWith('$SECRET{') && value.endsWith('}')) {
111
+ const secretId = value.slice(8, -1);
112
+ references.set(key, secretId);
113
+ }
114
+ }
115
+ }
116
+ }
117
+ }
118
+ }
119
+ }
120
+ }
121
+ }
122
+ catch (error) {
123
+ console.warn(`Warning: Could not read secret references from YAML: ${error instanceof Error ? error.message : String(error)}`);
124
+ }
125
+ return references;
126
+ }
127
+ }
128
+ //# sourceMappingURL=yaml-updater.js.map
package/package.json CHANGED
@@ -1,21 +1,31 @@
1
1
  {
2
2
  "name": "@invarn/cibuild",
3
- "version": "1.3.15",
3
+ "version": "1.3.17",
4
4
  "description": "CI Build CLI — local pipeline orchestration and validation",
5
5
  "type": "module",
6
6
  "main": "dist/cli.cjs",
7
+ "exports": {
8
+ ".": "./dist/cli.cjs",
9
+ "./lib": {
10
+ "import": "./dist/src/lib.js",
11
+ "types": "./dist/src/lib.d.ts"
12
+ }
13
+ },
7
14
  "bin": {
8
15
  "ci": "dist/cli.cjs",
9
16
  "cibuild": "dist/cli.cjs"
10
17
  },
11
18
  "files": [
12
- "dist/cli.cjs"
19
+ "dist/cli.cjs",
20
+ "dist/src/**/*.js",
21
+ "dist/src/**/*.d.ts",
22
+ "dist/src/**/*.d.ts.map"
13
23
  ],
14
24
  "scripts": {
15
25
  "build": "./build.sh",
16
26
  "build:npm": "node bundle.mjs",
17
27
  "release": "node release.mjs",
18
- "prepublishOnly": "node bundle.mjs",
28
+ "prepublishOnly": "./build.sh && node bundle.mjs",
19
29
  "dev": "tsc --watch",
20
30
  "clean": "rm -rf dist output artifacts",
21
31
  "run": "./run.sh",
@@ -37,6 +47,9 @@
37
47
  "url": "https://github.com/invarnhq/cibuild"
38
48
  },
39
49
  "homepage": "https://github.com/invarnhq/cibuild",
50
+ "dependencies": {
51
+ "js-yaml": "^4.1.0"
52
+ },
40
53
  "devDependencies": {
41
54
  "@types/jest": "^29.5.14",
42
55
  "@types/js-yaml": "^4.0.9",
@@ -46,7 +59,6 @@
46
59
  "esbuild": "^0.27.3",
47
60
  "javascript-obfuscator": "^5.3.0",
48
61
  "jest": "^29.7.0",
49
- "js-yaml": "^4.1.0",
50
62
  "prompts": "^2.4.2",
51
63
  "ts-jest": "^29.4.6",
52
64
  "typescript": "^5.7.2"