@ankhorage/deploy 0.4.0 → 0.6.0

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 (414) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +1 -1
  3. package/dist/domain/AndroidDeploymentIntent.d.ts +10 -0
  4. package/dist/domain/AndroidDeploymentIntent.d.ts.map +1 -0
  5. package/dist/domain/AndroidDeploymentIntent.js +3 -0
  6. package/dist/domain/AndroidDeploymentIntent.js.map +1 -0
  7. package/dist/domain/AndroidDeploymentPublication.d.ts +12 -0
  8. package/dist/domain/AndroidDeploymentPublication.d.ts.map +1 -0
  9. package/dist/domain/AndroidDeploymentPublication.js +2 -0
  10. package/dist/domain/AndroidDeploymentPublication.js.map +1 -0
  11. package/dist/domain/IosDeploymentIntent.d.ts +5 -0
  12. package/dist/domain/IosDeploymentIntent.d.ts.map +1 -0
  13. package/dist/domain/IosDeploymentIntent.js +2 -0
  14. package/dist/domain/IosDeploymentIntent.js.map +1 -0
  15. package/dist/domain/IosDeploymentPublication.d.ts +10 -0
  16. package/dist/domain/IosDeploymentPublication.d.ts.map +1 -0
  17. package/dist/domain/IosDeploymentPublication.js +2 -0
  18. package/dist/domain/IosDeploymentPublication.js.map +1 -0
  19. package/dist/index.d.ts +4 -0
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/project/android/ProjectAndroidDeploymentAccess.d.ts +7 -0
  23. package/dist/project/android/ProjectAndroidDeploymentAccess.d.ts.map +1 -0
  24. package/dist/project/android/ProjectAndroidDeploymentAccess.js +2 -0
  25. package/dist/project/android/ProjectAndroidDeploymentAccess.js.map +1 -0
  26. package/dist/project/android/ProjectAndroidDeploymentExecution.d.ts +12 -0
  27. package/dist/project/android/ProjectAndroidDeploymentExecution.d.ts.map +1 -0
  28. package/dist/project/android/ProjectAndroidDeploymentExecution.js +2 -0
  29. package/dist/project/android/ProjectAndroidDeploymentExecution.js.map +1 -0
  30. package/dist/project/android/ProjectAndroidDeploymentInspection.d.ts +21 -0
  31. package/dist/project/android/ProjectAndroidDeploymentInspection.d.ts.map +1 -0
  32. package/dist/project/android/ProjectAndroidDeploymentInspection.js +2 -0
  33. package/dist/project/android/ProjectAndroidDeploymentInspection.js.map +1 -0
  34. package/dist/project/android/ProjectAndroidDeploymentRuntime.d.ts +13 -0
  35. package/dist/project/android/ProjectAndroidDeploymentRuntime.d.ts.map +1 -0
  36. package/dist/project/android/ProjectAndroidDeploymentRuntime.js +12 -0
  37. package/dist/project/android/ProjectAndroidDeploymentRuntime.js.map +1 -0
  38. package/dist/project/android/ProjectAndroidExecutionState.d.ts +10 -0
  39. package/dist/project/android/ProjectAndroidExecutionState.d.ts.map +1 -0
  40. package/dist/project/android/ProjectAndroidExecutionState.js +2 -0
  41. package/dist/project/android/ProjectAndroidExecutionState.js.map +1 -0
  42. package/dist/project/android/createProjectAndroidDeploymentPlan.d.ts +4 -0
  43. package/dist/project/android/createProjectAndroidDeploymentPlan.d.ts.map +1 -0
  44. package/dist/project/android/createProjectAndroidDeploymentPlan.js +13 -0
  45. package/dist/project/android/createProjectAndroidDeploymentPlan.js.map +1 -0
  46. package/dist/project/android/executeProjectAndroidDeployment.d.ts +12 -0
  47. package/dist/project/android/executeProjectAndroidDeployment.d.ts.map +1 -0
  48. package/dist/project/android/executeProjectAndroidDeployment.js +164 -0
  49. package/dist/project/android/executeProjectAndroidDeployment.js.map +1 -0
  50. package/dist/project/android/executeProjectAndroidStep.d.ts +15 -0
  51. package/dist/project/android/executeProjectAndroidStep.d.ts.map +1 -0
  52. package/dist/project/android/executeProjectAndroidStep.js +124 -0
  53. package/dist/project/android/executeProjectAndroidStep.js.map +1 -0
  54. package/dist/project/android/inspectProjectAndroidDeployment.d.ts +11 -0
  55. package/dist/project/android/inspectProjectAndroidDeployment.d.ts.map +1 -0
  56. package/dist/project/android/inspectProjectAndroidDeployment.js +90 -0
  57. package/dist/project/android/inspectProjectAndroidDeployment.js.map +1 -0
  58. package/dist/project/android/inspectProjectAndroidEasSetup.d.ts +5 -0
  59. package/dist/project/android/inspectProjectAndroidEasSetup.d.ts.map +1 -0
  60. package/dist/project/android/inspectProjectAndroidEasSetup.js +18 -0
  61. package/dist/project/android/inspectProjectAndroidEasSetup.js.map +1 -0
  62. package/dist/project/android/inspectProjectAndroidGooglePlay.d.ts +16 -0
  63. package/dist/project/android/inspectProjectAndroidGooglePlay.d.ts.map +1 -0
  64. package/dist/project/android/inspectProjectAndroidGooglePlay.js +52 -0
  65. package/dist/project/android/inspectProjectAndroidGooglePlay.js.map +1 -0
  66. package/dist/project/android/normalizeProjectAndroidDesired.d.ts +13 -0
  67. package/dist/project/android/normalizeProjectAndroidDesired.d.ts.map +1 -0
  68. package/dist/project/android/normalizeProjectAndroidDesired.js +25 -0
  69. package/dist/project/android/normalizeProjectAndroidDesired.js.map +1 -0
  70. package/dist/project/android/readCurrentProjectAndroidDeployment.d.ts +8 -0
  71. package/dist/project/android/readCurrentProjectAndroidDeployment.d.ts.map +1 -0
  72. package/dist/project/android/readCurrentProjectAndroidDeployment.js +44 -0
  73. package/dist/project/android/readCurrentProjectAndroidDeployment.js.map +1 -0
  74. package/dist/project/android/recordProjectAndroidDeployment.d.ts +21 -0
  75. package/dist/project/android/recordProjectAndroidDeployment.d.ts.map +1 -0
  76. package/dist/project/android/recordProjectAndroidDeployment.js +36 -0
  77. package/dist/project/android/recordProjectAndroidDeployment.js.map +1 -0
  78. package/dist/project/android/resolveProjectAndroidDeploymentAccess.d.ts +9 -0
  79. package/dist/project/android/resolveProjectAndroidDeploymentAccess.d.ts.map +1 -0
  80. package/dist/project/android/resolveProjectAndroidDeploymentAccess.js +7 -0
  81. package/dist/project/android/resolveProjectAndroidDeploymentAccess.js.map +1 -0
  82. package/dist/project/android/scopeProjectAndroidDeploymentAccess.d.ts +3 -0
  83. package/dist/project/android/scopeProjectAndroidDeploymentAccess.d.ts.map +1 -0
  84. package/dist/project/android/scopeProjectAndroidDeploymentAccess.js +7 -0
  85. package/dist/project/android/scopeProjectAndroidDeploymentAccess.js.map +1 -0
  86. package/dist/project/areDeploymentPlansEqual.d.ts +3 -0
  87. package/dist/project/areDeploymentPlansEqual.d.ts.map +1 -0
  88. package/dist/project/areDeploymentPlansEqual.js +4 -0
  89. package/dist/project/areDeploymentPlansEqual.js.map +1 -0
  90. package/dist/project/index.d.ts +12 -0
  91. package/dist/project/index.d.ts.map +1 -1
  92. package/dist/project/index.js +6 -0
  93. package/dist/project/index.js.map +1 -1
  94. package/dist/project/ios/ProjectIosDeploymentAccess.d.ts +7 -0
  95. package/dist/project/ios/ProjectIosDeploymentAccess.d.ts.map +1 -0
  96. package/dist/project/ios/ProjectIosDeploymentAccess.js +2 -0
  97. package/dist/project/ios/ProjectIosDeploymentAccess.js.map +1 -0
  98. package/dist/project/ios/ProjectIosDeploymentExecution.d.ts +12 -0
  99. package/dist/project/ios/ProjectIosDeploymentExecution.d.ts.map +1 -0
  100. package/dist/project/ios/ProjectIosDeploymentExecution.js +2 -0
  101. package/dist/project/ios/ProjectIosDeploymentExecution.js.map +1 -0
  102. package/dist/project/ios/ProjectIosDeploymentInspection.d.ts +21 -0
  103. package/dist/project/ios/ProjectIosDeploymentInspection.d.ts.map +1 -0
  104. package/dist/project/ios/ProjectIosDeploymentInspection.js +2 -0
  105. package/dist/project/ios/ProjectIosDeploymentInspection.js.map +1 -0
  106. package/dist/project/ios/ProjectIosDeploymentRuntime.d.ts +19 -0
  107. package/dist/project/ios/ProjectIosDeploymentRuntime.d.ts.map +1 -0
  108. package/dist/project/ios/ProjectIosDeploymentRuntime.js +22 -0
  109. package/dist/project/ios/ProjectIosDeploymentRuntime.js.map +1 -0
  110. package/dist/project/ios/ProjectIosExecutionState.d.ts +12 -0
  111. package/dist/project/ios/ProjectIosExecutionState.d.ts.map +1 -0
  112. package/dist/project/ios/ProjectIosExecutionState.js +2 -0
  113. package/dist/project/ios/ProjectIosExecutionState.js.map +1 -0
  114. package/dist/project/ios/createProjectIosDeploymentPlan.d.ts +4 -0
  115. package/dist/project/ios/createProjectIosDeploymentPlan.d.ts.map +1 -0
  116. package/dist/project/ios/createProjectIosDeploymentPlan.js +13 -0
  117. package/dist/project/ios/createProjectIosDeploymentPlan.js.map +1 -0
  118. package/dist/project/ios/executeProjectIosDeployment.d.ts +12 -0
  119. package/dist/project/ios/executeProjectIosDeployment.d.ts.map +1 -0
  120. package/dist/project/ios/executeProjectIosDeployment.js +160 -0
  121. package/dist/project/ios/executeProjectIosDeployment.js.map +1 -0
  122. package/dist/project/ios/executeProjectIosStep.d.ts +15 -0
  123. package/dist/project/ios/executeProjectIosStep.d.ts.map +1 -0
  124. package/dist/project/ios/executeProjectIosStep.js +171 -0
  125. package/dist/project/ios/executeProjectIosStep.js.map +1 -0
  126. package/dist/project/ios/inspectProjectIosAppStoreConnect.d.ts +15 -0
  127. package/dist/project/ios/inspectProjectIosAppStoreConnect.d.ts.map +1 -0
  128. package/dist/project/ios/inspectProjectIosAppStoreConnect.js +55 -0
  129. package/dist/project/ios/inspectProjectIosAppStoreConnect.js.map +1 -0
  130. package/dist/project/ios/inspectProjectIosDeployment.d.ts +11 -0
  131. package/dist/project/ios/inspectProjectIosDeployment.d.ts.map +1 -0
  132. package/dist/project/ios/inspectProjectIosDeployment.js +96 -0
  133. package/dist/project/ios/inspectProjectIosDeployment.js.map +1 -0
  134. package/dist/project/ios/inspectProjectIosEasSetup.d.ts +5 -0
  135. package/dist/project/ios/inspectProjectIosEasSetup.d.ts.map +1 -0
  136. package/dist/project/ios/inspectProjectIosEasSetup.js +18 -0
  137. package/dist/project/ios/inspectProjectIosEasSetup.js.map +1 -0
  138. package/dist/project/ios/normalizeProjectIosDesired.d.ts +13 -0
  139. package/dist/project/ios/normalizeProjectIosDesired.d.ts.map +1 -0
  140. package/dist/project/ios/normalizeProjectIosDesired.js +25 -0
  141. package/dist/project/ios/normalizeProjectIosDesired.js.map +1 -0
  142. package/dist/project/ios/readCurrentProjectIosDeployment.d.ts +8 -0
  143. package/dist/project/ios/readCurrentProjectIosDeployment.d.ts.map +1 -0
  144. package/dist/project/ios/readCurrentProjectIosDeployment.js +52 -0
  145. package/dist/project/ios/readCurrentProjectIosDeployment.js.map +1 -0
  146. package/dist/project/ios/recordProjectIosDeployment.d.ts +21 -0
  147. package/dist/project/ios/recordProjectIosDeployment.d.ts.map +1 -0
  148. package/dist/project/ios/recordProjectIosDeployment.js +36 -0
  149. package/dist/project/ios/recordProjectIosDeployment.js.map +1 -0
  150. package/dist/project/ios/resolveProjectIosDeploymentAccess.d.ts +9 -0
  151. package/dist/project/ios/resolveProjectIosDeploymentAccess.d.ts.map +1 -0
  152. package/dist/project/ios/resolveProjectIosDeploymentAccess.js +7 -0
  153. package/dist/project/ios/resolveProjectIosDeploymentAccess.js.map +1 -0
  154. package/dist/project/ios/scopeProjectIosDeploymentAccess.d.ts +3 -0
  155. package/dist/project/ios/scopeProjectIosDeploymentAccess.d.ts.map +1 -0
  156. package/dist/project/ios/scopeProjectIosDeploymentAccess.js +7 -0
  157. package/dist/project/ios/scopeProjectIosDeploymentAccess.js.map +1 -0
  158. package/dist/project/setupBlockingOutcome.d.ts +14 -0
  159. package/dist/project/setupBlockingOutcome.d.ts.map +1 -0
  160. package/dist/project/setupBlockingOutcome.js +38 -0
  161. package/dist/project/setupBlockingOutcome.js.map +1 -0
  162. package/dist/project/web/areDeploymentPlansEqual.d.ts +1 -2
  163. package/dist/project/web/areDeploymentPlansEqual.d.ts.map +1 -1
  164. package/dist/project/web/areDeploymentPlansEqual.js +1 -3
  165. package/dist/project/web/areDeploymentPlansEqual.js.map +1 -1
  166. package/dist/project/web/inspectProjectWebSetup.d.ts.map +1 -1
  167. package/dist/project/web/inspectProjectWebSetup.js +7 -2
  168. package/dist/project/web/inspectProjectWebSetup.js.map +1 -1
  169. package/dist/project/web/setupBlockingOutcome.d.ts.map +1 -1
  170. package/dist/project/web/setupBlockingOutcome.js +9 -31
  171. package/dist/project/web/setupBlockingOutcome.js.map +1 -1
  172. package/dist/providers/appStoreConnect/AppStoreConnectIosState.d.ts +17 -0
  173. package/dist/providers/appStoreConnect/AppStoreConnectIosState.d.ts.map +1 -0
  174. package/dist/providers/appStoreConnect/AppStoreConnectIosState.js +2 -0
  175. package/dist/providers/appStoreConnect/AppStoreConnectIosState.js.map +1 -0
  176. package/dist/providers/appStoreConnect/AppStoreConnectPublicationResult.d.ts +19 -0
  177. package/dist/providers/appStoreConnect/AppStoreConnectPublicationResult.d.ts.map +1 -0
  178. package/dist/providers/appStoreConnect/AppStoreConnectPublicationResult.js +2 -0
  179. package/dist/providers/appStoreConnect/AppStoreConnectPublicationResult.js.map +1 -0
  180. package/dist/providers/appStoreConnect/AppStoreConnectRequestTracker.d.ts +9 -0
  181. package/dist/providers/appStoreConnect/AppStoreConnectRequestTracker.d.ts.map +1 -0
  182. package/dist/providers/appStoreConnect/AppStoreConnectRequestTracker.js +13 -0
  183. package/dist/providers/appStoreConnect/AppStoreConnectRequestTracker.js.map +1 -0
  184. package/dist/providers/appStoreConnect/AppStoreConnectTokenFactory.d.ts +8 -0
  185. package/dist/providers/appStoreConnect/AppStoreConnectTokenFactory.d.ts.map +1 -0
  186. package/dist/providers/appStoreConnect/AppStoreConnectTokenFactory.js +21 -0
  187. package/dist/providers/appStoreConnect/AppStoreConnectTokenFactory.js.map +1 -0
  188. package/dist/providers/appStoreConnect/AppStoreConnectTransport.d.ts +13 -0
  189. package/dist/providers/appStoreConnect/AppStoreConnectTransport.d.ts.map +1 -0
  190. package/dist/providers/appStoreConnect/AppStoreConnectTransport.js +15 -0
  191. package/dist/providers/appStoreConnect/AppStoreConnectTransport.js.map +1 -0
  192. package/dist/providers/appStoreConnect/AppStoreUploadTransport.d.ts +17 -0
  193. package/dist/providers/appStoreConnect/AppStoreUploadTransport.d.ts.map +1 -0
  194. package/dist/providers/appStoreConnect/AppStoreUploadTransport.js +12 -0
  195. package/dist/providers/appStoreConnect/AppStoreUploadTransport.js.map +1 -0
  196. package/dist/providers/appStoreConnect/BuildUploadOperation.d.ts +13 -0
  197. package/dist/providers/appStoreConnect/BuildUploadOperation.d.ts.map +1 -0
  198. package/dist/providers/appStoreConnect/BuildUploadOperation.js +2 -0
  199. package/dist/providers/appStoreConnect/BuildUploadOperation.js.map +1 -0
  200. package/dist/providers/appStoreConnect/appStoreConnectUrls.d.ts +10 -0
  201. package/dist/providers/appStoreConnect/appStoreConnectUrls.d.ts.map +1 -0
  202. package/dist/providers/appStoreConnect/appStoreConnectUrls.js +42 -0
  203. package/dist/providers/appStoreConnect/appStoreConnectUrls.js.map +1 -0
  204. package/dist/providers/appStoreConnect/attachAppStoreVersionBuild.d.ts +8 -0
  205. package/dist/providers/appStoreConnect/attachAppStoreVersionBuild.d.ts.map +1 -0
  206. package/dist/providers/appStoreConnect/attachAppStoreVersionBuild.js +12 -0
  207. package/dist/providers/appStoreConnect/attachAppStoreVersionBuild.js.map +1 -0
  208. package/dist/providers/appStoreConnect/commitAppStoreBuildUploadFile.d.ts +7 -0
  209. package/dist/providers/appStoreConnect/commitAppStoreBuildUploadFile.d.ts.map +1 -0
  210. package/dist/providers/appStoreConnect/commitAppStoreBuildUploadFile.js +18 -0
  211. package/dist/providers/appStoreConnect/commitAppStoreBuildUploadFile.js.map +1 -0
  212. package/dist/providers/appStoreConnect/createAppStoreBuildUpload.d.ts +9 -0
  213. package/dist/providers/appStoreConnect/createAppStoreBuildUpload.d.ts.map +1 -0
  214. package/dist/providers/appStoreConnect/createAppStoreBuildUpload.js +41 -0
  215. package/dist/providers/appStoreConnect/createAppStoreBuildUpload.js.map +1 -0
  216. package/dist/providers/appStoreConnect/createAppStoreConnectSetupAdapter.d.ts +7 -0
  217. package/dist/providers/appStoreConnect/createAppStoreConnectSetupAdapter.d.ts.map +1 -0
  218. package/dist/providers/appStoreConnect/createAppStoreConnectSetupAdapter.js +33 -0
  219. package/dist/providers/appStoreConnect/createAppStoreConnectSetupAdapter.js.map +1 -0
  220. package/dist/providers/appStoreConnect/downloadIosArchive.d.ts +9 -0
  221. package/dist/providers/appStoreConnect/downloadIosArchive.d.ts.map +1 -0
  222. package/dist/providers/appStoreConnect/downloadIosArchive.js +28 -0
  223. package/dist/providers/appStoreConnect/downloadIosArchive.js.map +1 -0
  224. package/dist/providers/appStoreConnect/executeBuildUploadOperations.d.ts +8 -0
  225. package/dist/providers/appStoreConnect/executeBuildUploadOperations.d.ts.map +1 -0
  226. package/dist/providers/appStoreConnect/executeBuildUploadOperations.js +15 -0
  227. package/dist/providers/appStoreConnect/executeBuildUploadOperations.js.map +1 -0
  228. package/dist/providers/appStoreConnect/inspectAppStoreConnectIos.d.ts +27 -0
  229. package/dist/providers/appStoreConnect/inspectAppStoreConnectIos.d.ts.map +1 -0
  230. package/dist/providers/appStoreConnect/inspectAppStoreConnectIos.js +177 -0
  231. package/dist/providers/appStoreConnect/inspectAppStoreConnectIos.js.map +1 -0
  232. package/dist/providers/appStoreConnect/parseBuildUploadFileReservation.d.ts +3 -0
  233. package/dist/providers/appStoreConnect/parseBuildUploadFileReservation.d.ts.map +1 -0
  234. package/dist/providers/appStoreConnect/parseBuildUploadFileReservation.js +81 -0
  235. package/dist/providers/appStoreConnect/parseBuildUploadFileReservation.js.map +1 -0
  236. package/dist/providers/appStoreConnect/prepareAppStoreVersion.d.ts +8 -0
  237. package/dist/providers/appStoreConnect/prepareAppStoreVersion.d.ts.map +1 -0
  238. package/dist/providers/appStoreConnect/prepareAppStoreVersion.js +66 -0
  239. package/dist/providers/appStoreConnect/prepareAppStoreVersion.js.map +1 -0
  240. package/dist/providers/appStoreConnect/publishIosToAppStoreConnect.d.ts +21 -0
  241. package/dist/providers/appStoreConnect/publishIosToAppStoreConnect.d.ts.map +1 -0
  242. package/dist/providers/appStoreConnect/publishIosToAppStoreConnect.js +124 -0
  243. package/dist/providers/appStoreConnect/publishIosToAppStoreConnect.js.map +1 -0
  244. package/dist/providers/appStoreConnect/reserveAppStoreBuildUploadFile.d.ts +9 -0
  245. package/dist/providers/appStoreConnect/reserveAppStoreBuildUploadFile.d.ts.map +1 -0
  246. package/dist/providers/appStoreConnect/reserveAppStoreBuildUploadFile.js +32 -0
  247. package/dist/providers/appStoreConnect/reserveAppStoreBuildUploadFile.js.map +1 -0
  248. package/dist/providers/appStoreConnect/resolveAppStoreConnectToken.d.ts +18 -0
  249. package/dist/providers/appStoreConnect/resolveAppStoreConnectToken.d.ts.map +1 -0
  250. package/dist/providers/appStoreConnect/resolveAppStoreConnectToken.js +64 -0
  251. package/dist/providers/appStoreConnect/resolveAppStoreConnectToken.js.map +1 -0
  252. package/dist/providers/appStoreConnect/verifyAppStoreConnectPublication.d.ts +23 -0
  253. package/dist/providers/appStoreConnect/verifyAppStoreConnectPublication.d.ts.map +1 -0
  254. package/dist/providers/appStoreConnect/verifyAppStoreConnectPublication.js +60 -0
  255. package/dist/providers/appStoreConnect/verifyAppStoreConnectPublication.js.map +1 -0
  256. package/dist/providers/appStoreConnect/verifyAppStoreVersionBuild.d.ts +9 -0
  257. package/dist/providers/appStoreConnect/verifyAppStoreVersionBuild.d.ts.map +1 -0
  258. package/dist/providers/appStoreConnect/verifyAppStoreVersionBuild.js +26 -0
  259. package/dist/providers/appStoreConnect/verifyAppStoreVersionBuild.js.map +1 -0
  260. package/dist/providers/appStoreConnect/waitForAppStoreBuildUpload.d.ts +14 -0
  261. package/dist/providers/appStoreConnect/waitForAppStoreBuildUpload.d.ts.map +1 -0
  262. package/dist/providers/appStoreConnect/waitForAppStoreBuildUpload.js +69 -0
  263. package/dist/providers/appStoreConnect/waitForAppStoreBuildUpload.js.map +1 -0
  264. package/dist/providers/eas/android/EasAndroidBuildArtifact.d.ts +8 -0
  265. package/dist/providers/eas/android/EasAndroidBuildArtifact.d.ts.map +1 -0
  266. package/dist/providers/eas/android/EasAndroidBuildArtifact.js +2 -0
  267. package/dist/providers/eas/android/EasAndroidBuildArtifact.js.map +1 -0
  268. package/dist/providers/eas/android/buildAndroidWithEas.d.ts +25 -0
  269. package/dist/providers/eas/android/buildAndroidWithEas.d.ts.map +1 -0
  270. package/dist/providers/eas/android/buildAndroidWithEas.js +58 -0
  271. package/dist/providers/eas/android/buildAndroidWithEas.js.map +1 -0
  272. package/dist/providers/eas/android/generateLocalAndroidFingerprint.d.ts +15 -0
  273. package/dist/providers/eas/android/generateLocalAndroidFingerprint.d.ts.map +1 -0
  274. package/dist/providers/eas/android/generateLocalAndroidFingerprint.js +51 -0
  275. package/dist/providers/eas/android/generateLocalAndroidFingerprint.js.map +1 -0
  276. package/dist/providers/eas/android/inspectEasAndroidConfig.d.ts +28 -0
  277. package/dist/providers/eas/android/inspectEasAndroidConfig.d.ts.map +1 -0
  278. package/dist/providers/eas/android/inspectEasAndroidConfig.js +40 -0
  279. package/dist/providers/eas/android/inspectEasAndroidConfig.js.map +1 -0
  280. package/dist/providers/eas/android/parseEasAndroidBuild.d.ts +3 -0
  281. package/dist/providers/eas/android/parseEasAndroidBuild.d.ts.map +1 -0
  282. package/dist/providers/eas/android/parseEasAndroidBuild.js +45 -0
  283. package/dist/providers/eas/android/parseEasAndroidBuild.js.map +1 -0
  284. package/dist/providers/eas/android/parseEasAndroidConfig.d.ts +3 -0
  285. package/dist/providers/eas/android/parseEasAndroidConfig.d.ts.map +1 -0
  286. package/dist/providers/eas/android/parseEasAndroidConfig.js +59 -0
  287. package/dist/providers/eas/android/parseEasAndroidConfig.js.map +1 -0
  288. package/dist/providers/eas/createEasSetupAdapter.d.ts +13 -0
  289. package/dist/providers/eas/createEasSetupAdapter.d.ts.map +1 -0
  290. package/dist/providers/eas/createEasSetupAdapter.js +72 -0
  291. package/dist/providers/eas/createEasSetupAdapter.js.map +1 -0
  292. package/dist/providers/eas/ios/EasIosBuildArtifact.d.ts +9 -0
  293. package/dist/providers/eas/ios/EasIosBuildArtifact.d.ts.map +1 -0
  294. package/dist/providers/eas/ios/EasIosBuildArtifact.js +2 -0
  295. package/dist/providers/eas/ios/EasIosBuildArtifact.js.map +1 -0
  296. package/dist/providers/eas/ios/buildIosWithEas.d.ts +26 -0
  297. package/dist/providers/eas/ios/buildIosWithEas.d.ts.map +1 -0
  298. package/dist/providers/eas/ios/buildIosWithEas.js +60 -0
  299. package/dist/providers/eas/ios/buildIosWithEas.js.map +1 -0
  300. package/dist/providers/eas/ios/generateLocalIosFingerprint.d.ts +15 -0
  301. package/dist/providers/eas/ios/generateLocalIosFingerprint.d.ts.map +1 -0
  302. package/dist/providers/eas/ios/generateLocalIosFingerprint.js +48 -0
  303. package/dist/providers/eas/ios/generateLocalIosFingerprint.js.map +1 -0
  304. package/dist/providers/eas/ios/inspectEasIosConfig.d.ts +28 -0
  305. package/dist/providers/eas/ios/inspectEasIosConfig.d.ts.map +1 -0
  306. package/dist/providers/eas/ios/inspectEasIosConfig.js +40 -0
  307. package/dist/providers/eas/ios/inspectEasIosConfig.js.map +1 -0
  308. package/dist/providers/eas/ios/parseEasIosBuild.d.ts +3 -0
  309. package/dist/providers/eas/ios/parseEasIosBuild.d.ts.map +1 -0
  310. package/dist/providers/eas/ios/parseEasIosBuild.js +41 -0
  311. package/dist/providers/eas/ios/parseEasIosBuild.js.map +1 -0
  312. package/dist/providers/eas/ios/parseEasIosConfig.d.ts +3 -0
  313. package/dist/providers/eas/ios/parseEasIosConfig.d.ts.map +1 -0
  314. package/dist/providers/eas/ios/parseEasIosConfig.js +56 -0
  315. package/dist/providers/eas/ios/parseEasIosConfig.js.map +1 -0
  316. package/dist/providers/eas/publishWebToEas.js +1 -1
  317. package/dist/providers/eas/publishWebToEas.js.map +1 -1
  318. package/dist/providers/eas/resolveEasProcessEnvironment.d.ts +2 -0
  319. package/dist/providers/eas/resolveEasProcessEnvironment.d.ts.map +1 -1
  320. package/dist/providers/eas/resolveEasProcessEnvironment.js +15 -14
  321. package/dist/providers/eas/resolveEasProcessEnvironment.js.map +1 -1
  322. package/dist/providers/googlePlay/GooglePlayTokenFactory.d.ts +7 -0
  323. package/dist/providers/googlePlay/GooglePlayTokenFactory.d.ts.map +1 -0
  324. package/dist/providers/googlePlay/GooglePlayTokenFactory.js +14 -0
  325. package/dist/providers/googlePlay/GooglePlayTokenFactory.js.map +1 -0
  326. package/dist/providers/googlePlay/GooglePlayTrackState.d.ts +12 -0
  327. package/dist/providers/googlePlay/GooglePlayTrackState.d.ts.map +1 -0
  328. package/dist/providers/googlePlay/GooglePlayTrackState.js +35 -0
  329. package/dist/providers/googlePlay/GooglePlayTrackState.js.map +1 -0
  330. package/dist/providers/googlePlay/GooglePlayTransport.d.ts +15 -0
  331. package/dist/providers/googlePlay/GooglePlayTransport.d.ts.map +1 -0
  332. package/dist/providers/googlePlay/GooglePlayTransport.js +12 -0
  333. package/dist/providers/googlePlay/GooglePlayTransport.js.map +1 -0
  334. package/dist/providers/googlePlay/commitGooglePlayEdit.d.ts +8 -0
  335. package/dist/providers/googlePlay/commitGooglePlayEdit.d.ts.map +1 -0
  336. package/dist/providers/googlePlay/commitGooglePlayEdit.js +17 -0
  337. package/dist/providers/googlePlay/commitGooglePlayEdit.js.map +1 -0
  338. package/dist/providers/googlePlay/createGooglePlaySetupAdapter.d.ts +6 -0
  339. package/dist/providers/googlePlay/createGooglePlaySetupAdapter.d.ts.map +1 -0
  340. package/dist/providers/googlePlay/createGooglePlaySetupAdapter.js +32 -0
  341. package/dist/providers/googlePlay/createGooglePlaySetupAdapter.js.map +1 -0
  342. package/dist/providers/googlePlay/downloadAndroidArchive.d.ts +9 -0
  343. package/dist/providers/googlePlay/downloadAndroidArchive.d.ts.map +1 -0
  344. package/dist/providers/googlePlay/downloadAndroidArchive.js +28 -0
  345. package/dist/providers/googlePlay/downloadAndroidArchive.js.map +1 -0
  346. package/dist/providers/googlePlay/googlePlayUrls.d.ts +6 -0
  347. package/dist/providers/googlePlay/googlePlayUrls.d.ts.map +1 -0
  348. package/dist/providers/googlePlay/googlePlayUrls.js +18 -0
  349. package/dist/providers/googlePlay/googlePlayUrls.js.map +1 -0
  350. package/dist/providers/googlePlay/insertGooglePlayEdit.d.ts +7 -0
  351. package/dist/providers/googlePlay/insertGooglePlayEdit.d.ts.map +1 -0
  352. package/dist/providers/googlePlay/insertGooglePlayEdit.js +32 -0
  353. package/dist/providers/googlePlay/insertGooglePlayEdit.js.map +1 -0
  354. package/dist/providers/googlePlay/inspectGooglePlayTrack.d.ts +27 -0
  355. package/dist/providers/googlePlay/inspectGooglePlayTrack.d.ts.map +1 -0
  356. package/dist/providers/googlePlay/inspectGooglePlayTrack.js +80 -0
  357. package/dist/providers/googlePlay/inspectGooglePlayTrack.js.map +1 -0
  358. package/dist/providers/googlePlay/publishAndroidToGooglePlay.d.ts +32 -0
  359. package/dist/providers/googlePlay/publishAndroidToGooglePlay.d.ts.map +1 -0
  360. package/dist/providers/googlePlay/publishAndroidToGooglePlay.js +74 -0
  361. package/dist/providers/googlePlay/publishAndroidToGooglePlay.js.map +1 -0
  362. package/dist/providers/googlePlay/resolveGooglePlayAccessToken.d.ts +17 -0
  363. package/dist/providers/googlePlay/resolveGooglePlayAccessToken.d.ts.map +1 -0
  364. package/dist/providers/googlePlay/resolveGooglePlayAccessToken.js +62 -0
  365. package/dist/providers/googlePlay/resolveGooglePlayAccessToken.js.map +1 -0
  366. package/dist/providers/googlePlay/updateGooglePlayTrack.d.ts +12 -0
  367. package/dist/providers/googlePlay/updateGooglePlayTrack.d.ts.map +1 -0
  368. package/dist/providers/googlePlay/updateGooglePlayTrack.js +26 -0
  369. package/dist/providers/googlePlay/updateGooglePlayTrack.js.map +1 -0
  370. package/dist/providers/googlePlay/uploadGooglePlayBundle.d.ts +9 -0
  371. package/dist/providers/googlePlay/uploadGooglePlayBundle.d.ts.map +1 -0
  372. package/dist/providers/googlePlay/uploadGooglePlayBundle.js +34 -0
  373. package/dist/providers/googlePlay/uploadGooglePlayBundle.js.map +1 -0
  374. package/dist/providers/googlePlay/verifyGooglePlayPublication.d.ts +23 -0
  375. package/dist/providers/googlePlay/verifyGooglePlayPublication.d.ts.map +1 -0
  376. package/dist/providers/googlePlay/verifyGooglePlayPublication.js +31 -0
  377. package/dist/providers/googlePlay/verifyGooglePlayPublication.js.map +1 -0
  378. package/dist/targets/android/createAndroidDeploymentRevision.d.ts +3 -0
  379. package/dist/targets/android/createAndroidDeploymentRevision.d.ts.map +1 -0
  380. package/dist/targets/android/createAndroidDeploymentRevision.js +11 -0
  381. package/dist/targets/android/createAndroidDeploymentRevision.js.map +1 -0
  382. package/dist/targets/android/createAndroidTargetPlanContributor.d.ts +3 -0
  383. package/dist/targets/android/createAndroidTargetPlanContributor.d.ts.map +1 -0
  384. package/dist/targets/android/createAndroidTargetPlanContributor.js +26 -0
  385. package/dist/targets/android/createAndroidTargetPlanContributor.js.map +1 -0
  386. package/dist/targets/android/isAndroidDeploymentIntentValid.d.ts +3 -0
  387. package/dist/targets/android/isAndroidDeploymentIntentValid.d.ts.map +1 -0
  388. package/dist/targets/android/isAndroidDeploymentIntentValid.js +7 -0
  389. package/dist/targets/android/isAndroidDeploymentIntentValid.js.map +1 -0
  390. package/dist/targets/android/normalizeAndroidProviders.d.ts +16 -0
  391. package/dist/targets/android/normalizeAndroidProviders.d.ts.map +1 -0
  392. package/dist/targets/android/normalizeAndroidProviders.js +16 -0
  393. package/dist/targets/android/normalizeAndroidProviders.js.map +1 -0
  394. package/dist/targets/ios/createIosDeploymentRevision.d.ts +3 -0
  395. package/dist/targets/ios/createIosDeploymentRevision.d.ts.map +1 -0
  396. package/dist/targets/ios/createIosDeploymentRevision.js +10 -0
  397. package/dist/targets/ios/createIosDeploymentRevision.js.map +1 -0
  398. package/dist/targets/ios/createIosTargetPlanContributor.d.ts +3 -0
  399. package/dist/targets/ios/createIosTargetPlanContributor.d.ts.map +1 -0
  400. package/dist/targets/ios/createIosTargetPlanContributor.js +26 -0
  401. package/dist/targets/ios/createIosTargetPlanContributor.js.map +1 -0
  402. package/dist/targets/ios/isIosDeploymentIntentValid.d.ts +3 -0
  403. package/dist/targets/ios/isIosDeploymentIntentValid.d.ts.map +1 -0
  404. package/dist/targets/ios/isIosDeploymentIntentValid.js +4 -0
  405. package/dist/targets/ios/isIosDeploymentIntentValid.js.map +1 -0
  406. package/dist/targets/ios/normalizeIosProviders.d.ts +16 -0
  407. package/dist/targets/ios/normalizeIosProviders.d.ts.map +1 -0
  408. package/dist/targets/ios/normalizeIosProviders.js +16 -0
  409. package/dist/targets/ios/normalizeIosProviders.js.map +1 -0
  410. package/package.json +3 -2
  411. package/dist/providers/eas/createEasHostingSetupAdapter.d.ts +0 -7
  412. package/dist/providers/eas/createEasHostingSetupAdapter.d.ts.map +0 -1
  413. package/dist/providers/eas/createEasHostingSetupAdapter.js +0 -76
  414. package/dist/providers/eas/createEasHostingSetupAdapter.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifyAppStoreVersionBuild.d.ts","sourceRoot":"","sources":["../../../src/providers/appStoreConnect/verifyAppStoreVersionBuild.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAG3E,wBAAsB,0BAA0B,CAAC,OAAO,EAAE;IACxD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,wBAAwB,CAAC;CAC5C,GAAG,OAAO,CAAC,OAAO,CAAC,CAmBnB"}
@@ -0,0 +1,26 @@
1
+ import { appStoreConnectVersionBuildUrl } from './appStoreConnectUrls';
2
+ export async function verifyAppStoreVersionBuild(options) {
3
+ const response = await options.request({
4
+ method: 'GET',
5
+ url: appStoreConnectVersionBuildUrl(options.versionId),
6
+ token: options.token,
7
+ });
8
+ if (response.status < 200 || response.status >= 300)
9
+ return false;
10
+ try {
11
+ const value = JSON.parse(response.body);
12
+ if (!isRecord(value) || !isRecord(value.data) || !isRecord(value.data.attributes))
13
+ return false;
14
+ return (value.data.type === 'builds' &&
15
+ value.data.id === options.buildId &&
16
+ value.data.attributes.version === options.buildNumber &&
17
+ value.data.attributes.processingState === 'VALID');
18
+ }
19
+ catch {
20
+ return false;
21
+ }
22
+ }
23
+ function isRecord(value) {
24
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
25
+ }
26
+ //# sourceMappingURL=verifyAppStoreVersionBuild.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifyAppStoreVersionBuild.js","sourceRoot":"","sources":["../../../src/providers/appStoreConnect/verifyAppStoreVersionBuild.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AAEvE,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,OAMhD;IACC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC;QACrC,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,8BAA8B,CAAC,OAAO,CAAC,SAAS,CAAC;QACtD,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC,CAAC;IACH,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,KAAK,CAAC;IAClE,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAY,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;YAAE,OAAO,KAAK,CAAC;QAChG,OAAO,CACL,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ;YAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,OAAO,CAAC,OAAO;YACjC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,KAAK,OAAO,CAAC,WAAW;YACrD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,KAAK,OAAO,CAClD,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC","sourcesContent":["import type { AppStoreConnectTransport } from './AppStoreConnectTransport';\nimport { appStoreConnectVersionBuildUrl } from './appStoreConnectUrls';\n\nexport async function verifyAppStoreVersionBuild(options: {\n readonly versionId: string;\n readonly buildId: string;\n readonly buildNumber: string;\n readonly token: string;\n readonly request: AppStoreConnectTransport;\n}): Promise<boolean> {\n const response = await options.request({\n method: 'GET',\n url: appStoreConnectVersionBuildUrl(options.versionId),\n token: options.token,\n });\n if (response.status < 200 || response.status >= 300) return false;\n try {\n const value = JSON.parse(response.body) as unknown;\n if (!isRecord(value) || !isRecord(value.data) || !isRecord(value.data.attributes)) return false;\n return (\n value.data.type === 'builds' &&\n value.data.id === options.buildId &&\n value.data.attributes.version === options.buildNumber &&\n value.data.attributes.processingState === 'VALID'\n );\n } catch {\n return false;\n }\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n"]}
@@ -0,0 +1,14 @@
1
+ import type { AppStoreConnectTransport } from './AppStoreConnectTransport';
2
+ export interface ProcessedAppStoreBuild {
3
+ readonly buildId: string;
4
+ readonly buildNumber: string;
5
+ }
6
+ export declare function waitForAppStoreBuildUpload(options: {
7
+ readonly buildUploadId: string;
8
+ readonly expectedBuildNumber: string;
9
+ readonly token: string;
10
+ readonly request: AppStoreConnectTransport;
11
+ readonly wait: () => Promise<void>;
12
+ readonly maxAttempts: number;
13
+ }): Promise<ProcessedAppStoreBuild | null>;
14
+ //# sourceMappingURL=waitForAppStoreBuildUpload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waitForAppStoreBuildUpload.d.ts","sourceRoot":"","sources":["../../../src/providers/appStoreConnect/waitForAppStoreBuildUpload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAG3E,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAsB,0BAA0B,CAAC,OAAO,EAAE;IACxD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,wBAAwB,CAAC;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAQzC"}
@@ -0,0 +1,69 @@
1
+ import { appStoreConnectBuildUploadUrl } from './appStoreConnectUrls';
2
+ export async function waitForAppStoreBuildUpload(options) {
3
+ for (let attempt = 0; attempt < options.maxAttempts; attempt += 1) {
4
+ const result = await readBuildUpload(options);
5
+ if (result.status === 'complete')
6
+ return result.build;
7
+ if (result.status === 'failed')
8
+ return null;
9
+ if (attempt + 1 < options.maxAttempts)
10
+ await options.wait();
11
+ }
12
+ return null;
13
+ }
14
+ async function readBuildUpload(options) {
15
+ const response = await options.request({
16
+ method: 'GET',
17
+ url: appStoreConnectBuildUploadUrl(options.buildUploadId),
18
+ token: options.token,
19
+ });
20
+ if (response.status < 200 || response.status >= 300)
21
+ return { status: 'failed' };
22
+ try {
23
+ return parseBuildUpload(JSON.parse(response.body), options.expectedBuildNumber);
24
+ }
25
+ catch {
26
+ return { status: 'failed' };
27
+ }
28
+ }
29
+ function parseBuildUpload(value, expectedBuildNumber) {
30
+ if (!isRecord(value) || !isRecord(value.data) || !isRecord(value.data.attributes)) {
31
+ return { status: 'failed' };
32
+ }
33
+ const state = parseState(value.data.attributes.state);
34
+ if (state === 'FAILED')
35
+ return { status: 'failed' };
36
+ if (state !== 'COMPLETE')
37
+ return { status: 'pending' };
38
+ const build = findBuild(value.included, expectedBuildNumber);
39
+ return build === null ? { status: 'failed' } : { status: 'complete', build };
40
+ }
41
+ function parseState(value) {
42
+ if (typeof value === 'string')
43
+ return value;
44
+ return isRecord(value) && typeof value.state === 'string' ? value.state : null;
45
+ }
46
+ function findBuild(value, expectedBuildNumber) {
47
+ if (!Array.isArray(value))
48
+ return null;
49
+ for (const candidate of value) {
50
+ const build = parseBuild(candidate, expectedBuildNumber);
51
+ if (build !== null)
52
+ return build;
53
+ }
54
+ return null;
55
+ }
56
+ function parseBuild(value, expectedBuildNumber) {
57
+ if (!isRecord(value) || value.type !== 'builds' || !isRecord(value.attributes))
58
+ return null;
59
+ if (value.attributes.version !== expectedBuildNumber || !isNonEmptyString(value.id))
60
+ return null;
61
+ return { buildId: value.id, buildNumber: expectedBuildNumber };
62
+ }
63
+ function isRecord(value) {
64
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
65
+ }
66
+ function isNonEmptyString(value) {
67
+ return typeof value === 'string' && value.trim().length > 0;
68
+ }
69
+ //# sourceMappingURL=waitForAppStoreBuildUpload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waitForAppStoreBuildUpload.js","sourceRoot":"","sources":["../../../src/providers/appStoreConnect/waitForAppStoreBuildUpload.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AppStoreConnectTransport } from './AppStoreConnectTransport';\nimport { appStoreConnectBuildUploadUrl } from './appStoreConnectUrls';\n\nexport interface ProcessedAppStoreBuild {\n readonly buildId: string;\n readonly buildNumber: string;\n}\n\nexport async function waitForAppStoreBuildUpload(options: {\n readonly buildUploadId: string;\n readonly expectedBuildNumber: string;\n readonly token: string;\n readonly request: AppStoreConnectTransport;\n readonly wait: () => Promise<void>;\n readonly maxAttempts: number;\n}): Promise<ProcessedAppStoreBuild | null> {\n for (let attempt = 0; attempt < options.maxAttempts; attempt += 1) {\n const result = await readBuildUpload(options);\n if (result.status === 'complete') return result.build;\n if (result.status === 'failed') return null;\n if (attempt + 1 < options.maxAttempts) await options.wait();\n }\n return null;\n}\n\ntype BuildUploadRead =\n | { readonly status: 'pending' }\n | { readonly status: 'failed' }\n | { readonly status: 'complete'; readonly build: ProcessedAppStoreBuild };\n\nasync function readBuildUpload(options: {\n readonly buildUploadId: string;\n readonly expectedBuildNumber: string;\n readonly token: string;\n readonly request: AppStoreConnectTransport;\n}): Promise<BuildUploadRead> {\n const response = await options.request({\n method: 'GET',\n url: appStoreConnectBuildUploadUrl(options.buildUploadId),\n token: options.token,\n });\n if (response.status < 200 || response.status >= 300) return { status: 'failed' };\n try {\n return parseBuildUpload(JSON.parse(response.body) as unknown, options.expectedBuildNumber);\n } catch {\n return { status: 'failed' };\n }\n}\n\nfunction parseBuildUpload(value: unknown, expectedBuildNumber: string): BuildUploadRead {\n if (!isRecord(value) || !isRecord(value.data) || !isRecord(value.data.attributes)) {\n return { status: 'failed' };\n }\n const state = parseState(value.data.attributes.state);\n if (state === 'FAILED') return { status: 'failed' };\n if (state !== 'COMPLETE') return { status: 'pending' };\n const build = findBuild(value.included, expectedBuildNumber);\n return build === null ? { status: 'failed' } : { status: 'complete', build };\n}\n\nfunction parseState(value: unknown): string | null {\n if (typeof value === 'string') return value;\n return isRecord(value) && typeof value.state === 'string' ? value.state : null;\n}\n\nfunction findBuild(value: unknown, expectedBuildNumber: string): ProcessedAppStoreBuild | null {\n if (!Array.isArray(value)) return null;\n for (const candidate of value as unknown[]) {\n const build = parseBuild(candidate, expectedBuildNumber);\n if (build !== null) return build;\n }\n return null;\n}\n\nfunction parseBuild(value: unknown, expectedBuildNumber: string): ProcessedAppStoreBuild | null {\n if (!isRecord(value) || value.type !== 'builds' || !isRecord(value.attributes)) return null;\n if (value.attributes.version !== expectedBuildNumber || !isNonEmptyString(value.id)) return null;\n return { buildId: value.id, buildNumber: expectedBuildNumber };\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction isNonEmptyString(value: unknown): value is string {\n return typeof value === 'string' && value.trim().length > 0;\n}\n"]}
@@ -0,0 +1,8 @@
1
+ export interface EasAndroidBuildArtifact {
2
+ readonly buildId: string;
3
+ readonly buildProfile: string;
4
+ readonly fingerprint: string;
5
+ readonly versionCode: number;
6
+ readonly archiveUrl: string;
7
+ }
8
+ //# sourceMappingURL=EasAndroidBuildArtifact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EasAndroidBuildArtifact.d.ts","sourceRoot":"","sources":["../../../../src/providers/eas/android/EasAndroidBuildArtifact.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=EasAndroidBuildArtifact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EasAndroidBuildArtifact.js","sourceRoot":"","sources":["../../../../src/providers/eas/android/EasAndroidBuildArtifact.ts"],"names":[],"mappings":"","sourcesContent":["export interface EasAndroidBuildArtifact {\n readonly buildId: string;\n readonly buildProfile: string;\n readonly fingerprint: string;\n readonly versionCode: number;\n readonly archiveUrl: string;\n}\n"]}
@@ -0,0 +1,25 @@
1
+ import type { DeploymentCredentialReference } from '../../../domain/DeploymentCredentialReference';
2
+ import type { DeploymentFailure } from '../../../domain/DeploymentFailure';
3
+ import type { DeploymentRequiredAction } from '../../../domain/DeploymentRequiredAction';
4
+ import type { DeploymentSecretResolver } from '../../../domain/DeploymentSecretResolver';
5
+ import type { DeploymentProcessRunner } from '../../../runtime/process/DeploymentProcessRunner';
6
+ import type { EasAndroidBuildArtifact } from './EasAndroidBuildArtifact';
7
+ export type EasAndroidBuildResult = {
8
+ readonly status: 'completed';
9
+ readonly artifact: EasAndroidBuildArtifact;
10
+ } | {
11
+ readonly status: 'action-required';
12
+ readonly action: DeploymentRequiredAction;
13
+ } | {
14
+ readonly status: 'failed';
15
+ readonly failure: DeploymentFailure;
16
+ };
17
+ export declare function buildAndroidWithEas(options: {
18
+ readonly projectRoot: string;
19
+ readonly buildProfile: string;
20
+ readonly expectedFingerprint: string;
21
+ readonly credentials: readonly DeploymentCredentialReference[];
22
+ readonly resolveSecret: DeploymentSecretResolver;
23
+ readonly runProcess: DeploymentProcessRunner;
24
+ }): Promise<EasAndroidBuildResult>;
25
+ //# sourceMappingURL=buildAndroidWithEas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildAndroidWithEas.d.ts","sourceRoot":"","sources":["../../../../src/providers/eas/android/buildAndroidWithEas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,+CAA+C,CAAC;AACnG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACzF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACzF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAEhG,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGzE,MAAM,MAAM,qBAAqB,GAC7B;IAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAA;CAAE,GAC5E;IAAE,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAA;CAAE,GACjF;IAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAEvE,wBAAsB,mBAAmB,CAAC,OAAO,EAAE;IACjD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,SAAS,6BAA6B,EAAE,CAAC;IAC/D,QAAQ,CAAC,aAAa,EAAE,wBAAwB,CAAC;IACjD,QAAQ,CAAC,UAAU,EAAE,uBAAuB,CAAC;CAC9C,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAoBjC"}
@@ -0,0 +1,58 @@
1
+ import { resolveEasProcessEnvironment } from '../resolveEasProcessEnvironment';
2
+ import { parseEasAndroidBuild } from './parseEasAndroidBuild';
3
+ export async function buildAndroidWithEas(options) {
4
+ const environment = await resolveEasProcessEnvironment({ ...options, target: 'android' });
5
+ if (!environment.ok)
6
+ return { status: 'action-required', action: environment.action };
7
+ const result = await options.runProcess({
8
+ command: 'eas',
9
+ args: buildArgs(options.buildProfile),
10
+ cwd: options.projectRoot,
11
+ ...(environment.env === undefined ? {} : { env: environment.env }),
12
+ });
13
+ if (result.exitCode !== 0)
14
+ return failedBuild(result.stderr);
15
+ let parsed;
16
+ try {
17
+ parsed = JSON.parse(result.stdout);
18
+ }
19
+ catch {
20
+ return failure('EAS_ANDROID_BUILD_INVALID', 'EAS Android build returned an invalid result.');
21
+ }
22
+ const artifact = parseEasAndroidBuild(parsed, options.expectedFingerprint, options.buildProfile);
23
+ return artifact === null
24
+ ? failure('EAS_ANDROID_BUILD_INVALID', 'EAS Android build returned an invalid result.')
25
+ : { status: 'completed', artifact };
26
+ }
27
+ function buildArgs(buildProfile) {
28
+ return [
29
+ 'build',
30
+ '--platform',
31
+ 'android',
32
+ '--profile',
33
+ buildProfile,
34
+ '--json',
35
+ '--non-interactive',
36
+ '--wait',
37
+ ];
38
+ }
39
+ function failedBuild(stderr) {
40
+ const lower = stderr.toLowerCase();
41
+ if (lower.includes('keystore') || lower.includes('credential')) {
42
+ return {
43
+ status: 'action-required',
44
+ action: {
45
+ type: 'manual-action',
46
+ target: 'android',
47
+ provider: 'eas',
48
+ code: 'EAS_ANDROID_SIGNING_SETUP_REQUIRED',
49
+ message: 'Android signing credentials require EAS account or project setup.',
50
+ },
51
+ };
52
+ }
53
+ return failure('EAS_ANDROID_BUILD_FAILED', 'EAS Android build failed.');
54
+ }
55
+ function failure(code, message) {
56
+ return { status: 'failed', failure: { code, message, target: 'android', provider: 'eas' } };
57
+ }
58
+ //# sourceMappingURL=buildAndroidWithEas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildAndroidWithEas.js","sourceRoot":"","sources":["../../../../src/providers/eas/android/buildAndroidWithEas.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAE/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAO9D,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAOzC;IACC,MAAM,WAAW,GAAG,MAAM,4BAA4B,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IAC1F,IAAI,CAAC,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC;IACtF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC;QACtC,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC;QACrC,GAAG,EAAE,OAAO,CAAC,WAAW;QACxB,GAAG,CAAC,WAAW,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC;KACnE,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC;QAAE,OAAO,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7D,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC,2BAA2B,EAAE,+CAA+C,CAAC,CAAC;IAC/F,CAAC;IACD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IACjG,OAAO,QAAQ,KAAK,IAAI;QACtB,CAAC,CAAC,OAAO,CAAC,2BAA2B,EAAE,+CAA+C,CAAC;QACvF,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;AACxC,CAAC;AAED,SAAS,SAAS,CAAC,YAAoB;IACrC,OAAO;QACL,OAAO;QACP,YAAY;QACZ,SAAS;QACT,WAAW;QACX,YAAY;QACZ,QAAQ;QACR,mBAAmB;QACnB,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,MAAc;IACjC,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACnC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/D,OAAO;YACL,MAAM,EAAE,iBAAiB;YACzB,MAAM,EAAE;gBACN,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,SAAS;gBACjB,QAAQ,EAAE,KAAK;gBACf,IAAI,EAAE,oCAAoC;gBAC1C,OAAO,EAAE,mEAAmE;aAC7E;SACF,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC,0BAA0B,EAAE,2BAA2B,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,OAAO,CAAC,IAAY,EAAE,OAAe;IAC5C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC;AAC9F,CAAC","sourcesContent":["import type { DeploymentCredentialReference } from '../../../domain/DeploymentCredentialReference';\nimport type { DeploymentFailure } from '../../../domain/DeploymentFailure';\nimport type { DeploymentRequiredAction } from '../../../domain/DeploymentRequiredAction';\nimport type { DeploymentSecretResolver } from '../../../domain/DeploymentSecretResolver';\nimport type { DeploymentProcessRunner } from '../../../runtime/process/DeploymentProcessRunner';\nimport { resolveEasProcessEnvironment } from '../resolveEasProcessEnvironment';\nimport type { EasAndroidBuildArtifact } from './EasAndroidBuildArtifact';\nimport { parseEasAndroidBuild } from './parseEasAndroidBuild';\n\nexport type EasAndroidBuildResult =\n | { readonly status: 'completed'; readonly artifact: EasAndroidBuildArtifact }\n | { readonly status: 'action-required'; readonly action: DeploymentRequiredAction }\n | { readonly status: 'failed'; readonly failure: DeploymentFailure };\n\nexport async function buildAndroidWithEas(options: {\n readonly projectRoot: string;\n readonly buildProfile: string;\n readonly expectedFingerprint: string;\n readonly credentials: readonly DeploymentCredentialReference[];\n readonly resolveSecret: DeploymentSecretResolver;\n readonly runProcess: DeploymentProcessRunner;\n}): Promise<EasAndroidBuildResult> {\n const environment = await resolveEasProcessEnvironment({ ...options, target: 'android' });\n if (!environment.ok) return { status: 'action-required', action: environment.action };\n const result = await options.runProcess({\n command: 'eas',\n args: buildArgs(options.buildProfile),\n cwd: options.projectRoot,\n ...(environment.env === undefined ? {} : { env: environment.env }),\n });\n if (result.exitCode !== 0) return failedBuild(result.stderr);\n let parsed: unknown;\n try {\n parsed = JSON.parse(result.stdout);\n } catch {\n return failure('EAS_ANDROID_BUILD_INVALID', 'EAS Android build returned an invalid result.');\n }\n const artifact = parseEasAndroidBuild(parsed, options.expectedFingerprint, options.buildProfile);\n return artifact === null\n ? failure('EAS_ANDROID_BUILD_INVALID', 'EAS Android build returned an invalid result.')\n : { status: 'completed', artifact };\n}\n\nfunction buildArgs(buildProfile: string): readonly string[] {\n return [\n 'build',\n '--platform',\n 'android',\n '--profile',\n buildProfile,\n '--json',\n '--non-interactive',\n '--wait',\n ];\n}\n\nfunction failedBuild(stderr: string): EasAndroidBuildResult {\n const lower = stderr.toLowerCase();\n if (lower.includes('keystore') || lower.includes('credential')) {\n return {\n status: 'action-required',\n action: {\n type: 'manual-action',\n target: 'android',\n provider: 'eas',\n code: 'EAS_ANDROID_SIGNING_SETUP_REQUIRED',\n message: 'Android signing credentials require EAS account or project setup.',\n },\n };\n }\n return failure('EAS_ANDROID_BUILD_FAILED', 'EAS Android build failed.');\n}\n\nfunction failure(code: string, message: string): EasAndroidBuildResult {\n return { status: 'failed', failure: { code, message, target: 'android', provider: 'eas' } };\n}\n"]}
@@ -0,0 +1,15 @@
1
+ import type { DeploymentFailure } from '../../../domain/DeploymentFailure';
2
+ import type { DeploymentProcessRunner } from '../../../runtime/process/DeploymentProcessRunner';
3
+ export type LocalAndroidFingerprintResult = {
4
+ readonly status: 'completed';
5
+ readonly fingerprint: string;
6
+ } | {
7
+ readonly status: 'failed';
8
+ readonly failure: DeploymentFailure;
9
+ };
10
+ export declare function generateLocalAndroidFingerprint(options: {
11
+ readonly projectRoot: string;
12
+ readonly profileEnvironment: Readonly<Record<string, string>>;
13
+ readonly runProcess: DeploymentProcessRunner;
14
+ }): Promise<LocalAndroidFingerprintResult>;
15
+ //# sourceMappingURL=generateLocalAndroidFingerprint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateLocalAndroidFingerprint.d.ts","sourceRoot":"","sources":["../../../../src/providers/eas/android/generateLocalAndroidFingerprint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAEhG,MAAM,MAAM,6BAA6B,GACrC;IAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAC9D;IAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAgBvE,wBAAsB,+BAA+B,CAAC,OAAO,EAAE;IAC7D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9D,QAAQ,CAAC,UAAU,EAAE,uBAAuB,CAAC;CAC9C,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAgBzC"}
@@ -0,0 +1,51 @@
1
+ const FINGERPRINT_SCRIPT = `
2
+ import { existsSync } from 'node:fs';
3
+ import { spawnSync } from 'node:child_process';
4
+ import * as Fingerprint from 'expo/fingerprint';
5
+ const markers = ['android/app/build.gradle', 'android/app/src/main/AndroidManifest.xml'];
6
+ const generic = markers.some((marker) => {
7
+ if (!existsSync(marker)) return false;
8
+ return spawnSync('git', ['check-ignore', '--quiet', marker], { cwd: process.cwd() }).status !== 0;
9
+ });
10
+ const options = { platforms: ['android'], silent: true, ...(generic ? {} : { ignorePaths: ['android/**/*', 'ios/**/*'] }) };
11
+ const result = await Fingerprint.createFingerprintAsync(process.cwd(), options);
12
+ process.stdout.write(JSON.stringify({ hash: result.hash }));
13
+ `;
14
+ export async function generateLocalAndroidFingerprint(options) {
15
+ const result = await options.runProcess({
16
+ command: 'node',
17
+ args: ['--input-type=module', '--eval', FINGERPRINT_SCRIPT],
18
+ cwd: options.projectRoot,
19
+ env: options.profileEnvironment,
20
+ });
21
+ if (result.exitCode !== 0)
22
+ return failure();
23
+ let parsed;
24
+ try {
25
+ parsed = JSON.parse(result.stdout);
26
+ }
27
+ catch {
28
+ return failure();
29
+ }
30
+ if (!isFingerprintResult(parsed))
31
+ return failure();
32
+ return { status: 'completed', fingerprint: parsed.hash };
33
+ }
34
+ function isFingerprintResult(value) {
35
+ if (typeof value !== 'object' || value === null || Array.isArray(value))
36
+ return false;
37
+ const hash = value.hash;
38
+ return typeof hash === 'string' && /^[a-f\d]{32,128}$/i.test(hash);
39
+ }
40
+ function failure() {
41
+ return {
42
+ status: 'failed',
43
+ failure: {
44
+ code: 'ANDROID_FINGERPRINT_FAILED',
45
+ message: 'Android project fingerprint could not be generated.',
46
+ target: 'android',
47
+ provider: 'eas',
48
+ },
49
+ };
50
+ }
51
+ //# sourceMappingURL=generateLocalAndroidFingerprint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateLocalAndroidFingerprint.js","sourceRoot":"","sources":["../../../../src/providers/eas/android/generateLocalAndroidFingerprint.ts"],"names":[],"mappings":"AAOA,MAAM,kBAAkB,GAAG;;;;;;;;;;;;CAY1B,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,+BAA+B,CAAC,OAIrD;IACC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC;QACtC,OAAO,EAAE,MAAM;QACf,IAAI,EAAE,CAAC,qBAAqB,EAAE,QAAQ,EAAE,kBAAkB,CAAC;QAC3D,GAAG,EAAE,OAAO,CAAC,WAAW;QACxB,GAAG,EAAE,OAAO,CAAC,kBAAkB;KAChC,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC;QAAE,OAAO,OAAO,EAAE,CAAC;IAC5C,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,EAAE,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;QAAE,OAAO,OAAO,EAAE,CAAC;IACnD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AAC3D,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtF,MAAM,IAAI,GAAI,KAAiC,CAAC,IAAI,CAAC;IACrD,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,OAAO;IACd,OAAO;QACL,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE;YACP,IAAI,EAAE,4BAA4B;YAClC,OAAO,EAAE,qDAAqD;YAC9D,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,KAAK;SAChB;KACF,CAAC;AACJ,CAAC","sourcesContent":["import type { DeploymentFailure } from '../../../domain/DeploymentFailure';\nimport type { DeploymentProcessRunner } from '../../../runtime/process/DeploymentProcessRunner';\n\nexport type LocalAndroidFingerprintResult =\n | { readonly status: 'completed'; readonly fingerprint: string }\n | { readonly status: 'failed'; readonly failure: DeploymentFailure };\n\nconst FINGERPRINT_SCRIPT = `\nimport { existsSync } from 'node:fs';\nimport { spawnSync } from 'node:child_process';\nimport * as Fingerprint from 'expo/fingerprint';\nconst markers = ['android/app/build.gradle', 'android/app/src/main/AndroidManifest.xml'];\nconst generic = markers.some((marker) => {\n if (!existsSync(marker)) return false;\n return spawnSync('git', ['check-ignore', '--quiet', marker], { cwd: process.cwd() }).status !== 0;\n});\nconst options = { platforms: ['android'], silent: true, ...(generic ? {} : { ignorePaths: ['android/**/*', 'ios/**/*'] }) };\nconst result = await Fingerprint.createFingerprintAsync(process.cwd(), options);\nprocess.stdout.write(JSON.stringify({ hash: result.hash }));\n`;\n\nexport async function generateLocalAndroidFingerprint(options: {\n readonly projectRoot: string;\n readonly profileEnvironment: Readonly<Record<string, string>>;\n readonly runProcess: DeploymentProcessRunner;\n}): Promise<LocalAndroidFingerprintResult> {\n const result = await options.runProcess({\n command: 'node',\n args: ['--input-type=module', '--eval', FINGERPRINT_SCRIPT],\n cwd: options.projectRoot,\n env: options.profileEnvironment,\n });\n if (result.exitCode !== 0) return failure();\n let parsed: unknown;\n try {\n parsed = JSON.parse(result.stdout);\n } catch {\n return failure();\n }\n if (!isFingerprintResult(parsed)) return failure();\n return { status: 'completed', fingerprint: parsed.hash };\n}\n\nfunction isFingerprintResult(value: unknown): value is { readonly hash: string } {\n if (typeof value !== 'object' || value === null || Array.isArray(value)) return false;\n const hash = (value as Record<string, unknown>).hash;\n return typeof hash === 'string' && /^[a-f\\d]{32,128}$/i.test(hash);\n}\n\nfunction failure(): LocalAndroidFingerprintResult {\n return {\n status: 'failed',\n failure: {\n code: 'ANDROID_FINGERPRINT_FAILED',\n message: 'Android project fingerprint could not be generated.',\n target: 'android',\n provider: 'eas',\n },\n };\n}\n"]}
@@ -0,0 +1,28 @@
1
+ import type { DeploymentCredentialReference } from '../../../domain/DeploymentCredentialReference';
2
+ import type { DeploymentFailure } from '../../../domain/DeploymentFailure';
3
+ import type { DeploymentRequiredAction } from '../../../domain/DeploymentRequiredAction';
4
+ import type { DeploymentSecretResolver } from '../../../domain/DeploymentSecretResolver';
5
+ import type { DeploymentProcessRunner } from '../../../runtime/process/DeploymentProcessRunner';
6
+ export interface EasAndroidConfigSnapshot {
7
+ readonly packageName: string;
8
+ readonly profileEnvironment: Readonly<Record<string, string>>;
9
+ }
10
+ export type EasAndroidConfigResult = {
11
+ readonly status: 'completed';
12
+ readonly config: EasAndroidConfigSnapshot;
13
+ } | {
14
+ readonly status: 'action-required';
15
+ readonly action: DeploymentRequiredAction;
16
+ } | {
17
+ readonly status: 'failed';
18
+ readonly failure: DeploymentFailure;
19
+ };
20
+ export declare function inspectEasAndroidConfig(options: {
21
+ readonly projectRoot: string;
22
+ readonly packageName: string;
23
+ readonly buildProfile: string;
24
+ readonly credentials: readonly DeploymentCredentialReference[];
25
+ readonly resolveSecret: DeploymentSecretResolver;
26
+ readonly runProcess: DeploymentProcessRunner;
27
+ }): Promise<EasAndroidConfigResult>;
28
+ //# sourceMappingURL=inspectEasAndroidConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspectEasAndroidConfig.d.ts","sourceRoot":"","sources":["../../../../src/providers/eas/android/inspectEasAndroidConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,+CAA+C,CAAC;AACnG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACzF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACzF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAIhG,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC/D;AAED,MAAM,MAAM,sBAAsB,GAC9B;IAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAA;CAAE,GAC3E;IAAE,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAA;CAAE,GACjF;IAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAEvE,wBAAsB,uBAAuB,CAAC,OAAO,EAAE;IACrD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,SAAS,6BAA6B,EAAE,CAAC;IAC/D,QAAQ,CAAC,aAAa,EAAE,wBAAwB,CAAC;IACjD,QAAQ,CAAC,UAAU,EAAE,uBAAuB,CAAC;CAC9C,GAAG,OAAO,CAAC,sBAAsB,CAAC,CA0BlC"}
@@ -0,0 +1,40 @@
1
+ import { resolveEasProcessEnvironment } from '../resolveEasProcessEnvironment';
2
+ import { parseEasAndroidConfig } from './parseEasAndroidConfig';
3
+ export async function inspectEasAndroidConfig(options) {
4
+ if (options.buildProfile.trim().length === 0)
5
+ return invalidProfile();
6
+ const environment = await resolveEasProcessEnvironment({ ...options, target: 'android' });
7
+ if (!environment.ok)
8
+ return { status: 'action-required', action: environment.action };
9
+ const result = await options.runProcess({
10
+ command: 'eas',
11
+ args: [
12
+ 'config',
13
+ '--platform',
14
+ 'android',
15
+ '--profile',
16
+ options.buildProfile,
17
+ '--json',
18
+ '--non-interactive',
19
+ ],
20
+ cwd: options.projectRoot,
21
+ ...(environment.env === undefined ? {} : { env: environment.env }),
22
+ });
23
+ if (result.exitCode !== 0)
24
+ return failure('EAS_ANDROID_CONFIG_FAILED');
25
+ let parsed;
26
+ try {
27
+ parsed = JSON.parse(result.stdout);
28
+ }
29
+ catch {
30
+ return failure('EAS_ANDROID_CONFIG_INVALID');
31
+ }
32
+ return parseEasAndroidConfig(parsed, options.packageName);
33
+ }
34
+ function invalidProfile() {
35
+ return failure('INVALID_ANDROID_BUILD_PROFILE', 'Android build profile is invalid.');
36
+ }
37
+ function failure(code, message = 'EAS Android project configuration could not be inspected.') {
38
+ return { status: 'failed', failure: { code, message, target: 'android', provider: 'eas' } };
39
+ }
40
+ //# sourceMappingURL=inspectEasAndroidConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspectEasAndroidConfig.js","sourceRoot":"","sources":["../../../../src/providers/eas/android/inspectEasAndroidConfig.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAYhE,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,OAO7C;IACC,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,cAAc,EAAE,CAAC;IACtE,MAAM,WAAW,GAAG,MAAM,4BAA4B,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IAC1F,IAAI,CAAC,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC;IACtF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC;QACtC,OAAO,EAAE,KAAK;QACd,IAAI,EAAE;YACJ,QAAQ;YACR,YAAY;YACZ,SAAS;YACT,WAAW;YACX,OAAO,CAAC,YAAY;YACpB,QAAQ;YACR,mBAAmB;SACpB;QACD,GAAG,EAAE,OAAO,CAAC,WAAW;QACxB,GAAG,CAAC,WAAW,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC;KACnE,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC,2BAA2B,CAAC,CAAC;IACvE,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,cAAc;IACrB,OAAO,OAAO,CAAC,+BAA+B,EAAE,mCAAmC,CAAC,CAAC;AACvF,CAAC;AAED,SAAS,OAAO,CACd,IAAY,EACZ,OAAO,GAAG,2DAA2D;IAErE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC;AAC9F,CAAC","sourcesContent":["import type { DeploymentCredentialReference } from '../../../domain/DeploymentCredentialReference';\nimport type { DeploymentFailure } from '../../../domain/DeploymentFailure';\nimport type { DeploymentRequiredAction } from '../../../domain/DeploymentRequiredAction';\nimport type { DeploymentSecretResolver } from '../../../domain/DeploymentSecretResolver';\nimport type { DeploymentProcessRunner } from '../../../runtime/process/DeploymentProcessRunner';\nimport { resolveEasProcessEnvironment } from '../resolveEasProcessEnvironment';\nimport { parseEasAndroidConfig } from './parseEasAndroidConfig';\n\nexport interface EasAndroidConfigSnapshot {\n readonly packageName: string;\n readonly profileEnvironment: Readonly<Record<string, string>>;\n}\n\nexport type EasAndroidConfigResult =\n | { readonly status: 'completed'; readonly config: EasAndroidConfigSnapshot }\n | { readonly status: 'action-required'; readonly action: DeploymentRequiredAction }\n | { readonly status: 'failed'; readonly failure: DeploymentFailure };\n\nexport async function inspectEasAndroidConfig(options: {\n readonly projectRoot: string;\n readonly packageName: string;\n readonly buildProfile: string;\n readonly credentials: readonly DeploymentCredentialReference[];\n readonly resolveSecret: DeploymentSecretResolver;\n readonly runProcess: DeploymentProcessRunner;\n}): Promise<EasAndroidConfigResult> {\n if (options.buildProfile.trim().length === 0) return invalidProfile();\n const environment = await resolveEasProcessEnvironment({ ...options, target: 'android' });\n if (!environment.ok) return { status: 'action-required', action: environment.action };\n const result = await options.runProcess({\n command: 'eas',\n args: [\n 'config',\n '--platform',\n 'android',\n '--profile',\n options.buildProfile,\n '--json',\n '--non-interactive',\n ],\n cwd: options.projectRoot,\n ...(environment.env === undefined ? {} : { env: environment.env }),\n });\n if (result.exitCode !== 0) return failure('EAS_ANDROID_CONFIG_FAILED');\n let parsed: unknown;\n try {\n parsed = JSON.parse(result.stdout);\n } catch {\n return failure('EAS_ANDROID_CONFIG_INVALID');\n }\n return parseEasAndroidConfig(parsed, options.packageName);\n}\n\nfunction invalidProfile(): EasAndroidConfigResult {\n return failure('INVALID_ANDROID_BUILD_PROFILE', 'Android build profile is invalid.');\n}\n\nfunction failure(\n code: string,\n message = 'EAS Android project configuration could not be inspected.',\n): EasAndroidConfigResult {\n return { status: 'failed', failure: { code, message, target: 'android', provider: 'eas' } };\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import type { EasAndroidBuildArtifact } from './EasAndroidBuildArtifact';
2
+ export declare function parseEasAndroidBuild(value: unknown, expectedFingerprint: string, expectedProfile: string): EasAndroidBuildArtifact | null;
3
+ //# sourceMappingURL=parseEasAndroidBuild.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseEasAndroidBuild.d.ts","sourceRoot":"","sources":["../../../../src/providers/eas/android/parseEasAndroidBuild.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEzE,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,EACd,mBAAmB,EAAE,MAAM,EAC3B,eAAe,EAAE,MAAM,GACtB,uBAAuB,GAAG,IAAI,CAgBhC"}
@@ -0,0 +1,45 @@
1
+ export function parseEasAndroidBuild(value, expectedFingerprint, expectedProfile) {
2
+ if (!Array.isArray(value) || value.length !== 1 || !isRecord(value[0]))
3
+ return null;
4
+ const build = value[0];
5
+ if (build.status !== 'FINISHED' || build.platform !== 'ANDROID')
6
+ return null;
7
+ if (!isNonEmptyString(build.id) || build.buildProfile !== expectedProfile)
8
+ return null;
9
+ if (!isRecord(build.fingerprint) || build.fingerprint.hash !== expectedFingerprint)
10
+ return null;
11
+ if (!isRecord(build.artifacts) || !isHttpUrl(build.artifacts.applicationArchiveUrl))
12
+ return null;
13
+ const versionCode = parseVersionCode(build.appBuildVersion);
14
+ if (versionCode === null)
15
+ return null;
16
+ return {
17
+ buildId: build.id,
18
+ buildProfile: expectedProfile,
19
+ fingerprint: expectedFingerprint,
20
+ versionCode,
21
+ archiveUrl: build.artifacts.applicationArchiveUrl,
22
+ };
23
+ }
24
+ function parseVersionCode(value) {
25
+ const parsed = typeof value === 'number' ? value : typeof value === 'string' ? Number(value) : NaN;
26
+ return Number.isSafeInteger(parsed) && parsed > 0 ? parsed : null;
27
+ }
28
+ function isHttpUrl(value) {
29
+ if (!isNonEmptyString(value))
30
+ return false;
31
+ try {
32
+ const parsed = new URL(value);
33
+ return parsed.protocol === 'https:' || parsed.protocol === 'http:';
34
+ }
35
+ catch {
36
+ return false;
37
+ }
38
+ }
39
+ function isRecord(value) {
40
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
41
+ }
42
+ function isNonEmptyString(value) {
43
+ return typeof value === 'string' && value.trim().length > 0;
44
+ }
45
+ //# sourceMappingURL=parseEasAndroidBuild.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseEasAndroidBuild.js","sourceRoot":"","sources":["../../../../src/providers/eas/android/parseEasAndroidBuild.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,oBAAoB,CAClC,KAAc,EACd,mBAA2B,EAC3B,eAAuB;IAEvB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpF,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC7E,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,YAAY,KAAK,eAAe;QAAE,OAAO,IAAI,CAAC;IACvF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,mBAAmB;QAAE,OAAO,IAAI,CAAC;IAChG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,qBAAqB,CAAC;QAAE,OAAO,IAAI,CAAC;IACjG,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC5D,IAAI,WAAW,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,EAAE;QACjB,YAAY,EAAE,eAAe;QAC7B,WAAW,EAAE,mBAAmB;QAChC,WAAW;QACX,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,qBAAqB;KAClD,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,MAAM,MAAM,GACV,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACtF,OAAO,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACpE,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9B,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,CAAC;IACrE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9D,CAAC","sourcesContent":["import type { EasAndroidBuildArtifact } from './EasAndroidBuildArtifact';\n\nexport function parseEasAndroidBuild(\n value: unknown,\n expectedFingerprint: string,\n expectedProfile: string,\n): EasAndroidBuildArtifact | null {\n if (!Array.isArray(value) || value.length !== 1 || !isRecord(value[0])) return null;\n const build = value[0];\n if (build.status !== 'FINISHED' || build.platform !== 'ANDROID') return null;\n if (!isNonEmptyString(build.id) || build.buildProfile !== expectedProfile) return null;\n if (!isRecord(build.fingerprint) || build.fingerprint.hash !== expectedFingerprint) return null;\n if (!isRecord(build.artifacts) || !isHttpUrl(build.artifacts.applicationArchiveUrl)) return null;\n const versionCode = parseVersionCode(build.appBuildVersion);\n if (versionCode === null) return null;\n return {\n buildId: build.id,\n buildProfile: expectedProfile,\n fingerprint: expectedFingerprint,\n versionCode,\n archiveUrl: build.artifacts.applicationArchiveUrl,\n };\n}\n\nfunction parseVersionCode(value: unknown): number | null {\n const parsed =\n typeof value === 'number' ? value : typeof value === 'string' ? Number(value) : NaN;\n return Number.isSafeInteger(parsed) && parsed > 0 ? parsed : null;\n}\n\nfunction isHttpUrl(value: unknown): value is string {\n if (!isNonEmptyString(value)) return false;\n try {\n const parsed = new URL(value);\n return parsed.protocol === 'https:' || parsed.protocol === 'http:';\n } catch {\n return false;\n }\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction isNonEmptyString(value: unknown): value is string {\n return typeof value === 'string' && value.trim().length > 0;\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import type { EasAndroidConfigResult } from './inspectEasAndroidConfig';
2
+ export declare function parseEasAndroidConfig(value: unknown, expectedPackage: string): EasAndroidConfigResult;
3
+ //# sourceMappingURL=parseEasAndroidConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseEasAndroidConfig.d.ts","sourceRoot":"","sources":["../../../../src/providers/eas/android/parseEasAndroidConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAA4B,MAAM,2BAA2B,CAAC;AAElG,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,eAAe,EAAE,MAAM,GACtB,sBAAsB,CA2BxB"}
@@ -0,0 +1,59 @@
1
+ export function parseEasAndroidConfig(value, expectedPackage) {
2
+ if (!isRecord(value) || !isRecord(value.buildProfile) || !isRecord(value.appConfig)) {
3
+ return failure('EAS_ANDROID_CONFIG_INVALID');
4
+ }
5
+ const androidConfig = value.appConfig.android;
6
+ if (!isRecord(androidConfig) || !isNonEmptyString(androidConfig.package)) {
7
+ return failure('EAS_ANDROID_PACKAGE_MISSING');
8
+ }
9
+ if (androidConfig.package !== expectedPackage) {
10
+ return failure('ANDROID_PACKAGE_MISMATCH', 'EAS Android package does not match deployment config.');
11
+ }
12
+ if (!isStoreProfile(value.buildProfile)) {
13
+ return failure('EAS_ANDROID_PROFILE_NOT_STORE_READY', 'EAS Android build profile is not store-ready.');
14
+ }
15
+ const environment = normalizeEnvironment(value.buildProfile.env);
16
+ if (environment === null)
17
+ return failure('EAS_ANDROID_CONFIG_INVALID');
18
+ const config = {
19
+ packageName: androidConfig.package,
20
+ profileEnvironment: environment,
21
+ };
22
+ return { status: 'completed', config };
23
+ }
24
+ function isStoreProfile(profile) {
25
+ if (profile.developmentClient === true || profile.distribution === 'internal')
26
+ return false;
27
+ if (profile.withoutCredentials === true)
28
+ return false;
29
+ if (profile.android === undefined)
30
+ return true;
31
+ if (!isRecord(profile.android))
32
+ return false;
33
+ if (profile.android.distribution === 'internal' || profile.android.withoutCredentials === true) {
34
+ return false;
35
+ }
36
+ if (profile.android.buildType === 'apk')
37
+ return false;
38
+ return profile.android.gradleCommand === undefined;
39
+ }
40
+ function normalizeEnvironment(value) {
41
+ if (value === undefined)
42
+ return {};
43
+ if (!isRecord(value))
44
+ return null;
45
+ const entries = Object.entries(value);
46
+ if (entries.some(([, item]) => typeof item !== 'string'))
47
+ return null;
48
+ return Object.fromEntries(entries);
49
+ }
50
+ function failure(code, message = 'EAS Android configuration is invalid.') {
51
+ return { status: 'failed', failure: { code, message, target: 'android', provider: 'eas' } };
52
+ }
53
+ function isRecord(value) {
54
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
55
+ }
56
+ function isNonEmptyString(value) {
57
+ return typeof value === 'string' && value.trim().length > 0;
58
+ }
59
+ //# sourceMappingURL=parseEasAndroidConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseEasAndroidConfig.js","sourceRoot":"","sources":["../../../../src/providers/eas/android/parseEasAndroidConfig.ts"],"names":[],"mappings":"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","sourcesContent":["import type { EasAndroidConfigResult, EasAndroidConfigSnapshot } from './inspectEasAndroidConfig';\n\nexport function parseEasAndroidConfig(\n value: unknown,\n expectedPackage: string,\n): EasAndroidConfigResult {\n if (!isRecord(value) || !isRecord(value.buildProfile) || !isRecord(value.appConfig)) {\n return failure('EAS_ANDROID_CONFIG_INVALID');\n }\n const androidConfig = value.appConfig.android;\n if (!isRecord(androidConfig) || !isNonEmptyString(androidConfig.package)) {\n return failure('EAS_ANDROID_PACKAGE_MISSING');\n }\n if (androidConfig.package !== expectedPackage) {\n return failure(\n 'ANDROID_PACKAGE_MISMATCH',\n 'EAS Android package does not match deployment config.',\n );\n }\n if (!isStoreProfile(value.buildProfile)) {\n return failure(\n 'EAS_ANDROID_PROFILE_NOT_STORE_READY',\n 'EAS Android build profile is not store-ready.',\n );\n }\n const environment = normalizeEnvironment(value.buildProfile.env);\n if (environment === null) return failure('EAS_ANDROID_CONFIG_INVALID');\n const config: EasAndroidConfigSnapshot = {\n packageName: androidConfig.package,\n profileEnvironment: environment,\n };\n return { status: 'completed', config };\n}\n\nfunction isStoreProfile(profile: Record<string, unknown>): boolean {\n if (profile.developmentClient === true || profile.distribution === 'internal') return false;\n if (profile.withoutCredentials === true) return false;\n if (profile.android === undefined) return true;\n if (!isRecord(profile.android)) return false;\n if (profile.android.distribution === 'internal' || profile.android.withoutCredentials === true) {\n return false;\n }\n if (profile.android.buildType === 'apk') return false;\n return profile.android.gradleCommand === undefined;\n}\n\nfunction normalizeEnvironment(value: unknown): Readonly<Record<string, string>> | null {\n if (value === undefined) return {};\n if (!isRecord(value)) return null;\n const entries = Object.entries(value);\n if (entries.some(([, item]) => typeof item !== 'string')) return null;\n return Object.fromEntries(entries) as Readonly<Record<string, string>>;\n}\n\nfunction failure(\n code: string,\n message = 'EAS Android configuration is invalid.',\n): EasAndroidConfigResult {\n return { status: 'failed', failure: { code, message, target: 'android', provider: 'eas' } };\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction isNonEmptyString(value: unknown): value is string {\n return typeof value === 'string' && value.trim().length > 0;\n}\n"]}
@@ -0,0 +1,13 @@
1
+ import type { AppDeployTargetId } from '@ankhorage/contracts/deploy';
2
+ import type { DeploymentCapability } from '../../domain/DeploymentCapability';
3
+ import type { DeploymentProviderSetupAdapter } from '../../domain/DeploymentProviderSetupAdapter';
4
+ import type { DeploymentProcessRunner } from '../../runtime/process/DeploymentProcessRunner';
5
+ interface EasSetupOptions {
6
+ readonly projectRoot: string;
7
+ readonly runProcess: DeploymentProcessRunner;
8
+ readonly target: AppDeployTargetId;
9
+ readonly capability: DeploymentCapability;
10
+ }
11
+ export declare function createEasSetupAdapter(options: EasSetupOptions): DeploymentProviderSetupAdapter;
12
+ export {};
13
+ //# sourceMappingURL=createEasSetupAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createEasSetupAdapter.d.ts","sourceRoot":"","sources":["../../../src/providers/eas/createEasSetupAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,6CAA6C,CAAC;AAIlG,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;AAG7F,UAAU,eAAe;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,uBAAuB,CAAC;IAC7C,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;CAC3C;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,eAAe,GAAG,8BAA8B,CAK9F"}