@invarn/cibuild 2.9.4 → 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 (547) 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 -1084
  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/cocoapods-deployment-floor.d.ts +0 -42
  339. package/dist/src/yaml/steps/cocoapods-deployment-floor.d.ts.map +0 -1
  340. package/dist/src/yaml/steps/cocoapods-deployment-floor.js +0 -140
  341. package/dist/src/yaml/steps/cocoapods-deployment-floor.test.d.ts +0 -11
  342. package/dist/src/yaml/steps/cocoapods-deployment-floor.test.d.ts.map +0 -1
  343. package/dist/src/yaml/steps/cocoapods-deployment-floor.test.js +0 -176
  344. package/dist/src/yaml/steps/cocoapods-install-emits-valid-bash.test.d.ts +0 -22
  345. package/dist/src/yaml/steps/cocoapods-install-emits-valid-bash.test.d.ts.map +0 -1
  346. package/dist/src/yaml/steps/cocoapods-install-emits-valid-bash.test.js +0 -97
  347. package/dist/src/yaml/steps/cocoapods-locked-bundler.test.d.ts +0 -17
  348. package/dist/src/yaml/steps/cocoapods-locked-bundler.test.d.ts.map +0 -1
  349. package/dist/src/yaml/steps/cocoapods-locked-bundler.test.js +0 -282
  350. package/dist/src/yaml/steps/cocoapods-skip-if-absent.test.d.ts +0 -17
  351. package/dist/src/yaml/steps/cocoapods-skip-if-absent.test.d.ts.map +0 -1
  352. package/dist/src/yaml/steps/cocoapods-skip-if-absent.test.js +0 -132
  353. package/dist/src/yaml/steps/envstore-loader.test.d.ts +0 -15
  354. package/dist/src/yaml/steps/envstore-loader.test.d.ts.map +0 -1
  355. package/dist/src/yaml/steps/envstore-loader.test.js +0 -143
  356. package/dist/src/yaml/steps/fastlane.d.ts +0 -27
  357. package/dist/src/yaml/steps/fastlane.d.ts.map +0 -1
  358. package/dist/src/yaml/steps/fastlane.js +0 -79
  359. package/dist/src/yaml/steps/fidelity-aspect-guard.d.ts +0 -53
  360. package/dist/src/yaml/steps/fidelity-aspect-guard.d.ts.map +0 -1
  361. package/dist/src/yaml/steps/fidelity-aspect-guard.js +0 -72
  362. package/dist/src/yaml/steps/fidelity-aspect-guard.test.d.ts +0 -11
  363. package/dist/src/yaml/steps/fidelity-aspect-guard.test.d.ts.map +0 -1
  364. package/dist/src/yaml/steps/fidelity-aspect-guard.test.js +0 -50
  365. package/dist/src/yaml/steps/fidelity-reference-provenance.d.ts +0 -87
  366. package/dist/src/yaml/steps/fidelity-reference-provenance.d.ts.map +0 -1
  367. package/dist/src/yaml/steps/fidelity-reference-provenance.js +0 -111
  368. package/dist/src/yaml/steps/fidelity-reference-provenance.test.d.ts +0 -22
  369. package/dist/src/yaml/steps/fidelity-reference-provenance.test.d.ts.map +0 -1
  370. package/dist/src/yaml/steps/fidelity-reference-provenance.test.js +0 -118
  371. package/dist/src/yaml/steps/file.d.ts +0 -52
  372. package/dist/src/yaml/steps/file.d.ts.map +0 -1
  373. package/dist/src/yaml/steps/file.js +0 -108
  374. package/dist/src/yaml/steps/flutter.d.ts +0 -63
  375. package/dist/src/yaml/steps/flutter.d.ts.map +0 -1
  376. package/dist/src/yaml/steps/flutter.js +0 -215
  377. package/dist/src/yaml/steps/git-clone-names-the-inputs-it-ignores.test.d.ts +0 -16
  378. package/dist/src/yaml/steps/git-clone-names-the-inputs-it-ignores.test.d.ts.map +0 -1
  379. package/dist/src/yaml/steps/git-clone-names-the-inputs-it-ignores.test.js +0 -127
  380. package/dist/src/yaml/steps/git-clone.d.ts +0 -32
  381. package/dist/src/yaml/steps/git-clone.d.ts.map +0 -1
  382. package/dist/src/yaml/steps/git-clone.js +0 -171
  383. package/dist/src/yaml/steps/git-fetch-retry-exec.test.d.ts +0 -10
  384. package/dist/src/yaml/steps/git-fetch-retry-exec.test.d.ts.map +0 -1
  385. package/dist/src/yaml/steps/git-fetch-retry-exec.test.js +0 -162
  386. package/dist/src/yaml/steps/git-fetch-retry.d.ts +0 -62
  387. package/dist/src/yaml/steps/git-fetch-retry.d.ts.map +0 -1
  388. package/dist/src/yaml/steps/git-fetch-retry.js +0 -155
  389. package/dist/src/yaml/steps/git-fetch-retry.test.d.ts +0 -5
  390. package/dist/src/yaml/steps/git-fetch-retry.test.d.ts.map +0 -1
  391. package/dist/src/yaml/steps/git-fetch-retry.test.js +0 -86
  392. package/dist/src/yaml/steps/google-play-deploy.d.ts +0 -37
  393. package/dist/src/yaml/steps/google-play-deploy.d.ts.map +0 -1
  394. package/dist/src/yaml/steps/google-play-deploy.js +0 -193
  395. package/dist/src/yaml/steps/google-play-deploy.test.d.ts +0 -5
  396. package/dist/src/yaml/steps/google-play-deploy.test.d.ts.map +0 -1
  397. package/dist/src/yaml/steps/google-play-deploy.test.js +0 -310
  398. package/dist/src/yaml/steps/gradle-memory.d.ts +0 -61
  399. package/dist/src/yaml/steps/gradle-memory.d.ts.map +0 -1
  400. package/dist/src/yaml/steps/gradle-memory.js +0 -311
  401. package/dist/src/yaml/steps/gradle-memory.test.d.ts +0 -2
  402. package/dist/src/yaml/steps/gradle-memory.test.d.ts.map +0 -1
  403. package/dist/src/yaml/steps/gradle-memory.test.js +0 -297
  404. package/dist/src/yaml/steps/gradle-sdk-cmake.d.ts +0 -28
  405. package/dist/src/yaml/steps/gradle-sdk-cmake.d.ts.map +0 -1
  406. package/dist/src/yaml/steps/gradle-sdk-cmake.js +0 -107
  407. package/dist/src/yaml/steps/gradle-sdk-cmake.test.d.ts +0 -2
  408. package/dist/src/yaml/steps/gradle-sdk-cmake.test.d.ts.map +0 -1
  409. package/dist/src/yaml/steps/gradle-sdk-cmake.test.js +0 -183
  410. package/dist/src/yaml/steps/index.d.ts +0 -10
  411. package/dist/src/yaml/steps/index.d.ts.map +0 -1
  412. package/dist/src/yaml/steps/index.js +0 -1461
  413. package/dist/src/yaml/steps/ios-deps.d.ts +0 -78
  414. package/dist/src/yaml/steps/ios-deps.d.ts.map +0 -1
  415. package/dist/src/yaml/steps/ios-deps.js +0 -279
  416. package/dist/src/yaml/steps/ios-deps.test.d.ts +0 -5
  417. package/dist/src/yaml/steps/ios-deps.test.d.ts.map +0 -1
  418. package/dist/src/yaml/steps/ios-deps.test.js +0 -90
  419. package/dist/src/yaml/steps/ios-signing.d.ts +0 -31
  420. package/dist/src/yaml/steps/ios-signing.d.ts.map +0 -1
  421. package/dist/src/yaml/steps/ios-signing.js +0 -144
  422. package/dist/src/yaml/steps/ios-version.d.ts +0 -47
  423. package/dist/src/yaml/steps/ios-version.d.ts.map +0 -1
  424. package/dist/src/yaml/steps/ios-version.js +0 -151
  425. package/dist/src/yaml/steps/java-home-version-spec.test.d.ts +0 -10
  426. package/dist/src/yaml/steps/java-home-version-spec.test.d.ts.map +0 -1
  427. package/dist/src/yaml/steps/java-home-version-spec.test.js +0 -58
  428. package/dist/src/yaml/steps/linting.d.ts +0 -47
  429. package/dist/src/yaml/steps/linting.d.ts.map +0 -1
  430. package/dist/src/yaml/steps/linting.js +0 -148
  431. package/dist/src/yaml/steps/phase2.test.d.ts +0 -6
  432. package/dist/src/yaml/steps/phase2.test.d.ts.map +0 -1
  433. package/dist/src/yaml/steps/phase2.test.js +0 -197
  434. package/dist/src/yaml/steps/phase3.test.d.ts +0 -5
  435. package/dist/src/yaml/steps/phase3.test.d.ts.map +0 -1
  436. package/dist/src/yaml/steps/phase3.test.js +0 -144
  437. package/dist/src/yaml/steps/phase4.test.d.ts +0 -5
  438. package/dist/src/yaml/steps/phase4.test.d.ts.map +0 -1
  439. package/dist/src/yaml/steps/phase4.test.js +0 -166
  440. package/dist/src/yaml/steps/phase5.test.d.ts +0 -6
  441. package/dist/src/yaml/steps/phase5.test.d.ts.map +0 -1
  442. package/dist/src/yaml/steps/phase5.test.js +0 -263
  443. package/dist/src/yaml/steps/registry.d.ts +0 -88
  444. package/dist/src/yaml/steps/registry.d.ts.map +0 -1
  445. package/dist/src/yaml/steps/registry.js +0 -125
  446. package/dist/src/yaml/steps/registry.test.d.ts +0 -5
  447. package/dist/src/yaml/steps/registry.test.d.ts.map +0 -1
  448. package/dist/src/yaml/steps/registry.test.js +0 -235
  449. package/dist/src/yaml/steps/release.d.ts +0 -50
  450. package/dist/src/yaml/steps/release.d.ts.map +0 -1
  451. package/dist/src/yaml/steps/release.js +0 -154
  452. package/dist/src/yaml/steps/render-post-processor.d.ts +0 -100
  453. package/dist/src/yaml/steps/render-post-processor.d.ts.map +0 -1
  454. package/dist/src/yaml/steps/render-post-processor.js +0 -270
  455. package/dist/src/yaml/steps/render-post-processor.test.d.ts +0 -13
  456. package/dist/src/yaml/steps/render-post-processor.test.d.ts.map +0 -1
  457. package/dist/src/yaml/steps/render-post-processor.test.js +0 -220
  458. package/dist/src/yaml/steps/script.d.ts +0 -23
  459. package/dist/src/yaml/steps/script.d.ts.map +0 -1
  460. package/dist/src/yaml/steps/script.js +0 -63
  461. package/dist/src/yaml/steps/spec-validation.test.d.ts +0 -6
  462. package/dist/src/yaml/steps/spec-validation.test.d.ts.map +0 -1
  463. package/dist/src/yaml/steps/spec-validation.test.js +0 -130
  464. package/dist/src/yaml/steps/steps.test.d.ts +0 -6
  465. package/dist/src/yaml/steps/steps.test.d.ts.map +0 -1
  466. package/dist/src/yaml/steps/steps.test.js +0 -881
  467. package/dist/src/yaml/steps/structural-facts.d.ts +0 -992
  468. package/dist/src/yaml/steps/structural-facts.d.ts.map +0 -1
  469. package/dist/src/yaml/steps/structural-facts.js +0 -3276
  470. package/dist/src/yaml/steps/structural-facts.test.d.ts +0 -12
  471. package/dist/src/yaml/steps/structural-facts.test.d.ts.map +0 -1
  472. package/dist/src/yaml/steps/structural-facts.test.js +0 -3039
  473. package/dist/src/yaml/steps/test-config.d.ts +0 -5
  474. package/dist/src/yaml/steps/test-config.d.ts.map +0 -1
  475. package/dist/src/yaml/steps/test-config.js +0 -25
  476. package/dist/src/yaml/steps/trim-align-corpus.test.d.ts +0 -28
  477. package/dist/src/yaml/steps/trim-align-corpus.test.d.ts.map +0 -1
  478. package/dist/src/yaml/steps/trim-align-corpus.test.js +0 -383
  479. package/dist/src/yaml/steps/trim-align.d.ts +0 -87
  480. package/dist/src/yaml/steps/trim-align.d.ts.map +0 -1
  481. package/dist/src/yaml/steps/trim-align.js +0 -367
  482. package/dist/src/yaml/steps/trim-align.test.d.ts +0 -11
  483. package/dist/src/yaml/steps/trim-align.test.d.ts.map +0 -1
  484. package/dist/src/yaml/steps/trim-align.test.js +0 -261
  485. package/dist/src/yaml/steps/ui-fidelity-preview-android.d.ts +0 -66
  486. package/dist/src/yaml/steps/ui-fidelity-preview-android.d.ts.map +0 -1
  487. package/dist/src/yaml/steps/ui-fidelity-preview-android.js +0 -251
  488. package/dist/src/yaml/steps/ui-fidelity-preview-android.test.d.ts +0 -13
  489. package/dist/src/yaml/steps/ui-fidelity-preview-android.test.d.ts.map +0 -1
  490. package/dist/src/yaml/steps/ui-fidelity-preview-android.test.js +0 -302
  491. package/dist/src/yaml/steps/ui-fidelity-preview.d.ts +0 -134
  492. package/dist/src/yaml/steps/ui-fidelity-preview.d.ts.map +0 -1
  493. package/dist/src/yaml/steps/ui-fidelity-preview.js +0 -173
  494. package/dist/src/yaml/steps/ui-fidelity-preview.test.d.ts +0 -11
  495. package/dist/src/yaml/steps/ui-fidelity-preview.test.d.ts.map +0 -1
  496. package/dist/src/yaml/steps/ui-fidelity-preview.test.js +0 -210
  497. package/dist/src/yaml/steps/ui-fidelity-render-android.d.ts +0 -155
  498. package/dist/src/yaml/steps/ui-fidelity-render-android.d.ts.map +0 -1
  499. package/dist/src/yaml/steps/ui-fidelity-render-android.js +0 -1389
  500. package/dist/src/yaml/steps/ui-fidelity-render-android.test.d.ts +0 -2
  501. package/dist/src/yaml/steps/ui-fidelity-render-android.test.d.ts.map +0 -1
  502. package/dist/src/yaml/steps/ui-fidelity-render-android.test.js +0 -1106
  503. package/dist/src/yaml/steps/ui-fidelity-render.d.ts +0 -230
  504. package/dist/src/yaml/steps/ui-fidelity-render.d.ts.map +0 -1
  505. package/dist/src/yaml/steps/ui-fidelity-render.js +0 -1597
  506. package/dist/src/yaml/steps/ui-fidelity-render.test.d.ts +0 -18
  507. package/dist/src/yaml/steps/ui-fidelity-render.test.d.ts.map +0 -1
  508. package/dist/src/yaml/steps/ui-fidelity-render.test.js +0 -1871
  509. package/dist/src/yaml/steps/xcode-app-product.d.ts +0 -90
  510. package/dist/src/yaml/steps/xcode-app-product.d.ts.map +0 -1
  511. package/dist/src/yaml/steps/xcode-app-product.js +0 -247
  512. package/dist/src/yaml/steps/xcode-app-product.test.d.ts +0 -2
  513. package/dist/src/yaml/steps/xcode-app-product.test.d.ts.map +0 -1
  514. package/dist/src/yaml/steps/xcode-app-product.test.js +0 -202
  515. package/dist/src/yaml/steps/xcode-derived-data.test.d.ts +0 -30
  516. package/dist/src/yaml/steps/xcode-derived-data.test.d.ts.map +0 -1
  517. package/dist/src/yaml/steps/xcode-derived-data.test.js +0 -253
  518. package/dist/src/yaml/steps/xcode-destination.d.ts +0 -47
  519. package/dist/src/yaml/steps/xcode-destination.d.ts.map +0 -1
  520. package/dist/src/yaml/steps/xcode-destination.js +0 -202
  521. package/dist/src/yaml/steps/xcode-destination.test.d.ts +0 -9
  522. package/dist/src/yaml/steps/xcode-destination.test.d.ts.map +0 -1
  523. package/dist/src/yaml/steps/xcode-destination.test.js +0 -227
  524. package/dist/src/yaml/steps/xcode-new.test.d.ts +0 -5
  525. package/dist/src/yaml/steps/xcode-new.test.d.ts.map +0 -1
  526. package/dist/src/yaml/steps/xcode-new.test.js +0 -211
  527. package/dist/src/yaml/steps/xcode-resolve-retry.test.d.ts +0 -9
  528. package/dist/src/yaml/steps/xcode-resolve-retry.test.d.ts.map +0 -1
  529. package/dist/src/yaml/steps/xcode-resolve-retry.test.js +0 -146
  530. package/dist/src/yaml/steps/xcode-simulator-archs.d.ts +0 -53
  531. package/dist/src/yaml/steps/xcode-simulator-archs.d.ts.map +0 -1
  532. package/dist/src/yaml/steps/xcode-simulator-archs.js +0 -98
  533. package/dist/src/yaml/steps/xcode-simulator-archs.test.d.ts +0 -21
  534. package/dist/src/yaml/steps/xcode-simulator-archs.test.d.ts.map +0 -1
  535. package/dist/src/yaml/steps/xcode-simulator-archs.test.js +0 -155
  536. package/dist/src/yaml/steps/xcode.d.ts +0 -230
  537. package/dist/src/yaml/steps/xcode.d.ts.map +0 -1
  538. package/dist/src/yaml/steps/xcode.js +0 -1340
  539. package/dist/src/yaml/types.d.ts +0 -76
  540. package/dist/src/yaml/types.d.ts.map +0 -1
  541. package/dist/src/yaml/types.js +0 -5
  542. package/dist/src/yaml/validation-types.d.ts +0 -102
  543. package/dist/src/yaml/validation-types.d.ts.map +0 -1
  544. package/dist/src/yaml/validation-types.js +0 -8
  545. package/dist/src/yaml/yaml-updater.d.ts +0 -24
  546. package/dist/src/yaml/yaml-updater.d.ts.map +0 -1
  547. package/dist/src/yaml/yaml-updater.js +0 -128
@@ -1,235 +0,0 @@
1
- /**
2
- * Unit tests for step registry
3
- */
4
- import { describe, test, expect, beforeEach } from '@jest/globals';
5
- import { testConfig } from './test-config.js';
6
- import { registerStep, getStepExecutor, hasStep, getAvailableSteps, getStepMetadata, clearRegistry, UnrecognizedStepError, } from './registry.js';
7
- import { BaseStepExecutor } from './base.js';
8
- // Mock step executor for testing
9
- class MockStepExecutor extends BaseStepExecutor {
10
- async execute(inputs, env) {
11
- return this.createScriptStep('echo "mock step"', 'mock-step');
12
- }
13
- }
14
- describe('Step Registry', () => {
15
- beforeEach(() => {
16
- // Clear registry before each test to ensure clean state
17
- clearRegistry();
18
- });
19
- describe('registerStep', () => {
20
- test('should register a step successfully', () => {
21
- const executor = new MockStepExecutor();
22
- registerStep('test-step', executor);
23
- expect(hasStep('test-step')).toBe(true);
24
- });
25
- test('should register a step with metadata', () => {
26
- const executor = new MockStepExecutor();
27
- const metadata = {
28
- name: 'test-step',
29
- description: 'A test step',
30
- inputs: {
31
- test_input: {
32
- description: 'Test input',
33
- required: true,
34
- },
35
- },
36
- };
37
- registerStep('test-step', executor, metadata);
38
- expect(hasStep('test-step')).toBe(true);
39
- expect(getStepMetadata('test-step')).toEqual(metadata);
40
- });
41
- test('should allow overwriting an existing step', () => {
42
- const executor1 = new MockStepExecutor();
43
- const executor2 = new MockStepExecutor();
44
- registerStep('test-step', executor1);
45
- registerStep('test-step', executor2);
46
- expect(hasStep('test-step')).toBe(true);
47
- expect(getStepExecutor('test-step')).toBe(executor2);
48
- });
49
- });
50
- describe('getStepExecutor', () => {
51
- test('should retrieve a registered step executor', () => {
52
- const executor = new MockStepExecutor();
53
- registerStep('test-step', executor);
54
- const retrieved = getStepExecutor('test-step');
55
- expect(retrieved).toBe(executor);
56
- });
57
- test('should throw UnrecognizedStepError for unknown step', () => {
58
- expect(() => {
59
- getStepExecutor('unknown-step');
60
- }).toThrow(UnrecognizedStepError);
61
- });
62
- test('UnrecognizedStepError should include step name', () => {
63
- try {
64
- getStepExecutor('unknown-step');
65
- expect(true).toBe(false); // Should not reach here
66
- }
67
- catch (error) {
68
- expect(error).toBeInstanceOf(UnrecognizedStepError);
69
- expect(error.stepName).toBe('unknown-step');
70
- }
71
- });
72
- test('UnrecognizedStepError should include available steps', () => {
73
- registerStep('step-a', new MockStepExecutor());
74
- registerStep('step-b', new MockStepExecutor());
75
- try {
76
- getStepExecutor('unknown-step');
77
- expect(true).toBe(false); // Should not reach here
78
- }
79
- catch (error) {
80
- expect(error).toBeInstanceOf(UnrecognizedStepError);
81
- const err = error;
82
- expect(err.availableSteps).toContain('step-a');
83
- expect(err.availableSteps).toContain('step-b');
84
- }
85
- });
86
- test('UnrecognizedStepError message should be helpful', () => {
87
- registerStep('git-clone', new MockStepExecutor());
88
- registerStep('script', new MockStepExecutor());
89
- try {
90
- getStepExecutor('git-push');
91
- expect(true).toBe(false); // Should not reach here
92
- }
93
- catch (error) {
94
- expect(error).toBeInstanceOf(UnrecognizedStepError);
95
- const message = error.message;
96
- expect(message).toContain('git-push');
97
- expect(message).toContain('Supported steps');
98
- expect(message).toContain('git-clone');
99
- expect(message).toContain('script');
100
- }
101
- });
102
- });
103
- describe('hasStep', () => {
104
- test('should return true for registered step', () => {
105
- registerStep('test-step', new MockStepExecutor());
106
- expect(hasStep('test-step')).toBe(true);
107
- });
108
- test('should return false for unregistered step', () => {
109
- expect(hasStep('unknown-step')).toBe(false);
110
- });
111
- test('should return false after clearing registry', () => {
112
- registerStep('test-step', new MockStepExecutor());
113
- clearRegistry();
114
- expect(hasStep('test-step')).toBe(false);
115
- });
116
- });
117
- describe('getAvailableSteps', () => {
118
- test('should return empty array when no steps registered', () => {
119
- expect(getAvailableSteps()).toEqual([]);
120
- });
121
- test('should return all registered step names', () => {
122
- registerStep('step-a', new MockStepExecutor());
123
- registerStep('step-b', new MockStepExecutor());
124
- registerStep('step-c', new MockStepExecutor());
125
- const steps = getAvailableSteps();
126
- expect(steps).toHaveLength(3);
127
- expect(steps).toContain('step-a');
128
- expect(steps).toContain('step-b');
129
- expect(steps).toContain('step-c');
130
- });
131
- test('should return steps in sorted order', () => {
132
- registerStep('zebra', new MockStepExecutor());
133
- registerStep('apple', new MockStepExecutor());
134
- registerStep('mango', new MockStepExecutor());
135
- const steps = getAvailableSteps();
136
- expect(steps).toEqual(['apple', 'mango', 'zebra']);
137
- });
138
- });
139
- describe('getStepMetadata', () => {
140
- test('should return metadata for registered step', () => {
141
- const metadata = {
142
- name: 'test-step',
143
- description: 'A test step',
144
- };
145
- registerStep('test-step', new MockStepExecutor(), metadata);
146
- expect(getStepMetadata('test-step')).toEqual(metadata);
147
- });
148
- test('should return undefined for step without metadata', () => {
149
- registerStep('test-step', new MockStepExecutor());
150
- expect(getStepMetadata('test-step')).toBeUndefined();
151
- });
152
- test('should return undefined for unregistered step', () => {
153
- expect(getStepMetadata('unknown-step')).toBeUndefined();
154
- });
155
- });
156
- describe('clearRegistry', () => {
157
- test('should remove all registered steps', () => {
158
- registerStep('step-a', new MockStepExecutor());
159
- registerStep('step-b', new MockStepExecutor());
160
- expect(getAvailableSteps()).toHaveLength(2);
161
- clearRegistry();
162
- expect(getAvailableSteps()).toHaveLength(0);
163
- expect(hasStep('step-a')).toBe(false);
164
- expect(hasStep('step-b')).toBe(false);
165
- });
166
- test('should allow re-registration after clear', () => {
167
- registerStep('test-step', new MockStepExecutor());
168
- clearRegistry();
169
- registerStep('test-step', new MockStepExecutor());
170
- expect(hasStep('test-step')).toBe(true);
171
- });
172
- });
173
- describe('Step execution', () => {
174
- test('should execute registered step', async () => {
175
- const executor = new MockStepExecutor();
176
- registerStep('test-step', executor);
177
- const retrieved = getStepExecutor('test-step');
178
- const result = await retrieved.execute({}, {}, testConfig);
179
- expect(result).toHaveProperty('kind', 'script');
180
- expect(result).toHaveProperty('name', 'mock-step');
181
- expect(result).toHaveProperty('script');
182
- });
183
- test('should pass inputs and env to executor', async () => {
184
- class InputCapturingExecutor extends BaseStepExecutor {
185
- capturedInputs;
186
- capturedEnv;
187
- async execute(inputs, env) {
188
- this.capturedInputs = inputs;
189
- this.capturedEnv = env;
190
- return this.createScriptStep('echo "test"', 'test');
191
- }
192
- }
193
- const executor = new InputCapturingExecutor();
194
- registerStep('test-step', executor);
195
- const inputs = { test: 'value' };
196
- const env = { VAR: 'test' };
197
- const retrieved = getStepExecutor('test-step');
198
- await retrieved.execute(inputs, env, testConfig);
199
- expect(executor.capturedInputs).toEqual(inputs);
200
- expect(executor.capturedEnv).toEqual(env);
201
- });
202
- });
203
- describe('Integration scenarios', () => {
204
- test('should handle multiple steps with same prefix', () => {
205
- registerStep('git-clone', new MockStepExecutor());
206
- registerStep('git-push', new MockStepExecutor());
207
- registerStep('git-pull', new MockStepExecutor());
208
- expect(hasStep('git-clone')).toBe(true);
209
- expect(hasStep('git-push')).toBe(true);
210
- expect(hasStep('git-pull')).toBe(true);
211
- const steps = getAvailableSteps();
212
- expect(steps).toEqual(['git-clone', 'git-pull', 'git-push']);
213
- });
214
- test('should handle case-sensitive step names', () => {
215
- registerStep('Step-A', new MockStepExecutor());
216
- registerStep('step-a', new MockStepExecutor());
217
- expect(hasStep('Step-A')).toBe(true);
218
- expect(hasStep('step-a')).toBe(true);
219
- expect(getAvailableSteps()).toHaveLength(2);
220
- });
221
- test('should provide helpful error when typo in step name', () => {
222
- registerStep('git-clone', new MockStepExecutor());
223
- try {
224
- getStepExecutor('git-clonee'); // Common typo
225
- expect(true).toBe(false);
226
- }
227
- catch (error) {
228
- const message = error.message;
229
- expect(message).toContain('git-clonee');
230
- expect(message).toContain('git-clone');
231
- }
232
- });
233
- });
234
- });
235
- //# sourceMappingURL=registry.test.js.map
@@ -1,50 +0,0 @@
1
- /**
2
- * Release steps: generate-changelog, github-release
3
- */
4
- import { BaseStepExecutor } from './base.js';
5
- import type { StepDef, CIConfig } from '../../types.js';
6
- import type { ValidationRequirement, StepOutput } from '../validation-types.js';
7
- export interface GenerateChangelogInputs {
8
- /** Path to write the changelog file */
9
- changelog_path?: string;
10
- /** Working directory containing the git repo */
11
- working_dir?: string;
12
- }
13
- /**
14
- * Generates changelog from git commit history since the last tag.
15
- */
16
- export declare class GenerateChangelogStepExecutor extends BaseStepExecutor {
17
- getValidationRequirements(_inputs: GenerateChangelogInputs, _env: Record<string, string>, _config: CIConfig): ValidationRequirement[];
18
- getOutputs(): StepOutput[];
19
- execute(inputs: GenerateChangelogInputs, _env: Record<string, string>, _config: CIConfig): Promise<StepDef>;
20
- }
21
- export interface GithubReleaseInputs {
22
- /** GitHub repository (owner/repo) */
23
- repository_url?: string;
24
- /** Release tag name */
25
- tag?: string;
26
- /** Release title */
27
- name?: string;
28
- /** Release body / notes */
29
- body?: string;
30
- /** Path to changelog file to use as body (alternative to body) */
31
- changelog_path?: string;
32
- /** Whether this is a draft release (true/false) */
33
- draft?: string;
34
- /** Whether this is a pre-release (true/false) */
35
- pre_release?: string;
36
- /** File paths to attach as release assets (newline-separated) */
37
- files_to_upload?: string;
38
- /** GitHub API token */
39
- api_token?: string;
40
- }
41
- /**
42
- * Creates a GitHub release with optional artifact attachments using the gh CLI.
43
- */
44
- export declare class GithubReleaseStepExecutor extends BaseStepExecutor {
45
- getValidationRequirements(_inputs: GithubReleaseInputs, _env: Record<string, string>, _config: CIConfig): ValidationRequirement[];
46
- getOutputs(): StepOutput[];
47
- isSkippedInLocalMode(): boolean;
48
- execute(inputs: GithubReleaseInputs, _env: Record<string, string>, _config: CIConfig): Promise<StepDef>;
49
- }
50
- //# sourceMappingURL=release.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../../../../src/yaml/steps/release.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAMhF,MAAM,WAAW,uBAAuB;IACtC,uCAAuC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,6BAA8B,SAAQ,gBAAgB;IACjE,yBAAyB,CACvB,OAAO,EAAE,uBAAuB,EAChC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,OAAO,EAAE,QAAQ,GAChB,qBAAqB,EAAE;IAM1B,UAAU,IAAI,UAAU,EAAE;IAMpB,OAAO,CAAC,MAAM,EAAE,uBAAuB,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;CAqDlH;AAMD,MAAM,WAAW,mBAAmB;IAClC,qCAAqC;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uBAAuB;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,gBAAgB;IAC7D,yBAAyB,CACvB,OAAO,EAAE,mBAAmB,EAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,OAAO,EAAE,QAAQ,GAChB,qBAAqB,EAAE;IAM1B,UAAU,IAAI,UAAU,EAAE;IAM1B,oBAAoB,IAAI,OAAO;IAIzB,OAAO,CAAC,MAAM,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;CAmF9G"}
@@ -1,154 +0,0 @@
1
- /**
2
- * Release steps: generate-changelog, github-release
3
- */
4
- import { BaseStepExecutor } from './base.js';
5
- /**
6
- * Generates changelog from git commit history since the last tag.
7
- */
8
- export class GenerateChangelogStepExecutor extends BaseStepExecutor {
9
- getValidationRequirements(_inputs, _env, _config) {
10
- return [
11
- this.requireCommand('git', 'git is required for changelog generation'),
12
- ];
13
- }
14
- getOutputs() {
15
- return [
16
- { name: 'CIBUILD_CHANGELOG', type: 'environment', description: 'The generated changelog content' },
17
- ];
18
- }
19
- async execute(inputs, _env, _config) {
20
- const stepName = 'generate-changelog';
21
- const changelogPath = this.getInput(inputs, 'changelog_path', './CHANGELOG.md');
22
- const workingDir = this.getInput(inputs, 'working_dir', '.');
23
- const commands = [];
24
- commands.push('# generate-changelog — from git history');
25
- commands.push('echo "📝 Generating changelog..."');
26
- commands.push('');
27
- commands.push(`cd '${this.escapeBash(workingDir)}'`);
28
- commands.push('');
29
- // Find the latest tag
30
- commands.push('# Find the latest tag');
31
- commands.push('LATEST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "")');
32
- commands.push('');
33
- // Generate changelog
34
- commands.push('if [ -n "$LATEST_TAG" ]; then');
35
- commands.push(' echo "Generating changelog since tag: $LATEST_TAG"');
36
- commands.push(' CHANGELOG=$(git log "$LATEST_TAG"..HEAD --pretty=format:"- %s (%h)" --no-merges)');
37
- commands.push('else');
38
- commands.push(' echo "No tags found — generating changelog from all commits"');
39
- commands.push(' CHANGELOG=$(git log --pretty=format:"- %s (%h)" --no-merges)');
40
- commands.push('fi');
41
- commands.push('');
42
- // Handle empty changelog
43
- commands.push('if [ -z "$CHANGELOG" ]; then');
44
- commands.push(' CHANGELOG="No changes since last release."');
45
- commands.push('fi');
46
- commands.push('');
47
- // Write to file
48
- commands.push(`CHANGELOG_PATH='${this.escapeBash(changelogPath)}'`);
49
- commands.push('mkdir -p "$(dirname "$CHANGELOG_PATH")"');
50
- commands.push('echo "$CHANGELOG" > "$CHANGELOG_PATH"');
51
- commands.push('echo "Changelog written to: $CHANGELOG_PATH"');
52
- commands.push('echo "---"');
53
- commands.push('echo "$CHANGELOG"');
54
- commands.push('echo "---"');
55
- commands.push('');
56
- // Export
57
- commands.push('envman add --key CIBUILD_CHANGELOG --value "$CHANGELOG"');
58
- commands.push('echo "✅ Changelog generated"');
59
- const script = this.createBashScriptFromCommands(commands, stepName);
60
- return this.createScriptStep(script, stepName);
61
- }
62
- }
63
- /**
64
- * Creates a GitHub release with optional artifact attachments using the gh CLI.
65
- */
66
- export class GithubReleaseStepExecutor extends BaseStepExecutor {
67
- getValidationRequirements(_inputs, _env, _config) {
68
- return [
69
- this.requireCommand('gh', 'GitHub CLI (gh) is required for creating releases'),
70
- ];
71
- }
72
- getOutputs() {
73
- return [
74
- { name: 'CIBUILD_RELEASE_URL', type: 'environment', description: 'URL of the created GitHub release' },
75
- ];
76
- }
77
- isSkippedInLocalMode() {
78
- return true;
79
- }
80
- async execute(inputs, _env, _config) {
81
- const stepName = 'github-release';
82
- const tag = this.getRequiredInput(inputs, 'tag', stepName);
83
- const repositoryUrl = this.getInput(inputs, 'repository_url', '');
84
- const name = this.getInput(inputs, 'name', '');
85
- const body = this.getInput(inputs, 'body', '');
86
- const changelogPath = this.getInput(inputs, 'changelog_path', '');
87
- const draft = this.getInput(inputs, 'draft', 'false') === 'true';
88
- const preRelease = this.getInput(inputs, 'pre_release', 'false') === 'true';
89
- const filesToUpload = this.getInput(inputs, 'files_to_upload', '');
90
- const apiToken = this.getInput(inputs, 'api_token', '$GITHUB_TOKEN');
91
- const commands = [];
92
- commands.push('# github-release — create a GitHub release');
93
- commands.push('echo "🚀 Creating GitHub release..."');
94
- commands.push('');
95
- // Auth
96
- commands.push(`export GH_TOKEN='${this.escapeBash(apiToken)}'`);
97
- commands.push('');
98
- // Build gh release create command
99
- const flags = [];
100
- flags.push(`--title '${this.escapeBash(name || tag)}'`);
101
- if (body) {
102
- flags.push(`--notes '${this.escapeBash(body)}'`);
103
- }
104
- else if (changelogPath) {
105
- flags.push(`--notes-file '${this.escapeBash(changelogPath)}'`);
106
- }
107
- else {
108
- flags.push('--generate-notes');
109
- }
110
- if (draft) {
111
- flags.push('--draft');
112
- }
113
- if (preRelease) {
114
- flags.push('--prerelease');
115
- }
116
- // Repository flag
117
- let repoFlag = '';
118
- if (repositoryUrl) {
119
- repoFlag = ` --repo '${this.escapeBash(repositoryUrl)}'`;
120
- }
121
- // File attachments
122
- if (filesToUpload) {
123
- commands.push('# Collect files to upload');
124
- commands.push(`FILES_INPUT='${this.escapeBash(filesToUpload)}'`);
125
- commands.push('FILE_ARGS=""');
126
- commands.push('while IFS= read -r file; do');
127
- commands.push(' file=$(echo "$file" | xargs)');
128
- commands.push(' [ -z "$file" ] && continue');
129
- commands.push(' if [ -f "$file" ]; then');
130
- commands.push(' FILE_ARGS="$FILE_ARGS \\"$file\\""');
131
- commands.push(' else');
132
- commands.push(' echo "⚠️ File not found: $file"');
133
- commands.push(' fi');
134
- commands.push('done <<< "$FILES_INPUT"');
135
- commands.push('');
136
- }
137
- const flagStr = flags.join(' ');
138
- commands.push(`TAG='${this.escapeBash(tag)}'`);
139
- commands.push('');
140
- if (filesToUpload) {
141
- commands.push(`RELEASE_URL=$(eval gh release create "$TAG" ${flagStr}${repoFlag} $FILE_ARGS 2>&1)`);
142
- }
143
- else {
144
- commands.push(`RELEASE_URL=$(gh release create "$TAG" ${flagStr}${repoFlag} 2>&1)`);
145
- }
146
- commands.push('');
147
- commands.push('echo "Release URL: $RELEASE_URL"');
148
- commands.push('envman add --key CIBUILD_RELEASE_URL --value "$RELEASE_URL"');
149
- commands.push('echo "✅ GitHub release created"');
150
- const script = this.createBashScriptFromCommands(commands, stepName);
151
- return this.createScriptStep(script, stepName);
152
- }
153
- }
154
- //# sourceMappingURL=release.js.map
@@ -1,100 +0,0 @@
1
- /**
2
- * Shared render-output post-processor.
3
- *
4
- * The single source of truth for turning a freshly rendered PNG into the
5
- * artifacts the fidelity loop compares: a content-trimmed image, a
6
- * reference-sized aligned copy, and the reported dimensions (rendered px /
7
- * logical pt / reference px). It operates on PNGs regardless of how they were
8
- * produced -- a SwiftUI `ImageRenderer` render or a Compose/Roborazzi render --
9
- * so crop/align/dimension behavior cannot drift between platforms.
10
- *
11
- * The pixel work is the pure-JS trim/align helper in trim-align.ts, invoked
12
- * through the ci binary (`ci fidelity-trim`) -- the one artifact present on
13
- * every backend -- so iOS and Android run the SAME bytes on macOS and Linux
14
- * alike. It replaced an embedded CoreGraphics/ImageIO helper that ran via
15
- * `swift` in script-interpreter mode and therefore could not run on Linux
16
- * workers (fidelity-linux 06); the bounding-box, fit-pad, and TRIMDIMS
17
- * semantics are a faithful port of that helper, guarded by a pixel-identity
18
- * corpus gate (trim-align-corpus.test.ts).
19
- *
20
- * This module is consumed by `ui-fidelity-render.ts` (iOS) and
21
- * `ui-fidelity-render-android.ts`; the surrounding JS orchestration is spliced
22
- * into each platform's generated runtime script.
23
- */
24
- /**
25
- * Runtime support for trimming the rendered output (package_source variants).
26
- *
27
- * The render entry forces the view into a fixed device-sized frame, so a
28
- * component smaller than the canvas renders with transparent margins. After a
29
- * screen renders, crop the PNG in place to the bounding box of its
30
- * non-transparent pixels, so the rendered artifact is the component itself,
31
- * tight -- no canvas, no background ambiguity for the human comparing screens.
32
- *
33
- * Best-effort: a trim failure is logged (warn-and-continue) and the untrimmed
34
- * render is kept -- a cosmetic post-step never fails an otherwise good render.
35
- * This is prep, not scoring: it produces a tighter image for the human's
36
- * judgment and computes nothing about fidelity.
37
- *
38
- * NOTE: the comments inside the stage string ship inside generated runtime
39
- * scripts. Keep them free of platform-toolchain references -- there is a unit
40
- * gate asserting the stage never mentions the old interpreter.
41
- */
42
- export declare const RENDER_SCRIPT_TRIM_STAGE: string;
43
- /** A rendered/reference/source dimension pair in pixels, as TRIMDIMS reports. */
44
- export type TrimDimsPair = [number, number];
45
- /** Parsed TRIMDIMS line: rendered (trimmed) / reference / pre-trim source px,
46
- * plus the crop origin within the source — null when the helper predates it
47
- * (unknown, never assumed zero). */
48
- export interface TrimDims {
49
- rendered: TrimDimsPair;
50
- reference: TrimDimsPair;
51
- source: TrimDimsPair;
52
- offset: TrimDimsPair | null;
53
- }
54
- /** How the stage will spawn the fidelity-trim helper. */
55
- export interface TrimHelperInvocation {
56
- cmd: string;
57
- args: string[];
58
- }
59
- /**
60
- * The platform-neutral helpers embedded in the trim-stage script.
61
- * `parseTrimDims` reads the helper's TRIMDIMS stdout line; `roundTwo` is the
62
- * logical-pt rounding primitive; `trimHelperInvocation` resolves how the
63
- * generated script reaches `ci fidelity-trim` at run time, and
64
- * `runTrimHelper` spawns it.
65
- */
66
- export interface PostProcessorInternals {
67
- parseTrimDims(stdout: string): TrimDims | null;
68
- roundTwo(value: number): number;
69
- trimHelperInvocation(args: string[]): TrimHelperInvocation;
70
- runTrimHelper(args: string[]): {
71
- status: number | null;
72
- stdout: string;
73
- stderr: string;
74
- };
75
- }
76
- /**
77
- * Evaluates the embedded trim-stage source and returns its pure helpers, so
78
- * unit tests exercise exactly the code that ships inside the runtime script
79
- * (mirrors getRenderScriptInternals in ui-fidelity-render.ts). `cp`, `process`,
80
- * `fs`, `os` and `path` are injectable so the invocation/spawn/copy seams are
81
- * testable; at runtime the stage is spliced into the generated script where
82
- * those names are `require`d globals. Uninjected deps only matter for branches
83
- * that dereference them (the pkg copy path), so existing callers can omit them.
84
- */
85
- export declare function getPostProcessorInternals(overrides?: {
86
- cp?: unknown;
87
- processRef?: unknown;
88
- fs?: unknown;
89
- os?: unknown;
90
- path?: unknown;
91
- }): PostProcessorInternals;
92
- /**
93
- * Resolves the on-disk JS entrypoint of this cibuild installation's CLI
94
- * (dist/cli.cjs), for callers that spawn a generated render script directly
95
- * (the preview harnesses) and must hand it a working CIBUILD_CLI_JS. Returns
96
- * null when no built CLI exists nearby (e.g. running from src under jest) --
97
- * the script then falls back to `ci` on PATH.
98
- */
99
- export declare function resolveCliJsPath(): string | null;
100
- //# sourceMappingURL=render-post-processor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"render-post-processor.d.ts","sourceRoot":"","sources":["../../../../src/yaml/steps/render-post-processor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAMH;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,wBAAwB,EAAE,MAkLtC,CAAC;AAEF,iFAAiF;AACjF,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE5C;;qCAEqC;AACrC,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,YAAY,CAAC;IACvB,SAAS,EAAE,YAAY,CAAC;IACxB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;CAC7B;AAED,yDAAyD;AACzD,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,sBAAsB;IACrC,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC;IAC/C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,oBAAoB,CAAC;IAC3D,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;QAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1F;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,CAAC,EAAE;IACpD,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,GAAG,sBAAsB,CAkBzB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAqBhD"}