@expo/cli 0.18.0 → 0.18.2

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 (653) hide show
  1. package/build/bin/cli +90 -114
  2. package/build/bin/cli.map +1 -1
  3. package/build/src/api/endpoint.js +11 -3
  4. package/build/src/api/endpoint.js.map +1 -1
  5. package/build/src/api/getExpoGoIntermediateCertificate.js +7 -4
  6. package/build/src/api/getExpoGoIntermediateCertificate.js.map +1 -1
  7. package/build/src/api/getExpoSchema.js +13 -11
  8. package/build/src/api/getExpoSchema.js.map +1 -1
  9. package/build/src/api/getNativeModuleVersions.js +7 -4
  10. package/build/src/api/getNativeModuleVersions.js.map +1 -1
  11. package/build/src/api/getProjectDevelopmentCertificate.js +7 -4
  12. package/build/src/api/getProjectDevelopmentCertificate.js.map +1 -1
  13. package/build/src/api/getVersions.js +7 -4
  14. package/build/src/api/getVersions.js.map +1 -1
  15. package/build/src/api/graphql/client.js +55 -35
  16. package/build/src/api/graphql/client.js.map +1 -1
  17. package/build/src/api/graphql/queries/AppQuery.js +9 -7
  18. package/build/src/api/graphql/queries/AppQuery.js.map +1 -1
  19. package/build/src/api/graphql/queries/UserQuery.js +7 -5
  20. package/build/src/api/graphql/queries/UserQuery.js.map +1 -1
  21. package/build/src/api/graphql/types/App.js +6 -4
  22. package/build/src/api/graphql/types/App.js.map +1 -1
  23. package/build/src/api/rest/cache/FileSystemCache.js +6 -4
  24. package/build/src/api/rest/cache/FileSystemCache.js.map +1 -1
  25. package/build/src/api/rest/cache/response.js +4 -1
  26. package/build/src/api/rest/cache/response.js.map +1 -1
  27. package/build/src/api/rest/cache/wrapFetchWithCache.js +21 -12
  28. package/build/src/api/rest/cache/wrapFetchWithCache.js.map +1 -1
  29. package/build/src/api/rest/client.js +36 -29
  30. package/build/src/api/rest/client.js.map +1 -1
  31. package/build/src/api/rest/wrapFetchWithBaseUrl.js +4 -1
  32. package/build/src/api/rest/wrapFetchWithBaseUrl.js.map +1 -1
  33. package/build/src/api/rest/wrapFetchWithOffline.js +5 -2
  34. package/build/src/api/rest/wrapFetchWithOffline.js.map +1 -1
  35. package/build/src/api/rest/wrapFetchWithProgress.js +40 -19
  36. package/build/src/api/rest/wrapFetchWithProgress.js.map +1 -1
  37. package/build/src/api/rest/wrapFetchWithProxy.js +7 -4
  38. package/build/src/api/rest/wrapFetchWithProxy.js.map +1 -1
  39. package/build/src/api/settings.js +9 -4
  40. package/build/src/api/settings.js.map +1 -1
  41. package/build/src/api/updateDevelopmentSession.js +16 -8
  42. package/build/src/api/updateDevelopmentSession.js.map +1 -1
  43. package/build/src/api/user/UserSettings.js +10 -8
  44. package/build/src/api/user/UserSettings.js.map +1 -1
  45. package/build/src/api/user/actions.js +66 -41
  46. package/build/src/api/user/actions.js.map +1 -1
  47. package/build/src/api/user/expoSsoLauncher.js +46 -25
  48. package/build/src/api/user/expoSsoLauncher.js.map +1 -1
  49. package/build/src/api/user/otp.js +70 -50
  50. package/build/src/api/user/otp.js.map +1 -1
  51. package/build/src/api/user/user.js +66 -41
  52. package/build/src/api/user/user.js.map +1 -1
  53. package/build/src/config/configAsync.js +62 -43
  54. package/build/src/config/configAsync.js.map +1 -1
  55. package/build/src/config/index.js +46 -30
  56. package/build/src/config/index.js.map +1 -1
  57. package/build/src/customize/customizeAsync.js +14 -11
  58. package/build/src/customize/customizeAsync.js.map +1 -1
  59. package/build/src/customize/generate.js +61 -46
  60. package/build/src/customize/generate.js.map +1 -1
  61. package/build/src/customize/index.js +10 -8
  62. package/build/src/customize/index.js.map +1 -1
  63. package/build/src/customize/resolveOptions.js +7 -4
  64. package/build/src/customize/resolveOptions.js.map +1 -1
  65. package/build/src/customize/templates.js +31 -34
  66. package/build/src/customize/templates.js.map +1 -1
  67. package/build/src/customize/typescript.js +43 -28
  68. package/build/src/customize/typescript.js.map +1 -1
  69. package/build/src/export/createMetadataJson.js +7 -6
  70. package/build/src/export/createMetadataJson.js.map +1 -1
  71. package/build/src/export/embed/exportEmbedAsync.js +51 -38
  72. package/build/src/export/embed/exportEmbedAsync.js.map +1 -1
  73. package/build/src/export/embed/index.js +48 -36
  74. package/build/src/export/embed/index.js.map +1 -1
  75. package/build/src/export/embed/resolveOptions.js +7 -4
  76. package/build/src/export/embed/resolveOptions.js.map +1 -1
  77. package/build/src/export/embed/xcodeCompilerLogger.js +20 -8
  78. package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -1
  79. package/build/src/export/exportApp.js +84 -67
  80. package/build/src/export/exportApp.js.map +1 -1
  81. package/build/src/export/exportAssets.js +62 -43
  82. package/build/src/export/exportAssets.js.map +1 -1
  83. package/build/src/export/exportAsync.js +47 -26
  84. package/build/src/export/exportAsync.js.map +1 -1
  85. package/build/src/export/exportHermes.js +19 -11
  86. package/build/src/export/exportHermes.js.map +1 -1
  87. package/build/src/export/exportStaticAsync.js +49 -38
  88. package/build/src/export/exportStaticAsync.js.map +1 -1
  89. package/build/src/export/favicon.js +19 -11
  90. package/build/src/export/favicon.js.map +1 -1
  91. package/build/src/export/fork-bundleAsync.js +42 -39
  92. package/build/src/export/fork-bundleAsync.js.map +1 -1
  93. package/build/src/export/getPublicExpoManifest.js +9 -6
  94. package/build/src/export/getPublicExpoManifest.js.map +1 -1
  95. package/build/src/export/getResolvedLocales.js +7 -4
  96. package/build/src/export/getResolvedLocales.js.map +1 -1
  97. package/build/src/export/html.js +12 -4
  98. package/build/src/export/html.js.map +1 -1
  99. package/build/src/export/index.js +49 -33
  100. package/build/src/export/index.js.map +1 -1
  101. package/build/src/export/metroAssetLocalPath.js +22 -6
  102. package/build/src/export/metroAssetLocalPath.js.map +1 -1
  103. package/build/src/export/persistMetroAssets.js +38 -24
  104. package/build/src/export/persistMetroAssets.js.map +1 -1
  105. package/build/src/export/publicFolder.js +15 -7
  106. package/build/src/export/publicFolder.js.map +1 -1
  107. package/build/src/export/resolveOptions.js +19 -15
  108. package/build/src/export/resolveOptions.js.map +1 -1
  109. package/build/src/export/saveAssets.js +42 -38
  110. package/build/src/export/saveAssets.js.map +1 -1
  111. package/build/src/export/web/exportWebAsync.js +15 -12
  112. package/build/src/export/web/exportWebAsync.js.map +1 -1
  113. package/build/src/export/web/index.js +47 -31
  114. package/build/src/export/web/index.js.map +1 -1
  115. package/build/src/export/web/resolveOptions.js +4 -1
  116. package/build/src/export/web/resolveOptions.js.map +1 -1
  117. package/build/src/export/writeContents.js +12 -7
  118. package/build/src/export/writeContents.js.map +1 -1
  119. package/build/src/graphql/generated.js +141 -128
  120. package/build/src/graphql/generated.js.map +1 -1
  121. package/build/src/install/applyPlugins.js +43 -25
  122. package/build/src/install/applyPlugins.js.map +1 -1
  123. package/build/src/install/checkPackages.js +55 -35
  124. package/build/src/install/checkPackages.js.map +1 -1
  125. package/build/src/install/fixPackages.js +52 -35
  126. package/build/src/install/fixPackages.js.map +1 -1
  127. package/build/src/install/index.js +15 -13
  128. package/build/src/install/index.js.map +1 -1
  129. package/build/src/install/installAsync.js +90 -65
  130. package/build/src/install/installAsync.js.map +1 -1
  131. package/build/src/install/installExpoPackage.js +48 -27
  132. package/build/src/install/installExpoPackage.js.map +1 -1
  133. package/build/src/install/resolveOptions.js +8 -5
  134. package/build/src/install/resolveOptions.js.map +1 -1
  135. package/build/src/install/utils/autoAddConfigPlugins.js +15 -7
  136. package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -1
  137. package/build/src/lint/ESlintPrerequisite.js +174 -0
  138. package/build/src/lint/ESlintPrerequisite.js.map +1 -0
  139. package/build/src/lint/index.js +66 -0
  140. package/build/src/lint/index.js.map +1 -0
  141. package/build/src/lint/lintAsync.js +33 -0
  142. package/build/src/lint/lintAsync.js.map +1 -0
  143. package/build/src/log.js +20 -14
  144. package/build/src/log.js.map +1 -1
  145. package/build/src/login/index.js +43 -25
  146. package/build/src/login/index.js.map +1 -1
  147. package/build/src/logout/index.js +43 -25
  148. package/build/src/logout/index.js.map +1 -1
  149. package/build/src/prebuild/clearNativeFolder.js +65 -42
  150. package/build/src/prebuild/clearNativeFolder.js.map +1 -1
  151. package/build/src/prebuild/configureProjectAsync.js +50 -29
  152. package/build/src/prebuild/configureProjectAsync.js.map +1 -1
  153. package/build/src/prebuild/copyTemplateFiles.js +19 -13
  154. package/build/src/prebuild/copyTemplateFiles.js.map +1 -1
  155. package/build/src/prebuild/ensureConfigAsync.js +54 -28
  156. package/build/src/prebuild/ensureConfigAsync.js.map +1 -1
  157. package/build/src/prebuild/index.js +52 -38
  158. package/build/src/prebuild/index.js.map +1 -1
  159. package/build/src/prebuild/prebuildAsync.js +68 -51
  160. package/build/src/prebuild/prebuildAsync.js.map +1 -1
  161. package/build/src/prebuild/renameTemplateAppName.js +15 -10
  162. package/build/src/prebuild/renameTemplateAppName.js.map +1 -1
  163. package/build/src/prebuild/resolveOptions.js +60 -35
  164. package/build/src/prebuild/resolveOptions.js.map +1 -1
  165. package/build/src/prebuild/resolveTemplate.js +66 -40
  166. package/build/src/prebuild/resolveTemplate.js.map +1 -1
  167. package/build/src/prebuild/updateFromTemplate.js +67 -44
  168. package/build/src/prebuild/updateFromTemplate.js.map +1 -1
  169. package/build/src/prebuild/updatePackageJson.js +70 -49
  170. package/build/src/prebuild/updatePackageJson.js.map +1 -1
  171. package/build/src/prebuild/validateTemplatePlatforms.js +44 -23
  172. package/build/src/prebuild/validateTemplatePlatforms.js.map +1 -1
  173. package/build/src/register/index.js +43 -25
  174. package/build/src/register/index.js.map +1 -1
  175. package/build/src/register/registerAsync.js +14 -11
  176. package/build/src/register/registerAsync.js.map +1 -1
  177. package/build/src/run/android/index.js +47 -31
  178. package/build/src/run/android/index.js.map +1 -1
  179. package/build/src/run/android/resolveDevice.js +9 -6
  180. package/build/src/run/android/resolveDevice.js.map +1 -1
  181. package/build/src/run/android/resolveGradlePropsAsync.js +10 -9
  182. package/build/src/run/android/resolveGradlePropsAsync.js.map +1 -1
  183. package/build/src/run/android/resolveInstallApkName.js +14 -12
  184. package/build/src/run/android/resolveInstallApkName.js.map +1 -1
  185. package/build/src/run/android/resolveLaunchProps.js +6 -3
  186. package/build/src/run/android/resolveLaunchProps.js.map +1 -1
  187. package/build/src/run/android/resolveOptions.js +12 -9
  188. package/build/src/run/android/resolveOptions.js.map +1 -1
  189. package/build/src/run/android/runAndroidAsync.js +27 -24
  190. package/build/src/run/android/runAndroidAsync.js.map +1 -1
  191. package/build/src/run/ensureNativeProject.js +11 -8
  192. package/build/src/run/ensureNativeProject.js.map +1 -1
  193. package/build/src/run/hints.js +15 -7
  194. package/build/src/run/hints.js.map +1 -1
  195. package/build/src/run/index.js +49 -35
  196. package/build/src/run/index.js.map +1 -1
  197. package/build/src/run/ios/XcodeBuild.js +75 -51
  198. package/build/src/run/ios/XcodeBuild.js.map +1 -1
  199. package/build/src/run/ios/appleDevice/AppleDevice.js +31 -24
  200. package/build/src/run/ios/appleDevice/AppleDevice.js.map +1 -1
  201. package/build/src/run/ios/appleDevice/ClientManager.js +66 -33
  202. package/build/src/run/ios/appleDevice/ClientManager.js.map +1 -1
  203. package/build/src/run/ios/appleDevice/client/AFCClient.js +73 -47
  204. package/build/src/run/ios/appleDevice/client/AFCClient.js.map +1 -1
  205. package/build/src/run/ios/appleDevice/client/DebugserverClient.js +53 -26
  206. package/build/src/run/ios/appleDevice/client/DebugserverClient.js.map +1 -1
  207. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js +15 -6
  208. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js.map +1 -1
  209. package/build/src/run/ios/appleDevice/client/LockdowndClient.js +54 -27
  210. package/build/src/run/ios/appleDevice/client/LockdowndClient.js.map +1 -1
  211. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js +56 -30
  212. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js.map +1 -1
  213. package/build/src/run/ios/appleDevice/client/ServiceClient.js +18 -4
  214. package/build/src/run/ios/appleDevice/client/ServiceClient.js.map +1 -1
  215. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js +22 -13
  216. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js.map +1 -1
  217. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js +57 -31
  218. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js.map +1 -1
  219. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js +79 -66
  220. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js.map +1 -1
  221. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js +28 -14
  222. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js.map +1 -1
  223. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js +24 -11
  224. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js.map +1 -1
  225. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js +26 -13
  226. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js.map +1 -1
  227. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js +23 -10
  228. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js.map +1 -1
  229. package/build/src/run/ios/codeSigning/Security.js +27 -20
  230. package/build/src/run/ios/codeSigning/Security.js.map +1 -1
  231. package/build/src/run/ios/codeSigning/configureCodeSigning.js +49 -28
  232. package/build/src/run/ios/codeSigning/configureCodeSigning.js.map +1 -1
  233. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js +61 -36
  234. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js.map +1 -1
  235. package/build/src/run/ios/codeSigning/settings.js +11 -3
  236. package/build/src/run/ios/codeSigning/settings.js.map +1 -1
  237. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js +7 -5
  238. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js.map +1 -1
  239. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js +14 -8
  240. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js.map +1 -1
  241. package/build/src/run/ios/index.js +50 -34
  242. package/build/src/run/ios/index.js.map +1 -1
  243. package/build/src/run/ios/launchApp.js +52 -31
  244. package/build/src/run/ios/launchApp.js.map +1 -1
  245. package/build/src/run/ios/options/promptDevice.js +17 -13
  246. package/build/src/run/ios/options/promptDevice.js.map +1 -1
  247. package/build/src/run/ios/options/resolveDevice.js +63 -39
  248. package/build/src/run/ios/options/resolveDevice.js.map +1 -1
  249. package/build/src/run/ios/options/resolveNativeScheme.js +57 -34
  250. package/build/src/run/ios/options/resolveNativeScheme.js.map +1 -1
  251. package/build/src/run/ios/options/resolveOptions.js +15 -12
  252. package/build/src/run/ios/options/resolveOptions.js.map +1 -1
  253. package/build/src/run/ios/options/resolveXcodeProject.js +6 -3
  254. package/build/src/run/ios/options/resolveXcodeProject.js.map +1 -1
  255. package/build/src/run/ios/runIosAsync.js +63 -42
  256. package/build/src/run/ios/runIosAsync.js.map +1 -1
  257. package/build/src/run/resolveBundlerProps.js +8 -5
  258. package/build/src/run/resolveBundlerProps.js.map +1 -1
  259. package/build/src/run/startBundler.js +47 -26
  260. package/build/src/run/startBundler.js.map +1 -1
  261. package/build/src/start/detectDevClient.js +6 -3
  262. package/build/src/start/detectDevClient.js.map +1 -1
  263. package/build/src/start/doctor/Prerequisite.js +15 -7
  264. package/build/src/start/doctor/Prerequisite.js.map +1 -1
  265. package/build/src/start/doctor/SecurityBinPrerequisite.js +7 -4
  266. package/build/src/start/doctor/SecurityBinPrerequisite.js.map +1 -1
  267. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +44 -23
  268. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -1
  269. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js +44 -23
  270. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js.map +1 -1
  271. package/build/src/start/doctor/apple/XcodePrerequisite.js +61 -36
  272. package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -1
  273. package/build/src/start/doctor/apple/XcrunPrerequisite.js +15 -12
  274. package/build/src/start/doctor/apple/XcrunPrerequisite.js.map +1 -1
  275. package/build/src/start/doctor/dependencies/bundledNativeModules.js +49 -28
  276. package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -1
  277. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +98 -53
  278. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -1
  279. package/build/src/start/doctor/dependencies/getMissingPackages.js +17 -9
  280. package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -1
  281. package/build/src/start/doctor/dependencies/getVersionedPackages.js +23 -15
  282. package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -1
  283. package/build/src/start/doctor/dependencies/resolvePackages.js +19 -13
  284. package/build/src/start/doctor/dependencies/resolvePackages.js.map +1 -1
  285. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +63 -41
  286. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -1
  287. package/build/src/start/doctor/ngrok/ExternalModule.js +64 -39
  288. package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -1
  289. package/build/src/start/doctor/ngrok/NgrokResolver.js +12 -5
  290. package/build/src/start/doctor/ngrok/NgrokResolver.js.map +1 -1
  291. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js +59 -41
  292. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -1
  293. package/build/src/start/doctor/typescript/updateTSConfig.js +59 -36
  294. package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -1
  295. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +57 -31
  296. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -1
  297. package/build/src/start/index.js +56 -42
  298. package/build/src/start/index.js.map +1 -1
  299. package/build/src/start/interface/KeyPressHandler.js +43 -22
  300. package/build/src/start/interface/KeyPressHandler.js.map +1 -1
  301. package/build/src/start/interface/commandsTable.js +60 -38
  302. package/build/src/start/interface/commandsTable.js.map +1 -1
  303. package/build/src/start/interface/interactiveActions.js +85 -68
  304. package/build/src/start/interface/interactiveActions.js.map +1 -1
  305. package/build/src/start/interface/startInterface.js +78 -57
  306. package/build/src/start/interface/startInterface.js.map +1 -1
  307. package/build/src/start/platforms/AppIdResolver.js +9 -6
  308. package/build/src/start/platforms/AppIdResolver.js.map +1 -1
  309. package/build/src/start/platforms/DeviceManager.js +41 -20
  310. package/build/src/start/platforms/DeviceManager.js.map +1 -1
  311. package/build/src/start/platforms/ExpoGoInstaller.js +55 -35
  312. package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -1
  313. package/build/src/start/platforms/PlatformManager.js +19 -17
  314. package/build/src/start/platforms/PlatformManager.js.map +1 -1
  315. package/build/src/start/platforms/android/ADBServer.js +15 -12
  316. package/build/src/start/platforms/android/ADBServer.js.map +1 -1
  317. package/build/src/start/platforms/android/AndroidAppIdResolver.js +6 -4
  318. package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -1
  319. package/build/src/start/platforms/android/AndroidDeviceManager.js +70 -50
  320. package/build/src/start/platforms/android/AndroidDeviceManager.js.map +1 -1
  321. package/build/src/start/platforms/android/AndroidPlatformManager.js +9 -6
  322. package/build/src/start/platforms/android/AndroidPlatformManager.js.map +1 -1
  323. package/build/src/start/platforms/android/AndroidSdk.js +11 -8
  324. package/build/src/start/platforms/android/AndroidSdk.js.map +1 -1
  325. package/build/src/start/platforms/android/activateWindow.js +43 -22
  326. package/build/src/start/platforms/android/activateWindow.js.map +1 -1
  327. package/build/src/start/platforms/android/adb.js +73 -52
  328. package/build/src/start/platforms/android/adb.js.map +1 -1
  329. package/build/src/start/platforms/android/adbReverse.js +57 -31
  330. package/build/src/start/platforms/android/adbReverse.js.map +1 -1
  331. package/build/src/start/platforms/android/emulator.js +63 -42
  332. package/build/src/start/platforms/android/emulator.js.map +1 -1
  333. package/build/src/start/platforms/android/getDevices.js +11 -10
  334. package/build/src/start/platforms/android/getDevices.js.map +1 -1
  335. package/build/src/start/platforms/android/gradle.js +18 -11
  336. package/build/src/start/platforms/android/gradle.js.map +1 -1
  337. package/build/src/start/platforms/android/promptAndroidDevice.js +14 -14
  338. package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -1
  339. package/build/src/start/platforms/ios/AppleAppIdResolver.js +7 -4
  340. package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -1
  341. package/build/src/start/platforms/ios/AppleDeviceManager.js +80 -54
  342. package/build/src/start/platforms/ios/AppleDeviceManager.js.map +1 -1
  343. package/build/src/start/platforms/ios/ApplePlatformManager.js +7 -4
  344. package/build/src/start/platforms/ios/ApplePlatformManager.js.map +1 -1
  345. package/build/src/start/platforms/ios/assertSystemRequirements.js +11 -8
  346. package/build/src/start/platforms/ios/assertSystemRequirements.js.map +1 -1
  347. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +50 -29
  348. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -1
  349. package/build/src/start/platforms/ios/getBestSimulator.js +53 -29
  350. package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -1
  351. package/build/src/start/platforms/ios/promptAppleDevice.js +18 -12
  352. package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -1
  353. package/build/src/start/platforms/ios/simctl.js +65 -42
  354. package/build/src/start/platforms/ios/simctl.js.map +1 -1
  355. package/build/src/start/platforms/ios/simctlLogging.js +67 -44
  356. package/build/src/start/platforms/ios/simctlLogging.js.map +1 -1
  357. package/build/src/start/platforms/ios/xcrun.js +8 -5
  358. package/build/src/start/platforms/ios/xcrun.js.map +1 -1
  359. package/build/src/start/project/devices.js +19 -16
  360. package/build/src/start/project/devices.js.map +1 -1
  361. package/build/src/start/project/dotExpo.js +13 -5
  362. package/build/src/start/project/dotExpo.js.map +1 -1
  363. package/build/src/start/project/settings.js +6 -4
  364. package/build/src/start/project/settings.js.map +1 -1
  365. package/build/src/start/resolveOptions.js +26 -19
  366. package/build/src/start/resolveOptions.js.map +1 -1
  367. package/build/src/start/server/AsyncNgrok.js +66 -46
  368. package/build/src/start/server/AsyncNgrok.js.map +1 -1
  369. package/build/src/start/server/BundlerDevServer.js +64 -44
  370. package/build/src/start/server/BundlerDevServer.js.map +1 -1
  371. package/build/src/start/server/DevServerManager.js +81 -69
  372. package/build/src/start/server/DevServerManager.js.map +1 -1
  373. package/build/src/start/server/DevToolsPluginManager.js +21 -16
  374. package/build/src/start/server/DevToolsPluginManager.js.map +1 -1
  375. package/build/src/start/server/DevelopmentSession.js +49 -31
  376. package/build/src/start/server/DevelopmentSession.js.map +1 -1
  377. package/build/src/start/server/ReactDevToolsProxy.js +14 -6
  378. package/build/src/start/server/ReactDevToolsProxy.js.map +1 -1
  379. package/build/src/start/server/UrlCreator.js +44 -23
  380. package/build/src/start/server/UrlCreator.js.map +1 -1
  381. package/build/src/start/server/getStaticRenderFunctions.js +46 -34
  382. package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
  383. package/build/src/start/server/metro/MetroBundlerDevServer.js +135 -108
  384. package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
  385. package/build/src/start/server/metro/MetroTerminalReporter.js +24 -17
  386. package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
  387. package/build/src/start/server/metro/TerminalReporter.js +18 -8
  388. package/build/src/start/server/metro/TerminalReporter.js.map +1 -1
  389. package/build/src/start/server/metro/createExpoMetroResolver.js +31 -20
  390. package/build/src/start/server/metro/createExpoMetroResolver.js.map +1 -1
  391. package/build/src/start/server/metro/createJResolver.js +76 -51
  392. package/build/src/start/server/metro/createJResolver.js.map +1 -1
  393. package/build/src/start/server/metro/createServerRouteMiddleware.js +22 -14
  394. package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -1
  395. package/build/src/start/server/metro/debugging/MessageHandler.js +4 -1
  396. package/build/src/start/server/metro/debugging/MessageHandler.js.map +1 -1
  397. package/build/src/start/server/metro/debugging/createDebugMiddleware.js +10 -9
  398. package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -1
  399. package/build/src/start/server/metro/debugging/createHandlersFactory.js +14 -13
  400. package/build/src/start/server/metro/debugging/createHandlersFactory.js.map +1 -1
  401. package/build/src/start/server/metro/debugging/getDebuggerType.js +5 -2
  402. package/build/src/start/server/metro/debugging/getDebuggerType.js.map +1 -1
  403. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js +5 -2
  404. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js.map +1 -1
  405. package/build/src/start/server/metro/debugging/messageHandlers/PageReload.js +5 -2
  406. package/build/src/start/server/metro/debugging/messageHandlers/PageReload.js.map +1 -1
  407. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js +7 -4
  408. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +1 -1
  409. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js +7 -4
  410. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +1 -1
  411. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js +7 -4
  412. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js.map +1 -1
  413. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js +7 -4
  414. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js.map +1 -1
  415. package/build/src/start/server/metro/debugging/pageIsSupported.js +4 -1
  416. package/build/src/start/server/metro/debugging/pageIsSupported.js.map +1 -1
  417. package/build/src/start/server/metro/externals.js +21 -10
  418. package/build/src/start/server/metro/externals.js.map +1 -1
  419. package/build/src/start/server/metro/fetchRouterManifest.js +20 -7
  420. package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -1
  421. package/build/src/start/server/metro/formatFileCandidates.js +21 -17
  422. package/build/src/start/server/metro/formatFileCandidates.js.map +1 -1
  423. package/build/src/start/server/metro/getCssModulesFromBundler.js +15 -7
  424. package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -1
  425. package/build/src/start/server/metro/instantiateMetro.js +57 -44
  426. package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
  427. package/build/src/start/server/metro/metroErrorInterface.js +43 -34
  428. package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
  429. package/build/src/start/server/metro/metroErrors.js +11 -2
  430. package/build/src/start/server/metro/metroErrors.js.map +1 -1
  431. package/build/src/start/server/metro/metroVirtualModules.js +10 -2
  432. package/build/src/start/server/metro/metroVirtualModules.js.map +1 -1
  433. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +5 -2
  434. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -1
  435. package/build/src/start/server/metro/router.js +27 -20
  436. package/build/src/start/server/metro/router.js.map +1 -1
  437. package/build/src/start/server/metro/runServer-fork.js +21 -14
  438. package/build/src/start/server/metro/runServer-fork.js.map +1 -1
  439. package/build/src/start/server/metro/serializeHtml.js +7 -7
  440. package/build/src/start/server/metro/serializeHtml.js.map +1 -1
  441. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +12 -4
  442. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -1
  443. package/build/src/start/server/metro/withMetroMultiPlatform.js +107 -81
  444. package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
  445. package/build/src/start/server/metro/withMetroResolvers.js +72 -42
  446. package/build/src/start/server/metro/withMetroResolvers.js.map +1 -1
  447. package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js +4 -1
  448. package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js.map +1 -1
  449. package/build/src/start/server/middleware/CorsMiddleware.js +4 -1
  450. package/build/src/start/server/middleware/CorsMiddleware.js.map +1 -1
  451. package/build/src/start/server/middleware/CreateFileMiddleware.js +13 -5
  452. package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -1
  453. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +15 -12
  454. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -1
  455. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +30 -23
  456. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -1
  457. package/build/src/start/server/middleware/ExpoMiddleware.js +47 -21
  458. package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -1
  459. package/build/src/start/server/middleware/FaviconMiddleware.js +8 -5
  460. package/build/src/start/server/middleware/FaviconMiddleware.js.map +1 -1
  461. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js +6 -3
  462. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js.map +1 -1
  463. package/build/src/start/server/middleware/InterstitialPageMiddleware.js +23 -16
  464. package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -1
  465. package/build/src/start/server/middleware/ManifestMiddleware.js +84 -60
  466. package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
  467. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js +14 -7
  468. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js.map +1 -1
  469. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +47 -26
  470. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -1
  471. package/build/src/start/server/middleware/ServeStaticMiddleware.js +11 -8
  472. package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -1
  473. package/build/src/start/server/middleware/inspector/JsInspector.js +30 -24
  474. package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -1
  475. package/build/src/start/server/middleware/inspector/LaunchBrowser.js +16 -8
  476. package/build/src/start/server/middleware/inspector/LaunchBrowser.js.map +1 -1
  477. package/build/src/start/server/middleware/inspector/LaunchBrowser.types.js +4 -2
  478. package/build/src/start/server/middleware/inspector/LaunchBrowser.types.js.map +1 -1
  479. package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js +16 -12
  480. package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js.map +1 -1
  481. package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js +59 -37
  482. package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js.map +1 -1
  483. package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js +22 -16
  484. package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js.map +1 -1
  485. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +9 -6
  486. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +1 -1
  487. package/build/src/start/server/middleware/inspector/middlwareMutations.js +11 -4
  488. package/build/src/start/server/middleware/inspector/middlwareMutations.js.map +1 -1
  489. package/build/src/start/server/middleware/metroOptions.js +26 -18
  490. package/build/src/start/server/middleware/metroOptions.js.map +1 -1
  491. package/build/src/start/server/middleware/mutations.js +11 -4
  492. package/build/src/start/server/middleware/mutations.js.map +1 -1
  493. package/build/src/start/server/middleware/resolveAssets.js +65 -41
  494. package/build/src/start/server/middleware/resolveAssets.js.map +1 -1
  495. package/build/src/start/server/middleware/resolvePlatform.js +14 -6
  496. package/build/src/start/server/middleware/resolvePlatform.js.map +1 -1
  497. package/build/src/start/server/middleware/suppressErrorMiddleware.js +4 -1
  498. package/build/src/start/server/middleware/suppressErrorMiddleware.js.map +1 -1
  499. package/build/src/start/server/openPlatforms.js +7 -6
  500. package/build/src/start/server/openPlatforms.js.map +1 -1
  501. package/build/src/start/server/platformBundlers.js +5 -2
  502. package/build/src/start/server/platformBundlers.js.map +1 -1
  503. package/build/src/start/server/serverLogLikeMetro.js +62 -33
  504. package/build/src/start/server/serverLogLikeMetro.js.map +1 -1
  505. package/build/src/start/server/type-generation/expo-env.js +12 -4
  506. package/build/src/start/server/type-generation/expo-env.js.map +1 -1
  507. package/build/src/start/server/type-generation/routes.js +52 -51
  508. package/build/src/start/server/type-generation/routes.js.map +1 -1
  509. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js +22 -19
  510. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -1
  511. package/build/src/start/server/type-generation/tsconfig.js +18 -11
  512. package/build/src/start/server/type-generation/tsconfig.js.map +1 -1
  513. package/build/src/start/server/webTemplate.js +21 -15
  514. package/build/src/start/server/webTemplate.js.map +1 -1
  515. package/build/src/start/server/webpack/WebpackBundlerDevServer.js +81 -56
  516. package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -1
  517. package/build/src/start/server/webpack/compile.js +47 -26
  518. package/build/src/start/server/webpack/compile.js.map +1 -1
  519. package/build/src/start/server/webpack/formatWebpackMessages.js +35 -25
  520. package/build/src/start/server/webpack/formatWebpackMessages.js.map +1 -1
  521. package/build/src/start/server/webpack/resolveFromProject.js +13 -5
  522. package/build/src/start/server/webpack/resolveFromProject.js.map +1 -1
  523. package/build/src/start/server/webpack/tls.js +54 -28
  524. package/build/src/start/server/webpack/tls.js.map +1 -1
  525. package/build/src/start/startAsync.js +73 -52
  526. package/build/src/start/startAsync.js.map +1 -1
  527. package/build/src/utils/FileNotifier.js +46 -25
  528. package/build/src/utils/FileNotifier.js.map +1 -1
  529. package/build/src/utils/analytics/getDevClientProperties.js +29 -21
  530. package/build/src/utils/analytics/getDevClientProperties.js.map +1 -1
  531. package/build/src/utils/analytics/getMetroDebugProperties.js +4 -1
  532. package/build/src/utils/analytics/getMetroDebugProperties.js.map +1 -1
  533. package/build/src/utils/analytics/getMetroProperties.js +4 -1
  534. package/build/src/utils/analytics/getMetroProperties.js.map +1 -1
  535. package/build/src/utils/analytics/metroDebuggerMiddleware.js +14 -6
  536. package/build/src/utils/analytics/metroDebuggerMiddleware.js.map +1 -1
  537. package/build/src/utils/ansi.js +5 -2
  538. package/build/src/utils/ansi.js.map +1 -1
  539. package/build/src/utils/args.js +57 -29
  540. package/build/src/utils/args.js.map +1 -1
  541. package/build/src/utils/array.js +16 -9
  542. package/build/src/utils/array.js.map +1 -1
  543. package/build/src/utils/cocoapods.js +77 -53
  544. package/build/src/utils/cocoapods.js.map +1 -1
  545. package/build/src/utils/codesigning.js +80 -58
  546. package/build/src/utils/codesigning.js.map +1 -1
  547. package/build/src/utils/createFileTransform.js +13 -5
  548. package/build/src/utils/createFileTransform.js.map +1 -1
  549. package/build/src/utils/delay.js +13 -6
  550. package/build/src/utils/delay.js.map +1 -1
  551. package/build/src/utils/dir.js +24 -21
  552. package/build/src/utils/dir.js.map +1 -1
  553. package/build/src/utils/downloadAppAsync.js +16 -13
  554. package/build/src/utils/downloadAppAsync.js.map +1 -1
  555. package/build/src/utils/downloadExpoGoAsync.js +26 -20
  556. package/build/src/utils/downloadExpoGoAsync.js.map +1 -1
  557. package/build/src/utils/editor.js +50 -24
  558. package/build/src/utils/editor.js.map +1 -1
  559. package/build/src/utils/env.js +35 -33
  560. package/build/src/utils/env.js.map +1 -1
  561. package/build/src/utils/errors.js +17 -9
  562. package/build/src/utils/errors.js.map +1 -1
  563. package/build/src/utils/exit.js +10 -7
  564. package/build/src/utils/exit.js.map +1 -1
  565. package/build/src/utils/findUp.js +22 -4
  566. package/build/src/utils/findUp.js.map +1 -1
  567. package/build/src/utils/fn.js +11 -3
  568. package/build/src/utils/fn.js.map +1 -1
  569. package/build/src/utils/getOrPromptApplicationId.js +71 -45
  570. package/build/src/utils/getOrPromptApplicationId.js.map +1 -1
  571. package/build/src/utils/getRunningProcess.js +52 -26
  572. package/build/src/utils/getRunningProcess.js.map +1 -1
  573. package/build/src/utils/git.js +64 -38
  574. package/build/src/utils/git.js.map +1 -1
  575. package/build/src/utils/glob.js +14 -9
  576. package/build/src/utils/glob.js.map +1 -1
  577. package/build/src/utils/interactive.js +5 -2
  578. package/build/src/utils/interactive.js.map +1 -1
  579. package/build/src/utils/ip.js +5 -2
  580. package/build/src/utils/ip.js.map +1 -1
  581. package/build/src/utils/isModuleSymlinked.js +7 -4
  582. package/build/src/utils/isModuleSymlinked.js.map +1 -1
  583. package/build/src/utils/link.js +13 -5
  584. package/build/src/utils/link.js.map +1 -1
  585. package/build/src/utils/mergeGitIgnorePaths.js +22 -17
  586. package/build/src/utils/mergeGitIgnorePaths.js.map +1 -1
  587. package/build/src/utils/modifyConfigAsync.js +56 -30
  588. package/build/src/utils/modifyConfigAsync.js.map +1 -1
  589. package/build/src/utils/modifyConfigPlugins.js +43 -22
  590. package/build/src/utils/modifyConfigPlugins.js.map +1 -1
  591. package/build/src/utils/nodeEnv.js +6 -1
  592. package/build/src/utils/nodeEnv.js.map +1 -1
  593. package/build/src/utils/nodeModules.js +9 -6
  594. package/build/src/utils/nodeModules.js.map +1 -1
  595. package/build/src/utils/npm.js +32 -24
  596. package/build/src/utils/npm.js.map +1 -1
  597. package/build/src/utils/obj.js +12 -4
  598. package/build/src/utils/obj.js.map +1 -1
  599. package/build/src/utils/open.js +7 -4
  600. package/build/src/utils/open.js.map +1 -1
  601. package/build/src/utils/ora.js +25 -21
  602. package/build/src/utils/ora.js.map +1 -1
  603. package/build/src/utils/plist.js +53 -27
  604. package/build/src/utils/plist.js.map +1 -1
  605. package/build/src/utils/port.js +58 -32
  606. package/build/src/utils/port.js.map +1 -1
  607. package/build/src/utils/profile.js +49 -28
  608. package/build/src/utils/profile.js.map +1 -1
  609. package/build/src/utils/progress.js +16 -12
  610. package/build/src/utils/progress.js.map +1 -1
  611. package/build/src/utils/prompts.js +33 -28
  612. package/build/src/utils/prompts.js.map +1 -1
  613. package/build/src/utils/resolveArgs.js +23 -20
  614. package/build/src/utils/resolveArgs.js.map +1 -1
  615. package/build/src/utils/scheme.js +61 -37
  616. package/build/src/utils/scheme.js.map +1 -1
  617. package/build/src/utils/strings.js +11 -4
  618. package/build/src/utils/strings.js.map +1 -1
  619. package/build/src/utils/tar.js +43 -22
  620. package/build/src/utils/tar.js.map +1 -1
  621. package/build/src/utils/telemetry/DetachedClient.js +8 -5
  622. package/build/src/utils/telemetry/DetachedClient.js.map +1 -1
  623. package/build/src/utils/telemetry/RudderClient.js +12 -9
  624. package/build/src/utils/telemetry/RudderClient.js.map +1 -1
  625. package/build/src/utils/telemetry/flushDetached.js +8 -7
  626. package/build/src/utils/telemetry/flushDetached.js.map +1 -1
  627. package/build/src/utils/telemetry/getContext.js +48 -28
  628. package/build/src/utils/telemetry/getContext.js.map +1 -1
  629. package/build/src/utils/telemetry/index.js +16 -11
  630. package/build/src/utils/telemetry/index.js.map +1 -1
  631. package/build/src/utils/template.js +27 -2
  632. package/build/src/utils/template.js.map +1 -1
  633. package/build/src/utils/terminal.js +5 -2
  634. package/build/src/utils/terminal.js.map +1 -1
  635. package/build/src/utils/tsconfig/evaluateTsConfig.js +18 -12
  636. package/build/src/utils/tsconfig/evaluateTsConfig.js.map +1 -1
  637. package/build/src/utils/tsconfig/loadTsConfigPaths.js +18 -10
  638. package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +1 -1
  639. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js +8 -4
  640. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js.map +1 -1
  641. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +12 -9
  642. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +1 -1
  643. package/build/src/utils/url.js +17 -10
  644. package/build/src/utils/url.js.map +1 -1
  645. package/build/src/utils/validateApplicationId.js +32 -25
  646. package/build/src/utils/validateApplicationId.js.map +1 -1
  647. package/build/src/utils/variadic.js +15 -11
  648. package/build/src/utils/variadic.js.map +1 -1
  649. package/build/src/whoami/index.js +43 -25
  650. package/build/src/whoami/index.js.map +1 -1
  651. package/build/src/whoami/whoamiAsync.js +44 -23
  652. package/build/src/whoami/whoamiAsync.js.map +1 -1
  653. package/package.json +4 -4
@@ -2,10 +2,18 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- exports.getDevelopmentCodeSigningDirectory = getDevelopmentCodeSigningDirectory;
6
- exports.getCodeSigningInfoAsync = getCodeSigningInfoAsync;
7
- exports.signManifestString = signManifestString;
8
- exports.DevelopmentCodeSigningInfoFile = void 0;
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ getDevelopmentCodeSigningDirectory: ()=>getDevelopmentCodeSigningDirectory,
13
+ DevelopmentCodeSigningInfoFile: ()=>DevelopmentCodeSigningInfoFile,
14
+ getCodeSigningInfoAsync: ()=>getCodeSigningInfoAsync,
15
+ signManifestString: ()=>signManifestString
16
+ });
9
17
  function _codeSigningCertificates() {
10
18
  const data = require("@expo/code-signing-certificates");
11
19
  _codeSigningCertificates = function() {
@@ -21,7 +29,7 @@ function _getUserState() {
21
29
  return data;
22
30
  }
23
31
  function _jsonFile() {
24
- const data = _interopRequireDefault(require("@expo/json-file"));
32
+ const data = /*#__PURE__*/ _interopRequireDefault(require("@expo/json-file"));
25
33
  _jsonFile = function() {
26
34
  return data;
27
35
  };
@@ -49,7 +57,7 @@ function _graphql() {
49
57
  return data;
50
58
  }
51
59
  function _path() {
52
- const data = _interopRequireDefault(require("path"));
60
+ const data = /*#__PURE__*/ _interopRequireDefault(require("path"));
53
61
  _path = function() {
54
62
  return data;
55
63
  };
@@ -62,45 +70,63 @@ function _structuredHeaders() {
62
70
  };
63
71
  return data;
64
72
  }
65
- var _env = require("./env");
66
- var _errors = require("./errors");
67
- var _getExpoGoIntermediateCertificate = require("../api/getExpoGoIntermediateCertificate");
68
- var _getProjectDevelopmentCertificate = require("../api/getProjectDevelopmentCertificate");
69
- var _appQuery = require("../api/graphql/queries/AppQuery");
70
- var _actions = require("../api/user/actions");
71
- var _generated = require("../graphql/generated");
72
- var Log = _interopRequireWildcard(require("../log"));
73
- var _link = require("../utils/link");
73
+ const _env = require("./env");
74
+ const _errors = require("./errors");
75
+ const _getExpoGoIntermediateCertificate = require("../api/getExpoGoIntermediateCertificate");
76
+ const _getProjectDevelopmentCertificate = require("../api/getProjectDevelopmentCertificate");
77
+ const _appQuery = require("../api/graphql/queries/AppQuery");
78
+ const _actions = require("../api/user/actions");
79
+ const _generated = require("../graphql/generated");
80
+ const _log = /*#__PURE__*/ _interopRequireWildcard(require("../log"));
81
+ const _link = require("../utils/link");
74
82
  function _interopRequireDefault(obj) {
75
83
  return obj && obj.__esModule ? obj : {
76
84
  default: obj
77
85
  };
78
86
  }
79
- function _interopRequireWildcard(obj) {
80
- if (obj && obj.__esModule) {
87
+ function _getRequireWildcardCache(nodeInterop) {
88
+ if (typeof WeakMap !== "function") return null;
89
+ var cacheBabelInterop = new WeakMap();
90
+ var cacheNodeInterop = new WeakMap();
91
+ return (_getRequireWildcardCache = function(nodeInterop) {
92
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
93
+ })(nodeInterop);
94
+ }
95
+ function _interopRequireWildcard(obj, nodeInterop) {
96
+ if (!nodeInterop && obj && obj.__esModule) {
81
97
  return obj;
82
- } else {
83
- var newObj = {};
84
- if (obj != null) {
85
- for(var key in obj){
86
- if (Object.prototype.hasOwnProperty.call(obj, key)) {
87
- var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
88
- if (desc.get || desc.set) {
89
- Object.defineProperty(newObj, key, desc);
90
- } else {
91
- newObj[key] = obj[key];
92
- }
93
- }
98
+ }
99
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
100
+ return {
101
+ default: obj
102
+ };
103
+ }
104
+ var cache = _getRequireWildcardCache(nodeInterop);
105
+ if (cache && cache.has(obj)) {
106
+ return cache.get(obj);
107
+ }
108
+ var newObj = {};
109
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
110
+ for(var key in obj){
111
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
112
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
113
+ if (desc && (desc.get || desc.set)) {
114
+ Object.defineProperty(newObj, key, desc);
115
+ } else {
116
+ newObj[key] = obj[key];
94
117
  }
95
118
  }
96
- newObj.default = obj;
97
- return newObj;
98
119
  }
120
+ newObj.default = obj;
121
+ if (cache) {
122
+ cache.set(obj, newObj);
123
+ }
124
+ return newObj;
99
125
  }
100
126
  const debug = require("debug")("expo:codesigning");
101
127
  const DEVELOPMENT_CODE_SIGNING_SETTINGS_FILE_NAME = "development-code-signing-settings-2.json";
102
128
  function getDevelopmentCodeSigningDirectory() {
103
- return _path().default.join(_getUserState().getExpoHomeDirectory(), "codesigning");
129
+ return _path().default.join((0, _getUserState().getExpoHomeDirectory)(), "codesigning");
104
130
  }
105
131
  function getProjectDevelopmentCodeSigningInfoFile(defaults) {
106
132
  function getFile(easProjectId) {
@@ -148,14 +174,13 @@ const DevelopmentCodeSigningInfoFile = getProjectDevelopmentCodeSigningInfoFile(
148
174
  privateKey: null,
149
175
  certificateChain: null
150
176
  });
151
- exports.DevelopmentCodeSigningInfoFile = DevelopmentCodeSigningInfoFile;
152
177
  async function getCodeSigningInfoAsync(exp, expectSignatureHeader, privateKeyPath) {
153
178
  if (!expectSignatureHeader) {
154
179
  return null;
155
180
  }
156
181
  let parsedExpectSignature;
157
182
  try {
158
- parsedExpectSignature = _structuredHeaders().parseDictionary(expectSignatureHeader);
183
+ parsedExpectSignature = (0, _structuredHeaders().parseDictionary)(expectSignatureHeader);
159
184
  } catch {
160
185
  throw new _errors.CommandError("Invalid value for expo-expect-signature header");
161
186
  }
@@ -193,7 +218,7 @@ async function getCodeSigningInfoAsync(exp, expectSignatureHeader, privateKeyPat
193
218
  // can't check for scope key validity since scope key is derived on the server from projectId and we may be offline.
194
219
  // we rely upon the client certificate check to validate the scope key
195
220
  if (!easProjectId) {
196
- debug(`WARN: Expo Application Services (EAS) is not configured for your project. Configuring EAS enables a more secure development experience amongst many other benefits. ${(0, _link).learnMore("https://docs.expo.dev/eas/")}`);
221
+ debug(`WARN: Expo Application Services (EAS) is not configured for your project. Configuring EAS enables a more secure development experience amongst many other benefits. ${(0, _link.learnMore)("https://docs.expo.dev/eas/")}`);
197
222
  return null;
198
223
  }
199
224
  const developmentCodeSigningInfoFromFile = await DevelopmentCodeSigningInfoFile.readAsync(easProjectId);
@@ -205,7 +230,7 @@ async function getCodeSigningInfoAsync(exp, expectSignatureHeader, privateKeyPat
205
230
  return await fetchAndCacheNewDevelopmentCodeSigningInfoAsync(easProjectId);
206
231
  } catch (e) {
207
232
  if (validatedCodeSigningInfo) {
208
- Log.warn("There was an error fetching the Expo development certificate, falling back to cached certificate");
233
+ _log.warn("There was an error fetching the Expo development certificate, falling back to cached certificate");
209
234
  return validatedCodeSigningInfo;
210
235
  } else {
211
236
  // need to return null here and say a message
@@ -218,13 +243,13 @@ async function getCodeSigningInfoAsync(exp, expectSignatureHeader, privateKeyPat
218
243
  return validatedCodeSigningInfo;
219
244
  }
220
245
  // 3. if offline, return null
221
- Log.warn("Offline and no cached development certificate found, unable to sign manifest");
246
+ _log.warn("Offline and no cached development certificate found, unable to sign manifest");
222
247
  return null;
223
248
  }
224
249
  /**
225
250
  * Get the certificate configured for expo-updates for this project.
226
251
  */ async function getProjectCodeSigningCertificateAsync(exp, privateKeyPath, expectedKeyId, expectedAlg) {
227
- var ref, ref2;
252
+ var ref, ref1;
228
253
  const codeSigningCertificatePath = (ref = exp.updates) == null ? void 0 : ref.codeSigningCertificate;
229
254
  if (!codeSigningCertificatePath) {
230
255
  return null;
@@ -232,7 +257,7 @@ async function getCodeSigningInfoAsync(exp, expectSignatureHeader, privateKeyPat
232
257
  if (!privateKeyPath) {
233
258
  throw new _errors.CommandError("Must specify --private-key-path argument to sign development manifest for requested code signing key");
234
259
  }
235
- const codeSigningMetadata = (ref2 = exp.updates) == null ? void 0 : ref2.codeSigningMetadata;
260
+ const codeSigningMetadata = (ref1 = exp.updates) == null ? void 0 : ref1.codeSigningMetadata;
236
261
  if (!codeSigningMetadata) {
237
262
  throw new _errors.CommandError('Must specify "codeSigningMetadata" under the "updates" field of your app config file to use EAS code signing');
238
263
  }
@@ -270,9 +295,9 @@ async function getProjectPrivateKeyAndCertificateFromFilePathsAsync({ codeSignin
270
295
  readFileWithErrorAsync(codeSigningCertificatePath, `Code signing certificate cannot be read from path: ${codeSigningCertificatePath}`),
271
296
  readFileWithErrorAsync(privateKeyPath, `Code signing private key cannot be read from path: ${privateKeyPath}`),
272
297
  ]);
273
- const privateKey = _codeSigningCertificates().convertPrivateKeyPEMToPrivateKey(privateKeyPEM);
274
- const certificate = _codeSigningCertificates().convertCertificatePEMToCertificate(codeSigningCertificatePEM);
275
- _codeSigningCertificates().validateSelfSignedCertificate(certificate, {
298
+ const privateKey = (0, _codeSigningCertificates().convertPrivateKeyPEMToPrivateKey)(privateKeyPEM);
299
+ const certificate = (0, _codeSigningCertificates().convertCertificatePEMToCertificate)(codeSigningCertificatePEM);
300
+ (0, _codeSigningCertificates().validateSelfSignedCertificate)(certificate, {
276
301
  publicKey: certificate.publicKey,
277
302
  privateKey
278
303
  });
@@ -292,8 +317,7 @@ async function getProjectPrivateKeyAndCertificateFromFilePathsAsync({ codeSignin
292
317
  if (!privateKeyPEM || !certificatePEMs) {
293
318
  return null;
294
319
  }
295
- const certificateChain = certificatePEMs.map((certificatePEM)=>_codeSigningCertificates().convertCertificatePEMToCertificate(certificatePEM)
296
- );
320
+ const certificateChain = certificatePEMs.map((certificatePEM)=>(0, _codeSigningCertificates().convertCertificatePEMToCertificate)(certificatePEM));
297
321
  // TODO(wschurman): maybe move to @expo/code-signing-certificates
298
322
  // ensure all intermediate certificates are valid
299
323
  for (const certificate of certificateChain){
@@ -312,16 +336,14 @@ async function getProjectPrivateKeyAndCertificateFromFilePathsAsync({ codeSignin
312
336
  };
313
337
  }
314
338
  function actorCanGetProjectDevelopmentCertificate(actor, app) {
315
- var ref, ref3, ref4, ref5;
339
+ var ref, ref1, ref2, ref3;
316
340
  const owningAccountId = app.ownerAccount.id;
317
341
  const owningAccountIsActorPrimaryAccount = actor.__typename === "User" || actor.__typename === "SSOUser" ? actor.primaryAccount.id === owningAccountId : false;
318
- const userHasPublishPermissionForOwningAccount = !!((ref4 = (ref = actor.accounts.find((account)=>account.id === owningAccountId
319
- )) == null ? void 0 : (ref3 = ref.users) == null ? void 0 : ref3.find((userPermission)=>userPermission.actor.id === actor.id
320
- )) == null ? void 0 : (ref5 = ref4.permissions) == null ? void 0 : ref5.includes(_generated.Permission.Publish));
342
+ const userHasPublishPermissionForOwningAccount = !!((ref2 = (ref = actor.accounts.find((account)=>account.id === owningAccountId)) == null ? void 0 : (ref1 = ref.users) == null ? void 0 : ref1.find((userPermission)=>userPermission.actor.id === actor.id)) == null ? void 0 : (ref3 = ref2.permissions) == null ? void 0 : ref3.includes(_generated.Permission.Publish));
321
343
  return owningAccountIsActorPrimaryAccount || userHasPublishPermissionForOwningAccount;
322
344
  }
323
345
  async function fetchAndCacheNewDevelopmentCodeSigningInfoAsync(easProjectId) {
324
- const actor = await (0, _actions).ensureLoggedInAsync();
346
+ const actor = await (0, _actions.ensureLoggedInAsync)();
325
347
  let app;
326
348
  try {
327
349
  app = await _appQuery.AppQuery.byIdAsync(easProjectId);
@@ -334,13 +356,13 @@ async function fetchAndCacheNewDevelopmentCodeSigningInfoAsync(easProjectId) {
334
356
  if (!actorCanGetProjectDevelopmentCertificate(actor, app)) {
335
357
  return null;
336
358
  }
337
- const keyPair = _codeSigningCertificates().generateKeyPair();
338
- const keyPairPEM = _codeSigningCertificates().convertKeyPairToPEM(keyPair);
339
- const csr = _codeSigningCertificates().generateCSR(keyPair, `Development Certificate for ${easProjectId}`);
340
- const csrPEM = _codeSigningCertificates().convertCSRToCSRPEM(csr);
359
+ const keyPair = (0, _codeSigningCertificates().generateKeyPair)();
360
+ const keyPairPEM = (0, _codeSigningCertificates().convertKeyPairToPEM)(keyPair);
361
+ const csr = (0, _codeSigningCertificates().generateCSR)(keyPair, `Development Certificate for ${easProjectId}`);
362
+ const csrPEM = (0, _codeSigningCertificates().convertCSRToCSRPEM)(csr);
341
363
  const [developmentSigningCertificate, expoGoIntermediateCertificate] = await Promise.all([
342
- (0, _getProjectDevelopmentCertificate).getProjectDevelopmentCertificateAsync(easProjectId, csrPEM),
343
- (0, _getExpoGoIntermediateCertificate).getExpoGoIntermediateCertificateAsync(easProjectId),
364
+ (0, _getProjectDevelopmentCertificate.getProjectDevelopmentCertificateAsync)(easProjectId, csrPEM),
365
+ (0, _getExpoGoIntermediateCertificate.getExpoGoIntermediateCertificateAsync)(easProjectId),
344
366
  ]);
345
367
  await DevelopmentCodeSigningInfoFile.setAsync(easProjectId, {
346
368
  easProjectId,
@@ -363,9 +385,9 @@ async function fetchAndCacheNewDevelopmentCodeSigningInfoAsync(easProjectId) {
363
385
  };
364
386
  }
365
387
  function signManifestString(stringifiedManifest, codeSigningInfo) {
366
- const privateKey = _codeSigningCertificates().convertPrivateKeyPEMToPrivateKey(codeSigningInfo.privateKey);
367
- const certificate = _codeSigningCertificates().convertCertificatePEMToCertificate(codeSigningInfo.certificateForPrivateKey);
368
- return _codeSigningCertificates().signBufferRSASHA256AndVerify(privateKey, certificate, Buffer.from(stringifiedManifest, "utf8"));
388
+ const privateKey = (0, _codeSigningCertificates().convertPrivateKeyPEMToPrivateKey)(codeSigningInfo.privateKey);
389
+ const certificate = (0, _codeSigningCertificates().convertCertificatePEMToCertificate)(codeSigningInfo.certificateForPrivateKey);
390
+ return (0, _codeSigningCertificates().signBufferRSASHA256AndVerify)(privateKey, certificate, Buffer.from(stringifiedManifest, "utf8"));
369
391
  }
370
392
 
371
393
  //# sourceMappingURL=codesigning.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/codesigning.ts"],"sourcesContent":["import {\n convertCertificatePEMToCertificate,\n convertKeyPairToPEM,\n convertCSRToCSRPEM,\n generateKeyPair,\n generateCSR,\n convertPrivateKeyPEMToPrivateKey,\n validateSelfSignedCertificate,\n signBufferRSASHA256AndVerify,\n} from '@expo/code-signing-certificates';\nimport { ExpoConfig } from '@expo/config';\nimport { getExpoHomeDirectory } from '@expo/config/build/getUserState';\nimport JsonFile, { JSONObject } from '@expo/json-file';\nimport { CombinedError } from '@urql/core';\nimport { promises as fs } from 'fs';\nimport { GraphQLError } from 'graphql';\nimport { pki as PKI } from 'node-forge';\nimport path from 'path';\nimport { Dictionary, parseDictionary } from 'structured-headers';\n\nimport { env } from './env';\nimport { CommandError } from './errors';\nimport { getExpoGoIntermediateCertificateAsync } from '../api/getExpoGoIntermediateCertificate';\nimport { getProjectDevelopmentCertificateAsync } from '../api/getProjectDevelopmentCertificate';\nimport { AppQuery } from '../api/graphql/queries/AppQuery';\nimport { ensureLoggedInAsync } from '../api/user/actions';\nimport { Actor } from '../api/user/user';\nimport { AppByIdQuery, Permission } from '../graphql/generated';\nimport * as Log from '../log';\nimport { learnMore } from '../utils/link';\n\nconst debug = require('debug')('expo:codesigning') as typeof console.log;\n\nexport type CodeSigningInfo = {\n keyId: string;\n privateKey: string;\n certificateForPrivateKey: string;\n /**\n * Chain of certificates to serve in the manifest multipart body \"certificate_chain\" part.\n * The leaf certificate must be the 0th element of the array, followed by any intermediate certificates\n * necessary to evaluate the chain of trust ending in the implicitly trusted root certificate embedded in\n * the client.\n *\n * An empty array indicates that there is no need to serve the certificate chain in the multipart response.\n */\n certificateChainForResponse: string[];\n /**\n * Scope key cached for the project when certificate is development Expo Go code signing.\n * For project-specific code signing (keyId == the project's generated keyId) this is undefined.\n */\n scopeKey: string | null;\n};\n\ntype StoredDevelopmentExpoRootCodeSigningInfo = {\n easProjectId: string | null;\n scopeKey: string | null;\n privateKey: string | null;\n certificateChain: string[] | null;\n};\nconst DEVELOPMENT_CODE_SIGNING_SETTINGS_FILE_NAME = 'development-code-signing-settings-2.json';\n\nexport function getDevelopmentCodeSigningDirectory(): string {\n return path.join(getExpoHomeDirectory(), 'codesigning');\n}\n\nfunction getProjectDevelopmentCodeSigningInfoFile<T extends JSONObject>(defaults: T) {\n function getFile(easProjectId: string): JsonFile<T> {\n const filePath = path.join(\n getDevelopmentCodeSigningDirectory(),\n easProjectId,\n DEVELOPMENT_CODE_SIGNING_SETTINGS_FILE_NAME\n );\n return new JsonFile<T>(filePath);\n }\n\n async function readAsync(easProjectId: string): Promise<T> {\n let projectSettings;\n try {\n projectSettings = await getFile(easProjectId).readAsync();\n } catch {\n projectSettings = await getFile(easProjectId).writeAsync(defaults, { ensureDir: true });\n }\n // Set defaults for any missing fields\n return { ...defaults, ...projectSettings };\n }\n\n async function setAsync(easProjectId: string, json: Partial<T>): Promise<T> {\n try {\n return await getFile(easProjectId).mergeAsync(json, {\n cantReadFileDefault: defaults,\n });\n } catch {\n return await getFile(easProjectId).writeAsync(\n {\n ...defaults,\n ...json,\n },\n { ensureDir: true }\n );\n }\n }\n\n return {\n getFile,\n readAsync,\n setAsync,\n };\n}\n\nexport const DevelopmentCodeSigningInfoFile =\n getProjectDevelopmentCodeSigningInfoFile<StoredDevelopmentExpoRootCodeSigningInfo>({\n easProjectId: null,\n scopeKey: null,\n privateKey: null,\n certificateChain: null,\n });\n\n/**\n * Get info necessary to generate a response `expo-signature` header given a project and incoming request `expo-expect-signature` header.\n * This only knows how to serve two code signing keyids:\n * - `expo-root` indicates that it should use a development certificate in the `expo-root` chain. See {@link getExpoRootDevelopmentCodeSigningInfoAsync}\n * - <developer's expo-updates keyid> indicates that it should sign with the configured certificate. See {@link getProjectCodeSigningCertificateAsync}\n */\nexport async function getCodeSigningInfoAsync(\n exp: ExpoConfig,\n expectSignatureHeader: string | null,\n privateKeyPath: string | undefined\n): Promise<CodeSigningInfo | null> {\n if (!expectSignatureHeader) {\n return null;\n }\n\n let parsedExpectSignature: Dictionary;\n try {\n parsedExpectSignature = parseDictionary(expectSignatureHeader);\n } catch {\n throw new CommandError('Invalid value for expo-expect-signature header');\n }\n\n const expectedKeyIdOuter = parsedExpectSignature.get('keyid');\n if (!expectedKeyIdOuter) {\n throw new CommandError('keyid not present in expo-expect-signature header');\n }\n\n const expectedKeyId = expectedKeyIdOuter[0];\n if (typeof expectedKeyId !== 'string') {\n throw new CommandError(\n `Invalid value for keyid in expo-expect-signature header: ${expectedKeyId}`\n );\n }\n\n let expectedAlg: string | null = null;\n const expectedAlgOuter = parsedExpectSignature.get('alg');\n if (expectedAlgOuter) {\n const expectedAlgTemp = expectedAlgOuter[0];\n if (typeof expectedAlgTemp !== 'string') {\n throw new CommandError('Invalid value for alg in expo-expect-signature header');\n }\n expectedAlg = expectedAlgTemp;\n }\n\n if (expectedKeyId === 'expo-root') {\n return await getExpoRootDevelopmentCodeSigningInfoAsync(exp);\n } else if (expectedKeyId === 'expo-go') {\n throw new CommandError(\n 'Invalid certificate requested: cannot sign with embedded keyid=expo-go key'\n );\n } else {\n return await getProjectCodeSigningCertificateAsync(\n exp,\n privateKeyPath,\n expectedKeyId,\n expectedAlg\n );\n }\n}\n\n/**\n * Get a development code signing certificate for the expo-root -> expo-go -> (development certificate) certificate chain.\n * This requires the user be logged in and online, otherwise try to use the cached development certificate.\n */\nasync function getExpoRootDevelopmentCodeSigningInfoAsync(\n exp: ExpoConfig\n): Promise<CodeSigningInfo | null> {\n const easProjectId = exp.extra?.eas?.projectId;\n // can't check for scope key validity since scope key is derived on the server from projectId and we may be offline.\n // we rely upon the client certificate check to validate the scope key\n if (!easProjectId) {\n debug(\n `WARN: Expo Application Services (EAS) is not configured for your project. Configuring EAS enables a more secure development experience amongst many other benefits. ${learnMore(\n 'https://docs.expo.dev/eas/'\n )}`\n );\n return null;\n }\n\n const developmentCodeSigningInfoFromFile =\n await DevelopmentCodeSigningInfoFile.readAsync(easProjectId);\n const validatedCodeSigningInfo = validateStoredDevelopmentExpoRootCertificateCodeSigningInfo(\n developmentCodeSigningInfoFromFile,\n easProjectId\n );\n\n // 1. If online, ensure logged in, generate key pair and CSR, fetch and cache certificate chain for projectId\n // (overwriting existing dev cert in case projectId changed or it has expired)\n if (!env.EXPO_OFFLINE) {\n try {\n return await fetchAndCacheNewDevelopmentCodeSigningInfoAsync(easProjectId);\n } catch (e: any) {\n if (validatedCodeSigningInfo) {\n Log.warn(\n 'There was an error fetching the Expo development certificate, falling back to cached certificate'\n );\n return validatedCodeSigningInfo;\n } else {\n // need to return null here and say a message\n throw e;\n }\n }\n }\n\n // 2. check for cached cert/private key matching projectId and scopeKey of project, if found and valid return private key and cert chain including expo-go cert\n if (validatedCodeSigningInfo) {\n return validatedCodeSigningInfo;\n }\n\n // 3. if offline, return null\n Log.warn('Offline and no cached development certificate found, unable to sign manifest');\n return null;\n}\n\n/**\n * Get the certificate configured for expo-updates for this project.\n */\nasync function getProjectCodeSigningCertificateAsync(\n exp: ExpoConfig,\n privateKeyPath: string | undefined,\n expectedKeyId: string,\n expectedAlg: string | null\n): Promise<CodeSigningInfo | null> {\n const codeSigningCertificatePath = exp.updates?.codeSigningCertificate;\n if (!codeSigningCertificatePath) {\n return null;\n }\n\n if (!privateKeyPath) {\n throw new CommandError(\n 'Must specify --private-key-path argument to sign development manifest for requested code signing key'\n );\n }\n\n const codeSigningMetadata = exp.updates?.codeSigningMetadata;\n if (!codeSigningMetadata) {\n throw new CommandError(\n 'Must specify \"codeSigningMetadata\" under the \"updates\" field of your app config file to use EAS code signing'\n );\n }\n\n const { alg, keyid } = codeSigningMetadata;\n if (!alg || !keyid) {\n throw new CommandError(\n 'Must specify \"keyid\" and \"alg\" in the \"codeSigningMetadata\" field under the \"updates\" field of your app config file to use EAS code signing'\n );\n }\n\n if (expectedKeyId !== keyid) {\n throw new CommandError(`keyid mismatch: client=${expectedKeyId}, project=${keyid}`);\n }\n\n if (expectedAlg && expectedAlg !== alg) {\n throw new CommandError(`\"alg\" field mismatch (client=${expectedAlg}, project=${alg})`);\n }\n\n const { privateKeyPEM, certificatePEM } =\n await getProjectPrivateKeyAndCertificateFromFilePathsAsync({\n codeSigningCertificatePath,\n privateKeyPath,\n });\n\n return {\n keyId: keyid,\n privateKey: privateKeyPEM,\n certificateForPrivateKey: certificatePEM,\n certificateChainForResponse: [],\n scopeKey: null,\n };\n}\n\nasync function readFileWithErrorAsync(path: string, errorMessage: string): Promise<string> {\n try {\n return await fs.readFile(path, 'utf8');\n } catch {\n throw new CommandError(errorMessage);\n }\n}\n\nasync function getProjectPrivateKeyAndCertificateFromFilePathsAsync({\n codeSigningCertificatePath,\n privateKeyPath,\n}: {\n codeSigningCertificatePath: string;\n privateKeyPath: string;\n}): Promise<{ privateKeyPEM: string; certificatePEM: string }> {\n const [codeSigningCertificatePEM, privateKeyPEM] = await Promise.all([\n readFileWithErrorAsync(\n codeSigningCertificatePath,\n `Code signing certificate cannot be read from path: ${codeSigningCertificatePath}`\n ),\n readFileWithErrorAsync(\n privateKeyPath,\n `Code signing private key cannot be read from path: ${privateKeyPath}`\n ),\n ]);\n\n const privateKey = convertPrivateKeyPEMToPrivateKey(privateKeyPEM);\n const certificate = convertCertificatePEMToCertificate(codeSigningCertificatePEM);\n validateSelfSignedCertificate(certificate, {\n publicKey: certificate.publicKey as PKI.rsa.PublicKey,\n privateKey,\n });\n\n return { privateKeyPEM, certificatePEM: codeSigningCertificatePEM };\n}\n\n/**\n * Validate that the cached code signing info is still valid for the current project and\n * that it hasn't expired. If invalid, return null.\n */\nfunction validateStoredDevelopmentExpoRootCertificateCodeSigningInfo(\n codeSigningInfo: StoredDevelopmentExpoRootCodeSigningInfo,\n easProjectId: string\n): CodeSigningInfo | null {\n if (codeSigningInfo.easProjectId !== easProjectId) {\n return null;\n }\n\n const {\n privateKey: privateKeyPEM,\n certificateChain: certificatePEMs,\n scopeKey,\n } = codeSigningInfo;\n if (!privateKeyPEM || !certificatePEMs) {\n return null;\n }\n\n const certificateChain = certificatePEMs.map((certificatePEM) =>\n convertCertificatePEMToCertificate(certificatePEM)\n );\n\n // TODO(wschurman): maybe move to @expo/code-signing-certificates\n\n // ensure all intermediate certificates are valid\n for (const certificate of certificateChain) {\n const now = new Date();\n if (certificate.validity.notBefore > now || certificate.validity.notAfter < now) {\n return null;\n }\n }\n\n // TODO(wschurman): maybe do more validation, like validation of projectID and scopeKey within eas certificate extension\n\n return {\n keyId: 'expo-go',\n certificateChainForResponse: certificatePEMs,\n certificateForPrivateKey: certificatePEMs[0],\n privateKey: privateKeyPEM,\n scopeKey,\n };\n}\n\nfunction actorCanGetProjectDevelopmentCertificate(actor: Actor, app: AppByIdQuery['app']['byId']) {\n const owningAccountId = app.ownerAccount.id;\n\n const owningAccountIsActorPrimaryAccount =\n actor.__typename === 'User' || actor.__typename === 'SSOUser'\n ? actor.primaryAccount.id === owningAccountId\n : false;\n const userHasPublishPermissionForOwningAccount = !!actor.accounts\n .find((account) => account.id === owningAccountId)\n ?.users?.find((userPermission) => userPermission.actor.id === actor.id)\n ?.permissions?.includes(Permission.Publish);\n return owningAccountIsActorPrimaryAccount || userHasPublishPermissionForOwningAccount;\n}\n\nasync function fetchAndCacheNewDevelopmentCodeSigningInfoAsync(\n easProjectId: string\n): Promise<CodeSigningInfo | null> {\n const actor = await ensureLoggedInAsync();\n let app: AppByIdQuery['app']['byId'];\n try {\n app = await AppQuery.byIdAsync(easProjectId);\n } catch (e) {\n if (e instanceof GraphQLError || e instanceof CombinedError) {\n return null;\n }\n throw e;\n }\n if (!actorCanGetProjectDevelopmentCertificate(actor, app)) {\n return null;\n }\n\n const keyPair = generateKeyPair();\n const keyPairPEM = convertKeyPairToPEM(keyPair);\n const csr = generateCSR(keyPair, `Development Certificate for ${easProjectId}`);\n const csrPEM = convertCSRToCSRPEM(csr);\n const [developmentSigningCertificate, expoGoIntermediateCertificate] = await Promise.all([\n getProjectDevelopmentCertificateAsync(easProjectId, csrPEM),\n getExpoGoIntermediateCertificateAsync(easProjectId),\n ]);\n\n await DevelopmentCodeSigningInfoFile.setAsync(easProjectId, {\n easProjectId,\n scopeKey: app.scopeKey,\n privateKey: keyPairPEM.privateKeyPEM,\n certificateChain: [developmentSigningCertificate, expoGoIntermediateCertificate],\n });\n\n return {\n keyId: 'expo-go',\n certificateChainForResponse: [developmentSigningCertificate, expoGoIntermediateCertificate],\n certificateForPrivateKey: developmentSigningCertificate,\n privateKey: keyPairPEM.privateKeyPEM,\n scopeKey: app.scopeKey,\n };\n}\n/**\n * Generate the `expo-signature` header for a manifest and code signing info.\n */\nexport function signManifestString(\n stringifiedManifest: string,\n codeSigningInfo: CodeSigningInfo\n): string {\n const privateKey = convertPrivateKeyPEMToPrivateKey(codeSigningInfo.privateKey);\n const certificate = convertCertificatePEMToCertificate(codeSigningInfo.certificateForPrivateKey);\n return signBufferRSASHA256AndVerify(\n privateKey,\n certificate,\n Buffer.from(stringifiedManifest, 'utf8')\n );\n}\n"],"names":["getDevelopmentCodeSigningDirectory","getCodeSigningInfoAsync","signManifestString","Log","debug","require","DEVELOPMENT_CODE_SIGNING_SETTINGS_FILE_NAME","path","join","getExpoHomeDirectory","getProjectDevelopmentCodeSigningInfoFile","defaults","getFile","easProjectId","filePath","JsonFile","readAsync","projectSettings","writeAsync","ensureDir","setAsync","json","mergeAsync","cantReadFileDefault","DevelopmentCodeSigningInfoFile","scopeKey","privateKey","certificateChain","exp","expectSignatureHeader","privateKeyPath","parsedExpectSignature","parseDictionary","CommandError","expectedKeyIdOuter","get","expectedKeyId","expectedAlg","expectedAlgOuter","expectedAlgTemp","getExpoRootDevelopmentCodeSigningInfoAsync","getProjectCodeSigningCertificateAsync","extra","eas","projectId","learnMore","developmentCodeSigningInfoFromFile","validatedCodeSigningInfo","validateStoredDevelopmentExpoRootCertificateCodeSigningInfo","env","EXPO_OFFLINE","fetchAndCacheNewDevelopmentCodeSigningInfoAsync","e","warn","codeSigningCertificatePath","updates","codeSigningCertificate","codeSigningMetadata","alg","keyid","privateKeyPEM","certificatePEM","getProjectPrivateKeyAndCertificateFromFilePathsAsync","keyId","certificateForPrivateKey","certificateChainForResponse","readFileWithErrorAsync","errorMessage","fs","readFile","codeSigningCertificatePEM","Promise","all","convertPrivateKeyPEMToPrivateKey","certificate","convertCertificatePEMToCertificate","validateSelfSignedCertificate","publicKey","codeSigningInfo","certificatePEMs","map","now","Date","validity","notBefore","notAfter","actorCanGetProjectDevelopmentCertificate","actor","app","owningAccountId","ownerAccount","id","owningAccountIsActorPrimaryAccount","__typename","primaryAccount","userHasPublishPermissionForOwningAccount","accounts","find","account","users","userPermission","permissions","includes","Permission","Publish","ensureLoggedInAsync","AppQuery","byIdAsync","GraphQLError","CombinedError","keyPair","generateKeyPair","keyPairPEM","convertKeyPairToPEM","csr","generateCSR","csrPEM","convertCSRToCSRPEM","developmentSigningCertificate","expoGoIntermediateCertificate","getProjectDevelopmentCertificateAsync","getExpoGoIntermediateCertificateAsync","stringifiedManifest","signBufferRSASHA256AndVerify","Buffer","from"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/utils/codesigning.ts"],"sourcesContent":["import {\n convertCertificatePEMToCertificate,\n convertKeyPairToPEM,\n convertCSRToCSRPEM,\n generateKeyPair,\n generateCSR,\n convertPrivateKeyPEMToPrivateKey,\n validateSelfSignedCertificate,\n signBufferRSASHA256AndVerify,\n} from '@expo/code-signing-certificates';\nimport { ExpoConfig } from '@expo/config';\nimport { getExpoHomeDirectory } from '@expo/config/build/getUserState';\nimport JsonFile, { JSONObject } from '@expo/json-file';\nimport { CombinedError } from '@urql/core';\nimport { promises as fs } from 'fs';\nimport { GraphQLError } from 'graphql';\nimport { pki as PKI } from 'node-forge';\nimport path from 'path';\nimport { Dictionary, parseDictionary } from 'structured-headers';\n\nimport { env } from './env';\nimport { CommandError } from './errors';\nimport { getExpoGoIntermediateCertificateAsync } from '../api/getExpoGoIntermediateCertificate';\nimport { getProjectDevelopmentCertificateAsync } from '../api/getProjectDevelopmentCertificate';\nimport { AppQuery } from '../api/graphql/queries/AppQuery';\nimport { ensureLoggedInAsync } from '../api/user/actions';\nimport { Actor } from '../api/user/user';\nimport { AppByIdQuery, Permission } from '../graphql/generated';\nimport * as Log from '../log';\nimport { learnMore } from '../utils/link';\n\nconst debug = require('debug')('expo:codesigning') as typeof console.log;\n\nexport type CodeSigningInfo = {\n keyId: string;\n privateKey: string;\n certificateForPrivateKey: string;\n /**\n * Chain of certificates to serve in the manifest multipart body \"certificate_chain\" part.\n * The leaf certificate must be the 0th element of the array, followed by any intermediate certificates\n * necessary to evaluate the chain of trust ending in the implicitly trusted root certificate embedded in\n * the client.\n *\n * An empty array indicates that there is no need to serve the certificate chain in the multipart response.\n */\n certificateChainForResponse: string[];\n /**\n * Scope key cached for the project when certificate is development Expo Go code signing.\n * For project-specific code signing (keyId == the project's generated keyId) this is undefined.\n */\n scopeKey: string | null;\n};\n\ntype StoredDevelopmentExpoRootCodeSigningInfo = {\n easProjectId: string | null;\n scopeKey: string | null;\n privateKey: string | null;\n certificateChain: string[] | null;\n};\nconst DEVELOPMENT_CODE_SIGNING_SETTINGS_FILE_NAME = 'development-code-signing-settings-2.json';\n\nexport function getDevelopmentCodeSigningDirectory(): string {\n return path.join(getExpoHomeDirectory(), 'codesigning');\n}\n\nfunction getProjectDevelopmentCodeSigningInfoFile<T extends JSONObject>(defaults: T) {\n function getFile(easProjectId: string): JsonFile<T> {\n const filePath = path.join(\n getDevelopmentCodeSigningDirectory(),\n easProjectId,\n DEVELOPMENT_CODE_SIGNING_SETTINGS_FILE_NAME\n );\n return new JsonFile<T>(filePath);\n }\n\n async function readAsync(easProjectId: string): Promise<T> {\n let projectSettings;\n try {\n projectSettings = await getFile(easProjectId).readAsync();\n } catch {\n projectSettings = await getFile(easProjectId).writeAsync(defaults, { ensureDir: true });\n }\n // Set defaults for any missing fields\n return { ...defaults, ...projectSettings };\n }\n\n async function setAsync(easProjectId: string, json: Partial<T>): Promise<T> {\n try {\n return await getFile(easProjectId).mergeAsync(json, {\n cantReadFileDefault: defaults,\n });\n } catch {\n return await getFile(easProjectId).writeAsync(\n {\n ...defaults,\n ...json,\n },\n { ensureDir: true }\n );\n }\n }\n\n return {\n getFile,\n readAsync,\n setAsync,\n };\n}\n\nexport const DevelopmentCodeSigningInfoFile =\n getProjectDevelopmentCodeSigningInfoFile<StoredDevelopmentExpoRootCodeSigningInfo>({\n easProjectId: null,\n scopeKey: null,\n privateKey: null,\n certificateChain: null,\n });\n\n/**\n * Get info necessary to generate a response `expo-signature` header given a project and incoming request `expo-expect-signature` header.\n * This only knows how to serve two code signing keyids:\n * - `expo-root` indicates that it should use a development certificate in the `expo-root` chain. See {@link getExpoRootDevelopmentCodeSigningInfoAsync}\n * - <developer's expo-updates keyid> indicates that it should sign with the configured certificate. See {@link getProjectCodeSigningCertificateAsync}\n */\nexport async function getCodeSigningInfoAsync(\n exp: ExpoConfig,\n expectSignatureHeader: string | null,\n privateKeyPath: string | undefined\n): Promise<CodeSigningInfo | null> {\n if (!expectSignatureHeader) {\n return null;\n }\n\n let parsedExpectSignature: Dictionary;\n try {\n parsedExpectSignature = parseDictionary(expectSignatureHeader);\n } catch {\n throw new CommandError('Invalid value for expo-expect-signature header');\n }\n\n const expectedKeyIdOuter = parsedExpectSignature.get('keyid');\n if (!expectedKeyIdOuter) {\n throw new CommandError('keyid not present in expo-expect-signature header');\n }\n\n const expectedKeyId = expectedKeyIdOuter[0];\n if (typeof expectedKeyId !== 'string') {\n throw new CommandError(\n `Invalid value for keyid in expo-expect-signature header: ${expectedKeyId}`\n );\n }\n\n let expectedAlg: string | null = null;\n const expectedAlgOuter = parsedExpectSignature.get('alg');\n if (expectedAlgOuter) {\n const expectedAlgTemp = expectedAlgOuter[0];\n if (typeof expectedAlgTemp !== 'string') {\n throw new CommandError('Invalid value for alg in expo-expect-signature header');\n }\n expectedAlg = expectedAlgTemp;\n }\n\n if (expectedKeyId === 'expo-root') {\n return await getExpoRootDevelopmentCodeSigningInfoAsync(exp);\n } else if (expectedKeyId === 'expo-go') {\n throw new CommandError(\n 'Invalid certificate requested: cannot sign with embedded keyid=expo-go key'\n );\n } else {\n return await getProjectCodeSigningCertificateAsync(\n exp,\n privateKeyPath,\n expectedKeyId,\n expectedAlg\n );\n }\n}\n\n/**\n * Get a development code signing certificate for the expo-root -> expo-go -> (development certificate) certificate chain.\n * This requires the user be logged in and online, otherwise try to use the cached development certificate.\n */\nasync function getExpoRootDevelopmentCodeSigningInfoAsync(\n exp: ExpoConfig\n): Promise<CodeSigningInfo | null> {\n const easProjectId = exp.extra?.eas?.projectId;\n // can't check for scope key validity since scope key is derived on the server from projectId and we may be offline.\n // we rely upon the client certificate check to validate the scope key\n if (!easProjectId) {\n debug(\n `WARN: Expo Application Services (EAS) is not configured for your project. Configuring EAS enables a more secure development experience amongst many other benefits. ${learnMore(\n 'https://docs.expo.dev/eas/'\n )}`\n );\n return null;\n }\n\n const developmentCodeSigningInfoFromFile =\n await DevelopmentCodeSigningInfoFile.readAsync(easProjectId);\n const validatedCodeSigningInfo = validateStoredDevelopmentExpoRootCertificateCodeSigningInfo(\n developmentCodeSigningInfoFromFile,\n easProjectId\n );\n\n // 1. If online, ensure logged in, generate key pair and CSR, fetch and cache certificate chain for projectId\n // (overwriting existing dev cert in case projectId changed or it has expired)\n if (!env.EXPO_OFFLINE) {\n try {\n return await fetchAndCacheNewDevelopmentCodeSigningInfoAsync(easProjectId);\n } catch (e: any) {\n if (validatedCodeSigningInfo) {\n Log.warn(\n 'There was an error fetching the Expo development certificate, falling back to cached certificate'\n );\n return validatedCodeSigningInfo;\n } else {\n // need to return null here and say a message\n throw e;\n }\n }\n }\n\n // 2. check for cached cert/private key matching projectId and scopeKey of project, if found and valid return private key and cert chain including expo-go cert\n if (validatedCodeSigningInfo) {\n return validatedCodeSigningInfo;\n }\n\n // 3. if offline, return null\n Log.warn('Offline and no cached development certificate found, unable to sign manifest');\n return null;\n}\n\n/**\n * Get the certificate configured for expo-updates for this project.\n */\nasync function getProjectCodeSigningCertificateAsync(\n exp: ExpoConfig,\n privateKeyPath: string | undefined,\n expectedKeyId: string,\n expectedAlg: string | null\n): Promise<CodeSigningInfo | null> {\n const codeSigningCertificatePath = exp.updates?.codeSigningCertificate;\n if (!codeSigningCertificatePath) {\n return null;\n }\n\n if (!privateKeyPath) {\n throw new CommandError(\n 'Must specify --private-key-path argument to sign development manifest for requested code signing key'\n );\n }\n\n const codeSigningMetadata = exp.updates?.codeSigningMetadata;\n if (!codeSigningMetadata) {\n throw new CommandError(\n 'Must specify \"codeSigningMetadata\" under the \"updates\" field of your app config file to use EAS code signing'\n );\n }\n\n const { alg, keyid } = codeSigningMetadata;\n if (!alg || !keyid) {\n throw new CommandError(\n 'Must specify \"keyid\" and \"alg\" in the \"codeSigningMetadata\" field under the \"updates\" field of your app config file to use EAS code signing'\n );\n }\n\n if (expectedKeyId !== keyid) {\n throw new CommandError(`keyid mismatch: client=${expectedKeyId}, project=${keyid}`);\n }\n\n if (expectedAlg && expectedAlg !== alg) {\n throw new CommandError(`\"alg\" field mismatch (client=${expectedAlg}, project=${alg})`);\n }\n\n const { privateKeyPEM, certificatePEM } =\n await getProjectPrivateKeyAndCertificateFromFilePathsAsync({\n codeSigningCertificatePath,\n privateKeyPath,\n });\n\n return {\n keyId: keyid,\n privateKey: privateKeyPEM,\n certificateForPrivateKey: certificatePEM,\n certificateChainForResponse: [],\n scopeKey: null,\n };\n}\n\nasync function readFileWithErrorAsync(path: string, errorMessage: string): Promise<string> {\n try {\n return await fs.readFile(path, 'utf8');\n } catch {\n throw new CommandError(errorMessage);\n }\n}\n\nasync function getProjectPrivateKeyAndCertificateFromFilePathsAsync({\n codeSigningCertificatePath,\n privateKeyPath,\n}: {\n codeSigningCertificatePath: string;\n privateKeyPath: string;\n}): Promise<{ privateKeyPEM: string; certificatePEM: string }> {\n const [codeSigningCertificatePEM, privateKeyPEM] = await Promise.all([\n readFileWithErrorAsync(\n codeSigningCertificatePath,\n `Code signing certificate cannot be read from path: ${codeSigningCertificatePath}`\n ),\n readFileWithErrorAsync(\n privateKeyPath,\n `Code signing private key cannot be read from path: ${privateKeyPath}`\n ),\n ]);\n\n const privateKey = convertPrivateKeyPEMToPrivateKey(privateKeyPEM);\n const certificate = convertCertificatePEMToCertificate(codeSigningCertificatePEM);\n validateSelfSignedCertificate(certificate, {\n publicKey: certificate.publicKey as PKI.rsa.PublicKey,\n privateKey,\n });\n\n return { privateKeyPEM, certificatePEM: codeSigningCertificatePEM };\n}\n\n/**\n * Validate that the cached code signing info is still valid for the current project and\n * that it hasn't expired. If invalid, return null.\n */\nfunction validateStoredDevelopmentExpoRootCertificateCodeSigningInfo(\n codeSigningInfo: StoredDevelopmentExpoRootCodeSigningInfo,\n easProjectId: string\n): CodeSigningInfo | null {\n if (codeSigningInfo.easProjectId !== easProjectId) {\n return null;\n }\n\n const {\n privateKey: privateKeyPEM,\n certificateChain: certificatePEMs,\n scopeKey,\n } = codeSigningInfo;\n if (!privateKeyPEM || !certificatePEMs) {\n return null;\n }\n\n const certificateChain = certificatePEMs.map((certificatePEM) =>\n convertCertificatePEMToCertificate(certificatePEM)\n );\n\n // TODO(wschurman): maybe move to @expo/code-signing-certificates\n\n // ensure all intermediate certificates are valid\n for (const certificate of certificateChain) {\n const now = new Date();\n if (certificate.validity.notBefore > now || certificate.validity.notAfter < now) {\n return null;\n }\n }\n\n // TODO(wschurman): maybe do more validation, like validation of projectID and scopeKey within eas certificate extension\n\n return {\n keyId: 'expo-go',\n certificateChainForResponse: certificatePEMs,\n certificateForPrivateKey: certificatePEMs[0],\n privateKey: privateKeyPEM,\n scopeKey,\n };\n}\n\nfunction actorCanGetProjectDevelopmentCertificate(actor: Actor, app: AppByIdQuery['app']['byId']) {\n const owningAccountId = app.ownerAccount.id;\n\n const owningAccountIsActorPrimaryAccount =\n actor.__typename === 'User' || actor.__typename === 'SSOUser'\n ? actor.primaryAccount.id === owningAccountId\n : false;\n const userHasPublishPermissionForOwningAccount = !!actor.accounts\n .find((account) => account.id === owningAccountId)\n ?.users?.find((userPermission) => userPermission.actor.id === actor.id)\n ?.permissions?.includes(Permission.Publish);\n return owningAccountIsActorPrimaryAccount || userHasPublishPermissionForOwningAccount;\n}\n\nasync function fetchAndCacheNewDevelopmentCodeSigningInfoAsync(\n easProjectId: string\n): Promise<CodeSigningInfo | null> {\n const actor = await ensureLoggedInAsync();\n let app: AppByIdQuery['app']['byId'];\n try {\n app = await AppQuery.byIdAsync(easProjectId);\n } catch (e) {\n if (e instanceof GraphQLError || e instanceof CombinedError) {\n return null;\n }\n throw e;\n }\n if (!actorCanGetProjectDevelopmentCertificate(actor, app)) {\n return null;\n }\n\n const keyPair = generateKeyPair();\n const keyPairPEM = convertKeyPairToPEM(keyPair);\n const csr = generateCSR(keyPair, `Development Certificate for ${easProjectId}`);\n const csrPEM = convertCSRToCSRPEM(csr);\n const [developmentSigningCertificate, expoGoIntermediateCertificate] = await Promise.all([\n getProjectDevelopmentCertificateAsync(easProjectId, csrPEM),\n getExpoGoIntermediateCertificateAsync(easProjectId),\n ]);\n\n await DevelopmentCodeSigningInfoFile.setAsync(easProjectId, {\n easProjectId,\n scopeKey: app.scopeKey,\n privateKey: keyPairPEM.privateKeyPEM,\n certificateChain: [developmentSigningCertificate, expoGoIntermediateCertificate],\n });\n\n return {\n keyId: 'expo-go',\n certificateChainForResponse: [developmentSigningCertificate, expoGoIntermediateCertificate],\n certificateForPrivateKey: developmentSigningCertificate,\n privateKey: keyPairPEM.privateKeyPEM,\n scopeKey: app.scopeKey,\n };\n}\n/**\n * Generate the `expo-signature` header for a manifest and code signing info.\n */\nexport function signManifestString(\n stringifiedManifest: string,\n codeSigningInfo: CodeSigningInfo\n): string {\n const privateKey = convertPrivateKeyPEMToPrivateKey(codeSigningInfo.privateKey);\n const certificate = convertCertificatePEMToCertificate(codeSigningInfo.certificateForPrivateKey);\n return signBufferRSASHA256AndVerify(\n privateKey,\n certificate,\n Buffer.from(stringifiedManifest, 'utf8')\n );\n}\n"],"names":["getDevelopmentCodeSigningDirectory","DevelopmentCodeSigningInfoFile","getCodeSigningInfoAsync","signManifestString","debug","require","DEVELOPMENT_CODE_SIGNING_SETTINGS_FILE_NAME","path","join","getExpoHomeDirectory","getProjectDevelopmentCodeSigningInfoFile","defaults","getFile","easProjectId","filePath","JsonFile","readAsync","projectSettings","writeAsync","ensureDir","setAsync","json","mergeAsync","cantReadFileDefault","scopeKey","privateKey","certificateChain","exp","expectSignatureHeader","privateKeyPath","parsedExpectSignature","parseDictionary","CommandError","expectedKeyIdOuter","get","expectedKeyId","expectedAlg","expectedAlgOuter","expectedAlgTemp","getExpoRootDevelopmentCodeSigningInfoAsync","getProjectCodeSigningCertificateAsync","extra","eas","projectId","learnMore","developmentCodeSigningInfoFromFile","validatedCodeSigningInfo","validateStoredDevelopmentExpoRootCertificateCodeSigningInfo","env","EXPO_OFFLINE","fetchAndCacheNewDevelopmentCodeSigningInfoAsync","e","Log","warn","codeSigningCertificatePath","updates","codeSigningCertificate","codeSigningMetadata","alg","keyid","privateKeyPEM","certificatePEM","getProjectPrivateKeyAndCertificateFromFilePathsAsync","keyId","certificateForPrivateKey","certificateChainForResponse","readFileWithErrorAsync","errorMessage","fs","readFile","codeSigningCertificatePEM","Promise","all","convertPrivateKeyPEMToPrivateKey","certificate","convertCertificatePEMToCertificate","validateSelfSignedCertificate","publicKey","codeSigningInfo","certificatePEMs","map","now","Date","validity","notBefore","notAfter","actorCanGetProjectDevelopmentCertificate","actor","app","owningAccountId","ownerAccount","id","owningAccountIsActorPrimaryAccount","__typename","primaryAccount","userHasPublishPermissionForOwningAccount","accounts","find","account","users","userPermission","permissions","includes","Permission","Publish","ensureLoggedInAsync","AppQuery","byIdAsync","GraphQLError","CombinedError","keyPair","generateKeyPair","keyPairPEM","convertKeyPairToPEM","csr","generateCSR","csrPEM","convertCSRToCSRPEM","developmentSigningCertificate","expoGoIntermediateCertificate","getProjectDevelopmentCertificateAsync","getExpoGoIntermediateCertificateAsync","stringifiedManifest","signBufferRSASHA256AndVerify","Buffer","from"],"mappings":"AAAA;;;;;;;;;;;IA6DgBA,kCAAkC,MAAlCA,kCAAkC;IAgDrCC,8BAA8B,MAA9BA,8BAA8B;IAcrBC,uBAAuB,MAAvBA,uBAAuB;IAiT7BC,kBAAkB,MAAlBA,kBAAkB;;;yBAna3B,iCAAiC;;;;;;;yBAEH,iCAAiC;;;;;;;8DACjC,iBAAiB;;;;;;;yBACxB,YAAY;;;;;;;yBACX,IAAI;;;;;;;yBACN,SAAS;;;;;;;8DAErB,MAAM;;;;;;;yBACqB,oBAAoB;;;;;;qBAE5C,OAAO;wBACE,UAAU;kDACe,yCAAyC;kDACzC,yCAAyC;0BACtE,iCAAiC;yBACtB,qBAAqB;2BAEhB,sBAAsB;2DAC1C,QAAQ;sBACH,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEzC,MAAMC,KAAK,GAAGC,OAAO,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAC,AAAsB,AAAC;AA4BzE,MAAMC,2CAA2C,GAAG,0CAA0C,AAAC;AAExF,SAASN,kCAAkC,GAAW;IAC3D,OAAOO,KAAI,EAAA,QAAA,CAACC,IAAI,CAACC,IAAAA,aAAoB,EAAA,qBAAA,GAAE,EAAE,aAAa,CAAC,CAAC;AAC1D,CAAC;AAED,SAASC,wCAAwC,CAAuBC,QAAW,EAAE;IACnF,SAASC,OAAO,CAACC,YAAoB,EAAe;QAClD,MAAMC,QAAQ,GAAGP,KAAI,EAAA,QAAA,CAACC,IAAI,CACxBR,kCAAkC,EAAE,EACpCa,YAAY,EACZP,2CAA2C,CAC5C,AAAC;QACF,OAAO,IAAIS,CAAAA,SAAQ,EAAA,CAAA,QAAA,CAAID,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,eAAeE,SAAS,CAACH,YAAoB,EAAc;QACzD,IAAII,eAAe,AAAC;QACpB,IAAI;YACFA,eAAe,GAAG,MAAML,OAAO,CAACC,YAAY,CAAC,CAACG,SAAS,EAAE,CAAC;QAC5D,EAAE,OAAM;YACNC,eAAe,GAAG,MAAML,OAAO,CAACC,YAAY,CAAC,CAACK,UAAU,CAACP,QAAQ,EAAE;gBAAEQ,SAAS,EAAE,IAAI;aAAE,CAAC,CAAC;QAC1F,CAAC;QACD,sCAAsC;QACtC,OAAO;YAAE,GAAGR,QAAQ;YAAE,GAAGM,eAAe;SAAE,CAAC;IAC7C,CAAC;IAED,eAAeG,QAAQ,CAACP,YAAoB,EAAEQ,IAAgB,EAAc;QAC1E,IAAI;YACF,OAAO,MAAMT,OAAO,CAACC,YAAY,CAAC,CAACS,UAAU,CAACD,IAAI,EAAE;gBAClDE,mBAAmB,EAAEZ,QAAQ;aAC9B,CAAC,CAAC;QACL,EAAE,OAAM;YACN,OAAO,MAAMC,OAAO,CAACC,YAAY,CAAC,CAACK,UAAU,CAC3C;gBACE,GAAGP,QAAQ;gBACX,GAAGU,IAAI;aACR,EACD;gBAAEF,SAAS,EAAE,IAAI;aAAE,CACpB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACLP,OAAO;QACPI,SAAS;QACTI,QAAQ;KACT,CAAC;AACJ,CAAC;AAEM,MAAMnB,8BAA8B,GACzCS,wCAAwC,CAA2C;IACjFG,YAAY,EAAE,IAAI;IAClBW,QAAQ,EAAE,IAAI;IACdC,UAAU,EAAE,IAAI;IAChBC,gBAAgB,EAAE,IAAI;CACvB,CAAC,AAAC;AAQE,eAAexB,uBAAuB,CAC3CyB,GAAe,EACfC,qBAAoC,EACpCC,cAAkC,EACD;IACjC,IAAI,CAACD,qBAAqB,EAAE;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAIE,qBAAqB,AAAY,AAAC;IACtC,IAAI;QACFA,qBAAqB,GAAGC,IAAAA,kBAAe,EAAA,gBAAA,EAACH,qBAAqB,CAAC,CAAC;IACjE,EAAE,OAAM;QACN,MAAM,IAAII,OAAY,aAAA,CAAC,gDAAgD,CAAC,CAAC;IAC3E,CAAC;IAED,MAAMC,kBAAkB,GAAGH,qBAAqB,CAACI,GAAG,CAAC,OAAO,CAAC,AAAC;IAC9D,IAAI,CAACD,kBAAkB,EAAE;QACvB,MAAM,IAAID,OAAY,aAAA,CAAC,mDAAmD,CAAC,CAAC;IAC9E,CAAC;IAED,MAAMG,aAAa,GAAGF,kBAAkB,CAAC,CAAC,CAAC,AAAC;IAC5C,IAAI,OAAOE,aAAa,KAAK,QAAQ,EAAE;QACrC,MAAM,IAAIH,OAAY,aAAA,CACpB,CAAC,yDAAyD,EAAEG,aAAa,CAAC,CAAC,CAC5E,CAAC;IACJ,CAAC;IAED,IAAIC,WAAW,GAAkB,IAAI,AAAC;IACtC,MAAMC,gBAAgB,GAAGP,qBAAqB,CAACI,GAAG,CAAC,KAAK,CAAC,AAAC;IAC1D,IAAIG,gBAAgB,EAAE;QACpB,MAAMC,eAAe,GAAGD,gBAAgB,CAAC,CAAC,CAAC,AAAC;QAC5C,IAAI,OAAOC,eAAe,KAAK,QAAQ,EAAE;YACvC,MAAM,IAAIN,OAAY,aAAA,CAAC,uDAAuD,CAAC,CAAC;QAClF,CAAC;QACDI,WAAW,GAAGE,eAAe,CAAC;IAChC,CAAC;IAED,IAAIH,aAAa,KAAK,WAAW,EAAE;QACjC,OAAO,MAAMI,0CAA0C,CAACZ,GAAG,CAAC,CAAC;IAC/D,OAAO,IAAIQ,aAAa,KAAK,SAAS,EAAE;QACtC,MAAM,IAAIH,OAAY,aAAA,CACpB,4EAA4E,CAC7E,CAAC;IACJ,OAAO;QACL,OAAO,MAAMQ,qCAAqC,CAChDb,GAAG,EACHE,cAAc,EACdM,aAAa,EACbC,WAAW,CACZ,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;CAGC,GACD,eAAeG,0CAA0C,CACvDZ,GAAe,EACkB;QACZA,GAAS;IAA9B,MAAMd,YAAY,GAAGc,CAAAA,GAAS,GAATA,GAAG,CAACc,KAAK,SAAK,GAAdd,KAAAA,CAAc,GAAdA,QAAAA,GAAS,CAAEe,GAAG,SAAA,GAAdf,KAAAA,CAAc,QAAEgB,SAAS,AAAX,AAAY;IAC/C,oHAAoH;IACpH,sEAAsE;IACtE,IAAI,CAAC9B,YAAY,EAAE;QACjBT,KAAK,CACH,CAAC,oKAAoK,EAAEwC,IAAAA,KAAS,UAAA,EAC9K,4BAA4B,CAC7B,CAAC,CAAC,CACJ,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAMC,kCAAkC,GACtC,MAAM5C,8BAA8B,CAACe,SAAS,CAACH,YAAY,CAAC,AAAC;IAC/D,MAAMiC,wBAAwB,GAAGC,2DAA2D,CAC1FF,kCAAkC,EAClChC,YAAY,CACb,AAAC;IAEF,6GAA6G;IAC7G,iFAAiF;IACjF,IAAI,CAACmC,IAAG,IAAA,CAACC,YAAY,EAAE;QACrB,IAAI;YACF,OAAO,MAAMC,+CAA+C,CAACrC,YAAY,CAAC,CAAC;QAC7E,EAAE,OAAOsC,CAAC,EAAO;YACf,IAAIL,wBAAwB,EAAE;gBAC5BM,IAAG,CAACC,IAAI,CACN,kGAAkG,CACnG,CAAC;gBACF,OAAOP,wBAAwB,CAAC;YAClC,OAAO;gBACL,6CAA6C;gBAC7C,MAAMK,CAAC,CAAC;YACV,CAAC;QACH,CAAC;IACH,CAAC;IAED,+JAA+J;IAC/J,IAAIL,wBAAwB,EAAE;QAC5B,OAAOA,wBAAwB,CAAC;IAClC,CAAC;IAED,6BAA6B;IAC7BM,IAAG,CAACC,IAAI,CAAC,8EAA8E,CAAC,CAAC;IACzF,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;CAEC,GACD,eAAeb,qCAAqC,CAClDb,GAAe,EACfE,cAAkC,EAClCM,aAAqB,EACrBC,WAA0B,EACO;QACET,GAAW,EAWlBA,IAAW;IAXvC,MAAM2B,0BAA0B,GAAG3B,CAAAA,GAAW,GAAXA,GAAG,CAAC4B,OAAO,SAAwB,GAAnC5B,KAAAA,CAAmC,GAAnCA,GAAW,CAAE6B,sBAAsB,AAAC;IACvE,IAAI,CAACF,0BAA0B,EAAE;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAACzB,cAAc,EAAE;QACnB,MAAM,IAAIG,OAAY,aAAA,CACpB,sGAAsG,CACvG,CAAC;IACJ,CAAC;IAED,MAAMyB,mBAAmB,GAAG9B,CAAAA,IAAW,GAAXA,GAAG,CAAC4B,OAAO,SAAqB,GAAhC5B,KAAAA,CAAgC,GAAhCA,IAAW,CAAE8B,mBAAmB,AAAC;IAC7D,IAAI,CAACA,mBAAmB,EAAE;QACxB,MAAM,IAAIzB,OAAY,aAAA,CACpB,8GAA8G,CAC/G,CAAC;IACJ,CAAC;IAED,MAAM,EAAE0B,GAAG,CAAA,EAAEC,KAAK,CAAA,EAAE,GAAGF,mBAAmB,AAAC;IAC3C,IAAI,CAACC,GAAG,IAAI,CAACC,KAAK,EAAE;QAClB,MAAM,IAAI3B,OAAY,aAAA,CACpB,6IAA6I,CAC9I,CAAC;IACJ,CAAC;IAED,IAAIG,aAAa,KAAKwB,KAAK,EAAE;QAC3B,MAAM,IAAI3B,OAAY,aAAA,CAAC,CAAC,uBAAuB,EAAEG,aAAa,CAAC,UAAU,EAAEwB,KAAK,CAAC,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,IAAIvB,WAAW,IAAIA,WAAW,KAAKsB,GAAG,EAAE;QACtC,MAAM,IAAI1B,OAAY,aAAA,CAAC,CAAC,6BAA6B,EAAEI,WAAW,CAAC,UAAU,EAAEsB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,EAAEE,aAAa,CAAA,EAAEC,cAAc,CAAA,EAAE,GACrC,MAAMC,oDAAoD,CAAC;QACzDR,0BAA0B;QAC1BzB,cAAc;KACf,CAAC,AAAC;IAEL,OAAO;QACLkC,KAAK,EAAEJ,KAAK;QACZlC,UAAU,EAAEmC,aAAa;QACzBI,wBAAwB,EAAEH,cAAc;QACxCI,2BAA2B,EAAE,EAAE;QAC/BzC,QAAQ,EAAE,IAAI;KACf,CAAC;AACJ,CAAC;AAED,eAAe0C,sBAAsB,CAAC3D,IAAY,EAAE4D,YAAoB,EAAmB;IACzF,IAAI;QACF,OAAO,MAAMC,GAAE,EAAA,SAAA,CAACC,QAAQ,CAAC9D,IAAI,EAAE,MAAM,CAAC,CAAC;IACzC,EAAE,OAAM;QACN,MAAM,IAAIyB,OAAY,aAAA,CAACmC,YAAY,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED,eAAeL,oDAAoD,CAAC,EAClER,0BAA0B,CAAA,EAC1BzB,cAAc,CAAA,EAIf,EAA8D;IAC7D,MAAM,CAACyC,yBAAyB,EAAEV,aAAa,CAAC,GAAG,MAAMW,OAAO,CAACC,GAAG,CAAC;QACnEN,sBAAsB,CACpBZ,0BAA0B,EAC1B,CAAC,mDAAmD,EAAEA,0BAA0B,CAAC,CAAC,CACnF;QACDY,sBAAsB,CACpBrC,cAAc,EACd,CAAC,mDAAmD,EAAEA,cAAc,CAAC,CAAC,CACvE;KACF,CAAC,AAAC;IAEH,MAAMJ,UAAU,GAAGgD,IAAAA,wBAAgC,EAAA,iCAAA,EAACb,aAAa,CAAC,AAAC;IACnE,MAAMc,WAAW,GAAGC,IAAAA,wBAAkC,EAAA,mCAAA,EAACL,yBAAyB,CAAC,AAAC;IAClFM,IAAAA,wBAA6B,EAAA,8BAAA,EAACF,WAAW,EAAE;QACzCG,SAAS,EAAEH,WAAW,CAACG,SAAS;QAChCpD,UAAU;KACX,CAAC,CAAC;IAEH,OAAO;QAAEmC,aAAa;QAAEC,cAAc,EAAES,yBAAyB;KAAE,CAAC;AACtE,CAAC;AAED;;;CAGC,GACD,SAASvB,2DAA2D,CAClE+B,eAAyD,EACzDjE,YAAoB,EACI;IACxB,IAAIiE,eAAe,CAACjE,YAAY,KAAKA,YAAY,EAAE;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,EACJY,UAAU,EAAEmC,aAAa,CAAA,EACzBlC,gBAAgB,EAAEqD,eAAe,CAAA,EACjCvD,QAAQ,CAAA,IACT,GAAGsD,eAAe,AAAC;IACpB,IAAI,CAAClB,aAAa,IAAI,CAACmB,eAAe,EAAE;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAMrD,gBAAgB,GAAGqD,eAAe,CAACC,GAAG,CAAC,CAACnB,cAAc,GAC1Dc,IAAAA,wBAAkC,EAAA,mCAAA,EAACd,cAAc,CAAC,CACnD,AAAC;IAEF,iEAAiE;IAEjE,iDAAiD;IACjD,KAAK,MAAMa,WAAW,IAAIhD,gBAAgB,CAAE;QAC1C,MAAMuD,GAAG,GAAG,IAAIC,IAAI,EAAE,AAAC;QACvB,IAAIR,WAAW,CAACS,QAAQ,CAACC,SAAS,GAAGH,GAAG,IAAIP,WAAW,CAACS,QAAQ,CAACE,QAAQ,GAAGJ,GAAG,EAAE;YAC/E,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,wHAAwH;IAExH,OAAO;QACLlB,KAAK,EAAE,SAAS;QAChBE,2BAA2B,EAAEc,eAAe;QAC5Cf,wBAAwB,EAAEe,eAAe,CAAC,CAAC,CAAC;QAC5CtD,UAAU,EAAEmC,aAAa;QACzBpC,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,SAAS8D,wCAAwC,CAACC,KAAY,EAAEC,GAAgC,EAAE;QAO7CD,GACC;IAPpD,MAAME,eAAe,GAAGD,GAAG,CAACE,YAAY,CAACC,EAAE,AAAC;IAE5C,MAAMC,kCAAkC,GACtCL,KAAK,CAACM,UAAU,KAAK,MAAM,IAAIN,KAAK,CAACM,UAAU,KAAK,SAAS,GACzDN,KAAK,CAACO,cAAc,CAACH,EAAE,KAAKF,eAAe,GAC3C,KAAK,AAAC;IACZ,MAAMM,wCAAwC,GAAG,CAAC,EAACR,QAAAA,CAAAA,GACC,GADDA,KAAK,CAACS,QAAQ,CAC9DC,IAAI,CAAC,CAACC,OAAO,GAAKA,OAAO,CAACP,EAAE,KAAKF,eAAe,CAAC,SAC3C,GAF0CF,KAAAA,CAE1C,GAF0CA,QAAAA,GACC,CAChDY,KAAK,SAAA,GAF0CZ,KAAAA,CAE1C,GAF0CA,KAExCU,IAAI,CAAC,CAACG,cAAc,GAAKA,cAAc,CAACb,KAAK,CAACI,EAAE,KAAKJ,KAAK,CAACI,EAAE,CAAC,SAC1D,GAHoCJ,KAAAA,CAGpC,GAHoCA,aAG/Cc,WAAW,SAAA,GAHoCd,KAAAA,CAGpC,GAHoCA,KAGlCe,QAAQ,CAACC,UAAU,WAAA,CAACC,OAAO,CAAC,CAAA,AAAC;IAC9C,OAAOZ,kCAAkC,IAAIG,wCAAwC,CAAC;AACxF,CAAC;AAED,eAAe7C,+CAA+C,CAC5DrC,YAAoB,EACa;IACjC,MAAM0E,KAAK,GAAG,MAAMkB,IAAAA,QAAmB,oBAAA,GAAE,AAAC;IAC1C,IAAIjB,GAAG,AAA6B,AAAC;IACrC,IAAI;QACFA,GAAG,GAAG,MAAMkB,SAAQ,SAAA,CAACC,SAAS,CAAC9F,YAAY,CAAC,CAAC;IAC/C,EAAE,OAAOsC,CAAC,EAAE;QACV,IAAIA,CAAC,YAAYyD,QAAY,EAAA,aAAA,IAAIzD,CAAC,YAAY0D,KAAa,EAAA,cAAA,EAAE;YAC3D,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM1D,CAAC,CAAC;IACV,CAAC;IACD,IAAI,CAACmC,wCAAwC,CAACC,KAAK,EAAEC,GAAG,CAAC,EAAE;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAMsB,OAAO,GAAGC,IAAAA,wBAAe,EAAA,gBAAA,GAAE,AAAC;IAClC,MAAMC,UAAU,GAAGC,IAAAA,wBAAmB,EAAA,oBAAA,EAACH,OAAO,CAAC,AAAC;IAChD,MAAMI,GAAG,GAAGC,IAAAA,wBAAW,EAAA,YAAA,EAACL,OAAO,EAAE,CAAC,4BAA4B,EAAEjG,YAAY,CAAC,CAAC,CAAC,AAAC;IAChF,MAAMuG,MAAM,GAAGC,IAAAA,wBAAkB,EAAA,mBAAA,EAACH,GAAG,CAAC,AAAC;IACvC,MAAM,CAACI,6BAA6B,EAAEC,6BAA6B,CAAC,GAAG,MAAMhD,OAAO,CAACC,GAAG,CAAC;QACvFgD,IAAAA,iCAAqC,sCAAA,EAAC3G,YAAY,EAAEuG,MAAM,CAAC;QAC3DK,IAAAA,iCAAqC,sCAAA,EAAC5G,YAAY,CAAC;KACpD,CAAC,AAAC;IAEH,MAAMZ,8BAA8B,CAACmB,QAAQ,CAACP,YAAY,EAAE;QAC1DA,YAAY;QACZW,QAAQ,EAAEgE,GAAG,CAAChE,QAAQ;QACtBC,UAAU,EAAEuF,UAAU,CAACpD,aAAa;QACpClC,gBAAgB,EAAE;YAAC4F,6BAA6B;YAAEC,6BAA6B;SAAC;KACjF,CAAC,CAAC;IAEH,OAAO;QACLxD,KAAK,EAAE,SAAS;QAChBE,2BAA2B,EAAE;YAACqD,6BAA6B;YAAEC,6BAA6B;SAAC;QAC3FvD,wBAAwB,EAAEsD,6BAA6B;QACvD7F,UAAU,EAAEuF,UAAU,CAACpD,aAAa;QACpCpC,QAAQ,EAAEgE,GAAG,CAAChE,QAAQ;KACvB,CAAC;AACJ,CAAC;AAIM,SAASrB,kBAAkB,CAChCuH,mBAA2B,EAC3B5C,eAAgC,EACxB;IACR,MAAMrD,UAAU,GAAGgD,IAAAA,wBAAgC,EAAA,iCAAA,EAACK,eAAe,CAACrD,UAAU,CAAC,AAAC;IAChF,MAAMiD,WAAW,GAAGC,IAAAA,wBAAkC,EAAA,mCAAA,EAACG,eAAe,CAACd,wBAAwB,CAAC,AAAC;IACjG,OAAO2D,IAAAA,wBAA4B,EAAA,6BAAA,EACjClG,UAAU,EACViD,WAAW,EACXkD,MAAM,CAACC,IAAI,CAACH,mBAAmB,EAAE,MAAM,CAAC,CACzC,CAAC;AACJ,CAAC"}
@@ -2,8 +2,16 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- exports.createEntryResolver = createEntryResolver;
6
- exports.createGlobFilter = createGlobFilter;
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ createEntryResolver: ()=>createEntryResolver,
13
+ createGlobFilter: ()=>createGlobFilter
14
+ });
7
15
  function _configPlugins() {
8
16
  const data = require("@expo/config-plugins");
9
17
  _configPlugins = function() {
@@ -12,14 +20,14 @@ function _configPlugins() {
12
20
  return data;
13
21
  }
14
22
  function _path() {
15
- const data = _interopRequireDefault(require("path"));
23
+ const data = /*#__PURE__*/ _interopRequireDefault(require("path"));
16
24
  _path = function() {
17
25
  return data;
18
26
  };
19
27
  return data;
20
28
  }
21
29
  function _picomatch() {
22
- const data = _interopRequireDefault(require("picomatch"));
30
+ const data = /*#__PURE__*/ _interopRequireDefault(require("picomatch"));
23
31
  _picomatch = function() {
24
32
  return data;
25
33
  };
@@ -45,7 +53,7 @@ function createEntryResolver(name) {
45
53
  };
46
54
  }
47
55
  function createGlobFilter(globPattern, options) {
48
- const matcher = _picomatch().default(globPattern, options);
56
+ const matcher = (0, _picomatch().default)(globPattern, options);
49
57
  debug('filter: created for pattern(s) "%s" (%s)', Array.isArray(globPattern) ? globPattern.join('", "') : globPattern, options);
50
58
  return (path)=>{
51
59
  const included = matcher(path);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/createFileTransform.ts"],"sourcesContent":["import { IOSConfig } from '@expo/config-plugins';\nimport path from 'path';\nimport picomatch from 'picomatch';\nimport { ReadEntry } from 'tar';\n\nconst debug = require('debug')('expo:file-transform') as typeof console.log;\n\nexport function createEntryResolver(name: string) {\n return (entry: ReadEntry) => {\n if (name) {\n // Rewrite paths for bare workflow\n entry.path = entry.path\n .replace(\n /HelloWorld/g,\n entry.path.includes('android')\n ? IOSConfig.XcodeUtils.sanitizedName(name.toLowerCase())\n : IOSConfig.XcodeUtils.sanitizedName(name)\n )\n .replace(/helloworld/g, IOSConfig.XcodeUtils.sanitizedName(name).toLowerCase());\n }\n if (entry.type && /^file$/i.test(entry.type) && path.basename(entry.path) === 'gitignore') {\n // Rename `gitignore` because npm ignores files named `.gitignore` when publishing.\n // See: https://github.com/npm/npm/issues/1862\n entry.path = entry.path.replace(/gitignore$/, '.gitignore');\n }\n };\n}\n\nexport function createGlobFilter(\n globPattern: picomatch.Glob,\n options?: picomatch.PicomatchOptions\n) {\n const matcher = picomatch(globPattern, options);\n\n debug(\n 'filter: created for pattern(s) \"%s\" (%s)',\n Array.isArray(globPattern) ? globPattern.join('\", \"') : globPattern,\n options\n );\n\n return (path: string) => {\n const included = matcher(path);\n debug('filter: %s - %s', included ? 'include' : 'exclude', path);\n return included;\n };\n}\n"],"names":["createEntryResolver","createGlobFilter","debug","require","name","entry","path","replace","includes","IOSConfig","XcodeUtils","sanitizedName","toLowerCase","type","test","basename","globPattern","options","matcher","picomatch","Array","isArray","join","included"],"mappings":"AAAA;;;;QAOgBA,mBAAmB,GAAnBA,mBAAmB;QAqBnBC,gBAAgB,GAAhBA,gBAAgB;SA5BN,cAAsB;yBAAtB,sBAAsB;IAAtB,cAAsB;;;;;SAC/B,KAAM;gDAAN,MAAM;IAAN,KAAM;;;;;SACD,UAAW;gDAAX,WAAW;IAAX,UAAW;;;;;;;;;;AAGjC,MAAMC,KAAK,GAAGC,OAAO,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,AAAsB,AAAC;AAErE,SAASH,mBAAmB,CAACI,IAAY,EAAE;IAChD,OAAO,CAACC,KAAgB,GAAK;QAC3B,IAAID,IAAI,EAAE;YACR,kCAAkC;YAClCC,KAAK,CAACC,IAAI,GAAGD,KAAK,CAACC,IAAI,CACpBC,OAAO,gBAENF,KAAK,CAACC,IAAI,CAACE,QAAQ,CAAC,SAAS,CAAC,GAC1BC,cAAS,YAAA,CAACC,UAAU,CAACC,aAAa,CAACP,IAAI,CAACQ,WAAW,EAAE,CAAC,GACtDH,cAAS,YAAA,CAACC,UAAU,CAACC,aAAa,CAACP,IAAI,CAAC,CAC7C,CACAG,OAAO,gBAAgBE,cAAS,YAAA,CAACC,UAAU,CAACC,aAAa,CAACP,IAAI,CAAC,CAACQ,WAAW,EAAE,CAAC,CAAC;SACnF;QACD,IAAIP,KAAK,CAACQ,IAAI,IAAI,UAAUC,IAAI,CAACT,KAAK,CAACQ,IAAI,CAAC,IAAIP,KAAI,UAAA,CAACS,QAAQ,CAACV,KAAK,CAACC,IAAI,CAAC,KAAK,WAAW,EAAE;YACzF,mFAAmF;YACnF,8CAA8C;YAC9CD,KAAK,CAACC,IAAI,GAAGD,KAAK,CAACC,IAAI,CAACC,OAAO,eAAe,YAAY,CAAC,CAAC;SAC7D;KACF,CAAC;CACH;AAEM,SAASN,gBAAgB,CAC9Be,WAA2B,EAC3BC,OAAoC,EACpC;IACA,MAAMC,OAAO,GAAGC,UAAS,UAAA,CAACH,WAAW,EAAEC,OAAO,CAAC,AAAC;IAEhDf,KAAK,CACH,0CAA0C,EAC1CkB,KAAK,CAACC,OAAO,CAACL,WAAW,CAAC,GAAGA,WAAW,CAACM,IAAI,CAAC,MAAM,CAAC,GAAGN,WAAW,EACnEC,OAAO,CACR,CAAC;IAEF,OAAO,CAACX,IAAY,GAAK;QACvB,MAAMiB,QAAQ,GAAGL,OAAO,CAACZ,IAAI,CAAC,AAAC;QAC/BJ,KAAK,CAAC,iBAAiB,EAAEqB,QAAQ,GAAG,SAAS,GAAG,SAAS,EAAEjB,IAAI,CAAC,CAAC;QACjE,OAAOiB,QAAQ,CAAC;KACjB,CAAC;CACH"}
1
+ {"version":3,"sources":["../../../src/utils/createFileTransform.ts"],"sourcesContent":["import { IOSConfig } from '@expo/config-plugins';\nimport path from 'path';\nimport picomatch from 'picomatch';\nimport { ReadEntry } from 'tar';\n\nconst debug = require('debug')('expo:file-transform') as typeof console.log;\n\nexport function createEntryResolver(name: string) {\n return (entry: ReadEntry) => {\n if (name) {\n // Rewrite paths for bare workflow\n entry.path = entry.path\n .replace(\n /HelloWorld/g,\n entry.path.includes('android')\n ? IOSConfig.XcodeUtils.sanitizedName(name.toLowerCase())\n : IOSConfig.XcodeUtils.sanitizedName(name)\n )\n .replace(/helloworld/g, IOSConfig.XcodeUtils.sanitizedName(name).toLowerCase());\n }\n if (entry.type && /^file$/i.test(entry.type) && path.basename(entry.path) === 'gitignore') {\n // Rename `gitignore` because npm ignores files named `.gitignore` when publishing.\n // See: https://github.com/npm/npm/issues/1862\n entry.path = entry.path.replace(/gitignore$/, '.gitignore');\n }\n };\n}\n\nexport function createGlobFilter(\n globPattern: picomatch.Glob,\n options?: picomatch.PicomatchOptions\n) {\n const matcher = picomatch(globPattern, options);\n\n debug(\n 'filter: created for pattern(s) \"%s\" (%s)',\n Array.isArray(globPattern) ? globPattern.join('\", \"') : globPattern,\n options\n );\n\n return (path: string) => {\n const included = matcher(path);\n debug('filter: %s - %s', included ? 'include' : 'exclude', path);\n return included;\n };\n}\n"],"names":["createEntryResolver","createGlobFilter","debug","require","name","entry","path","replace","includes","IOSConfig","XcodeUtils","sanitizedName","toLowerCase","type","test","basename","globPattern","options","matcher","picomatch","Array","isArray","join","included"],"mappings":"AAAA;;;;;;;;;;;IAOgBA,mBAAmB,MAAnBA,mBAAmB;IAqBnBC,gBAAgB,MAAhBA,gBAAgB;;;yBA5BN,sBAAsB;;;;;;;8DAC/B,MAAM;;;;;;;8DACD,WAAW;;;;;;;;;;;AAGjC,MAAMC,KAAK,GAAGC,OAAO,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,AAAsB,AAAC;AAErE,SAASH,mBAAmB,CAACI,IAAY,EAAE;IAChD,OAAO,CAACC,KAAgB,GAAK;QAC3B,IAAID,IAAI,EAAE;YACR,kCAAkC;YAClCC,KAAK,CAACC,IAAI,GAAGD,KAAK,CAACC,IAAI,CACpBC,OAAO,gBAENF,KAAK,CAACC,IAAI,CAACE,QAAQ,CAAC,SAAS,CAAC,GAC1BC,cAAS,EAAA,UAAA,CAACC,UAAU,CAACC,aAAa,CAACP,IAAI,CAACQ,WAAW,EAAE,CAAC,GACtDH,cAAS,EAAA,UAAA,CAACC,UAAU,CAACC,aAAa,CAACP,IAAI,CAAC,CAC7C,CACAG,OAAO,gBAAgBE,cAAS,EAAA,UAAA,CAACC,UAAU,CAACC,aAAa,CAACP,IAAI,CAAC,CAACQ,WAAW,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,IAAIP,KAAK,CAACQ,IAAI,IAAI,UAAUC,IAAI,CAACT,KAAK,CAACQ,IAAI,CAAC,IAAIP,KAAI,EAAA,QAAA,CAACS,QAAQ,CAACV,KAAK,CAACC,IAAI,CAAC,KAAK,WAAW,EAAE;YACzF,mFAAmF;YACnF,8CAA8C;YAC9CD,KAAK,CAACC,IAAI,GAAGD,KAAK,CAACC,IAAI,CAACC,OAAO,eAAe,YAAY,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAEM,SAASN,gBAAgB,CAC9Be,WAA2B,EAC3BC,OAAoC,EACpC;IACA,MAAMC,OAAO,GAAGC,IAAAA,UAAS,EAAA,QAAA,EAACH,WAAW,EAAEC,OAAO,CAAC,AAAC;IAEhDf,KAAK,CACH,0CAA0C,EAC1CkB,KAAK,CAACC,OAAO,CAACL,WAAW,CAAC,GAAGA,WAAW,CAACM,IAAI,CAAC,MAAM,CAAC,GAAGN,WAAW,EACnEC,OAAO,CACR,CAAC;IAEF,OAAO,CAACX,IAAY,GAAK;QACvB,MAAMiB,QAAQ,GAAGL,OAAO,CAACZ,IAAI,CAAC,AAAC;QAC/BJ,KAAK,CAAC,iBAAiB,EAAEqB,QAAQ,GAAG,SAAS,GAAG,SAAS,EAAEjB,IAAI,CAAC,CAAC;QACjE,OAAOiB,QAAQ,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC"}
@@ -2,13 +2,20 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- exports.delayAsync = delayAsync;
6
- exports.waitForActionAsync = waitForActionAsync;
7
- exports.resolveWithTimeout = resolveWithTimeout;
8
- var _errors = require("./errors");
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ delayAsync: ()=>delayAsync,
13
+ waitForActionAsync: ()=>waitForActionAsync,
14
+ resolveWithTimeout: ()=>resolveWithTimeout
15
+ });
16
+ const _errors = require("./errors");
9
17
  function delayAsync(timeout) {
10
- return new Promise((resolve)=>setTimeout(resolve, timeout)
11
- );
18
+ return new Promise((resolve)=>setTimeout(resolve, timeout));
12
19
  }
13
20
  async function waitForActionAsync({ action , interval =100 , maxWaitTime =20000 }) {
14
21
  let complete;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/delay.ts"],"sourcesContent":["import { CommandError } from './errors';\n\n/** Await for a given duration of milliseconds. */\nexport function delayAsync(timeout: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, timeout));\n}\n\n/** Wait for a given action to return a truthy value. */\nexport async function waitForActionAsync<T>({\n action,\n interval = 100,\n maxWaitTime = 20000,\n}: {\n action: () => T | Promise<T>;\n interval?: number;\n maxWaitTime?: number;\n}): Promise<T> {\n let complete: T;\n const start = Date.now();\n do {\n const actionStartTime = Date.now();\n complete = await action();\n\n const actionTimeElapsed = Date.now() - actionStartTime;\n const remainingDelayInterval = interval - actionTimeElapsed;\n if (remainingDelayInterval > 0) {\n await delayAsync(remainingDelayInterval);\n }\n if (Date.now() - start > maxWaitTime) {\n break;\n }\n } while (!complete);\n\n return complete;\n}\n\n/** Resolves a given function or rejects if the provided timeout is passed. */\nexport function resolveWithTimeout<T>(\n action: () => Promise<T>,\n {\n timeout,\n errorMessage,\n }: {\n /** Duration in milliseconds to wait before asserting a timeout. */\n timeout: number;\n /** Optional error message to use in the assertion. */\n errorMessage?: string;\n }\n): Promise<T> {\n return new Promise((resolve, reject) => {\n setTimeout(() => {\n reject(new CommandError('TIMEOUT', errorMessage));\n }, timeout);\n action().then(resolve, reject);\n });\n}\n"],"names":["delayAsync","waitForActionAsync","resolveWithTimeout","timeout","Promise","resolve","setTimeout","action","interval","maxWaitTime","complete","start","Date","now","actionStartTime","actionTimeElapsed","remainingDelayInterval","errorMessage","reject","CommandError","then"],"mappings":"AAAA;;;;QAGgBA,UAAU,GAAVA,UAAU;QAKJC,kBAAkB,GAAlBA,kBAAkB;QA6BxBC,kBAAkB,GAAlBA,kBAAkB;AArCL,IAAA,OAAU,WAAV,UAAU,CAAA;AAGhC,SAASF,UAAU,CAACG,OAAe,EAAiB;IACzD,OAAO,IAAIC,OAAO,CAAC,CAACC,OAAO,GAAKC,UAAU,CAACD,OAAO,EAAEF,OAAO,CAAC;IAAA,CAAC,CAAC;CAC/D;AAGM,eAAeF,kBAAkB,CAAI,EAC1CM,MAAM,CAAA,EACNC,QAAQ,EAAG,GAAG,CAAA,EACdC,WAAW,EAAG,KAAK,CAAA,EAKpB,EAAc;IACb,IAAIC,QAAQ,AAAG,AAAC;IAChB,MAAMC,KAAK,GAAGC,IAAI,CAACC,GAAG,EAAE,AAAC;IACzB,GAAG;QACD,MAAMC,eAAe,GAAGF,IAAI,CAACC,GAAG,EAAE,AAAC;QACnCH,QAAQ,GAAG,MAAMH,MAAM,EAAE,CAAC;QAE1B,MAAMQ,iBAAiB,GAAGH,IAAI,CAACC,GAAG,EAAE,GAAGC,eAAe,AAAC;QACvD,MAAME,sBAAsB,GAAGR,QAAQ,GAAGO,iBAAiB,AAAC;QAC5D,IAAIC,sBAAsB,GAAG,CAAC,EAAE;YAC9B,MAAMhB,UAAU,CAACgB,sBAAsB,CAAC,CAAC;SAC1C;QACD,IAAIJ,IAAI,CAACC,GAAG,EAAE,GAAGF,KAAK,GAAGF,WAAW,EAAE;YACpC,MAAM;SACP;KACF,OAAQ,CAACC,QAAQ,EAAE;IAEpB,OAAOA,QAAQ,CAAC;CACjB;AAGM,SAASR,kBAAkB,CAChCK,MAAwB,EACxB,EACEJ,OAAO,CAAA,EACPc,YAAY,CAAA,EAMb,EACW;IACZ,OAAO,IAAIb,OAAO,CAAC,CAACC,OAAO,EAAEa,MAAM,GAAK;QACtCZ,UAAU,CAAC,IAAM;YACfY,MAAM,CAAC,IAAIC,OAAY,aAAA,CAAC,SAAS,EAAEF,YAAY,CAAC,CAAC,CAAC;SACnD,EAAEd,OAAO,CAAC,CAAC;QACZI,MAAM,EAAE,CAACa,IAAI,CAACf,OAAO,EAAEa,MAAM,CAAC,CAAC;KAChC,CAAC,CAAC;CACJ"}
1
+ {"version":3,"sources":["../../../src/utils/delay.ts"],"sourcesContent":["import { CommandError } from './errors';\n\n/** Await for a given duration of milliseconds. */\nexport function delayAsync(timeout: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, timeout));\n}\n\n/** Wait for a given action to return a truthy value. */\nexport async function waitForActionAsync<T>({\n action,\n interval = 100,\n maxWaitTime = 20000,\n}: {\n action: () => T | Promise<T>;\n interval?: number;\n maxWaitTime?: number;\n}): Promise<T> {\n let complete: T;\n const start = Date.now();\n do {\n const actionStartTime = Date.now();\n complete = await action();\n\n const actionTimeElapsed = Date.now() - actionStartTime;\n const remainingDelayInterval = interval - actionTimeElapsed;\n if (remainingDelayInterval > 0) {\n await delayAsync(remainingDelayInterval);\n }\n if (Date.now() - start > maxWaitTime) {\n break;\n }\n } while (!complete);\n\n return complete;\n}\n\n/** Resolves a given function or rejects if the provided timeout is passed. */\nexport function resolveWithTimeout<T>(\n action: () => Promise<T>,\n {\n timeout,\n errorMessage,\n }: {\n /** Duration in milliseconds to wait before asserting a timeout. */\n timeout: number;\n /** Optional error message to use in the assertion. */\n errorMessage?: string;\n }\n): Promise<T> {\n return new Promise((resolve, reject) => {\n setTimeout(() => {\n reject(new CommandError('TIMEOUT', errorMessage));\n }, timeout);\n action().then(resolve, reject);\n });\n}\n"],"names":["delayAsync","waitForActionAsync","resolveWithTimeout","timeout","Promise","resolve","setTimeout","action","interval","maxWaitTime","complete","start","Date","now","actionStartTime","actionTimeElapsed","remainingDelayInterval","errorMessage","reject","CommandError","then"],"mappings":"AAAA;;;;;;;;;;;IAGgBA,UAAU,MAAVA,UAAU;IAKJC,kBAAkB,MAAlBA,kBAAkB;IA6BxBC,kBAAkB,MAAlBA,kBAAkB;;wBArCL,UAAU;AAGhC,SAASF,UAAU,CAACG,OAAe,EAAiB;IACzD,OAAO,IAAIC,OAAO,CAAC,CAACC,OAAO,GAAKC,UAAU,CAACD,OAAO,EAAEF,OAAO,CAAC,CAAC,CAAC;AAChE,CAAC;AAGM,eAAeF,kBAAkB,CAAI,EAC1CM,MAAM,CAAA,EACNC,QAAQ,EAAG,GAAG,CAAA,EACdC,WAAW,EAAG,KAAK,CAAA,EAKpB,EAAc;IACb,IAAIC,QAAQ,AAAG,AAAC;IAChB,MAAMC,KAAK,GAAGC,IAAI,CAACC,GAAG,EAAE,AAAC;IACzB,GAAG;QACD,MAAMC,eAAe,GAAGF,IAAI,CAACC,GAAG,EAAE,AAAC;QACnCH,QAAQ,GAAG,MAAMH,MAAM,EAAE,CAAC;QAE1B,MAAMQ,iBAAiB,GAAGH,IAAI,CAACC,GAAG,EAAE,GAAGC,eAAe,AAAC;QACvD,MAAME,sBAAsB,GAAGR,QAAQ,GAAGO,iBAAiB,AAAC;QAC5D,IAAIC,sBAAsB,GAAG,CAAC,EAAE;YAC9B,MAAMhB,UAAU,CAACgB,sBAAsB,CAAC,CAAC;QAC3C,CAAC;QACD,IAAIJ,IAAI,CAACC,GAAG,EAAE,GAAGF,KAAK,GAAGF,WAAW,EAAE;YACpC,MAAM;QACR,CAAC;IACH,QAAS,CAACC,QAAQ,EAAE;IAEpB,OAAOA,QAAQ,CAAC;AAClB,CAAC;AAGM,SAASR,kBAAkB,CAChCK,MAAwB,EACxB,EACEJ,OAAO,CAAA,EACPc,YAAY,CAAA,EAMb,EACW;IACZ,OAAO,IAAIb,OAAO,CAAC,CAACC,OAAO,EAAEa,MAAM,GAAK;QACtCZ,UAAU,CAAC,IAAM;YACfY,MAAM,CAAC,IAAIC,OAAY,aAAA,CAAC,SAAS,EAAEF,YAAY,CAAC,CAAC,CAAC;QACpD,CAAC,EAAEd,OAAO,CAAC,CAAC;QACZI,MAAM,EAAE,CAACa,IAAI,CAACf,OAAO,EAAEa,MAAM,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -2,20 +2,32 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- exports.fileExistsSync = fileExistsSync;
6
- exports.directoryExistsSync = directoryExistsSync;
7
- exports.directoryExistsAsync = directoryExistsAsync;
8
- exports.fileExistsAsync = fileExistsAsync;
9
- exports.removeAsync = exports.copyAsync = exports.copySync = exports.ensureDirectory = exports.ensureDirectoryAsync = void 0;
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ fileExistsSync: ()=>fileExistsSync,
13
+ directoryExistsSync: ()=>directoryExistsSync,
14
+ directoryExistsAsync: ()=>directoryExistsAsync,
15
+ fileExistsAsync: ()=>fileExistsAsync,
16
+ ensureDirectoryAsync: ()=>ensureDirectoryAsync,
17
+ ensureDirectory: ()=>ensureDirectory,
18
+ copySync: ()=>copySync,
19
+ copyAsync: ()=>copyAsync,
20
+ removeAsync: ()=>removeAsync
21
+ });
10
22
  function _fs() {
11
- const data = _interopRequireDefault(require("fs"));
23
+ const data = /*#__PURE__*/ _interopRequireDefault(require("fs"));
12
24
  _fs = function() {
13
25
  return data;
14
26
  };
15
27
  return data;
16
28
  }
17
29
  function _fsExtra() {
18
- const data = _interopRequireDefault(require("fs-extra"));
30
+ const data = /*#__PURE__*/ _interopRequireDefault(require("fs-extra"));
19
31
  _fsExtra = function() {
20
32
  return data;
21
33
  };
@@ -41,30 +53,21 @@ function directoryExistsSync(file) {
41
53
  async function directoryExistsAsync(file) {
42
54
  var ref;
43
55
  var ref1;
44
- return (ref1 = (ref = await _fs().default.promises.stat(file).catch(()=>null
45
- )) == null ? void 0 : ref.isDirectory()) != null ? ref1 : false;
56
+ return (ref1 = (ref = await _fs().default.promises.stat(file).catch(()=>null)) == null ? void 0 : ref.isDirectory()) != null ? ref1 : false;
46
57
  }
47
58
  async function fileExistsAsync(file) {
48
59
  var ref;
49
- var ref2;
50
- return (ref2 = (ref = await _fs().default.promises.stat(file).catch(()=>null
51
- )) == null ? void 0 : ref.isFile()) != null ? ref2 : false;
60
+ var ref1;
61
+ return (ref1 = (ref = await _fs().default.promises.stat(file).catch(()=>null)) == null ? void 0 : ref.isFile()) != null ? ref1 : false;
52
62
  }
53
63
  const ensureDirectoryAsync = (path)=>_fs().default.promises.mkdir(path, {
54
64
  recursive: true
55
- })
56
- ;
57
- exports.ensureDirectoryAsync = ensureDirectoryAsync;
65
+ });
58
66
  const ensureDirectory = (path)=>_fsExtra().default.mkdirSync(path, {
59
67
  recursive: true
60
- })
61
- ;
62
- exports.ensureDirectory = ensureDirectory;
68
+ });
63
69
  const copySync = _fsExtra().default.copySync;
64
- exports.copySync = copySync;
65
70
  const copyAsync = _fsExtra().default.copy;
66
- exports.copyAsync = copyAsync;
67
71
  const removeAsync = _fsExtra().default.remove;
68
- exports.removeAsync = removeAsync;
69
72
 
70
73
  //# sourceMappingURL=dir.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/dir.ts"],"sourcesContent":["import fs from 'fs';\nimport fse from 'fs-extra';\n\nexport function fileExistsSync(file: string): boolean {\n return !!fs\n .statSync(file, {\n throwIfNoEntry: false,\n })\n ?.isFile();\n}\n\nexport function directoryExistsSync(file: string): boolean {\n return !!fs\n .statSync(file, {\n throwIfNoEntry: false,\n })\n ?.isDirectory();\n}\n\nexport async function directoryExistsAsync(file: string): Promise<boolean> {\n return (await fs.promises.stat(file).catch(() => null))?.isDirectory() ?? false;\n}\n\nexport async function fileExistsAsync(file: string): Promise<boolean> {\n return (await fs.promises.stat(file).catch(() => null))?.isFile() ?? false;\n}\n\nexport const ensureDirectoryAsync = (path: string) => fs.promises.mkdir(path, { recursive: true });\n\nexport const ensureDirectory = (path: string) => fse.mkdirSync(path, { recursive: true });\n\nexport const copySync = fse.copySync;\n\nexport const copyAsync = fse.copy;\n\nexport const removeAsync = fse.remove;\n"],"names":["fileExistsSync","directoryExistsSync","directoryExistsAsync","fileExistsAsync","file","fs","statSync","throwIfNoEntry","isFile","isDirectory","promises","stat","catch","ensureDirectoryAsync","path","mkdir","recursive","ensureDirectory","fse","mkdirSync","copySync","copyAsync","copy","removeAsync","remove"],"mappings":"AAAA;;;;QAGgBA,cAAc,GAAdA,cAAc;QAQdC,mBAAmB,GAAnBA,mBAAmB;QAQbC,oBAAoB,GAApBA,oBAAoB;QAIpBC,eAAe,GAAfA,eAAe;;SAvBtB,GAAI;gDAAJ,IAAI;IAAJ,GAAI;;;;;SACH,QAAU;gDAAV,UAAU;IAAV,QAAU;;;;;;;;;;AAEnB,SAASH,cAAc,CAACI,IAAY,EAAW;QAC3CC,GAGL;IAHJ,OAAO,CAAC,EAACA,CAAAA,GAGL,GAHKA,GAAE,UAAA,CACRC,QAAQ,CAACF,IAAI,EAAE;QACdG,cAAc,EAAE,KAAK;KACtB,CAAC,SACM,GAJDF,KAAAA,CAIC,GAJDA,GAGL,CACAG,MAAM,EAAE,CAAA,CAAC;CACd;AAEM,SAASP,mBAAmB,CAACG,IAAY,EAAW;QAChDC,GAGL;IAHJ,OAAO,CAAC,EAACA,CAAAA,GAGL,GAHKA,GAAE,UAAA,CACRC,QAAQ,CAACF,IAAI,EAAE;QACdG,cAAc,EAAE,KAAK;KACtB,CAAC,SACW,GAJNF,KAAAA,CAIM,GAJNA,GAGL,CACAI,WAAW,EAAE,CAAA,CAAC;CACnB;AAEM,eAAeP,oBAAoB,CAACE,IAAY,EAAoB;QAClE,GAAgD;QAAhD,IAA+D;IAAtE,OAAO,CAAA,IAA+D,GAA/D,CAAA,GAAgD,GAA/C,MAAMC,GAAE,UAAA,CAACK,QAAQ,CAACC,IAAI,CAACP,IAAI,CAAC,CAACQ,KAAK,CAAC,IAAM,IAAI;IAAA,CAAC,SAAc,GAA7D,KAAA,CAA6D,GAA7D,GAAgD,CAAEH,WAAW,EAAE,YAA/D,IAA+D,GAAI,KAAK,CAAC;CACjF;AAEM,eAAeN,eAAe,CAACC,IAAY,EAAoB;QAC7D,GAAgD;QAAhD,IAA0D;IAAjE,OAAO,CAAA,IAA0D,GAA1D,CAAA,GAAgD,GAA/C,MAAMC,GAAE,UAAA,CAACK,QAAQ,CAACC,IAAI,CAACP,IAAI,CAAC,CAACQ,KAAK,CAAC,IAAM,IAAI;IAAA,CAAC,SAAS,GAAxD,KAAA,CAAwD,GAAxD,GAAgD,CAAEJ,MAAM,EAAE,YAA1D,IAA0D,GAAI,KAAK,CAAC;CAC5E;AAEM,MAAMK,oBAAoB,GAAG,CAACC,IAAY,GAAKT,GAAE,UAAA,CAACK,QAAQ,CAACK,KAAK,CAACD,IAAI,EAAE;QAAEE,SAAS,EAAE,IAAI;KAAE,CAAC;AAAC;QAAtFH,oBAAoB,GAApBA,oBAAoB;AAE1B,MAAMI,eAAe,GAAG,CAACH,IAAY,GAAKI,QAAG,UAAA,CAACC,SAAS,CAACL,IAAI,EAAE;QAAEE,SAAS,EAAE,IAAI;KAAE,CAAC;AAAC;QAA7EC,eAAe,GAAfA,eAAe;AAErB,MAAMG,QAAQ,GAAGF,QAAG,UAAA,CAACE,QAAQ,AAAC;QAAxBA,QAAQ,GAARA,QAAQ;AAEd,MAAMC,SAAS,GAAGH,QAAG,UAAA,CAACI,IAAI,AAAC;QAArBD,SAAS,GAATA,SAAS;AAEf,MAAME,WAAW,GAAGL,QAAG,UAAA,CAACM,MAAM,AAAC;QAAzBD,WAAW,GAAXA,WAAW"}
1
+ {"version":3,"sources":["../../../src/utils/dir.ts"],"sourcesContent":["import fs from 'fs';\nimport fse from 'fs-extra';\n\nexport function fileExistsSync(file: string): boolean {\n return !!fs\n .statSync(file, {\n throwIfNoEntry: false,\n })\n ?.isFile();\n}\n\nexport function directoryExistsSync(file: string): boolean {\n return !!fs\n .statSync(file, {\n throwIfNoEntry: false,\n })\n ?.isDirectory();\n}\n\nexport async function directoryExistsAsync(file: string): Promise<boolean> {\n return (await fs.promises.stat(file).catch(() => null))?.isDirectory() ?? false;\n}\n\nexport async function fileExistsAsync(file: string): Promise<boolean> {\n return (await fs.promises.stat(file).catch(() => null))?.isFile() ?? false;\n}\n\nexport const ensureDirectoryAsync = (path: string) => fs.promises.mkdir(path, { recursive: true });\n\nexport const ensureDirectory = (path: string) => fse.mkdirSync(path, { recursive: true });\n\nexport const copySync = fse.copySync;\n\nexport const copyAsync = fse.copy;\n\nexport const removeAsync = fse.remove;\n"],"names":["fileExistsSync","directoryExistsSync","directoryExistsAsync","fileExistsAsync","ensureDirectoryAsync","ensureDirectory","copySync","copyAsync","removeAsync","file","fs","statSync","throwIfNoEntry","isFile","isDirectory","promises","stat","catch","path","mkdir","recursive","fse","mkdirSync","copy","remove"],"mappings":"AAAA;;;;;;;;;;;IAGgBA,cAAc,MAAdA,cAAc;IAQdC,mBAAmB,MAAnBA,mBAAmB;IAQbC,oBAAoB,MAApBA,oBAAoB;IAIpBC,eAAe,MAAfA,eAAe;IAIxBC,oBAAoB,MAApBA,oBAAoB;IAEpBC,eAAe,MAAfA,eAAe;IAEfC,QAAQ,MAARA,QAAQ;IAERC,SAAS,MAATA,SAAS;IAETC,WAAW,MAAXA,WAAW;;;8DAnCT,IAAI;;;;;;;8DACH,UAAU;;;;;;;;;;;AAEnB,SAASR,cAAc,CAACS,IAAY,EAAW;QAC3CC,GAGL;IAHJ,OAAO,CAAC,EAACA,CAAAA,GAGL,GAHKA,GAAE,EAAA,QAAA,CACRC,QAAQ,CAACF,IAAI,EAAE;QACdG,cAAc,EAAE,KAAK;KACtB,CAAC,SACM,GAJDF,KAAAA,CAIC,GAJDA,GAGL,CACAG,MAAM,EAAE,CAAA,CAAC;AACf,CAAC;AAEM,SAASZ,mBAAmB,CAACQ,IAAY,EAAW;QAChDC,GAGL;IAHJ,OAAO,CAAC,EAACA,CAAAA,GAGL,GAHKA,GAAE,EAAA,QAAA,CACRC,QAAQ,CAACF,IAAI,EAAE;QACdG,cAAc,EAAE,KAAK;KACtB,CAAC,SACW,GAJNF,KAAAA,CAIM,GAJNA,GAGL,CACAI,WAAW,EAAE,CAAA,CAAC;AACpB,CAAC;AAEM,eAAeZ,oBAAoB,CAACO,IAAY,EAAoB;QAClE,GAAgD;QAAhD,IAA+D;IAAtE,OAAO,CAAA,IAA+D,GAA/D,CAAA,GAAgD,GAA/C,MAAMC,GAAE,EAAA,QAAA,CAACK,QAAQ,CAACC,IAAI,CAACP,IAAI,CAAC,CAACQ,KAAK,CAAC,IAAM,IAAI,CAAC,SAAc,GAA7D,KAAA,CAA6D,GAA7D,GAAgD,CAAEH,WAAW,EAAE,YAA/D,IAA+D,GAAI,KAAK,CAAC;AAClF,CAAC;AAEM,eAAeX,eAAe,CAACM,IAAY,EAAoB;QAC7D,GAAgD;QAAhD,IAA0D;IAAjE,OAAO,CAAA,IAA0D,GAA1D,CAAA,GAAgD,GAA/C,MAAMC,GAAE,EAAA,QAAA,CAACK,QAAQ,CAACC,IAAI,CAACP,IAAI,CAAC,CAACQ,KAAK,CAAC,IAAM,IAAI,CAAC,SAAS,GAAxD,KAAA,CAAwD,GAAxD,GAAgD,CAAEJ,MAAM,EAAE,YAA1D,IAA0D,GAAI,KAAK,CAAC;AAC7E,CAAC;AAEM,MAAMT,oBAAoB,GAAG,CAACc,IAAY,GAAKR,GAAE,EAAA,QAAA,CAACK,QAAQ,CAACI,KAAK,CAACD,IAAI,EAAE;QAAEE,SAAS,EAAE,IAAI;KAAE,CAAC,AAAC;AAE5F,MAAMf,eAAe,GAAG,CAACa,IAAY,GAAKG,QAAG,EAAA,QAAA,CAACC,SAAS,CAACJ,IAAI,EAAE;QAAEE,SAAS,EAAE,IAAI;KAAE,CAAC,AAAC;AAEnF,MAAMd,QAAQ,GAAGe,QAAG,EAAA,QAAA,CAACf,QAAQ,AAAC;AAE9B,MAAMC,SAAS,GAAGc,QAAG,EAAA,QAAA,CAACE,IAAI,AAAC;AAE3B,MAAMf,WAAW,GAAGa,QAAG,EAAA,QAAA,CAACG,MAAM,AAAC"}