@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
@@ -2,25 +2,26 @@ export async function resolveEasProcessEnvironment(options) {
2
2
  const reference = options.credentials.find((credential) => credential.provider === 'eas' && credential.kind === 'expo-token');
3
3
  if (reference === undefined)
4
4
  return { ok: true };
5
- let token;
5
+ const token = await safelyResolveToken(options.resolveSecret, reference);
6
+ if (token !== null && token.length > 0)
7
+ return { ok: true, env: { EXPO_TOKEN: token } };
8
+ return { ok: false, action: authenticationAction(options.target) };
9
+ }
10
+ async function safelyResolveToken(resolveSecret, reference) {
6
11
  try {
7
- token = await options.resolveSecret(reference);
12
+ return await resolveSecret(reference);
8
13
  }
9
14
  catch {
10
- token = null;
11
- }
12
- if (token !== null && token.length > 0) {
13
- return { ok: true, env: { EXPO_TOKEN: token } };
15
+ return null;
14
16
  }
17
+ }
18
+ function authenticationAction(target) {
15
19
  return {
16
- ok: false,
17
- action: {
18
- type: 'authentication',
19
- provider: 'eas',
20
- target: 'web',
21
- code: 'EAS_AUTHENTICATION_REQUIRED',
22
- message: 'EAS authentication is required for Web deployment.',
23
- },
20
+ type: 'authentication',
21
+ provider: 'eas',
22
+ target,
23
+ code: 'EAS_AUTHENTICATION_REQUIRED',
24
+ message: `EAS authentication is required for ${target} deployment.`,
24
25
  };
25
26
  }
26
27
  //# sourceMappingURL=resolveEasProcessEnvironment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolveEasProcessEnvironment.js","sourceRoot":"","sources":["../../../src/providers/eas/resolveEasProcessEnvironment.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAAC,OAGlD;IACC,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CACxC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,KAAK,KAAK,IAAI,UAAU,CAAC,IAAI,KAAK,YAAY,CAClF,CAAC;IACF,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IAEjD,IAAI,KAAoB,CAAC;IACzB,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,GAAG,IAAI,CAAC;IACf,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC;IAClD,CAAC;IACD,OAAO;QACL,EAAE,EAAE,KAAK;QACT,MAAM,EAAE;YACN,IAAI,EAAE,gBAAgB;YACtB,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,6BAA6B;YACnC,OAAO,EAAE,oDAAoD;SAC9D;KACF,CAAC;AACJ,CAAC","sourcesContent":["import type { DeploymentCredentialReference } from '../../domain/DeploymentCredentialReference';\nimport type { DeploymentAuthenticationRequiredAction } from '../../domain/DeploymentRequiredAction';\nimport type { DeploymentSecretResolver } from '../../domain/DeploymentSecretResolver';\n\nexport type EasProcessEnvironmentResult =\n | { readonly ok: true; readonly env?: Readonly<Record<string, string>> }\n | { readonly ok: false; readonly action: DeploymentAuthenticationRequiredAction };\n\nexport async function resolveEasProcessEnvironment(options: {\n readonly credentials: readonly DeploymentCredentialReference[];\n readonly resolveSecret: DeploymentSecretResolver;\n}): Promise<EasProcessEnvironmentResult> {\n const reference = options.credentials.find(\n (credential) => credential.provider === 'eas' && credential.kind === 'expo-token',\n );\n if (reference === undefined) return { ok: true };\n\n let token: string | null;\n try {\n token = await options.resolveSecret(reference);\n } catch {\n token = null;\n }\n if (token !== null && token.length > 0) {\n return { ok: true, env: { EXPO_TOKEN: token } };\n }\n return {\n ok: false,\n action: {\n type: 'authentication',\n provider: 'eas',\n target: 'web',\n code: 'EAS_AUTHENTICATION_REQUIRED',\n message: 'EAS authentication is required for Web deployment.',\n },\n };\n}\n"]}
1
+ {"version":3,"file":"resolveEasProcessEnvironment.js","sourceRoot":"","sources":["../../../src/providers/eas/resolveEasProcessEnvironment.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAAC,OAIlD;IACC,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CACxC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,KAAK,KAAK,IAAI,UAAU,CAAC,IAAI,KAAK,YAAY,CAClF,CAAC;IACF,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IAEjD,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IACzE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC;IACxF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;AACrE,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,aAAuC,EACvC,SAAwC;IAExC,IAAI,CAAC;QACH,OAAO,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAyB;IACrD,OAAO;QACL,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,KAAK;QACf,MAAM;QACN,IAAI,EAAE,6BAA6B;QACnC,OAAO,EAAE,sCAAsC,MAAM,cAAc;KACpE,CAAC;AACJ,CAAC","sourcesContent":["import type { AppDeployTargetId } from '@ankhorage/contracts/deploy';\n\nimport type { DeploymentCredentialReference } from '../../domain/DeploymentCredentialReference';\nimport type { DeploymentAuthenticationRequiredAction } from '../../domain/DeploymentRequiredAction';\nimport type { DeploymentSecretResolver } from '../../domain/DeploymentSecretResolver';\n\nexport type EasProcessEnvironmentResult =\n | { readonly ok: true; readonly env?: Readonly<Record<string, string>> }\n | { readonly ok: false; readonly action: DeploymentAuthenticationRequiredAction };\n\nexport async function resolveEasProcessEnvironment(options: {\n readonly target: AppDeployTargetId;\n readonly credentials: readonly DeploymentCredentialReference[];\n readonly resolveSecret: DeploymentSecretResolver;\n}): Promise<EasProcessEnvironmentResult> {\n const reference = options.credentials.find(\n (credential) => credential.provider === 'eas' && credential.kind === 'expo-token',\n );\n if (reference === undefined) return { ok: true };\n\n const token = await safelyResolveToken(options.resolveSecret, reference);\n if (token !== null && token.length > 0) return { ok: true, env: { EXPO_TOKEN: token } };\n return { ok: false, action: authenticationAction(options.target) };\n}\n\nasync function safelyResolveToken(\n resolveSecret: DeploymentSecretResolver,\n reference: DeploymentCredentialReference,\n): Promise<string | null> {\n try {\n return await resolveSecret(reference);\n } catch {\n return null;\n }\n}\n\nfunction authenticationAction(target: AppDeployTargetId): DeploymentAuthenticationRequiredAction {\n return {\n type: 'authentication',\n provider: 'eas',\n target,\n code: 'EAS_AUTHENTICATION_REQUIRED',\n message: `EAS authentication is required for ${target} deployment.`,\n };\n}\n"]}
@@ -0,0 +1,7 @@
1
+ export interface GooglePlayServiceAccountCredentials {
2
+ readonly clientEmail: string;
3
+ readonly privateKey: string;
4
+ }
5
+ export type GooglePlayTokenFactory = (credentials: GooglePlayServiceAccountCredentials) => Promise<string | null>;
6
+ export declare const createGooglePlayAccessToken: GooglePlayTokenFactory;
7
+ //# sourceMappingURL=GooglePlayTokenFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GooglePlayTokenFactory.d.ts","sourceRoot":"","sources":["../../../src/providers/googlePlay/GooglePlayTokenFactory.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,sBAAsB,GAAG,CACnC,WAAW,EAAE,mCAAmC,KAC7C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAE5B,eAAO,MAAM,2BAA2B,EAAE,sBAUzC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { GoogleAuth } from 'google-auth-library';
2
+ const GOOGLE_PLAY_SCOPE = 'https://www.googleapis.com/auth/androidpublisher';
3
+ export const createGooglePlayAccessToken = async (credentials) => {
4
+ const auth = new GoogleAuth({
5
+ credentials: {
6
+ client_email: credentials.clientEmail,
7
+ private_key: credentials.privateKey,
8
+ },
9
+ scopes: [GOOGLE_PLAY_SCOPE],
10
+ });
11
+ const token = await auth.getAccessToken();
12
+ return typeof token === 'string' && token.length > 0 ? token : null;
13
+ };
14
+ //# sourceMappingURL=GooglePlayTokenFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GooglePlayTokenFactory.js","sourceRoot":"","sources":["../../../src/providers/googlePlay/GooglePlayTokenFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,iBAAiB,GAAG,kDAAkD,CAAC;AAW7E,MAAM,CAAC,MAAM,2BAA2B,GAA2B,KAAK,EAAE,WAAW,EAAE,EAAE;IACvF,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC;QAC1B,WAAW,EAAE;YACX,YAAY,EAAE,WAAW,CAAC,WAAW;YACrC,WAAW,EAAE,WAAW,CAAC,UAAU;SACpC;QACD,MAAM,EAAE,CAAC,iBAAiB,CAAC;KAC5B,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACtE,CAAC,CAAC","sourcesContent":["import { GoogleAuth } from 'google-auth-library';\n\nconst GOOGLE_PLAY_SCOPE = 'https://www.googleapis.com/auth/androidpublisher';\n\nexport interface GooglePlayServiceAccountCredentials {\n readonly clientEmail: string;\n readonly privateKey: string;\n}\n\nexport type GooglePlayTokenFactory = (\n credentials: GooglePlayServiceAccountCredentials,\n) => Promise<string | null>;\n\nexport const createGooglePlayAccessToken: GooglePlayTokenFactory = async (credentials) => {\n const auth = new GoogleAuth({\n credentials: {\n client_email: credentials.clientEmail,\n private_key: credentials.privateKey,\n },\n scopes: [GOOGLE_PLAY_SCOPE],\n });\n const token = await auth.getAccessToken();\n return typeof token === 'string' && token.length > 0 ? token : null;\n};\n"]}
@@ -0,0 +1,12 @@
1
+ import type { AndroidDeploymentTrack } from '../../domain/AndroidDeploymentIntent';
2
+ interface GooglePlayReleaseState {
3
+ readonly lifecycle: string;
4
+ readonly versionCodes: readonly number[];
5
+ }
6
+ export interface GooglePlayTrackState {
7
+ readonly track: AndroidDeploymentTrack;
8
+ readonly releases: readonly GooglePlayReleaseState[];
9
+ }
10
+ export declare function parseGooglePlayTrackState(value: unknown, track: AndroidDeploymentTrack): GooglePlayTrackState | null;
11
+ export {};
12
+ //# sourceMappingURL=GooglePlayTrackState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GooglePlayTrackState.d.ts","sourceRoot":"","sources":["../../../src/providers/googlePlay/GooglePlayTrackState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAEnF,UAAU,sBAAsB;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,SAAS,sBAAsB,EAAE,CAAC;CACtD;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,sBAAsB,GAC5B,oBAAoB,GAAG,IAAI,CAS7B"}
@@ -0,0 +1,35 @@
1
+ export function parseGooglePlayTrackState(value, track) {
2
+ if (!isRecord(value) || !Array.isArray(value.releases))
3
+ return null;
4
+ const releases = [];
5
+ for (const release of value.releases) {
6
+ const parsed = parseRelease(release);
7
+ if (parsed === null)
8
+ return null;
9
+ releases.push(parsed);
10
+ }
11
+ return { track, releases };
12
+ }
13
+ function parseRelease(value) {
14
+ if (!isRecord(value) || !isNonEmptyString(value.releaseLifecycleState))
15
+ return null;
16
+ if (!Array.isArray(value.activeArtifacts))
17
+ return null;
18
+ const versionCodes = [];
19
+ for (const artifact of value.activeArtifacts) {
20
+ if (!isRecord(artifact) || !isVersionCode(artifact.versionCode))
21
+ return null;
22
+ versionCodes.push(artifact.versionCode);
23
+ }
24
+ return { lifecycle: value.releaseLifecycleState, versionCodes };
25
+ }
26
+ function isVersionCode(value) {
27
+ return typeof value === 'number' && Number.isSafeInteger(value) && value > 0;
28
+ }
29
+ function isRecord(value) {
30
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
31
+ }
32
+ function isNonEmptyString(value) {
33
+ return typeof value === 'string' && value.trim().length > 0;
34
+ }
35
+ //# sourceMappingURL=GooglePlayTrackState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GooglePlayTrackState.js","sourceRoot":"","sources":["../../../src/providers/googlePlay/GooglePlayTrackState.ts"],"names":[],"mappings":"AAYA,MAAM,UAAU,yBAAyB,CACvC,KAAc,EACd,KAA6B;IAE7B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACpE,MAAM,QAAQ,GAA6B,EAAE,CAAC;IAC9C,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACjC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAC7B,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,qBAAqB,CAAC;QAAE,OAAO,IAAI,CAAC;IACpF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC;QAAE,OAAO,IAAI,CAAC;IACvD,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC;YAAE,OAAO,IAAI,CAAC;QAC7E,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,qBAAqB,EAAE,YAAY,EAAE,CAAC;AAClE,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;AAC/E,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 { AndroidDeploymentTrack } from '../../domain/AndroidDeploymentIntent';\n\ninterface GooglePlayReleaseState {\n readonly lifecycle: string;\n readonly versionCodes: readonly number[];\n}\n\nexport interface GooglePlayTrackState {\n readonly track: AndroidDeploymentTrack;\n readonly releases: readonly GooglePlayReleaseState[];\n}\n\nexport function parseGooglePlayTrackState(\n value: unknown,\n track: AndroidDeploymentTrack,\n): GooglePlayTrackState | null {\n if (!isRecord(value) || !Array.isArray(value.releases)) return null;\n const releases: GooglePlayReleaseState[] = [];\n for (const release of value.releases) {\n const parsed = parseRelease(release);\n if (parsed === null) return null;\n releases.push(parsed);\n }\n return { track, releases };\n}\n\nfunction parseRelease(value: unknown): GooglePlayReleaseState | null {\n if (!isRecord(value) || !isNonEmptyString(value.releaseLifecycleState)) return null;\n if (!Array.isArray(value.activeArtifacts)) return null;\n const versionCodes: number[] = [];\n for (const artifact of value.activeArtifacts) {\n if (!isRecord(artifact) || !isVersionCode(artifact.versionCode)) return null;\n versionCodes.push(artifact.versionCode);\n }\n return { lifecycle: value.releaseLifecycleState, versionCodes };\n}\n\nfunction isVersionCode(value: unknown): value is number {\n return typeof value === 'number' && Number.isSafeInteger(value) && value > 0;\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,15 @@
1
+ export interface GooglePlayRequest {
2
+ readonly method: 'GET' | 'POST' | 'PUT';
3
+ readonly url: string;
4
+ readonly token: string;
5
+ readonly contentType?: string;
6
+ readonly body?: string | Blob;
7
+ }
8
+ interface GooglePlayResponse {
9
+ readonly status: number;
10
+ readonly body: string;
11
+ }
12
+ export type GooglePlayTransport = (request: GooglePlayRequest) => Promise<GooglePlayResponse>;
13
+ export declare const fetchGooglePlay: GooglePlayTransport;
14
+ export {};
15
+ //# sourceMappingURL=GooglePlayTransport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GooglePlayTransport.d.ts","sourceRoot":"","sources":["../../../src/providers/googlePlay/GooglePlayTransport.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;IACxC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAE9F,eAAO,MAAM,eAAe,EAAE,mBAS7B,CAAC"}
@@ -0,0 +1,12 @@
1
+ export const fetchGooglePlay = async (request) => {
2
+ const headers = { Authorization: `Bearer ${request.token}` };
3
+ if (request.contentType !== undefined)
4
+ headers['Content-Type'] = request.contentType;
5
+ const response = await fetch(request.url, {
6
+ method: request.method,
7
+ headers,
8
+ ...(request.body === undefined ? {} : { body: request.body }),
9
+ });
10
+ return { status: response.status, body: await response.text() };
11
+ };
12
+ //# sourceMappingURL=GooglePlayTransport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GooglePlayTransport.js","sourceRoot":"","sources":["../../../src/providers/googlePlay/GooglePlayTransport.ts"],"names":[],"mappings":"AAeA,MAAM,CAAC,MAAM,eAAe,GAAwB,KAAK,EAAE,OAAO,EAAE,EAAE;IACpE,MAAM,OAAO,GAA2B,EAAE,aAAa,EAAE,UAAU,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;IACrF,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;QAAE,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IACrF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACxC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO;QACP,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;KAC9D,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;AAClE,CAAC,CAAC","sourcesContent":["export interface GooglePlayRequest {\n readonly method: 'GET' | 'POST' | 'PUT';\n readonly url: string;\n readonly token: string;\n readonly contentType?: string;\n readonly body?: string | Blob;\n}\n\ninterface GooglePlayResponse {\n readonly status: number;\n readonly body: string;\n}\n\nexport type GooglePlayTransport = (request: GooglePlayRequest) => Promise<GooglePlayResponse>;\n\nexport const fetchGooglePlay: GooglePlayTransport = async (request) => {\n const headers: Record<string, string> = { Authorization: `Bearer ${request.token}` };\n if (request.contentType !== undefined) headers['Content-Type'] = request.contentType;\n const response = await fetch(request.url, {\n method: request.method,\n headers,\n ...(request.body === undefined ? {} : { body: request.body }),\n });\n return { status: response.status, body: await response.text() };\n};\n"]}
@@ -0,0 +1,8 @@
1
+ import type { GooglePlayTransport } from './GooglePlayTransport';
2
+ export declare function commitGooglePlayEdit(options: {
3
+ readonly packageName: string;
4
+ readonly editId: string;
5
+ readonly token: string;
6
+ readonly request: GooglePlayTransport;
7
+ }): Promise<boolean>;
8
+ //# sourceMappingURL=commitGooglePlayEdit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commitGooglePlayEdit.d.ts","sourceRoot":"","sources":["../../../src/providers/googlePlay/commitGooglePlayEdit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAGjE,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;CACvC,GAAG,OAAO,CAAC,OAAO,CAAC,CAanB"}
@@ -0,0 +1,17 @@
1
+ import { googlePlayCommitEditUrl } from './googlePlayUrls';
2
+ export async function commitGooglePlayEdit(options) {
3
+ try {
4
+ const response = await options.request({
5
+ method: 'POST',
6
+ url: googlePlayCommitEditUrl(options.packageName, options.editId),
7
+ token: options.token,
8
+ contentType: 'application/json',
9
+ body: '{}',
10
+ });
11
+ return response.status >= 200 && response.status < 300;
12
+ }
13
+ catch {
14
+ return false;
15
+ }
16
+ }
17
+ //# sourceMappingURL=commitGooglePlayEdit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commitGooglePlayEdit.js","sourceRoot":"","sources":["../../../src/providers/googlePlay/commitGooglePlayEdit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAK1C;IACC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC;YACrC,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,uBAAuB,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC;YACjE,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,WAAW,EAAE,kBAAkB;YAC/B,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC","sourcesContent":["import type { GooglePlayTransport } from './GooglePlayTransport';\nimport { googlePlayCommitEditUrl } from './googlePlayUrls';\n\nexport async function commitGooglePlayEdit(options: {\n readonly packageName: string;\n readonly editId: string;\n readonly token: string;\n readonly request: GooglePlayTransport;\n}): Promise<boolean> {\n try {\n const response = await options.request({\n method: 'POST',\n url: googlePlayCommitEditUrl(options.packageName, options.editId),\n token: options.token,\n contentType: 'application/json',\n body: '{}',\n });\n return response.status >= 200 && response.status < 300;\n } catch {\n return false;\n }\n}\n"]}
@@ -0,0 +1,6 @@
1
+ import type { DeploymentProviderSetupAdapter } from '../../domain/DeploymentProviderSetupAdapter';
2
+ import type { GooglePlayTokenFactory } from './GooglePlayTokenFactory';
3
+ export declare function createGooglePlaySetupAdapter(options: {
4
+ readonly createToken: GooglePlayTokenFactory;
5
+ }): DeploymentProviderSetupAdapter;
6
+ //# sourceMappingURL=createGooglePlaySetupAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createGooglePlaySetupAdapter.d.ts","sourceRoot":"","sources":["../../../src/providers/googlePlay/createGooglePlaySetupAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,6CAA6C,CAAC;AAElG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGvE,wBAAgB,4BAA4B,CAAC,OAAO,EAAE;IACpD,QAAQ,CAAC,WAAW,EAAE,sBAAsB,CAAC;CAC9C,GAAG,8BAA8B,CAWjC"}
@@ -0,0 +1,32 @@
1
+ import { resolveGooglePlayAccessToken } from './resolveGooglePlayAccessToken';
2
+ export function createGooglePlaySetupAdapter(options) {
3
+ return {
4
+ provider: 'google-play',
5
+ inspectSetup: async (context) => {
6
+ const access = await resolveGooglePlayAccessToken({
7
+ ...context,
8
+ createToken: options.createToken,
9
+ });
10
+ return access.ok ? ready() : required(access.action);
11
+ },
12
+ };
13
+ }
14
+ function ready() {
15
+ return {
16
+ provider: 'google-play',
17
+ authentication: { status: 'authenticated' },
18
+ capabilities: [{ capability: 'publish', status: 'available' }],
19
+ provisioning: [],
20
+ };
21
+ }
22
+ function required(action) {
23
+ return {
24
+ provider: 'google-play',
25
+ authentication: { status: 'required', action },
26
+ capabilities: [
27
+ { capability: 'publish', status: 'unavailable', reason: 'Authentication required.' },
28
+ ],
29
+ provisioning: [{ type: 'authentication', action }],
30
+ };
31
+ }
32
+ //# sourceMappingURL=createGooglePlaySetupAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createGooglePlaySetupAdapter.js","sourceRoot":"","sources":["../../../src/providers/googlePlay/createGooglePlaySetupAdapter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAE9E,MAAM,UAAU,4BAA4B,CAAC,OAE5C;IACC,OAAO;QACL,QAAQ,EAAE,aAAa;QACvB,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,MAAM,4BAA4B,CAAC;gBAChD,GAAG,OAAO;gBACV,WAAW,EAAE,OAAO,CAAC,WAAW;aACjC,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvD,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,KAAK;IACZ,OAAO;QACL,QAAQ,EAAE,aAAa;QACvB,cAAc,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE;QAC3C,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QAC9D,YAAY,EAAE,EAAE;KACjB,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CACf,MAGW;IAEX,OAAO;QACL,QAAQ,EAAE,aAAa;QACvB,cAAc,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE;QAC9C,YAAY,EAAE;YACZ,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,0BAA0B,EAAE;SACrF;QACD,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC;KACnD,CAAC;AACJ,CAAC","sourcesContent":["import type { DeploymentProviderSetupAdapter } from '../../domain/DeploymentProviderSetupAdapter';\nimport type { DeploymentProviderSetupInspection } from '../../domain/DeploymentProviderSetupInspection';\nimport type { GooglePlayTokenFactory } from './GooglePlayTokenFactory';\nimport { resolveGooglePlayAccessToken } from './resolveGooglePlayAccessToken';\n\nexport function createGooglePlaySetupAdapter(options: {\n readonly createToken: GooglePlayTokenFactory;\n}): DeploymentProviderSetupAdapter {\n return {\n provider: 'google-play',\n inspectSetup: async (context) => {\n const access = await resolveGooglePlayAccessToken({\n ...context,\n createToken: options.createToken,\n });\n return access.ok ? ready() : required(access.action);\n },\n };\n}\n\nfunction ready(): DeploymentProviderSetupInspection {\n return {\n provider: 'google-play',\n authentication: { status: 'authenticated' },\n capabilities: [{ capability: 'publish', status: 'available' }],\n provisioning: [],\n };\n}\n\nfunction required(\n action: Extract<\n Awaited<ReturnType<typeof resolveGooglePlayAccessToken>>,\n { readonly ok: false }\n >['action'],\n): DeploymentProviderSetupInspection {\n return {\n provider: 'google-play',\n authentication: { status: 'required', action },\n capabilities: [\n { capability: 'publish', status: 'unavailable', reason: 'Authentication required.' },\n ],\n provisioning: [{ type: 'authentication', action }],\n };\n}\n"]}
@@ -0,0 +1,9 @@
1
+ interface DownloadedAndroidArchive {
2
+ readonly directory: string;
3
+ readonly filePath: string;
4
+ }
5
+ export type AndroidArchiveDownloader = (url: string) => Promise<DownloadedAndroidArchive | null>;
6
+ export declare const downloadAndroidArchive: AndroidArchiveDownloader;
7
+ export declare function cleanupAndroidArchive(directory: string): Promise<void>;
8
+ export {};
9
+ //# sourceMappingURL=downloadAndroidArchive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"downloadAndroidArchive.d.ts","sourceRoot":"","sources":["../../../src/providers/googlePlay/downloadAndroidArchive.ts"],"names":[],"mappings":"AAIA,UAAU,wBAAwB;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,wBAAwB,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAAC;AAEjG,eAAO,MAAM,sBAAsB,EAAE,wBAiBpC,CAAC;AAEF,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5E"}
@@ -0,0 +1,28 @@
1
+ import { promises as fs } from 'node:fs';
2
+ import { tmpdir } from 'node:os';
3
+ import path from 'node:path';
4
+ export const downloadAndroidArchive = async (url) => {
5
+ let response;
6
+ try {
7
+ response = await fetch(url);
8
+ }
9
+ catch {
10
+ return null;
11
+ }
12
+ if (!response.ok)
13
+ return null;
14
+ const directory = await fs.mkdtemp(path.join(tmpdir(), 'ankh-android-'));
15
+ const filePath = path.join(directory, 'application.aab');
16
+ try {
17
+ await Bun.write(filePath, response);
18
+ return { directory, filePath };
19
+ }
20
+ catch {
21
+ await fs.rm(directory, { recursive: true, force: true });
22
+ return null;
23
+ }
24
+ };
25
+ export async function cleanupAndroidArchive(directory) {
26
+ await fs.rm(directory, { recursive: true, force: true });
27
+ }
28
+ //# sourceMappingURL=downloadAndroidArchive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"downloadAndroidArchive.js","sourceRoot":"","sources":["../../../src/providers/googlePlay/downloadAndroidArchive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAS7B,MAAM,CAAC,MAAM,sBAAsB,GAA6B,KAAK,EAAE,GAAG,EAAE,EAAE;IAC5E,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAC9B,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;IACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IACzD,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACpC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,SAAiB;IAC3D,MAAM,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3D,CAAC","sourcesContent":["import { promises as fs } from 'node:fs';\nimport { tmpdir } from 'node:os';\nimport path from 'node:path';\n\ninterface DownloadedAndroidArchive {\n readonly directory: string;\n readonly filePath: string;\n}\n\nexport type AndroidArchiveDownloader = (url: string) => Promise<DownloadedAndroidArchive | null>;\n\nexport const downloadAndroidArchive: AndroidArchiveDownloader = async (url) => {\n let response: Response;\n try {\n response = await fetch(url);\n } catch {\n return null;\n }\n if (!response.ok) return null;\n const directory = await fs.mkdtemp(path.join(tmpdir(), 'ankh-android-'));\n const filePath = path.join(directory, 'application.aab');\n try {\n await Bun.write(filePath, response);\n return { directory, filePath };\n } catch {\n await fs.rm(directory, { recursive: true, force: true });\n return null;\n }\n};\n\nexport async function cleanupAndroidArchive(directory: string): Promise<void> {\n await fs.rm(directory, { recursive: true, force: true });\n}\n"]}
@@ -0,0 +1,6 @@
1
+ import type { AndroidDeploymentTrack } from '../../domain/AndroidDeploymentIntent';
2
+ export declare function googlePlayInsertEditUrl(packageName: string): string;
3
+ export declare function googlePlayBundleUploadUrl(packageName: string, editId: string): string;
4
+ export declare function googlePlayTrackEditUrl(packageName: string, editId: string, track: AndroidDeploymentTrack): string;
5
+ export declare function googlePlayCommitEditUrl(packageName: string, editId: string): string;
6
+ //# sourceMappingURL=googlePlayUrls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"googlePlayUrls.d.ts","sourceRoot":"","sources":["../../../src/providers/googlePlay/googlePlayUrls.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAKnF,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAErF;AAED,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,sBAAsB,GAC5B,MAAM,CAER;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnF"}
@@ -0,0 +1,18 @@
1
+ const API = 'https://androidpublisher.googleapis.com/androidpublisher/v3';
2
+ const UPLOAD = 'https://androidpublisher.googleapis.com/upload/androidpublisher/v3';
3
+ export function googlePlayInsertEditUrl(packageName) {
4
+ return `${API}/applications/${segment(packageName)}/edits`;
5
+ }
6
+ export function googlePlayBundleUploadUrl(packageName, editId) {
7
+ return `${UPLOAD}/applications/${segment(packageName)}/edits/${segment(editId)}/bundles`;
8
+ }
9
+ export function googlePlayTrackEditUrl(packageName, editId, track) {
10
+ return `${API}/applications/${segment(packageName)}/edits/${segment(editId)}/tracks/${segment(track)}`;
11
+ }
12
+ export function googlePlayCommitEditUrl(packageName, editId) {
13
+ return `${API}/applications/${segment(packageName)}/edits/${segment(editId)}:commit`;
14
+ }
15
+ function segment(value) {
16
+ return encodeURIComponent(value);
17
+ }
18
+ //# sourceMappingURL=googlePlayUrls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"googlePlayUrls.js","sourceRoot":"","sources":["../../../src/providers/googlePlay/googlePlayUrls.ts"],"names":[],"mappings":"AAEA,MAAM,GAAG,GAAG,6DAA6D,CAAC;AAC1E,MAAM,MAAM,GAAG,oEAAoE,CAAC;AAEpF,MAAM,UAAU,uBAAuB,CAAC,WAAmB;IACzD,OAAO,GAAG,GAAG,iBAAiB,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,WAAmB,EAAE,MAAc;IAC3E,OAAO,GAAG,MAAM,iBAAiB,OAAO,CAAC,WAAW,CAAC,UAAU,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;AAC3F,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,WAAmB,EACnB,MAAc,EACd,KAA6B;IAE7B,OAAO,GAAG,GAAG,iBAAiB,OAAO,CAAC,WAAW,CAAC,UAAU,OAAO,CAAC,MAAM,CAAC,WAAW,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;AACzG,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,WAAmB,EAAE,MAAc;IACzE,OAAO,GAAG,GAAG,iBAAiB,OAAO,CAAC,WAAW,CAAC,UAAU,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;AACvF,CAAC;AAED,SAAS,OAAO,CAAC,KAAa;IAC5B,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC","sourcesContent":["import type { AndroidDeploymentTrack } from '../../domain/AndroidDeploymentIntent';\n\nconst API = 'https://androidpublisher.googleapis.com/androidpublisher/v3';\nconst UPLOAD = 'https://androidpublisher.googleapis.com/upload/androidpublisher/v3';\n\nexport function googlePlayInsertEditUrl(packageName: string): string {\n return `${API}/applications/${segment(packageName)}/edits`;\n}\n\nexport function googlePlayBundleUploadUrl(packageName: string, editId: string): string {\n return `${UPLOAD}/applications/${segment(packageName)}/edits/${segment(editId)}/bundles`;\n}\n\nexport function googlePlayTrackEditUrl(\n packageName: string,\n editId: string,\n track: AndroidDeploymentTrack,\n): string {\n return `${API}/applications/${segment(packageName)}/edits/${segment(editId)}/tracks/${segment(track)}`;\n}\n\nexport function googlePlayCommitEditUrl(packageName: string, editId: string): string {\n return `${API}/applications/${segment(packageName)}/edits/${segment(editId)}:commit`;\n}\n\nfunction segment(value: string): string {\n return encodeURIComponent(value);\n}\n"]}
@@ -0,0 +1,7 @@
1
+ import type { GooglePlayTransport } from './GooglePlayTransport';
2
+ export declare function insertGooglePlayEdit(options: {
3
+ readonly packageName: string;
4
+ readonly token: string;
5
+ readonly request: GooglePlayTransport;
6
+ }): Promise<string | null>;
7
+ //# sourceMappingURL=insertGooglePlayEdit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insertGooglePlayEdit.d.ts","sourceRoot":"","sources":["../../../src/providers/googlePlay/insertGooglePlayEdit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAGjE,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;CACvC,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAoBzB"}
@@ -0,0 +1,32 @@
1
+ import { googlePlayInsertEditUrl } from './googlePlayUrls';
2
+ export async function insertGooglePlayEdit(options) {
3
+ let response;
4
+ try {
5
+ response = await options.request({
6
+ method: 'POST',
7
+ url: googlePlayInsertEditUrl(options.packageName),
8
+ token: options.token,
9
+ contentType: 'application/json',
10
+ body: '{}',
11
+ });
12
+ }
13
+ catch {
14
+ return null;
15
+ }
16
+ if (response.status < 200 || response.status >= 300)
17
+ return null;
18
+ try {
19
+ const parsed = JSON.parse(response.body);
20
+ return isRecord(parsed) && isNonEmptyString(parsed.id) ? parsed.id : null;
21
+ }
22
+ catch {
23
+ return null;
24
+ }
25
+ }
26
+ function isRecord(value) {
27
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
28
+ }
29
+ function isNonEmptyString(value) {
30
+ return typeof value === 'string' && value.trim().length > 0;
31
+ }
32
+ //# sourceMappingURL=insertGooglePlayEdit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insertGooglePlayEdit.js","sourceRoot":"","sources":["../../../src/providers/googlePlay/insertGooglePlayEdit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAI1C;IACC,IAAI,QAAQ,CAAC;IACb,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC;YAC/B,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,uBAAuB,CAAC,OAAO,CAAC,WAAW,CAAC;YACjD,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,WAAW,EAAE,kBAAkB;YAC/B,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,IAAI,CAAC;IACjE,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClD,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,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 { GooglePlayTransport } from './GooglePlayTransport';\nimport { googlePlayInsertEditUrl } from './googlePlayUrls';\n\nexport async function insertGooglePlayEdit(options: {\n readonly packageName: string;\n readonly token: string;\n readonly request: GooglePlayTransport;\n}): Promise<string | null> {\n let response;\n try {\n response = await options.request({\n method: 'POST',\n url: googlePlayInsertEditUrl(options.packageName),\n token: options.token,\n contentType: 'application/json',\n body: '{}',\n });\n } catch {\n return null;\n }\n if (response.status < 200 || response.status >= 300) return null;\n try {\n const parsed: unknown = JSON.parse(response.body);\n return isRecord(parsed) && isNonEmptyString(parsed.id) ? parsed.id : null;\n } catch {\n return null;\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,27 @@
1
+ import type { AndroidDeploymentTrack } from '../../domain/AndroidDeploymentIntent';
2
+ import type { DeploymentCredentialReference } from '../../domain/DeploymentCredentialReference';
3
+ import type { DeploymentFailure } from '../../domain/DeploymentFailure';
4
+ import type { DeploymentRequiredAction } from '../../domain/DeploymentRequiredAction';
5
+ import type { DeploymentSecretResolver } from '../../domain/DeploymentSecretResolver';
6
+ import type { GooglePlayTokenFactory } from './GooglePlayTokenFactory';
7
+ import type { GooglePlayTrackState } from './GooglePlayTrackState';
8
+ import type { GooglePlayTransport } from './GooglePlayTransport';
9
+ export type GooglePlayTrackInspectionResult = {
10
+ readonly status: 'completed';
11
+ readonly state: GooglePlayTrackState;
12
+ } | {
13
+ readonly status: 'action-required';
14
+ readonly action: DeploymentRequiredAction;
15
+ } | {
16
+ readonly status: 'failed';
17
+ readonly failure: DeploymentFailure;
18
+ };
19
+ export declare function inspectGooglePlayTrack(options: {
20
+ readonly packageName: string;
21
+ readonly track: AndroidDeploymentTrack;
22
+ readonly credentials: readonly DeploymentCredentialReference[];
23
+ readonly resolveSecret: DeploymentSecretResolver;
24
+ readonly createToken: GooglePlayTokenFactory;
25
+ readonly request: GooglePlayTransport;
26
+ }): Promise<GooglePlayTrackInspectionResult>;
27
+ //# sourceMappingURL=inspectGooglePlayTrack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspectGooglePlayTrack.d.ts","sourceRoot":"","sources":["../../../src/providers/googlePlay/inspectGooglePlayTrack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AACnF,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAChG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAGjE,MAAM,MAAM,+BAA+B,GACvC;IAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAA;CAAE,GACtE;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,sBAAsB,CAAC,OAAO,EAAE;IACpD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,SAAS,6BAA6B,EAAE,CAAC;IAC/D,QAAQ,CAAC,aAAa,EAAE,wBAAwB,CAAC;IACjD,QAAQ,CAAC,WAAW,EAAE,sBAAsB,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;CACvC,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAY3C"}
@@ -0,0 +1,80 @@
1
+ import { parseGooglePlayTrackState } from './GooglePlayTrackState';
2
+ import { resolveGooglePlayAccessToken } from './resolveGooglePlayAccessToken';
3
+ export async function inspectGooglePlayTrack(options) {
4
+ const access = await resolveGooglePlayAccessToken(options);
5
+ if (!access.ok)
6
+ return { status: 'action-required', action: access.action };
7
+ const response = await safelyRequest(options, access.token);
8
+ if (response === null)
9
+ return failure('GOOGLE_PLAY_INSPECTION_FAILED');
10
+ if (response.status === 401)
11
+ return { status: 'action-required', action: authenticationAction() };
12
+ if (response.status === 403)
13
+ return { status: 'action-required', action: permissionAction() };
14
+ if (response.status === 404)
15
+ return { status: 'action-required', action: bootstrapAction() };
16
+ if (response.status < 200 || response.status >= 300)
17
+ return failure('GOOGLE_PLAY_INSPECTION_FAILED');
18
+ const state = parseResponse(response.body, options.track);
19
+ return state === null ? failure('GOOGLE_PLAY_INVALID_RESULT') : { status: 'completed', state };
20
+ }
21
+ async function safelyRequest(options, token) {
22
+ try {
23
+ return await options.request({ method: 'GET', url: trackUrl(options), token });
24
+ }
25
+ catch {
26
+ return null;
27
+ }
28
+ }
29
+ function trackUrl(options) {
30
+ const app = encodeURIComponent(options.packageName);
31
+ const track = encodeURIComponent(options.track);
32
+ return `https://androidpublisher.googleapis.com/androidpublisher/v3/applications/${app}/tracks/${track}/releases`;
33
+ }
34
+ function parseResponse(body, track) {
35
+ try {
36
+ return parseGooglePlayTrackState(JSON.parse(body), track);
37
+ }
38
+ catch {
39
+ return null;
40
+ }
41
+ }
42
+ function authenticationAction() {
43
+ return {
44
+ type: 'authentication',
45
+ provider: 'google-play',
46
+ target: 'android',
47
+ code: 'GOOGLE_PLAY_AUTHENTICATION_REQUIRED',
48
+ message: 'Google Play authentication is required for Android deployment.',
49
+ };
50
+ }
51
+ function permissionAction() {
52
+ return {
53
+ type: 'manual-action',
54
+ provider: 'google-play',
55
+ target: 'android',
56
+ code: 'GOOGLE_PLAY_PERMISSION_REQUIRED',
57
+ message: 'Grant the service account permission to manage this application in Google Play Console.',
58
+ };
59
+ }
60
+ function bootstrapAction() {
61
+ return {
62
+ type: 'manual-action',
63
+ provider: 'google-play',
64
+ target: 'android',
65
+ code: 'GOOGLE_PLAY_APP_BOOTSTRAP_REQUIRED',
66
+ message: 'Create and bootstrap the Android application in Google Play Console before API delivery.',
67
+ };
68
+ }
69
+ function failure(code) {
70
+ return {
71
+ status: 'failed',
72
+ failure: {
73
+ code,
74
+ message: 'Google Play release state could not be inspected.',
75
+ target: 'android',
76
+ provider: 'google-play',
77
+ },
78
+ };
79
+ }
80
+ //# sourceMappingURL=inspectGooglePlayTrack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspectGooglePlayTrack.js","sourceRoot":"","sources":["../../../src/providers/googlePlay/inspectGooglePlayTrack.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAO9E,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,OAO5C;IACC,MAAM,MAAM,GAAG,MAAM,4BAA4B,CAAC,OAAO,CAAC,CAAC;IAC3D,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IAC5E,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5D,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,OAAO,CAAC,+BAA+B,CAAC,CAAC;IACvE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;QAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE,CAAC;IAClG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;QAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,CAAC;IAC9F,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;QAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,CAAC;IAC7F,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG;QACjD,OAAO,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC1D,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AACjG,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,OAAqD,EAAE,KAAa;IAC/F,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACjF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,OAGjB;IACC,MAAM,GAAG,GAAG,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChD,OAAO,4EAA4E,GAAG,WAAW,KAAK,WAAW,CAAC;AACpH,CAAC;AAED,SAAS,aAAa,CAAC,IAAY,EAAE,KAA6B;IAChE,IAAI,CAAC;QACH,OAAO,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB;IAC3B,OAAO;QACL,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,aAAa;QACvB,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,qCAAqC;QAC3C,OAAO,EAAE,gEAAgE;KAC1E,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,aAAa;QACvB,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,iCAAiC;QACvC,OAAO,EACL,yFAAyF;KAC5F,CAAC;AACJ,CAAC;AAED,SAAS,eAAe;IACtB,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,aAAa;QACvB,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,oCAAoC;QAC1C,OAAO,EACL,0FAA0F;KAC7F,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO;QACL,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE;YACP,IAAI;YACJ,OAAO,EAAE,mDAAmD;YAC5D,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,aAAa;SACxB;KACF,CAAC;AACJ,CAAC","sourcesContent":["import type { AndroidDeploymentTrack } from '../../domain/AndroidDeploymentIntent';\nimport 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 { GooglePlayTokenFactory } from './GooglePlayTokenFactory';\nimport type { GooglePlayTrackState } from './GooglePlayTrackState';\nimport { parseGooglePlayTrackState } from './GooglePlayTrackState';\nimport type { GooglePlayTransport } from './GooglePlayTransport';\nimport { resolveGooglePlayAccessToken } from './resolveGooglePlayAccessToken';\n\nexport type GooglePlayTrackInspectionResult =\n | { readonly status: 'completed'; readonly state: GooglePlayTrackState }\n | { readonly status: 'action-required'; readonly action: DeploymentRequiredAction }\n | { readonly status: 'failed'; readonly failure: DeploymentFailure };\n\nexport async function inspectGooglePlayTrack(options: {\n readonly packageName: string;\n readonly track: AndroidDeploymentTrack;\n readonly credentials: readonly DeploymentCredentialReference[];\n readonly resolveSecret: DeploymentSecretResolver;\n readonly createToken: GooglePlayTokenFactory;\n readonly request: GooglePlayTransport;\n}): Promise<GooglePlayTrackInspectionResult> {\n const access = await resolveGooglePlayAccessToken(options);\n if (!access.ok) return { status: 'action-required', action: access.action };\n const response = await safelyRequest(options, access.token);\n if (response === null) return failure('GOOGLE_PLAY_INSPECTION_FAILED');\n if (response.status === 401) return { status: 'action-required', action: authenticationAction() };\n if (response.status === 403) return { status: 'action-required', action: permissionAction() };\n if (response.status === 404) return { status: 'action-required', action: bootstrapAction() };\n if (response.status < 200 || response.status >= 300)\n return failure('GOOGLE_PLAY_INSPECTION_FAILED');\n const state = parseResponse(response.body, options.track);\n return state === null ? failure('GOOGLE_PLAY_INVALID_RESULT') : { status: 'completed', state };\n}\n\nasync function safelyRequest(options: Parameters<typeof inspectGooglePlayTrack>[0], token: string) {\n try {\n return await options.request({ method: 'GET', url: trackUrl(options), token });\n } catch {\n return null;\n }\n}\n\nfunction trackUrl(options: {\n readonly packageName: string;\n readonly track: AndroidDeploymentTrack;\n}) {\n const app = encodeURIComponent(options.packageName);\n const track = encodeURIComponent(options.track);\n return `https://androidpublisher.googleapis.com/androidpublisher/v3/applications/${app}/tracks/${track}/releases`;\n}\n\nfunction parseResponse(body: string, track: AndroidDeploymentTrack): GooglePlayTrackState | null {\n try {\n return parseGooglePlayTrackState(JSON.parse(body), track);\n } catch {\n return null;\n }\n}\n\nfunction authenticationAction(): DeploymentRequiredAction {\n return {\n type: 'authentication',\n provider: 'google-play',\n target: 'android',\n code: 'GOOGLE_PLAY_AUTHENTICATION_REQUIRED',\n message: 'Google Play authentication is required for Android deployment.',\n };\n}\n\nfunction permissionAction(): DeploymentRequiredAction {\n return {\n type: 'manual-action',\n provider: 'google-play',\n target: 'android',\n code: 'GOOGLE_PLAY_PERMISSION_REQUIRED',\n message:\n 'Grant the service account permission to manage this application in Google Play Console.',\n };\n}\n\nfunction bootstrapAction(): DeploymentRequiredAction {\n return {\n type: 'manual-action',\n provider: 'google-play',\n target: 'android',\n code: 'GOOGLE_PLAY_APP_BOOTSTRAP_REQUIRED',\n message:\n 'Create and bootstrap the Android application in Google Play Console before API delivery.',\n };\n}\n\nfunction failure(code: string): GooglePlayTrackInspectionResult {\n return {\n status: 'failed',\n failure: {\n code,\n message: 'Google Play release state could not be inspected.',\n target: 'android',\n provider: 'google-play',\n },\n };\n}\n"]}
@@ -0,0 +1,32 @@
1
+ import type { AndroidDeploymentIntent } from '../../domain/AndroidDeploymentIntent';
2
+ import type { AndroidDeploymentPublication } from '../../domain/AndroidDeploymentPublication';
3
+ import type { DeploymentCredentialReference } from '../../domain/DeploymentCredentialReference';
4
+ import type { DeploymentFailure } from '../../domain/DeploymentFailure';
5
+ import type { DeploymentRequiredAction } from '../../domain/DeploymentRequiredAction';
6
+ import type { DeploymentSecretResolver } from '../../domain/DeploymentSecretResolver';
7
+ import type { EasAndroidBuildArtifact } from '../eas/android/EasAndroidBuildArtifact';
8
+ import type { AndroidArchiveDownloader } from './downloadAndroidArchive';
9
+ import type { GooglePlayTokenFactory } from './GooglePlayTokenFactory';
10
+ import type { GooglePlayTransport } from './GooglePlayTransport';
11
+ export type GooglePlayPublishResult = {
12
+ readonly status: 'completed';
13
+ readonly publication: AndroidDeploymentPublication;
14
+ } | {
15
+ readonly status: 'action-required';
16
+ readonly action: DeploymentRequiredAction;
17
+ } | {
18
+ readonly status: 'failed';
19
+ readonly failure: DeploymentFailure;
20
+ };
21
+ export declare function publishAndroidToGooglePlay(options: {
22
+ readonly packageName: string;
23
+ readonly revision: string;
24
+ readonly intent: AndroidDeploymentIntent;
25
+ readonly build: EasAndroidBuildArtifact;
26
+ readonly credentials: readonly DeploymentCredentialReference[];
27
+ readonly resolveSecret: DeploymentSecretResolver;
28
+ readonly createToken: GooglePlayTokenFactory;
29
+ readonly request: GooglePlayTransport;
30
+ readonly downloadArchive: AndroidArchiveDownloader;
31
+ }): Promise<GooglePlayPublishResult>;
32
+ //# sourceMappingURL=publishAndroidToGooglePlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publishAndroidToGooglePlay.d.ts","sourceRoot":"","sources":["../../../src/providers/googlePlay/publishAndroidToGooglePlay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AAC9F,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAChG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AAEtF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAMjE,MAAM,MAAM,uBAAuB,GAC/B;IAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,4BAA4B,CAAA;CAAE,GACpF;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,0BAA0B,CAAC,OAAO,EAAE;IACxD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,uBAAuB,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,SAAS,6BAA6B,EAAE,CAAC;IAC/D,QAAQ,CAAC,aAAa,EAAE,wBAAwB,CAAC;IACjD,QAAQ,CAAC,WAAW,EAAE,sBAAsB,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,QAAQ,CAAC,eAAe,EAAE,wBAAwB,CAAC;CACpD,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAUnC"}