@expo/build-tools 1.0.205 → 1.0.206

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 (232) hide show
  1. package/dist/android/credentials.js +1 -2
  2. package/dist/android/credentials.js.map +1 -1
  3. package/dist/android/expoUpdates.js +5 -5
  4. package/dist/android/expoUpdates.js.map +1 -1
  5. package/dist/android/gradle.d.ts +0 -1
  6. package/dist/android/gradle.js +3 -4
  7. package/dist/android/gradle.js.map +1 -1
  8. package/dist/android/gradleConfig.js +1 -2
  9. package/dist/android/gradleConfig.js.map +1 -1
  10. package/dist/buildErrors/detectError.js +1 -2
  11. package/dist/buildErrors/detectError.js.map +1 -1
  12. package/dist/builders/android.js +1 -1
  13. package/dist/builders/android.js.map +1 -1
  14. package/dist/builders/common.js +1 -2
  15. package/dist/builders/common.js.map +1 -1
  16. package/dist/builders/custom.js +1 -2
  17. package/dist/builders/custom.js.map +1 -1
  18. package/dist/builders/ios.js +1 -1
  19. package/dist/builders/ios.js.map +1 -1
  20. package/dist/common/eagerBundle.d.ts +0 -1
  21. package/dist/common/eagerBundle.js +2 -3
  22. package/dist/common/eagerBundle.js.map +1 -1
  23. package/dist/common/easBuildInternal.d.ts +0 -1
  24. package/dist/common/easBuildInternal.js +2 -3
  25. package/dist/common/easBuildInternal.js.map +1 -1
  26. package/dist/common/git.d.ts +0 -1
  27. package/dist/common/git.js +1 -2
  28. package/dist/common/git.js.map +1 -1
  29. package/dist/common/installDependencies.js +2 -3
  30. package/dist/common/installDependencies.js.map +1 -1
  31. package/dist/common/prebuild.d.ts +0 -1
  32. package/dist/common/prebuild.js +1 -2
  33. package/dist/common/prebuild.js.map +1 -1
  34. package/dist/common/projectSources.js +2 -3
  35. package/dist/common/projectSources.js.map +1 -1
  36. package/dist/common/setup.js +1 -2
  37. package/dist/common/setup.js.map +1 -1
  38. package/dist/context.d.ts +0 -1
  39. package/dist/customBuildContext.d.ts +0 -1
  40. package/dist/gcs/LoggerStream.d.ts +0 -2
  41. package/dist/gcs/client.d.ts +0 -1
  42. package/dist/gcs/retry.js +1 -2
  43. package/dist/gcs/retry.js.map +1 -1
  44. package/dist/generic.js +1 -2
  45. package/dist/generic.js.map +1 -1
  46. package/dist/ios/configure.js +2 -3
  47. package/dist/ios/configure.js.map +1 -1
  48. package/dist/ios/credentials/distributionCertificate.js +2 -3
  49. package/dist/ios/credentials/distributionCertificate.js.map +1 -1
  50. package/dist/ios/credentials/provisioningProfile.d.ts +0 -1
  51. package/dist/ios/expoUpdates.js +5 -5
  52. package/dist/ios/expoUpdates.js.map +1 -1
  53. package/dist/ios/fastfile.js +1 -2
  54. package/dist/ios/fastfile.js.map +1 -1
  55. package/dist/ios/fastlane.d.ts +0 -1
  56. package/dist/ios/fastlane.js +3 -4
  57. package/dist/ios/fastlane.js.map +1 -1
  58. package/dist/ios/gymfile.js +2 -3
  59. package/dist/ios/gymfile.js.map +1 -1
  60. package/dist/ios/pod.js +1 -2
  61. package/dist/ios/pod.js.map +1 -1
  62. package/dist/ios/resign.js +1 -2
  63. package/dist/ios/resign.js.map +1 -1
  64. package/dist/ios/resolve.js +3 -4
  65. package/dist/ios/resolve.js.map +1 -1
  66. package/dist/ios/tvos.js +1 -2
  67. package/dist/ios/tvos.js.map +1 -1
  68. package/dist/ios/xcodeBuildLogs.d.ts +0 -1
  69. package/dist/ios/xcodeBuildLogs.js +2 -3
  70. package/dist/ios/xcodeBuildLogs.js.map +1 -1
  71. package/dist/ios/xcodeEnv.js +1 -2
  72. package/dist/ios/xcodeEnv.js.map +1 -1
  73. package/dist/ios/xcpretty.d.ts +0 -1
  74. package/dist/steps/easFunctionGroups.js +1 -2
  75. package/dist/steps/easFunctionGroups.js.map +1 -1
  76. package/dist/steps/easFunctions.js +1 -2
  77. package/dist/steps/easFunctions.js.map +1 -1
  78. package/dist/steps/functionGroups/build.js +1 -2
  79. package/dist/steps/functionGroups/build.js.map +1 -1
  80. package/dist/steps/functionGroups/maestroTest.js +1 -2
  81. package/dist/steps/functionGroups/maestroTest.js.map +1 -1
  82. package/dist/steps/functions/calculateEASUpdateRuntimeVersion.js +1 -2
  83. package/dist/steps/functions/calculateEASUpdateRuntimeVersion.js.map +1 -1
  84. package/dist/steps/functions/checkout.js +1 -2
  85. package/dist/steps/functions/checkout.js.map +1 -1
  86. package/dist/steps/functions/configureAndroidVersion.js +1 -2
  87. package/dist/steps/functions/configureAndroidVersion.js.map +1 -1
  88. package/dist/steps/functions/configureEASUpdateIfInstalled.js +1 -2
  89. package/dist/steps/functions/configureEASUpdateIfInstalled.js.map +1 -1
  90. package/dist/steps/functions/configureIosCredentials.js +1 -2
  91. package/dist/steps/functions/configureIosCredentials.js.map +1 -1
  92. package/dist/steps/functions/configureIosVersion.js +1 -2
  93. package/dist/steps/functions/configureIosVersion.js.map +1 -1
  94. package/dist/steps/functions/createSubmissionEntity.js +1 -2
  95. package/dist/steps/functions/createSubmissionEntity.js.map +1 -1
  96. package/dist/steps/functions/downloadArtifact.d.ts +0 -1
  97. package/dist/steps/functions/downloadArtifact.js +2 -3
  98. package/dist/steps/functions/downloadArtifact.js.map +1 -1
  99. package/dist/steps/functions/downloadBuild.d.ts +0 -1
  100. package/dist/steps/functions/downloadBuild.js +2 -3
  101. package/dist/steps/functions/downloadBuild.js.map +1 -1
  102. package/dist/steps/functions/eagerBundle.js +1 -2
  103. package/dist/steps/functions/eagerBundle.js.map +1 -1
  104. package/dist/steps/functions/findAndUploadBuildArtifacts.js +1 -2
  105. package/dist/steps/functions/findAndUploadBuildArtifacts.js.map +1 -1
  106. package/dist/steps/functions/generateGymfileFromTemplate.js +1 -2
  107. package/dist/steps/functions/generateGymfileFromTemplate.js.map +1 -1
  108. package/dist/steps/functions/getCredentialsForBuildTriggeredByGitHubIntegration.js +1 -2
  109. package/dist/steps/functions/getCredentialsForBuildTriggeredByGitHubIntegration.js.map +1 -1
  110. package/dist/steps/functions/injectAndroidCredentials.js +1 -2
  111. package/dist/steps/functions/injectAndroidCredentials.js.map +1 -1
  112. package/dist/steps/functions/installMaestro.js +14 -16
  113. package/dist/steps/functions/installMaestro.js.map +1 -1
  114. package/dist/steps/functions/installNodeModules.js +2 -3
  115. package/dist/steps/functions/installNodeModules.js.map +1 -1
  116. package/dist/steps/functions/installPods.js +1 -2
  117. package/dist/steps/functions/installPods.js.map +1 -1
  118. package/dist/steps/functions/internalMaestroTest.js +2 -3
  119. package/dist/steps/functions/internalMaestroTest.js.map +1 -1
  120. package/dist/steps/functions/prebuild.js +1 -2
  121. package/dist/steps/functions/prebuild.js.map +1 -1
  122. package/dist/steps/functions/repack.d.ts +0 -1
  123. package/dist/steps/functions/repack.js +3 -4
  124. package/dist/steps/functions/repack.js.map +1 -1
  125. package/dist/steps/functions/resolveAppleTeamIdFromCredentials.js +1 -2
  126. package/dist/steps/functions/resolveAppleTeamIdFromCredentials.js.map +1 -1
  127. package/dist/steps/functions/resolveBuildConfig.d.ts +0 -1
  128. package/dist/steps/functions/resolveBuildConfig.js +2 -3
  129. package/dist/steps/functions/resolveBuildConfig.js.map +1 -1
  130. package/dist/steps/functions/runFastlane.js +1 -2
  131. package/dist/steps/functions/runFastlane.js.map +1 -1
  132. package/dist/steps/functions/runGradle.js +1 -2
  133. package/dist/steps/functions/runGradle.js.map +1 -1
  134. package/dist/steps/functions/sendSlackMessage.js +1 -2
  135. package/dist/steps/functions/sendSlackMessage.js.map +1 -1
  136. package/dist/steps/functions/startAndroidEmulator.js +1 -2
  137. package/dist/steps/functions/startAndroidEmulator.js.map +1 -1
  138. package/dist/steps/functions/startIosSimulator.js +1 -2
  139. package/dist/steps/functions/startIosSimulator.js.map +1 -1
  140. package/dist/steps/functions/uploadArtifact.js +1 -2
  141. package/dist/steps/functions/uploadArtifact.js.map +1 -1
  142. package/dist/steps/functions/useNpmToken.js +1 -2
  143. package/dist/steps/functions/useNpmToken.js.map +1 -1
  144. package/dist/steps/utils/android/expoUpdates.js +4 -4
  145. package/dist/steps/utils/android/expoUpdates.js.map +1 -1
  146. package/dist/steps/utils/android/gradle.d.ts +0 -1
  147. package/dist/steps/utils/android/gradle.js +2 -3
  148. package/dist/steps/utils/android/gradle.js.map +1 -1
  149. package/dist/steps/utils/android/gradleConfig.d.ts +0 -1
  150. package/dist/steps/utils/android/gradleConfig.js +2 -3
  151. package/dist/steps/utils/android/gradleConfig.js.map +1 -1
  152. package/dist/steps/utils/expoUpdates.d.ts +0 -1
  153. package/dist/steps/utils/expoUpdates.js +2 -3
  154. package/dist/steps/utils/expoUpdates.js.map +1 -1
  155. package/dist/steps/utils/ios/configure.d.ts +0 -1
  156. package/dist/steps/utils/ios/configure.js +3 -4
  157. package/dist/steps/utils/ios/configure.js.map +1 -1
  158. package/dist/steps/utils/ios/credentials/distributionCertificate.js +2 -3
  159. package/dist/steps/utils/ios/credentials/distributionCertificate.js.map +1 -1
  160. package/dist/steps/utils/ios/credentials/keychain.d.ts +0 -1
  161. package/dist/steps/utils/ios/credentials/manager.d.ts +0 -1
  162. package/dist/steps/utils/ios/credentials/provisioningProfile.d.ts +0 -2
  163. package/dist/steps/utils/ios/expoUpdates.js +4 -4
  164. package/dist/steps/utils/ios/expoUpdates.js.map +1 -1
  165. package/dist/steps/utils/ios/fastlane.d.ts +0 -1
  166. package/dist/steps/utils/ios/fastlane.js +2 -3
  167. package/dist/steps/utils/ios/fastlane.js.map +1 -1
  168. package/dist/steps/utils/ios/resolve.js +2 -3
  169. package/dist/steps/utils/ios/resolve.js.map +1 -1
  170. package/dist/steps/utils/ios/tvos.js +1 -2
  171. package/dist/steps/utils/ios/tvos.js.map +1 -1
  172. package/dist/steps/utils/ios/xcpretty.d.ts +0 -1
  173. package/dist/utils/AndroidEmulatorUtils.d.ts +0 -2
  174. package/dist/utils/IosSimulatorUtils.d.ts +0 -1
  175. package/dist/utils/appConfig.d.ts +0 -1
  176. package/dist/utils/appConfig.js +1 -2
  177. package/dist/utils/appConfig.js.map +1 -1
  178. package/dist/utils/artifacts.d.ts +0 -1
  179. package/dist/utils/artifacts.js +5 -5
  180. package/dist/utils/artifacts.js.map +1 -1
  181. package/dist/utils/diffFingerprintsAsync.d.ts +0 -1
  182. package/dist/utils/diffFingerprintsAsync.js +1 -2
  183. package/dist/utils/diffFingerprintsAsync.js.map +1 -1
  184. package/dist/utils/environmentSecrets.js +1 -2
  185. package/dist/utils/environmentSecrets.js.map +1 -1
  186. package/dist/utils/expoFingerprintCli.js +3 -3
  187. package/dist/utils/expoFingerprintCli.js.map +1 -1
  188. package/dist/utils/expoUpdates.d.ts +0 -1
  189. package/dist/utils/expoUpdates.js +9 -10
  190. package/dist/utils/expoUpdates.js.map +1 -1
  191. package/dist/utils/expoUpdatesCli.js +2 -2
  192. package/dist/utils/expoUpdatesCli.js.map +1 -1
  193. package/dist/utils/files.js +2 -3
  194. package/dist/utils/files.js.map +1 -1
  195. package/dist/utils/findMaestroPathsFlowsToExecuteAsync.d.ts +0 -1
  196. package/dist/utils/findMaestroPathsFlowsToExecuteAsync.js +1 -2
  197. package/dist/utils/findMaestroPathsFlowsToExecuteAsync.js.map +1 -1
  198. package/dist/utils/fingerprint.js +1 -2
  199. package/dist/utils/fingerprint.js.map +1 -1
  200. package/dist/utils/getExpoUpdatesPackageVersionIfInstalledAsync.d.ts +0 -1
  201. package/dist/utils/getExpoUpdatesPackageVersionIfInstalledAsync.js +1 -1
  202. package/dist/utils/getExpoUpdatesPackageVersionIfInstalledAsync.js.map +1 -1
  203. package/dist/utils/hooks.js +2 -2
  204. package/dist/utils/hooks.js.map +1 -1
  205. package/dist/utils/npmrc.d.ts +0 -1
  206. package/dist/utils/npmrc.js +1 -2
  207. package/dist/utils/npmrc.js.map +1 -1
  208. package/dist/utils/outputs.d.ts +0 -1
  209. package/dist/utils/outputs.js +2 -3
  210. package/dist/utils/outputs.js.map +1 -1
  211. package/dist/utils/packageManager.js +6 -6
  212. package/dist/utils/packageManager.js.map +1 -1
  213. package/dist/utils/prepareBuildExecutable.js +1 -2
  214. package/dist/utils/prepareBuildExecutable.js.map +1 -1
  215. package/dist/utils/processes.js +1 -2
  216. package/dist/utils/processes.js.map +1 -1
  217. package/dist/utils/project.js +3 -4
  218. package/dist/utils/project.js.map +1 -1
  219. package/dist/utils/promiseRetryWithCondition.js +1 -2
  220. package/dist/utils/promiseRetryWithCondition.js.map +1 -1
  221. package/dist/utils/resolveRuntimeVersionAsync.d.ts +0 -1
  222. package/dist/utils/resolveRuntimeVersionAsync.js +1 -2
  223. package/dist/utils/resolveRuntimeVersionAsync.js.map +1 -1
  224. package/dist/utils/retry.d.ts +0 -1
  225. package/dist/utils/retry.js +2 -3
  226. package/dist/utils/retry.js.map +1 -1
  227. package/dist/utils/retryOnDNSFailure.js +2 -3
  228. package/dist/utils/retryOnDNSFailure.js.map +1 -1
  229. package/dist/utils/turtleFetch.d.ts +0 -1
  230. package/dist/utils/turtleFetch.js +2 -2
  231. package/dist/utils/turtleFetch.js.map +1 -1
  232. package/package.json +9 -9
@@ -1 +1 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/utils/project.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAExB,sEAAoF;AACpF,wDAA0B;AAE1B,4DAA8E;AAE9E;;GAEG;AACI,KAAK,UAAU,wBAAwB,CAAC,UAAkB;IAC/D,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IACxD,MAAM,cAAc,GAAG,cAAI,CAAC,IAAI,CAAC,IAAA,oCAAmB,EAAC,UAAU,CAAC,EAAE,aAAa,CAAC,CAAC;IACjF,OAAO,CAAC,MAAM,kBAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,kBAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;AACpF,CAAC;AAJD,4DAIC;AAED,SAAgB,iBAAiB,CAAC,EAChC,cAAc,EACd,IAAI,EACJ,OAAO,GAKR;IACC,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IACvC,IAAI,cAAc,KAAK,+BAAc,CAAC,GAAG,EAAE,CAAC;QAC1C,OAAO,IAAA,sBAAK,EAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;SAAM,IAAI,cAAc,KAAK,+BAAc,CAAC,IAAI,EAAE,CAAC;QAClD,OAAO,IAAA,sBAAK,EAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;SAAM,IAAI,cAAc,KAAK,+BAAc,CAAC,IAAI,EAAE,CAAC;QAClD,OAAO,IAAA,sBAAK,EAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;SAAM,IAAI,cAAc,KAAK,+BAAc,CAAC,GAAG,EAAE,CAAC;QACjD,OAAO,IAAA,sBAAK,EAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,gCAAgC,cAAc,EAAE,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AArBD,8CAqBC;AAED,SAAgB,eAAe,CAAC,UAAkB;IAChD,MAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAC9D,IAAI,CAAC,kBAAE,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,kCAAkC,UAAU,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,CAAC;QACH,OAAO,kBAAE,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,yCAAyC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC;AAVD,0CAUC","sourcesContent":["import path from 'path';\n\nimport spawn, { SpawnOptions, SpawnPromise, SpawnResult } from '@expo/turtle-spawn';\nimport fs from 'fs-extra';\n\nimport { findPackagerRootDir, PackageManager } from '../utils/packageManager';\n\n/**\n * check if .yarnrc.yml exists in the project dir or in the workspace root dir\n */\nexport async function isUsingModernYarnVersion(projectDir: string): Promise<boolean> {\n const yarnrcPath = path.join(projectDir, '.yarnrc.yml');\n const yarnrcRootPath = path.join(findPackagerRootDir(projectDir), '.yarnrc.yml');\n return (await fs.pathExists(yarnrcPath)) || (await fs.pathExists(yarnrcRootPath));\n}\n\nexport function runExpoCliCommand({\n packageManager,\n args,\n options,\n}: {\n packageManager: PackageManager;\n args: string[];\n options: SpawnOptions;\n}): SpawnPromise<SpawnResult> {\n const argsWithExpo = ['expo', ...args];\n if (packageManager === PackageManager.NPM) {\n return spawn('npx', argsWithExpo, options);\n } else if (packageManager === PackageManager.YARN) {\n return spawn('yarn', argsWithExpo, options);\n } else if (packageManager === PackageManager.PNPM) {\n return spawn('pnpm', argsWithExpo, options);\n } else if (packageManager === PackageManager.BUN) {\n return spawn('bun', argsWithExpo, options);\n } else {\n throw new Error(`Unsupported package manager: ${packageManager}`);\n }\n}\n\nexport function readPackageJson(projectDir: string): any {\n const packageJsonPath = path.join(projectDir, 'package.json');\n if (!fs.pathExistsSync(packageJsonPath)) {\n throw new Error(`package.json does not exist in ${projectDir}`);\n }\n try {\n return fs.readJSONSync(packageJsonPath);\n } catch (err: any) {\n throw new Error(`Failed to parse or read package.json: ${err.message}`);\n }\n}\n"]}
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/utils/project.ts"],"names":[],"mappings":";;;;;AAUA,4DAIC;AAED,8CAqBC;AAED,0CAUC;AAjDD,gDAAwB;AAExB,sEAAoF;AACpF,wDAA0B;AAE1B,4DAA8E;AAE9E;;GAEG;AACI,KAAK,UAAU,wBAAwB,CAAC,UAAkB;IAC/D,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IACxD,MAAM,cAAc,GAAG,cAAI,CAAC,IAAI,CAAC,IAAA,oCAAmB,EAAC,UAAU,CAAC,EAAE,aAAa,CAAC,CAAC;IACjF,OAAO,CAAC,MAAM,kBAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,kBAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,SAAgB,iBAAiB,CAAC,EAChC,cAAc,EACd,IAAI,EACJ,OAAO,GAKR;IACC,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IACvC,IAAI,cAAc,KAAK,+BAAc,CAAC,GAAG,EAAE,CAAC;QAC1C,OAAO,IAAA,sBAAK,EAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;SAAM,IAAI,cAAc,KAAK,+BAAc,CAAC,IAAI,EAAE,CAAC;QAClD,OAAO,IAAA,sBAAK,EAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;SAAM,IAAI,cAAc,KAAK,+BAAc,CAAC,IAAI,EAAE,CAAC;QAClD,OAAO,IAAA,sBAAK,EAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;SAAM,IAAI,cAAc,KAAK,+BAAc,CAAC,GAAG,EAAE,CAAC;QACjD,OAAO,IAAA,sBAAK,EAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,gCAAgC,cAAc,EAAE,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED,SAAgB,eAAe,CAAC,UAAkB;IAChD,MAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAC9D,IAAI,CAAC,kBAAE,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,kCAAkC,UAAU,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,CAAC;QACH,OAAO,kBAAE,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,yCAAyC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC","sourcesContent":["import path from 'path';\n\nimport spawn, { SpawnOptions, SpawnPromise, SpawnResult } from '@expo/turtle-spawn';\nimport fs from 'fs-extra';\n\nimport { findPackagerRootDir, PackageManager } from '../utils/packageManager';\n\n/**\n * check if .yarnrc.yml exists in the project dir or in the workspace root dir\n */\nexport async function isUsingModernYarnVersion(projectDir: string): Promise<boolean> {\n const yarnrcPath = path.join(projectDir, '.yarnrc.yml');\n const yarnrcRootPath = path.join(findPackagerRootDir(projectDir), '.yarnrc.yml');\n return (await fs.pathExists(yarnrcPath)) || (await fs.pathExists(yarnrcRootPath));\n}\n\nexport function runExpoCliCommand({\n packageManager,\n args,\n options,\n}: {\n packageManager: PackageManager;\n args: string[];\n options: SpawnOptions;\n}): SpawnPromise<SpawnResult> {\n const argsWithExpo = ['expo', ...args];\n if (packageManager === PackageManager.NPM) {\n return spawn('npx', argsWithExpo, options);\n } else if (packageManager === PackageManager.YARN) {\n return spawn('yarn', argsWithExpo, options);\n } else if (packageManager === PackageManager.PNPM) {\n return spawn('pnpm', argsWithExpo, options);\n } else if (packageManager === PackageManager.BUN) {\n return spawn('bun', argsWithExpo, options);\n } else {\n throw new Error(`Unsupported package manager: ${packageManager}`);\n }\n}\n\nexport function readPackageJson(projectDir: string): any {\n const packageJsonPath = path.join(projectDir, 'package.json');\n if (!fs.pathExistsSync(packageJsonPath)) {\n throw new Error(`package.json does not exist in ${projectDir}`);\n }\n try {\n return fs.readJSONSync(packageJsonPath);\n } catch (err: any) {\n throw new Error(`Failed to parse or read package.json: ${err.message}`);\n }\n}\n"]}
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.promiseRetryWithCondition = void 0;
6
+ exports.promiseRetryWithCondition = promiseRetryWithCondition;
7
7
  const promise_retry_1 = __importDefault(require("promise-retry"));
8
8
  function promiseRetryWithCondition(fn, retryConditionFn, options = { retries: 3, factor: 2 }) {
9
9
  return (...funcArgs) => (0, promise_retry_1.default)(async (retry) => {
@@ -18,5 +18,4 @@ function promiseRetryWithCondition(fn, retryConditionFn, options = { retries: 3,
18
18
  }
19
19
  }, options);
20
20
  }
21
- exports.promiseRetryWithCondition = promiseRetryWithCondition;
22
21
  //# sourceMappingURL=promiseRetryWithCondition.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"promiseRetryWithCondition.js","sourceRoot":"","sources":["../../src/utils/promiseRetryWithCondition.ts"],"names":[],"mappings":";;;;;;AAAA,kEAAyC;AAGzC,SAAgB,yBAAyB,CACvC,EAAO,EACP,gBAAyC,EACzC,UAA4B,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;IAErD,OAAO,CAAC,GAAG,QAAQ,EAAE,EAAE,CACrB,IAAA,uBAAY,EAAkB,KAAK,EAAE,KAAK,EAAE,EAAE;QAC5C,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxB,KAAK,CAAC,CAAC,CAAC,CAAC;YACX,CAAC;YACD,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,EAAE,OAAO,CAAC,CAAC;AAChB,CAAC;AAhBD,8DAgBC","sourcesContent":["import promiseRetry from 'promise-retry';\nimport { OperationOptions } from 'retry';\n\nexport function promiseRetryWithCondition<TFn extends (...args: any[]) => Promise<any>>(\n fn: TFn,\n retryConditionFn: (error: any) => boolean,\n options: OperationOptions = { retries: 3, factor: 2 }\n): (...funcArgs: Parameters<TFn>) => Promise<ReturnType<TFn>> {\n return (...funcArgs) =>\n promiseRetry<ReturnType<TFn>>(async (retry) => {\n try {\n return await fn(...funcArgs);\n } catch (e) {\n if (retryConditionFn(e)) {\n retry(e);\n }\n throw e;\n }\n }, options);\n}\n"]}
1
+ {"version":3,"file":"promiseRetryWithCondition.js","sourceRoot":"","sources":["../../src/utils/promiseRetryWithCondition.ts"],"names":[],"mappings":";;;;;AAGA,8DAgBC;AAnBD,kEAAyC;AAGzC,SAAgB,yBAAyB,CACvC,EAAO,EACP,gBAAyC,EACzC,UAA4B,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;IAErD,OAAO,CAAC,GAAG,QAAQ,EAAE,EAAE,CACrB,IAAA,uBAAY,EAAkB,KAAK,EAAE,KAAK,EAAE,EAAE;QAC5C,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxB,KAAK,CAAC,CAAC,CAAC,CAAC;YACX,CAAC;YACD,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,EAAE,OAAO,CAAC,CAAC;AAChB,CAAC","sourcesContent":["import promiseRetry from 'promise-retry';\nimport { OperationOptions } from 'retry';\n\nexport function promiseRetryWithCondition<TFn extends (...args: any[]) => Promise<any>>(\n fn: TFn,\n retryConditionFn: (error: any) => boolean,\n options: OperationOptions = { retries: 3, factor: 2 }\n): (...funcArgs: Parameters<TFn>) => Promise<ReturnType<TFn>> {\n return (...funcArgs) =>\n promiseRetry<ReturnType<TFn>>(async (retry) => {\n try {\n return await fn(...funcArgs);\n } catch (e) {\n if (retryConditionFn(e)) {\n retry(e);\n }\n throw e;\n }\n }, options);\n}\n"]}
@@ -1,4 +1,3 @@
1
- /// <reference types="bunyan" />
2
1
  import { ExpoConfig } from '@expo/config';
3
2
  import { bunyan } from '@expo/logger';
4
3
  import { Workflow } from '@expo/eas-build-job';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolveRuntimeVersionAsync = void 0;
3
+ exports.resolveRuntimeVersionAsync = resolveRuntimeVersionAsync;
4
4
  const config_plugins_1 = require("@expo/config-plugins");
5
5
  const expoUpdatesCli_1 = require("./expoUpdatesCli");
6
6
  const expoUpdates_1 = require("./expoUpdates");
@@ -38,5 +38,4 @@ async function resolveRuntimeVersionAsync({ exp, platform, workflow, projectDir,
38
38
  throw e;
39
39
  }
40
40
  }
41
- exports.resolveRuntimeVersionAsync = resolveRuntimeVersionAsync;
42
41
  //# sourceMappingURL=resolveRuntimeVersionAsync.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolveRuntimeVersionAsync.js","sourceRoot":"","sources":["../../src/utils/resolveRuntimeVersionAsync.ts"],"names":[],"mappings":";;;AACA,yDAA+C;AAK/C,qDAA8F;AAC9F,+CAAyF;AAElF,KAAK,UAAU,0BAA0B,CAAC,EAC/C,GAAG,EACH,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,MAAM,EACN,yBAAyB,EACzB,GAAG,GASJ;;IAIC,IAAI,CAAC,IAAA,sEAAwD,EAAC,yBAAyB,CAAC,EAAE,CAAC;QACzF,MAAM,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;QAChF,+FAA+F;QAC/F,qEAAqE;QACrE,OAAO;YACL,cAAc,EAAE,MAAM,wBAAO,CAAC,8BAA8B,CAAC,UAAU,EAAE,GAAG,EAAE,QAAQ,CAAC;YACvF,kBAAkB,EAAE,IAAI;SACzB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,8EAA8E,CAAC,CAAC;QAE7F,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEpD,MAAM,gCAAgC,GAAG,MAAM,IAAA,wCAAuB,EACpE,UAAU,EACV,CAAC,wBAAwB,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,EACxF;YACE,GAAG;SACJ,CACF,CAAC;QACF,MAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAE1E,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAE/C,OAAO;YACL,cAAc,EAAE,MAAA,oBAAoB,CAAC,cAAc,mCAAI,IAAI;YAC3D,kBAAkB,EAAE,MAAA,oBAAoB,CAAC,kBAAkB,mCAAI,IAAI;SACpE,CAAC;IACJ,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,uFAAuF;QACvF,IAAI,CAAC,YAAY,kDAAiC,EAAE,CAAC;YACnD,MAAM,CAAC,KAAK,CACV,uFAAuF,CAAC,CAAC,OAAO,EAAE,CACnG,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC;AA7DD,gEA6DC","sourcesContent":["import { ExpoConfig } from '@expo/config';\nimport { Updates } from '@expo/config-plugins';\nimport { bunyan } from '@expo/logger';\nimport { Workflow } from '@expo/eas-build-job';\nimport { BuildStepEnv } from '@expo/steps';\n\nimport { ExpoUpdatesCLIModuleNotFoundError, expoUpdatesCommandAsync } from './expoUpdatesCli';\nimport { isModernExpoUpdatesCLIWithRuntimeVersionCommandSupported } from './expoUpdates';\n\nexport async function resolveRuntimeVersionAsync({\n exp,\n platform,\n workflow,\n projectDir,\n logger,\n expoUpdatesPackageVersion,\n env,\n}: {\n exp: ExpoConfig;\n platform: 'ios' | 'android';\n workflow: Workflow;\n projectDir: string;\n logger: bunyan;\n expoUpdatesPackageVersion: string;\n env: BuildStepEnv;\n}): Promise<{\n runtimeVersion: string | null;\n fingerprintSources: object[] | null;\n} | null> {\n if (!isModernExpoUpdatesCLIWithRuntimeVersionCommandSupported(expoUpdatesPackageVersion)) {\n logger.debug('Using expo-updates config plugin for runtime version resolution');\n // fall back to the previous behavior (using the @expo/config-plugins eas-cli dependency rather\n // than the versioned @expo/config-plugins dependency in the project)\n return {\n runtimeVersion: await Updates.getRuntimeVersionNullableAsync(projectDir, exp, platform),\n fingerprintSources: null,\n };\n }\n\n try {\n logger.debug('Using expo-updates runtimeversion:resolve CLI for runtime version resolution');\n\n const extraArgs = logger.debug() ? ['--debug'] : [];\n\n const resolvedRuntimeVersionJSONResult = await expoUpdatesCommandAsync(\n projectDir,\n ['runtimeversion:resolve', '--platform', platform, '--workflow', workflow, ...extraArgs],\n {\n env,\n }\n );\n const runtimeVersionResult = JSON.parse(resolvedRuntimeVersionJSONResult);\n\n logger.debug('runtimeversion:resolve output:');\n logger.debug(resolvedRuntimeVersionJSONResult);\n\n return {\n runtimeVersion: runtimeVersionResult.runtimeVersion ?? null,\n fingerprintSources: runtimeVersionResult.fingerprintSources ?? null,\n };\n } catch (e: any) {\n // if expo-updates is not installed, there's no need for a runtime version in the build\n if (e instanceof ExpoUpdatesCLIModuleNotFoundError) {\n logger.error(\n `Error when resolving runtime version using expo-updates runtimeversion:resolve CLI: ${e.message}`\n );\n return null;\n }\n throw e;\n }\n}\n"]}
1
+ {"version":3,"file":"resolveRuntimeVersionAsync.js","sourceRoot":"","sources":["../../src/utils/resolveRuntimeVersionAsync.ts"],"names":[],"mappings":";;AASA,gEA6DC;AArED,yDAA+C;AAK/C,qDAA8F;AAC9F,+CAAyF;AAElF,KAAK,UAAU,0BAA0B,CAAC,EAC/C,GAAG,EACH,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,MAAM,EACN,yBAAyB,EACzB,GAAG,GASJ;;IAIC,IAAI,CAAC,IAAA,sEAAwD,EAAC,yBAAyB,CAAC,EAAE,CAAC;QACzF,MAAM,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;QAChF,+FAA+F;QAC/F,qEAAqE;QACrE,OAAO;YACL,cAAc,EAAE,MAAM,wBAAO,CAAC,8BAA8B,CAAC,UAAU,EAAE,GAAG,EAAE,QAAQ,CAAC;YACvF,kBAAkB,EAAE,IAAI;SACzB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,8EAA8E,CAAC,CAAC;QAE7F,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEpD,MAAM,gCAAgC,GAAG,MAAM,IAAA,wCAAuB,EACpE,UAAU,EACV,CAAC,wBAAwB,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,EACxF;YACE,GAAG;SACJ,CACF,CAAC;QACF,MAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAE1E,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAE/C,OAAO;YACL,cAAc,EAAE,MAAA,oBAAoB,CAAC,cAAc,mCAAI,IAAI;YAC3D,kBAAkB,EAAE,MAAA,oBAAoB,CAAC,kBAAkB,mCAAI,IAAI;SACpE,CAAC;IACJ,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,uFAAuF;QACvF,IAAI,CAAC,YAAY,kDAAiC,EAAE,CAAC;YACnD,MAAM,CAAC,KAAK,CACV,uFAAuF,CAAC,CAAC,OAAO,EAAE,CACnG,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC","sourcesContent":["import { ExpoConfig } from '@expo/config';\nimport { Updates } from '@expo/config-plugins';\nimport { bunyan } from '@expo/logger';\nimport { Workflow } from '@expo/eas-build-job';\nimport { BuildStepEnv } from '@expo/steps';\n\nimport { ExpoUpdatesCLIModuleNotFoundError, expoUpdatesCommandAsync } from './expoUpdatesCli';\nimport { isModernExpoUpdatesCLIWithRuntimeVersionCommandSupported } from './expoUpdates';\n\nexport async function resolveRuntimeVersionAsync({\n exp,\n platform,\n workflow,\n projectDir,\n logger,\n expoUpdatesPackageVersion,\n env,\n}: {\n exp: ExpoConfig;\n platform: 'ios' | 'android';\n workflow: Workflow;\n projectDir: string;\n logger: bunyan;\n expoUpdatesPackageVersion: string;\n env: BuildStepEnv;\n}): Promise<{\n runtimeVersion: string | null;\n fingerprintSources: object[] | null;\n} | null> {\n if (!isModernExpoUpdatesCLIWithRuntimeVersionCommandSupported(expoUpdatesPackageVersion)) {\n logger.debug('Using expo-updates config plugin for runtime version resolution');\n // fall back to the previous behavior (using the @expo/config-plugins eas-cli dependency rather\n // than the versioned @expo/config-plugins dependency in the project)\n return {\n runtimeVersion: await Updates.getRuntimeVersionNullableAsync(projectDir, exp, platform),\n fingerprintSources: null,\n };\n }\n\n try {\n logger.debug('Using expo-updates runtimeversion:resolve CLI for runtime version resolution');\n\n const extraArgs = logger.debug() ? ['--debug'] : [];\n\n const resolvedRuntimeVersionJSONResult = await expoUpdatesCommandAsync(\n projectDir,\n ['runtimeversion:resolve', '--platform', platform, '--workflow', workflow, ...extraArgs],\n {\n env,\n }\n );\n const runtimeVersionResult = JSON.parse(resolvedRuntimeVersionJSONResult);\n\n logger.debug('runtimeversion:resolve output:');\n logger.debug(resolvedRuntimeVersionJSONResult);\n\n return {\n runtimeVersion: runtimeVersionResult.runtimeVersion ?? null,\n fingerprintSources: runtimeVersionResult.fingerprintSources ?? null,\n };\n } catch (e: any) {\n // if expo-updates is not installed, there's no need for a runtime version in the build\n if (e instanceof ExpoUpdatesCLIModuleNotFoundError) {\n logger.error(\n `Error when resolving runtime version using expo-updates runtimeversion:resolve CLI: ${e.message}`\n );\n return null;\n }\n throw e;\n }\n}\n"]}
@@ -1,4 +1,3 @@
1
- /// <reference types="bunyan" />
2
1
  import { bunyan } from '@expo/logger';
3
2
  export declare function sleepAsync(ms: number): Promise<void>;
4
3
  export interface RetryOptions {
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.retryAsync = exports.sleepAsync = void 0;
3
+ exports.sleepAsync = sleepAsync;
4
+ exports.retryAsync = retryAsync;
4
5
  async function sleepAsync(ms) {
5
6
  await new Promise((res) => setTimeout(res, ms));
6
7
  }
7
- exports.sleepAsync = sleepAsync;
8
8
  async function retryAsync(fn, { retryOptions: { retries, retryIntervalMs }, logger, }) {
9
9
  let attemptCount = -1;
10
10
  for (;;) {
@@ -21,5 +21,4 @@ async function retryAsync(fn, { retryOptions: { retries, retryIntervalMs }, logg
21
21
  }
22
22
  }
23
23
  }
24
- exports.retryAsync = retryAsync;
25
24
  //# sourceMappingURL=retry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/utils/retry.ts"],"names":[],"mappings":";;;AAEO,KAAK,UAAU,UAAU,CAAC,EAAU;IACzC,MAAM,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;AAClD,CAAC;AAFD,gCAEC;AAOM,KAAK,UAAU,UAAU,CAC9B,EAAwC,EACxC,EACE,YAAY,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,EAC1C,MAAM,GAIP;IAED,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC;IACtB,SAAS,CAAC;QACR,IAAI,CAAC;YACH,YAAY,IAAI,CAAC,CAAC;YAClB,OAAO,MAAM,EAAE,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CACX,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,EAC/C,iBAAiB,YAAY,EAAE,CAChC,CAAC;YACF,MAAM,UAAU,CAAC,eAAe,CAAC,CAAC;YAClC,IAAI,YAAY,KAAK,OAAO,EAAE,CAAC;gBAC7B,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AA1BD,gCA0BC","sourcesContent":["import { bunyan } from '@expo/logger';\n\nexport async function sleepAsync(ms: number): Promise<void> {\n await new Promise((res) => setTimeout(res, ms));\n}\n\nexport interface RetryOptions {\n retries: number;\n retryIntervalMs: number;\n}\n\nexport async function retryAsync<T = void>(\n fn: (attemptCount: number) => Promise<T>,\n {\n retryOptions: { retries, retryIntervalMs },\n logger,\n }: {\n retryOptions: RetryOptions;\n logger?: bunyan;\n }\n): Promise<T> {\n let attemptCount = -1;\n for (;;) {\n try {\n attemptCount += 1;\n return await fn(attemptCount);\n } catch (err: any) {\n logger?.debug(\n { err, stdout: err.stdout, stderr: err.stderr },\n `Retry attempt ${attemptCount}`\n );\n await sleepAsync(retryIntervalMs);\n if (attemptCount === retries) {\n throw err;\n }\n }\n }\n}\n"]}
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/utils/retry.ts"],"names":[],"mappings":";;AAEA,gCAEC;AAOD,gCA0BC;AAnCM,KAAK,UAAU,UAAU,CAAC,EAAU;IACzC,MAAM,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;AAClD,CAAC;AAOM,KAAK,UAAU,UAAU,CAC9B,EAAwC,EACxC,EACE,YAAY,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,EAC1C,MAAM,GAIP;IAED,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC;IACtB,SAAS,CAAC;QACR,IAAI,CAAC;YACH,YAAY,IAAI,CAAC,CAAC;YAClB,OAAO,MAAM,EAAE,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CACX,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,EAC/C,iBAAiB,YAAY,EAAE,CAChC,CAAC;YACF,MAAM,UAAU,CAAC,eAAe,CAAC,CAAC;YAClC,IAAI,YAAY,KAAK,OAAO,EAAE,CAAC;gBAC7B,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC","sourcesContent":["import { bunyan } from '@expo/logger';\n\nexport async function sleepAsync(ms: number): Promise<void> {\n await new Promise((res) => setTimeout(res, ms));\n}\n\nexport interface RetryOptions {\n retries: number;\n retryIntervalMs: number;\n}\n\nexport async function retryAsync<T = void>(\n fn: (attemptCount: number) => Promise<T>,\n {\n retryOptions: { retries, retryIntervalMs },\n logger,\n }: {\n retryOptions: RetryOptions;\n logger?: bunyan;\n }\n): Promise<T> {\n let attemptCount = -1;\n for (;;) {\n try {\n attemptCount += 1;\n return await fn(attemptCount);\n } catch (err: any) {\n logger?.debug(\n { err, stdout: err.stdout, stderr: err.stderr },\n `Retry attempt ${attemptCount}`\n );\n await sleepAsync(retryIntervalMs);\n if (attemptCount === retries) {\n throw err;\n }\n }\n }\n}\n"]}
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.retryOnDNSFailure = exports.isDNSError = void 0;
3
+ exports.isDNSError = isDNSError;
4
+ exports.retryOnDNSFailure = retryOnDNSFailure;
4
5
  const promiseRetryWithCondition_1 = require("./promiseRetryWithCondition");
5
6
  function isDNSError(e) {
6
7
  return e.code === 'ENOTFOUND' || e.code === 'EAI_AGAIN';
7
8
  }
8
- exports.isDNSError = isDNSError;
9
9
  function retryOnDNSFailure(fn, options) {
10
10
  return (0, promiseRetryWithCondition_1.promiseRetryWithCondition)(fn, isDNSError, {
11
11
  retries: 3,
@@ -14,5 +14,4 @@ function retryOnDNSFailure(fn, options) {
14
14
  ...options,
15
15
  });
16
16
  }
17
- exports.retryOnDNSFailure = retryOnDNSFailure;
18
17
  //# sourceMappingURL=retryOnDNSFailure.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"retryOnDNSFailure.js","sourceRoot":"","sources":["../../src/utils/retryOnDNSFailure.ts"],"names":[],"mappings":";;;AAEA,2EAAwE;AAExE,SAAgB,UAAU,CAAC,CAAwB;IACjD,OAAO,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC;AAC1D,CAAC;AAFD,gCAEC;AAED,SAAgB,iBAAiB,CAC/B,EAAO,EACP,OAA0B;IAE1B,OAAO,IAAA,qDAAyB,EAAC,EAAE,EAAE,UAAU,EAAE;QAC/C,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,CAAC;QACT,UAAU,EAAE,GAAG;QACf,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC;AAVD,8CAUC","sourcesContent":["import { OperationOptions } from 'retry';\n\nimport { promiseRetryWithCondition } from './promiseRetryWithCondition';\n\nexport function isDNSError(e: Error & { code: any }): boolean {\n return e.code === 'ENOTFOUND' || e.code === 'EAI_AGAIN';\n}\n\nexport function retryOnDNSFailure<TFn extends (...args: any[]) => Promise<any>>(\n fn: TFn,\n options?: OperationOptions\n): (...funcArgs: Parameters<TFn>) => Promise<ReturnType<TFn>> {\n return promiseRetryWithCondition(fn, isDNSError, {\n retries: 3,\n factor: 2,\n minTimeout: 100,\n ...options,\n });\n}\n"]}
1
+ {"version":3,"file":"retryOnDNSFailure.js","sourceRoot":"","sources":["../../src/utils/retryOnDNSFailure.ts"],"names":[],"mappings":";;AAIA,gCAEC;AAED,8CAUC;AAhBD,2EAAwE;AAExE,SAAgB,UAAU,CAAC,CAAwB;IACjD,OAAO,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC;AAC1D,CAAC;AAED,SAAgB,iBAAiB,CAC/B,EAAO,EACP,OAA0B;IAE1B,OAAO,IAAA,qDAAyB,EAAC,EAAE,EAAE,UAAU,EAAE;QAC/C,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,CAAC;QACT,UAAU,EAAE,GAAG;QACf,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { OperationOptions } from 'retry';\n\nimport { promiseRetryWithCondition } from './promiseRetryWithCondition';\n\nexport function isDNSError(e: Error & { code: any }): boolean {\n return e.code === 'ENOTFOUND' || e.code === 'EAI_AGAIN';\n}\n\nexport function retryOnDNSFailure<TFn extends (...args: any[]) => Promise<any>>(\n fn: TFn,\n options?: OperationOptions\n): (...funcArgs: Parameters<TFn>) => Promise<ReturnType<TFn>> {\n return promiseRetryWithCondition(fn, isDNSError, {\n retries: 3,\n factor: 2,\n minTimeout: 100,\n ...options,\n });\n}\n"]}
@@ -1,4 +1,3 @@
1
- /// <reference types="bunyan" />
2
1
  import { Response, RequestInit, HeaderInit } from 'node-fetch';
3
2
  import { bunyan } from '@expo/logger';
4
3
  type TurtleFetchMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'HEAD' | 'OPTIONS' | 'TRACE' | 'PATCH';
@@ -3,7 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.turtleFetch = exports.TurtleFetchError = void 0;
6
+ exports.TurtleFetchError = void 0;
7
+ exports.turtleFetch = turtleFetch;
7
8
  const node_fetch_1 = __importDefault(require("node-fetch"));
8
9
  const retry_1 = require("./retry");
9
10
  class TurtleFetchError extends Error {
@@ -47,5 +48,4 @@ async function turtleFetch(url, method, options) {
47
48
  return response;
48
49
  }, { retryOptions: { retries, retryIntervalMs }, logger });
49
50
  }
50
- exports.turtleFetch = turtleFetch;
51
51
  //# sourceMappingURL=turtleFetch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"turtleFetch.js","sourceRoot":"","sources":["../../src/utils/turtleFetch.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAsE;AAGtE,mCAAqC;AAIrC,MAAa,gBAAiB,SAAQ,KAAK;IAEzC,YAAY,OAAe,EAAE,QAAkB;QAC7C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAND,4CAMC;AAED;;;;;;;;;;;;;;GAcG;AACI,KAAK,UAAU,WAAW,CAC/B,GAAW,EACX,MAAyB,EACzB,OAOC;IAED,MAAM,EACJ,IAAI,EACJ,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,UAAU,EACnB,MAAM,EACN,eAAe,GAAG,IAAI,EACtB,kBAAkB,GAAG,IAAI,EACzB,GAAG,YAAY,EAChB,GAAG,OAAO,CAAC;IAEZ,MAAM,OAAO,GAAG,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;IAE1F,OAAO,MAAM,IAAA,kBAAU,EACrB,KAAK,EAAE,YAAY,EAAE,EAAE;QACrB,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,GAAG,EAAE;YAChC,MAAM;YACN,IAAI;YACJ,OAAO;YACP,GAAG,YAAY;SAChB,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,kBAAkB,IAAI,YAAY,GAAG,OAAO,CAAC;QACjE,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,WAAW,EAAE,CAAC;YAChC,MAAM,IAAI,gBAAgB,CAAC,8BAA8B,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAC;QACxF,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,EACD,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,CACvD,CAAC;AACJ,CAAC;AA3CD,kCA2CC","sourcesContent":["import fetch, { Response, RequestInit, HeaderInit } from 'node-fetch';\nimport { bunyan } from '@expo/logger';\n\nimport { retryAsync } from './retry';\n\ntype TurtleFetchMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'HEAD' | 'OPTIONS' | 'TRACE' | 'PATCH';\n\nexport class TurtleFetchError extends Error {\n readonly response: Response;\n constructor(message: string, response: Response) {\n super(message);\n this.response = response;\n }\n}\n\n/**\n * Wrapper around node-fetch adding some useful features:\n * - retries\n * - json body - if you specify json in options, it will be stringified and content-type will be set to application/json\n * - automatic error throwing - if response is not ok, it will throw an error\n *\n * @param url URL to fetch\n * @param method HTTP method\n * @param options.retries number of retries\n * @param options.json json body\n * @param options.headers headers\n * @param options.shouldThrowOnNotOk if false, it will not throw an error if response is not ok (default: true)\n * @param options other options passed to node-fetch\n * @returns {Promise<Response>}\n */\nexport async function turtleFetch(\n url: string,\n method: TurtleFetchMethod,\n options: Omit<RequestInit, 'body' | 'method'> & {\n retries?: number;\n json?: Record<string, any>;\n headers?: Exclude<HeaderInit, string[][]>;\n shouldThrowOnNotOk?: boolean;\n retryIntervalMs?: number;\n logger?: bunyan;\n }\n): Promise<Response> {\n const {\n json,\n headers: rawHeaders,\n retries: rawRetries,\n logger,\n retryIntervalMs = 1000,\n shouldThrowOnNotOk = true,\n ...otherOptions\n } = options;\n\n const retries = rawRetries ?? (method === 'POST' ? 0 : 2);\n\n const body = JSON.stringify(json);\n const headers = json ? { ...rawHeaders, 'Content-Type': 'application/json' } : rawHeaders;\n\n return await retryAsync(\n async (attemptCount) => {\n const response = await fetch(url, {\n method,\n body,\n headers,\n ...otherOptions,\n });\n const shouldThrow = shouldThrowOnNotOk || attemptCount < retries;\n if (!response.ok && shouldThrow) {\n throw new TurtleFetchError(`Request failed with status ${response.status}`, response);\n }\n return response;\n },\n { retryOptions: { retries, retryIntervalMs }, logger }\n );\n}\n"]}
1
+ {"version":3,"file":"turtleFetch.js","sourceRoot":"","sources":["../../src/utils/turtleFetch.ts"],"names":[],"mappings":";;;;;;AA8BA,kCA2CC;AAzED,4DAAsE;AAGtE,mCAAqC;AAIrC,MAAa,gBAAiB,SAAQ,KAAK;IAEzC,YAAY,OAAe,EAAE,QAAkB;QAC7C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAND,4CAMC;AAED;;;;;;;;;;;;;;GAcG;AACI,KAAK,UAAU,WAAW,CAC/B,GAAW,EACX,MAAyB,EACzB,OAOC;IAED,MAAM,EACJ,IAAI,EACJ,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,UAAU,EACnB,MAAM,EACN,eAAe,GAAG,IAAI,EACtB,kBAAkB,GAAG,IAAI,EACzB,GAAG,YAAY,EAChB,GAAG,OAAO,CAAC;IAEZ,MAAM,OAAO,GAAG,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;IAE1F,OAAO,MAAM,IAAA,kBAAU,EACrB,KAAK,EAAE,YAAY,EAAE,EAAE;QACrB,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,GAAG,EAAE;YAChC,MAAM;YACN,IAAI;YACJ,OAAO;YACP,GAAG,YAAY;SAChB,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,kBAAkB,IAAI,YAAY,GAAG,OAAO,CAAC;QACjE,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,WAAW,EAAE,CAAC;YAChC,MAAM,IAAI,gBAAgB,CAAC,8BAA8B,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAC;QACxF,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,EACD,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,CACvD,CAAC;AACJ,CAAC","sourcesContent":["import fetch, { Response, RequestInit, HeaderInit } from 'node-fetch';\nimport { bunyan } from '@expo/logger';\n\nimport { retryAsync } from './retry';\n\ntype TurtleFetchMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'HEAD' | 'OPTIONS' | 'TRACE' | 'PATCH';\n\nexport class TurtleFetchError extends Error {\n readonly response: Response;\n constructor(message: string, response: Response) {\n super(message);\n this.response = response;\n }\n}\n\n/**\n * Wrapper around node-fetch adding some useful features:\n * - retries\n * - json body - if you specify json in options, it will be stringified and content-type will be set to application/json\n * - automatic error throwing - if response is not ok, it will throw an error\n *\n * @param url URL to fetch\n * @param method HTTP method\n * @param options.retries number of retries\n * @param options.json json body\n * @param options.headers headers\n * @param options.shouldThrowOnNotOk if false, it will not throw an error if response is not ok (default: true)\n * @param options other options passed to node-fetch\n * @returns {Promise<Response>}\n */\nexport async function turtleFetch(\n url: string,\n method: TurtleFetchMethod,\n options: Omit<RequestInit, 'body' | 'method'> & {\n retries?: number;\n json?: Record<string, any>;\n headers?: Exclude<HeaderInit, string[][]>;\n shouldThrowOnNotOk?: boolean;\n retryIntervalMs?: number;\n logger?: bunyan;\n }\n): Promise<Response> {\n const {\n json,\n headers: rawHeaders,\n retries: rawRetries,\n logger,\n retryIntervalMs = 1000,\n shouldThrowOnNotOk = true,\n ...otherOptions\n } = options;\n\n const retries = rawRetries ?? (method === 'POST' ? 0 : 2);\n\n const body = JSON.stringify(json);\n const headers = json ? { ...rawHeaders, 'Content-Type': 'application/json' } : rawHeaders;\n\n return await retryAsync(\n async (attemptCount) => {\n const response = await fetch(url, {\n method,\n body,\n headers,\n ...otherOptions,\n });\n const shouldThrow = shouldThrowOnNotOk || attemptCount < retries;\n if (!response.ok && shouldThrow) {\n throw new TurtleFetchError(`Request failed with status ${response.status}`, response);\n }\n return response;\n },\n { retryOptions: { retries, retryIntervalMs }, logger }\n );\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expo/build-tools",
3
- "version": "1.0.205",
3
+ "version": "1.0.206",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "files": [
@@ -26,16 +26,16 @@
26
26
  "dependencies": {
27
27
  "@expo/config": "10.0.6",
28
28
  "@expo/config-plugins": "9.0.12",
29
- "@expo/downloader": "1.0.118",
30
- "@expo/eas-build-job": "1.0.204",
29
+ "@expo/downloader": "1.0.206",
30
+ "@expo/eas-build-job": "1.0.206",
31
31
  "@expo/env": "^0.4.0",
32
- "@expo/logger": "1.0.117",
32
+ "@expo/logger": "1.0.206",
33
33
  "@expo/package-manager": "1.7.0",
34
34
  "@expo/plist": "^0.2.0",
35
35
  "@expo/results": "^1.0.0",
36
- "@expo/steps": "1.0.204",
37
- "@expo/template-file": "1.0.117",
38
- "@expo/turtle-spawn": "1.0.117",
36
+ "@expo/steps": "1.0.206",
37
+ "@expo/template-file": "1.0.206",
38
+ "@expo/turtle-spawn": "1.0.206",
39
39
  "@expo/xcpretty": "^4.3.1",
40
40
  "@google-cloud/storage": "^7.11.2",
41
41
  "fast-glob": "^3.3.2",
@@ -72,12 +72,12 @@
72
72
  "ts-jest": "^29.1.4",
73
73
  "ts-mockito": "^2.6.1",
74
74
  "tslib": "^2.6.3",
75
- "typescript": "^5.4.5",
75
+ "typescript": "^5.5.4",
76
76
  "uuid": "^9.0.1"
77
77
  },
78
78
  "volta": {
79
79
  "node": "20.14.0",
80
80
  "yarn": "1.22.21"
81
81
  },
82
- "gitHead": "2e23c80a4e87650884c35fd77c1b567ef1578c39"
82
+ "gitHead": "4dd2cddde4f35396bc645cae821d11b8111d0b13"
83
83
  }